mirror of
https://github.com/jellyfin/jellyfin-web
synced 2025-03-30 19:56:21 +00:00
Merge remote-tracking branch 'upstream/master' into scrollbar-placeholder
This commit is contained in:
commit
dd96102ec3
75 changed files with 470 additions and 1976 deletions
10
package.json
10
package.json
|
@ -49,7 +49,7 @@
|
|||
"webpack": "^4.41.5",
|
||||
"webpack-cli": "^3.3.10",
|
||||
"webpack-concat-plugin": "^3.0.0",
|
||||
"webpack-dev-server": "^3.10.3",
|
||||
"webpack-dev-server": "^3.11.0",
|
||||
"webpack-merge": "^4.2.2",
|
||||
"webpack-stream": "^5.2.1"
|
||||
},
|
||||
|
@ -57,7 +57,7 @@
|
|||
"alameda": "^1.4.0",
|
||||
"classlist.js": "https://github.com/eligrey/classList.js/archive/1.2.20180112.tar.gz",
|
||||
"core-js": "^3.6.5",
|
||||
"date-fns": "^2.12.0",
|
||||
"date-fns": "^2.13.0",
|
||||
"document-register-element": "^1.14.3",
|
||||
"fast-text-encoding": "^1.0.1",
|
||||
"flv.js": "^1.5.0",
|
||||
|
@ -67,16 +67,16 @@
|
|||
"intersection-observer": "^0.10.0",
|
||||
"jellyfin-apiclient": "^1.1.1",
|
||||
"jellyfin-noto": "https://github.com/jellyfin/jellyfin-noto",
|
||||
"jquery": "^3.5.0",
|
||||
"jquery": "^3.5.1",
|
||||
"jstree": "^3.3.7",
|
||||
"libass-wasm": "https://github.com/jellyfin/JavascriptSubtitlesOctopus#4.0.0-jf-cordova",
|
||||
"libass-wasm": "https://github.com/jellyfin/JavascriptSubtitlesOctopus#4.0.0-jf-smarttv",
|
||||
"material-design-icons-iconfont": "^5.0.1",
|
||||
"native-promise-only": "^0.8.0-a",
|
||||
"page": "^1.11.6",
|
||||
"query-string": "^6.11.1",
|
||||
"resize-observer-polyfill": "^1.5.1",
|
||||
"screenfull": "^5.0.2",
|
||||
"shaka-player": "^2.5.10",
|
||||
"shaka-player": "^2.5.11",
|
||||
"sortablejs": "^1.10.2",
|
||||
"swiper": "^5.3.7",
|
||||
"webcomponents.js": "^0.7.24",
|
||||
|
|
|
@ -5,8 +5,10 @@ const cssnano = require('cssnano');
|
|||
|
||||
const config = () => ({
|
||||
plugins: [
|
||||
// Explicitly specify browserslist to override ones from node_modules
|
||||
// For example, Swiper has it in its package.json
|
||||
postcssPresetEnv({browsers: packageConfig.browserslist}),
|
||||
autoprefixer(),
|
||||
autoprefixer({overrideBrowserslist: packageConfig.browserslist}),
|
||||
cssnano()
|
||||
]
|
||||
});
|
||||
|
|
|
@ -5,7 +5,7 @@
|
|||
<div class="verticalSection">
|
||||
<div class="sectionTitleContainer flex align-items-center">
|
||||
<h1 class="sectionTitle pluginName"></h1>
|
||||
<a is="emby-linkbutton" class="raised button-alt headerHelpButton" target="_blank" href="https://docs.jellyfin.org/general/server/plugins/index.html">${Help}</a>
|
||||
<a is="emby-linkbutton" rel="noopener noreferrer" class="raised button-alt headerHelpButton" target="_blank" href="https://docs.jellyfin.org/general/server/plugins/index.html">${Help}</a>
|
||||
</div>
|
||||
|
||||
<p id="overview" style="font-style: italic;"></p>
|
||||
|
|
|
@ -3,7 +3,7 @@
|
|||
<form class="addServerForm" style="margin: 0 auto;">
|
||||
<h1>${HeaderConnectToServer}</h1>
|
||||
<div class="inputContainer">
|
||||
<input is="emby-input" type="text" id="txtServerHost" required="required" label="${LabelServerHost}" autocomplete="off" spellcheck="false" autocapitalize="none" autocorrect="off" />
|
||||
<input is="emby-input" type="url" id="txtServerHost" required="required" label="${LabelServerHost}"/>
|
||||
<div class="fieldDescription">${LabelServerHostHelp}</div>
|
||||
</div>
|
||||
<br />
|
||||
|
|
|
@ -4,18 +4,19 @@
|
|||
<div class="detailSectionHeader">
|
||||
<h2 style="margin:.6em 0;vertical-align:middle;display:inline-block;">${HeaderApiKeys}</h2>
|
||||
<button is="emby-button" type="button" class="fab btnNewKey submit" style="margin-left:1em;" title="${ButtonAdd}">
|
||||
<span class="material-icons add"></span>
|
||||
<span class="material-icons add" aria-hidden="true"></span>
|
||||
</button>
|
||||
</div>
|
||||
<p>${HeaderApiKeysHelp}</p>
|
||||
<br />
|
||||
<table class="tblApiKeys detailTable">
|
||||
<caption class="clipForScreenReader">${ApiKeysCaption}</caption>
|
||||
<thead>
|
||||
<tr>
|
||||
<th class="detailTableHeaderCell"></th>
|
||||
<th class="detailTableHeaderCell">${HeaderApiKey}</th>
|
||||
<th class="detailTableHeaderCell">${HeaderApp}</th>
|
||||
<th class="detailTableHeaderCell">${HeaderDateIssued}</th>
|
||||
<th scope="col" class="detailTableHeaderCell"></th>
|
||||
<th scope="col" class="detailTableHeaderCell">${HeaderApiKey}</th>
|
||||
<th scope="col" class="detailTableHeaderCell">${HeaderApp}</th>
|
||||
<th scope="col" class="detailTableHeaderCell">${HeaderDateIssued}</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody class="resultBody"></tbody>
|
||||
|
|
|
@ -6,6 +6,17 @@ html {
|
|||
overflow-y: scroll;
|
||||
}
|
||||
|
||||
.clipForScreenReader {
|
||||
clip: rect(1px, 1px, 1px, 1px);
|
||||
clip-path: inset(50%);
|
||||
height: 1px;
|
||||
width: 1px;
|
||||
margin: -1px;
|
||||
overflow: hidden;
|
||||
padding: 0;
|
||||
position: absolute;
|
||||
}
|
||||
|
||||
.material-icons {
|
||||
/* Fix font ligatures on older WebOS versions */
|
||||
-webkit-font-feature-settings: "liga";
|
||||
|
|
|
@ -158,7 +158,7 @@ _define('headroom', function () {
|
|||
var apiclient = require('jellyfin-apiclient');
|
||||
|
||||
_define('apiclient', function () {
|
||||
return apiclient.apiclient;
|
||||
return apiclient.ApiClient;
|
||||
});
|
||||
|
||||
_define('events', function () {
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
<div class="formDialogHeader">
|
||||
<button is="paper-icon-button-light" class="btnCancel autoSize" tabindex="-1">
|
||||
<span class="material-icons arrow_back"></span>
|
||||
<button is="paper-icon-button-light" class="btnCancel autoSize" title="${LabelPrevious}" tabindex="-1">
|
||||
<span class="material-icons arrow_back" aria-hidden="true"></span>
|
||||
</button>
|
||||
<h3 class="formDialogHeaderTitle">
|
||||
${HeaderAccessSchedule}
|
||||
|
|
|
@ -56,7 +56,7 @@
|
|||
<div class="fieldDescription">
|
||||
<div>${LabelDisplayLanguageHelp}</div>
|
||||
<div class="learnHowToContributeContainer hide" style="margin-top: .25em;">
|
||||
<a is="emby-linkbutton" class="button-link" href="https://github.com/jellyfin/jellyfin" target="_blank">${LearnHowYouCanContribute}</a>
|
||||
<a is="emby-linkbutton" rel="noopener noreferrer" class="button-link" href="https://github.com/jellyfin/jellyfin" target="_blank">${LearnHowYouCanContribute}</a>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
|
|
@ -1,5 +1,7 @@
|
|||
<div class="formDialogHeader">
|
||||
<button is="paper-icon-button-light" class="btnCancel autoSize" tabindex="-1"><span class="material-icons arrow_back"></span></button>
|
||||
<button is="paper-icon-button-light" class="btnCancel autoSize" title="${LabelPrevious}" tabindex="-1">
|
||||
<span class="material-icons arrow_back" aria-hidden="true"></span>
|
||||
</button>
|
||||
<h3 class="formDialogHeaderTitle">
|
||||
${Settings}
|
||||
</h3>
|
||||
|
|
|
@ -9,8 +9,8 @@
|
|||
|
||||
<div class="guide-headerTimeslots">
|
||||
<div class="guide-channelTimeslotHeader">
|
||||
<button is="paper-icon-button-light" type="button" class="btnGuideViewSettings">
|
||||
<span class="material-icons btnGuideViewSettingsIcon more_horiz"></span>
|
||||
<button is="paper-icon-button-light" type="button" class="btnGuideViewSettings" title="${ButtonMore}">
|
||||
<span class="material-icons btnGuideViewSettingsIcon more_horiz" aria-hidden="true"></span>
|
||||
</button>
|
||||
</div>
|
||||
<div class="timeslotHeaders scrollX guideScroller"></div>
|
||||
|
@ -29,10 +29,10 @@
|
|||
</div>
|
||||
|
||||
<div class="guideOptions hide">
|
||||
<button is="paper-icon-button-light" type="button" class="btnPreviousPage">
|
||||
<span class="material-icons arrow_back"></span>
|
||||
<button is="paper-icon-button-light" type="button" class="btnPreviousPage" title="${LabelPrevious}">
|
||||
<span class="material-icons arrow_back" aria-hidden="true"></span>
|
||||
</button>
|
||||
<button is="paper-icon-button-light" type="button" class="btnNextPage">
|
||||
<span class="material-icons arrow_forward"></span>
|
||||
<button is="paper-icon-button-light" type="button" class="btnNextPage" title="${LabelNext}">
|
||||
<span class="material-icons arrow_forward" aria-hidden="true"></span>
|
||||
</button>
|
||||
</div>
|
||||
|
|
|
@ -194,7 +194,7 @@ define(['appSettings', 'browser', 'events'], function (appSettings, browser, eve
|
|||
}
|
||||
};
|
||||
events.map(function (name) {
|
||||
element.addEventListener(name, onMediaChange);
|
||||
return element.addEventListener(name, onMediaChange);
|
||||
});
|
||||
}
|
||||
}
|
||||
|
|
|
@ -106,10 +106,16 @@ define(['browser', 'require', 'events', 'apphost', 'loading', 'dom', 'playbackMa
|
|||
});
|
||||
}
|
||||
|
||||
function hidePrePlaybackPage() {
|
||||
let animatedPage = document.querySelector('.page:not(.hide)');
|
||||
animatedPage.classList.add('hide');
|
||||
}
|
||||
|
||||
function zoomIn(elem) {
|
||||
return new Promise(function (resolve, reject) {
|
||||
var duration = 240;
|
||||
elem.style.animation = 'htmlvideoplayer-zoomin ' + duration + 'ms ease-in normal';
|
||||
hidePrePlaybackPage();
|
||||
dom.addEventListener(elem, dom.whichAnimationEvent(), resolve, {
|
||||
once: true
|
||||
});
|
||||
|
@ -290,7 +296,7 @@ define(['browser', 'require', 'events', 'apphost', 'loading', 'dom', 'playbackMa
|
|||
|
||||
return createMediaElement(options).then(function (elem) {
|
||||
|
||||
return updateVideoUrl(options, options.mediaSource).then(function () {
|
||||
return updateVideoUrl(options).then(function () {
|
||||
return setCurrentSrc(elem, options);
|
||||
});
|
||||
});
|
||||
|
@ -602,7 +608,7 @@ define(['browser', 'require', 'events', 'apphost', 'loading', 'dom', 'playbackMa
|
|||
// if .ass currently rendering
|
||||
if (currentSubtitlesOctopus) {
|
||||
updateCurrentTrackOffset(offsetValue);
|
||||
currentSubtitlesOctopus.timeOffset = offsetValue;
|
||||
currentSubtitlesOctopus.timeOffset = (self._currentPlayOptions.transcodingOffsetTicks || 0) / 10000000 + offsetValue;
|
||||
} else {
|
||||
var trackElement = getTextTrack();
|
||||
// if .vtt currently rendering
|
||||
|
@ -836,7 +842,6 @@ define(['browser', 'require', 'events', 'apphost', 'loading', 'dom', 'playbackMa
|
|||
function onNavigatedToOsd() {
|
||||
var dlg = videoDialog;
|
||||
if (dlg) {
|
||||
dlg.classList.remove('videoPlayerContainer-withBackdrop');
|
||||
dlg.classList.remove('videoPlayerContainer-onTop');
|
||||
|
||||
onStartedAndNavigatedToOsd();
|
||||
|
@ -860,7 +865,11 @@ define(['browser', 'require', 'events', 'apphost', 'loading', 'dom', 'playbackMa
|
|||
loading.hide();
|
||||
|
||||
htmlMediaHelper.seekOnPlaybackStart(self, e.target, self._currentPlayOptions.playerStartPositionTicks, function () {
|
||||
if (currentSubtitlesOctopus) currentSubtitlesOctopus.resize();
|
||||
if (currentSubtitlesOctopus) {
|
||||
currentSubtitlesOctopus.timeOffset = (self._currentPlayOptions.transcodingOffsetTicks || 0) / 10000000 + currentTrackOffset;
|
||||
currentSubtitlesOctopus.resize();
|
||||
currentSubtitlesOctopus.resetRenderAheadCache(false);
|
||||
}
|
||||
});
|
||||
|
||||
if (self._currentPlayOptions.fullscreen) {
|
||||
|
@ -869,7 +878,6 @@ define(['browser', 'require', 'events', 'apphost', 'loading', 'dom', 'playbackMa
|
|||
|
||||
} else {
|
||||
appRouter.setTransparency('backdrop');
|
||||
videoDialog.classList.remove('videoPlayerContainer-withBackdrop');
|
||||
videoDialog.classList.remove('videoPlayerContainer-onTop');
|
||||
|
||||
onStartedAndNavigatedToOsd();
|
||||
|
@ -1066,6 +1074,7 @@ define(['browser', 'require', 'events', 'apphost', 'loading', 'dom', 'playbackMa
|
|||
onError: function() {
|
||||
htmlMediaHelper.onErrorInternal(self, 'mediadecodeerror');
|
||||
},
|
||||
timeOffset: (self._currentPlayOptions.transcodingOffsetTicks || 0) / 10000000,
|
||||
|
||||
// new octopus options; override all, even defaults
|
||||
renderMode: 'blend',
|
||||
|
@ -1285,12 +1294,6 @@ define(['browser', 'require', 'events', 'apphost', 'loading', 'dom', 'playbackMa
|
|||
|
||||
function createMediaElement(options) {
|
||||
|
||||
if (browser.tv || browser.iOS || browser.mobile) {
|
||||
// too slow
|
||||
// also on iOS, the backdrop image doesn't look right
|
||||
// on android mobile, it works, but can be slow to have the video surface fully cover the backdrop
|
||||
options.backdropUrl = null;
|
||||
}
|
||||
return new Promise(function (resolve, reject) {
|
||||
|
||||
var dlg = document.querySelector('.videoPlayerContainer');
|
||||
|
@ -1305,11 +1308,6 @@ define(['browser', 'require', 'events', 'apphost', 'loading', 'dom', 'playbackMa
|
|||
|
||||
dlg.classList.add('videoPlayerContainer');
|
||||
|
||||
if (options.backdropUrl) {
|
||||
dlg.classList.add('videoPlayerContainer-withBackdrop');
|
||||
dlg.style.backgroundImage = "url('" + options.backdropUrl + "')";
|
||||
}
|
||||
|
||||
if (options.fullscreen) {
|
||||
dlg.classList.add('videoPlayerContainer-onTop');
|
||||
}
|
||||
|
@ -1343,6 +1341,9 @@ define(['browser', 'require', 'events', 'apphost', 'loading', 'dom', 'playbackMa
|
|||
videoElement.addEventListener('play', onPlay);
|
||||
videoElement.addEventListener('click', onClick);
|
||||
videoElement.addEventListener('dblclick', onDblClick);
|
||||
if (options.backdropUrl) {
|
||||
videoElement.poster = options.backdropUrl;
|
||||
}
|
||||
|
||||
document.body.insertBefore(dlg, document.body.firstChild);
|
||||
videoDialog = dlg;
|
||||
|
@ -1362,15 +1363,11 @@ define(['browser', 'require', 'events', 'apphost', 'loading', 'dom', 'playbackMa
|
|||
resolve(videoElement);
|
||||
});
|
||||
} else {
|
||||
hidePrePlaybackPage();
|
||||
resolve(videoElement);
|
||||
}
|
||||
});
|
||||
} else {
|
||||
if (options.backdropUrl) {
|
||||
dlg.classList.add('videoPlayerContainer-withBackdrop');
|
||||
dlg.style.backgroundImage = "url('" + options.backdropUrl + "')";
|
||||
}
|
||||
|
||||
resolve(dlg.querySelector('video'));
|
||||
}
|
||||
});
|
||||
|
|
|
@ -6,20 +6,9 @@
|
|||
right: 0;
|
||||
display: flex;
|
||||
align-items: center;
|
||||
}
|
||||
|
||||
.videoPlayerContainer:not(.videoPlayerContainer-withBackdrop) {
|
||||
background: #000 !important;
|
||||
}
|
||||
|
||||
.videoPlayerContainer-withBackdrop {
|
||||
background-repeat: no-repeat;
|
||||
background-position: center center;
|
||||
background-size: cover;
|
||||
background-attachment: fixed;
|
||||
background-color: #000;
|
||||
}
|
||||
|
||||
.videoPlayerContainer-onTop {
|
||||
z-index: 1000;
|
||||
}
|
||||
|
|
|
@ -109,8 +109,8 @@ define(['globalize', 'dom', 'emby-checkbox', 'emby-select', 'emby-input'], funct
|
|||
html += '<div class="metadataFetcher" data-type="' + availableTypeOptions.Type + '">';
|
||||
html += '<h3 class="checkboxListLabel">' + globalize.translate('LabelTypeMetadataDownloaders', globalize.translate(availableTypeOptions.Type)) + '</h3>';
|
||||
html += '<div class="checkboxList paperList checkboxList-paperList">';
|
||||
for (var i = 0; i < plugins.length; i++) {
|
||||
var plugin = plugins[i];
|
||||
|
||||
plugins.forEach((plugin, index) => {
|
||||
html += '<div class="listItem metadataFetcherItem sortableOption" data-pluginname="' + plugin.Name + '">';
|
||||
var isChecked = libraryOptionsForType.MetadataFetchers ? -1 !== libraryOptionsForType.MetadataFetchers.indexOf(plugin.Name) : plugin.DefaultEnabled;
|
||||
var checkedHtml = isChecked ? ' checked="checked"' : '';
|
||||
|
@ -120,8 +120,9 @@ define(['globalize', 'dom', 'emby-checkbox', 'emby-select', 'emby-input'], funct
|
|||
html += plugin.Name;
|
||||
html += '</h3>';
|
||||
html += '</div>';
|
||||
i > 0 ? html += '<button type="button" is="paper-icon-button-light" title="' + globalize.translate('ButtonUp') + '" class="btnSortableMoveUp btnSortable" data-pluginindex="' + i + '"><span class="material-icons keyboard_arrow_up"></span></button>' : plugins.length > 1 && (html += '<button type="button" is="paper-icon-button-light" title="' + globalize.translate('ButtonDown') + '" class="btnSortableMoveDown btnSortable" data-pluginindex="' + i + '"><span class="material-icons keyboard_arrow_down"></span></button>'), html += '</div>';
|
||||
}
|
||||
index > 0 ? html += '<button type="button" is="paper-icon-button-light" title="' + globalize.translate('ButtonUp') + '" class="btnSortableMoveUp btnSortable" data-pluginindex="' + index + '"><span class="material-icons keyboard_arrow_up"></span></button>' : plugins.length > 1 && (html += '<button type="button" is="paper-icon-button-light" title="' + globalize.translate('ButtonDown') + '" class="btnSortableMoveDown btnSortable" data-pluginindex="' + index + '"><span class="material-icons keyboard_arrow_down"></span></button>'), html += '</div>';
|
||||
});
|
||||
|
||||
html += '</div>';
|
||||
html += '<div class="fieldDescription">' + globalize.translate('LabelMetadataDownloadersHelp') + '</div>';
|
||||
html += '</div>';
|
||||
|
@ -292,11 +293,15 @@ define(['globalize', 'dom', 'emby-checkbox', 'emby-select', 'emby-input'], funct
|
|||
function showImageOptionsForType(type) {
|
||||
require(['imageoptionseditor'], function(ImageOptionsEditor) {
|
||||
var typeOptions = getTypeOptions(currentLibraryOptions, type);
|
||||
typeOptions || (typeOptions = {
|
||||
Type: type
|
||||
}, currentLibraryOptions.TypeOptions.push(typeOptions));
|
||||
if (!typeOptions) {
|
||||
typeOptions = {
|
||||
Type: type
|
||||
};
|
||||
currentLibraryOptions.TypeOptions.push(typeOptions);
|
||||
}
|
||||
var availableOptions = getTypeOptions(currentAvailableOptions || {}, type);
|
||||
(new ImageOptionsEditor).show(type, typeOptions, availableOptions);
|
||||
var imageOptionsEditor = new ImageOptionsEditor();
|
||||
imageOptionsEditor.show(type, typeOptions, availableOptions);
|
||||
});
|
||||
}
|
||||
|
||||
|
@ -315,10 +320,16 @@ define(['globalize', 'dom', 'emby-checkbox', 'emby-select', 'emby-input'], funct
|
|||
var list = dom.parentWithClass(li, 'paperList');
|
||||
if (btnSortable.classList.contains('btnSortableMoveDown')) {
|
||||
var next = li.nextSibling;
|
||||
next && (li.parentNode.removeChild(li), next.parentNode.insertBefore(li, next.nextSibling));
|
||||
if (next) {
|
||||
li.parentNode.removeChild(li);
|
||||
next.parentNode.insertBefore(li, next.nextSibling);
|
||||
}
|
||||
} else {
|
||||
var prev = li.previousSibling;
|
||||
prev && (li.parentNode.removeChild(li), prev.parentNode.insertBefore(li, prev));
|
||||
if (prev) {
|
||||
li.parentNode.removeChild(li);
|
||||
prev.parentNode.insertBefore(li, prev);
|
||||
}
|
||||
}
|
||||
Array.prototype.forEach.call(list.querySelectorAll('.sortableOption'), adjustSortableListElement);
|
||||
}
|
||||
|
|
|
@ -791,11 +791,7 @@ define(['itemHelper', 'dom', 'layoutManager', 'dialogHelper', 'datetime', 'loadi
|
|||
return a.Name;
|
||||
}).join(';');
|
||||
|
||||
if (item.Type === 'Series') {
|
||||
context.querySelector('#selectDisplayOrder').value = item.DisplayOrder || '';
|
||||
} else {
|
||||
context.querySelector('#selectDisplayOrder').value = item.DisplayOrder || '';
|
||||
}
|
||||
context.querySelector('#selectDisplayOrder').value = item.DisplayOrder || '';
|
||||
|
||||
context.querySelector('#txtArtist').value = (item.ArtistItems || []).map(function (a) {
|
||||
return a.Name;
|
||||
|
|
|
@ -309,13 +309,11 @@ define(['events', 'datetime', 'appSettings', 'itemHelper', 'pluginManager', 'pla
|
|||
if (codecProfile.Type === 'Audio') {
|
||||
(codecProfile.Conditions || []).map(function (condition) {
|
||||
if (condition.Condition === 'LessThanEqual' && condition.Property === 'AudioBitDepth') {
|
||||
maxAudioBitDepth = condition.Value;
|
||||
}
|
||||
if (condition.Condition === 'LessThanEqual' && condition.Property === 'AudioSampleRate') {
|
||||
maxAudioSampleRate = condition.Value;
|
||||
}
|
||||
if (condition.Condition === 'LessThanEqual' && condition.Property === 'AudioBitrate') {
|
||||
maxAudioBitrate = condition.Value;
|
||||
return maxAudioBitDepth = condition.Value;
|
||||
} else if (condition.Condition === 'LessThanEqual' && condition.Property === 'AudioSampleRate') {
|
||||
return maxAudioSampleRate = condition.Value;
|
||||
} else if (condition.Condition === 'LessThanEqual' && condition.Property === 'AudioBitrate') {
|
||||
return maxAudioBitrate = condition.Value;
|
||||
}
|
||||
});
|
||||
}
|
||||
|
|
|
@ -232,11 +232,7 @@ define(['dialogHelper', 'require', 'layoutManager', 'globalize', 'userSettings',
|
|||
html += '</div>';
|
||||
}
|
||||
html += '<h2>' + provider + '</h2>';
|
||||
if (layoutManager.tv) {
|
||||
html += '<div>';
|
||||
} else {
|
||||
html += '<div>';
|
||||
}
|
||||
html += '<div>';
|
||||
lastProvider = provider;
|
||||
}
|
||||
|
||||
|
|
|
@ -2,8 +2,7 @@
|
|||
<button is="paper-icon-button-light" class="btnCancel autoSize" tabindex="-1"><span class="material-icons arrow_back"></span></button>
|
||||
<h3 class="formDialogHeaderTitle">${Subtitles}</h3>
|
||||
|
||||
<a is="emby-linkbutton" data-autohide="true" class="button-link btnHelp flex align-items-center" href="https://docs.jellyfin.org/general/server/media/subtitles.html" target="_blank" style="margin-left:auto;margin-right:.5em;padding:.25em;" title="${Help}"><span class="material-icons info"></span><span style="margin-left:.25em;">${Help}</span></a>
|
||||
|
||||
<a is="emby-linkbutton" rel="noopener noreferrer" data-autohide="true" class="button-link btnHelp flex align-items-center" href="https://docs.jellyfin.org/general/server/media/subtitles.html" target="_blank" style="margin-left:auto;margin-right:.5em;padding:.25em;" title="${Help}"><span class="material-icons info"></span><span style="margin-left:.25em;">${Help}</span></a>
|
||||
</div>
|
||||
<div class="formDialogContent smoothScrollY">
|
||||
<div class="dialogContentInner dialog-content-centered">
|
||||
|
|
|
@ -32,8 +32,12 @@ define(['playbackManager', 'layoutManager', 'text!./subtitlesync.template.html',
|
|||
this.textContent = offset + 's';
|
||||
};
|
||||
|
||||
subtitleSyncTextField.addEventListener('keypress', function(event) {
|
||||
subtitleSyncTextField.addEventListener('click', function () {
|
||||
// keep focus to prevent fade with osd
|
||||
this.hasFocus = true;
|
||||
});
|
||||
|
||||
subtitleSyncTextField.addEventListener('keydown', function(event) {
|
||||
if (event.key === 'Enter') {
|
||||
// if input key is enter search for float pattern
|
||||
var inputOffset = /[-+]?\d+\.?\d*/g.exec(this.textContent);
|
||||
|
@ -55,7 +59,7 @@ define(['playbackManager', 'layoutManager', 'text!./subtitlesync.template.html',
|
|||
this.hasFocus = false;
|
||||
event.preventDefault();
|
||||
} else {
|
||||
// keep focus to prevent fade with bottom layout
|
||||
// keep focus to prevent fade with osd
|
||||
this.hasFocus = true;
|
||||
if (event.key.match(/[+-\d.s]/) === null) {
|
||||
event.preventDefault();
|
||||
|
@ -63,6 +67,13 @@ define(['playbackManager', 'layoutManager', 'text!./subtitlesync.template.html',
|
|||
}
|
||||
});
|
||||
|
||||
subtitleSyncTextField.blur = function() {
|
||||
// prevent textfield to blur while element has focus
|
||||
if (!this.hasFocus && this.prototype) {
|
||||
this.prototype.blur();
|
||||
}
|
||||
};
|
||||
|
||||
subtitleSyncSlider.updateOffset = function(percent) {
|
||||
// default value is 0s = 50%
|
||||
this.value = percent === undefined ? 50 : percent;
|
||||
|
@ -140,12 +151,10 @@ define(['playbackManager', 'layoutManager', 'text!./subtitlesync.template.html',
|
|||
/* eslint-disable no-fallthrough */
|
||||
switch (action) {
|
||||
case undefined:
|
||||
// if showing subtitle sync is enabled
|
||||
if (playbackManager.isShowingSubtitleOffsetEnabled(player) &&
|
||||
// if there is an external subtitle stream enabled
|
||||
playbackManager.canHandleOffsetOnCurrentSubtitle(player)) {
|
||||
// if no subtitle offset is defined
|
||||
if (!playbackManager.getPlayerSubtitleOffset(player)) {
|
||||
// if showing subtitle sync is enabled and if there is an external subtitle stream enabled
|
||||
if (playbackManager.isShowingSubtitleOffsetEnabled(player) && playbackManager.canHandleOffsetOnCurrentSubtitle(player)) {
|
||||
// if no subtitle offset is defined or element has focus (offset being defined)
|
||||
if (!(playbackManager.getPlayerSubtitleOffset(player) || subtitleSyncTextField.hasFocus)) {
|
||||
// set default offset to '0' = 50%
|
||||
subtitleSyncSlider.value = '50';
|
||||
subtitleSyncTextField.textContent = '0s';
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
<div class="verticalSection">
|
||||
<div class="sectionTitleContainer flex align-items-center">
|
||||
<h1 class="sectionTitle">Schedules Direct</h1>
|
||||
<a is="emby-linkbutton" class="raised button-alt headerHelpButton" target="_blank" href="https://docs.jellyfin.org/general/server/live-tv/setup-guide.html#adding-guide-data">${Help}</a>
|
||||
<a is="emby-linkbutton" rel="noopener noreferrer" class="raised button-alt headerHelpButton" target="_blank" href="https://docs.jellyfin.org/general/server/live-tv/setup-guide.html#adding-guide-data">${Help}</a>
|
||||
</div>
|
||||
<p class="createAccountHelp"></p>
|
||||
</div>
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
<div class="verticalSection">
|
||||
<div class="sectionTitleContainer flex align-items-center">
|
||||
<h1 class="sectionTitle">Xml TV</h1>
|
||||
<a is="emby-linkbutton" class="raised button-alt headerHelpButton" target="_blank" href="https://docs.jellyfin.org/general/server/live-tv/setup-guide.html#adding-guide-data">${Help}</a>
|
||||
<a is="emby-linkbutton" rel="noopener noreferrer" class="raised button-alt headerHelpButton" target="_blank" href="https://docs.jellyfin.org/general/server/live-tv/setup-guide.html#adding-guide-data">${Help}</a>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
|
|
@ -63,8 +63,8 @@
|
|||
height: auto;
|
||||
width: 100%;
|
||||
box-shadow: 0 0.0725em 0.29em 0 rgba(0, 0, 0, 0.37);
|
||||
border: 0;
|
||||
user-drag: none;
|
||||
border: 0;
|
||||
user-select: none;
|
||||
-moz-user-select: none;
|
||||
-webkit-user-drag: none;
|
||||
|
|
|
@ -1016,7 +1016,6 @@ define(['globalize', 'listView', 'layoutManager', 'userSettings', 'focusManager'
|
|||
if ('Programs' === params.type) {
|
||||
filters.push('Genres');
|
||||
} else {
|
||||
params.type;
|
||||
filters.push('IsUnplayed');
|
||||
filters.push('IsPlayed');
|
||||
|
||||
|
|
|
@ -82,7 +82,6 @@ define(['globalize', 'loading', 'libraryMenu', 'dom', 'emby-input', 'emby-button
|
|||
info.Id = id;
|
||||
}
|
||||
|
||||
info.Id;
|
||||
ApiClient.ajax({
|
||||
type: 'POST',
|
||||
url: ApiClient.getUrl('LiveTv/TunerHosts'),
|
||||
|
|
|
@ -8,12 +8,12 @@ define(['jQuery', 'loading', 'globalize', 'fnchecked', 'emby-checkbox'], functio
|
|||
|
||||
for (var i = 0; i < mediaFolders.length; i++) {
|
||||
var folder = mediaFolders[i];
|
||||
html += '<label><input type="checkbox" is="emby-checkbox" class="chkFolder" data-id="' + folder.Id + '" checked="checked"/><span>' + folder.Name + '</span></label>';
|
||||
html += '<label><input type="checkbox" is="emby-checkbox" class="chkFolder" data-id="' + folder.Id + '"/><span>' + folder.Name + '</span></label>';
|
||||
}
|
||||
|
||||
html += '</div>';
|
||||
$('.folderAccess', page).html(html).trigger('create');
|
||||
$('#chkEnableAllFolders', page).checked(true).trigger('change');
|
||||
$('#chkEnableAllFolders', page).checked(false).trigger('change');
|
||||
}
|
||||
|
||||
function loadChannels(page, channels) {
|
||||
|
@ -23,7 +23,7 @@ define(['jQuery', 'loading', 'globalize', 'fnchecked', 'emby-checkbox'], functio
|
|||
|
||||
for (var i = 0; i < channels.length; i++) {
|
||||
var folder = channels[i];
|
||||
html += '<label><input type="checkbox" is="emby-checkbox" class="chkChannel" data-id="' + folder.Id + '" checked="checked"/><span>' + folder.Name + '</span></label>';
|
||||
html += '<label><input type="checkbox" is="emby-checkbox" class="chkChannel" data-id="' + folder.Id + '"/><span>' + folder.Name + '</span></label>';
|
||||
}
|
||||
|
||||
html += '</div>';
|
||||
|
@ -35,7 +35,7 @@ define(['jQuery', 'loading', 'globalize', 'fnchecked', 'emby-checkbox'], functio
|
|||
$('.channelAccessContainer', page).hide();
|
||||
}
|
||||
|
||||
$('#chkEnableAllChannels', page).checked(true).trigger('change');
|
||||
$('#chkEnableAllChannels', page).checked(false).trigger('change');
|
||||
}
|
||||
|
||||
function loadUser(page) {
|
||||
|
|
|
@ -112,7 +112,7 @@
|
|||
<div class="dashboardFooter">
|
||||
<div style="height:1px;" class="ui-bar-inherit"></div>
|
||||
<div style="margin-top:1em;">
|
||||
<a is="emby-linkbutton" class="button-link" href="https://jellyfin.org" target="_blank">Jellyfin</a>
|
||||
<a is="emby-linkbutton" rel="noopener noreferrer" class="button-link" href="https://jellyfin.org" target="_blank">Jellyfin</a>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
|
|
@ -5,7 +5,7 @@
|
|||
<div class="verticalSection">
|
||||
<div class="sectionTitleContainer flex align-items-center">
|
||||
<h2 class="sectionTitle">${TabSettings}</h2>
|
||||
<a is="emby-linkbutton" class="raised button-alt headerHelpButton" target="_blank" href="https://docs.jellyfin.org/general/server/settings.html">${Help}</a>
|
||||
<a is="emby-linkbutton" rel="noopener noreferrer" class="raised button-alt headerHelpButton" target="_blank" href="https://docs.jellyfin.org/general/server/settings.html">${Help}</a>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
@ -19,7 +19,7 @@
|
|||
<div class="fieldDescription">
|
||||
<div>${LabelPreferredDisplayLanguageHelp}</div>
|
||||
<div style="margin-top: .25em;">
|
||||
<a is="emby-linkbutton" class="button-link" href="https://docs.jellyfin.org/general/contributing/index.html" target="_blank">${LabelReadHowYouCanContribute}</a>
|
||||
<a is="emby-linkbutton" rel="noopener noreferrer" class="button-link" href="https://docs.jellyfin.org/general/contributing/index.html" target="_blank">${LabelReadHowYouCanContribute}</a>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
|
|
@ -5,7 +5,7 @@
|
|||
<div class="verticalSection verticalSection-extrabottompadding">
|
||||
<div class="sectionTitleContainer flex align-items-center">
|
||||
<h2 class="sectionTitle reportedName"></h2>
|
||||
<a is="emby-linkbutton" class="raised button-alt headerHelpButton" target="_blank" href="https://docs.jellyfin.org/general/server/devices.html">${Help}</a>
|
||||
<a is="emby-linkbutton" rel="noopener noreferrer" class="raised button-alt headerHelpButton" target="_blank" href="https://docs.jellyfin.org/general/server/devices.html">${Help}</a>
|
||||
</div>
|
||||
|
||||
<div class="inputContainer">
|
||||
|
|
|
@ -4,7 +4,7 @@
|
|||
<div class="verticalSection verticalSection">
|
||||
<div class="sectionTitleContainer sectionTitleContainer-cards flex align-items-center">
|
||||
<h2 class="sectionTitle sectionTitle-cards">${TabDevices}</h2>
|
||||
<a is="emby-linkbutton" class="raised button-alt headerHelpButton" target="_blank" href="https://docs.jellyfin.org/general/server/devices.html">${Help}</a>
|
||||
<a is="emby-linkbutton" rel="noopener noreferrer" class="raised button-alt headerHelpButton" target="_blank" href="https://docs.jellyfin.org/general/server/devices.html">${Help}</a>
|
||||
</div>
|
||||
</div>
|
||||
<div is="emby-itemscontainer" class="devicesList vertical-wrap" data-multiselect="false"></div>
|
||||
|
|
|
@ -5,7 +5,7 @@
|
|||
<div class="verticalSection">
|
||||
<div class="sectionTitleContainer flex align-items-center">
|
||||
<h2 class="sectionTitle">${HeaderProfileInformation}</h2>
|
||||
<a is="emby-linkbutton" class="raised button-alt headerHelpButton" target="_blank" href="https://web.archive.org/web/20181216120305/https://github.com/MediaBrowser/Wiki/wiki/Dlna-profiles">${Help}</a>
|
||||
<a is="emby-linkbutton" rel="noopener noreferrer" class="raised button-alt headerHelpButton" target="_blank" href="https://web.archive.org/web/20181216120305/https://github.com/MediaBrowser/Wiki/wiki/Dlna-profiles">${Help}</a>
|
||||
</div>
|
||||
</div>
|
||||
<div data-role="controlgroup" data-type="horizontal" data-mini="true">
|
||||
|
|
|
@ -8,7 +8,7 @@
|
|||
<div class="verticalSection">
|
||||
<div class="sectionTitleContainer flex align-items-center">
|
||||
<h2 class="sectionTitle">${TabSettings}</h2>
|
||||
<a is="emby-linkbutton" class="raised button-alt headerHelpButton" target="_blank" href="https://docs.jellyfin.org/general/networking/dlna.html">${Help}</a>
|
||||
<a is="emby-linkbutton" rel="noopener noreferrer" class="raised button-alt headerHelpButton" target="_blank" href="https://docs.jellyfin.org/general/networking/dlna.html">${Help}</a>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
|
|
@ -87,10 +87,6 @@
|
|||
transform: scale(1.3);
|
||||
}
|
||||
|
||||
.slider-no-webkit-thumb::-webkit-slider-thumb {
|
||||
opacity: 0 !important;
|
||||
}
|
||||
|
||||
.mdl-slider::-moz-range-thumb {
|
||||
-moz-appearance: none;
|
||||
width: 1.08em;
|
||||
|
|
|
@ -148,9 +148,6 @@ define(['browser', 'dom', 'layoutManager', 'keyboardnavigation', 'css!./emby-sli
|
|||
this.classList.add('mdl-slider');
|
||||
this.classList.add('mdl-js-slider');
|
||||
|
||||
if (browser.noFlex) {
|
||||
this.classList.add('slider-no-webkit-thumb');
|
||||
}
|
||||
if (browser.edge || browser.msie) {
|
||||
this.classList.add('slider-browser-edge');
|
||||
}
|
||||
|
|
|
@ -5,7 +5,7 @@
|
|||
<div class="verticalSection">
|
||||
<div class="sectionTitleContainer flex align-items-center">
|
||||
<h2 class="sectionTitle">${TabTranscoding}</h2>
|
||||
<a is="emby-linkbutton" class="raised button-alt headerHelpButton" target="_blank" href="https://docs.jellyfin.org/general/server/transcoding.html">${Help}</a>
|
||||
<a is="emby-linkbutton" rel="noopener noreferrer" class="raised button-alt headerHelpButton" target="_blank" href="https://docs.jellyfin.org/general/server/transcoding.html">${Help}</a>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
@ -21,7 +21,7 @@
|
|||
<option value="h264_v4l2m2m">Exynos V4L2 MFC</option>
|
||||
</select>
|
||||
<div class="fieldDescription">
|
||||
<a is="emby-linkbutton" class="button-link" href="https://docs.jellyfin.org/general/administration/hardware-acceleration.html" target="_blank">${LabelHardwareAccelerationTypeHelp}</a>
|
||||
<a is="emby-linkbutton" rel="noopener noreferrer" class="button-link" href="https://docs.jellyfin.org/general/administration/hardware-acceleration.html" target="_blank">${LabelHardwareAccelerationTypeHelp}</a>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
|
File diff suppressed because it is too large
Load diff
|
@ -260,7 +260,6 @@ define(["browser", "dom", "css!./navdrawer", "scrollStyles"], function (browser,
|
|||
|
||||
TouchMenuLA.prototype.showMask = function () {
|
||||
mask.classList.remove("hide");
|
||||
mask.offsetWidth;
|
||||
mask.classList.add("backdrop");
|
||||
};
|
||||
|
||||
|
|
|
@ -6,7 +6,7 @@
|
|||
<span>${ButtonScanAllLibraries}</span>
|
||||
</button>
|
||||
<progress max="100" min="0" style="display: inline-block; vertical-align: middle;" class="refreshProgress"></progress>
|
||||
<a is="emby-linkbutton" class="raised button-alt" target="_blank" href="https://docs.jellyfin.org/general/server/libraries.html">${Help}</a>
|
||||
<a is="emby-linkbutton" rel="noopener noreferrer" class="raised button-alt" target="_blank" href="https://docs.jellyfin.org/general/server/libraries.html">${Help}</a>
|
||||
</div>
|
||||
|
||||
<div id="divVirtualFolders"></div>
|
||||
|
|
|
@ -4,7 +4,7 @@
|
|||
<div class="verticalSection">
|
||||
<div class="sectionTitleContainer flex align-items-center">
|
||||
<h2 class="sectionTitle">DVR</h2>
|
||||
<a is="emby-linkbutton" class="raised button-alt headerHelpButton" target="_blank" href="https://docs.jellyfin.org/general/server/live-tv/index.html">${Help}</a>
|
||||
<a is="emby-linkbutton" rel="noopener noreferrer" class="raised button-alt headerHelpButton" target="_blank" href="https://docs.jellyfin.org/general/server/live-tv/index.html">${Help}</a>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
|
|
@ -10,7 +10,7 @@
|
|||
<button is="emby-button" type="button" class="fab btnAddDevice submit sectionTitleButton" style="margin-left:1em;" title="${ButtonAdd}">
|
||||
<span class="material-icons add"></span>
|
||||
</button>
|
||||
<a style="margin-left:2em!important;" is="emby-linkbutton" class="raised button-alt headerHelpButton" target="_blank" href="https://docs.jellyfin.org/general/server/live-tv/index.html">${Help}</a>
|
||||
<a is="emby-linkbutton" rel="noopener noreferrer" style="margin-left:2em!important;" class="raised button-alt headerHelpButton" target="_blank" href="https://docs.jellyfin.org/general/server/live-tv/index.html">${Help}</a>
|
||||
</div>
|
||||
<div class="devicesList itemsContainer vertical-wrap" data-hovermenu="false" data-multiselect="false" style="margin-top: .5em;"></div>
|
||||
</div>
|
||||
|
|
|
@ -5,7 +5,7 @@
|
|||
<div class="verticalSection">
|
||||
<div class="sectionTitleContainer flex align-items-center">
|
||||
<h1 class="sectionTitle">${HeaderLiveTvTunerSetup}</h1>
|
||||
<a is="emby-linkbutton" class="raised button-alt headerHelpButton" target="_blank" href="https://docs.jellyfin.org/general/server/live-tv/index.html">${Help}</a>
|
||||
<a is="emby-linkbutton" rel="noopener noreferrer" class="raised button-alt headerHelpButton" target="_blank" href="https://docs.jellyfin.org/general/server/live-tv/index.html">${Help}</a>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
|
|
@ -5,7 +5,7 @@
|
|||
<div class="verticalSection verticalSection-extrabottompadding">
|
||||
<div class="sectionTitleContainer flex align-items-center">
|
||||
<h2 class="sectionTitle">${TabNetworking}</h2>
|
||||
<a is="emby-linkbutton" class="raised button-alt headerHelpButton" target="_blank" href="https://docs.jellyfin.org/general/networking/index.html">${Help}</a>
|
||||
<a is="emby-linkbutton" rel="noopener noreferrer" class="raised button-alt headerHelpButton" target="_blank" href="https://docs.jellyfin.org/general/networking/index.html">${Help}</a>
|
||||
</div>
|
||||
|
||||
<div class="inputContainer">
|
||||
|
|
|
@ -8,7 +8,7 @@
|
|||
<div class="verticalSection">
|
||||
<div class="sectionTitleContainer flex align-items-center">
|
||||
<h2 class="notificationType sectionTitle"></h2>
|
||||
<a is="emby-linkbutton" class="raised button-alt headerHelpButton" target="_blank" href="https://docs.jellyfin.org/general/server/notifications.html">${Help}</a>
|
||||
<a is="emby-linkbutton" rel="noopener noreferrer" class="raised button-alt headerHelpButton" target="_blank" href="https://docs.jellyfin.org/general/server/notifications.html">${Help}</a>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
|
|
@ -4,7 +4,7 @@
|
|||
<div class="verticalSection">
|
||||
<div class="sectionTitleContainer flex align-items-center">
|
||||
<h2 class="sectionTitle taskName"></h2>
|
||||
<a is="emby-linkbutton" class="raised button-alt headerHelpButton" target="_blank" href="https://docs.jellyfin.org/general/server/tasks.html">${Help}</a>
|
||||
<a is="emby-linkbutton" rel="noopener noreferrer" class="raised button-alt headerHelpButton" target="_blank" href="https://docs.jellyfin.org/general/server/tasks.html">${Help}</a>
|
||||
</div>
|
||||
<p id="pTaskDescription"></p>
|
||||
</div>
|
||||
|
|
|
@ -53,45 +53,6 @@ define([], function () {
|
|||
return false;
|
||||
}
|
||||
|
||||
function isStyleSupported(prop, value) {
|
||||
|
||||
if (typeof window === 'undefined') {
|
||||
return false;
|
||||
}
|
||||
|
||||
// If no value is supplied, use "inherit"
|
||||
value = arguments.length === 2 ? value : 'inherit';
|
||||
// Try the native standard method first
|
||||
if ('CSS' in window && 'supports' in window.CSS) {
|
||||
return window.CSS.supports(prop, value);
|
||||
}
|
||||
// Check Opera's native method
|
||||
if ('supportsCSS' in window) {
|
||||
return window.supportsCSS(prop, value);
|
||||
}
|
||||
|
||||
// need try/catch because it's failing on tizen
|
||||
|
||||
try {
|
||||
// Convert to camel-case for DOM interactions
|
||||
var camel = prop.replace(/-([a-z]|[0-9])/ig, function (all, letter) {
|
||||
return (letter + '').toUpperCase();
|
||||
});
|
||||
// Create test element
|
||||
var el = document.createElement('div');
|
||||
// Check if the property is supported
|
||||
var support = (camel in el.style);
|
||||
// Assign the property and value to invoke
|
||||
// the CSS interpreter
|
||||
el.style.cssText = prop + ':' + value;
|
||||
// Ensure both the property and value are
|
||||
// supported and return
|
||||
return support && (el.style[camel] !== '');
|
||||
} catch (err) {
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
function hasKeyboard(browser) {
|
||||
|
||||
if (browser.touch) {
|
||||
|
@ -283,10 +244,6 @@ define([], function () {
|
|||
browser.tv = isTv();
|
||||
browser.operaTv = browser.tv && userAgent.toLowerCase().indexOf('opr/') !== -1;
|
||||
|
||||
if (!isStyleSupported('display', 'flex')) {
|
||||
browser.noFlex = true;
|
||||
}
|
||||
|
||||
if (browser.mobile || browser.tv) {
|
||||
browser.slow = true;
|
||||
}
|
||||
|
|
|
@ -38,6 +38,14 @@ define([
|
|||
controller: 'auth/selectserver',
|
||||
type: 'selectserver'
|
||||
});
|
||||
defineRoute({
|
||||
path: '/login.html',
|
||||
autoFocus: false,
|
||||
anonymous: true,
|
||||
startup: true,
|
||||
controller: 'auth/login',
|
||||
type: 'login'
|
||||
});
|
||||
defineRoute({
|
||||
path: '/forgotpassword.html',
|
||||
anonymous: true,
|
||||
|
@ -52,12 +60,6 @@ define([
|
|||
controller: 'auth/forgotpasswordpin'
|
||||
});
|
||||
|
||||
defineRoute({
|
||||
path: '/addplugin.html',
|
||||
autoFocus: false,
|
||||
roles: 'admin',
|
||||
controller: 'dashboard/plugins/add'
|
||||
});
|
||||
defineRoute({
|
||||
path: '/mypreferencesmenu.html',
|
||||
autoFocus: false,
|
||||
|
@ -137,6 +139,24 @@ define([
|
|||
roles: 'admin',
|
||||
controller: 'dashboard/dlna/dlnaprofiles'
|
||||
});
|
||||
defineRoute({
|
||||
path: '/addplugin.html',
|
||||
autoFocus: false,
|
||||
roles: 'admin',
|
||||
controller: 'dashboard/plugins/add'
|
||||
});
|
||||
defineRoute({
|
||||
path: '/library.html',
|
||||
autoFocus: false,
|
||||
roles: 'admin',
|
||||
controller: 'dashboard/medialibrarypage'
|
||||
});
|
||||
defineRoute({
|
||||
path: '/librarydisplay.html',
|
||||
autoFocus: false,
|
||||
roles: 'admin',
|
||||
controller: 'dashboard/librarydisplay'
|
||||
});
|
||||
defineRoute({
|
||||
path: '/dlnasettings.html',
|
||||
autoFocus: false,
|
||||
|
@ -154,6 +174,7 @@ define([
|
|||
roles: 'admin',
|
||||
controller: 'dashboard/encodingsettings'
|
||||
});
|
||||
|
||||
defineRoute({
|
||||
path: '/home.html',
|
||||
autoFocus: false,
|
||||
|
@ -161,6 +182,10 @@ define([
|
|||
transition: 'fade',
|
||||
type: 'home'
|
||||
});
|
||||
defineRoute({
|
||||
path: '/search.html',
|
||||
controller: 'searchpage'
|
||||
});
|
||||
defineRoute({
|
||||
path: '/list.html',
|
||||
autoFocus: false,
|
||||
|
@ -173,18 +198,6 @@ define([
|
|||
autoFocus: false,
|
||||
transition: 'fade'
|
||||
});
|
||||
defineRoute({
|
||||
path: '/library.html',
|
||||
autoFocus: false,
|
||||
roles: 'admin',
|
||||
controller: 'dashboard/medialibrarypage'
|
||||
});
|
||||
defineRoute({
|
||||
path: '/librarydisplay.html',
|
||||
autoFocus: false,
|
||||
roles: 'admin',
|
||||
controller: 'dashboard/librarydisplay'
|
||||
});
|
||||
defineRoute({
|
||||
path: '/livetv.html',
|
||||
controller: 'livetv/livetvsuggested',
|
||||
|
@ -219,14 +232,6 @@ define([
|
|||
roles: 'admin',
|
||||
controller: 'dashboard/logs'
|
||||
});
|
||||
defineRoute({
|
||||
path: '/login.html',
|
||||
autoFocus: false,
|
||||
anonymous: true,
|
||||
startup: true,
|
||||
controller: 'auth/login',
|
||||
type: 'login'
|
||||
});
|
||||
defineRoute({
|
||||
path: '/metadataimages.html',
|
||||
autoFocus: false,
|
||||
|
@ -293,10 +298,6 @@ define([
|
|||
roles: 'admin',
|
||||
controller: 'dashboard/scheduledtasks/scheduledtasks'
|
||||
});
|
||||
defineRoute({
|
||||
path: '/search.html',
|
||||
controller: 'searchpage'
|
||||
});
|
||||
defineRoute({
|
||||
path: '/serveractivity.html',
|
||||
autoFocus: false,
|
||||
|
@ -321,6 +322,7 @@ define([
|
|||
controller: 'shows/tvrecommended',
|
||||
transition: 'fade'
|
||||
});
|
||||
|
||||
defineRoute({
|
||||
path: '/useredit.html',
|
||||
autoFocus: false,
|
||||
|
@ -373,7 +375,7 @@ define([
|
|||
path: '/wizardlibrary.html',
|
||||
autoFocus: false,
|
||||
anonymous: true,
|
||||
controller: 'medialibrarypage'
|
||||
controller: 'dashboard/medialibrarypage'
|
||||
});
|
||||
defineRoute({
|
||||
path: '/wizardsettings.html',
|
||||
|
|
|
@ -2,7 +2,17 @@ let data;
|
|||
|
||||
function getConfig() {
|
||||
if (data) return Promise.resolve(data);
|
||||
return fetch('/config.json?nocache=' + new Date().getUTCMilliseconds()).then(function (response) {
|
||||
return fetch('/config.json?nocache=' + new Date().getUTCMilliseconds()).then(response => {
|
||||
data = response.json();
|
||||
return data;
|
||||
}).catch(error => {
|
||||
console.warn('web config file is missing so the template will be used');
|
||||
return getDefaultConfig();
|
||||
});
|
||||
}
|
||||
|
||||
function getDefaultConfig() {
|
||||
return fetch('/config.template.json').then(function (response) {
|
||||
data = response.json();
|
||||
return data;
|
||||
});
|
||||
|
|
|
@ -17,7 +17,7 @@
|
|||
"Albums": "Alben",
|
||||
"All": "Alle",
|
||||
"AllChannels": "Alle Kanäle",
|
||||
"AllComplexFormats": "Alle komplexen Formate (ASS, SSA, VOBSUB, PGS, SUB/IDX)",
|
||||
"AllComplexFormats": "Alle komplexen Formate (ASS, SSA, VOBSUB, PGS, SUB/IDX, ...)",
|
||||
"AllEpisodes": "Alle Folgen",
|
||||
"AllLanguages": "Alle Sprachen",
|
||||
"AllLibraries": "Alle Bibliotheken",
|
||||
|
@ -60,7 +60,7 @@
|
|||
"BoxRear": "Box (Rückseite)",
|
||||
"Browse": "Blättern",
|
||||
"BrowsePluginCatalogMessage": "Durchsuche unsere Bibliothek, um alle verfügbaren Plugins anzuzeigen.",
|
||||
"BurnSubtitlesHelp": "Legt fest, ob der Server die Untertitel während der Videotranskodierung einbrennen soll. Deaktivieren verbessert die Serverperformance immens. Wähle Auto, um bildbasierte Formate (z.B. VOBSUB, PGS, SUB, IDX) sowie bestimmte ASS- oder SSA-Untertitel einbrennen zu lassen.",
|
||||
"BurnSubtitlesHelp": "Legt fest, ob der Server die Untertitel während der Videotranskodierung einbrennen soll. Deaktivieren verbessert die Serverperformance immens. Wähle Auto, um bildbasierte Formate (z.B. VOBSUB, PGS, SUB, IDX, ...) sowie bestimmte ASS- oder SSA-Untertitel einbrennen zu lassen.",
|
||||
"ButtonAdd": "Hinzufügen",
|
||||
"ButtonAddMediaLibrary": "Füge Medienbibliothek hinzu",
|
||||
"ButtonAddScheduledTaskTrigger": "Auslöser hinzufügen",
|
||||
|
@ -1000,7 +1000,7 @@
|
|||
"OptionLikes": "Mag ich",
|
||||
"OptionMissingEpisode": "Fehlende Episoden",
|
||||
"OptionMonday": "Montag",
|
||||
"OptionNew": "Neu...",
|
||||
"OptionNew": "Neu…",
|
||||
"OptionNone": "Keines",
|
||||
"OptionOnAppStartup": "Bei Anwendungsstart",
|
||||
"OptionOnInterval": "Nach einem Intervall",
|
||||
|
@ -1528,5 +1528,6 @@
|
|||
"MessageUnauthorizedUser": "Sie sind im Moment nicht berechtigt, auf den Server zuzugreifen. Bitte kontaktieren Sie Ihren Server-Administrator für weitere Informationen.",
|
||||
"HeaderFavoritePlaylists": "Lieblings-Wiedergabeliste",
|
||||
"ButtonTogglePlaylist": "Wiedergabeliste",
|
||||
"ButtonToggleContextMenu": "Mehr"
|
||||
"ButtonToggleContextMenu": "Mehr",
|
||||
"ApiKeysCaption": "Liste der aktuell aktivierten API-Schlüssel"
|
||||
}
|
||||
|
|
|
@ -17,7 +17,7 @@
|
|||
"Alerts": "Alerts",
|
||||
"All": "All",
|
||||
"AllChannels": "All channels",
|
||||
"AllComplexFormats": "All Complex Formats (ASS, SSA, VOBSUB, PGS, SUB, IDX)",
|
||||
"AllComplexFormats": "All Complex Formats (ASS, SSA, VOBSUB, PGS, SUB, IDX, …)",
|
||||
"AllEpisodes": "All episodes",
|
||||
"AllLanguages": "All languages",
|
||||
"AllLibraries": "All libraries",
|
||||
|
@ -25,7 +25,7 @@
|
|||
"AllowMediaConversion": "Allow media conversion",
|
||||
"AllowMediaConversionHelp": "Grant or deny access to the convert media feature.",
|
||||
"AllowOnTheFlySubtitleExtraction": "Allow subtitle extraction on the fly",
|
||||
"AllowOnTheFlySubtitleExtractionHelp": "Embedded subtitles can be extracted from videos and delivered to clients in plain text in order to help prevent video transcoding. On some systems this can take a long time and cause video playback to stall during the extraction process. Disable this to have embedded subtitles burned in with video transcoding when they are not natively supported by the client device.",
|
||||
"AllowOnTheFlySubtitleExtractionHelp": "Embedded subtitles can be extracted from videos and delivered to clients in plain text, in order to help prevent video transcoding. On some systems this can take a long time and cause video playback to stall during the extraction process. Disable this to have embedded subtitles burned in with video transcoding when they are not natively supported by the client device.",
|
||||
"AllowFfmpegThrottling": "Throttle Transcodes",
|
||||
"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.",
|
||||
"AllowRemoteAccess": "Allow remote connections to this Jellyfin Server.",
|
||||
|
@ -62,7 +62,7 @@
|
|||
"BoxRear": "Box (rear)",
|
||||
"Browse": "Browse",
|
||||
"BrowsePluginCatalogMessage": "Browse our plugin catalog to view available plugins.",
|
||||
"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.",
|
||||
"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",
|
||||
"ButtonAddImage": "Add Image",
|
||||
"ButtonAddMediaLibrary": "Add Media Library",
|
||||
|
@ -311,6 +311,7 @@
|
|||
"HeaderApiKey": "API Key",
|
||||
"HeaderApiKeys": "API Keys",
|
||||
"HeaderApiKeysHelp": "External applications are required to have an API key in order to communicate with Jellyfin Server. Keys are issued by logging in with a Jellyfin account, or by manually granting the application a key.",
|
||||
"ApiKeysCaption": "List of the currently enabled API keys",
|
||||
"HeaderApp": "App",
|
||||
"HeaderAppearsOn": "Appears On",
|
||||
"HeaderAudioBooks": "Audio Books",
|
||||
|
@ -1166,7 +1167,7 @@
|
|||
"OptionMissingEpisode": "Missing Episodes",
|
||||
"OptionMonday": "Monday",
|
||||
"OptionNameSort": "Name",
|
||||
"OptionNew": "New...",
|
||||
"OptionNew": "New…",
|
||||
"OptionNone": "None",
|
||||
"OptionOnAppStartup": "On application startup",
|
||||
"OptionOnInterval": "On an interval",
|
||||
|
|
5
src/strings/eo.json
Normal file
5
src/strings/eo.json
Normal file
|
@ -0,0 +1,5 @@
|
|||
{
|
||||
"AddToCollection": "Aldoni al kolekto",
|
||||
"Actor": "Aktoro",
|
||||
"Absolute": "Absoluto"
|
||||
}
|
|
@ -957,7 +957,7 @@
|
|||
"OptionMissingEpisode": "Episodios que faltan",
|
||||
"OptionMonday": "Lunes",
|
||||
"OptionNameSort": "Nombre",
|
||||
"OptionNew": "Nuevo...",
|
||||
"OptionNew": "Nuevo…",
|
||||
"OptionNone": "Nada",
|
||||
"OptionOnAppStartup": "Al iniciar la aplicación",
|
||||
"OptionOnInterval": "En un intervalo",
|
||||
|
@ -1513,5 +1513,6 @@
|
|||
"ButtonToggleContextMenu": "Más",
|
||||
"Filter": "Filtro",
|
||||
"New": "Nuevo",
|
||||
"HeaderFavoritePlaylists": "Lista reproducción favorita"
|
||||
"HeaderFavoritePlaylists": "Lista reproducción favorita",
|
||||
"ApiKeysCaption": "Lista de las claves API actuales"
|
||||
}
|
||||
|
|
|
@ -690,5 +690,17 @@
|
|||
"SubtitleAppearanceSettingsAlsoPassedToCastDevices": "این تنظیمات همچنین در مورد هر پخش Chromecast که توسط این دستگاه شروع شده است اعمال می شود.",
|
||||
"SmartSubtitlesHelp": "زیرنویسهای متناسب با توجه به اولویت زبان بدون در نظر گرفتن زبان صوتی ویدیو پخش می شوند.",
|
||||
"SkipEpisodesAlreadyInMyLibrary": "قسمتهایی که هم اکنون در کتابخانه من موجود است را ضبط نکن",
|
||||
"SimultaneousConnectionLimitHelp": "حداکثر تعداد پخشهای مجاز همزمان. ۰ را برای بدون محدودیت وارد کنید."
|
||||
"SimultaneousConnectionLimitHelp": "حداکثر تعداد پخشهای مجاز همزمان. ۰ را برای بدون محدودیت وارد کنید.",
|
||||
"MessagePluginConfigurationRequiresLocalAccess": "برای پیکربندی این افزونه، لطفاً مستقیماً به سرور محلی خود وارد شوید.",
|
||||
"MessagePleaseWait": "لطفا صبر کنید. این ممکن است چند دقیقه طول بکشد.",
|
||||
"MessageNoServersAvailable": "هیچ سروری با استفاده از کشف خودکار سرور یافت نشد.",
|
||||
"MessageNoPluginsInstalled": "هیچ افزونهی نصب نشده است.",
|
||||
"MessageNoMovieSuggestionsAvailable": "هیچ پیشنهادی برای فیلم در دسترس نیست. شروع به تماشای و رتبه بندی فیلمهای خود بکنید ، و سپس دوباره به دیدن پیشنهادهای خود بیایید.",
|
||||
"MessageNoAvailablePlugins": "افزونهای موجود نیست.",
|
||||
"MessageItemsAdded": "آیتمها اضافه شدند.",
|
||||
"MessageItemSaved": "آیتم ذخیره شد.",
|
||||
"MessageUnauthorizedUser": "در حال حاضر مجاز به دسترسی به سرور نیستید. لطفا برای اطلاعات بیشتر با مدیر سرور خود تماس بگیرید.",
|
||||
"MessageInvalidUser": "نام کاربری یا گذرواژه نامعتبر است. لطفا دوباره تلاش کنید.",
|
||||
"MessageInvalidForgotPasswordPin": "کد پین نامعتبر یا منقضی شده وارد شد. لطفا دوباره تلاش کنید.",
|
||||
"MessageInstallPluginFromApp": "این افزونه باید از داخل برنامهای که قصد استفاده از آن را دارید نصب شود."
|
||||
}
|
||||
|
|
|
@ -7,7 +7,7 @@
|
|||
"ButtonQuickStartGuide": "Schnellstart Instruktione",
|
||||
"ButtonResetPassword": "Passwort zrug setze",
|
||||
"ButtonSave": "Speichere",
|
||||
"ButtonSignOut": "Sign out",
|
||||
"ButtonSignOut": "Uslogge",
|
||||
"ButtonSort": "Sortiere",
|
||||
"ChannelAccessHelp": "Wähl en Kanal us, um de mit dem User z'teile. Administratore werded immer d'Möglichkeit ha alli Kanäl mitm Metadate Manager z'bearbeite.",
|
||||
"Continuing": "Fortlaufend",
|
||||
|
@ -29,7 +29,7 @@
|
|||
"HeaderLatestSongs": "Letschti Songs",
|
||||
"HeaderLatestTrailers": "Letschti Trailer",
|
||||
"HeaderManagement": "Verwaltig",
|
||||
"HeaderNextUp": "Als nächts",
|
||||
"HeaderNextUp": "Als Nächstes",
|
||||
"HeaderNowPlaying": "Jetz am spelle",
|
||||
"HeaderParentalRating": "Parental Rating",
|
||||
"HeaderPaths": "Pfad",
|
||||
|
@ -131,22 +131,22 @@
|
|||
"Wednesday": "Mittwoch",
|
||||
"WelcomeToProject": "Willkomme bi Jellyfin!",
|
||||
"WizardCompleted": "Das esch alles wo mer momentan müend wüsse. Jellyfin het i de zwüscheziit agfange informatione über diini medie-bibliothek z'sammle. Lueg der es paar vo eusne Apps a und denn klick uf <b>Beende</b> um zum <b>Server Dashboard</b> z'cho.",
|
||||
"Albums": "Albom",
|
||||
"Artists": "Könstler",
|
||||
"Books": "Büecher",
|
||||
"Channels": "Kanäu",
|
||||
"Collections": "Sammlige",
|
||||
"Favorites": "Favorite",
|
||||
"Albums": "Alben",
|
||||
"Artists": "Künstler",
|
||||
"Books": "Bücher",
|
||||
"Channels": "Kanäle",
|
||||
"Collections": "Sammlungen",
|
||||
"Favorites": "Favoriten",
|
||||
"Folders": "Ordner",
|
||||
"Genres": "Genres",
|
||||
"HeaderAlbumArtists": "Albom-Könstler",
|
||||
"HeaderContinueWatching": "Wiiterluege",
|
||||
"HeaderFavoriteAlbums": "Lieblingsalbe",
|
||||
"HeaderFavoriteArtists": "Lieblings-Interprete",
|
||||
"HeaderFavoriteEpisodes": "Lieblingsepisode",
|
||||
"HeaderFavoriteShows": "Lieblingsserie",
|
||||
"HeaderAlbumArtists": "Album-Künstler",
|
||||
"HeaderContinueWatching": "weiter schauen",
|
||||
"HeaderFavoriteAlbums": "Lieblingsalben",
|
||||
"HeaderFavoriteArtists": "Lieblings-Künstler",
|
||||
"HeaderFavoriteEpisodes": "Lieblingsepisoden",
|
||||
"HeaderFavoriteShows": "Lieblingsserien",
|
||||
"HeaderFavoriteSongs": "Lieblingslieder",
|
||||
"HeaderLiveTV": "Live-Färnseh",
|
||||
"HeaderLiveTV": "Live-Fernseh",
|
||||
"HeaderRecordingGroups": "Ufnahmegruppe",
|
||||
"LabelIpAddressValue": "IP-Adrässe: {0}",
|
||||
"LabelRunningTimeValue": "Loufziit: {0}",
|
||||
|
|
|
@ -770,5 +770,7 @@
|
|||
"Raised": "מורם",
|
||||
"LabelSpecialSeasonsDisplayName": "שם תצוגת \"עונה מיוחדת\":",
|
||||
"LabelSource": "מקור:",
|
||||
"LabelSoundEffects": "אפקטי סאונד:"
|
||||
"LabelSoundEffects": "אפקטי סאונד:",
|
||||
"ButtonTogglePlaylist": "רשימת ניגון",
|
||||
"ButtonToggleContextMenu": "עוד"
|
||||
}
|
||||
|
|
|
@ -424,7 +424,7 @@
|
|||
"OptionMissingEpisode": "Hiányzó Epizódok",
|
||||
"OptionMonday": "Hétfő",
|
||||
"OptionNameSort": "Név",
|
||||
"OptionNew": "Új...",
|
||||
"OptionNew": "Új…",
|
||||
"OptionParentalRating": "Korhatár besorolás",
|
||||
"OptionPlayCount": "Lejátszások száma",
|
||||
"OptionPlayed": "Megnézett",
|
||||
|
@ -584,7 +584,7 @@
|
|||
"Aired": "Adásban",
|
||||
"Albums": "Albumok",
|
||||
"AllChannels": "Minden csatorna",
|
||||
"AllComplexFormats": "Minden összetett formátum (ASS, SSA, VOBSUB, PGS, SUB, IDX)",
|
||||
"AllComplexFormats": "Minden összetett formátum (ASS, SSA, VOBSUB, PGS, SUB, IDX, ...)",
|
||||
"AllowMediaConversion": "Média konvertálás engedélyezése",
|
||||
"AllowMediaConversionHelp": "Add meg vagy tiltsd le a média konvertálás funkcióhoz való hozzáférést.",
|
||||
"AllowRemoteAccess": "Engedélyezze a távoli kapcsolatokat a Jellyfin szerverhez.",
|
||||
|
@ -1511,5 +1511,6 @@
|
|||
"ButtonToggleContextMenu": "Továbbiak",
|
||||
"Filter": "Szűrés",
|
||||
"New": "Új",
|
||||
"HeaderFavoritePlaylists": "Kedvenc lejátszási listák"
|
||||
"HeaderFavoritePlaylists": "Kedvenc lejátszási listák",
|
||||
"ApiKeysCaption": "A jelenleg engedélyezett API kulcsok listája"
|
||||
}
|
||||
|
|
|
@ -14,13 +14,13 @@
|
|||
"Albums": "Album",
|
||||
"All": "Tutto",
|
||||
"AllChannels": "Tutti i canali",
|
||||
"AllComplexFormats": "Tutti i formati complessi (ASS, SSA, VOBSUB, PGS, SUB, IDX)",
|
||||
"AllComplexFormats": "Tutti i formati complessi (ASS, SSA, VOBSUB, PGS, SUB, IDX, ...)",
|
||||
"AllEpisodes": "Tutti gli episodi",
|
||||
"AllLanguages": "Tutte le lingue",
|
||||
"AllLibraries": "Tutte le librerie",
|
||||
"AllowHWTranscodingHelp": "Abilita il sintonizzatore per codificare i flussi al volo. Ciò potrebbe contribuire a ridurre la transcodifica richiesta dal server.",
|
||||
"AllowOnTheFlySubtitleExtraction": "Consenti l'estrazione sottotitoli al volo",
|
||||
"AllowOnTheFlySubtitleExtractionHelp": "I sottotitoli incorporati possono essere estratti dai video e consegnati ad applicazioni in testo semplice per evitare la transcodifica dei video. In alcuni sistemi questo può richiedere molto tempo e causare un rallentamento della riproduzione video durante il processo di estrazione. Disattivare questa opzione per avere i sottotitoli incorporati con la transcodifica video quando non sono supportati nativamente dal dispositivo client.",
|
||||
"AllowOnTheFlySubtitleExtractionHelp": "I sottotitoli incorporati possono essere estratti dai video e consegnati ai client in testo semplice per evitare la transcodifica dei video. In alcuni sistemi questo può richiedere molto tempo e causare un rallentamento della riproduzione video durante il processo di estrazione. Disattivare questa opzione per avere i sottotitoli incorporati con la transcodifica video quando non sono supportati nativamente dal dispositivo client.",
|
||||
"AllowRemoteAccess": "Abilita connessioni remote a questo Server Jellyfin.",
|
||||
"AllowRemoteAccessHelp": "Se deselezionato, tutte le connessioni remote saranno bloccate.",
|
||||
"AllowedRemoteAddressesHelp": "Elenco separato da virgola di indirizzi IP o voci IP / maschera di rete per reti che potranno connettersi da remoto. Se lasciato vuoto, saranno consentiti tutti gli indirizzi remoti.",
|
||||
|
@ -45,7 +45,7 @@
|
|||
"BoxRear": "Box (retro)",
|
||||
"Browse": "Esplora",
|
||||
"BrowsePluginCatalogMessage": "Sfoglia il catalogo dei Plugins.",
|
||||
"BurnSubtitlesHelp": "Determina se il server deve imprimere i sottotitoli quando i video vengono convertiti. Evitare ciò migliorerà di molto le prestazioni. Selezionare Auto per imprimere formati basati sull'immagine (VOBSUB, PGS, SUB, IDX) e alcuni sottotitoli ASS o SSA.",
|
||||
"BurnSubtitlesHelp": "Determina se il server deve imprimere i sottotitoli quando i video vengono convertiti. Evitare ciò migliorerà di molto le prestazioni. Selezionare Auto per imprimere formati basati sull'immagine (VOBSUB, PGS, SUB, IDX, ...) e alcuni sottotitoli ASS o SSA.",
|
||||
"ButtonAdd": "Aggiungi",
|
||||
"ButtonAddMediaLibrary": "Aggiungi raccolta multimediale",
|
||||
"ButtonAddScheduledTaskTrigger": "Aggiungi operazione",
|
||||
|
@ -995,7 +995,7 @@
|
|||
"OptionMissingEpisode": "Episodi mancanti",
|
||||
"OptionMonday": "Lunedì",
|
||||
"OptionNameSort": "Nome",
|
||||
"OptionNew": "Nuovo...",
|
||||
"OptionNew": "Nuovo…",
|
||||
"OptionNone": "Nessuno",
|
||||
"OptionOnAppStartup": "All'avvio",
|
||||
"OptionOnInterval": "Su intervallo",
|
||||
|
@ -1504,5 +1504,8 @@
|
|||
"MessageUnauthorizedUser": "Non sei autorizzato ad accedere in questo momento al server. Contatta l'amministratore per ulteriori dettagli.",
|
||||
"ButtonTogglePlaylist": "Playlist",
|
||||
"ButtonToggleContextMenu": "Altro",
|
||||
"HeaderFavoritePlaylists": "Playlist Favorite"
|
||||
"HeaderFavoritePlaylists": "Playlist Favorite",
|
||||
"Filter": "Filtro",
|
||||
"New": "Nuovo",
|
||||
"ApiKeysCaption": "Elenco chiavi API abilitate"
|
||||
}
|
||||
|
|
|
@ -1325,7 +1325,7 @@
|
|||
"MediaInfoPixelFormat": "픽셀 형식",
|
||||
"MapChannels": "채널 매핑",
|
||||
"LaunchWebAppOnStartupHelp": "서버가 처음 시작되면 웹 브라우저에서 웹 클라이언트를 실행하십시오. 서버 재시작의 경우에는 적용되지 않습니다.",
|
||||
"Large": "큰",
|
||||
"Large": "크게",
|
||||
"LanNetworksHelp": "대역폭을 강제로 제한할 때 로컬 네트워크로 간주되는 쉼표로 구분된 IP 주소 및 IP/서브넷 마스크 목록입니다. 지정될 경우 모든 다른 IP 주소는 외부 네트워크로 간주되며 외부 대역폭 제한이 적용됩니다. 공백일 경우 서버의 서브넷만이 로컬 네트워크로 간주됩니다.",
|
||||
"LabelffmpegPathHelp": "ffmpeg 실행 파일 혹은 ffmpeg를 포함하는 폴더 경로입니다.",
|
||||
"LabelXDlnaDocHelp": "urn:schemas-dlna-org:device-1-0 네임스페이스에 포함된 X_DLNADOC 요소의 내용을 결정합니다.",
|
||||
|
@ -1427,5 +1427,11 @@
|
|||
"NoSubtitlesHelp": "자막을 자동으로 불러오지 않습니다. 재생 중에 수동으로 켤 수 있습니다.",
|
||||
"MusicLibraryHelp": "{0}음악 이름 지정 규칙{1}을 확인하십시오.",
|
||||
"MovieLibraryHelp": "{0}영화 이름 지정 규칙{1}을 확인하십시오.",
|
||||
"MessageUnauthorizedUser": "현재 서버에 접속할 권한이 없습니다. 자세한 정보는 서버 관리자에게 문의하십시오."
|
||||
"MessageUnauthorizedUser": "현재 서버에 접속할 권한이 없습니다. 자세한 정보는 서버 관리자에게 문의하십시오.",
|
||||
"HeaderFavoritePlaylists": "즐겨찾는 플레이리스트",
|
||||
"ButtonTogglePlaylist": "플레이리스트",
|
||||
"ButtonToggleContextMenu": "더보기",
|
||||
"Rate": "평",
|
||||
"PerfectMatch": "정확히 일치",
|
||||
"OtherArtist": "다른 아티스트"
|
||||
}
|
||||
|
|
|
@ -1513,5 +1513,8 @@
|
|||
"YadifBob": "YADIF Bob",
|
||||
"Yadif": "YADIF",
|
||||
"Track": "Nummer",
|
||||
"SelectAdminUsername": "Selecteer een gebruikersnaam voor het beheerder account."
|
||||
"SelectAdminUsername": "Selecteer een gebruikersnaam voor het beheerder account.",
|
||||
"HeaderFavoritePlaylists": "Favoriete afspeellijsten",
|
||||
"ButtonTogglePlaylist": "Afspeellijst",
|
||||
"ButtonToggleContextMenu": "Meer"
|
||||
}
|
||||
|
|
|
@ -54,7 +54,7 @@
|
|||
"BoxRear": "Pudełko (tył)",
|
||||
"Browse": "Przeglądaj",
|
||||
"BrowsePluginCatalogMessage": "Przejrzyj nasz katalog wtyczek żeby zobaczyć dostępne wtyczki.",
|
||||
"BurnSubtitlesHelp": "Określa czy serwer powinien wypalać napisy podczas konwersji wideo, w zależności od formatu napisów. Unikanie wypalania napisów poprawia wydajność serwera. Wybierz Automatycznie, w celu wypalania zarówno napisów w formatach graficznych (np. VOBSUB, PGS, SUB/IDX, itp.), jak i pewnych napisów ASS/SSA.",
|
||||
"BurnSubtitlesHelp": "Określa czy serwer powinien wypalać napisy podczas konwersji wideo, w zależności od formatu napisów. Unikanie wypalania napisów znacząco poprawia wydajność serwera. Wybierz Automatycznie, w celu wypalania zarówno napisów w formatach graficznych (np. VOBSUB, PGS, SUB/IDX), jak i pewnych napisów ASS lub SSA.",
|
||||
"ButtonAdd": "Dodaj",
|
||||
"ButtonAddMediaLibrary": "Dodaj media do biblioteki",
|
||||
"ButtonAddScheduledTaskTrigger": "Dodaj wyzwalacz",
|
||||
|
@ -190,7 +190,7 @@
|
|||
"DisplayInOtherHomeScreenSections": "Wyświetlaj na ekranie startowym sekcje Ostatnio dodane i Kontynuuj odtwarzanie",
|
||||
"DisplayMissingEpisodesWithinSeasons": "Wyświetlaj w sezonach brakujące odcinki",
|
||||
"DisplayMissingEpisodesWithinSeasonsHelp": "Ta opcja musi zostać dodatkowo aktywowana w bibliotece seriali, w konfiguracji serwera.",
|
||||
"DisplayModeHelp": "Określa typ urządzenia, na którym uruchomiono Jellyfin.",
|
||||
"DisplayModeHelp": "Wybierz styl układu interfejsu.",
|
||||
"DoNotRecord": "Nie nagrywaj",
|
||||
"Down": "W dół",
|
||||
"Download": "Pobierz",
|
||||
|
@ -490,7 +490,7 @@
|
|||
"Images": "Obrazy",
|
||||
"ImportFavoriteChannelsHelp": "Jeśli aktywne, tylko kanały oznaczone jako ulubione na tunerze, będą importowane.",
|
||||
"ImportMissingEpisodesHelp": "W przypadku aktywacji tej opcji, informacje o brakujących odcinkach zostaną zaimportowane do bazy Jellyfin i będą wyświetlane na listach sezonów i seriali. Może to jednak znacznie wydłużyć czas skanowania biblioteki.",
|
||||
"InstallingPackage": "Instalowanie {0}",
|
||||
"InstallingPackage": "Instalowanie {0} (wersja {1})",
|
||||
"InstantMix": "Szybki remiks",
|
||||
"ItemCount": "{0} pozycje",
|
||||
"Items": "Pozycje",
|
||||
|
@ -953,16 +953,16 @@
|
|||
"NoNextUpItemsMessage": "Nie znaleziono niczego. Zacznij oglądać swoje seriale!",
|
||||
"NoPluginConfigurationMessage": "Ta wtyczka nie ma żadnych ustawień.",
|
||||
"NoSubtitleSearchResultsFound": "Brak wyników wyszukiwania.",
|
||||
"NoSubtitles": "Brak napisów",
|
||||
"NoSubtitles": "Brak",
|
||||
"NoSubtitlesHelp": "Domyślnie napisy nie będą wczytywane. Można je ciągle włączyć ręcznie podczas odtwarzania.",
|
||||
"None": "Brak",
|
||||
"Normal": "Normalny",
|
||||
"NumLocationsValue": "{0} foldery",
|
||||
"Off": "Wyłączone",
|
||||
"OneChannel": "Jeden kanał",
|
||||
"OnlyForcedSubtitles": "Tylko wymuszone napisy",
|
||||
"OnlyForcedSubtitles": "Tylko wymuszone",
|
||||
"OnlyForcedSubtitlesHelp": "Tylko napisy oznaczone jako wymuszone będą wczytywane.",
|
||||
"OnlyImageFormats": "Tylko formaty graficzne (VOBSUB, PGS, SUB, itp.)",
|
||||
"OnlyImageFormats": "Tylko Formaty Graficzne (VOBSUB, PGS, SUB)",
|
||||
"OptionAdminUsers": "Administratorzy",
|
||||
"OptionAlbumArtist": "Wykonawca albumu",
|
||||
"OptionAllUsers": "Wszyscy użytkownicy",
|
||||
|
@ -1100,7 +1100,7 @@
|
|||
"OptionWeekly": "Cotygodniowo",
|
||||
"OriginalAirDateValue": "Data pierwszej emisji: {0}",
|
||||
"Overview": "Opis",
|
||||
"PackageInstallCancelled": "Instalacja {0} anulowana.",
|
||||
"PackageInstallCancelled": "Instalacja {0} (wersja {1}) anulowana.",
|
||||
"PackageInstallCompleted": "Instalacja {0} zakończona.",
|
||||
"PackageInstallFailed": "Instalacja {0} nieudana.",
|
||||
"ParentalRating": "Kategoria wiekowa",
|
||||
|
@ -1470,5 +1470,18 @@
|
|||
"EnableFastImageFadeIn": "Szybkie pojawianie się obrazów",
|
||||
"Artist": "Artysta",
|
||||
"AlbumArtist": "Album artysty",
|
||||
"Album": "Album"
|
||||
"Album": "Album",
|
||||
"Person": "Osoba",
|
||||
"OtherArtist": "Inny artysta",
|
||||
"Movie": "Film",
|
||||
"MessageUnauthorizedUser": "Nie masz dostępu do zasobów serwera. Skontaktuj się z administratorem sieci, aby uzyskać więcej informacji.",
|
||||
"LabelLibraryPageSizeHelp": "Ustaw liczbę pozycji pokazywanych na stronie biblioteki. Ustaw 0, aby wyłączyć podział na strony.",
|
||||
"LabelLibraryPageSize": "Rozmiar strony biblioteki:",
|
||||
"LabelDeinterlaceMethod": "Metoda usuwania przeplotu:",
|
||||
"HeaderFavoritePlaylists": "Ulubione Playlisty",
|
||||
"Episode": "Odcinek",
|
||||
"DeinterlaceMethodHelp": "Wybierz metodę usuwania przeplotu używaną podczas transkodowania.",
|
||||
"ClientSettings": "Ustawienia klienta",
|
||||
"ButtonTogglePlaylist": "Playlista",
|
||||
"ButtonToggleContextMenu": "Więcej"
|
||||
}
|
||||
|
|
|
@ -182,7 +182,7 @@
|
|||
"DisplayInOtherHomeScreenSections": "Exibir nas seções da tela inicial como mídia recente e continuar assistindo",
|
||||
"DisplayMissingEpisodesWithinSeasons": "Exibir episódios em falta nas temporadas",
|
||||
"DisplayMissingEpisodesWithinSeasonsHelp": "Isto também deve ser ativado para as bibliotecas de TV na configuração do servidor.",
|
||||
"DisplayModeHelp": "Seleciona o tipo de tela para executar o Jellyfin.",
|
||||
"DisplayModeHelp": "Selecione o estilo de layout que deseje para a interface.",
|
||||
"DoNotRecord": "Não gravar",
|
||||
"Down": "Baixo",
|
||||
"DrmChannelsNotImported": "Canais com DRM não serão importados.",
|
||||
|
@ -626,7 +626,7 @@
|
|||
"LabelKodiMetadataEnablePathSubstitution": "Ativar substituição de local",
|
||||
"LabelKodiMetadataEnablePathSubstitutionHelp": "Ativa a substituição do local das imagens usando as configurações de substituição de local do servidor.",
|
||||
"LabelKodiMetadataSaveImagePaths": "Salvar o local das imagens dentro dos arquivos nfo",
|
||||
"LabelKodiMetadataSaveImagePathsHelp": "Isto é recomendado se os nomes dos arquivos de imagem não estão de acordo com as recomendações do Kodi.",
|
||||
"LabelKodiMetadataSaveImagePathsHelp": "Isto é recomendado se os nomes dos arquivos de imagem não estão de acordo com as exigências do Kodi.",
|
||||
"LabelKodiMetadataUser": "Salvar informações do que o usuário assiste aos NFO's para:",
|
||||
"LabelKodiMetadataUserHelp": "Salva os dados para arquivos NFO para que outras aplicações possam usar.",
|
||||
"LabelLanNetworks": "Redes LAN:",
|
||||
|
@ -1503,5 +1503,8 @@
|
|||
"UnsupportedPlayback": "O Jellyfin não pode descriptografar conteúdo protegido por DRM, porém mesmo assim fará uma tentativa para todo tipo de conteúdo, incluindo títulos protegidos. A imagem de alguns arquivos pode aparecer completamente preta devido a criptografia ou outros recursos não suportados, como títulos interativos.",
|
||||
"MessageUnauthorizedUser": "Você não está autorizado a acessar o servidor neste momento. Por favor, contate o administrador do servidor para mais informações.",
|
||||
"ButtonTogglePlaylist": "Playlist",
|
||||
"ButtonToggleContextMenu": "Mais"
|
||||
"ButtonToggleContextMenu": "Mais",
|
||||
"Filter": "Filtro",
|
||||
"New": "Novo",
|
||||
"HeaderFavoritePlaylists": "Playlists Favoritas"
|
||||
}
|
||||
|
|
|
@ -5,7 +5,7 @@
|
|||
"Albums": "Albumy",
|
||||
"All": "Všetko",
|
||||
"AllChannels": "Všetky kanály",
|
||||
"AllComplexFormats": "Všetky komplexné formáty (ASS, SSA, VOBSUB, PGS, SUB, IDX)",
|
||||
"AllComplexFormats": "Všetky komplexné formáty (ASS, SSA, VOBSUB, PGS, SUB, IDX, …)",
|
||||
"AllEpisodes": "Všetky epizódy",
|
||||
"AllLanguages": "Všetky jazyky",
|
||||
"AllLibraries": "Všetky knižnice",
|
||||
|
@ -648,7 +648,7 @@
|
|||
"OptionMissingEpisode": "Chýbajúce epizódy",
|
||||
"OptionMonday": "Pondelok",
|
||||
"OptionNameSort": "Názov",
|
||||
"OptionNew": "Nové...",
|
||||
"OptionNew": "Nové…",
|
||||
"OptionNone": "Žiadne",
|
||||
"OptionOnAppStartup": "Pri spustení aplikácie",
|
||||
"OptionParentalRating": "Rodičovské hodnotenie",
|
||||
|
@ -1180,7 +1180,7 @@
|
|||
"CancelSeries": "Ukončiť seriál",
|
||||
"ButtonSplit": "Rozdeliť",
|
||||
"ButtonAddImage": "Pridať obrázok",
|
||||
"BurnSubtitlesHelp": "Určuje, či má server vpáliť titulky počas transkódovania videa. Vynechanie tejto možnosti výrazne zvýši výkon. Vyberte možnosť Auto, pokiaľ chcete vpáliť do obrazu titulky v grafickom formáte (VOBSUB, PGS, SUB, IDX) a niektoré ASS alebo SSA titulky.",
|
||||
"BurnSubtitlesHelp": "Určuje, či má server vpáliť titulky počas transkódovania videa. Vynechanie tejto možnosti výrazne zvýši výkon. Vyberte možnosť Auto, pokiaľ chcete vpáliť do obrazu titulky v grafickom formáte (VOBSUB, PGS, SUB, IDX, …) a niektoré ASS alebo SSA titulky.",
|
||||
"BrowsePluginCatalogMessage": "Prehliadnite si náš katalóg dostupných zásuvných modulov.",
|
||||
"Browse": "Prechádzať",
|
||||
"Blacklist": "Blacklist",
|
||||
|
@ -1189,7 +1189,7 @@
|
|||
"Art": "Umenie",
|
||||
"AlwaysPlaySubtitlesHelp": "Titulky odpovedajúce jazykovej preferencií sa načítajú bez ohľadu na jazyk zvuku.",
|
||||
"AllowedRemoteAddressesHelp": "Zoznam IP adries alebo IP/netmask záznamov pre siete oddelené čiarkami z ktorých sa dá vzdialene pripojiť. Pokiaľ zoznam bude prázdny, všetky adresy budú povolené.",
|
||||
"AllowOnTheFlySubtitleExtractionHelp": "Vložené titulky môžu byť extrahované z videa a prenesené na klienta vo forme jednoduchého textu aby sa zabránilo transkódovaniu videa. Na niektorých systémoch táto operácia môže trvať dlhší čas a a spôsobiť sekanie videa počas počas extrahovania. Vypnutie tejto funkcie bude mať za následok, že titulky budú počas transkódovania vypálené do samotného videa pokiaľ klientské zariadenie natívne nepodporuje ich formát.",
|
||||
"AllowOnTheFlySubtitleExtractionHelp": "Vložené titulky môžu byť extrahované z videa a prenesené na klienta vo forme jednoduchého textu, aby sa zabránilo transkódovaniu videa. Na niektorých systémoch táto operácia môže trvať dlhší čas a a spôsobiť sekanie videa počas počas extrahovania. Vypnutie tejto funkcie bude mať za následok, že titulky budú počas transkódovania vypálené do samotného videa pokiaľ klientské zariadenie natívne nepodporuje ich formát.",
|
||||
"Watched": "Pozreté",
|
||||
"TvLibraryHelp": "Pozrite sa na {0}sprievodcu pomenovania TV programov{1}.",
|
||||
"LabelLineup": "Lineup:",
|
||||
|
@ -1507,5 +1507,6 @@
|
|||
"New": "Nové",
|
||||
"HeaderFavoritePlaylists": "Obľúbené playlisty",
|
||||
"ButtonTogglePlaylist": "Playlist",
|
||||
"ButtonToggleContextMenu": "Viac"
|
||||
"ButtonToggleContextMenu": "Viac",
|
||||
"ApiKeysCaption": "Zoznam v súčasnosti povolených API kľúčov"
|
||||
}
|
||||
|
|
|
@ -2,7 +2,7 @@
|
|||
"AccessRestrictedTryAgainLater": "För närvarande är åtkomsten begränsad. Försök igen senare.",
|
||||
"Actor": "Skådespelare",
|
||||
"Add": "Lägg till",
|
||||
"AddItemToCollectionHelp": "Lägg till objekt i samlingar genom att söka efter dem och använda deras högerklick- eller knackmeny",
|
||||
"AddItemToCollectionHelp": "Lägg till objekt i samlingar genom att söka efter dem och använda deras högerklick- eller pekmeny för att lägga till dem i en samling.",
|
||||
"AddToCollection": "Lägg till i samling",
|
||||
"AddToPlayQueue": "Lägg till i spelkö",
|
||||
"AddToPlaylist": "Lägg till i spellista",
|
||||
|
@ -898,7 +898,7 @@
|
|||
"NumLocationsValue": "{0} mappar",
|
||||
"Off": "Av",
|
||||
"OneChannel": "En kanal",
|
||||
"OnlyForcedSubtitles": "Endast tvingande undertexter",
|
||||
"OnlyForcedSubtitles": "Endast påtvingad",
|
||||
"OnlyForcedSubtitlesHelp": "Endast undertexter markerade som tvingande kommer att laddas.",
|
||||
"OnlyImageFormats": "Endast bildbaserade format (VOBSUB, PGS, SUB, etc)",
|
||||
"OptionAdminUsers": "Administratörer",
|
||||
|
@ -1492,5 +1492,20 @@
|
|||
"Artist": "Artist",
|
||||
"ButtonTogglePlaylist": "Spellista",
|
||||
"ButtonToggleContextMenu": "Mer",
|
||||
"AlbumArtist": "Albumartist"
|
||||
"AlbumArtist": "Albumartist",
|
||||
"LabelLibraryPageSize": "Bibliotekets sidstorlek:",
|
||||
"LabelDeinterlaceMethod": "Deinterlacing-metod:",
|
||||
"WeeklyAt": "{0}s vid {1}",
|
||||
"LastSeen": "Senast sedd {0}",
|
||||
"YadifBob": "YADIF Bob",
|
||||
"Yadif": "YADIF",
|
||||
"Filter": "Filter",
|
||||
"New": "Ny",
|
||||
"MessageUnauthorizedUser": "Du har inte behörighet att komma åt servern just nu. Kontakta din serveradministratör för mer information.",
|
||||
"HeaderFavoritePlaylists": "Favoritspellista",
|
||||
"OnWakeFromSleep": "Vid start från vilande läge",
|
||||
"UnsupportedPlayback": "Jellyfin kan inte dekryptera inehåll skyddat av DRM men allt inehåll kommer ändå försökas, även skyddade titlar. Vissa filer kan se helt svart ut på grund av kryptering eller andra funktioner som inte stöds, till exempel interaktiva titlar.",
|
||||
"LabelLibraryPageSizeHelp": "Sätter en begränsad sidstorlek i bibliotek. Sätt 0 för att avaktivera begränsad sidstorlek.",
|
||||
"ApiKeysCaption": "Lista av aktiva API-nycklar",
|
||||
"DeinterlaceMethodHelp": "Välj metod för borttagning av inflätning vid konvertering av inflätat inehåll."
|
||||
}
|
||||
|
|
|
@ -564,5 +564,113 @@
|
|||
"HeaderSortOrder": "Thứ tự Sắp xếp",
|
||||
"HeaderSortBy": "Sắp xếp theo",
|
||||
"HeaderStartNow": "Bắt đầu",
|
||||
"HeaderSetupLibrary": "Thiết lập thư viện nội dung của bạn"
|
||||
"HeaderSetupLibrary": "Thiết lập thư viện nội dung của bạn",
|
||||
"HeaderTracks": "Bài Hát",
|
||||
"HeaderThisUserIsCurrentlyDisabled": "Người dùng này hiện tại đang bị khoá",
|
||||
"HeaderTaskTriggers": "Kích Hoạt Tác Vụ",
|
||||
"HeaderTags": "Nhãn",
|
||||
"HeaderSubtitleProfilesHelp": "Hồ sơ phụ đề chỉ ra những định dạng phụ đề được hỗ trợ bởi thiết bị phát.",
|
||||
"HeaderSubtitleProfiles": "Hồ Sơ Phụ Đề",
|
||||
"HeaderSubtitleProfile": "Hồ Sơ Phụ Đề",
|
||||
"HeaderSubtitleDownloads": "Tải Phụ Đề",
|
||||
"HeaderSubtitleAppearance": "Giao Diện Phụ Đề",
|
||||
"HeaderStopRecording": "Ngừng Ghi Hình/Ghi Âm",
|
||||
"HeaderSpecialFeatures": "Những Phần Đặc Biệt Nổi Bật",
|
||||
"HeaderSpecialEpisodeInfo": "Thông Tin Tập Đặc Biệt",
|
||||
"HeaderShutdown": "Tắt Máy Chủ",
|
||||
"LabelCustomDeviceDisplayNameHelp": "Cung cấp một tên hiển thị riêng hoặc bỏ trống để sử dụng tên có sẵn của thiết bị.",
|
||||
"LabelCustomDeviceDisplayName": "Tên hiển thị:",
|
||||
"LabelCustomCssHelp": "Áp dụng tuỳ chỉnh riêng của bạn vào giao diện trang web.",
|
||||
"LabelCustomCss": "CSS tuỳ chọn:",
|
||||
"LabelCustomCertificatePathHelp": "Đường dẫn đến tập tin PKCS #12 chứa chứng chỉ (certificate) và khoá riêng (private key) để bật tính năng TLS trên một tên miền tuỳ chọn.",
|
||||
"LabelCustomCertificatePath": "Đường dẫn đến chứng chỉ SSL:",
|
||||
"LabelCriticRating": "Đánh giá phê bình:",
|
||||
"LabelCorruptedFrames": "Những khung hình bị lỗi:",
|
||||
"LabelContentType": "Loại nội dung:",
|
||||
"LabelCommunityRating": "Đánh giá của cộng đồng:",
|
||||
"LabelCollection": "Bộ Sưu Tập:",
|
||||
"LabelChannels": "Kênh:",
|
||||
"LabelCertificatePasswordHelp": "Nếu chứng chỉ của bạn cần mật khẩu, hãy nhập nó ở đây.",
|
||||
"LabelCertificatePassword": "Mật khẩu chứng chỉ:",
|
||||
"LabelCancelled": "Đã Huỷ",
|
||||
"LabelCachePathHelp": "Chọn một đường dẫn cho những tập tin lưu tạm như là hình ảnh. Bỏ trống để sử dụng cài đặt mặc định của máy chủ.",
|
||||
"LabelCachePath": "Đường dẫn cache:",
|
||||
"LabelCache": "Cache:",
|
||||
"LabelBurnSubtitles": "Nhúng phụ đề:",
|
||||
"LabelBlockContentWithTags": "Chặn những mục có nhãn:",
|
||||
"LabelBlastMessageIntervalHelp": "Xác định thời gian tồn tại giữa các tin nhắn (tính bằng giây).",
|
||||
"LabelBlastMessageInterval": "Thời gian tồn tại của tin nhắn (giây)",
|
||||
"LabelBitrate": "Bitrate:",
|
||||
"LabelBirthYear": "Năm sinh:",
|
||||
"LabelBirthDate": "Ngày sinh:",
|
||||
"LabelBindToLocalNetworkAddressHelp": "Không bắt buộc. Cài đặt đè địa chỉ IP nội bộ để kết nối đến máy chủ HTTP. Nếu bỏ trống, máy chủ sẽ cài đặt vào toàn bộ những địa chỉ nội bộ có sẵn. Nếu thay đổi tuỳ chọn này, cần phải khởi động lại máy chủ Jellyfin để có tác dụng.",
|
||||
"LabelBindToLocalNetworkAddress": "Cài đặt vào địa chỉ nội bộ:",
|
||||
"LabelAutomaticallyRefreshInternetMetadataEvery": "Tự động cập nhật dữ liệu bổ trợ từ Internet:",
|
||||
"LabelAuthProvider": "Nhà Cung Cấp Xác Thực:",
|
||||
"LabelAudioSampleRate": "Sample rate âm thanh:",
|
||||
"LabelAudioCodec": "Bộ giải mã âm thanh:",
|
||||
"LabelAudioChannels": "Các kênh âm thanh:",
|
||||
"LabelAudioBitrate": "Bitrate của âm thanh:",
|
||||
"LabelAudioBitDepth": "Chiều sâu của âm thanh:",
|
||||
"LabelAudio": "Âm Thanh",
|
||||
"LabelArtistsHelp": "Sử dụng dấu ; để tách rời nhiều nghệ",
|
||||
"LabelArtists": "Nghệ sĩ:",
|
||||
"LabelAppNameExample": "Ví dụ: Sickbeard, Sonarr",
|
||||
"LabelAppName": "Tên ứng dụng",
|
||||
"LabelAllowedRemoteAddressesMode": "Chế độ bộ lọc địa chỉ IP từ xa:",
|
||||
"LabelAllowedRemoteAddresses": "Bộ lọc địa chỉ IP từ xa:",
|
||||
"LabelAllowServerAutoRestartHelp": "Máy chủ chỉ khởi động lại trong thời gian rỗi khi không có người dùng đang sử dụng.",
|
||||
"LabelAllowHWTranscoding": "Cho phép chuyển mã bằng phần cứng",
|
||||
"LabelAll": "Tất Cả",
|
||||
"LabelAlbumArtists": "Nghệ sĩ album:",
|
||||
"LabelAlbumArtPN": "Bìa album PN:",
|
||||
"LabelAlbumArtMaxWidthHelp": "Độ phân giải cao nhất của bìa album thông qua upnp:albumArtURI.",
|
||||
"LabelAlbumArtMaxWidth": "Chiều ngang lớn nhất của bìa album:",
|
||||
"LabelAlbumArtMaxHeightHelp": "Độ phân giải cao nhất của bìa album thông qua upnp:albumArtURI.",
|
||||
"LabelAlbumArtMaxHeight": "Chiều cao lớn nhất của bìa album:",
|
||||
"LabelAlbumArtHelp": "PN được sử dụng cho bìa album, trong dlna:profileID thuộc tính upnp:albumArtURI. Một vài thiết bị phát cần một giá trị đặc biệt, không ảnh hưởng đến kích thước của hình ảnh.",
|
||||
"LabelAlbum": "Album:",
|
||||
"LabelAirsBeforeSeason": "Phát sóng trước mùa:",
|
||||
"LabelAirsBeforeEpisode": "Phát sóng trước tập:",
|
||||
"LabelAirsAfterSeason": "Phát sóng sau mùa:",
|
||||
"LabelAirTime": "Thời gian phát sóng:",
|
||||
"LabelAirDays": "Ngày phát sóng:",
|
||||
"LabelAccessStart": "Thời gian bắt đầu:",
|
||||
"LabelAccessEnd": "Thời gian kết thúc:",
|
||||
"LabelAccessDay": "Ngày trong tuần:",
|
||||
"LabelAbortedByServerShutdown": "(Đã huỷ bởi máy chủ ngừng hoạt động)",
|
||||
"Label3DFormat": "Định dạng 3D:",
|
||||
"Kids": "Trẻ Em",
|
||||
"Items": "Mục",
|
||||
"ItemCount": "{0} mục",
|
||||
"InstantMix": "Trộn Lẫn Nhanh",
|
||||
"InstallingPackage": "Đang cài đặt {0} (phiên bản {1})",
|
||||
"ImportMissingEpisodesHelp": "Nếu bật tuỳ chọn này, thông tin bị thiếu trong các tập phim sẽ được nhập vào cơ sở dữ liệu của máy chủ Jellyfin và hiển thị trong các phần và series. Điều này có thể làm việc quét thư viện lâu hơn rất nhiều.",
|
||||
"ImportFavoriteChannelsHelp": "Nếu bật tuỳ chọn này, chỉ những kênh yêu thích trong thiết bị bắt sóng sẽ được nhập vào.",
|
||||
"Images": "Hình Ảnh",
|
||||
"Identify": "Nhận Dạng",
|
||||
"HttpsRequiresCert": "Để bật kết nối bảo mật, bạn cần phải cung cấp một Chứng Chỉ SSL đáng tin cậy, ví dụ như \"Let's Encrypt\". Hãy cung cấp Chứng Chỉ SSL hoặc là tắt tính năng kết nối bảo mật.",
|
||||
"Horizontal": "Nằm Ngang",
|
||||
"Home": "Trang Chủ",
|
||||
"HideWatchedContentFromLatestMedia": "Ẩn những nội dung đã xem khỏi phần nội dung mới nhất",
|
||||
"Hide": "Ẩn",
|
||||
"Help": "Trợ Giúp",
|
||||
"HeadersFolders": "Thư Mục",
|
||||
"HeaderYears": "Năm",
|
||||
"HeaderXmlSettings": "Cài Đặt XML",
|
||||
"HeaderXmlDocumentAttributes": "Những Thuộc Tính Tài Liệu XML",
|
||||
"HeaderXmlDocumentAttribute": "Thuộc Tính Tài Liệu XML",
|
||||
"HeaderVideos": "Videos",
|
||||
"HeaderVideoTypes": "Kiểu Video",
|
||||
"HeaderVideoType": "Kiểu Video",
|
||||
"HeaderVideoQuality": "Chất Lượng Video",
|
||||
"HeaderUser": "Người Dùng",
|
||||
"HeaderUploadImage": "Tải Lên Hình Ảnh",
|
||||
"HeaderUpcomingOnTV": "Sắp Phát Sóng Trên TV",
|
||||
"HeaderTypeText": "Nhập nội dung",
|
||||
"HeaderTypeImageFetchers": "{0} Trình Tải Hình Ảnh",
|
||||
"HeaderTuners": "Bộ Điều Khiển Thu Phát Sóng",
|
||||
"HeaderTunerDevices": "Thiết Bị Bắt Sóng",
|
||||
"HeaderTranscodingProfileHelp": "Thêm hồ sơ chuyển mã để chỉ ra những định dạng nên dùng khi cần chuyển mã.",
|
||||
"HeaderTranscodingProfile": "Hồ Sơ Chuyển Mã"
|
||||
}
|
||||
|
|
|
@ -6,7 +6,7 @@
|
|||
<div class="verticalSection">
|
||||
<div class="sectionTitleContainer flex align-items-center">
|
||||
<h2 class="sectionTitle username"></h2>
|
||||
<a is="emby-linkbutton" class="raised button-alt headerHelpButton" target="_blank" href="https://docs.jellyfin.org/general/server/users/">${Help}</a>
|
||||
<a is="emby-linkbutton" rel="noopener noreferrer" class="raised button-alt headerHelpButton" target="_blank" href="https://docs.jellyfin.org/general/server/users/">${Help}</a>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
|
|
@ -6,7 +6,7 @@
|
|||
<div class="verticalSection">
|
||||
<div class="sectionTitleContainer flex align-items-center">
|
||||
<h2 class="sectionTitle username"></h2>
|
||||
<a is="emby-linkbutton" class="raised button-alt headerHelpButton" target="_blank" href="https://docs.jellyfin.org/general/server/users/">${Help}</a>
|
||||
<a is="emby-linkbutton" rel="noopener noreferrer" class="raised button-alt headerHelpButton" target="_blank" href="https://docs.jellyfin.org/general/server/users/">${Help}</a>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
|
|
@ -5,7 +5,7 @@
|
|||
<div class="verticalSection">
|
||||
<div class="sectionTitleContainer flex align-items-center">
|
||||
<h2 class="sectionTitle">${HeaderAddUser}</h2>
|
||||
<a is="emby-linkbutton" class="raised button-alt headerHelpButton" target="_blank" href="https://docs.jellyfin.org/general/server/users/">${Help}</a>
|
||||
<a is="emby-linkbutton" rel="noopener noreferrer" class="raised button-alt headerHelpButton" target="_blank" href="https://docs.jellyfin.org/general/server/users/">${Help}</a>
|
||||
</div>
|
||||
|
||||
<div class="inputContainer">
|
||||
|
|
|
@ -4,7 +4,7 @@
|
|||
<div class="verticalSection">
|
||||
<div class="sectionTitleContainer flex align-items-center">
|
||||
<h2 class="sectionTitle username"></h2>
|
||||
<a is="emby-linkbutton" class="raised button-alt headerHelpButton" target="_blank" href="https://docs.jellyfin.org/general/server/users/">${Help}</a>
|
||||
<a is="emby-linkbutton" rel="noopener noreferrer" class="raised button-alt headerHelpButton" target="_blank" href="https://docs.jellyfin.org/general/server/users/">${Help}</a>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
|
|
@ -4,7 +4,7 @@
|
|||
<div class="verticalSection">
|
||||
<div class="sectionTitleContainer flex align-items-center">
|
||||
<h2 class="sectionTitle username"></h2>
|
||||
<a is="emby-linkbutton" class="raised button-alt headerHelpButton" target="_blank" href="https://docs.jellyfin.org/general/server/users/">${Help}</a>
|
||||
<a is="emby-linkbutton" rel="noopener noreferrer" class="raised button-alt headerHelpButton" target="_blank" href="https://docs.jellyfin.org/general/server/users/">${Help}</a>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
|
|
@ -8,7 +8,7 @@
|
|||
<button is="emby-button" type="button" class="fab btnAddUser submit sectionTitleButton" style="margin-left:1em;" title="${ButtonAddUser}">
|
||||
<span class="material-icons add"></span>
|
||||
</button>
|
||||
<a style="margin-left:2em!important;" is="emby-linkbutton" class="raised button-alt headerHelpButton" target="_blank" href="https://docs.jellyfin.org/general/server/users/adding-managing-users.html">${Help}</a>
|
||||
<a is="emby-linkbutton" rel="noopener noreferrer" style="margin-left:2em!important;" class="raised button-alt headerHelpButton" target="_blank" href="https://docs.jellyfin.org/general/server/users/adding-managing-users.html">${Help}</a>
|
||||
</div>
|
||||
<div class="localUsers itemsContainer vertical-wrap"></div>
|
||||
</div>
|
||||
|
|
|
@ -3,7 +3,7 @@
|
|||
<div class="ui-corner-all ui-shadow wizardContent">
|
||||
<div>
|
||||
<h1 style="display:inline-block;">${HeaderSetupLibrary}</h1>
|
||||
<a href="https://docs.jellyfin.org/general/server/libraries.html" target="_blank" class="clearLink" style="margin-top:-10px;display:inline-block;vertical-align:middle;margin-left:2em;"><button is="emby-button" type="button" class="raised"><span class="material-icons info"></span><span>${ButtonHelp}</span></button></a>
|
||||
<a href="https://docs.jellyfin.org/general/server/libraries.html" rel="noopener noreferrer" target="_blank" class="clearLink" style="margin-top:-10px;display:inline-block;vertical-align:middle;margin-left:2em;"><button is="emby-button" type="button" class="raised"><span class="material-icons info"></span><span>${ButtonHelp}</span></button></a>
|
||||
</div>
|
||||
<br />
|
||||
<div id="divVirtualFolders"></div>
|
||||
|
|
|
@ -4,7 +4,7 @@
|
|||
<form class="wizardStartForm">
|
||||
<div>
|
||||
<h1 style="float:left;">${WelcomeToProject}</h1>
|
||||
<a is="emby-linkbutton" href="https://docs.jellyfin.org/general/quick-start.html" target="_blank" class="raised raised-alt" style="float:right;margin-top:20px;">
|
||||
<a is="emby-linkbutton" rel="noopener noreferrer" href="https://docs.jellyfin.org/general/quick-start.html" target="_blank" class="raised raised-alt" style="float:right;margin-top:20px;">
|
||||
<span>${ButtonQuickStartGuide}</span>
|
||||
</a>
|
||||
</div>
|
||||
|
|
|
@ -2,7 +2,6 @@ const path = require('path');
|
|||
const common = require('./webpack.common');
|
||||
const merge = require('webpack-merge');
|
||||
const packageConfig = require('./package.json');
|
||||
const postcssConfig = require('./postcss.config.js');
|
||||
|
||||
module.exports = merge(common, {
|
||||
mode: 'development',
|
||||
|
@ -16,7 +15,7 @@ module.exports = merge(common, {
|
|||
rules: [
|
||||
{
|
||||
test: /\.js$/,
|
||||
exclude: /node_modules[\\/](?!query-string|split-on-first|strict-uri-encode)/,
|
||||
exclude: /node_modules[\\/](?!jellyfin-apiclient|query-string|split-on-first|strict-uri-encode)/,
|
||||
use: {
|
||||
loader: 'babel-loader',
|
||||
options: {
|
||||
|
@ -31,7 +30,11 @@ module.exports = merge(common, {
|
|||
'css-loader',
|
||||
{
|
||||
loader: 'postcss-loader',
|
||||
options: postcssConfig()
|
||||
options: {
|
||||
config: {
|
||||
path: __dirname
|
||||
}
|
||||
}
|
||||
}
|
||||
]
|
||||
},
|
||||
|
|
|
@ -1,7 +1,6 @@
|
|||
const common = require('./webpack.common');
|
||||
const merge = require('webpack-merge');
|
||||
const packageConfig = require('./package.json');
|
||||
const postcssConfig = require('./postcss.config.js');
|
||||
|
||||
module.exports = merge(common, {
|
||||
mode: 'production',
|
||||
|
@ -9,7 +8,7 @@ module.exports = merge(common, {
|
|||
rules: [
|
||||
{
|
||||
test: /\.js$/,
|
||||
exclude: /node_modules[\\/](?!query-string|split-on-first|strict-uri-encode)/,
|
||||
exclude: /node_modules[\\/](?!jellyfin-apiclient|query-string|split-on-first|strict-uri-encode)/,
|
||||
use: {
|
||||
loader: 'babel-loader',
|
||||
options: {
|
||||
|
@ -24,7 +23,11 @@ module.exports = merge(common, {
|
|||
'css-loader',
|
||||
{
|
||||
loader: 'postcss-loader',
|
||||
options: postcssConfig()
|
||||
options: {
|
||||
config: {
|
||||
path: __dirname
|
||||
}
|
||||
}
|
||||
}
|
||||
]
|
||||
},
|
||||
|
|
117
yarn.lock
117
yarn.lock
|
@ -2436,15 +2436,6 @@ cliui@^3.2.0:
|
|||
strip-ansi "^3.0.1"
|
||||
wrap-ansi "^2.0.0"
|
||||
|
||||
cliui@^4.0.0:
|
||||
version "4.1.0"
|
||||
resolved "https://registry.yarnpkg.com/cliui/-/cliui-4.1.0.tgz#348422dbe82d800b3022eef4f6ac10bf2e4d1b49"
|
||||
integrity sha512-4FG+RSG9DL7uEwRUZXZn3SS34DiDPfzP0VOiEwtUWlE+AR2EIg+hSyvrIgUUfhdgR/UkAeW2QHgeP+hWrXs7jQ==
|
||||
dependencies:
|
||||
string-width "^2.1.1"
|
||||
strip-ansi "^4.0.0"
|
||||
wrap-ansi "^2.0.0"
|
||||
|
||||
cliui@^5.0.0:
|
||||
version "5.0.0"
|
||||
resolved "https://registry.yarnpkg.com/cliui/-/cliui-5.0.0.tgz#deefcfdb2e800784aa34f46fa08e06851c7bbbc5"
|
||||
|
@ -3174,10 +3165,10 @@ dashdash@^1.12.0:
|
|||
dependencies:
|
||||
assert-plus "^1.0.0"
|
||||
|
||||
date-fns@^2.12.0:
|
||||
version "2.12.0"
|
||||
resolved "https://registry.yarnpkg.com/date-fns/-/date-fns-2.12.0.tgz#01754c8a2f3368fc1119cf4625c3dad8c1845ee6"
|
||||
integrity sha512-qJgn99xxKnFgB1qL4jpxU7Q2t0LOn1p8KMIveef3UZD7kqjT3tpFNNdXJelEHhE+rUgffriXriw/sOSU+cS1Hw==
|
||||
date-fns@^2.13.0:
|
||||
version "2.13.0"
|
||||
resolved "https://registry.yarnpkg.com/date-fns/-/date-fns-2.13.0.tgz#d7b8a0a2d392e8d88a8024d0a46b980bbfdbd708"
|
||||
integrity sha512-xm0c61mevGF7f0XpCGtDTGpzEFC/1fpLXHbmFpxZZQJuvByIK2ozm6cSYuU+nxFYOPh2EuCfzUwlTEFwKG+h5w==
|
||||
|
||||
dateformat@^2.0.0:
|
||||
version "2.2.0"
|
||||
|
@ -5642,7 +5633,7 @@ html-comment-regex@^1.1.0, html-comment-regex@^1.1.2:
|
|||
resolved "https://registry.yarnpkg.com/html-comment-regex/-/html-comment-regex-1.1.2.tgz#97d4688aeb5c81886a364faa0cad1dda14d433a7"
|
||||
integrity sha512-P+M65QY2JQ5Y0G9KKdlDpo0zK+/OHptU5AaBwUfAIDJZk1MYf32Frm84EcOytfJE0t5JvkAnKlmjsXDnWzCJmQ==
|
||||
|
||||
html-entities@^1.2.1:
|
||||
html-entities@^1.3.1:
|
||||
version "1.3.1"
|
||||
resolved "https://registry.yarnpkg.com/html-entities/-/html-entities-1.3.1.tgz#fb9a1a4b5b14c5daba82d3e34c6ae4fe701a0e44"
|
||||
integrity sha512-rhE/4Z3hIhzHAUKbW8jVcCyuT5oJCXXqhN/6mXXVCpzTmvJnoH2HL/bt3EZ6p55jbFJBeAe1ZNpL5BugLujxNA==
|
||||
|
@ -6572,10 +6563,10 @@ jellyfin-apiclient@^1.1.1:
|
|||
version "1.0.3"
|
||||
resolved "https://github.com/jellyfin/jellyfin-noto#b784602db063734c721a46563ae5d6577ec2b35d"
|
||||
|
||||
jquery@>=1.9.1, jquery@^3.5.0:
|
||||
version "3.5.0"
|
||||
resolved "https://registry.yarnpkg.com/jquery/-/jquery-3.5.0.tgz#9980b97d9e4194611c36530e7dc46a58d7340fc9"
|
||||
integrity sha512-Xb7SVYMvygPxbFMpTFQiHh1J7HClEaThguL15N/Gg37Lri/qKyhRGZYzHRyLH8Stq3Aow0LsHO2O2ci86fCrNQ==
|
||||
jquery@>=1.9.1, jquery@^3.5.1:
|
||||
version "3.5.1"
|
||||
resolved "https://registry.yarnpkg.com/jquery/-/jquery-3.5.1.tgz#d7b4d08e1bfdb86ad2f1a3d039ea17304717abb5"
|
||||
integrity sha512-XwIBPqcMn57FxfT+Go5pzySnm4KWkT1Tv7gjrpT1srtf8Weynl6R273VJ5GjkRb51IzMp5nbaPjJXMWeju2MKg==
|
||||
|
||||
js-base64@^2.1.8, js-base64@^2.1.9:
|
||||
version "2.5.2"
|
||||
|
@ -6807,9 +6798,9 @@ levn@^0.3.0, levn@~0.3.0:
|
|||
prelude-ls "~1.1.2"
|
||||
type-check "~0.3.2"
|
||||
|
||||
"libass-wasm@https://github.com/jellyfin/JavascriptSubtitlesOctopus#4.0.0-jf-cordova":
|
||||
"libass-wasm@https://github.com/jellyfin/JavascriptSubtitlesOctopus#4.0.0-jf-smarttv":
|
||||
version "4.0.0"
|
||||
resolved "https://github.com/jellyfin/JavascriptSubtitlesOctopus#b38056588bfaebc18a8353cb1757de0a815ac879"
|
||||
resolved "https://github.com/jellyfin/JavascriptSubtitlesOctopus#58e9a3f1a7f7883556ee002545f445a430120639"
|
||||
|
||||
liftoff@^3.1.0:
|
||||
version "3.1.0"
|
||||
|
@ -7109,7 +7100,7 @@ logalot@^2.0.0, logalot@^2.1.0:
|
|||
figures "^1.3.5"
|
||||
squeak "^1.0.0"
|
||||
|
||||
loglevel@^1.6.6:
|
||||
loglevel@^1.6.8:
|
||||
version "1.6.8"
|
||||
resolved "https://registry.yarnpkg.com/loglevel/-/loglevel-1.6.8.tgz#8a25fb75d092230ecd4457270d80b54e28011171"
|
||||
integrity sha512-bsU7+gc9AJ2SqpzxwU3+1fedl8zAntbtC5XYlt3s2j1hJcn2PsXSmgN8TaLG/J1/2mod4+cE/3vNL70/c1RNCA==
|
||||
|
@ -8178,7 +8169,7 @@ os-locale@^1.4.0:
|
|||
dependencies:
|
||||
lcid "^1.0.0"
|
||||
|
||||
os-locale@^3.0.0, os-locale@^3.1.0:
|
||||
os-locale@^3.1.0:
|
||||
version "3.1.0"
|
||||
resolved "https://registry.yarnpkg.com/os-locale/-/os-locale-3.1.0.tgz#a802a6ee17f24c10483ab9935719cef4ed16bf1a"
|
||||
integrity sha512-Z8l3R4wYWM40/52Z+S265okfFj8Kt2cC2MKY+xNi3kFs+XGI7WXu/I309QQQYbRW4ijiZ+yxs9pqEhJh0DqW3Q==
|
||||
|
@ -8698,7 +8689,7 @@ plur@^3.0.1:
|
|||
dependencies:
|
||||
irregular-plurals "^2.0.0"
|
||||
|
||||
portfinder@^1.0.25:
|
||||
portfinder@^1.0.26:
|
||||
version "1.0.26"
|
||||
resolved "https://registry.yarnpkg.com/portfinder/-/portfinder-1.0.26.tgz#475658d56ca30bed72ac7f1378ed350bd1b64e70"
|
||||
integrity sha512-Xi7mKxJHHMI3rIUrnm/jjUgwhbYMkp/XKEcZX3aG4BrumLpq3nmoQMX+ClYnDZnZ/New7IatC1no5RX0zo1vXQ==
|
||||
|
@ -10591,10 +10582,10 @@ sha.js@^2.4.0, sha.js@^2.4.8:
|
|||
inherits "^2.0.1"
|
||||
safe-buffer "^5.0.1"
|
||||
|
||||
shaka-player@^2.5.10:
|
||||
version "2.5.10"
|
||||
resolved "https://registry.yarnpkg.com/shaka-player/-/shaka-player-2.5.10.tgz#6f4e72e2433002d11824a223b02edd5004e30e2b"
|
||||
integrity sha512-kS9TQL6bWODo4XNnozERZWsEiWlLZ6huspPx4ZjmMjeOBL9gwqlULLfLyO+5gA3CYV/dk9LaAi1WAEaLWckGpA==
|
||||
shaka-player@^2.5.11:
|
||||
version "2.5.11"
|
||||
resolved "https://registry.yarnpkg.com/shaka-player/-/shaka-player-2.5.11.tgz#af550a0ee3aadf7be4e64e1a4d615c8d728e0b0f"
|
||||
integrity sha512-SiZd/vCUPeKXNPnfWcBdraskdUYLtm+DITWceCZvRP4eoxxQuRI0MekVJTGqu5d7B2yW9TdQh5ojyRAjbQPFGA==
|
||||
dependencies:
|
||||
eme-encryption-scheme-polyfill "^2.0.1"
|
||||
|
||||
|
@ -10763,13 +10754,14 @@ sockjs-client@1.4.0:
|
|||
json3 "^3.3.2"
|
||||
url-parse "^1.4.3"
|
||||
|
||||
sockjs@0.3.19:
|
||||
version "0.3.19"
|
||||
resolved "https://registry.yarnpkg.com/sockjs/-/sockjs-0.3.19.tgz#d976bbe800af7bd20ae08598d582393508993c0d"
|
||||
integrity sha512-V48klKZl8T6MzatbLlzzRNhMepEys9Y4oGFpypBFFn1gLI/QQ9HtLLyWJNbPlwGLelOVOEijUbTTJeLLI59jLw==
|
||||
sockjs@0.3.20:
|
||||
version "0.3.20"
|
||||
resolved "https://registry.yarnpkg.com/sockjs/-/sockjs-0.3.20.tgz#b26a283ec562ef8b2687b44033a4eeceac75d855"
|
||||
integrity sha512-SpmVOVpdq0DJc0qArhF3E5xsxvaiqGNb73XfgBpK1y3UD5gs8DSo8aCTsuT5pX8rssdc2NDIzANwP9eCAiSdTA==
|
||||
dependencies:
|
||||
faye-websocket "^0.10.0"
|
||||
uuid "^3.0.1"
|
||||
uuid "^3.4.0"
|
||||
websocket-driver "0.6.5"
|
||||
|
||||
sort-keys-length@^1.0.0:
|
||||
version "1.0.1"
|
||||
|
@ -10886,7 +10878,7 @@ spdy-transport@^3.0.0:
|
|||
readable-stream "^3.0.6"
|
||||
wbuf "^1.7.3"
|
||||
|
||||
spdy@^4.0.1:
|
||||
spdy@^4.0.2:
|
||||
version "4.0.2"
|
||||
resolved "https://registry.yarnpkg.com/spdy/-/spdy-4.0.2.tgz#b74f466203a3eda452c02492b91fb9e84a27677b"
|
||||
integrity sha512-r46gZQZQV+Kl9oItvl1JZZqJKGr+oEkB08A6BzkiR7593/7IbtuncXHd2YoYeTsG4157ZssMu9KYvUHLcjcDoA==
|
||||
|
@ -11084,7 +11076,7 @@ string-width@^1.0.1, string-width@^1.0.2:
|
|||
is-fullwidth-code-point "^1.0.0"
|
||||
strip-ansi "^3.0.0"
|
||||
|
||||
"string-width@^1.0.2 || 2", string-width@^2.0.0, string-width@^2.1.1:
|
||||
"string-width@^1.0.2 || 2":
|
||||
version "2.1.1"
|
||||
resolved "https://registry.yarnpkg.com/string-width/-/string-width-2.1.1.tgz#ab93f27a8dc13d28cac815c462143a6d9012ae9e"
|
||||
integrity sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==
|
||||
|
@ -12298,7 +12290,7 @@ utils-merge@1.0.1:
|
|||
resolved "https://registry.yarnpkg.com/utils-merge/-/utils-merge-1.0.1.tgz#9f95710f50a267947b2ccc124741c1028427e713"
|
||||
integrity sha1-n5VxD1CiZ5R7LMwSR0HBAoQn5xM=
|
||||
|
||||
uuid@^3.0.1, uuid@^3.3.2:
|
||||
uuid@^3.0.1, uuid@^3.3.2, uuid@^3.4.0:
|
||||
version "3.4.0"
|
||||
resolved "https://registry.yarnpkg.com/uuid/-/uuid-3.4.0.tgz#b23e4358afa8a202fe7a100af1f5f883f02007ee"
|
||||
integrity sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A==
|
||||
|
@ -12535,10 +12527,10 @@ webpack-dev-middleware@^3.7.2:
|
|||
range-parser "^1.2.1"
|
||||
webpack-log "^2.0.0"
|
||||
|
||||
webpack-dev-server@^3.10.3:
|
||||
version "3.10.3"
|
||||
resolved "https://registry.yarnpkg.com/webpack-dev-server/-/webpack-dev-server-3.10.3.tgz#f35945036813e57ef582c2420ef7b470e14d3af0"
|
||||
integrity sha512-e4nWev8YzEVNdOMcNzNeCN947sWJNd43E5XvsJzbAL08kGc2frm1tQ32hTJslRS+H65LCb/AaUCYU7fjHCpDeQ==
|
||||
webpack-dev-server@^3.11.0:
|
||||
version "3.11.0"
|
||||
resolved "https://registry.yarnpkg.com/webpack-dev-server/-/webpack-dev-server-3.11.0.tgz#8f154a3bce1bcfd1cc618ef4e703278855e7ff8c"
|
||||
integrity sha512-PUxZ+oSTxogFQgkTtFndEtJIPNmml7ExwufBZ9L2/Xyyd5PnOL5UreWe5ZT7IU25DSdykL9p1MLQzmLh2ljSeg==
|
||||
dependencies:
|
||||
ansi-html "0.0.7"
|
||||
bonjour "^3.5.0"
|
||||
|
@ -12548,31 +12540,31 @@ webpack-dev-server@^3.10.3:
|
|||
debug "^4.1.1"
|
||||
del "^4.1.1"
|
||||
express "^4.17.1"
|
||||
html-entities "^1.2.1"
|
||||
html-entities "^1.3.1"
|
||||
http-proxy-middleware "0.19.1"
|
||||
import-local "^2.0.0"
|
||||
internal-ip "^4.3.0"
|
||||
ip "^1.1.5"
|
||||
is-absolute-url "^3.0.3"
|
||||
killable "^1.0.1"
|
||||
loglevel "^1.6.6"
|
||||
loglevel "^1.6.8"
|
||||
opn "^5.5.0"
|
||||
p-retry "^3.0.1"
|
||||
portfinder "^1.0.25"
|
||||
portfinder "^1.0.26"
|
||||
schema-utils "^1.0.0"
|
||||
selfsigned "^1.10.7"
|
||||
semver "^6.3.0"
|
||||
serve-index "^1.9.1"
|
||||
sockjs "0.3.19"
|
||||
sockjs "0.3.20"
|
||||
sockjs-client "1.4.0"
|
||||
spdy "^4.0.1"
|
||||
spdy "^4.0.2"
|
||||
strip-ansi "^3.0.1"
|
||||
supports-color "^6.1.0"
|
||||
url "^0.11.0"
|
||||
webpack-dev-middleware "^3.7.2"
|
||||
webpack-log "^2.0.0"
|
||||
ws "^6.2.1"
|
||||
yargs "12.0.5"
|
||||
yargs "^13.3.2"
|
||||
|
||||
webpack-log@^2.0.0:
|
||||
version "2.0.0"
|
||||
|
@ -12641,6 +12633,13 @@ webpack@^4.26.1, webpack@^4.41.5:
|
|||
watchpack "^1.6.1"
|
||||
webpack-sources "^1.4.1"
|
||||
|
||||
websocket-driver@0.6.5:
|
||||
version "0.6.5"
|
||||
resolved "https://registry.yarnpkg.com/websocket-driver/-/websocket-driver-0.6.5.tgz#5cb2556ceb85f4373c6d8238aa691c8454e13a36"
|
||||
integrity sha1-XLJVbOuF9Dc8bYI4qmkchFThOjY=
|
||||
dependencies:
|
||||
websocket-extensions ">=0.1.1"
|
||||
|
||||
websocket-driver@>=0.5.1:
|
||||
version "0.7.3"
|
||||
resolved "https://registry.yarnpkg.com/websocket-driver/-/websocket-driver-0.7.3.tgz#a2d4e0d4f4f116f1e6297eba58b05d430100e9f9"
|
||||
|
@ -12793,7 +12792,7 @@ y18n@^3.2.1:
|
|||
resolved "https://registry.yarnpkg.com/y18n/-/y18n-3.2.1.tgz#6d15fba884c08679c0d77e88e7759e811e07fa41"
|
||||
integrity sha1-bRX7qITAhnnA136I53WegR4H+kE=
|
||||
|
||||
"y18n@^3.2.1 || ^4.0.0", y18n@^4.0.0:
|
||||
y18n@^4.0.0:
|
||||
version "4.0.0"
|
||||
resolved "https://registry.yarnpkg.com/y18n/-/y18n-4.0.0.tgz#95ef94f85ecc81d007c264e190a120f0a3c8566b"
|
||||
integrity sha512-r9S/ZyXu/Xu9q1tYlpsLIsa3EeLXXk0VwlxqTcFRfg9EhMW+17kbt9G0NrgCmhGb5vT2hyhJZLfDGx+7+5Uj/w==
|
||||
|
@ -12822,14 +12821,6 @@ yargs-parser@^10.0.0:
|
|||
dependencies:
|
||||
camelcase "^4.1.0"
|
||||
|
||||
yargs-parser@^11.1.1:
|
||||
version "11.1.1"
|
||||
resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-11.1.1.tgz#879a0865973bca9f6bab5cbdf3b1c67ec7d3bcf4"
|
||||
integrity sha512-C6kB/WJDiaxONLJQnF8ccx9SEeoTTLek8RVbaOIsrAUS8VrBEXfmeSnCZxygc+XC2sNMBIwOOnfcxiynjHsVSQ==
|
||||
dependencies:
|
||||
camelcase "^5.0.0"
|
||||
decamelize "^1.2.0"
|
||||
|
||||
yargs-parser@^13.1.0, yargs-parser@^13.1.2:
|
||||
version "13.1.2"
|
||||
resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-13.1.2.tgz#130f09702ebaeef2650d54ce6e3e5706f7a4fb38"
|
||||
|
@ -12860,24 +12851,6 @@ yargs-parser@^5.0.0:
|
|||
dependencies:
|
||||
camelcase "^3.0.0"
|
||||
|
||||
yargs@12.0.5:
|
||||
version "12.0.5"
|
||||
resolved "https://registry.yarnpkg.com/yargs/-/yargs-12.0.5.tgz#05f5997b609647b64f66b81e3b4b10a368e7ad13"
|
||||
integrity sha512-Lhz8TLaYnxq/2ObqHDql8dX8CJi97oHxrjUcYtzKbbykPtVW9WB+poxI+NM2UIzsMgNCZTIf0AQwsjK5yMAqZw==
|
||||
dependencies:
|
||||
cliui "^4.0.0"
|
||||
decamelize "^1.2.0"
|
||||
find-up "^3.0.0"
|
||||
get-caller-file "^1.0.1"
|
||||
os-locale "^3.0.0"
|
||||
require-directory "^2.1.1"
|
||||
require-main-filename "^1.0.1"
|
||||
set-blocking "^2.0.0"
|
||||
string-width "^2.0.0"
|
||||
which-module "^2.0.0"
|
||||
y18n "^3.2.1 || ^4.0.0"
|
||||
yargs-parser "^11.1.1"
|
||||
|
||||
yargs@13.2.4:
|
||||
version "13.2.4"
|
||||
resolved "https://registry.yarnpkg.com/yargs/-/yargs-13.2.4.tgz#0b562b794016eb9651b98bd37acf364aa5d6dc83"
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue