1
0
Fork 0
mirror of https://github.com/jellyfin/jellyfin-web synced 2025-03-30 19:56:21 +00:00

Fix merge conflicts

This commit is contained in:
ferferga 2020-04-12 20:26:59 +02:00
commit 155e9eb7ad
54 changed files with 1090 additions and 481 deletions

View file

@ -12,87 +12,94 @@ pr:
- '*' - '*'
jobs: jobs:
- job: Build - job: Build
displayName: 'Build' displayName: 'Build'
strategy: strategy:
matrix: matrix:
Development: Development:
BuildConfiguration: development BuildConfiguration: development
Production: Production:
BuildConfiguration: production BuildConfiguration: production
Standalone: Standalone:
BuildConfiguration: standalone BuildConfiguration: standalone
pool: pool:
vmImage: 'ubuntu-latest' vmImage: 'ubuntu-latest'
steps: steps:
- task: NodeTool@0 - task: NodeTool@0
displayName: 'Install Node' displayName: 'Install Node'
inputs: inputs:
versionSpec: '12.x' versionSpec: '12.x'
- task: Cache@2 - task: Cache@2
displayName: 'Check Cache' displayName: 'Check Cache'
inputs: inputs:
key: 'yarn | yarn.lock' key: 'yarn | yarn.lock'
path: 'node_modules' path: 'node_modules'
cacheHitVar: CACHE_RESTORED cacheHitVar: CACHE_RESTORED
- script: 'yarn install --frozen-lockfile' - script: 'yarn install --frozen-lockfile'
displayName: 'Install Dependencies' displayName: 'Install Dependencies'
condition: ne(variables.CACHE_RESTORED, 'true') condition: ne(variables.CACHE_RESTORED, 'true')
- script: 'yarn build:development' - script: 'yarn build:development'
displayName: 'Build Development' displayName: 'Build Development'
condition: eq(variables['BuildConfiguration'], 'development') condition: eq(variables['BuildConfiguration'], 'development')
- script: 'yarn build:production' - script: 'yarn build:production'
displayName: 'Build Bundle' displayName: 'Build Bundle'
condition: eq(variables['BuildConfiguration'], 'production') condition: eq(variables['BuildConfiguration'], 'production')
- script: 'yarn build:standalone' - script: 'yarn build:standalone'
displayName: 'Build Standalone' displayName: 'Build Standalone'
condition: eq(variables['BuildConfiguration'], 'standalone') condition: eq(variables['BuildConfiguration'], 'standalone')
- script: 'test -d dist' - script: 'test -d dist'
displayName: 'Check Build' displayName: 'Check Build'
- script: 'mv dist jellyfin-web' - script: 'mv dist jellyfin-web'
displayName: 'Rename Directory' displayName: 'Rename Directory'
- task: PublishPipelineArtifact@1 - task: ArchiveFiles@2
displayName: 'Publish Release' displayName: 'Archive Directory'
inputs: inputs:
targetPath: '$(Build.SourcesDirectory)/jellyfin-web' rootFolderOrFile: 'jellyfin-web'
artifactName: 'jellyfin-web-$(BuildConfiguration)' includeRootFolder: true
archiveFile: 'jellyfin-web-$(BuildConfiguration)'
- job: Lint - task: PublishPipelineArtifact@1
displayName: 'Lint' displayName: 'Publish Release'
inputs:
targetPath: '$(Build.SourcesDirectory)/jellyfin-web-$(BuildConfiguration).zip'
artifactName: 'jellyfin-web-$(BuildConfiguration)'
pool: - job: Lint
vmImage: 'ubuntu-latest' displayName: 'Lint'
steps: pool:
- task: NodeTool@0 vmImage: 'ubuntu-latest'
displayName: 'Install Node'
inputs:
versionSpec: '12.x'
- task: Cache@2 steps:
displayName: 'Check Cache' - task: NodeTool@0
inputs: displayName: 'Install Node'
key: 'yarn | yarn.lock' inputs:
path: 'node_modules' versionSpec: '12.x'
cacheHitVar: CACHE_RESTORED
- script: 'yarn install --frozen-lockfile' - task: Cache@2
displayName: 'Install Dependencies' displayName: 'Check Cache'
condition: ne(variables.CACHE_RESTORED, 'true') inputs:
key: 'yarn | yarn.lock'
path: 'node_modules'
cacheHitVar: CACHE_RESTORED
- script: 'yarn run lint --quiet' - script: 'yarn install --frozen-lockfile'
displayName: 'Run ESLint' displayName: 'Install Dependencies'
condition: ne(variables.CACHE_RESTORED, 'true')
- script: 'yarn run stylelint' - script: 'yarn run lint --quiet'
displayName: 'Run Stylelint' displayName: 'Run ESLint'
- script: 'yarn run stylelint'
displayName: 'Run Stylelint'

View file

@ -22,6 +22,7 @@ extends:
- plugin:import/errors - plugin:import/errors
- plugin:import/warnings - plugin:import/warnings
- plugin:eslint-comments/recommended - plugin:eslint-comments/recommended
- plugin:compat/recommended
globals: globals:
# Browser globals # Browser globals
@ -85,3 +86,86 @@ rules:
promise/no-return-wrap: ["warn"] promise/no-return-wrap: ["warn"]
# TODO: Remove after ES6 migration is complete # TODO: Remove after ES6 migration is complete
import/no-unresolved: ["warn"] import/no-unresolved: ["warn"]
settings:
polyfills:
# Native Promises Only
- Promise
# whatwg-fetch
- fetch
# document-register-element
- document.registerElement
# resize-observer-polyfill
- ResizeObserver
# fast-text-encoding
- TextEncoder
# intersection-observer
- IntersectionObserver
# Core-js
- Object.assign
- Object.is
- Object.setPrototypeOf
- Object.toString
- Object.freeze
- Object.seal
- Object.preventExtensions
- Object.isFrozen
- Object.isSealed
- Object.isExtensible
- Object.getOwnPropertyDescriptor
- Object.getPrototypeOf
- Object.keys
- Object.getOwnPropertyNames
- Function.name
- Function.hasInstance
- Array.from
- Array.arrayOf
- Array.copyWithin
- Array.fill
- Array.find
- Array.findIndex
- Array.iterator
- String.fromCodePoint
- String.raw
- String.iterator
- String.codePointAt
- String.endsWith
- String.includes
- String.repeat
- String.startsWith
- String.trim
- String.anchor
- String.big
- String.blink
- String.bold
- String.fixed
- String.fontcolor
- String.fontsize
- String.italics
- String.link
- String.small
- String.strike
- String.sub
- String.sup
- RegExp
- Number
- Math
- Date
- async
- Symbol
- Map
- Set
- WeakMap
- WeakSet
- ArrayBuffer
- DataView
- Int8Array
- Uint8Array
- Uint8ClampedArray
- Int16Array
- Uint16Array
- Int32Array
- Uint32Array
- Float32Array
- Float64Array
- Reflect

View file

@ -62,7 +62,7 @@ function serve() {
port: 8080 port: 8080
}); });
let events = ['add', 'change']; const events = ['add', 'change'];
watch(options.javascript.query).on('all', function (event, path) { watch(options.javascript.query).on('all', function (event, path) {
if (events.includes(event)) { if (events.includes(event)) {
@ -105,7 +105,7 @@ function clean() {
return del(['dist/']); return del(['dist/']);
} }
let pipelineJavascript = lazypipe() const pipelineJavascript = lazypipe()
.pipe(function () { .pipe(function () {
return mode.development(sourcemaps.init({ loadMaps: true })); return mode.development(sourcemaps.init({ loadMaps: true }));
}) })
@ -140,7 +140,7 @@ function apploader(standalone) {
.pipe(pipelineJavascript()) .pipe(pipelineJavascript())
.pipe(dest('dist/')) .pipe(dest('dist/'))
.pipe(browserSync.stream()); .pipe(browserSync.stream());
}; }
task.displayName = 'apploader'; task.displayName = 'apploader';

View file

@ -18,6 +18,7 @@
"cssnano": "^4.1.10", "cssnano": "^4.1.10",
"del": "^5.1.0", "del": "^5.1.0",
"eslint": "^6.8.0", "eslint": "^6.8.0",
"eslint-plugin-compat": "^3.5.1",
"eslint-plugin-eslint-comments": "^3.1.2", "eslint-plugin-eslint-comments": "^3.1.2",
"eslint-plugin-import": "^2.20.2", "eslint-plugin-import": "^2.20.2",
"eslint-plugin-promise": "^4.2.1", "eslint-plugin-promise": "^4.2.1",
@ -58,9 +59,11 @@
"core-js": "^3.6.4", "core-js": "^3.6.4",
"date-fns": "^2.11.1", "date-fns": "^2.11.1",
"document-register-element": "^1.14.3", "document-register-element": "^1.14.3",
"fast-text-encoding": "^1.0.1",
"flv.js": "^1.5.0", "flv.js": "^1.5.0",
"hls.js": "^0.13.1", "hls.js": "^0.13.1",
"howler": "^2.1.3", "howler": "^2.1.3",
"intersection-observer": "^0.7.0",
"jellyfin-noto": "https://github.com/jellyfin/jellyfin-noto", "jellyfin-noto": "https://github.com/jellyfin/jellyfin-noto",
"jquery": "^3.4.1", "jquery": "^3.4.1",
"jstree": "^3.3.7", "jstree": "^3.3.7",
@ -89,13 +92,14 @@
"src/components/filedownloader.js", "src/components/filedownloader.js",
"src/components/filesystem.js", "src/components/filesystem.js",
"src/components/input/keyboardnavigation.js", "src/components/input/keyboardnavigation.js",
"src/components/scrollManager.js",
"src/components/sanatizefilename.js", "src/components/sanatizefilename.js",
"src/scripts/settings/webSettings.js", "src/components/scrollManager.js",
"src/scripts/settings/appSettings.js", "src/scripts/settings/appSettings.js",
"src/scripts/settings/userSettings.js", "src/scripts/settings/userSettings.js",
"src/scripts/settings/webSettings.js",
"src/scripts/dfnshelper.js",
"src/scripts/imagehelper.js", "src/scripts/imagehelper.js",
"src/scripts/dfnshelper.js" "src/scripts/inputManager.js"
], ],
"plugins": [ "plugins": [
"@babel/plugin-transform-modules-amd" "@babel/plugin-transform-modules-amd"
@ -119,7 +123,7 @@
"Firefox ESR" "Firefox ESR"
], ],
"scripts": { "scripts": {
"serve": "gulp serve", "serve": "gulp serve --development",
"prepare": "gulp --production", "prepare": "gulp --production",
"build:development": "gulp --development", "build:development": "gulp --development",
"build:production": "gulp --production", "build:production": "gulp --production",

View file

@ -85,15 +85,15 @@ _define("webcomponents", function() {
}); });
// libass-wasm // libass-wasm
var libass_wasm = require("libass-wasm"); var libassWasm = require("libass-wasm");
_define("JavascriptSubtitlesOctopus", function() { _define("JavascriptSubtitlesOctopus", function() {
return libass_wasm; return libassWasm;
}); });
// material-icons // material-icons
var material_icons = require("material-design-icons-iconfont/dist/material-design-icons.css"); var materialIcons = require("material-design-icons-iconfont/dist/material-design-icons.css");
_define("material-icons", function() { _define("material-icons", function() {
return material_icons; return materialIcons;
}); });
// noto font // noto font
@ -120,12 +120,22 @@ _define("classlist-polyfill", function () {
}); });
// Date-FNS // Date-FNS
var date_fns = require("date-fns"); var dateFns = require("date-fns");
_define("date-fns", function () { _define("date-fns", function () {
return date_fns; return dateFns;
}); });
var date_fns_locale = require("date-fns/locale"); var dateFnsLocale = require("date-fns/locale");
_define("date-fns/locale", function () { _define("date-fns/locale", function () {
return date_fns_locale; return dateFnsLocale;
});
var fast_text_encoding = require("fast-text-encoding");
_define("fast-text-encoding", function () {
return fast_text_encoding;
});
var intersection_observer = require("intersection-observer");
_define("intersection-observer", function () {
return intersection_observer;
}); });

View file

@ -268,6 +268,7 @@ define(['loading', 'globalize', 'events', 'viewManager', 'layoutManager', 'skinM
} }
function getMaxBandwidth() { function getMaxBandwidth() {
/* eslint-disable compat/compat */
if (navigator.connection) { if (navigator.connection) {
var max = navigator.connection.downlinkMax; var max = navigator.connection.downlinkMax;
if (max && max > 0 && max < Number.POSITIVE_INFINITY) { if (max && max > 0 && max < Number.POSITIVE_INFINITY) {
@ -279,6 +280,7 @@ define(['loading', 'globalize', 'events', 'viewManager', 'layoutManager', 'skinM
return max; return max;
} }
} }
/* eslint-enable compat/compat */
return null; return null;
} }
@ -577,7 +579,8 @@ define(['loading', 'globalize', 'events', 'viewManager', 'layoutManager', 'skinM
function showDirect(path) { function showDirect(path) {
return new Promise(function(resolve, reject) { return new Promise(function(resolve, reject) {
resolveOnNextShow = resolve, page.show(baseUrl()+path); resolveOnNextShow = resolve;
page.show(baseUrl() + path);
}); });
} }

View file

@ -351,8 +351,6 @@ define(["appSettings", "browser", "events", "htmlMediaHelper", "webSettings"], f
var deviceName; var deviceName;
var appName = "Jellyfin Web"; var appName = "Jellyfin Web";
var appVersion = "10.5.0"; var appVersion = "10.5.0";
var visibilityChange;
var visibilityState;
var appHost = { var appHost = {
getWindowState: function () { getWindowState: function () {
@ -426,40 +424,26 @@ define(["appSettings", "browser", "events", "htmlMediaHelper", "webSettings"], f
} }
}; };
var doc = self.document;
var isHidden = false; var isHidden = false;
var hidden;
var visibilityChange;
if (doc) { if (typeof document.hidden !== "undefined") { /* eslint-disable-line compat/compat */
if (void 0 !== doc.visibilityState) { hidden = "hidden";
visibilityChange = "visibilitychange"; visibilityChange = "visibilitychange";
visibilityState = "hidden"; } else if (typeof document.webkitHidden !== "undefined") {
hidden = "webkitHidden";
visibilityChange = "webkitvisibilitychange";
}
document.addEventListener(visibilityChange, function () {
/* eslint-disable-next-line compat/compat */
if (document[hidden]) {
onAppHidden();
} else { } else {
if (void 0 !== doc.mozHidden) { onAppVisible();
visibilityChange = "mozvisibilitychange";
visibilityState = "mozVisibilityState";
} else {
if (void 0 !== doc.msHidden) {
visibilityChange = "msvisibilitychange";
visibilityState = "msVisibilityState";
} else {
if (void 0 !== doc.webkitHidden) {
visibilityChange = "webkitvisibilitychange";
visibilityState = "webkitVisibilityState";
}
}
}
} }
} }, false);
if (doc) {
doc.addEventListener(visibilityChange, function () {
if (document[visibilityState]) {
onAppHidden();
} else {
onAppVisible();
}
});
}
if (self.addEventListener) { if (self.addEventListener) {
self.addEventListener("focus", onAppVisible); self.addEventListener("focus", onAppVisible);

View file

@ -131,7 +131,7 @@ define(['connectionManager', 'cardBuilder', 'appSettings', 'dom', 'apphost', 'la
} else if (section === 'librarytiles' || section === 'smalllibrarytiles' || section === 'smalllibrarytiles-automobile' || section === 'librarytiles-automobile') { } else if (section === 'librarytiles' || section === 'smalllibrarytiles' || section === 'smalllibrarytiles-automobile' || section === 'librarytiles-automobile') {
loadLibraryTiles(elem, apiClient, user, userSettings, 'smallBackdrop', userViews, allSections); loadLibraryTiles(elem, apiClient, user, userSettings, 'smallBackdrop', userViews, allSections);
} else if (section === 'librarybuttons') { } else if (section === 'librarybuttons') {
loadlibraryButtons(elem, apiClient, user, userSettings, userViews, allSections); loadlibraryButtons(elem, apiClient, user, userSettings, userViews);
} else if (section === 'resume') { } else if (section === 'resume') {
loadResumeVideo(elem, apiClient, userId); loadResumeVideo(elem, apiClient, userId);
} else if (section === 'resumeaudio') { } else if (section === 'resumeaudio') {

View file

@ -31,7 +31,7 @@ define(['appSettings', 'browser', 'events'], function (appSettings, browser, eve
} }
function enableHlsShakaPlayer(item, mediaSource, mediaType) { function enableHlsShakaPlayer(item, mediaSource, mediaType) {
/* eslint-disable-next-line compat/compat */
if (!!window.MediaSource && !!MediaSource.isTypeSupported) { if (!!window.MediaSource && !!MediaSource.isTypeSupported) {
if (canPlayNativeHls()) { if (canPlayNativeHls()) {

View file

@ -101,7 +101,7 @@ define(['events', 'browser', 'require', 'apphost', 'appSettings', 'htmlMediaHelp
self._timeUpdated = false; self._timeUpdated = false;
self._currentTime = null; self._currentTime = null;
var elem = createMediaElement(options); var elem = createMediaElement();
return setCurrentSrc(elem, options); return setCurrentSrc(elem, options);
}; };

View file

@ -1,10 +1,6 @@
define(['lazyLoader', 'imageFetcher', 'layoutManager', 'browser', 'appSettings', 'userSettings', 'require', 'css!./style'], function (lazyLoader, imageFetcher, layoutManager, browser, appSettings, userSettings, require) { define(['lazyLoader', 'imageFetcher', 'layoutManager', 'browser', 'appSettings', 'userSettings', 'require', 'css!./style'], function (lazyLoader, imageFetcher, layoutManager, browser, appSettings, userSettings, require) {
'use strict'; 'use strict';
var requestIdleCallback = window.requestIdleCallback || function (fn) {
fn();
};
var self = {}; var self = {};
function fillImage(elem, source, enableEffects) { function fillImage(elem, source, enableEffects) {

View file

@ -184,7 +184,7 @@ require(['apphost'], function (appHost) {
function allowInput() { function allowInput() {
// This would be nice but always seems to return true with electron // This would be nice but always seems to return true with electron
if (!isElectron && document.hidden) { if (!isElectron && document.hidden) { /* eslint-disable-line compat/compat */
return false; return false;
} }
@ -254,7 +254,7 @@ require(['apphost'], function (appHost) {
var inputLoopTimer; var inputLoopTimer;
function runInputLoop() { function runInputLoop() {
// Get the latest gamepad state. // Get the latest gamepad state.
var gamepads = navigator.getGamepads(); var gamepads = navigator.getGamepads(); /* eslint-disable-line compat/compat */
for (var i = 0, len = gamepads.length; i < len; i++) { for (var i = 0, len = gamepads.length; i < len; i++) {
var gamepad = gamepads[i]; var gamepad = gamepads[i];
if (!gamepad) { if (!gamepad) {
@ -362,7 +362,7 @@ require(['apphost'], function (appHost) {
} }
function isGamepadConnected() { function isGamepadConnected() {
var gamepads = navigator.getGamepads(); var gamepads = navigator.getGamepads(); /* eslint-disable-line compat/compat */
for (var i = 0, len = gamepads.length; i < len; i++) { for (var i = 0, len = gamepads.length; i < len; i++) {
var gamepad = gamepads[i]; var gamepad = gamepads[i];
if (gamepad && gamepad.connected) { if (gamepad && gamepad.connected) {
@ -373,6 +373,7 @@ require(['apphost'], function (appHost) {
} }
function onFocusOrGamepadAttach(e) { function onFocusOrGamepadAttach(e) {
/* eslint-disable-next-line compat/compat */
if (isGamepadConnected() && document.hasFocus()) { if (isGamepadConnected() && document.hasFocus()) {
console.log("Gamepad connected! Starting input loop"); console.log("Gamepad connected! Starting input loop");
startInputLoop(); startInputLoop();
@ -380,6 +381,7 @@ require(['apphost'], function (appHost) {
} }
function onFocusOrGamepadDetach(e) { function onFocusOrGamepadDetach(e) {
/* eslint-disable-next-line compat/compat */
if (!isGamepadConnected() || !document.hasFocus()) { if (!isGamepadConnected() || !document.hasFocus()) {
console.log("Gamepad disconnected! No other gamepads are connected, stopping input loop"); console.log("Gamepad disconnected! No other gamepads are connected, stopping input loop");
stopInputLoop(); stopInputLoop();

View file

@ -159,7 +159,9 @@ function attachGamepadScript(e) {
} }
// No need to check for gamepads manually at load time, the eventhandler will be fired for that // No need to check for gamepads manually at load time, the eventhandler will be fired for that
window.addEventListener("gamepadconnected", attachGamepadScript); if (navigator.getGamepads) { /* eslint-disable-line compat/compat */
window.addEventListener("gamepadconnected", attachGamepadScript);
}
export default { export default {
enable: enable, enable: enable,

View file

@ -352,6 +352,7 @@ define(["apphost", "globalize", "connectionManager", "itemHelper", "appRouter",
document.body.appendChild(textArea); document.body.appendChild(textArea);
textArea.focus(); textArea.focus();
textArea.select(); textArea.select();
if (document.execCommand("copy")) { if (document.execCommand("copy")) {
require(["toast"], function (toast) { require(["toast"], function (toast) {
toast(globalize.translate("CopyStreamURLSuccess")); toast(globalize.translate("CopyStreamURLSuccess"));
@ -361,14 +362,19 @@ define(["apphost", "globalize", "connectionManager", "itemHelper", "appRouter",
} }
document.body.removeChild(textArea); document.body.removeChild(textArea);
}; };
/* eslint-disable-next-line compat/compat */
if (navigator.clipboard === undefined) { if (navigator.clipboard === undefined) {
textAreaCopy(); textAreaCopy();
} else { } else {
/* eslint-disable-next-line compat/compat */
navigator.clipboard.writeText(downloadHref).then(function () { navigator.clipboard.writeText(downloadHref).then(function () {
require(["toast"], function (toast) { require(["toast"], function (toast) {
toast(globalize.translate("CopyStreamURLSuccess")); toast(globalize.translate("CopyStreamURLSuccess"));
}); });
}, textAreaCopy); }).catch(function () {
textAreaCopy();
});
} }
getResolveFunction(resolve, id)(); getResolveFunction(resolve, id)();
break; break;

View file

@ -4,10 +4,6 @@ define(['visibleinviewport', 'dom', 'browser'], function (visibleinviewport, dom
var thresholdX; var thresholdX;
var thresholdY; var thresholdY;
var requestIdleCallback = window.requestIdleCallback || function (fn) {
fn();
};
function resetThresholds() { function resetThresholds() {
var threshold = 0.3; var threshold = 0.3;

View file

@ -6,6 +6,7 @@ define(['serverNotifications', 'playbackManager', 'events', 'globalize', 'requir
document.removeEventListener('keydown', onOneDocumentClick); document.removeEventListener('keydown', onOneDocumentClick);
if (window.Notification) { if (window.Notification) {
/* eslint-disable-next-line compat/compat */
Notification.requestPermission(); Notification.requestPermission();
} }
} }
@ -26,6 +27,7 @@ define(['serverNotifications', 'playbackManager', 'events', 'globalize', 'requir
} }
function resetRegistration() { function resetRegistration() {
/* eslint-disable-next-line compat/compat */
var serviceWorker = navigator.serviceWorker; var serviceWorker = navigator.serviceWorker;
if (serviceWorker) { if (serviceWorker) {
serviceWorker.ready.then(function (registration) { serviceWorker.ready.then(function (registration) {

View file

@ -237,8 +237,9 @@ define(['require', 'datetime', 'itemHelper', 'events', 'browser', 'imageLoader',
}; };
elem.addEventListener('click', function (e) { elem.addEventListener('click', function (e) {
if (!dom.parentWithTag(e.target, ['BUTTON', 'INPUT'])) { if (!dom.parentWithTag(e.target, ['BUTTON', 'INPUT'])) {
showRemoteControl(0); showRemoteControl();
} }
}); });
} }

View file

@ -3140,7 +3140,7 @@ define(['events', 'datetime', 'appSettings', 'itemHelper', 'pluginManager', 'pla
AllowVideoStreamCopy: false, AllowVideoStreamCopy: false,
AllowAudioStreamCopy: currentlyPreventsAudioStreamCopy || currentlyPreventsVideoStreamCopy ? false : null AllowAudioStreamCopy: currentlyPreventsAudioStreamCopy || currentlyPreventsVideoStreamCopy ? false : null
}, true); });
return; return;
} }

View file

@ -17,6 +17,7 @@ define(['playbackManager', 'layoutManager', 'events'], function (playbackManager
var isLocalVideo = player.isLocalPlayer && !player.isExternalPlayer && playbackManager.isPlayingVideo(player); var isLocalVideo = player.isLocalPlayer && !player.isExternalPlayer && playbackManager.isPlayingVideo(player);
if (isLocalVideo && layoutManager.mobile) { if (isLocalVideo && layoutManager.mobile) {
/* eslint-disable-next-line compat/compat */
var lockOrientation = screen.lockOrientation || screen.mozLockOrientation || screen.msLockOrientation || (screen.orientation && screen.orientation.lock); var lockOrientation = screen.lockOrientation || screen.mozLockOrientation || screen.msLockOrientation || (screen.orientation && screen.orientation.lock);
if (lockOrientation) { if (lockOrientation) {
@ -40,6 +41,7 @@ define(['playbackManager', 'layoutManager', 'events'], function (playbackManager
if (orientationLocked && !playbackStopInfo.nextMediaType) { if (orientationLocked && !playbackStopInfo.nextMediaType) {
/* eslint-disable-next-line compat/compat */
var unlockOrientation = screen.unlockOrientation || screen.mozUnlockOrientation || screen.msUnlockOrientation || (screen.orientation && screen.orientation.unlock); var unlockOrientation = screen.unlockOrientation || screen.mozUnlockOrientation || screen.msUnlockOrientation || (screen.orientation && screen.orientation.unlock);
if (unlockOrientation) { if (unlockOrientation) {

View file

@ -307,8 +307,7 @@ define(['dialogHelper', 'inputManager', 'connectionManager', 'layoutManager', 'f
*/ */
function getSwiperSlideHtmlFromItem(item) { function getSwiperSlideHtmlFromItem(item) {
return getSwiperSlideHtmlFromSlide({ return getSwiperSlideHtmlFromSlide({
imageUrl: getImgUrl(item), originalImage: getImgUrl(item),
originalImage: getImgUrl(item, true),
//title: item.Name, //title: item.Name,
//description: item.Overview //description: item.Overview
Id: item.Id, Id: item.Id,

View file

@ -95,7 +95,7 @@ define(["loading", "appRouter", "layoutManager", "appSettings", "apphost", "focu
} }
function showServerConnectionFailure() { function showServerConnectionFailure() {
alertText(globalize.translate("MessageUnableToConnectToServer"), globalize.translate("HeaderConnectionFailure")); alertText(globalize.translate("MessageUnableToConnectToServer"));
} }
return function (view, params) { return function (view, params) {

View file

@ -184,12 +184,12 @@ define(["layoutManager", "loading", "libraryBrowser", "cardBuilder", "lazyLoader
}; };
self.getCurrentViewStyle = function () { self.getCurrentViewStyle = function () {
return getPageData(tabContent).view; return getPageData().view;
}; };
self.setCurrentViewStyle = function (viewStyle) { self.setCurrentViewStyle = function (viewStyle) {
getPageData(tabContent).view = viewStyle; getPageData().view = viewStyle;
libraryBrowser.saveViewSetting(getSavedQueryKey(tabContent), viewStyle); libraryBrowser.saveViewSetting(getSavedQueryKey(), viewStyle);
fullyReload(); fullyReload();
}; };

View file

@ -107,12 +107,12 @@ define(["libraryBrowser", "cardBuilder", "apphost", "imageLoader", "loading"], f
}; };
self.getCurrentViewStyle = function () { self.getCurrentViewStyle = function () {
return getPageData(tabContent).view; return getPageData().view;
}; };
self.setCurrentViewStyle = function (viewStyle) { self.setCurrentViewStyle = function (viewStyle) {
getPageData(tabContent).view = viewStyle; getPageData().view = viewStyle;
libraryBrowser.saveViewSetting(getSavedQueryKey(tabContent), viewStyle); libraryBrowser.saveViewSetting(getSavedQueryKey(), viewStyle);
fullyReload(); fullyReload();
}; };

View file

@ -69,7 +69,7 @@ define(["libraryBrowser", "cardBuilder", "apphost", "imageLoader", "loading"], f
var data = {}; var data = {};
self.getCurrentViewStyle = function () { self.getCurrentViewStyle = function () {
return getPageData(tabContent).view; return getPageData().view;
}; };
var promise; var promise;

View file

@ -1152,7 +1152,7 @@ define(["playbackManager", "dom", "inputManager", "datetime", "itemHelper", "med
case "GamepadDPadLeft": case "GamepadDPadLeft":
case "GamepadLeftThumbstickLeft": case "GamepadLeftThumbstickLeft":
// Ignores gamepad events that are always triggered, even when not focused. // Ignores gamepad events that are always triggered, even when not focused.
if (document.hasFocus()) { if (document.hasFocus()) { /* eslint-disable-line compat/compat */
playbackManager.rewind(currentPlayer); playbackManager.rewind(currentPlayer);
showOsd(); showOsd();
} }
@ -1161,7 +1161,7 @@ define(["playbackManager", "dom", "inputManager", "datetime", "itemHelper", "med
case "GamepadDPadRight": case "GamepadDPadRight":
case "GamepadLeftThumbstickRight": case "GamepadLeftThumbstickRight":
// Ignores gamepad events that are always triggered, even when not focused. // Ignores gamepad events that are always triggered, even when not focused.
if (document.hasFocus()) { if (document.hasFocus()) { /* eslint-disable-line compat/compat */
playbackManager.fastForward(currentPlayer); playbackManager.fastForward(currentPlayer);
showOsd(); showOsd();
} }

View file

@ -177,12 +177,12 @@ define(["layoutManager", "loading", "libraryBrowser", "cardBuilder", "lazyLoader
}; };
self.getCurrentViewStyle = function () { self.getCurrentViewStyle = function () {
return getPageData(tabContent).view; return getPageData().view;
}; };
self.setCurrentViewStyle = function (viewStyle) { self.setCurrentViewStyle = function (viewStyle) {
getPageData(tabContent).view = viewStyle; getPageData().view = viewStyle;
libraryBrowser.saveViewSetting(getSavedQueryKey(tabContent), viewStyle); libraryBrowser.saveViewSetting(getSavedQueryKey(), viewStyle);
fullyReload(); fullyReload();
}; };

View file

@ -3,16 +3,20 @@ Dashboard.confirm = function(message, title, callback) {
require(["confirm"], function(confirm) { require(["confirm"], function(confirm) {
confirm(message, title).then(function() { confirm(message, title).then(function() {
callback(!0); callback(!0);
}, function() { }).catch(function() {
callback(!1); callback(!1);
}); });
}); });
}, Dashboard.showLoadingMsg = function() { };
Dashboard.showLoadingMsg = function() {
"use strict"; "use strict";
require(["loading"], function(loading) { require(["loading"], function(loading) {
loading.show(); loading.show();
}); });
}, Dashboard.hideLoadingMsg = function() { };
Dashboard.hideLoadingMsg = function() {
"use strict"; "use strict";
require(["loading"], function(loading) { require(["loading"], function(loading) {
loading.hide(); loading.hide();

View file

@ -4,7 +4,9 @@ define(["jQuery"], function($) {
return !0 === value || !1 === value ? $(this).each(function() { return !0 === value || !1 === value ? $(this).each(function() {
this.checked = value; this.checked = value;
}) : this.length && this[0].checked; }) : this.length && this[0].checked;
}, $.fn.checkboxradio = function() { };
$.fn.checkboxradio = function() {
return this; return this;
}; };
}); });

View file

@ -8,7 +8,7 @@
var script = document.createElement("script"); var script = document.createElement("script");
if (self.dashboardVersion) { if (self.dashboardVersion) {
src += "?v=" + self.dashboardVersion; src += `?v=${self.dashboardVersion}`;
} }
script.src = src; script.src = src;

View file

@ -1,16 +1,18 @@
define(["backdrop", "userSettings", "libraryMenu"], function (backdrop, userSettings, libraryMenu) { define(["backdrop", "userSettings", "libraryMenu"], function (backdrop, userSettings, libraryMenu) {
"use strict"; "use strict";
var cache = {};
function enabled() { function enabled() {
return userSettings.enableBackdrops(); return userSettings.enableBackdrops();
} }
function getBackdropItemIds(apiClient, userId, types, parentId) { function getBackdropItemIds(apiClient, userId, types, parentId) {
var key = "backdrops2_" + userId + (types || "") + (parentId || ""); var key = `backdrops2_${userId + (types || "") + (parentId || "")}`;
var data = cache[key]; var data = cache[key];
if (data) { if (data) {
console.debug("Found backdrop id list in cache. Key: " + key); console.debug(`Found backdrop id list in cache. Key: ${key}`);
data = JSON.parse(data); data = JSON.parse(data);
return Promise.resolve(data); return Promise.resolve(data);
} }
@ -54,7 +56,6 @@ define(["backdrop", "userSettings", "libraryMenu"], function (backdrop, userSett
} }
} }
var cache = {};
pageClassOn("pageshow", "page", function () { pageClassOn("pageshow", "page", function () {
var page = this; var page = this;

View file

@ -292,6 +292,7 @@ define([], function () {
} }
if (typeof document !== 'undefined') { if (typeof document !== 'undefined') {
/* eslint-disable-next-line compat/compat */
if (('ontouchstart' in window) || (navigator.maxTouchPoints > 0)) { if (('ontouchstart' in window) || (navigator.maxTouchPoints > 0)) {
browser.touch = true; browser.touch = true;
} }

View file

@ -1,99 +1,57 @@
import { ar, be, bg, ca, cs, da, de, el, enGB, enUS, es, faIR, fi, fr, frCA, he, hi, hr, hu, id, it, kk, ko, lt, ms, nb, nl, pl, ptBR, pt, ro, ru, sk, sl, sv, tr, uk, vi, zhCN, zhTW } from 'date-fns/locale'; import { ar, be, bg, ca, cs, da, de, el, enGB, enUS, es, faIR, fi, fr, frCA, he, hi, hr, hu, id, it, ja, kk, ko, lt, ms, nb,
nl, pl, ptBR, pt, ro, ru, sk, sl, sv, tr, uk, vi, zhCN, zhTW } from 'date-fns/locale';
import globalize from 'globalize'; import globalize from 'globalize';
const dateLocales = (locale) => ({
'ar': ar,
'be-by': be,
'bg-bg': bg,
'ca': ca,
'cs': cs,
'da': da,
'de': de,
'el': el,
'en-gb': enGB,
'en-us': enUS,
'es': es,
'es-ar': es,
'es-mx': es,
'fa': faIR,
'fi': fi,
'fr': fr,
'fr-ca': frCA,
'gsw': de,
'he': he,
'hi-in': hi,
'hr': hr,
'hu': hu,
'id': id,
'it': it,
'ja': ja,
'kk': kk,
'ko': ko,
'lt-lt': lt,
'ms': ms,
'nb': nb,
'nl': nl,
'pl': pl,
'pt-br': ptBR,
'pt-pt': pt,
'ro': ro,
'ru': ru,
'sk': sk,
'sl-si': sl,
'sv': sv,
'tr': tr,
'uk': uk,
'vi': vi,
'zh-cn': zhCN,
'zh-hk': zhCN,
'zh-tw': zhTW
})[locale];
export function getLocale() { export function getLocale() {
switch (globalize.getCurrentLocale()) { return dateLocales(globalize.getCurrentLocale()) || enUS;
case 'ar':
return ar;
case 'be-by':
return be;
case 'bg-bg':
return bg;
case 'ca':
return ca;
case 'cs':
return cs;
case 'da':
return da;
case 'de':
return de;
case 'el':
return el;
case 'en-gb':
return enGB;
case 'en-us':
return enUS;
case 'es':
return es;
case 'es-ar':
return es;
case 'es-mx':
return es;
case 'fa':
return faIR;
case 'fi':
return fi;
case 'fr':
return fr;
case 'fr-ca':
return frCA;
case 'gsw':
return de;
case 'he':
return he;
case 'hi-in':
return hi;
case 'hr':
return hr;
case 'hu':
return hu;
case 'id':
return id;
case 'it':
return it;
case 'kk':
return kk;
case 'ko':
return ko;
case 'lt-lt':
return lt;
case 'ms':
return ms;
case 'nb':
return nb;
case 'nl':
return nl;
case 'pl':
return pl;
case 'pt-br':
return ptBR;
case 'pt-pt':
return pt;
case 'ro':
return ro;
case 'ru':
return ru;
case 'sk':
return sk;
case 'sl-si':
return sl;
case 'sv':
return sv;
case 'tr':
return tr;
case 'uk':
return uk;
case 'vi':
return vi;
case 'zh-cn':
return zhCN;
case 'zh-hk':
return zhCN;
case 'zh-tw':
return zhTW;
default:
return enUS;
}
} }
export const localeWithSuffix = { addSuffix: true, locale: getLocale() }; export const localeWithSuffix = { addSuffix: true, locale: getLocale() };

View file

@ -1,44 +1,49 @@
define(['playbackManager', 'focusManager', 'appRouter', 'dom', 'apphost'], function (playbackManager, focusManager, appRouter, dom, appHost) { import playbackManager from 'playbackManager';
'use strict'; import focusManager from 'focusManager';
import appRouter from 'appRouter';
import dom from 'dom';
import appHost from 'apphost';
var lastInputTime = new Date().getTime(); /* eslint-disable indent */
function notify() { let lastInputTime = new Date().getTime();
export function notify() {
lastInputTime = new Date().getTime(); lastInputTime = new Date().getTime();
handleCommand('unknown'); handleCommand('unknown');
} }
function notifyMouseMove() { export function notifyMouseMove() {
lastInputTime = new Date().getTime(); lastInputTime = new Date().getTime();
} }
function idleTime() { export function idleTime() {
return new Date().getTime() - lastInputTime; return new Date().getTime() - lastInputTime;
} }
function select(sourceElement) { export function select(sourceElement) {
sourceElement.click(); sourceElement.click();
} }
var eventListenerCount = 0; let eventListenerCount = 0;
function on(scope, fn) { export function on(scope, fn) {
eventListenerCount++; eventListenerCount++;
dom.addEventListener(scope, 'command', fn, {}); dom.addEventListener(scope, 'command', fn, {});
} }
function off(scope, fn) { export function off(scope, fn) {
if (eventListenerCount) { if (eventListenerCount) {
eventListenerCount--; eventListenerCount--;
} }
dom.removeEventListener(scope, 'command', fn, {}); dom.removeEventListener(scope, 'command', fn, {});
} }
var commandTimes = {}; let commandTimes = {};
function checkCommandTime(command) { function checkCommandTime(command) {
var last = commandTimes[command] || 0; const last = commandTimes[command] || 0;
var now = new Date().getTime(); const now = new Date().getTime();
if ((now - last) < 1000) { if ((now - last) < 1000) {
return false; return false;
@ -48,11 +53,11 @@ define(['playbackManager', 'focusManager', 'appRouter', 'dom', 'apphost'], funct
return true; return true;
} }
function handleCommand(name, options) { export function handleCommand(commandName, options) {
lastInputTime = new Date().getTime(); lastInputTime = new Date().getTime();
var sourceElement = (options ? options.sourceElement : null); let sourceElement = (options ? options.sourceElement : null);
if (sourceElement) { if (sourceElement) {
sourceElement = focusManager.focusableParent(sourceElement); sourceElement = focusManager.focusableParent(sourceElement);
@ -61,7 +66,7 @@ define(['playbackManager', 'focusManager', 'appRouter', 'dom', 'apphost'], funct
if (!sourceElement) { if (!sourceElement) {
sourceElement = document.activeElement || window; sourceElement = document.activeElement || window;
var dlg = document.querySelector('.dialogContainer .dialog.opened'); const dlg = document.querySelector('.dialogContainer .dialog.opened');
if (dlg && (!sourceElement || !dlg.contains(sourceElement))) { if (dlg && (!sourceElement || !dlg.contains(sourceElement))) {
sourceElement = dlg; sourceElement = dlg;
@ -69,169 +74,164 @@ define(['playbackManager', 'focusManager', 'appRouter', 'dom', 'apphost'], funct
} }
if (eventListenerCount) { if (eventListenerCount) {
var customEvent = new CustomEvent("command", { const customEvent = new CustomEvent("command", {
detail: { detail: {
command: name command: commandName
}, },
bubbles: true, bubbles: true,
cancelable: true cancelable: true
}); });
var eventResult = sourceElement.dispatchEvent(customEvent); const eventResult = sourceElement.dispatchEvent(customEvent);
if (!eventResult) { if (!eventResult) {
// event cancelled // event cancelled
return; return;
} }
} }
switch (name) { const keyActions = (command) => ({
case 'up': 'up': () => {
focusManager.moveUp(sourceElement); focusManager.moveUp(sourceElement);
break; },
case 'down': 'down': () => {
focusManager.moveDown(sourceElement); focusManager.moveDown(sourceElement);
break; },
case 'left': 'left': () => {
focusManager.moveLeft(sourceElement); focusManager.moveLeft(sourceElement);
break; },
case 'right': 'right': () => {
focusManager.moveRight(sourceElement); focusManager.moveRight(sourceElement);
break; },
case 'home': 'home': () => {
appRouter.goHome(); appRouter.goHome();
break; },
case 'settings': 'settings': () => {
appRouter.showSettings(); appRouter.showSettings();
break; },
case 'back': 'back': () => {
if (appRouter.canGoBack()) { if (appRouter.canGoBack()) {
appRouter.back(); appRouter.back();
} else if (appHost.supports('exit')) { } else if (appHost.supports('exit')) {
appHost.exit(); appHost.exit();
} }
break; },
case 'forward': 'select': () => {
break;
case 'select':
select(sourceElement); select(sourceElement);
break; },
case 'pageup': 'nextchapter': () => {
break;
case 'pagedown':
break;
case 'end':
break;
case 'menu':
break;
case 'info':
break;
case 'nextchapter':
playbackManager.nextChapter(); playbackManager.nextChapter();
break; },
case 'next': 'next': () => {
case 'nexttrack':
playbackManager.nextTrack(); playbackManager.nextTrack();
break; },
case 'previous': 'nexttrack': () => {
case 'previoustrack': playbackManager.nextTrack();
},
'previous': () => {
playbackManager.previousTrack(); playbackManager.previousTrack();
break; },
case 'previouschapter': 'previoustrack': () => {
playbackManager.previousTrack();
},
'previouschapter': () => {
playbackManager.previousChapter(); playbackManager.previousChapter();
break; },
case 'guide': 'guide': () => {
appRouter.showGuide(); appRouter.showGuide();
break; },
case 'recordedtv': 'recordedtv': () => {
appRouter.showRecordedTV(); appRouter.showRecordedTV();
break; },
case 'record': 'livetv': () => {
break;
case 'livetv':
appRouter.showLiveTV(); appRouter.showLiveTV();
break; },
case 'mute': 'mute': () => {
playbackManager.setMute(true); playbackManager.setMute(true);
break; },
case 'unmute': 'unmute': () => {
playbackManager.setMute(false); playbackManager.setMute(false);
break; },
case 'togglemute': 'togglemute': () => {
playbackManager.toggleMute(); playbackManager.toggleMute();
break; },
case 'channelup': 'channelup': () => {
playbackManager.channelUp(); playbackManager.channelUp();
break; },
case 'channeldown': 'channeldown': () => {
playbackManager.channelDown(); playbackManager.channelDown();
break; },
case 'volumedown': 'volumedown': () => {
playbackManager.volumeDown(); playbackManager.volumeDown();
break; },
case 'volumeup': 'volumeup': () => {
playbackManager.volumeUp(); playbackManager.volumeUp();
break; },
case 'play': 'play': () => {
playbackManager.unpause(); playbackManager.unpause();
break; },
case 'pause': 'pause': () => {
playbackManager.pause(); playbackManager.pause();
break; },
case 'playpause': 'playpause': () => {
playbackManager.playPause(); playbackManager.playPause();
break; },
case 'stop': 'stop': () => {
if (checkCommandTime('stop')) { if (checkCommandTime('stop')) {
playbackManager.stop(); playbackManager.stop();
} }
break; },
case 'changezoom': 'changezoom': () => {
playbackManager.toggleAspectRatio(); playbackManager.toggleAspectRatio();
break; },
case 'changeaudiotrack': 'changeaudiotrack': () => {
playbackManager.changeAudioStream(); playbackManager.changeAudioStream();
break; },
case 'changesubtitletrack': 'changesubtitletrack': () => {
playbackManager.changeSubtitleStream(); playbackManager.changeSubtitleStream();
break; },
case 'search': 'search': () => {
appRouter.showSearch(); appRouter.showSearch();
break; },
case 'favorites': 'favorites': () => {
appRouter.showFavorites(); appRouter.showFavorites();
break; },
case 'fastforward': 'fastforward': () => {
playbackManager.fastForward(); playbackManager.fastForward();
break; },
case 'rewind': 'rewind': () => {
playbackManager.rewind(); playbackManager.rewind();
break; },
case 'togglefullscreen': 'togglefullscreen': () => {
playbackManager.toggleFullscreen(); playbackManager.toggleFullscreen();
break; },
case 'disabledisplaymirror': 'disabledisplaymirror': () => {
playbackManager.enableDisplayMirroring(false); playbackManager.enableDisplayMirroring(false);
break; },
case 'enabledisplaymirror': 'enabledisplaymirror': () => {
playbackManager.enableDisplayMirroring(true); playbackManager.enableDisplayMirroring(true);
break; },
case 'toggledisplaymirror': 'toggledisplaymirror': () => {
playbackManager.toggleDisplayMirroring(); playbackManager.toggleDisplayMirroring();
break; },
case 'nowplaying': 'nowplaying': () => {
appRouter.showNowPlaying(); appRouter.showNowPlaying();
break; },
case 'repeatnone': 'repeatnone': () => {
playbackManager.setRepeatMode('RepeatNone'); playbackManager.setRepeatMode('RepeatNone');
break; },
case 'repeatall': 'repeatall': () => {
playbackManager.setRepeatMode('RepeatAll'); playbackManager.setRepeatMode('RepeatAll');
break; },
case 'repeatone': 'repeatone': () => {
playbackManager.setRepeatMode('RepeatOne'); playbackManager.setRepeatMode('RepeatOne');
break; }
default: })[command];
break;
const action = keyActions(commandName);
if (action !== undefined) {
action.call();
} else {
console.debug(`inputManager: tried to process command with no action assigned: ${commandName}`);
} }
} }
@ -239,13 +239,14 @@ define(['playbackManager', 'focusManager', 'appRouter', 'dom', 'apphost'], funct
passive: true passive: true
}); });
return { /* eslint-enable indent */
trigger: handleCommand,
handle: handleCommand, export default {
notify: notify, trigger: handleCommand,
notifyMouseMove: notifyMouseMove, handle: handleCommand,
idleTime: idleTime, notify: notify,
on: on, notifyMouseMove: notifyMouseMove,
off: off idleTime: idleTime,
}; on: on,
}); off: off
};

View file

@ -8,7 +8,7 @@ define(["listView"], function (listView) {
EnableImageTypes: "Primary,Backdrop,Banner,Thumb", EnableImageTypes: "Primary,Backdrop,Banner,Thumb",
UserId: ApiClient.getCurrentUserId() UserId: ApiClient.getCurrentUserId()
}; };
return ApiClient.getJSON(ApiClient.getUrl("Playlists/" + itemId + "/Items", query)); return ApiClient.getJSON(ApiClient.getUrl(`Playlists/${itemId}/Items`, query));
}; };
} }

View file

@ -615,13 +615,17 @@ var AppInfo = {};
} }
function registerServiceWorker() { function registerServiceWorker() {
if (navigator.serviceWorker && "cordova" !== self.appMode && "android" !== self.appMode) { /* eslint-disable compat/compat */
if (navigator.serviceWorker && self.appMode !== "cordova" && self.appMode !== "android") {
try { try {
navigator.serviceWorker.register("serviceworker.js"); navigator.serviceWorker.register("serviceworker.js");
} catch (err) { } catch (err) {
console.error("error registering serviceWorker: " + err); console.error("error registering serviceWorker: " + err);
} }
} else {
console.warn("serviceWorker unsupported");
} }
/* eslint-enable compat/compat */
} }
function onWebComponentsReady(browser) { function onWebComponentsReady(browser) {
@ -700,6 +704,8 @@ var AppInfo = {};
"date-fns", "date-fns",
"page", "page",
"polyfill", "polyfill",
"fast-text-encoding",
"intersection-observer",
"classlist-polyfill" "classlist-polyfill"
] ]
}, },
@ -709,6 +715,8 @@ var AppInfo = {};
}); });
require(["polyfill"]); require(["polyfill"]);
require(["fast-text-encoding"]);
require(["intersection-observer"]);
require(["classlist-polyfill"]); require(["classlist-polyfill"]);
// Expose jQuery globally // Expose jQuery globally

View file

@ -999,9 +999,9 @@
"OptionWeekly": "Týdenní", "OptionWeekly": "Týdenní",
"OriginalAirDateValue": "Datum vysílání originálu: {0}", "OriginalAirDateValue": "Datum vysílání originálu: {0}",
"Overview": "Přehled/Obsah", "Overview": "Přehled/Obsah",
"PackageInstallCancelled": "Instalace {0} zrušena.", "PackageInstallCancelled": "Instalace {0} (verze {1}) zrušena.",
"PackageInstallCompleted": "Instalace {0} dokončena.", "PackageInstallCompleted": "Instalace {0} (verze {1}) dokončena.",
"PackageInstallFailed": "Instalace {0} selhala.", "PackageInstallFailed": "Instalace {0} (verze {1}) selhala.",
"ParentalRating": "Rodičovské hodnocení", "ParentalRating": "Rodičovské hodnocení",
"PasswordMatchError": "Heslo a potvrzení hesla musí souhlasit.", "PasswordMatchError": "Heslo a potvrzení hesla musí souhlasit.",
"PasswordResetComplete": "Heslo bylo obnoveno.", "PasswordResetComplete": "Heslo bylo obnoveno.",
@ -1022,7 +1022,7 @@
"PlayNext": "Přehrát další", "PlayNext": "Přehrát další",
"PlayNextEpisodeAutomatically": "Automaticky přehrávat další epizodu", "PlayNextEpisodeAutomatically": "Automaticky přehrávat další epizodu",
"PlayOnAnotherDevice": "Přehrát na jiném zařízení", "PlayOnAnotherDevice": "Přehrát na jiném zařízení",
"PlaybackErrorNoCompatibleStream": "Žádné kompatibilní streamy nejsou v současné době k dispozici. Zkuste to prosím později, nebo pro více podrobností kontaktujte svého správce systému.", "PlaybackErrorNoCompatibleStream": "Tento klient není kompatibilní s médiem a server neodesílá kompatibilní formát médií.",
"PlaybackErrorNotAllowed": "V současné době nejste oprávněni přehrávat tento obsah. Pro více informací se obraťte se na správce systému.", "PlaybackErrorNotAllowed": "V současné době nejste oprávněni přehrávat tento obsah. Pro více informací se obraťte se na správce systému.",
"PlaybackErrorPlaceHolder": "Chcete-li toto video přehrát, vložte disk.", "PlaybackErrorPlaceHolder": "Chcete-li toto video přehrát, vložte disk.",
"Played": "Přehráno", "Played": "Přehráno",
@ -1223,7 +1223,7 @@
"AirDate": "Datum vysílání", "AirDate": "Datum vysílání",
"Aired": "Vysíláno", "Aired": "Vysíláno",
"Alerts": "Upozornění", "Alerts": "Upozornění",
"AllComplexFormats": "Všechny komplexní formáty (ASS, SSA, VOBSUB, PGS, SUB/IDX, atd.)", "AllComplexFormats": "Všechny komplexní formáty (ASS, SSA, VOBSUB, PGS, SUB/IDX, atd.)",
"AllLibraries": "Všechny knihovny", "AllLibraries": "Všechny knihovny",
"AllowDeletionFromAll": "Povolit smazání médií ze všech knihoven", "AllowDeletionFromAll": "Povolit smazání médií ze všech knihoven",
"AllowMediaConversion": "Povolit konverzi médií", "AllowMediaConversion": "Povolit konverzi médií",
@ -1248,7 +1248,7 @@
"Blacklist": "Černá listina", "Blacklist": "Černá listina",
"BobAndWeaveWithHelp": "Bob and weave (vyšší kvalita, ale pomalejší)", "BobAndWeaveWithHelp": "Bob and weave (vyšší kvalita, ale pomalejší)",
"Browse": "Procházet", "Browse": "Procházet",
"BurnSubtitlesHelp": "Určuje, zda má server vypalovat titulky při překódování videa. Vynechání tohoto zlepší výkon serveru. Chcete-li vypálit grafické formáty (VOBSUB, PGS, SUB / IDX atd.) a některé titulky ASS / SSA, vyberte možnost Auto.", "BurnSubtitlesHelp": "Určuje, zda má server vypalovat titulky při překódování videa. Vynechání tohoto zlepší výkon serveru. Chcete-li vypálit grafické formáty (VOBSUB, PGS, SUB / IDX atd.) a některé titulky ASS nebo SSA, vyberte možnost Auto.",
"ButtonInfo": "Info", "ButtonInfo": "Info",
"ButtonMenu": "Menu", "ButtonMenu": "Menu",
"ButtonOk": "Ok", "ButtonOk": "Ok",
@ -1594,5 +1594,13 @@
"PersonRole": "jako {0}", "PersonRole": "jako {0}",
"ListPaging": "{0}-{1} ze {2}", "ListPaging": "{0}-{1} ze {2}",
"WriteAccessRequired": "Jellyfin Server potřebuje oprávnění pro zápis v této složce. Zkontrolujte oprávnění a zkuste to znovu.", "WriteAccessRequired": "Jellyfin Server potřebuje oprávnění pro zápis v této složce. Zkontrolujte oprávnění a zkuste to znovu.",
"PathNotFound": "Cesta nebyla nalezena. Zkontrolujte, zda je platná a zkuste to znovu." "PathNotFound": "Cesta nebyla nalezena. Zkontrolujte, zda je platná a zkuste to znovu.",
"WeeklyAt": "V {0} v {1}",
"LastSeen": "Naposledy zobrazené {0}",
"YadifBob": "Yadif Bob",
"Yadif": "Yadif",
"LabelLibraryPageSizeHelp": "Určuje počet položek k zobrazení na stránce knihovny. Nastavte na 0 pro vypnutí stránkování.",
"LabelLibraryPageSize": "Velikost stránky knihovny:",
"LabelDeinterlaceMethod": "Metoda odstranění prokládání:",
"DeinterlaceMethodHelp": "Vyberte metodu odstranění prokládání obrazu při překódování obsahu."
} }

View file

@ -12,11 +12,11 @@
"AllChannels": "Alle kanaler", "AllChannels": "Alle kanaler",
"AllEpisodes": "Alle episoder", "AllEpisodes": "Alle episoder",
"AllLibraries": "Alle biblioteker", "AllLibraries": "Alle biblioteker",
"AllowHWTranscodingHelp": "Hvis aktiveret, omkoder tuneren streams on-the-fly. Dette kan hjælpe med at reducere omkodning der kræves af Jellyfin Server.", "AllowHWTranscodingHelp": "Lader tuneren omkode streams on-the-fly. Dette kan hjælpe med at reducere omkodning der kræves af serveren.",
"AllowMediaConversion": "Tillad media konvertering", "AllowMediaConversion": "Tillad media konvertering",
"AllowMediaConversionHelp": "Giv eller nægt adgang til Konvertér Media featuren.", "AllowMediaConversionHelp": "Giv eller nægt adgang til Konvertér Media featuren.",
"AllowOnTheFlySubtitleExtraction": "Tillad udtræk af undertekster on-the-fly", "AllowOnTheFlySubtitleExtraction": "Tillad udtræk af undertekster on-the-fly",
"AllowOnTheFlySubtitleExtractionHelp": "Indeholdte undertekster kan trækkes ud af videoer og leveres til Jellyfin apps i ren tekst for at afhjælpe video kodning. På nogle systemer kan dette tage lang tid og forårsage at afspilning kan hænge mens den udtrækker. Slå dette fra, for at have undertekster brændt ind i video kodningen når det er supporteret på klient enheden.", "AllowOnTheFlySubtitleExtractionHelp": "Indeholdte undertekster kan trækkes ud af videoer og leveres til klienter i ren tekst for at afhjælpe video kodning. På nogle systemer kan dette tage lang tid og forårsage at afspilning kan hænge mens den udtrækker. Slå dette fra, for at have undertekster brændt ind i video kodningen når det er supporteret på klient enheden.",
"AllowRemoteAccess": "Tillad fjernadgang til denne Jellyfin Server.", "AllowRemoteAccess": "Tillad fjernadgang til denne Jellyfin Server.",
"AllowRemoteAccessHelp": "Hvis ikke markeret, vil alle fjernforbindelser blive blokeret.", "AllowRemoteAccessHelp": "Hvis ikke markeret, vil alle fjernforbindelser blive blokeret.",
"AllowedRemoteAddressesHelp": "Komma seperareret liste over IP adresser og netmasker der har ret til fjernadgang. Hvis blank er alle adresser tilladte.", "AllowedRemoteAddressesHelp": "Komma seperareret liste over IP adresser og netmasker der har ret til fjernadgang. Hvis blank er alle adresser tilladte.",
@ -1092,9 +1092,9 @@
"Absolute": "Absolut", "Absolute": "Absolut",
"AccessRestrictedTryAgainLater": "Adgang er begrænset. Prøv igen senere.", "AccessRestrictedTryAgainLater": "Adgang er begrænset. Prøv igen senere.",
"Aired": "Blev sendt", "Aired": "Blev sendt",
"AllComplexFormats": "Alle komplekse formater (ASS, SSA, VOBSUB, PGS, SUB/IDX osv.)", "AllComplexFormats": "Alle Komplekse Formater (ASS, SSA, VOBSUB, PGS, SUB,IDX osv.)",
"AllLanguages": "Alle sprog", "AllLanguages": "Alle sprog",
"AlwaysPlaySubtitles": "Afspil altid undertekster", "AlwaysPlaySubtitles": "Afspil Altid",
"AlwaysPlaySubtitlesHelp": "Undertekster, der matcher dine sprogindstillinger, vil altid blive indlæst uanset lydsprog.", "AlwaysPlaySubtitlesHelp": "Undertekster, der matcher dine sprogindstillinger, vil altid blive indlæst uanset lydsprog.",
"HeaderLiveTV": "Live-TV", "HeaderLiveTV": "Live-TV",
"Shows": "Serier", "Shows": "Serier",
@ -1532,5 +1532,9 @@
"LabelServerName": "Server navn:", "LabelServerName": "Server navn:",
"LabelUserLoginAttemptsBeforeLockout": "Fejlede loginforsøg før bruger lukkes ude:", "LabelUserLoginAttemptsBeforeLockout": "Fejlede loginforsøg før bruger lukkes ude:",
"HeaderRestartingServer": "Genstarter Server", "HeaderRestartingServer": "Genstarter Server",
"ButtonAddImage": "Tilføj billede" "ButtonAddImage": "Tilføj billede",
"AllowFfmpegThrottlingHelp": "Når en omkodning eller remux kommer langt nok foran den nuværende afspildings position, pauses processen så der bruges færre resurser. Dette er mest brugbart når man ikke springer i filmen. Slå dette fra hvis du har problemer med playback.",
"AllowFfmpegThrottling": "Begræns Omkodning",
"AlbumArtist": "Album Artist",
"Album": "Album"
} }

View file

@ -75,9 +75,9 @@
"AllowRemoteAccess": "Allow remote connections to this Jellyfin Server.", "AllowRemoteAccess": "Allow remote connections to this Jellyfin Server.",
"AllowRemoteAccessHelp": "If unchecked, all remote connections will be blocked.", "AllowRemoteAccessHelp": "If unchecked, all remote connections will be blocked.",
"AllowedRemoteAddressesHelp": "Comma separated list of IP addresses or IP/netmask entries for networks that will be allowed to connect remotely. If left blank, all remote addresses will be allowed.", "AllowedRemoteAddressesHelp": "Comma separated list of IP addresses or IP/netmask entries for networks that will be allowed to connect remotely. If left blank, all remote addresses will be allowed.",
"AlwaysPlaySubtitles": "Always play subtitles", "AlwaysPlaySubtitles": "Always Play",
"AlwaysPlaySubtitlesHelp": "Subtitles matching the language preference will be loaded regardless of the audio language.", "AlwaysPlaySubtitlesHelp": "Subtitles matching the language preference will be loaded regardless of the audio language.",
"AnyLanguage": "Any language", "AnyLanguage": "Any Language",
"Anytime": "Anytime", "Anytime": "Anytime",
"AroundTime": "Around {0}", "AroundTime": "Around {0}",
"Art": "Art", "Art": "Art",
@ -100,7 +100,7 @@
"Box": "Box", "Box": "Box",
"BoxRear": "Box (rear)", "BoxRear": "Box (rear)",
"Browse": "Browse", "Browse": "Browse",
"BurnSubtitlesHelp": "Determines if the server should burn in subtitles when converting video depending on the subtitle format. Avoiding burning in subtitles will improve server performance. Select Auto to burn image based formats (VOBSUB, PGS, SUB/IDX, etc) and certain ASS/SSA subtitles.", "BurnSubtitlesHelp": "Determines if the server should burn in subtitles when transcoding videos. Avoiding this will greatly improve performance. Select Auto to burn image based formats (VOBSUB, PGS, SUB, IDX) and certain ASS or SSA subtitles.",
"ButtonAdd": "Add", "ButtonAdd": "Add",
"ButtonAddMediaLibrary": "Add Media Library", "ButtonAddMediaLibrary": "Add Media Library",
"ButtonAddScheduledTaskTrigger": "Add Trigger", "ButtonAddScheduledTaskTrigger": "Add Trigger",
@ -233,7 +233,7 @@
"DisplayInOtherHomeScreenSections": "Display in home screen sections such as latest media and continue watching", "DisplayInOtherHomeScreenSections": "Display in home screen sections such as latest media and continue watching",
"DisplayMissingEpisodesWithinSeasons": "Display missing episodes within seasons", "DisplayMissingEpisodesWithinSeasons": "Display missing episodes within seasons",
"DisplayMissingEpisodesWithinSeasonsHelp": "This must also be enabled for TV libraries in the server configuration.", "DisplayMissingEpisodesWithinSeasonsHelp": "This must also be enabled for TV libraries in the server configuration.",
"DisplayModeHelp": "Select the type of screen you're running Jellyfin on.", "DisplayModeHelp": "Select the layout style you want for the interface.",
"DoNotRecord": "Do not record", "DoNotRecord": "Do not record",
"Down": "Down", "Down": "Down",
"Download": "Download", "Download": "Download",
@ -617,9 +617,9 @@
"PasswordResetComplete": "The password has been reset.", "PasswordResetComplete": "The password has been reset.",
"PasswordMatchError": "Password and password confirmation must match.", "PasswordMatchError": "Password and password confirmation must match.",
"ParentalRating": "Parental rating", "ParentalRating": "Parental rating",
"PackageInstallFailed": "{0} installation failed.", "PackageInstallFailed": "{0} (version {1}) installation failed.",
"PackageInstallCompleted": "{0} installation completed.", "PackageInstallCompleted": "{0} (version {1}) installation completed.",
"PackageInstallCancelled": "{0} installation cancelled.", "PackageInstallCancelled": "{0} (version {1}) installation cancelled.",
"OriginalAirDateValue": "Original air date: {0}", "OriginalAirDateValue": "Original air date: {0}",
"OptionWeekly": "Weekly", "OptionWeekly": "Weekly",
"OptionWeekends": "Weekends", "OptionWeekends": "Weekends",
@ -690,12 +690,12 @@
"OptionAlbumArtist": "Album Artist", "OptionAlbumArtist": "Album Artist",
"OptionAlbum": "Album", "OptionAlbum": "Album",
"Option3D": "3D", "Option3D": "3D",
"OnlyImageFormats": "Only image formats (VOBSUB, PGS, SUB, etc)", "OnlyImageFormats": "Only Image Formats (VOBSUB, PGS, SUB)",
"OnlyForcedSubtitlesHelp": "Only subtitles marked as forced will be loaded.", "OnlyForcedSubtitlesHelp": "Only subtitles marked as forced will be loaded.",
"Normal": "Normal", "Normal": "Normal",
"None": "None", "None": "None",
"NoSubtitlesHelp": "Subtitles will not be loaded by default. They can still be turned on manually during playback.", "NoSubtitlesHelp": "Subtitles will not be loaded by default. They can still be turned on manually during playback.",
"NoSubtitles": "No subtitles", "NoSubtitles": "None",
"NoPluginConfigurationMessage": "This plugin has no settings to configure.", "NoPluginConfigurationMessage": "This plugin has no settings to configure.",
"NoNextUpItemsMessage": "None found. Start watching your shows!", "NoNextUpItemsMessage": "None found. Start watching your shows!",
"No": "No", "No": "No",
@ -871,7 +871,7 @@
"MessageConfirmProfileDeletion": "Are you sure you wish to delete this profile?", "MessageConfirmProfileDeletion": "Are you sure you wish to delete this profile?",
"LaunchWebAppOnStartup": "Launch the web interface when starting the server", "LaunchWebAppOnStartup": "Launch the web interface when starting the server",
"LabelYourFirstName": "Your first name:", "LabelYourFirstName": "Your first name:",
"OnlyForcedSubtitles": "Only forced subtitles", "OnlyForcedSubtitles": "Only Forced",
"Off": "Off", "Off": "Off",
"NumLocationsValue": "{0} folders", "NumLocationsValue": "{0} folders",
"Name": "Name", "Name": "Name",
@ -1030,7 +1030,7 @@
"LabelEnableDlnaDebugLoggingHelp": "Create large log files and should only be used as needed for troubleshooting purposes.", "LabelEnableDlnaDebugLoggingHelp": "Create large log files and should only be used as needed for troubleshooting purposes.",
"LabelEnableDlnaClientDiscoveryIntervalHelp": "Determines the duration in seconds between SSDP searches performed by Jellyfin.", "LabelEnableDlnaClientDiscoveryIntervalHelp": "Determines the duration in seconds between SSDP searches performed by Jellyfin.",
"LabelEnableAutomaticPortMapHelp": "Attempt to automatically map the public port to the local port via UPnP. This may not work with some router models. Changes will not apply until after a server restart.", "LabelEnableAutomaticPortMapHelp": "Attempt to automatically map the public port to the local port via UPnP. This may not work with some router models. Changes will not apply until after a server restart.",
"InstallingPackage": "Installing {0}", "InstallingPackage": "Installing {0} (version {1})",
"ImportMissingEpisodesHelp": "If enabled, information about missing episodes will be imported into your Jellyfin database and displayed within seasons and series. This may cause significantly longer library scans.", "ImportMissingEpisodesHelp": "If enabled, information about missing episodes will be imported into your Jellyfin database and displayed within seasons and series. This may cause significantly longer library scans.",
"HeaderSubtitleAppearance": "Subtitle Appearance", "HeaderSubtitleAppearance": "Subtitle Appearance",
"LabelProtocol": "Protocol:", "LabelProtocol": "Protocol:",
@ -1472,7 +1472,39 @@
"CopyStreamURLError": "There was an error copying the URL.", "CopyStreamURLError": "There was an error copying the URL.",
"NoCreatedLibraries": "Seems like you haven't created any libraries yet. {0}Would you like to create one now?{1}", "NoCreatedLibraries": "Seems like you haven't created any libraries yet. {0}Would you like to create one now?{1}",
"AskAdminToCreateLibrary": "Ask an administrator to create a library.", "AskAdminToCreateLibrary": "Ask an administrator to create a library.",
"PlaybackErrorNoCompatibleStream": "There was an issue with the client profiling and the server isn't sending a compatible media format.", "PlaybackErrorNoCompatibleStream": "This client isn't compatible with the media and the server isn't sending a compatible media format.",
"AllowFfmpegThrottlingHelp": "When a transcode or remux gets far enough ahead from the current playback position, pause the process so it will consume less resources. This is most useful when watching without seeking often. Turn this off if you experience playback issues.", "AllowFfmpegThrottlingHelp": "When a transcode or remux gets far enough ahead from the current playback position, pause the process so it will consume less resources. This is most useful when watching without seeking often. Turn this off if you experience playback issues.",
"AllowFfmpegThrottling": "Throttle Transcodes" "AllowFfmpegThrottling": "Throttle Transcodes",
"OnApplicationStartup": "On application startup",
"EveryXHours": "Every {0} hours",
"EveryHour": "Every hour",
"EveryXMinutes": "Every {0} minutes",
"OnWakeFromSleep": "On wake from sleep",
"WeeklyAt": "{0}s at {1}",
"DailyAt": "Daily at {0}",
"LastSeen": "Last seen {0}",
"PersonRole": "as {0}",
"ListPaging": "{0}-{1} of {2}",
"WriteAccessRequired": "Jellyfin Server requires write access to this folder. Please ensure write access and try again.",
"PathNotFound": "The path could not be found. Please ensure the path is valid and try again.",
"YadifBob": "YADIF Bob",
"Yadif": "YADIF",
"Track": "Track",
"Season": "Season",
"ReleaseGroup": "Release Group",
"PreferEmbeddedEpisodeInfosOverFileNames": "Prefer embedded episode information over filenames",
"PreferEmbeddedEpisodeInfosOverFileNamesHelp": "This uses the episode information from the embedded metadata if available.",
"Person": "Person",
"OtherArtist": "Other Artist",
"Movie": "Movie",
"LabelLibraryPageSizeHelp": "Sets the amount of items to show on a library page. Set to 0 in order to disable paging.",
"LabelLibraryPageSize": "Library page size:",
"LabelDeinterlaceMethod": "Deinterlacing method:",
"Episode": "Episode",
"DeinterlaceMethodHelp": "Select the deinterlacing method to use when transcoding interlaced content.",
"ClientSettings": "Client Settings",
"BoxSet": "Box Set",
"Artist": "Artist",
"AlbumArtist": "Album Artist",
"Album": "Album"
} }

View file

@ -1250,8 +1250,8 @@
"PluginInstalledMessage": "The plugin has been successfully installed. Jellyfin Server will need to be restarted for changes to take effect.", "PluginInstalledMessage": "The plugin has been successfully installed. Jellyfin Server will need to be restarted for changes to take effect.",
"PreferEmbeddedTitlesOverFileNames": "Prefer embedded titles over filenames", "PreferEmbeddedTitlesOverFileNames": "Prefer embedded titles over filenames",
"PreferEmbeddedTitlesOverFileNamesHelp": "This determines the default display title when no internet metadata or local metadata is available.", "PreferEmbeddedTitlesOverFileNamesHelp": "This determines the default display title when no internet metadata or local metadata is available.",
"PreferEmbeddedEpisodeInfosOverFileNamesHelp": "This uses the episode informations from the embedded metadata if available.", "PreferEmbeddedEpisodeInfosOverFileNamesHelp": "This uses the episode information from the embedded metadata if available.",
"PreferEmbeddedEpisodeInfosOverFileNames": "Prefer embedded episode informations over filenames", "PreferEmbeddedEpisodeInfosOverFileNames": "Prefer embedded episode information over filenames",
"PreferredNotRequired": "Preferred, but not required", "PreferredNotRequired": "Preferred, but not required",
"Premiere": "Premiere", "Premiere": "Premiere",
"Premieres": "Premieres", "Premieres": "Premieres",
@ -1483,8 +1483,8 @@
"XmlTvNewsCategoriesHelp": "Programs with these categories will be displayed as news programs. Separate multiple with '|'.", "XmlTvNewsCategoriesHelp": "Programs with these categories will be displayed as news programs. Separate multiple with '|'.",
"XmlTvPathHelp": "A path to a XMLTV file. Jellyfin will read this file and periodically check it for updates. You are responsible for creating and updating the file.", "XmlTvPathHelp": "A path to a XMLTV file. Jellyfin will read this file and periodically check it for updates. You are responsible for creating and updating the file.",
"XmlTvSportsCategoriesHelp": "Programs with these categories will be displayed as sports programs. Separate multiple with '|'.", "XmlTvSportsCategoriesHelp": "Programs with these categories will be displayed as sports programs. Separate multiple with '|'.",
"Yadif": "Yadif", "Yadif": "YADIF",
"YadifBob": "Yadif Bob", "YadifBob": "YADIF Bob",
"Yes": "Yes", "Yes": "Yes",
"Yesterday": "Yesterday", "Yesterday": "Yesterday",
"PathNotFound": "The path could not be found. Please ensure the path is valid and try again.", "PathNotFound": "The path could not be found. Please ensure the path is valid and try again.",

View file

@ -310,7 +310,7 @@
"HeaderLatestMovies": "Últimas películas", "HeaderLatestMovies": "Últimas películas",
"HeaderLatestMusic": "Última música", "HeaderLatestMusic": "Última música",
"HeaderLatestRecordings": "Últimas grabaciones", "HeaderLatestRecordings": "Últimas grabaciones",
"HeaderLibraries": "Blibliotecas", "HeaderLibraries": "Bibliotecas",
"HeaderLibraryAccess": "Acceso a la biblioteca", "HeaderLibraryAccess": "Acceso a la biblioteca",
"HeaderLibraryFolders": "Carpetas de la biblioteca", "HeaderLibraryFolders": "Carpetas de la biblioteca",
"HeaderLibraryOrder": "Orden de la biblioteca", "HeaderLibraryOrder": "Orden de la biblioteca",
@ -1500,5 +1500,9 @@
"BoxSet": "Box Set", "BoxSet": "Box Set",
"Artist": "Artista", "Artist": "Artista",
"AlbumArtist": "Artista del álbum", "AlbumArtist": "Artista del álbum",
"Album": "Álbum" "Album": "Álbum",
"LabelDeinterlaceMethod": "Metodo de desentrelazar:",
"DeinterlaceMethodHelp": "Seleccione el método de desentrelazar para el transcodificar de contenido entrelazado.",
"LabelLibraryPageSize": "Tamaño de la página de la biblioteca:",
"LabelLibraryPageSizeHelp": "Establece la cantidad de artículos a mostrar en una página de la biblioteca. Ponlo en 0 para desactivar la paginación."
} }

View file

@ -1,8 +1,8 @@
{ {
"All": "همه", "All": "همه",
"AllowMediaConversion": "اجازه تبدیل رسانه ها", "AllowMediaConversion": "اجازه تبدیل رسانهها",
"AllowMediaConversionHelp": "دادن یا ندادن دسترسی به ویژگی تبدیل رسانه ها", "AllowMediaConversionHelp": "دادن یا ندادن دسترسی به ویژگی تبدیل رسانهها.",
"AllowRemoteAccess": "اجازه دادن اتصال از راه دور به سرور Jellyfin", "AllowRemoteAccess": "اجازه بدهید اتصال‌های از راه دور به این سرور Jellyfin متصل شوند.",
"AllowRemoteAccessHelp": "اگرانتخاب نشود، تمامی اتصال های از راه دور بلوکه می شوند.", "AllowRemoteAccessHelp": "اگرانتخاب نشود، تمامی اتصال های از راه دور بلوکه می شوند.",
"Browse": "مرور کردن", "Browse": "مرور کردن",
"ButtonAddUser": "افزودن کاربر", "ButtonAddUser": "افزودن کاربر",
@ -19,11 +19,11 @@
"ButtonSort": "مرتب سازی", "ButtonSort": "مرتب سازی",
"DeleteMedia": "حذف رسانه", "DeleteMedia": "حذف رسانه",
"Disabled": "غیرفعال شده", "Disabled": "غیرفعال شده",
"FolderTypeBooks": "کتاب ها", "FolderTypeBooks": "کتابها",
"FolderTypeMovies": "سینمایی ها", "FolderTypeMovies": "فیلم‌ها",
"FolderTypeMusic": "موسیقی", "FolderTypeMusic": "موسیقیها",
"FolderTypeMusicVideos": "موزیک ویدئوها", "FolderTypeMusicVideos": "موزیک ویدیوها",
"FolderTypeTvShows": "سریال تلویزیونی", "FolderTypeTvShows": "سریال‌های تلویزیونی",
"HeaderAddUser": "اضافه کردن کاربر", "HeaderAddUser": "اضافه کردن کاربر",
"HeaderContinueWatching": "ادامه تماشا", "HeaderContinueWatching": "ادامه تماشا",
"HeaderCustomDlnaProfiles": "پروفایل های سفارشی", "HeaderCustomDlnaProfiles": "پروفایل های سفارشی",
@ -45,15 +45,15 @@
"HeaderTypeImageFetchers": "{0} هماهنگ کننده تصویر", "HeaderTypeImageFetchers": "{0} هماهنگ کننده تصویر",
"HeaderUsers": "کاربران", "HeaderUsers": "کاربران",
"LabelAudioLanguagePreference": "اولویت زبان صدا:", "LabelAudioLanguagePreference": "اولویت زبان صدا:",
"LabelContentType": "نوع محتوی", "LabelContentType": "نوع محتوا:",
"LabelCountry": "کشور", "LabelCountry": "کشور:",
"LabelCurrentPassword": "رمز فعلی:", "LabelCurrentPassword": "رمز فعلی:",
"LabelCustomCertificatePath": "مسیر اختصصای گواهینامه SSL:", "LabelCustomCertificatePath": "مسیر اختصاصی گواهینامه SSL:",
"LabelCustomCertificatePathHelp": "پچ به فایل PKCS #12 حاوی یک گواهینامه و کلید خصوصی است تا پشتیبانی از TLS را در یک دامنه شخصی فعال کند.", "LabelCustomCertificatePathHelp": "پچ به فایل PKCS #12 حاوی یک گواهینامه و کلید خصوصی است تا پشتیبانی از TLS را در یک دامنه شخصی فعال کند.",
"LabelDisplayMissingEpisodesWithinSeasons": "نمایش قسمت های ناموجود در بین فصل ها", "LabelDisplayMissingEpisodesWithinSeasons": "نمایش قسمت های ناموجود در بین فصل ها",
"LabelFinish": "پایان", "LabelFinish": "پایان",
"LabelLanguage": "زبان", "LabelLanguage": "زبان:",
"LabelMaxParentalRating": "حداکثر درجه سنی مجاز والدین", "LabelMaxParentalRating": "حداکثر امتیاز سنی مجاز والدین:",
"LabelNewPassword": "رمز جدید:", "LabelNewPassword": "رمز جدید:",
"LabelNewPasswordConfirm": "تایید رمز جدید:", "LabelNewPasswordConfirm": "تایید رمز جدید:",
"LabelNext": "بعدی", "LabelNext": "بعدی",
@ -64,7 +64,7 @@
"LabelSecureConnectionsMode": "حالت اتصال ایمن:", "LabelSecureConnectionsMode": "حالت اتصال ایمن:",
"LabelSelectUsers": "انتخاب کاربران:", "LabelSelectUsers": "انتخاب کاربران:",
"LabelTimeLimitHours": "محدودیت زمان (ساعت):", "LabelTimeLimitHours": "محدودیت زمان (ساعت):",
"LabelTypeMetadataDownloaders": "{0} دانلود کننده ی متاداده:", "LabelTypeMetadataDownloaders": "{0} دانلود کننده فراداده:",
"LabelYourFirstName": "اسم کوچک شما:", "LabelYourFirstName": "اسم کوچک شما:",
"LabelYoureDone": "به پایان رسید!", "LabelYoureDone": "به پایان رسید!",
"LibraryAccessHelp": "انتخاب پوشه های رسانه برای اشتراک گذاری با این کاربر. مدیر سیستم میتواند با استفاده از مدیریت متاداده همه ی پوشه ها را ویرایش کند.", "LibraryAccessHelp": "انتخاب پوشه های رسانه برای اشتراک گذاری با این کاربر. مدیر سیستم میتواند با استفاده از مدیریت متاداده همه ی پوشه ها را ویرایش کند.",
@ -95,9 +95,9 @@
"TabArtists": "هنرمندان", "TabArtists": "هنرمندان",
"TabEpisodes": "قسمت ها", "TabEpisodes": "قسمت ها",
"TabGenres": "ژانرها", "TabGenres": "ژانرها",
"TabLatest": "آخرین", "TabLatest": "جدیدترین‌ها",
"TabMetadata": "اطلاعات محتوی", "TabMetadata": "فراداده",
"TabMusicVideos": "موزیک ویدیو ها", "TabMusicVideos": "موزیک ویدیوها",
"TabNetworks": "شبکه ها", "TabNetworks": "شبکه ها",
"TabNotifications": "اعلان ها", "TabNotifications": "اعلان ها",
"TabPassword": "رمز عبور", "TabPassword": "رمز عبور",
@ -109,10 +109,10 @@
"TabSuggestions": "پیشنهادات", "TabSuggestions": "پیشنهادات",
"TabUpcoming": "بزودی", "TabUpcoming": "بزودی",
"TellUsAboutYourself": "در مورد خودتان به ما بگویید", "TellUsAboutYourself": "در مورد خودتان به ما بگویید",
"ThisWizardWillGuideYou": "این ویزارد برای انجام تنظیمات به شما کمک می کند. برای شروع، لطفا زبان مورد نظر خود را انتخاب فرمایید", "ThisWizardWillGuideYou": "این عمل برای انجام تنظیمات به شما کمک می‌کند. برای شروع، لطفا زبان مورد نظر خود را انتخاب کنید.",
"UserProfilesIntro": "Jellyfin دارای پشتیبانی داخلی از پروفایل کاربران می باشد. با فعال سازی هر کاربر، او می تواند تنظیمات ، وضعیت پخش و کنترل والدین خاص خودش را داشته باشد.", "UserProfilesIntro": "Jellyfin دارای پشتیبانی داخلی از پروفایل کاربران می باشد. با فعال سازی هر کاربر، او می تواند تنظیمات ، وضعیت پخش و کنترل والدین خاص خودش را داشته باشد.",
"WelcomeToProject": "به Jellyfin خوش آمدید!", "WelcomeToProject": "به Jellyfin خوش آمدید!",
"WizardCompleted": "همه چیزی که فعلا می خواهیم همین است.جمع آوری اطلاعات کتابخانه های شما هم اکنون توسط Jellyfin آغاز شده است. اپلیکیشن های ما را امتحان کنید و سپس بر روی <b> پایان </b> کلیک کنید تا <b> پیشخوان سرور </b> را مشاهده نمایید.", "WizardCompleted": "همه چیزی که فعلا می‌خواهیم همین است. جمع آوری اطلاعات کتابخانه‌های شما هم اکنون توسط Jellyfin آغاز شده است. اپلیکیشن‌های ما را امتحان کنید و سپس بر روی <b> پایان</b> کلیک کنید تا <b>پیشخوان سرور</b> را مشاهده نمایید.",
"Albums": "آلبوم‌ها", "Albums": "آلبوم‌ها",
"Artists": "هنرمندان", "Artists": "هنرمندان",
"Books": "کتاب‌ها", "Books": "کتاب‌ها",
@ -127,7 +127,7 @@
"HeaderFavoriteAlbums": "آلبوم‌های مورد علاقه", "HeaderFavoriteAlbums": "آلبوم‌های مورد علاقه",
"HeaderFavoriteArtists": "هنرمندان مورد علاقه", "HeaderFavoriteArtists": "هنرمندان مورد علاقه",
"HeaderFavoriteSongs": "آهنگ‌های مورد علاقه", "HeaderFavoriteSongs": "آهنگ‌های مورد علاقه",
"HeaderLiveTV": "پخش زنده تلویزیون", "HeaderLiveTV": "تلویزیون زنده",
"Movies": "فیلم‌ها", "Movies": "فیلم‌ها",
"Photos": "عکس‌ها", "Photos": "عکس‌ها",
"Playlists": "لیست‌های پخش", "Playlists": "لیست‌های پخش",
@ -135,11 +135,11 @@
"Songs": "موسیقی‌ها", "Songs": "موسیقی‌ها",
"Sync": "همگام‌سازی", "Sync": "همگام‌سازی",
"ValueSpecialEpisodeName": "ویژه - {0}", "ValueSpecialEpisodeName": "ویژه - {0}",
"AllEpisodes": "تمام قسمت ها", "AllEpisodes": "تمام قسمتها",
"AllLanguages": "تمام زبان ها", "AllLanguages": "تمام زبانها",
"AllLibraries": "تمام کتابخانه ها", "AllLibraries": "تمام کتابخانهها",
"AllowHWTranscodingHelp": "اگر فعال شود, اجازه می‌دهید تبدیل کیفیت در لحظه انجام شود. این ممکن است به کاهش کدگذاری لازم برای Jellyfin منجر بشود.", "AllowHWTranscodingHelp": "اگر فعال شود, اجازه می‌دهید تبدیل کیفیت در لحظه انجام شود. این ممکن است به کاهش کدگذاری لازم برای Jellyfin منجر بشود.",
"AllowOnTheFlySubtitleExtraction": "اجازه میدهد در لحظه زیرنویس بازشود", "AllowOnTheFlySubtitleExtraction": "اجازه میدهد در لحظه زیرنویس بازشود",
"Add": "افزودن", "Add": "افزودن",
"Actor": "بازیگر", "Actor": "بازیگر",
"AccessRestrictedTryAgainLater": "دسترسی در حال حاضر محدود شده است. لطفا دوباره تلاش کنید.", "AccessRestrictedTryAgainLater": "دسترسی در حال حاضر محدود شده است. لطفا دوباره تلاش کنید.",
@ -149,7 +149,7 @@
"ButtonSelectView": "انتخاب نما", "ButtonSelectView": "انتخاب نما",
"ButtonSelectServer": "انتخاب سرور", "ButtonSelectServer": "انتخاب سرور",
"ButtonSearch": "جستجو", "ButtonSearch": "جستجو",
"ButtonScanAllLibraries": "پویش تمام کتابخانه‌ها", "ButtonScanAllLibraries": "اسکن تمام کتابخانه‌ها",
"ButtonRevoke": "ابطال", "ButtonRevoke": "ابطال",
"ButtonResume": "ادامه", "ButtonResume": "ادامه",
"ButtonRestart": "راه اندازی مجدد", "ButtonRestart": "راه اندازی مجدد",
@ -215,9 +215,9 @@
"AroundTime": "حدود {0}", "AroundTime": "حدود {0}",
"Anytime": "هر زمانی", "Anytime": "هر زمانی",
"AnyLanguage": "هر زبانی", "AnyLanguage": "هر زبانی",
"AlwaysPlaySubtitles": "همیشه زیرنویس را نمایش بده", "AlwaysPlaySubtitles": "همیشه پخش کن",
"AllowFfmpegThrottling": "گلوگاه تبدیل کیفیت", "AllowFfmpegThrottling": "گلوگاه تبدیل کیفیت",
"AllChannels": "همه‌ی کانال‌ها", "AllChannels": "همه کانال‌ها",
"Alerts": "هشدارها", "Alerts": "هشدارها",
"Aired": "پخش شده", "Aired": "پخش شده",
"AirDate": "تاریخ پخش", "AirDate": "تاریخ پخش",
@ -239,11 +239,11 @@
"EnableHardwareEncoding": "فعال سازی رمزگذاری سخت افزاری", "EnableHardwareEncoding": "فعال سازی رمزگذاری سخت افزاری",
"EnableExternalVideoPlayersHelp": "یک منوی پخش کننده ویدیوی خارجی، زمانی که شروع به پخش ویدیو می‌شود نمایش داده خواهد شد.", "EnableExternalVideoPlayersHelp": "یک منوی پخش کننده ویدیوی خارجی، زمانی که شروع به پخش ویدیو می‌شود نمایش داده خواهد شد.",
"EnableExternalVideoPlayers": "پخش کننده ویدیوی خارجی", "EnableExternalVideoPlayers": "پخش کننده ویدیوی خارجی",
"EnableDisplayMirroring": "نمایش حالت آینه", "EnableDisplayMirroring": "انعکاس نمایش",
"EnableCinemaMode": "حالت سینما", "EnableCinemaMode": "حالت سینما",
"EnableBackdrops": "پشت‌زمینه‌ها", "EnableBackdrops": "پشت‌زمینه‌ها",
"EditSubtitles": "ویرایش زیرنویس‌ها", "EditSubtitles": "ویرایش زیرنویس‌ها",
"EditMetadata": "ویرایش ابرداده", "EditMetadata": "ویرایش فراداده",
"EditImages": "ویرایش عکس‌ها", "EditImages": "ویرایش عکس‌ها",
"Edit": "ویرایش", "Edit": "ویرایش",
"DropShadow": "سایه پشت زمینه", "DropShadow": "سایه پشت زمینه",
@ -252,7 +252,7 @@
"Download": "بارگیری", "Download": "بارگیری",
"Down": "پایین", "Down": "پایین",
"DoNotRecord": "ضبط نکن", "DoNotRecord": "ضبط نکن",
"DisplayModeHelp": "نوع صفحه نمایشی که Jellyfin را اجرا می‌کنید را انتخاب کنید‌‌.", "DisplayModeHelp": "سبک رابط کاربری مورد نظر خود را انتخاب کنید.",
"DisplayMissingEpisodesWithinSeasons": "قسمت‌های ناموجود در فصل‌ها را نمایش بده", "DisplayMissingEpisodesWithinSeasons": "قسمت‌های ناموجود در فصل‌ها را نمایش بده",
"DisplayInMyMedia": "نمایش در صفحه‌ی خانه", "DisplayInMyMedia": "نمایش در صفحه‌ی خانه",
"Display": "نمایش", "Display": "نمایش",
@ -358,13 +358,13 @@
"HeaderLibraryFolders": "پوشه‌های کتابخانه", "HeaderLibraryFolders": "پوشه‌های کتابخانه",
"HeaderLibraryAccess": "دسترسی به کتابخانه", "HeaderLibraryAccess": "دسترسی به کتابخانه",
"HeaderLibraries": "کتابخانه‌ها", "HeaderLibraries": "کتابخانه‌ها",
"HeaderLatestRecordings": "آخرین ضبط‌ها", "HeaderLatestRecordings": "جدیدترین‌ ضبط‌ها",
"HeaderLatestMusic": "آخرین آهنگ‌ها", "HeaderLatestMusic": "جدیدترین‌ آهنگ‌ها",
"HeaderLatestMovies": "آخرین فیلم‌ها", "HeaderLatestMovies": "جدیدترین‌ فیلم‌ها",
"HeaderLatestMedia": "آخرین رسانه‌ها", "HeaderLatestMedia": "جدیدترین‌ رسانه‌ها",
"HeaderKeepSeries": "سریال ادامه دهید", "HeaderKeepSeries": "سریال ادامه دهید",
"HeaderKeepRecording": "ضبط را ادامه دهید", "HeaderKeepRecording": "ضبط را ادامه دهید",
"HeaderItems": "موارد", "HeaderItems": "آیتم‌ها",
"HeaderInstall": "نصب", "HeaderInstall": "نصب",
"HeaderImageSettings": "تنظیمات عکس", "HeaderImageSettings": "تنظیمات عکس",
"HeaderIdentifyItemHelp": "یک یا بیشتر مورد برای جستجو وارد کنید. موارد را حذف کنید تا نتیجه جستجو را افزایش دهید.", "HeaderIdentifyItemHelp": "یک یا بیشتر مورد برای جستجو وارد کنید. موارد را حذف کنید تا نتیجه جستجو را افزایش دهید.",
@ -415,5 +415,192 @@
"HeaderCancelSeries": "لغو سریال", "HeaderCancelSeries": "لغو سریال",
"HeaderCancelRecording": "لغو ضبط", "HeaderCancelRecording": "لغو ضبط",
"HeaderBooks": "کتاب‌ها", "HeaderBooks": "کتاب‌ها",
"HeaderBlockItemsWithNoRating": "موارد مسدود شده با نقص یا عدم وجود اطلاعات امتیاز:" "HeaderBlockItemsWithNoRating": "موارد مسدود شده با نقص یا عدم وجود اطلاعات امتیاز:",
"LabelSkipIfAudioTrackPresentHelp": "این گزینه را عدم انتخاب کنید تا اطمینان حاصل کنید که همه ویدیوها فارغ از زبان صوت، زیرنویس دارند.",
"LabelSkipIfAudioTrackPresent": "اگر صدای پیش‌فرض با زبان دانلودی یکسان است پرش کن",
"LabelSkipForwardLength": "میزان رفتن به جلو:",
"LabelSkipBackLength": "میزان بازگشت به عقب:",
"LabelSkin": "پوسته:",
"LabelSize": "سایز:",
"LabelSimultaneousConnectionLimit": "محدودیت پخش همزمان:",
"LabelServerName": "نام سرور:",
"LabelServerHostHelp": "192.168.1.100:8096 یا https://myserver.com",
"LabelServerHost": "میزبان:",
"LabelSerialNumber": "شماره سریال",
"LabelSendNotificationToUsers": "ارسال اعلان به:",
"LabelSelectVersionToInstall": "نسخه مورد نظر برای نصب را انتخاب کنید:",
"LabelVersionInstalled": "{0} نصب شده است",
"EncoderPresetHelp": "یک مقدار سریع‌تر انتخاب کنید تا کارایی بهبود پیدا کند یا یک مقدار کُندتر انتخاب کنید تا کیفیت بهبود پیدا کند.",
"ShowYear": "نمایش سال",
"ShowTitle": "نمایش عنوان",
"ButtonAudioTracks": "آهنگ‌ها",
"AlbumArtist": "هنرمند آلبوم",
"Album": "آلبوم",
"HeaderAddScheduledTaskTrigger": "افزودن فعال‌ساز",
"HeaderActivity": "فعالیت‌ها",
"HeaderActiveRecordings": "ضبط‌های فعال",
"HeaderActiveDevices": "دستگاه‌های فعال",
"HeaderAccessScheduleHelp": "یک زمان‌بندی دسترسی ایجاد کنید تا دسترسی به ساعاتی مشخص محدود شود.",
"HeaderAccessSchedule": "زمان‌بندی دسترسی",
"HandledByProxy": "توسط reverse proxy مدیریت می‌شود",
"HDPrograms": "برنامه‌های HD",
"Filters": "صافی‌ها",
"FileReadError": "خطایی هنگام خواندن فایل رخ داد.",
"FileReadCancelled": "خواندن فایل لغو شد.",
"FileNotFound": "فایل پیدا نشد.",
"File": "فایل",
"FetchingData": "در حال دریافت داده‌های اضافی",
"Features": "برجسته‌ها",
"Favorite": "مورد علاقه",
"FastForward": "سریع جلو",
"Extras": "موارد اضافی",
"ExtraLarge": "فوق العاده بزرگ",
"BoxSet": "جعبه ست",
"Art": "هنر",
"Artist": "هنرمند",
"AllComplexFormats": "تمام فرمت‌های پیچیده (ASS, SSA, VOBSUB, PGS, SUB, IDX)",
"GuideProviderLogin": "ورود",
"Guide": "راهنما",
"GuestStar": "ستاره‌ی مهمان",
"GroupVersions": "نسخه‌های گروه",
"GroupBySeries": "گروه بندی بر اساس سریال‌ها",
"Genre": "ژانر",
"General": "عمومی",
"Fullscreen": "تمام صفحه",
"Friday": "جمعه",
"FormatValue": "قالب‌ها: {0}",
"FolderTypeUnset": "محتواهای مخلوط",
"TabMyPlugins": "افزونه‌های من",
"TabMusic": "موسیقی‌ها",
"TabMovies": "فیلم‌ها",
"TabLogs": "واقعه نگار‌ها",
"TabLiveTV": "تلویزیون زنده",
"LatestFromLibrary": "جدیدترین‌های {0}",
"Large": "بزرگ",
"LabelffmpegPath": "مسیر FFmpeg:",
"LabelZipCode": "کدپستی:",
"LabelYear": "سال:",
"LabelWeb": "وب:",
"LabelVideoResolution": "کیفیت ویدیو:",
"LabelVideo": "ویدیو",
"DashboardArchitecture": "معماری: {0}",
"DashboardOperatingSystem": "سیستم عامل: {0}",
"DashboardServerName": "سرور: {0}",
"DashboardVersionNumber": "نسخه: {0}",
"LabelVersion": "نسخه:",
"LabelValue": "مقدار:",
"LabelVaapiDevice": "دستگاه VA API:",
"LabelUsername": "نام کاربری:",
"LabelUserLibrary": "کتابخانه کاربر:",
"LabelUserAgent": "عامل کاربر:",
"LabelUser": "کاربر:",
"LabelUseNotificationServices": "استفاده از سرویس‌های زیر:",
"LabelTypeText": "متن",
"LabelType": "نوع:",
"LabelKodiMetadataEnablePathSubstitution": "فعال سازی تعویض مسیر",
"LabelKodiMetadataDateFormatHelp": "تمام تاریخ‌های موجود در فایل‌های NFO با استفاده از این قالب تجزیه می‌شوند.",
"LabelKodiMetadataDateFormat": "قالب تاریخ انتشار:",
"LabelKidsCategories": "دسته‌بندی‌های کودکان:",
"OnApplicationStartup": "هنگام شروع برنامه",
"EveryXHours": "هر {0} ساعت",
"EveryHour": "هر ساعت",
"EveryXMinutes": "هر {0} دقیقه",
"OnWakeFromSleep": "هنگام بیداری از خواب",
"WeeklyAt": "{0} در {1}",
"DailyAt": "روزانه در {0}",
"LastSeen": "آخرین بازدید {0}",
"PersonRole": "در نقش {0}",
"ListPaging": "{0}-{1} از {2}",
"Yesterday": "دیروز",
"Yes": "بلی",
"YadifBob": "Yadif Bob",
"Yadif": "Yadif",
"ValueConditions": "شرایط: {0}",
"ValueCodec": "کدک: {0}",
"ValueAudioCodec": "کدک صدا: {0}",
"ValueAlbumCount": "{0} آلبوم",
"Upload": "آپلود",
"Up": "بالا",
"Unrated": "بدون امتیاز",
"Unplayed": "پخش نشده",
"Unmute": "صدادار",
"UninstallPluginHeader": "حذف نصب افزونه",
"UninstallPluginConfirmation": "آیا اطمینان دارید که می‌خواهید {0} را حذف نصب کنید؟",
"Uniform": "یکپارچه",
"Tuesday": "سه‌شنبه",
"Transcoding": "کدگذاری",
"Trailers": "تریلرها",
"Track": "آهنگ",
"TrackCount": "{0} آهنگ",
"TitlePlayback": "پخش",
"TitleHostingSettings": "تنظیمات میزبانی",
"TitleHardwareAcceleration": "تسریع کننده سخت افزاری",
"Thursday": "پنج‌شنبه",
"Thumb": "بندانگشتی",
"ThemeVideos": "تم ویدیوها",
"ThemeSongs": "آهنگ‌های تم",
"TagsValue": "برچسب‌ها: {0}",
"Tags": "برچسب‌ها",
"TabUsers": "کاربران",
"Absolute": "کامل",
"Writer": "نویسنده",
"Whitelist": "لیست سفید",
"Wednesday": "چهارشنبه‌ها",
"Watched": "مشاهده شده",
"ViewPlaybackInfo": "مشاهده اطلاعات پخش",
"ViewArtist": "مشاهده هنرمند",
"ViewAlbum": "مشاهده آلبوم",
"VideoRange": "محدوده ویدیو",
"Vertical": "عمودی",
"ValueVideoCodec": "کدک ویدیو: {0}",
"ValueTimeLimitSingleHour": "محدودیت زمانی: 1 ساعت",
"ValueTimeLimitMultiHour": "محدودیت زمانی: {0} ساعت",
"ValueSongCount": "{0} آهنگ",
"ValueSeriesCount": "{0} سریال",
"ValueSeconds": "{0} ثانیه",
"ValueOneSong": "1 آهنگ",
"ValueOneSeries": "1 سریال",
"ValueOneMusicVideo": "1 موزیک ویدیو",
"ValueOneMovie": "1 فیلم",
"ValueOneEpisode": "1 قسمت",
"ValueOneAlbum": "1 آلبوم",
"ValueMusicVideoCount": "{0} موزیک ویدیو",
"ValueMovieCount": "{0} فیلم",
"ValueMinutes": "{0} دقیقه",
"ValueEpisodeCount": "{0} قسمت",
"ValueDiscNumber": "دیسک {0}",
"LabelImportOnlyFavoriteChannels": "محدود کردن کانال‌هایی که به عنوان مورد علاقه انتخاب شده‌اند",
"LabelDateAdded": "تاریخ اضافه شده:",
"LabelDashboardTheme": "تم داشبورد سرور:",
"LabelCustomRating": "امتیازدهی سفارشی:",
"LabelCustomDeviceDisplayName": "نام نمایشی:",
"LabelCustomCssHelp": "ظاهر سفارشی مورد نظر خود را در رابط وب اعمال کنید.",
"LabelCustomCss": "CSS سفارشی:",
"LabelCriticRating": "امتیاز منتقدان:",
"LabelCorruptedFrames": "فریم‌های خراب شده:",
"LabelImageType": "نوع عکس:",
"LabelIconMaxWidth": "حداکثر عرض آیکن:",
"LabelIconMaxHeight": "حداکثر ارتفاع آیکن:",
"LabelHttpsPort": "شماره پورت HTTPS محلی:",
"LabelHomeNetworkQuality": "کیفیت شبکه خانگی:",
"LabelHardwareAccelerationTypeHelp": "تسریع کننده سخت افزاری نیاز به پیکربندی اضافی دارد.",
"LabelSupportedMediaTypes": "نوع‌ رسانه‌های پشتیبانی شده:",
"LabelSubtitles": "زیرنویس‌ها",
"LabelSubtitlePlaybackMode": "حالت زیرنویس:",
"LabelSubtitleFormatHelp": "مثال: srt",
"LabelSubtitleDownloaders": "دانلود کننده زیرنویس:",
"LabelStreamType": "نوع پخش:",
"LabelStopping": "در حال توقف",
"LabelStopWhenPossible": "هنگامی که ممکن است متوقف شود:",
"LabelStatus": "وضعیت:",
"LabelStartWhenPossible": "هنگامی که ممکن است شروع شود:",
"LabelSportsCategories": "دسته‌بندی‌های ورزشی:",
"LabelSpecialSeasonsDisplayName": "نام نمایشی فصل مخصوص:",
"LabelSource": "منبع:",
"LabelSoundEffects": "جلوه‌های صدا:",
"LabelSortTitle": "مرتب‌سازی عنوان:",
"LabelSortOrder": "ترتیب مرتب‌سازی:",
"LabelSortBy": "مرتب‌سازی بر اساس:",
"LabelSonyAggregationFlags": "پرچم‌های جمع‌آوری سونی:",
"LabelSkipIfGraphicalSubsPresent": "صرف نظر کردن اگر ویدیو پیش از این زیرنویس چسبیده در خود دارد"
} }

View file

@ -164,7 +164,7 @@
"ButtonOff": "Pois päältä", "ButtonOff": "Pois päältä",
"ButtonOk": "Ok", "ButtonOk": "Ok",
"ButtonOpen": "Avoin", "ButtonOpen": "Avoin",
"BurnSubtitlesHelp": "Määrittää jos palvelimen pitäisi upottaa tekstitykset suoraan videotiedostoon muuntamisvaiheessa tekstitysformaatista riippuen. Upottamisen välttäminen parantaa palvelimen suorituskykyä. Valitse Automaattinen upottaaksesi sekä kuvapohjaiset- (esim. VOBSUB, PGS, SUB/IDX, jne.) että ASS/SSA tekstitysmuodot", "BurnSubtitlesHelp": "Määrittää mikäli palvelimen pitäisi polttaa tekstitykset suoraan videoon muunnoksen aikana riippuen tekstitysten formaatista. Tekstitysten polttamisen välttäminen parantaa palvelimen suorituskykyä. Valitse Automaattinen polttaaksesi sekä kuva- (esim. VOBSUB, PGS, SUB/IDX, jne.) että tekstipohjaiset (ASS/SSA) formaatit.",
"ButtonParentalControl": "Lapsilukko", "ButtonParentalControl": "Lapsilukko",
"ButtonPause": "Tauko", "ButtonPause": "Tauko",
"ButtonPlay": "Toista", "ButtonPlay": "Toista",
@ -267,7 +267,7 @@
"ButtonAddImage": "Lisää kuva", "ButtonAddImage": "Lisää kuva",
"Movies": "Elokuvat", "Movies": "Elokuvat",
"HeaderNextUp": "Seuraavaksi", "HeaderNextUp": "Seuraavaksi",
"HeaderLiveTV": "TV-lähetykset", "HeaderLiveTV": "Suorat lähetykset",
"HeaderFavoriteSongs": "Lempikappaleet", "HeaderFavoriteSongs": "Lempikappaleet",
"HeaderFavoriteShows": "Lempisarjat", "HeaderFavoriteShows": "Lempisarjat",
"HeaderFavoriteEpisodes": "Lempijaksot", "HeaderFavoriteEpisodes": "Lempijaksot",
@ -319,5 +319,7 @@
"ErrorAddingXmlTvFile": "XMLTV-tiedostoa käyttäessä tapahtui virhe. Varmista, että tiedosto on olemassa ja kokeile uudestaan.", "ErrorAddingXmlTvFile": "XMLTV-tiedostoa käyttäessä tapahtui virhe. Varmista, että tiedosto on olemassa ja kokeile uudestaan.",
"ErrorAddingTunerDevice": "Viritintä lisätessä ilmeni ongelma. Varmista, että se on kytketty oikein ja kokeile uudestaan.", "ErrorAddingTunerDevice": "Viritintä lisätessä ilmeni ongelma. Varmista, että se on kytketty oikein ja kokeile uudestaan.",
"EnableThemeVideosHelp": "Soita tunnusvideoita taustalla, selatessasi kirjastoa.", "EnableThemeVideosHelp": "Soita tunnusvideoita taustalla, selatessasi kirjastoa.",
"EnableThemeVideos": "Teeman videot" "EnableThemeVideos": "Teeman videot",
"AlbumArtist": "Albumin Artisti",
"Album": "Albumi"
} }

View file

@ -1495,8 +1495,10 @@
"ListPaging": "{0}-{1} de {2}", "ListPaging": "{0}-{1} de {2}",
"WriteAccessRequired": "Le serveur Jellyfin a besoin d'un accès en écriture à ce dossier. Merci de vérifier laccès en écriture et réessayez.", "WriteAccessRequired": "Le serveur Jellyfin a besoin d'un accès en écriture à ce dossier. Merci de vérifier laccès en écriture et réessayez.",
"PathNotFound": "Le chemin d'accès n'a pas pu être trouvé. Merci de le vérifier et de réessayer.", "PathNotFound": "Le chemin d'accès n'a pas pu être trouvé. Merci de le vérifier et de réessayer.",
"YadifBob": "Yadif Bob", "YadifBob": "YADIF Bob",
"Yadif": "Yadif", "Yadif": "YADIF",
"LabelDeinterlaceMethod": "Méthode de désentrelacement :", "LabelDeinterlaceMethod": "Méthode de désentrelacement :",
"DeinterlaceMethodHelp": "Sélectionnes la méthode de désentrelacement à utiliser lors du transcodage de contenu entrelacé." "DeinterlaceMethodHelp": "Sélectionnes la méthode de désentrelacement à utiliser lors du transcodage de contenu entrelacé.",
"LabelLibraryPageSize": "Taille de la page de la médiathèque :",
"LabelLibraryPageSizeHelp": "Définit la quantité d'éléments à afficher sur une page de médiathèque. Définir à 0 afin de désactiver la pagination."
} }

View file

@ -786,7 +786,7 @@
"MediaInfoCodecTag": "Kódek címke", "MediaInfoCodecTag": "Kódek címke",
"Photos": "Fényképek", "Photos": "Fényképek",
"Playlists": "Lejátszási listák", "Playlists": "Lejátszási listák",
"Shows": "Műsorok", "Shows": "Sorozatok",
"Songs": "Dalok", "Songs": "Dalok",
"ValueSpecialEpisodeName": "Special - {0}", "ValueSpecialEpisodeName": "Special - {0}",
"EnableThemeVideos": "Videók témák", "EnableThemeVideos": "Videók témák",

View file

@ -461,7 +461,7 @@
"Images": "Immagini", "Images": "Immagini",
"ImportFavoriteChannelsHelp": "Se abilitata, solo i canali che sono contrassegnati come preferiti sul dispositivo di sintonizzazione verranno importati.", "ImportFavoriteChannelsHelp": "Se abilitata, solo i canali che sono contrassegnati come preferiti sul dispositivo di sintonizzazione verranno importati.",
"ImportMissingEpisodesHelp": "Se abilitato, le informazioni relative agli episodi mancanti saranno importate nel database di Jellyfin e mostrate all'interno di Serie e Stagioni. Questo può causare scansioni della libreria più lente.", "ImportMissingEpisodesHelp": "Se abilitato, le informazioni relative agli episodi mancanti saranno importate nel database di Jellyfin e mostrate all'interno di Serie e Stagioni. Questo può causare scansioni della libreria più lente.",
"InstallingPackage": "Installazione di {0}", "InstallingPackage": "Installazione di {0} (versione {1})",
"InstantMix": "Mix istantaneo", "InstantMix": "Mix istantaneo",
"ItemCount": "{0} elementi", "ItemCount": "{0} elementi",
"Items": "Elementi", "Items": "Elementi",
@ -1035,9 +1035,9 @@
"OptionWeekly": "Settimanale", "OptionWeekly": "Settimanale",
"OriginalAirDateValue": "Prima messa in onda (originale): {0}", "OriginalAirDateValue": "Prima messa in onda (originale): {0}",
"Overview": "Trama", "Overview": "Trama",
"PackageInstallCancelled": "Installazione di {0} annullata.", "PackageInstallCancelled": "Installazione di {0} (versione {1}) annullata.",
"PackageInstallCompleted": "Installazione di {0} completa.", "PackageInstallCompleted": "Installazione di {0} (versione {1}) completata.",
"PackageInstallFailed": "Installazione di {0} fallita.", "PackageInstallFailed": "Installazione di {0} (versione {1}) fallita.",
"ParentalRating": "Classificazione per genitori", "ParentalRating": "Classificazione per genitori",
"PasswordMatchError": "Le password non coincidono.", "PasswordMatchError": "Le password non coincidono.",
"PasswordResetComplete": "la password è stata ripristinata.", "PasswordResetComplete": "la password è stata ripristinata.",
@ -1457,7 +1457,7 @@
"CopyStreamURLError": "Si è verificato un errore nel copiare l'indirizzo.", "CopyStreamURLError": "Si è verificato un errore nel copiare l'indirizzo.",
"EnableFastImageFadeInHelp": "Abilita la dissolvenza veloce per le immagini caricate", "EnableFastImageFadeInHelp": "Abilita la dissolvenza veloce per le immagini caricate",
"EnableFastImageFadeIn": "Dissolvenza immagine veloce", "EnableFastImageFadeIn": "Dissolvenza immagine veloce",
"PlaybackErrorNoCompatibleStream": "C'era un problema con il profiling del client e il server non sta inviando un formato compatibile.", "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)", "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}", "NoCreatedLibraries": "Sembra che tu non abbia ancora creato delle librerie. {0}Vuoi crearne una adesso?{1}",
"LabelVideoResolution": "Risoluzione video:", "LabelVideoResolution": "Risoluzione video:",
@ -1471,5 +1471,31 @@
"PreferEmbeddedEpisodeInfosOverFileNames": "Preferisci le informazioni incorporate nell'episodio rispetto ai nomi dei file", "PreferEmbeddedEpisodeInfosOverFileNames": "Preferisci le informazioni incorporate nell'episodio rispetto ai nomi dei file",
"PreferEmbeddedEpisodeInfosOverFileNamesHelp": "Questo utilizza le informazioni dell'episodio provenienti dai metadata incorporati, se disponibili.", "PreferEmbeddedEpisodeInfosOverFileNamesHelp": "Questo utilizza le informazioni dell'episodio provenienti dai metadata incorporati, se disponibili.",
"ClientSettings": "Impostazioni del client", "ClientSettings": "Impostazioni del client",
"Album": "Album" "Album": "Album",
"OnWakeFromSleep": "Al risveglio",
"Person": "Persona",
"LabelDeinterlaceMethod": "Metodo di deinterlacciamento:",
"DeinterlaceMethodHelp": "Metodo di deinterlacciamento da usare durante la transcodifica.",
"Artist": "Artista",
"OnApplicationStartup": "All'avvio",
"EveryXHours": "Ogni {0} ore",
"EveryHour": "Ogni ora",
"EveryXMinutes": "Ogni {0} minuti",
"WeeklyAt": "Tutti i {0} alle {1}",
"DailyAt": "Tutti i giorni alle {0}",
"LastSeen": "Visto l'ultima volta {0}",
"PersonRole": "nel ruolo di {0}",
"ListPaging": "{0}-{1} di {2}",
"WriteAccessRequired": "Jellyfin Server richiede il permesso di scrittura su questa cartella. Verificare l'autorizzazione e riprovare.",
"PathNotFound": "Percorso non trovato. Assicurarsi che sia valido e riprovare.",
"YadifBob": "Yadif Bob",
"Yadif": "Yadif",
"Track": "Traccia",
"Season": "Stagione",
"OtherArtist": "Altri Artisti",
"Movie": "Film",
"LabelLibraryPageSizeHelp": "Numero di elementi presenti nella paginazione della libreria. Il valore 0 disabilita la paginazione.",
"LabelLibraryPageSize": "Elementi nella paginazione della libreria:",
"Episode": "Episodio",
"BoxSet": "Cofanetto"
} }

101
src/strings/mr.json Normal file
View file

@ -0,0 +1,101 @@
{
"ButtonOpen": "उघडा",
"ButtonOk": "ऑन",
"ButtonOff": "ऑफ",
"ButtonNextTrack": "पुढचा ट्रॅक",
"ButtonNew": "नवीन",
"ButtonNetwork": "नेटवर्क",
"ButtonMore": "अजून",
"ButtonLearnMore": "अधिक माहिती",
"ButtonInfo": "माहिती",
"ButtonHelp": "मदत",
"ButtonGuide": "गाईड",
"ButtonGotIt": "समजले",
"ButtonForgotPassword": "पासवर्ड विसरलो",
"ButtonEditImages": "चित्र संपादित करा",
"ButtonEdit": "संपादित करा",
"ButtonDownload": "डाउनलोड करा",
"ButtonDown": "खाली",
"ButtonDeleteImage": "चित्र काढून टाका",
"ButtonDelete": "काढून टाका",
"ButtonChangeServer": "सर्व्हर बदला",
"ButtonCancel": "रद्द करा",
"ButtonBack": "मागे",
"ButtonAudioTracks": "ऑडिओ ट्रॅक",
"ButtonArrowUp": "वर",
"ButtonArrowRight": "उजवीकडे",
"ButtonArrowLeft": "डावीकडे",
"ButtonArrowDown": "खाली",
"ButtonAddUser": "प्रयोक्ता जोडा",
"ButtonAddServer": "सर्व्हर जोडा",
"ButtonAdd": "जोडा",
"Books": "पुस्तकं",
"Blacklist": "ब्लॅकलिस्ट",
"BirthPlaceValue": "जन्म ठिकाण: {0}",
"BirthLocation": "जन्मस्थान",
"BirthDateValue": "जन्म: {0}",
"Backdrops": "पार्श्वभूमी",
"Backdrop": "पार्श्वभूमी",
"Auto": "आपोआप",
"Audio": "ऑडिओ",
"AttributeNew": "नवीन",
"AspectRatio": "अ‍ॅस्पेक्ट रेशो",
"AsManyAsPossible": "जमतील तितके",
"Artists": "संगीतकार",
"Artist": "संगीतकार",
"Anytime": "कधीही",
"AnyLanguage": "कोणतीही भाषा",
"AlwaysPlaySubtitles": "नेहमीच प्ले करा",
"AllLibraries": "सर्व संग्रहालय",
"AllLanguages": "सर्व भाषा",
"AllEpisodes": "सर्व भाग",
"AllChannels": "सर्व वाहिन्या",
"All": "सर्व",
"Albums": "अल्बम",
"AlbumArtist": "अल्बम संगीतकार",
"Album": "अल्बम",
"AddedOnValue": "{0} जोडले",
"Add": "जोडा",
"Actor": "अभिनेता",
"EnableBackdrops": "पार्श्वभूमी",
"EditSubtitles": "सबटायटल संपादित करा",
"EditMetadata": "मेटाडेटा संपादित करा",
"EditImages": "चित्र संपादित करा",
"Edit": "संपादित करा",
"DrmChannelsNotImported": "डी.आर.एम. असलेल्या वाहिन्या आयात केल्या जाणार नाहीत.",
"DownloadsValue": "{0} डाउनलोड",
"Download": "डाउनलोड",
"Down": "खाली",
"DoNotRecord": "रेकॉर्ड करू नका",
"Directors": "दिग्दर्शक",
"Director": "दिग्दर्शक",
"Desktop": "डेस्कटॉप",
"DeleteImageConfirmation": "तुम्हाला नक्की हे चित्र काढून टाकायचे आहे का?",
"Delete": "काढून टाका",
"DeleteImage": "चित्र काढून टाका",
"ConfirmEndPlayerSession": "{0} येथील जेलिफिन बंद करावे का?",
"Composer": "संगीत दिग्दर्शक",
"Channels": "वाहिन्या",
"ChannelNumber": "वाहिनी क्रमांक",
"Categories": "वर्ग",
"CancelRecording": "रेकॉर्डिंग रद्द करा",
"ButtonWebsite": "संकेतस्थळ",
"ButtonViewWebsite": "संकेतस्थळ पाहा",
"ButtonUp": "वर",
"ButtonTrailer": "ट्रेलर",
"ButtonSubtitles": "सबटायटल",
"ButtonStop": "थांबा",
"ButtonStart": "सुरू करा",
"ButtonSettings": "सेटिंग्झ",
"ButtonSend": "पाठवा",
"ButtonSelectView": "दृष्य निवडा",
"ButtonSelectServer": "सर्व्हर निवडा",
"ButtonSelectDirectory": "डिरेक्टरी निवडा",
"ButtonSearch": "शोधा",
"ButtonScanAllLibraries": "सर्व संग्रहालय स्कॅन करा",
"ButtonRename": "नाव बदला",
"ButtonRemove": "काढून टाका",
"ButtonPreviousTrack": "मागचा ट्रॅक",
"ButtonPlay": "प्ले",
"ButtonPause": "पॉझ"
}

View file

@ -1469,8 +1469,8 @@
"PlaybackErrorNoCompatibleStream": "Tento klient nie je kompatibilný s médiom a server neposiela kompatibilný mediálny formát.", "PlaybackErrorNoCompatibleStream": "Tento klient nie je kompatibilný s médiom a server neposiela kompatibilný mediálny formát.",
"AllowFfmpegThrottlingHelp": "Keď sa transkódovanie alebo remuxovanie dostane do bodu, kedy je dostatočne vopred voči súčasnej polohe prehrávania, pozastaví proces aby spotrebovával menej zdrojov. Toto je najviac užitočné, keď sa pozerá obsah bez pretáčania. Vypnite túto možnosť, pokiaľ má vaše prehrávanie problémy.", "AllowFfmpegThrottlingHelp": "Keď sa transkódovanie alebo remuxovanie dostane do bodu, kedy je dostatočne vopred voči súčasnej polohe prehrávania, pozastaví proces aby spotrebovával menej zdrojov. Toto je najviac užitočné, keď sa pozerá obsah bez pretáčania. Vypnite túto možnosť, pokiaľ má vaše prehrávanie problémy.",
"AllowFfmpegThrottling": "Obmedzenie transkódovania", "AllowFfmpegThrottling": "Obmedzenie transkódovania",
"PreferEmbeddedEpisodeInfosOverFileNames": "Preferovať vložené informácie o epizóde pred názvom súboru", "PreferEmbeddedEpisodeInfosOverFileNames": "Preferovať vložen[ informáciu o epizóde pred názvom súboru",
"PreferEmbeddedEpisodeInfosOverFileNamesHelp": "Toto využíva informácie o epizóde z vložených metadát, pokiaľ sú dostupne.", "PreferEmbeddedEpisodeInfosOverFileNamesHelp": "Toto využíva informáciu o epizóde z vložených metadát, pokiaľ sú dostupne.",
"ClientSettings": "Nastavenie klienta", "ClientSettings": "Nastavenie klienta",
"Album": "Album", "Album": "Album",
"DeinterlaceMethodHelp": "Vyberte metódu odstránenia prekladania obrazu videa pri transkódovaní prekladaného obsahu.", "DeinterlaceMethodHelp": "Vyberte metódu odstránenia prekladania obrazu videa pri transkódovaní prekladaného obsahu.",
@ -1486,8 +1486,8 @@
"ListPaging": "{0}-{1} z {2}", "ListPaging": "{0}-{1} z {2}",
"WriteAccessRequired": "Jellyfin Server vyžaduje práva na zapisovanie do tohoto priečinku. Prosím, uistite sa že má práva na zapisovanie a skúste to znova.", "WriteAccessRequired": "Jellyfin Server vyžaduje práva na zapisovanie do tohoto priečinku. Prosím, uistite sa že má práva na zapisovanie a skúste to znova.",
"PathNotFound": "Táto cesta nebola nájdená. Prosím, uistite sa že cesta je správna a skúste to znovu.", "PathNotFound": "Táto cesta nebola nájdená. Prosím, uistite sa že cesta je správna a skúste to znovu.",
"YadifBob": "Yadif Bob", "YadifBob": "YADIF Bob",
"Yadif": "Yadif", "Yadif": "YADIF",
"Track": "Stopa", "Track": "Stopa",
"Season": "Séria", "Season": "Séria",
"ReleaseGroup": "Vydavateľ", "ReleaseGroup": "Vydavateľ",
@ -1498,5 +1498,7 @@
"Episode": "Epizóda", "Episode": "Epizóda",
"BoxSet": "Box Set", "BoxSet": "Box Set",
"Artist": "Umelec", "Artist": "Umelec",
"AlbumArtist": "Umelec albumu" "AlbumArtist": "Umelec albumu",
"LabelLibraryPageSizeHelp": "Určuje množstvo položiek na zobrazenie na stránke knižnice. Nastavte 0 pre vypnutie stránkovania.",
"LabelLibraryPageSize": "Veľkosť stránky knižnice:"
} }

View file

@ -36,7 +36,7 @@
"ButtonOpen": "Отвори", "ButtonOpen": "Отвори",
"ButtonOk": "Ок", "ButtonOk": "Ок",
"ButtonOff": "Искључи", "ButtonOff": "Искључи",
"ButtonNextTrack": "Следећа трака", "ButtonNextTrack": "Следећа нумера",
"ButtonNew": "Ново", "ButtonNew": "Ново",
"ButtonNetwork": "Мрежа", "ButtonNetwork": "Мрежа",
"ButtonMore": "Више", "ButtonMore": "Више",
@ -51,7 +51,7 @@
"ButtonFullscreen": "Пун екран", "ButtonFullscreen": "Пун екран",
"ButtonForgotPassword": "Заборављена шифра", "ButtonForgotPassword": "Заборављена шифра",
"ButtonFilter": "Филтер", "ButtonFilter": "Филтер",
"ButtonDownload": "Скини (даунлоадуј)", "ButtonDownload": "Преузми",
"ButtonDown": "Доле", "ButtonDown": "Доле",
"ButtonDeleteImage": "Обриши слику", "ButtonDeleteImage": "Обриши слику",
"ButtonDelete": "Обриши", "ButtonDelete": "Обриши",
@ -75,7 +75,7 @@
"BoxRear": "Омот (позади)", "BoxRear": "Омот (позади)",
"Box": "Омот", "Box": "Омот",
"Blacklist": "Црна листа", "Blacklist": "Црна листа",
"BirthPlaceValue": "Место рођења", "BirthPlaceValue": "Место рођења: {0}",
"BirthLocation": "Место рођења", "BirthLocation": "Место рођења",
"BirthDateValue": "Рођен", "BirthDateValue": "Рођен",
"AutoBasedOnLanguageSetting": "Аутоматски (зависи од подешавања језика)", "AutoBasedOnLanguageSetting": "Аутоматски (зависи од подешавања језика)",
@ -96,5 +96,103 @@
"All": "Све", "All": "Све",
"Alerts": "Упозорења", "Alerts": "Упозорења",
"Aired": "Емитовано", "Aired": "Емитовано",
"Absolute": "Апсолутно" "Absolute": "Апсолутно",
"Default": "Уобичајено",
"DeathDateValue": "Преминуо: {0}",
"DatePlayed": "Датум емитовања",
"DateAdded": "Датум додавања",
"CustomDlnaProfilesHelp": "Направите прилагођени профил да бисте циљали на нови уређај или прегазили системски профил.",
"CriticRating": "Оцена критике",
"CopyStreamURLError": "Десила се грешка приликом копирања адресе.",
"CopyStreamURLSuccess": "Адреса копирана успешно.",
"CopyStreamURL": "Копирајте адресу стрим-а",
"Continuing": "Наставља",
"ContinueWatching": "Натавите гледање",
"Connect": "Повежи",
"ConfirmEndPlayerSession": "Да ли желите да искључите Јеллифин {0}?",
"ConfirmDeletion": "ПОтврдите брисање",
"ConfirmDeleteItems": "Брисањем ових ставки избрисаћете их и из система и из ваше библиотеке медија. Јесте ли сигурни да желите да наставите?",
"ConfirmDeleteItem": "Брисањем ове ставке избрисаћете је и из система и из ваше библиотеке медија. Јесте ли сигурни да желите да наставите?",
"ConfirmDeleteImage": "Обришите слику?",
"ConfigureDateAdded": "Конфигуришите како се датум додавања одређује на контролној табли Јеллифин Сервер-а под Подешавања библиотеке",
"Composer": "Композитор",
"CommunityRating": "Рејтинг заједнице",
"ColorTransfer": "Промена боја",
"ColorSpace": "Простор боја",
"ColorPrimaries": "Основне боје",
"ClientSettings": "Подешавања клијента",
"CinemaModeConfigurationHelp": "Режим биоскопа доноси позоришно искуство директно у вашу дневну собу са могућношћу приказинвања трејлера и прилагођених увода пре главне проекције.",
"ChannelNumber": "Број канала",
"ChannelNameOnly": "Само {0} канал",
"ChannelAccessHelp": "Изаберите канале које желите да делите са овим корисником. Администратори ће моћи да уређују све канале помоћу менаџера метаподатака.",
"ChangingMetadataImageSettingsNewContent": "Промене метаподатака или поставки преузимања уметничког дела примењују се само на нови садржај додат у вашу библиотеку. Да бисте применили промене на постојеће наслове, мора ћете ручно освежити њихове метаподатке.",
"Categories": "Категорије",
"CancelSeries": "Откажи серију",
"CancelRecording": "Откажи снимање",
"ButtonWebsite": "Веб сајт",
"ButtonViewWebsite": "Погледајте веб сајт",
"ButtonUp": "Горе",
"ButtonUninstall": "Деинсталирај",
"ButtonTrailer": "Трејлер",
"ButtonSubtitles": "Титлови",
"ButtonSubmit": "Пошаљите",
"ButtonSplit": "Подели",
"ButtonStop": "Заустави",
"ButtonStart": "Почни",
"ButtonSort": "Сортирај",
"ButtonSignOut": "Одјавите се",
"ButtonSignIn": "Пријавите се",
"ButtonShutdown": "Искључи",
"ButtonShuffle": "Промешај",
"ButtonSettings": "Подешавања",
"ButtonSend": "Пошаљи",
"ButtonSelectView": "Изаберите приказ",
"ButtonSelectServer": "Иѕаберите сервер",
"ButtonSelectDirectory": "Изаберите Директоријум",
"ButtonSearch": "Тражи",
"ButtonScanAllLibraries": "Скенирај све библиотеке",
"ButtonSave": "Сачувај",
"ButtonRevoke": "Опозови",
"ButtonResume": "Настави",
"ButtonRestart": "Покрени поново",
"ButtonResetPassword": "Ресетуј шифру",
"ButtonResetEasyPassword": "Ресетујте једноставан ПИН код",
"ButtonRepeat": "Пусти поново",
"ButtonRename": "Преименуј",
"ButtonRemove": "Уклони",
"ButtonRefreshGuideData": "Освежи податке водича",
"ButtonRefresh": "Освежи",
"ButtonQuickStartGuide": "Кратки водич за почетак",
"ButtonProfile": "Профил",
"ButtonPreviousTrack": "Претходна нумера",
"ButtonPlay": "Пусти",
"ButtonEditOtherUserPreferences": "Уредите профил корисника, слику и личне поставке.",
"ButtonEditImages": "Уреди слике",
"ButtonEdit": "Уреди",
"BurnSubtitlesHelp": "Одређује да ли сервер треба да кодира титлове приликом транскодирања видео записа. Избегавање тога увелико ће побољшати перформансе. Изаберите Аутоматски да бисте снимили формате засноване на слици (VOBSUB, PGS, SUB, IDX) и одређене ASS или SSA титлове.",
"BoxSet": "Бокс сет",
"BookLibraryHelp": "Подржани су аудио и текстуалне књиге. Прегледајте {0} водич за именовање књига {1}.",
"Banner": "Банер",
"Backdrops": "Позадине",
"Backdrop": "Позадина",
"Auto": "Ауто",
"AuthProviderHelp": "Изаберите провајдера аутентификације који ће се користити за аутентификацију лозинке овог корисника.",
"AspectRatio": "Однос страна",
"AskAdminToCreateLibrary": "Затражите од администратора да креира библиотеку.",
"Ascending": "Узлазни",
"AsManyAsPossible": "Што је више могуће",
"Artist": "Уметник",
"Art": "Уметност",
"Anytime": "Било када",
"AlwaysPlaySubtitlesHelp": "Титлови који одговарају језичким преференцијама учитават ће се без обзира на језик звука.",
"AllowedRemoteAddressesHelp": "Листа одвојена зарезима ИП адреса или уноса ИП / мрежне маске за мреже којима ће се омогућити даљинско повезивање. Ако је празно, све удаљене адресе ће бити дозвољене.",
"AllowRemoteAccessHelp": "Ако није укључено, све удаљене везе биће блокиране.",
"AllowFfmpegThrottlingHelp": "Кад се транскодовање довољно удаљи од тренутне позиције репродукције, паузирајте поступак тако да троши мање ресурса. Ово је најкорисније када се гледа без тражења. Искључите ово ако имате проблема са репродукцијом.",
"AllowFfmpegThrottling": "Регулише Транскодовање",
"AllowOnTheFlySubtitleExtractionHelp": "Уграђени титлови се могу издвојити из видео записа и доставити клијентима у обичном тексту како би се спречило транскодирање видео записа. У неким системима ово може дуго трајати и може проузроковати да се репродукција видео записа заустави током екстракције. Онемогућите ово да се уграђени титлови уграђују видео транскодирањем када их клијент не подржава.",
"AllComplexFormats": "Сви сложени формати (ASS, SSA, VOBSUB, PGS, SUB, IDX)",
"AlbumArtist": "Извођач албума",
"Album": "Албум",
"AirDate": "Премијера",
"AdditionalNotificationServices": "Прегледајте каталог додатака да бисте инсталирали сервисе за обавештења."
} }

1
src/strings/ur_PK.json Normal file
View file

@ -0,0 +1 @@
{}

View file

@ -1499,8 +1499,10 @@
"EveryXMinutes": "每 {0} 分钟", "EveryXMinutes": "每 {0} 分钟",
"WriteAccessRequired": "Jellyfin 服务端需要此文件夹的写入权限。请确认是否拥有写入权限并重试。", "WriteAccessRequired": "Jellyfin 服务端需要此文件夹的写入权限。请确认是否拥有写入权限并重试。",
"PathNotFound": "无法找到此路径。请确认路径有效并重试。", "PathNotFound": "无法找到此路径。请确认路径有效并重试。",
"YadifBob": "Yadif Bob", "YadifBob": "YADIF Bob",
"Yadif": "Yadif", "Yadif": "YADIF",
"LabelDeinterlaceMethod": "反交错方法:", "LabelDeinterlaceMethod": "反交错方法:",
"DeinterlaceMethodHelp": "选择对隔行扫描内容进行转码时所用的反交错方法。" "DeinterlaceMethodHelp": "选择对隔行扫描内容进行转码时所用的反交错方法。",
"LabelLibraryPageSize": "媒体库分页阈值:",
"LabelLibraryPageSizeHelp": "设置媒体库页面每页要显示的最多媒体个数。设置为 0 以禁用分页。"
} }

View file

@ -1,6 +1,5 @@
const path = require("path"); const path = require("path");
const { CleanWebpackPlugin } = require("clean-webpack-plugin");
const CopyPlugin = require("copy-webpack-plugin"); const CopyPlugin = require("copy-webpack-plugin");
const Assets = [ const Assets = [

View file

@ -9,6 +9,7 @@ module.exports = merge(common, {
path: path.resolve(__dirname, "dist"), path: path.resolve(__dirname, "dist"),
libraryTarget: "amd-require" libraryTarget: "amd-require"
}, },
devtool: '#inline-source-map',
module: { module: {
rules: [ rules: [
{ {

View file

@ -1,4 +1,3 @@
const path = require("path");
const common = require("./webpack.common"); const common = require("./webpack.common");
const merge = require("webpack-merge"); const merge = require("webpack-merge");

View file

@ -710,7 +710,7 @@
"@babel/types" "^7.4.4" "@babel/types" "^7.4.4"
esutils "^2.0.2" esutils "^2.0.2"
"@babel/runtime@^7.8.4", "@babel/runtime@^7.8.7": "@babel/runtime@^7.7.7", "@babel/runtime@^7.8.4", "@babel/runtime@^7.8.7":
version "7.9.2" version "7.9.2"
resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.9.2.tgz#d90df0583a3a252f09aaa619665367bae518db06" resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.9.2.tgz#d90df0583a3a252f09aaa619665367bae518db06"
integrity sha512-NE2DtOdufG7R5vnfQUTehdTfNycfUANEtCa9PssN9O/xmTzP4E08UI797ixaei6hBEVL9BI/PsdJS5x7mWoB9Q== integrity sha512-NE2DtOdufG7R5vnfQUTehdTfNycfUANEtCa9PssN9O/xmTzP4E08UI797ixaei6hBEVL9BI/PsdJS5x7mWoB9Q==
@ -1471,6 +1471,11 @@ assign-symbols@^1.0.0:
resolved "https://registry.yarnpkg.com/assign-symbols/-/assign-symbols-1.0.0.tgz#59667f41fadd4f20ccbc2bb96b8d4f7f78ec0367" resolved "https://registry.yarnpkg.com/assign-symbols/-/assign-symbols-1.0.0.tgz#59667f41fadd4f20ccbc2bb96b8d4f7f78ec0367"
integrity sha1-WWZ/QfrdTyDMvCu5a41Pf3jsA2c= integrity sha1-WWZ/QfrdTyDMvCu5a41Pf3jsA2c=
ast-metadata-inferer@^0.1.1:
version "0.1.1"
resolved "https://registry.yarnpkg.com/ast-metadata-inferer/-/ast-metadata-inferer-0.1.1.tgz#66e24fae9d30ca961fac4880b7fc466f09b25165"
integrity sha512-hc9w8Qrgg9Lf9iFcZVhNjUnhrd2BBpTlyCnegPVvCe6O0yMrF57a6Cmh7k+xUsfUOMh9wajOL5AsGOBNEyTCcw==
astral-regex@^1.0.0: astral-regex@^1.0.0:
version "1.0.0" version "1.0.0"
resolved "https://registry.yarnpkg.com/astral-regex/-/astral-regex-1.0.0.tgz#6c8c3fb827dd43ee3918f27b82782ab7658a6fd9" resolved "https://registry.yarnpkg.com/astral-regex/-/astral-regex-1.0.0.tgz#6c8c3fb827dd43ee3918f27b82782ab7658a6fd9"
@ -1965,6 +1970,16 @@ browserslist@^4.0.0, browserslist@^4.11.0, browserslist@^4.6.4, browserslist@^4.
node-releases "^1.1.52" node-releases "^1.1.52"
pkg-up "^3.1.0" pkg-up "^3.1.0"
browserslist@^4.8.2:
version "4.11.1"
resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-4.11.1.tgz#92f855ee88d6e050e7e7311d987992014f1a1f1b"
integrity sha512-DCTr3kDrKEYNw6Jb9HFxVLQNaue8z+0ZfRBRjmCunKDEXEBajKDj2Y+Uelg+Pi29OnvaSGwjOsnRyNEkXzHg5g==
dependencies:
caniuse-lite "^1.0.30001038"
electron-to-chromium "^1.3.390"
node-releases "^1.1.53"
pkg-up "^2.0.0"
bs-recipes@1.3.4: bs-recipes@1.3.4:
version "1.3.4" version "1.3.4"
resolved "https://registry.yarnpkg.com/bs-recipes/-/bs-recipes-1.3.4.tgz#0d2d4d48a718c8c044769fdc4f89592dc8b69585" resolved "https://registry.yarnpkg.com/bs-recipes/-/bs-recipes-1.3.4.tgz#0d2d4d48a718c8c044769fdc4f89592dc8b69585"
@ -2210,11 +2225,21 @@ caniuse-db@^1.0.30000639:
resolved "https://registry.yarnpkg.com/caniuse-db/-/caniuse-db-1.0.30001036.tgz#8761fb6cd423ef2d3f8d96a21d898932252dc477" resolved "https://registry.yarnpkg.com/caniuse-db/-/caniuse-db-1.0.30001036.tgz#8761fb6cd423ef2d3f8d96a21d898932252dc477"
integrity sha512-plRkihXQyiDaFUXC7x/jAIXXTKiiaWvfAagsruh/vmstnRQ+a2a95HyENxiTr5WrkPSvmFUIvsRUalVFyeh2/w== integrity sha512-plRkihXQyiDaFUXC7x/jAIXXTKiiaWvfAagsruh/vmstnRQ+a2a95HyENxiTr5WrkPSvmFUIvsRUalVFyeh2/w==
caniuse-db@^1.0.30001017:
version "1.0.30001039"
resolved "https://registry.yarnpkg.com/caniuse-db/-/caniuse-db-1.0.30001039.tgz#b5e8c3bb07a144341644729fa2a5eb2c0deaf47d"
integrity sha512-XVk5KMAi8/DI28tQXKuq1PDyuPoD9Ypnda3ctF04TlB+LYIb+bgHq0ZDfNOn0+4cwLENJC0093Vuf0dhkjXQ7Q==
caniuse-lite@^1.0.0, caniuse-lite@^1.0.30000981, caniuse-lite@^1.0.30001035, caniuse-lite@^1.0.30001036: caniuse-lite@^1.0.0, caniuse-lite@^1.0.30000981, caniuse-lite@^1.0.30001035, caniuse-lite@^1.0.30001036:
version "1.0.30001036" version "1.0.30001036"
resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001036.tgz#930ea5272010d8bf190d859159d757c0b398caf0" resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001036.tgz#930ea5272010d8bf190d859159d757c0b398caf0"
integrity sha512-jU8CIFIj2oR7r4W+5AKcsvWNVIb6Q6OZE3UsrXrZBHFtreT4YgTeOJtTucp+zSedEpTi3L5wASSP0LYIE3if6w== integrity sha512-jU8CIFIj2oR7r4W+5AKcsvWNVIb6Q6OZE3UsrXrZBHFtreT4YgTeOJtTucp+zSedEpTi3L5wASSP0LYIE3if6w==
caniuse-lite@^1.0.30001038:
version "1.0.30001039"
resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001039.tgz#b3814a1c38ffeb23567f8323500c09526a577bbe"
integrity sha512-SezbWCTT34eyFoWHgx8UWso7YtvtM7oosmFoXbCkdC6qJzRfBTeTgE9REtKtiuKXuMwWTZEvdnFNGAyVMorv8Q==
caseless@~0.12.0: caseless@~0.12.0:
version "0.12.0" version "0.12.0"
resolved "https://registry.yarnpkg.com/caseless/-/caseless-0.12.0.tgz#1b681c21ff84033c826543090689420d187151dc" resolved "https://registry.yarnpkg.com/caseless/-/caseless-0.12.0.tgz#1b681c21ff84033c826543090689420d187151dc"
@ -3637,6 +3662,11 @@ electron-to-chromium@^1.2.7, electron-to-chromium@^1.3.380:
resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.3.382.tgz#cad02da655c33f7a3d6ca7525bd35c17e90f3a8f" resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.3.382.tgz#cad02da655c33f7a3d6ca7525bd35c17e90f3a8f"
integrity sha512-gJfxOcgnBlXhfnUUObsq3n3ReU8CT6S8je97HndYRkKsNZMJJ38zO/pI5aqO7L3Myfq+E3pqPyKK/ynyLEQfBA== integrity sha512-gJfxOcgnBlXhfnUUObsq3n3ReU8CT6S8je97HndYRkKsNZMJJ38zO/pI5aqO7L3Myfq+E3pqPyKK/ynyLEQfBA==
electron-to-chromium@^1.3.390:
version "1.3.397"
resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.3.397.tgz#db640c2e67b08d590a504c20b56904537aa2bafa"
integrity sha512-zcUd1p/7yzTSdWkCTrqGvbnEOASy96d0RJL/lc5BDJoO23Z3G/VHd0yIPbguDU9n8QNUTCigLO7oEdtOb7fp2A==
elliptic@^6.0.0: elliptic@^6.0.0:
version "6.5.2" version "6.5.2"
resolved "https://registry.yarnpkg.com/elliptic/-/elliptic-6.5.2.tgz#05c5678d7173c049d8ca433552224a495d0e3762" resolved "https://registry.yarnpkg.com/elliptic/-/elliptic-6.5.2.tgz#05c5678d7173c049d8ca433552224a495d0e3762"
@ -3895,6 +3925,19 @@ eslint-module-utils@^2.4.1:
debug "^2.6.9" debug "^2.6.9"
pkg-dir "^2.0.0" pkg-dir "^2.0.0"
eslint-plugin-compat@^3.5.1:
version "3.5.1"
resolved "https://registry.yarnpkg.com/eslint-plugin-compat/-/eslint-plugin-compat-3.5.1.tgz#09f9c05dcfa9b5cd69345d7ab333749813ed8b14"
integrity sha512-dhfW12vZxxKLEVhrPoblmEopgwpYU2Sd4GdXj5OSfbQ+as9+1aY+S5pqnJYJvXXNWFFJ6aspLkCyk4NMQ/pgtA==
dependencies:
"@babel/runtime" "^7.7.7"
ast-metadata-inferer "^0.1.1"
browserslist "^4.8.2"
caniuse-db "^1.0.30001017"
lodash.memoize "4.1.2"
mdn-browser-compat-data "^1.0.3"
semver "^6.3.0"
eslint-plugin-eslint-comments@^3.1.2: eslint-plugin-eslint-comments@^3.1.2:
version "3.1.2" version "3.1.2"
resolved "https://registry.yarnpkg.com/eslint-plugin-eslint-comments/-/eslint-plugin-eslint-comments-3.1.2.tgz#4ef6c488dbe06aa1627fea107b3e5d059fc8a395" resolved "https://registry.yarnpkg.com/eslint-plugin-eslint-comments/-/eslint-plugin-eslint-comments-3.1.2.tgz#4ef6c488dbe06aa1627fea107b3e5d059fc8a395"
@ -4239,7 +4282,7 @@ extend-shallow@^3.0.0, extend-shallow@^3.0.2:
assign-symbols "^1.0.0" assign-symbols "^1.0.0"
is-extendable "^1.0.1" is-extendable "^1.0.1"
extend@^3.0.0, extend@~3.0.2: extend@3.0.2, extend@^3.0.0, extend@~3.0.2:
version "3.0.2" version "3.0.2"
resolved "https://registry.yarnpkg.com/extend/-/extend-3.0.2.tgz#f8b1136b4071fbd8eb140aff858b1019ec2915fa" resolved "https://registry.yarnpkg.com/extend/-/extend-3.0.2.tgz#f8b1136b4071fbd8eb140aff858b1019ec2915fa"
integrity sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g== integrity sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==
@ -4326,6 +4369,11 @@ fast-levenshtein@~2.0.6:
resolved "https://registry.yarnpkg.com/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz#3d8a5c66883a16a30ca8643e851f19baa7797917" resolved "https://registry.yarnpkg.com/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz#3d8a5c66883a16a30ca8643e851f19baa7797917"
integrity sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc= integrity sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc=
fast-text-encoding@^1.0.1:
version "1.0.1"
resolved "https://registry.yarnpkg.com/fast-text-encoding/-/fast-text-encoding-1.0.1.tgz#4a428566f74fc55ebdd447555b1eb4d9cf514455"
integrity sha512-x4FEgaz3zNRtJfLFqJmHWxkMDDvXVtaznj2V9jiP8ACUJrUgist4bP9FmDL2Vew2Y9mEQI/tG4GqabaitYp9CQ==
fastq@^1.6.0: fastq@^1.6.0:
version "1.6.1" version "1.6.1"
resolved "https://registry.yarnpkg.com/fastq/-/fastq-1.6.1.tgz#4570c74f2ded173e71cf0beb08ac70bb85826791" resolved "https://registry.yarnpkg.com/fastq/-/fastq-1.6.1.tgz#4570c74f2ded173e71cf0beb08ac70bb85826791"
@ -5938,6 +5986,11 @@ interpret@1.2.0, interpret@^1.1.0:
resolved "https://registry.yarnpkg.com/interpret/-/interpret-1.2.0.tgz#d5061a6224be58e8083985f5014d844359576296" resolved "https://registry.yarnpkg.com/interpret/-/interpret-1.2.0.tgz#d5061a6224be58e8083985f5014d844359576296"
integrity sha512-mT34yGKMNceBQUoVn7iCDKDntA7SC6gycMAWzGx1z/CMCTV7b2AAtXlo3nRyHZ1FelRkQbQjprHSYGwzLtkVbw== integrity sha512-mT34yGKMNceBQUoVn7iCDKDntA7SC6gycMAWzGx1z/CMCTV7b2AAtXlo3nRyHZ1FelRkQbQjprHSYGwzLtkVbw==
intersection-observer@^0.7.0:
version "0.7.0"
resolved "https://registry.yarnpkg.com/intersection-observer/-/intersection-observer-0.7.0.tgz#ee16bee978db53516ead2f0a8154b09b400bbdc9"
integrity sha512-Id0Fij0HsB/vKWGeBe9PxeY45ttRiBmhFyyt/geBdDHBYNctMRTE3dC1U3ujzz3lap+hVXlEcVaB56kZP/eEUg==
into-stream@^3.1.0: into-stream@^3.1.0:
version "3.1.0" version "3.1.0"
resolved "https://registry.yarnpkg.com/into-stream/-/into-stream-3.1.0.tgz#96fb0a936c12babd6ff1752a17d05616abd094c6" resolved "https://registry.yarnpkg.com/into-stream/-/into-stream-3.1.0.tgz#96fb0a936c12babd6ff1752a17d05616abd094c6"
@ -6690,10 +6743,6 @@ levn@^0.3.0, levn@~0.3.0:
prelude-ls "~1.1.2" prelude-ls "~1.1.2"
type-check "~0.3.2" type-check "~0.3.2"
"libass-wasm@https://github.com/jellyfin/JavascriptSubtitlesOctopus#4.0.0-jf":
version "4.0.0"
resolved "https://github.com/jellyfin/JavascriptSubtitlesOctopus#7e6b75dcab9f7dad12719983510d05242803707c"
"libass-wasm@https://github.com/jellyfin/JavascriptSubtitlesOctopus#4.0.0-jf-cordova": "libass-wasm@https://github.com/jellyfin/JavascriptSubtitlesOctopus#4.0.0-jf-cordova":
version "4.0.0" version "4.0.0"
resolved "https://github.com/jellyfin/JavascriptSubtitlesOctopus#b38056588bfaebc18a8353cb1757de0a815ac879" resolved "https://github.com/jellyfin/JavascriptSubtitlesOctopus#b38056588bfaebc18a8353cb1757de0a815ac879"
@ -6909,7 +6958,7 @@ lodash.keys@^3.0.0:
lodash.isarguments "^3.0.0" lodash.isarguments "^3.0.0"
lodash.isarray "^3.0.0" lodash.isarray "^3.0.0"
lodash.memoize@^4.1.2: lodash.memoize@4.1.2, lodash.memoize@^4.1.2:
version "4.1.2" version "4.1.2"
resolved "https://registry.yarnpkg.com/lodash.memoize/-/lodash.memoize-4.1.2.tgz#bcc6c49a42a2840ed997f323eada5ecd182e0bfe" resolved "https://registry.yarnpkg.com/lodash.memoize/-/lodash.memoize-4.1.2.tgz#bcc6c49a42a2840ed997f323eada5ecd182e0bfe"
integrity sha1-vMbEmkKihA7Zl/Mj6tpezRguC/4= integrity sha1-vMbEmkKihA7Zl/Mj6tpezRguC/4=
@ -7194,6 +7243,13 @@ mdast-util-compact@^1.0.0:
dependencies: dependencies:
unist-util-visit "^1.1.0" unist-util-visit "^1.1.0"
mdn-browser-compat-data@^1.0.3:
version "1.0.16"
resolved "https://registry.yarnpkg.com/mdn-browser-compat-data/-/mdn-browser-compat-data-1.0.16.tgz#64f79c50d730108390205ed16e781e702ee1e16d"
integrity sha512-g3bkROyUKH5avfQ2Ou2ejtyfGNe7++Axv89+czZuS5EetQsvM1Cw8P/zDoq3SpE72tIrhhVJ74901q15J2Hm4A==
dependencies:
extend "3.0.2"
mdn-data@2.0.4: mdn-data@2.0.4:
version "2.0.4" version "2.0.4"
resolved "https://registry.yarnpkg.com/mdn-data/-/mdn-data-2.0.4.tgz#699b3c38ac6f1d728091a64650b65d388502fd5b" resolved "https://registry.yarnpkg.com/mdn-data/-/mdn-data-2.0.4.tgz#699b3c38ac6f1d728091a64650b65d388502fd5b"
@ -7664,6 +7720,11 @@ node-releases@^1.1.52:
dependencies: dependencies:
semver "^6.3.0" semver "^6.3.0"
node-releases@^1.1.53:
version "1.1.53"
resolved "https://registry.yarnpkg.com/node-releases/-/node-releases-1.1.53.tgz#2d821bfa499ed7c5dffc5e2f28c88e78a08ee3f4"
integrity sha512-wp8zyQVwef2hpZ/dJH7SfSrIPD6YoJz6BDQDpGEkcA0s3LpAQoxBIYmfIq6QAhC1DhwsyCgTaTTcONwX8qzCuQ==
node-sass@^4.13.1, node-sass@^4.8.3: node-sass@^4.13.1, node-sass@^4.8.3:
version "4.13.1" version "4.13.1"
resolved "https://registry.yarnpkg.com/node-sass/-/node-sass-4.13.1.tgz#9db5689696bb2eec2c32b98bfea4c7a2e992d0a3" resolved "https://registry.yarnpkg.com/node-sass/-/node-sass-4.13.1.tgz#9db5689696bb2eec2c32b98bfea4c7a2e992d0a3"
@ -8485,6 +8546,13 @@ pkg-dir@^3.0.0:
dependencies: dependencies:
find-up "^3.0.0" find-up "^3.0.0"
pkg-up@^2.0.0:
version "2.0.0"
resolved "https://registry.yarnpkg.com/pkg-up/-/pkg-up-2.0.0.tgz#c819ac728059a461cab1c3889a2be3c49a004d7f"
integrity sha1-yBmscoBZpGHKscOImivjxJoATX8=
dependencies:
find-up "^2.1.0"
pkg-up@^3.1.0: pkg-up@^3.1.0:
version "3.1.0" version "3.1.0"
resolved "https://registry.yarnpkg.com/pkg-up/-/pkg-up-3.1.0.tgz#100ec235cc150e4fd42519412596a28512a0def5" resolved "https://registry.yarnpkg.com/pkg-up/-/pkg-up-3.1.0.tgz#100ec235cc150e4fd42519412596a28512a0def5"