mirror of
https://github.com/jellyfin/jellyfin-web
synced 2025-03-30 19:56:21 +00:00
commit
3ae68f9ce2
64 changed files with 566 additions and 327 deletions
|
@ -3361,6 +3361,22 @@
|
||||||
});
|
});
|
||||||
};
|
};
|
||||||
|
|
||||||
|
self.cancelSyncItems = function (itemIds, targetId) {
|
||||||
|
|
||||||
|
if (!itemIds) {
|
||||||
|
throw new Error("null itemIds");
|
||||||
|
}
|
||||||
|
|
||||||
|
var url = self.getUrl("Sync/" + (targetId || self.deviceId()) + "/Items", {
|
||||||
|
ItemIds: itemIds.join(',')
|
||||||
|
});
|
||||||
|
|
||||||
|
return self.ajax({
|
||||||
|
type: "DELETE",
|
||||||
|
url: url
|
||||||
|
});
|
||||||
|
};
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Reports a user has stopped playing an item
|
* Reports a user has stopped playing an item
|
||||||
* @param {String} userId
|
* @param {String} userId
|
||||||
|
|
|
@ -130,11 +130,11 @@
|
||||||
* @param {DOMElement} elem the header element
|
* @param {DOMElement} elem the header element
|
||||||
* @param {Object} options options for the widget
|
* @param {Object} options options for the widget
|
||||||
*/
|
*/
|
||||||
function Headroom(elem, options) {
|
function Headroom(elems, options) {
|
||||||
options = extend(options, Headroom.options);
|
options = extend(options, Headroom.options);
|
||||||
|
|
||||||
this.lastKnownScrollY = 0;
|
this.lastKnownScrollY = 0;
|
||||||
this.elem = elem;
|
this.elems = elems;
|
||||||
this.debouncer = new Debouncer(this.update.bind(this));
|
this.debouncer = new Debouncer(this.update.bind(this));
|
||||||
this.tolerance = normalizeTolerance(options.tolerance);
|
this.tolerance = normalizeTolerance(options.tolerance);
|
||||||
this.classes = options.classes;
|
this.classes = options.classes;
|
||||||
|
@ -143,8 +143,6 @@
|
||||||
this.initialised = false;
|
this.initialised = false;
|
||||||
this.onPin = options.onPin;
|
this.onPin = options.onPin;
|
||||||
this.onUnpin = options.onUnpin;
|
this.onUnpin = options.onUnpin;
|
||||||
this.onTop = options.onTop;
|
|
||||||
this.onNotTop = options.onNotTop;
|
|
||||||
}
|
}
|
||||||
Headroom.prototype = {
|
Headroom.prototype = {
|
||||||
constructor: Headroom,
|
constructor: Headroom,
|
||||||
|
@ -154,13 +152,30 @@
|
||||||
*/
|
*/
|
||||||
init: function () {
|
init: function () {
|
||||||
|
|
||||||
this.elem.classList.add(this.classes.initial);
|
for (var i = 0, length = this.elems.length; i < length; i++) {
|
||||||
|
this.elems[i].classList.add(this.classes.initial);
|
||||||
|
}
|
||||||
|
|
||||||
this.attachEvent();
|
this.attachEvent();
|
||||||
|
|
||||||
return this;
|
return this;
|
||||||
},
|
},
|
||||||
|
|
||||||
|
add: function (elem) {
|
||||||
|
elem.classList.add(this.classes.initial);
|
||||||
|
this.elems.push(elem);
|
||||||
|
},
|
||||||
|
|
||||||
|
remove: function (elem) {
|
||||||
|
|
||||||
|
var classes = this.classes;
|
||||||
|
elem.classList.remove(classes.unpinned, classes.pinned, classes.initial);
|
||||||
|
var i = this.elems.indexOf(elem);
|
||||||
|
if (i != -1) {
|
||||||
|
this.elems.splice(i, 1);
|
||||||
|
}
|
||||||
|
},
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Unattaches events and removes any classes that were added
|
* Unattaches events and removes any classes that were added
|
||||||
*/
|
*/
|
||||||
|
@ -168,7 +183,11 @@
|
||||||
var classes = this.classes;
|
var classes = this.classes;
|
||||||
|
|
||||||
this.initialised = false;
|
this.initialised = false;
|
||||||
this.elem.classList.remove(classes.unpinned, classes.pinned, classes.top, classes.initial);
|
|
||||||
|
for (var i = 0, length = this.elems.length; i < length; i++) {
|
||||||
|
this.elems[i].classList.remove(classes.unpinned, classes.pinned, classes.initial);
|
||||||
|
}
|
||||||
|
|
||||||
removeEventListenerWithOptions(this.scroller, 'scroll', this.debouncer, {
|
removeEventListenerWithOptions(this.scroller, 'scroll', this.debouncer, {
|
||||||
capture: false,
|
capture: false,
|
||||||
passive: true
|
passive: true
|
||||||
|
@ -196,13 +215,17 @@
|
||||||
* Unpins the header if it's currently pinned
|
* Unpins the header if it's currently pinned
|
||||||
*/
|
*/
|
||||||
unpin: function () {
|
unpin: function () {
|
||||||
var classList = this.elem.classList,
|
|
||||||
classes = this.classes;
|
|
||||||
|
|
||||||
if (classList.contains(classes.pinned) || !classList.contains(classes.unpinned)) {
|
var classes = this.classes;
|
||||||
classList.add(classes.unpinned);
|
|
||||||
classList.remove(classes.pinned);
|
for (var i = 0, length = this.elems.length; i < length; i++) {
|
||||||
this.onUnpin && this.onUnpin.call(this);
|
var classList = this.elems[i].classList;
|
||||||
|
|
||||||
|
if (classList.contains(classes.pinned) || !classList.contains(classes.unpinned)) {
|
||||||
|
classList.add(classes.unpinned);
|
||||||
|
classList.remove(classes.pinned);
|
||||||
|
this.onUnpin && this.onUnpin.call(this);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
|
||||||
|
@ -210,42 +233,19 @@
|
||||||
* Pins the header if it's currently unpinned
|
* Pins the header if it's currently unpinned
|
||||||
*/
|
*/
|
||||||
pin: function () {
|
pin: function () {
|
||||||
var classList = this.elem.classList,
|
|
||||||
classes = this.classes;
|
|
||||||
|
|
||||||
if (classList.contains(classes.unpinned)) {
|
var classes = this.classes;
|
||||||
classList.remove(classes.unpinned);
|
|
||||||
classList.add(classes.pinned);
|
for (var i = 0, length = this.elems.length; i < length; i++) {
|
||||||
this.onPin && this.onPin.call(this);
|
var classList = this.elems[i].classList;
|
||||||
|
|
||||||
|
if (classList.contains(classes.unpinned)) {
|
||||||
|
classList.remove(classes.unpinned);
|
||||||
|
classList.add(classes.pinned);
|
||||||
|
this.onPin && this.onPin.call(this);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
},
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Handles the top states
|
|
||||||
*/
|
|
||||||
top: function () {
|
|
||||||
var classList = this.elem.classList,
|
|
||||||
classes = this.classes;
|
|
||||||
|
|
||||||
if (!classList.contains(classes.top)) {
|
|
||||||
classList.add(classes.top);
|
|
||||||
classList.remove(classes.notTop);
|
|
||||||
this.onTop && this.onTop.call(this);
|
|
||||||
}
|
|
||||||
},
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Handles the not top state
|
|
||||||
*/
|
|
||||||
notTop: function () {
|
|
||||||
var classList = this.elem.classList,
|
|
||||||
classes = this.classes;
|
|
||||||
|
|
||||||
if (!classList.contains(classes.notTop)) {
|
|
||||||
classList.add(classes.notTop);
|
|
||||||
classList.remove(classes.top);
|
|
||||||
this.onNotTop && this.onNotTop.call(this);
|
|
||||||
}
|
|
||||||
},
|
},
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -315,14 +315,6 @@
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (this.enableTopClasses) {
|
|
||||||
if (currentScrollY <= this.offset) {
|
|
||||||
this.top();
|
|
||||||
} else {
|
|
||||||
this.notTop();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
if (this.shouldUnpin(currentScrollY, toleranceExceeded)) {
|
if (this.shouldUnpin(currentScrollY, toleranceExceeded)) {
|
||||||
this.unpin();
|
this.unpin();
|
||||||
}
|
}
|
||||||
|
@ -347,8 +339,6 @@
|
||||||
classes: {
|
classes: {
|
||||||
pinned: 'headroom--pinned',
|
pinned: 'headroom--pinned',
|
||||||
unpinned: 'headroom--unpinned',
|
unpinned: 'headroom--unpinned',
|
||||||
top: 'headroom--top',
|
|
||||||
notTop: 'headroom--not-top',
|
|
||||||
initial: 'headroom'
|
initial: 'headroom'
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
<div id="channelsPage" data-role="page" data-dom-cache="true" class="page libraryPage channelsPage pageWithAbsoluteTabs" data-contextname="${HeaderChannels}" data-require="scripts/channels,scripts/channelslatest,scripts/sections">
|
<div id="channelsPage" data-role="page" data-dom-cache="true" class="page libraryPage channelsPage pageWithAbsoluteTabs" data-contextname="${HeaderChannels}">
|
||||||
|
|
||||||
<div is="emby-tabs" class="libraryViewNav">
|
<div is="emby-tabs" class="libraryViewNav">
|
||||||
<div class="emby-tabs-slider">
|
<div class="emby-tabs-slider">
|
||||||
|
|
|
@ -5,16 +5,9 @@
|
||||||
right: 0;
|
right: 0;
|
||||||
z-index: 1;
|
z-index: 1;
|
||||||
bottom: 0;
|
bottom: 0;
|
||||||
}
|
|
||||||
|
|
||||||
.appfooter-headroom {
|
|
||||||
transition: transform 180ms linear;
|
transition: transform 180ms linear;
|
||||||
}
|
}
|
||||||
|
|
||||||
.appfooter--pinned {
|
.appfooter.headroom--unpinned {
|
||||||
transform: none;
|
|
||||||
}
|
|
||||||
|
|
||||||
.appfooter--unpinned {
|
|
||||||
transform: translateY(100%);
|
transform: translateY(100%);
|
||||||
}
|
}
|
|
@ -13,27 +13,10 @@
|
||||||
|
|
||||||
function initHeadRoom(instance, elem) {
|
function initHeadRoom(instance, elem) {
|
||||||
|
|
||||||
require(["headroom"], function () {
|
require(["headroom-window"], function (headroom) {
|
||||||
|
|
||||||
// construct an instance of Headroom, passing the element
|
self.headroom = headroom;
|
||||||
var headroom = new Headroom(elem, {
|
headroom.add(elem);
|
||||||
// or scroll tolerance per direction
|
|
||||||
tolerance: {
|
|
||||||
down: 20,
|
|
||||||
up: 0
|
|
||||||
},
|
|
||||||
classes: {
|
|
||||||
pinned: 'appfooter--pinned',
|
|
||||||
unpinned: 'appfooter--unpinned',
|
|
||||||
top: 'appfooter--top',
|
|
||||||
notTop: 'appfooter--not-top',
|
|
||||||
initial: 'appfooter-headroom'
|
|
||||||
}
|
|
||||||
});
|
|
||||||
// initialise
|
|
||||||
headroom.init();
|
|
||||||
|
|
||||||
instance.headroom = headroom;
|
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -62,10 +45,11 @@
|
||||||
var self = this;
|
var self = this;
|
||||||
|
|
||||||
if (self.headroom) {
|
if (self.headroom) {
|
||||||
self.headroom.destroy();
|
self.headroom.remove(self.element);
|
||||||
|
self.headroom = null;
|
||||||
}
|
}
|
||||||
|
|
||||||
self.Element = null;
|
self.element = null;
|
||||||
};
|
};
|
||||||
|
|
||||||
return dockedTabs;
|
return dockedTabs;
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
.touch-menu-la {
|
.touch-menu-la {
|
||||||
width: 240px;
|
width: 280px;
|
||||||
position: fixed;
|
position: fixed;
|
||||||
top: 0;
|
top: 0;
|
||||||
bottom: 0;
|
bottom: 0;
|
||||||
|
|
|
@ -97,7 +97,10 @@
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
var edgeHammer = new Hammer(options.edgeSwipeElement, null);
|
require(['hammer-main'], initEdgeSwipeInternal);
|
||||||
|
}
|
||||||
|
|
||||||
|
function initEdgeSwipeInternal(edgeHammer) {
|
||||||
var isPeeking = false;
|
var isPeeking = false;
|
||||||
|
|
||||||
edgeHammer.on('panstart panmove', function (ev) {
|
edgeHammer.on('panstart panmove', function (ev) {
|
||||||
|
|
|
@ -100,7 +100,7 @@ paper-input + .fieldDescription {
|
||||||
top: 0;
|
top: 0;
|
||||||
right: 0;
|
right: 0;
|
||||||
bottom: 0;
|
bottom: 0;
|
||||||
left: 270px;
|
left: 280px;
|
||||||
}
|
}
|
||||||
|
|
||||||
.dashboardDocument .adminDrawerLogo {
|
.dashboardDocument .adminDrawerLogo {
|
||||||
|
|
|
@ -1,11 +1,11 @@
|
||||||
@media all and (min-width: 300px) {
|
@media all and (min-width: 300px) {
|
||||||
|
|
||||||
.libraryViewNav, .libraryViewNav > .contentScrollSlider {
|
.libraryViewNav, .emby-tabs-slider {
|
||||||
display: flex;
|
display: flex;
|
||||||
flex-grow: 1;
|
flex-grow: 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
.libraryViewNav .emby-tab-button {
|
.emby-tab-button {
|
||||||
flex-grow: 1;
|
flex-grow: 1;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -38,7 +38,7 @@
|
||||||
<div class="syncLocalContainer hide" style="margin-top:1em; display: inline-flex; padding: 0 .5em;">
|
<div class="syncLocalContainer hide" style="margin-top:1em; display: inline-flex; padding: 0 .5em;">
|
||||||
<label class="checkboxContainer" style="margin:0;">
|
<label class="checkboxContainer" style="margin:0;">
|
||||||
<input type="checkbox" is="emby-checkbox" class="chkOffline" />
|
<input type="checkbox" is="emby-checkbox" class="chkOffline" />
|
||||||
<span>Make Available Offline</span>
|
<span>${MakeAvailableOffline}</span>
|
||||||
</label>
|
</label>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
@ -62,7 +62,7 @@
|
||||||
<div class="syncLocalContainer hide" style="margin-top:1em; display: inline-flex; padding: 0 .5em;">
|
<div class="syncLocalContainer hide" style="margin-top:1em; display: inline-flex; padding: 0 .5em;">
|
||||||
<label class="checkboxContainer" style="margin:0;">
|
<label class="checkboxContainer" style="margin:0;">
|
||||||
<input type="checkbox" is="emby-checkbox" class="chkOffline" />
|
<input type="checkbox" is="emby-checkbox" class="chkOffline" />
|
||||||
<span>Make Available Offline</span>
|
<span>${MakeAvailableOffline}</span>
|
||||||
</label>
|
</label>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
define(['libraryBrowser', 'cardBuilder', 'emby-itemscontainer', 'emby-tabs', 'emby-button'], function (libraryBrowser, cardBuilder) {
|
define(['libraryBrowser', 'cardBuilder', 'emby-itemscontainer', 'emby-tabs', 'emby-button', 'scripts/channelslatest', 'scripts/sections'], function (libraryBrowser, cardBuilder) {
|
||||||
|
|
||||||
// The base query options
|
// The base query options
|
||||||
var query = {
|
var query = {
|
||||||
|
@ -70,18 +70,29 @@
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
pageIdOn('pageinit', "channelsPage", function () {
|
return function (view, params) {
|
||||||
|
|
||||||
var page = this;
|
var self = this;
|
||||||
|
var viewTabs = view.querySelector('.libraryViewNav');
|
||||||
|
|
||||||
var mdlTabs = page.querySelector('.libraryViewNav');
|
libraryBrowser.configurePaperLibraryTabs(view, viewTabs, view.querySelectorAll('.pageTabContent'), [0, 1]);
|
||||||
|
|
||||||
libraryBrowser.configurePaperLibraryTabs(page, mdlTabs, page.querySelectorAll('.pageTabContent'), [0, 1]);
|
viewTabs.addEventListener('tabchange', function (e) {
|
||||||
|
loadTab(view, parseInt(e.detail.selectedTabIndex));
|
||||||
mdlTabs.addEventListener('tabchange', function (e) {
|
|
||||||
loadTab(page, parseInt(e.detail.selectedTabIndex));
|
|
||||||
});
|
});
|
||||||
|
|
||||||
});
|
if (AppInfo.enableHeadRoom) {
|
||||||
|
require(["headroom-window"], function (headroom) {
|
||||||
|
headroom.add(viewTabs);
|
||||||
|
self.headroom = headroom;
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
view.addEventListener('viewdestroy', function (e) {
|
||||||
|
|
||||||
|
if (self.headroom) {
|
||||||
|
self.headroom.remove(viewTabs);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
};
|
||||||
});
|
});
|
|
@ -248,9 +248,9 @@
|
||||||
loadHomeTab(view, tabContent);
|
loadHomeTab(view, tabContent);
|
||||||
};
|
};
|
||||||
|
|
||||||
var mdlTabs = view.querySelector('.libraryViewNav');
|
var viewTabs = view.querySelector('.libraryViewNav');
|
||||||
|
|
||||||
libraryBrowser.configurePaperLibraryTabs(view, mdlTabs, view.querySelectorAll('.pageTabContent'), [0, 1, 2, 3]);
|
libraryBrowser.configurePaperLibraryTabs(view, viewTabs, view.querySelectorAll('.pageTabContent'), [0, 1, 2, 3]);
|
||||||
|
|
||||||
var tabControllers = [];
|
var tabControllers = [];
|
||||||
var renderedTabs = [];
|
var renderedTabs = [];
|
||||||
|
@ -319,11 +319,11 @@
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
mdlTabs.addEventListener('beforetabchange', function (e) {
|
viewTabs.addEventListener('beforetabchange', function (e) {
|
||||||
preLoadTab(view, parseInt(e.detail.selectedTabIndex));
|
preLoadTab(view, parseInt(e.detail.selectedTabIndex));
|
||||||
});
|
});
|
||||||
|
|
||||||
mdlTabs.addEventListener('tabchange', function (e) {
|
viewTabs.addEventListener('tabchange', function (e) {
|
||||||
loadTab(view, parseInt(e.detail.selectedTabIndex));
|
loadTab(view, parseInt(e.detail.selectedTabIndex));
|
||||||
});
|
});
|
||||||
|
|
||||||
|
@ -343,7 +343,7 @@
|
||||||
|
|
||||||
if (state.NowPlayingItem && state.NowPlayingItem.MediaType == 'Video') {
|
if (state.NowPlayingItem && state.NowPlayingItem.MediaType == 'Video') {
|
||||||
|
|
||||||
mdlTabs.triggerTabChange();
|
viewTabs.triggerTabChange();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -370,5 +370,18 @@
|
||||||
Events.off(MediaController, 'playbackstop', onPlaybackStop);
|
Events.off(MediaController, 'playbackstop', onPlaybackStop);
|
||||||
Events.off(ApiClient, "websocketmessage", onWebSocketMessage);
|
Events.off(ApiClient, "websocketmessage", onWebSocketMessage);
|
||||||
});
|
});
|
||||||
|
|
||||||
|
if (AppInfo.enableHeadRoom) {
|
||||||
|
require(["headroom-window"], function (headroom) {
|
||||||
|
headroom.add(viewTabs);
|
||||||
|
self.headroom = headroom;
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
view.addEventListener('viewdestroy', function (e) {
|
||||||
|
if (self.headroom) {
|
||||||
|
self.headroom.remove(viewTabs);
|
||||||
|
}
|
||||||
|
});
|
||||||
};
|
};
|
||||||
});
|
});
|
|
@ -90,7 +90,7 @@
|
||||||
var elems = page.querySelectorAll('.chkOffline');
|
var elems = page.querySelectorAll('.chkOffline');
|
||||||
for (i = 0, length = elems.length; i < length; i++) {
|
for (i = 0, length = elems.length; i < length; i++) {
|
||||||
|
|
||||||
elems[i].checked = item.SyncPercent == 100;
|
elems[i].checked = item.SyncPercent != null;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1127,7 +1127,8 @@
|
||||||
showTitle: true,
|
showTitle: true,
|
||||||
centerText: true,
|
centerText: true,
|
||||||
lazy: true,
|
lazy: true,
|
||||||
overlayPlayButton: true
|
overlayPlayButton: true,
|
||||||
|
allowBottomPadding: !scrollX
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
else if (item.Type == "Season") {
|
else if (item.Type == "Season") {
|
||||||
|
@ -1141,7 +1142,7 @@
|
||||||
overlayText: true,
|
overlayText: true,
|
||||||
lazy: true,
|
lazy: true,
|
||||||
showDetailsMenu: true,
|
showDetailsMenu: true,
|
||||||
overlayPlayButton: AppInfo.enableAppLayouts
|
overlayPlayButton: AppInfo.enableAppLayouts,
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
else if (item.Type == "GameSystem") {
|
else if (item.Type == "GameSystem") {
|
||||||
|
@ -2054,21 +2055,33 @@
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
function onSyncLocalClick() {
|
|
||||||
|
|
||||||
if (this.checked) {
|
|
||||||
require(['syncDialog'], function (syncDialog) {
|
|
||||||
syncDialog.showMenu({
|
|
||||||
items: [currentItem]
|
|
||||||
});
|
|
||||||
});
|
|
||||||
} else {
|
|
||||||
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
return function (view, params) {
|
return function (view, params) {
|
||||||
|
|
||||||
|
function resetSyncStatus() {
|
||||||
|
updateSyncStatus(view, currentItem);
|
||||||
|
}
|
||||||
|
|
||||||
|
function onSyncLocalClick() {
|
||||||
|
|
||||||
|
if (this.checked) {
|
||||||
|
require(['syncDialog'], function (syncDialog) {
|
||||||
|
syncDialog.showMenu({
|
||||||
|
items: [currentItem]
|
||||||
|
}).then(function () {
|
||||||
|
reload(view, params);
|
||||||
|
}, resetSyncStatus);
|
||||||
|
});
|
||||||
|
} else {
|
||||||
|
|
||||||
|
require(['confirm'], function (confirm) {
|
||||||
|
|
||||||
|
confirm(Globalize.translate('ConfirmRemoveDownload')).then(function () {
|
||||||
|
ApiClient.cancelSyncItems([currentItem.Id]);
|
||||||
|
}, resetSyncStatus);
|
||||||
|
});
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
function onPlayTrailerClick() {
|
function onPlayTrailerClick() {
|
||||||
playTrailer(view);
|
playTrailer(view);
|
||||||
}
|
}
|
||||||
|
|
|
@ -116,32 +116,43 @@
|
||||||
configureSwipeTabs: function (ownerpage, tabs) {
|
configureSwipeTabs: function (ownerpage, tabs) {
|
||||||
|
|
||||||
if (!browser.touch) {
|
if (!browser.touch) {
|
||||||
return;
|
//return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
//require(['hammer'], function (Hammer) {
|
||||||
|
|
||||||
|
// var hammertime = new Hammer(ownerpage);
|
||||||
|
// hammertime.get('swipe').set({ direction: Hammer.DIRECTION_HORIZONTAL });
|
||||||
|
|
||||||
|
//});
|
||||||
|
|
||||||
var pageCount = ownerpage.querySelectorAll('.pageTabContent').length;
|
var pageCount = ownerpage.querySelectorAll('.pageTabContent').length;
|
||||||
|
var onSwipeLeft = function (e) {
|
||||||
require(['hammer'], function (Hammer) {
|
if (LibraryBrowser.allowSwipe(e.target) && ownerpage.contains(e.target)) {
|
||||||
|
var selected = parseInt(tabs.selectedIndex() || '0');
|
||||||
var hammertime = new Hammer(ownerpage);
|
if (selected < (pageCount - 1)) {
|
||||||
hammertime.get('swipe').set({ direction: Hammer.DIRECTION_HORIZONTAL });
|
tabs.selectedIndex(selected + 1);
|
||||||
|
|
||||||
hammertime.on('swipeleft', function (e) {
|
|
||||||
if (LibraryBrowser.allowSwipe(e.target)) {
|
|
||||||
var selected = parseInt(tabs.selectedIndex() || '0');
|
|
||||||
if (selected < (pageCount - 1)) {
|
|
||||||
tabs.selectedIndex(selected + 1);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
});
|
}
|
||||||
|
};
|
||||||
|
|
||||||
hammertime.on('swiperight', function (e) {
|
var onSwipeRight = function (e) {
|
||||||
if (LibraryBrowser.allowSwipe(e.target)) {
|
if (LibraryBrowser.allowSwipe(e.target) && ownerpage.contains(e.target)) {
|
||||||
var selected = parseInt(tabs.selectedIndex() || '0');
|
var selected = parseInt(tabs.selectedIndex() || '0');
|
||||||
if (selected > 0) {
|
if (selected > 0) {
|
||||||
tabs.selectedIndex(selected - 1);
|
tabs.selectedIndex(selected - 1);
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
|
require(['hammer-main'], function (hammertime) {
|
||||||
|
|
||||||
|
hammertime.on('swipeleft', onSwipeLeft);
|
||||||
|
hammertime.on('swiperight', onSwipeRight);
|
||||||
|
|
||||||
|
ownerpage.addEventListener('viewdestroy', function () {
|
||||||
|
hammertime.off('swipeleft', onSwipeLeft);
|
||||||
|
hammertime.off('swiperight', onSwipeRight);
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
},
|
},
|
||||||
|
|
|
@ -879,21 +879,6 @@
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
pageClassOn('pageinit', 'page', function () {
|
|
||||||
|
|
||||||
var page = this;
|
|
||||||
|
|
||||||
var isLibraryPage = page.classList.contains('libraryPage');
|
|
||||||
|
|
||||||
if (isLibraryPage) {
|
|
||||||
|
|
||||||
var navs = page.querySelectorAll('.libraryViewNav');
|
|
||||||
for (var i = 0, length = navs.length; i < length; i++) {
|
|
||||||
initHeadRoom(navs[i]);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
});
|
|
||||||
|
|
||||||
pageClassOn('pagebeforeshow', 'page', function (e) {
|
pageClassOn('pagebeforeshow', 'page', function (e) {
|
||||||
|
|
||||||
var page = this;
|
var page = this;
|
||||||
|
@ -999,18 +984,9 @@
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
require(["headroom"], function () {
|
require(["headroom-window"], function (headroom) {
|
||||||
|
|
||||||
// construct an instance of Headroom, passing the element
|
headroom.add(elem);
|
||||||
var headroom = new Headroom(elem, {
|
|
||||||
// or scroll tolerance per direction
|
|
||||||
tolerance: {
|
|
||||||
down: 40,
|
|
||||||
up: 0
|
|
||||||
}
|
|
||||||
});
|
|
||||||
// initialise
|
|
||||||
headroom.init();
|
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1063,8 +1039,8 @@
|
||||||
var drawerWidth = screen.availWidth - 50;
|
var drawerWidth = screen.availWidth - 50;
|
||||||
// At least 240
|
// At least 240
|
||||||
drawerWidth = Math.max(drawerWidth, 240);
|
drawerWidth = Math.max(drawerWidth, 240);
|
||||||
// But not exceeding 270
|
// But not exceeding 280
|
||||||
drawerWidth = Math.min(drawerWidth, 270);
|
drawerWidth = Math.min(drawerWidth, 280);
|
||||||
|
|
||||||
var disableEdgeSwipe = false;
|
var disableEdgeSwipe = false;
|
||||||
|
|
||||||
|
@ -1079,8 +1055,7 @@
|
||||||
target: navDrawerElement,
|
target: navDrawerElement,
|
||||||
onChange: onMainDrawerSelect,
|
onChange: onMainDrawerSelect,
|
||||||
width: drawerWidth,
|
width: drawerWidth,
|
||||||
disableEdgeSwipe: disableEdgeSwipe,
|
disableEdgeSwipe: disableEdgeSwipe
|
||||||
edgeSwipeElement: document.querySelector('.mainDrawerPanelContent')
|
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -198,11 +198,11 @@
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
var mdlTabs = view.querySelector('.libraryViewNav');
|
var viewTabs = view.querySelector('.libraryViewNav');
|
||||||
|
|
||||||
libraryBrowser.configurePaperLibraryTabs(view, mdlTabs, view.querySelectorAll('.pageTabContent'), [0, 2, 3, 4]);
|
libraryBrowser.configurePaperLibraryTabs(view, viewTabs, view.querySelectorAll('.pageTabContent'), [0, 2, 3, 4]);
|
||||||
|
|
||||||
mdlTabs.addEventListener('tabchange', function (e) {
|
viewTabs.addEventListener('tabchange', function (e) {
|
||||||
loadTab(view, parseInt(e.detail.selectedTabIndex));
|
loadTab(view, parseInt(e.detail.selectedTabIndex));
|
||||||
});
|
});
|
||||||
|
|
||||||
|
@ -211,8 +211,18 @@
|
||||||
document.body.classList.remove('autoScrollY');
|
document.body.classList.remove('autoScrollY');
|
||||||
});
|
});
|
||||||
|
|
||||||
|
if (AppInfo.enableHeadRoom) {
|
||||||
|
require(["headroom-window"], function (headroom) {
|
||||||
|
headroom.add(viewTabs);
|
||||||
|
self.headroom = headroom;
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
view.addEventListener('viewdestroy', function (e) {
|
view.addEventListener('viewdestroy', function (e) {
|
||||||
|
|
||||||
|
if (self.headroom) {
|
||||||
|
self.headroom.remove(viewTabs);
|
||||||
|
}
|
||||||
tabControllers.forEach(function (t) {
|
tabControllers.forEach(function (t) {
|
||||||
if (t.destroy) {
|
if (t.destroy) {
|
||||||
t.destroy();
|
t.destroy();
|
||||||
|
|
|
@ -208,15 +208,9 @@
|
||||||
loadSuggestionsTab(view, params, tabContent);
|
loadSuggestionsTab(view, params, tabContent);
|
||||||
};
|
};
|
||||||
|
|
||||||
var mdlTabs = view.querySelector('.libraryViewNav');
|
var viewTabs = view.querySelector('.libraryViewNav');
|
||||||
|
|
||||||
var baseUrl = 'movies.html';
|
libraryBrowser.configurePaperLibraryTabs(view, viewTabs, view.querySelectorAll('.pageTabContent'), [0, 3, 4, 5]);
|
||||||
var topParentId = params.topParentId;
|
|
||||||
if (topParentId) {
|
|
||||||
baseUrl += '?topParentId=' + topParentId;
|
|
||||||
}
|
|
||||||
|
|
||||||
libraryBrowser.configurePaperLibraryTabs(view, mdlTabs, view.querySelectorAll('.pageTabContent'), [0, 3, 4, 5]);
|
|
||||||
|
|
||||||
var tabControllers = [];
|
var tabControllers = [];
|
||||||
var renderedTabs = [];
|
var renderedTabs = [];
|
||||||
|
@ -290,14 +284,15 @@
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
mdlTabs.addEventListener('beforetabchange', function (e) {
|
viewTabs.addEventListener('beforetabchange', function (e) {
|
||||||
preLoadTab(view, parseInt(e.detail.selectedTabIndex));
|
preLoadTab(view, parseInt(e.detail.selectedTabIndex));
|
||||||
});
|
});
|
||||||
mdlTabs.addEventListener('tabchange', function (e) {
|
viewTabs.addEventListener('tabchange', function (e) {
|
||||||
loadTab(view, parseInt(e.detail.selectedTabIndex));
|
loadTab(view, parseInt(e.detail.selectedTabIndex));
|
||||||
});
|
});
|
||||||
|
|
||||||
view.addEventListener('viewbeforeshow', function (e) {
|
view.addEventListener('viewbeforeshow', function (e) {
|
||||||
|
|
||||||
if (!view.getAttribute('data-title')) {
|
if (!view.getAttribute('data-title')) {
|
||||||
|
|
||||||
var parentId = params.topParentId;
|
var parentId = params.topParentId;
|
||||||
|
@ -323,7 +318,7 @@
|
||||||
if (state.NowPlayingItem && state.NowPlayingItem.MediaType == 'Video') {
|
if (state.NowPlayingItem && state.NowPlayingItem.MediaType == 'Video') {
|
||||||
|
|
||||||
renderedTabs = [];
|
renderedTabs = [];
|
||||||
mdlTabs.triggerTabChange();
|
viewTabs.triggerTabChange();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -334,6 +329,19 @@
|
||||||
view.addEventListener('viewbeforehide', function (e) {
|
view.addEventListener('viewbeforehide', function (e) {
|
||||||
Events.off(MediaController, 'playbackstop', onPlaybackStop);
|
Events.off(MediaController, 'playbackstop', onPlaybackStop);
|
||||||
});
|
});
|
||||||
|
|
||||||
|
if (AppInfo.enableHeadRoom) {
|
||||||
|
require(["headroom-window"], function (headroom) {
|
||||||
|
headroom.add(viewTabs);
|
||||||
|
self.headroom = headroom;
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
view.addEventListener('viewdestroy', function (e) {
|
||||||
|
if (self.headroom) {
|
||||||
|
self.headroom.remove(viewTabs);
|
||||||
|
}
|
||||||
|
});
|
||||||
};
|
};
|
||||||
|
|
||||||
});
|
});
|
|
@ -349,19 +349,29 @@
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
var mdlTabs = view.querySelector('.libraryViewNav');
|
var viewTabs = view.querySelector('.libraryViewNav');
|
||||||
|
|
||||||
libraryBrowser.configurePaperLibraryTabs(view, mdlTabs, view.querySelectorAll('.pageTabContent'), [0, 4, 5, 6]);
|
libraryBrowser.configurePaperLibraryTabs(view, viewTabs, view.querySelectorAll('.pageTabContent'), [0, 4, 5, 6]);
|
||||||
|
|
||||||
mdlTabs.addEventListener('beforetabchange', function (e) {
|
viewTabs.addEventListener('beforetabchange', function (e) {
|
||||||
preLoadTab(view, parseInt(e.detail.selectedTabIndex));
|
preLoadTab(view, parseInt(e.detail.selectedTabIndex));
|
||||||
});
|
});
|
||||||
mdlTabs.addEventListener('tabchange', function (e) {
|
viewTabs.addEventListener('tabchange', function (e) {
|
||||||
loadTab(view, parseInt(e.detail.selectedTabIndex));
|
loadTab(view, parseInt(e.detail.selectedTabIndex));
|
||||||
});
|
});
|
||||||
|
|
||||||
|
if (AppInfo.enableHeadRoom) {
|
||||||
|
require(["headroom-window"], function (headroom) {
|
||||||
|
headroom.add(viewTabs);
|
||||||
|
self.headroom = headroom;
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
view.addEventListener('viewdestroy', function (e) {
|
view.addEventListener('viewdestroy', function (e) {
|
||||||
|
|
||||||
|
if (self.headroom) {
|
||||||
|
self.headroom.remove(viewTabs);
|
||||||
|
}
|
||||||
tabControllers.forEach(function (t) {
|
tabControllers.forEach(function (t) {
|
||||||
if (t.destroy) {
|
if (t.destroy) {
|
||||||
t.destroy();
|
t.destroy();
|
||||||
|
|
|
@ -1185,6 +1185,31 @@ var AppInfo = {};
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
function createWindowHeadroom() {
|
||||||
|
// construct an instance of Headroom, passing the element
|
||||||
|
var headroom = new Headroom([], {
|
||||||
|
// or scroll tolerance per direction
|
||||||
|
tolerance: {
|
||||||
|
down: 20,
|
||||||
|
up: 0
|
||||||
|
},
|
||||||
|
classes: {
|
||||||
|
//pinned: 'appfooter--pinned',
|
||||||
|
//unpinned: 'appfooter--unpinned',
|
||||||
|
//initial: 'appfooter-headroom'
|
||||||
|
}
|
||||||
|
});
|
||||||
|
// initialise
|
||||||
|
headroom.init();
|
||||||
|
return headroom;
|
||||||
|
}
|
||||||
|
|
||||||
|
function createMainContentHammer(Hammer) {
|
||||||
|
|
||||||
|
var hammer = new Hammer(document.querySelector('.mainDrawerPanelContent'), null);
|
||||||
|
return hammer;
|
||||||
|
}
|
||||||
|
|
||||||
function initRequire() {
|
function initRequire() {
|
||||||
|
|
||||||
var urlArgs = "v=" + (window.dashboardVersion || new Date().getDate());
|
var urlArgs = "v=" + (window.dashboardVersion || new Date().getDate());
|
||||||
|
@ -1491,6 +1516,9 @@ var AppInfo = {};
|
||||||
return Emby.Page;
|
return Emby.Page;
|
||||||
});
|
});
|
||||||
|
|
||||||
|
define("headroom-window", ['headroom'], createWindowHeadroom);
|
||||||
|
define("hammer-main", ['hammer'], createMainContentHammer);
|
||||||
|
|
||||||
// mock this for now. not used in this app
|
// mock this for now. not used in this app
|
||||||
define("playbackManager", [], function () {
|
define("playbackManager", [], function () {
|
||||||
return {
|
return {
|
||||||
|
@ -1892,7 +1920,8 @@ var AppInfo = {};
|
||||||
path: '/channels.html',
|
path: '/channels.html',
|
||||||
dependencies: [],
|
dependencies: [],
|
||||||
autoFocus: false,
|
autoFocus: false,
|
||||||
transition: 'fade'
|
transition: 'fade',
|
||||||
|
controller: 'scripts/channels'
|
||||||
});
|
});
|
||||||
|
|
||||||
defineRoute({
|
defineRoute({
|
||||||
|
|
|
@ -219,93 +219,96 @@
|
||||||
|
|
||||||
function showSyncMenu(options) {
|
function showSyncMenu(options) {
|
||||||
|
|
||||||
requirejs(["registrationservices"], function () {
|
return new Promise(function (resolve, reject) {
|
||||||
RegistrationServices.validateFeature('sync').then(function () {
|
|
||||||
showSyncMenuInternal(options);
|
requirejs(["registrationservices", 'dialogHelper', 'formDialogStyle'], function (registrationServices, dialogHelper) {
|
||||||
|
registrationServices.validateFeature('sync').then(function () {
|
||||||
|
|
||||||
|
showSyncMenuInternal(dialogHelper, options).then(resolve, reject);
|
||||||
|
|
||||||
|
}, reject);
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
function showSyncMenuInternal(options) {
|
function showSyncMenuInternal(dialogHelper, options) {
|
||||||
|
|
||||||
require(['dialogHelper', 'formDialogStyle'], function (dialogHelper) {
|
var userId = Dashboard.getCurrentUserId();
|
||||||
|
|
||||||
var userId = Dashboard.getCurrentUserId();
|
var dialogOptionsQuery = {
|
||||||
|
UserId: userId,
|
||||||
|
ItemIds: (options.items || []).map(function (i) {
|
||||||
|
return i.Id || i;
|
||||||
|
}).join(','),
|
||||||
|
|
||||||
var dialogOptionsQuery = {
|
ParentId: options.ParentId,
|
||||||
UserId: userId,
|
Category: options.Category
|
||||||
ItemIds: (options.items || []).map(function (i) {
|
};
|
||||||
return i.Id || i;
|
|
||||||
}).join(','),
|
|
||||||
|
|
||||||
ParentId: options.ParentId,
|
return ApiClient.getJSON(ApiClient.getUrl('Sync/Options', dialogOptionsQuery)).then(function (dialogOptions) {
|
||||||
Category: options.Category
|
|
||||||
};
|
|
||||||
|
|
||||||
ApiClient.getJSON(ApiClient.getUrl('Sync/Options', dialogOptionsQuery)).then(function (dialogOptions) {
|
currentDialogOptions = dialogOptions;
|
||||||
|
|
||||||
currentDialogOptions = dialogOptions;
|
var dlg = dialogHelper.createDialog({
|
||||||
|
size: 'small',
|
||||||
var dlg = dialogHelper.createDialog({
|
removeOnClose: true,
|
||||||
size: 'small',
|
autoFocus: false
|
||||||
removeOnClose: true,
|
|
||||||
autoFocus: false
|
|
||||||
});
|
|
||||||
|
|
||||||
dlg.classList.add('ui-body-a');
|
|
||||||
dlg.classList.add('background-theme-a');
|
|
||||||
dlg.classList.add('formDialog');
|
|
||||||
|
|
||||||
var html = '';
|
|
||||||
html += '<div class="formDialogHeader">';
|
|
||||||
html += '<button is="paper-icon-button-light" class="btnCancel autoSize" tabindex="-1"><i class="md-icon"></i></button>';
|
|
||||||
html += '<div class="formDialogHeaderTitle">';
|
|
||||||
html += Globalize.translate('SyncMedia');
|
|
||||||
html += '</div>';
|
|
||||||
|
|
||||||
html += '<a href="https://github.com/MediaBrowser/Wiki/wiki/Sync" target="_blank" class="clearLink" style="margin-top:0;display:inline-block;vertical-align:middle;margin-left:auto;"><button is="emby-button" type="button" class="mini"><i class="md-icon">info</i><span>' + Globalize.translate('ButtonHelp') + '</span></button></a>';
|
|
||||||
|
|
||||||
html += '</div>';
|
|
||||||
|
|
||||||
html += '<div class="formDialogContent smoothScrollY" style="padding-top:2em;">';
|
|
||||||
html += '<div class="dialogContentInner dialog-content-centered">';
|
|
||||||
|
|
||||||
html += '<form class="formSubmitSyncRequest" style="margin: auto;">';
|
|
||||||
|
|
||||||
html += '<div class="formFields"></div>';
|
|
||||||
|
|
||||||
html += '<p>';
|
|
||||||
html += '<button is="emby-button" type="submit" class="raised submit block"><i class="md-icon">sync</i><span>' + Globalize.translate('ButtonSync') + '</span></button>';
|
|
||||||
html += '</p>';
|
|
||||||
|
|
||||||
html += '</form>';
|
|
||||||
|
|
||||||
html += '</div>';
|
|
||||||
html += '</div>';
|
|
||||||
|
|
||||||
|
|
||||||
dlg.innerHTML = html;
|
|
||||||
document.body.appendChild(dlg);
|
|
||||||
|
|
||||||
dialogHelper.open(dlg);
|
|
||||||
|
|
||||||
$('form', dlg).on('submit', function () {
|
|
||||||
|
|
||||||
submitJob(dlg, userId, options, this, dialogHelper);
|
|
||||||
return false;
|
|
||||||
});
|
|
||||||
|
|
||||||
$('.btnCancel', dlg).on('click', function () {
|
|
||||||
dialogHelper.close(dlg);
|
|
||||||
});
|
|
||||||
|
|
||||||
renderForm({
|
|
||||||
elem: $('.formFields', dlg),
|
|
||||||
dialogOptions: dialogOptions,
|
|
||||||
dialogOptionsFn: getTargetDialogOptionsFn(dialogOptionsQuery)
|
|
||||||
});
|
|
||||||
});
|
});
|
||||||
|
|
||||||
|
dlg.classList.add('ui-body-a');
|
||||||
|
dlg.classList.add('background-theme-a');
|
||||||
|
dlg.classList.add('formDialog');
|
||||||
|
|
||||||
|
var html = '';
|
||||||
|
html += '<div class="formDialogHeader">';
|
||||||
|
html += '<button is="paper-icon-button-light" class="btnCancel autoSize" tabindex="-1"><i class="md-icon"></i></button>';
|
||||||
|
html += '<div class="formDialogHeaderTitle">';
|
||||||
|
html += Globalize.translate('SyncMedia');
|
||||||
|
html += '</div>';
|
||||||
|
|
||||||
|
html += '<a href="https://github.com/MediaBrowser/Wiki/wiki/Sync" target="_blank" class="clearLink" style="margin-top:0;display:inline-block;vertical-align:middle;margin-left:auto;"><button is="emby-button" type="button" class="mini"><i class="md-icon">info</i><span>' + Globalize.translate('ButtonHelp') + '</span></button></a>';
|
||||||
|
|
||||||
|
html += '</div>';
|
||||||
|
|
||||||
|
html += '<div class="formDialogContent smoothScrollY" style="padding-top:2em;">';
|
||||||
|
html += '<div class="dialogContentInner dialog-content-centered">';
|
||||||
|
|
||||||
|
html += '<form class="formSubmitSyncRequest" style="margin: auto;">';
|
||||||
|
|
||||||
|
html += '<div class="formFields"></div>';
|
||||||
|
|
||||||
|
html += '<p>';
|
||||||
|
html += '<button is="emby-button" type="submit" class="raised submit block"><i class="md-icon">sync</i><span>' + Globalize.translate('ButtonSync') + '</span></button>';
|
||||||
|
html += '</p>';
|
||||||
|
|
||||||
|
html += '</form>';
|
||||||
|
|
||||||
|
html += '</div>';
|
||||||
|
html += '</div>';
|
||||||
|
|
||||||
|
|
||||||
|
dlg.innerHTML = html;
|
||||||
|
document.body.appendChild(dlg);
|
||||||
|
|
||||||
|
$('form', dlg).on('submit', function () {
|
||||||
|
|
||||||
|
submitJob(dlg, userId, options, this, dialogHelper);
|
||||||
|
return false;
|
||||||
|
});
|
||||||
|
|
||||||
|
$('.btnCancel', dlg).on('click', function () {
|
||||||
|
dialogHelper.close(dlg);
|
||||||
|
});
|
||||||
|
|
||||||
|
var promise = dialogHelper.open(dlg);
|
||||||
|
|
||||||
|
renderForm({
|
||||||
|
elem: $('.formFields', dlg),
|
||||||
|
dialogOptions: dialogOptions,
|
||||||
|
dialogOptionsFn: getTargetDialogOptionsFn(dialogOptionsQuery)
|
||||||
|
});
|
||||||
|
|
||||||
|
return promise;
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -202,34 +202,28 @@
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
var mdlTabs = view.querySelector('.libraryViewNav');
|
var viewTabs = view.querySelector('.libraryViewNav');
|
||||||
|
|
||||||
function onPlaybackStop(e, state) {
|
function onPlaybackStop(e, state) {
|
||||||
|
|
||||||
if (state.NowPlayingItem && state.NowPlayingItem.MediaType == 'Video') {
|
if (state.NowPlayingItem && state.NowPlayingItem.MediaType == 'Video') {
|
||||||
|
|
||||||
renderedTabs = [];
|
renderedTabs = [];
|
||||||
mdlTabs.triggerTabChange();
|
viewTabs.triggerTabChange();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
var baseUrl = 'tv.html';
|
|
||||||
var topParentId = params.topParentId;
|
|
||||||
if (topParentId) {
|
|
||||||
baseUrl += '?topParentId=' + topParentId;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (enableScrollX()) {
|
if (enableScrollX()) {
|
||||||
view.querySelector('#resumableItems').classList.add('hiddenScrollX');
|
view.querySelector('#resumableItems').classList.add('hiddenScrollX');
|
||||||
} else {
|
} else {
|
||||||
view.querySelector('#resumableItems').classList.remove('hiddenScrollX');
|
view.querySelector('#resumableItems').classList.remove('hiddenScrollX');
|
||||||
}
|
}
|
||||||
libraryBrowser.configurePaperLibraryTabs(view, mdlTabs, view.querySelectorAll('.pageTabContent'), [0, 1, 2, 4, 5, 6]);
|
libraryBrowser.configurePaperLibraryTabs(view, viewTabs, view.querySelectorAll('.pageTabContent'), [0, 1, 2, 4, 5, 6]);
|
||||||
|
|
||||||
mdlTabs.addEventListener('beforetabchange', function (e) {
|
viewTabs.addEventListener('beforetabchange', function (e) {
|
||||||
preLoadTab(view, parseInt(e.detail.selectedTabIndex));
|
preLoadTab(view, parseInt(e.detail.selectedTabIndex));
|
||||||
});
|
});
|
||||||
mdlTabs.addEventListener('tabchange', function (e) {
|
viewTabs.addEventListener('tabchange', function (e) {
|
||||||
loadTab(view, parseInt(e.detail.selectedTabIndex));
|
loadTab(view, parseInt(e.detail.selectedTabIndex));
|
||||||
});
|
});
|
||||||
|
|
||||||
|
@ -278,8 +272,18 @@
|
||||||
Events.off(ApiClient, "websocketmessage", onWebSocketMessage);
|
Events.off(ApiClient, "websocketmessage", onWebSocketMessage);
|
||||||
});
|
});
|
||||||
|
|
||||||
|
if (AppInfo.enableHeadRoom) {
|
||||||
|
require(["headroom-window"], function (headroom) {
|
||||||
|
headroom.add(viewTabs);
|
||||||
|
self.headroom = headroom;
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
view.addEventListener('viewdestroy', function (e) {
|
view.addEventListener('viewdestroy', function (e) {
|
||||||
|
|
||||||
|
if (self.headroom) {
|
||||||
|
self.headroom.remove(viewTabs);
|
||||||
|
}
|
||||||
tabControllers.forEach(function (t) {
|
tabControllers.forEach(function (t) {
|
||||||
if (t.destroy) {
|
if (t.destroy) {
|
||||||
t.destroy();
|
t.destroy();
|
||||||
|
|
|
@ -2310,5 +2310,9 @@
|
||||||
"FFmpegSavePathNotFound": "We're unable to locate FFmpeg using the path you've entered. FFprobe is also required and must exist in the same folder. These components are normally bundled together in the same download. Please check the path and try again.",
|
"FFmpegSavePathNotFound": "We're unable to locate FFmpeg using the path you've entered. FFprobe is also required and must exist in the same folder. These components are normally bundled together in the same download. Please check the path and try again.",
|
||||||
"XmlTvPremiere": "By default, Emby will import {0} hours of guide data. Importing unlimited data requires an active Emby Premiere subscription.",
|
"XmlTvPremiere": "By default, Emby will import {0} hours of guide data. Importing unlimited data requires an active Emby Premiere subscription.",
|
||||||
"MoreFromValue": "More from {0}",
|
"MoreFromValue": "More from {0}",
|
||||||
"OptionSaveMetadataAsHiddenHelp": "Changing this will apply to new metadata saved going forward. Existing metadata files will be updated the next time they are saved by Emby Server."
|
"OptionSaveMetadataAsHiddenHelp": "Changing this will apply to new metadata saved going forward. Existing metadata files will be updated the next time they are saved by Emby Server.",
|
||||||
|
"EnablePhotos": "Enable photos",
|
||||||
|
"EnablePhotosHelp": "Photos will be detected and displayed alongside other media files.",
|
||||||
|
"MakeAvailableOffline": "Make available offline",
|
||||||
|
"ConfirmRemoveDownload": "Remove download?"
|
||||||
}
|
}
|
|
@ -2310,5 +2310,9 @@
|
||||||
"FFmpegSavePathNotFound": "We're unable to locate FFmpeg using the path you've entered. FFprobe is also required and must exist in the same folder. These components are normally bundled together in the same download. Please check the path and try again.",
|
"FFmpegSavePathNotFound": "We're unable to locate FFmpeg using the path you've entered. FFprobe is also required and must exist in the same folder. These components are normally bundled together in the same download. Please check the path and try again.",
|
||||||
"XmlTvPremiere": "By default, Emby will import {0} hours of guide data. Importing unlimited data requires an active Emby Premiere subscription.",
|
"XmlTvPremiere": "By default, Emby will import {0} hours of guide data. Importing unlimited data requires an active Emby Premiere subscription.",
|
||||||
"MoreFromValue": "More from {0}",
|
"MoreFromValue": "More from {0}",
|
||||||
"OptionSaveMetadataAsHiddenHelp": "Changing this will apply to new metadata saved going forward. Existing metadata files will be updated the next time they are saved by Emby Server."
|
"OptionSaveMetadataAsHiddenHelp": "Changing this will apply to new metadata saved going forward. Existing metadata files will be updated the next time they are saved by Emby Server.",
|
||||||
|
"EnablePhotos": "Enable photos",
|
||||||
|
"EnablePhotosHelp": "Photos will be detected and displayed alongside other media files.",
|
||||||
|
"MakeAvailableOffline": "Make available offline",
|
||||||
|
"ConfirmRemoveDownload": "Remove download?"
|
||||||
}
|
}
|
|
@ -2310,5 +2310,9 @@
|
||||||
"FFmpegSavePathNotFound": "We're unable to locate FFmpeg using the path you've entered. FFprobe is also required and must exist in the same folder. These components are normally bundled together in the same download. Please check the path and try again.",
|
"FFmpegSavePathNotFound": "We're unable to locate FFmpeg using the path you've entered. FFprobe is also required and must exist in the same folder. These components are normally bundled together in the same download. Please check the path and try again.",
|
||||||
"XmlTvPremiere": "By default, Emby will import {0} hours of guide data. Importing unlimited data requires an active Emby Premiere subscription.",
|
"XmlTvPremiere": "By default, Emby will import {0} hours of guide data. Importing unlimited data requires an active Emby Premiere subscription.",
|
||||||
"MoreFromValue": "More from {0}",
|
"MoreFromValue": "More from {0}",
|
||||||
"OptionSaveMetadataAsHiddenHelp": "Changing this will apply to new metadata saved going forward. Existing metadata files will be updated the next time they are saved by Emby Server."
|
"OptionSaveMetadataAsHiddenHelp": "Changing this will apply to new metadata saved going forward. Existing metadata files will be updated the next time they are saved by Emby Server.",
|
||||||
|
"EnablePhotos": "Enable photos",
|
||||||
|
"EnablePhotosHelp": "Photos will be detected and displayed alongside other media files.",
|
||||||
|
"MakeAvailableOffline": "Make available offline",
|
||||||
|
"ConfirmRemoveDownload": "Remove download?"
|
||||||
}
|
}
|
|
@ -2310,5 +2310,9 @@
|
||||||
"FFmpegSavePathNotFound": "We're unable to locate FFmpeg using the path you've entered. FFprobe is also required and must exist in the same folder. These components are normally bundled together in the same download. Please check the path and try again.",
|
"FFmpegSavePathNotFound": "We're unable to locate FFmpeg using the path you've entered. FFprobe is also required and must exist in the same folder. These components are normally bundled together in the same download. Please check the path and try again.",
|
||||||
"XmlTvPremiere": "By default, Emby will import {0} hours of guide data. Importing unlimited data requires an active Emby Premiere subscription.",
|
"XmlTvPremiere": "By default, Emby will import {0} hours of guide data. Importing unlimited data requires an active Emby Premiere subscription.",
|
||||||
"MoreFromValue": "More from {0}",
|
"MoreFromValue": "More from {0}",
|
||||||
"OptionSaveMetadataAsHiddenHelp": "Changing this will apply to new metadata saved going forward. Existing metadata files will be updated the next time they are saved by Emby Server."
|
"OptionSaveMetadataAsHiddenHelp": "Changing this will apply to new metadata saved going forward. Existing metadata files will be updated the next time they are saved by Emby Server.",
|
||||||
|
"EnablePhotos": "Enable photos",
|
||||||
|
"EnablePhotosHelp": "Photos will be detected and displayed alongside other media files.",
|
||||||
|
"MakeAvailableOffline": "Make available offline",
|
||||||
|
"ConfirmRemoveDownload": "Remove download?"
|
||||||
}
|
}
|
|
@ -2310,5 +2310,9 @@
|
||||||
"FFmpegSavePathNotFound": "We're unable to locate FFmpeg using the path you've entered. FFprobe is also required and must exist in the same folder. These components are normally bundled together in the same download. Please check the path and try again.",
|
"FFmpegSavePathNotFound": "We're unable to locate FFmpeg using the path you've entered. FFprobe is also required and must exist in the same folder. These components are normally bundled together in the same download. Please check the path and try again.",
|
||||||
"XmlTvPremiere": "By default, Emby will import {0} hours of guide data. Importing unlimited data requires an active Emby Premiere subscription.",
|
"XmlTvPremiere": "By default, Emby will import {0} hours of guide data. Importing unlimited data requires an active Emby Premiere subscription.",
|
||||||
"MoreFromValue": "More from {0}",
|
"MoreFromValue": "More from {0}",
|
||||||
"OptionSaveMetadataAsHiddenHelp": "Changing this will apply to new metadata saved going forward. Existing metadata files will be updated the next time they are saved by Emby Server."
|
"OptionSaveMetadataAsHiddenHelp": "Changing this will apply to new metadata saved going forward. Existing metadata files will be updated the next time they are saved by Emby Server.",
|
||||||
|
"EnablePhotos": "Enable photos",
|
||||||
|
"EnablePhotosHelp": "Photos will be detected and displayed alongside other media files.",
|
||||||
|
"MakeAvailableOffline": "Make available offline",
|
||||||
|
"ConfirmRemoveDownload": "Remove download?"
|
||||||
}
|
}
|
|
@ -2310,5 +2310,9 @@
|
||||||
"FFmpegSavePathNotFound": "We're unable to locate FFmpeg using the path you've entered. FFprobe is also required and must exist in the same folder. These components are normally bundled together in the same download. Please check the path and try again.",
|
"FFmpegSavePathNotFound": "We're unable to locate FFmpeg using the path you've entered. FFprobe is also required and must exist in the same folder. These components are normally bundled together in the same download. Please check the path and try again.",
|
||||||
"XmlTvPremiere": "By default, Emby will import {0} hours of guide data. Importing unlimited data requires an active Emby Premiere subscription.",
|
"XmlTvPremiere": "By default, Emby will import {0} hours of guide data. Importing unlimited data requires an active Emby Premiere subscription.",
|
||||||
"MoreFromValue": "More from {0}",
|
"MoreFromValue": "More from {0}",
|
||||||
"OptionSaveMetadataAsHiddenHelp": "Changing this will apply to new metadata saved going forward. Existing metadata files will be updated the next time they are saved by Emby Server."
|
"OptionSaveMetadataAsHiddenHelp": "Changing this will apply to new metadata saved going forward. Existing metadata files will be updated the next time they are saved by Emby Server.",
|
||||||
|
"EnablePhotos": "Enable photos",
|
||||||
|
"EnablePhotosHelp": "Photos will be detected and displayed alongside other media files.",
|
||||||
|
"MakeAvailableOffline": "Make available offline",
|
||||||
|
"ConfirmRemoveDownload": "Remove download?"
|
||||||
}
|
}
|
|
@ -2310,5 +2310,9 @@
|
||||||
"FFmpegSavePathNotFound": "Wir konnten kein FFmpeg in dem von Dir erfassten Verzeichnis finden. FFprobe wird ebenso ben\u00f6tigt und muss sich im gleichen Verzeichnis befinden. Diese Komponenten sind normalerweise in einem B\u00fcndel vorhanden um kommen zusammen mit einem Download. Bitte pr\u00fcfe das Verzeichnis und probiere es erneut.",
|
"FFmpegSavePathNotFound": "Wir konnten kein FFmpeg in dem von Dir erfassten Verzeichnis finden. FFprobe wird ebenso ben\u00f6tigt und muss sich im gleichen Verzeichnis befinden. Diese Komponenten sind normalerweise in einem B\u00fcndel vorhanden um kommen zusammen mit einem Download. Bitte pr\u00fcfe das Verzeichnis und probiere es erneut.",
|
||||||
"XmlTvPremiere": "Grunds\u00e4tzlich wird Emby {0} Stunden des EPGs importieren. Um unendlich Daten zu importieren ist eine aktive Emby Premiere Mitgliedschaft notwendig.",
|
"XmlTvPremiere": "Grunds\u00e4tzlich wird Emby {0} Stunden des EPGs importieren. Um unendlich Daten zu importieren ist eine aktive Emby Premiere Mitgliedschaft notwendig.",
|
||||||
"MoreFromValue": "Mehr von {0}",
|
"MoreFromValue": "Mehr von {0}",
|
||||||
"OptionSaveMetadataAsHiddenHelp": "\u00c4nderungen werden sich auf neue Metadaten angewendet. Bereits existierende Metadaten werden bei der n\u00e4chsten Speicherung des Emby Servers auf den neusten Stand gebracht."
|
"OptionSaveMetadataAsHiddenHelp": "\u00c4nderungen werden sich auf neue Metadaten angewendet. Bereits existierende Metadaten werden bei der n\u00e4chsten Speicherung des Emby Servers auf den neusten Stand gebracht.",
|
||||||
|
"EnablePhotos": "Enable photos",
|
||||||
|
"EnablePhotosHelp": "Photos will be detected and displayed alongside other media files.",
|
||||||
|
"MakeAvailableOffline": "Make available offline",
|
||||||
|
"ConfirmRemoveDownload": "Remove download?"
|
||||||
}
|
}
|
|
@ -2310,5 +2310,9 @@
|
||||||
"FFmpegSavePathNotFound": "We're unable to locate FFmpeg using the path you've entered. FFprobe is also required and must exist in the same folder. These components are normally bundled together in the same download. Please check the path and try again.",
|
"FFmpegSavePathNotFound": "We're unable to locate FFmpeg using the path you've entered. FFprobe is also required and must exist in the same folder. These components are normally bundled together in the same download. Please check the path and try again.",
|
||||||
"XmlTvPremiere": "By default, Emby will import {0} hours of guide data. Importing unlimited data requires an active Emby Premiere subscription.",
|
"XmlTvPremiere": "By default, Emby will import {0} hours of guide data. Importing unlimited data requires an active Emby Premiere subscription.",
|
||||||
"MoreFromValue": "More from {0}",
|
"MoreFromValue": "More from {0}",
|
||||||
"OptionSaveMetadataAsHiddenHelp": "Changing this will apply to new metadata saved going forward. Existing metadata files will be updated the next time they are saved by Emby Server."
|
"OptionSaveMetadataAsHiddenHelp": "Changing this will apply to new metadata saved going forward. Existing metadata files will be updated the next time they are saved by Emby Server.",
|
||||||
|
"EnablePhotos": "Enable photos",
|
||||||
|
"EnablePhotosHelp": "Photos will be detected and displayed alongside other media files.",
|
||||||
|
"MakeAvailableOffline": "Make available offline",
|
||||||
|
"ConfirmRemoveDownload": "Remove download?"
|
||||||
}
|
}
|
|
@ -2310,5 +2310,9 @@
|
||||||
"FFmpegSavePathNotFound": "We're unable to locate FFmpeg using the path you've entered. FFprobe is also required and must exist in the same folder. These components are normally bundled together in the same download. Please check the path and try again.",
|
"FFmpegSavePathNotFound": "We're unable to locate FFmpeg using the path you've entered. FFprobe is also required and must exist in the same folder. These components are normally bundled together in the same download. Please check the path and try again.",
|
||||||
"XmlTvPremiere": "By default, Emby will import {0} hours of guide data. Importing unlimited data requires an active Emby Premiere subscription.",
|
"XmlTvPremiere": "By default, Emby will import {0} hours of guide data. Importing unlimited data requires an active Emby Premiere subscription.",
|
||||||
"MoreFromValue": "More from {0}",
|
"MoreFromValue": "More from {0}",
|
||||||
"OptionSaveMetadataAsHiddenHelp": "Changing this will apply to new metadata saved going forward. Existing metadata files will be updated the next time they are saved by Emby Server."
|
"OptionSaveMetadataAsHiddenHelp": "Changing this will apply to new metadata saved going forward. Existing metadata files will be updated the next time they are saved by Emby Server.",
|
||||||
|
"EnablePhotos": "Enable photos",
|
||||||
|
"EnablePhotosHelp": "Photos will be detected and displayed alongside other media files.",
|
||||||
|
"MakeAvailableOffline": "Make available offline",
|
||||||
|
"ConfirmRemoveDownload": "Remove download?"
|
||||||
}
|
}
|
|
@ -2312,5 +2312,7 @@
|
||||||
"MoreFromValue": "More from {0}",
|
"MoreFromValue": "More from {0}",
|
||||||
"OptionSaveMetadataAsHiddenHelp": "Changing this will apply to new metadata saved going forward. Existing metadata files will be updated the next time they are saved by Emby Server.",
|
"OptionSaveMetadataAsHiddenHelp": "Changing this will apply to new metadata saved going forward. Existing metadata files will be updated the next time they are saved by Emby Server.",
|
||||||
"EnablePhotos": "Enable photos",
|
"EnablePhotos": "Enable photos",
|
||||||
"EnablePhotosHelp": "Photos will be detected and displayed alongside other media files."
|
"EnablePhotosHelp": "Photos will be detected and displayed alongside other media files.",
|
||||||
|
"MakeAvailableOffline": "Make available offline",
|
||||||
|
"ConfirmRemoveDownload": "Remove download?"
|
||||||
}
|
}
|
||||||
|
|
|
@ -2310,5 +2310,9 @@
|
||||||
"FFmpegSavePathNotFound": "We're unable to locate FFmpeg using the path you've entered. FFprobe is also required and must exist in the same folder. These components are normally bundled together in the same download. Please check the path and try again.",
|
"FFmpegSavePathNotFound": "We're unable to locate FFmpeg using the path you've entered. FFprobe is also required and must exist in the same folder. These components are normally bundled together in the same download. Please check the path and try again.",
|
||||||
"XmlTvPremiere": "By default, Emby will import {0} hours of guide data. Importing unlimited data requires an active Emby Premiere subscription.",
|
"XmlTvPremiere": "By default, Emby will import {0} hours of guide data. Importing unlimited data requires an active Emby Premiere subscription.",
|
||||||
"MoreFromValue": "More from {0}",
|
"MoreFromValue": "More from {0}",
|
||||||
"OptionSaveMetadataAsHiddenHelp": "Changing this will apply to new metadata saved going forward. Existing metadata files will be updated the next time they are saved by Emby Server."
|
"OptionSaveMetadataAsHiddenHelp": "Changing this will apply to new metadata saved going forward. Existing metadata files will be updated the next time they are saved by Emby Server.",
|
||||||
|
"EnablePhotos": "Enable photos",
|
||||||
|
"EnablePhotosHelp": "Photos will be detected and displayed alongside other media files.",
|
||||||
|
"MakeAvailableOffline": "Make available offline",
|
||||||
|
"ConfirmRemoveDownload": "Remove download?"
|
||||||
}
|
}
|
|
@ -2310,5 +2310,9 @@
|
||||||
"FFmpegSavePathNotFound": "No fue posible localizar FFmpeg usando la ruta que introdujo. FFprobe tambi\u00e9n es requerido y debe de estar en la misma carpeta. Estos componentes normalmente est\u00e1n empaquetados en la misma descarga. Por favor verifique la ruta e intente de nuevo.",
|
"FFmpegSavePathNotFound": "No fue posible localizar FFmpeg usando la ruta que introdujo. FFprobe tambi\u00e9n es requerido y debe de estar en la misma carpeta. Estos componentes normalmente est\u00e1n empaquetados en la misma descarga. Por favor verifique la ruta e intente de nuevo.",
|
||||||
"XmlTvPremiere": "Por defecto, Emby importara {0} horas de datos de la gu\u00eda. Para importar datos ilimitados necesita una subscripcion activa de Emby Premiere",
|
"XmlTvPremiere": "Por defecto, Emby importara {0} horas de datos de la gu\u00eda. Para importar datos ilimitados necesita una subscripcion activa de Emby Premiere",
|
||||||
"MoreFromValue": "Mas de {0}",
|
"MoreFromValue": "Mas de {0}",
|
||||||
"OptionSaveMetadataAsHiddenHelp": "Cambiando esto se aplicara a nuevos metadatos en adelante. Los archivos de metadatos existentes ser\u00e1n actualizados la pr\u00f3xima vez que sean guardados por el Servidor Emby"
|
"OptionSaveMetadataAsHiddenHelp": "Cambiando esto se aplicara a nuevos metadatos en adelante. Los archivos de metadatos existentes ser\u00e1n actualizados la pr\u00f3xima vez que sean guardados por el Servidor Emby",
|
||||||
|
"EnablePhotos": "Enable photos",
|
||||||
|
"EnablePhotosHelp": "Photos will be detected and displayed alongside other media files.",
|
||||||
|
"MakeAvailableOffline": "Make available offline",
|
||||||
|
"ConfirmRemoveDownload": "Remove download?"
|
||||||
}
|
}
|
|
@ -2310,5 +2310,9 @@
|
||||||
"FFmpegSavePathNotFound": "We're unable to locate FFmpeg using the path you've entered. FFprobe is also required and must exist in the same folder. These components are normally bundled together in the same download. Please check the path and try again.",
|
"FFmpegSavePathNotFound": "We're unable to locate FFmpeg using the path you've entered. FFprobe is also required and must exist in the same folder. These components are normally bundled together in the same download. Please check the path and try again.",
|
||||||
"XmlTvPremiere": "Por defecto Emby importar\u00e1 {0} horas de programaci\u00f3n. Importar una cantidad ilimitada necesita una suscripci\u00f3n a Emby Premiere.",
|
"XmlTvPremiere": "Por defecto Emby importar\u00e1 {0} horas de programaci\u00f3n. Importar una cantidad ilimitada necesita una suscripci\u00f3n a Emby Premiere.",
|
||||||
"MoreFromValue": "More from {0}",
|
"MoreFromValue": "More from {0}",
|
||||||
"OptionSaveMetadataAsHiddenHelp": "Changing this will apply to new metadata saved going forward. Existing metadata files will be updated the next time they are saved by Emby Server."
|
"OptionSaveMetadataAsHiddenHelp": "Changing this will apply to new metadata saved going forward. Existing metadata files will be updated the next time they are saved by Emby Server.",
|
||||||
|
"EnablePhotos": "Enable photos",
|
||||||
|
"EnablePhotosHelp": "Photos will be detected and displayed alongside other media files.",
|
||||||
|
"MakeAvailableOffline": "Make available offline",
|
||||||
|
"ConfirmRemoveDownload": "Remove download?"
|
||||||
}
|
}
|
|
@ -2310,5 +2310,9 @@
|
||||||
"FFmpegSavePathNotFound": "We're unable to locate FFmpeg using the path you've entered. FFprobe is also required and must exist in the same folder. These components are normally bundled together in the same download. Please check the path and try again.",
|
"FFmpegSavePathNotFound": "We're unable to locate FFmpeg using the path you've entered. FFprobe is also required and must exist in the same folder. These components are normally bundled together in the same download. Please check the path and try again.",
|
||||||
"XmlTvPremiere": "By default, Emby will import {0} hours of guide data. Importing unlimited data requires an active Emby Premiere subscription.",
|
"XmlTvPremiere": "By default, Emby will import {0} hours of guide data. Importing unlimited data requires an active Emby Premiere subscription.",
|
||||||
"MoreFromValue": "More from {0}",
|
"MoreFromValue": "More from {0}",
|
||||||
"OptionSaveMetadataAsHiddenHelp": "Changing this will apply to new metadata saved going forward. Existing metadata files will be updated the next time they are saved by Emby Server."
|
"OptionSaveMetadataAsHiddenHelp": "Changing this will apply to new metadata saved going forward. Existing metadata files will be updated the next time they are saved by Emby Server.",
|
||||||
|
"EnablePhotos": "Enable photos",
|
||||||
|
"EnablePhotosHelp": "Photos will be detected and displayed alongside other media files.",
|
||||||
|
"MakeAvailableOffline": "Make available offline",
|
||||||
|
"ConfirmRemoveDownload": "Remove download?"
|
||||||
}
|
}
|
|
@ -2310,5 +2310,9 @@
|
||||||
"FFmpegSavePathNotFound": "We're unable to locate FFmpeg using the path you've entered. FFprobe is also required and must exist in the same folder. These components are normally bundled together in the same download. Please check the path and try again.",
|
"FFmpegSavePathNotFound": "We're unable to locate FFmpeg using the path you've entered. FFprobe is also required and must exist in the same folder. These components are normally bundled together in the same download. Please check the path and try again.",
|
||||||
"XmlTvPremiere": "By default, Emby will import {0} hours of guide data. Importing unlimited data requires an active Emby Premiere subscription.",
|
"XmlTvPremiere": "By default, Emby will import {0} hours of guide data. Importing unlimited data requires an active Emby Premiere subscription.",
|
||||||
"MoreFromValue": "More from {0}",
|
"MoreFromValue": "More from {0}",
|
||||||
"OptionSaveMetadataAsHiddenHelp": "Changing this will apply to new metadata saved going forward. Existing metadata files will be updated the next time they are saved by Emby Server."
|
"OptionSaveMetadataAsHiddenHelp": "Changing this will apply to new metadata saved going forward. Existing metadata files will be updated the next time they are saved by Emby Server.",
|
||||||
|
"EnablePhotos": "Enable photos",
|
||||||
|
"EnablePhotosHelp": "Photos will be detected and displayed alongside other media files.",
|
||||||
|
"MakeAvailableOffline": "Make available offline",
|
||||||
|
"ConfirmRemoveDownload": "Remove download?"
|
||||||
}
|
}
|
|
@ -2310,5 +2310,9 @@
|
||||||
"FFmpegSavePathNotFound": "We're unable to locate FFmpeg using the path you've entered. FFprobe is also required and must exist in the same folder. These components are normally bundled together in the same download. Please check the path and try again.",
|
"FFmpegSavePathNotFound": "We're unable to locate FFmpeg using the path you've entered. FFprobe is also required and must exist in the same folder. These components are normally bundled together in the same download. Please check the path and try again.",
|
||||||
"XmlTvPremiere": "By default, Emby will import {0} hours of guide data. Importing unlimited data requires an active Emby Premiere subscription.",
|
"XmlTvPremiere": "By default, Emby will import {0} hours of guide data. Importing unlimited data requires an active Emby Premiere subscription.",
|
||||||
"MoreFromValue": "More from {0}",
|
"MoreFromValue": "More from {0}",
|
||||||
"OptionSaveMetadataAsHiddenHelp": "Changing this will apply to new metadata saved going forward. Existing metadata files will be updated the next time they are saved by Emby Server."
|
"OptionSaveMetadataAsHiddenHelp": "Changing this will apply to new metadata saved going forward. Existing metadata files will be updated the next time they are saved by Emby Server.",
|
||||||
|
"EnablePhotos": "Enable photos",
|
||||||
|
"EnablePhotosHelp": "Photos will be detected and displayed alongside other media files.",
|
||||||
|
"MakeAvailableOffline": "Make available offline",
|
||||||
|
"ConfirmRemoveDownload": "Remove download?"
|
||||||
}
|
}
|
|
@ -2310,5 +2310,9 @@
|
||||||
"FFmpegSavePathNotFound": "Nous ne pouvons pas localiser FFmpeg en utilisant le chemin que vous avez saisi. FFprobe est \u00e9galement n\u00e9cessaire et doit exister dans le m\u00eame dossier. Ces composants sont g\u00e9n\u00e9ralement regroup\u00e9s dans le m\u00eame t\u00e9l\u00e9chargement. S'il vous pla\u00eet v\u00e9rifier le chemin et essayer \u00e0 nouveau.",
|
"FFmpegSavePathNotFound": "Nous ne pouvons pas localiser FFmpeg en utilisant le chemin que vous avez saisi. FFprobe est \u00e9galement n\u00e9cessaire et doit exister dans le m\u00eame dossier. Ces composants sont g\u00e9n\u00e9ralement regroup\u00e9s dans le m\u00eame t\u00e9l\u00e9chargement. S'il vous pla\u00eet v\u00e9rifier le chemin et essayer \u00e0 nouveau.",
|
||||||
"XmlTvPremiere": "Par d\u00e9faut, Emby importera {0} heures de donn\u00e9es de guidage. L\u2019importation de donn\u00e9es illimit\u00e9 n\u00e9cessite un abonnement Emby Premiere.",
|
"XmlTvPremiere": "Par d\u00e9faut, Emby importera {0} heures de donn\u00e9es de guidage. L\u2019importation de donn\u00e9es illimit\u00e9 n\u00e9cessite un abonnement Emby Premiere.",
|
||||||
"MoreFromValue": "Plus de {0}",
|
"MoreFromValue": "Plus de {0}",
|
||||||
"OptionSaveMetadataAsHiddenHelp": "La modification s'appliquera aux nouvelles m\u00e9tadonn\u00e9es enregistr\u00e9es \u00e0 l'avenir. Les fichiers de m\u00e9tadonn\u00e9es existants seront mis \u00e0 jour la prochaine fois par Emby Server."
|
"OptionSaveMetadataAsHiddenHelp": "La modification s'appliquera aux nouvelles m\u00e9tadonn\u00e9es enregistr\u00e9es \u00e0 l'avenir. Les fichiers de m\u00e9tadonn\u00e9es existants seront mis \u00e0 jour la prochaine fois par Emby Server.",
|
||||||
|
"EnablePhotos": "Enable photos",
|
||||||
|
"EnablePhotosHelp": "Photos will be detected and displayed alongside other media files.",
|
||||||
|
"MakeAvailableOffline": "Make available offline",
|
||||||
|
"ConfirmRemoveDownload": "Remove download?"
|
||||||
}
|
}
|
|
@ -2310,5 +2310,9 @@
|
||||||
"FFmpegSavePathNotFound": "We're unable to locate FFmpeg using the path you've entered. FFprobe is also required and must exist in the same folder. These components are normally bundled together in the same download. Please check the path and try again.",
|
"FFmpegSavePathNotFound": "We're unable to locate FFmpeg using the path you've entered. FFprobe is also required and must exist in the same folder. These components are normally bundled together in the same download. Please check the path and try again.",
|
||||||
"XmlTvPremiere": "By default, Emby will import {0} hours of guide data. Importing unlimited data requires an active Emby Premiere subscription.",
|
"XmlTvPremiere": "By default, Emby will import {0} hours of guide data. Importing unlimited data requires an active Emby Premiere subscription.",
|
||||||
"MoreFromValue": "More from {0}",
|
"MoreFromValue": "More from {0}",
|
||||||
"OptionSaveMetadataAsHiddenHelp": "Changing this will apply to new metadata saved going forward. Existing metadata files will be updated the next time they are saved by Emby Server."
|
"OptionSaveMetadataAsHiddenHelp": "Changing this will apply to new metadata saved going forward. Existing metadata files will be updated the next time they are saved by Emby Server.",
|
||||||
|
"EnablePhotos": "Enable photos",
|
||||||
|
"EnablePhotosHelp": "Photos will be detected and displayed alongside other media files.",
|
||||||
|
"MakeAvailableOffline": "Make available offline",
|
||||||
|
"ConfirmRemoveDownload": "Remove download?"
|
||||||
}
|
}
|
|
@ -2310,5 +2310,9 @@
|
||||||
"FFmpegSavePathNotFound": "We're unable to locate FFmpeg using the path you've entered. FFprobe is also required and must exist in the same folder. These components are normally bundled together in the same download. Please check the path and try again.",
|
"FFmpegSavePathNotFound": "We're unable to locate FFmpeg using the path you've entered. FFprobe is also required and must exist in the same folder. These components are normally bundled together in the same download. Please check the path and try again.",
|
||||||
"XmlTvPremiere": "By default, Emby will import {0} hours of guide data. Importing unlimited data requires an active Emby Premiere subscription.",
|
"XmlTvPremiere": "By default, Emby will import {0} hours of guide data. Importing unlimited data requires an active Emby Premiere subscription.",
|
||||||
"MoreFromValue": "More from {0}",
|
"MoreFromValue": "More from {0}",
|
||||||
"OptionSaveMetadataAsHiddenHelp": "Changing this will apply to new metadata saved going forward. Existing metadata files will be updated the next time they are saved by Emby Server."
|
"OptionSaveMetadataAsHiddenHelp": "Changing this will apply to new metadata saved going forward. Existing metadata files will be updated the next time they are saved by Emby Server.",
|
||||||
|
"EnablePhotos": "Enable photos",
|
||||||
|
"EnablePhotosHelp": "Photos will be detected and displayed alongside other media files.",
|
||||||
|
"MakeAvailableOffline": "Make available offline",
|
||||||
|
"ConfirmRemoveDownload": "Remove download?"
|
||||||
}
|
}
|
|
@ -2310,5 +2310,9 @@
|
||||||
"FFmpegSavePathNotFound": "We're unable to locate FFmpeg using the path you've entered. FFprobe is also required and must exist in the same folder. These components are normally bundled together in the same download. Please check the path and try again.",
|
"FFmpegSavePathNotFound": "We're unable to locate FFmpeg using the path you've entered. FFprobe is also required and must exist in the same folder. These components are normally bundled together in the same download. Please check the path and try again.",
|
||||||
"XmlTvPremiere": "By default, Emby will import {0} hours of guide data. Importing unlimited data requires an active Emby Premiere subscription.",
|
"XmlTvPremiere": "By default, Emby will import {0} hours of guide data. Importing unlimited data requires an active Emby Premiere subscription.",
|
||||||
"MoreFromValue": "More from {0}",
|
"MoreFromValue": "More from {0}",
|
||||||
"OptionSaveMetadataAsHiddenHelp": "Changing this will apply to new metadata saved going forward. Existing metadata files will be updated the next time they are saved by Emby Server."
|
"OptionSaveMetadataAsHiddenHelp": "Changing this will apply to new metadata saved going forward. Existing metadata files will be updated the next time they are saved by Emby Server.",
|
||||||
|
"EnablePhotos": "Enable photos",
|
||||||
|
"EnablePhotosHelp": "Photos will be detected and displayed alongside other media files.",
|
||||||
|
"MakeAvailableOffline": "Make available offline",
|
||||||
|
"ConfirmRemoveDownload": "Remove download?"
|
||||||
}
|
}
|
|
@ -2310,5 +2310,9 @@
|
||||||
"FFmpegSavePathNotFound": "We're unable to locate FFmpeg using the path you've entered. FFprobe is also required and must exist in the same folder. These components are normally bundled together in the same download. Please check the path and try again.",
|
"FFmpegSavePathNotFound": "We're unable to locate FFmpeg using the path you've entered. FFprobe is also required and must exist in the same folder. These components are normally bundled together in the same download. Please check the path and try again.",
|
||||||
"XmlTvPremiere": "By default, Emby will import {0} hours of guide data. Importing unlimited data requires an active Emby Premiere subscription.",
|
"XmlTvPremiere": "By default, Emby will import {0} hours of guide data. Importing unlimited data requires an active Emby Premiere subscription.",
|
||||||
"MoreFromValue": "More from {0}",
|
"MoreFromValue": "More from {0}",
|
||||||
"OptionSaveMetadataAsHiddenHelp": "Changing this will apply to new metadata saved going forward. Existing metadata files will be updated the next time they are saved by Emby Server."
|
"OptionSaveMetadataAsHiddenHelp": "Changing this will apply to new metadata saved going forward. Existing metadata files will be updated the next time they are saved by Emby Server.",
|
||||||
|
"EnablePhotos": "Enable photos",
|
||||||
|
"EnablePhotosHelp": "Photos will be detected and displayed alongside other media files.",
|
||||||
|
"MakeAvailableOffline": "Make available offline",
|
||||||
|
"ConfirmRemoveDownload": "Remove download?"
|
||||||
}
|
}
|
|
@ -2310,5 +2310,9 @@
|
||||||
"FFmpegSavePathNotFound": "We're unable to locate FFmpeg using the path you've entered. FFprobe is also required and must exist in the same folder. These components are normally bundled together in the same download. Please check the path and try again.",
|
"FFmpegSavePathNotFound": "We're unable to locate FFmpeg using the path you've entered. FFprobe is also required and must exist in the same folder. These components are normally bundled together in the same download. Please check the path and try again.",
|
||||||
"XmlTvPremiere": "By default, Emby will import {0} hours of guide data. Importing unlimited data requires an active Emby Premiere subscription.",
|
"XmlTvPremiere": "By default, Emby will import {0} hours of guide data. Importing unlimited data requires an active Emby Premiere subscription.",
|
||||||
"MoreFromValue": "More from {0}",
|
"MoreFromValue": "More from {0}",
|
||||||
"OptionSaveMetadataAsHiddenHelp": "Changing this will apply to new metadata saved going forward. Existing metadata files will be updated the next time they are saved by Emby Server."
|
"OptionSaveMetadataAsHiddenHelp": "Changing this will apply to new metadata saved going forward. Existing metadata files will be updated the next time they are saved by Emby Server.",
|
||||||
|
"EnablePhotos": "Enable photos",
|
||||||
|
"EnablePhotosHelp": "Photos will be detected and displayed alongside other media files.",
|
||||||
|
"MakeAvailableOffline": "Make available offline",
|
||||||
|
"ConfirmRemoveDownload": "Remove download?"
|
||||||
}
|
}
|
|
@ -2310,5 +2310,9 @@
|
||||||
"FFmpegSavePathNotFound": "We're unable to locate FFmpeg using the path you've entered. FFprobe is also required and must exist in the same folder. These components are normally bundled together in the same download. Please check the path and try again.",
|
"FFmpegSavePathNotFound": "We're unable to locate FFmpeg using the path you've entered. FFprobe is also required and must exist in the same folder. These components are normally bundled together in the same download. Please check the path and try again.",
|
||||||
"XmlTvPremiere": "By default, Emby will import {0} hours of guide data. Importing unlimited data requires an active Emby Premiere subscription.",
|
"XmlTvPremiere": "By default, Emby will import {0} hours of guide data. Importing unlimited data requires an active Emby Premiere subscription.",
|
||||||
"MoreFromValue": "More from {0}",
|
"MoreFromValue": "More from {0}",
|
||||||
"OptionSaveMetadataAsHiddenHelp": "Changing this will apply to new metadata saved going forward. Existing metadata files will be updated the next time they are saved by Emby Server."
|
"OptionSaveMetadataAsHiddenHelp": "Changing this will apply to new metadata saved going forward. Existing metadata files will be updated the next time they are saved by Emby Server.",
|
||||||
|
"EnablePhotos": "Enable photos",
|
||||||
|
"EnablePhotosHelp": "Photos will be detected and displayed alongside other media files.",
|
||||||
|
"MakeAvailableOffline": "Make available offline",
|
||||||
|
"ConfirmRemoveDownload": "Remove download?"
|
||||||
}
|
}
|
|
@ -1349,7 +1349,7 @@
|
||||||
"HeaderPlayback": "\u0422\u0430\u0441\u044b\u0493\u044b\u0448\u0434\u0435\u0440\u0435\u043a\u0442\u0435\u0440\u0434\u0456 \u043e\u0439\u043d\u0430\u0442\u0443",
|
"HeaderPlayback": "\u0422\u0430\u0441\u044b\u0493\u044b\u0448\u0434\u0435\u0440\u0435\u043a\u0442\u0435\u0440\u0434\u0456 \u043e\u0439\u043d\u0430\u0442\u0443",
|
||||||
"OptionAllowAudioPlaybackTranscoding": "\u049a\u0430\u0439\u0442\u0430 \u043a\u043e\u0434\u0442\u0430\u0443\u0493\u0430 \u0442\u0430\u043b\u0430\u0431\u044b \u0431\u0430\u0440 \u0434\u044b\u0431\u044b\u0441 \u043e\u0439\u043d\u0430\u0442\u0443 \u04af\u0448\u0456\u043d \u0440\u04b1\u049b\u0441\u0430\u0442 \u0435\u0442\u0443",
|
"OptionAllowAudioPlaybackTranscoding": "\u049a\u0430\u0439\u0442\u0430 \u043a\u043e\u0434\u0442\u0430\u0443\u0493\u0430 \u0442\u0430\u043b\u0430\u0431\u044b \u0431\u0430\u0440 \u0434\u044b\u0431\u044b\u0441 \u043e\u0439\u043d\u0430\u0442\u0443 \u04af\u0448\u0456\u043d \u0440\u04b1\u049b\u0441\u0430\u0442 \u0435\u0442\u0443",
|
||||||
"OptionAllowVideoPlaybackTranscoding": "\u049a\u0430\u0439\u0442\u0430 \u043a\u043e\u0434\u0442\u0430\u0443\u0493\u0430 \u0442\u0430\u043b\u0430\u0431\u044b \u0431\u0430\u0440 \u0431\u0435\u0439\u043d\u0435 \u043e\u0439\u043d\u0430\u0442\u0443 \u04af\u0448\u0456\u043d \u0440\u04b1\u049b\u0441\u0430\u0442 \u0435\u0442\u0443",
|
"OptionAllowVideoPlaybackTranscoding": "\u049a\u0430\u0439\u0442\u0430 \u043a\u043e\u0434\u0442\u0430\u0443\u0493\u0430 \u0442\u0430\u043b\u0430\u0431\u044b \u0431\u0430\u0440 \u0431\u0435\u0439\u043d\u0435 \u043e\u0439\u043d\u0430\u0442\u0443 \u04af\u0448\u0456\u043d \u0440\u04b1\u049b\u0441\u0430\u0442 \u0435\u0442\u0443",
|
||||||
"OptionAllowVideoPlaybackRemuxing": "Allow video playback that requires conversion without re-encoding",
|
"OptionAllowVideoPlaybackRemuxing": "\u049a\u0430\u0439\u0442\u0430 \u043a\u043e\u0434\u0442\u0430\u0443\u0441\u044b\u0437 \u0442\u04af\u0440\u043b\u0435\u043d\u0434\u0456\u0440\u0443 \u0442\u0430\u043b\u0430\u0431\u044b \u0431\u0430\u0440 \u0431\u0435\u0439\u043d\u0435 \u043e\u0439\u043d\u0430\u0442\u0443 \u04af\u0448\u0456\u043d \u0440\u04b1\u049b\u0441\u0430\u0442 \u0435\u0442\u0443",
|
||||||
"OptionAllowMediaPlaybackTranscodingHelp": "\u041f\u0430\u0439\u0434\u0430\u043b\u0430\u043d\u0443\u0448\u044b\u043b\u0430\u0440 \u04e9\u0437\u0434\u0435\u0440\u0456\u043d\u0456\u04a3 \u0441\u0430\u044f\u0441\u0430\u0442\u0442\u0430\u0440\u044b\u043d\u0430 \u043d\u0435\u0433\u0456\u0437\u0434\u0435\u043b\u0433\u0435\u043d \u043e\u0439\u043d\u0430\u0442\u044b\u043b\u043c\u0430\u0439\u0442\u044b\u043d \u043c\u0430\u0437\u043c\u04b1\u043d \u0431\u043e\u043b\u0493\u0430\u043d\u0434\u0430\u0493\u044b \u049b\u0430\u0442\u0435 \u0442\u0443\u0440\u0430\u043b\u044b \u043e\u04a3\u0430\u0439 \u0445\u0430\u0431\u0430\u0440\u043b\u0430\u0440\u0434\u044b \u0430\u043b\u0430\u0434\u044b.",
|
"OptionAllowMediaPlaybackTranscodingHelp": "\u041f\u0430\u0439\u0434\u0430\u043b\u0430\u043d\u0443\u0448\u044b\u043b\u0430\u0440 \u04e9\u0437\u0434\u0435\u0440\u0456\u043d\u0456\u04a3 \u0441\u0430\u044f\u0441\u0430\u0442\u0442\u0430\u0440\u044b\u043d\u0430 \u043d\u0435\u0433\u0456\u0437\u0434\u0435\u043b\u0433\u0435\u043d \u043e\u0439\u043d\u0430\u0442\u044b\u043b\u043c\u0430\u0439\u0442\u044b\u043d \u043c\u0430\u0437\u043c\u04b1\u043d \u0431\u043e\u043b\u0493\u0430\u043d\u0434\u0430\u0493\u044b \u049b\u0430\u0442\u0435 \u0442\u0443\u0440\u0430\u043b\u044b \u043e\u04a3\u0430\u0439 \u0445\u0430\u0431\u0430\u0440\u043b\u0430\u0440\u0434\u044b \u0430\u043b\u0430\u0434\u044b.",
|
||||||
"TabStreaming": "\u0410\u0493\u044b\u043d\u043c\u0435\u043d \u0442\u0430\u0441\u044b\u043c\u0430\u043b\u0434\u0430\u0443",
|
"TabStreaming": "\u0410\u0493\u044b\u043d\u043c\u0435\u043d \u0442\u0430\u0441\u044b\u043c\u0430\u043b\u0434\u0430\u0443",
|
||||||
"LabelRemoteClientBitrateLimit": "\u0418\u043d\u0442\u0435\u0440\u043d\u0435\u0442\u0442\u0435 \u0430\u0493\u044b\u043d\u043c\u0435\u043d \u0442\u0430\u0441\u044b\u043c\u0430\u043b\u0434\u0430\u0443 \u049b\u0430\u0440\u049b\u044b\u043d\u044b\u043d\u044b\u04a3 \u0448\u0435\u0433\u0456, \u041c\u0431\u0438\u0442\/\u0441:",
|
"LabelRemoteClientBitrateLimit": "\u0418\u043d\u0442\u0435\u0440\u043d\u0435\u0442\u0442\u0435 \u0430\u0493\u044b\u043d\u043c\u0435\u043d \u0442\u0430\u0441\u044b\u043c\u0430\u043b\u0434\u0430\u0443 \u049b\u0430\u0440\u049b\u044b\u043d\u044b\u043d\u044b\u04a3 \u0448\u0435\u0433\u0456, \u041c\u0431\u0438\u0442\/\u0441:",
|
||||||
|
@ -1862,7 +1862,7 @@
|
||||||
"OptionMusicAlbums": "\u041c\u0443\u0437\u044b\u043a\u0430 \u0430\u043b\u044c\u0431\u043e\u043c\u0434\u0430\u0440\u044b",
|
"OptionMusicAlbums": "\u041c\u0443\u0437\u044b\u043a\u0430 \u0430\u043b\u044c\u0431\u043e\u043c\u0434\u0430\u0440\u044b",
|
||||||
"OptionMusicVideos": "\u041c\u0443\u0437\u044b\u043a\u0430\u043b\u044b\u049b \u0431\u0435\u0439\u043d\u0435\u043b\u0435\u0440",
|
"OptionMusicVideos": "\u041c\u0443\u0437\u044b\u043a\u0430\u043b\u044b\u049b \u0431\u0435\u0439\u043d\u0435\u043b\u0435\u0440",
|
||||||
"OptionSongs": "\u04d8\u0443\u0435\u043d\u0434\u0435\u0440",
|
"OptionSongs": "\u04d8\u0443\u0435\u043d\u0434\u0435\u0440",
|
||||||
"OptionHomeVideos": "\u04ae\u0439 \u0431\u0435\u0439\u043d\u0435\u043b\u0435\u0440\u0456",
|
"OptionHomeVideos": "\u04ae\u0439 \u0431\u0435\u0439\u043d\u0435\u043b\u0435\u0440\u0456 \u043c\u0435\u043d \u0444\u043e\u0442\u043e\u0441\u0443\u0440\u0435\u0442\u0442\u0435\u0440",
|
||||||
"OptionBooks": "\u041a\u0456\u0442\u0430\u043f\u0442\u0430\u0440",
|
"OptionBooks": "\u041a\u0456\u0442\u0430\u043f\u0442\u0430\u0440",
|
||||||
"ButtonUp": "\u0416\u043e\u0493\u0430\u0440\u044b\u0493\u0430",
|
"ButtonUp": "\u0416\u043e\u0493\u0430\u0440\u044b\u0493\u0430",
|
||||||
"ButtonDown": "\u0422\u04e9\u043c\u0435\u043d\u0433\u0435",
|
"ButtonDown": "\u0422\u04e9\u043c\u0435\u043d\u0433\u0435",
|
||||||
|
@ -2310,5 +2310,9 @@
|
||||||
"FFmpegSavePathNotFound": "\u0411\u0456\u0437\u0433\u0435 \u0441\u0456\u0437 \u0435\u043d\u0433\u0456\u0437\u0433\u0435\u043d FFmpeg \u0436\u043e\u043b\u044b\u043d \u043f\u0430\u0439\u0434\u0430\u043b\u0430\u043d\u044b\u043f \u0442\u0430\u0431\u0443 \u043c\u04af\u043c\u043a\u0456\u043d \u0431\u043e\u043b\u043c\u0430\u0434\u044b. \u0421\u043e\u043d\u0434\u0430\u0439-\u0430\u049b FFprobe \u0442\u0430\u043b\u0430\u043f \u0435\u0442\u0456\u043b\u0435\u0434\u0456 \u0436\u04d9\u043d\u0435 \u0441\u043e\u043b \u049b\u0430\u043b\u0442\u0430\u0434\u0430 \u0431\u043e\u043b\u0443\u044b \u0436\u04e9\u043d. \u0411\u04b1\u043b \u049b\u04b1\u0440\u0430\u043c\u0434\u0430\u0441\u0442\u0430\u0440 \u04d9\u0434\u0435\u0442\u0442\u0435 \u0441\u043e\u043b \u0436\u04af\u043a\u0442\u0435\u0443\u043c\u0435\u043d \u0431\u0456\u0440\u0433\u0435 \u0436\u0435\u0442\u043a\u0456\u0437\u0456\u043b\u0435\u0434\u0456. \u0416\u043e\u043b\u0434\u044b \u0442\u0435\u043a\u0441\u0435\u0440\u0456\u043f, \u049b\u0430\u0439\u0442\u0430\u043b\u0430\u043f \u043a\u04e9\u0440\u0456\u04a3\u0456\u0437.",
|
"FFmpegSavePathNotFound": "\u0411\u0456\u0437\u0433\u0435 \u0441\u0456\u0437 \u0435\u043d\u0433\u0456\u0437\u0433\u0435\u043d FFmpeg \u0436\u043e\u043b\u044b\u043d \u043f\u0430\u0439\u0434\u0430\u043b\u0430\u043d\u044b\u043f \u0442\u0430\u0431\u0443 \u043c\u04af\u043c\u043a\u0456\u043d \u0431\u043e\u043b\u043c\u0430\u0434\u044b. \u0421\u043e\u043d\u0434\u0430\u0439-\u0430\u049b FFprobe \u0442\u0430\u043b\u0430\u043f \u0435\u0442\u0456\u043b\u0435\u0434\u0456 \u0436\u04d9\u043d\u0435 \u0441\u043e\u043b \u049b\u0430\u043b\u0442\u0430\u0434\u0430 \u0431\u043e\u043b\u0443\u044b \u0436\u04e9\u043d. \u0411\u04b1\u043b \u049b\u04b1\u0440\u0430\u043c\u0434\u0430\u0441\u0442\u0430\u0440 \u04d9\u0434\u0435\u0442\u0442\u0435 \u0441\u043e\u043b \u0436\u04af\u043a\u0442\u0435\u0443\u043c\u0435\u043d \u0431\u0456\u0440\u0433\u0435 \u0436\u0435\u0442\u043a\u0456\u0437\u0456\u043b\u0435\u0434\u0456. \u0416\u043e\u043b\u0434\u044b \u0442\u0435\u043a\u0441\u0435\u0440\u0456\u043f, \u049b\u0430\u0439\u0442\u0430\u043b\u0430\u043f \u043a\u04e9\u0440\u0456\u04a3\u0456\u0437.",
|
||||||
"XmlTvPremiere": "\u04d8\u0434\u0435\u043f\u043a\u0456\u0434\u0435, Emby \u0430\u0440\u049b\u044b\u043b\u044b {0} \u0441\u0430\u0493\u0430\u0442 \u049b\u0430\u043c\u0442\u0438\u0442\u044b\u043d \u0442\u0435\u043b\u0435\u0433\u0438\u0434 \u0434\u0435\u0440\u0435\u043a\u0442\u0435\u0440\u0456 \u0448\u0435\u0442\u0442\u0435\u043d \u04d9\u043a\u0435\u043b\u0456\u043d\u0435\u0434\u0456. \u0414\u0435\u0440\u0435\u043a\u0442\u0435\u0440\u0434\u0456 \u0448\u0435\u043a\u0441\u0456\u0437 \u0448\u0435\u0442\u0442\u0435\u043d \u04d9\u043a\u0435\u043b\u0443\u0456 \u0431\u0435\u043b\u0441\u0435\u043d\u0434\u0456 Emby Premiere \u0436\u0430\u0437\u044b\u043b\u044b\u043c\u044b\u043d \u049b\u0430\u0436\u0435\u0442 \u0435\u0442\u0435\u0434\u0456.",
|
"XmlTvPremiere": "\u04d8\u0434\u0435\u043f\u043a\u0456\u0434\u0435, Emby \u0430\u0440\u049b\u044b\u043b\u044b {0} \u0441\u0430\u0493\u0430\u0442 \u049b\u0430\u043c\u0442\u0438\u0442\u044b\u043d \u0442\u0435\u043b\u0435\u0433\u0438\u0434 \u0434\u0435\u0440\u0435\u043a\u0442\u0435\u0440\u0456 \u0448\u0435\u0442\u0442\u0435\u043d \u04d9\u043a\u0435\u043b\u0456\u043d\u0435\u0434\u0456. \u0414\u0435\u0440\u0435\u043a\u0442\u0435\u0440\u0434\u0456 \u0448\u0435\u043a\u0441\u0456\u0437 \u0448\u0435\u0442\u0442\u0435\u043d \u04d9\u043a\u0435\u043b\u0443\u0456 \u0431\u0435\u043b\u0441\u0435\u043d\u0434\u0456 Emby Premiere \u0436\u0430\u0437\u044b\u043b\u044b\u043c\u044b\u043d \u049b\u0430\u0436\u0435\u0442 \u0435\u0442\u0435\u0434\u0456.",
|
||||||
"MoreFromValue": "{0} \u0430\u0440\u049b\u044b\u043b\u044b \u043a\u04e9\u0431\u0456\u0440\u0435\u043a",
|
"MoreFromValue": "{0} \u0430\u0440\u049b\u044b\u043b\u044b \u043a\u04e9\u0431\u0456\u0440\u0435\u043a",
|
||||||
"OptionSaveMetadataAsHiddenHelp": "\u041e\u0441\u044b \u04e9\u0437\u0433\u0435\u0440\u0442\u0443 \u0431\u043e\u043b\u0430\u0448\u0430\u049b\u0442\u0430 \u0441\u0430\u049b\u0442\u0430\u043b\u0430\u0442\u044b\u043d \u0436\u0430\u04a3\u0430 \u043c\u0435\u0442\u0430\u0434\u0435\u0440\u0435\u043a\u0442\u0435\u0440 \u04af\u0448\u0456\u043d \u049b\u043e\u043b\u0434\u0430\u043d\u044b\u043b\u0430\u0434\u044b. \u0411\u0430\u0440 \u043c\u0435\u0442\u0430\u0434\u0435\u0440\u0435\u043a \u0444\u0430\u0439\u043b\u0434\u0430\u0440 \u043e\u043b\u0430\u0440 Emby \u0441\u0435\u0440\u0432\u0435\u0440\u0456 \u0430\u0440\u049b\u044b\u043b\u044b \u0441\u0430\u049b\u0442\u0430\u043b\u0493\u0430\u043d\u0434\u0430 \u043a\u0435\u043b\u0435\u0441\u0456 \u0436\u043e\u043b\u044b \u0436\u0430\u04a3\u0430\u0440\u0442\u044b\u043b\u0430\u0434\u044b."
|
"OptionSaveMetadataAsHiddenHelp": "\u041e\u0441\u044b \u04e9\u0437\u0433\u0435\u0440\u0442\u0443 \u0431\u043e\u043b\u0430\u0448\u0430\u049b\u0442\u0430 \u0441\u0430\u049b\u0442\u0430\u043b\u0430\u0442\u044b\u043d \u0436\u0430\u04a3\u0430 \u043c\u0435\u0442\u0430\u0434\u0435\u0440\u0435\u043a\u0442\u0435\u0440 \u04af\u0448\u0456\u043d \u049b\u043e\u043b\u0434\u0430\u043d\u044b\u043b\u0430\u0434\u044b. \u0411\u0430\u0440 \u043c\u0435\u0442\u0430\u0434\u0435\u0440\u0435\u043a \u0444\u0430\u0439\u043b\u0434\u0430\u0440 \u043e\u043b\u0430\u0440 Emby \u0441\u0435\u0440\u0432\u0435\u0440\u0456 \u0430\u0440\u049b\u044b\u043b\u044b \u0441\u0430\u049b\u0442\u0430\u043b\u0493\u0430\u043d\u0434\u0430 \u043a\u0435\u043b\u0435\u0441\u0456 \u0436\u043e\u043b\u044b \u0436\u0430\u04a3\u0430\u0440\u0442\u044b\u043b\u0430\u0434\u044b.",
|
||||||
|
"EnablePhotos": "Enable photos",
|
||||||
|
"EnablePhotosHelp": "Photos will be detected and displayed alongside other media files.",
|
||||||
|
"MakeAvailableOffline": "Make available offline",
|
||||||
|
"ConfirmRemoveDownload": "Remove download?"
|
||||||
}
|
}
|
|
@ -2310,5 +2310,9 @@
|
||||||
"FFmpegSavePathNotFound": "We're unable to locate FFmpeg using the path you've entered. FFprobe is also required and must exist in the same folder. These components are normally bundled together in the same download. Please check the path and try again.",
|
"FFmpegSavePathNotFound": "We're unable to locate FFmpeg using the path you've entered. FFprobe is also required and must exist in the same folder. These components are normally bundled together in the same download. Please check the path and try again.",
|
||||||
"XmlTvPremiere": "By default, Emby will import {0} hours of guide data. Importing unlimited data requires an active Emby Premiere subscription.",
|
"XmlTvPremiere": "By default, Emby will import {0} hours of guide data. Importing unlimited data requires an active Emby Premiere subscription.",
|
||||||
"MoreFromValue": "More from {0}",
|
"MoreFromValue": "More from {0}",
|
||||||
"OptionSaveMetadataAsHiddenHelp": "Changing this will apply to new metadata saved going forward. Existing metadata files will be updated the next time they are saved by Emby Server."
|
"OptionSaveMetadataAsHiddenHelp": "Changing this will apply to new metadata saved going forward. Existing metadata files will be updated the next time they are saved by Emby Server.",
|
||||||
|
"EnablePhotos": "Enable photos",
|
||||||
|
"EnablePhotosHelp": "Photos will be detected and displayed alongside other media files.",
|
||||||
|
"MakeAvailableOffline": "Make available offline",
|
||||||
|
"ConfirmRemoveDownload": "Remove download?"
|
||||||
}
|
}
|
|
@ -2310,5 +2310,9 @@
|
||||||
"FFmpegSavePathNotFound": "We're unable to locate FFmpeg using the path you've entered. FFprobe is also required and must exist in the same folder. These components are normally bundled together in the same download. Please check the path and try again.",
|
"FFmpegSavePathNotFound": "We're unable to locate FFmpeg using the path you've entered. FFprobe is also required and must exist in the same folder. These components are normally bundled together in the same download. Please check the path and try again.",
|
||||||
"XmlTvPremiere": "By default, Emby will import {0} hours of guide data. Importing unlimited data requires an active Emby Premiere subscription.",
|
"XmlTvPremiere": "By default, Emby will import {0} hours of guide data. Importing unlimited data requires an active Emby Premiere subscription.",
|
||||||
"MoreFromValue": "More from {0}",
|
"MoreFromValue": "More from {0}",
|
||||||
"OptionSaveMetadataAsHiddenHelp": "Changing this will apply to new metadata saved going forward. Existing metadata files will be updated the next time they are saved by Emby Server."
|
"OptionSaveMetadataAsHiddenHelp": "Changing this will apply to new metadata saved going forward. Existing metadata files will be updated the next time they are saved by Emby Server.",
|
||||||
|
"EnablePhotos": "Enable photos",
|
||||||
|
"EnablePhotosHelp": "Photos will be detected and displayed alongside other media files.",
|
||||||
|
"MakeAvailableOffline": "Make available offline",
|
||||||
|
"ConfirmRemoveDownload": "Remove download?"
|
||||||
}
|
}
|
|
@ -2310,5 +2310,9 @@
|
||||||
"FFmpegSavePathNotFound": "Vi kan dessverre ikke finne FFmpeg bruke banen du har angitt. FFprobe er ogs\u00e5 n\u00f8dvendig og m\u00e5 ligge i samme mappe. Disse komponentene er vanligvis buntet sammen i samme nedlastning. Kontroller banen og pr\u00f8v igjen.",
|
"FFmpegSavePathNotFound": "Vi kan dessverre ikke finne FFmpeg bruke banen du har angitt. FFprobe er ogs\u00e5 n\u00f8dvendig og m\u00e5 ligge i samme mappe. Disse komponentene er vanligvis buntet sammen i samme nedlastning. Kontroller banen og pr\u00f8v igjen.",
|
||||||
"XmlTvPremiere": "Som standard, vill Emby importere {0} timer av tv guide informasjon. For \u00e5 kunne importere ubegrenset med data kreves det et aktivt Emby Premiere abonnement.",
|
"XmlTvPremiere": "Som standard, vill Emby importere {0} timer av tv guide informasjon. For \u00e5 kunne importere ubegrenset med data kreves det et aktivt Emby Premiere abonnement.",
|
||||||
"MoreFromValue": "More from {0}",
|
"MoreFromValue": "More from {0}",
|
||||||
"OptionSaveMetadataAsHiddenHelp": "Changing this will apply to new metadata saved going forward. Existing metadata files will be updated the next time they are saved by Emby Server."
|
"OptionSaveMetadataAsHiddenHelp": "Changing this will apply to new metadata saved going forward. Existing metadata files will be updated the next time they are saved by Emby Server.",
|
||||||
|
"EnablePhotos": "Enable photos",
|
||||||
|
"EnablePhotosHelp": "Photos will be detected and displayed alongside other media files.",
|
||||||
|
"MakeAvailableOffline": "Make available offline",
|
||||||
|
"ConfirmRemoveDownload": "Remove download?"
|
||||||
}
|
}
|
|
@ -2310,5 +2310,9 @@
|
||||||
"FFmpegSavePathNotFound": "We zijn niet in staat om FFmpeg te lokaliseren met behulp van het pad dat u hebt ingevoerd. FFprobe is ook nodig en moet \u200b\u200bin dezelfde map staan. Deze componenten worden gewoonlijk gebundeld in dezelfde download. Controleer het pad en probeer het opnieuw.",
|
"FFmpegSavePathNotFound": "We zijn niet in staat om FFmpeg te lokaliseren met behulp van het pad dat u hebt ingevoerd. FFprobe is ook nodig en moet \u200b\u200bin dezelfde map staan. Deze componenten worden gewoonlijk gebundeld in dezelfde download. Controleer het pad en probeer het opnieuw.",
|
||||||
"XmlTvPremiere": "Standaard wordt {0} uur gids data in Emby ge\u00efmporteerd. Het importeren van onbeperkte data vereist een actieve Emby Premiere abonnement.",
|
"XmlTvPremiere": "Standaard wordt {0} uur gids data in Emby ge\u00efmporteerd. Het importeren van onbeperkte data vereist een actieve Emby Premiere abonnement.",
|
||||||
"MoreFromValue": "Meer van {0}",
|
"MoreFromValue": "Meer van {0}",
|
||||||
"OptionSaveMetadataAsHiddenHelp": "Het veranderen van dit zal gelden voor nieuwe metadata die wordt opgeslagen. Bestaande metadata bestanden zullen de volgende keer dat ze worden opgeslagen door Emby Server worden bijgewerkt."
|
"OptionSaveMetadataAsHiddenHelp": "Het veranderen van dit zal gelden voor nieuwe metadata die wordt opgeslagen. Bestaande metadata bestanden zullen de volgende keer dat ze worden opgeslagen door Emby Server worden bijgewerkt.",
|
||||||
|
"EnablePhotos": "Enable photos",
|
||||||
|
"EnablePhotosHelp": "Photos will be detected and displayed alongside other media files.",
|
||||||
|
"MakeAvailableOffline": "Make available offline",
|
||||||
|
"ConfirmRemoveDownload": "Remove download?"
|
||||||
}
|
}
|
|
@ -2310,5 +2310,9 @@
|
||||||
"FFmpegSavePathNotFound": "We're unable to locate FFmpeg using the path you've entered. FFprobe is also required and must exist in the same folder. These components are normally bundled together in the same download. Please check the path and try again.",
|
"FFmpegSavePathNotFound": "We're unable to locate FFmpeg using the path you've entered. FFprobe is also required and must exist in the same folder. These components are normally bundled together in the same download. Please check the path and try again.",
|
||||||
"XmlTvPremiere": "By default, Emby will import {0} hours of guide data. Importing unlimited data requires an active Emby Premiere subscription.",
|
"XmlTvPremiere": "By default, Emby will import {0} hours of guide data. Importing unlimited data requires an active Emby Premiere subscription.",
|
||||||
"MoreFromValue": "More from {0}",
|
"MoreFromValue": "More from {0}",
|
||||||
"OptionSaveMetadataAsHiddenHelp": "Changing this will apply to new metadata saved going forward. Existing metadata files will be updated the next time they are saved by Emby Server."
|
"OptionSaveMetadataAsHiddenHelp": "Changing this will apply to new metadata saved going forward. Existing metadata files will be updated the next time they are saved by Emby Server.",
|
||||||
|
"EnablePhotos": "Enable photos",
|
||||||
|
"EnablePhotosHelp": "Photos will be detected and displayed alongside other media files.",
|
||||||
|
"MakeAvailableOffline": "Make available offline",
|
||||||
|
"ConfirmRemoveDownload": "Remove download?"
|
||||||
}
|
}
|
|
@ -2310,5 +2310,9 @@
|
||||||
"FFmpegSavePathNotFound": "N\u00e3o foi poss\u00edvel localizar FFmpeg utilizando o caminho que voc\u00ea digitou. O FFprobe tamb\u00e9m \u00e9 obrigat\u00f3rio e precisa existir na mesma pasta. Estes componentes normalmente est\u00e3o juntos no mesmo download. Por favor verifique o caminho e tente novamente.",
|
"FFmpegSavePathNotFound": "N\u00e3o foi poss\u00edvel localizar FFmpeg utilizando o caminho que voc\u00ea digitou. O FFprobe tamb\u00e9m \u00e9 obrigat\u00f3rio e precisa existir na mesma pasta. Estes componentes normalmente est\u00e3o juntos no mesmo download. Por favor verifique o caminho e tente novamente.",
|
||||||
"XmlTvPremiere": "Por padr\u00e3o, o Emby importar\u00e1 {0} horas de dados do guia. A importa\u00e7\u00e3o de dados ilimitados exige uma subscri\u00e7\u00e3o ativa do Emby Premiere.",
|
"XmlTvPremiere": "Por padr\u00e3o, o Emby importar\u00e1 {0} horas de dados do guia. A importa\u00e7\u00e3o de dados ilimitados exige uma subscri\u00e7\u00e3o ativa do Emby Premiere.",
|
||||||
"MoreFromValue": "Mais de {0}",
|
"MoreFromValue": "Mais de {0}",
|
||||||
"OptionSaveMetadataAsHiddenHelp": "Ao alterar isto, aplicar\u00e1 sobre novos metadados salvos daqui para a frente. Os arquivos de metadados existentes ser\u00e3o atualizados na pr\u00f3xima vez que forem salvos no Servidor Emby."
|
"OptionSaveMetadataAsHiddenHelp": "Ao alterar isto, aplicar\u00e1 sobre novos metadados salvos daqui para a frente. Os arquivos de metadados existentes ser\u00e3o atualizados na pr\u00f3xima vez que forem salvos no Servidor Emby.",
|
||||||
|
"EnablePhotos": "Enable photos",
|
||||||
|
"EnablePhotosHelp": "Photos will be detected and displayed alongside other media files.",
|
||||||
|
"MakeAvailableOffline": "Make available offline",
|
||||||
|
"ConfirmRemoveDownload": "Remove download?"
|
||||||
}
|
}
|
|
@ -2310,5 +2310,9 @@
|
||||||
"FFmpegSavePathNotFound": "We're unable to locate FFmpeg using the path you've entered. FFprobe is also required and must exist in the same folder. These components are normally bundled together in the same download. Please check the path and try again.",
|
"FFmpegSavePathNotFound": "We're unable to locate FFmpeg using the path you've entered. FFprobe is also required and must exist in the same folder. These components are normally bundled together in the same download. Please check the path and try again.",
|
||||||
"XmlTvPremiere": "By default, Emby will import {0} hours of guide data. Importing unlimited data requires an active Emby Premiere subscription.",
|
"XmlTvPremiere": "By default, Emby will import {0} hours of guide data. Importing unlimited data requires an active Emby Premiere subscription.",
|
||||||
"MoreFromValue": "More from {0}",
|
"MoreFromValue": "More from {0}",
|
||||||
"OptionSaveMetadataAsHiddenHelp": "Changing this will apply to new metadata saved going forward. Existing metadata files will be updated the next time they are saved by Emby Server."
|
"OptionSaveMetadataAsHiddenHelp": "Changing this will apply to new metadata saved going forward. Existing metadata files will be updated the next time they are saved by Emby Server.",
|
||||||
|
"EnablePhotos": "Enable photos",
|
||||||
|
"EnablePhotosHelp": "Photos will be detected and displayed alongside other media files.",
|
||||||
|
"MakeAvailableOffline": "Make available offline",
|
||||||
|
"ConfirmRemoveDownload": "Remove download?"
|
||||||
}
|
}
|
|
@ -2310,5 +2310,9 @@
|
||||||
"FFmpegSavePathNotFound": "We're unable to locate FFmpeg using the path you've entered. FFprobe is also required and must exist in the same folder. These components are normally bundled together in the same download. Please check the path and try again.",
|
"FFmpegSavePathNotFound": "We're unable to locate FFmpeg using the path you've entered. FFprobe is also required and must exist in the same folder. These components are normally bundled together in the same download. Please check the path and try again.",
|
||||||
"XmlTvPremiere": "By default, Emby will import {0} hours of guide data. Importing unlimited data requires an active Emby Premiere subscription.",
|
"XmlTvPremiere": "By default, Emby will import {0} hours of guide data. Importing unlimited data requires an active Emby Premiere subscription.",
|
||||||
"MoreFromValue": "More from {0}",
|
"MoreFromValue": "More from {0}",
|
||||||
"OptionSaveMetadataAsHiddenHelp": "Changing this will apply to new metadata saved going forward. Existing metadata files will be updated the next time they are saved by Emby Server."
|
"OptionSaveMetadataAsHiddenHelp": "Changing this will apply to new metadata saved going forward. Existing metadata files will be updated the next time they are saved by Emby Server.",
|
||||||
|
"EnablePhotos": "Enable photos",
|
||||||
|
"EnablePhotosHelp": "Photos will be detected and displayed alongside other media files.",
|
||||||
|
"MakeAvailableOffline": "Make available offline",
|
||||||
|
"ConfirmRemoveDownload": "Remove download?"
|
||||||
}
|
}
|
|
@ -1349,7 +1349,7 @@
|
||||||
"HeaderPlayback": "\u0412\u043e\u0441\u043f\u0440\u043e\u0438\u0437\u0432\u0435\u0434\u0435\u043d\u0438\u0435 \u043c\u0435\u0434\u0438\u0430\u0434\u0430\u043d\u043d\u044b\u0445",
|
"HeaderPlayback": "\u0412\u043e\u0441\u043f\u0440\u043e\u0438\u0437\u0432\u0435\u0434\u0435\u043d\u0438\u0435 \u043c\u0435\u0434\u0438\u0430\u0434\u0430\u043d\u043d\u044b\u0445",
|
||||||
"OptionAllowAudioPlaybackTranscoding": "\u0420\u0430\u0437\u0440\u0435\u0448\u0438\u0442\u044c \u0432\u043e\u0441\u043f\u0440\u043e\u0438\u0437\u0432\u0435\u0434\u0435\u043d\u0438\u0435 \u0430\u0443\u0434\u0438\u043e, \u0434\u043b\u044f \u043a\u043e\u0442\u043e\u0440\u043e\u0433\u043e \u043f\u043e\u0442\u0440\u0435\u0431\u0443\u0435\u0442\u0441\u044f \u043f\u0435\u0440\u0435\u043a\u043e\u0434\u0438\u0440\u043e\u0432\u043a\u0430",
|
"OptionAllowAudioPlaybackTranscoding": "\u0420\u0430\u0437\u0440\u0435\u0448\u0438\u0442\u044c \u0432\u043e\u0441\u043f\u0440\u043e\u0438\u0437\u0432\u0435\u0434\u0435\u043d\u0438\u0435 \u0430\u0443\u0434\u0438\u043e, \u0434\u043b\u044f \u043a\u043e\u0442\u043e\u0440\u043e\u0433\u043e \u043f\u043e\u0442\u0440\u0435\u0431\u0443\u0435\u0442\u0441\u044f \u043f\u0435\u0440\u0435\u043a\u043e\u0434\u0438\u0440\u043e\u0432\u043a\u0430",
|
||||||
"OptionAllowVideoPlaybackTranscoding": "\u0420\u0430\u0437\u0440\u0435\u0448\u0438\u0442\u044c \u0432\u043e\u0441\u043f\u0440\u043e\u0438\u0437\u0432\u0435\u0434\u0435\u043d\u0438\u0435 \u0432\u0438\u0434\u0435\u043e, \u0434\u043b\u044f \u043a\u043e\u0442\u043e\u0440\u043e\u0433\u043e \u043f\u043e\u0442\u0440\u0435\u0431\u0443\u0435\u0442\u0441\u044f \u043f\u0435\u0440\u0435\u043a\u043e\u0434\u0438\u0440\u043e\u0432\u043a\u0430",
|
"OptionAllowVideoPlaybackTranscoding": "\u0420\u0430\u0437\u0440\u0435\u0448\u0438\u0442\u044c \u0432\u043e\u0441\u043f\u0440\u043e\u0438\u0437\u0432\u0435\u0434\u0435\u043d\u0438\u0435 \u0432\u0438\u0434\u0435\u043e, \u0434\u043b\u044f \u043a\u043e\u0442\u043e\u0440\u043e\u0433\u043e \u043f\u043e\u0442\u0440\u0435\u0431\u0443\u0435\u0442\u0441\u044f \u043f\u0435\u0440\u0435\u043a\u043e\u0434\u0438\u0440\u043e\u0432\u043a\u0430",
|
||||||
"OptionAllowVideoPlaybackRemuxing": "Allow video playback that requires conversion without re-encoding",
|
"OptionAllowVideoPlaybackRemuxing": "\u0420\u0430\u0437\u0440\u0435\u0448\u0438\u0442\u044c \u0432\u043e\u0441\u043f\u0440\u043e\u0438\u0437\u0432\u0435\u0434\u0435\u043d\u0438\u0435 \u0432\u0438\u0434\u0435\u043e, \u0434\u043b\u044f \u043a\u043e\u0442\u043e\u0440\u043e\u0433\u043e \u043f\u043e\u0442\u0440\u0435\u0431\u0443\u0435\u0442\u0441\u044f \u043f\u0440\u0435\u043e\u0431\u0440\u0430\u0437\u043e\u0432\u0430\u043d\u0438\u0435 \u0431\u0435\u0437 \u043f\u0435\u0440\u0435\u043a\u043e\u0434\u0438\u0440\u043e\u0432\u043a\u0438",
|
||||||
"OptionAllowMediaPlaybackTranscodingHelp": "\u041f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u0438 \u0431\u0443\u0434\u0443\u0442 \u043f\u043e\u043b\u0443\u0447\u0430\u0442\u044c \u043f\u043e\u043d\u044f\u0442\u043d\u044b\u0435 \u0441\u043e\u043e\u0431\u0449\u0435\u043d\u0438\u044f, \u043a\u043e\u0433\u0434\u0430 \u043f\u043e\u043b\u0438\u0442\u0438\u043a\u0430\u043c\u0438 \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u044f\u0435\u0442\u0441\u044f, \u0447\u0442\u043e \u0441\u043e\u0434\u0435\u0440\u0436\u0430\u043d\u0438\u0435 \u043d\u0435 \u043f\u043e\u0434\u0445\u043e\u0434\u0438\u0442 \u0434\u043b\u044f \u0432\u043e\u0441\u043f\u0440\u043e\u0438\u0437\u0432\u0435\u0434\u0435\u043d\u0438\u044f.",
|
"OptionAllowMediaPlaybackTranscodingHelp": "\u041f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u0438 \u0431\u0443\u0434\u0443\u0442 \u043f\u043e\u043b\u0443\u0447\u0430\u0442\u044c \u043f\u043e\u043d\u044f\u0442\u043d\u044b\u0435 \u0441\u043e\u043e\u0431\u0449\u0435\u043d\u0438\u044f, \u043a\u043e\u0433\u0434\u0430 \u043f\u043e\u043b\u0438\u0442\u0438\u043a\u0430\u043c\u0438 \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u044f\u0435\u0442\u0441\u044f, \u0447\u0442\u043e \u0441\u043e\u0434\u0435\u0440\u0436\u0430\u043d\u0438\u0435 \u043d\u0435 \u043f\u043e\u0434\u0445\u043e\u0434\u0438\u0442 \u0434\u043b\u044f \u0432\u043e\u0441\u043f\u0440\u043e\u0438\u0437\u0432\u0435\u0434\u0435\u043d\u0438\u044f.",
|
||||||
"TabStreaming": "\u0422\u0440\u0430\u043d\u0441\u043b\u044f\u0446\u0438\u044f",
|
"TabStreaming": "\u0422\u0440\u0430\u043d\u0441\u043b\u044f\u0446\u0438\u044f",
|
||||||
"LabelRemoteClientBitrateLimit": "\u041e\u0433\u0440\u0430\u043d\u0438\u0447\u0435\u043d\u0438\u0435 \u043f\u043e\u0442\u043e\u043a\u043e\u0432\u043e\u0439 \u0441\u043a\u043e\u0440\u043e\u0441\u0442\u0438 \u0438\u043d\u0442\u0435\u0440\u043d\u0435\u0442-\u0442\u0440\u0430\u043d\u0441\u043b\u044f\u0446\u0438\u0438, \u041c\u0431\u0438\u0442\/\u0441:",
|
"LabelRemoteClientBitrateLimit": "\u041e\u0433\u0440\u0430\u043d\u0438\u0447\u0435\u043d\u0438\u0435 \u043f\u043e\u0442\u043e\u043a\u043e\u0432\u043e\u0439 \u0441\u043a\u043e\u0440\u043e\u0441\u0442\u0438 \u0438\u043d\u0442\u0435\u0440\u043d\u0435\u0442-\u0442\u0440\u0430\u043d\u0441\u043b\u044f\u0446\u0438\u0438, \u041c\u0431\u0438\u0442\/\u0441:",
|
||||||
|
@ -1862,7 +1862,7 @@
|
||||||
"OptionMusicAlbums": "\u041c\u0443\u0437. \u0430\u043b\u044c\u0431\u043e\u043c\u044b",
|
"OptionMusicAlbums": "\u041c\u0443\u0437. \u0430\u043b\u044c\u0431\u043e\u043c\u044b",
|
||||||
"OptionMusicVideos": "\u041c\u0443\u0437. \u0432\u0438\u0434\u0435\u043e",
|
"OptionMusicVideos": "\u041c\u0443\u0437. \u0432\u0438\u0434\u0435\u043e",
|
||||||
"OptionSongs": "\u041a\u043e\u043c\u043f\u043e\u0437\u0438\u0446\u0438\u0438",
|
"OptionSongs": "\u041a\u043e\u043c\u043f\u043e\u0437\u0438\u0446\u0438\u0438",
|
||||||
"OptionHomeVideos": "\u0414\u043e\u043c. \u0432\u0438\u0434\u0435\u043e",
|
"OptionHomeVideos": "\u0414\u043e\u043c. \u0432\u0438\u0434\u0435\u043e \u0438 \u0444\u043e\u0442\u043e",
|
||||||
"OptionBooks": "\u041a\u043d\u0438\u0433\u0438",
|
"OptionBooks": "\u041a\u043d\u0438\u0433\u0438",
|
||||||
"ButtonUp": "\u0412\u0432\u0435\u0440\u0445",
|
"ButtonUp": "\u0412\u0432\u0435\u0440\u0445",
|
||||||
"ButtonDown": "\u0412\u043d\u0438\u0437",
|
"ButtonDown": "\u0412\u043d\u0438\u0437",
|
||||||
|
@ -2310,5 +2310,9 @@
|
||||||
"FFmpegSavePathNotFound": "\u041c\u044b \u043d\u0435 \u0441\u043c\u043e\u0433\u043b\u0438 \u043e\u0431\u043d\u0430\u0440\u0443\u0436\u0438\u0442\u044c FFmpeg \u043f\u043e \u0432\u0432\u0435\u0434\u0451\u043d\u043d\u043e\u043c\u0443 \u0432\u0430\u043c\u0438 \u043f\u0443\u0442\u0438. FFprobe \u0442\u0430\u043a\u0436\u0435 \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c \u0438 \u0434\u043e\u043b\u0436\u0435\u043d \u0431\u044b\u0442\u044c \u0432 \u0442\u043e\u0439 \u0436\u0435 \u0441\u0430\u043c\u043e\u0439 \u043f\u0430\u043f\u043a\u0435. \u042d\u0442\u0438 \u043a\u043e\u043c\u043f\u043e\u043d\u0435\u043d\u0442\u044b \u043e\u0431\u044b\u0447\u043d\u043e \u043f\u043e\u0441\u0442\u0430\u0432\u043b\u044f\u044e\u0442\u0441\u044f \u0432\u043c\u0435\u0441\u0442\u0435 \u0432 \u043e\u0434\u043d\u043e\u043c \u0437\u0430\u0433\u0440\u0443\u0437\u043e\u0447\u043d\u043e\u043c \u043f\u0430\u043a\u0435\u0442\u0435. \u041f\u0440\u043e\u0432\u0435\u0440\u044c\u0442\u0435 \u043f\u0443\u0442\u044c \u0438 \u043f\u043e\u0432\u0442\u043e\u0440\u0438\u0442\u0435 \u043f\u043e\u043f\u044b\u0442\u043a\u0443.",
|
"FFmpegSavePathNotFound": "\u041c\u044b \u043d\u0435 \u0441\u043c\u043e\u0433\u043b\u0438 \u043e\u0431\u043d\u0430\u0440\u0443\u0436\u0438\u0442\u044c FFmpeg \u043f\u043e \u0432\u0432\u0435\u0434\u0451\u043d\u043d\u043e\u043c\u0443 \u0432\u0430\u043c\u0438 \u043f\u0443\u0442\u0438. FFprobe \u0442\u0430\u043a\u0436\u0435 \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c \u0438 \u0434\u043e\u043b\u0436\u0435\u043d \u0431\u044b\u0442\u044c \u0432 \u0442\u043e\u0439 \u0436\u0435 \u0441\u0430\u043c\u043e\u0439 \u043f\u0430\u043f\u043a\u0435. \u042d\u0442\u0438 \u043a\u043e\u043c\u043f\u043e\u043d\u0435\u043d\u0442\u044b \u043e\u0431\u044b\u0447\u043d\u043e \u043f\u043e\u0441\u0442\u0430\u0432\u043b\u044f\u044e\u0442\u0441\u044f \u0432\u043c\u0435\u0441\u0442\u0435 \u0432 \u043e\u0434\u043d\u043e\u043c \u0437\u0430\u0433\u0440\u0443\u0437\u043e\u0447\u043d\u043e\u043c \u043f\u0430\u043a\u0435\u0442\u0435. \u041f\u0440\u043e\u0432\u0435\u0440\u044c\u0442\u0435 \u043f\u0443\u0442\u044c \u0438 \u043f\u043e\u0432\u0442\u043e\u0440\u0438\u0442\u0435 \u043f\u043e\u043f\u044b\u0442\u043a\u0443.",
|
||||||
"XmlTvPremiere": "\u041f\u043e \u0443\u043c\u043e\u043b\u0447\u0430\u043d\u0438\u044e, \u0432 Emby \u0438\u043c\u043f\u043e\u0440\u0442\u0438\u0440\u0443\u044e\u0442\u0441\u044f {0} \u0447\u0430\u0441(\u0430\/\u043e\u0432) \u0434\u0430\u043d\u043d\u044b\u0445 \u0442\u0435\u043b\u0435\u0433\u0438\u0434\u0430. \u0414\u043b\u044f \u043d\u0435\u043e\u0433\u0440\u0430\u043d\u0438\u0447\u0435\u043d\u043d\u043e\u0433\u043e \u0438\u043c\u043f\u043e\u0440\u0442\u0430 \u0434\u0430\u043d\u043d\u044b\u0445 \u0442\u0440\u0435\u0431\u0443\u0435\u0442\u0441\u044f \u0434\u0435\u0439\u0441\u0442\u0432\u0438\u0442\u0435\u043b\u044c\u043d\u0430\u044f \u043f\u043e\u0434\u043f\u0438\u0441\u043a\u0430 Emby Premiere.",
|
"XmlTvPremiere": "\u041f\u043e \u0443\u043c\u043e\u043b\u0447\u0430\u043d\u0438\u044e, \u0432 Emby \u0438\u043c\u043f\u043e\u0440\u0442\u0438\u0440\u0443\u044e\u0442\u0441\u044f {0} \u0447\u0430\u0441(\u0430\/\u043e\u0432) \u0434\u0430\u043d\u043d\u044b\u0445 \u0442\u0435\u043b\u0435\u0433\u0438\u0434\u0430. \u0414\u043b\u044f \u043d\u0435\u043e\u0433\u0440\u0430\u043d\u0438\u0447\u0435\u043d\u043d\u043e\u0433\u043e \u0438\u043c\u043f\u043e\u0440\u0442\u0430 \u0434\u0430\u043d\u043d\u044b\u0445 \u0442\u0440\u0435\u0431\u0443\u0435\u0442\u0441\u044f \u0434\u0435\u0439\u0441\u0442\u0432\u0438\u0442\u0435\u043b\u044c\u043d\u0430\u044f \u043f\u043e\u0434\u043f\u0438\u0441\u043a\u0430 Emby Premiere.",
|
||||||
"MoreFromValue": "\u0415\u0449\u0451 \u0441 {0}",
|
"MoreFromValue": "\u0415\u0449\u0451 \u0441 {0}",
|
||||||
"OptionSaveMetadataAsHiddenHelp": "\u042d\u0442\u043e \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u0435 \u0431\u0443\u0434\u0435\u0442 \u043f\u0440\u0438\u043c\u0435\u043d\u0435\u043d\u043e \u043a \u043d\u043e\u0432\u044b\u043c \u043c\u0435\u0442\u0430\u0434\u0430\u043d\u043d\u044b\u043c \u0441\u043e\u0445\u0440\u0430\u043d\u044f\u0435\u043c\u044b\u043c \u0432 \u0431\u0443\u0434\u0443\u0449\u0435\u043c. \u0421\u0443\u0449\u0435\u0441\u0442\u0432\u0443\u044e\u0449\u0438\u0435 \u0444\u0430\u0439\u043b\u044b \u043c\u0435\u0442\u0430\u0434\u0430\u043d\u043d\u044b\u0445 \u0431\u0443\u0434\u0443\u0442 \u043e\u0431\u043d\u043e\u0432\u043b\u0435\u043d\u044b \u0432 \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u0439 \u0440\u0430\u0437, \u043a\u043e\u0433\u0434\u0430 \u043e\u043d\u0438 \u0431\u0443\u0434\u0443\u0442 \u0441\u043e\u0445\u0440\u0430\u043d\u044f\u0442\u044c\u0441\u044f \u043d\u0430 Emby Server."
|
"OptionSaveMetadataAsHiddenHelp": "\u042d\u0442\u043e \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u0435 \u0431\u0443\u0434\u0435\u0442 \u043f\u0440\u0438\u043c\u0435\u043d\u0435\u043d\u043e \u043a \u043d\u043e\u0432\u044b\u043c \u043c\u0435\u0442\u0430\u0434\u0430\u043d\u043d\u044b\u043c \u0441\u043e\u0445\u0440\u0430\u043d\u044f\u0435\u043c\u044b\u043c \u0432 \u0431\u0443\u0434\u0443\u0449\u0435\u043c. \u0421\u0443\u0449\u0435\u0441\u0442\u0432\u0443\u044e\u0449\u0438\u0435 \u0444\u0430\u0439\u043b\u044b \u043c\u0435\u0442\u0430\u0434\u0430\u043d\u043d\u044b\u0445 \u0431\u0443\u0434\u0443\u0442 \u043e\u0431\u043d\u043e\u0432\u043b\u0435\u043d\u044b \u0432 \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u0439 \u0440\u0430\u0437, \u043a\u043e\u0433\u0434\u0430 \u043e\u043d\u0438 \u0431\u0443\u0434\u0443\u0442 \u0441\u043e\u0445\u0440\u0430\u043d\u044f\u0442\u044c\u0441\u044f \u043d\u0430 Emby Server.",
|
||||||
|
"EnablePhotos": "Enable photos",
|
||||||
|
"EnablePhotosHelp": "Photos will be detected and displayed alongside other media files.",
|
||||||
|
"MakeAvailableOffline": "Make available offline",
|
||||||
|
"ConfirmRemoveDownload": "Remove download?"
|
||||||
}
|
}
|
|
@ -2310,5 +2310,9 @@
|
||||||
"FFmpegSavePathNotFound": "We're unable to locate FFmpeg using the path you've entered. FFprobe is also required and must exist in the same folder. These components are normally bundled together in the same download. Please check the path and try again.",
|
"FFmpegSavePathNotFound": "We're unable to locate FFmpeg using the path you've entered. FFprobe is also required and must exist in the same folder. These components are normally bundled together in the same download. Please check the path and try again.",
|
||||||
"XmlTvPremiere": "By default, Emby will import {0} hours of guide data. Importing unlimited data requires an active Emby Premiere subscription.",
|
"XmlTvPremiere": "By default, Emby will import {0} hours of guide data. Importing unlimited data requires an active Emby Premiere subscription.",
|
||||||
"MoreFromValue": "More from {0}",
|
"MoreFromValue": "More from {0}",
|
||||||
"OptionSaveMetadataAsHiddenHelp": "Changing this will apply to new metadata saved going forward. Existing metadata files will be updated the next time they are saved by Emby Server."
|
"OptionSaveMetadataAsHiddenHelp": "Changing this will apply to new metadata saved going forward. Existing metadata files will be updated the next time they are saved by Emby Server.",
|
||||||
|
"EnablePhotos": "Enable photos",
|
||||||
|
"EnablePhotosHelp": "Photos will be detected and displayed alongside other media files.",
|
||||||
|
"MakeAvailableOffline": "Make available offline",
|
||||||
|
"ConfirmRemoveDownload": "Remove download?"
|
||||||
}
|
}
|
|
@ -2310,5 +2310,9 @@
|
||||||
"FFmpegSavePathNotFound": "We're unable to locate FFmpeg using the path you've entered. FFprobe is also required and must exist in the same folder. These components are normally bundled together in the same download. Please check the path and try again.",
|
"FFmpegSavePathNotFound": "We're unable to locate FFmpeg using the path you've entered. FFprobe is also required and must exist in the same folder. These components are normally bundled together in the same download. Please check the path and try again.",
|
||||||
"XmlTvPremiere": "By default, Emby will import {0} hours of guide data. Importing unlimited data requires an active Emby Premiere subscription.",
|
"XmlTvPremiere": "By default, Emby will import {0} hours of guide data. Importing unlimited data requires an active Emby Premiere subscription.",
|
||||||
"MoreFromValue": "More from {0}",
|
"MoreFromValue": "More from {0}",
|
||||||
"OptionSaveMetadataAsHiddenHelp": "Changing this will apply to new metadata saved going forward. Existing metadata files will be updated the next time they are saved by Emby Server."
|
"OptionSaveMetadataAsHiddenHelp": "Changing this will apply to new metadata saved going forward. Existing metadata files will be updated the next time they are saved by Emby Server.",
|
||||||
|
"EnablePhotos": "Enable photos",
|
||||||
|
"EnablePhotosHelp": "Photos will be detected and displayed alongside other media files.",
|
||||||
|
"MakeAvailableOffline": "Make available offline",
|
||||||
|
"ConfirmRemoveDownload": "Remove download?"
|
||||||
}
|
}
|
|
@ -2310,5 +2310,9 @@
|
||||||
"FFmpegSavePathNotFound": "We're unable to locate FFmpeg using the path you've entered. FFprobe is also required and must exist in the same folder. These components are normally bundled together in the same download. Please check the path and try again.",
|
"FFmpegSavePathNotFound": "We're unable to locate FFmpeg using the path you've entered. FFprobe is also required and must exist in the same folder. These components are normally bundled together in the same download. Please check the path and try again.",
|
||||||
"XmlTvPremiere": "By default, Emby will import {0} hours of guide data. Importing unlimited data requires an active Emby Premiere subscription.",
|
"XmlTvPremiere": "By default, Emby will import {0} hours of guide data. Importing unlimited data requires an active Emby Premiere subscription.",
|
||||||
"MoreFromValue": "Mer fr\u00e5n {0}",
|
"MoreFromValue": "Mer fr\u00e5n {0}",
|
||||||
"OptionSaveMetadataAsHiddenHelp": "Changing this will apply to new metadata saved going forward. Existing metadata files will be updated the next time they are saved by Emby Server."
|
"OptionSaveMetadataAsHiddenHelp": "Changing this will apply to new metadata saved going forward. Existing metadata files will be updated the next time they are saved by Emby Server.",
|
||||||
|
"EnablePhotos": "Enable photos",
|
||||||
|
"EnablePhotosHelp": "Photos will be detected and displayed alongside other media files.",
|
||||||
|
"MakeAvailableOffline": "Make available offline",
|
||||||
|
"ConfirmRemoveDownload": "Remove download?"
|
||||||
}
|
}
|
|
@ -2310,5 +2310,9 @@
|
||||||
"FFmpegSavePathNotFound": "We're unable to locate FFmpeg using the path you've entered. FFprobe is also required and must exist in the same folder. These components are normally bundled together in the same download. Please check the path and try again.",
|
"FFmpegSavePathNotFound": "We're unable to locate FFmpeg using the path you've entered. FFprobe is also required and must exist in the same folder. These components are normally bundled together in the same download. Please check the path and try again.",
|
||||||
"XmlTvPremiere": "By default, Emby will import {0} hours of guide data. Importing unlimited data requires an active Emby Premiere subscription.",
|
"XmlTvPremiere": "By default, Emby will import {0} hours of guide data. Importing unlimited data requires an active Emby Premiere subscription.",
|
||||||
"MoreFromValue": "More from {0}",
|
"MoreFromValue": "More from {0}",
|
||||||
"OptionSaveMetadataAsHiddenHelp": "Changing this will apply to new metadata saved going forward. Existing metadata files will be updated the next time they are saved by Emby Server."
|
"OptionSaveMetadataAsHiddenHelp": "Changing this will apply to new metadata saved going forward. Existing metadata files will be updated the next time they are saved by Emby Server.",
|
||||||
|
"EnablePhotos": "Enable photos",
|
||||||
|
"EnablePhotosHelp": "Photos will be detected and displayed alongside other media files.",
|
||||||
|
"MakeAvailableOffline": "Make available offline",
|
||||||
|
"ConfirmRemoveDownload": "Remove download?"
|
||||||
}
|
}
|
|
@ -2310,5 +2310,9 @@
|
||||||
"FFmpegSavePathNotFound": "We're unable to locate FFmpeg using the path you've entered. FFprobe is also required and must exist in the same folder. These components are normally bundled together in the same download. Please check the path and try again.",
|
"FFmpegSavePathNotFound": "We're unable to locate FFmpeg using the path you've entered. FFprobe is also required and must exist in the same folder. These components are normally bundled together in the same download. Please check the path and try again.",
|
||||||
"XmlTvPremiere": "By default, Emby will import {0} hours of guide data. Importing unlimited data requires an active Emby Premiere subscription.",
|
"XmlTvPremiere": "By default, Emby will import {0} hours of guide data. Importing unlimited data requires an active Emby Premiere subscription.",
|
||||||
"MoreFromValue": "More from {0}",
|
"MoreFromValue": "More from {0}",
|
||||||
"OptionSaveMetadataAsHiddenHelp": "Changing this will apply to new metadata saved going forward. Existing metadata files will be updated the next time they are saved by Emby Server."
|
"OptionSaveMetadataAsHiddenHelp": "Changing this will apply to new metadata saved going forward. Existing metadata files will be updated the next time they are saved by Emby Server.",
|
||||||
|
"EnablePhotos": "Enable photos",
|
||||||
|
"EnablePhotosHelp": "Photos will be detected and displayed alongside other media files.",
|
||||||
|
"MakeAvailableOffline": "Make available offline",
|
||||||
|
"ConfirmRemoveDownload": "Remove download?"
|
||||||
}
|
}
|
|
@ -2310,5 +2310,9 @@
|
||||||
"FFmpegSavePathNotFound": "We're unable to locate FFmpeg using the path you've entered. FFprobe is also required and must exist in the same folder. These components are normally bundled together in the same download. Please check the path and try again.",
|
"FFmpegSavePathNotFound": "We're unable to locate FFmpeg using the path you've entered. FFprobe is also required and must exist in the same folder. These components are normally bundled together in the same download. Please check the path and try again.",
|
||||||
"XmlTvPremiere": "By default, Emby will import {0} hours of guide data. Importing unlimited data requires an active Emby Premiere subscription.",
|
"XmlTvPremiere": "By default, Emby will import {0} hours of guide data. Importing unlimited data requires an active Emby Premiere subscription.",
|
||||||
"MoreFromValue": "More from {0}",
|
"MoreFromValue": "More from {0}",
|
||||||
"OptionSaveMetadataAsHiddenHelp": "Changing this will apply to new metadata saved going forward. Existing metadata files will be updated the next time they are saved by Emby Server."
|
"OptionSaveMetadataAsHiddenHelp": "Changing this will apply to new metadata saved going forward. Existing metadata files will be updated the next time they are saved by Emby Server.",
|
||||||
|
"EnablePhotos": "Enable photos",
|
||||||
|
"EnablePhotosHelp": "Photos will be detected and displayed alongside other media files.",
|
||||||
|
"MakeAvailableOffline": "Make available offline",
|
||||||
|
"ConfirmRemoveDownload": "Remove download?"
|
||||||
}
|
}
|
|
@ -2310,5 +2310,9 @@
|
||||||
"FFmpegSavePathNotFound": "We're unable to locate FFmpeg using the path you've entered. FFprobe is also required and must exist in the same folder. These components are normally bundled together in the same download. Please check the path and try again.",
|
"FFmpegSavePathNotFound": "We're unable to locate FFmpeg using the path you've entered. FFprobe is also required and must exist in the same folder. These components are normally bundled together in the same download. Please check the path and try again.",
|
||||||
"XmlTvPremiere": "By default, Emby will import {0} hours of guide data. Importing unlimited data requires an active Emby Premiere subscription.",
|
"XmlTvPremiere": "By default, Emby will import {0} hours of guide data. Importing unlimited data requires an active Emby Premiere subscription.",
|
||||||
"MoreFromValue": "More from {0}",
|
"MoreFromValue": "More from {0}",
|
||||||
"OptionSaveMetadataAsHiddenHelp": "Changing this will apply to new metadata saved going forward. Existing metadata files will be updated the next time they are saved by Emby Server."
|
"OptionSaveMetadataAsHiddenHelp": "Changing this will apply to new metadata saved going forward. Existing metadata files will be updated the next time they are saved by Emby Server.",
|
||||||
|
"EnablePhotos": "Enable photos",
|
||||||
|
"EnablePhotosHelp": "Photos will be detected and displayed alongside other media files.",
|
||||||
|
"MakeAvailableOffline": "Make available offline",
|
||||||
|
"ConfirmRemoveDownload": "Remove download?"
|
||||||
}
|
}
|
|
@ -2310,5 +2310,9 @@
|
||||||
"FFmpegSavePathNotFound": "We're unable to locate FFmpeg using the path you've entered. FFprobe is also required and must exist in the same folder. These components are normally bundled together in the same download. Please check the path and try again.",
|
"FFmpegSavePathNotFound": "We're unable to locate FFmpeg using the path you've entered. FFprobe is also required and must exist in the same folder. These components are normally bundled together in the same download. Please check the path and try again.",
|
||||||
"XmlTvPremiere": "By default, Emby will import {0} hours of guide data. Importing unlimited data requires an active Emby Premiere subscription.",
|
"XmlTvPremiere": "By default, Emby will import {0} hours of guide data. Importing unlimited data requires an active Emby Premiere subscription.",
|
||||||
"MoreFromValue": "More from {0}",
|
"MoreFromValue": "More from {0}",
|
||||||
"OptionSaveMetadataAsHiddenHelp": "Changing this will apply to new metadata saved going forward. Existing metadata files will be updated the next time they are saved by Emby Server."
|
"OptionSaveMetadataAsHiddenHelp": "Changing this will apply to new metadata saved going forward. Existing metadata files will be updated the next time they are saved by Emby Server.",
|
||||||
|
"EnablePhotos": "Enable photos",
|
||||||
|
"EnablePhotosHelp": "Photos will be detected and displayed alongside other media files.",
|
||||||
|
"MakeAvailableOffline": "Make available offline",
|
||||||
|
"ConfirmRemoveDownload": "Remove download?"
|
||||||
}
|
}
|
|
@ -2310,5 +2310,9 @@
|
||||||
"FFmpegSavePathNotFound": "We're unable to locate FFmpeg using the path you've entered. FFprobe is also required and must exist in the same folder. These components are normally bundled together in the same download. Please check the path and try again.",
|
"FFmpegSavePathNotFound": "We're unable to locate FFmpeg using the path you've entered. FFprobe is also required and must exist in the same folder. These components are normally bundled together in the same download. Please check the path and try again.",
|
||||||
"XmlTvPremiere": "By default, Emby will import {0} hours of guide data. Importing unlimited data requires an active Emby Premiere subscription.",
|
"XmlTvPremiere": "By default, Emby will import {0} hours of guide data. Importing unlimited data requires an active Emby Premiere subscription.",
|
||||||
"MoreFromValue": "More from {0}",
|
"MoreFromValue": "More from {0}",
|
||||||
"OptionSaveMetadataAsHiddenHelp": "Changing this will apply to new metadata saved going forward. Existing metadata files will be updated the next time they are saved by Emby Server."
|
"OptionSaveMetadataAsHiddenHelp": "Changing this will apply to new metadata saved going forward. Existing metadata files will be updated the next time they are saved by Emby Server.",
|
||||||
|
"EnablePhotos": "Enable photos",
|
||||||
|
"EnablePhotosHelp": "Photos will be detected and displayed alongside other media files.",
|
||||||
|
"MakeAvailableOffline": "Make available offline",
|
||||||
|
"ConfirmRemoveDownload": "Remove download?"
|
||||||
}
|
}
|
|
@ -2,5 +2,5 @@
|
||||||
<packages>
|
<packages>
|
||||||
<package id="CommonIO" version="1.0.0.9" targetFramework="net45" />
|
<package id="CommonIO" version="1.0.0.9" targetFramework="net45" />
|
||||||
<package id="Patterns.Logging" version="1.0.0.2" targetFramework="net45" />
|
<package id="Patterns.Logging" version="1.0.0.2" targetFramework="net45" />
|
||||||
<package id="WebMarkupMin.Core" version="1.0.1" targetFramework="net45" />
|
<package id="WebMarkupMin.Core" version="2.1.0" targetFramework="net45" />
|
||||||
</packages>
|
</packages>
|
Loading…
Add table
Add a link
Reference in a new issue