diff --git a/.eslintrc.js b/.eslintrc.js index 4a3fec944..8b9a7dea1 100644 --- a/.eslintrc.js +++ b/.eslintrc.js @@ -42,7 +42,8 @@ module.exports = { 'one-var': ["error", "never"], 'quotes': ["error", "single", { "avoidEscape": true, "allowTemplateLiterals": false }], 'semi': ["error"], - 'space-before-blocks': ["error"] + 'space-before-blocks': ["error"], + "space-infix-ops": "error" }, overrides: [ { diff --git a/.gitignore b/.gitignore index 4adf9558b..9bccd32fb 100644 --- a/.gitignore +++ b/.gitignore @@ -8,4 +8,7 @@ node_modules # ide .idea -.vscode \ No newline at end of file +.vscode + +#log +yarn-error.log diff --git a/README.md b/README.md index e2aac6b15..f06e46132 100644 --- a/README.md +++ b/README.md @@ -44,7 +44,7 @@ Jellyfin Web is the frontend used for most of the clients available for end user ### Dependencies -- Yarn +- [Yarn 1.22.4](https://classic.yarnpkg.com/en/docs/install) - Gulp-cli ### Getting Started @@ -78,4 +78,4 @@ Jellyfin Web is the frontend used for most of the clients available for end user ```sh yarn build:standalone - ``` \ No newline at end of file + ``` diff --git a/package.json b/package.json index 1beb16499..ccea0f43c 100644 --- a/package.json +++ b/package.json @@ -9,7 +9,7 @@ "@babel/plugin-transform-modules-amd": "^7.9.6", "@babel/polyfill": "^7.8.7", "@babel/preset-env": "^7.8.6", - "autoprefixer": "^9.7.6", + "autoprefixer": "^9.8.0", "babel-loader": "^8.0.6", "browser-sync": "^2.26.7", "clean-webpack-plugin": "^3.0.0", @@ -25,7 +25,7 @@ "file-loader": "^6.0.0", "gulp": "^4.0.2", "gulp-babel": "^8.0.0", - "gulp-cli": "^2.2.0", + "gulp-cli": "^2.2.1", "gulp-concat": "^2.6.1", "gulp-htmlmin": "^5.0.1", "gulp-if": "^3.0.0", @@ -42,14 +42,14 @@ "postcss-loader": "^3.0.0", "postcss-preset-env": "^6.7.0", "style-loader": "^1.1.3", - "stylelint": "^13.3.3", + "stylelint": "^13.5.0", "stylelint-config-rational-order": "^0.1.2", "stylelint-no-browser-hacks": "^1.2.1", "stylelint-order": "^4.0.0", "webpack": "^4.41.5", "webpack-cli": "^3.3.10", "webpack-concat-plugin": "^3.0.0", - "webpack-dev-server": "^3.10.3", + "webpack-dev-server": "^3.11.0", "webpack-merge": "^4.2.2", "webpack-stream": "^5.2.1" }, @@ -57,17 +57,17 @@ "alameda": "^1.4.0", "classlist.js": "https://github.com/eligrey/classList.js/archive/1.2.20180112.tar.gz", "core-js": "^3.6.5", - "date-fns": "^2.12.0", + "date-fns": "^2.14.0", "document-register-element": "^1.14.3", "fast-text-encoding": "^1.0.1", "flv.js": "^1.5.0", "headroom.js": "^0.11.0", "hls.js": "^0.13.1", - "howler": "^2.1.3", + "howler": "^2.2.0", "intersection-observer": "^0.10.0", - "jellyfin-apiclient": "^1.1.1", + "jellyfin-apiclient": "^1.1.2", "jellyfin-noto": "https://github.com/jellyfin/jellyfin-noto", - "jquery": "^3.5.0", + "jquery": "^3.5.1", "jstree": "^3.3.7", "libass-wasm": "https://github.com/jellyfin/JavascriptSubtitlesOctopus#4.0.0-jf-smarttv", "material-design-icons-iconfont": "^5.0.1", @@ -76,9 +76,9 @@ "query-string": "^6.11.1", "resize-observer-polyfill": "^1.5.1", "screenfull": "^5.0.2", - "shaka-player": "^2.5.10", + "shaka-player": "^2.5.11", "sortablejs": "^1.10.2", - "swiper": "^5.3.7", + "swiper": "^5.4.1", "webcomponents.js": "^0.7.24", "whatwg-fetch": "^3.0.0" }, @@ -91,9 +91,9 @@ "test": [ "src/components/autoFocuser.js", "src/components/cardbuilder/cardBuilder.js", - "src/components/filedownloader.js", + "src/scripts/fileDownloader.js", "src/components/images/imageLoader.js", - "src/components/lazyloader/lazyloader-intersectionobserver.js", + "src/components/lazyLoader/lazyLoaderIntersectionObserver.js", "src/components/playback/mediasession.js", "src/components/sanatizefilename.js", "src/components/scrollManager.js", @@ -106,7 +106,11 @@ "src/scripts/filesystem.js", "src/scripts/imagehelper.js", "src/scripts/inputManager.js", - "src/scripts/keyboardnavigation.js", + "src/scripts/deleteHelper.js", + "src/components/actionSheet/actionSheet.js", + "src/components/playmenu.js", + "src/components/indicators/indicators.js", + "src/scripts/keyboardNavigation.js", "src/scripts/settings/appSettings.js", "src/scripts/settings/userSettings.js", "src/scripts/settings/webSettings.js" diff --git a/postcss.config.js b/postcss.config.js index 0e19ca6e1..bd1651fa1 100644 --- a/postcss.config.js +++ b/postcss.config.js @@ -5,8 +5,10 @@ const cssnano = require('cssnano'); const config = () => ({ plugins: [ + // Explicitly specify browserslist to override ones from node_modules + // For example, Swiper has it in its package.json postcssPresetEnv({browsers: packageConfig.browserslist}), - autoprefixer(), + autoprefixer({overrideBrowserslist: packageConfig.browserslist}), cssnano() ] }); diff --git a/scripts/scdup.py b/scripts/scdup.py index 468e31f14..9b9ddf646 100644 --- a/scripts/scdup.py +++ b/scripts/scdup.py @@ -15,6 +15,8 @@ print(langlst) input('press enter to continue') keysus = [] +missing = [] + with open(langdir + '/' + 'en-us.json') as en: langus = json.load(en) for key in langus: @@ -32,10 +34,19 @@ for lang in langlst: for key in langjson: if key in keysus: langjnew[key] = langjson[key] + elif key not in missing: + missing.append(key) f.seek(0) f.write(json.dumps(langjnew, indent=inde, sort_keys=False, ensure_ascii=False)) f.write('\n') f.truncate() f.close() +print(missing) +print('LENGTH: ' + str(len(missing))) +with open('missing.txt', 'w') as out: + for item in missing: + out.write(item + '\n') + out.close() + print('DONE') diff --git a/scripts/scgen.py b/scripts/scgen.py index 0d831426e..12af27320 100644 --- a/scripts/scgen.py +++ b/scripts/scgen.py @@ -34,7 +34,7 @@ for lang in langlst: print(dep) print('LENGTH: ' + str(len(dep))) -with open('scout.txt', 'w') as out: +with open('unused.txt', 'w') as out: for item in dep: out.write(item + '\n') out.close() diff --git a/src/addplugin.html b/src/addplugin.html index 30e42a2c5..81c671d5b 100644 --- a/src/addplugin.html +++ b/src/addplugin.html @@ -5,7 +5,7 @@

- ${Help} + ${Help}

diff --git a/src/addserver.html b/src/addserver.html index 763f56851..02850fffb 100644 --- a/src/addserver.html +++ b/src/addserver.html @@ -3,7 +3,7 @@

${HeaderConnectToServer}

- +
${LabelServerHostHelp}

diff --git a/src/apikeys.html b/src/apikeys.html index 7ca490724..3cb7cd6de 100644 --- a/src/apikeys.html +++ b/src/apikeys.html @@ -4,18 +4,19 @@

${HeaderApiKeys}

${HeaderApiKeysHelp}


+ - - - - + + + + diff --git a/src/assets/css/site.css b/src/assets/css/site.css index e59b639f4..d489f77f0 100644 --- a/src/assets/css/site.css +++ b/src/assets/css/site.css @@ -5,6 +5,17 @@ html { height: 100%; } +.clipForScreenReader { + clip: rect(1px, 1px, 1px, 1px); + clip-path: inset(50%); + height: 1px; + width: 1px; + margin: -1px; + overflow: hidden; + padding: 0; + position: absolute; +} + .material-icons { /* Fix font ligatures on older WebOS versions */ -webkit-font-feature-settings: "liga"; @@ -109,3 +120,11 @@ div[data-role=page] { .headroom--unpinned { transform: translateY(-100%); } + +.force-scroll { + overflow-y: scroll; +} + +.hide-scroll { + overflow-y: hidden; +} diff --git a/src/components/accessschedule/accessschedule.js b/src/components/accessSchedule/accessSchedule.js similarity index 97% rename from src/components/accessschedule/accessschedule.js rename to src/components/accessSchedule/accessSchedule.js index 870231cf0..2209f5761 100644 --- a/src/components/accessschedule/accessschedule.js +++ b/src/components/accessSchedule/accessSchedule.js @@ -50,7 +50,7 @@ define(['dialogHelper', 'datetime', 'globalize', 'emby-select', 'paper-icon-butt show: function (options) { return new Promise(function (resolve, reject) { var xhr = new XMLHttpRequest(); - xhr.open('GET', 'components/accessschedule/accessschedule.template.html', true); + xhr.open('GET', 'components/accessSchedule/accessSchedule.template.html', true); xhr.onload = function (e) { var template = this.response; diff --git a/src/components/accessschedule/accessschedule.template.html b/src/components/accessSchedule/accessSchedule.template.html similarity index 94% rename from src/components/accessschedule/accessschedule.template.html rename to src/components/accessSchedule/accessSchedule.template.html index 906d20869..493150ae5 100644 --- a/src/components/accessschedule/accessschedule.template.html +++ b/src/components/accessSchedule/accessSchedule.template.html @@ -1,6 +1,6 @@
-

${HeaderAccessSchedule} diff --git a/src/components/actionsheet/actionsheet.css b/src/components/actionSheet/actionSheet.css similarity index 100% rename from src/components/actionsheet/actionsheet.css rename to src/components/actionSheet/actionSheet.css diff --git a/src/components/actionSheet/actionSheet.js b/src/components/actionSheet/actionSheet.js new file mode 100644 index 000000000..9f916d097 --- /dev/null +++ b/src/components/actionSheet/actionSheet.js @@ -0,0 +1,345 @@ +import dialogHelper from 'dialogHelper'; +import layoutManager from 'layoutManager'; +import globalize from 'globalize'; +import dom from 'dom'; +import 'emby-button'; +import 'css!./actionSheet'; +import 'material-icons'; +import 'scrollStyles'; +import 'listViewStyle'; + +function getOffsets(elems) { + + let results = []; + + if (!document) { + return results; + } + + let box; + for (let elem of elems) { + // Support: BlackBerry 5, iOS 3 (original iPhone) + // If we don't have gBCR, just use 0,0 rather than error + if (elem.getBoundingClientRect) { + box = elem.getBoundingClientRect(); + } else { + box = { top: 0, left: 0 }; + } + + results.push({ + top: box.top, + left: box.left, + width: box.width, + height: box.height + }); + } + + return results; +} + +function getPosition(options, dlg) { + + const windowSize = dom.getWindowSize(); + const windowHeight = windowSize.innerHeight; + const windowWidth = windowSize.innerWidth; + + let pos = getOffsets([options.positionTo])[0]; + + if (options.positionY !== 'top') { + pos.top += (pos.height || 0) / 2; + } + + pos.left += (pos.width || 0) / 2; + + const height = dlg.offsetHeight || 300; + const width = dlg.offsetWidth || 160; + + // Account for popup size + pos.top -= height / 2; + pos.left -= width / 2; + + // Avoid showing too close to the bottom + const overflowX = pos.left + width - windowWidth; + const overflowY = pos.top + height - windowHeight; + + if (overflowX > 0) { + pos.left -= (overflowX + 20); + } + if (overflowY > 0) { + pos.top -= (overflowY + 20); + } + + pos.top += (options.offsetTop || 0); + pos.left += (options.offsetLeft || 0); + + // Do some boundary checking + pos.top = Math.max(pos.top, 10); + pos.left = Math.max(pos.left, 10); + + return pos; +} + +function centerFocus(elem, horiz, on) { + require(['scrollHelper'], function (scrollHelper) { + const fn = on ? 'on' : 'off'; + scrollHelper.centerFocus[fn](elem, horiz); + }); +} + +export function show(options) { + + // items + // positionTo + // showCancel + // title + let dialogOptions = { + removeOnClose: true, + enableHistory: options.enableHistory, + scrollY: false + }; + + let isFullscreen; + + if (layoutManager.tv) { + dialogOptions.size = 'fullscreen'; + isFullscreen = true; + dialogOptions.autoFocus = true; + } else { + + dialogOptions.modal = false; + dialogOptions.entryAnimation = options.entryAnimation; + dialogOptions.exitAnimation = options.exitAnimation; + dialogOptions.entryAnimationDuration = options.entryAnimationDuration || 140; + dialogOptions.exitAnimationDuration = options.exitAnimationDuration || 100; + dialogOptions.autoFocus = false; + } + + let dlg = dialogHelper.createDialog(dialogOptions); + + if (isFullscreen) { + dlg.classList.add('actionsheet-fullscreen'); + } else { + dlg.classList.add('actionsheet-not-fullscreen'); + } + + dlg.classList.add('actionSheet'); + + if (options.dialogClass) { + dlg.classList.add(options.dialogClass); + } + + let html = ''; + + const scrollClassName = layoutManager.tv ? 'scrollY smoothScrollY hiddenScrollY' : 'scrollY'; + let style = ''; + + // Admittedly a hack but right now the scrollbar is being factored into the width which is causing truncation + if (options.items.length > 20) { + const minWidth = dom.getWindowSize().innerWidth >= 300 ? 240 : 200; + style += 'min-width:' + minWidth + 'px;'; + } + + let renderIcon = false; + let icons = []; + let itemIcon; + for (let item of options.items) { + + itemIcon = item.icon || (item.selected ? 'check' : null); + + if (itemIcon) { + renderIcon = true; + } + icons.push(itemIcon || ''); + } + + if (layoutManager.tv) { + html += ''; + } + + // If any items have an icon, give them all an icon just to make sure they're all lined up evenly + const center = options.title && (!renderIcon /*|| itemsWithIcons.length != options.items.length*/); + + if (center || layoutManager.tv) { + html += '
'; + } else { + html += '
'; + } + + if (options.title) { + + html += '

' + options.title + '

'; + } + if (options.text) { + html += '

' + options.text + '

'; + } + + let scrollerClassName = 'actionSheetScroller'; + if (layoutManager.tv) { + scrollerClassName += ' actionSheetScroller-tv focuscontainer-x focuscontainer-y'; + } + html += '
'; + + let menuItemClass = 'listItem listItem-button actionSheetMenuItem'; + + if (options.border || options.shaded) { + menuItemClass += ' listItem-border'; + } + + if (options.menuItemClass) { + menuItemClass += ' ' + options.menuItemClass; + } + + if (layoutManager.tv) { + menuItemClass += ' listItem-focusscale'; + } + + if (layoutManager.mobile) { + menuItemClass += ' actionsheet-xlargeFont'; + } + + // 'options.items' is HTMLOptionsCollection, so no fancy loops + for (let i = 0; i < options.items.length; i++) { + const item = options.items[i]; + + if (item.divider) { + + html += '
'; + continue; + } + + const autoFocus = item.selected && layoutManager.tv ? ' autoFocus' : ''; + + // Check for null in case int 0 was passed in + const optionId = item.id == null || item.id === '' ? item.value : item.id; + html += ''; + + itemIcon = icons[i]; + + if (itemIcon) { + html += ''; + } else if (renderIcon && !center) { + html += ''; + } + + html += '
'; + + html += '
'; + html += (item.name || item.textContent || item.innerText); + html += '
'; + + if (item.secondaryText) { + html += '
' + item.secondaryText + '
'; + } + + html += '
'; + + if (item.asideText) { + html += '
' + item.asideText + '
'; + } + + html += ''; + } + + if (options.showCancel) { + html += '
'; + html += ''; + html += '
'; + } + html += '
'; + + dlg.innerHTML = html; + + if (layoutManager.tv) { + centerFocus(dlg.querySelector('.actionSheetScroller'), false, true); + } + + let btnCloseActionSheet = dlg.querySelector('.btnCloseActionSheet'); + if (btnCloseActionSheet) { + btnCloseActionSheet.addEventListener('click', function () { + dialogHelper.close(dlg); + }); + } + + // Seeing an issue in some non-chrome browsers where this is requiring a double click + //var eventName = browser.firefox ? 'mousedown' : 'click'; + let selectedId; + + let timeout; + if (options.timeout) { + timeout = setTimeout(function () { + dialogHelper.close(dlg); + }, options.timeout); + } + + return new Promise(function (resolve, reject) { + + let isResolved; + + dlg.addEventListener('click', function (e) { + + const actionSheetMenuItem = dom.parentWithClass(e.target, 'actionSheetMenuItem'); + + if (actionSheetMenuItem) { + selectedId = actionSheetMenuItem.getAttribute('data-id'); + + if (options.resolveOnClick) { + + if (options.resolveOnClick.indexOf) { + + if (options.resolveOnClick.indexOf(selectedId) !== -1) { + + resolve(selectedId); + isResolved = true; + } + + } else { + resolve(selectedId); + isResolved = true; + } + } + + dialogHelper.close(dlg); + } + + }); + + dlg.addEventListener('close', function () { + + if (layoutManager.tv) { + centerFocus(dlg.querySelector('.actionSheetScroller'), false, false); + } + + if (timeout) { + clearTimeout(timeout); + timeout = null; + } + + if (!isResolved) { + if (selectedId != null) { + if (options.callback) { + options.callback(selectedId); + } + + resolve(selectedId); + } else { + reject(); + } + } + }); + + dialogHelper.open(dlg); + + const pos = options.positionTo && dialogOptions.size !== 'fullscreen' ? getPosition(options, dlg) : null; + + if (pos) { + dlg.style.position = 'fixed'; + dlg.style.margin = 0; + dlg.style.left = pos.left + 'px'; + dlg.style.top = pos.top + 'px'; + } + }); +} + +export default { + show: show +}; diff --git a/src/components/actionsheet/actionsheet.js b/src/components/actionsheet/actionsheet.js deleted file mode 100644 index e08fbf4a2..000000000 --- a/src/components/actionsheet/actionsheet.js +++ /dev/null @@ -1,360 +0,0 @@ -define(['dialogHelper', 'layoutManager', 'globalize', 'browser', 'dom', 'emby-button', 'css!./actionsheet', 'material-icons', 'scrollStyles', 'listViewStyle'], function (dialogHelper, layoutManager, globalize, browser, dom) { - 'use strict'; - - function getOffsets(elems) { - - var doc = document; - var results = []; - - if (!doc) { - return results; - } - - var box; - var elem; - - for (var i = 0, length = elems.length; i < length; i++) { - - elem = elems[i]; - // Support: BlackBerry 5, iOS 3 (original iPhone) - // If we don't have gBCR, just use 0,0 rather than error - if (elem.getBoundingClientRect) { - box = elem.getBoundingClientRect(); - } else { - box = { top: 0, left: 0 }; - } - - results[i] = { - top: box.top, - left: box.left, - width: box.width, - height: box.height - }; - } - - return results; - } - - function getPosition(options, dlg) { - - var windowSize = dom.getWindowSize(); - var windowHeight = windowSize.innerHeight; - var windowWidth = windowSize.innerWidth; - - var pos = getOffsets([options.positionTo])[0]; - - if (options.positionY !== 'top') { - pos.top += (pos.height || 0) / 2; - } - - pos.left += (pos.width || 0) / 2; - - var height = dlg.offsetHeight || 300; - var width = dlg.offsetWidth || 160; - - // Account for popup size - pos.top -= height / 2; - pos.left -= width / 2; - - // Avoid showing too close to the bottom - var overflowX = pos.left + width - windowWidth; - var overflowY = pos.top + height - windowHeight; - - if (overflowX > 0) { - pos.left -= (overflowX + 20); - } - if (overflowY > 0) { - pos.top -= (overflowY + 20); - } - - pos.top += (options.offsetTop || 0); - pos.left += (options.offsetLeft || 0); - - // Do some boundary checking - pos.top = Math.max(pos.top, 10); - pos.left = Math.max(pos.left, 10); - - return pos; - } - - function centerFocus(elem, horiz, on) { - require(['scrollHelper'], function (scrollHelper) { - var fn = on ? 'on' : 'off'; - scrollHelper.centerFocus[fn](elem, horiz); - }); - } - - function show(options) { - - // items - // positionTo - // showCancel - // title - var dialogOptions = { - removeOnClose: true, - enableHistory: options.enableHistory, - scrollY: false - }; - - var backButton = false; - var isFullscreen; - - if (layoutManager.tv) { - dialogOptions.size = 'fullscreen'; - isFullscreen = true; - backButton = true; - dialogOptions.autoFocus = true; - } else { - - dialogOptions.modal = false; - dialogOptions.entryAnimation = options.entryAnimation; - dialogOptions.exitAnimation = options.exitAnimation; - dialogOptions.entryAnimationDuration = options.entryAnimationDuration || 140; - dialogOptions.exitAnimationDuration = options.exitAnimationDuration || 100; - dialogOptions.autoFocus = false; - } - - var dlg = dialogHelper.createDialog(dialogOptions); - - if (isFullscreen) { - dlg.classList.add('actionsheet-fullscreen'); - } else { - dlg.classList.add('actionsheet-not-fullscreen'); - } - - dlg.classList.add('actionSheet'); - - if (options.dialogClass) { - dlg.classList.add(options.dialogClass); - } - - var html = ''; - - var scrollClassName = layoutManager.tv ? 'scrollY smoothScrollY hiddenScrollY' : 'scrollY'; - var style = ''; - - // Admittedly a hack but right now the scrollbar is being factored into the width which is causing truncation - if (options.items.length > 20) { - var minWidth = dom.getWindowSize().innerWidth >= 300 ? 240 : 200; - style += 'min-width:' + minWidth + 'px;'; - } - - var i; - var length; - var option; - var renderIcon = false; - var icons = []; - var itemIcon; - for (i = 0, length = options.items.length; i < length; i++) { - - option = options.items[i]; - - itemIcon = option.icon || (option.selected ? 'check' : null); - - if (itemIcon) { - renderIcon = true; - } - icons.push(itemIcon || ''); - } - - if (layoutManager.tv) { - html += ''; - } - - // If any items have an icon, give them all an icon just to make sure they're all lined up evenly - var center = options.title && (!renderIcon /*|| itemsWithIcons.length != options.items.length*/); - - if (center || layoutManager.tv) { - html += '
'; - } else { - html += '
'; - } - - if (options.title) { - - html += '

'; - html += options.title; - html += '

'; - } - if (options.text) { - html += '

'; - html += options.text; - html += '

'; - } - - var scrollerClassName = 'actionSheetScroller'; - if (layoutManager.tv) { - scrollerClassName += ' actionSheetScroller-tv focuscontainer-x focuscontainer-y'; - } - html += '
'; - - var menuItemClass = 'listItem listItem-button actionSheetMenuItem'; - - if (options.border || options.shaded) { - menuItemClass += ' listItem-border'; - } - - if (options.menuItemClass) { - menuItemClass += ' ' + options.menuItemClass; - } - - if (layoutManager.tv) { - menuItemClass += ' listItem-focusscale'; - } - - if (layoutManager.mobile) { - menuItemClass += ' actionsheet-xlargeFont'; - } - - for (i = 0, length = options.items.length; i < length; i++) { - - option = options.items[i]; - - if (option.divider) { - - html += '
'; - continue; - } - - var autoFocus = option.selected && layoutManager.tv ? ' autoFocus' : ''; - - // Check for null in case int 0 was passed in - var optionId = option.id == null || option.id === '' ? option.value : option.id; - html += ''; - - itemIcon = icons[i]; - - if (itemIcon) { - - html += ''; - } else if (renderIcon && !center) { - html += ''; - } - - html += '
'; - - html += '
'; - html += (option.name || option.textContent || option.innerText); - html += '
'; - - if (option.secondaryText) { - html += '
'; - html += option.secondaryText; - html += '
'; - } - - html += '
'; - - if (option.asideText) { - html += '
'; - html += option.asideText; - html += '
'; - } - - html += ''; - } - - if (options.showCancel) { - html += '
'; - html += ''; - html += '
'; - } - html += '
'; - - dlg.innerHTML = html; - - if (layoutManager.tv) { - centerFocus(dlg.querySelector('.actionSheetScroller'), false, true); - } - - var btnCloseActionSheet = dlg.querySelector('.btnCloseActionSheet'); - if (btnCloseActionSheet) { - dlg.querySelector('.btnCloseActionSheet').addEventListener('click', function () { - dialogHelper.close(dlg); - }); - } - - // Seeing an issue in some non-chrome browsers where this is requiring a double click - //var eventName = browser.firefox ? 'mousedown' : 'click'; - var selectedId; - - var timeout; - if (options.timeout) { - timeout = setTimeout(function () { - dialogHelper.close(dlg); - }, options.timeout); - } - - return new Promise(function (resolve, reject) { - - var isResolved; - - dlg.addEventListener('click', function (e) { - - var actionSheetMenuItem = dom.parentWithClass(e.target, 'actionSheetMenuItem'); - - if (actionSheetMenuItem) { - selectedId = actionSheetMenuItem.getAttribute('data-id'); - - if (options.resolveOnClick) { - - if (options.resolveOnClick.indexOf) { - - if (options.resolveOnClick.indexOf(selectedId) !== -1) { - - resolve(selectedId); - isResolved = true; - } - - } else { - resolve(selectedId); - isResolved = true; - } - } - - dialogHelper.close(dlg); - } - - }); - - dlg.addEventListener('close', function () { - - if (layoutManager.tv) { - centerFocus(dlg.querySelector('.actionSheetScroller'), false, false); - } - - if (timeout) { - clearTimeout(timeout); - timeout = null; - } - - if (!isResolved) { - if (selectedId != null) { - if (options.callback) { - options.callback(selectedId); - } - - resolve(selectedId); - } else { - reject(); - } - } - }); - - dialogHelper.open(dlg); - - var pos = options.positionTo && dialogOptions.size !== 'fullscreen' ? getPosition(options, dlg) : null; - - if (pos) { - dlg.style.position = 'fixed'; - dlg.style.margin = 0; - dlg.style.left = pos.left + 'px'; - dlg.style.top = pos.top + 'px'; - } - }); - } - - return { - show: show - }; -}); diff --git a/src/components/alphapicker/alphapicker.js b/src/components/alphaPicker/alphaPicker.js similarity index 100% rename from src/components/alphapicker/alphapicker.js rename to src/components/alphaPicker/alphaPicker.js diff --git a/src/components/alphapicker/style.css b/src/components/alphaPicker/style.css similarity index 100% rename from src/components/alphapicker/style.css rename to src/components/alphaPicker/style.css diff --git a/src/components/appfooter/appfooter.css b/src/components/appFooter/appFooter.css similarity index 100% rename from src/components/appfooter/appfooter.css rename to src/components/appFooter/appFooter.css diff --git a/src/components/appfooter/appfooter.js b/src/components/appFooter/appFooter.js similarity index 93% rename from src/components/appfooter/appfooter.js rename to src/components/appFooter/appFooter.js index 07d7701ff..033a0b008 100644 --- a/src/components/appfooter/appfooter.js +++ b/src/components/appFooter/appFooter.js @@ -1,4 +1,4 @@ -define(['browser', 'css!./appfooter'], function (browser) { +define(['browser', 'css!./appFooter'], function (browser) { 'use strict'; function render(options) { diff --git a/src/components/appRouter.js b/src/components/appRouter.js index 2e11ef88d..a7496b275 100644 --- a/src/components/appRouter.js +++ b/src/components/appRouter.js @@ -1,4 +1,4 @@ -define(['loading', 'globalize', 'events', 'viewManager', 'layoutManager', 'skinManager', 'pluginManager', 'backdrop', 'browser', 'page', 'appSettings', 'apphost', 'connectionManager'], function (loading, globalize, events, viewManager, layoutManager, skinManager, pluginManager, backdrop, browser, page, appSettings, appHost, connectionManager) { +define(['loading', 'globalize', 'events', 'viewManager', 'skinManager', 'backdrop', 'browser', 'page', 'appSettings', 'apphost', 'connectionManager'], function (loading, globalize, events, viewManager, skinManager, backdrop, browser, page, appSettings, appHost, connectionManager) { 'use strict'; var appRouter = { diff --git a/src/components/apphost.js b/src/components/apphost.js index 75e8ba17f..7b044d5d3 100644 --- a/src/components/apphost.js +++ b/src/components/apphost.js @@ -359,7 +359,6 @@ define(['appSettings', 'browser', 'events', 'htmlMediaHelper', 'webSettings', 'g return -1 !== supportedFeatures.indexOf(command.toLowerCase()); }, preferVisualCards: browser.android || browser.chrome, - moreIcon: browser.android ? 'more_vert' : 'more_horiz', getSyncProfile: getSyncProfile, getDefaultLayout: function () { if (window.NativeShell) { diff --git a/src/components/backdropscreensaver/plugin.js b/src/components/backdropScreensaver/plugin.js similarity index 100% rename from src/components/backdropscreensaver/plugin.js rename to src/components/backdropScreensaver/plugin.js diff --git a/src/components/cardbuilder/card.css b/src/components/cardbuilder/card.css index 3cd038cd0..c24fcf6ba 100644 --- a/src/components/cardbuilder/card.css +++ b/src/components/cardbuilder/card.css @@ -306,6 +306,10 @@ button::-moz-focus-inner { text-align: left; } +.dialog .cardText { + text-overflow: initial; +} + .cardText-secondary { font-size: 86%; } diff --git a/src/components/cardbuilder/cardBuilder.js b/src/components/cardbuilder/cardBuilder.js index 43ca28f01..d4d4d7f73 100644 --- a/src/components/cardbuilder/cardBuilder.js +++ b/src/components/cardbuilder/cardBuilder.js @@ -869,7 +869,7 @@ import 'programStyles'; if (isOuterFooter && options.cardLayout && layoutManager.mobile) { if (options.cardFooterAside !== 'none') { - html += ''; + html += ''; } } @@ -1426,7 +1426,7 @@ import 'programStyles'; } if (options.overlayMoreButton) { - overlayButtons += ''; + overlayButtons += ''; } } @@ -1580,7 +1580,7 @@ import 'programStyles'; html += ''; } - html += ''; + html += ''; html += '
'; html += '
'; diff --git a/src/components/channelmapper/channelmapper.js b/src/components/channelMapper/channelMapper.js similarity index 98% rename from src/components/channelmapper/channelmapper.js rename to src/components/channelMapper/channelMapper.js index 83ae4d09c..f2ad88e71 100644 --- a/src/components/channelmapper/channelmapper.js +++ b/src/components/channelMapper/channelMapper.js @@ -79,7 +79,7 @@ define(['dom', 'dialogHelper', 'loading', 'connectionManager', 'globalize', 'act function getEditorHtml() { var html = ''; - html += '
'; + html += '
'; html += '
'; html += ''; html += '

' + globalize.translate('HeaderChannels') + '

'; diff --git a/src/components/chromecast/chromecastplayer.js b/src/components/chromecast/chromecastplayer.js index 52fa4f6bc..5a9945539 100644 --- a/src/components/chromecast/chromecastplayer.js +++ b/src/components/chromecast/chromecastplayer.js @@ -54,7 +54,13 @@ define(['appSettings', 'userSettings', 'playbackManager', 'connectionManager', ' // production version registered with google // replace this value if you want to test changes on another instance - var applicationID = 'F007D354'; + var applicationStable = 'F007D354'; + var applicationNightly = '6F511C87'; + + var applicationID = applicationStable; + if (userSettings.chromecastVersion === 'nightly') { + applicationID = applicationNightly; + } var messageNamespace = 'urn:x-cast:com.connectsdk'; diff --git a/src/components/collectioneditor/collectioneditor.js b/src/components/collectionEditor/collectionEditor.js similarity index 100% rename from src/components/collectioneditor/collectioneditor.js rename to src/components/collectionEditor/collectionEditor.js diff --git a/src/components/deletehelper.js b/src/components/deletehelper.js deleted file mode 100644 index 2212fd443..000000000 --- a/src/components/deletehelper.js +++ /dev/null @@ -1,57 +0,0 @@ -define(['connectionManager', 'confirm', 'appRouter', 'globalize'], function (connectionManager, confirm, appRouter, globalize) { - 'use strict'; - - function alertText(options) { - - return new Promise(function (resolve, reject) { - - require(['alert'], function (alert) { - alert(options).then(resolve, resolve); - }); - }); - } - - function deleteItem(options) { - - var item = options.item; - var itemId = item.Id; - var parentId = item.SeasonId || item.SeriesId || item.ParentId; - var serverId = item.ServerId; - - var msg = globalize.translate('ConfirmDeleteItem'); - var title = globalize.translate('HeaderDeleteItem'); - var apiClient = connectionManager.getApiClient(item.ServerId); - - return confirm({ - - title: title, - text: msg, - confirmText: globalize.translate('Delete'), - primary: 'delete' - - }).then(function () { - - return apiClient.deleteItem(itemId).then(function () { - - if (options.navigate) { - if (parentId) { - appRouter.showItem(parentId, serverId); - } else { - appRouter.goHome(); - } - } - }, function (err) { - - var result = function () { - return Promise.reject(err); - }; - - return alertText(globalize.translate('ErrorDeletingItem')).then(result, result); - }); - }); - } - - return { - deleteItem: deleteItem - }; -}); diff --git a/src/components/dialogHelper/dialoghelper.css b/src/components/dialogHelper/dialoghelper.css index df2adf075..98cfef1c5 100644 --- a/src/components/dialogHelper/dialoghelper.css +++ b/src/components/dialogHelper/dialoghelper.css @@ -126,25 +126,10 @@ } @media all and (min-width: 80em) and (min-height: 45em) { - .dialog-medium { - width: 80%; - height: 80%; - } - - .dialog-medium-tall { - width: 80%; - height: 90%; - } - .dialog-small { width: 60%; height: 80%; } - - .dialog-fullscreen-border { - width: 90%; - height: 90%; - } } .noScroll { diff --git a/src/components/directorybrowser/directorybrowser.js b/src/components/directorybrowser/directorybrowser.js index 7f13f89ef..e08fcc833 100644 --- a/src/components/directorybrowser/directorybrowser.js +++ b/src/components/directorybrowser/directorybrowser.js @@ -89,7 +89,6 @@ define(['loading', 'dialogHelper', 'dom', 'globalize', 'listViewStyle', 'emby-in var instruction = options.instruction ? options.instruction + '

' : ''; html += '
'; html += instruction; - html += globalize.translate('MessageDirectoryPickerInstruction', '\\\\server', '\\\\192.168.1.101'); if ('bsd' === systemInfo.OperatingSystem.toLowerCase()) { html += '
'; html += '
'; @@ -126,7 +125,7 @@ define(['loading', 'dialogHelper', 'dom', 'globalize', 'listViewStyle', 'emby-in html += '
'; html += ''; html += '
'; - html += globalize.translate('LabelOptionalNetworkPathHelp'); + html += globalize.translate('LabelOptionalNetworkPathHelp', '\\\\server', '\\\\192.168.1.101'); html += '
'; html += '
'; } @@ -253,7 +252,7 @@ define(['loading', 'dialogHelper', 'dom', 'globalize', 'listViewStyle', 'emby-in var systemInfo = responses[0]; var initialPath = responses[1]; var dlg = dialogHelper.createDialog({ - size: 'medium-tall', + size: 'small', removeOnClose: true, scrollY: false }); diff --git a/src/components/displaysettings/displaysettings.js b/src/components/displaySettings/displaySettings.js similarity index 99% rename from src/components/displaysettings/displaysettings.js rename to src/components/displaySettings/displaySettings.js index 2b7b4bb60..b6938bc95 100644 --- a/src/components/displaysettings/displaysettings.js +++ b/src/components/displaySettings/displaySettings.js @@ -269,7 +269,7 @@ define(['require', 'browser', 'layoutManager', 'appSettings', 'pluginManager', ' } function embed(options, self) { - require(['text!./displaysettings.template.html'], function (template) { + require(['text!./displaySettings.template.html'], function (template) { options.element.innerHTML = globalize.translateDocument(template, 'core'); options.element.querySelector('form').addEventListener('submit', onSubmit.bind(self)); if (options.enableSaveButton) { diff --git a/src/components/displaysettings/displaysettings.template.html b/src/components/displaySettings/displaySettings.template.html similarity index 98% rename from src/components/displaysettings/displaysettings.template.html rename to src/components/displaySettings/displaySettings.template.html index 62cb493e8..b8ab1a9ba 100644 --- a/src/components/displaysettings/displaysettings.template.html +++ b/src/components/displaySettings/displaySettings.template.html @@ -56,7 +56,7 @@
diff --git a/src/components/formdialog.css b/src/components/formdialog.css index 788331da9..94695f486 100644 --- a/src/components/formdialog.css +++ b/src/components/formdialog.css @@ -19,6 +19,10 @@ margin-bottom: 0; } +.formDialogHeaderTitle:first-child { + margin-left: 1em; +} + .formDialogContent:not(.no-grow) { flex-grow: 1; } @@ -46,10 +50,16 @@ right: 0; display: flex; position: absolute; - padding: 1.25em 1em; + padding: 1em 1em; /* Without this emby-checkbox is able to appear on top */ z-index: 1; + align-items: flex-end; + justify-content: flex-end; + flex-wrap: wrap; +} + +.layout-tv .formDialogFooter { align-items: center; justify-content: center; flex-wrap: wrap; @@ -69,8 +79,12 @@ .formDialogFooterItem { margin: 0.5em !important; - flex-grow: 1; text-align: center; + flex-basis: 12em; +} + +.layout-tv .formDialogFooterItem { + flex-grow: 1; flex-basis: 0; } diff --git a/src/components/guide/guide-settings.template.html b/src/components/guide/guide-settings.template.html index 6888ca80d..edb2ffa8d 100644 --- a/src/components/guide/guide-settings.template.html +++ b/src/components/guide/guide-settings.template.html @@ -1,5 +1,7 @@
- +

${Settings}

diff --git a/src/components/guide/tvguide.template.html b/src/components/guide/tvguide.template.html index bd4c9cc3c..730de5590 100644 --- a/src/components/guide/tvguide.template.html +++ b/src/components/guide/tvguide.template.html @@ -9,8 +9,8 @@
-
@@ -29,10 +29,10 @@
- -
diff --git a/src/components/homescreensettings/homescreensettings.js b/src/components/homeScreenSettings/homeScreenSettings.js similarity index 99% rename from src/components/homescreensettings/homescreensettings.js rename to src/components/homeScreenSettings/homeScreenSettings.js index 15812647c..b07e6de3c 100644 --- a/src/components/homescreensettings/homescreensettings.js +++ b/src/components/homeScreenSettings/homeScreenSettings.js @@ -470,7 +470,7 @@ define(['require', 'apphost', 'layoutManager', 'focusManager', 'globalize', 'loa function embed(options, self) { - require(['text!./homescreensettings.template.html'], function (template) { + require(['text!./homeScreenSettings.template.html'], function (template) { for (var i = 1; i <= numConfigurableSections; i++) { template = template.replace('{section' + i + 'label}', globalize.translate('LabelHomeScreenSectionValue', i)); diff --git a/src/components/homescreensettings/homescreensettings.template.html b/src/components/homeScreenSettings/homeScreenSettings.template.html similarity index 100% rename from src/components/homescreensettings/homescreensettings.template.html rename to src/components/homeScreenSettings/homeScreenSettings.template.html diff --git a/src/components/htmlaudioplayer/plugin.js b/src/components/htmlAudioPlayer/plugin.js similarity index 97% rename from src/components/htmlaudioplayer/plugin.js rename to src/components/htmlAudioPlayer/plugin.js index 672bd06b8..8265987e2 100644 --- a/src/components/htmlaudioplayer/plugin.js +++ b/src/components/htmlAudioPlayer/plugin.js @@ -136,7 +136,10 @@ define(['events', 'browser', 'require', 'apphost', 'appSettings', 'htmlMediaHelp requireHlsPlayer(function () { var hls = new Hls({ - manifestLoadingTimeOut: 20000 + manifestLoadingTimeOut: 20000, + xhrSetup: function(xhr, url) { + xhr.withCredentials = true; + } //appendErrorMaxRetry: 6, //debug: true }); @@ -155,6 +158,9 @@ define(['events', 'browser', 'require', 'apphost', 'appSettings', 'htmlMediaHelp elem.autoplay = true; + // Safari will not send cookies without this + elem.crossOrigin = 'use-credentials'; + return htmlMediaHelper.applySrc(elem, val, options).then(function () { self._currentSrc = val; diff --git a/src/components/htmlMediaHelper.js b/src/components/htmlMediaHelper.js index fb84bc19f..3f17eeb33 100644 --- a/src/components/htmlMediaHelper.js +++ b/src/components/htmlMediaHelper.js @@ -194,7 +194,7 @@ define(['appSettings', 'browser', 'events'], function (appSettings, browser, eve } }; events.map(function (name) { - element.addEventListener(name, onMediaChange); + return element.addEventListener(name, onMediaChange); }); } } diff --git a/src/components/htmlvideoplayer/plugin.js b/src/components/htmlVideoPlayer/plugin.js similarity index 98% rename from src/components/htmlvideoplayer/plugin.js rename to src/components/htmlVideoPlayer/plugin.js index 60f39c5ec..0c9e15146 100644 --- a/src/components/htmlvideoplayer/plugin.js +++ b/src/components/htmlVideoPlayer/plugin.js @@ -106,10 +106,18 @@ define(['browser', 'require', 'events', 'apphost', 'loading', 'dom', 'playbackMa }); } + function hidePrePlaybackPage() { + let animatedPage = document.querySelector('.page:not(.hide)'); + animatedPage.classList.add('hide'); + // At this point, we must hide the scrollbar placeholder, so it's not being displayed while the item is being loaded + document.body.classList.remove('force-scroll'); + } + function zoomIn(elem) { return new Promise(function (resolve, reject) { var duration = 240; elem.style.animation = 'htmlvideoplayer-zoomin ' + duration + 'ms ease-in normal'; + hidePrePlaybackPage(); dom.addEventListener(elem, dom.whichAnimationEvent(), resolve, { once: true }); @@ -290,7 +298,7 @@ define(['browser', 'require', 'events', 'apphost', 'loading', 'dom', 'playbackMa return createMediaElement(options).then(function (elem) { - return updateVideoUrl(options, options.mediaSource).then(function () { + return updateVideoUrl(options).then(function () { return setCurrentSrc(elem, options); }); }); @@ -330,7 +338,10 @@ define(['browser', 'require', 'events', 'apphost', 'loading', 'dom', 'playbackMa requireHlsPlayer(function () { var hls = new Hls({ - manifestLoadingTimeOut: 20000 + manifestLoadingTimeOut: 20000, + xhrSetup: function(xhr, xhr_url) { + xhr.withCredentials = true; + } //appendErrorMaxRetry: 6, //debug: true }); @@ -551,6 +562,9 @@ define(['browser', 'require', 'events', 'apphost', 'loading', 'dom', 'playbackMa elem.autoplay = true; + // Safari will not send cookies without this + elem.crossOrigin = 'use-credentials'; + return htmlMediaHelper.applySrc(elem, val, options).then(function () { self._currentSrc = val; @@ -837,7 +851,6 @@ define(['browser', 'require', 'events', 'apphost', 'loading', 'dom', 'playbackMa function onNavigatedToOsd() { var dlg = videoDialog; if (dlg) { - dlg.classList.remove('videoPlayerContainer-withBackdrop'); dlg.classList.remove('videoPlayerContainer-onTop'); onStartedAndNavigatedToOsd(); @@ -874,7 +887,6 @@ define(['browser', 'require', 'events', 'apphost', 'loading', 'dom', 'playbackMa } else { appRouter.setTransparency('backdrop'); - videoDialog.classList.remove('videoPlayerContainer-withBackdrop'); videoDialog.classList.remove('videoPlayerContainer-onTop'); onStartedAndNavigatedToOsd(); @@ -1295,12 +1307,6 @@ define(['browser', 'require', 'events', 'apphost', 'loading', 'dom', 'playbackMa function createMediaElement(options) { - if (browser.tv || browser.iOS || browser.mobile) { - // too slow - // also on iOS, the backdrop image doesn't look right - // on android mobile, it works, but can be slow to have the video surface fully cover the backdrop - options.backdropUrl = null; - } return new Promise(function (resolve, reject) { var dlg = document.querySelector('.videoPlayerContainer'); @@ -1315,11 +1321,6 @@ define(['browser', 'require', 'events', 'apphost', 'loading', 'dom', 'playbackMa dlg.classList.add('videoPlayerContainer'); - if (options.backdropUrl) { - dlg.classList.add('videoPlayerContainer-withBackdrop'); - dlg.style.backgroundImage = "url('" + options.backdropUrl + "')"; - } - if (options.fullscreen) { dlg.classList.add('videoPlayerContainer-onTop'); } @@ -1354,6 +1355,9 @@ define(['browser', 'require', 'events', 'apphost', 'loading', 'dom', 'playbackMa videoElement.addEventListener('click', onClick); videoElement.addEventListener('dblclick', onDblClick); videoElement.addEventListener('waiting', onWaiting); + if (options.backdropUrl) { + videoElement.poster = options.backdropUrl; + } document.body.insertBefore(dlg, document.body.firstChild); videoDialog = dlg; @@ -1373,15 +1377,11 @@ define(['browser', 'require', 'events', 'apphost', 'loading', 'dom', 'playbackMa resolve(videoElement); }); } else { + hidePrePlaybackPage(); resolve(videoElement); } }); } else { - if (options.backdropUrl) { - dlg.classList.add('videoPlayerContainer-withBackdrop'); - dlg.style.backgroundImage = "url('" + options.backdropUrl + "')"; - } - resolve(dlg.querySelector('video')); } }); diff --git a/src/components/htmlvideoplayer/style.css b/src/components/htmlVideoPlayer/style.css similarity index 82% rename from src/components/htmlvideoplayer/style.css rename to src/components/htmlVideoPlayer/style.css index 5ecf4af66..b83a7816f 100644 --- a/src/components/htmlvideoplayer/style.css +++ b/src/components/htmlVideoPlayer/style.css @@ -6,20 +6,9 @@ right: 0; display: flex; align-items: center; -} - -.videoPlayerContainer:not(.videoPlayerContainer-withBackdrop) { background: #000 !important; } -.videoPlayerContainer-withBackdrop { - background-repeat: no-repeat; - background-position: center center; - background-size: cover; - background-attachment: fixed; - background-color: #000; -} - .videoPlayerContainer-onTop { z-index: 1000; } diff --git a/src/components/imagedownloader/imagedownloader.js b/src/components/imageDownloader/imageDownloader.js similarity index 99% rename from src/components/imagedownloader/imagedownloader.js rename to src/components/imageDownloader/imageDownloader.js index 3e0d00ac2..220e4148c 100644 --- a/src/components/imagedownloader/imagedownloader.js +++ b/src/components/imageDownloader/imageDownloader.js @@ -320,7 +320,7 @@ define(['dom', 'loading', 'apphost', 'dialogHelper', 'connectionManager', 'image function showEditor(itemId, serverId, itemType) { loading.show(); - require(['text!./imagedownloader.template.html'], function (template) { + require(['text!./imageDownloader.template.html'], function (template) { var apiClient = connectionManager.getApiClient(serverId); @@ -334,7 +334,7 @@ define(['dom', 'loading', 'apphost', 'dialogHelper', 'connectionManager', 'image if (layoutManager.tv) { dialogOptions.size = 'fullscreen'; } else { - dialogOptions.size = 'fullscreen-border'; + dialogOptions.size = 'small'; } var dlg = dialogHelper.createDialog(dialogOptions); diff --git a/src/components/imagedownloader/imagedownloader.template.html b/src/components/imageDownloader/imageDownloader.template.html similarity index 97% rename from src/components/imagedownloader/imagedownloader.template.html rename to src/components/imageDownloader/imageDownloader.template.html index 6ca2a2418..b88ea7392 100644 --- a/src/components/imagedownloader/imagedownloader.template.html +++ b/src/components/imageDownloader/imageDownloader.template.html @@ -5,7 +5,7 @@

-
+
diff --git a/src/components/imageoptionseditor/imageoptionseditor.js b/src/components/imageOptionsEditor/imageOptionsEditor.js similarity index 96% rename from src/components/imageoptionseditor/imageoptionseditor.js rename to src/components/imageOptionsEditor/imageOptionsEditor.js index 73a6d119d..257921dfa 100644 --- a/src/components/imageoptionseditor/imageoptionseditor.js +++ b/src/components/imageOptionsEditor/imageOptionsEditor.js @@ -82,12 +82,12 @@ define(['globalize', 'dom', 'dialogHelper', 'emby-checkbox', 'emby-select', 'emb this.show = function (itemType, options, availableOptions) { return new Promise(function (resolve, reject) { var xhr = new XMLHttpRequest(); - xhr.open('GET', 'components/imageoptionseditor/imageoptionseditor.template.html', true); + xhr.open('GET', 'components/imageOptionsEditor/imageOptionsEditor.template.html', true); xhr.onload = function (e) { var template = this.response; var dlg = dialogHelper.createDialog({ - size: 'medium-tall', + size: 'small', removeOnClose: true, scrollY: false }); diff --git a/src/components/imageoptionseditor/imageoptionseditor.template.html b/src/components/imageOptionsEditor/imageOptionsEditor.template.html similarity index 100% rename from src/components/imageoptionseditor/imageoptionseditor.template.html rename to src/components/imageOptionsEditor/imageOptionsEditor.template.html diff --git a/src/components/imageuploader/imageuploader.js b/src/components/imageUploader/imageUploader.js similarity index 97% rename from src/components/imageuploader/imageuploader.js rename to src/components/imageUploader/imageUploader.js index 87ecc1bc3..e078a9fa3 100644 --- a/src/components/imageuploader/imageuploader.js +++ b/src/components/imageUploader/imageUploader.js @@ -125,7 +125,7 @@ define(['dialogHelper', 'connectionManager', 'dom', 'loading', 'scrollHelper', ' options = options || {}; - require(['text!./imageuploader.template.html'], function (template) { + require(['text!./imageUploader.template.html'], function (template) { currentItemId = options.itemId; currentServerId = options.serverId; @@ -137,7 +137,7 @@ define(['dialogHelper', 'connectionManager', 'dom', 'loading', 'scrollHelper', ' if (layoutManager.tv) { dialogOptions.size = 'fullscreen'; } else { - dialogOptions.size = 'fullscreen-border'; + dialogOptions.size = 'small'; } var dlg = dialogHelper.createDialog(dialogOptions); diff --git a/src/components/imageuploader/imageuploader.template.html b/src/components/imageUploader/imageUploader.template.html similarity index 98% rename from src/components/imageuploader/imageuploader.template.html rename to src/components/imageUploader/imageUploader.template.html index 75f572375..9c6a139c0 100644 --- a/src/components/imageuploader/imageuploader.template.html +++ b/src/components/imageUploader/imageUploader.template.html @@ -5,7 +5,7 @@
-
+
diff --git a/src/components/imageuploader/style.css b/src/components/imageUploader/style.css similarity index 100% rename from src/components/imageuploader/style.css rename to src/components/imageUploader/style.css diff --git a/src/components/imageeditor/imageeditor.js b/src/components/imageeditor/imageeditor.js index 606cdfa71..228060b8b 100644 --- a/src/components/imageeditor/imageeditor.js +++ b/src/components/imageeditor/imageeditor.js @@ -457,7 +457,7 @@ define(['dialogHelper', 'connectionManager', 'loading', 'dom', 'layoutManager', if (layoutManager.tv) { dialogOptions.size = 'fullscreen'; } else { - dialogOptions.size = 'fullscreen-border'; + dialogOptions.size = 'small'; } var dlg = dialogHelper.createDialog(dialogOptions); diff --git a/src/components/imageeditor/imageeditor.template.html b/src/components/imageeditor/imageeditor.template.html index 1bf34f1aa..ce24e724b 100644 --- a/src/components/imageeditor/imageeditor.template.html +++ b/src/components/imageeditor/imageeditor.template.html @@ -5,7 +5,7 @@
-
+
diff --git a/src/components/images/imageFetcher.js b/src/components/images/imageFetcher.js deleted file mode 100644 index c6882ddb7..000000000 --- a/src/components/images/imageFetcher.js +++ /dev/null @@ -1,38 +0,0 @@ -define(['dom'], function (dom) { - 'use strict'; - - function loadImage(elem, url) { - - if (!elem) { - return Promise.reject('elem cannot be null'); - } - - if (elem.tagName !== 'IMG') { - - elem.style.backgroundImage = "url('" + url + "')"; - return Promise.resolve(); - - //return loadImageIntoImg(document.createElement('img'), url).then(function () { - // elem.style.backgroundImage = "url('" + url + "')"; - // return Promise.resolve(); - //}); - - } - return loadImageIntoImg(elem, url); - } - - function loadImageIntoImg(elem, url) { - return new Promise(function (resolve, reject) { - - dom.addEventListener(elem, 'load', resolve, { - once: true - }); - elem.setAttribute('src', url); - }); - } - - return { - loadImage: loadImage - }; - -}); diff --git a/src/components/indicators/indicators.js b/src/components/indicators/indicators.js index b4391fd4a..604f480f1 100644 --- a/src/components/indicators/indicators.js +++ b/src/components/indicators/indicators.js @@ -1,198 +1,183 @@ -define(['datetime', 'itemHelper', 'emby-progressbar', 'css!./indicators.css', 'material-icons'], function (datetime, itemHelper) { - 'use strict'; +import datetime from 'datetime'; +import itemHelper from 'itemHelper'; +import 'emby-progressbar'; +import 'css!./indicators.css'; +import 'material-icons'; - function enableProgressIndicator(item) { - if (item.MediaType === 'Video') { - if (item.Type !== 'TvChannel') { - return true; - } - } - - if (item.Type === 'AudioBook' || item.Type === 'AudioPodcast') { - return true; - } - - return false; +export function enableProgressIndicator(item) { + if (item.MediaType === 'Video' && item.Type !== 'TvChannel') { + return true; } - function getProgressHtml(pct, options) { - var containerClass = 'itemProgressBar'; - if (options) { - if (options.containerClass) { - containerClass += ' ' + options.containerClass; - } - } - - return '
'; + if (item.Type === 'AudioBook' || item.Type === 'AudioPodcast') { + return true; } - function getAutoTimeProgressHtml(pct, options, isRecording, start, end) { - var containerClass = 'itemProgressBar'; - if (options) { - if (options.containerClass) { - containerClass += ' ' + options.containerClass; - } - } + return false; +} - var foregroundClass = 'itemProgressBarForeground'; - if (isRecording) { - foregroundClass += ' itemProgressBarForeground-recording'; - } - - return '
'; +export function getProgressHtml(pct, options) { + let containerClass = 'itemProgressBar'; + if (options && options.containerClass) { + containerClass += ' ' + options.containerClass; } - function getProgressBarHtml(item, options) { - var pct; - if (enableProgressIndicator(item) && item.Type !== 'Recording') { - var userData = options ? (options.userData || item.UserData) : item.UserData; - if (userData) { - pct = userData.PlayedPercentage; - if (pct && pct < 100) { - return getProgressHtml(pct, options); - } + return '
'; +} + +function getAutoTimeProgressHtml(pct, options, isRecording, start, end) { + let containerClass = 'itemProgressBar'; + if (options && options.containerClass) { + containerClass += ' ' + options.containerClass; + } + + let foregroundClass = 'itemProgressBarForeground'; + if (isRecording) { + foregroundClass += ' itemProgressBarForeground-recording'; + } + + return '
'; +} + +export function getProgressBarHtml(item, options) { + let pct; + if (enableProgressIndicator(item) && item.Type !== 'Recording') { + const userData = options && options.userData ? options.userData : item.UserData; + + if (userData) { + pct = userData.PlayedPercentage; + if (pct && pct < 100) { + return getProgressHtml(pct, options); } } + } - if ((item.Type === 'Program' || item.Type === 'Timer' || item.Type === 'Recording') && item.StartDate && item.EndDate) { - var startDate = 0; - var endDate = 1; + if ((item.Type === 'Program' || item.Type === 'Timer' || item.Type === 'Recording') && item.StartDate && item.EndDate) { + let startDate = 0; + let endDate = 1; + try { + startDate = datetime.parseISO8601Date(item.StartDate).getTime(); + endDate = datetime.parseISO8601Date(item.EndDate).getTime(); + } catch (err) { + console.error(err); + } + + const now = new Date().getTime(); + const total = endDate - startDate; + pct = 100 * ((now - startDate) / total); + + if (pct > 0 && pct < 100) { + const isRecording = item.Type === 'Timer' || item.Type === 'Recording' || item.TimerId; + return getAutoTimeProgressHtml(pct, options, isRecording, startDate, endDate); + } + } + + return ''; +} + +export function enablePlayedIndicator(item) { + return itemHelper.canMarkPlayed(item); +} + +export function getPlayedIndicatorHtml(item) { + if (enablePlayedIndicator(item)) { + let userData = item.UserData || {}; + if (userData.UnplayedItemCount) { + return '
' + userData.UnplayedItemCount + '
'; + } + + if (userData.PlayedPercentage && userData.PlayedPercentage >= 100 || (userData.Played)) { + return '
'; + } + } + + return ''; +} + +export function getChildCountIndicatorHtml(item, options) { + const minCount = options && options.minCount ? options.minCount : 0; + + if (item.ChildCount && item.ChildCount > minCount) { + return '
' + item.ChildCount + '
'; + } + + return ''; +} + +export function getTimerIndicator(item) { + let status; + + if (item.Type === 'SeriesTimer') { + return ''; + } else if (item.TimerId || item.SeriesTimerId) { + status = item.Status || 'Cancelled'; + } else if (item.Type === 'Timer') { + status = item.Status; + } else { + return ''; + } + + if (item.SeriesTimerId) { + if (status !== 'Cancelled') { + return ''; + } + + return ''; + } + + return ''; +} + +export function getSyncIndicator(item) { + if (item.SyncPercent === 100) { + return '
'; + } else if (item.SyncPercent != null) { + return '
'; + } + + return ''; +} + +export function getTypeIndicator(item) { + const iconT = { + 'Video' : 'videocam', + 'Folder' : 'folder', + 'PhotoAlbum' : 'photo_album', + 'Photo' : 'photo' + }; + + const icon = iconT[item.Type]; + return icon ? '
' : ''; +} + +export function getMissingIndicator(item) { + if (item.Type === 'Episode' && item.LocationType === 'Virtual') { + if (item.PremiereDate) { try { - startDate = datetime.parseISO8601Date(item.StartDate).getTime(); - endDate = datetime.parseISO8601Date(item.EndDate).getTime(); + const premiereDate = datetime.parseISO8601Date(item.PremiereDate).getTime(); + if (premiereDate > new Date().getTime()) { + return '
Unaired
'; + } } catch (err) { console.error(err); } - - var now = new Date().getTime(); - var total = endDate - startDate; - pct = 100 * ((now - startDate) / total); - - if (pct > 0 && pct < 100) { - var isRecording = item.Type === 'Timer' || item.Type === 'Recording' || item.TimerId; - return getAutoTimeProgressHtml(pct, options, isRecording, startDate, endDate); - } } - - return ''; + return '
Missing
'; } - function enablePlayedIndicator(item) { - return itemHelper.canMarkPlayed(item); - } + return ''; +} - function getPlayedIndicator(item) { - if (enablePlayedIndicator(item)) { - var userData = item.UserData || {}; - if (userData.UnplayedItemCount) { - return '
' + userData.UnplayedItemCount + '
'; - } - - if (userData.PlayedPercentage && userData.PlayedPercentage >= 100 || (userData.Played)) { - return '
'; - } - } - - return ''; - } - - function getCountIndicatorHtml(count) { - return '
' + count + '
'; - } - - function getChildCountIndicatorHtml(item, options) { - var minCount = 0; - if (options) { - minCount = options.minCount || minCount; - } - - if (item.ChildCount && item.ChildCount > minCount) { - return getCountIndicatorHtml(item.ChildCount); - } - - return ''; - } - - function getTimerIndicator(item) { - var status; - - if (item.Type === 'SeriesTimer') { - return ''; - } else if (item.TimerId || item.SeriesTimerId) { - status = item.Status || 'Cancelled'; - } else if (item.Type === 'Timer') { - status = item.Status; - } else { - return ''; - } - - if (item.SeriesTimerId) { - if (status !== 'Cancelled') { - return ''; - } - - return ''; - } - - return ''; - } - - function getSyncIndicator(item) { - if (item.SyncPercent === 100) { - return '
'; - } else if (item.SyncPercent != null) { - return '
'; - } - - return ''; - } - - function getTypeIndicator(item) { - if (item.Type === 'Video') { - return '
'; - } - if (item.Type === 'Folder') { - return '
'; - } - if (item.Type === 'PhotoAlbum') { - return '
'; - } - if (item.Type === 'Photo') { - return '
'; - } - - return ''; - } - - function getMissingIndicator(item) { - if (item.Type === 'Episode' && item.LocationType === 'Virtual') { - if (item.PremiereDate) { - try { - var premiereDate = datetime.parseISO8601Date(item.PremiereDate).getTime(); - if (premiereDate > new Date().getTime()) { - return '
Unaired
'; - } - } catch (err) { - console.error(err); - } - } - return '
Missing
'; - } - - return ''; - } - - return { - getProgressHtml: getProgressHtml, - getProgressBarHtml: getProgressBarHtml, - getPlayedIndicatorHtml: getPlayedIndicator, - getChildCountIndicatorHtml: getChildCountIndicatorHtml, - enableProgressIndicator: enableProgressIndicator, - getTimerIndicator: getTimerIndicator, - enablePlayedIndicator: enablePlayedIndicator, - getSyncIndicator: getSyncIndicator, - getTypeIndicator: getTypeIndicator, - getMissingIndicator: getMissingIndicator - }; -}); +export default { + getProgressHtml: getProgressHtml, + getProgressBarHtml: getProgressBarHtml, + getPlayedIndicatorHtml: getPlayedIndicatorHtml, + getChildCountIndicatorHtml: getChildCountIndicatorHtml, + enableProgressIndicator: enableProgressIndicator, + getTimerIndicator: getTimerIndicator, + enablePlayedIndicator: enablePlayedIndicator, + getSyncIndicator: getSyncIndicator, + getTypeIndicator: getTypeIndicator, + getMissingIndicator: getMissingIndicator +}; diff --git a/src/components/itemcontextmenu.js b/src/components/itemContextMenu.js similarity index 99% rename from src/components/itemcontextmenu.js rename to src/components/itemContextMenu.js index 8c809a096..f258f5fe4 100644 --- a/src/components/itemcontextmenu.js +++ b/src/components/itemContextMenu.js @@ -450,7 +450,7 @@ define(['apphost', 'globalize', 'connectionManager', 'itemHelper', 'appRouter', navigator.share({ title: item.Name, text: item.Overview, - url: 'https://github.com/jellyfin/jellyfin' + url: `${apiClient.serverAddress()}/web/index.html#!/${appRouter.getRouteUrl(item)}` }); break; case 'album': diff --git a/src/components/itemhelper.js b/src/components/itemHelper.js similarity index 100% rename from src/components/itemhelper.js rename to src/components/itemHelper.js diff --git a/src/components/itemidentifier/itemidentifier.js b/src/components/itemidentifier/itemidentifier.js index 871093602..b335d1dfd 100644 --- a/src/components/itemidentifier/itemidentifier.js +++ b/src/components/itemidentifier/itemidentifier.js @@ -348,7 +348,7 @@ define(['dialogHelper', 'loading', 'connectionManager', 'require', 'globalize', currentItemType = currentItem.Type; var dialogOptions = { - size: 'fullscreen-border', + size: 'small', removeOnClose: true, scrollY: false }; @@ -429,7 +429,7 @@ define(['dialogHelper', 'loading', 'connectionManager', 'require', 'globalize', require(['text!./itemidentifier.template.html'], function (template) { var dialogOptions = { - size: 'fullscreen-border', + size: 'small', removeOnClose: true, scrollY: false }; diff --git a/src/components/lazyloader/lazyloader-intersectionobserver.js b/src/components/lazyLoader/lazyLoaderIntersectionObserver.js similarity index 100% rename from src/components/lazyloader/lazyloader-intersectionobserver.js rename to src/components/lazyLoader/lazyLoaderIntersectionObserver.js diff --git a/src/components/libraryoptionseditor/libraryoptionseditor.js b/src/components/libraryoptionseditor/libraryoptionseditor.js index 6fc93b3bd..fec465640 100644 --- a/src/components/libraryoptionseditor/libraryoptionseditor.js +++ b/src/components/libraryoptionseditor/libraryoptionseditor.js @@ -109,8 +109,8 @@ define(['globalize', 'dom', 'emby-checkbox', 'emby-select', 'emby-input'], funct html += '
'; html += '

' + globalize.translate('LabelTypeMetadataDownloaders', globalize.translate(availableTypeOptions.Type)) + '

'; html += '
'; - for (var i = 0; i < plugins.length; i++) { - var plugin = plugins[i]; + + plugins.forEach((plugin, index) => { html += '
'; var isChecked = libraryOptionsForType.MetadataFetchers ? -1 !== libraryOptionsForType.MetadataFetchers.indexOf(plugin.Name) : plugin.DefaultEnabled; var checkedHtml = isChecked ? ' checked="checked"' : ''; @@ -120,8 +120,9 @@ define(['globalize', 'dom', 'emby-checkbox', 'emby-select', 'emby-input'], funct html += plugin.Name; html += ''; html += '
'; - i > 0 ? html += '' : plugins.length > 1 && (html += ''), html += '
'; - } + index > 0 ? html += '' : plugins.length > 1 && (html += ''), html += '
'; + }); + html += '
'; html += '
' + globalize.translate('LabelMetadataDownloadersHelp') + '
'; html += '
'; @@ -292,11 +293,15 @@ define(['globalize', 'dom', 'emby-checkbox', 'emby-select', 'emby-input'], funct function showImageOptionsForType(type) { require(['imageoptionseditor'], function(ImageOptionsEditor) { var typeOptions = getTypeOptions(currentLibraryOptions, type); - typeOptions || (typeOptions = { - Type: type - }, currentLibraryOptions.TypeOptions.push(typeOptions)); + if (!typeOptions) { + typeOptions = { + Type: type + }; + currentLibraryOptions.TypeOptions.push(typeOptions); + } var availableOptions = getTypeOptions(currentAvailableOptions || {}, type); - (new ImageOptionsEditor).show(type, typeOptions, availableOptions); + var imageOptionsEditor = new ImageOptionsEditor(); + imageOptionsEditor.show(type, typeOptions, availableOptions); }); } @@ -315,10 +320,16 @@ define(['globalize', 'dom', 'emby-checkbox', 'emby-select', 'emby-input'], funct var list = dom.parentWithClass(li, 'paperList'); if (btnSortable.classList.contains('btnSortableMoveDown')) { var next = li.nextSibling; - next && (li.parentNode.removeChild(li), next.parentNode.insertBefore(li, next.nextSibling)); + if (next) { + li.parentNode.removeChild(li); + next.parentNode.insertBefore(li, next.nextSibling); + } } else { var prev = li.previousSibling; - prev && (li.parentNode.removeChild(li), prev.parentNode.insertBefore(li, prev)); + if (prev) { + li.parentNode.removeChild(li); + prev.parentNode.insertBefore(li, prev); + } } Array.prototype.forEach.call(list.querySelectorAll('.sortableOption'), adjustSortableListElement); } diff --git a/src/components/listview/listview.js b/src/components/listview/listview.js index 0743b3528..587355b35 100644 --- a/src/components/listview/listview.js +++ b/src/components/listview/listview.js @@ -426,7 +426,7 @@ define(['itemHelper', 'mediaInfo', 'indicators', 'connectionManager', 'layoutMan html += '
'; - const moreIcon = 'more_horiz'; + const moreIcon = 'more_vert'; html += getTextLinesHtml(textlines, isLargeStyle); diff --git a/src/components/loadingdialog/loadingdialog.js b/src/components/loadingDialog/loadingDialog.js similarity index 100% rename from src/components/loadingdialog/loadingdialog.js rename to src/components/loadingDialog/loadingDialog.js diff --git a/src/components/logoscreensaver/plugin.js b/src/components/logoScreensaver/plugin.js similarity index 100% rename from src/components/logoscreensaver/plugin.js rename to src/components/logoScreensaver/plugin.js diff --git a/src/components/logoscreensaver/style.css b/src/components/logoScreensaver/style.css similarity index 100% rename from src/components/logoscreensaver/style.css rename to src/components/logoScreensaver/style.css diff --git a/src/components/medialibrarycreator/medialibrarycreator.js b/src/components/mediaLibraryCreator/mediaLibraryCreator.js similarity index 98% rename from src/components/medialibrarycreator/medialibrarycreator.js rename to src/components/mediaLibraryCreator/mediaLibraryCreator.js index 450f5a64e..bbef6e1f0 100644 --- a/src/components/medialibrarycreator/medialibrarycreator.js +++ b/src/components/mediaLibraryCreator/mediaLibraryCreator.js @@ -182,12 +182,12 @@ define(['loading', 'dialogHelper', 'dom', 'jQuery', 'components/libraryoptionsed currentResolve = resolve; hasChanges = false; var xhr = new XMLHttpRequest(); - xhr.open('GET', 'components/medialibrarycreator/medialibrarycreator.template.html', true); + xhr.open('GET', 'components/mediaLibraryCreator/mediaLibraryCreator.template.html', true); xhr.onload = function (e) { var template = this.response; var dlg = dialogHelper.createDialog({ - size: 'medium-tall', + size: 'small', modal: false, removeOnClose: true, scrollY: false diff --git a/src/components/medialibrarycreator/medialibrarycreator.template.html b/src/components/mediaLibraryCreator/mediaLibraryCreator.template.html similarity index 100% rename from src/components/medialibrarycreator/medialibrarycreator.template.html rename to src/components/mediaLibraryCreator/mediaLibraryCreator.template.html diff --git a/src/components/medialibraryeditor/medialibraryeditor.js b/src/components/mediaLibraryEditor/mediaLibraryEditor.js similarity index 98% rename from src/components/medialibraryeditor/medialibraryeditor.js rename to src/components/mediaLibraryEditor/mediaLibraryEditor.js index 314150962..554cf4cc0 100644 --- a/src/components/medialibraryeditor/medialibraryeditor.js +++ b/src/components/mediaLibraryEditor/mediaLibraryEditor.js @@ -199,12 +199,12 @@ define(['jQuery', 'loading', 'dialogHelper', 'dom', 'components/libraryoptionsed currentDeferred = deferred; hasChanges = false; var xhr = new XMLHttpRequest(); - xhr.open('GET', 'components/medialibraryeditor/medialibraryeditor.template.html', true); + xhr.open('GET', 'components/mediaLibraryEditor/mediaLibraryEditor.template.html', true); xhr.onload = function (e) { var template = this.response; var dlg = dialogHelper.createDialog({ - size: 'medium-tall', + size: 'small', modal: false, removeOnClose: true, scrollY: false diff --git a/src/components/medialibraryeditor/medialibraryeditor.template.html b/src/components/mediaLibraryEditor/mediaLibraryEditor.template.html similarity index 100% rename from src/components/medialibraryeditor/medialibraryeditor.template.html rename to src/components/mediaLibraryEditor/mediaLibraryEditor.template.html diff --git a/src/components/mediainfo/mediainfo.js b/src/components/mediainfo/mediainfo.js index 0c9a87e80..c569a7c78 100644 --- a/src/components/mediainfo/mediainfo.js +++ b/src/components/mediainfo/mediainfo.js @@ -490,26 +490,26 @@ define(['datetime', 'globalize', 'appRouter', 'itemHelper', 'indicators', 'mater if (i.IsInterlaced) { return '1440i'; } - return '1440P'; + return '1440p'; } if (width >= 1800 || height >= 1000) { if (i.IsInterlaced) { return '1080i'; } - return '1080P'; + return '1080p'; } if (width >= 1200 || height >= 700) { if (i.IsInterlaced) { return '720i'; } - return '720P'; + return '720p'; } if (width >= 700 || height >= 400) { if (i.IsInterlaced) { return '480i'; } - return '480P'; + return '480p'; } } diff --git a/src/components/metadataeditor/metadataeditor.js b/src/components/metadataEditor/metadataEditor.js similarity index 95% rename from src/components/metadataeditor/metadataeditor.js rename to src/components/metadataEditor/metadataEditor.js index 7f1e50b5f..52f030cd2 100644 --- a/src/components/metadataeditor/metadataeditor.js +++ b/src/components/metadataEditor/metadataEditor.js @@ -245,50 +245,6 @@ define(['itemHelper', 'dom', 'layoutManager', 'dialogHelper', 'datetime', 'loadi }); } - function showMoreMenu(context, button, user) { - - require(['itemContextMenu'], function (itemContextMenu) { - - var item = currentItem; - - itemContextMenu.show({ - - item: item, - positionTo: button, - edit: false, - editImages: true, - editSubtitles: true, - sync: false, - share: false, - play: false, - queue: false, - user: user - - }).then(function (result) { - - if (result.deleted) { - afterDeleted(context, item); - - } else if (result.updated) { - reload(context, item.Id, item.ServerId); - } - }); - }); - } - - function afterDeleted(context, item) { - - var parentId = item.ParentId || item.SeasonId || item.SeriesId; - - if (parentId) { - reload(context, parentId, item.ServerId); - } else { - require(['appRouter'], function (appRouter) { - appRouter.goHome(); - }); - } - } - function onEditorClick(e) { var btnRemoveFromEditorList = dom.parentWithClass(e.target, 'btnRemoveFromEditorList'); @@ -307,6 +263,12 @@ define(['itemHelper', 'dom', 'layoutManager', 'dialogHelper', 'datetime', 'loadi return connectionManager.getApiClient(currentItem.ServerId); } + function bindAll(elems, eventName, fn) { + for (var i = 0, length = elems.length; i < length; i++) { + elems[i].addEventListener(eventName, fn); + } + } + function init(context, apiClient) { context.querySelector('.externalIds').addEventListener('click', function (e) { @@ -322,19 +284,16 @@ define(['itemHelper', 'dom', 'layoutManager', 'dialogHelper', 'datetime', 'loadi } }); - context.querySelector('.btnCancel').addEventListener('click', function () { + if (!layoutManager.desktop) { + context.querySelector('.btnBack').classList.remove('hide'); + context.querySelector('.btnClose').classList.add('hide'); + } + bindAll(context.querySelectorAll('.btnCancel'), 'click', function (event) { + event.preventDefault(); closeDialog(false); }); - context.querySelector('.btnMore').addEventListener('click', function (e) { - - getApiClient().getCurrentUser().then(function (user) { - showMoreMenu(context, e.target, user); - }); - - }); - context.querySelector('.btnHeaderSave').addEventListener('click', function (e) { context.querySelector('.btnSave').click(); @@ -349,8 +308,8 @@ define(['itemHelper', 'dom', 'layoutManager', 'dialogHelper', 'datetime', 'loadi } }); - context.removeEventListener('click', onEditorClick); - context.addEventListener('click', onEditorClick); + context.removeEventListener('submit', onEditorClick); + context.addEventListener('submit', onEditorClick); var form = context.querySelector('form'); form.removeEventListener('submit', onSubmit); @@ -791,11 +750,7 @@ define(['itemHelper', 'dom', 'layoutManager', 'dialogHelper', 'datetime', 'loadi return a.Name; }).join(';'); - if (item.Type === 'Series') { - context.querySelector('#selectDisplayOrder').value = item.DisplayOrder || ''; - } else { - context.querySelector('#selectDisplayOrder').value = item.DisplayOrder || ''; - } + context.querySelector('#selectDisplayOrder').value = item.DisplayOrder || ''; context.querySelector('#txtArtist').value = (item.ArtistItems || []).map(function (a) { return a.Name; @@ -1071,7 +1026,7 @@ define(['itemHelper', 'dom', 'layoutManager', 'dialogHelper', 'datetime', 'loadi function show(itemId, serverId, resolve, reject) { loading.show(); - require(['text!./metadataeditor.template.html'], function (template) { + require(['text!./metadataEditor.template.html'], function (template) { var dialogOptions = { removeOnClose: true, @@ -1081,7 +1036,7 @@ define(['itemHelper', 'dom', 'layoutManager', 'dialogHelper', 'datetime', 'loadi if (layoutManager.tv) { dialogOptions.size = 'fullscreen'; } else { - dialogOptions.size = 'medium-tall'; + dialogOptions.size = 'small'; } var dlg = dialogHelper.createDialog(dialogOptions); @@ -1128,7 +1083,7 @@ define(['itemHelper', 'dom', 'layoutManager', 'dialogHelper', 'datetime', 'loadi loading.show(); - require(['text!./metadataeditor.template.html'], function (template) { + require(['text!./metadataEditor.template.html'], function (template) { elem.innerHTML = globalize.translateDocument(template, 'core'); diff --git a/src/components/metadataeditor/metadataeditor.template.html b/src/components/metadataEditor/metadataEditor.template.html similarity index 78% rename from src/components/metadataeditor/metadataeditor.template.html rename to src/components/metadataEditor/metadataEditor.template.html index 39894d4f6..4b4e2cf96 100644 --- a/src/components/metadataeditor/metadataeditor.template.html +++ b/src/components/metadataEditor/metadataEditor.template.html @@ -1,5 +1,5 @@
- +

${Edit}

@@ -8,8 +8,8 @@ ${Save} -
@@ -57,11 +57,13 @@
-
- -
-
- +
+
+ +
+
+ +
@@ -129,24 +131,28 @@
-
- +
+
+ +
+
+ +
-
- -
-
- -
-
- +
+
+ +
+
+ +
@@ -160,14 +166,16 @@

${HeaderSpecialEpisodeInfo}

-
- -
-
- -
-
- +
+
+ +
+
+ +
+
+ +
@@ -240,8 +248,11 @@

+
diff --git a/src/components/metadataeditor/personeditor.js b/src/components/metadataEditor/personEditor.js similarity index 96% rename from src/components/metadataeditor/personeditor.js rename to src/components/metadataEditor/personEditor.js index 9fb6fdec6..fc6a0595f 100644 --- a/src/components/metadataeditor/personeditor.js +++ b/src/components/metadataEditor/personEditor.js @@ -11,7 +11,7 @@ define(['dialogHelper', 'layoutManager', 'globalize', 'require', 'paper-icon-but function show(person) { return new Promise(function (resolve, reject) { - require(['text!./personeditor.template.html'], function (template) { + require(['text!./personEditor.template.html'], function (template) { var dialogOptions = { removeOnClose: true, @@ -21,7 +21,7 @@ define(['dialogHelper', 'layoutManager', 'globalize', 'require', 'paper-icon-but if (layoutManager.tv) { dialogOptions.size = 'fullscreen'; } else { - dialogOptions.size = 'medium-tall'; + dialogOptions.size = 'small'; } var dlg = dialogHelper.createDialog(dialogOptions); diff --git a/src/components/metadataeditor/personeditor.template.html b/src/components/metadataEditor/personEditor.template.html similarity index 100% rename from src/components/metadataeditor/personeditor.template.html rename to src/components/metadataEditor/personEditor.template.html diff --git a/src/components/multiselect/multiselect.css b/src/components/multiSelect/multiSelect.css similarity index 100% rename from src/components/multiselect/multiselect.css rename to src/components/multiSelect/multiSelect.css diff --git a/src/components/multiselect/multiselect.js b/src/components/multiSelect/multiSelect.js similarity index 99% rename from src/components/multiselect/multiselect.js rename to src/components/multiSelect/multiSelect.js index 70a0924bc..83982413a 100644 --- a/src/components/multiselect/multiselect.js +++ b/src/components/multiSelect/multiSelect.js @@ -1,4 +1,4 @@ -define(['browser', 'appStorage', 'apphost', 'loading', 'connectionManager', 'globalize', 'appRouter', 'dom', 'css!./multiselect'], function (browser, appStorage, appHost, loading, connectionManager, globalize, appRouter, dom) { +define(['browser', 'appStorage', 'apphost', 'loading', 'connectionManager', 'globalize', 'appRouter', 'dom', 'css!./multiSelect'], function (browser, appStorage, appHost, loading, connectionManager, globalize, appRouter, dom) { 'use strict'; var selectedItems = []; @@ -129,7 +129,7 @@ define(['browser', 'appStorage', 'apphost', 'loading', 'connectionManager', 'glo html += ''; html += '

'; - const moreIcon = 'more_horiz'; + const moreIcon = 'more_vert'; html += ''; selectionCommandsPanel.innerHTML = html; diff --git a/src/components/nowplayingbar/nowplayingbar.css b/src/components/nowPlayingBar/nowPlayingBar.css similarity index 100% rename from src/components/nowplayingbar/nowplayingbar.css rename to src/components/nowPlayingBar/nowPlayingBar.css diff --git a/src/components/nowplayingbar/nowplayingbar.js b/src/components/nowPlayingBar/nowPlayingBar.js similarity index 99% rename from src/components/nowplayingbar/nowplayingbar.js rename to src/components/nowPlayingBar/nowPlayingBar.js index 546029a98..bc9c3c1a8 100644 --- a/src/components/nowplayingbar/nowplayingbar.js +++ b/src/components/nowPlayingBar/nowPlayingBar.js @@ -244,7 +244,7 @@ define(['require', 'datetime', 'itemHelper', 'events', 'browser', 'imageLoader', return new Promise(function (resolve, reject) { - require(['appFooter-shared', 'itemShortcuts', 'css!./nowplayingbar.css', 'emby-slider'], function (appfooter, itemShortcuts) { + require(['appFooter-shared', 'itemShortcuts', 'css!./nowPlayingBar.css', 'emby-slider'], function (appfooter, itemShortcuts) { var parentContainer = appfooter.element; nowPlayingBarElement = parentContainer.querySelector('.nowPlayingBar'); diff --git a/src/components/photoplayer/plugin.js b/src/components/photoPlayer/plugin.js similarity index 100% rename from src/components/photoplayer/plugin.js rename to src/components/photoPlayer/plugin.js diff --git a/src/components/playback/playbackmanager.js b/src/components/playback/playbackmanager.js index ec0ee4140..59108cf72 100644 --- a/src/components/playback/playbackmanager.js +++ b/src/components/playback/playbackmanager.js @@ -314,13 +314,11 @@ define(['events', 'datetime', 'appSettings', 'itemHelper', 'pluginManager', 'pla if (codecProfile.Type === 'Audio') { (codecProfile.Conditions || []).map(function (condition) { if (condition.Condition === 'LessThanEqual' && condition.Property === 'AudioBitDepth') { - maxAudioBitDepth = condition.Value; - } - if (condition.Condition === 'LessThanEqual' && condition.Property === 'AudioSampleRate') { - maxAudioSampleRate = condition.Value; - } - if (condition.Condition === 'LessThanEqual' && condition.Property === 'AudioBitrate') { - maxAudioBitrate = condition.Value; + return maxAudioBitDepth = condition.Value; + } else if (condition.Condition === 'LessThanEqual' && condition.Property === 'AudioSampleRate') { + return maxAudioSampleRate = condition.Value; + } else if (condition.Condition === 'LessThanEqual' && condition.Property === 'AudioBitrate') { + return maxAudioBitrate = condition.Value; } }); } diff --git a/src/components/playback/playersettingsmenu.js b/src/components/playback/playersettingsmenu.js index b89631f63..dd67b667e 100644 --- a/src/components/playback/playersettingsmenu.js +++ b/src/components/playback/playersettingsmenu.js @@ -7,11 +7,13 @@ define(['connectionManager', 'actionsheet', 'datetime', 'playbackManager', 'glob return stream.Type === 'Video'; })[0]; var videoWidth = videoStream ? videoStream.Width : null; + var videoHeight = videoStream ? videoStream.Height : null; var options = qualityoptions.getVideoQualityOptions({ currentMaxBitrate: playbackManager.getMaxStreamingBitrate(player), isAutomaticBitrateEnabled: playbackManager.enableAutomaticBitrateDetection(player), videoWidth: videoWidth, + videoHeight: videoHeight, enableAuto: true }); @@ -91,11 +93,13 @@ define(['connectionManager', 'actionsheet', 'datetime', 'playbackManager', 'glob })[0]; var videoWidth = videoStream ? videoStream.Width : null; + var videoHeight = videoStream ? videoStream.Height : null; var options = qualityoptions.getVideoQualityOptions({ currentMaxBitrate: playbackManager.getMaxStreamingBitrate(player), isAutomaticBitrateEnabled: playbackManager.enableAutomaticBitrateDetection(player), videoWidth: videoWidth, + videoHeight: videoHeight, enableAuto: true }); diff --git a/src/components/playbacksettings/playbacksettings.js b/src/components/playbackSettings/playbackSettings.js similarity index 97% rename from src/components/playbacksettings/playbacksettings.js rename to src/components/playbackSettings/playbackSettings.js index 259386397..06d2e38d2 100644 --- a/src/components/playbacksettings/playbacksettings.js +++ b/src/components/playbackSettings/playbackSettings.js @@ -204,6 +204,9 @@ define(['require', 'browser', 'appSettings', 'apphost', 'focusManager', 'quality fillChromecastQuality(context.querySelector('.selectChromecastVideoQuality')); + var selectChromecastVersion = context.querySelector('.selectChromecastVersion'); + selectChromecastVersion.value = userSettings.chromecastVersion(); + var selectSkipForwardLength = context.querySelector('.selectSkipForwardLength'); fillSkipLengths(selectSkipForwardLength); selectSkipForwardLength.value = userSettings.skipForwardLength(); @@ -234,6 +237,7 @@ define(['require', 'browser', 'appSettings', 'apphost', 'focusManager', 'quality userSettingsInstance.enableCinemaMode(context.querySelector('.chkEnableCinemaMode').checked); userSettingsInstance.enableNextVideoInfoOverlay(context.querySelector('.chkEnableNextVideoOverlay').checked); + userSettingsInstance.chromecastVersion(context.querySelector('.selectChromecastVersion').value); userSettingsInstance.skipForwardLength(context.querySelector('.selectSkipForwardLength').value); userSettingsInstance.skipBackLength(context.querySelector('.selectSkipBackLength').value); @@ -285,7 +289,7 @@ define(['require', 'browser', 'appSettings', 'apphost', 'focusManager', 'quality function embed(options, self) { - require(['text!./playbacksettings.template.html'], function (template) { + require(['text!./playbackSettings.template.html'], function (template) { options.element.innerHTML = globalize.translateDocument(template, 'core'); diff --git a/src/components/playbacksettings/playbacksettings.template.html b/src/components/playbackSettings/playbackSettings.template.html similarity index 92% rename from src/components/playbacksettings/playbacksettings.template.html rename to src/components/playbackSettings/playbackSettings.template.html index 0c8b726a4..03af5d6fa 100644 --- a/src/components/playbacksettings/playbacksettings.template.html +++ b/src/components/playbackSettings/playbackSettings.template.html @@ -1,12 +1,13 @@ -

${HeaderAudioSettings}

+
+
+
+ +
+
diff --git a/src/components/playmenu.js b/src/components/playmenu.js index a410da698..50c2a7b31 100644 --- a/src/components/playmenu.js +++ b/src/components/playmenu.js @@ -1,75 +1,71 @@ -define(['actionsheet', 'datetime', 'playbackManager', 'globalize', 'appSettings'], function (actionsheet, datetime, playbackManager, globalize, appSettings) { - 'use strict'; +import actionsheet from 'actionsheet'; +import datetime from 'datetime'; +import playbackManager from 'playbackManager'; +import globalize from 'globalize'; - function show(options) { +export function show(options) { - var item = options.item; + var item = options.item; - var itemType = item.Type; - var isFolder = item.IsFolder; - var itemId = item.Id; - var channelId = item.ChannelId; - var serverId = item.ServerId; - var resumePositionTicks = item.UserData ? item.UserData.PlaybackPositionTicks : null; + var resumePositionTicks = item.UserData ? item.UserData.PlaybackPositionTicks : null; - var playableItemId = itemType === 'Program' ? channelId : itemId; + var playableItemId = item.Type === 'Program' ? item.ChannelId : item.Id; - if (!resumePositionTicks || isFolder) { - playbackManager.play({ - ids: [playableItemId], - serverId: serverId - }); - return; - } - - var menuItems = []; - - menuItems.push({ - name: globalize.translate('ResumeAt', datetime.getDisplayRunningTime(resumePositionTicks)), - id: 'resume' - }); - - menuItems.push({ - name: globalize.translate('PlayFromBeginning'), - id: 'play' - }); - - actionsheet.show({ - - items: menuItems, - positionTo: options.positionTo - - }).then(function (id) { - switch (id) { - - case 'play': - playbackManager.play({ - ids: [playableItemId], - serverId: serverId - }); - break; - case 'resume': - playbackManager.play({ - ids: [playableItemId], - startPositionTicks: resumePositionTicks, - serverId: serverId - }); - break; - case 'queue': - playbackManager.queue({ - items: [item] - }); - break; - case 'shuffle': - playbackManager.shuffle(item); - break; - default: - break; - } + if (!resumePositionTicks || item.IsFolder) { + playbackManager.play({ + ids: [playableItemId], + serverId: item.ServerId }); + return; } - return { - show: show - }; -}); + var menuItems = []; + + menuItems.push({ + name: globalize.translate('ResumeAt', datetime.getDisplayRunningTime(resumePositionTicks)), + id: 'resume' + }); + + menuItems.push({ + name: globalize.translate('PlayFromBeginning'), + id: 'play' + }); + + actionsheet.show({ + + items: menuItems, + positionTo: options.positionTo + + }).then(function (id) { + switch (id) { + + case 'play': + playbackManager.play({ + ids: [playableItemId], + serverId: item.ServerId + }); + break; + case 'resume': + playbackManager.play({ + ids: [playableItemId], + startPositionTicks: resumePositionTicks, + serverId: item.ServerId + }); + break; + case 'queue': + playbackManager.queue({ + items: [item] + }); + break; + case 'shuffle': + playbackManager.shuffle(item); + break; + default: + break; + } + }); +} + +export default { + show: show +}; diff --git a/src/components/pluginManager.js b/src/components/pluginManager.js index 2126d73b3..6cb56d767 100644 --- a/src/components/pluginManager.js +++ b/src/components/pluginManager.js @@ -1,10 +1,10 @@ -define(['events'], function (events) { +define(['events', 'globalize'], function (events, globalize) { 'use strict'; // TODO: replace with each plugin version var cacheParam = new Date().getTime(); - function loadStrings(plugin, globalize) { + function loadStrings(plugin) { var strings = plugin.getTranslations ? plugin.getTranslations() : []; return globalize.loadStrings({ name: plugin.id || plugin.packageName, @@ -25,68 +25,78 @@ define(['events'], function (events) { this.pluginsList = []; } - PluginManager.prototype.loadPlugin = function (url) { + PluginManager.prototype.loadPlugin = function(pluginSpec) { - console.debug('Loading plugin: ' + url); var instance = this; - return new Promise(function (resolve, reject) { + function registerPlugin(plugin) { + instance.register(plugin); - require([url, 'globalize', 'appRouter'], function (pluginFactory, globalize, appRouter) { - - var plugin = new pluginFactory(); - - // See if it's already installed - var existing = instance.pluginsList.filter(function (p) { - return p.id === plugin.id; - })[0]; - - if (existing) { - resolve(url); - return; - } - - plugin.installUrl = url; - - var urlLower = url.toLowerCase(); - if (urlLower.indexOf('http:') === -1 && urlLower.indexOf('https:') === -1 && urlLower.indexOf('file:') === -1) { - if (url.indexOf(appRouter.baseUrl()) !== 0) { - - url = appRouter.baseUrl() + '/' + url; - } - } - - var separatorIndex = Math.max(url.lastIndexOf('/'), url.lastIndexOf('\\')); - plugin.baseUrl = url.substring(0, separatorIndex); - - var paths = {}; - paths[plugin.id] = plugin.baseUrl; - - requirejs.config({ - waitSeconds: 0, - paths: paths + if (plugin.getRoutes) { + plugin.getRoutes().forEach(function (route) { + definePluginRoute(instance, route, plugin); }); + } - instance.register(plugin); + if (plugin.type === 'skin') { - if (plugin.getRoutes) { - plugin.getRoutes().forEach(function (route) { - definePluginRoute(instance, route, plugin); + // translations won't be loaded for skins until needed + return Promise.resolve(plugin); + } else { + return new Promise((resolve, reject) => { + loadStrings(plugin) + .then(function () { + resolve(plugin); + }) + .catch(reject); + }); + } + } + + if (typeof pluginSpec === 'string') { + console.debug('Loading plugin (via deprecated requirejs method): ' + pluginSpec); + + return new Promise(function (resolve, reject) { + require([pluginSpec], (pluginFactory) => { + var plugin = new pluginFactory(); + + // See if it's already installed + var existing = instance.pluginsList.filter(function (p) { + return p.id === plugin.id; + })[0]; + + if (existing) { + resolve(pluginSpec); + } + + plugin.installUrl = pluginSpec; + + var separatorIndex = Math.max(pluginSpec.lastIndexOf('/'), pluginSpec.lastIndexOf('\\')); + plugin.baseUrl = pluginSpec.substring(0, separatorIndex); + + var paths = {}; + paths[plugin.id] = plugin.baseUrl; + + requirejs.config({ + waitSeconds: 0, + paths: paths }); - } - if (plugin.type === 'skin') { - - // translations won't be loaded for skins until needed - resolve(plugin); - } else { - - loadStrings(plugin, globalize).then(function () { - resolve(plugin); - }, reject); - } + registerPlugin(plugin).then(resolve).catch(reject); + }); }); - }); + } else if (pluginSpec.then) { + return pluginSpec.then(pluginBuilder => { + return pluginBuilder(); + }).then(plugin => { + console.debug(`Plugin loaded: ${plugin.id}`); + return registerPlugin(plugin); + }); + } else { + const err = new Error('Plugins have to be a Promise that resolves to a plugin builder function or a requirejs urls (deprecated)'); + console.error(err); + return Promise.reject(err); + } }; // In lieu of automatic discovery, plugins will register dynamic objects diff --git a/src/components/qualityoptions.js b/src/components/qualityOptions.js similarity index 96% rename from src/components/qualityoptions.js rename to src/components/qualityOptions.js index 5ad69cb79..221e13d4e 100644 --- a/src/components/qualityoptions.js +++ b/src/components/qualityOptions.js @@ -5,6 +5,13 @@ define(['globalize'], function (globalize) { var maxStreamingBitrate = options.currentMaxBitrate; var videoWidth = options.videoWidth; + var videoHeight = options.videoHeight; + + // If the aspect ratio is less than 16/9 (1.77), set the width as if it were pillarboxed. + // 4:3 1440x1080 -> 1920x1080 + if (videoWidth / videoHeight < 16 / 9) { + videoWidth = videoHeight * (16 / 9); + } var maxAllowedWidth = videoWidth || 4096; //var maxAllowedHeight = videoHeight || 2304; diff --git a/src/components/remotecontrol/remotecontrol.js b/src/components/remotecontrol/remotecontrol.js index a4f25a774..089915a83 100644 --- a/src/components/remotecontrol/remotecontrol.js +++ b/src/components/remotecontrol/remotecontrol.js @@ -140,7 +140,7 @@ define(['browser', 'datetime', 'backdrop', 'libraryBrowser', 'listView', 'imageL } if (item.SeriesName != null) { var seriesName = item.SeriesName; - if (item.SeriesId !=null) { + if (item.SeriesId != null) { context.querySelector('.nowPlayingSerie').innerHTML = '${seriesName}`; } else { context.querySelector('.nowPlayingSerie').innerHTML = seriesName; diff --git a/src/components/sanitizefilename.js b/src/components/sanitizeFilename.js similarity index 100% rename from src/components/sanitizefilename.js rename to src/components/sanitizeFilename.js diff --git a/src/components/scrollManager.js b/src/components/scrollManager.js index f7bd41ff8..3b01cf1ad 100644 --- a/src/components/scrollManager.js +++ b/src/components/scrollManager.js @@ -92,7 +92,7 @@ import layoutManager from 'layoutManager'; * @return {number} Eased value in range [0, 1]. */ function ease(t) { - return t*(2 - t); // easeOutQuad === ease-out + return t * (2 - t); // easeOutQuad === ease-out } /** @@ -402,8 +402,8 @@ import layoutManager from 'layoutManager'; k = ease(k); - const x = ox + dx*k; - const y = oy + dy*k; + const x = ox + dx * k; + const y = oy + dy * k; builtinScroll(xScroller, x, yScroller, y, false); diff --git a/src/components/sessionplayer.js b/src/components/sessionPlayer.js similarity index 100% rename from src/components/sessionplayer.js rename to src/components/sessionPlayer.js diff --git a/src/components/skinManager.js b/src/components/skinManager.js index 871b6d999..b0a9178ac 100644 --- a/src/components/skinManager.js +++ b/src/components/skinManager.js @@ -1,4 +1,4 @@ -define(['apphost', 'userSettings', 'browser', 'events', 'pluginManager', 'backdrop', 'globalize', 'require', 'appSettings'], function (appHost, userSettings, browser, events, pluginManager, backdrop, globalize, require, appSettings) { +define(['apphost', 'userSettings', 'browser', 'events', 'backdrop', 'globalize', 'require', 'appSettings'], function (appHost, userSettings, browser, events, backdrop, globalize, require, appSettings) { 'use strict'; var themeStyleElement; @@ -137,6 +137,8 @@ define(['apphost', 'userSettings', 'browser', 'events', 'pluginManager', 'backdr function onViewBeforeShow(e) { if (e.detail && e.detail.type === 'video-osd') { + // This removes the space that the scrollbar takes while playing a video + document.body.classList.remove('force-scroll'); return; } @@ -155,6 +157,9 @@ define(['apphost', 'userSettings', 'browser', 'events', 'pluginManager', 'backdr } } } + // This keeps the scrollbar always present in all pages, so we avoid clipping while switching between pages + // that need the scrollbar and pages that don't. + document.body.classList.add('force-scroll'); } document.addEventListener('viewshow', onViewBeforeShow); diff --git a/src/components/slideshow/slideshow.js b/src/components/slideshow/slideshow.js index 4716135ce..6ff88a00c 100644 --- a/src/components/slideshow/slideshow.js +++ b/src/components/slideshow/slideshow.js @@ -438,6 +438,9 @@ define(['dialogHelper', 'inputManager', 'connectionManager', 'layoutManager', 'f inputManager.off(window, onInputCommand); document.removeEventListener((window.PointerEvent ? 'pointermove' : 'mousemove'), onPointerMove); + // Shows page scrollbar + document.body.classList.remove('hide-scroll'); + document.body.classList.add('force-scroll'); } /** @@ -603,6 +606,9 @@ define(['dialogHelper', 'inputManager', 'connectionManager', 'layoutManager', 'f */ self.show = function () { createElements(options); + // Hides page scrollbar + document.body.classList.remove('force-scroll'); + document.body.classList.add('hide-scroll'); }; /** diff --git a/src/components/subtitleeditor/subtitleeditor.js b/src/components/subtitleeditor/subtitleeditor.js index 8ce1fd580..e9bcc0bfc 100644 --- a/src/components/subtitleeditor/subtitleeditor.js +++ b/src/components/subtitleeditor/subtitleeditor.js @@ -232,11 +232,7 @@ define(['dialogHelper', 'require', 'layoutManager', 'globalize', 'userSettings', html += '
'; } html += '

' + provider + '

'; - if (layoutManager.tv) { - html += '
'; - } else { - html += '
'; - } + html += '
'; lastProvider = provider; } diff --git a/src/components/subtitleeditor/subtitleeditor.template.html b/src/components/subtitleeditor/subtitleeditor.template.html index 01066ecc6..7471972f5 100644 --- a/src/components/subtitleeditor/subtitleeditor.template.html +++ b/src/components/subtitleeditor/subtitleeditor.template.html @@ -2,8 +2,7 @@

${Subtitles}

- ${Help} - + ${Help}
diff --git a/src/components/thememediaplayer.js b/src/components/themeMediaPlayer.js similarity index 100% rename from src/components/thememediaplayer.js rename to src/components/themeMediaPlayer.js diff --git a/src/components/tunerpicker.js b/src/components/tunerPicker.js similarity index 100% rename from src/components/tunerpicker.js rename to src/components/tunerPicker.js diff --git a/src/components/tvproviders/schedulesdirect.template.html b/src/components/tvproviders/schedulesdirect.template.html index 3cfba06fe..abe19b50f 100644 --- a/src/components/tvproviders/schedulesdirect.template.html +++ b/src/components/tvproviders/schedulesdirect.template.html @@ -1,7 +1,7 @@

Schedules Direct

- ${Help} + ${Help}

diff --git a/src/components/tvproviders/xmltv.template.html b/src/components/tvproviders/xmltv.template.html index e8dc43416..72c29904b 100644 --- a/src/components/tvproviders/xmltv.template.html +++ b/src/components/tvproviders/xmltv.template.html @@ -1,7 +1,7 @@

Xml TV

- ${Help} + ${Help}
diff --git a/src/components/upnextdialog/upnextdialog.css b/src/components/upnextdialog/upnextdialog.css index 15f91b29d..05e3b10f5 100644 --- a/src/components/upnextdialog/upnextdialog.css +++ b/src/components/upnextdialog/upnextdialog.css @@ -63,8 +63,8 @@ height: auto; width: 100%; box-shadow: 0 0.0725em 0.29em 0 rgba(0, 0, 0, 0.37); - border: 0; user-drag: none; + border: 0; user-select: none; -moz-user-select: none; -webkit-user-drag: none; diff --git a/src/config.example.json b/src/config.template.json similarity index 100% rename from src/config.example.json rename to src/config.template.json diff --git a/src/controllers/dashboard/dashboard.js b/src/controllers/dashboard/dashboard.js index 1256f6007..f91f4e01e 100644 --- a/src/controllers/dashboard/dashboard.js +++ b/src/controllers/dashboard/dashboard.js @@ -179,12 +179,6 @@ define(['datetime', 'events', 'itemHelper', 'serverNotifications', 'dom', 'globa view.querySelector('#operatingSystem').innerHTML = globalize.translate('DashboardOperatingSystem', systemInfo.OperatingSystem); view.querySelector('#architecture').innerHTML = globalize.translate('DashboardArchitecture', systemInfo.SystemArchitecture); - if (systemInfo.CanSelfRestart) { - view.querySelector('#btnRestartServer').classList.remove('hide'); - } else { - view.querySelector('#btnRestartServer').classList.add('hide'); - } - view.querySelector('#cachePath').innerHTML = systemInfo.CachePath; view.querySelector('#logPath').innerHTML = systemInfo.LogPath; view.querySelector('#transcodePath').innerHTML = systemInfo.TranscodingTempPath; diff --git a/src/controllers/dashboard/devices/devices.js b/src/controllers/dashboard/devices/devices.js index da65ef621..0dea81c75 100644 --- a/src/controllers/dashboard/devices/devices.js +++ b/src/controllers/dashboard/devices/devices.js @@ -89,7 +89,7 @@ define(['loading', 'dom', 'libraryMenu', 'globalize', 'scripts/imagehelper', 'da if (canEdit || canDelete(device.Id)) { deviceHtml += '
'; - deviceHtml += ''; + deviceHtml += ''; deviceHtml += '
'; } diff --git a/src/controllers/dashboard/dlna/dlnaprofile.js b/src/controllers/dashboard/dlna/profile.js similarity index 100% rename from src/controllers/dashboard/dlna/dlnaprofile.js rename to src/controllers/dashboard/dlna/profile.js diff --git a/src/controllers/dashboard/dlna/dlnaprofiles.js b/src/controllers/dashboard/dlna/profiles.js similarity index 100% rename from src/controllers/dashboard/dlna/dlnaprofiles.js rename to src/controllers/dashboard/dlna/profiles.js diff --git a/src/controllers/dashboard/dlna/dlnasettings.js b/src/controllers/dashboard/dlna/settings.js similarity index 100% rename from src/controllers/dashboard/dlna/dlnasettings.js rename to src/controllers/dashboard/dlna/settings.js diff --git a/src/controllers/dashboard/general.js b/src/controllers/dashboard/general.js index 98ca260f2..778285054 100644 --- a/src/controllers/dashboard/general.js +++ b/src/controllers/dashboard/general.js @@ -18,11 +18,6 @@ define(['jQuery', 'loading', 'globalize', 'fnchecked', 'emby-checkbox', 'emby-te return ''; })).val(config.UICulture); currentLanguage = config.UICulture; - if (systemInfo.CanSelfRestart || systemInfo.CanSelfUpdate) { - $('.autoUpdatesContainer', page).removeClass('hide'); - } else { - $('.autoUpdatesContainer', page).addClass('hide'); - } loading.hide(); } diff --git a/src/controllers/dashboard/medialibrarypage.js b/src/controllers/dashboard/mediaLibrary.js similarity index 99% rename from src/controllers/dashboard/medialibrarypage.js rename to src/controllers/dashboard/mediaLibrary.js index 0788fa4ca..06eba37cb 100644 --- a/src/controllers/dashboard/medialibrarypage.js +++ b/src/controllers/dashboard/mediaLibrary.js @@ -298,7 +298,7 @@ define(['jQuery', 'apphost', 'scripts/taskbutton', 'loading', 'libraryMenu', 'gl if (virtualFolder.showMenu !== false) { html += '
'; - html += ''; + html += ''; html += '
'; } diff --git a/src/controllers/dashboard/metadataimagespage.js b/src/controllers/dashboard/metadataImages.js similarity index 100% rename from src/controllers/dashboard/metadataimagespage.js rename to src/controllers/dashboard/metadataImages.js diff --git a/src/controllers/dashboard/networking.js b/src/controllers/dashboard/networking.js index 9cf638cee..4ddde7f24 100644 --- a/src/controllers/dashboard/networking.js +++ b/src/controllers/dashboard/networking.js @@ -9,7 +9,7 @@ define(['loading', 'libraryMenu', 'globalize', 'emby-checkbox', 'emby-select'], var validationResult = getValidationAlert(form); if (validationResult) { - alertText(validationResult); + showAlertText(validationResult); return; } @@ -29,35 +29,10 @@ define(['loading', 'libraryMenu', 'globalize', 'emby-checkbox', 'emby-select'], config.IsRemoteIPFilterBlacklist = 'blacklist' === form.querySelector('#selectExternalAddressFilterMode').value; config.PublicPort = form.querySelector('#txtPublicPort').value; config.PublicHttpsPort = form.querySelector('#txtPublicHttpsPort').value; - var httpsMode = form.querySelector('#selectHttpsMode').value; - - switch (httpsMode) { - case 'proxy': - config.EnableHttps = true; - config.RequireHttps = false; - config.IsBehindProxy = true; - break; - - case 'required': - config.EnableHttps = true; - config.RequireHttps = true; - config.IsBehindProxy = false; - break; - - case 'enabled': - config.EnableHttps = true; - config.RequireHttps = false; - config.IsBehindProxy = false; - break; - - default: - config.EnableHttps = false; - config.RequireHttps = false; - config.IsBehindProxy = false; - } - - config.HttpsPortNumber = form.querySelector('#txtHttpsPort').value; config.HttpServerPortNumber = form.querySelector('#txtPortNumber').value; + config.HttpsPortNumber = form.querySelector('#txtHttpsPort').value; + config.EnableHttps = form.querySelector('#chkEnableHttps').checked; + config.RequireHttps = form.querySelector('#chkRequireHttps').checked; config.EnableUPnP = enableUpnp; config.BaseUrl = form.querySelector('#txtBaseUrl').value; config.EnableRemoteAccess = form.querySelector('#chkRemoteAccess').checked; @@ -90,23 +65,20 @@ define(['loading', 'libraryMenu', 'globalize', 'emby-checkbox', 'emby-select'], } function validateHttps(form) { - var remoteAccess = form.querySelector('#chkRemoteAccess').checked; var certPath = form.querySelector('#txtCertificatePath').value || null; - var httpsMode = form.querySelector('#selectHttpsMode').value; + var httpsEnabled = form.querySelector('#chkEnableHttps').checked; - if (!remoteAccess || ('enabled' !== httpsMode && 'required' !== httpsMode || certPath)) { - return Promise.resolve(); - } - - return new Promise(function (resolve, reject) { - return alertText({ + if (httpsEnabled && !certPath) { + return showAlertText({ title: globalize.translate('TitleHostingSettings'), text: globalize.translate('HttpsRequiresCert') - }).then(reject, reject); - }); + }).then(Promise.reject); + } + + return Promise.resolve(); } - function alertText(options) { + function showAlertText(options) { return new Promise(function (resolve, reject) { require(['alert'], function (alert) { alert(options).then(resolve, reject); @@ -116,7 +88,7 @@ define(['loading', 'libraryMenu', 'globalize', 'emby-checkbox', 'emby-select'], function confirmSelections(localAddress, enableUpnp, callback) { if (localAddress || !enableUpnp) { - alertText({ + showAlertText({ title: globalize.translate('TitleHostingSettings'), text: globalize.translate('SettingsWarning') }).then(callback); @@ -135,19 +107,9 @@ define(['loading', 'libraryMenu', 'globalize', 'emby-checkbox', 'emby-select'], page.querySelector('#txtExternalAddressFilter').value = (config.RemoteIPFilter || []).join(', '); page.querySelector('#selectExternalAddressFilterMode').value = config.IsRemoteIPFilterBlacklist ? 'blacklist' : 'whitelist'; page.querySelector('#chkRemoteAccess').checked = null == config.EnableRemoteAccess || config.EnableRemoteAccess; - var selectHttpsMode = page.querySelector('#selectHttpsMode'); - - if (config.IsBehindProxy) { - selectHttpsMode.value = 'proxy'; - } else if (config.RequireHttps) { - selectHttpsMode.value = 'required'; - } else if (config.EnableHttps) { - selectHttpsMode.value = 'enabled'; - } else { - selectHttpsMode.value = 'disabled'; - } - page.querySelector('#txtHttpsPort').value = config.HttpsPortNumber; + page.querySelector('#chkEnableHttps').checked = config.EnableHttps; + page.querySelector('#chkRequireHttps').checked = config.RequireHttps; page.querySelector('#txtBaseUrl').value = config.BaseUrl || ''; var txtCertificatePath = page.querySelector('#txtCertificatePath'); txtCertificatePath.value = config.CertificatePath || ''; @@ -163,18 +125,12 @@ define(['loading', 'libraryMenu', 'globalize', 'emby-checkbox', 'emby-select'], view.querySelector('.fldExternalAddressFilterMode').classList.remove('hide'); view.querySelector('.fldPublicPort').classList.remove('hide'); view.querySelector('.fldPublicHttpsPort').classList.remove('hide'); - view.querySelector('.fldCertificatePath').classList.remove('hide'); - view.querySelector('.fldCertPassword').classList.remove('hide'); - view.querySelector('.fldHttpsMode').classList.remove('hide'); view.querySelector('.fldEnableUpnp').classList.remove('hide'); } else { view.querySelector('.fldExternalAddressFilter').classList.add('hide'); view.querySelector('.fldExternalAddressFilterMode').classList.add('hide'); view.querySelector('.fldPublicPort').classList.add('hide'); view.querySelector('.fldPublicHttpsPort').classList.add('hide'); - view.querySelector('.fldCertificatePath').classList.add('hide'); - view.querySelector('.fldCertPassword').classList.add('hide'); - view.querySelector('.fldHttpsMode').classList.add('hide'); view.querySelector('.fldEnableUpnp').classList.add('hide'); } }); diff --git a/src/controllers/dashboard/playbackconfiguration.js b/src/controllers/dashboard/playback.js similarity index 100% rename from src/controllers/dashboard/playbackconfiguration.js rename to src/controllers/dashboard/playback.js diff --git a/src/controllers/dashboard/plugins/add.js b/src/controllers/dashboard/plugins/add.js index 1ceee102e..8b1deb804 100644 --- a/src/controllers/dashboard/plugins/add.js +++ b/src/controllers/dashboard/plugins/add.js @@ -71,13 +71,13 @@ define(['jQuery', 'loading', 'libraryMenu', 'globalize', 'connectionManager', 'e }); } - function performInstallation(page, packageName, guid, updateClass, version) { + function performInstallation(page, name, guid, version) { var developer = $('#developer', page).html().toLowerCase(); var alertCallback = function () { loading.show(); page.querySelector('#btnInstall').disabled = true; - ApiClient.installPlugin(packageName, guid, updateClass, version).then(function () { + ApiClient.installPlugin(name, guid, version).then(function () { loading.hide(); alertText(globalize.translate('PluginInstalledMessage')); }); @@ -112,9 +112,8 @@ define(['jQuery', 'loading', 'libraryMenu', 'globalize', 'connectionManager', 'e var installedPlugin = plugins.filter(function (plugin) { return plugin.Name == name; })[0]; - var vals = $('#selectVersion', page).val().split('|'); - var version = vals[0]; + var version = $('#selectVersion', page).val(); if (installedPlugin) { if (installedPlugin.Version === version) { loading.hide(); @@ -124,7 +123,7 @@ define(['jQuery', 'loading', 'libraryMenu', 'globalize', 'connectionManager', 'e }); } } else { - performInstallation(page, name, guid, vals[1], version); + performInstallation(page, name, guid, version); } }); return false; diff --git a/src/controllers/dashboard/plugins/installed.js b/src/controllers/dashboard/plugins/installed.js index 427ce7d94..5ca739f71 100644 --- a/src/controllers/dashboard/plugins/installed.js +++ b/src/controllers/dashboard/plugins/installed.js @@ -47,7 +47,7 @@ define(['loading', 'libraryMenu', 'dom', 'globalize', 'cardStyle', 'emby-button' html += '
'; html += '
'; html += '
'; - html += ''; + html += ''; html += '
'; html += "
"; html += configPage.DisplayName || plugin.Name; diff --git a/src/controllers/dashboard/streamingsettings.js b/src/controllers/dashboard/streaming.js similarity index 100% rename from src/controllers/dashboard/streamingsettings.js rename to src/controllers/dashboard/streaming.js diff --git a/src/controllers/useredit.js b/src/controllers/dashboard/users/useredit.js similarity index 100% rename from src/controllers/useredit.js rename to src/controllers/dashboard/users/useredit.js diff --git a/src/controllers/userlibraryaccess.js b/src/controllers/dashboard/users/userlibraryaccess.js similarity index 100% rename from src/controllers/userlibraryaccess.js rename to src/controllers/dashboard/users/userlibraryaccess.js diff --git a/src/controllers/usernew.js b/src/controllers/dashboard/users/usernew.js similarity index 92% rename from src/controllers/usernew.js rename to src/controllers/dashboard/users/usernew.js index e59143a9d..5646b239d 100644 --- a/src/controllers/usernew.js +++ b/src/controllers/dashboard/users/usernew.js @@ -8,12 +8,12 @@ define(['jQuery', 'loading', 'globalize', 'fnchecked', 'emby-checkbox'], functio for (var i = 0; i < mediaFolders.length; i++) { var folder = mediaFolders[i]; - html += ''; + html += ''; } html += '
'; $('.folderAccess', page).html(html).trigger('create'); - $('#chkEnableAllFolders', page).checked(true).trigger('change'); + $('#chkEnableAllFolders', page).checked(false).trigger('change'); } function loadChannels(page, channels) { @@ -23,7 +23,7 @@ define(['jQuery', 'loading', 'globalize', 'fnchecked', 'emby-checkbox'], functio for (var i = 0; i < channels.length; i++) { var folder = channels[i]; - html += ''; + html += ''; } html += '
'; @@ -35,7 +35,7 @@ define(['jQuery', 'loading', 'globalize', 'fnchecked', 'emby-checkbox'], functio $('.channelAccessContainer', page).hide(); } - $('#chkEnableAllChannels', page).checked(true).trigger('change'); + $('#chkEnableAllChannels', page).checked(false).trigger('change'); } function loadUser(page) { diff --git a/src/controllers/userparentalcontrol.js b/src/controllers/dashboard/users/userparentalcontrol.js similarity index 99% rename from src/controllers/userparentalcontrol.js rename to src/controllers/dashboard/users/userparentalcontrol.js index e14427123..e8255512d 100644 --- a/src/controllers/userparentalcontrol.js +++ b/src/controllers/dashboard/users/userparentalcontrol.js @@ -191,7 +191,7 @@ define(['jQuery', 'datetime', 'loading', 'libraryMenu', 'globalize', 'listViewSt function showSchedulePopup(page, schedule, index) { schedule = schedule || {}; - require(['components/accessschedule/accessschedule'], function (accessschedule) { + require(['components/accessSchedule/accessSchedule'], function (accessschedule) { accessschedule.show({ schedule: schedule }).then(function (updatedSchedule) { diff --git a/src/controllers/userpasswordpage.js b/src/controllers/dashboard/users/userpasswordpage.js similarity index 100% rename from src/controllers/userpasswordpage.js rename to src/controllers/dashboard/users/userpasswordpage.js diff --git a/src/controllers/userprofilespage.js b/src/controllers/dashboard/users/userprofilespage.js similarity index 98% rename from src/controllers/userprofilespage.js rename to src/controllers/dashboard/users/userprofilespage.js index 528166e84..c691c665f 100644 --- a/src/controllers/userprofilespage.js +++ b/src/controllers/dashboard/users/userprofilespage.js @@ -115,7 +115,7 @@ define(['loading', 'dom', 'globalize', 'date-fns', 'dfnshelper', 'paper-icon-but html += '
'; html += user.Name; html += '
'; - html += ''; + html += ''; html += '
'; html += '
'; var lastSeen = getLastSeenText(user.LastActivityDate); @@ -189,7 +189,7 @@ define(['loading', 'dom', 'globalize', 'date-fns', 'dfnshelper', 'paper-icon-but html += '
'; html += '
'; html += '
'; - html += ''; + html += ''; html += '
'; html += '
'; html += user.UserName; diff --git a/src/controllers/itemdetailpage.js b/src/controllers/itemDetails.js similarity index 99% rename from src/controllers/itemdetailpage.js rename to src/controllers/itemDetails.js index 45342208e..d9eab0ac4 100644 --- a/src/controllers/itemdetailpage.js +++ b/src/controllers/itemDetails.js @@ -803,9 +803,9 @@ define(['loading', 'appRouter', 'layoutManager', 'connectionManager', 'userSetti } if (editable && url === undefined) { - html += ""; + html += ""; } else if (!editable && url === undefined) { - html += "'; html += ''; - html += ''; + html += ''; html += '
'; } @@ -155,7 +155,7 @@ define(['jQuery', 'globalize', 'scripts/taskbutton', 'dom', 'libraryMenu', 'layo } function mapChannels(page, providerId) { - require(['components/channelmapper/channelmapper'], function (channelmapper) { + require(['components/channelMapper/channelMapper'], function (channelmapper) { new channelmapper({ serverId: ApiClient.serverInfo().Id, providerId: providerId diff --git a/src/controllers/livetvtuner.js b/src/controllers/livetvtuner.js index e8a03e7f2..d7a4d92db 100644 --- a/src/controllers/livetvtuner.js +++ b/src/controllers/livetvtuner.js @@ -82,7 +82,6 @@ define(['globalize', 'loading', 'libraryMenu', 'dom', 'emby-input', 'emby-button info.Id = id; } - info.Id; ApiClient.ajax({ type: 'POST', url: ApiClient.getUrl('LiveTv/TunerHosts'), diff --git a/src/controllers/playback/videoosd.js b/src/controllers/playback/videoosd.js index e9923d779..831aea557 100644 --- a/src/controllers/playback/videoosd.js +++ b/src/controllers/playback/videoosd.js @@ -1112,6 +1112,14 @@ define(['playbackManager', 'dom', 'inputManager', 'datetime', 'itemHelper', 'med playbackManager.playPause(currentPlayer); showOsd(); break; + case 'ArrowUp': + case 'Up': + playbackManager.volumeUp(currentPlayer); + break; + case 'ArrowDown': + case 'Down': + playbackManager.volumeDown(currentPlayer); + break; case 'l': case 'ArrowRight': case 'Right': @@ -1134,6 +1142,18 @@ define(['playbackManager', 'dom', 'inputManager', 'datetime', 'itemHelper', 'med playbackManager.toggleMute(currentPlayer); showOsd(); break; + case 'p': + case 'P': + if (e.shiftKey) { + playbackManager.previousTrack(currentPlayer); + } + break; + case 'n': + case 'N': + if (e.shiftKey) { + playbackManager.nextTrack(currentPlayer); + } + break; case 'NavigationLeft': case 'GamepadDPadLeft': case 'GamepadLeftThumbstickLeft': @@ -1151,6 +1171,26 @@ define(['playbackManager', 'dom', 'inputManager', 'datetime', 'itemHelper', 'med playbackManager.fastForward(currentPlayer); showOsd(); } + break; + case 'Home': + playbackManager.seekPercent(0, currentPlayer); + break; + case 'End': + playbackManager.seekPercent(100, currentPlayer); + break; + case '0': + case '1': + case '2': + case '3': + case '4': + case '5': + case '6': + case '7': + case '8': + case '9': + var percent = parseInt(key, 10) * 10; + playbackManager.seekPercent(percent, currentPlayer); + break; } } diff --git a/src/controllers/user/profile.js b/src/controllers/user/profile.js index 0f4f2c7bc..fd7d1e32c 100644 --- a/src/controllers/user/profile.js +++ b/src/controllers/user/profile.js @@ -1,4 +1,4 @@ -define(['controllers/userpasswordpage', 'loading', 'libraryMenu', 'apphost', 'globalize', 'emby-button'], function (UserPasswordPage, loading, libraryMenu, appHost, globalize) { +define(['controllers/dashboard/users/userpasswordpage', 'loading', 'libraryMenu', 'apphost', 'globalize', 'emby-button'], function (UserPasswordPage, loading, libraryMenu, appHost, globalize) { 'use strict'; function reloadUser(page) { diff --git a/src/dashboard.html b/src/dashboard.html index 8be9f54eb..b7af3c8c0 100644 --- a/src/dashboard.html +++ b/src/dashboard.html @@ -16,7 +16,7 @@
-
diff --git a/src/dashboardgeneral.html b/src/dashboardgeneral.html index 59c8e623d..03bfa9af8 100644 --- a/src/dashboardgeneral.html +++ b/src/dashboardgeneral.html @@ -5,7 +5,7 @@

${TabSettings}

- ${Help} + ${Help}
@@ -19,7 +19,7 @@
${LabelPreferredDisplayLanguageHelp}
diff --git a/src/device.html b/src/device.html index 11fc9671b..093b31120 100644 --- a/src/device.html +++ b/src/device.html @@ -5,7 +5,7 @@
diff --git a/src/devices.html b/src/devices.html index 4e6552f05..55f51d7e2 100644 --- a/src/devices.html +++ b/src/devices.html @@ -4,7 +4,7 @@

${TabDevices}

- ${Help} + ${Help}
diff --git a/src/dlnaprofile.html b/src/dlnaprofile.html index 45182fa59..e960d97a0 100644 --- a/src/dlnaprofile.html +++ b/src/dlnaprofile.html @@ -5,7 +5,7 @@

${HeaderProfileInformation}

- ${Help} + ${Help}
@@ -272,7 +272,7 @@
-
+

${HeaderDirectPlayProfile}

@@ -312,7 +312,7 @@
-
+

${HeaderTranscodingProfile}

@@ -394,7 +394,7 @@
-
+

${HeaderContainerProfile}

@@ -426,7 +426,7 @@
-
+

${HeaderCodecProfile}

@@ -455,7 +455,7 @@
-
+

${HeaderResponseProfile}

@@ -495,7 +495,7 @@
-
+

${HeaderIdentificationHeader}

@@ -525,7 +525,7 @@
-
+

${HeaderXmlDocumentAttribute}

@@ -548,7 +548,7 @@
-
+

${HeaderSubtitleProfile}

diff --git a/src/dlnasettings.html b/src/dlnasettings.html index 8068acf5a..703dd66a9 100644 --- a/src/dlnasettings.html +++ b/src/dlnasettings.html @@ -8,7 +8,7 @@

${TabSettings}

- ${Help} + ${Help}
diff --git a/src/elements/emby-input/emby-input.css b/src/elements/emby-input/emby-input.css index 18ad37a87..195e68027 100644 --- a/src/elements/emby-input/emby-input.css +++ b/src/elements/emby-input/emby-input.css @@ -29,6 +29,27 @@ margin-bottom: 1.8em; } +.inlineForm { + display: flex; +} + +.inlineForm .inputContainer, +.inlineForm .selectContainer { + flex-basis: 0; + flex-grow: 1; + margin: 0 0.5em 1.8em; +} + +.inlineForm .inputContainer:first-child, +.inlineForm .selectContainer:first-child { + margin-left: 0; +} + +.inlineForm .inputContainer:last-child, +.inlineForm .selectContainer:last-child { + margin-right: 0; +} + .inputLabel { display: inline-block; margin-bottom: 0.25em; diff --git a/src/elements/emby-slider/emby-slider.css b/src/elements/emby-slider/emby-slider.css index f59c2a3cd..7661895f1 100644 --- a/src/elements/emby-slider/emby-slider.css +++ b/src/elements/emby-slider/emby-slider.css @@ -87,10 +87,6 @@ transform: scale(1.3); } -.slider-no-webkit-thumb::-webkit-slider-thumb { - opacity: 0 !important; -} - .mdl-slider::-moz-range-thumb { -moz-appearance: none; width: 1.08em; diff --git a/src/elements/emby-slider/emby-slider.js b/src/elements/emby-slider/emby-slider.js index 03d64719e..e37455dfe 100644 --- a/src/elements/emby-slider/emby-slider.js +++ b/src/elements/emby-slider/emby-slider.js @@ -148,9 +148,6 @@ define(['browser', 'dom', 'layoutManager', 'keyboardnavigation', 'css!./emby-sli this.classList.add('mdl-slider'); this.classList.add('mdl-js-slider'); - if (browser.noFlex) { - this.classList.add('slider-no-webkit-thumb'); - } if (browser.edge || browser.msie) { this.classList.add('slider-browser-edge'); } diff --git a/src/encodingsettings.html b/src/encodingsettings.html index 27cfe404c..8971957b7 100644 --- a/src/encodingsettings.html +++ b/src/encodingsettings.html @@ -5,7 +5,7 @@

${TabTranscoding}

- ${Help} + ${Help}
@@ -21,7 +21,7 @@
diff --git a/src/itemdetails.html b/src/itemdetails.html index 37f1432e2..4d5cab026 100644 --- a/src/itemdetails.html +++ b/src/itemdetails.html @@ -101,7 +101,7 @@ diff --git a/src/libraries/navdrawer/navdrawer.js b/src/libraries/navdrawer/navdrawer.js index 9c15fbc18..d9c246b40 100644 --- a/src/libraries/navdrawer/navdrawer.js +++ b/src/libraries/navdrawer/navdrawer.js @@ -260,7 +260,6 @@ define(["browser", "dom", "css!./navdrawer", "scrollStyles"], function (browser, TouchMenuLA.prototype.showMask = function () { mask.classList.remove("hide"); - mask.offsetWidth; mask.classList.add("backdrop"); }; diff --git a/src/library.html b/src/library.html index 398613f9e..1bca60724 100644 --- a/src/library.html +++ b/src/library.html @@ -6,7 +6,7 @@ ${ButtonScanAllLibraries} - ${Help} + ${Help}
diff --git a/src/list.html b/src/list.html index efac2d891..464cd1553 100644 --- a/src/list.html +++ b/src/list.html @@ -42,10 +42,10 @@
diff --git a/src/livetvsettings.html b/src/livetvsettings.html index bffd6ae4b..02b960f08 100644 --- a/src/livetvsettings.html +++ b/src/livetvsettings.html @@ -3,8 +3,8 @@
-

DVR

- ${Help} +

${HeaderDVR}

+ ${Help}
diff --git a/src/livetvstatus.html b/src/livetvstatus.html index cc5f8ae0b..3aa27637d 100644 --- a/src/livetvstatus.html +++ b/src/livetvstatus.html @@ -10,7 +10,7 @@ - ${Help} + ${Help}
diff --git a/src/livetvtuner.html b/src/livetvtuner.html index 816d30f34..f45a3a1d0 100644 --- a/src/livetvtuner.html +++ b/src/livetvtuner.html @@ -5,7 +5,7 @@

${HeaderLiveTvTunerSetup}

- ${Help} + ${Help}
diff --git a/src/networking.html b/src/networking.html index 2cb354e7d..74ddefb87 100644 --- a/src/networking.html +++ b/src/networking.html @@ -5,88 +5,110 @@

${TabNetworking}

- ${Help} + ${Help}
-
- -
${LanNetworksHelp}
-
-
- -
${LabelBindToLocalNetworkAddressHelp}
-
-
- -
${LabelLocalHttpServerPortNumberHelp}
-
-
- -
${LabelHttpsPortHelp}
-
+
+

${HeaderServerAddressSettings}

-
- -
${AllowRemoteAccessHelp}
-
-
- -
${AllowedRemoteAddressesHelp}
-
-
- -
-
- -
${LabelPublicHttpPortHelp}
-
-
- -
${LabelPublicHttpsPortHelp}
-
- -
- -
${LabelBaseUrlHelp}
-
- -
-
-
- -
- +
+ +
${LabelLocalHttpServerPortNumberHelp}
-
${LabelCustomCertificatePathHelp}
-
-
- -
${LabelCertificatePasswordHelp}
-
+
+ +
${LabelEnableHttpsHelp}
+
-
- -
+
+ +
${LabelHttpsPortHelp}
+
-
- -
${LabelEnableAutomaticPortMapHelp}
-
+
+ +
${LabelBaseUrlHelp}
+
+ +
+ +
${LabelBindToLocalNetworkAddressHelp}
+
+ +
+ +
${LanNetworksHelp}
+
+
+ +
+

${HeaderHttpsSettings}

+ +
+ +
${LabelRequireHttpsHelp}
+
+ +
+
+
+ +
+ +
+
${LabelCustomCertificatePathHelp}
+
+ +
+ +
${LabelCertificatePasswordHelp}
+
+
+ +
+

${HeaderRemoteAccessSettings}

+ +
+ +
${AllowRemoteAccessHelp}
+
+
+ +
${AllowedRemoteAddressesHelp}
+
+
+ +
+ +
+ +
${LabelEnableAutomaticPortMapHelp}
+
+
+ +
${LabelPublicHttpPortHelp}
+
+
+ +
${LabelPublicHttpsPortHelp}
+
+
-
+

${HeaderAddScheduledTaskTrigger}

diff --git a/src/scripts/autobackdrops.js b/src/scripts/autoBackdrops.js similarity index 100% rename from src/scripts/autobackdrops.js rename to src/scripts/autoBackdrops.js diff --git a/src/scripts/browser.js b/src/scripts/browser.js index 276f580df..b1912862b 100644 --- a/src/scripts/browser.js +++ b/src/scripts/browser.js @@ -53,45 +53,6 @@ define([], function () { return false; } - function isStyleSupported(prop, value) { - - if (typeof window === 'undefined') { - return false; - } - - // If no value is supplied, use "inherit" - value = arguments.length === 2 ? value : 'inherit'; - // Try the native standard method first - if ('CSS' in window && 'supports' in window.CSS) { - return window.CSS.supports(prop, value); - } - // Check Opera's native method - if ('supportsCSS' in window) { - return window.supportsCSS(prop, value); - } - - // need try/catch because it's failing on tizen - - try { - // Convert to camel-case for DOM interactions - var camel = prop.replace(/-([a-z]|[0-9])/ig, function (all, letter) { - return (letter + '').toUpperCase(); - }); - // Create test element - var el = document.createElement('div'); - // Check if the property is supported - var support = (camel in el.style); - // Assign the property and value to invoke - // the CSS interpreter - el.style.cssText = prop + ':' + value; - // Ensure both the property and value are - // supported and return - return support && (el.style[camel] !== ''); - } catch (err) { - return false; - } - } - function hasKeyboard(browser) { if (browser.touch) { @@ -283,10 +244,6 @@ define([], function () { browser.tv = isTv(); browser.operaTv = browser.tv && userAgent.toLowerCase().indexOf('opr/') !== -1; - if (!isStyleSupported('display', 'flex')) { - browser.noFlex = true; - } - if (browser.mobile || browser.tv) { browser.slow = true; } diff --git a/src/scripts/browserdeviceprofile.js b/src/scripts/browserDeviceProfile.js similarity index 100% rename from src/scripts/browserdeviceprofile.js rename to src/scripts/browserDeviceProfile.js diff --git a/src/scripts/deleteHelper.js b/src/scripts/deleteHelper.js new file mode 100644 index 000000000..e13eb9c4a --- /dev/null +++ b/src/scripts/deleteHelper.js @@ -0,0 +1,54 @@ +import connectionManager from 'connectionManager'; +import confirm from 'confirm'; +import appRouter from 'appRouter'; +import globalize from 'globalize'; + +function alertText(options) { + + return new Promise(function (resolve, reject) { + + require(['alert'], function (alert) { + alert(options).then(resolve, resolve); + }); + }); +} + +export function deleteItem(options) { + + const item = options.item; + const parentId = item.SeasonId || item.SeriesId || item.ParentId; + + let apiClient = connectionManager.getApiClient(item.ServerId); + + return confirm({ + + title: globalize.translate('HeaderDeleteItem'), + text: globalize.translate('ConfirmDeleteItem'), + confirmText: globalize.translate('Delete'), + primary: 'delete' + + }).then(function () { + + return apiClient.deleteItem(item.Id).then(function () { + + if (options.navigate) { + if (parentId) { + appRouter.showItem(parentId, item.ServerId); + } else { + appRouter.goHome(); + } + } + }, function (err) { + + let result = function () { + return Promise.reject(err); + }; + + return alertText(globalize.translate('ErrorDeletingItem')).then(result, result); + }); + }); +} + +export default { + deleteItem: deleteItem +}; diff --git a/src/components/filedownloader.js b/src/scripts/fileDownloader.js similarity index 100% rename from src/components/filedownloader.js rename to src/scripts/fileDownloader.js diff --git a/src/scripts/keyboardnavigation.js b/src/scripts/keyboardNavigation.js similarity index 100% rename from src/scripts/keyboardnavigation.js rename to src/scripts/keyboardNavigation.js diff --git a/src/scripts/librarybrowser.js b/src/scripts/libraryBrowser.js similarity index 100% rename from src/scripts/librarybrowser.js rename to src/scripts/libraryBrowser.js diff --git a/src/scripts/librarymenu.js b/src/scripts/libraryMenu.js similarity index 99% rename from src/scripts/librarymenu.js rename to src/scripts/libraryMenu.js index a7aaeaa79..9e3f77b31 100644 --- a/src/scripts/librarymenu.js +++ b/src/scripts/libraryMenu.js @@ -408,7 +408,7 @@ define(['dom', 'layoutManager', 'inputManager', 'connectionManager', 'events', ' icon: 'live_tv' }); links.push({ - name: globalize.translate('DVR'), + name: globalize.translate('TabDVR'), href: 'livetvsettings.html', pageIds: ['liveTvSettingsPage'], icon: 'dvr' diff --git a/src/components/multidownload.js b/src/scripts/multiDownload.js similarity index 100% rename from src/components/multidownload.js rename to src/scripts/multiDownload.js diff --git a/src/scripts/routes.js b/src/scripts/routes.js index 31530705c..6f13711b6 100644 --- a/src/scripts/routes.js +++ b/src/scripts/routes.js @@ -38,6 +38,14 @@ define([ controller: 'auth/selectserver', type: 'selectserver' }); + defineRoute({ + path: '/login.html', + autoFocus: false, + anonymous: true, + startup: true, + controller: 'auth/login', + type: 'login' + }); defineRoute({ path: '/forgotpassword.html', anonymous: true, @@ -52,12 +60,6 @@ define([ controller: 'auth/forgotpasswordpin' }); - defineRoute({ - path: '/addplugin.html', - autoFocus: false, - roles: 'admin', - controller: 'dashboard/plugins/add' - }); defineRoute({ path: '/mypreferencesmenu.html', autoFocus: false, @@ -129,19 +131,37 @@ define([ path: '/dlnaprofile.html', autoFocus: false, roles: 'admin', - controller: 'dashboard/dlna/dlnaprofile' + controller: 'dashboard/dlna/profile' }); defineRoute({ path: '/dlnaprofiles.html', autoFocus: false, roles: 'admin', - controller: 'dashboard/dlna/dlnaprofiles' + controller: 'dashboard/dlna/profiles' + }); + defineRoute({ + path: '/addplugin.html', + autoFocus: false, + roles: 'admin', + controller: 'dashboard/plugins/add' + }); + defineRoute({ + path: '/library.html', + autoFocus: false, + roles: 'admin', + controller: 'dashboard/mediaLibrary' + }); + defineRoute({ + path: '/librarydisplay.html', + autoFocus: false, + roles: 'admin', + controller: 'dashboard/librarydisplay' }); defineRoute({ path: '/dlnasettings.html', autoFocus: false, roles: 'admin', - controller: 'dashboard/dlna/dlnasettings' + controller: 'dashboard/dlna/settings' }); defineRoute({ path: '/edititemmetadata.html', @@ -154,6 +174,48 @@ define([ roles: 'admin', controller: 'dashboard/encodingsettings' }); + defineRoute({ + path: '/log.html', + roles: 'admin', + controller: 'dashboard/logs' + }); + defineRoute({ + path: '/metadataimages.html', + autoFocus: false, + roles: 'admin', + controller: 'dashboard/metadataImages' + }); + defineRoute({ + path: '/metadatanfo.html', + autoFocus: false, + roles: 'admin', + controller: 'dashboard/metadatanfo' + }); + defineRoute({ + path: '/notificationsetting.html', + autoFocus: false, + roles: 'admin', + controller: 'dashboard/notifications/notification' + }); + defineRoute({ + path: '/notificationsettings.html', + controller: 'dashboard/notifications/notifications', + autoFocus: false, + roles: 'admin' + }); + defineRoute({ + path: '/playbackconfiguration.html', + autoFocus: false, + roles: 'admin', + controller: 'dashboard/playback' + }); + defineRoute({ + path: '/availableplugins.html', + autoFocus: false, + roles: 'admin', + controller: 'dashboard/plugins/available' + }); + defineRoute({ path: '/home.html', autoFocus: false, @@ -161,6 +223,10 @@ define([ transition: 'fade', type: 'home' }); + defineRoute({ + path: '/search.html', + controller: 'searchpage' + }); defineRoute({ path: '/list.html', autoFocus: false, @@ -169,22 +235,10 @@ define([ }); defineRoute({ path: '/itemdetails.html', - controller: 'itemdetailpage', + controller: 'itemDetails', autoFocus: false, transition: 'fade' }); - defineRoute({ - path: '/library.html', - autoFocus: false, - roles: 'admin', - controller: 'dashboard/medialibrarypage' - }); - defineRoute({ - path: '/librarydisplay.html', - autoFocus: false, - roles: 'admin', - controller: 'dashboard/librarydisplay' - }); defineRoute({ path: '/livetv.html', controller: 'livetv/livetvsuggested', @@ -214,31 +268,6 @@ define([ roles: 'admin', controller: 'livetvtuner' }); - defineRoute({ - path: '/log.html', - roles: 'admin', - controller: 'dashboard/logs' - }); - defineRoute({ - path: '/login.html', - autoFocus: false, - anonymous: true, - startup: true, - controller: 'auth/login', - type: 'login' - }); - defineRoute({ - path: '/metadataimages.html', - autoFocus: false, - roles: 'admin', - controller: 'dashboard/metadataimagespage' - }); - defineRoute({ - path: '/metadatanfo.html', - autoFocus: false, - roles: 'admin', - controller: 'dashboard/metadatanfo' - }); defineRoute({ path: '/movies.html', autoFocus: false, @@ -251,30 +280,6 @@ define([ autoFocus: false, transition: 'fade' }); - defineRoute({ - path: '/notificationsetting.html', - autoFocus: false, - roles: 'admin', - controller: 'dashboard/notifications/notification' - }); - defineRoute({ - path: '/notificationsettings.html', - controller: 'dashboard/notifications/notifications', - autoFocus: false, - roles: 'admin' - }); - defineRoute({ - path: '/playbackconfiguration.html', - autoFocus: false, - roles: 'admin', - controller: 'dashboard/playbackconfiguration' - }); - defineRoute({ - path: '/availableplugins.html', - autoFocus: false, - roles: 'admin', - controller: 'dashboard/plugins/available' - }); defineRoute({ path: '/installedplugins.html', autoFocus: false, @@ -293,10 +298,6 @@ define([ roles: 'admin', controller: 'dashboard/scheduledtasks/scheduledtasks' }); - defineRoute({ - path: '/search.html', - controller: 'searchpage' - }); defineRoute({ path: '/serveractivity.html', autoFocus: false, @@ -313,7 +314,7 @@ define([ path: '/streamingsettings.html', autoFocus: false, roles: 'admin', - controller: 'dashboard/streamingsettings' + controller: 'dashboard/streaming' }); defineRoute({ path: '/tv.html', @@ -321,40 +322,41 @@ define([ controller: 'shows/tvrecommended', transition: 'fade' }); + defineRoute({ path: '/useredit.html', autoFocus: false, roles: 'admin', - controller: 'useredit' + controller: 'dashboard/users/useredit' }); defineRoute({ path: '/userlibraryaccess.html', autoFocus: false, roles: 'admin', - controller: 'userlibraryaccess' + controller: 'dashboard/users/userlibraryaccess' }); defineRoute({ path: '/usernew.html', autoFocus: false, roles: 'admin', - controller: 'usernew' + controller: 'dashboard/users/usernew' }); defineRoute({ path: '/userparentalcontrol.html', autoFocus: false, roles: 'admin', - controller: 'userparentalcontrol' + controller: 'dashboard/users/userparentalcontrol' }); defineRoute({ path: '/userpassword.html', autoFocus: false, - controller: 'userpasswordpage' + controller: 'dashboard/users/userpasswordpage' }); defineRoute({ path: '/userprofiles.html', autoFocus: false, roles: 'admin', - controller: 'userprofilespage' + controller: 'dashboard/users/userprofilespage' }); defineRoute({ @@ -373,7 +375,7 @@ define([ path: '/wizardlibrary.html', autoFocus: false, anonymous: true, - controller: 'medialibrarypage' + controller: 'dashboard/mediaLibrary' }); defineRoute({ path: '/wizardsettings.html', diff --git a/src/components/scrollhelper.js b/src/scripts/scrollHelper.js similarity index 100% rename from src/components/scrollhelper.js rename to src/scripts/scrollHelper.js diff --git a/src/components/serverNotifications.js b/src/scripts/serverNotifications.js similarity index 100% rename from src/components/serverNotifications.js rename to src/scripts/serverNotifications.js diff --git a/src/scripts/settings/userSettings.js b/src/scripts/settings/userSettings.js index 072e3f306..f92262152 100644 --- a/src/scripts/settings/userSettings.js +++ b/src/scripts/settings/userSettings.js @@ -153,6 +153,14 @@ import events from 'events'; return this.get('datetimelocale', false); } + export function chromecastVersion(val) { + if (val !== undefined) { + return this.set('chromecastVersion', val.toString()); + } + + return this.get('chromecastVersion') || 'stable'; + } + export function skipBackLength(val) { if (val !== undefined) { return this.set('skipBackLength', val.toString()); diff --git a/src/scripts/settings/webSettings.js b/src/scripts/settings/webSettings.js index 92093dfbe..d999724af 100644 --- a/src/scripts/settings/webSettings.js +++ b/src/scripts/settings/webSettings.js @@ -2,7 +2,17 @@ let data; function getConfig() { if (data) return Promise.resolve(data); - return fetch('/config.json?nocache=' + new Date().getUTCMilliseconds()).then(function (response) { + return fetch('/config.json?nocache=' + new Date().getUTCMilliseconds()).then(response => { + data = response.json(); + return data; + }).catch(error => { + console.warn('web config file is missing so the template will be used'); + return getDefaultConfig(); + }); +} + +function getDefaultConfig() { + return fetch('/config.template.json').then(function (response) { data = response.json(); return data; }); diff --git a/src/components/shell.js b/src/scripts/shell.js similarity index 100% rename from src/components/shell.js rename to src/scripts/shell.js diff --git a/src/scripts/site.js b/src/scripts/site.js index 3cf605460..aeb651d88 100644 --- a/src/scripts/site.js +++ b/src/scripts/site.js @@ -382,8 +382,8 @@ var AppInfo = {}; define('filesystem', [scriptsPath + '/filesystem'], returnFirstDependency); - define('lazyLoader', [componentsPath + '/lazyloader/lazyloader-intersectionobserver'], returnFirstDependency); - define('shell', [componentsPath + '/shell'], returnFirstDependency); + define('lazyLoader', [componentsPath + '/lazyLoader/lazyLoaderIntersectionObserver'], returnFirstDependency); + define('shell', [scriptsPath + '/shell'], returnFirstDependency); if ('registerElement' in document) { define('registerElement', []); @@ -404,8 +404,8 @@ var AppInfo = {}; define('prompt', [componentsPath + '/prompt/prompt'], returnFirstDependency); define('loading', [componentsPath + '/loading/loading'], returnFirstDependency); - define('multi-download', [componentsPath + '/multidownload'], returnFirstDependency); - define('fileDownloader', [componentsPath + '/filedownloader'], returnFirstDependency); + define('multi-download', [scriptsPath + '/multiDownload'], returnFirstDependency); + define('fileDownloader', [scriptsPath + '/fileDownloader'], returnFirstDependency); define('castSenderApiLoader', [componentsPath + '/castSenderApi'], returnFirstDependency); } @@ -488,16 +488,16 @@ var AppInfo = {}; var list = [ 'components/playback/playaccessvalidation', 'components/playback/experimentalwarnings', - 'components/htmlaudioplayer/plugin', - 'components/htmlvideoplayer/plugin', - 'components/photoplayer/plugin', + 'components/htmlAudioPlayer/plugin', + 'components/htmlVideoPlayer/plugin', + 'components/photoPlayer/plugin', 'components/youtubeplayer/plugin', - 'components/backdropscreensaver/plugin', - 'components/logoscreensaver/plugin' + 'components/backdropScreensaver/plugin', + 'components/logoScreensaver/plugin' ]; if (appHost.supports('remotecontrol')) { - list.push('components/sessionplayer'); + list.push('components/sessionPlayer'); if (browser.chrome || browser.opera) { list.push('components/chromecast/chromecastplayer'); @@ -539,16 +539,16 @@ var AppInfo = {}; window.Emby.Page = appRouter; - require(['emby-button', 'scripts/themeloader', 'libraryMenu', 'scripts/routes'], function () { + require(['emby-button', 'scripts/themeLoader', 'libraryMenu', 'scripts/routes'], function () { Emby.Page.start({ click: false, hashbang: true }); - require(['components/thememediaplayer', 'scripts/autobackdrops']); + require(['components/themeMediaPlayer', 'scripts/autoBackdrops']); if (!browser.tv && !browser.xboxOne && !browser.ps4) { - require(['components/nowplayingbar/nowplayingbar']); + require(['components/nowPlayingBar/nowPlayingBar']); } if (appHost.supports('remotecontrol')) { @@ -637,23 +637,23 @@ var AppInfo = {}; var scriptsPath = getScriptsPath(); var paths = { - browserdeviceprofile: 'scripts/browserdeviceprofile', + browserdeviceprofile: 'scripts/browserDeviceProfile', browser: 'scripts/browser', - libraryBrowser: 'scripts/librarybrowser', + libraryBrowser: 'scripts/libraryBrowser', inputManager: 'scripts/inputManager', datetime: 'scripts/datetime', globalize: 'scripts/globalize', dfnshelper: 'scripts/dfnshelper', - libraryMenu: 'scripts/librarymenu', + libraryMenu: 'scripts/libraryMenu', playlisteditor: componentsPath + '/playlisteditor/playlisteditor', - medialibrarycreator: componentsPath + '/medialibrarycreator/medialibrarycreator', - medialibraryeditor: componentsPath + '/medialibraryeditor/medialibraryeditor', - imageoptionseditor: componentsPath + '/imageoptionseditor/imageoptionseditor', + medialibrarycreator: componentsPath + '/mediaLibraryCreator/mediaLibraryCreator', + medialibraryeditor: componentsPath + '/mediaLibraryEditor/mediaLibraryEditor', + imageoptionseditor: componentsPath + '/imageOptionsEditor/imageOptionsEditor', apphost: componentsPath + '/apphost', visibleinviewport: bowerPath + '/visibleinviewport', - qualityoptions: componentsPath + '/qualityoptions', + qualityoptions: componentsPath + '/qualityOptions', focusManager: componentsPath + '/focusManager', - itemHelper: componentsPath + '/itemhelper', + itemHelper: componentsPath + '/itemHelper', itemShortcuts: componentsPath + '/shortcuts', playQueueManager: componentsPath + '/playback/playqueuemanager', nowPlayingHelper: componentsPath + '/playback/nowplayinghelper', @@ -745,7 +745,7 @@ var AppInfo = {}; // there are several objects that need to be instantiated // TODO find a better way to do this - define('appFooter', [componentsPath + '/appfooter/appfooter'], returnFirstDependency); + define('appFooter', [componentsPath + '/appFooter/appFooter'], returnFirstDependency); define('appFooter-shared', ['appFooter'], createSharedAppFooter); // TODO remove these libraries @@ -780,23 +780,23 @@ var AppInfo = {}; define('chromecastHelper', [componentsPath + '/chromecast/chromecasthelpers'], returnFirstDependency); define('mediaSession', [componentsPath + '/playback/mediasession'], returnFirstDependency); - define('actionsheet', [componentsPath + '/actionsheet/actionsheet'], returnFirstDependency); - define('tunerPicker', [componentsPath + '/tunerpicker'], returnFirstDependency); + define('actionsheet', [componentsPath + '/actionSheet/actionSheet'], returnFirstDependency); + define('tunerPicker', [componentsPath + '/tunerPicker'], returnFirstDependency); define('mainTabsManager', [componentsPath + '/maintabsmanager'], returnFirstDependency); define('imageLoader', [componentsPath + '/images/imageLoader'], returnFirstDependency); define('directorybrowser', [componentsPath + '/directorybrowser/directorybrowser'], returnFirstDependency); - define('metadataEditor', [componentsPath + '/metadataeditor/metadataeditor'], returnFirstDependency); - define('personEditor', [componentsPath + '/metadataeditor/personeditor'], returnFirstDependency); + define('metadataEditor', [componentsPath + '/metadataEditor/metadataEditor'], returnFirstDependency); + define('personEditor', [componentsPath + '/metadataEditor/personEditor'], returnFirstDependency); define('playerSelectionMenu', [componentsPath + '/playback/playerSelectionMenu'], returnFirstDependency); define('playerSettingsMenu', [componentsPath + '/playback/playersettingsmenu'], returnFirstDependency); define('playMethodHelper', [componentsPath + '/playback/playmethodhelper'], returnFirstDependency); define('brightnessOsd', [componentsPath + '/playback/brightnessosd'], returnFirstDependency); define('alphaNumericShortcuts', [scriptsPath + '/alphanumericshortcuts'], returnFirstDependency); - define('multiSelect', [componentsPath + '/multiselect/multiselect'], returnFirstDependency); - define('alphaPicker', [componentsPath + '/alphapicker/alphapicker'], returnFirstDependency); + define('multiSelect', [componentsPath + '/multiSelect/multiSelect'], returnFirstDependency); + define('alphaPicker', [componentsPath + '/alphaPicker/alphaPicker'], returnFirstDependency); define('tabbedView', [componentsPath + '/tabbedview/tabbedview'], returnFirstDependency); define('itemsTab', [componentsPath + '/tabbedview/itemstab'], returnFirstDependency); - define('collectionEditor', [componentsPath + '/collectioneditor/collectioneditor'], returnFirstDependency); + define('collectionEditor', [componentsPath + '/collectionEditor/collectionEditor'], returnFirstDependency); define('serverRestartDialog', [componentsPath + '/serverRestartDialog'], returnFirstDependency); define('playlistEditor', [componentsPath + '/playlisteditor/playlisteditor'], returnFirstDependency); define('recordingCreator', [componentsPath + '/recordingcreator/recordingcreator'], returnFirstDependency); @@ -810,9 +810,9 @@ var AppInfo = {}; define('itemIdentifier', [componentsPath + '/itemidentifier/itemidentifier'], returnFirstDependency); define('itemMediaInfo', [componentsPath + '/itemMediaInfo/itemMediaInfo'], returnFirstDependency); define('mediaInfo', [componentsPath + '/mediainfo/mediainfo'], returnFirstDependency); - define('itemContextMenu', [componentsPath + '/itemcontextmenu'], returnFirstDependency); + define('itemContextMenu', [componentsPath + '/itemContextMenu'], returnFirstDependency); define('imageEditor', [componentsPath + '/imageeditor/imageeditor'], returnFirstDependency); - define('imageDownloader', [componentsPath + '/imagedownloader/imagedownloader'], returnFirstDependency); + define('imageDownloader', [componentsPath + '/imageDownloader/imageDownloader'], returnFirstDependency); define('dom', [scriptsPath + '/dom'], returnFirstDependency); define('playerStats', [componentsPath + '/playerstats/playerstats'], returnFirstDependency); define('searchFields', [componentsPath + '/search/searchfields'], returnFirstDependency); @@ -820,9 +820,9 @@ var AppInfo = {}; define('upNextDialog', [componentsPath + '/upnextdialog/upnextdialog'], returnFirstDependency); define('subtitleAppearanceHelper', [componentsPath + '/subtitlesettings/subtitleappearancehelper'], returnFirstDependency); define('subtitleSettings', [componentsPath + '/subtitlesettings/subtitlesettings'], returnFirstDependency); - define('displaySettings', [componentsPath + '/displaysettings/displaysettings'], returnFirstDependency); - define('playbackSettings', [componentsPath + '/playbacksettings/playbacksettings'], returnFirstDependency); - define('homescreenSettings', [componentsPath + '/homescreensettings/homescreensettings'], returnFirstDependency); + define('displaySettings', [componentsPath + '/displaySettings/displaySettings'], returnFirstDependency); + define('playbackSettings', [componentsPath + '/playbackSettings/playbackSettings'], returnFirstDependency); + define('homescreenSettings', [componentsPath + '/homeScreenSettings/homeScreenSettings'], returnFirstDependency); define('playbackManager', [componentsPath + '/playback/playbackmanager'], getPlaybackManager); define('timeSyncManager', [componentsPath + '/syncplay/timeSyncManager'], returnDefault); define('groupSelectionMenu', [componentsPath + '/syncplay/groupSelectionMenu'], returnFirstDependency); @@ -837,10 +837,10 @@ var AppInfo = {}; define('cardBuilder', [componentsPath + '/cardbuilder/cardBuilder'], returnFirstDependency); define('peoplecardbuilder', [componentsPath + '/cardbuilder/peoplecardbuilder'], returnFirstDependency); define('chaptercardbuilder', [componentsPath + '/cardbuilder/chaptercardbuilder'], returnFirstDependency); - define('deleteHelper', [componentsPath + '/deletehelper'], returnFirstDependency); + define('deleteHelper', [scriptsPath + '/deleteHelper'], returnFirstDependency); define('tvguide', [componentsPath + '/guide/guide'], returnFirstDependency); define('guide-settings-dialog', [componentsPath + '/guide/guide-settings'], returnFirstDependency); - define('loadingDialog', [componentsPath + '/loadingdialog/loadingdialog'], returnFirstDependency); + define('loadingDialog', [componentsPath + '/loadingDialog/loadingDialog'], returnFirstDependency); define('viewManager', [componentsPath + '/viewManager/viewManager'], function (viewManager) { window.ViewManager = viewManager; viewManager.dispatchPageEvents(true); @@ -854,18 +854,17 @@ var AppInfo = {}; define('viewSettings', [componentsPath + '/viewsettings/viewsettings'], returnFirstDependency); define('filterMenu', [componentsPath + '/filtermenu/filtermenu'], returnFirstDependency); define('sortMenu', [componentsPath + '/sortmenu/sortmenu'], returnFirstDependency); - define('idb', [componentsPath + '/idb'], returnFirstDependency); - define('sanitizefilename', [componentsPath + '/sanitizefilename'], returnFirstDependency); + define('sanitizefilename', [componentsPath + '/sanitizeFilename'], returnFirstDependency); define('toast', [componentsPath + '/toast/toast'], returnFirstDependency); - define('scrollHelper', [componentsPath + '/scrollhelper'], returnFirstDependency); - define('touchHelper', [componentsPath + '/touchhelper'], returnFirstDependency); - define('imageUploader', [componentsPath + '/imageuploader/imageuploader'], returnFirstDependency); + define('scrollHelper', [scriptsPath + '/scrollHelper'], returnFirstDependency); + define('touchHelper', [scriptsPath + '/touchHelper'], returnFirstDependency); + define('imageUploader', [componentsPath + '/imageUploader/imageUploader'], returnFirstDependency); define('htmlMediaHelper', [componentsPath + '/htmlMediaHelper'], returnFirstDependency); define('viewContainer', [componentsPath + '/viewContainer'], returnFirstDependency); define('dialogHelper', [componentsPath + '/dialogHelper/dialogHelper'], returnFirstDependency); - define('serverNotifications', [componentsPath + '/serverNotifications'], returnFirstDependency); + define('serverNotifications', [scriptsPath + '/serverNotifications'], returnFirstDependency); define('skinManager', [componentsPath + '/skinManager'], returnFirstDependency); - define('keyboardnavigation', [scriptsPath + '/keyboardnavigation'], returnFirstDependency); + define('keyboardnavigation', [scriptsPath + '/keyboardNavigation'], returnFirstDependency); define('mouseManager', [scriptsPath + '/mouseManager'], returnFirstDependency); define('scrollManager', [componentsPath + '/scrollManager'], returnFirstDependency); define('autoFocuser', [componentsPath + '/autoFocuser'], returnFirstDependency); diff --git a/src/scripts/themeloader.js b/src/scripts/themeLoader.js similarity index 100% rename from src/scripts/themeloader.js rename to src/scripts/themeLoader.js diff --git a/src/components/touchhelper.js b/src/scripts/touchHelper.js similarity index 100% rename from src/components/touchhelper.js rename to src/scripts/touchHelper.js diff --git a/src/strings/ar.json b/src/strings/ar.json index 50b93a830..f93146dc0 100644 --- a/src/strings/ar.json +++ b/src/strings/ar.json @@ -17,7 +17,7 @@ "ButtonAddScheduledTaskTrigger": "إضافة زناد", "ButtonAddServer": "إضافة خادم", "ButtonAddUser": "اضافة مستخدم", - "ButtonArrowDown": "أدنى", + "ButtonArrowDown": "أسفل", "ButtonArrowLeft": "يسار", "ButtonArrowRight": "يمين", "ButtonArrowUp": "أعلى", @@ -234,7 +234,7 @@ "HeaderPlayback": "تشغيل الوسائط", "HeaderPleaseSignIn": "الرجاء تسجيل الدخول", "HeaderPluginInstallation": "تثبيت الملحفات", - "HeaderPreferredMetadataLanguage": "اللغة المفضلة لواصفات البيانات:", + "HeaderPreferredMetadataLanguage": "اللغة المفضلة لواصفات البيانات", "HeaderProfile": "الحساب", "HeaderProfileInformation": "معلومات العريضة", "HeaderProfileServerSettingsHelp": "هذه القيم ستتحكم في كيفية تقديم شكل خادم أمبي في الجهاز", @@ -962,7 +962,7 @@ "AllowMediaConversion": "السماح بتحويل الوسائظ", "AllLanguages": "كل اللغات", "AllEpisodes": "كل الحلقات", - "AllComplexFormats": "جميع التنسيقات المعقدة (ASS ، SSA ، VOBSUB ، PGS ، SUB / IDX ، إلخ.)", + "AllComplexFormats": "جميع التنسيقات المعقدة (ASS ، SSA ، VOBSUB ، PGS ، SUB / IDX ، ...)", "AllChannels": "كل القنوات", "Albums": "ألبومات", "Aired": "عرضت", @@ -1045,5 +1045,112 @@ "Artist": "الفنان", "AllowFfmpegThrottling": "إبطاء الترميزات", "AlbumArtist": "المؤدي", - "Album": "الألبوم" + "Album": "الألبوم", + "Disconnect": "قطع الاتصال", + "Disc": "القرص", + "Disabled": "تعطيل", + "Directors": "المخرجون", + "Director": "المخرج", + "DirectPlaying": "بث بدون تحويل الصيغة", + "DirectStreaming": "البث المباشر", + "DirectStreamHelp2": "البث المباشر للملف يستخدم طاقة معالجة قليلة جدًا دون أي خسارة في جودة الفيديو.", + "DirectStreamHelp1": "الوسائط متوافقة مع الجهاز فيما يتعلق بالدقة ونوع الوسائط (H.264 ، AC3 ، إلخ) ، ولكنها في حاوية ملفات غير متوافقة (mkv ، avi ، wmv ، إلخ). سيتم إعادة حزم الفيديو في الوقت الحقيقي قبل بثه إلى الجهاز.", + "DetectingDevices": "يتم الكشف عن الأجهزة", + "Desktop": "سطح المكتب", + "Descending": "تنازلي", + "Depressed": "منخفض", + "DeinterlaceMethodHelp": "حدد طريقة فك التشابك لاستخدامها عند تحويل محتوى متشابك.", + "DefaultSubtitlesHelp": "يتم تحميل الترجمات استنادًا إلى العلامات الافتراضية والقسرية في البيانات الوصفية المضمنة. سيتم اعتبار تفضيلات اللغة عند توفر خيارات متعددة.", + "DefaultMetadataLangaugeDescription": "هذه هي إعداداتك الافتراضية ويمكن تخصيصها على أساس كل مكتبة.", + "Default": "افتراضي", + "CopyStreamURLError": "توجد مشكله في نسخ الرابط", + "CopyStreamURL": "نسخ عنوان الرابط", + "Continuing": "مستمر", + "CopyStreamURLSuccess": "URL copied successfully.", + "Connect": "اتصال", + "ConfirmEndPlayerSession": "هل تريد اطفاء النظام؟", + "ColorPrimaries": "الألوان", + "ClientSettings": "إعدادات التطبيق", + "ButtonTogglePlaylist": "قائمة التشغيل", + "BoxSet": "طقم", + "ButtonToggleContextMenu": "المزيد", + "ButtonSplit": "تقسيم", + "AllowFfmpegThrottlingHelp": "عندما يتقدم رمز تحويل أو إعادة تحويل بعيدًا بما فيه الكفاية عن موضع التشغيل الحالي ، أوقف العملية مؤقتًا حتى تستهلك موارد أقل. هذا مفيد للغاية عند المشاهدة دون البحث كثيرًا. أوقف هذا إذا واجهت مشاكل في التشغيل.", + "InstallingPackage": "تثبيت {0} (الإصدار {1})", + "Images": "الصور", + "Identify": "التعرف على الوسائط", + "HttpsRequiresCert": "لتمكين الاتصالات الآمنة ، ستحتاج إلى توفير شهادة SSL موثوقة ، مثل Letsencrypt. يرجى إما تقديم شهادة أو تعطيل الاتصالات الآمنة.", + "HeaderServerAddressSettings": "إعدادات عنوان السيرفر", + "HeaderRemoteAccessSettings": "إعدادات الوصول عن بعد", + "HeaderKeepSeries": "حافظ على السلسلة", + "HeaderKeepRecording": "استمر في التسجيل", + "HeaderIdentifyItemHelp": "أدخل معيار بحث واحد أو أكثر. إزالة المعايير لزيادة نتائج البحث.", + "HeaderHttpsSettings": "إعدادات HTTPS", + "HeaderHome": "الصفحة الرئيسية", + "HeaderFetcherSettings": "إعدادات الجلب", + "HeaderFavoritePlaylists": "قوائم التشغيل المفضلة", + "HeaderFavoriteVideos": "مقاطع الفيديو المفضلة", + "HeaderFavoritePeople": "أناس مفضلين", + "HeaderFavoriteMovies": "الأفلام المفضلة", + "HeaderFavoriteBooks": "الكتب المفضلة", + "HeaderExternalIds": "المعرفات الخارجية:", + "HeaderEnabledFieldsHelp": "قم بإلغاء تحديد حقل لقفله ومنع تغيير بياناته.", + "HeaderEnabledFields": "الحقول الممكّنة", + "HeaderEditImages": "تحرير الصور", + "HeaderDVR": "DVR", + "HeaderDownloadSync": "تنزيل ومزامنة", + "HeaderDetectMyDevices": "كشف أجهزتي", + "HeaderDeleteItems": "حذف العناصر", + "HeaderContinueListening": "استمر في الاستماع", + "HeaderConfigureRemoteAccess": "إعدادات الوصول عن بعد", + "HeaderChapterImages": "صور الفصل", + "HeaderCancelSeries": "إلغاء السلسلة", + "HeaderCancelRecording": "إلغاء التسجيل", + "HeaderBlockItemsWithNoRating": "حظر العناصر التي لا تحتوي على معلومات تصنيف أو لم يتم التعرف عليها:", + "HeaderAudioBooks": "الكتب الصوتية", + "HeaderAppearsOn": "يظهر على", + "ApiKeysCaption": "قائمة مفاتيح API الممكّنة حاليًا", + "HeaderAddToPlaylist": "أضف إلى قائمة التشغيل", + "HeaderAddToCollection": "أضف إلى المجموعة", + "HDPrograms": "برامج HD", + "Guide": "الدليل", + "GuestStar": "النجم الضيف", + "GroupVersions": "إصدارات المجموعة", + "GroupBySeries": "تجميع حسب السلسلة", + "Genre": "نوع أدبي", + "General": "الاعدادات العامة", + "FormatValue": "صيغة الملف: {0}", + "Filters": "مرشحات", + "File": "ملف", + "FetchingData": "يتم تنزيل بيانات إضافية", + "Features": "الميزات", + "Favorite": "المفضلة", + "Extras": "مواسم إضافية", + "ErrorDeletingItem": "حدث خطأ في حذف العنصر من سيرفر Jellyfin. يرجى التحقق من أن سيرفر Jellyfin لديه حق الوصول للكتابة إلى مجلد الوسائط وحاول مرة أخرى.", + "Episode": "حلقة", + "EnableThemeVideosHelp": "قم بتشغيل الفيديوهات الرئيسية في الخلفية أثناء تصفح المكتبة.", + "EnableThemeVideos": "الفيديوهات الرئيسية", + "EnableThemeSongsHelp": "قم بتشغيل اللحن الرئيسي في الخلفية أثناء تصفح المكتبة.", + "EnableThemeSongs": "اللحن الرئيسي", + "EnableStreamLoopingHelp": "قم بتمكين هذا إذا كانت عمليات البث المباشر تحتوي فقط على بضع ثوان من البيانات وتحتاج إلى إعادة طلب مستمر. قد يؤدي تمكين هذا عندما لا تكون هناك حاجة إلى مشاكل.", + "EnableStreamLooping": "تكرار البث المباشر", + "EnableHardwareEncoding": "تمكين تشفير الأجهزة", + "EnableExternalVideoPlayersHelp": "سيتم عرض قائمة مشغل خارجي عند بدء تشغيل الفيديو.", + "EnableExternalVideoPlayers": "مشغلات الفيديو الخارجية", + "EnableDisplayMirroring": "اعرض شاشتك على شاشة أخرى", + "EnableColorCodedBackgrounds": "تصنيف الخلفيات حسب اللون", + "EnableCinemaMode": "وضع السينما", + "EnableBackdropsHelp": "اعرض الخلفيات في خلفية بعض الصفحات أثناء تصفح المكتبة.", + "EnableBackdrops": "الخلفيات", + "DownloadsValue": "عدد التنزيلات {0}", + "Download": "تحميل", + "Down": "أسفل", + "DoNotRecord": "لا تسجل", + "DisplayModeHelp": "حدد نمط العرض الذي تريده للواجهة.", + "DisplayMissingEpisodesWithinSeasonsHelp": "يجب تمكين هذا أيضًا لمكتبات التلفزيون في إعدادات السيرفر.", + "DisplayMissingEpisodesWithinSeasons": "عرض الحلقات المفقودة خلال المواسم", + "DisplayInOtherHomeScreenSections": "عرض في أقسام الشاشة الرئيسية مثل أحدث الوسائط واستمر في المشاهدة", + "DisplayInMyMedia": "عرض على الشاشة الرئيسية", + "Display": "عرض", + "Dislike": "لم يعجبنى" } diff --git a/src/strings/cs.json b/src/strings/cs.json index 5e52da3f5..d5527faa7 100644 --- a/src/strings/cs.json +++ b/src/strings/cs.json @@ -17,20 +17,20 @@ "AlwaysPlaySubtitles": "Vždy zobrazovat", "AlwaysPlaySubtitlesHelp": "Titulky odpovídající jazykové předvolbě se načtou bez ohledu na jazyk audia.", "Anytime": "Kdykoliv", - "AroundTime": "Okolo {0}", + "AroundTime": "Okolo", "Art": "Umění", "Artists": "Umělci", "AsManyAsPossible": "Tolikrát jak je možné", "AspectRatio": "Poměr stran", "AttributeNew": "Nové", "Audio": "Zvuk", - "Auto": "Automatizovat", + "Auto": "Automaticky", "Backdrop": "Pozadí", "Backdrops": "Pozadí", "BirthDateValue": "Narozen: {0}", "BirthLocation": "Místo narození", "BirthPlaceValue": "Místo narození: {0}", - "BookLibraryHelp": "Audio a textové knihy jsou podporovány. Přečtěte si {0}pravidla pro názvy knih {1}.", + "BookLibraryHelp": "Audio a textové knihy jsou podporovány. Přečtěte si {0} pravidla pojmenování knih {1}.", "Books": "Knihy", "Box": "Pouzdro", "BoxRear": "Zadní část pouzdra", @@ -60,7 +60,7 @@ "ButtonForgotPassword": "Zapomenuté heslo", "ButtonFullscreen": "Celá obrazovka", "ButtonGotIt": "Mám to", - "ButtonGuide": "Průvodce", + "ButtonGuide": "Programový průvodce", "ButtonHelp": "Nápověda", "ButtonHome": "Domů", "ButtonLearnMore": "Zjistit více", @@ -79,7 +79,7 @@ "ButtonProfile": "Profil", "ButtonQuickStartGuide": "Rychlý průvodce", "ButtonRefresh": "Obnovit", - "ButtonRefreshGuideData": "Obnovit data průvodce", + "ButtonRefreshGuideData": "Obnovit data programového průvodce", "ButtonRemove": "Odstranit", "ButtonRename": "Přejmenovat", "ButtonRepeat": "Opakovat", @@ -102,7 +102,7 @@ "ButtonStop": "Zastavit", "ButtonSubmit": "Potvrdit", "ButtonSubtitles": "Titulky", - "ButtonTrailer": "Ukázka/trailer", + "ButtonTrailer": "Upoutávka", "ButtonUninstall": "Odinstalovat", "ButtonUp": "Zesílit", "ButtonViewWebsite": "Přejít na webové stránky", @@ -118,11 +118,11 @@ "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", - "CinemaModeConfigurationHelp": "Režim Cinema přináší zážitky jako z kina přímo do vašeho obývacího pokoje s možností přehrát trailery a vlastní intra před hlavním programem.", + "CinemaModeConfigurationHelp": "Tento režim přibližuje domácí sledování filmů zážitku v kině díky možnosti přehrát upoutávky k filmům a vlastní úvodní video před hlavním pořadem.", "Collections": "Kolekce", "CommunityRating": "Hodnocení komunity", "Composer": "Skladatel", - "ConfigureDateAdded": "Konfigurace přidání data je definována v nastavení knihovny v ovládacím panelu", + "ConfigureDateAdded": "Konfigurace přidání data je definována v nastavení knihovny na nástěnce serveru Jellyfin", "ConfirmDeleteImage": "Odstranit obrázek?", "ConfirmDeleteItem": "Smazáním položky odstraníte soubor jak z knihovny médií tak ze souborového systému. Jste si jisti, že chcete pokračovat?", "ConfirmDeleteItems": "Odstraněním těchto položek odstraníte vaše média jak z knihovny médií, tak i ze souborového systému. Jste si jisti, že chcete pokračovat?", @@ -167,8 +167,8 @@ "DownloadingDots": "Stahování...", "Downloads": "Stahování", "DrmChannelsNotImported": "Kanál s DRM nebude importován.", - "DropShadow": "Vrhat stín", - "EasyPasswordHelp": "Váš PIN kód je snadné používat pro přístup v režimu offline s podporovanými Jellyfin aplikacemi, může být také použit pro snadné přihlášení v lokální síti.", + "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.", "Edit": "Upravit", "EditImages": "Editace obrázků", "EditSubtitles": "Editovat titulky", @@ -189,16 +189,14 @@ "EndsAtValue": "Končí v {0}", "Episodes": "Epizody", "ErrorAddingListingsToSchedulesDirect": "Došlo k chybě při přidání sestavy do účtu vašeho Direct plánovače. Direct plánovač umožňuje pouze omezený počet sestav na účet. Možná se budete muset přihlásit do webových stránek Direct plánovače a před pokračováním odstranit ostatní výpisy ze svého účtu.", - "ErrorAddingMediaPathToVirtualFolder": "Nastala chyba při přidávání cesty k médiím. Zkontrolujte zda zadaná složka je validní a Jellyfin Server má k této složce přístup.", + "ErrorAddingMediaPathToVirtualFolder": "Při přidávání cesty k médiím došlo k chybě. Zkontrolujte zda je zadaná složka platná a zda má server Jellyfin k této složce přístup.", "ErrorAddingTunerDevice": "Došlo k chybě při přidání zařízení tuneru. Prosím, ujistěte se, že je přístupný a zkuste to znovu.", "ErrorAddingXmlTvFile": "Nastala chyba při přístupu k XMLTV souboru. Ujistěte se, že soubor existuje a zkuste jej znovu otevřít.", - "ErrorDeletingItem": "Nastala chyba při mazání položky z Jellyfin Serveru. Zkontrolujte prosím, že Jellyfin Server má oprávnění k zápisu do složky médií a zkuste to prosím znovu.", + "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é.", - "ErrorReachingJellyfinConnect": "Došlo k chybě při navázání spojení k serveru Jellyfin Connect. Ujistěte se, zda je funkční připojení k internetu a zkuste to znovu.", - "ErrorRemovingJellyfinConnectAccount": "Nastala chyba při odebrání účtu Jellyfin Connect. Zkontrolujte zda máte aktivní internetové připojení a zkuste znovu.", "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", "ExtraLarge": "Extra velký", @@ -223,7 +221,7 @@ "Genres": "Žánry", "GroupVersions": "Skupinové verze", "GuestStar": "Hostující hvězda", - "Guide": "Průvodce", + "Guide": "Programový průvodce", "GuideProviderLogin": "Přihlášení", "GuideProviderSelectListings": "Výběr zobrazení", "H264CrfHelp": "Constant Rate faktor (CRF) je výchozím nastavení kvality pro kodér x264. Můžete nastavit hodnoty mezi 0 a 51, kde nižší hodnoty vedou lepší kvalitě (na úkor větší velikosti souborů). Rozumné hodnoty jsou mezi 18 a 28. Výchozí hodnota pro x264 je 23, který můžete použít jako výchozí bod.", @@ -247,7 +245,7 @@ "HeaderAlert": "Upozornění", "HeaderApiKey": "Klíč Api", "HeaderApiKeys": "Klíče Api", - "HeaderApiKeysHelp": "Externí aplikace musí mít API klíč, aby mohla komunikovat s Jellyfin serverem. Klíče jsou vydávány přihlášením pomocí účtu Jellyfin, nebo manuální žádostí o klíč.", + "HeaderApiKeysHelp": "Externí aplikace musí mít klíč k API, aby mohly komunikovat se serverem Jellyfin. Klíče jsou vydávány přihlášením k účtu Jellyfin nebo ruční žádostí o klíč.", "HeaderApp": "Aplikace", "HeaderAudioBooks": "Audio knihy", "HeaderAudioSettings": "Nastavení zvuku", @@ -299,7 +297,7 @@ "HeaderForgotPassword": "Zapomenuté heslo", "HeaderFrequentlyPlayed": "Nejčastěji přehráváno", "HeaderGenres": "Žánry", - "HeaderGuideProviders": "Průvodce poskytovatelů", + "HeaderGuideProviders": "Poskytovatelé programových průvodců", "HeaderHttpHeaders": "Http hlavičky", "HeaderIdentification": "Identifikace", "HeaderIdentificationCriteriaHelp": "Zadejte alespoň jedno identifikační kritérium.", @@ -354,7 +352,7 @@ "HeaderPreferredMetadataLanguage": "Preferovaný jazyk metadat", "HeaderProfile": "Profil", "HeaderProfileInformation": "Informace o profilu", - "HeaderProfileServerSettingsHelp": "Tyto hodnoty určují, jak se Jellyfin Server bude prezentovat v zařízení.", + "HeaderProfileServerSettingsHelp": "Tyto hodnoty určují, jak se server Jellyfin bude zobrazovat v zařízení.", "HeaderRecentlyPlayed": "Naposledy přehráváno", "HeaderRecordingOptions": "Nastavení nahrávání", "HeaderRecordingPostProcessing": "Následné zpracování nahrávek", @@ -425,7 +423,7 @@ "Identify": "Identifikuj", "Images": "Obrázky", "ImportFavoriteChannelsHelp": "Pokud je povoleno, jen kanály označené jako oblíbené budou importována na zařízení tuneru.", - "ImportMissingEpisodesHelp": "Pokud je povoleno, budou informace o chybějících epizodách importovány do databáze Jellyfin a zobrazí se v sezónách seriálu. To může způsobit podstatně delší skenování knihovny.", + "ImportMissingEpisodesHelp": "Informace o chybějících epizodách budou importovány do databáze Jellyfin a zobrazí se u sezón a seriálů. Skenování knihovny se tím může značně prodloužit.", "InstallingPackage": "Instalace {0} (Verze {1})", "InstantMix": "Okamžité míchání", "ItemCount": "{0} položek", @@ -436,7 +434,6 @@ "LabelAccessDay": "Den týdne:", "LabelAccessEnd": "Konec:", "LabelAccessStart": "Začátek:", - "LabelAddConnectSupporterHelp": "Chcete-li přidat uživatele, který není uveden v seznamu, budete muset nejprve propojit svůj účet Jellyfin Connect ze strany profilu uživatele.", "LabelAddedOnDate": "Přidáno {0}", "LabelAirDate": "Dny vysílání:", "LabelAirDays": "Vysíláno:", @@ -464,7 +461,7 @@ "LabelAudio": "Zvuk", "LabelAudioLanguagePreference": "Preferovaný jazyk zvuku:", "LabelBindToLocalNetworkAddress": "Vázat na místní síťovou adresu:", - "LabelBindToLocalNetworkAddressHelp": "Volitelné. Přepsat lokální IP adresu vazanou na http server. Pokud je ponecháno prázdné, server se sváže ke všem dostupným adresám (aplikace bude dostupná na všech síťových zařízení, které server nabízí). Změna této hodnoty vyžaduje restartování Jellyfin Serveru.", + "LabelBindToLocalNetworkAddressHelp": "Volitelné. Změní místní IP adresu, na kterou se váže server HTTP. Pokud je ponecháno prázdné, server bude svázán se všemi dostupnými adresami. Změna této hodnoty vyžaduje restartování serveru Jellyfin.", "LabelBirthDate": "Datum narození:", "LabelBirthYear": "Rok narození:", "LabelBlastMessageInterval": "Doba zobrazení zprávy (v sekundách)", @@ -484,7 +481,7 @@ "LabelCustomDeviceDisplayName": "Jméno pro zobrazení:", "LabelCustomDeviceDisplayNameHelp": "Nahradit vlastním názvem zobrazení nebo ponechte prázdné, aby název byl určen zařízením.", "LabelCustomRating": "Vlastní hodnocení:", - "LabelDashboardTheme": "Téma hlavní nabídky serveru:", + "LabelDashboardTheme": "Téma nástěnky serveru:", "LabelDateAdded": "Datum přidání:", "LabelDateAddedBehavior": "Nový obsah řadit dle data:", "LabelDateAddedBehaviorHelp": "Pokud je hodnota metadat přítomna, bude vždy použita před některou z těchto možností.", @@ -498,7 +495,7 @@ "LabelDidlMode": "DIDL režim:", "LabelDiscNumber": "Číslo disku:", "LabelDisplayLanguage": "Jazyk rozhraní:", - "LabelDisplayLanguageHelp": "Překlad Jellyfin je projekt ve fázi neustálého vývoje.", + "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í:", @@ -511,16 +508,16 @@ "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": "Vrhat stín:", + "LabelDropShadow": "Typ zvýraznění titulků:", "LabelEasyPinCode": "Kód Easy pin:", "LabelEmbedAlbumArtDidl": "Vložit alba do DIDL", "LabelEmbedAlbumArtDidlHelp": "Některá zařízení preferují tento způsob pro získání alba. Jiné mohou selhat pokud máte tuto volbu povolenu.", "LabelEnableAutomaticPortMap": "Povolit automatické mapování portů", - "LabelEnableAutomaticPortMapHelp": "Pokusí se automaticky namapovat veřejný port místního portu přes UPnP na vašem routeru. Nemusí fungovat u některých modelů routeru. Změny se projeví až po restartování serveru.", + "LabelEnableAutomaticPortMapHelp": "Automaticky zpřístupní port na vašem routeru pomocí technologie UPnP. Nemusí fungovat u některých routerů. Změny se projeví až po restartování serveru.", "LabelEnableBlastAliveMessages": "Vytroubit zprávu do světa", - "LabelEnableBlastAliveMessagesHelp": "Povolit v případě, že server není zjistitelný jinými UPnP zařízeními v síti.", + "LabelEnableBlastAliveMessagesHelp": "Tuto možnost povolte, pokud není server zjistitelný jinými UPnP zařízeními v síti.", "LabelEnableDlnaClientDiscoveryInterval": "Čas pro vyhledání klienta (sekund)", - "LabelEnableDlnaClientDiscoveryIntervalHelp": "Určuje dobu trvání v sekundách mezi SSDP vyhledávání prováděných pomocí Jellyfin.", + "LabelEnableDlnaClientDiscoveryIntervalHelp": "Určuje interval mezi vyhledáváním SSDP, které Jellyfin provádí.", "LabelEnableDlnaDebugLogging": "Povolit DLNA protokolování (pro ladění)", "LabelEnableDlnaDebugLoggingHelp": "Vytváří velké soubory se záznamy a doporučuje se používat pouze pro potřeby odstraňování problémů.", "LabelEnableDlnaPlayTo": "Povolit DLNA přehrávání", @@ -546,8 +543,6 @@ "LabelFormat": "Formát:", "LabelFree": "Zdarma", "LabelFriendlyName": "Přívětivý název:", - "LabelFriendlyServerName": "Název serveru:", - "LabelFriendlyServerNameHelp": "Toto jméno bude použito jako identifikace serveru, ponecháte-li prázdné bude použit název počítače.", "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.", @@ -557,7 +552,7 @@ "LabelHardwareAccelerationTypeHelp": "Hardwarová akcelerace vyžaduje další konfiguraci.", "LabelHomeScreenSectionValue": "Sekce domovské obrazovky {0}:", "LabelHttpsPort": "Lokální HTTPS port:", - "LabelHttpsPortHelp": "Číslo portu TCP, ke kterému by se měl připojit HTTPS server Jellyfin.", + "LabelHttpsPortHelp": "Číslo portu TCP, ke kterému by se měl HTTPS server Jellyfin připojit.", "LabelIconMaxHeight": "Maximální výška ikon:", "LabelIconMaxHeightHelp": "Maximální rozlišení ikon nabízené prostřednictvím upnp:icon.", "LabelIconMaxWidth": "Maximální šířka ikon:", @@ -580,10 +575,9 @@ "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:", - "LabelLimitIntrosToUnwatchedContent": "Přehrávat trailery pouze u nezhlédnutého obsahu", - "LabelLineup": "Hlavní linie:", + "LabelLineup": "V pořadí:", "LabelLocalHttpServerPortNumber": "Lokální HTTP port:", - "LabelLocalHttpServerPortNumberHelp": "Číslo portu TCP, ke kterému by se měl připojit HTTP server Jellyfin.", + "LabelLocalHttpServerPortNumberHelp": "Číslo portu TCP, ke kterému by se měl HTTP server Jellyfin připojit.", "LabelLockItemToPreventChanges": "Uzamknout položku pro zabránění budoucích změn", "LabelLoginDisclaimer": "Zřeknutí se následujících práv při přihlášení:", "LabelLoginDisclaimerHelp": "Zpráva, která se zobrazí v dolní části přihlašovací stránky.", @@ -634,8 +628,8 @@ "LabelNext": "Další", "LabelNotificationEnabled": "Povolit toto oznámení", "LabelNumber": "Číslo:", - "LabelNumberOfGuideDays": "Počet dnů pro stažení dat průvodce:", - "LabelNumberOfGuideDaysHelp": "Stažením více dnů dat průvodce umožní v plánech nastavit budoucí nahrávání více do budoucna. Může však déle trvat stažení těchto dat. Auto vybere možnost podle počtu kanálů.", + "LabelNumberOfGuideDays": "Počet dnů programového průvodce ke stažení:", + "LabelNumberOfGuideDaysHelp": "Stažení více dnů televizního průvodce umožňuje naplánovat nahrávání na delší dobu dopředu, ale trvá déle. Automatické nastavení určí počet podle počtu kanálů.", "LabelOptionalNetworkPath": "(Nepovinné) Sdílená síťová složka:", "LabelOriginalAspectRatio": "Původní poměr stran:", "LabelOriginalTitle": "Originální název:", @@ -653,7 +647,7 @@ "LabelPostProcessorArguments": "Argumenty příkazové řádky pro následné zpracování:", "LabelPostProcessorArgumentsHelp": "Použij {path} jako cestu k nahrávanému souboru.", "LabelPreferredDisplayLanguage": "Preferovaný jazyk zobrazení:", - "LabelPreferredDisplayLanguageHelp": "Překlad Jellyfin je projekt ve fázi neustálého vývoje.", + "LabelPreferredDisplayLanguageHelp": "Překlad projektu Jellyfin se neustále vyvíjí.", "LabelPreferredSubtitleLanguage": "Preferovaný jazyk titulků:", "LabelPrevious": "Předchozí", "LabelProfileAudioCodecs": "Audio kodeky:", @@ -696,7 +690,7 @@ "LabelSkipIfAudioTrackPresent": "Přeskočit, pokud výchozí zvuková stopa odpovídá jazyku stahování", "LabelSkipIfAudioTrackPresentHelp": "Zrušte zaškrtnutí pro zobrazení titulků u všech videí, bez ohledu na jazyk zvuku.", "LabelSkipIfGraphicalSubsPresent": "Přeskočit, jestliže video obsahuje vložené titulky", - "LabelSkipIfGraphicalSubsPresentHelp": "Udržením textových verzí titulků bude mít za následek efektivnější dodávku a sníží tím pravděpodobnost překódování videa.", + "LabelSkipIfGraphicalSubsPresentHelp": "Ponecháním textových titulků je možné dosáhnout efektivnějšího přenosu videa a snížení pravděpodobnosti, že bude video nutné překódovat.", "LabelSonyAggregationFlags": "Agregační příznaky Sony:", "LabelSonyAggregationFlagsHelp": "Určuje obsah prvku aggregationFlags ve jmenném prostoru urn:schemas-sonycom:av.", "LabelSortTitle": "Třídit dle názvu:", @@ -796,13 +790,13 @@ "MessageConfirmProfileDeletion": "Jste si jisti, že chcete smazat tento profil?", "MessageConfirmRecordingCancellation": "Zrušit nahrávání?", "MessageConfirmRemoveMediaLocation": "Jste si jist, že chcete odstranit toto umístění?", - "MessageConfirmRestart": "Jste si jist, že chcete restartovat Jellyfin server?", - "MessageConfirmRevokeApiKey": "Jste si jisti, že chcete odvolat tento klíč API? Připojení k aplikaci k Jellyfin Server bude násilně ukončeno.", + "MessageConfirmRestart": "Opravdu chcete restartovat server Jellyfin?", + "MessageConfirmRevokeApiKey": "Opravdu chcete zrušit tento klíč k API? Připojení dané aplikace k serveru Jellyfin bude náhle ukončeno.", "MessageConfirmShutdown": "Jste si jisti, že chcete server vypnout?", "MessageContactAdminToResetPassword": "Kontaktujte, prosím, vašeho systémového administrátora k obnovení vašeho hesla.", "MessageCreateAccountAt": "Vytvořit účet v {0}", "MessageDeleteTaskTrigger": "Opravdu si přejete odebrat spouštění úlohy?", - "MessageDirectoryPickerBSDInstruction": "Pro BSD, budete možná muset nakonfigurovat úložiště přímo ve Vašem FreeNAS Jail aby k nim Jellyfin povolil přístup.", + "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.", @@ -818,15 +812,13 @@ "MessageNoAvailablePlugins": "Nejsou dostupné žádné zásuvné moduly.", "MessageNoMovieSuggestionsAvailable": "Žádné návrhy nejsou v současnosti k dispozici. Začněte sledovat a hodnotit filmy, a pak se vám doporučení zobrazí.", "MessageNoPluginsInstalled": "Nemáte instalovány žádné zásuvné moduly.", - "MessageNoTrailersFound": "Nebyly nalezeny žádné ukázky z filmů (trailery). Nainstalujte trailer kanál pro lepší zážitek z filmu přidáním knihovny internetových trailerů.", + "MessageNoTrailersFound": "Nebyly nalezeny žádné upoutávky k filmu. Chcete-li si zlepšit zážitek ze sledování, nainstalujte si kanál s upoutávkami.", "MessageNothingHere": "Tady nic není.", "MessagePasswordResetForUsers": "Obnovení hesla bylo provedeno následujícími uživateli. Nyní se mohou přihlásit pomocí kódů PIN, které byly použity k provedení resetu.", "MessagePlayAccessRestricted": "Přehrávání tohoto obsahu je aktuálně omezeno. Další informace získáte od správce serveru.", "MessagePleaseEnsureInternetMetadata": "Prosím zkontrolujte, zda máte povoleno stahování metadat z internetu.", - "MessagePleaseRestart": "Pro dokončení aktualizací, prosím, restartujte.", - "MessagePleaseRestartServerToFinishUpdating": "Restartujte, prosím, server pro aplikaci aktualizací.", "MessagePluginConfigurationRequiresLocalAccess": "Pro konfiguraci zásuvného modulu se přihlaste přímo na lokální server.", - "MessagePluginInstallDisclaimer": "Zasuvné moduly vytvořené členy Jellyfin komunity jsou skvělý způsob, jak zvýšit svůj Jellyfin prožitek pomocí doplňkových funkcí :-) Před instalací, se prosím seznamte se všemi dopady, které mohou mít na Jellyfin Server, jako je například delší prohledávání knihovny, další zpracování na pozadí, a snížení stability systému.", + "MessagePluginInstallDisclaimer": "Zásuvné moduly vytvořené členy komunity Jellyfin jsou skvělým způsobem, jak si zlepšit prožitek z používání projektu Jellyfin. Před instalací se prosím seznamte se všemi dopady, které mohou doplňky mít na server Jellyfin, např.: pomalejší skenování knihovny, další zpracování na pozadí nebo snížení stability systému.", "MessageReenableUser": "Viz níže pro znovuzapnutí", "MessageSettingsSaved": "Nastavení uloženo.", "MessageTheFollowingLocationWillBeRemovedFromLibrary": "Z vaší knihovny budou odstraněny následující zdroje médií:", @@ -844,7 +836,7 @@ "Mobile": "Mobilní", "Monday": "Pondělí", "MoreFromValue": "Více z {0}", - "MoreUsersCanBeAddedLater": "Další uživatele můžete přidat později na Hlavní nabídce.", + "MoreUsersCanBeAddedLater": "Další uživatele můžete přidat později na nástěnce serveru.", "MoveLeft": "Posunout vlevo", "MoveRight": "Posunout vpravo", "Movies": "Filmy", @@ -875,11 +867,11 @@ "OptionAlbumArtist": "Umělec Alba", "OptionAllUsers": "Všichni uživatelé", "OptionAllowAudioPlaybackTranscoding": "Povolit přehrávání audia, které vyžaduje překódování", - "OptionAllowBrowsingLiveTv": "Povolit přístup k Live TV", + "OptionAllowBrowsingLiveTv": "Povolit přístup k televiznímu vysílání", "OptionAllowContentDownloading": "Povolit stahování médií", "OptionAllowLinkSharing": "Povolit sdílení pomocí sociálních médií", "OptionAllowLinkSharingHelp": "Sdílené jsou pouze webové stránky obsahující informace o médiích. Obsah souboru není nikdy sdílen veřejně. Sdílené položky jsou časově omezené a jejich platnost vyprší za {0} dny.", - "OptionAllowManageLiveTv": "Povolit správu nahrávání z Live TV", + "OptionAllowManageLiveTv": "Povolit správu nahrávání z televize", "OptionAllowMediaPlayback": "Povolit přehrávání médií", "OptionAllowRemoteControlOthers": "Povolit vzdálené ovládání ostatních uživatelů", "OptionAllowRemoteSharedDevices": "Povolit vzdálené ovládání sdílených zařízení", @@ -897,7 +889,7 @@ "OptionAutomaticallyGroupSeriesHelp": "Pokud je povoleno, budou díly seriálu uložené ve více adresářích v této knihovně, automaticky sloučeny k jednomu seriálu.", "OptionBlockBooks": "Knihy", "OptionBlockChannelContent": "Obsah internetového kanálu", - "OptionBlockLiveTvChannels": "Kanály Live TV", + "OptionBlockLiveTvChannels": "Televizní kanály", "OptionBlockMovies": "Filmy", "OptionBlockMusic": "Hudba", "OptionBlockTrailers": "Upoutávky", @@ -921,7 +913,7 @@ "OptionDownloadBackImage": "Zadek", "OptionDownloadDiscImage": "Disk", "OptionDownloadImagesInAdvance": "Stáhnout obrázky pokročilejším způsobem", - "OptionDownloadImagesInAdvanceHelp": "Ve výchozím nastavení se většina obrázků stahuje pouze na žádost aplikace Jellyfin. Povolte tuto možnost pro stažení všech obrázků předem, když se importují nová média. To může způsobit výrazně delší skenování knihovny.", + "OptionDownloadImagesInAdvanceHelp": "Ve výchozím nastavení se většina obrázků stahuje pouze na žádost aplikace Jellyfin. Povolením této možnosti dojde ke stažení všech obrázků předem současně s importem nových médií. Může způsobit výrazně delší skenování knihoven.", "OptionDownloadMenuImage": "Nabídka", "OptionDownloadPrimaryImage": "Primární", "OptionDownloadThumbImage": "Miniatura", @@ -931,7 +923,7 @@ "OptionEnableAccessToAllChannels": "Povolit přístup ze všech kanálů", "OptionEnableAccessToAllLibraries": "Povolit přístup ke všem knihovnám", "OptionEnableExternalContentInSuggestions": "Aktivovat externí obsah v návrzích", - "OptionEnableExternalContentInSuggestionsHelp": "Povolit zahrnutí internetových upoutávek a živých televizních programů do navrhovaného obsahu.", + "OptionEnableExternalContentInSuggestionsHelp": "Povolit zahrnutí internetových upoutávek a televizního vysílání do navrhovaného obsahu.", "OptionEnableForAllTuners": "Povolit pro všechna zařízení tunerů", "OptionEnableM2tsMode": "Povolit M2ts mód", "OptionEnableM2tsModeHelp": "Povolit režim M2TS při kódování do MPEGTS.", @@ -947,7 +939,7 @@ "OptionHasSubtitles": "Titulky", "OptionHasThemeSong": "Tematická hudba", "OptionHasThemeVideo": "Tematické video", - "OptionHasTrailer": "Ukázka/trailer", + "OptionHasTrailer": "Upoutávka", "OptionHideUser": "Skrýt tohoto uživatele z přihlašovacích obrazovek", "OptionHideUserFromLoginHelp": "Vhodné pro soukromé a administrátorské účty. Pro přihlášení musí uživatel manuálně zadat uživatelské jméno a heslo.", "OptionHlsSegmentedSubtitles": "Segmentované titulky HLS", @@ -959,7 +951,7 @@ "OptionMissingEpisode": "Chybějící episody", "OptionMonday": "Pondělí", "OptionNameSort": "Název", - "OptionNew": "Nový...", + "OptionNew": "Nový…", "OptionNone": "Žádný", "OptionOnAppStartup": "Při spuštění aplikace", "OptionOnInterval": "V intervalu", @@ -977,12 +969,12 @@ "OptionReportByteRangeSeekingWhenTranscoding": "Hlásit, že server podporuje vyhledávání bajtů při překódování", "OptionReportByteRangeSeekingWhenTranscodingHelp": "Tento krok je nutný pro některá zařízení, které nemají moc dobrý time seek.", "OptionRequirePerfectSubtitleMatch": "Stahovat jen titulky, které perfektně sedí k mým video souborům", - "OptionResElement": "Zdrojový element", + "OptionResElement": "Prvek \"res\"", "OptionResumable": "Pozastavavitelný", "OptionRuntime": "Délka", "OptionSaturday": "Sobota", "OptionSaveMetadataAsHidden": "Ukládat metadata a obrázky jako skryté soubory", - "OptionSaveMetadataAsHiddenHelp": "Změna bude platit pro nově uložená metadata do budoucna. Existující soubory metadat budou aktualizovány příště, jakmile budou uloženy Jellyfin Serverem.", + "OptionSaveMetadataAsHiddenHelp": "Změna se projeví u všech nově uložených metadat. Existující soubory metadat se aktualizují při příštím uložení serverem Jellyfin.", "OptionSpecialEpisode": "Speciální", "OptionSubstring": "subřetězec", "OptionSunday": "Neděle", @@ -1030,7 +1022,7 @@ "PleaseAddAtLeastOneFolder": "Přidejte prosím nejméně jednu složku do této knihovny pomocí tlačítka Přidat.", "PleaseConfirmPluginInstallation": "Pro potvrzení, že jste si přečetli text výše a chcete pokračovat v instalaci zásuvných modulů, klikněte na tlačítko OK.", "PleaseEnterNameOrId": "Prosím, zadejte název nebo externí Id.", - "PleaseRestartServerName": "Prosím, restartujte Jellyfin Server - {0}.", + "PleaseRestartServerName": "Prosím restartuje server Jellyfin - {0}.", "PleaseSelectTwoItems": "Vyberte nejméně dvě položky prosím.", "Premiere": "Premiéra", "Premieres": "Premiéry", @@ -1053,7 +1045,7 @@ "RecordingScheduled": "Plán nahrávání.", "Recordings": "Nahrávky", "Refresh": "Obnovit", - "RefreshDialogHelp": "Metadata se aktualizují na základě nastavení a internetových služeb, které jsou povoleny v nastavení Jellyfin Server.", + "RefreshDialogHelp": "Metadata se aktualizují na základě nastavení a internetových služeb, které jsou povoleny na nástěnce serveru Jellyfin.", "RefreshMetadata": "Obnovit metadata", "RefreshQueued": "Obnovení zařazeno.", "ReleaseDate": "Datum vydání", @@ -1067,7 +1059,7 @@ "RepeatOne": "Opakovat jeden", "ReplaceAllMetadata": "Přepsat všechna metadata", "ReplaceExistingImages": "Nahradit existující obrázky", - "RestartPleaseWaitMessage": "Počkejte prosím, než se Jellyfin Server vypne a restartuje. Může to trvat pár minut.", + "RestartPleaseWaitMessage": "Počkejte prosím, než se server Jellyfin vypne a restartuje. Může to trvat několik minut.", "ResumeAt": "Obnovit přehrávání od {0}", "Rewind": "Přetočit zpět", "RunAtStartup": "Spustit po startu", @@ -1089,9 +1081,9 @@ "SeriesRecordingScheduled": "Plán nahrávání seriálu.", "SeriesSettings": "Nastavení seriálu", "SeriesYearToPresent": "{0} - Současnost", - "ServerNameIsRestarting": "Jellyfin Server - {0} je restartován.", - "ServerNameIsShuttingDown": "Jellyfin Server - {0} je vypínán.", - "ServerUpdateNeeded": "Tento Jellyfin Server je třeba aktualizovat. Chcete-li stáhnout nejnovější verzi, navštivte prosím {0}", + "ServerNameIsRestarting": "Server Jellyfin - {0} se restartuje.", + "ServerNameIsShuttingDown": "Server Jellyfin - {0} se vypíná.", + "ServerUpdateNeeded": "Tento server Jellyfin je nutné aktualizovat. Chcete-li stáhnout nejnovější verzi, navštivte prosím {0}", "Settings": "Nastavení", "SettingsSaved": "Nastavení uloženo.", "SettingsWarning": "Změna těchto hodnot může způsobit nestabilitu nebo selhání připojení. Pokud narazíte na nějaké problémy, doporučujeme jej změnit zpět na výchozí hodnotu.", @@ -1126,13 +1118,13 @@ "TabCodecs": "Kodeky", "TabCollections": "Kolekce", "TabContainers": "Obaly", - "TabDashboard": "Hlavní nabídka", + "TabDashboard": "Nástěnka", "TabDevices": "Zařízení", "TabDisplay": "Zobrazení", "TabEpisodes": "Epizody", "TabFavorites": "Oblíbené", "TabGenres": "Žánry", - "TabGuide": "Průvodce", + "TabGuide": "Programový průvodce", "TabLatest": "Nejnovější", "TabLogs": "Záznamy", "TabMovies": "Filmy", @@ -1160,7 +1152,7 @@ "TabSongs": "Skladby", "TabStreaming": "Streamování", "TabSuggestions": "Návrhy", - "TabTrailers": "Ukázky/trailery", + "TabTrailers": "Upoutávky", "TabTranscoding": "Překódování", "TabUpcoming": "Nové", "TabUsers": "Uživatelé", @@ -1182,7 +1174,7 @@ "Unrated": "Nehodnoceno", "Up": "Nahoru", "Upload": "Nahrát", - "UserProfilesIntro": "Jellyfin zahrnuje podporu uživatelských profilů s podrobným nastavením zobrazení, stavem přehrávání a rodičovskou kontrolou.", + "UserProfilesIntro": "Jellyfin podporuje uživatelské profily s podrobným nastavením zobrazení, stavem přehrávání a rodičovskou kontrolou.", "ValueAlbumCount": "{0} alb", "ValueAudioCodec": "Audio kodeky: {0}", "ValueCodec": "Kodek: {0}", @@ -1208,18 +1200,17 @@ "Watched": "Zhlédnuto", "Wednesday": "Středa", "WelcomeToProject": "Vítejte v Jellyfin!", - "WizardCompleted": "To je vše, co nyní potřebujeme. Jellyfin začala shromažďovat informace o vaší knihovně médií. Podívejte se na některé z našich aplikací, a potom klepněte na tlačítko Dokončit pro zobrazení hlavního panelu.", + "WizardCompleted": "To je zatím vše, co potřebujeme. Server Jellyfin začal shromažďovat informace o vaší knihovně médií. Vyzkoušejte některé z našich aplikací a potom klikněte na tlačítko Dokončit pro zobrazení nástěnky.", "Writer": "Napsal", "XmlDocumentAttributeListHelp": "Tyto atributy jsou použity na kořenový prvek každé XML odpovědi.", "XmlTvKidsCategoriesHelp": "Programy s těmito kategoriemi budou zobrazeny jako programy pro děti. Více kategorií oddělte \"|\".", "XmlTvMovieCategoriesHelp": "Programy s těmito kategoriemi budou zobrazeny jako filmy. Více kategorií oddělte \"|\".", "XmlTvNewsCategoriesHelp": "Programy s těmito kategoriemi budou zobrazeny jako zpravodajské pořady. Více kategorií oddělte \"|\".", - "XmlTvPathHelp": "Cesta k souboru XMLTV. Jellyfin tento soubor načte a pravidelně jej kontroluje, zda neobsahuje aktualizace. Jste zodpovědní za vytvoření a aktualizaci souboru.", + "XmlTvPathHelp": "Cesta k souboru XMLTV. Jellyfin tento soubor načte a bude pravidelně kontrolovat, zda neobsahuje aktualizace. Vytvoření a aktualizace souboru je na uživateli.", "XmlTvSportsCategoriesHelp": "Programy s těmito kategoriemi budou zobrazeny jako sportovní pořady. Více kategorií oddělte \"|\".", "Yes": "Ano", "Yesterday": "Včera", "Absolute": "Absolutní", - "AddUserByManually": "Přidat místního uživatele ručním zadáním informací.", "AirDate": "Datum vysílání", "Aired": "Vysíláno", "Alerts": "Upozornění", @@ -1229,26 +1220,22 @@ "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", - "AllowOnTheFlySubtitleExtractionHelp": "Vložené titulky mohou být extrahovány z videa a dodávány do aplikací ve formě prostého textu, aby se zabránilo překódování videa. V některých systémech to může trvat dlouho a způsobit zasekávání přehrávání videa. Při vypnutí funkce budou během překódování obsažené titulky vypáleny do obrazu, pokud je klientské zařízení nativně nepodporuje.", - "AllowRemoteAccess": "Povolit vzdálené připojení na tento Jellyfin server.", + "AllowOnTheFlySubtitleExtractionHelp": "Vložené titulky je možné vytáhnout z videa a dodat klientům v textové podobě, aby nebylo nutné video překódovat. Na některých systémech to může trvat dlouho a způsobit zasekávání videa. Pokud tuto funkci vypnete a klientské zařízení vložené titulky nepodporuje, při překódování budou vypáleny přímo do obrazu.", + "AllowRemoteAccess": "Povolit vzdálené připojení k tomuto serveru Jellyfin.", "AllowRemoteAccessHelp": "Pokud není zapnuto, všechna vzdálená připojení budou blokována.", - "AllowSeasonalThemesHelp": "Pokud je povoleno, sezónní motivy občas přepíšou nastavení vašeho motivu.", "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", - "AndroidUnlockRestoreHelp": "Chcete-li obnovit předchozí nákup, ujistěte se, že jste přihlášeni do zařízení se stejným účtem Google (nebo Amazon), na kterém byl nákup původně proveden. Ujistěte se, že je povolen přístup k úložišti aplikací a není omezen žádnou rodičovskou kontrolou a ujistěte se, že máte aktivní připojení k internetu. Toto budete muset provést pouze jednou, abyste tento předchozí nákup obnovili.", "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í)", - "AutomaticallyConvertNewContent": "Automaticky zkonvertovat nový obsah", - "AutomaticallyConvertNewContentHelp": "Nový obsah přidaný do této složky bude automaticky zkonvertován.", - "Banner": "Banner", + "Banner": "Výřez plakátu", "BestFit": "Nejvhodnější", "Blacklist": "Černá listina", "BobAndWeaveWithHelp": "Bob and weave (vyšší kvalita, ale pomalejší)", "Browse": "Procházet", - "BurnSubtitlesHelp": "Určuje, zda má server vypalovat titulky při překódování videa. Vynechání tohoto zlepší výkon serveru. Chcete-li vypálit grafické formáty (VOBSUB, PGS, SUB / IDX atd.) a některé titulky ASS nebo SSA, vyberte možnost Auto.", + "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", @@ -1271,7 +1258,7 @@ "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": "Stlačený", + "Depressed": "Vytlačené", "Descending": "Klesající", "DetectingDevices": "Hledání zařízení", "DirectPlayError": "Chyba přímého přehrávání", @@ -1295,7 +1282,7 @@ "Features": "Funkce", "Filters": "Filtry", "Folders": "Složky", - "General": "Hlavní", + "General": "Obecné", "Genre": "Žánr", "GroupBySeries": "Seskupit podle série", "HandledByProxy": "Zpracováno reverzním proxy", @@ -1317,11 +1304,10 @@ "HeaderFetcherSettings": "Nastavení načítání", "HeaderImageLogo": "Logo", "HeaderImageOptions": "Volby obrázku", - "HeaderInviteWithJellyfinConnect": "Pozvat s Jellyfin Connect", "HeaderKodiMetadataHelp": "Chcete-li povolit nebo zakázat Nfo metadata, upravte nastavení knihovny v sekci ukládání metadat.", - "HeaderLiveTV": "Živá TV", - "HeaderLiveTv": "Živá TV", - "HeaderLiveTvTunerSetup": "Nastavení tuneru Live TV", + "HeaderLiveTV": "Televize", + "HeaderLiveTv": "Televize", + "HeaderLiveTvTunerSetup": "Nastavení televizního tuneru", "HeaderMenu": "Menu", "HeaderNewDevices": "Nové zařízení", "HeaderPhotoAlbums": "Fotoalba", @@ -1335,14 +1321,10 @@ "HeaderTV": "TV", "HeaderTypeImageFetchers": "{0} stahovačů obrázků", "HeaderUpcomingEpisodes": "Následující epizody", - "HeaderUpcomingNews": "Následující novinky", "HeaderVideo": "Video", "HeaderVideoType": "Formát videa", "Horizontal": "Vodorovně", - "HowWouldYouLikeToAddUser": "Jak chcete přidat uživatele?", "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í.", - "Invitations": "Pozvánky", - "InviteAnJellyfinConnectUser": "Přidejte uživatele odesláním e-mailové pozvánky.", "KeepDownload": "Zachovat stahování", "LabelAlbum": "Album:", "LabelAllowedRemoteAddresses": "Filtr vzdálené IP adresy:", @@ -1355,7 +1337,6 @@ "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.", - "LabelConvertTo": "Konvertovat na:", "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:", @@ -1372,7 +1353,7 @@ "LabelLimit": "Limit:", "LabelMaxStreamingBitrate": "Maximální kvalita streamování:", "LabelMetadata": "Metadata:", - "LabelOptionalNetworkPathHelp": "Pokud je tato složka sdílena ve vaší síti, může poskytování cesty ke sdílené složce umožnit aplikacím Jellyfin v jiných zařízeních přímý přístup k mediálním souborům.", + "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}.", "LabelPersonRole": "Úloha:", "LabelPlaylist": "Playlist:", "LabelReasonForTranscoding": "Důvod pro překódování:", @@ -1385,7 +1366,6 @@ "LabelSortOrder": "Pořadí řazení:", "LabelSpecialSeasonsDisplayName": "Zobrazovaný název pro zvláštní sezónu:", "LabelSubtitleDownloaders": "Stahovače titulků:", - "LabelSyncNoTargetsHelp": "Vypadá to, že v současné době nemáte žádné aplikace, které podporují stahování offline.", "LabelTVHomeScreen": "Hlavní obrazovka TV režimu:", "LabelTag": "Tag:", "LabelTypeMetadataDownloaders": "{0} stahovače metadat:", @@ -1399,7 +1379,7 @@ "LetterButtonAbbreviation": "A", "LinkApi": "API", "LinksValue": "Odkazy: {0}", - "LiveTV": "Živá TV", + "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", @@ -1458,33 +1438,32 @@ "OptionProfileAudio": "Audio", "OptionProfileVideo": "Video", "OptionProfileVideoAudio": "Video Audio", - "OptionProtocolHls": "Živý HTTP stream", + "OptionProtocolHls": "Přímý přenos z internetu", "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": "Plugin byl úspěšně nainstalován. Jellyfin server bude muset být restartován, aby se změny projevily.", + "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": "Vyvolané", + "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", "SeriesDisplayOrderHelp": "Seřadit epizody podle data vysílání, pořadí DVD nebo absolutního číslování.", - "ServerRestartNeededAfterPluginInstall": "Jellyfin server bude nutné po instalaci pluginu restartovat.", + "ServerRestartNeededAfterPluginInstall": "Server Jellyfin bude nutné po instalaci zásuvného modulu restartovat.", "ShowAdvancedSettings": "Zobrazit rozšířená nastavení", - "ShowTitle": "Ukázat název", - "ShowYear": "Ukázat rok", + "ShowTitle": "Zobrazit název", + "ShowYear": "Zobrazit rok", "SimultaneousConnectionLimitHelp": "Maximální počet povolených současných streamů. Pro vypnutí omezení zadejte 0.", "SmallCaps": "Malá písmena", "Smaller": "Menší", "Sort": "Třídit", - "StatsForNerds": "Statistiky pro šprty", "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.", @@ -1493,16 +1472,16 @@ "TV": "TV", "TabDirectPlay": "Přímé přehrávání", "TabInfo": "Info", - "TabLiveTV": "Živá TV", + "TabLiveTV": "Televize", "TabMetadata": "Metadata", "TabPlaylist": "Playlist", "TabServer": "Server", "TagsValue": "Tagy: {0}", "ThemeSongs": "Tematická hudba", "ThemeVideos": "Tematická videa", - "Trailers": "Trailery", + "Trailers": "Upoutávky", "TvLibraryHelp": "Podívejte se na {0}průvodce pojmenováním TV pořadů{1}.", - "Uniform": "Uniformní", + "Uniform": "Obrys", "Unplayed": "Nepřehrané", "UserAgentHelp": "Zadejte vlastní HTTP hlavičku user agenta.", "ValueMinutes": "{0} min", @@ -1540,7 +1519,7 @@ "LabelPlayMethod": "Způsob přehrání:", "LabelPlayer": "Přehrávač:", "LabelFolder": "Složka:", - "LabelBaseUrlHelp": "Zde můžete přidat vlastní podsložku aby bylo možné přistupovat na server z unikátnější adresy.", + "LabelBaseUrlHelp": "Přidá vlastní řetězec na konec adresy serveru, např.: http://priklad.cz/<vlastni-retezec>", "LabelBaseUrl": "Výchozí URL:", "LabelBitrate": "Datový tok:", "LabelAudioSampleRate": "Vzorkovací frekvence zvuku:", @@ -1566,10 +1545,10 @@ "LabelPlayerDimensions": "Zobrazené rozlišení:", "LabelDroppedFrames": "Vynechané snímky:", "LabelCorruptedFrames": "Poškozené snímky:", - "OptionForceRemoteSourceTranscoding": "Vynutit transkódování vzdálených zdrojů médií (jako např. živá TV)", + "OptionForceRemoteSourceTranscoding": "Vynutit překódování vzdálených zdrojů médií (např.: televizního vysílání)", "NoCreatedLibraries": "Zdá se, že jste dosud nevytvořili žádnou knihovnu. {0}Chtěli byste nějakou vytvořit nyní?{1}", "AskAdminToCreateLibrary": "Požádejte administrátora o vytvoření knihovny.", - "AllowFfmpegThrottlingHelp": "Když se překódování nebo remux dostane dostatečně daleko dopředu od aktuální pozice přehrávání, pozastaví se proces, aby spotřeboval méně zdrojů. To je nejužitečnější při sledování bez častého vyhledávání. Pokud máte problémy s přehráváním, vypněte tuto funkci.", + "AllowFfmpegThrottlingHelp": "Pozastaví proces překódování či remuxování, pokud je dostatečně napřed, aby se spotřebovalo méně zdrojů. Nejvhodnější, pokud příliš nepřeskakujete. Pokud máte problémy s přehráváním, tuto funkci vypněte.", "AllowFfmpegThrottling": "Omezit překódování", "BoxSet": "Sbírka", "Track": "Stopa", @@ -1593,7 +1572,7 @@ "DailyAt": "Denně v {0}", "PersonRole": "jako {0}", "ListPaging": "{0}-{1} ze {2}", - "WriteAccessRequired": "Jellyfin Server potřebuje oprávnění pro zápis v této složce. Zkontrolujte oprávnění a zkuste to znovu.", + "WriteAccessRequired": "Server Jellyfin vyžaduje oprávnění pro zápis do této složky. Zkontrolujte oprávnění a zkuste to znovu.", "PathNotFound": "Cesta nebyla nalezena. Zkontrolujte, zda je platná a zkuste to znovu.", "WeeklyAt": "V {0} v {1}", "LastSeen": "Naposledy zobrazené {0}", @@ -1603,10 +1582,24 @@ "LabelLibraryPageSize": "Velikost stránky knihovny:", "LabelDeinterlaceMethod": "Metoda odstranění prokládání:", "DeinterlaceMethodHelp": "Vyberte metodu odstranění prokládání obrazu při překódování obsahu.", - "UnsupportedPlayback": "Jellyfin nemůže dešifrovat obsah chráněný technologií DRM, ale pokusí se zobrazit o veškerý obsah, včetně chráněných titulů. Některé soubory se mohou zdát úplně černé kvůli šifrování nebo jiným nepodporovaným funkcím, jako jsou například interaktivní funkce.", + "UnsupportedPlayback": "Jellyfin nedokáže dešifrovat obsah chráněný Správou digitálních práv (DRM), ale pokusí se zobrazit veškerý obsah, včetně toho chráněného. Některé soubory se nemusí vůbec zobrazit kvůli šifrování nebo jiným nepodporovaným funkcím, např.: interaktivním názvům.", "MessageUnauthorizedUser": "Momentálně nemáte oprávnění k přístupu na server. Další informace získáte od správce serveru.", "Filter": "Filtr", "New": "Nové", "ButtonTogglePlaylist": "Playlist", - "ButtonToggleContextMenu": "Více" + "ButtonToggleContextMenu": "Více", + "LabelNightly": "Nightly", + "LabelStable": "Stabilní", + "LabelChromecastVersion": "Verze Chromecastu", + "ApiKeysCaption": "Seznam povolených API klíčů", + "LabelEnableHttpsHelp": "Umožní serveru naslouchat na určeném portu HTTPS. K fungování je nutné nakonfigurovat i platný certifikát.", + "LabelEnableHttps": "Povolit HTTPS", + "HeaderServerAddressSettings": "Nastavení adresy serveru", + "HeaderRemoteAccessSettings": "Nastavení vzdáleného přístupu", + "HeaderHttpsSettings": "Nastavení HTTPS", + "LabelRequireHttpsHelp": "Server automaticky přesměruje všechny požadavky z HTTP na HTTPS. Pokud server nenaslouchá na portu HTTPS, tato funkce nemá žádný účinek.", + "LabelRequireHttps": "Vyžadovat HTTPS", + "TabDVR": "Nahrávání", + "HeaderDVR": "Nahrávání", + "SaveChanges": "Uložit změny" } diff --git a/src/strings/da.json b/src/strings/da.json index 5e7bbd2e1..45c0ddb33 100644 --- a/src/strings/da.json +++ b/src/strings/da.json @@ -632,11 +632,6 @@ "LabelSubtitleFormatHelp": "F. eks: srt", "LabelSubtitlePlaybackMode": "Underteksttilstand:", "LabelSupportedMediaTypes": "Understøttede medieformater:", - "LabelSyncJobName": "Navn til synkroniserings job:", - "LabelSyncPath": "Synked indholdssti:", - "LabelSyncTempPath": "Sti for midlertidige filer:", - "LabelSyncTempPathHelp": "Specificér en brugerdefineret synkroniserings arbejds-mappe. Konverterede filer vil under synkroniseringsprocessen blive gemt her.", - "LabelSyncTo": "Synkroniser til:", "LabelTheme": "Tema:", "LabelTime": "Tid:", "LabelTimeLimitHours": "Tidsgrænse (timer):", @@ -1099,7 +1094,6 @@ "HeaderLiveTV": "Live-TV", "Shows": "Serier", "Songs": "Sange", - "AndroidUnlockRestoreHelp": "For at gendanne dit tidligere køb skal du sørge for, at du er logget ind på enheden med den samme Google- eller Amazon-konto, som oprindeligt gjorde købet. Sørg for, at app store er aktiveret og ikke begrænset af forældrekontrol, og sørg for, at du har en aktiv internetforbindelse. Du skal kun gøre dette én gang for at gendanne dit tidligere køb.", "AnyLanguage": "Hvilken som helst sprog", "Art": "Kunst", "Ascending": "Stigende", @@ -1111,10 +1105,6 @@ "AudioSampleRateNotSupported": "Lydens samplerate ikke understøttet", "Auto": "Auto", "AutoBasedOnLanguageSetting": "Automatisk (baseret på sprogindstilling)", - "AutomaticallyConvertNewContent": "Konverter automatisk nyt indhold", - "AutomaticallyConvertNewContentHelp": "Nyt indhold tilføjet til denne mappe vil blive konverteret automatisk.", - "AutomaticallySyncNewContent": "Download nyt indhold automatisk", - "AutomaticallySyncNewContentHelp": "Nyt indhold tilføjet til denne mappe vil automatisk blive downloadet til enheden.", "Backdrop": "Baggrund", "Backdrops": "Baggrunde", "Banner": "Banner", @@ -1198,8 +1188,6 @@ "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.", - "ErrorAddingJellyfinConnectAccount1": "Der skete en fejl ved tilføjelsen af Jellyfin Connect kontoen. Har du lavet en Jellyfin konto? Registrer dig på {0}.", - "ErrorAddingJellyfinConnectAccount2": "Hvis du stadig har et problem, så send venligst en email til {0} fra den email adresse tilknyttet Jellyfin kontoen.", "ErrorDeletingItem": "Der skete en fejl ved sletningen af mediet fra Jellyfin Server. Tjek venligst at Jellyfin Server har skrive adgang til mediemappen og prøv igen.", "ExtraLarge": "Ekstra Stor", "Extras": "Bonusmateriale", @@ -1236,7 +1224,6 @@ "HeaderNavigation": "Navigation", "HeaderNextEpisodePlayingInValue": "Næste afsnit afspilles om {0}", "HeaderNextVideoPlayingInValue": "Næste video afspilles om {0}", - "HeaderOffline": "Offline", "HeaderPhotoAlbums": "Foto Albummer", "HeaderPlayOn": "Afspil På", "HeaderProgram": "Program", @@ -1252,18 +1239,15 @@ "HeaderTags": "Mærker", "HeaderTopPlugins": "Bedste Plugins", "HeaderType": "Type", - "HeaderUpcomingNews": "Kommende Nyheder", "HeaderVideo": "Video", "HeaderVideoQuality": "Video Kvalitet", "HeaderVideoType": "Video Type", - "HeaderWaitingForWifi": "Venter på Wifi", "Hide": "Skjul", "HideWatchedContentFromLatestMedia": "Skjul set indhold fra seneste medier", "Home": "Hjem", "Horizontal": "Horisontalt", "ImdbRating": "IMDb bedømmelse", "InterlacedVideoNotSupported": "Interlaced video ikke understøttet", - "InviteAnJellyfinConnectUser": "Tilføj en bruger ved at sende en email invitation.", "KeepDownload": "Behold hentning", "Label3DFormat": "3D format:", "LabelAlbum": "Album:", @@ -1275,7 +1259,6 @@ "LabelCache": "Cache:", "LabelCertificatePassword": "Adgangskode til certifikat:", "LabelCertificatePasswordHelp": "Hvis dit certifikat kræver en adgangskode, skriv det venligst her.", - "LabelConvertTo": "Konvertér til:", "LabelDashboardTheme": "Server dashboard tema:", "LabelDateTimeLocale": "Dato og tid område:", "LabelDefaultScreen": "Standard skærm:", @@ -1314,7 +1297,6 @@ "LabelSoundEffects": "Lydeffekter:", "LabelStatus": "Status:", "LabelSubtitles": "Undertekster", - "LabelSyncNoTargetsHelp": "Det ser ud til at du ikke har nogen apps der understøtter offline hentning.", "LabelTVHomeScreen": "TV modus hjemmeskærm:", "LabelTag": "Mærke:", "LabelTagline": "Taglinje:", @@ -1333,7 +1315,6 @@ "LabelXDlnaCap": "X-DLNA begrænsning:", "LabelXDlnaDoc": "X-DLNA dokumentation:", "LabelYear": "År:", - "LabelffmpegVersion": "FFmpeg version:", "Large": "Stor", "LearnHowYouCanContribute": "Lær hvordan du kan bidrage.", "LeaveBlankToNotSetAPassword": "Du kan lade dette felt være tomt hvis du ikke ønsker adgangskode.", @@ -1365,7 +1346,6 @@ "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.", - "MessageNoSyncJobsFound": "Ingen hentninger fundet. Opret hent job ved at bruge Hent knapperne igennem app'en.", "MessagePlayAccessRestricted": "Afspilning af dette indhold er begrænset. Kontakt venligst server administratoren for mere information.", "Metadata": "Metadata", "Mobile": "Mobil", @@ -1379,10 +1359,7 @@ "OnlyForcedSubtitles": "Kun tvungne undertekster", "OnlyForcedSubtitlesHelp": "Kun undertekster markeret som tvungne vil blive indlæst.", "OnlyImageFormats": "Kun billedformater (VOBSUB, PGS, SUB)", - "Option2Player": "2+", "Option3D": "3D", - "Option3Player": "3+", - "Option4Player": "4+", "OptionAlbum": "Album", "OptionArtist": "Kunstner", "OptionAuto": "Automatisk", @@ -1426,7 +1403,6 @@ "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", - "PleaseSelectDeviceToSyncTo": "Vælg venligst en enhed at hente til.", "Previous": "Forrige", "Primary": "Primær", "PrivacyPolicy": "Privatlivs politik", @@ -1455,16 +1431,12 @@ "Sort": "Sortér", "SortByValue": "Sortér efter {0}", "Standard": "Standard", - "StatsForNerds": "Stats for nørder", "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", - "SyncUnwatchedVideosOnly": "Hent kun usete videoer", - "SyncUnwatchedVideosOnlyHelp": "Kun usete videoer vil blive hentet, og videoer vil bliver slettet fra enheden når de er set.", - "SyncingDots": "Synkroniserer...", "TV": "TV", "TabAlbums": "Albummer", "TabCodecs": "Codeks", @@ -1478,7 +1450,6 @@ "TabPlaylist": "Afspilningsliste", "TabServer": "Server", "TabStreaming": "Streamer", - "TabSync": "Sync", "TabTV": "TV", "Tags": "Mærker", "TagsValue": "Mærker: {0}", @@ -1489,7 +1460,6 @@ "TitleLiveTV": "Live TV", "TitleServer": "Server", "TitleSupport": "Support", - "TitleSync": "Sync", "Trailer": "Forfilm", "Trailers": "Forfilm", "Transcoding": "Omkodning", @@ -1519,7 +1489,6 @@ "ViewTypeTvShows": "TV", "Watched": "Set", "Whitelist": "Hvidliste", - "WifiRequiredToDownload": "En Wifi forbindelse er påkrævet for at forsætte hentning.", "Yes": "Ja", "HeaderFavoriteMovies": "Favoritfilm", "HeaderFavoriteShows": "Favoritserier", diff --git a/src/strings/de.json b/src/strings/de.json index 07cca966f..1ca5e9110 100644 --- a/src/strings/de.json +++ b/src/strings/de.json @@ -9,7 +9,6 @@ "AddToPlayQueue": "Zur Warteschlange hinzufügen", "AddToPlaylist": "Zur Wiedergabeliste hinzufügen", "AddUser": "Benutzer anlegen", - "AddUserByManually": "Lege einen lokalen User durch manuelle Eingabe der User-Informationen an.", "AddedOnValue": "{0} hinzugefügt", "AdditionalNotificationServices": "Durchsuche den Pluginkatalog, um weitere Benachrichtigungsdienste zu installieren.", "AirDate": "Erstausstrahlung", @@ -17,7 +16,7 @@ "Albums": "Alben", "All": "Alle", "AllChannels": "Alle Kanäle", - "AllComplexFormats": "Alle komplexen Formate (ASS, SSA, VOBSUB, PGS, SUB/IDX)", + "AllComplexFormats": "Alle komplexen Formate (ASS, SSA, VOBSUB, PGS, SUB/IDX, ...)", "AllEpisodes": "Alle Folgen", "AllLanguages": "Alle Sprachen", "AllLibraries": "Alle Bibliotheken", @@ -29,14 +28,12 @@ "AllowOnTheFlySubtitleExtractionHelp": "Eingebettete Untertitel können aus Videos extrahiert und in Reintext an Clients gesendet werden, um eine Videotranskodierung zu vermeiden. Auf manchen Systemen kann dieser Vorgang eine lange Zeit in Anspruch nehmen und deswegen währenddessen die Videowiedergabe stoppen. Deaktiviere diese Option, um eingebettete Untertitel während des Videotranskodierens einbrennen zu lassen, wenn sie nicht nativ vom Client unterstützt werden.", "AllowRemoteAccess": "Erlaube externe Verbindungen zu diesem Jellyfin Server.", "AllowRemoteAccessHelp": "Wenn deaktiviert werden alle externen Verbindungen blockiert.", - "AllowSeasonalThemes": "Erlaube automatische Jahreszeitenmotive", - "AllowSeasonalThemesHelp": "Wenn aktiviert, werden Jahreszeitenmotive von Zeit zu Zeit deine Motiveinstellungen überschreiben.", "AllowedRemoteAddressesHelp": "Kommagetrennte Liste von IP Adressen oder IP/Netzmasken für Netzwerke, für die externe Verbindungen erlaubt sind. Wenn leer, sind alle Adressen erlaubt.", "AlwaysPlaySubtitles": "Immer anzeigen", "AlwaysPlaySubtitlesHelp": "Untertitel die den Spracheinstellungen entsprechen werden unabhängig von der Tonspursprache geladen.", "AnyLanguage": "Jede Sprache", "Anytime": "Jederzeit", - "AroundTime": "Um {0}", + "AroundTime": "Um", "Artists": "Interpreten", "AsManyAsPossible": "So viele wie möglich", "Ascending": "Aufsteigend", @@ -55,12 +52,12 @@ "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}.", + "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)", "Browse": "Blättern", "BrowsePluginCatalogMessage": "Durchsuche unsere Bibliothek, um alle verfügbaren Plugins anzuzeigen.", - "BurnSubtitlesHelp": "Legt fest, ob der Server die Untertitel während der Videotranskodierung einbrennen soll. Deaktivieren verbessert die Serverperformance immens. Wähle Auto, um bildbasierte Formate (z.B. VOBSUB, PGS, SUB, IDX) sowie bestimmte ASS- oder SSA-Untertitel einbrennen zu lassen.", + "BurnSubtitlesHelp": "Legt fest, ob der Server die Untertitel während der Videotranskodierung einbrennen soll. Deaktivieren verbessert die Serverperformance immens. Wähle Auto, um bildbasierte Formate (z.B. VOBSUB, PGS, SUB, IDX, ...) sowie bestimmte ASS- oder SSA-Untertitel einbrennen zu lassen.", "ButtonAdd": "Hinzufügen", "ButtonAddMediaLibrary": "Füge Medienbibliothek hinzu", "ButtonAddScheduledTaskTrigger": "Auslöser hinzufügen", @@ -230,7 +227,7 @@ "ExitFullscreen": "Vollbild verlassen", "ExtraLarge": "Extragroß", "ExtractChapterImagesHelp": "Das Extrahieren von Kapitel-Bildern ermöglicht es Jellyfin-Apps eine grafische Szenenauswahl anzubieten. Das Erstellen ist recht langsam, rechenintensiv und erfordert ggf. einige Gigabyte an freien Speicherplatz. Diese Aufgabe startet wenn neue Videos erkannt werden und ebenso als eine nächtliche Aufgabe. Es wird nicht empfohlen diese Aufgabe in Zeiten hoher Server-Auslastung zu starten.", - "FFmpegSavePathNotFound": "Wir konnten kein FFmpeg in dem von Dir erfassten Verzeichnis finden. FFprobe wird ebenso benötigt und muss sich im gleichen Verzeichnis befinden. Diese Komponenten sind normalerweise in einem Paket vorhanden um kommen zusammen mit einem Download. Bitte prüfe das Verzeichnis und probiere es erneut.", + "FFmpegSavePathNotFound": "Wir konnten kein FFmpeg in dem von Dir erfassten Verzeichnis finden. FFprobe wird ebenso benötigt und muss sich im gleichen Verzeichnis befinden. Diese Komponenten sind normalerweise in einem Paket vorhanden und kommen zusammen in einem Download. Bitte prüfe das Verzeichnis und probiere es erneut.", "FastForward": "Vorwärts spulen", "Favorite": "Favorit", "Favorites": "Favoriten", @@ -512,7 +509,7 @@ "LabelBlockContentWithTags": "Blockiere Inhalte mit Tags:", "LabelBurnSubtitles": "Untertitel einbrennen:", "LabelCachePath": "Cache Pfad:", - "LabelCachePathHelp": "Legen Sie ein eigenes Verzeichnis für den Server Zwischenspeicher fest. (z.B. für Bilder) Lassen Sie dieses Feld leer um die Standardeinstellung zu verwenden.", + "LabelCachePathHelp": "Legen Sie ein eigenes Verzeichnis für den Server Zwischenspeicher fest (z.B. für Bilder). Lassen Sie dieses Feld leer um die Standardeinstellung zu verwenden.", "LabelCancelled": "Abgebrochen", "LabelCertificatePassword": "Zertifikat Passwort:", "LabelCertificatePasswordHelp": "Wenn Dein Zertifikat ein Passwort benötigt, gib es hier ein.", @@ -551,7 +548,7 @@ "LabelDisplayOrder": "Anzeigereihenfolge:", "LabelDisplaySpecialsWithinSeasons": "Zeige Sonderinhalt innerhalb der Staffel in der er ausgestrahlt wurde", "LabelDownMixAudioScale": "Audio Verstärkung bei Downmixing:", - "LabelDownMixAudioScaleHelp": "Erhöhe die Audiolautstärke beim Heruntermischen. Setzte auf 1 um die original Lautstärke zu erhalten.", + "LabelDownMixAudioScaleHelp": "Erhöhe die Audiolautstärke beim Heruntermischen. Setze auf 1, um die ursprüngliche Lautstärke beizubehalten.", "LabelDownloadLanguages": "Herunterzuladende Sprachen:", "LabelDropImageHere": "Fotos hierher ziehen oder klicken im zu browsen.", "LabelDropShadow": "Schlagschatten:", @@ -559,7 +556,7 @@ "LabelEmbedAlbumArtDidl": "Integrierte Alben-Cover in Didl", "LabelEmbedAlbumArtDidlHelp": "Einige Geräte bevorzugen diese Methode um Album Art darstellen zu können. Andere wiederum können evtl. nichts abspielen, wenn diese Funktion aktiviert ist.", "LabelEnableAutomaticPortMap": "Aktiviere das automatische Port-Mapping", - "LabelEnableAutomaticPortMapHelp": "Versuche automatisch den öffentlichen Port dem lokalen Port mit Hilfe von UPnP zuzuordnen. Dies kann mit einigen Router-Modellen nicht funktionieren. Die Änderungen werden erst nach einem Neustart des Server aktiv.", + "LabelEnableAutomaticPortMapHelp": "Leitet automatisch die öffentlichen Ports des Routers an die lokalen Ports des Servers mit Hilfe von UPnP weiter. Dies kann mit einigen Router-Modellen nicht funktionieren. Die Änderungen werden erst nach einem Neustart des Server aktiv.", "LabelEnableBlastAliveMessages": "Erzeuge Alive Meldungen", "LabelEnableBlastAliveMessagesHelp": "Aktiviere dies, wenn der Server nicht zuverlässig von anderen UPnP Geräten in ihrem Netzwerk erkannt wird.", "LabelEnableDlnaClientDiscoveryInterval": "Client-Entdeckungs Intervall (Sekunden)", @@ -569,7 +566,7 @@ "LabelEnableDlnaPlayTo": "Aktiviere DLNA Play To", "LabelEnableDlnaPlayToHelp": "Geräte in deinem Netzwerk erkennen und deren Fernsteuerung ermöglichen.", "LabelEnableDlnaServer": "DLNA-Server aktivieren", - "LabelEnableDlnaServerHelp": "Erlaubt UPnP Geräten in Ihrem Netzwerk Zugriff und Wiedergabe von Jellyfin Inhalten.", + "LabelEnableDlnaServerHelp": "Erlaubt UPnP Geräten in Ihrem Netzwerk den Zugriff und die Wiedergabe von Inhalten.", "LabelEnableHardwareDecodingFor": "Aktiviere Hardware-Decoding für:", "LabelEnableRealtimeMonitor": "Erlaube Echtzeitüberwachung", "LabelEnableRealtimeMonitorHelp": "Änderungen werden auf unterstützten Dateisystemen sofort übernommen.", @@ -666,7 +663,7 @@ "LabelMoviePrefix": "Filmpräfix:", "LabelMoviePrefixHelp": "Wenn ein Präfix in Filmtiteln angewendet wird, gib es hier ein damit Jellyfin es korrekt behandeln kann.", "LabelMovieRecordingPath": "Film Aufnahmepfad (Optional):", - "LabelMusicStreamingTranscodingBitrate": "Musik Transkodier Bitrate:", + "LabelMusicStreamingTranscodingBitrate": "Musik-Transkodierung Bitrate:", "LabelMusicStreamingTranscodingBitrateHelp": "Wähle die maximale Bitrate für das streamen von Musik.", "LabelNewName": "Neuer Name:", "LabelNewPassword": "Neues Passwort:", @@ -678,7 +675,7 @@ "LabelNumberOfGuideDays": "Anzahl von Tagen für die Programminformationen geladen werden sollen:", "LabelNumberOfGuideDaysHelp": "Das laden von zusätzlichen Programmdaten bietet einen besseren Überblick und die Möglichkeit weiter in die Zukunft zu planen. Aber es wird länger dauern alles herunterzuladen. Auto wählt auf Grundlage der Kanalanzahl.", "LabelOptionalNetworkPath": "(Optionaler) Gemeinsamer Netzwerkordner:", - "LabelOptionalNetworkPathHelp": "Wenn dieser Ordner in deinem Netzwerk geteilt wird, kann die Weitergabe des Netzwerkpfades Jellyfin Apps auf anderen Geräten direkten Zugang zu den Mediendateien ermöglichen.", + "LabelOptionalNetworkPathHelp": "Wenn dieser Ordner in deinem Netzwerk geteilt wird, kann die Weitergabe des Netzwerkpfades Jellyfin Apps auf anderen Geräten direkten Zugang zu den Mediendateien ermöglichen. Beispielsweise {0} oder {1}.", "LabelOriginalAspectRatio": "Original Seitenverhältnis:", "LabelOriginalTitle": "Original Titel:", "LabelOverview": "Übersicht:", @@ -1000,7 +997,7 @@ "OptionLikes": "Mag ich", "OptionMissingEpisode": "Fehlende Episoden", "OptionMonday": "Montag", - "OptionNew": "Neu...", + "OptionNew": "Neu…", "OptionNone": "Keines", "OptionOnAppStartup": "Bei Anwendungsstart", "OptionOnInterval": "Nach einem Intervall", @@ -1400,7 +1397,7 @@ "Thumb": "Miniaturansicht", "TitleSupport": "Hilfe", "Whitelist": "Erlaubt", - "AuthProviderHelp": "Authentifizierungsanbieter auswählen, der zur Authentifizierung des Benutzerpassworts verwendet werden soll.", + "AuthProviderHelp": "Wähle einen Authentifizierungsanbieter aus, der zur Authentifizierung des Passworts dieses Benutzers verwendet werden soll.", "Features": "Funktionen", "HeaderFavoriteBooks": "Lieblingsbücher", "HeaderFavoriteMovies": "Lieblingsfilme", @@ -1430,7 +1427,7 @@ "OptionLoginAttemptsBeforeLockoutHelp": "Null (0) bedeutet den Standardwert von drei Versuchen für normale, sowie fünf für Administrator-Benutzer zu übernehmen. Ein Wert von -1 deaktiviert die Funktion.", "PasswordResetProviderHelp": "Wählen Sie einen Password Reset Provider, der verwendet werden soll, wenn dieser Benutzer ein Passwort zurücksetzen möchte", "Box": "Box", - "HeaderHome": "Home", + "HeaderHome": "Startseite", "LabelAudioCodec": "Audiocodec:", "LabelAudioChannels": "Audiokanäle:", "HeaderTypeImageFetchers": "{0} Bildquellen", @@ -1446,7 +1443,7 @@ "LabelTranscodingFramerate": "Transcodierrate:", "LabelAudioSampleRate": "Audio-Abtastrate:", "LabelBaseUrl": "Basis URL:", - "LabelBaseUrlHelp": "Du kannst hier ein benutzerdefiniertes Unterverzeichnis hinzufügen, um über eine eindeutige URL auf den Server zuzugreifen.", + "LabelBaseUrlHelp": "Fügt ein benutzerdefiniertes Unterverzeichnis zur Server-URL hinzu, zum Beispiel: http://example.com/<baseurl>", "LabelFolder": "Ordner:", "LabelPasswordResetProvider": "Anbieter zum Zurücksetzen des Passwortes:", "LabelPlayMethod": "Spielmethode:", @@ -1474,7 +1471,7 @@ "OptionRandom": "Zufällig", "TabNetworking": "Netzwerk", "VideoRange": "Videobereich", - "ButtonSplit": "Teilen", + "ButtonSplit": "Aufteilen", "SelectAdminUsername": "Bitte einen Benutzernamen für das Administrator-Konto auswählen.", "HeaderNavigation": "Navigation", "CopyStreamURLError": "Beim Kopieren der URL ist ein Fehler aufgetreten.", @@ -1528,5 +1525,19 @@ "MessageUnauthorizedUser": "Sie sind im Moment nicht berechtigt, auf den Server zuzugreifen. Bitte kontaktieren Sie Ihren Server-Administrator für weitere Informationen.", "HeaderFavoritePlaylists": "Lieblings-Wiedergabeliste", "ButtonTogglePlaylist": "Wiedergabeliste", - "ButtonToggleContextMenu": "Mehr" + "ButtonToggleContextMenu": "Mehr", + "ApiKeysCaption": "Liste der aktuell aktivierten API-Schlüssel", + "LabelNightly": "Nightly", + "LabelStable": "Stable", + "LabelChromecastVersion": "Chromecast Version", + "HeaderDVR": "DVR", + "TabDVR": "DVR", + "SaveChanges": "Änderungen speichern", + "LabelRequireHttpsHelp": "Wenn dies ausgewählt ist, leitet der Server alle Anfragen über HTTP an HTTPS weiter. Dies hat keinen Effekt, falls der Server nicht auf HTTPS hört.", + "LabelRequireHttps": "Erfordere HTTPS", + "LabelEnableHttpsHelp": "Erlaubt es dem Server, den konfigurierten HTTPS-Port zu beobachten. Damit dies geschehen kann, muss ein gültiges Zertifikat konfiguriert sein.", + "LabelEnableHttps": "Aktiviere HTTPS", + "HeaderServerAddressSettings": "Server-Adresseinstellungen", + "HeaderRemoteAccessSettings": "Fernzugriffs-Einstellungen", + "HeaderHttpsSettings": "HTTPS-Einstellungen" } diff --git a/src/strings/el.json b/src/strings/el.json index 480492836..f4021436c 100644 --- a/src/strings/el.json +++ b/src/strings/el.json @@ -1233,5 +1233,8 @@ "AskAdminToCreateLibrary": "Ζητήστε από έναν διαχειριστή να δημιουργήσει μια βιβλιοθήκη.", "Artist": "Καλλιτέχνης", "AllowedRemoteAddressesHelp": "Λίστα διαχωρισμένων διευθύνσεων IP ή καταχωρίσεων IP / netmask για δίκτυα που θα επιτρέπεται η σύνδεση εξ αποστάσεως. Εάν αφεθεί κενό, όλες οι απομακρυσμένες διευθύνσεις θα επιτρέπονται.", - "AllowFfmpegThrottlingHelp": "Όταν ένας διακωδικοποιητής ή remux φτάσει αρκετά μπροστά από την τρέχουσα θέση αναπαραγωγής, διακόψτε τη διαδικασία ώστε να καταναλώσει λιγότερους πόρους. Αυτό είναι πιο χρήσιμο όταν παρακολουθείτε χωρίς να αναζητάτε συχνά. Απενεργοποιήστε το εάν αντιμετωπίζετε προβλήματα αναπαραγωγής." + "AllowFfmpegThrottlingHelp": "Όταν ένας διακωδικοποιητής ή remux φτάσει αρκετά μπροστά από την τρέχουσα θέση αναπαραγωγής, διακόψτε τη διαδικασία ώστε να καταναλώσει λιγότερους πόρους. Αυτό είναι πιο χρήσιμο όταν παρακολουθείτε χωρίς να αναζητάτε συχνά. Απενεργοποιήστε το εάν αντιμετωπίζετε προβλήματα αναπαραγωγής.", + "ButtonTogglePlaylist": "Λίστα αναπαραγωγής", + "ButtonToggleContextMenu": "Περισσότερα", + "ButtonSplit": "Διαχωρισμός" } diff --git a/src/strings/en-gb.json b/src/strings/en-gb.json index b111dfa24..723f4b165 100644 --- a/src/strings/en-gb.json +++ b/src/strings/en-gb.json @@ -660,7 +660,7 @@ "OptionOnInterval": "On an interval", "OptionOnAppStartup": "On application startup", "OptionNone": "None", - "OptionNew": "New...", + "OptionNew": "New…", "OptionMissingEpisode": "Missing Episodes", "OptionMax": "Max", "OptionLoginAttemptsBeforeLockoutHelp": "A value of zero means inheriting the default of three attempts for normal users and five for administrators. Setting this to -1 will disable the feature.", @@ -1032,7 +1032,7 @@ "LabelEnableDlnaServerHelp": "Allows UPnP devices on your network to browse and play content.", "LabelEnableDlnaDebugLoggingHelp": "Create large log files and should only be used as needed for troubleshooting purposes.", "LabelEnableDlnaClientDiscoveryIntervalHelp": "Determines the duration in seconds between SSDP searches performed by Jellyfin.", - "LabelEnableAutomaticPortMapHelp": "Attempt to automatically map the public port to the local port via UPnP. This may not work with some router models. Changes will not apply until after a server restart.", + "LabelEnableAutomaticPortMapHelp": "Automatically forward public ports on your router to local ports on your server via UPnP. This may not work with some router models or network configurations. Changes will not apply until after a server restart.", "InstallingPackage": "Installing {0} (version {1})", "ImportMissingEpisodesHelp": "If enabled, information about missing episodes will be imported into your Jellyfin database and displayed within seasons and series. This may cause significantly longer library scans.", "HeaderSubtitleAppearance": "Subtitle Appearance", @@ -1118,7 +1118,7 @@ "LabelForgotPasswordUsernameHelp": "Enter your username, if you remember it.", "LabelFont": "Font:", "LabelExtractChaptersDuringLibraryScanHelp": "Generate chapter images when videos are imported during the library scan. Otherwise, they will be extracted during the chapter images scheduled task, allowing the regular library scan to complete faster.", - "LabelBaseUrlHelp": "You can add a custom subdirectory here to access the server from a more unique URL.", + "LabelBaseUrlHelp": "Adds a custom subdirectory to the server URL. For example: http://example.com/<baseurl>", "LabelEveryXMinutes": "Every:", "LabelEvent": "Event:", "LabelEpisodeNumber": "Episode number:", @@ -1513,5 +1513,7 @@ "UnsupportedPlayback": "Jellyfin cannot decrypt content protected by DRM but all content will be attempted regardless, including protected titles. Some files may appear completely black due to encryption or other unsupported features, such as interactive titles.", "MessageUnauthorizedUser": "You are not authorized to access the server at this time. Please contact your server administrator for more information.", "ButtonTogglePlaylist": "Playlist", - "ButtonToggleContextMenu": "More" + "ButtonToggleContextMenu": "More", + "HeaderDVR": "DVR", + "ApiKeysCaption": "List of the currently enabled API keys" } diff --git a/src/strings/en-us.json b/src/strings/en-us.json index 495f90edb..aac8a8d18 100644 --- a/src/strings/en-us.json +++ b/src/strings/en-us.json @@ -17,7 +17,7 @@ "Alerts": "Alerts", "All": "All", "AllChannels": "All channels", - "AllComplexFormats": "All Complex Formats (ASS, SSA, VOBSUB, PGS, SUB, IDX)", + "AllComplexFormats": "All Complex Formats (ASS, SSA, VOBSUB, PGS, SUB, IDX, …)", "AllEpisodes": "All episodes", "AllLanguages": "All languages", "AllLibraries": "All libraries", @@ -25,7 +25,7 @@ "AllowMediaConversion": "Allow media conversion", "AllowMediaConversionHelp": "Grant or deny access to the convert media feature.", "AllowOnTheFlySubtitleExtraction": "Allow subtitle extraction on the fly", - "AllowOnTheFlySubtitleExtractionHelp": "Embedded subtitles can be extracted from videos and delivered to clients in plain text in order to help prevent video transcoding. On some systems this can take a long time and cause video playback to stall during the extraction process. Disable this to have embedded subtitles burned in with video transcoding when they are not natively supported by the client device.", + "AllowOnTheFlySubtitleExtractionHelp": "Embedded subtitles can be extracted from videos and delivered to clients in plain text, in order to help prevent video transcoding. On some systems this can take a long time and cause video playback to stall during the extraction process. Disable this to have embedded subtitles burned in with video transcoding when they are not natively supported by the client device.", "AllowFfmpegThrottling": "Throttle Transcodes", "AllowFfmpegThrottlingHelp": "When a transcode or remux gets far enough ahead from the current playback position, pause the process so it will consume less resources. This is most useful when watching without seeking often. Turn this off if you experience playback issues.", "AllowRemoteAccess": "Allow remote connections to this Jellyfin Server.", @@ -35,7 +35,7 @@ "AlwaysPlaySubtitlesHelp": "Subtitles matching the language preference will be loaded regardless of the audio language.", "AnyLanguage": "Any Language", "Anytime": "Anytime", - "AroundTime": "Around {0}", + "AroundTime": "Around", "Art": "Art", "Artist": "Artist", "Artists": "Artists", @@ -55,14 +55,14 @@ "BirthLocation": "Birth location", "BirthPlaceValue": "Birth place: {0}", "Blacklist": "Blacklist", - "BookLibraryHelp": "Audio and text books are supported. Review the {0}book naming guide{1}.", + "BookLibraryHelp": "Audio and text books are supported. Review the {0} book naming guide {1}.", "Books": "Books", "Box": "Box", "BoxSet": "Box Set", "BoxRear": "Box (rear)", "Browse": "Browse", "BrowsePluginCatalogMessage": "Browse our plugin catalog to view available plugins.", - "BurnSubtitlesHelp": "Determines if the server should burn in subtitles when transcoding videos. Avoiding this will greatly improve performance. Select Auto to burn image based formats (VOBSUB, PGS, SUB, IDX) and certain ASS or SSA subtitles.", + "BurnSubtitlesHelp": "Determines if the server should burn in subtitles when transcoding videos. Avoiding this will greatly improve performance. Select Auto to burn image based formats (VOBSUB, PGS, SUB, IDX, …) and certain ASS or SSA subtitles.", "ButtonAdd": "Add", "ButtonAddImage": "Add Image", "ButtonAddMediaLibrary": "Add Media Library", @@ -290,7 +290,6 @@ "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.", "HDPrograms": "HD programs", - "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.", @@ -311,6 +310,7 @@ "HeaderApiKey": "API Key", "HeaderApiKeys": "API Keys", "HeaderApiKeysHelp": "External applications are required to have an API key in order to communicate with Jellyfin Server. Keys are issued by logging in with a Jellyfin account, or by manually granting the application a key.", + "ApiKeysCaption": "List of the currently enabled API keys", "HeaderApp": "App", "HeaderAppearsOn": "Appears On", "HeaderAudioBooks": "Audio Books", @@ -354,6 +354,7 @@ "HeaderDirectPlayProfileHelp": "Add direct play profiles to indicate which formats the device can handle natively.", "HeaderDisplay": "Display", "HeaderDownloadSync": "Download & Sync", + "HeaderDVR": "DVR", "HeaderEasyPinCode": "Easy Pin Code", "HeaderEditImages": "Edit Images", "HeaderEnabledFields": "Enabled Fields", @@ -383,6 +384,7 @@ "HeaderGuideProviders": "TV Guide Data Providers", "HeaderHome": "Home", "HeaderHttpHeaders": "HTTP Headers", + "HeaderHttpsSettings": "HTTPS Settings", "HeaderIdentification": "Identification", "HeaderIdentificationCriteriaHelp": "Enter at least one identification criteria.", "HeaderIdentificationHeader": "Identification Header", @@ -449,6 +451,7 @@ "HeaderRecentlyPlayed": "Recently Played", "HeaderRecordingOptions": "Recording Options", "HeaderRecordingPostProcessing": "Recording Post Processing", + "HeaderRemoteAccessSettings": "Remote Access Settings", "HeaderRemoteControl": "Remote Control", "HeaderRemoveMediaFolder": "Remove Media Folder", "HeaderRemoveMediaLocation": "Remove Media Location", @@ -475,6 +478,7 @@ "HeaderSeries": "Series", "HeaderSeriesOptions": "Series Options", "HeaderSeriesStatus": "Series Status", + "HeaderServerAddressSettings": "Server Address Settings", "HeaderServerSettings": "Server Settings", "HeaderSettings": "Settings", "HeaderSetupLibrary": "Setup your media libraries", @@ -631,7 +635,7 @@ "LabelEmbedAlbumArtDidl": "Embed album art in Didl", "LabelEmbedAlbumArtDidlHelp": "Some devices prefer this method for obtaining album art. Others may fail to play with this option enabled.", "LabelEnableAutomaticPortMap": "Enable automatic port mapping", - "LabelEnableAutomaticPortMapHelp": "Attempt to automatically map the public port to the local port via UPnP. This may not work with some router models. Changes will not apply until after a server restart.", + "LabelEnableAutomaticPortMapHelp": "Automatically forward public ports on your router to local ports on your server via UPnP. This may not work with some router models or network configurations. Changes will not apply until after a server restart.", "LabelEnableBlastAliveMessages": "Blast alive messages", "LabelEnableBlastAliveMessagesHelp": "Enable this if the server is not detected reliably by other UPnP devices on your network.", "LabelEnableDlnaClientDiscoveryInterval": "Client discovery interval (seconds)", @@ -643,6 +647,8 @@ "LabelEnableDlnaServer": "Enable DLNA server", "LabelEnableDlnaServerHelp": "Allows UPnP devices on your network to browse and play content.", "LabelEnableHardwareDecodingFor": "Enable hardware decoding for:", + "LabelEnableHttps": "Enable HTTPS", + "LabelEnableHttpsHelp": "Enables the server to listen on the configured HTTPS port. A valid certificate must also be configured in order for this to take effect.", "LabelEnableRealtimeMonitor": "Enable real time monitoring", "LabelEnableRealtimeMonitorHelp": "Changes to files will be processed immediately, on supported file systems.", "LabelEnableSingleImageInDidlLimit": "Limit to single embedded image", @@ -652,7 +658,7 @@ "LabelEvent": "Event:", "LabelEveryXMinutes": "Every:", "LabelBaseUrl": "Base URL:", - "LabelBaseUrlHelp": "You can add a custom subdirectory here to access the server from a more unique URL.", + "LabelBaseUrlHelp": "Adds a custom subdirectory to the server URL. For example: http://example.com/<baseurl>", "LabelExtractChaptersDuringLibraryScan": "Extract chapter images during the library scan", "LabelExtractChaptersDuringLibraryScanHelp": "Generate chapter images when videos are imported during the library scan. Otherwise, they will be extracted during the chapter images scheduled task, allowing the regular library scan to complete faster.", "LabelFailed": "Failed", @@ -749,6 +755,9 @@ "LabelMusicStreamingTranscodingBitrate": "Music transcoding bitrate:", "LabelMusicStreamingTranscodingBitrateHelp": "Specify a max bitrate when streaming music.", "LabelName": "Name:", + "LabelChromecastVersion": "Chromecast Version", + "LabelStable": "Stable", + "LabelNightly": "Nightly", "LabelNewName": "New name:", "LabelNewPassword": "New password:", "LabelNewPasswordConfirm": "New password confirm:", @@ -759,7 +768,7 @@ "LabelNumberOfGuideDays": "Number of days of guide data to download:", "LabelNumberOfGuideDaysHelp": "Downloading more days worth of guide data provides the ability to schedule out further in advance and view more listings, but it will also take longer to download. Auto will choose based on the number of channels.", "LabelOptionalNetworkPath": "(Optional) Shared network folder:", - "LabelOptionalNetworkPathHelp": "If this folder is shared on your network, supplying the network share path can allow Jellyfin apps on other devices to access media files directly.", + "LabelOptionalNetworkPathHelp": "If this folder is shared on your network, supplying the network share path can allow Jellyfin apps on other devices to access media files directly. For example, {0} or {1}.", "LabelOriginalAspectRatio": "Original aspect ratio:", "LabelOriginalTitle": "Original title:", "LabelOverview": "Overview:", @@ -808,6 +817,8 @@ "LabelReleaseDate": "Release date:", "LabelRemoteClientBitrateLimit": "Internet streaming bitrate limit (Mbps):", "LabelRemoteClientBitrateLimitHelp": "An optional per-stream bitrate limit for all out of network devices. This is useful to prevent devices from requesting a higher bitrate than your internet connection can handle. This may result in increased CPU load on your server in order to transcode videos on the fly to a lower bitrate.", + "LabelRequireHttps": "Require HTTPS", + "LabelRequireHttpsHelp": "If checked, the server will automatically redirect all requests over HTTP to HTTPS. This has no effect if the server is not listening on HTTPS.", "LabelRuntimeMinutes": "Run time (minutes):", "LabelSaveLocalMetadata": "Save artwork into media folders", "LabelSaveLocalMetadataHelp": "Saving artwork into media folders will put them in a place where they can be easily edited.", @@ -816,7 +827,6 @@ "EnableFastImageFadeIn": "Fast image fade-in", "EnableFastImageFadeInHelp": "Enable faster fade-in animation for loaded images", "LabelSeasonNumber": "Season number:", - "LabelSecureConnectionsMode": "Secure connection mode:", "LabelSelectFolderGroups": "Automatically group content from the following folders into views such as Movies, Music and TV:", "LabelSelectFolderGroupsHelp": "Folders that are unchecked will be displayed by themselves in their own view.", "LabelSelectUsers": "Select users:", @@ -995,7 +1005,6 @@ "MessageCreateAccountAt": "Create an account at {0}", "MessageDeleteTaskTrigger": "Are you sure you wish to delete this task trigger?", "MessageDirectoryPickerBSDInstruction": "For BSD, you may need to configure storage within your FreeNAS Jail in order to allow Jellyfin to access it.", - "MessageDirectoryPickerInstruction": "Network paths can be entered manually in the event the Network button fails to locate your devices. For example, {0} or {1}.", "MessageDirectoryPickerLinuxInstruction": "For Linux on Arch Linux, CentOS, Debian, Fedora, openSUSE, or Ubuntu, you must grant the service user at least read access to your storage locations.", "MessageDownloadQueued": "Download queued.", "MessageEnablingOptionLongerScans": "Enabling this option may result in significantly longer library scans.", @@ -1195,7 +1204,7 @@ "OptionMissingEpisode": "Missing Episodes", "OptionMonday": "Monday", "OptionNameSort": "Name", - "OptionNew": "New...", + "OptionNew": "New…", "OptionNone": "None", "OptionOnAppStartup": "On application startup", "OptionOnInterval": "On an interval", @@ -1285,7 +1294,6 @@ "PreferEmbeddedTitlesOverFileNamesHelp": "This determines the default display title when no internet metadata or local metadata is available.", "PreferEmbeddedEpisodeInfosOverFileNamesHelp": "This uses the episode information from the embedded metadata if available.", "PreferEmbeddedEpisodeInfosOverFileNames": "Prefer embedded episode information over filenames", - "PreferredNotRequired": "Preferred, but not required", "Premiere": "Premiere", "Premieres": "Premieres", "Previous": "Previous", @@ -1324,7 +1332,6 @@ "RepeatOne": "Repeat one", "ReplaceAllMetadata": "Replace all metadata", "ReplaceExistingImages": "Replace existing images", - "RequiredForAllRemoteConnections": "Required for all remote connections", "RestartPleaseWaitMessage": "Please wait while Jellyfin Server shuts down and restarts. This may take a minute or two.", "ResumeAt": "Resume from {0}", "Rewind": "Rewind", @@ -1332,6 +1339,7 @@ "Runtime": "Runtime", "Saturday": "Saturday", "Save": "Save", + "SaveChanges": "Save changes", "SaveSubtitlesIntoMediaFolders": "Save subtitles into media folders", "SaveSubtitlesIntoMediaFoldersHelp": "Storing subtitles next to video files will allow them to be more easily managed.", "ScanForNewAndUpdatedFiles": "Scan for new and updated files", @@ -1410,6 +1418,7 @@ "TabDevices": "Devices", "TabDirectPlay": "Direct Play", "TabDisplay": "Display", + "TabDVR": "DVR", "TabEpisodes": "Episodes", "TabFavorites": "Favorites", "TabGenres": "Genres", diff --git a/src/strings/eo.json b/src/strings/eo.json new file mode 100644 index 000000000..3151c9e43 --- /dev/null +++ b/src/strings/eo.json @@ -0,0 +1,5 @@ +{ + "AddToCollection": "Aldoni al kolekto", + "Actor": "Aktoro", + "Absolute": "Absoluto" +} diff --git a/src/strings/es-ar.json b/src/strings/es-ar.json index 69c571a57..2fc290c66 100644 --- a/src/strings/es-ar.json +++ b/src/strings/es-ar.json @@ -1,6 +1,6 @@ { "ButtonQuickStartGuide": "Guía de inicio rápido", - "ButtonSignOut": "Sign out", + "ButtonSignOut": "Cerrar sesión", "EnableHardwareEncoding": "Habilitar la codificación de hardware", "FolderTypeTvShows": "TV", "HeaderAddUser": "Agregar Usuario", @@ -39,7 +39,7 @@ "Genres": "Géneros", "HeaderAlbumArtists": "Artistas de álbum", "HeaderContinueWatching": "Seguir viendo", - "HeaderNextUp": "A Continuación", + "HeaderNextUp": "Siguiente", "Movies": "Películas", "Photos": "Fotos", "Playlists": "Listas de reproducción", @@ -47,21 +47,21 @@ "Sync": "Sincronizar", "ValueSpecialEpisodeName": "Especial - {0}", "Absolute": "Absoluto", - "AccessRestrictedTryAgainLater": "El acceso está actualmente restringido. Por favor intente nuevamente mas tarde.", + "AccessRestrictedTryAgainLater": "El acceso está actualmente restringido. Por favor intente nuevamente más tarde.", "Actor": "Actor", "Add": "Agregar", - "AddItemToCollectionHelp": "Agregue items a las colecciones buscándolas y usando el click derecho o tocando el menu para añadirlas a una colección.", + "AddItemToCollectionHelp": "Agregue elementos a las colecciones buscándolos y usando el click derecho o tocando el menú para añadirlos a una colección.", "AddToCollection": "Añadir a la colección", - "AddToPlayQueue": "Añadir a la lista de reproducción", + "AddToPlayQueue": "Añadir a la cola de reproducción", "AddToPlaylist": "Añadir a la lista de reproducción", "AddedOnValue": "Añadidos {0}", - "AdditionalNotificationServices": "Navegue el catálogo de plugins para instalar servicios de notificación adicionales.", + "AdditionalNotificationServices": "Navegue el catálogo de complementos para instalar servicios de notificación adicionales.", "AirDate": "Fecha de emisión", "Aired": "Emitido", "Alerts": "Alertas", - "All": "Todo", + "All": "Todos", "AllChannels": "Todos los canales", - "AllComplexFormats": "Todos los formatos complejos (ASS, SSA, VOBSUB, PGS, SUB, IDX)", + "AllComplexFormats": "Todos los formatos complejos (ASS, SSA, VOBSUB, PGS, SUB, IDX, ...)", "AllEpisodes": "Todos los capítulos", "AllLanguages": "Todos los idiomas", "AllLibraries": "Todas las bibliotecas", @@ -69,9 +69,9 @@ "AllowMediaConversionHelp": "Permitir o denegar acceso a la opción de convertir medios.", "AllowOnTheFlySubtitleExtraction": "Permitir extracción de subtítulos al vuelo", "AllowOnTheFlySubtitleExtractionHelp": "Los subtítulos incrustados pueden extraerse de los videos y entregarse a los reproductores en texto plano para ayudar a evitar la transcodificación de video. En algunos sistemas, esto puede tardar mucho tiempo y provocar que la reproducción de video se detenga durante el proceso de extracción. Deshabilite esta opción para que los subtítulos incrustados se graben con transcodificación de video cuando no estén soportados de forma nativa por el dispositivo cliente.", - "AllowRemoteAccess": "Permitir conexiones remotas a este Servidor Jellyfin.", + "AllowRemoteAccess": "Permitir conexiones remotas a este servidor Jellyfin.", "AllowRemoteAccessHelp": "Si no está tildado, todas las conexiones remotas serán bloqueadas.", - "AlwaysPlaySubtitles": "Siempre mostrar subtítulos", + "AlwaysPlaySubtitles": "Reproducir siempre", "AnyLanguage": "Cualquier idioma", "Anytime": "Cualquier fecha", "Ascending": "Ascendente", @@ -79,21 +79,16 @@ "Audio": "Audio", "Auto": "Auto", "AutoBasedOnLanguageSetting": "Auto (basado en configuración de idioma)", - "AutomaticallyConvertNewContent": "Convertir contenido nuevo automáticamente", "Backdrop": "Fondo", - "AllowHWTranscodingHelp": "Permite que el sintonizador transcodifique las transmisiones sobre la marcha. Esto puede ayudar a reducir la transcodificación requerida por el servidor.", - "AllowedRemoteAddressesHelp": "Lista separada por comas de direcciones IP o IP/máscara-de-red para redes a las que se les permitirá conectarse de forma remota. Si se deja vacía, todas las direcciones remotas serán permitidas.", + "AllowHWTranscodingHelp": "Permita que el sintonizador transcodifique transmisiones sobre la marcha. Esto puede ayudar a reducir la transcodificación requerida por el servidor.", + "AllowedRemoteAddressesHelp": "Lista separada por comas de direcciones IP o IP/máscara de red para redes a las que se les permitirá conectarse de forma remota. Si se deja vacía, todas las direcciones remotas serán permitidas.", "AlwaysPlaySubtitlesHelp": "Los subtítulos que concuerden con la preferencia de idioma se cargarán independientemente del idioma del audio.", - "AndroidUnlockRestoreHelp": "Para recuperar tu compra anterior, por favor asegurate que iniciaste sesión en el dispositivo con la misma cuenta de Google (o Amazon) que hizo la compra originalmente. Asegurate de que la tienda de aplicaciones esté habilitada y no posea control parental alguno, y que tiene una conexión a Internet activa. Solo tendrás que hacer esto una sola vez para recuperar tu compra anterior.", "AroundTime": "Alrededor de {0}", "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", - "AutomaticallyConvertNewContentHelp": "El contenido nuevo que se agregue a esta carpeta va a convertirse automáticamente.", - "AutomaticallySyncNewContent": "Descargar contenido nuevo automáticamente", - "AutomaticallySyncNewContentHelp": "El contenido nuevo agregado a esta carpeta va a ser descargado automáticamente al dispositivo.", "Backdrops": "Imágenes de fondo", "Banner": "Cartel", "BestFit": "Mejor ajuste", @@ -128,7 +123,6 @@ "ButtonConfigurePassword": "Configurar contraseña", "ButtonConfigurePinCode": "Configurar clave PIN", "ButtonConnect": "Conectar", - "ButtonConvertMedia": "Convertir medios", "ButtonCreate": "Crear", "ButtonDelete": "Eliminar", "ButtonDeleteImage": "Eliminar imagen", @@ -169,7 +163,6 @@ "ButtonParentalControl": "Control parental", "ButtonPause": "Pausar", "ButtonPlay": "Reproducir", - "ButtonPlayOneMinute": "Reproducir un minuto", "ButtonPlayTrailer": "Tráiler", "ButtonPlaylist": "Lista de reproducción", "ButtonPreferences": "Preferencias", @@ -178,10 +171,8 @@ "ButtonPrivacyPolicy": "Política de privacidad", "ButtonProfile": "Perfil", "ButtonProfileHelp": "Definir imagen de perfil y contraseña", - "ButtonPurchase": "Comprar", "ButtonQuality": "Calidad", "ButtonRecord": "Grabar", - "ButtonReenable": "Reactivar", "ButtonRefresh": "Actualizar", "ButtonRefreshGuideData": "Actualizar datos de la guía", "ButtonReject": "Rechazar", @@ -192,12 +183,11 @@ "ButtonRepeat": "Repetir", "ButtonReports": "Reportes", "ButtonReset": "Restablecer", - "ButtonResetEasyPassword": "Restablecer codigo PIN", + "ButtonResetEasyPassword": "Restablecer código PIN", "ButtonResetPassword": "Restablecer contraseña", "ButtonResetTuner": "Restablecer sintonizador", "ButtonRestart": "Reiniciar", "ButtonRestartNow": "Reiniciar ahora", - "ButtonRestorePreviousPurchase": "Recuperar compra", "ButtonResume": "Resumir", "ButtonRevoke": "Revocar", "ButtonSave": "Guardar", @@ -213,12 +203,11 @@ "ButtonSendInvitation": "Enviar invitación", "ButtonServer": "Servidor", "ButtonServerDashboard": "Panel del servidor", - "ButtonSettings": "Ajustes", + "ButtonSettings": "Configuraciones", "ButtonShare": "Compartir", "ButtonShuffle": "Aleatorio", "ButtonShutdown": "Apagar", "ButtonSignIn": "Iniciar sesión", - "ButtonSignUp": "Registrarse", "ButtonSkip": "Saltear", "ButtonSort": "Ordenar", "ButtonStart": "Iniciar", @@ -230,8 +219,6 @@ "ButtonTrailer": "Tráiler", "ButtonTryAgain": "Intentar de nuevo", "ButtonUninstall": "Desinstalar", - "ButtonUnlockPrice": "Desbloquear {0}", - "ButtonUnlockWithPurchase": "Desbloquear con compra", "ButtonUnmute": "Desilenciar", "ButtonUp": "Arriba", "ButtonUpdateNow": "Actualizar ahora", @@ -251,11 +238,10 @@ "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", + "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 tráilers e introducciones personalizadas antes de la función principal.", - "CinemaModeConfigurationHelp2": "Las aplicaciones de Jellyfin tienen la opcion de habilitar o deshabilitar el modo cine. Las aplicaciones de TV activan el modo cine de forma predeterminada.", "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", @@ -265,8 +251,8 @@ "Composer": "Compositor", "ConfigureDateAdded": "Configura cómo se va a determinar las fechas de adición en la pestaña Bibliotecas del panel del servidor Jellyfin", "ConfirmDeleteImage": "¿Eliminar imagen?", - "ConfirmDeleteItem": "Eliminar este elemento lo eliminara tanto del sistema de archivos como de la biblioteca de medios. ¿Está seguro que desea continuar?", - "ConfirmDeleteItems": "Eliminar estos elementos los eliminara tanto del sistema de archivos como de la biblioteca de medios. ¿Está seguro que desea continuar?", + "ConfirmDeleteItem": "Eliminar este elemento lo eliminará tanto del sistema de archivos como de la biblioteca de medios. ¿Está seguro que desea continuar?", + "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?", @@ -286,20 +272,20 @@ "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 reproducido", + "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 unicamente.", + "DefaultMetadataLangaugeDescription": "Estos son tus predeterminados y pueden ser personalizados por librería únicamente.", "Delete": "Borrar", "DeleteDeviceConfirmation": "Estas seguro que quieres borrar este dispositivo? Este va a volver a aparecer cuando una persona se registre.", "DeleteImage": "Borrar Imagen", - "DeleteImageConfirmation": "Estas seguro que quieres borrar esta imagen?", + "DeleteImageConfirmation": "Estás seguro que quieres borrar esta imagen?", "DeleteMedia": "Borrar medio", - "DeleteUser": "Borrar Usuario", - "DeleteUserConfirmation": "Estas seguro que quieres borrar este usuario?", + "DeleteUser": "Borrar usuario", + "DeleteUserConfirmation": "Estás seguro que quieres borrar este usuario?", "Depressed": "Deprimido", "Descending": "Descendiente", "Desktop": "Escritorio", @@ -308,16 +294,16 @@ "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 en cuanto a la resolución y tipo de medio (H.264, AC3, etc.), pero está en un contenedor de archivo incompatible (mkv, avi, wmv, etc.). El video sera reempaquetado en el acto antes de transmitirlo al dispositivo.", - "DirectStreamHelp2": "Transmitir directamente un archivo usa muy poco procesamiento, esto sin perdida en la calidad de video.", - "DirectStreaming": "Transmisión en directo", + "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.", + "DirectStreaming": "Transmisión directa", "Director": "Director", "Directors": "Directores", "Disabled": "Deshabilitado", "Disc": "Disco", "Disconnect": "Desconectar", "Display": "Pantalla", - "DisplayInMyMedia": "Mostrar en pantalla principal", + "DisplayInMyMedia": "Mostrar en la pantalla de inicio", "DisplayInOtherHomeScreenSections": "Mostrar en las secciones de la pantalla principal, como últimos medios y continuar viendo", "DisplayMissingEpisodesWithinSeasons": "Mostrar episodios faltantes entre temporadas", "DisplayMissingEpisodesWithinSeasonsHelp": "Esto también debe estar habilitado para las bibliotecas de TV en la configuración del servidor.", @@ -345,8 +331,8 @@ "EnableCinemaMode": "Modo cine", "EnableColorCodedBackgrounds": "Habilitar colores en el fondo del código", "AuthProviderHelp": "Seleccione un proveedor de autenticación que se utilizará para autenticar la contraseña de este usuario.", - "CriticRating": "Calificación de la crítica", - "DefaultSubtitlesHelp": "Los subtítulos se cargan en base a los indicadores por defecto y los indicadores forzados en los metadatos embebidos. Las preferencias de idioma son consideradas cuando existe más de una opción.", + "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", @@ -409,10 +395,10 @@ "HeaderFavoriteEpisodes": "Episodios favoritos", "HeaderFavoriteArtists": "Artistas favoritos", "HeaderFavoriteAlbums": "Álbumes favoritos", - "Shows": "Series", + "Shows": "Programas", "CopyStreamURLError": "Hubo un error copiando la URL.", "CopyStreamURLSuccess": "URL copiada con éxito.", - "CopyStreamURL": "Copiar la URL de la transmisión", + "CopyStreamURL": "Copiar URL de transmisión", "ButtonSplit": "Dividir", "ButtonAddImage": "Agregar imagen", "AskAdminToCreateLibrary": "Preguntar al administrador para crear una biblioteca.", @@ -454,8 +440,8 @@ "ClientSettings": "Configuración de cliente", "BoxSet": "Colección", "Artist": "Artista", - "AlbumArtist": "Artista del Album", - "Album": "Album", + "AlbumArtist": "Artista del álbum", + "Album": "Álbum", "HeaderDateIssued": "Fecha de Emisión", "HeaderCustomDlnaProfiles": "Perfiles personalizados", "HeaderContinueListening": "Seguir escuchando", @@ -500,5 +486,177 @@ "HeaderDeleteItem": "Eliminar ítem", "HeaderDeleteDevice": "Eliminar dispositivo", "HeaderDefaultRecordingSettings": "Ajustes de grabación por defecto", - "UnsupportedPlayback": "Jellyfin no puede descifrar contenido protegido por DRM pero a pesar de esto lo intentará con todo el contenido, incluyendo títulos protegidos. Algunos archivos pueden aparecer completamente en negro por estar cifrados o por otras características no soportadas, como títulos interactivos." + "UnsupportedPlayback": "Jellyfin no puede descifrar contenido protegido por DRM pero a pesar de esto lo intentará con todo el contenido, incluyendo títulos protegidos. Algunos archivos pueden aparecer completamente en negro por estar cifrados o por otras características no soportadas, como títulos interactivos.", + "HeaderMediaFolders": "Carpetas de medios", + "HeaderMedia": "Medios", + "HeaderLoginFailure": "Error al iniciar sesión", + "HeaderLiveTvTunerSetup": "Configuración del sintonizador de TV en vivo", + "HeaderLiveTv": "TV en vivo", + "HeaderLibrarySettings": "Configuraciones de biblioteca", + "HeaderLibraryOrder": "Orden de biblioteca", + "HeaderLibraryFolders": "Carpetas de biblioteca", + "HeaderLibraryAccess": "Acceso a la biblioteca", + "HeaderLibraries": "Bibliotecas", + "HeaderLatestRecordings": "Grabaciones recientes", + "HeaderLatestMusic": "Música reciente", + "HeaderLatestMovies": "Películas recientes", + "HeaderLatestMedia": "Medios recientes", + "HeaderKeepSeries": "Mantener serie", + "HeaderKeepRecording": "Mantener grabación", + "HeaderItems": "Artículos", + "HeaderInstantMix": "Mezcla instantánea", + "HeaderInstall": "Instalar", + "HeaderImageSettings": "Configuraciones de imagen", + "HeaderImageOptions": "Opciones de imagen", + "HeaderIdentifyItemHelp": "Ingrese uno o más criterios de búsqueda. Eliminar criterios para aumentar los resultados de búsqueda.", + "HeaderIdentificationHeader": "Encabezado de identificación", + "HeaderIdentificationCriteriaHelp": "Ingrese al menos un criterio de identificación.", + "HeaderIdentification": "Identificación", + "HeaderHttpHeaders": "Encabezados HTTP", + "HeaderHome": "Inicio", + "HeaderGuideProviders": "Proveedores de datos de guías de TV", + "HeaderGenres": "Géneros", + "HeaderFrequentlyPlayed": "Reproducido con frecuencia", + "HeaderForgotPassword": "Olvidé la contraseña", + "HeaderForKids": "Para niños", + "HeaderFilters": "Filtros", + "HeaderFetcherSettings": "Configuración del recuperador", + "HeaderFetchImages": "Obtener imágenes:", + "HeaderFeatures": "Caracteristicas", + "HeaderFeatureAccess": "Acceso a características", + "HeaderFavoritePlaylists": "Listas de reproducción favoritas", + "ButtonTogglePlaylist": "Lista de reproducción", + "ButtonToggleContextMenu": "Más", + "HeaderPlaybackError": "Error de reproducción", + "HeaderPlayback": "Reproducción de medios", + "HeaderPlayOn": "Reproducir en", + "HeaderPlayAll": "Reproducir todo", + "HeaderPinCodeReset": "Restablecer código PIN", + "HeaderPhotoAlbums": "Álbumes de fotos", + "HeaderPeople": "Personas", + "HeaderPendingInvitations": "Invitaciones pendientes", + "HeaderPaths": "Rutas", + "HeaderPasswordReset": "Restablecer contraseña", + "HeaderPassword": "Contraseña", + "HeaderParentalRatings": "Calificaciones parentales", + "HeaderOtherItems": "Otros elementos", + "HeaderOnNow": "Ahora", + "HeaderNewDevices": "Nuevos dispositivos", + "HeaderNewApiKey": "Nueva clave de API", + "HeaderNavigation": "Navegación", + "HeaderMyMediaSmall": "Mis medios (pequeño)", + "HeaderMyMedia": "Mis medios", + "HeaderMyDevice": "Mi dispositivo", + "HeaderMusicVideos": "Videos musicales", + "HeaderMusicQuality": "Calidad de música", + "HeaderMovies": "Películas", + "LabelAccessDay": "Día de la semana:", + "LabelAbortedByServerShutdown": "(Abortado por el apagado del servidor)", + "Label3DFormat": "Formato 3D:", + "Kids": "Niños", + "Items": "Artículos", + "ItemCount": "{0} artículos", + "InstantMix": "Mezcla instantánea", + "InstallingPackage": "Instalando {0} (versión {1})", + "ImportFavoriteChannelsHelp": "Si está habilitado, solo se importarán los canales que estén marcados como favoritos en el dispositivo sintonizador.", + "Images": "Imágenes", + "Identify": "Identificar", + "HttpsRequiresCert": "Para habilitar conexiones seguras, deberá proporcionar un certificado SSL confiable, como Let's Encrypt. Proporcione un certificado o desactive las conexiones seguras.", + "Horizontal": "Horizontal", + "Home": "Inicio", + "HideWatchedContentFromLatestMedia": "Ocultar contenido visto de los últimos medios", + "Hide": "Ocultar", + "Help": "Ayuda", + "HeadersFolders": "Carpetas", + "HeaderYears": "Años", + "HeaderXmlSettings": "Configuraciones Xml", + "HeaderXmlDocumentAttributes": "Atributos del documento Xml", + "HeaderXmlDocumentAttribute": "Atributo de documento Xml", + "HeaderVideos": "Videos", + "HeaderVideoTypes": "Tipos de video", + "HeaderVideoType": "Tipo de video", + "HeaderVideoQuality": "Calidad de video", + "HeaderUsers": "Usuarios", + "HeaderUser": "Usuario", + "HeaderUploadImage": "Subir imagen", + "HeaderUpcomingOnTV": "Próximamente en TV", + "HeaderTypeText": "Ingrese texto", + "HeaderTuners": "Sintonizadores", + "HeaderTunerDevices": "Dispositivos sintonizadores", + "HeaderTranscodingProfileHelp": "Agregue perfiles de transcodificación para indicar qué formatos deben usarse cuando se requiere transcodificación.", + "HeaderTranscodingProfile": "Perfil de transcodificación", + "HeaderTracks": "Pistas", + "HeaderThisUserIsCurrentlyDisabled": "Este usuario está actualmente deshabilitado", + "HeaderTaskTriggers": "Desencadenantes de tareas", + "HeaderTags": "Etiquetas", + "HeaderSystemDlnaProfiles": "Perfiles del sistema", + "HeaderSubtitleProfilesHelp": "Los perfiles de subtítulos describen los formatos de subtítulos compatibles con el dispositivo.", + "HeaderSubtitleProfiles": "Perfiles de subtítulos", + "HeaderSubtitleProfile": "Perfil de subtítulos", + "HeaderSubtitleDownloads": "Descargas de subtítulos", + "HeaderSubtitleAppearance": "Apariencia de subtítulos", + "HeaderStopRecording": "Detener grabación", + "HeaderStatus": "Estado", + "HeaderStartNow": "Empezar ahora", + "HeaderSpecialFeatures": "Características especiales", + "HeaderSpecialEpisodeInfo": "Información especial del episodio", + "HeaderSortOrder": "Orden de clasificación", + "HeaderSortBy": "Ordenar por", + "HeaderShutdown": "Apagar", + "HeaderSetupLibrary": "Configura tus bibliotecas de medios", + "HeaderSettings": "Configuraciones", + "HeaderServerSettings": "Configuración del servidor", + "HeaderServerAddressSettings": "Configuración de la dirección del servidor", + "HeaderSeriesStatus": "Estado de la serie", + "HeaderSeriesOptions": "Opciones de serie", + "HeaderSendMessage": "Enviar mensaje", + "HeaderSelectTranscodingPathHelp": "Examine o ingrese la ruta a utilizar para transcodificar archivos temporales. La carpeta debe ser grabable.", + "HeaderSelectTranscodingPath": "Seleccionar ruta temporal de transcodificación", + "HeaderSelectServerCachePathHelp": "Examine o ingrese la ruta a utilizar para los archivos de caché del servidor. La carpeta debe ser grabable.", + "HeaderSelectServerCachePath": "Seleccionar ruta de caché del servidor", + "HeaderSelectServer": "Seleccionar servidor", + "HeaderSelectPath": "Seleccionar ruta", + "HeaderSelectMetadataPathHelp": "Examine o ingrese la ruta en la que desea almacenar metadatos. La carpeta debe ser grabable.", + "HeaderSelectMetadataPath": "Seleccionar ruta de metadatos", + "HeaderSelectCertificatePath": "Seleccionar ruta del certificado", + "HeaderSecondsValue": "{0} segundos", + "HeaderSeasons": "Temporadas", + "HeaderSchedule": "Programación", + "HeaderScenes": "Escenas", + "HeaderRunningTasks": "Ejecución de tareas", + "HeaderRevisionHistory": "Revisión histórica", + "HeaderRestartingServer": "Reiniciando servidor", + "HeaderRestart": "Reiniciar", + "HeaderResponseProfile": "Perfil de respuesta", + "HeaderRemoveMediaLocation": "Eliminar ubicación de medios", + "HeaderRemoveMediaFolder": "Eliminar carpeta de medios", + "HeaderRemoteControl": "Control remoto", + "HeaderRemoteAccessSettings": "Configuración de acceso remoto", + "HeaderRecordingPostProcessing": "Grabación posterior al procesamiento", + "HeaderRecordingOptions": "Opciones de grabación", + "HeaderRecentlyPlayed": "Recientemente reproducido", + "HeaderProfileServerSettingsHelp": "Estos valores controlan cómo el servidor Jellyfin se presentará al dispositivo.", + "HeaderProfileInformation": "Información del perfil", + "HeaderProfile": "Perfil", + "HeaderPreferredMetadataLanguage": "Lenguaje de metadatos preferido", + "HeaderPluginInstallation": "Instalación de complementos", + "HeaderPleaseSignIn": "Por favor, inicie sesión", + "HeaderNextVideoPlayingInValue": "Reproducción del siguiente video en {0}", + "HeaderNextEpisodePlayingInValue": "Reproducción del siguiente episodio en {0}", + "HeaderMoreLikeThis": "Más como esto", + "HeaderMetadataSettings": "Configuraciones de metadatos", + "HeaderMediaInfo": "Información de medios", + "HeaderHttpsSettings": "Configuraciones HTTPS", + "HeaderEnabledFieldsHelp": "Desmarque un campo para bloquearlo y evitar que se modifiquen sus datos.", + "HeaderDirectPlayProfileHelp": "Agregue perfiles de reproducción directa para indicar qué formatos puede manejar el dispositivo de forma nativa.", + "ApiKeysCaption": "Lista de las claves de API habilitadas actualmente", + "LabelArtists": "Artistas:", + "LabelAppName": "Nombre de la aplicación", + "LabelAllowedRemoteAddressesMode": "Modo de filtro de dirección IP remota:", + "LabelAlbum": "Álbum:", + "LabelAirTime": "Tiempo al aire:", + "LabelAirDays": "Días al aire:", + "LabelAccessStart": "Hora de inicio:", + "LabelAccessEnd": "Hora de finalización:", + "HeaderDVR": "DVR" } diff --git a/src/strings/es-mx.json b/src/strings/es-mx.json index fcf564381..140addc8f 100644 --- a/src/strings/es-mx.json +++ b/src/strings/es-mx.json @@ -1,36 +1,35 @@ { "Absolute": "Absoluto", "Accept": "Aceptar", - "AccessRestrictedTryAgainLater": "El acceso está restringido actualmente. Por favor, inténtelo más tarde.", + "AccessRestrictedTryAgainLater": "El acceso está restringido actualmente. Por favor, inténtalo más tarde.", "Add": "Agregar", - "AddItemToCollectionHelp": "Agregue elementos a las colecciones buscándolos y utilizando sus menús al hacer clic derecho o al tocarlos para agregarlos a una colección.", + "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.", "AddToCollection": "Agregar a colección", "AddToPlayQueue": "Agregar a la cola de reproducción", "AddToPlaylist": "Agregar a lista de reproducción", "AddedOnValue": "Agregado {0}", - "AdditionalNotificationServices": "Explore el catálogo de complementos para instalar servicios de notificaciones adicionales.", + "AdditionalNotificationServices": "Explora el catálogo de complementos para instalar servicios de notificaciones adicionales.", "AirDate": "Fecha de emisión", "Aired": "Transmitido", "Albums": "Álbumes", "Alerts": "Alertas", "All": "Todo", "AllChannels": "Todos los canales", - "AllComplexFormats": "Todos los formatos complejos (ASS, SSA, VOBSUB, PGS, SUB, IDX)", + "AllComplexFormats": "Todos los formatos complejos (ASS, SSA, VOBSUB, PGS, SUB, IDX...)", "AllEpisodes": "Todos los episodios", "AllLanguages": "Todos los idiomas", "AllLibraries": "Todas las bibliotecas", - "AllowHWTranscodingHelp": "Permite que el sintonizador transcodifique las transmisiones sobre la marcha. Esto puede ayudar a reducir la transcodificación requerida por el servidor.", + "AllowHWTranscodingHelp": "Permite al sintonizador transcodificar las transmisiones sobre la marcha. Esto puede ayudar a reducir la transcodificación requerida por el servidor.", "AllowMediaConversion": "Permitir conversión de medios", "AllowMediaConversionHelp": "Permitir o denegar acceso a la función de convertir medios.", "AllowOnTheFlySubtitleExtraction": "Permitir la extracción de subtítulos sobre la marcha", "AllowOnTheFlySubtitleExtractionHelp": "Los subtítulos incrustados pueden extraerse de los videos y entregarse a los clientes en texto plano para ayudar a evitar la transcodificación de video. En algunos sistemas, esto puede tardar mucho tiempo y provocar que la reproducción de video se detenga durante el proceso de extracción. Deshabilite esta opción para que los subtítulos incrustados se graben con transcodificación de video cuando no estén soportados de forma nativa por el dispositivo cliente.", - "AllowRemoteAccess": "Permitir conexiones remotas a este Servidor Jellyfin.", - "AllowRemoteAccessHelp": "Si se deshabilita, todas las conexiones remotas serán bloqueadas.", - "AllowedRemoteAddressesHelp": "Lista separada por comas de direcciones IP/mascaras de subred para las redes a las que se les permitirá conectarse remotamente. Si se deja en blanco, todas las IP remotas serán permitidas.", - "AlwaysPlaySubtitles": "Siempre mostrar subtítulos", - "AlwaysPlaySubtitlesHelp": "Los subtítulos que coincidan con el lenguaje preferido serán cargados independientemente del lenguaje del audio.", + "AllowRemoteAccess": "Permitir conexiones remotas a este servidor Jellyfin.", + "AllowRemoteAccessHelp": "Si no se marca, se bloquearán todas las conexiones remotas.", + "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", - "AndroidUnlockRestoreHelp": "Para restaurar su compra previa, por favor asegúrese de que se encuentra registrado en el dispositivo con la misma cuenta de Google (o Amazon) con que hizo la compra. Asegúrese que la tienda de aplicaciones esta habilitada, no esta restringida por cualquier control parental y que tiene una conexión de internet activa. Esto se tiene que hacer solo una vez para restaurar su compra previa.", "AnyLanguage": "Cualquier idioma", "Anytime": "En cualquier momento", "AroundTime": "Alrededor de {0}", @@ -40,43 +39,43 @@ "Ascending": "Ascendente", "AspectRatio": "Relación de aspecto", "AttributeNew": "Nuevo", - "AutoBasedOnLanguageSetting": "Auto (basado en la configuración del lenguaje)", - "Backdrop": "Imagen de Fondo", + "AutoBasedOnLanguageSetting": "Auto (basado en la configuración del idioma)", + "Backdrop": "Imagen de fondo", "Backdrops": "Imágenes de fondo", - "Banner": "Cartel", + "Banner": "Banner", "BestFit": "Mejor ajuste", "BirthDateValue": "Nacimiento: {0}", "BirthLocation": "Lugar de nacimiento", "BirthPlaceValue": "Lugar de nacimiento: {0}", - "Blacklist": "Bloqueados", - "BookLibraryHelp": "Los libros de texto y audio libros son soportados. Revise la {0}Guía para Nomenclatura de Libros{1}.", + "Blacklist": "Lista negra", + "BookLibraryHelp": "Los libros de texto y audiolibros están soportados. Revisa la {0} guía de nombrado de libros {1}.", "Books": "Libros", "Box": "Caja", - "BoxRear": "Reverso de caja", - "Browse": "Navegar", - "BrowsePluginCatalogMessage": "Explorar el catalogo de complementos para ver los complementos disponibles.", - "BurnSubtitlesHelp": "Determina si el servidor debe grabar subtítulos al transcodificar videos. Evitar esto mejorará altamente el rendimiento del servidor. Seleccione Auto para grabar formatos basados en imágenes (VOBSUB, PGS, SUB/IDX) y ciertos subtítulos ASS o SSA.", + "BoxRear": "Caja (parte trasera)", + "Browse": "Explorar", + "BrowsePluginCatalogMessage": "Explora nuestro catálogo de complementos para ver los complementos disponibles.", + "BurnSubtitlesHelp": "Determina si el servidor debería quemar los subtítulos al transcodificar videos. Evitar esto mejorará altamente el rendimiento del servidor. Seleccione Auto para grabar formatos basados en imágenes (VOBSUB, PGS, SUB, IDX...) y ciertos subtítulos ASS o SSA.", "ButtonAdd": "Agregar", - "ButtonAddMediaLibrary": "Agregar Biblioteca de Medios", - "ButtonAddScheduledTaskTrigger": "Agregar Disparador", - "ButtonAddServer": "Agregar Servidor", - "ButtonAddUser": "Agregar Usuario", + "ButtonAddMediaLibrary": "Agregar biblioteca de medios", + "ButtonAddScheduledTaskTrigger": "Agregar disparador", + "ButtonAddServer": "Agregar servidor", + "ButtonAddUser": "Agregar usuario", "ButtonArrowDown": "Abajo", "ButtonArrowLeft": "Izquierda", "ButtonArrowRight": "Derecha", "ButtonArrowUp": "Arriba", - "ButtonAudioTracks": "Pistas de Audio", + "ButtonAudioTracks": "Pistas de audio", "ButtonBack": "Atrás", "ButtonCancel": "Cancelar", - "ButtonChangeServer": "Cambiar Servidor", + "ButtonChangeServer": "Cambiar servidor", "ButtonConnect": "Conectar", "ButtonDelete": "Eliminar", - "ButtonDeleteImage": "Eliminar Imagen", + "ButtonDeleteImage": "Eliminar imagen", "ButtonDown": "Abajo", "ButtonDownload": "Descargar", "ButtonEdit": "Editar", "ButtonEditImages": "Editar imágenes", - "ButtonEditOtherUserPreferences": "Editar el perfíl de este usuario. imágen y preferencias personales.", + "ButtonEditOtherUserPreferences": "Editar el perfil, la imagen y las preferencias personales de este usuario.", "ButtonFilter": "Filtro", "ButtonForgotPassword": "Olvidé mi contraseña", "ButtonFullscreen": "Pantalla completa", @@ -84,9 +83,9 @@ "ButtonGuide": "Guía", "ButtonHelp": "Ayuda", "ButtonHome": "Inicio", - "ButtonLearnMore": "Aprenda más", - "ButtonLibraryAccess": "Acceso a biblioteca", - "ButtonManualLogin": "Inicio de Sesión Manual", + "ButtonLearnMore": "Aprender más", + "ButtonLibraryAccess": "Acceso a biblioteca(s)", + "ButtonManualLogin": "Inicio de sesión manual", "ButtonMore": "Más", "ButtonNetwork": "Red", "ButtonNew": "Nuevo", @@ -97,29 +96,29 @@ "ButtonPause": "Pausar", "ButtonPlay": "Reproducir", "ButtonPreviousTrack": "Pista anterior", - "ButtonProfile": "Perfíl", - "ButtonQuickStartGuide": "Guía de Inicio Rápido", + "ButtonProfile": "Perfil", + "ButtonQuickStartGuide": "Guía de inicio rápido", "ButtonRefresh": "Actualizar", - "ButtonRefreshGuideData": "Actualizar Datos de la Guía", - "ButtonRemove": "Eliminar", + "ButtonRefreshGuideData": "Actualizar datos de la guía", + "ButtonRemove": "Remover", "ButtonRename": "Renombrar", "ButtonRepeat": "Repetir", - "ButtonResetEasyPassword": "Restaurar código pin sencillo", - "ButtonResetPassword": "Restablecer Contraseña", + "ButtonResetEasyPassword": "Reiniciar el código pin sencillo", + "ButtonResetPassword": "Restablecer contraseña", "ButtonRestart": "Reiniciar", "ButtonResume": "Continuar", "ButtonRevoke": "Revocar", "ButtonSave": "Guardar", - "ButtonScanAllLibraries": "Escanear Todas las Bibliotecas", + "ButtonScanAllLibraries": "Escanear todas las bibliotecas", "ButtonSearch": "Búsqueda", - "ButtonSelectDirectory": "Seleccionar Carpeta", - "ButtonSelectServer": "Seleccionar Servidor", + "ButtonSelectDirectory": "Seleccionar directorio", + "ButtonSelectServer": "Seleccionar servidor", "ButtonSelectView": "Seleccionar vista", "ButtonSend": "Enviar", "ButtonSettings": "Configuración", "ButtonShuffle": "Aleatorio", "ButtonShutdown": "Apagar", - "ButtonSignIn": "Iniciar Sesión", + "ButtonSignIn": "Iniciar sesión", "ButtonSignOut": "Cerrar sesión", "ButtonSort": "Ordenar", "ButtonStart": "Iniciar", @@ -133,70 +132,70 @@ "CancelRecording": "Cancelar grabación", "CancelSeries": "Cancelar serie", "Categories": "Categorías", - "ChangingMetadataImageSettingsNewContent": "Cambios en las configuraciones de descarga de metadatos o arte solo se aplicaran a contenido nuevo agregado a su biblioteca. Para aplicar los cambios a los títulos existentes, necesita actualizar los metadatos manualmente.", - "ChannelAccessHelp": "Seleccione los canales a compartir con este usuario. Los administradores podrán editar todos los canales empleando el administrador de metadatos.", + "ChangingMetadataImageSettingsNewContent": "Cambios en las configuraciones de descarga de metadatos o arte solo se aplicarán a contenido nuevo agregado a tu biblioteca. Para aplicar los cambios a los títulos existentes, necesitarás actualizar sus metadatos manualmente.", + "ChannelAccessHelp": "Selecciona los canales a compartir con este usuario. Los administradores podrán editar todos los canales empleando el administrador de metadatos.", "ChannelNameOnly": "Canal {0} solamente", - "ChannelNumber": "Numero de canal", + "ChannelNumber": "Número de canal", "Channels": "Canales", - "CinemaModeConfigurationHelp": "El modo cine trae la experiencia del cine directo al la sala de TV con la habilidad de reproducir tráilers e intros personalizados antes de la presentación estelar.", + "CinemaModeConfigurationHelp": "El modo cine lleva la experiencia del cine directamente a tu sala de estar con la capacidad de reproducir trailers e introducciones personalizadas antes de la función principal.", "Collections": "Colecciones", "ColorPrimaries": "Colores primarios", "ColorSpace": "Espacio de color", "ColorTransfer": "Transferencia de color", "CommunityRating": "Calificación de la comunidad", "Composer": "Compositor", - "ConfigureDateAdded": "Configure como la fecha de adición es determinada en el Panel de Control del Servidor Jellyfin bajo la configuración de Bibliotecas", + "ConfigureDateAdded": "Configura cómo se determina la fecha de adición en el panel de control del servidor Jellyfin en la configuración de la biblioteca", "ConfirmDeleteImage": "¿Eliminar imagen?", - "ConfirmDeleteItem": "Al eliminar este ítem se eliminará tanto del sistema de archivos como de su biblioteca de medios. ¿Esta seguro de querer continuar?", - "ConfirmDeleteItems": "Al borrar estos items serán eliminados tanto del sistema de archivos como de la biblioteca de medios. ¿Esta seguro que desea continuar?", + "ConfirmDeleteItem": "Eliminar este elemento lo eliminará tanto del sistema como de tu biblioteca de medios. ¿Estás seguro de querer continuar?", + "ConfirmDeleteItems": "Eliminar estos elementos los eliminará tanto del sistema como de tu biblioteca de medios. ¿Estás seguro de querer continuar?", "ConfirmDeletion": "Confirmar eliminación", - "ConfirmEndPlayerSession": "¿Desea cerrar Jellyfin en {0}?", + "ConfirmEndPlayerSession": "¿Deseas apagar Jellyfin en {0}?", "Connect": "Conectar", "ContinueWatching": "Continuar viendo", "Continuing": "Continuando", - "CriticRating": "Calificación de la crítica", + "CriticRating": "Calificación de los críticos", "CustomDlnaProfilesHelp": "Crear un perfil personalizado para un nuevo dispositivo o reemplazar un perfil del sistema.", "DateAdded": "Fecha de adición", "DatePlayed": "Fecha de reproducción", - "DeathDateValue": "Terminación: {0}", + "DeathDateValue": "Falleció: {0}", "Default": "Por defecto", - "DefaultErrorMessage": "Ha ocurrido un error al procesar la solicitud. Por favor inténtelo de nuevo mas tarde.", - "DefaultMetadataLangaugeDescription": "Estas son sus configuraciones por defecto y puedes ser personalizadas independientemente en cada biblioteca.", - "DefaultSubtitlesHelp": "Los subtitulos son cargados basados en los indicadores \"por defecto\" y \"forzado\" incluidos en los metadatos. Las preferencias de idioma son consideradas cuando hay múltiples opciones disponibles.", + "DefaultErrorMessage": "Ha ocurrido un error al procesar la solicitud. Por favor, inténtalo de nuevo más tarde.", + "DefaultMetadataLangaugeDescription": "Estos son sus valores por defecto y pueden ser personalizados en cada biblioteca.", + "DefaultSubtitlesHelp": "Los subtítulos se cargan basados en los indicadores «por defecto» y «forzado» incluidos en los metadatos. Las preferencias de idioma son consideradas cuando hay múltiples opciones disponibles.", "Delete": "Eliminar", - "DeleteDeviceConfirmation": "¿Está seguro de querer eliminar este dispositivo? Volverá a aparecer la siguiente vez que un usuario inicie sesión en él.", + "DeleteDeviceConfirmation": "¿Estás seguro de querer eliminar este dispositivo? Volverá a aparecer la siguiente vez que un usuario inicie sesión con él.", "DeleteImage": "Eliminar imagen", - "DeleteImageConfirmation": "¿Está seguro de querer eliminar esta imagen?", + "DeleteImageConfirmation": "¿Estás seguro de querer eliminar esta imagen?", "DeleteMedia": "Eliminar medios", - "DeleteUser": "Eliminar Usuario", - "DeleteUserConfirmation": "¿Está seguro de querer eliminar este usuario?", - "Depressed": "Depresión", + "DeleteUser": "Eliminar usuario", + "DeleteUserConfirmation": "¿Estás seguro de querer eliminar este usuario?", + "Depressed": "Presionado", "Descending": "Descendente", "Desktop": "Escritorio", "DetectingDevices": "Detectando dispositivos", - "DeviceAccessHelp": "Esto solo aplica a dispositivos que pueden ser identificados de manera individual y no evitará acceso al navegador. Al filtrar el acceso de usuarios a dispositivos se impedirá que utilicen nuevos dispositivos hasta que hayan sido aprobados aquí.", + "DeviceAccessHelp": "Esto solo se aplica a los dispositivos que pueden ser identificados de manera única y no impedirá el acceso desde navegadores. Filtrar el acceso a los dispositivos de los usuarios les impedirá usar nuevos dispositivos hasta que hayan sido aprobados aquí.", "DirectPlaying": "Reproducción directa", - "DirectStreamHelp1": "El medio es compatible con el dispositivo en cuanto a la resolución y tipo de medio (H.264, AC3, etc.), pero está en un contenedor de archivo incompatible (mkv, avi, wmv, etc.). El video sera reempaquetado en el acto antes de transmitirlo al dispositivo.", - "DirectStreamHelp2": "La Transmisión Directa de un archivo usa muy poco poder de procesamiento sin ninguna perdida en la calidad de video.", - "DirectStreaming": "Transmisión Directa", + "DirectStreamHelp1": "El medio es compatible con el dispositivo en cuanto a la resolución y tipo de medio (H.264, AC3, etc.), pero está en un contenedor de archivo incompatible (mkv, avi, wmv, etc.). El video será reempaquetado sobre la marcha antes de transmitirlo al dispositivo.", + "DirectStreamHelp2": "Transmitir directamente un archivo usa muy poco poder de procesamiento sin ninguna perdida en la calidad de video.", + "DirectStreaming": "Transmisión directa", "Directors": "Directores", "Disabled": "Desactivado", "Disc": "DIsco", "Disconnect": "Desconectar", "Dislike": "No me gusta", "Display": "Pantalla", - "DisplayInMyMedia": "Mostrar en pantalla de inicio", - "DisplayInOtherHomeScreenSections": "Mostrar en las secciones de la pantalla de inicio como Recientes o Continua Viendo", + "DisplayInMyMedia": "Mostrar en la pantalla de inicio", + "DisplayInOtherHomeScreenSections": "Mostrar en las secciones de la pantalla de inicio como recientes o continuar viendo", "DisplayMissingEpisodesWithinSeasons": "Mostrar episodios faltantes en las temporadas", "DisplayMissingEpisodesWithinSeasonsHelp": "Esto también debe estar habilitado para las bibliotecas de TV en la configuración del servidor.", - "DisplayModeHelp": "Seleccione el estilo de diseño que desea en la Interfaz.", + "DisplayModeHelp": "Selecciona el estilo de diseño que desea para la interfaz.", "DoNotRecord": "No grabar", "Down": "Abajo", "Download": "Descargar", "DownloadsValue": "{0} descargas", "DrmChannelsNotImported": "Los canales con DRM no serán importados.", "DropShadow": "Sombra paralela", - "EasyPasswordHelp": "El código PIN fácil se utiliza para el acceso sin conexión en los clientes soportados y también puede utilizarse para acceder fácilmente cuando se está en la misma red.", + "EasyPasswordHelp": "Tu código PIN fácil se utiliza para el acceso sin conexión en los clientes soportados y también puede utilizarse para acceder fácilmente cuando se está en la misma red.", "Edit": "Editar", "EditImages": "Editar imágenes", "EditMetadata": "Editar metadatos", @@ -204,17 +203,17 @@ "EnableBackdrops": "Imágenes de fondo", "EnableBackdropsHelp": "Muestra imágenes de fondo en el fondo de algunas páginas mientras se navega por la biblioteca.", "EnableCinemaMode": "Modo cine", - "EnableColorCodedBackgrounds": "Fondos de color codificado", + "EnableColorCodedBackgrounds": "Fondos de color codificados", "EnableDisplayMirroring": "Duplicado de pantalla", "EnableExternalVideoPlayers": "Reproductores de video externos", "EnableExternalVideoPlayersHelp": "Un menú de reproductor externo se mostrara cuando inicie la reproducción de un video.", "EnableHardwareEncoding": "Habilitar codificación por hardware", "EnableNextVideoInfoOverlay": "Mostrar la información del siguiente video durante la reproducción", - "EnableNextVideoInfoOverlayHelp": "Al finalizar un video, mostrar información sobre el siguiente video a reproducir en la lista de reproducción.", + "EnableNextVideoInfoOverlayHelp": "Al finalizar un video, mostrar información sobre el siguiente video a reproducir en la lista de reproducción actual.", "EnablePhotos": "Mostrar fotografías", "EnablePhotosHelp": "Las imágenes serán detectadas y mostradas junto con otros archivos multimedia.", - "EnableStreamLooping": "Repetir automáticamente transmisiones en vivo", - "EnableStreamLoopingHelp": "Habilite esta opción si las transmisiones en vivo contienen solo unos pocos segundos de datos y necesitan ser solicitadas continuamente. Habilitarlo cuando no es requerido puede causar problemas.", + "EnableStreamLooping": "Repetir automáticamente las transmisiones en vivo", + "EnableStreamLoopingHelp": "Habilita esta opción si las transmisiones en vivo contienen solo unos pocos segundos de datos y necesitan ser solicitadas continuamente. Habilitar esto cuando no es requerido puede causar problemas.", "EnableThemeSongs": "Canciones temáticas", "EnableThemeSongsHelp": "Reproducir canciones temáticas en el fondo mientras se navega por la biblioteca.", "EnableThemeVideos": "Videos temáticos", @@ -222,21 +221,21 @@ "Ended": "Finalizado", "EndsAtValue": "Termina a las {0}", "Episodes": "Episodios", - "ErrorAddingListingsToSchedulesDirect": "Hubo un error agregando la programación de su cuenta de Schedules Direct. Schedules Direct solo permite un numero limitado de programaciones por cuenta. Tal vez necesite acceder al sitio web de Schedules Direct y eliminar otras programaciones de su cuenta antes de continuar.", - "ErrorAddingMediaPathToVirtualFolder": "Hubo un error agregando la ruta de medios. Por favor asegúrese de que la ruta es valida y que el proceso del Servidor Jellyfin tenga acceso a ese destino.", - "ErrorAddingTunerDevice": "Hubo un error al agregar el dispositivo sintonizador. Por favor asegúrese de que este disponible e intente de nuevo.", - "ErrorAddingXmlTvFile": "Hubo un error accediendo al archivo XMLTV. Por favor asegúrese de que el archivo existe e intente de nuevo.", - "ErrorDeletingItem": "Hubo un error eliminando el ítem del Servidor Jellyfin. Por favor verifique tenga permisos de escritura en la carpeta de medios e intente de nuevo.", - "ErrorGettingTvLineups": "Hubo un error al descargar la programación de TV. Por favor, asegúrese de que su información este correcta e inténtelo de nuevo.", - "ErrorMessageStartHourGreaterThanEnd": "El horario de fin debe ser mayor al de comienzo.", - "ErrorPleaseSelectLineup": "Por favor seleccione una programación e intente de nuevo. Si no hay disponible ninguna, entonces por favor verifique que su nombre de usuario, contraseña, y código postal sean correctos.", - "ErrorSavingTvProvider": "Hubo un error al salvar el proveedor de TV. Por favor asegúrese de que este disponible e intente de nuevo.", + "ErrorAddingListingsToSchedulesDirect": "Hubo un error agregando la programación de tu cuenta de Schedules Direct. Schedules Direct solo permite un numero limitado de programaciones por cuenta. Tal vez necesites acceder al sitio web de Schedules Direct y eliminar otras programaciones de tu cuenta antes de continuar.", + "ErrorAddingMediaPathToVirtualFolder": "Hubo un error agregando la ruta de medios. Por favor, asegúrate de que la ruta es válida y que el proceso del servidor Jellyfin tiene acceso a ese destino.", + "ErrorAddingTunerDevice": "Hubo un error al agregar el dispositivo sintonizador. Por favor, asegúrate de que esté disponible e inténtalo de nuevo.", + "ErrorAddingXmlTvFile": "Hubo un error accediendo al archivo XMLTV. Por favor, asegúrate de que el archivo existe e inténtalo de nuevo.", + "ErrorDeletingItem": "Hubo un error eliminando el elemento del servidor Jellyfin. Por favor, verifica que el servidor Jellyfin tiene permisos de escritura en la carpeta del medio e inténtalo de nuevo.", + "ErrorGettingTvLineups": "Hubo un error al descargar la programación de TV. Por favor, asegúrate de que tu información sea correcta e inténtalo de nuevo.", + "ErrorMessageStartHourGreaterThanEnd": "La hora de finalización debe ser mayor que la hora de inicio.", + "ErrorPleaseSelectLineup": "Por favor, selecciona una programación e inténtalo de nuevo. Si no hay disponible ninguna, entonces, por favor, verifica que tu nombre de usuario, contraseña, y código postal sean correctos.", + "ErrorSavingTvProvider": "Hubo un error al guardar el proveedor de TV. Por favor, asegúrate de que sea accesible e inténtalo de nuevo.", "EveryNDays": "Cada {0} días", - "ExitFullscreen": "Salir de Pantalla Completa", + "ExitFullscreen": "Salir de la pantalla completa", "ExtraLarge": "Extra grande", "ExtractChapterImagesHelp": "La extracción de imágenes de capítulos permitirá a los clientes mostrar menús gráficos de selección de escenas. El proceso puede ser lento, intensivo en recursos y puede requerir varios gigabytes de espacio. Se ejecuta cuando se descubren los videos y también como una tarea programada cada noche. La programación es configurable en el área de tareas programadas. No se recomienda ejecutar esta tarea durante las horas de mayor uso.", - "FFmpegSavePathNotFound": "No fue posible localizar FFmpeg usando la ruta que introdujo. FFprobe también es requerido y debe de estar en la misma carpeta. Estos componentes normalmente están empaquetados en la misma descarga. Por favor verifique la ruta e intente de nuevo.", - "FastForward": "Avance Rápido", + "FFmpegSavePathNotFound": "No fue posible localizar FFmpeg usando la ruta que has introducido. FFprobe también es requerido y debe de estar en la misma carpeta. Estos componentes normalmente están empaquetados en la misma descarga. Por favor, verifica la ruta e inténtalo de nuevo.", + "FastForward": "Avance rápido", "Favorite": "Favorito", "Favorites": "Favoritos", "Features": "Características", @@ -254,349 +253,349 @@ "Folders": "Carpetas", "FormatValue": "Formato: {0}", "Friday": "Viernes", - "Fullscreen": "Pantalla Completa", - "Genre": "Genero", + "Fullscreen": "Pantalla completa", + "Genre": "Género", "Genres": "Géneros", "GroupBySeries": "Agrupar por series", "GroupVersions": "Agrupar versiones", "GuestStar": "Estrella invitada", "Guide": "Guía", - "GuideProviderLogin": "Iniciar Sesión", - "GuideProviderSelectListings": "Elegir Listados", - "H264CrfHelp": "El \"Factor de Transferencia Constante\" o \"Constant Rate Factor\" (CFR) es la configuración por defecto para el codificador x264. Puede poner valores entre 0 y 51, donde los valores mas bajos dan como resultado mejor calidad (a expensas de archivos mas grandes). Los valores comunes son entre 18 y 28. El valor por defecto para x264 es 23, puede usar este valor como punto de referencia.", - "EncoderPresetHelp": "Elija un valor mas rápido para mejorar el rendimiento, o uno mas lento para mejorar la calidad.", + "GuideProviderLogin": "Iniciar sesión", + "GuideProviderSelectListings": "Elegir listados", + "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úrese de que su sistema operativo y controladores de video están actualizados. Si tiene dificultades reproduciendo vides después de habilitar esto, necesita volver a cambiar la configuración a NO.", - "HeaderAccessSchedule": "Acceder Programación", - "HeaderAccessScheduleHelp": "Crear programación de acceso para limitar el acceso a ciertos horarios.", - "HeaderActiveDevices": "Dispositivos Activos", - "HeaderActiveRecordings": "Grabaciones Activas", + "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.", + "HeaderActiveDevices": "Dispositivos activos", + "HeaderActiveRecordings": "Grabaciones activas", "HeaderActivity": "Actividad", - "HeaderAddScheduledTaskTrigger": "Agregar Disparador", - "HeaderAddToCollection": "Agregar a Colección", - "HeaderAddToPlaylist": "Agregar a Lista de Reproducción", + "HeaderAddScheduledTaskTrigger": "Agregar disparador", + "HeaderAddToCollection": "Agregar a colección", + "HeaderAddToPlaylist": "Agregar a lista de reproducción", "HeaderAddUpdateImage": "Agregar/Actualizar Imagen", - "HeaderAddUser": "Agregar Usuario", - "HeaderAdditionalParts": "Partes Adicionales", + "HeaderAddUser": "Agregar usuario", + "HeaderAdditionalParts": "Partes adicionales", "HeaderAlbumArtists": "Artistas del álbum", "HeaderAlbums": "Álbumes", "HeaderAlert": "Alerta", - "HeaderAllowMediaDeletionFrom": "Permitir Eliminacion de Medios De", + "HeaderAllowMediaDeletionFrom": "Permitir eliminación de medios de", "HeaderApiKey": "Clave API", - "HeaderApiKeys": "Claves de API", - "HeaderApiKeysHelp": "Son necesarias aplicaciones externas para obtener una clave API para comunicarse con el Servidor Jellyfin. Las clave son emitidas accediendo con una cuenta Jellyfin, o bien concediéndole manualmente una clave a la aplicación.", - "HeaderAppearsOn": "Aparece En", - "HeaderAudioBooks": "Audio Libros", - "HeaderAudioSettings": "Configuración de Audio", - "HeaderAutomaticUpdates": "Actualizaciones Automáticas", - "HeaderBlockItemsWithNoRating": "Bloquear ítems sin clasificación o con información de clasificación desconocida:", + "HeaderApiKeys": "Claves API", + "HeaderApiKeysHelp": "Las aplicaciones externas deben tener una clave API para poder comunicarse con el servidor Jellyfin. Las claves se emiten al iniciar sesión con una cuenta Jellyfin, o al otorgar manualmente una clave a la aplicación.", + "HeaderAppearsOn": "Aparece en", + "HeaderAudioBooks": "Audiolibros", + "HeaderAudioSettings": "Configuración de audio", + "HeaderAutomaticUpdates": "Actualizaciones automáticas", + "HeaderBlockItemsWithNoRating": "Bloquear elementos sin clasificación o con información de clasificación desconocida:", "HeaderBooks": "Libros", - "HeaderBranding": "Establecer Marca", - "HeaderCancelRecording": "Cancelar Grabación", - "HeaderCancelSeries": "Cancelar Serie", - "HeaderCastAndCrew": "Reparto & Personal", - "HeaderCastCrew": "Reparto y Personal", - "HeaderChannelAccess": "Acceso a los Canales", + "HeaderBranding": "Establecer marca", + "HeaderCancelRecording": "Cancelar grabación", + "HeaderCancelSeries": "Cancelar serie", + "HeaderCastAndCrew": "Reparto y equipo", + "HeaderCastCrew": "Reparto y equipo", + "HeaderChannelAccess": "Acceso a los canales", "HeaderChannels": "Canales", - "HeaderChapterImages": "Imagenes de Capitulo", - "HeaderCodecProfile": "Perfil de Codecs", - "HeaderCodecProfileHelp": "Los perfiles de codificación indican las limitaciones de un dispositivo al reproducir con codecs específicos. Si aplica una limitación el medio será transcodificado, aún si el codec ha sido configurado para reprodución directa.", - "HeaderConfigureRemoteAccess": "Configurar Acceso Remoto", - "HeaderConfirmPluginInstallation": "Confirmar Instalación de Complemento", - "HeaderConfirmProfileDeletion": "Confirmar Eliminación del Perfil", - "HeaderConfirmRevokeApiKey": "Revocar llave de API", + "HeaderChapterImages": "Imágenes de los capítulos", + "HeaderCodecProfile": "Perfil de códec", + "HeaderCodecProfileHelp": "Los perfiles de códecs indican las limitaciones de un dispositivo al reproducir códecs específicos. Si una limitación se aplica entonces el medio será transcodificado, incluso si el códec ha sido configurado para reproducción directa.", + "HeaderConfigureRemoteAccess": "Configurar acceso remoto", + "HeaderConfirmPluginInstallation": "Confirmar instalación de complemento", + "HeaderConfirmProfileDeletion": "Confirmar eliminación de perfil", + "HeaderConfirmRevokeApiKey": "Revocar clave API", "HeaderConnectToServer": "Conectarse al servidor", - "HeaderConnectionFailure": "Falla de Conexión", - "HeaderContainerProfile": "Perfil del Contenedor", - "HeaderContainerProfileHelp": "Los perfiles de contenedor indican las limitaciones de un dispositivo al reproducir formatos específicos. Si aplica una limitación el medio será transcodificado, aún si el formato ha sifo configurado para reproducción directa.", - "HeaderContinueListening": "Continuar Escuchando", - "HeaderContinueWatching": "Continuar Viendo", - "HeaderCustomDlnaProfiles": "Perfiles Personalizados", - "HeaderDateIssued": "Fecha de Emisión", - "HeaderDefaultRecordingSettings": "Configuración Predeterminada de Grabaciones", - "HeaderDeleteDevice": "Eliminar Dispositivo", - "HeaderDeleteItem": "Eliminar Ítem", - "HeaderDeleteItems": "Borrar items", - "HeaderDeleteProvider": "Eliminar Proveedor", - "HeaderDeleteTaskTrigger": "Borrar Disparador de Tarea", - "HeaderDetectMyDevices": "Detectar Mis Dispositivos", + "HeaderConnectionFailure": "Falla de conexión", + "HeaderContainerProfile": "Perfil del contenedor", + "HeaderContainerProfileHelp": "Los perfiles de contenedor indican las limitaciones de un dispositivo al reproducir formatos específicos. Si una limitación se aplica entonces el medio será transcodificado, incluso si el formato ha sido configurado para reproducción directa.", + "HeaderContinueListening": "Continuar escuchando", + "HeaderContinueWatching": "Continuar viendo", + "HeaderCustomDlnaProfiles": "Perfiles personalizados", + "HeaderDateIssued": "Fecha de emisión", + "HeaderDefaultRecordingSettings": "Configuración predeterminada de grabaciones", + "HeaderDeleteDevice": "Eliminar dispositivo", + "HeaderDeleteItem": "Eliminar elemento", + "HeaderDeleteItems": "Eliminar elementos", + "HeaderDeleteProvider": "Eliminar proveedor", + "HeaderDeleteTaskTrigger": "Borrar disparador de tarea", + "HeaderDetectMyDevices": "Detectar mis dispositivos", "HeaderDeveloperInfo": "Info del desarrollador", - "HeaderDeviceAccess": "Acceso a Dispositivos", + "HeaderDeviceAccess": "Acceso a dispositivos", "HeaderDevices": "Dispositivos", - "HeaderDirectPlayProfile": "Perfil de Reproducción Directa", - "HeaderDirectPlayProfileHelp": "Agregue perfiles de reproducción directa para indicar que formatos puede manejar el dispositivo de manera nativa.", + "HeaderDirectPlayProfile": "Perfil de reproducción directa", + "HeaderDirectPlayProfileHelp": "Agrega perfiles de reproducción directa para indicar qué formatos puede manejar el dispositivo de forma nativa.", "HeaderDisplay": "Pantalla", - "HeaderDownloadSync": "Descargar y Sincronizar", - "HeaderEasyPinCode": "Código Pin Sencillo", + "HeaderDownloadSync": "Descargar y sincronizar", + "HeaderEasyPinCode": "Código PIN sencillo", "HeaderEditImages": "Editar imágenes", - "HeaderEnabledFields": "Campos Habilitados", - "HeaderEnabledFieldsHelp": "Desmarcar un campo para bloquearlo y prevenir que sus datos cambien.", + "HeaderEnabledFields": "Campos habilitados", + "HeaderEnabledFieldsHelp": "Desmarca un campo para bloquearlo y prevenir que sus datos sean cambiados.", "HeaderEpisodes": "Episodios", - "HeaderExternalIds": "IDs Externos:", - "HeaderFeatureAccess": "Permisos de acceso", + "HeaderExternalIds": "IDs externos:", + "HeaderFeatureAccess": "Acceso a características", "HeaderFeatures": "Características", - "HeaderFetchImages": "Buscar imágenes:", - "HeaderFetcherSettings": "Configuración de Recolectores", + "HeaderFetchImages": "Obtener imágenes:", + "HeaderFetcherSettings": "Configuración del recolector", "HeaderFilters": "Filtros", - "HeaderForKids": "Para Niños", - "HeaderForgotPassword": "Contraseña Olvidada", - "HeaderFrequentlyPlayed": "Reproducido Frecuentemente", + "HeaderForKids": "Para niños", + "HeaderForgotPassword": "Olvidé mi contraseña", + "HeaderFrequentlyPlayed": "Reproducido frecuentemente", "HeaderGenres": "Géneros", "HeaderGuideProviders": "Proveedores de Guías de TV", "HeaderHttpHeaders": "Encabezados HTTP", "HeaderIdentification": "Identificación", "HeaderIdentificationCriteriaHelp": "Introduzca, al menos, un criterio de identificación.", - "HeaderIdentificationHeader": "Encabezado de Identificación", - "HeaderIdentifyItemHelp": "Introduzca uno o más criterios de búsqueda. Elimine criterios para expandir los resultados.", - "HeaderImageOptions": "Opciones de Imagen", - "HeaderImageSettings": "Configuración de Imágenes", + "HeaderIdentificationHeader": "Encabezado de identificación", + "HeaderIdentifyItemHelp": "Introduce uno o más criterios de búsqueda. Elimina criterios para expandir los resultados.", + "HeaderImageOptions": "Opciones de imagen", + "HeaderImageSettings": "Configuración de imagen", "HeaderInstall": "Instalar", - "HeaderInstantMix": "Mezcla Instantánea", - "HeaderItems": "Ítems", - "HeaderKeepRecording": "Conservar Grabaciones", - "HeaderKeepSeries": "Conservar Serie", - "HeaderKodiMetadataHelp": "Para habilitar o deshabilitar los metadatos Nfo, edite una biblioteca en la configuracion de bibliotecas de Jellyfin y busque la sección de grabadores de metadatos.", - "HeaderLatestEpisodes": "Episodios Recientes", - "HeaderLatestMedia": "Agregadas Recientemente", - "HeaderLatestMovies": "Películas Recientes", - "HeaderLatestMusic": "Música Reciente", - "HeaderLatestRecordings": "Grabaciones Recientes", + "HeaderInstantMix": "Mix instantáneo", + "HeaderItems": "Elementos", + "HeaderKeepRecording": "Conservar grabación", + "HeaderKeepSeries": "Conservar serie", + "HeaderKodiMetadataHelp": "Para habilitar o deshabilitar los metadatos NFO, edite una biblioteca en la configuración de bibliotecas de Jellyfin y ubica la sección grabadores de metadatos.", + "HeaderLatestEpisodes": "Últimos episodios", + "HeaderLatestMedia": "Últimos medios", + "HeaderLatestMovies": "Últimas películas", + "HeaderLatestMusic": "Última música", + "HeaderLatestRecordings": "Últimas grabaciones", "HeaderLibraries": "Bibliotecas", - "HeaderLibraryAccess": "Acceso a la Biblioteca", - "HeaderLibraryFolders": "Carpetas de Biblioteca", - "HeaderLibraryOrder": "Orden de Bibliotecas", - "HeaderLibrarySettings": "Configuraciones de Biblioteca", - "HeaderLiveTV": "TV en Vivo", - "HeaderLiveTv": "TV en Vivo", + "HeaderLibraryAccess": "Acceso a bibliotecas", + "HeaderLibraryFolders": "Carpetas de bibliotecas", + "HeaderLibraryOrder": "Orden de las bibliotecas", + "HeaderLibrarySettings": "Configuraciones de biblioteca", + "HeaderLiveTV": "TV en vivo", + "HeaderLiveTv": "TV en vivo", "HeaderLiveTvTunerSetup": "Configuración del sintonizador de TV", - "HeaderLoginFailure": "Falló el Inicio de Sesión", + "HeaderLoginFailure": "Falló el inicio de sesión", "HeaderMedia": "Medios", - "HeaderMediaFolders": "Carpetas de Medios", - "HeaderMediaInfo": "Info del Medio", + "HeaderMediaFolders": "Carpetas de medios", + "HeaderMediaInfo": "Info del medio", "HeaderMetadataSettings": "Configuración de metadatos", - "HeaderMoreLikeThis": "Mas Como Esto", + "HeaderMoreLikeThis": "Más como esto", "HeaderMovies": "Películas", - "HeaderMusicQuality": "Calidad de Musica", - "HeaderMusicVideos": "Videos Musicales", - "HeaderMyDevice": "Mi Dispositivo", - "HeaderMyMedia": "Mis Medios", + "HeaderMusicQuality": "Calidad de la música", + "HeaderMusicVideos": "Videos musicales", + "HeaderMyDevice": "Mi dispositivo", + "HeaderMyMedia": "Mis medios", "HeaderMyMediaSmall": "Mis medios (pequeño)", "HeaderNewApiKey": "Nueva clave API", - "HeaderNewDevices": "Nuevos Dispositivos", - "HeaderNextEpisodePlayingInValue": "El Siguiente Episodio se Reproducirá en {0}", - "HeaderNextUp": "A Continuación", - "HeaderNextVideoPlayingInValue": "El Siguiente Video se Reproducirá en {0}", - "HeaderOnNow": "Transmitiéndo Ahora", - "HeaderOtherItems": "Otros Ítems", - "HeaderParentalRatings": "Clasificación Parental", + "HeaderNewDevices": "Nuevos dispositivos", + "HeaderNextEpisodePlayingInValue": "El siguiente episodio se reproducirá en {0}", + "HeaderNextUp": "A continuación", + "HeaderNextVideoPlayingInValue": "El siguiente video se reproducirá en {0}", + "HeaderOnNow": "Transmitiendo ahora", + "HeaderOtherItems": "Otros elementos", + "HeaderParentalRatings": "Clasificación parental", "HeaderPassword": "Contraseña", - "HeaderPasswordReset": "Restablecer Contraseña", + "HeaderPasswordReset": "Restablecer contraseña", "HeaderPaths": "Rutas", - "HeaderPendingInvitations": "Invitaciones Pendientes", + "HeaderPendingInvitations": "Invitaciones pendientes", "HeaderPeople": "Personas", - "HeaderPhotoAlbums": "Álbumes de Fotos", - "HeaderPinCodeReset": "Restablecer Código Pin", - "HeaderPlayAll": "Reproducir Todo", - "HeaderPlayOn": "Reproducir En", - "HeaderPlayback": "Reproducción de Medios", - "HeaderPlaybackError": "Error de Reproducción", - "HeaderPleaseSignIn": "Por favor inicie sesión", + "HeaderPhotoAlbums": "Álbumes de fotos", + "HeaderPinCodeReset": "Restablecer código PIN", + "HeaderPlayAll": "Reproducir todo", + "HeaderPlayOn": "Reproducir en", + "HeaderPlayback": "Reproducción de medios", + "HeaderPlaybackError": "Error de reproducción", + "HeaderPleaseSignIn": "Por favor, inicia sesión", "HeaderPluginInstallation": "Instalación de complemento", - "HeaderPreferredMetadataLanguage": "Idioma Preferido para Metadatos", - "HeaderProfile": "Perfíl", - "HeaderProfileInformation": "Información de Perfil", - "HeaderProfileServerSettingsHelp": "Estos valores controlan como el Servidor Jellyfin se presentara al dispositivo.", - "HeaderRecentlyPlayed": "Reproducido Recientemente", - "HeaderRecordingOptions": "Opciones de Grabación", - "HeaderRecordingPostProcessing": "Post Procesado de las Grabaciones", - "HeaderRemoteControl": "Control Remoto", - "HeaderRemoveMediaFolder": "Eliminar Carpteta de Medios", - "HeaderRemoveMediaLocation": "Eliminar Ubicación de Medios", - "HeaderResponseProfile": "Perfil de Respuesta", - "HeaderResponseProfileHelp": "Los perfiles de respuesta proporcionan un medio para personalizar la información enviada a un dispositivo cuando se reproducen ciertos tipos de medios.", + "HeaderPreferredMetadataLanguage": "Idioma preferido para los metadatos", + "HeaderProfile": "Perfil", + "HeaderProfileInformation": "Información del perfil", + "HeaderProfileServerSettingsHelp": "Estos valores controlan como el servidor Jellyfin se presentará al dispositivo.", + "HeaderRecentlyPlayed": "Reproducido recientemente", + "HeaderRecordingOptions": "Opciones de grabación", + "HeaderRecordingPostProcessing": "Post procesado de las grabaciones", + "HeaderRemoteControl": "Control remoto", + "HeaderRemoveMediaFolder": "Eliminar carpeta de medios", + "HeaderRemoveMediaLocation": "Eliminar ubicación de medios", + "HeaderResponseProfile": "Perfil de respuesta", + "HeaderResponseProfileHelp": "Los perfiles de respuesta proporcionan un medio para personalizar la información enviada al dispositivo cuando se reproducen ciertos tipos de medios.", "HeaderRestart": "Reiniciar", - "HeaderRevisionHistory": "Historial de Versiones", - "HeaderRunningTasks": "Tareas en Ejecución", + "HeaderRevisionHistory": "Historial de versiones", + "HeaderRunningTasks": "Tareas en ejecución", "HeaderScenes": "Escenas", "HeaderSchedule": "Programación", "HeaderSeasons": "Temporadas", - "HeaderSecondsValue": "{0} Segundos", - "HeaderSelectCertificatePath": "Seleccione la Ruta del Certificado", - "HeaderSelectMetadataPath": "Seleccionar Ruta para Metadatos", - "HeaderSelectMetadataPathHelp": "Explore o introduzca la ruta donde desea almacenar los metadatos. La carpeta debe tener permisos de escritura.", - "HeaderSelectPath": "Seleccionar Ruta", - "HeaderSelectServer": "Seleccionar Servidor", - "HeaderSelectServerCachePath": "Seleccionar ruta para Caché del Servidor", - "HeaderSelectServerCachePathHelp": "Explore o introduzca la ruta a utilizar para los archivos del caché del servidor. La carpeta debe tener permisos de escritura.", - "HeaderSelectTranscodingPath": "Seleccionar Ruta para Transcodificación Temporal", - "HeaderSelectTranscodingPathHelp": "Explore o introduzca la ruta a utilizar para los archivos temporales de transcodificación. La carpeta debe tener permisos de escritura.", - "HeaderSendMessage": "Enviar Mensaje", + "HeaderSecondsValue": "{0} segundos", + "HeaderSelectCertificatePath": "Selecciona la ruta del certificado", + "HeaderSelectMetadataPath": "Selecciona la ruta para los metadatos", + "HeaderSelectMetadataPathHelp": "Explora o introduce la ruta donde deseas almacenar los metadatos. Se debe tener permisos de escritura en dicha carpeta.", + "HeaderSelectPath": "Seleccionar ruta", + "HeaderSelectServer": "Seleccionar servidor", + "HeaderSelectServerCachePath": "Seleccionar ruta para la caché del servidor", + "HeaderSelectServerCachePathHelp": "Explora o introduce la ruta a utilizar para los archivos caché del servidor. Se debe tener permisos de escritura en dicha carpeta.", + "HeaderSelectTranscodingPath": "Selecciona la ruta para los archivos temporales de transcodificación", + "HeaderSelectTranscodingPathHelp": "Explora o introduce la ruta a utilizar para los archivos temporales de transcodificación. Se debe tener permisos de escritura en dicha carpeta.", + "HeaderSendMessage": "Enviar mensaje", "HeaderSeries": "Series", - "HeaderSeriesOptions": "Opciones de Serie", - "HeaderSeriesStatus": "Estado de la Serie", - "HeaderServerSettings": "Configuración del Servidor", + "HeaderSeriesOptions": "Opciones de serie", + "HeaderSeriesStatus": "Estado de la serie", + "HeaderServerSettings": "Configuración del servidor", "HeaderSettings": "Configuración", - "HeaderSetupLibrary": "Configurar sus bibliotecas de medios", + "HeaderSetupLibrary": "Configura tus bibliotecas de medios", "HeaderShutdown": "Apagar", - "HeaderSortBy": "Ordenar Por", - "HeaderSortOrder": "Ordenado Por", - "HeaderSpecialEpisodeInfo": "Información del Episodio Especial", - "HeaderSpecialFeatures": "Características Especiales", - "HeaderStartNow": "Iniciar Ahora", + "HeaderSortBy": "Ordenar por", + "HeaderSortOrder": "Clasificar ordenado", + "HeaderSpecialEpisodeInfo": "Información del episodio especial", + "HeaderSpecialFeatures": "Características especiales", + "HeaderStartNow": "Iniciar ahora", "HeaderStatus": "Estado", - "HeaderStopRecording": "Detener Grabación", - "HeaderSubtitleAppearance": "Apariencia de Subtitulos", - "HeaderSubtitleDownloads": "Descarga de Subtitulos", - "HeaderSubtitleProfile": "Perfíl de Subtítulo", - "HeaderSubtitleProfiles": "Perfiles de Subtítulos", - "HeaderSubtitleProfilesHelp": "Los perfiles de subtítulos describen el formato del subtítulo soportado por el dispositivo.", - "HeaderSystemDlnaProfiles": "Perfiles del Sistema", + "HeaderStopRecording": "Detener grabación", + "HeaderSubtitleAppearance": "Apariencia de subtítulos", + "HeaderSubtitleDownloads": "Descarga de subtítulos", + "HeaderSubtitleProfile": "Perfil de subtítulo", + "HeaderSubtitleProfiles": "Perfiles de subtítulo", + "HeaderSubtitleProfilesHelp": "Los perfiles de subtítulo describen los formatos de subtítulo soportados por el dispositivo.", + "HeaderSystemDlnaProfiles": "Perfiles del sistema", "HeaderTags": "Etiquetas", - "HeaderTaskTriggers": "Disparadores de Tarea", + "HeaderTaskTriggers": "Disparadores de tarea", "HeaderThisUserIsCurrentlyDisabled": "Este usuario se encuentra actualmente deshabilitado", "HeaderTracks": "Pistas", - "HeaderTranscodingProfile": "Perfil de Transcodificación", - "HeaderTranscodingProfileHelp": "Agruegue perfiles de transcodificación para indicar que formatos deben ser usados cuando se requiera transcodificar.", + "HeaderTranscodingProfile": "Perfil de transcodificación", + "HeaderTranscodingProfileHelp": "Agrega perfiles de transcodificación para indicar qué formatos deben ser usados cuando se requiere transcodificar.", "HeaderTunerDevices": "Sintonizadores", "HeaderTuners": "Sintonizador", - "HeaderTypeImageFetchers": "{0} Recolectores de Imágenes", - "HeaderTypeText": "Introduzca Texto", + "HeaderTypeImageFetchers": "Recolectores de imágenes para {0}", + "HeaderTypeText": "Introducir texto", "HeaderUpcomingOnTV": "Próximamente en TV", - "HeaderUploadImage": "Subir Imagen", + "HeaderUploadImage": "Subir imagen", "HeaderUser": "Usuario", "HeaderUsers": "Usuarios", - "HeaderVideoQuality": "Calidad de Video", - "HeaderVideoType": "Tipo de Video", - "HeaderVideoTypes": "Tipos de Video", - "HeaderXmlDocumentAttribute": "Atributo del Documento XML", - "HeaderXmlDocumentAttributes": "Atributos del Documento XML", + "HeaderVideoQuality": "Calidad de video", + "HeaderVideoType": "Tipo de video", + "HeaderVideoTypes": "Tipos de video", + "HeaderXmlDocumentAttribute": "Atributo del documento XML", + "HeaderXmlDocumentAttributes": "Atributos del documento XML", "HeaderXmlSettings": "Configuración XML", "HeaderYears": "Años", "HeadersFolders": "Carpetas", "Help": "Ayuda", "Hide": "Ocultar", - "HideWatchedContentFromLatestMedia": "Ocultar contenido ya visto de Agregadas Recientemente", + "HideWatchedContentFromLatestMedia": "Ocultar contenido ya visto de últimos medios", "Home": "Inicio", - "HttpsRequiresCert": "Para habilitar las conexiones seguras, es necesario proporcionar un certificado SSL de confianza, como el de \"Let's Encrypt\". Por favor proporcione un certificado, o desactive las conexiones seguras.", + "HttpsRequiresCert": "Para habilitar las conexiones seguras, necesitarás proporcionar un certificado SSL de confianza, como el de Let's Encrypt. Por favor, proporciona un certificado o desactiva las conexiones seguras.", "Identify": "Identificar", "Images": "Imágenes", "ImportFavoriteChannelsHelp": "Si se habilita, solo los canales marcados como favoritos en el dispositivo sintonizador serán importados.", - "ImportMissingEpisodesHelp": "Si se habilita, se importara a su base de datos de Jellyfin información sobre episodios faltantes y se mostrara dentro de las temporadas y series. Esto podría ocasionar escaneos de biblioteca significativamente mas largos.", + "ImportMissingEpisodesHelp": "Si se habilita, la información sobre los episodios faltantes se importará a la base de datos de Jellyfin y se mostrarán dentro de las temporadas y series. Esto puede causar escaneos de biblioteca significativamente más largos.", "InstallingPackage": "Instalando {0} (versión {1})", "InstantMix": "Mix instantáneo", - "ItemCount": "{0} ítems", - "Items": "Ítems", + "ItemCount": "{0} elementos", + "Items": "Elementos", "Kids": "Niños", "Label3DFormat": "Formato 3D:", - "LabelAbortedByServerShutdown": "(Abortada por apagado del servidor)", + "LabelAbortedByServerShutdown": "(Abortado por apagado del servidor)", "LabelAccessDay": "Día de la semana:", - "LabelAccessEnd": "Horario de fin:", - "LabelAccessStart": "Horario de comienzo:", + "LabelAccessEnd": "Hora de finalización:", + "LabelAccessStart": "Hora de inicio:", "LabelAirDays": "Se emite los días:", "LabelAirTime": "Duración:", "LabelAirsAfterSeason": "Transmisión después de la temporada:", "LabelAirsBeforeEpisode": "Transmisión antes del episodio:", "LabelAirsBeforeSeason": "Transmisión antes de la temporada:", "LabelAlbum": "Álbum:", - "LabelAlbumArtHelp": "PN usado para arte del álbum, dentro del atributo dlna:profileID en upnp:albumArtURI. Algunos dispositivos requieren valores específicos, independientemente del tamaño de la imagen.", - "LabelAlbumArtMaxHeight": "Altura máxima para arte del álbum:", - "LabelAlbumArtMaxHeightHelp": "Máxima resolución para arte del album expuesta via upnp:albumArtURI.", - "LabelAlbumArtMaxWidth": "Ancho máximo para arte del álbum:", - "LabelAlbumArtMaxWidthHelp": "Máxima resolución para arte del album expuesta via upnp:albumArtURI.", - "LabelAlbumArtPN": "PN para arte del álbum:", + "LabelAlbumArtHelp": "PN usado para el arte del álbum, dentro del atributo dlna:profileID en upnp:albumArtURI. Algunos dispositivos requieren valores específicos, independientemente del tamaño de la imagen.", + "LabelAlbumArtMaxHeight": "Altura máxima del arte del álbum:", + "LabelAlbumArtMaxHeightHelp": "Resolución máxima del arte del álbum expuesta vía upnp:albumArtURI.", + "LabelAlbumArtMaxWidth": "Ancho máximo del arte del álbum:", + "LabelAlbumArtMaxWidthHelp": "Resolución máxima del arte del álbum expuesta vía upnp:albumArtURI.", + "LabelAlbumArtPN": "PN del arte del álbum:", "LabelAlbumArtists": "Artistas del álbum:", "LabelAll": "Todos", - "LabelAllowHWTranscoding": "Permitir transcodificacion de hardware", - "LabelAllowServerAutoRestart": "Permite al servidor reiniciar automáticamente para aplicar actualizaciones", + "LabelAllowHWTranscoding": "Permitir transcodificación por hardware", + "LabelAllowServerAutoRestart": "Permite al servidor reiniciarse automáticamente para aplicar actualizaciones", "LabelAllowServerAutoRestartHelp": "El servidor solo se reiniciará durante los períodos de inactividad cuando no haya usuarios activos.", - "LabelAllowedRemoteAddresses": "Filtrar IP remota:", - "LabelAllowedRemoteAddressesMode": "Modo de filtrado de IP remota:", - "LabelAppName": "Nombre del App", + "LabelAllowedRemoteAddresses": "Filtro de direcciones IP remotas:", + "LabelAllowedRemoteAddressesMode": "Modo de filtrado de direcciones IP remotas:", + "LabelAppName": "Nombre de la aplicación", "LabelAppNameExample": "Ejemplo: Sickbeard, Sonarr", "LabelArtists": "Artistas:", "LabelArtistsHelp": "Separar múltiples empleando ;", "LabelAudioLanguagePreference": "Idioma preferido de audio:", - "LabelAutomaticallyRefreshInternetMetadataEvery": "Actualizar automáticamente metadatos de internet:", - "LabelBindToLocalNetworkAddress": "Atar a la dirección de red local:", - "LabelBindToLocalNetworkAddressHelp": "Opcional. Forzar la dirección IP local a la que se vinculara el servidor http. Si se deja en blanco, el servidor vinculara todas las direcciones disponibles. Cambiando este valor se requerirá reiniciar el Servidor Jellyfin.", - "LabelBirthDate": "Fecha de Nacimiento:", + "LabelAutomaticallyRefreshInternetMetadataEvery": "Actualizar automáticamente los metadatos desde Internet:", + "LabelBindToLocalNetworkAddress": "Vincular a la dirección de red local:", + "LabelBindToLocalNetworkAddressHelp": "Opcional. Sobrescribe la dirección IP local a la que se vincula el servidor http. Si se deja vacío, el servidor se vinculará a todas las direcciones disponibles. Cambiar este valor requiere reiniciar el servidor Jellyfin.", + "LabelBirthDate": "Fecha de nacimiento:", "LabelBirthYear": "Año de nacimiento:", "LabelBlastMessageInterval": "Intervalo de mensajes de vida (segundos)", "LabelBlastMessageIntervalHelp": "Determina la duración en segundos del intervalo entre mensajes de vida.", - "LabelBlockContentWithTags": "Bloquear ítems con etiquetas:", - "LabelBurnSubtitles": "Subtitulos quemados:", + "LabelBlockContentWithTags": "Bloquear elementos con las etiquetas:", + "LabelBurnSubtitles": "Quemar subtítulos:", "LabelCache": "Caché:", - "LabelCachePath": "Ruta para el Caché:", - "LabelCachePathHelp": "Especifique una ubicación personalizada para los archivos de caché del servidor tales como las imágenes. Dejar en blanco para utilizar la configuración por defecto del servidor.", + "LabelCachePath": "Ruta de la caché:", + "LabelCachePathHelp": "Especifica una ubicación personalizada para los archivos caché del servidor como las imágenes. Dejar en blanco para utilizar la configuración por defecto del servidor.", "LabelCancelled": "Cancelado", "LabelCertificatePassword": "Contraseña del certificado:", - "LabelCertificatePasswordHelp": "Si su certificado requiere de una contraseña, por favor introdúzcala aquí.", + "LabelCertificatePasswordHelp": "Si tu certificado requiere una contraseña, por favor, introdúcela aquí.", "LabelChannels": "Canales:", "LabelCollection": "Colección:", "LabelCommunityRating": "Calificación de la comunidad:", - "LabelContentType": "Tipo de Contenido:", + "LabelContentType": "Tipo de contenido:", "LabelCountry": "País:", - "LabelCriticRating": "Calificación de la crítica:", + "LabelCriticRating": "Calificación de los críticos:", "LabelCurrentPassword": "Contraseña actual:", - "LabelCustomCertificatePath": "Ruta personalizada del certificado SSL:", - "LabelCustomCertificatePathHelp": "Trayectoria a un archivo PKCS #12 que contiene el certificado y la llave privada para habilitar soporte a TLS en un dominio personalizado.", + "LabelCustomCertificatePath": "Ruta del certificado SSL personalizado:", + "LabelCustomCertificatePathHelp": "Ruta a un archivo PKCS #12 que contiene un certificado y una clave privada para habilitar el soporte TLS en un dominio personalizado.", "LabelCustomCss": "CSS personalizado:", - "LabelCustomCssHelp": "Aplicar tu propio estilo personalizado a la interfaz web.", + "LabelCustomCssHelp": "Aplica tu propio estilo personalizado a la interfaz web.", "LabelCustomDeviceDisplayName": "Nombre a mostrar:", - "LabelCustomDeviceDisplayNameHelp": "Proporcione un nombre personalizado para mostrar o déjelo vacío para usar el nombre reportado por el dispositivo.", + "LabelCustomDeviceDisplayNameHelp": "Proporcione un nombre personalizado para mostrar o déjalo vacío para usar el nombre reportado por el dispositivo.", "LabelCustomRating": "Calificación personalizada:", - "LabelDashboardTheme": "Tema del panel de control del Servidor:", + "LabelDashboardTheme": "Tema del panel de control del servidor:", "LabelDateAdded": "Fecha de adición:", - "LabelDateAddedBehavior": "Comportamiento de fecha de adición para nuevo contenido:", - "LabelDateAddedBehaviorHelp": "Si se encuentra un valor en los metadados siempre será empleado antes que cualquiera de estas opciones.", - "LabelDateTimeLocale": "Configuración regional de Fecha y Hora:", + "LabelDateAddedBehavior": "Comportamiento de la fecha de adición para nuevo contenido:", + "LabelDateAddedBehaviorHelp": "Si un valor de metadatos está presente, siempre se utilizará antes de cualquiera de estas opciones.", + "LabelDateTimeLocale": "Configuración regional de fecha y hora:", "LabelDay": "Día:", "LabelDeathDate": "Fecha de defunción:", "LabelDefaultScreen": "Pantalla por defecto:", "LabelDefaultUser": "Usuario por defecto:", - "LabelDefaultUserHelp": "Determina que usuario de la biblioteca será mostrado en los dispositivos conectados. Este puede ser reemplazado para cada dispositivo empleando perfiles.", + "LabelDefaultUserHelp": "Determina qué biblioteca de usuario será mostrada en los dispositivos conectados. Esto puede ser reemplazado para cada dispositivo empleando perfiles.", "LabelDeviceDescription": "Descripción del dispositivo", "LabelDidlMode": "Modo DIDL:", "LabelDiscNumber": "Número de disco:", - "LabelDisplayLanguage": "Lenguaje de Despliege:", + "LabelDisplayLanguage": "Idioma de pantalla:", "LabelDisplayLanguageHelp": "La traducción de Jellyfin es un proyecto en curso.", - "LabelDisplayMissingEpisodesWithinSeasons": "Mostar episodios no disponibles en las temporadas", - "LabelDisplayMode": "Modo de Pantalla:", + "LabelDisplayMissingEpisodesWithinSeasons": "Mostrar episodios faltantes en las temporadas", + "LabelDisplayMode": "Modo de pantalla:", "LabelDisplayName": "Nombre a mostrar:", "LabelDisplayOrder": "Orden para mostrar:", - "LabelDisplaySpecialsWithinSeasons": "Mostrar especiales dentro de las temporadas en que fueron transmitidos", - "LabelDownMixAudioScale": "Fortalecimiento de audio durante el downmix:", - "LabelDownMixAudioScaleHelp": "Realzar el audio cuando se hace downmix. Un valor de 1 preservará el volumen original.", - "LabelDownloadLanguages": "Descargar lenguajes:", - "LabelDropImageHere": "Arrastre la imagen aquí, o de clic para navegar.", + "LabelDisplaySpecialsWithinSeasons": "Mostrar especiales dentro de las temporadas en las que fueron transmitidas", + "LabelDownMixAudioScale": "Incremento del audio cuando se hace downmix:", + "LabelDownMixAudioScaleHelp": "Incrementa el audio cuando se hace downmix. Un valor de 1 preservará el volumen original.", + "LabelDownloadLanguages": "Descargar idiomas:", + "LabelDropImageHere": "Arrastre la imagen aquí o haz para explorar.", "LabelDropShadow": "Mostrar sombra:", - "LabelEasyPinCode": "Código pin sencillo:", + "LabelEasyPinCode": "Código PIN sencillo:", "LabelEmbedAlbumArtDidl": "Incrustar arte del álbum en DIDL", - "LabelEmbedAlbumArtDidlHelp": "Algunos dispositivos prefieren este método para obtener arte del álbum. Otros podrían fallar al reproducir con esta opción habilitada.", + "LabelEmbedAlbumArtDidlHelp": "Algunos dispositivos prefieren este método para obtener arte de álbumes. Otros podrían fallar al reproducir con esta opción habilitada.", "LabelEnableAutomaticPortMap": "Habilitar mapeo automático de puertos", - "LabelEnableAutomaticPortMapHelp": "Intentar mapear automáticamente el puerto público con el puerto local vía UPnP. Esto podría no funcionar con algunos modelos de ruteadores.", + "LabelEnableAutomaticPortMapHelp": "Redirecciona automáticamente los puertos públicos de tu router a los puertos locales de tu servidor a través de UPnP. Esto puede no funcionar con algunos modelos de routers o configuraciones de red. Los cambios no se aplicarán hasta después de reiniciar el servidor.", "LabelEnableBlastAliveMessages": "Bombardeo de mensajes de vida", - "LabelEnableBlastAliveMessagesHelp": "Habilite esto si el servidor no es detectado de manera confiable por otros dispositivos UPnP en su red.", - "LabelEnableDlnaClientDiscoveryInterval": "Intervalo de Detección de Clientes (segundos)", + "LabelEnableBlastAliveMessagesHelp": "Habilita esto si el servidor no es detectado de manera confiable por otros dispositivos UPnP en tu red.", + "LabelEnableDlnaClientDiscoveryInterval": "Intervalo de descubrimiento de clientes (segundos)", "LabelEnableDlnaClientDiscoveryIntervalHelp": "Determina la duración en segundos entre búsquedas SSDP realizadas por Jellyfin.", - "LabelEnableDlnaDebugLogging": "Habilitar el registro de DLNA en la bitácora", + "LabelEnableDlnaDebugLogging": "Habilitar el registro de depuración de DLNA", "LabelEnableDlnaDebugLoggingHelp": "Crea grandes archivos de registro y solo se debe usar cuando se requiera para solucionar problemas.", "LabelEnableDlnaPlayTo": "Habilitar Reproducir En mediante DLNA", - "LabelEnableDlnaPlayToHelp": "Detecta dispositivos dentro de su red y ofrece la capacidad de controlarlos remotamente.", + "LabelEnableDlnaPlayToHelp": "Detecta dispositivos dentro de tu red y ofrece la capacidad de controlarlos remotamente.", "LabelEnableDlnaServer": "Habilitar servidor DLNA", - "LabelEnableDlnaServerHelp": "Permite a dispositivos UPnP en su red navegar y reproducir contenido.", - "LabelEnableHardwareDecodingFor": "Habilitar decodificacion por hardware para:", + "LabelEnableDlnaServerHelp": "Permite a dispositivos UPnP en tu red explorar y reproducir contenido.", + "LabelEnableHardwareDecodingFor": "Habilitar decodificación por hardware para:", "LabelEnableRealtimeMonitor": "Activar monitoreo en tiempo real", - "LabelEnableRealtimeMonitorHelp": "Los cambios en los archivos serán procesados inmediatamente, en los sistemas de archivo que lo soporten.", + "LabelEnableRealtimeMonitorHelp": "Los cambios en los archivos serán procesados inmediatamente, en los sistemas de archivo soportados.", "LabelEnableSingleImageInDidlLimit": "Limitar a una sola imagen incrustada", - "LabelEnableSingleImageInDidlLimitHelp": "Algunos dispositivos no renderisaran apropiadamente si hay múltiples imágenes incrustadas en el Didl.", - "LabelEndDate": "Fecha de Fin:", - "LabelEpisodeNumber": "Episodio numero:", + "LabelEnableSingleImageInDidlLimitHelp": "Algunos dispositivos no se renderizarán correctamente si se incrustan varias imágenes en DIDL.", + "LabelEndDate": "Fecha de fin:", + "LabelEpisodeNumber": "Episodio número:", "LabelEvent": "Evento:", "LabelEveryXMinutes": "Cada:", - "LabelExtractChaptersDuringLibraryScan": "Extraer imágenes de capítulos durante la exploración de la biblioteca", - "LabelExtractChaptersDuringLibraryScanHelp": "Genera imágenes de capítulos cuando se importan videos durante el análisis de la biblioteca. De lo contrario, se extraerán durante la tarea programada de las imágenes de capítulos, lo que permitirá que el escaneado normal de la biblioteca se complete más rápidamente.", + "LabelExtractChaptersDuringLibraryScan": "Extraer las imágenes de los capítulos durante el escaneo de la biblioteca", + "LabelExtractChaptersDuringLibraryScanHelp": "Genera imágenes de los capítulos cuando se importan videos durante el escaneo de la biblioteca. De lo contrario, se extraerán durante la tarea programada imágenes de capítulos, lo que permitirá que el escaneado normal de la biblioteca se complete más rápidamente.", "LabelFailed": "Fallido", "LabelFileOrUrl": "Archivo o URL:", "LabelFinish": "Terminar", @@ -606,73 +605,73 @@ "LabelFriendlyName": "Nombre amistoso:", "LabelServerNameHelp": "Este nombre se usará para identificar el servidor y se predeterminará al nombre de la computadora del servidor.", "LabelGroupMoviesIntoCollections": "Agrupar películas en colecciones", - "LabelGroupMoviesIntoCollectionsHelp": "Cuando se muestran listados de películas, las películas que pertenecen a una colección serán mostradas agrupadas en un solo ítem.", + "LabelGroupMoviesIntoCollectionsHelp": "Cuando se muestran listados de películas, las películas que pertenecen a una colección serán mostradas agrupadas en un solo artículo.", "LabelH264Crf": "CRF de codificación H264:", - "LabelEncoderPreset": "Codificación H264 predefinido:", - "LabelHardwareAccelerationType": "Aceleración por Hardware:", - "LabelHardwareAccelerationTypeHelp": "Aceleración por Hardware requiere configuración adicional.", - "LabelHomeNetworkQuality": "Calidad en Red Local:", - "LabelHomeScreenSectionValue": "Pagina de inicio sección {0}:", + "LabelEncoderPreset": "Codificación H264 y H265 preestablecida:", + "LabelHardwareAccelerationType": "Aceleración por hardware:", + "LabelHardwareAccelerationTypeHelp": "La aceleración por hardware requiere configuración adicional.", + "LabelHomeNetworkQuality": "Calidad en red local:", + "LabelHomeScreenSectionValue": "Sección {0} de la pantalla de inicio:", "LabelHttpsPort": "Número de puerto local HTTPS:", "LabelHttpsPortHelp": "El número de puerto TCP al que el servidor HTTPS de Jellyfin debería enlazar.", "LabelIconMaxHeight": "Altura máxima del ícono:", - "LabelIconMaxHeightHelp": "Máxima resolución de íconos expuestos vía upnp:icon.", - "LabelIconMaxWidth": "Ancho máximo de ícono:", - "LabelIconMaxWidthHelp": "Máxima resolución de íconos expuestos vía upnp:icon.", - "LabelIdentificationFieldHelp": "Una subcadena insensible a la diferencia entre minúsculas y mayúsculas o expresión regex.", - "LabelImageFetchersHelp": "Habilite y priorice sus recolectores de imágenes preferidos.", + "LabelIconMaxHeightHelp": "Resolución máxima de los íconos expuestos vía upnp:icon.", + "LabelIconMaxWidth": "Ancho máximo del ícono:", + "LabelIconMaxWidthHelp": "Resolución máxima de los íconos expuestos vía upnp:icon.", + "LabelIdentificationFieldHelp": "Una subcadena indiferente a las mayúsculas y minúsculas o una expresión regular (regex).", + "LabelImageFetchersHelp": "Habilita y prioriza tus recolectores de imágenes preferidos.", "LabelImageType": "Tipo de imagen:", "LabelImportOnlyFavoriteChannels": "Restringir a canales marcados como favoritos", - "LabelInNetworkSignInWithEasyPassword": "Habilitar inicio de sesión con mi código pin sencillo para conexiones dentro de la red", - "LabelInNetworkSignInWithEasyPasswordHelp": "Utilice el código PIN fácil para acceder a los clientes en su red local. Su contraseña regular solo se necesitará fuera de casa. Si el código PIN se deja en blanco, no necesitará una contraseña dentro de su red local.", - "LabelInternetQuality": "Calidad en internet:", + "LabelInNetworkSignInWithEasyPassword": "Habilitar inicio de sesión con mi código PIN sencillo para conexiones dentro de la red", + "LabelInNetworkSignInWithEasyPasswordHelp": "Utiliza el código PIN sencillo para acceder a los clientes en tu red local. Tu contraseña regular solo se necesitará fuera de casa. Si el código PIN se deja en blanco, no necesitarás una contraseña dentro de tu red local.", + "LabelInternetQuality": "Calidad en Internet:", "LabelKeepUpTo": "Mantener hasta:", "LabelKidsCategories": "Categorías infantiles:", "LabelKodiMetadataDateFormat": "Formato de fecha de estreno:", "LabelKodiMetadataDateFormatHelp": "Todas las fechas dentro de los archivos NFO serán analizadas usando este formato.", "LabelKodiMetadataEnableExtraThumbs": "Copiar extrafanart al campo extrathumbs", - "LabelKodiMetadataEnableExtraThumbsHelp": "Cuando se descargan imágenes pueden ser almacenadas tanto en extrafanart como extrathumb para maximizar la compatibilidad con skins de Kodi.", + "LabelKodiMetadataEnableExtraThumbsHelp": "Cuando se descargan imágenes estas pueden ser almacenadas tanto en extrafanart como extrathumb para maximizar la compatibilidad con las pieles de Kodi.", "LabelKodiMetadataEnablePathSubstitution": "Habilitar sustitución de ruta", "LabelKodiMetadataEnablePathSubstitutionHelp": "Habilita la sustitución de rutas de imágenes usando la configuración de sustitución de rutas del servidor.", - "LabelKodiMetadataSaveImagePaths": "Guardar rutas de imágenes en los archivos nfo", - "LabelKodiMetadataSaveImagePathsHelp": "Esto se recomienda si tiene nombres de imagenes que no se ajustan a los lineamientos de Kodi.", + "LabelKodiMetadataSaveImagePaths": "Guardar las rutas de las imágenes en los archivos NFO", + "LabelKodiMetadataSaveImagePathsHelp": "Esto se recomienda si tienes nombres de imágenes que no se ajustan a los lineamientos de Kodi.", "LabelKodiMetadataUser": "Guardar los datos de visto del usuario en archivos NFO para:", - "LabelKodiMetadataUserHelp": "Guarda los datos de visto en los archivos NFO para que otras aplicaciones los utilicen.", + "LabelKodiMetadataUserHelp": "Guarda los datos de visto en archivos NFO para que otras aplicaciones los utilicen.", "LabelLanNetworks": "Redes LAN:", "LabelLanguage": "Idioma:", "LabelLineup": "Programación:", "LabelLocalHttpServerPortNumber": "Número de puerto local HTTP:", "LabelLocalHttpServerPortNumberHelp": "El número de puerto TCP al que el servidor HTTP de Jellyfin debería enlazar.", - "LabelLockItemToPreventChanges": "Bloquear este ítem para evitar cambios futuros", + "LabelLockItemToPreventChanges": "Bloquear este elemento para evitar cambios futuros", "LabelLoginDisclaimer": "Aviso legal:", "LabelLoginDisclaimerHelp": "Un mensaje que se mostrará en la parte inferior de la página de inicio de sesión.", - "LabelLogs": "Bitácoras:", + "LabelLogs": "Registros:", "LabelManufacturer": "Fabricante:", "LabelManufacturerUrl": "URL del fabricante", - "LabelMatchType": "Tipo de Coincidencia:", - "LabelMaxBackdropsPerItem": "Número máximo de imágenes de fondo por ítem:", - "LabelMaxChromecastBitrate": "Tasa maxima de bits para El Chromecast:", + "LabelMatchType": "Tipo de coincidencia:", + "LabelMaxBackdropsPerItem": "Número máximo de imágenes de fondo por elemento:", + "LabelMaxChromecastBitrate": "Calidad de transmisión de Chromecast:", "LabelMaxParentalRating": "Máxima clasificación parental permitida:", "LabelMaxResumePercentage": "Porcentaje máximo para la reanudación:", "LabelMaxResumePercentageHelp": "Los medios se consideran totalmente reproducidos si se detienen después de este tiempo.", - "LabelMaxScreenshotsPerItem": "Número máximo de capturas de pantalla por ítem:", + "LabelMaxScreenshotsPerItem": "Número máximo de capturas de pantalla por elemento:", "LabelMaxStreamingBitrate": "Calidad máxima de transmisión:", - "LabelMaxStreamingBitrateHelp": "Especifique una velocidad de bits máxima al hacer streaming.", - "LabelMessageText": "Texto del Mensaje:", - "LabelMessageTitle": "Título del Mensaje:", + "LabelMaxStreamingBitrateHelp": "Especifique una velocidad de bits máxima cuando se transmite.", + "LabelMessageText": "Texto del mensaje:", + "LabelMessageTitle": "Título del mensaje:", "LabelMetadata": "Metadatos:", - "LabelMetadataDownloadLanguage": "Lenguaje preferido para descargas:", - "LabelMetadataDownloadersHelp": "Habilite y priorice sus recolectores de metadatos preferidos. Los recolectores de metadatos de menor prioridad solo serán utilizados para llenar información faltante.", - "LabelMetadataPath": "Ruta para metadatos:", - "LabelMetadataPathHelp": "Especifique una ubicación personalizada para ilustraciones y metadatos descargados.", + "LabelMetadataDownloadLanguage": "Idioma preferido para las descargas:", + "LabelMetadataDownloadersHelp": "Habilita y prioriza tus recolectores de metadatos preferidos. Los recolectores de metadatos de menor prioridad solo serán utilizados para llenar información faltante.", + "LabelMetadataPath": "Ruta para los metadatos:", + "LabelMetadataPathHelp": "Especifique una ubicación personalizada para las ilustraciones y los metadatos descargados.", "LabelMetadataReaders": "Lectores de metadatos:", - "LabelMetadataReadersHelp": "Ordene sus fuentes de metadatos locales por prioridad. El primer archivo encontrado será leído.", + "LabelMetadataReadersHelp": "Ordena tus fuentes de metadatos locales por prioridad. El primer archivo encontrado será leído.", "LabelMetadataSavers": "Grabadores de metadatos:", - "LabelMetadataSaversHelp": "Seleccione los formatos de archivo con los que se guardaran sus metadatos.", + "LabelMetadataSaversHelp": "Selecciona los formatos de archivo con los que se guardarán tus metadatos.", "LabelMethod": "Método:", "LabelMinBackdropDownloadWidth": "Anchura mínima de descarga de imágenes de fondo:", "LabelMinResumeDuration": "Duración mínima para la reanudación:", - "LabelMinResumeDurationHelp": "La duración de vídeo más corta en segundos que guardará la ubicación de reproducción y le permitirá reanudar la reproducción.", + "LabelMinResumeDurationHelp": "La duración de video más corta en segundos que guardará la ubicación de reproducción y te permitirá reanudarla.", "LabelMinResumePercentage": "Porcentaje mínimo para reanudar:", "LabelMinResumePercentageHelp": "Los medios se asumen como no reproducidos si se detienen antes de este tiempo.", "LabelMinScreenshotDownloadWidth": "Anchura mínima de descarga de capturas de pantalla:", @@ -683,15 +682,15 @@ "LabelMonitorUsers": "Monitorear actividad desde:", "LabelMovieCategories": "Categorías de películas:", "LabelMoviePrefix": "Prefijo de la película:", - "LabelMoviePrefixHelp": "Si un prefijo es aplicado al título de las películas, introdúzcalo aquí para que el servidor pueda manejarlo correctamente.", - "LabelMovieRecordingPath": "Ruta para grabaciones de Películas (opcional):", - "LabelMusicStreamingTranscodingBitrate": "Tasa de transcodificación de música:", - "LabelMusicStreamingTranscodingBitrateHelp": "Especifique la tasa de bits máxima al transmitir música.", + "LabelMoviePrefixHelp": "Si un prefijo es aplicado al título de las películas, introdúcelo aquí para que el servidor pueda manejarlo correctamente.", + "LabelMovieRecordingPath": "Ruta para las grabaciones de películas (opcional):", + "LabelMusicStreamingTranscodingBitrate": "Velocidad de bits de transcodificación de música:", + "LabelMusicStreamingTranscodingBitrateHelp": "Especifica la velocidad de bits máxima al transmitir música.", "LabelName": "Nombre:", "LabelNewName": "Nuevo nombre:", - "LabelNewPassword": "Nueva contraseña:", + "LabelNewPassword": "Contraseña nueva:", "LabelNewPasswordConfirm": "Confirmación de contraseña nueva:", - "LabelNewsCategories": "Categorías de Noticias:", + "LabelNewsCategories": "Categorías de noticias:", "LabelNext": "Siguiente", "LabelNotificationEnabled": "Habilitar esta notificación", "LabelNumber": "Número:", @@ -700,279 +699,279 @@ "LabelOptionalNetworkPath": "(Opcional) Carpeta de red compartida:", "LabelOptionalNetworkPathHelp": "Si esta carpeta es compartida en su red, proveer la ruta del recurso compartido de red puede permitir a las aplicaciones Jellyfin en otros dispositivos acceder a los archivos de medios directamente.", "LabelOriginalAspectRatio": "Relación de aspecto original:", - "LabelOriginalTitle": "Titulo original:", - "LabelOverview": "Sinopsis:", + "LabelOriginalTitle": "Título original:", + "LabelOverview": "Resumen:", "LabelParentNumber": "Número antecesor:", "LabelParentalRating": "Clasificación parental:", "LabelPassword": "Contraseña:", "LabelPasswordConfirm": "Contraseña (confirmar):", - "LabelPasswordRecoveryPinCode": "Código pin:", + "LabelPasswordRecoveryPinCode": "Código PIN:", "LabelPath": "Ruta:", "LabelPersonRole": "Rol:", "LabelPersonRoleHelp": "Ejemplo: Conductor de camión de helados", "LabelPlaceOfBirth": "Lugar de nacimiento:", - "LabelPlayDefaultAudioTrack": "Reproducir la pista de audio por defecto independientemente del lenguaje", - "LabelPlaylist": "Lista de Reproducción:", - "LabelPostProcessor": "Aplicación de Post Procesado:", - "LabelPostProcessorArguments": "Argumentos de linea de comando para el post-procesador:", - "LabelPostProcessorArgumentsHelp": "Use {path} como la ruta a el archivo de grabado.", + "LabelPlayDefaultAudioTrack": "Reproducir la pista de audio por defecto independientemente del idioma", + "LabelPlaylist": "Lista de reproducción:", + "LabelPostProcessor": "Aplicación de postprocesamiento:", + "LabelPostProcessorArguments": "Argumentos de la línea de comandos del post-procesador:", + "LabelPostProcessorArgumentsHelp": "Usar {path} como la ruta del archivo grabado.", "LabelPreferredDisplayLanguage": "Idioma de pantalla preferido:", "LabelPreferredDisplayLanguageHelp": "La traducción de Jellyfin es un proyecto en curso.", - "LabelPreferredSubtitleLanguage": "Idioma preferido para subtitulos:", + "LabelPreferredSubtitleLanguage": "Idioma preferido para los subtítulos:", "LabelPrevious": "Anterior", - "LabelProfileAudioCodecs": "Codecs de Audio:", - "LabelProfileCodecsHelp": "Separados por comas. Puede dejarse vació para aplicarlo a todos los codecs.", + "LabelProfileAudioCodecs": "Códecs de audio:", + "LabelProfileCodecsHelp": "Separados por comas. Puede dejarse vacío para aplicarlo a todos los códecs.", "LabelProfileContainer": "Contenedor:", - "LabelProfileContainersHelp": "Separados por comas. Puede dejarse vació para aplicarlo a todos los contenedores.", - "LabelProfileVideoCodecs": "Codecs de Video:", + "LabelProfileContainersHelp": "Separados por comas. Puede dejarse vacío para aplicarlo a todos los contenedores.", + "LabelProfileVideoCodecs": "Códecs de video:", "LabelProtocol": "Protocolo:", "LabelProtocolInfo": "Información del protocolo:", - "LabelProtocolInfoHelp": "El valor que será utilizado cuando se responde a solicitudes GetProtocolInfo desde el dispositivo.", + "LabelProtocolInfoHelp": "El valor que será utilizado cuando se responda a solicitudes GetProtocolInfo desde el dispositivo.", "LabelPublicHttpPort": "Número de puerto HTTP público:", "LabelPublicHttpPortHelp": "El número de puerto público que debe asignarse al puerto HTTP local.", "LabelPublicHttpsPort": "Número de puerto HTTPS público:", "LabelPublicHttpsPortHelp": "El número de puerto público que debe asignarse al puerto HTTPS local.", - "LabelReadHowYouCanContribute": "Infórmese de cómo puede contribuir.", + "LabelReadHowYouCanContribute": "Aprende cómo puedes contribuir.", "LabelReasonForTranscoding": "Motivo para transcodificar:", "LabelRecord": "Grabar:", - "LabelRecordingPath": "Ruta por defecto para grabaciones:", - "LabelRecordingPathHelp": "Especifique la locación para guardar grabaciones. Si se deja en blanco, se usara la carpeta de datos de programa del servidor.", + "LabelRecordingPath": "Ruta por defecto para las grabaciones:", + "LabelRecordingPathHelp": "Especifica la ubicación por defecto para guardar las grabaciones. Si se deja en blanco, se usará la carpeta de datos de programa del servidor.", "LabelRefreshMode": "Modo de actualización:", "LabelReleaseDate": "Fecha de estreno:", - "LabelRemoteClientBitrateLimit": "Limite de tasa de bits para transmisión por Internet (Mbps):", - "LabelRemoteClientBitrateLimitHelp": "Un límite opcional en la tasa de bits para cada transmisión para todos los dispositivos fuera de la red local. Esto es útil para evitar que los clientes soliciten una tasa de bits mayor a la que su conexión de internet puede soportar. Puede resultar en un incremente en la carga del CPU de su servidor para poder transmitir videos al vuelo a una resolución baja.", + "LabelRemoteClientBitrateLimit": "Limite de velocidad de bits para la transmisión por Internet (Mbps):", + "LabelRemoteClientBitrateLimitHelp": "Un límite opcional de velocidad de bits por transmisión para todos los dispositivos fuera de la red. Esto es útil para evitar que los dispositivos soliciten una tasa de bits más alta de la que puede manejar tu conexión a Internet. Esto puede provocar un aumento de la carga de la CPU en el servidor para transcodificar los videos sobre la marcha a una velocidad de bits inferior.", "LabelRuntimeMinutes": "Duración (minutos):", - "LabelSaveLocalMetadata": "Guardar ilustraciones en las carpetas de medios", - "LabelSaveLocalMetadataHelp": "Guardar ilustraciones directamente en las carpetas de medios los colocará en un lugar donde se pueden editar fácilmente.", - "LabelScheduledTaskLastRan": "Ejecutado hace {0}, tomando {1}.", - "LabelScreensaver": "Protector de Pantalla:", - "LabelSeasonNumber": "Temporada numero:", + "LabelSaveLocalMetadata": "Guardar las ilustraciones en las carpetas de los medios", + "LabelSaveLocalMetadataHelp": "Guardar ilustraciones en las carpetas de los medios los colocará en un lugar donde se pueden editar fácilmente.", + "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 en vistas tales como Películas, Música y TV:", + "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:", + "LabelSelectUsers": "Seleccionar usuarios:", "LabelSelectVersionToInstall": "Seleccionar versión a instalar:", "LabelSendNotificationToUsers": "Enviar la notificación a:", "LabelSerialNumber": "Número de serie", - "LabelSeriesRecordingPath": "Ruta para grabaciones de Series (Opcional):", + "LabelSeriesRecordingPath": "Ruta para las grabaciones de series (opcional):", "LabelServerHost": "Servidor:", "LabelServerHostHelp": "192.168.1.100:8096 o https://miservidor.com", - "LabelSimultaneousConnectionLimit": "Limite de transmisiones simultaneas:", + "LabelSimultaneousConnectionLimit": "Límite de transmisiones simultáneas:", "LabelSkin": "Apariencia:", "LabelSkipBackLength": "Longitud de salto hacia atrás:", "LabelSkipForwardLength": "Longitud de salto hacia adelante:", - "LabelSkipIfAudioTrackPresent": "Omitir si la pista de audio por defecto coincide con el lenguaje de descarga", - "LabelSkipIfAudioTrackPresentHelp": "Desactive esto para asegurar que todos los videos tengan subtítulos, independientemente del lenguaje del audio.", - "LabelSkipIfGraphicalSubsPresent": "Omitir si el video ya contiene subtítulos embebidos", - "LabelSkipIfGraphicalSubsPresentHelp": "Manteniendo las versiones de texto de los subtitulos resultara una entrega mas eficiente de los mismos y disminuirá las posibilidades de que un video sea transcodificado.", - "LabelSonyAggregationFlags": "Banderas de agregación Sony:", + "LabelSkipIfAudioTrackPresent": "Omitir si la pista de audio por defecto coincide con el idioma de descarga", + "LabelSkipIfAudioTrackPresentHelp": "Desactiva esto para asegurarte de que todos los videos tengan subtítulos, independientemente del idioma del audio.", + "LabelSkipIfGraphicalSubsPresent": "Omitir si el video ya contiene subtítulos incrustados", + "LabelSkipIfGraphicalSubsPresentHelp": "Mantener versiones de texto de subtítulos resultará en una entrega más eficiente y disminuirá las posibilidades de que un video sea transcodificado.", + "LabelSonyAggregationFlags": "Marcas de agregación Sony:", "LabelSonyAggregationFlagsHelp": "Determina el contenido del elemento aggregationFlags en el namespace urn:schemas-sonycom:av.", "LabelSortBy": "Ordenar por:", - "LabelSortOrder": "Modo de ordenar:", - "LabelSortTitle": "Titulo para ordenar:", - "LabelSoundEffects": "Efectos de Sonido:", + "LabelSortOrder": "Clasificar ordenado:", + "LabelSortTitle": "Título para ordenar:", + "LabelSoundEffects": "Efectos de sonido:", "LabelSource": "Fuente:", - "LabelSpecialSeasonsDisplayName": "Nombre de la temporada de Especiales:", - "LabelSportsCategories": "Categorías de Deportes:", + "LabelSpecialSeasonsDisplayName": "Nombre de la temporada de especiales:", + "LabelSportsCategories": "Categorías de deportes:", "LabelStartWhenPossible": "Iniciar cuando sea posible:", "LabelStatus": "Estado:", "LabelStopWhenPossible": "Detener cuando sea posible:", "LabelStopping": "Deteniendo", - "LabelSubtitleDownloaders": "Recolectores de Subtitulos:", + "LabelSubtitleDownloaders": "Recolectores de subtítulos:", "LabelSubtitleFormatHelp": "Ejemplo: srt", "LabelSubtitlePlaybackMode": "Modo de subtítulo:", "LabelSubtitles": "Subtítulos", - "LabelSupportedMediaTypes": "Tipos de Medios Soportados:", + "LabelSupportedMediaTypes": "Tipos de medios soportados:", "LabelTVHomeScreen": "Modo de pantalla de TV:", "LabelTag": "Etiqueta:", "LabelTagline": "Eslogan:", "LabelTextBackgroundColor": "Color de fondo para el texto:", - "LabelTextColor": "Color de texto:", - "LabelTextSize": "Tamaño de texto:", + "LabelTextColor": "Color del texto:", + "LabelTextSize": "Tamaño del texto:", "LabelTheme": "Tema:", "LabelTime": "Hora:", - "LabelTimeLimitHours": "Límite de Tiempo (horas):", - "LabelTitle": "Titulo:", - "LabelTrackNumber": "Número de Pista:", - "LabelTranscodingAudioCodec": "Codec de audio:", + "LabelTimeLimitHours": "Límite de tiempo (horas):", + "LabelTitle": "Título:", + "LabelTrackNumber": "Número de pista:", + "LabelTranscodingAudioCodec": "Códec de audio:", "LabelTranscodingContainer": "Contenedor:", - "LabelTranscodingTempPathHelp": "Especifique una ruta personalizada para los archivos de transcodificación servidos a los clientes. Deje en blanco para utilizar el predeterminado del servidor.", - "LabelTranscodingThreadCount": "Conteo de hilos de transcodificación:", - "LabelTranscodingThreadCountHelp": "Seleccione el número máximo de hilos a utilizar al transcodificar. La reducción del número de hilos reducirá el uso de la CPU, pero es posible que no se convierta lo suficientemente rápido como para que la experiencia de reproducción sea fluida.", - "LabelTranscodingVideoCodec": "Codec de video:", - "LabelTriggerType": "Tipo de Evento:", - "LabelTunerIpAddress": "Dirección IP del Sintonizador:", + "LabelTranscodingTempPathHelp": "Especifica una ruta personalizada para los archivos de transcodificación servidos a los clientes. Deja en blanco para utilizar el predeterminado del servidor.", + "LabelTranscodingThreadCount": "Conteo de hilos de la transcodificación:", + "LabelTranscodingThreadCountHelp": "Selecciona el número máximo de hilos a utilizar al transcodificar. Reducir el número de hilos reducirá el uso de la CPU, pero es posible que no se convierta lo suficientemente rápido como para que la experiencia de reproducción sea fluida.", + "LabelTranscodingVideoCodec": "Códec de video:", + "LabelTriggerType": "Tipo de disparador:", + "LabelTunerIpAddress": "Dirección IP del sintonizador:", "LabelTunerType": "Tipo de sintonizador:", "LabelType": "Tipo:", - "LabelTypeMetadataDownloaders": "{0} recolectores de metadatos:", + "LabelTypeMetadataDownloaders": "Recolectores de metadatos para {0}:", "LabelTypeText": "Texto", - "LabelUseNotificationServices": "Emplear los siguientes servicios:", + "LabelUseNotificationServices": "Usar los siguientes servicios:", "LabelUser": "Usuario:", "LabelUserAgent": "Agente de usuario:", - "LabelUserLibrary": "Biblioteca del Usuario:", - "LabelUserLibraryHelp": "Seleccione la biblioteca de usuario que se mostrara en el dispositivo. Deje vacío para heredar la configuración por defecto.", + "LabelUserLibrary": "Biblioteca de usuario:", + "LabelUserLibraryHelp": "Selecciona la biblioteca de usuario que se mostrará en el dispositivo. Déjalo vacío para heredar la configuración por defecto.", "LabelUserRemoteClientBitrateLimitHelp": "Sobrescribe el valor global predeterminado establecido en la configuración de reproducción del servidor.", - "LabelUsername": "Nombre Usuario:", + "LabelUsername": "Nombre de usuario:", "LabelVaapiDevice": "Dispositivo VA API:", - "LabelVaapiDeviceHelp": "Este es un nodo de renderizado que es usado para aceleración por hardware.", + "LabelVaapiDeviceHelp": "Este es el nodo de renderizado que es usado para la aceleración por hardware.", "LabelValue": "Valor:", "LabelVersion": "Versión:", "LabelVersionInstalled": "{0} instalado", "LabelVersionNumber": "Versión {0}", - "LabelXDlnaCap": "X-DLNA cap:", + "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:", "LabelXDlnaDocHelp": "Determina el contenido del elemento X_DLNADOC en el namespace urn:schemas-dlna-org:device-1-0.", "LabelYear": "Año:", - "LabelYourFirstName": "Su nombre:", - "LabelYoureDone": "¡Ha terminado!", - "LabelZipCode": "Código Postal:", - "LabelffmpegPath": "Ruta FFmpeg:", - "LabelffmpegPathHelp": "La ruta hacia el archivo de aplicación de ffmpeg, o la carpeta que contenga ffmpeg.", - "LanNetworksHelp": "Lista separada por comas de direcciones IP/mascaras de subred para las redes que serán consideradas como locales al enforzar restricciones de ancho de banda. Si se establece, todas las demás direcciones IP serán consideradas como redes externas y estarán sujetas a restricciones de ancho de banda. Si se deja en blanco, sólo la subred del servidor será considerada como red local.", + "LabelYourFirstName": "Tu nombre:", + "LabelYoureDone": "¡Has terminado!", + "LabelZipCode": "Código postal:", + "LabelffmpegPath": "Ruta del FFmpeg:", + "LabelffmpegPathHelp": "La ruta hacia el archivo de la aplicación ffmpeg, o la carpeta que contenga ffmpeg.", + "LanNetworksHelp": "Lista separada por comas de direcciones IP o entradas de IP/máscara de red para las redes que se considerarán en la red local al aplicar las restricciones de ancho de banda. Si se establecen, todas las demás direcciones IP se considerarán como parte de la red externa y estarán sujetas a las restricciones de ancho de banda externa. Si se deja en blanco, solo se considera a la subred del servidor estar en la red local.", "Large": "Grande", - "LatestFromLibrary": "Más recientes - {0}", - "LearnHowYouCanContribute": "Aprenda como puede contribuír.", - "LibraryAccessHelp": "Seleccione las bibliotecas que desea compartir con este usuario. Los administradores podrán editar todas las carpetas utilizando el gestor de metadatos.", + "LatestFromLibrary": "Últimas - {0}", + "LearnHowYouCanContribute": "Aprende cómo puedes contribuir.", + "LibraryAccessHelp": "Selecciona las bibliotecas que deseas compartir con este usuario. Los administradores podrán editar todas las carpetas utilizando el gestor de metadatos.", "Like": "Me gusta", "LinksValue": "Enlaces: {0}", "List": "Lista", - "Live": "En Vivo", - "LiveBroadcasts": "Transmisiones en vivo", - "LiveTV": "TV en Vivo", - "Logo": "Logotipo", + "Live": "En vivo", + "LiveBroadcasts": "Emisiones en vivo", + "LiveTV": "TV en vivo", + "Logo": "Logo", "ManageLibrary": "Administrar biblioteca", - "ManageRecording": "Administrar grabaciones", - "MapChannels": "Mapear Canales", - "MarkPlayed": "Marcar como Reproducido", - "MarkUnplayed": "Marcar como No Reproducido", - "MaxParentalRatingHelp": "El contenido con clasificación parental superior se ocultará para este usuario.", + "ManageRecording": "Administrar grabación", + "MapChannels": "Mapear canales", + "MarkPlayed": "Marcar como reproducido", + "MarkUnplayed": "Marcar como no reproducido", + "MaxParentalRatingHelp": "El contenido con una calificación más alta será ocultado a este usuario.", "MediaInfoAnamorphic": "Anamórfico", "MediaInfoAspectRatio": "Relación de aspecto", "MediaInfoBitDepth": "Profundidad de bit", - "MediaInfoBitrate": "Tasa de bits", + "MediaInfoBitrate": "Velocidad de bits", "MediaInfoChannels": "Canales", - "MediaInfoCodecTag": "Etiqueta de Codec", + "MediaInfoCodecTag": "Etiqueta de códec", "MediaInfoContainer": "Contenedor", "MediaInfoDefault": "Por defecto", "MediaInfoExternal": "Externo", "MediaInfoForced": "Forzado", - "MediaInfoFramerate": "Velocidad de cuadro", + "MediaInfoFramerate": "Velocidad de cuadros", "MediaInfoInterlaced": "Entrelazado", - "MediaInfoLanguage": "Lenguaje", + "MediaInfoLanguage": "Idioma", "MediaInfoLayout": "Esquema", "MediaInfoLevel": "Nivel", "MediaInfoPath": "Ruta", "MediaInfoPixelFormat": "Formato de pixel", - "MediaInfoProfile": "Perfíl", + "MediaInfoProfile": "Perfil", "MediaInfoRefFrames": "Tramas de referencia", "MediaInfoResolution": "Resolución", "MediaInfoSampleRate": "Tasa de muestreo", "MediaInfoSize": "Tamaño", "MediaInfoTimestamp": "Fecha y hora", - "MediaIsBeingConverted": "Los medios están siendo convertidos a un formato compatible con el dispositivo que esta reproduciendo el medio.", + "MediaIsBeingConverted": "Los medios están siendo convertidos a un formato compatible con el dispositivo que está reproduciendo el medio.", "Menu": "Menú", "MessageAlreadyInstalled": "Esta versión ya se encuentra instalada.", - "MessageAreYouSureDeleteSubtitles": "¿Está seguro de querer eliminar este archivo de subtitulos?", - "MessageAreYouSureYouWishToRemoveMediaFolder": "¿Está seguro de querer eliminar esta carpeta de medios?", - "MessageConfirmDeleteGuideProvider": "¿Está seguro de querer eliminar este proveedor de guía?", - "MessageConfirmDeleteTunerDevice": "¿Está seguro de querer eliminar este dispositivo?", - "MessageConfirmProfileDeletion": "¿Está seguro de querer eliminar este perfil?", - "MessageConfirmRecordingCancellation": "¿cancelar esta grabación?", - "MessageConfirmRemoveMediaLocation": "¿Está seguro de querer eliminar esta ubicación?", - "MessageConfirmRestart": "¿Esta seguro de que desea reiniciar el Servidor Jellyfin?", - "MessageConfirmRevokeApiKey": "¿Esta seguro de querer revocar esta clave api? La conexión de la aplicación con el Servidor Jellyfin sera terminada abruptamente.", - "MessageConfirmShutdown": "¿Está seguro de que desea apagar el servidor?", - "MessageContactAdminToResetPassword": "Por favor contacte a su administrador para restablecer su contraseña.", + "MessageAreYouSureDeleteSubtitles": "¿Estás seguro de querer eliminar este subtítulo?", + "MessageAreYouSureYouWishToRemoveMediaFolder": "¿Estás seguro de querer remover esta carpeta de medios?", + "MessageConfirmDeleteGuideProvider": "¿Estás seguro de querer eliminar este proveedor de guía?", + "MessageConfirmDeleteTunerDevice": "¿Estás seguro de querer eliminar este dispositivo?", + "MessageConfirmProfileDeletion": "¿Estás seguro de querer eliminar este perfil?", + "MessageConfirmRecordingCancellation": "¿Cancelar grabación?", + "MessageConfirmRemoveMediaLocation": "¿Estás seguro de querer eliminar esta ubicación?", + "MessageConfirmRestart": "¿Estás seguro de que deseas reiniciar el servidor Jellyfin?", + "MessageConfirmRevokeApiKey": "¿Estás seguro de querer revocar esta clave API? La conexión de la aplicación con el servidor Jellyfin será terminada abruptamente.", + "MessageConfirmShutdown": "¿Estás seguro de que deseas apagar el servidor?", + "MessageContactAdminToResetPassword": "Por favor, contacta a tu administrador para restablecer tu contraseña.", "MessageCreateAccountAt": "Crear una cuenta en {0}", - "MessageDeleteTaskTrigger": "¿Está seguro de querer eliminar este disparador de tarea?", - "MessageDirectoryPickerBSDInstruction": "Para BSD, quizás necesite configurar el almacenamiento dentro de su \"FreeNAS Jail\" de manera que permita a Jellyfin accesarlo.", - "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} or {1}.", - "MessageDirectoryPickerLinuxInstruction": "Para Linux en Arch Linux, CentOS, Debian, Fedora, openSUSE, o Ubuntu. Debe conceder al usuario del servicio al menos permisos de lectura a sus ubicaciones de almacenamiento.", - "MessageDownloadQueued": "Descargar cola.", - "MessageEnablingOptionLongerScans": "Habilitar esta opción podría resultar en escaneos de bibliotecas significativamente mas largos.", - "MessageFileReadError": "Hubo un error al leer el archivo. Por favor intente de nuevo.", + "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.", + "MessageFileReadError": "Hubo un error al leer el archivo. Por favor, intenta de nuevo.", "MessageForgotPasswordFileCreated": "El siguiente archivo fue creado en tu servidor y contiene instrucciones de como proceder:", - "MessageForgotPasswordInNetworkRequired": "Por favor intente de nuevo dentro de su red de hogar para iniciar el proceso de restablecimiento de contraseña.", - "MessageInstallPluginFromApp": "Este complemento debe ser instalado desde dentro de la aplicación en la que desea usarlo.", - "MessageInvalidForgotPasswordPin": "Se ha introducido un código PIN inválido o expirado. Por favor, inténtelo de nuevo.", - "MessageInvalidUser": "Nombre del usuario o contraseña inválidos. Por favor intenta de nuevo.", - "MessageItemSaved": "Ítem guardado.", - "MessageItemsAdded": "Ítems agregados.", + "MessageForgotPasswordInNetworkRequired": "Por favor, intenta de nuevo dentro de tu red local para iniciar el proceso de restablecimiento de contraseña.", + "MessageInstallPluginFromApp": "Este complemento debe ser instalado desde dentro de la aplicación en la que deseas usarlo.", + "MessageInvalidForgotPasswordPin": "Se ha introducido un código PIN inválido o expirado. Por favor, inténtalo de nuevo.", + "MessageInvalidUser": "Nombre de usuario o contraseña inválidos. Por favor, intenta de nuevo.", + "MessageItemSaved": "Elemento guardado.", + "MessageItemsAdded": "Elementos agregados.", "MessageLeaveEmptyToInherit": "Dejar vacío para heredar la configuración de un elemento superior o del valor predeterminado global.", "MessageNoAvailablePlugins": "No hay complementos disponibles.", - "MessageNoMovieSuggestionsAvailable": "No hay sugerencias de películas disponibles en este momento. Comienza a ver y a calificar tus películas, y regresa para ver tus recomendaciones.", - "MessageNoPluginsInstalled": "No tienes extensiones instaladas.", - "MessageNoTrailersFound": "No se encontraron tráilers. Instale el canal de tráilers para mejorar su experiencia con películas al agregar una biblioteca de tráilers desde el Internet.", + "MessageNoMovieSuggestionsAvailable": "No hay sugerencias de películas disponibles en este momento. Comienza a ver y a calificar tus películas, y luego regresa para ver tus recomendaciones.", + "MessageNoPluginsInstalled": "No tienes complementos instalados.", + "MessageNoTrailersFound": "No se encontraron trailers. Instala el canal de trailers para mejorar tu experiencia con películas al agregar una biblioteca de trailers desde Internet.", "MessageNothingHere": "Nada aquí.", "MessagePasswordResetForUsers": "Los siguientes usuarios han restablecido sus contraseñas. Ahora pueden iniciar sesión con los códigos PIN que se usaron para realizar el restablecimiento.", - "MessagePlayAccessRestricted": "La reproducción de este contenido está actualmente restringida. Póngase en contacto con el administrador del servidor para obtener más información.", - "MessagePleaseEnsureInternetMetadata": "Por favor asegúrese que la descarga de metadatos de internet esta habilitada.", - "MessagePleaseWait": "Espere por favor. Esto podría tomar un minuto.", - "MessagePluginConfigurationRequiresLocalAccess": "Para configurar este complemento por favor inicie sesión en su servidor local directamente.", - "MessagePluginInstallDisclaimer": "Los complementos desarrollados por miembros de la comunidad Jellyfin son una gran forma de mejorar su experiencia con Jellyfin con características y beneficios adicionales. Antes de instalar, conozca el impacto que pueden ocasionar en su Servidor Jellyfin, tales como exploración de la biblioteca que puede tomar más tiempo, procesamiento en segundo plano adicional y estabilidad del sistema reducida.", - "MessageReenableUser": "Vea abajo para volverlo a habilitar", - "MessageSettingsSaved": "Configuración guardada.", - "MessageTheFollowingLocationWillBeRemovedFromLibrary": "Las siguientes ubicaciones de medios se eliminarán de su biblioteca:", - "MessageUnableToConnectToServer": "No es posible conectarse al servidor seleccionado en este momento. Por favor asegúrese de que se encuentra en ejecución e inténtelo nuevamente.", - "MessageUnsetContentHelp": "El contenido será mostrado como carpetas simples. Para mejores resultados utilice el administrador de metadatos para establecer los tipos de contenido para las sub-carpetas.", - "MessageYouHaveVersionInstalled": "Actualmente cuenta con la vesión {0} instalada.", + "MessagePlayAccessRestricted": "La reproducción de este contenido está actualmente restringida. Por favor, contacta al administrador del servidor para obtener más información.", + "MessagePleaseEnsureInternetMetadata": "Por favor, asegúrate de que la descarga de metadatos de Internet está habilitada.", + "MessagePleaseWait": "Por favor, espera. Esto podría tomar un minuto.", + "MessagePluginConfigurationRequiresLocalAccess": "Para configurar este complemento por favor, inicia sesión en tu servidor local directamente.", + "MessagePluginInstallDisclaimer": "Los complementos desarrollados por miembros de la comunidad Jellyfin son una gran forma de mejorar tu experiencia con Jellyfin con características y beneficios adicionales. Antes de instalar, por favor, conoce el impacto que pueden ocasionar en tu servidor Jellyfin, tales como escaneo más largo de bibliotecas, procesamiento en segundo plano adicional y reducción de la estabilidad del sistema.", + "MessageReenableUser": "Ver abajo para volver a habilitar", + "MessageSettingsSaved": "Configuraciones guardadas.", + "MessageTheFollowingLocationWillBeRemovedFromLibrary": "Las siguientes ubicaciones de medios se eliminarán de tu biblioteca:", + "MessageUnableToConnectToServer": "No podemos conectarnos al servidor seleccionado en este momento. Por favor, asegúrate de que está funcionando e inténtalo de nuevo.", + "MessageUnsetContentHelp": "El contenido será mostrado como carpetas simples. Para mejores resultados utiliza el administrador de metadatos para establecer los tipos de contenido para las subcarpetas.", + "MessageYouHaveVersionInstalled": "Actualmente cuentas con la versión {0} instalada.", "Metadata": "Metadatos", - "MetadataManager": "Administrador de Metadatos", - "MetadataSettingChangeHelp": "Cambiar los ajustes de metadata afectará al contenido nuevo añadido a partir de ahora. Para actualizar el contenido existente, abra la pantalla de detalles y haga clic en actualizar, o realice actualizaciones masivas usando el administrador de metadata.", - "MinutesAfter": "minutos despues", - "MinutesBefore": "Minutos antes", + "MetadataManager": "Administrador de metadatos", + "MetadataSettingChangeHelp": "Cambiar la configuración de los metadatos afectará al nuevo contenido que se añada en el futuro. Para actualizar el contenido existente, abre la pantalla de detalles y haz clic en el botón actualizar, o realiza actualizaciones masivas usando el administrador de metadatos.", + "MinutesAfter": "minutos después", + "MinutesBefore": "minutos antes", "Mobile": "Móvil", "Monday": "Lunes", - "MoreFromValue": "Mas de {0}", + "MoreFromValue": "Más de {0}", "MoreUsersCanBeAddedLater": "Más usuarios pueden ser añadidos más tarde desde el panel de control.", "MoveLeft": "Mover a la izquierda", "MoveRight": "Mover a la derecha", - "MovieLibraryHelp": "Revisar la {0}Guía para nombrar películas{1}.", + "MovieLibraryHelp": "Revisar la {0}guía de nombrado de películas{1}.", "Movies": "Películas", "Mute": "Silenciar", - "MySubtitles": "Mis Subtitulos", + "MySubtitles": "Mis subtítulos", "Name": "Nombre", "Never": "Nunca", - "NewCollection": "Nueva Colección", - "NewCollectionHelp": "Las colecciones le permiten disfrutar de agrupaciones personalizadas de películas y otros contenidos de la biblioteca.", + "NewCollection": "Nueva colección", + "NewCollectionHelp": "Las colecciones te permiten disfrutar de agrupaciones personalizadas de películas y otros contenidos de la biblioteca.", "NewCollectionNameExample": "Ejemplo: Colección Guerra de las Galaxias", "NewEpisodes": "Episodios nuevos", "NewEpisodesOnly": "Solo episodios nuevos", "News": "Noticias", "Next": "Siguiente", - "NextUp": "A Continuación", - "NoNewDevicesFound": "No se encontraron nuevos dispositivos. Para agregar un sintonizador nuevo, cierre este cuadro de dialogo e introduzca a la información del dispositivo manualmente.", + "NextUp": "A continuación", + "NoNewDevicesFound": "No se encontraron nuevos dispositivos. Para agregar un sintonizador nuevo, cierra este diálogo e introduce la información del dispositivo manualmente.", "NoNextUpItemsMessage": "No se encontró nada. ¡Comienza a ver tus programas!", - "NoPluginConfigurationMessage": "El complemento no tiene configuraciones disponibles.", + "NoPluginConfigurationMessage": "Este complemento no tiene configuraciones disponibles.", "NoSubtitleSearchResultsFound": "No se encontraron resultados.", - "NoSubtitles": "Nada", - "NoSubtitlesHelp": "Los subtítulos no serán cargados por defecto. Pero pueden ser activados manualmente durante la reproducción.", + "NoSubtitles": "Ninguno", + "NoSubtitlesHelp": "Los subtítulos no serán cargados por defecto. Pueden ser activados manualmente durante la reproducción.", "None": "Ninguno", "NumLocationsValue": "{0} carpetas", "Off": "Apagar", "OneChannel": "Un canal", - "OnlyForcedSubtitles": "Únicamente forzados", - "OnlyForcedSubtitlesHelp": "Se cargarán únicamente subtítulos marcados como forzados.", + "OnlyForcedSubtitles": "Solo forzados", + "OnlyForcedSubtitlesHelp": "Solo se cargarán subtítulos marcados como forzados.", "OnlyImageFormats": "Solo formatos de imagen (VOBSUB, PGS, SUB)", "OptionAdminUsers": "Administradores", "OptionAlbum": "Álbum", - "OptionAlbumArtist": "Artista del Álbum", + "OptionAlbumArtist": "Artista del álbum", "OptionAllUsers": "Todos los usuarios", - "OptionAllowAudioPlaybackTranscoding": "Permitir la reproducción de audio que requiera de transcodificación", - "OptionAllowBrowsingLiveTv": "Permitir acceso a TV en Vivo", + "OptionAllowAudioPlaybackTranscoding": "Permitir la reproducción de audio que requiera transcodificación", + "OptionAllowBrowsingLiveTv": "Permitir acceso a TV en vivo", "OptionAllowContentDownloading": "Permitir descarga y sincronización de medios", "OptionAllowLinkSharing": "Permitir compartir medios en redes sociales", - "OptionAllowLinkSharingHelp": "Solo son compartidas paginas web que contengan información sobre los medios. Los archivos de medios nunca son compartidos públicamente. Son compartidos por un tiempo limitado y expiraran después de {0} días.", - "OptionAllowManageLiveTv": "Permitir gestión de grabación de TV en Vivo", + "OptionAllowLinkSharingHelp": "Solo son compartidas páginas web que contienen información sobre los medios. Los archivos de medios nunca son compartidos públicamente. Los compartidos tienen un límite de tiempo y expirarán después de {0} días.", + "OptionAllowManageLiveTv": "Permitir gestión de grabación de TV en vivo", "OptionAllowMediaPlayback": "Permitir reproducción de medios", - "OptionAllowMediaPlaybackTranscodingHelp": "Restringir el acceso a transcodificacion podría causar fallas en la reproducción in las aplicaciones Jellyfin debido a los formatos de medios no soportados.", + "OptionAllowMediaPlaybackTranscodingHelp": "Restringir el acceso a la transcodificación podría causar fallas en la reproducción en las aplicaciones Jellyfin debido a los formatos de medios no soportados.", "OptionAllowRemoteControlOthers": "Permitir control remoto de otros usuarios", "OptionAllowRemoteSharedDevices": "Permitir control remoto de dispositivos compartidos", - "OptionAllowRemoteSharedDevicesHelp": "Los dispositivos DLNA se consideran compartidos hasta que un usuario comienza a controlarlos.", + "OptionAllowRemoteSharedDevicesHelp": "Los dispositivos DLNA se considerarán compartidos hasta que un usuario comience a controlarlos.", "OptionAllowSyncTranscoding": "Permitir descarga y sincronización de medios que requieran transcodificación", "OptionAllowUserToManageServer": "Permitir a este usuario administrar el servidor", - "OptionAllowVideoPlaybackRemuxing": "Permitir reproducción de video que requiera conversión sin re-codificar", + "OptionAllowVideoPlaybackRemuxing": "Permitir reproducción de video que requiera conversión sin recodificar", "OptionAllowVideoPlaybackTranscoding": "Permitir la reproducción de video que requiera de transcodificación", "OptionArtist": "Artista", "OptionAscending": "Ascendente", @@ -981,129 +980,129 @@ "OptionAutomaticallyGroupSeries": "Fusionar automáticamente series esparcidas a través de múltiples carpetas", "OptionAutomaticallyGroupSeriesHelp": "Si se habilita, las series que se reparten a través de múltiples carpetas dentro de esta biblioteca serán fusionadas en una sola serie.", "OptionBlockBooks": "Libros", - "OptionBlockChannelContent": "Contenido de Canales de Internet", - "OptionBlockLiveTvChannels": "Canales de TV en Vivo", + "OptionBlockChannelContent": "Contenido de canales de Internet", + "OptionBlockLiveTvChannels": "Canales de TV en vivo", "OptionBlockMovies": "Películas", "OptionBlockMusic": "Música", - "OptionBlockTrailers": "Tráilers", + "OptionBlockTrailers": "Trailers", "OptionBlockTvShows": "Programas de TV", - "OptionCommunityRating": "Calificación de la Comunidad", + "OptionCommunityRating": "Calificación de la comunidad", "OptionContinuing": "Continuando", - "OptionCriticRating": "Calificación de la Crítica", + "OptionCriticRating": "Calificación de los críticos", "OptionCustomUsers": "Personalizado", "OptionDaily": "Diario", - "OptionDateAdded": "Fecha de Adición", - "OptionDateAddedFileTime": "Emplear fecha de creación del archivo", - "OptionDateAddedImportTime": "Emplear la fecha de escaneo en la biblioteca", - "OptionDatePlayed": "Fecha de Reproducción", + "OptionDateAdded": "Fecha de adición", + "OptionDateAddedFileTime": "Usar la fecha de creación del archivo", + "OptionDateAddedImportTime": "Usar la fecha de escaneo en la biblioteca", + "OptionDatePlayed": "Fecha de reproducción", "OptionDescending": "Descendente", "OptionDisableUser": "Desactivar este usuario", - "OptionDisableUserHelp": "Si está desactivado, el servidor no aceptará conexiones de este usuario. Las conexiones existentes serán finalizadas abruptamente.", + "OptionDisableUserHelp": "Si se desactiva, el servidor no aceptará conexiones de este usuario. Las conexiones existentes serán finalizadas abruptamente.", "OptionDislikes": "No me gusta", - "OptionDisplayFolderView": "Mostrar una vista de carpetas para mostrar carpetas de medios simples", - "OptionDisplayFolderViewHelp": "Muestra las carpetas junto con sus otras bibliotecas multimedia. Esto puede ser útil si desea tener una vista de carpeta sencilla.", + "OptionDisplayFolderView": "Mostrar una vista de carpetas para mostrar las carpetas simples de los medios", + "OptionDisplayFolderViewHelp": "Muestra las carpetas junto con sus otras bibliotecas de medios. Esto puede ser útil si deseas tener una vista simple de carpeta.", "OptionDownloadArtImage": "Arte", - "OptionDownloadBackImage": "Atras", + "OptionDownloadBackImage": "Parte trasera", "OptionDownloadBannerImage": "Banner", "OptionDownloadBoxImage": "Caja", - "OptionDownloadDiscImage": "DIsco", - "OptionDownloadImagesInAdvance": "Descargar las imágenes desde el inicio", - "OptionDownloadImagesInAdvanceHelp": "Por defecto, la mayoría de las imágenes son descargadas solo cuando son solicitadas por una aplicacion Jellyfin. Habilite esta opción para descargar todas las imágenes por adelantado, a medida que se agregen mas medios. Esto podría causar escaneos de bibliotecas significativamente largos.", + "OptionDownloadDiscImage": "Disco", + "OptionDownloadImagesInAdvance": "Descargar las imágenes con antelación", + "OptionDownloadImagesInAdvanceHelp": "Por defecto, la mayoría de las imágenes solo son descargadas cuando son solicitadas por una aplicación Jellyfin. Habilita esta opción para descargar todas las imágenes por adelantado, a medida que se agreguen nuevos medios. Esto podría causar escaneos de bibliotecas significativamente más largos.", "OptionDownloadMenuImage": "Menú", "OptionDownloadPrimaryImage": "Principal", "OptionDownloadThumbImage": "Miniatura", "OptionDvd": "DVD", - "OptionEmbedSubtitles": "Embeber dentro del contenedor", + "OptionEmbedSubtitles": "Incrustar dentro del contenedor", "OptionEnableAccessFromAllDevices": "Habilitar acceso desde todos los dispositivos", "OptionEnableAccessToAllChannels": "Habilitar acceso a todos los canales", - "OptionEnableAccessToAllLibraries": "Habilitar el acceso a todas las bibliotecas", + "OptionEnableAccessToAllLibraries": "Habilitar acceso a todas las bibliotecas", "OptionEnableExternalContentInSuggestions": "Habilitar contenido externo en las sugerencias", "OptionEnableExternalContentInSuggestionsHelp": "Permitir que los trailers de Internet y los programas de televisión en vivo se incluyan en el contenido sugerido.", "OptionEnableForAllTuners": "Habilitar para todos los dispositivos sintonizadores", - "OptionEnableM2tsMode": "Habilitar modo M2ts", - "OptionEnableM2tsModeHelp": "Habilita el modo m2ts cuando se codifican mpegs.", + "OptionEnableM2tsMode": "Habilitar modo M2TS", + "OptionEnableM2tsModeHelp": "Habilita el modo m2ts cuando se codifican mpegts.", "OptionEnded": "Finalizado", "OptionEquals": "Igual a", "OptionEstimateContentLength": "Estimar la duración del contenido cuando se transcodifica", "OptionEveryday": "Todos los días", "OptionExternallyDownloaded": "Descarga externa", - "OptionExtractChapterImage": "Habilitar extracción de imágenes de capitulo", + "OptionExtractChapterImage": "Habilitar la extracción de imágenes de los capítulos", "OptionFavorite": "Favoritos", "OptionFriday": "Viernes", - "OptionHasSpecialFeatures": "Características Especiales", + "OptionHasSpecialFeatures": "Características especiales", "OptionHasSubtitles": "Subtítulos", - "OptionHasThemeSong": "Canción del Tema", - "OptionHasThemeVideo": "Video del Tema", - "OptionHasTrailer": "Tráiler", - "OptionHideUser": "Ocultar este usuario en las pantallas de inicio de sesión", + "OptionHasThemeSong": "Canción temática", + "OptionHasThemeVideo": "Video temático", + "OptionHasTrailer": "Trailer", + "OptionHideUser": "Ocultar este usuario de las pantallas de inicio de sesión", "OptionHideUserFromLoginHelp": "Útil para cuentas privadas o de administrador ocultas. El usuario tendrá que iniciar sesión manualmente introduciendo su nombre de usuario y contraseña.", "OptionHlsSegmentedSubtitles": "Subtítulos segmentados HLS", "OptionHomeVideos": "Fotos", - "OptionIgnoreTranscodeByteRangeRequests": "Ignorar solicitudes de transcodificación de rango de byte", - "OptionIgnoreTranscodeByteRangeRequestsHelp": "Si se habilita, estas solicitudes seran honradas pero se ignorará el encabezado de rango de byte.", + "OptionIgnoreTranscodeByteRangeRequests": "Ignorar solicitudes de transcodificación de rango de bytes", + "OptionIgnoreTranscodeByteRangeRequestsHelp": "Si se habilita, estas solicitudes serán honradas pero se ignorará el encabezado de rango de bytes.", "OptionImdbRating": "Calificación de IMDb", "OptionLikes": "Me gusta", "OptionMax": "Máximo", - "OptionMissingEpisode": "Episodios Faltantes", + "OptionMissingEpisode": "Episodios faltantes", "OptionMonday": "Lunes", "OptionNameSort": "Nombre", - "OptionNew": "Nuevo...", + "OptionNew": "Nuevo…", "OptionNone": "Ninguno", "OptionOnAppStartup": "Al iniciar la aplicación", "OptionOnInterval": "En un intervalo", - "OptionParentalRating": "Clasificación Parental", + "OptionParentalRating": "Clasificación parental", "OptionPlainStorageFolders": "Mostrar todas las carpetas como carpetas de almacenamiento simples", - "OptionPlainStorageFoldersHelp": "Si se habilita, todos las carpetas serán representadas en DIDL como \"object.container.storageFolder\" en lugar de un tipo más específico, como \"object.container.person.musicArtist\".", + "OptionPlainStorageFoldersHelp": "Si se habilita, todos las carpetas serán representadas en DIDL como «object.container.storageFolder» en lugar de un tipo más específico, como «object.container.person.musicArtist».", "OptionPlainVideoItems": "Mostrar todos los videos como elementos de video simples", - "OptionPlainVideoItemsHelp": "Se se habilita, todos los videos serán representados en DIDL como \"object.item.videoItem\" en lugar de un tipo más específico, como \"object.item.videoItem.movie\".", - "OptionPlayCount": "Contador", + "OptionPlainVideoItemsHelp": "Si se habilita, todos los videos serán representados en DIDL como «object.item.videoItem» en lugar de un tipo más específico, como «object.item.videoItem.movie».", + "OptionPlayCount": "Contador de reproducciones", "OptionPlayed": "Reproducido", - "OptionPremiereDate": "Fecha de Estreno", + "OptionPremiereDate": "Fecha de estreno", "OptionProfilePhoto": "Foto", - "OptionProfileVideoAudio": "Audio del Video", - "OptionProtocolHls": "Transmisión en vivo por Http", - "OptionReleaseDate": "Fecha de Estreno", - "OptionReportByteRangeSeekingWhenTranscoding": "Reportar que el servidor soporta busqueda de bytes al transcodificar", - "OptionReportByteRangeSeekingWhenTranscodingHelp": "Esto es requerido para algunos dispositivos que no pueden hacer búsquedas por tiempo muy bien.", - "OptionRequirePerfectSubtitleMatch": "Solo descargar subtitulos que corresponden perfectamente para mis archivos de video", - "OptionRequirePerfectSubtitleMatchHelp": "Solicitar una coincidencia perfecta filtrara los subtitulos para incluir solo aquellos que han sido verificados exactamente con su archivo de video. Desmarcar esta opción incrementara las probabilidades de que los subtitulos sean descargados, a la vez que incrementara las posibilidades de obtener subtitulos mal sincronizados o con texto incorrecto.", - "OptionResElement": "Elemento Res", + "OptionProfileVideoAudio": "Audio del video", + "OptionProtocolHls": "Transmisión en vivo por HTTP", + "OptionReleaseDate": "Fecha de estreno", + "OptionReportByteRangeSeekingWhenTranscoding": "Reportar que el servidor soporta la búsqueda de bytes cuando se transcodifica", + "OptionReportByteRangeSeekingWhenTranscodingHelp": "Esto es requerido para algunos dispositivos que no pueden hacer búsquedas de tiempo muy bien.", + "OptionRequirePerfectSubtitleMatch": "Solo descargar subtítulos que coincidan perfectamente con mis archivos de video", + "OptionRequirePerfectSubtitleMatchHelp": "Solicitar una coincidencia perfecta filtrará los subtítulos para incluir solo aquellos que han sido probados y verificados exactamente con tu archivo de video. Desmarcar esta opción incrementará las probabilidades de que se descarguen subtítulos, pero incrementará las posibilidades de obtener subtítulos mal sincronizados o con texto incorrecto.", + "OptionResElement": "elemento res", "OptionResumable": "Reanudable", "OptionRuntime": "Duración", "OptionSaturday": "Sábado", "OptionSaveMetadataAsHidden": "Guardar metadatos e imágenes como archivos ocultos", - "OptionSaveMetadataAsHiddenHelp": "Cambiar esto aplicará a nuevos metadatos alamacenados en lo sucesivo. Los archivos de metadatos existentes serán actualizados la próxima vez que sean guardados por el Servidor Jellyfin.", + "OptionSaveMetadataAsHiddenHelp": "Cambiar esto se aplicará a los nuevos metadatos guardados en el futuro. Los archivos de metadatos existentes serán actualizados la próxima vez que sean guardados por el servidor Jellyfin.", "OptionSpecialEpisode": "Especiales", "OptionSubstring": "Subcadena", "OptionSunday": "Domingo", "OptionThursday": "Jueves", - "OptionTrackName": "Nombre de la Pista", + "OptionTrackName": "Nombre de la pista", "OptionTuesday": "Martes", "OptionTvdbRating": "Calificación de TVDB", - "OptionUnairedEpisode": "Episodios no Emitidos", + "OptionUnairedEpisode": "Episodios no emitidos", "OptionUnplayed": "No reproducido", - "OptionWakeFromSleep": "Al Despertar", + "OptionWakeFromSleep": "Despertar de la suspensión", "OptionWednesday": "Miércoles", - "OptionWeekdays": "Entre semana", + "OptionWeekdays": "Días de semana", "OptionWeekends": "Fines de semana", "OptionWeekly": "Semanal", "OriginalAirDateValue": "Fecha de emisión original: {0}", - "Overview": "Sinopsis", - "PackageInstallCancelled": "{0} (versión {1}) instalación cancelada.", - "PackageInstallCompleted": "{0} (version {1}) instalación completada.", - "PackageInstallFailed": "{0} (versión {1}) instalación fallida.", - "ParentalRating": "Clasificación Parental", - "PasswordMatchError": "La Contraseña y la confirmación de la contraseña deben coincidir.", + "Overview": "Resumen", + "PackageInstallCancelled": "Instalación cancelada de {0} (versión {1}).", + "PackageInstallCompleted": "Instalación completada de {0} (versión {1}).", + "PackageInstallFailed": "Instalación fallida de {0} (versión {1}).", + "ParentalRating": "Clasificación parental", + "PasswordMatchError": "La contraseña y la confirmación de la contraseña deben coincidir.", "PasswordResetComplete": "La contraseña ha sido restablecida.", - "PasswordResetConfirmation": "¿Está seguro de querer restablecer la contraseña?", - "PasswordResetHeader": "Restablecer Contraseña", + "PasswordResetConfirmation": "¿Estás seguro de querer restablecer la contraseña?", + "PasswordResetHeader": "Restablecer contraseña", "PasswordSaved": "Contraseña guardada.", "People": "Personas", - "PerfectMatch": "Coincidencia exacta", + "PerfectMatch": "Coincidencia perfecta", "Photos": "Fotos", "PictureInPicture": "Pantalla en pantalla", - "PinCodeResetComplete": "El código pin ha sido restablecido.", - "PinCodeResetConfirmation": "¿Esta seguro de querer restablecer el código pin?", + "PinCodeResetComplete": "El código PIN ha sido restablecido.", + "PinCodeResetConfirmation": "¿Estás seguro de que quieres restablecer el código PIN?", "PlaceFavoriteChannelsAtBeginning": "Colocar canales favoritos al inicio", "Play": "Reproducir", "PlayAllFromHere": "Reproducir todos desde aquí", @@ -1113,85 +1112,85 @@ "PlayNextEpisodeAutomatically": "Reproducir el siguiente episodio automáticamente", "Played": "Reproducido", "Playlists": "Listas de reproducción", - "PleaseAddAtLeastOneFolder": "Por favor agregue al menos una carpeta a esta biblioteca dando clic al botón de Agregar.", - "PleaseConfirmPluginInstallation": "Por favor haga clic en OK para confirmar que ha leido lo que se encuentra arriba y que desea proceder con la instalación del complemento.", - "PleaseEnterNameOrId": "Por favor introduzca un nombre o ID externo.", - "PleaseRestartServerName": "Por favor reinicie el Servidor Jellyfin - {0}.", - "PleaseSelectTwoItems": "Por favor selecciona al menos dos ítems.", - "PluginInstalledMessage": "El complemento ha sido instalado exitosamente. El Servidor Jellyfin necesitará reiniciarse para que los cambios surtan efecto.", - "PreferEmbeddedTitlesOverFileNames": "Prefererir titulos embebidos por encima de los nombres de archivo", - "PreferEmbeddedTitlesOverFileNamesHelp": "Esto determina el titulo mostrado por defecto cuando no hay disponibles metadatos en internet o localmente.", + "PleaseAddAtLeastOneFolder": "Por favor, agrega al menos una carpeta a esta biblioteca dando clic al botón Agregar.", + "PleaseConfirmPluginInstallation": "Por favor, haz clic en OK para confirmar que has leído lo que se encuentra arriba y que deseas proceder con la instalación del complemento.", + "PleaseEnterNameOrId": "Por favor, introduce un nombre o ID externo.", + "PleaseRestartServerName": "Por favor, reinicia el servidor Jellyfin - {0}.", + "PleaseSelectTwoItems": "Por favor, selecciona al menos dos elementos.", + "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": "Premier", + "Premiere": "Estreno", "Premieres": "Estrenos", "Previous": "Anterior", "Primary": "Principal", "Producer": "Productor", - "ProductionLocations": "Lugares de produccion", + "ProductionLocations": "Lugares de producción", "Programs": "Programas", "Quality": "Calidad", "QueueAllFromHere": "Encolar todos desde aquí", - "Raised": "Elevación", + "Raised": "Elevado", "Rate": "Calificación", "RecentlyWatched": "Visto recientemente", - "RecommendationBecauseYouLike": "Porque te gustó {0}", + "RecommendationBecauseYouLike": "Porque te gusta {0}", "RecommendationBecauseYouWatched": "Porque viste {0}", "RecommendationDirectedBy": "Dirigido por {0}", "RecommendationStarring": "Protagonizado por {0}", "Record": "Grabar", - "RecordSeries": "Grabar Series", + "RecordSeries": "Grabar series", "RecordingCancelled": "Grabación cancelada.", - "RecordingPathChangeMessage": "Cambiar su carpeta de grabaciones no moverá sus grabaciones existentes del la antigua locación a la nueva. Necesita moverlas manualmente si lo desea.", + "RecordingPathChangeMessage": "Cambiar la carpeta de grabaciones no moverá las grabaciones existentes de la antigua ubicación a la nueva. Necesitan moverse manualmente si se desea.", "RecordingScheduled": "Grabación programada.", "Recordings": "Grabaciones", "Refresh": "Actualizar", - "RefreshDialogHelp": "Los metadatos son actualizados basándose en las configuraciones y servicios de internet que que estén activados en el panel de control de su Servidor de Jellyfin.", + "RefreshDialogHelp": "Los metadatos son actualizados basándose en las configuraciones y servicios de Internet que estén activados en el panel de control de tu servidor Jellyfin.", "RefreshMetadata": "Actualizar metadatos", - "RefreshQueued": "Actualización programada.", + "RefreshQueued": "Actualización puesta en la cola.", "ReleaseDate": "Fecha de estreno", - "RememberMe": "Recuerdame", + "RememberMe": "Recuérdame", "RemoveFromCollection": "Remover de la colección", - "RemoveFromPlaylist": "Eliminar de la lista de reproducción", + "RemoveFromPlaylist": "Remover de la lista de reproducción", "Repeat": "Repetir", - "RepeatAll": "Repetir todas", + "RepeatAll": "Repetir todos", "RepeatEpisodes": "Repetir episodios", "RepeatMode": "Modo de repetición", "RepeatOne": "Repetir uno", - "ReplaceAllMetadata": "Remplazar todos los metadatos", + "ReplaceAllMetadata": "Reemplazar todos los metadatos", "ReplaceExistingImages": "Reemplazar imágenes existentes", "RequiredForAllRemoteConnections": "Requerido para todas las conexiones remotas", - "RestartPleaseWaitMessage": "Por favor espere mientras el Servidor Jellyfin cierra y reinicia. Este puede tomar un minuto o dos.", + "RestartPleaseWaitMessage": "Por favor, espera mientras el servidor Jellyfin se apaga y reinicia. Esto puede tomar un minuto o dos.", "ResumeAt": "Reanudar desde {0}", - "Rewind": "Regresar", + "Rewind": "Rebobinar", "RunAtStartup": "Ejecutar al iniciar", "Runtime": "Duración", "Saturday": "Sábado", "Save": "Guardar", - "SaveSubtitlesIntoMediaFolders": "Guardar subtitulos en las carpetas de medios", - "SaveSubtitlesIntoMediaFoldersHelp": "Almacenar subtitulos junto al archivo de video permitirá administrarlos con mas facilidad.", - "ScanForNewAndUpdatedFiles": "Buscar archivos nuevos y actualizados", + "SaveSubtitlesIntoMediaFolders": "Guardar subtítulos en las carpetas de los medios", + "SaveSubtitlesIntoMediaFoldersHelp": "Almacenar los subtítulos junto a los archivos de video permitirá administrarlos con más facilidad.", + "ScanForNewAndUpdatedFiles": "Escanear por archivos nuevos y actualizados", "ScanLibrary": "Escanear biblioteca", - "Schedule": "Programacion", + "Schedule": "Programación", "Screenshot": "Captura de pantalla", "Screenshots": "Capturas de pantalla", "Search": "Buscar", - "SearchForCollectionInternetMetadata": "Buscar en internet ilustraciones y metadatos", + "SearchForCollectionInternetMetadata": "Buscar en Internet por ilustraciones y metadatos", "SearchForMissingMetadata": "Buscar metadatos faltantes", - "SearchForSubtitles": "Buscar Subtitulos", + "SearchForSubtitles": "Buscar subtítulos", "SearchResults": "Resultados de la búsqueda", "SendMessage": "Enviar mensaje", "SeriesCancelled": "Serie cancelada.", - "SeriesDisplayOrderHelp": "Ordenar los episodios por fecha transmisión, orden del DVD o por su numeración absoluta.", + "SeriesDisplayOrderHelp": "Ordenar los episodios por fecha de emisión, orden del DVD o numeración absoluta.", "SeriesRecordingScheduled": "Grabación de series programadas.", - "SeriesSettings": "Configuración de la Serie", + "SeriesSettings": "Configuración de la serie", "SeriesYearToPresent": "{0} - Actualidad", - "ServerNameIsRestarting": "El Servidor Jellyfin - {0} se esta reiniciando.", - "ServerNameIsShuttingDown": "El Servidor Jellyfin - {0} se esta apagando.", - "ServerRestartNeededAfterPluginInstall": "El Servidor Jellyfin necesitará reiniciarse después de instalar un complemento.", - "ServerUpdateNeeded": "Este Servidor Jellyfin necesita ser actualizado. Para descargar la ultima versión, por favor visite {0}", + "ServerNameIsRestarting": "El servidor Jellyfin - {0} se está reiniciando.", + "ServerNameIsShuttingDown": "El servidor Jellyfin - {0} se está apagando.", + "ServerRestartNeededAfterPluginInstall": "El servidor Jellyfin necesitará reiniciarse después de instalar un complemento.", + "ServerUpdateNeeded": "Este servidor Jellyfin necesita ser actualizado. Para descargar la última versión, por favor, visita {0}", "Settings": "Configuración", "SettingsSaved": "Configuración guardada.", - "SettingsWarning": "Cambiar estos valores podría causar inestabilidad o fallas de conexión, si experimenta cualquier problema, recomendamos volver a los valores por defecto.", + "SettingsWarning": "Cambiar estos valores podría causar inestabilidad o fallas de conexión. Si experimentas cualquier problema, recomendamos volver a los valores por defecto.", "Share": "Compartir", "ShowAdvancedSettings": "Mostrar configuraciones avanzadas", "ShowIndicatorsFor": "Mostrar indicadores para:", @@ -1199,14 +1198,14 @@ "ShowYear": "Mostrar año", "Shows": "Programas", "Shuffle": "Aleatorio", - "SimultaneousConnectionLimitHelp": "El numero máximo de transmisiones simultaneas permitidas. Ingrese 0 para ilimitados.", + "SimultaneousConnectionLimitHelp": "El numero máximo de transmisiones simultáneas permitidas. Ingresa 0 para sin límite.", "SkipEpisodesAlreadyInMyLibrary": "No grabar episodios que ya se encuentran en mi biblioteca", "SkipEpisodesAlreadyInMyLibraryHelp": "Los episodios serán comparados usando el numero de temporada y de episodio, cuando estén disponibles.", "Small": "Pequeño", "SmallCaps": "Mayúsculas pequeñas", "Smaller": "Más pequeño", "Smart": "Inteligente", - "SmartSubtitlesHelp": "Los subtítulos que coincidan con el lenguaje preferido serán cargados cuando el audio se encuentre en un lenguaje extranjero.", + "SmartSubtitlesHelp": "Los subtítulos que coincidan con el idioma preferido serán cargados cuando el audio se encuentre en un idioma extranjero.", "Songs": "Canciones", "Sort": "Ordenar", "SortByValue": "Ordenar por {0}", @@ -1215,94 +1214,94 @@ "Sports": "Deportes", "StopRecording": "Detener grabación", "Studios": "Estudios", - "SubtitleAppearanceSettingsAlsoPassedToCastDevices": "Estos ajustes también aplican a cualquier reproducción de Chromecast iniciada por este dispositivo.", - "SubtitleAppearanceSettingsDisclaimer": "Estos ajustes no se aplicarán a los subtítulos gráficos (PGS, DVD, etc.) o a los subtítulos ASS/SSA que incrustan sus propios estilos.", - "SubtitleDownloadersHelp": "Habilite y priorice sus recolectores de subtitulos en orden de preferencia.", + "SubtitleAppearanceSettingsAlsoPassedToCastDevices": "Estos ajustes también aplican a cualquier reproducción en Chromecast iniciada por este dispositivo.", + "SubtitleAppearanceSettingsDisclaimer": "Estos ajustes no se aplicarán a los subtítulos gráficos (PGS, DVD, etc.) o a los subtítulos ASS/SSA que incorporen sus propios estilos.", + "SubtitleDownloadersHelp": "Habilita y prioriza tus recolectores de subtítulos en orden de prioridad.", "Subtitles": "Subtítulos", "Suggestions": "Sugerencias", "Sunday": "Domingo", "Sync": "Sincronizar", - "SystemDlnaProfilesHelp": "Los perfiles del sistema son de sólo lectura. Los cambios a un perfíl de sistema serán guardados en un perfíl personalizado nuevo.", + "SystemDlnaProfilesHelp": "Los perfiles del sistema son de solo lectura. Los cambios a un perfil del sistema serán guardados en un nuevo perfil personalizado.", "TabAccess": "Acceso", "TabAdvanced": "Avanzado", - "TabAlbumArtists": "Artistas del Álbum", + "TabAlbumArtists": "Artistas del álbum", "TabAlbums": "Álbumes", "TabArtists": "Artistas", "TabCatalog": "Catálogo", "TabChannels": "Canales", "TabCollections": "Colecciones", "TabContainers": "Contenedores", - "TabDashboard": "Panel de Control", + "TabDashboard": "Panel de control", "TabDevices": "Dispositivos", - "TabDirectPlay": "Reproducción Directa", - "TabDisplay": "Pantalla", + "TabDirectPlay": "Reproducción directa", + "TabDisplay": "Mostrar", "TabEpisodes": "Episodios", "TabFavorites": "Favoritos", "TabGenres": "Géneros", "TabGuide": "Guía", "TabLatest": "Recientes", - "TabLiveTV": "TV en Vivo", - "TabLogs": "Bitácoras", + "TabLiveTV": "TV en vivo", + "TabLogs": "Registros", "TabMetadata": "Metadatos", "TabMovies": "Películas", "TabMusic": "Música", - "TabMusicVideos": "Videos Musicales", - "TabMyPlugins": "Mis Complementos", + "TabMusicVideos": "Videos musicales", + "TabMyPlugins": "Mis complementos", "TabNetworks": "Cadenas", "TabNfoSettings": "Configuración de NFO", "TabNotifications": "Notificaciones", "TabOther": "Otros", - "TabParentalControl": "Control Parental", + "TabParentalControl": "Control parental", "TabPassword": "Contraseña", "TabPlayback": "Reproducción", - "TabPlaylist": "Lista de Reproducción", + "TabPlaylist": "Lista de reproducción", "TabPlaylists": "Listas de reproducción", "TabPlugins": "Complementos", - "TabProfile": "Perfíl", + "TabProfile": "Perfil", "TabProfiles": "Perfiles", "TabRecordings": "Grabaciones", "TabResponses": "Respuestas", "TabResumeSettings": "Reanudar", - "TabScheduledTasks": "Tareas Programadas", + "TabScheduledTasks": "Tareas programadas", "TabServer": "Servidor", "TabSettings": "Configuración", "TabShows": "Programas", "TabSongs": "Canciones", "TabStreaming": "Transmisión", "TabSuggestions": "Sugerencias", - "TabTrailers": "Tráilers", + "TabTrailers": "Trailers", "TabTranscoding": "Transcodificación", - "TabUpcoming": "Proximamente", + "TabUpcoming": "Próximamente", "TabUsers": "Usuarios", "Tags": "Etiquetas", "TagsValue": "Etiquetas: {0}", - "TellUsAboutYourself": "Díganos sobre usted", - "ThemeSongs": "Canciones de Tema", - "ThemeVideos": "Videos de Tema", - "TheseSettingsAffectSubtitlesOnThisDevice": "Estas configuraciones solo afectan subtitulo de este dispositivo", - "ThisWizardWillGuideYou": "Este asistente le guiará a través del proceso de instalación. Para comenzar, por favor seleccione su lenguaje preferido.", + "TellUsAboutYourself": "Háblanos de ti", + "ThemeSongs": "Canciones temáticas", + "ThemeVideos": "Videos temáticos", + "TheseSettingsAffectSubtitlesOnThisDevice": "Estas configuraciones afectan a los subtítulos en este dispositivo", + "ThisWizardWillGuideYou": "Este asistente te guiará a través del proceso de instalación. Para comenzar, por favor, selecciona tu idioma preferido.", "Thumb": "Miniatura", "Thursday": "Jueves", - "TitleHardwareAcceleration": "Aceleración por Hardware", - "TitleHostingSettings": "Configuraciones de Alojamiento", + "TitleHardwareAcceleration": "Aceleración por hardware", + "TitleHostingSettings": "Configuraciones de alojamiento", "TitlePlayback": "Reproducción", - "TrackCount": "{0} Pistas", - "Trailers": "Tráilers", + "TrackCount": "{0} pistas", + "Trailers": "Trailers", "Transcoding": "Transcodificando", "Tuesday": "Martes", - "TvLibraryHelp": "Vea la {0}Guía para nombrar series de TV{1}.", + "TvLibraryHelp": "Revisa la {0}guía de nombrado de series de TV{1}.", "Uniform": "Uniforme", - "UninstallPluginConfirmation": "¿Está seguro de querer desinstalar {0}?", - "UninstallPluginHeader": "Desinstalar Complemento", - "Unmute": "Activar Sonido", + "UninstallPluginConfirmation": "¿Estás seguro de querer desinstalar {0}?", + "UninstallPluginHeader": "Desinstalar complemento", + "Unmute": "Activar sonido", "Unplayed": "No reproducido", "Unrated": "Sin clasificar", "Up": "Arriba", "Upload": "Subir", - "UserAgentHelp": "Proporcionar un encabezado HTTP personalizado de agente de usuario.", - "UserProfilesIntro": "Jellyfin incluye soporte para perfiles de usuario con configuraciones de pantalla detalladas, estado de reproducción y controles parentales.", + "UserAgentHelp": "Proporciona un encabezado HTTP de agente de usuario personalizado.", + "UserProfilesIntro": "Jellyfin incluye soporte para perfiles de usuario con detalladas configuraciones de pantalla, estado de reproducción y controles parentales.", "ValueAlbumCount": "{0} álbumes", - "ValueAudioCodec": "Códec de Audio: {0}", + "ValueAudioCodec": "Códec de audio: {0}", "ValueCodec": "Códec: {0}", "ValueConditions": "Condiciones: {0}", "ValueContainer": "Contenedor: {0}", @@ -1321,23 +1320,23 @@ "ValueSpecialEpisodeName": "Especial - {0}", "ValueTimeLimitMultiHour": "Límite de tiempo: {0} horas", "ValueTimeLimitSingleHour": "Límite de tiempo: 1 hora", - "ValueVideoCodec": "Códec de Video: {0}", + "ValueVideoCodec": "Códec de video: {0}", "VideoRange": "Rango de video", - "ViewAlbum": "Ver album", + "ViewAlbum": "Ver álbum", "ViewArtist": "Ver artista", "ViewPlaybackInfo": "Ver información de reproducción", "Watched": "Visto", "Wednesday": "Miércoles", "WelcomeToProject": "¡Bienvenido a Jellyfin!", - "Whitelist": "Permitidos", - "WizardCompleted": "Eso es todo lo que necesitamos por ahora. Jellyfin ha comenzado a recolectar información sobre su biblioteca multimedia. Revise algunas de nuestras aplicaciones, y luego haga clic en Finalizar para ver el Panel de Control.", + "Whitelist": "Lista blanca", + "WizardCompleted": "Eso es todo lo que necesitamos por ahora. Jellyfin ha comenzado a recolectar información sobre tu biblioteca de medios. Revisa alguna de nuestras aplicaciones, y luego haz clic en Finalizar para ver el Panel de control.", "Writer": "Escritor", "XmlDocumentAttributeListHelp": "Estos atributos se aplican al elemento raíz de cada respuesta XML.", - "XmlTvKidsCategoriesHelp": "Los programas con estas categorías serán mostrados como programas infantiles. Separe varios con un \"|\".", - "XmlTvMovieCategoriesHelp": "Los programas con estas categorías serán mostrados como películas. Separe varios con un \"|\".", - "XmlTvNewsCategoriesHelp": "Los programas con estas categorías serán mostrados como programas noticiosos. Separe varios con un \"|\".", - "XmlTvPathHelp": "Ruta al archivo XMLTV. Jellyfin leerá este archivo y lo revisará periódicamente en busca de actualizaciones. Usted es responsable de crear y actualizar el archivo.", - "XmlTvSportsCategoriesHelp": "Los programas con estas categorías serán mostrados como programas deportivos. Separe varios con un \"|\".", + "XmlTvKidsCategoriesHelp": "Los programas con estas categorías serán mostrados como programas infantiles. Separa varios con un «|».", + "XmlTvMovieCategoriesHelp": "Los programas con estas categorías serán mostrados como películas. Separa varios con un «|».", + "XmlTvNewsCategoriesHelp": "Los programas con estas categorías serán mostrados como programas de noticias. Separa varios con un «|».", + "XmlTvPathHelp": "Una ruta a un archivo XMLTV. Jellyfin leerá este archivo y lo revisará periódicamente en busca de actualizaciones. Tú eres responsable de crear y actualizar el archivo.", + "XmlTvSportsCategoriesHelp": "Los programas con estas categorías serán mostrados como programas deportivos. Separa varios con un «|».", "Yes": "Sí", "Yesterday": "Ayer", "Actor": "Actor", @@ -1345,16 +1344,16 @@ "Auto": "Auto", "ButtonInfo": "Info", "ButtonNo": "No", - "ButtonOk": "Ok", + "ButtonOk": "OK", "ButtonTrailer": "Trailer", - "AuthProviderHelp": "Seleccione un proveedor de autenticación que se utilizará para autenticar la contraseña de este usuario.", + "AuthProviderHelp": "Selecciona un proveedor de autenticación que se utilizará para autenticar la contraseña de este usuario.", "Director": "Director", "Extras": "Extras", "General": "General", "HeaderAdmin": "Administrador", "HeaderApp": "Aplicación", "HeaderError": "Error", - "HeaderFavoriteMovies": "Peliculas favoritas", + "HeaderFavoriteMovies": "Películas favoritas", "HeaderFavoriteShows": "Programas favoritos", "HeaderFavoriteEpisodes": "Episodios favoritos", "HeaderFavoriteAlbums": "Álbumes favoritos", @@ -1373,7 +1372,7 @@ "LabelServerName": "Nombre del servidor:", "LabelTranscodePath": "Ruta de transcodificación:", "LabelTranscodes": "Transcodificaciones:", - "LabelUserLoginAttemptsBeforeLockout": "Intentos fallidos de inicio de sesión antes de que el usuario se bloquee:", + "LabelUserLoginAttemptsBeforeLockout": "Intentos fallidos de inicio de sesión antes de que el usuario sea bloqueado:", "DashboardVersionNumber": "Versión: {0}", "DashboardServerName": "Servidor: {0}", "DashboardOperatingSystem": "Sistema operativo: {0}", @@ -1382,40 +1381,40 @@ "LabelWeb": "Web:", "LaunchWebAppOnStartup": "Iniciar la interfaz web al iniciar el servidor", "LaunchWebAppOnStartupHelp": "Abre el cliente web en su navegador web predeterminado cuando se inicia el servidor. Esto no ocurrirá cuando se utilice la función de reinicio del servidor.", - "LeaveBlankToNotSetAPassword": "Puede dejar este campo en blanco para no establecer ninguna contraseña.", + "LeaveBlankToNotSetAPassword": "Puedes dejar este campo en blanco para no establecer ninguna contraseña.", "MediaInfoCodec": "Códec", "MediaInfoSoftware": "Software", "MediaInfoStreamTypeAudio": "Audio", "MediaInfoStreamTypeData": "Dato", "MediaInfoStreamTypeEmbeddedImage": "Imagen incrustada", - "MediaInfoStreamTypeSubtitle": "Subtitulo", + "MediaInfoStreamTypeSubtitle": "Subtítulo", "MediaInfoStreamTypeVideo": "Video", - "MessageImageFileTypeAllowed": "Solo se admite archivos JPEG y PNG.", - "MessageImageTypeNotSelected": "Seleccione un tipo de imagen en el menú desplegable.", - "MessageNoCollectionsAvailable": "Las colecciones le permiten disfrutar de agrupaciones personalizadas de películas, series y álbumes. Haga clic en el botón + para comenzar a crear colecciones.", - "MessageNoServersAvailable": "No se encontraron servidores utilizando el descubrimiento automático del servidor.", + "MessageImageFileTypeAllowed": "Solo son soportados archivos JPEG y PNG.", + "MessageImageTypeNotSelected": "Por favor, selecciona un tipo de imagen del menú desplegable.", + "MessageNoCollectionsAvailable": "Las colecciones te permiten disfrutar de agrupaciones personalizadas de películas, series y álbumes. Haz clic en el botón + para comenzar a crear colecciones.", + "MessageNoServersAvailable": "No se encontraron servidores utilizando el descubrimiento automático de servidores.", "MusicAlbum": "Álbum de música", "MusicArtist": "Artista musical", "MusicVideo": "Video musical", "No": "No", "Normal": "Normal", "Option3D": "3D", - "OptionBanner": "Baner", + "OptionBanner": "Banner", "OptionBluray": "Blu-ray", "OptionCaptionInfoExSamsung": "CaptionInfoEx (Samsung)", "OptionDownloadLogoImage": "Logo", "OptionIsHD": "HD", "OptionIsSD": "SD", "OptionList": "Lista", - "OptionLoginAttemptsBeforeLockout": "Determina cuántos intentos de inicio de sesión incorrectos se pueden hacer antes de que ocurra el bloqueo.", - "OptionLoginAttemptsBeforeLockoutHelp": "Un valor cero significa heredar el valor predeterminado de tres intentos para los usuarios normales y cinco para los administradores. Ajustar esto a -1 deshabilitará la función.", + "OptionLoginAttemptsBeforeLockout": "Determina cuantos intentos de inicio de sesión incorrectos se pueden hacer antes de que ocurra el bloqueo.", + "OptionLoginAttemptsBeforeLockoutHelp": "Un valor de cero significa heredar el valor predeterminado de tres intentos para los usuarios normales y cinco para los administradores. Ajustar esto a -1 deshabilitará la función.", "OptionPoster": "Póster", "OptionPosterCard": "Ficha de póster", "OptionProfileAudio": "Audio", "OptionProfileVideo": "Video", "OptionProtocolHttp": "HTTP", "OptionRegex": "Expresión regular", - "PasswordResetProviderHelp": "Elija un proveedor de restablecimiento de contraseña para usar cuando este usuario solicite un restablecimiento de contraseña", + "PasswordResetProviderHelp": "Elige un proveedor de restablecimiento de contraseña para usar cuando este usuario solicite un restablecimiento de contraseña", "PlaybackData": "Datos de reproducción", "Series": "Series", "SubtitleOffset": "Desplazamiento de subtítulos", @@ -1427,89 +1426,103 @@ "ValueSeriesCount": "{0} series", "Vertical": "Vertical", "OptionThumb": "Miniatura", - "OptionThumbCard": "Pequeña miniatura", - "HeaderFavoriteBooks": "Libros Favoritos", + "OptionThumbCard": "Tarjeta miniatura", + "HeaderFavoriteBooks": "Libros favoritos", "LabelPleaseRestart": "Los cambios tendrán efecto después de recargar manualmente el cliente web.", "LabelPlayMethod": "Método de reproducción:", "LabelPlayer": "Reproductor:", "LabelFolder": "Carpeta:", - "LabelBaseUrlHelp": "Puede añadir un subdirectorio personalizado aquí para acceder al servidor desde una URL más única.", + "LabelBaseUrlHelp": "Añade un subdirectorio personalizado a la URL del servidor. Por ejemplo: http://ejemplo.com/<urlbase>", "LabelBaseUrl": "URL base:", "LabelBitrate": "Velocidad de bits:", "LabelAudioSampleRate": "Frecuencia de muestreo de audio:", "LabelAudioCodec": "Códec de audio:", "LabelAudioChannels": "Canales de audio:", "LabelAudioBitrate": "Velocidad de bits de audio:", - "LabelAudioBitDepth": "Profundidad de bit de audio:", + "LabelAudioBitDepth": "Profundidad de bits de audio:", "FetchingData": "Obteniendo datos adicionales", "CopyStreamURLSuccess": "URL copiada con éxito.", "CopyStreamURL": "Copiar la URL de la transmisión", "ButtonAddImage": "Agregar imagen", "TabNetworking": "Redes", - "MusicLibraryHelp": "Revisar la {0}Guía para nombrar música{1}.", + "MusicLibraryHelp": "Revisar la {0}guía de nombrado de música{1}.", "MoreMediaInfo": "Información multimedia", "LabelVideoCodec": "Códec de video:", - "LabelVideoBitrate": "Velocidad de bits:", + "LabelVideoBitrate": "Velocidad de bits de video:", "LabelTranscodingProgress": "Progreso de la transcodificación:", "LabelTranscodingFramerate": "Velocidad de cuadros de la transcodificación:", "LabelSize": "Tamaño:", - "SelectAdminUsername": "Por favor seleccione un nombre de usuario para la cuenta de administrador.", - "EnableFastImageFadeInHelp": "Habilita la animación de desvanecido rápido para las imágenes cargadas", + "SelectAdminUsername": "Por favor, selecciona un nombre de usuario para la cuenta de administrador.", + "EnableFastImageFadeInHelp": "Habilita una animación más rápida de desvanecimiento para las imágenes cargadas", "LabelDroppedFrames": "Cuadros saltados:", - "CopyStreamURLError": "Hubo un error copiando la URL.", + "CopyStreamURLError": "Hubo un error al copiar la URL.", "ButtonSplit": "Dividir", "WeeklyAt": "{0}s a las {1}", "OnApplicationStartup": "Cuando se inicia la aplicación", "EveryXHours": "Cada {0} horas", "EveryHour": "Cada hora", "EveryXMinutes": "Cada {0} minutos", - "OnWakeFromSleep": "Activarse del Modo Suspensión", + "OnWakeFromSleep": "Al despertar de la suspensión", "DailyAt": "Diariamente a las {0}", "LastSeen": "Ultima vez visto {0}", "PersonRole": "como {0}", "ListPaging": "{0}-{1} de {2}", - "WriteAccessRequired": "El servidor Jellyfin requiere permiso de escritura en esta carpeta. Por favor brinde acceso de escritura e intente de nuevo.", - "PathNotFound": "No se pudo encontrar la ruta. Por favor asegúrese de que la ruta es valida e intente de nuevo.", + "WriteAccessRequired": "El servidor Jellyfin requiere permiso de escritura en esta carpeta. Por favor, asegúrate de tener acceso de escritura e inténtalo de nuevo.", + "PathNotFound": "No se pudo encontrar la ruta. Por favor, asegúrate de que la ruta es válida e inténtalo de nuevo.", "Track": "Pista", "Season": "Temporada", - "ReleaseGroup": "Grupo de salida", - "PreferEmbeddedEpisodeInfosOverFileNames": "Preferir información embebida en el episodio sobre los nombres de archivo", - "PreferEmbeddedEpisodeInfosOverFileNamesHelp": "Esto utiliza la información del episodio desde metadatos embebidos si esta disponible.", + "ReleaseGroup": "Grupo que lo estrenó", + "PreferEmbeddedEpisodeInfosOverFileNames": "Preferir información del episodio incrustada a los nombres de archivo", + "PreferEmbeddedEpisodeInfosOverFileNamesHelp": "Esto utiliza la información del episodio desde los metadatos incrustados si están disponibles.", "PlaybackErrorNoCompatibleStream": "Este cliente no es compatible con los medios y el servidor no está enviando un formato de medios compatible.", "Person": "Persona", "OtherArtist": "Otro artista", "OptionRandom": "Aleatorio", - "OptionForceRemoteSourceTranscoding": "Forzar transcodificación para fuentes remotas (como TV en Vivo)", - "NoCreatedLibraries": "Parece que no has creado ninguna biblioteca todavía. {0}Quisieras crear una ahora?{1}", + "OptionForceRemoteSourceTranscoding": "Forzar transcodificación de fuentes remotas (como TV en vivo)", + "NoCreatedLibraries": "Parece que no has creado ninguna biblioteca todavía. {0}¿Quisieras crear una ahora?{1}", "Movie": "Película", - "MessageConfirmAppExit": "Deseas salir?", + "MessageConfirmAppExit": "¿Deseas salir?", "LabelVideoResolution": "Resolución de video:", "LabelStreamType": "Tipo de transmisión:", - "EnableFastImageFadeIn": "Desvanecido de imagen rápido", + "EnableFastImageFadeIn": "Desvanecimiento rápido de las imágenes", "LabelPlayerDimensions": "Dimensiones del reproductor:", "LabelCorruptedFrames": "Cuadros corruptos:", "HeaderNavigation": "Navegación", "HeaderFavoritePeople": "Personas favoritas", "Episode": "Episodio", - "ClientSettings": "Configuración de cliente", + "ClientSettings": "Configuración del cliente", "BoxSet": "Box Set", - "AskAdminToCreateLibrary": "Preguntar al administrador para crear una biblioteca.", + "AskAdminToCreateLibrary": "Pide a un administrador crear una biblioteca.", "Artist": "Artista", - "AllowFfmpegThrottlingHelp": "Cuando una transcodificación o remux se encuentra muy por delante de la posición de reproducción, pausar el proceso para consumir menos recursos. Esto es mas practico cuando se esta viendo sin buscar constantemente. Deshabilitar esta opción si experimentas problemas de reproducción.", - "AllowFfmpegThrottling": "Aceleración de Transcoders", - "AlbumArtist": "Álbum de artista", + "AllowFfmpegThrottlingHelp": "Cuando una transcodificación o remuxeado se adelanta lo suficiente de la posición de reproducción actual, se pausa el proceso para que consuma menos recursos. Esto es más útil cuando se mira sin buscar con frecuencia. Apaga esto si experimentas problemas de reproducción.", + "AllowFfmpegThrottling": "Regular transcodificaciones", + "AlbumArtist": "Artista del álbum", "Album": "Álbum", "YadifBob": "YADIF Bob", "Yadif": "YADIF", - "LabelDeinterlaceMethod": "Metodo de Desentrelazado:", - "DeinterlaceMethodHelp": "Seleccione el método de desentrelazado que se usará al codificar el contenido entrelazado.", + "LabelDeinterlaceMethod": "Método de desentrelazado:", + "DeinterlaceMethodHelp": "Seleccione el método de desentrelazado que se usará al transcodificar contenido entrelazado.", "Filter": "Filtro", "New": "Nuevo", - "MessageUnauthorizedUser": "No estás autorizado para acceder al servidor en este momento. Por favor contacta con el administrador del servidor para mas información.", - "LabelLibraryPageSizeHelp": "Establecer el número de elementos a mostrar en la página biblioteca. Establezca 0 para deshabilitar paginado.", - "LabelLibraryPageSize": "Tamaño de la página Biblioteca:", + "MessageUnauthorizedUser": "No estás autorizado para acceder al servidor en este momento. Por favor, contacta al administrador del servidor para más información.", + "LabelLibraryPageSizeHelp": "Establece el número de elementos a mostrar en una página de biblioteca. Establece en 0 para deshabilitar el paginado.", + "LabelLibraryPageSize": "Tamaño de las páginas de las bibliotecas:", "HeaderFavoritePlaylists": "Listas de reproducción favoritas", "ButtonTogglePlaylist": "Lista de reproducción", "ButtonToggleContextMenu": "Más", - "UnsupportedPlayback": "Jellyfin no puede desencriptar contenido protegido por DRM aún así será intentado, incluyendo títulos protegidos. Algunos archivos pueden aparecer completamente en negro debido al encriptado o características no soportadas, como títulos alternativos." + "UnsupportedPlayback": "Jellyfin no puede desencriptar contenido protegido por DRM de todas formas todo el contenido será intentado, incluyendo los títulos protegidos. Algunos archivos pueden aparecer completamente en negro debido al encriptado o características no soportadas, como títulos interactivos.", + "TabDVR": "DVR", + "SaveChanges": "Guardar cambios", + "LabelRequireHttpsHelp": "Si se marca, el servidor redirigirá automáticamente todas las solicitudes a través de HTTP a HTTPS. Esto no tiene efecto si el servidor no está escuchando en HTTPS.", + "LabelRequireHttps": "Requerir HTTPS", + "LabelNightly": "Nocturno", + "LabelStable": "Estable", + "LabelChromecastVersion": "Versión de Chromecast", + "LabelEnableHttpsHelp": "Permite al servidor escuchar en el puerto HTTPS configurado. Un certificado válido también debe ser configurado para que esto tenga efecto.", + "LabelEnableHttps": "Habilitar HTTPS", + "HeaderServerAddressSettings": "Configuración de la dirección del servidor", + "HeaderRemoteAccessSettings": "Opciones de acceso remoto", + "HeaderHttpsSettings": "Opciones HTTPS", + "HeaderDVR": "DVR", + "ApiKeysCaption": "Lista de claves API actualmente habilitadas" } diff --git a/src/strings/es.json b/src/strings/es.json index 9a0997628..8020c7100 100644 --- a/src/strings/es.json +++ b/src/strings/es.json @@ -511,7 +511,7 @@ "LabelEmbedAlbumArtDidl": "Incorporar la carátula del álbum en didl", "LabelEmbedAlbumArtDidlHelp": "Algunos dispositivos prefieren este método para obtener la carátula del álbum. Otros pueden fallar al reproducir con esta opción habilitada.", "LabelEnableAutomaticPortMap": "Habilitar asignación de puertos automático", - "LabelEnableAutomaticPortMapHelp": "UPnP permite la configuración del router para acceso externo de forma fácil y automática. Esto puede no funcionar en algunos modelos de routers. Los cambios no se aplicarán hasta que el servidor sea reiniciado.", + "LabelEnableAutomaticPortMapHelp": "Reenvia automáticamente los puertos públicos de su Router a los puertos locales de su servidor a través de UPnP. Es posible que esto no funcione con algunos modelos de Routers o configuraciones de red. Los cambios no se aplicarán hasta después de reiniciar el servidor.", "LabelEnableBlastAliveMessages": "Explotar mensajes en vivo", "LabelEnableBlastAliveMessagesHelp": "Active aquí si el servidor no es detectado correctamente por otros dispositivos UPnP en su red.", "LabelEnableDlnaClientDiscoveryInterval": "Intervalo de detección de cliente (segundos)", @@ -957,7 +957,7 @@ "OptionMissingEpisode": "Episodios que faltan", "OptionMonday": "Lunes", "OptionNameSort": "Nombre", - "OptionNew": "Nuevo...", + "OptionNew": "Nuevo…", "OptionNone": "Nada", "OptionOnAppStartup": "Al iniciar la aplicación", "OptionOnInterval": "En un intervalo", @@ -1228,7 +1228,7 @@ "Aired": "Emitido", "AnyLanguage": "Cualquier idioma", "Anytime": "En cualquier momento", - "AroundTime": "Aproximadamente {0}", + "AroundTime": "Aproximadamente", "Ascending": "Ascendente", "Audio": "Audio", "Auto": "Automático", @@ -1328,10 +1328,7 @@ "No": "No", "Normal": "Normal", "Off": "Apagado", - "Option2Player": "2+", "Option3D": "3D", - "Option3Player": "3+", - "Option4Player": "4+", "OptionActor": "Actor", "OptionAuto": "Automático", "OptionAutomatic": "Automático", @@ -1442,7 +1439,7 @@ "LabelPlayMethod": "Método de reproducción:", "LabelPlayer": "Reproductor:", "LabelFolder": "Carpeta:", - "LabelBaseUrlHelp": "Puede agregar un subdirectorio personalizado aquí para acceder al servidor desde una URL única.", + "LabelBaseUrlHelp": "Puede agregar aquí un subdirectorio personalizado para el acceso al servidor a través de una URL única.", "LabelBaseUrl": "URL base:", "LabelBitrate": "Bitrate:", "LabelAudioSampleRate": "Frecuencia de muestreo de audio:", @@ -1513,5 +1510,19 @@ "ButtonToggleContextMenu": "Más", "Filter": "Filtro", "New": "Nuevo", - "HeaderFavoritePlaylists": "Lista reproducción favorita" + "HeaderFavoritePlaylists": "Lista reproducción favorita", + "ApiKeysCaption": "Lista de las claves API actuales", + "LabelNightly": "Nightly", + "LabelStable": "Estable", + "LabelChromecastVersion": "Versión de Chromecast", + "HeaderServerAddressSettings": "Configuración de la dirección del Servidor", + "HeaderRemoteAccessSettings": "Opciones de Acceso Remoto", + "HeaderHttpsSettings": "Opciones HTTPS", + "LabelRequireHttpsHelp": "Si se marca, el servidor redirigirá automáticamente todas las solicitudes de HTTP hacia HTTPS. Esto no tiene efecto si el servidor no está escuchando en HTTPS.", + "LabelRequireHttps": "Necesita HTTPS", + "LabelEnableHttpsHelp": "Permite que el servidor escuche en el puerto HTTPS configurado. También se debe configurar un certificado válido para que esto surta efecto.", + "LabelEnableHttps": "Activar HTTPS", + "TabDVR": "DVR", + "SaveChanges": "Guardar cambios", + "HeaderDVR": "DVR" } diff --git a/src/strings/fa.json b/src/strings/fa.json index 76f8ec4e2..b91a2c82f 100644 --- a/src/strings/fa.json +++ b/src/strings/fa.json @@ -212,7 +212,7 @@ "AskAdminToCreateLibrary": "از کاربر مدیر بخواهید که یک کتابخانه ایجاد کند.", "Ascending": "بالا رونده", "AsManyAsPossible": "تا حدی که ممکن است", - "AroundTime": "حدود {0}", + "AroundTime": "حدود", "Anytime": "هر زمانی", "AnyLanguage": "هر زبانی", "AlwaysPlaySubtitles": "همیشه پخش کن", @@ -458,7 +458,7 @@ "BoxSet": "جعبه ست", "Art": "هنر", "Artist": "هنرمند", - "AllComplexFormats": "تمام فرمت‌های پیچیده (ASS, SSA, VOBSUB, PGS, SUB, IDX)", + "AllComplexFormats": "کلیه فرمت‌های پیچیده (ASS ، SSA ، VOBSUB ، PGS ، SUB ، IDX ، ...)", "GuideProviderLogin": "ورود", "Guide": "راهنما", "GuestStar": "ستاره‌ی مهمان", @@ -641,7 +641,7 @@ "OptionPlainStorageFolders": "نمایش همه پوشه‌ها به عنوان پوشه‌های ذخیره سازی ساده", "OptionParentalRating": "رتبه بندی والدین", "OptionOnInterval": "در یک فاصله", - "BookLibraryHelp": "کتاب‌های صوتی و متنی پشتیبانی می‌شوند. {0}راهنمای نامگذاری کتاب{1} را مرور کنید.", + "BookLibraryHelp": "کتاب‌های صوتی و متنی پشتیبانی می‌شوند. {0} راهنمای نامگذاری کتاب {1} را مرور کنید.", "TabInfo": "اطلاعات", "TabGuide": "راهنما", "TabFavorites": "مورد علاقه‌ها", diff --git a/src/strings/fi.json b/src/strings/fi.json index 1c7147a50..c3ca9d81d 100644 --- a/src/strings/fi.json +++ b/src/strings/fi.json @@ -70,7 +70,6 @@ "AddToCollection": "Lisää kokoelmaan", "AddToPlayQueue": "Lisää toistojonoon", "AddToPlaylist": "Lisää toistolistalle", - "AddUserByManually": "Lisää paikallinen käyttäjä lisäämällä käyttäjän tiedot manuaalisesti.", "AddedOnValue": "Lisätty {0}", "AdditionalNotificationServices": "Selaa lisäosakatalogia asentaaksesi lisää ilmoituspalveluita.", "AirDate": "Ensiesityspäivä", @@ -94,13 +93,10 @@ "AllowOnTheFlySubtitleExtractionHelp": "Sisäiset tekstitykset voidaan lähettää päätelaitteille ilmitekstinä, jotta videota ei tarvitsisi uudelleenkoodata. Joissain järjestelmissä tämä voi viedä paljon aikaa ja aiheuttaa toiston pysähtymisen purun ajaksi. Poista tämä käytöstä polttaaksesi tekstiykset suoraan videoon, mikäli päätelaite ei tue tekstityksiä.", "AllowRemoteAccess": "Salli etäyhteydet tähän Jellyfin palvelimeen.", "AllowRemoteAccessHelp": "Jos merkki puuttuu, kaikki ulkopuoliset yhteydet estetään.", - "AllowSeasonalThemes": "Salli automaattiset vuodenaikateemat", - "AllowSeasonalThemesHelp": "Jos asetettu, vuodenaikateemat satunnaisesti yliajavat teema-asetuksesi.", "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", - "AndroidUnlockRestoreHelp": "Palauttaaksesi aikaisemman ostoksesi, varmista, että olet kirjautuneena samalla Google (tai Amazon) tunnuksella, jolla teit alkuperäisen oston. Varmista, että sovelluskauppa on päällä eikä sitä ole rajoitettu vanhempien lukolla. Varmista myös, että sinulla on toimiva internet -yhteys. Sinun tarvitsee tehdä taämä vain kerran.", "AnyLanguage": "Mikä tahansa", "Anytime": "Milloin tahansa", "AroundTime": "Noin {0}", @@ -911,7 +907,6 @@ "HeaderRemoteControl": "Etäohjaus", "HeaderPleaseSignIn": "Ole hyvä ja kirjaudu sisään", "BoxSet": "Laatikkosarja", - "LabelAccessEnd": "", "LabelManufacturerUrl": "Valmistajan verkko-osoite", "LabelManufacturer": "Valmistaja:", "LabelLogs": "Lokit:", @@ -1228,7 +1223,6 @@ "LabelLoginDisclaimer": "Sisäänkirjautumisen vastuuvapauslauseke:", "LabelLibraryPageSize": "Kirjastosivun kohteiden määrä:", "LabelLibraryPageSizeHelp": "Asettaa kirjastosivulla näytettävien kohteiden määrän. Arvo 0 poistaa sivutuksen käytöstä.", - "LabelLineup": "", "Unrated": "Luokittelematon", "ExtractChapterImagesHelp": "Pikkukuvien luominen mahdollistaa sovellusten näyttää graafiikkaa valintavalikoissa. Prosessi voi olla hidas, prosessoria kuormittava ja saattaa vaatia useita gigatavuja tilaa. Se suoritetaan, kun videoita havaitaan, ja myös yöksi suunniteltuna tehtävänä. Aikataulu on konfiguroitavissa ajoitetuissa tehtävissä. Tätä tehtävää ei ole suositeltavaa suorittaa korkean kuormituksen aikana.", "OnWakeFromSleep": "Lepotilasta poistuttaessa", diff --git a/src/strings/fr-ca.json b/src/strings/fr-ca.json index 1f74b7bd5..5880dbb77 100644 --- a/src/strings/fr-ca.json +++ b/src/strings/fr-ca.json @@ -193,5 +193,10 @@ "AllowFfmpegThrottling": "Restreindre la vitesse de transcodage", "AlbumArtist": "Artiste de l'Album", "Album": "Album", - "AuthProviderHelp": "Sélectionner un fournisseur d'authentification pour authentifier le mot de passe de cet utilisateur." + "AuthProviderHelp": "Sélectionner un fournisseur d'authentification pour authentifier le mot de passe de cet utilisateur.", + "HeaderFavoriteSongs": "Chansons favorites", + "HeaderFavoriteShows": "Séries favorites", + "HeaderFavoriteEpisodes": "Épisodes favoris", + "HeaderFavoriteArtists": "Artistes favoris", + "HeaderFavoriteAlbums": "Albums favoris" } diff --git a/src/strings/fr.json b/src/strings/fr.json index 3f1d22c75..add033a3e 100644 --- a/src/strings/fr.json +++ b/src/strings/fr.json @@ -14,7 +14,7 @@ "Alerts": "Alertes", "All": "Tout", "AllChannels": "Toutes les chaînes", - "AllComplexFormats": "Tous les formats complexes (ASS, SSA, VOBSUB, PGS, SUB, IDX, etc…)", + "AllComplexFormats": "Tous les formats complexes (ASS, SSA, VOBSUB, PGS, SUB, IDX, etc.)", "AllEpisodes": "Tous les épisodes", "AllLanguages": "Toutes les langues", "AllLibraries": "Toutes les médiathèques", @@ -23,7 +23,7 @@ "AllowMediaConversion": "Autoriser la conversion des médias", "AllowMediaConversionHelp": "Autoriser ou refuser l'accès à la fonctionnalité de conversion des médias.", "AllowOnTheFlySubtitleExtraction": "Autoriser l'extraction des sous-titres à la volée", - "AllowOnTheFlySubtitleExtractionHelp": "Les sous-titres intégrés peuvent être extraits des vidéos et distribués aux clients au format texte pour éviter le transcodage. Sur certains systèmes, cela peut prendre du temps et arrêter la lecture de la vidéo pendant le processus d'extraction. Désactivez cette option pour graver les sous-titres avec un transcodage quand l'appareil client ne les prend pas en charge nativement.", + "AllowOnTheFlySubtitleExtractionHelp": "Les sous-titres intégrés peuvent être extraits des vidéos et envoyés vers les clients au format texte afin d'éviter le transcodage vidéo. Sur certains systèmes, cela peut prendre du temps et arrêter la lecture de la vidéo pendant le processus d'extraction. Désactivez cette option pour conserver les sous-titres pendant le transcodage si l'appareil client ne les prend pas en charge nativement.", "AllowRemoteAccess": "Autoriser les connexions distantes à ce serveur Jellyfin.", "AllowRemoteAccessHelp": "Si l'option est désactivée, toutes les connexions distantes seront bloquées.", "AllowedRemoteAddressesHelp": "Liste d'adresses IP ou d'IP/masque de sous-réseau séparées par des virgules qui seront autorisées à se connecter à distance. Si la liste est vide, toutes les adresses distantes seront autorisées.", @@ -45,13 +45,13 @@ "BirthLocation": "Lieu de naissance", "BirthPlaceValue": "Lieu de naissance : {0}", "Blacklist": "Liste noire", - "BookLibraryHelp": "Les livres audios et numériques sont supportés. Consultez le {0}Guide de nommage pour livre{1}.", + "BookLibraryHelp": "Les livres audios et numériques sont supportés. Consultez le {0} guide de nommage pour livre {1}.", "Books": "Livres", "Box": "Boîtier", "BoxRear": "Dos de boîtier", "Browse": "Parcourir", "BrowsePluginCatalogMessage": "Explorer notre catalogue des plugins pour voir les plugins disponibles.", - "BurnSubtitlesHelp": "Détermine si le serveur doit incruster les sous-titres lors du transcodage de la vidéo. Éviter cela améliorera nettement la performance. Sélectionnez Auto pour incruster les formats basés sur l'image (VOBSUB, PGS, SUB, IDX etc) et certains sous-titres ASS ou SSA.", + "BurnSubtitlesHelp": "Détermine si le serveur doit incruster les sous-titres lors du transcodage de la vidéo. Les performances seront grandement améliorées sans incrustation. Sélectionnez Auto pour incruster par image les formats (VOBSUB, PGS, SUB, IDX etc) et certains sous-titres ASS ou SSA.", "ButtonAdd": "Ajouter", "ButtonAddMediaLibrary": "Ajouter une médiathèque", "ButtonAddScheduledTaskTrigger": "Ajouter un déclencheur", @@ -569,7 +569,7 @@ "LabelEmbedAlbumArtDidl": "Intégrer les images d'album dans le DIDL", "LabelEmbedAlbumArtDidlHelp": "Certains appareils préfèrent cette méthode pour obtenir les images d'album. D'autres peuvent échouer à lire avec cette option activée.", "LabelEnableAutomaticPortMap": "Autoriser le mapping automatique de port", - "LabelEnableAutomaticPortMapHelp": "Essayer de mapper automatiquement le port public au port local via UPnP. Cela peut ne pas fonctionner avec certains modèles de routeurs. La modification de ce paramètre ne sera effective qu’après redémarrage du serveur.", + "LabelEnableAutomaticPortMapHelp": "Mapper automatiquement les ports publics vers des ports locaux via UPnP. Cela peut ne pas fonctionner avec certains modèles de routeurs. La modification de ce paramètre ne prendra effet qu'après redémarrage du serveur.", "LabelEnableBlastAliveMessages": "Diffuser des message de présence", "LabelEnableBlastAliveMessagesHelp": "Activer cette option si le serveur n'est pas détecté de manière fiable par les autres appareils UPnP sur votre réseau.", "LabelEnableDlnaClientDiscoveryInterval": "Intervalle de découverte des clients (secondes)", @@ -1038,7 +1038,7 @@ "OptionMissingEpisode": "Épisodes manquantes", "OptionMonday": "Lundi", "OptionNameSort": "Nom", - "OptionNew": "Nouveau...", + "OptionNew": "Nouveau…", "OptionNone": "Aucun", "OptionOnAppStartup": "Au démarrage de l'application", "OptionOnInterval": "Par intervalle", @@ -1448,7 +1448,7 @@ "FetchingData": "Récuperer des données suplémentaires", "CopyStreamURLSuccess": "URL copiée avec succès.", "CopyStreamURL": "Copier l'URL du flux", - "LabelBaseUrlHelp": "Vous pouvez ajouter un sous-répertoire personnalisé ici pour accéder au serveur via un lien unique.", + "LabelBaseUrlHelp": "Ajoute un sous-répertoire personnalisé à l'adresse URL du serveur. Par exemple: http://example.com/<baseurl>", "HeaderFavoritePeople": "Personnes préférées", "OptionRandom": "Aléatoire", "ButtonSplit": "Séparer", @@ -1507,5 +1507,19 @@ "ButtonToggleContextMenu": "Plus", "Filter": "Filtre", "New": "Nouveau", - "HeaderFavoritePlaylists": "Listes de lecture favorites" + "HeaderFavoritePlaylists": "Listes de lecture favorites", + "TabDVR": "DVR", + "LabelChromecastVersion": "Version de Chromecast", + "LabelEnableHttpsHelp": "Autorise le serveur à écouter les requêtes HTTPS configurées. Un certificat valide doit être configuré pour permettre ce mode de fonctionnement.", + "LabelEnableHttps": "Activer HTTPS", + "HeaderServerAddressSettings": "Paramètres adresses serveur", + "HeaderRemoteAccessSettings": "Paramètres d'accès distant", + "HeaderHttpsSettings": "Paramètres HTTPS", + "HeaderDVR": "Enregistreur vidéo numérique", + "ApiKeysCaption": "Liste actuelle des clés API actives", + "SaveChanges": "Enregistrer les modifications", + "LabelRequireHttpsHelp": "Si activé, le serveur va automatiquement rediriger toutes les requêtes en HTTP vers HTTPS. Cette option n'a aucun effet si le serveur n'écoute pas HTTPS.", + "LabelRequireHttps": "Nécessite HTTPS", + "LabelNightly": "De nuit", + "LabelStable": "Stable" } diff --git a/src/strings/gsw.json b/src/strings/gsw.json index 452028eb4..e39631385 100644 --- a/src/strings/gsw.json +++ b/src/strings/gsw.json @@ -7,7 +7,7 @@ "ButtonQuickStartGuide": "Schnellstart Instruktione", "ButtonResetPassword": "Passwort zrug setze", "ButtonSave": "Speichere", - "ButtonSignOut": "Sign out", + "ButtonSignOut": "Uslogge", "ButtonSort": "Sortiere", "ChannelAccessHelp": "Wähl en Kanal us, um de mit dem User z'teile. Administratore werded immer d'Möglichkeit ha alli Kanäl mitm Metadate Manager z'bearbeite.", "Continuing": "Fortlaufend", @@ -148,11 +148,9 @@ "HeaderFavoriteSongs": "Lieblingslieder", "HeaderLiveTV": "Live-Fernseh", "HeaderRecordingGroups": "Ufnahmegruppe", - "LabelIpAddressValue": "IP-Adrässe: {0}", "LabelRunningTimeValue": "Loufziit: {0}", "MessageApplicationUpdated": "Jellyfin Server esch aktualisiert worde", "MessageNamedServerConfigurationUpdatedWithValue": "De Serveriistöuigsberiich {0} esch aktualisiert worde", - "MessageServerConfigurationUpdated": "Serveriistöuige send aktualisiert worde", "Movies": "Film", "Photos": "Fotis", "Playlists": "Wedergabeliste", diff --git a/src/strings/he.json b/src/strings/he.json index 8d507070a..a3e4bc932 100644 --- a/src/strings/he.json +++ b/src/strings/he.json @@ -770,5 +770,7 @@ "Raised": "מורם", "LabelSpecialSeasonsDisplayName": "שם תצוגת \"עונה מיוחדת\":", "LabelSource": "מקור:", - "LabelSoundEffects": "אפקטי סאונד:" + "LabelSoundEffects": "אפקטי סאונד:", + "ButtonTogglePlaylist": "רשימת ניגון", + "ButtonToggleContextMenu": "עוד" } diff --git a/src/strings/hi-in.json b/src/strings/hi-in.json index 122f4aa98..7a51a4f69 100644 --- a/src/strings/hi-in.json +++ b/src/strings/hi-in.json @@ -21,11 +21,11 @@ "AddToCollection": "संग्रह में जोड़ें", "Add": "जोड़ें", "Actor": "अभिनेता", - "AccessRestrictedTryAgainLater": "अभी प्रवेश प्रतिबंधित है। थोड़ी देर बाद कोशिश करें।", + "AccessRestrictedTryAgainLater": "वर्तमान में पहुंच प्रतिबंधित है। कृपया बाद में पुनः प्रयास करें.", "AllowHWTranscodingHelp": "ट्यूनर को निरंतर रूप से धाराओं को ट्रांसकोड करने दें। यह सर्वर द्वारा ट्रांसकोडिंग को कम करने में मदद कर सकता है।", "AllLanguages": "सभी भाषाएं", "AllEpisodes": "सभी प्रकरण", - "AllComplexFormats": "सभी जटिल प्रारूप (ASS, SSA, VOBSUB, PGS, SUB / IDX, आदि)", + "AllComplexFormats": "सभी जटिल प्रारूप (ASS, SSA, VOBSUB, PGS, SUB, IDX,…)", "AllChannels": "सभी चैनल्स", "Alerts": "चेतावनियां", "Albums": "संग्रहिकाएँ", @@ -34,5 +34,83 @@ "AddedOnValue": "जोड़ दिया", "AddToPlaylist": "प्लेलिस्ट में जोड़ें", "AllowMediaConversionHelp": "मीडिया परिवर्तन के लिये अनुमति दें", - "AllowMediaConversion": "मीडिया रूपांतरण की अनुमति दें" + "AllowMediaConversion": "मीडिया रूपांतरण की अनुमति दें", + "ButtonOk": "ठीक", + "ButtonOff": "बंद", + "ButtonNextTrack": "आगे धावन पथ", + "ButtonNew": "नया", + "ButtonNetwork": "संजाल", + "ButtonMore": "अधिक", + "ButtonManualLogin": "मैनुअल लॉगिन", + "ButtonLibraryAccess": "पुस्तकालय का उपयोग", + "ButtonLearnMore": "और अधिक जानें", + "ButtonInfo": "जानकारी", + "ButtonHome": "घर", + "ButtonHelp": "मदद", + "ButtonGuide": "मार्गदर्शक", + "ButtonGotIt": "समझ गया", + "ButtonFullscreen": "पूर्ण स्क्रीन", + "ButtonForgotPassword": "पासवर्ड भूल गए", + "ButtonFilter": "निस्पंदन", + "ButtonEditOtherUserPreferences": "इस उपयोगकर्ता की प्रोफ़ाइल, छवि और व्यक्तिगत प्राथमिकताएँ संपादित करें।", + "ButtonEditImages": "छवियों को संपादित करें", + "ButtonEdit": "संपादित करें", + "ButtonDownload": "डाउनलोड", + "ButtonDown": "नीचे", + "ButtonDeleteImage": "छवि हटाएं", + "ButtonDelete": "हटाएं", + "ButtonConnect": "जुडिये", + "ButtonChangeServer": "सर्वर बदलें", + "ButtonCancel": "रद्द करना", + "ButtonBack": "वापस", + "ButtonAudioTracks": "ऑडियो ट्रैक्स", + "ButtonArrowUp": "ऊपर", + "ButtonArrowRight": "दाएँ", + "ButtonArrowLeft": "बाएं", + "ButtonArrowDown": "नीचे", + "ButtonAddUser": "उपयोगकर्ता जोड़ें", + "ButtonAddServer": "सर्वर जोड़े", + "ButtonAddScheduledTaskTrigger": "ट्रिगर जोड़ें", + "ButtonAddMediaLibrary": "मीडिया लाइब्रेरी जोड़ें", + "ButtonAddImage": "छवि जोड़ें", + "ButtonAdd": "जोड़ना", + "UnsupportedPlayback": "Jellyfin DRM द्वारा संरक्षित सामग्री को डिक्रिप्ट नहीं कर सकता है, लेकिन सभी सामग्री की परवाह किए बिना, संरक्षित शीर्षकों सहित प्रयास किया जाएगा। एन्क्रिप्शन या अन्य असमर्थित सुविधाओं जैसे इंटरेक्टिव शीर्षक के कारण कुछ फाइलें पूरी तरह से काली दिखाई दे सकती हैं।", + "BoxRear": "बॉक्स (पीछे)", + "Box": "डिब्बा", + "Books": "पुस्तकें", + "BookLibraryHelp": "ऑडियो और पाठ्य पुस्तकें समर्थित हैं। {0} पुस्तक नामकरण गाइड {1} की समीक्षा करें।", + "Blacklist": "काला सूची में डालना", + "BirthPlaceValue": "जन्म स्थान: {0}", + "BirthLocation": "जन्म स्थान", + "BirthDateValue": "जन्म: {0}", + "Banner": "झंडा", + "Backdrops": "पृष्ठभूमि", + "Backdrop": "पृष्ठभूमि", + "AutoBasedOnLanguageSetting": "ऑटो (भाषा सेटिंग के आधार पर)", + "Auto": "ऑटो", + "AuthProviderHelp": "इस उपयोगकर्ता के पासवर्ड को प्रमाणित करने के लिए एक प्रमाणीकरण प्रदाता का उपयोग करें।", + "Audio": "नया", + "AttributeNew": "नया", + "AspectRatio": "आस्पेक्ट अनुपात", + "AskAdminToCreateLibrary": "लाइब्रेरी बनाने के लिए किसी व्यवस्थापक से पूछें।", + "Ascending": "आरोही", + "AsManyAsPossible": "जितने अधिक संभव हों", + "Artists": "कलाकार की", + "Artist": "कलाकार", + "Art": "कला", + "AroundTime": "लगभग", + "Anytime": "किसी भी समय", + "AnyLanguage": "कोई भी भाषा", + "AlwaysPlaySubtitlesHelp": "भाषा की वरीयता से मेल खाने वाले उपशीर्षक ऑडियो भाषा की परवाह किए बिना लोड किए जाएंगे।", + "AlwaysPlaySubtitles": "हमेशा खेलो", + "AllowedRemoteAddressesHelp": "कोमा ने नेटवर्क के लिए आईपी पते या आईपी / नेटमास्क प्रविष्टियों की सूची को अलग कर दिया है जिन्हें दूरस्थ रूप से कनेक्ट करने की अनुमति दी जाएगी। यदि खाली छोड़ दिया जाता है, तो सभी दूरस्थ पते की अनुमति दी जाएगी।", + "AllowRemoteAccessHelp": "अनियंत्रित होने पर, सभी दूरस्थ कनेक्शन अवरुद्ध हो जाएंगे।", + "AllowRemoteAccess": "इस जेलिफ़िन सर्वर को दूरस्थ कनेक्शन की अनुमति दें।", + "AllowFfmpegThrottlingHelp": "जब एक ट्रांसकोड या रीमूक्स वर्तमान प्लेबैक स्थिति से काफी आगे हो जाता है, तो प्रक्रिया को रोकें ताकि यह कम संसाधनों का उपभोग करेगा। अक्सर मांग किए बिना देखने पर यह सबसे उपयोगी है। यदि आप प्लेबैक समस्याओं का अनुभव करते हैं तो इसे बंद कर दें।", + "AllowFfmpegThrottling": "थ्रोटल ट्रांसकोड", + "AllowOnTheFlySubtitleExtractionHelp": "वीडियो ट्रांसकोडिंग को रोकने में मदद करने के लिए एंबेडेड सबटाइटल वीडियो से निकाले जा सकते हैं और सादे पाठ में ग्राहकों तक पहुंचाए जाते हैं। कुछ प्रणालियों पर यह एक लंबा समय ले सकता है और निष्कर्षण प्रक्रिया के दौरान वीडियो प्लेबैक को स्टाल करने का कारण बन सकता है। जब वे क्लाइंट डिवाइस द्वारा मूल रूप से समर्थित नहीं होते हैं, तो वीडियो ट्रांसकोडिंग के साथ जले हुए एम्बेडेड उपशीर्षक को अक्षम करें।", + "AlbumArtist": "चित्राधार कलाकार", + "AllowOnTheFlySubtitleExtraction": "मक्खी पर उपशीर्षक निष्कर्षण की अनुमति दें", + "Album": "एल्बम", + "AddItemToCollectionHelp": "उनके लिए खोज करके संग्रह में आइटम जोड़ें और उन्हें संग्रह में जोड़ने के लिए उनके राइट-क्लिक या टैप मेनू का उपयोग करें।" } diff --git a/src/strings/hu.json b/src/strings/hu.json index 065460a64..6bd8bc82c 100644 --- a/src/strings/hu.json +++ b/src/strings/hu.json @@ -424,7 +424,7 @@ "OptionMissingEpisode": "Hiányzó Epizódok", "OptionMonday": "Hétfő", "OptionNameSort": "Név", - "OptionNew": "Új...", + "OptionNew": "Új…", "OptionParentalRating": "Korhatár besorolás", "OptionPlayCount": "Lejátszások száma", "OptionPlayed": "Megnézett", @@ -584,7 +584,7 @@ "Aired": "Adásban", "Albums": "Albumok", "AllChannels": "Minden csatorna", - "AllComplexFormats": "Minden összetett formátum (ASS, SSA, VOBSUB, PGS, SUB, IDX)", + "AllComplexFormats": "Minden összetett formátum (ASS, SSA, VOBSUB, PGS, SUB, IDX, ...)", "AllowMediaConversion": "Média konvertálás engedélyezése", "AllowMediaConversionHelp": "Add meg vagy tiltsd le a média konvertálás funkcióhoz való hozzáférést.", "AllowRemoteAccess": "Engedélyezze a távoli kapcsolatokat a Jellyfin szerverhez.", @@ -592,7 +592,7 @@ "AlwaysPlaySubtitles": "Mindig jelenjen meg", "AnyLanguage": "Bármelyik nyelv", "Anytime": "Bármikor", - "AroundTime": "{0} körül", + "AroundTime": "kb.", "AsManyAsPossible": "Amennyi lehetséges", "AspectRatio": "Képarány", "Auto": "Auto", @@ -604,7 +604,7 @@ "AlwaysPlaySubtitlesHelp": "A nyelvi beállításoknak megfelelő feliratok az audió nyelvétől függetlenül kerülnek betöltésre.", "Artists": "Előadók", "Blacklist": "Feketelista", - "BookLibraryHelp": "Az audió- és szövegkönyvek támogatottak. Nézd meg a {0} könyvelnevezési útmutatót {1}.", + "BookLibraryHelp": "Lehetőség van audió és hangoskönyvek visszajátszására. Nézd meg a {0} könyvelnevezési útmutatót {1}.", "BrowsePluginCatalogMessage": "Böngéssz a Bővítmény katalógusunkban a rendelkezésre álló bővítmények megtekintéséhez.", "AddItemToCollectionHelp": "Adj elemeket a gyűjteményekhez, ehhez keresed meg őket, majd kattints jobb egérgombbal, vagy kattints a menüre és add hozzá a gyűjteményhez.", "AllowedRemoteAddressesHelp": "Vesszővel válaszd el az IP-címek vagy IP / netmask címek listáját annak a hálózatnak amelyből távolról csatlakozhatnak. Ha üresen marad, az összes távoli cím megengedett.", @@ -853,7 +853,6 @@ "LabelCustomCertificatePath": "Egyéni SSL tanúsítvány elérési útvonala:", "LabelCustomCss": "Egyedi CSS:", "LabelCustomCssHelp": "Egyedi CSS stílusok alkalmazása a webes felülethez.", - "LabelCustomizeOptionsPerMediaType": "A média típusának testreszabása:", "LabelDeathDate": "Halálának dátuma:", "LabelDefaultScreen": "Alapértelmezett képernyő:", "LabelDefaultUser": "Alapértelmezett felhasználó:", @@ -869,7 +868,7 @@ "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 modelleken ez nem működik. A módosítások újraindítás után lépnek életbe.", + "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)", "LabelEnableDlnaClientDiscoveryIntervalHelp": "A Jellyfin által végrehajtott SSDP keresések időtartamát határozza meg másodpercben.", @@ -934,7 +933,7 @@ "LabelNewName": "Új név:", "LabelNewsCategories": "Hírek kategóriái:", "LabelNumber": "Szám:", - "LabelOptionalNetworkPathHelp": "Ha ez a mappa meg van osztva a hálózaton, a hálózati megosztási útvonal megadása lehetővé teszi, hogy a Jellyfin alkalmazások más eszközökön közvetlenül hozzáférjenek a médiafájlokhoz.", + "LabelOptionalNetworkPathHelp": "Ha ez a mappa meg van osztva a hálózaton, a hálózati megosztási útvonal megadása lehetővé teszi, hogy a Jellyfin alkalmazások más eszközökön közvetlenül hozzáférjenek a médiafájlokhoz. Például: {0{ vagy {1}.", "LabelPasswordConfirm": "Jelszó (megerősítés):", "LabelPlaceOfBirth": "Születési hely:", "LabelPostProcessor": "A feldolgozás utáni alkalmazás:", @@ -1302,7 +1301,7 @@ "AllowOnTheFlySubtitleExtractionHelp": "A beágyazott feliratokat ki lehet nyerni a videókból és elküldeni az alkalmazásoknak sima szöveg formátumba, hogy ne legyen átkódolás. Néhány eszközön ez hosszú ideig is eltarthat, valamint a videó lejátszás megakadhat az eltávolítási folyamat futása közben. Ezt kikapcsolva a beágyazott feliratok videó átkódolással beégetésre kerülnek azon kliens eszközökre melyek nem támogatják a külső feliratokat.", "Art": "ClearArt", "AuthProviderHelp": "Válaszd ki az azonosítási szolgáltatást amely ezen felhasználó jelszavának ellenőrzését valósítja meg.", - "BurnSubtitlesHelp": "Meghatározza, hogy a szervernek be kell-e égetnie a feliratot videó átkódolás esetén a felirat típusának függvényében. Ennek elkerülésével a szerver teljesítménye javul. Válaszd az Auto lehetőséget a kép alapú feliratok (pl. VOBSUB, PGS, SUB/IDX, stb) és bizonyos ASS/SSA feliratok beégetéséhez.", + "BurnSubtitlesHelp": "Meghatározza, hogy a szervernek be kell-e égetnie a feliratot videó átkódolás esetén a felirat típusának függvényében. Ennek elkerülésével a szerver teljesítménye javul. Válaszd az Auto lehetőséget a kép alapú feliratok (pl. VOBSUB, PGS, SUB/IDX, stb.) és bizonyos ASS/SSA feliratok beégetéséhez.", "ButtonAddScheduledTaskTrigger": "Vezérlő Hozzáadása", "ButtonGuide": "Műsorújság", "ButtonRefreshGuideData": "Műsorújság Frissítése", @@ -1466,7 +1465,7 @@ "LabelParentNumber": "Szülő száma:", "LabelMetadataReadersHelp": "Rangsorold az előnyben részesített metaadat forrásokat. Az a forrás kerül sorsolásra, amelyben először találunk információt.", "LabelLineup": "Felhozatal:", - "LabelBaseUrlHelp": "Ide hozzáadhatsz egy egyéni alkönyvtárat, hogy a szerverhez egyedibb URL-címről férj hozzá.", + "LabelBaseUrlHelp": "Egyedi alkönyvtárat ad hozzá a szervered URL címéhez. Például: http://pelda.com/<alapurl>", "ErrorPleaseSelectLineup": "Kérjük, válassz ki egy felhozatalt, és próbáld újra. Ha nem állnak rendelkezésre felsorolások, akkor ellenőrizd, hogy helyes-e felhasználóneved, jelszavad és irányítószámod.", "ErrorAddingListingsToSchedulesDirect": "Hiba történt a felhozatal hozzáadása közben a Schedules Direct fiókhoz. A Schedules Direct csak korlátozott számú fiók hozzáadását támogatja. Lehetséges, hogy be kell jelentkezned a Schedules Direct weboldalán és eltávolítani néhány más listát a fiókodról mielőtt továbblépsz.", "DeviceAccessHelp": "Ez csak azokra az eszközökre alkalmazható, amelyek egyedileg vannak azonosítva és nem gátolják meg a böngészőből való elérést. A felhasználói eszközök kiszűrése meg fogja akadályozni az új eszközök használatát addig, amíg itt nem engedélyezed őket.", @@ -1511,5 +1510,19 @@ "ButtonToggleContextMenu": "Továbbiak", "Filter": "Szűrés", "New": "Új", - "HeaderFavoritePlaylists": "Kedvenc lejátszási listák" + "HeaderFavoritePlaylists": "Kedvenc lejátszási listák", + "ApiKeysCaption": "A jelenleg engedélyezett API kulcsok listája", + "LabelNightly": "Éjszakai", + "LabelStable": "Stabil", + "LabelChromecastVersion": "Chromecast verzió", + "LabelEnableHttpsHelp": "Engedélyezi a kiszolgálónak a kommunikációt HTTPS protokollon keresztül. Érvényes tanúsítványt is be kell állítani az érvénybe léptetéshez.", + "LabelRequireHttpsHelp": "Bekapcsolást követően minden egyes HTTP-kérést átirányít HTTPS protokollra. A már meglévő HTTPS kéréseket nem módosítja.", + "LabelRequireHttps": "HTTPS megkövetelése", + "LabelEnableHttps": "HTTPS engedélyezése", + "HeaderServerAddressSettings": "Kiszolgáló Címének Beállításai", + "HeaderRemoteAccessSettings": "Távoli Hozzáférés Beállításai", + "HeaderHttpsSettings": "HTTPS Beállítások", + "TabDVR": "DVR", + "HeaderDVR": "DVR", + "SaveChanges": "Változtatások mentése" } diff --git a/src/strings/is-is.json b/src/strings/is-is.json index 70fc89119..1042737ae 100644 --- a/src/strings/is-is.json +++ b/src/strings/is-is.json @@ -46,7 +46,7 @@ "OptionContinuing": "Heldur áfram", "OptionBlockTvShows": "Sjónvarpsþættir", "OptionBlockMusic": "Tónlist", - "OptionBlockTrailers": "Stiklur", + "OptionBlockTrailers": "Sýnishorn", "AllowOnTheFlySubtitleExtractionHelp": "Hægt er að sækja texta sem eru innbyggðir í myndaskrá og senda þá beint til notanda á textaformi til þess að sleppa við að umbreyta (transcode) myndaskránni. Í sumum tölvum getur þetta tekið langan tíma og valdið hikstum á meðan verið er að sækja textan. Afvirkjaðu þetta til þess að láta alla texta vera brennda inn í myndaskránna ef tæki notenda styður ekki að spila skránna beint.", "AccessRestrictedTryAgainLater": "Aðgangur bannaður í augnablikinu. Vinsamlegast reynið síðar.", "Actor": "Leikari", @@ -93,7 +93,7 @@ "AllowOnTheFlySubtitleExtraction": "Leyfa að taka út texta á meðan það er í keyrslu", "AllowRemoteAccess": "Leyfa fjartengingar í þennan Jellyfin þjón.", "AllowRemoteAccessHelp": "Ef þetta er afhakað, allar fjartengingar, þ.e. í gegnum internetið, verða bannaðar.", - "AlwaysPlaySubtitles": "Alltaf spila texta", + "AlwaysPlaySubtitles": "Spila alltaf", "AnyLanguage": "Öll tungumál", "AroundTime": "Um {0}", "Art": "List", @@ -165,8 +165,8 @@ "HeaderProfile": "Prófíll", "HeaderPeople": "Fólk", "HeaderPassword": "Lykilorð", - "HeaderLatestMovies": "Nýjustu Kvikmyndir", - "HeaderLatestEpisodes": "Nýjustu Þættirnir", + "HeaderLatestMovies": "Kvikmyndir, nýlega bætt við", + "HeaderLatestEpisodes": "Þættir, nýlega bætt við", "HeaderHome": "Heim", "HeaderFavoriteVideos": "Uppáhalds Myndbönd", "HeaderFavoriteMovies": "Uppáhalds Kvikmyndir", @@ -217,7 +217,7 @@ "ButtonViewWebsite": "Skoða vefsíðu", "ButtonUp": "Upp", "ButtonUninstall": "Fjarlægja", - "ButtonTrailer": "Stikla", + "ButtonTrailer": "Sýnishorn", "ButtonSubtitles": "Texti", "ButtonSort": "Flokka", "ButtonSignIn": "Innskráning", @@ -241,17 +241,9 @@ "ConfirmDeleteImage": "Eyða mynd?", "ButtonRename": "Endurnefna", "Sync": "Samstilla", - "Never": "", - "News": "", "ButtonRevoke": "Afturkalla", "ButtonRepeat": "Endurtaka", - "MusicArtist": "", - "MusicAlbum": "", - "No": "", "Monday": "Mánudagur", - "Name": "", - "Mute": "", - "MusicVideo": "", "ButtonRefresh": "Endurhlaða", "ButtonParentalControl": "Foreldraeftirlit", "ButtonOff": "Af", @@ -290,8 +282,266 @@ "AllowedRemoteAddressesHelp": "Kommu aðskilinn listi yfir ip tölur eða ip-númeramát fyrir net sem mega fjartengjas. Ef þetta er autt eru allar fjartengingar leyfðar.", "AllowHWTranscodingHelp": "Leyfa viðtæki að umbreyta straumi í rauntíma.Þetta getur minnkað álag á þjón.", "ValueSpecialEpisodeName": "Sérstakt - {0}", - "Shows": "Þættir", + "Shows": "Sýningar", "Playlists": "Spilunarlisti", "ButtonScanAllLibraries": "Skanna Öll Gagnasöfn", - "AllLibraries": "Öll gagnasöfn" + "AllLibraries": "Öll gagnasöfn", + "RefreshMetadata": "Endurhlaða lýsigögn", + "Refresh": "Endurhlaða", + "ReleaseDate": "Útgáfudagur", + "RememberMe": "Muna eftir mér", + "RepeatAll": "Endurtaka allt", + "Repeat": "Endurtaka", + "RemoveFromPlaylist": "Fjarlægja úr spilunarlista", + "RemoveFromCollection": "Fjarlægja úr safni", + "HeaderHttpsSettings": "HTTPS Stillingar", + "HeaderFavoriteBooks": "Uppáhalds Bækur", + "HeaderEditImages": "Breyta ljósmyndum", + "HeaderContinueListening": "Halda áfram að hlusta", + "ChannelNumber": "Númer rásar", + "ChannelNameOnly": "Aðeins rás {0}", + "ButtonSubmit": "Senda", + "ButtonShutdown": "Slökkva á netþjón", + "EnableThemeVideosHelp": "Spila þema myndbönd í bakgrunni þegar gagnasafn er skoðað.", + "EnableThemeSongsHelp": "Spila þema lög í bakgrunni þegar gagnasafn er skoðað.", + "FormatValue": "Snið: {0}", + "Genre": "Tegund", + "HeaderActiveDevices": "Virk Tæki", + "HeaderAddToCollection": "Bæta í Safn", + "HeaderAddUpdateImage": "Bæta við/uppfæra ljósmynd", + "HeaderAddToPlaylist": "Bæta við á Spilunarlista", + "HeaderAlert": "Viðvörun", + "HeaderAppearsOn": "Birtist á", + "HeaderChannels": "Rásir", + "HeaderDetectMyDevices": "Finna tækin mín", + "HeaderFavoritePeople": "Uppáhalds Fólk", + "HeaderFavoritePlaylists": "Uppáhalds spilunarlistar", + "HeaderFilters": "Síur", + "HeaderForgotPassword": "Gleymt lykilorð", + "HeaderForKids": "Fyrir Krakka", + "HeaderFrequentlyPlayed": "Oft Spilað", + "HeaderGenres": "Flokkar", + "HeaderLatestMusic": "Tónlist, nýlega bætt við", + "HeaderMetadataSettings": "Stillingar lýsigagna", + "HeaderMedia": "Margmiðlunarsafn", + "HeaderLiveTv": "Sjónvarp í beinni útsendingu", + "HeaderLoginFailure": "Innskráning Mistókst", + "HeaderMyDevice": "Tækið mitt", + "HeaderMusicVideos": "Tónlistarmyndbönd", + "HeaderMusicQuality": "Tónlistargæði", + "HeaderMovies": "Kvikmyndir", + "HeaderNewDevices": "Ný tæki", + "HeaderPasswordReset": "Endurstilla Lykilorð", + "HeaderPhotoAlbums": "Myndaalbúm", + "OnApplicationStartup": "Við ræsingu forrits", + "EveryXHours": "Hverjum {0} klukkustundum", + "EveryHour": "Hverja klukkustund", + "Episode": "Þáttur", + "EnableThemeVideos": "Þema myndbönd", + "EnableThemeSongs": "Þema lög", + "EnablePhotos": "Birta myndir", + "EnableHardwareEncoding": "Virkja vélbúnaðarkóðun", + "LabelScreensaver": "Skjáhvíla:", + "LabelRequireHttps": "Krefjast HTTPS", + "LabelReleaseDate": "Útgáfudagur:", + "LabelReasonForTranscoding": "Ástæða fyrir umkóðun:", + "LabelPlayMethod": "Spilunaraðferð:", + "LabelPlaylist": "Spilunarlisti:", + "LabelPlayer": "Spilari:", + "LabelPlayDefaultAudioTrack": "Spila sjálfgefna hljóðrás óháð tungumáli", + "LabelPlaceOfBirth": "Fæðingarstaður:", + "LabelPersonRoleHelp": "Dæmi: Ísbílstjóri", + "LabelPersonRole": "Hlutverk:", + "LabelPath": "Slóð:", + "LabelPasswordRecoveryPinCode": "PIN númer:", + "LabelPasswordConfirm": "Lykilorð (staðfesta):", + "LabelPassword": "Lykilorð:", + "LabelOverview": "Yfirlit:", + "LabelOriginalTitle": "Upphaflegur Titill:", + "LabelOriginalAspectRatio": "Upprunalegt skjáhlutfall:", + "LabelNumber": "Númer:", + "LabelNotificationEnabled": "Virkja þessa tilkynningu", + "LabelNewsCategories": "Frétta flokkar:", + "LabelNewPasswordConfirm": "Staðfesta nýtt lykilorð:", + "LabelNewPassword": "Nýtt lykilorð:", + "LabelNewName": "Nýtt nafn:", + "LabelName": "Nafn:", + "LabelLanNetworks": "LAN net:", + "MessageImageFileTypeAllowed": "Aðeins JPEG og PNG skrár eru studdar.", + "DrmChannelsNotImported": "Rásir með DRM verða ekki fluttar inn.", + "DoNotRecord": "Ekki taka upp", + "DisplayModeHelp": "Veldu útlit fyrir viðmótið.", + "DisplayMissingEpisodesWithinSeasons": "Birta þætti sem vantar inn í þáttaraðir", + "DisplayInMyMedia": "Birta á heimaskjá", + "Display": "Birta", + "Dislike": "Mislíka", + "Disabled": "Óvirkt", + "Directors": "Leikstjórar", + "DirectStreamHelp2": "Beint streymi á skrá notar mjög litið vinnsluafl án þess að tapa myndgæðum.", + "Descending": "Niður", + "DeleteImageConfirmation": "Ertu viss um að þú viljir eyða þessari mynd?", + "DefaultErrorMessage": "Villa varð við vinnslu beiðninnar. Reyndu aftur síðar.", + "DeathDateValue": "Dó: {0}", + "DatePlayed": "Dagsetning spilað", + "DateAdded": "Dagsetning bætt við", + "CriticRating": "Einkunn gagnrýnanda", + "CopyStreamURLError": "Villa varð við afritun vefslóðar.", + "CopyStreamURLSuccess": "Afrit af vefslóð tókst.", + "CopyStreamURL": "Afrita vefslóð streymis", + "Continuing": "Áframhaldandi", + "ConfirmEndPlayerSession": "Langar þig að slökkva á Jellyfin á {0}?", + "ConfirmDeletion": "Staðfesta eyðingu", + "ConfirmDeleteItem": "Ef þessari skrá er eytt verður hún fjarlægð úr bæði skráarkerfinu og miðlasafninu. Ertu viss um að þú viljir halda áfram?", + "Composer": "Tónskáld", + "ClientSettings": "Stillingar biðlara", + "ButtonTogglePlaylist": "Spilunarlisti", + "ButtonToggleContextMenu": "Meira", + "ButtonSplit": "Skipta", + "ButtonStop": "Stöðva", + "ButtonResetEasyPassword": "Endurstilla Easy PIN númer", + "ButtonRefreshGuideData": "Uppfæra sjónvarpsþáttagögn", + "Artist": "Listamaður", + "AllowFfmpegThrottling": "Takmarka Umkóðun", + "Album": "Plata", + "SettingsSaved": "Stillingar vistaðar.", + "Settings": "Stillingar", + "Series": "Seríur", + "SendMessage": "Senda skilaboð", + "SelectAdminUsername": "Veldu notandanafn fyrir stjórnanda aðganginn þinn.", + "Season": "Sería", + "SearchResults": "Leitarniðurstöður", + "SearchForSubtitles": "Leita að skjátexta", + "Search": "Leita", + "Screenshots": "Skjámyndir", + "Screenshot": "Skjámynd", + "ScanLibrary": "Skanna gagnasafn", + "SaveSubtitlesIntoMediaFolders": "Vista skjátexta í miðlamöppur", + "SaveChanges": "Vista breytingar", + "Save": "Vista", + "Saturday": "Laugardagur", + "RunAtStartup": "Keyra við ræsingu", + "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", + "ValueOneSong": "1 lag", + "ValueOneSeries": "1 Þáttaröð", + "ValueOneMusicVideo": "1 tónlistarmyndband", + "ValueOneMovie": "1 kvikmynd", + "ValueOneEpisode": "1 þáttur", + "Up": "Upp", + "Unplayed": "Óspilað", + "UninstallPluginHeader": "Fjarlægja Viðbót", + "Tuesday": "Þriðjudagur", + "Transcoding": "Umkóðun", + "Trailers": "Sýnishorn", + "TitlePlayback": "Spilun", + "Thursday": "Fimmtudagur", + "ThemeVideos": "Þemu myndbönd", + "ThemeSongs": "Þemu lög", + "TellUsAboutYourself": "Segðu okkur frá sjálfum þér", + "TabUsers": "Notendur", + "TabUpcoming": "Væntanlegt", + "TabTranscoding": "Umkóðun", + "TabTrailers": "Sýnishorn", + "TabSuggestions": "Tillögur", + "TabSongs": "Lög", + "TabResumeSettings": "Halda áfram", + "TabProfile": "Prófíll", + "TabPlugins": "Viðbætur", + "TabOther": "Annað", + "TabNetworks": "Netkerfi", + "TabMyPlugins": "Mínar viðbætur", + "TabMusicVideos": "Tónlistarmyndbönd", + "TabMusic": "Tónlist", + "TabMovies": "Kvikmyndir", + "PleaseRestartServerName": "Vinsamlegast endurræstu Jellyfin netþjóninn - {0}.", + "Previous": "Fyrri", + "Premiere": "Frumsýning", + "Producer": "Framleiðandi", + "Quality": "Gæði", + "RecentlyWatched": "Nýlega horft á", + "RecommendationBecauseYouLike": "Af því að þér líkar {0}", + "RecommendationBecauseYouWatched": "Af því að þú horfðir á {0}", + "RecommendationDirectedBy": "Leikstýrt af {0}", + "SortChannelsBy": "Raða rásum eftir:", + "SortByValue": "Raða eftir {0}", + "Sort": "Raða", + "Filter": "Sía", + "New": "Nýtt", + "Shuffle": "Stokka", + "ShowYear": "Sýna ár", + "ShowTitle": "Sýna titil", + "Share": "Deila", + "LabelDefaultUser": "Sjálfgefinn notandi:", + "LabelDefaultScreen": "Sjálfgefinn skjár:", + "LabelDeathDate": "Dánardagur:", + "LabelDay": "Dagur:", + "LabelCurrentPassword": "Núverandi lykilorð:", + "LabelCollection": "Safn:", + "LabelChannels": "Rásir:", + "LabelCachePath": "Slóð skyndiminnis:", + "LabelCache": "Skyndiminni:", + "LabelBurnSubtitles": "Brenna skjátexta:", + "LabelBitrate": "Bitahraði:", + "LabelBirthYear": "Fæðingarár:", + "LabelBirthDate": "Fæðingardagur:", + "LabelAudio": "Hljóð", + "LabelArtists": "Listamenn:", + "LabelAppNameExample": "Dæmi: Sickbeard, Sonarr", + "LabelAll": "Allt", + "LabelAccessDay": "Vikudagur:", + "Kids": "Krakkar", + "Hide": "Fela", + "Help": "Hjálp", + "Home": "Heim", + "HeaderYears": "Ár", + "HeaderVideos": "Myndbönd", + "HeaderVideoQuality": "Myndgæði", + "HeaderUsers": "Notendur", + "HeaderUser": "Notandi", + "TabMetadata": "Lýsigögn", + "TabGenres": "Flokkar", + "TabFavorites": "Eftirlæti", + "TabEpisodes": "Þættir", + "TabDirectPlay": "Bein Spilun", + "TabAdvanced": "Ítarlegt", + "Sunday": "Sunnudagur", + "Suggestions": "Tillögur", + "Subtitles": "Skjátexti", + "LabelMetadataPath": "Slóð lýsigagna:", + "LabelMetadata": "Lýsigögn:", + "LabelMessageTitle": "Titill skilaboðs:", + "LabelMessageText": "Texti skilaboðs:", + "LabelMaxStreamingBitrate": "Hámarks gæði streymis:", + "LabelLineup": "Uppröðun:", + "LabelKodiMetadataDateFormat": "Snið útgáfudags:", + "LabelInternetQuality": "Gæði Internets:", + "LabelIconMaxWidth": "Hámarksbreidd tákns:", + "LabelHomeNetworkQuality": "Gæði heimanets:", + "LabelHardwareAccelerationType": "Hröðun vélbúnaðar:", + "LabelFriendlyName": "Vinalegt nafn:", + "LabelFormat": "Snið:", + "LabelForgotPasswordUsernameHelp": "Sláðu inn notandanafnið þitt, ef þú manst eftir því.", + "LabelFont": "Leturgerð:", + "LabelFolder": "Mappa:", + "LabelEpisodeNumber": "Þáttur númer:", + "LabelEnableRealtimeMonitor": "Virkja vöktun í rauntíma", + "LabelEnableHardwareDecodingFor": "Gera vélbúnaðarafkóðun virka fyrir:", + "LabelDroppedFrames": "Felldir rammar:", + "LabelDiscNumber": "Númer disks:", + "LabelDeviceDescription": "Lýsing tækis", + "LabelDashboardTheme": "Þema mælaborðs:", + "LabelCustomCss": "Sérsniðin CSS:", + "LabelCriticRating": "Einkunn gagnrýnanda:", + "LabelCorruptedFrames": "Skemmdir rammar:", + "LabelCancelled": "Hætt við", + "LabelAppName": "Heiti forrits", + "LabelAllowServerAutoRestart": "Leyfa netþjóni að endurræsa sig sjálfkrafa til þess að uppfæra sig", + "LabelAllowHWTranscoding": "Leyfa vélbúnaðarumkóðun", + "Label3DFormat": "3D snið:", + "HeaderIdentification": "Auðkenning" } diff --git a/src/strings/it.json b/src/strings/it.json index 3adbeb203..71d09eced 100644 --- a/src/strings/it.json +++ b/src/strings/it.json @@ -14,13 +14,13 @@ "Albums": "Album", "All": "Tutto", "AllChannels": "Tutti i canali", - "AllComplexFormats": "Tutti i formati complessi (ASS, SSA, VOBSUB, PGS, SUB, IDX)", + "AllComplexFormats": "Tutti i formati complessi (ASS, SSA, VOBSUB, PGS, SUB, IDX, ...)", "AllEpisodes": "Tutti gli episodi", "AllLanguages": "Tutte le lingue", "AllLibraries": "Tutte le librerie", "AllowHWTranscodingHelp": "Abilita il sintonizzatore per codificare i flussi al volo. Ciò potrebbe contribuire a ridurre la transcodifica richiesta dal server.", "AllowOnTheFlySubtitleExtraction": "Consenti l'estrazione sottotitoli al volo", - "AllowOnTheFlySubtitleExtractionHelp": "I sottotitoli incorporati possono essere estratti dai video e consegnati ad applicazioni in testo semplice per evitare la transcodifica dei video. In alcuni sistemi questo può richiedere molto tempo e causare un rallentamento della riproduzione video durante il processo di estrazione. Disattivare questa opzione per avere i sottotitoli incorporati con la transcodifica video quando non sono supportati nativamente dal dispositivo client.", + "AllowOnTheFlySubtitleExtractionHelp": "I sottotitoli incorporati possono essere estratti dai video e consegnati ai client in testo semplice per evitare la transcodifica dei video. In alcuni sistemi questo può richiedere molto tempo e causare un rallentamento della riproduzione video durante il processo di estrazione. Disattivare questa opzione per avere i sottotitoli incorporati con la transcodifica video quando non sono supportati nativamente dal dispositivo client.", "AllowRemoteAccess": "Abilita connessioni remote a questo Server Jellyfin.", "AllowRemoteAccessHelp": "Se deselezionato, tutte le connessioni remote saranno bloccate.", "AllowedRemoteAddressesHelp": "Elenco separato da virgola di indirizzi IP o voci IP / maschera di rete per reti che potranno connettersi da remoto. Se lasciato vuoto, saranno consentiti tutti gli indirizzi remoti.", @@ -28,7 +28,7 @@ "AlwaysPlaySubtitlesHelp": "I sottotitoli corrispondenti alla lingua preferita saranno caricati a prescindere dalla lingua dell'audio.", "AnyLanguage": "Qualsiasi lingua", "Anytime": "In qualsiasi momento", - "AroundTime": "Circa {0}", + "AroundTime": "Circa", "Artists": "Artisti", "AsManyAsPossible": "Tutto il possibile", "Ascending": "Crescente", @@ -40,12 +40,12 @@ "BirthDateValue": "Nato il: {0}", "BirthLocation": "Luogo di nascita", "BirthPlaceValue": "nato a: {0}", - "BookLibraryHelp": "Libri e audiolibri sono supportati. Rivedere {0}la guida ai nomi dei libri di Jellyfin{1}.", + "BookLibraryHelp": "Libri e audiolibri sono supportati. Rivedi la guida {0} ai nomi dei libri {1} di Jellyfin.", "Books": "Libri", "BoxRear": "Box (retro)", "Browse": "Esplora", "BrowsePluginCatalogMessage": "Sfoglia il catalogo dei Plugins.", - "BurnSubtitlesHelp": "Determina se il server deve imprimere i sottotitoli quando i video vengono convertiti. Evitare ciò migliorerà di molto le prestazioni. Selezionare Auto per imprimere formati basati sull'immagine (VOBSUB, PGS, SUB, IDX) e alcuni sottotitoli ASS o SSA.", + "BurnSubtitlesHelp": "Determina se il server deve imprimere i sottotitoli quando i video vengono convertiti. Evitare ciò migliorerà di molto le prestazioni. Selezionare Auto per imprimere formati basati sull'immagine (VOBSUB, PGS, SUB, IDX, ...) e alcuni sottotitoli ASS o SSA.", "ButtonAdd": "Aggiungi", "ButtonAddMediaLibrary": "Aggiungi raccolta multimediale", "ButtonAddScheduledTaskTrigger": "Aggiungi operazione", @@ -551,7 +551,7 @@ "LabelEmbedAlbumArtDidl": "Inserisci le copertine degli Album in Didl", "LabelEmbedAlbumArtDidlHelp": "Alcuni dispositivi preferiscono questo metodo per ottenere le copertine degli album. Altri possono non riuscire a riprodurli con questa opzione abilitata.", "LabelEnableAutomaticPortMap": "Abilita mappatura automatica delle porte", - "LabelEnableAutomaticPortMapHelp": "Tenta di mappare automaticamente la porta pubblica sulla porta locale tramite UPnP. Questo potrebbe non funzionare con alcuni modelli di router. I cambiamenti non saranno applicati fino ad un riavvio del server.", + "LabelEnableAutomaticPortMapHelp": "Automaticamente inoltra le porte pubbliche del router sul quelle locali del server tramite UPnP. Potrebbe non funzionare con alcuni modelli di router. I cambiamenti non saranno applicati fino ad il riavvio del server.", "LabelEnableBlastAliveMessages": "Invia segnale di presenza", "LabelEnableBlastAliveMessagesHelp": "Attivare questa opzione se il server non viene rilevato in modo affidabile da altri dispositivi UPnP in rete.", "LabelEnableDlnaClientDiscoveryInterval": "Intervallo di ricerca dispositivi (secondi)", @@ -671,7 +671,7 @@ "LabelNumberOfGuideDays": "Numero di giorni per i quali scaricare i dati della guida:", "LabelNumberOfGuideDaysHelp": "Scaricando più giorni si avrà la possibilità di pianificare in anticipo più programmi e vedere più liste, ma il tempo di download si allungherà. 'Auto': MB sceglierà automaticamente in base al numero di canali.", "LabelOptionalNetworkPath": "Cartella condivisa (Opzionale):", - "LabelOptionalNetworkPathHelp": "Se questa cartella è condivisa sulla rete, fornendo il percorso di condivisione di rete si può consentire alle applicazioni Jellyfin su altri dispositivi di accedere direttamente ai file multimediali.", + "LabelOptionalNetworkPathHelp": "Se questa cartella è condivisa sulla rete, fornendo il percorso di condivisione di rete si può consentire alle applicazioni Jellyfin su altri dispositivi di accedere direttamente ai file multimediali. Ad esempio {0} oppure {1}.", "LabelOriginalAspectRatio": "Aspetto originale:", "LabelOriginalTitle": "Titolo originale:", "LabelOverview": "Trama:", @@ -995,7 +995,7 @@ "OptionMissingEpisode": "Episodi mancanti", "OptionMonday": "Lunedì", "OptionNameSort": "Nome", - "OptionNew": "Nuovo...", + "OptionNew": "Nuovo…", "OptionNone": "Nessuno", "OptionOnAppStartup": "All'avvio", "OptionOnInterval": "Su intervallo", @@ -1342,7 +1342,7 @@ "MediaInfoStreamTypeVideo": "Video", "MessageNoCollectionsAvailable": "Le collezioni ti consentono di fruire di raggruppamenti personalizzati di Film, Serie e Album. Clicca il tasto + per iniziare a creare collezioni.", "MessageNoServersAvailable": "Nessun server è stato trovato usando la ricerca automatica di server.", - "LabelBaseUrlHelp": "Puoi aggiungere una sottodirectory personalizzata qui per accedere al server da un URL più originale.", + "LabelBaseUrlHelp": "Aggiunge una cartella personalizzata all'URL del server, ad esempio http://example.com/<baseurl>", "OptionAlbum": "Album", "LabelPasswordResetProvider": "Provider per il Reset della Password:", "LabelServerName": "Nome del Server:", @@ -1504,5 +1504,21 @@ "MessageUnauthorizedUser": "Non sei autorizzato ad accedere in questo momento al server. Contatta l'amministratore per ulteriori dettagli.", "ButtonTogglePlaylist": "Playlist", "ButtonToggleContextMenu": "Altro", - "HeaderFavoritePlaylists": "Playlist Favorite" + "HeaderFavoritePlaylists": "Playlist Favorite", + "Filter": "Filtro", + "New": "Nuovo", + "ApiKeysCaption": "Elenco chiavi API abilitate", + "LabelStable": "Stabile", + "LabelChromecastVersion": "Versione Chromecast", + "LabelRequireHttpsHelp": "Se selezionata, il server reindirizzerà tutte le richieste HTTP a HTTPS. Vale solo se il sever è configurato per l'ascolto in HTTPS.", + "LabelRequireHttps": "Richiede HTTPS", + "LabelEnableHttpsHelp": "Abilita il server all'ascolto sulla porta HTTPS. Il certificato deve essere configurato e valido per l'abilitazione.", + "LabelEnableHttps": "Abilita HTTPS", + "HeaderServerAddressSettings": "Configurazione Indirizzo Server", + "HeaderRemoteAccessSettings": "Configurazione Access Remoto", + "HeaderHttpsSettings": "Configurazione HTTPS", + "TabDVR": "DVR", + "SaveChanges": "Salva modifiche", + "HeaderDVR": "DVR", + "LabelNightly": "Nightly" } diff --git a/src/strings/kk.json b/src/strings/kk.json index a31d2b375..f32fe9d9e 100644 --- a/src/strings/kk.json +++ b/src/strings/kk.json @@ -30,7 +30,6 @@ "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", - "AndroidUnlockRestoreHelp": "Aldyńǵy satyp alýdy qalpyna keltirý úshin, bastapqyda satyp alý jasalǵan naq sol Google (nemese Amazon) tirkelgisimen qurylǵyǵa kirińiz. Qoldanba dúkeni qosylǵan jáne kezkelgen ata-ana shekteýsiz, jáne belsendi ınternet baılanysy bar ekenine kóz jetkizińiz. Aldyńǵy satyp alý qalpyna keltirý úshin muny tek qana bir ret isteý kerek.", "AnyLanguage": "Qaı-qaısy til", "Anytime": "Árkezde", "AroundTime": "{0} aınalasynda", @@ -834,7 +833,6 @@ "LabelTypeText": "Mátin", "LabelUnairedMissingEpisodesWithinSeasons": "Kórsetilmegen bólimderdi maýsym ishinde beıneleý", "LabelUnknownLanguage": "Belgisiz til", - "LabelUploadSpeedLimit": "Júktep salý qarqynynyń shegi, Mbıt/s:", "LabelUrl": "URL:", "LabelUseNotificationServices": "Kelesi qyzmetterdi paıdalaný:", "LabelUser": "Paıdalanýshy:", @@ -872,7 +870,6 @@ "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ý.", - "LiveTvRequiresUnlock": "", "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", @@ -950,7 +947,6 @@ "MessagePluginConfigurationRequiresLocalAccess": "Osy plagındi teńsheý úshin jergilikti serverińizge tikeleı kirińiz.", "MessagePluginInstallDisclaimer": "Jellyfin qaýymdastyǵy múshelerimen qurylǵan plagınder Jellyfin tájirıbeńizdi qosymsha múmkindiktermen jáne jeńildiktermen jaqsartý úshin jaqsy tásili bolyp tabylady. Ornatpas buryn, olar Jellyfin serverińizge tasyǵyshhanany uzaq skanerleý, qosymsha óńdik óńdetý jáne júıeniń turaqtylyǵyn tómendetý sıaqty áserler etýge múmkin bolýyna habardar bolyńyz.", "MessageReenableUser": "Qaıta qosý úshin tómende qarańyz", - "MessageServerConfigurationUpdated": "Server konfıgýrasıasy jańartyldy", "MessageSettingsSaved": "Parametrler saqtaldy.", "MessageTheFollowingLocationWillBeRemovedFromLibrary": "Tasyǵyshhanańyzdan kelesi tasyǵysh ornalasýlary alastalady:", "MessageUnableToConnectToServer": "Tańdalǵan serverge qosylýymyz dál qazir múmkin emes. Bul iske qosylǵanyna kóz jetkizińiz jáne áreketti keıin qaıtalańyz.", @@ -1229,7 +1225,6 @@ "SearchForSubtitles": "Sýbtıtrlerdi izdeý", "SearchResults": "Izdeý nátıjeleri", "SecondaryAudioNotSupported": "Dybys jolshyǵyn aýystyrý úshin qoldaý kórsetilmeıdi", - "SelectCameraUploadServers": "Kameradan fotosýretterdi kelesi serverlerge júktep salý:", "SendMessage": "Habar jiberý", "Series": "Telehıkaıa", "SeriesCancelled": "Telehıkaıa boldyrylmady.", @@ -1346,8 +1341,6 @@ "TrackCount": "{0} jolshyq", "Trailers": "Treılerler", "Transcoding": "Qaıta kodtaýda", - "TryMultiSelect": "Úndesken bólekteýdi synap kórý", - "TryMultiSelectMessage": "Birneshe tasyǵysh derekter elementterin óńdeý úshin, kezkelgen posterdi jaı ǵana tintýir batyrmaǵa basyp turyp nuqyńyz jáne basqarýyn qalaǵan elementterdi bólekteńiz. Synap kórińiz!", "Tuesday": "seısenbi", "TvLibraryHelp": "{0}TD-kórsetimdi ataý nusqaýlyǵyn{1} qarap shyǵý.", "Uniform": "Biryńǵaı", diff --git a/src/strings/ko.json b/src/strings/ko.json index 138a2ee49..33c44334a 100644 --- a/src/strings/ko.json +++ b/src/strings/ko.json @@ -1325,7 +1325,7 @@ "MediaInfoPixelFormat": "픽셀 형식", "MapChannels": "채널 매핑", "LaunchWebAppOnStartupHelp": "서버가 처음 시작되면 웹 브라우저에서 웹 클라이언트를 실행하십시오. 서버 재시작의 경우에는 적용되지 않습니다.", - "Large": "큰", + "Large": "크게", "LanNetworksHelp": "대역폭을 강제로 제한할 때 로컬 네트워크로 간주되는 쉼표로 구분된 IP 주소 및 IP/서브넷 마스크 목록입니다. 지정될 경우 모든 다른 IP 주소는 외부 네트워크로 간주되며 외부 대역폭 제한이 적용됩니다. 공백일 경우 서버의 서브넷만이 로컬 네트워크로 간주됩니다.", "LabelffmpegPathHelp": "ffmpeg 실행 파일 혹은 ffmpeg를 포함하는 폴더 경로입니다.", "LabelXDlnaDocHelp": "urn:schemas-dlna-org:device-1-0 네임스페이스에 포함된 X_DLNADOC 요소의 내용을 결정합니다.", @@ -1430,5 +1430,8 @@ "MessageUnauthorizedUser": "현재 서버에 접속할 권한이 없습니다. 자세한 정보는 서버 관리자에게 문의하십시오.", "HeaderFavoritePlaylists": "즐겨찾는 플레이리스트", "ButtonTogglePlaylist": "플레이리스트", - "ButtonToggleContextMenu": "더보기" + "ButtonToggleContextMenu": "더보기", + "Rate": "평", + "PerfectMatch": "정확히 일치", + "OtherArtist": "다른 아티스트" } diff --git a/src/strings/lt-lt.json b/src/strings/lt-lt.json index c87628316..942861f46 100644 --- a/src/strings/lt-lt.json +++ b/src/strings/lt-lt.json @@ -149,7 +149,7 @@ "Help": "Padėti", "Identify": "Identifikuoti", "Images": "Atvaizdai", - "InstallingPackage": "Diegiama {0}", + "InstallingPackage": "Diegiama {0} (versija {1})", "InstantMix": "Leisti miksą", "ItemCount": "{0} elementų", "Kids": "Vaikams", @@ -538,7 +538,7 @@ "AllLanguages": "Visos kalbos", "AllowMediaConversion": "Leisti medijos konvertavimą", "AllowRemoteAccess": "Leisti nuotolinius prisijungimus prie šio Jellyfin serverio.", - "AnyLanguage": "Bet kokia kalba", + "AnyLanguage": "Bet Kokia Kalba", "Artists": "Atlikėjai", "Audio": "Garsas", "Auto": "Auto", @@ -616,7 +616,7 @@ "AllowMediaConversionHelp": "Leisti arba uždrausti medijos konvertavimą.", "AlwaysPlaySubtitles": "Visada rodyti subtitrus", "AutoBasedOnLanguageSetting": "Auto (pagal kalbos parinktį)", - "BookLibraryHelp": "Garso ir tekstinės knygos yra palaikomos. Peržiūrėkite {0}knygų vardinimo gidą{1}.", + "BookLibraryHelp": "Garso ir tekstinės knygos yra palaikomos. Peržiūrėkite {0} knygų vardinimo gidą {1}.", "ButtonEditOtherUserPreferences": "Keisti šio vartotojo profilį, paveikslą ir asmeninius nustatymus.", "ButtonResetEasyPassword": "Atstatyti pin kodą", "ButtonShuffle": "Sumaišyti", @@ -630,7 +630,7 @@ "Disconnect": "Atsijungti", "DisplayInMyMedia": "Rodyti pradiniame ekrane", "DisplayMissingEpisodesWithinSeasons": "Rodyti sezonuose trūkstamas serijas", - "DisplayModeHelp": "Pasirinkite ekrano tipą, kuriame veikia Jellyfin.", + "DisplayModeHelp": "Pasirinkite sąsajos išdėstymo stilių.", "Down": "Žemyn", "DownloadsValue": "{0} atsisiuntimų", "DrmChannelsNotImported": "Kanalai su DRM nebus įkeliami.", @@ -641,9 +641,9 @@ "EnablePhotos": "Rodyti nuotraukas", "EnablePhotosHelp": "Nuotraukos bus rodomos šalia kitų medijos failų.", "EnableThemeSongs": "Teminės dainos", - "AspectRatio": "Vaizdo santykis", + "AspectRatio": "Vaizdo Santykis", "Ascending": "Didėjančia tvarka", - "AllComplexFormats": "Visi sudėtingi formatai (ASS, SSA, VOBSUB, PGS, SUB/IDX, etc.)", + "AllComplexFormats": "Visi Sudėtingi Formatai (ASS, SSA, VOBSUB, PGS, SUB/IDX, t.t.)", "AllowHWTranscodingHelp": "Leisti imtuvui perkoduoti srautus grojant. Tai gali sumažinti perkodavimus reikalingus serveriui.", "AuthProviderHelp": "Pasirinkite autentifikavimo paslaugos teikėją šio vartotojo slaptažodžio autentifikavimui.", "AddItemToCollectionHelp": "Pridėkite įrašus į kolekciją. Suraskite įrašą, bei naudokite jo meniu, kad pridėti į kolekciją.", @@ -688,8 +688,8 @@ "HeaderDirectPlayProfileHelp": "Pridėti tiesioginio leidimo profilius, kad nurodyti kokius formatus įrenginys palaiko be perkodavimo.", "CopyStreamURLSuccess": "Srauto nuoroda nukopijuota.", "DefaultMetadataLangaugeDescription": "Tai yra numatytieji nustatymai. Jie gali būti keičiami kiekvienai bibliotekai atskirai.", - "AllowOnTheFlySubtitleExtractionHelp": "Įterptus subtitrus iš vaizdo įrašo galima išgauti ir klientams pateikti paprastu tekstu, kad būtų išvengta vaizdo įrašų perkodavimo. Kai kuriose sistemose tai gali užtrukti ilgą laiką ir gali sustabdyti vaizdo atkūrimą subtitrų išgavimo metu. Išjunkite tai, kad subtitrus būtu įrašomi į vaizdo įrašą naudojant perkodavimą, jei jie yra nepalaikomi kliento įrenginio.", - "BurnSubtitlesHelp": "Nustato, ar konvertuojant vaizdo įrašą serveris turėtų įrašyti subtitrus, atsižvelgiant į subtitrų formatą. Subtitrų įrašymo išvengimas pagerina serverio našumą. Pasirinkite „Auto“, jei norite įrašyti atvaizdais paremtus formatus (VOBSUB, PGS, SUB / IDX ir kt.) Ir tam tikrus ASS / SSA subtitrus.", + "AllowOnTheFlySubtitleExtractionHelp": "Įterptus subtitrus iš vaizdo įrašo galima išgauti ir klientams pateikti paprastu tekstu, kad būtų išvengta vaizdo įrašų perkodavimo. Kai kuriose sistemose tai gali užtrukti ilgą laiką ir gali sustabdyti vaizdo atkūrimą subtitrų išgavimo metu. Išjunkite tai, kad subtitrus būtu įrašomi į vaizdo įrašą naudojant perkodavimą, jei jie yra nepalaikomi kliento įrenginio.", + "BurnSubtitlesHelp": "Nustato, ar perkoduojant vaizdo įrašą serveris turėtų įrašyti subtitrus, atsižvelgiant į subtitrų formatą. Išvengiant subtitrų įrašymo gali pagerinti serverio našumą. Pasirinkite „Auto“, jei norite įrašyti atvaizdais paremtus formatus (VOBSUB, PGS, SUB, IDX, ...) Ir tam tikrus ASS arba SSA subtitrus.", "DefaultSubtitlesHelp": "Subtitrai įkeliami atsižvelgiant į numatytuosius ir priverstinius žymenis įterptuose metaduomenyse. Kalbos nustatymai įvertinami, kai yra keletas variantų.", "HeaderDeleteProvider": "Ištrinti paslaugos teikėją", "HeaderDeleteTaskTrigger": "Ištrinti užduoties trigerį", @@ -812,7 +812,7 @@ "HeaderTranscodingProfileHelp": "Pridėti perkodavimo profilius, kad nurodyti, kokius formatus reikia naudoti, kai reikia perkoduoti.", "HeaderTunerDevices": "Tiunerio prietaisai", "HeaderTuners": "Tiuneris", - "HeaderTypeImageFetchers": "{0} atvaizdų parsiuntėjai", + "HeaderTypeImageFetchers": "{0} atvaizdų persiuntėjai", "HeaderTypeText": "Įvesti tekstą", "HeaderUpcomingOnTV": "Laukiama per TV", "HeaderUploadImage": "Įkelti atvaizdą", @@ -927,7 +927,7 @@ "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ą į Automatinis.", + "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", "HeaderAlert": "Perspėjimas", @@ -1003,5 +1003,17 @@ "HeaderSelectMetadataPath": "Metaduomenų kelio išrinkimas", "HeaderSelectMetadataPathHelp": "Suraskite arba įrašykite kelią metaduomenų saugojimui. Aplankalas turi būti su rašymo teise.", "HeaderSelectPath": "Išrinkti kelią", - "HeaderSelectServer": "Išrinkti serverį" + "HeaderSelectServer": "Išrinkti serverį", + "LabelCorruptedFrames": "Sugadinti kadrai:", + "HeaderNavigation": "Navigacija", + "HeaderFavoritePlaylists": "Mėgstami Grojaraščiai", + "ApiKeysCaption": "Įjungtų API raktų sąrašas", + "Episode": "Episodas", + "CopyStreamURLError": "Klaida kopijuojant URL.", + "ClientSettings": "Kliento Nustatymai", + "ButtonTogglePlaylist": "Grojaraštis", + "ButtonToggleContextMenu": "Daugiau", + "ButtonSplit": "Skirstyti", + "AskAdminToCreateLibrary": "Prašyti administratoriaus, kad sukurtų mediateka.", + "Album": "Albumas" } diff --git a/src/strings/lv.json b/src/strings/lv.json index 8c19b23ad..6c1086333 100644 --- a/src/strings/lv.json +++ b/src/strings/lv.json @@ -16,7 +16,7 @@ "MinutesAfter": "minūtes pēc", "MetadataManager": "Metadatu Pārvaldnieks", "Metadata": "Metadati", - "MessageYouHaveVersionInstalled": "", + "MessageYouHaveVersionInstalled": "Jums pašlaik ir uzstādīta versija {0}.", "MessageUnableToConnectToServer": "Mēs pašlaik nevaram sazināties ar izvēlēto serveri. Pārliecinies ka tas strādā, un mēģini vēlreiz.", "MessageTheFollowingLocationWillBeRemovedFromLibrary": "Sekojošie multvides ceļi tiks noņemti no tavas bibliotēkas:", "MessageSettingsSaved": "Iestatījumi saglabāti.", @@ -239,7 +239,7 @@ "Kids": "Bērni", "Items": "Vienumi", "ItemCount": "{0} vienumi", - "InstallingPackage": "Instalē {0}", + "InstallingPackage": "Instalē {0} (versija {1})", "Images": "Attēli", "Identify": "Identificēt", "Horizontal": "Horizontāls", @@ -455,7 +455,7 @@ "DrmChannelsNotImported": "Kanāli ar DRM netiks importēti.", "DownloadsValue": "{0} lejupielādes", "Download": "Lejupielādēt", - "DisplayModeHelp": "Izvēlies ekrāna veidu, uz kura tu izmanto Jellyfin.", + "DisplayModeHelp": "Izvēlies izkārtojuma veidu, kuru tu gribi priekš šī interfeisa.", "DoNotRecord": "Neierakstīt", "DisplayInOtherHomeScreenSections": "Rādīt mājas ekrāna sadaļās kā jaunākā multvide un turpini skatīties", "DisplayInMyMedia": "Rādīt mājas ekrānā", @@ -605,8 +605,8 @@ "Art": "Māksla", "AroundTime": "Ap {0}", "Anytime": "Jebkad", - "AnyLanguage": "Jebkura valoda", - "AlwaysPlaySubtitles": "Vienmēr rādīt subtitrus", + "AnyLanguage": "Jebkura Valoda", + "AlwaysPlaySubtitles": "Vienmēr Rādīt", "AllowedRemoteAddressesHelp": "Ar komatiem atdalīts IP adrešu vai IP/tīkla masku saraksts, kas norāda uz tīkliem, kas var pieslēgties attālināti. Ja atstāts tukšs, visas attālinātās adreses tiks atļautas.", "AllowRemoteAccessHelp": "Ja atķeksēts, visi attālinātie savienojumi tiks bloķēti.", "AllowRemoteAccess": "Atļaut attālinātus savienojumus šim Jellyfin Serverim.", @@ -615,7 +615,7 @@ "AllLibraries": "Visas bibliotēkas", "AllLanguages": "Visas valodas", "AllEpisodes": "Visas epizodes", - "AllComplexFormats": "Visi sarezģītie formāti (ASS, SSA, VOBSUB, PGS, SUB/IDX, utt.)", + "AllComplexFormats": "Visi Sarežģītie formāti (ASS, SSA, VOBSUB, PGS, SUB, IDX, …)", "AllChannels": "Visi kanāli", "All": "Viss", "Alerts": "Paziņojumi", @@ -951,8 +951,8 @@ "HeaderCustomDlnaProfiles": "Pielāgoti Profili", "HeaderConfirmProfileDeletion": "Apstiprināt Profila Dzēšanu", "HeaderChapterImages": "Nodaļu Attēli", - "HeaderCastCrew": "Lomas/Apkalpe", - "HeaderCastAndCrew": "Lomas/Apkalpe", + "HeaderCastCrew": "Lomas & Apkalpe", + "HeaderCastAndCrew": "Lomas un Apkalpe", "HeaderAppearsOn": "Redzams", "FFmpegSavePathNotFound": "Mēs nespējām atrast FFmpeg norādītajā ceļā. FFprobe arī ir vajadzīgs, un tam ir jāatrodas tajā pašā mapē. Šīs komponentes parasti tiek apvienotas vienā un tajā pašā lejupielādē. Lūdzu pārbaudiet ceļu un mēģiniet vēlreiz.", "HeaderAdditionalParts": "Papildus Ceļi", @@ -1001,7 +1001,7 @@ "ButtonArrowLeft": "Kreisi", "ButtonArrowDown": "Lejup", "ButtonAddScheduledTaskTrigger": "Pievienot Trigeru", - "BookLibraryHelp": "Audio un teksta grāmatas tiek atbalstītas. Pārskati {0}grāmatu nosaukumu instrukciju{1}.", + "BookLibraryHelp": "Audio un teksta grāmatas tiek atbalstītas. Pārskati {0} grāmatu nosaukumu instrukciju {1}.", "Blacklist": "Melnais saraksts", "AuthProviderHelp": "Izvēlies Autentifikācijas Nodrošinājumu, kas tiks izmantots lai autentificētu šī lietotāja paroli.", "AspectRatio": "Attēla Proporcijas", @@ -1081,5 +1081,158 @@ "OptionAllowBrowsingLiveTv": "Atļaut Tiešraides TV piekļuvi", "MediaInfoForced": "Piespiests", "LabelPublicHttpPortHelp": "Publiskai porta numurs, kas tiks kartēts uz vietējo HTTP portu.", - "LabelOptionalNetworkPath": "(Neobligāts) Koplietota tīkla mape:" + "LabelOptionalNetworkPath": "(Neobligāts) Koplietota tīkla mape:", + "LabelLibraryPageSizeHelp": "Uzstāda vienumu daudzumu, ko rādīt bibliotēkas lapā. Uzstādi uz 0 lai atspējotu lapošanu.", + "LabelLibraryPageSize": "Bibliotēkas lapu lielums:", + "LabelKodiMetadataUserHelp": "Saglabāt skatīšanās datus uz NFO datnēm, lai tos varētu izmantot citas lietotnes.", + "LabelKodiMetadataDateFormatHelp": "Visi datumi iekš NFO datnēm tiks parsēti ar šo formātu.", + "LabelInNetworkSignInWithEasyPasswordHelp": "Izmanto vieglo pin kodu lai piekļūtu klientiem savā vietējā tīklā. Tava parastā parole būs vajadzīga ārpus mājām. Ja pin kods ir atstāts tukšs, tev nevajadzēs paroli savā vietējā mājas tīklā.", + "LabelInNetworkSignInWithEasyPassword": "Iespējot iekštīkla piekļuvi ar manu vieglo pin kodu", + "LabelImportOnlyFavoriteChannels": "Ierobežot uz kanāliem, kas atzīmēti kā favorīti", + "LabelGroupMoviesIntoCollectionsHelp": "Kad tiks rādīti filmu saraksti, filmas kas pieder pie kolekcijas tiks attēlotas kā viens grupēts vienums.", + "LabelServerNameHelp": "Šis vārds tiks izmantots lai identificētu tavu serveri un noklusējumā ir servera datora vārds.", + "LabelExtractChaptersDuringLibraryScan": "Izvilkt sadaļu attēlus bibliotēkas skenēšanas laikā", + "LabelBaseUrlHelp": "Šeit tu vari pievienot pielāgotas apakš-mapes lai piekļūtu serverim no unikālāka URL.", + "LabelBaseUrl": "Pamata URL:", + "LabelEnableSingleImageInDidlLimitHelp": "Dažas ierīces pareizi neatskaņos ja vairāki attēli ir iegulti iekš Didl.", + "LabelEnableSingleImageInDidlLimit": "Ierobežot uz vienu iegulto attēlu", + "LabelEnableDlnaClientDiscoveryIntervalHelp": "Nosaka laiku sekundēs starp Jellyfin veiktajiem SSDP meklējumiem.", + "LabelEmbedAlbumArtDidlHelp": "Dažas ierīces labprātāk izmanto šo metodi lai saņemtu albumu vākus. Citas var neatskaņot ar šo opciju ieslēgtu.", + "LabelDroppedFrames": "Nomestie kadri:", + "LabelDownMixAudioScaleHelp": "Pastiprināt audio lejupmiksēšanas laikā. Vērtība viens paturēs oriģinālo skaļumu.", + "LabelDownMixAudioScale": "Audio pastiprinājums lejupmiksējot:", + "LabelDisplayMissingEpisodesWithinSeasons": "Rādīt trūkstošās epizodes sezonās", + "LabelDateAddedBehaviorHelp": "Ja atrodas metadatu vērtība, tā vienmēr tiks izmantota pirms jebkuras no šīm opcijām.", + "LabelDashboardTheme": "Servera vadības paneļa tēma:", + "LabelCustomDeviceDisplayNameHelp": "Ievadi pielāgotu displeja vārdu vai atstāj tukšu lai izmantotu ierīces noteikto.", + "LabelCachePathHelp": "Nosaki pielāgotu atrašanās vietu priekš keša datnēm kā attēliem. Atstāj tukšu lai izmantotu servera noklusējumu.", + "LabelAllowedRemoteAddressesMode": "Attālās IP adreses filtra režīms:", + "LabelAllowedRemoteAddresses": "Attālās IP adreses filtrs:", + "LabelAlbumArtPN": "Albumu vāku PN:", + "LabelAirsBeforeSeason": "Tiešraidē pirms sezonas:", + "LabelAirsBeforeEpisode": "Tiešraidē pirms epizodes:", + "LabelAirsAfterSeason": "Tiešraidē pēc sezonas:", + "HeaderSubtitleProfilesHelp": "Subtitru profili apraksta ierīces atbalstītos subtitru formātus.", + "HeaderPendingInvitations": "Gaidošie Uzaicinājumi", + "HeaderKeepSeries": "Paturēt Sēriju", + "HeaderFavoritePlaylists": "Atskaņošanas Sarakstu Favorīti", + "ApiKeysCaption": "Saraksts ar pašlaik iespējotajām API atslēgām", + "EncoderPresetHelp": "Izvēlies ātrāku vērtību lai uzlabotu veiktspēju, vai lēnāku vērtību lai uzlabotu kvalitāti.", + "FetchingData": "Iegūst papildu datus", + "ErrorDeletingItem": "Notika kļūda dzēšot vienumu no Jellyfin Servera. Lūdzu pārliecinies vai Jellyfin Server ir rakstoša piekļuve pie satura mapes un mēģini vēlreiz.", + "ErrorAddingTunerDevice": "Kļūda pievienojot tūnera ierīci. Lūdzu pārliecinies ka tā ir pieejama un mēģini vēlreiz.", + "ErrorAddingMediaPathToVirtualFolder": "Notika kļūda pievienojot satura ceļu. Lūdzu pārliecinies ka ceļš ir derīgs un ka Jellyfin Servera procesam ir piekļuve tai vietai.", + "Episode": "Epizode", + "DeviceAccessHelp": "Tas attiecas tikai uz ierīcēm, kas var tikt unikāli identificētas un neaizliegs piekļuvi no pārlūka. Filtrējot lietotāju ierīču piekļuvi neatļaus tiem izmantot jaunas ierīces, līdz tās nav tikušas šeit atļautas.", + "DeinterlaceMethodHelp": "Izvēlies rindpārlēces sakļaušanas (deinterlacing) metodi kad tiek trans-kodēts rindpārlēces izvērsts (interlaced) saturs.", + "CustomDlnaProfilesHelp": "Izveido pielāgotu profilu priekš jaunas ierīces, vai pārraksti sistēmas profilu.", + "ColorTransfer": "Krāsu pārsūtīšana", + "ClientSettings": "Klientu Iestatījumi", + "ButtonTogglePlaylist": "Atskaņošanas Saraksts", + "ButtonToggleContextMenu": "Vairāk", + "BurnSubtitlesHelp": "Nosaka, vai serverim ir jāiededzina subtitri video trans-kodēšanas laikā. To nedarot tiks stipri palielināta veiktspēja. Izvēlies Auto lai iededzinātu uz attēliem bāzētus formātus (VOBSUB, PGS, SUB, IDX, …) un noteiktus ASS vai SSA subtitrus.", + "Artist": "Izpildītājs", + "AllowOnTheFlySubtitleExtractionHelp": "Iegultie subtitri var tikt izvilkto no video un nogādāti klientiem kā parasts teksts, lai nevajadzētu veikt lieku video trans kodēšanu. Uz dažām sistēmām tas var aizņemt ilgu laiku un likt video atskaņošanai uzkārties izvilkšanas procesa laikā. Atspējo šo lai iegultos subtitrus iededzinātu video trans kodēšanas veidā, kad tos noklusēti neatbalsta klienta ierīce.", + "AlbumArtist": "Albuma Izpildītājs", + "Album": "Albums", + "PleaseRestartServerName": "Lūdzu atsāknē savu Jellyfin Serveri - {0}.", + "PlayNextEpisodeAutomatically": "Atskaņot nākamo epizodi automātiski", + "PlayFromBeginning": "Atskaņot no sākuma", + "PlayCount": "Atskaņošanas reizes", + "PlaybackData": "Atskaņošanas Dati", + "Person": "Persona", + "PerfectMatch": "Ideāla saderība", + "PasswordResetHeader": "Atiestatīt Paroli", + "PasswordResetConfirmation": "Vai tu tiešām gribi atiestatīt paroli?", + "PasswordResetComplete": "Parole ir atiestatīta.", + "PasswordMatchError": "Parolei un paroles pārbaudei ir jāsakrīt.", + "ParentalRating": "Vecāku vērtējums", + "PackageInstallFailed": "{0} (versija {1}) instalācija neizdevās.", + "PackageInstallCompleted": "{0} (versija {1}) instalācija pabeigta.", + "PackageInstallCancelled": "{0} (versija {1}) instalācija atcelta.", + "Overview": "Pārskats", + "OtherArtist": "Cits izpildītājs", + "OriginalAirDateValue": "Oriģinālais tiešraides datums: {0}", + "OptionWeekly": "Iknedēļu", + "OptionWeekends": "Nedēļas nogalēs", + "OptionWeekdays": "Darba dienās", + "OptionWednesday": "Trešdiena", + "OptionWakeFromSleep": "Modināt no miega", + "OptionUnplayed": "Neatskaņots", + "OptionTuesday": "Otrdiena", + "OptionTrackName": "Celiņa Nosaukums", + "OptionThumb": "Sīktēls", + "OptionThursday": "Ceturtdiena", + "OptionSunday": "Svētdiena", + "OptionSaveMetadataAsHidden": "Saglabāt metadatus un attēlus kā paslēptas datnes", + "OptionSaturday": "Sestdiena", + "OptionRequirePerfectSubtitleMatch": "Lejupielādēt tikai subtitrus, kas perfekti sakrīt ar manām video datnēm", + "OptionRegex": "Regex", + "OptionProtocolHls": "HTTP Tiešraides Straumes", + "OptionProfilePhoto": "Attēls", + "OptionPremiereDate": "Pirmizrādes Datums", + "OptionPoster": "Plakāts", + "OptionPlayCount": "Atskaņošanas Skaits", + "OptionOnAppStartup": "Lietotnes sāknēšanā", + "OptionNameSort": "Nosaukums", + "OptionMissingEpisode": "Trūkstošās Epizodes", + "OptionMax": "Maksimums", + "OptionLoginAttemptsBeforeLockoutHelp": "Vērtība nulle nozīmē noklusējuma trīs mēģinājumu priekš lietotājiem un piecu priekš administratoriem izmantošanu. Uzstādot uz -1 atspējos funkciju.", + "OptionLoginAttemptsBeforeLockout": "Nosaka, cik daudz nepareizi piekļuves mēģinājumi var notikt pirms notiek bloķēšana.", + "OptionImdbRating": "IMDb Vērtējums", + "OptionIgnoreTranscodeByteRangeRequestsHelp": "Ja iespējots, šie pieprasījumi tiks veikti bet ignorēs baitu diapazona hederu.", + "OptionIgnoreTranscodeByteRangeRequests": "Ignorēt trans-kodēšanas baitu diapazona pieprasījumus", + "OptionHomeVideos": "Attēli", + "OptionHlsSegmentedSubtitles": "HLS segmentēti subtitri", + "OptionHideUserFromLoginHelp": "Noderīgs lai paslēptu privātus vai paslēptus administratora kontus. Šim lietotājam būs jāieiet manuāli, ievadot savu lietotājvārdu un paroli.", + "OptionHideUser": "Paslēpt šo lietotāju no piekļuves ekrāniem", + "OptionHasThemeVideo": "Tēmu Video", + "OptionExternallyDownloaded": "Ārējā lejupielāde", + "OptionEstimateContentLength": "Novērtēt satura ilgumu trans-kodēšanas laikā", + "OptionEquals": "Vienāds ar", + "OptionEnableM2tsModeHelp": "Iespējo m2ts režīmu iekodējot uz mpegts.", + "OptionEnableM2tsMode": "Iespējot M2ts režīmu", + "OptionEnableForAllTuners": "Iespējot visām tūnera ierīcēm", + "OptionEnableExternalContentInSuggestionsHelp": "Atļaut interneta treilerus un tiešraides TV programmām tikt iekļautām ieteiktajā saturā.", + "OptionEnableExternalContentInSuggestions": "Iespējot ārējo saturu iekš ieteikumiem", + "OptionEnableAccessToAllChannels": "Iespējot piekļuvi visiem kanāliem", + "OptionEnableAccessFromAllDevices": "Iespējot piekļuvi no visām ierīcēm", + "OptionEmbedSubtitles": "Ievietot iekš konteinera", + "OptionDownloadThumbImage": "Sīktēls", + "OptionDownloadPrimaryImage": "Galvenais", + "OptionDownloadImagesInAdvanceHelp": "Noklusējumā, lielākā daļa attēlu tiek lejupielādēti kad tie ir pieprasīti Jellyfin lietotnē. Iespējo šo opciju lai iepriekšēji lejupielādētu visus attēlus, kad jauns saturs tiek importēts. Tas var radīt ievērojami ilgākus bibliotēkas skenējumus.", + "OptionDownloadImagesInAdvance": "Lejupielādēt attēlus iepriekš", + "OptionDownloadBackImage": "Aizmugure", + "OptionDownloadArtImage": "Māksla", + "OptionDisableUserHelp": "Ja atspējots, serveris neatļaus nekādus savienojumus no šī lietotāja. Esošie savienojumi tiks pēkšņi apturēti.", + "OptionDisableUser": "Atspējot šo lietotāju", + "OptionDatePlayed": "Atskaņošanas Datums", + "OptionDateAddedImportTime": "Izmantot datumu, kad tika ieskanēts bibliotēkā", + "OptionDateAddedFileTime": "Izmantot datņu izveides datumu", + "OptionDateAdded": "Pievienošanas Datums", + "OptionCriticRating": "Kritiķu Vēŗtējums", + "OptionCommunityRating": "Kopienas Vērtējums", + "OptionCaptionInfoExSamsung": "CaptionInfoEx (Samsung)", + "OptionBlockLiveTvChannels": "Tiešraides TV Kanāli", + "OptionAllowVideoPlaybackTranscoding": "Atļaut video atskaņošanu, kas prasa trans-kodēšanu", + "OptionAllowVideoPlaybackRemuxing": "Atļaut video atskaņošanu, kas prasa pārveidošanu bez pārkodēšanas", + "OptionAllowUserToManageServer": "Atļaut šim lietotājam pārvaldīt serveri", + "OptionAllowSyncTranscoding": "Atļaut satura lejupielādi un sinhronizēšanu, kas prasa trans-kodēšanu", + "OptionAllowRemoteSharedDevicesHelp": "DLNA ierīces tiek uzskatītas kā koplietotas līdz lietotājs sāk tās vadīt.", + "OptionAllowRemoteSharedDevices": "Atļaut koplietotu ierīču attālinātu vadību", + "OptionAllowMediaPlayback": "Atļaut satura atskaņošanu", + "OptionAllowContentDownloading": "Atļaut satura lejupielādi un sinhronizāciju", + "OptionForceRemoteSourceTranscoding": "Piespiest trans-kodēšanu no attāliem satura avotiem (kā Tiešraides TV)", + "OptionAllowAudioPlaybackTranscoding": "Atļaut audio atskaņošanu, kas prasa trans-kodēšanu", + "OnlyForcedSubtitlesHelp": "Tikai subtitri, kas atzīmēti kā piespiedu tiks ielādēti.", + "OnlyForcedSubtitles": "Tikai Piespiedu", + "MoreUsersCanBeAddedLater": "Papildus lietotāji var tikt pievienoti vēlāk no vadības paneļa.", + "MessagePluginConfigurationRequiresLocalAccess": "Lai konfigurētu šo paplašinājumu lūdzu tieši ieej savā lokālajā serverī.", + "MessagePleaseEnsureInternetMetadata": "Lūdzu pārliecinies vai metadatu lejupielāde no interneta ir iespējota.", + "MessageUnauthorizedUser": "Jūs neesat autorizēti lai piekļūtu serverim šajā brīdī. Lūdzu sazinieties ar savu servera administratoru priekš papildus informācijas.", + "MessageInstallPluginFromApp": "Šis paplašinājums ir jāuzstāda no lietotnes, kurā jūs to vēlaties izmantot.", + "LabelEmbedAlbumArtDidl": "Ievietot albumu vākus iekš Didl", + "EnableFastImageFadeIn": "Ātra attēlu ieplūšana", + "EnableFastImageFadeInHelp": "Iespējot ātrāku ieplūšanas animāciju priekš ielādētiem attēliem", + "LabelSelectFolderGroups": "Automātiski grupēt saturu no sekojošām datnēm skatos kā Filmas, Mūzika un TV:" } diff --git a/src/strings/nl.json b/src/strings/nl.json index a3c3a84f1..0b67a184d 100644 --- a/src/strings/nl.json +++ b/src/strings/nl.json @@ -1282,8 +1282,6 @@ "HeaderHttpHeaders": "HTTP Headers", "HeaderImageLogo": "Logo", "HeaderMenu": "Menu", - "HeaderOffline": "Offline", - "HeaderOfflineDownloads": "Offline Media", "HeaderResetTuner": "Ontvanger resetten", "HeaderReviews": "Beoordelingen", "HeaderStatus": "Status", diff --git a/src/strings/pl.json b/src/strings/pl.json index 431ea3feb..1cea825bf 100644 --- a/src/strings/pl.json +++ b/src/strings/pl.json @@ -54,7 +54,7 @@ "BoxRear": "Pudełko (tył)", "Browse": "Przeglądaj", "BrowsePluginCatalogMessage": "Przejrzyj nasz katalog wtyczek żeby zobaczyć dostępne wtyczki.", - "BurnSubtitlesHelp": "Określa czy serwer powinien wypalać napisy podczas konwersji wideo, w zależności od formatu napisów. Unikanie wypalania napisów poprawia wydajność serwera. Wybierz Automatycznie, w celu wypalania zarówno napisów w formatach graficznych (np. VOBSUB, PGS, SUB/IDX, itp.), jak i pewnych napisów ASS/SSA.", + "BurnSubtitlesHelp": "Określa czy serwer powinien wypalać napisy podczas konwersji wideo, w zależności od formatu napisów. Unikanie wypalania napisów znacząco poprawia wydajność serwera. Wybierz Automatycznie, w celu wypalania zarówno napisów w formatach graficznych (np. VOBSUB, PGS, SUB/IDX), jak i pewnych napisów ASS lub SSA.", "ButtonAdd": "Dodaj", "ButtonAddMediaLibrary": "Dodaj media do biblioteki", "ButtonAddScheduledTaskTrigger": "Dodaj wyzwalacz", @@ -190,7 +190,7 @@ "DisplayInOtherHomeScreenSections": "Wyświetlaj na ekranie startowym sekcje Ostatnio dodane i Kontynuuj odtwarzanie", "DisplayMissingEpisodesWithinSeasons": "Wyświetlaj w sezonach brakujące odcinki", "DisplayMissingEpisodesWithinSeasonsHelp": "Ta opcja musi zostać dodatkowo aktywowana w bibliotece seriali, w konfiguracji serwera.", - "DisplayModeHelp": "Określa typ urządzenia, na którym uruchomiono Jellyfin.", + "DisplayModeHelp": "Wybierz styl układu interfejsu.", "DoNotRecord": "Nie nagrywaj", "Down": "W dół", "Download": "Pobierz", @@ -490,7 +490,7 @@ "Images": "Obrazy", "ImportFavoriteChannelsHelp": "Jeśli aktywne, tylko kanały oznaczone jako ulubione na tunerze, będą importowane.", "ImportMissingEpisodesHelp": "W przypadku aktywacji tej opcji, informacje o brakujących odcinkach zostaną zaimportowane do bazy Jellyfin i będą wyświetlane na listach sezonów i seriali. Może to jednak znacznie wydłużyć czas skanowania biblioteki.", - "InstallingPackage": "Instalowanie {0}", + "InstallingPackage": "Instalowanie {0} (wersja {1})", "InstantMix": "Szybki remiks", "ItemCount": "{0} pozycje", "Items": "Pozycje", @@ -953,16 +953,16 @@ "NoNextUpItemsMessage": "Nie znaleziono niczego. Zacznij oglądać swoje seriale!", "NoPluginConfigurationMessage": "Ta wtyczka nie ma żadnych ustawień.", "NoSubtitleSearchResultsFound": "Brak wyników wyszukiwania.", - "NoSubtitles": "Brak napisów", + "NoSubtitles": "Brak", "NoSubtitlesHelp": "Domyślnie napisy nie będą wczytywane. Można je ciągle włączyć ręcznie podczas odtwarzania.", "None": "Brak", "Normal": "Normalny", "NumLocationsValue": "{0} foldery", "Off": "Wyłączone", "OneChannel": "Jeden kanał", - "OnlyForcedSubtitles": "Tylko wymuszone napisy", + "OnlyForcedSubtitles": "Tylko wymuszone", "OnlyForcedSubtitlesHelp": "Tylko napisy oznaczone jako wymuszone będą wczytywane.", - "OnlyImageFormats": "Tylko formaty graficzne (VOBSUB, PGS, SUB, itp.)", + "OnlyImageFormats": "Tylko Formaty Graficzne (VOBSUB, PGS, SUB)", "OptionAdminUsers": "Administratorzy", "OptionAlbumArtist": "Wykonawca albumu", "OptionAllUsers": "Wszyscy użytkownicy", @@ -1100,7 +1100,7 @@ "OptionWeekly": "Cotygodniowo", "OriginalAirDateValue": "Data pierwszej emisji: {0}", "Overview": "Opis", - "PackageInstallCancelled": "Instalacja {0} anulowana.", + "PackageInstallCancelled": "Instalacja {0} (wersja {1}) anulowana.", "PackageInstallCompleted": "Instalacja {0} zakończona.", "PackageInstallFailed": "Instalacja {0} nieudana.", "ParentalRating": "Kategoria wiekowa", @@ -1470,5 +1470,18 @@ "EnableFastImageFadeIn": "Szybkie pojawianie się obrazów", "Artist": "Artysta", "AlbumArtist": "Album artysty", - "Album": "Album" + "Album": "Album", + "Person": "Osoba", + "OtherArtist": "Inny artysta", + "Movie": "Film", + "MessageUnauthorizedUser": "Nie masz dostępu do zasobów serwera. Skontaktuj się z administratorem sieci, aby uzyskać więcej informacji.", + "LabelLibraryPageSizeHelp": "Ustaw liczbę pozycji pokazywanych na stronie biblioteki. Ustaw 0, aby wyłączyć podział na strony.", + "LabelLibraryPageSize": "Rozmiar strony biblioteki:", + "LabelDeinterlaceMethod": "Metoda usuwania przeplotu:", + "HeaderFavoritePlaylists": "Ulubione Playlisty", + "Episode": "Odcinek", + "DeinterlaceMethodHelp": "Wybierz metodę usuwania przeplotu używaną podczas transkodowania.", + "ClientSettings": "Ustawienia klienta", + "ButtonTogglePlaylist": "Playlista", + "ButtonToggleContextMenu": "Więcej" } diff --git a/src/strings/pr.json b/src/strings/pr.json new file mode 100644 index 000000000..91962aaa4 --- /dev/null +++ b/src/strings/pr.json @@ -0,0 +1,23 @@ +{ + "TabLogs": "Crow's Nest", + "HeaderAdmin": "Cap'n", + "WelcomeToProject": "Ahoy, matey! This be Jellyfin!", + "ButtonOk": "Aye", + "DisplayInMyMedia": "Show on the Poop Deck", + "HeaderCastAndCrew": "Mateys", + "HeaderMusicQuality": "Sea Shanty Strength", + "HeaderLatestMusic": "Latest Sea Shanties", + "FolderTypeMusic": "Sea Shanties", + "OptionBlockBooks": "Tall Tales", + "HeaderFavoriteBooks": "Fav'rit Tales", + "HeaderBooks": "Tall Tales", + "HeaderAudioBooks": "Spoken Tales", + "FolderTypeBooks": "Tall Tales", + "Books": "Tall Tales", + "LabelHomeNetworkQuality": "Sail strength:", + "Home": "Poop Deck", + "HeaderHome": "Poop Deck", + "DisplayInOtherHomeScreenSections": "Show on Poop Deck such as latest booty and continue plundering", + "ButtonHome": "Poop deck", + "HeaderCastCrew": "Mateys" +} diff --git a/src/strings/pt-br.json b/src/strings/pt-br.json index 16b6e0313..ff89d0030 100644 --- a/src/strings/pt-br.json +++ b/src/strings/pt-br.json @@ -182,7 +182,7 @@ "DisplayInOtherHomeScreenSections": "Exibir nas seções da tela inicial como mídia recente e continuar assistindo", "DisplayMissingEpisodesWithinSeasons": "Exibir episódios em falta nas temporadas", "DisplayMissingEpisodesWithinSeasonsHelp": "Isto também deve ser ativado para as bibliotecas de TV na configuração do servidor.", - "DisplayModeHelp": "Seleciona o tipo de tela para executar o Jellyfin.", + "DisplayModeHelp": "Selecione o estilo de layout que deseje para a interface.", "DoNotRecord": "Não gravar", "Down": "Baixo", "DrmChannelsNotImported": "Canais com DRM não serão importados.", @@ -566,7 +566,7 @@ "LabelEmbedAlbumArtDidl": "Arte do álbum incorporada no Didl", "LabelEmbedAlbumArtDidlHelp": "Alguns dispositivos preferem este método para obter a arte do álbum. Outros podem falhar ao reproduzir com esta opção ativada.", "LabelEnableAutomaticPortMap": "Ativar mapeamento automático de portas", - "LabelEnableAutomaticPortMapHelp": "Tentar mapear automaticamente a porta pública para a porta local através de UPnP. Pode não funcionar em alguns modelos de roteadores. As mudanças não serão aplicadas até a reinicialização do servidor.", + "LabelEnableAutomaticPortMapHelp": "Tentar mapear automaticamente a porta pública para a porta local do seu servidor através de UPnP. Pode não funcionar em alguns modelos de roteadores. As mudanças não serão aplicadas até a reinicialização do servidor.", "LabelEnableBlastAliveMessages": "Mensagens ao vivo", "LabelEnableBlastAliveMessagesHelp": "Ative esta função se o servidor não for detectado por outros dispositivos UPnP em sua rede.", "LabelEnableDlnaClientDiscoveryInterval": "Intervalo para descoberta do cliente (segundos)", @@ -626,7 +626,7 @@ "LabelKodiMetadataEnablePathSubstitution": "Ativar substituição de local", "LabelKodiMetadataEnablePathSubstitutionHelp": "Ativa a substituição do local das imagens usando as configurações de substituição de local do servidor.", "LabelKodiMetadataSaveImagePaths": "Salvar o local das imagens dentro dos arquivos nfo", - "LabelKodiMetadataSaveImagePathsHelp": "Isto é recomendado se os nomes dos arquivos de imagem não estão de acordo com as recomendações do Kodi.", + "LabelKodiMetadataSaveImagePathsHelp": "Isto é recomendado se os nomes dos arquivos de imagem não estão de acordo com as exigências do Kodi.", "LabelKodiMetadataUser": "Salvar informações do que o usuário assiste aos NFO's para:", "LabelKodiMetadataUserHelp": "Salva os dados para arquivos NFO para que outras aplicações possam usar.", "LabelLanNetworks": "Redes LAN:", @@ -688,7 +688,7 @@ "LabelNumberOfGuideDays": "Número de dias de dados do guia para baixar:", "LabelNumberOfGuideDaysHelp": "Baixar mais dias do guia da TV permite agendar com maior antecedência e visualizar mais listas, mas também levará mais tempo para baixar. Se selecionar Automático, será escolhido o período baseado no número de canais.", "LabelOptionalNetworkPath": "(Opcional) Pasta compartilhada em rede:", - "LabelOptionalNetworkPathHelp": "Se esta pasta estiver compartilhada em sua rede, informar o caminho do compartilhamento permitirá que os apps Jellyfin em outros dispositivos acessem arquivos de mídia diretamente.", + "LabelOptionalNetworkPathHelp": "Se esta pasta estiver compartilhada em sua rede, informar o caminho do compartilhamento permitirá que os apps Jellyfin em outros dispositivos acessem arquivos de mídia diretamente. Por exemplo, {0} ou {1}.", "LabelOriginalAspectRatio": "Proporção original da tela:", "LabelOriginalTitle": "Título original:", "LabelOverview": "Sinopse:", @@ -1021,7 +1021,7 @@ "OptionMissingEpisode": "Episódios em Falta", "OptionMonday": "Segunda-feira", "OptionNameSort": "Nome", - "OptionNew": "Novo...", + "OptionNew": "Novo…", "OptionNone": "Nenhum", "OptionOnAppStartup": "Ao iniciar a aplicação", "OptionOnInterval": "Em um intervalo", @@ -1343,11 +1343,11 @@ "OptionAuto": "Automático", "AuthProviderHelp": "Seleciona um provedor de autenticação que será usado para autenticar a senha do usuário.", "HeaderFavoriteMovies": "Filmes Favoritos", - "HeaderFavoriteShows": "Séries Favoritas", - "HeaderFavoriteEpisodes": "Episódios Favoritos", + "HeaderFavoriteShows": "Séries favoritas", + "HeaderFavoriteEpisodes": "Episódios favoritos", "HeaderFavoriteAlbums": "Álbuns Favoritos", - "HeaderFavoriteArtists": "Artistas Favoritos", - "HeaderFavoriteSongs": "Músicas Favoritas", + "HeaderFavoriteArtists": "Artistas favoritos", + "HeaderFavoriteSongs": "Músicas favoritas", "HeaderFavoriteVideos": "Videos favoritos", "HeaderHome": "Inicio", "HeaderRestartingServer": "Reiniciando servidor", @@ -1434,7 +1434,7 @@ "LabelPlayMethod": "Método de Reprodução:", "LabelPlayer": "Reprodutor:", "LabelFolder": "Pasta:", - "LabelBaseUrlHelp": "Você pode adicionar um subdiretório aqui para acessar o servidor de uma única URL.", + "LabelBaseUrlHelp": "Você pode adicionar um subdiretório aqui para acessar o servidor de uma única URL. Por exemplo:http://exemplo.com/<baseurl>", "LabelBaseUrl": "URL Base:", "LabelBitrate": "Bitrate:", "LabelAudioSampleRate": "Taxa de amostragem do áudio:", @@ -1503,5 +1503,22 @@ "UnsupportedPlayback": "O Jellyfin não pode descriptografar conteúdo protegido por DRM, porém mesmo assim fará uma tentativa para todo tipo de conteúdo, incluindo títulos protegidos. A imagem de alguns arquivos pode aparecer completamente preta devido a criptografia ou outros recursos não suportados, como títulos interativos.", "MessageUnauthorizedUser": "Você não está autorizado a acessar o servidor neste momento. Por favor, contate o administrador do servidor para mais informações.", "ButtonTogglePlaylist": "Playlist", - "ButtonToggleContextMenu": "Mais" + "ButtonToggleContextMenu": "Mais", + "Filter": "Filtro", + "New": "Novo", + "HeaderFavoritePlaylists": "Playlists Favoritas", + "ApiKeysCaption": "Lista de chaves API ativadas no momento", + "TabDVR": "DVR", + "SaveChanges": "Salvar mudanças", + "LabelRequireHttpsHelp": "Se selecionado, o servidor vai automaticamente redirecionar todas as solicitações HTTP para HTTPS. Isso não terá efeito se o servidor não estiver escutando HTTPS.", + "LabelRequireHttps": "Necessita HTTPS", + "LabelNightly": "Nightly", + "LabelStable": "Estável", + "LabelChromecastVersion": "Versão do Chromecast", + "LabelEnableHttpsHelp": "Habilita que o servidor escute na localização HTTPS configurada. Um certificado válido também deve ser configurado para que isso entre em vigor.", + "LabelEnableHttps": "Habilitar HTTPS", + "HeaderServerAddressSettings": "Configurações da localização do servidor", + "HeaderRemoteAccessSettings": "Configurações de acesso remoto", + "HeaderHttpsSettings": "Configurações HTTPS", + "HeaderDVR": "DVR" } diff --git a/src/strings/pt.json b/src/strings/pt.json index 4bf559134..e05e5bf66 100644 --- a/src/strings/pt.json +++ b/src/strings/pt.json @@ -1079,7 +1079,7 @@ "BoxRear": "Caixa (verso)", "Box": "Caixa", "Books": "Livros", - "BookLibraryHelp": "Livros de texto e áudio são suportados. Consulte o guia de nomenclatura de livros{1}.", + "BookLibraryHelp": "Livros de texto e áudio são suportados. Consulte o guia {0} de nomenclatura de livros {1}.", "Blacklist": "Lista Negra", "BirthPlaceValue": "Local de nascimento: {0}", "BirthLocation": "Local de nascimento", @@ -1394,5 +1394,31 @@ "OptionAutomaticallyGroupSeries": "Mesclar automaticamente séries que estão espalhadas por várias pastas", "OptionAllowSyncTranscoding": "Permitir download e sincronização de mídia que requeiram transcodificação", "OptionForceRemoteSourceTranscoding": "Forçar a transcodificação de fontes de mídia remota (como LiveTV)", - "MessageUnauthorizedUser": "Você não está autorizado a acessar o servidor no momento. Entre em contato com o administrador do servidor para obter mais informações." + "MessageUnauthorizedUser": "Você não está autorizado a acessar o servidor no momento. Entre em contato com o administrador do servidor para obter mais informações.", + "PreferEmbeddedTitlesOverFileNames": "Preferir títulos incorporados sobre nomes de arquivos", + "OptionSaveMetadataAsHiddenHelp": "Alterar isso será aplicado aos novos metadados salvos daqui para frente. Os arquivos de metadados existentes serão atualizados na próxima vez em que forem salvos pelo Jellyfin Server.", + "OptionRegex": "Regex", + "OptionLoginAttemptsBeforeLockoutHelp": "Um valor zero significa herdar o padrão de três tentativas para usuários normais e cinco para administradores. Definir como -1 desativará o recurso.", + "OptionExtractChapterImage": "Ativar extração de imagem de capítulo", + "PreferEmbeddedEpisodeInfosOverFileNames": "Preferir informações de episódios incorporados sobre nomes de arquivos", + "PreferEmbeddedEpisodeInfosOverFileNamesHelp": "Isso usa as informações do episódio dos metadados incorporados, se disponíveis.", + "PreferEmbeddedTitlesOverFileNamesHelp": "Isso determina o título quando nenhum metadado da Internet ou local está disponível.", + "PlaybackErrorNoCompatibleStream": "Este cliente não é compatível com a mídia e o servidor não está enviando um formato de mídia compatível.", + "Person": "Pessoa", + "OtherArtist": "Outro artista", + "OptionThumbCard": "Cartão de polegar", + "OptionPosterCard": "Cartão de pôster", + "LabelRequireHttpsHelp": "Se marcado, o servidor redirecionará automaticamente todas as solicitações por HTTP para HTTPS. Isso não terá efeito se o servidor não estiver escutando HTTPS.", + "LabelRequireHttps": "Requer HTTPS", + "LabelNightly": "À noite", + "LabelChromecastVersion": "Versão do Chromecast", + "LabelEnableHttpsHelp": "Permite que o servidor escute na postagem HTTPS configurada. Um certificado válido também deve ser configurado para que isso entre em vigor.", + "LabelEnableHttps": "Ativar HTTPS", + "HeaderServerAddressSettings": "Configurações de endereço do servidor", + "HeaderRemoteAccessSettings": "Configurações de acesso remoto", + "HeaderHttpsSettings": "Configurações HTTPS", + "HeaderDVR": "DVR", + "ApiKeysCaption": "Lista das chaves de API ativadas no momento", + "ButtonTogglePlaylist": "Lista de leitura", + "ButtonToggleContextMenu": "Mais" } diff --git a/src/strings/ro.json b/src/strings/ro.json index de53cabc6..7aa2f26d3 100644 --- a/src/strings/ro.json +++ b/src/strings/ro.json @@ -249,14 +249,14 @@ "ButtonStop": "Stop", "ButtonSubmit": "Trimite", "Collections": "Colecții", - "AllowRemoteAccess": "Permite conexiuni externe către serverul Jellyfin.", + "AllowRemoteAccess": "Permite conexiuni externe către acest server Jellyfin.", "AllowRemoteAccessHelp": "Dacă este nebifat, toate conexiunile externe vor fi blocate.", "AlwaysPlaySubtitles": "Întotdeauna arată", "AnyLanguage": "Orice Limbă", "Anytime": "Oricând", "Art": "Artă", "AlwaysPlaySubtitlesHelp": "Subtitrările care se potrivesc cu preferințele limbii utilizate vor fi încărcate indiferent de limba audio.", - "AroundTime": "Împrejur {0}", + "AroundTime": "Împrejur", "AsManyAsPossible": "Cât mai mulți cu putință", "Ascending": "Ascendent", "AspectRatio": "Raportul aspectului", @@ -288,7 +288,7 @@ "Director": "Regizor", "AllowOnTheFlySubtitleExtractionHelp": "Subtitrările încorporate pot fi extrase din video și transmise către client în mod text pentru a preveni transcodarea videoului. Pe unele sisteme acest lucru poate dura mult timp și poate cauza oprirea redării video în timpul procesului de extragere. Dezactivează opțiunea pentru a avea subtitrările încorporate incluse în videoul transcodat atunci când nu sunt nativ suportate de către dispozitivul client.", "BirthLocation": "Locul nașterii", - "BurnSubtitlesHelp": "Determină dacă serverul ar trebui să includă subtitrări când face transcodarea video. Evitând acest lucru va îmbunătăți performanța serverului. Selectează Auto pentru includerea formaturilor bazate pe imagini (VOBSUB, PGS, SUB, IDX) și anumitor subtitrări ASS sau SSA.", + "BurnSubtitlesHelp": "Determină dacă serverul ar trebui să includă subtitrări când face transcodarea video. Evitând acest lucru va îmbunătăți performanța serverului. Selectează Auto pentru includerea formaturilor bazate pe imagini (VOBSUB, PGS, SUB, IDX, ...) și anumitor subtitrări ASS sau SSA.", "ButtonPreviousTrack": "Calea anterioară", "ButtonRevoke": "Revocă", "ButtonSettings": "Setări", @@ -304,14 +304,14 @@ "Delete": "Șterge", "DeleteImage": "Șterge Imaginea", "DeleteUserConfirmation": "Sigur doriți să ștergeți acest utilizator?", - "Depressed": "Depresat", + "Depressed": "Deprimat", "Descending": "Descendent", "DetectingDevices": "Detectez dispozitive", "DirectPlaying": "Redare directă", "DirectStreamHelp2": "Transmiterea directă a unui fișier utilizează foarte puțină putere de procesare fără pierderi în calitatea video.", "DirectStreaming": "Transmitere directă", "Artists": "Artiști", - "BookLibraryHelp": "Cărți audio și text sunt suportate. Verifică {0}ghidul numirii cărților{1}.", + "BookLibraryHelp": "Cărți audio și text sunt suportate. Verifică {0} ghidul numirii cărților{1}.", "ButtonAddImage": "Adaugă Imagine", "ButtonArrowUp": "Sus", "ButtonAudioTracks": "Cale Audio", @@ -511,7 +511,7 @@ "GuestStar": "Vedeta invitata", "GuideProviderSelectListings": "Selectați Listări", "EncoderPresetHelp": "Alegeți o valoare mai rapidă pentru a îmbunătăți performanța sau o valoare mai lentă pentru a îmbunătăți calitatea.", - "HardwareAccelerationWarning": "Activarea accelerării hardware poate provoca instabilitate în anumite medii. Asigurați-vă că sistemul de operare și driverele video sunt complet actualizate. Dacă întâmpinați dificultăți pentru a reda video după activarea acestei opțiuni, va trebui să schimbați setarea la Nimic.", + "HardwareAccelerationWarning": "Activarea accelerării hardware poate provoca instabilitate în anumite medii. Asigurați-vă că sistemul de operare și driverele video sunt complet actualizate. Dacă întâmpinați dificultăți pentru a reda video după activarea acestei opțiuni, va trebui să schimbați setarea la inapoi la Nimic.", "HeaderAccessSchedule": "Program de Acces", "HeaderAccessScheduleHelp": "Creați un program de acces pentru a limita accesul la anumite ore.", "HeaderActiveDevices": "Dispozitive active", @@ -823,7 +823,7 @@ "LabelFailed": "Eșuat", "LabelExtractChaptersDuringLibraryScanHelp": "Generați imagini de capitol atunci când videoclipurile sunt importate în timpul scanării bibliotecii. În caz contrar, acestea vor fi extrase în timpul sarcinii programate de extragere a imaginilor capitolului, permițând scanarea bibliotecă obișnuită să se completeze mai rapid.", "LabelExtractChaptersDuringLibraryScan": "Extrageți imagini de capitol în timpul scanării bibliotecii", - "LabelBaseUrlHelp": "Puteți adăuga aici un subdirector personalizat pentru a accesa serverul de pe o adresă URL mai unică.", + "LabelBaseUrlHelp": "Adaugă aici un subdirector personalizat la URL-ul serverului. De exemplu: http://example.com/<baseurl>", "LabelBaseUrl": "Adresa URL de bază:", "LabelEveryXMinutes": "La fiecare:", "LabelEvent": "Eveniment:", @@ -1334,7 +1334,7 @@ "OptionOnInterval": "La un interval", "OptionOnAppStartup": "La pornirea aplicației", "OptionNone": "Nici unul", - "OptionNew": "Nou...", + "OptionNew": "Nou…", "OptionMissingEpisode": "Episoade lipsă", "OptionMax": "Max", "OptionLoginAttemptsBeforeLockoutHelp": "O valoare zero înseamnă că va moșteni valoarea implicită de trei încercări pentru utilizatorii normali și cinci pentru administratori. Setarea acestei opțiuni la -1 va dezactiva funcția.", @@ -1359,9 +1359,9 @@ "OptionEnableExternalContentInSuggestions": "Activați conținut extern în sugestii", "OptionEmbedSubtitles": "Inclus în container", "OptionDownloadLogoImage": "Siglă", - "OptionDownloadImagesInAdvanceHelp": "În mod implicit, majoritatea imaginilor sunt descărcate numai la cererea unei aplicații din Jellyfin. Activați această opțiune pentru a descărca în prealabil toate imaginile, în timp ce fișierele media noi sunt importate. Acest lucru poate provoca scanări ale bibliotecii semnificativ mai lungi.", + "OptionDownloadImagesInAdvanceHelp": "În mod implicit, majoritatea imaginilor sunt descărcate numai la cererea unei aplicații din Jellyfin. Activați această opțiune pentru a descărca în prealabil toate imaginile, pe măsură ce fișierele media sunt importate. Acest lucru poate provoca scanări ale bibliotecii semnificativ mai lungi.", "OptionDownloadImagesInAdvance": "Descărcați imaginile în avans", - "OptionDownloadDiscImage": "Placă", + "OptionDownloadDiscImage": "Disc", "OptionDisplayFolderViewHelp": "Afișați dosarele alături de celelalte biblioteci media. Acest lucru poate fi util dacă doriți să aveți o vizualizare direct în dosar.", "OptionDisplayFolderView": "Afișați o vizualizare de dosar pentru a afișa dosarele media simple", "OptionDateAddedImportTime": "Utilizați data scanării în bibliotecă", @@ -1465,8 +1465,8 @@ "NoCreatedLibraries": "Se pare că nu ați creat încă biblioteci. {0} Doriți să creați una acum? {1}", "AskAdminToCreateLibrary": "Cereți unui administrator să creeze o bibliotecă.", "PlaybackErrorNoCompatibleStream": "Clientul nu este compatibil cu formatul media, iar serverul nu trimite un format media compatibil.", - "AllowFfmpegThrottlingHelp": "Când un transcod sau un remux se află destul de departe înainte de poziția actuală de redare, întrerupeți procesul, astfel încât să consume mai puține resurse. Acest lucru este cel mai util când priviți fără a derula des. Dezactivați acestă opțiune dacă întâmpinați probleme de redare.", - "AllowFfmpegThrottling": "Accelerare Transcod-uri", + "AllowFfmpegThrottlingHelp": "Când un transcod sau un remux se află destul de departe înainte de poziția actuală de redare, întrerupeți procesul, astfel încât să consume mai puține resurse. Acest lucru este util atunci când priviți fără a derula des. Dezactivați acestă opțiune dacă întâmpinați probleme de redare.", + "AllowFfmpegThrottling": "Limitare Transcod-uri", "Track": "Cale", "Season": "Sezon", "ReleaseGroup": "Gruparea lansării", @@ -1493,7 +1493,7 @@ "ListPaging": "{0}-{1} din {2}", "WriteAccessRequired": "Jellyfin Server necesită acces de scriere la acest folder. Vă rugăm să vă asigurați accesul la scriere și încercați din nou.", "PathNotFound": "Calea nu a fost găsită. Vă rugăm să vă asigurați de validitatea căii și încercați din nou.", - "YadifBob": "YADIF Bob", + "YadifBob": "Gigi Bob", "Yadif": "YADIF", "LabelDeinterlaceMethod": "Metoda de intercalare:", "DeinterlaceMethodHelp": "Selectați metoda de intercalat pe care să o utilizați la transcodarea conținutului intercalat.", @@ -1505,5 +1505,19 @@ "ButtonToggleContextMenu": "Mai mult", "Filter": "Filtru", "New": "Nou", - "HeaderFavoritePlaylists": "Listă Favorită" + "HeaderFavoritePlaylists": "Listă Favorită", + "ApiKeysCaption": "Lista cheilor API active", + "LabelRequireHttpsHelp": "Dacă e selectat, serverul va redirecta automat toate cererile HTTP către HTTPS. Dacă nu se ascultă pe HTTPS, nu are niciun efect.", + "LabelRequireHttps": "Trebuie HTTPS", + "LabelNightly": "Ultimă", + "LabelStable": "Stabilă", + "LabelChromecastVersion": "Versiunea de Chromecast", + "LabelEnableHttpsHelp": "Activează serverul să asculte pe portul HTTPS configurat. Un certificat valid trebuie de asemenea configurat pentru ca să funcţioneze.", + "LabelEnableHttps": "Activați HTTPS", + "HeaderServerAddressSettings": "Setările adresei serverului", + "HeaderRemoteAccessSettings": "Setări pentru aces remote", + "HeaderHttpsSettings": "Setări https", + "TabDVR": "DVR", + "SaveChanges": "Salvează modificările", + "HeaderDVR": "DVR" } diff --git a/src/strings/ru.json b/src/strings/ru.json index 9fc2a00df..d3a38d34d 100644 --- a/src/strings/ru.json +++ b/src/strings/ru.json @@ -15,7 +15,7 @@ "Alerts": "Оповещения", "All": "Все", "AllChannels": "Все каналы", - "AllComplexFormats": "Все комплексные форматы (ASS, SSA, VOBSUB, PGS, SUB и IDX)", + "AllComplexFormats": "Все комплексные форматы (ASS, SSA, VOBSUB, PGS, SUB, IDX и др.)", "AllEpisodes": "Все эпизоды", "AllLanguages": "Все языки", "AllLibraries": "Все медиатеки", @@ -31,7 +31,7 @@ "AlwaysPlaySubtitlesHelp": "Субтитры, соответствующие настройке языка, будут загружаться независимо от языка аудио.", "AnyLanguage": "Любой язык", "Anytime": "В любое время", - "AroundTime": "Около {0}", + "AroundTime": "Около", "Art": "Виньетка", "Artists": "Исполнители", "AsManyAsPossible": "Как можно больше", @@ -48,13 +48,13 @@ "BirthLocation": "Место рождения", "BirthPlaceValue": "Место рождения: {0}", "Blacklist": "Чёрный список", - "BookLibraryHelp": "Поддерживаются аудио и текстовые книги. Просмотрите {0}руководство по именованию книг{1}.", + "BookLibraryHelp": "Поддерживаются аудио и текстовые книги. Просмотрите {0} руководство по именованию книг {1}.", "Books": "Книги", "Box": "Коробка", "BoxRear": "Коробка (задняя часть)", "Browse": "Навигация", "BrowsePluginCatalogMessage": "Просмотрите каталог плагинов, чтобы ознакомиться с имеющимися плагинами.", - "BurnSubtitlesHelp": "Определяется, должен ли сервер внедрять субтитры при перекодировании. Избежание этого значительно улучшит производительность. Выберите «Авто» для записи основанных на графике форматов (VOBSUB, PGS, SUB и IDX) и некоторых субтитров ASS или SSA.", + "BurnSubtitlesHelp": "Определяется, должен ли сервер внедрять субтитры при перекодировании. Избежание этого значительно улучшит производительность. Выберите «Авто» для записи основанных на графике форматов (VOBSUB, PGS, SUB, IDX и др.) и некоторых субтитров ASS или SSA.", "ButtonAdd": "Добавить", "ButtonAddMediaLibrary": "Добавить медиатеку", "ButtonAddScheduledTaskTrigger": "Добавить триггер", @@ -587,7 +587,7 @@ "LabelEmbedAlbumArtDidl": "Внедрять альбомные обложки в DIDL", "LabelEmbedAlbumArtDidlHelp": "Для некоторых устройств данный метод получения альбомных обложек является предпочтительным. Остальные могут быть не в состоянии воспроизводить, при включении данной опции.", "LabelEnableAutomaticPortMap": "Включить автоматическое сопоставление портов", - "LabelEnableAutomaticPortMapHelp": "Попытаться автоматически сопоставить публичный порт с локальным портом с помощью UPnP. Это может не работать с некоторыми моделями маршрутизаторов. Изменения не применяются до перезапуска сервера.", + "LabelEnableAutomaticPortMapHelp": "Автоматическое перенаправление публичных портов маршрутизатора на локальные порты сервера через UPnP. Это может не работать с некоторыми моделями маршрутизаторов или сетевых конфигураций. Изменения не применяются до перезапуска сервера.", "LabelEnableBlastAliveMessages": "Бомбардировать сообщениями проверки активности", "LabelEnableBlastAliveMessagesHelp": "Включите, если сервер надёжно не обнаруживается иными UPnP устройствами в своей сети.", "LabelEnableDlnaClientDiscoveryInterval": "Интервал обнаружения клиентов", @@ -710,7 +710,7 @@ "LabelNumberOfGuideDays": "Число дней для загрузки данных телегида:", "LabelNumberOfGuideDaysHelp": "Больше дней загрузки данных телегида обеспечивает возможность заблаговременно назначать расписание и просматривать больше перечней, однако это займёт больше времени для загрузки. При значении «Авто» выбор определяется числом каналов.", "LabelOptionalNetworkPath": "(Необязательно) Общедоступная сетевая папка:", - "LabelOptionalNetworkPathHelp": "Если данная папка общедоступна в своей сети, предоставление пути к сетевой папке может позволить Jellyfin-приложениям на других устройствах получить прямой доступ к медиафайлам.", + "LabelOptionalNetworkPathHelp": "Если данная папка является общей в сети, указание пути к сетевой папке может позволить Jellyfin-приложениям на других устройствах иметь прямой доступ к медиафайлам. Например, {0} или {1}.", "LabelOriginalAspectRatio": "Исходное соотношение сторон:", "LabelOriginalTitle": "Оригинальное название:", "LabelOverview": "Обзор:", @@ -1067,7 +1067,7 @@ "OptionMissingEpisode": "Отсутствующие эпизоды", "OptionMonday": "понедельник", "OptionNameSort": "Название", - "OptionNew": "Новое...", + "OptionNew": "Новое…", "OptionNone": "Ничего", "OptionOnAppStartup": "При запуске приложения", "OptionOnInterval": "В интервале", @@ -1429,7 +1429,7 @@ "PlaybackData": "Данные воспроизведения", "SubtitleOffset": "Сдвиг субтитров", "TabNetworking": "Работа в сети", - "LabelBaseUrlHelp": "Здесь вы можете добавить пользовательский подкаталог для доступа к серверу с более уникального URL.", + "LabelBaseUrlHelp": "Добавляется пользовательский подкаталог к URL сервера. Например: http://example.com/<baseurl>", "LabelPlayer": "Проигрыватель:", "MoreMediaInfo": "О медиаданных", "LabelVideoCodec": "Видео кодек:", @@ -1506,5 +1506,19 @@ "DeinterlaceMethodHelp": "Выберите метод устранения гребёнки, который будет использоваться при перекодировании чересстрочного содержания.", "UnsupportedPlayback": "Jellyfin не может расшифровать содержимое, защищенное DRM, но в любом случае будет предпринята попытка расшифровки всего содержимого, включая защищенные заголовки. Некоторые файлы могут выглядеть полностью черными из-за шифрования или других неподдерживаемых функций, таких как интерактивные заголовки.", "MessageUnauthorizedUser": "В настоящее время у вас нет доступа к серверу. Пожалуйста, свяжитесь с администратором сервера для получения дополнительной информации.", - "HeaderFavoritePlaylists": "Избранные плей-листы" + "HeaderFavoritePlaylists": "Избранные плей-листы", + "LabelRequireHttpsHelp": "Если этот флажок установлен, сервер будет автоматически перенаправлять все запросы через HTTP на HTTPS. Это не имеет никакого эффекта, если сервер не слушает HTTPS.", + "LabelEnableHttpsHelp": "Позволяет серверу слушать сконфигурированный HTTPS-порт. Действительный сертификат также должен быть сконфигурирован для того, чтобы это вступило в силу.", + "ApiKeysCaption": "Список действующих текущих API-ключей", + "TabDVR": "DVR", + "SaveChanges": "Сохранить изменения", + "LabelRequireHttps": "Требуется HTTPS", + "LabelNightly": "Ночная", + "LabelStable": "Стабильная", + "LabelChromecastVersion": "Версия Chromecast", + "LabelEnableHttps": "Включить HTTPS", + "HeaderServerAddressSettings": "Параметры адреса сервера", + "HeaderRemoteAccessSettings": "Параметры удалённого доступа", + "HeaderHttpsSettings": "Параметры HTTPS", + "HeaderDVR": "DVR" } diff --git a/src/strings/sk.json b/src/strings/sk.json index d56b9fc59..3d3b12f0d 100644 --- a/src/strings/sk.json +++ b/src/strings/sk.json @@ -5,7 +5,7 @@ "Albums": "Albumy", "All": "Všetko", "AllChannels": "Všetky kanály", - "AllComplexFormats": "Všetky komplexné formáty (ASS, SSA, VOBSUB, PGS, SUB, IDX)", + "AllComplexFormats": "Všetky komplexné formáty (ASS, SSA, VOBSUB, PGS, SUB, IDX, …)", "AllEpisodes": "Všetky epizódy", "AllLanguages": "Všetky jazyky", "AllLibraries": "Všetky knižnice", @@ -14,7 +14,7 @@ "AllowRemoteAccessHelp": "Nezaškrtnuté znamená, že všetky vzdialené pripojenia budú blokované.", "AlwaysPlaySubtitles": "Vždy prehrať", "AnyLanguage": "Akýkoľvek jazyk", - "AroundTime": "Okolo {0}", + "AroundTime": "Okolo", "Artists": "Umelci", "AsManyAsPossible": "Najviac ako je možné", "Ascending": "Vzostupne", @@ -25,7 +25,7 @@ "BirthDateValue": "Narodený/á: {0}", "BirthLocation": "Miesto narodenia", "BirthPlaceValue": "Miesto narodenia: {0}", - "BookLibraryHelp": "Audioknihy a učebnice sú podporované. Prečítajte si {0}pravidlá pre názvy kníh v Jellyfine{1}.", + "BookLibraryHelp": "Audioknihy a učebnice sú podporované. Prečítajte si {0} pravidlá pre názvy kníh v Jellyfine {1}.", "Books": "Knihy", "ButtonAdd": "Pridať", "ButtonAddMediaLibrary": "Pridať knižnicu médií", @@ -648,7 +648,7 @@ "OptionMissingEpisode": "Chýbajúce epizódy", "OptionMonday": "Pondelok", "OptionNameSort": "Názov", - "OptionNew": "Nové...", + "OptionNew": "Nové…", "OptionNone": "Žiadne", "OptionOnAppStartup": "Pri spustení aplikácie", "OptionParentalRating": "Rodičovské hodnotenie", @@ -1180,7 +1180,7 @@ "CancelSeries": "Ukončiť seriál", "ButtonSplit": "Rozdeliť", "ButtonAddImage": "Pridať obrázok", - "BurnSubtitlesHelp": "Určuje, či má server vpáliť titulky počas transkódovania videa. Vynechanie tejto možnosti výrazne zvýši výkon. Vyberte možnosť Auto, pokiaľ chcete vpáliť do obrazu titulky v grafickom formáte (VOBSUB, PGS, SUB, IDX) a niektoré ASS alebo SSA titulky.", + "BurnSubtitlesHelp": "Určuje, či má server vpáliť titulky počas transkódovania videa. Vynechanie tejto možnosti výrazne zvýši výkon. Vyberte možnosť Auto, pokiaľ chcete vpáliť do obrazu titulky v grafickom formáte (VOBSUB, PGS, SUB, IDX, …) a niektoré ASS alebo SSA titulky.", "BrowsePluginCatalogMessage": "Prehliadnite si náš katalóg dostupných zásuvných modulov.", "Browse": "Prechádzať", "Blacklist": "Blacklist", @@ -1189,7 +1189,7 @@ "Art": "Umenie", "AlwaysPlaySubtitlesHelp": "Titulky odpovedajúce jazykovej preferencií sa načítajú bez ohľadu na jazyk zvuku.", "AllowedRemoteAddressesHelp": "Zoznam IP adries alebo IP/netmask záznamov pre siete oddelené čiarkami z ktorých sa dá vzdialene pripojiť. Pokiaľ zoznam bude prázdny, všetky adresy budú povolené.", - "AllowOnTheFlySubtitleExtractionHelp": "Vložené titulky môžu byť extrahované z videa a prenesené na klienta vo forme jednoduchého textu aby sa zabránilo transkódovaniu videa. Na niektorých systémoch táto operácia môže trvať dlhší čas a a spôsobiť sekanie videa počas počas extrahovania. Vypnutie tejto funkcie bude mať za následok, že titulky budú počas transkódovania vypálené do samotného videa pokiaľ klientské zariadenie natívne nepodporuje ich formát.", + "AllowOnTheFlySubtitleExtractionHelp": "Vložené titulky môžu byť extrahované z videa a prenesené na klienta vo forme jednoduchého textu, aby sa zabránilo transkódovaniu videa. Na niektorých systémoch táto operácia môže trvať dlhší čas a a spôsobiť sekanie videa počas počas extrahovania. Vypnutie tejto funkcie bude mať za následok, že titulky budú počas transkódovania vypálené do samotného videa pokiaľ klientské zariadenie natívne nepodporuje ich formát.", "Watched": "Pozreté", "TvLibraryHelp": "Pozrite sa na {0}sprievodcu pomenovania TV programov{1}.", "LabelLineup": "Lineup:", @@ -1389,7 +1389,7 @@ "LabelPersonRoleHelp": "Príklad: Vodič nákladiaku so zmrzlinou", "LabelPasswordResetProvider": "Poskytovateľ obnovy hesla:", "LabelParentNumber": "Číslo rodiča:", - "LabelOptionalNetworkPathHelp": "Pokiaľ je tento priečinok zdielaný vo vašej sieti, môže poskytovanie cesty k zdielanému priečinku umožniť Jellyfin aplikáciám priamy prístup k mediálnym súborom.", + "LabelOptionalNetworkPathHelp": "Pokiaľ je tento priečinok zdielaný vo vašej sieti, môže poskytovanie cesty k zdielanému priečinku umožniť Jellyfin aplikáciám priamy prístup k mediálnym súborom. Napríklad, {0} alebo {1}.", "LabelNumberOfGuideDaysHelp": "Stiahnutím viacerých dní umožní sprievodca naplánovať a zobraziť viac vecí do budúcnosti, sťahovanie však môže trvať dlhšie. Auto vyberie možnosť podľa počtu kanálov.", "LabelNumberOfGuideDays": "Počet dní pre stiahnutie dát sprievodcu:", "LabelMusicStreamingTranscodingBitrateHelp": "Špecifikujte maximálny dátový tok pre streamovanie hudby.", @@ -1433,7 +1433,7 @@ "LabelFriendlyName": "Priateľský názov:", "LabelFolder": "Priečinok:", "LabelExtractChaptersDuringLibraryScanHelp": "Generovať obrázky kapitol počas toho, ako sú videá importované v prvotnom prehľadávaní knižnice. Inak sa budú extrahovať počas naplánovanej úlohy generovania obrázkov kapitol, čo dovoľuje rýchlejšie dokončenie bežného prehľadávania knižnice.", - "LabelBaseUrlHelp": "Tu môžete pridať vlastný podpriečinok, aby bolo možné pristupovať k serveru z viac unikátnej URL.", + "LabelBaseUrlHelp": "Pridá vlastný reťazec na URL adresu serveru, napr: http://priklad.sk/<vlastnyretazec>", "LabelBaseUrl": "Východzia URL:", "LabelEveryXMinutes": "Každý:", "LabelEnableSingleImageInDidlLimitHelp": "Niektoré zariadenia nebudú zobrazovať správne pokiaľ je viacero obrázkov uložených v Didl.", @@ -1442,7 +1442,7 @@ "LabelEnableDlnaDebugLogging": "Povoliť loggovanie DLNA debugu", "LabelEnableDlnaClientDiscoveryIntervalHelp": "Určuje dobu trvania v sekundách medzi SSDP vyhľadávaniami vykonanými Jellyfinom.", "LabelEnableDlnaClientDiscoveryInterval": "Interval pre objavenie klienta (sekundy)", - "LabelEnableAutomaticPortMapHelp": "Pokus o automatické namapovanie vejerného portu na lokálny port cez UPnP. Toto nemusí fungovať so všetkými modelmi routerov. Zmeny sa vykonajú až po reštarte servera.", + "LabelEnableAutomaticPortMapHelp": "Automatické namapovanie vejerného portu na lokálny port serveru cez UPnP. Toto nemusí fungovať so všetkými modelmi routerov alebo sieťových konfigurácií. Zmeny sa vykonajú až po reštarte servera.", "LabelEmbedAlbumArtDidlHelp": "Niektoré zariadenia preferujú túto metódu pre získavanie obrázku albumu. Ostatným môže zlyhať prehrávanie pokiaľ je táto možnosť povolená.", "LabelBlastMessageIntervalHelp": "Určuje dobu v sekundách medzi vysielaniami správ o serveri.", "LabelBindToLocalNetworkAddressHelp": "Voliteľné. Prepísať lokálnu IP adresu viazanú na http server. Pokiaľ zostane prázdna, server sa naviaže na všetky dostupné adresy. Pri zmene tejto hodnoty sa vyžaduje reštart Jellyfin Servera.", @@ -1507,5 +1507,19 @@ "New": "Nové", "HeaderFavoritePlaylists": "Obľúbené playlisty", "ButtonTogglePlaylist": "Playlist", - "ButtonToggleContextMenu": "Viac" + "ButtonToggleContextMenu": "Viac", + "ApiKeysCaption": "Zoznam v súčasnosti povolených API kľúčov", + "LabelNightly": "Nočná", + "LabelStable": "Stabilná", + "LabelChromecastVersion": "Chromecast verzia", + "TabDVR": "DVR", + "LabelRequireHttpsHelp": "Pokiaľ je zaškrtnutý, server bude automaticky presmerovávať všetky HTTP požiadavky cez HTTPS. Toto nastavenie nemá žiadny efekt, pokiaľ server nepočúva na HTTPS.", + "LabelRequireHttps": "Vyžadovať HTTPS", + "LabelEnableHttpsHelp": "Umožní serveru počúvať na nastavenom HTTPS porte. K správnemu fungovaniu je nutné nakonfigurovať aj platný certifikát.", + "LabelEnableHttps": "Povoliť HTTPS", + "HeaderServerAddressSettings": "Nastavenie adresy servera", + "HeaderRemoteAccessSettings": "Nastavenie vzdialeného prístupu", + "HeaderHttpsSettings": "Nastavenia HTTPS", + "HeaderDVR": "DVR", + "SaveChanges": "Uložiť zmeny" } diff --git a/src/strings/sl-si.json b/src/strings/sl-si.json index a692edbd3..dde5007a5 100644 --- a/src/strings/sl-si.json +++ b/src/strings/sl-si.json @@ -100,10 +100,8 @@ "HeaderLiveTV": "TV v živo", "HeaderNextUp": "Sledi", "HeaderRecordingGroups": "Zbirke posnetkov", - "LabelIpAddressValue": "IP naslov: {0}", "LabelRunningTimeValue": "Čas trajanja: {0}", "MessageApplicationUpdated": "Jellyfin Server je bil posodobljen", - "MessageServerConfigurationUpdated": "Nastavitve strežnika so bile posodobljene", "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.", @@ -127,10 +125,6 @@ "AudioSampleRateNotSupported": "Frekvenca vzorčenja zvoka ni podprta", "Auto": "Samodejno", "AutoBasedOnLanguageSetting": "Samodejno (na podlagi nastavitve jezika)", - "AutomaticallyConvertNewContent": "Samodejno pretvori novo vsebino", - "AutomaticallyConvertNewContentHelp": "Nova vsebina dodana v to mapo bo samodejno pretvorjena.", - "AutomaticallySyncNewContent": "Samodejno prenesi novo vsebino", - "AutomaticallySyncNewContentHelp": "Nova vsebina dodana v to mapo bo samodejno prenesena na to napravo.", "Backdrop": "Ozadje", "Backdrops": "Ozadja", "BestFit": "Najboljše prileganje", diff --git a/src/strings/sv.json b/src/strings/sv.json index d93222199..282fec7b7 100644 --- a/src/strings/sv.json +++ b/src/strings/sv.json @@ -2,7 +2,7 @@ "AccessRestrictedTryAgainLater": "För närvarande är åtkomsten begränsad. Försök igen senare.", "Actor": "Skådespelare", "Add": "Lägg till", - "AddItemToCollectionHelp": "Lägg till objekt i samlingar genom att söka efter dem och använda deras högerklick- eller knackmeny", + "AddItemToCollectionHelp": "Lägg till objekt i samlingar genom att söka efter dem och använda deras högerklick- eller pekmeny för att lägga till dem i en samling.", "AddToCollection": "Lägg till i samling", "AddToPlayQueue": "Lägg till i spelkö", "AddToPlaylist": "Lägg till i spellista", @@ -13,7 +13,7 @@ "Albums": "Album", "All": "Alla", "AllChannels": "Alla kanaler", - "AllComplexFormats": "Alla komplexa format (ASS, SSA, VOBSUB, PGS, SUB/IDX, etc.)", + "AllComplexFormats": "Alla komplexa format (ASS, SSA, VOBSUB, PGS, SUB/IDX, ...)", "AllEpisodes": "Alla avsnitt", "AllLanguages": "Alla språk", "AllLibraries": "Alla bibliotek", @@ -26,7 +26,7 @@ "AlwaysPlaySubtitlesHelp": "Undertexter på det önskade språket kommer att laddas oavsett ljudspårets språk.", "AnyLanguage": "Alla språk", "Anytime": "När som helst", - "AroundTime": "Runt {0}", + "AroundTime": "Runt", "Art": "Grafik", "Artists": "Artister", "AsManyAsPossible": "Så många som möjligt", @@ -40,13 +40,13 @@ "BirthDateValue": "Född: {0}", "BirthLocation": "Födelseort", "BirthPlaceValue": "Födelseort:{0}", - "BookLibraryHelp": "Ljud- och textböcker stöds. Läs {0}boknamngivningsguide{1}.", + "BookLibraryHelp": "Ljud- och textböcker stöds. Läs {0} boknamngivningsguiden {1}.", "Books": "Böcker", "Box": "Omslag", "BoxRear": "Omslag (baksida)", "Browse": "Bläddra", "BrowsePluginCatalogMessage": "Besök katalogen för att se tillgängliga tillägg.", - "BurnSubtitlesHelp": "Avgör ifall servern ska \"bränna in\" undertexterna under transkodning. Att undvika detta förbättrar prestandan avsevärt. Välj \"Automatisk\" för att bränna bild-baserade format (ex. VOBSUB, PGS, SUB/IDX, etc.) och vissa ASS/SSA-undertexter.", + "BurnSubtitlesHelp": "Avgör ifall servern ska \"bränna in\" undertexterna under transkodning. Att undvika detta förbättrar prestandan avsevärt. Välj \"Automatisk\" för att bränna bild-baserade format (ex. VOBSUB, PGS, SUB/IDX, ...) och vissa ASS/SSA-undertexter.", "ButtonAdd": "Lägg till", "ButtonAddMediaLibrary": "Lägg till mediabibliotek", "ButtonAddScheduledTaskTrigger": "Lägg till utlösare", @@ -898,7 +898,7 @@ "NumLocationsValue": "{0} mappar", "Off": "Av", "OneChannel": "En kanal", - "OnlyForcedSubtitles": "Endast tvingande undertexter", + "OnlyForcedSubtitles": "Endast påtvingad", "OnlyForcedSubtitlesHelp": "Endast undertexter markerade som tvingande kommer att laddas.", "OnlyImageFormats": "Endast bildbaserade format (VOBSUB, PGS, SUB, etc)", "OptionAdminUsers": "Administratörer", @@ -988,7 +988,7 @@ "OptionMissingEpisode": "Saknade avsnitt", "OptionMonday": "Måndag", "OptionNameSort": "Namn", - "OptionNew": "Ny...", + "OptionNew": "Ny…", "OptionNone": "Inga", "OptionOnAppStartup": "När servern startar", "OptionOnInterval": "Med visst intervall", @@ -1492,5 +1492,30 @@ "Artist": "Artist", "ButtonTogglePlaylist": "Spellista", "ButtonToggleContextMenu": "Mer", - "AlbumArtist": "Albumartist" + "AlbumArtist": "Albumartist", + "LabelLibraryPageSize": "Bibliotekets sidstorlek:", + "LabelDeinterlaceMethod": "Deinterlacing-metod:", + "WeeklyAt": "{0}s vid {1}", + "LastSeen": "Senast sedd {0}", + "YadifBob": "YADIF Bob", + "Yadif": "YADIF", + "Filter": "Filter", + "New": "Ny", + "MessageUnauthorizedUser": "Du har inte behörighet att komma åt servern just nu. Kontakta din serveradministratör för mer information.", + "HeaderFavoritePlaylists": "Favoritspellista", + "OnWakeFromSleep": "Vid start från vilande läge", + "UnsupportedPlayback": "Jellyfin kan inte dekryptera inehåll skyddat av DRM men allt inehåll kommer ändå försökas, även skyddade titlar. Vissa filer kan se helt svart ut på grund av kryptering eller andra funktioner som inte stöds, till exempel interaktiva titlar.", + "LabelLibraryPageSizeHelp": "Sätter en begränsad sidstorlek i bibliotek. Sätt 0 för att avaktivera begränsad sidstorlek.", + "ApiKeysCaption": "Lista av aktiva API-nycklar", + "DeinterlaceMethodHelp": "Välj metod för borttagning av inflätning vid konvertering av inflätat inehåll.", + "TabDVR": "PVR", + "SaveChanges": "Spara ändringar", + "LabelRequireHttps": "Kräv HTTPS", + "LabelChromecastVersion": "Chromecast-version", + "LabelEnableHttpsHelp": "Gör det möjligt för servern att lyssna på den konfigurerade HTTPS-porten. Ett giltigt certifikat måste också konfigureras för att detta ska fungera.", + "LabelEnableHttps": "Aktivera HTTPS", + "HeaderServerAddressSettings": "Serveradressinställningar", + "HeaderRemoteAccessSettings": "Inställningar för fjärråtkomst", + "HeaderHttpsSettings": "HTTPS-inställningar", + "HeaderDVR": "PVR" } diff --git a/src/strings/uk.json b/src/strings/uk.json index 1c4c49774..5a859a4ae 100644 --- a/src/strings/uk.json +++ b/src/strings/uk.json @@ -93,17 +93,17 @@ "ValueSeriesCount": "{0} серій", "ValueSongCount": "{0} пісень", "AddToPlaylist": "Додати до списку відтворення", - "AccessRestrictedTryAgainLater": "На даний момент доступ заборонений. Будь ласка спробуйте пізніше.", + "AccessRestrictedTryAgainLater": "На цей момент доступ заборонений. Повторіть спробу пізніше.", "Actor": "Виконавець", - "AllLanguages": "Всі мови", - "AllLibraries": "Всі бібліотеки", + "AllLanguages": "Усі мови", + "AllLibraries": "Усі бібліотеки", "AddToCollection": "Додати до колекції", "AddToPlayQueue": "Додати до черги відтворення", "All": "Всі", "AllChannels": "Всі канали", "AllEpisodes": "Всі епізоди", "AllowRemoteAccess": "Дозволити віддалене підключення до цього сервера Jellyfin.", - "AlwaysPlaySubtitles": "Завжди відтворювати субтитри", + "AlwaysPlaySubtitles": "Завжди вмикати субтитри", "AnyLanguage": "Будь-яка мова", "Anytime": "Завжди", "Add": "Додати", @@ -136,5 +136,28 @@ "Alerts": "Термінові сповіщення", "AlbumArtist": "Виконавець альбому", "Album": "Альбом", - "AdditionalNotificationServices": "Пошук у каталозі плагінів для встановлення додаткових сервісів сповіщень." + "AdditionalNotificationServices": "Пошук у каталозі плагінів для встановлення додаткових сервісів сповіщень.", + "ShowYear": "Відобразити рік", + "ShowTitle": "Відобразити назву", + "Raised": "Піднятий", + "OptionResElement": "кожний елемент", + "DropShadow": "Тінь", + "Blacklist": "Чорний список", + "BirthLocation": "Місце народження", + "Banner": "Обкладинка", + "AutoBasedOnLanguageSetting": "Автоматично (на основі поточної мови)", + "Auto": "Автоматично", + "AuthProviderHelp": "Оберіть сервіс аутентифікації, який буде використаний з поточним паролем користувача.", + "Audio": "Аудіо", + "AttributeNew": "Новий", + "AspectRatio": "Відношення сторін", + "AskAdminToCreateLibrary": "Попросіть адміністратора створити бібліотеку.", + "Ascending": "У порядку зростання", + "AsManyAsPossible": "Настільки багато наскільки можливо", + "Artist": "Виконавець", + "Art": "Мистецтво", + "AllowOnTheFlySubtitleExtractionHelp": "Вбудовані субтитри можуть бути експортовані з відео і надіслані, по черзі, клієнтам у вигляді тексту. Це допоможе уникнути перекодування відео. На деяких системах, перекодування може зайняти тривалий час і зупинити відтворення відео, для того щоб забезпечити експортування. Вимкнення цієї функції дозволить вбудованим субтитрам бути інтегрованим у відео, під час перекодування, якщо вбудовані субтитри не підтримуються на стороні клієнта.", + "AllowOnTheFlySubtitleExtraction": "Дозволити експортування субтитрів «на льоту»", + "AllowHWTranscodingHelp": "Дозволити клієнту перекодування на «на льоту». Це дозволить відмикати перекодування, якщо вона вимагається сервером.", + "AllComplexFormats": "Усі складні формати (ASS, SSA, VOBSUB, PGS, SUB, IDX, …)" } diff --git a/src/strings/vi.json b/src/strings/vi.json index 65fcd88ef..c7e5c61d8 100644 --- a/src/strings/vi.json +++ b/src/strings/vi.json @@ -167,11 +167,11 @@ "ButtonAddScheduledTaskTrigger": "Thêm kích hoạt", "ButtonAddMediaLibrary": "Thêm thư viện Media", "ButtonAddImage": "Thêm hình ảnh", - "BurnSubtitlesHelp": "Xác định xem máy chủ có nên ghi phụ đề khi chuyển đổi video hay không. Tránh thực hiện việc này sẽ cải thiện hiệu suất máy chủ đáng kể. Chọn Tự động để ghi các phụ đề có định dạng dựa trên hình ảnh (VOBSUB, PGS, SUB, IDX) và một vài phụ đề ASS/SSA nhất định.", + "BurnSubtitlesHelp": "Xác định xem máy chủ có nên ghi phụ đề khi chuyển đổi video hay không. Tránh thực hiện việc này sẽ cải thiện hiệu suất máy chủ đáng kể. Chọn Tự động để ghi các phụ đề có định dạng dựa trên hình ảnh (VOBSUB, PGS, SUB, IDX, ...) và một vài phụ đề ASS/SSA nhất định.", "Browse": "Duyệt", "BoxRear": "Hộp (mặt sau)", "Books": "Sách", - "BookLibraryHelp": "Âm thanh và sách văn bản được hỗ trợ. Xem lại {0}hướng dẫn đặt tên sách{1}.", + "BookLibraryHelp": "Âm thanh và sách văn bản được hỗ trợ. Xem lại {0} hướng dẫn đặt tên sách {1}.", "Blacklist": "Danh sách đen", "BirthPlaceValue": "Nơi sinh: {0}", "BirthLocation": "Nơi sinh", @@ -188,7 +188,7 @@ "Ascending": "Tăng dần", "AsManyAsPossible": "Càng nhiều càng tốt", "Artists": "Nghệ Sĩ", - "AroundTime": "Khoảng {0}", + "AroundTime": "Khoảng", "Anytime": "Bất cứ lúc nào", "AnyLanguage": "Ngôn Ngữ Bất Kỳ", "AlwaysPlaySubtitlesHelp": "Phụ đề phù hợp với sở thích ngôn ngữ sẽ được tải bất kể ngôn ngữ âm thanh.", @@ -196,7 +196,7 @@ "AllowedRemoteAddressesHelp": "Danh sách địa chỉ IP được phân tách bằng dấu phẩy hoặc các mục IP/netmask cho các mạng sẽ được phép kết nối từ xa. Nếu để trống, tất cả các địa chỉ sẽ được cho phép.", "AllowRemoteAccessHelp": "Nếu không được chọn, tất cả các kết nối từ xa sẽ bị chặn.", "AllowRemoteAccess": "Cho phép kết nối từ xa đến Máy chủ Jellyfin.", - "AllowOnTheFlySubtitleExtractionHelp": "Phụ đề nhúng có thể được trích xuất từ video và dùng như văn bản thuần túy để giúp ngăn chặn chuyển mã video. Trên một số hệ thống, việc này có thể mất nhiều thời gian và khiến quá trình phát video bị đình trệ trong quá trình trích xuất. Vô hiệu hóa điều này để có phụ đề nhúng được ghi trong chuyển mã video khi chúng không được thiết bị khách hỗ trợ.", + "AllowOnTheFlySubtitleExtractionHelp": "Phụ đề nhúng có thể được trích xuất từ video và dùng như văn bản thuần túy để giúp ngăn chặn chuyển mã video. Trên một số hệ thống, việc này có thể mất nhiều thời gian và khiến quá trình phát video bị đình trệ trong quá trình trích xuất. Vô hiệu hóa điều này để có phụ đề nhúng được ghi trong video khi chuyển mã trong trường hợp chúng không được hỗ trợ trên thiết bị phát.", "AllowOnTheFlySubtitleExtraction": "Cho phép trích xuất phụ đề trực tiếp", "AllowMediaConversionHelp": "Cấp hoặc từ chối truy cập vào tính năng chuyển đổi media.", "AllowMediaConversion": "Cho phép chuyển đổi media", @@ -204,7 +204,7 @@ "AllLibraries": "Tất cả các thư viện", "AllLanguages": "Tất cả các ngôn ngữ", "AllEpisodes": "Tất cả các tập phim", - "AllComplexFormats": "Tất cả các định dạng phức tạp (ASS, SSA, VOBSUB, PGS, SUB, IDX)", + "AllComplexFormats": "Tất cả các định dạng phức tạp (ASS, SSA, VOBSUB, PGS, SUB, IDX, ...)", "AllChannels": "Tất cả các kênh", "Alerts": "Cảnh Báo", "Albums": "Albums", @@ -564,5 +564,225 @@ "HeaderSortOrder": "Thứ tự Sắp xếp", "HeaderSortBy": "Sắp xếp theo", "HeaderStartNow": "Bắt đầu", - "HeaderSetupLibrary": "Thiết lập thư viện nội dung của bạn" + "HeaderSetupLibrary": "Thiết lập thư viện nội dung của bạn", + "HeaderTracks": "Bài Hát", + "HeaderThisUserIsCurrentlyDisabled": "Người dùng này hiện tại đang bị khoá", + "HeaderTaskTriggers": "Kích Hoạt Tác Vụ", + "HeaderTags": "Nhãn", + "HeaderSubtitleProfilesHelp": "Hồ sơ phụ đề chỉ ra những định dạng phụ đề được hỗ trợ bởi thiết bị phát.", + "HeaderSubtitleProfiles": "Hồ Sơ Phụ Đề", + "HeaderSubtitleProfile": "Hồ Sơ Phụ Đề", + "HeaderSubtitleDownloads": "Tải Phụ Đề", + "HeaderSubtitleAppearance": "Giao Diện Phụ Đề", + "HeaderStopRecording": "Ngừng Ghi Hình/Ghi Âm", + "HeaderSpecialFeatures": "Những Phần Đặc Biệt Nổi Bật", + "HeaderSpecialEpisodeInfo": "Thông Tin Tập Đặc Biệt", + "HeaderShutdown": "Tắt Máy Chủ", + "LabelCustomDeviceDisplayNameHelp": "Cung cấp một tên hiển thị riêng hoặc bỏ trống để sử dụng tên có sẵn của thiết bị.", + "LabelCustomDeviceDisplayName": "Tên hiển thị:", + "LabelCustomCssHelp": "Áp dụng tuỳ chỉnh riêng của bạn vào giao diện trang web.", + "LabelCustomCss": "CSS tuỳ chọn:", + "LabelCustomCertificatePathHelp": "Đường dẫn đến tập tin PKCS #12 chứa chứng chỉ (certificate) và khoá riêng (private key) để bật tính năng TLS trên một tên miền tuỳ chọn.", + "LabelCustomCertificatePath": "Đường dẫn đến chứng chỉ SSL:", + "LabelCriticRating": "Đánh giá phê bình:", + "LabelCorruptedFrames": "Những khung hình bị lỗi:", + "LabelContentType": "Loại nội dung:", + "LabelCommunityRating": "Đánh giá của cộng đồng:", + "LabelCollection": "Bộ Sưu Tập:", + "LabelChannels": "Kênh:", + "LabelCertificatePasswordHelp": "Nếu chứng chỉ của bạn cần mật khẩu, hãy nhập nó ở đây.", + "LabelCertificatePassword": "Mật khẩu chứng chỉ:", + "LabelCancelled": "Đã Huỷ", + "LabelCachePathHelp": "Chọn một đường dẫn cho những tập tin lưu tạm như là hình ảnh. Bỏ trống để sử dụng cài đặt mặc định của máy chủ.", + "LabelCachePath": "Đường dẫn cache:", + "LabelCache": "Cache:", + "LabelBurnSubtitles": "Nhúng phụ đề:", + "LabelBlockContentWithTags": "Chặn những mục có nhãn:", + "LabelBlastMessageIntervalHelp": "Xác định thời gian tồn tại giữa các tin nhắn (tính bằng giây).", + "LabelBlastMessageInterval": "Thời gian tồn tại của tin nhắn (giây)", + "LabelBitrate": "Bitrate:", + "LabelBirthYear": "Năm sinh:", + "LabelBirthDate": "Ngày sinh:", + "LabelBindToLocalNetworkAddressHelp": "Không bắt buộc. Cài đặt đè địa chỉ IP nội bộ để kết nối đến máy chủ HTTP. Nếu bỏ trống, máy chủ sẽ cài đặt vào toàn bộ những địa chỉ nội bộ có sẵn. Nếu thay đổi tuỳ chọn này, cần phải khởi động lại máy chủ Jellyfin để có tác dụng.", + "LabelBindToLocalNetworkAddress": "Cài đặt vào địa chỉ nội bộ:", + "LabelAutomaticallyRefreshInternetMetadataEvery": "Tự động cập nhật dữ liệu bổ trợ từ Internet:", + "LabelAuthProvider": "Nhà Cung Cấp Xác Thực:", + "LabelAudioSampleRate": "Sample rate âm thanh:", + "LabelAudioCodec": "Bộ giải mã âm thanh:", + "LabelAudioChannels": "Các kênh âm thanh:", + "LabelAudioBitrate": "Bitrate của âm thanh:", + "LabelAudioBitDepth": "Chiều sâu của âm thanh:", + "LabelAudio": "Âm Thanh", + "LabelArtistsHelp": "Sử dụng dấu ; để tách rời nhiều nghệ", + "LabelArtists": "Nghệ sĩ:", + "LabelAppNameExample": "Ví dụ: Sickbeard, Sonarr", + "LabelAppName": "Tên ứng dụng", + "LabelAllowedRemoteAddressesMode": "Chế độ bộ lọc địa chỉ IP từ xa:", + "LabelAllowedRemoteAddresses": "Bộ lọc địa chỉ IP từ xa:", + "LabelAllowServerAutoRestartHelp": "Máy chủ chỉ khởi động lại trong thời gian rỗi khi không có người dùng đang sử dụng.", + "LabelAllowHWTranscoding": "Cho phép chuyển mã bằng phần cứng", + "LabelAll": "Tất Cả", + "LabelAlbumArtists": "Nghệ sĩ album:", + "LabelAlbumArtPN": "Bìa album PN:", + "LabelAlbumArtMaxWidthHelp": "Độ phân giải cao nhất của bìa album thông qua upnp:albumArtURI.", + "LabelAlbumArtMaxWidth": "Chiều ngang lớn nhất của bìa album:", + "LabelAlbumArtMaxHeightHelp": "Độ phân giải cao nhất của bìa album thông qua upnp:albumArtURI.", + "LabelAlbumArtMaxHeight": "Chiều cao lớn nhất của bìa album:", + "LabelAlbumArtHelp": "PN được sử dụng cho bìa album, trong dlna:profileID thuộc tính upnp:albumArtURI. Một vài thiết bị phát cần một giá trị đặc biệt, không ảnh hưởng đến kích thước của hình ảnh.", + "LabelAlbum": "Album:", + "LabelAirsBeforeSeason": "Phát sóng trước mùa:", + "LabelAirsBeforeEpisode": "Phát sóng trước tập:", + "LabelAirsAfterSeason": "Phát sóng sau mùa:", + "LabelAirTime": "Thời gian phát sóng:", + "LabelAirDays": "Ngày phát sóng:", + "LabelAccessStart": "Thời gian bắt đầu:", + "LabelAccessEnd": "Thời gian kết thúc:", + "LabelAccessDay": "Ngày trong tuần:", + "LabelAbortedByServerShutdown": "(Đã huỷ bởi máy chủ ngừng hoạt động)", + "Label3DFormat": "Định dạng 3D:", + "Kids": "Trẻ Em", + "Items": "Mục", + "ItemCount": "{0} mục", + "InstantMix": "Trộn Lẫn Nhanh", + "InstallingPackage": "Đang cài đặt {0} (phiên bản {1})", + "ImportMissingEpisodesHelp": "Nếu bật tuỳ chọn này, thông tin bị thiếu trong các tập phim sẽ được nhập vào cơ sở dữ liệu của máy chủ Jellyfin và hiển thị trong các phần và series. Điều này có thể làm việc quét thư viện lâu hơn rất nhiều.", + "ImportFavoriteChannelsHelp": "Nếu bật tuỳ chọn này, chỉ những kênh yêu thích trong thiết bị bắt sóng sẽ được nhập vào.", + "Images": "Hình Ảnh", + "Identify": "Nhận Dạng", + "HttpsRequiresCert": "Để bật kết nối bảo mật, bạn cần phải cung cấp một Chứng Chỉ SSL đáng tin cậy, ví dụ như \"Let's Encrypt\". Hãy cung cấp Chứng Chỉ SSL hoặc là tắt tính năng kết nối bảo mật.", + "Horizontal": "Nằm Ngang", + "Home": "Trang Chủ", + "HideWatchedContentFromLatestMedia": "Ẩn những nội dung đã xem khỏi phần nội dung mới nhất", + "Hide": "Ẩn", + "Help": "Trợ Giúp", + "HeadersFolders": "Thư Mục", + "HeaderYears": "Năm", + "HeaderXmlSettings": "Cài Đặt XML", + "HeaderXmlDocumentAttributes": "Những Thuộc Tính Tài Liệu XML", + "HeaderXmlDocumentAttribute": "Thuộc Tính Tài Liệu XML", + "HeaderVideos": "Videos", + "HeaderVideoTypes": "Kiểu Video", + "HeaderVideoType": "Kiểu Video", + "HeaderVideoQuality": "Chất Lượng Video", + "HeaderUser": "Người Dùng", + "HeaderUploadImage": "Tải Lên Hình Ảnh", + "HeaderUpcomingOnTV": "Sắp Phát Sóng Trên TV", + "HeaderTypeText": "Nhập nội dung", + "HeaderTypeImageFetchers": "{0} Trình Tải Hình Ảnh", + "HeaderTuners": "Bộ Điều Khiển Thu Phát Sóng", + "HeaderTunerDevices": "Thiết Bị Bắt Sóng", + "HeaderTranscodingProfileHelp": "Thêm hồ sơ chuyển mã để chỉ ra những định dạng nên dùng khi cần chuyển mã.", + "HeaderTranscodingProfile": "Hồ Sơ Chuyển Mã", + "LabelEnableAutomaticPortMap": "Kích hoạt tính năng tự động kết nối các port", + "LabelEmbedAlbumArtDidlHelp": "Một vài thiết bị ưu tiên phương pháp này để tải bìa album. Một số thiết bị khác có thể không phát được nếu tuỳ chọn này được kích hoạt.", + "LabelEmbedAlbumArtDidl": "Bìa album trong Didl", + "LabelEasyPinCode": "Mã PIN đơn giản:", + "LabelDynamicExternalId": "{0} Id:", + "LabelDropShadow": "Đổ bóng:", + "LabelDroppedFrames": "Những khung hình bị loại bỏ:", + "LabelDropImageHere": "Kéo thả hình ảnh vào đây, hoặc click để lựa chọn hình ảnh.", + "LabelDownloadLanguages": "Ngôn ngữ tải xuống:", + "LabelDownMixAudioScaleHelp": "Tăng cường âm lượng khi trộn âm thanh. Giá trị bằng 1 sẽ giữ nguyên âm lượng gốc.", + "LabelDownMixAudioScale": "Tăng cường âm lượng khi trộn âm thanh:", + "LabelDisplaySpecialsWithinSeasons": "Hiển thị những tập đặc biệt trong phần mà nó được phát sóng", + "LabelDisplayOrder": "Thứ tự hiển thị:", + "LabelDisplayName": "Tên hiển thị:", + "LabelDisplayMode": "Chế độ hiển thị:", + "LabelDisplayMissingEpisodesWithinSeasons": "Hiển thị những tập bị thiếu", + "LabelDisplayLanguageHelp": "Dự án chuyển ngữ Jellyfin là một dự án diễn ra ra liên tục.", + "LabelDisplayLanguage": "Ngôn ngữ hiển thị:", + "LabelDiscNumber": "Đĩa số:", + "LabelDidlMode": "Chế độ DIDL:", + "LabelDeviceDescription": "Mô tả thiết bị", + "LabelDeinterlaceMethod": "Phương pháp khử xen kẽ:", + "LabelDefaultUserHelp": "Xác định thư viện được hiển thị trên những thiết bị đã kết nối. Tuỳ chọn này có thể được ghi đè trên hồ sơ của từng thiết bị.", + "LabelDefaultUser": "Người dùng mặc định:", + "LabelDefaultScreen": "Màn hình mặc định:", + "LabelDeathDate": "Ngày mất:", + "LabelDateTimeLocale": "Ngày giờ địa phương:", + "LabelDateAddedBehaviorHelp": "Nếu có giá trị dữ liệu bổ trợ, nó sẽ luôn được sử dụng trước một trong các tùy chọn này.", + "LabelDateAddedBehavior": "Ngày thêm hành vi cho nội dung mới:", + "LabelDateAdded": "Ngày thêm vào:", + "LabelDashboardTheme": "Chủ đề bảng điều khiển máy chủ:", + "LabelCustomRating": "Đánh giá tuỳ chọn:", + "HeaderFavoritePlaylists": "Danh Sách Phát Yêu Thích", + "ApiKeysCaption": "Danh sách các mã API đang hoạt động", + "LabelBaseUrl": "URL cơ bản:", + "LabelEveryXMinutes": "Mỗi:", + "LabelEpisodeNumber": "Tập số:", + "LabelEndDate": "Ngày kết thúc:", + "LabelEnableSingleImageInDidlLimitHelp": "Một số thiết bị không hiển thị rõ ràng nếu có nhiều hình ảnh được nhúng trong Didl.", + "LabelEnableSingleImageInDidlLimit": "Giới hạn chỉ một hình ảnh nhúng", + "LabelEnableRealtimeMonitorHelp": "Thay đổi để nội dung sẽ được xử lý ngay lập tức trên các hệ thống được hỗ trợ.", + "LabelEnableRealtimeMonitor": "Bật tính năng theo dõi thời gian thực", + "LabelEnableHttpsHelp": "Cho phép máy chủ theo dõi port HTTPS đã được thiết lập. Cần phải có chứng chỉ hợp lệ để tính năng này có hiệu quả.", + "LabelEnableHttps": "Bật HTTPS", + "LabelEnableHardwareDecodingFor": "Bật tính năng giãi mã phần cứng cho:", + "LabelEnableDlnaServerHelp": "Cho phép các thiết bị UPnP trong mạng của bản để duyệt và phát nội dung.", + "LabelEnableDlnaServer": "Bật tính năng máy chủ DLNA", + "LabelEnableDlnaPlayToHelp": "Tìm kiếm thiết bị trong mạng của bạn và đưa ra khả năng điều khiển từ xa những thiết bị đó.", + "LabelEnableDlnaDebugLoggingHelp": "Tạo những tập tin gỡ lỗi lớn và chỉ nên được sử dụng khi cần thiết để xử lý sự cố.", + "LabelEnableDlnaDebugLogging": "Bật tính năng gỡ lỗi DLNA", + "LabelEnableDlnaClientDiscoveryIntervalHelp": "Xác định thời gian tính bằng giây giữa các tìm kiếm SSDP thực hiện bởi Jellyfin.", + "LabelEnableDlnaClientDiscoveryInterval": "Thời gian tìm kiếm thiết bị phát (giây)", + "LabelEnableBlastAliveMessagesHelp": "Bật tính năng này nếu máy chủ không thể kết nối chắc chắn với những thiết bị UPnP trong mạng của bạn.", + "LabelEnableBlastAliveMessages": "Phát tin nhắn trực tiếp", + "LabelEnableAutomaticPortMapHelp": "Tự động chuyển tiếp những port công khai trên bộ định tuyến đến port trên máy chủ thông qua UPnP. Cài đặt này có thể không hoạt động trên một số loại bộ định tuyến hoặc thiết lập mạng. Thay đổi sẽ được áp dụng sau khi khởi động lại máy chủ.", + "HeaderServerAddressSettings": "Cài Đặt Địa Chỉ Máy Chủ", + "HeaderRemoteAccessSettings": "Cài Đặt Truy Cập Từ Xa", + "HeaderHttpsSettings": "Cài Đặt HTTPS", + "HeaderDVR": "DVR", + "LabelExtractChaptersDuringLibraryScanHelp": "Trích xuất hình ảnh của video được nhập vào trong lúc quét thư viện. Nếu không thì hình này này sẽ được trích xuất thông qua những tác vụ định kì, giúp cho quá trình quét thư viện diễn ra nhanh hơn.", + "LabelExtractChaptersDuringLibraryScan": "Trích xuất hình ảnh từng chương khi quét thư viện", + "LabelBaseUrlHelp": "Thêm một thư mục tuỳ chọn vào đường dẫn máy chủ. Ví dụ: http://example.com/<baseurl>", + "LabelLoginDisclaimerHelp": "Một tin nhắn sẽ hiển thị ở phía cuối của trang đăng nhập.", + "LabelLoginDisclaimer": "Hiển thị khi đăng nhập:", + "LabelLockItemToPreventChanges": "Khoá mục này để ngăn những thay đổi trong tương lai", + "LabelLocalHttpServerPortNumberHelp": "TCP port mà máy chủ Jellyfin HTTP nên kết nối.", + "LabelLocalHttpServerPortNumber": "HTTP port nội bộ:", + "LabelLineup": "Danh sách diễn viên:", + "LabelLibraryPageSizeHelp": "Cài đặt số lượng mục hiển thị trong một trang thư viện. Cài đặt 0 để vô hiệu hoá việc phân trang.", + "LabelLibraryPageSize": "Kích thước trang của thư viện:", + "LabelLanNetworks": "Mạng nội bộ:", + "LabelKodiMetadataUserHelp": "Lưu dữ liệu xem vào tập tin NFO dành cho những ứng dụng khác sử dụng.", + "LabelKodiMetadataUser": "Lưu thông tin người xem vào tập tin NFO dành cho:", + "LabelKodiMetadataSaveImagePathsHelp": "Cài đặt này được khuyến cáo nếu bạn có những hình ảnh đặt tên không đúng với hướng dẫn của Kodi.", + "LabelKodiMetadataSaveImagePaths": "Lưu đường dẫn hình ảnh trong tập tin NFO", + "LabelKodiMetadataEnablePathSubstitutionHelp": "Kích hoạt thay thế đường dẫn hình ảnh sử dụng cài đặt của máy chủ.", + "LabelKodiMetadataEnablePathSubstitution": "Kích hoạt thay thế đường dẫn", + "LabelKodiMetadataEnableExtraThumbsHelp": "Khi tải hình ảnh, chúng có thể được lưu vào cả extrafanart và extrathumbs để tối ưu hoá khả năng tương thích với giao diện Kodi.", + "LabelKodiMetadataEnableExtraThumbs": "Sao chép từ mục extrafanart đến mục extrathumbs", + "LabelKodiMetadataDateFormatHelp": "Toàn bộ ngày trong tập tin NFO sẽ được đọc sử dụng định dạng này.", + "LabelKodiMetadataDateFormat": "Định dạng của ngày phát hành:", + "LabelKidsCategories": "Những thể loại của trẻ em:", + "LabelKeepUpTo": "Theo kịp:", + "LabelInternetQuality": "Chất lượng Internet:", + "LabelInNetworkSignInWithEasyPasswordHelp": "Sử dụng mã PIN đơn giản để đăng nhập thiết bị phát trong mạng nội bộ. Mật khẩu thông thường sẽ chỉ cần khi không truy cập nội mạng. Nếu mã PIN để trống, bạn sex không cần mật khẩu trong mạng nội bộ.", + "LabelInNetworkSignInWithEasyPassword": "Kích hoạt đăng nhập nội mạng bằng mã PIN đơn giản", + "LabelImportOnlyFavoriteChannels": "Giới hạn để chỉ nhập vào những kênh yêu thích", + "LabelImageType": "Loại hình ảnh:", + "LabelImageFetchersHelp": "Kích hoạt và xếp hạng chương trình tải hình ảnh theo thứ tự ưu tiên.", + "LabelIdentificationFieldHelp": "Một phần chuỗi không phân biệt viết hoa/thường hoặc regex expression.", + "LabelIconMaxWidthHelp": "Độ phân giải tối đa của biểu tượng hiển thị thông qua upnp:icon.", + "LabelIconMaxWidth": "Chiều ngang tối đa của biểu tượng:", + "LabelIconMaxHeightHelp": "Độ phân giải tối đa của biểu tượng hiển thị thông qua upnp:icon.", + "LabelIconMaxHeight": "Chiều cao tối đa của biểu tượng:", + "LabelHttpsPortHelp": "TCP port mà máy chủ Jellyfin HTTPS nên kết nối vào.", + "LabelHttpsPort": "HTTPS port trên máy chủ:", + "LabelHomeScreenSectionValue": "Mục trên trang chủ {0}:", + "LabelHomeNetworkQuality": "Chất lượng mạng trong nhà:", + "LabelHardwareAccelerationTypeHelp": "Hỗ trợ phần cần những thiết lập bổ sung.", + "LabelHardwareAccelerationType": "Hỗ trợ phần cứng:", + "LabelEncoderPreset": "Thiết lập cài sẵn của mã H264 và H265:", + "LabelH264Crf": "CRF của mã H264:", + "LabelGroupMoviesIntoCollectionsHelp": "Khi hiển thị danh sách phim, các bộ phim thuộc về một bộ sưu tập sẽ hiển thị trong một nhóm.", + "LabelGroupMoviesIntoCollections": "Nhóm phim vào bộ sưu tập", + "LabelServerNameHelp": "Tên này sẽ được sử dụng để phân biệt máy chủ và giá trị mặc định là tên của máy tính chủ.", + "LabelFriendlyName": "Tên thân thiện:", + "LabelFormat": "Định dạng:", + "LabelForgotPasswordUsernameHelp": "Nhập vào tên tài khoản nếu bạn nhớ nó.", + "LabelFont": "Kiểu chữ:", + "LabelFolder": "Thư mục:", + "LabelFileOrUrl": "Tệp hoặc URL:", + "LabelFailed": "Thất bại" } diff --git a/src/strings/zh-cn.json b/src/strings/zh-cn.json index 41eb27c9b..0b5117019 100644 --- a/src/strings/zh-cn.json +++ b/src/strings/zh-cn.json @@ -29,7 +29,7 @@ "AlwaysPlaySubtitles": "总是显示", "AlwaysPlaySubtitlesHelp": "无论音频为何种语言,都将加载与语言偏好匹配的字幕。", "Anytime": "任何时间", - "AroundTime": "{0} 左右", + "AroundTime": "大约", "Artists": "艺术家", "AsManyAsPossible": "尽可能多", "Ascending": "升序", @@ -548,7 +548,7 @@ "LabelEmbedAlbumArtDidl": "在DIDL中嵌入专辑封面", "LabelEmbedAlbumArtDidlHelp": "有些设备首选这种方式获取专辑封面。启用该选项可能导致其他设备播放失败。", "LabelEnableAutomaticPortMap": "开启自动端口映射", - "LabelEnableAutomaticPortMapHelp": "尝试通过UPnP将公共端口自动映射到本地端口。这可能不适用于某些型号的路由器。需要服务器重新启动后才会应用更改。", + "LabelEnableAutomaticPortMapHelp": "通过UPnP将路由器端口自动转发到服务器端口。这可能不适用于某些型号的路由器和网络配置。需要服务器重新启动后才会应用更改。", "LabelEnableBlastAliveMessages": "爆发活动信号", "LabelEnableBlastAliveMessagesHelp": "如果该服务器不能被网络中的其他UPnP设备检测到,请启用此选项。", "LabelEnableDlnaClientDiscoveryInterval": "客户端搜寻时间间隔(秒)", @@ -670,7 +670,7 @@ "LabelNumberOfGuideDays": "下载几天的节目指南:", "LabelNumberOfGuideDaysHelp": "下载更多天的节目指南可以帮你进一步查看节目列表并做出提前安排,但下载过程也将耗时更久。它将基于频道数量自动选择。", "LabelOptionalNetworkPath": "(可选的)共享的网络文件夹:", - "LabelOptionalNetworkPathHelp": "如果这个文件夹在你的网络上是共享的,提供这个网络共享地址能够允许其他设备上的 Jellyfin 应用程序直接访问媒体文件。", + "LabelOptionalNetworkPathHelp": "如果这个文件夹在你的网络上是共享的,提供这个网络共享地址能够允许其他设备上的 Jellyfin 应用程序直接访问媒体文件,例如 {0} 或者 {1}。", "LabelOriginalAspectRatio": "原始长宽比:", "LabelOriginalTitle": "原标题:", "LabelOverview": "内容概述:", @@ -1020,7 +1020,7 @@ "OptionMissingEpisode": "缺少的剧集", "OptionMonday": "星期一", "OptionNameSort": "名字", - "OptionNew": "更新...", + "OptionNew": "新建…", "OptionNone": "没有", "OptionOnAppStartup": "在程序启动时", "OptionOnInterval": "在一个期间", @@ -1407,7 +1407,6 @@ "Shows": "节目", "SkipEpisodesAlreadyInMyLibraryHelp": "将使用季和剧集编号对剧集进行比较。", "Smaller": "更小", - "StatsForNerds": "统计数据", "SubtitleSettings": "字幕设置", "SubtitleSettingsIntro": "要配置默认字幕外观和语言设置,请停止视频播放,然后单击应用程序右上角的用户图标。", "TagsValue": "标签:{0}", @@ -1456,7 +1455,7 @@ "ButtonAddImage": "添加图片", "LabelPlayer": "播放器:", "LabelBaseUrl": "基础 URL:", - "LabelBaseUrlHelp": "您可以在此处添加自定义子目录,以便从更唯一的 URL 访问服务器。", + "LabelBaseUrlHelp": "为服务器 URL添加自定义子目录,例如:http://example.com/<baseurl>。", "MusicLibraryHelp": "重播 {0}音乐命名指南{1}。", "HeaderFavoritePeople": "最喜欢的人物", "OptionRandom": "随机", @@ -1511,5 +1510,19 @@ "New": "新的", "HeaderFavoritePlaylists": "收藏的播放列表", "ButtonTogglePlaylist": "播放列表", - "ButtonToggleContextMenu": "更多" + "ButtonToggleContextMenu": "更多", + "HeaderServerAddressSettings": "服务器地址设置", + "HeaderRemoteAccessSettings": "远程访问设置", + "HeaderHttpsSettings": "HTTPS 设置", + "ApiKeysCaption": "当前启用的 API 密钥", + "TabDVR": "DVR", + "SaveChanges": "保存更改", + "LabelRequireHttpsHelp": "开启后服务器将自动将所有 HTTP 请求重定向到 HTTPS。如果服务器没有启用 HTTPS 则不生效。", + "LabelRequireHttps": "强制 HTTPS", + "LabelStable": "稳定版", + "LabelEnableHttpsHelp": "开启服务器对所配置HTTPS 端口的监听。必须配置有效的证书才会生效。", + "LabelEnableHttps": "启用 HTTPS", + "LabelChromecastVersion": "Chromecast版本", + "HeaderDVR": "DVR", + "LabelNightly": "Nightly" } diff --git a/src/strings/zh-hk.json b/src/strings/zh-hk.json index 2d9634d33..97b2d2d1f 100644 --- a/src/strings/zh-hk.json +++ b/src/strings/zh-hk.json @@ -286,7 +286,7 @@ "TabAdvanced": "進階", "TabAlbumArtists": "唱片歌手", "TabAlbums": "專輯", - "TabArtists": "歌手", + "TabArtists": "藝人", "TabCatalog": "目錄", "TabChannels": "頻道", "TabCollections": "藏品", @@ -339,7 +339,7 @@ "Anytime": "任何時間", "AnyLanguage": "任何語言", "Artists": "藝人", - "AsManyAsPossible": "盡可能地越多越好", + "AsManyAsPossible": "越多越好", "Audio": "音頻", "Auto": "自動", "AutoBasedOnLanguageSetting": "自動 (基於語言設定)", @@ -359,15 +359,48 @@ "HeaderFavoriteSongs": "最愛的歌曲", "HeaderFavoriteShows": "最愛的節目", "HeaderFavoriteEpisodes": "最愛的劇集", - "HeaderFavoriteArtists": "最愛藝術家", + "HeaderFavoriteArtists": "最愛的藝人", "HeaderFavoriteAlbums": "最愛專輯", "HeaderContinueWatching": "繼續觀看", - "HeaderAlbumArtists": "專輯藝術家", + "HeaderAlbumArtists": "專輯藝人", "Genres": "風格", "Folders": "檔案夾", "Favorites": "我的最愛", "Collections": "合輯", "Channels": "頻道", "Books": "圖書", - "Albums": "專輯" + "Albums": "專輯", + "Absolute": "絕對", + "AuthProviderHelp": "選擇用於驗證該用戶密碼的身份驗證提供程序。", + "AttributeNew": "新", + "AspectRatio": "長寬比", + "AskAdminToCreateLibrary": "要求管理員創建一個庫。", + "Ascending": "上升", + "Artist": "藝人", + "Art": "藝術", + "AroundTime": "大約{0}", + "AlwaysPlaySubtitlesHelp": "無論語言是哪種音頻,都將加載與語言首選項匹配的字幕。", + "AllowedRemoteAddressesHelp": "IP地址或IP /網絡掩碼條目的逗號分隔列表,用於允許遠程連接的網絡。 如果保留為空白,將允許所有遠程地址。", + "AllowRemoteAccessHelp": "如果未選中,則將阻止所有遠程連接。", + "AllowRemoteAccess": "允許與此Jellyfin服務器的遠程連接。", + "AllowFfmpegThrottlingHelp": "當轉碼或remux距離當前播放位置足夠遠時,請暫停該過程,以減少資源消耗。 在不經常觀看的情況下,此功能最為有用。 如果遇到播放問題,請關閉此功能。", + "AllowOnTheFlySubtitleExtractionHelp": "可以從視頻中提取嵌入式字幕,然後以純文本格式將其交付給客戶端,以幫助防止視頻轉碼。 在某些系統上,這可能需要很長時間,並且會導致提取過程中視頻播放停止。 如果客戶端設備本身不支持嵌入的字幕,則可以禁用此選項以通過視頻轉碼刻錄字幕。", + "AllowOnTheFlySubtitleExtraction": "允許即時提取字幕", + "AllowMediaConversionHelp": "授予或拒絕訪問轉換媒體功能的權限。", + "AllowMediaConversion": "允許媒體轉換", + "AllowHWTranscodingHelp": "允許調諧器即時轉碼流。 這可以幫助減少服務器所需的代碼轉換。", + "AllLibraries": "所有媒體庫", + "AllEpisodes": "所有劇集", + "AllComplexFormats": "所有格式(ASS,SSA,VOBSUB,PGS,SUB,IDX等)", + "AllChannels": "所有頻道", + "Alerts": "警報", + "AlbumArtist": "專輯歌手", + "Album": "專輯", + "Aired": "已播出", + "AirDate": "播出日期", + "AdditionalNotificationServices": "瀏覽插件目錄以安裝其他通知服務。", + "AddToPlayQueue": "添加到播放列", + "AddToCollection": "添加到收藏", + "AddItemToCollectionHelp": "通過搜索項目並使用右鍵單擊或點擊菜單將其添加到集合中,從而將它們添加到集合中。", + "AccessRestrictedTryAgainLater": "目前限制訪問。 請稍後再試。" } diff --git a/src/strings/zh-tw.json b/src/strings/zh-tw.json index f5020837f..ae086d08c 100644 --- a/src/strings/zh-tw.json +++ b/src/strings/zh-tw.json @@ -212,7 +212,7 @@ "OptionMissingEpisode": "缺少了的單元", "OptionMonday": "星期一", "OptionNameSort": "名字", - "OptionNew": "新增...", + "OptionNew": "新增…", "OptionOnAppStartup": "在伺服器啟動", "OptionOnInterval": "每時段", "OptionParentalRating": "家長評級", @@ -413,7 +413,6 @@ "ChannelNumber": "頻道號碼", "Channels": "頻道", "CinemaModeConfigurationHelp": "劇影院模式直接為您的客廳帶來劇場級體驗,同時還可以播放預告片和自定開場白。", - "CinemaModeConfigurationHelp2": "Jellyfin 應用程式將有一個用於啟動或關閉劇院模式的設定。 電視的應用程式預設開啟劇院模式。", "CinemaModeFeatureDescription": "劇院模式用預告片和自定開場白帶給您最真實的劇院體驗。", "CloudSyncFeatureDescription": "將您的媒體備份到雲端當作簡單的備份,收藏和轉檔。", "Collections": "合輯", @@ -501,9 +500,6 @@ "ErrorAddingListingsToSchedulesDirect": "在將電視節目時間表新增到您的 Schedules Direct 帳號時出現錯誤。每個 Schedules Direct 帳號只允許有限的時間表。您在繼續前可能需要登入 Schedules Direct 網站並刪除帳號中的其它列表。", "ErrorAddingGuestAccount1": "新增Jellyfin Connect時發生錯誤。你的賓客有建立Jellyfin帳號嗎?他們可以在 {0} 創建帳號。", "ErrorAddingGuestAccount2": "若你還是遇到問題,請發送email至 {0} 並附上你和他們的email帳號。", - "ErrorAddingJellyfinConnectAccount1": "新增Jellyfin Connect時發生錯誤。您有建立Jellyfin帳號嗎?您可以在 {0} 創建帳號。", - "ErrorAddingJellyfinConnectAccount2": "若你還是遇到問題,請用發生問題的email帳號發送email至 {0}。", - "ErrorAddingJellyfinConnectAccount3": "這個 Jellyfin 帳號已經被連接至一個本地帳號。一個 Jellyfin帳號 只能同時被連接到一個本機帳號。", "ErrorAddingMediaPathToVirtualFolder": "新增媒體路徑時發生錯誤,請確認路徑是否有效,且你的 Jellyfin 伺服器有對該位置的存取權。", "ErrorAddingTunerDevice": "新增調諧器設備時發生錯誤,請確認它是否可被存取後再試一次。", "ErrorAddingXmlTvFile": "存取 XMLTV 檔案時發生錯誤,請確認該檔案是否存在後再試一次。", @@ -514,8 +510,6 @@ "ErrorMessageStartHourGreaterThanEnd": "結束時間必須在開始時間後。", "ErrorMessageUsernameInUse": "用戶名已存在。請重新選個名稱再試。", "ErrorPleaseSelectLineup": "請選擇節目表,然後再試一次。如果沒有可用的節目表,請檢查您的使用者名稱、密碼和郵遞區號是否正確。", - "ErrorReachingJellyfinConnect": "連接 Jellyfin Connect 伺服器時發生錯誤。請確認你的網絡狀態是否穩定後再試一次。", - "ErrorRemovingJellyfinConnectAccount": "移除 Jellyfin Connect 帳號時發生錯誤。請確認你的網絡狀態是否穩定後再試一次。", "ErrorSavingTvProvider": "儲存電視供應商時發生錯誤,請確認是否可存取並重試。", "EveryNDays": "每 {0} 天", "ExitFullscreen": "結束全螢幕", @@ -535,7 +529,6 @@ "FolderTypeUnset": "混合內容", "Folders": "資料夾", "FormatValue": "格式:{0}", - "FreeAppsFeatureDescription": "享受免費的Jellyfin應用程式。", "Fullscreen": "全螢幕", "General": "一般", "Genre": "類型", @@ -615,7 +608,6 @@ "HeaderContainerProfileHelp": "影片容器的設定檔標明了設備播放特定媒體格式時的限制。如果在限制之內則媒體將被轉碼,否則媒體格式將被設定為直接播放。", "HeaderContinueListening": "繼續聆聽", "HeaderContinueWatching": "繼續觀賞", - "HeaderConvertYourRecordings": "為你的錄制轉檔", "HeaderCredits": "製作人員名單", "HeaderDashboardUserPassword": "用戶的密碼被管理在每個用戶的私人配置設置中。", "HeaderDate": "日期", @@ -679,14 +671,7 @@ "HeaderImagePrimary": "主要", "HeaderImages": "圖片", "HeaderInstall": "安裝", - "HeaderInvitationSent": "邀請已傳送", - "HeaderInvitations": "邀請", - "HeaderInviteUser": "邀請使用者", - "HeaderInviteUserHelp": "通過 Jellyfin Connect 與朋友分享你的媒體比以往任何時候都更為簡單。", - "HeaderInviteWithJellyfinConnect": "通過 Jellyfin Connect 邀請", "HeaderItems": "項目", - "HeaderJellyfinAccountAdded": "Jellyfin 帳戶已添加", - "HeaderJellyfinAccountRemoved": "已移除 Jellyfin 帳戶", "HeaderKeepRecording": "繼續錄製", "HeaderKeepSeries": "保存系列", "HeaderKodiMetadataHelp": "要啟用或禁用 NFO 元數據, 請在 Jellyfin “建立媒體庫”頁面中編輯該媒體庫, 然後找到“元數據儲存”部分。", @@ -734,10 +719,6 @@ "HeaderNextVideoPlayingInValue": "下一部影片在 {0} 後播放", "HeaderNotifications": "通知", "HeaderNumberOfPlayers": "播放器", - "HeaderOffline": "離線", - "HeaderOfflineDownloads": "離線媒體", - "HeaderOfflineDownloadsDescription": "下載媒體以離線使用。", - "HeaderOfflineSync": "離線同步", "HeaderOnNow": "現正播放", "HeaderOptions": "選項", "HeaderOtherDisplaySettings": "顯示設定", @@ -824,14 +805,9 @@ "HeaderTryPlayback": "嘗試播放", "HeaderTunerDevices": "調諧器裝置", "BobAndWeaveWithHelp": "Bob and weave (高品質,轉檔慢)", - "ButtonPurchase": "購買", - "ButtonRestorePreviousPurchase": "恢復購買", - "ButtonUnlockWithPurchase": "購買已解鎖", - "LabelIpAddressValue": "IP 位置: {0}", "LabelRunningTimeValue": "運行時間: {0}", "MessageApplicationUpdated": "Jellyfin Server 已經更新", "MessageNamedServerConfigurationUpdatedWithValue": "伺服器設定 {0} 部分已經更新", - "MessageServerConfigurationUpdated": "伺服器設定已經更新", "Movies": "電影", "Photos": "相片", "Playlists": "播放清單", @@ -1678,5 +1654,10 @@ "DeinterlaceMethodHelp": "選擇對隔行掃描內容進行轉碼時所用的反交錯方法。", "BoxSet": "套裝", "UnsupportedPlayback": "Jellyfin 無法解密受 DRM 保護的內容,但仍然會嘗試播放所有內容。某些檔案由於被加密或包含如互動標題等不受支援的內容,在播放時可能會沒有畫面。", - "MessageUnauthorizedUser": "您目前無權存取伺服器,請與您的伺服器管理員聯繫以獲取更多訊息。" + "MessageUnauthorizedUser": "您目前無權存取伺服器,請與您的伺服器管理員聯繫以獲取更多訊息。", + "Filter": "篩選器", + "New": "新增", + "ApiKeysCaption": "目前已啟用的API金鑰列表", + "ButtonTogglePlaylist": "播放清單", + "ButtonToggleContextMenu": "更多" } diff --git a/src/themes/appletv/theme.css b/src/themes/appletv/theme.css index 760038ad7..b3ce2c7e9 100644 --- a/src/themes/appletv/theme.css +++ b/src/themes/appletv/theme.css @@ -293,7 +293,17 @@ html { .emby-checkbox:checked + span + .checkboxOutline, .itemProgressBarForeground { - background-color: #00a4dc; + background: linear-gradient(90deg, rgba(0, 210, 201, 1) 0%, rgba(13, 194, 98, 1) 28%, rgba(0, 75, 185, 1) 100%); +} + +.itemProgressBar { + background: rgba(230, 230, 230, 0.8); + height: 0.18rem; +} + +.innerCardFooter { + border-radius: 0.14rem; + margin: 0.4rem 0.5rem 0.4rem 0.5rem; } .emby-checkbox:focus:not(:checked) + span + .checkboxOutline { @@ -445,6 +455,12 @@ html { border-color: #00a4dc !important; } +.cardContent-button, +.itemDetailImage, +.cardOverlayContainer { + border-radius: 0.5rem; +} + .metadataSidebarIcon { color: #00a4dc; } diff --git a/src/useredit.html b/src/useredit.html index 2a8f17af4..c3a613bed 100644 --- a/src/useredit.html +++ b/src/useredit.html @@ -6,7 +6,7 @@ diff --git a/src/userlibraryaccess.html b/src/userlibraryaccess.html index 4653fd07e..8a6177585 100644 --- a/src/userlibraryaccess.html +++ b/src/userlibraryaccess.html @@ -6,7 +6,7 @@ diff --git a/src/usernew.html b/src/usernew.html index bca1e72fe..fac036aa8 100644 --- a/src/usernew.html +++ b/src/usernew.html @@ -5,7 +5,7 @@

${HeaderAddUser}

- ${Help} + ${Help}
diff --git a/src/userparentalcontrol.html b/src/userparentalcontrol.html index f320c361f..2c13ec801 100644 --- a/src/userparentalcontrol.html +++ b/src/userparentalcontrol.html @@ -4,7 +4,7 @@ diff --git a/src/userpassword.html b/src/userpassword.html index f38e39599..119a0212d 100644 --- a/src/userpassword.html +++ b/src/userpassword.html @@ -4,7 +4,7 @@ diff --git a/src/userprofiles.html b/src/userprofiles.html index 1eaa1006d..98237645d 100644 --- a/src/userprofiles.html +++ b/src/userprofiles.html @@ -8,7 +8,7 @@ - ${Help} + ${Help}
diff --git a/src/wizardlibrary.html b/src/wizardlibrary.html index b8a4fab9d..3a5ca5069 100644 --- a/src/wizardlibrary.html +++ b/src/wizardlibrary.html @@ -3,7 +3,7 @@

${HeaderSetupLibrary}

- +

diff --git a/src/wizardremoteaccess.html b/src/wizardremoteaccess.html index f7ce47dc9..0718c2dc3 100644 --- a/src/wizardremoteaccess.html +++ b/src/wizardremoteaccess.html @@ -13,7 +13,7 @@
${LabelEnableAutomaticPortMapHelp}
diff --git a/src/wizardstart.html b/src/wizardstart.html index c640b8eff..05e282bee 100644 --- a/src/wizardstart.html +++ b/src/wizardstart.html @@ -4,7 +4,7 @@

${WelcomeToProject}

- + ${ButtonQuickStartGuide}
diff --git a/webpack.dev.js b/webpack.dev.js index b86914775..319d492cc 100644 --- a/webpack.dev.js +++ b/webpack.dev.js @@ -2,7 +2,6 @@ const path = require('path'); const common = require('./webpack.common'); const merge = require('webpack-merge'); const packageConfig = require('./package.json'); -const postcssConfig = require('./postcss.config.js'); module.exports = merge(common, { mode: 'development', @@ -31,7 +30,11 @@ module.exports = merge(common, { 'css-loader', { loader: 'postcss-loader', - options: postcssConfig() + options: { + config: { + path: __dirname + } + } } ] }, diff --git a/webpack.prod.js b/webpack.prod.js index 2f5315ea7..0d95b8fa3 100644 --- a/webpack.prod.js +++ b/webpack.prod.js @@ -1,7 +1,6 @@ const common = require('./webpack.common'); const merge = require('webpack-merge'); const packageConfig = require('./package.json'); -const postcssConfig = require('./postcss.config.js'); module.exports = merge(common, { mode: 'production', @@ -24,7 +23,11 @@ module.exports = merge(common, { 'css-loader', { loader: 'postcss-loader', - options: postcssConfig() + options: { + config: { + path: __dirname + } + } } ] }, diff --git a/yarn.lock b/yarn.lock index e384265ff..327099033 100644 --- a/yarn.lock +++ b/yarn.lock @@ -1561,18 +1561,18 @@ atob@^2.1.2: resolved "https://registry.yarnpkg.com/atob/-/atob-2.1.2.tgz#6d9517eb9e030d2436666651e86bd9f6f13533c9" integrity sha512-Wm6ukoaOGJi/73p/cl2GvLjTI5JM1k/O14isD73YML8StrH/7/lRFgmg8nICZgD3bZZvjwCGxtMOD3wWNAu8cg== -autoprefixer@^9.0.0, autoprefixer@^9.6.1, autoprefixer@^9.7.6: - version "9.7.6" - resolved "https://registry.yarnpkg.com/autoprefixer/-/autoprefixer-9.7.6.tgz#63ac5bbc0ce7934e6997207d5bb00d68fa8293a4" - integrity sha512-F7cYpbN7uVVhACZTeeIeealwdGM6wMtfWARVLTy5xmKtgVdBNJvbDRoCK3YO1orcs7gv/KwYlb3iXwu9Ug9BkQ== +autoprefixer@^9.0.0, autoprefixer@^9.6.1, autoprefixer@^9.7.6, autoprefixer@^9.8.0: + version "9.8.0" + resolved "https://registry.yarnpkg.com/autoprefixer/-/autoprefixer-9.8.0.tgz#68e2d2bef7ba4c3a65436f662d0a56a741e56511" + integrity sha512-D96ZiIHXbDmU02dBaemyAg53ez+6F5yZmapmgKcjm35yEe1uVDYI8hGW3VYoGRaG290ZFf91YxHrR518vC0u/A== dependencies: - browserslist "^4.11.1" - caniuse-lite "^1.0.30001039" + browserslist "^4.12.0" + caniuse-lite "^1.0.30001061" chalk "^2.4.2" normalize-range "^0.1.2" num2fraction "^1.2.2" - postcss "^7.0.27" - postcss-value-parser "^4.0.3" + postcss "^7.0.30" + postcss-value-parser "^4.1.0" aws-sign2@~0.7.0: version "0.7.0" @@ -1981,17 +1981,7 @@ browserslist@^1.1.3: caniuse-db "^1.0.30000639" electron-to-chromium "^1.2.7" -browserslist@^4.0.0, browserslist@^4.6.4: - version "4.11.0" - resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-4.11.0.tgz#aef4357b10a8abda00f97aac7cd587b2082ba1ad" - integrity sha512-WqEC7Yr5wUH5sg6ruR++v2SGOQYpyUdYYd4tZoAq1F7y+QXoLoYGXVbxhtaIqWmAJjtNTRjVD3HuJc1OXTel2A== - dependencies: - caniuse-lite "^1.0.30001035" - electron-to-chromium "^1.3.380" - node-releases "^1.1.52" - pkg-up "^3.1.0" - -browserslist@^4.11.1, browserslist@^4.8.2, browserslist@^4.8.5: +browserslist@^4.0.0, browserslist@^4.11.1, browserslist@^4.12.0, browserslist@^4.6.4, browserslist@^4.8.2, browserslist@^4.8.5: version "4.12.0" resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-4.12.0.tgz#06c6d5715a1ede6c51fc39ff67fd647f740b656d" integrity sha512-UH2GkcEDSI0k/lRkuDSzFl9ZZ87skSy9w2XAn1MsZnL+4c4rqbBd3e82UWHbYDpztABrPBhZsTEeuxVfHppqDg== @@ -2231,6 +2221,11 @@ camelcase@^5.0.0, camelcase@^5.3.1: resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-5.3.1.tgz#e3c9b31569e106811df242f715725a1f4c494320" integrity sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg== +camelcase@^6.0.0: + version "6.0.0" + resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-6.0.0.tgz#5259f7c30e35e278f1bdc2a4d91230b37cad981e" + integrity sha512-8KMDF1Vz2gzOq54ONPJS65IvTUaB1cHJ2DMM7MbPmLZljDH1qpzzLsWdiN9pHh6qvkRVDTi/07+eNGch/oLU4w== + caniuse-api@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/caniuse-api/-/caniuse-api-3.0.0.tgz#5e4d90e2274961d46291997df599e3ed008ee4c0" @@ -2251,15 +2246,10 @@ caniuse-db@^1.0.30001017: resolved "https://registry.yarnpkg.com/caniuse-db/-/caniuse-db-1.0.30001039.tgz#b5e8c3bb07a144341644729fa2a5eb2c0deaf47d" integrity sha512-XVk5KMAi8/DI28tQXKuq1PDyuPoD9Ypnda3ctF04TlB+LYIb+bgHq0ZDfNOn0+4cwLENJC0093Vuf0dhkjXQ7Q== -caniuse-lite@^1.0.0, caniuse-lite@^1.0.30000981, caniuse-lite@^1.0.30001039, caniuse-lite@^1.0.30001043: - version "1.0.30001050" - resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001050.tgz#11218af4b6b85dc1089536f31e10e3181e849e71" - integrity sha512-OvGZqalCwmapci76ISq5q4kuAskb1ebqF3FEQBv1LE1kWht0pojlDDqzFlmk5jgYkuZN7MNZ1n+ULwe/7MaDNQ== - -caniuse-lite@^1.0.30001035: - version "1.0.30001036" - resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001036.tgz#930ea5272010d8bf190d859159d757c0b398caf0" - integrity sha512-jU8CIFIj2oR7r4W+5AKcsvWNVIb6Q6OZE3UsrXrZBHFtreT4YgTeOJtTucp+zSedEpTi3L5wASSP0LYIE3if6w== +caniuse-lite@^1.0.0, caniuse-lite@^1.0.30000981, caniuse-lite@^1.0.30001043, caniuse-lite@^1.0.30001061: + version "1.0.30001061" + resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001061.tgz#80ca87ef14eb543a7458e7fd2b5e2face3458c9f" + integrity sha512-SMICCeiNvMZnyXpuoO+ot7FHpMVPlrsR+HmfByj6nY4xYDHXLqMTbgH7ecEkDNXWkH1vaip+ZS0D7VTXwM1KYQ== caseless@~0.12.0: version "0.12.0" @@ -2436,15 +2426,6 @@ cliui@^3.2.0: strip-ansi "^3.0.1" wrap-ansi "^2.0.0" -cliui@^4.0.0: - version "4.1.0" - resolved "https://registry.yarnpkg.com/cliui/-/cliui-4.1.0.tgz#348422dbe82d800b3022eef4f6ac10bf2e4d1b49" - integrity sha512-4FG+RSG9DL7uEwRUZXZn3SS34DiDPfzP0VOiEwtUWlE+AR2EIg+hSyvrIgUUfhdgR/UkAeW2QHgeP+hWrXs7jQ== - dependencies: - string-width "^2.1.1" - strip-ansi "^4.0.0" - wrap-ansi "^2.0.0" - cliui@^5.0.0: version "5.0.0" resolved "https://registry.yarnpkg.com/cliui/-/cliui-5.0.0.tgz#deefcfdb2e800784aa34f46fa08e06851c7bbbc5" @@ -3174,10 +3155,10 @@ dashdash@^1.12.0: dependencies: assert-plus "^1.0.0" -date-fns@^2.12.0: - version "2.12.0" - resolved "https://registry.yarnpkg.com/date-fns/-/date-fns-2.12.0.tgz#01754c8a2f3368fc1119cf4625c3dad8c1845ee6" - integrity sha512-qJgn99xxKnFgB1qL4jpxU7Q2t0LOn1p8KMIveef3UZD7kqjT3tpFNNdXJelEHhE+rUgffriXriw/sOSU+cS1Hw== +date-fns@^2.14.0: + version "2.14.0" + resolved "https://registry.yarnpkg.com/date-fns/-/date-fns-2.14.0.tgz#359a87a265bb34ef2e38f93ecf63ac453f9bc7ba" + integrity sha512-1zD+68jhFgDIM0rF05rcwYO8cExdNqxjq4xP1QKM60Q45mnO6zaMWB4tOzrIr4M4GSLntsKeE4c9Bdl2jhL/yw== dateformat@^2.0.0: version "2.2.0" @@ -3528,12 +3509,12 @@ dom-serializer@0: domelementtype "^2.0.1" entities "^2.0.0" -dom7@^2.1.3: - version "2.1.3" - resolved "https://registry.yarnpkg.com/dom7/-/dom7-2.1.3.tgz#a736f9c3bfbc4ca039a81cd095f97d1d7f3de19c" - integrity sha512-QTxHHDox+M6ZFz1zHPAHZKI3JOHY5iY4i9BK2uctlggxKQwRhO3q3HHFq1BKsT25Bm/ySSj70K6Wk/G4bs9rMQ== +dom7@^2.1.5: + version "2.1.5" + resolved "https://registry.yarnpkg.com/dom7/-/dom7-2.1.5.tgz#a79411017800b31d8400070cdaebbfc92c1f6377" + integrity sha512-xnhwVgyOh3eD++/XGtH+5qBwYTgCm0aW91GFgPJ3XG+jlsRLyJivnbP0QmUBFhI+Oaz9FV0s7cxgXHezwOEBYA== dependencies: - ssr-window "^1.0.1" + ssr-window "^2.0.0" domain-browser@^1.1.1: version "1.2.0" @@ -3700,11 +3681,6 @@ electron-to-chromium@^1.2.7, electron-to-chromium@^1.3.413: resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.3.427.tgz#ea43d02908a8c71f47ebb46e09de5a3cf8236f04" integrity sha512-/rG5G7Opcw68/Yrb4qYkz07h3bESVRJjUl4X/FrKLXzoUJleKm6D7K7rTTz8V5LUWnd+BbTOyxJX2XprRqHD8A== -electron-to-chromium@^1.3.380: - version "1.3.430" - resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.3.430.tgz#33914f7c2db771bdcf30977bd4fd6258ee8a2f37" - integrity sha512-HMDYkANGhx6vfbqpOf/hc6hWEmiOipOHGDeRDeUb3HLD3XIWpvKQxFgWf0tgHcr3aNv6I/8VPecplqmQsXoZSw== - elliptic@^6.0.0: version "6.5.2" resolved "https://registry.yarnpkg.com/elliptic/-/elliptic-6.5.2.tgz#05c5678d7173c049d8ca433552224a495d0e3762" @@ -4889,10 +4865,10 @@ get-stdin@^6.0.0: resolved "https://registry.yarnpkg.com/get-stdin/-/get-stdin-6.0.0.tgz#9e09bf712b360ab9225e812048f71fde9c89657b" integrity sha512-jp4tHawyV7+fkkSKyvjuLZswblUtz+SQKzSWnBbii16BuZksJlU1wuBYXY75r+duh/llF1ur6oNwi+2ZzjKZ7g== -get-stdin@^7.0.0: - version "7.0.0" - resolved "https://registry.yarnpkg.com/get-stdin/-/get-stdin-7.0.0.tgz#8d5de98f15171a125c5e516643c7a6d0ea8a96f6" - integrity sha512-zRKcywvrXlXsA0v0i9Io4KDRaAw7+a1ZpjRwl9Wox8PFlVCCHra7E9c4kqXCoCM9nR5tBkaTTZRBoCm60bFqTQ== +get-stdin@^8.0.0: + version "8.0.0" + resolved "https://registry.yarnpkg.com/get-stdin/-/get-stdin-8.0.0.tgz#cbad6a73feb75f6eeb22ba9e01f89aa28aa97a53" + integrity sha512-sY22aA6xchAzprjyqmSEQv4UbAAzRN0L2dQB0NlN5acTTK9Don6nhoc3eAbUnpZiCANAMfd/+40kVdKfFygohg== get-stream@3.0.0, get-stream@^3.0.0: version "3.0.0" @@ -5237,10 +5213,10 @@ gulp-babel@^8.0.0: through2 "^2.0.0" vinyl-sourcemaps-apply "^0.2.0" -gulp-cli@^2.2.0: - version "2.2.0" - resolved "https://registry.yarnpkg.com/gulp-cli/-/gulp-cli-2.2.0.tgz#5533126eeb7fe415a7e3e84a297d334d5cf70ebc" - integrity sha512-rGs3bVYHdyJpLqR0TUBnlcZ1O5O++Zs4bA0ajm+zr3WFCfiSLjGwoCBqFs18wzN+ZxahT9DkOK5nDf26iDsWjA== +gulp-cli@^2.2.0, gulp-cli@^2.2.1: + version "2.2.1" + resolved "https://registry.yarnpkg.com/gulp-cli/-/gulp-cli-2.2.1.tgz#376e427661b7996430a89d71c15df75defa3360a" + integrity sha512-yEMxrXqY8mJFlaauFQxNrCpzWJThu0sH1sqlToaTOT063Hub9s/Nt2C+GSLe6feQ/IMWrHvGOOsyES7CQc9O+A== dependencies: ansi-colors "^1.0.1" archy "^1.0.0" @@ -5612,10 +5588,10 @@ hosted-git-info@^2.1.4: resolved "https://registry.yarnpkg.com/hosted-git-info/-/hosted-git-info-2.8.8.tgz#7539bd4bc1e0e0a895815a2e0262420b12858488" integrity sha512-f/wzC2QaWBs7t9IYqB4T3sR1xviIViXJRJTWBlx2Gf3g0Xi5vI7Yy4koXQ1c9OYDGHN9sBy1DQ2AB8fqZBWhUg== -howler@^2.1.3: - version "2.1.3" - resolved "https://registry.yarnpkg.com/howler/-/howler-2.1.3.tgz#07c88618f8767e879407a4d647fe2d6d5f15f121" - integrity sha512-PSGbOi1EYgw80C5UQbxtJM7TmzD+giJunIMBYyH3RVzHZx2fZLYBoes0SpVVHi/SFa1GoNtgXj/j6I7NOKYBxQ== +howler@^2.2.0: + version "2.2.0" + resolved "https://registry.yarnpkg.com/howler/-/howler-2.2.0.tgz#0e2c780997ae65ab9a1a186333031beac1c63c6b" + integrity sha512-sGPkrAQy7jh5mNDbkRNG0F82R2HFDYNsQXBcX4smXQT0y0F4UMsa/+jXaGwWvcrajWr2tDB7JUkH7G5qSnuIyQ== hpack.js@^2.1.6: version "2.1.6" @@ -5642,7 +5618,7 @@ html-comment-regex@^1.1.0, html-comment-regex@^1.1.2: resolved "https://registry.yarnpkg.com/html-comment-regex/-/html-comment-regex-1.1.2.tgz#97d4688aeb5c81886a364faa0cad1dda14d433a7" integrity sha512-P+M65QY2JQ5Y0G9KKdlDpo0zK+/OHptU5AaBwUfAIDJZk1MYf32Frm84EcOytfJE0t5JvkAnKlmjsXDnWzCJmQ== -html-entities@^1.2.1: +html-entities@^1.3.1: version "1.3.1" resolved "https://registry.yarnpkg.com/html-entities/-/html-entities-1.3.1.tgz#fb9a1a4b5b14c5daba82d3e34c6ae4fe701a0e44" integrity sha512-rhE/4Z3hIhzHAUKbW8jVcCyuT5oJCXXqhN/6mXXVCpzTmvJnoH2HL/bt3EZ6p55jbFJBeAe1ZNpL5BugLujxNA== @@ -6563,19 +6539,19 @@ isurl@^1.0.0-alpha5: has-to-string-tag-x "^1.2.0" is-object "^1.0.1" -jellyfin-apiclient@^1.1.1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/jellyfin-apiclient/-/jellyfin-apiclient-1.1.1.tgz#9b9e6e2f827d221ef000eb3dac09dda7623a6a06" - integrity sha512-ga+LAVxRu9LvnNI1gx53iZTvN/4VnwAdUOUX5xfq+3KJXeg8rWcPg4sdArR7efZeN9Cs60diKwDw8Y+RlnYmHA== +jellyfin-apiclient@^1.1.2: + version "1.1.2" + resolved "https://registry.yarnpkg.com/jellyfin-apiclient/-/jellyfin-apiclient-1.1.2.tgz#e9983f3c515d0f6fbf7d57b89b4801dd9f83d12c" + integrity sha512-pJ/X4oY6EycFeRuR2Ui41ukCB9jNfPHZLtciZlInYVtselZpEG/d6oqH91lp4wIIql4vXRWi2pMFciS+sHpTsA== "jellyfin-noto@https://github.com/jellyfin/jellyfin-noto": version "1.0.3" resolved "https://github.com/jellyfin/jellyfin-noto#b784602db063734c721a46563ae5d6577ec2b35d" -jquery@>=1.9.1, jquery@^3.5.0: - version "3.5.0" - resolved "https://registry.yarnpkg.com/jquery/-/jquery-3.5.0.tgz#9980b97d9e4194611c36530e7dc46a58d7340fc9" - integrity sha512-Xb7SVYMvygPxbFMpTFQiHh1J7HClEaThguL15N/Gg37Lri/qKyhRGZYzHRyLH8Stq3Aow0LsHO2O2ci86fCrNQ== +jquery@>=1.9.1, jquery@^3.5.1: + version "3.5.1" + resolved "https://registry.yarnpkg.com/jquery/-/jquery-3.5.1.tgz#d7b4d08e1bfdb86ad2f1a3d039ea17304717abb5" + integrity sha512-XwIBPqcMn57FxfT+Go5pzySnm4KWkT1Tv7gjrpT1srtf8Weynl6R273VJ5GjkRb51IzMp5nbaPjJXMWeju2MKg== js-base64@^2.1.8, js-base64@^2.1.9: version "2.5.2" @@ -6734,10 +6710,10 @@ known-css-properties@^0.11.0: resolved "https://registry.yarnpkg.com/known-css-properties/-/known-css-properties-0.11.0.tgz#0da784f115ea77c76b81536d7052e90ee6c86a8a" integrity sha512-bEZlJzXo5V/ApNNa5z375mJC6Nrz4vG43UgcSCrg2OHC+yuB6j0iDSrY7RQ/+PRofFB03wNIIt9iXIVLr4wc7w== -known-css-properties@^0.18.0: - version "0.18.0" - resolved "https://registry.yarnpkg.com/known-css-properties/-/known-css-properties-0.18.0.tgz#d6e00b56ee1d5b0d171fd86df1583cfb012c521f" - integrity sha512-69AgJ1rQa7VvUsd2kpvVq+VeObDuo3zrj0CzM5Slmf6yduQFAI2kXPDQJR2IE/u6MSAUOJrwSzjg5vlz8qcMiw== +known-css-properties@^0.19.0: + version "0.19.0" + resolved "https://registry.yarnpkg.com/known-css-properties/-/known-css-properties-0.19.0.tgz#5d92b7fa16c72d971bda9b7fe295bdf61836ee5b" + integrity sha512-eYboRV94Vco725nKMlpkn3nV2+96p9c3gKXRsYqAJSswSENvBhN7n5L+uDhY58xQa0UukWsDMTGELzmD8Q+wTA== last-run@^1.1.0: version "1.1.1" @@ -6807,10 +6783,6 @@ levn@^0.3.0, levn@~0.3.0: prelude-ls "~1.1.2" type-check "~0.3.2" -"libass-wasm@https://github.com/jellyfin/JavascriptSubtitlesOctopus#4.0.0-jf-cordova": - version "4.0.0" - resolved "https://github.com/jellyfin/JavascriptSubtitlesOctopus#b38056588bfaebc18a8353cb1757de0a815ac879" - "libass-wasm@https://github.com/jellyfin/JavascriptSubtitlesOctopus#4.0.0-jf-smarttv": version "4.0.0" resolved "https://github.com/jellyfin/JavascriptSubtitlesOctopus#58e9a3f1a7f7883556ee002545f445a430120639" @@ -7098,12 +7070,12 @@ log-symbols@^2.0.0, log-symbols@^2.2.0: dependencies: chalk "^2.0.1" -log-symbols@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/log-symbols/-/log-symbols-3.0.0.tgz#f3a08516a5dea893336a7dee14d18a1cfdab77c4" - integrity sha512-dSkNGuI7iG3mfvDzUuYZyvk5dD9ocYCYzNU6CYDE6+Xqd+gwme6Z00NS3dUh8mq/73HaEtT7m6W+yUPtU6BZnQ== +log-symbols@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/log-symbols/-/log-symbols-4.0.0.tgz#69b3cc46d20f448eccdb75ea1fa733d9e821c920" + integrity sha512-FN8JBzLx6CzeMrB0tg6pqlGU1wCrXW+ZXGH481kfsBqer0hToTIiHdjH4Mq8xJUbvATujKCvaREGWpGUionraA== dependencies: - chalk "^2.4.2" + chalk "^4.0.0" logalot@^2.0.0, logalot@^2.1.0: version "2.1.0" @@ -7113,7 +7085,7 @@ logalot@^2.0.0, logalot@^2.1.0: figures "^1.3.5" squeak "^1.0.0" -loglevel@^1.6.6: +loglevel@^1.6.8: version "1.6.8" resolved "https://registry.yarnpkg.com/loglevel/-/loglevel-1.6.8.tgz#8a25fb75d092230ecd4457270d80b54e28011171" integrity sha512-bsU7+gc9AJ2SqpzxwU3+1fedl8zAntbtC5XYlt3s2j1hJcn2PsXSmgN8TaLG/J1/2mod4+cE/3vNL70/c1RNCA== @@ -7412,12 +7384,14 @@ meow@^5.0.0: trim-newlines "^2.0.0" yargs-parser "^10.0.0" -meow@^6.1.0: - version "6.1.1" - resolved "https://registry.yarnpkg.com/meow/-/meow-6.1.1.tgz#1ad64c4b76b2a24dfb2f635fddcadf320d251467" - integrity sha512-3YffViIt2QWgTy6Pale5QpopX/IvU3LPL03jOTqp6pGj3VjesdO/U8CuHMKpnQr4shCNCM5fd5XFFvIIl6JBHg== +meow@^7.0.1: + version "7.0.1" + resolved "https://registry.yarnpkg.com/meow/-/meow-7.0.1.tgz#1ed4a0a50b3844b451369c48362eb0515f04c1dc" + integrity sha512-tBKIQqVrAHqwit0vfuFPY3LlzJYkEOFyKa3bPgxzNl6q/RtN8KQ+ALYEASYuFayzSAsjlhXj/JZ10rH85Q6TUw== dependencies: "@types/minimist" "^1.2.0" + arrify "^2.0.1" + camelcase "^6.0.0" camelcase-keys "^6.2.2" decamelize-keys "^1.1.0" hard-rejection "^2.1.0" @@ -7795,11 +7769,6 @@ node-libs-browser@^2.2.1: util "^0.11.0" vm-browserify "^1.0.1" -node-releases@^1.1.52: - version "1.1.55" - resolved "https://registry.yarnpkg.com/node-releases/-/node-releases-1.1.55.tgz#8af23b7c561d8e2e6e36a46637bab84633b07cee" - integrity sha512-H3R3YR/8TjT5WPin/wOoHOUPHgvj8leuU/Keta/rwelEQN9pA/S2Dx8/se4pZ2LBxSd0nAGzsNzhqwa77v7F1w== - node-releases@^1.1.53: version "1.1.53" resolved "https://registry.yarnpkg.com/node-releases/-/node-releases-1.1.53.tgz#2d821bfa499ed7c5dffc5e2f28c88e78a08ee3f4" @@ -8182,7 +8151,7 @@ os-locale@^1.4.0: dependencies: lcid "^1.0.0" -os-locale@^3.0.0, os-locale@^3.1.0: +os-locale@^3.1.0: version "3.1.0" resolved "https://registry.yarnpkg.com/os-locale/-/os-locale-3.1.0.tgz#a802a6ee17f24c10483ab9935719cef4ed16bf1a" integrity sha512-Z8l3R4wYWM40/52Z+S265okfFj8Kt2cC2MKY+xNi3kFs+XGI7WXu/I309QQQYbRW4ijiZ+yxs9pqEhJh0DqW3Q== @@ -8671,13 +8640,6 @@ pkg-up@^2.0.0: dependencies: find-up "^2.1.0" -pkg-up@^3.1.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/pkg-up/-/pkg-up-3.1.0.tgz#100ec235cc150e4fd42519412596a28512a0def5" - integrity sha512-nDywThFk1i4BQK4twPQ6TA4RT8bDY96yeuCVBWL3ePARCiEKDRSrNGbFIgUJpLp+XeIR65v8ra7WuJOFUBtkMA== - dependencies: - find-up "^3.0.0" - plugin-error@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/plugin-error/-/plugin-error-1.0.1.tgz#77016bd8919d0ac377fdcdd0322328953ca5781c" @@ -8702,7 +8664,7 @@ plur@^3.0.1: dependencies: irregular-plurals "^2.0.0" -portfinder@^1.0.25: +portfinder@^1.0.26: version "1.0.26" resolved "https://registry.yarnpkg.com/portfinder/-/portfinder-1.0.26.tgz#475658d56ca30bed72ac7f1378ed350bd1b64e70" integrity sha512-Xi7mKxJHHMI3rIUrnm/jjUgwhbYMkp/XKEcZX3aG4BrumLpq3nmoQMX+ClYnDZnZ/New7IatC1no5RX0zo1vXQ== @@ -9440,7 +9402,7 @@ postcss-value-parser@^3.0.0, postcss-value-parser@^3.3.0: resolved "https://registry.yarnpkg.com/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz#9ff822547e2893213cf1c30efa51ac5fd1ba8281" integrity sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ== -postcss-value-parser@^4.0.0, postcss-value-parser@^4.0.2, postcss-value-parser@^4.0.3: +postcss-value-parser@^4.0.0, postcss-value-parser@^4.0.2, postcss-value-parser@^4.0.3, postcss-value-parser@^4.1.0: version "4.1.0" resolved "https://registry.yarnpkg.com/postcss-value-parser/-/postcss-value-parser-4.1.0.tgz#443f6a20ced6481a2bda4fa8532a6e55d789a2cb" integrity sha512-97DXOFbQJhk71ne5/Mt6cOu6yxsSfM0QGQyl0L25Gca4yGWEGJaig7l7gbCX623VqTBNGLRLaVUCnNkcedlRSQ== @@ -9464,10 +9426,10 @@ postcss@^5.0.0, postcss@^5.0.18: source-map "^0.5.6" supports-color "^3.2.3" -postcss@^7.0.0, postcss@^7.0.1, postcss@^7.0.13, postcss@^7.0.14, postcss@^7.0.16, postcss@^7.0.17, postcss@^7.0.2, postcss@^7.0.21, postcss@^7.0.26, postcss@^7.0.27, postcss@^7.0.5, postcss@^7.0.6, postcss@^7.0.7: - version "7.0.28" - resolved "https://registry.yarnpkg.com/postcss/-/postcss-7.0.28.tgz#d349ced7743475717ba91f6810efb58c51fb5dbb" - integrity sha512-YU6nVhyWIsVtlNlnAj1fHTsUKW5qxm3KEgzq2Jj6KTEFOTK8QWR12eIDvrlWhiSTK8WIBFTBhOJV4DY6dUuEbw== +postcss@^7.0.0, postcss@^7.0.1, postcss@^7.0.13, postcss@^7.0.14, postcss@^7.0.16, postcss@^7.0.17, postcss@^7.0.2, postcss@^7.0.21, postcss@^7.0.26, postcss@^7.0.27, postcss@^7.0.30, postcss@^7.0.5, postcss@^7.0.6, postcss@^7.0.7: + version "7.0.30" + resolved "https://registry.yarnpkg.com/postcss/-/postcss-7.0.30.tgz#cc9378beffe46a02cbc4506a0477d05fcea9a8e2" + integrity sha512-nu/0m+NtIzoubO+xdAlwZl/u5S5vi/y6BCsoL8D+8IxsD3XvBS8X4YEADNIVXKVuQvduiucnRv+vPIqj56EGMQ== dependencies: chalk "^2.4.2" source-map "^0.6.1" @@ -10595,10 +10557,10 @@ sha.js@^2.4.0, sha.js@^2.4.8: inherits "^2.0.1" safe-buffer "^5.0.1" -shaka-player@^2.5.10: - version "2.5.10" - resolved "https://registry.yarnpkg.com/shaka-player/-/shaka-player-2.5.10.tgz#6f4e72e2433002d11824a223b02edd5004e30e2b" - integrity sha512-kS9TQL6bWODo4XNnozERZWsEiWlLZ6huspPx4ZjmMjeOBL9gwqlULLfLyO+5gA3CYV/dk9LaAi1WAEaLWckGpA== +shaka-player@^2.5.11: + version "2.5.11" + resolved "https://registry.yarnpkg.com/shaka-player/-/shaka-player-2.5.11.tgz#af550a0ee3aadf7be4e64e1a4d615c8d728e0b0f" + integrity sha512-SiZd/vCUPeKXNPnfWcBdraskdUYLtm+DITWceCZvRP4eoxxQuRI0MekVJTGqu5d7B2yW9TdQh5ojyRAjbQPFGA== dependencies: eme-encryption-scheme-polyfill "^2.0.1" @@ -10767,13 +10729,14 @@ sockjs-client@1.4.0: json3 "^3.3.2" url-parse "^1.4.3" -sockjs@0.3.19: - version "0.3.19" - resolved "https://registry.yarnpkg.com/sockjs/-/sockjs-0.3.19.tgz#d976bbe800af7bd20ae08598d582393508993c0d" - integrity sha512-V48klKZl8T6MzatbLlzzRNhMepEys9Y4oGFpypBFFn1gLI/QQ9HtLLyWJNbPlwGLelOVOEijUbTTJeLLI59jLw== +sockjs@0.3.20: + version "0.3.20" + resolved "https://registry.yarnpkg.com/sockjs/-/sockjs-0.3.20.tgz#b26a283ec562ef8b2687b44033a4eeceac75d855" + integrity sha512-SpmVOVpdq0DJc0qArhF3E5xsxvaiqGNb73XfgBpK1y3UD5gs8DSo8aCTsuT5pX8rssdc2NDIzANwP9eCAiSdTA== dependencies: faye-websocket "^0.10.0" - uuid "^3.0.1" + uuid "^3.4.0" + websocket-driver "0.6.5" sort-keys-length@^1.0.0: version "1.0.1" @@ -10890,7 +10853,7 @@ spdy-transport@^3.0.0: readable-stream "^3.0.6" wbuf "^1.7.3" -spdy@^4.0.1: +spdy@^4.0.2: version "4.0.2" resolved "https://registry.yarnpkg.com/spdy/-/spdy-4.0.2.tgz#b74f466203a3eda452c02492b91fb9e84a27677b" integrity sha512-r46gZQZQV+Kl9oItvl1JZZqJKGr+oEkB08A6BzkiR7593/7IbtuncXHd2YoYeTsG4157ZssMu9KYvUHLcjcDoA== @@ -10952,10 +10915,10 @@ sshpk@^1.7.0: safer-buffer "^2.0.2" tweetnacl "~0.14.0" -ssr-window@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/ssr-window/-/ssr-window-1.0.1.tgz#30752a6a4666e7767f0b7e6aa6fc2fdbd0d9b369" - integrity sha512-dgFqB+f00LJTEgb6UXhx0h+SrG50LJvti2yMKMqAgzfUmUXZrLSv2fjULF7AWGwK25EXu8+smLR3jYsJQChPsg== +ssr-window@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/ssr-window/-/ssr-window-2.0.0.tgz#98c301aef99523317f8d69618f0010791096efc4" + integrity sha512-NXzN+/HPObKAx191H3zKlYomE5WrVIkoCB5IaSdvKokxTpjBdWfr0RaP+1Z5KOfDT0ZVz+2tdtiBkhsEQ9p+0A== ssri@^6.0.1: version "6.0.1" @@ -11088,7 +11051,7 @@ string-width@^1.0.1, string-width@^1.0.2: is-fullwidth-code-point "^1.0.0" strip-ansi "^3.0.0" -"string-width@^1.0.2 || 2", string-width@^2.0.0, string-width@^2.1.1: +"string-width@^1.0.2 || 2": version "2.1.1" resolved "https://registry.yarnpkg.com/string-width/-/string-width-2.1.1.tgz#ab93f27a8dc13d28cac815c462143a6d9012ae9e" integrity sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw== @@ -11349,10 +11312,10 @@ stylelint-order@^4.0.0: postcss "^7.0.26" postcss-sorting "^5.0.1" -stylelint@^13.3.3: - version "13.3.3" - resolved "https://registry.yarnpkg.com/stylelint/-/stylelint-13.3.3.tgz#e267a628ebfc1adad6f5a1fe818724c34171402b" - integrity sha512-j8Oio2T1YNiJc6iXDaPYd74Jg4zOa1bByNm/g9/Nvnq4tDPsIjMi46jhRZyPPktGPwjJ5FwcmCqIRlH6PVP8mA== +stylelint@^13.5.0: + version "13.5.0" + resolved "https://registry.yarnpkg.com/stylelint/-/stylelint-13.5.0.tgz#9edbf90c8c02c47fd0c4818376e3799145f22cab" + integrity sha512-+Jy7ieKAWKTf2tmcAE7jgScxH39Urb87i0bjK/enScFaGWWaFn4kAPwepGOSk2b7CLUDVt/O6kwA0x0p/V7moQ== dependencies: "@stylelint/postcss-css-in-js" "^0.37.1" "@stylelint/postcss-markdown" "^0.36.1" @@ -11363,7 +11326,7 @@ stylelint@^13.3.3: debug "^4.1.1" execall "^2.0.0" file-entry-cache "^5.0.1" - get-stdin "^7.0.0" + get-stdin "^8.0.0" global-modules "^2.0.0" globby "^11.0.0" globjoin "^0.1.4" @@ -11371,15 +11334,15 @@ stylelint@^13.3.3: ignore "^5.1.4" import-lazy "^4.0.0" imurmurhash "^0.1.4" - known-css-properties "^0.18.0" + known-css-properties "^0.19.0" leven "^3.1.0" lodash "^4.17.15" - log-symbols "^3.0.0" + log-symbols "^4.0.0" mathml-tag-names "^2.1.3" - meow "^6.1.0" + meow "^7.0.1" micromatch "^4.0.2" normalize-selector "^0.2.0" - postcss "^7.0.27" + postcss "^7.0.30" postcss-html "^0.36.0" postcss-less "^3.1.4" postcss-media-query-parser "^0.2.3" @@ -11390,7 +11353,7 @@ stylelint@^13.3.3: postcss-scss "^2.0.0" postcss-selector-parser "^6.0.2" postcss-syntax "^0.36.2" - postcss-value-parser "^4.0.3" + postcss-value-parser "^4.1.0" resolve-from "^5.0.0" slash "^3.0.0" specificity "^0.4.1" @@ -11528,13 +11491,13 @@ svgo@^1.0.0, svgo@^1.3.2: unquote "~1.1.1" util.promisify "~1.0.0" -swiper@^5.3.7: - version "5.3.8" - resolved "https://registry.yarnpkg.com/swiper/-/swiper-5.3.8.tgz#25c555d73787d35aa56418b904cb3ed4423bade8" - integrity sha512-bCxrayTgzC2bZBRuFwAx7T4exWeHqMADBpcuTQ7PNCOIIzJRPqNh4ySIvW06LEEU3Q0KncaNre4hrn+jXcWivQ== +swiper@^5.4.1: + version "5.4.1" + resolved "https://registry.yarnpkg.com/swiper/-/swiper-5.4.1.tgz#6731e000e97f8b6560c11b141ebaf559063af565" + integrity sha512-l2EiWe7uOXB2EBMVLtJqn51FW22wF9e24WETT+S+tuFNvSDq1gadc/hyGGsAMqFGKJKIO6q6cqk7ToVaOI+onw== dependencies: - dom7 "^2.1.3" - ssr-window "^1.0.1" + dom7 "^2.1.5" + ssr-window "^2.0.0" symbol-observable@1.0.1: version "1.0.1" @@ -12302,7 +12265,7 @@ utils-merge@1.0.1: resolved "https://registry.yarnpkg.com/utils-merge/-/utils-merge-1.0.1.tgz#9f95710f50a267947b2ccc124741c1028427e713" integrity sha1-n5VxD1CiZ5R7LMwSR0HBAoQn5xM= -uuid@^3.0.1, uuid@^3.3.2: +uuid@^3.0.1, uuid@^3.3.2, uuid@^3.4.0: version "3.4.0" resolved "https://registry.yarnpkg.com/uuid/-/uuid-3.4.0.tgz#b23e4358afa8a202fe7a100af1f5f883f02007ee" integrity sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A== @@ -12539,10 +12502,10 @@ webpack-dev-middleware@^3.7.2: range-parser "^1.2.1" webpack-log "^2.0.0" -webpack-dev-server@^3.10.3: - version "3.10.3" - resolved "https://registry.yarnpkg.com/webpack-dev-server/-/webpack-dev-server-3.10.3.tgz#f35945036813e57ef582c2420ef7b470e14d3af0" - integrity sha512-e4nWev8YzEVNdOMcNzNeCN947sWJNd43E5XvsJzbAL08kGc2frm1tQ32hTJslRS+H65LCb/AaUCYU7fjHCpDeQ== +webpack-dev-server@^3.11.0: + version "3.11.0" + resolved "https://registry.yarnpkg.com/webpack-dev-server/-/webpack-dev-server-3.11.0.tgz#8f154a3bce1bcfd1cc618ef4e703278855e7ff8c" + integrity sha512-PUxZ+oSTxogFQgkTtFndEtJIPNmml7ExwufBZ9L2/Xyyd5PnOL5UreWe5ZT7IU25DSdykL9p1MLQzmLh2ljSeg== dependencies: ansi-html "0.0.7" bonjour "^3.5.0" @@ -12552,31 +12515,31 @@ webpack-dev-server@^3.10.3: debug "^4.1.1" del "^4.1.1" express "^4.17.1" - html-entities "^1.2.1" + html-entities "^1.3.1" http-proxy-middleware "0.19.1" import-local "^2.0.0" internal-ip "^4.3.0" ip "^1.1.5" is-absolute-url "^3.0.3" killable "^1.0.1" - loglevel "^1.6.6" + loglevel "^1.6.8" opn "^5.5.0" p-retry "^3.0.1" - portfinder "^1.0.25" + portfinder "^1.0.26" schema-utils "^1.0.0" selfsigned "^1.10.7" semver "^6.3.0" serve-index "^1.9.1" - sockjs "0.3.19" + sockjs "0.3.20" sockjs-client "1.4.0" - spdy "^4.0.1" + spdy "^4.0.2" strip-ansi "^3.0.1" supports-color "^6.1.0" url "^0.11.0" webpack-dev-middleware "^3.7.2" webpack-log "^2.0.0" ws "^6.2.1" - yargs "12.0.5" + yargs "^13.3.2" webpack-log@^2.0.0: version "2.0.0" @@ -12645,6 +12608,13 @@ webpack@^4.26.1, webpack@^4.41.5: watchpack "^1.6.1" webpack-sources "^1.4.1" +websocket-driver@0.6.5: + version "0.6.5" + resolved "https://registry.yarnpkg.com/websocket-driver/-/websocket-driver-0.6.5.tgz#5cb2556ceb85f4373c6d8238aa691c8454e13a36" + integrity sha1-XLJVbOuF9Dc8bYI4qmkchFThOjY= + dependencies: + websocket-extensions ">=0.1.1" + websocket-driver@>=0.5.1: version "0.7.3" resolved "https://registry.yarnpkg.com/websocket-driver/-/websocket-driver-0.7.3.tgz#a2d4e0d4f4f116f1e6297eba58b05d430100e9f9" @@ -12797,7 +12767,7 @@ y18n@^3.2.1: resolved "https://registry.yarnpkg.com/y18n/-/y18n-3.2.1.tgz#6d15fba884c08679c0d77e88e7759e811e07fa41" integrity sha1-bRX7qITAhnnA136I53WegR4H+kE= -"y18n@^3.2.1 || ^4.0.0", y18n@^4.0.0: +y18n@^4.0.0: version "4.0.0" resolved "https://registry.yarnpkg.com/y18n/-/y18n-4.0.0.tgz#95ef94f85ecc81d007c264e190a120f0a3c8566b" integrity sha512-r9S/ZyXu/Xu9q1tYlpsLIsa3EeLXXk0VwlxqTcFRfg9EhMW+17kbt9G0NrgCmhGb5vT2hyhJZLfDGx+7+5Uj/w== @@ -12826,14 +12796,6 @@ yargs-parser@^10.0.0: dependencies: camelcase "^4.1.0" -yargs-parser@^11.1.1: - version "11.1.1" - resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-11.1.1.tgz#879a0865973bca9f6bab5cbdf3b1c67ec7d3bcf4" - integrity sha512-C6kB/WJDiaxONLJQnF8ccx9SEeoTTLek8RVbaOIsrAUS8VrBEXfmeSnCZxygc+XC2sNMBIwOOnfcxiynjHsVSQ== - dependencies: - camelcase "^5.0.0" - decamelize "^1.2.0" - yargs-parser@^13.1.0, yargs-parser@^13.1.2: version "13.1.2" resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-13.1.2.tgz#130f09702ebaeef2650d54ce6e3e5706f7a4fb38" @@ -12864,24 +12826,6 @@ yargs-parser@^5.0.0: dependencies: camelcase "^3.0.0" -yargs@12.0.5: - version "12.0.5" - resolved "https://registry.yarnpkg.com/yargs/-/yargs-12.0.5.tgz#05f5997b609647b64f66b81e3b4b10a368e7ad13" - integrity sha512-Lhz8TLaYnxq/2ObqHDql8dX8CJi97oHxrjUcYtzKbbykPtVW9WB+poxI+NM2UIzsMgNCZTIf0AQwsjK5yMAqZw== - dependencies: - cliui "^4.0.0" - decamelize "^1.2.0" - find-up "^3.0.0" - get-caller-file "^1.0.1" - os-locale "^3.0.0" - require-directory "^2.1.1" - require-main-filename "^1.0.1" - set-blocking "^2.0.0" - string-width "^2.0.0" - which-module "^2.0.0" - y18n "^3.2.1 || ^4.0.0" - yargs-parser "^11.1.1" - yargs@13.2.4: version "13.2.4" resolved "https://registry.yarnpkg.com/yargs/-/yargs-13.2.4.tgz#0b562b794016eb9651b98bd37acf364aa5d6dc83"
${ApiKeysCaption}
${HeaderApiKey}${HeaderApp}${HeaderDateIssued}${HeaderApiKey}${HeaderApp}${HeaderDateIssued}