1.1.3 - Autocompletion fixes, crossfade fixes, more languages

This commit is contained in:
exttex 2020-11-03 21:41:28 +01:00
parent b5771b8a25
commit 7eb047bae1
37 changed files with 354 additions and 172 deletions

View File

@ -252,6 +252,16 @@
</v-row> </v-row>
</v-footer> </v-footer>
<!-- Global snackbar -->
<v-snackbar timeout='2000' v-model='globalSnackbar'>
{{this.$root.globalSnackbar}}
<template v-slot:action='{attrs}'>
<v-btn text v-bind="attrs" @click='globalSnackbar = false' color='primary'>
{{$t("Dismiss")}}
</v-btn>
</template>
</v-snackbar>
</v-app> </v-app>
</template> </template>
@ -287,7 +297,10 @@ export default {
searchLoading: false, searchLoading: false,
searchInput: null, searchInput: null,
suggestions: [], suggestions: [],
preventDoubleEnter: false preventDoubleEnter: false,
cancelSuggestions: false,
globalSnackbar: false
} }
}, },
methods: { methods: {
@ -355,6 +368,8 @@ export default {
this.searchLoading = false; this.searchLoading = false;
} else { } else {
//Normal search //Normal search
this.cancelSuggestions = true;
this.suggestions = [];
this.$router.push({path: '/search', query: {q: query}}); this.$router.push({path: '/search', query: {q: query}});
} }
}, },
@ -417,6 +432,14 @@ export default {
'$root.position'() { '$root.position'() {
this.position = (this.$root.position / this.$root.duration()) * 100; this.position = (this.$root.position / this.$root.duration()) * 100;
}, },
//Global snackbar
'$root.globalSnackbar'() {
if (!this.$root.globalSnackbar) return;
this.globalSnackbar = true;
setTimeout(() => {
this.$root.globalSnackbar = null;
}, 2000);
},
//Autofill //Autofill
searchInput(query) { searchInput(query) {
//Filters //Filters
@ -437,6 +460,12 @@ export default {
if (query != this.searchInput) return; if (query != this.searchInput) return;
this.$axios.get('/suggestions/' + encodeURIComponent(query)).then((res) => { this.$axios.get('/suggestions/' + encodeURIComponent(query)).then((res) => {
if (query != this.searchInput) return; if (query != this.searchInput) return;
//Cancel suggestions to prevent autocompletion when already searched
if (this.cancelSuggestions) {
this.cancelSuggestions = false;
this.searchLoading = false;
return;
}
this.suggestions = res.data; this.suggestions = res.data;
this.searchLoading = false; this.searchLoading = false;
}); });

View File

@ -134,8 +134,9 @@ export default {
}); });
this.$emit('clicked') this.$emit('clicked')
}, },
addLibrary() { async addLibrary() {
this.$axios.put(`/library/album?id=${this.album.id}`); await this.$axios.put(`/library/album?id=${this.album.id}`);
this.$root.globalSnackbar = this.$t('Added to library!');
}, },
//Add to downloads //Add to downloads
async download() { async download() {

View File

@ -67,8 +67,9 @@ export default {
} }
}, },
methods: { methods: {
addLibrary() { async addLibrary() {
this.$axios.put(`/library/artist&id=${this.artist.id}`); await this.$axios.put(`/library/artist&id=${this.artist.id}`);
this.$root.globalSnackbar = this.$t('Added to library!');
}, },
click() { click() {
//Navigate to details //Navigate to details

View File

@ -96,12 +96,9 @@ export default {
if (this.currentLyricIndex == this.currentLyric()) return; if (this.currentLyricIndex == this.currentLyric()) return;
this.currentLyricIndex = this.currentLyric(); this.currentLyricIndex = this.currentLyric();
//Roughly middle
let offset = window.innerHeight / 2 - 500;
if (!this.$refs["l"+this.currentLyricIndex]) return; if (!this.$refs["l"+this.currentLyricIndex]) return;
this.$refs.content.scrollTo({ this.$refs.content.scrollTo({
top: this.$refs["l"+this.currentLyricIndex][0].offsetTop + offset, top: this.$refs["l"+this.currentLyricIndex][0].offsetTop - (window.innerHeight / 2.42),
behavior: 'smooth' behavior: 'smooth'
}); });
}, },

View File

@ -42,6 +42,7 @@
</v-card-text> </v-card-text>
</v-card> </v-card>
</div> </div>
</template> </template>
@ -58,7 +59,7 @@ export default {
type: 'Private', type: 'Private',
types: ['Private', 'Public'], types: ['Private', 'Public'],
createLoading: false, createLoading: false,
loading: false, loading: false,
playlists: [] playlists: []
} }
@ -84,11 +85,13 @@ export default {
this.createLoading = false; this.createLoading = false;
this.$emit('created'); this.$emit('created');
this.$emit('close'); this.$emit('close');
this.$root.globalSnackbar = this.$t('Added to playlist!');
}, },
//Add track to playlist //Add track to playlist
async addTrack(playlist) { async addTrack(playlist) {
await this.$axios.post(`/playlist/${playlist.id}/tracks`, {track: this.track.id}); await this.$axios.post(`/playlist/${playlist.id}/tracks`, {track: this.track.id});
this.$emit('close'); this.$emit('close');
this.$root.globalSnackbar = this.$t('Added to playlist!');
} }
}, },
async mounted() { async mounted() {

View File

@ -140,11 +140,13 @@ export default {
//Delete own playlist //Delete own playlist
if (this.playlist.user.id == this.$root.profile.id) { if (this.playlist.user.id == this.$root.profile.id) {
await this.$axios.delete(`/playlist/${this.playlist.id}`); await this.$axios.delete(`/playlist/${this.playlist.id}`);
this.$root.globalSnackbar = this.$t('Playlist deleted!');
} else { } else {
//Remove from library //Remove from library
await this.$axios.get('/library/playlist&id=' + this.playlist.id); await this.$axios.get('/library/playlist&id=' + this.playlist.id);
this.$root.globalSnackbar = this.$t('Removed from library!');
} }
this.$emit('remove'); this.$emit('remove');
}, },
async download() { async download() {

View File

@ -187,6 +187,7 @@ export default {
this.isLibrary = true; this.isLibrary = true;
this.$root.libraryTracks.push(this.track.id); this.$root.libraryTracks.push(this.track.id);
this.$axios.put(`/library/track?id=${this.track.id}`); this.$axios.put(`/library/track?id=${this.track.id}`);
this.$root.globalSnackbar = this.$t('Added to library!');
}, },
goAlbum() { goAlbum() {
this.$emit('redirect') this.$emit('redirect')
@ -206,6 +207,7 @@ export default {
this.isLibrary = false; this.isLibrary = false;
this.$root.libraryTracks.splice(this.$root.libraryTracks.indexOf(this.track.id), 1); this.$root.libraryTracks.splice(this.$root.libraryTracks.indexOf(this.track.id), 1);
await this.$axios.delete(`/library/track?id=${this.track.id}`); await this.$axios.delete(`/library/track?id=${this.track.id}`);
this.$root.globalSnackbar = this.$t('Removed from library!');
this.$emit('remove'); this.$emit('remove');
}, },
//Remove from playlist //Remove from playlist
@ -213,6 +215,7 @@ export default {
await this.$axios.delete(`/playlist/${this.playlistId}/tracks`, { await this.$axios.delete(`/playlist/${this.playlistId}/tracks`, {
data: {track: this.track.id} data: {track: this.track.id}
}); });
this.$root.globalSnackbar = this.$t('Removed from playlist!');
this.$emit('remove'); this.$emit('remove');
}, },
//Download track //Download track

View File

@ -120,5 +120,11 @@
"Discord": "دسكورد", "Discord": "دسكورد",
"Telegram Android Group": "مجموعة تيليجرام (أندرويد)", "Telegram Android Group": "مجموعة تيليجرام (أندرويد)",
"Credits:": "المساهمون:", "Credits:": "المساهمون:",
"Agree": "قبول" "Agree": "قبول",
"Dismiss": "تجاهل",
"Added to playlist!": "تمت الإضافة إلى قائمة التشغيل!",
"Added to library!": "تمت الاضافة الى المكتبة!",
"Removed from library!": "الإزالة من المكتبة!",
"Removed from playlist!": "تمت الإزالة من قائمة التشغيل!",
"Playlist deleted!": "تم حذف قائمة التشغيل!"
} }

View File

@ -120,5 +120,11 @@
"Discord": "Discord", "Discord": "Discord",
"Telegram Android Group": "Telegram Android-Gruppe", "Telegram Android Group": "Telegram Android-Gruppe",
"Credits:": "Credits:", "Credits:": "Credits:",
"Agree": "Einverstanden" "Agree": "Einverstanden",
"Dismiss": "Verwerfen",
"Added to playlist!": "Zur Wiedergabeliste hinzugefügt!",
"Added to library!": "Zur Mediathek hinzufügen!",
"Removed from library!": "Aus der Mediathek entfernen!",
"Removed from playlist!": "Aus der Wiedergabeliste entfernt!",
"Playlist deleted!": "Wiedergabeliste gelöscht!"
} }

View File

@ -109,16 +109,22 @@
"Close on exit": "Κλείσιμο κατά την έξοδο", "Close on exit": "Κλείσιμο κατά την έξοδο",
"Settings saved!": "Οι ρυθμίσεις αποθηκεύτηκαν!", "Settings saved!": "Οι ρυθμίσεις αποθηκεύτηκαν!",
"Available only in Electron version!": "Διαθέσιμο μόνο στην έκδοση Electron!", "Available only in Electron version!": "Διαθέσιμο μόνο στην έκδοση Electron!",
"Crossfade (ms)": "Crossfade (ms)", "Crossfade (ms)": "Μίξη ομαλής μετάβασης (ms)",
"Select primary color": "Select primary color", "Select primary color": "Επιλογή κύριου χρώματος",
"Light theme": "Light theme", "Light theme": "Φωτεινό θέμα",
"Create folders for playlists": "Create folders for playlists", "Create folders for playlists": "Δημιουργία φακέλων για λίστες αναπαραγωγής",
"About": "About", "About": "Σχετικά",
"Links:": "Links:", "Links:": "Σύνδεσμοι:",
"Telegram Releases": "Telegram Releases", "Telegram Releases": "Κυκλοφορίες Telegram",
"Telegram Group": "Telegram Group", "Telegram Group": "Ομάδα Telegram",
"Discord": "Discord", "Discord": "Discord",
"Telegram Android Group": "Telegram Android Group", "Telegram Android Group": "Ομάδα Android Telegram",
"Credits:": "Credits:", "Credits:": "Συντελεστές:",
"Agree": "Agree" "Agree": "Αποδοχή",
"Dismiss": "Απόρριψη",
"Added to playlist!": "Προστέθηκε σε λίστα αναπαραγωγής!",
"Added to library!": "Προστέθηκε στη βιβλιοθήκη!",
"Removed from library!": "Καταργήθηκε από τη βιβλιοθήκη!",
"Removed from playlist!": "Καταργήθηκε από τη λίστα αναπαραγωγής!",
"Playlist deleted!": "Η λίστα αναπαραγωγής διαγράφηκε!"
} }

View File

@ -120,6 +120,11 @@
"Discord": "Discord", "Discord": "Discord",
"Telegram Android Group": "Telegram Android Group", "Telegram Android Group": "Telegram Android Group",
"Credits:": "Credits:", "Credits:": "Credits:",
"Agree": "Agree" "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!"
} }

View File

@ -1,44 +1,44 @@
{ {
"Home": "Inicio", "Home": "Inicio",
"Browse": "Browse", "Browse": "Explorar",
"Library": "Biblioteca", "Library": "Biblioteca",
"Tracks": "Canciones", "Tracks": "Pistas",
"Playlists": "Listas de reproducción", "Playlists": "Listas de reproducción",
"Albums": "Álbumes", "Albums": "Álbumes",
"Artists": "Artistas", "Artists": "Artistas",
"More": "Más", "More": "Más",
"Settings": "Configuración", "Settings": "Ajustes",
"Downloads": "Descargas", "Downloads": "Descargas",
"Search or paste Deezer URL. Use / to quickly focus.": "Search or paste Deezer URL. Use \"/\" to quickly focus.", "Search or paste Deezer URL. Use / to quickly focus.": "Busca o pega la URL de Deezer. Usa \"/\" para empezar a buscar.",
"Play": "Reproducir", "Play": "Reproducir",
"Add to library": "Add to library", "Add to library": "Añadir a la biblioteca",
"Download": "Descargar", "Download": "Descargar",
"fans": "seguidores", "fans": "seguidores",
"tracks": "canciones", "tracks": "pistas",
"Quality": "Calidad", "Quality": "Calidad",
"Estimated size:": "Tamaño estimado:", "Estimated size:": "Tamaño estimado:",
"Start downloading": "Start downloading", "Start downloading": "Comenzar descarga",
"Cancel": "Cancelar", "Cancel": "Cancelar",
"Stream logging is disabled!": "Stream logging is disabled!", "Stream logging is disabled!": "¡El registro de reproducción está deshabilitado!",
"Enable it in settings for history to work properly.": "Enable it in settings for history to work properly.", "Enable it in settings for history to work properly.": "Habilítalo en los ajustes para que el historial funcione correctamente.",
"History": "Historial", "History": "Historial",
"Create new playlist": "Create new playlist", "Create new playlist": "Crear nueva lista de reproducción",
"TRACKS": "CANCIONES", "TRACKS": "PISTAS",
"Sort by": "Ordenar por", "Sort by": "Ordenar por",
"Date Added": "Fecha de adición", "Date Added": "Fecha de adición",
"Name (A-Z)": "Nombre (A-Z)", "Name (A-Z)": "Nombre (A-Z)",
"Artist (A-Z)": "Artista (A-Z)", "Artist (A-Z)": "Artista (A-Z)",
"Album (A-Z)": "Álbum (A-Z)", "Album (A-Z)": "Álbum (A-Z)",
"Error loading lyrics or lyrics not found!": "Error loading lyrics or lyrics not found!", "Error loading lyrics or lyrics not found!": "¡Error al cargar letras o no encontradas!",
"Create playlist": "Crear lista de reproducción", "Create playlist": "Crear lista de reproducción",
"Create": "Crear", "Create": "Crear",
"Add to playlist": "Agregar a la lista de reproducción", "Add to playlist": "Agregar a la lista de reproducción",
"Create new": "Crear nuevo", "Create new": "Crear nuevo",
"Remove": "Quitar", "Remove": "Quitar",
"Play next": "Reproducir siguiente", "Play next": "Reproducir siguiente",
"Add to queue": "Add to queue", "Add to queue": "Añadir a la cola de reproducción",
"Remove from library": "Remove from library", "Remove from library": "Eliminar de la biblioteca",
"Remove from playlist": "Remove from playlist", "Remove from playlist": "Quitar de la lista de reproducción",
"Play track mix": "Reproducir mezcla de canciones", "Play track mix": "Reproducir mezcla de canciones",
"Go to": "Ir a", "Go to": "Ir a",
"Track Mix": "Mezcla de canciones", "Track Mix": "Mezcla de canciones",
@ -49,7 +49,7 @@
"Play top": "Reproducir top", "Play top": "Reproducir top",
"Radio": "Radio", "Radio": "Radio",
"Show all albums": "Mostrar todos los álbumes", "Show all albums": "Mostrar todos los álbumes",
"Show all singles": "Show all singles", "Show all singles": "Mostrar todos los singles",
"Show more": "Mostrar más", "Show more": "Mostrar más",
"Downloaded": "Descargadas", "Downloaded": "Descargadas",
"Queue": "Cola", "Queue": "Cola",
@ -57,59 +57,59 @@
"Stop": "Parar", "Stop": "Parar",
"Start": "Iniciar", "Start": "Iniciar",
"Show folder": "Mostrar carpeta", "Show folder": "Mostrar carpeta",
"Clear queue": "Limpiar cola", "Clear queue": "Limpiar lista",
"Playing from": "Playing from", "Playing from": "Reproduciendo desde",
"Info": "Información", "Info": "Info",
"Lyrics": "Letras", "Lyrics": "Letras",
"Track number": "Número de la canción", "Track number": "Número de la canción",
"Disk number": "Número del disco", "Disk number": "Número del disco",
"Explicit": "Explícito", "Explicit": "Explícito",
"Source": "Fuente", "Source": "Fuente",
"ID": "ID", "ID": "ID",
"Error logging in!": "Error logging in!", "Error logging in!": "¡Error al iniciar sesión!",
"Please try again later, or try another account.": "Please try again later, or try another account.", "Please try again later, or try another account.": "Por favor, inténtalo de nuevo más tarde, o prueba con otra cuenta.",
"Logout": "Cerrar sesión", "Logout": "Cerrar sesión",
"Login using browser": "Login using browser", "Login using browser": "Iniciar sesión con navegador",
"Please login using your Deezer account:": "Please login using your Deezer account:", "Please login using your Deezer account:": "Por favor, inicia sesión con tu cuenta de Deezer:",
"...or paste your ARL/Token below:": "...or paste your ARL/Token below:", "...or paste your ARL/Token below:": "...o pega tu ARL/Token a continuación:",
"ARL/Token": "ARL/Token", "ARL/Token": "ARL/Token",
"Login": "Ingresar", "Login": "Iniciar sesión",
"By using this program, you disagree with Deezer's ToS.": "By using this program, you disagree with Deezer's ToS.", "By using this program, you disagree with Deezer's ToS.": "Al usar este programa, usted no está de acuerdo con los Términos de Servicio de Deezer.",
"Only in Electron version!": "Only in Electron version!", "Only in Electron version!": "¡Sólo en la versión Electron!",
"Search results for:": "Search results for:", "Search results for:": "Resultados de la búsqueda para:",
"Error loading data!": "Error loading data!", "Error loading data!": "¡Error al cargar datos!",
"Try again later!": "Try again later!", "Try again later!": "¡Inténtalo más tarde!",
"Search": "Buscar", "Search": "Buscar",
"Streaming Quality": "Streaming Quality", "Streaming Quality": "Calidad de reproducción",
"Download Quality": "Download Quality", "Download Quality": "Calidad de descarga",
"Downloads Directory": "Downloads Directory", "Downloads Directory": "Carpeta de descargas",
"Simultaneous downloads": "Simultaneous downloads", "Simultaneous downloads": "Descargas simultaneas máximas",
"Always show download confirm dialog before downloading.": "Always show download confirm dialog before downloading.", "Always show download confirm dialog before downloading.": "Mostrar siempre una confirmación de descarga antes de descargar.",
"Show download dialog": "Show download dialog", "Show download dialog": "Mostrar diálogo de descargas",
"Create folders for artists": "Create folders for artists", "Create folders for artists": "Crear carpetas por artistas",
"Create folders for albums": "Create folders for albums", "Create folders for albums": "Crear carpetas por álbumes",
"Download lyrics": "Descargar letras", "Download lyrics": "Descargar letras",
"Variables": "Variables", "Variables": "Variables",
"UI": "IU", "UI": "Interfaz de Usuario",
"Show autocomplete in search": "Show autocomplete in search", "Show autocomplete in search": "Mostrar autocompletado al buscar",
"Integrations": "Integrations", "Integrations": "Integraciones",
"This allows listening history, flow and recommendations to work properly.": "This allows listening history, flow and recommendations to work properly.", "This allows listening history, flow and recommendations to work properly.": "Esto permite registrar el historial, para que flow y las recomendaciones funcionen correctamente.",
"Log track listens to Deezer": "Registrar la canción que escucha a Deezer", "Log track listens to Deezer": "Enviar registro de reproducción a Deezer",
"Connect your LastFM account to allow scrobbling.": "Connect your LastFM account to allow scrobbling.", "Connect your LastFM account to allow scrobbling.": "Conecta tu cuenta de LastFM para permitir sincronizar tus canciones.",
"Login with LastFM": "Iniciar sesión con LastFM", "Login with LastFM": "Iniciar sesión con LastFM",
"Disconnect LastFM": "Disconnect LastFM", "Disconnect LastFM": "Desconectar LastFM",
"Requires restart to apply!": "Requires restart to apply!", "Requires restart to apply!": "¡Requiere reiniciar para aplicar!",
"Enable Discord Rich Presence, requires restart to toggle!": "Enable Discord Rich Presence, requires restart to toggle!", "Enable Discord Rich Presence, requires restart to toggle!": "¡Activar Rich Presence de Discord requiere reiniciar para cambiar!",
"Discord Rich Presence": "Discord Rich Presence", "Discord Rich Presence": "Rich Presence de Discord",
"Enable Discord join button for syncing tracks, requires restart to toggle!": "Activar el botón de unión de Discord para sincronizar las canciones, ¡requiere reiniciar para cambiarlo!", "Enable Discord join button for syncing tracks, requires restart to toggle!": "Activar el botón de unión de Discord para sincronizar las canciones, ¡requiere reiniciar para cambiarlo!",
"Discord Join Button": "Discord Join Button", "Discord Join Button": "Botón Unirse en Discord",
"Other": "Otro", "Other": "Otro",
"Minimize to tray": "Minimize to tray", "Minimize to tray": "Minimizar a la bandeja del sistema",
"Don't minimize to tray": "Don't minimize to tray", "Don't minimize to tray": "No minimizar a la bandeja del sistema",
"Close on exit": "Close on exit", "Close on exit": "Cerrar al salir",
"Settings saved!": "¡Configuraciones guardadas!", "Settings saved!": "¡Configuraciones guardadas!",
"Available only in Electron version!": "Available only in Electron version!", "Available only in Electron version!": "¡Disponible sólo en la versión Electron!",
"Crossfade (ms)": "Desvanecimiento (ms)", "Crossfade (ms)": "Transición (ms)",
"Select primary color": "Seleccionar color primario", "Select primary color": "Seleccionar color primario",
"Light theme": "Tema claro", "Light theme": "Tema claro",
"Create folders for playlists": "Crear carpetas para listas de reproducción", "Create folders for playlists": "Crear carpetas para listas de reproducción",
@ -120,5 +120,11 @@
"Discord": "Discord", "Discord": "Discord",
"Telegram Android Group": "Grupo de Android en Telegram", "Telegram Android Group": "Grupo de Android en Telegram",
"Credits:": "Créditos:", "Credits:": "Créditos:",
"Agree": "Acepto" "Agree": "Acepto",
"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!"
} }

View File

@ -120,5 +120,11 @@
"Discord": "Discord", "Discord": "Discord",
"Telegram Android Group": "Telegram Android Group", "Telegram Android Group": "Telegram Android Group",
"Credits:": "Credits:", "Credits:": "Credits:",
"Agree": "Agree" "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!"
} }

View File

@ -120,5 +120,11 @@
"Discord": "Discord", "Discord": "Discord",
"Telegram Android Group": "Telegram Android Group", "Telegram Android Group": "Telegram Android Group",
"Credits:": "Credits:", "Credits:": "Credits:",
"Agree": "Agree" "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!"
} }

View File

@ -120,5 +120,11 @@
"Discord": "Discord", "Discord": "Discord",
"Telegram Android Group": "Telegram Android Group", "Telegram Android Group": "Telegram Android Group",
"Credits:": "Credits:", "Credits:": "Credits:",
"Agree": "Agree" "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!"
} }

View File

@ -120,5 +120,11 @@
"Discord": "Discord", "Discord": "Discord",
"Telegram Android Group": "Telegram Android Group", "Telegram Android Group": "Telegram Android Group",
"Credits:": "Credits:", "Credits:": "Credits:",
"Agree": "Agree" "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!"
} }

View File

@ -120,5 +120,11 @@
"Discord": "Discord", "Discord": "Discord",
"Telegram Android Group": "Telegram Android Group", "Telegram Android Group": "Telegram Android Group",
"Credits:": "Credits:", "Credits:": "Credits:",
"Agree": "Agree" "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!"
} }

View File

@ -120,5 +120,11 @@
"Discord": "Discord", "Discord": "Discord",
"Telegram Android Group": "Telegram Android Group", "Telegram Android Group": "Telegram Android Group",
"Credits:": "Credits:", "Credits:": "Credits:",
"Agree": "Agree" "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!"
} }

View File

@ -120,5 +120,11 @@
"Discord": "Discord", "Discord": "Discord",
"Telegram Android Group": "Telegram Android Group", "Telegram Android Group": "Telegram Android Group",
"Credits:": "Credits:", "Credits:": "Credits:",
"Agree": "Agree" "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!"
} }

View File

@ -110,15 +110,21 @@
"Settings saved!": "Pengaturan tersimpan!", "Settings saved!": "Pengaturan tersimpan!",
"Available only in Electron version!": "Hanya tersedia di versi Electron!", "Available only in Electron version!": "Hanya tersedia di versi Electron!",
"Crossfade (ms)": "Crossfade (ms)", "Crossfade (ms)": "Crossfade (ms)",
"Select primary color": "Select primary color", "Select primary color": "Pilih warna utama",
"Light theme": "Light theme", "Light theme": "Tema cerah",
"Create folders for playlists": "Create folders for playlists", "Create folders for playlists": "Buat folder untuk daftar putar",
"About": "About", "About": "Tentang",
"Links:": "Links:", "Links:": "Tautan:",
"Telegram Releases": "Telegram Releases", "Telegram Releases": "Telegram Rilis",
"Telegram Group": "Telegram Group", "Telegram Group": "Telegram Grub",
"Discord": "Discord", "Discord": "Discord",
"Telegram Android Group": "Telegram Android Group", "Telegram Android Group": "Telegram Grub Android",
"Credits:": "Credits:", "Credits:": "Kredit:",
"Agree": "Agree" "Agree": "Setuju",
"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!"
} }

View File

@ -120,5 +120,11 @@
"Discord": "Discord", "Discord": "Discord",
"Telegram Android Group": "Telegram Android Group", "Telegram Android Group": "Telegram Android Group",
"Credits:": "Credits:", "Credits:": "Credits:",
"Agree": "Agree" "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!"
} }

View File

@ -120,5 +120,11 @@
"Discord": "Discord", "Discord": "Discord",
"Telegram Android Group": "Telegram Android Group", "Telegram Android Group": "Telegram Android Group",
"Credits:": "Credits:", "Credits:": "Credits:",
"Agree": "Agree" "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!"
} }

View File

@ -39,7 +39,7 @@
"Add to queue": "Dodaj do kolejki", "Add to queue": "Dodaj do kolejki",
"Remove from library": "Usuń z biblioteki", "Remove from library": "Usuń z biblioteki",
"Remove from playlist": "Usuń z playlisty", "Remove from playlist": "Usuń z playlisty",
"Play track mix": "Odtwórz mieszane utwory", "Play track mix": "Odtwarzaj losowo",
"Go to": "Przejdź do", "Go to": "Przejdź do",
"Track Mix": "Mieszaj utwory", "Track Mix": "Mieszaj utwory",
"Duration": "Czas trwania", "Duration": "Czas trwania",
@ -102,7 +102,7 @@
"Enable Discord Rich Presence, requires restart to toggle!": "Włącz Szczegółowy Widok Discord, wymaga ponownego uruchomienia!", "Enable Discord Rich Presence, requires restart to toggle!": "Włącz Szczegółowy Widok Discord, wymaga ponownego uruchomienia!",
"Discord Rich Presence": "Discord Rich Presence", "Discord Rich Presence": "Discord Rich Presence",
"Enable Discord join button for syncing tracks, requires restart to toggle!": "Włącz w Discordzie przycisk dołączenia, aby synchronizować utwory, wymaga ponownego uruchomienia!", "Enable Discord join button for syncing tracks, requires restart to toggle!": "Włącz w Discordzie przycisk dołączenia, aby synchronizować utwory, wymaga ponownego uruchomienia!",
"Discord Join Button": "Przycisk dołączenia Discord", "Discord Join Button": "Pokaż przycisk dołączenia do Discord",
"Other": "Inne", "Other": "Inne",
"Minimize to tray": "Minimalizuj do zasobnika", "Minimize to tray": "Minimalizuj do zasobnika",
"Don't minimize to tray": "Nie minimalizuj do zasobnika", "Don't minimize to tray": "Nie minimalizuj do zasobnika",
@ -110,15 +110,21 @@
"Settings saved!": "Ustawienia zapisane!", "Settings saved!": "Ustawienia zapisane!",
"Available only in Electron version!": "Dostępne tylko w wersji Electron!", "Available only in Electron version!": "Dostępne tylko w wersji Electron!",
"Crossfade (ms)": "Przejście (ms)", "Crossfade (ms)": "Przejście (ms)",
"Select primary color": "Select primary color", "Select primary color": "Wybierz podstawowy kolor",
"Light theme": "Light theme", "Light theme": "Wybierz jasny motyw",
"Create folders for playlists": "Create folders for playlists", "Create folders for playlists": "Utwórz folder dla playlist",
"About": "About", "About": "O programie",
"Links:": "Links:", "Links:": "Adresy:",
"Telegram Releases": "Telegram Releases", "Telegram Releases": "Nowe wydania w Telegram",
"Telegram Group": "Telegram Group", "Telegram Group": "Grupa w Telegramie",
"Discord": "Discord", "Discord": "Discord",
"Telegram Android Group": "Telegram Android Group", "Telegram Android Group": "Grupa Telegram dla wydań na Android",
"Credits:": "Credits:", "Credits:": "Twórcy:",
"Agree": "Agree" "Agree": "Akceptuję",
"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!"
} }

View File

@ -49,34 +49,34 @@
"Play top": "Reproduzir no topo", "Play top": "Reproduzir no topo",
"Radio": "Rádio", "Radio": "Rádio",
"Show all albums": "Mostrar todos os álbuns", "Show all albums": "Mostrar todos os álbuns",
"Show all singles": "Show all singles", "Show all singles": "Mostrar todas as músicas",
"Show more": "Show more", "Show more": "Mostrar mais",
"Downloaded": "Downloaded", "Downloaded": "Baixados",
"Queue": "Queue", "Queue": "Fila de Reprodução",
"Total": "Total", "Total": "Total",
"Stop": "Stop", "Stop": "Parar",
"Start": "Start", "Start": "Começar",
"Show folder": "Show folder", "Show folder": "Mostrar pastas",
"Clear queue": "Clear queue", "Clear queue": "Limpar lista",
"Playing from": "Playing from", "Playing from": "Reproduzindo de",
"Info": "Info", "Info": "Informações",
"Lyrics": "Lyrics", "Lyrics": "Letras",
"Track number": "Track number", "Track number": "Número de faixa",
"Disk number": "Disk number", "Disk number": "Numero de disco",
"Explicit": "Explicit", "Explicit": "Explicito",
"Source": "Source", "Source": "Fonte",
"ID": "ID", "ID": "Identificação",
"Error logging in!": "Error logging in!", "Error logging in!": "Erro de login!",
"Please try again later, or try another account.": "Please try again later, or try another account.", "Please try again later, or try another account.": "Por favor, tente novamente mais tarde ou tente outra conta.",
"Logout": "Logout", "Logout": "Encerrar sessão",
"Login using browser": "Login using browser", "Login using browser": "Login usando o navegador",
"Please login using your Deezer account:": "Please login using your Deezer account:", "Please login using your Deezer account:": "Faça login usando sua conta do Deezer:",
"...or paste your ARL/Token below:": "...or paste your ARL/Token below:", "...or paste your ARL/Token below:": "...ou cole seu ARL/Token abaixo:",
"ARL/Token": "ARL/Token", "ARL/Token": "ARL/Token",
"Login": "Login", "Login": "Login",
"By using this program, you disagree with Deezer's ToS.": "By using this program, you disagree with Deezer's ToS.", "By using this program, you disagree with Deezer's ToS.": "Ao usar este programa, você discorda do Acordo de Assinatura do Deezer.",
"Only in Electron version!": "Only in Electron version!", "Only in Electron version!": "Apenas na versão do Electron!",
"Search results for:": "Search results for:", "Search results for:": "Buscar resultados para:",
"Error loading data!": "Error loading data!", "Error loading data!": "Error loading data!",
"Try again later!": "Try again later!", "Try again later!": "Try again later!",
"Search": "Search", "Search": "Search",
@ -98,7 +98,7 @@
"Connect your LastFM account to allow scrobbling.": "Connect your LastFM account to allow scrobbling.", "Connect your LastFM account to allow scrobbling.": "Connect your LastFM account to allow scrobbling.",
"Login with LastFM": "Login with LastFM", "Login with LastFM": "Login with LastFM",
"Disconnect LastFM": "Disconnect LastFM", "Disconnect LastFM": "Disconnect LastFM",
"Requires restart to apply!": "Requires restart to apply!", "Requires restart to apply!": "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!", "Enable Discord Rich Presence, requires restart to toggle!": "Ativar o Rich Presence do Discord, requer reiniciar para alternar!",
"Discord Rich Presence": "Habilitar o Discord", "Discord Rich Presence": "Habilitar o Discord",
"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!", "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!",
@ -120,5 +120,11 @@
"Discord": "Discord", "Discord": "Discord",
"Telegram Android Group": "Grupo Android do Telegram", "Telegram Android Group": "Grupo Android do Telegram",
"Credits:": "Créditos:", "Credits:": "Créditos:",
"Agree": "Concordo" "Agree": "Concordo",
"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!"
} }

View File

@ -120,5 +120,11 @@
"Discord": "Discord", "Discord": "Discord",
"Telegram Android Group": "Telegram Android Group", "Telegram Android Group": "Telegram Android Group",
"Credits:": "Credits:", "Credits:": "Credits:",
"Agree": "Agree" "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!"
} }

View File

@ -120,5 +120,11 @@
"Discord": "Discord", "Discord": "Discord",
"Telegram Android Group": "Telegram Android Group", "Telegram Android Group": "Telegram Android Group",
"Credits:": "Credits:", "Credits:": "Credits:",
"Agree": "Agree" "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!"
} }

View File

@ -120,5 +120,11 @@
"Discord": "Discord", "Discord": "Discord",
"Telegram Android Group": "Telegram Android Group", "Telegram Android Group": "Telegram Android Group",
"Credits:": "Credits:", "Credits:": "Credits:",
"Agree": "Agree" "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!"
} }

View File

@ -63,7 +63,7 @@
"Lyrics": "Текст", "Lyrics": "Текст",
"Track number": "Номер треку", "Track number": "Номер треку",
"Disk number": "Номер диску", "Disk number": "Номер диску",
"Explicit": "Явний", "Explicit": "Докладно",
"Source": "Джерело", "Source": "Джерело",
"ID": "ID", "ID": "ID",
"Error logging in!": "Помилка входу!", "Error logging in!": "Помилка входу!",
@ -75,7 +75,7 @@
"ARL/Token": "ARL/токен", "ARL/Token": "ARL/токен",
"Login": "Увійти", "Login": "Увійти",
"By using this program, you disagree with Deezer's ToS.": "Використовуючи цю програму, ви не погоджуєтесь із умовами використання Deezer.", "By using this program, you disagree with Deezer's ToS.": "Використовуючи цю програму, ви не погоджуєтесь із умовами використання Deezer.",
"Only in Electron version!": "Тільки в Electron версії!", "Only in Electron version!": "Тільки в версії Electron!",
"Search results for:": "Результати пошуку для:", "Search results for:": "Результати пошуку для:",
"Error loading data!": "Помилка завантаження даних!", "Error loading data!": "Помилка завантаження даних!",
"Try again later!": "Повторіть спробу пізніше!", "Try again later!": "Повторіть спробу пізніше!",
@ -90,18 +90,18 @@
"Create folders for albums": "Створити теки для альбомів", "Create folders for albums": "Створити теки для альбомів",
"Download lyrics": "Завантажити тексти пісень", "Download lyrics": "Завантажити тексти пісень",
"Variables": "Змінні", "Variables": "Змінні",
"UI": "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.": "Для правильної роботи Flow, рекомендацій та історії.",
"Log track listens to Deezer": "Реєстр треків Deezer", "Log track listens to Deezer": "Відправляти статистику",
"Connect your LastFM account to allow scrobbling.": "Підключіть обліковий запис LastFM, щоб дозволити скроблінг.", "Connect your LastFM account to allow scrobbling.": "Підключити обліковий запис LastFM, щоб дозволити scrobbling.",
"Login with LastFM": "Увійти через LastFM", "Login with LastFM": "Увійти через LastFM",
"Disconnect LastFM": "Від'єднати LastFM", "Disconnect LastFM": "Від'єднати LastFM",
"Requires restart to apply!": "Необхідно перезапустити для застосування!", "Requires restart to apply!": "Необхідно перезапустити для застосування!",
"Enable Discord Rich Presence, requires restart to toggle!": "Увімкнути Discord Rich Presence, для використання необхідний перезапуск!", "Enable Discord Rich Presence, requires restart to toggle!": "Увімкнути Discord Rich Presence, для застосування потрібен перезапуск!",
"Discord Rich Presence": "Discord Rich Presence", "Discord Rich Presence": "Discord Rich Presence",
"Enable Discord join button for syncing tracks, requires restart to toggle!": "Увімкніть кнопку приєднання Discord для синхронізації треків, для застосування потрібен перезапуск!", "Enable Discord join button for syncing tracks, requires restart to toggle!": "Увімкнути приєднання до Discord для синхронізації треків, для застосування потрібен перезапуск!",
"Discord Join Button": "Кнопка приєднання до Discord", "Discord Join Button": "Кнопка приєднання до Discord",
"Other": "Інше", "Other": "Інше",
"Minimize to tray": "Згорнути в трей", "Minimize to tray": "Згорнути в трей",
@ -110,15 +110,21 @@
"Settings saved!": "Налаштування збережено!", "Settings saved!": "Налаштування збережено!",
"Available only in Electron version!": "Доступно лише в Electron версії!", "Available only in Electron version!": "Доступно лише в Electron версії!",
"Crossfade (ms)": "Перехресне затухання (мс)", "Crossfade (ms)": "Перехресне затухання (мс)",
"Select primary color": "Виберіть основний колір", "Select primary color": "Вибрати основний колір",
"Light theme": "Світла тема", "Light theme": "Світла тема",
"Create folders for playlists": "Створити теки для плейлистів", "Create folders for playlists": "Створити теки для плейлистів",
"About": "Про додаток", "About": "Про додаток",
"Links:": "Посилання:", "Links:": "Лінки:",
"Telegram Releases": "Telegram релізи", "Telegram Releases": "Telegram релізи",
"Telegram Group": "Група в Telegram", "Telegram Group": "Група в Telegram",
"Discord": "Discord", "Discord": "Discord",
"Telegram Android Group": "Група Андроїд Telegram", "Telegram Android Group": "Група Android в Telegram",
"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!"
} }

View File

@ -120,5 +120,11 @@
"Discord": "Discord", "Discord": "Discord",
"Telegram Android Group": "Telegram Android Group", "Telegram Android Group": "Telegram Android Group",
"Credits:": "Credits:", "Credits:": "Credits:",
"Agree": "Agree" "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!"
} }

View File

@ -108,7 +108,9 @@ new Vue({
}, },
//Used to prevent double listen logging //Used to prevent double listen logging
logListenId: null logListenId: null,
globalSnackbar: null
}, },
methods: { methods: {
@ -241,25 +243,30 @@ new Vue({
if (this.settings.crossfadeDuration > 0 && this.position >= (this.duration() - this.settings.crossfadeDuration) && this.state == 2 && this.gapless.audio && !this.gapless.crossfade) { if (this.settings.crossfadeDuration > 0 && this.position >= (this.duration() - this.settings.crossfadeDuration) && this.state == 2 && this.gapless.audio && !this.gapless.crossfade) {
this.gapless.crossfade = true; this.gapless.crossfade = true;
let currentVolume = this.audio.volume; let currentVolume = this.audio.volume;
this.gapless.audio.play(); let oldAudio = this.audio;
let volumeStep = currentVolume / (this.settings.crossfadeDuration / 50);
for (let i=0; i<(this.settings.crossfadeDuration / 50); i++) {
if ((this.audio.volume - volumeStep) > 0)
this.audio.volume -= volumeStep;
this.gapless.audio.volume += volumeStep;
await new Promise((res) => setTimeout(() => res(), 50));
}
this.audio.pause();
//Update audio
this.audio = this.gapless.audio; this.audio = this.gapless.audio;
this.audio.play();
//Update meta
this.playbackInfo = this.gapless.info; this.playbackInfo = this.gapless.info;
this.track = this.gapless.track; this.track = this.gapless.track;
this.queue.index = this.gapless.index; this.queue.index = this.gapless.index;
this.resetGapless();
this.configureAudio(); this.configureAudio();
this.updateMediaSession(); this.updateMediaSession();
let volumeStep = currentVolume / (this.settings.crossfadeDuration / 50);
for (let i=0; i<(this.settings.crossfadeDuration / 50); i++) {
if ((oldAudio.volume - volumeStep) > 0)
oldAudio.volume -= volumeStep;
this.audio.volume += volumeStep;
await new Promise((res) => setTimeout(() => res(), 50));
}
oldAudio.pause();
this.resetGapless();
//Save
await this.savePlaybackInfo(); await this.savePlaybackInfo();
} }

View File

@ -105,6 +105,7 @@ export default {
this.libraryLoading = true; this.libraryLoading = true;
await this.$axios.put(`/library/album?id=${this.album.id}`); await this.$axios.put(`/library/album?id=${this.album.id}`);
this.libraryLoading = false; this.libraryLoading = false;
this.$root.globalSnackbar = this.$t('Added to library!');
}, },
async download() { async download() {
this.downloadDialog = true; this.downloadDialog = true;

View File

@ -151,6 +151,7 @@ export default {
async library() { async library() {
this.libraryLoading = true; this.libraryLoading = true;
await this.$axios.put(`/library/artist?id=${this.artist.id}`); await this.$axios.put(`/library/artist?id=${this.artist.id}`);
this.$root.globalSnackbar = this.$t('Added to library!');
this.libraryLoading = false; this.libraryLoading = false;
}, },
async load() { async load() {

View File

@ -270,11 +270,13 @@ export default {
this.inLibrary = false; this.inLibrary = false;
//Remove from cache //Remove from cache
this.$root.libraryTracks.splice(this.$root.libraryTracks.indexOf(this.$root.track.id), 1); this.$root.libraryTracks.splice(this.$root.libraryTracks.indexOf(this.$root.track.id), 1);
this.$root.globalSnackbar = this.$t('Removed from library!');
return; return;
} }
await this.$axios.put('/library/track?id=' + this.$root.track.id); await this.$axios.put('/library/track?id=' + this.$root.track.id);
this.$root.libraryTracks.push(this.$root.track.id); this.$root.libraryTracks.push(this.$root.track.id);
this.inLibrary = true; this.inLibrary = true;
this.$root.globalSnackbar = this.$t('Added to library!');
}, },
//Download current track //Download current track
async download() { async download() {

View File

@ -141,6 +141,7 @@ export default {
this.libraryLoading = true; this.libraryLoading = true;
await this.$axios.put(`/library/playlist?id=${this.playlist.id}`); await this.$axios.put(`/library/playlist?id=${this.playlist.id}`);
this.libraryLoading = false; this.libraryLoading = false;
this.$root.globalSnackbar = this.$t('Added to library!');
}, },
async initialLoad() { async initialLoad() {

View File

@ -292,13 +292,16 @@ export default {
languages: [ languages: [
{code: 'en', name: 'English'}, {code: 'en', name: 'English'},
{code: 'ar', name: 'Arabic'}, {code: 'ar', name: 'Arabic'},
{code: 'fr', name: 'French'},
{code: 'de', name: 'German'}, {code: 'de', name: 'German'},
{code: 'el', name: 'Greek'}, {code: 'el', name: 'Greek'},
{code: 'id', name: 'Indonesian'}, {code: 'id', name: 'Indonesian'},
{code: 'it', name: 'Italian'}, {code: 'it', name: 'Italian'},
{code: 'pl', name: 'Polish'}, {code: 'pl', name: 'Polish'},
{code: 'pt', name: 'Portuguese'},
{code: 'ro', name: 'Romanian'}, {code: 'ro', name: 'Romanian'},
{code: 'ru', name: 'Russian'}, {code: 'ru', name: 'Russian'},
{code: 'es', name: 'Spanish'},
{code: 'tr', name: 'Turkish'}, {code: 'tr', name: 'Turkish'},
{code: 'uk', name: 'Ukrainian'} {code: 'uk', name: 'Ukrainian'}
], ],

View File

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

View File

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