mirror of
https://github.com/jellyfin/jellyfin-web.git
synced 2024-11-17 19:08:18 -07:00
Merge branch 'migrate-to-ES6-47' of https://github.com/Camc314/jellyfin-web into migrate-to-ES6-47
This commit is contained in:
commit
70a8bd1f09
@ -1,6 +1,7 @@
|
||||
module.exports = {
|
||||
root: true,
|
||||
plugins: [
|
||||
'@babel',
|
||||
'promise',
|
||||
'import',
|
||||
'eslint-comments'
|
||||
@ -46,14 +47,15 @@ module.exports = {
|
||||
'quotes': ['error', 'single', { 'avoidEscape': true, 'allowTemplateLiterals': false }],
|
||||
'semi': ['error'],
|
||||
'space-before-blocks': ['error'],
|
||||
'space-infix-ops': 'error'
|
||||
'space-infix-ops': 'error',
|
||||
'yoda': 'error'
|
||||
},
|
||||
overrides: [
|
||||
{
|
||||
files: [
|
||||
'./src/**/*.js'
|
||||
],
|
||||
parser: 'babel-eslint',
|
||||
parser: '@babel/eslint-parser',
|
||||
env: {
|
||||
node: false,
|
||||
amd: true,
|
||||
|
@ -6,13 +6,14 @@
|
||||
"license": "GPL-2.0-or-later",
|
||||
"devDependencies": {
|
||||
"@babel/core": "^7.11.0",
|
||||
"@babel/eslint-parser": "^7.11.0",
|
||||
"@babel/eslint-plugin": "^7.11.0",
|
||||
"@babel/plugin-proposal-class-properties": "^7.10.1",
|
||||
"@babel/plugin-proposal-private-methods": "^7.10.1",
|
||||
"@babel/plugin-transform-modules-amd": "^7.10.5",
|
||||
"@babel/polyfill": "^7.8.7",
|
||||
"@babel/preset-env": "^7.11.0",
|
||||
"autoprefixer": "^9.8.6",
|
||||
"babel-eslint": "^11.0.0-beta.2",
|
||||
"babel-loader": "^8.0.6",
|
||||
"browser-sync": "^2.26.12",
|
||||
"copy-webpack-plugin": "^5.1.1",
|
||||
@ -120,6 +121,7 @@
|
||||
"src/components/imageUploader/imageUploader.js",
|
||||
"src/components/indicators/indicators.js",
|
||||
"src/components/itemContextMenu.js",
|
||||
"src/components/itemHelper.js",
|
||||
"src/components/itemidentifier/itemidentifier.js",
|
||||
"src/components/itemMediaInfo/itemMediaInfo.js",
|
||||
"src/components/lazyLoader/lazyLoaderIntersectionObserver.js",
|
||||
@ -201,10 +203,12 @@
|
||||
"src/controllers/dashboard/users/userparentalcontrol.js",
|
||||
"src/controllers/dashboard/users/userpasswordpage.js",
|
||||
"src/controllers/dashboard/users/userprofilespage.js",
|
||||
"src/controllers/itemDetails/index.js",
|
||||
"src/controllers/playback/queue/index.js",
|
||||
"src/controllers/playback/video/index.js",
|
||||
"src/controllers/searchpage.js",
|
||||
"src/controllers/livetvtuner.js",
|
||||
"src/controllers/livetvstatus.js",
|
||||
"src/controllers/shows/episodes.js",
|
||||
"src/controllers/shows/tvgenres.js",
|
||||
"src/controllers/shows/tvlatest.js",
|
||||
@ -250,6 +254,7 @@
|
||||
"src/plugins/youtubePlayer/plugin.js",
|
||||
"src/scripts/alphanumericshortcuts.js",
|
||||
"src/scripts/autoBackdrops.js",
|
||||
"src/scripts/browser.js",
|
||||
"src/scripts/datetime.js",
|
||||
"src/scripts/deleteHelper.js",
|
||||
"src/scripts/dfnshelper.js",
|
||||
|
@ -16,7 +16,7 @@ import 'listViewStyle';
|
||||
let color = '#00a4dc';
|
||||
let icon = 'notifications';
|
||||
|
||||
if ('Error' == entry.Severity || 'Fatal' == entry.Severity || 'Warn' == entry.Severity) {
|
||||
if (entry.Severity == 'Error' || entry.Severity == 'Fatal' || entry.Severity == 'Warn') {
|
||||
color = '#cc0000';
|
||||
icon = 'notification_important';
|
||||
}
|
||||
@ -60,13 +60,13 @@ import 'listViewStyle';
|
||||
}
|
||||
|
||||
function reloadData(instance, elem, apiClient, startIndex, limit) {
|
||||
if (null == startIndex) {
|
||||
if (startIndex == null) {
|
||||
startIndex = parseInt(elem.getAttribute('data-activitystartindex') || '0');
|
||||
}
|
||||
|
||||
limit = limit || parseInt(elem.getAttribute('data-activitylimit') || '7');
|
||||
const minDate = new Date();
|
||||
const hasUserId = 'false' !== elem.getAttribute('data-useractivity');
|
||||
const hasUserId = elem.getAttribute('data-useractivity') !== 'false';
|
||||
|
||||
// TODO: Use date-fns
|
||||
if (hasUserId) {
|
||||
|
@ -47,7 +47,7 @@ define(['appSettings', 'browser', 'events', 'htmlMediaHelper', 'webSettings', 'g
|
||||
profile = window.NativeShell.AppHost.getDeviceProfile(profileBuilder);
|
||||
} else {
|
||||
var builderOpts = getBaseProfileOptions(item);
|
||||
builderOpts.enableSsaRender = (item && !options.isRetry && 'allcomplexformats' !== appSettings.get('subtitleburnin'));
|
||||
builderOpts.enableSsaRender = (item && !options.isRetry && appSettings.get('subtitleburnin') !== 'allcomplexformats');
|
||||
profile = profileBuilder(builderOpts);
|
||||
}
|
||||
|
||||
@ -370,7 +370,7 @@ define(['appSettings', 'browser', 'events', 'htmlMediaHelper', 'webSettings', 'g
|
||||
return window.NativeShell.AppHost.supports(command);
|
||||
}
|
||||
|
||||
return -1 !== supportedFeatures.indexOf(command.toLowerCase());
|
||||
return supportedFeatures.indexOf(command.toLowerCase()) !== -1;
|
||||
},
|
||||
preferVisualCards: browser.android || browser.chrome,
|
||||
getSyncProfile: getSyncProfile,
|
||||
|
@ -277,7 +277,7 @@ import 'programStyles';
|
||||
*/
|
||||
function getImageWidth(shape, screenWidth, isOrientationLandscape) {
|
||||
const imagesPerRow = getPostersPerRow(shape, screenWidth, isOrientationLandscape);
|
||||
return Math.round(screenWidth / imagesPerRow) * 2;
|
||||
return Math.round(screenWidth / imagesPerRow);
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -73,7 +73,7 @@ import browser from 'browser';
|
||||
if (ImageTag) {
|
||||
return apiClient.getScaledImageUrl(Id, {
|
||||
|
||||
maxWidth: maxWidth * 2,
|
||||
maxWidth: maxWidth,
|
||||
tag: ImageTag,
|
||||
type: 'Chapter',
|
||||
index
|
||||
|
@ -129,7 +129,7 @@ import 'emby-itemscontainer';
|
||||
|
||||
let promise;
|
||||
|
||||
if ('MusicArtist' === section.types) {
|
||||
if (section.types === 'MusicArtist') {
|
||||
promise = ApiClient.getArtists(userId, options);
|
||||
} else {
|
||||
options.IncludeItemTypes = section.types;
|
||||
@ -169,7 +169,7 @@ import 'emby-itemscontainer';
|
||||
preferThumb: section.preferThumb,
|
||||
shape: section.shape,
|
||||
centerText: section.centerText && !cardLayout,
|
||||
overlayText: false !== section.overlayText,
|
||||
overlayText: section.overlayText !== false,
|
||||
showTitle: section.showTitle,
|
||||
showParentTitle: section.showParentTitle,
|
||||
scalable: true,
|
||||
@ -201,7 +201,7 @@ import 'emby-itemscontainer';
|
||||
|
||||
if (types) {
|
||||
sections = sections.filter(function (s) {
|
||||
return -1 !== types.indexOf(s.id);
|
||||
return types.indexOf(s.id) !== -1;
|
||||
});
|
||||
}
|
||||
|
||||
@ -222,7 +222,7 @@ import 'emby-itemscontainer';
|
||||
for (let i = 0, length = sections.length; i < length; i++) {
|
||||
const section = sections[i];
|
||||
elem = page.querySelector('.section' + section.id);
|
||||
promises.push(loadSection(elem, userId, topParentId, section, 1 === sections.length));
|
||||
promises.push(loadSection(elem, userId, topParentId, section, sections.length === 1));
|
||||
}
|
||||
|
||||
Promise.all(promises).then(function () {
|
||||
|
@ -21,7 +21,7 @@ import connectionManager from 'connectionManager';
|
||||
|
||||
if (!actionableParent || actionableParent.classList.contains('cardContent')) {
|
||||
apiClient.getJSON(apiClient.getUrl('Users/' + userId + '/Items/Latest', options)).then(function (items) {
|
||||
if (1 === items.length) {
|
||||
if (items.length === 1) {
|
||||
return void appRouter.showItem(items[0]);
|
||||
}
|
||||
|
||||
|
@ -16,7 +16,7 @@ import 'emby-input';
|
||||
return {
|
||||
Type: type,
|
||||
MinWidth: 0,
|
||||
Limit: 'Primary' === type ? 1 : 0
|
||||
Limit: type === 'Primary' ? 1 : 0
|
||||
};
|
||||
}
|
||||
|
||||
|
@ -1,342 +1,350 @@
|
||||
define(['apphost', 'globalize'], function (appHost, globalize) {
|
||||
'use strict';
|
||||
import appHost from 'apphost';
|
||||
import globalize from 'globalize';
|
||||
|
||||
function getDisplayName(item, options = {}) {
|
||||
if (!item) {
|
||||
throw new Error('null item passed into getDisplayName');
|
||||
export function getDisplayName(item, options = {}) {
|
||||
if (!item) {
|
||||
throw new Error('null item passed into getDisplayName');
|
||||
}
|
||||
|
||||
if (item.Type === 'Timer') {
|
||||
item = item.ProgramInfo || item;
|
||||
}
|
||||
|
||||
let name = ((item.Type === 'Program' || item.Type === 'Recording') && (item.IsSeries || item.EpisodeTitle) ? item.EpisodeTitle : item.Name) || '';
|
||||
|
||||
if (item.Type === 'TvChannel') {
|
||||
if (item.ChannelNumber) {
|
||||
return item.ChannelNumber + ' ' + name;
|
||||
}
|
||||
|
||||
if (item.Type === 'Timer') {
|
||||
item = item.ProgramInfo || item;
|
||||
}
|
||||
|
||||
var name = ((item.Type === 'Program' || item.Type === 'Recording') && (item.IsSeries || item.EpisodeTitle) ? item.EpisodeTitle : item.Name) || '';
|
||||
|
||||
if (item.Type === 'TvChannel') {
|
||||
if (item.ChannelNumber) {
|
||||
return item.ChannelNumber + ' ' + name;
|
||||
}
|
||||
return name;
|
||||
}
|
||||
if (item.Type === 'Episode' && item.ParentIndexNumber === 0) {
|
||||
name = globalize.translate('ValueSpecialEpisodeName', name);
|
||||
} else if ((item.Type === 'Episode' || item.Type === 'Program') && item.IndexNumber != null && item.ParentIndexNumber != null && options.includeIndexNumber !== false) {
|
||||
var displayIndexNumber = item.IndexNumber;
|
||||
|
||||
var number = displayIndexNumber;
|
||||
var nameSeparator = ' - ';
|
||||
|
||||
if (options.includeParentInfo !== false) {
|
||||
number = 'S' + item.ParentIndexNumber + ':E' + number;
|
||||
} else {
|
||||
nameSeparator = '. ';
|
||||
}
|
||||
|
||||
if (item.IndexNumberEnd) {
|
||||
displayIndexNumber = item.IndexNumberEnd;
|
||||
number += '-' + displayIndexNumber;
|
||||
}
|
||||
|
||||
if (number) {
|
||||
name = name ? (number + nameSeparator + name) : number;
|
||||
}
|
||||
}
|
||||
|
||||
return name;
|
||||
}
|
||||
if (item.Type === 'Episode' && item.ParentIndexNumber === 0) {
|
||||
name = globalize.translate('ValueSpecialEpisodeName', name);
|
||||
} else if ((item.Type === 'Episode' || item.Type === 'Program') && item.IndexNumber != null && item.ParentIndexNumber != null && options.includeIndexNumber !== false) {
|
||||
let displayIndexNumber = item.IndexNumber;
|
||||
|
||||
function supportsAddingToCollection(item) {
|
||||
var invalidTypes = ['Genre', 'MusicGenre', 'Studio', 'UserView', 'CollectionFolder', 'Audio', 'Program', 'Timer', 'SeriesTimer'];
|
||||
let number = displayIndexNumber;
|
||||
let nameSeparator = ' - ';
|
||||
|
||||
if (item.Type === 'Recording') {
|
||||
if (item.Status !== 'Completed') {
|
||||
return false;
|
||||
}
|
||||
if (options.includeParentInfo !== false) {
|
||||
number = 'S' + item.ParentIndexNumber + ':E' + number;
|
||||
} else {
|
||||
nameSeparator = '. ';
|
||||
}
|
||||
|
||||
return !item.CollectionType && invalidTypes.indexOf(item.Type) === -1 && item.MediaType !== 'Photo' && !isLocalItem(item);
|
||||
if (item.IndexNumberEnd) {
|
||||
displayIndexNumber = item.IndexNumberEnd;
|
||||
number += '-' + displayIndexNumber;
|
||||
}
|
||||
|
||||
if (number) {
|
||||
name = name ? (number + nameSeparator + name) : number;
|
||||
}
|
||||
}
|
||||
|
||||
function supportsAddingToPlaylist(item) {
|
||||
if (item.Type === 'Program') {
|
||||
return false;
|
||||
}
|
||||
if (item.Type === 'TvChannel') {
|
||||
return false;
|
||||
}
|
||||
if (item.Type === 'Timer') {
|
||||
return false;
|
||||
}
|
||||
if (item.Type === 'SeriesTimer') {
|
||||
return false;
|
||||
}
|
||||
if (item.MediaType === 'Photo') {
|
||||
return false;
|
||||
}
|
||||
return name;
|
||||
}
|
||||
|
||||
if (item.Type === 'Recording') {
|
||||
if (item.Status !== 'Completed') {
|
||||
return false;
|
||||
}
|
||||
}
|
||||
export function supportsAddingToCollection(item) {
|
||||
const invalidTypes = ['Genre', 'MusicGenre', 'Studio', 'UserView', 'CollectionFolder', 'Audio', 'Program', 'Timer', 'SeriesTimer'];
|
||||
|
||||
if (isLocalItem(item)) {
|
||||
if (item.Type === 'Recording') {
|
||||
if (item.Status !== 'Completed') {
|
||||
return false;
|
||||
}
|
||||
if (item.CollectionType === 'livetv') {
|
||||
return false;
|
||||
}
|
||||
|
||||
return item.MediaType || item.IsFolder || item.Type === 'Genre' || item.Type === 'MusicGenre' || item.Type === 'MusicArtist';
|
||||
}
|
||||
|
||||
function canEdit(user, item) {
|
||||
var itemType = item.Type;
|
||||
return !item.CollectionType && invalidTypes.indexOf(item.Type) === -1 && item.MediaType !== 'Photo' && !isLocalItem(item);
|
||||
}
|
||||
|
||||
if (itemType === 'UserRootFolder' || itemType === 'UserView') {
|
||||
return false;
|
||||
}
|
||||
|
||||
if (itemType === 'Program') {
|
||||
return false;
|
||||
}
|
||||
|
||||
if (itemType === 'Timer') {
|
||||
return false;
|
||||
}
|
||||
|
||||
if (itemType === 'SeriesTimer') {
|
||||
return false;
|
||||
}
|
||||
|
||||
if (item.Type === 'Recording') {
|
||||
if (item.Status !== 'Completed') {
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
if (isLocalItem(item)) {
|
||||
return false;
|
||||
}
|
||||
|
||||
return user.Policy.IsAdministrator;
|
||||
export function supportsAddingToPlaylist(item) {
|
||||
if (item.Type === 'Program') {
|
||||
return false;
|
||||
}
|
||||
if (item.Type === 'TvChannel') {
|
||||
return false;
|
||||
}
|
||||
if (item.Type === 'Timer') {
|
||||
return false;
|
||||
}
|
||||
if (item.Type === 'SeriesTimer') {
|
||||
return false;
|
||||
}
|
||||
if (item.MediaType === 'Photo') {
|
||||
return false;
|
||||
}
|
||||
|
||||
function isLocalItem(item) {
|
||||
if (item && item.Id && item.Id.indexOf('local') === 0) {
|
||||
if (item.Type === 'Recording') {
|
||||
if (item.Status !== 'Completed') {
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
if (isLocalItem(item)) {
|
||||
return false;
|
||||
}
|
||||
if (item.CollectionType === 'livetv') {
|
||||
return false;
|
||||
}
|
||||
|
||||
return item.MediaType || item.IsFolder || item.Type === 'Genre' || item.Type === 'MusicGenre' || item.Type === 'MusicArtist';
|
||||
}
|
||||
|
||||
export function canEdit(user, item) {
|
||||
const itemType = item.Type;
|
||||
|
||||
if (itemType === 'UserRootFolder' || itemType === 'UserView') {
|
||||
return false;
|
||||
}
|
||||
|
||||
if (itemType === 'Program') {
|
||||
return false;
|
||||
}
|
||||
|
||||
if (itemType === 'Timer') {
|
||||
return false;
|
||||
}
|
||||
|
||||
if (itemType === 'SeriesTimer') {
|
||||
return false;
|
||||
}
|
||||
|
||||
if (item.Type === 'Recording') {
|
||||
if (item.Status !== 'Completed') {
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
if (isLocalItem(item)) {
|
||||
return false;
|
||||
}
|
||||
|
||||
return user.Policy.IsAdministrator;
|
||||
}
|
||||
|
||||
export function isLocalItem(item) {
|
||||
if (item && item.Id && item.Id.indexOf('local') === 0) {
|
||||
return true;
|
||||
}
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
export function canIdentify (user, item) {
|
||||
const itemType = item.Type;
|
||||
|
||||
if (itemType === 'Movie' ||
|
||||
itemType === 'Trailer' ||
|
||||
itemType === 'Series' ||
|
||||
itemType === 'BoxSet' ||
|
||||
itemType === 'Person' ||
|
||||
itemType === 'Book' ||
|
||||
itemType === 'MusicAlbum' ||
|
||||
itemType === 'MusicArtist' ||
|
||||
itemType === 'MusicVideo') {
|
||||
if (user.Policy.IsAdministrator) {
|
||||
if (!isLocalItem(item)) {
|
||||
return true;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
export function canEditImages (user, item) {
|
||||
const itemType = item.Type;
|
||||
|
||||
if (item.MediaType === 'Photo') {
|
||||
return false;
|
||||
}
|
||||
|
||||
if (itemType === 'UserView') {
|
||||
if (user.Policy.IsAdministrator) {
|
||||
return true;
|
||||
}
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
return {
|
||||
getDisplayName: getDisplayName,
|
||||
supportsAddingToCollection: supportsAddingToCollection,
|
||||
supportsAddingToPlaylist: supportsAddingToPlaylist,
|
||||
isLocalItem: isLocalItem,
|
||||
|
||||
canIdentify: function (user, item) {
|
||||
var itemType = item.Type;
|
||||
|
||||
if (itemType === 'Movie' ||
|
||||
itemType === 'Trailer' ||
|
||||
itemType === 'Series' ||
|
||||
itemType === 'BoxSet' ||
|
||||
itemType === 'Person' ||
|
||||
itemType === 'Book' ||
|
||||
itemType === 'MusicAlbum' ||
|
||||
itemType === 'MusicArtist' ||
|
||||
itemType === 'MusicVideo') {
|
||||
if (user.Policy.IsAdministrator) {
|
||||
if (!isLocalItem(item)) {
|
||||
return true;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if (item.Type === 'Recording') {
|
||||
if (item.Status !== 'Completed') {
|
||||
return false;
|
||||
},
|
||||
}
|
||||
}
|
||||
|
||||
canEdit: canEdit,
|
||||
return itemType !== 'Timer' && itemType !== 'SeriesTimer' && canEdit(user, item) && !isLocalItem(item);
|
||||
}
|
||||
|
||||
canEditImages: function (user, item) {
|
||||
var itemType = item.Type;
|
||||
export function canSync (user, item) {
|
||||
if (user && !user.Policy.EnableContentDownloading) {
|
||||
return false;
|
||||
}
|
||||
|
||||
if (item.MediaType === 'Photo') {
|
||||
return false;
|
||||
}
|
||||
if (isLocalItem(item)) {
|
||||
return false;
|
||||
}
|
||||
|
||||
if (itemType === 'UserView') {
|
||||
if (user.Policy.IsAdministrator) {
|
||||
return true;
|
||||
}
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
if (item.Type === 'Recording') {
|
||||
if (item.Status !== 'Completed') {
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
return itemType !== 'Timer' && itemType !== 'SeriesTimer' && canEdit(user, item) && !isLocalItem(item);
|
||||
},
|
||||
|
||||
canSync: function (user, item) {
|
||||
if (user && !user.Policy.EnableContentDownloading) {
|
||||
return false;
|
||||
}
|
||||
|
||||
if (isLocalItem(item)) {
|
||||
return false;
|
||||
}
|
||||
|
||||
return item.SupportsSync;
|
||||
},
|
||||
|
||||
canShare: function (item, user) {
|
||||
if (item.Type === 'Program') {
|
||||
return false;
|
||||
}
|
||||
if (item.Type === 'TvChannel') {
|
||||
return false;
|
||||
}
|
||||
if (item.Type === 'Timer') {
|
||||
return false;
|
||||
}
|
||||
if (item.Type === 'SeriesTimer') {
|
||||
return false;
|
||||
}
|
||||
if (item.Type === 'Recording') {
|
||||
if (item.Status !== 'Completed') {
|
||||
return false;
|
||||
}
|
||||
}
|
||||
if (isLocalItem(item)) {
|
||||
return false;
|
||||
}
|
||||
return user.Policy.EnablePublicSharing && appHost.supports('sharing');
|
||||
},
|
||||
|
||||
enableDateAddedDisplay: function (item) {
|
||||
return !item.IsFolder && item.MediaType && item.Type !== 'Program' && item.Type !== 'TvChannel' && item.Type !== 'Trailer';
|
||||
},
|
||||
|
||||
canMarkPlayed: function (item) {
|
||||
if (item.Type === 'Program') {
|
||||
return false;
|
||||
}
|
||||
|
||||
if (item.MediaType === 'Video') {
|
||||
if (item.Type !== 'TvChannel') {
|
||||
return true;
|
||||
}
|
||||
} else if (item.MediaType === 'Audio') {
|
||||
if (item.Type === 'AudioPodcast') {
|
||||
return true;
|
||||
}
|
||||
if (item.Type === 'AudioBook') {
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
||||
if (item.Type === 'Series' ||
|
||||
item.Type === 'Season' ||
|
||||
item.Type === 'BoxSet' ||
|
||||
item.MediaType === 'Book' ||
|
||||
item.MediaType === 'Recording') {
|
||||
return true;
|
||||
}
|
||||
return item.SupportsSync;
|
||||
}
|
||||
|
||||
export function canShare (item, user) {
|
||||
if (item.Type === 'Program') {
|
||||
return false;
|
||||
}
|
||||
if (item.Type === 'TvChannel') {
|
||||
return false;
|
||||
}
|
||||
if (item.Type === 'Timer') {
|
||||
return false;
|
||||
}
|
||||
if (item.Type === 'SeriesTimer') {
|
||||
return false;
|
||||
}
|
||||
if (item.Type === 'Recording') {
|
||||
if (item.Status !== 'Completed') {
|
||||
return false;
|
||||
},
|
||||
}
|
||||
}
|
||||
if (isLocalItem(item)) {
|
||||
return false;
|
||||
}
|
||||
return user.Policy.EnablePublicSharing && appHost.supports('sharing');
|
||||
}
|
||||
|
||||
canRate: function (item) {
|
||||
if (item.Type === 'Program'
|
||||
|| item.Type === 'Timer'
|
||||
|| item.Type === 'SeriesTimer'
|
||||
|| item.Type === 'CollectionFolder'
|
||||
|| item.Type === 'UserView'
|
||||
|| item.Type === 'Channel'
|
||||
|| !item.UserData) {
|
||||
return false;
|
||||
}
|
||||
export function enableDateAddedDisplay (item) {
|
||||
return !item.IsFolder && item.MediaType && item.Type !== 'Program' && item.Type !== 'TvChannel' && item.Type !== 'Trailer';
|
||||
}
|
||||
|
||||
return true;
|
||||
},
|
||||
|
||||
canConvert: function (item, user) {
|
||||
if (!user.Policy.EnableMediaConversion) {
|
||||
return false;
|
||||
}
|
||||
|
||||
if (isLocalItem(item)) {
|
||||
return false;
|
||||
}
|
||||
|
||||
var mediaType = item.MediaType;
|
||||
if (mediaType === 'Book' || mediaType === 'Photo' || mediaType === 'Audio') {
|
||||
return false;
|
||||
}
|
||||
|
||||
var collectionType = item.CollectionType;
|
||||
if (collectionType === 'livetv') {
|
||||
return false;
|
||||
}
|
||||
|
||||
var type = item.Type;
|
||||
if (type === 'Channel' || type === 'Person' || type === 'Year' || type === 'Program' || type === 'Timer' || type === 'SeriesTimer') {
|
||||
return false;
|
||||
}
|
||||
|
||||
if (item.LocationType === 'Virtual' && !item.IsFolder) {
|
||||
return false;
|
||||
}
|
||||
|
||||
if (item.IsPlaceHolder) {
|
||||
return false;
|
||||
}
|
||||
|
||||
return true;
|
||||
},
|
||||
|
||||
canRefreshMetadata: function (item, user) {
|
||||
if (user.Policy.IsAdministrator) {
|
||||
var collectionType = item.CollectionType;
|
||||
if (collectionType === 'livetv') {
|
||||
return false;
|
||||
}
|
||||
|
||||
if (item.Type !== 'Timer' && item.Type !== 'SeriesTimer' && item.Type !== 'Program' && item.Type !== 'TvChannel' && !(item.Type === 'Recording' && item.Status !== 'Completed')) {
|
||||
if (!isLocalItem(item)) {
|
||||
return true;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return false;
|
||||
},
|
||||
|
||||
supportsMediaSourceSelection: function (item) {
|
||||
if (item.MediaType !== 'Video') {
|
||||
return false;
|
||||
}
|
||||
if (item.Type === 'TvChannel') {
|
||||
return false;
|
||||
}
|
||||
if (!item.MediaSources || (item.MediaSources.length === 1 && item.MediaSources[0].Type === 'Placeholder')) {
|
||||
return false;
|
||||
}
|
||||
if (item.EnableMediaSourceDisplay === false) {
|
||||
return false;
|
||||
}
|
||||
if (item.EnableMediaSourceDisplay == null && item.SourceType && item.SourceType !== 'Library') {
|
||||
return false;
|
||||
}
|
||||
export function canMarkPlayed (item) {
|
||||
if (item.Type === 'Program') {
|
||||
return false;
|
||||
}
|
||||
|
||||
if (item.MediaType === 'Video') {
|
||||
if (item.Type !== 'TvChannel') {
|
||||
return true;
|
||||
}
|
||||
};
|
||||
});
|
||||
} else if (item.MediaType === 'Audio') {
|
||||
if (item.Type === 'AudioPodcast') {
|
||||
return true;
|
||||
}
|
||||
if (item.Type === 'AudioBook') {
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
||||
if (item.Type === 'Series' ||
|
||||
item.Type === 'Season' ||
|
||||
item.Type === 'BoxSet' ||
|
||||
item.MediaType === 'Book' ||
|
||||
item.MediaType === 'Recording') {
|
||||
return true;
|
||||
}
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
export function canRate (item) {
|
||||
if (item.Type === 'Program'
|
||||
|| item.Type === 'Timer'
|
||||
|| item.Type === 'SeriesTimer'
|
||||
|| item.Type === 'CollectionFolder'
|
||||
|| item.Type === 'UserView'
|
||||
|| item.Type === 'Channel'
|
||||
|| !item.UserData) {
|
||||
return false;
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
export function canConvert (item, user) {
|
||||
if (!user.Policy.EnableMediaConversion) {
|
||||
return false;
|
||||
}
|
||||
|
||||
if (isLocalItem(item)) {
|
||||
return false;
|
||||
}
|
||||
|
||||
const mediaType = item.MediaType;
|
||||
if (mediaType === 'Book' || mediaType === 'Photo' || mediaType === 'Audio') {
|
||||
return false;
|
||||
}
|
||||
|
||||
const collectionType = item.CollectionType;
|
||||
if (collectionType === 'livetv') {
|
||||
return false;
|
||||
}
|
||||
|
||||
const type = item.Type;
|
||||
if (type === 'Channel' || type === 'Person' || type === 'Year' || type === 'Program' || type === 'Timer' || type === 'SeriesTimer') {
|
||||
return false;
|
||||
}
|
||||
|
||||
if (item.LocationType === 'Virtual' && !item.IsFolder) {
|
||||
return false;
|
||||
}
|
||||
|
||||
if (item.IsPlaceHolder) {
|
||||
return false;
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
export function canRefreshMetadata (item, user) {
|
||||
if (user.Policy.IsAdministrator) {
|
||||
const collectionType = item.CollectionType;
|
||||
if (collectionType === 'livetv') {
|
||||
return false;
|
||||
}
|
||||
|
||||
if (item.Type !== 'Timer' && item.Type !== 'SeriesTimer' && item.Type !== 'Program' && item.Type !== 'TvChannel' && !(item.Type === 'Recording' && item.Status !== 'Completed')) {
|
||||
if (!isLocalItem(item)) {
|
||||
return true;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
export function supportsMediaSourceSelection (item) {
|
||||
if (item.MediaType !== 'Video') {
|
||||
return false;
|
||||
}
|
||||
if (item.Type === 'TvChannel') {
|
||||
return false;
|
||||
}
|
||||
if (!item.MediaSources || (item.MediaSources.length === 1 && item.MediaSources[0].Type === 'Placeholder')) {
|
||||
return false;
|
||||
}
|
||||
if (item.EnableMediaSourceDisplay === false) {
|
||||
return false;
|
||||
}
|
||||
if (item.EnableMediaSourceDisplay == null && item.SourceType && item.SourceType !== 'Library') {
|
||||
return false;
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
export default {
|
||||
getDisplayName: getDisplayName,
|
||||
supportsAddingToCollection: supportsAddingToCollection,
|
||||
supportsAddingToPlaylist: supportsAddingToPlaylist,
|
||||
isLocalItem: isLocalItem,
|
||||
canIdentify: canIdentify,
|
||||
canEdit: canEdit,
|
||||
canEditImages: canEditImages,
|
||||
canSync: canSync,
|
||||
canShare: canShare,
|
||||
enableDateAddedDisplay: enableDateAddedDisplay,
|
||||
canMarkPlayed: canMarkPlayed,
|
||||
canRate: canRate,
|
||||
canConvert: canConvert,
|
||||
canRefreshMetadata: canRefreshMetadata,
|
||||
supportsMediaSourceSelection: supportsMediaSourceSelection
|
||||
};
|
||||
|
@ -219,7 +219,7 @@ import 'emby-input';
|
||||
html += '<div class="flex align-items-center" style="margin:1.5em 0 .5em;">';
|
||||
html += '<h3 class="checkboxListLabel" style="margin:0;">' + globalize.translate('HeaderTypeImageFetchers', availableTypeOptions.Type) + '</h3>';
|
||||
const supportedImageTypes = availableTypeOptions.SupportedImageTypes || [];
|
||||
if (supportedImageTypes.length > 1 || 1 === supportedImageTypes.length && 'Primary' !== supportedImageTypes[0]) {
|
||||
if (supportedImageTypes.length > 1 || supportedImageTypes.length === 1 && supportedImageTypes[0] !== 'Primary') {
|
||||
html += '<button is="emby-button" class="raised btnImageOptionsForType" type="button" style="margin-left:1.5em;font-size:90%;"><span>' + globalize.translate('HeaderFetcherSettings') + '</span></button>';
|
||||
}
|
||||
html += '</div>';
|
||||
@ -362,7 +362,7 @@ import 'emby-input';
|
||||
TypeOptions: []
|
||||
};
|
||||
currentAvailableOptions = null;
|
||||
const isNewLibrary = null === libraryOptions;
|
||||
const isNewLibrary = libraryOptions === null;
|
||||
isNewLibrary && parent.classList.add('newlibrary');
|
||||
const response = await fetch('components/libraryoptionseditor/libraryoptionseditor.template.html');
|
||||
const template = await response.text();
|
||||
@ -578,7 +578,7 @@ import 'emby-input';
|
||||
parent.querySelector('#chkSkipIfAudioTrackPresent').checked = options.SkipSubtitlesIfAudioTrackMatches;
|
||||
parent.querySelector('#chkRequirePerfectMatch').checked = options.RequirePerfectSubtitleMatch;
|
||||
Array.prototype.forEach.call(parent.querySelectorAll('.chkMetadataSaver'), elem => {
|
||||
elem.checked = options.MetadataSavers ? options.MetadataSavers.includes(elem.getAttribute('data-pluginname')) : 'true' === elem.getAttribute('data-defaultenabled');
|
||||
elem.checked = options.MetadataSavers ? options.MetadataSavers.includes(elem.getAttribute('data-pluginname')) : elem.getAttribute('data-defaultenabled') === 'true';
|
||||
});
|
||||
Array.prototype.forEach.call(parent.querySelectorAll('.chkSubtitleLanguage'), elem => {
|
||||
elem.checked = !!options.SubtitleDownloadLanguages && options.SubtitleDownloadLanguages.includes(elem.getAttribute('data-lang'));
|
||||
|
@ -81,7 +81,7 @@ import 'emby-playstatebutton';
|
||||
let itemId;
|
||||
|
||||
const options = {
|
||||
maxWidth: width * 2,
|
||||
maxWidth: width,
|
||||
type: 'Primary'
|
||||
};
|
||||
|
||||
@ -108,7 +108,7 @@ import 'emby-playstatebutton';
|
||||
function getChannelImageUrl(item, width) {
|
||||
const apiClient = connectionManager.getApiClient(item.ServerId);
|
||||
const options = {
|
||||
maxWidth: width * 2,
|
||||
maxWidth: width,
|
||||
type: 'Primary'
|
||||
};
|
||||
|
||||
|
@ -98,8 +98,8 @@ import 'flexStyles';
|
||||
if (listItem) {
|
||||
const index = parseInt(listItem.getAttribute('data-index'));
|
||||
const pathInfos = (currentOptions.library.LibraryOptions || {}).PathInfos || [];
|
||||
const pathInfo = null == index ? {} : pathInfos[index] || {};
|
||||
const originalPath = pathInfo.Path || (null == index ? null : currentOptions.library.Locations[index]);
|
||||
const pathInfo = index == null ? {} : pathInfos[index] || {};
|
||||
const originalPath = pathInfo.Path || (index == null ? null : currentOptions.library.Locations[index]);
|
||||
const btnRemovePath = dom.parentWithClass(e.target, 'btnRemovePath');
|
||||
|
||||
if (btnRemovePath) {
|
||||
@ -171,7 +171,7 @@ import 'flexStyles';
|
||||
const picker = new directoryBrowser();
|
||||
picker.show({
|
||||
enableNetworkSharePath: true,
|
||||
pathReadOnly: null != originalPath,
|
||||
pathReadOnly: originalPath != null,
|
||||
path: originalPath,
|
||||
networkSharePath: networkPath,
|
||||
callback: function (path, networkSharePath) {
|
||||
|
@ -85,7 +85,7 @@
|
||||
<div class="selectContainer">
|
||||
<select is="emby-select" class="selectChromecastVersion" label="${LabelChromecastVersion}">
|
||||
<option value="stable">${LabelStable}</option>
|
||||
<option value="nightly">${LabelNightly}</option>
|
||||
<option value="unstable">${LabelUnstable}</option>
|
||||
</select>
|
||||
</div>
|
||||
|
||||
|
@ -48,7 +48,7 @@ define(['browser', 'datetime', 'backdrop', 'libraryBrowser', 'listView', 'imageL
|
||||
menuItems.unshift({
|
||||
id: -1,
|
||||
name: globalize.translate('ButtonOff'),
|
||||
selected: null == currentIndex
|
||||
selected: currentIndex == null
|
||||
});
|
||||
|
||||
require(['actionsheet'], function (actionsheet) {
|
||||
@ -69,18 +69,18 @@ define(['browser', 'datetime', 'backdrop', 'libraryBrowser', 'listView', 'imageL
|
||||
}
|
||||
|
||||
function seriesImageUrl(item, options) {
|
||||
if ('Episode' !== item.Type) {
|
||||
if (item.Type !== 'Episode') {
|
||||
return null;
|
||||
}
|
||||
|
||||
options = options || {};
|
||||
options.type = options.type || 'Primary';
|
||||
if ('Primary' === options.type && item.SeriesPrimaryImageTag) {
|
||||
if (options.type === 'Primary' && item.SeriesPrimaryImageTag) {
|
||||
options.tag = item.SeriesPrimaryImageTag;
|
||||
return connectionManager.getApiClient(item.ServerId).getScaledImageUrl(item.SeriesId, options);
|
||||
}
|
||||
|
||||
if ('Thumb' === options.type) {
|
||||
if (options.type === 'Thumb') {
|
||||
if (item.SeriesThumbImageTag) {
|
||||
options.tag = item.SeriesThumbImageTag;
|
||||
return connectionManager.getApiClient(item.ServerId).getScaledImageUrl(item.SeriesId, options);
|
||||
@ -171,9 +171,9 @@ define(['browser', 'datetime', 'backdrop', 'libraryBrowser', 'listView', 'imageL
|
||||
}
|
||||
|
||||
var url = item ? seriesImageUrl(item, {
|
||||
maxHeight: 300 * 2
|
||||
maxHeight: 300
|
||||
}) || imageUrl(item, {
|
||||
maxHeight: 300 * 2
|
||||
maxHeight: 300
|
||||
}) : null;
|
||||
|
||||
let contextButton = context.querySelector('.btnToggleContextMenu');
|
||||
@ -210,7 +210,7 @@ define(['browser', 'datetime', 'backdrop', 'libraryBrowser', 'listView', 'imageL
|
||||
backdrop.setBackdrops([item]);
|
||||
apiClient.getItem(apiClient.getCurrentUserId(), item.Id).then(function (fullItem) {
|
||||
var userData = fullItem.UserData || {};
|
||||
var likes = null == userData.Likes ? '' : userData.Likes;
|
||||
var likes = userData.Likes == null ? '' : 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 + '"><span class="material-icons favorite"></span></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 + '"><span class="material-icons favorite"></span></button>';
|
||||
});
|
||||
@ -251,7 +251,7 @@ define(['browser', 'datetime', 'backdrop', 'libraryBrowser', 'listView', 'imageL
|
||||
var all = context.querySelectorAll('.btnCommand');
|
||||
|
||||
for (var i = 0, length = all.length; i < length; i++) {
|
||||
var enableButton = -1 !== commands.indexOf(all[i].getAttribute('data-command'));
|
||||
var enableButton = commands.indexOf(all[i].getAttribute('data-command')) !== -1;
|
||||
all[i].disabled = !enableButton;
|
||||
}
|
||||
}
|
||||
@ -278,7 +278,7 @@ define(['browser', 'datetime', 'backdrop', 'libraryBrowser', 'listView', 'imageL
|
||||
currentPlayerSupportedCommands = supportedCommands;
|
||||
var playState = state.PlayState || {};
|
||||
var isSupportedCommands = supportedCommands.includes('DisplayMessage') || supportedCommands.includes('SendString') || supportedCommands.includes('Select');
|
||||
buttonVisible(context.querySelector('.btnToggleFullscreen'), item && 'Video' == item.MediaType && supportedCommands.includes('ToggleFullscreen'));
|
||||
buttonVisible(context.querySelector('.btnToggleFullscreen'), item && item.MediaType == 'Video' && supportedCommands.includes('ToggleFullscreen'));
|
||||
updateAudioTracksDisplay(player, context);
|
||||
updateSubtitleTracksDisplay(player, context);
|
||||
|
||||
@ -306,15 +306,15 @@ define(['browser', 'datetime', 'backdrop', 'libraryBrowser', 'listView', 'imageL
|
||||
context.querySelector('.remoteControlSection').classList.add('hide');
|
||||
}
|
||||
|
||||
buttonVisible(context.querySelector('.btnStop'), null != item);
|
||||
buttonVisible(context.querySelector('.btnNextTrack'), null != item);
|
||||
buttonVisible(context.querySelector('.btnPreviousTrack'), null != item);
|
||||
buttonVisible(context.querySelector('.btnStop'), item != null);
|
||||
buttonVisible(context.querySelector('.btnNextTrack'), item != null);
|
||||
buttonVisible(context.querySelector('.btnPreviousTrack'), item != null);
|
||||
if (layoutManager.mobile) {
|
||||
buttonVisible(context.querySelector('.btnRewind'), false);
|
||||
buttonVisible(context.querySelector('.btnFastForward'), false);
|
||||
} else {
|
||||
buttonVisible(context.querySelector('.btnRewind'), null != item);
|
||||
buttonVisible(context.querySelector('.btnFastForward'), null != item);
|
||||
buttonVisible(context.querySelector('.btnRewind'), item != null);
|
||||
buttonVisible(context.querySelector('.btnFastForward'), item != null);
|
||||
}
|
||||
var positionSlider = context.querySelector('.nowPlayingPositionSlider');
|
||||
|
||||
@ -325,15 +325,15 @@ define(['browser', 'datetime', 'backdrop', 'libraryBrowser', 'listView', 'imageL
|
||||
|
||||
if (positionSlider && !positionSlider.dragging) {
|
||||
positionSlider.disabled = !playState.CanSeek;
|
||||
var isProgressClear = state.MediaSource && null == state.MediaSource.RunTimeTicks;
|
||||
var isProgressClear = state.MediaSource && state.MediaSource.RunTimeTicks == null;
|
||||
positionSlider.setIsClear(isProgressClear);
|
||||
}
|
||||
|
||||
updatePlayPauseState(playState.IsPaused, null != item);
|
||||
updatePlayPauseState(playState.IsPaused, item != null);
|
||||
updateTimeDisplay(playState.PositionTicks, item ? item.RunTimeTicks : null);
|
||||
updatePlayerVolumeState(context, playState.IsMuted, playState.VolumeLevel);
|
||||
|
||||
if (item && 'Video' == item.MediaType) {
|
||||
if (item && item.MediaType == 'Video') {
|
||||
context.classList.remove('hideVideoButtons');
|
||||
} else {
|
||||
context.classList.add('hideVideoButtons');
|
||||
@ -346,12 +346,12 @@ define(['browser', 'datetime', 'backdrop', 'libraryBrowser', 'listView', 'imageL
|
||||
|
||||
function updateAudioTracksDisplay(player, context) {
|
||||
var supportedCommands = currentPlayerSupportedCommands;
|
||||
buttonVisible(context.querySelector('.btnAudioTracks'), playbackManager.audioTracks(player).length > 1 && -1 != supportedCommands.indexOf('SetAudioStreamIndex'));
|
||||
buttonVisible(context.querySelector('.btnAudioTracks'), playbackManager.audioTracks(player).length > 1 && supportedCommands.indexOf('SetAudioStreamIndex') != -1);
|
||||
}
|
||||
|
||||
function updateSubtitleTracksDisplay(player, context) {
|
||||
var supportedCommands = currentPlayerSupportedCommands;
|
||||
buttonVisible(context.querySelector('.btnSubtitles'), playbackManager.subtitleTracks(player).length && -1 != supportedCommands.indexOf('SetSubtitleStreamIndex'));
|
||||
buttonVisible(context.querySelector('.btnSubtitles'), playbackManager.subtitleTracks(player).length && supportedCommands.indexOf('SetSubtitleStreamIndex') != -1);
|
||||
}
|
||||
|
||||
function updateRepeatModeDisplay(repeatMode) {
|
||||
@ -383,11 +383,11 @@ define(['browser', 'datetime', 'backdrop', 'libraryBrowser', 'listView', 'imageL
|
||||
var view = context;
|
||||
var supportedCommands = currentPlayerSupportedCommands;
|
||||
|
||||
if (-1 === supportedCommands.indexOf('Mute')) {
|
||||
if (supportedCommands.indexOf('Mute') === -1) {
|
||||
showMuteButton = false;
|
||||
}
|
||||
|
||||
if (-1 === supportedCommands.indexOf('SetVolume')) {
|
||||
if (supportedCommands.indexOf('SetVolume') === -1) {
|
||||
showVolumeSlider = false;
|
||||
}
|
||||
|
||||
@ -452,8 +452,8 @@ define(['browser', 'datetime', 'backdrop', 'libraryBrowser', 'listView', 'imageL
|
||||
}
|
||||
}
|
||||
|
||||
context.querySelector('.positionTime').innerHTML = null == positionTicks ? '--:--' : datetime.getDisplayRunningTime(positionTicks);
|
||||
context.querySelector('.runtime').innerHTML = null != runtimeTicks ? datetime.getDisplayRunningTime(runtimeTicks) : '--:--';
|
||||
context.querySelector('.positionTime').innerHTML = positionTicks == null ? '--:--' : datetime.getDisplayRunningTime(positionTicks);
|
||||
context.querySelector('.runtime').innerHTML = runtimeTicks != null ? datetime.getDisplayRunningTime(runtimeTicks) : '--:--';
|
||||
}
|
||||
|
||||
function getPlaylistItems(player) {
|
||||
|
@ -44,7 +44,7 @@ define(['jQuery', 'loading', 'globalize', 'emby-checkbox', 'listViewStyle', 'emb
|
||||
for (var region in result) {
|
||||
var countries = result[region];
|
||||
|
||||
if (countries.length && 'ZZZ' !== region) {
|
||||
if (countries.length && region !== 'ZZZ') {
|
||||
for (i = 0, length = countries.length; i < length; i++) {
|
||||
countryList.push({
|
||||
name: countries[i].fullName,
|
||||
@ -239,7 +239,7 @@ define(['jQuery', 'loading', 'globalize', 'emby-checkbox', 'listViewStyle', 'emb
|
||||
var device = devices[i];
|
||||
html += '<div class="listItem">';
|
||||
var enabledTuners = providerInfo.EnabledTuners || [];
|
||||
var isChecked = providerInfo.EnableAllTuners || -1 !== enabledTuners.indexOf(device.Id);
|
||||
var isChecked = providerInfo.EnableAllTuners || enabledTuners.indexOf(device.Id) !== -1;
|
||||
var checkedAttribute = isChecked ? ' checked' : '';
|
||||
html += '<label class="checkboxContainer listItemCheckboxContainer"><input type="checkbox" is="emby-checkbox" data-id="' + device.Id + '" class="chkTuner" ' + checkedAttribute + '/><span></span></label>';
|
||||
html += '<div class="listItemBody two-line">';
|
||||
|
@ -86,7 +86,7 @@ define(['jQuery', 'loading', 'globalize', 'emby-checkbox', 'emby-input', 'listVi
|
||||
}).then(function (result) {
|
||||
loading.hide();
|
||||
|
||||
if (false !== options.showConfirmation) {
|
||||
if (options.showConfirmation !== false) {
|
||||
Dashboard.processServerConfigurationUpdateResult();
|
||||
}
|
||||
|
||||
@ -120,7 +120,7 @@ define(['jQuery', 'loading', 'globalize', 'emby-checkbox', 'emby-input', 'listVi
|
||||
var device = devices[i];
|
||||
html += '<div class="listItem">';
|
||||
var enabledTuners = providerInfo.EnabledTuners || [];
|
||||
var isChecked = providerInfo.EnableAllTuners || -1 !== enabledTuners.indexOf(device.Id);
|
||||
var isChecked = providerInfo.EnableAllTuners || enabledTuners.indexOf(device.Id) !== -1;
|
||||
var checkedAttribute = isChecked ? ' checked' : '';
|
||||
html += '<label class="listItemCheckboxContainer"><input type="checkbox" is="emby-checkbox" class="chkTuner" data-id="' + device.Id + '" ' + checkedAttribute + '><span></span></label>';
|
||||
html += '<div class="listItemBody two-line">';
|
||||
|
@ -9,7 +9,7 @@ define(['browser', 'dom', 'layoutManager', 'css!components/viewManager/viewConta
|
||||
var controllerUrl = view.getAttribute('data-controller');
|
||||
|
||||
if (controllerUrl) {
|
||||
if (0 === controllerUrl.indexOf('__plugin/')) {
|
||||
if (controllerUrl.indexOf('__plugin/') === 0) {
|
||||
controllerUrl = controllerUrl.substring('__plugin/'.length);
|
||||
}
|
||||
|
||||
@ -31,14 +31,14 @@ define(['browser', 'dom', 'layoutManager', 'css!components/viewManager/viewConta
|
||||
function loadView(options) {
|
||||
if (!options.cancel) {
|
||||
var selected = selectedPageIndex;
|
||||
var previousAnimatable = -1 === selected ? null : allPages[selected];
|
||||
var previousAnimatable = selected === -1 ? null : allPages[selected];
|
||||
var pageIndex = selected + 1;
|
||||
|
||||
if (pageIndex >= pageContainerCount) {
|
||||
pageIndex = 0;
|
||||
}
|
||||
|
||||
var isPluginpage = -1 !== options.url.toLowerCase().indexOf('/configurationpage');
|
||||
var isPluginpage = options.url.toLowerCase().indexOf('/configurationpage') !== -1;
|
||||
var newViewInfo = normalizeNewView(options, isPluginpage);
|
||||
var newView = newViewInfo.elem;
|
||||
var modulesToLoad = [];
|
||||
@ -53,7 +53,7 @@ define(['browser', 'dom', 'layoutManager', 'css!components/viewManager/viewConta
|
||||
|
||||
var view = newView;
|
||||
|
||||
if ('string' == typeof view) {
|
||||
if (typeof view == 'string') {
|
||||
view = document.createElement('div');
|
||||
view.innerHTML = newView;
|
||||
}
|
||||
@ -133,15 +133,15 @@ define(['browser', 'dom', 'layoutManager', 'css!components/viewManager/viewConta
|
||||
function normalizeNewView(options, isPluginpage) {
|
||||
var viewHtml = options.view;
|
||||
|
||||
if (-1 === viewHtml.indexOf('data-role="page"')) {
|
||||
if (viewHtml.indexOf('data-role="page"') === -1) {
|
||||
return viewHtml;
|
||||
}
|
||||
|
||||
var hasScript = -1 !== viewHtml.indexOf('<script');
|
||||
var hasScript = viewHtml.indexOf('<script') !== -1;
|
||||
var elem = parseHtml(viewHtml, hasScript);
|
||||
|
||||
if (hasScript) {
|
||||
hasScript = null != elem.querySelector('script');
|
||||
hasScript = elem.querySelector('script') != null;
|
||||
}
|
||||
|
||||
var hasjQuery = false;
|
||||
@ -149,9 +149,9 @@ define(['browser', 'dom', 'layoutManager', 'css!components/viewManager/viewConta
|
||||
var hasjQueryChecked = false;
|
||||
|
||||
if (isPluginpage) {
|
||||
hasjQuery = -1 != viewHtml.indexOf('jQuery') || -1 != viewHtml.indexOf('$(') || -1 != viewHtml.indexOf('$.');
|
||||
hasjQueryChecked = -1 != viewHtml.indexOf('.checked(');
|
||||
hasjQuerySelect = -1 != viewHtml.indexOf('.selectmenu(');
|
||||
hasjQuery = viewHtml.indexOf('jQuery') != -1 || viewHtml.indexOf('$(') != -1 || viewHtml.indexOf('$.') != -1;
|
||||
hasjQueryChecked = viewHtml.indexOf('.checked(') != -1;
|
||||
hasjQuerySelect = viewHtml.indexOf('.selectmenu(') != -1;
|
||||
}
|
||||
|
||||
return {
|
||||
@ -187,7 +187,7 @@ define(['browser', 'dom', 'layoutManager', 'css!components/viewManager/viewConta
|
||||
var url = options.url;
|
||||
var index = currentUrls.indexOf(url);
|
||||
|
||||
if (-1 !== index) {
|
||||
if (index !== -1) {
|
||||
var animatable = allPages[index];
|
||||
var view = animatable;
|
||||
|
||||
@ -197,7 +197,7 @@ define(['browser', 'dom', 'layoutManager', 'css!components/viewManager/viewConta
|
||||
}
|
||||
|
||||
var selected = selectedPageIndex;
|
||||
var previousAnimatable = -1 === selected ? null : allPages[selected];
|
||||
var previousAnimatable = selected === -1 ? null : allPages[selected];
|
||||
return setControllerClass(view, options).then(function () {
|
||||
if (onBeforeChange) {
|
||||
onBeforeChange(view, true, options);
|
||||
|
@ -313,7 +313,7 @@ import 'emby-itemscontainer';
|
||||
btnCssClass = session.TranscodingInfo && session.TranscodingInfo.TranscodeReasons && session.TranscodingInfo.TranscodeReasons.length ? '' : ' hide';
|
||||
html += '<button is="paper-icon-button-light" class="sessionCardButton btnSessionInfo paper-icon-button-light ' + btnCssClass + '" title="' + globalize.translate('ViewPlaybackInfo') + '"><span class="material-icons info"></span></button>';
|
||||
|
||||
btnCssClass = session.ServerId && -1 !== session.SupportedCommands.indexOf('DisplayMessage') && session.DeviceId !== connectionManager.deviceId() ? '' : ' hide';
|
||||
btnCssClass = session.ServerId && session.SupportedCommands.indexOf('DisplayMessage') !== -1 && session.DeviceId !== connectionManager.deviceId() ? '' : ' hide';
|
||||
html += '<button is="paper-icon-button-light" class="sessionCardButton btnSessionSendMessage paper-icon-button-light ' + btnCssClass + '" title="' + globalize.translate('SendMessage') + '"><span class="material-icons message"></span></button>';
|
||||
html += '</div>';
|
||||
|
||||
@ -346,7 +346,7 @@ import 'emby-itemscontainer';
|
||||
function renderRunningTasks(view, tasks) {
|
||||
let html = '';
|
||||
tasks = tasks.filter(function (task) {
|
||||
if ('Idle' != task.State) {
|
||||
if (task.State != 'Idle') {
|
||||
return !task.IsHidden;
|
||||
}
|
||||
|
||||
@ -551,7 +551,7 @@ import 'emby-itemscontainer';
|
||||
row.classList.remove('playingSession');
|
||||
}
|
||||
|
||||
if (session.ServerId && -1 !== session.SupportedCommands.indexOf('DisplayMessage') && session.DeviceId !== connectionManager.deviceId()) {
|
||||
if (session.ServerId && session.SupportedCommands.indexOf('DisplayMessage') !== -1 && session.DeviceId !== connectionManager.deviceId()) {
|
||||
row.querySelector('.btnSessionSendMessage').classList.remove('hide');
|
||||
} else {
|
||||
row.querySelector('.btnSessionSendMessage').classList.add('hide');
|
||||
|
@ -29,7 +29,7 @@ import 'listViewStyle';
|
||||
function renderProfile(page, profile, users) {
|
||||
$('#txtName', page).val(profile.Name);
|
||||
$('.chkMediaType', page).each(function () {
|
||||
this.checked = -1 != (profile.SupportedMediaTypes || '').split(',').indexOf(this.getAttribute('data-value'));
|
||||
this.checked = (profile.SupportedMediaTypes || '').split(',').indexOf(this.getAttribute('data-value')) != -1;
|
||||
});
|
||||
$('#chkEnableAlbumArtInDidl', page).prop('checked', profile.EnableAlbumArtInDidl);
|
||||
$('#chkEnableSingleImageLimit', page).prop('checked', profile.EnableSingleAlbumArtLimit);
|
||||
@ -111,7 +111,7 @@ import 'listViewStyle';
|
||||
}
|
||||
|
||||
function editIdentificationHeader(page, header) {
|
||||
isSubProfileNew = null == header;
|
||||
isSubProfileNew = header == null;
|
||||
header = header || {};
|
||||
currentSubProfile = header;
|
||||
const popup = $('#identificationHeaderPopup', page);
|
||||
@ -156,7 +156,7 @@ import 'listViewStyle';
|
||||
}
|
||||
|
||||
function editXmlDocumentAttribute(page, attribute) {
|
||||
isSubProfileNew = null == attribute;
|
||||
isSubProfileNew = attribute == null;
|
||||
attribute = attribute || {};
|
||||
currentSubProfile = attribute;
|
||||
const popup = $('#xmlAttributePopup', page);
|
||||
@ -204,7 +204,7 @@ import 'listViewStyle';
|
||||
}
|
||||
|
||||
function editSubtitleProfile(page, profile) {
|
||||
isSubProfileNew = null == profile;
|
||||
isSubProfileNew = profile == null;
|
||||
profile = profile || {};
|
||||
currentSubProfile = profile;
|
||||
const popup = $('#subtitleProfilePopup', page);
|
||||
@ -266,11 +266,11 @@ import 'listViewStyle';
|
||||
html += '<a is="emby-linkbutton" href="#" class="lnkEditSubProfile" data-profileindex="' + index + '">';
|
||||
html += '<p>' + globalize.translate('ValueContainer', profile.Container || allText) + '</p>';
|
||||
|
||||
if ('Video' == profile.Type) {
|
||||
if (profile.Type == 'Video') {
|
||||
html += '<p>' + globalize.translate('ValueVideoCodec', profile.VideoCodec || allText) + '</p>';
|
||||
html += '<p>' + globalize.translate('ValueAudioCodec', profile.AudioCodec || allText) + '</p>';
|
||||
} else {
|
||||
if ('Audio' == profile.Type) {
|
||||
if (profile.Type == 'Audio') {
|
||||
html += '<p>' + globalize.translate('ValueCodec', profile.AudioCodec || allText) + '</p>';
|
||||
}
|
||||
}
|
||||
@ -298,7 +298,7 @@ import 'listViewStyle';
|
||||
}
|
||||
|
||||
function editDirectPlayProfile(page, directPlayProfile) {
|
||||
isSubProfileNew = null == directPlayProfile;
|
||||
isSubProfileNew = directPlayProfile == null;
|
||||
directPlayProfile = directPlayProfile || {};
|
||||
currentSubProfile = directPlayProfile;
|
||||
const popup = $('#popupEditDirectPlayProfile', page);
|
||||
@ -327,11 +327,11 @@ import 'listViewStyle';
|
||||
html += '<p>Protocol: ' + (profile.Protocol || 'Http') + '</p>';
|
||||
html += '<p>' + globalize.translate('ValueContainer', profile.Container || allText) + '</p>';
|
||||
|
||||
if ('Video' == profile.Type) {
|
||||
if (profile.Type == 'Video') {
|
||||
html += '<p>' + globalize.translate('ValueVideoCodec', profile.VideoCodec || allText) + '</p>';
|
||||
html += '<p>' + globalize.translate('ValueAudioCodec', profile.AudioCodec || allText) + '</p>';
|
||||
} else {
|
||||
if ('Audio' == profile.Type) {
|
||||
if (profile.Type == 'Audio') {
|
||||
html += '<p>' + globalize.translate('ValueCodec', profile.AudioCodec || allText) + '</p>';
|
||||
}
|
||||
}
|
||||
@ -354,7 +354,7 @@ import 'listViewStyle';
|
||||
}
|
||||
|
||||
function editTranscodingProfile(page, transcodingProfile) {
|
||||
isSubProfileNew = null == transcodingProfile;
|
||||
isSubProfileNew = transcodingProfile == null;
|
||||
transcodingProfile = transcodingProfile || {};
|
||||
currentSubProfile = transcodingProfile;
|
||||
const popup = $('#transcodingProfilePopup', page);
|
||||
@ -365,7 +365,7 @@ import 'listViewStyle';
|
||||
$('#selectTranscodingProtocol', popup).val(transcodingProfile.Protocol || 'Http');
|
||||
$('#chkEnableMpegtsM2TsMode', popup).prop('checked', transcodingProfile.EnableMpegtsM2TsMode || false);
|
||||
$('#chkEstimateContentLength', popup).prop('checked', transcodingProfile.EstimateContentLength || false);
|
||||
$('#chkReportByteRangeRequests', popup).prop('checked', 'Bytes' == transcodingProfile.TranscodeSeekInfo);
|
||||
$('#chkReportByteRangeRequests', popup).prop('checked', transcodingProfile.TranscodeSeekInfo == 'Bytes');
|
||||
$('.radioTabButton:first', popup).trigger('click');
|
||||
openPopup(popup[0]);
|
||||
}
|
||||
@ -443,7 +443,7 @@ import 'listViewStyle';
|
||||
}
|
||||
|
||||
function editContainerProfile(page, containerProfile) {
|
||||
isSubProfileNew = null == containerProfile;
|
||||
isSubProfileNew = containerProfile == null;
|
||||
containerProfile = containerProfile || {};
|
||||
currentSubProfile = containerProfile;
|
||||
const popup = $('#containerProfilePopup', page);
|
||||
@ -515,7 +515,7 @@ import 'listViewStyle';
|
||||
}
|
||||
|
||||
function editCodecProfile(page, codecProfile) {
|
||||
isSubProfileNew = null == codecProfile;
|
||||
isSubProfileNew = codecProfile == null;
|
||||
codecProfile = codecProfile || {};
|
||||
currentSubProfile = codecProfile;
|
||||
const popup = $('#codecProfilePopup', page);
|
||||
@ -555,11 +555,11 @@ import 'listViewStyle';
|
||||
html += '<a is="emby-linkbutton" href="#" class="lnkEditSubProfile" data-profileindex="' + i + '">';
|
||||
html += '<p>' + globalize.translate('ValueContainer', profile.Container || allText) + '</p>';
|
||||
|
||||
if ('Video' == profile.Type) {
|
||||
if (profile.Type == 'Video') {
|
||||
html += '<p>' + globalize.translate('ValueVideoCodec', profile.VideoCodec || allText) + '</p>';
|
||||
html += '<p>' + globalize.translate('ValueAudioCodec', profile.AudioCodec || allText) + '</p>';
|
||||
} else {
|
||||
if ('Audio' == profile.Type) {
|
||||
if (profile.Type == 'Audio') {
|
||||
html += '<p>' + globalize.translate('ValueCodec', profile.AudioCodec || allText) + '</p>';
|
||||
}
|
||||
}
|
||||
@ -595,7 +595,7 @@ import 'listViewStyle';
|
||||
}
|
||||
|
||||
function editResponseProfile(page, responseProfile) {
|
||||
isSubProfileNew = null == responseProfile;
|
||||
isSubProfileNew = responseProfile == null;
|
||||
responseProfile = responseProfile || {};
|
||||
currentSubProfile = responseProfile;
|
||||
const popup = $('#responseProfilePopup', page);
|
||||
@ -703,26 +703,26 @@ import 'listViewStyle';
|
||||
$('.radioTabButton', page).on('click', function () {
|
||||
$(this).siblings().removeClass('ui-btn-active');
|
||||
$(this).addClass('ui-btn-active');
|
||||
const value = 'A' == this.tagName ? this.getAttribute('data-value') : this.value;
|
||||
const value = this.tagName == 'A' ? this.getAttribute('data-value') : this.value;
|
||||
const elem = $('.' + value, page);
|
||||
elem.siblings('.tabContent').hide();
|
||||
elem.show();
|
||||
});
|
||||
$('#selectDirectPlayProfileType', page).on('change', function () {
|
||||
if ('Video' == this.value) {
|
||||
if (this.value == 'Video') {
|
||||
$('#fldDirectPlayVideoCodec', page).show();
|
||||
} else {
|
||||
$('#fldDirectPlayVideoCodec', page).hide();
|
||||
}
|
||||
|
||||
if ('Photo' == this.value) {
|
||||
if (this.value == 'Photo') {
|
||||
$('#fldDirectPlayAudioCodec', page).hide();
|
||||
} else {
|
||||
$('#fldDirectPlayAudioCodec', page).show();
|
||||
}
|
||||
});
|
||||
$('#selectTranscodingProfileType', page).on('change', function () {
|
||||
if ('Video' == this.value) {
|
||||
if (this.value == 'Video') {
|
||||
$('#fldTranscodingVideoCodec', page).show();
|
||||
$('#fldTranscodingProtocol', page).show();
|
||||
$('#fldEnableMpegtsM2TsMode', page).show();
|
||||
@ -732,7 +732,7 @@ import 'listViewStyle';
|
||||
$('#fldEnableMpegtsM2TsMode', page).hide();
|
||||
}
|
||||
|
||||
if ('Photo' == this.value) {
|
||||
if (this.value == 'Photo') {
|
||||
$('#fldTranscodingAudioCodec', page).hide();
|
||||
$('#fldEstimateContentLength', page).hide();
|
||||
$('#fldReportByteRangeRequests', page).hide();
|
||||
@ -743,13 +743,13 @@ import 'listViewStyle';
|
||||
}
|
||||
});
|
||||
$('#selectResponseProfileType', page).on('change', function () {
|
||||
if ('Video' == this.value) {
|
||||
if (this.value == 'Video') {
|
||||
$('#fldResponseProfileVideoCodec', page).show();
|
||||
} else {
|
||||
$('#fldResponseProfileVideoCodec', page).hide();
|
||||
}
|
||||
|
||||
if ('Photo' == this.value) {
|
||||
if (this.value == 'Photo') {
|
||||
$('#fldResponseProfileAudioCodec', page).hide();
|
||||
} else {
|
||||
$('#fldResponseProfileAudioCodec', page).show();
|
||||
|
@ -18,13 +18,13 @@ import 'emby-button';
|
||||
|
||||
function renderUserProfiles(page, profiles) {
|
||||
renderProfiles(page, page.querySelector('.customProfiles'), profiles.filter(function (p) {
|
||||
return 'User' == p.Type;
|
||||
return p.Type == 'User';
|
||||
}));
|
||||
}
|
||||
|
||||
function renderSystemProfiles(page, profiles) {
|
||||
renderProfiles(page, page.querySelector('.systemProfiles'), profiles.filter(function (p) {
|
||||
return 'System' == p.Type;
|
||||
return p.Type == 'System';
|
||||
}));
|
||||
}
|
||||
|
||||
@ -45,7 +45,7 @@ import 'emby-button';
|
||||
html += '</a>';
|
||||
html += '</div>';
|
||||
|
||||
if ('User' == profile.Type) {
|
||||
if (profile.Type == 'User') {
|
||||
html += '<button type="button" is="paper-icon-button-light" class="btnDeleteProfile" data-profileid="' + profile.Id + '" title="' + globalize.translate('ButtonDelete') + '"><span class="material-icons delete"></span></button>';
|
||||
}
|
||||
|
||||
|
@ -8,7 +8,7 @@ import libraryMenu from 'libraryMenu';
|
||||
|
||||
function loadPage(page, config, systemInfo) {
|
||||
Array.prototype.forEach.call(page.querySelectorAll('.chkDecodeCodec'), function (c) {
|
||||
c.checked = -1 !== (config.HardwareDecodingCodecs || []).indexOf(c.getAttribute('data-codec'));
|
||||
c.checked = (config.HardwareDecodingCodecs || []).indexOf(c.getAttribute('data-codec')) !== -1;
|
||||
});
|
||||
page.querySelector('#chkDecodingColorDepth10Hevc').checked = config.EnableDecodingColorDepth10Hevc;
|
||||
page.querySelector('#chkDecodingColorDepth10Vp9').checked = config.EnableDecodingColorDepth10Vp9;
|
||||
@ -107,7 +107,7 @@ import libraryMenu from 'libraryMenu';
|
||||
value = value || '';
|
||||
let any;
|
||||
Array.prototype.forEach.call(context.querySelectorAll('.chkDecodeCodec'), function (c) {
|
||||
if (-1 === c.getAttribute('data-types').split(',').indexOf(value)) {
|
||||
if (c.getAttribute('data-types').split(',').indexOf(value) === -1) {
|
||||
dom.parentWithTag(c, 'LABEL').classList.add('hide');
|
||||
} else {
|
||||
dom.parentWithTag(c, 'LABEL').classList.remove('hide');
|
||||
@ -138,7 +138,7 @@ import libraryMenu from 'libraryMenu';
|
||||
$(document).on('pageinit', '#encodingSettingsPage', function () {
|
||||
const page = this;
|
||||
page.querySelector('#selectVideoDecoder').addEventListener('change', function () {
|
||||
if ('vaapi' == this.value) {
|
||||
if (this.value == 'vaapi') {
|
||||
page.querySelector('.fldVaapiDevice').classList.remove('hide');
|
||||
page.querySelector('#txtVaapiDevice').setAttribute('required', 'required');
|
||||
} else {
|
||||
|
@ -48,7 +48,7 @@ import 'emby-button';
|
||||
ApiClient.updateServerConfiguration(config).then(Dashboard.processServerConfigurationUpdateResult);
|
||||
});
|
||||
ApiClient.getNamedConfiguration('metadata').then(function(config) {
|
||||
config.UseFileCreationTimeForDateAdded = '1' === $('#selectDateAdded', form).val();
|
||||
config.UseFileCreationTimeForDateAdded = $('#selectDateAdded', form).val() === '1';
|
||||
ApiClient.updateNamedConfiguration('metadata', config);
|
||||
});
|
||||
|
||||
@ -61,7 +61,7 @@ import 'emby-button';
|
||||
libraryMenu.setTabs('librarysetup', 1, getTabs);
|
||||
loadData();
|
||||
ApiClient.getSystemInfo().then(function(info) {
|
||||
if ('Windows' === info.OperatingSystem) {
|
||||
if (info.OperatingSystem === 'Windows') {
|
||||
view.querySelector('.fldSaveMetadataHidden').classList.remove('hide');
|
||||
} else {
|
||||
view.querySelector('.fldSaveMetadataHidden').classList.add('hide');
|
||||
|
@ -156,7 +156,7 @@ import 'emby-itemrefreshindicator';
|
||||
}
|
||||
|
||||
function shouldRefreshLibraryAfterChanges(page) {
|
||||
return 'mediaLibraryPage' === page.id;
|
||||
return page.id === 'mediaLibraryPage';
|
||||
}
|
||||
|
||||
function reloadVirtualFolders(page, virtualFolders) {
|
||||
@ -286,7 +286,7 @@ import 'emby-itemrefreshindicator';
|
||||
|
||||
if (hasCardImageContainer) {
|
||||
html += '<div class="cardIndicators backdropCardIndicators">';
|
||||
html += '<div is="emby-itemrefreshindicator"' + (virtualFolder.RefreshProgress || virtualFolder.RefreshStatus && 'Idle' !== virtualFolder.RefreshStatus ? '' : ' class="hide"') + ' data-progress="' + (virtualFolder.RefreshProgress || 0) + '" data-status="' + virtualFolder.RefreshStatus + '"></div>';
|
||||
html += '<div is="emby-itemrefreshindicator"' + (virtualFolder.RefreshProgress || virtualFolder.RefreshStatus && virtualFolder.RefreshStatus !== 'Idle' ? '' : ' class="hide"') + ' data-progress="' + (virtualFolder.RefreshProgress || 0) + '" data-status="' + virtualFolder.RefreshStatus + '"></div>';
|
||||
html += '</div>';
|
||||
html += '</div>';
|
||||
}
|
||||
|
@ -30,7 +30,7 @@ import 'emby-select';
|
||||
}).filter(function (s) {
|
||||
return s.length > 0;
|
||||
});
|
||||
config.IsRemoteIPFilterBlacklist = 'blacklist' === form.querySelector('#selectExternalAddressFilterMode').value;
|
||||
config.IsRemoteIPFilterBlacklist = form.querySelector('#selectExternalAddressFilterMode').value === 'blacklist';
|
||||
config.PublicPort = form.querySelector('#txtPublicPort').value;
|
||||
config.PublicHttpsPort = form.querySelector('#txtPublicHttpsPort').value;
|
||||
config.HttpServerPortNumber = form.querySelector('#txtPortNumber').value;
|
||||
@ -110,7 +110,7 @@ import 'emby-select';
|
||||
page.querySelector('#txtLanNetworks').value = (config.LocalNetworkSubnets || []).join(', ');
|
||||
page.querySelector('#txtExternalAddressFilter').value = (config.RemoteIPFilter || []).join(', ');
|
||||
page.querySelector('#selectExternalAddressFilterMode').value = config.IsRemoteIPFilterBlacklist ? 'blacklist' : 'whitelist';
|
||||
page.querySelector('#chkRemoteAccess').checked = null == config.EnableRemoteAccess || config.EnableRemoteAccess;
|
||||
page.querySelector('#chkRemoteAccess').checked = config.EnableRemoteAccess == null || config.EnableRemoteAccess;
|
||||
page.querySelector('#txtHttpsPort').value = config.HttpsPortNumber;
|
||||
page.querySelector('#chkEnableHttps').checked = config.EnableHttps;
|
||||
page.querySelector('#chkRequireHttps').checked = config.RequireHttps;
|
||||
|
@ -106,7 +106,7 @@ define(['jQuery', 'emby-checkbox'], function ($) {
|
||||
$(document).on('pageinit', '#notificationSettingPage', function () {
|
||||
var page = this;
|
||||
$('#selectUsers', page).on('change', function () {
|
||||
if ('Custom' == this.value) {
|
||||
if (this.value == 'Custom') {
|
||||
$('.selectCustomUsers', page).show();
|
||||
} else {
|
||||
$('.selectCustomUsers', page).hide();
|
||||
|
@ -19,13 +19,13 @@ define(['loading', 'libraryMenu', 'globalize', 'cardStyle', 'emby-button', 'emby
|
||||
|
||||
function getHeaderText(category) {
|
||||
category = category.replace(' ', '');
|
||||
if ('Channel' === category) {
|
||||
if (category === 'Channel') {
|
||||
category = 'Channels';
|
||||
} else if ('Theme' === category) {
|
||||
} else if (category === 'Theme') {
|
||||
category = 'Themes';
|
||||
} else if ('LiveTV' === category) {
|
||||
} else if (category === 'LiveTV') {
|
||||
category = 'HeaderLiveTV';
|
||||
} else if ('ScreenSaver' === category) {
|
||||
} else if (category === 'ScreenSaver') {
|
||||
category = 'HeaderScreenSavers';
|
||||
}
|
||||
|
||||
|
@ -84,16 +84,16 @@ import 'emby-select';
|
||||
},
|
||||
// TODO: Replace this mess with date-fns and remove datetime completely
|
||||
getTriggerFriendlyName: function (trigger) {
|
||||
if ('DailyTrigger' == trigger.Type) {
|
||||
if (trigger.Type == 'DailyTrigger') {
|
||||
return globalize.translate('DailyAt', ScheduledTaskPage.getDisplayTime(trigger.TimeOfDayTicks));
|
||||
}
|
||||
|
||||
if ('WeeklyTrigger' == trigger.Type) {
|
||||
if (trigger.Type == 'WeeklyTrigger') {
|
||||
// TODO: The day of week isn't localised as well
|
||||
return globalize.translate('WeeklyAt', trigger.DayOfWeek, ScheduledTaskPage.getDisplayTime(trigger.TimeOfDayTicks));
|
||||
}
|
||||
|
||||
if ('SystemEventTrigger' == trigger.Type && 'WakeFromSleep' == trigger.SystemEvent) {
|
||||
if (trigger.Type == 'SystemEventTrigger' && trigger.SystemEvent == 'WakeFromSleep') {
|
||||
return globalize.translate('OnWakeFromSleep');
|
||||
}
|
||||
|
||||
|
@ -14,13 +14,13 @@ import globalize from 'globalize';
|
||||
let html = '';
|
||||
|
||||
for (const folder of mediaFolders) {
|
||||
isChecked = user.Policy.EnableContentDeletion || -1 != user.Policy.EnableContentDeletionFromFolders.indexOf(folder.Id);
|
||||
isChecked = user.Policy.EnableContentDeletion || user.Policy.EnableContentDeletionFromFolders.indexOf(folder.Id) != -1;
|
||||
checkedAttribute = isChecked ? ' checked="checked"' : '';
|
||||
html += '<label><input type="checkbox" is="emby-checkbox" class="chkFolder" data-id="' + folder.Id + '" ' + checkedAttribute + '><span>' + folder.Name + '</span></label>';
|
||||
}
|
||||
|
||||
for (const folder of channelsResult.Items) {
|
||||
isChecked = user.Policy.EnableContentDeletion || -1 != user.Policy.EnableContentDeletionFromFolders.indexOf(folder.Id);
|
||||
isChecked = user.Policy.EnableContentDeletion || user.Policy.EnableContentDeletionFromFolders.indexOf(folder.Id) != -1;
|
||||
checkedAttribute = isChecked ? ' checked="checked"' : '';
|
||||
html += '<label><input type="checkbox" is="emby-checkbox" class="chkFolder" data-id="' + folder.Id + '" ' + checkedAttribute + '><span>' + folder.Name + '</span></label>';
|
||||
}
|
||||
@ -96,7 +96,7 @@ import globalize from 'globalize';
|
||||
$('#chkEnableVideoPlaybackTranscoding', page).prop('checked', user.Policy.EnableVideoPlaybackTranscoding);
|
||||
$('#chkEnableVideoPlaybackRemuxing', page).prop('checked', user.Policy.EnablePlaybackRemuxing);
|
||||
$('#chkForceRemoteSourceTranscoding', page).prop('checked', user.Policy.ForceRemoteSourceTranscoding);
|
||||
$('#chkRemoteAccess', page).prop('checked', null == user.Policy.EnableRemoteAccess || user.Policy.EnableRemoteAccess);
|
||||
$('#chkRemoteAccess', page).prop('checked', user.Policy.EnableRemoteAccess == null || user.Policy.EnableRemoteAccess);
|
||||
$('#chkEnableSyncTranscoding', page).prop('checked', user.Policy.EnableSyncTranscoding);
|
||||
$('#chkEnableConversion', page).prop('checked', user.Policy.EnableMediaConversion || false);
|
||||
$('#chkEnableSharing', page).prop('checked', user.Policy.EnablePublicSharing);
|
||||
|
@ -18,7 +18,7 @@ import globalize from 'globalize';
|
||||
|
||||
for (let i = 0, length = mediaFolders.length; i < length; i++) {
|
||||
const folder = mediaFolders[i];
|
||||
const isChecked = user.Policy.EnableAllFolders || -1 != user.Policy.EnabledFolders.indexOf(folder.Id);
|
||||
const isChecked = user.Policy.EnableAllFolders || user.Policy.EnabledFolders.indexOf(folder.Id) != -1;
|
||||
const checkedAttribute = isChecked ? ' checked="checked"' : '';
|
||||
html += '<label><input type="checkbox" is="emby-checkbox" class="chkFolder" data-id="' + folder.Id + '" ' + checkedAttribute + '><span>' + folder.Name + '</span></label>';
|
||||
}
|
||||
@ -37,7 +37,7 @@ import globalize from 'globalize';
|
||||
|
||||
for (let i = 0, length = channels.length; i < length; i++) {
|
||||
const folder = channels[i];
|
||||
const isChecked = user.Policy.EnableAllChannels || -1 != user.Policy.EnabledChannels.indexOf(folder.Id);
|
||||
const isChecked = user.Policy.EnableAllChannels || user.Policy.EnabledChannels.indexOf(folder.Id) != -1;
|
||||
const checkedAttribute = isChecked ? ' checked="checked"' : '';
|
||||
html += '<label><input type="checkbox" is="emby-checkbox" class="chkChannel" data-id="' + folder.Id + '" ' + checkedAttribute + '><span>' + folder.Name + '</span></label>';
|
||||
}
|
||||
@ -61,7 +61,7 @@ import globalize from 'globalize';
|
||||
|
||||
for (let i = 0, length = devices.length; i < length; i++) {
|
||||
const device = devices[i];
|
||||
const checkedAttribute = user.Policy.EnableAllDevices || -1 != user.Policy.EnabledDevices.indexOf(device.Id) ? ' checked="checked"' : '';
|
||||
const checkedAttribute = user.Policy.EnableAllDevices || user.Policy.EnabledDevices.indexOf(device.Id) != -1 ? ' checked="checked"' : '';
|
||||
html += '<label><input type="checkbox" is="emby-checkbox" class="chkDevice" data-id="' + device.Id + '" ' + checkedAttribute + '><span>' + device.Name + ' - ' + device.AppName + '</span></label>';
|
||||
}
|
||||
|
||||
|
@ -67,7 +67,7 @@ import 'paper-icon-button-light';
|
||||
|
||||
for (let i = 0, length = items.length; i < length; i++) {
|
||||
const item = items[i];
|
||||
const checkedAttribute = -1 != user.Policy.BlockUnratedItems.indexOf(item.value) ? ' checked="checked"' : '';
|
||||
const checkedAttribute = user.Policy.BlockUnratedItems.indexOf(item.value) != -1 ? ' checked="checked"' : '';
|
||||
html += '<label><input type="checkbox" is="emby-checkbox" class="chkUnratedItem" data-itemtype="' + item.value + '" type="checkbox"' + checkedAttribute + '><span>' + item.name + '</span></label>';
|
||||
}
|
||||
|
||||
@ -201,7 +201,7 @@ import 'paper-icon-button-light';
|
||||
}).then(function (updatedSchedule) {
|
||||
const schedules = getSchedulesFromPage(page);
|
||||
|
||||
if (-1 == index) {
|
||||
if (index == -1) {
|
||||
index = schedules.length;
|
||||
}
|
||||
|
||||
@ -234,7 +234,7 @@ import 'paper-icon-button-light';
|
||||
}).then(function (value) {
|
||||
const tags = getBlockedTagsFromPage(page);
|
||||
|
||||
if (-1 == tags.indexOf(value)) {
|
||||
if (tags.indexOf(value) == -1) {
|
||||
tags.push(value);
|
||||
loadBlockedTags(page, tags);
|
||||
}
|
||||
|
@ -14,7 +14,7 @@ import 'emby-button';
|
||||
let showPasswordSection = true;
|
||||
let showLocalAccessSection = false;
|
||||
|
||||
if ('Guest' == user.ConnectLinkType) {
|
||||
if (user.ConnectLinkType == 'Guest') {
|
||||
page.querySelector('.localAccessSection').classList.add('hide');
|
||||
showPasswordSection = false;
|
||||
} else if (user.HasConfiguredPassword) {
|
||||
|
@ -129,7 +129,7 @@ import 'flexStyles';
|
||||
html += '</div>';
|
||||
html += '<div class="cardText cardText-secondary">';
|
||||
const lastSeen = getLastSeenText(user.LastActivityDate);
|
||||
html += '' != lastSeen ? lastSeen : ' ';
|
||||
html += lastSeen != '' ? lastSeen : ' ';
|
||||
html += '</div>';
|
||||
html += '</div>';
|
||||
html += '</div>';
|
||||
|
@ -147,11 +147,11 @@ define(['appRouter', 'cardBuilder', 'dom', 'globalize', 'connectionManager', 'ap
|
||||
options.Limit = 20;
|
||||
var userId = apiClient.getCurrentUserId();
|
||||
|
||||
if ('MusicArtist' === section.types) {
|
||||
if (section.types === 'MusicArtist') {
|
||||
return apiClient.getArtists(userId, options);
|
||||
}
|
||||
|
||||
if ('Person' === section.types) {
|
||||
if (section.types === 'Person') {
|
||||
return apiClient.getPeople(userId, options);
|
||||
}
|
||||
|
||||
@ -198,7 +198,7 @@ define(['appRouter', 'cardBuilder', 'dom', 'globalize', 'connectionManager', 'ap
|
||||
preferThumb: section.preferThumb,
|
||||
shape: section.shape,
|
||||
centerText: section.centerText && !cardLayout,
|
||||
overlayText: false !== section.overlayText,
|
||||
overlayText: section.overlayText !== false,
|
||||
showTitle: section.showTitle,
|
||||
showYear: section.showYear,
|
||||
showParentTitle: section.showParentTitle,
|
||||
|
@ -20,7 +20,7 @@ define(['tabbedView', 'globalize', 'require', 'emby-tabs', 'emby-button', 'emby-
|
||||
}
|
||||
|
||||
function getTabController(index) {
|
||||
if (null == index) {
|
||||
if (index == null) {
|
||||
throw new Error('index cannot be null');
|
||||
}
|
||||
|
||||
|
File diff suppressed because it is too large
Load Diff
@ -11,7 +11,7 @@ define(['globalize', 'listView', 'layoutManager', 'userSettings', 'focusManager'
|
||||
Limit: 300
|
||||
};
|
||||
|
||||
if ('Recordings' === params.type) {
|
||||
if (params.type === 'Recordings') {
|
||||
query.IsInProgress = false;
|
||||
} else {
|
||||
query.HasAired = false;
|
||||
@ -21,39 +21,39 @@ define(['globalize', 'listView', 'layoutManager', 'userSettings', 'focusManager'
|
||||
query.GenreIds = params.genreId;
|
||||
}
|
||||
|
||||
if ('true' === params.IsMovie) {
|
||||
if (params.IsMovie === 'true') {
|
||||
query.IsMovie = true;
|
||||
} else if ('false' === params.IsMovie) {
|
||||
} else if (params.IsMovie === 'false') {
|
||||
query.IsMovie = false;
|
||||
}
|
||||
|
||||
if ('true' === params.IsSeries) {
|
||||
if (params.IsSeries === 'true') {
|
||||
query.IsSeries = true;
|
||||
} else if ('false' === params.IsSeries) {
|
||||
} else if (params.IsSeries === 'false') {
|
||||
query.IsSeries = false;
|
||||
}
|
||||
|
||||
if ('true' === params.IsNews) {
|
||||
if (params.IsNews === 'true') {
|
||||
query.IsNews = true;
|
||||
} else if ('false' === params.IsNews) {
|
||||
} else if (params.IsNews === 'false') {
|
||||
query.IsNews = false;
|
||||
}
|
||||
|
||||
if ('true' === params.IsSports) {
|
||||
if (params.IsSports === 'true') {
|
||||
query.IsSports = true;
|
||||
} else if ('false' === params.IsSports) {
|
||||
} else if (params.IsSports === 'false') {
|
||||
query.IsSports = false;
|
||||
}
|
||||
|
||||
if ('true' === params.IsKids) {
|
||||
if (params.IsKids === 'true') {
|
||||
query.IsKids = true;
|
||||
} else if ('false' === params.IsKids) {
|
||||
} else if (params.IsKids === 'false') {
|
||||
query.IsKids = false;
|
||||
}
|
||||
|
||||
if ('true' === params.IsAiring) {
|
||||
if (params.IsAiring === 'true') {
|
||||
query.IsAiring = true;
|
||||
} else if ('false' === params.IsAiring) {
|
||||
} else if (params.IsAiring === 'false') {
|
||||
query.IsAiring = false;
|
||||
}
|
||||
|
||||
@ -183,13 +183,13 @@ define(['globalize', 'listView', 'layoutManager', 'userSettings', 'focusManager'
|
||||
var btnSortIcon = instance.btnSortIcon;
|
||||
|
||||
if (btnSortIcon) {
|
||||
setSortButtonIcon(btnSortIcon, 'Descending' === values.sortOrder ? 'arrow_downward' : 'arrow_upward');
|
||||
setSortButtonIcon(btnSortIcon, values.sortOrder === 'Descending' ? 'arrow_downward' : 'arrow_upward');
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
function updateItemsContainerForViewType(instance) {
|
||||
if ('list' === instance.getViewSettings().imageType) {
|
||||
if (instance.getViewSettings().imageType === 'list') {
|
||||
instance.itemsContainer.classList.remove('vertical-wrap');
|
||||
instance.itemsContainer.classList.add('vertical-list');
|
||||
} else {
|
||||
@ -205,11 +205,11 @@ define(['globalize', 'listView', 'layoutManager', 'userSettings', 'focusManager'
|
||||
if (alphaPicker) {
|
||||
var values = instance.getSortValues();
|
||||
|
||||
if (null == numItems) {
|
||||
if (numItems == null) {
|
||||
numItems = 100;
|
||||
}
|
||||
|
||||
if ('SortName' === values.sortBy && 'Ascending' === values.sortOrder && numItems > 40) {
|
||||
if (values.sortBy === 'SortName' && values.sortOrder === 'Ascending' && numItems > 40) {
|
||||
alphaPicker.classList.remove('hide');
|
||||
instance.itemsContainer.parentNode.classList.add('padded-right-withalphapicker');
|
||||
} else {
|
||||
@ -224,19 +224,19 @@ define(['globalize', 'listView', 'layoutManager', 'userSettings', 'focusManager'
|
||||
var apiClient = connectionManager.getApiClient(params.serverId);
|
||||
|
||||
instance.queryRecursive = false;
|
||||
if ('Recordings' === params.type) {
|
||||
if (params.type === 'Recordings') {
|
||||
return apiClient.getLiveTvRecordings(getInitialLiveTvQuery(instance, params));
|
||||
}
|
||||
|
||||
if ('Programs' === params.type) {
|
||||
if ('true' === params.IsAiring) {
|
||||
if (params.type === 'Programs') {
|
||||
if (params.IsAiring === 'true') {
|
||||
return apiClient.getLiveTvRecommendedPrograms(getInitialLiveTvQuery(instance, params));
|
||||
}
|
||||
|
||||
return apiClient.getLiveTvPrograms(getInitialLiveTvQuery(instance, params));
|
||||
}
|
||||
|
||||
if ('nextup' === params.type) {
|
||||
if (params.type === 'nextup') {
|
||||
return apiClient.getNextUpEpisodes(modifyQueryWithFilters(instance, {
|
||||
Limit: limit,
|
||||
Fields: 'PrimaryImageAspectRatio,SeriesInfo,DateCreated,BasicSyncInfo',
|
||||
@ -252,9 +252,9 @@ define(['globalize', 'listView', 'layoutManager', 'userSettings', 'focusManager'
|
||||
instance.queryRecursive = true;
|
||||
var method = 'getItems';
|
||||
|
||||
if ('MusicArtist' === params.type) {
|
||||
if (params.type === 'MusicArtist') {
|
||||
method = 'getArtists';
|
||||
} else if ('Person' === params.type) {
|
||||
} else if (params.type === 'Person') {
|
||||
method = 'getPeople';
|
||||
}
|
||||
|
||||
@ -263,15 +263,15 @@ define(['globalize', 'listView', 'layoutManager', 'userSettings', 'focusManager'
|
||||
Limit: limit,
|
||||
Fields: 'PrimaryImageAspectRatio,SortName',
|
||||
ImageTypeLimit: 1,
|
||||
IncludeItemTypes: 'MusicArtist' === params.type || 'Person' === params.type ? null : params.type,
|
||||
IncludeItemTypes: params.type === 'MusicArtist' || params.type === 'Person' ? null : params.type,
|
||||
Recursive: true,
|
||||
IsFavorite: 'true' === params.IsFavorite || null,
|
||||
IsFavorite: params.IsFavorite === 'true' || null,
|
||||
ArtistIds: params.artistId || null,
|
||||
SortBy: sortBy
|
||||
}));
|
||||
}
|
||||
|
||||
if ('Genre' === item.Type || 'MusicGenre' === item.Type || 'Studio' === item.Type || 'Person' === item.Type) {
|
||||
if (item.Type === 'Genre' || item.Type === 'MusicGenre' || item.Type === 'Studio' || item.Type === 'Person') {
|
||||
instance.queryRecursive = true;
|
||||
var query = {
|
||||
StartIndex: startIndex,
|
||||
@ -282,25 +282,25 @@ define(['globalize', 'listView', 'layoutManager', 'userSettings', 'focusManager'
|
||||
SortBy: sortBy
|
||||
};
|
||||
|
||||
if ('Studio' === item.Type) {
|
||||
if (item.Type === 'Studio') {
|
||||
query.StudioIds = item.Id;
|
||||
} else if ('Genre' === item.Type || 'MusicGenre' === item.Type) {
|
||||
} else if (item.Type === 'Genre' || item.Type === 'MusicGenre') {
|
||||
query.GenreIds = item.Id;
|
||||
} else if ('Person' === item.Type) {
|
||||
} else if (item.Type === 'Person') {
|
||||
query.PersonIds = item.Id;
|
||||
}
|
||||
|
||||
if ('MusicGenre' === item.Type) {
|
||||
if (item.Type === 'MusicGenre') {
|
||||
query.IncludeItemTypes = 'MusicAlbum';
|
||||
} else if ('GameGenre' === item.Type) {
|
||||
} else if (item.Type === 'GameGenre') {
|
||||
query.IncludeItemTypes = 'Game';
|
||||
} else if ('movies' === item.CollectionType) {
|
||||
} else if (item.CollectionType === 'movies') {
|
||||
query.IncludeItemTypes = 'Movie';
|
||||
} else if ('tvshows' === item.CollectionType) {
|
||||
} else if (item.CollectionType === 'tvshows') {
|
||||
query.IncludeItemTypes = 'Series';
|
||||
} else if ('Genre' === item.Type) {
|
||||
} else if (item.Type === 'Genre') {
|
||||
query.IncludeItemTypes = 'Movie,Series,Video';
|
||||
} else if ('Person' === item.Type) {
|
||||
} else if (item.Type === 'Person') {
|
||||
query.IncludeItemTypes = params.type;
|
||||
}
|
||||
|
||||
@ -318,7 +318,7 @@ define(['globalize', 'listView', 'layoutManager', 'userSettings', 'focusManager'
|
||||
}
|
||||
|
||||
function getItem(params) {
|
||||
if ('Recordings' === params.type || 'Programs' === params.type || 'nextup' === params.type) {
|
||||
if (params.type === 'Recordings' || params.type === 'Programs' || params.type === 'nextup') {
|
||||
return Promise.resolve(null);
|
||||
}
|
||||
|
||||
@ -414,7 +414,7 @@ define(['globalize', 'listView', 'layoutManager', 'userSettings', 'focusManager'
|
||||
function ItemsView(view, params) {
|
||||
function fetchData() {
|
||||
return getItems(self, params, self.currentItem).then(function (result) {
|
||||
if (null == self.totalItemCount) {
|
||||
if (self.totalItemCount == null) {
|
||||
self.totalItemCount = result.Items ? result.Items.length : result.length;
|
||||
}
|
||||
|
||||
@ -426,7 +426,7 @@ define(['globalize', 'listView', 'layoutManager', 'userSettings', 'focusManager'
|
||||
function getItemsHtml(items) {
|
||||
var settings = self.getViewSettings();
|
||||
|
||||
if ('list' === settings.imageType) {
|
||||
if (settings.imageType === 'list') {
|
||||
return listView.getListViewHtml({
|
||||
items: items
|
||||
});
|
||||
@ -440,24 +440,24 @@ define(['globalize', 'listView', 'layoutManager', 'userSettings', 'focusManager'
|
||||
var item = self.currentItem;
|
||||
var lines = settings.showTitle ? 2 : 0;
|
||||
|
||||
if ('banner' === settings.imageType) {
|
||||
if (settings.imageType === 'banner') {
|
||||
shape = 'banner';
|
||||
} else if ('disc' === settings.imageType) {
|
||||
} else if (settings.imageType === 'disc') {
|
||||
shape = 'square';
|
||||
preferDisc = true;
|
||||
} else if ('logo' === settings.imageType) {
|
||||
} else if (settings.imageType === 'logo') {
|
||||
shape = 'backdrop';
|
||||
preferLogo = true;
|
||||
} else if ('thumb' === settings.imageType) {
|
||||
} else if (settings.imageType === 'thumb') {
|
||||
shape = 'backdrop';
|
||||
preferThumb = true;
|
||||
} else if ('nextup' === params.type) {
|
||||
} else if (params.type === 'nextup') {
|
||||
shape = 'backdrop';
|
||||
preferThumb = 'thumb' === settings.imageType;
|
||||
} else if ('Programs' === params.type || 'Recordings' === params.type) {
|
||||
shape = 'true' === params.IsMovie ? 'portrait' : 'autoVertical';
|
||||
preferThumb = 'true' !== params.IsMovie ? 'auto' : false;
|
||||
defaultShape = 'true' === params.IsMovie ? 'portrait' : 'backdrop';
|
||||
preferThumb = settings.imageType === 'thumb';
|
||||
} else if (params.type === 'Programs' || params.type === 'Recordings') {
|
||||
shape = params.IsMovie === 'true' ? 'portrait' : 'autoVertical';
|
||||
preferThumb = params.IsMovie !== 'true' ? 'auto' : false;
|
||||
defaultShape = params.IsMovie === 'true' ? 'portrait' : 'backdrop';
|
||||
} else {
|
||||
shape = 'autoVertical';
|
||||
}
|
||||
@ -475,46 +475,46 @@ define(['globalize', 'listView', 'layoutManager', 'userSettings', 'focusManager'
|
||||
overlayMoreButton: true,
|
||||
overlayText: !settings.showTitle,
|
||||
defaultShape: defaultShape,
|
||||
action: 'Audio' === params.type ? 'playallfromhere' : null
|
||||
action: params.type === 'Audio' ? 'playallfromhere' : null
|
||||
};
|
||||
|
||||
if ('nextup' === params.type) {
|
||||
if (params.type === 'nextup') {
|
||||
posterOptions.showParentTitle = settings.showTitle;
|
||||
} else if ('Person' === params.type) {
|
||||
} else if (params.type === 'Person') {
|
||||
posterOptions.showYear = false;
|
||||
posterOptions.showParentTitle = false;
|
||||
lines = 1;
|
||||
} else if ('Audio' === params.type) {
|
||||
} else if (params.type === 'Audio') {
|
||||
posterOptions.showParentTitle = settings.showTitle;
|
||||
} else if ('MusicAlbum' === params.type) {
|
||||
} else if (params.type === 'MusicAlbum') {
|
||||
posterOptions.showParentTitle = settings.showTitle;
|
||||
} else if ('Episode' === params.type) {
|
||||
} else if (params.type === 'Episode') {
|
||||
posterOptions.showParentTitle = settings.showTitle;
|
||||
} else if ('MusicArtist' === params.type) {
|
||||
} else if (params.type === 'MusicArtist') {
|
||||
posterOptions.showYear = false;
|
||||
lines = 1;
|
||||
} else if ('Programs' === params.type) {
|
||||
} else if (params.type === 'Programs') {
|
||||
lines = settings.showTitle ? 1 : 0;
|
||||
var showParentTitle = settings.showTitle && 'true' !== params.IsMovie;
|
||||
var showParentTitle = settings.showTitle && params.IsMovie !== 'true';
|
||||
|
||||
if (showParentTitle) {
|
||||
lines++;
|
||||
}
|
||||
|
||||
var showAirTime = settings.showTitle && 'Recordings' !== params.type;
|
||||
var showAirTime = settings.showTitle && params.type !== 'Recordings';
|
||||
|
||||
if (showAirTime) {
|
||||
lines++;
|
||||
}
|
||||
|
||||
var showYear = settings.showTitle && 'true' === params.IsMovie && 'Recordings' === params.type;
|
||||
var showYear = settings.showTitle && params.IsMovie === 'true' && params.type === 'Recordings';
|
||||
|
||||
if (showYear) {
|
||||
lines++;
|
||||
}
|
||||
|
||||
posterOptions = Object.assign(posterOptions, {
|
||||
inheritThumb: 'Recordings' === params.type,
|
||||
inheritThumb: params.type === 'Recordings',
|
||||
context: 'livetv',
|
||||
showParentTitle: showParentTitle,
|
||||
showAirTime: showAirTime,
|
||||
@ -531,7 +531,7 @@ define(['globalize', 'listView', 'layoutManager', 'userSettings', 'focusManager'
|
||||
posterOptions.lines = lines;
|
||||
posterOptions.items = items;
|
||||
|
||||
if (item && 'folders' === item.CollectionType) {
|
||||
if (item && item.CollectionType === 'folders') {
|
||||
posterOptions.context = 'folders';
|
||||
}
|
||||
|
||||
@ -563,7 +563,7 @@ define(['globalize', 'listView', 'layoutManager', 'userSettings', 'focusManager'
|
||||
function setTitle(item) {
|
||||
Emby.Page.setTitle(getTitle(item) || '');
|
||||
|
||||
if (item && 'playlists' === item.CollectionType) {
|
||||
if (item && item.CollectionType === 'playlists') {
|
||||
hideOrShowAll(view.querySelectorAll('.btnNewItem'), false);
|
||||
} else {
|
||||
hideOrShowAll(view.querySelectorAll('.btnNewItem'), true);
|
||||
@ -571,43 +571,43 @@ define(['globalize', 'listView', 'layoutManager', 'userSettings', 'focusManager'
|
||||
}
|
||||
|
||||
function getTitle(item) {
|
||||
if ('Recordings' === params.type) {
|
||||
if (params.type === 'Recordings') {
|
||||
return globalize.translate('Recordings');
|
||||
}
|
||||
|
||||
if ('Programs' === params.type) {
|
||||
if ('true' === params.IsMovie) {
|
||||
if (params.type === 'Programs') {
|
||||
if (params.IsMovie === 'true') {
|
||||
return globalize.translate('Movies');
|
||||
}
|
||||
|
||||
if ('true' === params.IsSports) {
|
||||
if (params.IsSports === 'true') {
|
||||
return globalize.translate('Sports');
|
||||
}
|
||||
|
||||
if ('true' === params.IsKids) {
|
||||
if (params.IsKids === 'true') {
|
||||
return globalize.translate('HeaderForKids');
|
||||
}
|
||||
|
||||
if ('true' === params.IsAiring) {
|
||||
if (params.IsAiring === 'true') {
|
||||
return globalize.translate('HeaderOnNow');
|
||||
}
|
||||
|
||||
if ('true' === params.IsSeries) {
|
||||
if (params.IsSeries === 'true') {
|
||||
return globalize.translate('Shows');
|
||||
}
|
||||
|
||||
if ('true' === params.IsNews) {
|
||||
if (params.IsNews === 'true') {
|
||||
return globalize.translate('News');
|
||||
}
|
||||
|
||||
return globalize.translate('Programs');
|
||||
}
|
||||
|
||||
if ('nextup' === params.type) {
|
||||
if (params.type === 'nextup') {
|
||||
return globalize.translate('NextUp');
|
||||
}
|
||||
|
||||
if ('favoritemovies' === params.type) {
|
||||
if (params.type === 'favoritemovies') {
|
||||
return globalize.translate('FavoriteMovies');
|
||||
}
|
||||
|
||||
@ -615,35 +615,35 @@ define(['globalize', 'listView', 'layoutManager', 'userSettings', 'focusManager'
|
||||
return item.Name;
|
||||
}
|
||||
|
||||
if ('Movie' === params.type) {
|
||||
if (params.type === 'Movie') {
|
||||
return globalize.translate('Movies');
|
||||
}
|
||||
|
||||
if ('Series' === params.type) {
|
||||
if (params.type === 'Series') {
|
||||
return globalize.translate('Shows');
|
||||
}
|
||||
|
||||
if ('Season' === params.type) {
|
||||
if (params.type === 'Season') {
|
||||
return globalize.translate('Seasons');
|
||||
}
|
||||
|
||||
if ('Episode' === params.type) {
|
||||
if (params.type === 'Episode') {
|
||||
return globalize.translate('Episodes');
|
||||
}
|
||||
|
||||
if ('MusicArtist' === params.type) {
|
||||
if (params.type === 'MusicArtist') {
|
||||
return globalize.translate('Artists');
|
||||
}
|
||||
|
||||
if ('MusicAlbum' === params.type) {
|
||||
if (params.type === 'MusicAlbum') {
|
||||
return globalize.translate('Albums');
|
||||
}
|
||||
|
||||
if ('Audio' === params.type) {
|
||||
if (params.type === 'Audio') {
|
||||
return globalize.translate('Songs');
|
||||
}
|
||||
|
||||
if ('Video' === params.type) {
|
||||
if (params.type === 'Video') {
|
||||
return globalize.translate('Videos');
|
||||
}
|
||||
|
||||
@ -702,11 +702,11 @@ define(['globalize', 'listView', 'layoutManager', 'userSettings', 'focusManager'
|
||||
|
||||
if (params.parentId) {
|
||||
this.itemsContainer.setAttribute('data-parentid', params.parentId);
|
||||
} else if ('nextup' === params.type) {
|
||||
} else if (params.type === 'nextup') {
|
||||
this.itemsContainer.setAttribute('data-monitor', 'videoplayback');
|
||||
} else if ('favoritemovies' === params.type) {
|
||||
} else if (params.type === 'favoritemovies') {
|
||||
this.itemsContainer.setAttribute('data-monitor', 'markfavorite');
|
||||
} else if ('Programs' === params.type) {
|
||||
} else if (params.type === 'Programs') {
|
||||
this.itemsContainer.setAttribute('data-refreshinterval', '300000');
|
||||
}
|
||||
|
||||
@ -739,7 +739,7 @@ define(['globalize', 'listView', 'layoutManager', 'userSettings', 'focusManager'
|
||||
var sortButton = sortButtons[i];
|
||||
sortButton.addEventListener('click', showSortMenu.bind(this));
|
||||
|
||||
if ('nextup' !== params.type) {
|
||||
if (params.type !== 'nextup') {
|
||||
sortButton.classList.remove('hide');
|
||||
}
|
||||
}
|
||||
@ -774,19 +774,19 @@ define(['globalize', 'listView', 'layoutManager', 'userSettings', 'focusManager'
|
||||
}
|
||||
});
|
||||
|
||||
if (!isRestored && item && 'PhotoAlbum' !== item.Type) {
|
||||
if (!isRestored && item && item.Type !== 'PhotoAlbum') {
|
||||
initAlphaPicker();
|
||||
}
|
||||
|
||||
var itemType = item ? item.Type : null;
|
||||
|
||||
if ('MusicGenre' === itemType || 'Programs' !== params.type && 'Channel' !== itemType) {
|
||||
if (itemType === 'MusicGenre' || params.type !== 'Programs' && itemType !== 'Channel') {
|
||||
hideOrShowAll(view.querySelectorAll('.btnPlay'), false);
|
||||
} else {
|
||||
hideOrShowAll(view.querySelectorAll('.btnPlay'), true);
|
||||
}
|
||||
|
||||
if ('MusicGenre' === itemType || 'Programs' !== params.type && 'nextup' !== params.type && 'Channel' !== itemType) {
|
||||
if (itemType === 'MusicGenre' || params.type !== 'Programs' && params.type !== 'nextup' && itemType !== 'Channel') {
|
||||
hideOrShowAll(view.querySelectorAll('.btnShuffle'), false);
|
||||
} else {
|
||||
hideOrShowAll(view.querySelectorAll('.btnShuffle'), true);
|
||||
@ -847,14 +847,14 @@ define(['globalize', 'listView', 'layoutManager', 'userSettings', 'focusManager'
|
||||
ItemsView.prototype.getFilters = function () {
|
||||
var basekey = this.getSettingsKey();
|
||||
return {
|
||||
IsPlayed: 'true' === userSettings.getFilter(basekey + '-filter-IsPlayed'),
|
||||
IsUnplayed: 'true' === userSettings.getFilter(basekey + '-filter-IsUnplayed'),
|
||||
IsFavorite: 'true' === userSettings.getFilter(basekey + '-filter-IsFavorite'),
|
||||
IsResumable: 'true' === userSettings.getFilter(basekey + '-filter-IsResumable'),
|
||||
Is4K: 'true' === userSettings.getFilter(basekey + '-filter-Is4K'),
|
||||
IsHD: 'true' === userSettings.getFilter(basekey + '-filter-IsHD'),
|
||||
IsSD: 'true' === userSettings.getFilter(basekey + '-filter-IsSD'),
|
||||
Is3D: 'true' === userSettings.getFilter(basekey + '-filter-Is3D'),
|
||||
IsPlayed: userSettings.getFilter(basekey + '-filter-IsPlayed') === 'true',
|
||||
IsUnplayed: userSettings.getFilter(basekey + '-filter-IsUnplayed') === 'true',
|
||||
IsFavorite: userSettings.getFilter(basekey + '-filter-IsFavorite') === 'true',
|
||||
IsResumable: userSettings.getFilter(basekey + '-filter-IsResumable') === 'true',
|
||||
Is4K: userSettings.getFilter(basekey + '-filter-Is4K') === 'true',
|
||||
IsHD: userSettings.getFilter(basekey + '-filter-IsHD') === 'true',
|
||||
IsSD: userSettings.getFilter(basekey + '-filter-IsSD') === 'true',
|
||||
Is3D: userSettings.getFilter(basekey + '-filter-Is3D') === 'true',
|
||||
VideoTypes: userSettings.getFilter(basekey + '-filter-VideoTypes'),
|
||||
SeriesStatus: userSettings.getFilter(basekey + '-filter-SeriesStatus'),
|
||||
HasSubtitles: userSettings.getFilter(basekey + '-filter-HasSubtitles'),
|
||||
@ -870,7 +870,7 @@ define(['globalize', 'listView', 'layoutManager', 'userSettings', 'focusManager'
|
||||
var basekey = this.getSettingsKey();
|
||||
return {
|
||||
sortBy: userSettings.getFilter(basekey + '-sortby') || this.getDefaultSortBy(),
|
||||
sortOrder: 'Descending' === userSettings.getFilter(basekey + '-sortorder') ? 'Descending' : 'Ascending'
|
||||
sortOrder: userSettings.getFilter(basekey + '-sortorder') === 'Descending' ? 'Descending' : 'Ascending'
|
||||
};
|
||||
};
|
||||
|
||||
@ -889,7 +889,7 @@ define(['globalize', 'listView', 'layoutManager', 'userSettings', 'focusManager'
|
||||
var sortBy = [];
|
||||
var params = this.params;
|
||||
|
||||
if ('Programs' === params.type) {
|
||||
if (params.type === 'Programs') {
|
||||
sortBy.push({
|
||||
name: globalize.translate('AirDate'),
|
||||
value: 'StartDate,SortName'
|
||||
@ -914,7 +914,7 @@ define(['globalize', 'listView', 'layoutManager', 'userSettings', 'focusManager'
|
||||
sortBy.push(option);
|
||||
}
|
||||
|
||||
if ('Programs' !== params.type) {
|
||||
if (params.type !== 'Programs') {
|
||||
sortBy.push({
|
||||
name: globalize.translate('DateAdded'),
|
||||
value: 'DateCreated,SortName'
|
||||
@ -957,7 +957,7 @@ define(['globalize', 'listView', 'layoutManager', 'userSettings', 'focusManager'
|
||||
};
|
||||
|
||||
ItemsView.prototype.getNameSortOption = function (params) {
|
||||
if ('Episode' === params.type) {
|
||||
if (params.type === 'Episode') {
|
||||
return {
|
||||
name: globalize.translate('Name'),
|
||||
value: 'SeriesName,SortName'
|
||||
@ -971,7 +971,7 @@ define(['globalize', 'listView', 'layoutManager', 'userSettings', 'focusManager'
|
||||
};
|
||||
|
||||
ItemsView.prototype.getPlayCountSortOption = function () {
|
||||
if ('Programs' === this.params.type) {
|
||||
if (this.params.type === 'Programs') {
|
||||
return null;
|
||||
}
|
||||
|
||||
@ -982,7 +982,7 @@ define(['globalize', 'listView', 'layoutManager', 'userSettings', 'focusManager'
|
||||
};
|
||||
|
||||
ItemsView.prototype.getDatePlayedSortOption = function () {
|
||||
if ('Programs' === this.params.type) {
|
||||
if (this.params.type === 'Programs') {
|
||||
return null;
|
||||
}
|
||||
|
||||
@ -993,7 +993,7 @@ define(['globalize', 'listView', 'layoutManager', 'userSettings', 'focusManager'
|
||||
};
|
||||
|
||||
ItemsView.prototype.getCriticRatingSortOption = function () {
|
||||
if ('Programs' === this.params.type) {
|
||||
if (this.params.type === 'Programs') {
|
||||
return null;
|
||||
}
|
||||
|
||||
@ -1014,8 +1014,8 @@ define(['globalize', 'listView', 'layoutManager', 'userSettings', 'focusManager'
|
||||
var filters = [];
|
||||
var params = this.params;
|
||||
|
||||
if (!('nextup' === params.type)) {
|
||||
if ('Programs' === params.type) {
|
||||
if (!(params.type === 'nextup')) {
|
||||
if (params.type === 'Programs') {
|
||||
filters.push('Genres');
|
||||
} else {
|
||||
filters.push('IsUnplayed');
|
||||
@ -1083,7 +1083,7 @@ define(['globalize', 'listView', 'layoutManager', 'userSettings', 'focusManager'
|
||||
var item = (this.params, this.currentItem);
|
||||
var fields = ['showTitle'];
|
||||
|
||||
if (!item || 'PhotoAlbum' !== item.Type && 'ChannelFolderItem' !== item.Type) {
|
||||
if (!item || item.Type !== 'PhotoAlbum' && item.Type !== 'ChannelFolderItem') {
|
||||
fields.push('imageType');
|
||||
}
|
||||
|
||||
@ -1097,25 +1097,25 @@ define(['globalize', 'listView', 'layoutManager', 'userSettings', 'focusManager'
|
||||
var item = this.currentItem;
|
||||
var showTitle = userSettings.get(basekey + '-showTitle');
|
||||
|
||||
if ('true' === showTitle) {
|
||||
if (showTitle === 'true') {
|
||||
showTitle = true;
|
||||
} else if ('false' === showTitle) {
|
||||
} else if (showTitle === 'false') {
|
||||
showTitle = false;
|
||||
} else if ('Programs' === params.type || 'Recordings' === params.type || 'Person' === params.type || 'nextup' === params.type || 'Audio' === params.type || 'MusicAlbum' === params.type || 'MusicArtist' === params.type) {
|
||||
} else if (params.type === 'Programs' || params.type === 'Recordings' || params.type === 'Person' || params.type === 'nextup' || params.type === 'Audio' || params.type === 'MusicAlbum' || params.type === 'MusicArtist') {
|
||||
showTitle = true;
|
||||
} else if (item && 'PhotoAlbum' !== item.Type) {
|
||||
} else if (item && item.Type !== 'PhotoAlbum') {
|
||||
showTitle = true;
|
||||
}
|
||||
|
||||
var imageType = userSettings.get(basekey + '-imageType');
|
||||
|
||||
if (!imageType && 'nextup' === params.type) {
|
||||
if (!imageType && params.type === 'nextup') {
|
||||
imageType = 'thumb';
|
||||
}
|
||||
|
||||
return {
|
||||
showTitle: showTitle,
|
||||
showYear: 'false' !== userSettings.get(basekey + '-showYear'),
|
||||
showYear: userSettings.get(basekey + '-showYear') !== 'false',
|
||||
imageType: imageType || 'primary',
|
||||
viewType: userSettings.get(basekey + '-viewType') || 'images'
|
||||
};
|
||||
@ -1124,11 +1124,11 @@ define(['globalize', 'listView', 'layoutManager', 'userSettings', 'focusManager'
|
||||
ItemsView.prototype.getItemTypes = function () {
|
||||
var params = this.params;
|
||||
|
||||
if ('nextup' === params.type) {
|
||||
if (params.type === 'nextup') {
|
||||
return ['Episode'];
|
||||
}
|
||||
|
||||
if ('Programs' === params.type) {
|
||||
if (params.type === 'Programs') {
|
||||
return ['Program'];
|
||||
}
|
||||
|
||||
|
@ -144,9 +144,9 @@ define(['layoutManager', 'userSettings', 'inputManager', 'loading', 'globalize',
|
||||
coverImage: true,
|
||||
overlayText: false,
|
||||
lazy: true,
|
||||
overlayPlayButton: 'play' === overlayButton,
|
||||
overlayMoreButton: 'more' === overlayButton,
|
||||
overlayInfoButton: 'info' === overlayButton,
|
||||
overlayPlayButton: overlayButton === 'play',
|
||||
overlayMoreButton: overlayButton === 'more',
|
||||
overlayInfoButton: overlayButton === 'info',
|
||||
allowBottomPadding: !enableScrollX(),
|
||||
showAirTime: true,
|
||||
showAirDateTime: true
|
||||
@ -263,7 +263,7 @@ define(['layoutManager', 'userSettings', 'inputManager', 'loading', 'globalize',
|
||||
require(depends, function (controllerFactory) {
|
||||
var tabContent;
|
||||
|
||||
if (0 == index) {
|
||||
if (index == 0) {
|
||||
tabContent = view.querySelector(".pageTabContent[data-index='" + index + "']");
|
||||
self.tabContent = tabContent;
|
||||
}
|
||||
@ -273,9 +273,9 @@ define(['layoutManager', 'userSettings', 'inputManager', 'loading', 'globalize',
|
||||
if (!controller) {
|
||||
tabContent = view.querySelector(".pageTabContent[data-index='" + index + "']");
|
||||
|
||||
if (0 === index) {
|
||||
if (index === 0) {
|
||||
controller = self;
|
||||
} else if (6 === index) {
|
||||
} else if (index === 6) {
|
||||
controller = new controllerFactory(view, tabContent, {
|
||||
collectionType: 'livetv'
|
||||
});
|
||||
@ -307,8 +307,8 @@ define(['layoutManager', 'userSettings', 'inputManager', 'loading', 'globalize',
|
||||
getTabController(page, index, function (controller) {
|
||||
initialTabIndex = null;
|
||||
|
||||
if (-1 == renderedTabs.indexOf(index)) {
|
||||
if (1 === index) {
|
||||
if (renderedTabs.indexOf(index) == -1) {
|
||||
if (index === 1) {
|
||||
renderedTabs.push(index);
|
||||
}
|
||||
|
||||
|
@ -1,296 +1,305 @@
|
||||
define(['jQuery', 'globalize', 'scripts/taskbutton', 'dom', 'libraryMenu', 'layoutManager', 'loading', 'browser', 'listViewStyle', 'flexStyles', 'emby-itemscontainer', 'cardStyle', 'material-icons', 'emby-button'], function ($, globalize, taskButton, dom, libraryMenu, layoutManager, loading, browser) {
|
||||
'use strict';
|
||||
import $ from 'jQuery';
|
||||
import globalize from 'globalize';
|
||||
import taskButton from 'scripts/taskbutton';
|
||||
import dom from 'dom';
|
||||
import layoutManager from 'layoutManager';
|
||||
import loading from 'loading';
|
||||
import browser from 'browser';
|
||||
import 'listViewStyle';
|
||||
import 'flexStyles';
|
||||
import 'emby-itemscontainer';
|
||||
import 'cardStyle';
|
||||
import 'material-icons';
|
||||
import 'emby-button';
|
||||
|
||||
loading = loading.default || loading;
|
||||
const enableFocusTransform = !browser.slow && !browser.edge;
|
||||
|
||||
var enableFocusTransform = !browser.slow && !browser.edge;
|
||||
function getDeviceHtml(device) {
|
||||
let padderClass;
|
||||
let html = '';
|
||||
let cssClass = 'card scalableCard';
|
||||
let cardBoxCssClass = 'cardBox visualCardBox';
|
||||
cssClass += ' backdropCard backdropCard-scalable';
|
||||
padderClass = 'cardPadder-backdrop';
|
||||
|
||||
function getDeviceHtml(device) {
|
||||
var padderClass;
|
||||
var html = '';
|
||||
var cssClass = 'card scalableCard';
|
||||
var cardBoxCssClass = 'cardBox visualCardBox';
|
||||
cssClass += ' backdropCard backdropCard-scalable';
|
||||
padderClass = 'cardPadder-backdrop';
|
||||
// TODO move card creation code to Card component
|
||||
|
||||
// TODO move card creation code to Card component
|
||||
if (layoutManager.tv) {
|
||||
cssClass += ' show-focus';
|
||||
|
||||
if (layoutManager.tv) {
|
||||
cssClass += ' show-focus';
|
||||
|
||||
if (enableFocusTransform) {
|
||||
cssClass += ' show-animation';
|
||||
}
|
||||
if (enableFocusTransform) {
|
||||
cssClass += ' show-animation';
|
||||
}
|
||||
|
||||
html += '<div type="button" class="' + cssClass + '" data-id="' + device.Id + '">';
|
||||
html += '<div class="' + cardBoxCssClass + '">';
|
||||
html += '<div class="cardScalable visualCardBox-cardScalable">';
|
||||
html += '<div class="' + padderClass + '"></div>';
|
||||
html += '<div class="cardContent searchImage">';
|
||||
html += '<div class="cardImageContainer coveredImage"><span class="cardImageIcon material-icons dvr"></span></div>';
|
||||
html += '</div>';
|
||||
html += '</div>';
|
||||
html += '<div class="cardFooter visualCardBox-cardFooter">';
|
||||
html += '<button is="paper-icon-button-light" class="itemAction btnCardOptions autoSize" data-action="menu"><span class="material-icons more_vert"></span></button>';
|
||||
html += '<div class="cardText">' + (device.FriendlyName || getTunerName(device.Type)) + '</div>';
|
||||
html += '<div class="cardText cardText-secondary">';
|
||||
html += device.Url || ' ';
|
||||
html += '</div>';
|
||||
html += '</div>';
|
||||
html += '</div>';
|
||||
return html += '</div>';
|
||||
}
|
||||
|
||||
function renderDevices(page, devices) {
|
||||
var html = devices.map(getDeviceHtml).join('');
|
||||
page.querySelector('.devicesList').innerHTML = html;
|
||||
}
|
||||
html += '<div type="button" class="' + cssClass + '" data-id="' + device.Id + '">';
|
||||
html += '<div class="' + cardBoxCssClass + '">';
|
||||
html += '<div class="cardScalable visualCardBox-cardScalable">';
|
||||
html += '<div class="' + padderClass + '"></div>';
|
||||
html += '<div class="cardContent searchImage">';
|
||||
html += '<div class="cardImageContainer coveredImage"><span class="cardImageIcon material-icons dvr"></span></div>';
|
||||
html += '</div>';
|
||||
html += '</div>';
|
||||
html += '<div class="cardFooter visualCardBox-cardFooter">';
|
||||
html += '<button is="paper-icon-button-light" class="itemAction btnCardOptions autoSize" data-action="menu"><span class="material-icons more_vert"></span></button>';
|
||||
html += '<div class="cardText">' + (device.FriendlyName || getTunerName(device.Type)) + '</div>';
|
||||
html += '<div class="cardText cardText-secondary">';
|
||||
html += device.Url || ' ';
|
||||
html += '</div>';
|
||||
html += '</div>';
|
||||
html += '</div>';
|
||||
return html += '</div>';
|
||||
}
|
||||
|
||||
function deleteDevice(page, id) {
|
||||
var message = globalize.translate('MessageConfirmDeleteTunerDevice');
|
||||
function renderDevices(page, devices) {
|
||||
page.querySelector('.devicesList').innerHTML = devices.map(getDeviceHtml).join('');
|
||||
}
|
||||
|
||||
require(['confirm'], function (confirm) {
|
||||
confirm.default(message, globalize.translate('HeaderDeleteDevice')).then(function () {
|
||||
loading.show();
|
||||
ApiClient.ajax({
|
||||
type: 'DELETE',
|
||||
url: ApiClient.getUrl('LiveTv/TunerHosts', {
|
||||
Id: id
|
||||
})
|
||||
}).then(function () {
|
||||
reload(page);
|
||||
});
|
||||
function deleteDevice(page, id) {
|
||||
const message = globalize.translate('MessageConfirmDeleteTunerDevice');
|
||||
|
||||
import('confirm').then(({default: confirm}) => {
|
||||
confirm(message, globalize.translate('HeaderDeleteDevice')).then(function () {
|
||||
loading.show();
|
||||
ApiClient.ajax({
|
||||
type: 'DELETE',
|
||||
url: ApiClient.getUrl('LiveTv/TunerHosts', {
|
||||
Id: id
|
||||
})
|
||||
}).then(function () {
|
||||
reload(page);
|
||||
});
|
||||
});
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
function reload(page) {
|
||||
loading.show();
|
||||
ApiClient.getNamedConfiguration('livetv').then(function (config) {
|
||||
renderDevices(page, config.TunerHosts);
|
||||
renderProviders(page, config.ListingProviders);
|
||||
function reload(page) {
|
||||
loading.show();
|
||||
ApiClient.getNamedConfiguration('livetv').then(function (config) {
|
||||
renderDevices(page, config.TunerHosts);
|
||||
renderProviders(page, config.ListingProviders);
|
||||
});
|
||||
loading.hide();
|
||||
}
|
||||
|
||||
function submitAddDeviceForm(page) {
|
||||
page.querySelector('.dlgAddDevice').close();
|
||||
loading.show();
|
||||
ApiClient.ajax({
|
||||
type: 'POST',
|
||||
url: ApiClient.getUrl('LiveTv/TunerHosts'),
|
||||
data: JSON.stringify({
|
||||
Type: $('#selectTunerDeviceType', page).val(),
|
||||
Url: $('#txtDevicePath', page).val()
|
||||
}),
|
||||
contentType: 'application/json'
|
||||
}).then(function () {
|
||||
reload(page);
|
||||
}, function () {
|
||||
Dashboard.alert({
|
||||
message: globalize.translate('ErrorAddingTunerDevice')
|
||||
});
|
||||
loading.hide();
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
function submitAddDeviceForm(page) {
|
||||
page.querySelector('.dlgAddDevice').close();
|
||||
loading.show();
|
||||
ApiClient.ajax({
|
||||
type: 'POST',
|
||||
url: ApiClient.getUrl('LiveTv/TunerHosts'),
|
||||
data: JSON.stringify({
|
||||
Type: $('#selectTunerDeviceType', page).val(),
|
||||
Url: $('#txtDevicePath', page).val()
|
||||
}),
|
||||
contentType: 'application/json'
|
||||
}).then(function () {
|
||||
reload(page);
|
||||
}, function () {
|
||||
Dashboard.alert({
|
||||
message: globalize.translate('ErrorAddingTunerDevice')
|
||||
});
|
||||
});
|
||||
}
|
||||
function renderProviders(page, providers) {
|
||||
let html = '';
|
||||
|
||||
function renderProviders(page, providers) {
|
||||
var html = '';
|
||||
|
||||
if (providers.length) {
|
||||
html += '<div class="paperList">';
|
||||
|
||||
for (var i = 0, length = providers.length; i < length; i++) {
|
||||
var provider = providers[i];
|
||||
html += '<div class="listItem">';
|
||||
html += '<span class="listItemIcon material-icons dvr"></span>';
|
||||
html += '<div class="listItemBody two-line">';
|
||||
html += '<a is="emby-linkbutton" style="display:block;padding:0;margin:0;text-align:left;" class="clearLink" href="' + getProviderConfigurationUrl(provider.Type) + '&id=' + provider.Id + '">';
|
||||
html += '<h3 class="listItemBodyText">';
|
||||
html += getProviderName(provider.Type);
|
||||
html += '</h3>';
|
||||
html += '<div class="listItemBodyText secondary">';
|
||||
html += provider.Path || provider.ListingsId || '';
|
||||
html += '</div>';
|
||||
html += '</a>';
|
||||
html += '</div>';
|
||||
html += '<button type="button" is="paper-icon-button-light" class="btnOptions" data-id="' + provider.Id + '"><span class="material-icons listItemAside more_vert"></span></button>';
|
||||
html += '</div>';
|
||||
}
|
||||
if (providers.length) {
|
||||
html += '<div class="paperList">';
|
||||
|
||||
for (let i = 0, length = providers.length; i < length; i++) {
|
||||
const provider = providers[i];
|
||||
html += '<div class="listItem">';
|
||||
html += '<span class="listItemIcon material-icons dvr"></span>';
|
||||
html += '<div class="listItemBody two-line">';
|
||||
html += '<a is="emby-linkbutton" style="display:block;padding:0;margin:0;text-align:left;" class="clearLink" href="' + getProviderConfigurationUrl(provider.Type) + '&id=' + provider.Id + '">';
|
||||
html += '<h3 class="listItemBodyText">';
|
||||
html += getProviderName(provider.Type);
|
||||
html += '</h3>';
|
||||
html += '<div class="listItemBodyText secondary">';
|
||||
html += provider.Path || provider.ListingsId || '';
|
||||
html += '</div>';
|
||||
html += '</a>';
|
||||
html += '</div>';
|
||||
html += '<button type="button" is="paper-icon-button-light" class="btnOptions" data-id="' + provider.Id + '"><span class="material-icons listItemAside more_vert"></span></button>';
|
||||
html += '</div>';
|
||||
}
|
||||
|
||||
var elem = $('.providerList', page).html(html);
|
||||
$('.btnOptions', elem).on('click', function () {
|
||||
var id = this.getAttribute('data-id');
|
||||
showProviderOptions(page, id, this);
|
||||
});
|
||||
html += '</div>';
|
||||
}
|
||||
|
||||
function showProviderOptions(page, providerId, button) {
|
||||
var items = [];
|
||||
items.push({
|
||||
name: globalize.translate('ButtonDelete'),
|
||||
id: 'delete'
|
||||
});
|
||||
items.push({
|
||||
name: globalize.translate('MapChannels'),
|
||||
id: 'map'
|
||||
});
|
||||
const elem = $('.providerList', page).html(html);
|
||||
$('.btnOptions', elem).on('click', function () {
|
||||
const id = this.getAttribute('data-id');
|
||||
showProviderOptions(page, id, this);
|
||||
});
|
||||
}
|
||||
|
||||
require(['actionsheet'], function (actionsheet) {
|
||||
actionsheet.show({
|
||||
items: items,
|
||||
positionTo: button
|
||||
}).then(function (id) {
|
||||
switch (id) {
|
||||
case 'delete':
|
||||
deleteProvider(page, providerId);
|
||||
break;
|
||||
function showProviderOptions(page, providerId, button) {
|
||||
const items = [];
|
||||
items.push({
|
||||
name: globalize.translate('ButtonDelete'),
|
||||
id: 'delete'
|
||||
});
|
||||
items.push({
|
||||
name: globalize.translate('MapChannels'),
|
||||
id: 'map'
|
||||
});
|
||||
|
||||
case 'map':
|
||||
mapChannels(page, providerId);
|
||||
}
|
||||
});
|
||||
});
|
||||
}
|
||||
import('actionsheet').then(({default: actionsheet}) => {
|
||||
actionsheet.show({
|
||||
items: items,
|
||||
positionTo: button
|
||||
}).then(function (id) {
|
||||
switch (id) {
|
||||
case 'delete':
|
||||
deleteProvider(page, providerId);
|
||||
break;
|
||||
|
||||
function mapChannels(page, providerId) {
|
||||
require(['components/channelMapper/channelMapper'], function (channelMapper) {
|
||||
new channelMapper.default({
|
||||
serverId: ApiClient.serverInfo().Id,
|
||||
providerId: providerId
|
||||
}).show();
|
||||
});
|
||||
}
|
||||
|
||||
function deleteProvider(page, id) {
|
||||
var message = globalize.translate('MessageConfirmDeleteGuideProvider');
|
||||
|
||||
require(['confirm'], function (confirm) {
|
||||
confirm.default(message, globalize.translate('HeaderDeleteProvider')).then(function () {
|
||||
loading.show();
|
||||
ApiClient.ajax({
|
||||
type: 'DELETE',
|
||||
url: ApiClient.getUrl('LiveTv/ListingProviders', {
|
||||
Id: id
|
||||
})
|
||||
}).then(function () {
|
||||
reload(page);
|
||||
}, function () {
|
||||
reload(page);
|
||||
});
|
||||
});
|
||||
});
|
||||
}
|
||||
|
||||
function getTunerName(providerId) {
|
||||
switch (providerId = providerId.toLowerCase()) {
|
||||
case 'm3u':
|
||||
return 'M3U';
|
||||
case 'hdhomerun':
|
||||
return 'HDHomeRun';
|
||||
case 'hauppauge':
|
||||
return 'Hauppauge';
|
||||
case 'satip':
|
||||
return 'DVB';
|
||||
default:
|
||||
return 'Unknown';
|
||||
}
|
||||
}
|
||||
|
||||
function getProviderName(providerId) {
|
||||
switch (providerId = providerId.toLowerCase()) {
|
||||
case 'schedulesdirect':
|
||||
return 'Schedules Direct';
|
||||
case 'xmltv':
|
||||
return 'XMLTV';
|
||||
default:
|
||||
return 'Unknown';
|
||||
}
|
||||
}
|
||||
|
||||
function getProviderConfigurationUrl(providerId) {
|
||||
switch (providerId = providerId.toLowerCase()) {
|
||||
case 'xmltv':
|
||||
return 'livetvguideprovider.html?type=xmltv';
|
||||
case 'schedulesdirect':
|
||||
return 'livetvguideprovider.html?type=schedulesdirect';
|
||||
}
|
||||
}
|
||||
|
||||
function addProvider(button) {
|
||||
var menuItems = [];
|
||||
menuItems.push({
|
||||
name: 'Schedules Direct',
|
||||
id: 'SchedulesDirect'
|
||||
});
|
||||
menuItems.push({
|
||||
name: 'XMLTV',
|
||||
id: 'xmltv'
|
||||
});
|
||||
|
||||
require(['actionsheet'], function (actionsheet) {
|
||||
actionsheet.show({
|
||||
items: menuItems,
|
||||
positionTo: button,
|
||||
callback: function (id) {
|
||||
Dashboard.navigate(getProviderConfigurationUrl(id));
|
||||
}
|
||||
});
|
||||
});
|
||||
}
|
||||
|
||||
function addDevice(button) {
|
||||
Dashboard.navigate('livetvtuner.html');
|
||||
}
|
||||
|
||||
function showDeviceMenu(button, tunerDeviceId) {
|
||||
var items = [];
|
||||
items.push({
|
||||
name: globalize.translate('ButtonDelete'),
|
||||
id: 'delete'
|
||||
});
|
||||
items.push({
|
||||
name: globalize.translate('ButtonEdit'),
|
||||
id: 'edit'
|
||||
});
|
||||
|
||||
require(['actionsheet'], function (actionsheet) {
|
||||
actionsheet.show({
|
||||
items: items,
|
||||
positionTo: button
|
||||
}).then(function (id) {
|
||||
switch (id) {
|
||||
case 'delete':
|
||||
deleteDevice(dom.parentWithClass(button, 'page'), tunerDeviceId);
|
||||
break;
|
||||
|
||||
case 'edit':
|
||||
Dashboard.navigate('livetvtuner.html?id=' + tunerDeviceId);
|
||||
}
|
||||
});
|
||||
});
|
||||
}
|
||||
|
||||
function onDevicesListClick(e) {
|
||||
var card = dom.parentWithClass(e.target, 'card');
|
||||
|
||||
if (card) {
|
||||
var id = card.getAttribute('data-id');
|
||||
var btnCardOptions = dom.parentWithClass(e.target, 'btnCardOptions');
|
||||
|
||||
if (btnCardOptions) {
|
||||
showDeviceMenu(btnCardOptions, id);
|
||||
} else {
|
||||
Dashboard.navigate('livetvtuner.html?id=' + id);
|
||||
case 'map':
|
||||
mapChannels(page, providerId);
|
||||
}
|
||||
});
|
||||
});
|
||||
}
|
||||
|
||||
function mapChannels(page, providerId) {
|
||||
import('components/channelMapper/channelMapper').then(({default: channelMapper}) => {
|
||||
new channelMapper({
|
||||
serverId: ApiClient.serverInfo().Id,
|
||||
providerId: providerId
|
||||
}).show();
|
||||
});
|
||||
}
|
||||
|
||||
function deleteProvider(page, id) {
|
||||
const message = globalize.translate('MessageConfirmDeleteGuideProvider');
|
||||
|
||||
import('confirm').then(({default: confirm}) => {
|
||||
confirm(message, globalize.translate('HeaderDeleteProvider')).then(function () {
|
||||
loading.show();
|
||||
ApiClient.ajax({
|
||||
type: 'DELETE',
|
||||
url: ApiClient.getUrl('LiveTv/ListingProviders', {
|
||||
Id: id
|
||||
})
|
||||
}).then(function () {
|
||||
reload(page);
|
||||
}, function () {
|
||||
reload(page);
|
||||
});
|
||||
});
|
||||
});
|
||||
}
|
||||
|
||||
function getTunerName(providerId) {
|
||||
switch (providerId = providerId.toLowerCase()) {
|
||||
case 'm3u':
|
||||
return 'M3U';
|
||||
case 'hdhomerun':
|
||||
return 'HDHomeRun';
|
||||
case 'hauppauge':
|
||||
return 'Hauppauge';
|
||||
case 'satip':
|
||||
return 'DVB';
|
||||
default:
|
||||
return 'Unknown';
|
||||
}
|
||||
}
|
||||
|
||||
function getProviderName(providerId) {
|
||||
switch (providerId = providerId.toLowerCase()) {
|
||||
case 'schedulesdirect':
|
||||
return 'Schedules Direct';
|
||||
case 'xmltv':
|
||||
return 'XMLTV';
|
||||
default:
|
||||
return 'Unknown';
|
||||
}
|
||||
}
|
||||
|
||||
function getProviderConfigurationUrl(providerId) {
|
||||
switch (providerId = providerId.toLowerCase()) {
|
||||
case 'xmltv':
|
||||
return 'livetvguideprovider.html?type=xmltv';
|
||||
case 'schedulesdirect':
|
||||
return 'livetvguideprovider.html?type=schedulesdirect';
|
||||
}
|
||||
}
|
||||
|
||||
function addProvider(button) {
|
||||
const menuItems = [];
|
||||
menuItems.push({
|
||||
name: 'Schedules Direct',
|
||||
id: 'SchedulesDirect'
|
||||
});
|
||||
menuItems.push({
|
||||
name: 'XMLTV',
|
||||
id: 'xmltv'
|
||||
});
|
||||
|
||||
import('actionsheet').then(({default: actionsheet}) => {
|
||||
actionsheet.show({
|
||||
items: menuItems,
|
||||
positionTo: button,
|
||||
callback: function (id) {
|
||||
Dashboard.navigate(getProviderConfigurationUrl(id));
|
||||
}
|
||||
});
|
||||
});
|
||||
}
|
||||
|
||||
function addDevice(button) {
|
||||
Dashboard.navigate('livetvtuner.html');
|
||||
}
|
||||
|
||||
function showDeviceMenu(button, tunerDeviceId) {
|
||||
const items = [];
|
||||
items.push({
|
||||
name: globalize.translate('ButtonDelete'),
|
||||
id: 'delete'
|
||||
});
|
||||
items.push({
|
||||
name: globalize.translate('ButtonEdit'),
|
||||
id: 'edit'
|
||||
});
|
||||
|
||||
import('actionsheet').then(({default: actionsheet}) => {
|
||||
actionsheet.show({
|
||||
items: items,
|
||||
positionTo: button
|
||||
}).then(function (id) {
|
||||
switch (id) {
|
||||
case 'delete':
|
||||
deleteDevice(dom.parentWithClass(button, 'page'), tunerDeviceId);
|
||||
break;
|
||||
|
||||
case 'edit':
|
||||
Dashboard.navigate('livetvtuner.html?id=' + tunerDeviceId);
|
||||
}
|
||||
});
|
||||
});
|
||||
}
|
||||
|
||||
function onDevicesListClick(e) {
|
||||
const card = dom.parentWithClass(e.target, 'card');
|
||||
|
||||
if (card) {
|
||||
const id = card.getAttribute('data-id');
|
||||
const btnCardOptions = dom.parentWithClass(e.target, 'btnCardOptions');
|
||||
|
||||
if (btnCardOptions) {
|
||||
showDeviceMenu(btnCardOptions, id);
|
||||
} else {
|
||||
Dashboard.navigate('livetvtuner.html?id=' + id);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
export default function () {
|
||||
$(document).on('pageinit', '#liveTvStatusPage', function () {
|
||||
var page = this;
|
||||
const page = this;
|
||||
$('.btnAddDevice', page).on('click', function () {
|
||||
addDevice(this);
|
||||
});
|
||||
@ -303,21 +312,21 @@ define(['jQuery', 'globalize', 'scripts/taskbutton', 'dom', 'libraryMenu', 'layo
|
||||
});
|
||||
page.querySelector('.devicesList').addEventListener('click', onDevicesListClick);
|
||||
}).on('pageshow', '#liveTvStatusPage', function () {
|
||||
var page = this;
|
||||
const page = this;
|
||||
reload(page);
|
||||
taskButton.default({
|
||||
taskButton({
|
||||
mode: 'on',
|
||||
progressElem: page.querySelector('.refreshGuideProgress'),
|
||||
taskKey: 'RefreshGuide',
|
||||
button: page.querySelector('.btnRefresh')
|
||||
});
|
||||
}).on('pagehide', '#liveTvStatusPage', function () {
|
||||
var page = this;
|
||||
taskButton.default({
|
||||
const page = this;
|
||||
taskButton({
|
||||
mode: 'off',
|
||||
progressElem: page.querySelector('.refreshGuideProgress'),
|
||||
taskKey: 'RefreshGuide',
|
||||
button: page.querySelector('.btnRefresh')
|
||||
});
|
||||
});
|
||||
});
|
||||
}
|
||||
|
@ -21,7 +21,7 @@ function fillTypes(view, currentId) {
|
||||
html += globalize.translate('TabOther');
|
||||
html += '</option>';
|
||||
selectType.innerHTML = html;
|
||||
selectType.disabled = null != currentId;
|
||||
selectType.disabled = currentId != null;
|
||||
selectType.value = '';
|
||||
onTypeChange.call(selectType);
|
||||
});
|
||||
@ -112,15 +112,15 @@ function getDetectedDevice() {
|
||||
function onTypeChange() {
|
||||
const value = this.value;
|
||||
const view = dom.parentWithClass(this, 'page');
|
||||
const mayIncludeUnsupportedDrmChannels = 'hdhomerun' === value;
|
||||
const supportsTranscoding = 'hdhomerun' === value;
|
||||
const supportsFavorites = 'hdhomerun' === value;
|
||||
const supportsTunerIpAddress = 'hdhomerun' === value;
|
||||
const supportsTunerFileOrUrl = 'm3u' === value;
|
||||
const supportsStreamLooping = 'm3u' === value;
|
||||
const supportsTunerCount = 'm3u' === value;
|
||||
const supportsUserAgent = 'm3u' === value;
|
||||
const suppportsSubmit = 'other' !== value;
|
||||
const mayIncludeUnsupportedDrmChannels = value === 'hdhomerun';
|
||||
const supportsTranscoding = value === 'hdhomerun';
|
||||
const supportsFavorites = value === 'hdhomerun';
|
||||
const supportsTunerIpAddress = value === 'hdhomerun';
|
||||
const supportsTunerFileOrUrl = value === 'm3u';
|
||||
const supportsStreamLooping = value === 'm3u';
|
||||
const supportsTunerCount = value === 'm3u';
|
||||
const supportsUserAgent = value === 'm3u';
|
||||
const suppportsSubmit = value !== 'other';
|
||||
const supportsSelectablePath = supportsTunerFileOrUrl;
|
||||
const txtDevicePath = view.querySelector('.txtDevicePath');
|
||||
|
||||
|
@ -51,7 +51,7 @@ define(['loading', 'events', 'libraryBrowser', 'imageLoader', 'listView', 'cardB
|
||||
var viewStyle = self.getCurrentViewStyle();
|
||||
var itemsContainer = tabContent.querySelector('.itemsContainer');
|
||||
|
||||
if ('List' == viewStyle) {
|
||||
if (viewStyle == 'List') {
|
||||
itemsContainer.classList.add('vertical-list');
|
||||
itemsContainer.classList.remove('vertical-wrap');
|
||||
} else {
|
||||
|
@ -57,13 +57,13 @@ define(['layoutManager', 'loading', 'libraryBrowser', 'cardBuilder', 'lazyLoader
|
||||
var elem = entry.target;
|
||||
var id = elem.getAttribute('data-id');
|
||||
var viewStyle = self.getCurrentViewStyle();
|
||||
var limit = 'Thumb' == viewStyle || 'ThumbCard' == viewStyle ? 5 : 9;
|
||||
var limit = viewStyle == 'Thumb' || viewStyle == 'ThumbCard' ? 5 : 9;
|
||||
|
||||
if (enableScrollX()) {
|
||||
limit = 10;
|
||||
}
|
||||
|
||||
var enableImageTypes = 'Thumb' == viewStyle || 'ThumbCard' == viewStyle ? 'Primary,Backdrop,Thumb' : 'Primary';
|
||||
var enableImageTypes = viewStyle == 'Thumb' || viewStyle == 'ThumbCard' ? 'Primary,Backdrop,Thumb' : 'Primary';
|
||||
var query = {
|
||||
SortBy: 'SortName',
|
||||
SortOrder: 'Ascending',
|
||||
|
@ -73,7 +73,7 @@ import 'emby-itemscontainer';
|
||||
const viewStyle = self.getCurrentViewStyle();
|
||||
const itemsContainer = tabContent.querySelector('.itemsContainer');
|
||||
|
||||
if ('List' == viewStyle) {
|
||||
if (viewStyle == 'List') {
|
||||
itemsContainer.classList.add('vertical-list');
|
||||
itemsContainer.classList.remove('vertical-wrap');
|
||||
} else {
|
||||
|
@ -57,7 +57,7 @@ import 'emby-itemscontainer';
|
||||
const viewStyle = self.getCurrentViewStyle();
|
||||
const itemsContainer = tabContent.querySelector('.itemsContainer');
|
||||
|
||||
if ('List' == viewStyle) {
|
||||
if (viewStyle == 'List') {
|
||||
itemsContainer.classList.add('vertical-list');
|
||||
itemsContainer.classList.remove('vertical-wrap');
|
||||
} else {
|
||||
|
@ -304,7 +304,7 @@ import 'flexStyles';
|
||||
import(depends).then(({default: controllerFactory}) => {
|
||||
let tabContent;
|
||||
|
||||
if (0 == index) {
|
||||
if (index == 0) {
|
||||
tabContent = view.querySelector(".pageTabContent[data-index='" + index + "']");
|
||||
self.tabContent = tabContent;
|
||||
}
|
||||
|
@ -28,7 +28,7 @@
|
||||
<span class="xlargePaperIconButton material-icons fiber_manual_record"></span>
|
||||
</button>
|
||||
|
||||
<button is="paper-icon-button-light" class="btnPreviousTrack autoSize hide">
|
||||
<button is="paper-icon-button-light" class="btnPreviousTrack autoSize hide" title="${PreviousTrack}">
|
||||
<span class="xlargePaperIconButton material-icons skip_previous"></span>
|
||||
</button>
|
||||
|
||||
@ -44,7 +44,7 @@
|
||||
<span class="xlargePaperIconButton material-icons fast_forward"></span>
|
||||
</button>
|
||||
|
||||
<button is="paper-icon-button-light" class="btnNextTrack autoSize hide">
|
||||
<button is="paper-icon-button-light" class="btnNextTrack autoSize hide" title="${NextTrack}">
|
||||
<span class="xlargePaperIconButton material-icons skip_next"></span>
|
||||
</button>
|
||||
|
||||
|
@ -22,18 +22,18 @@ import 'css!assets/css/videoosd';
|
||||
/* eslint-disable indent */
|
||||
|
||||
function seriesImageUrl(item, options) {
|
||||
if ('Episode' !== item.Type) {
|
||||
if (item.Type !== 'Episode') {
|
||||
return null;
|
||||
}
|
||||
|
||||
options = options || {};
|
||||
options.type = options.type || 'Primary';
|
||||
if ('Primary' === options.type && item.SeriesPrimaryImageTag) {
|
||||
if (options.type === 'Primary' && item.SeriesPrimaryImageTag) {
|
||||
options.tag = item.SeriesPrimaryImageTag;
|
||||
return connectionManager.getApiClient(item.ServerId).getScaledImageUrl(item.SeriesId, options);
|
||||
}
|
||||
|
||||
if ('Thumb' === options.type) {
|
||||
if (options.type === 'Thumb') {
|
||||
if (item.SeriesThumbImageTag) {
|
||||
options.tag = item.SeriesThumbImageTag;
|
||||
return connectionManager.getApiClient(item.ServerId).getScaledImageUrl(item.SeriesId, options);
|
||||
@ -57,7 +57,7 @@ import 'css!assets/css/videoosd';
|
||||
return connectionManager.getApiClient(item.ServerId).getScaledImageUrl(item.PrimaryImageItemId || item.Id, options);
|
||||
}
|
||||
|
||||
if ('Primary' === options.type && item.AlbumId && item.AlbumPrimaryImageTag) {
|
||||
if (options.type === 'Primary' && item.AlbumId && item.AlbumPrimaryImageTag) {
|
||||
options.tag = item.AlbumPrimaryImageTag;
|
||||
return connectionManager.getApiClient(item.ServerId).getScaledImageUrl(item.AlbumId, options);
|
||||
}
|
||||
@ -104,7 +104,7 @@ import 'css!assets/css/videoosd';
|
||||
function onDoubleClick(e) {
|
||||
const clientX = e.clientX;
|
||||
|
||||
if (null != clientX) {
|
||||
if (clientX != null) {
|
||||
if (clientX < dom.getWindowSize().innerWidth / 2) {
|
||||
playbackManager.rewind(currentPlayer);
|
||||
} else {
|
||||
@ -117,7 +117,7 @@ import 'css!assets/css/videoosd';
|
||||
}
|
||||
|
||||
function getDisplayItem(item) {
|
||||
if ('TvChannel' === item.Type) {
|
||||
if (item.Type === 'TvChannel') {
|
||||
const apiClient = connectionManager.getApiClient(item.ServerId);
|
||||
return apiClient.getItem(apiClient.getCurrentUserId(), item.Id).then(function (refreshedItem) {
|
||||
return {
|
||||
@ -133,7 +133,7 @@ import 'css!assets/css/videoosd';
|
||||
}
|
||||
|
||||
function updateRecordingButton(item) {
|
||||
if (!item || 'Program' !== item.Type) {
|
||||
if (!item || item.Type !== 'Program') {
|
||||
if (recordingButtonManager) {
|
||||
recordingButtonManager.destroy();
|
||||
recordingButtonManager = null;
|
||||
@ -176,8 +176,8 @@ import 'css!assets/css/videoosd';
|
||||
const osdTitle = view.querySelector('.osdTitle');
|
||||
titleElement = osdTitle;
|
||||
let displayName = itemHelper.getDisplayName(displayItem, {
|
||||
includeParentInfo: 'Program' !== displayItem.Type,
|
||||
includeIndexNumber: 'Program' !== displayItem.Type
|
||||
includeParentInfo: displayItem.Type !== 'Program',
|
||||
includeIndexNumber: displayItem.Type !== 'Program'
|
||||
});
|
||||
|
||||
if (!displayName) {
|
||||
@ -198,8 +198,8 @@ import 'css!assets/css/videoosd';
|
||||
tomatoes: false,
|
||||
endsAt: false,
|
||||
episodeTitle: false,
|
||||
originalAirDate: 'Program' !== displayItem.Type,
|
||||
episodeTitleIndexNumber: 'Program' !== displayItem.Type,
|
||||
originalAirDate: displayItem.Type !== 'Program',
|
||||
episodeTitleIndexNumber: displayItem.Type !== 'Program',
|
||||
programIndicator: false
|
||||
});
|
||||
const osdMediaInfo = view.querySelector('.osdMediaInfo');
|
||||
@ -271,7 +271,7 @@ import 'css!assets/css/videoosd';
|
||||
}
|
||||
|
||||
function shouldEnableProgressByTimeOfDay(item) {
|
||||
return !('TvChannel' !== item.Type || !item.CurrentProgram);
|
||||
return !(item.Type !== 'TvChannel' || !item.CurrentProgram);
|
||||
}
|
||||
|
||||
function updateNowPlayingInfo(player, state) {
|
||||
@ -330,24 +330,24 @@ import 'css!assets/css/videoosd';
|
||||
|
||||
if (item) {
|
||||
let imgUrl = seriesImageUrl(item, {
|
||||
maxWidth: osdPoster.clientWidth * 2,
|
||||
maxWidth: osdPoster.clientWidth,
|
||||
type: 'Primary'
|
||||
}) || seriesImageUrl(item, {
|
||||
maxWidth: osdPoster.clientWidth * 2,
|
||||
maxWidth: osdPoster.clientWidth,
|
||||
type: 'Thumb'
|
||||
}) || imageUrl(item, {
|
||||
maxWidth: osdPoster.clientWidth * 2,
|
||||
maxWidth: osdPoster.clientWidth,
|
||||
type: 'Primary'
|
||||
});
|
||||
|
||||
if (!imgUrl && secondaryItem && (imgUrl = seriesImageUrl(secondaryItem, {
|
||||
maxWidth: osdPoster.clientWidth * 2,
|
||||
maxWidth: osdPoster.clientWidth,
|
||||
type: 'Primary'
|
||||
}) || seriesImageUrl(secondaryItem, {
|
||||
maxWidth: osdPoster.clientWidth * 2,
|
||||
maxWidth: osdPoster.clientWidth,
|
||||
type: 'Thumb'
|
||||
}) || imageUrl(secondaryItem, {
|
||||
maxWidth: osdPoster.clientWidth * 2,
|
||||
maxWidth: osdPoster.clientWidth,
|
||||
type: 'Primary'
|
||||
})), imgUrl) {
|
||||
return void (osdPoster.innerHTML = '<img src="' + imgUrl + '" />');
|
||||
@ -372,7 +372,7 @@ import 'css!assets/css/videoosd';
|
||||
}
|
||||
|
||||
function toggleOsd() {
|
||||
if ('osd' === currentVisibleMenu) {
|
||||
if (currentVisibleMenu === 'osd') {
|
||||
hideOsd();
|
||||
} else if (!currentVisibleMenu) {
|
||||
showOsd();
|
||||
@ -433,7 +433,7 @@ import 'css!assets/css/videoosd';
|
||||
}
|
||||
|
||||
function hideMainOsdControls() {
|
||||
if ('osd' === currentVisibleMenu) {
|
||||
if (currentVisibleMenu === 'osd') {
|
||||
const elem = osdBottomElement;
|
||||
clearHideAnimationEventListeners(elem);
|
||||
elem.classList.add('videoOsdBottom-hidden');
|
||||
@ -463,7 +463,7 @@ import 'css!assets/css/videoosd';
|
||||
}
|
||||
|
||||
function onPointerMove(e) {
|
||||
if ('mouse' === (e.pointerType || (layoutManager.mobile ? 'touch' : 'mouse'))) {
|
||||
if ((e.pointerType || (layoutManager.mobile ? 'touch' : 'mouse')) === 'mouse') {
|
||||
const eventX = e.screenX || 0;
|
||||
const eventY = e.screenY || 0;
|
||||
const obj = lastPointerMoveData;
|
||||
@ -491,7 +491,7 @@ import 'css!assets/css/videoosd';
|
||||
|
||||
switch (e.detail.command) {
|
||||
case 'left':
|
||||
if ('osd' === currentVisibleMenu) {
|
||||
if (currentVisibleMenu === 'osd') {
|
||||
showOsd();
|
||||
} else {
|
||||
if (!currentVisibleMenu) {
|
||||
@ -503,7 +503,7 @@ import 'css!assets/css/videoosd';
|
||||
break;
|
||||
|
||||
case 'right':
|
||||
if ('osd' === currentVisibleMenu) {
|
||||
if (currentVisibleMenu === 'osd') {
|
||||
showOsd();
|
||||
} else if (!currentVisibleMenu) {
|
||||
e.preventDefault();
|
||||
@ -618,7 +618,7 @@ import 'css!assets/css/videoosd';
|
||||
resetUpNextDialog();
|
||||
console.debug('nowplaying event: ' + e.type);
|
||||
|
||||
if ('Video' !== state.NextMediaType) {
|
||||
if (state.NextMediaType !== 'Video') {
|
||||
view.removeEventListener('viewbeforehide', onViewHideStopPlayback);
|
||||
Emby.Page.back();
|
||||
}
|
||||
@ -705,7 +705,7 @@ import 'css!assets/css/videoosd';
|
||||
}
|
||||
|
||||
function showComingUpNextIfNeeded(player, currentItem, currentTimeTicks, runtimeTicks) {
|
||||
if (runtimeTicks && currentTimeTicks && !comingUpNextDisplayed && !currentVisibleMenu && 'Episode' === currentItem.Type && userSettings.enableNextVideoInfoOverlay()) {
|
||||
if (runtimeTicks && currentTimeTicks && !comingUpNextDisplayed && !currentVisibleMenu && currentItem.Type === 'Episode' && userSettings.enableNextVideoInfoOverlay()) {
|
||||
const showAtSecondsLeft = runtimeTicks >= 3e10 ? 40 : runtimeTicks >= 24e9 ? 35 : 30;
|
||||
const showAtTicks = runtimeTicks - 1e3 * showAtSecondsLeft * 1e4;
|
||||
const timeRemainingTicks = runtimeTicks - currentTimeTicks;
|
||||
@ -717,7 +717,7 @@ import 'css!assets/css/videoosd';
|
||||
}
|
||||
|
||||
function onUpNextHidden() {
|
||||
if ('upnext' === currentVisibleMenu) {
|
||||
if (currentVisibleMenu === 'upnext') {
|
||||
currentVisibleMenu = null;
|
||||
}
|
||||
}
|
||||
@ -740,7 +740,7 @@ import 'css!assets/css/videoosd';
|
||||
}
|
||||
|
||||
function refreshProgramInfoIfNeeded(player, item) {
|
||||
if ('TvChannel' === item.Type) {
|
||||
if (item.Type === 'TvChannel') {
|
||||
const program = item.CurrentProgram;
|
||||
|
||||
if (program && program.EndDate) {
|
||||
@ -781,7 +781,7 @@ import 'css!assets/css/videoosd';
|
||||
updatePlayPauseState(playState.IsPaused);
|
||||
const supportedCommands = playbackManager.getSupportedCommands(player);
|
||||
currentPlayerSupportedCommands = supportedCommands;
|
||||
supportsBrightnessChange = -1 !== supportedCommands.indexOf('SetBrightness');
|
||||
supportsBrightnessChange = supportedCommands.indexOf('SetBrightness') !== -1;
|
||||
updatePlayerVolumeState(player, playState.IsMuted, playState.VolumeLevel);
|
||||
|
||||
if (nowPlayingPositionSlider && !nowPlayingPositionSlider.dragging) {
|
||||
@ -795,13 +795,13 @@ import 'css!assets/css/videoosd';
|
||||
updateTimeDisplay(playState.PositionTicks, nowPlayingItem.RunTimeTicks, playState.PlaybackStartTimeTicks, playState.BufferedRanges || []);
|
||||
updateNowPlayingInfo(player, state);
|
||||
|
||||
if (state.MediaSource && state.MediaSource.SupportsTranscoding && -1 !== supportedCommands.indexOf('SetMaxStreamingBitrate')) {
|
||||
if (state.MediaSource && state.MediaSource.SupportsTranscoding && supportedCommands.indexOf('SetMaxStreamingBitrate') !== -1) {
|
||||
view.querySelector('.btnVideoOsdSettings').classList.remove('hide');
|
||||
} else {
|
||||
view.querySelector('.btnVideoOsdSettings').classList.add('hide');
|
||||
}
|
||||
|
||||
const isProgressClear = state.MediaSource && null == state.MediaSource.RunTimeTicks;
|
||||
const isProgressClear = state.MediaSource && state.MediaSource.RunTimeTicks == null;
|
||||
nowPlayingPositionSlider.setIsClear(isProgressClear);
|
||||
|
||||
if (nowPlayingItem.RunTimeTicks) {
|
||||
@ -809,19 +809,19 @@ import 'css!assets/css/videoosd';
|
||||
userSettings.skipForwardLength() * 1000000 / nowPlayingItem.RunTimeTicks);
|
||||
}
|
||||
|
||||
if (-1 === supportedCommands.indexOf('ToggleFullscreen') || player.isLocalPlayer && layoutManager.tv && playbackManager.isFullscreen(player)) {
|
||||
if (supportedCommands.indexOf('ToggleFullscreen') === -1 || player.isLocalPlayer && layoutManager.tv && playbackManager.isFullscreen(player)) {
|
||||
view.querySelector('.btnFullscreen').classList.add('hide');
|
||||
} else {
|
||||
view.querySelector('.btnFullscreen').classList.remove('hide');
|
||||
}
|
||||
|
||||
if (-1 === supportedCommands.indexOf('PictureInPicture')) {
|
||||
if (supportedCommands.indexOf('PictureInPicture') === -1) {
|
||||
view.querySelector('.btnPip').classList.add('hide');
|
||||
} else {
|
||||
view.querySelector('.btnPip').classList.remove('hide');
|
||||
}
|
||||
|
||||
if (-1 === supportedCommands.indexOf('AirPlay')) {
|
||||
if (supportedCommands.indexOf('AirPlay') === -1) {
|
||||
view.querySelector('.btnAirPlay').classList.add('hide');
|
||||
} else {
|
||||
view.querySelector('.btnAirPlay').classList.remove('hide');
|
||||
@ -869,7 +869,7 @@ import 'css!assets/css/videoosd';
|
||||
nowPlayingPositionSlider.value = 0;
|
||||
}
|
||||
|
||||
if (runtimeTicks && null != positionTicks && currentRuntimeTicks && !enableProgressByTimeOfDay && currentItem.RunTimeTicks && 'Recording' !== currentItem.Type) {
|
||||
if (runtimeTicks && positionTicks != null && currentRuntimeTicks && !enableProgressByTimeOfDay && currentItem.RunTimeTicks && currentItem.Type !== 'Recording') {
|
||||
endsAtText.innerHTML = ' - ' + mediaInfo.getEndsAtFromPosition(runtimeTicks, positionTicks, true);
|
||||
} else {
|
||||
endsAtText.innerHTML = '';
|
||||
@ -890,11 +890,11 @@ import 'css!assets/css/videoosd';
|
||||
let showMuteButton = true;
|
||||
let showVolumeSlider = true;
|
||||
|
||||
if (-1 === supportedCommands.indexOf('Mute')) {
|
||||
if (supportedCommands.indexOf('Mute') === -1) {
|
||||
showMuteButton = false;
|
||||
}
|
||||
|
||||
if (-1 === supportedCommands.indexOf('SetVolume')) {
|
||||
if (supportedCommands.indexOf('SetVolume') === -1) {
|
||||
showVolumeSlider = false;
|
||||
}
|
||||
|
||||
@ -945,7 +945,7 @@ import 'css!assets/css/videoosd';
|
||||
}
|
||||
|
||||
function updateTimeText(elem, ticks, divider) {
|
||||
if (null == ticks) {
|
||||
if (ticks == null) {
|
||||
elem.innerHTML = '';
|
||||
return;
|
||||
}
|
||||
@ -987,9 +987,9 @@ import 'css!assets/css/videoosd';
|
||||
}
|
||||
|
||||
function onSettingsOption(selectedOption) {
|
||||
if ('stats' === selectedOption) {
|
||||
if (selectedOption === 'stats') {
|
||||
toggleStats();
|
||||
} else if ('suboffset' === selectedOption) {
|
||||
} else if (selectedOption === 'suboffset') {
|
||||
const player = currentPlayer;
|
||||
if (player) {
|
||||
playbackManager.enableShowingSubtitleOffset(player);
|
||||
@ -1063,7 +1063,7 @@ import 'css!assets/css/videoosd';
|
||||
const streams = playbackManager.subtitleTracks(player);
|
||||
let currentIndex = playbackManager.getSubtitleStreamIndex(player);
|
||||
|
||||
if (null == currentIndex) {
|
||||
if (currentIndex == null) {
|
||||
currentIndex = -1;
|
||||
}
|
||||
|
||||
@ -1134,9 +1134,9 @@ import 'css!assets/css/videoosd';
|
||||
clickedElement = e.target;
|
||||
|
||||
const key = keyboardnavigation.getKeyName(e);
|
||||
const isKeyModified = e.ctrlKey || e.altKey;
|
||||
const isKeyModified = e.ctrlKey || e.altKey || e.metaKey;
|
||||
|
||||
if (!currentVisibleMenu && 32 === e.keyCode) {
|
||||
if (!currentVisibleMenu && e.keyCode === 32) {
|
||||
playbackManager.playPause(currentPlayer);
|
||||
showOsd();
|
||||
return;
|
||||
|
@ -3,21 +3,21 @@ import globalize from 'globalize';
|
||||
/* eslint-disable indent */
|
||||
|
||||
function processForgotPasswordResult(result) {
|
||||
if ('ContactAdmin' == result.Action) {
|
||||
if (result.Action == 'ContactAdmin') {
|
||||
return void Dashboard.alert({
|
||||
message: globalize.translate('MessageContactAdminToResetPassword'),
|
||||
title: globalize.translate('HeaderForgotPassword')
|
||||
});
|
||||
}
|
||||
|
||||
if ('InNetworkRequired' == result.Action) {
|
||||
if (result.Action == 'InNetworkRequired') {
|
||||
return void Dashboard.alert({
|
||||
message: globalize.translate('MessageForgotPasswordInNetworkRequired'),
|
||||
title: globalize.translate('HeaderForgotPassword')
|
||||
});
|
||||
}
|
||||
|
||||
if ('PinCode' == result.Action) {
|
||||
if (result.Action == 'PinCode') {
|
||||
let msg = globalize.translate('MessageForgotPasswordFileCreated');
|
||||
msg += '<br/>';
|
||||
msg += '<br/>';
|
||||
|
@ -58,7 +58,7 @@ import 'emby-itemscontainer';
|
||||
const viewStyle = self.getCurrentViewStyle();
|
||||
const itemsContainer = tabContent.querySelector('.itemsContainer');
|
||||
|
||||
if ('List' == viewStyle) {
|
||||
if (viewStyle == 'List') {
|
||||
itemsContainer.classList.add('vertical-list');
|
||||
itemsContainer.classList.remove('vertical-wrap');
|
||||
} else {
|
||||
|
@ -62,13 +62,13 @@ import 'emby-button';
|
||||
const elem = entry.target;
|
||||
const id = elem.getAttribute('data-id');
|
||||
const viewStyle = self.getCurrentViewStyle();
|
||||
let limit = 'Thumb' == viewStyle || 'ThumbCard' == viewStyle ? 5 : 9;
|
||||
let limit = viewStyle == 'Thumb' || viewStyle == 'ThumbCard' ? 5 : 9;
|
||||
|
||||
if (enableScrollX()) {
|
||||
limit = 10;
|
||||
}
|
||||
|
||||
const enableImageTypes = 'Thumb' == viewStyle || 'ThumbCard' == viewStyle ? 'Primary,Backdrop,Thumb' : 'Primary';
|
||||
const enableImageTypes = viewStyle == 'Thumb' || viewStyle == 'ThumbCard' ? 'Primary,Backdrop,Thumb' : 'Primary';
|
||||
const query = {
|
||||
SortBy: 'SortName',
|
||||
SortOrder: 'Ascending',
|
||||
|
@ -58,7 +58,7 @@ import 'emby-itemscontainer';
|
||||
const viewStyle = self.getCurrentViewStyle();
|
||||
const itemsContainer = tabContent.querySelector('.itemsContainer');
|
||||
|
||||
if ('List' == viewStyle) {
|
||||
if (viewStyle == 'List') {
|
||||
itemsContainer.classList.add('vertical-list');
|
||||
itemsContainer.classList.remove('vertical-wrap');
|
||||
} else {
|
||||
|
@ -222,7 +222,7 @@ export class BookPlayer {
|
||||
return new Promise((resolve, reject) => {
|
||||
import('epubjs').then(({default: epubjs}) => {
|
||||
let downloadHref = apiClient.getItemDownloadUrl(item.Id);
|
||||
let book = epubjs.default(downloadHref, {openAs: 'epub'});
|
||||
let book = epubjs(downloadHref, {openAs: 'epub'});
|
||||
let rendition = book.renderTo(elem, {width: '100%', height: '97%'});
|
||||
|
||||
this._currentSrc = downloadHref;
|
||||
|
@ -54,7 +54,7 @@ define(['appSettings', 'userSettings', 'playbackManager', 'connectionManager', '
|
||||
// production version registered with google
|
||||
// replace this value if you want to test changes on another instance
|
||||
var applicationStable = 'F007D354';
|
||||
var applicationNightly = '6F511C87';
|
||||
var applicationUnstable = '6F511C87';
|
||||
|
||||
var messageNamespace = 'urn:x-cast:com.connectsdk';
|
||||
|
||||
@ -99,8 +99,8 @@ define(['appSettings', 'userSettings', 'playbackManager', 'connectionManager', '
|
||||
}
|
||||
|
||||
var applicationID = applicationStable;
|
||||
if (userSettings.chromecastVersion() === 'nightly') {
|
||||
applicationID = applicationNightly;
|
||||
if (userSettings.chromecastVersion() === 'unstable') {
|
||||
applicationID = applicationUnstable;
|
||||
}
|
||||
|
||||
// request session
|
||||
|
@ -1663,7 +1663,7 @@ function tryRemoveElement(elem) {
|
||||
setAspectRatio(val) {
|
||||
const mediaElement = this.#mediaElement;
|
||||
if (mediaElement) {
|
||||
if ('auto' === val) {
|
||||
if (val === 'auto') {
|
||||
mediaElement.style.removeProperty('object-fit');
|
||||
} else {
|
||||
mediaElement.style['object-fit'] = val;
|
||||
|
@ -1,260 +1,256 @@
|
||||
define([], function () {
|
||||
'use strict';
|
||||
function isTv() {
|
||||
// This is going to be really difficult to get right
|
||||
const userAgent = navigator.userAgent.toLowerCase();
|
||||
|
||||
function isTv() {
|
||||
// This is going to be really difficult to get right
|
||||
var userAgent = navigator.userAgent.toLowerCase();
|
||||
|
||||
if (userAgent.indexOf('tv') !== -1) {
|
||||
return true;
|
||||
}
|
||||
|
||||
if (userAgent.indexOf('samsungbrowser') !== -1) {
|
||||
return true;
|
||||
}
|
||||
|
||||
if (userAgent.indexOf('viera') !== -1) {
|
||||
return true;
|
||||
}
|
||||
|
||||
if (userAgent.indexOf('web0s') !== -1) {
|
||||
return true;
|
||||
}
|
||||
|
||||
return false;
|
||||
if (userAgent.indexOf('tv') !== -1) {
|
||||
return true;
|
||||
}
|
||||
|
||||
function isMobile(userAgent) {
|
||||
var terms = [
|
||||
'mobi',
|
||||
'ipad',
|
||||
'iphone',
|
||||
'ipod',
|
||||
'silk',
|
||||
'gt-p1000',
|
||||
'nexus 7',
|
||||
'kindle fire',
|
||||
'opera mini'
|
||||
];
|
||||
|
||||
var lower = userAgent.toLowerCase();
|
||||
|
||||
for (var i = 0, length = terms.length; i < length; i++) {
|
||||
if (lower.indexOf(terms[i]) !== -1) {
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
||||
return false;
|
||||
if (userAgent.indexOf('samsungbrowser') !== -1) {
|
||||
return true;
|
||||
}
|
||||
|
||||
function hasKeyboard(browser) {
|
||||
if (browser.touch) {
|
||||
return true;
|
||||
}
|
||||
|
||||
if (browser.xboxOne) {
|
||||
return true;
|
||||
}
|
||||
|
||||
if (browser.ps4) {
|
||||
return true;
|
||||
}
|
||||
|
||||
if (browser.edgeUwp) {
|
||||
// This is OK for now, but this won't always be true
|
||||
// Should we use this?
|
||||
// https://gist.github.com/wagonli/40d8a31bd0d6f0dd7a5d
|
||||
return true;
|
||||
}
|
||||
|
||||
if (browser.tv) {
|
||||
return true;
|
||||
}
|
||||
|
||||
return false;
|
||||
if (userAgent.indexOf('viera') !== -1) {
|
||||
return true;
|
||||
}
|
||||
|
||||
function iOSversion() {
|
||||
// MacIntel: Apple iPad Pro 11 iOS 13.1
|
||||
if (/iP(hone|od|ad)|MacIntel/.test(navigator.platform)) {
|
||||
// supports iOS 2.0 and later: <http://bit.ly/TJjs1V>
|
||||
var v = (navigator.appVersion).match(/OS (\d+)_(\d+)_?(\d+)?/);
|
||||
return [parseInt(v[1], 10), parseInt(v[2], 10), parseInt(v[3] || 0, 10)];
|
||||
if (userAgent.indexOf('web0s') !== -1) {
|
||||
return true;
|
||||
}
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
function isMobile(userAgent) {
|
||||
const terms = [
|
||||
'mobi',
|
||||
'ipad',
|
||||
'iphone',
|
||||
'ipod',
|
||||
'silk',
|
||||
'gt-p1000',
|
||||
'nexus 7',
|
||||
'kindle fire',
|
||||
'opera mini'
|
||||
];
|
||||
|
||||
const lower = userAgent.toLowerCase();
|
||||
|
||||
for (let i = 0, length = terms.length; i < length; i++) {
|
||||
if (lower.indexOf(terms[i]) !== -1) {
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
||||
var _supportsCssAnimation;
|
||||
var _supportsCssAnimationWithPrefix;
|
||||
function supportsCssAnimation(allowPrefix) {
|
||||
// TODO: Assess if this is still needed, as all of our targets should natively support CSS animations.
|
||||
if (allowPrefix) {
|
||||
if (_supportsCssAnimationWithPrefix === true || _supportsCssAnimationWithPrefix === false) {
|
||||
return _supportsCssAnimationWithPrefix;
|
||||
}
|
||||
} else {
|
||||
if (_supportsCssAnimation === true || _supportsCssAnimation === false) {
|
||||
return _supportsCssAnimation;
|
||||
}
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
var animation = false;
|
||||
var domPrefixes = ['Webkit', 'O', 'Moz'];
|
||||
var elm = document.createElement('div');
|
||||
function hasKeyboard(browser) {
|
||||
if (browser.touch) {
|
||||
return true;
|
||||
}
|
||||
|
||||
if (elm.style.animationName !== undefined) {
|
||||
animation = true;
|
||||
}
|
||||
if (browser.xboxOne) {
|
||||
return true;
|
||||
}
|
||||
|
||||
if (animation === false && allowPrefix) {
|
||||
for (var i = 0; i < domPrefixes.length; i++) {
|
||||
if (elm.style[domPrefixes[i] + 'AnimationName'] !== undefined) {
|
||||
animation = true;
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
if (browser.ps4) {
|
||||
return true;
|
||||
}
|
||||
|
||||
if (allowPrefix) {
|
||||
_supportsCssAnimationWithPrefix = animation;
|
||||
if (browser.edgeUwp) {
|
||||
// This is OK for now, but this won't always be true
|
||||
// Should we use this?
|
||||
// https://gist.github.com/wagonli/40d8a31bd0d6f0dd7a5d
|
||||
return true;
|
||||
}
|
||||
|
||||
if (browser.tv) {
|
||||
return true;
|
||||
}
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
function iOSversion() {
|
||||
// MacIntel: Apple iPad Pro 11 iOS 13.1
|
||||
if (/iP(hone|od|ad)|MacIntel/.test(navigator.platform)) {
|
||||
// supports iOS 2.0 and later: <http://bit.ly/TJjs1V>
|
||||
const v = (navigator.appVersion).match(/OS (\d+)_(\d+)_?(\d+)?/);
|
||||
return [parseInt(v[1], 10), parseInt(v[2], 10), parseInt(v[3] || 0, 10)];
|
||||
}
|
||||
}
|
||||
|
||||
let _supportsCssAnimation;
|
||||
let _supportsCssAnimationWithPrefix;
|
||||
function supportsCssAnimation(allowPrefix) {
|
||||
// TODO: Assess if this is still needed, as all of our targets should natively support CSS animations.
|
||||
if (allowPrefix) {
|
||||
if (_supportsCssAnimationWithPrefix === true || _supportsCssAnimationWithPrefix === false) {
|
||||
return _supportsCssAnimationWithPrefix;
|
||||
} else {
|
||||
_supportsCssAnimation = animation;
|
||||
}
|
||||
} else {
|
||||
if (_supportsCssAnimation === true || _supportsCssAnimation === false) {
|
||||
return _supportsCssAnimation;
|
||||
}
|
||||
}
|
||||
|
||||
var uaMatch = function (ua) {
|
||||
ua = ua.toLowerCase();
|
||||
let animation = false;
|
||||
const domPrefixes = ['Webkit', 'O', 'Moz'];
|
||||
const elm = document.createElement('div');
|
||||
|
||||
var match = /(edg)[ \/]([\w.]+)/.exec(ua) ||
|
||||
/(edga)[ \/]([\w.]+)/.exec(ua) ||
|
||||
/(edgios)[ \/]([\w.]+)/.exec(ua) ||
|
||||
/(edge)[ \/]([\w.]+)/.exec(ua) ||
|
||||
/(opera)[ \/]([\w.]+)/.exec(ua) ||
|
||||
/(opr)[ \/]([\w.]+)/.exec(ua) ||
|
||||
/(chrome)[ \/]([\w.]+)/.exec(ua) ||
|
||||
/(safari)[ \/]([\w.]+)/.exec(ua) ||
|
||||
/(firefox)[ \/]([\w.]+)/.exec(ua) ||
|
||||
ua.indexOf('compatible') < 0 && /(mozilla)(?:.*? rv:([\w.]+)|)/.exec(ua) ||
|
||||
[];
|
||||
if (elm.style.animationName !== undefined) {
|
||||
animation = true;
|
||||
}
|
||||
|
||||
var versionMatch = /(version)[ \/]([\w.]+)/.exec(ua);
|
||||
|
||||
var platform_match = /(ipad)/.exec(ua) ||
|
||||
/(iphone)/.exec(ua) ||
|
||||
/(windows)/.exec(ua) ||
|
||||
/(android)/.exec(ua) ||
|
||||
[];
|
||||
|
||||
var browser = match[1] || '';
|
||||
|
||||
if (browser === 'edge') {
|
||||
platform_match = [''];
|
||||
if (animation === false && allowPrefix) {
|
||||
for (let i = 0; i < domPrefixes.length; i++) {
|
||||
if (elm.style[domPrefixes[i] + 'AnimationName'] !== undefined) {
|
||||
animation = true;
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
if (browser === 'opr') {
|
||||
browser = 'opera';
|
||||
}
|
||||
|
||||
var version;
|
||||
if (versionMatch && versionMatch.length > 2) {
|
||||
version = versionMatch[2];
|
||||
}
|
||||
|
||||
version = version || match[2] || '0';
|
||||
|
||||
var versionMajor = parseInt(version.split('.')[0]);
|
||||
|
||||
if (isNaN(versionMajor)) {
|
||||
versionMajor = 0;
|
||||
}
|
||||
|
||||
return {
|
||||
browser: browser,
|
||||
version: version,
|
||||
platform: platform_match[0] || '',
|
||||
versionMajor: versionMajor
|
||||
};
|
||||
};
|
||||
|
||||
var userAgent = navigator.userAgent;
|
||||
|
||||
var matched = uaMatch(userAgent);
|
||||
var browser = {};
|
||||
|
||||
if (matched.browser) {
|
||||
browser[matched.browser] = true;
|
||||
browser.version = matched.version;
|
||||
browser.versionMajor = matched.versionMajor;
|
||||
}
|
||||
|
||||
if (matched.platform) {
|
||||
browser[matched.platform] = true;
|
||||
}
|
||||
|
||||
browser.edgeChromium = browser.edg || browser.edga || browser.edgios;
|
||||
|
||||
if (!browser.chrome && !browser.edgeChromium && !browser.edge && !browser.opera && userAgent.toLowerCase().indexOf('webkit') !== -1) {
|
||||
browser.safari = true;
|
||||
}
|
||||
|
||||
if (userAgent.toLowerCase().indexOf('playstation 4') !== -1) {
|
||||
browser.ps4 = true;
|
||||
browser.tv = true;
|
||||
}
|
||||
|
||||
if (isMobile(userAgent)) {
|
||||
browser.mobile = true;
|
||||
}
|
||||
|
||||
if (userAgent.toLowerCase().indexOf('xbox') !== -1) {
|
||||
browser.xboxOne = true;
|
||||
browser.tv = true;
|
||||
}
|
||||
browser.animate = typeof document !== 'undefined' && document.documentElement.animate != null;
|
||||
browser.tizen = userAgent.toLowerCase().indexOf('tizen') !== -1 || self.tizen != null;
|
||||
browser.web0s = userAgent.toLowerCase().indexOf('Web0S'.toLowerCase()) !== -1;
|
||||
browser.edgeUwp = browser.edge && (userAgent.toLowerCase().indexOf('msapphost') !== -1 || userAgent.toLowerCase().indexOf('webview') !== -1);
|
||||
|
||||
if (!browser.tizen) {
|
||||
browser.orsay = userAgent.toLowerCase().indexOf('smarthub') !== -1;
|
||||
if (allowPrefix) {
|
||||
_supportsCssAnimationWithPrefix = animation;
|
||||
return _supportsCssAnimationWithPrefix;
|
||||
} else {
|
||||
var v = (navigator.appVersion).match(/Tizen (\d+).(\d+)/);
|
||||
browser.tizenVersion = parseInt(v[1]);
|
||||
_supportsCssAnimation = animation;
|
||||
return _supportsCssAnimation;
|
||||
}
|
||||
}
|
||||
|
||||
const uaMatch = function (ua) {
|
||||
ua = ua.toLowerCase();
|
||||
|
||||
const match = /(edg)[ \/]([\w.]+)/.exec(ua) ||
|
||||
/(edga)[ \/]([\w.]+)/.exec(ua) ||
|
||||
/(edgios)[ \/]([\w.]+)/.exec(ua) ||
|
||||
/(edge)[ \/]([\w.]+)/.exec(ua) ||
|
||||
/(opera)[ \/]([\w.]+)/.exec(ua) ||
|
||||
/(opr)[ \/]([\w.]+)/.exec(ua) ||
|
||||
/(chrome)[ \/]([\w.]+)/.exec(ua) ||
|
||||
/(safari)[ \/]([\w.]+)/.exec(ua) ||
|
||||
/(firefox)[ \/]([\w.]+)/.exec(ua) ||
|
||||
ua.indexOf('compatible') < 0 && /(mozilla)(?:.*? rv:([\w.]+)|)/.exec(ua) ||
|
||||
[];
|
||||
|
||||
const versionMatch = /(version)[ \/]([\w.]+)/.exec(ua);
|
||||
|
||||
let platform_match = /(ipad)/.exec(ua) ||
|
||||
/(iphone)/.exec(ua) ||
|
||||
/(windows)/.exec(ua) ||
|
||||
/(android)/.exec(ua) ||
|
||||
[];
|
||||
|
||||
let browser = match[1] || '';
|
||||
|
||||
if (browser === 'edge') {
|
||||
platform_match = [''];
|
||||
}
|
||||
|
||||
if (browser.edgeUwp) {
|
||||
browser.edge = true;
|
||||
if (browser === 'opr') {
|
||||
browser = 'opera';
|
||||
}
|
||||
|
||||
browser.tv = isTv();
|
||||
browser.operaTv = browser.tv && userAgent.toLowerCase().indexOf('opr/') !== -1;
|
||||
|
||||
if (browser.mobile || browser.tv) {
|
||||
browser.slow = true;
|
||||
let version;
|
||||
if (versionMatch && versionMatch.length > 2) {
|
||||
version = versionMatch[2];
|
||||
}
|
||||
|
||||
if (typeof document !== 'undefined') {
|
||||
/* eslint-disable-next-line compat/compat */
|
||||
if (('ontouchstart' in window) || (navigator.maxTouchPoints > 0)) {
|
||||
browser.touch = true;
|
||||
}
|
||||
version = version || match[2] || '0';
|
||||
|
||||
let versionMajor = parseInt(version.split('.')[0]);
|
||||
|
||||
if (isNaN(versionMajor)) {
|
||||
versionMajor = 0;
|
||||
}
|
||||
|
||||
browser.keyboard = hasKeyboard(browser);
|
||||
browser.supportsCssAnimation = supportsCssAnimation;
|
||||
return {
|
||||
browser: browser,
|
||||
version: version,
|
||||
platform: platform_match[0] || '',
|
||||
versionMajor: versionMajor
|
||||
};
|
||||
};
|
||||
|
||||
browser.osx = userAgent.toLowerCase().indexOf('os x') !== -1;
|
||||
browser.iOS = browser.ipad || browser.iphone || browser.ipod;
|
||||
const userAgent = navigator.userAgent;
|
||||
|
||||
if (browser.iOS) {
|
||||
browser.iOSVersion = iOSversion();
|
||||
const matched = uaMatch(userAgent);
|
||||
const browser = {};
|
||||
|
||||
if (browser.iOSVersion && browser.iOSVersion.length >= 2) {
|
||||
browser.iOSVersion = browser.iOSVersion[0] + (browser.iOSVersion[1] / 10);
|
||||
}
|
||||
if (matched.browser) {
|
||||
browser[matched.browser] = true;
|
||||
browser.version = matched.version;
|
||||
browser.versionMajor = matched.versionMajor;
|
||||
}
|
||||
|
||||
if (matched.platform) {
|
||||
browser[matched.platform] = true;
|
||||
}
|
||||
|
||||
browser.edgeChromium = browser.edg || browser.edga || browser.edgios;
|
||||
|
||||
if (!browser.chrome && !browser.edgeChromium && !browser.edge && !browser.opera && userAgent.toLowerCase().indexOf('webkit') !== -1) {
|
||||
browser.safari = true;
|
||||
}
|
||||
|
||||
if (userAgent.toLowerCase().indexOf('playstation 4') !== -1) {
|
||||
browser.ps4 = true;
|
||||
browser.tv = true;
|
||||
}
|
||||
|
||||
if (isMobile(userAgent)) {
|
||||
browser.mobile = true;
|
||||
}
|
||||
|
||||
if (userAgent.toLowerCase().indexOf('xbox') !== -1) {
|
||||
browser.xboxOne = true;
|
||||
browser.tv = true;
|
||||
}
|
||||
browser.animate = typeof document !== 'undefined' && document.documentElement.animate != null;
|
||||
browser.tizen = userAgent.toLowerCase().indexOf('tizen') !== -1 || self.tizen != null;
|
||||
browser.web0s = userAgent.toLowerCase().indexOf('Web0S'.toLowerCase()) !== -1;
|
||||
browser.edgeUwp = browser.edge && (userAgent.toLowerCase().indexOf('msapphost') !== -1 || userAgent.toLowerCase().indexOf('webview') !== -1);
|
||||
|
||||
if (!browser.tizen) {
|
||||
browser.orsay = userAgent.toLowerCase().indexOf('smarthub') !== -1;
|
||||
} else {
|
||||
const v = (navigator.appVersion).match(/Tizen (\d+).(\d+)/);
|
||||
browser.tizenVersion = parseInt(v[1]);
|
||||
}
|
||||
|
||||
if (browser.edgeUwp) {
|
||||
browser.edge = true;
|
||||
}
|
||||
|
||||
browser.tv = isTv();
|
||||
browser.operaTv = browser.tv && userAgent.toLowerCase().indexOf('opr/') !== -1;
|
||||
|
||||
if (browser.mobile || browser.tv) {
|
||||
browser.slow = true;
|
||||
}
|
||||
|
||||
if (typeof document !== 'undefined') {
|
||||
/* eslint-disable-next-line compat/compat */
|
||||
if (('ontouchstart' in window) || (navigator.maxTouchPoints > 0)) {
|
||||
browser.touch = true;
|
||||
}
|
||||
}
|
||||
|
||||
return browser;
|
||||
});
|
||||
browser.keyboard = hasKeyboard(browser);
|
||||
browser.supportsCssAnimation = supportsCssAnimation;
|
||||
|
||||
browser.osx = userAgent.toLowerCase().indexOf('os x') !== -1;
|
||||
browser.iOS = browser.ipad || browser.iphone || browser.ipod;
|
||||
|
||||
if (browser.iOS) {
|
||||
browser.iOSVersion = iOSversion();
|
||||
|
||||
if (browser.iOSVersion && browser.iOSVersion.length >= 2) {
|
||||
browser.iOSVersion = browser.iOSVersion[0] + (browser.iOSVersion[1] / 10);
|
||||
}
|
||||
}
|
||||
|
||||
export default browser;
|
||||
|
@ -11,7 +11,7 @@ define(['connectionManager', 'listView', 'cardBuilder', 'imageLoader', 'libraryB
|
||||
});
|
||||
}
|
||||
|
||||
if (item.ProgramCount && 'Person' == item.Type) {
|
||||
if (item.ProgramCount && item.Type == 'Person') {
|
||||
sections.push({
|
||||
name: globalize.translate('HeaderUpcomingOnTV'),
|
||||
type: 'Program'
|
||||
@ -65,7 +65,7 @@ define(['connectionManager', 'listView', 'cardBuilder', 'imageLoader', 'libraryB
|
||||
var html = '';
|
||||
var sectionClass = 'verticalSection';
|
||||
|
||||
if ('Audio' === section.type) {
|
||||
if (section.type === 'Audio') {
|
||||
sectionClass += ' verticalSection-extrabottompadding';
|
||||
}
|
||||
|
||||
@ -272,7 +272,7 @@ define(['connectionManager', 'listView', 'cardBuilder', 'imageLoader', 'libraryB
|
||||
listOptions.items = result.Items;
|
||||
var itemsContainer = element.querySelector('.itemsContainer');
|
||||
|
||||
if ('Audio' == type) {
|
||||
if (type == 'Audio') {
|
||||
html = listView.getListViewHtml(listOptions);
|
||||
itemsContainer.classList.remove('vertical-wrap');
|
||||
itemsContainer.classList.add('vertical-list');
|
||||
@ -288,23 +288,23 @@ define(['connectionManager', 'listView', 'cardBuilder', 'imageLoader', 'libraryB
|
||||
}
|
||||
|
||||
function getMoreItemsHref(item, type) {
|
||||
if ('Genre' == item.Type) {
|
||||
if (item.Type == 'Genre') {
|
||||
return 'list.html?type=' + type + '&genreId=' + item.Id + '&serverId=' + item.ServerId;
|
||||
}
|
||||
|
||||
if ('MusicGenre' == item.Type) {
|
||||
if (item.Type == 'MusicGenre') {
|
||||
return 'list.html?type=' + type + '&musicGenreId=' + item.Id + '&serverId=' + item.ServerId;
|
||||
}
|
||||
|
||||
if ('Studio' == item.Type) {
|
||||
if (item.Type == 'Studio') {
|
||||
return 'list.html?type=' + type + '&studioId=' + item.Id + '&serverId=' + item.ServerId;
|
||||
}
|
||||
|
||||
if ('MusicArtist' == item.Type) {
|
||||
if (item.Type == 'MusicArtist') {
|
||||
return 'list.html?type=' + type + '&artistId=' + item.Id + '&serverId=' + item.ServerId;
|
||||
}
|
||||
|
||||
if ('Person' == item.Type) {
|
||||
if (item.Type == 'Person') {
|
||||
return 'list.html?type=' + type + '&personId=' + item.Id + '&serverId=' + item.ServerId;
|
||||
}
|
||||
|
||||
@ -354,7 +354,7 @@ define(['connectionManager', 'listView', 'cardBuilder', 'imageLoader', 'libraryB
|
||||
|
||||
var apiClient = connectionManager.getApiClient(item.ServerId);
|
||||
|
||||
if ('MusicArtist' === query.IncludeItemTypes) {
|
||||
if (query.IncludeItemTypes === 'MusicArtist') {
|
||||
query.IncludeItemTypes = null;
|
||||
return apiClient.getAlbumArtists(apiClient.getCurrentUserId(), query);
|
||||
}
|
||||
|
@ -178,9 +178,9 @@ export function showSortMenu (options) {
|
||||
html += globalize.translate('HeaderSortOrder');
|
||||
html += '</h2>';
|
||||
html += '<div>';
|
||||
isChecked = 'Ascending' == options.query.SortOrder ? ' checked' : '';
|
||||
isChecked = options.query.SortOrder == 'Ascending' ? ' checked' : '';
|
||||
html += '<label class="radio-label-block"><input type="radio" is="emby-radio" name="SortOrder" value="Ascending" class="menuSortOrder" ' + isChecked + ' /><span>' + globalize.translate('OptionAscending') + '</span></label>';
|
||||
isChecked = 'Descending' == options.query.SortOrder ? ' checked' : '';
|
||||
isChecked = options.query.SortOrder == 'Descending' ? ' checked' : '';
|
||||
html += '<label class="radio-label-block"><input type="radio" is="emby-radio" name="SortOrder" value="Descending" class="menuSortOrder" ' + isChecked + ' /><span>' + globalize.translate('OptionDescending') + '</span></label>';
|
||||
html += '</div>';
|
||||
html += '</div>';
|
||||
|
@ -309,7 +309,7 @@ define(['dom', 'layoutManager', 'inputManager', 'connectionManager', 'events', '
|
||||
}
|
||||
|
||||
function isUrlInCurrentView(url) {
|
||||
return -1 !== window.location.href.toString().toLowerCase().indexOf(url.toLowerCase());
|
||||
return window.location.href.toString().toLowerCase().indexOf(url.toLowerCase()) !== -1;
|
||||
}
|
||||
|
||||
function updateDashboardMenuSelectedItem() {
|
||||
@ -323,7 +323,7 @@ define(['dom', 'layoutManager', 'inputManager', 'connectionManager', 'events', '
|
||||
|
||||
if (pageIds) {
|
||||
pageIds = pageIds.split('|');
|
||||
selected = -1 != pageIds.indexOf(currentViewId);
|
||||
selected = pageIds.indexOf(currentViewId) != -1;
|
||||
}
|
||||
|
||||
var pageUrls = link.getAttribute('data-pageurls');
|
||||
@ -545,7 +545,7 @@ define(['dom', 'layoutManager', 'inputManager', 'connectionManager', 'events', '
|
||||
var view = items[i];
|
||||
list.push(view);
|
||||
|
||||
if ('livetv' == view.CollectionType) {
|
||||
if (view.CollectionType == 'livetv') {
|
||||
view.ImageTags = {};
|
||||
view.icon = 'live_tv';
|
||||
var guideView = Object.assign({}, view);
|
||||
@ -671,15 +671,15 @@ define(['dom', 'layoutManager', 'inputManager', 'connectionManager', 'events', '
|
||||
var lnkMediaFolder = elems[i];
|
||||
var itemId = lnkMediaFolder.getAttribute('data-itemid');
|
||||
|
||||
if (isChannelsPage && 'channels' === itemId) {
|
||||
if (isChannelsPage && itemId === 'channels') {
|
||||
lnkMediaFolder.classList.add('navMenuOption-selected');
|
||||
} else if (isLiveTvPage && 'livetv' === itemId) {
|
||||
} else if (isLiveTvPage && itemId === 'livetv') {
|
||||
lnkMediaFolder.classList.add('navMenuOption-selected');
|
||||
} else if (isEditorPage && 'editor' === itemId) {
|
||||
} else if (isEditorPage && itemId === 'editor') {
|
||||
lnkMediaFolder.classList.add('navMenuOption-selected');
|
||||
} else if (isMySyncPage && 'manageoffline' === itemId && -1 != window.location.href.toString().indexOf('mode=download')) {
|
||||
} else if (isMySyncPage && itemId === 'manageoffline' && window.location.href.toString().indexOf('mode=download') != -1) {
|
||||
lnkMediaFolder.classList.add('navMenuOption-selected');
|
||||
} else if (isMySyncPage && 'syncotherdevices' === itemId && -1 == window.location.href.toString().indexOf('mode=download')) {
|
||||
} else if (isMySyncPage && itemId === 'syncotherdevices' && window.location.href.toString().indexOf('mode=download') == -1) {
|
||||
lnkMediaFolder.classList.add('navMenuOption-selected');
|
||||
} else if (id && itemId == id) {
|
||||
lnkMediaFolder.classList.add('navMenuOption-selected');
|
||||
@ -753,7 +753,7 @@ define(['dom', 'layoutManager', 'inputManager', 'connectionManager', 'events', '
|
||||
}
|
||||
|
||||
if (headerBackButton) {
|
||||
if ('false' !== page.getAttribute('data-backbutton') && appRouter.canGoBack()) {
|
||||
if (page.getAttribute('data-backbutton') !== 'false' && appRouter.canGoBack()) {
|
||||
headerBackButton.classList.remove('hide');
|
||||
} else {
|
||||
headerBackButton.classList.add('hide');
|
||||
@ -863,11 +863,11 @@ define(['dom', 'layoutManager', 'inputManager', 'connectionManager', 'events', '
|
||||
document.title = 'Jellyfin';
|
||||
},
|
||||
setTitle: function (title) {
|
||||
if (null == title) {
|
||||
if (title == null) {
|
||||
return void LibraryMenu.setDefaultTitle();
|
||||
}
|
||||
|
||||
if ('-' === title) {
|
||||
if (title === '-') {
|
||||
title = '';
|
||||
}
|
||||
|
||||
@ -922,7 +922,7 @@ define(['dom', 'layoutManager', 'inputManager', 'connectionManager', 'events', '
|
||||
}
|
||||
}
|
||||
|
||||
if ('library' !== currentDrawerType) {
|
||||
if (currentDrawerType !== 'library') {
|
||||
refreshLibraryDrawer();
|
||||
}
|
||||
}
|
||||
|
@ -60,7 +60,7 @@ export default function (view, params) {
|
||||
const viewStyle = getPageData(view).view;
|
||||
const itemsContainer = view.querySelector('.itemsContainer');
|
||||
|
||||
if ('List' == viewStyle) {
|
||||
if (viewStyle == 'List') {
|
||||
itemsContainer.classList.add('vertical-list');
|
||||
itemsContainer.classList.remove('vertical-wrap');
|
||||
} else {
|
||||
|
@ -6,7 +6,7 @@ function getWindowLocationSearch(win) {
|
||||
if (!search) {
|
||||
var index = window.location.href.indexOf('?');
|
||||
|
||||
if (-1 != index) {
|
||||
if (index != -1) {
|
||||
search = window.location.href.substring(index);
|
||||
}
|
||||
}
|
||||
@ -22,7 +22,7 @@ window.getParameterByName = function (name, url) {
|
||||
var regex = new RegExp(regexS, 'i');
|
||||
var results = regex.exec(url || getWindowLocationSearch());
|
||||
|
||||
if (null == results) {
|
||||
if (results == null) {
|
||||
return '';
|
||||
}
|
||||
|
||||
@ -73,7 +73,7 @@ var Dashboard = {
|
||||
var urlLower = window.location.href.toLowerCase();
|
||||
var index = urlLower.lastIndexOf('/web');
|
||||
|
||||
if (-1 != index) {
|
||||
if (index != -1) {
|
||||
return urlLower.substring(0, index);
|
||||
}
|
||||
|
||||
@ -178,7 +178,7 @@ var Dashboard = {
|
||||
});
|
||||
},
|
||||
alert: function (options) {
|
||||
if ('string' == typeof options) {
|
||||
if (typeof options == 'string') {
|
||||
return void require(['toast'], function (toast) {
|
||||
toast({
|
||||
text: options
|
||||
@ -197,7 +197,7 @@ var Dashboard = {
|
||||
var capabilities = {
|
||||
PlayableMediaTypes: ['Audio', 'Video'],
|
||||
SupportedCommands: ['MoveUp', 'MoveDown', 'MoveLeft', 'MoveRight', 'PageUp', 'PageDown', 'PreviousLetter', 'NextLetter', 'ToggleOsd', 'ToggleContextMenu', 'Select', 'Back', 'SendKey', 'SendString', 'GoHome', 'GoToSettings', 'VolumeUp', 'VolumeDown', 'Mute', 'Unmute', 'ToggleMute', 'SetVolume', 'SetAudioStreamIndex', 'SetSubtitleStreamIndex', 'DisplayContent', 'GoToSearch', 'DisplayMessage', 'SetRepeatMode', 'SetShuffleQueue', 'ChannelUp', 'ChannelDown', 'PlayMediaSource', 'PlayTrailers'],
|
||||
SupportsPersistentIdentifier: 'cordova' === self.appMode || 'android' === self.appMode,
|
||||
SupportsPersistentIdentifier: self.appMode === 'cordova' || self.appMode === 'android',
|
||||
SupportsMediaControl: true
|
||||
};
|
||||
appHost.getPushTokenInfo();
|
||||
@ -452,8 +452,8 @@ function initClient() {
|
||||
}
|
||||
|
||||
function onGlobalizeInit(browser, globalize) {
|
||||
if ('android' === self.appMode) {
|
||||
if (-1 !== self.location.href.toString().toLowerCase().indexOf('start=backgroundsync')) {
|
||||
if (self.appMode === 'android') {
|
||||
if (self.location.href.toString().toLowerCase().indexOf('start=backgroundsync') !== -1) {
|
||||
return onAppReady(browser);
|
||||
}
|
||||
}
|
||||
@ -863,7 +863,7 @@ function initClient() {
|
||||
});
|
||||
define('appRouter', [componentsPath + '/appRouter', 'itemHelper'], function (appRouter, itemHelper) {
|
||||
function showItem(item, serverId, options) {
|
||||
if ('string' == typeof item) {
|
||||
if (typeof item == 'string') {
|
||||
require(['connectionManager'], function (connectionManager) {
|
||||
var apiClient = connectionManager.currentApiClient();
|
||||
apiClient.getItem(apiClient.getCurrentUserId(), item).then(function (item) {
|
||||
@ -871,7 +871,7 @@ function initClient() {
|
||||
});
|
||||
});
|
||||
} else {
|
||||
if (2 == arguments.length) {
|
||||
if (arguments.length == 2) {
|
||||
options = arguments[1];
|
||||
}
|
||||
|
||||
@ -953,27 +953,27 @@ function initClient() {
|
||||
var itemType = item.Type || (options ? options.itemType : null);
|
||||
var serverId = item.ServerId || options.serverId;
|
||||
|
||||
if ('settings' === item) {
|
||||
if (item === 'settings') {
|
||||
return 'mypreferencesmenu.html';
|
||||
}
|
||||
|
||||
if ('wizard' === item) {
|
||||
if (item === 'wizard') {
|
||||
return 'wizardstart.html';
|
||||
}
|
||||
|
||||
if ('manageserver' === item) {
|
||||
if (item === 'manageserver') {
|
||||
return 'dashboard.html';
|
||||
}
|
||||
|
||||
if ('recordedtv' === item) {
|
||||
if (item === 'recordedtv') {
|
||||
return 'livetv.html?tab=3&serverId=' + options.serverId;
|
||||
}
|
||||
|
||||
if ('nextup' === item) {
|
||||
if (item === 'nextup') {
|
||||
return 'list.html?type=nextup&serverId=' + options.serverId;
|
||||
}
|
||||
|
||||
if ('list' === item) {
|
||||
if (item === 'list') {
|
||||
var url = 'list.html?serverId=' + options.serverId + '&type=' + options.itemTypes;
|
||||
|
||||
if (options.isFavorite) {
|
||||
@ -983,61 +983,61 @@ function initClient() {
|
||||
return url;
|
||||
}
|
||||
|
||||
if ('livetv' === item) {
|
||||
if ('programs' === options.section) {
|
||||
if (item === 'livetv') {
|
||||
if (options.section === 'programs') {
|
||||
return 'livetv.html?tab=0&serverId=' + options.serverId;
|
||||
}
|
||||
if ('guide' === options.section) {
|
||||
if (options.section === 'guide') {
|
||||
return 'livetv.html?tab=1&serverId=' + options.serverId;
|
||||
}
|
||||
|
||||
if ('movies' === options.section) {
|
||||
if (options.section === 'movies') {
|
||||
return 'list.html?type=Programs&IsMovie=true&serverId=' + options.serverId;
|
||||
}
|
||||
|
||||
if ('shows' === options.section) {
|
||||
if (options.section === 'shows') {
|
||||
return 'list.html?type=Programs&IsSeries=true&IsMovie=false&IsNews=false&serverId=' + options.serverId;
|
||||
}
|
||||
|
||||
if ('sports' === options.section) {
|
||||
if (options.section === 'sports') {
|
||||
return 'list.html?type=Programs&IsSports=true&serverId=' + options.serverId;
|
||||
}
|
||||
|
||||
if ('kids' === options.section) {
|
||||
if (options.section === 'kids') {
|
||||
return 'list.html?type=Programs&IsKids=true&serverId=' + options.serverId;
|
||||
}
|
||||
|
||||
if ('news' === options.section) {
|
||||
if (options.section === 'news') {
|
||||
return 'list.html?type=Programs&IsNews=true&serverId=' + options.serverId;
|
||||
}
|
||||
|
||||
if ('onnow' === options.section) {
|
||||
if (options.section === 'onnow') {
|
||||
return 'list.html?type=Programs&IsAiring=true&serverId=' + options.serverId;
|
||||
}
|
||||
|
||||
if ('dvrschedule' === options.section) {
|
||||
if (options.section === 'dvrschedule') {
|
||||
return 'livetv.html?tab=4&serverId=' + options.serverId;
|
||||
}
|
||||
|
||||
if ('seriesrecording' === options.section) {
|
||||
if (options.section === 'seriesrecording') {
|
||||
return 'livetv.html?tab=5&serverId=' + options.serverId;
|
||||
}
|
||||
|
||||
return 'livetv.html?serverId=' + options.serverId;
|
||||
}
|
||||
|
||||
if ('SeriesTimer' == itemType) {
|
||||
if (itemType == 'SeriesTimer') {
|
||||
return 'details?seriesTimerId=' + id + '&serverId=' + serverId;
|
||||
}
|
||||
|
||||
if ('livetv' == item.CollectionType) {
|
||||
if (item.CollectionType == 'livetv') {
|
||||
return 'livetv.html';
|
||||
}
|
||||
|
||||
if ('Genre' === item.Type) {
|
||||
if (item.Type === 'Genre') {
|
||||
url = 'list.html?genreId=' + item.Id + '&serverId=' + serverId;
|
||||
|
||||
if ('livetv' === context) {
|
||||
if (context === 'livetv') {
|
||||
url += '&type=Programs';
|
||||
}
|
||||
|
||||
@ -1048,7 +1048,7 @@ function initClient() {
|
||||
return url;
|
||||
}
|
||||
|
||||
if ('MusicGenre' === item.Type) {
|
||||
if (item.Type === 'MusicGenre') {
|
||||
url = 'list.html?musicGenreId=' + item.Id + '&serverId=' + serverId;
|
||||
|
||||
if (options.parentId) {
|
||||
@ -1058,7 +1058,7 @@ function initClient() {
|
||||
return url;
|
||||
}
|
||||
|
||||
if ('Studio' === item.Type) {
|
||||
if (item.Type === 'Studio') {
|
||||
url = 'list.html?studioId=' + item.Id + '&serverId=' + serverId;
|
||||
|
||||
if (options.parentId) {
|
||||
@ -1068,28 +1068,28 @@ function initClient() {
|
||||
return url;
|
||||
}
|
||||
|
||||
if ('folders' !== context && !itemHelper.isLocalItem(item)) {
|
||||
if ('movies' == item.CollectionType) {
|
||||
if (context !== 'folders' && !itemHelper.isLocalItem(item)) {
|
||||
if (item.CollectionType == 'movies') {
|
||||
url = 'movies.html?topParentId=' + item.Id;
|
||||
|
||||
if (options && 'latest' === options.section) {
|
||||
if (options && options.section === 'latest') {
|
||||
url += '&tab=1';
|
||||
}
|
||||
|
||||
return url;
|
||||
}
|
||||
|
||||
if ('tvshows' == item.CollectionType) {
|
||||
if (item.CollectionType == 'tvshows') {
|
||||
url = 'tv.html?topParentId=' + item.Id;
|
||||
|
||||
if (options && 'latest' === options.section) {
|
||||
if (options && options.section === 'latest') {
|
||||
url += '&tab=2';
|
||||
}
|
||||
|
||||
return url;
|
||||
}
|
||||
|
||||
if ('music' == item.CollectionType) {
|
||||
if (item.CollectionType == 'music') {
|
||||
return 'music.html?topParentId=' + item.Id;
|
||||
}
|
||||
}
|
||||
@ -1102,7 +1102,7 @@ function initClient() {
|
||||
|
||||
var contextSuffix = context ? '&context=' + context : '';
|
||||
|
||||
if ('Series' == itemType || 'Season' == itemType || 'Episode' == itemType) {
|
||||
if (itemType == 'Series' || itemType == 'Season' || itemType == 'Episode') {
|
||||
return 'details?id=' + id + contextSuffix + '&serverId=' + serverId;
|
||||
}
|
||||
|
||||
|
@ -13,7 +13,7 @@ pageClassOn('viewbeforeshow', 'page', function () {
|
||||
var theme;
|
||||
var context;
|
||||
|
||||
if ('a' === viewType) {
|
||||
if (viewType === 'a') {
|
||||
theme = userSettings.dashboardTheme();
|
||||
context = 'serverdashboard';
|
||||
} else {
|
||||
|
@ -83,7 +83,6 @@
|
||||
"Wednesday": "Woensdag",
|
||||
"Watched": "Gekyk",
|
||||
"ViewPlaybackInfo": "Beskou terugspeel inligting",
|
||||
"ViewArtist": "Beskou kunstenaar",
|
||||
"ViewAlbum": "Beskou album",
|
||||
"VideoRange": "Video reekse",
|
||||
"Vertical": "Vertikaal",
|
||||
|
@ -548,7 +548,6 @@
|
||||
"LabelVaapiDeviceHelp": "هذه هي عقدة التصيير التي ستستخدم من قبل التسريع بعتاد الحاسوب.",
|
||||
"LabelValue": "القيمة:",
|
||||
"LabelVersionInstalled": "{0} مثبتة",
|
||||
"LabelVersionNumber": "الإصدار {0}",
|
||||
"LabelXDlnaCap": "سقف X-Dlna:",
|
||||
"LabelXDlnaCapHelp": "تحدد محتوى عنصر X_DLNACAP في النطاق الاسمي لـ urn:schemas-dlna-org:device-1-0 .",
|
||||
"LabelXDlnaDoc": "وثيقة X-Dlna:",
|
||||
@ -599,7 +598,6 @@
|
||||
"MessageCreateAccountAt": "أنشئ حساب في {0}",
|
||||
"MessageDeleteTaskTrigger": "هل أنت متأكد أنك تريد حذف زناد المهمة؟",
|
||||
"MessageDirectoryPickerBSDInstruction": "من أجل BSD، يمكنك أن تضبط إعدادات التخزين دخال حساب FreeNAS Jail الخاص بك لكي يتمكن أمبي أن يتصل به.",
|
||||
"MessageDirectoryPickerInstruction": "يمكن إدخال مسارات الشبكة يدوياً في حال أن زر الشبكة يخفق في اكتشاف أجهزتك. على سبيل المثال، {0} أو {1}.",
|
||||
"MessageDirectoryPickerLinuxInstruction": "من أجل أنظمة التشغيل التالية: Linux أو Arch Linux أو CentOS أو Debian أو Fedora أو openSUSE أو Ubuntu، يجب أن تمنح المستخدم النظامي صلاحية القراءة ليتمكن من الوصول إلى أماكن التخزين.",
|
||||
"MessageEnablingOptionLongerScans": "قد يؤدي تمكين هذا الخيار إلى إبطاء البحث في المكتبات بشكل ملحوظ.",
|
||||
"MessageFileReadError": "حصل خطأ أثناء قراءة الملف. الرجاء المحاولة مرة اخرى.",
|
||||
|
@ -451,7 +451,6 @@
|
||||
"LabelUserLibrary": "Библиотека на потребителя:",
|
||||
"LabelUsername": "Потребителско име:",
|
||||
"LabelVersion": "Версия:",
|
||||
"LabelVersionNumber": "Версия {0}",
|
||||
"LabelYear": "Година:",
|
||||
"LabelYourFirstName": "Първото ви име:",
|
||||
"LabelYoureDone": "Готови сте!",
|
||||
@ -776,7 +775,6 @@
|
||||
"ValueVideoCodec": "Видеокодек: {0}",
|
||||
"Vertical": "Отвесно",
|
||||
"ViewAlbum": "Преглед на албума",
|
||||
"ViewArtist": "Преглед на изпълнителя",
|
||||
"Watched": "Изгледано",
|
||||
"Wednesday": "Сряда",
|
||||
"WelcomeToProject": "Добре дошли в Емби!",
|
||||
@ -1029,7 +1027,6 @@
|
||||
"HeaderSelectMetadataPathHelp": "Търси или въведи ръчно пътя ,където искаш да се съхраняват метаданните.Папката трябва да има права за запис.",
|
||||
"HeaderSelectMetadataPath": "Избери папка със метаданни",
|
||||
"HeaderSelectCertificatePath": "Избери папка със сертификат",
|
||||
"HeaderRestartingServer": "Рестартиране на сървъра",
|
||||
"HeaderResponseProfileHelp": "Профилите за комуникация дават възможност да се настрои типът информация ,която се изпраща към устройството при възпроизвеждането на определени типове медия.",
|
||||
"HeaderRemoveMediaLocation": "Премахни папката с медия",
|
||||
"HeaderRemoteAccessSettings": "Настройки за отдалечен достъп",
|
||||
@ -1254,8 +1251,6 @@
|
||||
"SmartSubtitlesHelp": "Когато аудиото е чуждоезично ще бъдат заредени субтитри според зададените настройки за език.",
|
||||
"ErrorAddingListingsToSchedulesDirect": "Възникна грешка при добавянето на списъка към вашия \"Schedules Direct\" акаунт.Услугата позволява определен брой списъци към един акаунт.Ще е необходимо да влезете в акаунта си (през сайта на услугата) и да отстраните другите списъци преди да продължите с добавянето на нови.",
|
||||
"LabelIdentificationFieldHelp": "Подниз или регулярен израз с различаване на главни букви.",
|
||||
"EnableFastImageFadeInHelp": "Използвай бързи анимации преходи",
|
||||
"EnableFastImageFadeIn": "Бързи анимации",
|
||||
"LabelScreensaver": "Скрийнсейвър:",
|
||||
"LabelScheduledTaskLastRan": "Последно пускан {0}, заел {1}.",
|
||||
"LabelRuntimeMinutes": "Продължителност (в минути):",
|
||||
@ -1419,7 +1414,6 @@
|
||||
"SaveSubtitlesIntoMediaFolders": "Запазване на субтитрите в папките с медията",
|
||||
"SaveChanges": "Запазете промените",
|
||||
"RunAtStartup": "Пускай при стартиране",
|
||||
"RestartPleaseWaitMessage": "Моля, изчакайте, докато сървъра се изключи и рестартира. Това може да отнеме минута или две.",
|
||||
"RepeatOne": "Повтори един път",
|
||||
"RepeatMode": "Режим на повторение",
|
||||
"RepeatEpisodes": "Повтори епизодите",
|
||||
|
@ -438,7 +438,6 @@
|
||||
"LabelUserLibrary": "Biblioteca d'usuari:",
|
||||
"LabelUsername": "Nom d'usuari:",
|
||||
"LabelValue": "Valor:",
|
||||
"LabelVersionNumber": "Versió {0}",
|
||||
"LabelYear": "Any:",
|
||||
"LabelYourFirstName": "El teu nom:",
|
||||
"LabelYoureDone": "Ja està!",
|
||||
@ -719,7 +718,6 @@
|
||||
"ValueOneMusicVideo": "1 vídeo musical",
|
||||
"ValueSpecialEpisodeName": "Especial - {0}",
|
||||
"ViewAlbum": "Veure àlbum",
|
||||
"ViewArtist": "Veure artista",
|
||||
"ViewPlaybackInfo": "Veure informació de reproducció",
|
||||
"Watched": "Vists",
|
||||
"Wednesday": "Dimecres",
|
||||
|
@ -110,11 +110,6 @@
|
||||
"CancelRecording": "Zrušit nahrávání",
|
||||
"CancelSeries": "Ukončit Seriál",
|
||||
"Categories": "Kategorie",
|
||||
"CategoryApplication": "Aplikace",
|
||||
"CategoryPlugin": "Zásuvný modul",
|
||||
"CategorySync": "Synchronizace",
|
||||
"CategorySystem": "Systém",
|
||||
"CategoryUser": "Uživatel",
|
||||
"ChannelAccessHelp": "Vyberte kanály, které chcete sdílet s tímto uživatelem. Administrátoři budou moci upravovat všechny kanály pomocí správce metadat.",
|
||||
"ChannelNameOnly": "Kanál {0} jen",
|
||||
"ChannelNumber": "Číslo kanálu",
|
||||
@ -162,10 +157,6 @@
|
||||
"DoNotRecord": "Nenahrávat",
|
||||
"Down": "Dolů",
|
||||
"Download": "Stáhnout",
|
||||
"Downloaded": "Staženo",
|
||||
"Downloading": "Stahování",
|
||||
"DownloadingDots": "Stahování...",
|
||||
"Downloads": "Stahování",
|
||||
"DrmChannelsNotImported": "Kanál s DRM nebude importován.",
|
||||
"DropShadow": "Stín",
|
||||
"EasyPasswordHelp": "Váš jednoduchý kód PIN slouží k přístupu v režimu offline v podporovaných klientech Jellyfin a k snadnému přihlášení v místní síti.",
|
||||
@ -195,7 +186,6 @@
|
||||
"ErrorDeletingItem": "Při odstranění položky ze serveru Jellyfin došlo k chybě. Zkontrolujte prosím, zda má server Jellyfin oprávnění k zápisu do složky médií, a zkuste to prosím znovu.",
|
||||
"ErrorGettingTvLineups": "Došlo k chybě při stahování TV sestav. Ujistěte se prosím, že zadané informace jsou správné a zkuste to znovu.",
|
||||
"ErrorMessageStartHourGreaterThanEnd": "Čas ukončení musí být větší než čas startu.",
|
||||
"ErrorMessageUsernameInUse": "Uživatelské jméno se již používá. Prosím, vyberte nový název a zkuste to znovu.",
|
||||
"ErrorPleaseSelectLineup": "Vyberte prosím sestavu a zkuste to znovu. Pokud nejsou k dispozici žádné sestavy, zkontrolujte, zda je vaše uživatelské jméno, heslo a poštovní směrovací číslo správné.",
|
||||
"ErrorSavingTvProvider": "Při ukládání poskytovatele TV došlo k chybě. Prosím, ujistěte se, že je přístupný a zkuste to znovu.",
|
||||
"ExitFullscreen": "Opustit celou obrazovku",
|
||||
@ -412,7 +402,6 @@
|
||||
"HeaderXmlDocumentAttribute": "Atributy XML dokumentu",
|
||||
"HeaderXmlDocumentAttributes": "Atributy XML dokumentu",
|
||||
"HeaderXmlSettings": "Nastavení XML",
|
||||
"HeaderYear": "Rok",
|
||||
"HeaderYears": "Roky",
|
||||
"HeadersFolders": "Složky",
|
||||
"Help": "Nápověda",
|
||||
@ -433,8 +422,6 @@
|
||||
"LabelAccessDay": "Den týdne:",
|
||||
"LabelAccessEnd": "Konec:",
|
||||
"LabelAccessStart": "Začátek:",
|
||||
"LabelAddedOnDate": "Přidáno {0}",
|
||||
"LabelAirDate": "Dny vysílání:",
|
||||
"LabelAirDays": "Vysíláno:",
|
||||
"LabelAirTime": "Čas vysílání:",
|
||||
"LabelAirsAfterSeason": "Vysíláno po sezóně:",
|
||||
@ -451,10 +438,8 @@
|
||||
"LabelAllowHWTranscoding": "Povolit hardwarové překódování",
|
||||
"LabelAllowServerAutoRestart": "Povolit automatický restart serveru pro provedení aktualizace",
|
||||
"LabelAllowServerAutoRestartHelp": "Server bude restartován pouze v době nečinnosti, pokud nejsou aktivní žádní uživatelé.",
|
||||
"LabelAnytime": "Kdykoliv",
|
||||
"LabelAppName": "Název aplikace",
|
||||
"LabelAppNameExample": "Příklad: Sickbeard, Sonarr",
|
||||
"LabelArtist": "Umělec",
|
||||
"LabelArtists": "Umělci:",
|
||||
"LabelArtistsHelp": "Odděl pomocí ;",
|
||||
"LabelAudio": "Zvuk",
|
||||
@ -486,8 +471,6 @@
|
||||
"LabelDateAddedBehaviorHelp": "Pokud je hodnota metadat přítomna, bude vždy použita před některou z těchto možností.",
|
||||
"LabelDay": "Den:",
|
||||
"LabelDeathDate": "Datum úmrtí:",
|
||||
"LabelDefaultForcedStream": "(Defaultní/Vynucené)",
|
||||
"LabelDefaultStream": "(Defaultní)",
|
||||
"LabelDefaultUser": "Výchozí uživatel:",
|
||||
"LabelDefaultUserHelp": "Určí, která uživatelská knihovna by měla být zobrazena na připojených zařízení. Nastavení může být přepsáno pomocí profilů pro každé zařízení.",
|
||||
"LabelDeviceDescription": "Popis zařízení",
|
||||
@ -496,15 +479,12 @@
|
||||
"LabelDisplayLanguage": "Jazyk rozhraní:",
|
||||
"LabelDisplayLanguageHelp": "Překlad projektu Jellyfin se neustále vyvíjí.",
|
||||
"LabelDisplayMissingEpisodesWithinSeasons": "Zobrazit chybějící epizody",
|
||||
"LabelDisplayMissingEpisodesWithinSeasonsHelp": "Toto musí být zapnuto pro knihovny TV v nastavení Jellyfin serveru.",
|
||||
"LabelDisplayMode": "Režim zobrazení:",
|
||||
"LabelDisplayName": "Zobrazované jméno:",
|
||||
"LabelDisplayOrder": "Pořadí zobrazení:",
|
||||
"LabelDisplaySpecialsWithinSeasons": "Zobraz speciální epizody dle odvysílaných sezón",
|
||||
"LabelDownMixAudioScale": "Zesílení audia při downmix:",
|
||||
"LabelDownMixAudioScaleHelp": "Zvýšit hlasitost při downmixování. Nastavte na 1 pro zachování původní hlasitosti.",
|
||||
"LabelDownloadInternetMetadata": "Stáhnout přebal a metadata z Internetu",
|
||||
"LabelDownloadInternetMetadataHelp": "Jellyfin server může stahovat informace o vašich médiích, aby umožnil vylepšené prezentace.",
|
||||
"LabelDownloadLanguages": "Stahované jazyky:",
|
||||
"LabelDropImageHere": "Sem přetáhněte obrázek nebo klikněte pro procházení.",
|
||||
"LabelDropShadow": "Typ zvýraznění titulků:",
|
||||
@ -531,7 +511,6 @@
|
||||
"LabelEpisodeNumber": "Číslo epizody:",
|
||||
"LabelEvent": "Událost:",
|
||||
"LabelEveryXMinutes": "Každý:",
|
||||
"LabelExternalPlayers": "Externí přehrávače:",
|
||||
"LabelExtractChaptersDuringLibraryScan": "Extrakce obrázků kapitol během prohledávání vaší knihovny",
|
||||
"LabelExtractChaptersDuringLibraryScanHelp": "Vytvářejte obrázky kapitol při importu videí během skenování knihovny. Jinak budou obrázky extrahovány během naplánované úlohy, což umožňuje rychlejší dokončení běžného skenování knihovny.",
|
||||
"LabelFailed": "Selhání",
|
||||
@ -540,9 +519,7 @@
|
||||
"LabelFont": "Písmo:",
|
||||
"LabelForgotPasswordUsernameHelp": "Zadej své uživatelské jméno, jestliže se má pamatovat.",
|
||||
"LabelFormat": "Formát:",
|
||||
"LabelFree": "Zdarma",
|
||||
"LabelFriendlyName": "Přívětivý název:",
|
||||
"LabelFromHelp": "Například: {0} (na serveru)",
|
||||
"LabelGroupMoviesIntoCollections": "Seskupit filmy do kolekcí",
|
||||
"LabelGroupMoviesIntoCollectionsHelp": "Při zobrazení seznamů filmu, budou filmy patřící do kolekce, zobrazeny jako jedna položka.",
|
||||
"LabelH264Crf": "H264 kódování CRF:",
|
||||
@ -573,7 +550,6 @@
|
||||
"LabelKodiMetadataSaveImagePaths": "Uložit cesty k obrázkům do NFO souborů",
|
||||
"LabelKodiMetadataSaveImagePathsHelp": "Toto nastavení je doporučeno, pokud používáte názvy souborů (obrázků), které nejsou v souladu s pokyny Kodi.",
|
||||
"LabelLanguage": "Jazyk:",
|
||||
"LabelLastResult": "Poslední výsledky:",
|
||||
"LabelLineup": "V pořadí:",
|
||||
"LabelLocalHttpServerPortNumber": "Lokální HTTP port:",
|
||||
"LabelLocalHttpServerPortNumberHelp": "Číslo portu TCP, ke kterému by se měl HTTP server Jellyfin připojit.",
|
||||
@ -681,7 +657,6 @@
|
||||
"LabelSelectVersionToInstall": "Vyber verzi k instalaci:",
|
||||
"LabelSendNotificationToUsers": "Odeslat oznámení pro:",
|
||||
"LabelSerialNumber": "Sériové číslo",
|
||||
"LabelSeries": "Seriály:",
|
||||
"LabelSeriesRecordingPath": "Složka pro nahrávání seriálů (volitelné):",
|
||||
"LabelServerHostHelp": "192.168.1.100:8096 nebo https://mujserver.cz",
|
||||
"LabelSkipBackLength": "Délka posunu zpět:",
|
||||
@ -733,7 +708,6 @@
|
||||
"LabelValue": "Hodnota:",
|
||||
"LabelVersion": "Verze:",
|
||||
"LabelVersionInstalled": "{0} instalováno",
|
||||
"LabelVersionNumber": "Verze {0}",
|
||||
"LabelXDlnaCap": "Zachytávací zařízení X-DLNA:",
|
||||
"LabelXDlnaCapHelp": "Určuje obsah prvku X_DLNACAP ve jmenném prostoru urn:schemas-dlna-org:device-1-0.",
|
||||
"LabelXDlnaDoc": "Dokumentace X-DLNA:",
|
||||
@ -796,7 +770,6 @@
|
||||
"MessageCreateAccountAt": "Vytvořit účet v {0}",
|
||||
"MessageDeleteTaskTrigger": "Opravdu si přejete odebrat spouštění úlohy?",
|
||||
"MessageDirectoryPickerBSDInstruction": "V operačním systému FreeBSD či FreeNAS může být nutné nakonfigurovat úložiště přímo pomocí izolační funkce jail, aby k němu měl Jellyfin přístup.",
|
||||
"MessageDirectoryPickerInstruction": "Síťové cesty lze zadat ručně v případě, že tlačítko 'Síť' nedokáže automaticky lokalizovat vaše zařízení. Například, {0} nebo {1}.",
|
||||
"MessageDirectoryPickerLinuxInstruction": "Pro systémy Linux jako Arch Linux, CentOS, Debian, Fedora, OpenSUSE nebo Ubuntu musíte udělit uživateli služby oprávnění alespoň pro čtení.",
|
||||
"MessageDownloadQueued": "Stažení zařazeno.",
|
||||
"MessageFileReadError": "Došlo k chybě při čtení souboru. Prosím zkuste to znovu.",
|
||||
@ -828,10 +801,6 @@
|
||||
"MetadataSettingChangeHelp": "Změna nastavení metadat bude mít vliv na nový obsah, který bude přidáván. Chcete-li aktualizovat stávající obsah, otevřte obrazovku s detailem a klepněte na tlačítko Aktualizovat, nebo proveďte hromadnou aktualizaci pomocí správce metadat.",
|
||||
"MinutesAfter": "minut po",
|
||||
"MinutesBefore": "minut předem",
|
||||
"MissingBackdropImage": "Nedostupný obrázek pozadí.",
|
||||
"MissingEpisode": "Chybí epizoda.",
|
||||
"MissingLogoImage": "Nedostupný obrázek loga.",
|
||||
"MissingPrimaryImage": "Nedostupný primární obrázek.",
|
||||
"Mobile": "Mobilní",
|
||||
"Monday": "Pondělí",
|
||||
"MoreFromValue": "Více z {0}",
|
||||
@ -878,8 +847,6 @@
|
||||
"OptionAllowUserToManageServer": "Povolit tomuto uživateli správu serveru",
|
||||
"OptionAllowVideoPlaybackRemuxing": "Umožní přehrávání videa, která vyžaduje konverzi bez opětovného překódování",
|
||||
"OptionAllowVideoPlaybackTranscoding": "Povolit přehrávání videa, které vyžaduje překódování",
|
||||
"OptionAnyNumberOfPlayers": "Jakýkoliv",
|
||||
"OptionArt": "Umění",
|
||||
"OptionArtist": "Umělec",
|
||||
"OptionAscending": "Vzestupně",
|
||||
"OptionAuto": "Automaticky",
|
||||
@ -1012,10 +979,7 @@
|
||||
"PlayFromBeginning": "Přehrát od začátku",
|
||||
"PlayNext": "Přehrát další",
|
||||
"PlayNextEpisodeAutomatically": "Automaticky přehrávat další epizodu",
|
||||
"PlayOnAnotherDevice": "Přehrát na jiném zařízení",
|
||||
"PlaybackErrorNoCompatibleStream": "Tento klient není kompatibilní s médiem a server neodesílá kompatibilní formát médií.",
|
||||
"PlaybackErrorNotAllowed": "V současné době nejste oprávněni přehrávat tento obsah. Pro více informací se obraťte se na správce systému.",
|
||||
"PlaybackErrorPlaceHolder": "Chcete-li toto video přehrát, vložte disk.",
|
||||
"Played": "Přehráno",
|
||||
"Playlists": "Seznamy skladeb",
|
||||
"PleaseAddAtLeastOneFolder": "Přidejte prosím nejméně jednu složku do této knihovny pomocí tlačítka Přidat.",
|
||||
@ -1194,7 +1158,6 @@
|
||||
"ValueTimeLimitSingleHour": "Časový limit: 1 hodina",
|
||||
"ValueVideoCodec": "Video kodeky: {0}",
|
||||
"ViewAlbum": "Zobrazit album",
|
||||
"ViewArtist": "Zobrazit úmělce",
|
||||
"Watched": "Zhlédnuto",
|
||||
"Wednesday": "Středa",
|
||||
"WelcomeToProject": "Vítejte v Jellyfin!",
|
||||
@ -1214,7 +1177,6 @@
|
||||
"Alerts": "Upozornění",
|
||||
"AllComplexFormats": "Všechny komplexní formáty (ASS, SSA, VOBSUB, PGS, SUB/IDX, atd.)",
|
||||
"AllLibraries": "Všechny knihovny",
|
||||
"AllowDeletionFromAll": "Povolit smazání médií ze všech knihoven",
|
||||
"AllowMediaConversion": "Povolit konverzi médií",
|
||||
"AllowMediaConversionHelp": "Povolit nebo zakázat přístup k funkci konverze médií.",
|
||||
"AllowOnTheFlySubtitleExtraction": "Povolit extrahování titulků za běhu",
|
||||
@ -1222,59 +1184,39 @@
|
||||
"AllowRemoteAccess": "Povolit vzdálené připojení k tomuto serveru Jellyfin.",
|
||||
"AllowRemoteAccessHelp": "Pokud není zapnuto, všechna vzdálená připojení budou blokována.",
|
||||
"AllowedRemoteAddressesHelp": "Seznam IP adres nebo síťových masek oddělených čárkou pro sítě, ze kterých se lze vzdáleně připojit. Pokud necháte prázdné, všechny adresy budou povoleny.",
|
||||
"AnamorphicVideoNotSupported": "Anamorfní video není podporováno",
|
||||
"AnyLanguage": "Jakýkoli jazyk",
|
||||
"Ascending": "Vzestupně",
|
||||
"AudioBitDepthNotSupported": "Bitová hloubka zvuku není podporována",
|
||||
"AudioSampleRateNotSupported": "Frekvence vzorkování zvuku není podporována",
|
||||
"AutoBasedOnLanguageSetting": "Automaticky (na základě jazykového nastavení)",
|
||||
"Banner": "Výřez plakátu",
|
||||
"BestFit": "Nejvhodnější",
|
||||
"Blacklist": "Zakázat vše kromě výjimek",
|
||||
"BobAndWeaveWithHelp": "Bob and weave (vyšší kvalita, ale pomalejší)",
|
||||
"Browse": "Procházet",
|
||||
"BurnSubtitlesHelp": "Určuje, zda má server při překódování videa vypálit titulky do obrazu. Tato funkce má velký negativní vliv na výkon. Chcete-li vypálit grafické formáty titulků (VOBSUB, PGS, SUB, IDX, atd.) a některé titulky ASS nebo SSA, vyberte možnost Automaticky.",
|
||||
"ButtonInfo": "Info",
|
||||
"ButtonMenu": "Menu",
|
||||
"ButtonOk": "Ok",
|
||||
"ButtonPlaylist": "Playlist",
|
||||
"ButtonRestart": "Restart",
|
||||
"ButtonScanAllLibraries": "Skenovat všechny knihovny",
|
||||
"ButtonServer": "Server",
|
||||
"ButtonStart": "Start",
|
||||
"ButtonStopRecording": "Zastavit nahrávání",
|
||||
"ChangingMetadataImageSettingsNewContent": "Změny nastavení metadat nebo stahování médií se budou týkat pouze nového obsahu přidaného do vaší knihovny. Chcete-li aplikovat změny na existující položky, musíte je aktualizovat ručně.",
|
||||
"Channels": "Kanály",
|
||||
"ColorPrimaries": "Primární barva",
|
||||
"ColorSpace": "Barva prostoru",
|
||||
"ColorTransfer": "Barva přenosu",
|
||||
"ContainerBitrateExceedsLimit": "Datový tok média dosáhl limitu.",
|
||||
"Convert": "Konverze",
|
||||
"ConvertItemLimitHelp": "Volitelné. Nastavte limit počtu položek, které budou zkonvertovány.",
|
||||
"ConvertUnwatchedVideosOnly": "Zkonvertovat pouze nepřehraná videa",
|
||||
"ConvertUnwatchedVideosOnlyHelp": "Pouze nepřehraná videa budou zkonvertována.",
|
||||
"ConvertingDots": "Konverze...",
|
||||
"CriticRating": "Kritické hodnocení",
|
||||
"DefaultCameraUploadPathHelp": "Vyberte vlastní cestu nahrávání. Pokud zůstane prázdné, bude použita výchozí složka. Pokud použijete vlastní cestu, bude třeba ji přidat jako knihovnu v nastavení knihovny Jellyfin.",
|
||||
"Depressed": "Vytlačené",
|
||||
"Descending": "Klesající",
|
||||
"DetectingDevices": "Hledání zařízení",
|
||||
"DirectPlayError": "Chyba přímého přehrávání",
|
||||
"DirectStreamHelp2": "Přímé streamování souboru používá velmi malý výkon bez ztráty kvality videa.",
|
||||
"Directors": "Režiséři",
|
||||
"Disabled": "Vypnuto",
|
||||
"DisplayInMyMedia": "Zobrazit na domovské obrazovce",
|
||||
"DisplayInOtherHomeScreenSections": "Zobrazení v sekcích domovské obrazovky, jako jsou nejnovější média, a pokračování ve sledování",
|
||||
"DownloadItemLimitHelp": "Volitelné. Nastavte limit počtu položek, které budou staženy.",
|
||||
"DownloadsValue": "{0} ke stažení",
|
||||
"DvrFeatureDescription": "Naplánujte individuálně záznamy z živého vysílání TV, záznamy seriálů a jiné s Jellyfin DVR.",
|
||||
"EditMetadata": "Upravit metadata",
|
||||
"EnableExternalVideoPlayersHelp": "Při spuštění přehrávání videa se zobrazí nabídka externího přehrávače.",
|
||||
"EnableHardwareEncoding": "Povolit hardwarové kódování videa",
|
||||
"EnableNextVideoInfoOverlayHelp": "Na konci přehrávání videa se zobrazí informace o příštím videu v aktuálním seznamu skladeb.",
|
||||
"EnableStreamLooping": "Autom. smyčka živých vysílání",
|
||||
"EnableStreamLoopingHelp": "Povolte, pokud živé vysílání obsahuje pouze několik vteřin dat a nemusí být nepřetržitě požadováno. Povolení této funkce, pokud není potřeba, může způsobit problémy.",
|
||||
"ErrorConnectServerUnreachable": "Při provádění požadované operace došlo k chybě. Váš server není schopen kontaktovat náš server Jellyfin Connect na adrese {0}. Ujistěte se, že váš server má aktivní připojení k internetu a že komunikace je povolena jakýmkoli firewallem nebo bezpečnostním softwarem, který jste nainstalovali.",
|
||||
"EveryNDays": "Každých {0} dní",
|
||||
"Extras": "Doplňky",
|
||||
"Features": "Funkce",
|
||||
@ -1283,47 +1225,33 @@
|
||||
"General": "Obecné",
|
||||
"Genre": "Žánr",
|
||||
"GroupBySeries": "Seskupit podle série",
|
||||
"HandledByProxy": "Zpracováno reverzním proxy",
|
||||
"HeaderAddLocalUser": "Přidat místního uživatele",
|
||||
"HeaderAllowMediaDeletionFrom": "Povolit smazání médií z",
|
||||
"HeaderAppearsOn": "Objeví se",
|
||||
"HeaderAudio": "Audio",
|
||||
"HeaderBlockItemsWithNoRating": "Blokovat položky s žádnými nebo nerozpoznanými informacemi o hodnocení:",
|
||||
"HeaderCameraUploadHelp": "Aplikace Jellyfin mohou automaticky nahrávat fotografie z mobilních zařízení do serveru Jellyfin.",
|
||||
"HeaderChapterImages": "Obrázky kapitol",
|
||||
"HeaderConfigureRemoteAccess": "Nastavit vzdálený přístup",
|
||||
"HeaderDetectMyDevices": "Najít moje zařízení",
|
||||
"HeaderDownloadSync": "Stahování a synchronizace",
|
||||
"HeaderExport": "Export",
|
||||
"HeaderExternalIds": "Externí Id:",
|
||||
"HeaderFavoriteCollections": "Oblíbené sbírky",
|
||||
"HeaderFavoritePlaylists": "Oblíbené playlisty",
|
||||
"HeaderFavoriteVideos": "Oblíbená videa",
|
||||
"HeaderFetcherSettings": "Nastavení načítání",
|
||||
"HeaderImageLogo": "Logo",
|
||||
"HeaderImageOptions": "Volby obrázku",
|
||||
"HeaderKodiMetadataHelp": "Chcete-li povolit nebo zakázat Nfo metadata, upravte nastavení knihovny v sekci ukládání metadat.",
|
||||
"HeaderLiveTV": "Televize",
|
||||
"HeaderLiveTv": "Televize",
|
||||
"HeaderLiveTvTunerSetup": "Nastavení televizního tuneru",
|
||||
"HeaderMenu": "Menu",
|
||||
"HeaderNewDevices": "Nové zařízení",
|
||||
"HeaderPhotoAlbums": "Fotoalba",
|
||||
"HeaderPlayOn": "Přehrát",
|
||||
"HeaderProgram": "Program",
|
||||
"HeaderRestart": "Restart",
|
||||
"HeaderScreenSavers": "Spořiče obrazovky",
|
||||
"HeaderSeriesStatus": "Stav seriálu",
|
||||
"HeaderStopRecording": "Zastavit nahrávání",
|
||||
"HeaderSubtitleDownloads": "Stahování titulků",
|
||||
"HeaderTV": "TV",
|
||||
"HeaderTypeImageFetchers": "{0} stahovačů obrázků",
|
||||
"HeaderUpcomingEpisodes": "Následující epizody",
|
||||
"HeaderVideo": "Video",
|
||||
"HeaderVideoType": "Formát videa",
|
||||
"Horizontal": "Vodorovně",
|
||||
"HttpsRequiresCert": "Chcete-li povolit zabezpečená připojení, budete muset zadat důvěryhodný certifikát SSL, například Let's Encrypt. Zadejte prosím certifikát nebo zakažte zabezpečená připojení.",
|
||||
"KeepDownload": "Zachovat stahování",
|
||||
"LabelAlbum": "Album:",
|
||||
"LabelAllowedRemoteAddresses": "Filtr vzdálené IP adresy:",
|
||||
"LabelAllowedRemoteAddressesMode": "Režim filtru vzdálené IP adresy:",
|
||||
@ -1332,23 +1260,19 @@
|
||||
"LabelBlockContentWithTags": "Blokovat položky s tagy:",
|
||||
"LabelBurnSubtitles": "Vypálit titulky:",
|
||||
"LabelCache": "Cache:",
|
||||
"LabelCameraUploadPathHelp": "Vyberte vlastní umístění nahraných souborů. Toto přepíše jakékoli výchozí nastavení v sekci nahrávání souborů z fotoaparátu. Pokud použijete vlastní umístění, bude potřeba jej také přidat jako knihovnu v nastavení Jellyfin.",
|
||||
"LabelCertificatePassword": "Heslo certifikátu:",
|
||||
"LabelCertificatePasswordHelp": "Pokud certifikát vyžaduje heslo, zadejte jej prosím zde.",
|
||||
"LabelCustomCertificatePath": "Vlastní umístění SSL certifikátu:",
|
||||
"LabelCustomCertificatePathHelp": "Umístění souboru PKCS #12, který obsahuje certifikát a soukromý klíč k povolení podpory TLS na vlastní doméně.",
|
||||
"LabelDateTimeLocale": "Místní nastavení data:",
|
||||
"LabelDefaultScreen": "Výchozí obrazovka:",
|
||||
"LabelDeinterlacingMethod": "Metoda odstraněni prokládání:",
|
||||
"LabelDynamicExternalId": "{0} ID:",
|
||||
"LabelEmail": "E-mail:",
|
||||
"LabelEnableHardwareDecodingFor": "Povolit hardwarové dekódování pro:",
|
||||
"LabelHomeNetworkQuality": "Kvalita na domácí síti:",
|
||||
"LabelInternetQuality": "Kvalita na internetu:",
|
||||
"LabelKodiMetadataUser": "Uložit data sledování uživatele do NFO souboru pro:",
|
||||
"LabelKodiMetadataUserHelp": "Uložit sledovaná data o přehrávání pro využití dalšími aplikacemi.",
|
||||
"LabelLanNetworks": "Sítě LAN:",
|
||||
"LabelLimit": "Limit:",
|
||||
"LabelMaxStreamingBitrate": "Maximální kvalita streamování:",
|
||||
"LabelMetadata": "Metadata:",
|
||||
"LabelOptionalNetworkPathHelp": "Pokud je tato složka sdílena ve vaší síti, zadání cesty ke sdílené složce umožní aplikacím Jellyfin na jiných zařízeních přímý přístup k souborům s médii. Například {0} nebo {1}.",
|
||||
@ -1356,7 +1280,6 @@
|
||||
"LabelPlaylist": "Playlist:",
|
||||
"LabelReasonForTranscoding": "Důvod pro překódování:",
|
||||
"LabelRemoteClientBitrateLimitHelp": "Volitelný limit datového toku pro všechna síťová zařízení. To je užitečné, aby se zabránilo požadavkům na vyšší přenosovou rychlost než zvládne vaše připojení k internetu. To může mít za následek zvýšení zátěže procesoru, aby bylo možné převádět videa za běhu na nižší datový tok.",
|
||||
"LabelSecureConnectionsMode": "Režim zabezpečeného připojení:",
|
||||
"LabelServerHost": "Host:",
|
||||
"LabelSimultaneousConnectionLimit": "Limit současně běžících streamů:",
|
||||
"LabelSkin": "Vzhled:",
|
||||
@ -1368,17 +1291,13 @@
|
||||
"LabelTag": "Tag:",
|
||||
"LabelTypeMetadataDownloaders": "{0} stahovače metadat:",
|
||||
"LabelTypeText": "Text",
|
||||
"LabelUrl": "URL:",
|
||||
"LabelUserAgent": "User agent:",
|
||||
"LabelUserRemoteClientBitrateLimitHelp": "Přepíše výchozí globální hodnotu nastavenou v nastavení přehrávání serveru.",
|
||||
"LabelVideo": "Video",
|
||||
"LabelVideoCodec": "Video kodek:",
|
||||
"LeaveBlankToNotSetAPassword": "Můžete ponechat prázdné pro nastavení bez hesla.",
|
||||
"LetterButtonAbbreviation": "A",
|
||||
"LinkApi": "API",
|
||||
"LinksValue": "Odkazy: {0}",
|
||||
"LiveTV": "Televize",
|
||||
"LiveTvFeatureDescription": "Streamujte televizní vysílání do libovolné aplikace Jellyfin s kompatibilním televizním tunerem instalovaným na serveru Jellyfin.",
|
||||
"Logo": "Logo",
|
||||
"ManageLibrary": "Spravovat knihovnu",
|
||||
"MediaInfoDefault": "Výchozí",
|
||||
@ -1439,16 +1358,11 @@
|
||||
"OptionProtocolHttp": "HTTP",
|
||||
"OptionRequirePerfectSubtitleMatchHelp": "Vyžadování dokonalé shody filtruje titulky tak, aby obsahovaly pouze ty, které byly testovány a ověřeny s vaším přesným videosouborem. Zrušení zaškrtnutí tohoto políčka zvýší pravděpodobnost stahování titulků, ale zvýší pravděpodobnost chybného nebo nesprávného textu titulků.",
|
||||
"PasswordResetProviderHelp": "Zvolte poskytovatele resetování hesla, který bude použit, když tento uživatel o něj požádá",
|
||||
"PlaybackSettings": "Nastavení přehrávání",
|
||||
"PlaybackSettingsIntro": "Chcete-li nastavit výchozí volby přehrávání, zastavte přehrávání videa a klepněte na ikonu uživatele v pravé horní části aplikace.",
|
||||
"PluginInstalledMessage": "Zásuvný modul byl úspěšně nainstalován. Server Jellyfin bude nutné restartovat, aby se změny projevily.",
|
||||
"PluginTabAppClassic": "Jellyfin pro Windows Media Center",
|
||||
"PreferEmbeddedTitlesOverFileNames": "Preferovat vložené názvy nad názvy souborů",
|
||||
"PreferEmbeddedTitlesOverFileNamesHelp": "Toto určuje výchozí název zobrazení, pokud nejsou k dispozici žádná metadata z internetu nebo místní metadata.",
|
||||
"PreferredNotRequired": "Preferováno, ale není vyžadováno",
|
||||
"Raised": "Vystupující",
|
||||
"Rate": "Hodnocení",
|
||||
"RequiredForAllRemoteConnections": "Požadováno pro všechna vzdálená připojení",
|
||||
"SaveSubtitlesIntoMediaFolders": "Titulky ukládat do mediálních složek",
|
||||
"SaveSubtitlesIntoMediaFoldersHelp": "Ukládání titulků vedle video souborů umožní jejich snadnější správu.",
|
||||
"ScanLibrary": "Skenovat knihovnu",
|
||||
@ -1464,8 +1378,6 @@
|
||||
"SubtitleAppearanceSettingsAlsoPassedToCastDevices": "Tato nastavení platí také pro jakékoli přehrávání na Chromecastu spuštěné tímto zařízením.",
|
||||
"SubtitleAppearanceSettingsDisclaimer": "Tato nastavení se nevztahuje na grafické titulky (PGS, DVD atd.) nebo ASS/SSA titulky, které mají vlastní vložené styly.",
|
||||
"SubtitleDownloadersHelp": "Povolte a zařaďte preferované stahovače titulků v pořadí podle priority.",
|
||||
"SubtitleSettings": "Nastavení titulků",
|
||||
"SubtitleSettingsIntro": "Chcete-li nastavit výchozí vzhled a jazyk titulků, zastavte přehrávání videa a klepněte na ikonu uživatele v pravé horní části aplikace.",
|
||||
"TV": "TV",
|
||||
"TabDirectPlay": "Přímé přehrávání",
|
||||
"TabInfo": "Info",
|
||||
@ -1583,7 +1495,7 @@
|
||||
"New": "Nové",
|
||||
"ButtonTogglePlaylist": "Playlist",
|
||||
"ButtonToggleContextMenu": "Více",
|
||||
"LabelNightly": "Nightly",
|
||||
"LabelNightly": "Aktualizace každou noc",
|
||||
"LabelStable": "Stabilní",
|
||||
"LabelChromecastVersion": "Verze Chromecastu",
|
||||
"ApiKeysCaption": "Seznam povolených API klíčů",
|
||||
@ -1652,5 +1564,8 @@
|
||||
"Writers": "Scénáristé",
|
||||
"ClearQueue": "Vymazat frontu",
|
||||
"StopPlayback": "Zastavit přehrávání",
|
||||
"ViewAlbumArtist": "Zobrazit interpreta alba"
|
||||
"ViewAlbumArtist": "Zobrazit interpreta alba",
|
||||
"PreviousTrack": "Předchozí",
|
||||
"NextTrack": "Další",
|
||||
"LabelUnstable": "Nestabilní"
|
||||
}
|
||||
|
@ -606,7 +606,6 @@
|
||||
"LabelSaveLocalMetadataHelp": "Lagring af illustrationer og metadata i mediemapper vil placerer dem et sted hvor de nemt kan redigeres.",
|
||||
"LabelScheduledTaskLastRan": "Sidst kørt {0}, og tog {1}.",
|
||||
"LabelSeasonNumber": "Sæsonnummer:",
|
||||
"LabelSecureConnectionsMode": "Sikker forbindelse mode:",
|
||||
"LabelSelectUsers": "Vælg brugere:",
|
||||
"LabelSelectVersionToInstall": "Vælg hvilken version der skal installeres:",
|
||||
"LabelSendNotificationToUsers": "Send underretning til:",
|
||||
@ -637,9 +636,7 @@
|
||||
"LabelTitle": "Titel:",
|
||||
"LabelTrackNumber": "Spor nummer:",
|
||||
"LabelTranscodingAudioCodec": "Lyd codec:",
|
||||
"LabelTranscodingTempPath": "Midlertidig sti til omkodning:",
|
||||
"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 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:",
|
||||
@ -706,7 +703,6 @@
|
||||
"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 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.",
|
||||
@ -913,7 +909,6 @@
|
||||
"PluginInstalledMessage": "Plugin blev installeret med success. Jellyfin serveren skal genstartes for at aktivere det.",
|
||||
"PreferEmbeddedTitlesOverFileNames": "Foretræk indlejrede titler over filnavne",
|
||||
"PreferEmbeddedTitlesOverFileNamesHelp": "Dette bestemmer standard visnings titel når ingen internet metadata eller lokal metadata er tilgængelig.",
|
||||
"PreferredNotRequired": "Foretrukket, men ikke påkrævet",
|
||||
"Premieres": "Premiere",
|
||||
"Producer": "Producent",
|
||||
"ProductionLocations": "Produktionslokationer",
|
||||
@ -941,7 +936,6 @@
|
||||
"RepeatEpisodes": "Gentag episoder",
|
||||
"ReplaceAllMetadata": "Erstat alle metadata",
|
||||
"ReplaceExistingImages": "Erstat eksisterende billeder",
|
||||
"RequiredForAllRemoteConnections": "Påkrævet for alle fjern forbindelser",
|
||||
"ResumeAt": "Genoptag fra {0}",
|
||||
"Rewind": "Spol tilbage",
|
||||
"Runtime": "Afspilningstid",
|
||||
@ -1062,7 +1056,6 @@
|
||||
"ValueTimeLimitMultiHour": "Tidsbegrænsning: {0} timer",
|
||||
"ValueTimeLimitSingleHour": "Tidsbegrænsning: 1 time",
|
||||
"ViewAlbum": "Vis album",
|
||||
"ViewArtist": "Vis kunstner",
|
||||
"ViewPlaybackInfo": "Vis afspilnings information",
|
||||
"Wednesday": "Onsdag",
|
||||
"WelcomeToProject": "Velkommen til Jellyfin!",
|
||||
@ -1096,12 +1089,6 @@
|
||||
"AnyLanguage": "Hvilken som helst sprog",
|
||||
"Art": "Kunst",
|
||||
"Ascending": "Stigende",
|
||||
"AudioBitDepthNotSupported": "Lyd bit dybde ikke understøttet",
|
||||
"AudioBitrateNotSupported": "Lydens bitrate ikke understøttet",
|
||||
"AudioChannelsNotSupported": "Lydkanaler ikke understøttet",
|
||||
"AudioCodecNotSupported": "Lydkodeks ikke understøttet",
|
||||
"AudioProfileNotSupported": "Lydprofil ikke understøttet",
|
||||
"AudioSampleRateNotSupported": "Lydens samplerate ikke understøttet",
|
||||
"Auto": "Auto",
|
||||
"AutoBasedOnLanguageSetting": "Automatisk (baseret på sprogindstilling)",
|
||||
"Backdrop": "Baggrund",
|
||||
@ -1114,34 +1101,18 @@
|
||||
"ButtonFilter": "Filter",
|
||||
"ButtonGuide": "Vejledning",
|
||||
"ButtonInfo": "Information",
|
||||
"ButtonMenu": "Menu",
|
||||
"ButtonOk": "Ok",
|
||||
"ButtonPause": "Pause",
|
||||
"ButtonPlayTrailer": "Forfilm",
|
||||
"ButtonReset": "Nulstil",
|
||||
"ButtonResetTuner": "Nulstil tuner",
|
||||
"ButtonSend": "Send",
|
||||
"ButtonServer": "Server",
|
||||
"ButtonStart": "Start",
|
||||
"ButtonStop": "Stop",
|
||||
"ButtonSync": "Synkronisér",
|
||||
"ButtonTrailer": "Forfilm",
|
||||
"CategoryPlugin": "Tilføjelse",
|
||||
"CategorySync": "Synkronisér",
|
||||
"CategorySystem": "System",
|
||||
"ColorPrimaries": "Primære farver",
|
||||
"ColorSpace": "Farverum",
|
||||
"ColorTransfer": "Farveoverførsel",
|
||||
"CommunityRating": "Føllesskabets Bedømmelse",
|
||||
"ConfirmEndPlayerSession": "Vil du gerne slukke Jellyfin på {0}?",
|
||||
"ContainerBitrateExceedsLimit": "Medie bitrate går over grænsen.",
|
||||
"ContainerNotSupported": "Beholder ikke understøttet",
|
||||
"ContinueWatching": "Fortsæt med at se",
|
||||
"Convert": "Konvertér",
|
||||
"ConvertItemLimitHelp": "Valgfri. Sæt en begrænsning på antallet af emner der vil blive konverteret.",
|
||||
"ConvertUnwatchedVideosOnly": "Konvertér kun usete videoer",
|
||||
"ConvertUnwatchedVideosOnlyHelp": "Kun usete videoer vil blive konverteret.",
|
||||
"ConvertingDots": "Konverterer...",
|
||||
"CriticRating": "Kritiker bedømmelse",
|
||||
"DateAdded": "Dato tilføjet",
|
||||
"DatePlayed": "Dato afspillet",
|
||||
@ -1150,7 +1121,6 @@
|
||||
"Depressed": "Ikke Trykket",
|
||||
"Descending": "Faldene",
|
||||
"Desktop": "Skrivebord",
|
||||
"DirectPlayError": "Direkte Afspilning fejl",
|
||||
"DirectPlaying": "Afspiller direkte",
|
||||
"DirectStreamHelp1": "Medie filen er kompatibel med enheden i forhold til opløsning og medie type (H.264,AC3, etc.), men er i en ikke kompatibel fil container (mkv, avi, wmv, etc). Videoen vil blive genpakket live før den streames til enheden.",
|
||||
"DirectStreamHelp2": "Direkte Streaming af en fil bruger meget lidt processor kraft uden nogen tab af video kvalitet.",
|
||||
@ -1165,13 +1135,8 @@
|
||||
"DisplayMissingEpisodesWithinSeasonsHelp": "Dette skal også være aktiveret for TV biblioteker i serverens indstillinger.",
|
||||
"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",
|
||||
"DvrFeatureDescription": "Tidsindstil individuelle TV optagelser, serie optagelser, og mere med Jellyfin DVR.",
|
||||
"EditMetadata": "Redigér metadata",
|
||||
"EnableBackdrops": "Baggrundsbilleder",
|
||||
"EnableBackdropsHelp": "Vis baggrundsbilleder i baggrunden af nogle sider mens man gennemser biblioteket.",
|
||||
@ -1185,8 +1150,6 @@
|
||||
"EnableThemeVideos": "Tema videoer",
|
||||
"EnableThemeVideosHelp": "Afspil tema videoer i baggrunden mens man gennemser biblioteket.",
|
||||
"Episodes": "Afsnit",
|
||||
"ErrorAddingGuestAccount1": "Der skete en fejl ved tilføjelsen af Jellyfin Connect kontoen. Har din gæst lavet en Jellyfin konto? De kan regsistrere sig på {0}.",
|
||||
"ErrorAddingGuestAccount2": "Hvis du stadig har problemer, så send venligst en email til {0}, og inkludér din email adresse såvel som deres.",
|
||||
"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",
|
||||
"Extras": "Bonusmateriale",
|
||||
@ -1197,7 +1160,6 @@
|
||||
"GroupBySeries": "Gruppér efter serie",
|
||||
"Guide": "Vejledning",
|
||||
"GuideProviderLogin": "Log Ind",
|
||||
"HandledByProxy": "Ordnet af omvendt proxy",
|
||||
"HeaderAdmin": "Admin",
|
||||
"HeaderAlbums": "Albummer",
|
||||
"HeaderApp": "App",
|
||||
@ -1205,19 +1167,10 @@
|
||||
"HeaderAudioBooks": "Lydbøger",
|
||||
"HeaderBranding": "Mærkning",
|
||||
"HeaderContinueListening": "Fortsæt med At Høre",
|
||||
"HeaderDestination": "Destination",
|
||||
"HeaderDownloadSettings": "Hentningsindstillinger",
|
||||
"HeaderDownloadSync": "Hentning Og Sync",
|
||||
"HeaderFavoriteCollections": "Favorit Samlinger",
|
||||
"HeaderFavoritePlaylists": "Favorit Afspilningslister",
|
||||
"HeaderHomeScreen": "Hjemmeskærm",
|
||||
"HeaderImageLogo": "Logo",
|
||||
"HeaderLatestFrom": "Seneste fra {0}",
|
||||
"HeaderLibraryOrder": "Bibliotektsorden",
|
||||
"HeaderLinks": "Link",
|
||||
"HeaderLiveTv": "Live TV",
|
||||
"HeaderManagement": "Håndtering",
|
||||
"HeaderMenu": "Menu",
|
||||
"HeaderMusicQuality": "Musik Kvalitet",
|
||||
"HeaderMyMediaSmall": "Mine Medier (lille)",
|
||||
"HeaderNavigation": "Navigation",
|
||||
@ -1225,34 +1178,22 @@
|
||||
"HeaderNextVideoPlayingInValue": "Næste video afspilles om {0}",
|
||||
"HeaderPhotoAlbums": "Foto Albummer",
|
||||
"HeaderPlayOn": "Afspil På",
|
||||
"HeaderProgram": "Program",
|
||||
"HeaderRestartingJellyfinServer": "Genstarter Jellyfin Server",
|
||||
"HeaderSecondsValue": "{0} Sekunder",
|
||||
"HeaderSeriesStatus": "Serie Status",
|
||||
"HeaderStartNow": "Start Nu",
|
||||
"HeaderStatus": "Status",
|
||||
"HeaderStopRecording": "Stop Optagelse",
|
||||
"HeaderSubtitleAppearance": "Undertekst Udseende",
|
||||
"HeaderSync": "Sync",
|
||||
"HeaderTV": "TV",
|
||||
"HeaderTags": "Mærker",
|
||||
"HeaderTopPlugins": "Bedste Plugins",
|
||||
"HeaderType": "Type",
|
||||
"HeaderVideo": "Video",
|
||||
"HeaderVideoQuality": "Video Kvalitet",
|
||||
"HeaderVideoType": "Video Type",
|
||||
"Hide": "Skjul",
|
||||
"HideWatchedContentFromLatestMedia": "Skjul set indhold fra seneste medier",
|
||||
"Home": "Hjem",
|
||||
"Horizontal": "Horisontalt",
|
||||
"ImdbRating": "IMDb bedømmelse",
|
||||
"InterlacedVideoNotSupported": "Interlaced video ikke understøttet",
|
||||
"KeepDownload": "Behold hentning",
|
||||
"Label3DFormat": "3D format:",
|
||||
"LabelAlbum": "Album:",
|
||||
"LabelArtist": "Kunstner",
|
||||
"LabelAudio": "Lyd",
|
||||
"LabelBitrateMbps": "Bitrate (Mbps):",
|
||||
"LabelBlockContentWithTags": "Blokér filer med etiketter:",
|
||||
"LabelBurnSubtitles": "Brænd undertekster:",
|
||||
"LabelCache": "Cache:",
|
||||
@ -1266,9 +1207,7 @@
|
||||
"LabelDisplayMode": "Visningstilstand:",
|
||||
"LabelDropShadow": "Drop skygge:",
|
||||
"LabelDynamicExternalId": "{0} ID:",
|
||||
"LabelEmail": "Email:",
|
||||
"LabelEnableHardwareDecodingFor": "Aktivér hardware afkodning for:",
|
||||
"LabelEpisode": "Afsnit",
|
||||
"LabelFont": "Skrifttype:",
|
||||
"LabelFormat": "Format:",
|
||||
"LabelHomeNetworkQuality": "Hjemme netværk kvalitet:",
|
||||
@ -1276,7 +1215,6 @@
|
||||
"LabelInternetQuality": "Internet kvalitet:",
|
||||
"LabelLogs": "Log:",
|
||||
"LabelMatchType": "Passer til type:",
|
||||
"LabelMaxBitrate": "Maks bitrate:",
|
||||
"LabelMaxChromecastBitrate": "Chromecast streaming kvalitet:",
|
||||
"LabelMetadata": "Metadata:",
|
||||
"LabelModelUrl": "Model URL",
|
||||
@ -1305,32 +1243,24 @@
|
||||
"LabelTranscodingContainer": "Beholder:",
|
||||
"LabelTranscodingVideoCodec": "Video codec:",
|
||||
"LabelType": "Type:",
|
||||
"LabelUrl": "Link:",
|
||||
"LabelVersion": "Version:",
|
||||
"LabelVersionNumber": "Version {0}",
|
||||
"LabelVideo": "Video",
|
||||
"LabelVideoCodec": "Video codec:",
|
||||
"LabelWindowBackgroundColor": "Tekst baggrundsfarve:",
|
||||
"LabelXDlnaCap": "X-DLNA begrænsning:",
|
||||
"LabelXDlnaDoc": "X-DLNA dokumentation:",
|
||||
"LabelYear": "År:",
|
||||
"Large": "Stor",
|
||||
"LearnHowYouCanContribute": "Lær hvordan du kan bidrage.",
|
||||
"LeaveBlankToNotSetAPassword": "Du kan lade dette felt være tomt hvis du ikke ønsker adgangskode.",
|
||||
"LetterButtonAbbreviation": "A",
|
||||
"Like": "Favorit",
|
||||
"LinkGithub": "Github",
|
||||
"LinksValue": "Link: {0}",
|
||||
"List": "Liste",
|
||||
"Live": "Live",
|
||||
"LiveTV": "Se Live TV",
|
||||
"LiveTvFeatureDescription": "Stream Live TV til enhver Jellyfin app, med en kompatibel TV tuner installeret på din Jellyfin Server.",
|
||||
"Logo": "Logo",
|
||||
"ManageRecording": "Håndtér optagelse",
|
||||
"MarkWatched": "Markér som set",
|
||||
"MediaInfoBitrate": "Bitrate",
|
||||
"MediaInfoCodec": "Codek",
|
||||
"MediaInfoFormat": "Format",
|
||||
"MediaInfoFramerate": "Billederate",
|
||||
"MediaInfoInterlaced": "Interlaceret",
|
||||
"MediaInfoLayout": "Udlæg",
|
||||
@ -1340,11 +1270,9 @@
|
||||
"MediaInfoStreamTypeData": "Data",
|
||||
"MediaInfoStreamTypeVideo": "Video",
|
||||
"MediaIsBeingConverted": "Mediet bliver konverteret til et format der er kompatibel med enheden der afspiller mediet.",
|
||||
"Medium": "Medie",
|
||||
"Menu": "Menu",
|
||||
"MessageImageFileTypeAllowed": "Kun JPEG og PNG filer er understøttet.",
|
||||
"MessageImageTypeNotSelected": "Vælg venligst en type af billede i drop-down menuen.",
|
||||
"MessageNoDownloadsFound": "Ingen offline hentninger. Hent dine medier til offline brug ved at klikke Hent igennem app'en.",
|
||||
"MessagePlayAccessRestricted": "Afspilning af dette indhold er begrænset. Kontakt venligst server administratoren for mere information.",
|
||||
"Metadata": "Metadata",
|
||||
"Mobile": "Mobil",
|
||||
@ -1364,51 +1292,33 @@
|
||||
"OptionAuto": "Automatisk",
|
||||
"OptionAutomatic": "Automatisk",
|
||||
"OptionBanner": "Banner",
|
||||
"OptionBeta": "Beta",
|
||||
"OptionBluray": "Blu-Ray",
|
||||
"OptionCaptionInfoExSamsung": "CaptionInfoEx (Samsung)",
|
||||
"OptionConvertRecordingsToStreamingFormatHelp": "Optagelser vil blive konverteret med det samme til MKV for let afspilning på dine enheder.",
|
||||
"OptionDev": "Dev",
|
||||
"OptionDownloadBannerImage": "Bannere",
|
||||
"OptionDownloadLogoImage": "Logo",
|
||||
"OptionDownloadMenuImage": "Menu",
|
||||
"OptionHasTrailer": "Forfilm",
|
||||
"OptionIsHD": "HD",
|
||||
"OptionIsSD": "SD",
|
||||
"OptionIso": "ISO",
|
||||
"OptionLikes": "Favoritter",
|
||||
"OptionLogo": "Logo",
|
||||
"OptionMenu": "Menu",
|
||||
"OptionMobileApps": "Mobil apps",
|
||||
"OptionOff": "Fra",
|
||||
"OptionOn": "Til",
|
||||
"OptionProfileVideo": "Video",
|
||||
"OptionProtocolHls": "Web Live Streaming",
|
||||
"OptionProtocolHttp": "Web",
|
||||
"OptionRegex": "Regex",
|
||||
"OptionRequirePerfectSubtitleMatchHelp": "At påkræve en perfekt match vil filtrere undertekster så kun dem der er testet og tjekket der passer nøjagtigt til din video fil vil blive inkluderet. At fravælge denne vil forøge chancerne for at undertekster bliver hentet, men vil også forøge risikoen for ikke-passende og ukorrekte undertekster.",
|
||||
"OptionResElement": "res element",
|
||||
"OptionTags": "Mærker",
|
||||
"OptionVideoBitrate": "Video Bitrate",
|
||||
"PerfectMatch": "Perfekt match",
|
||||
"PersonTypePerson": "Person",
|
||||
"Photos": "Fotoer",
|
||||
"PlayCount": "Afspilninger",
|
||||
"PlayNext": "Afspil næste",
|
||||
"PlayNextEpisodeAutomatically": "Afspil næste afsnit automatisk",
|
||||
"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",
|
||||
"PlaybackSettingsIntro": "For at indstille standard afspilningsindstillingerne, stop video afspilning, herefter klik på dit bruger ikon i øverste højre sektion af denne app.",
|
||||
"Playlists": "Afspilningslister",
|
||||
"Previous": "Forrige",
|
||||
"Primary": "Primær",
|
||||
"PrivacyPolicy": "Privatlivs politik",
|
||||
"Raised": "Forhøjet",
|
||||
"Rate": "Rate",
|
||||
"Recordings": "Optagelser",
|
||||
"RefFramesNotSupported": "Antal af video reference billeder ikke understøttet",
|
||||
"RefreshMetadata": "Genopfrisk metadata",
|
||||
"RepeatAll": "Gentag alle",
|
||||
"RepeatMode": "Gentagelses tilstand",
|
||||
@ -1417,7 +1327,6 @@
|
||||
"ScanForNewAndUpdatedFiles": "Skan for nye og opdaterede filer",
|
||||
"Schedule": "Tidsplan",
|
||||
"Screenshot": "Skærmbillede",
|
||||
"SecondaryAudioNotSupported": "Lydspor skift ikke understøttet",
|
||||
"SeriesDisplayOrderHelp": "Sortér episoder efter luftdato, DVD-orden eller absolut nummerering.",
|
||||
"ShowTitle": "Vis titel",
|
||||
"ShowYear": "Vis år",
|
||||
@ -1428,37 +1337,26 @@
|
||||
"SmartSubtitlesHelp": "Undertekster der matcher det foretrukne sprog vil blive indlæst når lyden er et fremmed sprog.",
|
||||
"Sort": "Sortér",
|
||||
"SortByValue": "Sortér efter {0}",
|
||||
"Standard": "Standard",
|
||||
"SubtitleAppearanceSettingsAlsoPassedToCastDevices": "Disse indstilinger bliver aktiveret på enhver Chromecast afspilning på denne enhed.",
|
||||
"SubtitleAppearanceSettingsDisclaimer": "Disse indstillinger bliver ikke aktiveret på grafiske undertekster (PGS, DVD, etc) eller ASS/SSA undertekster der har deres egen indbyggede stil.",
|
||||
"SubtitleCodecNotSupported": "Undertekst format ikke understøttet",
|
||||
"SubtitleSettings": "Undertekst indstillinger",
|
||||
"SubtitleSettingsIntro": "For at konfigurere standard undertekst udseende og sprog indstillinger, stop video afspilning, herefter klik på dit bruger ikon i øverste højre sektion af denne app.",
|
||||
"Suggestions": "Forslag",
|
||||
"TV": "TV",
|
||||
"TabAlbums": "Albummer",
|
||||
"TabCodecs": "Codeks",
|
||||
"TabDLNA": "DLNA",
|
||||
"TabGuide": "Vejledning",
|
||||
"TabInfo": "Information",
|
||||
"TabLiveTV": "Live TV",
|
||||
"TabLogs": "Log",
|
||||
"TabMetadata": "Metadata",
|
||||
"TabNavigation": "Navigering",
|
||||
"TabPlaylist": "Afspilningsliste",
|
||||
"TabServer": "Server",
|
||||
"TabStreaming": "Streamer",
|
||||
"TabTV": "TV",
|
||||
"Tags": "Mærker",
|
||||
"TagsValue": "Mærker: {0}",
|
||||
"ThemeSongs": "Tema sange",
|
||||
"ThemeVideos": "Tema videoer",
|
||||
"TheseSettingsAffectSubtitlesOnThisDevice": "Disse indstillinger påvirker undertekster på denne enhed",
|
||||
"Thumb": "Tommel",
|
||||
"TitleLiveTV": "Live TV",
|
||||
"TitleServer": "Server",
|
||||
"TitleSupport": "Support",
|
||||
"Trailer": "Forfilm",
|
||||
"Trailers": "Forfilm",
|
||||
"Transcoding": "Omkodning",
|
||||
"Uniform": "Ensformig",
|
||||
@ -1466,25 +1364,14 @@
|
||||
"Up": "Op",
|
||||
"Upload": "Upload",
|
||||
"ValueCodec": "Codek: {0}",
|
||||
"ValueLinks": "Link: {0}",
|
||||
"ValueMinutes": "{0} minutter",
|
||||
"ValueOneAlbum": "1 album",
|
||||
"ValueOneEpisode": "1 afsnit",
|
||||
"ValueOneTrailer": "1 forfilm",
|
||||
"ValueSeconds": "{0} sekunder",
|
||||
"ValueSpecialEpisodeName": "Special - {0}",
|
||||
"ValueStatus": "Status: {0}",
|
||||
"ValueVideoCodec": "Video Codek: {0}",
|
||||
"VersionNumber": "Version {0}",
|
||||
"Vertical": "Vertikal",
|
||||
"VideoBitDepthNotSupported": "Video bit dybde ikke understøttet",
|
||||
"VideoCodecNotSupported": "Video codek ikke understøttet",
|
||||
"VideoFramerateNotSupported": "Video billedrate ikke understøttet",
|
||||
"VideoLevelNotSupported": "Video level ikke understøttet",
|
||||
"VideoProfileNotSupported": "Video profil ikke understøttet",
|
||||
"VideoRange": "Video rækkevidde",
|
||||
"VideoResolutionNotSupported": "Video opløsning ikke understøttet",
|
||||
"ViewTypeTvShows": "TV",
|
||||
"Watched": "Set",
|
||||
"Whitelist": "Hvidliste",
|
||||
"Yes": "Ja",
|
||||
|
@ -3,12 +3,10 @@
|
||||
"AccessRestrictedTryAgainLater": "Der Zugriff ist derzeit eingeschränkt. Bitte versuche es später erneut.",
|
||||
"Actor": "Darsteller(in)",
|
||||
"Add": "Hinzufügen",
|
||||
"AddGuideProviderHelp": "Fernsehprogrammquelle hinzufügen",
|
||||
"AddItemToCollectionHelp": "Fügen Sie Elemente zu Sammlungen hinzu, indem Sie sie suchen und deren Rechtsklick- oder Antippmenü benutzen.",
|
||||
"AddToCollection": "Zur Sammlung hinzufügen",
|
||||
"AddToPlayQueue": "Zur Warteschlange hinzufügen",
|
||||
"AddToPlaylist": "Zur Wiedergabeliste hinzufügen",
|
||||
"AddUser": "Benutzer anlegen",
|
||||
"AddedOnValue": "{0} hinzugefügt",
|
||||
"AdditionalNotificationServices": "Durchsuchen sie den Pluginkatalog um weitere Benachrichtigungsdienste zu installieren.",
|
||||
"AirDate": "Erstausstrahlung",
|
||||
@ -20,7 +18,6 @@
|
||||
"AllEpisodes": "Alle Folgen",
|
||||
"AllLanguages": "Alle Sprachen",
|
||||
"AllLibraries": "Alle Bibliotheken",
|
||||
"AllowDeletionFromAll": "Erlaube Medienlöschung in allen Bibliotheken",
|
||||
"AllowHWTranscodingHelp": "Dem Tuner erlauben, Streams in Echtzeit zu transkodieren. Das hilft eventuell, die Transkodierung durch den Jellyfin Server zu reduzieren.",
|
||||
"AllowMediaConversion": "Erlaube Medienkonvertierung",
|
||||
"AllowMediaConversionHelp": "Erlaube oder unterbinde Zugriff auf die Medienkonvertierung.",
|
||||
@ -39,19 +36,12 @@
|
||||
"Ascending": "Aufsteigend",
|
||||
"AspectRatio": "Seitenverhältnis",
|
||||
"AttributeNew": "Neu",
|
||||
"AudioBitDepthNotSupported": "Audiobittiefe nicht unterstützt",
|
||||
"AudioBitrateNotSupported": "Audiobitrate nicht unterstützt",
|
||||
"AudioChannelsNotSupported": "Audiokanäle nicht unterstützt",
|
||||
"AudioCodecNotSupported": "Audiocodec nicht unterstützt",
|
||||
"AudioProfileNotSupported": "Audioprofil nicht unterstützt",
|
||||
"AudioSampleRateNotSupported": "Tonabtastrate nicht unterstützt",
|
||||
"AutoBasedOnLanguageSetting": "Automatisch (basierend auf Spracheinstellung)",
|
||||
"Backdrop": "Hintergrund",
|
||||
"Backdrops": "Hintergründe",
|
||||
"BirthDateValue": "Geboren: {0}",
|
||||
"BirthLocation": "Geburtsort",
|
||||
"BirthPlaceValue": "Geburtsort: {0}",
|
||||
"BobAndWeaveWithHelp": "Bob & Weave (höhere Qualität, aber langsamer)",
|
||||
"BookLibraryHelp": "Hörbücher und E-Books werden unterstützt. Schaue in den {0} Book Naming Guide {1}.",
|
||||
"Books": "Bücher",
|
||||
"BoxRear": "Box (Rückseite)",
|
||||
@ -255,7 +245,6 @@
|
||||
"H264CrfHelp": "Der Constant Rate Factor (CRF) bezeichnet die Einstellung für die Standardqualität des x264 Encoders. Setze einen Wert zwischen 0 und 51. Ein niedriger Wert resultiert in besserer Qualität (auf Kosten einer größeren Datei). Gängige Werte sind 18-28. Der Standard für x264 ist 23 und empfohlen als Startpunkt.",
|
||||
"EncoderPresetHelp": "Wähle einen schnelleren Wert um die Performance zu verbessern oder einen langsameren Wert um die Qualität zu verbessern.",
|
||||
"HDPrograms": "HD Programme",
|
||||
"HandledByProxy": "Verwaltet vom Reverse Proxy",
|
||||
"HardwareAccelerationWarning": "Das Aktivieren der Hardwarebeschleunigung kann auf einigen Systemen zu Instabilität führen. Stellen Sie sicher, dass Ihr Betriebssystem sowie Ihre Grafikkarten-Treiber auf dem aktuellsten Stand sind. Wenn Sie nach der Aktivierung Probleme mit der Wiedergabe von Videos haben, müssen Sie diese Einstellung zurück auf \"Keine\" stellen.",
|
||||
"HeaderAccessSchedule": "Zugangsplan",
|
||||
"HeaderAccessScheduleHelp": "Erstelle einen Zugangsplan, um den Zugriff auf bestimmte Zeiten zu limitieren.",
|
||||
@ -722,7 +711,6 @@
|
||||
"LabelScheduledTaskLastRan": "Zuletzt ausgeführt vor: {0}. Benötigte Zeit: {1}.",
|
||||
"LabelScreensaver": "Bildschirmschoner:",
|
||||
"LabelSeasonNumber": "Staffelnummer:",
|
||||
"LabelSecureConnectionsMode": "Sicherer Verbindungsmodus:",
|
||||
"LabelSelectFolderGroups": "Gruppiere Inhalte von folgenden Verzeichnissen automatisch zu Ansichten wie beispielsweise Filme, Musik und TV:",
|
||||
"LabelSelectFolderGroupsHelp": "Verzeichnisse die nicht markiert sind werden alleine mit ihren eigenen Ansichten angezeigt.",
|
||||
"LabelSelectUsers": "Wähle Benutzer:",
|
||||
@ -845,7 +833,6 @@
|
||||
"MessageCreateAccountAt": "Erstellen Sie ein Konto bei {0}",
|
||||
"MessageDeleteTaskTrigger": "Bist du dir sicher, dass du diesen Aufgabenauslöser entfernen möchtest?",
|
||||
"MessageDirectoryPickerBSDInstruction": "Für BSD müssen Sie ggf. Speicherplatz auf Ihrem FreeNAS Jail für Empby freigeben.",
|
||||
"MessageDirectoryPickerInstruction": "Falls der Netzwerk Button deine Endgeräte nicht automatisch findet, kannst du deren Netzwerkpfade auch manuell eintragen. Zum Beispiel {0} oder {1}.",
|
||||
"MessageDirectoryPickerLinuxInstruction": "Für Linux auf Arch Linux, CentOS, Debian, Fedora, openSUSE oder Ubuntu muss der Service Benutzer mindestens lesenden Zugriff auf die Speicherorte der Medien besitzen.",
|
||||
"MessageDownloadQueued": "Download eingereiht.",
|
||||
"MessageEnablingOptionLongerScans": "Die Aktivierung dieser Option kann erheblich längere Bibliotheks-Scans verursachen.",
|
||||
@ -1066,7 +1053,6 @@
|
||||
"PreferEmbeddedTitlesOverFileNamesHelp": "Das bestimmt den Standard Displaytitel wenn keine lokale oder Internetmetadaten verfügbar sind.",
|
||||
"PreferEmbeddedEpisodeInfosOverFileNames": "Bevorzuge eingebettete Episodeninformationen vor Dateinamen",
|
||||
"PreferEmbeddedEpisodeInfosOverFileNamesHelp": "Bevorzugt die in den Metadaten eingebetteten Episodeninformationen.",
|
||||
"PreferredNotRequired": "Bevorzugt, aber nicht benötigt",
|
||||
"Premieres": "Premieren",
|
||||
"Previous": "Vorheriges",
|
||||
"Primary": "Primär",
|
||||
@ -1103,7 +1089,6 @@
|
||||
"RepeatOne": "Dieses wiederholen",
|
||||
"ReplaceAllMetadata": "Ersetze alle Metadaten",
|
||||
"ReplaceExistingImages": "Ersetze vorhandene Bilder",
|
||||
"RequiredForAllRemoteConnections": "Benötigt für alle Remote Verbindungen",
|
||||
"ResumeAt": "Fortsetzen bei {0}",
|
||||
"Rewind": "Zurückspulen",
|
||||
"RunAtStartup": "Nach Hochfahren automatisch starten",
|
||||
@ -1251,7 +1236,6 @@
|
||||
"ValueTimeLimitSingleHour": "Zeitlimit: 1 Stunde",
|
||||
"Vertical": "Vertikal",
|
||||
"ViewAlbum": "Zeige Album",
|
||||
"ViewArtist": "Zeige Darsteller",
|
||||
"ViewPlaybackInfo": "Abspielinfo ansehen",
|
||||
"Watched": "Gesehen",
|
||||
"Wednesday": "Mittwoch",
|
||||
@ -1318,7 +1302,6 @@
|
||||
"ColorTransfer": "Farbtransfer",
|
||||
"LabelTypeText": "Text",
|
||||
"LabelVersion": "Version:",
|
||||
"LabelVersionNumber": "Version {0}",
|
||||
"LabelVideo": "Video",
|
||||
"LeaveBlankToNotSetAPassword": "Dieses Feld frei lassen, um kein Passwort zu setzen.",
|
||||
"LinksValue": "Links: {0}",
|
||||
@ -1372,28 +1355,19 @@
|
||||
"ValueCodec": "Codec: {0}",
|
||||
"ValueContainer": "Container: {0}",
|
||||
"ValueDiscNumber": "Disk {0}",
|
||||
"ValueStatus": "Status: {0}",
|
||||
"ValueStudio": "Studio: {0}",
|
||||
"ValueStudios": "Studios: {0}",
|
||||
"ValueVideoCodec": "Videocodec: {0}",
|
||||
"ViewTypeTvShows": "TV",
|
||||
"HeaderClients": "Endgeräte",
|
||||
"LabelLimit": "Limit:",
|
||||
"LabelTag": "Tag:",
|
||||
"LabelTagline": "Markierungen:",
|
||||
"LinkCommunity": "Community",
|
||||
"OptionDownloadThumbImage": "Vorschau",
|
||||
"OptionMax": "Maximum",
|
||||
"OptionProfileVideoAudio": "Video Audio",
|
||||
"OptionSubstring": "Teilzeichenfolge",
|
||||
"OptionTags": "Markierungen",
|
||||
"OptionThumb": "Miniaturansicht",
|
||||
"Premiere": "Premiere",
|
||||
"Smart": "Schlau",
|
||||
"Tags": "Markierungen",
|
||||
"TagsValue": "Markierungen: {0}",
|
||||
"Thumb": "Miniaturansicht",
|
||||
"TitleSupport": "Hilfe",
|
||||
"Whitelist": "Erlaubt",
|
||||
"AuthProviderHelp": "Wähle einen Authentifizierungsanbieter, der zur Authentifizierung des Passworts dieses Benutzes verwendet werden soll.",
|
||||
"Features": "Funktionen",
|
||||
|
@ -692,7 +692,6 @@
|
||||
"LabelValue": "Τιμή:",
|
||||
"LabelVersion": "Έκδοση:",
|
||||
"LabelVersionInstalled": "{0} εγκαταστήθηκε",
|
||||
"LabelVersionNumber": "Έκδοση {0}",
|
||||
"LabelVideo": "Βίντεο",
|
||||
"LabelXDlnaCapHelp": "Καθορίζει το περιεχόμενο του στοιχείου X_DLNACAP στο urn:schemas-dlna-org:device-1-0 namespace.",
|
||||
"LabelXDlnaDocHelp": "Καθορίζει το περιεχόμενο του στοιχείου X_DLNACAP στο urn:schemas-dlna-org:device-1-0 namespace.",
|
||||
@ -777,7 +776,6 @@
|
||||
"MinutesBefore": "λεπτά πριν",
|
||||
"Mobile": "Κινητό/Τάμπλετ",
|
||||
"Monday": "Δευτέρα",
|
||||
"More": "Περισσότερα",
|
||||
"MoreFromValue": "Περισσότερα από {0}",
|
||||
"MoreUsersCanBeAddedLater": "Περισσότεροι χρήστες μπορούν να προστεθούν αργότερα στον πίνακα ελέγχου.",
|
||||
"MoveLeft": "Κινήσου αριστερά",
|
||||
@ -949,7 +947,6 @@
|
||||
"PleaseRestartServerName": "Κάντε επανεκκίνηση του Jellyfin Server - {0}.",
|
||||
"PleaseSelectTwoItems": "Επιλέξτε τουλάχιστον δύο στοιχεία.",
|
||||
"PluginInstalledMessage": "Η προσθήκη έχει εγκατασταθεί με επιτυχία. Θα πρέπει να γίνει επανεκκίνηση του διακομιστή Jellyfin για να εφαρμοστούν οι αλλαγές.",
|
||||
"PreferredNotRequired": "Προτιμώμενο, αλλά δεν απαιτείται",
|
||||
"Premiere": "Πρεμιέρα",
|
||||
"Premieres": "Πρεμιέρες",
|
||||
"Previous": "Προηγούμενο",
|
||||
@ -1137,7 +1134,6 @@
|
||||
"ValueVideoCodec": "Κωδικοποιητής βίντεο : {0}",
|
||||
"Vertical": "Κάθετα",
|
||||
"ViewAlbum": "Προβολή άλμπουμ",
|
||||
"ViewArtist": "Εμφάνιση Καλλιτέχνη",
|
||||
"ViewPlaybackInfo": "Προβολή πληροφοριών αναπαραγωγής",
|
||||
"Watched": "Έχει γίνει παρακολούθηση",
|
||||
"Wednesday": "Τετάρτη",
|
||||
@ -1176,7 +1172,6 @@
|
||||
"HeaderCodecProfile": "Προφίλ Κωδικοποιητή",
|
||||
"HeaderChapterImages": "Εικόνες Κεφαλαίων",
|
||||
"HeaderChannelAccess": "Πρόσβαση σε Κανάλια",
|
||||
"HeaderAudioLanguages": "Γλώσσες Ήχου",
|
||||
"HeaderApp": "Εφαρμογή",
|
||||
"HeaderAlbums": "Άλμπουμ",
|
||||
"HeaderAccessScheduleHelp": "Δημιουργήστε ένα πρόγραμμα πρόσβασης για να περιορίσετε την πρόσβαση ορισμένες ώρες.",
|
||||
|
@ -113,7 +113,6 @@
|
||||
"ButtonAudioTracks": "Audio Tracks",
|
||||
"ButtonBack": "Back",
|
||||
"ButtonCancel": "Cancel",
|
||||
"ButtonChangeContentType": "Change content type",
|
||||
"ButtonChangeServer": "Change Server",
|
||||
"ButtonConnect": "Connect",
|
||||
"ButtonDelete": "Delete",
|
||||
@ -135,7 +134,6 @@
|
||||
"ButtonLibraryAccess": "Library access",
|
||||
"ButtonManualLogin": "Manual Login",
|
||||
"ButtonMore": "More",
|
||||
"ButtonMoreInformation": "More Information",
|
||||
"ButtonNetwork": "Network",
|
||||
"ButtonNew": "New",
|
||||
"ButtonNextTrack": "Next track",
|
||||
@ -248,7 +246,6 @@
|
||||
"EnableBackdrops": "Backdrops",
|
||||
"EnableBackdropsHelp": "Display backdrops in the background of some pages while browsing the library.",
|
||||
"EnableCinemaMode": "Cinema mode",
|
||||
"EnableDebugLoggingHelp": "Debug logging should only be enabled as needed for troubleshooting purposes. The increased file system access may prevent the server machine from being able to sleep in some environments.",
|
||||
"EnableDisplayMirroring": "Display mirroring",
|
||||
"EnableExternalVideoPlayers": "External video players",
|
||||
"EnableExternalVideoPlayersHelp": "An external player menu will be shown when starting video playback.",
|
||||
@ -307,7 +304,6 @@
|
||||
"GuideProviderSelectListings": "Select Listings",
|
||||
"H264CrfHelp": "The Constant Rate Factor (CRF) is the default quality setting for the x264 encoder. You can set the values between 0 and 51, where lower values would result in better quality (at the expense of higher file sizes). Sane values are between 18 and 28. The default for x264 is 23, so you can use this as a starting point.",
|
||||
"EncoderPresetHelp": "Choose a faster value to improve performance, or a slower value to improve quality.",
|
||||
"HandledByProxy": "Handled by reverse proxy",
|
||||
"HardwareAccelerationWarning": "Enabling hardware acceleration may cause instability in some environments. Ensure that your operating system and video drivers are fully up to date. If you have difficulty playing video after enabling this, you'll need to change the setting back to None.",
|
||||
"HeaderAccessSchedule": "Access Schedule",
|
||||
"HeaderAccessScheduleHelp": "Create an access schedule to limit access to certain hours.",
|
||||
@ -338,8 +334,6 @@
|
||||
"HeaderCancelSeries": "Cancel Series",
|
||||
"HeaderCastAndCrew": "Cast & Crew",
|
||||
"HeaderCastCrew": "Cast & Crew",
|
||||
"HeaderChangeFolderType": "Change Content Type",
|
||||
"HeaderChangeFolderTypeHelp": "To change the type, please remove and rebuild the library with the new type.",
|
||||
"HeaderChannelAccess": "Channel Access",
|
||||
"HeaderChannels": "Channels",
|
||||
"HeaderChapterImages": "Chapter Images",
|
||||
@ -396,8 +390,6 @@
|
||||
"HeaderFrequentlyPlayed": "Frequently Played",
|
||||
"HeaderGenres": "Genres",
|
||||
"HeaderGuideProviders": "TV Guide Data Providers",
|
||||
"HeaderHomeScreen": "Home Screen",
|
||||
"HeaderHomeScreenSettings": "Home Screen Settings",
|
||||
"HeaderHttpHeaders": "HTTP Headers",
|
||||
"HeaderIdentification": "Identification",
|
||||
"HeaderIdentificationCriteriaHelp": "Enter at least one identification criteria.",
|
||||
@ -408,7 +400,6 @@
|
||||
"HeaderInstall": "Install",
|
||||
"HeaderInstantMix": "Instant Mix",
|
||||
"HeaderItems": "Items",
|
||||
"HeaderJellyfinServer": "Jellyfin Server",
|
||||
"HeaderKeepRecording": "Keep Recording",
|
||||
"HeaderKeepSeries": "Keep Series",
|
||||
"HeaderKodiMetadataHelp": "To enable or disable NFO metadata, edit a library in Jellyfin library setup and locate the metadata savers section.",
|
||||
@ -560,7 +551,6 @@
|
||||
"RunAtStartup": "Run at startup",
|
||||
"Rewind": "Rewind",
|
||||
"ResumeAt": "Resume from {0}",
|
||||
"RequiredForAllRemoteConnections": "Required for all remote connections",
|
||||
"ReplaceExistingImages": "Replace existing images",
|
||||
"ReplaceAllMetadata": "Replace all metadata",
|
||||
"RepeatOne": "Repeat one",
|
||||
@ -593,7 +583,6 @@
|
||||
"Previous": "Previous",
|
||||
"Premieres": "Premieres",
|
||||
"Premiere": "Premiere",
|
||||
"PreferredNotRequired": "Preferred, but not required",
|
||||
"PreferEmbeddedTitlesOverFileNamesHelp": "This determines the default display title when no internet metadata or local metadata is available.",
|
||||
"PreferEmbeddedTitlesOverFileNames": "Prefer embedded titles over filenames",
|
||||
"PluginInstalledMessage": "The plugin has been successfully installed. Jellyfin Server will need to be restarted for changes to take effect.",
|
||||
@ -729,7 +718,6 @@
|
||||
"MessageImageFileTypeAllowed": "Only JPEG and PNG files are supported.",
|
||||
"MessageForgotPasswordInNetworkRequired": "Please try again within your home network to initiate the password reset process.",
|
||||
"MessageForgotPasswordFileCreated": "The following file has been created on your server and contains instructions on how to proceed:",
|
||||
"MessageDirectoryPickerInstruction": "Network paths can be entered manually in the event the Network button fails to locate your devices. For example, {0} or {1}.",
|
||||
"MessageDeleteTaskTrigger": "Are you sure you wish to delete this task trigger?",
|
||||
"MessageCreateAccountAt": "Create an account at {0}",
|
||||
"MessageContactAdminToResetPassword": "Please contact your system administrator to reset your password.",
|
||||
@ -832,7 +820,6 @@
|
||||
"LabelSendNotificationToUsers": "Send the notification to:",
|
||||
"LabelSelectFolderGroupsHelp": "Folders that are unchecked will be displayed by themselves in their own view.",
|
||||
"LabelSelectFolderGroups": "Automatically group content from the following folders into views such as Movies, Music and TV:",
|
||||
"LabelSecureConnectionsMode": "Secure connection mode:",
|
||||
"LabelSeasonNumber": "Season number:",
|
||||
"LabelScreensaver": "Screensaver:",
|
||||
"EnableFasterAnimations": "Faster animations",
|
||||
@ -1330,7 +1317,6 @@
|
||||
"LabelMaxParentalRating": "Maximum allowed parental rating:",
|
||||
"LabelFolder": "Folder:",
|
||||
"LabelBaseUrl": "Base URL:",
|
||||
"ViewArtist": "View artist",
|
||||
"Up": "Up",
|
||||
"SearchForCollectionInternetMetadata": "Search the internet for artwork and metadata",
|
||||
"MediaInfoStreamTypeSubtitle": "Subtitle",
|
||||
|
@ -760,6 +760,7 @@
|
||||
"LabelChromecastVersion": "Chromecast Version",
|
||||
"LabelStable": "Stable",
|
||||
"LabelNightly": "Nightly",
|
||||
"LabelUnstable": "Unstable",
|
||||
"LabelNewName": "New name:",
|
||||
"LabelNewPassword": "New password:",
|
||||
"LabelNewPasswordConfirm": "New password confirm:",
|
||||
@ -1094,6 +1095,7 @@
|
||||
"NewEpisodesOnly": "New episodes only",
|
||||
"News": "News",
|
||||
"Next": "Next",
|
||||
"NextTrack": "Skip to next",
|
||||
"NextUp": "Next Up",
|
||||
"No": "No",
|
||||
"NoCreatedLibraries": "Seems like you haven't created any libraries yet. {0}Would you like to create one now?{1}",
|
||||
@ -1307,6 +1309,7 @@
|
||||
"Premiere": "Premiere",
|
||||
"Premieres": "Premieres",
|
||||
"Previous": "Previous",
|
||||
"PreviousTrack": "Skip to previous",
|
||||
"Primary": "Primary",
|
||||
"Producer": "Producer",
|
||||
"ProductionLocations": "Production locations",
|
||||
|
@ -87,23 +87,18 @@
|
||||
"Art": "Arte",
|
||||
"AsManyAsPossible": "Tantos como sea posible",
|
||||
"AspectRatio": "Relación de aspecto",
|
||||
"AudioBitrateNotSupported": "Tasa de bits de audio no soportado",
|
||||
"AudioSampleRateNotSupported": "Frecuencia de muestreo de audio no soportada",
|
||||
"Backdrops": "Imágenes de fondo",
|
||||
"Banner": "Cartel",
|
||||
"BestFit": "Mejor ajuste",
|
||||
"BirthDateValue": "Nacimiento: {0}",
|
||||
"BirthLocation": "Lugar de nacimiento",
|
||||
"BirthPlaceValue": "Lugar de nacimiento: {0}",
|
||||
"Blacklist": "Lista negra",
|
||||
"BobAndWeaveWithHelp": "Bob and weave (mayor calidad, pero más lento)",
|
||||
"BookLibraryHelp": "Se admiten libros de audio y texto. Revise la {0}guía de nombres de libros {1}.",
|
||||
"Box": "Caja",
|
||||
"BoxRear": "Caja (lado opuesto)",
|
||||
"Browse": "Explorar",
|
||||
"BrowsePluginCatalogMessage": "Explore nuestro catálogo de complementos para ver los complementos disponibles.",
|
||||
"BurnSubtitlesHelp": "Determina si el servidor debe grabarse en subtítulos al transcodificar videos. Evitar esto mejorará en gran medida el rendimiento. Seleccione Automático para grabar formatos basados en imágenes (VOBSUB, PGS, SUB, IDX, ...) y ciertos subtítulos ASS o SSA.",
|
||||
"ButtonAccept": "Aceptar",
|
||||
"ButtonAdd": "Agregar",
|
||||
"ButtonAddMediaLibrary": "Agregar biblioteca de medios",
|
||||
"ButtonAddScheduledTaskTrigger": "Agregar desencadenador",
|
||||
@ -116,14 +111,8 @@
|
||||
"ButtonAudioTracks": "Pistas de audio",
|
||||
"ButtonBack": "Atrás",
|
||||
"ButtonCancel": "Cancelar",
|
||||
"ButtonCancelSeries": "Cancelar serie",
|
||||
"ButtonChangeServer": "Cambiar servidor",
|
||||
"ButtonClear": "Limpiar",
|
||||
"ButtonClose": "Cerrar",
|
||||
"ButtonConfigurePassword": "Configurar contraseña",
|
||||
"ButtonConfigurePinCode": "Configurar clave PIN",
|
||||
"ButtonConnect": "Conectar",
|
||||
"ButtonCreate": "Crear",
|
||||
"ButtonDelete": "Eliminar",
|
||||
"ButtonDeleteImage": "Eliminar imagen",
|
||||
"ButtonDown": "Abajo",
|
||||
@ -131,119 +120,68 @@
|
||||
"ButtonEdit": "Editar",
|
||||
"ButtonEditImages": "Editar imágenes",
|
||||
"ButtonEditOtherUserPreferences": "Editar perfil, imagen y preferencias personales del usuario.",
|
||||
"ButtonExit": "Salir",
|
||||
"ButtonFilter": "Filtrar",
|
||||
"ButtonForgotPassword": "Olvidé mi contraseña",
|
||||
"ButtonFullscreen": "Pantalla completa",
|
||||
"ButtonGotIt": "Lo entendí",
|
||||
"ButtonGuide": "Guía",
|
||||
"ButtonHelp": "Ayuda",
|
||||
"ButtonHide": "Ocultar",
|
||||
"ButtonHome": "Inicio",
|
||||
"ButtonInfo": "Información",
|
||||
"ButtonInviteUser": "Invitar usuario",
|
||||
"ButtonLearnMore": "Aprender más",
|
||||
"ButtonLibraryAccess": "Acceso a la biblioteca",
|
||||
"ButtonManageFolders": "Administrar carpetas",
|
||||
"ButtonManageServer": "Administrar servidor",
|
||||
"ButtonManualLogin": "Inicio de sesión manual",
|
||||
"ButtonMenu": "Menú",
|
||||
"ButtonMore": "Más",
|
||||
"ButtonMute": "Silenciar",
|
||||
"ButtonNetwork": "Red",
|
||||
"ButtonNew": "Nuevo",
|
||||
"ButtonNewServer": "Nuevo servidor",
|
||||
"ButtonNext": "Siguiente",
|
||||
"ButtonNextTrack": "Pista siguiente",
|
||||
"ButtonNo": "No",
|
||||
"ButtonNowPlaying": "Reproduciendo ahora",
|
||||
"ButtonOff": "Desactivado",
|
||||
"ButtonOk": "Aceptar",
|
||||
"ButtonOpen": "Abrir",
|
||||
"ButtonParentalControl": "Control parental",
|
||||
"ButtonPause": "Pausar",
|
||||
"ButtonPlay": "Reproducir",
|
||||
"ButtonPlayTrailer": "Tráiler",
|
||||
"ButtonPlaylist": "Lista de reproducción",
|
||||
"ButtonPreferences": "Preferencias",
|
||||
"ButtonPrevious": "Anterior",
|
||||
"ButtonPreviousTrack": "Pista anterior",
|
||||
"ButtonPrivacyPolicy": "Política de privacidad",
|
||||
"ButtonProfile": "Perfil",
|
||||
"ButtonProfileHelp": "Definir imagen de perfil y contraseña",
|
||||
"ButtonQuality": "Calidad",
|
||||
"ButtonRecord": "Grabar",
|
||||
"ButtonRefresh": "Actualizar",
|
||||
"ButtonRefreshGuideData": "Actualizar datos de la guía",
|
||||
"ButtonReject": "Rechazar",
|
||||
"ButtonRemote": "Remoto",
|
||||
"ButtonRemoteControl": "Control remoto",
|
||||
"ButtonRemove": "Quitar",
|
||||
"ButtonRename": "Renombrar",
|
||||
"ButtonRepeat": "Repetir",
|
||||
"ButtonReports": "Reportes",
|
||||
"ButtonReset": "Restablecer",
|
||||
"ButtonResetEasyPassword": "Restablecer código PIN",
|
||||
"ButtonResetPassword": "Restablecer contraseña",
|
||||
"ButtonResetTuner": "Restablecer sintonizador",
|
||||
"ButtonRestart": "Reiniciar",
|
||||
"ButtonRestartNow": "Reiniciar ahora",
|
||||
"ButtonResume": "Resumir",
|
||||
"ButtonRevoke": "Revocar",
|
||||
"ButtonSave": "Guardar",
|
||||
"ButtonScanAllLibraries": "Escanear todas las bibliotecas",
|
||||
"ButtonScanLibrary": "Escanear biblioteca",
|
||||
"ButtonScheduledTasks": "Tareas programadas",
|
||||
"ButtonSearch": "Buscar",
|
||||
"ButtonSelect": "Seleccionar",
|
||||
"ButtonSelectDirectory": "Seleccionar directorio",
|
||||
"ButtonSelectServer": "Seleccionar servidor",
|
||||
"ButtonSelectView": "Seleccionar vista",
|
||||
"ButtonSend": "Enviar",
|
||||
"ButtonSendInvitation": "Enviar invitación",
|
||||
"ButtonServer": "Servidor",
|
||||
"ButtonServerDashboard": "Panel del servidor",
|
||||
"ButtonSettings": "Configuraciones",
|
||||
"ButtonShare": "Compartir",
|
||||
"ButtonShuffle": "Aleatorio",
|
||||
"ButtonShutdown": "Apagar",
|
||||
"ButtonSignIn": "Iniciar sesión",
|
||||
"ButtonSkip": "Saltear",
|
||||
"ButtonSort": "Ordenar",
|
||||
"ButtonStart": "Iniciar",
|
||||
"ButtonStop": "Detener",
|
||||
"ButtonStopRecording": "Detener grabación",
|
||||
"ButtonSubmit": "Enviar",
|
||||
"ButtonSubtitles": "Subtítulos",
|
||||
"ButtonSync": "Sincronizar",
|
||||
"ButtonTrailer": "Avance",
|
||||
"ButtonTryAgain": "Intentar de nuevo",
|
||||
"ButtonUninstall": "Desinstalar",
|
||||
"ButtonUnmute": "Desilenciar",
|
||||
"ButtonUp": "Arriba",
|
||||
"ButtonUpdateNow": "Actualizar ahora",
|
||||
"ButtonView": "Ver",
|
||||
"ButtonViewAlbum": "Ver álbum",
|
||||
"ButtonViewArtist": "Ver artista",
|
||||
"ButtonViewWebsite": "Ver sitio web",
|
||||
"ButtonWebsite": "Sitio web",
|
||||
"ButtonYes": "Si",
|
||||
"CancelDownload": "Cancelar descarga",
|
||||
"CancelRecording": "Cancelar grabación",
|
||||
"CancelSeries": "Cancelar serie",
|
||||
"Categories": "Categorías",
|
||||
"CategoryApplication": "Aplicación",
|
||||
"CategoryPlugin": "Complemento",
|
||||
"CategorySync": "Sincronización",
|
||||
"CategorySystem": "Sistema",
|
||||
"CategoryUser": "Usuario",
|
||||
"ChangingMetadataImageSettingsNewContent": "Cambiar la configuración de descarga de metadatos o arte solo aplicará al contenido nuevo que se agregue a tu biblioteca. Para aplicar los cambios a los títulos existentes, tendrás que actualizar sus metadatos manualmente.",
|
||||
"ChannelAccessHelp": "Selecciona los canales a compartir con este usuario. Los administradores podrán editar todos los canales con el administrador de metadatos.",
|
||||
"ChannelNameOnly": "Sólo canal {0}",
|
||||
"ChannelNumber": "Número del canal",
|
||||
"CinemaModeConfigurationHelp": "El modo cine trae la experiencia del cine directamente a tu living, con la posibilidad de reproducir avances e introducciones personalizadas antes de la función principal.",
|
||||
"CinemaModeFeatureDescription": "El modo cine te da la verdadera experiencia del cine con tráilers e introducciones personalizadas antes de la función principal.",
|
||||
"CloudSyncFeatureDescription": "Sincroniza tus medios a la nube para respaldos, archivados y conversiones más fáciles.",
|
||||
"ColorPrimaries": "Colores primarios",
|
||||
"ColorSpace": "Espacio de color",
|
||||
"ColorTransfer": "Transferencia de color",
|
||||
@ -255,28 +193,14 @@
|
||||
"ConfirmDeleteItems": "Eliminar estos elementos los eliminará tanto del sistema de archivos como de la biblioteca de medios. ¿Está seguro que desea continuar?",
|
||||
"ConfirmDeletion": "Confirmar eliminación",
|
||||
"ConfirmEndPlayerSession": "¿Desea apagar Jellyfin en {0}?",
|
||||
"ConfirmRemoveDownload": "¿Quitar descarga?",
|
||||
"Connect": "Conectar",
|
||||
"ContainerBitrateExceedsLimit": "La tasa de bits del medio excede el límite.",
|
||||
"ContainerNotSupported": "Contenedor no soportado",
|
||||
"Continue": "Continuar",
|
||||
"ContinueInSecondsValue": "Continuar en {0} segundos.",
|
||||
"ContinueWatching": "Seguir viendo",
|
||||
"Continuing": "Continuando",
|
||||
"Convert": "Convertir",
|
||||
"ConvertItemLimitHelp": "Opcional. Configure un límite en el número de elementos que serán convertidos.",
|
||||
"ConvertUnwatchedVideosOnly": "Convertir sólo videos no vistos.",
|
||||
"ConvertUnwatchedVideosOnlyHelp": "Unicamente los videos no visualizados van a ser convertidos.",
|
||||
"ConvertingDots": "Convirtiendo...",
|
||||
"Countries": "Paises",
|
||||
"CoverArt": "Arte de portada",
|
||||
"CustomDlnaProfilesHelp": "Crear un perfil personalizado para apuntar un nuevo dispositivo o sobre-escribir el perfil del sistema.",
|
||||
"DateAdded": "Fecha agregada",
|
||||
"DatePlayed": "Fecha de reproducción",
|
||||
"Days": "Dias",
|
||||
"DeathDateValue": "Muerte: {0}",
|
||||
"Default": "Predeterminado",
|
||||
"DefaultCameraUploadPathHelp": "Selecciona un directorio personalizado. Si queda en blanco, una carpeta predeterminada va a ser usada. Si es una carpeta personalizada, esta va a necesitar ser agregada en la biblioteca, en la configuración de bibliotecas de Jellyfin.",
|
||||
"DefaultErrorMessage": "Hubo un error procesando la solicitud. Por favor intentalo nuevamente mas tarde.",
|
||||
"DefaultMetadataLangaugeDescription": "Estos son tus predeterminados y pueden ser personalizados por librería únicamente.",
|
||||
"Delete": "Borrar",
|
||||
@ -291,8 +215,6 @@
|
||||
"Desktop": "Escritorio",
|
||||
"DetectingDevices": "Detectando dispositivos",
|
||||
"DeviceAccessHelp": "Esto aplica solo a dispositivos que pueden ser identificados y esto no va a prevenir el acceso con el navegador. Filtrar el acceso a los dispositivos del usuario va a prevenir el uso con nuevos dispositivos, hasta que estos sean aprobados.",
|
||||
"DeviceLastUsedByUserName": "Usado ultima vez por {0}",
|
||||
"DirectPlayError": "Error en la reproducción directa",
|
||||
"DirectPlaying": "Reproducción directa",
|
||||
"DirectStreamHelp1": "El medio es compatible con el dispositivo con respecto a la resolución y el tipo de medio (H.264, AC3, etc.), pero está en un contenedor de archivos incompatible (mkv, avi, wmv, etc.). El video se volverá a empaquetar sobre la marcha antes de transmitirlo al dispositivo.",
|
||||
"DirectStreamHelp2": "La transmisión directa de un archivo utiliza muy poca potencia de procesamiento sin pérdida de calidad de video.",
|
||||
@ -311,16 +233,9 @@
|
||||
"DoNotRecord": "No grabar",
|
||||
"Down": "Abajo",
|
||||
"Download": "Descargar",
|
||||
"DownloadItemLimitHelp": "Opcional. Establecer un limite a los items por descargar.",
|
||||
"Downloaded": "Descargado",
|
||||
"Downloading": "Descargando",
|
||||
"DownloadingDots": "Descargando...",
|
||||
"Downloads": "Descargas",
|
||||
"DownloadsValue": "{0} descargas",
|
||||
"DrmChannelsNotImported": "Canales con DRM no van a ser importados.",
|
||||
"DropShadow": "Dejar sombra",
|
||||
"DvrFeatureDescription": "Agendar grabaciones individuales de TV en vivo, grabaciones de series y mucho mas con Jellyfin DVR.",
|
||||
"DvrSubscriptionRequired": "Jellyfin DVR requiere una suscripción a Jellyfin Premiere.",
|
||||
"EasyPasswordHelp": "Su código PIN fácil se usa para acceder sin conexión a clientes compatibles y también se puede usar para iniciar sesión fácilmente en la red.",
|
||||
"Edit": "Editar",
|
||||
"EditImages": "Editar imagenes",
|
||||
@ -334,7 +249,6 @@
|
||||
"CriticRating": "Valoración crítica",
|
||||
"DefaultSubtitlesHelp": "Los subtítulos se cargan según los indicadores predeterminados y forzados en los metadatos incrustados. Las preferencias de idioma se consideran cuando hay varias opciones disponibles.",
|
||||
"Dislike": "No me gusta",
|
||||
"EnableDebugLoggingHelp": "El registro de depuración debería activarse solo a fin de solucionar problemas. El incremento en el acceso al sistema de archivos podría prevenir que el servidor entre en modo de suspensión en algunos entornos.",
|
||||
"EnableDisplayMirroring": "Habilitar duplicación de la pantalla",
|
||||
"EnableExternalVideoPlayers": "Habilitar reproductores de video externos",
|
||||
"EnableExternalVideoPlayersHelp": "Se mostrará un menú de reproductor externo al iniciar la reproducción de video.",
|
||||
@ -431,7 +345,6 @@
|
||||
"HeaderAccessScheduleHelp": "Cree un horario de acceso para limitar el acceso a ciertas horas.",
|
||||
"HeaderAccessSchedule": "Horario de acceso",
|
||||
"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 el desempeño, o elige un valor más lento para mejorar la calidad.",
|
||||
"FetchingData": "Obteniendo información adicional",
|
||||
@ -1472,7 +1385,6 @@
|
||||
"Wednesday": "Miércoles",
|
||||
"Watched": "Visto",
|
||||
"ViewPlaybackInfo": "Ver información de reproducción",
|
||||
"ViewArtist": "Ver artista",
|
||||
"ViewAlbum": "Ver álbum",
|
||||
"VideoRange": "Rango de video",
|
||||
"Vertical": "Vertical",
|
||||
|
@ -1,6 +1,5 @@
|
||||
{
|
||||
"Absolute": "Absoluto",
|
||||
"Accept": "Aceptar",
|
||||
"AccessRestrictedTryAgainLater": "El acceso está restringido actualmente. Por favor, inténtalo más tarde.",
|
||||
"Add": "Agregar",
|
||||
"AddItemToCollectionHelp": "Agrega elementos a las colecciones buscándolos y utilizando sus menúes al hacer clic derecho o al tocarlos para agregarlos a una colección.",
|
||||
@ -29,7 +28,6 @@
|
||||
"AllowedRemoteAddressesHelp": "Lista separada por comas de direcciones IP/máscaras de red para las redes a las que se les permitirá conectarse remotamente. Si se deja en blanco, se les permitirá a todas las direcciones remotas.",
|
||||
"AlwaysPlaySubtitles": "Siempre reproducir",
|
||||
"AlwaysPlaySubtitlesHelp": "Los subtítulos que coincidan con el idioma preferido serán cargados independientemente del idioma del audio.",
|
||||
"AnamorphicVideoNotSupported": "Video anamorfico no soportado",
|
||||
"AnyLanguage": "Cualquier idioma",
|
||||
"Anytime": "En cualquier momento",
|
||||
"AroundTime": "Alrededor de",
|
||||
@ -43,7 +41,6 @@
|
||||
"Backdrop": "Imagen de fondo",
|
||||
"Backdrops": "Imágenes de fondo",
|
||||
"Banner": "Banner",
|
||||
"BestFit": "Mejor ajuste",
|
||||
"BirthDateValue": "Nacimiento: {0}",
|
||||
"BirthLocation": "Lugar de nacimiento",
|
||||
"BirthPlaceValue": "Lugar de nacimiento: {0}",
|
||||
@ -265,7 +262,6 @@
|
||||
"H264CrfHelp": "El «Factor de transferencia constante» (CRF) es la configuración de calidad por defecto para el codificador x264. Puedes establecer valores entre 0 y 51, donde los valores más bajos dan como resultado mejor calidad (a expensas de archivos más grandes). Los valores comunes son entre 18 y 28. El valor por defecto para x264 es 23, así que puedes usar este valor como punto de referencia.",
|
||||
"EncoderPresetHelp": "Elige un valor más rápido para mejorar el rendimiento, o uno más lento para mejorar la calidad.",
|
||||
"HDPrograms": "Programas en HD",
|
||||
"HandledByProxy": "Manejado por un proxy inverso",
|
||||
"HardwareAccelerationWarning": "Habilitar la aceleración por hardware podría causar inestabilidad en algunos entornos. Asegúrate de que tu sistema operativo y controladores de video están actualizados. Si tienes dificultades reproduciendo videos después de habilitar esto, necesitarás volver a cambiar la configuración a Ninguno.",
|
||||
"HeaderAccessSchedule": "Programación de acceso",
|
||||
"HeaderAccessScheduleHelp": "Crea una programación de acceso para limitar el acceso a ciertos horarios.",
|
||||
@ -745,7 +741,6 @@
|
||||
"LabelScheduledTaskLastRan": "Última ejecución {0}, tomando {1}.",
|
||||
"LabelScreensaver": "Protector de pantalla:",
|
||||
"LabelSeasonNumber": "Temporada número:",
|
||||
"LabelSecureConnectionsMode": "Modo de conexión segura:",
|
||||
"LabelSelectFolderGroups": "Agrupar automáticamente el contenido de las siguientes carpetas a vistas como Películas, Música y TV:",
|
||||
"LabelSelectFolderGroupsHelp": "Las carpetas sin marcar serán mostradas individualmente en su propia vista.",
|
||||
"LabelSelectUsers": "Seleccionar usuarios:",
|
||||
@ -816,7 +811,6 @@
|
||||
"LabelValue": "Valor:",
|
||||
"LabelVersion": "Versión:",
|
||||
"LabelVersionInstalled": "{0} instalado",
|
||||
"LabelVersionNumber": "Versión {0}",
|
||||
"LabelXDlnaCap": "X-DLNA límite:",
|
||||
"LabelXDlnaCapHelp": "Determina el contenido del elemento X_DLNACAP en el namespace urn:schemas-dlna-org:device-1-0.",
|
||||
"LabelXDlnaDoc": "Documento X-DLNA:",
|
||||
@ -885,7 +879,6 @@
|
||||
"MessageCreateAccountAt": "Crear una cuenta en {0}",
|
||||
"MessageDeleteTaskTrigger": "¿Estás seguro de querer eliminar este disparador de tarea?",
|
||||
"MessageDirectoryPickerBSDInstruction": "Para BSD, quizás necesites configurar el almacenamiento dentro de tu «FreeNAS Jail» de manera que permita a Jellyfin accederlo.",
|
||||
"MessageDirectoryPickerInstruction": "Las rutas de red pueden ser introducidas manualmente en caso de que el botón de Red no pueda localizar sus dispositivos. Por ejemplo, {0} o {1}.",
|
||||
"MessageDirectoryPickerLinuxInstruction": "Para Linux en Arch Linux, CentOS, Debian, Fedora, openSUSE o Ubuntu, debes conceder al usuario del servicio al menos permisos de lectura a tus ubicaciones de almacenamiento.",
|
||||
"MessageDownloadQueued": "Descarga puesta en la cola.",
|
||||
"MessageEnablingOptionLongerScans": "Habilitar esta opción podría resultar en escaneos de bibliotecas significativamente más largos.",
|
||||
@ -1119,7 +1112,6 @@
|
||||
"PluginInstalledMessage": "El complemento ha sido instalado con éxito. El servidor Jellyfin necesitará ser reiniciado para que los cambios surtan efecto.",
|
||||
"PreferEmbeddedTitlesOverFileNames": "Preferir títulos incrustados a los nombres de archivo",
|
||||
"PreferEmbeddedTitlesOverFileNamesHelp": "Esto determina el título mostrado por defecto cuando no hay disponibles metadatos en Internet o localmente.",
|
||||
"PreferredNotRequired": "Preferido, más no es requerido",
|
||||
"Premiere": "Estreno",
|
||||
"Premieres": "Estrenos",
|
||||
"Previous": "Anterior",
|
||||
@ -1157,7 +1149,6 @@
|
||||
"RepeatOne": "Repetir uno",
|
||||
"ReplaceAllMetadata": "Reemplazar todos los metadatos",
|
||||
"ReplaceExistingImages": "Reemplazar imágenes existentes",
|
||||
"RequiredForAllRemoteConnections": "Requerido para todas las conexiones remotas",
|
||||
"ResumeAt": "Reanudar desde {0}",
|
||||
"Rewind": "Rebobinar",
|
||||
"RunAtStartup": "Ejecutar al iniciar",
|
||||
@ -1321,7 +1312,6 @@
|
||||
"ValueVideoCodec": "Códec de video: {0}",
|
||||
"VideoRange": "Rango de video",
|
||||
"ViewAlbum": "Ver álbum",
|
||||
"ViewArtist": "Ver artista",
|
||||
"ViewPlaybackInfo": "Ver información de reproducción",
|
||||
"Watched": "Visto",
|
||||
"Wednesday": "Miércoles",
|
||||
@ -1341,7 +1331,6 @@
|
||||
"Audio": "Audio",
|
||||
"Auto": "Auto",
|
||||
"ButtonInfo": "Info",
|
||||
"ButtonNo": "No",
|
||||
"ButtonOk": "OK",
|
||||
"ButtonTrailer": "Trailer",
|
||||
"AuthProviderHelp": "Selecciona un proveedor de autenticación que se utilizará para autenticar la contraseña de este usuario.",
|
||||
|
@ -217,7 +217,6 @@
|
||||
"H264CrfHelp": "El factor de velocidad constante (CRF) es el ajuste de calidad predeterminado 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 sanos están entre 18 y 28. El valor predeterminado para x264 es 23, por lo que puede utilizar esto como punto de partida.",
|
||||
"EncoderPresetHelp": "Elija un valor más rápido para mejorar el rendimiento o un valor más lento para mejorar la calidad.",
|
||||
"HDPrograms": "Programas en HD",
|
||||
"HandledByProxy": "Gestionado por proxy inverso",
|
||||
"HardwareAccelerationWarning": "Activar la aceleración por hardware puede producir inestabilidades en algunos entornos. Asegúrate de que tu sistema operativo y tus controladores de vídeo están actualizados. Si tienes dificultades para reproducir los vídeos después de activar esto, tendrás que volver a poner este ajuste en None.",
|
||||
"HeaderAccessSchedule": "Horario de acceso",
|
||||
"HeaderAccessScheduleHelp": "Crea un horario de acceso para limitar el acceso a determinadas horas.",
|
||||
@ -680,7 +679,6 @@
|
||||
"LabelScheduledTaskLastRan": "Última ejecución {0}, tardando {1}.",
|
||||
"LabelScreensaver": "Salvapantallas:",
|
||||
"LabelSeasonNumber": "Número de temporada:",
|
||||
"LabelSecureConnectionsMode": "Modo de conexión segura:",
|
||||
"LabelSelectFolderGroups": "Agrupar contenido automáticamente desde las siguientes carpetas en vistas como Películas, Música y Series:",
|
||||
"LabelSelectFolderGroupsHelp": "Las carpetas sin seleccionar se mostrarán ellas mismas en su propia vista.",
|
||||
"LabelSelectUsers": "Seleccionar usuarios:",
|
||||
@ -741,7 +739,6 @@
|
||||
"LabelVaapiDeviceHelp": "Este es el nodo de procesamiento que se utiliza para la aceleración de hardware.",
|
||||
"LabelValue": "Valor:",
|
||||
"LabelVersionInstalled": "{0} instalado",
|
||||
"LabelVersionNumber": "Versión {0}",
|
||||
"LabelXDlnaCapHelp": "Determina el contenido del elemento X_DLNACAP en el espacio de nombre urn:schemas-dlna-org:device-1-0.",
|
||||
"LabelXDlnaDocHelp": "Determina el contenido del elemento X_DLNADOC en el espacio de nombreurn:schemas-dlna-org:device-1-0.",
|
||||
"LabelYear": "Año:",
|
||||
@ -804,7 +801,6 @@
|
||||
"MessageCreateAccountAt": "Crear una cuenta en {0}",
|
||||
"MessageDeleteTaskTrigger": "¿Está seguro que desea eliminar esta tarea de activación?",
|
||||
"MessageDirectoryPickerBSDInstruction": "Para BSD, necesitarás configurar el almacenamiento del \"FreeNAS Jail\" para poder permitir a Jellyfin acceder a él.",
|
||||
"MessageDirectoryPickerInstruction": "Rutas de red pueden ser introducidas manualmente en el caso de que el botón de la red no pueda localizar sus dispositivos. Por ejemplo, {0} o {1}.",
|
||||
"MessageDirectoryPickerLinuxInstruction": "Para Linux sobre Arch Linux, CentOS, Debian, Fedora, openSUSE o Ubuntu, debe conceder al usuario del servicio permiso de lectura en las rutas de almacenamiento.",
|
||||
"MessageDownloadQueued": "Descarga en cola.",
|
||||
"MessageEnablingOptionLongerScans": "Activar esta opción implicará escaneos de la biblioteca más largos.",
|
||||
@ -1024,7 +1020,6 @@
|
||||
"PluginInstalledMessage": "El complemento se ha instalado correctamente. El servidor Jellyfin deberá reiniciarse para que los cambios surjan efecto.",
|
||||
"PreferEmbeddedTitlesOverFileNames": "Preferir títulos incrustados sobre los nombres de archivo",
|
||||
"PreferEmbeddedTitlesOverFileNamesHelp": "Esto determina el título que se utilizará cuando un elemento no tenga etiquetas ni estas se hayan podido descargar de Internet.",
|
||||
"PreferredNotRequired": "Preferido, pero no requerido",
|
||||
"Premieres": "Estrenos",
|
||||
"Previous": "Anterior",
|
||||
"Primary": "Principal",
|
||||
@ -1059,7 +1054,6 @@
|
||||
"RepeatOne": "Repetir uno",
|
||||
"ReplaceAllMetadata": "Reemplazar todas las etiquetas",
|
||||
"ReplaceExistingImages": "Reemplazar imágenes existentes",
|
||||
"RequiredForAllRemoteConnections": "Requerido para todas las conexiones remotas",
|
||||
"ResumeAt": "Continuar desde {0}",
|
||||
"Rewind": "Rebobinar",
|
||||
"Runtime": "Tiempo de ejecución",
|
||||
@ -1131,7 +1125,6 @@
|
||||
"TabGenres": "Géneros",
|
||||
"TabGuide": "Guía",
|
||||
"TabLatest": "Novedades",
|
||||
"TabLibrary": "Biblioteca",
|
||||
"TabLiveTV": "Televisión en directo",
|
||||
"TabMetadata": "Etiquetas",
|
||||
"TabMovies": "Películas",
|
||||
@ -1328,14 +1321,11 @@
|
||||
"Normal": "Normal",
|
||||
"Off": "Apagado",
|
||||
"Option3D": "3D",
|
||||
"OptionActor": "Actor",
|
||||
"OptionAuto": "Automático",
|
||||
"OptionAutomatic": "Automático",
|
||||
"OptionBanner": "Cabecera",
|
||||
"OptionBeta": "Beta",
|
||||
"OptionBlockTrailers": "Tráilers",
|
||||
"OptionBluray": "Blu-ray",
|
||||
"OptionDirector": "Director",
|
||||
"OptionDownloadLogoImage": "Logo",
|
||||
"OptionDvd": "DVD",
|
||||
"OptionHasTrailer": "Tráiler",
|
||||
|
@ -82,7 +82,6 @@
|
||||
"Wednesday": "Miércoles",
|
||||
"Watched": "Visto",
|
||||
"ViewPlaybackInfo": "Ver información de reproducción",
|
||||
"ViewArtist": "Ver artista",
|
||||
"ViewAlbum": "Ver álbum",
|
||||
"VideoRange": "Rango de video",
|
||||
"Vertical": "Vertical",
|
||||
@ -689,8 +688,6 @@
|
||||
"LabelSelectFolderGroupsHelp": "Las carpetas sin marcar serán mostradas individualmente en su propia vista.",
|
||||
"LabelSelectFolderGroups": "Agrupar automáticamente el contenido de las siguientes carpetas a vistas como Películas, Música y TV:",
|
||||
"LabelSeasonNumber": "Temporada número:",
|
||||
"EnableFastImageFadeInHelp": "Habilita una animación más rápida de desvanecimiento para las imágenes cargadas.",
|
||||
"EnableFastImageFadeIn": "Desvanecimiento rápido de animaciones",
|
||||
"LabelScreensaver": "Protector de pantalla:",
|
||||
"LabelScheduledTaskLastRan": "Última ejecución {0}, tomando {1}.",
|
||||
"LabelSaveLocalMetadataHelp": "Guardar ilustraciones en las carpetas de los medios los colocará en un lugar donde se pueden editar fácilmente.",
|
||||
|
@ -61,7 +61,6 @@
|
||||
"LabelProfileCodecsHelp": "جدا شده توسط کاما این می تواند برای همه کدک ها اعمال شود.",
|
||||
"LabelSaveLocalMetadata": "پوستر در پوشه مدیا ذخیره گردد",
|
||||
"LabelSaveLocalMetadataHelp": "ذخیره ی پوستر ها داخل پوشه های رسانه، امکان ویرایش آسان آنها را در یک مکان میسر میکند.",
|
||||
"LabelSecureConnectionsMode": "حالت اتصال ایمن:",
|
||||
"LabelSelectUsers": "انتخاب کاربران:",
|
||||
"LabelTimeLimitHours": "محدودیت زمان (ساعت):",
|
||||
"LabelTypeMetadataDownloaders": "{0} دانلود کننده فراداده:",
|
||||
@ -86,7 +85,6 @@
|
||||
"OptionPlayed": "پخش شده",
|
||||
"OptionProfileVideo": "ویدیو",
|
||||
"OptionUnplayed": "پخش نشده",
|
||||
"PreferredNotRequired": "ترجیح داده شده، اما الزامی نیست",
|
||||
"ShowAdvancedSettings": "نمایش تنظیمات پیشرفته",
|
||||
"TabAccess": "دسترسی",
|
||||
"TabAdvanced": "پیشرفته",
|
||||
@ -441,7 +439,6 @@
|
||||
"HeaderActiveDevices": "دستگاههای فعال",
|
||||
"HeaderAccessScheduleHelp": "یک زمانبندی دسترسی ایجاد کنید تا دسترسی به ساعاتی مشخص محدود شود.",
|
||||
"HeaderAccessSchedule": "زمانبندی دسترسی",
|
||||
"HandledByProxy": "توسط reverse proxy مدیریت میشود",
|
||||
"HDPrograms": "برنامههای HD",
|
||||
"Filters": "صافیها",
|
||||
"FileReadError": "خطایی هنگام خواندن فایل رخ داد.",
|
||||
@ -547,7 +544,6 @@
|
||||
"Wednesday": "چهارشنبهها",
|
||||
"Watched": "مشاهده شده",
|
||||
"ViewPlaybackInfo": "مشاهده اطلاعات پخش",
|
||||
"ViewArtist": "مشاهده هنرمند",
|
||||
"ViewAlbum": "مشاهده آلبوم",
|
||||
"VideoRange": "محدوده ویدیو",
|
||||
"Vertical": "عمودی",
|
||||
@ -1297,7 +1293,6 @@
|
||||
"HeaderResponseProfile": "Response Profile",
|
||||
"HeaderResponseProfileHelp": "Response profiles provide a way to customize information sent to the device when playing certain kinds of media.",
|
||||
"HeaderRestart": "Restart",
|
||||
"HeaderRestartingServer": "Restarting Server",
|
||||
"HeaderRevisionHistory": "Revision History",
|
||||
"HeaderRunningTasks": "Running Tasks",
|
||||
"HeaderScenes": "Scenes",
|
||||
@ -1443,7 +1438,6 @@
|
||||
"PlayCount": "Play count",
|
||||
"ReplaceAllMetadata": "Replace all metadata",
|
||||
"ReplaceExistingImages": "Replace existing images",
|
||||
"RestartPleaseWaitMessage": "Please wait while Jellyfin Server shuts down and restarts. This may take a minute or two.",
|
||||
"ResumeAt": "Resume from {0}",
|
||||
"Rewind": "Rewind",
|
||||
"RunAtStartup": "Run at startup",
|
||||
@ -1549,8 +1543,6 @@
|
||||
"TvLibraryHelp": "Review the {0}TV naming guide{1}.",
|
||||
"UserAgentHelp": "Supply a custom user-agent HTTP header.",
|
||||
"ValueContainer": "Container: {0}",
|
||||
"EnableFastImageFadeIn": "Faster animations",
|
||||
"EnableFastImageFadeInHelp": "Use faster animations and transitions",
|
||||
"EnableBlurhash": "Enable blurred placeholders for images",
|
||||
"EnableBlurhashHelp": "Images that are still being loaded will be displayed with a blurred placeholder",
|
||||
"ButtonSyncPlay": "SyncPlay"
|
||||
|
@ -1,5 +1,4 @@
|
||||
{
|
||||
"AddUser": "Lisää Käyttäjä",
|
||||
"BrowsePluginCatalogMessage": "Selaa lisäosakuvastoamme katsoaksesi saatavilla olevia lisäosia.",
|
||||
"ButtonAddUser": "Lisää Käyttäjä",
|
||||
"ButtonCancel": "Peruuta",
|
||||
@ -16,18 +15,12 @@
|
||||
"FileReadCancelled": "Tiedoston luku on peruutettu.",
|
||||
"FileReadError": "Virhe tiedoston luvun aikana.",
|
||||
"FolderTypeTvShows": "TV-sarjat",
|
||||
"HeaderCreatePassword": "Luo Salasana:",
|
||||
"HeaderParentalRating": "Parental Rating",
|
||||
"HeaderSeries": "Sarjat",
|
||||
"HeaderYear": "Year:",
|
||||
"LabelAudioLanguagePreference": "Äänen ensisijainen kieli:",
|
||||
"LabelConfigureSettings": "Muuta asetuksia",
|
||||
"LabelCountry": "Maa:",
|
||||
"LabelCurrentPassword": "Tämän hetkinen salsana:",
|
||||
"LabelDisplayMissingEpisodesWithinSeasons": "Näytä puuttuvat jaksot kausien sisällä",
|
||||
"LabelDownloadInternetMetadata": "Lataa kuvamateriaali ja metadata internetistä",
|
||||
"LabelFinish": "Valmis",
|
||||
"LabelFolderType": "Kansion tyyppi:",
|
||||
"LabelLanguage": "Kieli:",
|
||||
"LabelMaxParentalRating": "Suurin sallittu ikäraja:",
|
||||
"LabelNewPassword": "Uusi salasana:",
|
||||
@ -36,25 +29,18 @@
|
||||
"LabelPrevious": "Edellinen",
|
||||
"LabelSaveLocalMetadata": "Tallenna kuvamateriaali mediakansioihin",
|
||||
"LabelSaveLocalMetadataHelp": "Kuvamateriaalin ja metadatan tallentaminen suoraan kansioihin missä niitä on helppo muuttaa.",
|
||||
"LabelSubtitleLanguagePreference": "Tekstityksien ensisijainen kieli:",
|
||||
"LabelUnairedMissingEpisodesWithinSeasons": "Näytä julkaisemattomat jaksot tuotantokausissa",
|
||||
"LabelYourFirstName": "Etunimesi:",
|
||||
"LabelYoureDone": "Valmista!",
|
||||
"LibraryAccessHelp": "Valitse kirjastot, jotka haluat jakaa tämän käyttäjän kanssa. Järjestelmänvalvoja pystyy muokkaamaan kaikkia kansioita käyttäen metadatan hallintatyökalua.",
|
||||
"MaxParentalRatingHelp": "Suuremman luokituksen sisältö piilotetaan käyttäjältä.",
|
||||
"MoreUsersCanBeAddedLater": "Käyttäjiä voidaan lisätä myöhemmin lisää päänäkymästä.",
|
||||
"NoPluginsInstalledMessage": "Sinulla ei ole mitään lisäosia asennettuna.",
|
||||
"OptionRelease": "Virallinen Julkaisu",
|
||||
"ParentalRating": "Ikäraja",
|
||||
"Password": "Salasana",
|
||||
"PasswordMatchError": "Salasanan ja salasanan vahvistuksen on oltava samat.",
|
||||
"PasswordResetComplete": "Salasana on nollattu.",
|
||||
"PasswordResetConfirmation": "Haluatko varmasti nollata salasanan?",
|
||||
"PasswordSaved": "Salasana tallennettu.",
|
||||
"Save": "Tallenna",
|
||||
"SettingsSaved": "Asetukset tallennettu.",
|
||||
"TabImage": "Kuva",
|
||||
"TabLibraryAccess": "Kirjaston Pääsy",
|
||||
"TabPassword": "Salasana",
|
||||
"TabProfile": "Profiili",
|
||||
"TabProfiles": "Profiilit",
|
||||
@ -62,9 +48,7 @@
|
||||
"ThisWizardWillGuideYou": "Tämä työkalu auttaa sinua asennusprosessin aikana. Valitse kieli aloittaaksesi.",
|
||||
"UninstallPluginConfirmation": "Oletko varma, että haluat poistaa {0}?",
|
||||
"UninstallPluginHeader": "Poista Lisäosa",
|
||||
"Users": "Käyttäjät",
|
||||
"Absolute": "Ehdoton",
|
||||
"Accept": "Hyväksy",
|
||||
"Actor": "Näyttelijä",
|
||||
"Add": "Lisää",
|
||||
"AddToCollection": "Lisää kokoelmaan",
|
||||
@ -81,10 +65,8 @@
|
||||
"AllEpisodes": "Kaikki jaksot",
|
||||
"AllLanguages": "Kaikki kielet",
|
||||
"AllLibraries": "Kaikki kirjastot",
|
||||
"AllowDeletionFromAll": "Salli tiedostojen poistaminen kaikista kirjastoista",
|
||||
"AllowOnTheFlySubtitleExtraction": "Salli tekstitysten purkaminen lennossa",
|
||||
"AccessRestrictedTryAgainLater": "Pääsy on toistaiseksi estetty. Yritä myöhemmin uudelleen.",
|
||||
"AddGuideProviderHelp": "Lisää lähde ohjelmaoppaalle.",
|
||||
"AddItemToCollectionHelp": "Lisää nimikkeitä etsimällä niitä ja käyttämällä hiiren oikeaa nappia tai valikkoa lisätäksesi ne kokoelmaan.",
|
||||
"Aired": "Esityspäivä",
|
||||
"AllowHWTranscodingHelp": "Salli virittimen muuntaa bittivirtaa lennossa. Tämä voi vähentää muunnoksen tarvetta Jellyfin-palvelimella.",
|
||||
@ -96,7 +78,6 @@
|
||||
"AllowedRemoteAddressesHelp": "Pilkuilla eroteltu lista IP-osoitteista tai IP/verkonpeite merkinnöistä verkoille, joille sallitaan etäyhteys palvelimeen. Tyhjäksi jätetty lista tarkoittaa, että kaikki osoitteet sallitaan.",
|
||||
"AlwaysPlaySubtitles": "Näytä aina tekstitykset",
|
||||
"AlwaysPlaySubtitlesHelp": "Oletuskieliasetusta vastaava tekstitys otetaan käyttöön ääniraidan kielestä huolimatta.",
|
||||
"AnamorphicVideoNotSupported": "Anamorfinen video ei ole tuettu",
|
||||
"AnyLanguage": "Mikä tahansa",
|
||||
"Anytime": "Milloin tahansa",
|
||||
"AroundTime": "Noin {0}",
|
||||
@ -132,7 +113,6 @@
|
||||
"ButtonArrowUp": "Ylös",
|
||||
"ButtonAudioTracks": "Ääniraidat",
|
||||
"ButtonBack": "Takaisin",
|
||||
"ButtonChangeContentType": "Vaihda sisällön tyyppiä",
|
||||
"ButtonChangeServer": "Vaihda Palvelinta",
|
||||
"ButtonConnect": "Yhdistä",
|
||||
"ButtonDelete": "Poista",
|
||||
@ -153,7 +133,6 @@
|
||||
"ButtonLibraryAccess": "Kiraston pääsy",
|
||||
"ButtonManualLogin": "Manuaalinen kirjautuminen",
|
||||
"ButtonMore": "Lisää",
|
||||
"ButtonMoreInformation": "Lisää tietoa",
|
||||
"ButtonNetwork": "Verkko",
|
||||
"ButtonNew": "Uusi",
|
||||
"ButtonNextTrack": "Seuraava raita",
|
||||
@ -516,7 +495,6 @@
|
||||
"HeaderAllowMediaDeletionFrom": "Salli median poisto",
|
||||
"HeaderAlert": "Hälytys",
|
||||
"HeaderActivity": "Toiminta",
|
||||
"HandledByProxy": "Reverse proxyn hoitama",
|
||||
"HDPrograms": "HD-ohjelmat",
|
||||
"OptionDownloadArtImage": "Taide",
|
||||
"OptionDownloadDiscImage": "Levy",
|
||||
@ -775,7 +753,6 @@
|
||||
"SaveSubtitlesIntoMediaFolders": "Tallenna tekstitykset mediakansioihin",
|
||||
"Saturday": "Lauantai",
|
||||
"ResumeAt": "Jatka kohdasta {0}",
|
||||
"RequiredForAllRemoteConnections": "Vaadittu kaikille etäyhteyksille",
|
||||
"ReplaceExistingImages": "Korvaa olemassaolevat kuvat",
|
||||
"ReplaceAllMetadata": "Korvaa kaikki metadata",
|
||||
"RepeatEpisodes": "Toista jaksot uudelleen",
|
||||
@ -833,7 +810,6 @@
|
||||
"Writer": "Kirjoittaja",
|
||||
"WelcomeToProject": "Tervetuloa Jellyfiniin!",
|
||||
"Wednesday": "Keskiviikko",
|
||||
"ViewArtist": "Näytä artisti",
|
||||
"ViewAlbum": "Näytä albumi",
|
||||
"Vertical": "Vertikaalinen",
|
||||
"ValueSongCount": "{0} kappaletta",
|
||||
@ -1150,7 +1126,6 @@
|
||||
"PleaseRestartServerName": "Ole hyvä ja uudelleenkäynnistä Jellyfin-palvelin - {0}.",
|
||||
"PleaseEnterNameOrId": "Anna nimi tai ulkoinen ID.",
|
||||
"PreferEmbeddedTitlesOverFileNames": "Suosi upotettuja otsikoita tiedostonimien sijasta",
|
||||
"PreferredNotRequired": "Suositeltava, mutta ei vaadittu",
|
||||
"Premieres": "Ensiesitys",
|
||||
"Primary": "Ensisijainen",
|
||||
"Previous": "Edellinen",
|
||||
|
@ -141,7 +141,6 @@
|
||||
"BrowsePluginCatalogMessage": "Explorer notre catalogue des plugins pour voir les plugins disponibles.",
|
||||
"AllowHWTranscodingHelp": "Permets au syntonisateur de transcoder les flux à la volée. Cela peut aider à réduire le transcodage requis par le serveur.",
|
||||
"BurnSubtitlesHelp": "Détermine si le serveur doit graver les sous-titres lors du transcodage vidéo. Éviter ceci améliorera les performances du serveur. Sélectionnez Auto pour graver les formats basés sur l'image (par exemple, VOBSUB, PGS, SUB/IDX etc) ainsi que certains sous-titres ASS/SSA.",
|
||||
"ButtonAccept": "Accepter",
|
||||
"ButtonAdd": "Ajouter",
|
||||
"ButtonAddMediaLibrary": "Ajouter une médiathèque",
|
||||
"ButtonAddScheduledTaskTrigger": "Ajouter un déclencheur",
|
||||
@ -153,14 +152,8 @@
|
||||
"ButtonArrowUp": "Haut",
|
||||
"ButtonAudioTracks": "Pistes Audio",
|
||||
"ButtonBack": "Retour arrière",
|
||||
"ButtonCancelSeries": "Annuler séries",
|
||||
"ButtonChangeServer": "Changer de serveur",
|
||||
"ButtonClear": "Effacer",
|
||||
"ButtonClose": "Fermer",
|
||||
"ButtonConfigurePassword": "Configurer le mot de passe",
|
||||
"ButtonConfigurePinCode": "Configurer le code PIN",
|
||||
"ButtonConnect": "Connexion",
|
||||
"ButtonCreate": "Créer",
|
||||
"ButtonDelete": "Supprimer",
|
||||
"ButtonDeleteImage": "Supprimer l'image",
|
||||
"ButtonDown": "Bas",
|
||||
@ -168,22 +161,16 @@
|
||||
"ButtonEdit": "Modifier",
|
||||
"ButtonEditImages": "Modifier les images",
|
||||
"ButtonEditOtherUserPreferences": "Modifier ce profil utilisateur, son avatar et ses préférences personnelles.",
|
||||
"ButtonExit": "Quitter",
|
||||
"ButtonFilter": "Filtre",
|
||||
"ButtonForgotPassword": "Mot de passe oublié",
|
||||
"ButtonFullscreen": "Plein écran",
|
||||
"ButtonGuide": "Guide",
|
||||
"ButtonHelp": "Aide",
|
||||
"ButtonHide": "Cacher",
|
||||
"ButtonHome": "Accueil",
|
||||
"ButtonInfo": "Informations",
|
||||
"ButtonInviteUser": "Inviter un utilisateur",
|
||||
"ButtonLearnMore": "En savoir plus",
|
||||
"ButtonLibraryAccess": "Accès à la médiathèque",
|
||||
"ButtonManageFolders": "Gérer les dossiers",
|
||||
"ButtonManageServer": "Gérer le serveur",
|
||||
"ButtonManualLogin": "Connexion manuelle",
|
||||
"ButtonMenu": "Menu",
|
||||
"ButtonMore": "Plus",
|
||||
"ButtonNetwork": "Réseau",
|
||||
"AspectRatio": "Format de visionnement",
|
||||
|
@ -18,7 +18,6 @@
|
||||
"AllEpisodes": "Tous les épisodes",
|
||||
"AllLanguages": "Toutes les langues",
|
||||
"AllLibraries": "Toutes les médiathèques",
|
||||
"AllowDeletionFromAll": "Autoriser la suppression de média depuis toutes les médiathèques",
|
||||
"AllowHWTranscodingHelp": "Permet au tuner TV de transcoder les flux à la volée. Cela peut aider à réduire le transcodage requis par le serveur.",
|
||||
"AllowMediaConversion": "Autoriser la conversion des médias",
|
||||
"AllowMediaConversionHelp": "Autoriser ou refuser l'accès à la fonctionnalité de conversion des médias.",
|
||||
@ -260,7 +259,6 @@
|
||||
"H264CrfHelp": "Le facteur de débit constant (CRF) est le paramètre de qualité par défaut pour l'encodeur x264. Vous pouvez régler les valeurs entre 0 et 51, où des valeurs plus faibles se traduiraient par une meilleure qualité (en augmentant le taille des fichiers). De bonne valeurs se situent entre 18 et 28. La valeur par défaut pour le x264 est 23, vous pouvez l'utiliser comme point de départ.",
|
||||
"EncoderPresetHelp": "Choisissez une valeur plus rapide pour améliorer la performance, ou plus lente pour améliorer la qualité.",
|
||||
"HDPrograms": "Programmes HD",
|
||||
"HandledByProxy": "Gérée par un proxy inverse",
|
||||
"HardwareAccelerationWarning": "L'activation de l'accélération matérielle peut provoquer une instabilité dans certains environnements. Assurez-vous que votre système d'exploitation et vos pilotes vidéo sont complètement à jour. Si vous avez des difficultés pour lire des vidéos après l'activation, vous devrez remettre ce paramètre sur Aucun.",
|
||||
"HeaderAccessSchedule": "Programme d'Accès",
|
||||
"HeaderAccessScheduleHelp": "Créez un programme d'accès pour limiter l'accès à certaines heures.",
|
||||
@ -741,7 +739,6 @@
|
||||
"LabelScheduledTaskLastRan": "Dernière exécution {0}, durée {1}.",
|
||||
"LabelScreensaver": "Économiseur d'écran :",
|
||||
"LabelSeasonNumber": "Numéro de saison :",
|
||||
"LabelSecureConnectionsMode": "Mode de connexion sécurisée :",
|
||||
"LabelSelectFolderGroups": "Grouper automatiquement le contenu des dossiers suivants dans des catégories telles que Films, Musique et TV :",
|
||||
"LabelSelectFolderGroupsHelp": "Les dossiers qui ne sont pas cochés seront affichés tels quels, avec leur propre vue.",
|
||||
"LabelSelectUsers": "Sélectionner des utilisateurs :",
|
||||
@ -879,7 +876,6 @@
|
||||
"MessageCreateAccountAt": "Créer un compte sur {0}",
|
||||
"MessageDeleteTaskTrigger": "Voulez-vous vraiment supprimer ce déclencheur de tâche ?",
|
||||
"MessageDirectoryPickerBSDInstruction": "Sur BSD, vous devrez peut-être configurer le stockage de votre jail FreeNAS pour autoriser Jellyfin à y accéder.",
|
||||
"MessageDirectoryPickerInstruction": "Les chemins réseaux peuvent être saisis manuellement dans le cas où l'utilisation du bouton Réseau ne parvient pas à localiser vos appareils. Par exemple, {0} ou {1}.",
|
||||
"MessageDirectoryPickerLinuxInstruction": "Pour Linux sur Arch Linux, CentOS, Debian, Fedora, openSUSE ou Ubuntu, vous devez au moins autoriser l'accès en lecture à vos répertoires de stockage pour l'utilisateur de service .",
|
||||
"MessageDownloadQueued": "Téléchargement mis en file d'attente.",
|
||||
"MessageEnablingOptionLongerScans": "Activer cette option peut accroître la durée d'actualisation de la médiathèque.",
|
||||
@ -1110,7 +1106,6 @@
|
||||
"PluginInstalledMessage": "Cette extension a été installée avec succès. Le serveur Jellyfin doit être redémarré afin que les modifications soient prises en compte.",
|
||||
"PreferEmbeddedTitlesOverFileNames": "Préférer les titres intégrés aux médias aux noms des fichiers",
|
||||
"PreferEmbeddedTitlesOverFileNamesHelp": "Cela détermine le titre affiché par défaut quand il n'y a pas de métadonnées en ligne ou locales disponibles.",
|
||||
"PreferredNotRequired": "Préférée, mais pas obligatoire",
|
||||
"Premieres": "Inédits",
|
||||
"Previous": "Précédent",
|
||||
"Primary": "Principal",
|
||||
@ -1147,7 +1142,6 @@
|
||||
"RepeatOne": "Répéter un média",
|
||||
"ReplaceAllMetadata": "Remplacer toutes les métadonnées",
|
||||
"ReplaceExistingImages": "Remplacer les images existantes",
|
||||
"RequiredForAllRemoteConnections": "Obligatoire pour toutes les connexions externes",
|
||||
"ResumeAt": "Reprendre à {0}",
|
||||
"Rewind": "Rembobiner",
|
||||
"RunAtStartup": "Exécuter au démarrage",
|
||||
@ -1302,7 +1296,6 @@
|
||||
"Vertical": "Verticale",
|
||||
"VideoRange": "Gamme vidéo",
|
||||
"ViewAlbum": "Voir l'album",
|
||||
"ViewArtist": "Voir l'artiste",
|
||||
"ViewPlaybackInfo": "Voir les informations de lecture",
|
||||
"Watched": "Lu",
|
||||
"Wednesday": "Mercredi",
|
||||
@ -1338,7 +1331,6 @@
|
||||
"Horizontal": "Horizontal",
|
||||
"Images": "Images",
|
||||
"LabelAudio": "Audio",
|
||||
"LabelVersionNumber": "Version {0}",
|
||||
"LeaveBlankToNotSetAPassword": "Laissez vide pour ne pas définir de mot de passe.",
|
||||
"Logo": "Logo",
|
||||
"MediaInfoCodec": "Codec",
|
||||
|
@ -26,12 +26,7 @@
|
||||
"HeaderFrequentlyPlayed": "Vell gspellt",
|
||||
"HeaderLatestEpisodes": "Letschti Episode",
|
||||
"HeaderLatestMovies": "Letschti Film",
|
||||
"HeaderLatestSongs": "Letschti Songs",
|
||||
"HeaderLatestTrailers": "Letschti Trailer",
|
||||
"HeaderManagement": "Verwaltig",
|
||||
"HeaderNextUp": "Als Nächstes",
|
||||
"HeaderNowPlaying": "Jetz am spelle",
|
||||
"HeaderParentalRating": "Parental Rating",
|
||||
"HeaderPaths": "Pfad",
|
||||
"HeaderRecentlyPlayed": "Erst grad dezue gfüegt",
|
||||
"HeaderSeries": "Series",
|
||||
@ -147,22 +142,13 @@
|
||||
"HeaderFavoriteShows": "Lieblingsserien",
|
||||
"HeaderFavoriteSongs": "Lieblingslieder",
|
||||
"HeaderLiveTV": "Live-Fernseh",
|
||||
"HeaderRecordingGroups": "Ufnahmegruppe",
|
||||
"LabelRunningTimeValue": "Loufziit: {0}",
|
||||
"MessageApplicationUpdated": "Jellyfin Server esch aktualisiert worde",
|
||||
"MessageNamedServerConfigurationUpdatedWithValue": "De Serveriistöuigsberiich {0} esch aktualisiert worde",
|
||||
"Movies": "Film",
|
||||
"Photos": "Fotis",
|
||||
"Playlists": "Wedergabeliste",
|
||||
"PluginInstalledWithName": "{0} esch installiert worde",
|
||||
"PluginUninstalledWithName": "{0} esch deinstalliert worde",
|
||||
"PluginUpdatedWithName": "{0} esch updated worde",
|
||||
"ProviderValue": "Aabieter: {0}",
|
||||
"Shows": "Serie",
|
||||
"Songs": "Lieder",
|
||||
"Sync": "Synchronisation",
|
||||
"ValueSpecialEpisodeName": "Extra - {0}",
|
||||
"VersionNumber": "Version {0}",
|
||||
"Absolute": "Absolut",
|
||||
"Actor": "Schauspieler",
|
||||
"AccessRestrictedTryAgainLater": "Zuegriff isch momentan beschränkt. Probiers bitte spöter nomol.",
|
||||
|
@ -502,7 +502,6 @@
|
||||
"ValueSongCount": "{0} שירים",
|
||||
"ValueSpecialEpisodeName": "מיוחד- {0}",
|
||||
"ViewAlbum": "צפה באלבום",
|
||||
"ViewArtist": "צפה באמן",
|
||||
"Wednesday": "רביעי",
|
||||
"WelcomeToProject": "ברוך הבא ל Jellyfin!",
|
||||
"Writer": "כותב",
|
||||
|
@ -594,7 +594,6 @@
|
||||
"LabelVaapiDeviceHelp": "Ovo je čvor provođenja koji se koristi za hardversko ubrzanje.",
|
||||
"LabelValue": "Vrijednost:",
|
||||
"LabelVersionInstalled": "{0} instaliran",
|
||||
"LabelVersionNumber": "Verzija {0}",
|
||||
"LabelXDlnaCapHelp": "Određuje sadržaj X_DLNACAP elementa u urn:shemas-dlna-org:device-1-0 namespace.",
|
||||
"LabelXDlnaDocHelp": "Određuje sadržaj X_DLNADOC elementa u urn:schemas-dlna-org:device-1-0 namespace.",
|
||||
"LabelYourFirstName": "Ime:",
|
||||
@ -649,7 +648,6 @@
|
||||
"MessageCreateAccountAt": "Otvori račun kod {0}",
|
||||
"MessageDeleteTaskTrigger": "Jeste li sigurni da želite izbrisati ovaj okidač zadatka?",
|
||||
"MessageDirectoryPickerBSDInstruction": "Za BSD možda ćete morati podesiti pohranu unutar vašega FreeNAS kako bi se omogućilo Jellyfin-u pristup.",
|
||||
"MessageDirectoryPickerInstruction": "Mrežne putanje mogu se unijeti ručno u slučaju da gumb Mreže ne uspije locirati vaše uređaje. Na primjer, {0} ili {1}.",
|
||||
"MessageDirectoryPickerLinuxInstruction": "Za Linux na Arch Linux, CentOS, Debian, Fedora, OpenSuse ili Ubuntu morate dati korisniku Jellyfin sistema barem pristup čitanja vašim lokacijama za skladištenje.",
|
||||
"MessageDownloadQueued": "Preuzimanje na čekanju.",
|
||||
"MessageFileReadError": "Prilikom učitavanja datoteke desila se greška. Pokušajte ponovno.",
|
||||
@ -990,7 +988,6 @@
|
||||
"ValueTimeLimitSingleHour": "Vremensko ograničenje: 1 sat",
|
||||
"ValueVideoCodec": "Video koder: {0}",
|
||||
"ViewAlbum": "Pogledaj album",
|
||||
"ViewArtist": "Pogledaj umjetnika",
|
||||
"Wednesday": "Srijeda",
|
||||
"WelcomeToProject": "Dobrodošli u Jellyfin!",
|
||||
"WizardCompleted": "To je sve što nam treba za sada. Jellyfin je počeo prikupljati podatke o vašoj medijskoj knjižnici. Provjerite neke od naših aplikacija, a zatim kliknite na <b>Završi</b> za prikaz <b>Serverske kontrolne ploče</b>.",
|
||||
|
@ -335,7 +335,6 @@
|
||||
"LabelUser": "Felhasználó:",
|
||||
"LabelUsername": "Felhasználónév:",
|
||||
"LabelVersionInstalled": "{0} telepítve",
|
||||
"LabelVersionNumber": "Verzió {0}",
|
||||
"LabelVideo": "Videó",
|
||||
"LabelYear": "Év:",
|
||||
"LabelYourFirstName": "Keresztneved:",
|
||||
@ -699,7 +698,6 @@
|
||||
"GuideProviderSelectListings": "Válassz listát",
|
||||
"EncoderPresetHelp": "Válassz egy gyorsabb értéket a teljesítmény javítása érdekében, vagy egy lassabb értéket a minőség javítása érdekében.",
|
||||
"HDPrograms": "HD programok",
|
||||
"HandledByProxy": "Reverse proxy segítségével kezelhető",
|
||||
"HardwareAccelerationWarning": "A hardveres gyorsítás engedélyezése bizonyos környezetekben instabilitást okozhat. Győződj meg róla, hogy az operációs rendszer és a videó-illesztőprogramok teljesen naprakészek. Ha a beállítás után problémába ütközik a videólejátszás, akkor vissza kell állítani a beállítást Nincs-re.",
|
||||
"HeaderAccessSchedule": "Hozzáférési Ütemezés",
|
||||
"HeaderAccessScheduleHelp": "Hozz létre hozzáférési ütemezést, hogy korlátozd a hozzáférést bizonyos időben.",
|
||||
@ -862,11 +860,7 @@
|
||||
"LabelDisplayLanguage": "Megjelenítési nyelv:",
|
||||
"LabelDisplayLanguageHelp": "A Jellyfin fordítása egy folyamatos projekt.",
|
||||
"LabelDisplayMode": "Megjelenítési mód:",
|
||||
"LabelDownloadInternetMetadata": "Artwork és a metaadatok letöltése az internetről",
|
||||
"LabelDownloadInternetMetadataHelp": "A Jellyfin Szerver letöltheti a médiák adatait és látványos bemutatókat készít.",
|
||||
"LabelArtistsHelp": "Ha több van használd a következő elválasztót ;",
|
||||
"LabelDisplayCollectionsView": "Jelenítse meg a Gyűjtemények menüpontot a filmgyűjtemények megjelenítéséhez",
|
||||
"LabelDisplayCollectionsViewHelp": "Ez külön menüpontot hoz létre a filmgyűjtemények megjelenítéséhez. Gyűjtemény létrehozásához kattints jobb gombbal vagy kattints a három pontra bármelyik filmen, és válaszd a 'Hozzáadás gyűjteményhez' lehetőséget. ",
|
||||
"LabelEnableAutomaticPortMapHelp": "A szerver az UPnP segítségével a routeren megpróbálja automatikusan átirányítani a nyilvános portot a helyi portra. Előfordulhat, hogy egyes router modellek, vagy hálózati konfigurációk esetén ez nem működik. A módosítások újraindítás után lépnek életbe.",
|
||||
"LabelEnableBlastAliveMessagesHelp": "Engedélyezd ezt ha a szerver nem észleli megbízhatóan a hálózat más UPnP-eszközeit.",
|
||||
"LabelEnableDlnaClientDiscoveryInterval": "Kliens felderítési intervallum (másodperc)",
|
||||
@ -954,7 +948,6 @@
|
||||
"LabelSaveLocalMetadataHelp": "Az artwork fájlok médiamappákba történő mentése olyan helyre kerül, ahol könnyen szerkeszthető.",
|
||||
"LabelScheduledTaskLastRan": "Utoljára futtatva: {0}, Időtartam: {1}.",
|
||||
"LabelScreensaver": "Képernyővédő:",
|
||||
"LabelSecureConnectionsMode": "Biztonságos kapcsolat módja:",
|
||||
"LabelSerialNumber": "Sorozatszám",
|
||||
"LabelSeriesRecordingPath": "Sorozatfelvétel útvonala (opcionális):",
|
||||
"LabelServerHost": "Kiszolgáló:",
|
||||
@ -1050,7 +1043,6 @@
|
||||
"LanNetworksHelp": "Vesszővel elválasztott lista az IP címekről vagy IP / netmask bejegyzésekről a hálózatokban, amelyeket a helyi hálózaton figyelembe kell venni a sávszélesség korlátozások végrehajtása során. Ha be van állítva, az összes többi IP cím külső hálózaton lesz, és a külső sávszélesség korlátozások szabálya alá tartozik. Ha üres marad, csak a szerver alhálózata tekinthető a helyi hálózatnak.",
|
||||
"LiveBroadcasts": "Élő adások",
|
||||
"MessageConfirmRevokeApiKey": "Biztosan visszavonod ezt az API kulcsot? Az alkalmazás csatlakozása a Jellyfin Szerverhez hirtelen megszűnik.",
|
||||
"MessageDirectoryPickerInstruction": "A hálózati útvonalak manuálisan megadhatók abban az esetben, ha a Hálózati gomb nem találja meg a készülékeket. Például: {0} vagy {1}.",
|
||||
"MessageDirectoryPickerLinuxInstruction": "Az Arch Linux, CentOS, Debian, Fedora, openSUSE vagy Ubuntu Linux operációs rendszereken a Jellyfin szolgáltatás felhasználójának legalább olvasási hozzáférést kell biztosítania a tárolóhelyekhez.",
|
||||
"MessageForgotPasswordInNetworkRequired": "Kérlek próbáld meg újra a jelszó visszaállítási folyamatot az otthoni hálózatban.",
|
||||
"MessageNoMovieSuggestionsAvailable": "Jelenleg nincsenek filmajánlatok. Kezdj el nézni és értékelni a filmeket, majd térj vissza, hogy megtekinthesd az ajánlásokat.",
|
||||
@ -1178,7 +1170,6 @@
|
||||
"PluginInstalledMessage": "A bővítmény sikeresen telepítve lett. A módosítások életbelépéséhez újra kell indítani a Jellyfin Szerver programot.",
|
||||
"PreferEmbeddedTitlesOverFileNames": "A fájlnevek helyett előnyben részesíti a beépített címeket",
|
||||
"PreferEmbeddedTitlesOverFileNamesHelp": "Ez határozza meg az alapértelmezett megjelenítési címet, ha nem áll rendelkezésre internetes metaadat vagy helyi metaadat.",
|
||||
"PreferredNotRequired": "Ajánlott, de nem szükséges",
|
||||
"Premiere": "Premier",
|
||||
"Premieres": "Premierek",
|
||||
"Previous": "Előző",
|
||||
@ -1198,7 +1189,6 @@
|
||||
"RemoveFromCollection": "Törlés a gyűjteményből",
|
||||
"RemoveFromPlaylist": "Lejátszási listáról eltávolítani",
|
||||
"RepeatEpisodes": "Epizódok ismétlése",
|
||||
"RequiredForAllRemoteConnections": "Minden távoli kapcsolathoz szükséges",
|
||||
"ResumeAt": "Folytatás: {0}",
|
||||
"RunAtStartup": "Futtassa indításkor",
|
||||
"SaveSubtitlesIntoMediaFolders": "Mentse a feliratokat a média mappákba",
|
||||
@ -1264,7 +1254,6 @@
|
||||
"Vertical": "Függőleges",
|
||||
"VideoRange": "Videó tartomány",
|
||||
"ViewAlbum": "Album megtekintése",
|
||||
"ViewArtist": "Előadó megtekintése",
|
||||
"Whitelist": "Fehérlista",
|
||||
"WizardCompleted": "Ez most minden amire szükség volt. A Jellyfin megkezdte a médiakönyvtáraddal kapcsolatos információk gyűjtését. Nézz meg néhány alkalmazásunkat, majd kattints a <b>Befejezés </b> gombra a <b>Vezérlőpult</b> megtekintéséhez.",
|
||||
"XmlTvKidsCategoriesHelp": "Az ilyen kategóriákkal rendelkező programok gyerekeknek szóló programokként jelennek meg. Válaszd el őket a '|' elválasztóval.",
|
||||
|
@ -423,7 +423,6 @@
|
||||
"Rewind": "Spóla til baka",
|
||||
"AlbumArtist": "Höfundur plötu",
|
||||
"OptionHasTrailer": "Sýnishorn",
|
||||
"ViewArtist": "Skoða listamann",
|
||||
"ValueSongCount": "{0} lög",
|
||||
"ValueSeriesCount": "{0} Þáttaraðir",
|
||||
"ValueSeconds": "{0} sekúndur",
|
||||
|
@ -250,7 +250,6 @@
|
||||
"H264CrfHelp": "Il fattore di frequenza costante (CRF) è l'impostazione di qualità predefinita per l'encoder x264. È possibile impostare i valori compresi tra 0 e 51, in cui valori inferiori potrebbero determinare una migliore qualità (a discapito delle dimensioni superiori dei file). I valori normali sono compresi tra 18 e 28. L'impostazione predefinita per x264 è 23, quindi è possibile utilizzare questo come punto di partenza.",
|
||||
"EncoderPresetHelp": "Scegli una velocità maggiore per migliorare le performance, o minore per incrementare la qualità.",
|
||||
"HDPrograms": "Programmi HD",
|
||||
"HandledByProxy": "Gestito dal reverse proxy",
|
||||
"HardwareAccelerationWarning": "L'attivazione dell'accelerazione hardware potrebbe causare instabilità in qualche sistema. Assicurarsi che il sistema operativo e i driver video siano completamente aggiornati. Se hai difficoltà a riprodurre video dopo aver abilitato questa operazione, dovrai cambiare l'impostazione in None.",
|
||||
"HeaderAccessSchedule": "Orario di accesso",
|
||||
"HeaderAccessScheduleHelp": "Creare un programma di accesso per limitare l'accesso a determinate ore.",
|
||||
@ -718,7 +717,6 @@
|
||||
"LabelScheduledTaskLastRan": "Ultima esecuzione {0}, taking {1}.",
|
||||
"LabelScreensaver": "Salvaschermo:",
|
||||
"LabelSeasonNumber": "Numero stagione:",
|
||||
"LabelSecureConnectionsMode": "Modalità connessione sicura:",
|
||||
"LabelSelectFolderGroups": "Raggruppa i contenuti delle seguenti cartelle in viste come Film, Musica e Serie TV:",
|
||||
"LabelSelectFolderGroupsHelp": "Le cartelle non selezionate verranno mostrate come se stesse nelle proprie viste.",
|
||||
"LabelSelectUsers": "Seleziona Utenti:",
|
||||
@ -783,7 +781,6 @@
|
||||
"LabelValue": "valore:",
|
||||
"LabelVersion": "Versione:",
|
||||
"LabelVersionInstalled": "{0} installato",
|
||||
"LabelVersionNumber": "Versione {0}",
|
||||
"LabelXDlnaCapHelp": "Determina il contenuto dell'elemento X_DLNACAP in urn:schemas-dlna-org:device-1-0.",
|
||||
"LabelXDlnaDocHelp": "Determina il contenuto dell'elemento X_DLNACAP nella urn: schemas-DLNA-org: dispositivo 1-0 namespace.",
|
||||
"LabelYear": "Anno:",
|
||||
@ -844,7 +841,6 @@
|
||||
"MessageCreateAccountAt": "Crea un account a {0}",
|
||||
"MessageDeleteTaskTrigger": "Sei sicuro di voler cancellare questo evento?",
|
||||
"MessageDirectoryPickerBSDInstruction": "Per BSD, potrebbe essere necessario per configurare le unità all'interno della vostra prigione FreeNAS al fine di permettere ricamato accedervi.",
|
||||
"MessageDirectoryPickerInstruction": "Percorsi di rete possono essere inseriti manualmente nel caso in cui il pulsante Rete non riesce a individuare i vostri dispositivi. Ad esempio, {0} o {1}.",
|
||||
"MessageDirectoryPickerLinuxInstruction": "Per Linux su Arch Linux, CentOS, Debian, Fedora, openSUSE o Ubuntu, è necessario concedere all'utente del servizio almeno l'accesso alle posizioni di archiviazione.",
|
||||
"MessageDownloadQueued": "Scaricamento programmato.",
|
||||
"MessageEnablingOptionLongerScans": "L'abilitazione di questa opzione può rallentare significativamente le scansioni della libreria.",
|
||||
@ -1065,7 +1061,6 @@
|
||||
"PluginInstalledMessage": "Il plugin è stato installato correttamente. Il server Jellyfin dovrà essere riavviato affinché le modifiche abbiano effetto.",
|
||||
"PreferEmbeddedTitlesOverFileNames": "Preferisci titoli integrati ai nomi dei file",
|
||||
"PreferEmbeddedTitlesOverFileNamesHelp": "Determina il titolo predefinito usato quando non sono disponibili metadati locali o da Internet.",
|
||||
"PreferredNotRequired": "Preferito, ma non richiesto",
|
||||
"Premiere": "Prima visione",
|
||||
"Premieres": "Prime Visioni",
|
||||
"Previous": "Precedente",
|
||||
@ -1103,7 +1098,6 @@
|
||||
"RepeatOne": "Ripeti uno",
|
||||
"ReplaceAllMetadata": "Sostituisci tutti i metadati",
|
||||
"ReplaceExistingImages": "Sovrascrivi immagini esistenti",
|
||||
"RequiredForAllRemoteConnections": "Richiesto per tutte le connessioni remote",
|
||||
"ResumeAt": "Riprendi da {0}",
|
||||
"Rewind": "Riavvolgi",
|
||||
"RunAtStartup": "Esegui all'avvio",
|
||||
@ -1260,7 +1254,6 @@
|
||||
"Vertical": "Verticale",
|
||||
"VideoRange": "Range del Video",
|
||||
"ViewAlbum": "Visualizza album",
|
||||
"ViewArtist": "Visualizza artista",
|
||||
"ViewPlaybackInfo": "Vedi info sulla riproduzione",
|
||||
"Watched": "Visto",
|
||||
"Wednesday": "Mercoledì",
|
||||
@ -1527,7 +1520,7 @@
|
||||
"MessageSyncPlayGroupDoesNotExist": "Impossibile unirsi al gruppo perchè non esiste.",
|
||||
"MessageSyncPlayPlaybackPermissionRequired": "Permesso di riproduzione necessario.",
|
||||
"MessageSyncPlayNoGroupsAvailable": "Nessun gruppo disponibile. Inizia a riprodurre qualcosa.",
|
||||
"MessageSyncPlayGroupWait": "<b>{0}</b> sta bufferizzando...",
|
||||
"MessageSyncPlayGroupWait": "<b>{0}</b> sta bufferizzando…",
|
||||
"MessageSyncPlayUserLeft": "<b>{0}</b> ha lasciato il gruppo.",
|
||||
"MessageSyncPlayUserJoined": "<b>{0}</b> si è unito al gruppo.",
|
||||
"MessageSyncPlayDisabled": "SyncPlay disabilitato.",
|
||||
@ -1571,5 +1564,6 @@
|
||||
"ViewAlbumArtist": "Visualizza artista dell'album",
|
||||
"Writers": "Scrittori",
|
||||
"ClearQueue": "Svuota la coda",
|
||||
"StopPlayback": "Interrompi riproduzione"
|
||||
"StopPlayback": "Interrompi riproduzione",
|
||||
"LabelUnstable": "Unstable"
|
||||
}
|
||||
|
@ -76,7 +76,7 @@
|
||||
"ButtonEditImages": "イメージを編集",
|
||||
"ButtonEditOtherUserPreferences": "ユーザーのアバターイメージやプロフィールなどの個人設定を編集。",
|
||||
"ButtonFilter": "フィルタ",
|
||||
"ButtonForgotPassword": "パスワードを忘れました",
|
||||
"ButtonForgotPassword": "パスワードを忘れた",
|
||||
"ButtonFullscreen": "フルスクリーン",
|
||||
"ButtonGotIt": "了解",
|
||||
"ButtonGuide": "ガイド",
|
||||
@ -276,7 +276,6 @@
|
||||
"H264CrfHelp": "固定レートファクタ(CRF)は、x264エンコーダのデフォルトの品質設定です。 0から51までの値を設定できます。値が小さいほど品質が高くなります(ファイルサイズが大きくなりますが)。 正しい値は18から28の間です。x264のデフォルトは23なので、これを出発点として使用できます。",
|
||||
"EncoderPresetHelp": "パフォーマンスを向上させるには小さい値を、品質を向上させるには大きい値を選択してください。",
|
||||
"HDPrograms": "HD番組",
|
||||
"HandledByProxy": "リバースプロキシで処理",
|
||||
"HardwareAccelerationWarning": "ハードウェアアクセラレーションを有効にすると、環境によっては不安定になる可能性があります。 オペレーティングシステムとビデオドライバが完全に最新であることを確認してください。 これを有効にした後でビデオの再生が困難な場合は、設定を[なし]に戻す必要があります。",
|
||||
"HeaderAccessSchedule": "アクセススケジュール",
|
||||
"HeaderAccessScheduleHelp": "アクセススケジュールを作成して、アクセスを特定の時間に制限します。",
|
||||
@ -503,7 +502,7 @@
|
||||
"ButtonAddImage": "イメージの追加",
|
||||
"List": "リスト",
|
||||
"MediaInfoTimestamp": "タイムスタンプ",
|
||||
"NoSubtitles": "字幕がありません",
|
||||
"NoSubtitles": "無し",
|
||||
"TabCollections": "コレクション",
|
||||
"Thursday": "木曜日",
|
||||
"TitleHardwareAcceleration": "ハードウェアアクセラレーション",
|
||||
@ -806,7 +805,6 @@
|
||||
"Vertical": "垂直",
|
||||
"VideoRange": "映像範囲",
|
||||
"ViewAlbum": "アルバムを見る",
|
||||
"ViewArtist": "アーティストを見る",
|
||||
"ViewPlaybackInfo": "プレイバック情報を見る",
|
||||
"Watched": "視聴済み",
|
||||
"WelcomeToProject": "Jellyfinにようこそ!",
|
||||
@ -927,7 +925,6 @@
|
||||
"LabelRuntimeMinutes": "実行時間 (分):",
|
||||
"LabelScreensaver": "スクリーンセーバー:",
|
||||
"LabelSeasonNumber": "シーズン数:",
|
||||
"LabelSecureConnectionsMode": "セキュア接続モード:",
|
||||
"LabelSelectUsers": "ユーザーを選択:",
|
||||
"LabelSelectVersionToInstall": "インストールするバージョンを選択:",
|
||||
"LabelSerialNumber": "シリアルナンバー",
|
||||
|
@ -29,7 +29,6 @@
|
||||
"AllowedRemoteAddressesHelp": "Qashyqtan qosylýǵa ruqsat etiletin jeliler úshin útirlermen bólingen IP-mekenjaılarynyń tizbesi nemese IP/netmask jazbalar Eger bos qaldyrylsa, barlyq qashyqtaǵy mekenjaılarǵa ruqsat etiledi.",
|
||||
"AlwaysPlaySubtitles": "Árqashan oınatý",
|
||||
"AlwaysPlaySubtitlesHelp": "Til teńshelimine sáıkes kelgen sýbtıtrler dybys tiline qatyssyz júkteledi.",
|
||||
"AnamorphicVideoNotSupported": "Anamorftyq beıne úshin qoldaý kórsetilmeıdi",
|
||||
"AnyLanguage": "Qaı-qaısy til",
|
||||
"Anytime": "Árkezde",
|
||||
"AroundTime": "Shamamen",
|
||||
@ -131,10 +130,6 @@
|
||||
"ButtonTrailer": "Treıler",
|
||||
"ButtonUninstall": "Ornatymdy joıý",
|
||||
"ButtonUp": "Joǵaryǵa",
|
||||
"ButtonUpdateNow": "Qazir jańartý",
|
||||
"ButtonView": "Qaraý",
|
||||
"ButtonViewAlbum": "Álbomdy qaraý",
|
||||
"ButtonViewArtist": "Oryndaýshyny qaraý",
|
||||
"ButtonViewWebsite": "Ýeb-saıtyn qaraý",
|
||||
"ButtonWebsite": "Ýeb-saıty",
|
||||
"CancelRecording": "Jazýdy boldyrmaý",
|
||||
@ -166,7 +161,6 @@
|
||||
"DatePlayed": "Oınatylǵan kúni",
|
||||
"DeathDateValue": "Ólgeni: {0}",
|
||||
"Default": "Ádepki",
|
||||
"DefaultCameraUploadPathHelp": "Teńshelgen júktep salý joldy tańdańyz. Eger anyqtalmasa, ádepki qalta paıdalanylady. Eger teńsheletin jol paıdalanylsa, buny sondaı-aq Jellyfin tasyǵyshhanasyn ornatý jáne teńsheý aımaǵynda tasyǵyshhana sıaqty ústeý qajet.",
|
||||
"DefaultErrorMessage": "Saýal óńdelý kezinde qate oryn aldy. Áreketti keıin qaıtalańyz.",
|
||||
"DefaultMetadataLangaugeDescription": "Bular sizdiń ádepki maǵynalaryńyz jáne ár tasyǵyshhana negizinde teńsheýge bolady.",
|
||||
"DefaultSubtitlesHelp": "Sýbtıtrler engizilgen metaderekterdegi ádepki jáne májbúrli jalaýshalary negizinde júktelip alynady. Birneshe opsıa qoljetimdi bolǵanda til teńshelimi qarastyrylady.",
|
||||
@ -276,7 +270,6 @@
|
||||
"H264CrfHelp": "Baǵalaýdyń turaqty máni (Constant Rate Factor, CRF) x264 kodtaýyshy úshin ádepki sapa parametri bolyp tabylady. Siz 0 jáne 51 arasyndaǵy mánderin belgileı alasyz, onda tómen mánder (joǵary faıl ólshemderi esebinen) nátıjesinde jaqsy sapaǵa keltiredi. Taǵylyp mánder 18 jáne 28 arasynda bolady. x264 úshin ádepkisi 23 bolyp tabylady, sondyqtan bastaý núktesi retinde osyny paıdalanýyńyzǵa bolady.",
|
||||
"EncoderPresetHelp": "Ónimdilikti jaqsartý úshin jyldam mánin, nemese sapasyn jaqsartý úshin baıaý mánin tańdańyz.",
|
||||
"HDPrograms": "HD-kórsetimder",
|
||||
"HandledByProxy": "Keri proksı arqyly óńdeldi",
|
||||
"HardwareAccelerationWarning": "Apparattyq jedeldetýdi qosý keıbir ortalarda turaqsyzdyq týdyrýy múmkin. Amaldyq júıeńiz ben beıne draıverlerińiz tolyq jańartylǵanyna kóz jetkizińiz. Eger osyny qosqannan keıin beıne oınatýda qıyndyq bolsa, parametrdi qaıta Eshqanadaǵa ózgertýińiz qajet.",
|
||||
"HeaderAccessSchedule": "Qatynaý kestesi",
|
||||
"HeaderAccessScheduleHelp": "Qatynaýdy belgili saǵattarǵa shekteý úshin qatynaý kestesin jasańyz.",
|
||||
@ -305,9 +298,6 @@
|
||||
"HeaderBlockItemsWithNoRating": "Jastas sanaty týraly aqparaty joq nemese ol tanylmaǵan mazmundy qursaýlaý:",
|
||||
"HeaderBooks": "Kitaptar",
|
||||
"HeaderBranding": "Bezendirý",
|
||||
"HeaderBrandingHelp": "Tobyńyzdyń ne uıymyńyzdyń muqtajdyqtaryna úılesimdi Jellyfin bezendirýin teńsheý.",
|
||||
"HeaderCameraUpload": "Kameradan júktep salý",
|
||||
"HeaderCameraUploadHelp": "Utqyr qurylǵylaryńyzda túsirilgen fotosýretterdi Jellyfin qoldanbalary avtomatty Jellyfin Server ishine júktep salý múmkin.",
|
||||
"HeaderCancelRecording": "Jazýdy boldyrmaý",
|
||||
"HeaderCancelSeries": "Telehıkaıany boldyrmaý",
|
||||
"HeaderCastAndCrew": "Róldegiler men qyzmetkerler",
|
||||
@ -446,7 +436,6 @@
|
||||
"HeaderSelectServerCachePathHelp": "Serverdiń kesh faıldaryn paıdalaný úshin joldy sholyńyz nemese engizińiz. Osy qalta jazý úshin qol jetimdi bolýy qajet.",
|
||||
"HeaderSelectTranscodingPath": "Qaıta kodtaýdyń ýaqytsha faıldaryeyń jolyn tańdaý",
|
||||
"HeaderSelectTranscodingPathHelp": "Qaıta kodtaýdyń ýaqytsha faıldaryn paıdalaný úshin joldy sholyńyz nemese engizińiz. Osy qalta jazý úshin qol jetimdi bolýy qajet.",
|
||||
"HeaderSelectUploadPath": "Júktep salý jolyn tańdaý",
|
||||
"HeaderSendMessage": "Habar jiberý",
|
||||
"HeaderSeries": "Telehıkaıalar",
|
||||
"HeaderSeriesOptions": "Telehıkaıa opsıalary",
|
||||
@ -548,8 +537,6 @@
|
||||
"LabelCache": "Kesh:",
|
||||
"LabelCachePath": "Keshke qaraı jol:",
|
||||
"LabelCachePathHelp": "Sýret sıaqty serverdiń kesh faıldary úshin teńshelgen jaıǵasymdy anyqtańyz. Serverdiń ádepkisin paıdalaný úshin bos qaldyryńyz.",
|
||||
"LabelCameraUploadPath": "Kameradan júktep salý joly:",
|
||||
"LabelCameraUploadPathHelp": "Teńshelgen júktep salý joldy tańdańyz. Bul Kameradan júktep salý bóliminde teńshelgen kezkelgen ádepki parametrlerdi qaıta anyqtaıdy. Eger anyqtalmasa, ádepki qalta paıdalanylady. Eger teńsheletin jol paıdalanylsa, buny sondaı-aq Jellyfin tasyǵyshhanasyn ornatý jáne teńsheý aımaǵynda tasyǵyshhana esebinde ústeý qajet.",
|
||||
"LabelCancelled": "Boldyrylmady",
|
||||
"LabelCertificatePassword": "Kýáliktiń paróli:",
|
||||
"LabelCertificatePasswordHelp": "Eger kýáligińizge paról qajet bolsa, ony munda engizińiz.",
|
||||
@ -580,8 +567,6 @@
|
||||
"LabelDeviceDescription": "Qurylǵy sıpattamasy",
|
||||
"LabelDidlMode": "DIDL rejimi:",
|
||||
"LabelDiscNumber": "Dıski nómiri:",
|
||||
"LabelDisplayCollectionsView": "Fılmder jınaqtaryn kórsetý úshin Jıyntyqtar aspektin beıneleý",
|
||||
"LabelDisplayCollectionsViewHelp": "Bul fılmdik jıyntyqtardy beıneleý úshin bólek aspektti jasaıdy. Jıyntyqty jasaý úshin, kezkelgen fılmniń ústinde tintýirdiń oń jaq túımeshign basyńyz nemese túrtińiz de ustap turyńyz jáne \"Jıyntyqqa ústeý\" túımeshigin tańdańyz. ",
|
||||
"LabelDisplayLanguage": "Beıneleý tili:",
|
||||
"LabelDisplayLanguageHelp": "Jellyfin tárjimeleýi aǵymdaǵy joba bolyp tabylady.",
|
||||
"LabelDisplayMissingEpisodesWithinSeasons": "Joq bólimderdi maýsym ishinde beıneleý",
|
||||
@ -771,7 +756,6 @@
|
||||
"LabelScheduledTaskLastRan": "Keıingi qosylǵany {0}, {1} aldy.",
|
||||
"LabelScreensaver": "Ekran qorǵaýysh:",
|
||||
"LabelSeasonNumber": "Maýsym nómiri:",
|
||||
"LabelSecureConnectionsMode": "Qaýipsiz baılanysý rejimi:",
|
||||
"LabelSelectFolderGroups": "Kelesi qaltalardaǵy mazmundy Kıno, Mýzyka jáne TD sıaqty aspektterge avtomatty toptastyrý:",
|
||||
"LabelSelectFolderGroupsHelp": "Belgilenbegen qaltalar óz betimen óziniń aspektinde beınelenedi.",
|
||||
"LabelSelectUsers": "Paıdalanýshylardy tańdaý:",
|
||||
@ -830,9 +814,6 @@
|
||||
"LabelType": "Túri:",
|
||||
"LabelTypeMetadataDownloaders": "{0} metaderekter júkteýshileri:",
|
||||
"LabelTypeText": "Mátin",
|
||||
"LabelUnairedMissingEpisodesWithinSeasons": "Kórsetilmegen bólimderdi maýsym ishinde beıneleý",
|
||||
"LabelUnknownLanguage": "Belgisiz til",
|
||||
"LabelUrl": "URL:",
|
||||
"LabelUseNotificationServices": "Kelesi qyzmetterdi paıdalaný:",
|
||||
"LabelUser": "Paıdalanýshy:",
|
||||
"LabelUserAgent": "Paıdalanýshy agenti:",
|
||||
@ -845,7 +826,6 @@
|
||||
"LabelValue": "Máni:",
|
||||
"LabelVersion": "Nusqa:",
|
||||
"LabelVersionInstalled": "{0} ornatylǵan",
|
||||
"LabelVersionNumber": "Nýsqasy: {0}",
|
||||
"LabelVideo": "Beıne",
|
||||
"LabelXDlnaCap": "X-DLNA sıpattary:",
|
||||
"LabelXDlnaCapHelp": "urn:schemas-dlna-org:device-1-0 ataýlar keńistigindegi X_DLNACAP elementi mazmunyn anyqtaıdy.",
|
||||
@ -868,9 +848,6 @@
|
||||
"Live": "Tikeleı",
|
||||
"LiveBroadcasts": "Tikeleı taratymdar",
|
||||
"LiveTV": "Efır",
|
||||
"LiveTvFeatureDescription": "Jellyfin Server ornatylǵan úılesimdi TD-túner qurylǵysy arqyly kezkelgen Jellyfin-qoldanbaǵa TD-efırdi tikeleı jiberý.",
|
||||
"LiveTvUpdateAvailable": "(Jańartý qoljetimdi)",
|
||||
"LoginDisclaimer": "Jellyfin jeke tasyǵyshhanańyzdy (mysaly, úılik beıneler men fotosýretterdi) basqarýǵa kómektesý úshin arnalǵan. Bizdiń paıdalaný sharttaryn qarańyz. Kezkelgen Jellyfin baǵdarlamalyq jasaqtamasyn paıdalnǵanda osy sharttardyń qabyldaýyn bildiredi.",
|
||||
"Logo": "Logotıp",
|
||||
"ManageLibrary": "Tasyǵyshhanany retteý",
|
||||
"ManageRecording": "Jazýdy retteý",
|
||||
@ -919,7 +896,6 @@
|
||||
"MessageCreateAccountAt": "{0} janynda tirkelgi jasaý",
|
||||
"MessageDeleteTaskTrigger": "Shynymen osy tapsyrma trıggerin joıý qajet pe?",
|
||||
"MessageDirectoryPickerBSDInstruction": "BSD ortasynda, Jellyfin qol jetkizý maqsatynda, sizdiń FreeNAS Jail ishindegi jınaqtaýyshty teńsheý qajet bolýy múmkin.",
|
||||
"MessageDirectoryPickerInstruction": "Jeli túımeshigi basylǵanda qurylǵylaryńyz orny tabylmasa, jelilik joldar qolmen engizilýi múmkin. Mysaly, {0} nemese {1}.",
|
||||
"MessageDirectoryPickerLinuxInstruction": "Arch Linux, CentOS, Debian, Fedora, openSUSE nemese Ubuntu júıelerindegi Linux úshin, Jqyzmet kórsetý paıdalanýshyǵa kem degende saqtaý jerlerińizge oqýǵa qatynas úshin ruqsat etýge tıissiz.",
|
||||
"MessageDownloadQueued": "Júktep alý kezekte.",
|
||||
"MessageEnablingOptionLongerScans": "Osy opsıa qoıylsa, tasyǵyshhana skanerleýleri edáýir uzyn bolýy múmkin.",
|
||||
@ -932,8 +908,6 @@
|
||||
"MessageItemSaved": "Tarmaq saqtaldy.",
|
||||
"MessageItemsAdded": "Tarmaqtar ústelgen.",
|
||||
"MessageLeaveEmptyToInherit": "Tektik tarmaqtan, nemese ǵalamdyq ádepki mánnen parametrlerdi muralaý úshin bos qaldyryńyz.",
|
||||
"MessageLoggedOutParentalControl": "Aǵymda qatynaý shektelgen. Áreketti keıin qaıtalańyz.",
|
||||
"MessageNamedServerConfigurationUpdatedWithValue": "Server konfıgýrasýasynyń {0} bólimi jańartyldy",
|
||||
"MessageNoAvailablePlugins": "Qol jetimdi plagınder joq.",
|
||||
"MessageNoMovieSuggestionsAvailable": "Eshqandaı fılm usynystary aǵymda qol jetimdi emes. Fılmderdi qaraýdy jáne baǵalaýdy bastańyz, sonda arnalǵan usynytaryńyzdy kórý úshin qaıta kelińiz.",
|
||||
"MessageNoPluginsInstalled": "Ornatylǵan plagınder joq.",
|
||||
@ -991,9 +965,6 @@
|
||||
"OnlyForcedSubtitles": "Tek qana májbúrli",
|
||||
"OnlyForcedSubtitlesHelp": "Tek qana májbúrli dep belgilengen sýbtıtrler júkteledi.",
|
||||
"OnlyImageFormats": "Tek keskin pishimder (VOBSUB, PGS jáne SUB)",
|
||||
"Open": "Ashý",
|
||||
"OptionActor": "Aktór",
|
||||
"OptionActors": "Aktórler",
|
||||
"OptionAdminUsers": "Ákimshiler",
|
||||
"OptionAlbum": "Álbom",
|
||||
"OptionAlbumArtist": "Álbom oryndaýshysy",
|
||||
@ -1165,7 +1136,6 @@
|
||||
"PluginInstalledMessage": "Plagın sátti ornatyldy. Ózgertýler kúshine enýi úshin Jellyfin Server qaıta iske qosylý qajet.",
|
||||
"PreferEmbeddedTitlesOverFileNames": "Faıl ataýlary ornyna endirilgen ataýlardy qalaý",
|
||||
"PreferEmbeddedTitlesOverFileNamesHelp": "Internettegi metaderekter nemese jergilikti metaderekter qol jetimdi bolmaǵanda bul ádepki beıneletin ataýdy anyqtaıdy.",
|
||||
"PreferredNotRequired": "Talap etiledi, biraq qajet emes",
|
||||
"Premiere": "Tusaýkeseri",
|
||||
"Premieres": "Premeralar",
|
||||
"Previous": "Aldyńǵy",
|
||||
@ -1203,7 +1173,6 @@
|
||||
"RepeatOne": "Bir ret qaıtalaý",
|
||||
"ReplaceAllMetadata": "Barlyq metaderekterdi aýystyrý",
|
||||
"ReplaceExistingImages": "Bar sýretterdi aýystyrý",
|
||||
"RequiredForAllRemoteConnections": "Barlyq qashyqtaǵy qosylymdar úshin qajet",
|
||||
"ResumeAt": "{0} bastap jalǵastyrý",
|
||||
"Rewind": "Shegindirý",
|
||||
"RunAtStartup": "Iske qosylýdan bastap oryndaý",
|
||||
@ -1222,7 +1191,6 @@
|
||||
"SearchForMissingMetadata": "Joq metaderekterdi izdeý",
|
||||
"SearchForSubtitles": "Sýbtıtrlerdi izdeý",
|
||||
"SearchResults": "Izdeý nátıjeleri",
|
||||
"SecondaryAudioNotSupported": "Dybys jolshyǵyn aýystyrý úshin qoldaý kórsetilmeıdi",
|
||||
"SendMessage": "Habar jiberý",
|
||||
"Series": "Telehıkaıa",
|
||||
"SeriesCancelled": "Telehıkaıa boldyrylmady.",
|
||||
@ -1260,7 +1228,6 @@
|
||||
"Sports": "Sport",
|
||||
"StopRecording": "Jazýdy toqtatý",
|
||||
"Studios": "Stýdıalar",
|
||||
"Subscriptions": "Jazylymdar",
|
||||
"SubtitleAppearanceSettingsAlsoPassedToCastDevices": "Bul parametrler osy qurylǵy arqyly iske qosylǵan kezkelgen Chromecast oınatýyna qoldanylady.",
|
||||
"SubtitleAppearanceSettingsDisclaimer": "Bul parametrler grafıkalyq sýbtıtrlerge (PGS, DVD j.t.b.) nemese óz máneri bar endirilgen ASS/SSA sýbtıtrlerine qoldanylmaıdy.",
|
||||
"SubtitleDownloadersHelp": "Teńshelgen sýbtıtrler júkteýshilerin qosyńyz jáne basymdylyq reti boıynsha dáreje berińiz.",
|
||||
@ -1369,7 +1336,6 @@
|
||||
"ValueOneSong": "1 áýen",
|
||||
"ValueSeconds": "{0} sek",
|
||||
"ValueSeriesCount": "{0} telehıkaıa",
|
||||
"ValueSeriesYearToPresent": "{0} - Aǵymda",
|
||||
"ValueSongCount": "{0} áýen",
|
||||
"ValueSpecialEpisodeName": "Arnaıy - {0}",
|
||||
"ValueTimeLimitMultiHour": "Ýaqyt shegi: {0} saǵat",
|
||||
@ -1378,7 +1344,6 @@
|
||||
"Vertical": "Tiginen",
|
||||
"VideoRange": "Beıne aýqymy",
|
||||
"ViewAlbum": "Álbomdy qaraý",
|
||||
"ViewArtist": "Oryndaýshyny qaraý",
|
||||
"ViewPlaybackInfo": "Oınatý týraly aqparat",
|
||||
"Watched": "Qaralǵan",
|
||||
"Wednesday": "sársenbi",
|
||||
|
@ -466,7 +466,6 @@
|
||||
"LabelUserLibraryHelp": "장치에 어떤 사용자 라이브러리를 보여줄 지 선택합니다. 기본 설정을 사용하려면 비워두십시오.",
|
||||
"LabelUsername": "사용자명:",
|
||||
"LabelVersionInstalled": "{0} 설치됨",
|
||||
"LabelVersionNumber": "버전 {0}",
|
||||
"LabelYourFirstName": "이름:",
|
||||
"LabelYoureDone": "완료!",
|
||||
"LabelZipCode": "우편 번호:",
|
||||
@ -776,7 +775,6 @@
|
||||
"ValueTimeLimitSingleHour": "시간 제한: 1시간",
|
||||
"ValueVideoCodec": "비디오 코덱: {0}",
|
||||
"ViewAlbum": "앨범 보기",
|
||||
"ViewArtist": "아티스트 보기",
|
||||
"Watched": "시청함",
|
||||
"Wednesday": "수요일",
|
||||
"WelcomeToProject": "Jellyfin에 오신 것을 환영합니다!",
|
||||
@ -1051,7 +1049,6 @@
|
||||
"LabelSimultaneousConnectionLimit": "동시 스트림 제한:",
|
||||
"LabelSize": "크기:",
|
||||
"LabelServerName": "서버 이름:",
|
||||
"LabelSecureConnectionsMode": "보안 연결 모드:",
|
||||
"LabelScreensaver": "화면보호기:",
|
||||
"LabelRefreshMode": "새로고침 모드:",
|
||||
"LabelRecord": "녹화:",
|
||||
@ -1105,7 +1102,6 @@
|
||||
"MessageYouHaveVersionInstalled": "현재 버전 {0}이 설치되어있습니다.",
|
||||
"MessageNoServersAvailable": "자동 서버 탐색을 사용했지만, 서버가 발견되지 않았습니다.",
|
||||
"MessageDownloadQueued": "다운로드 대기 중.",
|
||||
"MessageDirectoryPickerInstruction": "네트워크 버튼으로 장치를 찾지 못하면 네트워크 경로를 수동으로 입력할 수 있습니다. 예를 들어, {0} 또는 {1}.",
|
||||
"MessageDirectoryPickerLinuxInstruction": "Linux on Arch Linux, CentOS, Debian, Fedora, OpenSUSE, Ubuntu의 경우 서비스 사용자에게 최소한 저장 위치에 대한 읽기 권한을 부여해야 합니다.",
|
||||
"MessageDirectoryPickerBSDInstruction": "BSD의 경우, Jellyfin이 FreeNAS Jail에 액세스할 수 있도록 하려면 FreeNAS Jail 내에 스토리지를 구성해야 할 수도 있습니다.",
|
||||
"LinksValue": "링크: {0}",
|
||||
@ -1162,7 +1158,6 @@
|
||||
"SeriesYearToPresent": "{0} - 제공",
|
||||
"RemoveFromCollection": "콜렉션에서 제거",
|
||||
"RecentlyWatched": "최근 시청함",
|
||||
"PreferredNotRequired": "추천하지만, 필수는 아닙니다",
|
||||
"PleaseAddAtLeastOneFolder": "추가 버튼을 클릭하여 하나 이상의 폴더를 라이브러리에 추가하십시오.",
|
||||
"PlaybackData": "재생 데이터",
|
||||
"PasswordResetProviderHelp": "비밀번호 재설정 제공자를 선택하십시오. 비밀번호 재설정이 요청될때 사용됩니다.",
|
||||
@ -1284,7 +1279,6 @@
|
||||
"HeaderContainerProfileHelp": "컨테이너 프로파일은 사용자의 디바이스에서 재생 가능한 파일 형식을 나타냅니다. 다이렉트 플레이가 설정된 경우에도 디바이스에서 지원되지 않는 형식이라면 트랜스코딩이 적용됩니다.",
|
||||
"HeaderCodecProfileHelp": "코덱 프로파일은 사용자의 디바이스에서 재생 가능한 코덱을 가리킵니다. 다이렉트 플레이가 설정된 경우에도 디바이스에서 지원되지 않는 코덱이라면 트랜스코딩이 적용됩니다.",
|
||||
"HeaderAppearsOn": "표시",
|
||||
"HandledByProxy": "리버스 프록시로 처리",
|
||||
"Features": "기능",
|
||||
"ErrorPleaseSelectLineup": "라인업을 선택하고 다시 시도하십시오. 이용 가능한 라인업이 없으면 계정, 비밀번호, 우편번호가 정확한지 확인하십시오.",
|
||||
"ErrorAddingListingsToSchedulesDirect": "Schedules Direct 계정에 라인업을 추가하는 중에 오류가 발생했습니다. Schedules Direct는 계정 당 제한된 수의 라인업만이 허용됩니다. 계속하려면 Schedules Direct 웹사이트에 로그인하여 다른 항목을 삭제해야 할 수 있습니다.",
|
||||
|
@ -526,7 +526,6 @@
|
||||
"ValueSongCount": "{0} dainų",
|
||||
"ValueSpecialEpisodeName": "Ypatinga - {0}",
|
||||
"ViewAlbum": "Žiūrėti albumą",
|
||||
"ViewArtist": "Žiūrėti atlikėją",
|
||||
"Wednesday": "Trečiadienis",
|
||||
"WelcomeToProject": "Sveiki atvykę į Jellyfin!",
|
||||
"WizardCompleted": "Kol kas to užteks. Jellyfin pradėjo rinkti duomenis apie Jūsų medijos biblioteką. Peržiūrėkite programėles, o po to spauskite <b>Baigti</b> ir perkelsime jus į <b>Serverio skydelį</b>.",
|
||||
@ -565,7 +564,6 @@
|
||||
"ButtonLearnMore": "Sužinoti daugiau",
|
||||
"ButtonLibraryAccess": "Mediatekos prieiga",
|
||||
"ButtonMore": "Daugiau",
|
||||
"ButtonMoreInformation": "Daugiau Informacijos",
|
||||
"ButtonNetwork": "Tinklas",
|
||||
"ButtonOff": "Išjungti",
|
||||
"ButtonOpen": "Atidaryti",
|
||||
@ -925,7 +923,6 @@
|
||||
"GroupBySeries": "Grupuoti pagal serialus",
|
||||
"Guide": "Gidas",
|
||||
"GuideProviderLogin": "Prisijungti",
|
||||
"HandledByProxy": "Valdomas atvirkštiniu \"proxy\" serveriu",
|
||||
"HardwareAccelerationWarning": "Įjungus aparatinės įrangos spartinimą, kai kuriose diegimo aplinkose gali atsirasti nestabilumas. Įsitikinkite, kad jūsų operacinė sistema ir vaizdo tvarkyklės yra visiškai atnaujintos. Jei įjungus šį vaizdo įrašą kyla problemų, turite pakeisti nustatymą į \"Joks\".",
|
||||
"HeaderAdmin": "Administratorius",
|
||||
"HeaderAlbums": "Albumai",
|
||||
|
@ -108,7 +108,6 @@
|
||||
"LabelSendNotificationToUsers": "Sūtīt paziņojumu uz:",
|
||||
"LabelSelectVersionToInstall": "Izvēlies versiju, ko uzstādīt:",
|
||||
"LabelSelectUsers": "Izvēlies lietotājus:",
|
||||
"LabelSecureConnectionsMode": "Drošā savienojuma veids:",
|
||||
"LabelSeasonNumber": "Sezonas numurs:",
|
||||
"LabelScreensaver": "Ekrānsaudzētājs:",
|
||||
"LabelRuntimeMinutes": "Ilgums (minūtes):",
|
||||
@ -664,7 +663,6 @@
|
||||
"Wednesday": "Trešdiena",
|
||||
"Watched": "Skatīts",
|
||||
"ViewPlaybackInfo": "Skatīt atskaņošanas info",
|
||||
"ViewArtist": "Skatīt izpildītāju",
|
||||
"ViewAlbum": "Skatīt albumu",
|
||||
"VideoRange": "Video platums",
|
||||
"Vertical": "Vertikāls",
|
||||
@ -1015,7 +1013,6 @@
|
||||
"LabelHardwareAccelerationTypeHelp": "Aparatūras paātrināšanai ir vajadzīga papildus konfigurācija.",
|
||||
"LabelEncoderPreset": "H264 un H265 kodēšanas noklusējumi:",
|
||||
"HardwareAccelerationWarning": "Iespējojot aparatūras paātrināšanu var veidot nestabilitāti dažās vidēs. Pārliecinies ka tava operētājsistēma un video draiveri it pilnībā atjaunināti. Ja tev ir problēmas ar video atskaņošanu pēc šī iestatījuma iespējošanas, tev vajadzēs pārmainīt to atpakaļ uz Neviens.",
|
||||
"HandledByProxy": "Apstrādā reversais proxy",
|
||||
"LabelImageFetchersHelp": "Iespējo un sakārto savu attēlu sagādnieku prioritāti.",
|
||||
"HeaderFetcherSettings": "Sagādnieku Iestatījumi",
|
||||
"HeaderBranding": "Zīmols",
|
||||
|
@ -660,7 +660,6 @@
|
||||
"LabelVaapiDeviceHelp": "Dette er enheten som brukes for maskinvareakselerasjon.",
|
||||
"LabelValue": "Verdi:",
|
||||
"LabelVersionInstalled": "{0} installert",
|
||||
"LabelVersionNumber": "Versjon {0}",
|
||||
"LabelXDlnaCapHelp": "Bestemmer innholdet i X_DLNACAP-elementet i urn:schemas-dlna-org:device-1-0-domenet.",
|
||||
"LabelXDlnaDocHelp": "Bestemmer innholdet i X_DLNADOC-elementet i urn:schemas-dlna-org:device-1-0-domenet.",
|
||||
"LabelYourFirstName": "Fornavnet ditt:",
|
||||
@ -712,7 +711,6 @@
|
||||
"MessageCreateAccountAt": "Opprett en konto hos {0}",
|
||||
"MessageDeleteTaskTrigger": "Er du sikker på at du vil slette denne oppgaveutløseren?",
|
||||
"MessageDirectoryPickerBSDInstruction": "På BSD-systemer må du kanskje endre lagringsinnstillinger i FreeNAS Jail slik at Jellyfin har tilgang dit.",
|
||||
"MessageDirectoryPickerInstruction": "Nettverksbaner kan skrives inn manuelt i tilfelle søke-knappen ikke klarer å lokalisere enhetene dine. For eksempel {0} eller {1}.",
|
||||
"MessageDirectoryPickerLinuxInstruction": "På Linux-systemer med Arch Linux, CentOS, Debian, Fedora, openSUSE eller Ubuntu må du minimum gi tjenestebrukeren lesetilgang til lagringsplassene dine.",
|
||||
"MessageDownloadQueued": "Nedlasting lagt i kø.",
|
||||
"MessageEnablingOptionLongerScans": "Aktivering av dette alternativet kan føre til at skanning av biblioteket tar betydelig lenger tid.",
|
||||
@ -1078,7 +1076,6 @@
|
||||
"ValueVideoCodec": "Videokodek: {0}",
|
||||
"VideoRange": "Videoområde",
|
||||
"ViewAlbum": "Vis album",
|
||||
"ViewArtist": "Vis artist",
|
||||
"ViewPlaybackInfo": "Vis avspillingsinformasjon",
|
||||
"Watched": "Sett",
|
||||
"Wednesday": "Onsdag",
|
||||
@ -1146,9 +1143,7 @@
|
||||
"LabelPlayMethod": "Avspillingsmetode:",
|
||||
"LabelTranscodes": "Omkodede filer:",
|
||||
"MediaInfoLayout": "Oppsett",
|
||||
"HandledByProxy": "Håndteres av en reverse proxy",
|
||||
"LabelRemoteClientBitrateLimitHelp": "En valgfri begrensning på bithastighet per strøm for alle enheter utenfor hjemmenettverket. Dette er nyttig for å hindre enheter fra å be om en høyere bithastighet enn internettilkoblingen din kan håndtere. Dette kan føre til økt CPU-bruk på serveren for å kunne omkode videoer fortløpende til en lavere bithastighet.",
|
||||
"LabelSecureConnectionsMode": "Modus for sikker tilkobling:",
|
||||
"MediaInfoRefFrames": "Referanserammer",
|
||||
"MediaIsBeingConverted": "Mediet blir konvertert til et format som er kompatibelt med enheten som spiller av mediet.",
|
||||
"MediaInfoStreamTypeAudio": "Lyd",
|
||||
@ -1401,10 +1396,8 @@
|
||||
"PlaybackData": "Avspillingsdata",
|
||||
"PlayCount": "Antall avspillinger",
|
||||
"Playlists": "Spillelister",
|
||||
"PreferredNotRequired": "Foretrukket, men ikke påkrevd",
|
||||
"Previous": "Forrige",
|
||||
"Primary": "Primær",
|
||||
"RequiredForAllRemoteConnections": "Påkrevd for alle eksterne tilkoblinger",
|
||||
"RunAtStartup": "Kjør ved oppstart",
|
||||
"SaveSubtitlesIntoMediaFolders": "Lagre undertekster i mediemapper",
|
||||
"SaveSubtitlesIntoMediaFoldersHelp": "Lagring av undertekster ved siden av videofilene vil gjøre det lettere å behandle dem.",
|
||||
|
@ -253,7 +253,6 @@
|
||||
"H264CrfHelp": "De Constant Rate Factor (CRF) is de standaard kwaliteit instelling voor de x264-encoder. U kunt de waarden tussen 0 en 51, in voorkomend lagere waarden zou resulteren in een betere kwaliteit (ten koste van hogere bestandsgrootte). aanbevolen zijn waarden tussen de 18 en 28. De standaard voor de x264 is 23, zodat u deze kunt gebruiken als uitgangspunt.",
|
||||
"EncoderPresetHelp": "Kies een hogere waarde om de prestaties, of een tragere waarde om de kwaliteit te verbeteren.",
|
||||
"HDPrograms": "HD Programma's",
|
||||
"HandledByProxy": "Behandeld door reverse proxy",
|
||||
"HardwareAccelerationWarning": "Hardwareversnelling inschakelen kan instabiliteit veroorzaken in sommige omgevingen. Zorg ervoor dat uw besturingssysteem en videostuurprogramma's volledig up-to-date zijn. Als u problemen ondervindt bij het afspelen van video, nadat u dit hebt ingeschakeld, moet u de instelling terugzetten naar geen.",
|
||||
"HeaderAccessSchedule": "Schema Toegang",
|
||||
"HeaderAccessScheduleHelp": "Maak een toegangsschema om de toegang tot bepaalde tijden te beperken.",
|
||||
@ -711,7 +710,6 @@
|
||||
"LabelScheduledTaskLastRan": "Laatste keer {0}, duur {1}.",
|
||||
"LabelScreensaver": "Schermbeveiliging:",
|
||||
"LabelSeasonNumber": "Seizoensnummer:",
|
||||
"LabelSecureConnectionsMode": "Beveiligde verbinding modus:",
|
||||
"LabelSelectFolderGroups": "De inhoud van de volgende mappen automatisch groeperen in secties zoals Films, Muziek en TV:",
|
||||
"LabelSelectFolderGroupsHelp": "Mappen die niet aangevinkt zijn worden getoond in hun eigen weergave.",
|
||||
"LabelSelectUsers": "Selecteer gebruikers:",
|
||||
@ -773,7 +771,6 @@
|
||||
"LabelValue": "Waarde:",
|
||||
"LabelVersion": "Versie:",
|
||||
"LabelVersionInstalled": "{0} geïnstalleerd",
|
||||
"LabelVersionNumber": "Versie {0}",
|
||||
"LabelXDlnaCapHelp": "Bepaalt de inhoud van het X_DLNACAP element in de urn: schemas-dlna-org:device-1-0 namespace.",
|
||||
"LabelXDlnaDocHelp": "Bepaalt de inhoud van het X_DLNADOC element in de urn:schemas-dlna-org:device-1-0 namespace.",
|
||||
"LabelYear": "Jaar:",
|
||||
@ -829,7 +826,6 @@
|
||||
"MessageCreateAccountAt": "Maak een account bij {0}",
|
||||
"MessageDeleteTaskTrigger": "Weet u zeker dat u deze signaal taak wilt verwijderen?",
|
||||
"MessageDirectoryPickerBSDInstruction": "Voor BSD kan het noodzakelijk zijn opslag op uw FreeNAS Jail te configureren voordat Jellyfin het kan benaderen.",
|
||||
"MessageDirectoryPickerInstruction": "Netwerk paden kunnen handmatig worden ingevoerd in het geval de Netwerk knop faalt om uw apparatuur te lokaliseren. Bijvoorbeeld: {0} of {1}.",
|
||||
"MessageDirectoryPickerLinuxInstruction": "Voor Linux op Arch Linux, CentOS, Debian, Fedora, openSUSE, of Ubuntu, moet u de service-gebruiker ten minste leestoegang tot uw opslaglocaties verlenen.",
|
||||
"MessageDownloadQueued": "Download in de wachtrij geplaatst.",
|
||||
"MessageEnablingOptionLongerScans": "Het inschakelen van deze optie kan leiden tot langere doorlooptijd van bibliotheek scans.",
|
||||
@ -1051,7 +1047,6 @@
|
||||
"PluginInstalledMessage": "Het installeren van de plugin is gelukt. Jellyfin Server zal heropgestart moeten worden om de wijzigingen door te voeren.",
|
||||
"PreferEmbeddedTitlesOverFileNames": "Prefereer ingesloten titels boven bestandsnamen",
|
||||
"PreferEmbeddedTitlesOverFileNamesHelp": "Dit bepaalt de standaard weergavetitel wanneer er geen internet metagegevens of lokale metadata beschikbaar is.",
|
||||
"PreferredNotRequired": "Gewenst, maar niet verplicht",
|
||||
"Premieres": "Premières",
|
||||
"Previous": "Vorige",
|
||||
"Primary": "Primair",
|
||||
@ -1088,7 +1083,6 @@
|
||||
"RepeatOne": "Eén herhalen",
|
||||
"ReplaceAllMetadata": "Alle metadata vervangen",
|
||||
"ReplaceExistingImages": "Bestaande afbeeldingen vervangen",
|
||||
"RequiredForAllRemoteConnections": "Vereist voor alle externe verbindingen",
|
||||
"ResumeAt": "Hervatten vanaf {0}",
|
||||
"Rewind": "Terugspoelen",
|
||||
"RunAtStartup": "Uitvoeren bij opstarten",
|
||||
@ -1236,7 +1230,6 @@
|
||||
"Vertical": "Verticaal",
|
||||
"VideoRange": "Videobereik",
|
||||
"ViewAlbum": "Bekijk album",
|
||||
"ViewArtist": "Bekijk artiest",
|
||||
"ViewPlaybackInfo": "Bekijk afspelen info",
|
||||
"Watched": "Bekeken",
|
||||
"Wednesday": "Woensdag",
|
||||
@ -1273,19 +1266,10 @@
|
||||
"HeaderCastCrew": "Acteurs & medewerkers",
|
||||
"Art": "Afbeeldingen",
|
||||
"HeaderLiveTV": "Live TV",
|
||||
"HeaderDetails": "Details",
|
||||
"HeaderExport": "Exporteer",
|
||||
"HeaderFilters": "Filters",
|
||||
"HeaderGenres": "Genres",
|
||||
"HeaderHttpHeaders": "HTTP Headers",
|
||||
"HeaderImageLogo": "Logo",
|
||||
"HeaderMenu": "Menu",
|
||||
"HeaderResetTuner": "Ontvanger resetten",
|
||||
"HeaderReviews": "Beoordelingen",
|
||||
"HeaderStatus": "Status",
|
||||
"HeaderSync": "Synchronisatie",
|
||||
"HeaderTV": "TV",
|
||||
"HeaderTopPlugins": "Top Plugins",
|
||||
"AuthProviderHelp": "Selecteer een Authenticatie Provider om het wachtwoord van deze gebruiker te verifiëren.",
|
||||
"HeaderFavoriteMovies": "Favoriete Films",
|
||||
"HeaderFavoriteShows": "Favoriete shows",
|
||||
@ -1296,7 +1280,6 @@
|
||||
"HeaderFavoriteVideos": "Favoriete Films",
|
||||
"HeaderInstantMix": "Directe Mix",
|
||||
"HeaderItems": "Items",
|
||||
"HeaderJellyfinServer": "Jellyfin Server",
|
||||
"HeaderLiveTv": "Live TV",
|
||||
"HeaderMedia": "Media",
|
||||
"HeaderTracks": "Nummers",
|
||||
|
@ -268,7 +268,6 @@
|
||||
"H264CrfHelp": "Constant Rate Factor (CRF) to domyślna jakość kodowania x264. Możesz ją ustawić w zakresie 0-51, gdzie niższe wartości zwiększają jakość (kosztem większego rozmiaru pliku). Rozsądne wartości to zakres 18-28. Domyślnie jest to wartość 23 - możesz jej użyć jako wartości początkowej.",
|
||||
"EncoderPresetHelp": "Wybierz wartość faster, żeby zwiększyć wydajność, albo slower, żeby zwiększyć jakość.",
|
||||
"HDPrograms": "Programy w jakości HD",
|
||||
"HandledByProxy": "Obsługiwane przez usługę pośredniczącą",
|
||||
"HardwareAccelerationWarning": "Aktywacja akceleracji sprzętowej może powodować niestabilność na niektórych środowiskach. Upewnij się, że system operacyjny i sterowniki karty graficznej są aktualne. Jeżeli masz problemy z odtwarzaniem wideo po aktywacji, przywróć to ustawienie do wartości Brak.",
|
||||
"HeaderAccessSchedule": "Harmonogram dostępu",
|
||||
"HeaderAccessScheduleHelp": "Utwórz dostęp do harmonogramu aby ograniczyć go do określonych godzin.",
|
||||
@ -754,7 +753,6 @@
|
||||
"LabelScheduledTaskLastRan": "Ostatnio uruchomiono {0}, czas trwania {1}.",
|
||||
"LabelScreensaver": "Wygaszacz ekranu:",
|
||||
"LabelSeasonNumber": "Numer sezonu:",
|
||||
"LabelSecureConnectionsMode": "Tryb zabezpieczania połączenia:",
|
||||
"LabelSelectFolderGroups": "Grupuj zawartość z następujących folderów w widokach taki, jak Filmy, Muzyka i Seriale:",
|
||||
"LabelSelectFolderGroupsHelp": "Foldery, które nie zostały zaznaczone, będą wyświetlane w swoich własnych, osobnych widokach.",
|
||||
"LabelSelectUsers": "Wybierz użytkowników:",
|
||||
@ -825,7 +823,6 @@
|
||||
"LabelValue": "Wartość:",
|
||||
"LabelVersion": "Wersja:",
|
||||
"LabelVersionInstalled": "Zainstalowano {0}",
|
||||
"LabelVersionNumber": "Wersja {0}",
|
||||
"LabelVideo": "Wideo",
|
||||
"LabelXDlnaCapHelp": "Określa zawartość elementu X_DLNACAP w przestrzeni nazw urn:schemas-dlna-org:device-1-0.",
|
||||
"LabelXDlnaDocHelp": "Określa zawartość elementu X_DLNADOC w przestrzeni nazw urn:schemas-dlna-org:device-1-0.",
|
||||
@ -892,7 +889,6 @@
|
||||
"MessageCreateAccountAt": "Utwórz konto na {0}",
|
||||
"MessageDeleteTaskTrigger": "Czy na pewno chcesz usunąć ten wyzwalacz zadania?",
|
||||
"MessageDirectoryPickerBSDInstruction": "W wypadku BSD, należy skonfigurować oprogramowanie FreeNAS aby umożliwić serwerowi Jellyfin dostęp do danych.",
|
||||
"MessageDirectoryPickerInstruction": "Udziały sieciowe mogą być wprowadzone manualnie, w przypadku niewykrycia wszystkich urządzeń za pomocą przycisku \"Sieć\". Na przykład: {0} lub {1}.",
|
||||
"MessageDirectoryPickerLinuxInstruction": "Dla Linuxa dystrybucji Arch Linux, CentOS, Debian, Fedora, openSUSE albo Ubuntu, musisz uzyskać dla użytkownika Jellyfin uprawnienia przynajmniej do odczytu pamięci masowej.",
|
||||
"MessageDownloadQueued": "Dodano do kolejki pobierania.",
|
||||
"MessageEnablingOptionLongerScans": "Aktywowanie tej opcji może spowodować znaczne wydłużenie czasu skanowania biblioteki.",
|
||||
@ -1131,7 +1127,6 @@
|
||||
"PluginInstalledMessage": "Wtyczka została poprawnie zainstalowana. Serwer Jellyfin będzie wymagała ponownego uruchomienia w celu zastosowania zmian.",
|
||||
"PreferEmbeddedTitlesOverFileNames": "Preferuj wbudowane tytuły zamiast nazw plików",
|
||||
"PreferEmbeddedTitlesOverFileNamesHelp": "Określa domyślnie wyświetlany tytuł, gdy brak dostępnych metadanych lokalnych i od dostawców internetowych.",
|
||||
"PreferredNotRequired": "Preferowane, ale niewymagane",
|
||||
"Premiere": "Premiera",
|
||||
"Premieres": "Premiery",
|
||||
"Previous": "Poprzedni",
|
||||
@ -1169,7 +1164,6 @@
|
||||
"RepeatOne": "Powtarzaj jedno",
|
||||
"ReplaceAllMetadata": "Zastępuj wszystkie metadane",
|
||||
"ReplaceExistingImages": "Zastępuj istniejące obrazy",
|
||||
"RequiredForAllRemoteConnections": "Wymagane dla wszystkich zdalnych połączeń",
|
||||
"ResumeAt": "Wznów odtwarzanie od {0}",
|
||||
"Rewind": "Do tyłu",
|
||||
"RunAtStartup": "Uruchamiaj po starcie",
|
||||
@ -1339,7 +1333,6 @@
|
||||
"Vertical": "Wertykalny",
|
||||
"VideoRange": "Zakres wideo",
|
||||
"ViewAlbum": "Podgląd albumu",
|
||||
"ViewArtist": "Podgląd wykonawcy",
|
||||
"ViewPlaybackInfo": "Wyświetlaj informacje o odtwarzaniu",
|
||||
"Watched": "Obejrzany",
|
||||
"Wednesday": "Środa",
|
||||
|
@ -257,7 +257,6 @@
|
||||
"H264CrfHelp": "O CRF (Constant Rate Factor) é a configuração padrão de qualidade para o codificador x264. Você pode definir valores entre 0 e 51, onde valores menores resultarão em melhor qualidade (ao custo de arquivos maiores). Valores saudáveis estão entre 18 e 28. O padrão para o x264 é 23, então você pode usar isso como um ponto de partida.",
|
||||
"EncoderPresetHelp": "Escolha um valor mais rápido para melhorar o desempenho ou um valor mais lento para melhorar a qualidade.",
|
||||
"HDPrograms": "Programas em HD",
|
||||
"HandledByProxy": "Tratado pelo proxy reverso",
|
||||
"HardwareAccelerationWarning": "Ativar a aceleração de hardware pode causar instabilidade em alguns sistemas. Verifique se seu sistema operacional e drivers de vídeo estão atualizados. Se tiver dificuldades em reproduzir vídeo depois de ativar, retorne a configuração para automático.",
|
||||
"HeaderAccessSchedule": "Agendamento de Acesso",
|
||||
"HeaderAccessScheduleHelp": "Cria um agendamento de acesso para limitar o acesso em certos horários.",
|
||||
@ -735,7 +734,6 @@
|
||||
"LabelScheduledTaskLastRan": "Última execução {0}, demorando {1}.",
|
||||
"LabelScreensaver": "Protetor de tela:",
|
||||
"LabelSeasonNumber": "Número da temporada:",
|
||||
"LabelSecureConnectionsMode": "Modo de conexão segura:",
|
||||
"LabelSelectFolderGroups": "Agrupar automaticamente o conteúdo das seguintes pastas em visualizações como Filmes, Músicas e TV:",
|
||||
"LabelSelectFolderGroupsHelp": "Pastas que não estão marcadas serão exibidas em sua própria visualização.",
|
||||
"LabelSelectUsers": "Selecionar usuários:",
|
||||
@ -802,7 +800,6 @@
|
||||
"LabelValue": "Valor:",
|
||||
"LabelVersion": "Versão:",
|
||||
"LabelVersionInstalled": "{0} instalado",
|
||||
"LabelVersionNumber": "Versão {0}",
|
||||
"LabelVideo": "Vídeo",
|
||||
"LabelXDlnaCapHelp": "Determina o conteúdo do elemento X_DLNACAP no namespace urn:schemas-dlna-org:device-1-0.",
|
||||
"LabelXDlnaDocHelp": "Determina o conteúdo do elemento X_DLNADOC no namespace urn:schemas-dlna-org:device-1-0.",
|
||||
@ -865,7 +862,6 @@
|
||||
"MessageCreateAccountAt": "Criar uma conta em {0}",
|
||||
"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": "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.",
|
||||
@ -1093,7 +1089,6 @@
|
||||
"PluginInstalledMessage": "O plugin foi instalado com sucesso. O Servidor Jellyfin precisa ser reiniciado para que as alterações sejam aplicadas.",
|
||||
"PreferEmbeddedTitlesOverFileNames": "Preferir títulos incorporados ao invés de nomes de arquivos",
|
||||
"PreferEmbeddedTitlesOverFileNamesHelp": "Isto determina a exibição padrão do título quando não houverem metadados da internet ou locais disponíveis.",
|
||||
"PreferredNotRequired": "Preferível, mas não necessário",
|
||||
"Premieres": "Estreias",
|
||||
"Previous": "Anterior",
|
||||
"Primary": "Principal",
|
||||
@ -1130,7 +1125,6 @@
|
||||
"RepeatOne": "Repetir uma vez",
|
||||
"ReplaceAllMetadata": "Substituir todos os metadados",
|
||||
"ReplaceExistingImages": "Substituir imagens existentes",
|
||||
"RequiredForAllRemoteConnections": "Necessário para todas as conexões remotas",
|
||||
"ResumeAt": "Retomar de {0}",
|
||||
"Rewind": "Retroceder",
|
||||
"RunAtStartup": "Executar ao iniciar",
|
||||
@ -1286,7 +1280,6 @@
|
||||
"ValueVideoCodec": "Codec de Vídeo: {0}",
|
||||
"VideoRange": "Faixa de vídeo",
|
||||
"ViewAlbum": "Exibir álbum",
|
||||
"ViewArtist": "Exibir artista",
|
||||
"ViewPlaybackInfo": "Exibir informação de reprodução",
|
||||
"Watched": "Assistido",
|
||||
"Wednesday": "Quarta-feira",
|
||||
|
@ -488,7 +488,6 @@
|
||||
"LabelUsername": "Nome de Utilizador:",
|
||||
"LabelValue": "Valor:",
|
||||
"LabelVersionInstalled": "{0} instalado",
|
||||
"LabelVersionNumber": "Versão {0}",
|
||||
"LabelXDlnaCapHelp": "Determina o conteúdo do elemento X_DLNACAP no namespace urn:schemas-dlna-org:device-1-0.",
|
||||
"LabelXDlnaDocHelp": "Determina o conteúdo do elemento X_DLNADOC no namespace urn:schemas-dlna-org:device-1-0.",
|
||||
"LabelYourFirstName": "O seu primeiro nome:",
|
||||
@ -505,7 +504,6 @@
|
||||
"MessageConfirmShutdown": "Tem a certeza de que deseja encerrar o servidor?",
|
||||
"MessageDeleteTaskTrigger": "Tem a certeza de que deseja remover o agendamento desta tarefa?",
|
||||
"MessageDirectoryPickerBSDInstruction": "Num sistema operativo BSD, é necessário configurar o disco Jail FreeNAS para permitir o acesso do Servidor Jellyfin.",
|
||||
"MessageDirectoryPickerInstruction": "As localizações de rede podem ser escritas manualmente caso o botão \"Rede\" não consiga encontrar os dispositivos. Por exemplo, {0} ou {1}.",
|
||||
"MessageDirectoryPickerLinuxInstruction": "Em sistemas operativos como Arch Linux, CentOS, Debian, Fedora, openSUSE, ou Ubuntu, é necessário dar permissão ao utilizador que executa o processo Jellyfin para ter, no mínimo, acesso de leitura à pasta.",
|
||||
"MessageEnablingOptionLongerScans": "Ativar esta opção pode aumentar significativamente a duração da análise da biblioteca.",
|
||||
"MessageFileReadError": "Ocorreu um erro ao ler este ficheiro.",
|
||||
@ -865,7 +863,6 @@
|
||||
"HeaderAlert": "Alerta",
|
||||
"HeaderAlbums": "Álbuns",
|
||||
"HeaderAddToPlaylist": "Adicionar à Lista de Reprodução",
|
||||
"HandledByProxy": "Gerido pelo proxy inverso",
|
||||
"HDPrograms": "Programas HD",
|
||||
"EncoderPresetHelp": "Escolha um valor mais rápido para melhorar o desempenho, ou um valor mais lento para melhorar a qualidade.",
|
||||
"Guide": "Programação",
|
||||
@ -996,7 +993,6 @@
|
||||
"Runtime": "Duração",
|
||||
"RunAtStartup": "Executar no arranque",
|
||||
"ResumeAt": "Retomar a partir de {0}",
|
||||
"RequiredForAllRemoteConnections": "Necessário para todas as ligações externas",
|
||||
"ReplaceAllMetadata": "Substituir todos os metadados",
|
||||
"RepeatOne": "Repetir este",
|
||||
"RepeatMode": "Modo de Repetição",
|
||||
@ -1147,7 +1143,6 @@
|
||||
"LabelProfileCodecs": "Codecs:",
|
||||
"LabelReasonForTranscoding": "Razão para transcodificação:",
|
||||
"LabelScreensaver": "Proteção de Ecrã:",
|
||||
"LabelSecureConnectionsMode": "Modo de ligação segura:",
|
||||
"LabelSeriesRecordingPath": "Caminho para gravação de séries (opcional):",
|
||||
"ColorPrimaries": "Cores primárias",
|
||||
"MessageInvalidForgotPasswordPin": "Foi inserido um código PIN inválido ou expirado. Por favor, tente de novo.",
|
||||
@ -1254,7 +1249,6 @@
|
||||
"Studios": "Estúdios",
|
||||
"Watched": "Visto",
|
||||
"ViewPlaybackInfo": "Ver informação de reprodução",
|
||||
"ViewArtist": "Ver artista",
|
||||
"ViewAlbum": "Ver álbum",
|
||||
"Vertical": "Vertical",
|
||||
"ValueSongCount": "{0} músicas",
|
||||
@ -1400,7 +1394,6 @@
|
||||
"Previous": "Anterior",
|
||||
"Premieres": "Estreias",
|
||||
"Premiere": "Estreia",
|
||||
"PreferredNotRequired": "Prefiro, mas não obrigatório",
|
||||
"PreferEmbeddedTitlesOverFileNames": "Preferir títulos embutidos a nomes de ficheiro",
|
||||
"PictureInPicture": "Imagem em imagem",
|
||||
"OptionThumbCard": "Miniatura cartão",
|
||||
|
@ -120,7 +120,6 @@
|
||||
"RunAtStartup": "Executar no arranque",
|
||||
"Rewind": "Retroceder",
|
||||
"ResumeAt": "Retomar a partir de {0}",
|
||||
"RequiredForAllRemoteConnections": "Necessário para todas as ligações externas",
|
||||
"ReplaceExistingImages": "Substituir imagens existentes",
|
||||
"ReplaceAllMetadata": "Substituir todos os metadados",
|
||||
"RepeatOne": "Repetir este",
|
||||
@ -716,7 +715,6 @@
|
||||
"MessageEnablingOptionLongerScans": "Activar esta opção pode aumentar significativamente a duração da análise da biblioteca.",
|
||||
"MessageDownloadQueued": "Transferência pendente.",
|
||||
"MessageDirectoryPickerLinuxInstruction": "Em sistemas operativos como Arch Linux, CentOS, Debian, Fedora, OpenSuse ou Ubuntu, é necessário dar permissão ao utilizador que executa o processo Jellyfin para ter, no mínimo, acesso de leitura à pasta.",
|
||||
"MessageDirectoryPickerInstruction": "As localizações de rede podem ser introduzidas manualmente caso o botão \"Rede\" não consiga encontrar os dispositivos. Por exemplo, {0} ou {1}.",
|
||||
"MessageDirectoryPickerBSDInstruction": "Num sistema operativo BSD, é necessário configurar o disco FreeNAS Jail para permitir o acesso do Servidor Jellyfin.",
|
||||
"MessageDeleteTaskTrigger": "Tem a certeza que deseja remover o agendamento desta tarefa?",
|
||||
"MessageCreateAccountAt": "Criar uma conta em {0}",
|
||||
@ -810,7 +808,6 @@
|
||||
"LabelSelectUsers": "Seleccionar utilizadores:",
|
||||
"LabelSelectFolderGroupsHelp": "Pastas não selecionadas serão apresentadas sozinhas, na sua própria vista.",
|
||||
"LabelSelectFolderGroups": "Agrupar automaticamente o conteúdo das pastas seguintes em vistas como Filmes, Música e TV:",
|
||||
"LabelSecureConnectionsMode": "Modo de ligação segura:",
|
||||
"LabelSeasonNumber": "Número da temporada:",
|
||||
"LabelScreensaver": "Proteção de Ecrã:",
|
||||
"LabelScheduledTaskLastRan": "Última execução há {0}. Tempo de execução {1}.",
|
||||
@ -1173,7 +1170,6 @@
|
||||
"HeaderAccessScheduleHelp": "Crie uma restrição horária de acesso para limitar o acesso ao Jellyfin a determinadas horas.",
|
||||
"HeaderAccessSchedule": "Restrição Horária de Acesso",
|
||||
"HardwareAccelerationWarning": "A ativação da aceleração de hardware pode causar instabilidade em alguns ambientes. Verifique se o sistema operacional e os drivers de vídeo estão totalmente atualizados. Se você tiver dificuldade em reproduzir o vídeo depois de ativar isso, precisará alterar a configuração novamente para Nenhum.",
|
||||
"HandledByProxy": "Gerido pelo proxy inverso",
|
||||
"HDPrograms": "Programas HD",
|
||||
"EncoderPresetHelp": "Escolha um valor mais rápido para melhorar o desempenho, ou um valor mais lento para melhorar a qualidade.",
|
||||
"H264CrfHelp": "O parâmetro \\\"Constant Rate Factor (CRF)\\\" define o nível de qualidade usadoi por omissão pelo codificador x264. Os valores variam entre 0 e 51, em que valores mais baixos resultam em maior qualidade (com o custo de ficheiros maiores). Valores entre 18 e 28 são habitualmente considerados aceitáveis. O valor por omissão é 23, sendo um bom ponto de partida para ajustes.",
|
||||
@ -1361,7 +1357,6 @@
|
||||
"AlbumArtist": "Álbum do Artista",
|
||||
"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.",
|
||||
|
@ -409,7 +409,6 @@
|
||||
"General": "General",
|
||||
"GuideProviderLogin": "Autentificare",
|
||||
"HDPrograms": "Programe HD",
|
||||
"HandledByProxy": "Gestionat de proxy invers",
|
||||
"HeaderApiKeys": "Chei API",
|
||||
"HeaderApp": "Aplicație",
|
||||
"HeaderCastCrew": "Distribuție și echipă",
|
||||
@ -684,7 +683,6 @@
|
||||
"LabelSelectVersionToInstall": "Alegeți versiunea pentru instalare:",
|
||||
"LabelSelectFolderGroupsHelp": "Dosarele care nu sunt bifate vor fi afișate de singure în propria vizualizare.",
|
||||
"LabelSelectFolderGroups": "Grupați automat conținutul din următoarele foldere în vizualizări, cum ar fi Filme, Muzică și TV:",
|
||||
"LabelSecureConnectionsMode": "Mod de conectare securizat:",
|
||||
"LabelSeasonNumber": "Numărul sezonului:",
|
||||
"LabelScreensaver": "Protector de ecran:",
|
||||
"LabelScheduledTaskLastRan": "Ultima redare{0}, cu durata {1}.",
|
||||
@ -1066,7 +1064,6 @@
|
||||
"MessageFileReadError": "S-a întâmpinat o eroare în timpul citirii fișierului. Vă rugăm să încercați din nou.",
|
||||
"MessageDownloadQueued": "Descărcare adăugata în coadă.",
|
||||
"MessageDirectoryPickerLinuxInstruction": "Pentru Linux pe Arch Linux, CentOS, Debian, Fedora, openSUSE sau Ubuntu, trebuie să acordați utilizatorului serverului Jellyfin cel puțin permisiunea de citire la locațiile de stocare.",
|
||||
"MessageDirectoryPickerInstruction": "Căile de rețea pot fi introduse manual în cazul în care butonul Network nu reușește să localizeze dispozitivele. De exemplu, {0} sau {1}.",
|
||||
"MessageDirectoryPickerBSDInstruction": "Pentru BSD, poate fi necesar să configurați stocarea în FreeNAS jail pentru a permite serverului Jellyfin să o acceseze.",
|
||||
"MessageDeleteTaskTrigger": "Sigur doriți să ștergeți acest declanșator de activitate?",
|
||||
"MessageCreateAccountAt": "Crează un cont la {0}",
|
||||
@ -1225,7 +1222,6 @@
|
||||
"RunAtStartup": "Rulați la pornire",
|
||||
"Rewind": "Derulează",
|
||||
"ResumeAt": "Reluați de la {0}",
|
||||
"RequiredForAllRemoteConnections": "Obligatoriu pentru toate conexiunile distante",
|
||||
"ReplaceExistingImages": "Înlocuiți toate imaginile",
|
||||
"ReplaceAllMetadata": "Înlocuiți toate metadatele",
|
||||
"RepeatOne": "Repetă una singură",
|
||||
@ -1263,7 +1259,6 @@
|
||||
"Previous": "Anteriorul",
|
||||
"Premieres": "Premiere",
|
||||
"Premiere": "Premieră",
|
||||
"PreferredNotRequired": "Preferat, dar nu este necesar",
|
||||
"PreferEmbeddedTitlesOverFileNamesHelp": "Aceasta determină titlul afișat implicit atunci când nu sunt disponibile metadate din internet sau metadate locale.",
|
||||
"PreferEmbeddedTitlesOverFileNames": "Preferă titlurile incluse decât numele fișierelor",
|
||||
"PluginInstalledMessage": "Pluginul a fost instalat cu succes. Jellyfin Server va trebui să fie repornit pentru ca modificările să intre în vigoare.",
|
||||
@ -1375,7 +1370,6 @@
|
||||
"Whitelist": "Listă agreată",
|
||||
"Watched": "Vizionat",
|
||||
"ViewPlaybackInfo": "Vizualizați informațiile despre redare",
|
||||
"ViewArtist": "Vezi artist",
|
||||
"ViewAlbum": "Vizualizați albumul",
|
||||
"VideoRange": "Interval video",
|
||||
"Vertical": "Vertical",
|
||||
|
@ -272,7 +272,6 @@
|
||||
"H264CrfHelp": "Постоянное значение оценки (Constant Rate Factor, CRF) - параметр качества по умолчанию для кодёра x264. Возможно задавать значения от 0 до 51, где меньшие значения привели бы к улучшению качества (за счёт увеличения размеров файлов). Приемлемыми являются значения от 18 до 28. Стандартно для x264 - 23, так что вы можете использовать это в качестве отправной точки.",
|
||||
"EncoderPresetHelp": "Выберите значение быстрее для улучшения производительности, или значение медленнее для улучшения качества.",
|
||||
"HDPrograms": "HD-передачи",
|
||||
"HandledByProxy": "Обрабатывается обратным прокси",
|
||||
"HardwareAccelerationWarning": "Включение аппаратного ускорения может привести к нестабильности в некоторых средах. Убедитесь в том, что ваша операционная система и видеодрайверы полностью актуализированы. Если имеются проблемы с воспроизведением видео после включения этого, необходимо сменить параметр назад на Ничего.",
|
||||
"HeaderAccessSchedule": "Расписание доступа",
|
||||
"HeaderAccessScheduleHelp": "Создайте расписание доступа, чтобы лимитировать доступ определёнными часами.",
|
||||
@ -759,7 +758,6 @@
|
||||
"LabelScheduledTaskLastRan": "Последний запуск был {0}, занял {1}.",
|
||||
"LabelScreensaver": "Хранитель экрана:",
|
||||
"LabelSeasonNumber": "Номер сезона:",
|
||||
"LabelSecureConnectionsMode": "Режим безопасного соединения:",
|
||||
"LabelSelectFolderGroups": "Автоматическое группирование внутрь аспектов (например: Кино, Музыка и ТВ) содержания из следующих папок:",
|
||||
"LabelSelectFolderGroupsHelp": "Папки, при которых сняты флажки, будут отображаться самостоятельно в их собственных аспектах.",
|
||||
"LabelSelectUsers": "Выбранные пользователи:",
|
||||
@ -830,7 +828,6 @@
|
||||
"LabelValue": "Значение:",
|
||||
"LabelVersion": "Версия:",
|
||||
"LabelVersionInstalled": "Установлена: {0}",
|
||||
"LabelVersionNumber": "Версия {0}",
|
||||
"LabelVideo": "Видео",
|
||||
"LabelXDlnaCap": "Свойства X-Dlna:",
|
||||
"LabelXDlnaCapHelp": "Определяется содержание из элемента X_DLNACAP во пространстве имён urn:schemas-dlna-org:device-1-0.",
|
||||
@ -902,7 +899,6 @@
|
||||
"MessageCreateAccountAt": "Создайте учётную запись на {0}",
|
||||
"MessageDeleteTaskTrigger": "Вы действительно хотите удалить данный триггер задачи?",
|
||||
"MessageDirectoryPickerBSDInstruction": "Касаемо BSD, возможно, потребуется конфигурировать хранилище в вашем FreeNAS Jail для того, чтобы разрешить Jellyfin получить к нему доступ.",
|
||||
"MessageDirectoryPickerInstruction": "Сетевые пути возможно ввести вручную, в том случае, если при нажатии кнопки «Сеть» происходит сбой обнаружения устройств. Например: {0} или {1}.",
|
||||
"MessageDirectoryPickerLinuxInstruction": "Для Linux на Arch Linux, CentOS, Debian, Fedora, openSUSE или Ubuntu, вы должны предоставить пользователю службы, по крайней мере, доступ для чтения к расположениям хранилища.",
|
||||
"MessageDownloadQueued": "Загрузка в очереди.",
|
||||
"MessageEnablingOptionLongerScans": "Включение этой опции может привести к значительному увеличению времени сканирования медиатеки.",
|
||||
@ -1143,7 +1139,6 @@
|
||||
"PluginInstalledMessage": "Плагин установлен успешно. Чтобы изменения вступили в силу, будет необходимо перезапустить Jellyfin Server.",
|
||||
"PreferEmbeddedTitlesOverFileNames": "Предпочитать внедрённые названия, чем имена файлов",
|
||||
"PreferEmbeddedTitlesOverFileNamesHelp": "Этим определяется отображаемое название по умолчанию, когда нет метаданных с интернета или локальные метаданные недоступны.",
|
||||
"PreferredNotRequired": "Предпочтительно, но не требуется",
|
||||
"Premiere": "Премьера",
|
||||
"Premieres": "Премьеры",
|
||||
"Previous": "Предыдущее",
|
||||
@ -1181,7 +1176,6 @@
|
||||
"RepeatOne": "Повторить раз",
|
||||
"ReplaceAllMetadata": "Замена всех метаданных",
|
||||
"ReplaceExistingImages": "Замена имеющихся изображений",
|
||||
"RequiredForAllRemoteConnections": "Требуется для всех внешних подключений",
|
||||
"ResumeAt": "Возобновить с {0}",
|
||||
"Rewind": "Отмотать",
|
||||
"RunAtStartup": "Запускать при старте системы",
|
||||
@ -1355,7 +1349,6 @@
|
||||
"Vertical": "Вертикально",
|
||||
"VideoRange": "Диапазон видео",
|
||||
"ViewAlbum": "Посмотреть альбом",
|
||||
"ViewArtist": "Посмотреть исполнителя",
|
||||
"ViewPlaybackInfo": "Сведения о воспроизводимом",
|
||||
"Watched": "Просмотрено",
|
||||
"Wednesday": "среда",
|
||||
|
@ -492,7 +492,6 @@
|
||||
"LabelValue": "Hodnota:",
|
||||
"LabelVersion": "Verzia:",
|
||||
"LabelVersionInstalled": "{0} nainštalovaný",
|
||||
"LabelVersionNumber": "Verzia {0}",
|
||||
"LabelYear": "Rok:",
|
||||
"LabelYourFirstName": "Meno:",
|
||||
"LabelYoureDone": "Hotovo!",
|
||||
@ -850,7 +849,6 @@
|
||||
"ValueVideoCodec": "Video kodeky: {0}",
|
||||
"Vertical": "Vertikálne",
|
||||
"ViewAlbum": "Zobraziť album",
|
||||
"ViewArtist": "Zobraziť umelca",
|
||||
"Wednesday": "Streda",
|
||||
"WelcomeToProject": "Vitajte v Jellyfin!",
|
||||
"WizardCompleted": "To je zatiaľ všetko, čo potrebujeme. Jellyfin začal zhromažďovať údaje o vašej multimediálnej knižnici. Pozrite si niektoré z našich aplikácií a potom kliknite na <b>Dokončiť</b> pre zobrazenie <b>Dashboardu</b>.",
|
||||
@ -987,7 +985,6 @@
|
||||
"Recordings": "Nahrávky",
|
||||
"RemoveFromPlaylist": "Odobrať z playlistu",
|
||||
"RepeatMode": "Režim opakovania",
|
||||
"RequiredForAllRemoteConnections": "Vyžadované pre všetky vzdialené pripojenia",
|
||||
"Rewind": "Pretočiť späť",
|
||||
"Runtime": "Dĺžka",
|
||||
"Schedule": "Naplánovné úlohy",
|
||||
@ -1028,7 +1025,6 @@
|
||||
"SimultaneousConnectionLimitHelp": "Maximálny povolený počet súčasných streamov. Zadajte 0 pre vypnutie obmedzenia.",
|
||||
"RepeatEpisodes": "Opakovanie epizód",
|
||||
"Record": "Nahrávať",
|
||||
"PreferredNotRequired": "Preferované, ale nevyžadované",
|
||||
"OptionRegex": "Regex",
|
||||
"OptionEstimateContentLength": "Odhadnúť dĺžku obsahu pri prekódovávaní",
|
||||
"OptionEnableForAllTuners": "Povoliť pre všetky tunery",
|
||||
@ -1045,7 +1041,6 @@
|
||||
"HeaderSeriesOptions": "Nastavenia seriálov",
|
||||
"HeaderParentalRatings": "Rodičovské hodnotenia",
|
||||
"HeaderEnabledFields": "Povolené polia",
|
||||
"HeaderAudioLanguages": "Jazyk zvuku",
|
||||
"HeaderAllowMediaDeletionFrom": "Povoliť zmazanie médií z",
|
||||
"HeaderAdmin": "Admin",
|
||||
"EnableThemeVideos": "Videá úvodných zvučiek",
|
||||
@ -1140,7 +1135,6 @@
|
||||
"HeaderAdditionalParts": "Dodatočné časti",
|
||||
"HardwareAccelerationWarning": "Povolenie hardvérovej akcelerácie môže spôsobiť nestabilitu v niektorých podmienkach. Uistite sa, že váš operačný systém a grafické ovládače sú plne aktualizované. Pokiaľ máte po zapnutí problémy s prehrávaním videa, budete musieť zmeniť nastavenie späť na Žiadne.",
|
||||
"AddItemToCollectionHelp": "Pridať položku do kolekcie jej vyhľadaním a použitím pravého tlačítka myši alebo kliknutím na tlačidlo ponuky a pridať do kolekcie.",
|
||||
"HandledByProxy": "Spracované pomocou reverznej proxy",
|
||||
"EncoderPresetHelp": "Vyberte hodnotu faster pre zlepšenie výkonu alebo hodnotu slower pre zlepšenie kvality.",
|
||||
"H264CrfHelp": "Constant Rate Factor (CRF) je východzím nastavením kvality pre x264 enkodér. Môžete mu nadstaviť hodnotu medzi 0 a 51, kde nižšia hodnota vedie k vyššej kvalite (za cenu väčšieho súboru). Rozumné hodnoty sú medzi 18 a 28. Východzia hodnota pre x264 je 23, ktorú môžete použiť ako začiatočný bod.",
|
||||
"GuideProviderSelectListings": "Výber zobrazenia",
|
||||
@ -1297,7 +1291,6 @@
|
||||
"MessageForgotPasswordFileCreated": "Nasledujúci súbor bol vytvorený na vašom serveri a obsahuje inštrukcie, ako postupovať:",
|
||||
"MessageDownloadQueued": "Sťahovanie zaradené do fronty.",
|
||||
"MessageDirectoryPickerLinuxInstruction": "Pre Linuxové distribúcie Arch Linux, CentOS, Debian, Fedora, openSUSE alebo Ubuntu, je potrebné udeliť používateľovi služby oprávnenie aspoň na čítanie.",
|
||||
"MessageDirectoryPickerInstruction": "Sieťové cesty môžu byť zadané manuálne v prípade, že tlačítko pre Sieť nedokáže lokalizovať vaše zariadenie. Napríklad, {0} alebo {1}.",
|
||||
"MessageDirectoryPickerBSDInstruction": "Pre BSD možno budete potrebovať nakonfigurovať úložisko priamo vo vašom FreeNAS Jail aby k nim mohol pristupovať Jellyfin.",
|
||||
"MessageDeleteTaskTrigger": "Naozaj chcete vymazať tento trigger úlohy?",
|
||||
"MessageCreateAccountAt": "Vytvoriť účet v {0}",
|
||||
@ -1362,7 +1355,6 @@
|
||||
"LabelSendNotificationToUsers": "Odoslať oznámenie pre:",
|
||||
"LabelSelectFolderGroupsHelp": "Priečinky, ktoré nie sú zaškrtnuté, budú zobrazené vo vlastnom zobrazení.",
|
||||
"LabelSelectFolderGroups": "Automaticky zoskupiť obsah z nasledujúcich priečinkov do zobrazenia, ako sú Filmy, Hudba a TV:",
|
||||
"LabelSecureConnectionsMode": "Režim zabezpečeného pripojenia:",
|
||||
"LabelScheduledTaskLastRan": "Naposledy pustené {0}, trvalo {1}.",
|
||||
"LabelSaveLocalMetadataHelp": "Ukladanie artworkov do priečinkov s médiami umožní ich jednoduchšiu úpravu.",
|
||||
"LabelRemoteClientBitrateLimitHelp": "Voliteľný limit dátových tokov jednotlivých streamov pre všetky sieťové zariadenia. Toto je užitočné ako prevencia voči požiadavkám zariadení o vyšší dátový tok ako dokáže zvládnuť internetové pripojenie. To môže mať za následok zvýšenie nárokov na CPU vášho servera, aby bolo možné transkódovať videá za behu na nižší dátový tok.",
|
||||
|
@ -99,15 +99,11 @@
|
||||
"HeaderContinueWatching": "Nadaljuj gledanje",
|
||||
"HeaderLiveTV": "TV v živo",
|
||||
"HeaderNextUp": "Sledi",
|
||||
"HeaderRecordingGroups": "Zbirke posnetkov",
|
||||
"LabelRunningTimeValue": "Čas trajanja: {0}",
|
||||
"MessageApplicationUpdated": "Jellyfin Server je bil posodobljen",
|
||||
"Movies": "Filmi",
|
||||
"AddItemToCollectionHelp": "Dodajte elemente v zbirke tako, da jih poiščete in jih z desnim klikom ali dotikom menija dodate v zbirko.",
|
||||
"AllowedRemoteAddressesHelp": "Z vejico ločen seznam IP naslovov ali IP/maska omrežij, ki jim je dovoljen oddaljeni dostop. Če pustite prazno, bodo dovoljeni vsi oddaljeni naslovi.",
|
||||
"AlwaysPlaySubtitles": "Vedno prikaži",
|
||||
"AlwaysPlaySubtitlesHelp": "Podnapisi, ki se ujemajo s prednostnim jezikom bodo naloženi ne glede na jezik zvoka.",
|
||||
"AnamorphicVideoNotSupported": "Anamorfni video ni podprt",
|
||||
"AnyLanguage": "Poljubni jezik",
|
||||
"Anytime": "Kadarkoli",
|
||||
"AroundTime": "Okrog",
|
||||
@ -117,17 +113,10 @@
|
||||
"AspectRatio": "Razmerje stranic",
|
||||
"AttributeNew": "Novo",
|
||||
"Audio": "Zvok",
|
||||
"AudioBitDepthNotSupported": "Bitna globina zvoka ni podprta",
|
||||
"AudioBitrateNotSupported": "Bitna hitrost zvoka ni podprta",
|
||||
"AudioChannelsNotSupported": "Zvočni kanali niso podprti",
|
||||
"AudioCodecNotSupported": "Zvočni kodek ni podprt",
|
||||
"AudioProfileNotSupported": "Zvočni profil ni podprt",
|
||||
"AudioSampleRateNotSupported": "Frekvenca vzorčenja zvoka ni podprta",
|
||||
"Auto": "Samodejno",
|
||||
"AutoBasedOnLanguageSetting": "Samodejno (na podlagi nastavitve jezika)",
|
||||
"Backdrop": "Ozadje",
|
||||
"Backdrops": "Ozadja",
|
||||
"BestFit": "Najboljše prileganje",
|
||||
"BirthDateValue": "Rojen: {0}",
|
||||
"BirthLocation": "Kraj rojstva",
|
||||
"BirthPlaceValue": "Kraj rojstva: {0}",
|
||||
@ -137,14 +126,9 @@
|
||||
"Browse": "Brskaj",
|
||||
"BrowsePluginCatalogMessage": "Poiščite razpoložljive dodatke v našem katalogu.",
|
||||
"BurnSubtitlesHelp": "Določi ali naj strežnik vžge podnapise pri prekodiranju videa. Izogibanje temu lahko občutno izboljša delovanje strežnika. Izberite Samodejno za vžig slikovnih formatov podnapisov (VOBSUB, PGS, SUB, IDX, ...) in nekaterih ASS oziroma SSA podnapisov.",
|
||||
"ButtonAccept": "Sprejmi",
|
||||
"ButtonAdd": "Dodaj",
|
||||
"MessageNamedServerConfigurationUpdatedWithValue": "Oddelek nastavitve strežnika {0} je bil posodobljen",
|
||||
"Photos": "Fotografije",
|
||||
"Playlists": "Seznami predvajanja",
|
||||
"PluginInstalledWithName": "{0} je bil nameščen",
|
||||
"PluginUninstalledWithName": "{0} je bil odstranjen",
|
||||
"PluginUpdatedWithName": "{0} je bil posodobljen",
|
||||
"Songs": "Pesmi",
|
||||
"Sync": "Sinhroniziraj",
|
||||
"AuthProviderHelp": "Izberi ponudnika preverjanja pristnosti za preverjanje gesla tega uporabnika.",
|
||||
@ -160,7 +144,6 @@
|
||||
"ButtonAudioTracks": "Zvočna sled",
|
||||
"ButtonBack": "Nazaj",
|
||||
"ButtonCancel": "Prekliči",
|
||||
"ButtonChangeContentType": "Spremeni tip vsebine",
|
||||
"ButtonChangeServer": "Spremeni strežnik",
|
||||
"ButtonConnect": "Poveži",
|
||||
"ButtonDelete": "Izbriši",
|
||||
@ -181,7 +164,6 @@
|
||||
"ButtonLibraryAccess": "Dostop do knjižnic",
|
||||
"ButtonManualLogin": "Ročna prijava",
|
||||
"ButtonMore": "Več",
|
||||
"ButtonMoreInformation": "Več informacij",
|
||||
"ButtonNetwork": "Omrežje",
|
||||
"ButtonNew": "Novo",
|
||||
"ButtonNextTrack": "Naslednja skladba",
|
||||
@ -443,7 +425,6 @@
|
||||
"HeaderAccessScheduleHelp": "Ustvarite urnik dostopa in omejite dostop v določenih urah.",
|
||||
"HeaderAccessSchedule": "Urnik dostopa",
|
||||
"HardwareAccelerationWarning": "Omogočanje strojnega pospeševanja lahko povzroči nestabilnost v določenih okoljih. Zagotovite, da so vaš operacijski sistem in gonilniki posodobljeni. Če imate po omogočanju te nastavitve težave s predvajanjem videa, jo nastavite nazaj na brez.",
|
||||
"HandledByProxy": "Upravlja reverse proxy",
|
||||
"HDPrograms": "HD programi",
|
||||
"EncoderPresetHelp": "Izberite hitrejšo vrednost za boljšo zmogljivost ali počasnejšo vrednost za boljšo kakovost.",
|
||||
"H264CrfHelp": "Faktor stalne hitrosti (CRF) je privzeta nastavitev kakovosti za kodirnik x264. Vrednosti lahko nastavite med 0 in 51, pri čemer nižje vrednosti dosežejo boljšo kakovost (na račun večjih velikosti datotek). Razumne vrednosti so med 18 in 28. Privzeta vrednost za x264 je 23, zato lahko to uporabite kot izhodišče.",
|
||||
@ -458,7 +439,6 @@
|
||||
"Fullscreen": "Celoten zaslon",
|
||||
"Friday": "Petek",
|
||||
"FormatValue": "Format: {0}",
|
||||
"ForAdditionalLiveTvOptions": "Za dodatne ponudnike TV v živo kliknite zavihek storitve in poglejte možnosti, ki so na voljo.",
|
||||
"FolderTypeUnset": "Mešane vsebine",
|
||||
"FolderTypeMusicVideos": "Videospoti",
|
||||
"FolderTypeMusic": "Glasba",
|
||||
@ -824,7 +804,6 @@
|
||||
"NewCollectionHelp": "Zbirke vam omogočajo ustvarjanje prilagojenih skupin filmov in drugih vsebin.",
|
||||
"TheseSettingsAffectSubtitlesOnThisDevice": "Te nastavitve vplivajo na podnapise na tej napravi",
|
||||
"PlaybackData": "Podatki o predvajanju",
|
||||
"PreferredNotRequired": "Prednostno, vendar ni potrebno",
|
||||
"PlayNext": "Predvajaj naslednje",
|
||||
"PlayNextEpisodeAutomatically": "Samodejno predvajaj naslednjo epizodo",
|
||||
"Smaller": "Manjše",
|
||||
@ -855,7 +834,6 @@
|
||||
"LabelOptionalNetworkPathHelp": "V primeru, da je mapa deljena v vašem omrežju, lahko Jellyfin deli omrežno pot z ostalimi napravami in jim omogoči neposreden dostop do vsebin. Na primer {0} ali {1}.",
|
||||
"LabelRemoteClientBitrateLimitHelp": "Neobvezna omejitev bitne hitrosti na posamezno predvajanje za vse naprave izven domačega omrežja. S tem lahko preprečite, da bi naprave zahtevale višjo bitno hitrost predvajanja, kot jo lahko prenese vaše omrežje. To lahko poveča obremenitev CPU-ja, saj bo morda potrebno sprotno prekodiranje za zmanjšanje bitne hitrosti.",
|
||||
"LanNetworksHelp": "Z vejico ločen seznam IP naslovov ali IP/maska omrežji, ki bodo upoštevana kot lokalna pri uveljavljanju omejitev pasovne širine. Če nastavite, se bodo vsi ostali naslovi upoštevali kot zunanji in bodo predmet omejitve pasovne širine. Če pustite prazno, bo kot lokalno omrežje upoštevano zgolj omrežje strežnika.",
|
||||
"MessageDirectoryPickerInstruction": "Omrežne poti lahko vnesete ročno, v kolikor gumb Omrežje ne uspe najti vaših naprav. Primer {0} ali {1}.",
|
||||
"MessageForgotPasswordInNetworkRequired": "Za začetek ponastavitve gesla prosimo poskusite znova v vašem domačem omrežju.",
|
||||
"OptionReportByteRangeSeekingWhenTranscodingHelp": "To je potrebno za nekatere naprave, ki slabo iščejo po času.",
|
||||
"OptionRequirePerfectSubtitleMatch": "Prenesi zgolj podnapise, ki se popolnoma ujemajo z mojimi video datotekami",
|
||||
@ -1080,7 +1058,6 @@
|
||||
"OptionHasTrailer": "Napovednik",
|
||||
"OptionFriday": "Petek",
|
||||
"OptionEveryday": "Vsak dan",
|
||||
"OptionEnableAutomaticServerUpdates": "Omogoči samodejno posodabljanje strežnika",
|
||||
"OptionDvd": "DVD",
|
||||
"OptionDownloadMenuImage": "Meni",
|
||||
"OptionDownloadLogoImage": "Logotip",
|
||||
@ -1118,7 +1095,6 @@
|
||||
"LabelSeriesRecordingPath": "Pot za snemanje serij (neobvezno):",
|
||||
"LabelSerialNumber": "Serijska številka",
|
||||
"LabelSendNotificationToUsers": "Pošlji obvestilo na:",
|
||||
"LabelSecureConnectionsMode": "Način varne povezave:",
|
||||
"LabelSeasonNumber": "Številka sezone:",
|
||||
"LabelScreensaver": "Ohranjevalnik zaslona:",
|
||||
"LabelSaveLocalMetadataHelp": "Shranjevanje slik v mape predstavnosti omogoča lažji dostop in urejanje slik.",
|
||||
@ -1259,8 +1235,6 @@
|
||||
"LabelSyncPlayPlaybackDiff": "Razlika v času predvajanja:",
|
||||
"MillisecondsUnit": "ms",
|
||||
"LabelSyncPlayTimeOffset": "Zamik časa na strežniku:",
|
||||
"EnableFastImageFadeInHelp": "Uporabi hitrejše animacije in prehode",
|
||||
"EnableFastImageFadeIn": "Hitrejše animacije",
|
||||
"LabelRequireHttpsHelp": "Če je označeno, bo strežnik samodejno preusmeril vse HTTP zahteva na HTTPS. Nima vpliva, če strežnik ne posluša na HTTPS.",
|
||||
"LabelRequireHttps": "Zahtevaj HTTPS",
|
||||
"HeaderInstantMix": "Hitri miks",
|
||||
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue
Block a user