mirror of
https://github.com/jellyfin/jellyfin-web.git
synced 2024-11-17 10:58:20 -07:00
merge branch master into routes
This commit is contained in:
commit
3bcadd7605
@ -73,9 +73,10 @@
|
||||
"page": "^1.11.5",
|
||||
"query-string": "^6.11.1",
|
||||
"resize-observer-polyfill": "^1.5.1",
|
||||
"screenfull": "^5.0.2",
|
||||
"shaka-player": "^2.5.10",
|
||||
"sortablejs": "^1.10.2",
|
||||
"swiper": "^5.3.1",
|
||||
"swiper": "^5.3.7",
|
||||
"webcomponents.js": "^0.7.24",
|
||||
"whatwg-fetch": "^3.0.0"
|
||||
},
|
||||
|
@ -21,7 +21,11 @@
|
||||
}
|
||||
|
||||
.libraryPage {
|
||||
padding-top: 7em;
|
||||
padding-top: 7em !important;
|
||||
}
|
||||
|
||||
.layout-mobile .libraryPage {
|
||||
padding-top: 4em !important;
|
||||
}
|
||||
|
||||
.itemDetailPage {
|
||||
@ -128,10 +132,6 @@
|
||||
margin-top: 0;
|
||||
}
|
||||
|
||||
.layout-mobile .pageTitleWithDefaultLogo {
|
||||
background-image: url(../img/icon-transparent.png);
|
||||
}
|
||||
|
||||
.headerLeft,
|
||||
.skinHeader {
|
||||
display: -webkit-box;
|
||||
@ -242,10 +242,11 @@
|
||||
}
|
||||
|
||||
.mainDrawer-scrollContainer {
|
||||
margin-bottom: 10vh;
|
||||
padding-bottom: 10vh;
|
||||
}
|
||||
|
||||
@media all and (min-width: 40em) {
|
||||
.dashboardDocument .adminDrawerLogo,
|
||||
.dashboardDocument .mainDrawerButton {
|
||||
display: none !important;
|
||||
}
|
||||
@ -313,7 +314,7 @@
|
||||
}
|
||||
|
||||
.dashboardDocument .mainDrawer-scrollContainer {
|
||||
margin-top: 4.6em !important;
|
||||
margin-top: 4.65em !important;
|
||||
}
|
||||
}
|
||||
|
||||
@ -516,6 +517,13 @@
|
||||
|
||||
.itemName {
|
||||
margin: 0.5em 0;
|
||||
font-weight: 600;
|
||||
}
|
||||
|
||||
.nameContainer {
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
flex-wrap: wrap;
|
||||
}
|
||||
|
||||
.itemMiscInfo {
|
||||
@ -533,7 +541,6 @@
|
||||
.layout-mobile .itemName,
|
||||
.layout-mobile .itemMiscInfo,
|
||||
.layout-mobile .mainDetailButtons {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
text-align: center;
|
||||
@ -575,7 +582,6 @@
|
||||
|
||||
.infoText {
|
||||
white-space: nowrap;
|
||||
overflow: hidden;
|
||||
text-overflow: ellipsis;
|
||||
text-align: left;
|
||||
}
|
||||
@ -606,12 +612,11 @@
|
||||
}
|
||||
|
||||
.detailLogo {
|
||||
width: 67.25vw;
|
||||
height: 14.5vh;
|
||||
width: 30vw;
|
||||
height: 25vh;
|
||||
position: absolute;
|
||||
top: 15vh;
|
||||
right: 0;
|
||||
-webkit-background-size: contain;
|
||||
top: 10vh;
|
||||
right: 20vw;
|
||||
background-size: contain;
|
||||
}
|
||||
|
||||
@ -619,26 +624,8 @@
|
||||
display: none;
|
||||
}
|
||||
|
||||
@media all and (max-width: 87.5em) {
|
||||
.detailLogo {
|
||||
right: 5%;
|
||||
}
|
||||
}
|
||||
|
||||
@media all and (max-width: 75em) {
|
||||
.detailLogo {
|
||||
right: 2%;
|
||||
}
|
||||
}
|
||||
|
||||
@media all and (max-width: 68.75em) {
|
||||
.detailLogo {
|
||||
width: 14.91em;
|
||||
height: 3.5em;
|
||||
right: 5%;
|
||||
bottom: 5%;
|
||||
top: auto;
|
||||
background-position: center right;
|
||||
display: none;
|
||||
}
|
||||
}
|
||||
|
@ -135,7 +135,14 @@ _define("fast-text-encoding", function () {
|
||||
return fast_text_encoding;
|
||||
});
|
||||
|
||||
// intersection-observer
|
||||
var intersection_observer = require("intersection-observer");
|
||||
_define("intersection-observer", function () {
|
||||
return intersection_observer;
|
||||
});
|
||||
|
||||
// screenfull
|
||||
var screenfull = require("screenfull");
|
||||
_define("screenfull", function () {
|
||||
return screenfull;
|
||||
});
|
||||
|
@ -200,7 +200,7 @@ define(['loading', 'globalize', 'events', 'viewManager', 'layoutManager', 'skinM
|
||||
|
||||
var apiClient = this;
|
||||
|
||||
if (data.status === 401) {
|
||||
if (data.status === 403) {
|
||||
if (data.errorCode === "ParentalControl") {
|
||||
|
||||
var isCurrentAllowed = currentRouteInfo ? (currentRouteInfo.route.anonymous || currentRouteInfo.route.startup) : true;
|
||||
|
@ -5,7 +5,7 @@ define(['appSettings', 'userSettings', 'playbackManager', 'connectionManager', '
|
||||
var currentResolve;
|
||||
var currentReject;
|
||||
|
||||
var PlayerName = 'Chromecast';
|
||||
var PlayerName = 'Google Cast';
|
||||
|
||||
function sendConnectionResult(isOk) {
|
||||
|
||||
|
@ -4,7 +4,7 @@ export function download(items) {
|
||||
|
||||
if (window.NativeShell) {
|
||||
items.map(function (item) {
|
||||
window.NativeShell.downloadFile(item.url);
|
||||
window.NativeShell.downloadFile(item);
|
||||
});
|
||||
} else {
|
||||
multiDownload(items.map(function (item) {
|
||||
|
@ -1,103 +0,0 @@
|
||||
define(['events', 'dom', 'apphost', 'browser'], function (events, dom, appHost, browser) {
|
||||
'use strict';
|
||||
|
||||
function fullscreenManager() {
|
||||
|
||||
}
|
||||
|
||||
fullscreenManager.prototype.requestFullscreen = function (element) {
|
||||
|
||||
element = element || document.documentElement;
|
||||
|
||||
if (element.requestFullscreen) {
|
||||
element.requestFullscreen();
|
||||
return;
|
||||
} else if (element.mozRequestFullScreen) {
|
||||
element.mozRequestFullScreen();
|
||||
return;
|
||||
} else if (element.webkitRequestFullscreen) {
|
||||
element.webkitRequestFullscreen();
|
||||
return;
|
||||
} else if (element.msRequestFullscreen) {
|
||||
element.msRequestFullscreen();
|
||||
return;
|
||||
}
|
||||
|
||||
// Hack - This is only available for video elements in ios safari
|
||||
if (element.tagName !== 'VIDEO') {
|
||||
element = document.querySelector('video') || element;
|
||||
}
|
||||
if (element.webkitEnterFullscreen) {
|
||||
element.webkitEnterFullscreen();
|
||||
}
|
||||
};
|
||||
|
||||
fullscreenManager.prototype.exitFullscreen = function () {
|
||||
|
||||
if (!this.isFullScreen()) {
|
||||
return;
|
||||
}
|
||||
if (document.exitFullscreen) {
|
||||
document.exitFullscreen();
|
||||
} else if (document.mozCancelFullScreen) {
|
||||
document.mozCancelFullScreen();
|
||||
} else if (document.webkitExitFullscreen) {
|
||||
document.webkitExitFullscreen();
|
||||
} else if (document.webkitCancelFullscreen) {
|
||||
document.webkitCancelFullscreen();
|
||||
} else if (document.msExitFullscreen) {
|
||||
document.msExitFullscreen();
|
||||
}
|
||||
};
|
||||
|
||||
// TODO: use screenfull.js
|
||||
fullscreenManager.prototype.isFullScreen = function () {
|
||||
return document.fullscreen ||
|
||||
document.mozFullScreen ||
|
||||
document.webkitIsFullScreen ||
|
||||
document.msFullscreenElement || /* IE/Edge syntax */
|
||||
document.fullscreenElement || /* Standard syntax */
|
||||
document.webkitFullscreenElement || /* Chrome, Safari and Opera syntax */
|
||||
document.mozFullScreenElement; /* Firefox syntax */
|
||||
};
|
||||
|
||||
var manager = new fullscreenManager();
|
||||
|
||||
function onFullScreenChange() {
|
||||
events.trigger(manager, 'fullscreenchange');
|
||||
}
|
||||
|
||||
dom.addEventListener(document, 'fullscreenchange', onFullScreenChange, {
|
||||
passive: true
|
||||
});
|
||||
|
||||
dom.addEventListener(document, 'webkitfullscreenchange', onFullScreenChange, {
|
||||
passive: true
|
||||
});
|
||||
|
||||
dom.addEventListener(document, 'mozfullscreenchange', onFullScreenChange, {
|
||||
passive: true
|
||||
});
|
||||
|
||||
function isTargetValid(target) {
|
||||
return !dom.parentWithTag(target, ['BUTTON', 'INPUT', 'TEXTAREA']);
|
||||
}
|
||||
if (appHost.supports("fullscreenchange") && (browser.edgeUwp || -1 !== navigator.userAgent.toLowerCase().indexOf("electron"))) {
|
||||
|
||||
dom.addEventListener(window, 'dblclick', function (e) {
|
||||
|
||||
if (isTargetValid(e.target)) {
|
||||
if (manager.isFullScreen()) {
|
||||
manager.exitFullscreen();
|
||||
} else {
|
||||
manager.requestFullscreen();
|
||||
}
|
||||
}
|
||||
|
||||
}, {
|
||||
passive: true
|
||||
});
|
||||
}
|
||||
|
||||
return manager;
|
||||
});
|
@ -1,4 +1,4 @@
|
||||
define(['require', 'inputManager', 'browser', 'globalize', 'connectionManager', 'scrollHelper', 'serverNotifications', 'loading', 'datetime', 'focusManager', 'playbackManager', 'userSettings', 'imageLoader', 'events', 'layoutManager', 'itemShortcuts', 'dom', 'css!./guide.css', 'programStyles', 'material-icons', 'scrollStyles', 'emby-button', 'paper-icon-button-light', 'emby-tabs', 'emby-scroller', 'flexStyles', 'registerElement'], function (require, inputManager, browser, globalize, connectionManager, scrollHelper, serverNotifications, loading, datetime, focusManager, playbackManager, userSettings, imageLoader, events, layoutManager, itemShortcuts, dom) {
|
||||
define(['require', 'inputManager', 'browser', 'globalize', 'connectionManager', 'scrollHelper', 'serverNotifications', 'loading', 'datetime', 'focusManager', 'playbackManager', 'userSettings', 'imageLoader', 'events', 'layoutManager', 'itemShortcuts', 'dom', 'css!./guide.css', 'programStyles', 'material-icons', 'scrollStyles', 'emby-programcell', 'emby-button', 'paper-icon-button-light', 'emby-tabs', 'emby-scroller', 'flexStyles', 'registerElement'], function (require, inputManager, browser, globalize, connectionManager, scrollHelper, serverNotifications, loading, datetime, focusManager, playbackManager, userSettings, imageLoader, events, layoutManager, itemShortcuts, dom) {
|
||||
'use strict';
|
||||
|
||||
function showViewSettings(instance) {
|
||||
@ -1252,18 +1252,5 @@ define(['require', 'inputManager', 'browser', 'globalize', 'connectionManager',
|
||||
});
|
||||
}
|
||||
|
||||
var ProgramCellPrototype = Object.create(HTMLButtonElement.prototype);
|
||||
|
||||
ProgramCellPrototype.detachedCallback = function () {
|
||||
this.posLeft = null;
|
||||
this.posWidth = null;
|
||||
this.guideProgramName = null;
|
||||
};
|
||||
|
||||
document.registerElement('emby-programcell', {
|
||||
prototype: ProgramCellPrototype,
|
||||
extends: 'button'
|
||||
});
|
||||
|
||||
return Guide;
|
||||
});
|
||||
|
@ -10,6 +10,13 @@
|
||||
<div class="fieldDescription">${LabelPleaseRestart}</div>
|
||||
</div>
|
||||
|
||||
<div class="verticalSection verticalSection-extrabottompadding">
|
||||
<label class="checkboxContainer">
|
||||
<input class="chkHidePlayedFromLatest" type="checkbox" is="emby-checkbox" />
|
||||
<span>${HideWatchedContentFromLatestMedia}</span>
|
||||
</label>
|
||||
</div>
|
||||
|
||||
<div class="selectContainer">
|
||||
<select is="emby-select" id="selectHomeSection1" label="{section1label}">
|
||||
<option value="smalllibrarytiles">${HeaderMyMedia}</option>
|
||||
@ -110,13 +117,6 @@
|
||||
|
||||
<div class="perLibrarySettings"></div>
|
||||
|
||||
<div class="verticalSection verticalSection-extrabottompadding">
|
||||
<label class="checkboxContainer">
|
||||
<input class="chkHidePlayedFromLatest" type="checkbox" is="emby-checkbox" />
|
||||
<span>${HideWatchedContentFromLatestMedia}</span>
|
||||
</label>
|
||||
</div>
|
||||
|
||||
<div class="verticalSection verticalSection-extrabottompadding">
|
||||
<h2 class="sectionTitle">${HeaderLibraryFolders}</h2>
|
||||
<div>
|
||||
|
@ -162,7 +162,7 @@ define(['appSettings', 'browser', 'events'], function (appSettings, browser, eve
|
||||
}
|
||||
}
|
||||
|
||||
function seekOnPlaybackStart(instance, element, ticks) {
|
||||
function seekOnPlaybackStart(instance, element, ticks, onMediaReady) {
|
||||
|
||||
var seconds = (ticks || 0) / 10000000;
|
||||
|
||||
@ -175,6 +175,7 @@ define(['appSettings', 'browser', 'events'], function (appSettings, browser, eve
|
||||
if (element.duration >= seconds) {
|
||||
// media is ready, seek immediately
|
||||
setCurrentTimeIfNeeded(element, seconds);
|
||||
if (onMediaReady) onMediaReady();
|
||||
} else {
|
||||
// update video player position when media is ready to be sought
|
||||
var events = ["durationchange", "loadeddata", "play", "loadedmetadata"];
|
||||
@ -189,6 +190,7 @@ define(['appSettings', 'browser', 'events'], function (appSettings, browser, eve
|
||||
events.map(function(name) {
|
||||
element.removeEventListener(name, onMediaChange);
|
||||
});
|
||||
if (onMediaReady) onMediaReady();
|
||||
}
|
||||
};
|
||||
events.map(function (name) {
|
||||
|
@ -1,4 +1,4 @@
|
||||
define(['browser', 'require', 'events', 'apphost', 'loading', 'dom', 'playbackManager', 'appRouter', 'appSettings', 'connectionManager', 'htmlMediaHelper', 'itemHelper', 'fullscreenManager', 'globalize'], function (browser, require, events, appHost, loading, dom, playbackManager, appRouter, appSettings, connectionManager, htmlMediaHelper, itemHelper, fullscreenManager, globalize) {
|
||||
define(['browser', 'require', 'events', 'apphost', 'loading', 'dom', 'playbackManager', 'appRouter', 'appSettings', 'connectionManager', 'htmlMediaHelper', 'itemHelper', 'screenfull', 'globalize'], function (browser, require, events, appHost, loading, dom, playbackManager, appRouter, appSettings, connectionManager, htmlMediaHelper, itemHelper, screenfull, globalize) {
|
||||
"use strict";
|
||||
/* globals cast */
|
||||
|
||||
@ -600,8 +600,9 @@ define(['browser', 'require', 'events', 'apphost', 'loading', 'dom', 'playbackMa
|
||||
var offsetValue = parseFloat(offset);
|
||||
|
||||
// if .ass currently rendering
|
||||
if (currentAssRenderer) {
|
||||
if (currentSubtitlesOctopus) {
|
||||
updateCurrentTrackOffset(offsetValue);
|
||||
currentSubtitlesOctopus.timeOffset = offsetValue;
|
||||
} else {
|
||||
var trackElement = getTextTrack();
|
||||
// if .vtt currently rendering
|
||||
@ -794,7 +795,7 @@ define(['browser', 'require', 'events', 'apphost', 'loading', 'dom', 'playbackMa
|
||||
dlg.parentNode.removeChild(dlg);
|
||||
}
|
||||
|
||||
fullscreenManager.exitFullscreen();
|
||||
screenfull.exit();
|
||||
};
|
||||
|
||||
function onEnded() {
|
||||
@ -856,7 +857,9 @@ define(['browser', 'require', 'events', 'apphost', 'loading', 'dom', 'playbackMa
|
||||
|
||||
loading.hide();
|
||||
|
||||
htmlMediaHelper.seekOnPlaybackStart(self, e.target, self._currentPlayOptions.playerStartPositionTicks);
|
||||
htmlMediaHelper.seekOnPlaybackStart(self, e.target, self._currentPlayOptions.playerStartPositionTicks, function () {
|
||||
if (currentSubtitlesOctopus) currentSubtitlesOctopus.resize();
|
||||
});
|
||||
|
||||
if (self._currentPlayOptions.fullscreen) {
|
||||
|
||||
@ -1220,11 +1223,6 @@ define(['browser', 'require', 'events', 'apphost', 'loading', 'dom', 'playbackMa
|
||||
|
||||
function updateSubtitleText(timeMs) {
|
||||
|
||||
// handle offset for ass tracks
|
||||
if (currentTrackOffset) {
|
||||
timeMs += (currentTrackOffset * 1000);
|
||||
}
|
||||
|
||||
var clock = currentClock;
|
||||
if (clock) {
|
||||
try {
|
||||
|
@ -1,4 +1,4 @@
|
||||
define(['datetime', 'itemHelper', 'css!./indicators.css', 'material-icons'], function (datetime, itemHelper) {
|
||||
define(['datetime', 'itemHelper', 'emby-progressbar', 'css!./indicators.css', 'material-icons'], function (datetime, itemHelper) {
|
||||
'use strict';
|
||||
|
||||
function enableProgressIndicator(item) {
|
||||
@ -183,45 +183,6 @@ define(['datetime', 'itemHelper', 'css!./indicators.css', 'material-icons'], fun
|
||||
return '';
|
||||
}
|
||||
|
||||
var ProgressBarPrototype = Object.create(HTMLDivElement.prototype);
|
||||
|
||||
function onAutoTimeProgress() {
|
||||
var start = parseInt(this.getAttribute('data-starttime'));
|
||||
var end = parseInt(this.getAttribute('data-endtime'));
|
||||
|
||||
var now = new Date().getTime();
|
||||
var total = end - start;
|
||||
var pct = 100 * ((now - start) / total);
|
||||
|
||||
pct = Math.min(100, pct);
|
||||
pct = Math.max(0, pct);
|
||||
|
||||
var itemProgressBarForeground = this.querySelector('.itemProgressBarForeground');
|
||||
itemProgressBarForeground.style.width = pct + '%';
|
||||
}
|
||||
|
||||
ProgressBarPrototype.attachedCallback = function () {
|
||||
if (this.timeInterval) {
|
||||
clearInterval(this.timeInterval);
|
||||
}
|
||||
|
||||
if (this.getAttribute('data-automode') === 'time') {
|
||||
this.timeInterval = setInterval(onAutoTimeProgress.bind(this), 60000);
|
||||
}
|
||||
};
|
||||
|
||||
ProgressBarPrototype.detachedCallback = function () {
|
||||
if (this.timeInterval) {
|
||||
clearInterval(this.timeInterval);
|
||||
this.timeInterval = null;
|
||||
}
|
||||
};
|
||||
|
||||
document.registerElement('emby-progressbar', {
|
||||
prototype: ProgressBarPrototype,
|
||||
extends: 'div'
|
||||
});
|
||||
|
||||
return {
|
||||
getProgressHtml: getProgressHtml,
|
||||
getProgressBarHtml: getProgressBarHtml,
|
||||
|
@ -90,7 +90,7 @@ define(["apphost", "globalize", "connectionManager", "itemHelper", "appRouter",
|
||||
});
|
||||
}
|
||||
|
||||
if (itemHelper.supportsAddingToPlaylist(item)) {
|
||||
if (itemHelper.supportsAddingToPlaylist(item) && options.playlist !== false) {
|
||||
commands.push({
|
||||
name: globalize.translate("AddToPlaylist"),
|
||||
id: "addtoplaylist",
|
||||
@ -339,7 +339,9 @@ define(["apphost", "globalize", "connectionManager", "itemHelper", "appRouter",
|
||||
fileDownloader.download([{
|
||||
url: downloadHref,
|
||||
itemId: itemId,
|
||||
serverId: serverId
|
||||
serverId: serverId,
|
||||
title: item.Name,
|
||||
filename: item.Path.replace(/^.*[\\\/]/, '')
|
||||
}]);
|
||||
getResolveFunction(getResolveFunction(resolve, id), id)();
|
||||
});
|
||||
|
@ -1,4 +1,4 @@
|
||||
define(['require', 'datetime', 'itemHelper', 'events', 'browser', 'imageLoader', 'layoutManager', 'playbackManager', 'nowPlayingHelper', 'apphost', 'dom', 'connectionManager', 'paper-icon-button-light', 'emby-ratingbutton'], function (require, datetime, itemHelper, events, browser, imageLoader, layoutManager, playbackManager, nowPlayingHelper, appHost, dom, connectionManager) {
|
||||
define(['require', 'datetime', 'itemHelper', 'events', 'browser', 'imageLoader', 'layoutManager', 'playbackManager', 'nowPlayingHelper', 'apphost', 'dom', 'connectionManager', 'itemContextMenu', 'paper-icon-button-light', 'emby-ratingbutton'], function (require, datetime, itemHelper, events, browser, imageLoader, layoutManager, playbackManager, nowPlayingHelper, appHost, dom, connectionManager, itemContextMenu) {
|
||||
'use strict';
|
||||
|
||||
var currentPlayer;
|
||||
@ -66,7 +66,7 @@ define(['require', 'datetime', 'itemHelper', 'events', 'browser', 'imageLoader',
|
||||
html += '</div>';
|
||||
|
||||
html += '<button is="paper-icon-button-light" class="playPauseButton mediaButton"><i class="material-icons">pause</i></button>';
|
||||
html += '<button is="paper-icon-button-light" class="remoteControlButton mediaButton"><i class="material-icons playlist_play"></i></button>';
|
||||
html += '<button is="paper-icon-button-light" class="btnToggleContextMenu"><i class="material-icons more_vert"></i></button>';
|
||||
|
||||
html += '</div>';
|
||||
html += '</div>';
|
||||
@ -155,8 +155,6 @@ define(['require', 'datetime', 'itemHelper', 'events', 'browser', 'imageLoader',
|
||||
}
|
||||
});
|
||||
|
||||
elem.querySelector('.remoteControlButton').addEventListener('click', showRemoteControl);
|
||||
|
||||
toggleRepeatButton = elem.querySelector('.toggleRepeatButton');
|
||||
toggleRepeatButton.addEventListener('click', function () {
|
||||
|
||||
@ -187,29 +185,15 @@ define(['require', 'datetime', 'itemHelper', 'events', 'browser', 'imageLoader',
|
||||
volumeSliderContainer.classList.remove('hide');
|
||||
}
|
||||
|
||||
var volumeSliderTimer;
|
||||
|
||||
function setVolume() {
|
||||
clearTimeout(volumeSliderTimer);
|
||||
volumeSliderTimer = null;
|
||||
|
||||
if (currentPlayer) {
|
||||
currentPlayer.setVolume(this.value);
|
||||
}
|
||||
}
|
||||
|
||||
function setVolumeDelayed() {
|
||||
if (!volumeSliderTimer) {
|
||||
var that = this;
|
||||
volumeSliderTimer = setTimeout(function () {
|
||||
setVolume.call(that);
|
||||
}, 700);
|
||||
}
|
||||
}
|
||||
|
||||
volumeSlider.addEventListener('change', setVolume);
|
||||
volumeSlider.addEventListener('mousemove', setVolumeDelayed);
|
||||
volumeSlider.addEventListener('touchmove', setVolumeDelayed);
|
||||
volumeSlider.addEventListener('mousemove', setVolume);
|
||||
volumeSlider.addEventListener('touchmove', setVolume);
|
||||
|
||||
positionSlider = elem.querySelector('.nowPlayingBarPositionSlider');
|
||||
positionSlider.addEventListener('change', function () {
|
||||
@ -240,7 +224,7 @@ define(['require', 'datetime', 'itemHelper', 'events', 'browser', 'imageLoader',
|
||||
|
||||
elem.addEventListener('click', function (e) {
|
||||
|
||||
if (!dom.parentWithTag(e.target, ['BUTTON', 'INPUT', 'A'])) {
|
||||
if (!dom.parentWithTag(e.target, ['BUTTON', 'INPUT'])) {
|
||||
showRemoteControl();
|
||||
}
|
||||
});
|
||||
@ -449,17 +433,13 @@ define(['require', 'datetime', 'itemHelper', 'events', 'browser', 'imageLoader',
|
||||
}
|
||||
}
|
||||
|
||||
function getTextActionButton(item, text, serverId) {
|
||||
function getTextActionButton(item, text) {
|
||||
|
||||
if (!text) {
|
||||
text = itemHelper.getDisplayName(item);
|
||||
}
|
||||
|
||||
var html = '<button data-id="' + item.Id + '" data-serverid="' + (item.ServerId || serverId) + '" data-type="' + item.Type + '" data-mediatype="' + item.MediaType + '" data-channelid="' + item.ChannelId + '" data-isfolder="' + item.IsFolder + '" type="button" class="itemAction textActionButton" data-action="link">';
|
||||
html += text;
|
||||
html += '</button>';
|
||||
|
||||
return html;
|
||||
return `<a>${text}</a>`;
|
||||
}
|
||||
|
||||
function seriesImageUrl(item, options) {
|
||||
@ -537,16 +517,16 @@ define(['require', 'datetime', 'itemHelper', 'events', 'browser', 'imageLoader',
|
||||
if (textLines.length > 1) {
|
||||
textLines[1].secondary = true;
|
||||
}
|
||||
var serverId = nowPlayingItem ? nowPlayingItem.ServerId : null;
|
||||
nowPlayingTextElement.innerHTML = textLines.map(function (nowPlayingName) {
|
||||
|
||||
var cssClass = nowPlayingName.secondary ? ' class="nowPlayingBarSecondaryText"' : '';
|
||||
|
||||
if (nowPlayingName.item) {
|
||||
return '<div' + cssClass + '>' + getTextActionButton(nowPlayingName.item, nowPlayingName.text, serverId) + '</div>';
|
||||
var nowPlayingText = getTextActionButton(nowPlayingName.item, nowPlayingName.text);
|
||||
return `<div ${cssClass}>${nowPlayingText}</div>`;
|
||||
}
|
||||
|
||||
return '<div' + cssClass + '>' + nowPlayingName.text + '</div>';
|
||||
return `<div ${cssClass}>${nowPlayingText}</div>`;
|
||||
|
||||
}).join('');
|
||||
|
||||
@ -575,15 +555,25 @@ define(['require', 'datetime', 'itemHelper', 'events', 'browser', 'imageLoader',
|
||||
if (isRefreshing) {
|
||||
|
||||
var apiClient = connectionManager.getApiClient(nowPlayingItem.ServerId);
|
||||
|
||||
apiClient.getItem(apiClient.getCurrentUserId(), nowPlayingItem.Id).then(function (item) {
|
||||
|
||||
var userData = item.UserData || {};
|
||||
var likes = userData.Likes == null ? '' : userData.Likes;
|
||||
|
||||
var contextButton = document.querySelector('.btnToggleContextMenu');
|
||||
var options = {
|
||||
play: false,
|
||||
queue: false,
|
||||
positionTo: contextButton
|
||||
};
|
||||
nowPlayingUserData.innerHTML = '<button is="emby-ratingbutton" type="button" class="listItemButton mediaButton paper-icon-button-light" data-id="' + item.Id + '" data-serverid="' + item.ServerId + '" data-itemtype="' + item.Type + '" data-likes="' + likes + '" data-isfavorite="' + (userData.IsFavorite) + '"><i class="material-icons">favorite</i></button>';
|
||||
apiClient.getCurrentUser().then(function(user) {
|
||||
contextButton.addEventListener('click', function () {
|
||||
itemContextMenu.show(Object.assign({
|
||||
item: item,
|
||||
user: user
|
||||
}, options ));
|
||||
});
|
||||
});
|
||||
});
|
||||
|
||||
}
|
||||
} else {
|
||||
nowPlayingUserData.innerHTML = '';
|
||||
|
@ -44,24 +44,15 @@ define(['connectionManager', 'globalize', 'userSettings', 'apphost'], function (
|
||||
}
|
||||
|
||||
function showBlurayMessage() {
|
||||
|
||||
var message =
|
||||
'Playback of Bluray folders in this app is experimental. Some titles may not work at all. For a better experience, consider converting to mkv video files, or use an Jellyfin app with native Bluray folder support.';
|
||||
return showMessage(message, 'blurayexpirementalinfo', 'nativeblurayplayback');
|
||||
return showMessage(globalize.translate("UnsupportedPlayback"), 'blurayexpirementalinfo', 'nativeblurayplayback');
|
||||
}
|
||||
|
||||
function showDvdMessage() {
|
||||
|
||||
var message =
|
||||
'Playback of Dvd folders in this app is experimental. Some titles may not work at all. For a better experience, consider converting to mkv video files, or use an Jellyfin app with native Dvd folder support.';
|
||||
return showMessage(message, 'dvdexpirementalinfo', 'nativedvdplayback');
|
||||
return showMessage(globalize.translate("UnsupportedPlayback"), 'dvdexpirementalinfo', 'nativedvdplayback');
|
||||
}
|
||||
|
||||
function showIsoMessage() {
|
||||
|
||||
var message =
|
||||
'Playback of ISO files in this app is experimental. Some titles may not work at all. For a better experience, consider converting to mkv video files, or use an Jellyfin app with native ISO support.';
|
||||
return showMessage(message, 'isoexpirementalinfo', 'nativeisoplayback');
|
||||
return showMessage(globalize.translate("UnsupportedPlayback"), 'isoexpirementalinfo', 'nativeisoplayback');
|
||||
}
|
||||
|
||||
function ExpirementalPlaybackWarnings() {
|
||||
|
@ -1,6 +1,9 @@
|
||||
define(['events', 'datetime', 'appSettings', 'itemHelper', 'pluginManager', 'playQueueManager', 'userSettings', 'globalize', 'connectionManager', 'loading', 'apphost', 'fullscreenManager'], function (events, datetime, appSettings, itemHelper, pluginManager, PlayQueueManager, userSettings, globalize, connectionManager, loading, apphost, fullscreenManager) {
|
||||
define(['events', 'datetime', 'appSettings', 'itemHelper', 'pluginManager', 'playQueueManager', 'userSettings', 'globalize', 'connectionManager', 'loading', 'apphost', 'screenfull'], function (events, datetime, appSettings, itemHelper, pluginManager, PlayQueueManager, userSettings, globalize, connectionManager, loading, apphost, screenfull) {
|
||||
'use strict';
|
||||
|
||||
/** Delay time in ms for reportPlayback logging */
|
||||
const reportPlaybackLogDelay = 1e3;
|
||||
|
||||
function enableLocalPlaylistManagement(player) {
|
||||
|
||||
if (player.getPlaylist) {
|
||||
@ -17,7 +20,7 @@ define(['events', 'datetime', 'appSettings', 'itemHelper', 'pluginManager', 'pla
|
||||
}
|
||||
|
||||
function bindToFullscreenChange(player) {
|
||||
events.on(fullscreenManager, 'fullscreenchange', function () {
|
||||
screenfull.on('change', function () {
|
||||
events.trigger(player, 'fullscreenchange');
|
||||
});
|
||||
}
|
||||
@ -38,6 +41,12 @@ define(['events', 'datetime', 'appSettings', 'itemHelper', 'pluginManager', 'pla
|
||||
events.trigger(playbackManagerInstance, 'playerchange', [newPlayer, newTarget, previousPlayer]);
|
||||
}
|
||||
|
||||
/** Last invoked method */
|
||||
let reportPlaybackLastMethod;
|
||||
|
||||
/** Last invoke time of method */
|
||||
let reportPlaybackLastTime;
|
||||
|
||||
function reportPlayback(playbackManagerInstance, state, player, reportPlaylist, serverId, method, progressEventName) {
|
||||
|
||||
if (!serverId) {
|
||||
@ -57,7 +66,14 @@ define(['events', 'datetime', 'appSettings', 'itemHelper', 'pluginManager', 'pla
|
||||
addPlaylistToPlaybackReport(playbackManagerInstance, info, player, serverId);
|
||||
}
|
||||
|
||||
console.debug(method + '-' + JSON.stringify(info));
|
||||
const now = (new Date).getTime();
|
||||
|
||||
if (method !== reportPlaybackLastMethod || now - (reportPlaybackLastTime || 0) >= reportPlaybackLogDelay) {
|
||||
console.debug(method + '-' + JSON.stringify(info));
|
||||
reportPlaybackLastMethod = method;
|
||||
reportPlaybackLastTime = now;
|
||||
}
|
||||
|
||||
var apiClient = connectionManager.getApiClient(serverId);
|
||||
apiClient[method](info);
|
||||
}
|
||||
@ -1518,7 +1534,7 @@ define(['events', 'datetime', 'appSettings', 'itemHelper', 'pluginManager', 'pla
|
||||
return player.isFullscreen();
|
||||
}
|
||||
|
||||
return fullscreenManager.isFullScreen();
|
||||
return screenfull.isFullscreen;
|
||||
};
|
||||
|
||||
self.toggleFullscreen = function (player) {
|
||||
@ -1528,10 +1544,8 @@ define(['events', 'datetime', 'appSettings', 'itemHelper', 'pluginManager', 'pla
|
||||
return player.toggleFulscreen();
|
||||
}
|
||||
|
||||
if (fullscreenManager.isFullScreen()) {
|
||||
fullscreenManager.exitFullscreen();
|
||||
} else {
|
||||
fullscreenManager.requestFullscreen();
|
||||
if (screenfull.isEnabled) {
|
||||
screenfull.toggle();
|
||||
}
|
||||
};
|
||||
|
||||
@ -3378,7 +3392,6 @@ define(['events', 'datetime', 'appSettings', 'itemHelper', 'pluginManager', 'pla
|
||||
pluginManager.ofType('mediaplayer').map(initMediaPlayer);
|
||||
|
||||
function sendProgressUpdate(player, progressEventName, reportPlaylist) {
|
||||
|
||||
if (!player) {
|
||||
throw new Error('player cannot be null');
|
||||
}
|
||||
|
@ -1,3 +1,7 @@
|
||||
.nowPlayingPage {
|
||||
padding: 5em 0 0 0 !important;
|
||||
}
|
||||
|
||||
.nowPlayingInfoContainer {
|
||||
display: -webkit-box;
|
||||
display: -webkit-flex;
|
||||
@ -36,8 +40,30 @@
|
||||
margin: 0 0 0.5em 0.5em;
|
||||
}
|
||||
|
||||
.nowPlayingAlbum a,
|
||||
.nowPlayingArtist a {
|
||||
font-weight: normal;
|
||||
text-align: left !important;
|
||||
color: inherit !important;
|
||||
}
|
||||
|
||||
.nowPlayingButtonsContainer {
|
||||
display: flex;
|
||||
}
|
||||
|
||||
.nowPlayingInfoContainerMedia {
|
||||
text-align: left;
|
||||
margin-bottom: 1em;
|
||||
}
|
||||
|
||||
.nowPlayingPositionSlider {
|
||||
width: stretch;
|
||||
}
|
||||
|
||||
.nowPlayingPositionSliderContainer {
|
||||
margin: 0.7em 0 0.7em 1em;
|
||||
margin: 0.2em 1em 0.2em 1em;
|
||||
width: 100%;
|
||||
z-index: 0;
|
||||
}
|
||||
|
||||
.nowPlayingInfoButtons {
|
||||
@ -59,17 +85,32 @@
|
||||
}
|
||||
|
||||
.nowPlayingPageImageContainer {
|
||||
width: 20%;
|
||||
margin-right: 0.25em;
|
||||
width: 16%;
|
||||
margin-right: 1em;
|
||||
position: relative;
|
||||
-webkit-flex-shrink: 0;
|
||||
flex-shrink: 0;
|
||||
}
|
||||
|
||||
@media all and (min-width: 50em) {
|
||||
.nowPlayingPageImageContainer {
|
||||
width: 16%;
|
||||
}
|
||||
.nowPlayingPageImageContainerNoAlbum {
|
||||
width: 100%;
|
||||
position: relative;
|
||||
}
|
||||
|
||||
.nowPlayingPageImageContainerNoAlbum button {
|
||||
cursor: default;
|
||||
}
|
||||
|
||||
.nowPlayingPageImageContainerNoAlbum::after {
|
||||
content: "";
|
||||
display: block;
|
||||
padding-bottom: 100%;
|
||||
}
|
||||
|
||||
.btnPlayPause {
|
||||
font-size: xx-large;
|
||||
padding: 0;
|
||||
margin: 0;
|
||||
}
|
||||
|
||||
.nowPlayingInfoControls {
|
||||
@ -87,14 +128,15 @@
|
||||
}
|
||||
|
||||
.nowPlayingPageImage {
|
||||
display: block;
|
||||
bottom: 0;
|
||||
left: 0;
|
||||
right: 0;
|
||||
margin: 0 auto;
|
||||
width: 100%;
|
||||
-webkit-box-shadow: 0 0 1.9vh #000;
|
||||
box-shadow: 0 0 1.9vh #000;
|
||||
border: 0.1em solid #222;
|
||||
user-drag: none;
|
||||
user-select: none;
|
||||
-moz-user-select: none;
|
||||
-webkit-user-drag: none;
|
||||
@ -102,60 +144,16 @@
|
||||
-ms-user-select: none;
|
||||
}
|
||||
|
||||
@media all and (orientation: portrait) and (max-width: 50em) {
|
||||
.nowPlayingInfoContainer {
|
||||
-webkit-box-orient: vertical !important;
|
||||
-webkit-box-direction: normal !important;
|
||||
-webkit-flex-direction: column !important;
|
||||
flex-direction: column !important;
|
||||
-webkit-box-align: center;
|
||||
-webkit-align-items: center;
|
||||
align-items: center;
|
||||
}
|
||||
|
||||
.nowPlayingPageTitle {
|
||||
text-align: center;
|
||||
margin: 0.5em 0 0.75em;
|
||||
}
|
||||
|
||||
.nowPlayingPositionSliderContainer {
|
||||
margin: 0.7em 1em;
|
||||
}
|
||||
|
||||
.nowPlayingInfoButtons {
|
||||
-webkit-box-pack: center;
|
||||
-webkit-justify-content: center;
|
||||
justify-content: center;
|
||||
}
|
||||
|
||||
.nowPlayingPageImageContainer {
|
||||
width: auto;
|
||||
margin-right: 0;
|
||||
}
|
||||
|
||||
.nowPlayingInfoControls {
|
||||
margin-top: 1em;
|
||||
max-width: 100%;
|
||||
}
|
||||
|
||||
.nowPlayingPageImage {
|
||||
width: auto;
|
||||
height: 36vh;
|
||||
}
|
||||
.contextMenuList {
|
||||
padding: 1.5em 0;
|
||||
}
|
||||
|
||||
@media all and (orientation: portrait) and (max-width: 40em) {
|
||||
.nowPlayingPageImage {
|
||||
height: 30vh;
|
||||
}
|
||||
.contextMenuList a {
|
||||
color: inherit !important;
|
||||
}
|
||||
|
||||
.nowPlayingTime {
|
||||
display: flex;
|
||||
-webkit-box-align: center;
|
||||
-webkit-align-items: center;
|
||||
align-items: center;
|
||||
margin: 0 1em;
|
||||
.contextMenuList i.listItemIcon {
|
||||
font-size: x-large;
|
||||
}
|
||||
|
||||
.nowPlayingSecondaryButtons {
|
||||
@ -167,12 +165,17 @@
|
||||
align-items: center;
|
||||
-webkit-flex-wrap: wrap;
|
||||
flex-wrap: wrap;
|
||||
-webkit-box-pack: center;
|
||||
-webkit-justify-content: center;
|
||||
justify-content: center;
|
||||
-webkit-box-pack: end;
|
||||
-webkit-justify-content: flex-end;
|
||||
justify-content: flex-end;
|
||||
z-index: 0;
|
||||
}
|
||||
|
||||
@media all and (min-width: 50em) {
|
||||
@media all and (min-width: 63em) {
|
||||
.nowPlayingPage {
|
||||
padding: 8em 0 0 0 !important;
|
||||
}
|
||||
|
||||
.nowPlayingSecondaryButtons {
|
||||
-webkit-box-flex: 1;
|
||||
-webkit-flex-grow: 1;
|
||||
@ -181,6 +184,16 @@
|
||||
-webkit-justify-content: flex-end;
|
||||
justify-content: flex-end;
|
||||
}
|
||||
|
||||
.nowPlayingPageUserDataButtonsTitle {
|
||||
display: none !important;
|
||||
}
|
||||
|
||||
.playlistSectionButton,
|
||||
.nowPlayingPlaylist,
|
||||
.nowPlayingContextMenu {
|
||||
background: unset !important;
|
||||
}
|
||||
}
|
||||
|
||||
@media all and (min-width: 80em) {
|
||||
@ -189,6 +202,414 @@
|
||||
}
|
||||
}
|
||||
|
||||
@media all and (orientation: portrait) and (max-width: 47em) {
|
||||
.remoteControlContent {
|
||||
padding-left: 7.3% !important;
|
||||
padding-right: 7.3% !important;
|
||||
display: flex;
|
||||
height: 100%;
|
||||
flex-direction: column;
|
||||
}
|
||||
|
||||
.nowPlayingInfoContainer {
|
||||
-webkit-box-orient: vertical !important;
|
||||
-webkit-box-direction: normal !important;
|
||||
-webkit-flex-direction: column !important;
|
||||
flex-direction: column !important;
|
||||
-webkit-box-align: center;
|
||||
-webkit-align-items: center;
|
||||
align-items: center;
|
||||
width: 100%;
|
||||
height: calc(100% - 4.2em);
|
||||
}
|
||||
|
||||
.nowPlayingPageTitle {
|
||||
/* text-align: center; */
|
||||
margin: 0;
|
||||
}
|
||||
|
||||
.nowPlayingAlbum,
|
||||
.nowPlayingArtist {
|
||||
overflow: hidden;
|
||||
text-overflow: ellipsis;
|
||||
white-space: nowrap;
|
||||
}
|
||||
|
||||
.nowPlayingInfoContainerMedia {
|
||||
text-align: left !important;
|
||||
width: 80%;
|
||||
}
|
||||
|
||||
.nowPlayingPositionSliderContainer {
|
||||
margin: 0.2em 1em 0.2em 1em;
|
||||
}
|
||||
|
||||
.nowPlayingInfoButtons {
|
||||
/* margin: 1.5em 0 0 0; */
|
||||
-webkit-box-pack: center;
|
||||
-webkit-justify-content: center;
|
||||
justify-content: center;
|
||||
font-size: x-large;
|
||||
height: 100%;
|
||||
}
|
||||
|
||||
.nowPlayingPageImageContainer {
|
||||
width: 100%;
|
||||
margin: auto auto 0.5em;
|
||||
}
|
||||
|
||||
.nowPlayingPageImageContainerNoAlbum .cardImageContainer .cardImageIcon {
|
||||
font-size: 15em;
|
||||
color: inherit;
|
||||
}
|
||||
|
||||
.nowPlayingInfoControls {
|
||||
margin: 0.5em 0 1em 0;
|
||||
width: 100%;
|
||||
-webkit-box-pack: start !important;
|
||||
-webkit-justify-content: start !important;
|
||||
justify-content: start !important;
|
||||
}
|
||||
|
||||
.nowPlayingSecondaryButtons {
|
||||
-webkit-box-pack: center;
|
||||
-webkit-justify-content: center;
|
||||
justify-content: center;
|
||||
}
|
||||
|
||||
.nowPlayingInfoControls .nowPlayingPageUserDataButtonsTitle {
|
||||
width: 20%;
|
||||
font-size: large;
|
||||
}
|
||||
|
||||
.nowPlayingInfoControls .nowPlayingPageUserDataButtonsTitle button {
|
||||
padding-top: 0;
|
||||
padding-right: 0;
|
||||
margin-right: 0;
|
||||
float: right;
|
||||
border-radius: 0;
|
||||
}
|
||||
|
||||
.nowPlayingInfoButtons .btnRewind {
|
||||
position: absolute;
|
||||
left: 0;
|
||||
margin-left: 0;
|
||||
padding-left: 7.3%;
|
||||
font-size: smaller;
|
||||
}
|
||||
|
||||
.nowPlayingInfoButtons .btnFastForward {
|
||||
position: absolute;
|
||||
right: 0;
|
||||
margin-right: 0;
|
||||
padding-right: 7.3%;
|
||||
font-size: smaller;
|
||||
}
|
||||
|
||||
.paper-icon-button-light:hover {
|
||||
color: #fff !important;
|
||||
background-color: transparent !important;
|
||||
}
|
||||
|
||||
.btnPlayPause {
|
||||
padding: 0;
|
||||
margin: 0;
|
||||
font-size: 1.7em;
|
||||
}
|
||||
|
||||
.btnPlayPause:hover {
|
||||
background-color: transparent !important;
|
||||
}
|
||||
|
||||
.nowPlayingPageImage {
|
||||
/* width: inherit; */
|
||||
overflow-y: hidden;
|
||||
overflow: hidden;
|
||||
margin: 0 auto;
|
||||
}
|
||||
|
||||
.nowPlayingPageImage.nowPlayingPageImageAudio {
|
||||
width: 100%;
|
||||
}
|
||||
|
||||
.nowPlayingPageImageContainer.nowPlayingPageImagePoster {
|
||||
height: 50%;
|
||||
overflow: hidden;
|
||||
}
|
||||
|
||||
.nowPlayingPageImageContainer.nowPlayingPageImagePoster img {
|
||||
height: 100%;
|
||||
width: auto;
|
||||
}
|
||||
|
||||
#nowPlayingPage .playlistSection .playlist,
|
||||
#nowPlayingPage .playlistSection .contextMenu {
|
||||
position: absolute;
|
||||
top: 12.2em;
|
||||
bottom: 4.2em;
|
||||
overflow: scroll;
|
||||
padding: 0 1em;
|
||||
display: inline-block;
|
||||
left: 0;
|
||||
right: 0;
|
||||
z-index: 1000;
|
||||
}
|
||||
|
||||
.playlistSectionButton {
|
||||
position: fixed;
|
||||
bottom: 0;
|
||||
left: 0;
|
||||
height: 4.2em;
|
||||
right: 0;
|
||||
padding-left: 7.3%;
|
||||
padding-right: 7.3%;
|
||||
}
|
||||
|
||||
.playlistSectionButton .btnTogglePlaylist {
|
||||
font-size: larger;
|
||||
margin: 0;
|
||||
padding-left: 0;
|
||||
}
|
||||
|
||||
.playlistSectionButton .btnSavePlaylist {
|
||||
margin: 0;
|
||||
padding-right: 0;
|
||||
-webkit-box-flex: 1;
|
||||
-webkit-flex-grow: 1;
|
||||
flex-grow: 1;
|
||||
-webkit-box-pack: end;
|
||||
-webkit-justify-content: flex-end;
|
||||
justify-content: flex-end;
|
||||
border-radius: 0;
|
||||
}
|
||||
|
||||
.playlistSectionButton .btnToggleContextMenu {
|
||||
font-size: larger;
|
||||
margin: 0;
|
||||
padding-right: 0;
|
||||
-webkit-box-flex: 1;
|
||||
-webkit-flex-grow: 1;
|
||||
flex-grow: 1;
|
||||
-webkit-box-pack: end;
|
||||
-webkit-justify-content: flex-end;
|
||||
justify-content: flex-end;
|
||||
border-radius: 0;
|
||||
}
|
||||
|
||||
.playlistSectionButton .volumecontrol {
|
||||
width: 100%;
|
||||
}
|
||||
|
||||
.remoteControlSection {
|
||||
margin: 0;
|
||||
padding: 0 0 4.2em 0;
|
||||
}
|
||||
|
||||
.nowPlayingButtonsContainer {
|
||||
display: flex;
|
||||
height: 100%;
|
||||
flex-direction: column;
|
||||
}
|
||||
}
|
||||
|
||||
@media all and (orientation: landscape) and (max-width: 63em) {
|
||||
.remoteControlContent {
|
||||
padding-left: 4.3% !important;
|
||||
padding-right: 4.3% !important;
|
||||
display: flex;
|
||||
height: 100%;
|
||||
flex-direction: column;
|
||||
}
|
||||
|
||||
.nowPlayingInfoContainer {
|
||||
-webkit-box-orient: horizontal !important;
|
||||
-webkit-box-direction: normal !important;
|
||||
-webkit-flex-direction: row !important;
|
||||
flex-direction: row !important;
|
||||
-webkit-box-align: center;
|
||||
-webkit-align-items: center;
|
||||
align-items: center;
|
||||
width: 100%;
|
||||
height: calc(100% - 4.2em);
|
||||
}
|
||||
|
||||
.nowPlayingPageTitle {
|
||||
/* text-align: center; */
|
||||
margin: 0;
|
||||
}
|
||||
|
||||
.nowPlayingInfoContainerMedia {
|
||||
text-align: left !important;
|
||||
width: 80%;
|
||||
}
|
||||
|
||||
.nowPlayingPositionSliderContainer {
|
||||
margin: 0.2em 1em 0.2em 1em;
|
||||
}
|
||||
|
||||
.nowPlayingInfoButtons {
|
||||
/* margin: 1.5em 0 0 0; */
|
||||
-webkit-box-pack: center;
|
||||
-webkit-justify-content: center;
|
||||
justify-content: center;
|
||||
font-size: x-large;
|
||||
height: 100%;
|
||||
}
|
||||
|
||||
.nowPlayingPageImageContainer {
|
||||
width: 30%;
|
||||
margin: auto 1em auto auto;
|
||||
}
|
||||
|
||||
.nowPlayingPageImageContainerNoAlbum .cardImageContainer .cardImageIcon {
|
||||
font-size: 12em;
|
||||
color: inherit;
|
||||
}
|
||||
|
||||
.nowPlayingInfoControls {
|
||||
margin: 0.5em 0 1em 0;
|
||||
width: 100%;
|
||||
-webkit-box-pack: start !important;
|
||||
-webkit-justify-content: start !important;
|
||||
justify-content: start !important;
|
||||
}
|
||||
|
||||
.nowPlayingSecondaryButtons {
|
||||
-webkit-box-flex: 1;
|
||||
-webkit-flex-grow: 1;
|
||||
flex-grow: 1;
|
||||
-webkit-box-pack: center;
|
||||
-webkit-justify-content: center;
|
||||
justify-content: center;
|
||||
}
|
||||
|
||||
.nowPlayingInfoControls .nowPlayingPageUserDataButtonsTitle {
|
||||
width: 20%;
|
||||
font-size: large;
|
||||
}
|
||||
|
||||
.nowPlayingInfoControls .nowPlayingPageUserDataButtonsTitle button {
|
||||
padding-top: 0;
|
||||
padding-right: 0;
|
||||
margin-right: 0;
|
||||
float: right;
|
||||
border-radius: 0;
|
||||
}
|
||||
|
||||
.paper-icon-button-light:hover {
|
||||
color: #fff !important;
|
||||
background-color: transparent !important;
|
||||
}
|
||||
|
||||
.btnPlayPause {
|
||||
padding: 0;
|
||||
margin: 0;
|
||||
font-size: 1.7em;
|
||||
}
|
||||
|
||||
.btnPlayPause:hover {
|
||||
background-color: transparent !important;
|
||||
}
|
||||
|
||||
.nowPlayingPageImage {
|
||||
/* width: inherit; */
|
||||
overflow-y: hidden;
|
||||
overflow: hidden;
|
||||
margin: 0 auto;
|
||||
}
|
||||
|
||||
.nowPlayingPageImage.nowPlayingPageImageAudio {
|
||||
width: 100%;
|
||||
}
|
||||
|
||||
.nowPlayingPageImageContainer.nowPlayingPageImagePoster {
|
||||
height: 100%;
|
||||
overflow: hidden;
|
||||
}
|
||||
|
||||
.nowPlayingPageImageContainer.nowPlayingPageImagePoster img {
|
||||
height: 100%;
|
||||
width: auto;
|
||||
}
|
||||
|
||||
#nowPlayingPage .playlistSection .playlist,
|
||||
#nowPlayingPage .playlistSection .contextMenu {
|
||||
position: absolute;
|
||||
top: 7.2em;
|
||||
bottom: 4.2em;
|
||||
overflow: scroll;
|
||||
padding: 0 1em;
|
||||
display: inline-block;
|
||||
left: 0;
|
||||
right: 0;
|
||||
z-index: 1000;
|
||||
}
|
||||
|
||||
.playlistSectionButton {
|
||||
position: fixed;
|
||||
bottom: 0;
|
||||
left: 0;
|
||||
height: 4.2em;
|
||||
right: 0;
|
||||
padding-left: 4.3%;
|
||||
padding-right: 4.3%;
|
||||
}
|
||||
|
||||
.playlistSectionButton .btnTogglePlaylist {
|
||||
font-size: larger;
|
||||
margin: 0;
|
||||
padding-left: 0;
|
||||
}
|
||||
|
||||
.playlistSectionButton .btnSavePlaylist {
|
||||
margin: 0;
|
||||
padding-right: 0;
|
||||
-webkit-box-flex: 1;
|
||||
-webkit-flex-grow: 1;
|
||||
flex-grow: 1;
|
||||
-webkit-box-pack: end;
|
||||
-webkit-justify-content: flex-end;
|
||||
justify-content: flex-end;
|
||||
border-radius: 0;
|
||||
}
|
||||
|
||||
.playlistSectionButton .btnToggleContextMenu {
|
||||
font-size: larger;
|
||||
margin: 0;
|
||||
padding-right: 0;
|
||||
-webkit-box-flex: 1;
|
||||
-webkit-flex-grow: 1;
|
||||
flex-grow: 1;
|
||||
-webkit-box-pack: end;
|
||||
-webkit-justify-content: flex-end;
|
||||
justify-content: flex-end;
|
||||
border-radius: 0;
|
||||
}
|
||||
|
||||
.playlistSectionButton .volumecontrol {
|
||||
width: 100%;
|
||||
}
|
||||
|
||||
.remoteControlSection {
|
||||
margin: 4.2em 0 0 0;
|
||||
padding: 0 0 4.2em 0;
|
||||
}
|
||||
|
||||
.nowPlayingButtonsContainer {
|
||||
display: flex;
|
||||
height: 100%;
|
||||
flex-direction: column;
|
||||
}
|
||||
}
|
||||
|
||||
.nowPlayingTime {
|
||||
display: flex;
|
||||
-webkit-box-align: center;
|
||||
-webkit-align-items: center;
|
||||
align-items: center;
|
||||
margin: 0 1em;
|
||||
}
|
||||
|
||||
.nowPlayingNavButtonContainer {
|
||||
width: 30em;
|
||||
}
|
||||
@ -214,8 +635,11 @@
|
||||
width: 9em;
|
||||
}
|
||||
|
||||
@media all and (max-width: 50em) {
|
||||
.nowPlayingInfoButtons .nowPlayingPageUserDataButtons {
|
||||
@media all and (max-width: 63em) {
|
||||
.nowPlayingSecondaryButtons .nowPlayingPageUserDataButtons,
|
||||
.nowPlayingSecondaryButtons .repeatToggleButton,
|
||||
.nowPlayingInfoButtons .playlist .listItemMediaInfo,
|
||||
.nowPlayingInfoButtons .btnStop {
|
||||
display: none !important;
|
||||
}
|
||||
|
||||
@ -223,17 +647,3 @@
|
||||
font-size: 4em;
|
||||
}
|
||||
}
|
||||
|
||||
@media all and (max-width: 47em) {
|
||||
.nowPlayingInfoButtons .repeatToggleButton {
|
||||
display: none !important;
|
||||
}
|
||||
}
|
||||
|
||||
@media all and (max-width: 34em) {
|
||||
.nowPlayingInfoButtons .btnNowPlayingFastForward,
|
||||
.nowPlayingInfoButtons .btnNowPlayingRewind,
|
||||
.nowPlayingInfoButtons .playlist .listItemMediaInfo {
|
||||
display: none !important;
|
||||
}
|
||||
}
|
||||
|
@ -1,4 +1,4 @@
|
||||
define(["browser", "datetime", "backdrop", "libraryBrowser", "listView", "imageLoader", "playbackManager", "nowPlayingHelper", "events", "connectionManager", "apphost", "globalize", "layoutManager", "userSettings", "cardStyle", "emby-itemscontainer", "css!./remotecontrol.css", "emby-ratingbutton"], function (browser, datetime, backdrop, libraryBrowser, listView, imageLoader, playbackManager, nowPlayingHelper, events, connectionManager, appHost, globalize, layoutManager, userSettings) {
|
||||
define(["browser", "datetime", "backdrop", "libraryBrowser", "listView", "imageLoader", "playbackManager", "nowPlayingHelper", "events", "connectionManager", "apphost", "globalize", "layoutManager", "userSettings", "cardBuilder", "cardStyle", "emby-itemscontainer", "css!./remotecontrol.css", "emby-ratingbutton"], function (browser, datetime, backdrop, libraryBrowser, listView, imageLoader, playbackManager, nowPlayingHelper, events, connectionManager, appHost, globalize, layoutManager, userSettings, cardBuilder) {
|
||||
"use strict";
|
||||
|
||||
function showAudioMenu(context, player, button, item) {
|
||||
@ -110,49 +110,93 @@ define(["browser", "datetime", "backdrop", "libraryBrowser", "listView", "imageL
|
||||
return null;
|
||||
}
|
||||
|
||||
function updateNowPlayingInfo(context, state) {
|
||||
function updateNowPlayingInfo(context, state, serverId) {
|
||||
var item = state.NowPlayingItem;
|
||||
var displayName = item ? getNowPlayingNameHtml(item).replace("<br/>", " - ") : "";
|
||||
context.querySelector(".nowPlayingPageTitle").innerHTML = displayName;
|
||||
if (typeof item !== 'undefined') {
|
||||
var nowPlayingServerId = (item.ServerId || serverId);
|
||||
if (item.Type == "Audio" || item.MediaStreams[0].Type == "Audio") {
|
||||
var songName = item.Name;
|
||||
if (item.Album != null && item.Artists != null) {
|
||||
var albumName = item.Album;
|
||||
var artistName;
|
||||
if (item.ArtistItems != null) {
|
||||
artistName = item.ArtistItems[0].Name;
|
||||
context.querySelector(".nowPlayingAlbum").innerHTML = '<a class="button-link emby-button" is="emby-linkbutton" href="itemdetails.html?id=' + item.AlbumId + `&serverId=${nowPlayingServerId}">${albumName}</a>`;
|
||||
context.querySelector(".nowPlayingArtist").innerHTML = '<a class="button-link emby-button" is="emby-linkbutton" href="itemdetails.html?id=' + item.ArtistItems[0].Id + `&serverId=${nowPlayingServerId}">${artistName}</a>`;
|
||||
context.querySelector(".contextMenuAlbum").innerHTML = '<a class="button-link emby-button" is="emby-linkbutton" href="itemdetails.html?id=' + item.AlbumId + `&serverId=${nowPlayingServerId}"><i class="actionsheetMenuItemIcon listItemIcon listItemIcon-transparent material-icons album"></i> ` + globalize.translate("ViewAlbum") + '</a>';
|
||||
context.querySelector(".contextMenuArtist").innerHTML = '<a class="button-link emby-button" is="emby-linkbutton" href="itemdetails.html?id=' + item.ArtistItems[0].Id + `&serverId=${nowPlayingServerId}"><i class="actionsheetMenuItemIcon listItemIcon listItemIcon-transparent material-icons person"></i> ` + globalize.translate("ViewArtist") + '</a>';
|
||||
} else {
|
||||
artistName = item.Artists;
|
||||
context.querySelector(".nowPlayingAlbum").innerHTML = albumName;
|
||||
context.querySelector(".nowPlayingArtist").innerHTML = artistName;
|
||||
}
|
||||
}
|
||||
context.querySelector(".nowPlayingSongName").innerHTML = songName;
|
||||
} else if (item.Type == "Episode") {
|
||||
if (item.SeasonName != null) {
|
||||
var seasonName = item.SeasonName;
|
||||
context.querySelector(".nowPlayingSeason").innerHTML = '<a class="button-link emby-button" is="emby-linkbutton" href="itemdetails.html?id=' + item.SeasonId + `&serverId=${nowPlayingServerId}">${seasonName}</a>`;
|
||||
}
|
||||
if (item.SeriesName != null) {
|
||||
var seriesName = item.SeriesName;
|
||||
if (item.SeriesId !=null) {
|
||||
context.querySelector(".nowPlayingSerie").innerHTML = '<a class="button-link emby-button" is="emby-linkbutton" href="itemdetails.html?id=' + item.SeriesId + `&serverId=${nowPlayingServerId}">${seriesName}</a>`;
|
||||
} else {
|
||||
context.querySelector(".nowPlayingSerie").innerHTML = seriesName;
|
||||
}
|
||||
}
|
||||
context.querySelector(".nowPlayingEpisode").innerHTML = item.Name;
|
||||
} else {
|
||||
context.querySelector(".nowPlayingPageTitle").innerHTML = displayName;
|
||||
}
|
||||
|
||||
if (displayName.length > 0) {
|
||||
context.querySelector(".nowPlayingPageTitle").classList.remove("hide");
|
||||
} else {
|
||||
context.querySelector(".nowPlayingPageTitle").classList.add("hide");
|
||||
}
|
||||
if (displayName.length > 0 && item.Type != "Audio" && item.Type != "Episode") {
|
||||
context.querySelector(".nowPlayingPageTitle").classList.remove("hide");
|
||||
} else {
|
||||
context.querySelector(".nowPlayingPageTitle").classList.add("hide");
|
||||
}
|
||||
|
||||
var url = item ? seriesImageUrl(item, {
|
||||
maxHeight: 300 * 2
|
||||
}) || imageUrl(item, {
|
||||
maxHeight: 300 * 2
|
||||
}) : null;
|
||||
var url = item ? seriesImageUrl(item, {
|
||||
maxHeight: 300 * 2
|
||||
}) || imageUrl(item, {
|
||||
maxHeight: 300 * 2
|
||||
}) : null;
|
||||
|
||||
console.debug("updateNowPlayingInfo");
|
||||
setImageUrl(context, url);
|
||||
if (item) {
|
||||
backdrop.setBackdrops([item]);
|
||||
var apiClient = connectionManager.getApiClient(item.ServerId);
|
||||
apiClient.getItem(apiClient.getCurrentUserId(), item.Id).then(function (fullItem) {
|
||||
var userData = fullItem.UserData || {};
|
||||
var likes = null == userData.Likes ? "" : userData.Likes;
|
||||
context.querySelector(".nowPlayingPageUserDataButtons").innerHTML = '<button is="emby-ratingbutton" type="button" class="listItemButton paper-icon-button-light" data-id="' + fullItem.Id + '" data-serverid="' + fullItem.ServerId + '" data-itemtype="' + fullItem.Type + '" data-likes="' + likes + '" data-isfavorite="' + userData.IsFavorite + '"><i class="material-icons">favorite</i></button>';
|
||||
});
|
||||
} else {
|
||||
backdrop.clear();
|
||||
context.querySelector(".nowPlayingPageUserDataButtons").innerHTML = "";
|
||||
console.debug("updateNowPlayingInfo");
|
||||
setImageUrl(context, state, url);
|
||||
if (item) {
|
||||
backdrop.setBackdrops([item]);
|
||||
var apiClient = connectionManager.getApiClient(item.ServerId);
|
||||
apiClient.getItem(apiClient.getCurrentUserId(), item.Id).then(function (fullItem) {
|
||||
var userData = fullItem.UserData || {};
|
||||
var likes = null == userData.Likes ? "" : userData.Likes;
|
||||
context.querySelector(".nowPlayingPageUserDataButtonsTitle").innerHTML = '<button is="emby-ratingbutton" type="button" class="listItemButton paper-icon-button-light" data-id="' + fullItem.Id + '" data-serverid="' + fullItem.ServerId + '" data-itemtype="' + fullItem.Type + '" data-likes="' + likes + '" data-isfavorite="' + userData.IsFavorite + '"><i class="material-icons">favorite</i></button>';
|
||||
context.querySelector(".nowPlayingPageUserDataButtons").innerHTML = '<button is="emby-ratingbutton" type="button" class="listItemButton paper-icon-button-light" data-id="' + fullItem.Id + '" data-serverid="' + fullItem.ServerId + '" data-itemtype="' + fullItem.Type + '" data-likes="' + likes + '" data-isfavorite="' + userData.IsFavorite + '"><i class="material-icons">favorite</i></button>';
|
||||
});
|
||||
} else {
|
||||
backdrop.clear();
|
||||
context.querySelector(".nowPlayingPageUserDataButtons").innerHTML = "";
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
function setImageUrl(context, url) {
|
||||
function setImageUrl(context, state, url) {
|
||||
currentImgUrl = url;
|
||||
var item = state.NowPlayingItem;
|
||||
var imgContainer = context.querySelector(".nowPlayingPageImageContainer");
|
||||
|
||||
if (url) {
|
||||
imgContainer.innerHTML = '<img class="nowPlayingPageImage" src="' + url + '" />';
|
||||
imgContainer.classList.remove("hide");
|
||||
if (item.Type == "Audio") {
|
||||
context.querySelector(".nowPlayingPageImage").classList.add("nowPlayingPageImageAudio");
|
||||
context.querySelector(".nowPlayingPageImageContainer").classList.remove("nowPlayingPageImageAudio");
|
||||
} else {
|
||||
context.querySelector(".nowPlayingPageImageContainer").classList.add("nowPlayingPageImagePoster");
|
||||
context.querySelector(".nowPlayingPageImage").classList.remove("nowPlayingPageImageAudio");
|
||||
}
|
||||
} else {
|
||||
imgContainer.classList.add("hide");
|
||||
imgContainer.innerHTML = "";
|
||||
imgContainer.innerHTML = '<div class="nowPlayingPageImageContainerNoAlbum"><button data-action="link" class="cardContent-button cardImageContainer coveredImage ' + cardBuilder.getDefaultBackgroundClass(item.Name) + ' cardContent cardContent-shadow itemAction"><i class="cardImageIcon material-icons">album</i></button></div>';
|
||||
}
|
||||
}
|
||||
|
||||
@ -199,28 +243,35 @@ define(["browser", "datetime", "backdrop", "libraryBrowser", "listView", "imageL
|
||||
var supportedCommands = playerInfo.supportedCommands;
|
||||
currentPlayerSupportedCommands = supportedCommands;
|
||||
var playState = state.PlayState || {};
|
||||
buttonVisible(context.querySelector(".btnToggleFullscreen"), item && "Video" == item.MediaType && -1 != supportedCommands.indexOf("ToggleFullscreen"));
|
||||
var isSupportedCommands = supportedCommands.includes("DisplayMessage") || supportedCommands.includes("SendString") || supportedCommands.includes("Select");
|
||||
buttonVisible(context.querySelector(".btnToggleFullscreen"), item && "Video" == item.MediaType && supportedCommands.includes("ToggleFullscreen"));
|
||||
updateAudioTracksDisplay(player, context);
|
||||
updateSubtitleTracksDisplay(player, context);
|
||||
|
||||
if (-1 != supportedCommands.indexOf("DisplayMessage") && !currentPlayer.isLocalPlayer) {
|
||||
if (supportedCommands.includes("DisplayMessage") && !currentPlayer.isLocalPlayer) {
|
||||
context.querySelector(".sendMessageSection").classList.remove("hide");
|
||||
} else {
|
||||
context.querySelector(".sendMessageSection").classList.add("hide");
|
||||
}
|
||||
|
||||
if (-1 != supportedCommands.indexOf("SendString") && !currentPlayer.isLocalPlayer) {
|
||||
if (supportedCommands.includes("SendString") && !currentPlayer.isLocalPlayer) {
|
||||
context.querySelector(".sendTextSection").classList.remove("hide");
|
||||
} else {
|
||||
context.querySelector(".sendTextSection").classList.add("hide");
|
||||
}
|
||||
|
||||
if (-1 != supportedCommands.indexOf("Select") && !currentPlayer.isLocalPlayer) {
|
||||
if (supportedCommands.includes("Select") && !currentPlayer.isLocalPlayer) {
|
||||
context.querySelector(".navigationSection").classList.remove("hide");
|
||||
} else {
|
||||
context.querySelector(".navigationSection").classList.add("hide");
|
||||
}
|
||||
|
||||
if (isSupportedCommands && !currentPlayer.isLocalPlayer) {
|
||||
context.querySelector(".remoteControlSection").classList.remove("hide");
|
||||
} else {
|
||||
context.querySelector(".remoteControlSection").classList.add("hide");
|
||||
}
|
||||
|
||||
buttonVisible(context.querySelector(".btnStop"), null != item);
|
||||
buttonVisible(context.querySelector(".btnNextTrack"), null != item);
|
||||
buttonVisible(context.querySelector(".btnPreviousTrack"), null != item);
|
||||
@ -331,7 +382,7 @@ define(["browser", "datetime", "backdrop", "libraryBrowser", "listView", "imageL
|
||||
function updatePlayPauseState(isPaused, isActive) {
|
||||
var context = dlg;
|
||||
var btnPlayPause = context.querySelector(".btnPlayPause");
|
||||
btnPlayPause.querySelector("i").innerHTML = isPaused ? "" : "pause";
|
||||
btnPlayPause.querySelector("i").innerHTML = isPaused ? "" : "";
|
||||
buttonVisible(btnPlayPause, isActive);
|
||||
}
|
||||
|
||||
@ -374,9 +425,9 @@ define(["browser", "datetime", "backdrop", "libraryBrowser", "listView", "imageL
|
||||
});
|
||||
|
||||
if (items.length) {
|
||||
context.querySelector(".playlistSection").classList.remove("hide");
|
||||
context.querySelector(".btnTogglePlaylist").classList.remove("hide");
|
||||
} else {
|
||||
context.querySelector(".playlistSection").classList.add("hide");
|
||||
context.querySelector(".btnTogglePlaylist").classList.add("hide");
|
||||
}
|
||||
|
||||
var itemsContainer = context.querySelector(".playlist");
|
||||
@ -393,6 +444,9 @@ define(["browser", "datetime", "backdrop", "libraryBrowser", "listView", "imageL
|
||||
}
|
||||
|
||||
imageLoader.lazyChildren(itemsContainer);
|
||||
context.querySelector(".playlist").classList.add("hide");
|
||||
context.querySelector(".contextMenu").classList.add("hide");
|
||||
context.querySelector(".btnSavePlaylist").classList.add("hide");
|
||||
});
|
||||
}
|
||||
|
||||
@ -614,27 +668,25 @@ define(["browser", "datetime", "backdrop", "libraryBrowser", "listView", "imageL
|
||||
return datetime.getDisplayRunningTime(ticks);
|
||||
};
|
||||
|
||||
var volumeSliderTimer;
|
||||
|
||||
function setVolume() {
|
||||
clearTimeout(volumeSliderTimer);
|
||||
volumeSliderTimer = null;
|
||||
|
||||
playbackManager.setVolume(this.value, currentPlayer);
|
||||
}
|
||||
|
||||
function setVolumeDelayed() {
|
||||
if (!volumeSliderTimer) {
|
||||
var that = this;
|
||||
volumeSliderTimer = setTimeout(function () {
|
||||
setVolume.call(that);
|
||||
}, 700);
|
||||
}
|
||||
var contextmenuHtml = '<button id="toggleContextMenu" is="paper-icon-button-light" class="btnToggleContextMenu" title=' + globalize.translate('ButtonToggleContextMenu') + '><i class="material-icons more_vert"></i></button>';
|
||||
var volumecontrolHtml = '<div class="volumecontrol flex align-items-center flex-wrap-wrap justify-content-center">';
|
||||
volumecontrolHtml += '<button is="paper-icon-button-light" class="buttonMute autoSize" title=' + globalize.translate('Mute') + '><i class="xlargePaperIconButton material-icons"></i></button>';
|
||||
volumecontrolHtml += '<div class="sliderContainer nowPlayingVolumeSliderContainer"><input is="emby-slider" type="range" step="1" min="0" max="100" value="0" class="nowPlayingVolumeSlider"/></div>';
|
||||
volumecontrolHtml += '</div>';
|
||||
if (!layoutManager.mobile) {
|
||||
context.querySelector(".nowPlayingSecondaryButtons").innerHTML += volumecontrolHtml;
|
||||
context.querySelector(".playlistSectionButton").innerHTML += contextmenuHtml;
|
||||
} else {
|
||||
context.querySelector(".playlistSectionButton").innerHTML += volumecontrolHtml + contextmenuHtml;
|
||||
}
|
||||
|
||||
context.querySelector(".nowPlayingVolumeSlider").addEventListener("change", setVolume);
|
||||
context.querySelector(".nowPlayingVolumeSlider").addEventListener("mousemove", setVolumeDelayed);
|
||||
context.querySelector(".nowPlayingVolumeSlider").addEventListener("touchmove", setVolumeDelayed);
|
||||
context.querySelector(".nowPlayingVolumeSlider").addEventListener("mousemove", setVolume);
|
||||
context.querySelector(".nowPlayingVolumeSlider").addEventListener("touchmove", setVolume);
|
||||
context.querySelector(".buttonMute").addEventListener("click", function () {
|
||||
playbackManager.toggleMute(currentPlayer);
|
||||
});
|
||||
@ -648,6 +700,27 @@ define(["browser", "datetime", "backdrop", "libraryBrowser", "listView", "imageL
|
||||
playbackManager.movePlaylistItem(playlistItemId, newIndex, currentPlayer);
|
||||
});
|
||||
context.querySelector(".btnSavePlaylist").addEventListener("click", savePlaylist);
|
||||
context.querySelector(".btnTogglePlaylist").addEventListener("click", function () {
|
||||
if (context.querySelector(".playlist").classList.contains("hide")) {
|
||||
context.querySelector(".playlist").classList.remove("hide");
|
||||
context.querySelector(".btnSavePlaylist").classList.remove("hide");
|
||||
context.querySelector(".contextMenu").classList.add("hide");
|
||||
context.querySelector(".volumecontrol").classList.add("hide");
|
||||
} else {
|
||||
context.querySelector(".playlist").classList.add("hide");
|
||||
context.querySelector(".btnSavePlaylist").classList.add("hide");
|
||||
context.querySelector(".volumecontrol").classList.remove("hide");
|
||||
}
|
||||
});
|
||||
context.querySelector(".btnToggleContextMenu").addEventListener("click", function () {
|
||||
if (context.querySelector(".contextMenu").classList.contains("hide")) {
|
||||
context.querySelector(".contextMenu").classList.remove("hide");
|
||||
context.querySelector(".btnSavePlaylist").classList.add("hide");
|
||||
context.querySelector(".playlist").classList.add("hide");
|
||||
} else {
|
||||
context.querySelector(".contextMenu").classList.add("hide");
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
function onPlayerChange() {
|
||||
|
@ -258,6 +258,11 @@ define(['dialogHelper', 'inputManager', 'connectionManager', 'layoutManager', 'f
|
||||
direction: 'horizontal',
|
||||
// Loop is disabled due to the virtual slides option not supporting it.
|
||||
loop: false,
|
||||
zoom: {
|
||||
minRatio: 1,
|
||||
toggle: true,
|
||||
containerClass: 'slider-zoom-container'
|
||||
},
|
||||
autoplay: !options.interactive,
|
||||
keyboard: {
|
||||
enabled: true
|
||||
|
@ -41,17 +41,12 @@
|
||||
}
|
||||
|
||||
.swiper-slide-img {
|
||||
width: auto;
|
||||
height: auto;
|
||||
max-width: 100%;
|
||||
max-height: 100%;
|
||||
-ms-transform: translate(-50%, -50%);
|
||||
-webkit-transform: translate(-50%, -50%);
|
||||
-moz-transform: translate(-50%, -50%);
|
||||
transform: translate(-50%, -50%);
|
||||
position: absolute;
|
||||
left: 50%;
|
||||
top: 50%;
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
display: flex;
|
||||
justify-content: center;
|
||||
align-items: center;
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
.slideshowButtonIcon {
|
||||
@ -138,3 +133,12 @@
|
||||
.slideSubtitle {
|
||||
color: #ccc;
|
||||
}
|
||||
|
||||
.swiper-slide {
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
}
|
||||
|
||||
.slider-zoom-container {
|
||||
margin: auto;
|
||||
}
|
||||
|
@ -24,9 +24,11 @@ define(["apphost", "appSettings", "dom", "connectionManager", "loading", "layout
|
||||
page.querySelector("#txtManualPassword").value = "";
|
||||
loading.hide();
|
||||
|
||||
if (response.status === 401) {
|
||||
const UnauthorizedOrForbidden = [401, 403];
|
||||
if (UnauthorizedOrForbidden.includes(response.status)) {
|
||||
require(["toast"], function (toast) {
|
||||
toast(Globalize.translate("MessageInvalidUser"));
|
||||
const messageKey = response.status === 401 ? "MessageInvalidUser" : "MessageUnauthorizedUser";
|
||||
toast(Globalize.translate(messageKey));
|
||||
});
|
||||
} else {
|
||||
Dashboard.alert({
|
||||
|
@ -27,14 +27,10 @@ define(["globalize", "loading", "libraryMenu", "emby-checkbox", "emby-button", "
|
||||
view.querySelector("#chkSaveMetadataHidden").checked = config.SaveMetadataHidden;
|
||||
});
|
||||
ApiClient.getNamedConfiguration("metadata").then(function(metadata) {
|
||||
loadMetadataConfig(this, metadata);
|
||||
view.querySelector("#selectDateAdded").selectedIndex = metadata.UseFileCreationTimeForDateAdded ? 1 : 0;
|
||||
});
|
||||
}
|
||||
|
||||
function loadMetadataConfig(page, config) {
|
||||
$("#selectDateAdded", page).val(config.UseFileCreationTimeForDateAdded ? "1" : "0");
|
||||
}
|
||||
|
||||
view.querySelector("form").addEventListener("submit", function(e) {
|
||||
loading.show();
|
||||
var form = this;
|
||||
|
@ -336,7 +336,6 @@ define(["loading", "appRouter", "layoutManager", "connectionManager", "userSetti
|
||||
|
||||
return html = html.join(" / ");
|
||||
}
|
||||
|
||||
function renderName(item, container, isStatic, context) {
|
||||
var parentRoute;
|
||||
var parentNameHtml = [];
|
||||
@ -401,14 +400,25 @@ define(["loading", "appRouter", "layoutManager", "connectionManager", "userSetti
|
||||
} else if (item.Album) {
|
||||
parentNameHtml.push(item.Album);
|
||||
}
|
||||
|
||||
// FIXME: This whole section needs some refactoring, so it becames easier to scale across all form factors. See GH #1022
|
||||
var html = "";
|
||||
var tvShowHtml = parentNameHtml[0];
|
||||
var tvSeasonHtml = parentNameHtml[1];
|
||||
|
||||
if (parentNameHtml.length) {
|
||||
if (parentNameLast) {
|
||||
html = '<h3 class="parentName" style="margin: .25em 0;">' + parentNameHtml.join(" - ") + "</h3>";
|
||||
// Music
|
||||
if (layoutManager.mobile) {
|
||||
html = '<h3 class="parentName" style="margin: .25em 0;">' + parentNameHtml.join("</br>") + "</h3>";
|
||||
} else {
|
||||
html = '<h3 class="parentName" style="margin: .25em 0;">' + parentNameHtml.join(" - ") + "</h3>";
|
||||
}
|
||||
} else {
|
||||
html = '<h1 class="parentName" style="margin: .1em 0 .25em;">' + parentNameHtml.join(" - ") + "</h1>";
|
||||
if (layoutManager.mobile) {
|
||||
html = '<h1 class="parentName" style="margin: .1em 0 .25em;">' + parentNameHtml.join("</br>") + "</h1>";
|
||||
} else {
|
||||
html = '<h1 class="parentName" style="margin: .1em 0 .25em;">' + tvShowHtml + "</h1>";
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@ -418,13 +428,17 @@ define(["loading", "appRouter", "layoutManager", "connectionManager", "userSetti
|
||||
var offset = parentNameLast ? ".25em" : ".5em";
|
||||
|
||||
if (html && !parentNameLast) {
|
||||
html += '<h3 class="itemName infoText" style="margin: .25em 0 .5em;">' + name + '</h3>';
|
||||
if (!layoutManager.mobile && tvSeasonHtml) {
|
||||
html += '<h3 class="itemName infoText" style="margin: .25em 0 .5em;">' + tvSeasonHtml + ' - ' + name + '</h3>';
|
||||
} else {
|
||||
html += '<h3 class="itemName infoText" style="margin: .25em 0 .5em;">' + name + '</h3>';
|
||||
}
|
||||
} else {
|
||||
html = '<h1 class="itemName infoText" style="margin: .1em 0 ' + offset + ';">' + name + "</h1>" + html;
|
||||
}
|
||||
|
||||
if (item.OriginalTitle && item.OriginalTitle != item.Name) {
|
||||
html += '<h4 class="itemName infoText" style="margin: -' + offset + ' 0 0">' + item.OriginalTitle + '</h4>';
|
||||
html += '<h4 class="itemName infoText" style="margin: -' + offset + ' 0 0;">' + item.OriginalTitle + '</h4>';
|
||||
}
|
||||
|
||||
container.innerHTML = html;
|
||||
|
@ -1272,7 +1272,6 @@ define(["playbackManager", "dom", "inputManager", "datetime", "itemHelper", "med
|
||||
var programEndDateMs = 0;
|
||||
var playbackStartTimeTicks = 0;
|
||||
var subtitleSyncOverlay;
|
||||
var volumeSliderTimer;
|
||||
var nowPlayingVolumeSlider = view.querySelector(".osdVolumeSlider");
|
||||
var nowPlayingVolumeSliderContainer = view.querySelector(".osdVolumeSliderContainer");
|
||||
var nowPlayingPositionSlider = view.querySelector(".osdPositionSlider");
|
||||
@ -1423,27 +1422,15 @@ define(["playbackManager", "dom", "inputManager", "datetime", "itemHelper", "med
|
||||
}
|
||||
|
||||
function setVolume() {
|
||||
clearTimeout(volumeSliderTimer);
|
||||
volumeSliderTimer = null;
|
||||
|
||||
playbackManager.setVolume(this.value, currentPlayer);
|
||||
}
|
||||
|
||||
function setVolumeDelayed() {
|
||||
if (!volumeSliderTimer) {
|
||||
var that = this;
|
||||
volumeSliderTimer = setTimeout(function () {
|
||||
setVolume.call(that);
|
||||
}, 700);
|
||||
}
|
||||
}
|
||||
|
||||
view.querySelector(".buttonMute").addEventListener("click", function () {
|
||||
playbackManager.toggleMute(currentPlayer);
|
||||
});
|
||||
nowPlayingVolumeSlider.addEventListener("change", setVolume);
|
||||
nowPlayingVolumeSlider.addEventListener("mousemove", setVolumeDelayed);
|
||||
nowPlayingVolumeSlider.addEventListener("touchmove", setVolumeDelayed);
|
||||
nowPlayingVolumeSlider.addEventListener("mousemove", setVolume);
|
||||
nowPlayingVolumeSlider.addEventListener("touchmove", setVolume);
|
||||
|
||||
nowPlayingPositionSlider.addEventListener("change", function () {
|
||||
var player = currentPlayer;
|
||||
|
@ -113,6 +113,9 @@ define(["layoutManager", "loading", "libraryBrowser", "cardBuilder", "lazyLoader
|
||||
itemsContainer: elem,
|
||||
shape: getPortraitShape(),
|
||||
scalable: true,
|
||||
showTitle: true,
|
||||
centerText: true,
|
||||
showYear: true,
|
||||
overlayMoreButton: true,
|
||||
allowBottomPadding: false
|
||||
});
|
||||
|
16
src/elements/emby-programcell/emby-programcell.js
Normal file
16
src/elements/emby-programcell/emby-programcell.js
Normal file
@ -0,0 +1,16 @@
|
||||
define([], function() {
|
||||
'use strict';
|
||||
|
||||
var ProgramCellPrototype = Object.create(HTMLButtonElement.prototype);
|
||||
|
||||
ProgramCellPrototype.detachedCallback = function () {
|
||||
this.posLeft = null;
|
||||
this.posWidth = null;
|
||||
this.guideProgramName = null;
|
||||
};
|
||||
|
||||
document.registerElement('emby-programcell', {
|
||||
prototype: ProgramCellPrototype,
|
||||
extends: 'button'
|
||||
});
|
||||
});
|
42
src/elements/emby-progressbar/emby-progressbar.js
Normal file
42
src/elements/emby-progressbar/emby-progressbar.js
Normal file
@ -0,0 +1,42 @@
|
||||
define([], function() {
|
||||
'use strict';
|
||||
|
||||
var ProgressBarPrototype = Object.create(HTMLDivElement.prototype);
|
||||
|
||||
function onAutoTimeProgress() {
|
||||
var start = parseInt(this.getAttribute('data-starttime'));
|
||||
var end = parseInt(this.getAttribute('data-endtime'));
|
||||
|
||||
var now = new Date().getTime();
|
||||
var total = end - start;
|
||||
var pct = 100 * ((now - start) / total);
|
||||
|
||||
pct = Math.min(100, pct);
|
||||
pct = Math.max(0, pct);
|
||||
|
||||
var itemProgressBarForeground = this.querySelector('.itemProgressBarForeground');
|
||||
itemProgressBarForeground.style.width = pct + '%';
|
||||
}
|
||||
|
||||
ProgressBarPrototype.attachedCallback = function () {
|
||||
if (this.timeInterval) {
|
||||
clearInterval(this.timeInterval);
|
||||
}
|
||||
|
||||
if (this.getAttribute('data-automode') === 'time') {
|
||||
this.timeInterval = setInterval(onAutoTimeProgress.bind(this), 60000);
|
||||
}
|
||||
};
|
||||
|
||||
ProgressBarPrototype.detachedCallback = function () {
|
||||
if (this.timeInterval) {
|
||||
clearInterval(this.timeInterval);
|
||||
this.timeInterval = null;
|
||||
}
|
||||
};
|
||||
|
||||
document.registerElement('emby-progressbar', {
|
||||
prototype: ProgressBarPrototype,
|
||||
extends: 'div'
|
||||
});
|
||||
});
|
@ -92,7 +92,7 @@
|
||||
left: 0;
|
||||
bottom: 0;
|
||||
z-index: 1;
|
||||
width: 10px;
|
||||
width: 0.8em;
|
||||
}
|
||||
</style>
|
||||
</head>
|
||||
|
@ -136,7 +136,7 @@
|
||||
<div class="selectContainer selectAudioContainer hide trackSelectionFieldContainer flex-shrink-zero">
|
||||
<select is="emby-select" class="selectAudio detailTrackSelect" label=""></select>
|
||||
</div>
|
||||
<div class="selectContainer selectSubtitlesContainer hide trackSelectionFieldContainer">
|
||||
<div class="selectContainer selectSubtitlesContainer hide trackSelectionFieldContainer flex-shrink-zero">
|
||||
<select is="emby-select" class="selectSubtitles detailTrackSelect" label=""></select>
|
||||
</div>
|
||||
</form>
|
||||
|
@ -1,6 +1,12 @@
|
||||
define(["events", "appStorage"], function(events, appStorage) {
|
||||
"use strict";
|
||||
|
||||
/** Report rate limits in ms for different events */
|
||||
const reportRateLimits = {
|
||||
"timeupdate": 10000,
|
||||
"volumechange": 3000
|
||||
};
|
||||
|
||||
function redetectBitrate(instance) {
|
||||
stopBitrateDetection(instance), instance.accessToken() && !1 !== instance.enableAutomaticBitrateDetection && setTimeout(redetectBitrateInternal.bind(instance), 6e3)
|
||||
}
|
||||
@ -231,6 +237,11 @@ define(["events", "appStorage"], function(events, appStorage) {
|
||||
}
|
||||
return 0
|
||||
}
|
||||
|
||||
function cancelReportPlaybackProgressPromise(instance) {
|
||||
if (typeof instance.reportPlaybackProgressCancel === "function") instance.reportPlaybackProgressCancel();
|
||||
}
|
||||
|
||||
ApiClient.prototype.appName = function() {
|
||||
return this._appName
|
||||
}, ApiClient.prototype.setRequestHeaders = function(headers) {
|
||||
@ -1417,6 +1428,7 @@ define(["events", "appStorage"], function(events, appStorage) {
|
||||
}, ApiClient.prototype.reportPlaybackStart = function(options) {
|
||||
if (!options) throw new Error("null options");
|
||||
this.lastPlaybackProgressReport = 0, this.lastPlaybackProgressReportTicks = null, stopBitrateDetection(this);
|
||||
cancelReportPlaybackProgressPromise(this);
|
||||
var url = this.getUrl("Sessions/Playing");
|
||||
return this.ajax({
|
||||
type: "POST",
|
||||
@ -1426,25 +1438,74 @@ define(["events", "appStorage"], function(events, appStorage) {
|
||||
})
|
||||
}, ApiClient.prototype.reportPlaybackProgress = function(options) {
|
||||
if (!options) throw new Error("null options");
|
||||
var newPositionTicks = options.PositionTicks;
|
||||
if ("timeupdate" === (options.EventName || "timeupdate")) {
|
||||
var now = (new Date).getTime(),
|
||||
msSinceLastReport = now - (this.lastPlaybackProgressReport || 0);
|
||||
if (msSinceLastReport <= 1e4) {
|
||||
if (!newPositionTicks) return Promise.resolve();
|
||||
var expectedReportTicks = 1e4 * msSinceLastReport + (this.lastPlaybackProgressReportTicks || 0);
|
||||
if (Math.abs((newPositionTicks || 0) - expectedReportTicks) < 5e7) return Promise.resolve()
|
||||
}
|
||||
this.lastPlaybackProgressReport = now
|
||||
} else this.lastPlaybackProgressReport = 0;
|
||||
this.lastPlaybackProgressReportTicks = newPositionTicks;
|
||||
var url = this.getUrl("Sessions/Playing/Progress");
|
||||
return this.ajax({
|
||||
type: "POST",
|
||||
data: JSON.stringify(options),
|
||||
contentType: "application/json",
|
||||
url: url
|
||||
})
|
||||
|
||||
const eventName = options.EventName || "timeupdate";
|
||||
let reportRateLimitTime = reportRateLimits[eventName] || 0;
|
||||
|
||||
const now = (new Date).getTime();
|
||||
const msSinceLastReport = now - (this.lastPlaybackProgressReport || 0);
|
||||
const newPositionTicks = options.PositionTicks;
|
||||
|
||||
if (msSinceLastReport < reportRateLimitTime && eventName === "timeupdate" && newPositionTicks) {
|
||||
const expectedReportTicks = 1e4 * msSinceLastReport + (this.lastPlaybackProgressReportTicks || 0);
|
||||
if (Math.abs(newPositionTicks - expectedReportTicks) >= 5e7) reportRateLimitTime = 0;
|
||||
}
|
||||
|
||||
if (reportRateLimitTime < (this.reportPlaybackProgressTimeout !== undefined ? this.reportPlaybackProgressTimeout : 1e6)) {
|
||||
cancelReportPlaybackProgressPromise(this);
|
||||
}
|
||||
|
||||
this.lastPlaybackProgressOptions = options;
|
||||
|
||||
if (this.reportPlaybackProgressPromise) return Promise.resolve();
|
||||
|
||||
let instance = this;
|
||||
let promise;
|
||||
let cancelled = false;
|
||||
|
||||
let resetPromise = function () {
|
||||
if (instance.reportPlaybackProgressPromise !== promise) return;
|
||||
|
||||
delete instance.lastPlaybackProgressOptions;
|
||||
delete instance.reportPlaybackProgressTimeout;
|
||||
delete instance.reportPlaybackProgressPromise;
|
||||
delete instance.reportPlaybackProgressCancel;
|
||||
};
|
||||
|
||||
let sendReport = function (lastOptions) {
|
||||
resetPromise();
|
||||
|
||||
if (!lastOptions) throw new Error("null options");
|
||||
|
||||
instance.lastPlaybackProgressReport = (new Date).getTime();
|
||||
instance.lastPlaybackProgressReportTicks = lastOptions.PositionTicks;
|
||||
|
||||
const url = instance.getUrl("Sessions/Playing/Progress");
|
||||
return instance.ajax({
|
||||
type: "POST",
|
||||
data: JSON.stringify(lastOptions),
|
||||
contentType: "application/json",
|
||||
url: url
|
||||
});
|
||||
};
|
||||
|
||||
let delay = Math.max(0, reportRateLimitTime - msSinceLastReport);
|
||||
|
||||
promise = new Promise((resolve, reject) => setTimeout(resolve, delay)).then(() => {
|
||||
if (cancelled) return Promise.resolve();
|
||||
return sendReport(instance.lastPlaybackProgressOptions);
|
||||
}).finally(() => {
|
||||
resetPromise();
|
||||
});
|
||||
|
||||
this.reportPlaybackProgressTimeout = reportRateLimitTime;
|
||||
this.reportPlaybackProgressPromise = promise;
|
||||
this.reportPlaybackProgressCancel = function () {
|
||||
cancelled = true;
|
||||
resetPromise();
|
||||
};
|
||||
|
||||
return promise;
|
||||
}, ApiClient.prototype.reportOfflineActions = function(actions) {
|
||||
if (!actions) throw new Error("null actions");
|
||||
var url = this.getUrl("Sync/OfflineActions");
|
||||
@ -1489,6 +1550,7 @@ define(["events", "appStorage"], function(events, appStorage) {
|
||||
}, ApiClient.prototype.reportPlaybackStopped = function(options) {
|
||||
if (!options) throw new Error("null options");
|
||||
this.lastPlaybackProgressReport = 0, this.lastPlaybackProgressReportTicks = null, redetectBitrate(this);
|
||||
cancelReportPlaybackProgressPromise(this);
|
||||
var url = this.getUrl("Sessions/Playing/Stopped");
|
||||
return this.ajax({
|
||||
type: "POST",
|
||||
|
@ -1,4 +1,4 @@
|
||||
<div id="nowPlayingPage" data-role="page" class="page libraryPage nowPlayingPage noSecondaryNavPage selfBackdropPage" data-title="-" style="padding:6em 0 0!important;">
|
||||
<div id="nowPlayingPage" data-role="page" class="page libraryPage nowPlayingPage noSecondaryNavPage selfBackdropPage" data-title="-">
|
||||
|
||||
<div class="remoteControlContent padded-left padded-right">
|
||||
|
||||
@ -6,52 +6,66 @@
|
||||
<div class="nowPlayingPageImageContainer"></div>
|
||||
<div class="nowPlayingInfoControls">
|
||||
|
||||
<h2 class="nowPlayingPageTitle"></h2>
|
||||
<div class="flex">
|
||||
|
||||
<div class="nowPlayingInfoContainerMedia">
|
||||
<h2 class="nowPlayingPageTitle"></h2>
|
||||
<div style="font-weight: bold;" class="nowPlayingSongName nowPlayingEpisode"></div>
|
||||
<div class="nowPlayingAlbum nowPlayingSeason"></div>
|
||||
<div class="nowPlayingArtist nowPlayingSerie"></div>
|
||||
</div>
|
||||
<div class="nowPlayingPageUserDataButtonsTitle"></div>
|
||||
|
||||
<div class="sliderContainer nowPlayingPositionSliderContainer">
|
||||
<input type="range" is="emby-slider" pin step="1" min="0" max="100" value="0" class="nowPlayingPositionSlider" data-slider-keep-progress="true" />
|
||||
</div>
|
||||
|
||||
<div class="nowPlayingInfoButtons focuscontainer-x">
|
||||
<button is="paper-icon-button-light" class="btnPreviousTrack btnPlayStateCommand autoSize" title="${ButtonPreviousTrack}">
|
||||
<i class="material-icons skip_previous"></i>
|
||||
</button>
|
||||
<div class="sliderContainer flex">
|
||||
<div class="positionTime"></div>
|
||||
<div class="nowPlayingPositionSliderContainer">
|
||||
<input type="range" is="emby-slider" pin step="1" min="0" max="100" value="0" class="nowPlayingPositionSlider" data-slider-keep-progress="true" />
|
||||
</div>
|
||||
<div class="runtime"></div>
|
||||
</div>
|
||||
|
||||
<button is="paper-icon-button-light" class="btnRewind btnNowPlayingRewind btnPlayStateCommand autoSize" title="${Rewind}">
|
||||
<i class="material-icons fast_rewind"></i>
|
||||
</button>
|
||||
<div class="nowPlayingButtonsContainer">
|
||||
|
||||
<button is="paper-icon-button-light" class="btnPlayPause btnPlayStateCommand autoSize" title="${ButtonPause}">
|
||||
<i class="material-icons">pause</i>
|
||||
</button>
|
||||
<div class="nowPlayingInfoButtons focuscontainer-x">
|
||||
|
||||
<button is="paper-icon-button-light" class="btnPlayStateCommand btnStop autoSize" title="${ButtonStop}">
|
||||
<i class="material-icons">stop</i>
|
||||
</button>
|
||||
<button is="paper-icon-button-light" class="btnRewind btnNowPlayingRewind btnPlayStateCommand autoSize" title="${Rewind}">
|
||||
<i class="material-icons replay_10"></i>
|
||||
</button>
|
||||
|
||||
<button is="paper-icon-button-light" class="btnPlayStateCommand btnFastForward btnNowPlayingFastForward autoSize" title="${FastForward}">
|
||||
<i class="material-icons fast_forward"></i>
|
||||
</button>
|
||||
<button is="paper-icon-button-light" class="btnPreviousTrack btnPlayStateCommand autoSize" title="${ButtonPreviousTrack}">
|
||||
<i class="material-icons skip_previous"></i>
|
||||
</button>
|
||||
|
||||
<button is="paper-icon-button-light" class="btnPlayStateCommand btnNextTrack autoSize" title="${ButtonNextTrack}">
|
||||
<i class="material-icons skip_next"></i>
|
||||
</button>
|
||||
<button is="paper-icon-button-light" class="btnPlayPause btnPlayStateCommand autoSize" title="${ButtonPause}">
|
||||
<i class="material-icons">pause</i>
|
||||
</button>
|
||||
|
||||
<button is="paper-icon-button-light" class="btnAudioTracks videoButton btnPlayStateCommand autoSize" title="${ButtonAudioTracks}" data-command="GoToSearch">
|
||||
<i class="material-icons">audiotrack</i>
|
||||
</button>
|
||||
<button is="paper-icon-button-light" class="btnPlayStateCommand btnStop autoSize" title="${ButtonStop}">
|
||||
<i class="material-icons">stop</i>
|
||||
</button>
|
||||
|
||||
<button is="paper-icon-button-light" class="btnSubtitles videoButton btnPlayStateCommand autoSize" title="${ButtonSubtitles}" data-command="GoToSearch">
|
||||
<i class="material-icons closed_caption"></i>
|
||||
</button>
|
||||
<button is="paper-icon-button-light" class="btnPlayStateCommand btnNextTrack autoSize" title="${ButtonNextTrack}">
|
||||
<i class="material-icons skip_next"></i>
|
||||
</button>
|
||||
|
||||
<button is="paper-icon-button-light" class="btnPlayStateCommand btnFastForward btnNowPlayingFastForward autoSize" title="${FastForward}">
|
||||
<i class="material-icons forward_30"></i>
|
||||
</button>
|
||||
|
||||
<div class="nowPlayingTime">
|
||||
<div class="positionTime"></div>
|
||||
<div style="margin: 0 .25em;">/</div>
|
||||
<div class="runtime"></div>
|
||||
</div>
|
||||
|
||||
<div class="nowPlayingSecondaryButtons">
|
||||
|
||||
<button is="paper-icon-button-light" class="btnAudioTracks videoButton btnPlayStateCommand autoSize" title="${ButtonAudioTracks}" data-command="GoToSearch">
|
||||
<i class="material-icons">audiotrack</i>
|
||||
</button>
|
||||
|
||||
<button is="paper-icon-button-light" class="btnSubtitles videoButton btnPlayStateCommand autoSize" title="${ButtonSubtitles}" data-command="GoToSearch">
|
||||
<i class="material-icons closed_caption"></i>
|
||||
</button>
|
||||
|
||||
<div class="nowPlayingPageUserDataButtons"></div>
|
||||
|
||||
<button is="paper-icon-button-light" class="btnToggleFullscreen videoButton btnPlayStateCommand autoSize" title="${ButtonFullscreen}" data-command="ToggleFullscreen">
|
||||
@ -62,17 +76,11 @@
|
||||
<i class="material-icons">repeat</i>
|
||||
</button>
|
||||
|
||||
<button is="paper-icon-button-light" class="buttonMute autoSize" title="${Mute}">
|
||||
<i class="xlargePaperIconButton material-icons"></i>
|
||||
</button>
|
||||
<div class="sliderContainer nowPlayingVolumeSliderContainer">
|
||||
<input is="emby-slider" type="range" step="1" min="0" max="100" value="0" class="nowPlayingVolumeSlider" />
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div>
|
||||
<div class="remoteControlSection">
|
||||
<div class="navigationSection">
|
||||
<div is="emby-collapse" title="${HeaderNavigation}">
|
||||
<div class="collapseContent">
|
||||
@ -120,8 +128,6 @@
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div>
|
||||
<div class="sendMessageSection">
|
||||
<div is="emby-collapse" title="${HeaderSendMessage}">
|
||||
<div class="collapseContent" style="text-align: left;">
|
||||
@ -155,21 +161,22 @@
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<br />
|
||||
<div class="playlistSection hide">
|
||||
<div style="display: flex; align-items: center;margin:2em 0 1em">
|
||||
<h2 style="margin:0;">${TabPlaylist}</h2>
|
||||
<button is="paper-icon-button-light" class="btnSavePlaylist" title="${ButtonSave}" style="margin-left:1em;">
|
||||
<i class="material-icons">save</i>
|
||||
<div class="playlistSection">
|
||||
<div class="playlistSectionButton flex align-items-center justify-content-center">
|
||||
<button id="togglePlaylist" is="paper-icon-button-light" class="btnTogglePlaylist" title="${ButtonTogglePlaylist}">
|
||||
<i class="material-icons queue_music"></i>
|
||||
</button>
|
||||
<button is="paper-icon-button-light" class="btnSavePlaylist" title="${ButtonSave}">
|
||||
<i class="material-icons save"></i>
|
||||
</button>
|
||||
</div>
|
||||
<div class="playlist itemsContainer vertical-list" is="emby-itemscontainer" data-dragreorder="true">
|
||||
<div id="playlist" class="playlist itemsContainer vertical-list nowPlayingPlaylist hide" is="emby-itemscontainer" data-dragreorder="true"></div>
|
||||
<div id="contextMenu" class="contextMenu itemsContainer vertical-list nowPlayingContextMenu hide" is="emby-itemscontainer">
|
||||
<div class="listItem listItem-border contextMenuList contextMenuArtist">
|
||||
</div>
|
||||
<div class="listItem listItem-border contextMenuList contextMenuAlbum">
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<br />
|
||||
<br />
|
||||
<br />
|
||||
<br />
|
||||
</div>
|
||||
</div>
|
||||
|
@ -77,10 +77,10 @@ define([], function () {
|
||||
var camel = prop.replace(/-([a-z]|[0-9])/ig, function (all, letter) {
|
||||
return (letter + '').toUpperCase();
|
||||
});
|
||||
// Check if the property is supported
|
||||
var support = (camel in el.style);
|
||||
// Create test element
|
||||
var el = document.createElement('div');
|
||||
// Check if the property is supported
|
||||
var support = (camel in el.style);
|
||||
// Assign the property and value to invoke
|
||||
// the CSS interpreter
|
||||
el.style.cssText = prop + ':' + value;
|
||||
|
@ -14,6 +14,7 @@ import browser from 'browser';
|
||||
case "Kodi":
|
||||
return baseUrl + "kodi.svg";
|
||||
case "Jellyfin Android":
|
||||
case "Android TV":
|
||||
return baseUrl + "android.svg";
|
||||
case "Jellyfin Web":
|
||||
switch (device.Name || device.DeviceName) {
|
||||
|
@ -235,6 +235,9 @@ import appHost from 'apphost';
|
||||
}
|
||||
}
|
||||
|
||||
// Alias for backward compatibility
|
||||
export const trigger = handleCommand;
|
||||
|
||||
dom.addEventListener(document, 'click', notify, {
|
||||
passive: true
|
||||
});
|
||||
|
@ -73,7 +73,7 @@ define(["dom", "layoutManager", "inputManager", "connectionManager", "events", "
|
||||
}
|
||||
|
||||
if (user && user.localUser) {
|
||||
if (headerHomeButton && !layoutManager.mobile) {
|
||||
if (headerHomeButton) {
|
||||
headerHomeButton.classList.remove("hide");
|
||||
}
|
||||
|
||||
|
@ -588,7 +588,7 @@ var AppInfo = {};
|
||||
}
|
||||
}
|
||||
|
||||
require(["playerSelectionMenu", "fullscreenManager"]);
|
||||
require(["playerSelectionMenu"]);
|
||||
|
||||
var apiClient = window.ConnectionManager && window.ConnectionManager.currentApiClient();
|
||||
if (apiClient) {
|
||||
@ -706,7 +706,8 @@ var AppInfo = {};
|
||||
"polyfill",
|
||||
"fast-text-encoding",
|
||||
"intersection-observer",
|
||||
"classlist-polyfill"
|
||||
"classlist-polyfill",
|
||||
"screenfull"
|
||||
]
|
||||
},
|
||||
urlArgs: urlArgs,
|
||||
@ -780,6 +781,15 @@ var AppInfo = {};
|
||||
define("emby-slider", [elementsPath + "/emby-slider/emby-slider"], returnFirstDependency);
|
||||
define("emby-textarea", [elementsPath + "/emby-textarea/emby-textarea"], returnFirstDependency);
|
||||
define("emby-toggle", [elementsPath + "/emby-toggle/emby-toggle"], returnFirstDependency);
|
||||
define("emby-scroller", [elementsPath + "/emby-scroller/emby-scroller"], returnFirstDependency);
|
||||
define("emby-tabs", [elementsPath + "/emby-tabs/emby-tabs"], returnFirstDependency);
|
||||
define("emby-scrollbuttons", [elementsPath + "/emby-scrollbuttons/emby-scrollbuttons"], returnFirstDependency);
|
||||
define("emby-itemrefreshindicator", [elementsPath + "/emby-itemrefreshindicator/emby-itemrefreshindicator"], returnFirstDependency);
|
||||
define("emby-itemscontainer", [elementsPath + "/emby-itemscontainer/emby-itemscontainer"], returnFirstDependency);
|
||||
define("emby-playstatebutton", [elementsPath + "/emby-playstatebutton/emby-playstatebutton"], returnFirstDependency);
|
||||
define("emby-ratingbutton", [elementsPath + "/emby-ratingbutton/emby-ratingbutton"], returnFirstDependency);
|
||||
define("emby-progressbar", [elementsPath + "/emby-progressbar/emby-progressbar"], returnFirstDependency);
|
||||
define("emby-programcell", [elementsPath + "/emby-programcell/emby-programcell"], returnFirstDependency);
|
||||
|
||||
define("webSettings", [scriptsPath + "/settings/webSettings"], returnFirstDependency);
|
||||
define("appSettings", [scriptsPath + "/settings/appSettings"], returnFirstDependency);
|
||||
@ -798,12 +808,7 @@ var AppInfo = {};
|
||||
define("playerSettingsMenu", [componentsPath + "/playback/playersettingsmenu"], returnFirstDependency);
|
||||
define("playMethodHelper", [componentsPath + "/playback/playmethodhelper"], returnFirstDependency);
|
||||
define("brightnessOsd", [componentsPath + "/playback/brightnessosd"], returnFirstDependency);
|
||||
define("emby-itemscontainer", [componentsPath + "/emby-itemscontainer/emby-itemscontainer"], returnFirstDependency);
|
||||
define("alphaNumericShortcuts", [componentsPath + "/alphanumericshortcuts/alphanumericshortcuts"], returnFirstDependency);
|
||||
define("emby-scroller", [componentsPath + "/emby-scroller/emby-scroller"], returnFirstDependency);
|
||||
define("emby-tabs", [componentsPath + "/emby-tabs/emby-tabs"], returnFirstDependency);
|
||||
define("emby-scrollbuttons", [componentsPath + "/emby-scrollbuttons/emby-scrollbuttons"], returnFirstDependency);
|
||||
define("emby-itemrefreshindicator", [componentsPath + "/emby-itemrefreshindicator/emby-itemrefreshindicator"], returnFirstDependency);
|
||||
define("multiSelect", [componentsPath + "/multiselect/multiselect"], returnFirstDependency);
|
||||
define("alphaPicker", [componentsPath + "/alphapicker/alphapicker"], returnFirstDependency);
|
||||
define("tabbedView", [componentsPath + "/tabbedview/tabbedview"], returnFirstDependency);
|
||||
@ -830,8 +835,6 @@ var AppInfo = {};
|
||||
define("searchFields", [componentsPath + "/search/searchfields"], returnFirstDependency);
|
||||
define("searchResults", [componentsPath + "/search/searchresults"], returnFirstDependency);
|
||||
define("upNextDialog", [componentsPath + "/upnextdialog/upnextdialog"], returnFirstDependency);
|
||||
define("fullscreen-doubleclick", [componentsPath + "/fullscreen/fullscreen-dc"], returnFirstDependency);
|
||||
define("fullscreenManager", [componentsPath + "/fullscreenManager", "events"], returnFirstDependency);
|
||||
define("subtitleAppearanceHelper", [componentsPath + "/subtitlesettings/subtitleappearancehelper"], returnFirstDependency);
|
||||
define("subtitleSettings", [componentsPath + "/subtitlesettings/subtitlesettings"], returnFirstDependency);
|
||||
define("displaySettings", [componentsPath + "/displaysettings/displaysettings"], returnFirstDependency);
|
||||
@ -860,8 +863,6 @@ var AppInfo = {};
|
||||
define("objectassign", [componentsPath + "/polyfills/objectassign"], returnFirstDependency);
|
||||
define("focusPreventScroll", [componentsPath + "/polyfills/focusPreventScroll"], returnFirstDependency);
|
||||
define("userdataButtons", [componentsPath + "/userdatabuttons/userdatabuttons"], returnFirstDependency);
|
||||
define("emby-playstatebutton", [componentsPath + "/userdatabuttons/emby-playstatebutton"], returnFirstDependency);
|
||||
define("emby-ratingbutton", [componentsPath + "/userdatabuttons/emby-ratingbutton"], returnFirstDependency);
|
||||
define("listView", [componentsPath + "/listview/listview"], returnFirstDependency);
|
||||
define("indicators", [componentsPath + "/indicators/indicators"], returnFirstDependency);
|
||||
define("viewSettings", [componentsPath + "/viewsettings/viewsettings"], returnFirstDependency);
|
||||
|
@ -872,5 +872,11 @@
|
||||
"CancelSeries": "Откажи сериите",
|
||||
"CancelRecording": "Откажи записа",
|
||||
"ButtonSplit": "Раздели",
|
||||
"ButtonResetEasyPassword": "Нулиране на бързия ПИН код"
|
||||
"ButtonResetEasyPassword": "Нулиране на бързия ПИН код",
|
||||
"ButtonRevoke": "Отмени",
|
||||
"ButtonEditOtherUserPreferences": "Редакция на потребителския профил, изображение и лични предпочитания.",
|
||||
"BoxRear": "Комплект (стар)",
|
||||
"BoxSet": "Комплект",
|
||||
"AuthProviderHelp": "Избор на доставчик на услуга за Автентификация, която ще се използва за автентификация на потребителската парола.",
|
||||
"AllowedRemoteAddressesHelp": "Списък с IP адреси или IP/маска записи, разделени със запетая, които ще имат отдалечен достъп. Ако полето не е попълнено всички адреси ще имат отдалечен достъп."
|
||||
}
|
||||
|
@ -732,7 +732,7 @@
|
||||
"XmlTvNewsCategoriesHelp": "Els programes amb aquestes categories es mostraran com a programes de notícies. Separa'n varis emprant '|'.",
|
||||
"XmlTvSportsCategoriesHelp": "Els programes amb aquestes categories es mostraran com a programes esportius. Separa'n varis emprant '|'.",
|
||||
"Books": "Llibres",
|
||||
"Folders": "Directoris",
|
||||
"Folders": "Carpetes",
|
||||
"Photos": "Fotos",
|
||||
"Shows": "Programes",
|
||||
"Songs": "Cançons",
|
||||
@ -741,7 +741,7 @@
|
||||
"Channels": "Canals",
|
||||
"Collections": "Col·leccions",
|
||||
"Favorites": "Preferits",
|
||||
"HeaderAlbumArtists": "Artistes dels Àlbums",
|
||||
"HeaderAlbumArtists": "Artistes del Àlbum",
|
||||
"HeaderFavoriteAlbums": "Àlbums Preferits",
|
||||
"HeaderFavoriteArtists": "Artistes Preferits",
|
||||
"HeaderFavoriteEpisodes": "Episodis Preferits",
|
||||
|
@ -1575,8 +1575,8 @@
|
||||
"Track": "Stopa",
|
||||
"Season": "Sezóna",
|
||||
"ReleaseGroup": "Vydavatel",
|
||||
"PreferEmbeddedEpisodeInfosOverFileNames": "Preferovat vložené informace o epizodě před názvy souborů",
|
||||
"PreferEmbeddedEpisodeInfosOverFileNamesHelp": "Používá se informace o epizodě z vložených metadat, pokud jsou k dispozici.",
|
||||
"PreferEmbeddedEpisodeInfosOverFileNames": "Preferovat vloženou informaci o epizodě před názvem souboru",
|
||||
"PreferEmbeddedEpisodeInfosOverFileNamesHelp": "Používat informaci o epizodě z vložených metadat, pokud jsou k dispozici.",
|
||||
"Person": "Osoba",
|
||||
"OtherArtist": "Ostatní interpreti",
|
||||
"Movie": "Film",
|
||||
@ -1597,10 +1597,11 @@
|
||||
"PathNotFound": "Cesta nebyla nalezena. Zkontrolujte, zda je platná a zkuste to znovu.",
|
||||
"WeeklyAt": "V {0} v {1}",
|
||||
"LastSeen": "Naposledy zobrazené {0}",
|
||||
"YadifBob": "Yadif Bob",
|
||||
"Yadif": "Yadif",
|
||||
"YadifBob": "YADIF Bob",
|
||||
"Yadif": "YADIF",
|
||||
"LabelLibraryPageSizeHelp": "Určuje počet položek k zobrazení na stránce knihovny. Nastavte na 0 pro vypnutí stránkování.",
|
||||
"LabelLibraryPageSize": "Velikost stránky knihovny:",
|
||||
"LabelDeinterlaceMethod": "Metoda odstranění prokládání:",
|
||||
"DeinterlaceMethodHelp": "Vyberte metodu odstranění prokládání obrazu při překódování obsahu."
|
||||
"DeinterlaceMethodHelp": "Vyberte metodu odstranění prokládání obrazu při překódování obsahu.",
|
||||
"UnsupportedPlayback": "Jellyfin nemůže dešifrovat obsah chráněný technologií DRM, ale pokusí se zobrazit o veškerý obsah, včetně chráněných titulů. Některé soubory se mohou zdát úplně černé kvůli šifrování nebo jiným nepodporovaným funkcím, jako jsou například interaktivní funkce."
|
||||
}
|
||||
|
@ -29,7 +29,7 @@
|
||||
"BirthDateValue": "Født: {0}",
|
||||
"BirthLocation": "Fødselslokation",
|
||||
"BirthPlaceValue": "Fødselssted: {0}",
|
||||
"BookLibraryHelp": "Lyd- og tekstbøger er understøttet. Se {0}Jellyfins guide til navngivning af bøger{1}.",
|
||||
"BookLibraryHelp": "Lyd- og tekstbøger er understøttet. Se {0}bog guide til navngivning af bøger{1}.",
|
||||
"Browse": "Gennemse",
|
||||
"BrowsePluginCatalogMessage": "Gennemse vores plugin-katalog for at se tilgængelige plugins.",
|
||||
"ButtonAdd": "Tilføj",
|
||||
@ -53,7 +53,7 @@
|
||||
"ButtonEdit": "Rediger",
|
||||
"ButtonEditImages": "Rediger billeder",
|
||||
"ButtonEditOtherUserPreferences": "Rediger denne brugers profil, billede og personlige indstillinger.",
|
||||
"ButtonForgotPassword": "Glemt adgangskode",
|
||||
"ButtonForgotPassword": "Glemt Adgangskode",
|
||||
"ButtonFullscreen": "Fuld skærm",
|
||||
"ButtonGotIt": "Forstået",
|
||||
"ButtonHelp": "Hjælp",
|
||||
@ -136,30 +136,30 @@
|
||||
"DoNotRecord": "Optag ikke",
|
||||
"Download": "Hent",
|
||||
"DrmChannelsNotImported": "Kanaler med DRM importeres ikke.",
|
||||
"EasyPasswordHelp": "Din pinkode bruges til offline adgang til understøttede Jellyfin apps, og kan også bruges til nemt login inden for eget netværk.",
|
||||
"EasyPasswordHelp": "Din nemme pin-kode bruges til offline adgang på understøttede klienter og kan også bruges til nem login på netværket.",
|
||||
"Edit": "Rediger",
|
||||
"EditImages": "Rediger billeder",
|
||||
"EditSubtitles": "Rediger undertekster",
|
||||
"EnableCinemaMode": "Aktiver biograftilstand",
|
||||
"EnableColorCodedBackgrounds": "Aktiver farvekodet baggrunde",
|
||||
"EnableCinemaMode": "Aktiver Biograftilstand",
|
||||
"EnableColorCodedBackgrounds": "Aktiver Farvekodet baggrunde",
|
||||
"EnableHardwareEncoding": "Aktiver hardware indkoding",
|
||||
"EnablePhotos": "Aktiver fotos",
|
||||
"EnablePhotosHelp": "Fotos bliver opdaget og vist sammen med andre mediefiler.",
|
||||
"EnablePhotos": "Vis fotoer",
|
||||
"EnablePhotosHelp": "Billeder registreres og vises sammen med andre mediefiler.",
|
||||
"EnableStreamLooping": "Auto-gentag live streams",
|
||||
"EnableStreamLoopingHelp": "Aktiver dette hvis live streams kun indeholder få sekunders data og skal efterspørgsel hele tiden. Aktivering af dette uden det er nødvendigt kan forårsage problemer.",
|
||||
"Ended": "Færdig",
|
||||
"EndsAtValue": "Slutter {0}",
|
||||
"ErrorAddingListingsToSchedulesDirect": "Der opstod en fejl under tilføjelse af opstilling til din Schedules Direct-konto. Schedules Direct tillader kun et begrænset antal opstillinger pr. konto. Du bliver muligvis nød til at logge på Schedules Direct-hjemmesiden og fjerne andre lister fra din konto for at fortsætte.",
|
||||
"ErrorAddingListingsToSchedulesDirect": "Der opstod en fejl ved tilføjelse af lineup til din Schedules Direct-konto. Schedules Direct tillader kun et begrænset antal opstillinger pr. Konto. Det kan være nødvendigt at du logger ind på Schedules Direct-webstedet og fjerner andre lister fra din konto, før du fortsætter.",
|
||||
"ErrorAddingMediaPathToVirtualFolder": "Der opstod en fejl under tilføjelse af mediesti. Kontroller venligst at stien er gyldig og at Jellyfin Server-processen har adgang til denne lokation.",
|
||||
"ErrorAddingTunerDevice": "Der opstod en fejl under tilføjelse af tuner-enhed. Kontroller venligst at den er tilgængelig og prøv igen.",
|
||||
"ErrorAddingXmlTvFile": "Der opstod en fejl under tilgang til XmlTV-filen. Kontroller venligst at filen findes og prøv igen.",
|
||||
"ErrorGettingTvLineups": "Der opstod en fejl under download af tv-opstillinger. Kontroller venligst at dine informationer er korrekte og prøv igen.",
|
||||
"ErrorAddingXmlTvFile": "Der opstod en fejl under tilgang til XMLTV-filen. Kontroller venligst at filen findes og prøv igen.",
|
||||
"ErrorGettingTvLineups": "Der opstod en fejl under download af TV-opstillinger. Kontroller venligst at dine informationer er korrekte og prøv igen.",
|
||||
"ErrorMessageStartHourGreaterThanEnd": "Slut tid skal være større end start tid.",
|
||||
"ErrorPleaseSelectLineup": "Vælg venligst en opstilling og prøv igen. Hvis ingen opstillinger er tilgængelige, så kontroller venligst at dit brugernavn, adgangskode og postnummer er korrekt.",
|
||||
"ErrorSavingTvProvider": "Der opstod en fejl i forsøget på at gemme udbyder. Kontroller venligst at den er tilgængelig og prøv igen.",
|
||||
"EveryNDays": "Hver {0} dage",
|
||||
"ExitFullscreen": "Afslut fuldskærm",
|
||||
"ExtractChapterImagesHelp": "Udvinding af kapitelbilleder lader Jellyfin apps vise grafiske menuer for scenevalg. Processen kan være langsom, cpu-intensiv og kræver muligvis adskillige gigabytes af lagerplads. Den køres når videoer opdages og desuden som en planlagt opgave, natligt. Den planlagte opgave kan konfigureres i området for planlagte opgaver. Det anbefales ikke at køre denne opgave under timer med spidsbelastning.",
|
||||
"ExtractChapterImagesHelp": "Udtrækning af kapitelbilleder giver klienter mulighed for at vise grafiske scenevalgmenuer. Processen kan være langsom, ressourcekrævende og kan kræve flere gigabyte plads. Det kører, når videoer opdages, og også som en planlagt nat opgave. Skemaet kan konfigureres i det planlagte opgaverområde. Det anbefales ikke at køre denne opgave i de mest brugte timer.",
|
||||
"FFmpegSavePathNotFound": "Vi er ikke i stand til at finde FFmpeg via stien du har angivet. FFprobe er også påkrævet og skal findes i samme mappe. Disse komponenter er som regel pakket i den samme download. Kontroller venligst stien og prøv igen.",
|
||||
"FastForward": "Spol fremad",
|
||||
"Favorite": "Favorit",
|
||||
@ -170,9 +170,9 @@
|
||||
"FolderTypeBooks": "Bøger",
|
||||
"FolderTypeMovies": "Film",
|
||||
"FolderTypeMusic": "Musik",
|
||||
"FolderTypeMusicVideos": "Musikvideoer",
|
||||
"FolderTypeMusicVideos": "Musik Videoer",
|
||||
"FolderTypeTvShows": "TV",
|
||||
"FolderTypeUnset": "Ikke valgt (blandet indhold)",
|
||||
"FolderTypeUnset": "Blandet Indhold",
|
||||
"Friday": "Fredag",
|
||||
"Fullscreen": "Fuldskærm",
|
||||
"General": "Generel",
|
||||
@ -183,7 +183,7 @@
|
||||
"H264CrfHelp": "Den Konstante Ratefaktor (CRF) er standardindstillingen for X264-koderen. Du kan sætte værdien i mellem 0 og 51, hvor de lavere værdier resulterer i bedre kvalitet (på bekostning af større filstørrelser). Fornuftige værdier er i mellem 18 og 28. Standarden for X264 er 23, så du kan bruge dette som udgangspunkt.",
|
||||
"EncoderPresetHelp": "Vælg en hurtigere værdi for at forbedre ydeevne, eller en langsommere værdi for at forbedre kvalitet.",
|
||||
"HDPrograms": "HD-programmer",
|
||||
"HardwareAccelerationWarning": "Aktivering af hardwareacceleration kan forårsage ustabilitet i nogle miljøer. Kontroller at dit operativsystem og videodriver er ajourført. Hvis du har problemer med at afspille video efter aktivering af dette, bliver du nød til at skifte tilbage til Auto.",
|
||||
"HardwareAccelerationWarning": "Aktivering af hardwareacceleration kan forårsage ustabilitet i nogle miljøer. Kontroller at dit operativsystem og videodriver er opdateret. Hvis du har problemer med at afspille video efter aktivering af dette, bliver du nød til at skifte tilbage til Ingen.",
|
||||
"HeaderAccessSchedule": "Adgangsskema",
|
||||
"HeaderAccessScheduleHelp": "Skab et adgangsskema for at begrænse adgangen til bestemte tidsrum.",
|
||||
"HeaderActiveDevices": "Aktive enheder",
|
||||
@ -197,9 +197,9 @@
|
||||
"HeaderAdditionalParts": "Andre stier",
|
||||
"HeaderAlert": "Advarsel",
|
||||
"HeaderAllowMediaDeletionFrom": "Tillad Media Sletning Fra",
|
||||
"HeaderApiKey": "API nøgle",
|
||||
"HeaderApiKeys": "API nøgler",
|
||||
"HeaderApiKeysHelp": "Eksterne applikationer skal have en API nøgle for at kunne kommunikere med Jellyfin. Nøgler udstedes ved at logge ind med en Jellyfin konto, eller ved manuelt at tildele applikationen en nøgle.",
|
||||
"HeaderApiKey": "API Nøgle",
|
||||
"HeaderApiKeys": "API Nøgler",
|
||||
"HeaderApiKeysHelp": "Eksterne applikationer skal have en API-nøgle for at kunne kommunikere med Jellyfin. Nøgler udstedes ved at logge ind med en Jellyfin konto, eller ved manuelt at tildele applikationen en nøgle.",
|
||||
"HeaderAudioSettings": "Lydindstillinger",
|
||||
"HeaderAutomaticUpdates": "Automatiske opdateringer",
|
||||
"HeaderBlockItemsWithNoRating": "Klokér titler uden eller med ukendt bedømmelses information:",
|
||||
@ -266,7 +266,7 @@
|
||||
"HeaderItems": "Element",
|
||||
"HeaderKeepRecording": "Bevar Optagelse",
|
||||
"HeaderKeepSeries": "Bevar Serie",
|
||||
"HeaderKodiMetadataHelp": "For at aktivere NFO metadata, rediger et bibliotek i Jellyfin biblioteks redigering og find metadata gemmer sektionen.",
|
||||
"HeaderKodiMetadataHelp": "For at aktivere eller deaktivere NFO-metadata skal du redigere et bibliotek i Jellyfin-biblioteksopsætningen og finde afsnittet om metadata.",
|
||||
"HeaderLatestEpisodes": "Sidste episoder",
|
||||
"HeaderLatestMedia": "Seneste medier",
|
||||
"HeaderLatestMovies": "Seneste film",
|
||||
@ -287,7 +287,7 @@
|
||||
"HeaderMusicVideos": "Musikvideoer",
|
||||
"HeaderMyDevice": "Min Enhed",
|
||||
"HeaderMyMedia": "Mine medier",
|
||||
"HeaderNewApiKey": "Ny API nøgle",
|
||||
"HeaderNewApiKey": "Ny API Nøgle",
|
||||
"HeaderNewDevices": "Nye Enheder",
|
||||
"HeaderNextUp": "Næste",
|
||||
"HeaderOnNow": "Vises Nu",
|
||||
@ -373,7 +373,7 @@
|
||||
"Images": "Billeder",
|
||||
"ImportFavoriteChannelsHelp": "Hvis aktiveret, importeres der udelukkende kanaler der er markeret som favoritter på tuner-enheden.",
|
||||
"ImportMissingEpisodesHelp": "hvis aktiveret, vil information omkring manglende episoder bliver importeret ind i din Jellyfin-database og blive vist i sæsoner og serier. Dette medfører muligvis længere biblioteksscanninger.",
|
||||
"InstallingPackage": "Installerer {0}",
|
||||
"InstallingPackage": "Installerer {0} (version {1})",
|
||||
"InstantMix": "Instant Mix",
|
||||
"ItemCount": "{0} elementer",
|
||||
"Items": "emner",
|
||||
@ -397,13 +397,13 @@
|
||||
"LabelAll": "Alle",
|
||||
"LabelAllowHWTranscoding": "Tillad hardware-omkodning",
|
||||
"LabelAllowServerAutoRestart": "Tillad serveren at genstarte automatisk for at påføre opdateringer",
|
||||
"LabelAllowServerAutoRestartHelp": "Serveren vil kun genstarte i inaktive perioder, når ingen brugere er aktive",
|
||||
"LabelAllowServerAutoRestartHelp": "Serveren vil kun genstarte i inaktive perioder, når ingen brugere er aktive.",
|
||||
"LabelAllowedRemoteAddresses": "Fjernadgang IP adresse filter:",
|
||||
"LabelAllowedRemoteAddressesMode": "Fjernadgang IP adresse filter mode:",
|
||||
"LabelAppName": "App navn",
|
||||
"LabelAppNameExample": "F. eks: Sickbeard, NzbDrone",
|
||||
"LabelAppNameExample": "F. eks: Sickbeard, Sonarr",
|
||||
"LabelArtists": "Artister:",
|
||||
"LabelArtistsHelp": "Angiv flere ved at sætte mellem dem ;",
|
||||
"LabelArtistsHelp": "Angiv flere ved at sætte ;",
|
||||
"LabelAudioLanguagePreference": "Foretrukket lydsprog:",
|
||||
"LabelAutomaticallyRefreshInternetMetadataEvery": "Genopfrisk automatisk metadata fra internettet:",
|
||||
"LabelBindToLocalNetworkAddress": "Bind til lokal netværksadresse:",
|
||||
@ -411,9 +411,9 @@
|
||||
"LabelBirthDate": "Fødselsdato:",
|
||||
"LabelBirthYear": "Fødselsår:",
|
||||
"LabelBlastMessageInterval": "Interval mellem 'i live' beskeder (sekunder)",
|
||||
"LabelBlastMessageIntervalHelp": "Angiver intervallet i sekunder mellem serverens 'i live' beskeder.",
|
||||
"LabelBlastMessageIntervalHelp": "Bestemmer varigheden i sekunder mellem eksplosive levende meddelelser.",
|
||||
"LabelCachePath": "Cachesti:",
|
||||
"LabelCachePathHelp": "Angiv en brugerdefineret lokation for server cachefiler, så som billeder. Efterlad blankt for at benytte serverens standard.",
|
||||
"LabelCachePathHelp": "Angiv en brugerdefineret placering for servercache-filer, såsom billeder. Lad være tom for at bruge serverens standard.",
|
||||
"LabelCancelled": "Annulleret",
|
||||
"LabelChannels": "Kanaler:",
|
||||
"LabelCollection": "Samling:",
|
||||
@ -425,8 +425,8 @@
|
||||
"LabelCustomCertificatePath": "Brugerdefineret SSL certifikat sti:",
|
||||
"LabelCustomCertificatePathHelp": "Sti til PKCS #12 fil indeholdende et certifikat og privat nøgle for at aktivere TLS understøttelse på et brugerdefineret domæne.",
|
||||
"LabelCustomCss": "Brugerdefineret CSS:",
|
||||
"LabelCustomCssHelp": "Anvend din egen css til webinterfacet.",
|
||||
"LabelCustomDeviceDisplayName": "Vist navn:",
|
||||
"LabelCustomCssHelp": "Anvend din egen stil til webinterfacet.",
|
||||
"LabelCustomDeviceDisplayName": "Visningsnavn:",
|
||||
"LabelCustomDeviceDisplayNameHelp": "Angiv en brugerdefineret navn. hvis der ikke angives et navn, bruges det navn enheden sender.",
|
||||
"LabelCustomRating": "Brugerdefineret bedømmelse:",
|
||||
"LabelDateAdded": "Dato for tilføjelse:",
|
||||
@ -444,24 +444,24 @@
|
||||
"LabelDisplayOrder": "Visningsorden:",
|
||||
"LabelDisplaySpecialsWithinSeasons": "Vis specialepisoder sammen med den sæson de blev sent i",
|
||||
"LabelDownMixAudioScale": "Forøg lydstyrke ved nedmiksning:",
|
||||
"LabelDownMixAudioScaleHelp": "Forøg lydstyrken når der nedmikses. Sæt værdien til 1 for at beholde den originale lydstyrke.",
|
||||
"LabelDownMixAudioScaleHelp": "Forøg lydstyrken når der nedmikses. Sæt værdien til en, for at beholde den originale lydstyrke.",
|
||||
"LabelDownloadLanguages": "Hent sprog:",
|
||||
"LabelDropImageHere": "Smid billede her.",
|
||||
"LabelDropImageHere": "Drop billede her, eller Tryk for at vælge.",
|
||||
"LabelEasyPinCode": "Pinkode:",
|
||||
"LabelEmbedAlbumArtDidl": "Indsæt album billede i DIDL",
|
||||
"LabelEmbedAlbumArtDidlHelp": "Nogle enheder foretrækker denne metode til overførsel af album billede. Andre kan fejle når dette er aktiveret.",
|
||||
"LabelEnableAutomaticPortMap": "Aktiver automatisk port mapping",
|
||||
"LabelEnableAutomaticPortMapHelp": "Forsøg at mappe den offentlige port til den lokale port med uPnP. Dette virker ikke med alle routere.",
|
||||
"LabelEnableAutomaticPortMapHelp": "Forsøg at mappe den offentlige port til den lokale port med uPnP. Dette virker ikke med alle routere. Ændringerne vil først træde i kræft et en server genstart.",
|
||||
"LabelEnableBlastAliveMessages": "Masseudsend 'i live' beskeder",
|
||||
"LabelEnableBlastAliveMessagesHelp": "Aktiver dette hvis UPnP enheder har problemer med forbindelsen til serveren.",
|
||||
"LabelEnableDlnaClientDiscoveryInterval": "Interval for klientsøgning (sekunder)",
|
||||
"LabelEnableDlnaClientDiscoveryIntervalHelp": "angiver intervallet i sekunder mellem Jellyfins SSDP søgninger.",
|
||||
"LabelEnableDlnaDebugLogging": "Aktiver debu logning af DLNA",
|
||||
"LabelEnableDlnaDebugLoggingHelp": "Dette generer meget store logfiler, og er kun anbefalet at bruge til fejlfindingsformål.",
|
||||
"LabelEnableDlnaDebugLoggingHelp": "Opret store logfiler og skal kun bruges efter behov til fejlfinding.",
|
||||
"LabelEnableDlnaPlayTo": "Aktiver DLNA \"Afspil Til\"",
|
||||
"LabelEnableDlnaPlayToHelp": "Jellyfin kan finde enheder i dit netværk og tilbyde at kontrollere dem.",
|
||||
"LabelEnableDlnaServer": "Aktiver DNLA server",
|
||||
"LabelEnableDlnaServerHelp": "Tillader UPnP enheder i dit netværk at gennemse og afspille Jellyfins indhold.",
|
||||
"LabelEnableDlnaPlayToHelp": "Find enheder i dit netværk og tilbyd at fjernstyre dem.",
|
||||
"LabelEnableDlnaServer": "Aktiver DLNA server",
|
||||
"LabelEnableDlnaServerHelp": "Tillader UPnP enheder i dit netværk at gennemse og afspille indhold.",
|
||||
"LabelEnableRealtimeMonitor": "Aktiver realtidsovervågning",
|
||||
"LabelEnableRealtimeMonitorHelp": "Ændringer vil blive behandlet øjeblikkeligt på understøttede filsystemer.",
|
||||
"LabelEnableSingleImageInDidlLimit": "Begræns til et enkelt indlejret billede",
|
||||
@ -471,56 +471,56 @@
|
||||
"LabelEvent": "Hændelse:",
|
||||
"LabelEveryXMinutes": "Hver:",
|
||||
"LabelExtractChaptersDuringLibraryScan": "Udtræk kapitelbilleder under biblioteksskanning",
|
||||
"LabelExtractChaptersDuringLibraryScanHelp": "Aktiver dette for at udtrække kapitelbillleder mens videofiler bliver importeret under biblioteksskanningen. Hvi det ikke er aktiveret, bliver de udtrukket når den planlagte opgave kapitelbilleder kører, og lader den almindelige biblioteksskanning afslutte hurtigere.",
|
||||
"LabelExtractChaptersDuringLibraryScanHelp": "Generere kapitelbillleder mens videofiler bliver importeret under biblioteksskanningen. Alternativt bliver de udtrukket når den planlagte opgave kapitelbilleder kører, hvilket tillader den almindelige biblioteksskanning at afslutte hurtigere.",
|
||||
"LabelFailed": "Fejlet",
|
||||
"LabelFileOrUrl": "Fil eller url:",
|
||||
"LabelFileOrUrl": "Fil eller URL:",
|
||||
"LabelFinish": "Afslut",
|
||||
"LabelForgotPasswordUsernameHelp": "Indtast dit brugernavn, hvis du kan huske det.",
|
||||
"LabelFriendlyName": "System venligt navn:",
|
||||
"LabelServerNameHelp": "Dette navn bruges til at identificere serveren. Hvis det ikke udfyldes, bruges computerens navn.",
|
||||
"LabelServerNameHelp": "Dette navn bruges til at identificere serveren. Som udgangspunkt anvendes computerens navn.",
|
||||
"LabelGroupMoviesIntoCollections": "Grupper film i samlinger",
|
||||
"LabelGroupMoviesIntoCollectionsHelp": "Film i samlinger vil blive vist som en samlet enhed i filmlister.",
|
||||
"LabelH264Crf": "H264-kodning CRF:",
|
||||
"LabelEncoderPreset": "Forudindstillet H264-kodning:",
|
||||
"LabelHardwareAccelerationType": "Hardwareacceleration:",
|
||||
"LabelHardwareAccelerationTypeHelp": "Kun tilgængelig for understøttede systemer.",
|
||||
"LabelHardwareAccelerationTypeHelp": "Hardwareacceleration kræver yderligere konfiguration.",
|
||||
"LabelHttpsPort": "Lokalt HTTPS portnummer:",
|
||||
"LabelHttpsPortHelp": "Det portnummer Jellyfins https-server bruger.",
|
||||
"LabelIconMaxHeight": "Max højde på ikoner:",
|
||||
"LabelIconMaxHeightHelp": "Maksimumopløsningen på ikoner der bliver vist med upnp:icon",
|
||||
"LabelIconMaxWidth": "Max bredde på ikoner:",
|
||||
"LabelIconMaxWidthHelp": "Maksimumopløsningen på ikoner der bliver vist med upnp:icon",
|
||||
"LabelHttpsPortHelp": "Det TCP-portnummer, som Jellyfins HTTPS-server skal benytte.",
|
||||
"LabelIconMaxHeight": "Maximal højde af ikoner:",
|
||||
"LabelIconMaxHeightHelp": "Maksimalopløsningen af ikoner, der bliver vist med upnp:icon.",
|
||||
"LabelIconMaxWidth": "Maximal bredde på ikoner:",
|
||||
"LabelIconMaxWidthHelp": "Maksimalopløsningen på ikoner der bliver vist med upnp:icon.",
|
||||
"LabelIdentificationFieldHelp": "En case-insensitive substring eller regex ekspression.",
|
||||
"LabelImageFetchersHelp": "Aktiver og ranger dine fortrukne billede-hentere i en prioriteret rækkefølge.",
|
||||
"LabelImageType": "Billedtype:",
|
||||
"LabelImportOnlyFavoriteChannels": "Begræns til kanaler der er markeret som favoritter",
|
||||
"LabelInNetworkSignInWithEasyPassword": "Tillad login inden for eget netværk med pinkode",
|
||||
"LabelInNetworkSignInWithEasyPasswordHelp": "Aktiver dette for at loge ind i Jellyfin apps med din pinkode inden for dit eget netværk. Din almindelige adgangskode skal du så kun bruge når du ikke er hjemme. Hvis pinkoden er tom, kan du logge ind uden adgangskode inden for dit eget netværk.",
|
||||
"LabelInNetworkSignInWithEasyPasswordHelp": "Brug den lette pinkode til at logge ind på klienter i dit lokale netværk. Din almindelige adgangskode er kun nødvendig hjemmefra. Hvis pinkoden efterlades tom, behøver du ikke en adgangskode på dit hjemmenetværk.",
|
||||
"LabelKeepUpTo": "Bevar op til:",
|
||||
"LabelKidsCategories": "Børnekategorier:",
|
||||
"LabelKodiMetadataDateFormat": "Format for udgivelsesdato:",
|
||||
"LabelKodiMetadataDateFormatHelp": "Alle datoer i NFO-filer vil blive læst og skrevet med dette format.",
|
||||
"LabelKodiMetadataEnableExtraThumbs": "kopier extrafanart til extrathumbs",
|
||||
"LabelKodiMetadataDateFormatHelp": "Alle datoer i NFO-filer vil blive analyseret med dette format.",
|
||||
"LabelKodiMetadataEnableExtraThumbs": "Kopier ekstra fanart til extrathumbs",
|
||||
"LabelKodiMetadataEnableExtraThumbsHelp": "Ved hentning af billeder, kan de gemmes i både extrafanart og extrathumbs. Dette giver maksimal Kodi skin kompatibilitet.",
|
||||
"LabelKodiMetadataEnablePathSubstitution": "Aktiver stisubstitution",
|
||||
"LabelKodiMetadataEnablePathSubstitutionHelp": "Aktiverer stisubstitution for billedstier med serverens stisubstitutionsindstillinger.",
|
||||
"LabelKodiMetadataSaveImagePaths": "Gem stier til billeder i Nfo-filer",
|
||||
"LabelKodiMetadataSaveImagePathsHelp": "Dette er anbefalet hvis du har billedfiler med navne der ikke lever op til Kodis retningslinjer.",
|
||||
"LabelKodiMetadataUser": "Gem brugers set data til NFO'er for:",
|
||||
"LabelKodiMetadataUserHelp": "Aktiver dette for at komme set data til NFO filer som andre programmer kan bruge.",
|
||||
"LabelKodiMetadataUser": "Gem brugerdata til NFO-filer til:",
|
||||
"LabelKodiMetadataUserHelp": "Gem overvågningsdata til NFO-filer til andre applikationer.",
|
||||
"LabelLanNetworks": "LAN netwærk:",
|
||||
"LabelLanguage": "Sprog:",
|
||||
"LabelLineup": "Opstilling:",
|
||||
"LabelLocalHttpServerPortNumber": "Lokalt http portnummer:",
|
||||
"LabelLocalHttpServerPortNumberHelp": "Det portnummer Jellyfins http-server bruger.",
|
||||
"LabelLocalHttpServerPortNumber": "Lokalt HTTP-portnummer:",
|
||||
"LabelLocalHttpServerPortNumberHelp": "Det TCP-portnummer, som Jellyfin's HTTP-server skal binde til.",
|
||||
"LabelLockItemToPreventChanges": "Lås for at undgå fremtidige ændringer",
|
||||
"LabelLoginDisclaimer": "Login ansvarsfraskrivelse:",
|
||||
"LabelLoginDisclaimerHelp": "Dette bliver vist i bunden af loginsiden.",
|
||||
"LabelManufacturer": "Producent",
|
||||
"LabelManufacturerUrl": "Producent url",
|
||||
"LabelLoginDisclaimerHelp": "En besked, som vises i bunden af loginsiden.",
|
||||
"LabelManufacturer": "Producent:",
|
||||
"LabelManufacturerUrl": "Producentens URL",
|
||||
"LabelMaxBackdropsPerItem": "Maksimum antal af bagtæpper per element:",
|
||||
"LabelMaxParentalRating": "Højst tilladte aldersgrænse:",
|
||||
"LabelMaxResumePercentage": "Maks. fortsæt procentdel:",
|
||||
"LabelMaxResumePercentage": "Maksimal fortsæt procentdel:",
|
||||
"LabelMaxResumePercentageHelp": "Medier anses som fuldt afspillet, hvis de stoppes efter denne tid.",
|
||||
"LabelMaxScreenshotsPerItem": "Maksimum antal af skærmbilleder per element:",
|
||||
"LabelMaxStreamingBitrate": "Maks. streaming kvalitet:",
|
||||
@ -538,9 +538,9 @@
|
||||
"LabelMethod": "Metode:",
|
||||
"LabelMinBackdropDownloadWidth": "Minimum baggrundsbillede bredde:",
|
||||
"LabelMinResumeDuration": "Min. fortsæt tidsrum (sekunder):",
|
||||
"LabelMinResumeDurationHelp": "Medier med kortere afspilningstid en denne kan ikke fortsættes.",
|
||||
"LabelMinResumePercentage": "Min. fortsæt procentdel:",
|
||||
"LabelMinResumePercentageHelp": "Medier anses om ikke afspillet, hvis de stoppes inden denne tid.",
|
||||
"LabelMinResumeDurationHelp": "Den korteste videolængde i sekunder, der gemmer afspilningsplacering og giver dig mulighed for at genoptage.",
|
||||
"LabelMinResumePercentage": "Minimal fortsæt procentdel:",
|
||||
"LabelMinResumePercentageHelp": "Medier anses som ikke afspillede, hvis de stoppes inden denne tid.",
|
||||
"LabelMinScreenshotDownloadWidth": "Minimum skærmbillede bredde:",
|
||||
"LabelModelDescription": "Modelbeskrivelse",
|
||||
"LabelModelName": "Modelnavn",
|
||||
@ -548,10 +548,10 @@
|
||||
"LabelMonitorUsers": "Overvåg aktivitet fra:",
|
||||
"LabelMovieCategories": "Filmkategorier:",
|
||||
"LabelMoviePrefix": "Film-præfiks:",
|
||||
"LabelMoviePrefixHelp": "Angiv venligst her hvis der tilføjes et præfiks til filmtitler, så Jellyfin kan håndtere det korrekt.",
|
||||
"LabelMoviePrefixHelp": "Angiv venligst her hvis der tilføjes et præfiks til filmtitler, så serveren kan håndtere det korrekt.",
|
||||
"LabelMovieRecordingPath": "Film afspilningssti (valgfri):",
|
||||
"LabelMusicStreamingTranscodingBitrate": "Bitrate for musiktranskodning:",
|
||||
"LabelMusicStreamingTranscodingBitrateHelp": "Angiv en maksimal bitrate når der streames musik",
|
||||
"LabelMusicStreamingTranscodingBitrateHelp": "Angiv en maksimal bitrate når der streames musik.",
|
||||
"LabelName": "Navn:",
|
||||
"LabelNewName": "Nyt navn:",
|
||||
"LabelNewPassword": "Ny kode:",
|
||||
@ -590,10 +590,10 @@
|
||||
"LabelProtocol": "Protokol:",
|
||||
"LabelProtocolInfo": "Protokolinformation:",
|
||||
"LabelProtocolInfoHelp": "Den værdi der bruges til svar på GetProtocolInfo-forespørgsler fra enheden.",
|
||||
"LabelPublicHttpPort": "Offentligt http portnummer:",
|
||||
"LabelPublicHttpPortHelp": "Det offentlige portnummer som bliver knyttet til det lokale http portnummer.",
|
||||
"LabelPublicHttpsPort": "Offentligt https portnummer:",
|
||||
"LabelPublicHttpsPortHelp": "Det offentlige portnummer som bliver knyttet til det lokale https portnummer.",
|
||||
"LabelPublicHttpPort": "Offentligt HTTP-portnummer:",
|
||||
"LabelPublicHttpPortHelp": "Det offentlige portnummer som bliver knyttet til det lokale HTTP-portnummer.",
|
||||
"LabelPublicHttpsPort": "Offentligt HTTPS portnummer:",
|
||||
"LabelPublicHttpsPortHelp": "Det offentlige portnummer som bliver knyttet til det lokale HTTPS portnummer.",
|
||||
"LabelReadHowYouCanContribute": "Lær hvordan du kan bidrage.",
|
||||
"LabelRecord": "Optag:",
|
||||
"LabelRecordingPath": "Standard afspilningssti:",
|
||||
@ -614,7 +614,7 @@
|
||||
"LabelSerialNumber": "Serienummer",
|
||||
"LabelSeriesRecordingPath": "Serier afspilningssti (valgfri):",
|
||||
"LabelServerHost": "Vært:",
|
||||
"LabelServerHostHelp": "F. eks: 192.168.1.100 eller https://myserver.com",
|
||||
"LabelServerHostHelp": "F. eks: 192.168.1.100:8096 eller https://myserver.com",
|
||||
"LabelSimultaneousConnectionLimit": "samtidige stream begrænsning:",
|
||||
"LabelSkipIfAudioTrackPresent": "Undlad hvis standardlydsporet er det samme sprog",
|
||||
"LabelSkipIfAudioTrackPresentHelp": "Angiv ikke dette for at sikre at alle videoer har undertekster, uanset hvilket sprog lydsporet anvender.",
|
||||
@ -647,7 +647,7 @@
|
||||
"LabelTranscodingTempPathHelp": "Definér en bugerdefineret sti til transkodede filer til klienter. Lad den stå tom for at bruge standardmappen i serverens datamappe.",
|
||||
"LabelTranscodingTemporaryFiles": "Midlertidige filer til omkodning:",
|
||||
"LabelTranscodingThreadCount": "Antal af omkodningstråde:",
|
||||
"LabelTranscodingThreadCountHelp": "Vælg det maksimale antal af tråde der bruges under omkodning. Reduktion af antallet af tråde sænker cpu-forbrug, men resulterer muligvis i at konverteringer ikke foregår hurtigt nok til en jævn afspilning.",
|
||||
"LabelTranscodingThreadCountHelp": "Vælg det maksimale antal af tråde der bruges under transcoding. Reduktion af antallet af tråde sænker CPU-forbrug, men resulterer muligvis i at konverteringer ikke foregår hurtigt nok til en jævn afspilning.",
|
||||
"LabelTriggerType": "Udløsertype:",
|
||||
"LabelTunerIpAddress": "IP-adresse for Tuner:",
|
||||
"LabelTunerType": "Tunertype:",
|
||||
@ -707,37 +707,37 @@
|
||||
"MessageConfirmRemoveMediaLocation": "Er du sikker på du ønsker at fjerne denne lokalisation?",
|
||||
"MessageConfirmRestart": "Er du sikker på du ønsker at genstarte Jellyfin?",
|
||||
"MessageConfirmRevokeApiKey": "Er du sikker på du ønsker at invalidere denne api nøgle? Applikationens forbindelse til Jellyfin vil blive afbrudt øjeblikkeligt.",
|
||||
"MessageConfirmShutdown": "Er du sikker på du ønsker at lukke Jellyfin?",
|
||||
"MessageConfirmShutdown": "Er du sikker på du ønsker at slukke for serveren?",
|
||||
"MessageContactAdminToResetPassword": "Kontakt venligst din systemadministrator for at nulstille din adgangskode.",
|
||||
"MessageCreateAccountAt": "Opret en konto hos {0}",
|
||||
"MessageDeleteTaskTrigger": "Er du sikker på du ønsker at slette denne task trigger?",
|
||||
"MessageDirectoryPickerBSDInstruction": "For BSD skal du muligvis konfigurere lager i dit FreeNAS Jail, før Jellyfin kan tilgå det.",
|
||||
"MessageDirectoryPickerInstruction": "Netværksstier kan indtastes manuelt i tilfælde af at netværksknappen ikke kan lokalisere dine enheder. Foreksempel, {0} eller {1}.",
|
||||
"MessageDirectoryPickerLinuxInstruction": "For Linux på Arch Linux, CentOS, Debian, Fedora, OpenSuse eller Ubuntu skal du give Jellyfin-systembrugeren minimum læseadgang til dine lagerlokationer.",
|
||||
"MessageDirectoryPickerLinuxInstruction": "For Linux på Arch Linux, CentOS, Debian, Fedora, openSUSE eller Ubuntu, skal du give servicebrugeren mindst læseadgang til dine lagerpladser.",
|
||||
"MessageDownloadQueued": "Download sat i kø.",
|
||||
"MessageEnablingOptionLongerScans": "Aktivering af denne indstilling kan resultere i væsentlig længere biblioteks skan.",
|
||||
"MessageFileReadError": "Der opstod en fejl i forsøget på at læse filen.",
|
||||
"MessageForgotPasswordFileCreated": "Den følgende fil er blevet oprettet på din server og indeholder instruktioner vedrørende hvordan du skal fortsætte:",
|
||||
"MessageForgotPasswordInNetworkRequired": "Prøv igen inde i dit hjemmenetværk for at igangsætte nulstilling af din adgangskode.",
|
||||
"MessageInstallPluginFromApp": "Dette plugin skal være installeret inde i den app du ønsker at benytte det fra.",
|
||||
"MessageInstallPluginFromApp": "Dette plugin skal installeres fra den app, du har til hensigt at bruge det i.",
|
||||
"MessageInvalidForgotPasswordPin": "En ugyldig eller udløbet pinkode blev indtastet. Prøv igen.",
|
||||
"MessageInvalidUser": "Ukendt brugernavn eller adgangskode. Prøv igen.",
|
||||
"MessageItemSaved": "Element gemt.",
|
||||
"MessageItemsAdded": "Emne tilføjet.",
|
||||
"MessageLeaveEmptyToInherit": "Efterlad tom for at arve indstillinger fra en overliggende post eller den globale standardværdi.",
|
||||
"MessageLeaveEmptyToInherit": "Lad være tom for at arve indstillinger fra et overordnet element eller den globale standardværdi.",
|
||||
"MessageNoAvailablePlugins": "Ingen tilgængelige plugins.",
|
||||
"MessageNoMovieSuggestionsAvailable": "Ingen filmforslag er tilgængelige. Begynd at se og vurder dine film, og kom tilbage for at se dine anbefalinger.",
|
||||
"MessageNoPluginsInstalled": "Du har ingen plugins installeret.",
|
||||
"MessageNoTrailersFound": "Ingen trailere fundet. Installer Trailer kanalen for at tilføje et bibliotek med trailere fra internettet.",
|
||||
"MessageNothingHere": "Her er ingenting.",
|
||||
"MessagePasswordResetForUsers": "Adgangskoder blev fjernet for følgende brugere. For at logge ind, skal der benyttes en blank adgangskode.",
|
||||
"MessagePasswordResetForUsers": "Følgende brugere har fået nulstillet deres adgangskoder. De kan nu logge på med de pinkoder, der blev brugt til at udføre nulstillingen.",
|
||||
"MessagePleaseEnsureInternetMetadata": "Sørg venligst for at hentning af metadata fra internettet er aktiveret.",
|
||||
"MessagePleaseWait": "Vent venligst. Dette kan tage et minut.",
|
||||
"MessagePluginConfigurationRequiresLocalAccess": "For at konfigurerer dette plugin log da venligst direkte ind på din lokale server.",
|
||||
"MessagePluginInstallDisclaimer": "Plugins fremstillet af medlemmer fra Jellyfin-fællesskabet er en alle tiders måde at forbedre din oplevelse af Jellyfin med yderligere features og fordele. Før installation, bedes du venligst være opmærksom på de effekter de kan have på din Jellyfin Server; så som lange scantider på biblioteker, yderligere baggrundsbehandling og forringet systemstabilitet.",
|
||||
"MessageReenableUser": "Se nedenfor om genaktivering",
|
||||
"MessageSettingsSaved": "Indstillinger er gemt.",
|
||||
"MessageTheFollowingLocationWillBeRemovedFromLibrary": "Følgende medielokationer bliver fjernet fra dit Jellyfin-bibliotek:",
|
||||
"MessageTheFollowingLocationWillBeRemovedFromLibrary": "Følgende medieplaceringer fjernes fra dit bibliotek:",
|
||||
"MessageUnableToConnectToServer": "Vi kan ikke forbinde til den valgte server på nuværende tidspunkt. Sikrer dig venligst at serveren kører og prøv igen.",
|
||||
"MessageUnsetContentHelp": "Indhold vil blive vist som almindelige mapper. For det bedste resultat benyt metadata manageren til at vælge indholdstypen i undermapper.",
|
||||
"MessageYouHaveVersionInstalled": "Du har version {0} installeret.",
|
||||
@ -747,10 +747,10 @@
|
||||
"MinutesBefore": "minutter før",
|
||||
"Monday": "Mandag",
|
||||
"MoreFromValue": "Mere fra {0}",
|
||||
"MoreUsersCanBeAddedLater": "Flere brugere kan tilføjes senere i betjeningspanelet.",
|
||||
"MoreUsersCanBeAddedLater": "Flere brugere kan tilføjes senere fra dashboardet.",
|
||||
"MoveLeft": "Flyt mod venstre",
|
||||
"MoveRight": "Flyt mod højre",
|
||||
"MovieLibraryHelp": "Gennemse {0}Jellyfin film navngivningsguiden{1}.",
|
||||
"MovieLibraryHelp": "Gennemse {0}film navngivningsguiden{1}.",
|
||||
"Movies": "Film",
|
||||
"Mute": "Afbryd lyd",
|
||||
"MySubtitles": "Mine Undertekster",
|
||||
@ -782,7 +782,7 @@
|
||||
"OptionAllowMediaPlaybackTranscodingHelp": "At begrænse adgang til omkodning kan forårsage afspilningsfejl i Jellyfin apps på grund af usupporterede medie formater.",
|
||||
"OptionAllowRemoteControlOthers": "Tillad fjernstyring af andre brugere",
|
||||
"OptionAllowRemoteSharedDevices": "Tillad fjernstyring af delte enheder",
|
||||
"OptionAllowRemoteSharedDevicesHelp": "DLNA-enheder er delte indtil en bruger begynder at bruge den.",
|
||||
"OptionAllowRemoteSharedDevicesHelp": "DLNA-enheder betragtes som delt, indtil en bruger begynder at kontrollere dem.",
|
||||
"OptionAllowSyncTranscoding": "Tillad medie hentning og synkronisering der kræver omkodning",
|
||||
"OptionAllowUserToManageServer": "Tillad denne bruger at administrere serveren",
|
||||
"OptionAllowVideoPlaybackRemuxing": "Tillad videoafspilning som kræver konvertering uden omkodning",
|
||||
@ -811,13 +811,13 @@
|
||||
"OptionDisableUserHelp": "Hvis deaktiveret vil serveren ikke tillade forbindelser fra denne bruger. Eksisterende forbindelser vil blive afbrudt øjeblikkeligt.",
|
||||
"OptionDislikes": "Ikke-Lide",
|
||||
"OptionDisplayFolderView": "Få vist en mappevisning til at se enkle mediemapper",
|
||||
"OptionDisplayFolderViewHelp": "Hvis aktiveret, vil Jellyfin apps vise en Mappekategori ved siden af dine mediebiblioteker. Dette er brugbart, hvis du vil have vist enkle mappevisninger.",
|
||||
"OptionDisplayFolderViewHelp": "Vis mapper sammen med dine andre mediebiblioteker. Dette kan være nyttigt, hvis du gerne vil have en almindelig mappevisning.",
|
||||
"OptionDownloadArtImage": "Billede",
|
||||
"OptionDownloadBackImage": "Bagside",
|
||||
"OptionDownloadBoxImage": "Boks",
|
||||
"OptionDownloadDiscImage": "Disk",
|
||||
"OptionDownloadImagesInAdvance": "Download billeder på forhånd",
|
||||
"OptionDownloadImagesInAdvanceHelp": "Som standard downloades billeder kun når de anmodes af en Jellyfin app. Aktiver denne indstilling for at downloade alle billeder på forhånd, i mens nyt medie importeres. Dette resulterer muligvis i længere scanninger af bibliotek.",
|
||||
"OptionDownloadImagesInAdvanceHelp": "Som standard downloades de fleste billeder kun, når de anmodes fra en Jellyfin-app. Aktivér denne mulighed for at downloade alle billeder på forhånd, da nye medier importeres. Dette kan forårsage betydeligt længere biblioteksscanninger.",
|
||||
"OptionDownloadPrimaryImage": "Primær",
|
||||
"OptionDownloadThumbImage": "Miniature",
|
||||
"OptionDvd": "DVD",
|
||||
@ -826,7 +826,7 @@
|
||||
"OptionEnableAccessToAllChannels": "Tillad adgang til alle kanaler",
|
||||
"OptionEnableAccessToAllLibraries": "Tillad adgang til alle biblioteker",
|
||||
"OptionEnableExternalContentInSuggestions": "Aktiver eksternt indhold i anbefalinger",
|
||||
"OptionEnableExternalContentInSuggestionsHelp": "Tillad at internet-trailers og live-tv-programmer bliver inkluderet i det anbefalede indhold.",
|
||||
"OptionEnableExternalContentInSuggestionsHelp": "Tillad at internet-trailers og live TV programmer bliver inkluderet i det anbefalede indhold.",
|
||||
"OptionEnableForAllTuners": "Aktiver for alle tuner-enheder",
|
||||
"OptionEnableM2tsMode": "Aktiver M2ts tilstand",
|
||||
"OptionEnableM2tsModeHelp": "Aktiver M2ts tilstand når der omkodes til mpegts.",
|
||||
@ -844,8 +844,8 @@
|
||||
"OptionHasThemeVideo": "Temavideo",
|
||||
"OptionHideUser": "Vis ikke denne bruger på loginsiden",
|
||||
"OptionHideUserFromLoginHelp": "Nyttigt for private kontoer eller skjulte administratorkontoer. Brugeren skal logge ind ved at skive sit brugernavn og adgangskode.",
|
||||
"OptionHlsSegmentedSubtitles": "Hls segmented undertekster",
|
||||
"OptionHomeVideos": "Hjemmevideoer og billeder",
|
||||
"OptionHlsSegmentedSubtitles": "HLS segmenterede undertekster",
|
||||
"OptionHomeVideos": "Billeder",
|
||||
"OptionIgnoreTranscodeByteRangeRequests": "Ignorer forespørgsler vedrørende transcode byte interval",
|
||||
"OptionIgnoreTranscodeByteRangeRequestsHelp": "Hvis aktiveret vil disse forespørgsler blive efterkommet, men byte range headeren ignoreret.",
|
||||
"OptionImdbRating": "IMDB bedømmelse",
|
||||
@ -883,7 +883,7 @@
|
||||
"OptionThursday": "Torsdag",
|
||||
"OptionTrackName": "Nummerets navn",
|
||||
"OptionTuesday": "Tirsdag",
|
||||
"OptionTvdbRating": "Tvdb bedømmelse",
|
||||
"OptionTvdbRating": "TVDB bedømmelse",
|
||||
"OptionUnairedEpisode": "Ikke sendte episoder",
|
||||
"OptionUnplayed": "Ikke afspillet",
|
||||
"OptionWakeFromSleep": "Vågner fra dvale",
|
||||
@ -893,9 +893,9 @@
|
||||
"OptionWeekly": "Ugentlig",
|
||||
"OriginalAirDateValue": "Originalt sendt: {0}",
|
||||
"Overview": "Overblik",
|
||||
"PackageInstallCancelled": "{0} installation afbrudt.",
|
||||
"PackageInstallCompleted": "{0} installation udført.",
|
||||
"PackageInstallFailed": "{0} installationen mislykkedes.",
|
||||
"PackageInstallCancelled": "{0} (version {1}) installation annulleret.",
|
||||
"PackageInstallCompleted": "{0} (version {1}) installation udført.",
|
||||
"PackageInstallFailed": "{0} (version {1}) installationen mislykkedes.",
|
||||
"ParentalRating": "Parental Rating",
|
||||
"PasswordMatchError": "Adgangskode og bekræft adgangskode skal være ens.",
|
||||
"PasswordResetComplete": "Adgangskoden er blevet nulstillet.",
|
||||
@ -913,7 +913,7 @@
|
||||
"Played": "Afspillet",
|
||||
"PleaseAddAtLeastOneFolder": "Tilføj venligst som minimum en enkelt mappe til dette bibliotek ved at klikke på Tilføj-knappen.",
|
||||
"PleaseConfirmPluginInstallation": "Klik venligst OK for at bekræfte at du har læst ovenstående og ønsker at fortsætte med installationen af plugin.",
|
||||
"PleaseEnterNameOrId": "Indtast venligst et navn eller eksternt Id.",
|
||||
"PleaseEnterNameOrId": "Indtast venligst et navn eller eksternt ID.",
|
||||
"PleaseRestartServerName": "Genstart venligst Jellyfin Server - {0}.",
|
||||
"PleaseSelectTwoItems": "Vælg venligst mindst to elementer.",
|
||||
"PluginInstalledMessage": "Plugin blev installeret med success. Jellyfin serveren skal genstartes for at aktivere det.",
|
||||
@ -1025,7 +1025,7 @@
|
||||
"TabProfiles": "Profiler",
|
||||
"TabRecordings": "Optagelser",
|
||||
"TabResponses": "Svar",
|
||||
"TabResumeSettings": "Indstillinger for Genoptag",
|
||||
"TabResumeSettings": "Genoptag",
|
||||
"TabScheduledTasks": "Planlagte opgaver",
|
||||
"TabSeries": "Serier",
|
||||
"TabSettings": "Indstillinger",
|
||||
@ -1044,13 +1044,13 @@
|
||||
"TitlePlayback": "Afspilning",
|
||||
"TrackCount": "{0} numre",
|
||||
"Tuesday": "Tirsdag",
|
||||
"TvLibraryHelp": "Gennemse {0}Jellyfin TV navngivningsguiden{1}.",
|
||||
"TvLibraryHelp": "Gennemgå {0} TV-navneguiden {1}.",
|
||||
"UninstallPluginConfirmation": "Er du sikker på du vil afinstallere {0}?",
|
||||
"UninstallPluginHeader": "Afinstaller plugin",
|
||||
"Unmute": "Genoptag lyd",
|
||||
"Unrated": "Ingen bedømmelse",
|
||||
"UserAgentHelp": "Angiv en brugerdefineret user-agent http header, hvis nødvendigt.",
|
||||
"UserProfilesIntro": "Jellyfin har indbygget understøttelse af brugerprofiler. Dette giver hver bruger sine egne indstillinger for visning, afspilningsstatus og forældrekontrol.",
|
||||
"UserAgentHelp": "Angiv en brugerdefineret bruger-agent HTTP-header.",
|
||||
"UserProfilesIntro": "Jellyfin inkluderer support til brugerprofiler med granuleret displayindstillinger, afspilningstilstand og forældrekontrol.",
|
||||
"ValueAlbumCount": "{0} album",
|
||||
"ValueAudioCodec": "Lyd codec: {0}",
|
||||
"ValueConditions": "Forhold: {0}",
|
||||
@ -1072,17 +1072,17 @@
|
||||
"ViewPlaybackInfo": "Vis afspilnings information",
|
||||
"Wednesday": "Onsdag",
|
||||
"WelcomeToProject": "Velkommen til Jellyfin!",
|
||||
"WizardCompleted": "Det er alt vi behøver for nu. Jellyfin er begyndt at indsamle information omkring dit mediebibliotek. Tjek nogle af vores apps og klik derefter på <b>Færdig</b> for at se <b>Server betjeningspanelet</b>.",
|
||||
"WizardCompleted": "Det er alt, hvad vi har brug for nu. Jellyfin er begyndt at indsamle information om dit mediebibliotek. Se nogle af vores apps, og klik derefter på <b>Udfør</b> for at se <b>Dashboard</b>.",
|
||||
"Writer": "Forfatter",
|
||||
"XmlDocumentAttributeListHelp": "Disse attributter bliver tilføjet til rodelementet i alle XML svar.",
|
||||
"XmlDocumentAttributeListHelp": "Disse attributter anvendes til rodelementet i hvert XML-svar.",
|
||||
"XmlTvKidsCategoriesHelp": "Programmer med disse kategorier bliver vist som programmer for børn. Adskil flere med '|'.",
|
||||
"XmlTvMovieCategoriesHelp": "Programmer med disse kategorier bliver vist som film. Adskil flere med '|'.",
|
||||
"XmlTvNewsCategoriesHelp": "Programmer med disse kategorier bliver vist som nyhedsprogrammer. Adskil flere med '|'.",
|
||||
"XmlTvPathHelp": "En sti til en xml tv-fil. Jellyfin læser denne fil og kontrollerer periodisk for opdateringer. Du er ansvarlig for at oprette og opdatere filen.",
|
||||
"XmlTvPathHelp": "En sti til en XMLTV fil. Jellyfin læser denne fil og kontrollerer periodisk for opdateringer. Du er ansvarlig for at oprette og opdatere filen.",
|
||||
"XmlTvSportsCategoriesHelp": "Programmer med disse kategorier bliver vist som sportsprogrammer. Adskil flere med '|'.",
|
||||
"Yesterday": "I går",
|
||||
"AirDate": "Luftdata",
|
||||
"Albums": "Album",
|
||||
"Albums": "Albums",
|
||||
"Artists": "Kunstnere",
|
||||
"Books": "Bøger",
|
||||
"Collections": "Samlinger",
|
||||
@ -1100,7 +1100,7 @@
|
||||
"Shows": "Serier",
|
||||
"Songs": "Sange",
|
||||
"AndroidUnlockRestoreHelp": "For at gendanne dit tidligere køb skal du sørge for, at du er logget ind på enheden med den samme Google- eller Amazon-konto, som oprindeligt gjorde købet. Sørg for, at app store er aktiveret og ikke begrænset af forældrekontrol, og sørg for, at du har en aktiv internetforbindelse. Du skal kun gøre dette én gang for at gendanne dit tidligere køb.",
|
||||
"AnyLanguage": "Ethvert sprog",
|
||||
"AnyLanguage": "Hvilken som helst sprog",
|
||||
"Art": "Kunst",
|
||||
"Ascending": "Stigende",
|
||||
"AudioBitDepthNotSupported": "Lyd bit dybde ikke understøttet",
|
||||
@ -1121,7 +1121,7 @@
|
||||
"Blacklist": "Blackliste",
|
||||
"Box": "Boks",
|
||||
"BoxRear": "Boks (bagside)",
|
||||
"BurnSubtitlesHelp": "Bestemmer om serveren skal brænde underteksterne ind i videoen når den konverterer baseret på undertekstformatet. Det vil øge serverens ydeevne ikke at brænde underteksterne i filen. Vælg Automatisk for at brænde billedbaserede formater (VOBSUB, PGS, SUB/IDX, osv) og nogle ASS/SSA undertekster.",
|
||||
"BurnSubtitlesHelp": "Bestemmer om serveren skal brænde undertekster, når der afspilles transcoding videoer. Undgå dette vil forbedre ydelsen meget. Vælg Auto for at brænde billedbaserede formater (VOBSUB, PGS, SUB, IDX) og bestemte ASS- eller SSA-undertekster.",
|
||||
"ButtonFilter": "Filter",
|
||||
"ButtonGuide": "Vejledning",
|
||||
"ButtonInfo": "Information",
|
||||
@ -1174,14 +1174,14 @@
|
||||
"DisplayInOtherHomeScreenSections": "Visning på hjemmeskærm sektioner som seneste medier og se videre",
|
||||
"DisplayMissingEpisodesWithinSeasons": "Vis manglende afsnit inde i sæsoner",
|
||||
"DisplayMissingEpisodesWithinSeasonsHelp": "Dette skal også være aktiveret for TV biblioteker i serverens indstillinger.",
|
||||
"DisplayModeHelp": "Vælg skærmtypen du kører Jellyfin på.",
|
||||
"DisplayModeHelp": "Vælg det ønskede tema for grænsefladen.",
|
||||
"Down": "Ned",
|
||||
"DownloadItemLimitHelp": "Valgfri. Sæt en begrænsning på antallet af ting der vil blive hentet.",
|
||||
"Downloaded": "Hentet",
|
||||
"DownloadingDots": "Henter...",
|
||||
"Downloads": "Hentninger",
|
||||
"DownloadsValue": "{0} hentninger",
|
||||
"DropShadow": "Drop skygge",
|
||||
"DropShadow": "Drop Skygge",
|
||||
"DvrFeatureDescription": "Tidsindstil individuelle TV optagelser, serie optagelser, og mere med Jellyfin DVR.",
|
||||
"EditMetadata": "Redigér metadata",
|
||||
"EnableBackdrops": "Baggrundsbilleder",
|
||||
@ -1201,7 +1201,7 @@
|
||||
"ErrorAddingJellyfinConnectAccount1": "Der skete en fejl ved tilføjelsen af Jellyfin Connect kontoen. Har du lavet en Jellyfin konto? Registrer dig på {0}.",
|
||||
"ErrorAddingJellyfinConnectAccount2": "Hvis du stadig har et problem, så send venligst en email til {0} fra den email adresse tilknyttet Jellyfin kontoen.",
|
||||
"ErrorDeletingItem": "Der skete en fejl ved sletningen af mediet fra Jellyfin Server. Tjek venligst at Jellyfin Server har skrive adgang til mediemappen og prøv igen.",
|
||||
"ExtraLarge": "Ekstra stor",
|
||||
"ExtraLarge": "Ekstra Stor",
|
||||
"Extras": "Bonusmateriale",
|
||||
"Features": "Funktioner",
|
||||
"Filters": "Filtre",
|
||||
@ -1270,18 +1270,18 @@
|
||||
"LabelArtist": "Kunstner",
|
||||
"LabelAudio": "Lyd",
|
||||
"LabelBitrateMbps": "Bitrate (Mbps):",
|
||||
"LabelBlockContentWithTags": "Blokér filer med mærkerne:",
|
||||
"LabelBlockContentWithTags": "Blokér filer med etiketter:",
|
||||
"LabelBurnSubtitles": "Brænd undertekster:",
|
||||
"LabelCache": "Cache:",
|
||||
"LabelCertificatePassword": "Adgangskode til certifikat:",
|
||||
"LabelCertificatePasswordHelp": "Hvis dit certifikat kræver en adgangskode, skriv det benligst her.",
|
||||
"LabelCertificatePasswordHelp": "Hvis dit certifikat kræver en adgangskode, skriv det venligst her.",
|
||||
"LabelConvertTo": "Konvertér til:",
|
||||
"LabelDashboardTheme": "Server dashboard tema:",
|
||||
"LabelDateTimeLocale": "Dato og tid område:",
|
||||
"LabelDefaultScreen": "Standard skærm:",
|
||||
"LabelDisplayLanguage": "Visningssprog:",
|
||||
"LabelDisplayLanguageHelp": "Oversættelse af Jellyfin er et vedvarende projekt.",
|
||||
"LabelDisplayMode": "Visningsmodus:",
|
||||
"LabelDisplayMode": "Visningstilstand:",
|
||||
"LabelDropShadow": "Drop skygge:",
|
||||
"LabelDynamicExternalId": "{0} ID:",
|
||||
"LabelEmail": "Email:",
|
||||
@ -1297,7 +1297,7 @@
|
||||
"LabelMaxBitrate": "Maks bitrate:",
|
||||
"LabelMaxChromecastBitrate": "Chromecast streaming kvalitet:",
|
||||
"LabelMetadata": "Metadata:",
|
||||
"LabelModelUrl": "Model link",
|
||||
"LabelModelUrl": "Model URL",
|
||||
"LabelPreferredSubtitleLanguage": "Foretrukket undertekst sprog:",
|
||||
"LabelProfileCodecs": "Codecs:",
|
||||
"LabelProfileContainer": "Beholder:",
|
||||
@ -1378,7 +1378,7 @@
|
||||
"Off": "Fra",
|
||||
"OnlyForcedSubtitles": "Kun tvungne undertekster",
|
||||
"OnlyForcedSubtitlesHelp": "Kun undertekster markeret som tvungne vil blive indlæst.",
|
||||
"OnlyImageFormats": "Kun billedformater (VOBSUB, PGS, SUB, etc)",
|
||||
"OnlyImageFormats": "Kun billedformater (VOBSUB, PGS, SUB)",
|
||||
"Option2Player": "2+",
|
||||
"Option3D": "3D",
|
||||
"Option3Player": "3+",
|
||||
@ -1420,7 +1420,7 @@
|
||||
"PlayCount": "Afspilninger",
|
||||
"PlayNext": "Afspil næste",
|
||||
"PlayNextEpisodeAutomatically": "Afspil næste afsnit automatisk",
|
||||
"PlaybackErrorNoCompatibleStream": "Ingen kompatible streams er tilgængelige. Prøv venligst igen senere eller kontakt din system administrator for detaljer.",
|
||||
"PlaybackErrorNoCompatibleStream": "Denne klient er ikke kompatibel med medierne, og serveren sender ikke et kompatibelt medieformat.",
|
||||
"PlaybackErrorNotAllowed": "Du har ikke adgang til at afspille dette indhold. Kontakt venligst system administratoren for detaljer.",
|
||||
"PlaybackErrorPlaceHolder": "Indlæs venligst disken for at afspille denne video.",
|
||||
"PlaybackSettings": "Afspilningsindstillinger",
|
||||
@ -1436,7 +1436,7 @@
|
||||
"RefFramesNotSupported": "Antal af video reference billeder ikke understøttet",
|
||||
"RefreshMetadata": "Genopfrisk metadata",
|
||||
"RepeatAll": "Gentag alle",
|
||||
"RepeatMode": "Gentagelsesmode",
|
||||
"RepeatMode": "Gentagelses tilstand",
|
||||
"RepeatOne": "Gentag én",
|
||||
"RestartPleaseWaitMessage": "Vent venligst mens Jellyfin Server lukker og genstarter. Dette kan tage et minut eller to.",
|
||||
"RunAtStartup": "Kør ved opstart",
|
||||
@ -1444,7 +1444,7 @@
|
||||
"Schedule": "Tidsplan",
|
||||
"Screenshot": "Skærmbillede",
|
||||
"SecondaryAudioNotSupported": "Lydspor skift ikke understøttet",
|
||||
"SeriesDisplayOrderHelp": "Sortér afsnit efter sende dato, dvd rækkefølge eller obsolut nummering.",
|
||||
"SeriesDisplayOrderHelp": "Sortér episoder efter luftdato, DVD-orden eller absolut nummerering.",
|
||||
"ShowTitle": "Vis titel",
|
||||
"ShowYear": "Vis år",
|
||||
"Small": "Lille",
|
||||
@ -1536,5 +1536,106 @@
|
||||
"AllowFfmpegThrottlingHelp": "Når en omkodning eller remux kommer langt nok foran den nuværende afspildings position, pauses processen så der bruges færre resurser. Dette er mest brugbart når man ikke springer i filmen. Slå dette fra hvis du har problemer med playback.",
|
||||
"AllowFfmpegThrottling": "Begræns Omkodning",
|
||||
"AlbumArtist": "Album Artist",
|
||||
"Album": "Album"
|
||||
"Album": "Album",
|
||||
"EveryHour": "Hver time",
|
||||
"EveryXMinutes": "Hvert {0} minut",
|
||||
"OnWakeFromSleep": "Når du vågner fra søvn",
|
||||
"WeeklyAt": "{0}s ved {1}",
|
||||
"DailyAt": "Dagligt kl. {0}",
|
||||
"LastSeen": "Sidst set {0}",
|
||||
"PersonRole": "som {0}",
|
||||
"ListPaging": "{0}-{1} af {2}",
|
||||
"WriteAccessRequired": "Jellyfin Server kræver skriveadgang til denne mappe. Sørg for skriveadgang, og prøv igen.",
|
||||
"PathNotFound": "Stien blev ikke fundet. Sørg for, at stien er gyldig, og prøv igen.",
|
||||
"YadifBob": "YADIF Bob",
|
||||
"Yadif": "YADIF",
|
||||
"Track": "Spor",
|
||||
"TabNetworking": "Netværk",
|
||||
"SubtitleOffset": "Undertekst Offset",
|
||||
"SelectAdminUsername": "Vælg et brugernavn til administrator kontoen.",
|
||||
"Season": "Sæson",
|
||||
"ReleaseGroup": "Release Group",
|
||||
"Premiere": "Premiere",
|
||||
"PreferEmbeddedEpisodeInfosOverFileNames": "Foretrækker integreret episode information frem for filnavne",
|
||||
"PreferEmbeddedEpisodeInfosOverFileNamesHelp": "Dette bruger episode informationen fra de integrerede metadata, hvis den er tilgængelig.",
|
||||
"PlaybackData": "Afspilningsdata",
|
||||
"Person": "Person",
|
||||
"PasswordResetProviderHelp": "Vælg en leverandør af nulstil adgangskode, der skal bruges, når denne bruger anmoder om en nulstilling af adgangskode",
|
||||
"OtherArtist": "Anden kunstner",
|
||||
"OptionThumbCard": "Thumb card",
|
||||
"OptionThumb": "Thumb",
|
||||
"OptionRandom": "Tilfældig",
|
||||
"OptionPosterCard": "Plakatkort",
|
||||
"OptionPoster": "Plakat",
|
||||
"OptionLoginAttemptsBeforeLockoutHelp": "En værdi på nul betyder at arve standard for tre forsøg for normale brugere og fem for administratorer. Indstilling af dette til -1 vil deaktivere funktionen.",
|
||||
"OptionLoginAttemptsBeforeLockout": "Bestemmer, hvor mange forkerte loginforsøg, der kan gøres, før lockout finder sted.",
|
||||
"OptionList": "Liste",
|
||||
"OptionForceRemoteSourceTranscoding": "Tving transcoding af eksterne mediekilder (som LiveTV)",
|
||||
"NoCreatedLibraries": "Det ser ud til, at du ikke har oprettet nogen biblioteker endnu. {0} Vil du oprette en nu? {1}",
|
||||
"MusicVideo": "Musik Video",
|
||||
"MusicLibraryHelp": "Gennemgå {0} guide til navngivning af musik {1}.",
|
||||
"MusicArtist": "Musik Artist",
|
||||
"MusicAlbum": "Musik Album",
|
||||
"Movie": "Film",
|
||||
"MoreMediaInfo": "Medieinfo",
|
||||
"MessageNoServersAvailable": "Der er ikke fundet nogen servere ved hjælp af den automatiske serveropdagelse.",
|
||||
"MessageNoCollectionsAvailable": "Samlinger tillader dig at nyde personlige grupperinger af Film, Serier og Albums. Klik på + knappen for at skabe en samling.",
|
||||
"MessageConfirmAppExit": "Vil du afslutte?",
|
||||
"MediaInfoStreamTypeSubtitle": "Undertekst",
|
||||
"MediaInfoStreamTypeEmbeddedImage": "Indlejret billede",
|
||||
"MediaInfoStreamTypeAudio": "Lyd",
|
||||
"LaunchWebAppOnStartupHelp": "Åben web klienten i den standard web browser når serveren starter første gang. Dette vil ikke ske når restart server funktionen benyttes.",
|
||||
"LaunchWebAppOnStartup": "Åben webinterfacet når serveren startes",
|
||||
"LabelWeb": "Web:",
|
||||
"LabelVideoResolution": "Videoopløsning:",
|
||||
"LabelVideoBitrate": "Video bitrate:",
|
||||
"DashboardArchitecture": "Arkitektur: {0}",
|
||||
"DashboardOperatingSystem": "Styresystem: {0}",
|
||||
"DashboardServerName": "Server: {0}",
|
||||
"DashboardVersionNumber": "Version: {0}",
|
||||
"LabelTranscodingProgress": "Transcoding fremskridt:",
|
||||
"LabelTranscodingFramerate": "Transcoding framerate:",
|
||||
"LabelTranscodes": "Transcodes:",
|
||||
"LabelTranscodePath": "Transcode sti:",
|
||||
"LabelStreamType": "Stream type:",
|
||||
"LabelSonyAggregationFlags": "Sony aggregering flag:",
|
||||
"LabelSize": "Størrelse:",
|
||||
"EnableFastImageFadeInHelp": "Aktivér hurtigere fade-in-animation til indlæste billeder",
|
||||
"EnableFastImageFadeIn": "Hurtigt billede indtoning",
|
||||
"LabelPleaseRestart": "Ændringer vil træde i kraft efter web klienten er blevet genindlæst manuelt.",
|
||||
"LabelPlayMethod": "Afspilnings metode:",
|
||||
"LabelPlayerDimensions": "Afspillerdimensioner:",
|
||||
"LabelPlayer": "Afspiller:",
|
||||
"LabelPasswordResetProvider": "Udbyder til nulstilling as kodeord:",
|
||||
"LabelLibraryPageSizeHelp": "Indstiller mængden af genstande, der skal vises på en bibliotekside. Indstil til 0 for at deaktivere.",
|
||||
"LabelLibraryPageSize": "Biblioteks størrelse:",
|
||||
"LabelFolder": "Mappe:",
|
||||
"LabelBaseUrl": "Base URL:",
|
||||
"LabelBaseUrlHelp": "Du kan tilføje en speciel undermappe her for, at have adgang til serveren fra en mere unik URL.",
|
||||
"LabelDroppedFrames": "Tabte frames:",
|
||||
"LabelDeinterlaceMethod": "Konventerings metode:",
|
||||
"LabelCorruptedFrames": "Korrupte frames:",
|
||||
"LabelBitrate": "Bitrate:",
|
||||
"LabelAuthProvider": "Autentificeringsudbyder:",
|
||||
"LabelAudioSampleRate": "Lydeksempelfrekvens:",
|
||||
"LabelAudioCodec": "Lyd codec:",
|
||||
"LabelAudioChannels": "Lyd kanaler:",
|
||||
"LabelAudioBitrate": "Lyd bitrate:",
|
||||
"LabelAudioBitDepth": "Lyd bitdybde:",
|
||||
"HeaderFavoritePeople": "Foretrukne Personer",
|
||||
"HeaderFavoriteBooks": "Foretrukne Bøger",
|
||||
"FetchingData": "Henter yderligere data",
|
||||
"Episode": "Afsnit",
|
||||
"DeinterlaceMethodHelp": "Vælg hvilken konverteringsmulighed der skal bruges til transkodning af indhold.",
|
||||
"CopyStreamURLError": "Der skete en fejl med at kopiere URL'en.",
|
||||
"CopyStreamURLSuccess": "URL er kopiret succesfuldt.",
|
||||
"CopyStreamURL": "Kopir Stream URL",
|
||||
"ClientSettings": "Klient Indstillinger",
|
||||
"ButtonSplit": "Opdel",
|
||||
"BoxSet": "Box Set",
|
||||
"AuthProviderHelp": "Vælg en godkendelse udbyder, der skal bruges til at godkende denne brugers adgangskode.",
|
||||
"AskAdminToCreateLibrary": "Spørg en administrator om at oprette et bibliotek.",
|
||||
"Artist": "Artist",
|
||||
"EveryXHours": "Hver {0} time",
|
||||
"OnApplicationStartup": "Ved programstart"
|
||||
}
|
||||
|
@ -1097,7 +1097,7 @@
|
||||
"RefreshMetadata": "Aktualisiere Metadaten",
|
||||
"RefreshQueued": "Aktualisierung eingereiht.",
|
||||
"ReleaseDate": "Veröffentlichungsdatum",
|
||||
"RememberMe": "Erinnere mich",
|
||||
"RememberMe": "Angemeldet bleiben",
|
||||
"RemoveFromCollection": "Aus Sammlung entfernen",
|
||||
"RemoveFromPlaylist": "Von Wiedergabeliste entfernen",
|
||||
"Repeat": "Wiederholen",
|
||||
@ -1490,7 +1490,7 @@
|
||||
"AskAdminToCreateLibrary": "Bitten Sie einen Administrator, eine Bibliothek zu erstellen.",
|
||||
"NoCreatedLibraries": "Sieht so aus als hättest du bis jetzt keine Bibliothek erstellt. {0}Möchtest du jetzt eine Bibliothek erstellen?{1}",
|
||||
"AllowFfmpegThrottling": "Transkodierung drosseln",
|
||||
"PlaybackErrorNoCompatibleStream": "Es gab ein Problem bei der Erkennung des Wiedergabeprofils des Clients und der Server sendet kein kompatibles Format.",
|
||||
"PlaybackErrorNoCompatibleStream": "Dieser Client ist nicht mit den Medien kompatibel und der Server sendet kein kompatibles Medienformat.",
|
||||
"AllowFfmpegThrottlingHelp": "Wenn eine Transkodierung oder ein Remux weit genug über die aktuelle Abspielposition fortgeschritten ist, pausiere sie sodass weniger Ressourcen verbraucht werden. Dies ist am nützlichsten, wenn wenig geskippt wird. Bei Wiedergabeproblemen sollte diese Option deaktiviert werden.",
|
||||
"ClientSettings": "Client Einstellungen",
|
||||
"OnApplicationStartup": "Beim Starten der Applikation",
|
||||
@ -1515,5 +1515,11 @@
|
||||
"Artist": "Künstler",
|
||||
"AlbumArtist": "Album Künstler",
|
||||
"Album": "Album",
|
||||
"BoxSet": "Box Set"
|
||||
"BoxSet": "Box Set",
|
||||
"YadifBob": "YADIF Bob",
|
||||
"Yadif": "YADIF",
|
||||
"LabelLibraryPageSizeHelp": "Setzt die Anzahl der auf einer Seite angezeigten Objekte. Setze auf 0, um alle Elemente auf einer Seite anzuzeigen.",
|
||||
"LabelLibraryPageSize": "Bibliothek Seiten Größe:",
|
||||
"DeinterlaceMethodHelp": "Wähle die Deinterlacing-Methode zum Transkodieren von Inhalten im Zeilensprungverfahren (Interlace).",
|
||||
"LabelDeinterlaceMethod": "Deinterlacing-Methode:"
|
||||
}
|
||||
|
@ -990,6 +990,7 @@
|
||||
"MessageInstallPluginFromApp": "This plugin must be installed from within the app you intend to use it in.",
|
||||
"MessageInvalidForgotPasswordPin": "An invalid or expired pin code was entered. Please try again.",
|
||||
"MessageInvalidUser": "Invalid username or password. Please try again.",
|
||||
"MessageUnauthorizedUser": "You are not authorized to access the server at this time. Please contact your server administrator for more information.",
|
||||
"MessageItemSaved": "Item saved.",
|
||||
"MessageItemsAdded": "Items added.",
|
||||
"MessageLeaveEmptyToInherit": "Leave empty to inherit settings from a parent item or the global default value.",
|
||||
@ -1498,5 +1499,6 @@
|
||||
"EveryXMinutes": "Every {0} minutes",
|
||||
"EveryHour": "Every hour",
|
||||
"EveryXHours": "Every {0} hours",
|
||||
"OnApplicationStartup": "On application startup"
|
||||
"OnApplicationStartup": "On application startup",
|
||||
"UnsupportedPlayback": "Jellyfin cannot decrypt content protected by DRM but all content will be attempted regardless, including protected titles. Some files may appear completely black due to encryption or other unsupported features, such as interactive titles."
|
||||
}
|
||||
|
@ -38,7 +38,7 @@
|
||||
"Folders": "Carpetas",
|
||||
"Genres": "Géneros",
|
||||
"HeaderAlbumArtists": "Artistas de álbum",
|
||||
"HeaderContinueWatching": "Continuar viendo",
|
||||
"HeaderContinueWatching": "Seguir viendo",
|
||||
"HeaderNextUp": "A Continuación",
|
||||
"Movies": "Películas",
|
||||
"Photos": "Fotos",
|
||||
@ -361,23 +361,23 @@
|
||||
"EnableThemeSongs": "Canciones temáticas",
|
||||
"EnableThemeSongsHelp": "Reproducir canciones temáticas en el fondo mientras se navega por la biblioteca.",
|
||||
"EnableThemeVideos": "Videos temáticos",
|
||||
"EnableThemeVideosHelp": "Al habilitarse, los videos de tema se reproducirán de fondo mientras navegues por la biblioteca.",
|
||||
"EnableThemeVideosHelp": "Al habilitarse, los vídeos de tema se reproducirán de fondo mientras navegues por la biblioteca.",
|
||||
"Ended": "Finalizado",
|
||||
"EndsAtValue": "Termina en {0}",
|
||||
"Episodes": "Episodios",
|
||||
"ErrorAddingListingsToSchedulesDirect": "Ocurrió un error al añadir el alineamiento a tu cuenta de Schedules Direct. Schedules Direct solo permite una cantidad limitada de alineamientos por cuenta. Quizás necesites ingresar al sitio de Schedules Direct y eliminar otros alineamientos de tu cuenta antes de continuar.",
|
||||
"ErrorAddingMediaPathToVirtualFolder": "Ocurrió un error al agregar la ruta de medios. Por favor, asegurate que la ruta es válida y que el proceso que sirve Jellyfin tiene acceso a esa ubicación.",
|
||||
"ErrorAddingTunerDevice": "Ocurrió un error al añadir el dispositivo sintonizador. Por favor asegurate que está disponible e intenta de nuevo.",
|
||||
"ErrorAddingXmlTvFile": "Ocurrió un error al acceder al archivo de XmlTV. Por favor asegurate de que el archivo existe e intenta de nuevo.",
|
||||
"ErrorAddingXmlTvFile": "Ocurrió un error al acceder al archivo de XmlTV. Por favor asegúrate de que el archivo existe e intenta de nuevo.",
|
||||
"ErrorDeletingItem": "Ocurrió un error al eliminar el ítem del servidor Jellyfin. Por favor verifica que el servidor Jellyfin tiene permiso de escritura a la carpeta de medios e intenta de nuevo.",
|
||||
"ErrorGettingTvLineups": "Ocurrió un error al descargar los alineamientos de TV. Por favor asegúrate que tu información es correcta e intenta de nuevo.",
|
||||
"ErrorGettingTvLineups": "Ocurrió un error al descargar la guía de programación de TV. Por favor asegúrate que tu información es correcta e intenta de nuevo.",
|
||||
"ErrorMessageStartHourGreaterThanEnd": "La hora de fin tiene que ser mayor que la de inicio.",
|
||||
"ErrorPleaseSelectLineup": "Por favor selecciona un alineamiento e intenta de nuevo. Si no existen alineamientos disponibles, asegúrate de que tu nombre de usuario, contraseña y código postal son correctos.",
|
||||
"ErrorSavingTvProvider": "Ocurrió un error al guardar el proveedor de TV. Por favor asegúrate de que está disponible e intenta de nuevo.",
|
||||
"EveryNDays": "Cada {0} días",
|
||||
"ExitFullscreen": "Salir de pantalla completa",
|
||||
"ExtraLarge": "Extra grande",
|
||||
"ExtractChapterImagesHelp": "Extraer imágenes de los capítulos permitirá a las aplicaciones de Jellyfin mostrar menúes gráficos de selección de escena. El proceso puede ser lento, ocupar mucho tiempo de cpu y puede ocupar varios gigabytes de almacenamiento. El proceso corre cuando los videos son descubiertos, y también como un proceso periódico por la noche. El horario del proceso periódico se puede configurar en el área de procesos periódicos. No se recomienda correr este proceso durante horas de alto uso.",
|
||||
"ExtractChapterImagesHelp": "Extraer imágenes de los capítulos permitirá a las aplicaciones de Jellyfin mostrar menús gráficos de selección de escena. El proceso puede ser lento, ocupar mucho tiempo de cpu y puede ocupar varios gigabytes de almacenamiento. El proceso corre cuando los vídeos son descubiertos, y también como un proceso periódico por la noche. El horario del proceso periódico se puede configurar en el área de procesos periódicos. No se recomienda correr este proceso durante horas de alto uso.",
|
||||
"Extras": "Extras",
|
||||
"FFmpegSavePathNotFound": "No pudimos localizar FFmpeg usando la ruta que has ingresado. FFprobe también es necesario y debe existir en la misma carpeta. Éstos componentes normalmente están incluidos en la misma descarga. Por favor, revisa la ruta e intenta de nuevo.",
|
||||
"FastForward": "Avanzar Rápido",
|
||||
@ -391,8 +391,8 @@
|
||||
"FolderTypeBooks": "Libros",
|
||||
"FolderTypeMovies": "Películas",
|
||||
"FolderTypeMusic": "Música",
|
||||
"FolderTypeMusicVideos": "Videos Musicales",
|
||||
"FolderTypeUnset": "Sin especificar (Contenido Mixto)",
|
||||
"FolderTypeMusicVideos": "Vídeos Musicales",
|
||||
"FolderTypeUnset": "Contenido Mixto",
|
||||
"FormatValue": "Formato: {0}",
|
||||
"Friday": "Viernes",
|
||||
"Fullscreen": "Pantalla Completa",
|
||||
@ -421,7 +421,7 @@
|
||||
"HeaderCancelRecording": "Cancelar Grabación",
|
||||
"HeaderBranding": "Marca",
|
||||
"HeaderBooks": "Libros",
|
||||
"HeaderBlockItemsWithNoRating": "Bloquear elementos con rating de información no reconocible:",
|
||||
"HeaderBlockItemsWithNoRating": "Bloquear elementos con rating de información vacía o no reconocible:",
|
||||
"HeaderAutomaticUpdates": "Actualizaciones Automáticas",
|
||||
"HeaderAudioSettings": "Configuración del Audio",
|
||||
"HeaderAudioBooks": "Audiolibros",
|
||||
@ -429,7 +429,7 @@
|
||||
"HeaderApp": "Aplicación",
|
||||
"HeaderApiKeysHelp": "Las aplicaciones externas requieren una llave API para poder comunicarse con el servidor Jellyfin. Las llaves se emiten iniciando sesión con una cuenta Jellyfin u otorgando manualmente una clave a la aplicación.",
|
||||
"HeaderApiKeys": "Llaves API",
|
||||
"HeaderApiKey": "Llave API",
|
||||
"HeaderApiKey": "Contraseña API",
|
||||
"HeaderAllowMediaDeletionFrom": "Permitir el borrado de medios desde",
|
||||
"HeaderAlert": "Alerta",
|
||||
"HeaderAlbums": "Albumes",
|
||||
@ -444,10 +444,10 @@
|
||||
"HeaderActiveDevices": "Dispositivos activos",
|
||||
"HeaderAccessScheduleHelp": "Crear un calendario de acceso, para limitar el acceso en determinadas horas.",
|
||||
"HeaderAccessSchedule": "Acceder al Calendario",
|
||||
"HardwareAccelerationWarning": "Habilitar la aceleración de hardware puede causar inestabilidad en algunos entornos. Asegúrese de que su sistema operativo y los controladores de video estén completamente actualizados. Si tiene dificultades para reproducir el video después de habilitarlo, deberá volver a cambiar la configuración a \"Nada\".",
|
||||
"HardwareAccelerationWarning": "Habilitar la aceleración de hardware puede causar inestabilidad en algunos entornos. Asegúrese de que su sistema operativo y los controladores de vídeo estén completamente actualizados. Si tiene dificultades para reproducir el vídeo después de habilitarlo, deberá volver a cambiar la configuración a \"Nada\".",
|
||||
"HandledByProxy": "Manejado por un proxy reverso",
|
||||
"HDPrograms": "Programas en HD",
|
||||
"EncoderPresetHelp": "Elige un valor más rápido para mejorar la performance, o elige un valor más lento para mejorar la calidad.",
|
||||
"EncoderPresetHelp": "Elige un valor más rápido para mejorar el desempeño, o elige un valor más lento para mejorar la calidad.",
|
||||
"FetchingData": "Obteniendo información adicional",
|
||||
"Episode": "Episodio",
|
||||
"Yesterday": "Ayer",
|
||||
@ -455,5 +455,49 @@
|
||||
"BoxSet": "Colección",
|
||||
"Artist": "Artista",
|
||||
"AlbumArtist": "Artista del Album",
|
||||
"Album": "Album"
|
||||
"Album": "Album",
|
||||
"HeaderDateIssued": "Fecha de Emisión",
|
||||
"HeaderCustomDlnaProfiles": "Perfiles personalizados",
|
||||
"HeaderContinueListening": "Seguir escuchando",
|
||||
"HeaderContainerProfileHelp": "Los perfiles de contenedor indican las limitaciones de un dispositivo cuando se reproducen formatos específicos. Si se aplica una limitación, los medios se transcodificarán, incluso si el formato está configurado para reproducción directa.",
|
||||
"HeaderContainerProfile": "Perfil de contenedor",
|
||||
"HeaderConnectionFailure": "Conexión fallida",
|
||||
"HeaderConnectToServer": "Conectar al servidor",
|
||||
"HeaderConfirmRevokeApiKey": "Revocar llave de API",
|
||||
"HeaderConfirmProfileDeletion": "Confirmar borrado de perfil",
|
||||
"HeaderConfirmPluginInstallation": "Confirmar instalación del complemento",
|
||||
"HeaderConfigureRemoteAccess": "Configurar acceso remoto",
|
||||
"HeaderCodecProfileHelp": "Los perfiles de códec indican las limitaciones de un dispositivo cuando se reproducen códecs específicos. Si se aplica una limitación, los medios se transcodificarán, incluso si el códec está configurado para reproducción directa.",
|
||||
"HeaderCodecProfile": "Perfil del códec",
|
||||
"HeaderChapterImages": "Imágenes del capitulo",
|
||||
"HeaderChannels": "Canales",
|
||||
"HeaderChannelAccess": "Acceso al canal",
|
||||
"HeaderCastCrew": "Reparto",
|
||||
"HeaderCastAndCrew": "Reparto",
|
||||
"HeaderCancelSeries": "Cancelar serie",
|
||||
"H264CrfHelp": "El Factor de velocidad constante (CRF) es la configuración de calidad predeterminada para el codificador x264. Puede establecer los valores entre 0 y 51, donde valores más bajos resultarían en una mejor calidad (a expensas de tamaños de archivo más altos). Los valores correctos están entre 18 y 28. El valor predeterminado para x264 es 23, por lo que puede usar esto como punto de partida.",
|
||||
"DeinterlaceMethodHelp": "Seleccione el método de desentrelazado que se usará al transcodificar contenido entrelazado.",
|
||||
"HeaderFavoriteVideos": "Videos favoritos",
|
||||
"HeaderFavoritePeople": "Gente favorita",
|
||||
"HeaderFavoriteMovies": "Películas Favoritas",
|
||||
"HeaderFavoriteBooks": "Libros favoritos",
|
||||
"HeaderExternalIds": "IDs externos:",
|
||||
"HeaderError": "Error",
|
||||
"HeaderEpisodes": "Episodios",
|
||||
"HeaderEnabledFields": "Campos habilitados",
|
||||
"HeaderEditImages": "Editar imágenes",
|
||||
"HeaderEasyPinCode": "Pin sencillo",
|
||||
"HeaderDownloadSync": "Descargar y sincronizar",
|
||||
"HeaderDisplay": "Pantalla",
|
||||
"HeaderDirectPlayProfile": "Perfil Direct Play",
|
||||
"HeaderDevices": "Dispositivos",
|
||||
"HeaderDeviceAccess": "Acceso al dispositivo",
|
||||
"HeaderDeveloperInfo": "Información para desarrolladores",
|
||||
"HeaderDetectMyDevices": "Detectar mis dispositivos",
|
||||
"HeaderDeleteTaskTrigger": "Elminar disparador de acciones",
|
||||
"HeaderDeleteProvider": "Eliminar proveedor",
|
||||
"HeaderDeleteItems": "Eliminar ítems",
|
||||
"HeaderDeleteItem": "Eliminar ítem",
|
||||
"HeaderDeleteDevice": "Eliminar dispositivo",
|
||||
"HeaderDefaultRecordingSettings": "Ajustes de grabación por defecto"
|
||||
}
|
||||
|
@ -1248,7 +1248,7 @@
|
||||
"Descending": "Descendiente",
|
||||
"DirectStreamHelp1": "El tipo de archivo (H.264, AC3, etc.) y la resolución son compatibles con el dispositivo, pero no el contenedor (mkv, avi, wmv, etc.). El vídeo será re-empaquetado al vuelo antes de transmitirlo al dispositivo.",
|
||||
"DirectStreamHelp2": "La transmisión directa del archivo usa muy poco procesamiento sin ninguna pérdida de calidad en el vídeo.",
|
||||
"Director": "Dirección",
|
||||
"Director": "Dirección de",
|
||||
"Directors": "Directores",
|
||||
"Display": "Mostrar",
|
||||
"DisplayInMyMedia": "Mostrar en la pantalla de inicio",
|
||||
@ -1504,5 +1504,9 @@
|
||||
"LabelDeinterlaceMethod": "Metodo de desentrelazar:",
|
||||
"DeinterlaceMethodHelp": "Seleccione el método de desentrelazar para el transcodificar de contenido entrelazado.",
|
||||
"LabelLibraryPageSize": "Tamaño de la página de la biblioteca:",
|
||||
"LabelLibraryPageSizeHelp": "Establece la cantidad de artículos a mostrar en una página de la biblioteca. Ponlo en 0 para desactivar la paginación."
|
||||
"LabelLibraryPageSizeHelp": "Establece la cantidad de artículos a mostrar en una página de la biblioteca. Ponlo en 0 para desactivar la paginación.",
|
||||
"UnsupportedPlayback": "No es posible desencriptar contenido protegido mediante DRM; sin embargo se intentará su reproducción. Algunos archivos pueden aparecer completamente negros debido a encriptación u otras características no soportadas, como títulos interactivos.",
|
||||
"YadifBob": "YADIF Bob",
|
||||
"Yadif": "YADIF",
|
||||
"MessageUnauthorizedUser": "No tiene autorización para acceder al servidor en este momento. Póngase en contacto con el administrador del servidor para obtener más información."
|
||||
}
|
||||
|
@ -127,7 +127,7 @@
|
||||
"HeaderFavoriteAlbums": "آلبومهای مورد علاقه",
|
||||
"HeaderFavoriteArtists": "هنرمندان مورد علاقه",
|
||||
"HeaderFavoriteSongs": "آهنگهای مورد علاقه",
|
||||
"HeaderLiveTV": "تلویزیون زنده",
|
||||
"HeaderLiveTV": "پخش زنده",
|
||||
"Movies": "فیلمها",
|
||||
"Photos": "عکسها",
|
||||
"Playlists": "لیستهای پخش",
|
||||
|
@ -199,10 +199,10 @@
|
||||
"EditMetadata": "Éditer les métadonnées",
|
||||
"EditSubtitles": "Modifier les sous-titres",
|
||||
"EnableBackdrops": "Images d'arrière-plans",
|
||||
"EnableBackdropsHelp": "Afficher les images d'arrière-plans sur certaines pages pendant la navigation dans la médiathèque.",
|
||||
"EnableBackdropsHelp": "Afficher des images d'arrière-plans sur certaines pages pendant la navigation dans la médiathèque.",
|
||||
"EnableCinemaMode": "Mode cinéma",
|
||||
"EnableColorCodedBackgrounds": "Fonds avec code couleur",
|
||||
"EnableDisplayMirroring": "Partage d'écran",
|
||||
"EnableDisplayMirroring": "Affichage en miroir",
|
||||
"EnableExternalVideoPlayers": "Lecteurs vidéo externes",
|
||||
"EnableExternalVideoPlayersHelp": "Une liste des lecteurs externes sera affichée au lancement de la lecture d'une vidéo.",
|
||||
"EnableHardwareEncoding": "Activer l'encodage matériel",
|
||||
@ -231,7 +231,7 @@
|
||||
"EveryNDays": "Tous les {0} jours",
|
||||
"ExitFullscreen": "Sortir du plein écran",
|
||||
"ExtraLarge": "Très Grand",
|
||||
"ExtractChapterImagesHelp": "L'extraction d'images de chapitre permettra aux applications d'afficher des menus visuels pour la sélection des scènes. Le processus peut être long, consommateur de ressources et peut nécessiter de nombreux gigaoctets de stockage. Il s'exécute lorsque des vidéos sont découvertes et également comme tâche planifiée. La planification peut être modifiée dans les options du planificateur de tâches. Il n'est pas conseillé d'exécuter cette tâche pendant les heures d'usage intensif.",
|
||||
"ExtractChapterImagesHelp": "L'extraction d'images de chapitre permettra aux applications d'afficher des menus visuels pour la sélection des scènes. Le processus peut être lent, gourmand en ressources et peut nécessiter plusieurs gigaoctets de stockage. Il s'exécute lorsque des vidéos sont découvertes et également comme tâche planifiée. L'horaire est configurable dans les options du planificateur de tâches. Il n'est pas recommandé d'exécuter cette tâche pendant les heures d'usage intensif.",
|
||||
"FFmpegSavePathNotFound": "Nous ne pouvons pas localiser FFmpeg en utilisant le chemin que vous avez saisi. FFprobe est également nécessaire et doit exister dans le même dossier. Ces composants sont généralement regroupés dans le même téléchargement. Veuillez vérifier le chemin et essayer à nouveau.",
|
||||
"FastForward": "Avance rapide",
|
||||
"Favorite": "Favori",
|
||||
@ -274,7 +274,7 @@
|
||||
"HeaderAddUser": "Ajouter un utilisateur",
|
||||
"HeaderAdditionalParts": "Parties additionelles",
|
||||
"HeaderAdmin": "Administrateur",
|
||||
"HeaderAlbumArtists": "Artistes d'album",
|
||||
"HeaderAlbumArtists": "Artistes de l'album",
|
||||
"HeaderAlert": "Alerte",
|
||||
"HeaderAllowMediaDeletionFrom": "Autoriser la suppression de médias à partir de",
|
||||
"HeaderApiKey": "Clé API",
|
||||
@ -624,7 +624,7 @@
|
||||
"LabelKidsCategories": "Catégories jeunesse :",
|
||||
"LabelKodiMetadataDateFormat": "Format de la date de sortie :",
|
||||
"LabelKodiMetadataDateFormatHelp": "Toutes les dates des fichiers NFO seront anlysés en utilisant ce format.",
|
||||
"LabelKodiMetadataEnableExtraThumbs": "Copier les extrafanart vers le champ extrathumbs",
|
||||
"LabelKodiMetadataEnableExtraThumbs": "Copier les extrafanart dans les champs extrathumbs",
|
||||
"LabelKodiMetadataEnableExtraThumbsHelp": "Pendant le téléchargement, les images peuvent être enregistrées en tant qu'extrafanart et extrathumbs pour améliorer la compatibilité avec le skin Kodi.",
|
||||
"LabelKodiMetadataEnablePathSubstitution": "Activer la substitution des chemins",
|
||||
"LabelKodiMetadataEnablePathSubstitutionHelp": "Active la substitution du chemin des images en utilisant les paramètres de substitution des chemins du serveur.",
|
||||
@ -1399,7 +1399,7 @@
|
||||
"AuthProviderHelp": "Sélectionner un fournisseur d'authentification pour authentifier le mot de passe de cet utilisateur.",
|
||||
"PasswordResetProviderHelp": "Choisissez un Fournisseur de réinitialisation de mot de passe à utiliser lorsqu'un utilisateur demande la réinitialisation de son mot de passe",
|
||||
"HeaderHome": "Accueil",
|
||||
"LabelUserLoginAttemptsBeforeLockout": "Essais manqués restants avant verrouillage utilisateur :",
|
||||
"LabelUserLoginAttemptsBeforeLockout": "Tentatives de connexion échouées avant que l'utilisateur ne soit verrouillé:",
|
||||
"DashboardOperatingSystem": "Système d'Exploitation: {0}",
|
||||
"DashboardArchitecture": "Architecture : {0}",
|
||||
"LaunchWebAppOnStartup": "Démarrer l'interface web dans mon navigateur quand le serveur est démarré",
|
||||
@ -1409,7 +1409,7 @@
|
||||
"MessageNoServersAvailable": "Aucun serveur n'a été trouvé en utilisant la recherche automatique de serveur.",
|
||||
"OptionBanner": "Bannière",
|
||||
"OptionList": "Liste",
|
||||
"OptionLoginAttemptsBeforeLockout": "Détermine le nombre de tentative de connexion infructueuse avant le blocage d'accès.",
|
||||
"OptionLoginAttemptsBeforeLockout": "Définis le nombre de tentatives de connexion échouées avant blocage du compte.",
|
||||
"OptionPoster": "Affiche",
|
||||
"OptionPosterCard": "Affichette",
|
||||
"OptionThumb": "Vignette",
|
||||
@ -1437,10 +1437,10 @@
|
||||
"LabelVideoBitrate": "Débit vidéo :",
|
||||
"LabelTranscodingProgress": "Progression du transcodage :",
|
||||
"LabelTranscodingFramerate": "Taux de rafraîchissement du transcodage :",
|
||||
"LabelPleaseRestart": "Les changements prendront effet lors d'un rechargement manuel du client web.",
|
||||
"LabelPleaseRestart": "Les changements prendront effet après un rechargement manuel du client web.",
|
||||
"LabelPlayMethod": "Méthode de lecture :",
|
||||
"LabelPlayer": "Lecteur :",
|
||||
"LabelBaseUrl": "Lien d'origine :",
|
||||
"LabelBaseUrl": "URL de base :",
|
||||
"LabelAudioSampleRate": "Taux d’échantillonnage audio :",
|
||||
"LabelAudioCodec": "Codec audio :",
|
||||
"LabelAudioChannels": "Canaux audio :",
|
||||
@ -1448,7 +1448,7 @@
|
||||
"FetchingData": "Récuperer des données suplémentaires",
|
||||
"CopyStreamURLSuccess": "URL copiée avec succès.",
|
||||
"CopyStreamURL": "Copier l'URL du flux",
|
||||
"LabelBaseUrlHelp": "Vous pouvez ajouter un sous-répertoire personalisé ici pour accéder au serveur depuis une URL plus exclusive.",
|
||||
"LabelBaseUrlHelp": "Vous pouvez ajouter un sous-répertoire personnalisé ici pour accéder au serveur via un lien unique.",
|
||||
"HeaderFavoritePeople": "Personnes préférées",
|
||||
"OptionRandom": "Aléatoire",
|
||||
"ButtonSplit": "Séparer",
|
||||
@ -1458,16 +1458,16 @@
|
||||
"MessageConfirmAppExit": "Voulez-vous quitter ?",
|
||||
"LabelVideoResolution": "Résolution vidéo :",
|
||||
"LabelStreamType": "Type de flux :",
|
||||
"EnableFastImageFadeInHelp": "Activer un transition plus rapide pour images téléchargées",
|
||||
"EnableFastImageFadeIn": "Transition d'image rapide",
|
||||
"EnableFastImageFadeInHelp": "Activer un fondu plus rapide pour l'animation des images chargées",
|
||||
"EnableFastImageFadeIn": "Fondu d'image rapide",
|
||||
"LabelPlayerDimensions": "Dimension du lecteur :",
|
||||
"LabelDroppedFrames": "Images perdues :",
|
||||
"LabelCorruptedFrames": "Images corrompues :",
|
||||
"CopyStreamURLError": "Il y a eu une erreur lors de la copie du URL.",
|
||||
"CopyStreamURLError": "Une erreur est survenue lors de la copie de l'URL.",
|
||||
"AskAdminToCreateLibrary": "Demander à un administrateur de créer une médiathèque.",
|
||||
"AllowFfmpegThrottlingHelp": "Quand le transcodage ou le remultiplexage est suffisamment loin de la position de lecture, le processus se mettra en pause afin d’économiser des ressources. Plus utile lors d’une lecture continue. À désactiver en cas de problèmes de lecture.",
|
||||
"AllowFfmpegThrottling": "Adapter la Vitesse du Transcodage",
|
||||
"NoCreatedLibraries": "Il semblerait que vous n'ayez créé aucune librairie. {0}Voulez-vous en créer une maintenant ?{1}",
|
||||
"NoCreatedLibraries": "Il semble que vous n'ayez pas encore créé de bibliothèques. {0}Voulez-vous en créer une maintenant ?{1}",
|
||||
"PlaybackErrorNoCompatibleStream": "Ce client n'est pas compatible avec le média et le serveur n'envoie pas de format compatible.",
|
||||
"PreferEmbeddedEpisodeInfosOverFileNames": "Préférer les informations intégrées aux noms de fichiers",
|
||||
"PreferEmbeddedEpisodeInfosOverFileNamesHelp": "Utilise les informations des métadonnées intégrées, si disponible.",
|
||||
@ -1500,5 +1500,7 @@
|
||||
"LabelDeinterlaceMethod": "Méthode de désentrelacement :",
|
||||
"DeinterlaceMethodHelp": "Sélectionnes la méthode de désentrelacement à utiliser lors du transcodage de contenu entrelacé.",
|
||||
"LabelLibraryPageSize": "Taille de la page de la médiathèque :",
|
||||
"LabelLibraryPageSizeHelp": "Définit la quantité d'éléments à afficher sur une page de médiathèque. Définir à 0 afin de désactiver la pagination."
|
||||
"LabelLibraryPageSizeHelp": "Définit la quantité d'éléments à afficher sur une page de médiathèque. Définir à 0 afin de désactiver la pagination.",
|
||||
"UnsupportedPlayback": "Jellyfin ne peut pas décoder du contenu protégé par un système de gestion des droits numériques, mais une tentative de lecture sera effectuée sur tout le contenu, y compris les titres protégés. Certains fichiers peuvent apparaître complètement noir, du fait de protections ou de fonctionnalités non supportées, comme les titres interactifs.",
|
||||
"MessageUnauthorizedUser": "Vous n'êtes pas autorisé à accéder au serveur pour le moment. Veuillez contacter l'administrateur de votre serveur pour plus d'informations."
|
||||
}
|
||||
|
@ -758,7 +758,7 @@
|
||||
"HeaderMusicQuality": "Zene minősége",
|
||||
"HeaderNewApiKey": "Új API kulcs",
|
||||
"HeaderNewDevices": "Új eszközök",
|
||||
"HeaderNextEpisodePlayingInValue": "Következő epizód lejátszása {0} múlva",
|
||||
"HeaderNextEpisodePlayingInValue": "A következő epizód {0} múlva automatikusan elindul",
|
||||
"HeaderNextVideoPlayingInValue": "Következő videó lejátszása {0}",
|
||||
"HeaderOtherItems": "Egyéb elemek",
|
||||
"HeaderPasswordReset": "Jelszó visszaállítása",
|
||||
@ -1473,8 +1473,8 @@
|
||||
"PlaybackErrorNoCompatibleStream": "Ez a kliens nem kompatibilis ezzel a médiával és a szerver nem tud kompatibilis streamet küldeni az eszközre.",
|
||||
"AllowFfmpegThrottlingHelp": "Ha az átkódolás vagy remux eléggé előtöltődött a jelenlegi lejátszási pozícióhoz képest, ez megállítja a folyamatot, hogy kevesebb erőforrást vegyen igénybe. Ez akkor hasznos, ha ritkán ugrálsz előre a lejátszott videókban. Kapcsold ki, ha lejátszási problémákba ütközöl.",
|
||||
"AllowFfmpegThrottling": "Átkódolás visszafogása",
|
||||
"PreferEmbeddedEpisodeInfosOverFileNames": "Inkább a beágyazott epizódokra vonatkozó információkat részesítse előnyben a fájlnevekkel szemben",
|
||||
"PreferEmbeddedEpisodeInfosOverFileNamesHelp": "Ez a beágyazott metaadatok epizódinformációit használja, ha rendelkezésre állnak.",
|
||||
"PreferEmbeddedEpisodeInfosOverFileNames": "Az epizódból elérhető beágyazott információkat használja inkább, fájlnevek helyett",
|
||||
"PreferEmbeddedEpisodeInfosOverFileNamesHelp": "Ez az epizóddal kapcsolatos beágyazott metaadatokat használja, ha azok elérhetőek.",
|
||||
"OnApplicationStartup": "Az alkalmazás indításakor",
|
||||
"EveryXHours": "{0} óránként",
|
||||
"EveryHour": "Óránként",
|
||||
@ -1484,7 +1484,7 @@
|
||||
"DailyAt": "Naponta ekkor: {0}",
|
||||
"LastSeen": "Utoljára elérhető {0}",
|
||||
"PersonRole": "mint {0}",
|
||||
"ListPaging": "{0}-{1} ennyiből: {2}",
|
||||
"ListPaging": "{0}-{1} / {2}",
|
||||
"WriteAccessRequired": "A Jellyfin Szerver írási jogosultságot igényel ehhez a könyvtárhoz. Kérjük, ellenőrizd, hogy van-e jogod írni ide, majd próbáld újra.",
|
||||
"PathNotFound": "Az elérési út nem található. Kérjük, ellenőrizd, hogy az elérési út megfelelő-e, majd próbáld újra.",
|
||||
"Track": "Szám",
|
||||
@ -1494,8 +1494,17 @@
|
||||
"Movie": "Film",
|
||||
"Episode": "Epizód",
|
||||
"ClientSettings": "Kliens beállítások",
|
||||
"BoxSet": "Dobozos készlet",
|
||||
"BoxSet": "Dobozos kiadások",
|
||||
"Artist": "Előadó",
|
||||
"AlbumArtist": "Album előadó",
|
||||
"Album": "Album"
|
||||
"Album": "Album",
|
||||
"LabelLibraryPageSizeHelp": "Az oldalnként megmutatott elemek száma. Nullára állítva a lapozási funkció ki lesz kapcsolva.",
|
||||
"LabelLibraryPageSize": "Könyvtár oldalméret:",
|
||||
"LabelDeinterlaceMethod": "Deinterlacing mód:",
|
||||
"DeinterlaceMethodHelp": "Válassza ki a váltottsorosság megszűntetéséhez használandó módszert a váltottsoros tartalmak transzkódolásakor.",
|
||||
"UnsupportedPlayback": "Jellyfin nem tud DRM-titkosított tartalmak dekriptálására, ettől függetlenül a lejátszással mindig megpróbálkozik. Néhány fájl emiatt teljesen fekete képernyőt ad, amely vagy a titkosítás miatt van, vagy nem olyan nem támogatott tartalmak miatt, mint az interaktív címek.",
|
||||
"YadifBob": "YADIF Bob",
|
||||
"Yadif": "YADIF",
|
||||
"ReleaseGroup": "Kiadócsoport",
|
||||
"MessageUnauthorizedUser": "Jelenleg nincs jogosultságod a szerverhez való hozzáféréshez. Kérjük, lépj kapcsolatba az adminisztrátorral további információkért!"
|
||||
}
|
||||
|
@ -93,7 +93,7 @@
|
||||
"ButtonRename": "Rinomina",
|
||||
"ButtonRepeat": "Ripeti",
|
||||
"ButtonResetEasyPassword": "Resetta codice PIN",
|
||||
"ButtonResetPassword": "Ripristina Password",
|
||||
"ButtonResetPassword": "Reset Password",
|
||||
"ButtonRestart": "Riavvia",
|
||||
"ButtonResume": "Riprendi",
|
||||
"ButtonRevoke": "Revocare",
|
||||
@ -202,7 +202,7 @@
|
||||
"EnableStreamLoopingHelp": "Abilita questo se gli streaming in diretta contengono solo pochi secondi di dati e devono essere costantemente richiesti. L'abilitazione di questa funzione quando non è servita può causare problemi.",
|
||||
"EnableThemeSongs": "Canzoni a tema",
|
||||
"EnableThemeSongsHelp": "Le canzoni a tema saranno riprodotte mentre visualizzi la tua libreria.",
|
||||
"EnableThemeVideos": "VIdeo a tema",
|
||||
"EnableThemeVideos": "Video a tema",
|
||||
"EnableThemeVideosHelp": "Riproduzione dei video a tema sullo sfondo mentre visualizzi la tua libreria.",
|
||||
"Ended": "Finito",
|
||||
"EndsAtValue": "Finirà alle {0}",
|
||||
@ -1040,9 +1040,9 @@
|
||||
"PackageInstallFailed": "Installazione di {0} (versione {1}) fallita.",
|
||||
"ParentalRating": "Classificazione per genitori",
|
||||
"PasswordMatchError": "Le password non coincidono.",
|
||||
"PasswordResetComplete": "la password è stata ripristinata.",
|
||||
"PasswordResetConfirmation": "Sei sicuro di voler ripristinare la password?",
|
||||
"PasswordResetHeader": "Ripristina Password",
|
||||
"PasswordResetComplete": "Reset della password eseguito.",
|
||||
"PasswordResetConfirmation": "Sicuro di voler eseguire il reset della password?",
|
||||
"PasswordResetHeader": "Reset Password",
|
||||
"PasswordSaved": "Password salvata.",
|
||||
"People": "Attori",
|
||||
"PerfectMatch": "Corrispondenza perfetta",
|
||||
@ -1202,7 +1202,7 @@
|
||||
"TabProfiles": "Profili",
|
||||
"TabRecordings": "Registrazioni",
|
||||
"TabResponses": "Risposte",
|
||||
"TabResumeSettings": "Ripristina",
|
||||
"TabResumeSettings": "Riprendi",
|
||||
"TabScheduledTasks": "Operazioni Pianificate",
|
||||
"TabSeries": "Serie TV",
|
||||
"TabSettings": "Impostazioni",
|
||||
@ -1355,7 +1355,7 @@
|
||||
"OptionProtocolHls": "Streaming in Diretta HTTP",
|
||||
"OptionDownloadArtImage": "Art",
|
||||
"OptionMax": "Massimo",
|
||||
"PasswordResetProviderHelp": "Scegli un Provider Reset Password da utilizzare quando questo utente richiede un reset della password",
|
||||
"PasswordResetProviderHelp": "Scegli un Provider Reset Password da utilizzare quando questo utente ne richiede il reset",
|
||||
"PlaybackData": "Dati di Riproduzione",
|
||||
"TagsValue": "Tag: {0}",
|
||||
"Whitelist": "Lista bianca",
|
||||
@ -1488,8 +1488,8 @@
|
||||
"ListPaging": "{0}-{1} di {2}",
|
||||
"WriteAccessRequired": "Jellyfin Server richiede il permesso di scrittura su questa cartella. Verificare l'autorizzazione e riprovare.",
|
||||
"PathNotFound": "Percorso non trovato. Assicurarsi che sia valido e riprovare.",
|
||||
"YadifBob": "Yadif Bob",
|
||||
"Yadif": "Yadif",
|
||||
"YadifBob": "YADIF Bob",
|
||||
"Yadif": "YADIF",
|
||||
"Track": "Traccia",
|
||||
"Season": "Stagione",
|
||||
"OtherArtist": "Altri Artisti",
|
||||
@ -1497,5 +1497,8 @@
|
||||
"LabelLibraryPageSizeHelp": "Numero di elementi presenti nella paginazione della libreria. Il valore 0 disabilita la paginazione.",
|
||||
"LabelLibraryPageSize": "Elementi nella paginazione della libreria:",
|
||||
"Episode": "Episodio",
|
||||
"BoxSet": "Cofanetto"
|
||||
"BoxSet": "Cofanetto",
|
||||
"AlbumArtist": "Artisti dell'Album",
|
||||
"ReleaseGroup": "Release Group",
|
||||
"UnsupportedPlayback": "Jellyfin non è in grado di decriptare i contenuti protetti da DRM ma tutti i contenuti verranno tentati a prescindere, compresi quelli protetti. Alcuni file potrebbero apparire completamente neri a causa della crittografia o di altre funzionalità non supportate, come i titoli interattivi."
|
||||
}
|
||||
|
@ -1502,5 +1502,6 @@
|
||||
"AskAdminToCreateLibrary": "Tasýǵyshanany jasaý úshin ákimshiden suraý.",
|
||||
"AllowFfmpegThrottling": "Qaıta kodtaýdy retteý",
|
||||
"PlaybackErrorNoCompatibleStream": "Klıent profaılyn jasaýda másele oryn aldy jáne server úılesimdi pishiminde tasyǵysh derekterin jibermedi.",
|
||||
"AllowFfmpegThrottlingHelp": "Qaıta kodtaý nemese qaıta býmalaý aǵymdyq oınatý jaıǵasymynan edáýir alǵa ozǵanda, qor kózderin azdaý tutynatyndaı etip údiristi kidirtedi. Bul jıi izdemeı qaraý kezinde paıdaly. Eger oınatý máseleleri bolsa, ony óshirińiz."
|
||||
"AllowFfmpegThrottlingHelp": "Qaıta kodtaý nemese qaıta býmalaý aǵymdyq oınatý jaıǵasymynan edáýir alǵa ozǵanda, qor kózderin azdaý tutynatyndaı etip údiristi kidirtedi. Bul jıi izdemeı qaraý kezinde paıdaly. Eger oınatý máseleleri bolsa, ony óshirińiz.",
|
||||
"Album": ""
|
||||
}
|
||||
|
@ -1265,7 +1265,7 @@
|
||||
"MediaInfoBitDepth": "비트뎁스",
|
||||
"LabelPostProcessor": "후처리 애플리케이션:",
|
||||
"RefreshQueued": "새로 고침 대기 중",
|
||||
"NoPluginConfigurationMessage": "",
|
||||
"NoPluginConfigurationMessage": "이 플러그인은 설정할 것이 없습니다.",
|
||||
"OptionExtractChapterImage": "챕터 이미지 추출 활성화",
|
||||
"RestartPleaseWaitMessage": "Jellyfin 서버가 종료되었다가 다시 시작될 때까지 기다리십시오. 1-2분 정도 걸릴 수 있습니다.",
|
||||
"Up": "위",
|
||||
@ -1378,24 +1378,36 @@
|
||||
"LabelDefaultScreen": "기본 화면:",
|
||||
"LabelDateTimeLocale": "날짜/시간 로케일:",
|
||||
"XmlTvPathHelp": "XMLTV 파일을 저장할 경로를 설정합니다. Jellyfin은 이 파일을 읽어 주기적으로 변경 사항을 확인합니다. 파일 생성 및 파일 업데이트는 사용자가 수동으로 해야 합니다.",
|
||||
"MessageTheFollowingLocationWillBeRemovedFromLibrary": "다음 미디어 위치가 라이브러리에서 제거:",
|
||||
"MessageTheFollowingLocationWillBeRemovedFromLibrary": "다음과 같은 미디어 장소들을 라이브러리에서 제거합니다:",
|
||||
"MessageReenableUser": "재활성화는 아래를 참조하십시오",
|
||||
"MessagePluginConfigurationRequiresLocalAccess": "이 플러그인을 구성하려면 로컬 서버에 직접 로그인하십시오.",
|
||||
"MessageNoCollectionsAvailable": "컬렉션을 사용하면 영화, 시리즈 및 앨범의 개인화 된 그룹을 즐길 수 있습니다. + 버튼을 클릭하여 컬렉션 만들기를 시작합니다.",
|
||||
"LabelPlayerDimensions": "플레이어 넓이:",
|
||||
"LabelPlayerDimensions": "플레이어 화면 크기:",
|
||||
"LabelParentNumber": "부모 번호:",
|
||||
"LabelLineup": "라인업:",
|
||||
"LabelDroppedFrames": "떨어진 프레임:",
|
||||
"LabelDroppedFrames": "드롭 프레임:",
|
||||
"LabelDeinterlaceMethod": "디인터레이싱 방법:",
|
||||
"LabelCustomDeviceDisplayNameHelp": "디바이스에서 보고 한 이름을 사용하려면 사용자 정의 표시 이름을 제공하거나 비워 두십시오.",
|
||||
"LabelCustomDeviceDisplayNameHelp": "기기에 표시할 이름을 지정하거나 공란으로 두어 등록된 기기 명을 사용합니다.",
|
||||
"Episode": "에피소드",
|
||||
"EnableColorCodedBackgrounds": "색이 입혀진 배경",
|
||||
"EnableColorCodedBackgrounds": "컬러코드가 삽입된 배경",
|
||||
"DropShadow": "하단 그림자",
|
||||
"Depressed": "압축",
|
||||
"DeinterlaceMethodHelp": "인터레이스 컨텐츠를 트랜스코딩 할 때 사용할 디인터레이싱 방법을 선택하십시오.",
|
||||
"Depressed": "압축된",
|
||||
"DeinterlaceMethodHelp": "비월주사식 콘텐츠를 순차주사로 변환할시 사용할 비월제거 방법을 선택하십시오.",
|
||||
"ClientSettings": "클라이언트 설정",
|
||||
"BoxSet": "박스 세트",
|
||||
"Artist": "아티스트",
|
||||
"AlbumArtist": "앨범 아티스트",
|
||||
"Album": "앨범"
|
||||
"Album": "앨범",
|
||||
"NoCreatedLibraries": "라이브러리가 없는 것 같습니다. {0}지금 당장 하나 만드시겠습니까?{1}",
|
||||
"NewCollectionHelp": "컬렉션을 통해 사용자 정의로 영화와 같은 콘텐츠들을 묶어놓을 수 있습니다.",
|
||||
"Never": "절대 아님",
|
||||
"Movie": "영화",
|
||||
"MoveRight": "오른쪽으로 이동",
|
||||
"MoveLeft": "왼쪽으로 이동",
|
||||
"MoreFromValue": "{0} 에서",
|
||||
"MetadataSettingChangeHelp": "변환된 메타데이터 설정은 새롭게 들어오는 콘텐츠에 적용이 됩니다. 기존의 콘텐츠에도 적용을 하려면 상세 스크린을 열어 새로 고침 버튼을 누르거나 메타데이터 메니저를 통해 대량으로 새로 고침을 하면 됩니다.",
|
||||
"MessagePluginInstallDisclaimer": "Jellyfin 커뮤니티에서 만들어진 플러그인들은 Jellyfin의 기능들과 편리성을 향상시켜줄 수 있습니다. 하지만 설치하기 전에 이런 플러그인들은 라이브러리 스켄 속도 저하, 추가된 백그라운드 프로세싱 그리고 시스템의 불안정성같은 문제점들을 Jellyfin 서버에 일으킬 수도 있다는 것을 유념하시기 바람니다.",
|
||||
"LabelLibraryPageSizeHelp": "라이브러리 페이지에 표시될 아이템들의 수를 조절합니다. 0 으로 지정시 페이징을 비활성화 합니다.",
|
||||
"LabelLibraryPageSize": "라이브러리 페이지 크기:",
|
||||
"LabelEnableBlastAliveMessages": "서버 활성화 메세지"
|
||||
}
|
||||
|
@ -382,7 +382,7 @@
|
||||
"Images": "Bilder",
|
||||
"ImportFavoriteChannelsHelp": "Hvis aktivert, vil kun kanaler som er markert som favoritt på tuneren bli importert.",
|
||||
"ImportMissingEpisodesHelp": "Hvis aktivert, vil informasjon om manglende episoder importeres til Jellyfin-databasen og de vil vises under sesonger og serier. Dette kan føre til at skanning av biblioteket tar betydelig lengre tid.",
|
||||
"InstallingPackage": "Installerer {0}",
|
||||
"InstallingPackage": "Installerer {0} (versjon {1})",
|
||||
"InstantMix": "Direktemiks",
|
||||
"ItemCount": "{0} elementer",
|
||||
"Items": "Elementer",
|
||||
@ -1129,9 +1129,9 @@
|
||||
"AllowOnTheFlySubtitleExtractionHelp": "Integrerte undertekster kan hentes ut fra videoer og bli levert til klienter i klartekst for å unngå omkoding av video. På noen systemer kan dette ta lang tid og føre til opphold i avspillingen samtidig som prosessen pågår. Deaktiver innstillingen for å brenne inn underteksten i videoen ved hjelp av omkoding når undertekstformatet ikke er støttet av klienten.",
|
||||
"AllowOnTheFlySubtitleExtraction": "Tillat at undertekster hentes ut fortløpende",
|
||||
"AllLanguages": "Alle språk",
|
||||
"AllComplexFormats": "Alle avanserte formater (ASS, SSA, VOBSUB, PGS, SUB/IDX, etc.)",
|
||||
"AllComplexFormats": "Alle avanserte formater (ASS, SSA, VOBSUB, PGS, SUB, IDX)",
|
||||
"AccessRestrictedTryAgainLater": "Tilgang er for øyeblikket begrenset. Vennligst prøv igjen senere.",
|
||||
"BurnSubtitlesHelp": "Angir om serveren skal brenne inn teksting når videoer konverteres, basert på tekstformatet. Ytelsen på serveren vil forbedres dersom tekstingen ikke brennes inn. Velg Automatisk for å brenne inn bildebaserte formater (VOBSUB, PGS, SUB/IDX, osv.) og enkelte ASS/SSA-undertekster.",
|
||||
"BurnSubtitlesHelp": "Angir om serveren skal brenne inn teksting når videoer konverteres, basert på tekstformatet. Ytelsen på serveren vil forbedres dersom tekstingen ikke brennes inn. Velg Automatisk for å brenne inn bildebaserte formater (VOBSUB, PGS, SUB, IDX) og enkelte ASS eller SSA-undertekster.",
|
||||
"General": "Generelt",
|
||||
"ChangingMetadataImageSettingsNewContent": "Endringer gjort i innstillinger for metadata eller omslagsbilder vil kun gjelde nytt innhold i biblioteket ditt. For å endre eksisterende innhold, må du oppdatere dets metadata manuelt.",
|
||||
"DefaultSubtitlesHelp": "Undertekster lastes inn basert på flaggene \"standard\" og \"tvungen\" i videoens integrerte metadata. Språkpreferanser tas høyde for dersom flere valg er tilgjengelig.",
|
||||
@ -1218,7 +1218,7 @@
|
||||
"Unmute": "Skru på lyd",
|
||||
"OptionIsHD": "HD",
|
||||
"ButtonAddImage": "Legg til bilde",
|
||||
"DisplayModeHelp": "Velg hvilken slags skjerm du bruker Jellyfin på.",
|
||||
"DisplayModeHelp": "Velg hvilket brukergrensesnitt oppsett du vil ha.",
|
||||
"DownloadsValue": "{0} nedlastninger",
|
||||
"EnableNextVideoInfoOverlayHelp": "Vis informasjon om den neste videoen i spillelisten ved slutten av en video.",
|
||||
"ExtractChapterImagesHelp": "Uthenting av kapittelbilder vil gjøre det mulig for klienter å vise bilder i menyer for å velge kapitel. Denne prosessen kan være treg, ressurskrevende, og kan kreve flere gigabyte med lagringsplass. Prosessen kjører når videoer oppdages, samt som en daglig planlagt hendelse. Tidsplanen kan endres i innstillinger for planlagte hendelser. Det anbefales ikke at denne prosessen kjøres når det er mange aktive brukere innlogget.",
|
||||
@ -1467,5 +1467,11 @@
|
||||
"AskAdminToCreateLibrary": "Spør en administrator om å lage et bibliotek.",
|
||||
"PlaybackErrorNoCompatibleStream": "Det oppstod et problem med klientprofilering, og serveren sender ikke et kompatibelt medieformat.",
|
||||
"AllowFfmpegThrottlingHelp": "Når en omkoding eller ompakking kommer langt nok foran den nåværende avspillingsposisjonen stoppes prosessen slik at den bruker mindre ressurser. Dette er mest nyttig når du sjeldent bytter posisjon i videoen. Slå av dette hvis du opplever problemer med avspilling.",
|
||||
"AllowFfmpegThrottling": "Begrens hastighet på omkoding"
|
||||
"AllowFfmpegThrottling": "Begrens hastighet på omkoding",
|
||||
"Episode": "Episode",
|
||||
"ClientSettings": "Klientinstillinger",
|
||||
"BoxSet": "Samleboks",
|
||||
"Artist": "Artist",
|
||||
"AlbumArtist": "Albumartist",
|
||||
"Album": "Album"
|
||||
}
|
||||
|
@ -44,13 +44,13 @@
|
||||
"BirthDateValue": "Nascimento: {0}",
|
||||
"BirthLocation": "Local de nascimento",
|
||||
"BirthPlaceValue": "Local de nascimento: {0}",
|
||||
"BookLibraryHelp": "Livros de áudio e texto são suportados. Verifique o {0}guia de nomes de livros{1}.",
|
||||
"BookLibraryHelp": "Livros de áudio e texto são suportados. Revise o {0}Guia de Nomes de Livros no Jellyfin{1}.",
|
||||
"Books": "Livros",
|
||||
"Box": "Caixa",
|
||||
"BoxRear": "Caixa (traseira)",
|
||||
"Browse": "Navegar",
|
||||
"BrowsePluginCatalogMessage": "Navegue pelo nosso catálogo de plugins para ver os plugins disponíveis.",
|
||||
"BurnSubtitlesHelp": "Determina se o servidor deveria gravar as legendas no vídeo ao convertê-lo, dependendo do formato da legenda. Evitar a gravação da legenda irá melhorar a performance do servidor. Selecione Auto para gravar formatos de legenda baseados em imagem baseado nos formatos (ex. VOBSUB, PGS, SUB/IDX, etc.) e algumas legendas ASS/SSA.",
|
||||
"BurnSubtitlesHelp": "Determina se o servidor deveria gravar as legendas no vídeo ao convertê-lo, dependendo do formato da legenda. Evitar a gravação da legenda irá melhorar a performance do servidor. Selecione Auto para gravar legendas baseados em imagem dos tipos (ex. VOBSUB, PGS, SUB/IDX, etc.) e algumas legendas ASS/SSA.",
|
||||
"ButtonAdd": "Adicionar",
|
||||
"ButtonAddMediaLibrary": "Adicionar Biblioteca de Mídia",
|
||||
"ButtonAddScheduledTaskTrigger": "Adicionar Disparador",
|
||||
@ -218,7 +218,7 @@
|
||||
"ErrorAddingTunerDevice": "Ocorreu um erro ao adicionar o sintonizador. Por favor, verifique se está acessível e tente novamente.",
|
||||
"ErrorAddingXmlTvFile": "Ocorreu um erro ao acessar o arquivo XmlTV. Por favor, verifique se o arquivo existe e tente novamente.",
|
||||
"ErrorDeletingItem": "Ocorreu um erro ao excluir o item do Servidor Jellyfin. Por favor, verifique se o Servidor Jellyfin possui acesso de gravação na pasta de mídia e tente novamente.",
|
||||
"ErrorGettingTvLineups": "Ocorreu um erro ao baixar a programação da TV. Por favor, verifique se sua informação está correta e tente novamente.",
|
||||
"ErrorGettingTvLineups": "Ocorreu um erro ao fazer download da programação de TV. Por favor, certifique-se que sua informação esteja correta e tente novamente.",
|
||||
"ErrorMessageStartHourGreaterThanEnd": "A hora final deve ser maior que a hora inicial.",
|
||||
"ErrorPleaseSelectLineup": "Por favor, selecione a programação e tente novamente. Se não houver programações disponíveis, verifique se o seu nome de usuário, senha e código postal estão corretos.",
|
||||
"ErrorSavingTvProvider": "Um erro ocorreu ao salvar o provedor de TV. Por favor, verifique se está acessível e tente novamente.",
|
||||
@ -474,7 +474,7 @@
|
||||
"Images": "Imagens",
|
||||
"ImportFavoriteChannelsHelp": "Se ativado, apenas canais que estão marcados como favoritos no sintonizador serão importados.",
|
||||
"ImportMissingEpisodesHelp": "Se ativado, as informações dos episódios que faltam serão importadas para seu banco de dados do Jellyfin e exibidas dentro das temporadas e séries. Isto pode causar lentidão no rastreamento da biblioteca.",
|
||||
"InstallingPackage": "Instalando {0}",
|
||||
"InstallingPackage": "Instalando {0} (versão{1})",
|
||||
"InstantMix": "Mix instântaneo",
|
||||
"ItemCount": "{0} itens",
|
||||
"Items": "itens",
|
||||
@ -566,7 +566,7 @@
|
||||
"LabelEmbedAlbumArtDidl": "Arte do álbum incorporada no Didl",
|
||||
"LabelEmbedAlbumArtDidlHelp": "Alguns dispositivos preferem este método para obter a arte do álbum. Outros podem falhar ao reproduzir com esta opção ativada.",
|
||||
"LabelEnableAutomaticPortMap": "Ativar mapeamento automático de portas",
|
||||
"LabelEnableAutomaticPortMapHelp": "Tentativa de mapear automaticamente a porta pública para a porta local através de UPnP. Isto poderá não funcionar em alguns modelos de roteadores.",
|
||||
"LabelEnableAutomaticPortMapHelp": "Tentar mapear automaticamente a porta pública para a porta local através de UPnP. Pode não funcionar em alguns modelos de roteadores. As mudanças não serão aplicadas até a reinicialização do servidor.",
|
||||
"LabelEnableBlastAliveMessages": "Mensagens ao vivo",
|
||||
"LabelEnableBlastAliveMessagesHelp": "Ative esta função se o servidor não for detectado por outros dispositivos UPnP em sua rede.",
|
||||
"LabelEnableDlnaClientDiscoveryInterval": "Intervalo para descoberta do cliente (segundos)",
|
||||
@ -601,7 +601,7 @@
|
||||
"LabelH264Crf": "CRF de codificação H264:",
|
||||
"LabelEncoderPreset": "Preset de codificação H264:",
|
||||
"LabelHardwareAccelerationType": "Aceleração de hardware:",
|
||||
"LabelHardwareAccelerationTypeHelp": "Esta é uma função experimental disponível apenas em sistemas suportados.",
|
||||
"LabelHardwareAccelerationTypeHelp": "Aceleração por hardware requer configurações adicionais.",
|
||||
"LabelHomeNetworkQuality": "Qualidade da rede local:",
|
||||
"LabelHomeScreenSectionValue": "Seção {0} da tela inicial:",
|
||||
"LabelHttpsPort": "Número da porta local de HTTPS:",
|
||||
@ -637,7 +637,7 @@
|
||||
"LabelLockItemToPreventChanges": "Bloquear este item para evitar alterações futuras",
|
||||
"LabelLoginDisclaimer": "Aviso legal no login:",
|
||||
"LabelLoginDisclaimerHelp": "Um aviso será exibido na parte inferior da página de login.",
|
||||
"LabelManufacturer": "Fabricante",
|
||||
"LabelManufacturer": "Fabricante:",
|
||||
"LabelManufacturerUrl": "URL do fabricante",
|
||||
"LabelMatchType": "Tipo de correspondência:",
|
||||
"LabelMaxBackdropsPerItem": "Número máximo de imagens de fundo por item:",
|
||||
@ -662,7 +662,7 @@
|
||||
"LabelMethod": "Método:",
|
||||
"LabelMinBackdropDownloadWidth": "Tamanho mínimo da imagem de fundo para download:",
|
||||
"LabelMinResumeDuration": "Duração mínima para retomar:",
|
||||
"LabelMinResumeDurationHelp": "A menor duração de vídeo em segundos que salvará o local de reprodução e permitirá que retome.",
|
||||
"LabelMinResumeDurationHelp": "Tempo mínimo do vídeo em segundos que permitirá continuar a reprodução a partir do ponto que parou.",
|
||||
"LabelMinResumePercentage": "Porcentagem mínima para retomar:",
|
||||
"LabelMinResumePercentageHelp": "Títulos são considerados como não reproduzidos se parados antes deste tempo.",
|
||||
"LabelMinScreenshotDownloadWidth": "Tamanho mínimo da captura de tela para download:",
|
||||
@ -676,7 +676,7 @@
|
||||
"LabelMoviePrefixHelp": "Se os títulos dos filmes devem ter um prefixo, digite-o aqui para que o servidor possa usá-lo corretamente.",
|
||||
"LabelMovieRecordingPath": "Local de gravação de filme (opcional):",
|
||||
"LabelMusicStreamingTranscodingBitrate": "Bitrate da transcodificação de músicas:",
|
||||
"LabelMusicStreamingTranscodingBitrateHelp": "Define o bitrate máximo do streaming de músicas",
|
||||
"LabelMusicStreamingTranscodingBitrateHelp": "Especifique uma taxa de bits máxima ao transmitir músicas.",
|
||||
"LabelName": "Nome:",
|
||||
"LabelNewName": "Novo nome:",
|
||||
"LabelNewPassword": "Nova senha:",
|
||||
@ -688,7 +688,7 @@
|
||||
"LabelNumberOfGuideDays": "Número de dias de dados do guia para baixar:",
|
||||
"LabelNumberOfGuideDaysHelp": "Baixar mais dias do guia da TV permite agendar com maior antecedência e visualizar mais listas, mas também levará mais tempo para baixar. Se selecionar Automático, será escolhido o período baseado no número de canais.",
|
||||
"LabelOptionalNetworkPath": "(Opcional) Pasta compartilhada em rede:",
|
||||
"LabelOptionalNetworkPathHelp": "Se esta pasta estiver compartilhada em sua rede, fornecendo o local do compartilhamento em rede permitirá que os apps Jellyfin em outros dispositivos acessem arquivos de mídia diretamente.",
|
||||
"LabelOptionalNetworkPathHelp": "Se esta pasta estiver compartilhada em sua rede, informar o caminho do compartilhamento permitirá que os apps Jellyfin em outros dispositivos acessem arquivos de mídia diretamente.",
|
||||
"LabelOriginalAspectRatio": "Proporção original da tela:",
|
||||
"LabelOriginalTitle": "Título original:",
|
||||
"LabelOverview": "Sinopse:",
|
||||
@ -725,7 +725,7 @@
|
||||
"LabelReasonForTranscoding": "Motivo da transcodificação:",
|
||||
"LabelRecord": "Gravar:",
|
||||
"LabelRecordingPath": "Local de gravação padrão:",
|
||||
"LabelRecordingPathHelp": "Define o local padrão para salvar as gravações. Se deixar em branco, a pasta de dados do programa do servidor será usada.",
|
||||
"LabelRecordingPathHelp": "Define o local padrão para salvar as gravações. Se deixar não preenchido, a pasta de dados do programa do servidor será usada.",
|
||||
"LabelRefreshMode": "Modo de atualização:",
|
||||
"LabelReleaseDate": "Data do lançamento:",
|
||||
"LabelRemoteClientBitrateLimit": "Limite do bitrate para streaming da internet (Mbps):",
|
||||
@ -812,7 +812,7 @@
|
||||
"LabelYoureDone": "Pronto!",
|
||||
"LabelZipCode": "CEP:",
|
||||
"LabelffmpegPath": "Local do FFmpeg:",
|
||||
"LabelffmpegPathHelp": "O local para o arquivo de aplicação ffmpeg, ou pasta contendo ffmpeg.",
|
||||
"LabelffmpegPathHelp": "O local para o programa ffmpeg, ou pasta contendo ffmpeg.",
|
||||
"LanNetworksHelp": "Lista separada por vírgula de endereços IP ou entradas IP/máscara de rede para redes que serão consideradas como redes locais ao forçar restrições de banda. Se definida, todos os outros endereços IP serão considerados como estando em uma rede externa e estarão sujeitos a restrições de banda externa. Se deixada em branco, apenas a sub-rede do servidor é considerada como rede local.",
|
||||
"Large": "Grande",
|
||||
"LatestFromLibrary": "Recentes {0}",
|
||||
@ -867,7 +867,7 @@
|
||||
"MessageDeleteTaskTrigger": "Deseja realmente excluir este disparador de tarefa?",
|
||||
"MessageDirectoryPickerBSDInstruction": "Para BSD, você precisará configurar o armazenamento dentro de seu Jail do FreeNAS para permitir que o Jellyfin tenha acesso a ele.",
|
||||
"MessageDirectoryPickerInstruction": "Os locais de rede podem ser inseridos manualmente caso o botão de rede falhe em localizar seus dispositivos. Por exemplo, {0} ou {1}.",
|
||||
"MessageDirectoryPickerLinuxInstruction": "Para Linux no Arch Linux, CentOS, Debian, Fedora, openSUSE ou Ubuntu, você deve permitir que o usuário do serviço tenha ao menos acesso de leitura ao seu armazenamento.",
|
||||
"MessageDirectoryPickerLinuxInstruction": "Sistemas operacionais Arch Linux, CentOS, Debian, Fedora, openSUSE ou Ubuntu, devem permitir que a conta de serviço tenha ao menos acesso de leitura nos locais de armazenamento.",
|
||||
"MessageDownloadQueued": "Download enfileirado.",
|
||||
"MessageEnablingOptionLongerScans": "Ativar esta opção pode resultar em rastreamentos de biblioteca significativamente mais demorados.",
|
||||
"MessageFileReadError": "Ocorreu um erro ao ler o arquivo. Por favor, tente novamente.",
|
||||
@ -898,7 +898,7 @@
|
||||
"MessageYouHaveVersionInstalled": "Você possui a versão {0} instalada.",
|
||||
"Metadata": "Metadados",
|
||||
"MetadataManager": "Gerenciador de Metadados",
|
||||
"MetadataSettingChangeHelp": "Alterar as configurações dos metadados afetará o novo conteúdo que será adicionado. Para atualizar o conteúdo existente, abra a tela de detalhes e clique no botão de atualizar ou atualize usando o gerenciador de metadados.",
|
||||
"MetadataSettingChangeHelp": "Alterar as configurações dos metadados afetará o novo conteúdo que será adicionado. Para atualizar o conteúdo existente, abra a tela de detalhes e clique no botão de atualizar, ou atualize usando o gerenciador de metadados.",
|
||||
"MinutesAfter": "minutos após",
|
||||
"MinutesBefore": "minutos antes",
|
||||
"Mobile": "Celular",
|
||||
@ -924,9 +924,9 @@
|
||||
"No": "Não",
|
||||
"NoNewDevicesFound": "Nenhum novo dispositivo encontrado. Para adicionar um novo sintonizador, feche esta mensagem e digite as informações do dispositivo manualmente.",
|
||||
"NoNextUpItemsMessage": "Nada encontrado. Comece a assistir suas séries!",
|
||||
"NoPluginConfigurationMessage": "Este plugin não tem configurações disponíveis.",
|
||||
"NoPluginConfigurationMessage": "Este plugin não permite alterar configurações.",
|
||||
"NoSubtitleSearchResultsFound": "Nenhum resultado encontrado.",
|
||||
"NoSubtitles": "Nenhuma legenda",
|
||||
"NoSubtitles": "Não há legendas",
|
||||
"NoSubtitlesHelp": "Legendas não serão carregadas por padrão. Elas podem ser carregadas manualmente durante a reprodução.",
|
||||
"None": "Nenhum(a)",
|
||||
"NumLocationsValue": "{0} pastas",
|
||||
@ -949,10 +949,10 @@
|
||||
"OptionAllowMediaPlaybackTranscodingHelp": "Restringir o acesso à transcodificação pode ocasionar falhas na reprodução nos apps do Jellyfin devido a formatos de mídias não suportados.",
|
||||
"OptionAllowRemoteControlOthers": "Permitir controle remoto de outros usuários",
|
||||
"OptionAllowRemoteSharedDevices": "Permitir controle remoto de dispositivos compartilhados",
|
||||
"OptionAllowRemoteSharedDevicesHelp": "Dispositivos DLNA são considerados compartilhados até que um usuário comece a controlá-los.",
|
||||
"OptionAllowRemoteSharedDevicesHelp": "Dispositivos DLNA são autorizados até que um usuário altere as permissões.",
|
||||
"OptionAllowSyncTranscoding": "Permitir download e sincronização de mídia que necessite de transcodificação",
|
||||
"OptionAllowUserToManageServer": "Permitir este usuário administrar o servidor",
|
||||
"OptionAllowVideoPlaybackRemuxing": "Permitir reprodução de vídeos que requeiram conversão sem re-encodação",
|
||||
"OptionAllowVideoPlaybackRemuxing": "Permitir reprodução de vídeos que requerem conversão sem recodificar",
|
||||
"OptionAllowVideoPlaybackTranscoding": "Permitir reprodução de vídeo que necessite de transcodificação",
|
||||
"OptionArtist": "Artista",
|
||||
"OptionAscending": "Crescente",
|
||||
@ -976,15 +976,15 @@
|
||||
"OptionDescending": "Decrescente",
|
||||
"OptionDisableUser": "Desativar este usuário",
|
||||
"OptionDisableUserHelp": "Se desativado, o servidor não permitirá nenhuma conexão deste usuário. Conexões existentes serão encerradas imediatamente.",
|
||||
"OptionDislikes": "Não Curtidos",
|
||||
"OptionDisplayFolderView": "Exibe uma visualização de pasta para exibir pastas de mídias",
|
||||
"OptionDisplayFolderViewHelp": "Exibe pastas ao lado de suas outras biblioteca de mídia. Isto pode ser útil se quiser uma visualização por pasta.",
|
||||
"OptionDislikes": "Não gostei",
|
||||
"OptionDisplayFolderView": "Exibe visualização em pastas para exibir pastas de mídias",
|
||||
"OptionDisplayFolderViewHelp": "Exibição em pastas ao lado das biblioteca de mídia. Isto pode ser útil para visualizar por pastas.",
|
||||
"OptionDownloadArtImage": "Arte",
|
||||
"OptionDownloadBackImage": "Traseira",
|
||||
"OptionDownloadBoxImage": "Caixa",
|
||||
"OptionDownloadDiscImage": "Disco",
|
||||
"OptionDownloadImagesInAdvance": "Fazer download de imagens antecipadamente",
|
||||
"OptionDownloadImagesInAdvanceHelp": "Por padrão, a maioria das imagens são baixadas só quando um app Jellyfin solicita. Ativando esta opção, baixará todas as imagens antecipadamente, assim que novas mídias são importadas. Isto pode ocasionar um tempo maior para escanear a biblioteca.",
|
||||
"OptionDownloadImagesInAdvanceHelp": "Por padrão, a maioria das imagens são baixadas somente quando um app Jellyfin solicita. Ativar esta opção, baixará todas as imagens antecipadamente, ao importar novas mídias. Isto pode ocasionar um tempo maior para escanear a biblioteca.",
|
||||
"OptionDownloadPrimaryImage": "Principal",
|
||||
"OptionDownloadThumbImage": "Miniatura",
|
||||
"OptionDvd": "DVD",
|
||||
@ -1030,7 +1030,7 @@
|
||||
"OptionPlainStorageFoldersHelp": "Se ativado, todas as pastas são representadas no DIDL como \"object.container.storageFolder\" ao invés de um tipo mais específico como, por exemplo, \"object.container.person.musicArtist\".",
|
||||
"OptionPlainVideoItems": "Exibir todos os vídeos como itens de vídeo",
|
||||
"OptionPlainVideoItemsHelp": "Se ativado, todos os vídeos são representados no DIDL como \"object.item.videoItem\" ao invés de um tipo mais específico como, por exemplo, \"object.item.videoItem.movie\".",
|
||||
"OptionPlayCount": "Número de Reproduções",
|
||||
"OptionPlayCount": "Contagem de Reproduções",
|
||||
"OptionPlayed": "Reproduzido",
|
||||
"OptionPremiereDate": "Data da Estréia",
|
||||
"OptionProfileAudio": "Áudio",
|
||||
@ -1039,7 +1039,7 @@
|
||||
"OptionProfileVideoAudio": "Áudio do Vídeo",
|
||||
"OptionReleaseDate": "Data de Lançamento",
|
||||
"OptionReportByteRangeSeekingWhenTranscoding": "Reportar que o servidor suporta busca de byte quando transcodificar",
|
||||
"OptionReportByteRangeSeekingWhenTranscodingHelp": "Isto é necessário para alguns dispositivos que não buscam o tempo muito bem.",
|
||||
"OptionReportByteRangeSeekingWhenTranscodingHelp": "Isto é necessário para avançar ou retroceder o tempo em alguns dispositivos.",
|
||||
"OptionRequirePerfectSubtitleMatch": "Fazer download apenas de legendas que correspondam exatamente aos meus arquivos de vídeo",
|
||||
"OptionRequirePerfectSubtitleMatchHelp": "Ao solicitar uma combinação perfeita, filtrará as legendas para incluir somente aquelas que foram testadas e verificadas com o arquivo de vídeo. Ao desmarcar isto, aumentará a quantidade de legendas baixadas, mas aumentará as chances de ter legendas que não estejam sincronizadas.",
|
||||
"OptionResElement": "elemento res",
|
||||
@ -1063,9 +1063,9 @@
|
||||
"OptionWeekly": "Semanal",
|
||||
"OriginalAirDateValue": "Data de exibição original: {0}",
|
||||
"Overview": "Sinopse",
|
||||
"PackageInstallCancelled": "Instalação de {0} cancelada.",
|
||||
"PackageInstallCompleted": "Instalação de {0} concluída.",
|
||||
"PackageInstallFailed": "Instalação de {0} falhou.",
|
||||
"PackageInstallCancelled": "Instalação da versão {0} cancelada.",
|
||||
"PackageInstallCompleted": "Instalação da versão {0} concluída.",
|
||||
"PackageInstallFailed": "A Instalação da versão {0} falhou.",
|
||||
"ParentalRating": "Classificação etária",
|
||||
"PasswordMatchError": "A senha e a confirmação da senha devem ser iguais.",
|
||||
"PasswordResetComplete": "A senha foi redefinida.",
|
||||
@ -1265,7 +1265,7 @@
|
||||
"Up": "Para cima",
|
||||
"Upload": "Carregar",
|
||||
"UserAgentHelp": "Fornece um cabeçalho HTTP personalizado para o user-agent.",
|
||||
"UserProfilesIntro": "O Jellyfin inclui suporte para perfis de usuários com configurações precisas de exibição, estado de reprodução e controle dos pais.",
|
||||
"UserProfilesIntro": "O Jellyfin inclui suporte para perfis de usuário com configurações de exibição granular, estado de reprodução e controle dos pais.",
|
||||
"ValueAlbumCount": "{0} álbuns",
|
||||
"ValueAudioCodec": "Codec de Áudio: {0}",
|
||||
"ValueConditions": "Condições: {0}",
|
||||
@ -1348,12 +1348,12 @@
|
||||
"HeaderFavoriteAlbums": "Álbuns Favoritos",
|
||||
"HeaderFavoriteArtists": "Artistas Favoritos",
|
||||
"HeaderFavoriteSongs": "Músicas Favoritas",
|
||||
"HeaderFavoriteVideos": "Vídeos Favoritos",
|
||||
"HeaderFavoriteVideos": "Videos favoritos",
|
||||
"HeaderHome": "Inicio",
|
||||
"HeaderRestartingServer": "Reiniciando Servidor",
|
||||
"LabelAuthProvider": "Provedor de Autenticação:",
|
||||
"HeaderRestartingServer": "Reiniciando servidor",
|
||||
"LabelAuthProvider": "Provedor de autenticação:",
|
||||
"LabelServerName": "Nome do servidor:",
|
||||
"LabelTranscodePath": "Local de transcodificação:",
|
||||
"LabelTranscodePath": "Pasta de transcodificação:",
|
||||
"LabelTranscodes": "Transcodificação:",
|
||||
"LabelUserLoginAttemptsBeforeLockout": "Tentativas de login com falha antes que o usuário seja bloqueado:",
|
||||
"DashboardVersionNumber": "Versão: {0}",
|
||||
@ -1361,7 +1361,7 @@
|
||||
"DashboardOperatingSystem": "Sistema Operacional: {0}",
|
||||
"DashboardArchitecture": "Arquitetura: {0}",
|
||||
"LabelPasswordResetProvider": "Provedor para Redefinir a Senha:",
|
||||
"LabelWeb": "Web: ",
|
||||
"LabelWeb": "Web:",
|
||||
"OptionBluray": "Blu-ray",
|
||||
"LabelProfileContainer": "Formato:",
|
||||
"LabelTranscodingContainer": "Formato:",
|
||||
@ -1392,7 +1392,7 @@
|
||||
"OptionIsSD": "SD",
|
||||
"OptionList": "Lista",
|
||||
"OptionLoginAttemptsBeforeLockout": "Determinar quantas tentativas de logins incorretas podem ser feitas antes de ocorrer o bloqueio.",
|
||||
"OptionLoginAttemptsBeforeLockoutHelp": "Um valor de zero significa herdar o padrão de três tentativas para usuários normais e cinco para administradores. Configurar para -1 desativará o recurso.",
|
||||
"OptionLoginAttemptsBeforeLockoutHelp": "O valor zero significa herdar o padrão de três tentativas para usuários normais e cinco para administradores. Configurar para -1 desativará o recurso.",
|
||||
"OptionPoster": "Poster",
|
||||
"OptionPosterCard": "Cartaz",
|
||||
"OptionProtocolHls": "Streaming ao Vivo por HTTP",
|
||||
@ -1463,12 +1463,43 @@
|
||||
"CopyStreamURLError": "Houve um erro ao copiar a URL.",
|
||||
"ButtonSplit": "Dividir",
|
||||
"AskAdminToCreateLibrary": "Peça a um administrador para criar uma biblioteca.",
|
||||
"AllowFfmpegThrottling": "Limitar transcodificação",
|
||||
"PlaybackErrorNoCompatibleStream": "Houve um erro na criação de perfil do cliente e o servidor não está enviando um formato de mídia compatível.",
|
||||
"AllowFfmpegThrottling": "Ajuste de transcodificação",
|
||||
"PlaybackErrorNoCompatibleStream": "Este cliente não é compatível com a media e o servidor não está enviando um formato de mídia compatível.",
|
||||
"EnableFastImageFadeInHelp": "Habilitar animações rápidas de aparecimento para imagens carregadas",
|
||||
"LabelDroppedFrames": "Quadros caídos:",
|
||||
"AllowFfmpegThrottlingHelp": "Quando uma transcodificação ou remux estiver suficientemente avançada da posição atual de reprodução, pause o processo para que consuma menos recursos. Isso é mais proveitoso para quando não há avanço ou retrocesso do vídeo com frequência. Desative se tiver problemas de reprodução.",
|
||||
"PreferEmbeddedEpisodeInfosOverFileNames": "Preferir as informações incorporadas nos arquivos dos episódios ao invés dos nomes",
|
||||
"PreferEmbeddedEpisodeInfosOverFileNamesHelp": "Isso utiliza as informações dos episódios incorporadas nos metadados dos arquivos se estiverem disponíveis.",
|
||||
"ClientSettings": "Configurações do cliente"
|
||||
"PreferEmbeddedEpisodeInfosOverFileNames": "Preferir informações dos episódios incorporadas nos arquivos ao invés dos nomes",
|
||||
"PreferEmbeddedEpisodeInfosOverFileNamesHelp": "Esta opção habilita as informações dos episódios incorporadas nos metadados dos arquivos(se estiverem disponíveis).",
|
||||
"ClientSettings": "Configurações do cliente",
|
||||
"OnApplicationStartup": "Na inicialização do aplicativo",
|
||||
"EveryXHours": "A cada {0} horas",
|
||||
"EveryHour": "A cada hora",
|
||||
"EveryXMinutes": "A cada {0} minutos",
|
||||
"OnWakeFromSleep": "Ao acordar da suspensão",
|
||||
"WeeklyAt": "{0} às {1}",
|
||||
"DailyAt": "Diariamente à {0}",
|
||||
"LastSeen": "Visto pela última vez {0}",
|
||||
"PersonRole": "como {0}",
|
||||
"ListPaging": "{0}-{1} de {2}",
|
||||
"WriteAccessRequired": "O servidor Jellyfin necessita de acesso de escrita para essa pasta. Garanta o acesso e tente novamente.",
|
||||
"PathNotFound": "O caminho não pôde ser encontrado. Por favor certifique-se da validade e tente novamente.",
|
||||
"YadifBob": "YADIF Bob",
|
||||
"Yadif": "YADIF",
|
||||
"Track": "Trilha",
|
||||
"Season": "Temporada",
|
||||
"ReleaseGroup": "Grupo de Lançamento",
|
||||
"Person": "Pessoa",
|
||||
"OtherArtist": "Outro Artista",
|
||||
"Movie": "Filme",
|
||||
"LabelLibraryPageSizeHelp": "Selecione a quantidade de itens a aparecer na página da biblioteca. Coloque 0 para desabilitar a paginação.",
|
||||
"LabelLibraryPageSize": "Tamanho da página da biblioteca:",
|
||||
"LabelDeinterlaceMethod": "Método de desentrelaçamento:",
|
||||
"Episode": "Episódio",
|
||||
"DeinterlaceMethodHelp": "Selecione o método de desentrelaçamento a ser usado ao transcodificar o conteúdo entrelaçado.",
|
||||
"BoxSet": "Coleção",
|
||||
"Artist": "Artista",
|
||||
"AlbumArtist": "Artista do Album",
|
||||
"Album": "Album",
|
||||
"UnsupportedPlayback": "O Jellyfin não pode descriptografar conteúdo protegido por DRM, porém mesmo assim fará uma tentativa para todo tipo de conteúdo, incluindo títulos protegidos. A imagem de alguns arquivos pode aparecer completamente preta devido a criptografia ou outros recursos não suportados, como títulos interativos.",
|
||||
"MessageUnauthorizedUser": "Você não está autorizado a acessar o servidor neste momento. Por favor, contate o administrador do servidor para mais informações."
|
||||
}
|
||||
|
@ -1428,7 +1428,7 @@
|
||||
"LabelXDlnaDoc": "X-DLNA doc:",
|
||||
"LabelXDlnaCap": "X-DLNA cap:",
|
||||
"LabelVaapiDeviceHelp": "Este é o nó de renderização usado para aceleração de hardware.",
|
||||
"LabelVaapiDevice": "VA API Dispositivo:",
|
||||
"LabelVaapiDevice": "Dispositivo VAAPI:",
|
||||
"LabelTypeMetadataDownloaders": "{0} transferências de metadados:",
|
||||
"LabelTheme": "Tema:",
|
||||
"LabelTVHomeScreen": "TV modo ecrã de casa:",
|
||||
|
@ -113,7 +113,7 @@
|
||||
"Screenshot": "Captura de Ecrã",
|
||||
"Schedule": "Agendamentos",
|
||||
"ScanForNewAndUpdatedFiles": "Procurar ficheiros novos ou actualizados",
|
||||
"SaveSubtitlesIntoMediaFoldersHelp": "Guardar ficheiros de legendas junto aos ficheiros vídeo facilita a gestão.",
|
||||
"SaveSubtitlesIntoMediaFoldersHelp": "Salvar arquivos de legendas junto aos arquivos vídeo facilita o gerenciamento.",
|
||||
"SaveSubtitlesIntoMediaFolders": "Guardar legendas nas pastas multimédia",
|
||||
"Save": "Guardar",
|
||||
"Saturday": "Sábado",
|
||||
@ -1126,7 +1126,7 @@
|
||||
"AccessRestrictedTryAgainLater": "O acesso está actualmente restrito. Por favor, tente mais tarde.",
|
||||
"Absolute": "Absoluto",
|
||||
"AlwaysPlaySubtitlesHelp": "Legendas correspondentes à língua preferida serão sempre carregadas, independentemente do idioma do áudio.",
|
||||
"SearchForMissingMetadata": "Procurar metadados em falta",
|
||||
"SearchForMissingMetadata": "Procurar metadados ausentes",
|
||||
"ScanLibrary": "Analisar biblioteca",
|
||||
"HeaderDeleteItem": "Remover item",
|
||||
"HeaderDeleteDevice": "Apagar Dispositivo",
|
||||
@ -1326,5 +1326,65 @@
|
||||
"ClientSettings": "Configurações do Cliente",
|
||||
"AllowFfmpegThrottlingHelp": "Quando uma transcodificação ou remux se aproximar da posição atual de reprodução, pause o processo para que consuma menos recursos. Isso é mais útil ao assistir sem procurar com frequência. Desative isso se você tiver problemas de reprodução.",
|
||||
"MySubtitles": "Minhas legendas",
|
||||
"Name": "Nome"
|
||||
"Name": "Nome",
|
||||
"Never": "Nunca",
|
||||
"Artist": "Artista",
|
||||
"LabelDeinterlaceMethod": "Método de desentrelaçamento:",
|
||||
"DeinterlaceMethodHelp": "Selecione o método de desentrelaçamento para converter conteúdo entrelaçado.",
|
||||
"Movie": "Filme",
|
||||
"LabelLibraryPageSize": "",
|
||||
"Album": "Álbum",
|
||||
"LabelLibraryPageSizeHelp": "Escolher a quantidade itens a exibir numa página de biblioteca. Escolha \"0\" para desabilitar a exibição em páginas.",
|
||||
"Episode": "Episódio",
|
||||
"OptionRequirePerfectSubtitleMatch": "Baixar apenas legendas que correspondem corretamente aos arquivos de vídeo",
|
||||
"OptionRandom": "Aleatório",
|
||||
"OptionPoster": "Encarte",
|
||||
"OptionLoginAttemptsBeforeLockout": "Determinar a quantidade de tentativas de login incorretas até que ocorra bloqueio.",
|
||||
"OptionList": "Listar",
|
||||
"OptionIsSD": "Definição padrão",
|
||||
"OptionIsHD": "Alta definição",
|
||||
"OptionHomeVideos": "Fotos",
|
||||
"OptionHasTrailer": "Trailer",
|
||||
"OptionEnableExternalContentInSuggestions": "Habilitar sugestão de conteúdo externo",
|
||||
"OptionDownloadMenuImage": "Menu",
|
||||
"OptionDownloadLogoImage": "Logotipo",
|
||||
"OptionDownloadBannerImage": "Encarte",
|
||||
"OptionDisplayFolderViewHelp": "Exibir de pastas ao lado das bibliotecas. Isto pode ser útil para visualização em pasta simples.",
|
||||
"OptionDisplayFolderView": "Exibir em pastas",
|
||||
"OptionBluray": "Bluray",
|
||||
"OptionBanner": "Poster",
|
||||
"OptionAuto": "Automático",
|
||||
"OptionAllowVideoPlaybackRemuxing": "Permitir execução de vídeo que requer conversão sem recodificar",
|
||||
"OptionAllowLinkSharingHelp": "Somente páginas da web que contêm informações sobre mídia são compartilhadas. Os arquivos de mídia nunca são compartilhados publicamente. O tempo de compartilhamento é limitado e expira após {0} dias.",
|
||||
"Option3D": "3D",
|
||||
"NextUp": "acima",
|
||||
"Next": "Próximo",
|
||||
"NewEpisodesOnly": "apenas novos episódios",
|
||||
"NewEpisodes": "Novos episódios",
|
||||
"NewCollectionHelp": "Coleções permitem criar agrupamentos personalizados de filmes ou de outros conteúdos da biblioteca.",
|
||||
"BoxSet": "Coleção",
|
||||
"AlbumArtist": "Artista do Álbum",
|
||||
"Quality": "Qualidade",
|
||||
"Previous": "Anterior",
|
||||
"PreferredNotRequired": "Preferível, mas não obrigatório",
|
||||
"PictureInPicture": "vídeo destacado",
|
||||
"OptionThumb": "Miniatura",
|
||||
"OptionRequirePerfectSubtitleMatchHelp": "Solicitar a \"correspondência perfeita\" filtrará as legendas incluindo apenas aquelas que foram testadas com o arquivo de vídeo. Desmarcar isto aumentará a probabilidade de baixar legendas, mas poderá obter legendas incorretas ou não sincronizadas.",
|
||||
"StopRecording": "Parar gravação",
|
||||
"ShowYear": "Exibir ano",
|
||||
"ShowTitle": "Exibir título",
|
||||
"SettingsWarning": "Mudar estes valores pode causar instabilidade ou falhas de conexão. Se tiver problemas, recomendamos restaurar os valores originais.",
|
||||
"ServerNameIsShuttingDown": "Servidor Jellyfin - {0} está desligando.",
|
||||
"ServerNameIsRestarting": "Servidor Jellyfin - {0} está reiniciando.",
|
||||
"SeriesYearToPresent": "{0} - Atualmente",
|
||||
"SeriesCancelled": "Série cancelada.",
|
||||
"SelectAdminUsername": "Por favor, selecione um usuário para a conta de administrador.",
|
||||
"Season": "Temporada",
|
||||
"RepeatEpisodes": "Repetir episódios",
|
||||
"RepeatAll": "Repetir todos",
|
||||
"RemoveFromCollection": "Remover da coleção",
|
||||
"RememberMe": "Lembrar-me",
|
||||
"ReleaseDate": "Data do lançamento",
|
||||
"RefreshMetadata": "Atualizar metadados",
|
||||
"RecentlyWatched": "Visto recentemente"
|
||||
}
|
||||
|
@ -1470,8 +1470,8 @@
|
||||
"Track": "Cale",
|
||||
"Season": "Sezon",
|
||||
"ReleaseGroup": "Gruparea lansării",
|
||||
"PreferEmbeddedEpisodeInfosOverFileNames": "Preferați informațiile despre episod încorporate în fișier decât numele fișierelor",
|
||||
"PreferEmbeddedEpisodeInfosOverFileNamesHelp": "Aceasta folosește informațiile despre episod din metadatele încorporate, dacă sunt disponibile.",
|
||||
"PreferEmbeddedEpisodeInfosOverFileNames": "Preferați informația despre episod încorporată în fișier decât numele fișierelor",
|
||||
"PreferEmbeddedEpisodeInfosOverFileNamesHelp": "Aceasta folosește informația despre episod din metadatele încorporate, dacă sunt disponibile.",
|
||||
"Person": "Persoană",
|
||||
"OtherArtist": "Alt artist",
|
||||
"Movie": "Film",
|
||||
@ -1493,8 +1493,11 @@
|
||||
"ListPaging": "{0}-{1} din {2}",
|
||||
"WriteAccessRequired": "Jellyfin Server necesită acces de scriere la acest folder. Vă rugăm să vă asigurați accesul la scriere și încercați din nou.",
|
||||
"PathNotFound": "Calea nu a fost găsită. Vă rugăm să vă asigurați de validitatea căii și încercați din nou.",
|
||||
"YadifBob": "Yadif Bob",
|
||||
"Yadif": "Yadif",
|
||||
"YadifBob": "YADIF Bob",
|
||||
"Yadif": "YADIF",
|
||||
"LabelDeinterlaceMethod": "Metoda de intercalare:",
|
||||
"DeinterlaceMethodHelp": "Selectați metoda de intercalat pe care să o utilizați la transcodarea conținutului intercalat."
|
||||
"DeinterlaceMethodHelp": "Selectați metoda de intercalat pe care să o utilizați la transcodarea conținutului intercalat.",
|
||||
"UnsupportedPlayback": "Jellyfin nu poate decripta conținut protejat de DRM, dar tot conținutul va fi încercat indiferent de titlurile protejate. Unele fișiere pot părea complet negre din cauza criptării sau a altor funcții neacceptate, cum ar fi titluri interactive.",
|
||||
"LabelLibraryPageSizeHelp": "Setează cantitatea de elemente de afișat pe o pagină a bibliotecii. Setați la 0 pentru a dezactiva paginarea.",
|
||||
"LabelLibraryPageSize": "Mărimea paginii Bibliotecă:"
|
||||
}
|
||||
|
@ -3,19 +3,19 @@
|
||||
"AccessRestrictedTryAgainLater": "В настоящее время доступ запрещён. Повторите попытку позже.",
|
||||
"Actor": "Актёр",
|
||||
"Add": "Добавить",
|
||||
"AddItemToCollectionHelp": "Добавляйте элементы в коллекции проведя их поиск, и с помощью правого щелчка по ним или по касанию меню, чтобы присоединить ко коллекции.",
|
||||
"AddItemToCollectionHelp": "Добавляйте элементы в коллекции, выполняя их поиск, и с помощью правой кнопки мыши или касания меню присоедините их к коллекции.",
|
||||
"AddToCollection": "Добавить в коллекцию",
|
||||
"AddToPlayQueue": "Добавить в очередь воспроизведения",
|
||||
"AddToPlaylist": "Добавить в плей-лист",
|
||||
"AddedOnValue": "Добавлено {0}",
|
||||
"AdditionalNotificationServices": "Просмотрите каталог плагинов, чтобы установить дополнительные услуги для уведомлений.",
|
||||
"AdditionalNotificationServices": "Просмотрите каталог плагинов, чтобы установить дополнительные сервисы уведомлений.",
|
||||
"AirDate": "Дата эфира",
|
||||
"Aired": "Эфирный",
|
||||
"Albums": "Альбомы",
|
||||
"Alerts": "Оповещения",
|
||||
"All": "Все",
|
||||
"AllChannels": "Все каналы",
|
||||
"AllComplexFormats": "Все комлексные форматы (ASS, SSA, VOBSUB, PGS, SUB/IDX и т.д.)",
|
||||
"AllComplexFormats": "Все комплексные форматы (ASS, SSA, VOBSUB, PGS, SUB и IDX)",
|
||||
"AllEpisodes": "Все эпизоды",
|
||||
"AllLanguages": "Все языки",
|
||||
"AllLibraries": "Все медиатеки",
|
||||
@ -23,11 +23,11 @@
|
||||
"AllowMediaConversion": "Разрешить преобразование медиаданных",
|
||||
"AllowMediaConversionHelp": "Предоставить или запретить доступ к компоненте преобразования медиаданных.",
|
||||
"AllowOnTheFlySubtitleExtraction": "Разрешить динамическое извлечение субтитров",
|
||||
"AllowOnTheFlySubtitleExtractionHelp": "Внедрённые субтитры возможно извлекать из видео и доставлять клиентам в виде обычного текста, в целях предотвращения перекодировки видео. На некоторых системах это может занять продолжительное время и вызывать задержки воспроизведения видео в процессе извлечения. Отключите это, для прошивки внедрённых субтитров во время перекодировки видео, при отсутствии встроенной поддержки их в клиентском устройстве.",
|
||||
"AllowRemoteAccess": "Разрешение удалённого доступа к данному серверу Jellyfin Server.",
|
||||
"AllowOnTheFlySubtitleExtractionHelp": "Встроенные субтитры могут быть извлечены из видео и доставлены клиентам в виде обычного текста, в целях предотвращения перекодировки видео. На некоторых системах это может занять продолжительное время и вызвать задержки воспроизведения видео в процессе извлечения. Отключите этот параметр, чтобы встроенные субтитры записывались при перекодировании видео, если они изначально не поддерживаются клиентским устройством.",
|
||||
"AllowRemoteAccess": "Разрешить удалённый доступ к данному серверу Jellyfin Server.",
|
||||
"AllowRemoteAccessHelp": "Если флажок снят, то все удалённые подключения будут заблокированы.",
|
||||
"AllowedRemoteAddressesHelp": "Список разделённых запятыми IP-адресов или записей IP/netmask для сетей, которым разрешено удалённое соединение. Если не заполнять, то будут использованы все внешние адреса.",
|
||||
"AlwaysPlaySubtitles": "Всегда воспроизводить с субтитрами",
|
||||
"AllowedRemoteAddressesHelp": "Список разделённых запятыми IP-адресов или записей IP/netmask сетей, которым разрешено удалённое соединение. Если оставить это поле пустым, то будут разрешены все удаленные адреса.",
|
||||
"AlwaysPlaySubtitles": "Воспроизводить всегда",
|
||||
"AlwaysPlaySubtitlesHelp": "Субтитры, соответствующие настройке языка, будут загружаться независимо от языка аудио.",
|
||||
"AnyLanguage": "Любой язык",
|
||||
"Anytime": "В любое время",
|
||||
@ -36,25 +36,25 @@
|
||||
"Artists": "Исполнители",
|
||||
"AsManyAsPossible": "Как можно больше",
|
||||
"Ascending": "По возрастанию",
|
||||
"AspectRatio": "Соот-ие сторон",
|
||||
"AspectRatio": "Соотношение сторон",
|
||||
"AttributeNew": "Новинка",
|
||||
"Audio": "Аудио",
|
||||
"Auto": "Авто",
|
||||
"AutoBasedOnLanguageSetting": "Авто (на основе настройки языка)",
|
||||
"Backdrop": "Задник",
|
||||
"Backdrops": "Задники",
|
||||
"Backdrop": "Фон",
|
||||
"Backdrops": "Фоны",
|
||||
"Banner": "Баннер",
|
||||
"BirthDateValue": "Дата рождения: {0}",
|
||||
"BirthLocation": "Место рождения",
|
||||
"BirthPlaceValue": "Место рождения: {0}",
|
||||
"Blacklist": "Чёрный список",
|
||||
"BookLibraryHelp": "Поддерживаются аудио и текстовые книги. Просмотрите {0}руководство по именованию книг{1}.",
|
||||
"BookLibraryHelp": "Поддерживаются аудио и текстовые книги. Просмотрите {0}руководство по именованию книг{1}.",
|
||||
"Books": "Книги",
|
||||
"Box": "Коробка",
|
||||
"BoxRear": "Спинка коробки",
|
||||
"BoxRear": "Коробка (задняя часть)",
|
||||
"Browse": "Навигация",
|
||||
"BrowsePluginCatalogMessage": "Просмотрите каталог плагинов, чтобы ознакомиться с имеющимися плагинами.",
|
||||
"BurnSubtitlesHelp": "Определяется, должен ли сервер внедрять субтитры при преобразовании видео в зависимости от формата субтитров. Избегание внедрения субтитров улучшит производительность сервера. Выберите «Авто» для записи основанных на графике форматов (VOBSUB, PGS, SUB/IDX и т.п.) и некоторых субтитров ASS/SSA.",
|
||||
"BurnSubtitlesHelp": "Определяется, должен ли сервер внедрять субтитры при перекодировании. Избежание этого значительно улучшит производительность. Выберите «Авто» для записи основанных на графике форматов (VOBSUB, PGS, SUB и IDX) и некоторых субтитров ASS или SSA.",
|
||||
"ButtonAdd": "Добавить",
|
||||
"ButtonAddMediaLibrary": "Добавить медиатеку",
|
||||
"ButtonAddScheduledTaskTrigger": "Добавить триггер",
|
||||
@ -70,12 +70,12 @@
|
||||
"ButtonChangeServer": "Сменить сервер",
|
||||
"ButtonConnect": "Подсоединиться",
|
||||
"ButtonDelete": "Удалить",
|
||||
"ButtonDeleteImage": "Удалить рисунок",
|
||||
"ButtonDeleteImage": "Удалить изображение",
|
||||
"ButtonDown": "Вниз",
|
||||
"ButtonDownload": "Загрузить",
|
||||
"ButtonEdit": "Править",
|
||||
"ButtonEditImages": "Править рисунки",
|
||||
"ButtonEditOtherUserPreferences": "Править профиль, рисунок и личные настройки этого пользователя.",
|
||||
"ButtonEditImages": "Править изображения",
|
||||
"ButtonEditOtherUserPreferences": "Править профиль, изображение и персональные настройки этого пользователя.",
|
||||
"ButtonFilter": "Фильтр",
|
||||
"ButtonForgotPassword": "Напомнить пароль",
|
||||
"ButtonFullscreen": "Полный экран",
|
||||
@ -90,14 +90,14 @@
|
||||
"ButtonMore": "Ещё",
|
||||
"ButtonNetwork": "Сеть",
|
||||
"ButtonNew": "Новое",
|
||||
"ButtonNextTrack": "След. дорожка",
|
||||
"ButtonNextTrack": "Следующая дорожка",
|
||||
"ButtonOff": "Откл",
|
||||
"ButtonOk": "Ок",
|
||||
"ButtonOpen": "Открыть",
|
||||
"ButtonParentalControl": "Управлять содержанием",
|
||||
"ButtonParentalControl": "Родительский контроль",
|
||||
"ButtonPause": "Пауза",
|
||||
"ButtonPlay": "Воспр.",
|
||||
"ButtonPreviousTrack": "Пред. дорожка",
|
||||
"ButtonPreviousTrack": "Предыдущая дорожка",
|
||||
"ButtonProfile": "Профиль",
|
||||
"ButtonQuickStartGuide": "Руководство по запуску",
|
||||
"ButtonRefresh": "Обновить",
|
||||
@ -147,27 +147,27 @@
|
||||
"CommunityRating": "Общественная оценка",
|
||||
"Composer": "Композитор",
|
||||
"ConfigureDateAdded": "Как конфигурировать дату добавления определяется в Панели Jellyfin Server в параметрах Медиатеки",
|
||||
"ConfirmDeleteImage": "Удалить рисунок?",
|
||||
"ConfirmDeleteImage": "Удалить изображение?",
|
||||
"ConfirmDeleteItem": "При удалении данного элемента, он удалится и из файловой системы, и из медиатеки. Вы действительно хотите продолжить?",
|
||||
"ConfirmDeleteItems": "При удалении данных элементов, он удалится и из файловой системы, и из медиатеки. Вы действительно хотите продолжить?",
|
||||
"ConfirmDeletion": "Подтверждение удаления",
|
||||
"ConfirmEndPlayerSession": "Вы хотите завершить работу Jellyfin на {0}?",
|
||||
"Connect": "Подсоединиться",
|
||||
"Connect": "Соединиться",
|
||||
"ContinueWatching": "Продолжение просмотра",
|
||||
"Continuing": "Продолжающееся",
|
||||
"CriticRating": "Оценка критиков",
|
||||
"CustomDlnaProfilesHelp": "Создайте настраиваемый профиль, назначаемый для нового устройства или переопределите системный профиль.",
|
||||
"DateAdded": "Дата добавления",
|
||||
"DatePlayed": "Дата воспроизведения",
|
||||
"DeathDateValue": "Кончина: {0}",
|
||||
"Default": "Умолчание",
|
||||
"DeathDateValue": "Дата смерти: {0}",
|
||||
"Default": "По умолчанию",
|
||||
"DefaultErrorMessage": "Произошла ошибка при обработке запроса. Повторите попытку позже.",
|
||||
"DefaultMetadataLangaugeDescription": "Они являются значениями по умолчанию и могут быть подстроены индивидуально для каждой медиатеки.",
|
||||
"DefaultSubtitlesHelp": "Загрузки субтитров определяются флагами \"По умолчанию\" и \"Форсированные\" во внедрённых метаданных. Языковые настройки учитываются при наличии нескольких опций.",
|
||||
"Delete": "Удалить",
|
||||
"DeleteDeviceConfirmation": "Вы действительно хотите удалить данное устройство? Оно появится снова в следующий раз, когда пользователь войдёт с него.",
|
||||
"DeleteImage": "Удалить рисунок",
|
||||
"DeleteImageConfirmation": "Вы действительно хотите удалить данный рисунок?",
|
||||
"DeleteImage": "Удалить изображение",
|
||||
"DeleteImageConfirmation": "Вы действительно хотите удалить данное изображение?",
|
||||
"DeleteMedia": "Удалить медиаданные",
|
||||
"DeleteUser": "Удалить пользователя",
|
||||
"DeleteUserConfirmation": "Вы действительно хотите удалить этого пользователя?",
|
||||
@ -191,7 +191,7 @@
|
||||
"DisplayInOtherHomeScreenSections": "Показывать в разделах главного экрана (нпр., новейшие медиаданные, продолжение просмотра и т.п.)",
|
||||
"DisplayMissingEpisodesWithinSeasons": "Отображать отсутствующие эпизоды в пределах сезонов",
|
||||
"DisplayMissingEpisodesWithinSeasonsHelp": "Это также должно быть включено для ТВ-медиатек в конфигурации сервера.",
|
||||
"DisplayModeHelp": "Выберите тип экрана, где запущен Jellyfin.",
|
||||
"DisplayModeHelp": "Выберите желательный стиль разметки для интерфейса.",
|
||||
"DoNotRecord": "Не записывать",
|
||||
"Down": "Вниз",
|
||||
"Download": "Загрузить",
|
||||
@ -200,7 +200,7 @@
|
||||
"DropShadow": "Теневая",
|
||||
"EasyPasswordHelp": "Простой PIN-код используется для автономного доступа на поддерживаемых клиентах и может также использоваться для удобного внутрисетевого входа.",
|
||||
"Edit": "Правка",
|
||||
"EditImages": "Править рисунки",
|
||||
"EditImages": "Править изображения",
|
||||
"EditMetadata": "Править метаданные",
|
||||
"EditSubtitles": "Править субтитры",
|
||||
"EnableBackdrops": "Задники",
|
||||
@ -214,7 +214,7 @@
|
||||
"EnableNextVideoInfoOverlay": "Показывать сведения о следующем видео во время воспроизведения",
|
||||
"EnableNextVideoInfoOverlayHelp": "В конце видео отображать информацию о последующем видео в текущем плей-листе.",
|
||||
"EnablePhotos": "Отображать фотографии",
|
||||
"EnablePhotosHelp": "Рисунки будут обнаруживаться и отображаться наряду с другими медиафайлами.",
|
||||
"EnablePhotosHelp": "Изображения будут обнаруживаться и отображаться наряду с другими медиафайлами.",
|
||||
"EnableStreamLooping": "Автоциклирование трансляций",
|
||||
"EnableStreamLoopingHelp": "Включайте, если трансляции содержат данные только на несколько секунд и необходимо непрерывно их запрашивать. Включение этого без необходимости может породить проблемы.",
|
||||
"EnableThemeSongs": "Тематические композиции",
|
||||
@ -236,7 +236,7 @@
|
||||
"EveryNDays": "Каждые {0} дней",
|
||||
"ExitFullscreen": "Выход с полного экрана",
|
||||
"ExtraLarge": "Очень крупный",
|
||||
"ExtractChapterImagesHelp": "Извлечение рисунков сцен предоставляет возможности клиентам для отображения графических меню выбора сцены. Данный процесс может быть медленным, потребляет ресурсы, и могут понадобиться несколько гигабайт пространства. Он работает при обнаружении видеофайлов, а также, как задача, назначенная на ночь. Расписание возможно перенастроить в области Назначенных задач. Не рекомендуется запускать данную задачу в часы пик.",
|
||||
"ExtractChapterImagesHelp": "Извлечение изображений сцен предоставляет возможности клиентам для отображения графических меню выбора сцены. Данный процесс может быть медленным, потребляет ресурсы, и могут понадобиться несколько гигабайт пространства. Он работает при обнаружении видеофайлов, а также, как задача, назначенная на ночь. Расписание возможно перенастроить в области Назначенных задач. Не рекомендуется запускать данную задачу в часы пик.",
|
||||
"Extras": "Допматериалы",
|
||||
"FFmpegSavePathNotFound": "Мы не смогли обнаружить FFmpeg по введённому вами пути. FFprobe также необходим и должен быть в той же самой папке. Эти компоненты обычно поставляются вместе в одном загрузочном пакете. Проверьте путь и повторите попытку.",
|
||||
"FastForward": "Быстро вперёд",
|
||||
@ -280,7 +280,7 @@
|
||||
"HeaderAddScheduledTaskTrigger": "Добавление триггера",
|
||||
"HeaderAddToCollection": "Добавить в коллекцию",
|
||||
"HeaderAddToPlaylist": "Добавление в плей-лист",
|
||||
"HeaderAddUpdateImage": "Добавление/Обновление рисунка",
|
||||
"HeaderAddUpdateImage": "Добавление/Обновление изображения",
|
||||
"HeaderAddUser": "Добавить пользователя",
|
||||
"HeaderAdditionalParts": "Дополнительные части",
|
||||
"HeaderAdmin": "Администрирование",
|
||||
@ -305,7 +305,7 @@
|
||||
"HeaderCastCrew": "Снимались и снимали",
|
||||
"HeaderChannelAccess": "Доступ ко каналам",
|
||||
"HeaderChannels": "Каналы",
|
||||
"HeaderChapterImages": "Рисунки сцен",
|
||||
"HeaderChapterImages": "Изображения сцен",
|
||||
"HeaderCodecProfile": "Профиль кодеков",
|
||||
"HeaderCodecProfileHelp": "Профили кодеков обозначают ограничения устройства при воспроизведении с определёнными кодеками. Если применяется ограничение, то медиаданные перекодируются, даже если кодек настроен для прямого воспроизведения.",
|
||||
"HeaderConfigureRemoteAccess": "Конфигурирование удалённого доступа",
|
||||
@ -335,7 +335,7 @@
|
||||
"HeaderDisplay": "Отображение",
|
||||
"HeaderDownloadSync": "Загрузка и синхро",
|
||||
"HeaderEasyPinCode": "Простой PIN-код",
|
||||
"HeaderEditImages": "Править рисунки",
|
||||
"HeaderEditImages": "Править изображения",
|
||||
"HeaderEnabledFields": "Включённые поля",
|
||||
"HeaderEnabledFieldsHelp": "Снимите флажок, чтобы зафиксировать поле и защитить его данные от изменнений.",
|
||||
"HeaderEpisodes": "Эпизоды",
|
||||
@ -343,7 +343,7 @@
|
||||
"HeaderExternalIds": "Внешние идентификаторы:",
|
||||
"HeaderFeatureAccess": "Доступ к компонентам",
|
||||
"HeaderFeatures": "Материалы",
|
||||
"HeaderFetchImages": "Отборка рисунков:",
|
||||
"HeaderFetchImages": "Отборка изображений:",
|
||||
"HeaderFetcherSettings": "Параметры отборщика",
|
||||
"HeaderFilters": "Фильтры",
|
||||
"HeaderForKids": "Детям",
|
||||
@ -356,8 +356,8 @@
|
||||
"HeaderIdentificationCriteriaHelp": "Введите хотя бы одно условие распознания.",
|
||||
"HeaderIdentificationHeader": "Заголовок для распознания",
|
||||
"HeaderIdentifyItemHelp": "Введите одно или несколько условий поиска. Изымите условие, чтобы прирастить найденные результаты.",
|
||||
"HeaderImageOptions": "Опции рисунка",
|
||||
"HeaderImageSettings": "Параметры рисунков",
|
||||
"HeaderImageOptions": "Параметры изображения",
|
||||
"HeaderImageSettings": "Настройки изображения",
|
||||
"HeaderInstall": "Установка",
|
||||
"HeaderInstantMix": "Автомикс",
|
||||
"HeaderItems": "Элементы",
|
||||
@ -467,10 +467,10 @@
|
||||
"HeaderTranscodingProfileHelp": "Добавьте профили перекодировки, чтобы указать, какие форматы следует использовать, когда требуется перекодировка.",
|
||||
"HeaderTunerDevices": "Тюнерные устройства",
|
||||
"HeaderTuners": "Тюнеры",
|
||||
"HeaderTypeImageFetchers": "{0} отборщики рисунков",
|
||||
"HeaderTypeImageFetchers": "{0} отборщики изображений",
|
||||
"HeaderTypeText": "Ввод текста",
|
||||
"HeaderUpcomingOnTV": "Ожидаемое на ТВ",
|
||||
"HeaderUploadImage": "Выкладка рисунка",
|
||||
"HeaderUploadImage": "Загрузка изображения",
|
||||
"HeaderUser": "Пользователь",
|
||||
"HeaderUsers": "Пользователи",
|
||||
"HeaderVideoQuality": "Качество видео",
|
||||
@ -489,10 +489,10 @@
|
||||
"Horizontal": "Горизонтально",
|
||||
"HttpsRequiresCert": "Чтобы включить HTTPS для внешних подключений, вам нужно будет предоставить доверенный SSL-cертификат, например, Let's Encrypt. Предоставьте сертификат или отключите защищенные соединения.",
|
||||
"Identify": "Распознать",
|
||||
"Images": "Рисунки",
|
||||
"Images": "Изображения",
|
||||
"ImportFavoriteChannelsHelp": "При включении, будут импортированы только каналы, которые обозначены как избранное на тюнерном устройстве.",
|
||||
"ImportMissingEpisodesHelp": "При включении, информация об отсутствующих эпизодах будет импортирована в вашу базу данных Jellyfin и отображаться в пределах сезонов и сериалов. Это может увеличить время сканирования медиатеки.",
|
||||
"InstallingPackage": "Устанавливается {0}",
|
||||
"InstallingPackage": "Устанавливается {0} (версия {1})",
|
||||
"InstantMix": "Автомикс",
|
||||
"ItemCount": "{0} элемент(а/ов)",
|
||||
"Items": "Элементы",
|
||||
@ -508,7 +508,7 @@
|
||||
"LabelAirsBeforeEpisode": "Эпизод airs_before:",
|
||||
"LabelAirsBeforeSeason": "Сезон airs_before:",
|
||||
"LabelAlbum": "Альбом:",
|
||||
"LabelAlbumArtHelp": "PN используемое для альбомных обложек, внутри атрибута dlna:profileID при upnp:albumArtURI. Некоторым устройствам требуется специфическое значение, вне зависимости от размера рисунка.",
|
||||
"LabelAlbumArtHelp": "PN используемое для альбомных обложек, внутри атрибута dlna:profileID при upnp:albumArtURI. Некоторым устройствам требуется специфическое значение, вне зависимости от размера изображения.",
|
||||
"LabelAlbumArtMaxHeight": "Макс. высота облома альбома:",
|
||||
"LabelAlbumArtMaxHeightHelp": "Максимальное разрешение обложек альбома, представляемых с помощью upnp:albumArtURI.",
|
||||
"LabelAlbumArtMaxWidth": "Макс. ширина обложки альбома:",
|
||||
@ -538,7 +538,7 @@
|
||||
"LabelBurnSubtitles": "Внедрение субтитров:",
|
||||
"LabelCache": "Кэш:",
|
||||
"LabelCachePath": "Путь к кешу:",
|
||||
"LabelCachePathHelp": "Укажите произвольное расположение для файлов серверного кэша, например, рисунков. Оставьте поле незаполненным, чтобы использовать значение по умолчанию.",
|
||||
"LabelCachePathHelp": "Укажите произвольное расположение для файлов серверного кэша, например, изображений. Оставьте поле незаполненным, чтобы использовать значение по умолчанию.",
|
||||
"LabelCancelled": "Отменено",
|
||||
"LabelCertificatePassword": "Пароль сертификата:",
|
||||
"LabelCertificatePasswordHelp": "Если для вашего сертификата требуется пароль, то введите его здесь.",
|
||||
@ -579,7 +579,7 @@
|
||||
"LabelDownMixAudioScale": "Коэффициент усиления при понижающем микшировании:",
|
||||
"LabelDownMixAudioScaleHelp": "Коэффициент компенсирующего усиления звука при понижающем до стерео микшировании. Значение 1 сохраняет исходный уровень.",
|
||||
"LabelDownloadLanguages": "Загружаемые языки:",
|
||||
"LabelDropImageHere": "Перетащите рисунок сюда или щёлкните для навигации.",
|
||||
"LabelDropImageHere": "Перетащите изображение сюда или щёлкните для навигации.",
|
||||
"LabelDropShadow": "Окантовка:",
|
||||
"LabelEasyPinCode": "Простой PIN-код:",
|
||||
"LabelEmbedAlbumArtDidl": "Внедрять альбомные обложки в DIDL",
|
||||
@ -599,14 +599,14 @@
|
||||
"LabelEnableHardwareDecodingFor": "Включить аппаратное декодирование для:",
|
||||
"LabelEnableRealtimeMonitor": "Включить отслеживание в реальном времени",
|
||||
"LabelEnableRealtimeMonitorHelp": "В поддерживаемых файловых системах правки файлов будут обрабатываться незамедлительно.",
|
||||
"LabelEnableSingleImageInDidlLimit": "Лимитировать до единственного внедрённого рисунка",
|
||||
"LabelEnableSingleImageInDidlLimitHelp": "На некоторых устройствах не отрисовывается нормально, если внедрены несколько рисунков внутри DIDL.",
|
||||
"LabelEnableSingleImageInDidlLimit": "Ограничить единственным встроенным изображением",
|
||||
"LabelEnableSingleImageInDidlLimitHelp": "На некоторых устройствах не отрисовывается нормально, если встроено несколько изображений внутри DIDL.",
|
||||
"LabelEndDate": "Конечная дата:",
|
||||
"LabelEpisodeNumber": "Номер эпизода:",
|
||||
"LabelEvent": "Событие:",
|
||||
"LabelEveryXMinutes": "Каждые:",
|
||||
"LabelExtractChaptersDuringLibraryScan": "Извлекать рисунки сцен в процессе сканирования медиатеки",
|
||||
"LabelExtractChaptersDuringLibraryScanHelp": "Генерируются рисунки сцен при импорте видео в процессе сканирования медиатеки. В противном случае, они будут извлечены в процессе назначенной задачи «Рисунки сцен», позволяя регулярному сканированию медиатеки завершаться быстрее.",
|
||||
"LabelExtractChaptersDuringLibraryScan": "Извлекать изображения сцен в процессе сканирования медиатеки",
|
||||
"LabelExtractChaptersDuringLibraryScanHelp": "Генерируются изображения сцен при импорте видео в процессе сканирования медиатеки. В противном случае, они будут извлечены в процессе назначенной задачи «Изображения сцен», позволяя регулярному сканированию медиатеки завершаться быстрее.",
|
||||
"LabelFailed": "Неудачно",
|
||||
"LabelFileOrUrl": "Файл или URL:",
|
||||
"LabelFinish": "Завершить",
|
||||
@ -630,8 +630,8 @@
|
||||
"LabelIconMaxWidth": "Макс. ширина значка:",
|
||||
"LabelIconMaxWidthHelp": "Максимальное разрешение значков представляемых с помощью upnp:icon.",
|
||||
"LabelIdentificationFieldHelp": "Подстрока без учёта регистра, либо регулярное выражение.",
|
||||
"LabelImageFetchersHelp": "Включите и ранжируйте предпочитаемые отборщики рисунков в порядке приоритета.",
|
||||
"LabelImageType": "Тип рисунка:",
|
||||
"LabelImageFetchersHelp": "Включите и ранжируйте предпочитаемые отборщики изображений в порядке приоритета.",
|
||||
"LabelImageType": "Тип изображения:",
|
||||
"LabelImportOnlyFavoriteChannels": "Ограничиваться каналами обозначенными как избранное",
|
||||
"LabelInNetworkSignInWithEasyPassword": "Включить внутрисетевой вход со своим простым PIN-кодом",
|
||||
"LabelInNetworkSignInWithEasyPasswordHelp": "Используется простой PIN-код для входа в клиенты внутри своей локальной сети. Ваш обычный пароль будет необходим только вне дома. Если PIN-код не заполнен, то внутри своей домашней сети не потребуется пароль.",
|
||||
@ -641,11 +641,11 @@
|
||||
"LabelKodiMetadataDateFormat": "Формат даты выпуска:",
|
||||
"LabelKodiMetadataDateFormatHelp": "Все даты в пределах NFO-файлов будут разбираться по данному формату.",
|
||||
"LabelKodiMetadataEnableExtraThumbs": "Копировать extrafanart в поле extrathumbs",
|
||||
"LabelKodiMetadataEnableExtraThumbsHelp": "При загрузке рисунков, их возможно сохранять внутрь extrafanart и extrathumbs для максимальной совместимости с оболочкой Kodi.",
|
||||
"LabelKodiMetadataEnableExtraThumbsHelp": "Загружаемые изображения могут быть сохранены внутри полей extrafanart и extrathumbs для максимальной совместимости с оболочкой Kodi.",
|
||||
"LabelKodiMetadataEnablePathSubstitution": "Включить подстановки путей",
|
||||
"LabelKodiMetadataEnablePathSubstitutionHelp": "Включаются подстановки путей к рисункам с помощью параметров подстановки путей сервера.",
|
||||
"LabelKodiMetadataSaveImagePaths": "Сохранять пути рисунков в пределах NFO-файлов",
|
||||
"LabelKodiMetadataSaveImagePathsHelp": "Рекомендуется, если имена файлов рисунков не соответствуют руководящим принципам Kodi.",
|
||||
"LabelKodiMetadataEnablePathSubstitutionHelp": "Включаются подстановки путей к изображениям с помощью параметров подстановки путей сервера.",
|
||||
"LabelKodiMetadataSaveImagePaths": "Сохранять пути изображений в пределах NFO-файлов",
|
||||
"LabelKodiMetadataSaveImagePathsHelp": "Рекомендуется, если имена файлов изображений не соответствуют руководящим принципам Kodi.",
|
||||
"LabelKodiMetadataUser": "Сохранение в NFO-файле данных о просмотре пользователем:",
|
||||
"LabelKodiMetadataUserHelp": "Сохраняет данные о просмотрах в NFO-файлах для использования в других приложениях.",
|
||||
"LabelLanNetworks": "Домашние сети:",
|
||||
@ -867,7 +867,7 @@
|
||||
"MediaInfoCodec": "Кодек",
|
||||
"MediaInfoCodecTag": "Тег кодека",
|
||||
"MediaInfoContainer": "Контейнер",
|
||||
"MediaInfoDefault": "Умолчание",
|
||||
"MediaInfoDefault": "По умолчанию",
|
||||
"MediaInfoExternal": "Внешние",
|
||||
"MediaInfoForced": "Форсир-ые",
|
||||
"MediaInfoFramerate": "Ч-та кадров",
|
||||
@ -961,16 +961,16 @@
|
||||
"NoNextUpItemsMessage": "Ничего не найдено. Начните смотреть свои ТВ-передачи!",
|
||||
"NoPluginConfigurationMessage": "В данном плагине нет параметров конфигурирования.",
|
||||
"NoSubtitleSearchResultsFound": "Результатов не найдено.",
|
||||
"NoSubtitles": "Без субтитров",
|
||||
"NoSubtitles": "Ничего",
|
||||
"NoSubtitlesHelp": "По умолчанию, субтитры не будут загружаться. Они могут быть все ещё включены вручную во время воспроизведения.",
|
||||
"None": "Ничего",
|
||||
"Normal": "Обычный",
|
||||
"NumLocationsValue": "{0} пап(ки/ок)",
|
||||
"Off": "Выкл",
|
||||
"OneChannel": "Один канал",
|
||||
"OnlyForcedSubtitles": "Только форсированные субтитры",
|
||||
"OnlyForcedSubtitles": "Только форсированные",
|
||||
"OnlyForcedSubtitlesHelp": "Загружены будут только форсированные субтитры.",
|
||||
"OnlyImageFormats": "Только графические форматы (VOBSUB, PGS, SUB и т.д.)",
|
||||
"OnlyImageFormats": "Только графические форматы (VOBSUB, PGS и SUB)",
|
||||
"OptionAdminUsers": "Администраторы",
|
||||
"OptionAlbum": "Альбом",
|
||||
"OptionAlbumArtist": "Исп. альбома",
|
||||
@ -1024,8 +1024,8 @@
|
||||
"OptionDownloadBannerImage": "Баннер",
|
||||
"OptionDownloadBoxImage": "DVD-бокс",
|
||||
"OptionDownloadDiscImage": "Диск",
|
||||
"OptionDownloadImagesInAdvance": "Загружать рисунки заблаговременно",
|
||||
"OptionDownloadImagesInAdvanceHelp": "По умолчанию, большинство рисунков загружаются только при запросе от Jellyfin-приложения. Включите данную опцию, чтобы загружать все рисунки заблаговременно, при импорте новых медиаданных. Это может привести к существенно длительным сканированиям медиатеки.",
|
||||
"OptionDownloadImagesInAdvance": "Загружать изображения заблаговременно",
|
||||
"OptionDownloadImagesInAdvanceHelp": "По умолчанию, большинство изображений загружаются только при запросе от Jellyfin-приложения. Включите данную опцию, чтобы загружать все изображения заблаговременно, при импорте новых медиаданных. Это может привести к существенно длительным сканированиям медиатеки.",
|
||||
"OptionDownloadLogoImage": "Логотип",
|
||||
"OptionDownloadMenuImage": "Меню",
|
||||
"OptionDownloadPrimaryImage": "Основной",
|
||||
@ -1045,7 +1045,7 @@
|
||||
"OptionEstimateContentLength": "Рассчитывать длину содержимого при перекодировке",
|
||||
"OptionEveryday": "Ежедневно",
|
||||
"OptionExternallyDownloaded": "Внешние загружаемые",
|
||||
"OptionExtractChapterImage": "Включить извлечение рисунков сцен",
|
||||
"OptionExtractChapterImage": "Включить извлечение изображений сцен",
|
||||
"OptionFavorite": "Избранное",
|
||||
"OptionFriday": "пятница",
|
||||
"OptionHasSpecialFeatures": "Доп. материалы",
|
||||
@ -1092,7 +1092,7 @@
|
||||
"OptionResumable": "Возможно возобновление",
|
||||
"OptionRuntime": "Длительность",
|
||||
"OptionSaturday": "суббота",
|
||||
"OptionSaveMetadataAsHidden": "Сохранять метаданные и рисунки в виде скрытых файлов",
|
||||
"OptionSaveMetadataAsHidden": "Сохранять метаданные и изображения в виде скрытых файлов",
|
||||
"OptionSaveMetadataAsHiddenHelp": "Это изменение будет применено к новым метаданным сохраняемым в будущем. Существующие файлы метаданных будут обновлены в следующий раз, когда они будут сохраняться на Jellyfin Server.",
|
||||
"OptionSpecialEpisode": "Спецэпизоды",
|
||||
"OptionSubstring": "Подстрока",
|
||||
@ -1110,9 +1110,9 @@
|
||||
"OptionWeekly": "Еженедельно",
|
||||
"OriginalAirDateValue": "Дата исходного эфира: {0}",
|
||||
"Overview": "Обзор",
|
||||
"PackageInstallCancelled": "Установка {0} отменена.",
|
||||
"PackageInstallCompleted": "Установка {0} завершена.",
|
||||
"PackageInstallFailed": "Установка {0} неудачна.",
|
||||
"PackageInstallCancelled": "Установка {0} (версия {1}) отменена.",
|
||||
"PackageInstallCompleted": "Установка {0} (версия {1}) завершена.",
|
||||
"PackageInstallFailed": "Установка {0} (версия {1}) неудачна.",
|
||||
"ParentalRating": "Возр. кат-ия",
|
||||
"PasswordMatchError": "Пароль и подтверждение пароля должны совпадать.",
|
||||
"PasswordResetComplete": "Пароль был сброшен.",
|
||||
@ -1179,7 +1179,7 @@
|
||||
"RepeatMode": "Режим повтора",
|
||||
"RepeatOne": "Повторить раз",
|
||||
"ReplaceAllMetadata": "Замена всех метаданных",
|
||||
"ReplaceExistingImages": "Замена имеющихся рисунков",
|
||||
"ReplaceExistingImages": "Замена имеющихся изображений",
|
||||
"RequiredForAllRemoteConnections": "Требуется для всех внешних подключений",
|
||||
"RestartPleaseWaitMessage": "Подождите, пока Jellyfin Server выключится и перезапустится. Это может занять минуту или две.",
|
||||
"ResumeAt": "Возобновить с {0}",
|
||||
@ -1243,7 +1243,7 @@
|
||||
"Subtitles": "Субтитры",
|
||||
"Suggestions": "Предлагаемое",
|
||||
"Sunday": "воскресенье",
|
||||
"Sync": "Синхро",
|
||||
"Sync": "Синхронизация",
|
||||
"SystemDlnaProfilesHelp": "Системные профили доступны только для чтения. Правки системного профиля будут сохранены в новом настраиваемом профиле.",
|
||||
"TV": "ТВ",
|
||||
"TabAccess": "Доступ",
|
||||
@ -1346,7 +1346,7 @@
|
||||
"ValueSeconds": "{0} сек",
|
||||
"ValueSeriesCount": "{0} сериал(а/ов)",
|
||||
"ValueSongCount": "{0} композици(и/й)",
|
||||
"ValueSpecialEpisodeName": "Спецэпизод - {0}",
|
||||
"ValueSpecialEpisodeName": "Специальный эпизод - {0}",
|
||||
"ValueTimeLimitMultiHour": "Временной лимит: {0} час(а/ов)",
|
||||
"ValueTimeLimitSingleHour": "Временной лимит: 1 час",
|
||||
"ValueVideoCodec": "Видео кодек: {0}",
|
||||
@ -1373,7 +1373,7 @@
|
||||
"LabelDynamicExternalId": "{0} Ид:",
|
||||
"LeaveBlankToNotSetAPassword": "Оставьте пустым, чтобы не назначать пароль.",
|
||||
"MessageImageFileTypeAllowed": "Поддерживаются только файлы JPEG и PNG.",
|
||||
"MessageImageTypeNotSelected": "Выберите тип рисунка из выпадающего меню.",
|
||||
"MessageImageTypeNotSelected": "Выберите тип изображения из выпадающего меню.",
|
||||
"OptionResElement": "res-элемент",
|
||||
"AuthProviderHelp": "Выберите поставщика аутентификации, который будет использоваться для аутентификации пароля этого пользователя.",
|
||||
"HeaderFavoriteMovies": "Избранные фильмы",
|
||||
@ -1401,7 +1401,7 @@
|
||||
"MediaInfoSoftware": "ПО",
|
||||
"MediaInfoStreamTypeAudio": "Аудио",
|
||||
"MediaInfoStreamTypeData": "Данные",
|
||||
"MediaInfoStreamTypeEmbeddedImage": "Внедрённый рисунок",
|
||||
"MediaInfoStreamTypeEmbeddedImage": "Встроенное изображение",
|
||||
"MediaInfoStreamTypeSubtitle": "Субтитры",
|
||||
"MediaInfoStreamTypeVideo": "Видео",
|
||||
"MessageNoCollectionsAvailable": "Коллекции позволяют вам наслаждаться персонализированными группами фильмов, сериалов и альбомов. Нажмите кнопку +, чтобы начать создавать коллекции.",
|
||||
@ -1419,8 +1419,8 @@
|
||||
"OptionLoginAttemptsBeforeLockoutHelp": "При значении 0 наследуются по умолчанию три попытки для обычных пользователей и пять для администратора. При установке этого значения в -1 функция отключается.",
|
||||
"OptionPoster": "Постер",
|
||||
"OptionPosterCard": "Постер-карта",
|
||||
"OptionThumb": "Бегунок",
|
||||
"OptionThumbCard": "Бегунок-карта",
|
||||
"OptionThumb": "Эскиз",
|
||||
"OptionThumbCard": "Эскиз-карта",
|
||||
"PasswordResetProviderHelp": "Выберите поставщика сброса пароля, который будет использоваться, когда этот пользователь запрашивает сброс пароля",
|
||||
"PlaybackData": "Данные воспроизведения",
|
||||
"SubtitleOffset": "Сдвиг субтитров",
|
||||
@ -1445,10 +1445,10 @@
|
||||
"HeaderFavoriteBooks": "Избранные книги",
|
||||
"CopyStreamURL": "Копировать URL потока",
|
||||
"LabelPleaseRestart": "Изменения вступят в силу после перезагрузки веб-клиента вручную.",
|
||||
"CopyStreamURLSuccess": "URL скопирован успешно.",
|
||||
"CopyStreamURLSuccess": "URL скопирован успешно.",
|
||||
"MusicLibraryHelp": "Просмотрите {0}руководство по именованию музыки{1}.",
|
||||
"FetchingData": "Выборка дополнительных данных",
|
||||
"ButtonAddImage": "Добавить рисунок",
|
||||
"ButtonAddImage": "Добавить изображение",
|
||||
"HeaderFavoritePeople": "Избранные люди",
|
||||
"OptionRandom": "Случайный",
|
||||
"ButtonSplit": "Разделить",
|
||||
@ -1456,8 +1456,8 @@
|
||||
"HeaderNavigation": "Навигация",
|
||||
"LabelVideoResolution": "Разрешение видео:",
|
||||
"LabelStreamType": "Тип потока:",
|
||||
"EnableFastImageFadeInHelp": "Включить быстрое появление анимации для загруженных рисунков",
|
||||
"EnableFastImageFadeIn": "Быстрое появление рисунка",
|
||||
"EnableFastImageFadeInHelp": "Включить быстрое появление анимации для загруженных изображений",
|
||||
"EnableFastImageFadeIn": "Быстрое появление изображения",
|
||||
"LabelPlayerDimensions": "Размеры проигрывателя:",
|
||||
"LabelDroppedFrames": "Пропущенные кадры:",
|
||||
"LabelCorruptedFrames": "Испорченные кадры:",
|
||||
@ -1466,6 +1466,39 @@
|
||||
"NoCreatedLibraries": "Похоже, вы еще не создали ни одной медиатеки. {0}Желаете создать её сейчас?{1}",
|
||||
"AskAdminToCreateLibrary": "Попросите администратора создать медиатеку.",
|
||||
"AllowFfmpegThrottling": "Притормаживать перекодировку",
|
||||
"PlaybackErrorNoCompatibleStream": "Возникла проблема с профилем клиента, и сервер не отправляет совместимый формат мультимедиа.",
|
||||
"AllowFfmpegThrottlingHelp": "Когда перекодирование или переупаковка достаточно далеко опережают текущую позицию воспроизведения, процесс приостанавливается, так что он использует меньше ресурсов. Это наиболее полезно, когда вы редко меняете позиции в видео. Выключите это, если у вас возникли проблемы с воспроизведением."
|
||||
"PlaybackErrorNoCompatibleStream": "Этот клиент несовместим с медиаданными, а сервер не отправляет медиаданные в совместимом формате.",
|
||||
"AllowFfmpegThrottlingHelp": "Когда перекодирование или переупаковка достаточно далеко опережают текущую позицию воспроизведения, процесс приостанавливается, так что он использует меньше ресурсов. Это наиболее полезно, когда вы редко меняете позиции в видео. Выключите это, если у вас возникли проблемы с воспроизведением.",
|
||||
"OnWakeFromSleep": "При пробуждении ото сна",
|
||||
"YadifBob": "YADIF Bob",
|
||||
"OnApplicationStartup": "При запуске приложения",
|
||||
"EveryXHours": "Каждые {0} часов",
|
||||
"EveryHour": "Каждый час",
|
||||
"EveryXMinutes": "Каждые {0} мин",
|
||||
"WeeklyAt": "{0} в {1}",
|
||||
"DailyAt": "Ежедневно в {0}",
|
||||
"PersonRole": "как {0}",
|
||||
"ListPaging": "{0}-{1} из {2}",
|
||||
"Yadif": "YADIF",
|
||||
"Track": "Дорожка",
|
||||
"Season": "Сезон",
|
||||
"Person": "Персона",
|
||||
"OtherArtist": "Другой исполнитель",
|
||||
"Movie": "Фильм",
|
||||
"LabelLibraryPageSize": "Размер страницы медиатеки:",
|
||||
"Episode": "Эпизод",
|
||||
"ClientSettings": "Параметры клиента",
|
||||
"BoxSet": "Коллекция",
|
||||
"Artist": "Исполнитель",
|
||||
"AlbumArtist": "Исполнитель альбома",
|
||||
"Album": "Альбом",
|
||||
"LastSeen": "Последнимй раз был {0}",
|
||||
"WriteAccessRequired": "Jellyfin Server требуются права на запись в эту папку. Обеспечьте доступ для записи и попробуйте снова.",
|
||||
"PathNotFound": "Путь не может быть найден. Убедитесь, что путь правильный и попробуйте снова.",
|
||||
"ReleaseGroup": "Релиз-группа",
|
||||
"PreferEmbeddedEpisodeInfosOverFileNames": "Предпочитать встроенную информацию эпизода вместо имён файлов",
|
||||
"PreferEmbeddedEpisodeInfosOverFileNamesHelp": "Используется информация об эпизоде из встроенных метаданных, если они доступны.",
|
||||
"LabelLibraryPageSizeHelp": "Устанавливается количество элементов для отображения на странице медиатеки. Установите 0 для отключения нумерации страниц.",
|
||||
"LabelDeinterlaceMethod": "Метод устранения гребёнки:",
|
||||
"DeinterlaceMethodHelp": "Выберите метод устранения гребёнки, который будет использоваться при перекодировании чересстрочного содержания.",
|
||||
"UnsupportedPlayback": "Jellyfin не может расшифровать содержимое, защищенное DRM, но в любом случае будет предпринята попытка расшифровки всего содержимого, включая защищенные заголовки. Некоторые файлы могут выглядеть полностью черными из-за шифрования или других неподдерживаемых функций, таких как интерактивные заголовки."
|
||||
}
|
||||
|
@ -317,7 +317,7 @@
|
||||
"Director": "Yönetmen",
|
||||
"Directors": "Yöneticiler",
|
||||
"Disabled": "Deaktif",
|
||||
"DisplayModeHelp": "Jellyfin’i çalıştırdığınız ekran türünü seçin.",
|
||||
"DisplayModeHelp": "Arayüz için kullanılmasını istediğiniz şablonu seçin.",
|
||||
"DoNotRecord": "Kaydetme",
|
||||
"Down": "Aşağı",
|
||||
"Download": "İndir",
|
||||
@ -365,7 +365,7 @@
|
||||
"DisplayInMyMedia": "Ana ekranda görüntüleme",
|
||||
"DisplayInOtherHomeScreenSections": "En son medya gibi ana ekran bölümlerinde görüntüleyin ve izlemeye devam edin",
|
||||
"EnableBackdrops": "Arka planında",
|
||||
"BurnSubtitlesHelp": "Altyazı formatına bağlı olarak video dönüştürülürken sunucunun altyazılarda yazıp yazmayacağını belirler. Altyazılarda yanmaktan kaçınmak, sunucu performansını iyileştirir. Görüntü tabanlı biçimleri (VOBSUB, PGS, SUB / IDX, vb.) Ve bazı ASS / SSA altyazılarını yazmak için Otomatik'i seçin.",
|
||||
"BurnSubtitlesHelp": "Sunucunun video işlendiği esnada, altyazının görüntüye gömülmesini sağlar. Performansı çok düşürür, zorunda kalmadıkça bu özelliği seçmeyin. Görüntü tabanlı biçimleri (VOBSUB, PGS, SUB / IDX, vb.) Ve bazı ASS / SSA altyazıların görüntüye gömülmesi için Otomatik'i seçin.",
|
||||
"ConfirmDeleteItem": "Bu öğeyi silmek, onu hem dosya sisteminden hem de medya kütüphanenizden siler. Devam etmek istediğinize emin misiniz?",
|
||||
"ValueSpecialEpisodeName": "Özel - {0}",
|
||||
"DeviceAccessHelp": "Bu, yalnızca benzersiz şekilde tanımlanabilen ve tarayıcı erişimini engellemeyen cihazlar için geçerlidir. Kullanıcı cihazlarına erişimin filtrelenmesi, burada onaylanana kadar yeni cihazları kullanmalarını önler.",
|
||||
@ -663,7 +663,7 @@
|
||||
"Label3DFormat": "3D Formatı:",
|
||||
"Kids": "Çocuklar",
|
||||
"ItemCount": "{0} nesne",
|
||||
"InstallingPackage": "Yükleniyor {0}",
|
||||
"InstallingPackage": "Yükleniyor {0} (versiyon {1})",
|
||||
"Images": "Resimler",
|
||||
"Identify": "Tanımla",
|
||||
"Horizontal": "Yatay",
|
||||
@ -712,5 +712,28 @@
|
||||
"HeaderNavigation": "Navigasyon",
|
||||
"AllowFfmpegThrottling": "Video Kodlamasını Limitle",
|
||||
"Artist": "Oyuncu",
|
||||
"Album": "Albüm"
|
||||
"Album": "Albüm",
|
||||
"EveryXMinutes": "Her {0} dakika",
|
||||
"OnWakeFromSleep": "Uyku modundan çıkılarak uyanıldığında",
|
||||
"DailyAt": "Her gün {0} 'de",
|
||||
"LastSeen": "Son görülme {0}",
|
||||
"WriteAccessRequired": "Jellyfin Sunucusu bu dizine yazma iznine ihtiyaç duymakta. Lütfen yazma izin ayarlarını kontrol edip tekrar deneyiniz.",
|
||||
"PathNotFound": "Gösterilen yol bulunamadı. Lütfen gösterdiğiniz yolun doğru olduğundan emin olun ve tekrar deneyin.",
|
||||
"EveryHour": "Her saat",
|
||||
"EveryXHours": "Her {0} saatte bir",
|
||||
"OnApplicationStartup": "Uygulama başladığında",
|
||||
"HttpsRequiresCert": "Güvenli bağlantı kurulabilmesi için, Let's Encrypt gibi güvenilir bir sertifika sağlayıcısından edinilmiş sertifikayı tanıtmanız gerekmektedir. Lütfen bir sertifika tanımlayın ya da güvenli bağlantı seçeneğini devre dışı bırakın.",
|
||||
"Home": "Anasayfa",
|
||||
"HideWatchedContentFromLatestMedia": "İzlenmiş içeriği En Son Eklenenler klasöründe gösterme",
|
||||
"HeaderTypeImageFetchers": "Görüntü İndirici",
|
||||
"HeaderTracks": "Parçalar",
|
||||
"HeaderSeriesStatus": "Dizi Durumu",
|
||||
"HeaderSeriesOptions": "Dizi Seçenekleri",
|
||||
"Episode": "Bölüm",
|
||||
"DeinterlaceMethodHelp": "Tarama tipi görüntülerde titreşimi yok etmek için kullanılmasını istediğiniz metodu seçin.",
|
||||
"ClientSettings": "Kullanıcı Ayarları",
|
||||
"BoxSet": "Seri Filmler",
|
||||
"AskAdminToCreateLibrary": "Kütüphane oluşturmak için yöneticiden izin iste.",
|
||||
"AllowFfmpegThrottlingHelp": "Video dönüşüm işlemleri yeterince ilerlediyse kaynak tüketimini azaltmak için durdur. İleri/geri sarma işlemlerinin az yapıldığı durumlarda çok kullanışlıdır. Oynatım sorunları ile karşılaşırsanız bu özelliği kapatın.",
|
||||
"AlbumArtist": "Sanatçı"
|
||||
}
|
||||
|
@ -449,7 +449,7 @@
|
||||
"Hide": "隐藏",
|
||||
"HideWatchedContentFromLatestMedia": "从最新媒体中隐藏已观看的内容",
|
||||
"Home": "首页",
|
||||
"HttpsRequiresCert": "要启用安全连接, 您需要提供一个受信任的 SSL 证书, 如 \"允许加密\"。请提供证书或禁用安全连接。",
|
||||
"HttpsRequiresCert": "要启用安全连接, 您需要提供一个受信任的 SSL 证书, 例如 Let's Encrypt 。请提供证书或禁用安全连接。",
|
||||
"Identify": "识别",
|
||||
"Images": "图片",
|
||||
"ImportFavoriteChannelsHelp": "如果启用,只有在协调器设备中被标记为我的最爱的频道才会被导入。",
|
||||
@ -1504,5 +1504,6 @@
|
||||
"LabelDeinterlaceMethod": "反交错方法:",
|
||||
"DeinterlaceMethodHelp": "选择对隔行扫描内容进行转码时所用的反交错方法。",
|
||||
"LabelLibraryPageSize": "媒体库分页阈值:",
|
||||
"LabelLibraryPageSizeHelp": "设置媒体库页面每页要显示的最多媒体个数。设置为 0 以禁用分页。"
|
||||
"LabelLibraryPageSizeHelp": "设置媒体库页面每页要显示的最多媒体个数。设置为 0 以禁用分页。",
|
||||
"UnsupportedPlayback": "Jellyfin无法解密被DRM保护的内容,但仍然会尝试播放包括受保护内容在内的所有内容。某些文件由于被加密或包含不受支持的特性(如互动标题),在播放时可能显示为黑屏。"
|
||||
}
|
||||
|
@ -45,7 +45,7 @@
|
||||
"Edit": "編輯",
|
||||
"EditImages": "編輯圖片",
|
||||
"Ended": "完結",
|
||||
"EndsAtValue": "完結於{0}",
|
||||
"EndsAtValue": "於 {0} 結束",
|
||||
"Favorite": "加到最愛",
|
||||
"File": "檔案",
|
||||
"FileNotFound": "未找到檔案。",
|
||||
@ -67,13 +67,13 @@
|
||||
"HeaderDeleteItem": "刪除項目",
|
||||
"HeaderEasyPinCode": "簡易 PIN 碼",
|
||||
"HeaderFeatureAccess": "可以使用的功能",
|
||||
"HeaderFetchImages": "抓取圖像:",
|
||||
"HeaderFetchImages": "擷取圖像:",
|
||||
"HeaderForgotPassword": "忘記密碼",
|
||||
"HeaderFrequentlyPlayed": "經常播放",
|
||||
"HeaderGuideProviders": "節目表提供者",
|
||||
"HeaderImageSettings": "圖像設置",
|
||||
"HeaderInstantMix": "瞬時混播",
|
||||
"HeaderLatestEpisodes": "最新節目單元",
|
||||
"HeaderLatestEpisodes": "最新劇集",
|
||||
"HeaderLatestMovies": "最新電影",
|
||||
"HeaderLatestRecordings": "最新錄影的節目",
|
||||
"HeaderLatestSongs": "最新歌曲",
|
||||
@ -106,7 +106,7 @@
|
||||
"LabelAllowServerAutoRestart": "允許伺服器自動重新啟動去安裝更新資料",
|
||||
"LabelAllowServerAutoRestartHelp": "伺服器只會在沒有使用者在使用時重新啟動。",
|
||||
"LabelAudioLanguagePreference": "音頻語言偏好選項:",
|
||||
"LabelCachePath": "緩存路徑:",
|
||||
"LabelCachePath": "快取路徑:",
|
||||
"LabelCollection": "收藏櫃:",
|
||||
"LabelContentType": "內容類型:",
|
||||
"LabelCountry": "國家:",
|
||||
@ -116,7 +116,7 @@
|
||||
"LabelEnableDlnaClientDiscoveryInterval": "尋找客戶端時間間隔(秒)",
|
||||
"LabelEnableDlnaDebugLogging": "記錄 DLNA 除錯資料到日誌",
|
||||
"LabelEnableDlnaDebugLoggingHelp": "將會建立非常大的日誌檔案,建議在進行故障排除時啟用。",
|
||||
"LabelEnableDlnaPlayTo": "播放到DLNA設備",
|
||||
"LabelEnableDlnaPlayTo": "播放到 DLNA 設備",
|
||||
"LabelEnableRealtimeMonitor": "啟用實時監控",
|
||||
"LabelEnableRealtimeMonitorHelp": "支持的檔案系統上的更改,將會立即處理。",
|
||||
"LabelEvent": "事件:",
|
||||
@ -149,15 +149,15 @@
|
||||
"LabelTime": "時間:",
|
||||
"LabelTriggerType": "觸發類型:",
|
||||
"LabelUser": "使用者:",
|
||||
"LabelYourFirstName": "你的名字:",
|
||||
"LabelYoureDone": "完成!",
|
||||
"LabelYourFirstName": "您的名字:",
|
||||
"LabelYoureDone": "完成,耶!",
|
||||
"LibraryAccessHelp": "選擇媒體資料夾與此使用者共享。管理員將可以使用中繼資料管理器編輯所有的媒體資料夾。",
|
||||
"Like": "喜歡",
|
||||
"MaxParentalRatingHelp": "具有較高的家長評級內容將從這使用者被隱藏。",
|
||||
"MessageAreYouSureDeleteSubtitles": "您真的要刪除這個字幕檔嗎?",
|
||||
"MessageDownloadQueued": "下載已排程。",
|
||||
"MessageItemsAdded": "已新增項目。",
|
||||
"MessageNoMovieSuggestionsAvailable": "目前並沒有推薦的電影。開始觀看並對您的電影評分後,我們就會為您推薦您可能會喜歡的內容。",
|
||||
"MessageNoMovieSuggestionsAvailable": "目前並沒有推薦的電影,開始觀看並對您的電影評分後,我們就會為您推薦您可能會喜歡的內容。",
|
||||
"MessageNothingHere": "這裡沒有什麼。",
|
||||
"MessagePasswordResetForUsers": "下列使用者的密碼已被重新設置。該使用者現在可以使用在密碼重置時所使用之 PIN 代碼進行登入。",
|
||||
"MessagePleaseEnsureInternetMetadata": "請確保已啟用從互聯網下載媒體資料。",
|
||||
@ -181,7 +181,7 @@
|
||||
"OptionBluray": "藍光",
|
||||
"OptionCommunityRating": "社區評分",
|
||||
"OptionContinuing": "持續",
|
||||
"OptionCriticRating": "評論家評價",
|
||||
"OptionCriticRating": "影評人評價",
|
||||
"OptionDaily": "每日",
|
||||
"OptionDateAdded": "新增日期",
|
||||
"OptionDatePlayed": "播放日期",
|
||||
@ -235,7 +235,7 @@
|
||||
"OptionWeekly": "每週",
|
||||
"OriginalAirDateValue": "原始播出日期:{0}",
|
||||
"ParentalRating": "Parental Rating",
|
||||
"PasswordMatchError": "密碼和密碼確認必須一致。",
|
||||
"PasswordMatchError": "兩個密碼必須一致。",
|
||||
"PasswordResetComplete": "密碼已重設。",
|
||||
"PasswordResetConfirmation": "你確定要重設密碼?",
|
||||
"PasswordSaved": "密碼已保存。",
|
||||
@ -245,8 +245,8 @@
|
||||
"RecordingCancelled": "已取消排程錄製。",
|
||||
"RecordingScheduled": "已排程錄製。",
|
||||
"Refresh": "重新整理",
|
||||
"RefreshDialogHelp": "詳細資料的更新方式會依據Jellyfin的設定及已經啟用的網路服務來進行。",
|
||||
"ReplaceAllMetadata": "取代所有詳細資料",
|
||||
"RefreshDialogHelp": "詳細資料的更新方式會依據 Jellyfin 的設定及已經啟用的網路服務來進行。",
|
||||
"ReplaceAllMetadata": "取代所有中繼資料",
|
||||
"ReplaceExistingImages": "取代現有圖片",
|
||||
"Saturday": "星期六",
|
||||
"Save": "保存",
|
||||
@ -291,19 +291,19 @@
|
||||
"TabTrailers": "預告",
|
||||
"TabTranscoding": "轉碼中",
|
||||
"TabUpcoming": "接下來",
|
||||
"TellUsAboutYourself": "請自我介紹一下你自己",
|
||||
"ThisWizardWillGuideYou": "此精靈將帶你完成安裝過程。開始之前,請選擇您慣用的語言。",
|
||||
"TellUsAboutYourself": "介紹一下自己",
|
||||
"ThisWizardWillGuideYou": "此精靈將帶你完成安裝過程,開始之前,請選擇您慣用的語言。",
|
||||
"Thursday": "星期四",
|
||||
"TrackCount": "{0}個曲目",
|
||||
"TrackCount": "{0} 個曲目",
|
||||
"Tuesday": "星期二",
|
||||
"UninstallPluginConfirmation": "你確定要卸載{0}?",
|
||||
"UninstallPluginHeader": "卸載插件",
|
||||
"UninstallPluginConfirmation": "你確定要解除安裝 {0}?",
|
||||
"UninstallPluginHeader": "解除安裝插件",
|
||||
"UserProfilesIntro": "Jellyfin 可單獨對使用者進行設定,所有使用者擁有自己的顯示設置,播放狀態和家長控制。",
|
||||
"Users": "使用者",
|
||||
"VersionNumber": "版本 {0}",
|
||||
"Wednesday": "星期三",
|
||||
"WelcomeToProject": "歡迎使用 Jellyfin!",
|
||||
"WizardCompleted": "這就是我們所需的全部資訊,Jellyfin 現在正在收集你的媒體櫃的資料,在這段時間內,不妨參考我們推出的應用程式。按一下<b>完成</b>進入<b>伺服器總覽頁</b>。",
|
||||
"WizardCompleted": "這就是我們所需的全部資訊,Jellyfin 現在正在收集你的媒體櫃的資料,在這段時間內,不妨參考我們推出的應用程式。按一下<b>完成</b>進入<b>控制台</b>。",
|
||||
"Actor": "演員",
|
||||
"AddToPlayQueue": "加入播放清單",
|
||||
"AddToPlaylist": "加入播放列表",
|
||||
@ -367,7 +367,7 @@
|
||||
"ButtonConnect": "連結",
|
||||
"ButtonDown": "下",
|
||||
"ButtonDownload": "下載",
|
||||
"ButtonEditOtherUserPreferences": "編輯此使用者的內容,大頭貼和個人設定。",
|
||||
"ButtonEditOtherUserPreferences": "編輯此使用者的內容、大頭貼和個人設定。",
|
||||
"ButtonFullscreen": "全螢幕",
|
||||
"ButtonHelp": "幫助",
|
||||
"ButtonInfo": "詳細資料",
|
||||
@ -418,7 +418,7 @@
|
||||
"CloudSyncFeatureDescription": "將您的媒體備份到雲端當作簡單的備份,收藏和轉檔。",
|
||||
"Collections": "合輯",
|
||||
"Composer": "作曲家",
|
||||
"ConfigureDateAdded": "調整伺服器怎麼判定媒體褲的「新增日期」",
|
||||
"ConfigureDateAdded": "調整伺服器怎麼判定媒體庫的「新增日期」",
|
||||
"ConfirmDeleteImage": "刪除圖片?",
|
||||
"ConfirmDeleteItems": "刪除這些項目會將檔案從系統和媒體庫中刪除。你真的要繼續嗎?",
|
||||
"ConfirmEndPlayerSession": "您要在 {0} 秒後將 Jellyfin關機嗎?",
|
||||
@ -462,7 +462,7 @@
|
||||
"DisplayInOtherHomeScreenSections": "在“最新媒體”和“繼續觀看“等主畫面區塊中顯示",
|
||||
"DisplayMissingEpisodesWithinSeasons": "顯示每季缺少的劇集",
|
||||
"DisplayMissingEpisodesWithinSeasonsHelp": "必須在 Jellyfin 伺服器的電視媒體庫設定中啟用該功能。",
|
||||
"DisplayModeHelp": "選擇您正在運行Jellyfin的螢幕類型。",
|
||||
"DisplayModeHelp": "選擇您想要的界面樣式。",
|
||||
"DoNotRecord": "不要錄",
|
||||
"Down": "下",
|
||||
"DownloadItemLimitHelp": "非必要。 設置要下載的項目數限制。",
|
||||
@ -498,7 +498,7 @@
|
||||
"EnterFFmpegLocation": "輸入 FFmpeg 路徑",
|
||||
"Episodes": "劇集",
|
||||
"Error": "錯誤",
|
||||
"ErrorAddingListingsToSchedulesDirect": "在將電視節目時間表添加到您的Schedules Direct賬號時出現錯誤。每個Schedules Direct賬號只允許有限的時間表。您在繼續前可能需要登入Schedules Direct網站并刪除賬號中的其它列表。",
|
||||
"ErrorAddingListingsToSchedulesDirect": "在將電視節目時間表新增到您的 Schedules Direct 帳號時出現錯誤。每個 Schedules Direct 帳號只允許有限的時間表。您在繼續前可能需要登入 Schedules Direct 網站並刪除帳號中的其它列表。",
|
||||
"ErrorAddingGuestAccount1": "新增Jellyfin Connect時發生錯誤。你的賓客有建立Jellyfin帳號嗎?他們可以在 {0} 創建帳號。",
|
||||
"ErrorAddingGuestAccount2": "若你還是遇到問題,請發送email至 {0} 並附上你和他們的email帳號。",
|
||||
"ErrorAddingJellyfinConnectAccount1": "新增Jellyfin Connect時發生錯誤。您有建立Jellyfin帳號嗎?您可以在 {0} 創建帳號。",
|
||||
@ -506,17 +506,17 @@
|
||||
"ErrorAddingJellyfinConnectAccount3": "這個 Jellyfin 帳號已經被連接至一個本地帳號。一個 Jellyfin帳號 只能同時被連接到一個本機帳號。",
|
||||
"ErrorAddingMediaPathToVirtualFolder": "新增媒體路徑時發生錯誤,請確認路徑是否有效,且你的 Jellyfin 伺服器有對該位置的存取權。",
|
||||
"ErrorAddingTunerDevice": "新增調諧器設備時發生錯誤,請確認它是否可被存取後再試一次。",
|
||||
"ErrorAddingXmlTvFile": "存取 XMLTV 文件時發生錯誤。請確認該檔案是否存在後再試一次。",
|
||||
"ErrorAddingXmlTvFile": "存取 XMLTV 檔案時發生錯誤,請確認該檔案是否存在後再試一次。",
|
||||
"ErrorConnectServerUnreachable": "處理請求時發生錯誤。您的伺服器無法與我們位於 {0} 的 Jellyfin Connect伺服器溝通。請確認你的伺服器有網路連結且防火牆或其他安全性程式允許這個程式對外溝通。",
|
||||
"ErrorDeletingItem": "從Jellyfin伺服器刪除項目時發生錯誤。請確認伺服器有那個磁碟的寫入權限並再試一次。",
|
||||
"ErrorGettingTvLineups": "下載電視節目表時發生錯誤,請確認你的資訊是正確的然後再試一次。",
|
||||
"ErrorDeletingItem": "從 Jellyfin 伺服器刪除項目時發生錯誤,請確認伺服器對該磁碟有寫入權限並再試一次。",
|
||||
"ErrorGettingTvLineups": "下載電視節目表時發生錯誤,請確認你的資訊是否正確並重試。",
|
||||
"ErrorMessagePasswordNotMatchConfirm": "密碼和密碼確認必須吻合。",
|
||||
"ErrorMessageStartHourGreaterThanEnd": "結束時間必須在開始時間後。",
|
||||
"ErrorMessageUsernameInUse": "用戶名已存在。請重新選個名稱再試。",
|
||||
"ErrorPleaseSelectLineup": "請選擇節目表,然後再試一次。如果沒有可用的節目表,請檢查您的使用者名稱、密碼和郵遞區號是否正確。",
|
||||
"ErrorReachingJellyfinConnect": "連接 Jellyfin Connect 伺服器時發生錯誤。請確認你的網絡狀態是否穩定後再試一次。",
|
||||
"ErrorRemovingJellyfinConnectAccount": "移除 Jellyfin Connect 帳號時發生錯誤。請確認你的網絡狀態是否穩定後再試一次。",
|
||||
"ErrorSavingTvProvider": "儲存電視供應商時發生錯誤。請確認它是可存取後再試一次。",
|
||||
"ErrorSavingTvProvider": "儲存電視供應商時發生錯誤,請確認是否可存取並重試。",
|
||||
"EveryNDays": "每 {0} 天",
|
||||
"ExitFullscreen": "結束全螢幕",
|
||||
"ExtraLarge": "特大",
|
||||
@ -542,15 +542,15 @@
|
||||
"Genres": "風格",
|
||||
"GroupBySeries": "按系列分組",
|
||||
"GroupVersions": "按版本分組",
|
||||
"GuestStar": "特邀明星",
|
||||
"GuestStar": "客串",
|
||||
"GuestUserNotFound": "未找到用戶。請確保用戶名稱正確後重試,或者嘗試輸入他們的電子郵件地址。",
|
||||
"Guide": "指南",
|
||||
"GuideProviderSelectListings": "選擇列表",
|
||||
"H264CrfHelp": "The Constant Rate Factor (CRF) 是 x264 編碼器的默認畫質設置。此方法允許編碼器自動分配位元速率來試著達到一定輸出品質。讓每個畫格得到它需要的位元數來保持所需的品質等級。CRF 會得到最佳的位元速率分配結果。",
|
||||
"H264CrfHelp": "CRF 是 x264 編碼器的預設畫質設置。此方法允許編碼器自動分配位元速率來試著達到一定輸出品質。讓每個畫格得到它需要的位元數來保持所需的品質等級。CRF 會得到最佳的位元速率分配結果。",
|
||||
"EncoderPresetHelp": "速度越慢則會得到更好的壓縮編碼效率。",
|
||||
"HDPrograms": "HD節目",
|
||||
"HDPrograms": "HD 節目",
|
||||
"HandledByProxy": "由反向代理處理",
|
||||
"HardwareAccelerationWarning": "啟動硬體加速可能在某些環境下導致系統不穩定。請確認你的作業系統和影片驅動程式是最新的。如果你在開啟此項後播放影片產生困難,那麼你需要將此選項設回”無“。",
|
||||
"HardwareAccelerationWarning": "啟動硬體加速可能在某些環境下導致系統不穩定。請確認你的作業系統和影片驅動程式是最新的。如果你在開啟此項後難以播放影片,那麼你需要將此選項設回「無」。",
|
||||
"HeaderAccessSchedule": "存取時程",
|
||||
"HeaderAccessScheduleHelp": "建立一個存取時程以限制可存取的時段。",
|
||||
"HeaderActiveDevices": "運行中裝置",
|
||||
@ -570,7 +570,7 @@
|
||||
"HeaderAllowMediaDeletionFrom": "允許從中刪除媒體",
|
||||
"HeaderApiKey": "API 金鑰",
|
||||
"HeaderApiKeys": "API 金鑰",
|
||||
"HeaderApiKeysHelp": "外部應用程式需要有一個 API 金鑰以用於和 Jellyfin 伺服器溝通。金鑰將在通過 Jellyfin 帳戶登入時自動發行,或者你可以手動為應用程式產生一個金鑰。",
|
||||
"HeaderApiKeysHelp": "外部應用程式需要有一個 API 金鑰以用於和 Jellyfin 伺服器溝通。金鑰會在 Jellyfin 使用者登入時自動發行,或者你可以手動為應用程式產生一個金鑰。",
|
||||
"HeaderApp": "應用程式",
|
||||
"HeaderAppearsOn": "同時出現於",
|
||||
"HeaderAudio": "音訊",
|
||||
@ -606,12 +606,12 @@
|
||||
"HeaderConfirmRecordingCancellation": "確認取消錄製",
|
||||
"HeaderConfirmRecordingDeletion": "確認刪除錄影",
|
||||
"HeaderConfirmRemoveUser": "移除用戶",
|
||||
"HeaderConfirmRevokeApiKey": "撤銷 API 金鑰",
|
||||
"HeaderConfirmRevokeApiKey": "重置 API 金鑰",
|
||||
"HeaderConfirmSeriesCancellation": "確認系列取消",
|
||||
"HeaderConfirmation": "確認",
|
||||
"HeaderConnectToServer": "連結至伺服器",
|
||||
"HeaderConnectionFailure": "連結失敗",
|
||||
"HeaderContainerProfile": "影片容器設定檔",
|
||||
"HeaderContainerProfile": "影片載體設定",
|
||||
"HeaderContainerProfileHelp": "影片容器的設定檔標明了設備播放特定媒體格式時的限制。如果在限制之內則媒體將被轉碼,否則媒體格式將被設定為直接播放。",
|
||||
"HeaderContinueListening": "繼續聆聽",
|
||||
"HeaderContinueWatching": "繼續觀賞",
|
||||
@ -628,7 +628,7 @@
|
||||
"HeaderDeleteTaskTrigger": "刪除任務觸發條件",
|
||||
"HeaderDestination": "目的地",
|
||||
"HeaderDetectMyDevices": "偵測我的設備",
|
||||
"HeaderDeveloperInfo": "開發者訊息",
|
||||
"HeaderDeveloperInfo": "開發者資訊",
|
||||
"HeaderDevice": "裝置",
|
||||
"HeaderDeviceAccess": "允許裝置存取",
|
||||
"HeaderDevices": "裝置",
|
||||
@ -651,7 +651,7 @@
|
||||
"HeaderFavoriteAlbums": "最愛專輯",
|
||||
"HeaderFavoriteArtists": "最愛演出者",
|
||||
"HeaderFavoriteCollections": "最愛收藏",
|
||||
"HeaderFavoriteEpisodes": "最愛級數",
|
||||
"HeaderFavoriteEpisodes": "最愛影集",
|
||||
"HeaderFavoriteMovies": "最愛電影",
|
||||
"HeaderFavoritePlaylists": "最愛播放列表",
|
||||
"HeaderFavoriteShows": "最愛節目",
|
||||
@ -668,7 +668,7 @@
|
||||
"HeaderHomePage": "主畫面",
|
||||
"HeaderHomeScreen": "主畫面",
|
||||
"HeaderHomeScreenSettings": "主畫面設定",
|
||||
"HeaderHttpHeaders": "Http 標頭",
|
||||
"HeaderHttpHeaders": "HTTP 標頭",
|
||||
"HeaderIdentification": "身份識別",
|
||||
"HeaderIdentificationCriteriaHelp": "至少輸入一個識別標準。",
|
||||
"HeaderIdentificationHeader": "身份識別標題",
|
||||
@ -871,9 +871,9 @@
|
||||
"HeaderVideoType": "影片類型",
|
||||
"HeaderVideoTypes": "影片類型",
|
||||
"HeaderVideos": "影片",
|
||||
"HeaderXmlDocumentAttribute": "XML檔案屬性",
|
||||
"HeaderXmlDocumentAttributes": "XML檔案屬性",
|
||||
"HeaderXmlSettings": "XML設置",
|
||||
"HeaderXmlDocumentAttribute": "XML 檔案屬性",
|
||||
"HeaderXmlDocumentAttributes": "XML 檔案屬性",
|
||||
"HeaderXmlSettings": "XML 設置",
|
||||
"HeaderYears": "年份",
|
||||
"HeadersFolders": "資料夾",
|
||||
"Hide": "隱藏",
|
||||
@ -883,14 +883,14 @@
|
||||
"HttpsRequiresCert": "要啟用安全連線,您需要提供受信任的SSL證書,如 Let's Encrypt。 請提供證書,或停用安全連線。",
|
||||
"Identify": "識別",
|
||||
"Images": "圖片",
|
||||
"ImportFavoriteChannelsHelp": "如果啟用,只有在調諧器設備中被標記為我的最愛的頻道才會被導入。",
|
||||
"ImportMissingEpisodesHelp": "如果啟用,有關缺失劇集的數據導入您的Jellyfin媒體庫,並在季節和系列中顯示。 這可能會導致媒體庫掃描延長。",
|
||||
"InstallingPackage": "正在安装 {0}",
|
||||
"ImportFavoriteChannelsHelp": "若啟用,只有在調諧器設備中被標記為我的最愛的頻道才會被導入。",
|
||||
"ImportMissingEpisodesHelp": "若啟用,有關缺失劇集的數據導入您的 Jellyfin 媒體庫,並在季節和系列中顯示。 這可能會導致媒體庫掃描延長。",
|
||||
"InstallingPackage": "正在安装 {0}(版本 {1})",
|
||||
"InstantMix": "即時混音",
|
||||
"Items": "項目",
|
||||
"Kids": "兒童",
|
||||
"Label3DFormat": "3D格式:",
|
||||
"LabelAbortedByServerShutdown": "(因為伺服器關閉被中止)",
|
||||
"Label3DFormat": "3D 格式:",
|
||||
"LabelAbortedByServerShutdown": "(因為伺服器關閉被中止)",
|
||||
"LabelAccessDay": "一周中的何時:",
|
||||
"LabelAccessEnd": "結束時間:",
|
||||
"LabelAccessStart": "開始時間:",
|
||||
@ -904,24 +904,24 @@
|
||||
"LabelAlbumArtMaxHeight": "專輯封面最大高度:",
|
||||
"LabelAlbumArtMaxHeightHelp": "通過 upnp:albumArtURI 顯示的專輯封面超鏈接的最大分辨率。",
|
||||
"LabelAlbumArtMaxWidth": "專輯封面最大寬度:",
|
||||
"LabelAlbumArtMaxWidthHelp": "通過upnp:albumArtURI顯示的專輯封面超鏈接的最大分辨率。",
|
||||
"LabelAlbumArtPN": "專輯封面PN :",
|
||||
"LabelAlbumArtMaxWidthHelp": "通過 upnp:albumArtURI 顯示的專輯封面超鏈接的最大解析度。",
|
||||
"LabelAlbumArtPN": "專輯封面 PN :",
|
||||
"LabelAlbumArtists": "專輯作家:",
|
||||
"LabelAll": "所有",
|
||||
"LabelAllowHWTranscoding": "允許硬體轉碼",
|
||||
"LabelAllowedRemoteAddresses": "遠端IP地址過濾:",
|
||||
"LabelAllowedRemoteAddressesMode": "遠端IP地址過濾模式:",
|
||||
"LabelAppName": "APP名稱",
|
||||
"LabelAppNameExample": "例如: Sickbeard, Sonarr",
|
||||
"LabelAllowedRemoteAddresses": "遠端 IP 過濾:",
|
||||
"LabelAllowedRemoteAddressesMode": "遠端 IP 過濾模式:",
|
||||
"LabelAppName": "APP 名稱",
|
||||
"LabelAppNameExample": "例如:可愛蹦蹦主機、小安的 Jellyfin",
|
||||
"LabelArtists": "藝人:",
|
||||
"LabelArtistsHelp": "分開多重使用 ;",
|
||||
"LabelAudio": "音頻",
|
||||
"LabelAuthProvider": "認證提供者:",
|
||||
"LabelAutomaticallyRefreshInternetMetadataEvery": "從網路自動刷新數據:",
|
||||
"LabelBindToLocalNetworkAddress": "聯結本地網絡地址:",
|
||||
"LabelBindToLocalNetworkAddressHelp": "(可選的)覆蓋 HTTP 服務器綁定的本地 IP 地址。如果留空,服務器將會監聽所有可用的地址。改變這個值需要重啟 Jellyfin 伺服器\n。",
|
||||
"LabelBindToLocalNetworkAddressHelp": "(選用)覆蓋 HTTP 服務器綁定的本地 IP 地址。如果留空,服務器將會監聽所有可用的地址。改變這個值需要重啟 Jellyfin 伺服器。",
|
||||
"LabelBirthDate": "出生日期:",
|
||||
"LabelBirthYear": "出生年份:",
|
||||
"LabelBirthYear": "出生年:",
|
||||
"LabelBlastMessageInterval": "活動信號的時間間隔(秒)",
|
||||
"LabelBlastMessageIntervalHelp": "確定伺服器活動消息之間的持續時間(秒)。",
|
||||
"LabelBlockContentWithTags": "通過標籤鎖定內容:",
|
||||
@ -940,17 +940,17 @@
|
||||
"LabelCustomCssHelp": "於 Web 介面套用您的自訂樣式。",
|
||||
"LabelCustomDeviceDisplayName": "顯示名稱:",
|
||||
"Depressed": "凹陷",
|
||||
"HeaderHome": "主頁",
|
||||
"HeaderHome": "首頁",
|
||||
"HeaderSelectMetadataPathHelp": "瀏覽或者輸入路徑以用於保存中繼資料,請確保資料夾可以寫入。",
|
||||
"HeaderSelectServerCachePathHelp": "瀏覽或者輸入路徑以用於伺服器快取檔案。請確保該資料夾可以被寫入。",
|
||||
"LabelCustomDeviceDisplayNameHelp": "指定自訂的顯示名稱,或者留空以使用設備自己報告的名稱。",
|
||||
"LabelCustomRating": "自訂分級:",
|
||||
"LabelDashboardTheme": "儀表板佈景主題:",
|
||||
"LabelDashboardTheme": "控制台佈景主題:",
|
||||
"LabelDateAdded": "新增日期:",
|
||||
"LabelDateAddedBehavior": "新内容加入的日期應使用:",
|
||||
"LabelDateTimeLocale": "設定時區:",
|
||||
"LabelDeathDate": "死亡時間:",
|
||||
"LabelDefaultScreen": "預設螢幕:",
|
||||
"LabelDefaultScreen": "預設分頁:",
|
||||
"LabelDefaultUser": "預設使用者:",
|
||||
"LabelDeviceDescription": "裝置說明",
|
||||
"LabelDidlMode": "DIDL 模式:",
|
||||
@ -966,13 +966,13 @@
|
||||
"OptionMax": "最大",
|
||||
"LabelAudioBitDepth": "音訊位元深度:",
|
||||
"LabelBaseUrl": "根路徑:",
|
||||
"LabelIconMaxHeight": "Icon 最高高度:",
|
||||
"LabelIconMaxHeight": "圖示最高高度:",
|
||||
"LabelHttpsPortHelp": "Jellyfin 的 HTTPS 伺服器應綁定的 TCP 端口。",
|
||||
"LabelIconMaxHeightHelp": "通過 upnp:icon 的圖標最大解析度。",
|
||||
"CopyStreamURL": "複製串流連結",
|
||||
"MediaInfoDefault": "預設",
|
||||
"MediaInfoStreamTypeAudio": "音訊",
|
||||
"LabelDateAddedBehaviorHelp": "如果原本就有中繼資料,則將始終在這些選項之一之前使用它。",
|
||||
"LabelDateAddedBehaviorHelp": "如果原本就有中繼資料,將會優先使用其數據。",
|
||||
"LabelScreensaver": "螢幕保護程式:",
|
||||
"LabelSeasonNumber": "季:",
|
||||
"LabelDropImageHere": "拖移圖片到這裡,或是點擊來選取。",
|
||||
@ -988,7 +988,7 @@
|
||||
"LabelVersionInstalled": "{0} 已安裝",
|
||||
"DashboardVersionNumber": "版本:{0}",
|
||||
"DashboardServerName": "伺服器:{0}",
|
||||
"NoSubtitles": "沒有字幕",
|
||||
"NoSubtitles": "無",
|
||||
"List": "清單",
|
||||
"OptionAllowMediaPlayback": "允許播放媒體",
|
||||
"OneChannel": "單聲道",
|
||||
@ -1010,7 +1010,7 @@
|
||||
"ValueCodec": "編碼:{0}",
|
||||
"ValueSongCount": "{0} 首歌",
|
||||
"LabelFileOrUrl": "檔案或路徑:",
|
||||
"LabelKodiMetadataSaveImagePaths": "在 nfo 檔案中儲存圖片路徑",
|
||||
"LabelKodiMetadataSaveImagePaths": "在 NFO 檔案中儲存圖片路徑",
|
||||
"LabelLanNetworks": "區域網路:",
|
||||
"LabelMetadataPathHelp": "指定自訂路徑來儲存下載的圖片與中繼資料。",
|
||||
"LabelZipCode": "郵遞區號:",
|
||||
@ -1024,7 +1024,7 @@
|
||||
"ShowAdvancedSettings": "顯示進階選項",
|
||||
"ShowTitle": "顯示標題",
|
||||
"ShowYear": "顯示年份",
|
||||
"Shuffle": "隨ㄔㄧ",
|
||||
"Shuffle": "隨機播放",
|
||||
"Smart": "智慧",
|
||||
"HeaderFavoriteBooks": "最愛的書籍",
|
||||
"LabelAudioBitrate": "音訊比特率:",
|
||||
@ -1130,7 +1130,7 @@
|
||||
"ManageRecording": "管理錄影",
|
||||
"MessageAlreadyInstalled": "已安裝此版本。",
|
||||
"MessageConfirmRestart": "您確定要重新啟動嗎?",
|
||||
"Metadata": "ˊ中繼資料",
|
||||
"Metadata": "中繼資料",
|
||||
"OptionAllUsers": "所有使用者",
|
||||
"OptionHomeVideos": "圖片",
|
||||
"OptionPoster": "海報",
|
||||
@ -1144,7 +1144,7 @@
|
||||
"TV": "電視",
|
||||
"TabUsers": "使用者",
|
||||
"Trailers": "預告",
|
||||
"LabelImageFetchersHelp": "按優先級啟用並排列您喜歡的圖片抓取器。",
|
||||
"LabelImageFetchersHelp": "啟用並按優先順序排序您的首選圖片擷取器。",
|
||||
"LabelDownMixAudioScale": "縮混時的音訊增強:",
|
||||
"LabelDownMixAudioScaleHelp": "縮混時增強音訊。其中一個音軌將保持原始音量。",
|
||||
"LabelDownloadLanguages": "下載語言:",
|
||||
@ -1162,7 +1162,7 @@
|
||||
"LabelSelectUsers": "選擇使用者:",
|
||||
"LabelSelectVersionToInstall": "選擇要安裝的版本:",
|
||||
"LabelSendNotificationToUsers": "傳送通知給:",
|
||||
"LabelSortBy": "排序依:",
|
||||
"LabelSortBy": "排序按照:",
|
||||
"LabelVideoBitrate": "影片比特率:",
|
||||
"MediaInfoSize": "大小",
|
||||
"MediaInfoTimestamp": "時間戳",
|
||||
@ -1295,7 +1295,7 @@
|
||||
"Up": "上",
|
||||
"ValueOneSeries": "1 劇集",
|
||||
"Writer": "編劇",
|
||||
"XmlTvMovieCategoriesHelp": "有這些類別的節目會被當作電影。用「|」分隔多個。",
|
||||
"XmlTvMovieCategoriesHelp": "有這些類別的節目會被當作電影,以「|」來分隔多個項目。",
|
||||
"ValueSeriesCount": "{0} 劇集",
|
||||
"LabelHardwareAccelerationTypeHelp": "硬件加速需要額外的配置。",
|
||||
"LabelHomeNetworkQuality": "區域網路畫質:",
|
||||
@ -1317,7 +1317,7 @@
|
||||
"OptionEstimateContentLength": "轉檔時,估計內容長度",
|
||||
"OptionExternallyDownloaded": "外部下載",
|
||||
"OptionHlsSegmentedSubtitles": "HLS 分段字幕",
|
||||
"OptionLoginAttemptsBeforeLockout": "確定在被封鎖之前可以登入失敗幾次。",
|
||||
"OptionLoginAttemptsBeforeLockout": "在被封鎖之前可以登入失敗幾次。",
|
||||
"OptionRequirePerfectSubtitleMatch": "只下載與我的影片檔案完美匹配的字幕",
|
||||
"PlayCount": "播放次數",
|
||||
"Series": "電視劇",
|
||||
@ -1342,7 +1342,7 @@
|
||||
"LabelMoviePrefixHelp": "若前綴套用到電影標題,請在此處輸入它來方便伺服器能夠正確處理。",
|
||||
"LabelMovieRecordingPath": "電影錄製路徑(選用):",
|
||||
"LabelNotificationEnabled": "啟用這個通知",
|
||||
"LabelProfileContainersHelp": "以逗號分隔。留空則適用於所有影片容器。",
|
||||
"LabelProfileContainersHelp": "以逗號分隔,留空則適用於所有影片容器。",
|
||||
"LabelSelectFolderGroupsHelp": "未選中的資料夾將在其自己的檢視中顯示。",
|
||||
"LabelSerialNumber": "序號",
|
||||
"LabelSeriesRecordingPath": "電視劇錄影路徑(選用):",
|
||||
@ -1398,7 +1398,7 @@
|
||||
"MessageDirectoryPickerLinuxInstruction": "使用 Linux on Arch Linux、CentOS、Debian、Fedora、openSUSE 或 Ubuntu 作業系統,您必須授權使用者至少讀取權限來存取您的儲存路徑。",
|
||||
"MessageEnablingOptionLongerScans": "啟用這個選項可能會延長媒體庫的掃描時間。",
|
||||
"MessageFileReadError": "讀取檔案時發生錯誤。",
|
||||
"MessageForgotPasswordInNetworkRequired": "請檢查您的區域網路後再試一次來開始密碼重置流程。",
|
||||
"MessageForgotPasswordInNetworkRequired": "請檢查您的區域網路後再開始密碼重置流程。",
|
||||
"MessageForgotPasswordFileCreated": "已在伺服器上建立了以下檔案,並包含有關後續步驟說明:",
|
||||
"MessageNoAvailablePlugins": "沒有可用的模組。",
|
||||
"MessageNoServersAvailable": "無法自動偵測伺服器。",
|
||||
@ -1414,7 +1414,7 @@
|
||||
"News": "新聞",
|
||||
"NoNewDevicesFound": "找不到裝置,要添加新調諧器,請關閉此對話框並手動輸入裝置訊息。",
|
||||
"OnlyForcedSubtitles": "僅顯示強制字幕",
|
||||
"OnlyImageFormats": "僅圖片格式(VOBSUB、PGS、SUB 等)",
|
||||
"OnlyImageFormats": "圖片格式(VOBSUB、PGS、SUB)",
|
||||
"OptionAllowLinkSharingHelp": "只有網頁包含的媒體訊息會被共享,媒體檔案本身不會被公開共享,共享的內容會在 {0} 天後到期。",
|
||||
"OptionAllowRemoteSharedDevices": "允許遠端控制共享裝置",
|
||||
"OptionAllowSyncTranscoding": "允許需要轉檔的媒體下載和同步",
|
||||
@ -1441,7 +1441,7 @@
|
||||
"OptionSubstring": "子串",
|
||||
"OptionWeekdays": "工作日",
|
||||
"Overview": "概述",
|
||||
"PackageInstallCancelled": "{0} 安裝被取消。",
|
||||
"PackageInstallCancelled": "{0} (版本 {1})安裝被取消。",
|
||||
"PlayAllFromHere": "從這裡開始全部播放",
|
||||
"PleaseAddAtLeastOneFolder": "請點擊新增按鈕,新增至少一個資料夾到這個媒體庫。",
|
||||
"PleaseConfirmPluginInstallation": "點擊「OK」以確認您已經閱讀了上述內容並希望繼續安裝模組。",
|
||||
@ -1459,7 +1459,7 @@
|
||||
"ProductionLocations": "產地",
|
||||
"Programs": "節目",
|
||||
"Quality": "品質",
|
||||
"PackageInstallFailed": "{0} 安裝失敗。",
|
||||
"PackageInstallFailed": "{0} (版本 {1}) 安裝失敗。",
|
||||
"QueueAllFromHere": "將這裡的全部內容加入佇列",
|
||||
"Raised": "提高",
|
||||
"Rate": "評等",
|
||||
@ -1474,7 +1474,7 @@
|
||||
"Uniform": "輪廓",
|
||||
"Unmute": "取消靜音",
|
||||
"Unplayed": "尚未播放",
|
||||
"TvLibraryHelp": "查看{0}電視命名指南{1}。",
|
||||
"TvLibraryHelp": "查看 {0} 電視命名指南 {1} 。",
|
||||
"LabelMonitorUsers": "監控活動:",
|
||||
"LabelPleaseRestart": "改動將在手動重啟用戶端後生效。",
|
||||
"LabelProfileCodecsHelp": "以逗號分隔。留空則適用於所有編解碼器。",
|
||||
@ -1482,7 +1482,7 @@
|
||||
"LabelInNetworkSignInWithEasyPasswordHelp": "你可以在你的家庭網路中使用你的簡易 PIN 碼登錄 Jellyfin 應用程式,僅在你使用外部網路時才需要輸入密碼,如果 PIN 碼留空,那麼在你的區域網路中便不需輸入密碼。",
|
||||
"LabelReleaseDate": "釋出日期:",
|
||||
"LabelRemoteClientBitrateLimit": "網際網路串流傳輸位元率限制(Mbps):",
|
||||
"LanNetworksHelp": "在强制頻寬限制時,認作本地網路上的 IP 地址或 IP/網路掩碼條目的逗號分隔列表。如果設置此項,所有其它 IP 地址將被視作在外部網路上,并且將受到外部頻寬限制。如果保留爲空,則只將服務器的子網視作本地網路。",
|
||||
"LanNetworksHelp": "在強制頻寬限制時,認作本地網路上的 IP 地址或 IP/子網域遮罩項目的逗號分隔列表。若設置此項,所有其它 IP 地址將被視作在外部網路上,并且將受到外部頻寬限制。如果保留爲空,則只將服務器的子網域遮罩作本地網路。",
|
||||
"OptionIgnoreTranscodeByteRangeRequests": "忽略轉檔位元組範圍請求",
|
||||
"OptionIgnoreTranscodeByteRangeRequestsHelp": "如果啟用,這些請求會被兌現,但會忽略的位元組範圍標頭。",
|
||||
"OptionLoginAttemptsBeforeLockoutHelp": "若值為 0,則表示將允許普通使用者嘗試三次、管理員嘗試五次的預設值,設定為 -1 來停用此功能。",
|
||||
@ -1507,8 +1507,8 @@
|
||||
"SystemDlnaProfilesHelp": "系統設定檔案是唯讀的,更改系統設定檔案將被儲存到自訂的新設定檔案。",
|
||||
"LabelNumber": "編號:",
|
||||
"LabelNumberOfGuideDays": "下載電視指南日數:",
|
||||
"OnlyForcedSubtitlesHelp": "只有標記為「強制」的字幕會被載入。",
|
||||
"PackageInstallCompleted": "{0} 安裝完成。",
|
||||
"OnlyForcedSubtitlesHelp": "僅被標記為「強制」的字幕會被載入。",
|
||||
"PackageInstallCompleted": "{0} (版本 {1}) 安裝完成。",
|
||||
"OptionDisplayFolderViewHelp": "在其他媒體庫旁邊顯示資料夾,對想要一個普通的資料夾檢視很有用。",
|
||||
"LabelReasonForTranscoding": "轉檔原因:",
|
||||
"LabelRecord": "錄影:",
|
||||
@ -1534,7 +1534,7 @@
|
||||
"LabelSportsCategories": "體育分類:",
|
||||
"LabelStartWhenPossible": "當可能時自動開始:",
|
||||
"LabelVaapiDevice": "VA API 裝置:",
|
||||
"DashboardArchitecture": "結構:{0}",
|
||||
"DashboardArchitecture": "架構:{0}",
|
||||
"MediaInfoSampleRate": "採樣率",
|
||||
"MessageContactAdminToResetPassword": "請聯繫您的管理員來重置密碼。",
|
||||
"MessageUnsetContentHelp": "內容將顯示為純資料夾,建議使用中繼資料管理器設置子資料夾的內容類型。",
|
||||
@ -1542,7 +1542,7 @@
|
||||
"OptionCustomUsers": "自訂",
|
||||
"OptionDateAddedFileTime": "使用檔案建立日期",
|
||||
"OptionReportByteRangeSeekingWhenTranscodingHelp": "這對一些時間跳轉緩慢的裝置是必要的。",
|
||||
"XmlTvNewsCategoriesHelp": "有這些類別的節目會被當作新聞節目。用「|」分隔多個。",
|
||||
"XmlTvNewsCategoriesHelp": "有這些類別的節目會被當作新聞節目,以「|」來分隔多個項目。",
|
||||
"LabelKodiMetadataEnableExtraThumbsHelp": "為了相容 Kodi 主題,下載的圖片將被同時儲存在 extrafanart 和 extrathumbs 資料夾中。",
|
||||
"LabelInternetQuality": "網路畫質:",
|
||||
"LabelKodiMetadataEnablePathSubstitutionHelp": "允許將圖片的路徑以伺服器路徑來替換。",
|
||||
@ -1575,16 +1575,16 @@
|
||||
"LabelPostProcessorArguments": "處理器後命令行參數:",
|
||||
"LabelPostProcessorArgumentsHelp": "使用 {path} 作為錄製檔案的路徑。",
|
||||
"LabelPreferredDisplayLanguage": "首選語言:",
|
||||
"LabelPreferredDisplayLanguageHelp": "翻譯 Jellyfin 是一個進行中的項目。",
|
||||
"LabelPreferredDisplayLanguageHelp": "歡迎一起翻譯 Jellyfin!",
|
||||
"LabelPreferredSubtitleLanguage": "字幕語言偏好:",
|
||||
"LabelProtocol": "協議:",
|
||||
"LabelProtocol": "協議:",
|
||||
"LabelProtocolInfo": "協議資訊:",
|
||||
"LabelPublicHttpPort": "公開 HTTP 端口:",
|
||||
"LabelPublicHttpsPort": "公開 HTTPS 端口:",
|
||||
"LabelProtocolInfoHelp": "當響應來自裝置的 GetProtocolInfo(獲取協議訊息)請求時,該值將被使用。",
|
||||
"LabelPublicHttpPortHelp": "公開連接埠應映射到本地 HTTP 連接埠。",
|
||||
"LabelPublicHttpsPortHelp": "公開連接埠應映射到本地 HTTPS 連接埠。",
|
||||
"LabelReadHowYouCanContribute": "了解如何作出貢獻。",
|
||||
"LabelReadHowYouCanContribute": "瞭解如何一同貢獻。",
|
||||
"LabelSelectFolderGroups": "自動將以下資料夾中的內容分組到視圖中,例如電影、音樂和電視:",
|
||||
"LabelStatus": "狀態:",
|
||||
"LiveBroadcasts": "直播",
|
||||
@ -1603,13 +1603,13 @@
|
||||
"Vertical": "垂直",
|
||||
"VideoRange": "影片範圍",
|
||||
"ViewPlaybackInfo": "查看播放訊息",
|
||||
"XmlTvSportsCategoriesHelp": "有這些類別的節目會被當作體育節目。用「|」分隔多個。",
|
||||
"XmlTvSportsCategoriesHelp": "有這些類別的節目會被當作體育節目,以「|」來分隔多個項目。",
|
||||
"XmlTvPathHelp": "XML 電視檔案的路徑,Jellyfin 將讀取該檔案並定期檢查其更新,您負責建立和更新檔案。",
|
||||
"MessageInvalidForgotPasswordPin": "簡易代碼錯誤或已過期,請再試一次。",
|
||||
"OptionAllowVideoPlaybackTranscoding": "允許播放需要轉檔的影片",
|
||||
"Small": "小",
|
||||
"Smaller": "更小",
|
||||
"XmlTvKidsCategoriesHelp": "有這些類別的節目會被當作兒童節目。用「|」分隔多個。",
|
||||
"XmlTvKidsCategoriesHelp": "有這些類別的節目會被當作兒童節目,以「|」來分隔多個項目。",
|
||||
"TabResponses": "響應",
|
||||
"LabelDisplaySpecialsWithinSeasons": "顯示劇集季度中的特集",
|
||||
"LabelNumberOfGuideDaysHelp": "下載更多電視指南資料會提供更好時間表查看能力,但將需要更長的下載時間。自動基於頻道數目來選擇。",
|
||||
@ -1628,7 +1628,7 @@
|
||||
"SelectAdminUsername": "請為管理員賬戶選擇一個用戶名。",
|
||||
"CopyStreamURLError": "複製網址的時候發生錯誤.",
|
||||
"OptionSaveMetadataAsHiddenHelp": "更改此項將應用於以後保存的元數據。現有元數據文件將在下一次 Jellyfin 伺服器保存它們時被更新。",
|
||||
"OptionAllowRemoteSharedDevicesHelp": "DLNA 設備在用戶對它們進行控制前都被視作共享的。",
|
||||
"OptionAllowRemoteSharedDevicesHelp": "DLNA裝置將被視為共享中,直至有使用者控制。",
|
||||
"OptionForceRemoteSourceTranscoding": "强制遠端轉碼(像電視直播一樣)",
|
||||
"MessageConfirmAppExit": "您要退出嗎?",
|
||||
"LaunchWebAppOnStartupHelp": "伺服器啓動時在默認游覽器中打開網頁端。使用重啓伺服器功能時此項不生效。",
|
||||
@ -1646,6 +1646,36 @@
|
||||
"AllowFfmpegThrottlingHelp": "當轉檔或重組進度大量超前目前播放進度時,將暫停轉檔節省消耗的資源。在不常跳播的時候最有效。如果遇到播放問題,請關閉此功能。",
|
||||
"AllowFfmpegThrottling": "限制轉檔",
|
||||
"PreferEmbeddedEpisodeInfosOverFileNamesHelp": "這將會使用內建劇集資料。",
|
||||
"PlaybackErrorNoCompatibleStream": "用戶端偵測出了問題,伺服器也未傳送相容的媒體格式。",
|
||||
"PreferEmbeddedEpisodeInfosOverFileNames": "優先使用內建劇集資訊而不是檔案名稱"
|
||||
"PlaybackErrorNoCompatibleStream": "用戶端與該媒體不相容,伺服器也未傳送相容的媒體格式。",
|
||||
"PreferEmbeddedEpisodeInfosOverFileNames": "優先使用內建劇集資訊而不是檔案名稱",
|
||||
"OtherArtist": "其他歌手",
|
||||
"Artist": "歌手",
|
||||
"AlbumArtist": "專輯歌手",
|
||||
"Album": "專輯",
|
||||
"YadifBob": "YADIF Bob",
|
||||
"WriteAccessRequired": "Jellyfin 伺服器需要此資料夾的寫入權限,請確認是否擁有寫入權限並重試。",
|
||||
"PathNotFound": "無法找到此路徑,請確認路徑可用並重試。",
|
||||
"Track": "音軌",
|
||||
"Yadif": "YADIF",
|
||||
"ListPaging": "{2} 的 {0}-{1}",
|
||||
"PersonRole": "作為 {0}",
|
||||
"LastSeen": "上次觀看 {0}",
|
||||
"DailyAt": "每日的 {0}",
|
||||
"WeeklyAt": "每週第 {0} 天的 {1}",
|
||||
"OnWakeFromSleep": "當從睡眠中喚醒時",
|
||||
"EveryXMinutes": "每 {0} 分鐘",
|
||||
"EveryHour": "每小時",
|
||||
"EveryXHours": "每 {0} 小時",
|
||||
"OnApplicationStartup": "當應用程式啟動時",
|
||||
"Season": "季",
|
||||
"ReleaseGroup": "發行組織",
|
||||
"Person": "人物",
|
||||
"Movie": "電影",
|
||||
"LabelLibraryPageSizeHelp": "設置媒體庫頁面每頁要顯示的最多媒體個數。設置為 0 來停用分頁。",
|
||||
"LabelLibraryPageSize": "媒體庫分頁大小:",
|
||||
"LabelDeinterlaceMethod": "反交錯方法:",
|
||||
"Episode": "劇集",
|
||||
"DeinterlaceMethodHelp": "選擇對隔行掃描內容進行轉碼時所用的反交錯方法。",
|
||||
"BoxSet": "套裝",
|
||||
"UnsupportedPlayback": "Jellyfin 無法解密受 DRM 保護的內容,但仍然會嘗試播放所有內容。某些檔案由於被加密或包含如互動標題等不受支援的內容,在播放時可能會沒有畫面。"
|
||||
}
|
||||
|
@ -43,7 +43,9 @@ html {
|
||||
}
|
||||
|
||||
.backgroundContainer,
|
||||
.dialog {
|
||||
.dialog,
|
||||
.nowPlayingPlaylist,
|
||||
.nowPlayingContextMenu {
|
||||
background: #d5e9f2;
|
||||
-webkit-background-size: 100% 100%;
|
||||
background-size: 100% 100%;
|
||||
@ -186,7 +188,8 @@ html {
|
||||
}
|
||||
|
||||
.appfooter,
|
||||
.formDialogFooter:not(.formDialogFooter-clear) {
|
||||
.formDialogFooter:not(.formDialogFooter-clear),
|
||||
.playlistSectionButton {
|
||||
color: rgba(0, 0, 0, 0.7);
|
||||
background: #303030;
|
||||
background: -webkit-gradient(linear, left top, right top, from(#bcbcbc), color-stop(#a7b4b7), color-stop(#beb5a5), color-stop(#adbec2), to(#b9c7cb));
|
||||
|
@ -42,6 +42,8 @@ html {
|
||||
}
|
||||
|
||||
.dialog,
|
||||
.nowPlayingPlaylist,
|
||||
.nowPlayingContextMenu,
|
||||
html {
|
||||
background-color: #033361;
|
||||
}
|
||||
@ -179,7 +181,8 @@ html {
|
||||
color: rgba(255, 255, 255, 0.87);
|
||||
}
|
||||
|
||||
.appfooter {
|
||||
.appfooter,
|
||||
.playlistSectionButton {
|
||||
background: #033664;
|
||||
color: #ccc;
|
||||
color: rgba(255, 255, 255, 0.78);
|
||||
|
@ -36,6 +36,8 @@ html {
|
||||
|
||||
.backgroundContainer,
|
||||
.dialog,
|
||||
.nowPlayingPlaylist,
|
||||
.nowPlayingContextMenu,
|
||||
html {
|
||||
background-color: #101010;
|
||||
}
|
||||
@ -161,7 +163,8 @@ html {
|
||||
color: rgba(255, 255, 255, 0.87);
|
||||
}
|
||||
|
||||
.appfooter {
|
||||
.appfooter,
|
||||
.playlistSectionButton {
|
||||
background: #202020;
|
||||
color: #ccc;
|
||||
color: rgba(255, 255, 255, 0.78);
|
||||
|
@ -51,7 +51,9 @@ html {
|
||||
background-color: rgba(255, 255, 255, 0.8);
|
||||
}
|
||||
|
||||
.dialog {
|
||||
.dialog,
|
||||
.nowPlayingPlaylist,
|
||||
.nowPlayingContextMenu {
|
||||
background-color: #f0f0f0;
|
||||
}
|
||||
|
||||
@ -183,7 +185,8 @@ html {
|
||||
color: rgba(255, 255, 255, 0.87);
|
||||
}
|
||||
|
||||
.appfooter {
|
||||
.appfooter,
|
||||
.playlistSectionButton {
|
||||
background: #282828;
|
||||
color: #ccc;
|
||||
color: rgba(255, 255, 255, 0.78);
|
||||
|
@ -37,6 +37,8 @@ html {
|
||||
}
|
||||
|
||||
.dialog,
|
||||
.nowPlayingPlaylist,
|
||||
.nowPlayingContextMenu,
|
||||
html {
|
||||
background-color: #230c33;
|
||||
}
|
||||
@ -269,7 +271,8 @@ a[data-role=button] {
|
||||
color: rgba(255, 255, 255, 0.87);
|
||||
}
|
||||
|
||||
.appfooter {
|
||||
.appfooter,
|
||||
.playlistSectionButton {
|
||||
background: #06256f;
|
||||
color: #ccc;
|
||||
color: rgba(255, 255, 255, 0.78);
|
||||
|
@ -48,7 +48,9 @@ html {
|
||||
}
|
||||
|
||||
.backgroundContainer,
|
||||
.dialog {
|
||||
.dialog,
|
||||
.nowPlayingPlaylist,
|
||||
.nowPlayingContextMenu {
|
||||
background: -webkit-gradient(linear, left top, left bottom, from(#0f3562), color-stop(#1162a4), to(#03215f));
|
||||
background: -webkit-linear-gradient(top, #0f3562, #1162a4, #03215f);
|
||||
background: -o-linear-gradient(top, #0f3562, #1162a4, #03215f);
|
||||
@ -172,7 +174,8 @@ html {
|
||||
}
|
||||
|
||||
.appfooter,
|
||||
.formDialogFooter:not(.formDialogFooter-clear) {
|
||||
.formDialogFooter:not(.formDialogFooter-clear),
|
||||
.playlistSectionButton {
|
||||
background: #0c2450;
|
||||
background: -webkit-gradient(linear, left bottom, left top, from(#0c2450), to(#081b3b));
|
||||
background: -webkit-linear-gradient(bottom, #0c2450, #081b3b);
|
||||
|
@ -10216,6 +10216,11 @@ schema-utils@^2.6.0, schema-utils@^2.6.4, schema-utils@^2.6.5:
|
||||
ajv "^6.12.0"
|
||||
ajv-keywords "^3.4.1"
|
||||
|
||||
screenfull@^5.0.2:
|
||||
version "5.0.2"
|
||||
resolved "https://registry.yarnpkg.com/screenfull/-/screenfull-5.0.2.tgz#b9acdcf1ec676a948674df5cd0ff66b902b0bed7"
|
||||
integrity sha512-cCF2b+L/mnEiORLN5xSAz6H3t18i2oHh9BA8+CQlAh5DRw2+NFAGQJOSYbcGw8B2k04g/lVvFcfZ83b3ysH5UQ==
|
||||
|
||||
scss-tokenizer@^0.2.3:
|
||||
version "0.2.3"
|
||||
resolved "https://registry.yarnpkg.com/scss-tokenizer/-/scss-tokenizer-0.2.3.tgz#8eb06db9a9723333824d3f5530641149847ce5d1"
|
||||
|
Loading…
Reference in New Issue
Block a user