diff --git a/.ci/azure-pipelines.yml b/.ci/azure-pipelines.yml index 31f00754f5..059c39aa56 100644 --- a/.ci/azure-pipelines.yml +++ b/.ci/azure-pipelines.yml @@ -21,8 +21,6 @@ jobs: BuildConfiguration: development Production: BuildConfiguration: production - Standalone: - BuildConfiguration: standalone pool: vmImage: 'ubuntu-latest' @@ -49,13 +47,9 @@ jobs: condition: eq(variables['BuildConfiguration'], 'development') - script: 'yarn build:production' - displayName: 'Build Bundle' + displayName: 'Build Production' condition: eq(variables['BuildConfiguration'], 'production') - - script: 'yarn build:standalone' - displayName: 'Build Standalone' - condition: eq(variables['BuildConfiguration'], 'standalone') - - script: 'test -d dist' displayName: 'Check Build' diff --git a/.eslintrc.js b/.eslintrc.js index fa1d440d46..27b5c2a237 100644 --- a/.eslintrc.js +++ b/.eslintrc.js @@ -27,30 +27,30 @@ module.exports = { 'plugin:compat/recommended' ], rules: { - 'block-spacing': ["error"], - 'brace-style': ["error"], - 'comma-dangle': ["error", "never"], - 'comma-spacing': ["error"], - 'eol-last': ["error"], - 'indent': ["error", 4, { "SwitchCase": 1 }], - 'keyword-spacing': ["error"], - 'max-statements-per-line': ["error"], - 'no-floating-decimal': ["error"], - 'no-multi-spaces': ["error"], - 'no-multiple-empty-lines': ["error", { "max": 1 }], - 'no-trailing-spaces': ["error"], - 'one-var': ["error", "never"], - 'quotes': ["error", "single", { "avoidEscape": true, "allowTemplateLiterals": false }], - 'semi': ["error"], - 'space-before-blocks': ["error"], - "space-infix-ops": "error" + 'block-spacing': ['error'], + 'brace-style': ['error'], + 'comma-dangle': ['error', 'never'], + 'comma-spacing': ['error'], + 'eol-last': ['error'], + 'indent': ['error', 4, { 'SwitchCase': 1 }], + 'keyword-spacing': ['error'], + 'max-statements-per-line': ['error'], + 'no-floating-decimal': ['error'], + 'no-multi-spaces': ['error'], + 'no-multiple-empty-lines': ['error', { 'max': 1 }], + 'no-trailing-spaces': ['error'], + 'one-var': ['error', 'never'], + 'quotes': ['error', 'single', { 'avoidEscape': true, 'allowTemplateLiterals': false }], + 'semi': ['error'], + 'space-before-blocks': ['error'], + 'space-infix-ops': 'error' }, overrides: [ { files: [ './src/**/*.js' ], - parser: "babel-eslint", + parser: 'babel-eslint', env: { node: false, amd: true, @@ -98,11 +98,11 @@ module.exports = { }, rules: { // TODO: Fix warnings and remove these rules - 'no-redeclare': ["warn"], - 'no-unused-vars': ["warn"], - 'no-useless-escape': ["warn"], + 'no-redeclare': ['warn'], + 'no-unused-vars': ['warn'], + 'no-useless-escape': ['warn'], // TODO: Remove after ES6 migration is complete - 'import/no-unresolved': ["off"] + 'import/no-unresolved': ['off'] }, settings: { polyfills: [ diff --git a/gulpfile.js b/gulpfile.js index 538497d4d0..03826e8b6e 100644 --- a/gulpfile.js +++ b/gulpfile.js @@ -16,7 +16,6 @@ const stream = require('webpack-stream'); const inject = require('gulp-inject'); const postcss = require('gulp-postcss'); const sass = require('gulp-sass'); -const gulpif = require('gulp-if'); const lazypipe = require('lazypipe'); sass.compiler = require('node-sass'); @@ -68,7 +67,7 @@ function serve() { } }); - watch(options.apploader.query, apploader(true)); + watch(options.apploader.query, apploader()); watch('src/bundle.js', webpack); @@ -131,18 +130,12 @@ function javascript(query) { .pipe(browserSync.stream()); } -function apploader(standalone) { - function task() { - return src(options.apploader.query, { base: './src/' }) - .pipe(gulpif(standalone, concat('scripts/apploader.js'))) - .pipe(pipelineJavascript()) - .pipe(dest('dist/')) - .pipe(browserSync.stream()); - } - - task.displayName = 'apploader'; - - return task; +function apploader() { + return src(options.apploader.query, { base: './src/' }) + .pipe(concat('scripts/apploader.js')) + .pipe(pipelineJavascript()) + .pipe(dest('dist/')) + .pipe(browserSync.stream()); } function webpack() { @@ -181,12 +174,6 @@ function copy(query) { .pipe(browserSync.stream()); } -function copyIndex() { - return src(options.injectBundle.query, { base: './src/' }) - .pipe(dest('dist/')) - .pipe(browserSync.stream()); -} - function injectBundle() { return src(options.injectBundle.query, { base: './src/' }) .pipe(inject( @@ -196,10 +183,5 @@ function injectBundle() { .pipe(browserSync.stream()); } -function build(standalone) { - return series(clean, parallel(javascript, apploader(standalone), webpack, css, html, images, copy)); -} - -exports.default = series(build(false), copyIndex); -exports.standalone = series(build(true), injectBundle); -exports.serve = series(exports.standalone, serve); +exports.default = series(clean, parallel(javascript, apploader, webpack, css, html, images, copy), injectBundle); +exports.serve = series(exports.default, serve); diff --git a/package.json b/package.json index d63b870696..a06fad3aea 100644 --- a/package.json +++ b/package.json @@ -146,7 +146,6 @@ "prepare": "gulp --production", "build:development": "gulp --development", "build:production": "gulp --production", - "build:standalone": "gulp standalone --development", "lint": "eslint \".\"", "stylelint": "stylelint \"src/**/*.css\"" } diff --git a/src/components/bookPlayer/plugin.js b/src/components/bookPlayer/plugin.js index 66bcb46973..b655b038a8 100644 --- a/src/components/bookPlayer/plugin.js +++ b/src/components/bookPlayer/plugin.js @@ -215,24 +215,7 @@ export class BookPlayer { Id: item.Id } }; - if (!item.Path.endsWith('.epub')) { - return new Promise((resolve, reject) => { - let errorDialog = dialogHelper.createDialog({ - size: 'small', - autoFocus: false, - removeOnClose: true - }); - errorDialog.innerHTML = '
http://ejemplo.com/<urlbase>
",
+ "LabelBaseUrl": "URL base:",
+ "LabelEveryXMinutes": "Cada:",
+ "LabelEvent": "Evento:",
+ "LabelEpisodeNumber": "Episodio número:",
+ "LabelEndDate": "Fecha de fin:",
+ "LabelEnableSingleImageInDidlLimitHelp": "Algunos dispositivos no se renderizarán correctamente si se incrustan varias imágenes en DIDL.",
+ "LabelEnableSingleImageInDidlLimit": "Limitar a una sola imagen incrustada",
+ "LabelEnableRealtimeMonitorHelp": "Los cambios en los archivos serán procesados inmediatamente, en los sistemas de archivo soportados.",
+ "LabelEnableRealtimeMonitor": "Activar monitoreo en tiempo real",
+ "LabelEnableHttpsHelp": "Permite al servidor escuchar en el puerto HTTPS configurado. Un certificado válido también debe ser configurado para que esto tenga efecto.",
+ "LabelEnableHttps": "Habilitar HTTPS",
+ "LabelEnableHardwareDecodingFor": "Habilitar decodificación por hardware para:",
+ "LabelEnableDlnaServerHelp": "Permite a dispositivos UPnP en tu red explorar y reproducir contenido.",
+ "LabelEnableDlnaServer": "Habilitar servidor DLNA",
+ "LabelEnableDlnaPlayToHelp": "Detecta dispositivos dentro de tu red y ofrece la capacidad de controlarlos remotamente.",
+ "LabelEnableDlnaPlayTo": "Habilitar Reproducir En mediante DLNA",
+ "LabelEnableDlnaDebugLoggingHelp": "Crea grandes archivos de registro y solo se debe usar cuando se requiera para solucionar problemas.",
+ "LabelEnableDlnaDebugLogging": "Habilitar el registro de depuración de DLNA",
+ "LabelEnableDlnaClientDiscoveryIntervalHelp": "Determina la duración en segundos entre búsquedas SSDP realizadas por Jellyfin.",
+ "LabelEnableDlnaClientDiscoveryInterval": "Intervalo de descubrimiento de clientes (segundos)",
+ "LabelEnableBlastAliveMessagesHelp": "Habilita esto si el servidor no es detectado de manera confiable por otros dispositivos UPnP en tu red.",
+ "LabelEnableBlastAliveMessages": "Bombardeo de mensajes de vida",
+ "LabelEnableAutomaticPortMapHelp": "Redirecciona automáticamente los puertos públicos de tu router a los puertos locales de tu servidor a través de UPnP. Esto puede no funcionar con algunos modelos de routers o configuraciones de red. Los cambios no se aplicarán hasta después de reiniciar el servidor.",
+ "LabelEnableAutomaticPortMap": "Habilitar mapeo automático de puertos",
+ "LabelEmbedAlbumArtDidlHelp": "Algunos dispositivos prefieren este método para obtener arte de álbumes. Otros podrían fallar al reproducir con esta opción habilitada.",
+ "LabelEmbedAlbumArtDidl": "Incrustar arte del álbum en DIDL",
+ "LabelEasyPinCode": "Código PIN sencillo:",
+ "LabelDynamicExternalId": "{0} Id:",
+ "LabelDropShadow": "Mostrar sombra:",
+ "LabelDroppedFrames": "Cuadros saltados:",
+ "LabelDropImageHere": "Arrastre la imagen aquí o haz para explorar.",
+ "LabelDownloadLanguages": "Descargar idiomas:",
+ "LabelDownMixAudioScaleHelp": "Incrementa el audio cuando se hace downmix. Un valor de 1 preservará el volumen original.",
+ "LabelDownMixAudioScale": "Incremento del audio cuando se hace downmix:",
+ "LabelDisplaySpecialsWithinSeasons": "Mostrar especiales dentro de las temporadas en las que fueron transmitidas",
+ "LabelDisplayOrder": "Orden para mostrar:",
+ "LabelDisplayName": "Nombre a mostrar:",
+ "LabelDisplayMode": "Modo de pantalla:",
+ "LabelDisplayMissingEpisodesWithinSeasons": "Mostrar episodios faltantes en las temporadas",
+ "LabelDisplayLanguageHelp": "La traducción de Jellyfin es un proyecto en curso.",
+ "LabelDisplayLanguage": "Idioma de pantalla:",
+ "LabelDiscNumber": "Número de disco:",
+ "LabelDidlMode": "Modo DIDL:",
+ "LabelDeviceDescription": "Descripción del dispositivo",
+ "LabelDeinterlaceMethod": "Método de desentrelazado:",
+ "LabelDefaultUserHelp": "Determina qué biblioteca de usuario será mostrada en los dispositivos conectados. Esto puede ser reemplazado para cada dispositivo empleando perfiles.",
+ "LabelDefaultUser": "Usuario por defecto:",
+ "LabelDefaultScreen": "Pantalla por defecto:",
+ "LabelDeathDate": "Fecha de defunción:",
+ "LabelDay": "Día:",
+ "LabelDateTimeLocale": "Configuración regional de fecha y hora:",
+ "LabelDateAddedBehaviorHelp": "Si un valor de metadatos está presente, siempre se utilizará antes de cualquiera de estas opciones.",
+ "LabelDateAddedBehavior": "Comportamiento de la fecha de adición para nuevo contenido:",
+ "LabelDateAdded": "Fecha de adición:",
+ "LabelDashboardTheme": "Tema del panel de control del servidor:",
+ "LabelCustomRating": "Calificación personalizada:",
+ "LabelCustomDeviceDisplayNameHelp": "Proporcione un nombre personalizado para mostrar o déjalo vacío para usar el nombre reportado por el dispositivo.",
+ "LabelCustomDeviceDisplayName": "Nombre a mostrar:",
+ "LabelCustomCssHelp": "Aplica tu propio estilo personalizado a la interfaz web.",
+ "LabelCustomCss": "CSS personalizado:",
+ "LabelCustomCertificatePathHelp": "Ruta a un archivo PKCS #12 que contiene un certificado y una clave privada para habilitar el soporte TLS en un dominio personalizado.",
+ "LabelCustomCertificatePath": "Ruta del certificado SSL personalizado:",
+ "LabelCurrentPassword": "Contraseña actual:",
+ "LabelCriticRating": "Calificación de los críticos:",
+ "LabelCountry": "País:",
+ "LabelCorruptedFrames": "Cuadros corruptos:",
+ "LabelContentType": "Tipo de contenido:",
+ "LabelCommunityRating": "Calificación de la comunidad:",
+ "LabelCollection": "Colección:",
+ "LabelChannels": "Canales:",
+ "LabelCertificatePasswordHelp": "Si tu certificado requiere una contraseña, por favor, introdúcela aquí.",
+ "LabelCertificatePassword": "Contraseña del certificado:",
+ "TabArtists": "Artistas",
+ "TabAlbums": "Álbumes",
+ "TabAlbumArtists": "Artistas del álbum",
+ "TabAdvanced": "Avanzado",
+ "TabAccess": "Acceso",
+ "TV": "TV",
+ "SystemDlnaProfilesHelp": "Los perfiles del sistema son de solo lectura. Los cambios a un perfil del sistema serán guardados en un nuevo perfil personalizado.",
+ "SyncPlayAccessHelp": "Selecciona el nivel de acceso que este usuario tiene a la función SyncPlay. SyncPlay permite sincronizar la reproducción con otros dispositivos.",
+ "MessageDeleteTaskTrigger": "¿Estás seguro de querer eliminar este disparador de tarea?",
+ "MessageCreateAccountAt": "Crear una cuenta en {0}",
+ "MessageContactAdminToResetPassword": "Por favor, contacta a tu administrador para restablecer tu contraseña.",
+ "MessageConfirmShutdown": "¿Estás seguro de que deseas apagar el servidor?",
+ "MessageConfirmRevokeApiKey": "¿Estás seguro de querer revocar esta clave API? La conexión de la aplicación con el servidor Jellyfin será terminada abruptamente.",
+ "MessageConfirmRestart": "¿Estás seguro de que deseas reiniciar el servidor Jellyfin?",
+ "MessageConfirmRemoveMediaLocation": "¿Estás seguro de querer remover esta ubicación?",
+ "MessageConfirmRecordingCancellation": "¿Cancelar grabación?",
+ "MessageConfirmProfileDeletion": "¿Estás seguro de querer eliminar este perfil?",
+ "MessageConfirmDeleteTunerDevice": "¿Estás seguro de querer eliminar este dispositivo?",
+ "MessageConfirmDeleteGuideProvider": "¿Estás seguro de querer eliminar este proveedor de guía?",
+ "MessageConfirmAppExit": "¿Deseas salir?",
+ "MessageAreYouSureYouWishToRemoveMediaFolder": "¿Estás seguro de querer remover esta carpeta de medios?",
+ "MessageAreYouSureDeleteSubtitles": "¿Estás seguro de querer eliminar este subtítulo?",
+ "MessageAlreadyInstalled": "Esta versión ya se encuentra instalada.",
+ "Menu": "Menú",
+ "MediaIsBeingConverted": "Los medios están siendo convertidos a un formato compatible con el dispositivo que está reproduciendo el medio.",
+ "MediaInfoStreamTypeVideo": "Video",
+ "MediaInfoStreamTypeSubtitle": "Subtítulo",
+ "MediaInfoStreamTypeEmbeddedImage": "Imagen incrustada",
+ "MediaInfoStreamTypeData": "Dato",
+ "MediaInfoStreamTypeAudio": "Audio",
+ "MediaInfoSoftware": "Software",
+ "MediaInfoTimestamp": "Fecha y hora",
+ "MediaInfoSize": "Tamaño",
+ "MediaInfoSampleRate": "Tasa de muestreo",
+ "MediaInfoResolution": "Resolución",
+ "MediaInfoRefFrames": "Tramas de referencia",
+ "MediaInfoProfile": "Perfil",
+ "MediaInfoPixelFormat": "Formato de pixel",
+ "MediaInfoPath": "Ruta",
+ "MediaInfoLevel": "Nivel",
+ "MediaInfoLayout": "Esquema",
+ "MediaInfoLanguage": "Idioma",
+ "MediaInfoInterlaced": "Entrelazado",
+ "MediaInfoFramerate": "Velocidad de cuadros",
+ "MediaInfoForced": "Forzado",
+ "MediaInfoExternal": "Externo",
+ "MediaInfoDefault": "Por defecto",
+ "MediaInfoContainer": "Contenedor",
+ "MediaInfoCodecTag": "Etiqueta de códec",
+ "MediaInfoCodec": "Códec",
+ "MediaInfoChannels": "Canales",
+ "MediaInfoBitrate": "Velocidad de bits",
+ "MediaInfoBitDepth": "Profundidad de bit",
+ "MediaInfoAspectRatio": "Relación de aspecto",
+ "MediaInfoAnamorphic": "Anamórfico",
+ "MaxParentalRatingHelp": "El contenido con una calificación más alta será ocultado a este usuario.",
+ "MarkUnplayed": "Marcar como no reproducido",
+ "MarkPlayed": "Marcar como reproducido",
+ "MapChannels": "Mapear canales",
+ "ManageRecording": "Administrar grabación",
+ "ManageLibrary": "Administrar biblioteca",
+ "Logo": "Logo",
+ "LiveTV": "TV en vivo",
+ "LiveBroadcasts": "Emisiones en vivo",
+ "Live": "En vivo",
+ "LabelCancelled": "Cancelado",
+ "LabelCachePathHelp": "Especifica una ubicación personalizada para los archivos caché del servidor como las imágenes. Dejar en blanco para utilizar la configuración por defecto del servidor.",
+ "LabelCachePath": "Ruta de la caché:",
+ "LabelCache": "Caché:",
+ "LabelBurnSubtitles": "Quemar subtítulos:",
+ "LabelBlockContentWithTags": "Bloquear elementos con las etiquetas:",
+ "LabelBlastMessageIntervalHelp": "Determina la duración en segundos del intervalo entre mensajes de vida.",
+ "LabelBlastMessageInterval": "Intervalo de mensajes de vida (segundos)",
+ "LabelBitrate": "Velocidad de bits:",
+ "LabelBirthYear": "Año de nacimiento:",
+ "LabelBirthDate": "Fecha de nacimiento:",
+ "LabelBindToLocalNetworkAddressHelp": "Opcional. Sobrescribe la dirección IP local a la que se vincula el servidor http. Si se deja vacío, el servidor se vinculará a todas las direcciones disponibles. Cambiar este valor requiere reiniciar el servidor Jellyfin.",
+ "LabelBindToLocalNetworkAddress": "Vincular a la dirección de red local:",
+ "LabelAutomaticallyRefreshInternetMetadataEvery": "Actualizar automáticamente los metadatos desde Internet:",
+ "LabelAuthProvider": "Proveedor de autenticación:",
+ "LabelAudioSampleRate": "Frecuencia de muestreo de audio:",
+ "LabelAudioLanguagePreference": "Idioma preferido de audio:",
+ "LabelAudioCodec": "Códec de audio:",
+ "LabelAudioChannels": "Canales de audio:",
+ "LabelAudioBitrate": "Velocidad de bits de audio:",
+ "LabelAudioBitDepth": "Profundidad de bits de audio:",
+ "LabelAudio": "Audio",
+ "LabelArtistsHelp": "Separar múltiples empleando ;",
+ "LabelArtists": "Artistas:",
+ "LabelAppNameExample": "Ejemplo: Sickbeard, Sonarr",
+ "LabelAppName": "Nombre de la aplicación",
+ "LabelAllowedRemoteAddressesMode": "Modo de filtrado de direcciones IP remotas:",
+ "LabelAllowedRemoteAddresses": "Filtro de direcciones IP remotas:",
+ "LabelAllowServerAutoRestartHelp": "El servidor solo se reiniciará durante los períodos de inactividad cuando no haya usuarios activos.",
+ "LabelAllowServerAutoRestart": "Permite al servidor reiniciarse automáticamente para aplicar actualizaciones",
+ "LabelAllowHWTranscoding": "Permitir transcodificación por hardware",
+ "LabelAll": "Todos",
+ "LabelAlbumArtists": "Artistas del álbum:",
+ "LabelAlbumArtPN": "PN del arte del álbum:",
+ "LabelAlbumArtMaxWidthHelp": "Resolución máxima del arte del álbum expuesta vía upnp:albumArtURI.",
+ "LabelAlbumArtMaxWidth": "Ancho máximo del arte del álbum:",
+ "LabelAlbumArtMaxHeightHelp": "Resolución máxima del arte del álbum expuesta vía upnp:albumArtURI.",
+ "LabelAlbumArtMaxHeight": "Altura máxima del arte del álbum:",
+ "LabelAlbumArtHelp": "PN usado para el arte del álbum, dentro del atributo dlna:profileID en upnp:albumArtURI. Algunos dispositivos requieren valores específicos, independientemente del tamaño de la imagen.",
+ "LabelAlbum": "Álbum:",
+ "LabelAirsBeforeSeason": "Transmisión antes de la temporada:",
+ "LabelAirsBeforeEpisode": "Transmisión antes del episodio:",
+ "LabelAirsAfterSeason": "Transmisión después de la temporada:",
+ "LabelAirTime": "Duración:",
+ "LabelAirDays": "Se emite los días:",
+ "LabelAccessStart": "Hora de inicio:",
+ "LabelAccessEnd": "Hora de finalización:",
+ "LabelAccessDay": "Día de la semana:",
+ "LabelAbortedByServerShutdown": "(Abortado por apagado del servidor)",
+ "Label3DFormat": "Formato 3D:",
+ "Kids": "Niños",
+ "Items": "Elementos",
+ "ItemCount": "{0} elementos",
+ "InstantMix": "Mix instantáneo",
+ "InstallingPackage": "Instalando {0} (versión {1})",
+ "ImportMissingEpisodesHelp": "Si se habilita, la información sobre los episodios faltantes se importará a la base de datos de Jellyfin y se mostrarán dentro de las temporadas y series. Esto puede causar escaneos de biblioteca significativamente más largos.",
+ "ImportFavoriteChannelsHelp": "Si se habilita, solo los canales marcados como favoritos en el dispositivo sintonizador serán importados.",
+ "Images": "Imágenes",
+ "Identify": "Identificar",
+ "HttpsRequiresCert": "Para habilitar las conexiones seguras, necesitarás proporcionar un certificado SSL de confianza, como el de Let's Encrypt. Por favor, proporciona un certificado o desactiva las conexiones seguras.",
+ "Horizontal": "Horizontal",
+ "Home": "Inicio",
+ "HideWatchedContentFromLatestMedia": "Ocultar contenido ya visto de últimos medios",
+ "Hide": "Ocultar",
+ "Help": "Ayuda",
+ "HeadersFolders": "Carpetas",
+ "HeaderYears": "Años",
+ "HeaderXmlSettings": "Configuración XML",
+ "HeaderXmlDocumentAttributes": "Atributos del documento XML",
+ "HeaderXmlDocumentAttribute": "Atributo del documento XML",
+ "HeaderVideoTypes": "Tipos de video",
+ "HeaderVideoType": "Tipo de video",
+ "HeaderVideoQuality": "Calidad de video",
+ "HeaderUsers": "Usuarios",
+ "HeaderUploadImage": "Subir imagen",
+ "HeaderUpcomingOnTV": "Próximamente en TV",
+ "HeaderTypeText": "Introducir texto",
+ "HeaderTypeImageFetchers": "Recolectores de imágenes para {0}",
+ "HeaderTuners": "Sintonizador",
+ "HeaderTunerDevices": "Sintonizadores",
+ "HeaderTranscodingProfileHelp": "Agrega perfiles de transcodificación para indicar qué formatos deben ser usados cuando se requiere transcodificar.",
+ "HeaderTranscodingProfile": "Perfil de transcodificación",
+ "HeaderTracks": "Pistas",
+ "HeaderThisUserIsCurrentlyDisabled": "Este usuario se encuentra actualmente deshabilitado",
+ "HeaderTaskTriggers": "Disparadores de tarea",
+ "HeaderTags": "Etiquetas",
+ "HeaderSystemDlnaProfiles": "Perfiles del sistema",
+ "HeaderSyncPlayEnabled": "SyncPlay habilitado",
+ "HeaderSyncPlaySelectGroup": "Unirse a un grupo",
+ "HeaderSubtitleProfilesHelp": "Los perfiles de subtítulo describen los formatos de subtítulo soportados por el dispositivo.",
+ "HeaderSubtitleProfiles": "Perfiles de subtítulo",
+ "HeaderSubtitleProfile": "Perfil de subtítulo",
+ "HeaderSubtitleDownloads": "Descarga de subtítulos",
+ "HeaderSubtitleAppearance": "Apariencia de subtítulos",
+ "HeaderStopRecording": "Detener grabación",
+ "HeaderStatus": "Estado",
+ "HeaderStartNow": "Iniciar ahora",
+ "HeaderSpecialFeatures": "Características especiales",
+ "HeaderSpecialEpisodeInfo": "Información del episodio especial",
+ "HeaderSortOrder": "Clasificar ordenado",
+ "HeaderSortBy": "Ordenar por",
+ "HeaderShutdown": "Apagar",
+ "HeaderSetupLibrary": "Configura tus bibliotecas de medios",
+ "HeaderSettings": "Configuración",
+ "HeaderServerSettings": "Configuración del servidor",
+ "HeaderSelectServerCachePathHelp": "Explora o introduce la ruta a utilizar para los archivos caché del servidor. Se debe tener permisos de escritura en dicha carpeta.",
+ "HeaderSelectServerCachePath": "Seleccionar ruta para la caché del servidor",
+ "HeaderSelectServer": "Seleccionar servidor",
+ "HeaderSelectPath": "Seleccionar ruta",
+ "HeaderSelectMetadataPathHelp": "Explora o introduce la ruta donde deseas almacenar los metadatos. Se debe tener permisos de escritura en dicha carpeta.",
+ "HeaderSelectMetadataPath": "Selecciona la ruta para los metadatos",
+ "HeaderSelectCertificatePath": "Selecciona la ruta del certificado",
+ "HeaderSecondsValue": "{0} segundos",
+ "HeaderSeasons": "Temporadas",
+ "HeaderSchedule": "Programación",
+ "HeaderScenes": "Escenas",
+ "HeaderRunningTasks": "Tareas en ejecución",
+ "HeaderRevisionHistory": "Historial de versiones",
+ "HeaderRestartingServer": "Reiniciando servidor",
+ "HeaderRestart": "Reiniciar",
+ "HeaderResponseProfileHelp": "Los perfiles de respuesta proporcionan un medio para personalizar la información enviada al dispositivo cuando se reproducen ciertos tipos de medios.",
+ "HeaderResponseProfile": "Perfil de respuesta",
+ "HeaderRemoveMediaLocation": "Remover ubicación de medios",
+ "HeaderRemoveMediaFolder": "Remover carpeta de medios",
+ "HeaderRemoteControl": "Control remoto",
+ "HeaderRemoteAccessSettings": "Opciones de acceso remoto",
+ "HeaderRecordingPostProcessing": "Post procesado de las grabaciones",
+ "HeaderRecordingOptions": "Opciones de grabación",
+ "HeaderRecentlyPlayed": "Reproducido recientemente",
+ "HeaderProfileServerSettingsHelp": "Estos valores controlan como el servidor Jellyfin se presentará al dispositivo.",
+ "HeaderProfileInformation": "Información del perfil",
+ "HeaderProfile": "Perfil",
+ "HeaderPreferredMetadataLanguage": "Idioma preferido para los metadatos",
+ "HeaderPluginInstallation": "Instalación de complemento",
+ "HeaderPleaseSignIn": "Por favor, inicia sesión",
+ "HeaderPlaybackError": "Error de reproducción",
+ "HeaderPlayback": "Reproducción de medios",
+ "HeaderPlayOn": "Reproducir en",
+ "HeaderPlayAll": "Reproducir todo",
+ "HeaderPinCodeReset": "Restablecer código PIN",
+ "HeaderPhotoAlbums": "Álbumes de fotos",
+ "HeaderPeople": "Personas",
+ "HeaderPendingInvitations": "Invitaciones pendientes",
+ "HeaderPaths": "Rutas",
+ "HeaderPasswordReset": "Restablecer contraseña",
+ "HeaderPassword": "Contraseña",
+ "HeaderParentalRatings": "Clasificación parental",
+ "HeaderOtherItems": "Otros elementos",
+ "HeaderOnNow": "Transmitiendo ahora",
+ "HeaderNextVideoPlayingInValue": "El siguiente video se reproducirá en {0}",
+ "HeaderNextEpisodePlayingInValue": "El siguiente episodio se reproducirá en {0}",
+ "HeaderNewDevices": "Nuevos dispositivos",
+ "HeaderNewApiKey": "Nueva clave API",
+ "HeaderNavigation": "Navegación",
+ "HeaderMyMediaSmall": "Mis medios (pequeño)",
+ "HeaderMyMedia": "Mis medios",
+ "HeaderMyDevice": "Mi dispositivo",
+ "HeaderMusicVideos": "Videos musicales",
+ "HeaderMusicQuality": "Calidad de la música",
+ "HeaderMovies": "Películas",
+ "HeaderMoreLikeThis": "Más como esto",
+ "HeaderMetadataSettings": "Configuración de metadatos",
+ "HeaderMediaInfo": "Info del medio",
+ "HeaderMediaFolders": "Carpetas de medios",
+ "HeaderMedia": "Medios",
+ "HeaderLoginFailure": "Falló el inicio de sesión",
+ "HeaderLiveTvTunerSetup": "Configuración del sintonizador de TV",
+ "HeaderLiveTv": "TV en vivo",
+ "HeaderLibrarySettings": "Configuraciones de biblioteca",
+ "HeaderLibraryOrder": "Orden de las bibliotecas",
+ "HeaderLibraryFolders": "Carpetas de bibliotecas",
+ "HeaderLibraryAccess": "Acceso a bibliotecas",
+ "HeaderLibraries": "Bibliotecas",
+ "HeaderLatestRecordings": "Últimas grabaciones",
+ "HeaderLatestMusic": "Última música",
+ "HeaderLatestMovies": "Últimas películas",
+ "HeaderLatestMedia": "Últimos medios",
+ "HeaderLatestEpisodes": "Últimos episodios",
+ "HeaderKodiMetadataHelp": "Para habilitar o deshabilitar los metadatos NFO, edite una biblioteca en la configuración de bibliotecas de Jellyfin y ubica la sección grabadores de metadatos.",
+ "HeaderKeepSeries": "Conservar serie",
+ "HeaderKeepRecording": "Conservar grabación",
+ "HeaderItems": "Elementos",
+ "HeaderInstantMix": "Mix instantáneo",
+ "HeaderInstall": "Instalar",
+ "HeaderImageSettings": "Configuración de imagen",
+ "HeaderImageOptions": "Opciones de imagen",
+ "HeaderIdentifyItemHelp": "Introduce uno o más criterios de búsqueda. Elimina criterios para expandir los resultados.",
+ "HeaderIdentificationHeader": "Encabezado de identificación",
+ "HeaderIdentificationCriteriaHelp": "Introduzca, al menos, un criterio de identificación.",
+ "HeaderIdentification": "Identificación",
+ "HeaderHttpsSettings": "Opciones HTTPS",
+ "HeaderHttpHeaders": "Encabezados HTTP",
+ "HeaderHome": "Inicio",
+ "HeaderGuideProviders": "Proveedores de Guías de TV",
+ "HeaderGenres": "Géneros",
+ "HeaderFrequentlyPlayed": "Reproducido frecuentemente",
+ "HeaderForgotPassword": "Olvidé mi contraseña",
+ "HeaderForKids": "Para niños",
+ "HeaderFilters": "Filtros",
+ "HeaderFetcherSettings": "Configuración del recolector",
+ "HeaderFetchImages": "Obtener imágenes:",
+ "HeaderFeatures": "Características",
+ "HeaderFeatureAccess": "Acceso a características",
+ "HeaderFavoritePlaylists": "Listas de reproducción favoritas",
+ "HeaderFavoriteVideos": "Videos favoritos",
+ "LabelMetadataPath": "Ruta para los metadatos:",
+ "LabelMetadataDownloadersHelp": "Habilita y prioriza tus recolectores de metadatos preferidos. Los recolectores de metadatos de menor prioridad solo serán utilizados para llenar información faltante.",
+ "LabelMetadataDownloadLanguage": "Idioma preferido para las descargas:",
+ "LabelMetadata": "Metadatos:",
+ "LabelMessageTitle": "Título del mensaje:",
+ "LabelMessageText": "Texto del mensaje:",
+ "LabelMaxStreamingBitrateHelp": "Especifique una velocidad de bits máxima cuando se transmite.",
+ "LabelMaxStreamingBitrate": "Calidad máxima de transmisión:",
+ "LabelMaxScreenshotsPerItem": "Número máximo de capturas de pantalla por elemento:",
+ "LabelMaxResumePercentageHelp": "Los medios se consideran totalmente reproducidos si se detienen después de este tiempo.",
+ "LabelMaxResumePercentage": "Porcentaje máximo para la reanudación:",
+ "LabelMaxParentalRating": "Máxima clasificación parental permitida:",
+ "LabelMaxChromecastBitrate": "Calidad de transmisión de Chromecast:",
+ "LabelMaxBackdropsPerItem": "Número máximo de imágenes de fondo por elemento:",
+ "LabelMatchType": "Tipo de coincidencia:",
+ "LabelManufacturerUrl": "URL del fabricante",
+ "LabelManufacturer": "Fabricante:",
+ "LabelLogs": "Registros:",
+ "LabelLoginDisclaimerHelp": "Un mensaje que se mostrará en la parte inferior de la página de inicio de sesión.",
+ "LabelLoginDisclaimer": "Aviso legal:",
+ "LabelLockItemToPreventChanges": "Bloquear este elemento para evitar cambios futuros",
+ "LabelLocalHttpServerPortNumberHelp": "El número de puerto TCP al que el servidor HTTP de Jellyfin debería enlazar.",
+ "LabelLocalHttpServerPortNumber": "Número de puerto local HTTP:",
+ "LabelLineup": "Programación:",
+ "LabelLibraryPageSizeHelp": "Establece el número de elementos a mostrar en una página de biblioteca. Establece en 0 para deshabilitar el paginado.",
+ "LabelLibraryPageSize": "Tamaño de las páginas de las bibliotecas:",
+ "LabelLanguage": "Idioma:",
+ "LabelLanNetworks": "Redes LAN:",
+ "LabelKodiMetadataUserHelp": "Guarda los datos de visto en archivos NFO para que otras aplicaciones los utilicen.",
+ "LabelKodiMetadataUser": "Guardar los datos de visto del usuario en archivos NFO para:",
+ "LabelKodiMetadataSaveImagePathsHelp": "Esto se recomienda si tienes nombres de imágenes que no se ajustan a los lineamientos de Kodi.",
+ "LabelKodiMetadataSaveImagePaths": "Guardar las rutas de las imágenes en los archivos NFO",
+ "LabelKodiMetadataEnablePathSubstitutionHelp": "Habilita la sustitución de rutas de imágenes usando la configuración de sustitución de rutas del servidor.",
+ "LabelKodiMetadataEnablePathSubstitution": "Habilitar sustitución de ruta",
+ "LabelKodiMetadataEnableExtraThumbsHelp": "Cuando se descargan imágenes estas pueden ser almacenadas tanto en extrafanart como extrathumb para maximizar la compatibilidad con las pieles de Kodi.",
+ "LabelKodiMetadataEnableExtraThumbs": "Copiar extrafanart al campo extrathumbs",
+ "LabelKodiMetadataDateFormatHelp": "Todas las fechas dentro de los archivos NFO serán analizadas usando este formato.",
+ "LabelKodiMetadataDateFormat": "Formato de fecha de estreno:",
+ "HeaderFavoritePeople": "Personas favoritas",
+ "HeaderFavoriteMovies": "Películas favoritas",
+ "HeaderFavoriteBooks": "Libros favoritos",
+ "HeaderExternalIds": "IDs externos:",
+ "HeaderError": "Error",
+ "HeaderEpisodes": "Episodios",
+ "HeaderEnabledFieldsHelp": "Desmarca un campo para bloquearlo y prevenir que sus datos sean cambiados.",
+ "HeaderEnabledFields": "Campos habilitados",
+ "HeaderEditImages": "Editar imágenes",
+ "HeaderEasyPinCode": "Código PIN sencillo",
+ "HeaderDVR": "DVR",
+ "HeaderDownloadSync": "Descargar y sincronizar",
+ "HeaderDisplay": "Pantalla",
+ "HeaderDirectPlayProfileHelp": "Agrega perfiles de reproducción directa para indicar qué formatos puede manejar el dispositivo de forma nativa.",
+ "HeaderDirectPlayProfile": "Perfil de reproducción directa",
+ "HeaderDevices": "Dispositivos",
+ "HeaderDeviceAccess": "Acceso a dispositivos",
+ "HeaderDeveloperInfo": "Info del desarrollador",
+ "HeaderDetectMyDevices": "Detectar mis dispositivos",
+ "HeaderDeleteTaskTrigger": "Borrar disparador de tarea",
+ "HeaderDeleteProvider": "Eliminar proveedor",
+ "HeaderDeleteItems": "Eliminar elementos",
+ "HeaderDeleteItem": "Eliminar elemento",
+ "HeaderDeleteDevice": "Eliminar dispositivo",
+ "HeaderDefaultRecordingSettings": "Configuración predeterminada de grabaciones",
+ "HeaderDateIssued": "Fecha de emisión",
+ "HeaderCustomDlnaProfiles": "Perfiles personalizados",
+ "HeaderContinueListening": "Continuar escuchando",
+ "HeaderContainerProfileHelp": "Los perfiles de contenedor indican las limitaciones de un dispositivo al reproducir formatos específicos. Si una limitación se aplica entonces el medio será transcodificado, incluso si el formato ha sido configurado para reproducción directa.",
+ "HeaderContainerProfile": "Perfil del contenedor",
+ "HeaderConnectionFailure": "Falla de conexión",
+ "HeaderConnectToServer": "Conectarse al servidor",
+ "HeaderConfirmRevokeApiKey": "Revocar clave API",
+ "HeaderConfirmProfileDeletion": "Confirmar eliminación de perfil",
+ "HeaderConfirmPluginInstallation": "Confirmar instalación de complemento",
+ "HeaderConfigureRemoteAccess": "Configurar acceso remoto",
+ "HeaderCodecProfileHelp": "Los perfiles de códecs indican las limitaciones de un dispositivo al reproducir códecs específicos. Si una limitación se aplica entonces el medio será transcodificado, incluso si el códec ha sido configurado para reproducción directa.",
+ "HeaderCodecProfile": "Perfil de códec",
+ "HeaderChapterImages": "Imágenes de los capítulos",
+ "HeaderChannels": "Canales",
+ "HeaderChannelAccess": "Acceso a los canales",
+ "HeaderCastCrew": "Reparto y equipo",
+ "HeaderCastAndCrew": "Reparto y equipo",
+ "HeaderCancelSeries": "Cancelar serie",
+ "HeaderCancelRecording": "Cancelar grabación",
+ "HeaderBranding": "Establecer marca",
+ "HeaderBooks": "Libros",
+ "HeaderBlockItemsWithNoRating": "Bloquear elementos sin clasificación o con información de clasificación desconocida:",
+ "HeaderAutomaticUpdates": "Actualizaciones automáticas",
+ "HeaderAudioSettings": "Configuración de audio",
+ "HeaderAudioBooks": "Audiolibros",
+ "HeaderAppearsOn": "Aparece en",
+ "HeaderApp": "Aplicación",
+ "ApiKeysCaption": "Lista de claves API actualmente habilitadas",
+ "HeaderApiKeysHelp": "Las aplicaciones externas deben tener una clave API para poder comunicarse con el servidor Jellyfin. Las claves se emiten al iniciar sesión con una cuenta Jellyfin, o al otorgar manualmente una clave a la aplicación.",
+ "HeaderApiKeys": "Claves API",
+ "HeaderApiKey": "Clave API",
+ "HeaderAllowMediaDeletionFrom": "Permitir eliminación de medios de",
+ "HeaderAlert": "Alerta",
+ "HeaderAlbums": "Álbumes",
+ "HeaderAdmin": "Administrador",
+ "HeaderAdditionalParts": "Partes adicionales",
+ "HeaderAddUser": "Agregar usuario",
+ "HeaderAddUpdateImage": "Agregar/Actualizar Imagen",
+ "HeaderAddToPlaylist": "Agregar a lista de reproducción",
+ "HeaderAddToCollection": "Agregar a colección",
+ "HeaderAddScheduledTaskTrigger": "Agregar disparador",
+ "HeaderActivity": "Actividad",
+ "HeaderActiveRecordings": "Grabaciones activas",
+ "HeaderActiveDevices": "Dispositivos activos",
+ "HeaderAccessScheduleHelp": "Crea una programación de acceso para limitar el acceso a ciertos horarios.",
+ "HeaderAccessSchedule": "Programación de acceso",
+ "HardwareAccelerationWarning": "Habilitar la aceleración por hardware podría causar inestabilidad en algunos entornos. Asegúrate de que tu sistema operativo y controladores de video están actualizados. Si tienes dificultades reproduciendo videos después de habilitar esto, necesitarás volver a cambiar la configuración a Ninguno.",
+ "HDPrograms": "Programas en HD",
+ "EncoderPresetHelp": "Elige un valor más rápido para mejorar el rendimiento, o uno más lento para mejorar la calidad.",
+ "H264CrfHelp": "El «Factor de transferencia constante» (CRF) es la configuración de calidad por defecto para el codificador x264. Puedes establecer valores entre 0 y 51, donde los valores más bajos dan como resultado mejor calidad (a expensas de archivos más grandes). Los valores comunes son entre 18 y 28. El valor por defecto para x264 es 23, así que puedes usar este valor como punto de referencia.",
+ "GuideProviderSelectListings": "Elegir listados",
+ "GuideProviderLogin": "Iniciar sesión",
+ "Guide": "Guía",
+ "GuestStar": "Estrella invitada",
+ "GroupVersions": "Agrupar versiones",
+ "GroupBySeries": "Agrupar por series",
+ "Genre": "Género",
+ "General": "General",
+ "Fullscreen": "Pantalla completa",
+ "Friday": "Viernes",
+ "FormatValue": "Formato: {0}",
+ "FolderTypeUnset": "Contenido variado",
+ "FolderTypeTvShows": "Series de TV",
+ "FolderTypeMusicVideos": "Videos musicales",
+ "FolderTypeMusic": "Música",
+ "FolderTypeMovies": "Películas",
+ "FolderTypeBooks": "Libros",
+ "Filters": "Filtros",
+ "FileReadError": "Ha ocurrido un error al leer el archivo.",
+ "FileReadCancelled": "La lectura del archivo ha sido cancelada.",
+ "FileNotFound": "Archivo no encontrado.",
+ "File": "Archivo",
+ "FetchingData": "Obteniendo datos adicionales",
+ "Features": "Características",
+ "Favorite": "Favorito",
+ "FastForward": "Avance rápido",
+ "FFmpegSavePathNotFound": "No fue posible localizar FFmpeg usando la ruta que has introducido. FFprobe también es requerido y debe de estar en la misma carpeta. Estos componentes normalmente están empaquetados en la misma descarga. Por favor, verifica la ruta e inténtalo de nuevo.",
+ "Extras": "Extras",
+ "ExtractChapterImagesHelp": "La extracción de imágenes de capítulos permitirá a los clientes mostrar menús gráficos de selección de escenas. El proceso puede ser lento, intensivo en recursos y puede requerir varios gigabytes de espacio. Se ejecuta cuando se descubren los videos y también como una tarea programada cada noche. La programación es configurable en el área de tareas programadas. No se recomienda ejecutar esta tarea durante las horas de mayor uso.",
+ "ExtraLarge": "Extra grande",
+ "ExitFullscreen": "Salir de la pantalla completa",
+ "EveryNDays": "Cada {0} días",
+ "ErrorSavingTvProvider": "Hubo un error al guardar el proveedor de TV. Por favor, asegúrate de que sea accesible e inténtalo de nuevo.",
+ "ErrorPleaseSelectLineup": "Por favor, selecciona una programación e inténtalo de nuevo. Si no hay disponible ninguna, entonces, por favor, verifica que tu nombre de usuario, contraseña, y código postal sean correctos.",
+ "ErrorMessageStartHourGreaterThanEnd": "La hora de finalización debe ser mayor que la hora de inicio.",
+ "ErrorGettingTvLineups": "Hubo un error al descargar la programación de TV. Por favor, asegúrate de que tu información sea correcta e inténtalo de nuevo.",
+ "ErrorDeletingItem": "Hubo un error eliminando el elemento del servidor Jellyfin. Por favor, verifica que el servidor Jellyfin tiene permisos de escritura en la carpeta del medio e inténtalo de nuevo.",
+ "ErrorAddingXmlTvFile": "Hubo un error accediendo al archivo XMLTV. Por favor, asegúrate de que el archivo existe e inténtalo de nuevo.",
+ "ErrorAddingTunerDevice": "Hubo un error al agregar el dispositivo sintonizador. Por favor, asegúrate de que esté disponible e inténtalo de nuevo.",
+ "ErrorAddingMediaPathToVirtualFolder": "Hubo un error agregando la ruta de medios. Por favor, asegúrate de que la ruta es válida y que el proceso del servidor Jellyfin tiene acceso a ese destino.",
+ "ErrorAddingListingsToSchedulesDirect": "Hubo un error agregando la programación de tu cuenta de Schedules Direct. Schedules Direct solo permite un numero limitado de programaciones por cuenta. Tal vez necesites acceder al sitio web de Schedules Direct y eliminar otras programaciones de tu cuenta antes de continuar.",
+ "Episodes": "Episodios",
+ "Episode": "Episodio",
+ "EndsAtValue": "Termina a las {0}",
+ "Ended": "Finalizado",
+ "EnableDetailsBannerHelp": "Mostrar una imagen banner en la parte superior de la página de detalles del elemento.",
+ "EnableDetailsBanner": "Banner de detalles",
+ "EnableThemeVideosHelp": "Reproducir videos temáticos en el fondo mientras se navega por la biblioteca.",
+ "EnableThemeVideos": "Videos temáticos",
+ "EnableThemeSongsHelp": "Reproducir canciones temáticas en el fondo mientras se navega por la biblioteca.",
+ "EnableThemeSongs": "Canciones temáticas",
+ "EnableStreamLoopingHelp": "Habilita esta opción si las transmisiones en vivo contienen solo unos pocos segundos de datos y necesitan ser solicitadas continuamente. Habilitar esto cuando no es requerido puede causar problemas.",
+ "EnableStreamLooping": "Repetir automáticamente las transmisiones en vivo",
+ "EnablePhotosHelp": "Las imágenes serán detectadas y mostradas junto con otros archivos multimedia.",
+ "EnablePhotos": "Mostrar fotografías",
+ "EnableNextVideoInfoOverlayHelp": "Al finalizar un video, mostrar información sobre el siguiente video a reproducir en la lista de reproducción actual.",
+ "EnableNextVideoInfoOverlay": "Mostrar la información del siguiente video durante la reproducción",
+ "EnableHardwareEncoding": "Habilitar codificación por hardware",
+ "EnableExternalVideoPlayersHelp": "Un menú de reproductor externo se mostrara cuando inicie la reproducción de un video.",
+ "EnableExternalVideoPlayers": "Reproductores de video externos",
+ "EnableDisplayMirroring": "Duplicado de pantalla",
+ "EnableColorCodedBackgrounds": "Fondos de colores codificados",
+ "EnableCinemaMode": "Modo cine",
+ "EnableBackdropsHelp": "Muestra imágenes de fondo en el fondo de algunas páginas mientras se navega por la biblioteca.",
+ "EnableBackdrops": "Imágenes de fondo",
+ "EditSubtitles": "Editar subtítulos",
+ "EditMetadata": "Editar metadatos",
+ "EditImages": "Editar imágenes",
+ "Edit": "Editar",
+ "EasyPasswordHelp": "Tu código PIN fácil se utiliza para el acceso sin conexión en los clientes soportados y también puede utilizarse para acceder fácilmente cuando se está en la misma red.",
+ "DropShadow": "Sombra paralela",
+ "DrmChannelsNotImported": "Los canales con DRM no serán importados.",
+ "DownloadsValue": "{0} descargas",
+ "Download": "Descargar",
+ "Down": "Abajo",
+ "DoNotRecord": "No grabar",
+ "DisplayModeHelp": "Selecciona el estilo de diseño que desea para la interfaz.",
+ "DisplayMissingEpisodesWithinSeasonsHelp": "Esto también debe estar habilitado para las bibliotecas de TV en la configuración del servidor.",
+ "DisplayMissingEpisodesWithinSeasons": "Mostrar episodios faltantes en las temporadas",
+ "DisplayInOtherHomeScreenSections": "Mostrar en las secciones de la pantalla de inicio como recientes o continuar viendo",
+ "DisplayInMyMedia": "Mostrar en la pantalla de inicio",
+ "Display": "Pantalla",
+ "Dislike": "No me gusta",
+ "Disconnect": "Desconectar",
+ "Disc": "DIsco",
+ "Disabled": "Desactivado",
+ "Directors": "Directores",
+ "DirectStreaming": "Transmisión directa",
+ "DirectStreamHelp2": "Transmitir directamente un archivo usa muy poco poder de procesamiento sin ninguna perdida en la calidad de video.",
+ "DirectStreamHelp1": "El medio es compatible con el dispositivo en cuanto a la resolución y tipo de medio (H.264, AC3, etc.), pero está en un contenedor de archivo incompatible (mkv, avi, wmv, etc.). El video será reempaquetado sobre la marcha antes de transmitirlo al dispositivo.",
+ "DirectPlaying": "Reproducción directa",
+ "DeviceAccessHelp": "Esto solo se aplica a los dispositivos que pueden ser identificados de manera única y no impedirá el acceso desde navegadores. Filtrar el acceso a los dispositivos de los usuarios les impedirá usar nuevos dispositivos hasta que hayan sido aprobados aquí.",
+ "DetectingDevices": "Detectando dispositivos",
+ "Desktop": "Escritorio",
+ "Descending": "Descendente",
+ "DeleteUserConfirmation": "¿Estás seguro de querer eliminar este usuario?",
+ "DeleteUser": "Eliminar usuario",
+ "DeleteMedia": "Eliminar medios",
+ "DeleteImageConfirmation": "¿Estás seguro de querer eliminar esta imagen?",
+ "DeleteImage": "Eliminar imagen",
+ "DeleteDeviceConfirmation": "¿Estás seguro de querer eliminar este dispositivo? Volverá a aparecer la siguiente vez que un usuario inicie sesión con él.",
+ "Delete": "Eliminar",
+ "DeinterlaceMethodHelp": "Seleccione el método de desentrelazado que se usará al transcodificar contenido entrelazado.",
+ "DefaultSubtitlesHelp": "Los subtítulos se cargan basados en los indicadores «por defecto» y «forzado» incluidos en los metadatos. Las preferencias de idioma son consideradas cuando hay múltiples opciones disponibles.",
+ "DefaultMetadataLangaugeDescription": "Estos son sus valores por defecto y pueden ser personalizados en cada biblioteca.",
+ "DefaultErrorMessage": "Ha ocurrido un error al procesar la solicitud. Por favor, inténtalo de nuevo más tarde.",
+ "Default": "Por defecto",
+ "DeathDateValue": "Falleció: {0}",
+ "DatePlayed": "Fecha de reproducción",
+ "DateAdded": "Fecha de adición",
+ "CustomDlnaProfilesHelp": "Crear un perfil personalizado para un nuevo dispositivo o reemplazar un perfil del sistema.",
+ "CriticRating": "Calificación de los críticos",
+ "CopyStreamURLError": "Hubo un error al copiar la URL.",
+ "CopyStreamURLSuccess": "URL copiada con éxito.",
+ "CopyStreamURL": "Copiar la URL de la transmisión",
+ "Continuing": "Continuando",
+ "ContinueWatching": "Continuar viendo",
+ "Connect": "Conectar",
+ "ConfirmEndPlayerSession": "¿Deseas apagar Jellyfin en {0}?",
+ "ConfirmDeletion": "Confirmar eliminación",
+ "HeaderServerAddressSettings": "Configuración de la dirección del servidor",
+ "HeaderSeriesStatus": "Estado de la serie",
+ "HeaderSeriesOptions": "Opciones de serie",
+ "HeaderSeries": "Series",
+ "HeaderSendMessage": "Enviar mensaje",
+ "HeaderSelectTranscodingPathHelp": "Explora o introduce la ruta a utilizar para los archivos temporales de transcodificación. Se debe tener permisos de escritura en dicha carpeta.",
+ "HeaderSelectTranscodingPath": "Selecciona la ruta para los archivos temporales de transcodificación",
+ "ConfirmDeleteItems": "Eliminar estos elementos los eliminará tanto del sistema como de tu biblioteca de medios. ¿Estás seguro de querer continuar?",
+ "ConfirmDeleteItem": "Eliminar este elemento lo eliminará tanto del sistema como de tu biblioteca de medios. ¿Estás seguro de querer continuar?",
+ "ConfirmDeleteImage": "¿Eliminar imagen?",
+ "ConfigureDateAdded": "Configura cómo se determina la fecha de adición en el panel de control del servidor Jellyfin en la configuración de la biblioteca",
+ "Composer": "Compositor",
+ "CommunityRating": "Calificación de la comunidad",
+ "ColorTransfer": "Transferencia de color",
+ "ColorSpace": "Espacio de color",
+ "ColorPrimaries": "Colores primarios",
+ "ClientSettings": "Configuración del cliente",
+ "CinemaModeConfigurationHelp": "El modo cine lleva la experiencia del cine directamente a tu sala de estar con la capacidad de reproducir trailers e introducciones personalizadas antes de la función principal.",
+ "ChannelNumber": "Número de canal",
+ "ChannelNameOnly": "Canal {0} solamente",
+ "ChannelAccessHelp": "Selecciona los canales a compartir con este usuario. Los administradores podrán editar todos los canales empleando el administrador de metadatos.",
+ "ChangingMetadataImageSettingsNewContent": "Cambios en las configuraciones de descarga de metadatos o arte solo se aplicarán a contenido nuevo agregado a tu biblioteca. Para aplicar los cambios a los títulos existentes, necesitarás actualizar sus metadatos manualmente.",
+ "Categories": "Categorías",
+ "CancelSeries": "Cancelar serie",
+ "CancelRecording": "Cancelar grabación",
+ "ButtonWebsite": "Sitio web",
+ "ButtonViewWebsite": "Ver sitio web",
+ "ButtonUp": "Arriba",
+ "ButtonUninstall": "Desinstalar",
+ "ButtonTrailer": "Trailer",
+ "ButtonTogglePlaylist": "Lista de reproducción",
+ "ButtonToggleContextMenu": "Más",
+ "ButtonSubtitles": "Subtítulos",
+ "ButtonSubmit": "Enviar",
+ "ButtonSplit": "Dividir",
+ "ButtonStop": "Detener",
+ "ButtonStart": "Iniciar",
+ "ButtonSort": "Ordenar",
+ "ButtonSignOut": "Cerrar sesión",
+ "ButtonSignIn": "Iniciar sesión",
+ "ButtonShutdown": "Apagar",
+ "ButtonShuffle": "Aleatorio",
+ "ButtonSettings": "Configuración",
+ "ButtonSend": "Enviar",
+ "ButtonSelectView": "Seleccionar vista",
+ "ButtonSelectServer": "Seleccionar servidor",
+ "ButtonSelectDirectory": "Seleccionar directorio",
+ "ButtonSearch": "Búsqueda",
+ "ButtonScanAllLibraries": "Escanear todas las bibliotecas",
+ "ButtonSave": "Guardar",
+ "ButtonRevoke": "Revocar",
+ "ButtonResume": "Continuar",
+ "ButtonRestart": "Reiniciar",
+ "ButtonResetPassword": "Restablecer contraseña",
+ "ButtonResetEasyPassword": "Restablecer código PIN sencillo",
+ "ButtonRepeat": "Repetir",
+ "ButtonRename": "Renombrar",
+ "ButtonRemove": "Remover",
+ "ButtonRefreshGuideData": "Actualizar datos de la guía",
+ "ButtonRefresh": "Actualizar",
+ "ButtonQuickStartGuide": "Guía de inicio rápido",
+ "ButtonProfile": "Perfil",
+ "ButtonPreviousTrack": "Pista anterior",
+ "ButtonPlay": "Reproducir",
+ "ButtonPause": "Pausar",
+ "ButtonParentalControl": "Control parental",
+ "ButtonOpen": "Abrir",
+ "ButtonOk": "OK",
+ "ButtonOff": "Apagar",
+ "ButtonNextTrack": "Pista siguiente",
+ "ButtonNew": "Nuevo",
+ "ButtonNetwork": "Red",
+ "ButtonMore": "Más",
+ "ButtonManualLogin": "Inicio de sesión manual",
+ "ButtonLibraryAccess": "Acceso a biblioteca(s)",
+ "ButtonLearnMore": "Aprender más",
+ "ButtonInfo": "Info",
+ "ButtonHome": "Inicio",
+ "ButtonHelp": "Ayuda",
+ "ButtonGuide": "Guía",
+ "ButtonGotIt": "Hecho",
+ "ButtonFullscreen": "Pantalla completa",
+ "ButtonForgotPassword": "Olvidé mi contraseña",
+ "ButtonFilter": "Filtro",
+ "ButtonEditOtherUserPreferences": "Editar el perfil, la imagen y las preferencias personales de este usuario.",
+ "ButtonEditImages": "Editar imágenes",
+ "ButtonEdit": "Editar",
+ "ButtonDownload": "Descargar",
+ "ButtonDown": "Abajo",
+ "ButtonDeleteImage": "Eliminar imagen",
+ "ButtonDelete": "Eliminar",
+ "ButtonConnect": "Conectar",
+ "ButtonChangeServer": "Cambiar servidor",
+ "ButtonCancel": "Cancelar",
+ "ButtonBack": "Atrás",
+ "ButtonAudioTracks": "Pistas de audio",
+ "ButtonArrowUp": "Arriba",
+ "ButtonArrowRight": "Derecha",
+ "ButtonArrowLeft": "Izquierda",
+ "ButtonArrowDown": "Abajo",
+ "ButtonAddUser": "Agregar usuario",
+ "ButtonAddServer": "Agregar servidor",
+ "ButtonAddScheduledTaskTrigger": "Agregar disparador",
+ "ButtonAddMediaLibrary": "Agregar biblioteca de medios",
+ "ButtonAddImage": "Agregar imagen",
+ "ButtonAdd": "Agregar",
+ "BurnSubtitlesHelp": "Determina si el servidor debería quemar los subtítulos al transcodificar videos. Evitar esto mejorará altamente el rendimiento del servidor. Seleccione Auto para grabar formatos basados en imágenes (VOBSUB, PGS, SUB, IDX...) y ciertos subtítulos ASS o SSA.",
+ "BrowsePluginCatalogMessage": "Explora nuestro catálogo de complementos para ver los complementos disponibles.",
+ "Browse": "Explorar",
+ "BoxRear": "Caja (parte trasera)",
+ "Box": "Caja",
+ "BookLibraryHelp": "Los libros de texto y audiolibros están soportados. Revisa la {0} guía de nombrado de libros {1}.",
+ "Blacklist": "Lista negra",
+ "BirthPlaceValue": "Lugar de nacimiento: {0}",
+ "BirthLocation": "Lugar de nacimiento",
+ "BirthDateValue": "Nacimiento: {0}",
+ "Banner": "Banner",
+ "Backdrops": "Imágenes de fondo",
+ "Backdrop": "Imagen de fondo",
+ "AutoBasedOnLanguageSetting": "Auto (basado en la configuración del idioma)",
+ "Auto": "Auto",
+ "AuthProviderHelp": "Selecciona un proveedor de autenticación que se utilizará para autenticar la contraseña de este usuario.",
+ "Audio": "Audio",
+ "AttributeNew": "Nuevo",
+ "AspectRatio": "Relación de aspecto",
+ "AskAdminToCreateLibrary": "Pide a un administrador crear una biblioteca.",
+ "Ascending": "Ascendente",
+ "AsManyAsPossible": "Tantos como sea posible",
+ "Artist": "Artista",
+ "Art": "Arte",
+ "AroundTime": "Alrededor de",
+ "Anytime": "En cualquier momento",
+ "AnyLanguage": "Cualquier idioma",
+ "AlwaysPlaySubtitlesHelp": "Los subtítulos que coincidan con el idioma preferido serán cargados independientemente del idioma del audio.",
+ "AlwaysPlaySubtitles": "Siempre reproducir",
+ "AllowedRemoteAddressesHelp": "Lista separada por comas de direcciones IP/máscaras de red para las redes a las que se les permitirá conectarse remotamente. Si se deja en blanco, se les permitirá a todas las direcciones remotas.",
+ "AllowRemoteAccessHelp": "Si no se marca, se bloquearán todas las conexiones remotas.",
+ "AllowRemoteAccess": "Permitir conexiones remotas a este servidor Jellyfin.",
+ "AllowFfmpegThrottlingHelp": "Cuando una transcodificación o remuxeado se adelanta lo suficiente de la posición de reproducción actual, se pausa el proceso para que consuma menos recursos. Esto es más útil cuando se mira sin buscar con frecuencia. Apaga esto si experimentas problemas de reproducción.",
+ "AllowFfmpegThrottling": "Regular transcodificaciones",
+ "AllowOnTheFlySubtitleExtractionHelp": "Los subtítulos incrustados pueden extraerse de los videos y entregarse a los clientes en texto plano para ayudar a evitar la transcodificación de video. En algunos sistemas, esto puede tardar mucho tiempo y provocar que la reproducción de video se detenga durante el proceso de extracción. Deshabilite esta opción para que los subtítulos incrustados se graben con transcodificación de video cuando no estén soportados de forma nativa por el dispositivo cliente.",
+ "AllowOnTheFlySubtitleExtraction": "Permitir la extracción de subtítulos sobre la marcha",
+ "AllowMediaConversionHelp": "Permitir o denegar acceso a la función de convertir medios.",
+ "AllowMediaConversion": "Permitir conversión de medios",
+ "AllowHWTranscodingHelp": "Permite al sintonizador transcodificar las transmisiones sobre la marcha. Esto puede ayudar a reducir la transcodificación requerida por el servidor.",
+ "AllLibraries": "Todas las bibliotecas",
+ "AllLanguages": "Todos los idiomas",
+ "AllEpisodes": "Todos los episodios",
+ "AllComplexFormats": "Todos los formatos complejos (ASS, SSA, VOBSUB, PGS, SUB, IDX...)",
+ "AllChannels": "Todos los canales",
+ "All": "Todo",
+ "Alerts": "Alertas"
}
diff --git a/src/strings/it.json b/src/strings/it.json
index 71d09eced7..d678cf6e0f 100644
--- a/src/strings/it.json
+++ b/src/strings/it.json
@@ -1455,8 +1455,8 @@
"MessageConfirmAppExit": "Vuoi uscire?",
"HeaderNavigation": "Navigazione",
"CopyStreamURLError": "Si è verificato un errore nel copiare l'indirizzo.",
- "EnableFastImageFadeInHelp": "Abilita la dissolvenza veloce per le immagini caricate",
- "EnableFastImageFadeIn": "Dissolvenza immagine veloce",
+ "EnableFastImageFadeInHelp": "Mostra i poster e le altre immagini con una dissolvenza veloce alla fine del caricamento.",
+ "EnableFastImageFadeIn": "Dissolvenza Immagine Veloce",
"PlaybackErrorNoCompatibleStream": "Il client è incompatibile con il media e il server non sta inviando un formato compatibile.",
"OptionForceRemoteSourceTranscoding": "Forza la transcodifica da fonti di media remoti (come LiveTV)",
"NoCreatedLibraries": "Sembra che tu non abbia ancora creato delle librerie. {0}Vuoi crearne una adesso?{1}",
@@ -1520,5 +1520,37 @@
"TabDVR": "DVR",
"SaveChanges": "Salva modifiche",
"HeaderDVR": "DVR",
- "LabelNightly": "Nightly"
+ "LabelNightly": "Nightly",
+ "SyncPlayAccessHelp": "Scegli il livello d'accesso di questo utente a SyncPlay. SyncPlay ti permette di riprodurre contemporaneamente su diversi dispositivi.",
+ "MessageSyncPlayErrorMedia": "Impossibile abilitare SyncPlay! Errore media.",
+ "MessageSyncPlayErrorMissingSession": "Impossibile abilitare SyncPlay! Sessione mancante.",
+ "MessageSyncPlayErrorNoActivePlayer": "Nessun player attivo. SyncPlay è stato disabilitato.",
+ "MessageSyncPlayErrorAccessingGroups": "Errore durante l'accesso alla lista dei gruppi.",
+ "MessageSyncPlayLibraryAccessDenied": "L'accesso a questo contenuto è negato.",
+ "MessageSyncPlayJoinGroupDenied": "E' Necessario il permesso per l'utilizzo di SyncPlay.",
+ "MessageSyncPlayCreateGroupDenied": "E' necessario il permesso di creazione di un gruppo.",
+ "MessageSyncPlayGroupDoesNotExist": "Impossibile unirsi al gruppo perchè non esiste.",
+ "MessageSyncPlayPlaybackPermissionRequired": "Permesso di riproduzione necessario.",
+ "MessageSyncPlayNoGroupsAvailable": "Nessun gruppo disponibile. Inizia a riprodurre qualcosa.",
+ "MessageSyncPlayGroupWait": "{0} sta bufferizzando...",
+ "MessageSyncPlayUserLeft": "{0} ha lasciato il gruppo.",
+ "MessageSyncPlayUserJoined": "{0} si è unito al gruppo.",
+ "MessageSyncPlayDisabled": "SyncPlay disabilitato.",
+ "MessageSyncPlayEnabled": "SyncPlay abilitato.",
+ "LabelSyncPlayAccess": "Accesso SyncPlay",
+ "LabelSyncPlayAccessNone": "Disabilitato per questo utente",
+ "LabelSyncPlayAccessJoinGroups": "Permetti all'utente di unirsi ai gruppi",
+ "LabelSyncPlayAccessCreateAndJoinGroups": "Permetti all'utente di creare e unirsi ai gruppi",
+ "LabelSyncPlayLeaveGroupDescription": "Disabilita SyncPlay",
+ "LabelSyncPlayLeaveGroup": "Lascia il gruppo",
+ "LabelSyncPlayNewGroupDescription": "Crea un nuovo gruppo",
+ "LabelSyncPlayNewGroup": "Nuovo gruppo",
+ "LabelSyncPlaySyncMethod": "Metodo Sync:",
+ "LabelSyncPlayPlaybackDiff": "Differenza oraria nella riproduzione:",
+ "MillisecondsUnit": "ms",
+ "LabelSyncPlayTimeOffset": "Differenza temporale con il server:",
+ "HeaderSyncPlayEnabled": "SyncPlay abilitato",
+ "HeaderSyncPlaySelectGroup": "Unisciti a un gruppo",
+ "EnableDetailsBannerHelp": "Mostra il banner nella parte superiore della pagina di dettaglio dell'elemento.",
+ "EnableDetailsBanner": "Banner Dettagli"
}
diff --git a/src/strings/pt.json b/src/strings/pt.json
index e05e5bf668..370a1343ea 100644
--- a/src/strings/pt.json
+++ b/src/strings/pt.json
@@ -1102,13 +1102,13 @@
"AllowedRemoteAddressesHelp": "Lista separada por vírgula de endereços IP ou entradas de máscara de IP/rede para redes que terão permissão para se conectar remotamente. Se deixado em branco, todos os endereços remotos serão permitidos.",
"AllowRemoteAccessHelp": "Se desmarcada, todas as conexões remotas serão bloqueadas.",
"AllowRemoteAccess": "Permitir ligações remotas a este Servidor Jellyfin.",
- "AllowOnTheFlySubtitleExtractionHelp": "Legendas integradas podem ser extraídas do vídeo e enviadas como texto simples para os clientes para evitar transcodificação. Em certos dispositivos, é uma operação demorada e pode causar paragens de reprodução durante o processo de extracção. Desactive esta opção para que as legendas sejam integradas no vídeo durante a conversão para um formato suportado pelo dispositivo de destino.",
+ "AllowOnTheFlySubtitleExtractionHelp": "Legendas integradas podem ser extraídas do vídeo e enviadas como texto simples para os clientes de forma a evitar transcodificação. Em certos dispositivos, esta operação pode demorar algum tempo e causar paragens de reprodução durante o processo de extração. Desative esta opção para que as legendas sejam integradas no vídeo durante a conversão para um formato suportado pelo dispositivo de destino.",
"AllowOnTheFlySubtitleExtraction": "Permitir a extração de legendas em tempo real",
"AllowHWTranscodingHelp": "Permita que o sintonizador transcodifique os fluxos em tempo real. Isso pode ajudar a reduzir a transcodificação exigida pelo servidor.",
"AllLibraries": "Todas as bibliotecas",
"AllLanguages": "Todos os idiomas",
"AllEpisodes": "Todos os episódios",
- "AllComplexFormats": "Todos os formatos complexos (ASS, SSA, VOBSUB, PGS, SUB/IDX, etc.)",
+ "AllComplexFormats": "Todos os formatos complexos (ASS, SSA, VOBSUB, PGS, SUB, IDX, etc.)",
"AllChannels": "Todos os canais",
"All": "Todos",
"Alerts": "Alertas",
diff --git a/src/strings/ro.json b/src/strings/ro.json
index 89aeda2ef2..4e1227d85b 100644
--- a/src/strings/ro.json
+++ b/src/strings/ro.json
@@ -250,7 +250,7 @@
"ButtonSubmit": "Trimite",
"Collections": "Colecții",
"AllowRemoteAccess": "Permite conexiuni externe către acest server Jellyfin.",
- "AllowRemoteAccessHelp": "Dacă este nebifat, toate conexiunile externe vor fi blocate.",
+ "AllowRemoteAccessHelp": "Dacă este neselectat, toate conexiunile externe vor fi blocate.",
"AlwaysPlaySubtitles": "Întotdeauna arată",
"AnyLanguage": "Orice Limbă",
"Anytime": "Oricând",
diff --git a/src/strings/zh-cn.json b/src/strings/zh-cn.json
index 0b51170196..d57c46395d 100644
--- a/src/strings/zh-cn.json
+++ b/src/strings/zh-cn.json
@@ -1,5 +1,5 @@
{
- "AccessRestrictedTryAgainLater": "目前访问受限。请稍后再试。",
+ "AccessRestrictedTryAgainLater": "目前访问受限,请稍后再试。",
"Actor": "演员",
"Add": "添加",
"AddItemToCollectionHelp": "通过搜索项目并右键或轻触得到的弹出菜单来将项目添加到集合中。",
@@ -1464,7 +1464,7 @@
"HeaderNavigation": "导航",
"CopyStreamURLError": "复制URL地址时发生错误。",
"MessageConfirmAppExit": "你要退出吗?",
- "EnableFastImageFadeIn": "快速图片淡入",
+ "EnableFastImageFadeIn": "快速图片淡入淡出",
"EnableFastImageFadeInHelp": "为已加载的图片启用更快的图片淡入动画",
"OptionForceRemoteSourceTranscoding": "强制远程转码(像电视直播一样)",
"NoCreatedLibraries": "看上去您还未创建任何资料库。{0} 您想现在创建一个吗? {1}",
@@ -1524,5 +1524,25 @@
"LabelEnableHttps": "启用 HTTPS",
"LabelChromecastVersion": "Chromecast版本",
"HeaderDVR": "DVR",
- "LabelNightly": "Nightly"
+ "LabelNightly": "Nightly",
+ "MessageSyncPlayErrorAccessingGroups": "访问群组列表时发生错误。",
+ "MessageSyncPlayLibraryAccessDenied": "搜限制的访问权限。",
+ "MessageSyncPlayCreateGroupDenied": "需要权限创建该组。",
+ "MessageSyncPlayGroupDoesNotExist": "无法加入群组,该群组不存在。",
+ "MessageSyncPlayPlaybackPermissionRequired": "需要播放权限。",
+ "MessageSyncPlayGroupWait": "{0} 正在缓冲...",
+ "MessageSyncPlayUserLeft": "{0} 已离开小组。",
+ "MessageSyncPlayUserJoined": "{0} 已加入该小组。",
+ "LabelSyncPlayAccessNone": "禁用此用户",
+ "LabelSyncPlayAccessJoinGroups": "允许用户加入群组",
+ "LabelSyncPlayAccessCreateAndJoinGroups": "允许用户创建和加入群组",
+ "LabelSyncPlayLeaveGroup": "离开组",
+ "LabelSyncPlayNewGroupDescription": "创建一个新组",
+ "LabelSyncPlayNewGroup": "新组",
+ "LabelSyncPlaySyncMethod": "同步方式:",
+ "MillisecondsUnit": "毫秒",
+ "LabelSyncPlayTimeOffset": "服务器时间偏移:",
+ "HeaderSyncPlayEnabled": "同步播放已启用",
+ "HeaderSyncPlaySelectGroup": "加入群组",
+ "EnableDetailsBannerHelp": "在项目详细信息页面的顶部显示横幅图片。"
}