mirror of
https://github.com/jellyfin/jellyfin-web
synced 2025-03-30 19:56:21 +00:00
Merge remote-tracking branch 'upstream/master' into translate-everything
This commit is contained in:
commit
5146cd8c39
9 changed files with 133 additions and 132 deletions
|
@ -1,18 +1,7 @@
|
||||||
define(["dialogHelper", "loading", "connectionManager", "globalize", "actionsheet", "emby-input", "paper-icon-button-light", "emby-button", "listViewStyle", "material-icons", "formDialogStyle"], function (dialogHelper, loading, connectionManager, globalize, actionsheet) {
|
define(["dom", "dialogHelper", "loading", "connectionManager", "globalize", "actionsheet", "emby-input", "paper-icon-button-light", "emby-button", "listViewStyle", "material-icons", "formDialogStyle"], function (dom, dialogHelper, loading, connectionManager, globalize, actionsheet) {
|
||||||
"use strict";
|
"use strict";
|
||||||
|
|
||||||
return function (options) {
|
return function (options) {
|
||||||
function parentWithClass(elem, className) {
|
|
||||||
while (!elem.classList || !elem.classList.contains(className)) {
|
|
||||||
elem = elem.parentNode;
|
|
||||||
if (!elem) {
|
|
||||||
return null;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
return elem;
|
|
||||||
}
|
|
||||||
|
|
||||||
function mapChannel(button, channelId, providerChannelId) {
|
function mapChannel(button, channelId, providerChannelId) {
|
||||||
loading.show();
|
loading.show();
|
||||||
var providerId = options.providerId;
|
var providerId = options.providerId;
|
||||||
|
@ -26,7 +15,7 @@ define(["dialogHelper", "loading", "connectionManager", "globalize", "actionshee
|
||||||
},
|
},
|
||||||
dataType: "json"
|
dataType: "json"
|
||||||
}).then(function (mapping) {
|
}).then(function (mapping) {
|
||||||
var listItem = parentWithClass(button, "listItem");
|
var listItem = dom.parentWithClass(button, "listItem");
|
||||||
button.setAttribute("data-providerid", mapping.ProviderChannelId);
|
button.setAttribute("data-providerid", mapping.ProviderChannelId);
|
||||||
listItem.querySelector(".secondary").innerHTML = getMappingSecondaryName(mapping, currentMappingOptions.ProviderName);
|
listItem.querySelector(".secondary").innerHTML = getMappingSecondaryName(mapping, currentMappingOptions.ProviderName);
|
||||||
loading.hide();
|
loading.hide();
|
||||||
|
@ -34,7 +23,7 @@ define(["dialogHelper", "loading", "connectionManager", "globalize", "actionshee
|
||||||
}
|
}
|
||||||
|
|
||||||
function onChannelsElementClick(e) {
|
function onChannelsElementClick(e) {
|
||||||
var btnMap = parentWithClass(e.target, "btnMap");
|
var btnMap = dom.parentWithClass(e.target, "btnMap");
|
||||||
|
|
||||||
if (btnMap) {
|
if (btnMap) {
|
||||||
var channelId = btnMap.getAttribute("data-id");
|
var channelId = btnMap.getAttribute("data-id");
|
||||||
|
|
|
@ -1,25 +1,12 @@
|
||||||
define(['dialogHelper', 'loading', 'apphost', 'layoutManager', 'connectionManager', 'appRouter', 'globalize', 'emby-checkbox', 'emby-input', 'paper-icon-button-light', 'emby-select', 'material-icons', 'css!./../formdialog', 'emby-button', 'flexStyles'], function (dialogHelper, loading, appHost, layoutManager, connectionManager, appRouter, globalize) {
|
define(['dom', 'dialogHelper', 'loading', 'apphost', 'layoutManager', 'connectionManager', 'appRouter', 'globalize', 'emby-checkbox', 'emby-input', 'paper-icon-button-light', 'emby-select', 'material-icons', 'css!./../formdialog', 'emby-button', 'flexStyles'], function (dom, dialogHelper, loading, appHost, layoutManager, connectionManager, appRouter, globalize) {
|
||||||
'use strict';
|
'use strict';
|
||||||
|
|
||||||
var currentServerId;
|
var currentServerId;
|
||||||
|
|
||||||
function parentWithClass(elem, className) {
|
|
||||||
|
|
||||||
while (!elem.classList || !elem.classList.contains(className)) {
|
|
||||||
elem = elem.parentNode;
|
|
||||||
|
|
||||||
if (!elem) {
|
|
||||||
return null;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
return elem;
|
|
||||||
}
|
|
||||||
|
|
||||||
function onSubmit(e) {
|
function onSubmit(e) {
|
||||||
loading.show();
|
loading.show();
|
||||||
|
|
||||||
var panel = parentWithClass(this, 'dialog');
|
var panel = dom.parentWithClass(this, 'dialog');
|
||||||
|
|
||||||
var collectionId = panel.querySelector('#selectCollectionToAddTo').value;
|
var collectionId = panel.querySelector('#selectCollectionToAddTo').value;
|
||||||
|
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
define(["dialogHelper", "globalize", "connectionManager", "events", "browser", "require", "emby-checkbox", "emby-collapse", "css!./style"], function (dialogHelper, globalize, connectionManager, events, browser, require) {
|
define(["dom", "dialogHelper", "globalize", "connectionManager", "events", "browser", "require", "emby-checkbox", "emby-collapse", "css!./style"], function (dom, dialogHelper, globalize, connectionManager, events, browser, require) {
|
||||||
"use strict";
|
"use strict";
|
||||||
|
|
||||||
function renderOptions(context, selector, cssClass, items, isCheckedFn) {
|
function renderOptions(context, selector, cssClass, items, isCheckedFn) {
|
||||||
|
@ -106,16 +106,6 @@ define(["dialogHelper", "globalize", "connectionManager", "events", "browser", "
|
||||||
events.trigger(instance, "filterchange");
|
events.trigger(instance, "filterchange");
|
||||||
}
|
}
|
||||||
|
|
||||||
function parentWithClass(elem, className) {
|
|
||||||
while (!elem.classList || !elem.classList.contains(className)) {
|
|
||||||
elem = elem.parentNode;
|
|
||||||
if (!elem) {
|
|
||||||
return null;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
return elem;
|
|
||||||
}
|
|
||||||
|
|
||||||
function setVisibility(context, options) {
|
function setVisibility(context, options) {
|
||||||
if (options.mode == "livetvchannels" || options.mode == "albums" || options.mode == "artists" || options.mode == "albumartists" || options.mode == "songs") {
|
if (options.mode == "livetvchannels" || options.mode == "albums" || options.mode == "artists" || options.mode == "albumartists" || options.mode == "songs") {
|
||||||
hideByClass(context, "videoStandard");
|
hideByClass(context, "videoStandard");
|
||||||
|
@ -320,7 +310,7 @@ define(["dialogHelper", "globalize", "connectionManager", "events", "browser", "
|
||||||
triggerChange(self);
|
triggerChange(self);
|
||||||
});
|
});
|
||||||
context.addEventListener("change", function (e) {
|
context.addEventListener("change", function (e) {
|
||||||
var chkGenreFilter = parentWithClass(e.target, "chkGenreFilter");
|
var chkGenreFilter = dom.parentWithClass(e.target, "chkGenreFilter");
|
||||||
if (chkGenreFilter) {
|
if (chkGenreFilter) {
|
||||||
var filterName = chkGenreFilter.getAttribute("data-filter");
|
var filterName = chkGenreFilter.getAttribute("data-filter");
|
||||||
var filters = query.Genres || "";
|
var filters = query.Genres || "";
|
||||||
|
@ -334,7 +324,7 @@ define(["dialogHelper", "globalize", "connectionManager", "events", "browser", "
|
||||||
triggerChange(self);
|
triggerChange(self);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
var chkTagFilter = parentWithClass(e.target, "chkTagFilter");
|
var chkTagFilter = dom.parentWithClass(e.target, "chkTagFilter");
|
||||||
if (chkTagFilter) {
|
if (chkTagFilter) {
|
||||||
var filterName = chkTagFilter.getAttribute("data-filter");
|
var filterName = chkTagFilter.getAttribute("data-filter");
|
||||||
var filters = query.Tags || "";
|
var filters = query.Tags || "";
|
||||||
|
@ -348,7 +338,7 @@ define(["dialogHelper", "globalize", "connectionManager", "events", "browser", "
|
||||||
triggerChange(self);
|
triggerChange(self);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
var chkYearFilter = parentWithClass(e.target, "chkYearFilter");
|
var chkYearFilter = dom.parentWithClass(e.target, "chkYearFilter");
|
||||||
if (chkYearFilter) {
|
if (chkYearFilter) {
|
||||||
var filterName = chkYearFilter.getAttribute("data-filter");
|
var filterName = chkYearFilter.getAttribute("data-filter");
|
||||||
var filters = query.Years || "";
|
var filters = query.Years || "";
|
||||||
|
@ -362,7 +352,7 @@ define(["dialogHelper", "globalize", "connectionManager", "events", "browser", "
|
||||||
triggerChange(self);
|
triggerChange(self);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
var chkOfficialRatingFilter = parentWithClass(e.target, "chkOfficialRatingFilter");
|
var chkOfficialRatingFilter = dom.parentWithClass(e.target, "chkOfficialRatingFilter");
|
||||||
if (chkOfficialRatingFilter) {
|
if (chkOfficialRatingFilter) {
|
||||||
var filterName = chkOfficialRatingFilter.getAttribute("data-filter");
|
var filterName = chkOfficialRatingFilter.getAttribute("data-filter");
|
||||||
var filters = query.OfficialRatings || "";
|
var filters = query.OfficialRatings || "";
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
define(['loading', 'apphost', 'dialogHelper', 'connectionManager', 'imageLoader', 'browser', 'layoutManager', 'scrollHelper', 'globalize', 'require', 'emby-checkbox', 'paper-icon-button-light', 'emby-button', 'formDialogStyle', 'cardStyle'], function (loading, appHost, dialogHelper, connectionManager, imageLoader, browser, layoutManager, scrollHelper, globalize, require) {
|
define(['dom', 'loading', 'apphost', 'dialogHelper', 'connectionManager', 'imageLoader', 'browser', 'layoutManager', 'scrollHelper', 'globalize', 'require', 'emby-checkbox', 'paper-icon-button-light', 'emby-button', 'formDialogStyle', 'cardStyle'], function (dom, loading, appHost, dialogHelper, connectionManager, imageLoader, browser, layoutManager, scrollHelper, globalize, require) {
|
||||||
'use strict';
|
'use strict';
|
||||||
|
|
||||||
var enableFocusTransform = !browser.slow && !browser.edge;
|
var enableFocusTransform = !browser.slow && !browser.edge;
|
||||||
|
@ -126,21 +126,7 @@ define(['loading', 'apphost', 'dialogHelper', 'connectionManager', 'imageLoader'
|
||||||
return html;
|
return html;
|
||||||
}
|
}
|
||||||
|
|
||||||
function parentWithClass(elem, className) {
|
|
||||||
|
|
||||||
while (!elem.classList || !elem.classList.contains(className)) {
|
|
||||||
elem = elem.parentNode;
|
|
||||||
|
|
||||||
if (!elem) {
|
|
||||||
return null;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
return elem;
|
|
||||||
}
|
|
||||||
|
|
||||||
function downloadRemoteImage(page, apiClient, url, type, provider) {
|
function downloadRemoteImage(page, apiClient, url, type, provider) {
|
||||||
|
|
||||||
var options = getBaseRemoteOptions();
|
var options = getBaseRemoteOptions();
|
||||||
|
|
||||||
options.Type = type;
|
options.Type = type;
|
||||||
|
@ -152,7 +138,7 @@ define(['loading', 'apphost', 'dialogHelper', 'connectionManager', 'imageLoader'
|
||||||
apiClient.downloadRemoteImage(options).then(function () {
|
apiClient.downloadRemoteImage(options).then(function () {
|
||||||
|
|
||||||
hasChanges = true;
|
hasChanges = true;
|
||||||
var dlg = parentWithClass(page, 'dialog');
|
var dlg = dom.parentWithClass(page, 'dialog');
|
||||||
dialogHelper.close(dlg);
|
dialogHelper.close(dlg);
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
@ -162,7 +148,6 @@ define(['loading', 'apphost', 'dialogHelper', 'connectionManager', 'imageLoader'
|
||||||
}
|
}
|
||||||
|
|
||||||
function getRemoteImageHtml(image, imageType, apiClient) {
|
function getRemoteImageHtml(image, imageType, apiClient) {
|
||||||
|
|
||||||
var tagName = layoutManager.tv ? 'button' : 'div';
|
var tagName = layoutManager.tv ? 'button' : 'div';
|
||||||
var enableFooterButtons = !layoutManager.tv;
|
var enableFooterButtons = !layoutManager.tv;
|
||||||
|
|
||||||
|
@ -293,7 +278,6 @@ define(['loading', 'apphost', 'dialogHelper', 'connectionManager', 'imageLoader'
|
||||||
}
|
}
|
||||||
|
|
||||||
function initEditor(page, apiClient) {
|
function initEditor(page, apiClient) {
|
||||||
|
|
||||||
page.querySelector('#selectBrowsableImageType').addEventListener('change', function () {
|
page.querySelector('#selectBrowsableImageType').addEventListener('change', function () {
|
||||||
browsableImageType = this.value;
|
browsableImageType = this.value;
|
||||||
browsableImageStartIndex = 0;
|
browsableImageStartIndex = 0;
|
||||||
|
@ -319,14 +303,14 @@ define(['loading', 'apphost', 'dialogHelper', 'connectionManager', 'imageLoader'
|
||||||
|
|
||||||
page.addEventListener('click', function (e) {
|
page.addEventListener('click', function (e) {
|
||||||
|
|
||||||
var btnDownloadRemoteImage = parentWithClass(e.target, 'btnDownloadRemoteImage');
|
var btnDownloadRemoteImage = dom.parentWithClass(e.target, 'btnDownloadRemoteImage');
|
||||||
if (btnDownloadRemoteImage) {
|
if (btnDownloadRemoteImage) {
|
||||||
var card = parentWithClass(btnDownloadRemoteImage, 'card');
|
var card = dom.parentWithClass(btnDownloadRemoteImage, 'card');
|
||||||
downloadRemoteImage(page, apiClient, card.getAttribute('data-imageurl'), card.getAttribute('data-imagetype'), card.getAttribute('data-imageprovider'));
|
downloadRemoteImage(page, apiClient, card.getAttribute('data-imageurl'), card.getAttribute('data-imagetype'), card.getAttribute('data-imageprovider'));
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
var btnImageCard = parentWithClass(e.target, 'btnImageCard');
|
var btnImageCard = dom.parentWithClass(e.target, 'btnImageCard');
|
||||||
if (btnImageCard) {
|
if (btnImageCard) {
|
||||||
downloadRemoteImage(page, apiClient, btnImageCard.getAttribute('data-imageurl'), btnImageCard.getAttribute('data-imagetype'), btnImageCard.getAttribute('data-imageprovider'));
|
downloadRemoteImage(page, apiClient, btnImageCard.getAttribute('data-imageurl'), btnImageCard.getAttribute('data-imagetype'), btnImageCard.getAttribute('data-imageprovider'));
|
||||||
}
|
}
|
||||||
|
@ -334,7 +318,6 @@ define(['loading', 'apphost', 'dialogHelper', 'connectionManager', 'imageLoader'
|
||||||
}
|
}
|
||||||
|
|
||||||
function showEditor(itemId, serverId, itemType) {
|
function showEditor(itemId, serverId, itemType) {
|
||||||
|
|
||||||
loading.show();
|
loading.show();
|
||||||
|
|
||||||
require(['text!./imagedownloader.template.html'], function (template) {
|
require(['text!./imagedownloader.template.html'], function (template) {
|
||||||
|
@ -380,7 +363,6 @@ define(['loading', 'apphost', 'dialogHelper', 'connectionManager', 'imageLoader'
|
||||||
}
|
}
|
||||||
|
|
||||||
function onDialogClosed() {
|
function onDialogClosed() {
|
||||||
|
|
||||||
var dlg = this;
|
var dlg = this;
|
||||||
|
|
||||||
if (layoutManager.tv) {
|
if (layoutManager.tv) {
|
||||||
|
@ -397,9 +379,7 @@ define(['loading', 'apphost', 'dialogHelper', 'connectionManager', 'imageLoader'
|
||||||
|
|
||||||
return {
|
return {
|
||||||
show: function (itemId, serverId, itemType, imageType) {
|
show: function (itemId, serverId, itemType, imageType) {
|
||||||
|
|
||||||
return new Promise(function (resolve, reject) {
|
return new Promise(function (resolve, reject) {
|
||||||
|
|
||||||
currentResolve = resolve;
|
currentResolve = resolve;
|
||||||
currentReject = reject;
|
currentReject = reject;
|
||||||
hasChanges = false;
|
hasChanges = false;
|
||||||
|
|
|
@ -1,24 +1,10 @@
|
||||||
define(['shell', 'dialogHelper', 'loading', 'layoutManager', 'playbackManager', 'connectionManager', 'userSettings', 'appRouter', 'globalize', 'emby-input', 'paper-icon-button-light', 'emby-select', 'material-icons', 'css!./../formdialog', 'emby-button'], function (shell, dialogHelper, loading, layoutManager, playbackManager, connectionManager, userSettings, appRouter, globalize) {
|
define(['dom', 'shell', 'dialogHelper', 'loading', 'layoutManager', 'playbackManager', 'connectionManager', 'userSettings', 'appRouter', 'globalize', 'emby-input', 'paper-icon-button-light', 'emby-select', 'material-icons', 'css!./../formdialog', 'emby-button'], function (dom, shell, dialogHelper, loading, layoutManager, playbackManager, connectionManager, userSettings, appRouter, globalize) {
|
||||||
'use strict';
|
'use strict';
|
||||||
|
|
||||||
var currentServerId;
|
var currentServerId;
|
||||||
|
|
||||||
function parentWithClass(elem, className) {
|
|
||||||
|
|
||||||
while (!elem.classList || !elem.classList.contains(className)) {
|
|
||||||
elem = elem.parentNode;
|
|
||||||
|
|
||||||
if (!elem) {
|
|
||||||
return null;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
return elem;
|
|
||||||
}
|
|
||||||
|
|
||||||
function onSubmit(e) {
|
function onSubmit(e) {
|
||||||
|
var panel = dom.parentWithClass(this, 'dialog');
|
||||||
var panel = parentWithClass(this, 'dialog');
|
|
||||||
|
|
||||||
var playlistId = panel.querySelector('#selectPlaylistToAddTo').value;
|
var playlistId = panel.querySelector('#selectPlaylistToAddTo').value;
|
||||||
var apiClient = connectionManager.getApiClient(currentServerId);
|
var apiClient = connectionManager.getApiClient(currentServerId);
|
||||||
|
@ -35,11 +21,9 @@ define(['shell', 'dialogHelper', 'loading', 'layoutManager', 'playbackManager',
|
||||||
}
|
}
|
||||||
|
|
||||||
function createPlaylist(apiClient, dlg) {
|
function createPlaylist(apiClient, dlg) {
|
||||||
|
|
||||||
loading.show();
|
loading.show();
|
||||||
|
|
||||||
var url = apiClient.getUrl("Playlists", {
|
var url = apiClient.getUrl("Playlists", {
|
||||||
|
|
||||||
Name: dlg.querySelector('#txtNewPlaylistName').value,
|
Name: dlg.querySelector('#txtNewPlaylistName').value,
|
||||||
Ids: dlg.querySelector('.fldSelectedItemIds').value || '',
|
Ids: dlg.querySelector('.fldSelectedItemIds').value || '',
|
||||||
userId: apiClient.getCurrentUserId()
|
userId: apiClient.getCurrentUserId()
|
||||||
|
@ -50,9 +34,7 @@ define(['shell', 'dialogHelper', 'loading', 'layoutManager', 'playbackManager',
|
||||||
type: "POST",
|
type: "POST",
|
||||||
url: url,
|
url: url,
|
||||||
dataType: "json"
|
dataType: "json"
|
||||||
|
|
||||||
}).then(function (result) {
|
}).then(function (result) {
|
||||||
|
|
||||||
loading.hide();
|
loading.hide();
|
||||||
|
|
||||||
var id = result.Id;
|
var id = result.Id;
|
||||||
|
@ -63,16 +45,13 @@ define(['shell', 'dialogHelper', 'loading', 'layoutManager', 'playbackManager',
|
||||||
}
|
}
|
||||||
|
|
||||||
function redirectToPlaylist(apiClient, id) {
|
function redirectToPlaylist(apiClient, id) {
|
||||||
|
|
||||||
appRouter.showItem(id, apiClient.serverId());
|
appRouter.showItem(id, apiClient.serverId());
|
||||||
}
|
}
|
||||||
|
|
||||||
function addToPlaylist(apiClient, dlg, id) {
|
function addToPlaylist(apiClient, dlg, id) {
|
||||||
|
|
||||||
var itemIds = dlg.querySelector('.fldSelectedItemIds').value || '';
|
var itemIds = dlg.querySelector('.fldSelectedItemIds').value || '';
|
||||||
|
|
||||||
if (id === 'queue') {
|
if (id === 'queue') {
|
||||||
|
|
||||||
playbackManager.queue({
|
playbackManager.queue({
|
||||||
serverId: apiClient.serverId(),
|
serverId: apiClient.serverId(),
|
||||||
ids: itemIds.split(',')
|
ids: itemIds.split(',')
|
||||||
|
@ -85,7 +64,6 @@ define(['shell', 'dialogHelper', 'loading', 'layoutManager', 'playbackManager',
|
||||||
loading.show();
|
loading.show();
|
||||||
|
|
||||||
var url = apiClient.getUrl("Playlists/" + id + "/Items", {
|
var url = apiClient.getUrl("Playlists/" + id + "/Items", {
|
||||||
|
|
||||||
Ids: itemIds,
|
Ids: itemIds,
|
||||||
userId: apiClient.getCurrentUserId()
|
userId: apiClient.getCurrentUserId()
|
||||||
});
|
});
|
||||||
|
@ -95,7 +73,6 @@ define(['shell', 'dialogHelper', 'loading', 'layoutManager', 'playbackManager',
|
||||||
url: url
|
url: url
|
||||||
|
|
||||||
}).then(function () {
|
}).then(function () {
|
||||||
|
|
||||||
loading.hide();
|
loading.hide();
|
||||||
|
|
||||||
dlg.submitted = true;
|
dlg.submitted = true;
|
||||||
|
@ -108,7 +85,6 @@ define(['shell', 'dialogHelper', 'loading', 'layoutManager', 'playbackManager',
|
||||||
}
|
}
|
||||||
|
|
||||||
function populatePlaylists(editorOptions, panel) {
|
function populatePlaylists(editorOptions, panel) {
|
||||||
|
|
||||||
var select = panel.querySelector('#selectPlaylistToAddTo');
|
var select = panel.querySelector('#selectPlaylistToAddTo');
|
||||||
|
|
||||||
loading.hide();
|
loading.hide();
|
||||||
|
@ -116,7 +92,6 @@ define(['shell', 'dialogHelper', 'loading', 'layoutManager', 'playbackManager',
|
||||||
panel.querySelector('.newPlaylistInfo').classList.add('hide');
|
panel.querySelector('.newPlaylistInfo').classList.add('hide');
|
||||||
|
|
||||||
var options = {
|
var options = {
|
||||||
|
|
||||||
Recursive: true,
|
Recursive: true,
|
||||||
IncludeItemTypes: "Playlist",
|
IncludeItemTypes: "Playlist",
|
||||||
SortBy: 'SortName',
|
SortBy: 'SortName',
|
||||||
|
@ -125,7 +100,6 @@ define(['shell', 'dialogHelper', 'loading', 'layoutManager', 'playbackManager',
|
||||||
|
|
||||||
var apiClient = connectionManager.getApiClient(currentServerId);
|
var apiClient = connectionManager.getApiClient(currentServerId);
|
||||||
apiClient.getItems(apiClient.getCurrentUserId(), options).then(function (result) {
|
apiClient.getItems(apiClient.getCurrentUserId(), options).then(function (result) {
|
||||||
|
|
||||||
var html = '';
|
var html = '';
|
||||||
|
|
||||||
if (editorOptions.enableAddToPlayQueue !== false && playbackManager.isPlaying()) {
|
if (editorOptions.enableAddToPlayQueue !== false && playbackManager.isPlaying()) {
|
||||||
|
@ -135,7 +109,6 @@ define(['shell', 'dialogHelper', 'loading', 'layoutManager', 'playbackManager',
|
||||||
html += '<option value="">' + globalize.translate('OptionNew') + '</option>';
|
html += '<option value="">' + globalize.translate('OptionNew') + '</option>';
|
||||||
|
|
||||||
html += result.Items.map(function (i) {
|
html += result.Items.map(function (i) {
|
||||||
|
|
||||||
return '<option value="' + i.Id + '">' + i.Name + '</option>';
|
return '<option value="' + i.Id + '">' + i.Name + '</option>';
|
||||||
});
|
});
|
||||||
|
|
||||||
|
@ -159,7 +132,6 @@ define(['shell', 'dialogHelper', 'loading', 'layoutManager', 'playbackManager',
|
||||||
}
|
}
|
||||||
|
|
||||||
function getEditorHtml(items) {
|
function getEditorHtml(items) {
|
||||||
|
|
||||||
var html = '';
|
var html = '';
|
||||||
|
|
||||||
html += '<div class="formDialogContent smoothScrollY" style="padding-top:2em;">';
|
html += '<div class="formDialogContent smoothScrollY" style="padding-top:2em;">';
|
||||||
|
@ -195,7 +167,6 @@ define(['shell', 'dialogHelper', 'loading', 'layoutManager', 'playbackManager',
|
||||||
}
|
}
|
||||||
|
|
||||||
function initEditor(content, options, items) {
|
function initEditor(content, options, items) {
|
||||||
|
|
||||||
content.querySelector('#selectPlaylistToAddTo').addEventListener('change', function () {
|
content.querySelector('#selectPlaylistToAddTo').addEventListener('change', function () {
|
||||||
if (this.value) {
|
if (this.value) {
|
||||||
content.querySelector('.newPlaylistInfo').classList.add('hide');
|
content.querySelector('.newPlaylistInfo').classList.add('hide');
|
||||||
|
@ -235,7 +206,6 @@ define(['shell', 'dialogHelper', 'loading', 'layoutManager', 'playbackManager',
|
||||||
}
|
}
|
||||||
|
|
||||||
PlaylistEditor.prototype.show = function (options) {
|
PlaylistEditor.prototype.show = function (options) {
|
||||||
|
|
||||||
var items = options.items || {};
|
var items = options.items || {};
|
||||||
currentServerId = options.serverId;
|
currentServerId = options.serverId;
|
||||||
|
|
||||||
|
@ -272,7 +242,6 @@ define(['shell', 'dialogHelper', 'loading', 'layoutManager', 'playbackManager',
|
||||||
initEditor(dlg, options, items);
|
initEditor(dlg, options, items);
|
||||||
|
|
||||||
dlg.querySelector('.btnCancel').addEventListener('click', function () {
|
dlg.querySelector('.btnCancel').addEventListener('click', function () {
|
||||||
|
|
||||||
dialogHelper.close(dlg);
|
dialogHelper.close(dlg);
|
||||||
});
|
});
|
||||||
|
|
||||||
|
@ -281,7 +250,6 @@ define(['shell', 'dialogHelper', 'loading', 'layoutManager', 'playbackManager',
|
||||||
}
|
}
|
||||||
|
|
||||||
return dialogHelper.open(dlg).then(function () {
|
return dialogHelper.open(dlg).then(function () {
|
||||||
|
|
||||||
if (layoutManager.tv) {
|
if (layoutManager.tv) {
|
||||||
centerFocus(dlg.querySelector('.formDialogContent'), false, false);
|
centerFocus(dlg.querySelector('.formDialogContent'), false, false);
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,19 +1,6 @@
|
||||||
define(['shell', 'dialogHelper', 'loading', 'layoutManager', 'connectionManager', 'appRouter', 'globalize', 'emby-input', 'emby-checkbox', 'paper-icon-button-light', 'emby-select', 'material-icons', 'css!./../formdialog', 'emby-button'], function (shell, dialogHelper, loading, layoutManager, connectionManager, appRouter, globalize) {
|
define(['dom', 'shell', 'dialogHelper', 'loading', 'layoutManager', 'connectionManager', 'appRouter', 'globalize', 'emby-input', 'emby-checkbox', 'paper-icon-button-light', 'emby-select', 'material-icons', 'css!./../formdialog', 'emby-button'], function (dom, shell, dialogHelper, loading, layoutManager, connectionManager, appRouter, globalize) {
|
||||||
'use strict';
|
'use strict';
|
||||||
|
|
||||||
function parentWithClass(elem, className) {
|
|
||||||
|
|
||||||
while (!elem.classList || !elem.classList.contains(className)) {
|
|
||||||
elem = elem.parentNode;
|
|
||||||
|
|
||||||
if (!elem) {
|
|
||||||
return null;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
return elem;
|
|
||||||
}
|
|
||||||
|
|
||||||
function getEditorHtml() {
|
function getEditorHtml() {
|
||||||
|
|
||||||
var html = '';
|
var html = '';
|
||||||
|
@ -65,7 +52,7 @@ define(['shell', 'dialogHelper', 'loading', 'layoutManager', 'connectionManager'
|
||||||
loading.show();
|
loading.show();
|
||||||
|
|
||||||
var instance = this;
|
var instance = this;
|
||||||
var dlg = parentWithClass(e.target, 'dialog');
|
var dlg = dom.parentWithClass(e.target, 'dialog');
|
||||||
var options = instance.options;
|
var options = instance.options;
|
||||||
|
|
||||||
var apiClient = connectionManager.getApiClient(options.serverId);
|
var apiClient = connectionManager.getApiClient(options.serverId);
|
||||||
|
|
|
@ -33,7 +33,7 @@
|
||||||
"HeaderFilters": "فیلتر ها",
|
"HeaderFilters": "فیلتر ها",
|
||||||
"HeaderImageOptions": "گزینه های تصویر",
|
"HeaderImageOptions": "گزینه های تصویر",
|
||||||
"HeaderInstantMix": "درهم کردن فوری",
|
"HeaderInstantMix": "درهم کردن فوری",
|
||||||
"HeaderKodiMetadataHelp": "برای فعال یا غیرفعال سازی متاداده های Nfo ، یک کتابخانه را در صفحه تنظیم کتابخانه Jellyfin ویرایش کرده و قسمت سرورهای متاداده را مسیردهی کنید.",
|
"HeaderKodiMetadataHelp": "برای فعال یا غیرفعال سازی ابردادههای Nfo ، یک کتابخانه را در صفحه تنظیم کتابخانه Jellyfin ویرایش کرده و قسمت سرورهای ابرداده را مسیردهی کنید.",
|
||||||
"HeaderLatestEpisodes": "آخرین قسمت ها",
|
"HeaderLatestEpisodes": "آخرین قسمت ها",
|
||||||
"HeaderNextUp": "قسمت بعدی",
|
"HeaderNextUp": "قسمت بعدی",
|
||||||
"HeaderPaths": "مسیرها",
|
"HeaderPaths": "مسیرها",
|
||||||
|
@ -315,5 +315,105 @@
|
||||||
"ButtonSelectDirectory": "انتخاب مسیر",
|
"ButtonSelectDirectory": "انتخاب مسیر",
|
||||||
"ButtonEditOtherUserPreferences": "نمایه، تصویر و ترجیحات شخصی این کاربر را ویرایش کنید.",
|
"ButtonEditOtherUserPreferences": "نمایه، تصویر و ترجیحات شخصی این کاربر را ویرایش کنید.",
|
||||||
"BrowsePluginCatalogMessage": "برای مرور کردن افزونههای موجود، به فروشگاه افزونههای ما سر بزنید.",
|
"BrowsePluginCatalogMessage": "برای مرور کردن افزونههای موجود، به فروشگاه افزونههای ما سر بزنید.",
|
||||||
"AuthProviderHelp": "ارائه دهنده تأیید اعتبار را انتخاب کنید تا برای تأیید اعتبار گذرواژه این کاربر استفاده شود."
|
"AuthProviderHelp": "ارائه دهنده تأیید اعتبار را انتخاب کنید تا برای تأیید اعتبار گذرواژه این کاربر استفاده شود.",
|
||||||
|
"HeaderRecordingPostProcessing": "در حال ضبط پس پردازش",
|
||||||
|
"HeaderRecordingOptions": "گزینههای ضبط",
|
||||||
|
"HeaderRecentlyPlayed": "به تازگی پخش شده",
|
||||||
|
"HeaderProfileInformation": "اطلاعات نمایه",
|
||||||
|
"HeaderProfile": "نمایه",
|
||||||
|
"HeaderPluginInstallation": "نصب افزونه",
|
||||||
|
"HeaderPleaseSignIn": "لطفا وارد شوید",
|
||||||
|
"HeaderPlaybackError": "خطای پخش",
|
||||||
|
"HeaderPlayback": "پخش رسانه",
|
||||||
|
"HeaderPlayOn": "پخش در",
|
||||||
|
"HeaderPinCodeReset": "بازنشانی پین کد",
|
||||||
|
"HeaderPhotoAlbums": "آلبومهای عکس",
|
||||||
|
"HeaderPeople": "افراد",
|
||||||
|
"HeaderPendingInvitations": "دعوتهای در انتظار",
|
||||||
|
"HeaderPasswordReset": "بازنشانی گذرواژه",
|
||||||
|
"HeaderPassword": "گذرواژه",
|
||||||
|
"HeaderParentalRatings": "رتبه بندی والدین",
|
||||||
|
"HeaderOtherItems": "آیتمهای دیگر",
|
||||||
|
"HeaderOnNow": "هم اکنون",
|
||||||
|
"HeaderNextVideoPlayingInValue": "پخش ویدیوی بعد در {0}",
|
||||||
|
"HeaderNextEpisodePlayingInValue": "پخش قسمت بعدی در {0}",
|
||||||
|
"HeaderNewDevices": "دستگاه جدید",
|
||||||
|
"HeaderNewApiKey": "کلید API جدید",
|
||||||
|
"HeaderMyMediaSmall": "رسانهی من (کوچک)",
|
||||||
|
"HeaderMyMedia": "رسانهی من",
|
||||||
|
"HeaderMyDevice": "دستگاههای من",
|
||||||
|
"HeaderMusicVideos": "موزیک ویدیوها",
|
||||||
|
"HeaderMusicQuality": "کیفیت آهنگ",
|
||||||
|
"HeaderMovies": "فیلمها",
|
||||||
|
"HeaderMoreLikeThis": "موارد مشابه با این",
|
||||||
|
"HeaderMetadataSettings": "تنظیمات ابرداده",
|
||||||
|
"HeaderMediaInfo": "اطلاعات رسانه",
|
||||||
|
"HeaderMediaFolders": "پوشههای رسانه",
|
||||||
|
"HeaderMedia": "رسانه",
|
||||||
|
"HeaderLoginFailure": "ورود ناموفق",
|
||||||
|
"HeaderLiveTvTunerSetup": "تنظیم تلویزیون زنده",
|
||||||
|
"HeaderLiveTv": "تلویزیون زنده",
|
||||||
|
"HeaderLibrarySettings": "تنظیمات کتابخانه",
|
||||||
|
"HeaderLibraryOrder": "ترتیت کتابخانه",
|
||||||
|
"HeaderLibraryFolders": "پوشههای کتابخانه",
|
||||||
|
"HeaderLibraryAccess": "دسترسی به کتابخانه",
|
||||||
|
"HeaderLibraries": "کتابخانهها",
|
||||||
|
"HeaderLatestRecordings": "آخرین ضبطها",
|
||||||
|
"HeaderLatestMusic": "آخرین آهنگها",
|
||||||
|
"HeaderLatestMovies": "آخرین فیلمها",
|
||||||
|
"HeaderLatestMedia": "آخرین رسانهها",
|
||||||
|
"HeaderKeepSeries": "سریال ادامه دهید",
|
||||||
|
"HeaderKeepRecording": "ضبط را ادامه دهید",
|
||||||
|
"HeaderItems": "موارد",
|
||||||
|
"HeaderInstall": "نصب",
|
||||||
|
"HeaderImageSettings": "تنظیمات عکس",
|
||||||
|
"HeaderIdentifyItemHelp": "یک یا بیشتر مورد برای جستجو وارد کنید. موارد را حذف کنید تا نتیجه جستجو را افزایش دهید.",
|
||||||
|
"HeaderIdentificationHeader": "سرفصل تعیین هویت",
|
||||||
|
"HeaderIdentificationCriteriaHelp": "حداقل یک مورد تعیین هویت وارد کنید.",
|
||||||
|
"HeaderIdentification": "تعیین هویت",
|
||||||
|
"HeaderHttpHeaders": "سرفصلهای HTTP",
|
||||||
|
"HeaderHome": "خانه",
|
||||||
|
"HeaderGuideProviders": "ارائه دهنده داده راهنمای تلویزیونی",
|
||||||
|
"HeaderGenres": "ژانرها",
|
||||||
|
"HeaderFrequentlyPlayed": "اغلب پخش شده",
|
||||||
|
"HeaderForgotPassword": "فراموشی گذرواژه",
|
||||||
|
"HeaderForKids": "برای کودکان",
|
||||||
|
"HeaderFetchImages": "دریافت عکسها:",
|
||||||
|
"HeaderFeatures": "برجستهها",
|
||||||
|
"HeaderFeatureAccess": "دسترسیهای برجسته",
|
||||||
|
"HeaderFavoriteVideos": "ویدیوهای مورد علاقه",
|
||||||
|
"HeaderFavoritePeople": "افراد مورد علاقه",
|
||||||
|
"HeaderFavoriteMovies": "فیلمهای مورد علاقه",
|
||||||
|
"HeaderFavoriteBooks": "کتابهای مورد علاقه",
|
||||||
|
"HeaderExternalIds": "ID های خارجی:",
|
||||||
|
"HeaderError": "خطا",
|
||||||
|
"HeaderEpisodes": "قسمتها",
|
||||||
|
"HeaderEnabledFieldsHelp": "یک فیلد را برای جلوگیری از تغییر در دادهی آن علامت بزنید تا قفل بشود.",
|
||||||
|
"HeaderEnabledFields": "فیلدهای فعال شده",
|
||||||
|
"HeaderEditImages": "ویرایش عکسها",
|
||||||
|
"HeaderDownloadSync": "بارگیری و همگامسازی",
|
||||||
|
"HeaderDisplay": "نمایش",
|
||||||
|
"HeaderDirectPlayProfileHelp": "نمایهی پخش مستقیم را اضافه کنید تا مشخص کنید با چه فرمی دستگاه میتواند محلی برخورد کند.",
|
||||||
|
"HeaderDirectPlayProfile": "نمایهی پخش مستقیم",
|
||||||
|
"HeaderDevices": "دستگاهها",
|
||||||
|
"HeaderDeveloperInfo": "اطلاعات توسعه دهنده",
|
||||||
|
"HeaderDetectMyDevices": "تشخیص دستگاههای من",
|
||||||
|
"HeaderDeleteTaskTrigger": "حذف راه انداز وظیفه",
|
||||||
|
"HeaderDeleteProvider": "حذف ارائهدهنده",
|
||||||
|
"HeaderDeleteItems": "حذف آیتمها",
|
||||||
|
"HeaderDeleteItem": "حذف آیتم",
|
||||||
|
"HeaderDeleteDevice": "حذف دستگاه",
|
||||||
|
"HeaderDefaultRecordingSettings": "تنظمیات پیشفرض ضبط",
|
||||||
|
"HeaderDateIssued": "تاریخ صدور",
|
||||||
|
"HeaderCodecProfileHelp": "نمایههای کدک محدودیتهای یک دستگاه را هنگام پخش کدکهای خاص نشان میدهد. اگر محدودیتی اعمال شود، رسانهها کد گذاری میشوند ، حتی اگر کدک برای پخش مستقیم پیکربندی شده باشد.",
|
||||||
|
"HeaderCodecProfile": "نمایه کدک",
|
||||||
|
"HeaderChapterImages": "عکسهای سکانس",
|
||||||
|
"HeaderChannels": "کانالها",
|
||||||
|
"HeaderChannelAccess": "دسترسی به کانال",
|
||||||
|
"HeaderCastCrew": "بازیگران و کارکنان",
|
||||||
|
"HeaderCastAndCrew": "بازیگران و کارکنان",
|
||||||
|
"HeaderCancelSeries": "لغو سریال",
|
||||||
|
"HeaderCancelRecording": "لغو ضبط",
|
||||||
|
"HeaderBooks": "کتابها",
|
||||||
|
"HeaderBlockItemsWithNoRating": "موارد مسدود شده با نقص یا عدم وجود اطلاعات امتیاز:"
|
||||||
}
|
}
|
||||||
|
|
|
@ -14,7 +14,7 @@
|
||||||
"Alerts": "Alertes",
|
"Alerts": "Alertes",
|
||||||
"All": "Tout",
|
"All": "Tout",
|
||||||
"AllChannels": "Toutes les chaînes",
|
"AllChannels": "Toutes les chaînes",
|
||||||
"AllComplexFormats": "Tous les formats complexes (ASS, SSA, VOBSUB, PGS, SUB/IDX, etc…)",
|
"AllComplexFormats": "Tous les formats complexes (ASS, SSA, VOBSUB, PGS, SUB, IDX, etc…)",
|
||||||
"AllEpisodes": "Tous les épisodes",
|
"AllEpisodes": "Tous les épisodes",
|
||||||
"AllLanguages": "Toutes les langues",
|
"AllLanguages": "Toutes les langues",
|
||||||
"AllLibraries": "Toutes les médiathèques",
|
"AllLibraries": "Toutes les médiathèques",
|
||||||
|
@ -51,7 +51,7 @@
|
||||||
"BoxRear": "Dos de boîtier",
|
"BoxRear": "Dos de boîtier",
|
||||||
"Browse": "Parcourir",
|
"Browse": "Parcourir",
|
||||||
"BrowsePluginCatalogMessage": "Explorer notre catalogue des plugins pour voir les plugins disponibles.",
|
"BrowsePluginCatalogMessage": "Explorer notre catalogue des plugins pour voir les plugins disponibles.",
|
||||||
"BurnSubtitlesHelp": "Détermine si le serveur doit incruster les sous-titres lors de la conversion vidéo en fonction du format des sous-titres. Éviter l'incrustation des sous-titres améliorera les performances du serveur. Sélectionnez Auto pour incruster les formats basés sur l'image (VOBSUB, PGS, SUB/IDX etc) et certains sous-titres ASS/SSA.",
|
"BurnSubtitlesHelp": "Détermine si le serveur doit incruster les sous-titres lors du transcodage de la vidéo. Éviter cela améliorera nettement la performance. Sélectionnez Auto pour incruster les formats basés sur l'image (VOBSUB, PGS, SUB, IDX etc) et certains sous-titres ASS ou SSA.",
|
||||||
"ButtonAdd": "Ajouter",
|
"ButtonAdd": "Ajouter",
|
||||||
"ButtonAddMediaLibrary": "Ajouter une médiathèque",
|
"ButtonAddMediaLibrary": "Ajouter une médiathèque",
|
||||||
"ButtonAddScheduledTaskTrigger": "Ajouter un déclencheur",
|
"ButtonAddScheduledTaskTrigger": "Ajouter un déclencheur",
|
||||||
|
@ -186,7 +186,7 @@
|
||||||
"DisplayInOtherHomeScreenSections": "Afficher dans les sections de l’écran d’accueil comme Ajouts récents et Reprendre",
|
"DisplayInOtherHomeScreenSections": "Afficher dans les sections de l’écran d’accueil comme Ajouts récents et Reprendre",
|
||||||
"DisplayMissingEpisodesWithinSeasons": "Afficher les épisodes manquants dans les saisons",
|
"DisplayMissingEpisodesWithinSeasons": "Afficher les épisodes manquants dans les saisons",
|
||||||
"DisplayMissingEpisodesWithinSeasonsHelp": "Cette option doit aussi être activée pour les médiathèques TV dans les paramètres du serveur.",
|
"DisplayMissingEpisodesWithinSeasonsHelp": "Cette option doit aussi être activée pour les médiathèques TV dans les paramètres du serveur.",
|
||||||
"DisplayModeHelp": "Sélectionner le type d'écran sur lequel vous utilisez Jellyfin.",
|
"DisplayModeHelp": "Sélectionner l'agencement que vous désirez pour l'interface.",
|
||||||
"DoNotRecord": "Ne pas enregistrer",
|
"DoNotRecord": "Ne pas enregistrer",
|
||||||
"Down": "Bas",
|
"Down": "Bas",
|
||||||
"Download": "Téléchargement",
|
"Download": "Téléchargement",
|
||||||
|
@ -948,7 +948,7 @@
|
||||||
"OneChannel": "Une chaîne",
|
"OneChannel": "Une chaîne",
|
||||||
"OnlyForcedSubtitles": "Seulement les sous-titres forcés",
|
"OnlyForcedSubtitles": "Seulement les sous-titres forcés",
|
||||||
"OnlyForcedSubtitlesHelp": "Seuls les sous-titres marqués comme forcés seront chargés.",
|
"OnlyForcedSubtitlesHelp": "Seuls les sous-titres marqués comme forcés seront chargés.",
|
||||||
"OnlyImageFormats": "Seulement les formats image (VOBSUB, PGS, SUB, etc)",
|
"OnlyImageFormats": "Seulement les formats image (VOBSUB, PGS, SUB)",
|
||||||
"OptionAdminUsers": "Administrateurs",
|
"OptionAdminUsers": "Administrateurs",
|
||||||
"OptionAlbumArtist": "Artiste de l'album",
|
"OptionAlbumArtist": "Artiste de l'album",
|
||||||
"OptionAllUsers": "Tous les utilisateurs",
|
"OptionAllUsers": "Tous les utilisateurs",
|
||||||
|
|
|
@ -14,7 +14,7 @@
|
||||||
"Albums": "Album",
|
"Albums": "Album",
|
||||||
"All": "Tutto",
|
"All": "Tutto",
|
||||||
"AllChannels": "Tutti i canali",
|
"AllChannels": "Tutti i canali",
|
||||||
"AllComplexFormats": "Tutti i formati complessi (ASS, SSA, VOBSUB, PGS, SUB / IDX, ecc.)",
|
"AllComplexFormats": "Tutti i formati complessi (ASS, SSA, VOBSUB, PGS, SUB, IDX)",
|
||||||
"AllEpisodes": "Tutti gli episodi",
|
"AllEpisodes": "Tutti gli episodi",
|
||||||
"AllLanguages": "Tutte le lingue",
|
"AllLanguages": "Tutte le lingue",
|
||||||
"AllLibraries": "Tutte le librerie",
|
"AllLibraries": "Tutte le librerie",
|
||||||
|
@ -24,7 +24,7 @@
|
||||||
"AllowRemoteAccess": "Abilita connessioni remote a questo Server Jellyfin.",
|
"AllowRemoteAccess": "Abilita connessioni remote a questo Server Jellyfin.",
|
||||||
"AllowRemoteAccessHelp": "Se deselezionato, tutte le connessioni remote saranno bloccate.",
|
"AllowRemoteAccessHelp": "Se deselezionato, tutte le connessioni remote saranno bloccate.",
|
||||||
"AllowedRemoteAddressesHelp": "Elenco separato da virgola di indirizzi IP o voci IP / maschera di rete per reti che potranno connettersi da remoto. Se lasciato vuoto, saranno consentiti tutti gli indirizzi remoti.",
|
"AllowedRemoteAddressesHelp": "Elenco separato da virgola di indirizzi IP o voci IP / maschera di rete per reti che potranno connettersi da remoto. Se lasciato vuoto, saranno consentiti tutti gli indirizzi remoti.",
|
||||||
"AlwaysPlaySubtitles": "Visualizza sempre i sottotitoli",
|
"AlwaysPlaySubtitles": "Riproduci sempre",
|
||||||
"AlwaysPlaySubtitlesHelp": "I sottotitoli corrispondenti alla lingua preferita saranno caricati a prescindere dalla lingua dell'audio.",
|
"AlwaysPlaySubtitlesHelp": "I sottotitoli corrispondenti alla lingua preferita saranno caricati a prescindere dalla lingua dell'audio.",
|
||||||
"AnyLanguage": "Qualsiasi lingua",
|
"AnyLanguage": "Qualsiasi lingua",
|
||||||
"Anytime": "In qualsiasi momento",
|
"Anytime": "In qualsiasi momento",
|
||||||
|
@ -45,7 +45,7 @@
|
||||||
"BoxRear": "Box (retro)",
|
"BoxRear": "Box (retro)",
|
||||||
"Browse": "Esplora",
|
"Browse": "Esplora",
|
||||||
"BrowsePluginCatalogMessage": "Sfoglia il catalogo dei Plugins.",
|
"BrowsePluginCatalogMessage": "Sfoglia il catalogo dei Plugins.",
|
||||||
"BurnSubtitlesHelp": "Determina se il server deve applicare i sottotitoli quando si convertono video in base al formato dei sottotitoli. Evitando di applicare i sottotitoli migliorerà le prestazioni del server. Selezionare Auto per applicare formati basati sull'immagine (VOBSUB, PGS, SUB / IDX, ecc.) e alcuni sottotitoli ASS / SSA.",
|
"BurnSubtitlesHelp": "Determina se il server deve imprimere i sottotitoli quando i video vengono convertiti. Evitare ciò migliorerà di molto le prestazioni. Selezionare Auto per imprimere formati basati sull'immagine (VOBSUB, PGS, SUB, IDX) e alcuni sottotitoli ASS o SSA.",
|
||||||
"ButtonAdd": "Aggiungi",
|
"ButtonAdd": "Aggiungi",
|
||||||
"ButtonAddMediaLibrary": "Aggiungi raccolta multimediale",
|
"ButtonAddMediaLibrary": "Aggiungi raccolta multimediale",
|
||||||
"ButtonAddScheduledTaskTrigger": "Aggiungi operazione",
|
"ButtonAddScheduledTaskTrigger": "Aggiungi operazione",
|
||||||
|
@ -175,7 +175,7 @@
|
||||||
"DisplayInOtherHomeScreenSections": "Mostra le sezioni della schermata home come gli ultimi media e continua a guardare",
|
"DisplayInOtherHomeScreenSections": "Mostra le sezioni della schermata home come gli ultimi media e continua a guardare",
|
||||||
"DisplayMissingEpisodesWithinSeasons": "Visualizza gli episodi mancanti nelle stagioni",
|
"DisplayMissingEpisodesWithinSeasons": "Visualizza gli episodi mancanti nelle stagioni",
|
||||||
"DisplayMissingEpisodesWithinSeasonsHelp": "Questo deve anche essere abilitato per le librerie TV nella configurazione del server.",
|
"DisplayMissingEpisodesWithinSeasonsHelp": "Questo deve anche essere abilitato per le librerie TV nella configurazione del server.",
|
||||||
"DisplayModeHelp": "Scegli il tipo di schermo su cui stai utilizzando Jellyfin.",
|
"DisplayModeHelp": "Seleziona lo stile del layout che vuoi per l'interfaccia.",
|
||||||
"DoNotRecord": "Non registrare",
|
"DoNotRecord": "Non registrare",
|
||||||
"Down": "Giù",
|
"Down": "Giù",
|
||||||
"Download": "Scarica",
|
"Download": "Scarica",
|
||||||
|
@ -901,16 +901,16 @@
|
||||||
"NoNextUpItemsMessage": "Trovato niente. Inizia a guardare i tuoi programmi!",
|
"NoNextUpItemsMessage": "Trovato niente. Inizia a guardare i tuoi programmi!",
|
||||||
"NoPluginConfigurationMessage": "Questo Plugin non ha impostazioni da configurare.",
|
"NoPluginConfigurationMessage": "Questo Plugin non ha impostazioni da configurare.",
|
||||||
"NoSubtitleSearchResultsFound": "Nessun risultato.",
|
"NoSubtitleSearchResultsFound": "Nessun risultato.",
|
||||||
"NoSubtitles": "Nessun Sottotitolo",
|
"NoSubtitles": "Nessuno",
|
||||||
"NoSubtitlesHelp": "I sottotitoli non verranno caricati per impostazione predefinita.Possono essere ancora caricati manualmente durante la riproduzione.",
|
"NoSubtitlesHelp": "I sottotitoli non verranno caricati per impostazione predefinita.Possono essere ancora caricati manualmente durante la riproduzione.",
|
||||||
"None": "Nessuno",
|
"None": "Nessuno",
|
||||||
"Normal": "Normale",
|
"Normal": "Normale",
|
||||||
"NumLocationsValue": "{0} cartelle",
|
"NumLocationsValue": "{0} cartelle",
|
||||||
"Off": "Spento",
|
"Off": "Spento",
|
||||||
"OneChannel": "Un canale",
|
"OneChannel": "Un canale",
|
||||||
"OnlyForcedSubtitles": "Solo i sottotitoli forzati",
|
"OnlyForcedSubtitles": "Solo forzati",
|
||||||
"OnlyForcedSubtitlesHelp": "Solo i sottotitoli contrassegnati come forzati saranno caricati.",
|
"OnlyForcedSubtitlesHelp": "Solo i sottotitoli contrassegnati come forzati saranno caricati.",
|
||||||
"OnlyImageFormats": "Solo formati immagine (VOBSUB, PGS, SUB, ecc)",
|
"OnlyImageFormats": "Solo formati immagine (VOBSUB, PGS, SUB)",
|
||||||
"OptionAdminUsers": "Amministratori",
|
"OptionAdminUsers": "Amministratori",
|
||||||
"OptionAlbumArtist": "Artista Album",
|
"OptionAlbumArtist": "Artista Album",
|
||||||
"OptionAllUsers": "Tutti gli utenti",
|
"OptionAllUsers": "Tutti gli utenti",
|
||||||
|
@ -1013,7 +1013,7 @@
|
||||||
"OptionReportByteRangeSeekingWhenTranscodingHelp": "Questo è necessario per alcuni dispositivi che non hanno l'avanzamento rapido che funziona bene.",
|
"OptionReportByteRangeSeekingWhenTranscodingHelp": "Questo è necessario per alcuni dispositivi che non hanno l'avanzamento rapido che funziona bene.",
|
||||||
"OptionRequirePerfectSubtitleMatch": "Scarica solo i sottotitoli che corrispondono perfettamente ai miei file video",
|
"OptionRequirePerfectSubtitleMatch": "Scarica solo i sottotitoli che corrispondono perfettamente ai miei file video",
|
||||||
"OptionRequirePerfectSubtitleMatchHelp": "La richiesta di una corrispondenza perfetta filtrerà i sottotitoli per includere solo quelli che sono stati testati e verificati con il file video esatto. Deselezionando questo aumenterà la probabilità che i sottotitoli vengono scaricati, ma aumenteranno le probabilità di testo sottotitolato impreciso o errato.",
|
"OptionRequirePerfectSubtitleMatchHelp": "La richiesta di una corrispondenza perfetta filtrerà i sottotitoli per includere solo quelli che sono stati testati e verificati con il file video esatto. Deselezionando questo aumenterà la probabilità che i sottotitoli vengono scaricati, ma aumenteranno le probabilità di testo sottotitolato impreciso o errato.",
|
||||||
"OptionResElement": "elemento res",
|
"OptionResElement": "res element",
|
||||||
"OptionResumable": "Interrotto",
|
"OptionResumable": "Interrotto",
|
||||||
"OptionRuntime": "Durata",
|
"OptionRuntime": "Durata",
|
||||||
"OptionSaturday": "Sabato",
|
"OptionSaturday": "Sabato",
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue