diff --git a/src/app/subscription/subscription-file-card/subscription-file-card.component.ts b/src/app/subscription/subscription-file-card/subscription-file-card.component.ts
index 820577b6..c2c23e2e 100644
--- a/src/app/subscription/subscription-file-card/subscription-file-card.component.ts
+++ b/src/app/subscription/subscription-file-card/subscription-file-card.component.ts
@@ -1,6 +1,6 @@
import { Component, OnInit, Input, Output, EventEmitter } from '@angular/core';
import { Observable, Subject } from 'rxjs';
-import { MatSnackBar } from '@angular/material';
+import { MatSnackBar } from '@angular/material/snack-bar';
import { Router } from '@angular/router';
import { PostsService } from 'app/posts.services';
diff --git a/src/app/subscription/subscription/subscription.component.html b/src/app/subscription/subscription/subscription.component.html
index bb4c5d5c..d94a0a46 100644
--- a/src/app/subscription/subscription/subscription.component.html
+++ b/src/app/subscription/subscription/subscription.component.html
@@ -12,11 +12,11 @@
-
Videos
+ Videos
-
+
search
diff --git a/src/app/subscriptions/subscriptions.component.html b/src/app/subscriptions/subscriptions.component.html
index 80572fdc..5bf76bba 100644
--- a/src/app/subscriptions/subscriptions.component.html
+++ b/src/app/subscriptions/subscriptions.component.html
@@ -1,20 +1,17 @@
-
Your subscriptions
+
Your subscriptions
-
Channels
+
Channels
{{ sub.name }}
- Name not available. Channel retrieval in progress.
-
-
-
+ Name not available. Channel retrieval in progress.
-
You have no channel subscriptions.
+
You have no channel subscriptions.
-
Playlists
+
Playlists
{{ sub.name }}
- Name not available. Playlist retrieval in progress.
-
-
-
+ Name not available. Playlist retrieval in progress.
-
You have no playlist subscriptions.
+
You have no playlist subscriptions.
diff --git a/src/app/subscriptions/subscriptions.component.ts b/src/app/subscriptions/subscriptions.component.ts
index d8505b58..9614e876 100644
--- a/src/app/subscriptions/subscriptions.component.ts
+++ b/src/app/subscriptions/subscriptions.component.ts
@@ -1,5 +1,6 @@
import { Component, OnInit, EventEmitter } from '@angular/core';
-import { MatDialog, MatSnackBar } from '@angular/material';
+import { MatDialog } from '@angular/material/dialog';
+import { MatSnackBar } from '@angular/material/snack-bar';
import { SubscribeDialogComponent } from 'app/dialogs/subscribe-dialog/subscribe-dialog.component';
import { PostsService } from 'app/posts.services';
import { Router } from '@angular/router';
diff --git a/src/assets/i18n/messages.en.xlf b/src/assets/i18n/messages.en.xlf
new file mode 100644
index 00000000..8ec6073f
--- /dev/null
+++ b/src/assets/i18n/messages.en.xlf
@@ -0,0 +1,919 @@
+
+
+
+
+
+ Create a playlist
+
+ app/create-playlist/create-playlist.component.html
+ 1
+
+ Create a playlist dialog title
+
+
+ Name
+
+ app/create-playlist/create-playlist.component.html
+ 5
+
+ Playlist name placeholder
+
+
+ Audio files
+
+ app/create-playlist/create-playlist.component.html
+ 10
+
+ Audio files title
+
+
+ Videos
+
+ app/create-playlist/create-playlist.component.html
+ 11
+
+
+ app/subscription/subscription/subscription.component.html
+ 15
+
+ Videos title
+
+
+ Youtube Downloader
+
+ app/main/main.component.html
+ 5
+
+ Youtube downloader home page label
+
+
+ Please enter a valid URL!
+
+ app/main/main.component.html
+ 16
+
+ Enter valid URL error
+
+
+
+ Quality
+
+
+ app/main/main.component.html
+ 24
+
+ Quality select label
+
+
+ Use URL
+
+ app/main/main.component.html
+ 52
+
+ YT search Use URL button for searched video
+
+
+
+ View
+
+
+ app/main/main.component.html
+ 55
+
+ YT search View button for searched video
+
+
+
+ Only Audio
+
+
+ app/main/main.component.html
+ 65
+
+ Only Audio checkbox
+
+
+
+ Multi-download Mode
+
+
+ app/main/main.component.html
+ 70
+
+ Multi-download Mode checkbox
+
+
+
+ Download
+
+
+ app/main/main.component.html
+ 79
+
+ Main download button
+
+
+
+ Cancel
+
+
+ app/main/main.component.html
+ 84
+
+ Cancel download button
+
+
+
+ Advanced
+
+
+ app/main/main.component.html
+ 96
+
+ Advanced download mode panel
+
+
+
+ Simulated command:
+
+
+ app/main/main.component.html
+ 102
+
+ Simulated command label
+
+
+
+ Use custom args
+
+
+ app/main/main.component.html
+ 110
+
+ Use custom args checkbox
+
+
+ Custom args
+
+ app/main/main.component.html
+ 115
+
+
+ app/settings/settings.component.html
+ 83
+
+ Custom args placeholder
+
+
+
+ No need to include URL, just everything after.
+
+
+ app/main/main.component.html
+ 117
+
+ Custom Args input hint
+
+
+
+ Use custom output
+
+
+ app/main/main.component.html
+ 125
+
+ Use custom output checkbox
+
+
+ Custom output
+
+ app/main/main.component.html
+ 130
+
+ Custom output placeholder
+
+
+ Documentation
+
+ app/main/main.component.html
+ 132
+
+ Youtube-dl output template documentation link
+
+
+ Path is relative to the config download path. Don't include extension.
+
+ app/main/main.component.html
+ 133
+
+ Custom Output input hint
+
+
+
+ Use authentication
+
+
+ app/main/main.component.html
+ 139
+
+ Use authentication checkbox
+
+
+ Username
+
+ app/main/main.component.html
+ 144
+
+ YT Username placeholder
+
+
+ Password
+
+ app/main/main.component.html
+ 149
+
+ YT Password placeholder
+
+
+
+ Audio
+
+
+ app/main/main.component.html
+ 193
+
+ Audio files title
+
+
+
+ Your audio files are here
+
+
+ app/main/main.component.html
+ 198
+
+ Audio files description
+
+
+ Playlists
+
+ app/main/main.component.html
+ 213
+
+
+ app/main/main.component.html
+ 255
+
+
+ app/subscriptions/subscriptions.component.html
+ 27
+
+ Playlists title
+
+
+
+ No playlists available. Create one from your downloading audio files by clicking the blue plus button.
+
+
+ app/main/main.component.html
+ 224
+
+ No video playlists available text
+
+
+
+ Video
+
+
+ app/main/main.component.html
+ 234
+
+ Video files title
+
+
+
+ Your video files are here
+
+
+ app/main/main.component.html
+ 239
+
+ Video files description
+
+
+
+ No playlists available. Create one from your downloading video files by clicking the blue plus button.
+
+
+ app/main/main.component.html
+ 268
+
+ No video playlists available text
+
+
+ ID:
+
+ app/file-card/file-card.component.html
+ 6
+
+
+ app/download-item/download-item.component.html
+ 7
+
+
+ app/dialogs/subscription-info-dialog/subscription-info-dialog.component.html
+ 13
+
+ File or playlist ID
+
+
+ Count:
+
+ app/file-card/file-card.component.html
+ 7
+
+ Playlist video count
+
+
+ Settings
+
+ app/settings/settings.component.html
+ 1
+
+
+ app/app.component.html
+ 22
+
+ Settings title
+
+
+ Host
+
+ app/settings/settings.component.html
+ 8
+
+ Host settings title
+
+
+ URL
+
+ app/settings/settings.component.html
+ 15
+
+
+ app/dialogs/subscribe-dialog/subscribe-dialog.component.html
+ 8
+
+ URL input placeholder
+
+
+ URL this app will be accessed from, without the port.
+
+ app/settings/settings.component.html
+ 16
+
+ URL setting input hint
+
+
+ Port
+
+ app/settings/settings.component.html
+ 21
+
+ Port input placeholder
+
+
+ The desired port. Default is 17442.
+
+ app/settings/settings.component.html
+ 22
+
+ Port setting input hint
+
+
+ Encryption
+
+ app/settings/settings.component.html
+ 34
+
+ Encryption settings title
+
+
+ Use encryption
+
+ app/settings/settings.component.html
+ 40
+
+ Use encryption setting
+
+
+ Cert file path
+
+ app/settings/settings.component.html
+ 45
+
+ Cert file path input placeholder
+
+
+ Key file path
+
+ app/settings/settings.component.html
+ 51
+
+ Key file path input placeholder
+
+
+ Downloader
+
+ app/settings/settings.component.html
+ 62
+
+ Downloader settings title
+
+
+ Audio folder path
+
+ app/settings/settings.component.html
+ 69
+
+ Audio folder path input placeholder
+
+
+ Path for audio only downloads. It is relative to YTDL-Material's root folder.
+
+ app/settings/settings.component.html
+ 70
+
+ Aduio path setting input hint
+
+
+ Video folder path
+
+ app/settings/settings.component.html
+ 76
+
+ Video folder path input placeholder
+
+
+ Path for video downloads. It is relative to YTDL-Material's root folder.
+
+ app/settings/settings.component.html
+ 77
+
+ Video path setting input hint
+
+
+ Global custom args for downloads on the home page.
+
+ app/settings/settings.component.html
+ 84
+
+ Custom args setting input hint
+
+
+ Extra
+
+ app/settings/settings.component.html
+ 95
+
+ Extra settings title
+
+
+ Top title
+
+ app/settings/settings.component.html
+ 102
+
+ Top title input placeholder
+
+
+ File manager enabled
+
+ app/settings/settings.component.html
+ 107
+
+ File manager enabled setting
+
+
+ Allow quality select
+
+ app/settings/settings.component.html
+ 110
+
+ Allow quality seelct setting
+
+
+ Download only mode
+
+ app/settings/settings.component.html
+ 113
+
+ Download only mode setting
+
+
+ Allow multi-download mode
+
+ app/settings/settings.component.html
+ 116
+
+ Allow multi-downloade mode setting
+
+
+ API
+
+ app/settings/settings.component.html
+ 126
+
+ API settings title
+
+
+ Use YouTube API
+
+ app/settings/settings.component.html
+ 132
+
+ Use YouTube API setting
+
+
+ Youtube API Key
+
+ app/settings/settings.component.html
+ 136
+
+ Youtube API Key setting placeholder
+
+
+ Generating a key is easy!
+
+ app/settings/settings.component.html
+ 137
+
+ Youtube API Key setting hint
+
+
+ Themes
+
+ app/settings/settings.component.html
+ 148
+
+ Themes settings title
+
+
+ Default
+
+ app/settings/settings.component.html
+ 155
+
+ Default theme label
+
+
+ Dark
+
+ app/settings/settings.component.html
+ 156
+
+
+ app/app.component.html
+ 17
+
+ Dark theme label
+
+
+ Allow theme change
+
+ app/settings/settings.component.html
+ 161
+
+ Allow theme change setting
+
+
+ Subscriptions
+
+ app/settings/settings.component.html
+ 171
+
+
+ app/app.component.html
+ 34
+
+ Subscriptions settings title
+
+
+ Allow subscriptions
+
+ app/settings/settings.component.html
+ 177
+
+ Allow subscriptions setting
+
+
+ Subscriptions base path
+
+ app/settings/settings.component.html
+ 181
+
+ Subscriptions base path input setting placeholder
+
+
+ Base path for videos from your subscribed channels and playlists. It is relative to YTDL-Material's root folder.
+
+ app/settings/settings.component.html
+ 182
+
+ Subscriptions base path setting input hint
+
+
+ Check interval
+
+ app/settings/settings.component.html
+ 187
+
+ Check interval input setting placeholder
+
+
+ Unit is seconds, only include numbers.
+
+ app/settings/settings.component.html
+ 188
+
+ Check interval setting input hint
+
+
+ Use youtube-dl archive
+
+ app/settings/settings.component.html
+ 192
+
+ Use youtube-dl archive setting
+
+
+ With youtube-dl's archive
+
+ app/settings/settings.component.html
+ 193
+
+ youtube-dl archive explanation prefix link
+
+
+ feature, downloaded videos from your subscriptions get recorded in a text file in the subscriptions archive sub-directory.
+
+ app/settings/settings.component.html
+ 193
+
+ youtube-dl archive explanation middle
+
+
+ This enables the ability to permanently delete videos from your subscriptions without unsubscribing, and allows you to record which videos you downloaded in case of data loss.
+
+ app/settings/settings.component.html
+ 194
+
+ youtube-dl archive explanation suffix
+
+
+ Advanced
+
+ app/settings/settings.component.html
+ 204
+
+ Advanced settings title
+
+
+ Use default downloading agent
+
+ app/settings/settings.component.html
+ 210
+
+ Use default downloading agent setting
+
+
+ Custom agent
+
+ app/settings/settings.component.html
+ 214
+
+ Custom agent setting placeholder
+
+
+ Allow advanced download
+
+ app/settings/settings.component.html
+ 219
+
+ Allow advanced downloading setting
+
+
+ Save
+
+ app/settings/settings.component.html
+ 229
+
+ Settings save button
+
+
+ Cancel
+
+ app/settings/settings.component.html
+ 232
+
+
+ app/dialogs/subscribe-dialog/subscribe-dialog.component.html
+ 37
+
+ Settings cancel button
+
+
+ Home
+
+ app/app.component.html
+ 33
+
+ Navigation menu Home Page title
+
+
+ Save changes
+
+ app/player/player.component.html
+ 22
+
+ Playlist save changes button
+
+
+ Subscribe to playlist or channel
+
+ app/dialogs/subscribe-dialog/subscribe-dialog.component.html
+ 1
+
+ Subscribe dialog title
+
+
+ The playlist or channel URL
+
+ app/dialogs/subscribe-dialog/subscribe-dialog.component.html
+ 9
+
+ Subscription URL input hint
+
+
+ Custom name
+
+ app/dialogs/subscribe-dialog/subscribe-dialog.component.html
+ 14
+
+ Subscription custom name placeholder
+
+
+ This is optional
+
+ app/dialogs/subscribe-dialog/subscribe-dialog.component.html
+ 15
+
+ Custom name input hint
+
+
+ Download all uploads
+
+ app/dialogs/subscribe-dialog/subscribe-dialog.component.html
+ 19
+
+ Download all uploads subscription setting
+
+
+ Download videos uploaded in the last
+
+ app/dialogs/subscribe-dialog/subscribe-dialog.component.html
+ 22
+
+ Download time range prefix
+
+
+ Type:
+
+ app/dialogs/subscription-info-dialog/subscription-info-dialog.component.html
+ 5
+
+ Subscription type property
+
+
+ URL:
+
+ app/dialogs/subscription-info-dialog/subscription-info-dialog.component.html
+ 9
+
+ Subscription URL property
+
+
+ Archive:
+
+ app/dialogs/subscription-info-dialog/subscription-info-dialog.component.html
+ 17
+
+ Subscription ID property
+
+
+ Close
+
+ app/dialogs/subscription-info-dialog/subscription-info-dialog.component.html
+ 23
+
+ Close subscription info button
+
+
+ Export Archive
+
+ app/dialogs/subscription-info-dialog/subscription-info-dialog.component.html
+ 24
+
+ Export Archive button
+
+
+ Unsubscribe
+
+ app/dialogs/subscription-info-dialog/subscription-info-dialog.component.html
+ 26
+
+ Unsubscribe button
+
+
+ Your subscriptions
+
+ app/subscriptions/subscriptions.component.html
+ 3
+
+ Subscriptions title
+
+
+ Channels
+
+ app/subscriptions/subscriptions.component.html
+ 8
+
+ Subscriptions channels title
+
+
+ Name not available. Channel retrieval in progress.
+
+ app/subscriptions/subscriptions.component.html
+ 14
+
+ Subscription playlist not available text
+
+
+ You have no channel subscriptions.
+
+ app/subscriptions/subscriptions.component.html
+ 24
+
+ No channel subscriptions text
+
+
+ Name not available. Playlist retrieval in progress.
+
+ app/subscriptions/subscriptions.component.html
+ 33
+
+ Subscription playlist not available text
+
+
+ You have no playlist subscriptions.
+
+ app/subscriptions/subscriptions.component.html
+ 43
+
+ No playlist subscriptions text
+
+
+ Search
+
+ app/subscription/subscription/subscription.component.html
+ 19
+
+ Subscription videos search placeholder
+
+
+ Length:
+
+ app/subscription/subscription-file-card/subscription-file-card.component.html
+ 3
+
+ Video duration label
+
+
+ Delete and redownload
+
+ app/subscription/subscription-file-card/subscription-file-card.component.html
+ 7
+
+ Delete and redownload subscription video button
+
+
+ Delete forever
+
+ app/subscription/subscription-file-card/subscription-file-card.component.html
+ 8
+
+ Delete forever subscription video button
+
+
+
+
diff --git a/src/assets/i18n/messages.es.json b/src/assets/i18n/messages.es.json
new file mode 100644
index 00000000..c197eaaf
--- /dev/null
+++ b/src/assets/i18n/messages.es.json
@@ -0,0 +1,106 @@
+{
+ "17f0ea5d2d7a262b0e875acc70475f102aee84e6": "Crea una lista de reproducción",
+ "cff1428d10d59d14e45edec3c735a27b5482db59": "Nombre",
+ "f47e2d56dd8a145b2e9599da9730c049d52962a2": "Archivos de sonido",
+ "a52dae09be10ca3a65da918533ced3d3f4992238": "Archivos de video",
+ "038ebcb2a89155d90c24fa1c17bfe83dbadc3c20": "Descargador de Youtube",
+ "6d2ec8898344c8955542b0542c942038ef28bb80": "Por favor entre una URL válida",
+ "a38ae1082fec79ba1f379978337385a539a28e73": "Calidad",
+ "4be966a9dcfbc9b54dfcc604b831c0289f847fa4": "Usa URL",
+ "d3f02f845e62cebd75fde451ab8479d2a8ad784d": "Ver",
+ "4a9889d36910edc8323d7bab60858ab3da6d91df": "Solo audio",
+ "96a01fafe135afc58b0f8071a4ab00234495ce18": "Descarga múltiple",
+ "6a21ba5fb0ac804a525bf9ab168038c3ee88e661": "Descarga",
+ "6a3777f913cf3f288664f0632b9f24794fdcc24e": "Cancela",
+ "322ed150e02666fe2259c5b4614eac7066f4ffa0": "Avanzado",
+ "b7ffe7c6586d6f3f18a9246806a7c7d5538ab43e": "Commando simulado:",
+ "4e4c721129466be9c3862294dc40241b64045998": "Usar argumentos personalizados",
+ "ad2f8ac8b7de7945b80c8e424484da94e597125f": "Argumentos personalizados",
+ "ccc7e92cbdd35e901acf9ad80941abee07bd8f60": "No es necesario incluir URL, solo todo después",
+ "3a92a3443c65a52f37ca7efb8f453b35dbefbf29": "Usar salida personalizada",
+ "d9c02face477f2f9cdaae318ccee5f89856851fb": "Salida personalizada",
+ "fcfd4675b4c90f08d18d3abede9a9a4dff4cfdc7": "Documentación",
+ "19d1ae64d94d28a29b2c57ae8671aace906b5401": "La ruta es relativa a la ruta de descarga de la config. No incluya el extensión.",
+ "8fad10737d3e3735a6699a4d89cbf6c20f6bb55f": "Usa autenticación",
+ "08c74dc9762957593b91f6eb5d65efdfc975bf48": "Nombre de usuario",
+ "c32ef07f8803a223a83ed17024b38e8d82292407": "Contraseña",
+ "4a0dada6e841a425de3e5006e6a04df26c644fa5": "Audio",
+ "9779715ac05308973d8f1c8658b29b986e92450f": "Tus archivos de audio están aquí",
+ "47546e45bbb476baaaad38244db444c427ddc502": "Listas de reproducción",
+ "78bd81adb4609b68cfa4c589222bdc233ba1faaa": "No hay listas de reproducción disponibles. Cree uno de tus archivos de audio haciendo clic en el botón azul más.",
+ "9d2b62bb0b91e2e17fb4177a7e3d6756a2e6ee33": "Vídeo",
+ "960582a8b9d7942716866ecfb7718309728f2916": "Tus archivos de video son aquí",
+ "0f59c46ca29e9725898093c9ea6b586730d0624e": "No hay listas de reproducción disponibles. Cree uno de tus archivos de video haciendo clic en el botón azul más.",
+ "ca3dbbc7f3e011bffe32a10a3ea45cc84f30ecf1": "ID:",
+ "e684046d73bcee88e82f7ff01e2852789a05fc32": "Cuenta:",
+ "121cc5391cd2a5115bc2b3160379ee5b36cd7716": "Configuraciones",
+ "fe22ca53e651df951dac25b67c17894b0980f767": "Host",
+ "801b98c6f02fe3b32f6afa3ee854c99ed83474e6": "URL",
+ "54c512cca1923ab72faf1a0bd98d3d172469629a": "URL desde la que se accederá a esta aplicación, sin el puerto.",
+ "cb2741a46e3560f6bc6dfd99d385e86b08b26d72": "Puerto",
+ "22e8f1d0423a3b784fe40fab187b92c06541b577": "Puerto deseado. El valor predeterminado es 17442.",
+ "948758e1412bb2ecdb98e3a4f1cbb6d7458456f2": "Cifrado",
+ "cbe16a57be414e84b6a68309d08fad894df797d6": "Usa cifrado",
+ "0c1875a79b7ecc792cc1bebca3e063e40b5764f9": "Ruta del archivo de certificado",
+ "736551b93461d2de64b118cf4043eee1d1c2cb2c": "Ruta de archivo de clave",
+ "0ba25ad86a240576c4f20a2fada4722ebba77b1e": "Descargador",
+ "ab2756805742e84ad0cc0468f4be2d8aa9f855a5": "Ruta de la carpeta de audio",
+ "c2c89cdf45d46ea64d2ed2f9ac15dfa4d77e26ca": "Ruta para descargas de solo audio. Es relativo a la carpeta raíz de YTDL-Material.",
+ "46826331da1949bd6fb74624447057099c9d20cd": "Ruta de la carpeta de video",
+ "17c92e6d47a213fa95b5aa344b3f258147123f93": "Ruta de descarga de videos. Es relativo a la carpeta raíz de YTDL-Material.",
+ "f41145afc02fd47ef0576ac79acd2c47ebbf4901": "Argumentos personalizados globales para descargas en la página de inicio.",
+ "d5f69691f9f05711633128b5a3db696783266b58": "Extra",
+ "61f8fd90b5f8cb20c70371feb2ee5e1fac5a9095": "Título superior",
+ "78d3531417c0d4ba4c90f0d4ae741edc261ec8df": "Administrador de archivos habilitado",
+ "c33bd5392b39dbed36b8e5a1145163a15d45835f": "Permitir selección de calidad",
+ "bda5508e24e0d77debb28bcd9194d8fefb1cfb92": "Modo de solo descarga",
+ "09d31c803a7252658694e1e3176b97f5655a3fe3": "Permitir el modo de descarga múltiple",
+ "e351b40b3869a5c7d19c3d4918cb1ac7aaab95c4": "API",
+ "d5d7c61349f3b0859336066e6d453fc35d334fe5": "Utilizar la API de YouTube",
+ "ce10d31febb3d9d60c160750570310f303a22c22": "Clave API de YouTube",
+ "8602e313cdfa7c4cc475ccbe86459fce3c3fd986": "¡Generar una clave es fácil!",
+ "60c855c323706a04ccd2ff22d634bde9b6233bbf": "Temas",
+ "ff7cee38a2259526c519f878e71b964f41db4348": "Defecto",
+ "adb4562d2dbd3584370e44496969d58c511ecb63": "Oscura",
+ "7a6bacee4c31cb5c0ac2d24274fb4610d8858602": "Permitir cambio de tema",
+ "357064ca9d9ac859eb618e28e8126fa32be049e2": "Suscripciones",
+ "4e3120311801c4acd18de7146add2ee4a4417773": "Permitir suscripciones",
+ "4bee2a4bef2d26d37c9b353c278e24e5cd309ce3": "Ruta base de suscripciones",
+ "bc9892814ee2d119ae94378c905ea440a249b84a": "Ruta base para videos de sus canales y listas de reproducción suscritos. Es relativo a la carpeta raíz de YTDL-Material.",
+ "5bef4b25ba680da7fff06b86a91b1fc7e6a926e3": "Intervalo de comprobación",
+ "0f56a7449b77630c114615395bbda4cab398efd8": "La unidad es segundos, solo incluye números.",
+ "78e49b7339b4fa7184dd21bcaae107ce9b7076f6": "Usa el archivo de youtube-dl",
+ "fa9fe4255231dd1cc6b29d3d254a25cb7c764f0f": "Con la función de archivo de youtube-dl,",
+ "09006404cccc24b7a8f8d1ce0b39f2761ab841d8": "los videos descargados de sus suscripciones se graban en un archivo de texto en el subdirectorio del archivo de suscripciones.",
+ "29ed79a98fc01e7f9537777598e31dbde3aa7981": "Esto permite eliminar videos de sus suscripciones de forma permanente sin darse de baja y le permite grabar los videos que descargó en caso de pérdida de datos.",
+ "bc2e854e111ecf2bd7db170da5e3c2ed08181d88": "Avanzado",
+ "5fab47f146b0a4b809dcebf3db9da94df6299ea1": "Usar agente de descarga predeterminado",
+ "cdf75b1bdda80487e2ce1ff264ae171cbc5dc3b1": "Agente personalizado",
+ "dc3d990391c944d1fbfc7cfb402f7b5e112fb3a8": "Permitir descarga avanzada",
+ "52c9a103b812f258bcddc3d90a6e3f46871d25fe": "Salvar",
+ "d7b35c384aecd25a516200d6921836374613dfe7": "Cancelar",
+ "92eee6be6de0b11c924e3ab27db30257159c0a7c": "Inicio",
+ "5b3075e8dc3f3921ec316b0bd83b6d14a06c1a4f": "Guardar cambios",
+ "a9806cf78ce00eb2613eeca11354a97e033377b8": "Suscríbase a la lista de reproducción o al canal",
+ "93efc99ae087fc116de708ecd3ace86ca237cf30": "La lista de reproducción o la URL del canal",
+ "08f5d0ef937ae17feb1b04aff15ad88911e87baf": "Nombre personalizado",
+ "f3f62aa84d59f3a8b900cc9a7eec3ef279a7b4e7": "Esto es opcional",
+ "ea30873bd3f0d5e4fb2378eec3f0a1db77634a28": "Descargar todas las cargas",
+ "28a678e9cabf86e44c32594c43fa0e890135c20f": "Descargar videos subidos en el último",
+ "e78c0d60ac39787f62c9159646fe0b3c1ed55a1d": "Tipo:",
+ "c52db455cca9109ee47e1a612c3f4117c09eb71b": "URL:",
+ "a44d86aa1e6c20ced07aca3a7c081d8db9ded1c6": "Archivo:",
+ "f4e529ae5ffd73001d1ff4bbdeeb0a72e342e5c8": "Cerca",
+ "8efc77bf327659c0fec1f518cf48a98cdcd9dddf": "Exportar el archivo",
+ "3042bd3ad8dffcfeca5fd1ae6159fd1047434e95": "Darse de baja",
+ "e2319dec5b4ccfb6ed9f55ccabd63650a8fdf547": "Sus suscripciones",
+ "807cf11e6ac1cde912496f764c176bdfdd6b7e19": "Canales",
+ "29b89f751593e1b347eef103891b7a1ff36ec03f": "Nombre no disponible. Recuperación de canales en progreso.",
+ "4636cd4a1379c50d471e98786098c4d39e1e82ad": "No tienes suscripciones de canal.",
+ "2e0a410652cb07d069f576b61eab32586a18320d": "Nombre no disponible. Recuperación de listas de reproducción en progreso.",
+ "587b57ced54965d8874c3fd0e9dfedb987e5df04": "No tienes suscripciones a listas de reproducción.",
+ "7e892ba15f2c6c17e83510e273b3e10fc32ea016": "Buscar",
+ "2054791b822475aeaea95c0119113de3200f5e1c": "Duración:",
+ "94e01842dcee90531caa52e4147f70679bac87fe": "Eliminar y volver a descargar",
+ "2031adb51e07a41844e8ba7704b054e98345c9c1": "Borrar para siempre"
+}
\ No newline at end of file
diff --git a/src/assets/i18n/messages.es.xlf b/src/assets/i18n/messages.es.xlf
new file mode 100644
index 00000000..0fbee7fa
--- /dev/null
+++ b/src/assets/i18n/messages.es.xlf
@@ -0,0 +1,987 @@
+
+
+
+
+
+ Create a playlist
+
+ app/create-playlist/create-playlist.component.html
+ 1
+
+ Create a playlist dialog title
+ Crea una lista de reproducción
+
+
+ Name
+
+ app/create-playlist/create-playlist.component.html
+ 5
+
+ Playlist name placeholder
+ Nombre
+
+
+ Audio files
+
+ app/create-playlist/create-playlist.component.html
+ 10
+
+ Audio files title
+ Archivos de sonido
+
+
+ Videos
+
+ app/create-playlist/create-playlist.component.html
+ 11
+
+
+ app/subscription/subscription/subscription.component.html
+ 15
+
+ Videos title
+ Archivos de video
+
+
+ Youtube Downloader
+
+ app/main/main.component.html
+ 5
+
+ Youtube downloader home page label
+ Descargador de Youtube
+
+
+ Please enter a valid URL!
+
+ app/main/main.component.html
+ 16
+
+ Enter valid URL error
+ Por favor entre una URL válida
+
+
+ Quality
+
+ app/main/main.component.html
+ 24
+
+ Quality select label
+ Calidad
+
+
+ Use URL
+
+ app/main/main.component.html
+ 52
+
+ YT search Use URL button for searched video
+ Usa URL
+
+
+ View
+
+ app/main/main.component.html
+ 55
+
+ YT search View button for searched video
+ Ver
+
+
+ Only Audio
+
+ app/main/main.component.html
+ 65
+
+ Only Audio checkbox
+ Solo audio
+
+
+ Multi-download Mode
+
+ app/main/main.component.html
+ 70
+
+ Multi-download Mode checkbox
+ Descarga múltiple
+
+
+ Download
+
+ app/main/main.component.html
+ 79
+
+ Main download button
+ Descarga
+
+
+ Cancel
+
+ app/main/main.component.html
+ 84
+
+ Cancel download button
+ Cancela
+
+
+ Advanced
+
+ app/main/main.component.html
+ 96
+
+ Advanced download mode panel
+ Avanzado
+
+
+ Simulated command:
+
+ app/main/main.component.html
+ 102
+
+ Simulated command label
+ Commando simulado:
+
+
+ Use custom args
+
+ app/main/main.component.html
+ 110
+
+ Use custom args checkbox
+ Usar argumentos personalizados
+
+
+ Custom args
+
+ app/main/main.component.html
+ 115
+
+
+ app/settings/settings.component.html
+ 83
+
+ Custom args placeholder
+ Argumentos personalizados
+
+
+ No need to include URL, just everything after.
+
+ app/main/main.component.html
+ 117
+
+ Custom Args input hint
+ No es necesario incluir URL, solo todo después
+
+
+ Use custom output
+
+ app/main/main.component.html
+ 125
+
+ Use custom output checkbox
+ Usar salida personalizada
+
+
+ Custom output
+
+ app/main/main.component.html
+ 130
+
+ Custom output placeholder
+ Salida personalizada
+
+
+ Documentation
+
+ app/main/main.component.html
+ 132
+
+ Youtube-dl output template documentation link
+ Documentación
+
+
+ Path is relative to the config download path. Don't include extension.
+
+ app/main/main.component.html
+ 133
+
+ Custom Output input hint
+ La ruta es relativa a la ruta de descarga de la config. No incluya el extensión.
+
+
+ Use authentication
+
+ app/main/main.component.html
+ 139
+
+ Use authentication checkbox
+ Usa autenticación
+
+
+ Username
+
+ app/main/main.component.html
+ 144
+
+ YT Username placeholder
+ Nombre de usuario
+
+
+ Password
+
+ app/main/main.component.html
+ 149
+
+ YT Password placeholder
+ Contraseña
+
+
+ Audio
+
+ app/main/main.component.html
+ 193
+
+ Audio files title
+ Audio
+
+
+ Your audio files are here
+
+ app/main/main.component.html
+ 198
+
+ Audio files description
+ Tus archivos de audio están aquí
+
+
+ Playlists
+
+ app/main/main.component.html
+ 213
+
+
+ app/main/main.component.html
+ 255
+
+
+ app/subscriptions/subscriptions.component.html
+ 27
+
+ Playlists title
+ Listas de reproducción
+
+
+ No playlists available. Create one from your downloading audio files by clicking the blue plus button.
+
+ app/main/main.component.html
+ 224
+
+ No video playlists available text
+ No hay listas de reproducción disponibles. Cree uno de tus archivos de audio haciendo clic en el botón azul más.
+
+
+ Video
+
+ app/main/main.component.html
+ 234
+
+ Video files title
+ Vídeo
+
+
+ Your video files are here
+
+ app/main/main.component.html
+ 239
+
+ Video files description
+ Tus archivos de video son aquí
+
+
+ No playlists available. Create one from your downloading video files by clicking the blue plus button.
+
+ app/main/main.component.html
+ 268
+
+ No video playlists available text
+ No hay listas de reproducción disponibles. Cree uno de tus archivos de video haciendo clic en el botón azul más.
+
+
+ ID:
+
+ app/file-card/file-card.component.html
+ 6
+
+
+ app/download-item/download-item.component.html
+ 7
+
+
+ app/dialogs/subscription-info-dialog/subscription-info-dialog.component.html
+ 13
+
+ File or playlist ID
+ ID:
+
+
+ Count:
+
+ app/file-card/file-card.component.html
+ 7
+
+ Playlist video count
+ Cuenta:
+
+
+ Settings
+
+ app/settings/settings.component.html
+ 1
+
+
+ app/app.component.html
+ 22
+
+ Settings title
+ Configuraciones
+
+
+ Host
+
+ app/settings/settings.component.html
+ 8
+
+ Host settings title
+ Host
+
+
+ URL
+
+ app/settings/settings.component.html
+ 15
+
+
+ app/dialogs/subscribe-dialog/subscribe-dialog.component.html
+ 8
+
+ URL input placeholder
+ URL
+
+
+ URL this app will be accessed from, without the port.
+
+ app/settings/settings.component.html
+ 16
+
+ URL setting input hint
+ URL desde la que se accederá a esta aplicación, sin el puerto.
+
+
+ Port
+
+ app/settings/settings.component.html
+ 21
+
+ Port input placeholder
+ Puerto
+
+
+ The desired port. Default is 17442.
+
+ app/settings/settings.component.html
+ 22
+
+ Port setting input hint
+ Puerto deseado. El valor predeterminado es 17442.
+
+
+ Encryption
+
+ app/settings/settings.component.html
+ 34
+
+ Encryption settings title
+ Cifrado
+
+
+ Use encryption
+
+ app/settings/settings.component.html
+ 40
+
+ Use encryption setting
+ Usa cifrado
+
+
+ Cert file path
+
+ app/settings/settings.component.html
+ 45
+
+ Cert file path input placeholder
+ Ruta del archivo de certificado
+
+
+ Key file path
+
+ app/settings/settings.component.html
+ 51
+
+ Key file path input placeholder
+ Ruta de archivo de clave
+
+
+ Downloader
+
+ app/settings/settings.component.html
+ 62
+
+ Downloader settings title
+ Descargador
+
+
+ Audio folder path
+
+ app/settings/settings.component.html
+ 69
+
+ Audio folder path input placeholder
+ Ruta de la carpeta de audio
+
+
+ Path for audio only downloads. It is relative to YTDL-Material's root folder.
+
+ app/settings/settings.component.html
+ 70
+
+ Aduio path setting input hint
+ Ruta para descargas de solo audio. Es relativo a la carpeta raíz de YTDL-Material.
+
+
+ Video folder path
+
+ app/settings/settings.component.html
+ 76
+
+ Video folder path input placeholder
+ Ruta de la carpeta de video
+
+
+ Path for video downloads. It is relative to YTDL-Material's root folder.
+
+ app/settings/settings.component.html
+ 77
+
+ Video path setting input hint
+ Ruta de descarga de videos. Es relativo a la carpeta raíz de YTDL-Material.
+
+
+ Global custom args for downloads on the home page.
+
+ app/settings/settings.component.html
+ 84
+
+ Custom args setting input hint
+ Argumentos personalizados globales para descargas en la página de inicio.
+
+
+ Extra
+
+ app/settings/settings.component.html
+ 95
+
+ Extra settings title
+ Extra
+
+
+ Top title
+
+ app/settings/settings.component.html
+ 102
+
+ Top title input placeholder
+ Título superior
+
+
+ File manager enabled
+
+ app/settings/settings.component.html
+ 107
+
+ File manager enabled setting
+ Administrador de archivos habilitado
+
+
+ Allow quality select
+
+ app/settings/settings.component.html
+ 110
+
+ Allow quality seelct setting
+ Permitir selección de calidad
+
+
+ Download only mode
+
+ app/settings/settings.component.html
+ 113
+
+ Download only mode setting
+ Modo de solo descarga
+
+
+ Allow multi-download mode
+
+ app/settings/settings.component.html
+ 116
+
+ Allow multi-downloade mode setting
+ Permitir el modo de descarga múltiple
+
+
+ API
+
+ app/settings/settings.component.html
+ 126
+
+ API settings title
+ API
+
+
+ Use YouTube API
+
+ app/settings/settings.component.html
+ 132
+
+ Use YouTube API setting
+ Utilizar la API de YouTube
+
+
+ Youtube API Key
+
+ app/settings/settings.component.html
+ 136
+
+ Youtube API Key setting placeholder
+ Clave API de YouTube
+
+
+ Generating a key is easy!
+
+ app/settings/settings.component.html
+ 137
+
+ Youtube API Key setting hint
+ ¡Generar una clave es fácil!
+
+
+ Themes
+
+ app/settings/settings.component.html
+ 148
+
+ Themes settings title
+ Temas
+
+
+ Default
+
+ app/settings/settings.component.html
+ 155
+
+ Default theme label
+ Defecto
+
+
+ Dark
+
+ app/settings/settings.component.html
+ 156
+
+
+ app/app.component.html
+ 17
+
+ Dark theme label
+ Oscura
+
+
+ Allow theme change
+
+ app/settings/settings.component.html
+ 161
+
+ Allow theme change setting
+ Permitir cambio de tema
+
+
+ Subscriptions
+
+ app/settings/settings.component.html
+ 171
+
+
+ app/app.component.html
+ 34
+
+ Subscriptions settings title
+ Suscripciones
+
+
+ Allow subscriptions
+
+ app/settings/settings.component.html
+ 177
+
+ Allow subscriptions setting
+ Permitir suscripciones
+
+
+ Subscriptions base path
+
+ app/settings/settings.component.html
+ 181
+
+ Subscriptions base path input setting placeholder
+ Ruta base de suscripciones
+
+
+ Base path for videos from your subscribed channels and playlists. It is relative to YTDL-Material's root folder.
+
+ app/settings/settings.component.html
+ 182
+
+ Subscriptions base path setting input hint
+ Ruta base para videos de sus canales y listas de reproducción suscritos. Es relativo a la carpeta raíz de YTDL-Material.
+
+
+ Check interval
+
+ app/settings/settings.component.html
+ 187
+
+ Check interval input setting placeholder
+ Intervalo de comprobación
+
+
+ Unit is seconds, only include numbers.
+
+ app/settings/settings.component.html
+ 188
+
+ Check interval setting input hint
+ La unidad es segundos, solo incluye números.
+
+
+ Use youtube-dl archive
+
+ app/settings/settings.component.html
+ 192
+
+ Use youtube-dl archive setting
+ Usa el archivo de youtube-dl
+
+
+ With youtube-dl's archive
+
+ app/settings/settings.component.html
+ 193
+
+ youtube-dl archive explanation prefix link
+ Con la función de archivo de youtube-dl,
+
+
+ feature, downloaded videos from your subscriptions get recorded in a text file in the subscriptions archive sub-directory.
+
+ app/settings/settings.component.html
+ 193
+
+ youtube-dl archive explanation middle
+ los videos descargados de sus suscripciones se graban en un archivo de texto en el subdirectorio del archivo de suscripciones.
+
+
+ This enables the ability to permanently delete videos from your subscriptions without unsubscribing, and allows you to record which videos you downloaded in case of data loss.
+
+ app/settings/settings.component.html
+ 194
+
+ youtube-dl archive explanation suffix
+ Esto permite eliminar videos de sus suscripciones de forma permanente sin darse de baja y le permite grabar los videos que descargó en caso de pérdida de datos.
+
+
+ Advanced
+
+ app/settings/settings.component.html
+ 204
+
+ Advanced settings title
+ Avanzado
+
+
+ Use default downloading agent
+
+ app/settings/settings.component.html
+ 210
+
+ Use default downloading agent setting
+ Usar agente de descarga predeterminado
+
+
+ Custom agent
+
+ app/settings/settings.component.html
+ 214
+
+ Custom agent setting placeholder
+ Agente personalizado
+
+
+ Allow advanced download
+
+ app/settings/settings.component.html
+ 219
+
+ Allow advanced downloading setting
+ Permitir descarga avanzada
+
+
+ Save
+
+ app/settings/settings.component.html
+ 229
+
+ Settings save button
+ Salvar
+
+
+ Cancel
+
+ app/settings/settings.component.html
+ 232
+
+
+ app/dialogs/subscribe-dialog/subscribe-dialog.component.html
+ 37
+
+ Settings cancel button
+ Cancelar
+
+
+ Home
+
+ app/app.component.html
+ 33
+
+ Navigation menu Home Page title
+ Inicio
+
+
+ Save changes
+
+ app/player/player.component.html
+ 22
+
+ Playlist save changes button
+ Guardar cambios
+
+
+ Subscribe to playlist or channel
+
+ app/dialogs/subscribe-dialog/subscribe-dialog.component.html
+ 1
+
+ Subscribe dialog title
+ Suscríbase a la lista de reproducción o al canal
+
+
+ The playlist or channel URL
+
+ app/dialogs/subscribe-dialog/subscribe-dialog.component.html
+ 9
+
+ Subscription URL input hint
+ La lista de reproducción o la URL del canal
+
+
+ Custom name
+
+ app/dialogs/subscribe-dialog/subscribe-dialog.component.html
+ 14
+
+ Subscription custom name placeholder
+ Nombre personalizado
+
+
+ This is optional
+
+ app/dialogs/subscribe-dialog/subscribe-dialog.component.html
+ 15
+
+ Custom name input hint
+ Esto es opcional
+
+
+ Download all uploads
+
+ app/dialogs/subscribe-dialog/subscribe-dialog.component.html
+ 19
+
+ Download all uploads subscription setting
+ Descargar todas las cargas
+
+
+ Download videos uploaded in the last
+
+ app/dialogs/subscribe-dialog/subscribe-dialog.component.html
+ 22
+
+ Download time range prefix
+ Descargar videos subidos en el último
+
+
+ Type:
+
+ app/dialogs/subscription-info-dialog/subscription-info-dialog.component.html
+ 5
+
+ Subscription type property
+ Tipo:
+
+
+ URL:
+
+ app/dialogs/subscription-info-dialog/subscription-info-dialog.component.html
+ 9
+
+ Subscription URL property
+ URL:
+
+
+ Archive:
+
+ app/dialogs/subscription-info-dialog/subscription-info-dialog.component.html
+ 17
+
+ Subscription ID property
+ Archivo:
+
+
+ Close
+
+ app/dialogs/subscription-info-dialog/subscription-info-dialog.component.html
+ 23
+
+ Close subscription info button
+ Cerca
+
+
+ Export Archive
+
+ app/dialogs/subscription-info-dialog/subscription-info-dialog.component.html
+ 24
+
+ Export Archive button
+ Exportar el archivo
+
+
+ Unsubscribe
+
+ app/dialogs/subscription-info-dialog/subscription-info-dialog.component.html
+ 26
+
+ Unsubscribe button
+ Darse de baja
+
+
+ Your subscriptions
+
+ app/subscriptions/subscriptions.component.html
+ 3
+
+ Subscriptions title
+ Sus suscripciones
+
+
+ Channels
+
+ app/subscriptions/subscriptions.component.html
+ 8
+
+ Subscriptions channels title
+ Canales
+
+
+ Name not available. Channel retrieval in progress.
+
+ app/subscriptions/subscriptions.component.html
+ 14
+
+ Subscription playlist not available text
+ Nombre no disponible. Recuperación de canales en progreso.
+
+
+ You have no channel subscriptions.
+
+ app/subscriptions/subscriptions.component.html
+ 24
+
+ No channel subscriptions text
+ No tienes suscripciones de canal.
+
+
+ Name not available. Playlist retrieval in progress.
+
+ app/subscriptions/subscriptions.component.html
+ 33
+
+ Subscription playlist not available text
+ Nombre no disponible. Recuperación de listas de reproducción en progreso.
+
+
+ You have no playlist subscriptions.
+
+ app/subscriptions/subscriptions.component.html
+ 43
+
+ No playlist subscriptions text
+ No tienes suscripciones a listas de reproducción.
+
+
+ Search
+
+ app/subscription/subscription/subscription.component.html
+ 19
+
+ Subscription videos search placeholder
+ Buscar
+
+
+ Length:
+
+ app/subscription/subscription-file-card/subscription-file-card.component.html
+ 3
+
+ Video duration label
+ Duración:
+
+
+ Delete and redownload
+
+ app/subscription/subscription-file-card/subscription-file-card.component.html
+ 7
+
+ Delete and redownload subscription video button
+ Eliminar y volver a descargar
+
+
+ Delete forever
+
+ app/subscription/subscription-file-card/subscription-file-card.component.html
+ 8
+
+ Delete forever subscription video button
+ Borrar para siempre
+
+
+
+
\ No newline at end of file
diff --git a/src/locale/messages.es.xlf b/src/locale/messages.es.xlf
new file mode 100644
index 00000000..0fbee7fa
--- /dev/null
+++ b/src/locale/messages.es.xlf
@@ -0,0 +1,987 @@
+
+
+
+
+
+ Create a playlist
+
+ app/create-playlist/create-playlist.component.html
+ 1
+
+ Create a playlist dialog title
+ Crea una lista de reproducción
+
+
+ Name
+
+ app/create-playlist/create-playlist.component.html
+ 5
+
+ Playlist name placeholder
+ Nombre
+
+
+ Audio files
+
+ app/create-playlist/create-playlist.component.html
+ 10
+
+ Audio files title
+ Archivos de sonido
+
+
+ Videos
+
+ app/create-playlist/create-playlist.component.html
+ 11
+
+
+ app/subscription/subscription/subscription.component.html
+ 15
+
+ Videos title
+ Archivos de video
+
+
+ Youtube Downloader
+
+ app/main/main.component.html
+ 5
+
+ Youtube downloader home page label
+ Descargador de Youtube
+
+
+ Please enter a valid URL!
+
+ app/main/main.component.html
+ 16
+
+ Enter valid URL error
+ Por favor entre una URL válida
+
+
+ Quality
+
+ app/main/main.component.html
+ 24
+
+ Quality select label
+ Calidad
+
+
+ Use URL
+
+ app/main/main.component.html
+ 52
+
+ YT search Use URL button for searched video
+ Usa URL
+
+
+ View
+
+ app/main/main.component.html
+ 55
+
+ YT search View button for searched video
+ Ver
+
+
+ Only Audio
+
+ app/main/main.component.html
+ 65
+
+ Only Audio checkbox
+ Solo audio
+
+
+ Multi-download Mode
+
+ app/main/main.component.html
+ 70
+
+ Multi-download Mode checkbox
+ Descarga múltiple
+
+
+ Download
+
+ app/main/main.component.html
+ 79
+
+ Main download button
+ Descarga
+
+
+ Cancel
+
+ app/main/main.component.html
+ 84
+
+ Cancel download button
+ Cancela
+
+
+ Advanced
+
+ app/main/main.component.html
+ 96
+
+ Advanced download mode panel
+ Avanzado
+
+
+ Simulated command:
+
+ app/main/main.component.html
+ 102
+
+ Simulated command label
+ Commando simulado:
+
+
+ Use custom args
+
+ app/main/main.component.html
+ 110
+
+ Use custom args checkbox
+ Usar argumentos personalizados
+
+
+ Custom args
+
+ app/main/main.component.html
+ 115
+
+
+ app/settings/settings.component.html
+ 83
+
+ Custom args placeholder
+ Argumentos personalizados
+
+
+ No need to include URL, just everything after.
+
+ app/main/main.component.html
+ 117
+
+ Custom Args input hint
+ No es necesario incluir URL, solo todo después
+
+
+ Use custom output
+
+ app/main/main.component.html
+ 125
+
+ Use custom output checkbox
+ Usar salida personalizada
+
+
+ Custom output
+
+ app/main/main.component.html
+ 130
+
+ Custom output placeholder
+ Salida personalizada
+
+
+ Documentation
+
+ app/main/main.component.html
+ 132
+
+ Youtube-dl output template documentation link
+ Documentación
+
+
+ Path is relative to the config download path. Don't include extension.
+
+ app/main/main.component.html
+ 133
+
+ Custom Output input hint
+ La ruta es relativa a la ruta de descarga de la config. No incluya el extensión.
+
+
+ Use authentication
+
+ app/main/main.component.html
+ 139
+
+ Use authentication checkbox
+ Usa autenticación
+
+
+ Username
+
+ app/main/main.component.html
+ 144
+
+ YT Username placeholder
+ Nombre de usuario
+
+
+ Password
+
+ app/main/main.component.html
+ 149
+
+ YT Password placeholder
+ Contraseña
+
+
+ Audio
+
+ app/main/main.component.html
+ 193
+
+ Audio files title
+ Audio
+
+
+ Your audio files are here
+
+ app/main/main.component.html
+ 198
+
+ Audio files description
+ Tus archivos de audio están aquí
+
+
+ Playlists
+
+ app/main/main.component.html
+ 213
+
+
+ app/main/main.component.html
+ 255
+
+
+ app/subscriptions/subscriptions.component.html
+ 27
+
+ Playlists title
+ Listas de reproducción
+
+
+ No playlists available. Create one from your downloading audio files by clicking the blue plus button.
+
+ app/main/main.component.html
+ 224
+
+ No video playlists available text
+ No hay listas de reproducción disponibles. Cree uno de tus archivos de audio haciendo clic en el botón azul más.
+
+
+ Video
+
+ app/main/main.component.html
+ 234
+
+ Video files title
+ Vídeo
+
+
+ Your video files are here
+
+ app/main/main.component.html
+ 239
+
+ Video files description
+ Tus archivos de video son aquí
+
+
+ No playlists available. Create one from your downloading video files by clicking the blue plus button.
+
+ app/main/main.component.html
+ 268
+
+ No video playlists available text
+ No hay listas de reproducción disponibles. Cree uno de tus archivos de video haciendo clic en el botón azul más.
+
+
+ ID:
+
+ app/file-card/file-card.component.html
+ 6
+
+
+ app/download-item/download-item.component.html
+ 7
+
+
+ app/dialogs/subscription-info-dialog/subscription-info-dialog.component.html
+ 13
+
+ File or playlist ID
+ ID:
+
+
+ Count:
+
+ app/file-card/file-card.component.html
+ 7
+
+ Playlist video count
+ Cuenta:
+
+
+ Settings
+
+ app/settings/settings.component.html
+ 1
+
+
+ app/app.component.html
+ 22
+
+ Settings title
+ Configuraciones
+
+
+ Host
+
+ app/settings/settings.component.html
+ 8
+
+ Host settings title
+ Host
+
+
+ URL
+
+ app/settings/settings.component.html
+ 15
+
+
+ app/dialogs/subscribe-dialog/subscribe-dialog.component.html
+ 8
+
+ URL input placeholder
+ URL
+
+
+ URL this app will be accessed from, without the port.
+
+ app/settings/settings.component.html
+ 16
+
+ URL setting input hint
+ URL desde la que se accederá a esta aplicación, sin el puerto.
+
+
+ Port
+
+ app/settings/settings.component.html
+ 21
+
+ Port input placeholder
+ Puerto
+
+
+ The desired port. Default is 17442.
+
+ app/settings/settings.component.html
+ 22
+
+ Port setting input hint
+ Puerto deseado. El valor predeterminado es 17442.
+
+
+ Encryption
+
+ app/settings/settings.component.html
+ 34
+
+ Encryption settings title
+ Cifrado
+
+
+ Use encryption
+
+ app/settings/settings.component.html
+ 40
+
+ Use encryption setting
+ Usa cifrado
+
+
+ Cert file path
+
+ app/settings/settings.component.html
+ 45
+
+ Cert file path input placeholder
+ Ruta del archivo de certificado
+
+
+ Key file path
+
+ app/settings/settings.component.html
+ 51
+
+ Key file path input placeholder
+ Ruta de archivo de clave
+
+
+ Downloader
+
+ app/settings/settings.component.html
+ 62
+
+ Downloader settings title
+ Descargador
+
+
+ Audio folder path
+
+ app/settings/settings.component.html
+ 69
+
+ Audio folder path input placeholder
+ Ruta de la carpeta de audio
+
+
+ Path for audio only downloads. It is relative to YTDL-Material's root folder.
+
+ app/settings/settings.component.html
+ 70
+
+ Aduio path setting input hint
+ Ruta para descargas de solo audio. Es relativo a la carpeta raíz de YTDL-Material.
+
+
+ Video folder path
+
+ app/settings/settings.component.html
+ 76
+
+ Video folder path input placeholder
+ Ruta de la carpeta de video
+
+
+ Path for video downloads. It is relative to YTDL-Material's root folder.
+
+ app/settings/settings.component.html
+ 77
+
+ Video path setting input hint
+ Ruta de descarga de videos. Es relativo a la carpeta raíz de YTDL-Material.
+
+
+ Global custom args for downloads on the home page.
+
+ app/settings/settings.component.html
+ 84
+
+ Custom args setting input hint
+ Argumentos personalizados globales para descargas en la página de inicio.
+
+
+ Extra
+
+ app/settings/settings.component.html
+ 95
+
+ Extra settings title
+ Extra
+
+
+ Top title
+
+ app/settings/settings.component.html
+ 102
+
+ Top title input placeholder
+ Título superior
+
+
+ File manager enabled
+
+ app/settings/settings.component.html
+ 107
+
+ File manager enabled setting
+ Administrador de archivos habilitado
+
+
+ Allow quality select
+
+ app/settings/settings.component.html
+ 110
+
+ Allow quality seelct setting
+ Permitir selección de calidad
+
+
+ Download only mode
+
+ app/settings/settings.component.html
+ 113
+
+ Download only mode setting
+ Modo de solo descarga
+
+
+ Allow multi-download mode
+
+ app/settings/settings.component.html
+ 116
+
+ Allow multi-downloade mode setting
+ Permitir el modo de descarga múltiple
+
+
+ API
+
+ app/settings/settings.component.html
+ 126
+
+ API settings title
+ API
+
+
+ Use YouTube API
+
+ app/settings/settings.component.html
+ 132
+
+ Use YouTube API setting
+ Utilizar la API de YouTube
+
+
+ Youtube API Key
+
+ app/settings/settings.component.html
+ 136
+
+ Youtube API Key setting placeholder
+ Clave API de YouTube
+
+
+ Generating a key is easy!
+
+ app/settings/settings.component.html
+ 137
+
+ Youtube API Key setting hint
+ ¡Generar una clave es fácil!
+
+
+ Themes
+
+ app/settings/settings.component.html
+ 148
+
+ Themes settings title
+ Temas
+
+
+ Default
+
+ app/settings/settings.component.html
+ 155
+
+ Default theme label
+ Defecto
+
+
+ Dark
+
+ app/settings/settings.component.html
+ 156
+
+
+ app/app.component.html
+ 17
+
+ Dark theme label
+ Oscura
+
+
+ Allow theme change
+
+ app/settings/settings.component.html
+ 161
+
+ Allow theme change setting
+ Permitir cambio de tema
+
+
+ Subscriptions
+
+ app/settings/settings.component.html
+ 171
+
+
+ app/app.component.html
+ 34
+
+ Subscriptions settings title
+ Suscripciones
+
+
+ Allow subscriptions
+
+ app/settings/settings.component.html
+ 177
+
+ Allow subscriptions setting
+ Permitir suscripciones
+
+
+ Subscriptions base path
+
+ app/settings/settings.component.html
+ 181
+
+ Subscriptions base path input setting placeholder
+ Ruta base de suscripciones
+
+
+ Base path for videos from your subscribed channels and playlists. It is relative to YTDL-Material's root folder.
+
+ app/settings/settings.component.html
+ 182
+
+ Subscriptions base path setting input hint
+ Ruta base para videos de sus canales y listas de reproducción suscritos. Es relativo a la carpeta raíz de YTDL-Material.
+
+
+ Check interval
+
+ app/settings/settings.component.html
+ 187
+
+ Check interval input setting placeholder
+ Intervalo de comprobación
+
+
+ Unit is seconds, only include numbers.
+
+ app/settings/settings.component.html
+ 188
+
+ Check interval setting input hint
+ La unidad es segundos, solo incluye números.
+
+
+ Use youtube-dl archive
+
+ app/settings/settings.component.html
+ 192
+
+ Use youtube-dl archive setting
+ Usa el archivo de youtube-dl
+
+
+ With youtube-dl's archive
+
+ app/settings/settings.component.html
+ 193
+
+ youtube-dl archive explanation prefix link
+ Con la función de archivo de youtube-dl,
+
+
+ feature, downloaded videos from your subscriptions get recorded in a text file in the subscriptions archive sub-directory.
+
+ app/settings/settings.component.html
+ 193
+
+ youtube-dl archive explanation middle
+ los videos descargados de sus suscripciones se graban en un archivo de texto en el subdirectorio del archivo de suscripciones.
+
+
+ This enables the ability to permanently delete videos from your subscriptions without unsubscribing, and allows you to record which videos you downloaded in case of data loss.
+
+ app/settings/settings.component.html
+ 194
+
+ youtube-dl archive explanation suffix
+ Esto permite eliminar videos de sus suscripciones de forma permanente sin darse de baja y le permite grabar los videos que descargó en caso de pérdida de datos.
+
+
+ Advanced
+
+ app/settings/settings.component.html
+ 204
+
+ Advanced settings title
+ Avanzado
+
+
+ Use default downloading agent
+
+ app/settings/settings.component.html
+ 210
+
+ Use default downloading agent setting
+ Usar agente de descarga predeterminado
+
+
+ Custom agent
+
+ app/settings/settings.component.html
+ 214
+
+ Custom agent setting placeholder
+ Agente personalizado
+
+
+ Allow advanced download
+
+ app/settings/settings.component.html
+ 219
+
+ Allow advanced downloading setting
+ Permitir descarga avanzada
+
+
+ Save
+
+ app/settings/settings.component.html
+ 229
+
+ Settings save button
+ Salvar
+
+
+ Cancel
+
+ app/settings/settings.component.html
+ 232
+
+
+ app/dialogs/subscribe-dialog/subscribe-dialog.component.html
+ 37
+
+ Settings cancel button
+ Cancelar
+
+
+ Home
+
+ app/app.component.html
+ 33
+
+ Navigation menu Home Page title
+ Inicio
+
+
+ Save changes
+
+ app/player/player.component.html
+ 22
+
+ Playlist save changes button
+ Guardar cambios
+
+
+ Subscribe to playlist or channel
+
+ app/dialogs/subscribe-dialog/subscribe-dialog.component.html
+ 1
+
+ Subscribe dialog title
+ Suscríbase a la lista de reproducción o al canal
+
+
+ The playlist or channel URL
+
+ app/dialogs/subscribe-dialog/subscribe-dialog.component.html
+ 9
+
+ Subscription URL input hint
+ La lista de reproducción o la URL del canal
+
+
+ Custom name
+
+ app/dialogs/subscribe-dialog/subscribe-dialog.component.html
+ 14
+
+ Subscription custom name placeholder
+ Nombre personalizado
+
+
+ This is optional
+
+ app/dialogs/subscribe-dialog/subscribe-dialog.component.html
+ 15
+
+ Custom name input hint
+ Esto es opcional
+
+
+ Download all uploads
+
+ app/dialogs/subscribe-dialog/subscribe-dialog.component.html
+ 19
+
+ Download all uploads subscription setting
+ Descargar todas las cargas
+
+
+ Download videos uploaded in the last
+
+ app/dialogs/subscribe-dialog/subscribe-dialog.component.html
+ 22
+
+ Download time range prefix
+ Descargar videos subidos en el último
+
+
+ Type:
+
+ app/dialogs/subscription-info-dialog/subscription-info-dialog.component.html
+ 5
+
+ Subscription type property
+ Tipo:
+
+
+ URL:
+
+ app/dialogs/subscription-info-dialog/subscription-info-dialog.component.html
+ 9
+
+ Subscription URL property
+ URL:
+
+
+ Archive:
+
+ app/dialogs/subscription-info-dialog/subscription-info-dialog.component.html
+ 17
+
+ Subscription ID property
+ Archivo:
+
+
+ Close
+
+ app/dialogs/subscription-info-dialog/subscription-info-dialog.component.html
+ 23
+
+ Close subscription info button
+ Cerca
+
+
+ Export Archive
+
+ app/dialogs/subscription-info-dialog/subscription-info-dialog.component.html
+ 24
+
+ Export Archive button
+ Exportar el archivo
+
+
+ Unsubscribe
+
+ app/dialogs/subscription-info-dialog/subscription-info-dialog.component.html
+ 26
+
+ Unsubscribe button
+ Darse de baja
+
+
+ Your subscriptions
+
+ app/subscriptions/subscriptions.component.html
+ 3
+
+ Subscriptions title
+ Sus suscripciones
+
+
+ Channels
+
+ app/subscriptions/subscriptions.component.html
+ 8
+
+ Subscriptions channels title
+ Canales
+
+
+ Name not available. Channel retrieval in progress.
+
+ app/subscriptions/subscriptions.component.html
+ 14
+
+ Subscription playlist not available text
+ Nombre no disponible. Recuperación de canales en progreso.
+
+
+ You have no channel subscriptions.
+
+ app/subscriptions/subscriptions.component.html
+ 24
+
+ No channel subscriptions text
+ No tienes suscripciones de canal.
+
+
+ Name not available. Playlist retrieval in progress.
+
+ app/subscriptions/subscriptions.component.html
+ 33
+
+ Subscription playlist not available text
+ Nombre no disponible. Recuperación de listas de reproducción en progreso.
+
+
+ You have no playlist subscriptions.
+
+ app/subscriptions/subscriptions.component.html
+ 43
+
+ No playlist subscriptions text
+ No tienes suscripciones a listas de reproducción.
+
+
+ Search
+
+ app/subscription/subscription/subscription.component.html
+ 19
+
+ Subscription videos search placeholder
+ Buscar
+
+
+ Length:
+
+ app/subscription/subscription-file-card/subscription-file-card.component.html
+ 3
+
+ Video duration label
+ Duración:
+
+
+ Delete and redownload
+
+ app/subscription/subscription-file-card/subscription-file-card.component.html
+ 7
+
+ Delete and redownload subscription video button
+ Eliminar y volver a descargar
+
+
+ Delete forever
+
+ app/subscription/subscription-file-card/subscription-file-card.component.html
+ 8
+
+ Delete forever subscription video button
+ Borrar para siempre
+
+
+
+
\ No newline at end of file
diff --git a/src/locale/messages.xlf b/src/locale/messages.xlf
new file mode 100644
index 00000000..8ec6073f
--- /dev/null
+++ b/src/locale/messages.xlf
@@ -0,0 +1,919 @@
+
+
+
+
+
+ Create a playlist
+
+ app/create-playlist/create-playlist.component.html
+ 1
+
+ Create a playlist dialog title
+
+
+ Name
+
+ app/create-playlist/create-playlist.component.html
+ 5
+
+ Playlist name placeholder
+
+
+ Audio files
+
+ app/create-playlist/create-playlist.component.html
+ 10
+
+ Audio files title
+
+
+ Videos
+
+ app/create-playlist/create-playlist.component.html
+ 11
+
+
+ app/subscription/subscription/subscription.component.html
+ 15
+
+ Videos title
+
+
+ Youtube Downloader
+
+ app/main/main.component.html
+ 5
+
+ Youtube downloader home page label
+
+
+ Please enter a valid URL!
+
+ app/main/main.component.html
+ 16
+
+ Enter valid URL error
+
+
+
+ Quality
+
+
+ app/main/main.component.html
+ 24
+
+ Quality select label
+
+
+ Use URL
+
+ app/main/main.component.html
+ 52
+
+ YT search Use URL button for searched video
+
+
+
+ View
+
+
+ app/main/main.component.html
+ 55
+
+ YT search View button for searched video
+
+
+
+ Only Audio
+
+
+ app/main/main.component.html
+ 65
+
+ Only Audio checkbox
+
+
+
+ Multi-download Mode
+
+
+ app/main/main.component.html
+ 70
+
+ Multi-download Mode checkbox
+
+
+
+ Download
+
+
+ app/main/main.component.html
+ 79
+
+ Main download button
+
+
+
+ Cancel
+
+
+ app/main/main.component.html
+ 84
+
+ Cancel download button
+
+
+
+ Advanced
+
+
+ app/main/main.component.html
+ 96
+
+ Advanced download mode panel
+
+
+
+ Simulated command:
+
+
+ app/main/main.component.html
+ 102
+
+ Simulated command label
+
+
+
+ Use custom args
+
+
+ app/main/main.component.html
+ 110
+
+ Use custom args checkbox
+
+
+ Custom args
+
+ app/main/main.component.html
+ 115
+
+
+ app/settings/settings.component.html
+ 83
+
+ Custom args placeholder
+
+
+
+ No need to include URL, just everything after.
+
+
+ app/main/main.component.html
+ 117
+
+ Custom Args input hint
+
+
+
+ Use custom output
+
+
+ app/main/main.component.html
+ 125
+
+ Use custom output checkbox
+
+
+ Custom output
+
+ app/main/main.component.html
+ 130
+
+ Custom output placeholder
+
+
+ Documentation
+
+ app/main/main.component.html
+ 132
+
+ Youtube-dl output template documentation link
+
+
+ Path is relative to the config download path. Don't include extension.
+
+ app/main/main.component.html
+ 133
+
+ Custom Output input hint
+
+
+
+ Use authentication
+
+
+ app/main/main.component.html
+ 139
+
+ Use authentication checkbox
+
+
+ Username
+
+ app/main/main.component.html
+ 144
+
+ YT Username placeholder
+
+
+ Password
+
+ app/main/main.component.html
+ 149
+
+ YT Password placeholder
+
+
+
+ Audio
+
+
+ app/main/main.component.html
+ 193
+
+ Audio files title
+
+
+
+ Your audio files are here
+
+
+ app/main/main.component.html
+ 198
+
+ Audio files description
+
+
+ Playlists
+
+ app/main/main.component.html
+ 213
+
+
+ app/main/main.component.html
+ 255
+
+
+ app/subscriptions/subscriptions.component.html
+ 27
+
+ Playlists title
+
+
+
+ No playlists available. Create one from your downloading audio files by clicking the blue plus button.
+
+
+ app/main/main.component.html
+ 224
+
+ No video playlists available text
+
+
+
+ Video
+
+
+ app/main/main.component.html
+ 234
+
+ Video files title
+
+
+
+ Your video files are here
+
+
+ app/main/main.component.html
+ 239
+
+ Video files description
+
+
+
+ No playlists available. Create one from your downloading video files by clicking the blue plus button.
+
+
+ app/main/main.component.html
+ 268
+
+ No video playlists available text
+
+
+ ID:
+
+ app/file-card/file-card.component.html
+ 6
+
+
+ app/download-item/download-item.component.html
+ 7
+
+
+ app/dialogs/subscription-info-dialog/subscription-info-dialog.component.html
+ 13
+
+ File or playlist ID
+
+
+ Count:
+
+ app/file-card/file-card.component.html
+ 7
+
+ Playlist video count
+
+
+ Settings
+
+ app/settings/settings.component.html
+ 1
+
+
+ app/app.component.html
+ 22
+
+ Settings title
+
+
+ Host
+
+ app/settings/settings.component.html
+ 8
+
+ Host settings title
+
+
+ URL
+
+ app/settings/settings.component.html
+ 15
+
+
+ app/dialogs/subscribe-dialog/subscribe-dialog.component.html
+ 8
+
+ URL input placeholder
+
+
+ URL this app will be accessed from, without the port.
+
+ app/settings/settings.component.html
+ 16
+
+ URL setting input hint
+
+
+ Port
+
+ app/settings/settings.component.html
+ 21
+
+ Port input placeholder
+
+
+ The desired port. Default is 17442.
+
+ app/settings/settings.component.html
+ 22
+
+ Port setting input hint
+
+
+ Encryption
+
+ app/settings/settings.component.html
+ 34
+
+ Encryption settings title
+
+
+ Use encryption
+
+ app/settings/settings.component.html
+ 40
+
+ Use encryption setting
+
+
+ Cert file path
+
+ app/settings/settings.component.html
+ 45
+
+ Cert file path input placeholder
+
+
+ Key file path
+
+ app/settings/settings.component.html
+ 51
+
+ Key file path input placeholder
+
+
+ Downloader
+
+ app/settings/settings.component.html
+ 62
+
+ Downloader settings title
+
+
+ Audio folder path
+
+ app/settings/settings.component.html
+ 69
+
+ Audio folder path input placeholder
+
+
+ Path for audio only downloads. It is relative to YTDL-Material's root folder.
+
+ app/settings/settings.component.html
+ 70
+
+ Aduio path setting input hint
+
+
+ Video folder path
+
+ app/settings/settings.component.html
+ 76
+
+ Video folder path input placeholder
+
+
+ Path for video downloads. It is relative to YTDL-Material's root folder.
+
+ app/settings/settings.component.html
+ 77
+
+ Video path setting input hint
+
+
+ Global custom args for downloads on the home page.
+
+ app/settings/settings.component.html
+ 84
+
+ Custom args setting input hint
+
+
+ Extra
+
+ app/settings/settings.component.html
+ 95
+
+ Extra settings title
+
+
+ Top title
+
+ app/settings/settings.component.html
+ 102
+
+ Top title input placeholder
+
+
+ File manager enabled
+
+ app/settings/settings.component.html
+ 107
+
+ File manager enabled setting
+
+
+ Allow quality select
+
+ app/settings/settings.component.html
+ 110
+
+ Allow quality seelct setting
+
+
+ Download only mode
+
+ app/settings/settings.component.html
+ 113
+
+ Download only mode setting
+
+
+ Allow multi-download mode
+
+ app/settings/settings.component.html
+ 116
+
+ Allow multi-downloade mode setting
+
+
+ API
+
+ app/settings/settings.component.html
+ 126
+
+ API settings title
+
+
+ Use YouTube API
+
+ app/settings/settings.component.html
+ 132
+
+ Use YouTube API setting
+
+
+ Youtube API Key
+
+ app/settings/settings.component.html
+ 136
+
+ Youtube API Key setting placeholder
+
+
+ Generating a key is easy!
+
+ app/settings/settings.component.html
+ 137
+
+ Youtube API Key setting hint
+
+
+ Themes
+
+ app/settings/settings.component.html
+ 148
+
+ Themes settings title
+
+
+ Default
+
+ app/settings/settings.component.html
+ 155
+
+ Default theme label
+
+
+ Dark
+
+ app/settings/settings.component.html
+ 156
+
+
+ app/app.component.html
+ 17
+
+ Dark theme label
+
+
+ Allow theme change
+
+ app/settings/settings.component.html
+ 161
+
+ Allow theme change setting
+
+
+ Subscriptions
+
+ app/settings/settings.component.html
+ 171
+
+
+ app/app.component.html
+ 34
+
+ Subscriptions settings title
+
+
+ Allow subscriptions
+
+ app/settings/settings.component.html
+ 177
+
+ Allow subscriptions setting
+
+
+ Subscriptions base path
+
+ app/settings/settings.component.html
+ 181
+
+ Subscriptions base path input setting placeholder
+
+
+ Base path for videos from your subscribed channels and playlists. It is relative to YTDL-Material's root folder.
+
+ app/settings/settings.component.html
+ 182
+
+ Subscriptions base path setting input hint
+
+
+ Check interval
+
+ app/settings/settings.component.html
+ 187
+
+ Check interval input setting placeholder
+
+
+ Unit is seconds, only include numbers.
+
+ app/settings/settings.component.html
+ 188
+
+ Check interval setting input hint
+
+
+ Use youtube-dl archive
+
+ app/settings/settings.component.html
+ 192
+
+ Use youtube-dl archive setting
+
+
+ With youtube-dl's archive
+
+ app/settings/settings.component.html
+ 193
+
+ youtube-dl archive explanation prefix link
+
+
+ feature, downloaded videos from your subscriptions get recorded in a text file in the subscriptions archive sub-directory.
+
+ app/settings/settings.component.html
+ 193
+
+ youtube-dl archive explanation middle
+
+
+ This enables the ability to permanently delete videos from your subscriptions without unsubscribing, and allows you to record which videos you downloaded in case of data loss.
+
+ app/settings/settings.component.html
+ 194
+
+ youtube-dl archive explanation suffix
+
+
+ Advanced
+
+ app/settings/settings.component.html
+ 204
+
+ Advanced settings title
+
+
+ Use default downloading agent
+
+ app/settings/settings.component.html
+ 210
+
+ Use default downloading agent setting
+
+
+ Custom agent
+
+ app/settings/settings.component.html
+ 214
+
+ Custom agent setting placeholder
+
+
+ Allow advanced download
+
+ app/settings/settings.component.html
+ 219
+
+ Allow advanced downloading setting
+
+
+ Save
+
+ app/settings/settings.component.html
+ 229
+
+ Settings save button
+
+
+ Cancel
+
+ app/settings/settings.component.html
+ 232
+
+
+ app/dialogs/subscribe-dialog/subscribe-dialog.component.html
+ 37
+
+ Settings cancel button
+
+
+ Home
+
+ app/app.component.html
+ 33
+
+ Navigation menu Home Page title
+
+
+ Save changes
+
+ app/player/player.component.html
+ 22
+
+ Playlist save changes button
+
+
+ Subscribe to playlist or channel
+
+ app/dialogs/subscribe-dialog/subscribe-dialog.component.html
+ 1
+
+ Subscribe dialog title
+
+
+ The playlist or channel URL
+
+ app/dialogs/subscribe-dialog/subscribe-dialog.component.html
+ 9
+
+ Subscription URL input hint
+
+
+ Custom name
+
+ app/dialogs/subscribe-dialog/subscribe-dialog.component.html
+ 14
+
+ Subscription custom name placeholder
+
+
+ This is optional
+
+ app/dialogs/subscribe-dialog/subscribe-dialog.component.html
+ 15
+
+ Custom name input hint
+
+
+ Download all uploads
+
+ app/dialogs/subscribe-dialog/subscribe-dialog.component.html
+ 19
+
+ Download all uploads subscription setting
+
+
+ Download videos uploaded in the last
+
+ app/dialogs/subscribe-dialog/subscribe-dialog.component.html
+ 22
+
+ Download time range prefix
+
+
+ Type:
+
+ app/dialogs/subscription-info-dialog/subscription-info-dialog.component.html
+ 5
+
+ Subscription type property
+
+
+ URL:
+
+ app/dialogs/subscription-info-dialog/subscription-info-dialog.component.html
+ 9
+
+ Subscription URL property
+
+
+ Archive:
+
+ app/dialogs/subscription-info-dialog/subscription-info-dialog.component.html
+ 17
+
+ Subscription ID property
+
+
+ Close
+
+ app/dialogs/subscription-info-dialog/subscription-info-dialog.component.html
+ 23
+
+ Close subscription info button
+
+
+ Export Archive
+
+ app/dialogs/subscription-info-dialog/subscription-info-dialog.component.html
+ 24
+
+ Export Archive button
+
+
+ Unsubscribe
+
+ app/dialogs/subscription-info-dialog/subscription-info-dialog.component.html
+ 26
+
+ Unsubscribe button
+
+
+ Your subscriptions
+
+ app/subscriptions/subscriptions.component.html
+ 3
+
+ Subscriptions title
+
+
+ Channels
+
+ app/subscriptions/subscriptions.component.html
+ 8
+
+ Subscriptions channels title
+
+
+ Name not available. Channel retrieval in progress.
+
+ app/subscriptions/subscriptions.component.html
+ 14
+
+ Subscription playlist not available text
+
+
+ You have no channel subscriptions.
+
+ app/subscriptions/subscriptions.component.html
+ 24
+
+ No channel subscriptions text
+
+
+ Name not available. Playlist retrieval in progress.
+
+ app/subscriptions/subscriptions.component.html
+ 33
+
+ Subscription playlist not available text
+
+
+ You have no playlist subscriptions.
+
+ app/subscriptions/subscriptions.component.html
+ 43
+
+ No playlist subscriptions text
+
+
+ Search
+
+ app/subscription/subscription/subscription.component.html
+ 19
+
+ Subscription videos search placeholder
+
+
+ Length:
+
+ app/subscription/subscription-file-card/subscription-file-card.component.html
+ 3
+
+ Video duration label
+
+
+ Delete and redownload
+
+ app/subscription/subscription-file-card/subscription-file-card.component.html
+ 7
+
+ Delete and redownload subscription video button
+
+
+ Delete forever
+
+ app/subscription/subscription-file-card/subscription-file-card.component.html
+ 8
+
+ Delete forever subscription video button
+
+
+
+
diff --git a/src/main.ts b/src/main.ts
index 6898b91c..8dfc77da 100644
--- a/src/main.ts
+++ b/src/main.ts
@@ -1,12 +1,40 @@
+import '@angular/localize/init';
+
import { enableProdMode } from '@angular/core';
import { platformBrowserDynamic } from '@angular/platform-browser-dynamic';
-import 'hammerjs';
-import { AppModule } from './app/app.module';
import { environment } from './environments/environment';
+import { loadTranslations } from '@angular/localize';
+import { getTranslations, ParsedTranslationBundle } from '@locl/core';
+
if (environment.production) {
enableProdMode();
}
-platformBrowserDynamic().bootstrapModule(AppModule);
+const locale = localStorage.getItem('locale');
+if (locale) {
+ getTranslations(`./assets/i18n/messages.${locale}.json`).then(
+ (data: ParsedTranslationBundle) => {
+ loadTranslations(data as any);
+ import('./app/app.module').then(module => {
+ platformBrowserDynamic()
+ .bootstrapModule(module.AppModule)
+ .catch(err => console.error(err));
+ });
+ }
+ ).catch(err => {
+ import('./app/app.module').then(module => {
+ platformBrowserDynamic()
+ .bootstrapModule(module.AppModule)
+ .catch(err2 => console.error(err2));
+ });
+ });
+} else {
+ console.log('no locale');
+ import('./app/app.module').then(module => {
+ platformBrowserDynamic()
+ .bootstrapModule(module.AppModule)
+ .catch(err => console.error(err));
+ });
+}
diff --git a/src/polyfills.ts b/src/polyfills.ts
index 019cf949..c81bace2 100644
--- a/src/polyfills.ts
+++ b/src/polyfills.ts
@@ -1,3 +1,7 @@
+/***************************************************************************************************
+ * Load `$localize` onto the global scope - used if i18n tags appear in Angular templates.
+ */
+import '@angular/localize/init';
/**
* This file includes polyfills needed by Angular and is loaded before the app.
* You can add your own extra polyfills to this file.
diff --git a/src/tsconfig.app.json b/src/tsconfig.app.json
index cf49d7fd..26227d8b 100644
--- a/src/tsconfig.app.json
+++ b/src/tsconfig.app.json
@@ -5,8 +5,11 @@
"baseUrl": "",
"types": []
},
- "exclude": [
- "test.ts",
- "**/*.spec.ts"
+ "files": [
+ "main.ts",
+ "polyfills.ts"
+ ],
+ "include": [
+ "src/**/*.d.ts"
]
}