diff --git a/.editorconfig b/.editorconfig index 92cf9dc590..84ba694073 100644 --- a/.editorconfig +++ b/.editorconfig @@ -8,5 +8,5 @@ trim_trailing_whitespace = true insert_final_newline = true end_of_line = lf -[json] +[*.json] indent_size = 2 diff --git a/.eslintrc.js b/.eslintrc.js index 765db89daa..ff12e198c3 100644 --- a/.eslintrc.js +++ b/.eslintrc.js @@ -1,6 +1,7 @@ module.exports = { root: true, plugins: [ + '@babel', 'promise', 'import', 'eslint-comments' @@ -28,7 +29,7 @@ module.exports = { ], rules: { 'block-spacing': ['error'], - 'brace-style': ['error', "1tbs", { "allowSingleLine": true }], + 'brace-style': ['error', '1tbs', { 'allowSingleLine': true }], 'comma-dangle': ['error', 'never'], 'comma-spacing': ['error'], 'eol-last': ['error'], @@ -40,20 +41,21 @@ module.exports = { 'no-multiple-empty-lines': ['error', { 'max': 1 }], 'no-trailing-spaces': ['error'], 'no-unused-expressions': ['error', { 'allowShortCircuit': true, 'allowTernary': true, 'allowTaggedTemplates': true }], - "no-unused-vars": ["error", { "vars": "all", "args": "none", "ignoreRestSiblings": true }], + 'no-unused-vars': ['error', { 'vars': 'all', 'args': 'none', 'ignoreRestSiblings': true }], 'one-var': ['error', 'never'], 'padded-blocks': ['error', 'never'], 'quotes': ['error', 'single', { 'avoidEscape': true, 'allowTemplateLiterals': false }], 'semi': ['error'], 'space-before-blocks': ['error'], - 'space-infix-ops': 'error' + 'space-infix-ops': 'error', + 'yoda': 'error' }, overrides: [ { files: [ './src/**/*.js' ], - parser: 'babel-eslint', + parser: '@babel/eslint-parser', env: { node: false, amd: true, diff --git a/CONTRIBUTORS.md b/CONTRIBUTORS.md index 73f40aaca1..46c40b6c99 100644 --- a/CONTRIBUTORS.md +++ b/CONTRIBUTORS.md @@ -35,7 +35,9 @@ - [Thibault Nocchi](https://github.com/ThibaultNocchi) - [MrTimscampi](https://github.com/MrTimscampi) - [Sarab Singh](https://github.com/sarab97) + - [GuilhermeHideki](https://github.com/GuilhermeHideki) - [Andrei Oanca](https://github.com/OancaAndrei) + - [Cromefire_](https://github.com/cromefire) # Emby Contributors diff --git a/package.json b/package.json index 07ac3f4b54..5d9f5bc951 100644 --- a/package.json +++ b/package.json @@ -5,21 +5,22 @@ "repository": "https://github.com/jellyfin/jellyfin-web", "license": "GPL-2.0-or-later", "devDependencies": { - "@babel/core": "^7.10.5", + "@babel/core": "^7.11.0", + "@babel/eslint-parser": "^7.11.0", + "@babel/eslint-plugin": "^7.11.0", "@babel/plugin-proposal-class-properties": "^7.10.1", "@babel/plugin-proposal-private-methods": "^7.10.1", "@babel/plugin-transform-modules-amd": "^7.10.5", "@babel/polyfill": "^7.8.7", - "@babel/preset-env": "^7.10.3", - "autoprefixer": "^9.8.5", - "babel-eslint": "^11.0.0-beta.2", + "@babel/preset-env": "^7.11.0", + "autoprefixer": "^9.8.6", "babel-loader": "^8.0.6", "browser-sync": "^2.26.12", "copy-webpack-plugin": "^5.1.1", - "css-loader": "^4.0.0", + "css-loader": "^4.2.0", "cssnano": "^4.1.10", "del": "^5.1.0", - "eslint": "^6.8.0", + "eslint": "^7.6.0", "eslint-plugin-compat": "^3.5.1", "eslint-plugin-eslint-comments": "^3.2.0", "eslint-plugin-import": "^2.21.2", @@ -37,7 +38,7 @@ "gulp-postcss": "^8.0.0", "gulp-sass": "^4.0.2", "gulp-sourcemaps": "^2.6.5", - "gulp-terser": "^1.2.1", + "gulp-terser": "^1.3.0", "html-webpack-plugin": "^4.3.0", "lazypipe": "^1.0.2", "node-sass": "^4.13.1", @@ -48,7 +49,7 @@ "stylelint-config-rational-order": "^0.1.2", "stylelint-no-browser-hacks": "^1.2.1", "stylelint-order": "^4.1.0", - "webpack": "^4.44.0", + "webpack": "^4.44.1", "webpack-merge": "^4.2.2", "webpack-stream": "^5.2.1" }, @@ -62,7 +63,7 @@ "fast-text-encoding": "^1.0.3", "flv.js": "^1.5.0", "headroom.js": "^0.11.0", - "hls.js": "^0.14.6", + "hls.js": "^0.14.7", "howler": "^2.2.0", "intersection-observer": "^0.11.0", "jellyfin-apiclient": "^1.4.1", @@ -106,6 +107,7 @@ "src/components/dialogHelper/dialogHelper.js", "src/components/directorybrowser/directorybrowser.js", "src/components/displaySettings/displaySettings.js", + "src/components/favoriteitems.js", "src/components/fetchhelper.js", "src/components/filterdialog/filterdialog.js", "src/components/groupedcards.js", @@ -119,11 +121,13 @@ "src/components/imageUploader/imageUploader.js", "src/components/indicators/indicators.js", "src/components/itemContextMenu.js", + "src/components/itemHelper.js", "src/components/itemidentifier/itemidentifier.js", "src/components/itemMediaInfo/itemMediaInfo.js", "src/components/lazyLoader/lazyLoaderIntersectionObserver.js", "src/components/libraryoptionseditor/libraryoptionseditor.js", "src/components/listview/listview.js", + "src/components/loading/loading.js", "src/components/maintabsmanager.js", "src/components/mediainfo/mediainfo.js", "src/components/mediaLibraryCreator/mediaLibraryCreator.js", @@ -136,9 +140,11 @@ "src/components/playback/mediasession.js", "src/components/playback/nowplayinghelper.js", "src/components/playback/playbackorientation.js", + "src/components/playback/playbackmanager.js", "src/components/playback/playerSelectionMenu.js", "src/components/playback/playersettingsmenu.js", "src/components/playback/playmethodhelper.js", + "src/components/playback/playqueuemanager.js", "src/components/playback/remotecontrolautoplay.js", "src/components/playback/volumeosd.js", "src/components/playbackSettings/playbackSettings.js", @@ -146,8 +152,10 @@ "src/components/playlisteditor/playlisteditor.js", "src/components/playmenu.js", "src/components/prompt/prompt.js", + "src/components/refreshdialog/refreshdialog.js", "src/components/sanatizefilename.js", "src/components/scrollManager.js", + "src/plugins/htmlVideoPlayer/plugin.js", "src/components/search/searchfields.js", "src/components/search/searchresults.js", "src/components/settingshelper.js", @@ -159,6 +167,9 @@ "src/components/syncPlay/syncPlayManager.js", "src/components/syncPlay/timeSyncManager.js", "src/components/tabbedview/tabbedview.js", + "src/components/toast/toast.js", + "src/components/upnextdialog/upnextdialog.js", + "src/components/viewContainer.js", "src/controllers/session/addServer/index.js", "src/controllers/session/forgotPassword/index.js", "src/controllers/session/redeemPassword/index.js", @@ -175,10 +186,18 @@ "src/controllers/dashboard/general.js", "src/controllers/dashboard/librarydisplay.js", "src/controllers/dashboard/logs.js", + "src/controllers/music/musicalbums.js", + "src/controllers/music/musicartists.js", + "src/controllers/music/musicgenres.js", + "src/controllers/music/musicplaylists.js", + "src/controllers/music/musicrecommended.js", + "src/controllers/music/songs.js", "src/controllers/dashboard/mediaLibrary.js", "src/controllers/dashboard/metadataImages.js", "src/controllers/dashboard/metadatanfo.js", "src/controllers/dashboard/networking.js", + "src/controllers/dashboard/notifications/notification.js", + "src/controllers/dashboard/notifications/notifications.js", "src/controllers/dashboard/playback.js", "src/controllers/dashboard/plugins/repositories/index.js", "src/controllers/dashboard/scheduledtasks/scheduledtask.js", @@ -192,9 +211,19 @@ "src/controllers/dashboard/users/userpasswordpage.js", "src/controllers/dashboard/users/userprofilespage.js", "src/controllers/home.js", + "src/controllers/edititemmetadata.js", + "src/controllers/favorites.js", + "src/controllers/hometab.js", + "src/controllers/playback/nowplaying.js", + "src/controllers/playback/videoosd.js", + "src/controllers/itemDetails/index.js", "src/controllers/playback/queue/index.js", "src/controllers/playback/video/index.js", "src/controllers/searchpage.js", + "src/controllers/livetvtuner.js", + "src/controllers/livetvstatus.js", + "src/controllers/livetvguideprovider.js", + "src/controllers/livetvsettings.js", "src/controllers/shows/episodes.js", "src/controllers/shows/tvgenres.js", "src/controllers/shows/tvlatest.js", @@ -208,7 +237,6 @@ "src/controllers/user/playback/index.js", "src/controllers/user/profile/index.js", "src/controllers/user/subtitles/index.js", - "src/controllers/user/subtitles/index.js", "src/controllers/wizard/finish/index.js", "src/controllers/wizard/remote/index.js", "src/controllers/wizard/settings/index.js", @@ -241,6 +269,7 @@ "src/plugins/youtubePlayer/plugin.js", "src/scripts/alphanumericshortcuts.js", "src/scripts/autoBackdrops.js", + "src/scripts/browser.js", "src/scripts/datetime.js", "src/scripts/deleteHelper.js", "src/scripts/dfnshelper.js", @@ -251,11 +280,15 @@ "src/scripts/globalize.js", "src/scripts/imagehelper.js", "src/scripts/inputManager.js", + "src/scripts/autoThemes.js", + "src/scripts/themeManager.js", "src/scripts/keyboardNavigation.js", "src/scripts/libraryMenu.js", "src/scripts/libraryBrowser.js", + "src/scripts/mouseManager.js", "src/scripts/multiDownload.js", "src/scripts/playlists.js", + "src/scripts/routes.js", "src/scripts/settings/appSettings.js", "src/scripts/settings/userSettings.js", "src/scripts/settings/webSettings.js", diff --git a/scripts/duplicates.py b/scripts/duplicates.py new file mode 100644 index 0000000000..2daad94682 --- /dev/null +++ b/scripts/duplicates.py @@ -0,0 +1,33 @@ +import sys +import os +import json + +# load every string in the source language +# print all duplicate values to a file + +cwd = os.getcwd() +source = cwd + '/../src/strings/en-us.json' + +reverse = {} +duplicates = {} + +with open(source) as en: + strings = json.load(en) + for key, value in strings.items(): + if value not in reverse: + reverse[value] = [key] + else: + reverse[value].append(key) + +for key, value in reverse.items(): + if len(value) > 1: + duplicates[key] = value + +print('LENGTH: ' + str(len(duplicates))) +with open('duplicates.txt', 'w') as out: + for item in duplicates: + out.write(json.dumps(item) + ': ') + out.write(json.dumps(duplicates[item]) + '\n') + out.close() + +print('DONE') diff --git a/scripts/scrm.py b/scripts/remove.py similarity index 95% rename from scripts/scrm.py rename to scripts/remove.py index 9bd5bc2a48..dba48537aa 100644 --- a/scripts/scrm.py +++ b/scripts/remove.py @@ -11,7 +11,7 @@ langlst = os.listdir(langdir) keys = [] -with open('scout.txt', 'r') as f: +with open('unused.txt', 'r') as f: for line in f: keys.append(line.strip('\n')) diff --git a/scripts/scdup.py b/scripts/source.py similarity index 100% rename from scripts/scdup.py rename to scripts/source.py diff --git a/scripts/scgen.py b/scripts/unused.py similarity index 100% rename from scripts/scgen.py rename to scripts/unused.py diff --git a/src/assets/css/librarybrowser.css b/src/assets/css/librarybrowser.css index 61815a590f..047ae0a1c6 100644 --- a/src/assets/css/librarybrowser.css +++ b/src/assets/css/librarybrowser.css @@ -646,7 +646,7 @@ .layout-desktop .detailRibbon, .layout-tv .detailRibbon { margin-top: -7.2em; - height: 7.18em; + height: 7.2em; } .layout-desktop .noBackdrop .detailRibbon, diff --git a/src/components/accessSchedule/accessSchedule.js b/src/components/accessSchedule/accessSchedule.js index 6b96aad1d4..b513766d0b 100644 --- a/src/components/accessSchedule/accessSchedule.js +++ b/src/components/accessSchedule/accessSchedule.js @@ -49,7 +49,7 @@ import 'formDialogStyle'; }; if (parseFloat(updatedSchedule.StartHour) >= parseFloat(updatedSchedule.EndHour)) { - return void alert(globalize.translate('ErrorMessageStartHourGreaterThanEnd')); + return void alert(globalize.translate('ErrorStartHourGreaterThanEnd')); } context.submitted = true; diff --git a/src/components/activitylog.js b/src/components/activitylog.js index 9834255003..ab489a3f31 100644 --- a/src/components/activitylog.js +++ b/src/components/activitylog.js @@ -16,7 +16,7 @@ import 'listViewStyle'; let color = '#00a4dc'; let icon = 'notifications'; - if ('Error' == entry.Severity || 'Fatal' == entry.Severity || 'Warn' == entry.Severity) { + if (entry.Severity == 'Error' || entry.Severity == 'Fatal' || entry.Severity == 'Warn') { color = '#cc0000'; icon = 'notification_important'; } @@ -60,13 +60,13 @@ import 'listViewStyle'; } function reloadData(instance, elem, apiClient, startIndex, limit) { - if (null == startIndex) { + if (startIndex == null) { startIndex = parseInt(elem.getAttribute('data-activitystartindex') || '0'); } limit = limit || parseInt(elem.getAttribute('data-activitylimit') || '7'); const minDate = new Date(); - const hasUserId = 'false' !== elem.getAttribute('data-useractivity'); + const hasUserId = elem.getAttribute('data-useractivity') !== 'false'; // TODO: Use date-fns if (hasUserId) { diff --git a/src/components/appRouter.js b/src/components/appRouter.js index 138d58e5c0..da3b08317c 100644 --- a/src/components/appRouter.js +++ b/src/components/appRouter.js @@ -1,6 +1,9 @@ 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'; + browser = browser.default || browser; + loading = loading.default || loading; + var appRouter = { showLocalLogin: function (serverId, manualLogin) { var pageName = manualLogin ? 'manuallogin' : 'login'; @@ -34,7 +37,7 @@ define(['loading', 'globalize', 'events', 'viewManager', 'skinManager', 'backdro switch (result.State) { case 'SignedIn': loading.hide(); - skinManager.loadUserSkin(); + Emby.Page.goHome(); break; case 'ServerSignIn': result.ApiClient.getPublicUsers().then(function (users) { @@ -147,7 +150,6 @@ define(['loading', 'globalize', 'events', 'viewManager', 'skinManager', 'backdro if (typeof route.path === 'string') { loadContentUrl(ctx, next, route, currentRequest); } else { - // ? TODO next(); } }; @@ -231,8 +233,7 @@ define(['loading', 'globalize', 'events', 'viewManager', 'skinManager', 'backdro max /= 8; max *= 1000000; max *= 0.7; - max = parseInt(max); - return max; + return parseInt(max, 10); } } /* eslint-enable compat/compat */ @@ -286,12 +287,9 @@ define(['loading', 'globalize', 'events', 'viewManager', 'skinManager', 'backdro connectionManager.connect({ enableAutoLogin: appSettings.enableAutoLogin() - }).then(function (result) { firstConnectionResult = result; - options = options || {}; - page({ click: options.click !== false, hashbang: options.hashbang !== false @@ -343,7 +341,7 @@ define(['loading', 'globalize', 'events', 'viewManager', 'skinManager', 'backdro if (route.isDefaultRoute) { console.debug('appRouter - loading skin home page'); - loadUserSkinWithOptions(ctx); + Emby.Page.goHome(); return; } else if (route.roles) { validateRoles(apiClient, route.roles).then(function () { @@ -357,15 +355,6 @@ define(['loading', 'globalize', 'events', 'viewManager', 'skinManager', 'backdro callback(); } - function loadUserSkinWithOptions(ctx) { - require(['queryString'], function (queryString) { - var params = queryString.parse(ctx.querystring); - skinManager.loadUserSkin({ - start: params.start - }); - }); - } - function validateRoles(apiClient, roles) { return Promise.all(roles.split(',').map(function (role) { return validateRole(apiClient, role); diff --git a/src/components/apphost.js b/src/components/apphost.js index e7d5bbc2f4..3ed590b546 100644 --- a/src/components/apphost.js +++ b/src/components/apphost.js @@ -1,6 +1,8 @@ define(['appSettings', 'browser', 'events', 'htmlMediaHelper', 'webSettings', 'globalize'], function (appSettings, browser, events, htmlMediaHelper, webSettings, globalize) { 'use strict'; + browser = browser.default || browser; + function getBaseProfileOptions(item) { var disableHlsVideoAudioCodecs = []; @@ -47,7 +49,7 @@ define(['appSettings', 'browser', 'events', 'htmlMediaHelper', 'webSettings', 'g profile = window.NativeShell.AppHost.getDeviceProfile(profileBuilder); } else { var builderOpts = getBaseProfileOptions(item); - builderOpts.enableSsaRender = (item && !options.isRetry && 'allcomplexformats' !== appSettings.get('subtitleburnin')); + builderOpts.enableSsaRender = (item && !options.isRetry && appSettings.get('subtitleburnin') !== 'allcomplexformats'); profile = profileBuilder(builderOpts); } @@ -277,7 +279,7 @@ define(['appSettings', 'browser', 'events', 'htmlMediaHelper', 'webSettings', 'g features.push('targetblank'); features.push('screensaver'); - webSettings.enableMultiServer().then(enabled => { + webSettings.getMultiServer().then(enabled => { if (enabled) features.push('multiserver'); }); @@ -370,7 +372,7 @@ define(['appSettings', 'browser', 'events', 'htmlMediaHelper', 'webSettings', 'g return window.NativeShell.AppHost.supports(command); } - return -1 !== supportedFeatures.indexOf(command.toLowerCase()); + return supportedFeatures.indexOf(command.toLowerCase()) !== -1; }, preferVisualCards: browser.android || browser.chrome, getSyncProfile: getSyncProfile, @@ -407,13 +409,6 @@ define(['appSettings', 'browser', 'events', 'htmlMediaHelper', 'webSettings', 'g getPushTokenInfo: function () { return {}; }, - setThemeColor: function (color) { - var metaThemeColor = document.querySelector('meta[name=theme-color]'); - - if (metaThemeColor) { - metaThemeColor.setAttribute('content', color); - } - }, setUserScalable: function (scalable) { if (!browser.tv) { var att = scalable ? 'width=device-width, initial-scale=1, minimum-scale=1, user-scalable=yes' : 'width=device-width, initial-scale=1, minimum-scale=1, maximum-scale=1, user-scalable=no'; diff --git a/src/components/cardbuilder/cardBuilder.js b/src/components/cardbuilder/cardBuilder.js index edb9db28ba..4a37331ef4 100644 --- a/src/components/cardbuilder/cardBuilder.js +++ b/src/components/cardbuilder/cardBuilder.js @@ -277,7 +277,7 @@ import 'programStyles'; */ function getImageWidth(shape, screenWidth, isOrientationLandscape) { const imagesPerRow = getPostersPerRow(shape, screenWidth, isOrientationLandscape); - return Math.round(screenWidth / imagesPerRow) * 2; + return Math.round(screenWidth / imagesPerRow); } /** diff --git a/src/components/cardbuilder/chaptercardbuilder.js b/src/components/cardbuilder/chaptercardbuilder.js index 0215f8d8e5..642a87db2a 100644 --- a/src/components/cardbuilder/chaptercardbuilder.js +++ b/src/components/cardbuilder/chaptercardbuilder.js @@ -73,7 +73,7 @@ import browser from 'browser'; if (ImageTag) { return apiClient.getScaledImageUrl(Id, { - maxWidth: maxWidth * 2, + maxWidth: maxWidth, tag: ImageTag, type: 'Chapter', index @@ -104,9 +104,7 @@ import browser from 'browser'; const cardBoxCssClass = 'cardBox'; const cardScalableClass = 'cardScalable'; - const html = ``; - - return html; + return ``; } export function buildChapterCards(item, chapters, options) { diff --git a/src/components/displaySettings/displaySettings.js b/src/components/displaySettings/displaySettings.js index ba78ab99e1..ae7647f98b 100644 --- a/src/components/displaySettings/displaySettings.js +++ b/src/components/displaySettings/displaySettings.js @@ -1,6 +1,5 @@ import browser from 'browser'; import layoutManager from 'layoutManager'; -import appSettings from 'appSettings'; import pluginManager from 'pluginManager'; import appHost from 'apphost'; import focusManager from 'focusManager'; @@ -16,17 +15,22 @@ import 'emby-button'; /* eslint-disable indent */ - function fillThemes(select, isDashboard) { - select.innerHTML = skinManager.getThemes().map(t => { - let value = t.id; - if (t.isDefault && !isDashboard) { - value = ''; - } else if (t.isDefaultServerDashboard && isDashboard) { - value = ''; - } + function fillThemes(context, userSettings) { + const select = context.querySelector('#selectTheme'); - return ``; - }).join(''); + skinManager.getThemes().then(themes => { + select.innerHTML = themes.map(t => { + return ``; + }).join(''); + + // get default theme + var defaultTheme = themes.find(theme => { + return theme.default; + }); + + // set the current theme + select.value = userSettings.theme() || defaultTheme.id; + }); } function loadScreensavers(context, userSettings) { @@ -46,6 +50,7 @@ import 'emby-button'; selectScreensaver.innerHTML = options.map(o => { return ``; }).join(''); + selectScreensaver.value = userSettings.screensaver(); if (!selectScreensaver.value) { @@ -54,57 +59,6 @@ import 'emby-button'; } } - function loadSoundEffects(context, userSettings) { - const selectSoundEffects = context.querySelector('.selectSoundEffects'); - const options = pluginManager.ofType('soundeffects').map(plugin => { - return { - name: plugin.name, - value: plugin.id - }; - }); - - options.unshift({ - name: globalize.translate('None'), - value: 'none' - }); - - selectSoundEffects.innerHTML = options.map(o => { - return ``; - }).join(''); - selectSoundEffects.value = userSettings.soundEffects(); - - if (!selectSoundEffects.value) { - // TODO: set the default instead of none - selectSoundEffects.value = 'none'; - } - } - - function loadSkins(context, userSettings) { - const selectSkin = context.querySelector('.selectSkin'); - - const options = pluginManager.ofType('skin').map(plugin => { - return { - name: plugin.name, - value: plugin.id - }; - }); - - selectSkin.innerHTML = options.map(o => { - return ``; - }).join(''); - selectSkin.value = userSettings.skin(); - - if (!selectSkin.value && options.length) { - selectSkin.value = options[0].value; - } - - if (options.length > 1 && appHost.supports('skins')) { - context.querySelector('.selectSkinContainer').classList.remove('hide'); - } else { - context.querySelector('.selectSkinContainer').classList.add('hide'); - } - } - function showOrHideMissingEpisodesField(context) { if (browser.tizen || browser.web0s) { context.querySelector('.fldDisplayMissingEpisodes').classList.add('hide'); @@ -115,12 +69,6 @@ import 'emby-button'; } function loadForm(context, user, userSettings) { - if (user.Policy.IsAdministrator) { - context.querySelector('.selectDashboardThemeContainer').classList.remove('hide'); - } else { - context.querySelector('.selectDashboardThemeContainer').classList.add('hide'); - } - if (appHost.supports('displaylanguage')) { context.querySelector('.languageSection').classList.remove('hide'); } else { @@ -139,18 +87,6 @@ import 'emby-button'; context.querySelector('.learnHowToContributeContainer').classList.add('hide'); } - if (appHost.supports('runatstartup')) { - context.querySelector('.fldAutorun').classList.remove('hide'); - } else { - context.querySelector('.fldAutorun').classList.add('hide'); - } - - if (appHost.supports('soundeffects')) { - context.querySelector('.fldSoundEffects').classList.remove('hide'); - } else { - context.querySelector('.fldSoundEffects').classList.add('hide'); - } - if (appHost.supports('screensaver')) { context.querySelector('.selectScreensaverContainer').classList.remove('hide'); } else { @@ -173,16 +109,8 @@ import 'emby-button'; context.querySelector('.fldThemeVideo').classList.add('hide'); } - context.querySelector('.chkRunAtStartup').checked = appSettings.runAtStartup(); - - const selectTheme = context.querySelector('#selectTheme'); - const selectDashboardTheme = context.querySelector('#selectDashboardTheme'); - - fillThemes(selectTheme); - fillThemes(selectDashboardTheme, true); + fillThemes(context, userSettings); loadScreensavers(context, userSettings); - loadSoundEffects(context, userSettings); - loadSkins(context, userSettings); context.querySelector('.chkDisplayMissingEpisodes').checked = user.Configuration.DisplayMissingEpisodes || false; @@ -198,9 +126,6 @@ import 'emby-button'; context.querySelector('#txtLibraryPageSize').value = userSettings.libraryPageSize(); - selectDashboardTheme.value = userSettings.dashboardTheme() || ''; - selectTheme.value = userSettings.theme() || ''; - context.querySelector('.selectLayout').value = layoutManager.getSavedLayout() || ''; showOrHideMissingEpisodesField(context); @@ -209,8 +134,6 @@ import 'emby-button'; } function saveUser(context, user, userSettingsInstance, apiClient) { - appSettings.runAtStartup(context.querySelector('.chkRunAtStartup').checked); - user.Configuration.DisplayMissingEpisodes = context.querySelector('.chkDisplayMissingEpisodes').checked; if (appHost.supports('displaylanguage')) { @@ -221,15 +144,11 @@ import 'emby-button'; userSettingsInstance.enableThemeSongs(context.querySelector('#chkThemeSong').checked); userSettingsInstance.enableThemeVideos(context.querySelector('#chkThemeVideo').checked); - userSettingsInstance.dashboardTheme(context.querySelector('#selectDashboardTheme').value); userSettingsInstance.theme(context.querySelector('#selectTheme').value); - userSettingsInstance.soundEffects(context.querySelector('.selectSoundEffects').value); userSettingsInstance.screensaver(context.querySelector('.selectScreensaver').value); userSettingsInstance.libraryPageSize(context.querySelector('#txtLibraryPageSize').value); - userSettingsInstance.skin(context.querySelector('.selectSkin').value); - userSettingsInstance.enableFastFadein(context.querySelector('#chkFadein').checked); userSettingsInstance.enableBlurhash(context.querySelector('#chkBlurhash').checked); userSettingsInstance.enableBackdrops(context.querySelector('#chkBackdrops').checked); diff --git a/src/components/displaySettings/displaySettings.template.html b/src/components/displaySettings/displaySettings.template.html index ab01b4b6ae..fdaf8d70f1 100644 --- a/src/components/displaySettings/displaySettings.template.html +++ b/src/components/displaySettings/displaySettings.template.html @@ -1,5 +1,4 @@
-

${Display}

@@ -123,26 +122,14 @@
${LabelPleaseRestart}
-
- -
-
-
- -
-
-
- -
-
${LabelLibraryPageSizeHelp}
@@ -159,9 +146,9 @@
-
${EnableBlurhashHelp}
+
${EnableBlurHashHelp}
@@ -196,13 +183,6 @@
${EnableThemeVideosHelp}
-
- -
-
'; html += '
'; diff --git a/src/controllers/edititemmetadata.js b/src/controllers/edititemmetadata.js index 1a3647a758..57c72dda28 100644 --- a/src/controllers/edititemmetadata.js +++ b/src/controllers/edititemmetadata.js @@ -1,31 +1,30 @@ -define(['loading', 'scripts/editorsidebar'], function (loading) { - 'use strict'; +import loading from 'loading'; +import 'scripts/editorsidebar'; - function reload(context, itemId) { - loading.show(); +function reload(context, itemId) { + loading.show(); - if (itemId) { - require(['metadataEditor'], function ({default: metadataEditor}) { - metadataEditor.embed(context.querySelector('.editPageInnerContent'), itemId, ApiClient.serverInfo().Id); - }); - } else { - context.querySelector('.editPageInnerContent').innerHTML = ''; - loading.hide(); - } + if (itemId) { + import('metadataEditor').then(({ default: metadataEditor }) => { + metadataEditor.embed(context.querySelector('.editPageInnerContent'), itemId, ApiClient.serverInfo().Id); + }); + } else { + context.querySelector('.editPageInnerContent').innerHTML = ''; + loading.hide(); } +} - return function (view, params) { - view.addEventListener('viewshow', function () { - reload(this, MetadataEditor.getCurrentItemId()); - }); - MetadataEditor.setCurrentItemId(null); - view.querySelector('.libraryTree').addEventListener('itemclicked', function (event) { - var data = event.detail; +export default function (view, params) { + view.addEventListener('viewshow', function () { + reload(this, MetadataEditor.getCurrentItemId()); + }); + MetadataEditor.setCurrentItemId(null); + view.querySelector('.libraryTree').addEventListener('itemclicked', function (event) { + var data = event.detail; - if (data.id != MetadataEditor.getCurrentItemId()) { - MetadataEditor.setCurrentItemId(data.id); - reload(view, data.id); - } - }); - }; -}); + if (data.id != MetadataEditor.getCurrentItemId()) { + MetadataEditor.setCurrentItemId(data.id); + reload(view, data.id); + } + }); +} diff --git a/src/controllers/favorites.js b/src/controllers/favorites.js index 51c4301a71..7e316df118 100644 --- a/src/controllers/favorites.js +++ b/src/controllers/favorites.js @@ -1,5 +1,15 @@ -define(['appRouter', 'cardBuilder', 'dom', 'globalize', 'connectionManager', 'apphost', 'layoutManager', 'focusManager', 'emby-itemscontainer', 'emby-scroller'], function (appRouter, cardBuilder, dom, globalize, connectionManager, appHost, layoutManager, focusManager) { - 'use strict'; +import appRouter from 'appRouter'; +import cardBuilder from 'cardBuilder'; +import dom from 'dom'; +import globalize from 'globalize'; +import connectionManager from 'connectionManager'; +import appHost from 'apphost'; +import layoutManager from 'layoutManager'; +import focusManager from 'focusManager'; +import 'emby-itemscontainer'; +import 'emby-scroller'; + +/* eslint-disable indent */ function enableScrollX() { return true; @@ -133,8 +143,8 @@ define(['appRouter', 'cardBuilder', 'dom', 'globalize', 'connectionManager', 'ap function getFetchDataFn(section) { return function () { - var apiClient = this.apiClient; - var options = { + const apiClient = this.apiClient; + const options = { SortBy: (section.types, 'SeriesName,SortName'), SortOrder: 'Ascending', Filters: 'IsFavorite', @@ -145,13 +155,13 @@ define(['appRouter', 'cardBuilder', 'dom', 'globalize', 'connectionManager', 'ap EnableTotalRecordCount: false }; options.Limit = 20; - var userId = apiClient.getCurrentUserId(); + const userId = apiClient.getCurrentUserId(); - if ('MusicArtist' === section.types) { + if (section.types === 'MusicArtist') { return apiClient.getArtists(userId, options); } - if ('Person' === section.types) { + if (section.types === 'Person') { return apiClient.getPeople(userId, options); } @@ -170,16 +180,16 @@ define(['appRouter', 'cardBuilder', 'dom', 'globalize', 'connectionManager', 'ap function getItemsHtmlFn(section) { return function (items) { - var cardLayout = appHost.preferVisualCards && section.autoCardLayout && section.showTitle; + let cardLayout = appHost.preferVisualCards && section.autoCardLayout && section.showTitle; cardLayout = false; - var serverId = this.apiClient.serverId(); - var leadingButtons = layoutManager.tv ? [{ + const serverId = this.apiClient.serverId(); + const leadingButtons = layoutManager.tv ? [{ name: globalize.translate('All'), id: 'more', icon: 'favorite', routeUrl: getRouteUrl(section, serverId) }] : null; - var lines = 0; + let lines = 0; if (section.showTitle) { lines++; @@ -198,7 +208,7 @@ define(['appRouter', 'cardBuilder', 'dom', 'globalize', 'connectionManager', 'ap preferThumb: section.preferThumb, shape: section.shape, centerText: section.centerText && !cardLayout, - overlayText: false !== section.overlayText, + overlayText: section.overlayText !== false, showTitle: section.showTitle, showYear: section.showYear, showParentTitle: section.showParentTitle, @@ -215,23 +225,12 @@ define(['appRouter', 'cardBuilder', 'dom', 'globalize', 'connectionManager', 'ap }; } - function FavoritesTab(view, params) { - this.view = view; - this.params = params; - this.apiClient = connectionManager.currentApiClient(); - this.sectionsContainer = view.querySelector('.sections'); - createSections(this, this.sectionsContainer, this.apiClient); - } - function createSections(instance, elem, apiClient) { - var i; - var length; - var sections = getSections(); - var html = ''; + const sections = getSections(); + let html = ''; - for (i = 0, length = sections.length; i < length; i++) { - var section = sections[i]; - var sectionClass = 'verticalSection'; + for (const section of sections) { + let sectionClass = 'verticalSection'; if (!section.showTitle) { sectionClass += ' verticalSection-extrabottompadding'; @@ -257,23 +256,32 @@ define(['appRouter', 'cardBuilder', 'dom', 'globalize', 'connectionManager', 'ap } elem.innerHTML = html; - var elems = elem.querySelectorAll('.itemsContainer'); + const elems = elem.querySelectorAll('.itemsContainer'); - for (i = 0, length = elems.length; i < length; i++) { - var itemsContainer = elems[i]; + for (let i = 0, length = elems.length; i < length; i++) { + const itemsContainer = elems[i]; itemsContainer.fetchData = getFetchDataFn(sections[i]).bind(instance); itemsContainer.getItemsHtml = getItemsHtmlFn(sections[i]).bind(instance); itemsContainer.parentContainer = dom.parentWithClass(itemsContainer, 'verticalSection'); } } - FavoritesTab.prototype.onResume = function (options) { - var promises = (this.apiClient, []); - var view = this.view; - var elems = this.sectionsContainer.querySelectorAll('.itemsContainer'); +class FavoritesTab { + constructor(view, params) { + this.view = view; + this.params = params; + this.apiClient = connectionManager.currentApiClient(); + this.sectionsContainer = view.querySelector('.sections'); + createSections(this, this.sectionsContainer, this.apiClient); + } - for (var i = 0, length = elems.length; i < length; i++) { - promises.push(elems[i].resume(options)); + onResume(options) { + const promises = (this.apiClient, []); + const view = this.view; + const elems = this.sectionsContainer.querySelectorAll('.itemsContainer'); + + for (const elem of elems) { + promises.push(elem.resume(options)); } Promise.all(promises).then(function () { @@ -281,30 +289,32 @@ define(['appRouter', 'cardBuilder', 'dom', 'globalize', 'connectionManager', 'ap focusManager.autoFocus(view); } }); - }; + } - FavoritesTab.prototype.onPause = function () { - var elems = this.sectionsContainer.querySelectorAll('.itemsContainer'); + onPause() { + const elems = this.sectionsContainer.querySelectorAll('.itemsContainer'); - for (var i = 0, length = elems.length; i < length; i++) { - elems[i].pause(); + for (const elem of elems) { + elem.pause(); } - }; + } - FavoritesTab.prototype.destroy = function () { + destroy() { this.view = null; this.params = null; this.apiClient = null; - var elems = this.sectionsContainer.querySelectorAll('.itemsContainer'); + const elems = this.sectionsContainer.querySelectorAll('.itemsContainer'); - for (var i = 0, length = elems.length; i < length; i++) { - elems[i].fetchData = null; - elems[i].getItemsHtml = null; - elems[i].parentContainer = null; + for (const elem of elems) { + elem.fetchData = null; + elem.getItemsHtml = null; + elem.parentContainer = null; } this.sectionsContainer = null; - }; + } +} - return FavoritesTab; -}); +export default FavoritesTab; + +/* eslint-enable indent */ diff --git a/src/controllers/home.js b/src/controllers/home.js index bfee2c50fb..1a4b315b09 100644 --- a/src/controllers/home.js +++ b/src/controllers/home.js @@ -36,7 +36,7 @@ class HomeView extends TabbedView { } getTabController(index) { - if (null == index) { + if (index == null) { throw new Error('index cannot be null'); } @@ -56,7 +56,7 @@ class HomeView extends TabbedView { let controller = instance.tabControllers[index]; if (!controller) { - controller = new controllerFactory(instance.view.querySelector(".tabContent[data-index='" + index + "']"), instance.params); + controller = new controllerFactory.default(instance.view.querySelector(".tabContent[data-index='" + index + "']"), instance.params); instance.tabControllers[index] = controller; } diff --git a/src/controllers/hometab.js b/src/controllers/hometab.js index 8e2a1f92e7..d834e3e233 100644 --- a/src/controllers/hometab.js +++ b/src/controllers/hometab.js @@ -1,27 +1,21 @@ -define(['userSettings', 'loading', 'connectionManager', 'apphost', 'layoutManager', 'focusManager', 'homeSections', 'emby-itemscontainer'], function (userSettings, loading, connectionManager, appHost, layoutManager, focusManager, homeSections) { - 'use strict'; +import * as userSettings from 'userSettings'; +import loading from 'loading'; +import connectionManager from 'connectionManager'; +import focusManager from 'focusManager'; +import homeSections from 'homeSections'; +import 'emby-itemscontainer'; - function HomeTab(view, params) { +class HomeTab { + constructor(view, params) { this.view = view; this.params = params; this.apiClient = connectionManager.currentApiClient(); this.sectionsContainer = view.querySelector('.sections'); view.querySelector('.sections').addEventListener('settingschange', onHomeScreenSettingsChanged.bind(this)); } - - function onHomeScreenSettingsChanged() { - this.sectionsRendered = false; - - if (!this.paused) { - this.onResume({ - refresh: true - }); - } - } - - HomeTab.prototype.onResume = function (options) { + onResume(options) { if (this.sectionsRendered) { - var sectionsContainer = this.sectionsContainer; + const sectionsContainer = this.sectionsContainer; if (sectionsContainer) { return homeSections.resume(sectionsContainer, options); @@ -31,8 +25,8 @@ define(['userSettings', 'loading', 'connectionManager', 'apphost', 'layoutManage } loading.show(); - var view = this.view; - var apiClient = this.apiClient; + const view = this.view; + const apiClient = this.apiClient; this.destroyHomeSections(); this.sectionsRendered = true; return apiClient.getCurrentUser().then(function (user) { @@ -44,31 +38,38 @@ define(['userSettings', 'loading', 'connectionManager', 'apphost', 'layoutManage loading.hide(); }); }); - }; - - HomeTab.prototype.onPause = function () { - var sectionsContainer = this.sectionsContainer; + } + onPause() { + const sectionsContainer = this.sectionsContainer; if (sectionsContainer) { homeSections.pause(sectionsContainer); } - }; - - HomeTab.prototype.destroy = function () { + } + destroy() { this.view = null; this.params = null; this.apiClient = null; this.destroyHomeSections(); this.sectionsContainer = null; - }; - - HomeTab.prototype.destroyHomeSections = function () { - var sectionsContainer = this.sectionsContainer; + } + destroyHomeSections() { + const sectionsContainer = this.sectionsContainer; if (sectionsContainer) { homeSections.destroySections(sectionsContainer); } - }; + } +} - return HomeTab; -}); +function onHomeScreenSettingsChanged() { + this.sectionsRendered = false; + + if (!this.paused) { + this.onResume({ + refresh: true + }); + } +} + +export default HomeTab; diff --git a/src/controllers/itemDetails/index.js b/src/controllers/itemDetails/index.js index d02268b9d4..15c437d684 100644 --- a/src/controllers/itemDetails/index.js +++ b/src/controllers/itemDetails/index.js @@ -1,10 +1,38 @@ -define(['loading', 'appRouter', 'layoutManager', 'connectionManager', 'userSettings', 'cardBuilder', 'datetime', 'mediaInfo', 'backdrop', 'listView', 'itemContextMenu', 'itemHelper', 'dom', 'indicators', 'imageLoader', 'libraryMenu', 'globalize', 'browser', 'events', 'playbackManager', 'scrollStyles', 'emby-itemscontainer', 'emby-checkbox', 'emby-button', 'emby-playstatebutton', 'emby-ratingbutton', 'emby-scroller', 'emby-select'], function (loading, appRouter, layoutManager, connectionManager, userSettings, cardBuilder, datetime, mediaInfo, backdrop, listView, itemContextMenu, itemHelper, dom, indicators, imageLoader, libraryMenu, globalize, browser, events, playbackManager) { - 'use strict'; +import loading from 'loading'; +import appRouter from 'appRouter'; +import layoutManager from 'layoutManager'; +import connectionManager from 'connectionManager'; +import * as userSettings from 'userSettings'; +import cardBuilder from 'cardBuilder'; +import datetime from 'datetime'; +import mediaInfo from 'mediaInfo'; +import backdrop from 'backdrop'; +import listView from 'listView'; +import itemContextMenu from 'itemContextMenu'; +import itemHelper from 'itemHelper'; +import dom from 'dom'; +import indicators from 'indicators'; +import imageLoader from 'imageLoader'; +import libraryMenu from 'libraryMenu'; +import globalize from 'globalize'; +import browser from 'browser'; +import events from 'events'; +import playbackManager from 'playbackManager'; +import 'scrollStyles'; +import 'emby-itemscontainer'; +import 'emby-checkbox'; +import 'emby-button'; +import 'emby-playstatebutton'; +import 'emby-ratingbutton'; +import 'emby-scroller'; +import 'emby-select'; + +/* eslint-disable indent */ libraryMenu = libraryMenu.default || libraryMenu; function getPromise(apiClient, params) { - var id = params.id; + const id = params.id; if (id) { return apiClient.getItem(apiClient.getCurrentUserId(), id); @@ -40,7 +68,7 @@ define(['loading', 'appRouter', 'layoutManager', 'connectionManager', 'userSetti } function getContextMenuOptions(item, user, button) { - var options = { + return { item: item, open: false, play: false, @@ -55,12 +83,10 @@ define(['loading', 'appRouter', 'layoutManager', 'connectionManager', 'userSetti user: user, share: true }; - - return options; } function getProgramScheduleHtml(items) { - var html = ''; + let html = ''; html += '
'; html += listView.getListViewHtml({ @@ -96,15 +122,15 @@ define(['loading', 'appRouter', 'layoutManager', 'connectionManager', 'userSetti result.Items = []; } - var html = getProgramScheduleHtml(result.Items); - var scheduleTab = page.querySelector('.seriesTimerSchedule'); + const html = getProgramScheduleHtml(result.Items); + const scheduleTab = page.querySelector('.seriesTimerSchedule'); scheduleTab.innerHTML = html; imageLoader.lazyChildren(scheduleTab); }); } function renderTimerEditor(page, item, apiClient, user) { - if ('Recording' !== item.Type || !user.Policy.EnableLiveTvManagement || !item.TimerId || 'InProgress' !== item.Status) { + if (item.Type !== 'Recording' || !user.Policy.EnableLiveTvManagement || !item.TimerId || item.Status !== 'InProgress') { return void hideAll(page, 'btnCancelTimer'); } @@ -112,12 +138,12 @@ define(['loading', 'appRouter', 'layoutManager', 'connectionManager', 'userSetti } function renderSeriesTimerEditor(page, item, apiClient, user) { - if ('SeriesTimer' !== item.Type) { + if (item.Type !== 'SeriesTimer') { return void hideAll(page, 'btnCancelSeriesTimer'); } if (user.Policy.EnableLiveTvManagement) { - require(['seriesRecordingEditor'], function (seriesRecordingEditor) { + import('seriesRecordingEditor').then(({default: seriesRecordingEditor}) => { seriesRecordingEditor.embed(item, apiClient.serverId(), { context: page.querySelector('.seriesRecordingEditor') }); @@ -133,9 +159,9 @@ define(['loading', 'appRouter', 'layoutManager', 'connectionManager', 'userSetti } function renderTrackSelections(page, instance, item, forceReload) { - var select = page.querySelector('.selectSource'); + const select = page.querySelector('.selectSource'); - if (!item.MediaSources || !itemHelper.supportsMediaSourceSelection(item) || -1 === playbackManager.getSupportedCommands().indexOf('PlayMediaSource') || !playbackManager.canPlay(item)) { + if (!item.MediaSources || !itemHelper.supportsMediaSourceSelection(item) || playbackManager.getSupportedCommands().indexOf('PlayMediaSource') === -1 || !playbackManager.canPlay(item)) { page.querySelector('.trackSelections').classList.add('hide'); select.innerHTML = ''; page.querySelector('.selectVideo').innerHTML = ''; @@ -144,17 +170,17 @@ define(['loading', 'appRouter', 'layoutManager', 'connectionManager', 'userSetti return; } - var mediaSources = item.MediaSources; + const mediaSources = item.MediaSources; instance._currentPlaybackMediaSources = mediaSources; page.querySelector('.trackSelections').classList.remove('hide'); select.setLabel(globalize.translate('LabelVersion')); - var currentValue = select.value; + const currentValue = select.value; - var selectedId = mediaSources[0].Id; + const selectedId = mediaSources[0].Id; select.innerHTML = mediaSources.map(function (v) { - var selected = v.Id === selectedId ? ' selected' : ''; + const selected = v.Id === selectedId ? ' selected' : ''; return ''; }).join(''); @@ -172,22 +198,22 @@ define(['loading', 'appRouter', 'layoutManager', 'connectionManager', 'userSetti } function renderVideoSelections(page, mediaSources) { - var mediaSourceId = page.querySelector('.selectSource').value; - var mediaSource = mediaSources.filter(function (m) { + const mediaSourceId = page.querySelector('.selectSource').value; + const mediaSource = mediaSources.filter(function (m) { return m.Id === mediaSourceId; })[0]; - var tracks = mediaSource.MediaStreams.filter(function (m) { + const tracks = mediaSource.MediaStreams.filter(function (m) { return m.Type === 'Video'; }); - var select = page.querySelector('.selectVideo'); + const select = page.querySelector('.selectVideo'); select.setLabel(globalize.translate('LabelVideo')); - var selectedId = tracks.length ? tracks[0].Index : -1; + const selectedId = tracks.length ? tracks[0].Index : -1; select.innerHTML = tracks.map(function (v) { - var selected = v.Index === selectedId ? ' selected' : ''; - var titleParts = []; - var resolutionText = mediaInfo.getResolutionText(v); + const selected = v.Index === selectedId ? ' selected' : ''; + const titleParts = []; + const resolutionText = mediaInfo.getResolutionText(v); if (resolutionText) { titleParts.push(resolutionText); @@ -209,18 +235,18 @@ define(['loading', 'appRouter', 'layoutManager', 'connectionManager', 'userSetti } function renderAudioSelections(page, mediaSources) { - var mediaSourceId = page.querySelector('.selectSource').value; - var mediaSource = mediaSources.filter(function (m) { + const mediaSourceId = page.querySelector('.selectSource').value; + const mediaSource = mediaSources.filter(function (m) { return m.Id === mediaSourceId; })[0]; - var tracks = mediaSource.MediaStreams.filter(function (m) { - return 'Audio' === m.Type; + const tracks = mediaSource.MediaStreams.filter(function (m) { + return m.Type === 'Audio'; }); - var select = page.querySelector('.selectAudio'); + const select = page.querySelector('.selectAudio'); select.setLabel(globalize.translate('LabelAudio')); - var selectedId = mediaSource.DefaultAudioStreamIndex; + const selectedId = mediaSource.DefaultAudioStreamIndex; select.innerHTML = tracks.map(function (v) { - var selected = v.Index === selectedId ? ' selected' : ''; + const selected = v.Index === selectedId ? ' selected' : ''; return ''; }).join(''); @@ -238,24 +264,24 @@ define(['loading', 'appRouter', 'layoutManager', 'connectionManager', 'userSetti } function renderSubtitleSelections(page, mediaSources) { - var mediaSourceId = page.querySelector('.selectSource').value; - var mediaSource = mediaSources.filter(function (m) { + const mediaSourceId = page.querySelector('.selectSource').value; + const mediaSource = mediaSources.filter(function (m) { return m.Id === mediaSourceId; })[0]; - var tracks = mediaSource.MediaStreams.filter(function (m) { - return 'Subtitle' === m.Type; + const tracks = mediaSource.MediaStreams.filter(function (m) { + return m.Type === 'Subtitle'; }); - var select = page.querySelector('.selectSubtitles'); + const select = page.querySelector('.selectSubtitles'); select.setLabel(globalize.translate('LabelSubtitles')); - var selectedId = null == mediaSource.DefaultSubtitleStreamIndex ? -1 : mediaSource.DefaultSubtitleStreamIndex; + const selectedId = mediaSource.DefaultSubtitleStreamIndex == null ? -1 : mediaSource.DefaultSubtitleStreamIndex; - var videoTracks = mediaSource.MediaStreams.filter(function (m) { - return 'Video' === m.Type; + const videoTracks = mediaSource.MediaStreams.filter(function (m) { + return m.Type === 'Video'; }); // This only makes sense on Video items if (videoTracks.length) { - var selected = -1 === selectedId ? ' selected' : ''; + let selected = selectedId === -1 ? ' selected' : ''; select.innerHTML = '' + tracks.map(function (v) { selected = v.Index === selectedId ? ' selected' : ''; return ''; @@ -275,10 +301,10 @@ define(['loading', 'appRouter', 'layoutManager', 'connectionManager', 'userSetti } function reloadPlayButtons(page, item) { - var canPlay = false; + let canPlay = false; - if ('Program' == item.Type) { - var now = new Date(); + if (item.Type == 'Program') { + const now = new Date(); if (now >= datetime.parseISO8601Date(item.StartDate, true) && now < datetime.parseISO8601Date(item.EndDate, true)) { hideAll(page, 'btnPlay', true); @@ -292,9 +318,9 @@ define(['loading', 'appRouter', 'layoutManager', 'connectionManager', 'userSetti hideAll(page, 'btnShuffle'); } else if (playbackManager.canPlay(item)) { hideAll(page, 'btnPlay', true); - var enableInstantMix = -1 !== ['Audio', 'MusicAlbum', 'MusicGenre', 'MusicArtist'].indexOf(item.Type); + const enableInstantMix = ['Audio', 'MusicAlbum', 'MusicGenre', 'MusicArtist'].indexOf(item.Type) !== -1; hideAll(page, 'btnInstantMix', enableInstantMix); - var enableShuffle = item.IsFolder || -1 !== ['MusicAlbum', 'MusicGenre', 'MusicArtist'].indexOf(item.Type); + const enableShuffle = item.IsFolder || ['MusicAlbum', 'MusicGenre', 'MusicArtist'].indexOf(item.Type) !== -1; hideAll(page, 'btnShuffle', enableShuffle); canPlay = true; @@ -317,12 +343,12 @@ define(['loading', 'appRouter', 'layoutManager', 'connectionManager', 'userSetti } function reloadUserDataButtons(page, item) { - var i; - var length; - var btnPlaystates = page.querySelectorAll('.btnPlaystate'); + let i; + let length; + const btnPlaystates = page.querySelectorAll('.btnPlaystate'); for (i = 0, length = btnPlaystates.length; i < length; i++) { - var btnPlaystate = btnPlaystates[i]; + const btnPlaystate = btnPlaystates[i]; if (itemHelper.canMarkPlayed(item)) { btnPlaystate.classList.remove('hide'); @@ -333,10 +359,10 @@ define(['loading', 'appRouter', 'layoutManager', 'connectionManager', 'userSetti } } - var btnUserRatings = page.querySelectorAll('.btnUserRating'); + const btnUserRatings = page.querySelectorAll('.btnUserRating'); for (i = 0, length = btnUserRatings.length; i < length; i++) { - var btnUserRating = btnUserRatings[i]; + const btnUserRating = btnUserRatings[i]; if (itemHelper.canRate(item)) { btnUserRating.classList.remove('hide'); @@ -349,19 +375,18 @@ define(['loading', 'appRouter', 'layoutManager', 'connectionManager', 'userSetti } function getArtistLinksHtml(artists, serverId, context) { - var html = []; + let html = []; for (const artist of artists) { - var href = appRouter.getRouteUrl(artist, { + const href = appRouter.getRouteUrl(artist, { context: context, itemType: 'MusicArtist', serverId: serverId }); html.push('' + artist.Name + ''); } - html = html.join(' / '); - return html; + return html.join(' / '); } /** @@ -371,17 +396,17 @@ define(['loading', 'appRouter', 'layoutManager', 'connectionManager', 'userSetti * @param {Object} context - Application context. */ function renderName(item, container, context) { - var parentRoute; - var parentNameHtml = []; - var parentNameLast = false; + let parentRoute; + const parentNameHtml = []; + let parentNameLast = false; if (item.AlbumArtists) { parentNameHtml.push(getArtistLinksHtml(item.AlbumArtists, item.ServerId, context)); parentNameLast = true; - } else if (item.ArtistItems && item.ArtistItems.length && 'MusicVideo' === item.Type) { + } else if (item.ArtistItems && item.ArtistItems.length && item.Type === 'MusicVideo') { parentNameHtml.push(getArtistLinksHtml(item.ArtistItems, item.ServerId, context)); parentNameLast = true; - } else if (item.SeriesName && 'Episode' === item.Type) { + } else if (item.SeriesName && item.Type === 'Episode') { parentRoute = appRouter.getRouteUrl({ Id: item.SeriesId, Name: item.SeriesName, @@ -396,7 +421,7 @@ define(['loading', 'appRouter', 'layoutManager', 'connectionManager', 'userSetti parentNameHtml.push(item.Name); } - if (item.SeriesName && 'Season' === item.Type) { + if (item.SeriesName && item.Type === 'Season') { parentRoute = appRouter.getRouteUrl({ Id: item.SeriesId, Name: item.SeriesName, @@ -407,7 +432,7 @@ define(['loading', 'appRouter', 'layoutManager', 'connectionManager', 'userSetti context: context }); parentNameHtml.push('' + item.SeriesName + ''); - } else if (null != item.ParentIndexNumber && 'Episode' === item.Type) { + } else if (item.ParentIndexNumber != null && item.Type === 'Episode') { parentRoute = appRouter.getRouteUrl({ Id: item.SeasonId, Name: item.SeasonName, @@ -418,9 +443,9 @@ define(['loading', 'appRouter', 'layoutManager', 'connectionManager', 'userSetti context: context }); parentNameHtml.push('' + item.SeasonName + ''); - } else if (null != item.ParentIndexNumber && item.IsSeries) { + } else if (item.ParentIndexNumber != null && item.IsSeries) { parentNameHtml.push(item.SeasonName || 'S' + item.ParentIndexNumber); - } else if (item.Album && item.AlbumId && ('MusicVideo' === item.Type || 'Audio' === item.Type)) { + } else if (item.Album && item.AlbumId && (item.Type === 'MusicVideo' || item.Type === 'Audio')) { parentRoute = appRouter.getRouteUrl({ Id: item.AlbumId, Name: item.Album, @@ -436,9 +461,9 @@ define(['loading', 'appRouter', 'layoutManager', 'connectionManager', 'userSetti } // FIXME: This whole section needs some refactoring, so it becames easier to scale across all form factors. See GH #1022 - var html = ''; - var tvShowHtml = parentNameHtml[0]; - var tvSeasonHtml = parentNameHtml[1]; + let html = ''; + const tvShowHtml = parentNameHtml[0]; + const tvSeasonHtml = parentNameHtml[1]; if (parentNameHtml.length) { if (parentNameLast) { @@ -453,7 +478,7 @@ define(['loading', 'appRouter', 'layoutManager', 'connectionManager', 'userSetti } } - var name = itemHelper.getDisplayName(item, { + const name = itemHelper.getDisplayName(item, { includeParentInfo: false }); @@ -483,7 +508,7 @@ define(['loading', 'appRouter', 'layoutManager', 'connectionManager', 'userSetti } function setTrailerButtonVisibility(page, item) { - if ((item.LocalTrailerCount || item.RemoteTrailers && item.RemoteTrailers.length) && -1 !== playbackManager.getSupportedCommands().indexOf('PlayTrailers')) { + if ((item.LocalTrailerCount || item.RemoteTrailers && item.RemoteTrailers.length) && playbackManager.getSupportedCommands().indexOf('PlayTrailers') !== -1) { hideAll(page, 'btnPlayTrailer', true); } else { hideAll(page, 'btnPlayTrailer'); @@ -499,9 +524,9 @@ define(['loading', 'appRouter', 'layoutManager', 'connectionManager', 'userSetti } function renderDetailPageBackdrop(page, item, apiClient) { - var imgUrl; - var hasbackdrop = false; - var itemBackdropElement = page.querySelector('#itemBackdrop'); + let imgUrl; + let hasbackdrop = false; + const itemBackdropElement = page.querySelector('#itemBackdrop'); if (!layoutManager.mobile && !userSettings.detailsBanner()) { return false; @@ -525,6 +550,14 @@ define(['loading', 'appRouter', 'layoutManager', 'connectionManager', 'userSetti }); imageLoader.lazyImage(itemBackdropElement, imgUrl); hasbackdrop = true; + } else if (item.ImageTags && item.ImageTags.Primary) { + imgUrl = apiClient.getScaledImageUrl(item.Id, { + type: 'Primary', + maxWidth: dom.getScreenWidth(), + tag: item.ImageTags.Primary + }); + imageLoader.lazyImage(itemBackdropElement, imgUrl); + hasbackdrop = true; } else { itemBackdropElement.style.backgroundImage = ''; } @@ -552,9 +585,9 @@ define(['loading', 'appRouter', 'layoutManager', 'connectionManager', 'userSetti renderSeriesTimerEditor(page, item, apiClient, user); renderTimerEditor(page, item, apiClient, user); setInitialCollapsibleState(page, item, apiClient, params.context, user); - var canPlay = reloadPlayButtons(page, item); + const canPlay = reloadPlayButtons(page, item); - if ((item.LocalTrailerCount || item.RemoteTrailers && item.RemoteTrailers.length) && -1 !== playbackManager.getSupportedCommands().indexOf('PlayTrailers')) { + if ((item.LocalTrailerCount || item.RemoteTrailers && item.RemoteTrailers.length) && playbackManager.getSupportedCommands().indexOf('PlayTrailers') !== -1) { hideAll(page, 'btnPlayTrailer', true); } else { hideAll(page, 'btnPlayTrailer'); @@ -562,15 +595,15 @@ define(['loading', 'appRouter', 'layoutManager', 'connectionManager', 'userSetti setTrailerButtonVisibility(page, item); - if ('Program' !== item.Type || canPlay) { + if (item.Type !== 'Program' || canPlay) { hideAll(page, 'mainDetailButtons', true); } else { hideAll(page, 'mainDetailButtons'); } showRecordingFields(instance, page, item, user); - var groupedVersions = (item.MediaSources || []).filter(function (g) { - return 'Grouping' == g.Type; + const groupedVersions = (item.MediaSources || []).filter(function (g) { + return g.Type == 'Grouping'; }); if (user.Policy.IsAdministrator && groupedVersions.length) { @@ -585,11 +618,11 @@ define(['loading', 'appRouter', 'layoutManager', 'connectionManager', 'userSetti hideAll(page, 'btnMoreCommands'); } - var itemBirthday = page.querySelector('#itemBirthday'); + const itemBirthday = page.querySelector('#itemBirthday'); - if ('Person' == item.Type && item.PremiereDate) { + if (item.Type == 'Person' && item.PremiereDate) { try { - var birthday = datetime.parseISO8601Date(item.PremiereDate, true).toDateString(); + const birthday = datetime.parseISO8601Date(item.PremiereDate, true).toDateString(); itemBirthday.classList.remove('hide'); itemBirthday.innerHTML = globalize.translate('BirthDateValue', birthday); } catch (err) { @@ -599,11 +632,11 @@ define(['loading', 'appRouter', 'layoutManager', 'connectionManager', 'userSetti itemBirthday.classList.add('hide'); } - var itemDeathDate = page.querySelector('#itemDeathDate'); + const itemDeathDate = page.querySelector('#itemDeathDate'); - if ('Person' == item.Type && item.EndDate) { + if (item.Type == 'Person' && item.EndDate) { try { - var deathday = datetime.parseISO8601Date(item.EndDate, true).toDateString(); + const deathday = datetime.parseISO8601Date(item.EndDate, true).toDateString(); itemDeathDate.classList.remove('hide'); itemDeathDate.innerHTML = globalize.translate('DeathDateValue', deathday); } catch (err) { @@ -613,10 +646,10 @@ define(['loading', 'appRouter', 'layoutManager', 'connectionManager', 'userSetti itemDeathDate.classList.add('hide'); } - var itemBirthLocation = page.querySelector('#itemBirthLocation'); + const itemBirthLocation = page.querySelector('#itemBirthLocation'); - if ('Person' == item.Type && item.ProductionLocations && item.ProductionLocations.length) { - var gmap = '' + item.ProductionLocations[0] + ''; + if (item.Type == 'Person' && item.ProductionLocations && item.ProductionLocations.length) { + const gmap = '' + item.ProductionLocations[0] + ''; itemBirthLocation.classList.remove('hide'); itemBirthLocation.innerHTML = globalize.translate('BirthPlaceValue', gmap); } else { @@ -630,7 +663,7 @@ define(['loading', 'appRouter', 'layoutManager', 'connectionManager', 'userSetti hideAll(page, 'btnDownload', true); } - require(['autoFocuser'], function (autoFocuser) { + import('autoFocuser').then(({default: autoFocuser}) => { autoFocuser.autoFocus(page); }); } @@ -653,9 +686,9 @@ define(['loading', 'appRouter', 'layoutManager', 'connectionManager', 'userSetti } function renderLogo(page, item, apiClient) { - var detailLogo = page.querySelector('.detailLogo'); + const detailLogo = page.querySelector('.detailLogo'); - var url = logoImageUrl(item, apiClient, {}); + const url = logoImageUrl(item, apiClient, {}); if (!layoutManager.mobile && !userSettings.enableBackdrops()) { detailLogo.classList.add('hide'); @@ -669,10 +702,10 @@ define(['loading', 'appRouter', 'layoutManager', 'connectionManager', 'userSetti function showRecordingFields(instance, page, item, user) { if (!instance.currentRecordingFields) { - var recordingFieldsElement = page.querySelector('.recordingFields'); + const recordingFieldsElement = page.querySelector('.recordingFields'); - if ('Program' == item.Type && user.Policy.EnableLiveTvManagement) { - require(['recordingFields'], function (recordingFields) { + if (item.Type == 'Program' && user.Policy.EnableLiveTvManagement) { + import('recordingFields').then(({default: recordingFields}) => { instance.currentRecordingFields = new recordingFields({ parent: recordingFieldsElement, programId: item.Id, @@ -688,9 +721,9 @@ define(['loading', 'appRouter', 'layoutManager', 'connectionManager', 'userSetti } function renderLinks(page, item) { - var externalLinksElem = page.querySelector('.itemExternalLinks'); + const externalLinksElem = page.querySelector('.itemExternalLinks'); - var links = []; + const links = []; if (!layoutManager.tv && item.HomePageUrl) { links.push(`${globalize.translate('ButtonWebsite')}`); @@ -702,7 +735,7 @@ define(['loading', 'appRouter', 'layoutManager', 'connectionManager', 'userSetti } } - var html = []; + const html = []; if (links.length) { html.push(links.join(', ')); } @@ -728,7 +761,7 @@ define(['loading', 'appRouter', 'layoutManager', 'connectionManager', 'userSetti disableIndicators: true, disableHoverMenu: true, overlayPlayButton: true, - width: dom.getWindowSize().innerWidth * 0.5 + width: dom.getWindowSize().innerWidth * 0.25 }); elem.innerHTML = cardHtml; @@ -752,7 +785,7 @@ define(['loading', 'appRouter', 'layoutManager', 'connectionManager', 'userSetti } function setPeopleHeader(page, item) { - if ('Audio' == item.MediaType || 'MusicAlbum' == item.Type || 'Book' == item.MediaType || 'Photo' == item.MediaType) { + if (item.MediaType == 'Audio' || item.Type == 'MusicAlbum' || item.MediaType == 'Book' || item.MediaType == 'Photo') { page.querySelector('#peopleHeader').innerHTML = globalize.translate('HeaderPeople'); } else { page.querySelector('#peopleHeader').innerHTML = globalize.translate('HeaderCastAndCrew'); @@ -760,9 +793,9 @@ define(['loading', 'appRouter', 'layoutManager', 'connectionManager', 'userSetti } function renderNextUp(page, item, user) { - var section = page.querySelector('.nextUpSection'); + const section = page.querySelector('.nextUpSection'); - if ('Series' != item.Type) { + if (item.Type != 'Series') { return void section.classList.add('hide'); } @@ -776,16 +809,16 @@ define(['loading', 'appRouter', 'layoutManager', 'connectionManager', 'userSetti section.classList.add('hide'); } - var html = cardBuilder.getCardsHtml({ + const html = cardBuilder.getCardsHtml({ items: result.Items, shape: 'overflowBackdrop', showTitle: true, - displayAsSpecial: 'Season' == item.Type && item.IndexNumber, + displayAsSpecial: item.Type == 'Season' && item.IndexNumber, overlayText: false, centerText: true, overlayPlayButton: true }); - var itemsContainer = section.querySelector('.nextUpItems'); + const itemsContainer = section.querySelector('.nextUpItems'); itemsContainer.innerHTML = html; imageLoader.lazyChildren(itemsContainer); }); @@ -794,14 +827,14 @@ define(['loading', 'appRouter', 'layoutManager', 'connectionManager', 'userSetti function setInitialCollapsibleState(page, item, apiClient, context, user) { page.querySelector('.collectionItems').innerHTML = ''; - if ('Playlist' == item.Type) { + if (item.Type == 'Playlist') { page.querySelector('#childrenCollapsible').classList.remove('hide'); renderPlaylistItems(page, item); - } else if ('Studio' == item.Type || 'Person' == item.Type || 'Genre' == item.Type || 'MusicGenre' == item.Type || 'MusicArtist' == item.Type) { + } else if (item.Type == 'Studio' || item.Type == 'Person' || item.Type == 'Genre' || item.Type == 'MusicGenre' || item.Type == 'MusicArtist') { page.querySelector('#childrenCollapsible').classList.remove('hide'); renderItemsByName(page, item); } else if (item.IsFolder) { - if ('BoxSet' == item.Type) { + if (item.Type == 'BoxSet') { page.querySelector('#childrenCollapsible').classList.add('hide'); } @@ -810,7 +843,7 @@ define(['loading', 'appRouter', 'layoutManager', 'connectionManager', 'userSetti page.querySelector('#childrenCollapsible').classList.add('hide'); } - if ('Series' == item.Type) { + if (item.Type == 'Series') { renderSeriesSchedule(page, item); renderNextUp(page, item, user); } else { @@ -819,7 +852,7 @@ define(['loading', 'appRouter', 'layoutManager', 'connectionManager', 'userSetti renderScenes(page, item); - if (item.SpecialFeatureCount && 0 != item.SpecialFeatureCount && 'Series' != item.Type) { + if (item.SpecialFeatureCount && item.SpecialFeatureCount != 0 && item.Type != 'Series') { page.querySelector('#specialsCollapsible').classList.remove('hide'); renderSpecials(page, item, user); } else { @@ -835,7 +868,7 @@ define(['loading', 'appRouter', 'layoutManager', 'connectionManager', 'userSetti page.querySelector('#additionalPartsCollapsible').classList.add('hide'); } - if ('MusicAlbum' == item.Type) { + if (item.Type == 'MusicAlbum') { renderMusicVideos(page, item, user); } else { page.querySelector('#musicVideosCollapsible').classList.add('hide'); @@ -843,8 +876,8 @@ define(['loading', 'appRouter', 'layoutManager', 'connectionManager', 'userSetti } function toggleLineClamp(clampTarget, e) { - var expandButton = e.target; - var clampClassName = 'detail-clamp-text'; + const expandButton = e.target; + const clampClassName = 'detail-clamp-text'; if (clampTarget.classList.contains(clampClassName)) { clampTarget.classList.remove(clampClassName); @@ -857,7 +890,7 @@ define(['loading', 'appRouter', 'layoutManager', 'connectionManager', 'userSetti function renderOverview(page, item) { for (const overviewElemnt of page.querySelectorAll('.overview')) { - var overview = item.Overview || ''; + const overview = item.Overview || ''; if (overview) { overviewElemnt.innerHTML = overview; @@ -865,7 +898,7 @@ define(['loading', 'appRouter', 'layoutManager', 'connectionManager', 'userSetti overviewElemnt.classList.add('detail-clamp-text'); // Grab the sibling element to control the expand state - var expandButton = overviewElemnt.parentElement.querySelector('.overview-expand'); + const expandButton = overviewElemnt.parentElement.querySelector('.overview-expand'); // Detect if we have overflow of text. Based on this StackOverflow answer // https://stackoverflow.com/a/35157976 @@ -888,10 +921,10 @@ define(['loading', 'appRouter', 'layoutManager', 'connectionManager', 'userSetti } function renderGenres(page, item, context = inferContext(item)) { - var genres = item.GenreItems || []; - var type = context === 'music' ? 'MusicGenre' : 'Genre'; + const genres = item.GenreItems || []; + const type = context === 'music' ? 'MusicGenre' : 'Genre'; - var html = genres.map(function (p) { + const html = genres.map(function (p) { return '' + p.Name + ''; }).join(', '); - var genresLabel = page.querySelector('.genresLabel'); + const genresLabel = page.querySelector('.genresLabel'); genresLabel.innerHTML = globalize.translate(genres.length > 1 ? 'Genres' : 'Genre'); - var genresValue = page.querySelector('.genres'); + const genresValue = page.querySelector('.genres'); genresValue.innerHTML = html; - var genresGroup = page.querySelector('.genresGroup'); + const genresGroup = page.querySelector('.genresGroup'); if (genres.length) { genresGroup.classList.remove('hide'); } else { @@ -916,11 +949,11 @@ define(['loading', 'appRouter', 'layoutManager', 'connectionManager', 'userSetti } function renderWriter(page, item, context) { - var writers = (item.People || []).filter(function (person) { + const writers = (item.People || []).filter(function (person) { return person.Type === 'Writer'; }); - var html = writers.map(function (person) { + const html = writers.map(function (person) { return '' + person.Name + ''; }).join(', '); - var writersLabel = page.querySelector('.writersLabel'); + const writersLabel = page.querySelector('.writersLabel'); writersLabel.innerHTML = globalize.translate(writers.length > 1 ? 'Writers' : 'Writer'); - var writersValue = page.querySelector('.writers'); + const writersValue = page.querySelector('.writers'); writersValue.innerHTML = html; - var writersGroup = page.querySelector('.writersGroup'); + const writersGroup = page.querySelector('.writersGroup'); if (writers.length) { writersGroup.classList.remove('hide'); } else { @@ -945,11 +978,11 @@ define(['loading', 'appRouter', 'layoutManager', 'connectionManager', 'userSetti } function renderDirector(page, item, context) { - var directors = (item.People || []).filter(function (person) { + const directors = (item.People || []).filter(function (person) { return person.Type === 'Director'; }); - var html = directors.map(function (person) { + const html = directors.map(function (person) { return '' + person.Name + ''; }).join(', '); - var directorsLabel = page.querySelector('.directorsLabel'); + const directorsLabel = page.querySelector('.directorsLabel'); directorsLabel.innerHTML = globalize.translate(directors.length > 1 ? 'Directors' : 'Director'); - var directorsValue = page.querySelector('.directors'); + const directorsValue = page.querySelector('.directors'); directorsValue.innerHTML = html; - var directorsGroup = page.querySelector('.directorsGroup'); + const directorsGroup = page.querySelector('.directorsGroup'); if (directors.length) { directorsGroup.classList.remove('hide'); } else { @@ -983,7 +1016,7 @@ define(['loading', 'appRouter', 'layoutManager', 'connectionManager', 'userSetti subtitles: false }); - if (miscInfo.innerHTML && 'SeriesTimer' !== item.Type) { + if (miscInfo.innerHTML && item.Type !== 'SeriesTimer') { miscInfo.classList.remove('hide'); } else { miscInfo.classList.add('hide'); @@ -997,7 +1030,7 @@ define(['loading', 'appRouter', 'layoutManager', 'connectionManager', 'userSetti interactive: true }); - if (miscInfo.innerHTML && 'SeriesTimer' !== item.Type) { + if (miscInfo.innerHTML && item.Type !== 'SeriesTimer') { miscInfo.classList.remove('hide'); } else { miscInfo.classList.add('hide'); @@ -1006,7 +1039,7 @@ define(['loading', 'appRouter', 'layoutManager', 'connectionManager', 'userSetti } function renderTagline(page, item) { - var taglineElement = page.querySelector('.tagline'); + const taglineElement = page.querySelector('.tagline'); if (item.Taglines && item.Taglines.length) { taglineElement.classList.remove('hide'); @@ -1038,7 +1071,7 @@ define(['loading', 'appRouter', 'layoutManager', 'connectionManager', 'userSetti } function getPortraitShape(scrollX) { - if (null == scrollX) { + if (scrollX == null) { scrollX = enableScrollX(); } @@ -1046,7 +1079,7 @@ define(['loading', 'appRouter', 'layoutManager', 'connectionManager', 'userSetti } function getSquareShape(scrollX) { - if (null == scrollX) { + if (scrollX == null) { scrollX = enableScrollX(); } @@ -1054,14 +1087,14 @@ define(['loading', 'appRouter', 'layoutManager', 'connectionManager', 'userSetti } function renderMoreFromSeason(view, item, apiClient) { - var section = view.querySelector('.moreFromSeasonSection'); + const section = view.querySelector('.moreFromSeasonSection'); if (section) { - if ('Episode' !== item.Type || !item.SeasonId || !item.SeriesId) { + if (item.Type !== 'Episode' || !item.SeasonId || !item.SeriesId) { return void section.classList.add('hide'); } - var userId = apiClient.getCurrentUserId(); + const userId = apiClient.getCurrentUserId(); apiClient.getEpisodes(item.SeriesId, { SeasonId: item.SeasonId, UserId: userId, @@ -1073,7 +1106,7 @@ define(['loading', 'appRouter', 'layoutManager', 'connectionManager', 'userSetti section.classList.remove('hide'); section.querySelector('h2').innerHTML = globalize.translate('MoreFromValue', item.SeasonName); - var itemsContainer = section.querySelector('.itemsContainer'); + const itemsContainer = section.querySelector('.itemsContainer'); cardBuilder.buildCards(result.Items, { parentContainer: section, itemsContainer: itemsContainer, @@ -1086,7 +1119,7 @@ define(['loading', 'appRouter', 'layoutManager', 'connectionManager', 'userSetti includeParentInfoInTitle: false, allowBottomPadding: false }); - var card = itemsContainer.querySelector('.card[data-id="' + item.Id + '"]'); + const card = itemsContainer.querySelector('.card[data-id="' + item.Id + '"]'); if (card) { setTimeout(function () { @@ -1098,18 +1131,18 @@ define(['loading', 'appRouter', 'layoutManager', 'connectionManager', 'userSetti } function renderMoreFromArtist(view, item, apiClient) { - var section = view.querySelector('.moreFromArtistSection'); + const section = view.querySelector('.moreFromArtistSection'); if (section) { - if ('MusicArtist' === item.Type) { + if (item.Type === 'MusicArtist') { if (!apiClient.isMinServerVersion('3.4.1.19')) { return void section.classList.add('hide'); } - } else if ('MusicAlbum' !== item.Type || !item.AlbumArtists || !item.AlbumArtists.length) { + } else if (item.Type !== 'MusicAlbum' || !item.AlbumArtists || !item.AlbumArtists.length) { return void section.classList.add('hide'); } - var query = { + const query = { IncludeItemTypes: 'MusicAlbum', Recursive: true, ExcludeItemIds: item.Id, @@ -1117,7 +1150,7 @@ define(['loading', 'appRouter', 'layoutManager', 'connectionManager', 'userSetti SortOrder: 'Descending' }; - if ('MusicArtist' === item.Type) { + if (item.Type === 'MusicArtist') { query.ContributingArtistIds = item.Id; } else if (apiClient.isMinServerVersion('3.4.1.18')) { query.AlbumArtistIds = item.AlbumArtists[0].Id; @@ -1132,7 +1165,7 @@ define(['loading', 'appRouter', 'layoutManager', 'connectionManager', 'userSetti section.classList.remove('hide'); - if ('MusicArtist' === item.Type) { + if (item.Type === 'MusicArtist') { section.querySelector('h2').innerHTML = globalize.translate('HeaderAppearsOn'); } else { section.querySelector('h2').innerHTML = globalize.translate('MoreFromValue', item.AlbumArtists[0].Name); @@ -1144,7 +1177,7 @@ define(['loading', 'appRouter', 'layoutManager', 'connectionManager', 'userSetti shape: 'autooverflow', sectionTitleTagName: 'h2', scalable: true, - coverImage: 'MusicArtist' === item.Type || 'MusicAlbum' === item.Type, + coverImage: item.Type === 'MusicArtist' || item.Type === 'MusicAlbum', showTitle: true, showParentTitle: false, centerText: true, @@ -1157,22 +1190,22 @@ define(['loading', 'appRouter', 'layoutManager', 'connectionManager', 'userSetti } function renderSimilarItems(page, item, context) { - var similarCollapsible = page.querySelector('#similarCollapsible'); + const similarCollapsible = page.querySelector('#similarCollapsible'); if (similarCollapsible) { - if ('Movie' != item.Type && 'Trailer' != item.Type && 'Series' != item.Type && 'Program' != item.Type && 'Recording' != item.Type && 'MusicAlbum' != item.Type && 'MusicArtist' != item.Type && 'Playlist' != item.Type) { + if (item.Type != 'Movie' && item.Type != 'Trailer' && item.Type != 'Series' && item.Type != 'Program' && item.Type != 'Recording' && item.Type != 'MusicAlbum' && item.Type != 'MusicArtist' && item.Type != 'Playlist') { return void similarCollapsible.classList.add('hide'); } similarCollapsible.classList.remove('hide'); - var apiClient = connectionManager.getApiClient(item.ServerId); - var options = { + const apiClient = connectionManager.getApiClient(item.ServerId); + const options = { userId: apiClient.getCurrentUserId(), limit: 12, fields: 'PrimaryImageAspectRatio,UserData,CanDelete' }; - if ('MusicAlbum' == item.Type && item.AlbumArtists && item.AlbumArtists.length) { + if (item.Type == 'MusicAlbum' && item.AlbumArtists && item.AlbumArtists.length) { options.ExcludeArtistIds = item.AlbumArtists[0].Id; } @@ -1182,22 +1215,22 @@ define(['loading', 'appRouter', 'layoutManager', 'connectionManager', 'userSetti } similarCollapsible.classList.remove('hide'); - var html = ''; + let html = ''; html += cardBuilder.getCardsHtml({ items: result.Items, shape: 'autooverflow', - showParentTitle: 'MusicAlbum' == item.Type, + showParentTitle: item.Type == 'MusicAlbum', centerText: true, showTitle: true, context: context, lazy: true, showDetailsMenu: true, - coverImage: 'MusicAlbum' == item.Type || 'MusicArtist' == item.Type, + coverImage: item.Type == 'MusicAlbum' || item.Type == 'MusicArtist', overlayPlayButton: true, overlayText: false, - showYear: 'Movie' === item.Type || 'Trailer' === item.Type || 'Series' === item.Type + showYear: item.Type === 'Movie' || item.Type === 'Trailer' || item.Type === 'Series' }); - var similarContent = similarCollapsible.querySelector('.similarContent'); + const similarContent = similarCollapsible.querySelector('.similarContent'); similarContent.innerHTML = html; imageLoader.lazyChildren(similarContent); }); @@ -1205,14 +1238,14 @@ define(['loading', 'appRouter', 'layoutManager', 'connectionManager', 'userSetti } function renderSeriesAirTime(page, item, isStatic) { - var seriesAirTime = page.querySelector('#seriesAirTime'); - if ('Series' != item.Type) { + const seriesAirTime = page.querySelector('#seriesAirTime'); + if (item.Type != 'Series') { seriesAirTime.classList.add('hide'); return; } - var html = ''; + let html = ''; if (item.AirDays && item.AirDays.length) { - if (7 == item.AirDays.length) { + if (item.AirDays.length == 7) { html += 'daily'; } else { html += item.AirDays.map(function (a) { @@ -1227,8 +1260,8 @@ define(['loading', 'appRouter', 'layoutManager', 'connectionManager', 'userSetti if (isStatic) { html += ' on ' + item.Studios[0].Name; } else { - var context = inferContext(item); - var href = appRouter.getRouteUrl(item.Studios[0], { + const context = inferContext(item); + const href = appRouter.getRouteUrl(item.Studios[0], { context: context, itemType: 'Studio', serverId: item.ServerId @@ -1237,7 +1270,7 @@ define(['loading', 'appRouter', 'layoutManager', 'connectionManager', 'userSetti } } if (html) { - html = ('Ended' == item.Status ? 'Aired ' : 'Airs ') + html; + html = (item.Status == 'Ended' ? 'Aired ' : 'Airs ') + html; seriesAirTime.innerHTML = html; seriesAirTime.classList.remove('hide'); } else { @@ -1246,15 +1279,15 @@ define(['loading', 'appRouter', 'layoutManager', 'connectionManager', 'userSetti } function renderTags(page, item) { - var itemTags = page.querySelector('.itemTags'); - var tagElements = []; - var tags = item.Tags || []; + const itemTags = page.querySelector('.itemTags'); + const tagElements = []; + let tags = item.Tags || []; - if ('Program' === item.Type) { + if (item.Type === 'Program') { tags = []; } - for (var i = 0, length = tags.length; i < length; i++) { + for (let i = 0, length = tags.length; i < length; i++) { tagElements.push(tags[i]); } @@ -1268,44 +1301,44 @@ define(['loading', 'appRouter', 'layoutManager', 'connectionManager', 'userSetti } function renderChildren(page, item) { - var fields = 'ItemCounts,PrimaryImageAspectRatio,BasicSyncInfo,CanDelete,MediaSourceCount'; - var query = { + let fields = 'ItemCounts,PrimaryImageAspectRatio,BasicSyncInfo,CanDelete,MediaSourceCount'; + const query = { ParentId: item.Id, Fields: fields }; - if ('BoxSet' !== item.Type) { + if (item.Type !== 'BoxSet') { query.SortBy = 'SortName'; } - var promise; - var apiClient = connectionManager.getApiClient(item.ServerId); - var userId = apiClient.getCurrentUserId(); + let promise; + const apiClient = connectionManager.getApiClient(item.ServerId); + const userId = apiClient.getCurrentUserId(); - if ('Series' == item.Type) { + if (item.Type == 'Series') { promise = apiClient.getSeasons(item.Id, { userId: userId, Fields: fields }); - } else if ('Season' == item.Type) { + } else if (item.Type == 'Season') { fields += ',Overview'; promise = apiClient.getEpisodes(item.SeriesId, { seasonId: item.Id, userId: userId, Fields: fields }); - } else if ('MusicArtist' == item.Type) { + } else if (item.Type == 'MusicArtist') { query.SortBy = 'ProductionYear,SortName'; } promise = promise || apiClient.getItems(apiClient.getCurrentUserId(), query); promise.then(function (result) { - var html = ''; - var scrollX = false; - var isList = false; - var childrenItemsContainer = page.querySelector('.childrenItemsContainer'); + let html = ''; + let scrollX = false; + let isList = false; + const childrenItemsContainer = page.querySelector('.childrenItemsContainer'); - if ('MusicAlbum' == item.Type) { + if (item.Type == 'MusicAlbum') { html = listView.getListViewHtml({ items: result.Items, smallIcon: true, @@ -1319,7 +1352,7 @@ define(['loading', 'appRouter', 'layoutManager', 'connectionManager', 'userSetti containerAlbumArtists: item.AlbumArtists }); isList = true; - } else if ('Series' == item.Type) { + } else if (item.Type == 'Series') { scrollX = enableScrollX(); html = cardBuilder.getCardsHtml({ items: result.Items, @@ -1330,21 +1363,21 @@ define(['loading', 'appRouter', 'layoutManager', 'connectionManager', 'userSetti overlayPlayButton: true, allowBottomPadding: !scrollX }); - } else if ('Season' == item.Type || 'Episode' == item.Type) { - if ('Episode' !== item.Type) { + } else if (item.Type == 'Season' || item.Type == 'Episode') { + if (item.Type !== 'Episode') { isList = true; } - scrollX = 'Episode' == item.Type; - if (result.Items.length < 2 && 'Episode' === item.Type) { + scrollX = item.Type == 'Episode'; + if (result.Items.length < 2 && item.Type === 'Episode') { return; } - if ('Episode' === item.Type) { + if (item.Type === 'Episode') { html = cardBuilder.getCardsHtml({ items: result.Items, shape: 'overflowBackdrop', showTitle: true, - displayAsSpecial: 'Season' == item.Type && item.IndexNumber, + displayAsSpecial: item.Type == 'Season' && item.IndexNumber, playFromHere: true, overlayText: true, lazy: true, @@ -1353,7 +1386,7 @@ define(['loading', 'appRouter', 'layoutManager', 'connectionManager', 'userSetti allowBottomPadding: !scrollX, includeParentInfoInTitle: false }); - } else if ('Season' === item.Type) { + } else if (item.Type === 'Season') { html = listView.getListViewHtml({ items: result.Items, showIndexNumber: false, @@ -1370,7 +1403,7 @@ define(['loading', 'appRouter', 'layoutManager', 'connectionManager', 'userSetti } } - if ('BoxSet' !== item.Type) { + if (item.Type !== 'BoxSet') { page.querySelector('#childrenCollapsible').classList.remove('hide'); } if (scrollX) { @@ -1395,8 +1428,8 @@ define(['loading', 'appRouter', 'layoutManager', 'connectionManager', 'userSetti } childrenItemsContainer.innerHTML = html; imageLoader.lazyChildren(childrenItemsContainer); - if ('BoxSet' == item.Type) { - var collectionItemTypes = [{ + if (item.Type == 'BoxSet') { + const collectionItemTypes = [{ name: globalize.translate('HeaderVideos'), mediaType: 'Video' }, { @@ -1413,17 +1446,17 @@ define(['loading', 'appRouter', 'layoutManager', 'connectionManager', 'userSetti } }); - if ('Season' == item.Type) { + if (item.Type == 'Season') { page.querySelector('#childrenTitle').innerHTML = globalize.translate('HeaderEpisodes'); - } else if ('Series' == item.Type) { + } else if (item.Type == 'Series') { page.querySelector('#childrenTitle').innerHTML = globalize.translate('HeaderSeasons'); - } else if ('MusicAlbum' == item.Type) { + } else if (item.Type == 'MusicAlbum') { page.querySelector('#childrenTitle').innerHTML = globalize.translate('HeaderTracks'); } else { page.querySelector('#childrenTitle').innerHTML = globalize.translate('HeaderItems'); } - if ('MusicAlbum' == item.Type || 'Season' == item.Type) { + if (item.Type == 'MusicAlbum' || item.Type == 'Season') { page.querySelector('.childrenSectionHeader').classList.add('hide'); page.querySelector('#childrenCollapsible').classList.add('verticalSection-extrabottompadding'); } else { @@ -1432,25 +1465,25 @@ define(['loading', 'appRouter', 'layoutManager', 'connectionManager', 'userSetti } function renderItemsByName(page, item) { - require('scripts/itembynamedetailpage'.split(','), function () { + import('scripts/itembynamedetailpage').then(() => { window.ItemsByName.renderItems(page, item); }); } function renderPlaylistItems(page, item) { - require('scripts/playlistedit'.split(','), function () { + import('scripts/playlistedit').then(() => { PlaylistViewer.render(page, item); }); } function renderProgramsForChannel(page, result) { - var html = ''; - var currentItems = []; - var currentStartDate = null; + let html = ''; + let currentItems = []; + let currentStartDate = null; - for (var i = 0, length = result.Items.length; i < length; i++) { - var item = result.Items[i]; - var itemStartDate = datetime.parseISO8601Date(item.StartDate); + for (let i = 0, length = result.Items.length; i < length; i++) { + const item = result.Items[i]; + const itemStartDate = datetime.parseISO8601Date(item.StartDate); if (!(currentStartDate && currentStartDate.toDateString() === itemStartDate.toDateString())) { if (currentItems.length) { @@ -1500,7 +1533,7 @@ define(['loading', 'appRouter', 'layoutManager', 'connectionManager', 'userSetti } function renderChannelGuide(page, apiClient, item) { - if ('TvChannel' === item.Type) { + if (item.Type === 'TvChannel') { page.querySelector('.programGuideSection').classList.remove('hide'); apiClient.getLiveTvPrograms({ ChannelIds: item.Id, @@ -1518,7 +1551,7 @@ define(['loading', 'appRouter', 'layoutManager', 'connectionManager', 'userSetti } function renderSeriesSchedule(page, item) { - var apiClient = connectionManager.getApiClient(item.ServerId); + const apiClient = connectionManager.getApiClient(item.ServerId); apiClient.getLiveTvPrograms({ UserId: apiClient.getCurrentUserId(), HasAired: false, @@ -1552,19 +1585,19 @@ define(['loading', 'appRouter', 'layoutManager', 'connectionManager', 'userSetti } function inferContext(item) { - if ('Movie' === item.Type || 'BoxSet' === item.Type) { + if (item.Type === 'Movie' || item.Type === 'BoxSet') { return 'movies'; } - if ('Series' === item.Type || 'Season' === item.Type || 'Episode' === item.Type) { + if (item.Type === 'Series' || item.Type === 'Season' || item.Type === 'Episode') { return 'tvshows'; } - if ('MusicArtist' === item.Type || 'MusicAlbum' === item.Type || 'Audio' === item.Type || 'AudioBook' === item.Type) { + if (item.Type === 'MusicArtist' || item.Type === 'MusicAlbum' || item.Type === 'Audio' || item.Type === 'AudioBook') { return 'music'; } - if ('Program' === item.Type) { + if (item.Type === 'Program') { return 'livetv'; } @@ -1582,9 +1615,9 @@ define(['loading', 'appRouter', 'layoutManager', 'connectionManager', 'userSetti } function canPlaySomeItemInCollection(items) { - var i = 0; + let i = 0; - for (var length = items.length; i < length; i++) { + for (let length = items.length; i < length; i++) { if (playbackManager.canPlay(items[i])) { return true; } @@ -1598,17 +1631,17 @@ define(['loading', 'appRouter', 'layoutManager', 'connectionManager', 'userSetti page.querySelector('.collectionItems').innerHTML = ''; for (const type of types) { - var typeItems = filterItemsByCollectionItemType(items, type); + const typeItems = filterItemsByCollectionItemType(items, type); if (typeItems.length) { renderCollectionItemType(page, parentItem, type, typeItems); } } - var otherType = { + const otherType = { name: globalize.translate('HeaderOtherItems') }; - var otherTypeItems = items.filter(function (curr) { + const otherTypeItems = items.filter(function (curr) { return !types.filter(function (t) { return filterItemsByCollectionItemType([curr], t).length > 0; }).length; @@ -1624,9 +1657,9 @@ define(['loading', 'appRouter', 'layoutManager', 'connectionManager', 'userSetti }, items); } - var containers = page.querySelectorAll('.collectionItemsContainer'); + const containers = page.querySelectorAll('.collectionItemsContainer'); - var notifyRefreshNeeded = function () { + const notifyRefreshNeeded = function () { renderChildren(page, parentItem); }; @@ -1642,13 +1675,13 @@ define(['loading', 'appRouter', 'layoutManager', 'connectionManager', 'userSetti // HACK: Call autoFocuser again because btnPlay may be hidden, but focused by reloadFromItem // FIXME: Sometimes focus does not move until all (?) sections are loaded - require(['autoFocuser'], function (autoFocuser) { + import('autoFocuser').then(({default: autoFocuser}) => { autoFocuser.autoFocus(page); }); } function renderCollectionItemType(page, parentItem, type, items) { - var html = ''; + let html = ''; html += '
'; html += '
'; html += '

'; @@ -1656,12 +1689,12 @@ define(['loading', 'appRouter', 'layoutManager', 'connectionManager', 'userSetti html += '

'; html += '
'; html += '
'; - var shape = 'MusicAlbum' == type.type ? getSquareShape(false) : getPortraitShape(false); + const shape = type.type == 'MusicAlbum' ? getSquareShape(false) : getPortraitShape(false); html += cardBuilder.getCardsHtml({ items: items, shape: shape, showTitle: true, - showYear: 'Video' === type.mediaType || 'Series' === type.type, + showYear: type.mediaType === 'Video' || type.type === 'Series', centerText: true, lazy: true, showDetailsMenu: true, @@ -1672,7 +1705,7 @@ define(['loading', 'appRouter', 'layoutManager', 'connectionManager', 'userSetti }); html += '
'; html += '
'; - var collectionItems = page.querySelector('.collectionItems'); + const collectionItems = page.querySelector('.collectionItems'); collectionItems.insertAdjacentHTML('beforeend', html); imageLoader.lazyChildren(collectionItems); } @@ -1688,7 +1721,7 @@ define(['loading', 'appRouter', 'layoutManager', 'connectionManager', 'userSetti }).then(function (result) { if (result.Items.length) { page.querySelector('#musicVideosCollapsible').classList.remove('hide'); - var musicVideosContent = page.querySelector('.musicVideosContent'); + const musicVideosContent = page.querySelector('.musicVideosContent'); musicVideosContent.innerHTML = getVideosHtml(result.Items); imageLoader.lazyChildren(musicVideosContent); } else { @@ -1701,7 +1734,7 @@ define(['loading', 'appRouter', 'layoutManager', 'connectionManager', 'userSetti connectionManager.getApiClient(item.ServerId).getAdditionalVideoParts(user.Id, item.Id).then(function (result) { if (result.Items.length) { page.querySelector('#additionalPartsCollapsible').classList.remove('hide'); - var additionalPartsContent = page.querySelector('#additionalPartsContent'); + const additionalPartsContent = page.querySelector('#additionalPartsContent'); additionalPartsContent.innerHTML = getVideosHtml(result.Items); imageLoader.lazyChildren(additionalPartsContent); } else { @@ -1711,13 +1744,13 @@ define(['loading', 'appRouter', 'layoutManager', 'connectionManager', 'userSetti } function renderScenes(page, item) { - var chapters = item.Chapters || []; + let chapters = item.Chapters || []; if (chapters.length && !chapters[0].ImageTag && (chapters = []), chapters.length) { page.querySelector('#scenesCollapsible').classList.remove('hide'); - var scenesContent = page.querySelector('#scenesContent'); + const scenesContent = page.querySelector('#scenesContent'); - require(['chaptercardbuilder'], function (chaptercardbuilder) { + import('chaptercardbuilder').then(({default: chaptercardbuilder}) => { chaptercardbuilder.buildChapterCards(item, chapters, { itemsContainer: scenesContent, backdropShape: 'overflowBackdrop', @@ -1731,7 +1764,7 @@ define(['loading', 'appRouter', 'layoutManager', 'connectionManager', 'userSetti } function getVideosHtml(items) { - var html = cardBuilder.getCardsHtml({ + return cardBuilder.getCardsHtml({ items: items, shape: 'autooverflow', showTitle: true, @@ -1740,20 +1773,18 @@ define(['loading', 'appRouter', 'layoutManager', 'connectionManager', 'userSetti centerText: true, showRuntime: true }); - - return html; } function renderSpecials(page, item, user) { connectionManager.getApiClient(item.ServerId).getSpecialFeatures(user.Id, item.Id).then(function (specials) { - var specialsContent = page.querySelector('#specialsContent'); + const specialsContent = page.querySelector('#specialsContent'); specialsContent.innerHTML = getVideosHtml(specials); imageLoader.lazyChildren(specialsContent); }); } function renderCast(page, item) { - var people = (item.People || []).filter(function (p) { + const people = (item.People || []).filter(function (p) { return p.Type === 'Actor'; }); @@ -1762,9 +1793,9 @@ define(['loading', 'appRouter', 'layoutManager', 'connectionManager', 'userSetti } page.querySelector('#castCollapsible').classList.remove('hide'); - var castContent = page.querySelector('#castContent'); + const castContent = page.querySelector('#castContent'); - require(['peoplecardbuilder'], function (peoplecardbuilder) { + import('peoplecardbuilder').then(({default: peoplecardbuilder}) => { peoplecardbuilder.buildPeopleCards(people, { itemsContainer: castContent, coverImage: true, @@ -1776,14 +1807,14 @@ define(['loading', 'appRouter', 'layoutManager', 'connectionManager', 'userSetti } function itemDetailPage() { - var self = this; + const self = this; self.setInitialCollapsibleState = setInitialCollapsibleState; self.renderDetails = renderDetails; self.renderCast = renderCast; } function bindAll(view, selector, eventName, fn) { - var elems = view.querySelectorAll(selector); + const elems = view.querySelectorAll(selector); for (const elem of elems) { elem.addEventListener(eventName, fn); @@ -1796,11 +1827,12 @@ define(['loading', 'appRouter', 'layoutManager', 'connectionManager', 'userSetti } window.ItemDetailPage = new itemDetailPage(); - return function (view, params) { + + export default function (view, params) { function reload(instance, page, params) { loading.show(); - var apiClient = params.serverId ? connectionManager.getApiClient(params.serverId) : ApiClient; + const apiClient = params.serverId ? connectionManager.getApiClient(params.serverId) : ApiClient; Promise.all([getPromise(apiClient, params), apiClient.getCurrentUser()]).then(([item, user]) => { currentItem = item; @@ -1811,8 +1843,8 @@ define(['loading', 'appRouter', 'layoutManager', 'connectionManager', 'userSetti } function splitVersions(instance, page, apiClient, params) { - require(['confirm'], function (confirm) { - confirm.default('Are you sure you wish to split the media sources into separate items?', 'Split Media Apart').then(function () { + import('confirm').then(({default: confirm}) => { + confirm('Are you sure you wish to split the media sources into separate items?', 'Split Media Apart').then(function () { loading.show(); apiClient.ajax({ type: 'DELETE', @@ -1826,7 +1858,7 @@ define(['loading', 'appRouter', 'layoutManager', 'connectionManager', 'userSetti } function getPlayOptions(startPosition) { - var audioStreamIndex = view.querySelector('.selectAudio').value || null; + const audioStreamIndex = view.querySelector('.selectAudio').value || null; return { startPositionTicks: startPosition, mediaSourceId: view.querySelector('.selectSource').value, @@ -1836,7 +1868,7 @@ define(['loading', 'appRouter', 'layoutManager', 'connectionManager', 'userSetti } function playItem(item, startPosition) { - var playOptions = getPlayOptions(startPosition); + const playOptions = getPlayOptions(startPosition); playOptions.items = [item]; playbackManager.play(playOptions); } @@ -1846,10 +1878,10 @@ define(['loading', 'appRouter', 'layoutManager', 'connectionManager', 'userSetti } function playCurrentItem(button, mode) { - var item = currentItem; + const item = currentItem; - if ('Program' === item.Type) { - var apiClient = connectionManager.getApiClient(item.ServerId); + if (item.Type === 'Program') { + const apiClient = connectionManager.getApiClient(item.ServerId); return void apiClient.getLiveTvChannel(item.ChannelId, apiClient.getCurrentUserId()).then(function (channel) { playbackManager.play({ items: [channel] @@ -1873,7 +1905,7 @@ define(['loading', 'appRouter', 'layoutManager', 'connectionManager', 'userSetti } function onCancelSeriesTimerClick() { - require(['recordingHelper'], function (recordingHelper) { + import('recordingHelper').then(({default: recordingHelper}) => { recordingHelper.cancelSeriesTimerWithConfirmation(currentItem.Id, currentItem.ServerId).then(function () { Dashboard.navigate('livetv.html'); }); @@ -1881,7 +1913,7 @@ define(['loading', 'appRouter', 'layoutManager', 'connectionManager', 'userSetti } function onCancelTimerClick() { - require(['recordingHelper'], function (recordingHelper) { + import('recordingHelper').then(({default: recordingHelper}) => { recordingHelper.cancelTimer(connectionManager.getApiClient(currentItem.ServerId), currentItem.TimerId).then(function () { reload(self, view, params); }); @@ -1893,8 +1925,8 @@ define(['loading', 'appRouter', 'layoutManager', 'connectionManager', 'userSetti } function onDownloadClick() { - require(['fileDownloader'], function (fileDownloader) { - var downloadHref = apiClient.getItemDownloadUrl(currentItem.Id); + import('fileDownloader').then(({default: fileDownloader}) => { + const downloadHref = apiClient.getItemDownloadUrl(currentItem.Id); fileDownloader.download([{ url: downloadHref, itemId: currentItem.Id, @@ -1904,7 +1936,7 @@ define(['loading', 'appRouter', 'layoutManager', 'connectionManager', 'userSetti } function onMoreCommandsClick() { - var button = this; + const button = this; apiClient.getCurrentUser().then(function (user) { itemContextMenu.show(getContextMenuOptions(currentItem, user, button)).then(function (result) { if (result.deleted) { @@ -1922,11 +1954,11 @@ define(['loading', 'appRouter', 'layoutManager', 'connectionManager', 'userSetti } function onWebSocketMessage(e, data) { - var msg = data; + const msg = data; - if ('UserDataChanged' === msg.MessageType && currentItem && msg.Data.UserId == apiClient.getCurrentUserId()) { - var key = currentItem.UserData.Key; - var userData = msg.Data.UserDataList.filter(function (u) { + if (msg.MessageType === 'UserDataChanged' && currentItem && msg.Data.UserId == apiClient.getCurrentUserId()) { + const key = currentItem.UserData.Key; + const userData = msg.Data.UserDataList.filter(function (u) { return u.Key == key; })[0]; @@ -1938,9 +1970,9 @@ define(['loading', 'appRouter', 'layoutManager', 'connectionManager', 'userSetti } } - var currentItem; - var self = this; - var apiClient = params.serverId ? connectionManager.getApiClient(params.serverId) : ApiClient; + let currentItem; + const self = this; + const apiClient = params.serverId ? connectionManager.getApiClient(params.serverId) : ApiClient; view.querySelectorAll('.btnPlay'); bindAll(view, '.btnPlay', 'click', onPlayClick); bindAll(view, '.btnResume', 'click', onPlayClick); @@ -1961,7 +1993,7 @@ define(['loading', 'appRouter', 'layoutManager', 'connectionManager', 'userSetti renderSubtitleSelections(view, self._currentPlaybackMediaSources); }); view.addEventListener('viewshow', function (e) { - var page = this; + const page = this; libraryMenu.setTransparentMenu(true); @@ -1987,5 +2019,6 @@ define(['loading', 'appRouter', 'layoutManager', 'connectionManager', 'userSetti self._currentPlaybackMediaSources = null; self.currentRecordingFields = null; }); - }; -}); + } + +/* eslint-enable indent */ diff --git a/src/controllers/list.js b/src/controllers/list.js index e550b535f4..68e81f05dd 100644 --- a/src/controllers/list.js +++ b/src/controllers/list.js @@ -1,6 +1,9 @@ define(['globalize', 'listView', 'layoutManager', 'userSettings', 'focusManager', 'cardBuilder', 'loading', 'connectionManager', 'alphaNumericShortcuts', 'scroller', 'playbackManager', 'alphaPicker', 'emby-itemscontainer', 'emby-scroller'], function (globalize, listView, layoutManager, userSettings, focusManager, cardBuilder, loading, connectionManager, AlphaNumericShortcuts, scroller, playbackManager, AlphaPicker) { 'use strict'; + playbackManager = playbackManager.default || playbackManager; + loading = loading.default || loading; + function getInitialLiveTvQuery(instance, params) { var query = { UserId: connectionManager.getApiClient(params.serverId).getCurrentUserId(), @@ -9,7 +12,7 @@ define(['globalize', 'listView', 'layoutManager', 'userSettings', 'focusManager' Limit: 300 }; - if ('Recordings' === params.type) { + if (params.type === 'Recordings') { query.IsInProgress = false; } else { query.HasAired = false; @@ -19,39 +22,39 @@ define(['globalize', 'listView', 'layoutManager', 'userSettings', 'focusManager' query.GenreIds = params.genreId; } - if ('true' === params.IsMovie) { + if (params.IsMovie === 'true') { query.IsMovie = true; - } else if ('false' === params.IsMovie) { + } else if (params.IsMovie === 'false') { query.IsMovie = false; } - if ('true' === params.IsSeries) { + if (params.IsSeries === 'true') { query.IsSeries = true; - } else if ('false' === params.IsSeries) { + } else if (params.IsSeries === 'false') { query.IsSeries = false; } - if ('true' === params.IsNews) { + if (params.IsNews === 'true') { query.IsNews = true; - } else if ('false' === params.IsNews) { + } else if (params.IsNews === 'false') { query.IsNews = false; } - if ('true' === params.IsSports) { + if (params.IsSports === 'true') { query.IsSports = true; - } else if ('false' === params.IsSports) { + } else if (params.IsSports === 'false') { query.IsSports = false; } - if ('true' === params.IsKids) { + if (params.IsKids === 'true') { query.IsKids = true; - } else if ('false' === params.IsKids) { + } else if (params.IsKids === 'false') { query.IsKids = false; } - if ('true' === params.IsAiring) { + if (params.IsAiring === 'true') { query.IsAiring = true; - } else if ('false' === params.IsAiring) { + } else if (params.IsAiring === 'false') { query.IsAiring = false; } @@ -181,13 +184,13 @@ define(['globalize', 'listView', 'layoutManager', 'userSettings', 'focusManager' var btnSortIcon = instance.btnSortIcon; if (btnSortIcon) { - setSortButtonIcon(btnSortIcon, 'Descending' === values.sortOrder ? 'arrow_downward' : 'arrow_upward'); + setSortButtonIcon(btnSortIcon, values.sortOrder === 'Descending' ? 'arrow_downward' : 'arrow_upward'); } } } function updateItemsContainerForViewType(instance) { - if ('list' === instance.getViewSettings().imageType) { + if (instance.getViewSettings().imageType === 'list') { instance.itemsContainer.classList.remove('vertical-wrap'); instance.itemsContainer.classList.add('vertical-list'); } else { @@ -203,11 +206,11 @@ define(['globalize', 'listView', 'layoutManager', 'userSettings', 'focusManager' if (alphaPicker) { var values = instance.getSortValues(); - if (null == numItems) { + if (numItems == null) { numItems = 100; } - if ('SortName' === values.sortBy && 'Ascending' === values.sortOrder && numItems > 40) { + if (values.sortBy === 'SortName' && values.sortOrder === 'Ascending' && numItems > 40) { alphaPicker.classList.remove('hide'); instance.itemsContainer.parentNode.classList.add('padded-right-withalphapicker'); } else { @@ -222,19 +225,19 @@ define(['globalize', 'listView', 'layoutManager', 'userSettings', 'focusManager' var apiClient = connectionManager.getApiClient(params.serverId); instance.queryRecursive = false; - if ('Recordings' === params.type) { + if (params.type === 'Recordings') { return apiClient.getLiveTvRecordings(getInitialLiveTvQuery(instance, params)); } - if ('Programs' === params.type) { - if ('true' === params.IsAiring) { + if (params.type === 'Programs') { + if (params.IsAiring === 'true') { return apiClient.getLiveTvRecommendedPrograms(getInitialLiveTvQuery(instance, params)); } return apiClient.getLiveTvPrograms(getInitialLiveTvQuery(instance, params)); } - if ('nextup' === params.type) { + if (params.type === 'nextup') { return apiClient.getNextUpEpisodes(modifyQueryWithFilters(instance, { Limit: limit, Fields: 'PrimaryImageAspectRatio,SeriesInfo,DateCreated,BasicSyncInfo', @@ -250,9 +253,9 @@ define(['globalize', 'listView', 'layoutManager', 'userSettings', 'focusManager' instance.queryRecursive = true; var method = 'getItems'; - if ('MusicArtist' === params.type) { + if (params.type === 'MusicArtist') { method = 'getArtists'; - } else if ('Person' === params.type) { + } else if (params.type === 'Person') { method = 'getPeople'; } @@ -261,15 +264,15 @@ define(['globalize', 'listView', 'layoutManager', 'userSettings', 'focusManager' Limit: limit, Fields: 'PrimaryImageAspectRatio,SortName', ImageTypeLimit: 1, - IncludeItemTypes: 'MusicArtist' === params.type || 'Person' === params.type ? null : params.type, + IncludeItemTypes: params.type === 'MusicArtist' || params.type === 'Person' ? null : params.type, Recursive: true, - IsFavorite: 'true' === params.IsFavorite || null, + IsFavorite: params.IsFavorite === 'true' || null, ArtistIds: params.artistId || null, SortBy: sortBy })); } - if ('Genre' === item.Type || 'MusicGenre' === item.Type || 'Studio' === item.Type || 'Person' === item.Type) { + if (item.Type === 'Genre' || item.Type === 'MusicGenre' || item.Type === 'Studio' || item.Type === 'Person') { instance.queryRecursive = true; var query = { StartIndex: startIndex, @@ -280,25 +283,25 @@ define(['globalize', 'listView', 'layoutManager', 'userSettings', 'focusManager' SortBy: sortBy }; - if ('Studio' === item.Type) { + if (item.Type === 'Studio') { query.StudioIds = item.Id; - } else if ('Genre' === item.Type || 'MusicGenre' === item.Type) { + } else if (item.Type === 'Genre' || item.Type === 'MusicGenre') { query.GenreIds = item.Id; - } else if ('Person' === item.Type) { + } else if (item.Type === 'Person') { query.PersonIds = item.Id; } - if ('MusicGenre' === item.Type) { + if (item.Type === 'MusicGenre') { query.IncludeItemTypes = 'MusicAlbum'; - } else if ('GameGenre' === item.Type) { + } else if (item.Type === 'GameGenre') { query.IncludeItemTypes = 'Game'; - } else if ('movies' === item.CollectionType) { + } else if (item.CollectionType === 'movies') { query.IncludeItemTypes = 'Movie'; - } else if ('tvshows' === item.CollectionType) { + } else if (item.CollectionType === 'tvshows') { query.IncludeItemTypes = 'Series'; - } else if ('Genre' === item.Type) { + } else if (item.Type === 'Genre') { query.IncludeItemTypes = 'Movie,Series,Video'; - } else if ('Person' === item.Type) { + } else if (item.Type === 'Person') { query.IncludeItemTypes = params.type; } @@ -316,7 +319,7 @@ define(['globalize', 'listView', 'layoutManager', 'userSettings', 'focusManager' } function getItem(params) { - if ('Recordings' === params.type || 'Programs' === params.type || 'nextup' === params.type) { + if (params.type === 'Recordings' || params.type === 'Programs' || params.type === 'nextup') { return Promise.resolve(null); } @@ -412,7 +415,7 @@ define(['globalize', 'listView', 'layoutManager', 'userSettings', 'focusManager' function ItemsView(view, params) { function fetchData() { return getItems(self, params, self.currentItem).then(function (result) { - if (null == self.totalItemCount) { + if (self.totalItemCount == null) { self.totalItemCount = result.Items ? result.Items.length : result.length; } @@ -424,7 +427,7 @@ define(['globalize', 'listView', 'layoutManager', 'userSettings', 'focusManager' function getItemsHtml(items) { var settings = self.getViewSettings(); - if ('list' === settings.imageType) { + if (settings.imageType === 'list') { return listView.getListViewHtml({ items: items }); @@ -438,24 +441,24 @@ define(['globalize', 'listView', 'layoutManager', 'userSettings', 'focusManager' var item = self.currentItem; var lines = settings.showTitle ? 2 : 0; - if ('banner' === settings.imageType) { + if (settings.imageType === 'banner') { shape = 'banner'; - } else if ('disc' === settings.imageType) { + } else if (settings.imageType === 'disc') { shape = 'square'; preferDisc = true; - } else if ('logo' === settings.imageType) { + } else if (settings.imageType === 'logo') { shape = 'backdrop'; preferLogo = true; - } else if ('thumb' === settings.imageType) { + } else if (settings.imageType === 'thumb') { shape = 'backdrop'; preferThumb = true; - } else if ('nextup' === params.type) { + } else if (params.type === 'nextup') { shape = 'backdrop'; - preferThumb = 'thumb' === settings.imageType; - } else if ('Programs' === params.type || 'Recordings' === params.type) { - shape = 'true' === params.IsMovie ? 'portrait' : 'autoVertical'; - preferThumb = 'true' !== params.IsMovie ? 'auto' : false; - defaultShape = 'true' === params.IsMovie ? 'portrait' : 'backdrop'; + preferThumb = settings.imageType === 'thumb'; + } else if (params.type === 'Programs' || params.type === 'Recordings') { + shape = params.IsMovie === 'true' ? 'portrait' : 'autoVertical'; + preferThumb = params.IsMovie !== 'true' ? 'auto' : false; + defaultShape = params.IsMovie === 'true' ? 'portrait' : 'backdrop'; } else { shape = 'autoVertical'; } @@ -473,46 +476,46 @@ define(['globalize', 'listView', 'layoutManager', 'userSettings', 'focusManager' overlayMoreButton: true, overlayText: !settings.showTitle, defaultShape: defaultShape, - action: 'Audio' === params.type ? 'playallfromhere' : null + action: params.type === 'Audio' ? 'playallfromhere' : null }; - if ('nextup' === params.type) { + if (params.type === 'nextup') { posterOptions.showParentTitle = settings.showTitle; - } else if ('Person' === params.type) { + } else if (params.type === 'Person') { posterOptions.showYear = false; posterOptions.showParentTitle = false; lines = 1; - } else if ('Audio' === params.type) { + } else if (params.type === 'Audio') { posterOptions.showParentTitle = settings.showTitle; - } else if ('MusicAlbum' === params.type) { + } else if (params.type === 'MusicAlbum') { posterOptions.showParentTitle = settings.showTitle; - } else if ('Episode' === params.type) { + } else if (params.type === 'Episode') { posterOptions.showParentTitle = settings.showTitle; - } else if ('MusicArtist' === params.type) { + } else if (params.type === 'MusicArtist') { posterOptions.showYear = false; lines = 1; - } else if ('Programs' === params.type) { + } else if (params.type === 'Programs') { lines = settings.showTitle ? 1 : 0; - var showParentTitle = settings.showTitle && 'true' !== params.IsMovie; + var showParentTitle = settings.showTitle && params.IsMovie !== 'true'; if (showParentTitle) { lines++; } - var showAirTime = settings.showTitle && 'Recordings' !== params.type; + var showAirTime = settings.showTitle && params.type !== 'Recordings'; if (showAirTime) { lines++; } - var showYear = settings.showTitle && 'true' === params.IsMovie && 'Recordings' === params.type; + var showYear = settings.showTitle && params.IsMovie === 'true' && params.type === 'Recordings'; if (showYear) { lines++; } posterOptions = Object.assign(posterOptions, { - inheritThumb: 'Recordings' === params.type, + inheritThumb: params.type === 'Recordings', context: 'livetv', showParentTitle: showParentTitle, showAirTime: showAirTime, @@ -529,7 +532,7 @@ define(['globalize', 'listView', 'layoutManager', 'userSettings', 'focusManager' posterOptions.lines = lines; posterOptions.items = items; - if (item && 'folders' === item.CollectionType) { + if (item && item.CollectionType === 'folders') { posterOptions.context = 'folders'; } @@ -561,7 +564,7 @@ define(['globalize', 'listView', 'layoutManager', 'userSettings', 'focusManager' function setTitle(item) { Emby.Page.setTitle(getTitle(item) || ''); - if (item && 'playlists' === item.CollectionType) { + if (item && item.CollectionType === 'playlists') { hideOrShowAll(view.querySelectorAll('.btnNewItem'), false); } else { hideOrShowAll(view.querySelectorAll('.btnNewItem'), true); @@ -569,43 +572,43 @@ define(['globalize', 'listView', 'layoutManager', 'userSettings', 'focusManager' } function getTitle(item) { - if ('Recordings' === params.type) { + if (params.type === 'Recordings') { return globalize.translate('Recordings'); } - if ('Programs' === params.type) { - if ('true' === params.IsMovie) { + if (params.type === 'Programs') { + if (params.IsMovie === 'true') { return globalize.translate('Movies'); } - if ('true' === params.IsSports) { + if (params.IsSports === 'true') { return globalize.translate('Sports'); } - if ('true' === params.IsKids) { + if (params.IsKids === 'true') { return globalize.translate('HeaderForKids'); } - if ('true' === params.IsAiring) { + if (params.IsAiring === 'true') { return globalize.translate('HeaderOnNow'); } - if ('true' === params.IsSeries) { + if (params.IsSeries === 'true') { return globalize.translate('Shows'); } - if ('true' === params.IsNews) { + if (params.IsNews === 'true') { return globalize.translate('News'); } return globalize.translate('Programs'); } - if ('nextup' === params.type) { + if (params.type === 'nextup') { return globalize.translate('NextUp'); } - if ('favoritemovies' === params.type) { + if (params.type === 'favoritemovies') { return globalize.translate('FavoriteMovies'); } @@ -613,35 +616,35 @@ define(['globalize', 'listView', 'layoutManager', 'userSettings', 'focusManager' return item.Name; } - if ('Movie' === params.type) { + if (params.type === 'Movie') { return globalize.translate('Movies'); } - if ('Series' === params.type) { + if (params.type === 'Series') { return globalize.translate('Shows'); } - if ('Season' === params.type) { + if (params.type === 'Season') { return globalize.translate('Seasons'); } - if ('Episode' === params.type) { + if (params.type === 'Episode') { return globalize.translate('Episodes'); } - if ('MusicArtist' === params.type) { + if (params.type === 'MusicArtist') { return globalize.translate('Artists'); } - if ('MusicAlbum' === params.type) { + if (params.type === 'MusicAlbum') { return globalize.translate('Albums'); } - if ('Audio' === params.type) { + if (params.type === 'Audio') { return globalize.translate('Songs'); } - if ('Video' === params.type) { + if (params.type === 'Video') { return globalize.translate('Videos'); } @@ -700,11 +703,11 @@ define(['globalize', 'listView', 'layoutManager', 'userSettings', 'focusManager' if (params.parentId) { this.itemsContainer.setAttribute('data-parentid', params.parentId); - } else if ('nextup' === params.type) { + } else if (params.type === 'nextup') { this.itemsContainer.setAttribute('data-monitor', 'videoplayback'); - } else if ('favoritemovies' === params.type) { + } else if (params.type === 'favoritemovies') { this.itemsContainer.setAttribute('data-monitor', 'markfavorite'); - } else if ('Programs' === params.type) { + } else if (params.type === 'Programs') { this.itemsContainer.setAttribute('data-refreshinterval', '300000'); } @@ -737,7 +740,7 @@ define(['globalize', 'listView', 'layoutManager', 'userSettings', 'focusManager' var sortButton = sortButtons[i]; sortButton.addEventListener('click', showSortMenu.bind(this)); - if ('nextup' !== params.type) { + if (params.type !== 'nextup') { sortButton.classList.remove('hide'); } } @@ -772,19 +775,19 @@ define(['globalize', 'listView', 'layoutManager', 'userSettings', 'focusManager' } }); - if (!isRestored && item && 'PhotoAlbum' !== item.Type) { + if (!isRestored && item && item.Type !== 'PhotoAlbum') { initAlphaPicker(); } var itemType = item ? item.Type : null; - if ('MusicGenre' === itemType || 'Programs' !== params.type && 'Channel' !== itemType) { + if (itemType === 'MusicGenre' || params.type !== 'Programs' && itemType !== 'Channel') { hideOrShowAll(view.querySelectorAll('.btnPlay'), false); } else { hideOrShowAll(view.querySelectorAll('.btnPlay'), true); } - if ('MusicGenre' === itemType || 'Programs' !== params.type && 'nextup' !== params.type && 'Channel' !== itemType) { + if (itemType === 'MusicGenre' || params.type !== 'Programs' && params.type !== 'nextup' && itemType !== 'Channel') { hideOrShowAll(view.querySelectorAll('.btnShuffle'), false); } else { hideOrShowAll(view.querySelectorAll('.btnShuffle'), true); @@ -845,14 +848,14 @@ define(['globalize', 'listView', 'layoutManager', 'userSettings', 'focusManager' ItemsView.prototype.getFilters = function () { var basekey = this.getSettingsKey(); return { - IsPlayed: 'true' === userSettings.getFilter(basekey + '-filter-IsPlayed'), - IsUnplayed: 'true' === userSettings.getFilter(basekey + '-filter-IsUnplayed'), - IsFavorite: 'true' === userSettings.getFilter(basekey + '-filter-IsFavorite'), - IsResumable: 'true' === userSettings.getFilter(basekey + '-filter-IsResumable'), - Is4K: 'true' === userSettings.getFilter(basekey + '-filter-Is4K'), - IsHD: 'true' === userSettings.getFilter(basekey + '-filter-IsHD'), - IsSD: 'true' === userSettings.getFilter(basekey + '-filter-IsSD'), - Is3D: 'true' === userSettings.getFilter(basekey + '-filter-Is3D'), + IsPlayed: userSettings.getFilter(basekey + '-filter-IsPlayed') === 'true', + IsUnplayed: userSettings.getFilter(basekey + '-filter-IsUnplayed') === 'true', + IsFavorite: userSettings.getFilter(basekey + '-filter-IsFavorite') === 'true', + IsResumable: userSettings.getFilter(basekey + '-filter-IsResumable') === 'true', + Is4K: userSettings.getFilter(basekey + '-filter-Is4K') === 'true', + IsHD: userSettings.getFilter(basekey + '-filter-IsHD') === 'true', + IsSD: userSettings.getFilter(basekey + '-filter-IsSD') === 'true', + Is3D: userSettings.getFilter(basekey + '-filter-Is3D') === 'true', VideoTypes: userSettings.getFilter(basekey + '-filter-VideoTypes'), SeriesStatus: userSettings.getFilter(basekey + '-filter-SeriesStatus'), HasSubtitles: userSettings.getFilter(basekey + '-filter-HasSubtitles'), @@ -868,7 +871,7 @@ define(['globalize', 'listView', 'layoutManager', 'userSettings', 'focusManager' var basekey = this.getSettingsKey(); return { sortBy: userSettings.getFilter(basekey + '-sortby') || this.getDefaultSortBy(), - sortOrder: 'Descending' === userSettings.getFilter(basekey + '-sortorder') ? 'Descending' : 'Ascending' + sortOrder: userSettings.getFilter(basekey + '-sortorder') === 'Descending' ? 'Descending' : 'Ascending' }; }; @@ -887,7 +890,7 @@ define(['globalize', 'listView', 'layoutManager', 'userSettings', 'focusManager' var sortBy = []; var params = this.params; - if ('Programs' === params.type) { + if (params.type === 'Programs') { sortBy.push({ name: globalize.translate('AirDate'), value: 'StartDate,SortName' @@ -912,7 +915,7 @@ define(['globalize', 'listView', 'layoutManager', 'userSettings', 'focusManager' sortBy.push(option); } - if ('Programs' !== params.type) { + if (params.type !== 'Programs') { sortBy.push({ name: globalize.translate('DateAdded'), value: 'DateCreated,SortName' @@ -955,7 +958,7 @@ define(['globalize', 'listView', 'layoutManager', 'userSettings', 'focusManager' }; ItemsView.prototype.getNameSortOption = function (params) { - if ('Episode' === params.type) { + if (params.type === 'Episode') { return { name: globalize.translate('Name'), value: 'SeriesName,SortName' @@ -969,7 +972,7 @@ define(['globalize', 'listView', 'layoutManager', 'userSettings', 'focusManager' }; ItemsView.prototype.getPlayCountSortOption = function () { - if ('Programs' === this.params.type) { + if (this.params.type === 'Programs') { return null; } @@ -980,7 +983,7 @@ define(['globalize', 'listView', 'layoutManager', 'userSettings', 'focusManager' }; ItemsView.prototype.getDatePlayedSortOption = function () { - if ('Programs' === this.params.type) { + if (this.params.type === 'Programs') { return null; } @@ -991,7 +994,7 @@ define(['globalize', 'listView', 'layoutManager', 'userSettings', 'focusManager' }; ItemsView.prototype.getCriticRatingSortOption = function () { - if ('Programs' === this.params.type) { + if (this.params.type === 'Programs') { return null; } @@ -1012,8 +1015,8 @@ define(['globalize', 'listView', 'layoutManager', 'userSettings', 'focusManager' var filters = []; var params = this.params; - if (!('nextup' === params.type)) { - if ('Programs' === params.type) { + if (!(params.type === 'nextup')) { + if (params.type === 'Programs') { filters.push('Genres'); } else { filters.push('IsUnplayed'); @@ -1081,7 +1084,7 @@ define(['globalize', 'listView', 'layoutManager', 'userSettings', 'focusManager' var item = (this.params, this.currentItem); var fields = ['showTitle']; - if (!item || 'PhotoAlbum' !== item.Type && 'ChannelFolderItem' !== item.Type) { + if (!item || item.Type !== 'PhotoAlbum' && item.Type !== 'ChannelFolderItem') { fields.push('imageType'); } @@ -1095,25 +1098,25 @@ define(['globalize', 'listView', 'layoutManager', 'userSettings', 'focusManager' var item = this.currentItem; var showTitle = userSettings.get(basekey + '-showTitle'); - if ('true' === showTitle) { + if (showTitle === 'true') { showTitle = true; - } else if ('false' === showTitle) { + } else if (showTitle === 'false') { showTitle = false; - } else if ('Programs' === params.type || 'Recordings' === params.type || 'Person' === params.type || 'nextup' === params.type || 'Audio' === params.type || 'MusicAlbum' === params.type || 'MusicArtist' === params.type) { + } else if (params.type === 'Programs' || params.type === 'Recordings' || params.type === 'Person' || params.type === 'nextup' || params.type === 'Audio' || params.type === 'MusicAlbum' || params.type === 'MusicArtist') { showTitle = true; - } else if (item && 'PhotoAlbum' !== item.Type) { + } else if (item && item.Type !== 'PhotoAlbum') { showTitle = true; } var imageType = userSettings.get(basekey + '-imageType'); - if (!imageType && 'nextup' === params.type) { + if (!imageType && params.type === 'nextup') { imageType = 'thumb'; } return { showTitle: showTitle, - showYear: 'false' !== userSettings.get(basekey + '-showYear'), + showYear: userSettings.get(basekey + '-showYear') !== 'false', imageType: imageType || 'primary', viewType: userSettings.get(basekey + '-viewType') || 'images' }; @@ -1122,11 +1125,11 @@ define(['globalize', 'listView', 'layoutManager', 'userSettings', 'focusManager' ItemsView.prototype.getItemTypes = function () { var params = this.params; - if ('nextup' === params.type) { + if (params.type === 'nextup') { return ['Episode']; } - if ('Programs' === params.type) { + if (params.type === 'Programs') { return ['Program']; } diff --git a/src/controllers/livetv/livetvchannels.js b/src/controllers/livetv/livetvchannels.js index 3ceda7d476..f5a0abeb38 100644 --- a/src/controllers/livetv/livetvchannels.js +++ b/src/controllers/livetv/livetvchannels.js @@ -1,6 +1,7 @@ define(['cardBuilder', 'imageLoader', 'libraryBrowser', 'loading', 'events', 'userSettings', 'emby-itemscontainer'], function (cardBuilder, imageLoader, libraryBrowser, loading, events, userSettings) { 'use strict'; + loading = loading.default || loading; libraryBrowser = libraryBrowser.default || libraryBrowser; return function (view, params, tabContent) { diff --git a/src/controllers/livetv/livetvrecordings.js b/src/controllers/livetv/livetvrecordings.js index d832ca1339..b0259bc89b 100644 --- a/src/controllers/livetv/livetvrecordings.js +++ b/src/controllers/livetv/livetvrecordings.js @@ -1,6 +1,8 @@ define(['layoutManager', 'loading', 'cardBuilder', 'apphost', 'imageLoader', 'scripts/livetvcomponents', 'listViewStyle', 'emby-itemscontainer'], function (layoutManager, loading, cardBuilder, appHost, imageLoader) { 'use strict'; + loading = loading.default || loading; + function renderRecordings(elem, recordings, cardOptions, scrollX) { if (!elem) { return; diff --git a/src/controllers/livetv/livetvschedule.js b/src/controllers/livetv/livetvschedule.js index 2f451e50fb..4427bef5d1 100644 --- a/src/controllers/livetv/livetvschedule.js +++ b/src/controllers/livetv/livetvschedule.js @@ -1,6 +1,8 @@ define(['layoutManager', 'cardBuilder', 'apphost', 'imageLoader', 'loading', 'scripts/livetvcomponents', 'emby-button', 'emby-itemscontainer'], function (layoutManager, cardBuilder, appHost, imageLoader, loading) { 'use strict'; + loading = loading.default || loading; + function enableScrollX() { return !layoutManager.desktop; } diff --git a/src/controllers/livetv/livetvseriestimers.js b/src/controllers/livetv/livetvseriestimers.js index c5d0da60d7..62f36a1006 100644 --- a/src/controllers/livetv/livetvseriestimers.js +++ b/src/controllers/livetv/livetvseriestimers.js @@ -1,6 +1,8 @@ define(['datetime', 'cardBuilder', 'imageLoader', 'apphost', 'loading', 'paper-icon-button-light', 'emby-button'], function (datetime, cardBuilder, imageLoader, appHost, loading) { 'use strict'; + loading = loading.default || loading; + function renderTimers(context, timers) { var html = ''; html += cardBuilder.getCardsHtml({ diff --git a/src/controllers/livetv/livetvsuggested.js b/src/controllers/livetv/livetvsuggested.js index 036eee9fc6..79d9aac6e9 100644 --- a/src/controllers/livetv/livetvsuggested.js +++ b/src/controllers/livetv/livetvsuggested.js @@ -1,6 +1,8 @@ define(['layoutManager', 'userSettings', 'inputManager', 'loading', 'globalize', 'libraryBrowser', 'mainTabsManager', 'cardBuilder', 'apphost', 'imageLoader', 'scrollStyles', 'emby-itemscontainer', 'emby-tabs', 'emby-button'], function (layoutManager, userSettings, inputManager, loading, globalize, libraryBrowser, mainTabsManager, cardBuilder, appHost, imageLoader) { 'use strict'; + loading = loading.default || loading; + function enableScrollX() { return !layoutManager.desktop; } @@ -142,9 +144,9 @@ define(['layoutManager', 'userSettings', 'inputManager', 'loading', 'globalize', coverImage: true, overlayText: false, lazy: true, - overlayPlayButton: 'play' === overlayButton, - overlayMoreButton: 'more' === overlayButton, - overlayInfoButton: 'info' === overlayButton, + overlayPlayButton: overlayButton === 'play', + overlayMoreButton: overlayButton === 'more', + overlayInfoButton: overlayButton === 'info', allowBottomPadding: !enableScrollX(), showAirTime: true, showAirDateTime: true @@ -261,7 +263,7 @@ define(['layoutManager', 'userSettings', 'inputManager', 'loading', 'globalize', require(depends, function (controllerFactory) { var tabContent; - if (0 == index) { + if (index == 0) { tabContent = view.querySelector(".pageTabContent[data-index='" + index + "']"); self.tabContent = tabContent; } @@ -271,9 +273,9 @@ define(['layoutManager', 'userSettings', 'inputManager', 'loading', 'globalize', if (!controller) { tabContent = view.querySelector(".pageTabContent[data-index='" + index + "']"); - if (0 === index) { + if (index === 0) { controller = self; - } else if (6 === index) { + } else if (index === 6) { controller = new controllerFactory(view, tabContent, { collectionType: 'livetv' }); @@ -305,8 +307,8 @@ define(['layoutManager', 'userSettings', 'inputManager', 'loading', 'globalize', getTabController(page, index, function (controller) { initialTabIndex = null; - if (-1 == renderedTabs.indexOf(index)) { - if (1 === index) { + if (renderedTabs.indexOf(index) == -1) { + if (index === 1) { renderedTabs.push(index); } diff --git a/src/controllers/livetvguideprovider.js b/src/controllers/livetvguideprovider.js index 8f8b9f91c7..6ab195a088 100644 --- a/src/controllers/livetvguideprovider.js +++ b/src/controllers/livetvguideprovider.js @@ -1,30 +1,30 @@ -define(['events', 'loading', 'globalize'], function (events, loading, globalize) { - 'use strict'; +import events from 'events'; +import loading from 'loading'; +import globalize from 'globalize'; - function onListingsSubmitted() { - Dashboard.navigate('livetvstatus.html'); - } +function onListingsSubmitted() { + Dashboard.navigate('livetvstatus.html'); +} - function init(page, type, providerId) { - var url = 'components/tvproviders/' + type + '.js'; +function init(page, type, providerId) { + const url = 'components/tvproviders/' + type + '.js'; - require([url], function (factory) { - var instance = new factory(page, providerId, {}); - events.on(instance, 'submitted', onListingsSubmitted); - instance.init(); - }); - } - - function loadTemplate(page, type, providerId) { - require(['text!./components/tvproviders/' + type + '.template.html'], function (html) { - page.querySelector('.providerTemplate').innerHTML = globalize.translateHtml(html); - init(page, type, providerId); - }); - } - - pageIdOn('pageshow', 'liveTvGuideProviderPage', function () { - loading.show(); - var providerId = getParameterByName('id'); - loadTemplate(this, getParameterByName('type'), providerId); + import(url).then(({default: factory}) => { + const instance = new factory(page, providerId, {}); + events.on(instance, 'submitted', onListingsSubmitted); + instance.init(); }); +} + +function loadTemplate(page, type, providerId) { + import('text!./../components/tvproviders/' + type + '.template.html').then(({default: html}) => { + page.querySelector('.providerTemplate').innerHTML = globalize.translateHtml(html); + init(page, type, providerId); + }); +} + +pageIdOn('pageshow', 'liveTvGuideProviderPage', function () { + loading.show(); + const providerId = getParameterByName('id'); + loadTemplate(this, getParameterByName('type'), providerId); }); diff --git a/src/controllers/livetvsettings.js b/src/controllers/livetvsettings.js index 715eb06214..29ec4a10a5 100644 --- a/src/controllers/livetvsettings.js +++ b/src/controllers/livetvsettings.js @@ -1,65 +1,68 @@ -define(['jQuery', 'loading', 'globalize', 'emby-button'], function ($, loading, globalize) { - 'use strict'; +import $ from 'jQuery'; +import loading from 'loading'; +import globalize from 'globalize'; +import 'emby-button'; - function loadPage(page, config) { - $('.liveTvSettingsForm', page).show(); - $('.noLiveTvServices', page).hide(); - $('#selectGuideDays', page).val(config.GuideDays || ''); - $('#txtPrePaddingMinutes', page).val(config.PrePaddingSeconds / 60); - $('#txtPostPaddingMinutes', page).val(config.PostPaddingSeconds / 60); - page.querySelector('#txtRecordingPath').value = config.RecordingPath || ''; - page.querySelector('#txtMovieRecordingPath').value = config.MovieRecordingPath || ''; - page.querySelector('#txtSeriesRecordingPath').value = config.SeriesRecordingPath || ''; - page.querySelector('#txtPostProcessor').value = config.RecordingPostProcessor || ''; - page.querySelector('#txtPostProcessorArguments').value = config.RecordingPostProcessorArguments || ''; - loading.hide(); - } +function loadPage(page, config) { + $('.liveTvSettingsForm', page).show(); + $('.noLiveTvServices', page).hide(); + $('#selectGuideDays', page).val(config.GuideDays || ''); + $('#txtPrePaddingMinutes', page).val(config.PrePaddingSeconds / 60); + $('#txtPostPaddingMinutes', page).val(config.PostPaddingSeconds / 60); + page.querySelector('#txtRecordingPath').value = config.RecordingPath || ''; + page.querySelector('#txtMovieRecordingPath').value = config.MovieRecordingPath || ''; + page.querySelector('#txtSeriesRecordingPath').value = config.SeriesRecordingPath || ''; + page.querySelector('#txtPostProcessor').value = config.RecordingPostProcessor || ''; + page.querySelector('#txtPostProcessorArguments').value = config.RecordingPostProcessorArguments || ''; + loading.hide(); +} - function onSubmit() { - loading.show(); - var form = this; - ApiClient.getNamedConfiguration('livetv').then(function (config) { - config.GuideDays = $('#selectGuideDays', form).val() || null; - var recordingPath = form.querySelector('#txtRecordingPath').value || null; - var movieRecordingPath = form.querySelector('#txtMovieRecordingPath').value || null; - var seriesRecordingPath = form.querySelector('#txtSeriesRecordingPath').value || null; - var recordingPathChanged = recordingPath != config.RecordingPath || movieRecordingPath != config.MovieRecordingPath || seriesRecordingPath != config.SeriesRecordingPath; - config.RecordingPath = recordingPath; - config.MovieRecordingPath = movieRecordingPath; - config.SeriesRecordingPath = seriesRecordingPath; - config.RecordingEncodingFormat = 'mkv'; - config.PrePaddingSeconds = 60 * $('#txtPrePaddingMinutes', form).val(); - config.PostPaddingSeconds = 60 * $('#txtPostPaddingMinutes', form).val(); - config.RecordingPostProcessor = $('#txtPostProcessor', form).val(); - config.RecordingPostProcessorArguments = $('#txtPostProcessorArguments', form).val(); - ApiClient.updateNamedConfiguration('livetv', config).then(function () { - Dashboard.processServerConfigurationUpdateResult(); - showSaveMessage(recordingPathChanged); - }); +function onSubmit() { + loading.show(); + const form = this; + ApiClient.getNamedConfiguration('livetv').then(function (config) { + config.GuideDays = $('#selectGuideDays', form).val() || null; + const recordingPath = form.querySelector('#txtRecordingPath').value || null; + const movieRecordingPath = form.querySelector('#txtMovieRecordingPath').value || null; + const seriesRecordingPath = form.querySelector('#txtSeriesRecordingPath').value || null; + const recordingPathChanged = recordingPath != config.RecordingPath || movieRecordingPath != config.MovieRecordingPath || seriesRecordingPath != config.SeriesRecordingPath; + config.RecordingPath = recordingPath; + config.MovieRecordingPath = movieRecordingPath; + config.SeriesRecordingPath = seriesRecordingPath; + config.RecordingEncodingFormat = 'mkv'; + config.PrePaddingSeconds = 60 * $('#txtPrePaddingMinutes', form).val(); + config.PostPaddingSeconds = 60 * $('#txtPostPaddingMinutes', form).val(); + config.RecordingPostProcessor = $('#txtPostProcessor', form).val(); + config.RecordingPostProcessorArguments = $('#txtPostProcessorArguments', form).val(); + ApiClient.updateNamedConfiguration('livetv', config).then(function () { + Dashboard.processServerConfigurationUpdateResult(); + showSaveMessage(recordingPathChanged); }); - return false; + }); + return false; +} + +function showSaveMessage(recordingPathChanged) { + let msg = ''; + + if (recordingPathChanged) { + msg += globalize.translate('MessageChangeRecordingPath'); } - function showSaveMessage(recordingPathChanged) { - var msg = ''; - - if (recordingPathChanged) { - msg += globalize.translate('RecordingPathChangeMessage'); - } - - if (msg) { - require(['alert'], function (alert) { - alert(msg); - }); - } + if (msg) { + import('alert').then(({default: alert}) => { + alert(msg); + }); } +} +export default function () { $(document).on('pageinit', '#liveTvSettingsPage', function () { - var page = this; + const page = this; $('.liveTvSettingsForm').off('submit', onSubmit).on('submit', onSubmit); $('#btnSelectRecordingPath', page).on('click.selectDirectory', function () { - require(['directorybrowser'], function (directoryBrowser) { - var picker = new directoryBrowser.default(); + import('directorybrowser').then(({default: directoryBrowser}) => { + const picker = new directoryBrowser(); picker.show({ callback: function (path) { if (path) { @@ -73,8 +76,8 @@ define(['jQuery', 'loading', 'globalize', 'emby-button'], function ($, loading, }); }); $('#btnSelectMovieRecordingPath', page).on('click.selectDirectory', function () { - require(['directorybrowser'], function (directoryBrowser) { - var picker = new directoryBrowser.default(); + import('directorybrowser').then(({default: directoryBrowser}) => { + const picker = new directoryBrowser(); picker.show({ callback: function (path) { if (path) { @@ -88,8 +91,8 @@ define(['jQuery', 'loading', 'globalize', 'emby-button'], function ($, loading, }); }); $('#btnSelectSeriesRecordingPath', page).on('click.selectDirectory', function () { - require(['directorybrowser'], function (directoryBrowser) { - var picker = new directoryBrowser.default(); + import('directorybrowser').then(({default: directoryBrowser}) => { + const picker = new directoryBrowser(); picker.show({ callback: function (path) { if (path) { @@ -103,8 +106,8 @@ define(['jQuery', 'loading', 'globalize', 'emby-button'], function ($, loading, }); }); $('#btnSelectPostProcessorPath', page).on('click.selectDirectory', function () { - require(['directorybrowser'], function (directoryBrowser) { - var picker = new directoryBrowser.default(); + import('directorybrowser').then(({default: directoryBrowser}) => { + const picker = new directoryBrowser(); picker.show({ includeFiles: true, callback: function (path) { @@ -119,9 +122,9 @@ define(['jQuery', 'loading', 'globalize', 'emby-button'], function ($, loading, }); }).on('pageshow', '#liveTvSettingsPage', function () { loading.show(); - var page = this; + const page = this; ApiClient.getNamedConfiguration('livetv').then(function (config) { loadPage(page, config); }); }); -}); +} diff --git a/src/controllers/livetvstatus.js b/src/controllers/livetvstatus.js index 84ea006fd9..f37760808a 100644 --- a/src/controllers/livetvstatus.js +++ b/src/controllers/livetvstatus.js @@ -1,294 +1,305 @@ -define(['jQuery', 'globalize', 'scripts/taskbutton', 'dom', 'libraryMenu', 'layoutManager', 'loading', 'browser', 'listViewStyle', 'flexStyles', 'emby-itemscontainer', 'cardStyle', 'material-icons', 'emby-button'], function ($, globalize, taskButton, dom, libraryMenu, layoutManager, loading, browser) { - 'use strict'; +import $ from 'jQuery'; +import globalize from 'globalize'; +import taskButton from 'scripts/taskbutton'; +import dom from 'dom'; +import layoutManager from 'layoutManager'; +import loading from 'loading'; +import browser from 'browser'; +import 'listViewStyle'; +import 'flexStyles'; +import 'emby-itemscontainer'; +import 'cardStyle'; +import 'material-icons'; +import 'emby-button'; - var enableFocusTransform = !browser.slow && !browser.edge; +const enableFocusTransform = !browser.slow && !browser.edge; - function getDeviceHtml(device) { - var padderClass; - var html = ''; - var cssClass = 'card scalableCard'; - var cardBoxCssClass = 'cardBox visualCardBox'; - cssClass += ' backdropCard backdropCard-scalable'; - padderClass = 'cardPadder-backdrop'; +function getDeviceHtml(device) { + let padderClass; + let html = ''; + let cssClass = 'card scalableCard'; + let cardBoxCssClass = 'cardBox visualCardBox'; + cssClass += ' backdropCard backdropCard-scalable'; + padderClass = 'cardPadder-backdrop'; - // TODO move card creation code to Card component + // TODO move card creation code to Card component - if (layoutManager.tv) { - cssClass += ' show-focus'; + if (layoutManager.tv) { + cssClass += ' show-focus'; - if (enableFocusTransform) { - cssClass += ' show-animation'; - } + if (enableFocusTransform) { + cssClass += ' show-animation'; } - - html += '
'; - html += '
'; - html += '
'; - html += '
'; - html += '
'; - html += '
'; - html += '
'; - html += '
'; - html += '
'; - html += ''; - html += '
' + (device.FriendlyName || getTunerName(device.Type)) + '
'; - html += '
'; - html += device.Url || ' '; - html += '
'; - html += '
'; - html += '
'; - return html += '
'; } - function renderDevices(page, devices) { - var html = devices.map(getDeviceHtml).join(''); - page.querySelector('.devicesList').innerHTML = html; - } + html += '
'; + html += '
'; + html += '
'; + html += '
'; + html += '
'; + html += '
'; + html += '
'; + html += '
'; + html += '
'; + html += ''; + html += '
' + (device.FriendlyName || getTunerName(device.Type)) + '
'; + html += '
'; + html += device.Url || ' '; + html += '
'; + html += '
'; + html += '
'; + return html += '
'; +} - function deleteDevice(page, id) { - var message = globalize.translate('MessageConfirmDeleteTunerDevice'); +function renderDevices(page, devices) { + page.querySelector('.devicesList').innerHTML = devices.map(getDeviceHtml).join(''); +} - require(['confirm'], function (confirm) { - confirm.default(message, globalize.translate('HeaderDeleteDevice')).then(function () { - loading.show(); - ApiClient.ajax({ - type: 'DELETE', - url: ApiClient.getUrl('LiveTv/TunerHosts', { - Id: id - }) - }).then(function () { - reload(page); - }); +function deleteDevice(page, id) { + const message = globalize.translate('MessageConfirmDeleteTunerDevice'); + + import('confirm').then(({default: confirm}) => { + confirm(message, globalize.translate('HeaderDeleteDevice')).then(function () { + loading.show(); + ApiClient.ajax({ + type: 'DELETE', + url: ApiClient.getUrl('LiveTv/TunerHosts', { + Id: id + }) + }).then(function () { + reload(page); }); }); - } + }); +} - function reload(page) { - loading.show(); - ApiClient.getNamedConfiguration('livetv').then(function (config) { - renderDevices(page, config.TunerHosts); - renderProviders(page, config.ListingProviders); +function reload(page) { + loading.show(); + ApiClient.getNamedConfiguration('livetv').then(function (config) { + renderDevices(page, config.TunerHosts); + renderProviders(page, config.ListingProviders); + }); + loading.hide(); +} + +function submitAddDeviceForm(page) { + page.querySelector('.dlgAddDevice').close(); + loading.show(); + ApiClient.ajax({ + type: 'POST', + url: ApiClient.getUrl('LiveTv/TunerHosts'), + data: JSON.stringify({ + Type: $('#selectTunerDeviceType', page).val(), + Url: $('#txtDevicePath', page).val() + }), + contentType: 'application/json' + }).then(function () { + reload(page); + }, function () { + Dashboard.alert({ + message: globalize.translate('ErrorAddingTunerDevice') }); - loading.hide(); - } + }); +} - function submitAddDeviceForm(page) { - page.querySelector('.dlgAddDevice').close(); - loading.show(); - ApiClient.ajax({ - type: 'POST', - url: ApiClient.getUrl('LiveTv/TunerHosts'), - data: JSON.stringify({ - Type: $('#selectTunerDeviceType', page).val(), - Url: $('#txtDevicePath', page).val() - }), - contentType: 'application/json' - }).then(function () { - reload(page); - }, function () { - Dashboard.alert({ - message: globalize.translate('ErrorAddingTunerDevice') - }); - }); - } +function renderProviders(page, providers) { + let html = ''; - function renderProviders(page, providers) { - var html = ''; - - if (providers.length) { - html += '
'; - - for (var i = 0, length = providers.length; i < length; i++) { - var provider = providers[i]; - html += ''; - } + if (providers.length) { + html += '
'; + for (let i = 0, length = providers.length; i < length; i++) { + const provider = providers[i]; + html += ''; } - var elem = $('.providerList', page).html(html); - $('.btnOptions', elem).on('click', function () { - var id = this.getAttribute('data-id'); - showProviderOptions(page, id, this); - }); + html += '
'; } - function showProviderOptions(page, providerId, button) { - var items = []; - items.push({ - name: globalize.translate('ButtonDelete'), - id: 'delete' - }); - items.push({ - name: globalize.translate('MapChannels'), - id: 'map' - }); + const elem = $('.providerList', page).html(html); + $('.btnOptions', elem).on('click', function () { + const id = this.getAttribute('data-id'); + showProviderOptions(page, id, this); + }); +} - require(['actionsheet'], function (actionsheet) { - actionsheet.show({ - items: items, - positionTo: button - }).then(function (id) { - switch (id) { - case 'delete': - deleteProvider(page, providerId); - break; +function showProviderOptions(page, providerId, button) { + const items = []; + items.push({ + name: globalize.translate('ButtonDelete'), + id: 'delete' + }); + items.push({ + name: globalize.translate('MapChannels'), + id: 'map' + }); - case 'map': - mapChannels(page, providerId); - } - }); - }); - } + import('actionsheet').then(({default: actionsheet}) => { + actionsheet.show({ + items: items, + positionTo: button + }).then(function (id) { + switch (id) { + case 'delete': + deleteProvider(page, providerId); + break; - function mapChannels(page, providerId) { - require(['components/channelMapper/channelMapper'], function (channelMapper) { - new channelMapper.default({ - serverId: ApiClient.serverInfo().Id, - providerId: providerId - }).show(); - }); - } - - function deleteProvider(page, id) { - var message = globalize.translate('MessageConfirmDeleteGuideProvider'); - - require(['confirm'], function (confirm) { - confirm.default(message, globalize.translate('HeaderDeleteProvider')).then(function () { - loading.show(); - ApiClient.ajax({ - type: 'DELETE', - url: ApiClient.getUrl('LiveTv/ListingProviders', { - Id: id - }) - }).then(function () { - reload(page); - }, function () { - reload(page); - }); - }); - }); - } - - function getTunerName(providerId) { - switch (providerId = providerId.toLowerCase()) { - case 'm3u': - return 'M3U'; - case 'hdhomerun': - return 'HDHomeRun'; - case 'hauppauge': - return 'Hauppauge'; - case 'satip': - return 'DVB'; - default: - return 'Unknown'; - } - } - - function getProviderName(providerId) { - switch (providerId = providerId.toLowerCase()) { - case 'schedulesdirect': - return 'Schedules Direct'; - case 'xmltv': - return 'XMLTV'; - default: - return 'Unknown'; - } - } - - function getProviderConfigurationUrl(providerId) { - switch (providerId = providerId.toLowerCase()) { - case 'xmltv': - return 'livetvguideprovider.html?type=xmltv'; - case 'schedulesdirect': - return 'livetvguideprovider.html?type=schedulesdirect'; - } - } - - function addProvider(button) { - var menuItems = []; - menuItems.push({ - name: 'Schedules Direct', - id: 'SchedulesDirect' - }); - menuItems.push({ - name: 'XMLTV', - id: 'xmltv' - }); - - require(['actionsheet'], function (actionsheet) { - actionsheet.show({ - items: menuItems, - positionTo: button, - callback: function (id) { - Dashboard.navigate(getProviderConfigurationUrl(id)); - } - }); - }); - } - - function addDevice(button) { - Dashboard.navigate('livetvtuner.html'); - } - - function showDeviceMenu(button, tunerDeviceId) { - var items = []; - items.push({ - name: globalize.translate('ButtonDelete'), - id: 'delete' - }); - items.push({ - name: globalize.translate('ButtonEdit'), - id: 'edit' - }); - - require(['actionsheet'], function (actionsheet) { - actionsheet.show({ - items: items, - positionTo: button - }).then(function (id) { - switch (id) { - case 'delete': - deleteDevice(dom.parentWithClass(button, 'page'), tunerDeviceId); - break; - - case 'edit': - Dashboard.navigate('livetvtuner.html?id=' + tunerDeviceId); - } - }); - }); - } - - function onDevicesListClick(e) { - var card = dom.parentWithClass(e.target, 'card'); - - if (card) { - var id = card.getAttribute('data-id'); - var btnCardOptions = dom.parentWithClass(e.target, 'btnCardOptions'); - - if (btnCardOptions) { - showDeviceMenu(btnCardOptions, id); - } else { - Dashboard.navigate('livetvtuner.html?id=' + id); + case 'map': + mapChannels(page, providerId); } + }); + }); +} + +function mapChannels(page, providerId) { + import('components/channelMapper/channelMapper').then(({default: channelMapper}) => { + new channelMapper({ + serverId: ApiClient.serverInfo().Id, + providerId: providerId + }).show(); + }); +} + +function deleteProvider(page, id) { + const message = globalize.translate('MessageConfirmDeleteGuideProvider'); + + import('confirm').then(({default: confirm}) => { + confirm(message, globalize.translate('HeaderDeleteProvider')).then(function () { + loading.show(); + ApiClient.ajax({ + type: 'DELETE', + url: ApiClient.getUrl('LiveTv/ListingProviders', { + Id: id + }) + }).then(function () { + reload(page); + }, function () { + reload(page); + }); + }); + }); +} + +function getTunerName(providerId) { + switch (providerId = providerId.toLowerCase()) { + case 'm3u': + return 'M3U'; + case 'hdhomerun': + return 'HDHomeRun'; + case 'hauppauge': + return 'Hauppauge'; + case 'satip': + return 'DVB'; + default: + return 'Unknown'; + } +} + +function getProviderName(providerId) { + switch (providerId = providerId.toLowerCase()) { + case 'schedulesdirect': + return 'Schedules Direct'; + case 'xmltv': + return 'XMLTV'; + default: + return 'Unknown'; + } +} + +function getProviderConfigurationUrl(providerId) { + switch (providerId = providerId.toLowerCase()) { + case 'xmltv': + return 'livetvguideprovider.html?type=xmltv'; + case 'schedulesdirect': + return 'livetvguideprovider.html?type=schedulesdirect'; + } +} + +function addProvider(button) { + const menuItems = []; + menuItems.push({ + name: 'Schedules Direct', + id: 'SchedulesDirect' + }); + menuItems.push({ + name: 'XMLTV', + id: 'xmltv' + }); + + import('actionsheet').then(({default: actionsheet}) => { + actionsheet.show({ + items: menuItems, + positionTo: button, + callback: function (id) { + Dashboard.navigate(getProviderConfigurationUrl(id)); + } + }); + }); +} + +function addDevice(button) { + Dashboard.navigate('livetvtuner.html'); +} + +function showDeviceMenu(button, tunerDeviceId) { + const items = []; + items.push({ + name: globalize.translate('ButtonDelete'), + id: 'delete' + }); + items.push({ + name: globalize.translate('ButtonEdit'), + id: 'edit' + }); + + import('actionsheet').then(({default: actionsheet}) => { + actionsheet.show({ + items: items, + positionTo: button + }).then(function (id) { + switch (id) { + case 'delete': + deleteDevice(dom.parentWithClass(button, 'page'), tunerDeviceId); + break; + + case 'edit': + Dashboard.navigate('livetvtuner.html?id=' + tunerDeviceId); + } + }); + }); +} + +function onDevicesListClick(e) { + const card = dom.parentWithClass(e.target, 'card'); + + if (card) { + const id = card.getAttribute('data-id'); + const btnCardOptions = dom.parentWithClass(e.target, 'btnCardOptions'); + + if (btnCardOptions) { + showDeviceMenu(btnCardOptions, id); + } else { + Dashboard.navigate('livetvtuner.html?id=' + id); } } +} +export default function () { $(document).on('pageinit', '#liveTvStatusPage', function () { - var page = this; + const page = this; $('.btnAddDevice', page).on('click', function () { addDevice(this); }); @@ -301,21 +312,21 @@ define(['jQuery', 'globalize', 'scripts/taskbutton', 'dom', 'libraryMenu', 'layo }); page.querySelector('.devicesList').addEventListener('click', onDevicesListClick); }).on('pageshow', '#liveTvStatusPage', function () { - var page = this; + const page = this; reload(page); - taskButton.default({ + taskButton({ mode: 'on', progressElem: page.querySelector('.refreshGuideProgress'), taskKey: 'RefreshGuide', button: page.querySelector('.btnRefresh') }); }).on('pagehide', '#liveTvStatusPage', function () { - var page = this; - taskButton.default({ + const page = this; + taskButton({ mode: 'off', progressElem: page.querySelector('.refreshGuideProgress'), taskKey: 'RefreshGuide', button: page.querySelector('.btnRefresh') }); }); -}); +} diff --git a/src/controllers/livetvtuner.js b/src/controllers/livetvtuner.js index 92f705c02f..0e3b2b689e 100644 --- a/src/controllers/livetvtuner.js +++ b/src/controllers/livetvtuner.js @@ -1,232 +1,228 @@ -define(['globalize', 'loading', 'libraryMenu', 'dom', 'emby-input', 'emby-button', 'emby-checkbox', 'emby-select'], function (globalize, loading, libraryMenu, dom) { - 'use strict'; +import globalize from 'globalize'; +import loading from 'loading'; +import dom from 'dom'; +import 'emby-input'; +import 'emby-button'; +import 'emby-checkbox'; +import 'emby-select'; - function isM3uVariant(type) { - return ['nextpvr'].indexOf(type || '') !== -1; - } +function isM3uVariant(type) { + return ['nextpvr'].indexOf(type || '') !== -1; +} - function fillTypes(view, currentId) { - return ApiClient.getJSON(ApiClient.getUrl('LiveTv/TunerHosts/Types')).then(function (types) { - var selectType = view.querySelector('.selectType'); - var html = ''; - html += types.map(function (tuner) { - return ''; - }).join(''); - html += ''; - selectType.innerHTML = html; - selectType.disabled = null != currentId; - selectType.value = ''; - onTypeChange.call(selectType); - }); - } - - function reload(view, providerId) { - view.querySelector('.txtDevicePath').value = ''; - view.querySelector('.chkFavorite').checked = false; - view.querySelector('.txtDevicePath').value = ''; - - if (providerId) { - ApiClient.getNamedConfiguration('livetv').then(function (config) { - var info = config.TunerHosts.filter(function (i) { - return i.Id === providerId; - })[0]; - fillTunerHostInfo(view, info); - }); - } - } - - function fillTunerHostInfo(view, info) { - var selectType = view.querySelector('.selectType'); - var type = info.Type || ''; - - if (info.Source && isM3uVariant(info.Source)) { - type = info.Source; - } - - selectType.value = type; +function fillTypes(view, currentId) { + return ApiClient.getJSON(ApiClient.getUrl('LiveTv/TunerHosts/Types')).then(function (types) { + const selectType = view.querySelector('.selectType'); + let html = ''; + html += types.map(function (tuner) { + return ''; + }).join(''); + html += ''; + selectType.innerHTML = html; + selectType.disabled = currentId != null; + selectType.value = ''; onTypeChange.call(selectType); - view.querySelector('.txtDevicePath').value = info.Url || ''; - view.querySelector('.txtFriendlyName').value = info.FriendlyName || ''; - view.querySelector('.txtUserAgent').value = info.UserAgent || ''; - view.querySelector('.fldDeviceId').value = info.DeviceId || ''; - view.querySelector('.chkFavorite').checked = info.ImportFavoritesOnly; - view.querySelector('.chkTranscode').checked = info.AllowHWTranscoding; - view.querySelector('.chkStreamLoop').checked = info.EnableStreamLooping; - view.querySelector('.txtTunerCount').value = info.TunerCount || '0'; - } + }); +} - function submitForm(page) { - loading.show(); - var info = { - Type: page.querySelector('.selectType').value, - Url: page.querySelector('.txtDevicePath').value || null, - UserAgent: page.querySelector('.txtUserAgent').value || null, - FriendlyName: page.querySelector('.txtFriendlyName').value || null, - DeviceId: page.querySelector('.fldDeviceId').value || null, - TunerCount: page.querySelector('.txtTunerCount').value || 0, - ImportFavoritesOnly: page.querySelector('.chkFavorite').checked, - AllowHWTranscoding: page.querySelector('.chkTranscode').checked, - EnableStreamLooping: page.querySelector('.chkStreamLoop').checked - }; +function reload(view, providerId) { + view.querySelector('.txtDevicePath').value = ''; + view.querySelector('.chkFavorite').checked = false; + view.querySelector('.txtDevicePath').value = ''; - if (isM3uVariant(info.Type)) { - info.Source = info.Type; - info.Type = 'm3u'; - } - - var id = getParameterByName('id'); - - if (id) { - info.Id = id; - } - - ApiClient.ajax({ - type: 'POST', - url: ApiClient.getUrl('LiveTv/TunerHosts'), - data: JSON.stringify(info), - contentType: 'application/json' - }).then(function (result) { - Dashboard.processServerConfigurationUpdateResult(); - Dashboard.navigate('livetvstatus.html'); - }, function () { - loading.hide(); - Dashboard.alert({ - message: globalize.translate('ErrorSavingTvProvider') - }); + if (providerId) { + ApiClient.getNamedConfiguration('livetv').then(function (config) { + const info = config.TunerHosts.filter(function (i) { + return i.Id === providerId; + })[0]; + fillTunerHostInfo(view, info); }); } +} - function getRequirePromise(deps) { - return new Promise(function (resolve, reject) { - require(deps, resolve); - }); +function fillTunerHostInfo(view, info) { + const selectType = view.querySelector('.selectType'); + let type = info.Type || ''; + + if (info.Source && isM3uVariant(info.Source)) { + type = info.Source; } - function getDetectedDevice() { - return getRequirePromise(['tunerPicker']).then(function (tunerPicker) { - return new tunerPicker().show({ - serverId: ApiClient.serverId() - }); - }); - } + selectType.value = type; + onTypeChange.call(selectType); + view.querySelector('.txtDevicePath').value = info.Url || ''; + view.querySelector('.txtFriendlyName').value = info.FriendlyName || ''; + view.querySelector('.txtUserAgent').value = info.UserAgent || ''; + view.querySelector('.fldDeviceId').value = info.DeviceId || ''; + view.querySelector('.chkFavorite').checked = info.ImportFavoritesOnly; + view.querySelector('.chkTranscode').checked = info.AllowHWTranscoding; + view.querySelector('.chkStreamLoop').checked = info.EnableStreamLooping; + view.querySelector('.txtTunerCount').value = info.TunerCount || '0'; +} - function onTypeChange() { - var value = this.value; - var view = dom.parentWithClass(this, 'page'); - var mayIncludeUnsupportedDrmChannels = 'hdhomerun' === value; - var supportsTranscoding = 'hdhomerun' === value; - var supportsFavorites = 'hdhomerun' === value; - var supportsTunerIpAddress = 'hdhomerun' === value; - var supportsTunerFileOrUrl = 'm3u' === value; - var supportsStreamLooping = 'm3u' === value; - var supportsTunerCount = 'm3u' === value; - var supportsUserAgent = 'm3u' === value; - var suppportsSubmit = 'other' !== value; - var supportsSelectablePath = supportsTunerFileOrUrl; - var txtDevicePath = view.querySelector('.txtDevicePath'); - - if (supportsTunerIpAddress) { - txtDevicePath.label(globalize.translate('LabelTunerIpAddress')); - view.querySelector('.fldPath').classList.remove('hide'); - } else if (supportsTunerFileOrUrl) { - txtDevicePath.label(globalize.translate('LabelFileOrUrl')); - view.querySelector('.fldPath').classList.remove('hide'); - } else { - view.querySelector('.fldPath').classList.add('hide'); - } - - if (supportsSelectablePath) { - view.querySelector('.btnSelectPath').classList.remove('hide'); - view.querySelector('.txtDevicePath').setAttribute('required', 'required'); - } else { - view.querySelector('.btnSelectPath').classList.add('hide'); - view.querySelector('.txtDevicePath').removeAttribute('required'); - } - - if (supportsUserAgent) { - view.querySelector('.fldUserAgent').classList.remove('hide'); - } else { - view.querySelector('.fldUserAgent').classList.add('hide'); - } - - if (supportsFavorites) { - view.querySelector('.fldFavorites').classList.remove('hide'); - } else { - view.querySelector('.fldFavorites').classList.add('hide'); - } - - if (supportsTranscoding) { - view.querySelector('.fldTranscode').classList.remove('hide'); - } else { - view.querySelector('.fldTranscode').classList.add('hide'); - } - - if (supportsStreamLooping) { - view.querySelector('.fldStreamLoop').classList.remove('hide'); - } else { - view.querySelector('.fldStreamLoop').classList.add('hide'); - } - - if (supportsTunerCount) { - view.querySelector('.fldTunerCount').classList.remove('hide'); - view.querySelector('.txtTunerCount').setAttribute('required', 'required'); - } else { - view.querySelector('.fldTunerCount').classList.add('hide'); - view.querySelector('.txtTunerCount').removeAttribute('required'); - } - - if (mayIncludeUnsupportedDrmChannels) { - view.querySelector('.drmMessage').classList.remove('hide'); - } else { - view.querySelector('.drmMessage').classList.add('hide'); - } - - if (suppportsSubmit) { - view.querySelector('.button-submit').classList.remove('hide'); - } else { - view.querySelector('.button-submit').classList.add('hide'); - } - } - - return function (view, params) { - if (!params.id) { - view.querySelector('.btnDetect').classList.remove('hide'); - } - - view.addEventListener('viewshow', function () { - var currentId = params.id; - fillTypes(view, currentId).then(function () { - reload(view, currentId); - }); - }); - view.querySelector('form').addEventListener('submit', function (e) { - submitForm(view); - e.preventDefault(); - e.stopPropagation(); - return false; - }); - view.querySelector('.selectType').addEventListener('change', onTypeChange); - view.querySelector('.btnDetect').addEventListener('click', function () { - getDetectedDevice().then(function (info) { - fillTunerHostInfo(view, info); - }); - }); - view.querySelector('.btnSelectPath').addEventListener('click', function () { - require(['directorybrowser'], function (directoryBrowser) { - var picker = new directoryBrowser.default(); - picker.show({ - includeFiles: true, - callback: function (path) { - if (path) { - view.querySelector('.txtDevicePath').value = path; - } - - picker.close(); - } - }); - }); - }); +function submitForm(page) { + loading.show(); + const info = { + Type: page.querySelector('.selectType').value, + Url: page.querySelector('.txtDevicePath').value || null, + UserAgent: page.querySelector('.txtUserAgent').value || null, + FriendlyName: page.querySelector('.txtFriendlyName').value || null, + DeviceId: page.querySelector('.fldDeviceId').value || null, + TunerCount: page.querySelector('.txtTunerCount').value || 0, + ImportFavoritesOnly: page.querySelector('.chkFavorite').checked, + AllowHWTranscoding: page.querySelector('.chkTranscode').checked, + EnableStreamLooping: page.querySelector('.chkStreamLoop').checked }; -}); + + if (isM3uVariant(info.Type)) { + info.Source = info.Type; + info.Type = 'm3u'; + } + + if (getParameterByName('id')) { + info.Id = getParameterByName('id'); + } + + ApiClient.ajax({ + type: 'POST', + url: ApiClient.getUrl('LiveTv/TunerHosts'), + data: JSON.stringify(info), + contentType: 'application/json' + }).then(function (result) { + Dashboard.processServerConfigurationUpdateResult(); + Dashboard.navigate('livetvstatus.html'); + }, function () { + loading.hide(); + Dashboard.alert({ + message: globalize.translate('ErrorSavingTvProvider') + }); + }); +} + +function getDetectedDevice() { + return import('tunerPicker').then(({default: tunerPicker}) => { + return new tunerPicker().show({ + serverId: ApiClient.serverId() + }); + }); +} + +function onTypeChange() { + const value = this.value; + const view = dom.parentWithClass(this, 'page'); + const mayIncludeUnsupportedDrmChannels = value === 'hdhomerun'; + const supportsTranscoding = value === 'hdhomerun'; + const supportsFavorites = value === 'hdhomerun'; + const supportsTunerIpAddress = value === 'hdhomerun'; + const supportsTunerFileOrUrl = value === 'm3u'; + const supportsStreamLooping = value === 'm3u'; + const supportsTunerCount = value === 'm3u'; + const supportsUserAgent = value === 'm3u'; + const suppportsSubmit = value !== 'other'; + const supportsSelectablePath = supportsTunerFileOrUrl; + const txtDevicePath = view.querySelector('.txtDevicePath'); + + if (supportsTunerIpAddress) { + txtDevicePath.label(globalize.translate('LabelTunerIpAddress')); + view.querySelector('.fldPath').classList.remove('hide'); + } else if (supportsTunerFileOrUrl) { + txtDevicePath.label(globalize.translate('LabelFileOrUrl')); + view.querySelector('.fldPath').classList.remove('hide'); + } else { + view.querySelector('.fldPath').classList.add('hide'); + } + + if (supportsSelectablePath) { + view.querySelector('.btnSelectPath').classList.remove('hide'); + view.querySelector('.txtDevicePath').setAttribute('required', 'required'); + } else { + view.querySelector('.btnSelectPath').classList.add('hide'); + view.querySelector('.txtDevicePath').removeAttribute('required'); + } + + if (supportsUserAgent) { + view.querySelector('.fldUserAgent').classList.remove('hide'); + } else { + view.querySelector('.fldUserAgent').classList.add('hide'); + } + + if (supportsFavorites) { + view.querySelector('.fldFavorites').classList.remove('hide'); + } else { + view.querySelector('.fldFavorites').classList.add('hide'); + } + + if (supportsTranscoding) { + view.querySelector('.fldTranscode').classList.remove('hide'); + } else { + view.querySelector('.fldTranscode').classList.add('hide'); + } + + if (supportsStreamLooping) { + view.querySelector('.fldStreamLoop').classList.remove('hide'); + } else { + view.querySelector('.fldStreamLoop').classList.add('hide'); + } + + if (supportsTunerCount) { + view.querySelector('.fldTunerCount').classList.remove('hide'); + view.querySelector('.txtTunerCount').setAttribute('required', 'required'); + } else { + view.querySelector('.fldTunerCount').classList.add('hide'); + view.querySelector('.txtTunerCount').removeAttribute('required'); + } + + if (mayIncludeUnsupportedDrmChannels) { + view.querySelector('.drmMessage').classList.remove('hide'); + } else { + view.querySelector('.drmMessage').classList.add('hide'); + } + + if (suppportsSubmit) { + view.querySelector('.button-submit').classList.remove('hide'); + } else { + view.querySelector('.button-submit').classList.add('hide'); + } +} + +export default function (view, params) { + if (!params.id) { + view.querySelector('.btnDetect').classList.remove('hide'); + } + + view.addEventListener('viewshow', function () { + const currentId = params.id; + fillTypes(view, currentId).then(function () { + reload(view, currentId); + }); + }); + view.querySelector('form').addEventListener('submit', function (e) { + submitForm(view); + e.preventDefault(); + e.stopPropagation(); + return false; + }); + view.querySelector('.selectType').addEventListener('change', onTypeChange); + view.querySelector('.btnDetect').addEventListener('click', function () { + getDetectedDevice().then(function (info) { + fillTunerHostInfo(view, info); + }); + }); + view.querySelector('.btnSelectPath').addEventListener('click', function () { + import('directorybrowser').then(({default: directorybrowser}) => { + const picker = new directorybrowser(); + picker.show({ + includeFiles: true, + callback: function (path) { + if (path) { + view.querySelector('.txtDevicePath').value = path; + } + + picker.close(); + } + }); + }); + }); +} diff --git a/src/controllers/movies/moviecollections.js b/src/controllers/movies/moviecollections.js index 44904633fa..7c1a5156d9 100644 --- a/src/controllers/movies/moviecollections.js +++ b/src/controllers/movies/moviecollections.js @@ -1,6 +1,7 @@ define(['loading', 'events', 'libraryBrowser', 'imageLoader', 'listView', 'cardBuilder', 'userSettings', 'globalize', 'emby-itemscontainer'], function (loading, events, libraryBrowser, imageLoader, listView, cardBuilder, userSettings, globalize) { 'use strict'; + loading = loading.default || loading; libraryBrowser = libraryBrowser.default || libraryBrowser; return function (view, params, tabContent) { @@ -50,7 +51,7 @@ define(['loading', 'events', 'libraryBrowser', 'imageLoader', 'listView', 'cardB var viewStyle = self.getCurrentViewStyle(); var itemsContainer = tabContent.querySelector('.itemsContainer'); - if ('List' == viewStyle) { + if (viewStyle == 'List') { itemsContainer.classList.add('vertical-list'); itemsContainer.classList.remove('vertical-wrap'); } else { diff --git a/src/controllers/movies/moviegenres.js b/src/controllers/movies/moviegenres.js index 69450989e8..82ab4d4d4b 100644 --- a/src/controllers/movies/moviegenres.js +++ b/src/controllers/movies/moviegenres.js @@ -1,6 +1,7 @@ define(['layoutManager', 'loading', 'libraryBrowser', 'cardBuilder', 'lazyLoader', 'apphost', 'globalize', 'appRouter', 'dom', 'emby-button'], function (layoutManager, loading, libraryBrowser, cardBuilder, lazyLoader, appHost, globalize, appRouter, dom) { 'use strict'; + loading = loading.default || loading; libraryBrowser = libraryBrowser.default || libraryBrowser; return function (view, params, tabContent) { @@ -56,13 +57,13 @@ define(['layoutManager', 'loading', 'libraryBrowser', 'cardBuilder', 'lazyLoader var elem = entry.target; var id = elem.getAttribute('data-id'); var viewStyle = self.getCurrentViewStyle(); - var limit = 'Thumb' == viewStyle || 'ThumbCard' == viewStyle ? 5 : 9; + var limit = viewStyle == 'Thumb' || viewStyle == 'ThumbCard' ? 5 : 9; if (enableScrollX()) { limit = 10; } - var enableImageTypes = 'Thumb' == viewStyle || 'ThumbCard' == viewStyle ? 'Primary,Backdrop,Thumb' : 'Primary'; + var enableImageTypes = viewStyle == 'Thumb' || viewStyle == 'ThumbCard' ? 'Primary,Backdrop,Thumb' : 'Primary'; var query = { SortBy: 'SortName', SortOrder: 'Ascending', diff --git a/src/controllers/movies/movies.js b/src/controllers/movies/movies.js index f4c126c468..ade9dc4b89 100644 --- a/src/controllers/movies/movies.js +++ b/src/controllers/movies/movies.js @@ -1,6 +1,7 @@ define(['loading', 'layoutManager', 'userSettings', 'events', 'libraryBrowser', 'alphaPicker', 'listView', 'cardBuilder', 'globalize', 'emby-itemscontainer'], function (loading, layoutManager, userSettings, events, libraryBrowser, AlphaPicker, listView, cardBuilder, globalize) { 'use strict'; + loading = loading.default || loading; libraryBrowser = libraryBrowser.default || libraryBrowser; return function (view, params, tabContent, options) { diff --git a/src/controllers/movies/moviesrecommended.js b/src/controllers/movies/moviesrecommended.js index 09ecd3c034..fe83d74b5d 100644 --- a/src/controllers/movies/moviesrecommended.js +++ b/src/controllers/movies/moviesrecommended.js @@ -2,6 +2,7 @@ define(['events', 'layoutManager', 'inputManager', 'userSettings', 'libraryMenu' 'use strict'; libraryMenu = libraryMenu.default || libraryMenu; + playbackManager = playbackManager.default || playbackManager; function enableScrollX() { return !layoutManager.desktop; diff --git a/src/controllers/movies/movietrailers.js b/src/controllers/movies/movietrailers.js index 84d7c538ee..8d9fe8d090 100644 --- a/src/controllers/movies/movietrailers.js +++ b/src/controllers/movies/movietrailers.js @@ -1,6 +1,7 @@ define(['layoutManager', 'loading', 'events', 'libraryBrowser', 'imageLoader', 'alphaPicker', 'listView', 'cardBuilder', 'userSettings', 'globalize', 'emby-itemscontainer'], function (layoutManager, loading, events, libraryBrowser, imageLoader, AlphaPicker, listView, cardBuilder, userSettings, globalize) { 'use strict'; + loading = loading.default || loading; libraryBrowser = libraryBrowser.default || libraryBrowser; return function (view, params, tabContent) { diff --git a/src/controllers/music/musicalbums.js b/src/controllers/music/musicalbums.js index 9b4fcde327..7d03c91073 100644 --- a/src/controllers/music/musicalbums.js +++ b/src/controllers/music/musicalbums.js @@ -1,9 +1,18 @@ -define(['layoutManager', 'playbackManager', 'loading', 'events', 'libraryBrowser', 'imageLoader', 'alphaPicker', 'listView', 'cardBuilder', 'userSettings', 'globalize', 'emby-itemscontainer'], function (layoutManager, playbackManager, loading, events, libraryBrowser, imageLoader, AlphaPicker, listView, cardBuilder, userSettings, globalize) { - 'use strict'; +import playbackManager from 'playbackManager'; +import loading from 'loading'; +import events from 'events'; +import libraryBrowser from 'libraryBrowser'; +import imageLoader from 'imageLoader'; +import AlphaPicker from 'alphaPicker'; +import listView from 'listView'; +import cardBuilder from 'cardBuilder'; +import * as userSettings from 'userSettings'; +import globalize from 'globalize'; +import 'emby-itemscontainer'; - libraryBrowser = libraryBrowser.default || libraryBrowser; +/* eslint-disable indent */ - return function (view, params, tabContent) { + export default function (view, params, tabContent) { function playAll() { ApiClient.getItem(ApiClient.getCurrentUserId(), params.topParentId).then(function (item) { playbackManager.play({ @@ -20,7 +29,7 @@ define(['layoutManager', 'playbackManager', 'loading', 'events', 'libraryBrowser } function getPageData() { - var key = getSavedQueryKey(); + const key = getSavedQueryKey(); if (!pageData) { pageData = { @@ -61,10 +70,10 @@ define(['layoutManager', 'playbackManager', 'loading', 'events', 'libraryBrowser } function onViewStyleChange() { - var viewStyle = self.getCurrentViewStyle(); - var itemsContainer = tabContent.querySelector('.itemsContainer'); + const viewStyle = self.getCurrentViewStyle(); + const itemsContainer = tabContent.querySelector('.itemsContainer'); - if ('List' == viewStyle) { + if (viewStyle == 'List') { itemsContainer.classList.add('vertical-list'); itemsContainer.classList.remove('vertical-wrap'); } else { @@ -78,7 +87,7 @@ define(['layoutManager', 'playbackManager', 'loading', 'events', 'libraryBrowser function reloadItems(page) { loading.show(); isLoading = true; - var query = getQuery(); + const query = getQuery(); ApiClient.getItems(ApiClient.getCurrentUserId(), query).then(function (result) { function onNextPageClick() { if (isLoading) { @@ -104,8 +113,8 @@ define(['layoutManager', 'playbackManager', 'loading', 'events', 'libraryBrowser window.scrollTo(0, 0); updateFilterControls(page); - var html; - var pagingHtml = libraryBrowser.getQueryPagingHtml({ + let html; + const pagingHtml = libraryBrowser.getQueryPagingHtml({ startIndex: query.StartIndex, limit: query.Limit, totalRecordCount: result.TotalRecordCount, @@ -115,7 +124,7 @@ define(['layoutManager', 'playbackManager', 'loading', 'events', 'libraryBrowser sortButton: false, filterButton: false }); - var viewStyle = self.getCurrentViewStyle(); + const viewStyle = self.getCurrentViewStyle(); if (viewStyle == 'List') { html = listView.getListViewHtml({ items: result.Items, @@ -146,50 +155,48 @@ define(['layoutManager', 'playbackManager', 'loading', 'events', 'libraryBrowser overlayPlayButton: true }); } - var i; - var length; - var elems = tabContent.querySelectorAll('.paging'); + let elems = tabContent.querySelectorAll('.paging'); - for (i = 0, length = elems.length; i < length; i++) { + for (let i = 0, length = elems.length; i < length; i++) { elems[i].innerHTML = pagingHtml; } elems = tabContent.querySelectorAll('.btnNextPage'); - for (i = 0, length = elems.length; i < length; i++) { + for (let i = 0, length = elems.length; i < length; i++) { elems[i].addEventListener('click', onNextPageClick); } elems = tabContent.querySelectorAll('.btnPreviousPage'); - for (i = 0, length = elems.length; i < length; i++) { + for (let i = 0, length = elems.length; i < length; i++) { elems[i].addEventListener('click', onPreviousPageClick); } - var itemsContainer = tabContent.querySelector('.itemsContainer'); + const itemsContainer = tabContent.querySelector('.itemsContainer'); itemsContainer.innerHTML = html; imageLoader.lazyChildren(itemsContainer); libraryBrowser.saveQueryValues(getSavedQueryKey(), query); loading.hide(); isLoading = false; - require(['autoFocuser'], function (autoFocuser) { + import('autoFocuser').then(({default: autoFocuser}) => { autoFocuser.autoFocus(tabContent); }); }); } function updateFilterControls(tabContent) { - var query = getQuery(); + const query = getQuery(); self.alphaPicker.value(query.NameStartsWithOrGreater); } - var savedQueryKey; - var pageData; - var self = this; - var isLoading = false; + let savedQueryKey; + let pageData; + const self = this; + let isLoading = false; self.showFilterMenu = function () { - require(['components/filterdialog/filterdialog'], function ({default: filterDialogFactory}) { - var filterDialog = new filterDialogFactory({ + import('components/filterdialog/filterdialog').then(({default: filterDialogFactory}) => { + const filterDialog = new filterDialogFactory({ query: getQuery(), mode: 'albums', serverId: ApiClient.serverId() @@ -207,17 +214,17 @@ define(['layoutManager', 'playbackManager', 'loading', 'events', 'libraryBrowser }; function initPage(tabContent) { - var alphaPickerElement = tabContent.querySelector('.alphaPicker'); - var itemsContainer = tabContent.querySelector('.itemsContainer'); + const alphaPickerElement = tabContent.querySelector('.alphaPicker'); + const itemsContainer = tabContent.querySelector('.itemsContainer'); alphaPickerElement.addEventListener('alphavaluechanged', function (e) { - var newValue = e.detail.value; - var query = getQuery(); + const newValue = e.detail.value; + const query = getQuery(); query.NameStartsWithOrGreater = newValue; query.StartIndex = 0; reloadItems(tabContent); }); - self.alphaPicker = new AlphaPicker.default({ + self.alphaPicker = new AlphaPicker({ element: alphaPickerElement, valueChangeEvent: 'click' }); @@ -261,12 +268,12 @@ define(['layoutManager', 'playbackManager', 'loading', 'events', 'libraryBrowser button: e.target }); }); - var btnSelectView = tabContent.querySelector('.btnSelectView'); + const btnSelectView = tabContent.querySelector('.btnSelectView'); btnSelectView.addEventListener('click', function (e) { libraryBrowser.showLayoutMenu(e.target, self.getCurrentViewStyle(), 'List,Poster,PosterCard'.split(',')); }); btnSelectView.addEventListener('layoutchange', function (e) { - var viewStyle = e.detail.viewStyle; + const viewStyle = e.detail.viewStyle; getPageData().view = viewStyle; libraryBrowser.saveViewSetting(getSavedQueryKey(), viewStyle); getQuery().StartIndex = 0; @@ -286,5 +293,6 @@ define(['layoutManager', 'playbackManager', 'loading', 'events', 'libraryBrowser }; self.destroy = function () {}; - }; -}); + } + +/* eslint-enable indent */ diff --git a/src/controllers/music/musicartists.js b/src/controllers/music/musicartists.js index 3e86def538..23e0bbd459 100644 --- a/src/controllers/music/musicartists.js +++ b/src/controllers/music/musicartists.js @@ -1,15 +1,22 @@ -define(['layoutManager', 'loading', 'events', 'libraryBrowser', 'imageLoader', 'alphaPicker', 'listView', 'cardBuilder', 'apphost', 'userSettings', 'emby-itemscontainer'], function (layoutManager, loading, events, libraryBrowser, imageLoader, AlphaPicker, listView, cardBuilder, appHost, userSettings) { - 'use strict'; +import loading from 'loading'; +import events from 'events'; +import libraryBrowser from 'libraryBrowser'; +import imageLoader from 'imageLoader'; +import AlphaPicker from 'alphaPicker'; +import listView from 'listView'; +import cardBuilder from 'cardBuilder'; +import * as userSettings from 'userSettings'; +import 'emby-itemscontainer'; - libraryBrowser = libraryBrowser.default || libraryBrowser; +/* eslint-disable indent */ - return function (view, params, tabContent) { + export default function (view, params, tabContent) { function getPageData(context) { - var key = getSavedQueryKey(context); - var pageData = data[key]; + const key = getSavedQueryKey(context); + let pageData = data[key]; if (!pageData) { - var queryValues = { + const queryValues = { SortBy: 'SortName', SortOrder: 'Ascending', Recursive: true, @@ -47,10 +54,10 @@ define(['layoutManager', 'loading', 'events', 'libraryBrowser', 'imageLoader', ' } function onViewStyleChange() { - var viewStyle = self.getCurrentViewStyle(); - var itemsContainer = tabContent.querySelector('.itemsContainer'); + const viewStyle = self.getCurrentViewStyle(); + const itemsContainer = tabContent.querySelector('.itemsContainer'); - if ('List' == viewStyle) { + if (viewStyle == 'List') { itemsContainer.classList.add('vertical-list'); itemsContainer.classList.remove('vertical-wrap'); } else { @@ -64,8 +71,8 @@ define(['layoutManager', 'loading', 'events', 'libraryBrowser', 'imageLoader', ' function reloadItems(page) { loading.show(); isLoading = true; - var query = getQuery(page); - var promise = self.mode == 'albumartists' ? + const query = getQuery(page); + const promise = self.mode == 'albumartists' ? ApiClient.getAlbumArtists(ApiClient.getCurrentUserId(), query) : ApiClient.getArtists(ApiClient.getCurrentUserId(), query); promise.then(function (result) { @@ -93,8 +100,8 @@ define(['layoutManager', 'loading', 'events', 'libraryBrowser', 'imageLoader', ' window.scrollTo(0, 0); updateFilterControls(page); - var html; - var pagingHtml = libraryBrowser.getQueryPagingHtml({ + let html; + const pagingHtml = libraryBrowser.getQueryPagingHtml({ startIndex: query.StartIndex, limit: query.Limit, totalRecordCount: result.TotalRecordCount, @@ -104,7 +111,7 @@ define(['layoutManager', 'loading', 'events', 'libraryBrowser', 'imageLoader', ' sortButton: false, filterButton: false }); - var viewStyle = self.getCurrentViewStyle(); + const viewStyle = self.getCurrentViewStyle(); if (viewStyle == 'List') { html = listView.getListViewHtml({ items: result.Items, @@ -131,49 +138,47 @@ define(['layoutManager', 'loading', 'events', 'libraryBrowser', 'imageLoader', ' overlayPlayButton: true }); } - var i; - var length; - var elems = tabContent.querySelectorAll('.paging'); + let elems = tabContent.querySelectorAll('.paging'); - for (i = 0, length = elems.length; i < length; i++) { + for (let i = 0, length = elems.length; i < length; i++) { elems[i].innerHTML = pagingHtml; } elems = tabContent.querySelectorAll('.btnNextPage'); - for (i = 0, length = elems.length; i < length; i++) { + for (let i = 0, length = elems.length; i < length; i++) { elems[i].addEventListener('click', onNextPageClick); } elems = tabContent.querySelectorAll('.btnPreviousPage'); - for (i = 0, length = elems.length; i < length; i++) { + for (let i = 0, length = elems.length; i < length; i++) { elems[i].addEventListener('click', onPreviousPageClick); } - var itemsContainer = tabContent.querySelector('.itemsContainer'); + const itemsContainer = tabContent.querySelector('.itemsContainer'); itemsContainer.innerHTML = html; imageLoader.lazyChildren(itemsContainer); libraryBrowser.saveQueryValues(getSavedQueryKey(page), query); loading.hide(); isLoading = false; - require(['autoFocuser'], function (autoFocuser) { + import('autoFocuser').then(({default: autoFocuser}) => { autoFocuser.autoFocus(tabContent); }); }); } function updateFilterControls(tabContent) { - var query = getQuery(tabContent); + const query = getQuery(tabContent); self.alphaPicker.value(query.NameStartsWithOrGreater); } - var self = this; - var data = {}; - var isLoading = false; + const self = this; + const data = {}; + let isLoading = false; self.showFilterMenu = function () { - require(['components/filterdialog/filterdialog'], function ({default: filterDialogFactory}) { - var filterDialog = new filterDialogFactory({ + import('components/filterdialog/filterdialog').then(({default: filterDialogFactory}) => { + const filterDialog = new filterDialogFactory({ query: getQuery(tabContent), mode: self.mode, serverId: ApiClient.serverId() @@ -191,17 +196,17 @@ define(['layoutManager', 'loading', 'events', 'libraryBrowser', 'imageLoader', ' }; function initPage(tabContent) { - var alphaPickerElement = tabContent.querySelector('.alphaPicker'); - var itemsContainer = tabContent.querySelector('.itemsContainer'); + const alphaPickerElement = tabContent.querySelector('.alphaPicker'); + const itemsContainer = tabContent.querySelector('.itemsContainer'); alphaPickerElement.addEventListener('alphavaluechanged', function (e) { - var newValue = e.detail.value; - var query = getQuery(tabContent); + const newValue = e.detail.value; + const query = getQuery(tabContent); query.NameStartsWithOrGreater = newValue; query.StartIndex = 0; reloadItems(tabContent); }); - self.alphaPicker = new AlphaPicker.default({ + self.alphaPicker = new AlphaPicker({ element: alphaPickerElement, valueChangeEvent: 'click' }); @@ -213,12 +218,12 @@ define(['layoutManager', 'loading', 'events', 'libraryBrowser', 'imageLoader', ' tabContent.querySelector('.btnFilter').addEventListener('click', function () { self.showFilterMenu(); }); - var btnSelectView = tabContent.querySelector('.btnSelectView'); + const btnSelectView = tabContent.querySelector('.btnSelectView'); btnSelectView.addEventListener('click', function (e) { libraryBrowser.showLayoutMenu(e.target, self.getCurrentViewStyle(), 'List,Poster,PosterCard'.split(',')); }); btnSelectView.addEventListener('layoutchange', function (e) { - var viewStyle = e.detail.viewStyle; + const viewStyle = e.detail.viewStyle; getPageData(tabContent).view = viewStyle; libraryBrowser.saveViewSetting(getSavedQueryKey(tabContent), viewStyle); getQuery(tabContent).StartIndex = 0; @@ -236,5 +241,6 @@ define(['layoutManager', 'loading', 'events', 'libraryBrowser', 'imageLoader', ' }; self.destroy = function () {}; - }; -}); + } + +/* eslint-enable indent */ diff --git a/src/controllers/music/musicgenres.js b/src/controllers/music/musicgenres.js index 948c4da7dd..29e0d888e4 100644 --- a/src/controllers/music/musicgenres.js +++ b/src/controllers/music/musicgenres.js @@ -1,12 +1,14 @@ -define(['libraryBrowser', 'cardBuilder', 'apphost', 'imageLoader', 'loading'], function (libraryBrowser, cardBuilder, appHost, imageLoader, loading) { - 'use strict'; +import libraryBrowser from 'libraryBrowser'; +import cardBuilder from 'cardBuilder'; +import imageLoader from 'imageLoader'; +import loading from 'loading'; - libraryBrowser = libraryBrowser.default || libraryBrowser; +/* eslint-disable indent */ - return function (view, params, tabContent) { + export default function (view, params, tabContent) { function getPageData() { - var key = getSavedQueryKey(); - var pageData = data[key]; + const key = getSavedQueryKey(); + let pageData = data[key]; if (!pageData) { pageData = data[key] = { @@ -36,15 +38,15 @@ define(['libraryBrowser', 'cardBuilder', 'apphost', 'imageLoader', 'loading'], f function getPromise() { loading.show(); - var query = getQuery(); + const query = getQuery(); return ApiClient.getGenres(ApiClient.getCurrentUserId(), query); } function reloadItems(context, promise) { - var query = getQuery(); + const query = getQuery(); promise.then(function (result) { - var html = ''; - var viewStyle = self.getCurrentViewStyle(); + let html = ''; + const viewStyle = self.getCurrentViewStyle(); if (viewStyle == 'Thumb') { html = cardBuilder.getCardsHtml({ @@ -84,13 +86,13 @@ define(['libraryBrowser', 'cardBuilder', 'apphost', 'imageLoader', 'loading'], f }); } - var elem = context.querySelector('#items'); + const elem = context.querySelector('#items'); elem.innerHTML = html; imageLoader.lazyChildren(elem); libraryBrowser.saveQueryValues(getSavedQueryKey(), query); loading.hide(); - require(['autoFocuser'], function (autoFocuser) { + import('autoFocuser').then(({default: autoFocuser}) => { autoFocuser.autoFocus(context); }); }); @@ -101,8 +103,8 @@ define(['libraryBrowser', 'cardBuilder', 'apphost', 'imageLoader', 'loading'], f self.renderTab(); } - var self = this; - var data = {}; + const self = this; + const data = {}; self.getViewStyles = function () { return 'Poster,PosterCard,Thumb,ThumbCard'.split(','); @@ -119,7 +121,7 @@ define(['libraryBrowser', 'cardBuilder', 'apphost', 'imageLoader', 'loading'], f }; self.enableViewSelection = true; - var promise; + let promise; self.preRender = function () { promise = getPromise(); @@ -128,5 +130,6 @@ define(['libraryBrowser', 'cardBuilder', 'apphost', 'imageLoader', 'loading'], f self.renderTab = function () { reloadItems(tabContent, promise); }; - }; -}); + } + +/* eslint-enable indent */ diff --git a/src/controllers/music/musicplaylists.js b/src/controllers/music/musicplaylists.js index 19c08812f9..befeafcf4c 100644 --- a/src/controllers/music/musicplaylists.js +++ b/src/controllers/music/musicplaylists.js @@ -1,12 +1,14 @@ -define(['libraryBrowser', 'cardBuilder', 'apphost', 'imageLoader', 'loading'], function (libraryBrowser, cardBuilder, appHost, imageLoader, loading) { - 'use strict'; +import libraryBrowser from 'libraryBrowser'; +import cardBuilder from 'cardBuilder'; +import imageLoader from 'imageLoader'; +import loading from 'loading'; - libraryBrowser = libraryBrowser.default || libraryBrowser; +/* eslint-disable indent */ - return function (view, params, tabContent) { + export default function (view, params, tabContent) { function getPageData() { - var key = getSavedQueryKey(); - var pageData = data[key]; + const key = getSavedQueryKey(); + let pageData = data[key]; if (!pageData) { pageData = data[key] = { @@ -37,14 +39,14 @@ define(['libraryBrowser', 'cardBuilder', 'apphost', 'imageLoader', 'loading'], f function getPromise() { loading.show(); - var query = getQuery(); + const query = getQuery(); return ApiClient.getItems(ApiClient.getCurrentUserId(), query); } function reloadItems(context, promise) { - var query = getQuery(); + const query = getQuery(); promise.then(function (result) { - var html = ''; + let html = ''; html = cardBuilder.getCardsHtml({ items: result.Items, shape: 'square', @@ -55,26 +57,26 @@ define(['libraryBrowser', 'cardBuilder', 'apphost', 'imageLoader', 'loading'], f allowBottomPadding: true, cardLayout: false }); - var elem = context.querySelector('#items'); + const elem = context.querySelector('#items'); elem.innerHTML = html; imageLoader.lazyChildren(elem); libraryBrowser.saveQueryValues(getSavedQueryKey(), query); loading.hide(); - require(['autoFocuser'], function (autoFocuser) { + import('autoFocuser').then(({default: autoFocuser}) => { autoFocuser.autoFocus(context); }); }); } - var self = this; - var data = {}; + const self = this; + const data = {}; self.getCurrentViewStyle = function () { return getPageData().view; }; - var promise; + let promise; self.preRender = function () { promise = getPromise(); @@ -83,5 +85,6 @@ define(['libraryBrowser', 'cardBuilder', 'apphost', 'imageLoader', 'loading'], f self.renderTab = function () { reloadItems(tabContent, promise); }; - }; -}); + } + +/* eslint-enable indent */ diff --git a/src/controllers/music/musicrecommended.js b/src/controllers/music/musicrecommended.js index 01b907a893..ad031e42b4 100644 --- a/src/controllers/music/musicrecommended.js +++ b/src/controllers/music/musicrecommended.js @@ -1,10 +1,26 @@ -define(['browser', 'layoutManager', 'userSettings', 'inputManager', 'loading', 'cardBuilder', 'dom', 'apphost', 'imageLoader', 'libraryMenu', 'playbackManager', 'mainTabsManager', 'globalize', 'scrollStyles', 'emby-itemscontainer', 'emby-tabs', 'emby-button', 'flexStyles'], function (browser, layoutManager, userSettings, inputManager, loading, cardBuilder, dom, appHost, imageLoader, libraryMenu, playbackManager, mainTabsManager, globalize) { - 'use strict'; +import browser from 'browser'; +import layoutManager from 'layoutManager'; +import * as userSettings from 'userSettings'; +import inputManager from 'inputManager'; +import loading from 'loading'; +import cardBuilder from 'cardBuilder'; +import dom from 'dom'; +import imageLoader from 'imageLoader'; +import libraryMenu from 'libraryMenu'; +import * as mainTabsManager from 'mainTabsManager'; +import globalize from 'globalize'; +import 'scrollStyles'; +import 'emby-itemscontainer'; +import 'emby-tabs'; +import 'emby-button'; +import 'flexStyles'; + +/* eslint-disable indent */ libraryMenu = LibraryMenu.default || libraryMenu; function itemsPerRow() { - var screenWidth = dom.getWindowSize().innerWidth; + const screenWidth = dom.getWindowSize().innerWidth; if (screenWidth >= 1920) { return 9; @@ -31,8 +47,8 @@ define(['browser', 'layoutManager', 'userSettings', 'inputManager', 'loading', ' function loadLatest(page, parentId) { loading.show(); - var userId = ApiClient.getCurrentUserId(); - var options = { + const userId = ApiClient.getCurrentUserId(); + const options = { IncludeItemTypes: 'Audio', Limit: enableScrollX() ? 3 * itemsPerRow() : 2 * itemsPerRow(), Fields: 'PrimaryImageAspectRatio,BasicSyncInfo', @@ -43,7 +59,6 @@ define(['browser', 'layoutManager', 'userSettings', 'inputManager', 'loading', ' }; ApiClient.getJSON(ApiClient.getUrl('Users/' + userId + '/Items/Latest', options)).then(function (items) { var elem = page.querySelector('#recentlyAddedSongs'); - elem.innerHTML = cardBuilder.getCardsHtml({ items: items, showUnplayedIndicator: false, @@ -61,14 +76,14 @@ define(['browser', 'layoutManager', 'userSettings', 'inputManager', 'loading', ' imageLoader.lazyChildren(elem); loading.hide(); - require(['autoFocuser'], function (autoFocuser) { + import('autoFocuser').then(({default: autoFocuser}) => { autoFocuser.autoFocus(page); }); }); } function loadRecentlyPlayed(page, parentId) { - var options = { + const options = { SortBy: 'DatePlayed', SortOrder: 'Descending', IncludeItemTypes: 'Audio', @@ -82,7 +97,7 @@ define(['browser', 'layoutManager', 'userSettings', 'inputManager', 'loading', ' EnableTotalRecordCount: false }; ApiClient.getItems(ApiClient.getCurrentUserId(), options).then(function (result) { - var elem = page.querySelector('#recentlyPlayed'); + const elem = page.querySelector('#recentlyPlayed'); if (result.Items.length) { elem.classList.remove('hide'); @@ -91,6 +106,7 @@ define(['browser', 'layoutManager', 'userSettings', 'inputManager', 'loading', ' } var itemsContainer = elem.querySelector('.itemsContainer'); + itemsContainer.innerHTML = cardBuilder.getCardsHtml({ items: result.Items, showUnplayedIndicator: false, @@ -110,7 +126,7 @@ define(['browser', 'layoutManager', 'userSettings', 'inputManager', 'loading', ' } function loadFrequentlyPlayed(page, parentId) { - var options = { + const options = { SortBy: 'PlayCount', SortOrder: 'Descending', IncludeItemTypes: 'Audio', @@ -124,7 +140,7 @@ define(['browser', 'layoutManager', 'userSettings', 'inputManager', 'loading', ' EnableTotalRecordCount: false }; ApiClient.getItems(ApiClient.getCurrentUserId(), options).then(function (result) { - var elem = page.querySelector('#topPlayed'); + const elem = page.querySelector('#topPlayed'); if (result.Items.length) { elem.classList.remove('hide'); @@ -157,7 +173,7 @@ define(['browser', 'layoutManager', 'userSettings', 'inputManager', 'loading', ' loadRecentlyPlayed(tabContent, parentId); loadFrequentlyPlayed(tabContent, parentId); - require(['components/favoriteitems'], function (favoriteItems) { + import('components/favoriteitems').then(({default: favoriteItems}) => { favoriteItems.render(tabContent, ApiClient.getCurrentUserId(), parentId, ['favoriteArtists', 'favoriteAlbums', 'favoriteSongs']); }); } @@ -208,10 +224,10 @@ define(['browser', 'layoutManager', 'userSettings', 'inputManager', 'loading', ' } } - return function (view, params) { + export default function (view, params) { function reload() { loading.show(); - var tabContent = view.querySelector(".pageTabContent[data-index='0']"); + const tabContent = view.querySelector(".pageTabContent[data-index='0']"); loadSuggestionsTab(view, tabContent, params.topParentId); } @@ -254,46 +270,48 @@ define(['browser', 'layoutManager', 'userSettings', 'inputManager', 'loading', ' } function getTabController(page, index, callback) { - var depends = []; + let depends; switch (index) { case 0: + depends = 'controllers/music/musicrecommended'; break; case 1: - depends.push('controllers/music/musicalbums'); + depends = 'controllers/music/musicalbums'; break; case 2: case 3: - depends.push('controllers/music/musicartists'); + depends = 'controllers/music/musicartists'; break; case 4: - depends.push('controllers/music/musicplaylists'); + depends = 'controllers/music/musicplaylists'; break; case 5: - depends.push('controllers/music/songs'); + depends = 'controllers/music/songs'; break; case 6: - depends.push('controllers/music/musicgenres'); + depends = 'controllers/music/musicgenres'; break; case 7: - depends.push('scripts/searchtab'); + depends = 'scripts/searchtab'; + break; } - require(depends, function (controllerFactory) { - var tabContent; + import(depends).then(({default: controllerFactory}) => { + let tabContent; - if (0 == index) { + if (index == 0) { tabContent = view.querySelector(".pageTabContent[data-index='" + index + "']"); self.tabContent = tabContent; } - var controller = tabControllers[index]; + let controller = tabControllers[index]; if (!controller) { tabContent = view.querySelector(".pageTabContent[data-index='" + index + "']"); @@ -355,10 +373,10 @@ define(['browser', 'layoutManager', 'userSettings', 'inputManager', 'loading', ' var currentTabIndex = parseInt(params.tab || getDefaultTabIndex(params.topParentId)); self.initTab = function () { - var tabContent = view.querySelector(".pageTabContent[data-index='0']"); - var containers = tabContent.querySelectorAll('.itemsContainer'); + const tabContent = view.querySelector(".pageTabContent[data-index='0']"); + const containers = tabContent.querySelectorAll('.itemsContainer'); - for (var i = 0, length = containers.length; i < length; i++) { + for (let i = 0, length = containers.length; i < length; i++) { setScrollClasses(containers[i], enableScrollX()); } }; @@ -367,12 +385,12 @@ define(['browser', 'layoutManager', 'userSettings', 'inputManager', 'loading', ' reload(); }; - var tabControllers = []; - var renderedTabs = []; + const tabControllers = []; + const renderedTabs = []; view.addEventListener('viewshow', function (e) { initTabs(); if (!view.getAttribute('data-title')) { - var parentId = params.topParentId; + const parentId = params.topParentId; if (parentId) { ApiClient.getItem(ApiClient.getCurrentUserId(), parentId).then(function (item) { @@ -397,5 +415,6 @@ define(['browser', 'layoutManager', 'userSettings', 'inputManager', 'loading', ' } }); }); - }; -}); + } + +/* eslint-enable indent */ diff --git a/src/controllers/music/songs.js b/src/controllers/music/songs.js index 74c5106860..4c4f229e58 100644 --- a/src/controllers/music/songs.js +++ b/src/controllers/music/songs.js @@ -1,12 +1,18 @@ -define(['events', 'libraryBrowser', 'imageLoader', 'listView', 'loading', 'userSettings', 'globalize', 'emby-itemscontainer'], function (events, libraryBrowser, imageLoader, listView, loading, userSettings, globalize) { - 'use strict'; +import events from 'events'; +import libraryBrowser from 'libraryBrowser'; +import imageLoader from 'imageLoader'; +import listView from 'listView'; +import loading from 'loading'; +import * as userSettings from 'userSettings'; +import globalize from 'globalize'; +import 'emby-itemscontainer'; - libraryBrowser = libraryBrowser.default || libraryBrowser; +/* eslint-disable indent */ - return function (view, params, tabContent) { + export default function (view, params, tabContent) { function getPageData(context) { - var key = getSavedQueryKey(context); - var pageData = data[key]; + const key = getSavedQueryKey(context); + let pageData = data[key]; if (!pageData) { pageData = data[key] = { @@ -48,7 +54,7 @@ define(['events', 'libraryBrowser', 'imageLoader', 'listView', 'loading', 'userS function reloadItems(page) { loading.show(); isLoading = true; - var query = getQuery(page); + const query = getQuery(page); ApiClient.getItems(Dashboard.getCurrentUserId(), query).then(function (result) { function onNextPageClick() { if (isLoading) { @@ -73,9 +79,7 @@ define(['events', 'libraryBrowser', 'imageLoader', 'listView', 'loading', 'userS } window.scrollTo(0, 0); - var i; - var length; - var pagingHtml = libraryBrowser.getQueryPagingHtml({ + const pagingHtml = libraryBrowser.getQueryPagingHtml({ startIndex: query.StartIndex, limit: query.Limit, totalRecordCount: result.TotalRecordCount, @@ -85,49 +89,49 @@ define(['events', 'libraryBrowser', 'imageLoader', 'listView', 'loading', 'userS sortButton: false, filterButton: false }); - var html = listView.getListViewHtml({ + const html = listView.getListViewHtml({ items: result.Items, action: 'playallfromhere', smallIcon: true, artist: true, addToListButton: true }); - var elems = tabContent.querySelectorAll('.paging'); + let elems = tabContent.querySelectorAll('.paging'); - for (i = 0, length = elems.length; i < length; i++) { + for (let i = 0, length = elems.length; i < length; i++) { elems[i].innerHTML = pagingHtml; } elems = tabContent.querySelectorAll('.btnNextPage'); - for (i = 0, length = elems.length; i < length; i++) { + for (let i = 0, length = elems.length; i < length; i++) { elems[i].addEventListener('click', onNextPageClick); } elems = tabContent.querySelectorAll('.btnPreviousPage'); - for (i = 0, length = elems.length; i < length; i++) { + for (let i = 0, length = elems.length; i < length; i++) { elems[i].addEventListener('click', onPreviousPageClick); } - var itemsContainer = tabContent.querySelector('.itemsContainer'); + const itemsContainer = tabContent.querySelector('.itemsContainer'); itemsContainer.innerHTML = html; imageLoader.lazyChildren(itemsContainer); libraryBrowser.saveQueryValues(getSavedQueryKey(page), query); loading.hide(); isLoading = false; - require(['autoFocuser'], function (autoFocuser) { + import('autoFocuser').then(({default: autoFocuser}) => { autoFocuser.autoFocus(page); }); }); } - var self = this; - var data = {}; - var isLoading = false; + const self = this; + const data = {}; + let isLoading = false; self.showFilterMenu = function () { - require(['components/filterdialog/filterdialog'], function ({default: filterDialogFactory}) { - var filterDialog = new filterDialogFactory({ + import('components/filterdialog/filterdialog').then(({default: filterDialogFactory}) => { + const filterDialog = new filterDialogFactory({ query: getQuery(tabContent), mode: 'songs', serverId: ApiClient.serverId() @@ -195,5 +199,6 @@ define(['events', 'libraryBrowser', 'imageLoader', 'listView', 'loading', 'userS }; self.destroy = function () {}; - }; -}); + } + +/* eslint-enable indent */ diff --git a/src/controllers/playback/video/index.html b/src/controllers/playback/video/index.html index 452c8a9af8..cf3d0beff8 100644 --- a/src/controllers/playback/video/index.html +++ b/src/controllers/playback/video/index.html @@ -28,7 +28,7 @@ - @@ -44,7 +44,7 @@ - diff --git a/src/controllers/playback/video/index.js b/src/controllers/playback/video/index.js index d2bddfc136..a8bd0e01f3 100644 --- a/src/controllers/playback/video/index.js +++ b/src/controllers/playback/video/index.js @@ -1,6 +1,7 @@ import playbackManager from 'playbackManager'; import dom from 'dom'; import inputManager from 'inputManager'; +import mouseManager from 'mouseManager'; import datetime from 'datetime'; import itemHelper from 'itemHelper'; import mediaInfo from 'mediaInfo'; @@ -21,18 +22,18 @@ import 'css!assets/css/videoosd'; /* eslint-disable indent */ function seriesImageUrl(item, options) { - if ('Episode' !== item.Type) { + if (item.Type !== 'Episode') { return null; } options = options || {}; options.type = options.type || 'Primary'; - if ('Primary' === options.type && item.SeriesPrimaryImageTag) { + if (options.type === 'Primary' && item.SeriesPrimaryImageTag) { options.tag = item.SeriesPrimaryImageTag; return connectionManager.getApiClient(item.ServerId).getScaledImageUrl(item.SeriesId, options); } - if ('Thumb' === options.type) { + if (options.type === 'Thumb') { if (item.SeriesThumbImageTag) { options.tag = item.SeriesThumbImageTag; return connectionManager.getApiClient(item.ServerId).getScaledImageUrl(item.SeriesId, options); @@ -56,7 +57,7 @@ import 'css!assets/css/videoosd'; return connectionManager.getApiClient(item.ServerId).getScaledImageUrl(item.PrimaryImageItemId || item.Id, options); } - if ('Primary' === options.type && item.AlbumId && item.AlbumPrimaryImageTag) { + if (options.type === 'Primary' && item.AlbumId && item.AlbumPrimaryImageTag) { options.tag = item.AlbumPrimaryImageTag; return connectionManager.getApiClient(item.ServerId).getScaledImageUrl(item.AlbumId, options); } @@ -103,7 +104,7 @@ import 'css!assets/css/videoosd'; function onDoubleClick(e) { const clientX = e.clientX; - if (null != clientX) { + if (clientX != null) { if (clientX < dom.getWindowSize().innerWidth / 2) { playbackManager.rewind(currentPlayer); } else { @@ -116,7 +117,7 @@ import 'css!assets/css/videoosd'; } function getDisplayItem(item) { - if ('TvChannel' === item.Type) { + if (item.Type === 'TvChannel') { const apiClient = connectionManager.getApiClient(item.ServerId); return apiClient.getItem(apiClient.getCurrentUserId(), item.Id).then(function (refreshedItem) { return { @@ -132,7 +133,7 @@ import 'css!assets/css/videoosd'; } function updateRecordingButton(item) { - if (!item || 'Program' !== item.Type) { + if (!item || item.Type !== 'Program') { if (recordingButtonManager) { recordingButtonManager.destroy(); recordingButtonManager = null; @@ -175,8 +176,8 @@ import 'css!assets/css/videoosd'; const osdTitle = view.querySelector('.osdTitle'); titleElement = osdTitle; let displayName = itemHelper.getDisplayName(displayItem, { - includeParentInfo: 'Program' !== displayItem.Type, - includeIndexNumber: 'Program' !== displayItem.Type + includeParentInfo: displayItem.Type !== 'Program', + includeIndexNumber: displayItem.Type !== 'Program' }); if (!displayName) { @@ -197,8 +198,8 @@ import 'css!assets/css/videoosd'; tomatoes: false, endsAt: false, episodeTitle: false, - originalAirDate: 'Program' !== displayItem.Type, - episodeTitleIndexNumber: 'Program' !== displayItem.Type, + originalAirDate: displayItem.Type !== 'Program', + episodeTitleIndexNumber: displayItem.Type !== 'Program', programIndicator: false }); const osdMediaInfo = view.querySelector('.osdMediaInfo'); @@ -270,7 +271,7 @@ import 'css!assets/css/videoosd'; } function shouldEnableProgressByTimeOfDay(item) { - return !('TvChannel' !== item.Type || !item.CurrentProgram); + return !(item.Type !== 'TvChannel' || !item.CurrentProgram); } function updateNowPlayingInfo(player, state) { @@ -329,24 +330,24 @@ import 'css!assets/css/videoosd'; if (item) { let imgUrl = seriesImageUrl(item, { - maxWidth: osdPoster.clientWidth * 2, + maxWidth: osdPoster.clientWidth, type: 'Primary' }) || seriesImageUrl(item, { - maxWidth: osdPoster.clientWidth * 2, + maxWidth: osdPoster.clientWidth, type: 'Thumb' }) || imageUrl(item, { - maxWidth: osdPoster.clientWidth * 2, + maxWidth: osdPoster.clientWidth, type: 'Primary' }); if (!imgUrl && secondaryItem && (imgUrl = seriesImageUrl(secondaryItem, { - maxWidth: osdPoster.clientWidth * 2, + maxWidth: osdPoster.clientWidth, type: 'Primary' }) || seriesImageUrl(secondaryItem, { - maxWidth: osdPoster.clientWidth * 2, + maxWidth: osdPoster.clientWidth, type: 'Thumb' }) || imageUrl(secondaryItem, { - maxWidth: osdPoster.clientWidth * 2, + maxWidth: osdPoster.clientWidth, type: 'Primary' })), imgUrl) { return void (osdPoster.innerHTML = ''); @@ -367,10 +368,11 @@ import 'css!assets/css/videoosd'; function hideOsd() { slideUpToHide(headerElement); hideMainOsdControls(); + mouseManager.hideCursor(); } function toggleOsd() { - if ('osd' === currentVisibleMenu) { + if (currentVisibleMenu === 'osd') { hideOsd(); } else if (!currentVisibleMenu) { showOsd(); @@ -431,10 +433,11 @@ import 'css!assets/css/videoosd'; } function hideMainOsdControls() { - if ('osd' === currentVisibleMenu) { + if (currentVisibleMenu === 'osd') { const elem = osdBottomElement; clearHideAnimationEventListeners(elem); elem.classList.add('videoOsdBottom-hidden'); + dom.addEventListener(elem, transitionEndEventName, onHideAnimationComplete, { once: true }); @@ -460,7 +463,7 @@ import 'css!assets/css/videoosd'; } function onPointerMove(e) { - if ('mouse' === (e.pointerType || (layoutManager.mobile ? 'touch' : 'mouse'))) { + if ((e.pointerType || (layoutManager.mobile ? 'touch' : 'mouse')) === 'mouse') { const eventX = e.screenX || 0; const eventY = e.screenY || 0; const obj = lastPointerMoveData; @@ -488,7 +491,7 @@ import 'css!assets/css/videoosd'; switch (e.detail.command) { case 'left': - if ('osd' === currentVisibleMenu) { + if (currentVisibleMenu === 'osd') { showOsd(); } else { if (!currentVisibleMenu) { @@ -500,7 +503,7 @@ import 'css!assets/css/videoosd'; break; case 'right': - if ('osd' === currentVisibleMenu) { + if (currentVisibleMenu === 'osd') { showOsd(); } else if (!currentVisibleMenu) { e.preventDefault(); @@ -615,7 +618,7 @@ import 'css!assets/css/videoosd'; resetUpNextDialog(); console.debug('nowplaying event: ' + e.type); - if ('Video' !== state.NextMediaType) { + if (state.NextMediaType !== 'Video') { view.removeEventListener('viewbeforehide', onViewHideStopPlayback); Emby.Page.back(); } @@ -702,7 +705,7 @@ import 'css!assets/css/videoosd'; } function showComingUpNextIfNeeded(player, currentItem, currentTimeTicks, runtimeTicks) { - if (runtimeTicks && currentTimeTicks && !comingUpNextDisplayed && !currentVisibleMenu && 'Episode' === currentItem.Type && userSettings.enableNextVideoInfoOverlay()) { + if (runtimeTicks && currentTimeTicks && !comingUpNextDisplayed && !currentVisibleMenu && currentItem.Type === 'Episode' && userSettings.enableNextVideoInfoOverlay()) { const showAtSecondsLeft = runtimeTicks >= 3e10 ? 40 : runtimeTicks >= 24e9 ? 35 : 30; const showAtTicks = runtimeTicks - 1e3 * showAtSecondsLeft * 1e4; const timeRemainingTicks = runtimeTicks - currentTimeTicks; @@ -714,7 +717,7 @@ import 'css!assets/css/videoosd'; } function onUpNextHidden() { - if ('upnext' === currentVisibleMenu) { + if (currentVisibleMenu === 'upnext') { currentVisibleMenu = null; } } @@ -737,7 +740,7 @@ import 'css!assets/css/videoosd'; } function refreshProgramInfoIfNeeded(player, item) { - if ('TvChannel' === item.Type) { + if (item.Type === 'TvChannel') { const program = item.CurrentProgram; if (program && program.EndDate) { @@ -778,7 +781,7 @@ import 'css!assets/css/videoosd'; updatePlayPauseState(playState.IsPaused); const supportedCommands = playbackManager.getSupportedCommands(player); currentPlayerSupportedCommands = supportedCommands; - supportsBrightnessChange = -1 !== supportedCommands.indexOf('SetBrightness'); + supportsBrightnessChange = supportedCommands.indexOf('SetBrightness') !== -1; updatePlayerVolumeState(player, playState.IsMuted, playState.VolumeLevel); if (nowPlayingPositionSlider && !nowPlayingPositionSlider.dragging) { @@ -792,13 +795,13 @@ import 'css!assets/css/videoosd'; updateTimeDisplay(playState.PositionTicks, nowPlayingItem.RunTimeTicks, playState.PlaybackStartTimeTicks, playState.BufferedRanges || []); updateNowPlayingInfo(player, state); - if (state.MediaSource && state.MediaSource.SupportsTranscoding && -1 !== supportedCommands.indexOf('SetMaxStreamingBitrate')) { + if (state.MediaSource && state.MediaSource.SupportsTranscoding && supportedCommands.indexOf('SetMaxStreamingBitrate') !== -1) { view.querySelector('.btnVideoOsdSettings').classList.remove('hide'); } else { view.querySelector('.btnVideoOsdSettings').classList.add('hide'); } - const isProgressClear = state.MediaSource && null == state.MediaSource.RunTimeTicks; + const isProgressClear = state.MediaSource && state.MediaSource.RunTimeTicks == null; nowPlayingPositionSlider.setIsClear(isProgressClear); if (nowPlayingItem.RunTimeTicks) { @@ -806,19 +809,19 @@ import 'css!assets/css/videoosd'; userSettings.skipForwardLength() * 1000000 / nowPlayingItem.RunTimeTicks); } - if (-1 === supportedCommands.indexOf('ToggleFullscreen') || player.isLocalPlayer && layoutManager.tv && playbackManager.isFullscreen(player)) { + if (supportedCommands.indexOf('ToggleFullscreen') === -1 || player.isLocalPlayer && layoutManager.tv && playbackManager.isFullscreen(player)) { view.querySelector('.btnFullscreen').classList.add('hide'); } else { view.querySelector('.btnFullscreen').classList.remove('hide'); } - if (-1 === supportedCommands.indexOf('PictureInPicture')) { + if (supportedCommands.indexOf('PictureInPicture') === -1) { view.querySelector('.btnPip').classList.add('hide'); } else { view.querySelector('.btnPip').classList.remove('hide'); } - if (-1 === supportedCommands.indexOf('AirPlay')) { + if (supportedCommands.indexOf('AirPlay') === -1) { view.querySelector('.btnAirPlay').classList.add('hide'); } else { view.querySelector('.btnAirPlay').classList.remove('hide'); @@ -866,7 +869,7 @@ import 'css!assets/css/videoosd'; nowPlayingPositionSlider.value = 0; } - if (runtimeTicks && null != positionTicks && currentRuntimeTicks && !enableProgressByTimeOfDay && currentItem.RunTimeTicks && 'Recording' !== currentItem.Type) { + if (runtimeTicks && positionTicks != null && currentRuntimeTicks && !enableProgressByTimeOfDay && currentItem.RunTimeTicks && currentItem.Type !== 'Recording') { endsAtText.innerHTML = '  -  ' + mediaInfo.getEndsAtFromPosition(runtimeTicks, positionTicks, true); } else { endsAtText.innerHTML = ''; @@ -887,11 +890,11 @@ import 'css!assets/css/videoosd'; let showMuteButton = true; let showVolumeSlider = true; - if (-1 === supportedCommands.indexOf('Mute')) { + if (supportedCommands.indexOf('Mute') === -1) { showMuteButton = false; } - if (-1 === supportedCommands.indexOf('SetVolume')) { + if (supportedCommands.indexOf('SetVolume') === -1) { showVolumeSlider = false; } @@ -942,7 +945,7 @@ import 'css!assets/css/videoosd'; } function updateTimeText(elem, ticks, divider) { - if (null == ticks) { + if (ticks == null) { elem.innerHTML = ''; return; } @@ -984,9 +987,9 @@ import 'css!assets/css/videoosd'; } function onSettingsOption(selectedOption) { - if ('stats' === selectedOption) { + if (selectedOption === 'stats') { toggleStats(); - } else if ('suboffset' === selectedOption) { + } else if (selectedOption === 'suboffset') { const player = currentPlayer; if (player) { playbackManager.enableShowingSubtitleOffset(player); @@ -1060,7 +1063,7 @@ import 'css!assets/css/videoosd'; const streams = playbackManager.subtitleTracks(player); let currentIndex = playbackManager.getSubtitleStreamIndex(player); - if (null == currentIndex) { + if (currentIndex == null) { currentIndex = -1; } @@ -1131,8 +1134,9 @@ import 'css!assets/css/videoosd'; clickedElement = e.target; const key = keyboardnavigation.getKeyName(e); + const isKeyModified = e.ctrlKey || e.altKey || e.metaKey; - if (!currentVisibleMenu && 32 === e.keyCode) { + if (!currentVisibleMenu && e.keyCode === 32) { playbackManager.playPause(currentPlayer); showOsd(); return; @@ -1235,8 +1239,10 @@ import 'css!assets/css/videoosd'; case '7': case '8': case '9': { - const percent = parseInt(key, 10) * 10; - playbackManager.seekPercent(percent, currentPlayer); + if (!isKeyModified) { + const percent = parseInt(key, 10) * 10; + playbackManager.seekPercent(percent, currentPlayer); + } break; } } diff --git a/src/controllers/session/forgotPassword/index.js b/src/controllers/session/forgotPassword/index.js index ace5a3ec15..368642db35 100644 --- a/src/controllers/session/forgotPassword/index.js +++ b/src/controllers/session/forgotPassword/index.js @@ -3,21 +3,21 @@ import globalize from 'globalize'; /* eslint-disable indent */ function processForgotPasswordResult(result) { - if ('ContactAdmin' == result.Action) { + if (result.Action == 'ContactAdmin') { return void Dashboard.alert({ message: globalize.translate('MessageContactAdminToResetPassword'), title: globalize.translate('HeaderForgotPassword') }); } - if ('InNetworkRequired' == result.Action) { + if (result.Action == 'InNetworkRequired') { return void Dashboard.alert({ message: globalize.translate('MessageForgotPasswordInNetworkRequired'), title: globalize.translate('HeaderForgotPassword') }); } - if ('PinCode' == result.Action) { + if (result.Action == 'PinCode') { let msg = globalize.translate('MessageForgotPasswordFileCreated'); msg += '
'; msg += '
'; diff --git a/src/controllers/shows/episodes.js b/src/controllers/shows/episodes.js index 1e067a7674..5fe70d7be0 100644 --- a/src/controllers/shows/episodes.js +++ b/src/controllers/shows/episodes.js @@ -58,7 +58,7 @@ import 'emby-itemscontainer'; const viewStyle = self.getCurrentViewStyle(); const itemsContainer = tabContent.querySelector('.itemsContainer'); - if ('List' == viewStyle) { + if (viewStyle == 'List') { itemsContainer.classList.add('vertical-list'); itemsContainer.classList.remove('vertical-wrap'); } else { diff --git a/src/controllers/shows/tvgenres.js b/src/controllers/shows/tvgenres.js index 87d3a2e240..3a17fd7997 100644 --- a/src/controllers/shows/tvgenres.js +++ b/src/controllers/shows/tvgenres.js @@ -62,13 +62,13 @@ import 'emby-button'; const elem = entry.target; const id = elem.getAttribute('data-id'); const viewStyle = self.getCurrentViewStyle(); - let limit = 'Thumb' == viewStyle || 'ThumbCard' == viewStyle ? 5 : 9; + let limit = viewStyle == 'Thumb' || viewStyle == 'ThumbCard' ? 5 : 9; if (enableScrollX()) { limit = 10; } - const enableImageTypes = 'Thumb' == viewStyle || 'ThumbCard' == viewStyle ? 'Primary,Backdrop,Thumb' : 'Primary'; + const enableImageTypes = viewStyle == 'Thumb' || viewStyle == 'ThumbCard' ? 'Primary,Backdrop,Thumb' : 'Primary'; const query = { SortBy: 'SortName', SortOrder: 'Ascending', diff --git a/src/controllers/shows/tvshows.js b/src/controllers/shows/tvshows.js index 1ee70c8f88..281c921e48 100644 --- a/src/controllers/shows/tvshows.js +++ b/src/controllers/shows/tvshows.js @@ -58,7 +58,7 @@ import 'emby-itemscontainer'; const viewStyle = self.getCurrentViewStyle(); const itemsContainer = tabContent.querySelector('.itemsContainer'); - if ('List' == viewStyle) { + if (viewStyle == 'List') { itemsContainer.classList.add('vertical-list'); itemsContainer.classList.remove('vertical-wrap'); } else { diff --git a/src/index.html b/src/index.html index f8d867cb1a..797fce8a94 100644 --- a/src/index.html +++ b/src/index.html @@ -1,13 +1,11 @@ - - @@ -15,10 +13,9 @@ - - + + - @@ -64,7 +61,6 @@ - Jellyfin @@ -129,7 +125,7 @@ animation: fadein 0.5s; width: 30%; height: 30%; - background-image: url(assets/img/banner-light.png); + background-image: url(assets/img/icon-transparent.png); background-position: center center; background-repeat: no-repeat; background-size: contain; @@ -139,6 +135,14 @@ -webkit-transform: translate(-50%, -50%); transform: translate(-50%, -50%); } + + @media screen + and (min-device-width: 992px) + and (-webkit-min-device-pixel-ratio: 1) { + .splashLogo { + background-image: url(assets/img/banner-light.png); + } + } diff --git a/src/libraries/navdrawer/navdrawer.js b/src/libraries/navdrawer/navdrawer.js index d9c246b406..4733c617f3 100644 --- a/src/libraries/navdrawer/navdrawer.js +++ b/src/libraries/navdrawer/navdrawer.js @@ -1,6 +1,8 @@ define(["browser", "dom", "css!./navdrawer", "scrollStyles"], function (browser, dom) { "use strict"; + browser = browser.default || browser; + return function (options) { function getTouches(e) { return e.changedTouches || e.targetTouches || e.touches; diff --git a/src/libraries/screensavermanager.js b/src/libraries/screensavermanager.js index b9d7082850..557b31e0f4 100644 --- a/src/libraries/screensavermanager.js +++ b/src/libraries/screensavermanager.js @@ -1,6 +1,8 @@ define(["events", "playbackManager", "pluginManager", "inputManager", "connectionManager", "userSettings"], function (events, playbackManager, pluginManager, inputManager, connectionManager, userSettings) { "use strict"; + playbackManager = playbackManager.default || playbackManager; + function getMinIdleTime() { // Returns the minimum amount of idle time required before the screen saver can be displayed //time units used Millisecond diff --git a/src/libraries/scroller.js b/src/libraries/scroller.js index 645a8ea85c..c0cb3e557c 100644 --- a/src/libraries/scroller.js +++ b/src/libraries/scroller.js @@ -1,6 +1,8 @@ define(['browser', 'layoutManager', 'dom', 'focusManager', 'ResizeObserver', 'scrollStyles'], function (browser, layoutManager, dom, focusManager, ResizeObserver) { 'use strict'; + browser = browser.default || browser; + /** * Return type of the value. * diff --git a/src/manifest.json b/src/manifest.json index fed1177e24..5b5ecd5516 100644 --- a/src/manifest.json +++ b/src/manifest.json @@ -1,6 +1,6 @@ { "name": "Jellyfin", - "description": "Jellyfin: the Free Software Media System.", + "description": "The Free Software Media System", "lang": "en-US", "short_name": "Jellyfin", "start_url": "index.html#!/home.html", diff --git a/src/plugins/bookPlayer/plugin.js b/src/plugins/bookPlayer/plugin.js index db6c344dad..c167046cb9 100644 --- a/src/plugins/bookPlayer/plugin.js +++ b/src/plugins/bookPlayer/plugin.js @@ -2,6 +2,7 @@ import connectionManager from 'connectionManager'; import loading from 'loading'; import keyboardnavigation from 'keyboardnavigation'; import dialogHelper from 'dialogHelper'; +import dom from 'dom'; import events from 'events'; import 'css!./style'; import 'material-icons'; @@ -93,23 +94,22 @@ export class BookPlayer { onWindowKeyUp(e) { let key = keyboardnavigation.getKeyName(e); - let rendition = this._rendition; + + // TODO: depending on the event this can be the document or the rendition itself + let rendition = this._rendition || this; let book = rendition.book; + if (this._loaded === false) return; switch (key) { case 'l': case 'ArrowRight': case 'Right': - if (this._loaded) { - book.package.metadata.direction === 'rtl' ? rendition.prev() : rendition.next(); - } + book.package.metadata.direction === 'rtl' ? rendition.prev() : rendition.next(); break; case 'j': case 'ArrowLeft': case 'Left': - if (this._loaded) { - book.package.metadata.direction === 'rtl' ? rendition.next() : rendition.prev(); - } + book.package.metadata.direction === 'rtl' ? rendition.next() : rendition.prev(); break; case 'Escape': if (this._tocElement) { @@ -123,6 +123,25 @@ export class BookPlayer { } } + onTouchStart(e) { + // TODO: depending on the event this can be the document or the rendition itself + let rendition = this._rendition || this; + let book = rendition.book; + + // check that the event is from the book or the document + if (!book || this._loaded === false) return; + + // epubjs stores pages off the screen or something for preloading + // get the modulus of the touch event to account for the increased width + if (!e.touches || e.touches.length === 0) return; + let touch = e.touches[0].clientX % dom.getWindowSize().innerWidth; + if (touch < dom.getWindowSize().innerWidth / 2) { + book.package.metadata.direction === 'rtl' ? rendition.next() : rendition.prev(); + } else { + book.package.metadata.direction === 'rtl' ? rendition.prev() : rendition.next(); + } + } + onDialogClosed() { this.stop(); } @@ -139,8 +158,11 @@ export class BookPlayer { this.bindMediaElementEvents(); document.addEventListener('keyup', this.onWindowKeyUp); + document.addEventListener('touchstart', this.onTouchStart); + // FIXME: I don't really get why document keyup event is not triggered when epub is in focus this._rendition.on('keyup', this.onWindowKeyUp); + this._rendition.on('touchstart', this.onTouchStart); } unbindMediaElementEvents() { @@ -155,9 +177,13 @@ export class BookPlayer { if (this._mediaElement) { this.unbindMediaElementEvents(); } + document.removeEventListener('keyup', this.onWindowKeyUp); + document.removeEventListener('touchstart', this.onTouchStart); + if (this._rendition) { this._rendition.off('keyup', this.onWindowKeyUp); + this._rendition.off('touchstart', this.onTouchStart); } } @@ -169,13 +195,11 @@ export class BookPlayer { createMediaElement() { let elem = this._mediaElement; - if (elem) { return elem; } elem = document.getElementById('bookPlayer'); - if (!elem) { elem = dialogHelper.createDialog({ exitAnimationDuration: 400, @@ -185,6 +209,7 @@ export class BookPlayer { exitAnimation: 'fadeout', removeOnClose: true }); + elem.id = 'bookPlayer'; let html = ''; @@ -222,7 +247,7 @@ export class BookPlayer { return new Promise((resolve, reject) => { import('epubjs').then(({default: epubjs}) => { let downloadHref = apiClient.getItemDownloadUrl(item.Id); - let book = epubjs.default(downloadHref, {openAs: 'epub'}); + let book = epubjs(downloadHref, {openAs: 'epub'}); let rendition = book.renderTo(elem, {width: '100%', height: '97%'}); this._currentSrc = downloadHref; @@ -230,6 +255,7 @@ export class BookPlayer { let cancellationToken = { shouldCancel: false }; + this._cancellationToken = cancellationToken; return rendition.display().then(() => { @@ -253,7 +279,6 @@ export class BookPlayer { epubElem.style.display = 'block'; rendition.on('relocated', (locations) => { this._progress = book.locations.percentageFromCfi(locations.start.cfi); - events.trigger(this, 'timeupdate'); }); @@ -262,7 +287,7 @@ export class BookPlayer { return resolve(); }); }, () => { - console.error('Failed to display epub'); + console.error('failed to display epub'); return reject(); }); }); diff --git a/src/plugins/chromecastPlayer/chromecastHelpers.js b/src/plugins/chromecastPlayer/chromecastHelper.js similarity index 100% rename from src/plugins/chromecastPlayer/chromecastHelpers.js rename to src/plugins/chromecastPlayer/chromecastHelper.js diff --git a/src/plugins/chromecastPlayer/plugin.js b/src/plugins/chromecastPlayer/plugin.js index d3fc8d0ef8..2741a6f0e3 100644 --- a/src/plugins/chromecastPlayer/plugin.js +++ b/src/plugins/chromecastPlayer/plugin.js @@ -1,6 +1,8 @@ define(['appSettings', 'userSettings', 'playbackManager', 'connectionManager', 'globalize', 'events', 'require', 'castSenderApiLoader'], function (appSettings, userSettings, playbackManager, connectionManager, globalize, events, require, castSenderApiLoader) { 'use strict'; + playbackManager = playbackManager.default || playbackManager; + // Based on https://github.com/googlecast/CastVideos-chrome/blob/master/CastVideos.js var currentResolve; var currentReject; @@ -54,7 +56,7 @@ define(['appSettings', 'userSettings', 'playbackManager', 'connectionManager', ' // production version registered with google // replace this value if you want to test changes on another instance var applicationStable = 'F007D354'; - var applicationNightly = '6F511C87'; + var applicationUnstable = '6F511C87'; var messageNamespace = 'urn:x-cast:com.connectsdk'; @@ -99,8 +101,8 @@ define(['appSettings', 'userSettings', 'playbackManager', 'connectionManager', ' } var applicationID = applicationStable; - if (userSettings.chromecastVersion() === 'nightly') { - applicationID = applicationNightly; + if (userSettings.chromecastVersion() === 'unstable') { + applicationID = applicationUnstable; } // request session @@ -363,7 +365,7 @@ define(['appSettings', 'userSettings', 'playbackManager', 'connectionManager', ' } return new Promise(function (resolve, reject) { - require(['chromecastHelper'], function (chromecastHelper) { + require(['./chromecastHelper'], function (chromecastHelper) { chromecastHelper.getServerAddress(apiClient).then(function (serverAddress) { message.serverAddress = serverAddress; player.sendMessageInternal(message).then(resolve, reject); diff --git a/src/plugins/htmlVideoPlayer/plugin.js b/src/plugins/htmlVideoPlayer/plugin.js index b3b2402c26..d52f0eb5b3 100644 --- a/src/plugins/htmlVideoPlayer/plugin.js +++ b/src/plugins/htmlVideoPlayer/plugin.js @@ -1,15 +1,43 @@ +import browser from 'browser'; +import events from 'events'; +import appHost from 'apphost'; +import loading from 'loading'; +import dom from 'dom'; +import playbackManager from 'playbackManager'; +import appRouter from 'appRouter'; +import connectionManager from 'connectionManager'; +import { + bindEventsToHlsPlayer, + destroyHlsPlayer, + destroyFlvPlayer, + destroyCastPlayer, + getCrossOriginValue, + enableHlsJsPlayer, + applySrc, + playWithPromise, + onEndedInternal, + saveVolume, + seekOnPlaybackStart, + onErrorInternal, + handleHlsJsMediaError, + getSavedVolume, + isValidDuration, + getBufferedRanges +} from 'htmlMediaHelper'; +import itemHelper from 'itemHelper'; +import screenfull from 'screenfull'; +import globalize from 'globalize'; -define(['browser', 'require', 'events', 'apphost', 'loading', 'dom', 'playbackManager', 'appRouter', 'appSettings', 'connectionManager', 'htmlMediaHelper', 'itemHelper', 'screenfull', 'globalize'], function (browser, require, events, appHost, loading, dom, playbackManager, appRouter, appSettings, connectionManager, htmlMediaHelper, itemHelper, screenfull, globalize) { - 'use strict'; +/* eslint-disable indent */ - function tryRemoveElement(elem) { - var parentNode = elem.parentNode; +function tryRemoveElement(elem) { + const parentNode = elem.parentNode; if (parentNode) { // Seeing crashes in edge webview try { parentNode.removeChild(elem); } catch (err) { - console.error('error removing dialog element: ' + err); + console.error(`error removing dialog element: ${err}`); } } } @@ -22,7 +50,7 @@ define(['browser', 'require', 'events', 'apphost', 'loading', 'dom', 'playbackMa } if (browser.firefox) { - if ((currentSrc || '').toLowerCase().indexOf('.m3u8') !== -1) { + if ((currentSrc || '').toLowerCase().includes('.m3u8')) { return false; } } @@ -48,7 +76,7 @@ define(['browser', 'require', 'events', 'apphost', 'loading', 'dom', 'playbackMa } if (track) { - var format = (track.Codec || '').toLowerCase(); + const format = (track.Codec || '').toLowerCase(); if (format === 'ssa' || format === 'ass') { return false; } @@ -58,7 +86,7 @@ define(['browser', 'require', 'events', 'apphost', 'loading', 'dom', 'playbackMa } function requireHlsPlayer(callback) { - require(['hlsjs'], function (hls) { + import('hlsjs').then(({default: hls}) => { window.Hls = hls; callback(); }); @@ -84,9 +112,9 @@ define(['browser', 'require', 'events', 'apphost', 'loading', 'dom', 'playbackMa } function zoomIn(elem) { - return new Promise(function (resolve, reject) { - var duration = 240; - elem.style.animation = 'htmlvideoplayer-zoomin ' + duration + 'ms ease-in normal'; + return new Promise(resolve => { + const duration = 240; + elem.style.animation = `htmlvideoplayer-zoomin ${duration}ms ease-in normal`; hidePrePlaybackPage(); dom.addEventListener(elem, dom.whichAnimationEvent(), resolve, { once: true @@ -95,7 +123,7 @@ define(['browser', 'require', 'events', 'apphost', 'loading', 'dom', 'playbackMa } function normalizeTrackEventText(text, useHtml) { - var result = text.replace(/\\N/gi, '\n').replace(/\r/gi, ''); + const result = text.replace(/\\N/gi, '\n').replace(/\r/gi, ''); return useHtml ? result.replace(/\n/gi, '
') : result; } @@ -104,7 +132,7 @@ define(['browser', 'require', 'events', 'apphost', 'loading', 'dom', 'playbackMa return track.Path; } - var url = playbackManager.getSubtitleUrl(track, item.ServerId); + let url = playbackManager.getSubtitleUrl(track, item.ServerId); if (format) { url = url.replace('.vtt', format); } @@ -113,84 +141,189 @@ define(['browser', 'require', 'events', 'apphost', 'loading', 'dom', 'playbackMa } function getDefaultProfile() { - return new Promise(function (resolve, reject) { - require(['browserdeviceprofile'], function (profileBuilder) { - resolve(profileBuilder({})); - }); + return import('browserdeviceprofile').then(({default: profileBuilder}) => { + return profileBuilder({}); }); } - function HtmlVideoPlayer() { - if (browser.edgeUwp) { - this.name = 'Windows Video Player'; - } else { - this.name = 'Html Video Player'; - } + export class HtmlVideoPlayer { + /** + * @type {string} + */ + name + /** + * @type {string} + */ + type = 'mediaplayer'; + /** + * @type {string} + */ + id = 'htmlvideoplayer'; + /** + * Let any players created by plugins take priority + * + * @type {number} + */ + priority = 1; + /** + * @type {boolean} + */ + isFetching = false; - this.type = 'mediaplayer'; - this.id = 'htmlvideoplayer'; + /** + * @type {HTMLDivElement | null | undefined} + */ + #videoDialog; + /** + * @type {number | undefined} + */ + #subtitleTrackIndexToSetOnPlaying; + /** + * @type {number | null} + */ + #audioTrackIndexToSetOnPlaying; + /** + * @type {null | undefined} + */ + #currentClock; + /** + * @type {any | null | undefined} + */ + #currentSubtitlesOctopus; + /** + * @type {null | undefined} + */ + #currentAssRenderer; + /** + * @type {number | undefined} + */ + #customTrackIndex; + /** + * @type {boolean | undefined} + */ + #showTrackOffset; + /** + * @type {number | undefined} + */ + #currentTrackOffset; + /** + * @type {HTMLElement | null | undefined} + */ + #videoSubtitlesElem; + /** + * @type {any | null | undefined} + */ + #currentTrackEvents; + /** + * @type {string[] | undefined} + */ + #supportedFeatures; + /** + * @type {HTMLVideoElement | null | undefined} + */ + #mediaElement; + /** + * @type {number} + */ + #fetchQueue = 0; + /** + * @type {string | undefined} + */ + #currentSrc; + /** + * @type {boolean | undefined} + */ + #started; + /** + * @type {boolean | undefined} + */ + #timeUpdated; + /** + * @type {number | null | undefined} + */ + #currentTime; + /** + * @type {any | undefined} + */ + #flvPlayer; + /** + * @private (used in other files) + * @type {any | undefined} + */ + _hlsPlayer; + /** + * @private (used in other files) + * @type {any | null | undefined} + */ + _castPlayer; + /** + * @private (used in other files) + * @type {any | undefined} + */ + _currentPlayOptions; + /** + * @type {any | undefined} + */ + #lastProfile; + /** + * @type {MutationObserver | IntersectionObserver | undefined} (Unclear observer typing) + */ + #resizeObserver; - // Let any players created by plugins take priority - this.priority = 1; - - var videoDialog; - - var subtitleTrackIndexToSetOnPlaying; - var audioTrackIndexToSetOnPlaying; - - var currentClock; - var currentSubtitlesOctopus; - var currentAssRenderer; - var customTrackIndex = -1; - - var showTrackOffset; - var currentTrackOffset; - - var videoSubtitlesElem; - var currentTrackEvents; - - var self = this; - - self.currentSrc = function () { - return self._currentSrc; - }; - - self._fetchQueue = 0; - self.isFetching = false; - - function incrementFetchQueue() { - if (self._fetchQueue <= 0) { - self.isFetching = true; - events.trigger(self, 'beginFetch'); - } - - self._fetchQueue++; - } - - function decrementFetchQueue() { - self._fetchQueue--; - - if (self._fetchQueue <= 0) { - self.isFetching = false; - events.trigger(self, 'endFetch'); + constructor() { + if (browser.edgeUwp) { + this.name = 'Windows Video Player'; + } else { + this.name = 'Html Video Player'; } } - function updateVideoUrl(streamInfo) { - var isHls = streamInfo.url.toLowerCase().indexOf('.m3u8') !== -1; + currentSrc() { + return this.#currentSrc; + } - var mediaSource = streamInfo.mediaSource; - var item = streamInfo.item; + /** + * @private + */ + incrementFetchQueue() { + if (this.#fetchQueue <= 0) { + this.isFetching = true; + events.trigger(this, 'beginFetch'); + } + + this.#fetchQueue++; + } + + /** + * @private + */ + decrementFetchQueue() { + this.#fetchQueue--; + + if (this.#fetchQueue <= 0) { + this.isFetching = false; + events.trigger(this, 'endFetch'); + } + } + + /** + * @private + */ + updateVideoUrl(streamInfo) { + const isHls = streamInfo.url.toLowerCase().includes('.m3u8'); + + const mediaSource = streamInfo.mediaSource; + const item = streamInfo.item; // Huge hack alert. Safari doesn't seem to like if the segments aren't available right away when playback starts // This will start the transcoding process before actually feeding the video url into the player // Edit: Also seeing stalls from hls.js if (mediaSource && item && !mediaSource.RunTimeTicks && isHls && streamInfo.playMethod === 'Transcode' && (browser.iOS || browser.osx)) { - var hlsPlaylistUrl = streamInfo.url.replace('master.m3u8', 'live.m3u8'); + const hlsPlaylistUrl = streamInfo.url.replace('master.m3u8', 'live.m3u8'); loading.show(); - console.debug('prefetching hls playlist: ' + hlsPlaylistUrl); + console.debug(`prefetching hls playlist: ${hlsPlaylistUrl}`); return connectionManager.getApiClient(item.ServerId).ajax({ @@ -198,42 +331,41 @@ define(['browser', 'require', 'events', 'apphost', 'loading', 'dom', 'playbackMa url: hlsPlaylistUrl }).then(function () { - console.debug('completed prefetching hls playlist: ' + hlsPlaylistUrl); + console.debug(`completed prefetching hls playlist: ${hlsPlaylistUrl}`); loading.hide(); streamInfo.url = hlsPlaylistUrl; - - return Promise.resolve(); }, function () { - console.error('error prefetching hls playlist: ' + hlsPlaylistUrl); + console.error(`error prefetching hls playlist: ${hlsPlaylistUrl}`); loading.hide(); - return Promise.resolve(); }); } else { return Promise.resolve(); } } - self.play = function (options) { - self._started = false; - self._timeUpdated = false; + play(options) { + this.#started = false; + this.#timeUpdated = false; - self._currentTime = null; + this.#currentTime = null; - self.resetSubtitleOffset(); + this.resetSubtitleOffset(); - return createMediaElement(options).then(function (elem) { - return updateVideoUrl(options).then(function () { - return setCurrentSrc(elem, options); + return this.createMediaElement(options).then(elem => { + return this.updateVideoUrl(options).then(() => { + return this.setCurrentSrc(elem, options); }); }); - }; + } - function setSrcWithFlvJs(instance, elem, options, url) { - return new Promise(function (resolve, reject) { - require(['flvjs'], function (flvjs) { - var flvPlayer = flvjs.createPlayer({ + /** + * @private + */ + setSrcWithFlvJs(elem, options, url) { + return import('flvjs').then(({default: flvjs}) => { + const flvPlayer = flvjs.createPlayer({ type: 'flv', url: url }, @@ -242,117 +374,126 @@ define(['browser', 'require', 'events', 'apphost', 'loading', 'dom', 'playbackMa lazyLoad: false }); - flvPlayer.attachMediaElement(elem); - flvPlayer.load(); + flvPlayer.attachMediaElement(elem); + flvPlayer.load(); - flvPlayer.play().then(resolve, reject); - instance._flvPlayer = flvPlayer; + this.#flvPlayer = flvPlayer; - // This is needed in setCurrentTrackElement - self._currentSrc = url; - }); + // This is needed in setCurrentTrackElement + this.#currentSrc = url; + + return flvPlayer.play(); }); } - function setSrcWithHlsJs(instance, elem, options, url) { - return new Promise(function (resolve, reject) { - requireHlsPlayer(function () { - var hls = new Hls({ + /** + * @private + */ + setSrcWithHlsJs(elem, options, url) { + return new Promise((resolve, reject) => { + requireHlsPlayer(() => { + const hls = new Hls({ manifestLoadingTimeOut: 20000, - xhrSetup: function(xhr, xhr_url) { + xhrSetup(xhr) { xhr.withCredentials = true; } }); hls.loadSource(url); hls.attachMedia(elem); - htmlMediaHelper.bindEventsToHlsPlayer(self, hls, elem, onError, resolve, reject); + bindEventsToHlsPlayer(this, hls, elem, this.onError, resolve, reject); - self._hlsPlayer = hls; + this._hlsPlayer = hls; // This is needed in setCurrentTrackElement - self._currentSrc = url; + this.#currentSrc = url; }); }); } - function setCurrentSrc(elem, options) { - elem.removeEventListener('error', onError); + /** + * @private + */ + setCurrentSrc(elem, options) { + elem.removeEventListener('error', this.onError); - var val = options.url; - console.debug('playing url: ' + val); + let val = options.url; + console.debug(`playing url: ${val}`); // Convert to seconds - var seconds = (options.playerStartPositionTicks || 0) / 10000000; + const seconds = (options.playerStartPositionTicks || 0) / 10000000; if (seconds) { - val += '#t=' + seconds; + val += `#t=${seconds}`; } - htmlMediaHelper.destroyHlsPlayer(self); - htmlMediaHelper.destroyFlvPlayer(self); - htmlMediaHelper.destroyCastPlayer(self); + destroyHlsPlayer(this); + destroyFlvPlayer(this); + destroyCastPlayer(this); - subtitleTrackIndexToSetOnPlaying = options.mediaSource.DefaultSubtitleStreamIndex == null ? -1 : options.mediaSource.DefaultSubtitleStreamIndex; - if (subtitleTrackIndexToSetOnPlaying != null && subtitleTrackIndexToSetOnPlaying >= 0) { - var initialSubtitleStream = options.mediaSource.MediaStreams[subtitleTrackIndexToSetOnPlaying]; + this.#subtitleTrackIndexToSetOnPlaying = options.mediaSource.DefaultSubtitleStreamIndex == null ? -1 : options.mediaSource.DefaultSubtitleStreamIndex; + if (this.#subtitleTrackIndexToSetOnPlaying != null && this.#subtitleTrackIndexToSetOnPlaying >= 0) { + const initialSubtitleStream = options.mediaSource.MediaStreams[this.#subtitleTrackIndexToSetOnPlaying]; if (!initialSubtitleStream || initialSubtitleStream.DeliveryMethod === 'Encode') { - subtitleTrackIndexToSetOnPlaying = -1; + this.#subtitleTrackIndexToSetOnPlaying = -1; } } - audioTrackIndexToSetOnPlaying = options.playMethod === 'Transcode' ? null : options.mediaSource.DefaultAudioStreamIndex; + this.#audioTrackIndexToSetOnPlaying = options.playMethod === 'Transcode' ? null : options.mediaSource.DefaultAudioStreamIndex; - self._currentPlayOptions = options; + this._currentPlayOptions = options; - var crossOrigin = htmlMediaHelper.getCrossOriginValue(options.mediaSource); + const crossOrigin = getCrossOriginValue(options.mediaSource); if (crossOrigin) { elem.crossOrigin = crossOrigin; } - if (htmlMediaHelper.enableHlsJsPlayer(options.mediaSource.RunTimeTicks, 'Video') && val.indexOf('.m3u8') !== -1) { - return setSrcWithHlsJs(self, elem, options, val); + if (enableHlsJsPlayer(options.mediaSource.RunTimeTicks, 'Video') && val.includes('.m3u8')) { + return this.setSrcWithHlsJs(elem, options, val); } else if (options.playMethod !== 'Transcode' && options.mediaSource.Container === 'flv') { - return setSrcWithFlvJs(self, elem, options, val); + return this.setSrcWithFlvJs(elem, options, val); } else { 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; + return applySrc(elem, val, options).then(() => { + this.#currentSrc = val; - return htmlMediaHelper.playWithPromise(elem, onError); + return playWithPromise(elem, this.onError); }); } } - self.setSubtitleStreamIndex = function (index) { - setCurrentTrackElement(index); - }; + setSubtitleStreamIndex(index) { + this.setCurrentTrackElement(index); + } - self.resetSubtitleOffset = function() { - currentTrackOffset = 0; - showTrackOffset = false; - }; + resetSubtitleOffset() { + this.#currentTrackOffset = 0; + this.#showTrackOffset = false; + } - self.enableShowingSubtitleOffset = function() { - showTrackOffset = true; - }; + enableShowingSubtitleOffset() { + this.#showTrackOffset = true; + } - self.disableShowingSubtitleOffset = function() { - showTrackOffset = false; - }; + disableShowingSubtitleOffset() { + this.#showTrackOffset = false; + } - self.isShowingSubtitleOffsetEnabled = function() { - return showTrackOffset; - }; + isShowingSubtitleOffsetEnabled() { + return this.#showTrackOffset; + } - function getTextTrack() { - var videoElement = self._mediaElement; + /** + * @private + */ + getTextTrack() { + const videoElement = this.#mediaElement; if (videoElement) { return Array.from(videoElement.textTracks) - .find(function(trackElement) { + .find(function (trackElement) { // get showing .vtt textTack return trackElement.mode === 'showing'; }); @@ -361,64 +502,79 @@ define(['browser', 'require', 'events', 'apphost', 'loading', 'dom', 'playbackMa } } - self.setSubtitleOffset = function(offset) { - var offsetValue = parseFloat(offset); + /** + * @private + */ + setSubtitleOffset(offset) { + const offsetValue = parseFloat(offset); // if .ass currently rendering - if (currentSubtitlesOctopus) { - updateCurrentTrackOffset(offsetValue); - currentSubtitlesOctopus.timeOffset = (self._currentPlayOptions.transcodingOffsetTicks || 0) / 10000000 + offsetValue; + if (this.#currentSubtitlesOctopus) { + this.updateCurrentTrackOffset(offsetValue); + this.#currentSubtitlesOctopus.timeOffset = (this._currentPlayOptions.transcodingOffsetTicks || 0) / 10000000 + offsetValue; } else { - var trackElement = getTextTrack(); + const trackElement = this.getTextTrack(); // if .vtt currently rendering if (trackElement) { - setTextTrackSubtitleOffset(trackElement, offsetValue); - } else if (currentTrackEvents) { - setTrackEventsSubtitleOffset(currentTrackEvents, offsetValue); + this.setTextTrackSubtitleOffset(trackElement, offsetValue); + } else if (this.#currentTrackEvents) { + this.setTrackEventsSubtitleOffset(this.#currentTrackEvents, offsetValue); } else { console.debug('No available track, cannot apply offset: ', offsetValue); } } - }; + } - function updateCurrentTrackOffset(offsetValue) { - var relativeOffset = offsetValue; - var newTrackOffset = offsetValue; - if (currentTrackOffset) { - relativeOffset -= currentTrackOffset; + /** + * @private + */ + updateCurrentTrackOffset(offsetValue) { + let relativeOffset = offsetValue; + const newTrackOffset = offsetValue; + if (this.#currentTrackOffset) { + relativeOffset -= this.#currentTrackOffset; } - currentTrackOffset = newTrackOffset; + this.#currentTrackOffset = newTrackOffset; // relative to currentTrackOffset return relativeOffset; } - function setTextTrackSubtitleOffset(currentTrack, offsetValue) { + /** + * @private + */ + setTextTrackSubtitleOffset(currentTrack, offsetValue) { if (currentTrack.cues) { - offsetValue = updateCurrentTrackOffset(offsetValue); + offsetValue = this.updateCurrentTrackOffset(offsetValue); Array.from(currentTrack.cues) - .forEach(function(cue) { + .forEach(function (cue) { cue.startTime -= offsetValue; cue.endTime -= offsetValue; }); } } - function setTrackEventsSubtitleOffset(trackEvents, offsetValue) { + /** + * @private + */ + setTrackEventsSubtitleOffset(trackEvents, offsetValue) { if (Array.isArray(trackEvents)) { - offsetValue = updateCurrentTrackOffset(offsetValue) * 1e7; // ticks - trackEvents.forEach(function(trackEvent) { + offsetValue = this.updateCurrentTrackOffset(offsetValue) * 1e7; // ticks + trackEvents.forEach(function (trackEvent) { trackEvent.StartPositionTicks -= offsetValue; trackEvent.EndPositionTicks -= offsetValue; }); } } - self.getSubtitleOffset = function() { - return currentTrackOffset; - }; + getSubtitleOffset() { + return this.#currentTrackOffset; + } - function isAudioStreamSupported(stream, deviceProfile) { - var codec = (stream.Codec || '').toLowerCase(); + /** + * @private + */ + isAudioStreamSupported(stream, deviceProfile) { + const codec = (stream.Codec || '').toLowerCase(); if (!codec) { return true; @@ -429,7 +585,7 @@ define(['browser', 'require', 'events', 'apphost', 'loading', 'dom', 'playbackMa return true; } - var profiles = deviceProfile.DirectPlayProfiles || []; + const profiles = deviceProfile.DirectPlayProfiles || []; return profiles.filter(function (p) { if (p.Type === 'Video') { @@ -437,37 +593,35 @@ define(['browser', 'require', 'events', 'apphost', 'loading', 'dom', 'playbackMa return true; } - return p.AudioCodec.toLowerCase().indexOf(codec) !== -1; + return p.AudioCodec.toLowerCase().includes(codec); } return false; }).length > 0; } - function getSupportedAudioStreams() { - var profile = self._lastProfile; + /** + * @private + */ + getSupportedAudioStreams() { + const profile = this.#lastProfile; - return getMediaStreamAudioTracks(self._currentPlayOptions.mediaSource).filter(function (stream) { - return isAudioStreamSupported(stream, profile); + return getMediaStreamAudioTracks(this._currentPlayOptions.mediaSource).filter((stream) => { + return this.isAudioStreamSupported(stream, profile); }); } - self.setAudioStreamIndex = function (index) { - var streams = getSupportedAudioStreams(); + setAudioStreamIndex(index) { + const streams = this.getSupportedAudioStreams(); if (streams.length < 2) { // If there's only one supported stream then trust that the player will handle it on it's own return; } - var audioIndex = -1; - var i; - var length; - var stream; - - for (i = 0, length = streams.length; i < length; i++) { - stream = streams[i]; + let audioIndex = -1; + for (const stream of streams) { audioIndex++; if (stream.Index === index) { @@ -479,204 +633,272 @@ define(['browser', 'require', 'events', 'apphost', 'loading', 'dom', 'playbackMa return; } - var elem = self._mediaElement; + const elem = this.#mediaElement; if (!elem) { return; } - // https://msdn.microsoft.com/en-us/library/hh772507(v=vs.85).aspx + // https://developer.mozilla.org/en-US/docs/Web/API/HTMLMediaElement/audioTracks - var elemAudioTracks = elem.audioTracks || []; - console.debug('found ' + elemAudioTracks.length + ' audio tracks'); + /** + * @type {ArrayLike|any[]} + */ + const elemAudioTracks = elem.audioTracks || []; + console.debug(`found ${elemAudioTracks.length} audio tracks`); - for (i = 0, length = elemAudioTracks.length; i < length; i++) { + for (const [i, audioTrack] of Array.from(elemAudioTracks).entries()) { if (audioIndex === i) { - console.debug('setting audio track ' + i + ' to enabled'); - elemAudioTracks[i].enabled = true; + console.debug(`setting audio track ${i} to enabled`); + audioTrack.enabled = true; } else { - console.debug('setting audio track ' + i + ' to disabled'); - elemAudioTracks[i].enabled = false; + console.debug(`setting audio track ${i} to disabled`); + audioTrack.enabled = false; } } - }; + } - self.stop = function (destroyPlayer) { - var elem = self._mediaElement; - var src = self._currentSrc; + stop(destroyPlayer) { + const elem = this.#mediaElement; + const src = this.#currentSrc; if (elem) { if (src) { elem.pause(); } - htmlMediaHelper.onEndedInternal(self, elem, onError); + onEndedInternal(this, elem, this.onError); if (destroyPlayer) { - self.destroy(); + this.destroy(); } } - destroyCustomTrack(elem); + this.destroyCustomTrack(elem); return Promise.resolve(); - }; + } - self.destroy = function () { - htmlMediaHelper.destroyHlsPlayer(self); - htmlMediaHelper.destroyFlvPlayer(self); + destroy() { + destroyHlsPlayer(this); + destroyFlvPlayer(this); appRouter.setTransparency('none'); - var videoElement = self._mediaElement; + const videoElement = this.#mediaElement; if (videoElement) { - self._mediaElement = null; + this.#mediaElement = null; - destroyCustomTrack(videoElement); - videoElement.removeEventListener('timeupdate', onTimeUpdate); - videoElement.removeEventListener('ended', onEnded); - videoElement.removeEventListener('volumechange', onVolumeChange); - videoElement.removeEventListener('pause', onPause); - videoElement.removeEventListener('playing', onPlaying); - videoElement.removeEventListener('play', onPlay); - videoElement.removeEventListener('click', onClick); - videoElement.removeEventListener('dblclick', onDblClick); - videoElement.removeEventListener('waiting', onWaiting); + this.destroyCustomTrack(videoElement); + videoElement.removeEventListener('timeupdate', this.onTimeUpdate); + videoElement.removeEventListener('ended', this.onEnded); + videoElement.removeEventListener('volumechange', this.onVolumeChange); + videoElement.removeEventListener('pause', this.onPause); + videoElement.removeEventListener('playing', this.onPlaying); + videoElement.removeEventListener('play', this.onPlay); + videoElement.removeEventListener('click', this.onClick); + videoElement.removeEventListener('dblclick', this.onDblClick); + videoElement.removeEventListener('waiting', this.onWaiting); videoElement.parentNode.removeChild(videoElement); } - var dlg = videoDialog; + const dlg = this.#videoDialog; if (dlg) { - videoDialog = null; + this.#videoDialog = null; dlg.parentNode.removeChild(dlg); } if (screenfull.isEnabled) { screenfull.exit(); + } else { + // iOS Safari + if (document.webkitIsFullScreen && document.webkitCancelFullscreen) { + document.webkitCancelFullscreen(); + } } - }; - - function onEnded() { - destroyCustomTrack(this); - htmlMediaHelper.onEndedInternal(self, this, onError); } - function onTimeUpdate(e) { - // get the player position and the transcoding offset - var time = this.currentTime; + /** + * @private + * @param e {Event} The event received from the `
'; diff --git a/src/scripts/libraryMenu.js b/src/scripts/libraryMenu.js index f010fa15e3..8b5fce14d3 100644 --- a/src/scripts/libraryMenu.js +++ b/src/scripts/libraryMenu.js @@ -19,6 +19,9 @@ import 'flexStyles'; /* eslint-disable indent */ + playbackManager = playbackManager.default || playbackManager; + browser = browser.default || browser; + function renderHeader() { let html = ''; html += '
'; @@ -327,7 +330,7 @@ import 'flexStyles'; } function isUrlInCurrentView(url) { - return -1 !== window.location.href.toString().toLowerCase().indexOf(url.toLowerCase()); + return window.location.href.toString().toLowerCase().indexOf(url.toLowerCase()) !== -1; } function updateDashboardMenuSelectedItem() { @@ -341,7 +344,7 @@ import 'flexStyles'; if (pageIds) { pageIds = pageIds.split('|'); - selected = -1 != pageIds.indexOf(currentViewId); + selected = pageIds.indexOf(currentViewId) != -1; } let pageUrls = link.getAttribute('data-pageurls'); @@ -563,7 +566,7 @@ import 'flexStyles'; const view = items[i]; list.push(view); - if ('livetv' == view.CollectionType) { + if (view.CollectionType == 'livetv') { view.ImageTags = {}; view.icon = 'live_tv'; const guideView = Object.assign({}, view); @@ -622,12 +625,10 @@ import 'flexStyles'; const icon = i.icon || imageHelper.getLibraryIcon(i.CollectionType); const itemId = i.Id; - const linkHtml = ` + return ` ${i.Name} `; - - return linkHtml; }).join(''); libraryMenuOptions.innerHTML = html; const elem = libraryMenuOptions; @@ -689,15 +690,15 @@ import 'flexStyles'; const lnkMediaFolder = elems[i]; const itemId = lnkMediaFolder.getAttribute('data-itemid'); - if (isChannelsPage && 'channels' === itemId) { + if (isChannelsPage && itemId === 'channels') { lnkMediaFolder.classList.add('navMenuOption-selected'); - } else if (isLiveTvPage && 'livetv' === itemId) { + } else if (isLiveTvPage && itemId === 'livetv') { lnkMediaFolder.classList.add('navMenuOption-selected'); - } else if (isEditorPage && 'editor' === itemId) { + } else if (isEditorPage && itemId === 'editor') { lnkMediaFolder.classList.add('navMenuOption-selected'); - } else if (isMySyncPage && 'manageoffline' === itemId && -1 != window.location.href.toString().indexOf('mode=download')) { + } else if (isMySyncPage && itemId === 'manageoffline' && window.location.href.toString().indexOf('mode=download') != -1) { lnkMediaFolder.classList.add('navMenuOption-selected'); - } else if (isMySyncPage && 'syncotherdevices' === itemId && -1 == window.location.href.toString().indexOf('mode=download')) { + } else if (isMySyncPage && itemId === 'syncotherdevices' && window.location.href.toString().indexOf('mode=download') == -1) { lnkMediaFolder.classList.add('navMenuOption-selected'); } else if (id && itemId == id) { lnkMediaFolder.classList.add('navMenuOption-selected'); @@ -771,7 +772,7 @@ import 'flexStyles'; } if (headerBackButton) { - if ('false' !== page.getAttribute('data-backbutton') && appRouter.canGoBack()) { + if (page.getAttribute('data-backbutton') !== 'false' && appRouter.canGoBack()) { headerBackButton.classList.remove('hide'); } else { headerBackButton.classList.add('hide'); @@ -879,11 +880,11 @@ import 'flexStyles'; } function setTitle (title) { - if (null == title) { + if (title == null) { return void LibraryMenu.setDefaultTitle(); } - if ('-' === title) { + if (title === '-') { title = ''; } @@ -940,7 +941,7 @@ import 'flexStyles'; } } - if ('library' !== currentDrawerType) { + if (currentDrawerType !== 'library') { refreshLibraryDrawer(); } } diff --git a/src/scripts/mouseManager.js b/src/scripts/mouseManager.js index 4fc174381a..40253fb91c 100644 --- a/src/scripts/mouseManager.js +++ b/src/scripts/mouseManager.js @@ -1,10 +1,15 @@ -define(['inputManager', 'focusManager', 'browser', 'layoutManager', 'events', 'dom'], function (inputManager, focusManager, browser, layoutManager, events, dom) { - 'use strict'; +import inputManager from 'inputManager'; +import focusManager from 'focusManager'; +import browser from 'browser'; +import layoutManager from 'layoutManager'; +import events from 'events'; +import dom from 'dom'; +/* eslint-disable indent */ - var self = {}; + const self = {}; - var lastMouseInputTime = new Date().getTime(); - var isMouseIdle; + let lastMouseInputTime = new Date().getTime(); + let isMouseIdle; function mouseIdleTime() { return new Date().getTime() - lastMouseInputTime; @@ -15,14 +20,14 @@ define(['inputManager', 'focusManager', 'browser', 'layoutManager', 'events', 'd } function removeIdleClasses() { - var classList = document.body.classList; + const classList = document.body.classList; classList.remove('mouseIdle'); classList.remove('mouseIdle-tv'); } function addIdleClasses() { - var classList = document.body.classList; + const classList = document.body.classList; classList.add('mouseIdle'); @@ -31,17 +36,33 @@ define(['inputManager', 'focusManager', 'browser', 'layoutManager', 'events', 'd } } - var lastPointerMoveData; + export function showCursor() { + if (isMouseIdle) { + isMouseIdle = false; + removeIdleClasses(); + events.trigger(self, 'mouseactive'); + } + } + + export function hideCursor() { + if (!isMouseIdle) { + isMouseIdle = true; + addIdleClasses(); + events.trigger(self, 'mouseidle'); + } + } + + let lastPointerMoveData; function onPointerMove(e) { - var eventX = e.screenX; - var eventY = e.screenY; + const eventX = e.screenX; + const eventY = e.screenY; // if coord don't exist how could it move if (typeof eventX === 'undefined' && typeof eventY === 'undefined') { return; } - var obj = lastPointerMoveData; + const obj = lastPointerMoveData; if (!obj) { lastPointerMoveData = { x: eventX, @@ -61,19 +82,15 @@ define(['inputManager', 'focusManager', 'browser', 'layoutManager', 'events', 'd lastMouseInputTime = new Date().getTime(); notifyApp(); - if (isMouseIdle) { - isMouseIdle = false; - removeIdleClasses(); - events.trigger(self, 'mouseactive'); - } + showCursor(); } function onPointerEnter(e) { - var pointerType = e.pointerType || (layoutManager.mobile ? 'touch' : 'mouse'); + const pointerType = e.pointerType || (layoutManager.mobile ? 'touch' : 'mouse'); if (pointerType === 'mouse') { if (!isMouseIdle) { - var parent = focusManager.focusableParent(e.target); + const parent = focusManager.focusableParent(e.target); if (parent) { focusManager.focus(parent); } @@ -99,13 +116,11 @@ define(['inputManager', 'focusManager', 'browser', 'layoutManager', 'events', 'd function onMouseInterval() { if (!isMouseIdle && mouseIdleTime() >= 5000) { - isMouseIdle = true; - addIdleClasses(); - events.trigger(self, 'mouseidle'); + hideCursor(); } } - var mouseInterval; + let mouseInterval; function startMouseInterval() { if (!mouseInterval) { mouseInterval = setInterval(onMouseInterval, 5000); @@ -113,7 +128,7 @@ define(['inputManager', 'focusManager', 'browser', 'layoutManager', 'events', 'd } function stopMouseInterval() { - var interval = mouseInterval; + const interval = mouseInterval; if (interval) { clearInterval(interval); @@ -157,5 +172,10 @@ define(['inputManager', 'focusManager', 'browser', 'layoutManager', 'events', 'd events.on(layoutManager, 'modechange', initMouse); - return self; -}); +/* eslint-enable indent */ + +export default { + hideCursor, + showCursor +}; + diff --git a/src/scripts/playlists.js b/src/scripts/playlists.js index 123d1c7859..bdfd155c55 100644 --- a/src/scripts/playlists.js +++ b/src/scripts/playlists.js @@ -60,7 +60,7 @@ export default function (view, params) { const viewStyle = getPageData(view).view; const itemsContainer = view.querySelector('.itemsContainer'); - if ('List' == viewStyle) { + if (viewStyle == 'List') { itemsContainer.classList.add('vertical-list'); itemsContainer.classList.remove('vertical-wrap'); } else { diff --git a/src/scripts/routes.js b/src/scripts/routes.js index 1d735e3018..4094a2552f 100644 --- a/src/scripts/routes.js +++ b/src/scripts/routes.js @@ -1,18 +1,21 @@ -define([ - 'jQuery', - 'emby-button', - 'emby-input', - 'scripts/livetvcomponents', - 'paper-icon-button-light', - 'emby-itemscontainer', - 'emby-collapse', - 'emby-select', - 'livetvcss', - 'emby-checkbox', - 'emby-slider', - 'listViewStyle', - 'dashboardcss', - 'detailtablecss'], function () { +import 'emby-button'; +import 'emby-input'; +import 'scripts/livetvcomponents'; +import 'paper-icon-button-light'; +import 'emby-itemscontainer'; +import 'emby-collapse'; +import 'emby-select'; +import 'livetvcss'; +import 'emby-checkbox'; +import 'emby-slider'; +import 'listViewStyle'; +import 'dashboardcss'; +import 'detailtablecss'; + +/* eslint-disable indent */ + + console.groupCollapsed('defining core routes'); + function defineRoute(newRoute) { var path = newRoute.alias ? newRoute.alias : newRoute.path; console.debug('defining route: ' + path); @@ -20,8 +23,6 @@ define([ Emby.Page.addRoute(path, newRoute); } - console.debug('defining core routes'); - defineRoute({ alias: '/addserver.html', path: '/controllers/session/addServer/index.html', @@ -30,6 +31,7 @@ define([ startup: true, controller: 'session/addServer/index' }); + defineRoute({ alias: '/selectserver.html', path: '/controllers/session/selectServer/index.html', @@ -39,6 +41,7 @@ define([ controller: 'session/selectServer/index', type: 'selectserver' }); + defineRoute({ alias: '/login.html', path: '/controllers/session/login/index.html', @@ -48,6 +51,7 @@ define([ controller: 'session/login/index', type: 'login' }); + defineRoute({ alias: '/forgotpassword.html', path: '/controllers/session/forgotPassword/index.html', @@ -55,6 +59,7 @@ define([ startup: true, controller: 'session/forgotPassword/index' }); + defineRoute({ alias: '/forgotpasswordpin.html', path: '/controllers/session/redeemPassword/index.html', @@ -68,42 +73,41 @@ define([ alias: '/mypreferencesmenu.html', path: '/controllers/user/menu/index.html', autoFocus: false, - transition: 'fade', controller: 'user/menu/index' }); + defineRoute({ alias: '/myprofile.html', path: '/controllers/user/profile/index.html', autoFocus: false, - transition: 'fade', controller: 'user/profile/index' }); + defineRoute({ alias: '/mypreferencesdisplay.html', path: '/controllers/user/display/index.html', autoFocus: false, - transition: 'fade', controller: 'user/display/index' }); + defineRoute({ alias: '/mypreferenceshome.html', path: '/controllers/user/home/index.html', autoFocus: false, - transition: 'fade', controller: 'user/home/index' }); + defineRoute({ alias: '/mypreferencesplayback.html', path: '/controllers/user/playback/index.html', autoFocus: false, - transition: 'fade', controller: 'user/playback/index' }); + defineRoute({ alias: '/mypreferencessubtitles.html', path: '/controllers/user/subtitles/index.html', autoFocus: false, - transition: 'fade', controller: 'user/subtitles/index' }); @@ -113,42 +117,49 @@ define([ roles: 'admin', controller: 'dashboard/dashboard' }); + defineRoute({ path: '/dashboardgeneral.html', controller: 'dashboard/general', autoFocus: false, roles: 'admin' }); + defineRoute({ path: '/networking.html', autoFocus: false, roles: 'admin', controller: 'dashboard/networking' }); + defineRoute({ path: '/devices.html', autoFocus: false, roles: 'admin', controller: 'dashboard/devices/devices' }); + defineRoute({ path: '/device.html', autoFocus: false, roles: 'admin', controller: 'dashboard/devices/device' }); + defineRoute({ path: '/dlnaprofile.html', autoFocus: false, roles: 'admin', controller: 'dashboard/dlna/profile' }); + defineRoute({ path: '/dlnaprofiles.html', autoFocus: false, roles: 'admin', controller: 'dashboard/dlna/profiles' }); + defineRoute({ alias: '/addplugin.html', path: '/controllers/dashboard/plugins/add/index.html', @@ -156,52 +167,61 @@ define([ roles: 'admin', controller: 'dashboard/plugins/add/index' }); + 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/settings' }); + defineRoute({ path: '/edititemmetadata.html', controller: 'edititemmetadata', autoFocus: false }); + defineRoute({ path: '/encodingsettings.html', autoFocus: false, 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({ alias: '/notificationsetting.html', path: '/controllers/dashboard/notifications/notification/index.html', @@ -209,6 +229,7 @@ define([ roles: 'admin', controller: 'dashboard/notifications/notification/index' }); + defineRoute({ alias: '/notificationsettings.html', path: '/controllers/dashboard/notifications/notifications/index.html', @@ -216,12 +237,14 @@ define([ autoFocus: false, roles: 'admin' }); + defineRoute({ path: '/playbackconfiguration.html', autoFocus: false, roles: 'admin', controller: 'dashboard/playback' }); + defineRoute({ alias: '/availableplugins.html', path: '/controllers/dashboard/plugins/available/index.html', @@ -229,6 +252,7 @@ define([ roles: 'admin', controller: 'dashboard/plugins/available/index' }); + defineRoute({ alias: '/repositories.html', path: '/controllers/dashboard/plugins/repositories/index.html', @@ -241,67 +265,72 @@ define([ path: '/home.html', autoFocus: false, controller: 'home', - transition: 'fade', type: 'home' }); + defineRoute({ path: '/search.html', controller: 'searchpage' }); + defineRoute({ path: '/list.html', autoFocus: false, - controller: 'list', - transition: 'fade' + controller: 'list' }); + defineRoute({ alias: '/details', path: '/controllers/itemDetails/index.html', controller: 'itemDetails/index', - autoFocus: false, - transition: 'fade' + autoFocus: false }); + defineRoute({ path: '/livetv.html', controller: 'livetv/livetvsuggested', - autoFocus: false, - transition: 'fade' + autoFocus: false }); + defineRoute({ path: '/livetvguideprovider.html', autoFocus: false, roles: 'admin', controller: 'livetvguideprovider' }); + defineRoute({ path: '/livetvsettings.html', autoFocus: false, controller: 'livetvsettings' }); + defineRoute({ path: '/livetvstatus.html', autoFocus: false, roles: 'admin', controller: 'livetvstatus' }); + defineRoute({ path: '/livetvtuner.html', autoFocus: false, roles: 'admin', controller: 'livetvtuner' }); + defineRoute({ path: '/movies.html', autoFocus: false, - controller: 'movies/moviesrecommended', - transition: 'fade' + controller: 'movies/moviesrecommended' }); + defineRoute({ path: '/music.html', controller: 'music/musicrecommended', - autoFocus: false, - transition: 'fade' + autoFocus: false }); + defineRoute({ alias: '/installedplugins.html', path: '/controllers/dashboard/plugins/installed/index.html', @@ -309,41 +338,46 @@ define([ roles: 'admin', controller: 'dashboard/plugins/installed/index' }); + defineRoute({ path: '/scheduledtask.html', autoFocus: false, roles: 'admin', controller: 'dashboard/scheduledtasks/scheduledtask' }); + defineRoute({ path: '/scheduledtasks.html', autoFocus: false, roles: 'admin', controller: 'dashboard/scheduledtasks/scheduledtasks' }); + defineRoute({ path: '/serveractivity.html', autoFocus: false, roles: 'admin', controller: 'dashboard/serveractivity' }); + defineRoute({ path: '/apikeys.html', autoFocus: false, roles: 'admin', controller: 'dashboard/apikeys' }); + defineRoute({ path: '/streamingsettings.html', autoFocus: false, roles: 'admin', controller: 'dashboard/streaming' }); + defineRoute({ path: '/tv.html', autoFocus: false, - controller: 'shows/tvrecommended', - transition: 'fade' + controller: 'shows/tvrecommended' }); defineRoute({ @@ -352,29 +386,34 @@ define([ roles: 'admin', controller: 'dashboard/users/useredit' }); + defineRoute({ path: '/userlibraryaccess.html', autoFocus: false, roles: 'admin', controller: 'dashboard/users/userlibraryaccess' }); + defineRoute({ path: '/usernew.html', autoFocus: false, roles: 'admin', controller: 'dashboard/users/usernew' }); + defineRoute({ path: '/userparentalcontrol.html', autoFocus: false, roles: 'admin', controller: 'dashboard/users/userparentalcontrol' }); + defineRoute({ path: '/userpassword.html', autoFocus: false, controller: 'dashboard/users/userpasswordpage' }); + defineRoute({ path: '/userprofiles.html', autoFocus: false, @@ -389,6 +428,7 @@ define([ anonymous: true, controller: 'wizard/remote/index' }); + defineRoute({ alias: '/wizardfinish.html', path: '/controllers/wizard/finish/index.html', @@ -396,12 +436,14 @@ define([ anonymous: true, controller: 'wizard/finish/index' }); + defineRoute({ path: '/wizardlibrary.html', autoFocus: false, anonymous: true, controller: 'dashboard/mediaLibrary' }); + defineRoute({ alias: '/wizardsettings.html', path: '/controllers/wizard/settings/index.html', @@ -409,6 +451,7 @@ define([ anonymous: true, controller: 'wizard/settings/index' }); + defineRoute({ alias: '/wizardstart.html', path: '/controllers/wizard/start/index.html', @@ -416,6 +459,7 @@ define([ anonymous: true, controller: 'wizard/start/index' }); + defineRoute({ alias: '/wizarduser.html', path: '/controllers/wizard/user/index.html', @@ -427,7 +471,6 @@ define([ defineRoute({ alias: '/video', path: '/controllers/playback/video/index.html', - transition: 'fade', controller: 'playback/video/index', autoFocus: false, type: 'video-osd', @@ -435,16 +478,17 @@ define([ fullscreen: true, enableMediaControl: false }); + defineRoute({ alias: '/queue', path: '/controllers/playback/queue/index.html', controller: 'playback/queue/index', autoFocus: false, - transition: 'fade', fullscreen: true, supportsThemeMedia: true, enableMediaControl: false }); + defineRoute({ path: '/configurationpage', autoFocus: false, @@ -458,9 +502,13 @@ define([ isDefaultRoute: true, autoFocus: false }); + defineRoute({ path: '/index.html', autoFocus: false, isDefaultRoute: true }); -}); + + console.groupEnd('defining core routes'); + +/* eslint-enable indent */ diff --git a/src/scripts/serverNotifications.js b/src/scripts/serverNotifications.js index 331a75329c..e5fb0bcd61 100644 --- a/src/scripts/serverNotifications.js +++ b/src/scripts/serverNotifications.js @@ -1,6 +1,8 @@ define(['connectionManager', 'playbackManager', 'syncPlayManager', 'events', 'inputManager', 'focusManager', 'appRouter'], function (connectionManager, playbackManager, syncPlayManager, events, inputManager, focusManager, appRouter) { 'use strict'; + playbackManager = playbackManager.default || playbackManager; + var serverNotifications = {}; function notifyApp() { diff --git a/src/scripts/settings/appSettings.js b/src/scripts/settings/appSettings.js index ffd63b9561..ded62c94ae 100644 --- a/src/scripts/settings/appSettings.js +++ b/src/scripts/settings/appSettings.js @@ -80,43 +80,6 @@ import events from 'events'; return val ? parseInt(val) : null; } - export function syncOnlyOnWifi(val) { - if (val !== undefined) { - this.set('syncOnlyOnWifi', val.toString()); - } - - return this.get('syncOnlyOnWifi') !== 'false'; - } - - export function syncPath(val) { - if (val !== undefined) { - this.set('syncPath', val); - } - - return this.get('syncPath'); - } - - export function cameraUploadServers(val) { - if (val !== undefined) { - this.set('cameraUploadServers', val.join(',')); - } - - val = this.get('cameraUploadServers'); - if (val) { - return val.split(','); - } - - return []; - } - - export function runAtStartup(val) { - if (val !== undefined) { - this.set('runatstartup', val.toString()); - } - - return this.get('runatstartup') === 'true'; - } - export function set(name, value, userId) { const currentValue = this.get(name, userId); appStorage.setItem(getKey(name, userId), value); @@ -139,10 +102,6 @@ export default { maxStreamingBitrate: maxStreamingBitrate, maxStaticMusicBitrate: maxStaticMusicBitrate, maxChromecastBitrate: maxChromecastBitrate, - syncOnlyOnWifi: syncOnlyOnWifi, - syncPath: syncPath, - cameraUploadServers: cameraUploadServers, - runAtStartup: runAtStartup, set: set, get: get }; diff --git a/src/scripts/settings/webSettings.js b/src/scripts/settings/webSettings.js index 64989b4fc2..800b56ec7c 100644 --- a/src/scripts/settings/webSettings.js +++ b/src/scripts/settings/webSettings.js @@ -18,7 +18,7 @@ function getDefaultConfig() { }); } -export function enableMultiServer() { +export function getMultiServer() { return getConfig().then(config => { return config.multiserver; }).catch(error => { @@ -26,3 +26,21 @@ export function enableMultiServer() { return false; }); } + +export function getThemes() { + return getConfig().then(config => { + return config.themes; + }).catch(error => { + console.log('cannot get web config:', error); + return []; + }); +} + +export function getPlugins() { + return getConfig().then(config => { + return config.plugins; + }).catch(error => { + console.log('cannot get web config:', error); + return []; + }); +} diff --git a/src/scripts/site.js b/src/scripts/site.js index 2beb45959a..604f9c7bab 100644 --- a/src/scripts/site.js +++ b/src/scripts/site.js @@ -6,7 +6,7 @@ function getWindowLocationSearch(win) { if (!search) { var index = window.location.href.indexOf('?'); - if (-1 != index) { + if (index != -1) { search = window.location.href.substring(index); } } @@ -22,7 +22,7 @@ window.getParameterByName = function (name, url) { var regex = new RegExp(regexS, 'i'); var results = regex.exec(url || getWindowLocationSearch()); - if (null == results) { + if (results == null) { return ''; } @@ -73,7 +73,7 @@ var Dashboard = { var urlLower = window.location.href.toLowerCase(); var index = urlLower.lastIndexOf('/web'); - if (-1 != index) { + if (index != -1) { return urlLower.substring(0, index); } @@ -152,13 +152,13 @@ var Dashboard = { processPluginConfigurationUpdateResult: function () { require(['loading', 'toast'], function (loading, toast) { loading.hide(); - toast(Globalize.translate('MessageSettingsSaved')); + toast.default(Globalize.translate('MessageSettingsSaved')); }); }, processServerConfigurationUpdateResult: function (result) { require(['loading', 'toast'], function (loading, toast) { loading.hide(); - toast(Globalize.translate('MessageSettingsSaved')); + toast.default(Globalize.translate('MessageSettingsSaved')); }); }, processErrorResponse: function (response) { @@ -178,9 +178,9 @@ var Dashboard = { }); }, alert: function (options) { - if ('string' == typeof options) { + if (typeof options == 'string') { return void require(['toast'], function (toast) { - toast({ + toast.default({ text: options }); }); @@ -197,7 +197,7 @@ var Dashboard = { var capabilities = { PlayableMediaTypes: ['Audio', 'Video'], SupportedCommands: ['MoveUp', 'MoveDown', 'MoveLeft', 'MoveRight', 'PageUp', 'PageDown', 'PreviousLetter', 'NextLetter', 'ToggleOsd', 'ToggleContextMenu', 'Select', 'Back', 'SendKey', 'SendString', 'GoHome', 'GoToSettings', 'VolumeUp', 'VolumeDown', 'Mute', 'Unmute', 'ToggleMute', 'SetVolume', 'SetAudioStreamIndex', 'SetSubtitleStreamIndex', 'DisplayContent', 'GoToSearch', 'DisplayMessage', 'SetRepeatMode', 'SetShuffleQueue', 'ChannelUp', 'ChannelDown', 'PlayMediaSource', 'PlayTrailers'], - SupportsPersistentIdentifier: 'cordova' === self.appMode || 'android' === self.appMode, + SupportsPersistentIdentifier: self.appMode === 'cordova' || self.appMode === 'android', SupportsMediaControl: true }; appHost.getPushTokenInfo(); @@ -452,8 +452,8 @@ function initClient() { } function onGlobalizeInit(browser, globalize) { - if ('android' === self.appMode) { - if (-1 !== self.location.href.toString().toLowerCase().indexOf('start=backgroundsync')) { + if (self.appMode === 'android') { + if (self.location.href.toString().toLowerCase().indexOf('start=backgroundsync') !== -1) { return onAppReady(browser); } } @@ -477,36 +477,30 @@ function initClient() { function loadPlugins(appHost, browser, shell) { console.debug('loading installed plugins'); - var list = [ - 'plugins/playAccessValidation/plugin', - 'plugins/experimentalWarnings/plugin', - 'plugins/htmlAudioPlayer/plugin', - 'plugins/htmlVideoPlayer/plugin', - 'plugins/photoPlayer/plugin', - 'plugins/bookPlayer/plugin', - 'plugins/youtubePlayer/plugin', - 'plugins/backdropScreensaver/plugin', - 'plugins/logoScreensaver/plugin' - ]; - - if (appHost.supports('remotecontrol')) { - list.push('plugins/sessionPlayer/plugin'); - - if (browser.chrome || browser.edgeChromium || browser.opera) { - list.push('plugins/chromecastPlayer/plugin'); - } - } - - if (window.NativeShell) { - list = list.concat(window.NativeShell.getPlugins()); - } - return new Promise(function (resolve, reject) { - Promise.all(list.map(loadPlugin)).then(function () { - require(['packageManager'], function (packageManager) { - packageManager.init().then(resolve, reject); + require(['webSettings'], function (webSettings) { + webSettings.getPlugins().then(function (list) { + // these two plugins are dependent on features + if (!appHost.supports('remotecontrol')) { + list.splice(list.indexOf('sessionPlayer'), 1); + + if (!browser.chrome && !browser.opera) { + list.splice(list.indexOf('chromecastPlayer', 1)); + } + } + + // add any native plugins + if (window.NativeShell) { + list = list.concat(window.NativeShell.getPlugins()); + } + + Promise.all(list.map(loadPlugin)).then(function () { + require(['packageManager'], function (packageManager) { + packageManager.init().then(resolve, reject); + }); + }, reject); }); - }, reject); + }); }); } @@ -532,7 +526,7 @@ function initClient() { window.Emby.Page = appRouter; - require(['emby-button', 'scripts/themeLoader', 'libraryMenu', 'scripts/routes'], function () { + require(['emby-button', 'scripts/autoThemes', 'libraryMenu', 'scripts/routes'], function () { Emby.Page.start({ click: false, hashbang: true @@ -653,8 +647,7 @@ function initClient() { nowPlayingHelper: componentsPath + '/playback/nowplayinghelper', pluginManager: componentsPath + '/pluginManager', packageManager: componentsPath + '/packageManager', - screensaverManager: componentsPath + '/screensavermanager', - chromecastHelper: 'plugins/chromecastPlayer/chromecastHelpers' + screensaverManager: componentsPath + '/screensavermanager' }; requirejs.onError = onRequireJsError; @@ -848,7 +841,7 @@ function initClient() { define('viewContainer', [componentsPath + '/viewContainer'], returnFirstDependency); define('dialogHelper', [componentsPath + '/dialogHelper/dialogHelper'], returnFirstDependency); define('serverNotifications', [scriptsPath + '/serverNotifications'], returnFirstDependency); - define('skinManager', [componentsPath + '/skinManager'], returnFirstDependency); + define('skinManager', [scriptsPath + '/themeManager'], returnFirstDependency); define('keyboardnavigation', [scriptsPath + '/keyboardNavigation'], returnFirstDependency); define('mouseManager', [scriptsPath + '/mouseManager'], returnFirstDependency); define('scrollManager', [componentsPath + '/scrollManager'], returnFirstDependency); @@ -863,7 +856,7 @@ function initClient() { }); define('appRouter', [componentsPath + '/appRouter', 'itemHelper'], function (appRouter, itemHelper) { function showItem(item, serverId, options) { - if ('string' == typeof item) { + if (typeof item == 'string') { require(['connectionManager'], function (connectionManager) { var apiClient = connectionManager.currentApiClient(); apiClient.getItem(apiClient.getCurrentUserId(), item).then(function (item) { @@ -871,7 +864,7 @@ function initClient() { }); }); } else { - if (2 == arguments.length) { + if (arguments.length == 2) { options = arguments[1]; } @@ -953,27 +946,27 @@ function initClient() { var itemType = item.Type || (options ? options.itemType : null); var serverId = item.ServerId || options.serverId; - if ('settings' === item) { + if (item === 'settings') { return 'mypreferencesmenu.html'; } - if ('wizard' === item) { + if (item === 'wizard') { return 'wizardstart.html'; } - if ('manageserver' === item) { + if (item === 'manageserver') { return 'dashboard.html'; } - if ('recordedtv' === item) { + if (item === 'recordedtv') { return 'livetv.html?tab=3&serverId=' + options.serverId; } - if ('nextup' === item) { + if (item === 'nextup') { return 'list.html?type=nextup&serverId=' + options.serverId; } - if ('list' === item) { + if (item === 'list') { var url = 'list.html?serverId=' + options.serverId + '&type=' + options.itemTypes; if (options.isFavorite) { @@ -983,61 +976,61 @@ function initClient() { return url; } - if ('livetv' === item) { - if ('programs' === options.section) { + if (item === 'livetv') { + if (options.section === 'programs') { return 'livetv.html?tab=0&serverId=' + options.serverId; } - if ('guide' === options.section) { + if (options.section === 'guide') { return 'livetv.html?tab=1&serverId=' + options.serverId; } - if ('movies' === options.section) { + if (options.section === 'movies') { return 'list.html?type=Programs&IsMovie=true&serverId=' + options.serverId; } - if ('shows' === options.section) { + if (options.section === 'shows') { return 'list.html?type=Programs&IsSeries=true&IsMovie=false&IsNews=false&serverId=' + options.serverId; } - if ('sports' === options.section) { + if (options.section === 'sports') { return 'list.html?type=Programs&IsSports=true&serverId=' + options.serverId; } - if ('kids' === options.section) { + if (options.section === 'kids') { return 'list.html?type=Programs&IsKids=true&serverId=' + options.serverId; } - if ('news' === options.section) { + if (options.section === 'news') { return 'list.html?type=Programs&IsNews=true&serverId=' + options.serverId; } - if ('onnow' === options.section) { + if (options.section === 'onnow') { return 'list.html?type=Programs&IsAiring=true&serverId=' + options.serverId; } - if ('dvrschedule' === options.section) { + if (options.section === 'dvrschedule') { return 'livetv.html?tab=4&serverId=' + options.serverId; } - if ('seriesrecording' === options.section) { + if (options.section === 'seriesrecording') { return 'livetv.html?tab=5&serverId=' + options.serverId; } return 'livetv.html?serverId=' + options.serverId; } - if ('SeriesTimer' == itemType) { + if (itemType == 'SeriesTimer') { return 'details?seriesTimerId=' + id + '&serverId=' + serverId; } - if ('livetv' == item.CollectionType) { + if (item.CollectionType == 'livetv') { return 'livetv.html'; } - if ('Genre' === item.Type) { + if (item.Type === 'Genre') { url = 'list.html?genreId=' + item.Id + '&serverId=' + serverId; - if ('livetv' === context) { + if (context === 'livetv') { url += '&type=Programs'; } @@ -1048,7 +1041,7 @@ function initClient() { return url; } - if ('MusicGenre' === item.Type) { + if (item.Type === 'MusicGenre') { url = 'list.html?musicGenreId=' + item.Id + '&serverId=' + serverId; if (options.parentId) { @@ -1058,7 +1051,7 @@ function initClient() { return url; } - if ('Studio' === item.Type) { + if (item.Type === 'Studio') { url = 'list.html?studioId=' + item.Id + '&serverId=' + serverId; if (options.parentId) { @@ -1068,28 +1061,28 @@ function initClient() { return url; } - if ('folders' !== context && !itemHelper.isLocalItem(item)) { - if ('movies' == item.CollectionType) { + if (context !== 'folders' && !itemHelper.isLocalItem(item)) { + if (item.CollectionType == 'movies') { url = 'movies.html?topParentId=' + item.Id; - if (options && 'latest' === options.section) { + if (options && options.section === 'latest') { url += '&tab=1'; } return url; } - if ('tvshows' == item.CollectionType) { + if (item.CollectionType == 'tvshows') { url = 'tv.html?topParentId=' + item.Id; - if (options && 'latest' === options.section) { + if (options && options.section === 'latest') { url += '&tab=2'; } return url; } - if ('music' == item.CollectionType) { + if (item.CollectionType == 'music') { return 'music.html?topParentId=' + item.Id; } } @@ -1102,7 +1095,7 @@ function initClient() { var contextSuffix = context ? '&context=' + context : ''; - if ('Series' == itemType || 'Season' == itemType || 'Episode' == itemType) { + if (itemType == 'Series' || itemType == 'Season' || itemType == 'Episode') { return 'details?id=' + id + contextSuffix + '&serverId=' + serverId; } diff --git a/src/scripts/themeLoader.js b/src/scripts/themeLoader.js deleted file mode 100644 index 3a3a60e565..0000000000 --- a/src/scripts/themeLoader.js +++ /dev/null @@ -1,29 +0,0 @@ -import * as userSettings from 'userSettings'; -import skinManager from 'skinManager'; -import connectionManager from 'connectionManager'; -import events from 'events'; - -var currentViewType; -pageClassOn('viewbeforeshow', 'page', function () { - var classList = this.classList; - var viewType = classList.contains('type-interior') || classList.contains('wizardPage') ? 'a' : 'b'; - - if (viewType !== currentViewType) { - currentViewType = viewType; - var theme; - var context; - - if ('a' === viewType) { - theme = userSettings.dashboardTheme(); - context = 'serverdashboard'; - } else { - theme = userSettings.theme(); - } - - skinManager.setTheme(theme, context); - } -}); - -events.on(connectionManager, 'localusersignedin', function (e, user) { - currentViewType = null; -}); diff --git a/src/scripts/themeManager.js b/src/scripts/themeManager.js new file mode 100644 index 0000000000..d61e9ef67e --- /dev/null +++ b/src/scripts/themeManager.js @@ -0,0 +1,66 @@ +import * as webSettings from 'webSettings'; + +var themeStyleElement; +var currentThemeId; + +function unloadTheme() { + var elem = themeStyleElement; + if (elem) { + elem.parentNode.removeChild(elem); + themeStyleElement = null; + currentThemeId = null; + } +} + +function getThemes() { + return webSettings.getThemes(); +} + +function getThemeStylesheetInfo(id) { + return getThemes().then(themes => { + var theme = themes.find(theme => { + return id ? theme.id === id : theme.default; + }); + + return { + stylesheetPath: 'themes/' + theme.id + '/theme.css', + themeId: theme.id + }; + }); +} + +function setTheme(id) { + return new Promise(function (resolve, reject) { + if (currentThemeId && currentThemeId === id) { + resolve(); + return; + } + + getThemeStylesheetInfo(id).then(function (info) { + if (currentThemeId && currentThemeId === info.themeId) { + resolve(); + return; + } + + var linkUrl = info.stylesheetPath; + unloadTheme(); + + var link = document.createElement('link'); + link.setAttribute('rel', 'stylesheet'); + link.setAttribute('type', 'text/css'); + link.onload = function () { + resolve(); + }; + + link.setAttribute('href', linkUrl); + document.head.appendChild(link); + themeStyleElement = link; + currentThemeId = info.themeId; + }); + }); +} + +export default { + getThemes: getThemes, + setTheme: setTheme +}; diff --git a/src/strings/af.json b/src/strings/af.json index 5c4e13dc7c..3b82f0363c 100644 --- a/src/strings/af.json +++ b/src/strings/af.json @@ -36,7 +36,6 @@ "AddToPlaylist": "Voeg by speellys", "AddToPlayQueue": "Plaas in wagtou", "AddToCollection": "Voeg by versameling", - "AddItemToCollectionHelp": "Voeg items by die versamelings deur hulle te soek en regs-kliek of kliek kieslys om hulle by versameling te voeg.", "Add": "Voeg by", "Actor": "Akteur", "AccessRestrictedTryAgainLater": "Toegang is beperk. Probeer weer later .", @@ -83,9 +82,7 @@ "Wednesday": "Woensdag", "Watched": "Gekyk", "ViewPlaybackInfo": "Beskou terugspeel inligting", - "ViewArtist": "Beskou kunstenaar", "ViewAlbum": "Beskou album", - "VideoRange": "Video reekse", "Vertical": "Vertikaal", "ValueVideoCodec": "Video Kodek: {0}", "ValueTimeLimitSingleHour": "Tyd limiet: 1 uur", @@ -113,7 +110,7 @@ "Up": "Op", "Unplayed": "Ongespeel", "Unmute": "Ontstom", - "UninstallPluginHeader": "Oninstalleer Plugin", + "HeaderUninstallPlugin": "Oninstalleer Plugin", "UninstallPluginConfirmation": "Is jy seker jy wil voortgaan met die oninstallasie {0}?", "Uniform": "Uniform", "TvLibraryHelp": "Hersien die {0}TV benamings gids{1}.", @@ -150,7 +147,6 @@ "TabProfiles": "Profiele", "TabProfile": "Profiel", "TabPlaylists": "Speel lyste", - "TabPlaylist": "Speel lys", "TabPlayback": "Terugspeel", "TabPassword": "Wagwoord", "TabParentalControl": "Ouer Beheer", diff --git a/src/strings/ar.json b/src/strings/ar.json index b069301f92..a9d3d2de41 100644 --- a/src/strings/ar.json +++ b/src/strings/ar.json @@ -1,5 +1,4 @@ { - "AddItemToCollectionHelp": "أضف عناصر إلى المجاميع بالبحث عنهم واستخدام قائمة الزر الأيمن أو قئامة اللمس لإضافتهم إلى المجاميع.", "AdditionalNotificationServices": "تصفح كتالوج الملحقات لتثبيث خدمات إشعارات إضافية.", "Alerts": "التنبيهات", "All": "الكل", @@ -11,7 +10,7 @@ "BirthDateValue": "وُلد: {0}", "BirthPlaceValue": "مكان الميلاد: {0}", "Browse": "تصفح", - "BrowsePluginCatalogMessage": "تصفح قائمتنا للملحق لترى المتوفر من الملاحق.", + "MessageBrowsePluginCatalog": "تصفح قائمتنا للملحق لترى المتوفر من الملاحق.", "ButtonAdd": "إضافة", "ButtonAddMediaLibrary": "إضافة مكتبة وسائط", "ButtonAddScheduledTaskTrigger": "إضافة زناد", @@ -40,7 +39,6 @@ "ButtonHelp": "المساعدة", "ButtonHome": "الرئيسية", "ButtonInfo": "معلومات", - "ButtonLearnMore": "إعرف المزيد", "ButtonLibraryAccess": "صلاحيات المكتبة", "ButtonManualLogin": "الدخول اليدوي", "ButtonMore": "المزيد", @@ -85,14 +83,13 @@ "ButtonTrailer": "العرض الإعلاني", "ButtonUninstall": "إزالة التثبيت", "ButtonUp": "أعلى", - "ButtonViewWebsite": "أنظر الموقع الإلكتروني", "ButtonWebsite": "موقع إلكتروني", "ChannelAccessHelp": "إختر قناة لمشاركتها مع هذا المستخدم. المدراء سيكونون قادرين على تغيير إعدادات القنوات باستخدام مدير واصفات البيانات.", "Channels": "القنوات", "CinemaModeConfigurationHelp": "الطور السينمائي يوفر أجواء سينمائية إلى قلب صالتك مع إمكانية تشغيل عروض إعلانية لأفلام أخرى وعرض مقدمات أخرى من انتقاءاتك قبل تشغيل الفيلم الرئيسي.", "CustomDlnaProfilesHelp": "إنشاء عرائض مخصوصه تستهدف جهازاً جديداً أو يمتطي حساباً نظامياً.", "DeathDateValue": "توفي: {0}", - "DefaultErrorMessage": "كان هناك خطأ في معالجة الطلب. الرجاء المحاولة لاحقاً.", + "ErrorDefault": "كان هناك خطأ في معالجة الطلب. الرجاء المحاولة لاحقاً.", "Delete": "حذف", "DeleteDeviceConfirmation": "هل أنت متأكد أنك تريد حذف هذا الجهاز؟ سيظهر الجهاز من جديد في المرة القادمة التي يسجل فها مستخدم دخوله عبره.", "DeleteImage": "حذف صورة", @@ -110,7 +107,7 @@ "ErrorAddingTunerDevice": "كان هناك خطأ في إضافة جهاز المولف. الرجاء التأكد من صلاحية الوصول إليه ثم عاود المحاولة.", "ErrorAddingXmlTvFile": "كان هناك خطأ في محاولة الوصول إلى ملف XMLTV. الرجاء التأكد من وجود الملف ثم حاول مرة أخرى.", "ErrorGettingTvLineups": "كان هناك خطأ في إنزال اصطفافات التلفاز. الرجاء التأكد من أن بياناتك صحيحة ثم عاود المحاولة.", - "ErrorMessageStartHourGreaterThanEnd": "وقت النهاية يجب أن يكون أكبر من وقت البداية.", + "ErrorStartHourGreaterThanEnd": "وقت النهاية يجب أن يكون أكبر من وقت البداية.", "ErrorPleaseSelectLineup": "الرجاء اختيار اصطفاف ثم المحاولة مرة أخرى. إن لم تتوفر أية اصطفافات، فالرجاء التأكد من اسم المستخدم وكلمة المرور الخاصة بك، وتأكد من صحة رمزك البريدي.", "ErrorSavingTvProvider": "كان هناك خطأ في حفظ مزود التلفزة. الرجاء التأكد من صلاحية الوصول إليه ثم عاود المحاولة.", "ExitFullscreen": "الخروج من الشاشة الكاملة", @@ -151,7 +148,6 @@ "HeaderApiKeysHelp": "التطبيقات الخارجية تحتاج أن تمتلك مفتاح api لكي تتصل بخادم أمبي. هذه المفاتيح تُصدر عن طريق تسجيل الدخول بحساب أمبي، أو عن طريق منح التطبيق مفتاحاً أصدر يدوياً.", "HeaderApp": "التطبيق", "HeaderAudioSettings": "إعدادات الصوت", - "HeaderAutomaticUpdates": "التحديثات الآلية", "HeaderBooks": "الكتب", "HeaderBranding": "وسومات البرنامج", "HeaderCastAndCrew": "الممثلين وطاقم العمل", @@ -313,8 +309,6 @@ "LabelAlbumArtists": "فنانو الألبومات:", "LabelAll": "الجميع", "LabelAllowHWTranscoding": "السماح بالتشفير البيني بعتاد الحاسب", - "LabelAllowServerAutoRestart": "السماح للخادم أن يعيد التشغيل آلياً لتفعيل التحديثات", - "LabelAllowServerAutoRestartHelp": "الخادم سيعيد التشغيل في فترات الركود فقط، حين لا يكون هناك أي مستخدمين متصلين.", "LabelAppName": "اسم التطبيق", "LabelAppNameExample": "مثال: Sickbeard، NzbDrone", "LabelArtists": "الفنانون:", @@ -548,12 +542,10 @@ "LabelVaapiDeviceHelp": "هذه هي عقدة التصيير التي ستستخدم من قبل التسريع بعتاد الحاسوب.", "LabelValue": "القيمة:", "LabelVersionInstalled": "{0} مثبتة", - "LabelVersionNumber": "الإصدار {0}", "LabelXDlnaCap": "سقف X-Dlna:", "LabelXDlnaCapHelp": "تحدد محتوى عنصر X_DLNACAP في النطاق الاسمي لـ urn:schemas-dlna-org:device-1-0 .", "LabelXDlnaDoc": "وثيقة X-Dlna:", "LabelXDlnaDocHelp": "تحدد محتوى عنصر X_DLNADOC في النطاق الاسمي لـ urn:schemas-dlna-org:device-1-0 .", - "LabelYourFirstName": "الإسم الاول:", "LabelYoureDone": "تم الانتهاء!", "LabelZipCode": "الرمز البريدي:", "LabelffmpegPath": "مسار ffmpeg:", @@ -599,13 +591,11 @@ "MessageCreateAccountAt": "أنشئ حساب في {0}", "MessageDeleteTaskTrigger": "هل أنت متأكد أنك تريد حذف زناد المهمة؟", "MessageDirectoryPickerBSDInstruction": "من أجل BSD، يمكنك أن تضبط إعدادات التخزين دخال حساب FreeNAS Jail الخاص بك لكي يتمكن أمبي أن يتصل به.", - "MessageDirectoryPickerInstruction": "يمكن إدخال مسارات الشبكة يدوياً في حال أن زر الشبكة يخفق في اكتشاف أجهزتك. على سبيل المثال، {0} أو {1}.", "MessageDirectoryPickerLinuxInstruction": "من أجل أنظمة التشغيل التالية: Linux أو Arch Linux أو CentOS أو Debian أو Fedora أو openSUSE أو Ubuntu، يجب أن تمنح المستخدم النظامي صلاحية القراءة ليتمكن من الوصول إلى أماكن التخزين.", "MessageEnablingOptionLongerScans": "قد يؤدي تمكين هذا الخيار إلى إبطاء البحث في المكتبات بشكل ملحوظ.", "MessageFileReadError": "حصل خطأ أثناء قراءة الملف. الرجاء المحاولة مرة اخرى.", "MessageForgotPasswordFileCreated": "الملف التالي قد أنشيء على خادمك وهو يحتوي على التوجيهات لكيفية البدء:", "MessageForgotPasswordInNetworkRequired": "الرجاء المحاولة من خلال شبكة المنزل لبدء عملية إعادة إعداد كملة السر.", - "MessageInstallPluginFromApp": "هذا الملحق يجب أن يثبت من داخل التطبيق الذي تريد استخدامه بداخله.", "MessageInvalidForgotPasswordPin": "لقد تم إدخال رمز شخصي غير صحيح أو منتهي الصلاحية. الرجاء المحاولة مرة أخرى.", "MessageInvalidUser": "اسم المستخدم أو كلمة السر غير صحيحة. الرجاء المحاولة مرة أخرى.", "MessageItemSaved": "تم حفظ العنصر.", @@ -634,8 +624,8 @@ "MoreUsersCanBeAddedLater": "يمكن اضافة المستخدمين لاحقا من لوحة العدادات.", "Mute": "صامت", "NextUp": "التالي", - "NoNextUpItemsMessage": "لم يتم ايجاد شيء، إبدأ بمشاهدة برامجك!", - "NoPluginConfigurationMessage": "هذا الملحق ليس له إعدادات تضبط.", + "MessageNoNextUpItems": "لم يتم ايجاد شيء، إبدأ بمشاهدة برامجك!", + "MessageNoPluginConfiguration": "هذا الملحق ليس له إعدادات تضبط.", "NumLocationsValue": "{0} مجلد(ات)", "Option3D": "ثلاثي أبعاد", "OptionAdminUsers": "المدراء", @@ -774,7 +764,7 @@ "PasswordMatchError": "كلمة السر وتاكيدها يجب ان يتطابقان.", "PasswordResetComplete": "لقد تم اعادة تعيين كلمة السر.", "PasswordResetConfirmation": "هل انت متاكد من انك تريد اعادة تعيين كلمة السر؟", - "PasswordResetHeader": "إعادة تهيئة كلمة السر", + "HeaderResetPassword": "إعادة تهيئة كلمة السر", "PasswordSaved": "تم حفظ كلمة السر.", "PictureInPicture": "صورة داخل صورة", "PinCodeResetComplete": "تمت إعادة تهيئة الرمز الشخصي", @@ -785,7 +775,7 @@ "RecommendationBecauseYouWatched": "لأنك شاهدت {0}", "RecommendationDirectedBy": "إخراج {0}", "RecommendationStarring": "بطولة {0}", - "RecordingPathChangeMessage": "إن تغيير مجلد التسجيل لم يهجّر التسجيلات الموجودة من الموقع القديم إلى الموقع الجديد. سيتعين عليك أن تنقلهم بنفسك لو شئت.", + "MessageChangeRecordingPath": "إن تغيير مجلد التسجيل لم يهجّر التسجيلات الموجودة من الموقع القديم إلى الموقع الجديد. سيتعين عليك أن تنقلهم بنفسك لو شئت.", "RememberMe": "تذكرني", "Rewind": "الترجيع", "Saturday": "السبت", @@ -836,7 +826,6 @@ "TabParentalControl": "التحكم الأبوي", "TabPassword": "كلمة السر", "TabPlayback": "تشغيل", - "TabPlaylist": "قائمة التشغيل", "TabPlaylists": "قوائم التشغيل", "TabPlugins": "الملحقات", "TabProfile": "عريضة", @@ -864,7 +853,7 @@ "TitlePlayback": "تشغيل", "Tuesday": "الثلاثاء", "UninstallPluginConfirmation": "هل انت متاكد انك تريد إزالة تثبيت {0}؟", - "UninstallPluginHeader": "الغاء الملحق", + "HeaderUninstallPlugin": "الغاء الملحق", "Unmute": "غير صامت", "UserProfilesIntro": "إمبي يتضمن الدعم التلقائي حسابات المستخدمين، ما يتيح لكل مستخدم أن يحفظ إعدادات العرض الخاصة وحالات تشغيل الوسائط وخواص الرقابة الأبوية.", "ValueAlbumCount": "{0} ألبومـ(ات)", @@ -940,7 +929,6 @@ "Banner": "بانر", "Backdrops": "خلفيات متغيرة للصفحة", "Backdrop": "خلفية متغيرة للصفحة", - "AutoBasedOnLanguageSetting": "تلقائي ( بناءً على إعدادات اللغة)", "Auto": "تلقائي", "AuthProviderHelp": "حدد مقدم المصادقات ليتم استخدامه لمصادقة كلمة مرور هذا المستخدم.", "AroundTime": "حول", @@ -999,7 +987,6 @@ "MediaInfoStreamTypeEmbeddedImage": "الصورة المضمنة", "MediaInfoStreamTypeData": "البيانات", "MediaInfoStreamTypeAudio": "الصوت", - "MediaInfoSoftware": "البرمجيات", "MediaIsBeingConverted": "يتم تحويل الوسط الى صيغة متوافقة مع الحهاز الذي يشغل الوسط.", "MediaInfoStreamTypeVideo": "فيديو", "ContinueWatching": "اكمل المشاهدة", @@ -1061,7 +1048,6 @@ "DefaultSubtitlesHelp": "يتم تحميل الترجمات استنادًا إلى العلامات الافتراضية والقسرية في البيانات الوصفية المضمنة. سيتم اعتبار تفضيلات اللغة عند توفر خيارات متعددة.", "DefaultMetadataLangaugeDescription": "هذه هي إعداداتك الافتراضية ويمكن تخصيصها على أساس كل مكتبة.", "Default": "افتراضي", - "CopyStreamURLError": "توجد مشكله في نسخ الرابط", "CopyStreamURL": "نسخ عنوان الرابط", "Continuing": "مستمر", "CopyStreamURLSuccess": "URL copied successfully.", diff --git a/src/strings/be-by.json b/src/strings/be-by.json index 28cf51bcde..e8726bf216 100644 --- a/src/strings/be-by.json +++ b/src/strings/be-by.json @@ -11,10 +11,8 @@ "LabelFinish": "Гатова", "LabelNext": "Наступнае", "LabelPrevious": "Папярэдняе", - "LabelYourFirstName": "Ваша імя:", "LabelYoureDone": "Вы скончылі!", "MoreUsersCanBeAddedLater": "Потым можна дадаць яшчэ карыстальнікаў праз «Інфапанэль».", - "TabPlaylist": "Плэйліст", "TellUsAboutYourself": "Раскажыце пра сябе", "ThisWizardWillGuideYou": "Гэты памочнік правядзе вас праз усе фазы ўстаноўкі і налады. Спачатку абярыце упадабаную мову.", "UserProfilesIntro": "У Jellyfin існуе ўбудаваная падтрымка для карыстальніцкіх профіляў, дазваляючы кожнаму карыстальніку валодаць сваімі ўласнымі параметрамі адлюстравання, станам прайгравання і кіраваннем ўтрымання.", diff --git a/src/strings/bg-bg.json b/src/strings/bg-bg.json index 619ccbe825..6eee5e403b 100644 --- a/src/strings/bg-bg.json +++ b/src/strings/bg-bg.json @@ -14,7 +14,6 @@ "AttributeNew": "Нови", "Audio": "Звук", "Auto": "Автоматично", - "AutoBasedOnLanguageSetting": "Автоматично (според езика)", "Backdrop": "Фон", "Backdrops": "Фонове", "BirthDateValue": "Роден/а на: {0}", @@ -45,7 +44,6 @@ "ButtonHelp": "Помощ", "ButtonHome": "Начало", "ButtonInfo": "Сведения", - "ButtonLearnMore": "Научете повече", "ButtonLibraryAccess": "Достъп до библиотеката", "ButtonManualLogin": "Вход с име и парола", "ButtonMore": "Още", @@ -159,7 +157,6 @@ "HeaderApiKeys": "ППИ ключове", "HeaderApp": "Програма", "HeaderAudioSettings": "Настройки на звука", - "HeaderAutomaticUpdates": "Автоматични обновления", "HeaderBooks": "Книги", "HeaderCastAndCrew": "Артисти и изпълнители", "HeaderCastCrew": "Артисти и изпълнители", @@ -285,8 +282,6 @@ "LabelAlbumArtMaxWidth": "Максимална ширина на албумното изкуство:", "LabelAlbumArtPN": "ПН на албумното изкуство:", "LabelAlbumArtists": "Изпълнители на албума:", - "LabelAllowServerAutoRestart": "Разрешаване на сървъра автоматично да се пуска повторно за прилагане на обновления", - "LabelAllowServerAutoRestartHelp": "Сървърът ще се пуска наново само през ненатоварено време, когато няма активни потребители.", "LabelAppName": "Име", "LabelArtists": "Изпълнители:", "LabelArtistsHelp": "Отделете няколко с ;", @@ -307,7 +302,6 @@ "LabelCustomCssHelp": "Добавете собствен стил към уеб-интерфейса.", "LabelCustomDeviceDisplayName": "Показвано име:", "LabelCustomRating": "Оценка по избор:", - "LabelDashboardTheme": "Облик на сървърното табло:", "LabelDateAdded": "Дата на добавяне:", "LabelDateTimeLocale": "Местоположение за дата и час:", "LabelDay": "Ден:", @@ -451,15 +445,12 @@ "LabelUserLibrary": "Библиотека на потребителя:", "LabelUsername": "Потребителско име:", "LabelVersion": "Версия:", - "LabelVersionNumber": "Версия {0}", "LabelYear": "Година:", - "LabelYourFirstName": "Първото ви име:", "LabelYoureDone": "Готови сте!", "Large": "Голям", "LatestFromLibrary": "Последни {0}", "LibraryAccessHelp": "Изберете библиотеките, които да споделите с потребителя. Администраторите ще могат да редактират всички папки, използвайки управлението на метаданни.", "Like": "Харесване", - "LinksValue": "Препратки: {0}", "List": "Списък", "Live": "На живо", "LiveTV": "Телевизия на живо", @@ -509,7 +500,7 @@ "NewEpisodes": "Нови епизоди", "NewEpisodesOnly": "Само нови епизоди", "News": "Новини", - "NoNextUpItemsMessage": "Нищо не е намерено. Започнете да гледате вашите предавания!", + "MessageNoNextUpItems": "Нищо не е намерено. Започнете да гледате вашите предавания!", "NoSubtitleSearchResultsFound": "Няма намерени резултати.", "NoSubtitles": "Без", "None": "Нищо", @@ -614,7 +605,7 @@ "OriginalAirDateValue": "Дата на първоначално излъчване: {0}", "Overview": "Обобщение", "ParentalRating": "Родителска оценка", - "PasswordResetHeader": "Зануляване на паролата", + "HeaderResetPassword": "Зануляване на паролата", "People": "Хора", "Photos": "Снимки", "PictureInPicture": "Картина в картина", @@ -716,7 +707,6 @@ "TabParentalControl": "Родителски контрол", "TabPassword": "Парола", "TabPlayback": "Възпроизвеждане", - "TabPlaylist": "Списък", "TabPlaylists": "Списъци", "TabPlugins": "Приставки", "TabProfile": "Профил", @@ -749,7 +739,7 @@ "TrackCount": "{0} песни", "Trailers": "Трейлъри", "Tuesday": "Вторник", - "UninstallPluginHeader": "Деинсталиране на приставката", + "HeaderUninstallPlugin": "Деинсталиране на приставката", "Unmute": "Без заглушаване", "Unplayed": "Непускано", "Upload": "Качване", @@ -776,7 +766,6 @@ "ValueVideoCodec": "Видеокодек: {0}", "Vertical": "Отвесно", "ViewAlbum": "Преглед на албума", - "ViewArtist": "Преглед на изпълнителя", "Watched": "Изгледано", "Wednesday": "Сряда", "WelcomeToProject": "Добре дошли в Емби!", @@ -819,7 +808,6 @@ "ReplaceExistingImages": "Заменяне на текущите изображения", "Channels": "Канали", "Categories": "Категории", - "ButtonViewWebsite": "Преглед на сайта", "ButtonUp": "Нагоре", "ButtonTrailer": "Предварителен откъс", "ButtonStart": "Пускане", @@ -832,7 +820,6 @@ "ButtonConnect": "Свързване", "AllowOnTheFlySubtitleExtraction": "Позволява моментално извличане на поднадписи", "AllowHWTranscodingHelp": "Позволява на тунера да прекодира моментално. Това може да помогне за редуциране на прекодирането от сървъра.", - "AddItemToCollectionHelp": "Добавяне към колекция чрез търсенето им и използване на дясно-щракване с мишката или контекстното меню.", "Absolute": "Aбсолютен", "LabelLanNetworks": "Локални мрежи:", "LabelKodiMetadataSaveImagePathsHelp": "Това е препоръчително, ако наименованието на изображенията не са съобразени с изискванията на Kodi.", @@ -843,7 +830,7 @@ "OptionResElement": "рес. елемент", "ButtonChangeServer": "Смяна на сървър", "ButtonAddImage": "Добавяне на изображение", - "BrowsePluginCatalogMessage": "За да видите наличните добавки, прегледайте каталога с добавките.", + "MessageBrowsePluginCatalog": "За да видите наличните добавки, прегледайте каталога с добавките.", "Box": "Кутия", "AlwaysPlaySubtitlesHelp": "Поднадписите, съвпадащи с езика от настройките, ще се зареждат, независимо от езика на аудио то.", "BookLibraryHelp": "Поддържат се аудио книги такива съдържащи текст. Проверете ръководството за наименуване {1} на книги {0}.", @@ -884,10 +871,9 @@ "CinemaModeConfigurationHelp": "Режимът на кино носи театрално изживяване направо във вашата всекидневна с възможност за пускане на трейлъри и персонализирани интродукции преди основния филм.", "ChangingMetadataImageSettingsNewContent": "Промените в настройките за изтегляне на метаданни или изображения ще се прилагат само за ново съдържание, добавено към вашата библиотека. За да приложите промените към съществуващите заглавия, ще трябва да обновите метаданните им ръчно.", "DefaultMetadataLangaugeDescription": "Това са настройки по подразбиране и могат да се променят на база библиотека.", - "DefaultErrorMessage": "Възникна грешка при изпълнение на заявката. Моля опитайте по-късно.", + "ErrorDefault": "Възникна грешка при изпълнение на заявката. Моля опитайте по-късно.", "CustomDlnaProfilesHelp": "Създаване на персонализиран профил за целево устройство или заменяне на системния профил.", "CopyStreamURL": "Копиране URL на стрийма", - "CopyStreamURLError": "Възникна грешка при копиране на URL.", "CopyStreamURLSuccess": "URL се копира успешно.", "Connect": "Свързване", "ConfirmEndPlayerSession": "Искате ли да изключите Jellyfin на {0}?", @@ -905,7 +891,7 @@ "ButtonToggleContextMenu": "Повече", "ErrorSavingTvProvider": "Има проблем със запазването на ТВ доставчика.Убедете се ,че е достъпен и опитайте отново.", "ErrorPleaseSelectLineup": "Моля изберете списък и опитайте отново.Ако няма налични списъци се убедете ,че името,паролата и пощенския код са точни.", - "ErrorMessageStartHourGreaterThanEnd": "Времето за край трябва да бъде по-голямо от началното време.", + "ErrorStartHourGreaterThanEnd": "Времето за край трябва да бъде по-голямо от началното време.", "ErrorGettingTvLineups": "Има проблем при опита да бъдат свалени списъци с ТВ.Убедете се ,че информацията е правилна и опитайте отново.", "ErrorDeletingItem": "Има проблем при опита да бъде изтрит файла от сървъра.Убедете се ,че сървъра има право да трие папки и опитайте отново.", "ErrorAddingXmlTvFile": "Има проблем при достъпа на XMLTV файла.Уверете се ,че е наличен и пробвайте отново.", @@ -1029,7 +1015,6 @@ "HeaderSelectMetadataPathHelp": "Търси или въведи ръчно пътя ,където искаш да се съхраняват метаданните.Папката трябва да има права за запис.", "HeaderSelectMetadataPath": "Избери папка със метаданни", "HeaderSelectCertificatePath": "Избери папка със сертификат", - "HeaderRestartingServer": "Рестартиране на сървъра", "HeaderResponseProfileHelp": "Профилите за комуникация дават възможност да се настрои типът информация ,която се изпраща към устройството при възпроизвеждането на определени типове медия.", "HeaderRemoveMediaLocation": "Премахни папката с медия", "HeaderRemoteAccessSettings": "Настройки за отдалечен достъп", @@ -1143,7 +1128,6 @@ "LabelNumber": "Номер:", "LabelNotificationEnabled": "Включване на известие", "LabelNewsCategories": "Категории новини:", - "LabelNightly": "Тестов", "LabelStable": "Стабилна", "LabelChromecastVersion": "Версия на Chromecast", "LabelMusicStreamingTranscodingBitrateHelp": "Посочете максимален битрейт при поточно предаване на музика.", @@ -1200,8 +1184,8 @@ "LabelProtocolInfo": "Информация за протокола:", "LabelPostProcessorArgumentsHelp": "Използвай {path},като път за записване на файла.", "LabelPostProcessorArguments": "Аргументи на командния ред след обработка:", - "EnableBlurhashHelp": "Изображенията, които все още се зареждат, ще се показват чрез функцията\"размито запълване\"", - "EnableBlurhash": "Активиране на функцията \"размито запълване\" за изображения", + "EnableBlurHashHelp": "Изображенията, които все още се зареждат, ще се показват чрез функцията\"размито запълване\"", + "EnableBlurHash": "Активиране на функцията \"размито запълване\" за изображения", "UnsupportedPlayback": "Джелифин не може да дешифрира съдържание, защитено с DRM, но въпреки това цялото съдържание ще бъде обработено, включително защитените заглавия. Някои файлове могат да изглеждат напълно черни поради криптиране или други неподдържани функции, например интерактивни заглавия.", "OnApplicationStartup": "При стартиране на приложението", "EveryXHours": "На всеки {0} часа", @@ -1226,7 +1210,6 @@ "XmlDocumentAttributeListHelp": "Тези атрибути се прилагат към коренния елемент на всеки XML отговор.", "Whitelist": "Бял списък", "ViewPlaybackInfo": "Вижте информация за възпроизвеждането", - "VideoRange": "Диапазон на видео", "ValueTimeLimitSingleHour": "Времеви лимит: 1 час", "ValueTimeLimitMultiHour": "Времеви лимит {0} часове", "ValueContainer": "Контейнер: {0}", @@ -1254,8 +1237,6 @@ "SmartSubtitlesHelp": "Когато аудиото е чуждоезично ще бъдат заредени субтитри според зададените настройки за език.", "ErrorAddingListingsToSchedulesDirect": "Възникна грешка при добавянето на списъка към вашия \"Schedules Direct\" акаунт.Услугата позволява определен брой списъци към един акаунт.Ще е необходимо да влезете в акаунта си (през сайта на услугата) и да отстраните другите списъци преди да продължите с добавянето на нови.", "LabelIdentificationFieldHelp": "Подниз или регулярен израз с различаване на главни букви.", - "EnableFastImageFadeInHelp": "Използвай бързи анимации преходи", - "EnableFastImageFadeIn": "Бързи анимации", "LabelScreensaver": "Скрийнсейвър:", "LabelScheduledTaskLastRan": "Последно пускан {0}, заел {1}.", "LabelRuntimeMinutes": "Продължителност (в минути):", @@ -1289,12 +1270,10 @@ "LabelStreamType": "Вид на потока:", "LabelStopping": "Спиране", "LabelSportsCategories": "Спортни категории:", - "LabelSoundEffects": "Звукови ефекти:", "LabelSortTitle": "Подреди по заглавие:", "LabelSonyAggregationFlags": "\"Флагове\" за статистическа обработка на Сони:", "LabelSkipIfGraphicalSubsPresentHelp": "Наличието на текстови версии на субтитрите ще доведе до по-ефективна доставка и намаляване на вероятността от транскодиране на видеото.", "LabelSkipIfAudioTrackPresentHelp": "Махнете отметката ,за да се гарантира ,че всички видеофайлове имат субтитри,независимо от езика на аудиото им.", - "LabelSkin": "Облик:", "LabelSize": "Размер:", "LabelSimultaneousConnectionLimit": "Ограничение на броя едновременни потоци:", "LabelServerName": "Име на сървъра:", @@ -1311,7 +1290,6 @@ "MessageConfirmAppExit": "Искате ли да излезете?", "MessageAreYouSureDeleteSubtitles": "Сигурни ли се ,че искате да изтриете файла със субтитри?", "MediaIsBeingConverted": "Медията е конвертирана във формат ,който е съвместим с устройството ,което ще я възпроизведе.", - "MediaInfoSoftware": "Софтуер", "MediaInfoTimestamp": "Времеви отпечатък", "MediaInfoSampleRate": "Кадрова честота", "MediaInfoRefFrames": "Ref кадри", @@ -1325,8 +1303,6 @@ "LiveBroadcasts": "Предавания на живо", "LeaveBlankToNotSetAPassword": "Можете да оставите това поле празно и да не задавате парола.", "LearnHowYouCanContribute": "Научете как можете да допринесете.", - "LaunchWebAppOnStartupHelp": "Отвори уеб клиента във браузъра по подразбиране при първото стартиране на сървъра.Това няма да се случи при използване на функцията на сървъра за рестартиране.", - "LaunchWebAppOnStartup": "Стартирай уеб интерфейса ,когато се стартира сървъра", "LanNetworksHelp": "Списък разделен със запетая съдържащ ИП адреси или записи за ИП/мрежова маски отнасящи се за мрежи ,които ще се считат за локални ,когато се налагат ограничения в честотната лента.Ако е зададено всички други ИП адреси ще се считат за принадлежащи към външни мрежи и за тях ще важат правилата за ограничения на външни ИП -та.Ако полето е празно ще се счита ,че само подмрежата на сървъра е част от локалната мрежа.", "LabelffmpegPathHelp": "Пътят към файла на приложението ffmpeg или папката, съдържаща ffmpeg.", "LabelffmpegPath": "Път към FFmpeg:", @@ -1388,10 +1364,8 @@ "MessageLeaveEmptyToInherit": "Оставете празни, за да наследите настройки от родителски елемент или глобалната стойност по подразбиране.", "MessageItemsAdded": "Добавени са елементи.", "MessageItemSaved": "Елементът е запазен.", - "MessageUnauthorizedUser": "Понастоящем нямате право да получите достъп до сървъра. Моля, свържете се с администратора на вашия сървър за повече информация.", "MessageInvalidUser": "Невалидно потребителско име или парола. Моля, опитайте отново.", "MessageInvalidForgotPasswordPin": "Въведен е невалиден или изтекъл пин код. Моля, опитайте отново.", - "MessageInstallPluginFromApp": "Този плъгин трябва да бъде инсталиран от приложението, в което възнамерявате да го използвате.", "MessageImageTypeNotSelected": "Изберете типът изображение от падащото меню.", "MessageImageFileTypeAllowed": "Поддържат се само файлове с разширение JPEG и PNG.", "MessageForgotPasswordInNetworkRequired": "Опитайте пак в домашната мрежа да повторите процеса по нулиране на паролата.", @@ -1418,29 +1392,25 @@ "SaveSubtitlesIntoMediaFoldersHelp": "Съхраняването на субтитрите при видео файлове ще позволи по-лесното им управление.", "SaveSubtitlesIntoMediaFolders": "Запазване на субтитрите в папките с медията", "SaveChanges": "Запазете промените", - "RunAtStartup": "Пускай при стартиране", - "RestartPleaseWaitMessage": "Моля, изчакайте, докато сървъра се изключи и рестартира. Това може да отнеме минута или две.", "RepeatOne": "Повтори един път", "RepeatMode": "Режим на повторение", "RepeatEpisodes": "Повтори епизодите", "RepeatAll": "Повтори всички", - "ReleaseGroup": "Издаден от група", "RefreshQueued": "Назначено е обновяване.", "RefreshDialogHelp": "Метаданните се обновяват въз основа на настройките и интернет услугите, които са активирани от таблото за управление на сървъра.", "Recordings": "Записи", "RecordingScheduled": "Записът е насрочен.", - "RecordingPathChangeMessage": "Промяната на вашата папка за запис няма да мигрира съществуващите записи от старото местоположение към новото.Необходимо е да направите това ръчно.", + "MessageChangeRecordingPath": "Промяната на вашата папка за запис няма да мигрира съществуващите записи от старото местоположение към новото.Необходимо е да направите това ръчно.", "RecordSeries": "Запиши сериал", "RecommendationStarring": "В главните роли {0}", "RecommendationDirectedBy": "Режисьор {0}", "Rate": "Оценка", - "QueueAllFromHere": "Поред всичко от тук", "ProductionLocations": "Места на заснемане", "Previous": "Предишен", "PreferEmbeddedEpisodeInfosOverFileNames": "Предпочитай \"вградената\" информация за епизода вместо името на файла", "PreferEmbeddedEpisodeInfosOverFileNamesHelp": "Това използва информацията за епизода от вградените метаданни, ако е налична.", "PreferEmbeddedTitlesOverFileNamesHelp": "Това определя заглавието по подразбиране, когато няма интернет метаданни или локални метаданни.", - "PluginInstalledMessage": "Добавката е успешно инсталирана. Джелифин ще трябва да бъде рестартиран, за да влязат в сила промените.", + "MessagePluginInstalled": "Добавката е успешно инсталирана. Джелифин ще трябва да бъде рестартиран, за да влязат в сила промените.", "PleaseSelectTwoItems": "Моля, изберете поне два елемента.", "PleaseEnterNameOrId": "Моля, въведете име или външен идентификатор.", "PleaseConfirmPluginInstallation": "Моля, щракнете върху OK, за да потвърдите, че сте прочели горното и искате да продължите с инсталирането на добавката.", @@ -1463,7 +1433,6 @@ "PackageInstallFailed": "Инсталирането на {0} версия {1}) е неуспешно.", "PackageInstallCompleted": "Инсталирането на {0} версия {1}) е завършено.", "PackageInstallCancelled": "Инсталирането на {0} версия {1}) е отменено.", - "OtherArtist": "Друг изпълнител", "OptionWeekends": "Почивни дни", "OptionWeekdays": "Делници", "OptionTvdbRating": "Рейтинг според ТВДБ", @@ -1525,7 +1494,7 @@ "OnlyForcedSubtitles": "Само принудително", "OneChannel": "Един канал", "NoSubtitlesHelp": "Субтитрите няма да бъдат заредени по подразбиране. Те все още могат да бъдат включени ръчно по време на възпроизвеждане.", - "NoPluginConfigurationMessage": "Тази добавка няма настройки за конфигуриране.", + "MessageNoPluginConfiguration": "Тази добавка няма настройки за конфигуриране.", "NoNewDevicesFound": "Не са намерени нови устройства. За да добавите нов тунер, затворете този диалогов прозорец и въведете ръчно информацията за устройството.", "NoCreatedLibraries": "Изглежда, че все още не сте създали библиотеки. {0} Искате ли да ги създадете сега? {1}", "NextUp": "Следващ по ред", diff --git a/src/strings/ca.json b/src/strings/ca.json index 8c0fa300cc..7250a6cb31 100644 --- a/src/strings/ca.json +++ b/src/strings/ca.json @@ -14,7 +14,7 @@ "AspectRatio": "Relació d'aspecte", "AttributeNew": "Nou", "Audio": "Àudio", - "BrowsePluginCatalogMessage": "Consulta el nostre catàleg per veure els complements disponibles.", + "MessageBrowsePluginCatalog": "Consulta el nostre catàleg per veure els complements disponibles.", "ButtonAdd": "Afegeix", "ButtonAddMediaLibrary": "Afegir Biblioteca Multimèdia", "ButtonAddScheduledTaskTrigger": "Afegir Disparador", @@ -39,7 +39,6 @@ "ButtonGuide": "Guia", "ButtonHelp": "Ajuda", "ButtonHome": "Inici", - "ButtonLearnMore": "Aprèn més", "ButtonLibraryAccess": "Accés a la biblioteca", "ButtonManualLogin": "Inici de sessió manual", "ButtonMore": "Més", @@ -75,7 +74,6 @@ "ButtonSubmit": "Envia", "ButtonSubtitles": "Subtítols", "ButtonTrailer": "Tràiler", - "ButtonViewWebsite": "Veure website", "CancelRecording": "Cancel·la enregistrament", "CancelSeries": "Cancel·la sèrie", "ChannelAccessHelp": "Selecciona els canals a compartir amb aquest usuari. Els administradors podran editar tots els canals emprant el gestor de metadades.", @@ -84,7 +82,7 @@ "ConfirmDeletion": "Confirma supressió", "Connect": "Connecta", "Continuing": "Continuant", - "DefaultErrorMessage": "Hi ha hagut un error processant la petició. Intenta-ho més tard si et plau.", + "ErrorDefault": "Hi ha hagut un error processant la petició. Intenta-ho més tard si et plau.", "Delete": "Esborra", "DeleteImage": "Esborra Imatge", "DeleteImageConfirmation": "Esteu segur que voleu suprimir aquesta imatge?", @@ -138,7 +136,6 @@ "HeaderApiKeys": "Claus Api", "HeaderApiKeysHelp": "Les aplicacions externes requereixen una Api key pere tal de poder-se comunicar amb el Servidor d'Jellyfin. Les claus són emeses iniciant sessió amb un compte d'Jellyfin, o concedint manualment una clau a l'aplicació.", "HeaderAudioSettings": "Preferències d'Àudio", - "HeaderAutomaticUpdates": "Actualitzacions Automàtiques", "HeaderBooks": "Llibres", "HeaderBranding": "Aparença", "HeaderCancelRecording": "Cancel·lar Enregistrament", @@ -271,8 +268,6 @@ "LabelAlbum": "Àlbum:", "LabelAlbumArtMaxHeight": "Alçada màxima de l'art de l'àlbum:", "LabelAlbumArtMaxWidth": "Amplada màxima de l'art de l'àlbum:", - "LabelAllowServerAutoRestart": "Permetre el servidor reiniciar-se automàticament per aplicar actualitzacions", - "LabelAllowServerAutoRestartHelp": "El servidor només es reiniciarà durant períodes d'inactivitat, quan no tingui usuaris actius.", "LabelArtists": "Artistes:", "LabelArtistsHelp": "Separa'n varis emprant ;", "LabelAudioLanguagePreference": "Preferència de l'idioma de l'àudio:", @@ -292,7 +287,6 @@ "LabelCustomCss": "CSS propi:", "LabelCustomCssHelp": "Aplica el teu propi css a la interfície web.", "LabelCustomDeviceDisplayName": "Nom a mostrar:", - "LabelDashboardTheme": "Tema del tauler de control del servidor:", "LabelDateAdded": "Data afegit:", "LabelDay": "Dia:", "LabelDeathDate": "Data de defunció:", @@ -413,9 +407,7 @@ "LabelSendNotificationToUsers": "Envia la notificació a:", "LabelSerialNumber": "Nombre de sèrie", "LabelSeriesRecordingPath": "Directori de gravació de sèries (opcional):", - "LabelSkin": "Aspecte:", "LabelSortTitle": "Títol d'endreçat:", - "LabelSoundEffects": "Efectes de so:", "LabelSource": "Font:", "LabelStartWhenPossible": "Inicia quan sigui possible:", "LabelStatus": "Estat:", @@ -438,9 +430,7 @@ "LabelUserLibrary": "Biblioteca d'usuari:", "LabelUsername": "Nom d'usuari:", "LabelValue": "Valor:", - "LabelVersionNumber": "Versió {0}", "LabelYear": "Any:", - "LabelYourFirstName": "El teu nom:", "LabelYoureDone": "Ja està!", "LatestFromLibrary": "Novetats a {0}", "LibraryAccessHelp": "Selecciona els directoris dels multimèdia a compartir amb aquest usuari. Els administradors podran editar tots els directoris emprant el gestor de metadades.", @@ -491,8 +481,8 @@ "NewCollectionNameExample": "Exemple: Col·leció Star Wars", "NewEpisodes": "Nous episodis", "NewEpisodesOnly": "Només nous episodis", - "NoNextUpItemsMessage": "Cap trobat. Comença a mirar els teus programes!", - "NoPluginConfigurationMessage": "Aquest complement no té opcions de configuració.", + "MessageNoNextUpItems": "Cap trobat. Comença a mirar els teus programes!", + "MessageNoPluginConfiguration": "Aquest complement no té opcions de configuració.", "NoSubtitleSearchResultsFound": "No s'han trobat resultats.", "NoSubtitles": "Sense subtítols", "None": "Cap", @@ -605,7 +595,6 @@ "Producer": "Productor", "Programs": "Programes", "Quality": "Qualitat", - "QueueAllFromHere": "Afegeix tots a la cua des d'aquí", "RecentlyWatched": "Reproduït recentment", "RecommendationBecauseYouWatched": "Ja que has vist {0}", "Record": "Grava", @@ -624,7 +613,6 @@ "ReplaceAllMetadata": "Reemplaça totes les metadades", "ReplaceExistingImages": "Reemplaça imatges existents", "ResumeAt": "Reprodueix des de {0}", - "RunAtStartup": "Arrenca en iniciar", "Saturday": "Dissabte", "Save": "Desa", "Screenshots": "Captures de pantalla", @@ -682,7 +670,6 @@ "TabParentalControl": "Control Parental", "TabPassword": "Contrasenya", "TabPlayback": "Reproducció", - "TabPlaylist": "Llista de reproducció", "TabPlaylists": "Llistes de reproducció", "TabPlugins": "Complements", "TabProfile": "Perfil", @@ -709,7 +696,7 @@ "TrackCount": "{0} pistes", "Tuesday": "Dimarts", "UninstallPluginConfirmation": "Estàs segur que vols desinstal·lar {0}?", - "UninstallPluginHeader": "Desinstal·lar Complement.", + "HeaderUninstallPlugin": "Desinstal·lar Complement.", "Unmute": "De-silencia", "Unrated": "Sense valorar", "Up": "Amunt", @@ -719,7 +706,6 @@ "ValueOneMusicVideo": "1 vídeo musical", "ValueSpecialEpisodeName": "Especial - {0}", "ViewAlbum": "Veure àlbum", - "ViewArtist": "Veure artista", "ViewPlaybackInfo": "Veure informació de reproducció", "Watched": "Vists", "Wednesday": "Dimecres", @@ -792,7 +778,6 @@ "AirDate": "Data d'emissió", "AdditionalNotificationServices": "Examineu el catàleg de complements per instal·lar serveis de notificació addicionals.", "AddedOnValue": "Afegit {0}", - "AddItemToCollectionHelp": "Afegiu els elements a les col·leccions buscant-los i fent clic amb el botó dret o toqueu els menús per afegir-los a una col·lecció.", "Actor": "Actor", "Absolute": "Absolut", "ClientSettings": "Configuració del client", @@ -810,7 +795,6 @@ "BookLibraryHelp": "Els àudio i llibres de text són compatibles. Reviseu la {0} guia de denominació de llibres {1}.", "Backdrops": "Fons", "Backdrop": "Fons", - "AutoBasedOnLanguageSetting": "Auto (basada en la configuració de l’idioma)", "Artist": "Artista", "AllowedRemoteAddressesHelp": "Llista d’adreces IP o d’entrades IP / netmasca separades per comes per a xarxes que podran connectar-se de forma remota. Si es deixa en blanc, es permetran totes les adreces remotes.", "AllowFfmpegThrottlingHelp": "Quan un transcòdi o un remux estigui prou lluny de la posició de reproducció actual, feu una pausa en el procés perquè consumirà menys recursos. Això és més útil per mirar sense buscar sovint. Desactiveu-la si teniu problemes de reproducció.", diff --git a/src/strings/cs.json b/src/strings/cs.json index faded7df3a..80415c24af 100644 --- a/src/strings/cs.json +++ b/src/strings/cs.json @@ -2,7 +2,6 @@ "AccessRestrictedTryAgainLater": "Přístup je v současné době omezen. Prosím zkuste to znovu později.", "Actor": "Herec", "Add": "Přidat", - "AddItemToCollectionHelp": "Přidat položky do kolekce jejich vyhledáním a použitím pravého tlačítka myši nebo klepnutím na tlačítko menu - přidat do sbírky.", "AddToCollection": "Přidat do kolekce", "AddToPlayQueue": "Přidat do fronty k přehrání", "AddToPlaylist": "Přidat do playlistu", @@ -34,7 +33,7 @@ "Books": "Knihy", "Box": "Pouzdro", "BoxRear": "Zadní část pouzdra", - "BrowsePluginCatalogMessage": "Prohlédněte si náš katalog, kde najdete dostupné zásuvné moduly.", + "MessageBrowsePluginCatalog": "Prohlédněte si náš katalog, kde najdete dostupné zásuvné moduly.", "ButtonAdd": "Přidat", "ButtonAddMediaLibrary": "Přidat knihovnu médií", "ButtonAddScheduledTaskTrigger": "Přidat Spouštěč", @@ -63,7 +62,6 @@ "ButtonGuide": "Programový průvodce", "ButtonHelp": "Nápověda", "ButtonHome": "Domů", - "ButtonLearnMore": "Zjistit více", "ButtonLibraryAccess": "Přístup ke knihovně", "ButtonManualLogin": "Manuální přihlášení", "ButtonMore": "Více", @@ -105,16 +103,10 @@ "ButtonTrailer": "Upoutávka", "ButtonUninstall": "Odinstalovat", "ButtonUp": "Zesílit", - "ButtonViewWebsite": "Přejít na webové stránky", "ButtonWebsite": "Webové stránky", "CancelRecording": "Zrušit nahrávání", "CancelSeries": "Ukončit Seriál", "Categories": "Kategorie", - "CategoryApplication": "Aplikace", - "CategoryPlugin": "Zásuvný modul", - "CategorySync": "Synchronizace", - "CategorySystem": "Systém", - "CategoryUser": "Uživatel", "ChannelAccessHelp": "Vyberte kanály, které chcete sdílet s tímto uživatelem. Administrátoři budou moci upravovat všechny kanály pomocí správce metadat.", "ChannelNameOnly": "Kanál {0} jen", "ChannelNumber": "Číslo kanálu", @@ -136,7 +128,7 @@ "DatePlayed": "Datum přehrání", "DeathDateValue": "Zemřel: {0}", "Default": "Výchozí", - "DefaultErrorMessage": "Došlo k chybě při zpracování požadavku. Prosím zkuste to znovu později.", + "ErrorDefault": "Došlo k chybě při zpracování požadavku. Prosím zkuste to znovu později.", "DefaultMetadataLangaugeDescription": "Toto jsou vaše výchozí hodnoty a lze je přizpůsobit na základě jednotlivých knihoven.", "DefaultSubtitlesHelp": "Titulky jsou načteny na základě výchozích a vynucených nastavení ve vložených metadatech. Jazykové preference jsou vzaty v úvahu, pokud je k dispozici více možností.", "Delete": "Odstranit", @@ -149,7 +141,7 @@ "Desktop": "PC", "DeviceAccessHelp": "Platí pouze pro zařízení, která mohou být jednoznačně identifikována. Těmto zařízením nebude bráněno v přístupu. Filtrování přístupu uživatelských zařízení bude bránit v užívání nových zařízení, dokud nebudou schváleny.", "DirectPlaying": "Přímé přehrání", - "DirectStreamHelp1": "Médium je kompatibilní se zařízením, pokud jde o rozlišení a typ média (H.264, AC3, atd.), ale je v nekompatibilním kontejneru (.mkv, .avi, .wmv, atd.). Video bude za běhu přebaleno, než bude streamováno do zařízení.", + "DirectStreamHelp1": "Médium je kompatibilní se zařízením, pokud jde o rozlišení a typ média (H.264, AC3, atd.), ale je v nekompatibilním kontejneru (.mkv, .avi, .wmv, atd.). Video bude za běhu přebaleno, než bude odesláno do zařízení.", "DirectStreaming": "Přímé streamování", "Director": "Režisér", "Disc": "Disk", @@ -162,10 +154,6 @@ "DoNotRecord": "Nenahrávat", "Down": "Dolů", "Download": "Stáhnout", - "Downloaded": "Staženo", - "Downloading": "Stahování", - "DownloadingDots": "Stahování...", - "Downloads": "Stahování", "DrmChannelsNotImported": "Kanál s DRM nebude importován.", "DropShadow": "Stín", "EasyPasswordHelp": "Váš jednoduchý kód PIN slouží k přístupu v režimu offline v podporovaných klientech Jellyfin a k snadnému přihlášení v místní síti.", @@ -194,8 +182,7 @@ "ErrorAddingXmlTvFile": "Nastala chyba při přístupu k XMLTV souboru. Ujistěte se, že soubor existuje a zkuste jej znovu otevřít.", "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.", + "ErrorStartHourGreaterThanEnd": "Čas ukončení musí být větší než čas startu.", "ErrorPleaseSelectLineup": "Vyberte prosím sestavu a zkuste to znovu. Pokud nejsou k dispozici žádné sestavy, zkontrolujte, zda je vaše uživatelské jméno, heslo a poštovní směrovací číslo správné.", "ErrorSavingTvProvider": "Při ukládání poskytovatele TV došlo k chybě. Prosím, ujistěte se, že je přístupný a zkuste to znovu.", "ExitFullscreen": "Opustit celou obrazovku", @@ -244,14 +231,13 @@ "HeaderAlbums": "Alba", "HeaderAlert": "Upozornění", "HeaderApiKey": "Klíč Api", - "HeaderApiKeys": "Klíče Api", - "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íč.", + "HeaderApiKeys": "Klíče API", + "HeaderApiKeysHelp": "Externí aplikace musí mít klíč k API, aby mohly komunikovat se serverem. Klíče jsou vydávány přihlášením k běžnému uživatelskému účtu nebo ruční žádostí o klíč.", "HeaderApp": "Aplikace", "HeaderAudioBooks": "Audio knihy", "HeaderAudioSettings": "Nastavení zvuku", - "HeaderAutomaticUpdates": "Automatické aktualizace", "HeaderBooks": "Knihy", - "HeaderBranding": "Značkování", + "HeaderBranding": "Branding", "HeaderCancelRecording": "Zrušit nahrávání", "HeaderCancelSeries": "Ukončit Seriál", "HeaderCastAndCrew": "Herci a obsazení", @@ -351,7 +337,7 @@ "HeaderPreferredMetadataLanguage": "Preferovaný jazyk metadat", "HeaderProfile": "Profil", "HeaderProfileInformation": "Informace o profilu", - "HeaderProfileServerSettingsHelp": "Tyto hodnoty určují, jak se server Jellyfin bude zobrazovat v zařízení.", + "HeaderProfileServerSettingsHelp": "Tyto hodnoty určují, jak se server bude zobrazovat klientům.", "HeaderRecentlyPlayed": "Naposledy přehráváno", "HeaderRecordingOptions": "Nastavení nahrávání", "HeaderRecordingPostProcessing": "Následné zpracování nahrávek", @@ -368,13 +354,13 @@ "HeaderSecondsValue": "{0} sekund", "HeaderSelectCertificatePath": "Vyber cestu k certifikátu", "HeaderSelectMetadataPath": "Vyberte cestu k metadatům", - "HeaderSelectMetadataPathHelp": "Výběr nebo zadání cesty, kde chcete uložit metadata. Složka musí být zapisovatelná.", + "HeaderSelectMetadataPathHelp": "Procházejte nebo zadejte cestu, kde chcete uložit metadata. Složka musí být zapisovatelná.", "HeaderSelectPath": "Vybrat složku", "HeaderSelectServer": "Vyber Server", "HeaderSelectServerCachePath": "Vyber složku pro vyrovnávací paměť serveru", "HeaderSelectServerCachePathHelp": "Vyberte nebo zadejte složku vyrovnávací paměti souborů. Složka musí být zapisovatelná.", "HeaderSelectTranscodingPath": "Zvolte dočasnou složku pro překódovávání médií", - "HeaderSelectTranscodingPathHelp": "Vyberte nebo zadejte složku pro dočasné soubory překódování. Složka musí být zapisovatelná.", + "HeaderSelectTranscodingPathHelp": "Vyberte nebo zadejte složku pro soubory překódování. Složka musí být zapisovatelná.", "HeaderSendMessage": "Poslat zprávu", "HeaderSeries": "Seriál", "HeaderSeriesOptions": "Nastavení seriálu", @@ -412,7 +398,6 @@ "HeaderXmlDocumentAttribute": "Atributy XML dokumentu", "HeaderXmlDocumentAttributes": "Atributy XML dokumentu", "HeaderXmlSettings": "Nastavení XML", - "HeaderYear": "Rok", "HeaderYears": "Roky", "HeadersFolders": "Složky", "Help": "Nápověda", @@ -421,8 +406,8 @@ "Home": "Domů", "Identify": "Identifikovat", "Images": "Obrázky", - "ImportFavoriteChannelsHelp": "Pokud je povoleno, jen kanály označené jako oblíbené budou importována na zařízení tuneru.", - "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.", + "ImportFavoriteChannelsHelp": "Jen kanály označené jako oblíbené na zařízení tuneru budou importovány.", + "ImportMissingEpisodesHelp": "Informace o chybějících epizodách budou importovány do databáze 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", @@ -433,8 +418,6 @@ "LabelAccessDay": "Den týdne:", "LabelAccessEnd": "Konec:", "LabelAccessStart": "Začátek:", - "LabelAddedOnDate": "Přidáno {0}", - "LabelAirDate": "Dny vysílání:", "LabelAirDays": "Vysíláno:", "LabelAirTime": "Čas vysílání:", "LabelAirsAfterSeason": "Vysíláno po sezóně:", @@ -449,21 +432,17 @@ "LabelAlbumArtists": "Alba umělce:", "LabelAll": "Vše", "LabelAllowHWTranscoding": "Povolit hardwarové překódování", - "LabelAllowServerAutoRestart": "Povolit automatický restart serveru pro provedení aktualizace", - "LabelAllowServerAutoRestartHelp": "Server bude restartován pouze v době nečinnosti, pokud nejsou aktivní žádní uživatelé.", - "LabelAnytime": "Kdykoliv", "LabelAppName": "Název aplikace", "LabelAppNameExample": "Příklad: Sickbeard, Sonarr", - "LabelArtist": "Umělec", "LabelArtists": "Umělci:", - "LabelArtistsHelp": "Odděl pomocí ;", + "LabelArtistsHelp": "Více interpretů se odděluje pomocí středníku.", "LabelAudio": "Zvuk", "LabelAudioLanguagePreference": "Preferovaný jazyk zvuku:", "LabelBindToLocalNetworkAddress": "Vázat na místní síťovou adresu:", - "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.", + "LabelBindToLocalNetworkAddressHelp": "Změní místní IP adresu serveru 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)", + "LabelBlastMessageInterval": "Doba zobrazení zprávy", "LabelBlastMessageIntervalHelp": "Určuje dobu trvání v sekundách mezi zobrazením aktuálních zpráv.", "LabelCachePath": "Složka pro cache:", "LabelCachePathHelp": "Zadejte vlastní umístění pro serverové dočasné soubory, jako jsou obrázky. Ponechte prázdné, pokud chcete použít výchozí nastavení serveru.", @@ -476,18 +455,15 @@ "LabelCriticRating": "Hodnocení kritiků:", "LabelCurrentPassword": "Aktuální heslo:", "LabelCustomCss": "Vlastní CSS:", - "LabelCustomCssHelp": "Aplikovat vaše vlastní styly do webového rozhraní.", + "LabelCustomCssHelp": "Aplikovat vaše vlastní styly webového rozhraní.", "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 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í.", "LabelDay": "Den:", "LabelDeathDate": "Datum úmrtí:", - "LabelDefaultForcedStream": "(Defaultní/Vynucené)", - "LabelDefaultStream": "(Defaultní)", "LabelDefaultUser": "Výchozí uživatel:", "LabelDefaultUserHelp": "Určí, která uživatelská knihovna by měla být zobrazena na připojených zařízení. Nastavení může být přepsáno pomocí profilů pro každé zařízení.", "LabelDeviceDescription": "Popis zařízení", @@ -496,15 +472,12 @@ "LabelDisplayLanguage": "Jazyk rozhraní:", "LabelDisplayLanguageHelp": "Překlad projektu Jellyfin se neustále vyvíjí.", "LabelDisplayMissingEpisodesWithinSeasons": "Zobrazit chybějící epizody", - "LabelDisplayMissingEpisodesWithinSeasonsHelp": "Toto musí být zapnuto pro knihovny TV v nastavení Jellyfin serveru.", "LabelDisplayMode": "Režim zobrazení:", "LabelDisplayName": "Zobrazované jméno:", "LabelDisplayOrder": "Pořadí zobrazení:", "LabelDisplaySpecialsWithinSeasons": "Zobraz speciální epizody dle odvysílaných sezón", "LabelDownMixAudioScale": "Zesílení audia při downmix:", "LabelDownMixAudioScaleHelp": "Zvýšit hlasitost při downmixování. Nastavte na 1 pro zachování původní hlasitosti.", - "LabelDownloadInternetMetadata": "Stáhnout přebal a metadata z Internetu", - "LabelDownloadInternetMetadataHelp": "Jellyfin server může stahovat informace o vašich médiích, aby umožnil vylepšené prezentace.", "LabelDownloadLanguages": "Stahované jazyky:", "LabelDropImageHere": "Sem přetáhněte obrázek nebo klikněte pro procházení.", "LabelDropShadow": "Typ zvýraznění titulků:", @@ -515,23 +488,22 @@ "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": "Tuto možnost povolte, pokud není server zjistitelný jinými UPnP zařízeními v síti.", - "LabelEnableDlnaClientDiscoveryInterval": "Čas pro vyhledání klienta (sekund)", + "LabelEnableDlnaClientDiscoveryInterval": "Interval pro vyhledání klienta", "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í", - "LabelEnableDlnaPlayToHelp": "Umí detekovat zařízení v rámci vaší sítě a nabízí možnost jeho dálkového ovládání.", + "LabelEnableDlnaPlayToHelp": "Umí detekovat zařízení v rámci vaší sítě a nabízí možnost jejich dálkového ovládání.", "LabelEnableDlnaServer": "Povolit DLNA server", "LabelEnableDlnaServerHelp": "Umožňuje zařízením UPnP v síti procházet a přehrávat obsah.", "LabelEnableRealtimeMonitor": "Povolit sledování v reálném čase", - "LabelEnableRealtimeMonitorHelp": "Změny budou zpracovány okamžitě, v podporovaných souborových systémech.", + "LabelEnableRealtimeMonitorHelp": "V podporovaných souborových systémech budou změny zpracovány okamžitě.", "LabelEnableSingleImageInDidlLimit": "Limit na jednotlivé vložení obrázku", "LabelEnableSingleImageInDidlLimitHelp": "Některá zařízení nebudou videa zobrazovat správně, pokud je více obrazů uloženo v DIDL.", "LabelEndDate": "Datum ukončení:", "LabelEpisodeNumber": "Číslo epizody:", "LabelEvent": "Událost:", "LabelEveryXMinutes": "Každý:", - "LabelExternalPlayers": "Externí přehrávače:", "LabelExtractChaptersDuringLibraryScan": "Extrakce obrázků kapitol během prohledávání vaší knihovny", "LabelExtractChaptersDuringLibraryScanHelp": "Vytvářejte obrázky kapitol při importu videí během skenování knihovny. Jinak budou obrázky extrahovány během naplánované úlohy, což umožňuje rychlejší dokončení běžného skenování knihovny.", "LabelFailed": "Selhání", @@ -540,18 +512,16 @@ "LabelFont": "Písmo:", "LabelForgotPasswordUsernameHelp": "Zadej své uživatelské jméno, jestliže se má pamatovat.", "LabelFormat": "Formát:", - "LabelFree": "Zdarma", "LabelFriendlyName": "Přívětivý název:", - "LabelFromHelp": "Například: {0} (na serveru)", "LabelGroupMoviesIntoCollections": "Seskupit filmy do kolekcí", - "LabelGroupMoviesIntoCollectionsHelp": "Při zobrazení seznamů filmu, budou filmy patřící do kolekce, zobrazeny jako jedna položka.", + "LabelGroupMoviesIntoCollectionsHelp": "Při zobrazení seznamu filmů budou filmy v kolekci zobrazeny jako jedna položka.", "LabelH264Crf": "H264 kódování CRF:", "LabelEncoderPreset": "Přednastavení H264 kódování:", "LabelHardwareAccelerationType": "Hardwarová akcelerace:", "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 HTTPS server Jellyfin připojit.", + "LabelHttpsPortHelp": "Číslo portu TCP serveru HTTPS.", "LabelIconMaxHeight": "Maximální výška ikon:", "LabelIconMaxHeightHelp": "Maximální rozlišení ikon nabízené prostřednictvím upnp:icon.", "LabelIconMaxWidth": "Maximální šířka ikon:", @@ -573,12 +543,11 @@ "LabelKodiMetadataSaveImagePaths": "Uložit cesty k obrázkům do NFO souborů", "LabelKodiMetadataSaveImagePathsHelp": "Toto nastavení je doporučeno, pokud používáte názvy souborů (obrázků), které nejsou v souladu s pokyny Kodi.", "LabelLanguage": "Jazyk:", - "LabelLastResult": "Poslední výsledky:", "LabelLineup": "V pořadí:", "LabelLocalHttpServerPortNumber": "Lokální HTTP port:", - "LabelLocalHttpServerPortNumberHelp": "Číslo portu TCP, ke kterému by se měl HTTP server Jellyfin připojit.", + "LabelLocalHttpServerPortNumberHelp": "Číslo portu TCP HTTP serveru.", "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í:", + "LabelLoginDisclaimer": "Zřeknutí se zodpovědnosti při přihlášení:", "LabelLoginDisclaimerHelp": "Zpráva, která se zobrazí v dolní části přihlašovací stránky.", "LabelLogs": "Záznamy:", "LabelManufacturer": "Výrobce:", @@ -600,7 +569,7 @@ "LabelMetadataReaders": "Čtečky metadat:", "LabelMetadataReadersHelp": "Seřaďte své preferované lokální zdroje metadat dle priority. První nalezená data budou načtena.", "LabelMetadataSavers": "Střadatelé metadat:", - "LabelMetadataSaversHelp": "Vyberte formáty souborů pro uložení metadat.", + "LabelMetadataSaversHelp": "Vyberte formáty souborů, které chcete použít pro ukládání metadat.", "LabelMethod": "Metoda:", "LabelMinBackdropDownloadWidth": "Maximální šířka pro stažení pozadí:", "LabelMinResumeDuration": "Minimální doba trvání:", @@ -616,7 +585,7 @@ "LabelMovieCategories": "Filmové kategorie:", "LabelMoviePrefix": "Předpona filmu:", "LabelMoviePrefixHelp": "Pokud je v názvech filmů použita předpona, zadejte ji sem, aby ji server mohl správně zpracovat.", - "LabelMovieRecordingPath": "Složka pro nahrávání filmů (volitelné):", + "LabelMovieRecordingPath": "Umístění pro nahrávání filmů:", "LabelMusicStreamingTranscodingBitrate": "Datový tok pro překódování hudby:", "LabelMusicStreamingTranscodingBitrateHelp": "Zadejte maximální datový tok pro streamování hudby.", "LabelName": "Jméno:", @@ -629,7 +598,7 @@ "LabelNumber": "Číslo:", "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:", + "LabelOptionalNetworkPath": "Sdílená síťová složka:", "LabelOriginalAspectRatio": "Původní poměr stran:", "LabelOriginalTitle": "Originální název:", "LabelOverview": "Přehled:", @@ -669,7 +638,7 @@ "LabelRefreshMode": "Mód obnovy:", "LabelReleaseDate": "Datum vydání:", "LabelRemoteClientBitrateLimit": "Datový tok streamování do Internetu (Mbps):", - "LabelRuntimeMinutes": "Délka (v minutách):", + "LabelRuntimeMinutes": "Délka:", "LabelSaveLocalMetadata": "Uložit přebaly a metadata do složky s médii", "LabelSaveLocalMetadataHelp": "Povolíte-li uložení přebalů a metadat do složky s médii bude možné je jednoduše upravovat.", "LabelScheduledTaskLastRan": "Poslední spuštění {0}, zabralo {1}.", @@ -681,8 +650,7 @@ "LabelSelectVersionToInstall": "Vyber verzi k instalaci:", "LabelSendNotificationToUsers": "Odeslat oznámení pro:", "LabelSerialNumber": "Sériové číslo", - "LabelSeries": "Seriály:", - "LabelSeriesRecordingPath": "Složka pro nahrávání seriálů (volitelné):", + "LabelSeriesRecordingPath": "Umístění pro nahrávání seriálů:", "LabelServerHostHelp": "192.168.1.100:8096 nebo https://mujserver.cz", "LabelSkipBackLength": "Délka posunu zpět:", "LabelSkipForwardLength": "Délka posunu vpřed:", @@ -693,7 +661,6 @@ "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:", - "LabelSoundEffects": "Zvukové efekty:", "LabelSource": "Zdroj:", "LabelSportsCategories": "Sportovní kategorie:", "LabelStartWhenPossible": "Začít jakmile je to možné:", @@ -733,17 +700,15 @@ "LabelValue": "Hodnota:", "LabelVersion": "Verze:", "LabelVersionInstalled": "{0} instalováno", - "LabelVersionNumber": "Verze {0}", "LabelXDlnaCap": "Zachytávací zařízení X-DLNA:", "LabelXDlnaCapHelp": "Určuje obsah prvku X_DLNACAP ve jmenném prostoru urn:schemas-dlna-org:device-1-0.", "LabelXDlnaDoc": "Dokumentace X-DLNA:", "LabelXDlnaDocHelp": "Určuje obsah prvku X_DLNADOC ve jmenném prostoru urn:schemas-dlna-org:device-1-0.", "LabelYear": "Rok:", - "LabelYourFirstName": "Vaše jméno:", "LabelYoureDone": "Hotovo!", "LabelZipCode": "PSČ:", "LabelffmpegPath": "FFmpeg - cesta:", - "LabelffmpegPathHelp": "Cesta k souboru aplikace ffmpeg, nebo složka obsahující aplikaci ffmpeg.", + "LabelffmpegPathHelp": "Cesta k souboru aplikace ffmpeg nebo složka obsahující aplikaci ffmpeg.", "Large": "Velký", "LatestFromLibrary": "Nejnovější {0}", "LearnHowYouCanContribute": "Zjistěte, jak můžete přispět.", @@ -796,13 +761,11 @@ "MessageCreateAccountAt": "Vytvořit účet v {0}", "MessageDeleteTaskTrigger": "Opravdu si přejete odebrat spouštění úlohy?", "MessageDirectoryPickerBSDInstruction": "V operačním systému FreeBSD či FreeNAS může být nutné nakonfigurovat úložiště přímo pomocí izolační funkce jail, aby k němu měl Jellyfin přístup.", - "MessageDirectoryPickerInstruction": "Síťové cesty lze zadat ručně v případě, že tlačítko 'Síť' nedokáže automaticky lokalizovat vaše zařízení. Například, {0} nebo {1}.", "MessageDirectoryPickerLinuxInstruction": "Pro systémy Linux jako Arch Linux, CentOS, Debian, Fedora, OpenSUSE nebo Ubuntu musíte udělit uživateli služby oprávnění alespoň pro čtení.", "MessageDownloadQueued": "Stažení zařazeno.", "MessageFileReadError": "Došlo k chybě při čtení souboru. Prosím zkuste to znovu.", "MessageForgotPasswordFileCreated": "Následující soubor byl vytvořen na serveru a obsahuje pokyny, jak postupovat:", "MessageForgotPasswordInNetworkRequired": "Zkuste to prosím znovu uvnitř vaší domácí sítě pro zahájení procesu resetování hesla.", - "MessageInstallPluginFromApp": "Tento plugin musí být nainstalován z aplikace, kterou chcete použít.", "MessageInvalidForgotPasswordPin": "Neplatné zadání pin kódu. Prosím, zkuste to znovu.", "MessageInvalidUser": "Neplatné uživatelské jméno nebo heslo. Zkuste znovu.", "MessageItemSaved": "Položka uložena.", @@ -825,13 +788,9 @@ "MessageUnsetContentHelp": "Obsah je zobrazen pomocí prostých složek. Pro dosažení nejlepších výsledků pomocí správce metadat nastavte typy obsahu pod-složek.", "MessageYouHaveVersionInstalled": "V současné době máte instalovánu verzi {0}.", "MetadataManager": "Manažer metadat", - "MetadataSettingChangeHelp": "Změna nastavení metadat bude mít vliv na nový obsah, který bude přidáván. Chcete-li aktualizovat stávající obsah, otevřte obrazovku s detailem a klepněte na tlačítko Aktualizovat, nebo proveďte hromadnou aktualizaci pomocí správce metadat.", + "MetadataSettingChangeHelp": "Změna nastavení metadat bude mít vliv na obsah, který bude nově přidán v budoucnu. Chcete-li aktualizovat stávající obsah, otevřete obrazovku s podrobnostmi a klikněte na tlačítko Aktualizovat, nebo proveďte hromadnou aktualizaci pomocí správce metadat.", "MinutesAfter": "minut po", "MinutesBefore": "minut předem", - "MissingBackdropImage": "Nedostupný obrázek pozadí.", - "MissingEpisode": "Chybí epizoda.", - "MissingLogoImage": "Nedostupný obrázek loga.", - "MissingPrimaryImage": "Nedostupný primární obrázek.", "Mobile": "Mobilní", "Monday": "Pondělí", "MoreFromValue": "Více z {0}", @@ -850,8 +809,8 @@ "News": "Zpravodajství", "Next": "Další", "No": "Ne", - "NoNextUpItemsMessage": "Nic nenalezeno. Začněte sledovat Vaše oblíbené seriály!", - "NoPluginConfigurationMessage": "Tento zásuvný modul nemá žádné nastavení.", + "MessageNoNextUpItems": "Nic nenalezeno. Začněte sledovat Vaše oblíbené seriály!", + "MessageNoPluginConfiguration": "Tento zásuvný modul nemá žádné nastavení.", "NoSubtitleSearchResultsFound": "Žádné výsledky.", "NoSubtitles": "Žádné", "NoSubtitlesHelp": "Ve výchozím nastavení nebudou titulky načteny. Během přehrávání však mohou být manuálně zapnuty.", @@ -878,14 +837,12 @@ "OptionAllowUserToManageServer": "Povolit tomuto uživateli správu serveru", "OptionAllowVideoPlaybackRemuxing": "Umožní přehrávání videa, která vyžaduje konverzi bez opětovného překódování", "OptionAllowVideoPlaybackTranscoding": "Povolit přehrávání videa, které vyžaduje překódování", - "OptionAnyNumberOfPlayers": "Jakýkoliv", - "OptionArt": "Umění", "OptionArtist": "Umělec", "OptionAscending": "Vzestupně", "OptionAuto": "Automaticky", "OptionAutomatic": "Automaticky", "OptionAutomaticallyGroupSeries": "Automatické sloučení k seriálu, které jsou ve více složkách", - "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.", + "OptionAutomaticallyGroupSeriesHelp": "Seriály uložené ve více složkách v této knihovně budou automaticky sloučeny do jednoho seriálu.", "OptionBlockBooks": "Knihy", "OptionBlockChannelContent": "Obsah internetového kanálu", "OptionBlockLiveTvChannels": "Televizní kanály", @@ -904,7 +861,7 @@ "OptionDatePlayed": "Datum přehrání", "OptionDescending": "Sestupně", "OptionDisableUser": "Zablokovat tohoto uživatele", - "OptionDisableUserHelp": "Pokud není povoleno, server nedovolí tomuto uživateli žádné připojení. Existující připojení bude okamžitě přerušeno.", + "OptionDisableUserHelp": "Server nedovolí tomuto uživateli žádné připojení. Existující připojení bude okamžitě přerušeno.", "OptionDislikes": "Nelíbí se", "OptionDisplayFolderView": "Zobrazit složku s originálním zobrazením složek médií", "OptionDisplayFolderViewHelp": "Zobrazte složky vedle vašich ostatních knihoven médií. To může být užitečné, pokud si přejete mít prosté zobrazení složky.", @@ -912,7 +869,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. 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.", + "OptionDownloadImagesInAdvanceHelp": "Ve výchozím nastavení se většina obrázků stahuje pouze na žádost klienta. 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", @@ -944,7 +901,7 @@ "OptionHlsSegmentedSubtitles": "Segmentované titulky HLS", "OptionHomeVideos": "Fotky", "OptionIgnoreTranscodeByteRangeRequests": "Ignorovat požadavky na překódování rozsahy bajtů", - "OptionIgnoreTranscodeByteRangeRequestsHelp": "Pokud je povoleno, budou tyto žádosti nadále plněny, ale budou ignorovány hlavičky bytových rozsahů.", + "OptionIgnoreTranscodeByteRangeRequestsHelp": "Tyto žádosti budou nadále plněny, ale budou ignorovány hlavičky bajtových rozsahů.", "OptionImdbRating": "Hodnocení IMDb", "OptionLikes": "Líbí se", "OptionMissingEpisode": "Chybějící episody", @@ -956,9 +913,9 @@ "OptionOnInterval": "V intervalu", "OptionParentalRating": "Rodičovské hodnocení", "OptionPlainStorageFolders": "Zobrazit všechny složky jako obyčejné složky pro ukládání", - "OptionPlainStorageFoldersHelp": "Je-li povoleno, všechny složky jsou zastoupeny v DIDL jako \"object.container.storageFolder\" místo specifičtějšího typu, jako je například \"object.container.person.musicArtist\".", + "OptionPlainStorageFoldersHelp": "Všechny složky jsou prezentovány v DIDL jako \"object.container.storageFolder\" místo konkrétnějšího typu, například \"object.container.person.musicArtist\".", "OptionPlainVideoItems": "Zobrazit všechna videa jako s obyčejné video položky", - "OptionPlainVideoItemsHelp": "Je-li povoleno, všechna videa jsou prezentovány v DIDL jako \"object.item.videoItem\" místo specifičtějšího typu, jako je například \"object.item.videoItem.movie\".", + "OptionPlainVideoItemsHelp": "Všechna videa jsou prezentována v DIDL jako \"object.item.videoItem\" místo konkrétnějšího typu, například \"object.item.videoItem.movie\".", "OptionPlayCount": "Počet přehrání", "OptionPlayed": "Shlédnuto", "OptionPremiereDate": "Datum premiéry", @@ -997,7 +954,7 @@ "PasswordMatchError": "Heslo a potvrzení hesla musí souhlasit.", "PasswordResetComplete": "Heslo bylo obnoveno.", "PasswordResetConfirmation": "Jste si jisti, že chcete obnovit heslo?", - "PasswordResetHeader": "Obnovit heslo", + "HeaderResetPassword": "Obnovit heslo", "PasswordSaved": "Heslo uloženo.", "People": "Lidé", "PerfectMatch": "Přesná shoda", @@ -1012,10 +969,7 @@ "PlayFromBeginning": "Přehrát od začátku", "PlayNext": "Přehrát další", "PlayNextEpisodeAutomatically": "Automaticky přehrávat další epizodu", - "PlayOnAnotherDevice": "Přehrát na jiném zařízení", "PlaybackErrorNoCompatibleStream": "Tento klient není kompatibilní s médiem a server neodesílá kompatibilní formát médií.", - "PlaybackErrorNotAllowed": "V současné době nejste oprávněni přehrávat tento obsah. Pro více informací se obraťte se na správce systému.", - "PlaybackErrorPlaceHolder": "Chcete-li toto video přehrát, vložte disk.", "Played": "Přehráno", "Playlists": "Seznamy skladeb", "PleaseAddAtLeastOneFolder": "Přidejte prosím nejméně jednu složku do této knihovny pomocí tlačítka Přidat.", @@ -1031,7 +985,6 @@ "ProductionLocations": "Místo výroby", "Programs": "Programy", "Quality": "Kvalita", - "QueueAllFromHere": "Zařadit vše do fronty", "RecentlyWatched": "Nedávno shlédnuté", "RecommendationBecauseYouLike": "Protože se vám líbí {0}", "RecommendationBecauseYouWatched": "Protože jste sledovali {0}", @@ -1040,11 +993,11 @@ "Record": "Nahrávat", "RecordSeries": "Nahrát série", "RecordingCancelled": "Nahrávání zrušeno.", - "RecordingPathChangeMessage": "Změna záznamové složky automaticky nepřesune stávající záznamy ze starého umístění do nového. Budete muset přesunout ručně, pokud je to žádoucí.", + "MessageChangeRecordingPath": "Změna záznamové složky automaticky nepřesune stávající záznamy ze starého umístění do nového. Budete muset přesunout ručně, pokud je to žádoucí.", "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 na nástěnce serveru Jellyfin.", + "RefreshDialogHelp": "Metadata se aktualizují na základě nastavení a internetových služeb, které jsou povoleny na nástěnce.", "RefreshMetadata": "Obnovit metadata", "RefreshQueued": "Obnovení zařazeno.", "ReleaseDate": "Datum vydání", @@ -1060,7 +1013,6 @@ "ReplaceExistingImages": "Nahradit existující obrázky", "ResumeAt": "Obnovit přehrávání od {0}", "Rewind": "Přetočit zpět", - "RunAtStartup": "Spustit po startu", "Runtime": "Délka", "Saturday": "Sobota", "Save": "Uložit", @@ -1070,7 +1022,7 @@ "Screenshots": "Snímky obrazovky", "Search": "Vyhledávání", "SearchForCollectionInternetMetadata": "Vyhledat metadata a obrázky na Internetu", - "SearchForMissingMetadata": "Hledání chybějících metadat", + "SearchForMissingMetadata": "Hledat chybějící metadata", "SearchForSubtitles": "Vyhledat titulky", "SearchResults": "Výsledky vyhledávání", "SendMessage": "Poslat zprávu", @@ -1167,7 +1119,7 @@ "Transcoding": "Překódování", "Tuesday": "Úterý", "UninstallPluginConfirmation": "Jste si jisti, že chcete odinstalovat {0}?", - "UninstallPluginHeader": "Odinstalovat zásuvný modul", + "HeaderUninstallPlugin": "Odinstalovat zásuvný modul", "Unmute": "Povolit zvuk", "Unrated": "Nehodnoceno", "Up": "Nahoru", @@ -1194,7 +1146,6 @@ "ValueTimeLimitSingleHour": "Časový limit: 1 hodina", "ValueVideoCodec": "Video kodeky: {0}", "ViewAlbum": "Zobrazit album", - "ViewArtist": "Zobrazit úmělce", "Watched": "Zhlédnuto", "Wednesday": "Středa", "WelcomeToProject": "Vítejte v Jellyfin!", @@ -1214,7 +1165,6 @@ "Alerts": "Upozornění", "AllComplexFormats": "Všechny komplexní formáty (ASS, SSA, VOBSUB, PGS, SUB/IDX, atd.)", "AllLibraries": "Všechny knihovny", - "AllowDeletionFromAll": "Povolit smazání médií ze všech knihoven", "AllowMediaConversion": "Povolit konverzi médií", "AllowMediaConversionHelp": "Povolit nebo zakázat přístup k funkci konverze médií.", "AllowOnTheFlySubtitleExtraction": "Povolit extrahování titulků za běhu", @@ -1222,59 +1172,38 @@ "AllowRemoteAccess": "Povolit vzdálené připojení k tomuto serveru Jellyfin.", "AllowRemoteAccessHelp": "Pokud není zapnuto, všechna vzdálená připojení budou blokována.", "AllowedRemoteAddressesHelp": "Seznam IP adres nebo síťových masek oddělených čárkou pro sítě, ze kterých se lze vzdáleně připojit. Pokud necháte prázdné, všechny adresy budou povoleny.", - "AnamorphicVideoNotSupported": "Anamorfní video není podporováno", "AnyLanguage": "Jakýkoli jazyk", "Ascending": "Vzestupně", - "AudioBitDepthNotSupported": "Bitová hloubka zvuku není podporována", - "AudioSampleRateNotSupported": "Frekvence vzorkování zvuku není podporována", - "AutoBasedOnLanguageSetting": "Automaticky (na základě jazykového nastavení)", "Banner": "Výřez plakátu", - "BestFit": "Nejvhodnější", "Blacklist": "Zakázat vše kromě výjimek", - "BobAndWeaveWithHelp": "Bob and weave (vyšší kvalita, ale pomalejší)", "Browse": "Procházet", "BurnSubtitlesHelp": "Určuje, zda má server při překódování videa vypálit titulky do obrazu. Tato funkce má velký negativní vliv na výkon. Chcete-li vypálit grafické formáty titulků (VOBSUB, PGS, SUB, IDX, atd.) a některé titulky ASS nebo SSA, vyberte možnost Automaticky.", "ButtonInfo": "Info", - "ButtonMenu": "Menu", "ButtonOk": "Ok", - "ButtonPlaylist": "Playlist", "ButtonRestart": "Restart", "ButtonScanAllLibraries": "Skenovat všechny knihovny", - "ButtonServer": "Server", "ButtonStart": "Start", - "ButtonStopRecording": "Zastavit nahrávání", "ChangingMetadataImageSettingsNewContent": "Změny nastavení metadat nebo stahování médií se budou týkat pouze nového obsahu přidaného do vaší knihovny. Chcete-li aplikovat změny na existující položky, musíte je aktualizovat ručně.", "Channels": "Kanály", "ColorPrimaries": "Primární barva", "ColorSpace": "Barva prostoru", "ColorTransfer": "Barva přenosu", - "ContainerBitrateExceedsLimit": "Datový tok média dosáhl limitu.", - "Convert": "Konverze", - "ConvertItemLimitHelp": "Volitelné. Nastavte limit počtu položek, které budou zkonvertovány.", - "ConvertUnwatchedVideosOnly": "Zkonvertovat pouze nepřehraná videa", - "ConvertUnwatchedVideosOnlyHelp": "Pouze nepřehraná videa budou zkonvertována.", - "ConvertingDots": "Konverze...", "CriticRating": "Kritické hodnocení", - "DefaultCameraUploadPathHelp": "Vyberte vlastní cestu nahrávání. Pokud zůstane prázdné, bude použita výchozí složka. Pokud použijete vlastní cestu, bude třeba ji přidat jako knihovnu v nastavení knihovny Jellyfin.", "Depressed": "Vytlačené", "Descending": "Klesající", "DetectingDevices": "Hledání zařízení", - "DirectPlayError": "Chyba přímého přehrávání", - "DirectStreamHelp2": "Přímé streamování souboru používá velmi malý výkon bez ztráty kvality videa.", + "DirectStreamHelp2": "Přímé streamování souboru vyžaduje velmi malý výkon téměř bez ztráty kvality videa.", "Directors": "Režiséři", "Disabled": "Vypnuto", "DisplayInMyMedia": "Zobrazit na domovské obrazovce", "DisplayInOtherHomeScreenSections": "Zobrazení v sekcích domovské obrazovky, jako jsou nejnovější média, a pokračování ve sledování", - "DownloadItemLimitHelp": "Volitelné. Nastavte limit počtu položek, které budou staženy.", "DownloadsValue": "{0} ke stažení", - "DvrFeatureDescription": "Naplánujte individuálně záznamy z živého vysílání TV, záznamy seriálů a jiné s Jellyfin DVR.", "EditMetadata": "Upravit metadata", "EnableExternalVideoPlayersHelp": "Při spuštění přehrávání videa se zobrazí nabídka externího přehrávače.", "EnableHardwareEncoding": "Povolit hardwarové kódování videa", "EnableNextVideoInfoOverlayHelp": "Na konci přehrávání videa se zobrazí informace o příštím videu v aktuálním seznamu skladeb.", "EnableStreamLooping": "Autom. smyčka živých vysílání", "EnableStreamLoopingHelp": "Povolte, pokud živé vysílání obsahuje pouze několik vteřin dat a nemusí být nepřetržitě požadováno. Povolení této funkce, pokud není potřeba, může způsobit problémy.", - "ErrorConnectServerUnreachable": "Při provádění požadované operace došlo k chybě. Váš server není schopen kontaktovat náš server Jellyfin Connect na adrese {0}. Ujistěte se, že váš server má aktivní připojení k internetu a že komunikace je povolena jakýmkoli firewallem nebo bezpečnostním softwarem, který jste nainstalovali.", "EveryNDays": "Každých {0} dní", "Extras": "Doplňky", "Features": "Funkce", @@ -1283,47 +1212,33 @@ "General": "Obecné", "Genre": "Žánr", "GroupBySeries": "Seskupit podle série", - "HandledByProxy": "Zpracováno reverzním proxy", - "HeaderAddLocalUser": "Přidat místního uživatele", "HeaderAllowMediaDeletionFrom": "Povolit smazání médií z", "HeaderAppearsOn": "Objeví se", - "HeaderAudio": "Audio", "HeaderBlockItemsWithNoRating": "Blokovat položky s žádnými nebo nerozpoznanými informacemi o hodnocení:", - "HeaderCameraUploadHelp": "Aplikace Jellyfin mohou automaticky nahrávat fotografie z mobilních zařízení do serveru Jellyfin.", "HeaderChapterImages": "Obrázky kapitol", "HeaderConfigureRemoteAccess": "Nastavit vzdálený přístup", "HeaderDetectMyDevices": "Najít moje zařízení", "HeaderDownloadSync": "Stahování a synchronizace", - "HeaderExport": "Export", "HeaderExternalIds": "Externí Id:", - "HeaderFavoriteCollections": "Oblíbené sbírky", "HeaderFavoritePlaylists": "Oblíbené playlisty", "HeaderFavoriteVideos": "Oblíbená videa", "HeaderFetcherSettings": "Nastavení načítání", - "HeaderImageLogo": "Logo", "HeaderImageOptions": "Volby obrázku", - "HeaderKodiMetadataHelp": "Chcete-li povolit nebo zakázat Nfo metadata, upravte nastavení knihovny v sekci ukládání metadat.", + "HeaderKodiMetadataHelp": "Chcete-li povolit nebo zakázat metadata v souborech NFO, upravte nastavení knihovny v sekci ukládání metadat.", "HeaderLiveTV": "Televize", "HeaderLiveTv": "Televize", "HeaderLiveTvTunerSetup": "Nastavení televizního tuneru", - "HeaderMenu": "Menu", "HeaderNewDevices": "Nové zařízení", "HeaderPhotoAlbums": "Fotoalba", "HeaderPlayOn": "Přehrát", - "HeaderProgram": "Program", "HeaderRestart": "Restart", - "HeaderScreenSavers": "Spořiče obrazovky", "HeaderSeriesStatus": "Stav seriálu", "HeaderStopRecording": "Zastavit nahrávání", "HeaderSubtitleDownloads": "Stahování titulků", - "HeaderTV": "TV", "HeaderTypeImageFetchers": "{0} stahovačů obrázků", - "HeaderUpcomingEpisodes": "Následující epizody", - "HeaderVideo": "Video", "HeaderVideoType": "Formát videa", "Horizontal": "Vodorovně", "HttpsRequiresCert": "Chcete-li povolit zabezpečená připojení, budete muset zadat důvěryhodný certifikát SSL, například Let's Encrypt. Zadejte prosím certifikát nebo zakažte zabezpečená připojení.", - "KeepDownload": "Zachovat stahování", "LabelAlbum": "Album:", "LabelAllowedRemoteAddresses": "Filtr vzdálené IP adresy:", "LabelAllowedRemoteAddressesMode": "Režim filtru vzdálené IP adresy:", @@ -1332,23 +1247,19 @@ "LabelBlockContentWithTags": "Blokovat položky s tagy:", "LabelBurnSubtitles": "Vypálit titulky:", "LabelCache": "Cache:", - "LabelCameraUploadPathHelp": "Vyberte vlastní umístění nahraných souborů. Toto přepíše jakékoli výchozí nastavení v sekci nahrávání souborů z fotoaparátu. Pokud použijete vlastní umístění, bude potřeba jej také přidat jako knihovnu v nastavení Jellyfin.", "LabelCertificatePassword": "Heslo certifikátu:", "LabelCertificatePasswordHelp": "Pokud certifikát vyžaduje heslo, zadejte jej prosím zde.", "LabelCustomCertificatePath": "Vlastní umístění SSL certifikátu:", "LabelCustomCertificatePathHelp": "Umístění souboru PKCS #12, který obsahuje certifikát a soukromý klíč k povolení podpory TLS na vlastní doméně.", "LabelDateTimeLocale": "Místní nastavení data:", "LabelDefaultScreen": "Výchozí obrazovka:", - "LabelDeinterlacingMethod": "Metoda odstraněni prokládání:", "LabelDynamicExternalId": "{0} ID:", - "LabelEmail": "E-mail:", "LabelEnableHardwareDecodingFor": "Povolit hardwarové dekódování pro:", "LabelHomeNetworkQuality": "Kvalita na domácí síti:", "LabelInternetQuality": "Kvalita na internetu:", "LabelKodiMetadataUser": "Uložit data sledování uživatele do NFO souboru pro:", "LabelKodiMetadataUserHelp": "Uložit sledovaná data o přehrávání pro využití dalšími aplikacemi.", "LabelLanNetworks": "Sítě LAN:", - "LabelLimit": "Limit:", "LabelMaxStreamingBitrate": "Maximální kvalita streamování:", "LabelMetadata": "Metadata:", "LabelOptionalNetworkPathHelp": "Pokud je tato složka sdílena ve vaší síti, zadání cesty ke sdílené složce umožní aplikacím Jellyfin na jiných zařízeních přímý přístup k souborům s médii. Například {0} nebo {1}.", @@ -1356,10 +1267,8 @@ "LabelPlaylist": "Playlist:", "LabelReasonForTranscoding": "Důvod pro překódování:", "LabelRemoteClientBitrateLimitHelp": "Volitelný limit datového toku pro všechna síťová zařízení. To je užitečné, aby se zabránilo požadavkům na vyšší přenosovou rychlost než zvládne vaše připojení k internetu. To může mít za následek zvýšení zátěže procesoru, aby bylo možné převádět videa za běhu na nižší datový tok.", - "LabelSecureConnectionsMode": "Režim zabezpečeného připojení:", "LabelServerHost": "Host:", "LabelSimultaneousConnectionLimit": "Limit současně běžících streamů:", - "LabelSkin": "Vzhled:", "LabelSortBy": "Řadit podle:", "LabelSortOrder": "Pořadí řazení:", "LabelSpecialSeasonsDisplayName": "Zobrazovaný název pro zvláštní sezónu:", @@ -1368,25 +1277,19 @@ "LabelTag": "Tag:", "LabelTypeMetadataDownloaders": "{0} stahovače metadat:", "LabelTypeText": "Text", - "LabelUrl": "URL:", "LabelUserAgent": "User agent:", "LabelUserRemoteClientBitrateLimitHelp": "Přepíše výchozí globální hodnotu nastavenou v nastavení přehrávání serveru.", "LabelVideo": "Video", "LabelVideoCodec": "Video kodek:", "LeaveBlankToNotSetAPassword": "Můžete ponechat prázdné pro nastavení bez hesla.", - "LetterButtonAbbreviation": "A", - "LinkApi": "API", - "LinksValue": "Odkazy: {0}", "LiveTV": "Televize", - "LiveTvFeatureDescription": "Streamujte televizní vysílání do libovolné aplikace Jellyfin s kompatibilním televizním tunerem instalovaným na serveru Jellyfin.", "Logo": "Logo", "ManageLibrary": "Spravovat knihovnu", "MediaInfoDefault": "Výchozí", - "MediaInfoSoftware": "Software", "MediaInfoStreamTypeAudio": "Audio", "MediaInfoStreamTypeData": "Data", "MediaInfoStreamTypeVideo": "Video", - "AuthProviderHelp": "Vyberte poskytovatele ověřování, který bude použit k ověření hesla tohoto uživatele.", + "AuthProviderHelp": "Vyberte poskytovatele ověření, který bude použit k ověření hesla tohoto uživatele.", "HeaderFavoriteMovies": "Oblíbená videa", "HeaderFavoriteShows": "Oblíbené seriály", "HeaderFavoriteEpisodes": "Oblíbené epizody", @@ -1394,7 +1297,7 @@ "HeaderFavoriteArtists": "Oblíbení interpreti", "HeaderFavoriteSongs": "Oblíbená hudba", "LabelAuthProvider": "Poskytovatel ověření:", - "LabelServerNameHelp": "Tento název bude použit k identifikaci serveru a bude výchozí pro název počítače serveru.", + "LabelServerNameHelp": "Tento název bude použit k identifikaci serveru a ve výchozím nastavení bude použit název hostitele serveru.", "LabelPasswordResetProvider": "Poskytovatel obnovy hesla:", "LabelServerName": "Název serveru:", "LabelTranscodePath": "Cesta pro překódování:", @@ -1420,7 +1323,7 @@ "OnlyImageFormats": "Pouze obrazové formáty (VOBSUB, PGS, SUB, atd.)", "Option3D": "3D", "OptionAlbum": "Album", - "OptionAllowMediaPlaybackTranscodingHelp": "Omezení přístupu k překódování může způsobit selhání přehrávání v aplikacích Jellyfin kvůli nepodporovaným formátům médií.", + "OptionAllowMediaPlaybackTranscodingHelp": "Omezení přístupu k překódování může způsobit selhání přehrávání v klientech kvůli nepodporovaným formátům médií.", "OptionAllowSyncTranscoding": "Povolit stahování a synchronizaci médií, které vyžaduje překódování", "OptionBluray": "Blu-ray", "OptionCaptionInfoExSamsung": "CaptionInfoEx (Samsung)", @@ -1438,17 +1341,12 @@ "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": "Zásuvný modul byl úspěšně nainstalován. Server Jellyfin bude nutné restartovat, aby se změny projevily.", - "PluginTabAppClassic": "Jellyfin pro Windows Media Center", + "PasswordResetProviderHelp": "Zvolte poskytovatele resetování hesla, který bude použit při žádosti tohoto uživatele o resetování hesla.", + "MessagePluginInstalled": "Zásuvný modul byl úspěšně nainstalován. Server Jellyfin bude nutné restartovat, aby se změny projevily.", "PreferEmbeddedTitlesOverFileNames": "Preferovat vložené názvy nad názvy souborů", "PreferEmbeddedTitlesOverFileNamesHelp": "Toto určuje výchozí název zobrazení, pokud nejsou k dispozici žádná metadata z internetu nebo místní metadata.", - "PreferredNotRequired": "Preferováno, ale není vyžadováno", "Raised": "Vystupující", "Rate": "Hodnocení", - "RequiredForAllRemoteConnections": "Požadováno pro všechna vzdálená připojení", "SaveSubtitlesIntoMediaFolders": "Titulky ukládat do mediálních složek", "SaveSubtitlesIntoMediaFoldersHelp": "Ukládání titulků vedle video souborů umožní jejich snadnější správu.", "ScanLibrary": "Skenovat knihovnu", @@ -1464,14 +1362,11 @@ "SubtitleAppearanceSettingsAlsoPassedToCastDevices": "Tato nastavení platí také pro jakékoli přehrávání na Chromecastu spuštěné tímto zařízením.", "SubtitleAppearanceSettingsDisclaimer": "Tato nastavení se nevztahuje na grafické titulky (PGS, DVD atd.) nebo ASS/SSA titulky, které mají vlastní vložené styly.", "SubtitleDownloadersHelp": "Povolte a zařaďte preferované stahovače titulků v pořadí podle priority.", - "SubtitleSettings": "Nastavení titulků", - "SubtitleSettingsIntro": "Chcete-li nastavit výchozí vzhled a jazyk titulků, zastavte přehrávání videa a klepněte na ikonu uživatele v pravé horní části aplikace.", "TV": "TV", "TabDirectPlay": "Přímé přehrávání", "TabInfo": "Info", "TabLiveTV": "Televize", "TabMetadata": "Metadata", - "TabPlaylist": "Playlist", "TabServer": "Server", "TagsValue": "Tagy: {0}", "ThemeSongs": "Tematická hudba", @@ -1485,14 +1380,11 @@ "ValueOneAlbum": "1 album", "ValueOneSong": "1 skladba", "Vertical": "Svisle", - "VideoRange": "Rozsah videa", "ViewPlaybackInfo": "Zobrazení informací o přehrávání", "Whitelist": "Povolit vše kromě výjimek", "HeaderHome": "Domů", "DashboardOperatingSystem": "Operační systém: {0}", "DashboardArchitecture": "Architektura: {0}", - "LaunchWebAppOnStartup": "Spustit webové rozhraní po spustění serveru", - "LaunchWebAppOnStartupHelp": "Otevře se webový klient ve vašem výchozím webovém prohlížeči, když server se spustí. K tomu nedochází při použití funkce restartování serveru.", "MessageNoServersAvailable": "Pomocí automatického zjišťování nebyly nalezeny žádné servery.", "OptionBanner": "Banner", "OptionList": "Seznam", @@ -1505,7 +1397,7 @@ "MusicArtist": "Interpret", "MusicVideo": "Videoklip", "SubtitleOffset": "Nastavení titulků", - "TabNetworking": "Vytváření sítí", + "TabNetworking": "Síť", "MusicLibraryHelp": "Prostudujte si {0}průvodce pojmenováním hudby{1}.", "MoreMediaInfo": "Informace o médiu", "LabelVideoBitrate": "Datový tok videa:", @@ -1524,7 +1416,7 @@ "LabelAudioBitrate": "Datový tok zvuku:", "LabelAudioBitDepth": "Bitová hloubka zvuku:", "HeaderFavoriteBooks": "Oblíbené knihy", - "FetchingData": "Načítání dalších dat…", + "FetchingData": "Načítání dalších dat", "CopyStreamURLSuccess": "Úspěšně zkopírovaná URL.", "CopyStreamURL": "Kopírovat URL adresu streamu", "ButtonAddImage": "Přidat obrázek", @@ -1534,7 +1426,6 @@ "HeaderNavigation": "Navigace", "ButtonSplit": "Rozdělit", "MessageConfirmAppExit": "Přejete si odejít?", - "CopyStreamURLError": "Při kopírování URL došlo k chybě.", "LabelVideoResolution": "Rozlišení videa:", "LabelStreamType": "Typ streamu:", "LabelPlayerDimensions": "Zobrazené rozlišení:", @@ -1548,11 +1439,9 @@ "BoxSet": "Sbírka", "Track": "Stopa", "Season": "Sezóna", - "ReleaseGroup": "Vydavatel", "PreferEmbeddedEpisodeInfosOverFileNames": "Preferovat vloženou informaci o epizodě před názvem souboru", "PreferEmbeddedEpisodeInfosOverFileNamesHelp": "Používat informaci o epizodě z vložených metadat, pokud jsou k dispozici.", "Person": "Osoba", - "OtherArtist": "Ostatní interpreti", "Movie": "Film", "Episode": "Epizoda", "ClientSettings": "Nastavení klienta", @@ -1578,16 +1467,14 @@ "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 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", - "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.", + "LabelEnableHttpsHelp": "Naslouchání na uvedené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", @@ -1631,8 +1518,8 @@ "EnableDetailsBanner": "Obrázek detailu", "ShowMore": "Zobrazit více", "ShowLess": "Zobrazit méně", - "EnableBlurhashHelp": "Nenačtené obrázky budou zobrazeny pomocí neurčitých zástupných obrázků", - "EnableBlurhash": "Povolit zástupné obrázky", + "EnableBlurHashHelp": "Obrázky, které se ještě načítají, budou zobrazeny pomocí jedinečných zástupných obrázků.", + "EnableBlurHash": "Povolit zástupné obrázky", "ButtonCast": "Přehrát v zařízení", "ButtonSyncPlay": "SyncPlay", "MessageNoGenresAvailable": "Povolit některým poskytovatelům metadat stahovat informace o žánrech z Internetu.", @@ -1652,5 +1539,8 @@ "Writers": "Scénáristé", "ClearQueue": "Vymazat frontu", "StopPlayback": "Zastavit přehrávání", - "ViewAlbumArtist": "Zobrazit interpreta alba" + "ViewAlbumArtist": "Zobrazit interpreta alba", + "PreviousTrack": "Předchozí", + "NextTrack": "Další", + "LabelUnstable": "Nestabilní" } diff --git a/src/strings/da.json b/src/strings/da.json index fce7ba8551..89bdd61808 100644 --- a/src/strings/da.json +++ b/src/strings/da.json @@ -1,7 +1,6 @@ { "Actor": "Skuespiller", "Add": "Tilføj", - "AddItemToCollectionHelp": "Tilføj emner til samlinger ved at fremsøge dem, og herefter ved højre klik eller tap-menu at tilføje dem til samlinger.", "AddToCollection": "Tilføj til samling", "AddToPlayQueue": "Tilføj til afspilningskø", "AddToPlaylist": "Tilføj til afspilningsliste", @@ -31,7 +30,7 @@ "BirthPlaceValue": "Fødselssted: {0}", "BookLibraryHelp": "Lyd- og tekstbøger er understøttet. Se {0}guiden til navngivning af bøger{1}.", "Browse": "Gennemse", - "BrowsePluginCatalogMessage": "Gennemse vores plugin-katalog for at se tilgængelige plugins.", + "MessageBrowsePluginCatalog": "Gennemse vores plugin-katalog for at se tilgængelige plugins.", "ButtonAdd": "Tilføj", "ButtonAddMediaLibrary": "Tilføj Mediebibliotek", "ButtonAddScheduledTaskTrigger": "Tilføj udløser", @@ -58,7 +57,6 @@ "ButtonGotIt": "Forstået", "ButtonHelp": "Hjælp", "ButtonHome": "Hjem", - "ButtonLearnMore": "Lær mere", "ButtonLibraryAccess": "Biblioteksadgang", "ButtonManualLogin": "Manuel Login", "ButtonMore": "Mere", @@ -98,7 +96,6 @@ "ButtonSubtitles": "Undertekster", "ButtonUninstall": "Afinstaller", "ButtonUp": "Op", - "ButtonViewWebsite": "Besøg hjemmeside", "ButtonWebsite": "Hjemmeside", "CancelRecording": "Annuller optagelse", "CancelSeries": "Annuller serie", @@ -119,7 +116,7 @@ "Continuing": "Forsættes", "CustomDlnaProfilesHelp": "Lav brugerdefinerede profiler til nye enheder eller for at overstyre en systemprofil.", "DeathDateValue": "Dødsdato: {0}", - "DefaultErrorMessage": "Det opstod en fejl ved behandlingen af forespørgslen. Prøv igen senere.", + "ErrorDefault": "Det opstod en fejl ved behandlingen af forespørgslen. Prøv igen senere.", "DefaultMetadataLangaugeDescription": "Dette er dine standarder og kan brugerdefineres på per-biblioteks basis.", "Delete": "Slet", "DeleteDeviceConfirmation": "Er du sikker på du ønsker at slette denne enhed? Den vil dukke op igen næste gang en bruger logger ind med den.", @@ -154,7 +151,7 @@ "ErrorAddingTunerDevice": "Der opstod en fejl under tilføjelse af tuner-enhed. Kontroller venligst at den er tilgængelig og prøv igen.", "ErrorAddingXmlTvFile": "Der opstod en fejl under tilgang til XMLTV-filen. Kontroller venligst at filen findes og prøv igen.", "ErrorGettingTvLineups": "Der opstod en fejl under download af TV-opstillinger. Kontroller venligst at dine informationer er korrekte og prøv igen.", - "ErrorMessageStartHourGreaterThanEnd": "Slut tid skal være større end start tid.", + "ErrorStartHourGreaterThanEnd": "Slut tid skal være større end start tid.", "ErrorPleaseSelectLineup": "Vælg venligst en opstilling og prøv igen. Hvis ingen opstillinger er tilgængelige, så kontroller venligst at dit brugernavn, adgangskode og postnummer er korrekt.", "ErrorSavingTvProvider": "Der opstod en fejl i forsøget på at gemme udbyder. Kontroller venligst at den er tilgængelig og prøv igen.", "EveryNDays": "Hver {0} dage", @@ -201,7 +198,6 @@ "HeaderApiKeys": "API Nøgler", "HeaderApiKeysHelp": "Eksterne applikationer skal have en API-nøgle for at kunne kommunikere med Jellyfin. Nøgler udstedes ved at logge ind med en Jellyfin konto, eller ved manuelt at tildele applikationen en nøgle.", "HeaderAudioSettings": "Lydindstillinger", - "HeaderAutomaticUpdates": "Automatiske opdateringer", "HeaderBlockItemsWithNoRating": "Klokér titler uden eller med ukendt bedømmelses information:", "HeaderBooks": "Bøger", "HeaderCancelRecording": "Annuller Optagelse", @@ -395,8 +391,6 @@ "LabelAlbumArtists": "Albumartister:", "LabelAll": "Alle", "LabelAllowHWTranscoding": "Tillad hardware-omkodning", - "LabelAllowServerAutoRestart": "Tillad serveren at genstarte automatisk for at påføre opdateringer", - "LabelAllowServerAutoRestartHelp": "Serveren vil kun genstarte i inaktive perioder, når ingen brugere er aktive.", "LabelAllowedRemoteAddresses": "Fjernadgang IP adresse filter:", "LabelAllowedRemoteAddressesMode": "Fjernadgang IP adresse filter mode:", "LabelAppName": "App navn", @@ -606,7 +600,6 @@ "LabelSaveLocalMetadataHelp": "Lagring af illustrationer og metadata i mediemapper vil placerer dem et sted hvor de nemt kan redigeres.", "LabelScheduledTaskLastRan": "Sidst kørt {0}, og tog {1}.", "LabelSeasonNumber": "Sæsonnummer:", - "LabelSecureConnectionsMode": "Sikker forbindelse mode:", "LabelSelectUsers": "Vælg brugere:", "LabelSelectVersionToInstall": "Vælg hvilken version der skal installeres:", "LabelSendNotificationToUsers": "Send underretning til:", @@ -637,9 +630,7 @@ "LabelTitle": "Titel:", "LabelTrackNumber": "Spor nummer:", "LabelTranscodingAudioCodec": "Lyd codec:", - "LabelTranscodingTempPath": "Midlertidig sti til omkodning:", "LabelTranscodingTempPathHelp": "Definér en bugerdefineret sti til transkodede filer til klienter. Lad den stå tom for at bruge standardmappen i serverens datamappe.", - "LabelTranscodingTemporaryFiles": "Midlertidige filer til omkodning:", "LabelTranscodingThreadCount": "Antal af omkodningstråde:", "LabelTranscodingThreadCountHelp": "Vælg det maksimale antal af tråde der bruges under transcoding. Reduktion af antallet af tråde sænker CPU-forbrug, men resulterer muligvis i at konverteringer ikke foregår hurtigt nok til en jævn afspilning.", "LabelTriggerType": "Udløsertype:", @@ -660,7 +651,6 @@ "LabelVersionInstalled": "{0} installeret", "LabelXDlnaCapHelp": "Angiver indholdet i X_DLNACAP elementet i urn:schemas-dlna-org:device-1-0.", "LabelXDlnaDocHelp": "Angiver indholdet i X_DLNADOC elementet i urn:schemas-dlna-org:device-1-0.", - "LabelYourFirstName": "Dit fornavn:", "LabelYoureDone": "Du er færdig!", "LabelZipCode": "Postnummer:", "LabelffmpegPath": "FFmpeg sti:", @@ -706,14 +696,12 @@ "MessageCreateAccountAt": "Opret en konto hos {0}", "MessageDeleteTaskTrigger": "Er du sikker på du ønsker at slette denne task trigger?", "MessageDirectoryPickerBSDInstruction": "For BSD skal du muligvis konfigurere lager i dit FreeNAS Jail, før Jellyfin kan tilgå det.", - "MessageDirectoryPickerInstruction": "Netværksstier kan indtastes manuelt i tilfælde af at netværksknappen ikke kan lokalisere dine enheder. Foreksempel, {0} eller {1}.", "MessageDirectoryPickerLinuxInstruction": "For Linux på Arch Linux, CentOS, Debian, Fedora, openSUSE eller Ubuntu, skal du give servicebrugeren mindst læseadgang til dine lagerpladser.", "MessageDownloadQueued": "Download sat i kø.", "MessageEnablingOptionLongerScans": "Aktivering af denne indstilling kan resultere i væsentlig længere biblioteks skan.", "MessageFileReadError": "Der opstod en fejl i forsøget på at læse filen.", "MessageForgotPasswordFileCreated": "Den følgende fil er blevet oprettet på din server og indeholder instruktioner vedrørende hvordan du skal fortsætte:", "MessageForgotPasswordInNetworkRequired": "Prøv igen inde i dit hjemmenetværk for at igangsætte nulstilling af din adgangskode.", - "MessageInstallPluginFromApp": "Dette plugin skal installeres fra den app, du har til hensigt at bruge det i.", "MessageInvalidForgotPasswordPin": "En ugyldig eller udløbet pinkode blev indtastet. Prøv igen.", "MessageInvalidUser": "Ukendt brugernavn eller adgangskode. Prøv igen.", "MessageItemSaved": "Element gemt.", @@ -758,8 +746,8 @@ "News": "Nyheder", "NextUp": "Næste", "NoNewDevicesFound": "Ingen nye enheder fundet. For at tilføje en ny tuner, luk denne dialog og skriv enhedens informationer manuelt.", - "NoNextUpItemsMessage": "Ingen fundet. Se dine serier!", - "NoPluginConfigurationMessage": "Dette plugin har ingen indstillinger at konfigurere.", + "MessageNoNextUpItems": "Ingen fundet. Se dine serier!", + "MessageNoPluginConfiguration": "Dette plugin har ingen indstillinger at konfigurere.", "NoSubtitleSearchResultsFound": "Ingen resultater fundet.", "NumLocationsValue": "{0} mapper", "OneChannel": "En kanal", @@ -894,7 +882,7 @@ "PasswordMatchError": "Adgangskode og bekræft adgangskode skal være ens.", "PasswordResetComplete": "Adgangskoden er blevet nulstillet.", "PasswordResetConfirmation": "Er du sikker på at adgangskoden skal nulstilles?", - "PasswordResetHeader": "Nulstil adgangskode", + "HeaderResetPassword": "Nulstil adgangskode", "PasswordSaved": "Adgangskoden er gemt.", "People": "Personer", "PictureInPicture": "Billede i billede", @@ -910,16 +898,14 @@ "PleaseEnterNameOrId": "Indtast venligst et navn eller eksternt ID.", "PleaseRestartServerName": "Genstart venligst Jellyfin Server - {0}.", "PleaseSelectTwoItems": "Vælg venligst mindst to elementer.", - "PluginInstalledMessage": "Plugin blev installeret med success. Jellyfin serveren skal genstartes for at aktivere det.", + "MessagePluginInstalled": "Plugin blev installeret med success. Jellyfin serveren skal genstartes for at aktivere det.", "PreferEmbeddedTitlesOverFileNames": "Foretræk indlejrede titler over filnavne", "PreferEmbeddedTitlesOverFileNamesHelp": "Dette bestemmer standard visnings titel når ingen internet metadata eller lokal metadata er tilgængelig.", - "PreferredNotRequired": "Foretrukket, men ikke påkrævet", "Premieres": "Premiere", "Producer": "Producent", "ProductionLocations": "Produktionslokationer", "Programs": "Programmer", "Quality": "Kvalitet", - "QueueAllFromHere": "Set alt her i kø", "RecentlyWatched": "Nyligt sete", "RecommendationBecauseYouLike": "Fordi du kan lide {0}", "RecommendationBecauseYouWatched": "Fordi du har set {0}", @@ -928,7 +914,7 @@ "Record": "Optag", "RecordSeries": "Optag serie", "RecordingCancelled": "Optagelse annulleret.", - "RecordingPathChangeMessage": "Ændring af optagelsesmappe migrerer ikke eksisterende optagelser fra den gamle lokation til den nye. Du bliver nød til at flytte dem manuelt, hvis det ønskes.", + "MessageChangeRecordingPath": "Ændring af optagelsesmappe migrerer ikke eksisterende optagelser fra den gamle lokation til den nye. Du bliver nød til at flytte dem manuelt, hvis det ønskes.", "RecordingScheduled": "Optagelse planlagt.", "Refresh": "Opdater", "RefreshDialogHelp": "Metadata opdateres alt efter hvilke indstillinger og internet-servicer der er aktiveret i Jellyfin Server-kontrolpanelet.", @@ -941,7 +927,6 @@ "RepeatEpisodes": "Gentag episoder", "ReplaceAllMetadata": "Erstat alle metadata", "ReplaceExistingImages": "Erstat eksisterende billeder", - "RequiredForAllRemoteConnections": "Påkrævet for alle fjern forbindelser", "ResumeAt": "Genoptag fra {0}", "Rewind": "Spol tilbage", "Runtime": "Afspilningstid", @@ -1040,7 +1025,7 @@ "Tuesday": "Tirsdag", "TvLibraryHelp": "Gennemgå {0} TV-navneguiden {1}.", "UninstallPluginConfirmation": "Er du sikker på du vil afinstallere {0}?", - "UninstallPluginHeader": "Afinstaller plugin", + "HeaderUninstallPlugin": "Afinstaller plugin", "Unmute": "Genoptag lyd", "Unrated": "Ingen bedømmelse", "UserAgentHelp": "Angiv en brugerdefineret bruger-agent HTTP-header.", @@ -1062,7 +1047,6 @@ "ValueTimeLimitMultiHour": "Tidsbegrænsning: {0} timer", "ValueTimeLimitSingleHour": "Tidsbegrænsning: 1 time", "ViewAlbum": "Vis album", - "ViewArtist": "Vis kunstner", "ViewPlaybackInfo": "Vis afspilnings information", "Wednesday": "Onsdag", "WelcomeToProject": "Velkommen til Jellyfin!", @@ -1096,14 +1080,7 @@ "AnyLanguage": "Hvilken som helst sprog", "Art": "Kunst", "Ascending": "Stigende", - "AudioBitDepthNotSupported": "Lyd bit dybde ikke understøttet", - "AudioBitrateNotSupported": "Lydens bitrate ikke understøttet", - "AudioChannelsNotSupported": "Lydkanaler ikke understøttet", - "AudioCodecNotSupported": "Lydkodeks ikke understøttet", - "AudioProfileNotSupported": "Lydprofil ikke understøttet", - "AudioSampleRateNotSupported": "Lydens samplerate ikke understøttet", "Auto": "Auto", - "AutoBasedOnLanguageSetting": "Automatisk (baseret på sprogindstilling)", "Backdrop": "Baggrund", "Backdrops": "Baggrunde", "Banner": "Banner", @@ -1114,34 +1091,18 @@ "ButtonFilter": "Filter", "ButtonGuide": "Vejledning", "ButtonInfo": "Information", - "ButtonMenu": "Menu", "ButtonOk": "Ok", "ButtonPause": "Pause", - "ButtonPlayTrailer": "Forfilm", - "ButtonReset": "Nulstil", - "ButtonResetTuner": "Nulstil tuner", "ButtonSend": "Send", - "ButtonServer": "Server", "ButtonStart": "Start", "ButtonStop": "Stop", - "ButtonSync": "Synkronisér", "ButtonTrailer": "Forfilm", - "CategoryPlugin": "Tilføjelse", - "CategorySync": "Synkronisér", - "CategorySystem": "System", "ColorPrimaries": "Primære farver", "ColorSpace": "Farverum", "ColorTransfer": "Farveoverførsel", "CommunityRating": "Føllesskabets Bedømmelse", "ConfirmEndPlayerSession": "Vil du gerne slukke Jellyfin på {0}?", - "ContainerBitrateExceedsLimit": "Medie bitrate går over grænsen.", - "ContainerNotSupported": "Beholder ikke understøttet", "ContinueWatching": "Fortsæt med at se", - "Convert": "Konvertér", - "ConvertItemLimitHelp": "Valgfri. Sæt en begrænsning på antallet af emner der vil blive konverteret.", - "ConvertUnwatchedVideosOnly": "Konvertér kun usete videoer", - "ConvertUnwatchedVideosOnlyHelp": "Kun usete videoer vil blive konverteret.", - "ConvertingDots": "Konverterer...", "CriticRating": "Kritiker bedømmelse", "DateAdded": "Dato tilføjet", "DatePlayed": "Dato afspillet", @@ -1150,7 +1111,6 @@ "Depressed": "Ikke Trykket", "Descending": "Faldene", "Desktop": "Skrivebord", - "DirectPlayError": "Direkte Afspilning fejl", "DirectPlaying": "Afspiller direkte", "DirectStreamHelp1": "Medie filen er kompatibel med enheden i forhold til opløsning og medie type (H.264,AC3, etc.), men er i en ikke kompatibel fil container (mkv, avi, wmv, etc). Videoen vil blive genpakket live før den streames til enheden.", "DirectStreamHelp2": "Direkte Streaming af en fil bruger meget lidt processor kraft uden nogen tab af video kvalitet.", @@ -1165,13 +1125,8 @@ "DisplayMissingEpisodesWithinSeasonsHelp": "Dette skal også være aktiveret for TV biblioteker i serverens indstillinger.", "DisplayModeHelp": "Vælg det ønskede tema for grænsefladen.", "Down": "Ned", - "DownloadItemLimitHelp": "Valgfri. Sæt en begrænsning på antallet af ting der vil blive hentet.", - "Downloaded": "Hentet", - "DownloadingDots": "Henter...", - "Downloads": "Hentninger", "DownloadsValue": "{0} hentninger", "DropShadow": "Drop Skygge", - "DvrFeatureDescription": "Tidsindstil individuelle TV optagelser, serie optagelser, og mere med Jellyfin DVR.", "EditMetadata": "Redigér metadata", "EnableBackdrops": "Baggrundsbilleder", "EnableBackdropsHelp": "Vis baggrundsbilleder i baggrunden af nogle sider mens man gennemser biblioteket.", @@ -1185,8 +1140,6 @@ "EnableThemeVideos": "Tema videoer", "EnableThemeVideosHelp": "Afspil tema videoer i baggrunden mens man gennemser biblioteket.", "Episodes": "Afsnit", - "ErrorAddingGuestAccount1": "Der skete en fejl ved tilføjelsen af Jellyfin Connect kontoen. Har din gæst lavet en Jellyfin konto? De kan regsistrere sig på {0}.", - "ErrorAddingGuestAccount2": "Hvis du stadig har problemer, så send venligst en email til {0}, og inkludér din email adresse såvel som deres.", "ErrorDeletingItem": "Der skete en fejl ved sletningen af mediet fra Jellyfin Server. Tjek venligst at Jellyfin Server har skrive adgang til mediemappen og prøv igen.", "ExtraLarge": "Ekstra Stor", "Extras": "Bonusmateriale", @@ -1197,7 +1150,6 @@ "GroupBySeries": "Gruppér efter serie", "Guide": "Vejledning", "GuideProviderLogin": "Log Ind", - "HandledByProxy": "Ordnet af omvendt proxy", "HeaderAdmin": "Admin", "HeaderAlbums": "Albummer", "HeaderApp": "App", @@ -1205,19 +1157,10 @@ "HeaderAudioBooks": "Lydbøger", "HeaderBranding": "Mærkning", "HeaderContinueListening": "Fortsæt med At Høre", - "HeaderDestination": "Destination", - "HeaderDownloadSettings": "Hentningsindstillinger", "HeaderDownloadSync": "Hentning Og Sync", - "HeaderFavoriteCollections": "Favorit Samlinger", "HeaderFavoritePlaylists": "Favorit Afspilningslister", - "HeaderHomeScreen": "Hjemmeskærm", - "HeaderImageLogo": "Logo", - "HeaderLatestFrom": "Seneste fra {0}", "HeaderLibraryOrder": "Bibliotektsorden", - "HeaderLinks": "Link", "HeaderLiveTv": "Live TV", - "HeaderManagement": "Håndtering", - "HeaderMenu": "Menu", "HeaderMusicQuality": "Musik Kvalitet", "HeaderMyMediaSmall": "Mine Medier (lille)", "HeaderNavigation": "Navigation", @@ -1225,40 +1168,27 @@ "HeaderNextVideoPlayingInValue": "Næste video afspilles om {0}", "HeaderPhotoAlbums": "Foto Albummer", "HeaderPlayOn": "Afspil På", - "HeaderProgram": "Program", - "HeaderRestartingJellyfinServer": "Genstarter Jellyfin Server", "HeaderSecondsValue": "{0} Sekunder", "HeaderSeriesStatus": "Serie Status", "HeaderStartNow": "Start Nu", "HeaderStatus": "Status", "HeaderStopRecording": "Stop Optagelse", "HeaderSubtitleAppearance": "Undertekst Udseende", - "HeaderSync": "Sync", - "HeaderTV": "TV", "HeaderTags": "Mærker", - "HeaderTopPlugins": "Bedste Plugins", - "HeaderType": "Type", - "HeaderVideo": "Video", "HeaderVideoQuality": "Video Kvalitet", "HeaderVideoType": "Video Type", "Hide": "Skjul", "HideWatchedContentFromLatestMedia": "Skjul set indhold fra seneste medier", "Home": "Hjem", "Horizontal": "Horisontalt", - "ImdbRating": "IMDb bedømmelse", - "InterlacedVideoNotSupported": "Interlaced video ikke understøttet", - "KeepDownload": "Behold hentning", "Label3DFormat": "3D format:", "LabelAlbum": "Album:", - "LabelArtist": "Kunstner", "LabelAudio": "Lyd", - "LabelBitrateMbps": "Bitrate (Mbps):", "LabelBlockContentWithTags": "Blokér filer med etiketter:", "LabelBurnSubtitles": "Brænd undertekster:", "LabelCache": "Cache:", "LabelCertificatePassword": "Adgangskode til certifikat:", "LabelCertificatePasswordHelp": "Hvis dit certifikat kræver en adgangskode, skriv det venligst her.", - "LabelDashboardTheme": "Server dashboard tema:", "LabelDateTimeLocale": "Dato og tid område:", "LabelDefaultScreen": "Standard skærm:", "LabelDisplayLanguage": "Visningssprog:", @@ -1266,9 +1196,7 @@ "LabelDisplayMode": "Visningstilstand:", "LabelDropShadow": "Drop skygge:", "LabelDynamicExternalId": "{0} ID:", - "LabelEmail": "Email:", "LabelEnableHardwareDecodingFor": "Aktivér hardware afkodning for:", - "LabelEpisode": "Afsnit", "LabelFont": "Skrifttype:", "LabelFormat": "Format:", "LabelHomeNetworkQuality": "Hjemme netværk kvalitet:", @@ -1276,7 +1204,6 @@ "LabelInternetQuality": "Internet kvalitet:", "LabelLogs": "Log:", "LabelMatchType": "Passer til type:", - "LabelMaxBitrate": "Maks bitrate:", "LabelMaxChromecastBitrate": "Chromecast streaming kvalitet:", "LabelMetadata": "Metadata:", "LabelModelUrl": "Model URL", @@ -1288,12 +1215,10 @@ "LabelScreensaver": "Pauseskærm:", "LabelSelectFolderGroups": "Gruppér automatisk indhold fra følgende mapper ind i visninger som Film, Musik og TV:", "LabelSelectFolderGroupsHelp": "Mapper der ikke er valgt vil blive vist for sig selv i deres egen visning.", - "LabelSkin": "Tema Skin:", "LabelSkipBackLength": "Gå tilbage længde:", "LabelSkipForwardLength": "Gå fremad længde:", "LabelSortBy": "Sortér efter:", "LabelSortOrder": "Sorteringsorden:", - "LabelSoundEffects": "Lydeffekter:", "LabelStatus": "Status:", "LabelSubtitles": "Undertekster", "LabelTVHomeScreen": "TV modus hjemmeskærm:", @@ -1305,46 +1230,34 @@ "LabelTranscodingContainer": "Beholder:", "LabelTranscodingVideoCodec": "Video codec:", "LabelType": "Type:", - "LabelUrl": "Link:", "LabelVersion": "Version:", - "LabelVersionNumber": "Version {0}", "LabelVideo": "Video", "LabelVideoCodec": "Video codec:", - "LabelWindowBackgroundColor": "Tekst baggrundsfarve:", "LabelXDlnaCap": "X-DLNA begrænsning:", "LabelXDlnaDoc": "X-DLNA dokumentation:", "LabelYear": "År:", "Large": "Stor", "LearnHowYouCanContribute": "Lær hvordan du kan bidrage.", "LeaveBlankToNotSetAPassword": "Du kan lade dette felt være tomt hvis du ikke ønsker adgangskode.", - "LetterButtonAbbreviation": "A", "Like": "Favorit", - "LinkGithub": "Github", - "LinksValue": "Link: {0}", "List": "Liste", "Live": "Live", "LiveTV": "Se Live TV", - "LiveTvFeatureDescription": "Stream Live TV til enhver Jellyfin app, med en kompatibel TV tuner installeret på din Jellyfin Server.", "Logo": "Logo", "ManageRecording": "Håndtér optagelse", - "MarkWatched": "Markér som set", "MediaInfoBitrate": "Bitrate", "MediaInfoCodec": "Codek", - "MediaInfoFormat": "Format", "MediaInfoFramerate": "Billederate", "MediaInfoInterlaced": "Interlaceret", "MediaInfoLayout": "Udlæg", "MediaInfoRefFrames": "Ref billeder", "MediaInfoSampleRate": "Sample rate", - "MediaInfoSoftware": "Software", "MediaInfoStreamTypeData": "Data", "MediaInfoStreamTypeVideo": "Video", "MediaIsBeingConverted": "Mediet bliver konverteret til et format der er kompatibel med enheden der afspiller mediet.", - "Medium": "Medie", "Menu": "Menu", "MessageImageFileTypeAllowed": "Kun JPEG og PNG filer er understøttet.", "MessageImageTypeNotSelected": "Vælg venligst en type af billede i drop-down menuen.", - "MessageNoDownloadsFound": "Ingen offline hentninger. Hent dine medier til offline brug ved at klikke Hent igennem app'en.", "MessagePlayAccessRestricted": "Afspilning af dette indhold er begrænset. Kontakt venligst server administratoren for mere information.", "Metadata": "Metadata", "Mobile": "Mobil", @@ -1364,60 +1277,40 @@ "OptionAuto": "Automatisk", "OptionAutomatic": "Automatisk", "OptionBanner": "Banner", - "OptionBeta": "Beta", "OptionBluray": "Blu-Ray", "OptionCaptionInfoExSamsung": "CaptionInfoEx (Samsung)", - "OptionConvertRecordingsToStreamingFormatHelp": "Optagelser vil blive konverteret med det samme til MKV for let afspilning på dine enheder.", - "OptionDev": "Dev", "OptionDownloadBannerImage": "Bannere", "OptionDownloadLogoImage": "Logo", "OptionDownloadMenuImage": "Menu", "OptionHasTrailer": "Forfilm", "OptionIsHD": "HD", "OptionIsSD": "SD", - "OptionIso": "ISO", "OptionLikes": "Favoritter", - "OptionLogo": "Logo", - "OptionMenu": "Menu", - "OptionMobileApps": "Mobil apps", - "OptionOff": "Fra", - "OptionOn": "Til", "OptionProfileVideo": "Video", "OptionProtocolHls": "Web Live Streaming", "OptionProtocolHttp": "Web", "OptionRegex": "Regex", "OptionRequirePerfectSubtitleMatchHelp": "At påkræve en perfekt match vil filtrere undertekster så kun dem der er testet og tjekket der passer nøjagtigt til din video fil vil blive inkluderet. At fravælge denne vil forøge chancerne for at undertekster bliver hentet, men vil også forøge risikoen for ikke-passende og ukorrekte undertekster.", "OptionResElement": "res element", - "OptionTags": "Mærker", - "OptionVideoBitrate": "Video Bitrate", "PerfectMatch": "Perfekt match", - "PersonTypePerson": "Person", "Photos": "Fotoer", "PlayCount": "Afspilninger", "PlayNext": "Afspil næste", "PlayNextEpisodeAutomatically": "Afspil næste afsnit automatisk", "PlaybackErrorNoCompatibleStream": "Denne klient er ikke kompatibel med medierne, og serveren sender ikke et kompatibelt medieformat.", - "PlaybackErrorNotAllowed": "Du har ikke adgang til at afspille dette indhold. Kontakt venligst system administratoren for detaljer.", - "PlaybackErrorPlaceHolder": "Indlæs venligst disken for at afspille denne video.", - "PlaybackSettings": "Afspilningsindstillinger", - "PlaybackSettingsIntro": "For at indstille standard afspilningsindstillingerne, stop video afspilning, herefter klik på dit bruger ikon i øverste højre sektion af denne app.", "Playlists": "Afspilningslister", "Previous": "Forrige", "Primary": "Primær", - "PrivacyPolicy": "Privatlivs politik", "Raised": "Forhøjet", "Rate": "Rate", "Recordings": "Optagelser", - "RefFramesNotSupported": "Antal af video reference billeder ikke understøttet", "RefreshMetadata": "Genopfrisk metadata", "RepeatAll": "Gentag alle", "RepeatMode": "Gentagelses tilstand", "RepeatOne": "Gentag én", - "RunAtStartup": "Kør ved opstart", "ScanForNewAndUpdatedFiles": "Skan for nye og opdaterede filer", "Schedule": "Tidsplan", "Screenshot": "Skærmbillede", - "SecondaryAudioNotSupported": "Lydspor skift ikke understøttet", "SeriesDisplayOrderHelp": "Sortér episoder efter luftdato, DVD-orden eller absolut nummerering.", "ShowTitle": "Vis titel", "ShowYear": "Vis år", @@ -1428,37 +1321,25 @@ "SmartSubtitlesHelp": "Undertekster der matcher det foretrukne sprog vil blive indlæst når lyden er et fremmed sprog.", "Sort": "Sortér", "SortByValue": "Sortér efter {0}", - "Standard": "Standard", "SubtitleAppearanceSettingsAlsoPassedToCastDevices": "Disse indstilinger bliver aktiveret på enhver Chromecast afspilning på denne enhed.", "SubtitleAppearanceSettingsDisclaimer": "Disse indstillinger bliver ikke aktiveret på grafiske undertekster (PGS, DVD, etc) eller ASS/SSA undertekster der har deres egen indbyggede stil.", - "SubtitleCodecNotSupported": "Undertekst format ikke understøttet", - "SubtitleSettings": "Undertekst indstillinger", - "SubtitleSettingsIntro": "For at konfigurere standard undertekst udseende og sprog indstillinger, stop video afspilning, herefter klik på dit bruger ikon i øverste højre sektion af denne app.", "Suggestions": "Forslag", "TV": "TV", "TabAlbums": "Albummer", "TabCodecs": "Codeks", - "TabDLNA": "DLNA", "TabGuide": "Vejledning", "TabInfo": "Information", "TabLiveTV": "Live TV", "TabLogs": "Log", "TabMetadata": "Metadata", - "TabNavigation": "Navigering", - "TabPlaylist": "Afspilningsliste", "TabServer": "Server", "TabStreaming": "Streamer", - "TabTV": "TV", "Tags": "Mærker", "TagsValue": "Mærker: {0}", "ThemeSongs": "Tema sange", "ThemeVideos": "Tema videoer", "TheseSettingsAffectSubtitlesOnThisDevice": "Disse indstillinger påvirker undertekster på denne enhed", "Thumb": "Tommel", - "TitleLiveTV": "Live TV", - "TitleServer": "Server", - "TitleSupport": "Support", - "Trailer": "Forfilm", "Trailers": "Forfilm", "Transcoding": "Omkodning", "Uniform": "Ensformig", @@ -1466,25 +1347,13 @@ "Up": "Op", "Upload": "Upload", "ValueCodec": "Codek: {0}", - "ValueLinks": "Link: {0}", "ValueMinutes": "{0} minutter", "ValueOneAlbum": "1 album", "ValueOneEpisode": "1 afsnit", - "ValueOneTrailer": "1 forfilm", "ValueSeconds": "{0} sekunder", "ValueSpecialEpisodeName": "Special - {0}", - "ValueStatus": "Status: {0}", "ValueVideoCodec": "Video Codek: {0}", - "VersionNumber": "Version {0}", "Vertical": "Vertikal", - "VideoBitDepthNotSupported": "Video bit dybde ikke understøttet", - "VideoCodecNotSupported": "Video codek ikke understøttet", - "VideoFramerateNotSupported": "Video billedrate ikke understøttet", - "VideoLevelNotSupported": "Video level ikke understøttet", - "VideoProfileNotSupported": "Video profil ikke understøttet", - "VideoRange": "Video rækkevidde", - "VideoResolutionNotSupported": "Video opløsning ikke understøttet", - "ViewTypeTvShows": "TV", "Watched": "Set", "Whitelist": "Hvidliste", "Yes": "Ja", @@ -1520,14 +1389,12 @@ "SubtitleOffset": "Undertekst Offset", "SelectAdminUsername": "Vælg et brugernavn til administrator kontoen.", "Season": "Sæson", - "ReleaseGroup": "Release Group", "Premiere": "Premiere", "PreferEmbeddedEpisodeInfosOverFileNames": "Foretrækker integreret episode information frem for filnavne", "PreferEmbeddedEpisodeInfosOverFileNamesHelp": "Dette bruger episode informationen fra de integrerede metadata, hvis den er tilgængelig.", "PlaybackData": "Afspilningsdata", "Person": "Person", "PasswordResetProviderHelp": "Vælg en leverandør af nulstil adgangskode, der skal bruges, når denne bruger anmoder om en nulstilling af adgangskode", - "OtherArtist": "Anden kunstner", "OptionThumbCard": "Thumb card", "OptionThumb": "Thumb", "OptionRandom": "Tilfældig", @@ -1550,8 +1417,6 @@ "MediaInfoStreamTypeSubtitle": "Undertekst", "MediaInfoStreamTypeEmbeddedImage": "Indlejret billede", "MediaInfoStreamTypeAudio": "Lyd", - "LaunchWebAppOnStartupHelp": "Åben web klienten i den standard web browser når serveren starter første gang. Dette vil ikke ske når restart server funktionen benyttes.", - "LaunchWebAppOnStartup": "Åben webinterfacet når serveren startes", "LabelWeb": "Web:", "LabelVideoResolution": "Videoopløsning:", "LabelVideoBitrate": "Video bitrate:", @@ -1591,7 +1456,6 @@ "FetchingData": "Henter yderligere data", "Episode": "Afsnit", "DeinterlaceMethodHelp": "Vælg hvilken konverteringsmulighed der skal bruges til transkodning af indhold.", - "CopyStreamURLError": "Der skete en fejl med at kopiere URL'en.", "CopyStreamURLSuccess": "URL blev kopieret.", "CopyStreamURL": "Kopiér stream URL", "ClientSettings": "Klient Indstillinger", @@ -1603,7 +1467,6 @@ "EveryXHours": "Hver {0} time", "OnApplicationStartup": "Ved programstart", "UnsupportedPlayback": "Jellyfin kan ikke dekryptere indhold, der er beskyttet af DRM, men alt indhold vil blive forsøgt afspillet uanset, inklusive beskyttede titler. Nogle filer kan eventuelt vises med sort skærm på grund af kryptering eller andre funktioner, der ikke understøttes, såsom interaktive titler.", - "MessageUnauthorizedUser": "Du har ikke tilladelse til at tilgå serveren på dette tidspunkt. Kontakt din serveradministrator for mere information.", "Filter": "Filtrer", "New": "Nye", "ButtonTogglePlaylist": "Spilleliste", diff --git a/src/strings/de.json b/src/strings/de.json index d7ef74e942..1c87a95a95 100644 --- a/src/strings/de.json +++ b/src/strings/de.json @@ -3,12 +3,9 @@ "AccessRestrictedTryAgainLater": "Der Zugriff ist derzeit eingeschränkt. Bitte versuche es später erneut.", "Actor": "Darsteller(in)", "Add": "Hinzufügen", - "AddGuideProviderHelp": "Fernsehprogrammquelle hinzufügen", - "AddItemToCollectionHelp": "Fügen Sie Elemente zu Sammlungen hinzu, indem Sie sie suchen und deren Rechtsklick- oder Antippmenü benutzen.", "AddToCollection": "Zur Sammlung hinzufügen", "AddToPlayQueue": "Zur Warteschlange hinzufügen", "AddToPlaylist": "Zur Wiedergabeliste hinzufügen", - "AddUser": "Benutzer anlegen", "AddedOnValue": "{0} hinzugefügt", "AdditionalNotificationServices": "Durchsuchen sie den Pluginkatalog um weitere Benachrichtigungsdienste zu installieren.", "AirDate": "Erstausstrahlung", @@ -20,7 +17,6 @@ "AllEpisodes": "Alle Folgen", "AllLanguages": "Alle Sprachen", "AllLibraries": "Alle Bibliotheken", - "AllowDeletionFromAll": "Erlaube Medienlöschung in allen Bibliotheken", "AllowHWTranscodingHelp": "Dem Tuner erlauben, Streams in Echtzeit zu transkodieren. Das hilft eventuell, die Transkodierung durch den Jellyfin Server zu reduzieren.", "AllowMediaConversion": "Erlaube Medienkonvertierung", "AllowMediaConversionHelp": "Erlaube oder unterbinde Zugriff auf die Medienkonvertierung.", @@ -39,24 +35,16 @@ "Ascending": "Aufsteigend", "AspectRatio": "Seitenverhältnis", "AttributeNew": "Neu", - "AudioBitDepthNotSupported": "Audiobittiefe nicht unterstützt", - "AudioBitrateNotSupported": "Audiobitrate nicht unterstützt", - "AudioChannelsNotSupported": "Audiokanäle nicht unterstützt", - "AudioCodecNotSupported": "Audiocodec nicht unterstützt", - "AudioProfileNotSupported": "Audioprofil nicht unterstützt", - "AudioSampleRateNotSupported": "Tonabtastrate nicht unterstützt", - "AutoBasedOnLanguageSetting": "Automatisch (basierend auf Spracheinstellung)", "Backdrop": "Hintergrund", "Backdrops": "Hintergründe", "BirthDateValue": "Geboren: {0}", "BirthLocation": "Geburtsort", "BirthPlaceValue": "Geburtsort: {0}", - "BobAndWeaveWithHelp": "Bob & Weave (höhere Qualität, aber langsamer)", "BookLibraryHelp": "Hörbücher und E-Books werden unterstützt. Schaue in den {0} Book Naming Guide {1}.", "Books": "Bücher", "BoxRear": "Box (Rückseite)", "Browse": "Blättern", - "BrowsePluginCatalogMessage": "Durchsuche unsere Bibliothek, um alle verfügbaren Plugins anzuzeigen.", + "MessageBrowsePluginCatalog": "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.", "ButtonAdd": "Hinzufügen", "ButtonAddMediaLibrary": "Füge Medienbibliothek hinzu", @@ -83,7 +71,6 @@ "ButtonGotIt": "Verstanden", "ButtonGuide": "TV Guide", "ButtonHelp": "Hilfe", - "ButtonLearnMore": "Erfahre mehr", "ButtonLibraryAccess": "Bibliothekszugang", "ButtonManualLogin": "Manuelle Anmeldung", "ButtonMore": "Mehr", @@ -125,7 +112,6 @@ "ButtonSubtitles": "Untertitel", "ButtonUninstall": "Deinstallieren", "ButtonUp": "Hoch", - "ButtonViewWebsite": "Besuche die Website", "CancelRecording": "Aufnahme abbrechen", "CancelSeries": "Serien abbrechen", "Categories": "Kategorien", @@ -153,7 +139,7 @@ "DatePlayed": "Abgespielt am", "DeathDateValue": "Gestorben: {0}", "Default": "Standard", - "DefaultErrorMessage": "Es gab einen Fehler beim verarbeiten der Anfrage. Bitte versuche es später erneut.", + "ErrorDefault": "Es gab einen Fehler beim verarbeiten der Anfrage. Bitte versuche es später erneut.", "DefaultMetadataLangaugeDescription": "Das sind deine Default-Werte, die bibliotheksspezifisch verändert werden können.", "DefaultSubtitlesHelp": "Untertitel werden gemäß der Standard- und Erzwungen-Ansicht aus den eingebetteten Metadaten geladen. Spracheinstellungen werden zur Verfügung gestellt, wenn mehrere Sprachen verfügbar sind.", "Delete": "Löschen", @@ -168,8 +154,8 @@ "DetectingDevices": "Suche Geräte", "DeviceAccessHelp": "Dies wird nur auf Geräte angewandt die eindeutig identifiziert werden können und verhindert nicht den Web-Zugriff. Gefilterter Zugriff auf Geräte verhindert die Nutzung neuer Geräte solange, bis der Zugriff für diese freigegeben wird.", "DirectPlaying": "Direktes Abspielen", - "DirectStreamHelp1": "Das Medium ist mit dem Abspielgerät kompatibel bzgl. Auflösung und Codecs (H.264, AC3, etc.), besitzt jedoch ein inkompatibles Containerformat (mkv, avi, wmv, etc.). Das Video wird in Echtzeit neuverpackt bevor es zum Abspielgerät gestreamt wird.", - "DirectStreamHelp2": "Direktes Streaming von Dateien benötigt sehr wenig Rechenleistung ohne Verlust der Videoqualität.", + "DirectStreamHelp1": "Das Medium ist mit dem Abspielgerät kompatibel bzgl. Auflösung und Codecs (H.264, AC3, etc.), besitzt jedoch ein inkompatibles Containerformat (mkv, avi, wmv, etc.). Das Video wird in Echtzeit neu verpackt bevor es zum Abspielgerät gesendet wird.", + "DirectStreamHelp2": "Direkt Stream benötigt sehr wenig Rechenleistung mit minimalem Verlust der Videoqualität.", "DirectStreaming": "Direktes Streaming", "Director": "Regisseur", "Directors": "Regisseure", @@ -220,7 +206,7 @@ "ErrorAddingXmlTvFile": "Fehler beim Zugriff auf die XMLTV Datei. Stelle bitte sicher, dass die Datei existiert und versuche es nochmal.", "ErrorDeletingItem": "Fehler beim Löschen des Mediums vom Jellyfin Server. Bitte stelle sicher dass der Jellyfin Server Schreibzugriff auf den Dateiordner hat und versuche es erneut.", "ErrorGettingTvLineups": "Ein Fehler trat beim Herunterladen des Fernsehprogramms auf. Bitte stellen Sie sicher, dass Ihre Informationen korrekt sind und versuchen Sie es erneut.", - "ErrorMessageStartHourGreaterThanEnd": "Die Endzeit muss größer als die Startzeit sein.", + "ErrorStartHourGreaterThanEnd": "Die Endzeit muss größer als die Startzeit sein.", "ErrorPleaseSelectLineup": "Bitte wählen Sie ein TV Programm und versuchen Sie es erneut. Wenn keine Programme verfügbar sind prüfen Sie bitte Benutzername, Passwort und Ihre Postleitzahl.", "ErrorSavingTvProvider": "Ein Fehler beim speichern des TV Verzeichnisses trat auf. Bitte stellen Sie sicher das dieser erreichbar ist und versuchen Sie es erneut.", "EveryNDays": "Alle {0} Tage", @@ -255,7 +241,6 @@ "H264CrfHelp": "Der Constant Rate Factor (CRF) bezeichnet die Einstellung für die Standardqualität des x264 Encoders. Setze einen Wert zwischen 0 und 51. Ein niedriger Wert resultiert in besserer Qualität (auf Kosten einer größeren Datei). Gängige Werte sind 18-28. Der Standard für x264 ist 23 und empfohlen als Startpunkt.", "EncoderPresetHelp": "Wähle einen schnelleren Wert um die Performance zu verbessern oder einen langsameren Wert um die Qualität zu verbessern.", "HDPrograms": "HD Programme", - "HandledByProxy": "Verwaltet vom Reverse Proxy", "HardwareAccelerationWarning": "Das Aktivieren der Hardwarebeschleunigung kann auf einigen Systemen zu Instabilität führen. Stellen Sie sicher, dass Ihr Betriebssystem sowie Ihre Grafikkarten-Treiber auf dem aktuellsten Stand sind. Wenn Sie nach der Aktivierung Probleme mit der Wiedergabe von Videos haben, müssen Sie diese Einstellung zurück auf \"Keine\" stellen.", "HeaderAccessSchedule": "Zugangsplan", "HeaderAccessScheduleHelp": "Erstelle einen Zugangsplan, um den Zugriff auf bestimmte Zeiten zu limitieren.", @@ -274,11 +259,10 @@ "HeaderAllowMediaDeletionFrom": "Erlaube Medienlöschung von", "HeaderApiKey": "API-Schlüssel", "HeaderApiKeys": "API-Schlüssel", - "HeaderApiKeysHelp": "Externe Applikationen benötigen einen API-Schlüssel, um mit dem Jellyfin-Server zu kommunizieren. API-Schlüssel werden beim Anmelden mit einem Jellyfin-Konto oder durch eine manuelle Freigabe vergeben.", + "HeaderApiKeysHelp": "Externe Applikationen benötigen einen API-Schlüssel, um mit dem Server zu kommunizieren. API-Schlüssel werden beim Anmelden mit einem normalen Benutzerkonto oder durch eine manuelle Freigabe vergeben.", "HeaderAppearsOn": "Erscheint auf", "HeaderAudioBooks": "Hörbücher", "HeaderAudioSettings": "Audioeinstellungen", - "HeaderAutomaticUpdates": "Automatische Updates", "HeaderBlockItemsWithNoRating": "Blockiere Inhalte mit keiner oder nicht erkannter Altersfreigabe:", "HeaderBooks": "Bücher", "HeaderBranding": "Branding / CSS", @@ -344,7 +328,7 @@ "HeaderItems": "Inhalte", "HeaderKeepRecording": "Aufnahme behalten", "HeaderKeepSeries": "Serie behalten", - "HeaderKodiMetadataHelp": "Jellyfin bietet native Unterstützung von NFO Metadatendateien. Um NFO Metadaten zu aktivieren oder deaktivieren, verwende den \"Metadaten\" Tab um die Optionen für deinen Medientypen zu konfigurieren.", + "HeaderKodiMetadataHelp": "Um NFO Metadaten zu aktivieren oder deaktivieren, bearbeite eine Bibliothek und mache den Metadaten-Speicherer Abschnitt ausfindig.", "HeaderLatestEpisodes": "Neueste Episoden", "HeaderLatestMedia": "Neueste Medien", "HeaderLatestMovies": "Neueste Filme", @@ -392,7 +376,7 @@ "HeaderPreferredMetadataLanguage": "Bevorzugte Sprache der Metadaten", "HeaderProfile": "Profil", "HeaderProfileInformation": "Profil Infomationen", - "HeaderProfileServerSettingsHelp": "Diese Werte geben an, wie Jellyfin Server sich Ihren Geräten präsentiert.", + "HeaderProfileServerSettingsHelp": "Diese Werte geben an, wie der Server sich Ihren Clients präsentiert.", "HeaderRecentlyPlayed": "Zuletzt gesehen", "HeaderRecordingOptions": "Aufnahmeeinstellungen", "HeaderRecordingPostProcessing": "Aufnahme Nachbearbeitung", @@ -410,13 +394,13 @@ "HeaderSecondsValue": "{0} Sekunden", "HeaderSelectCertificatePath": "Wählen Sie einen Zertifikat Ordner", "HeaderSelectMetadataPath": "Wähle Metadaten Pfad", - "HeaderSelectMetadataPathHelp": "Suche oder gib den Pfad für die Speicherung von Metadaten an. Das Verzeichnis muss beschreibbar sein.", + "HeaderSelectMetadataPathHelp": "Suche oder gib den Pfad für Metadaten an. Das Verzeichnis muss beschreibbar sein.", "HeaderSelectPath": "Verzeichnis Wählen", "HeaderSelectServer": "Wähle Server", "HeaderSelectServerCachePath": "Wähle Server Cache Pfad", "HeaderSelectServerCachePathHelp": "Suche oder gib den Pfad für die Speicherung von Server Cache Dateien an. Das Verzeichnis muss beschreibbar sein.", "HeaderSelectTranscodingPath": "Wähle Pfad für temporäre Transkodierdateien", - "HeaderSelectTranscodingPathHelp": "Suche oder gib den Pfad für die Speicherung von temporären Transkodierdateien an. Das Verzeichnis muss beschreibbar sein.", + "HeaderSelectTranscodingPathHelp": "Suche oder gib den Pfad für die Speicherung Transkodierdateien an. Das Verzeichnis muss beschreibbar sein.", "HeaderSendMessage": "Nachricht senden", "HeaderSeries": "Serien", "HeaderSeriesOptions": "Serienoptionen", @@ -428,7 +412,7 @@ "HeaderSortBy": "Sortiert nach", "HeaderSortOrder": "Sortierreihenfolge", "HeaderSpecialEpisodeInfo": "Spezialepisoden Information", - "HeaderSpecialFeatures": "Sonderfunktionen", + "HeaderSpecialFeatures": "Extras", "HeaderStartNow": "Starte jetzt", "HeaderStopRecording": "Aufnahme stoppen", "HeaderSubtitleAppearance": "Untertiteldarstellung", @@ -463,8 +447,8 @@ "HttpsRequiresCert": "Um https für externe Verbindungen zu erzwingen, benötigst du ein vertrauenswürdiges SSL-Zertifikat, z.B. von Let's Encrypt. Bitte stelle entweder ein Zertifikat bereit, oder deaktiviere sichere Verbindungen.", "Identify": "Identifizieren", "Images": "Bilder", - "ImportFavoriteChannelsHelp": "Wenn aktiviert, werden nur auf dem Tuner favorisierte Kanäle importiert.", - "ImportMissingEpisodesHelp": "Wenn aktiviert, werden Informationen über fehlende Episoden in Deine Jellyfin Datenbank importiert und innerhalb von Staffeln angezeigt. Dies kann zu deutlich längeren Bibliothek Scans führen.", + "ImportFavoriteChannelsHelp": "Nur auf dem Tuner favorisierte Kanäle werden importiert.", + "ImportMissingEpisodesHelp": "Informationen über fehlende Episoden werden in deine Datenbank importiert und innerhalb von Staffeln angezeigt. Dies kann zu deutlich längeren Bibliothek Scans führen.", "InstallingPackage": "Installiere {0} (Version {1})", "InstantMix": "Schnellmix", "ItemCount": "{0} Einträge", @@ -489,21 +473,19 @@ "LabelAlbumArtists": "Alben Interpreten:", "LabelAll": "Alle", "LabelAllowHWTranscoding": "Erlaube Hardware Transkodierung", - "LabelAllowServerAutoRestart": "Erlaube dem Server sich automatisch neuzustarten, um Updates durchzuführen", - "LabelAllowServerAutoRestartHelp": "Der Server startet nur wenn keine Nutzer aktiv sind neu.", "LabelAllowedRemoteAddresses": "Remote-IP Adressen Filter:", "LabelAllowedRemoteAddressesMode": "Remote IP Adressen Filtermodus:", "LabelAppName": "App Name", "LabelAppNameExample": "Beispiel: Sickbeard, Sonarr", "LabelArtists": "Interpreten:", - "LabelArtistsHelp": "Trenne mehrere Einträge durch ;", + "LabelArtistsHelp": "Trenne mehrere Künstler durch ein Semikolon.", "LabelAudioLanguagePreference": "Bevorzugte Audiosprache:", "LabelAutomaticallyRefreshInternetMetadataEvery": "Aktualisiere Metadaten automatisch aus dem Internet:", "LabelBindToLocalNetworkAddress": "Binde an lokale Netzwerkadresse:", - "LabelBindToLocalNetworkAddressHelp": "Optional. Überschreibt die lokale IP Adresse des HTTP Servers. Wenn leer, wird der Server an alle verfügbaren Adressen gebunden. Änderungen benötigen einen Neustart des Jellyfin Servers.", + "LabelBindToLocalNetworkAddressHelp": "Überschreibt die lokale IP Adresse für den HTTP Server. Wenn leer, wird der Server an alle verfügbaren Adressen gebunden. Änderungen benötigen einen Neustart des Jellyfin Servers.", "LabelBirthDate": "Geburtsdatum:", "LabelBirthYear": "Geburtsjahr:", - "LabelBlastMessageInterval": "Alive Meldungsintervall (Sekunden)", + "LabelBlastMessageInterval": "Alive Meldungsintervall", "LabelBlastMessageIntervalHelp": "Legt die Dauer in Sekunden zwischen den Server-Alive-Meldungen fest.", "LabelBlockContentWithTags": "Blockiere Inhalte mit Tags:", "LabelBurnSubtitles": "Untertitel einbrennen:", @@ -522,11 +504,10 @@ "LabelCustomCertificatePath": "Benutzerdefinierter SSL-Zertifikatspfad:", "LabelCustomCertificatePathHelp": "Pfad zu einer PKCS #12 Datei die ein Zertifikat und einen privaten Schlüssel enthält, um TLS Unterstützung für eine eigene Domain zu aktivieren.", "LabelCustomCss": "Benutzerdefiniertes CSS:", - "LabelCustomCssHelp": "Wende dein eigenes benutzerdefiniertes Styling auf die Weboberfläche an.", + "LabelCustomCssHelp": "Wende deine eigenen benutzerdefinierte Styles auf die Weboberfläche an.", "LabelCustomDeviceDisplayName": "Angezeigter Name:", "LabelCustomDeviceDisplayNameHelp": "Lege einen individuellen Anzeigenamen fest oder lasse das Feld leer, um den vom gerät übermittelten Namen zu nutzen.", "LabelCustomRating": "Eigene Bewertung:", - "LabelDashboardTheme": "Server Dashboard Theme:", "LabelDateAdded": "Hinzugefügt am:", "LabelDateAddedBehavior": "Verhalten für Hinzufügedatum bei neuen Inhalten:", "LabelDateAddedBehaviorHelp": "Wenn ein Metadatenwert vorhanden ist, wird dieser immer gegenüber den anderen Optionen bevorzugt werden.", @@ -558,12 +539,12 @@ "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)", + "LabelEnableDlnaClientDiscoveryInterval": "Client-Entdeckungs Intervall", "LabelEnableDlnaClientDiscoveryIntervalHelp": "Ermittelt die Zeit in Sekunden zwischen SSDP Suchanfragen die durch Jellyfin ausgeführt wurden.", "LabelEnableDlnaDebugLogging": "Aktiviere DLNA Debug Logging", "LabelEnableDlnaDebugLoggingHelp": "Erzeugt große Logdateien und sollte nur zur Fehlerbehebung benutzt werden.", "LabelEnableDlnaPlayTo": "Aktiviere DLNA Play To", - "LabelEnableDlnaPlayToHelp": "Jellyfin kann Geräte in Ihrem Netzwerk erkennen und bietet die Möglichkeit, diese fernzusteuern.", + "LabelEnableDlnaPlayToHelp": "Jellyfin kann Geräte in Ihrem Netzwerk erkennen und bietet die Möglichkeit diese fernzusteuern.", "LabelEnableDlnaServer": "DLNA-Server aktivieren", "LabelEnableDlnaServerHelp": "Erlaubt UPnP Geräten in Ihrem Netzwerk den Zugriff und die Wiedergabe von Inhalten.", "LabelEnableHardwareDecodingFor": "Aktiviere Hardware-Decoding für:", @@ -583,16 +564,16 @@ "LabelFont": "Schriftart:", "LabelForgotPasswordUsernameHelp": "Bitte gib deinen Benutzernamen ein, falls du dich daran erinnerst.", "LabelFriendlyName": "Benutzerfreundlicher Name:", - "LabelServerNameHelp": "Dieser Name wird benutzt um den Server zu identifizieren, standardmäßig wird der Server-/Computername verwendet.", + "LabelServerNameHelp": "Dieser Name wird benutzt, um den Server zu identifizieren, standardmäßig wird der Hostname des Servers verwendet.", "LabelGroupMoviesIntoCollections": "Gruppiere Filme in Collections", - "LabelGroupMoviesIntoCollectionsHelp": "Wenn Filmlisten angezeigt werden, dann werden Filme, die zu einer Collection gehören, als ein gruppiertes Element angezeigt.", + "LabelGroupMoviesIntoCollectionsHelp": "Wenn Filmlisten angezeigt werden, werden Filme in einer Sammlung als ein gruppiertes Element angezeigt.", "LabelEncoderPreset": "H264 Encoding Voreinstellung:", "LabelHardwareAccelerationType": "Hardware Beschleunigung:", "LabelHardwareAccelerationTypeHelp": "Hardwarebeschleunigung benötigt zusätzliche Konfiguration.", "LabelHomeNetworkQuality": "Heimnetzwerkqualität:", "LabelHomeScreenSectionValue": "Startseitenbereich {0}:", "LabelHttpsPort": "Lokale HTTPS-Portnummer:", - "LabelHttpsPortHelp": "Die TCP-Portnummer, die der HTTPS-Server von Jellyfin verwenden soll.", + "LabelHttpsPortHelp": "Die TCP-Portnummer für den HTTPS-Server.", "LabelIconMaxHeight": "Maximale Iconhöhe:", "LabelIconMaxHeightHelp": "Maximale Auflösung für durch UPnP übermittelte Icons:icon.", "LabelIconMaxWidth": "Maximale Iconbreite:", @@ -620,7 +601,7 @@ "LabelLanguage": "Sprache:", "LabelLineup": "TV Programm:", "LabelLocalHttpServerPortNumber": "Lokale HTTP Portnummer:", - "LabelLocalHttpServerPortNumberHelp": "Die TCP-Portnummer, die der HTTP-Server von Jellyfin verwenden soll.", + "LabelLocalHttpServerPortNumberHelp": "Die TCP-Portnummer für den HTTP-Server.", "LabelLockItemToPreventChanges": "Sperre diesen Eintrag um zukünftige Änderungen zu verhindern", "LabelLoginDisclaimer": "Anmeldung Haftungsausschluss:", "LabelLoginDisclaimerHelp": "Diese Nachricht wird am unteren Ende des Anmeldebildschirms angezeigt.", @@ -645,7 +626,7 @@ "LabelMetadataReaders": "Metadatenleser:", "LabelMetadataReadersHelp": "Lege deine bevorzugte lokale Metadatenquelle fest und ordne sie nach Prioritäten. Die erste Datei die gefunden wird, wird verwendet.", "LabelMetadataSavers": "Metadaten-Speicherer:", - "LabelMetadataSaversHelp": "Wähle das Dateiformat, in dem deine Metadaten gespeichert werden sollen.", + "LabelMetadataSaversHelp": "Wähle die Dateiformate, die beim Speichern deiner Metadaten verwendet werden sollen.", "LabelMethod": "Methode:", "LabelMinBackdropDownloadWidth": "Minimale Breite für zu herunterladende Hintergründe:", "LabelMinResumeDuration": "Minimale Dauer für Wiederaufnahme:", @@ -661,9 +642,9 @@ "LabelMovieCategories": "Filmkategorien:", "LabelMoviePrefix": "Filmpräfix:", "LabelMoviePrefixHelp": "Wenn ein Präfix in Filmtiteln angewendet wird, gib es hier ein damit der Server es korrekt behandeln kann.", - "LabelMovieRecordingPath": "Film Aufnahmepfad (Optional):", + "LabelMovieRecordingPath": "Film Aufnahmepfad:", "LabelMusicStreamingTranscodingBitrate": "Musik-Transkodierung Bitrate:", - "LabelMusicStreamingTranscodingBitrateHelp": "Wähle die maximale Bitrate für das streamen von Musik.", + "LabelMusicStreamingTranscodingBitrateHelp": "Wähle die maximale Bitrate für das Streamen von Musik.", "LabelNewName": "Neuer Name:", "LabelNewPassword": "Neues Passwort:", "LabelNewPasswordConfirm": "Neues Passwort wiederholen:", @@ -673,7 +654,7 @@ "LabelNumber": "Nummer:", "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:", + "LabelOptionalNetworkPath": "Geteilter 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. Beispielsweise {0} oder {1}.", "LabelOriginalAspectRatio": "Original Seitenverhältnis:", "LabelOriginalTitle": "Original Titel:", @@ -716,20 +697,19 @@ "LabelReleaseDate": "Veröffentlichungsdatum:", "LabelRemoteClientBitrateLimit": "Limit für die Internet Streaming Datenrate (Mbps):", "LabelRemoteClientBitrateLimitHelp": "Ein optionales Bitratenlimit pro Stream für alle Geräte außerhalb des Netzwerkes. Dies ist nützlich um zu verhindern, dass Geräte eine höhere Datenrate verwenden als die Internetverbindung erlaubt. Es kann zu erhöhter CPU-Last auf deinem Server kommen, da ggf. Videos in Echtzeit in eine niedrigere Bitrate transkodiert werden müssen.", - "LabelRuntimeMinutes": "Laufzeit (Minuten):", + "LabelRuntimeMinutes": "Laufzeit:", "LabelSaveLocalMetadata": "Speichere Bildmaterial und Metadaten in den Medienverzeichnissen", "LabelSaveLocalMetadataHelp": "Durch die Speicherung von Bildmaterial und Metadaten direkt in den Medienverzeichnissen, befinden sich diese an einem Ort wo sie sehr leicht bearbeitet werden können.", "LabelScheduledTaskLastRan": "Zuletzt ausgeführt vor: {0}. Benötigte Zeit: {1}.", "LabelScreensaver": "Bildschirmschoner:", "LabelSeasonNumber": "Staffelnummer:", - "LabelSecureConnectionsMode": "Sicherer Verbindungsmodus:", "LabelSelectFolderGroups": "Gruppiere Inhalte von folgenden Verzeichnissen automatisch zu Ansichten wie beispielsweise Filme, Musik und TV:", "LabelSelectFolderGroupsHelp": "Verzeichnisse die nicht markiert sind werden alleine mit ihren eigenen Ansichten angezeigt.", "LabelSelectUsers": "Wähle Benutzer:", "LabelSelectVersionToInstall": "Wähle die Version für die Installation:", "LabelSendNotificationToUsers": "Sende die Benachrichtigung an:", "LabelSerialNumber": "Seriennummer", - "LabelSeriesRecordingPath": "Serien Aufnahmepfad (optional):", + "LabelSeriesRecordingPath": "Serien Aufnahmepfad:", "LabelServerHost": "Adresse:", "LabelServerHostHelp": "192.168.1.100 oder https://myserver.com", "LabelSimultaneousConnectionLimit": "Paralleler Streamlimit:", @@ -744,7 +724,6 @@ "LabelSortBy": "Sortiert nach:", "LabelSortOrder": "Sortierreihenfolge:", "LabelSortTitle": "Sortierungs Titel:", - "LabelSoundEffects": "Soundeffekte:", "LabelSource": "Quelle:", "LabelSpecialSeasonsDisplayName": "Anzeigename für Serien-Specials:", "LabelSportsCategories": "Sportkategorie:", @@ -791,11 +770,10 @@ "LabelXDlnaDoc": "X-DLNA Dokument:", "LabelXDlnaDocHelp": "Legt den Inhalt des X_DLNADOC Elements in der urn:schemas-dlna-org:device-1-0 namespace fest.", "LabelYear": "Jahr:", - "LabelYourFirstName": "Vorname:", "LabelYoureDone": "Du bist fertig!", "LabelZipCode": "PLZ:", "LabelffmpegPath": "FFmpeg Verzeichnis:", - "LabelffmpegPathHelp": "Verzeichnis zur runtergeladenen FFmpeg Applikation oder zum Ordner, der FFMpeg enthält.", + "LabelffmpegPathHelp": "Verzeichnis zur FFmpeg Applikationsdatei oder zum Ordner, der FFmpeg enthält.", "LanNetworksHelp": "Komma separierte Liste von IP Adressen oder IP Masken die als lokale Netzwerke behandelt werden sollen um Bandbreitenlimitationen auszusetzen. Wenn befüllt werden alle anderen IP Adressen als externe Netzwerke behandelt und unterliegen den Bandbreitenlimitationen für externe Verbindungen. Wenn leer, wird nur das SubNetz des Servers als Lokales Netz gesetzt.", "Large": "Groß", "LatestFromLibrary": "Neueste {0}", @@ -845,14 +823,12 @@ "MessageCreateAccountAt": "Erstellen Sie ein Konto bei {0}", "MessageDeleteTaskTrigger": "Bist du dir sicher, dass du diesen Aufgabenauslöser entfernen möchtest?", "MessageDirectoryPickerBSDInstruction": "Für BSD müssen Sie ggf. Speicherplatz auf Ihrem FreeNAS Jail für Empby freigeben.", - "MessageDirectoryPickerInstruction": "Falls der Netzwerk Button deine Endgeräte nicht automatisch findet, kannst du deren Netzwerkpfade auch manuell eintragen. Zum Beispiel {0} oder {1}.", "MessageDirectoryPickerLinuxInstruction": "Für Linux auf Arch Linux, CentOS, Debian, Fedora, openSUSE oder Ubuntu muss der Service Benutzer mindestens lesenden Zugriff auf die Speicherorte der Medien besitzen.", "MessageDownloadQueued": "Download eingereiht.", "MessageEnablingOptionLongerScans": "Die Aktivierung dieser Option kann erheblich längere Bibliotheks-Scans verursachen.", "MessageFileReadError": "Es gab einen Fehler beim Lesen der Datei. Bitte versuche es erneut.", "MessageForgotPasswordFileCreated": "Die folgende Datei wurde auf deinem Server erstellt und enthält eine Anleitung, wie fortgefahren werden muss:", "MessageForgotPasswordInNetworkRequired": "Bitte versuche es erneut innerhalb deines Heimnetzwerks, um die Passwort Zurücksetzung zu starten.", - "MessageInstallPluginFromApp": "Dieses Plugin muss von der App aus installiert werden, in der du es benutzen willst.", "MessageInvalidForgotPasswordPin": "Ein ungültiger oder abgelaufener PIN-Code wurde eingegeben. Bitte versuche es noch einmal.", "MessageInvalidUser": "Falscher Benutzername oder Passwort. Bitte versuche es noch einmal.", "MessageItemSaved": "Element gespeichert.", @@ -877,7 +853,7 @@ "MessageYouHaveVersionInstalled": "Du hast momentan Version {0} installiert.", "Metadata": "Metadaten", "MetadataManager": "Metadaten-Manager", - "MetadataSettingChangeHelp": "Das Verändern der Metadata-Einstellungen hat nur Einfluss auf neu hinzugefügte Inhalte. Um eine Aktualisierung bereits hinzugefügter Inhalte durchzuführen, öffnen Sie bitte die Detail Ansicht und klicken die Aktualisieren Schaltfläche. Die Aktualisierung mehrerer Inhalte kann im Metadata Manager durchgeführt werden.", + "MetadataSettingChangeHelp": "Das Verändern der Metadata-Einstellungen hat nur Einfluss auf neu hinzugefügte Inhalte. Um eine Aktualisierung bereits hinzugefügter Inhalte durchzuführen, öffnen Sie bitte die Detailansicht und klicken die Aktualisieren-Schaltfläche. Die Aktualisierung mehrerer Inhalte kann im Metadata Manager durchgeführt werden.", "MinutesAfter": "Minuten nach", "MinutesBefore": "Minuten vor", "Mobile": "Smartphone", @@ -901,8 +877,8 @@ "NextUp": "Es folgt", "No": "Nein", "NoNewDevicesFound": "Keine neuen Geräte gefunden. Um einen neuen Tuner hinzuzufügen, schließe diesen Dialog und gebe die Geräteinformationen manuell ein.", - "NoNextUpItemsMessage": "Es wurde nichts gefunden. Schau dir deine Shows an!", - "NoPluginConfigurationMessage": "Dieses Plugin hat keine konfigurierbaren Einstellungen.", + "MessageNoNextUpItems": "Es wurde nichts gefunden. Schau dir deine Shows an!", + "MessageNoPluginConfiguration": "Dieses Plugin hat keine konfigurierbaren Einstellungen.", "NoSubtitleSearchResultsFound": "Keine Ergebnisse gefunden.", "NoSubtitles": "Keine", "NoSubtitlesHelp": "Untertitel werden standardmäßig nicht geladen. Sie können aber während der Wiedergabe manuell aktiviert werden.", @@ -923,7 +899,7 @@ "OptionAllowLinkSharingHelp": "Es werden nur Web-Seiten mit Medieninformationen geteilt. Medien hingenen werden niemals öffentlich geteilt. Die geteilten Inhalte sind nur begrenzt zugänglich werden nach {0} Tagen ungültig.", "OptionAllowManageLiveTv": "Erlaube Live-TV Aufnahmeplanung", "OptionAllowMediaPlayback": "Erlaube Medienwiedergabe", - "OptionAllowMediaPlaybackTranscodingHelp": "Das Einschränken des Transcoding-Zugriffes kann bei nicht unterstützten Medienformaten Abspielfehler in Jellyfin Apps hervorrufen.", + "OptionAllowMediaPlaybackTranscodingHelp": "Das Einschränken des Transcoding-Zugriffes kann durch nicht unterstützte Medienformate Abspielfehler in Clients hervorrufen.", "OptionAllowRemoteControlOthers": "Erlaube Fernsteuerung anderer Benutzer", "OptionAllowRemoteSharedDevices": "Erlaube Fernsteuerung geteilter Geräte", "OptionAllowRemoteSharedDevicesHelp": "DLNA-Geräte werden als gemeinsam genutzt betrachtet, bis ein Benutzer die Steuerung übernimmt.", @@ -934,7 +910,7 @@ "OptionArtist": "Interpret", "OptionAscending": "Aufsteigend", "OptionAutomaticallyGroupSeries": "Vermische Serieninhalte, die in verschiedenen Ordnern abgelegt sind", - "OptionAutomaticallyGroupSeriesHelp": "Wenn aktiviert, werden Inhalte einer Serie in verschiedenen Ordnern innerhalb einer Bibliothek als eine Serie angezeigt.", + "OptionAutomaticallyGroupSeriesHelp": "Inhalte einer Serie in verschiedenen Ordnern werden innerhalb einer Bibliothek als eine Serie angezeigt.", "OptionBlockBooks": "Bücher", "OptionBlockChannelContent": "Internet Channelinhalte", "OptionBlockLiveTvChannels": "Live-TV Kanäle", @@ -953,7 +929,7 @@ "OptionDatePlayed": "Gesehen am", "OptionDescending": "Absteigend", "OptionDisableUser": "Sperre diesen Benutzer", - "OptionDisableUserHelp": "Wenn deaktiviert wird der Server keine Verbindung von diesem Benutzer erlauben. Bestehende Verbindungen werden sofort beendet.", + "OptionDisableUserHelp": "Der Server keine Verbindung von diesem Benutzer erlauben. Bestehende Verbindungen werden sofort beendet.", "OptionDislikes": "Mag ich nicht", "OptionDisplayFolderView": "Darstellung in Verzeichnisansicht zeigt Medien Verzechnisse", "OptionDisplayFolderViewHelp": "Zeige eine Verzeichnisansicht neben deinen Bibliotheken an. Dies kann praktisch sein, wenn man nur Verzeichnisansichten verwendet.", @@ -961,7 +937,7 @@ "OptionDownloadBackImage": "Zurück", "OptionDownloadDiscImage": "Disk", "OptionDownloadImagesInAdvance": "Bilder vorab herunterladen", - "OptionDownloadImagesInAdvanceHelp": "Grundsätzlich werden die meisten Bilder erst dann runter geladen, wenn eine Jellyfin-App diese anfragt. Schalten Sie diese Option ein um alle Bilder im Voraus herunterzuladen, wenn neue Medien importiert wurden. Diese Einstellung kann zu signifikant längeren Bibliothekscans führen.", + "OptionDownloadImagesInAdvanceHelp": "Standardmäßig werden die meisten Bilder erst dann heruntergeladen, wenn ein Client diese anfragt. Schalten Sie diese Option ein um alle Bilder im Voraus herunterzuladen, wenn neue Medien importiert werden. Diese Einstellung kann zu signifikant längeren Bibliothekscans führen.", "OptionDownloadMenuImage": "Menü", "OptionDownloadPrimaryImage": "Primär", "OptionDvd": "DVD", @@ -991,7 +967,7 @@ "OptionHlsSegmentedSubtitles": "HLS segmentierte Untertitel", "OptionHomeVideos": "Fotos", "OptionIgnoreTranscodeByteRangeRequests": "Ignoriere Anfragen für Transkodierbytebereiche", - "OptionIgnoreTranscodeByteRangeRequestsHelp": "Falls aktiviert, werden diese Anfragen berücksichtigt aber Byte-Range-Header ignoriert werden.", + "OptionIgnoreTranscodeByteRangeRequestsHelp": "Diese Anfragen werden berücksichtigt, aber den Byte-Range-Header ignorieren.", "OptionImdbRating": "IMDb Bewertung", "OptionLikes": "Mag ich", "OptionMissingEpisode": "Fehlende Episoden", @@ -1002,9 +978,9 @@ "OptionOnInterval": "Nach einem Intervall", "OptionParentalRating": "Altersfreigabe", "OptionPlainStorageFolders": "Zeige alle Verzeichnisse als reine Speicherorte an", - "OptionPlainStorageFoldersHelp": "Falls aktiviert, werden alle Verzeichnisse in DIDL als \"object.container.storageFolder\" angezeigt, anstatt eines spezifischen Typs wie beispielsweise \"object.container.person.musicArtist\".", + "OptionPlainStorageFoldersHelp": "Alle Verzeichnisse werden in DIDL als \"object.container.storageFolder\" angezeigt, anstatt eines spezifischen Typs wie beispielsweise \"object.container.person.musicArtist\".", "OptionPlainVideoItems": "Zeige alle Videos als reine Videodateien an", - "OptionPlainVideoItemsHelp": "Falls aktiviert, werden alle Videos in DIDL als \"object.item.videoItem\" angezeigt, anstatt eines spezifischen Typs wie beispielsweise \"object.item.videoItem.movie\".", + "OptionPlainVideoItemsHelp": "Alle Videos werden in DIDL als \"object.item.videoItem\" angezeigt, anstatt eines spezifischen Typs wie beispielsweise \"object.item.videoItem.movie\".", "OptionPlayCount": "Zähler", "OptionPlayed": "Gesehen", "OptionPremiereDate": "Premiere", @@ -1039,7 +1015,7 @@ "PasswordMatchError": "Die Passwörter müssen übereinstimmen.", "PasswordResetComplete": "Das Passwort wurde zurückgesetzt.", "PasswordResetConfirmation": "Möchtest du das Passwort wirklich zurücksetzen?", - "PasswordResetHeader": "Passwort zurücksetzen", + "HeaderResetPassword": "Passwort zurücksetzen", "PasswordSaved": "Passwort gespeichert.", "People": "Personen", "PerfectMatch": "Perfektes Ergbnis", @@ -1061,12 +1037,11 @@ "PleaseEnterNameOrId": "Bitte gib einen Namen oder eine externe ID an.", "PleaseRestartServerName": "Bitte starte Jellyfin Server - {0} neu.", "PleaseSelectTwoItems": "Bitte wähle mindestens zwei Optionen aus.", - "PluginInstalledMessage": "Das Plugin wurde erfolgreich installiert. Der Jellyfin-Server muss neu gestartet werden, um die Änderungen zu übernehmen.", + "MessagePluginInstalled": "Das Plugin wurde erfolgreich installiert. Der Jellyfin-Server muss neu gestartet werden, um die Änderungen zu übernehmen.", "PreferEmbeddedTitlesOverFileNames": "Bevorzuge eingebettete Titel vor Dateinamen", "PreferEmbeddedTitlesOverFileNamesHelp": "Das bestimmt den Standard Displaytitel wenn keine lokale oder Internetmetadaten verfügbar sind.", "PreferEmbeddedEpisodeInfosOverFileNames": "Bevorzuge eingebettete Episodeninformationen vor Dateinamen", "PreferEmbeddedEpisodeInfosOverFileNamesHelp": "Bevorzugt die in den Metadaten eingebetteten Episodeninformationen.", - "PreferredNotRequired": "Bevorzugt, aber nicht benötigt", "Premieres": "Premieren", "Previous": "Vorheriges", "Primary": "Primär", @@ -1074,7 +1049,6 @@ "ProductionLocations": "Drehorte", "Programs": "Programme", "Quality": "Qualität", - "QueueAllFromHere": "Setze alles von hier auf Warteschlange", "Raised": "Angehoben", "Rate": "Bewerte", "RecentlyWatched": "Kürzlich gesehen", @@ -1085,11 +1059,11 @@ "Record": "Aufnehmen", "RecordSeries": "Serie aufnehmen", "RecordingCancelled": "Aufnahme abgebrochen.", - "RecordingPathChangeMessage": "Das Ändern des Aufnahmeverzeichnisses wird alte Aufnahmen nicht automatisch verschieben. Wenn Du das möchtest, musst Du das selber machen.", + "MessageChangeRecordingPath": "Das Ändern des Aufnahmeverzeichnisses wird alte Aufnahmen nicht automatisch verschieben. Wenn Du das möchtest, musst Du das selber machen.", "RecordingScheduled": "Aufnahme geplant.", "Recordings": "Aufnahmen", "Refresh": "Aktualisieren", - "RefreshDialogHelp": "Metadaten werden auf Basis der Einstellungen und Internet Services in den Jellyfin Server Einstellungen aktualisiert.", + "RefreshDialogHelp": "Metadaten werden auf Basis der Einstellungen und Internet Services, die im Dashboard aktiviert sind, aktualisiert.", "RefreshMetadata": "Aktualisiere Metadaten", "RefreshQueued": "Aktualisierung eingereiht.", "ReleaseDate": "Veröffentlichungsdatum", @@ -1103,10 +1077,8 @@ "RepeatOne": "Dieses wiederholen", "ReplaceAllMetadata": "Ersetze alle Metadaten", "ReplaceExistingImages": "Ersetze vorhandene Bilder", - "RequiredForAllRemoteConnections": "Benötigt für alle Remote Verbindungen", "ResumeAt": "Fortsetzen bei {0}", "Rewind": "Zurückspulen", - "RunAtStartup": "Nach Hochfahren automatisch starten", "Runtime": "Laufzeit", "Saturday": "Samstag", "Save": "Speichern", @@ -1193,7 +1165,6 @@ "TabParentalControl": "Kindersicherung", "TabPassword": "Passwort", "TabPlayback": "Wiedergabe", - "TabPlaylist": "Wiedergabeliste", "TabPlaylists": "Wiedergabelisten", "TabProfile": "Profil", "TabProfiles": "Profile", @@ -1224,7 +1195,7 @@ "TvLibraryHelp": "Überprüfe den {0}Serienbenennungsleitfaden{1}.", "Uniform": "Einheitlich", "UninstallPluginConfirmation": "Möchtest du {0} wirklich deinstallieren?", - "UninstallPluginHeader": "Plugin deinstallieren", + "HeaderUninstallPlugin": "Plugin deinstallieren", "Unmute": "Ton ein", "Unplayed": "Ungesehen", "Unrated": "Nicht bewertet", @@ -1251,7 +1222,6 @@ "ValueTimeLimitSingleHour": "Zeitlimit: 1 Stunde", "Vertical": "Vertikal", "ViewAlbum": "Zeige Album", - "ViewArtist": "Zeige Darsteller", "ViewPlaybackInfo": "Abspielinfo ansehen", "Watched": "Gesehen", "Wednesday": "Mittwoch", @@ -1308,7 +1278,6 @@ "LabelName": "Name:", "LabelProfileCodecs": "Codecs:", "LabelProfileContainer": "Container:", - "LabelSkin": "Textur:", "Art": "Coverkunst", "Name": "Name", "Songs": "Songs", @@ -1318,10 +1287,8 @@ "ColorTransfer": "Farbtransfer", "LabelTypeText": "Text", "LabelVersion": "Version:", - "LabelVersionNumber": "Version {0}", "LabelVideo": "Video", "LeaveBlankToNotSetAPassword": "Dieses Feld frei lassen, um kein Passwort zu setzen.", - "LinksValue": "Links: {0}", "MessageImageFileTypeAllowed": "Nur JPEG- und PNG-Dateien werden unterstützt.", "MessageImageTypeNotSelected": "Bitte wähle einen Bildtyp aus dem Drop-Down Menü aus.", "Normal": "Normal", @@ -1372,30 +1339,21 @@ "ValueCodec": "Codec: {0}", "ValueContainer": "Container: {0}", "ValueDiscNumber": "Disk {0}", - "ValueStatus": "Status: {0}", - "ValueStudio": "Studio: {0}", - "ValueStudios": "Studios: {0}", "ValueVideoCodec": "Videocodec: {0}", - "ViewTypeTvShows": "TV", - "HeaderClients": "Endgeräte", - "LabelLimit": "Limit:", "LabelTag": "Tag:", "LabelTagline": "Markierungen:", - "LinkCommunity": "Community", "OptionDownloadThumbImage": "Vorschau", "OptionMax": "Maximum", "OptionProfileVideoAudio": "Video Audio", "OptionSubstring": "Teilzeichenfolge", - "OptionTags": "Markierungen", "OptionThumb": "Miniaturansicht", "Premiere": "Premiere", "Smart": "Schlau", "Tags": "Markierungen", "TagsValue": "Markierungen: {0}", "Thumb": "Miniaturansicht", - "TitleSupport": "Hilfe", "Whitelist": "Erlaubt", - "AuthProviderHelp": "Wähle einen Authentifizierungsanbieter, der zur Authentifizierung des Passworts dieses Benutzes verwendet werden soll.", + "AuthProviderHelp": "Wähle einen Authentifizierungsanbieter, der zur Authentifizierung des Passworts dieses Benutzers verwendet werden soll.", "Features": "Funktionen", "HeaderFavoriteBooks": "Lieblingsbücher", "HeaderFavoriteMovies": "Lieblingsfilme", @@ -1412,7 +1370,6 @@ "DashboardVersionNumber": "Version: {0}", "DashboardServerName": "Server: {0}", "LabelWeb": "Web:", - "MediaInfoSoftware": "Software", "MediaInfoStreamTypeAudio": "Audio", "MediaInfoStreamTypeData": "Daten", "MediaInfoStreamTypeEmbeddedImage": "Eingebettetes Bild", @@ -1422,7 +1379,7 @@ "OptionDownloadBoxImage": "Box", "OptionLoginAttemptsBeforeLockout": "Legt fest, wie viele falsche Anmeldeversuche durchgeführt werden können, bevor es zur Sperrung kommt.", "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", + "PasswordResetProviderHelp": "Wählen Sie einen Password Reset Provider, der verwendet werden soll, wenn dieser Benutzer ein Passwort zurücksetzen möchte.", "Box": "Box", "HeaderHome": "Startseite", "LabelAudioCodec": "Audiocodec:", @@ -1440,15 +1397,13 @@ "LabelTranscodingFramerate": "Transcodierrate:", "LabelAudioSampleRate": "Audio-Abtastrate:", "LabelBaseUrl": "Basis URL:", - "LabelBaseUrlHelp": "Fügt ein benutzerdefiniertes Unterverzeichnis zur Server-URL hinzu, zum Beispiel: http://example.com/<baseurl>", + "LabelBaseUrlHelp": "Füge ein benutzerdefiniertes Unterverzeichnis zur Server-URL hinzu, zum Beispiel: http://example.com/<baseurl>", "LabelFolder": "Ordner:", "LabelPasswordResetProvider": "Anbieter zum Zurücksetzen des Passwortes:", "LabelPlayMethod": "Spielmethode:", "DashboardOperatingSystem": "Betriebssystem: {0}", "DashboardArchitecture": "Architektur: {0}", "LabelVideoCodec": "Videocodec:", - "LaunchWebAppOnStartup": "Das Webinterface öffnen, wenn der Server startet", - "LaunchWebAppOnStartupHelp": "Öffne den Webclient in Standard-Webbrowser, wenn der Server zum ersten Mal gestartet wird. Dies tritt bei Verwendung der Neustart-Serverfunktion nicht auf.", "MusicArtist": "Interpret", "MusicAlbum": "Musikalbum", "MoreMediaInfo": "Medieninformation", @@ -1467,11 +1422,9 @@ "MusicLibraryHelp": "Überprüfe den {0}Musikbenennungsguide{1}.", "OptionRandom": "Zufällig", "TabNetworking": "Netzwerk", - "VideoRange": "Videobereich", "ButtonSplit": "Trennen", "SelectAdminUsername": "Bitte wählen Sie einen Benutzernamen für den Administrator-Account.", "HeaderNavigation": "Navigation", - "CopyStreamURLError": "Beim Kopieren der URL ist ein Fehler aufgetreten.", "MessageConfirmAppExit": "Wirklich verlassen?", "LabelVideoResolution": "Videoauflösung:", "LabelStreamType": "Streamtyp:", @@ -1499,9 +1452,7 @@ "PathNotFound": "Der Pfad konnte nicht gefunden werden. Bitte versichere dich dass der Pfad korrekt ist und versuche es erneut.", "Track": "Track", "Season": "Staffel", - "ReleaseGroup": "Veröffentlichungs-Gruppe", "Person": "Person", - "OtherArtist": "Andere Künstler", "Movie": "Film", "Episode": "Episode", "Artist": "Künstler", @@ -1517,12 +1468,10 @@ "UnsupportedPlayback": "Jellyfin kann keine DRM-geschützten Inhalte entschlüsseln, aber es wird versucht, alle Inhalte unabhängig davon zu entschlüsseln, einschließlich geschützter Titel. Einige Dateien können aufgrund der Verschlüsselung oder anderer nicht unterstützter Funktionen, wie z.B. interaktive Titel, komplett schwarz erscheinen.", "Filter": "Filter", "New": "Neu", - "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", "ApiKeysCaption": "Liste der aktuell aktivierten API-Schlüssel", - "LabelNightly": "Nightly", "LabelStable": "Stable", "LabelChromecastVersion": "Chromecast Version", "HeaderDVR": "DVR", @@ -1530,7 +1479,7 @@ "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.", + "LabelEnableHttpsHelp": "Beobachtet den konfigurierten HTTPS-Port. Damit dies geschehen kann, muss ein gültiges Zertifikat bereitgestellt werden.", "LabelEnableHttps": "Aktiviere HTTPS", "HeaderServerAddressSettings": "Server-Adresseinstellungen", "HeaderRemoteAccessSettings": "Fernzugriffs-Einstellungen", @@ -1569,8 +1518,8 @@ "EnableDetailsBanner": "Detailbanner", "ShowMore": "Mehr anzeigen", "ShowLess": "Weniger anzeigen", - "EnableBlurhashHelp": "Bilder, die noch nicht fertig geladen wurden, werden mit einem verschwommenen Platzhalter dargestellt", - "EnableBlurhash": "Verschwommene Platzhalter für Bilder erlauben", + "EnableBlurHashHelp": "Bilder, die noch nicht fertig geladen wurden, werden mit einem verschwommenen Platzhalter dargestellt.", + "EnableBlurHash": "Verschwommene Platzhalter für Bilder erlauben", "EnableFasterAnimations": "Schnellere Animationen", "EnableDecodingColorDepth10Vp9": "Aktiviere 10-Bit-Hardware-Dekodierung für VP9", "EnableDecodingColorDepth10Hevc": "Aktiviere 10-Bit-Hardware-Dekodierung für HEVC", @@ -1590,5 +1539,8 @@ "Writers": "Autoren", "ClearQueue": "Wiedergabeliste leeren", "StopPlayback": "Wiedergabe anhalten", - "ViewAlbumArtist": "Zeige Albumkünstler" + "ViewAlbumArtist": "Zeige Albumkünstler", + "PreviousTrack": "Zum Vorherigen springen", + "NextTrack": "Zum Nächsten springen", + "LabelUnstable": "Instabil" } diff --git a/src/strings/el.json b/src/strings/el.json index 43caa0975c..c390f7bde4 100644 --- a/src/strings/el.json +++ b/src/strings/el.json @@ -32,7 +32,6 @@ "AttributeNew": "Νέο", "Audio": "Ήχος", "Auto": "Αυτόματο", - "AutoBasedOnLanguageSetting": "Αυτόματα (με βάση τη ρύθμιση γλώσσας)", "Backdrop": "Φόντο", "Backdrops": "Σκηνικά", "Banner": "Πανό", @@ -43,7 +42,7 @@ "Books": "Βιβλία", "Box": "Κουτί", "Browse": "Αναζήτηση", - "BrowsePluginCatalogMessage": "Πλοηγηθείτε στον κατάλογο plugin μας για να δείτε τα διαθέσιμα plugins.", + "MessageBrowsePluginCatalog": "Πλοηγηθείτε στον κατάλογο plugin μας για να δείτε τα διαθέσιμα plugins.", "BurnSubtitlesHelp": "Καθορίζει αν ο διακομιστής πρέπει να εγγράψει τους υπότιτλους κατά τη μετατροπή βίντεο ανάλογα με τη μορφή των υπότιτλων. Η αποφυγή της εγγραφής στους υπότιτλους θα βελτιώσει την απόδοση του διακομιστή. Επιλέξτε Αυτόματα για να εγγράψετε μορφές βασισμένες σε εικόνες (VOBSUB, PGS, SUB / IDX κ.λπ.) και ορισμένους υπότιτλους ASS / SSA.", "ButtonAdd": "Πρόσθεσε", "ButtonAddMediaLibrary": "Προσθήκη βιβλιοθήκης πολυμέσων", @@ -73,7 +72,6 @@ "ButtonHelp": "Βοήθεια", "ButtonHome": "Αρχική", "ButtonInfo": "Πληροφορία", - "ButtonLearnMore": "Μάθετε περισσότερα", "ButtonLibraryAccess": "Πρόσβαση στη βιβλιοθήκη", "ButtonManualLogin": "Χειροκίνητη Είσοδος", "ButtonMore": "Περισσότερα", @@ -116,7 +114,6 @@ "ButtonTrailer": "Τρέϊλερ", "ButtonUninstall": "Απεγκατάσταση", "ButtonUp": "Επάνω", - "ButtonViewWebsite": "Εμφάνιση ιστοσελίδας", "ButtonWebsite": "Ιστοσελίδα", "CancelRecording": "Ακύρωση Εγγραφής", "CancelSeries": "Ακύρωση Σειράς", @@ -146,7 +143,7 @@ "DatePlayed": "Ημερομηνία Αναπαραγωγής", "DeathDateValue": "Πέθανε: {0}", "Default": "Προεπιλογή", - "DefaultErrorMessage": "Παρουσιάστηκε σφάλμα κατά την επεξεργασία του αιτήματός σας. Παρακαλώ δοκιμάστε ξανά αργότερα.", + "ErrorDefault": "Παρουσιάστηκε σφάλμα κατά την επεξεργασία του αιτήματός σας. Παρακαλώ δοκιμάστε ξανά αργότερα.", "DefaultMetadataLangaugeDescription": "Αυτές είναι οι προεπιλογές σας και μπορούν να προσαρμοστούν σε βάση ανά βιβλιοθήκη.", "DefaultSubtitlesHelp": "Οι υπότιτλοι φορτώνονται με βάση τις προεπιλεγμένες και αναγκασμένες σημαίες στα ενσωματωμένα μεταδεδομένα. Οι προτιμήσεις γλώσσας εξετάζονται όταν υπάρχουν πολλές επιλογές.", "Delete": "Διαγραφή", @@ -206,7 +203,7 @@ "Episodes": "Επεισόδια", "ErrorAddingMediaPathToVirtualFolder": "Παρουσιάστηκε σφάλμα κατά την προσθήκη της διαδρομής πολυμέσων. Βεβαιωθείτε ότι η διαδρομή είναι έγκυρη και ότι η διαδικασία του διακομιστή Jellyfin έχει πρόσβαση σε αυτήν τη θέση.", "ErrorDeletingItem": "Παρουσιάστηκε σφάλμα κατά τη διαγραφή του στοιχείου από τον διακομιστή Jellyfin. Βεβαιωθείτε ότι ο διακομιστής Jellyfin έχει πρόσβαση εγγραφής στο φάκελο πολυμέσων και προσπαθήστε ξανά.", - "ErrorMessageStartHourGreaterThanEnd": "Η ώρα λήξης πρέπει να είναι μεγαλύτερη από την ώρα έναρξης.", + "ErrorStartHourGreaterThanEnd": "Η ώρα λήξης πρέπει να είναι μεγαλύτερη από την ώρα έναρξης.", "EveryNDays": "Κάθε {0} μέρες", "ExitFullscreen": "Έξοδος από τη πλήρη οθόνη", "ExtraLarge": "Πολύ Μεγάλο", @@ -260,7 +257,6 @@ "HeaderAppearsOn": "Εμφανίζεται σε", "HeaderAudioBooks": "Μουσικά Βιβλία", "HeaderAudioSettings": "Ρυθμίσεις Ήχου", - "HeaderAutomaticUpdates": "Αυτόματες Ανανεώσεις", "HeaderBlockItemsWithNoRating": "Αποκλεισμός στοιχείων χωρίς ή μη αναγνωρισμένων πληροφοριών αξιολόγησης:", "HeaderBooks": "Βιβλία", "HeaderCancelRecording": "Ακύρωση Εγγραφής", @@ -443,8 +439,6 @@ "LabelAlbumArtPN": "PN άλμπουμ art:", "LabelAlbumArtists": "Καλλιτέχνες του 'Αλμπουμ:", "LabelAll": "Όλα", - "LabelAllowServerAutoRestart": "Αυτόματη επανεκκίνηση του σέρβερ για να εγκαταστήσει τις αναβαθμίσεις", - "LabelAllowServerAutoRestartHelp": "Ο server θα κάνει επανεκκίνηση μόνο κατά τη διάρκεια αδρανών περιόδων, όταν δεν υπάρχουν ενεργοί χρήστες.", "LabelAppName": "Όνομα App", "LabelAppNameExample": "Παράδειγμα: Sickbeard, NzbDrone", "LabelArtists": "Καλλιτέχνες:", @@ -474,7 +468,6 @@ "LabelCustomCssHelp": "Εφαρμόστε το δικό σας προσαρμοσμένο css στην διεπαφή ιστού.", "LabelCustomDeviceDisplayName": "Εμφάνιση ονόματος:", "LabelCustomRating": "Προσαρμοσμένη αξιολόγηση:", - "LabelDashboardTheme": "Θέμα εμφάνισης πίνακα ελέγχου server:", "LabelDateAdded": "Ημερνία προσθήκης:", "LabelDateTimeLocale": "Ημερομηνία τοπική ώρα:", "LabelDay": "Ημέρα:", @@ -655,7 +648,6 @@ "LabelSortBy": "Ταξινόμηση κατά:", "LabelSortOrder": "Σειρά ταξινόμησης:", "LabelSortTitle": "Τίτλος ταξινόμησης:", - "LabelSoundEffects": "Ηχητικά Εφέ:", "LabelSource": "Πηγή:", "LabelSpecialSeasonsDisplayName": "Ειδικό εμφανιζόμενο όνομα σεζόν:", "LabelStartWhenPossible": "Έναρξη όταν είναι δυνατό:", @@ -692,12 +684,10 @@ "LabelValue": "Τιμή:", "LabelVersion": "Έκδοση:", "LabelVersionInstalled": "{0} εγκαταστήθηκε", - "LabelVersionNumber": "Έκδοση {0}", "LabelVideo": "Βίντεο", "LabelXDlnaCapHelp": "Καθορίζει το περιεχόμενο του στοιχείου X_DLNACAP στο urn:schemas-dlna-org:device-1-0 namespace.", "LabelXDlnaDocHelp": "Καθορίζει το περιεχόμενο του στοιχείου X_DLNACAP στο urn:schemas-dlna-org:device-1-0 namespace.", "LabelYear": "Έτος:", - "LabelYourFirstName": "Το όνομά σας:", "LabelYoureDone": "Είστε Έτοιμοι!", "LabelZipCode": "Ταχυδ/κός κώδικας:", "Large": "Μεγάλο", @@ -705,7 +695,6 @@ "LearnHowYouCanContribute": "Μάθετε πώς μπορείτε να συμβάλλετε.", "LibraryAccessHelp": "Επιλέξτε τους φακέλους μέσων για να το μοιραστείτε με αυτόν το χρήστη. Οι διαχειριστές θα έχουν τη δυνατότητα να επεξεργάζεστε όλα φακέλους χρησιμοποιώντας τα μεταδεδομένα manager.", "Like": "Μου αρέσει", - "LinksValue": "Σύνδεσμοι: {0}", "List": "Λίστα", "Live": "Ζωντανά", "LiveBroadcasts": "Ζωντανές εκπομπές", @@ -750,7 +739,6 @@ "MessageFileReadError": "Παρουσιάστηκε σφάλμα κατά την ανάγνωση του αρχείου. Παρακαλώ προσπάθησε ξανά.", "MessageForgotPasswordFileCreated": "Το ακόλουθο αρχείο έχει δημιουργηθεί στο διακομιστή σας και περιέχει οδηγίες για το πώς να συνεχίσετε:", "MessageForgotPasswordInNetworkRequired": "Παρακαλώ δοκιμάστε ξανά μέσα στο οικιακό σας δίκτυο για να ξεκινήσετε τη διαδικασία επαναφοράς κωδικού πρόσβασης.", - "MessageInstallPluginFromApp": "Αυτό το πρόσθετο πρέπει να εγκατασταθεί την εφαρμογή που σκοπεύετε να χρησιμοποιήσετε.", "MessageInvalidForgotPasswordPin": "Καταχωρήθηκε ένα άκυρο ή ληγμένο PIN. Παρακαλώ προσπαθήστε ξανά.", "MessageInvalidUser": "Μη έγκυρο όνομα ή κωδικός. Παρακαλώ προσπαθήστε ξανά.", "MessageItemSaved": "Το στοιχείο αποθηκεύτηκε.", @@ -777,7 +765,6 @@ "MinutesBefore": "λεπτά πριν", "Mobile": "Κινητό/Τάμπλετ", "Monday": "Δευτέρα", - "More": "Περισσότερα", "MoreFromValue": "Περισσότερα από {0}", "MoreUsersCanBeAddedLater": "Περισσότεροι χρήστες μπορούν να προστεθούν αργότερα στον πίνακα ελέγχου.", "MoveLeft": "Κινήσου αριστερά", @@ -796,8 +783,8 @@ "Next": "Επόμενο", "NextUp": "Επόμενο", "No": "Οχι", - "NoNextUpItemsMessage": "Δεν βρέθηκε κανένα. Ξεκινήστε παρακολουθώντας τις εκπομπές σας!", - "NoPluginConfigurationMessage": "Αυτό το plugin δεν απαιτεί ρυθμίσεις.", + "MessageNoNextUpItems": "Δεν βρέθηκε κανένα. Ξεκινήστε παρακολουθώντας τις εκπομπές σας!", + "MessageNoPluginConfiguration": "Αυτό το plugin δεν απαιτεί ρυθμίσεις.", "NoSubtitleSearchResultsFound": "Δεν βρέθηκαν αποτελέσματα.", "NoSubtitles": "Χωρίς Υπότιτλους", "NoSubtitlesHelp": "Οι υπότιτλοι δεν θα φορτωθούν από προεπιλογή.Μπορούν ακόμα να ενεργοποιούνται χειροκίνητα κατά την αναπαραγωγή.", @@ -927,7 +914,7 @@ "PasswordMatchError": "Ο κωδικός πρόσβασης και ο κωδικός επιβεβαίωσης πρέπει να είναι ίδιοι.", "PasswordResetComplete": "Ο κωδικός πρόσβασης επαναφέρθηκε.", "PasswordResetConfirmation": "Είστε σίγουροι ότι θέλετε να επαναφέρετε τον κωδικό πρόσβασης;", - "PasswordResetHeader": "Επαναφορά του κωδικού πρόσβασης", + "HeaderResetPassword": "Επαναφορά του κωδικού πρόσβασης", "PasswordSaved": "Ο κωδικός πρόσβασης αποθηκεύτηκε.", "People": "Πρόσωπα", "PerfectMatch": "Τέλεια αντιστοίχιση", @@ -948,8 +935,7 @@ "PleaseEnterNameOrId": "Εισαγάγετε ένα όνομα ή ένα εξωτερικό αναγνωριστικό.", "PleaseRestartServerName": "Κάντε επανεκκίνηση του Jellyfin Server - {0}.", "PleaseSelectTwoItems": "Επιλέξτε τουλάχιστον δύο στοιχεία.", - "PluginInstalledMessage": "Η προσθήκη έχει εγκατασταθεί με επιτυχία. Θα πρέπει να γίνει επανεκκίνηση του διακομιστή Jellyfin για να εφαρμοστούν οι αλλαγές.", - "PreferredNotRequired": "Προτιμώμενο, αλλά δεν απαιτείται", + "MessagePluginInstalled": "Η προσθήκη έχει εγκατασταθεί με επιτυχία. Θα πρέπει να γίνει επανεκκίνηση του διακομιστή Jellyfin για να εφαρμοστούν οι αλλαγές.", "Premiere": "Πρεμιέρα", "Premieres": "Πρεμιέρες", "Previous": "Προηγούμενο", @@ -958,7 +944,6 @@ "ProductionLocations": "Τοποθεσίες παραγωγής", "Programs": "Προγράμματα", "Quality": "Ποιότητα", - "QueueAllFromHere": "Τοποθετήστε στην ουρά αναπαραγωγής όλα από εδώ", "Raised": "Αυξήθηκε", "RecentlyWatched": "Πρόσφατα αναπαραχθέντα", "RecommendationBecauseYouLike": "Επειδή σας αρέσει {0}", @@ -986,7 +971,6 @@ "ReplaceExistingImages": "Αντικατάσταση υπαρχουσών εικόνων", "ResumeAt": "Συνέχιση από {0}", "Rewind": "Αναπαραγωγή προς τα πίσω", - "RunAtStartup": "Εκτέλεση κατά την εκκίνηση", "Runtime": "Χρόνος εκτέλεσης", "Saturday": "Σάββατο", "Save": "Αποθήκευση", @@ -1071,7 +1055,6 @@ "TabParentalControl": "Γονικός έλεγχος", "TabPassword": "Κωδικός", "TabPlayback": "Αναπαραγωγή", - "TabPlaylist": "Λίστα", "TabPlaylists": "Λίστες αναπαραγωγής", "TabPlugins": "Πρόσθετα", "TabProfile": "Προφίλ", @@ -1106,7 +1089,7 @@ "Tuesday": "Τρίτη", "Uniform": "ομοειδής", "UninstallPluginConfirmation": "Είστε σίγουροι ότι θέλετε να απεγκαταστήσετε;", - "UninstallPluginHeader": "απεγκατάστησετε το plugin", + "HeaderUninstallPlugin": "απεγκατάστησετε το plugin", "Unmute": "Με ήχο", "Unplayed": "Δεν παίχθηκε", "Unrated": "Χωρίς Βαθμολογία", @@ -1137,7 +1120,6 @@ "ValueVideoCodec": "Κωδικοποιητής βίντεο : {0}", "Vertical": "Κάθετα", "ViewAlbum": "Προβολή άλμπουμ", - "ViewArtist": "Εμφάνιση Καλλιτέχνη", "ViewPlaybackInfo": "Προβολή πληροφοριών αναπαραγωγής", "Watched": "Έχει γίνει παρακολούθηση", "Wednesday": "Τετάρτη", @@ -1176,7 +1158,6 @@ "HeaderCodecProfile": "Προφίλ Κωδικοποιητή", "HeaderChapterImages": "Εικόνες Κεφαλαίων", "HeaderChannelAccess": "Πρόσβαση σε Κανάλια", - "HeaderAudioLanguages": "Γλώσσες Ήχου", "HeaderApp": "Εφαρμογή", "HeaderAlbums": "Άλμπουμ", "HeaderAccessScheduleHelp": "Δημιουργήστε ένα πρόγραμμα πρόσβασης για να περιορίσετε την πρόσβαση ορισμένες ώρες.", @@ -1206,7 +1187,6 @@ "AllowMediaConversionHelp": "Παραχώρηση ή στέρηση πρόσβασης στην λειτουργία μετατροπής μέσων.", "AllowHWTranscodingHelp": "Επιτρέπει τον δέκτη να επανακωδικοποιεί τις ροές σε πραγματικό χρόνο. Αυτό μπορεί να μειώσει τον φόρτο κωδικοποίησης τον σέρβερ.", "Alerts": "Προειδοποίηση", - "AddItemToCollectionHelp": "Προσθέστε στις συλλογές κάνοντας αναζήτηση και δεξί κλικ ή μέσω των μενού.", "MediaInfoStreamTypeVideo": "Βίντεο", "MediaInfoStreamTypeSubtitle": "Υπότιτλος", "MediaInfoStreamTypeData": "Δεδομένα", diff --git a/src/strings/en-gb.json b/src/strings/en-gb.json index 7a25a5a822..b3ec646101 100644 --- a/src/strings/en-gb.json +++ b/src/strings/en-gb.json @@ -1,6 +1,6 @@ { "AdditionalNotificationServices": "Browse the plugin catalogue to install additional notification services.", - "BrowsePluginCatalogMessage": "Browse our plugin catalogue to view available plugins.", + "MessageBrowsePluginCatalog": "Browse our plugin catalogue to view available plugins.", "CinemaModeConfigurationHelp": "Cinema mode brings the theatre experience straight to your living room with the ability to play trailers and custom intros before the main feature.", "ColorPrimaries": "Colour primaries", "ColorSpace": "Colour space", @@ -53,7 +53,6 @@ "AccessRestrictedTryAgainLater": "Access is currently restricted. Please try again later.", "Actor": "Actor", "Add": "Add", - "AddItemToCollectionHelp": "Add items to collections by searching for them and using their right-click or tap menus to add them to a collection.", "AddToCollection": "Add to collection", "AddToPlayQueue": "Add to play queue", "AddToPlaylist": "Add to playlist", @@ -88,7 +87,6 @@ "Audio": "Audio", "AuthProviderHelp": "Select an Authentication Provider to be used to authenticate this user's password.", "Auto": "Auto", - "AutoBasedOnLanguageSetting": "Auto (based on language setting)", "Backdrop": "Backdrop", "Backdrops": "Backdrops", "Banner": "Banner", @@ -113,7 +111,6 @@ "ButtonAudioTracks": "Audio Tracks", "ButtonBack": "Back", "ButtonCancel": "Cancel", - "ButtonChangeContentType": "Change content type", "ButtonChangeServer": "Change Server", "ButtonConnect": "Connect", "ButtonDelete": "Delete", @@ -131,11 +128,9 @@ "ButtonHelp": "Help", "ButtonHome": "Home", "ButtonInfo": "Info", - "ButtonLearnMore": "Learn more", "ButtonLibraryAccess": "Library access", "ButtonManualLogin": "Manual Login", "ButtonMore": "More", - "ButtonMoreInformation": "More Information", "ButtonNetwork": "Network", "ButtonNew": "New", "ButtonNextTrack": "Next track", @@ -178,7 +173,6 @@ "ButtonTrailer": "Trailer", "ButtonUninstall": "Uninstall", "ButtonUp": "Up", - "ButtonViewWebsite": "View website", "ButtonWebsite": "Website", "CancelRecording": "Cancel recording", "CancelSeries": "Cancel series", @@ -204,7 +198,7 @@ "DatePlayed": "Date played", "DeathDateValue": "Died: {0}", "Default": "Default", - "DefaultErrorMessage": "There was an error processing the request. Please try again later.", + "ErrorDefault": "There was an error processing the request. Please try again later.", "DefaultSubtitlesHelp": "Subtitles are loaded based on the default and forced flags in the embedded metadata. Language preferences are considered when multiple options are available.", "Delete": "Delete", "DeleteDeviceConfirmation": "Are you sure you wish to delete this device? It will reappear the next time a user signs in with it.", @@ -248,7 +242,6 @@ "EnableBackdrops": "Backdrops", "EnableBackdropsHelp": "Display backdrops in the background of some pages while browsing the library.", "EnableCinemaMode": "Cinema mode", - "EnableDebugLoggingHelp": "Debug logging should only be enabled as needed for troubleshooting purposes. The increased file system access may prevent the server machine from being able to sleep in some environments.", "EnableDisplayMirroring": "Display mirroring", "EnableExternalVideoPlayers": "External video players", "EnableExternalVideoPlayersHelp": "An external player menu will be shown when starting video playback.", @@ -272,7 +265,7 @@ "ErrorAddingXmlTvFile": "There was an error accessing the XMLTV file. Please ensure the file exists and try again.", "ErrorDeletingItem": "There was an error deleting the item from Jellyfin Server. Please check that Jellyfin Server has write access to the media folder and try again.", "ErrorGettingTvLineups": "There was an error downloading TV lineups. Please ensure your information is correct and try again.", - "ErrorMessageStartHourGreaterThanEnd": "End time must be greater than the start time.", + "ErrorStartHourGreaterThanEnd": "End time must be greater than the start time.", "ErrorPleaseSelectLineup": "Please select a lineup and try again. If no lineups are available, then please check that your username, password, and postal code is correct.", "ErrorSavingTvProvider": "There was an error saving the TV provider. Please ensure it is accessible and try again.", "EveryNDays": "Every {0} days", @@ -307,7 +300,6 @@ "GuideProviderSelectListings": "Select Listings", "H264CrfHelp": "The Constant Rate Factor (CRF) is the default quality setting for the x264 encoder. You can set the values between 0 and 51, where lower values would result in better quality (at the expense of higher file sizes). Sane values are between 18 and 28. The default for x264 is 23, so you can use this as a starting point.", "EncoderPresetHelp": "Choose a faster value to improve performance, or a slower value to improve quality.", - "HandledByProxy": "Handled by reverse proxy", "HardwareAccelerationWarning": "Enabling hardware acceleration may cause instability in some environments. Ensure that your operating system and video drivers are fully up to date. If you have difficulty playing video after enabling this, you'll need to change the setting back to None.", "HeaderAccessSchedule": "Access Schedule", "HeaderAccessScheduleHelp": "Create an access schedule to limit access to certain hours.", @@ -331,15 +323,12 @@ "HeaderAppearsOn": "Appears On", "HeaderAudioBooks": "Audio Books", "HeaderAudioSettings": "Audio Settings", - "HeaderAutomaticUpdates": "Automatic Updates", "HeaderBooks": "Books", "HeaderBranding": "Branding", "HeaderCancelRecording": "Cancel Recording", "HeaderCancelSeries": "Cancel Series", "HeaderCastAndCrew": "Cast & Crew", "HeaderCastCrew": "Cast & Crew", - "HeaderChangeFolderType": "Change Content Type", - "HeaderChangeFolderTypeHelp": "To change the type, please remove and rebuild the library with the new type.", "HeaderChannelAccess": "Channel Access", "HeaderChannels": "Channels", "HeaderChapterImages": "Chapter Images", @@ -396,8 +385,6 @@ "HeaderFrequentlyPlayed": "Frequently Played", "HeaderGenres": "Genres", "HeaderGuideProviders": "TV Guide Data Providers", - "HeaderHomeScreen": "Home Screen", - "HeaderHomeScreenSettings": "Home Screen Settings", "HeaderHttpHeaders": "HTTP Headers", "HeaderIdentification": "Identification", "HeaderIdentificationCriteriaHelp": "Enter at least one identification criteria.", @@ -408,7 +395,6 @@ "HeaderInstall": "Install", "HeaderInstantMix": "Instant Mix", "HeaderItems": "Items", - "HeaderJellyfinServer": "Jellyfin Server", "HeaderKeepRecording": "Keep Recording", "HeaderKeepSeries": "Keep Series", "HeaderKodiMetadataHelp": "To enable or disable NFO metadata, edit a library in Jellyfin library setup and locate the metadata savers section.", @@ -475,7 +461,7 @@ "Unrated": "Unrated", "Unplayed": "Unplayed", "Unmute": "Unmute", - "UninstallPluginHeader": "Uninstall Plugin", + "HeaderUninstallPlugin": "Uninstall Plugin", "Trailers": "Trailers", "TrackCount": "{0} tracks", "TitlePlayback": "Playback", @@ -492,7 +478,6 @@ "TabResumeSettings": "Resume", "TabResponses": "Responses", "TabRecordings": "Recordings", - "TabPlaylist": "Playlist", "TabPlayback": "Playback", "TabOther": "Other", "TabNotifications": "Notifications", @@ -557,10 +542,8 @@ "SaveSubtitlesIntoMediaFolders": "Save subtitles into media folders", "Saturday": "Saturday", "Runtime": "Runtime", - "RunAtStartup": "Run at startup", "Rewind": "Rewind", "ResumeAt": "Resume from {0}", - "RequiredForAllRemoteConnections": "Required for all remote connections", "ReplaceExistingImages": "Replace existing images", "ReplaceAllMetadata": "Replace all metadata", "RepeatOne": "Repeat one", @@ -577,7 +560,7 @@ "Refresh": "Refresh", "Recordings": "Recordings", "RecordingScheduled": "Recording scheduled.", - "RecordingPathChangeMessage": "Changing your recording folder will not migrate existing recordings from the old location to the new. You'll need to move them manually if desired.", + "MessageChangeRecordingPath": "Changing your recording folder will not migrate existing recordings from the old location to the new. You'll need to move them manually if desired.", "RecordingCancelled": "Recording cancelled.", "RecordSeries": "Record series", "Record": "Record", @@ -586,17 +569,15 @@ "RecommendationBecauseYouWatched": "Because you watched {0}", "Rate": "Rate", "Raised": "Raised", - "QueueAllFromHere": "Queue all from here", "Quality": "Quality", "Producer": "Producer", "Primary": "Primary", "Previous": "Previous", "Premieres": "Premieres", "Premiere": "Premiere", - "PreferredNotRequired": "Preferred, but not required", "PreferEmbeddedTitlesOverFileNamesHelp": "This determines the default display title when no internet metadata or local metadata is available.", "PreferEmbeddedTitlesOverFileNames": "Prefer embedded titles over filenames", - "PluginInstalledMessage": "The plugin has been successfully installed. Jellyfin Server will need to be restarted for changes to take effect.", + "MessagePluginInstalled": "The plugin has been successfully installed. Jellyfin Server will need to be restarted for changes to take effect.", "PleaseSelectTwoItems": "Please select at least two items.", "PleaseRestartServerName": "Please restart Jellyfin Server - {0}.", "PleaseConfirmPluginInstallation": "Please click OK to confirm you've read the above and wish to proceed with the plugin installation.", @@ -613,7 +594,7 @@ "PictureInPicture": "Picture in picture", "PerfectMatch": "Perfect match", "PasswordSaved": "Password saved.", - "PasswordResetHeader": "Reset Password", + "HeaderResetPassword": "Reset Password", "PasswordResetConfirmation": "Are you sure you wish to reset the password?", "PasswordResetComplete": "The password has been reset.", "PasswordMatchError": "Password and password confirmation must match.", @@ -697,8 +678,8 @@ "None": "None", "NoSubtitlesHelp": "Subtitles will not be loaded by default. They can still be turned on manually during playback.", "NoSubtitles": "None", - "NoPluginConfigurationMessage": "This plugin has no settings to configure.", - "NoNextUpItemsMessage": "None found. Start watching your shows!", + "MessageNoPluginConfiguration": "This plugin has no settings to configure.", + "MessageNoNextUpItems": "None found. Start watching your shows!", "No": "No", "NextUp": "Next Up", "NewEpisodesOnly": "New episodes only", @@ -724,12 +705,10 @@ "MessageNoAvailablePlugins": "No available plugins.", "MessageInvalidUser": "Invalid username or password. Please try again.", "MessageInvalidForgotPasswordPin": "An invalid or expired pin code was entered. Please try again.", - "MessageInstallPluginFromApp": "This plugin must be installed from within the app you intend to use it in.", "MessageImageTypeNotSelected": "Please select an image type from the drop-down menu.", "MessageImageFileTypeAllowed": "Only JPEG and PNG files are supported.", "MessageForgotPasswordInNetworkRequired": "Please try again within your home network to initiate the password reset process.", "MessageForgotPasswordFileCreated": "The following file has been created on your server and contains instructions on how to proceed:", - "MessageDirectoryPickerInstruction": "Network paths can be entered manually in the event the Network button fails to locate your devices. For example, {0} or {1}.", "MessageDeleteTaskTrigger": "Are you sure you wish to delete this task trigger?", "MessageCreateAccountAt": "Create an account at {0}", "MessageContactAdminToResetPassword": "Please contact your system administrator to reset your password.", @@ -768,7 +747,6 @@ "LibraryAccessHelp": "Select the libraries to share with this user. Administrators will be able to edit all folders using the metadata manager.", "LeaveBlankToNotSetAPassword": "You can leave this field blank to set no password.", "LearnHowYouCanContribute": "Learn how you can contribute.", - "LaunchWebAppOnStartupHelp": "Open the web client in your default web browser when the server initially starts. This will not occur when using the restart server function.", "LanNetworksHelp": "Comma separated list of IP addresses or IP/netmask entries for networks that will be considered on local network when enforcing bandwidth restrictions. If set, all other IP addresses will be considered to be on the external network and will be subject to the external bandwidth restrictions. If left blank, only the server's subnet is considered to be on the local network.", "LabelffmpegPathHelp": "The path to the ffmpeg application file, or folder containing ffmpeg.", "LabelffmpegPath": "FFmpeg path:", @@ -817,14 +795,12 @@ "LabelStartWhenPossible": "Start when possible:", "LabelSpecialSeasonsDisplayName": "Special season display name:", "LabelSource": "Source:", - "LabelSoundEffects": "Sound effects:", "LabelSortBy": "Sort by:", "LabelSonyAggregationFlagsHelp": "Determines the content of the aggregationFlags element in the urn:schemas-sonycom:av namespace.", "LabelSkipIfGraphicalSubsPresentHelp": "Keeping text versions of subtitles will result in more efficient delivery and decrease the likelihood of video transcoding.", "LabelSkipIfAudioTrackPresentHelp": "Uncheck this to ensure all videos have subtitles, regardless of audio language.", "LabelSkipIfAudioTrackPresent": "Skip if the default audio track matches the download language", "LabelSkipBackLength": "Skip back length:", - "LabelSkin": "Skin:", "LabelSize": "Size:", "LabelSimultaneousConnectionLimit": "Simultaneous stream limit:", "LabelServerHost": "Host:", @@ -832,7 +808,6 @@ "LabelSendNotificationToUsers": "Send the notification to:", "LabelSelectFolderGroupsHelp": "Folders that are unchecked will be displayed by themselves in their own view.", "LabelSelectFolderGroups": "Automatically group content from the following folders into views such as Movies, Music and TV:", - "LabelSecureConnectionsMode": "Secure connection mode:", "LabelSeasonNumber": "Season number:", "LabelScreensaver": "Screensaver:", "EnableFasterAnimations": "Faster animations", @@ -870,8 +845,6 @@ "MessageEnablingOptionLongerScans": "Enabling this option may result in significantly longer library scans.", "MessageConfirmRecordingCancellation": "Cancel recording?", "MessageConfirmProfileDeletion": "Are you sure you wish to delete this profile?", - "LaunchWebAppOnStartup": "Launch the web interface when starting the server", - "LabelYourFirstName": "Your first name:", "OnlyForcedSubtitles": "Only Forced", "Off": "Off", "NumLocationsValue": "{0} folders", @@ -1174,8 +1147,6 @@ "LabelAppName": "App name", "LabelAllowedRemoteAddressesMode": "Remote IP address filter mode:", "LabelAllowedRemoteAddresses": "Remote IP address filter:", - "LabelAllowServerAutoRestartHelp": "The server will only restart during idle periods when no users are active.", - "LabelAllowServerAutoRestart": "Allow the server to restart automatically to apply updates", "LabelAllowHWTranscoding": "Allow hardware transcoding", "LabelAll": "All", "LabelAlbumArtists": "Album artists:", @@ -1266,7 +1237,6 @@ "Watched": "Watched", "ViewPlaybackInfo": "View playback info", "ViewAlbum": "View album", - "VideoRange": "Video range", "SubtitleAppearanceSettingsAlsoPassedToCastDevices": "These settings also apply to any Chromecast playback started by this device.", "Studios": "Studios", "StopRecording": "Stop recording", @@ -1279,7 +1249,6 @@ "OptionContinuing": "Continuing", "OptionCommunityRating": "Community Rating", "MessageUnsetContentHelp": "Content will be displayed as plain folders. For best results use the metadata manager to set the content types of sub-folders.", - "LinksValue": "Links: {0}", "LabelSelectVersionToInstall": "Select version to install:", "LabelMetadataPathHelp": "Specify a custom location for downloaded artwork and metadata.", "OptionLikes": "Likes", @@ -1330,11 +1299,9 @@ "LabelMaxParentalRating": "Maximum allowed parental rating:", "LabelFolder": "Folder:", "LabelBaseUrl": "Base URL:", - "ViewArtist": "View artist", "Up": "Up", "SearchForCollectionInternetMetadata": "Search the internet for artwork and metadata", "MediaInfoStreamTypeSubtitle": "Subtitle", - "MediaInfoSoftware": "Software", "ValueOneSeries": "1 series", "MediaInfoBitrate": "Bitrate", "LabelVideo": "Video", @@ -1344,7 +1311,6 @@ "LabelInternetQuality": "Internet quality:", "LabelFileOrUrl": "File or URL:", "LabelDateAdded": "Date added:", - "LabelDashboardTheme": "Server dashboard theme:", "LabelCustomRating": "Custom rating:", "LabelCollection": "Collection:", "LabelChannels": "Channels:", @@ -1469,7 +1435,6 @@ "LabelPlayerDimensions": "Player dimensions:", "LabelDroppedFrames": "Dropped frames:", "LabelCorruptedFrames": "Corrupted frames:", - "CopyStreamURLError": "There was an error copying the URL.", "NoCreatedLibraries": "Seems like you haven't created any libraries yet. {0}Would you like to create one now?{1}", "AskAdminToCreateLibrary": "Ask an administrator to create a library.", "PlaybackErrorNoCompatibleStream": "This client isn't compatible with the media and the server isn't sending a compatible media format.", @@ -1491,11 +1456,9 @@ "Yadif": "YADIF", "Track": "Track", "Season": "Season", - "ReleaseGroup": "Release Group", "PreferEmbeddedEpisodeInfosOverFileNames": "Prefer embedded episode information over filenames", "PreferEmbeddedEpisodeInfosOverFileNamesHelp": "This uses the episode information from the embedded metadata if available.", "Person": "Person", - "OtherArtist": "Other Artist", "Movie": "Movie", "LabelLibraryPageSizeHelp": "Sets the amount of items to show on a library page. Set to 0 in order to disable paging.", "LabelLibraryPageSize": "Library page size:", @@ -1508,15 +1471,14 @@ "AlbumArtist": "Album Artist", "Album": "Album", "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", "HeaderDVR": "DVR", "ApiKeysCaption": "List of the currently enabled API keys", "ButtonCast": "Cast", "ButtonSyncPlay": "SyncPlay", - "EnableBlurhashHelp": "Images that are still being loaded will be displayed with a blurred placeholder", - "EnableBlurhash": "Enable blurred placeholders for images", + "EnableBlurHashHelp": "Images that are still being loaded will be displayed with a blurred placeholder", + "EnableBlurHash": "Enable blurred placeholders for images", "TabDVR": "DVR", "TabRepositories": "Repositories", "SyncPlayAccessHelp": "Select the level of access this user has to the SyncPlay feature. SyncPlay enables to sync playback with other devices.", @@ -1560,7 +1522,6 @@ "LabelSyncPlayTimeOffset": "Time offset with the server:", "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.", "LabelRequireHttps": "Require HTTPS", - "LabelNightly": "Nightly", "LabelStable": "Stable", "LabelChromecastVersion": "Chromecast Version", "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.", diff --git a/src/strings/en-us.json b/src/strings/en-us.json index 6024363f05..54c8cf8880 100644 --- a/src/strings/en-us.json +++ b/src/strings/en-us.json @@ -3,7 +3,6 @@ "AccessRestrictedTryAgainLater": "Access is currently restricted. Please try again later.", "Actor": "Actor", "Add": "Add", - "AddItemToCollectionHelp": "Add items to collections by searching for them and using their right-click or tap menus to add them to a collection.", "AddToCollection": "Add to collection", "AddToPlayQueue": "Add to play queue", "AddToPlaylist": "Add to playlist", @@ -45,9 +44,8 @@ "AspectRatio": "Aspect Ratio", "AttributeNew": "New", "Audio": "Audio", - "AuthProviderHelp": "Select an Authentication Provider to be used to authenticate this user's password.", + "AuthProviderHelp": "Select an authentication provider to be used to authenticate this user's password.", "Auto": "Auto", - "AutoBasedOnLanguageSetting": "Auto (based on language setting)", "Backdrop": "Backdrop", "Backdrops": "Backdrops", "Banner": "Banner", @@ -61,7 +59,7 @@ "BoxSet": "Box Set", "BoxRear": "Box (rear)", "Browse": "Browse", - "BrowsePluginCatalogMessage": "Browse our plugin catalog to view available plugins.", + "MessageBrowsePluginCatalog": "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.", "ButtonAdd": "Add", "ButtonAddImage": "Add Image", @@ -93,7 +91,6 @@ "ButtonHelp": "Help", "ButtonHome": "Home", "ButtonInfo": "Info", - "ButtonLearnMore": "Learn more", "ButtonLibraryAccess": "Library access", "ButtonManualLogin": "Manual Login", "ButtonMore": "More", @@ -142,7 +139,6 @@ "ButtonTrailer": "Trailer", "ButtonUninstall": "Uninstall", "ButtonUp": "Up", - "ButtonViewWebsite": "View website", "ButtonWebsite": "Website", "CancelRecording": "Cancel recording", "CancelSeries": "Cancel series", @@ -171,14 +167,13 @@ "Continuing": "Continuing", "CopyStreamURL": "Copy Stream URL", "CopyStreamURLSuccess": "URL copied successfully.", - "CopyStreamURLError": "There was an error copying the URL.", "CriticRating": "Critic rating", "CustomDlnaProfilesHelp": "Create a custom profile to target a new device or override a system profile.", "DateAdded": "Date added", "DatePlayed": "Date played", "DeathDateValue": "Died: {0}", "Default": "Default", - "DefaultErrorMessage": "There was an error processing the request. Please try again later.", + "ErrorDefault": "There was an error processing the request. Please try again later.", "DefaultMetadataLangaugeDescription": "These are your defaults and can be customized on a per-library basis.", "DefaultSubtitlesHelp": "Subtitles are loaded based on the default and forced flags in the embedded metadata. Language preferences are considered when multiple options are available.", "DeinterlaceMethodHelp": "Select the deinterlacing method to use when transcoding interlaced content.", @@ -195,8 +190,8 @@ "DetectingDevices": "Detecting devices", "DeviceAccessHelp": "This only applies to devices that can be uniquely identified and will not prevent browser access. Filtering user device access will prevent them from using new devices until they've been approved here.", "DirectPlaying": "Direct playing", - "DirectStreamHelp1": "The media is compatible with the device regarding resolution and media type (H.264, AC3, etc), but is in an incompatible file container (mkv, avi, wmv, etc). The video will be re-packaged on the fly before streaming it to the device.", - "DirectStreamHelp2": "Direct Streaming a file uses very little processing power without any loss in video quality.", + "DirectStreamHelp1": "The media is compatible with the device regarding resolution and media type (H.264, AC3, etc), but in an incompatible file container (mkv, avi, wmv, etc). The video will be re-packaged on the fly before being sent to the device.", + "DirectStreamHelp2": "Direct stream uses very little processing power with a minimal loss in video quality.", "DirectStreaming": "Direct streaming", "Director": "Director", "Directors": "Directors", @@ -253,7 +248,7 @@ "ErrorAddingXmlTvFile": "There was an error accessing the XMLTV file. Please ensure the file exists and try again.", "ErrorDeletingItem": "There was an error deleting the item from Jellyfin Server. Please check that Jellyfin Server has write access to the media folder and try again.", "ErrorGettingTvLineups": "There was an error downloading TV lineups. Please ensure your information is correct and try again.", - "ErrorMessageStartHourGreaterThanEnd": "End time must be greater than the start time.", + "ErrorStartHourGreaterThanEnd": "End time must be greater than the start time.", "ErrorPleaseSelectLineup": "Please select a lineup and try again. If no lineups are available, then please check that your username, password, and postal code is correct.", "ErrorSavingTvProvider": "There was an error saving the TV provider. Please ensure it is accessible and try again.", "EveryNDays": "Every {0} days", @@ -313,13 +308,12 @@ "HeaderAllowMediaDeletionFrom": "Allow Media Deletion From", "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.", + "HeaderApiKeysHelp": "External applications are required to have an API key in order to communicate with the server. Keys are issued by logging in with a normal user account or manually granting the application a key.", "ApiKeysCaption": "List of the currently enabled API keys", "HeaderApp": "App", "HeaderAppearsOn": "Appears On", "HeaderAudioBooks": "Audio Books", "HeaderAudioSettings": "Audio Settings", - "HeaderAutomaticUpdates": "Automatic Updates", "HeaderBlockItemsWithNoRating": "Block items with no or unrecognized rating information:", "HeaderBooks": "Books", "HeaderBranding": "Branding", @@ -400,7 +394,7 @@ "HeaderItems": "Items", "HeaderKeepRecording": "Keep Recording", "HeaderKeepSeries": "Keep Series", - "HeaderKodiMetadataHelp": "To enable or disable NFO metadata, edit a library in Jellyfin library setup and locate the metadata savers section.", + "HeaderKodiMetadataHelp": "To enable or disable NFO metadata, edit a library and locate the metadata savers section.", "HeaderLatestEpisodes": "Latest Episodes", "HeaderLatestMedia": "Latest Media", "HeaderLatestMovies": "Latest Movies", @@ -450,7 +444,7 @@ "HeaderPreferredMetadataLanguage": "Preferred Metadata Language", "HeaderProfile": "Profile", "HeaderProfileInformation": "Profile Information", - "HeaderProfileServerSettingsHelp": "These values control how Jellyfin Server will present itself to the device.", + "HeaderProfileServerSettingsHelp": "These values control how the server will present itself to clients.", "HeaderRecentlyPlayed": "Recently Played", "HeaderRecordingOptions": "Recording Options", "HeaderRecordingPostProcessing": "Recording Post Processing", @@ -469,13 +463,13 @@ "HeaderSecondsValue": "{0} Seconds", "HeaderSelectCertificatePath": "Select Certificate Path", "HeaderSelectMetadataPath": "Select Metadata Path", - "HeaderSelectMetadataPathHelp": "Browse or enter the path you'd like to store metadata within. The folder must be writeable.", + "HeaderSelectMetadataPathHelp": "Browse or enter the path you'd like to use for metadata. The folder must be writeable.", "HeaderSelectPath": "Select Path", "HeaderSelectServer": "Select Server", "HeaderSelectServerCachePath": "Select Server Cache Path", "HeaderSelectServerCachePathHelp": "Browse or enter the path to use for server cache files. The folder must be writeable.", "HeaderSelectTranscodingPath": "Select Transcoding Temporary Path", - "HeaderSelectTranscodingPathHelp": "Browse or enter the path to use for transcoding temporary files. The folder must be writeable.", + "HeaderSelectTranscodingPathHelp": "Browse or enter the path to use for transcode files. The folder must be writeable.", "HeaderSendMessage": "Send Message", "HeaderSeries": "Series", "HeaderSeriesOptions": "Series Options", @@ -531,8 +525,8 @@ "HttpsRequiresCert": "To enable secure connections, you will need to supply a trusted SSL certificate, such as Let's Encrypt. Please either supply a certificate, or disable secure connections.", "Identify": "Identify", "Images": "Images", - "ImportFavoriteChannelsHelp": "If enabled, only channels that are marked as favorite on the tuner device will be imported.", - "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.", + "ImportFavoriteChannelsHelp": "Only channels that are marked as favorite on the tuner device will be imported.", + "ImportMissingEpisodesHelp": "Information about missing episodes will be imported into your database and displayed within seasons and series. This may cause significantly longer library scans.", "InstallingPackage": "Installing {0} (version {1})", "InstantMix": "Instant mix", "ItemCount": "{0} items", @@ -558,14 +552,12 @@ "LabelAlbumArtists": "Album artists:", "LabelAll": "All", "LabelAllowHWTranscoding": "Allow hardware transcoding", - "LabelAllowServerAutoRestart": "Allow the server to restart automatically to apply updates", - "LabelAllowServerAutoRestartHelp": "The server will only restart during idle periods when no users are active.", "LabelAllowedRemoteAddresses": "Remote IP address filter:", "LabelAllowedRemoteAddressesMode": "Remote IP address filter mode:", "LabelAppName": "App name", "LabelAppNameExample": "Example: Sickbeard, Sonarr", "LabelArtists": "Artists:", - "LabelArtistsHelp": "Separate multiple using ;", + "LabelArtistsHelp": "Separate multiple artists with a semicolon.", "LabelAudio": "Audio", "LabelAudioBitDepth": "Audio bit depth:", "LabelAudioBitrate": "Audio bitrate:", @@ -576,11 +568,11 @@ "LabelAuthProvider": "Authentication Provider:", "LabelAutomaticallyRefreshInternetMetadataEvery": "Automatically refresh metadata from the internet:", "LabelBindToLocalNetworkAddress": "Bind to local network address:", - "LabelBindToLocalNetworkAddressHelp": "Optional. Override the local IP address to bind the http server to. If left empty, the server will bind to all availabile addresses. Changing this value requires restarting Jellyfin Server.", + "LabelBindToLocalNetworkAddressHelp": "Override the local IP address for the HTTP server. If left empty, the server will bind to all availabile addresses. Changing this value requires restarting Jellyfin Server.", "LabelBirthDate": "Birth date:", "LabelBirthYear": "Birth year:", "LabelBitrate": "Bitrate:", - "LabelBlastMessageInterval": "Alive message interval (seconds)", + "LabelBlastMessageInterval": "Alive message interval", "LabelBlastMessageIntervalHelp": "Determines the duration in seconds between blast alive messages.", "LabelBlockContentWithTags": "Block items with tags:", "LabelBurnSubtitles": "Burn subtitles:", @@ -601,14 +593,13 @@ "LabelCustomCertificatePath": "Custom SSL certificate path:", "LabelCustomCertificatePathHelp": "Path to a PKCS #12 file containing a certificate and private key to enable TLS support on a custom domain.", "LabelCustomCss": "Custom CSS:", - "LabelCustomCssHelp": "Apply your own custom styling to the web interface.", + "LabelCustomCssHelp": "Apply your own custom styles on the web interface.", "LabelCustomDeviceDisplayName": "Display name:", "LabelCustomDeviceDisplayNameHelp": "Supply a custom display name or leave empty to use the name reported by the device.", "LabelCustomRating": "Custom rating:", - "LabelDashboardTheme": "Server dashboard theme:", "LabelDateAdded": "Date added:", "LabelDateAddedBehavior": "Date added behavior for new content:", - "LabelDateAddedBehaviorHelp": "If a metadata value is present it will always be used before either of these options.", + "LabelDateAddedBehaviorHelp": "If a metadata value is present, it will always be used before either of these options.", "LabelDateTimeLocale": "Date time locale:", "LabelDay": "Day:", "LabelDeathDate": "Death date:", @@ -640,19 +631,19 @@ "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)", + "LabelEnableDlnaClientDiscoveryInterval": "Client discovery interval", "LabelEnableDlnaClientDiscoveryIntervalHelp": "Determines the duration in seconds between SSDP searches performed by Jellyfin.", "LabelEnableDlnaDebugLogging": "Enable DLNA debug logging", "LabelEnableDlnaDebugLoggingHelp": "Create large log files and should only be used as needed for troubleshooting purposes.", "LabelEnableDlnaPlayTo": "Enable DLNA Play To", - "LabelEnableDlnaPlayToHelp": "Detect devices within your network and offer the ability to remote control them.", + "LabelEnableDlnaPlayToHelp": "Detect devices within your network and offer the ability to control them remotely.", "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.", + "LabelEnableHttpsHelp": "Listen on the configured HTTPS port. A valid certificate must also be supplied for this to take effect.", "LabelEnableRealtimeMonitor": "Enable real time monitoring", - "LabelEnableRealtimeMonitorHelp": "Changes to files will be processed immediately, on supported file systems.", + "LabelEnableRealtimeMonitorHelp": "Changes to files will be processed immediately on supported file systems.", "LabelEnableSingleImageInDidlLimit": "Limit to single embedded image", "LabelEnableSingleImageInDidlLimitHelp": "Some devices will not render properly if multiple images are embedded within Didl.", "LabelEndDate": "End date:", @@ -660,7 +651,7 @@ "LabelEvent": "Event:", "LabelEveryXMinutes": "Every:", "LabelBaseUrl": "Base URL:", - "LabelBaseUrlHelp": "Adds a custom subdirectory to the server URL. For example: http://example.com/<baseurl>", + "LabelBaseUrlHelp": "Add 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", @@ -671,9 +662,9 @@ "LabelForgotPasswordUsernameHelp": "Enter your username, if you remember it.", "LabelFormat": "Format:", "LabelFriendlyName": "Friendly name:", - "LabelServerNameHelp": "This name will be used to identify the server and will default to the server's computer name.", + "LabelServerNameHelp": "This name will be used to identify the server and will default to the server's hostname.", "LabelGroupMoviesIntoCollections": "Group movies into collections", - "LabelGroupMoviesIntoCollectionsHelp": "When displaying movie lists, movies belonging to a collection will be displayed as one grouped item.", + "LabelGroupMoviesIntoCollectionsHelp": "When displaying movie lists, movies in a collection will be displayed as one grouped item.", "LabelH264Crf": "H264 encoding CRF:", "LabelEncoderPreset": "H264 and H265 encoding preset:", "LabelHardwareAccelerationType": "Hardware acceleration:", @@ -681,7 +672,7 @@ "LabelHomeNetworkQuality": "Home network quality:", "LabelHomeScreenSectionValue": "Home screen section {0}:", "LabelHttpsPort": "Local HTTPS port number:", - "LabelHttpsPortHelp": "The TCP port number that Jellyfin's HTTPS server should bind to.", + "LabelHttpsPortHelp": "The TCP port number for the HTTPS server.", "LabelIconMaxHeight": "Icon maximum height:", "LabelIconMaxHeightHelp": "Maximum resolution of icons exposed via upnp:icon.", "LabelIconMaxWidth": "Icon maximum width:", @@ -711,7 +702,7 @@ "LabelLibraryPageSizeHelp": "Sets the amount of items to show on a library page. Set to 0 in order to disable paging.", "LabelLineup": "Lineup:", "LabelLocalHttpServerPortNumber": "Local HTTP port number:", - "LabelLocalHttpServerPortNumberHelp": "The TCP port number that Jellyfin's HTTP server should bind to.", + "LabelLocalHttpServerPortNumberHelp": "The TCP port number for the HTTP server.", "LabelLockItemToPreventChanges": "Lock this item to prevent future changes", "LabelLoginDisclaimer": "Login disclaimer:", "LabelLoginDisclaimerHelp": "A message that will be displayed at the bottom of the login page.", @@ -737,7 +728,7 @@ "LabelMetadataReaders": "Metadata readers:", "LabelMetadataReadersHelp": "Rank your preferred local metadata sources in order of priority. The first file found will be read.", "LabelMetadataSavers": "Metadata savers:", - "LabelMetadataSaversHelp": "Choose the file formats to save your metadata to.", + "LabelMetadataSaversHelp": "Choose the file formats to use when saving your metadata.", "LabelMethod": "Method:", "LabelMinBackdropDownloadWidth": "Minimum backdrop download width:", "LabelMinResumeDuration": "Minimum resume duration:", @@ -753,13 +744,13 @@ "LabelMovieCategories": "Movie categories:", "LabelMoviePrefix": "Movie prefix:", "LabelMoviePrefixHelp": "If a prefix is applied to movie titles, enter it here so the server can handle it properly.", - "LabelMovieRecordingPath": "Movie recording path (optional):", + "LabelMovieRecordingPath": "Movie recording path:", "LabelMusicStreamingTranscodingBitrate": "Music transcoding bitrate:", - "LabelMusicStreamingTranscodingBitrateHelp": "Specify a max bitrate when streaming music.", + "LabelMusicStreamingTranscodingBitrateHelp": "Specify a maximum bitrate when streaming music.", "LabelName": "Name:", "LabelChromecastVersion": "Chromecast Version", "LabelStable": "Stable", - "LabelNightly": "Nightly", + "LabelUnstable": "Unstable", "LabelNewName": "New name:", "LabelNewPassword": "New password:", "LabelNewPasswordConfirm": "New password confirm:", @@ -769,7 +760,7 @@ "LabelNumber": "Number:", "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:", + "LabelOptionalNetworkPath": "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. For example, {0} or {1}.", "LabelOriginalAspectRatio": "Original aspect ratio:", "LabelOriginalTitle": "Original title:", @@ -821,7 +812,7 @@ "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):", + "LabelRuntimeMinutes": "Runtime:", "LabelSaveLocalMetadata": "Save artwork into media folders", "LabelSaveLocalMetadataHelp": "Saving artwork into media folders will put them in a place where they can be easily edited.", "LabelScheduledTaskLastRan": "Last ran {0}, taking {1}.", @@ -835,13 +826,12 @@ "LabelSelectVersionToInstall": "Select version to install:", "LabelSendNotificationToUsers": "Send the notification to:", "LabelSerialNumber": "Serial number", - "LabelSeriesRecordingPath": "Series recording path (optional):", + "LabelSeriesRecordingPath": "Series recording path:", "LabelServerHost": "Host:", "LabelServerHostHelp": "192.168.1.100:8096 or https://myserver.com", "LabelServerName": "Server name:", "LabelSimultaneousConnectionLimit": "Simultaneous stream limit:", "LabelSize": "Size:", - "LabelSkin": "Skin:", "LabelSkipBackLength": "Skip back length:", "LabelSkipForwardLength": "Skip forward length:", "LabelSkipIfAudioTrackPresent": "Skip if the default audio track matches the download language", @@ -853,7 +843,6 @@ "LabelSortBy": "Sort by:", "LabelSortOrder": "Sort order:", "LabelSortTitle": "Sort title:", - "LabelSoundEffects": "Sound effects:", "LabelSource": "Source:", "LabelSpecialSeasonsDisplayName": "Special season display name:", "LabelSportsCategories": "Sports categories:", @@ -933,21 +922,17 @@ "LabelXDlnaDoc": "X-DLNA doc:", "LabelXDlnaDocHelp": "Determines the content of the X_DLNADOC element in the urn:schemas-dlna-org:device-1-0 namespace.", "LabelYear": "Year:", - "LabelYourFirstName": "Your first name:", "LabelYoureDone": "You're Done!", "LabelZipCode": "Zip Code:", "LabelffmpegPath": "FFmpeg path:", - "LabelffmpegPathHelp": "The path to the ffmpeg application file, or folder containing ffmpeg.", + "LabelffmpegPathHelp": "The path to the ffmpeg application file or folder containing ffmpeg.", "LanNetworksHelp": "Comma separated list of IP addresses or IP/netmask entries for networks that will be considered on local network when enforcing bandwidth restrictions. If set, all other IP addresses will be considered to be on the external network and will be subject to the external bandwidth restrictions. If left blank, only the server's subnet is considered to be on the local network.", "Large": "Large", "LatestFromLibrary": "Latest {0}", - "LaunchWebAppOnStartup": "Launch the web interface when starting the server", - "LaunchWebAppOnStartupHelp": "Open the web client in your default web browser when the server initially starts. This will not occur when using the restart server function.", "LearnHowYouCanContribute": "Learn how you can contribute.", "LeaveBlankToNotSetAPassword": "You can leave this field blank to set no password.", "LibraryAccessHelp": "Select the libraries to share with this user. Administrators will be able to edit all folders using the metadata manager.", "Like": "Like", - "LinksValue": "Links: {0}", "List": "List", "Live": "Live", "LiveBroadcasts": "Live broadcasts", @@ -983,7 +968,6 @@ "MediaInfoSampleRate": "Sample rate", "MediaInfoSize": "Size", "MediaInfoTimestamp": "Timestamp", - "MediaInfoSoftware": "Software", "MediaInfoStreamTypeAudio": "Audio", "MediaInfoStreamTypeData": "Data", "MediaInfoStreamTypeEmbeddedImage": "Embedded Image", @@ -1015,10 +999,8 @@ "MessageForgotPasswordInNetworkRequired": "Please try again within your home network to initiate the password reset process.", "MessageImageFileTypeAllowed": "Only JPEG and PNG files are supported.", "MessageImageTypeNotSelected": "Please select an image type from the drop-down menu.", - "MessageInstallPluginFromApp": "This plugin must be installed from within the app you intend to use it in.", "MessageInvalidForgotPasswordPin": "An invalid or expired pin code was entered. Please try again.", "MessageInvalidUser": "Invalid username or password. Please try again.", - "MessageUnauthorizedUser": "You are not authorized to access the server at this time. Please contact your server administrator for more information.", "MessageItemSaved": "Item saved.", "MessageItemsAdded": "Items added.", "MessageLeaveEmptyToInherit": "Leave empty to inherit settings from a parent item or the global default value.", @@ -1066,7 +1048,7 @@ "MessageSyncPlayErrorMedia": "Failed to enable SyncPlay! Media error.", "Metadata": "Metadata", "MetadataManager": "Metadata Manager", - "MetadataSettingChangeHelp": "Changing metadata settings will affect new content that is added going forward. To refresh existing content, open the detail screen and click the refresh button, or perform bulk refreshes using the metadata manager.", + "MetadataSettingChangeHelp": "Changing metadata settings will affect new content added going forward. To refresh existing content, open the detail screen and click the refresh button, or perform bulk refreshes using the metadata manager.", "MinutesAfter": "minutes after", "MinutesBefore": "minutes before", "Mobile": "Mobile", @@ -1094,12 +1076,13 @@ "NewEpisodesOnly": "New episodes only", "News": "News", "Next": "Next", + "NextTrack": "Skip to next", "NextUp": "Next Up", "No": "No", "NoCreatedLibraries": "Seems like you haven't created any libraries yet. {0}Would you like to create one now?{1}", "NoNewDevicesFound": "No new devices found. To add a new tuner, close this dialog and enter the device information manually.", - "NoNextUpItemsMessage": "None found. Start watching your shows!", - "NoPluginConfigurationMessage": "This plugin has no settings to configure.", + "MessageNoNextUpItems": "None found. Start watching your shows!", + "MessageNoPluginConfiguration": "This plugin has no settings to configure.", "NoSubtitleSearchResultsFound": "No results found.", "NoSubtitles": "None", "NoSubtitlesHelp": "Subtitles will not be loaded by default. They can still be turned on manually during playback.", @@ -1124,7 +1107,7 @@ "OptionAllowLinkSharingHelp": "Only web pages containing media information are shared. Media files are never shared publicly. Shares are time-limited and will expire after {0} days.", "OptionAllowManageLiveTv": "Allow Live TV recording management", "OptionAllowMediaPlayback": "Allow media playback", - "OptionAllowMediaPlaybackTranscodingHelp": "Restricting access to transcoding may cause playback failures in Jellyfin apps due to unsupported media formats.", + "OptionAllowMediaPlaybackTranscodingHelp": "Restricting access to transcoding may cause playback failures in clients due to unsupported media formats.", "OptionAllowRemoteControlOthers": "Allow remote control of other users", "OptionAllowRemoteSharedDevices": "Allow remote control of shared devices", "OptionAllowRemoteSharedDevicesHelp": "DLNA devices are considered shared until a user begins controlling them.", @@ -1137,7 +1120,7 @@ "OptionAuto": "Auto", "OptionAutomatic": "Auto", "OptionAutomaticallyGroupSeries": "Automatically merge series that are spread across multiple folders", - "OptionAutomaticallyGroupSeriesHelp": "If enabled, series that are spread across multiple folders within this library will be automatically merged into a single series.", + "OptionAutomaticallyGroupSeriesHelp": "Series that are spread across multiple folders within this library will be automatically merged into a single series.", "OptionBanner": "Banner", "OptionBlockBooks": "Books", "OptionBlockChannelContent": "Internet Channel Content", @@ -1159,7 +1142,7 @@ "OptionDatePlayed": "Date Played", "OptionDescending": "Descending", "OptionDisableUser": "Disable this user", - "OptionDisableUserHelp": "If disabled the server will not allow any connections from this user. Existing connections will be abruptly terminated.", + "OptionDisableUserHelp": "The server will not allow any connections from this user. Existing connections will be abruptly terminated.", "OptionDislikes": "Dislikes", "OptionDisplayFolderView": "Display a folder view to show plain media folders", "OptionDisplayFolderViewHelp": "Display folders alongside your other media libraries. This can be useful if you'd like to have a plain folder view.", @@ -1169,7 +1152,7 @@ "OptionDownloadBoxImage": "Box", "OptionDownloadDiscImage": "Disc", "OptionDownloadImagesInAdvance": "Download images in advance", - "OptionDownloadImagesInAdvanceHelp": "By default, most images are only downloaded when requested by a Jellyfin app. Enable this option to download all images in advance, as new media is imported. This may cause significantly longer library scans.", + "OptionDownloadImagesInAdvanceHelp": "By default, most images are only downloaded when requested by a client. Enable this option to download all images in advance, as new media is imported. This may cause significantly longer library scans.", "OptionDownloadLogoImage": "Logo", "OptionDownloadMenuImage": "Menu", "OptionDownloadPrimaryImage": "Primary", @@ -1202,7 +1185,7 @@ "OptionHlsSegmentedSubtitles": "HLS segmented subtitles", "OptionHomeVideos": "Photos", "OptionIgnoreTranscodeByteRangeRequests": "Ignore transcode byte range requests", - "OptionIgnoreTranscodeByteRangeRequestsHelp": "If enabled, these requests will be honored but will ignore the byte range header.", + "OptionIgnoreTranscodeByteRangeRequestsHelp": "These requests will be honored but will ignore the byte range header.", "OptionImdbRating": "IMDb Rating", "OptionIsHD": "HD", "OptionIsSD": "SD", @@ -1220,9 +1203,9 @@ "OptionOnInterval": "On an interval", "OptionParentalRating": "Parental Rating", "OptionPlainStorageFolders": "Display all folders as plain storage folders", - "OptionPlainStorageFoldersHelp": "If enabled, all folders are represented in DIDL as \"object.container.storageFolder\" instead of a more specific type, such as \"object.container.person.musicArtist\".", + "OptionPlainStorageFoldersHelp": "All folders are represented in DIDL as \"object.container.storageFolder\" instead of a more specific type, such as \"object.container.person.musicArtist\".", "OptionPlainVideoItems": "Display all videos as plain video items", - "OptionPlainVideoItemsHelp": "If enabled, all videos are represented in DIDL as \"object.item.videoItem\" instead of a more specific type, such as \"object.item.videoItem.movie\".", + "OptionPlainVideoItemsHelp": "All videos are represented in DIDL as \"object.item.videoItem\" instead of a more specific type, such as \"object.item.videoItem.movie\".", "OptionPlayCount": "Play Count", "OptionPlayed": "Played", "OptionPoster": "Poster", @@ -1264,7 +1247,6 @@ "OptionWeekends": "Weekends", "OptionWeekly": "Weekly", "OriginalAirDateValue": "Original air date: {0}", - "OtherArtist": "Other Artist", "Overview": "Overview", "PackageInstallCancelled": "{0} (version {1}) installation cancelled.", "PackageInstallCompleted": "{0} (version {1}) installation completed.", @@ -1273,8 +1255,8 @@ "PasswordMatchError": "Password and password confirmation must match.", "PasswordResetComplete": "The password has been reset.", "PasswordResetConfirmation": "Are you sure you wish to reset the password?", - "PasswordResetHeader": "Reset Password", - "PasswordResetProviderHelp": "Choose a Password Reset Provider to be used when this user requests a password reset", + "HeaderResetPassword": "Reset Password", + "PasswordResetProviderHelp": "Choose a password reset provider to be used when this user requests a password reset.", "PasswordSaved": "Password saved.", "People": "People", "PerfectMatch": "Perfect match", @@ -1299,7 +1281,7 @@ "PleaseEnterNameOrId": "Please enter a name or an external ID.", "PleaseRestartServerName": "Please restart Jellyfin Server - {0}.", "PleaseSelectTwoItems": "Please select at least two items.", - "PluginInstalledMessage": "The plugin has been successfully installed. Jellyfin Server will need to be restarted for changes to take effect.", + "MessagePluginInstalled": "The plugin has been successfully installed. Jellyfin Server will need to be restarted for changes to take effect.", "PreferEmbeddedTitlesOverFileNames": "Prefer embedded titles over filenames", "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.", @@ -1307,12 +1289,12 @@ "Premiere": "Premiere", "Premieres": "Premieres", "Previous": "Previous", + "PreviousTrack": "Skip to previous", "Primary": "Primary", "Producer": "Producer", "ProductionLocations": "Production locations", "Programs": "Programs", "Quality": "Quality", - "QueueAllFromHere": "Queue all from here", "Raised": "Raised", "Rate": "Rate", "RecentlyWatched": "Recently watched", @@ -1323,15 +1305,14 @@ "Record": "Record", "RecordSeries": "Record series", "RecordingCancelled": "Recording cancelled.", - "RecordingPathChangeMessage": "Changing your recording folder will not migrate existing recordings from the old location to the new. You'll need to move them manually if desired.", + "MessageChangeRecordingPath": "Changing your recording folder will not migrate existing recordings from the old location to the new. You'll need to move them manually if desired.", "RecordingScheduled": "Recording scheduled.", "Recordings": "Recordings", "Refresh": "Refresh", - "RefreshDialogHelp": "Metadata is refreshed based on settings and internet services that are enabled in the Jellyfin Server dashboard.", + "RefreshDialogHelp": "Metadata is refreshed based on settings and internet services that are enabled in the dashboard.", "RefreshMetadata": "Refresh metadata", "RefreshQueued": "Refresh queued.", "ReleaseDate": "Release date", - "ReleaseGroup": "Release Group", "RememberMe": "Remember Me", "RemoveFromCollection": "Remove from collection", "RemoveFromPlaylist": "Remove from playlist", @@ -1344,7 +1325,6 @@ "ReplaceExistingImages": "Replace existing images", "ResumeAt": "Resume from {0}", "Rewind": "Rewind", - "RunAtStartup": "Run at startup", "Runtime": "Runtime", "Saturday": "Saturday", "Save": "Save", @@ -1452,7 +1432,6 @@ "TabParentalControl": "Parental Control", "TabPassword": "Password", "TabPlayback": "Playback", - "TabPlaylist": "Playlist", "TabPlaylists": "Playlists", "TabPlugins": "Plugins", "TabProfile": "Profile", @@ -1492,7 +1471,7 @@ "TvLibraryHelp": "Review the {0}TV naming guide{1}.", "Uniform": "Uniform", "UninstallPluginConfirmation": "Are you sure you wish to uninstall {0}?", - "UninstallPluginHeader": "Uninstall Plugin", + "HeaderUninstallPlugin": "Uninstall Plugin", "Unmute": "Unmute", "Unplayed": "Unplayed", "Unrated": "Unrated", @@ -1524,7 +1503,6 @@ "ValueTimeLimitSingleHour": "Time limit: 1 hour", "ValueVideoCodec": "Video Codec: {0}", "Vertical": "Vertical", - "VideoRange": "Video range", "ViewAlbum": "View album", "ViewAlbumArtist": "View album artist", "ViewPlaybackInfo": "View playback info", @@ -1558,8 +1536,8 @@ "EveryXHours": "Every {0} hours", "OnApplicationStartup": "On application startup", "UnsupportedPlayback": "Jellyfin cannot decrypt content protected by DRM but all content will be attempted regardless, including protected titles. Some files may appear completely black due to encryption or other unsupported features, such as interactive titles.", - "EnableBlurhash": "Enable blurred placeholders for images", - "EnableBlurhashHelp": "Images that are still being loaded will be displayed with a blurred placeholder", + "EnableBlurHash": "Enable blurred placeholders for images", + "EnableBlurHashHelp": "Images that are still being loaded will be displayed with a unique placeholder.", "ButtonSyncPlay": "SyncPlay", "ButtonCast": "Cast", "ButtonPlayer": "Player", diff --git a/src/strings/eo.json b/src/strings/eo.json index e2eebac174..2a4adda538 100644 --- a/src/strings/eo.json +++ b/src/strings/eo.json @@ -18,7 +18,6 @@ "AddedOnValue": "aldonis {0}", "AddToPlaylist": "aldoni al playlist", "AddToPlayQueue": "Aldonu ludi voston", - "AddItemToCollectionHelp": "Aldonu erojn al kolektoj serĉante ilin kaj uzante ĝian alklakon aŭ frapetu menuojn por aldoni ilin al kolekto.", "Add": "Aldoni", "AccessRestrictedTryAgainLater": "Aliro nuntempe estas restriktita. Bonvolu reprovi poste." } diff --git a/src/strings/es-ar.json b/src/strings/es-ar.json index 2b1dbd1a9e..c8a1dbb87c 100644 --- a/src/strings/es-ar.json +++ b/src/strings/es-ar.json @@ -12,7 +12,6 @@ "LabelFinish": "Terminar", "LabelNext": "Siguiente", "LabelPrevious": "Anterior", - "LabelYourFirstName": "Su nombre:", "LabelYoureDone": "Ha terminado!", "MoreUsersCanBeAddedLater": "Se pueden agregar más usuarios más tarde desde el tablero.", "NewCollectionNameExample": "Ejemplo: Colección de Star Wars", @@ -50,7 +49,6 @@ "AccessRestrictedTryAgainLater": "El acceso está actualmente restringido. Por favor intente nuevamente más tarde.", "Actor": "Actor", "Add": "Agregar", - "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 cola de reproducción", "AddToPlaylist": "Añadir a la lista de reproducción", @@ -78,7 +76,6 @@ "AttributeNew": "Nuevo", "Audio": "Audio", "Auto": "Auto", - "AutoBasedOnLanguageSetting": "Auto (basado en configuración de idioma)", "Backdrop": "Fondo", "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.", @@ -87,23 +84,18 @@ "Art": "Arte", "AsManyAsPossible": "Tantos como sea posible", "AspectRatio": "Relación de aspecto", - "AudioBitrateNotSupported": "Tasa de bits de audio no soportado", - "AudioSampleRateNotSupported": "Frecuencia de muestreo de audio no soportada", "Backdrops": "Imágenes de fondo", "Banner": "Cartel", - "BestFit": "Mejor ajuste", "BirthDateValue": "Nacimiento: {0}", "BirthLocation": "Lugar de nacimiento", "BirthPlaceValue": "Lugar de nacimiento: {0}", "Blacklist": "Lista negra", - "BobAndWeaveWithHelp": "Bob and weave (mayor calidad, pero más lento)", "BookLibraryHelp": "Se admiten libros de audio y texto. Revise la {0}guía de nombres de libros {1}.", "Box": "Caja", "BoxRear": "Caja (lado opuesto)", "Browse": "Explorar", - "BrowsePluginCatalogMessage": "Explore nuestro catálogo de complementos para ver los complementos disponibles.", + "MessageBrowsePluginCatalog": "Explore nuestro catálogo de complementos para ver los complementos disponibles.", "BurnSubtitlesHelp": "Determina si el servidor debe grabarse en subtítulos al transcodificar videos. Evitar esto mejorará en gran medida el rendimiento. Seleccione Automático para grabar formatos basados en imágenes (VOBSUB, PGS, SUB, IDX, ...) y ciertos subtítulos ASS o SSA.", - "ButtonAccept": "Aceptar", "ButtonAdd": "Agregar", "ButtonAddMediaLibrary": "Agregar biblioteca de medios", "ButtonAddScheduledTaskTrigger": "Agregar desencadenador", @@ -116,14 +108,8 @@ "ButtonAudioTracks": "Pistas de audio", "ButtonBack": "Atrás", "ButtonCancel": "Cancelar", - "ButtonCancelSeries": "Cancelar serie", "ButtonChangeServer": "Cambiar servidor", - "ButtonClear": "Limpiar", - "ButtonClose": "Cerrar", - "ButtonConfigurePassword": "Configurar contraseña", - "ButtonConfigurePinCode": "Configurar clave PIN", "ButtonConnect": "Conectar", - "ButtonCreate": "Crear", "ButtonDelete": "Eliminar", "ButtonDeleteImage": "Eliminar imagen", "ButtonDown": "Abajo", @@ -131,119 +117,66 @@ "ButtonEdit": "Editar", "ButtonEditImages": "Editar imágenes", "ButtonEditOtherUserPreferences": "Editar perfil, imagen y preferencias personales del usuario.", - "ButtonExit": "Salir", "ButtonFilter": "Filtrar", "ButtonForgotPassword": "Olvidé mi contraseña", "ButtonFullscreen": "Pantalla completa", "ButtonGotIt": "Lo entendí", "ButtonGuide": "Guía", "ButtonHelp": "Ayuda", - "ButtonHide": "Ocultar", "ButtonHome": "Inicio", "ButtonInfo": "Información", - "ButtonInviteUser": "Invitar usuario", - "ButtonLearnMore": "Aprender más", "ButtonLibraryAccess": "Acceso a la biblioteca", - "ButtonManageFolders": "Administrar carpetas", - "ButtonManageServer": "Administrar servidor", "ButtonManualLogin": "Inicio de sesión manual", - "ButtonMenu": "Menú", "ButtonMore": "Más", - "ButtonMute": "Silenciar", "ButtonNetwork": "Red", "ButtonNew": "Nuevo", - "ButtonNewServer": "Nuevo servidor", - "ButtonNext": "Siguiente", "ButtonNextTrack": "Pista siguiente", - "ButtonNo": "No", - "ButtonNowPlaying": "Reproduciendo ahora", "ButtonOff": "Desactivado", "ButtonOk": "Aceptar", "ButtonOpen": "Abrir", "ButtonParentalControl": "Control parental", "ButtonPause": "Pausar", "ButtonPlay": "Reproducir", - "ButtonPlayTrailer": "Tráiler", - "ButtonPlaylist": "Lista de reproducción", - "ButtonPreferences": "Preferencias", - "ButtonPrevious": "Anterior", "ButtonPreviousTrack": "Pista anterior", - "ButtonPrivacyPolicy": "Política de privacidad", "ButtonProfile": "Perfil", - "ButtonProfileHelp": "Definir imagen de perfil y contraseña", - "ButtonQuality": "Calidad", - "ButtonRecord": "Grabar", "ButtonRefresh": "Actualizar", "ButtonRefreshGuideData": "Actualizar datos de la guía", - "ButtonReject": "Rechazar", - "ButtonRemote": "Remoto", - "ButtonRemoteControl": "Control remoto", "ButtonRemove": "Quitar", "ButtonRename": "Renombrar", "ButtonRepeat": "Repetir", - "ButtonReports": "Reportes", - "ButtonReset": "Restablecer", "ButtonResetEasyPassword": "Restablecer código PIN", "ButtonResetPassword": "Restablecer contraseña", - "ButtonResetTuner": "Restablecer sintonizador", "ButtonRestart": "Reiniciar", - "ButtonRestartNow": "Reiniciar ahora", "ButtonResume": "Resumir", "ButtonRevoke": "Revocar", "ButtonSave": "Guardar", "ButtonScanAllLibraries": "Escanear todas las bibliotecas", - "ButtonScanLibrary": "Escanear biblioteca", - "ButtonScheduledTasks": "Tareas programadas", "ButtonSearch": "Buscar", - "ButtonSelect": "Seleccionar", "ButtonSelectDirectory": "Seleccionar directorio", "ButtonSelectServer": "Seleccionar servidor", "ButtonSelectView": "Seleccionar vista", "ButtonSend": "Enviar", - "ButtonSendInvitation": "Enviar invitación", - "ButtonServer": "Servidor", - "ButtonServerDashboard": "Panel del servidor", "ButtonSettings": "Configuraciones", - "ButtonShare": "Compartir", "ButtonShuffle": "Aleatorio", "ButtonShutdown": "Apagar", "ButtonSignIn": "Iniciar sesión", - "ButtonSkip": "Saltear", "ButtonSort": "Ordenar", "ButtonStart": "Iniciar", "ButtonStop": "Detener", - "ButtonStopRecording": "Detener grabación", "ButtonSubmit": "Enviar", "ButtonSubtitles": "Subtítulos", - "ButtonSync": "Sincronizar", "ButtonTrailer": "Avance", - "ButtonTryAgain": "Intentar de nuevo", "ButtonUninstall": "Desinstalar", - "ButtonUnmute": "Desilenciar", "ButtonUp": "Arriba", - "ButtonUpdateNow": "Actualizar ahora", - "ButtonView": "Ver", - "ButtonViewAlbum": "Ver álbum", - "ButtonViewArtist": "Ver artista", - "ButtonViewWebsite": "Ver sitio web", "ButtonWebsite": "Sitio web", - "ButtonYes": "Si", - "CancelDownload": "Cancelar descarga", "CancelRecording": "Cancelar grabación", "CancelSeries": "Cancelar serie", "Categories": "Categorías", - "CategoryApplication": "Aplicación", - "CategoryPlugin": "Complemento", - "CategorySync": "Sincronización", - "CategorySystem": "Sistema", - "CategoryUser": "Usuario", "ChangingMetadataImageSettingsNewContent": "Cambiar la configuración de descarga de metadatos o arte solo aplicará al contenido nuevo que se agregue a tu biblioteca. Para aplicar los cambios a los títulos existentes, tendrás que actualizar sus metadatos manualmente.", "ChannelAccessHelp": "Selecciona los canales a compartir con este usuario. Los administradores podrán editar todos los canales con el administrador de metadatos.", "ChannelNameOnly": "Sólo canal {0}", "ChannelNumber": "Número del canal", "CinemaModeConfigurationHelp": "El modo cine trae la experiencia del cine directamente a tu living, con la posibilidad de reproducir avances e introducciones personalizadas antes de la función principal.", - "CinemaModeFeatureDescription": "El modo cine te da la verdadera experiencia del cine con tráilers e introducciones personalizadas antes de la función principal.", - "CloudSyncFeatureDescription": "Sincroniza tus medios a la nube para respaldos, archivados y conversiones más fáciles.", "ColorPrimaries": "Colores primarios", "ColorSpace": "Espacio de color", "ColorTransfer": "Transferencia de color", @@ -255,29 +188,15 @@ "ConfirmDeleteItems": "Eliminar estos elementos los eliminará tanto del sistema de archivos como de la biblioteca de medios. ¿Está seguro que desea continuar?", "ConfirmDeletion": "Confirmar eliminación", "ConfirmEndPlayerSession": "¿Desea apagar Jellyfin en {0}?", - "ConfirmRemoveDownload": "¿Quitar descarga?", "Connect": "Conectar", - "ContainerBitrateExceedsLimit": "La tasa de bits del medio excede el límite.", - "ContainerNotSupported": "Contenedor no soportado", - "Continue": "Continuar", - "ContinueInSecondsValue": "Continuar en {0} segundos.", "ContinueWatching": "Seguir viendo", "Continuing": "Continuando", - "Convert": "Convertir", - "ConvertItemLimitHelp": "Opcional. Configure un límite en el número de elementos que serán convertidos.", - "ConvertUnwatchedVideosOnly": "Convertir sólo videos no vistos.", - "ConvertUnwatchedVideosOnlyHelp": "Unicamente los videos no visualizados van a ser convertidos.", - "ConvertingDots": "Convirtiendo...", - "Countries": "Paises", - "CoverArt": "Arte de portada", "CustomDlnaProfilesHelp": "Crear un perfil personalizado para apuntar un nuevo dispositivo o sobre-escribir el perfil del sistema.", "DateAdded": "Fecha agregada", "DatePlayed": "Fecha de reproducción", - "Days": "Dias", "DeathDateValue": "Muerte: {0}", "Default": "Predeterminado", - "DefaultCameraUploadPathHelp": "Selecciona un directorio personalizado. Si queda en blanco, una carpeta predeterminada va a ser usada. Si es una carpeta personalizada, esta va a necesitar ser agregada en la biblioteca, en la configuración de bibliotecas de Jellyfin.", - "DefaultErrorMessage": "Hubo un error procesando la solicitud. Por favor intentalo nuevamente mas tarde.", + "ErrorDefault": "Hubo un error procesando la solicitud. Por favor intentalo nuevamente mas tarde.", "DefaultMetadataLangaugeDescription": "Estos son tus predeterminados y pueden ser personalizados por librería únicamente.", "Delete": "Borrar", "DeleteDeviceConfirmation": "Estas seguro que quieres borrar este dispositivo? Este va a volver a aparecer cuando una persona se registre.", @@ -291,8 +210,6 @@ "Desktop": "Escritorio", "DetectingDevices": "Detectando dispositivos", "DeviceAccessHelp": "Esto aplica solo a dispositivos que pueden ser identificados y esto no va a prevenir el acceso con el navegador. Filtrar el acceso a los dispositivos del usuario va a prevenir el uso con nuevos dispositivos, hasta que estos sean aprobados.", - "DeviceLastUsedByUserName": "Usado ultima vez por {0}", - "DirectPlayError": "Error en la reproducción directa", "DirectPlaying": "Reproducción directa", "DirectStreamHelp1": "El medio es compatible con el dispositivo con respecto a la resolución y el tipo de medio (H.264, AC3, etc.), pero está en un contenedor de archivos incompatible (mkv, avi, wmv, etc.). El video se volverá a empaquetar sobre la marcha antes de transmitirlo al dispositivo.", "DirectStreamHelp2": "La transmisión directa de un archivo utiliza muy poca potencia de procesamiento sin pérdida de calidad de video.", @@ -311,16 +228,9 @@ "DoNotRecord": "No grabar", "Down": "Abajo", "Download": "Descargar", - "DownloadItemLimitHelp": "Opcional. Establecer un limite a los items por descargar.", - "Downloaded": "Descargado", - "Downloading": "Descargando", - "DownloadingDots": "Descargando...", - "Downloads": "Descargas", "DownloadsValue": "{0} descargas", "DrmChannelsNotImported": "Canales con DRM no van a ser importados.", "DropShadow": "Dejar sombra", - "DvrFeatureDescription": "Agendar grabaciones individuales de TV en vivo, grabaciones de series y mucho mas con Jellyfin DVR.", - "DvrSubscriptionRequired": "Jellyfin DVR requiere una suscripción a Jellyfin Premiere.", "EasyPasswordHelp": "Su código PIN fácil se usa para acceder sin conexión a clientes compatibles y también se puede usar para iniciar sesión fácilmente en la red.", "Edit": "Editar", "EditImages": "Editar imagenes", @@ -334,7 +244,6 @@ "CriticRating": "Valoración crítica", "DefaultSubtitlesHelp": "Los subtítulos se cargan según los indicadores predeterminados y forzados en los metadatos incrustados. Las preferencias de idioma se consideran cuando hay varias opciones disponibles.", "Dislike": "No me gusta", - "EnableDebugLoggingHelp": "El registro de depuración debería activarse solo a fin de solucionar problemas. El incremento en el acceso al sistema de archivos podría prevenir que el servidor entre en modo de suspensión en algunos entornos.", "EnableDisplayMirroring": "Habilitar duplicación de la pantalla", "EnableExternalVideoPlayers": "Habilitar reproductores de video externos", "EnableExternalVideoPlayersHelp": "Se mostrará un menú de reproductor externo al iniciar la reproducción de video.", @@ -357,7 +266,7 @@ "ErrorAddingXmlTvFile": "Ocurrió un error al acceder al archivo de XmlTV. Por favor asegúrate de que el archivo existe e intenta de nuevo.", "ErrorDeletingItem": "Ocurrió un error al eliminar el ítem del servidor Jellyfin. Por favor verifica que el servidor Jellyfin tiene permiso de escritura a la carpeta de medios e intenta de nuevo.", "ErrorGettingTvLineups": "Ocurrió un error al descargar la guía de programación de TV. Por favor asegúrate que tu información es correcta e intenta de nuevo.", - "ErrorMessageStartHourGreaterThanEnd": "La hora de fin tiene que ser mayor que la de inicio.", + "ErrorStartHourGreaterThanEnd": "La hora de fin tiene que ser mayor que la de inicio.", "ErrorPleaseSelectLineup": "Por favor selecciona un alineamiento e intenta de nuevo. Si no existen alineamientos disponibles, asegúrate de que tu nombre de usuario, contraseña y código postal son correctos.", "ErrorSavingTvProvider": "Ocurrió un error al guardar el proveedor de TV. Por favor asegúrate de que está disponible e intenta de nuevo.", "EveryNDays": "Cada {0} días", @@ -396,7 +305,6 @@ "HeaderFavoriteArtists": "Artistas favoritos", "HeaderFavoriteAlbums": "Álbumes favoritos", "Shows": "Programas", - "CopyStreamURLError": "Hubo un error copiando la URL.", "CopyStreamURLSuccess": "URL copiada con éxito.", "CopyStreamURL": "Copiar URL de transmisión", "ButtonSplit": "Dividir", @@ -408,7 +316,6 @@ "HeaderBranding": "Marca", "HeaderBooks": "Libros", "HeaderBlockItemsWithNoRating": "Bloquear elementos con rating de información vacía o no reconocible:", - "HeaderAutomaticUpdates": "Actualizaciones Automáticas", "HeaderAudioSettings": "Configuraciones de audio", "HeaderAudioBooks": "Audiolibros", "HeaderAppearsOn": "Aparece en", @@ -431,7 +338,6 @@ "HeaderAccessScheduleHelp": "Cree un horario de acceso para limitar el acceso a ciertas horas.", "HeaderAccessSchedule": "Horario de acceso", "HardwareAccelerationWarning": "Habilitar la aceleración de hardware puede causar inestabilidad en algunos entornos. Asegúrese de que su sistema operativo y los controladores de vídeo estén completamente actualizados. Si tiene dificultades para reproducir el vídeo después de habilitarlo, deberá volver a cambiar la configuración a \"Nada\".", - "HandledByProxy": "Manejado por un proxy reverso", "HDPrograms": "Programas en HD", "EncoderPresetHelp": "Elige un valor más rápido para mejorar el desempeño, o elige un valor más lento para mejorar la calidad.", "FetchingData": "Obteniendo información adicional", @@ -674,8 +580,6 @@ "LabelAudioBitrate": "Velocidad de bits de audio:", "LabelAudio": "Audio", "LabelAllowedRemoteAddresses": "Filtro de dirección IP remota:", - "LabelAllowServerAutoRestartHelp": "El servidor solo se reiniciará durante los períodos de inactividad cuando no haya usuarios activos.", - "LabelAllowServerAutoRestart": "Permita que el servidor se reinicie automáticamente para aplicar actualizaciones", "LabelAllowHWTranscoding": "Permitir transcodificación con hardware", "LabelAlbumArtists": "Artistas del álbum:", "LabelContentType": "Tipo de contenido:", @@ -772,7 +676,6 @@ "LabelDateAddedBehaviorHelp": "Si un valor de metadatos está presente, siempre se usará antes de cualquiera de estas opciones.", "LabelDateAddedBehavior": "Comportamiento de fecha agregada para contenido nuevo:", "LabelDateAdded": "Fecha agregada:", - "LabelDashboardTheme": "Tema del panel del servidor:", "LabelCustomRating": "Calificación personalizada:", "LabelCustomDeviceDisplayNameHelp": "Proporcione un nombre personalizado para mostrar o déjelo vacío para usar el nombre informado por el dispositivo.", "LabelCustomDeviceDisplayName": "Nombre para mostrar:", @@ -825,7 +728,6 @@ "LabelSportsCategories": "Categorías de deportes:", "LabelSpecialSeasonsDisplayName": "Nombre de la temporada especial:", "LabelSource": "Fuente:", - "LabelSoundEffects": "Efectos de sonido:", "LabelSortTitle": "Ordenar título:", "LabelSortOrder": "Orden de clasificación:", "LabelSortBy": "Ordenar por:", @@ -836,7 +738,6 @@ "LabelSkipIfAudioTrackPresentHelp": "Desmarque esto para asegurarse de que todos los videos tengan subtítulos, independientemente del idioma de audio.", "LabelSkipIfAudioTrackPresent": "Omita si la pista de audio predeterminada coincide con el idioma de descarga", "LabelSkipBackLength": "Saltar de nuevo la longitud:", - "LabelSkin": "Piel:", "LabelSize": "Tamaño:", "LabelSimultaneousConnectionLimit": "Límite de transmisiones simultáneas:", "LabelServerName": "Nombre del servidor:", @@ -914,7 +815,6 @@ "LabelNewPasswordConfirm": "Nueva contraseña confirmada:", "LabelNewPassword": "Nueva contraseña:", "LabelNewName": "Nuevo nombre:", - "LabelNightly": "Nocturna", "LabelStable": "Estable", "LabelChromecastVersion": "Versión de Chromecast", "LabelName": "Nombre:", @@ -1005,8 +905,8 @@ "NoSubtitlesHelp": "Los subtítulos no se cargarán de manera predeterminada. Todavía se pueden activar manualmente durante la reproducción.", "NoSubtitles": "Ninguno", "NoSubtitleSearchResultsFound": "No se han encontrado resultados.", - "NoPluginConfigurationMessage": "Este complemento no tiene opciones para configurar.", - "NoNextUpItemsMessage": "Nada encontrado. ¡Comienza a ver tus shows!", + "MessageNoPluginConfiguration": "Este complemento no tiene opciones para configurar.", + "MessageNoNextUpItems": "Nada encontrado. ¡Comienza a ver tus shows!", "NoNewDevicesFound": "No se encontraron nuevos dispositivos. Para agregar un nuevo sintonizador, cierre este cuadro de diálogo e ingrese la información del dispositivo manualmente.", "NoCreatedLibraries": "Parece que todavía no has creado ninguna biblioteca. {0}¿Te gustaría crear una ahora?{1}", "No": "No", @@ -1081,10 +981,8 @@ "MessageLeaveEmptyToInherit": "Deje en blanco para heredar la configuración de un elemento primario o el valor predeterminado global.", "MessageItemsAdded": "Artículos añadidos.", "MessageItemSaved": "Artículo guardado.", - "MessageUnauthorizedUser": "No tiene autorización para acceder al servidor en este momento. Póngase en contacto con el administrador del servidor para obtener más información.", "MessageInvalidUser": "Usuario o contraseña inválidos. Inténtalo de nuevo.", "MessageInvalidForgotPasswordPin": "Se ingresó un código PIN no válido o caducado. Inténtalo de nuevo.", - "MessageInstallPluginFromApp": "Este complemento debe instalarse desde la aplicación en la que desea utilizarlo.", "MessageImageTypeNotSelected": "Seleccione un tipo de imagen del menú desplegable.", "MessageImageFileTypeAllowed": "Solo se admiten archivos JPEG y PNG.", "MessageForgotPasswordInNetworkRequired": "Intente nuevamente dentro de su red doméstica para iniciar el proceso de restablecimiento de contraseña.", @@ -1116,7 +1014,6 @@ "MediaInfoStreamTypeEmbeddedImage": "Imagen incrustada", "MediaInfoStreamTypeData": "Data", "MediaInfoStreamTypeAudio": "Audio", - "MediaInfoSoftware": "Software", "MediaInfoTimestamp": "Marca de tiempo", "MediaInfoSize": "Tamaño", "MediaInfoSampleRate": "Frecuencia de muestreo", @@ -1150,11 +1047,9 @@ "LiveBroadcasts": "Transmisiones en vivo", "Live": "En vivo", "List": "Lista", - "LinksValue": "Enlaces: {0}", "Like": "Me gusta", "LeaveBlankToNotSetAPassword": "Puede dejar este campo en blanco para no establecer una contraseña.", "LearnHowYouCanContribute": "Aprende cómo puedes contribuir.", - "LaunchWebAppOnStartup": "Iniciar la interfaz web al iniciar el servidor", "LatestFromLibrary": "Últimos {0}", "Large": "Grande", "LabelffmpegPathHelp": "La ruta al archivo de la aplicación ffmpeg o la carpeta que contiene ffmpeg.", @@ -1260,7 +1155,6 @@ "MusicLibraryHelp": "Revise la {0}guía de nomenclatura musical{1}.", "MovieLibraryHelp": "Revise la {0}guía de nombres de películas{1}.", "LibraryAccessHelp": "Seleccione las bibliotecas para compartir con este usuario. Los administradores podrán editar todas las carpetas con el administrador de metadatos.", - "LaunchWebAppOnStartupHelp": "Abra el cliente web en su navegador web predeterminado cuando el servidor arranque inicialmente. Esto no ocurrirá cuando use la función de reinicio del servidor.", "LanNetworksHelp": "Lista separada por comas de direcciones IP o entradas de IP/máscara de red para redes que se considerarán en la red local cuando se impongan restricciones de ancho de banda. Si se establece, todas las demás direcciones IP se considerarán en la red externa y estarán sujetas a las restricciones de ancho de banda externo. Si se deja en blanco, solo se considera que la subred del servidor está en la red local.", "LabelXDlnaDocHelp": "Determina el contenido del elemento X_DLNADOC en el espacio de nombres urn:schemas-dlna-org:device-1-0.", "LabelXDlnaDoc": "Doc. X-DLNA:", @@ -1295,7 +1189,7 @@ "Refresh": "Actualizar", "Recordings": "Grabaciones", "RecordingScheduled": "Grabación programada.", - "RecordingPathChangeMessage": "Cambiar su carpeta de grabación no migrará las grabaciones existentes de la ubicación anterior a la nueva. Tendrá que moverlos manualmente si lo desea.", + "MessageChangeRecordingPath": "Cambiar su carpeta de grabación no migrará las grabaciones existentes de la ubicación anterior a la nueva. Tendrá que moverlos manualmente si lo desea.", "RecordingCancelled": "Grabación cancelada.", "RecordSeries": "Grabar series", "Record": "Grabar", @@ -1306,7 +1200,6 @@ "RecentlyWatched": "Recientemente visto", "Rate": "Velocidad", "Raised": "Elevado", - "QueueAllFromHere": "Hacer cola todo desde aquí", "Quality": "Calidad", "Programs": "Programas", "ProductionLocations": "Ubicaciones de producción", @@ -1319,7 +1212,7 @@ "PreferEmbeddedEpisodeInfosOverFileNamesHelp": "Esto usa la información de los metadatos incrustados del capítulo si está disponible.", "PreferEmbeddedTitlesOverFileNamesHelp": "Esto determina el título de visualización predeterminado cuando no hay metadatos de Internet o metadatos locales disponibles.", "PreferEmbeddedTitlesOverFileNames": "Preferir títulos incrustados sobre nombres de archivo", - "PluginInstalledMessage": "El complemento se ha instalado correctamente. El servidor Jellyfin deberá reiniciarse para que los cambios surtan efecto.", + "MessagePluginInstalled": "El complemento se ha instalado correctamente. El servidor Jellyfin deberá reiniciarse para que los cambios surtan efecto.", "PleaseSelectTwoItems": "Seleccione al menos dos elementos.", "PleaseRestartServerName": "Reinicie el servidor Jellyfin - {0}.", "PleaseEnterNameOrId": "Por favor, introduzca un nombre o una ID externa.", @@ -1343,7 +1236,7 @@ "People": "Personas", "PasswordSaved": "Contraseña guardada.", "PasswordResetProviderHelp": "Elija un proveedor de restablecimiento de contraseña para usar cuando este usuario solicite un restablecimiento de contraseña", - "PasswordResetHeader": "Restablecer contraseña", + "HeaderResetPassword": "Restablecer contraseña", "PasswordResetConfirmation": "¿Estás seguro de que deseas restablecer la contraseña?", "PasswordResetComplete": "La contraseña ha sido restablecida.", "PasswordMatchError": "La contraseña y la confirmación de la contraseña deben coincidir.", @@ -1351,7 +1244,6 @@ "PackageInstallCompleted": "Instalación {0} (versión {1}) completada.", "PackageInstallCancelled": "Instalación de {0} (versión {1}) cancelada.", "Overview": "Visión general", - "OtherArtist": "Otro artista", "OriginalAirDateValue": "Fecha de emisión original: {0}", "OptionWeekly": "Semanal", "OptionWeekends": "Fines de semana", @@ -1441,11 +1333,10 @@ "RemoveFromPlaylist": "Eliminar de la lista de reproducción", "RemoveFromCollection": "Eliminar de la colección", "RememberMe": "Recuérdame", - "ReleaseGroup": "Grupo de lanzamiento", "ButtonCast": "Transmitir", "ButtonSyncPlay": "SyncPlay", - "EnableBlurhashHelp": "Las imágenes que aún se están cargando se mostrarán con un marcador de posición borroso", - "EnableBlurhash": "Habilitar marcadores de posición borrosos para imágenes", + "EnableBlurHashHelp": "Las imágenes que aún se están cargando se mostrarán con un marcador de posición borroso", + "EnableBlurHash": "Habilitar marcadores de posición borrosos para imágenes", "OnApplicationStartup": "En el inicio de la aplicación", "EveryXHours": "Cada {0} horas", "EveryHour": "Cada hora", @@ -1472,9 +1363,7 @@ "Wednesday": "Miércoles", "Watched": "Visto", "ViewPlaybackInfo": "Ver información de reproducción", - "ViewArtist": "Ver artista", "ViewAlbum": "Ver álbum", - "VideoRange": "Rango de video", "Vertical": "Vertical", "ValueTimeLimitSingleHour": "Límite de tiempo: 1 hora", "ValueTimeLimitMultiHour": "Límite de tiempo: {0} horas", @@ -1500,7 +1389,7 @@ "Unrated": "Sin calificación", "Unplayed": "No reproducido", "Unmute": "Dejar de silenciar", - "UninstallPluginHeader": "Desinstalar complemento", + "HeaderUninstallPlugin": "Desinstalar complemento", "UninstallPluginConfirmation": "¿Estás seguro de que deseas desinstalar {0}?", "Uniform": "Uniforme", "TvLibraryHelp": "Revise la {0}guía de nombres de TV{1}.", @@ -1541,7 +1430,6 @@ "TabProfile": "Perfil", "TabPlugins": "Complementos", "TabPlaylists": "Listas de reproducción", - "TabPlaylist": "Lista de reproducción", "TabPlayback": "Reproducción", "TabPassword": "Contraseña", "TabParentalControl": "Control parental", @@ -1645,7 +1533,6 @@ "Save": "Guardar", "Saturday": "Sábado", "Runtime": "Tiempo de ejecución", - "RunAtStartup": "Ejecutar en el arranque", "Rewind": "Rebobinar", "ResumeAt": "Reanudar desde {0}", "ButtonPlayer": "Reproductor", diff --git a/src/strings/es-mx.json b/src/strings/es-mx.json index 68e9136aff..b0923c0228 100644 --- a/src/strings/es-mx.json +++ b/src/strings/es-mx.json @@ -1,9 +1,7 @@ { "Absolute": "Absoluto", - "Accept": "Aceptar", "AccessRestrictedTryAgainLater": "El acceso está restringido actualmente. Por favor, inténtalo más tarde.", "Add": "Agregar", - "AddItemToCollectionHelp": "Agrega elementos a las colecciones buscándolos y utilizando sus menúes al hacer clic derecho o al tocarlos para agregarlos a una colección.", "AddToCollection": "Agregar a colección", "AddToPlayQueue": "Agregar a la cola de reproducción", "AddToPlaylist": "Agregar a lista de reproducción", @@ -29,7 +27,6 @@ "AllowedRemoteAddressesHelp": "Lista separada por comas de direcciones IP/máscaras de red para las redes a las que se les permitirá conectarse remotamente. Si se deja en blanco, se les permitirá a todas las direcciones remotas.", "AlwaysPlaySubtitles": "Siempre reproducir", "AlwaysPlaySubtitlesHelp": "Los subtítulos que coincidan con el idioma preferido serán cargados independientemente del idioma del audio.", - "AnamorphicVideoNotSupported": "Video anamorfico no soportado", "AnyLanguage": "Cualquier idioma", "Anytime": "En cualquier momento", "AroundTime": "Alrededor de", @@ -39,11 +36,9 @@ "Ascending": "Ascendente", "AspectRatio": "Relación de aspecto", "AttributeNew": "Nuevo", - "AutoBasedOnLanguageSetting": "Auto (basado en la configuración del idioma)", "Backdrop": "Imagen de fondo", "Backdrops": "Imágenes de fondo", "Banner": "Banner", - "BestFit": "Mejor ajuste", "BirthDateValue": "Nacimiento: {0}", "BirthLocation": "Lugar de nacimiento", "BirthPlaceValue": "Lugar de nacimiento: {0}", @@ -53,7 +48,7 @@ "Box": "Caja", "BoxRear": "Caja (parte trasera)", "Browse": "Explorar", - "BrowsePluginCatalogMessage": "Explora nuestro catálogo de complementos para ver los complementos disponibles.", + "MessageBrowsePluginCatalog": "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", @@ -83,7 +78,6 @@ "ButtonGuide": "Guía", "ButtonHelp": "Ayuda", "ButtonHome": "Inicio", - "ButtonLearnMore": "Aprender más", "ButtonLibraryAccess": "Acceso a biblioteca(s)", "ButtonManualLogin": "Inicio de sesión manual", "ButtonMore": "Más", @@ -127,7 +121,6 @@ "ButtonSubtitles": "Subtítulos", "ButtonUninstall": "Desinstalar", "ButtonUp": "Arriba", - "ButtonViewWebsite": "Ver sitio web", "ButtonWebsite": "Sitio web", "CancelRecording": "Cancelar grabación", "CancelSeries": "Cancelar serie", @@ -159,7 +152,7 @@ "DatePlayed": "Fecha de reproducción", "DeathDateValue": "Falleció: {0}", "Default": "Por defecto", - "DefaultErrorMessage": "Ha ocurrido un error al procesar la solicitud. Por favor, inténtalo de nuevo más tarde.", + "ErrorDefault": "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", @@ -227,7 +220,7 @@ "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.", + "ErrorStartHourGreaterThanEnd": "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", @@ -265,7 +258,6 @@ "H264CrfHelp": "El «Factor de transferencia constante» (CRF) es la configuración de calidad por defecto para el codificador x264. Puedes establecer valores entre 0 y 51, donde los valores más bajos dan como resultado mejor calidad (a expensas de archivos más grandes). Los valores comunes son entre 18 y 28. El valor por defecto para x264 es 23, así que puedes usar este valor como punto de referencia.", "EncoderPresetHelp": "Elige un valor más rápido para mejorar el rendimiento, o uno más lento para mejorar la calidad.", "HDPrograms": "Programas en HD", - "HandledByProxy": "Manejado por un proxy inverso", "HardwareAccelerationWarning": "Habilitar la aceleración por hardware podría causar inestabilidad en algunos entornos. Asegúrate de que tu sistema operativo y controladores de video están actualizados. Si tienes dificultades reproduciendo videos después de habilitar esto, necesitarás volver a cambiar la configuración a Ninguno.", "HeaderAccessSchedule": "Programación de acceso", "HeaderAccessScheduleHelp": "Crea una programación de acceso para limitar el acceso a ciertos horarios.", @@ -288,7 +280,6 @@ "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", @@ -506,8 +497,6 @@ "LabelAlbumArtists": "Artistas del álbum:", "LabelAll": "Todos", "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": "Filtro de direcciones IP remotas:", "LabelAllowedRemoteAddressesMode": "Modo de filtrado de direcciones IP remotas:", "LabelAppName": "Nombre de la aplicación", @@ -544,7 +533,6 @@ "LabelCustomDeviceDisplayName": "Nombre a mostrar:", "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:", "LabelDateAdded": "Fecha de adición:", "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.", @@ -745,7 +733,6 @@ "LabelScheduledTaskLastRan": "Última ejecución {0}, tomando {1}.", "LabelScreensaver": "Protector de pantalla:", "LabelSeasonNumber": "Temporada número:", - "LabelSecureConnectionsMode": "Modo de conexión segura:", "LabelSelectFolderGroups": "Agrupar automáticamente el contenido de las siguientes carpetas a vistas como Películas, Música y TV:", "LabelSelectFolderGroupsHelp": "Las carpetas sin marcar serán mostradas individualmente en su propia vista.", "LabelSelectUsers": "Seleccionar usuarios:", @@ -756,7 +743,6 @@ "LabelServerHost": "Servidor:", "LabelServerHostHelp": "192.168.1.100:8096 o https://miservidor.com", "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 idioma de descarga", @@ -768,7 +754,6 @@ "LabelSortBy": "Ordenar por:", "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:", @@ -816,13 +801,11 @@ "LabelValue": "Valor:", "LabelVersion": "Versión:", "LabelVersionInstalled": "{0} instalado", - "LabelVersionNumber": "Versión {0}", "LabelXDlnaCap": "X-DLNA límite:", "LabelXDlnaCapHelp": "Determina el contenido del elemento X_DLNACAP en el namespace urn:schemas-dlna-org:device-1-0.", "LabelXDlnaDoc": "Documento X-DLNA:", "LabelXDlnaDocHelp": "Determina el contenido del elemento X_DLNADOC en el namespace urn:schemas-dlna-org:device-1-0.", "LabelYear": "Año:", - "LabelYourFirstName": "Tu nombre:", "LabelYoureDone": "¡Has terminado!", "LabelZipCode": "Código postal:", "LabelffmpegPath": "Ruta del FFmpeg:", @@ -833,7 +816,6 @@ "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": "Emisiones en vivo", @@ -885,14 +867,12 @@ "MessageCreateAccountAt": "Crear una cuenta en {0}", "MessageDeleteTaskTrigger": "¿Estás seguro de querer eliminar este disparador de tarea?", "MessageDirectoryPickerBSDInstruction": "Para BSD, quizás necesites configurar el almacenamiento dentro de tu «FreeNAS Jail» de manera que permita a Jellyfin accederlo.", - "MessageDirectoryPickerInstruction": "Las rutas de red pueden ser introducidas manualmente en caso de que el botón de Red no pueda localizar sus dispositivos. Por ejemplo, {0} o {1}.", "MessageDirectoryPickerLinuxInstruction": "Para Linux en Arch Linux, CentOS, Debian, Fedora, openSUSE o Ubuntu, debes conceder al usuario del servicio al menos permisos de lectura a tus ubicaciones de almacenamiento.", "MessageDownloadQueued": "Descarga puesta en la cola.", "MessageEnablingOptionLongerScans": "Habilitar esta opción podría resultar en escaneos de bibliotecas significativamente más largos.", "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, 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.", @@ -941,8 +921,8 @@ "Next": "Siguiente", "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": "Este complemento no tiene configuraciones disponibles.", + "MessageNoNextUpItems": "No se encontró nada. ¡Comienza a ver tus programas!", + "MessageNoPluginConfiguration": "Este complemento no tiene configuraciones disponibles.", "NoSubtitleSearchResultsFound": "No se encontraron resultados.", "NoSubtitles": "Ninguno", "NoSubtitlesHelp": "Los subtítulos no serán cargados por defecto. Pueden ser activados manualmente durante la reproducción.", @@ -1094,7 +1074,7 @@ "PasswordMatchError": "La contraseña y la confirmación de la contraseña deben coincidir.", "PasswordResetComplete": "La contraseña ha sido restablecida.", "PasswordResetConfirmation": "¿Estás seguro de querer restablecer la contraseña?", - "PasswordResetHeader": "Restablecer contraseña", + "HeaderResetPassword": "Restablecer contraseña", "PasswordSaved": "Contraseña guardada.", "People": "Personas", "PerfectMatch": "Coincidencia perfecta", @@ -1116,10 +1096,9 @@ "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.", + "MessagePluginInstalled": "El complemento ha sido instalado con éxito. El servidor Jellyfin necesitará ser reiniciado para que los cambios surtan efecto.", "PreferEmbeddedTitlesOverFileNames": "Preferir títulos incrustados a los nombres de archivo", "PreferEmbeddedTitlesOverFileNamesHelp": "Esto determina el título mostrado por defecto cuando no hay disponibles metadatos en Internet o localmente.", - "PreferredNotRequired": "Preferido, más no es requerido", "Premiere": "Estreno", "Premieres": "Estrenos", "Previous": "Anterior", @@ -1128,7 +1107,6 @@ "ProductionLocations": "Lugares de producción", "Programs": "Programas", "Quality": "Calidad", - "QueueAllFromHere": "Encolar todos desde aquí", "Raised": "Elevado", "Rate": "Calificación", "RecentlyWatched": "Visto recientemente", @@ -1139,7 +1117,7 @@ "Record": "Grabar", "RecordSeries": "Grabar series", "RecordingCancelled": "Grabación cancelada.", - "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.", + "MessageChangeRecordingPath": "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", @@ -1157,10 +1135,8 @@ "RepeatOne": "Repetir uno", "ReplaceAllMetadata": "Reemplazar todos los metadatos", "ReplaceExistingImages": "Reemplazar imágenes existentes", - "RequiredForAllRemoteConnections": "Requerido para todas las conexiones remotas", "ResumeAt": "Reanudar desde {0}", "Rewind": "Rebobinar", - "RunAtStartup": "Ejecutar al iniciar", "Runtime": "Duración", "Saturday": "Sábado", "Save": "Guardar", @@ -1252,7 +1228,6 @@ "TabParentalControl": "Control parental", "TabPassword": "Contraseña", "TabPlayback": "Reproducción", - "TabPlaylist": "Lista de reproducción", "TabPlaylists": "Listas de reproducción", "TabPlugins": "Complementos", "TabProfile": "Perfil", @@ -1290,7 +1265,7 @@ "TvLibraryHelp": "Revisa la {0}guía de nombrado de series de TV{1}.", "Uniform": "Uniforme", "UninstallPluginConfirmation": "¿Estás seguro de querer desinstalar {0}?", - "UninstallPluginHeader": "Desinstalar complemento", + "HeaderUninstallPlugin": "Desinstalar complemento", "Unmute": "Activar sonido", "Unplayed": "No reproducido", "Unrated": "Sin clasificar", @@ -1319,9 +1294,7 @@ "ValueTimeLimitMultiHour": "Límite de tiempo: {0} horas", "ValueTimeLimitSingleHour": "Límite de tiempo: 1 hora", "ValueVideoCodec": "Códec de video: {0}", - "VideoRange": "Rango de video", "ViewAlbum": "Ver álbum", - "ViewArtist": "Ver artista", "ViewPlaybackInfo": "Ver información de reproducción", "Watched": "Visto", "Wednesday": "Miércoles", @@ -1341,7 +1314,6 @@ "Audio": "Audio", "Auto": "Auto", "ButtonInfo": "Info", - "ButtonNo": "No", "ButtonOk": "OK", "ButtonTrailer": "Trailer", "AuthProviderHelp": "Selecciona un proveedor de autenticación que se utilizará para autenticar la contraseña de este usuario.", @@ -1376,11 +1348,8 @@ "DashboardArchitecture": "Arquitectura: {0}", "LabelVideo": "Video", "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": "Puedes dejar este campo en blanco para no establecer ninguna contraseña.", "MediaInfoCodec": "Códec", - "MediaInfoSoftware": "Software", "MediaInfoStreamTypeAudio": "Audio", "MediaInfoStreamTypeData": "Dato", "MediaInfoStreamTypeEmbeddedImage": "Imagen incrustada", @@ -1451,7 +1420,6 @@ "LabelSize": "Tamaño:", "SelectAdminUsername": "Por favor, selecciona un nombre de usuario para la cuenta de administrador.", "LabelDroppedFrames": "Cuadros saltados:", - "CopyStreamURLError": "Hubo un error al copiar la URL.", "ButtonSplit": "Dividir", "WeeklyAt": "{0}s a las {1}", "OnApplicationStartup": "Cuando se inicia la aplicación", @@ -1467,12 +1435,10 @@ "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 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 de fuentes remotas (como TV en vivo)", "NoCreatedLibraries": "Parece que no has creado ninguna biblioteca todavía. {0}¿Quisieras crear una ahora?{1}", @@ -1499,7 +1465,6 @@ "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 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", @@ -1510,7 +1475,6 @@ "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.", @@ -1555,8 +1519,8 @@ "ButtonSyncPlay": "SyncPlay", "ButtonPlayer": "Reproductor", "ButtonCast": "Elenco", - "EnableBlurhashHelp": "Imágenes que aún están siendo cargadas serán mostradas difuminadas", - "EnableBlurhash": "Habilitar imágenes de fondo difuminadas", + "EnableBlurHashHelp": "Imágenes que aún están siendo cargadas serán mostradas difuminadas", + "EnableBlurHash": "Habilitar imágenes de fondo difuminadas", "TabRepositories": "Repositorios", "ShowMore": "Mostrar más", "ShowLess": "Mostrar menos", diff --git a/src/strings/es.json b/src/strings/es.json index 038d34ea1e..d720b515f4 100644 --- a/src/strings/es.json +++ b/src/strings/es.json @@ -1,7 +1,6 @@ { "AccessRestrictedTryAgainLater": "Actualmente el acceso está restringido. Por favor, inténtalo de nuevo más tarde.", "Add": "Añadir", - "AddItemToCollectionHelp": "Puedes añadir elementos a las colecciones buscándolos en tu biblioteca. Una vez hecho esto, abre el menú y selecciona 'Añadir a una colección'.", "AddToCollection": "Añadir a una colección", "AddToPlaylist": "Añadir a una lista de reproducción", "AddedOnValue": "Añadido {0}", @@ -40,7 +39,7 @@ "Box": "Caja", "BoxRear": "Caja (trasera)", "Browse": "Explorar", - "BrowsePluginCatalogMessage": "Explore el catálogo de extensiones para ver las extensiones disponibles.", + "MessageBrowsePluginCatalog": "Explore el catálogo de extensiones para ver las extensiones disponibles.", "ButtonAdd": "Añadir", "ButtonAddMediaLibrary": "Añadir biblioteca de medios", "ButtonAddScheduledTaskTrigger": "Agregar Activador", @@ -69,7 +68,6 @@ "ButtonGuide": "Guía", "ButtonHelp": "Ayuda", "ButtonHome": "Inicio", - "ButtonLearnMore": "Aprende más", "ButtonLibraryAccess": "Acceso a la biblioteca", "ButtonManualLogin": "Acceder manualmente", "ButtonMore": "Más", @@ -115,7 +113,6 @@ "ButtonTrailer": "Tráiler", "ButtonUninstall": "Desinstalar", "ButtonUp": "Arriba", - "ButtonViewWebsite": "Ver sitio web", "ButtonWebsite": "Sitio web", "CancelRecording": "Cancelar grabación", "CancelSeries": "Cancelar series", @@ -138,7 +135,7 @@ "CustomDlnaProfilesHelp": "Crear un perfil personalizado para un nuevo dispositivo o reemplazar un perfil del sistema.", "DeathDateValue": "Murió: {0}", "Default": "Por defecto", - "DefaultErrorMessage": "Ha habido un error procesando la solicitud. Por favor inténtalo más tarde.", + "ErrorDefault": "Ha habido un error procesando la solicitud. Por favor inténtalo más tarde.", "DefaultMetadataLangaugeDescription": "Estos son tus ajustes y se pueden personalizar para cada biblioteca.", "DefaultSubtitlesHelp": "Los subtítulos que se utilizarán dependerán de como estén etiquetadas las pistas de los archivos (si \"por defecto\" o \"forzado\"). Los ajustes de idioma se tienen en cuenta cuando hay varias opciones disponibles.", "Delete": "Borrar", @@ -185,7 +182,7 @@ "ErrorAddingTunerDevice": "Ha habido un error añadiendo el dispositivo sintonizador. Por favor, asegúrate de que es accesible e inténtalo otra vez.", "ErrorAddingXmlTvFile": "Ha sucedido un error accediendo al archivo XML. Por favor, asegúrate que el archivo existe e inténtalo de nuevo.", "ErrorGettingTvLineups": "Ha habido un error descargando la programación de TV. Por favor, asegúrese que la información es correcta e inténtalo de nuevo.", - "ErrorMessageStartHourGreaterThanEnd": "La hora de finalización tiene que ser mayor que la de inicio.", + "ErrorStartHourGreaterThanEnd": "La hora de finalización tiene que ser mayor que la de inicio.", "ErrorPleaseSelectLineup": "Por favor selecciona una alineación e inténtalo otra vez. Si no hay alineaciones disponibles, revisa que tu nombre de usuario, contraseña y código postal son correctos.", "ErrorSavingTvProvider": "Ha habido un error guardando el proveedor de TV. Por favor, asegúrate de que es accesible e inténtalo otra vez.", "EveryNDays": "Cada {0} días", @@ -217,7 +214,6 @@ "H264CrfHelp": "El factor de velocidad constante (CRF) es el ajuste de calidad predeterminado para el codificador x264. Puede establecer los valores entre 0 y 51, donde valores más bajos resultarían en una mejor calidad (a expensas de tamaños de archivo más altos). Los valores sanos están entre 18 y 28. El valor predeterminado para x264 es 23, por lo que puede utilizar esto como punto de partida.", "EncoderPresetHelp": "Elija un valor más rápido para mejorar el rendimiento o un valor más lento para mejorar la calidad.", "HDPrograms": "Programas en HD", - "HandledByProxy": "Gestionado por proxy inverso", "HardwareAccelerationWarning": "Activar la aceleración por hardware puede producir inestabilidades en algunos entornos. Asegúrate de que tu sistema operativo y tus controladores de vídeo están actualizados. Si tienes dificultades para reproducir los vídeos después de activar esto, tendrás que volver a poner este ajuste en None.", "HeaderAccessSchedule": "Horario de acceso", "HeaderAccessScheduleHelp": "Crea un horario de acceso para limitar el acceso a determinadas horas.", @@ -238,7 +234,6 @@ "HeaderApiKeysHelp": "Las aplicaciones externas requieren de una clave API para comunicarse con el servidor Jellyfin. Las claves se facilitan iniciando sesión con una cuenta de Jellyfin, u otorgando manualmente una clave a la aplicación.", "HeaderAudioBooks": "Audiolibros", "HeaderAudioSettings": "Ajustes de audio", - "HeaderAutomaticUpdates": "Actualizaciones automáticas", "HeaderBlockItemsWithNoRating": "Bloquear artículos sin valoraciones o si son desconocidas:", "HeaderBooks": "Libros", "HeaderCancelRecording": "Cancelar grabación", @@ -449,8 +444,6 @@ "LabelAlbumArtists": "Artistas de los álbumes:", "LabelAll": "Todo", "LabelAllowHWTranscoding": "Activar la conversión acelerada por hardware", - "LabelAllowServerAutoRestart": "Permitir al servidor reiniciarse automáticamente para aplicar las actualizaciones", - "LabelAllowServerAutoRestartHelp": "El servidor solo se reiniciará durante periodos de reposo, cuando no haya usuarios activos.", "LabelAllowedRemoteAddresses": "Filtro de dirección IP remota:", "LabelAllowedRemoteAddressesMode": "Modo de filtro de dirección IP remota:", "LabelAppName": "Nombre de la aplicación", @@ -680,7 +673,6 @@ "LabelScheduledTaskLastRan": "Última ejecución {0}, tardando {1}.", "LabelScreensaver": "Salvapantallas:", "LabelSeasonNumber": "Número de temporada:", - "LabelSecureConnectionsMode": "Modo de conexión segura:", "LabelSelectFolderGroups": "Agrupar contenido automáticamente desde las siguientes carpetas en vistas como Películas, Música y Series:", "LabelSelectFolderGroupsHelp": "Las carpetas sin seleccionar se mostrarán ellas mismas en su propia vista.", "LabelSelectUsers": "Seleccionar usuarios:", @@ -741,11 +733,9 @@ "LabelVaapiDeviceHelp": "Este es el nodo de procesamiento que se utiliza para la aceleración de hardware.", "LabelValue": "Valor:", "LabelVersionInstalled": "{0} instalado", - "LabelVersionNumber": "Versión {0}", "LabelXDlnaCapHelp": "Determina el contenido del elemento X_DLNACAP en el espacio de nombre urn:schemas-dlna-org:device-1-0.", "LabelXDlnaDocHelp": "Determina el contenido del elemento X_DLNADOC en el espacio de nombreurn:schemas-dlna-org:device-1-0.", "LabelYear": "Año:", - "LabelYourFirstName": "Tu nombre:", "LabelYoureDone": "¡Ya está!", "LabelZipCode": "Código postal:", "LabelffmpegPath": "Ruta de ffmpeg:", @@ -804,14 +794,12 @@ "MessageCreateAccountAt": "Crear una cuenta en {0}", "MessageDeleteTaskTrigger": "¿Está seguro que desea eliminar esta tarea de activación?", "MessageDirectoryPickerBSDInstruction": "Para BSD, necesitarás configurar el almacenamiento del \"FreeNAS Jail\" para poder permitir a Jellyfin acceder a él.", - "MessageDirectoryPickerInstruction": "Rutas de red pueden ser introducidas manualmente en el caso de que el botón de la red no pueda localizar sus dispositivos. Por ejemplo, {0} o {1}.", "MessageDirectoryPickerLinuxInstruction": "Para Linux sobre Arch Linux, CentOS, Debian, Fedora, openSUSE o Ubuntu, debe conceder al usuario del servicio permiso de lectura en las rutas de almacenamiento.", "MessageDownloadQueued": "Descarga en cola.", "MessageEnablingOptionLongerScans": "Activar esta opción implicará escaneos de la biblioteca más largos.", "MessageFileReadError": "Ha habido un error leyendo el fichero. Por favor, inténtalo más tarde.", "MessageForgotPasswordFileCreated": "Se ha creado el siguiente archivo en tu servidor y contiene instrucciones de cómo proceder:", "MessageForgotPasswordInNetworkRequired": "Por favor, inténtalo de nuevo desde tu red de casa para iniciar el proceso de restablecimiento de la contraseña.", - "MessageInstallPluginFromApp": "Este complemento debe instalarse desde la aplicación en la que lo vayas a usar.", "MessageInvalidForgotPasswordPin": "Ha introducido un código PIN inválido o expirado. Por favor, inténtelo de nuevo.", "MessageInvalidUser": "Usuario o contraseña inválidos. Por favor, inténtalo otra vez.", "MessageItemSaved": "Elemento grabado.", @@ -858,8 +846,8 @@ "Next": "Siguiente", "NextUp": "Seguidamente", "NoNewDevicesFound": "No se han encontrado nuevos dispositivos. Para añadir un sintonizador cierra este diálogo e introduce la información del dispositivo manualmente.", - "NoNextUpItemsMessage": "Nada encontrado. ¡Comienza a ver tus programas!", - "NoPluginConfigurationMessage": "Este complemento no tiene opciones que configurar.", + "MessageNoNextUpItems": "Nada encontrado. ¡Comienza a ver tus programas!", + "MessageNoPluginConfiguration": "Este complemento no tiene opciones que configurar.", "NoSubtitleSearchResultsFound": "No se han encontrado resultados.", "NoSubtitles": "Sin subtítulos", "NoSubtitlesHelp": "Los subtítulos no se cargarán de forma predeterminada. Tienen que ser activados manualmente durante la reproducción.", @@ -1004,7 +992,7 @@ "PasswordMatchError": "La contraseña y la confirmación de la contraseña deben de ser iguales.", "PasswordResetComplete": "La contraseña se ha restablecido.", "PasswordResetConfirmation": "¿Esta seguro de que desea restablecer la contraseña?", - "PasswordResetHeader": "Restablecer contraseña", + "HeaderResetPassword": "Restablecer contraseña", "PasswordSaved": "Contraseña guardada.", "People": "Gente", "PinCodeResetComplete": "El código PIN se ha restablecido.", @@ -1021,10 +1009,9 @@ "PleaseEnterNameOrId": "Introduzca un nombre o un identificador externo.", "PleaseRestartServerName": "Por favor, reinicie el Servidor de Jellyfin - {0}.", "PleaseSelectTwoItems": "Seleccione al menos dos elementos.", - "PluginInstalledMessage": "El complemento se ha instalado correctamente. El servidor Jellyfin deberá reiniciarse para que los cambios surjan efecto.", + "MessagePluginInstalled": "El complemento se ha instalado correctamente. El servidor Jellyfin deberá reiniciarse para que los cambios surjan efecto.", "PreferEmbeddedTitlesOverFileNames": "Preferir títulos incrustados sobre los nombres de archivo", "PreferEmbeddedTitlesOverFileNamesHelp": "Esto determina el título que se utilizará cuando un elemento no tenga etiquetas ni estas se hayan podido descargar de Internet.", - "PreferredNotRequired": "Preferido, pero no requerido", "Premieres": "Estrenos", "Previous": "Anterior", "Primary": "Principal", @@ -1032,7 +1019,6 @@ "ProductionLocations": "Localizaciones de producción", "Programs": "Programas", "Quality": "Calidad", - "QueueAllFromHere": "En cola todos desde aquí", "Rate": "Califica", "RecentlyWatched": "Vistos recientemente", "RecommendationBecauseYouLike": "Ya que te ha gustado {0}, quizá te pueda interesar", @@ -1042,7 +1028,7 @@ "Record": "Grabar", "RecordSeries": "Grabar serie", "RecordingCancelled": "Grabación cancelada.", - "RecordingPathChangeMessage": "Cambiar la carpeta de grabación no migrará las grabaciones existentes de la ubicación antigua a la nueva. Tendrá que moverlos manualmente si lo desea.", + "MessageChangeRecordingPath": "Cambiar la carpeta de grabación no migrará las grabaciones existentes de la ubicación antigua a la nueva. Tendrá que moverlos manualmente si lo desea.", "RecordingScheduled": "Grabación programada.", "Recordings": "Grabaciones", "Refresh": "Refrescar", @@ -1059,7 +1045,6 @@ "RepeatOne": "Repetir uno", "ReplaceAllMetadata": "Reemplazar todas las etiquetas", "ReplaceExistingImages": "Reemplazar imágenes existentes", - "RequiredForAllRemoteConnections": "Requerido para todas las conexiones remotas", "ResumeAt": "Continuar desde {0}", "Rewind": "Rebobinar", "Runtime": "Tiempo de ejecución", @@ -1131,7 +1116,6 @@ "TabGenres": "Géneros", "TabGuide": "Guía", "TabLatest": "Novedades", - "TabLibrary": "Biblioteca", "TabLiveTV": "Televisión en directo", "TabMetadata": "Etiquetas", "TabMovies": "Películas", @@ -1145,7 +1129,6 @@ "TabParentalControl": "Control parental", "TabPassword": "Contraseña", "TabPlayback": "Reproducción", - "TabPlaylist": "Lista de reproducción", "TabPlaylists": "Listas de reproducción", "TabProfile": "Perfil", "TabProfiles": "Perfiles", @@ -1176,7 +1159,7 @@ "Tuesday": "Martes", "TvLibraryHelp": "Revisar la {0}guía de nombres de los programas de TV{1}.", "UninstallPluginConfirmation": "¿Esta seguro que desea desinstalar {0}?", - "UninstallPluginHeader": "Desinstalar complemento", + "HeaderUninstallPlugin": "Desinstalar complemento", "Unmute": "Activar audio", "Unrated": "Sin clasificar", "Up": "Arriba", @@ -1231,7 +1214,6 @@ "Ascending": "Ascendente", "Audio": "Audio", "Auto": "Automático", - "AutoBasedOnLanguageSetting": "Automático (basado en la configuración de idioma)", "Banner": "Pancarta", "BurnSubtitlesHelp": "Determina si el servidor debe grabar los subtítulos en el vídeo al transcodificar. Desactivar esta opción puede mejorar el rendimiento. Seleccione 'Auto' para grabar formatos basados en imágenes (VOBSUB, PGS, SUB/IDX) y ciertos subtítulos ASS o SSA.", "ButtonInfo": "Información", @@ -1289,7 +1271,6 @@ "Horizontal": "Horizontal", "LabelAudio": "Audio", "LabelBurnSubtitles": "Incrustar subtítulos:", - "LabelDashboardTheme": "Tema para la interfaz del servidor:", "LabelDateTimeLocale": "Fecha y hora local:", "LabelDefaultScreen": "Pantalla por defecto:", "LabelDisplayLanguage": "Mostrar idioma:", @@ -1299,12 +1280,10 @@ "LabelParentNumber": "Número del elemento padre:", "LabelPersonRoleHelp": "Ejemplo: Conductor de camión de helados", "LabelServerHost": "Host:", - "LabelSkin": "Tema:", "LabelSkipBackLength": "Tiempo de retroceso:", "LabelSkipForwardLength": "Tiempo de avance:", "LabelSortBy": "Ordenar por:", "LabelSortOrder": "Orden:", - "LabelSoundEffects": "Efectos de sonido:", "LabelSubtitles": "Subtítulos", "LabelTVHomeScreen": "Modo televisión en pantalla de inicio:", "LabelVersion": "Versión:", @@ -1313,7 +1292,6 @@ "LabelXDlnaDoc": "X-DLNA doc:", "LearnHowYouCanContribute": "Descubre cómo puedes contribuir.", "LeaveBlankToNotSetAPassword": "Puedes dejarlo en blanco para no configurar una contraseña.", - "LinksValue": "Enlaces: {0}", "List": "Lista", "Logo": "Logo", "MediaIsBeingConverted": "El medio está siendo convertido en un formato compatible con el dispositivo que lo está reproduciendo.", @@ -1328,14 +1306,11 @@ "Normal": "Normal", "Off": "Apagado", "Option3D": "3D", - "OptionActor": "Actor", "OptionAuto": "Automático", "OptionAutomatic": "Automático", "OptionBanner": "Cabecera", - "OptionBeta": "Beta", "OptionBlockTrailers": "Tráilers", "OptionBluray": "Blu-ray", - "OptionDirector": "Director", "OptionDownloadLogoImage": "Logo", "OptionDvd": "DVD", "OptionHasTrailer": "Tráiler", @@ -1361,9 +1336,6 @@ "DashboardOperatingSystem": "Sistema operativo: {0}", "DashboardArchitecture": "Arquitectura: {0}", "LabelWeb": "Web:", - "LaunchWebAppOnStartup": "Iniciar la aplicación web al iniciar el servidor", - "LaunchWebAppOnStartupHelp": "Abrir el cliente web en el navegador por defecto al iniciar el servidor. Esto no ocurrirá al utilizar la función de reinicio del servidor.", - "MediaInfoSoftware": "Software", "MediaInfoStreamTypeAudio": "Audio", "MediaInfoStreamTypeData": "Datos", "MediaInfoStreamTypeEmbeddedImage": "Imagen incrustada", @@ -1395,7 +1367,6 @@ "Premiere": "Estreno", "Raised": "Elevación", "RefreshDialogHelp": "Las etiquetas se actualizan basándose en las configuraciones y los servicios de internet activados desde el panel de control de Jellyfin.", - "RunAtStartup": "Ejecutar al iniciar", "Series": "Series", "SeriesDisplayOrderHelp": "Ordena los episodios por fecha de emisión, orden de DVD o número absoluto.", "ShowTitle": "Mostrar título", @@ -1422,7 +1393,6 @@ "ValueMinutes": "{0} min", "ValueSeriesCount": "{0} series", "Vertical": "Vertical", - "VideoRange": "Rango de vídeo", "ThemeVideos": "Vídeos de tema", "TabNetworking": "Redes", "CopyStreamURL": "Copiar URL de Stream", @@ -1457,7 +1427,6 @@ "MessageConfirmAppExit": "¿Quieres salir?", "EnableFasterAnimationsHelp": "Las animaciones y transiciones durarán menos tiempo", "EnableFasterAnimations": "Animaciones más rápidas", - "CopyStreamURLError": "Ha habido un error copiando la dirección.", "AllowFfmpegThrottlingHelp": "Las conversiones se pausarán cuando se adelanten lo suficiente desde la posición en la que se encuentre el reproductor. Puede reducir la carga en el servidor y es útil cuando se reproduce de forma continua, sin saltar entre intervalos de tiempo, pero puede que tengas que desactivarlo si experimentas problemas en la reproducción o cambias de posición frecuentemente mientras reproduces contenido.", "PlaybackErrorNoCompatibleStream": "Este contenido no es compatible con este dispositivo y no se puede reproducir: No se puede obtener del servidor en un formato compatible.", "OptionForceRemoteSourceTranscoding": "Forzar la conversión para fuentes externas (como la televisión en directo)", @@ -1486,9 +1455,7 @@ "OnApplicationStartup": "Al iniciarse el servidor", "Track": "Pista", "Season": "Temporada", - "ReleaseGroup": "Grupo de salida", "Person": "Persona", - "OtherArtist": "Otro artista", "Movie": "Película", "Episode": "Episodio", "BoxSet": "Box Set", @@ -1502,14 +1469,12 @@ "UnsupportedPlayback": "No es posible desencriptar contenido protegido mediante DRM; sin embargo se intentará su reproducción. Algunos archivos pueden aparecer completamente negros debido a encriptación u otras características no soportadas, como títulos interactivos.", "YadifBob": "YADIF Bob", "Yadif": "YADIF", - "MessageUnauthorizedUser": "No tiene autorización para acceder al servidor en este momento. Póngase en contacto con el administrador del servidor para obtener más información.", "ButtonTogglePlaylist": "Lista de reproducción", "ButtonToggleContextMenu": "Más", "Filter": "Filtro", "New": "Nuevo", "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", @@ -1521,8 +1486,8 @@ "LabelEnableHttps": "Activar HTTPS", "TabDVR": "DVR", "SaveChanges": "Guardar cambios", - "EnableBlurhash": "Mostrar una representación de las imágenes mientras cargan", - "EnableBlurhashHelp": "Aparecerá una representación de los colores de las imágenes antes de que terminen de cargar", + "EnableBlurHash": "Mostrar una representación de las imágenes mientras cargan", + "EnableBlurHashHelp": "Aparecerá una representación de los colores de las imágenes antes de que terminen de cargar", "HeaderDVR": "DVR", "SyncPlayAccessHelp": "Selecciona el nivel de acceso de este usuario para utilizar SyncPlay. SyncPlay te permite sincronizar la reproducción entre varios dispositivos.", "MessageSyncPlayErrorMedia": "¡No se pudo activar SyncPlay! Error de medio.", diff --git a/src/strings/es_419.json b/src/strings/es_419.json index d730a75b9e..54dd68e9ed 100644 --- a/src/strings/es_419.json +++ b/src/strings/es_419.json @@ -34,7 +34,6 @@ "AddToPlaylist": "Agregar a lista de reproducción", "AddToPlayQueue": "Agregar a la cola de reproducción", "AddToCollection": "Agregar a 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.", "Add": "Agregar", "Actor": "Actor", "AccessRestrictedTryAgainLater": "El acceso está restringido actualmente. Por favor, inténtalo más tarde.", @@ -42,13 +41,11 @@ "YadifBob": "YADIF Bob", "Trailers": "Trailers", "TabTrailers": "Trailers", - "ReleaseGroup": "Grupo que lo estrenó", "OptionThumbCard": "Miniatura de imagen", "OptionResElement": "elemento reanudable", "OptionCaptionInfoExSamsung": "CaptionInfoEx (Samsung)", "OptionBluray": "Blu-ray", "OptionBlockTrailers": "Trailers", - "LabelNightly": "Construcciones nocturnas", "HeaderVideos": "Videos", "Director": "Director", "Depressed": "No presionado", @@ -82,9 +79,7 @@ "Wednesday": "Miércoles", "Watched": "Visto", "ViewPlaybackInfo": "Ver información de reproducción", - "ViewArtist": "Ver artista", "ViewAlbum": "Ver álbum", - "VideoRange": "Rango de video", "Vertical": "Vertical", "ValueVideoCodec": "Códec de video: {0}", "ValueTimeLimitSingleHour": "Límite de tiempo: 1 hora", @@ -115,7 +110,7 @@ "Unrated": "Sin clasificar", "Unplayed": "No reproducido", "Unmute": "Activar sonido", - "UninstallPluginHeader": "Desinstalar complemento", + "HeaderUninstallPlugin": "Desinstalar complemento", "UninstallPluginConfirmation": "¿Estás seguro de querer desinstalar {0}?", "Uniform": "Uniforme", "TvLibraryHelp": "Revisa la {0}guía de nombrado de series de TV{1}.", @@ -153,7 +148,6 @@ "TabProfile": "Perfil", "TabPlugins": "Complementos", "TabPlaylists": "Listas de reproducción", - "TabPlaylist": "Lista de reproducción", "TabPlayback": "Reproducción", "TabPassword": "Contraseña", "TabParentalControl": "Control parental", @@ -307,8 +301,8 @@ "NoSubtitlesHelp": "Los subtítulos no serán cargados por defecto. Pueden ser activados manualmente durante la reproducción.", "NoSubtitles": "Ninguno", "NoSubtitleSearchResultsFound": "No se encontraron resultados.", - "NoPluginConfigurationMessage": "Este complemento no tiene configuraciones disponibles.", - "NoNextUpItemsMessage": "No se encontró nada. ¡Comienza a ver tus programas!", + "MessageNoPluginConfiguration": "Este complemento no tiene configuraciones disponibles.", + "MessageNoNextUpItems": "No se encontró nada. ¡Comienza a ver tus programas!", "NoNewDevicesFound": "No se encontraron nuevos dispositivos. Para agregar un sintonizador nuevo, cierra este diálogo e introduce la información del dispositivo manualmente.", "NoCreatedLibraries": "Parece que no has creado ninguna biblioteca todavía. {0}¿Quisieras crear una ahora?{1}", "No": "No", @@ -352,7 +346,7 @@ "MessageSyncPlayGroupDoesNotExist": "Fallo al unirse al grupo porque éste no existe.", "MessageSyncPlayPlaybackPermissionRequired": "Permiso de reproducción requerido.", "MessageSyncPlayNoGroupsAvailable": "No hay grupos disponibles. Empieza a reproducir algo primero.", - "MessageSyncPlayGroupWait": "{0} está cargando...", + "MessageSyncPlayGroupWait": "{0} está cargando…", "MessageSyncPlayUserLeft": "{0} abandonó el grupo.", "MessageSyncPlayUserJoined": "{0} se ha unido al grupo.", "MessageSyncPlayDisabled": "SyncPlay deshabilitado.", @@ -379,10 +373,8 @@ "MessageLeaveEmptyToInherit": "Dejar vacío para heredar la configuración de un elemento superior o del valor predeterminado global.", "MessageItemsAdded": "Elementos agregados.", "MessageItemSaved": "Elemento guardado.", - "MessageUnauthorizedUser": "No estás autorizado para acceder al servidor en este momento. Por favor, contacta al administrador del servidor para más información.", "MessageInvalidUser": "Nombre de usuario o contraseña inválidos. Por favor, intenta de nuevo.", "MessageInvalidForgotPasswordPin": "Se ha introducido un código PIN inválido o expirado. Por favor, inténtalo de nuevo.", - "MessageInstallPluginFromApp": "Este complemento debe ser instalado desde dentro de la aplicación en la que deseas usarlo.", "MessageImageTypeNotSelected": "Por favor, selecciona un tipo de imagen del menú desplegable.", "MessageImageFileTypeAllowed": "Solo son soportados archivos JPEG y PNG.", "MessageForgotPasswordInNetworkRequired": "Por favor, intenta de nuevo dentro de tu red local para iniciar el proceso de restablecimiento de contraseña.", @@ -393,13 +385,10 @@ "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.", "MessageDirectoryPickerBSDInstruction": "Para BSD, quizás necesites configurar el almacenamiento dentro de tu «FreeNAS Jail» de manera que permita a Jellyfin accederlo.", "List": "Lista", - "LinksValue": "Enlaces: {0}", "Like": "Me gusta", "LibraryAccessHelp": "Selecciona las bibliotecas que deseas compartir con este usuario. Los administradores podrán editar todas las carpetas utilizando el gestor de metadatos.", "LeaveBlankToNotSetAPassword": "Puedes dejar este campo en blanco para no establecer ninguna contraseña.", "LearnHowYouCanContribute": "Aprende cómo puedes contribuir.", - "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.", - "LaunchWebAppOnStartup": "Iniciar la interfaz web al iniciar el servidor", "LatestFromLibrary": "Últimas - {0}", "Large": "Grande", "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.", @@ -407,7 +396,6 @@ "LabelffmpegPath": "Ruta del FFmpeg:", "LabelZipCode": "Código postal:", "LabelYoureDone": "¡Has terminado!", - "LabelYourFirstName": "Tu nombre:", "LabelYear": "Año:", "LabelXDlnaDocHelp": "Determina el contenido del elemento X_DLNADOC en el namespace urn:schemas-dlna-org:device-1-0.", "LabelXDlnaDoc": "Documento X-DLNA:", @@ -487,7 +475,6 @@ "LabelSportsCategories": "Categorías de deportes:", "LabelSpecialSeasonsDisplayName": "Nombre de la temporada de especiales:", "LabelSource": "Fuente:", - "LabelSoundEffects": "Efectos de sonido:", "LabelSortTitle": "Título para ordenar:", "LabelSortOrder": "Clasificar ordenado:", "LabelSortBy": "Ordenar por:", @@ -561,7 +548,6 @@ "Save": "Guardar", "Saturday": "Sábado", "Runtime": "Duración", - "RunAtStartup": "Ejecutar al iniciar", "Rewind": "Rebobinar", "ResumeAt": "Reanudar desde {0}", "ReplaceExistingImages": "Reemplazar imágenes existentes", @@ -581,7 +567,7 @@ "Refresh": "Actualizar", "Recordings": "Grabaciones", "RecordingScheduled": "Grabación programada.", - "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.", + "MessageChangeRecordingPath": "Cambiar la carpeta de grabaciones no moverá las grabaciones existentes de la antigua ubicación a la nueva. Necesitan moverse manualmente si se desea.", "RecordingCancelled": "Grabación cancelada.", "RecordSeries": "Grabar series", "Record": "Grabar", @@ -592,7 +578,6 @@ "RecentlyWatched": "Visto recientemente", "Rate": "Calificación", "Raised": "Elevado", - "QueueAllFromHere": "Encolar todos desde aquí", "Quality": "Calidad", "Programs": "Programas", "ProductionLocations": "Lugares de producción", @@ -605,7 +590,7 @@ "PreferEmbeddedEpisodeInfosOverFileNamesHelp": "Esto utiliza la información del episodio desde los metadatos incrustados si están disponibles.", "PreferEmbeddedTitlesOverFileNamesHelp": "Esto determina el título mostrado por defecto cuando no hay disponibles metadatos en Internet o localmente.", "PreferEmbeddedTitlesOverFileNames": "Preferir títulos incrustados a los nombres de archivo", - "PluginInstalledMessage": "El complemento ha sido instalado con éxito. El servidor Jellyfin necesitará ser reiniciado para que los cambios surtan efecto.", + "MessagePluginInstalled": "El complemento ha sido instalado con éxito. El servidor Jellyfin necesitará ser reiniciado para que los cambios surtan efecto.", "PleaseSelectTwoItems": "Por favor, selecciona al menos dos elementos.", "PleaseRestartServerName": "Por favor, reinicia el servidor Jellyfin - {0}.", "PleaseEnterNameOrId": "Por favor, introduce un nombre o ID externo.", @@ -629,7 +614,7 @@ "People": "Personas", "PasswordSaved": "Contraseña guardada.", "PasswordResetProviderHelp": "Elige un proveedor de restablecimiento de contraseña para usar cuando este usuario solicite un restablecimiento de contraseña", - "PasswordResetHeader": "Restablecer contraseña", + "HeaderResetPassword": "Restablecer contraseña", "PasswordResetConfirmation": "¿Estás seguro de querer restablecer la contraseña?", "PasswordResetComplete": "La contraseña ha sido restablecida.", "PasswordMatchError": "La contraseña y la confirmación de la contraseña deben coincidir.", @@ -638,7 +623,6 @@ "PackageInstallCompleted": "Instalación completada de {0} (versión {1}).", "PackageInstallCancelled": "Instalación cancelada de {0} (versión {1}).", "Overview": "Resumen", - "OtherArtist": "Otro artista", "OriginalAirDateValue": "Fecha de emisión original: {0}", "OptionWeekly": "Semanal", "OptionWeekends": "Fines de semana", @@ -675,7 +659,6 @@ "OptionProfileAudio": "Audio", "OptionPremiereDate": "Fecha de estreno", "OptionPosterCard": "Ficha de póster", - "LabelSkin": "Apariencia:", "LabelSize": "Tamaño:", "LabelSimultaneousConnectionLimit": "Límite de transmisiones simultáneas:", "LabelServerName": "Nombre del servidor:", @@ -689,8 +672,6 @@ "LabelSelectFolderGroupsHelp": "Las carpetas sin marcar serán mostradas individualmente en su propia vista.", "LabelSelectFolderGroups": "Agrupar automáticamente el contenido de las siguientes carpetas a vistas como Películas, Música y TV:", "LabelSeasonNumber": "Temporada número:", - "EnableFastImageFadeInHelp": "Habilita una animación más rápida de desvanecimiento para las imágenes cargadas.", - "EnableFastImageFadeIn": "Desvanecimiento rápido de animaciones", "LabelScreensaver": "Protector de pantalla:", "LabelScheduledTaskLastRan": "Última ejecución {0}, tomando {1}.", "LabelSaveLocalMetadataHelp": "Guardar ilustraciones en las carpetas de los medios los colocará en un lugar donde se pueden editar fácilmente.", @@ -872,7 +853,6 @@ "LabelDateAddedBehaviorHelp": "Si un valor de metadatos está presente, siempre se utilizará antes de cualquiera de estas opciones.", "LabelDateAddedBehavior": "Comportamiento de la fecha de adición para nuevo contenido:", "LabelDateAdded": "Fecha de adición:", - "LabelDashboardTheme": "Tema del panel de control del servidor:", "LabelCustomRating": "Calificación personalizada:", "LabelCustomDeviceDisplayNameHelp": "Proporcione un nombre personalizado para mostrar o déjalo vacío para usar el nombre reportado por el dispositivo.", "LabelCustomDeviceDisplayName": "Nombre a mostrar:", @@ -920,7 +900,6 @@ "MediaInfoStreamTypeEmbeddedImage": "Imagen incrustada", "MediaInfoStreamTypeData": "Dato", "MediaInfoStreamTypeAudio": "Audio", - "MediaInfoSoftware": "Software", "MediaInfoTimestamp": "Fecha y hora", "MediaInfoSize": "Tamaño", "MediaInfoSampleRate": "Tasa de muestreo", @@ -983,8 +962,6 @@ "LabelAppName": "Nombre de la aplicación", "LabelAllowedRemoteAddressesMode": "Modo de filtrado de direcciones IP remotas:", "LabelAllowedRemoteAddresses": "Filtro de direcciones IP remotas:", - "LabelAllowServerAutoRestartHelp": "El servidor solo se reiniciará durante los períodos de inactividad cuando no haya usuarios activos.", - "LabelAllowServerAutoRestart": "Permite al servidor reiniciarse automáticamente para aplicar actualizaciones", "LabelAllowHWTranscoding": "Permitir transcodificación por hardware", "LabelAll": "Todos", "LabelAlbumArtists": "Artistas del álbum:", @@ -1244,7 +1221,6 @@ "HeaderBranding": "Establecer marca", "HeaderBooks": "Libros", "HeaderBlockItemsWithNoRating": "Bloquear elementos sin clasificación o con información de clasificación desconocida:", - "HeaderAutomaticUpdates": "Actualizaciones automáticas", "HeaderAudioSettings": "Configuración de audio", "HeaderAudioBooks": "Audiolibros", "HeaderAppearsOn": "Aparece en", @@ -1306,7 +1282,7 @@ "EveryNDays": "Cada {0} días", "ErrorSavingTvProvider": "Hubo un error al guardar el proveedor de TV. Por favor, asegúrate de que sea accesible e inténtalo de nuevo.", "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.", - "ErrorMessageStartHourGreaterThanEnd": "La hora de finalización debe ser mayor que la hora de inicio.", + "ErrorStartHourGreaterThanEnd": "La hora de finalización debe ser mayor que la hora de inicio.", "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.", "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.", "ErrorAddingXmlTvFile": "Hubo un error accediendo al archivo XMLTV. Por favor, asegúrate de que el archivo existe e inténtalo de nuevo.", @@ -1377,14 +1353,13 @@ "DeinterlaceMethodHelp": "Seleccione el método de desentrelazado que se usará al transcodificar contenido entrelazado.", "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.", "DefaultMetadataLangaugeDescription": "Estos son sus valores por defecto y pueden ser personalizados en cada biblioteca.", - "DefaultErrorMessage": "Ha ocurrido un error al procesar la solicitud. Por favor, inténtalo de nuevo más tarde.", + "ErrorDefault": "Ha ocurrido un error al procesar la solicitud. Por favor, inténtalo de nuevo más tarde.", "Default": "Por defecto", "DeathDateValue": "Falleció: {0}", "DatePlayed": "Fecha de reproducción", "DateAdded": "Fecha de adición", "CustomDlnaProfilesHelp": "Crear un perfil personalizado para un nuevo dispositivo o reemplazar un perfil del sistema.", "CriticRating": "Calificación de los críticos", - "CopyStreamURLError": "Hubo un error al copiar la URL.", "CopyStreamURLSuccess": "URL copiada con éxito.", "CopyStreamURL": "Copiar la URL de la transmisión", "Continuing": "Continuando", @@ -1418,7 +1393,6 @@ "CancelSeries": "Cancelar serie", "CancelRecording": "Cancelar grabación", "ButtonWebsite": "Sitio web", - "ButtonViewWebsite": "Ver sitio web", "ButtonUp": "Arriba", "ButtonUninstall": "Desinstalar", "ButtonTrailer": "Trailer", @@ -1467,7 +1441,6 @@ "ButtonMore": "Más", "ButtonManualLogin": "Inicio de sesión manual", "ButtonLibraryAccess": "Acceso a biblioteca(s)", - "ButtonLearnMore": "Aprender más", "ButtonInfo": "Info", "ButtonHome": "Inicio", "ButtonHelp": "Ayuda", @@ -1499,7 +1472,7 @@ "ButtonAddImage": "Agregar imagen", "ButtonAdd": "Agregar", "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.", - "BrowsePluginCatalogMessage": "Explora nuestro catálogo de complementos para ver los complementos disponibles.", + "MessageBrowsePluginCatalog": "Explora nuestro catálogo de complementos para ver los complementos disponibles.", "Browse": "Explorar", "BoxRear": "Caja (parte trasera)", "Box": "Caja", @@ -1511,7 +1484,6 @@ "Banner": "Banner", "Backdrops": "Imágenes de fondo", "Backdrop": "Imagen de fondo", - "AutoBasedOnLanguageSetting": "Auto (basado en la configuración del idioma)", "Auto": "Auto", "AuthProviderHelp": "Selecciona un proveedor de autenticación que se utilizará para autenticar la contraseña de este usuario.", "Audio": "Audio", @@ -1544,10 +1516,10 @@ "AllChannels": "Todos los canales", "All": "Todo", "Alerts": "Alertas", - "EnableBlurhash": "Habilitar marcadores de posición borrosos para imágenes", + "EnableBlurHash": "Habilitar marcadores de posición borrosos para imágenes", "ShowMore": "Mostrar más", "ShowLess": "Mostrar menos", - "EnableBlurhashHelp": "Las imágenes que aún se están cargando se mostrarán con un marcador de posición borroso", + "EnableBlurHashHelp": "Las imágenes que aún se están cargando se mostrarán con un marcador de posición borroso", "ButtonSyncPlay": "SyncPlay", "MessageNoGenresAvailable": "Permitir a algunos proveedores de metadatos obtener géneros desde Internet.", "MessageAddRepository": "Si desea agregar un repositorio, haga clic en el botón al lado del encabezado y complete la información solicitada.", diff --git a/src/strings/fa.json b/src/strings/fa.json index f2719b5be4..7d27860aaa 100644 --- a/src/strings/fa.json +++ b/src/strings/fa.json @@ -61,11 +61,9 @@ "LabelProfileCodecsHelp": "جدا شده توسط کاما این می تواند برای همه کدک ها اعمال شود.", "LabelSaveLocalMetadata": "پوستر در پوشه مدیا ذخیره گردد", "LabelSaveLocalMetadataHelp": "ذخیره ی پوستر ها داخل پوشه های رسانه، امکان ویرایش آسان آنها را در یک مکان میسر میکند.", - "LabelSecureConnectionsMode": "حالت اتصال ایمن:", "LabelSelectUsers": "انتخاب کاربران:", "LabelTimeLimitHours": "محدودیت زمان (ساعت):", "LabelTypeMetadataDownloaders": "{0} دانلود کننده فراداده:", - "LabelYourFirstName": "اسم کوچک شما:", "LabelYoureDone": "به پایان رسید!", "LibraryAccessHelp": "انتخاب پوشه های رسانه برای اشتراک گذاری با این کاربر. مدیر سیستم میتواند با استفاده از مدیریت متاداده همه ی پوشه ها را ویرایش کند.", "ManageLibrary": "مدیریت کتابخانه", @@ -74,7 +72,7 @@ "MessagePleaseEnsureInternetMetadata": "لطفا مطمئن شوید دانلود متاداده از اینترنت فعال است.", "MoreUsersCanBeAddedLater": "بعدا میتوانید کاربران بیشتری را در داشبورد اضافه کنید.", "NextUp": "بعدی چیه", - "NoNextUpItemsMessage": "چیزی یافت نشد. دیدن سریال ها یتان را شروع کنید!", + "MessageNoNextUpItems": "چیزی یافت نشد. دیدن سریال ها یتان را شروع کنید!", "OptionAscending": "صعودی", "OptionDescending": "نزولی", "OptionDislikes": "پسندیده نشده ها", @@ -86,7 +84,6 @@ "OptionPlayed": "پخش شده", "OptionProfileVideo": "ویدیو", "OptionUnplayed": "پخش نشده", - "PreferredNotRequired": "ترجیح داده شده، اما الزامی نیست", "ShowAdvancedSettings": "نمایش تنظیمات پیشرفته", "TabAccess": "دسترسی", "TabAdvanced": "پیشرفته", @@ -101,7 +98,6 @@ "TabNetworks": "شبکه ها", "TabNotifications": "اعلان ها", "TabPassword": "رمز عبور", - "TabPlaylist": "لیست پخش", "TabProfile": "پروفایل", "TabProfiles": "پروفایل ها", "TabShows": "سریال ها", @@ -170,7 +166,6 @@ "ButtonMore": "بیشتر", "ButtonManualLogin": "ورود دستی", "ButtonLibraryAccess": "دسترسی به کتابخانه", - "ButtonLearnMore": "بیشتر بدانید", "ButtonInfo": "اطلاعات", "ButtonHome": "خانه", "ButtonHelp": "کمک", @@ -204,7 +199,6 @@ "Banner": "سرصفحه", "Backdrops": "پس زمینه‌ها", "Backdrop": "پس زمینه", - "AutoBasedOnLanguageSetting": "خودکار (بر اساس تنظیمات زبانی)", "Auto": "خودکار", "Audio": "صدا", "AttributeNew": "جدید", @@ -227,7 +221,7 @@ "AddToCollection": "افزودن به مجموعه", "ExitFullscreen": "خروج از تمام صفحه", "EveryNDays": "هر {0} روز", - "ErrorMessageStartHourGreaterThanEnd": "زمان پایان باید پس از زمان شروع باشد.", + "ErrorStartHourGreaterThanEnd": "زمان پایان باید پس از زمان شروع باشد.", "Episodes": "قسمت‌ها", "EndsAtValue": "تمام شده در {0}", "Ended": "تمام شده", @@ -274,13 +268,12 @@ "DeleteDeviceConfirmation": "آیا از حذف این دستگاه اطمینان دارید؟ هنگامی که یک کاربر دوباره با آن دستگاه وارد شود، دوباره نمایش داده می‌شود.", "Delete": "حذف", "DefaultMetadataLangaugeDescription": "این موارد پیشفرض‌های شماست و می‌توانید برای هر کتابخانه آن را شخصی سازی کنید.", - "DefaultErrorMessage": "خطایی در پردازش درخواست رخ داد. لطفا اندکی بعد دوباره تلاش کنید.", + "ErrorDefault": "خطایی در پردازش درخواست رخ داد. لطفا اندکی بعد دوباره تلاش کنید.", "Default": "پیشفرض", "DeathDateValue": "تلف شد: {0}", "DatePlayed": "تاریخ پخش شده", "DateAdded": "تاریخ اضافه شده", "CriticRating": "امتیاز منتقدان", - "CopyStreamURLError": "در کپی کردن آدرس خطایی رخ داد.", "CopyStreamURLSuccess": "آدرس با موفقیت کپی شد.", "CopyStreamURL": "کپی آدرس پخش", "Continuing": "ادامه", @@ -301,7 +294,6 @@ "CancelSeries": "لغو سریال‌ها", "CancelRecording": "لغو ضبط", "ButtonWebsite": "وبسایت", - "ButtonViewWebsite": "بازدید وبسایت", "ButtonUp": "بالا", "ButtonUninstall": "حذف نصب", "ButtonTrailer": "تریلر", @@ -314,7 +306,7 @@ "ButtonShutdown": "خاموش", "ButtonSelectDirectory": "انتخاب مسیر", "ButtonEditOtherUserPreferences": "نمایه، تصویر و ترجیحات شخصی این کاربر را ویرایش کنید.", - "BrowsePluginCatalogMessage": "برای مرور کردن افزونه‌های موجود، به فروشگاه افزونه‌های ما سر بزنید.", + "MessageBrowsePluginCatalog": "برای مرور کردن افزونه‌های موجود، به فروشگاه افزونه‌های ما سر بزنید.", "AuthProviderHelp": "ارائه دهنده تأیید اعتبار را انتخاب کنید تا برای تأیید اعتبار گذرواژه این کاربر استفاده شود.", "HeaderRecordingPostProcessing": "در حال ضبط پس پردازش", "HeaderRecordingOptions": "گزینه‌های ضبط", @@ -419,7 +411,6 @@ "LabelSkipIfAudioTrackPresent": "اگر صدای پیش‌فرض با زبان دانلودی یکسان است پرش کن", "LabelSkipForwardLength": "میزان رفتن به جلو:", "LabelSkipBackLength": "میزان بازگشت به عقب:", - "LabelSkin": "پوسته:", "LabelSize": "سایز:", "LabelSimultaneousConnectionLimit": "محدودیت پخش همزمان:", "LabelServerName": "نام سرور:", @@ -441,7 +432,6 @@ "HeaderActiveDevices": "دستگاه‌های فعال", "HeaderAccessScheduleHelp": "یک زمان‌بندی دسترسی ایجاد کنید تا دسترسی به ساعاتی مشخص محدود شود.", "HeaderAccessSchedule": "زمان‌بندی دسترسی", - "HandledByProxy": "توسط reverse proxy مدیریت می‌شود", "HDPrograms": "برنامه‌های HD", "Filters": "صافی‌ها", "FileReadError": "خطایی هنگام خواندن فایل رخ داد.", @@ -523,7 +513,7 @@ "Unrated": "بدون امتیاز", "Unplayed": "پخش نشده", "Unmute": "صدادار", - "UninstallPluginHeader": "حذف نصب افزونه", + "HeaderUninstallPlugin": "حذف نصب افزونه", "UninstallPluginConfirmation": "آیا اطمینان دارید که می‌خواهید {0} را حذف نصب کنید؟", "Uniform": "یکپارچه", "Tuesday": "سه‌شنبه", @@ -547,9 +537,7 @@ "Wednesday": "چهارشنبه‌ها", "Watched": "مشاهده شده", "ViewPlaybackInfo": "مشاهده اطلاعات پخش", - "ViewArtist": "مشاهده هنرمند", "ViewAlbum": "مشاهده آلبوم", - "VideoRange": "محدوده ویدیو", "Vertical": "عمودی", "ValueVideoCodec": "کدک ویدیو: {0}", "ValueTimeLimitSingleHour": "محدودیت زمانی: 1 ساعت", @@ -570,7 +558,6 @@ "ValueDiscNumber": "دیسک {0}", "LabelImportOnlyFavoriteChannels": "محدود کردن کانال‌هایی که به عنوان مورد علاقه انتخاب شده‌اند", "LabelDateAdded": "تاریخ اضافه شده:", - "LabelDashboardTheme": "تم داشبورد سرور:", "LabelCustomRating": "امتیازدهی سفارشی:", "LabelCustomDeviceDisplayName": "نام نمایشی:", "LabelCustomCssHelp": "ظاهر سفارشی مورد نظر خود را در رابط وب اعمال کنید.", @@ -596,7 +583,6 @@ "LabelSportsCategories": "دسته‌بندی‌های ورزشی:", "LabelSpecialSeasonsDisplayName": "نام نمایشی فصل مخصوص:", "LabelSource": "منبع:", - "LabelSoundEffects": "جلوه‌های صدا:", "LabelSortTitle": "مرتب‌سازی عنوان:", "LabelSortOrder": "ترتیب مرتب‌سازی:", "LabelSortBy": "مرتب‌سازی بر اساس:", @@ -698,11 +684,9 @@ "MessageNoAvailablePlugins": "افزونه‌ای موجود نیست.", "MessageItemsAdded": "آیتم‌ها اضافه شدند.", "MessageItemSaved": "آیتم ذخیره شد.", - "MessageUnauthorizedUser": "در حال حاضر مجاز به دسترسی به سرور نیستید. لطفا برای اطلاعات بیشتر با مدیر سرور خود تماس بگیرید.", "MessageInvalidUser": "نام کاربری یا گذرواژه نامعتبر است. لطفا دوباره تلاش کنید.", "MessageInvalidForgotPasswordPin": "کد پین نامعتبر یا منقضی شده وارد شد. لطفا دوباره تلاش کنید.", - "MessageInstallPluginFromApp": "این افزونه باید از داخل برنامه‌ای که قصد استفاده از آن را دارید نصب شود.", - "PasswordResetHeader": "بازنشانی گذرواژه", + "HeaderResetPassword": "بازنشانی گذرواژه", "PasswordResetConfirmation": "آیا واقعا تمایل به بازنشانی گذرواژه دارید؟", "PasswordResetComplete": "گذرواژه بازنشانی شد.", "PasswordMatchError": "گذرواژه و تکرار گذرواژه باید یکسان باشند.", @@ -710,7 +694,6 @@ "PackageInstallCompleted": "{0} (نسخه {1})نصب به پایان رسید.", "PackageInstallCancelled": "{0} ( نسخه {1})نصب لغو شد.", "Overview": "بررسی اجمالی", - "OtherArtist": "هنرمند دیگر", "OriginalAirDateValue": "زمان پخش اصلی : {0}", "OptionWeekly": "هفتگی", "OptionWeekends": "آخر هفته ها", @@ -747,7 +730,7 @@ "Refresh": "به‌روز‌رسانی", "Recordings": "ضبط شده ها", "RecordingScheduled": "ضبط برنامه ریزی شد.", - "RecordingPathChangeMessage": "با تغییر محل ذخیره فایل های ضبط شده، فایل های موجود به صورت خودکار منتقل نمی شوند. در صورت نیاز، شما باید خودتان این کار را انجام دهید.", + "MessageChangeRecordingPath": "با تغییر محل ذخیره فایل های ضبط شده، فایل های موجود به صورت خودکار منتقل نمی شوند. در صورت نیاز، شما باید خودتان این کار را انجام دهید.", "RecordingCancelled": "ضبط شدن لغو شد.", "RecordSeries": "ضبط کردن سریال ها", "Record": "ضبط کردن", @@ -758,7 +741,6 @@ "RecentlyWatched": "اخیرا مشاهده شده", "Rate": "ارزیابی کن", "Raised": "مطرح شده", - "QueueAllFromHere": "همه را از اینجا در صف قرار بده", "Quality": "کیفیت", "Programs": "برنامه ها", "ProductionLocations": "محل تولید", @@ -771,7 +753,7 @@ "PreferEmbeddedEpisodeInfosOverFileNamesHelp": "این از اطلاعات قسمت در فراداده های تعبیه شده در صورت موجود استفاده می کند.", "PreferEmbeddedTitlesOverFileNamesHelp": "این عنوان نمایش را به صورت پیش فرض تعیین می کند، زمانی که فراداده اینترنتی یا محلی موجود نباشند.", "PreferEmbeddedTitlesOverFileNames": "عنوان های تعبیه شده را به نام فایل ترجیح بده", - "PluginInstalledMessage": "افزونه با موفقیت نصب شد. برای اعمال تغییرات سرور جلیفین نیاز به بارگذاری مجدد دارد.", + "MessagePluginInstalled": "افزونه با موفقیت نصب شد. برای اعمال تغییرات سرور جلیفین نیاز به بارگذاری مجدد دارد.", "PleaseSelectTwoItems": "لطفا حداقل دو مورد را انتخاب کنید.", "PleaseRestartServerName": "لطفا سرور جلیفین را دوباره بارگذاری کنید - {0}.", "PleaseEnterNameOrId": "لطفا یک نام یا شناسه خارجی را وارد کنید.", @@ -798,10 +780,9 @@ "LabelSeasonNumber": "شماره فصل:", "ConfigureDateAdded": "تنظیم کنید که چگونه تاریخ اضافه شده در داشبورد سرور Jellyfin تحت تنظیمات کتابخانه تعیین می‌شود", "CinemaModeConfigurationHelp": "حالت سینما تجربه تئاتر گونه را مستقیم به اتاق نشیمن شما می‌آورد با قابلیت پخش تریلرها و پیش نمایش‌ها قبل از سایر ویژگی‌های اصلی.", - "LaunchWebAppOnStartup": "نمای وب هنگامی که سرور آغاز به کار می‌کند باز بشود", "NoSubtitles": "خالی", "NoSubtitleSearchResultsFound": "نتیجه‌ای یافت نشد.", - "NoPluginConfigurationMessage": "این افزونه هیچ تنظیماتی برای پیکربندی ندارد.", + "MessageNoPluginConfiguration": "این افزونه هیچ تنظیماتی برای پیکربندی ندارد.", "No": "خیر", "Next": "بعدی", "News": "اخبار", @@ -817,7 +798,6 @@ "MusicArtist": "هنرمند موسیقی", "MusicAlbum": "آلبوم موسیقی", "Movie": "فیلم", - "AddItemToCollectionHelp": "افزودن موارد به مجموعه ها با جستجوی آنها و استفاده از منوهای راست کلیک یا ضربه بزنید تا آنها را به مجموعه اضافه کنید.", "AllowFfmpegThrottlingHelp": "هنگامی که یک transcode یا remux به اندازه کافی پیش از موقعیت پخش فعلی می شود ، روند را متوقف می کند تا منابع کمتری مصرف کند. این بیشتر مفید است در هنگام تماشای بدون به دنبال اغلب. اگر مسائل مربوط به پخش را تجربه کنید ، این را خاموش کنید.", "DefaultSubtitlesHelp": "زیرنویس ها بر اساس پرچم های پیش فرض و اجباری در ابرداده تعبیه شده بارگذاری می شوند. تنظیمات زبان در نظر گرفته می شوند زمانی که گزینه های متعدد در دسترس هستند.", "DeinterlaceMethodHelp": "روش deinterlacing برای استفاده از زمانی که transcoding محتوای هم آمیختن را انتخاب کنید.", @@ -938,7 +918,6 @@ "RefreshMetadata": "Refresh metadata", "RefreshQueued": "Refresh queued.", "ReleaseDate": "Release date", - "ReleaseGroup": "Release Group", "RememberMe": "Remember Me", "RemoveFromCollection": "Remove from collection", "RemoveFromPlaylist": "Remove from playlist", @@ -1143,8 +1122,6 @@ "LabelAlbumArtists": "Album artists:", "LabelAll": "All", "LabelAllowHWTranscoding": "Allow hardware transcoding", - "LabelAllowServerAutoRestart": "Allow the server to restart automatically to apply updates", - "LabelAllowServerAutoRestartHelp": "The server will only restart during idle periods when no users are active.", "LabelAllowedRemoteAddresses": "Remote IP address filter:", "LabelAllowedRemoteAddressesMode": "Remote IP address filter mode:", "LabelAppName": "App name", @@ -1203,7 +1180,6 @@ "LabelName": "Name:", "LabelChromecastVersion": "Chromecast Version", "LabelStable": "Stable", - "LabelNightly": "Nightly", "LabelNewName": "New name:", "LabelNewsCategories": "News categories:", "LabelNotificationEnabled": "Enable this notification", @@ -1274,7 +1250,6 @@ "HeaderAppearsOn": "Appears On", "HeaderAudioBooks": "Audio Books", "HeaderAudioSettings": "Audio Settings", - "HeaderAutomaticUpdates": "Automatic Updates", "HeaderBranding": "Branding", "HeaderConfigureRemoteAccess": "Configure Remote Access", "HeaderConfirmPluginInstallation": "Confirm Plugin Installation", @@ -1297,7 +1272,6 @@ "HeaderResponseProfile": "Response Profile", "HeaderResponseProfileHelp": "Response profiles provide a way to customize information sent to the device when playing certain kinds of media.", "HeaderRestart": "Restart", - "HeaderRestartingServer": "Restarting Server", "HeaderRevisionHistory": "Revision History", "HeaderRunningTasks": "Running Tasks", "HeaderScenes": "Scenes", @@ -1349,11 +1323,9 @@ "LabelXDlnaDocHelp": "Determines the content of the X_DLNADOC element in the urn:schemas-dlna-org:device-1-0 namespace.", "LabelffmpegPathHelp": "The path to the ffmpeg application file, or folder containing ffmpeg.", "LanNetworksHelp": "Comma separated list of IP addresses or IP/netmask entries for networks that will be considered on local network when enforcing bandwidth restrictions. If set, all other IP addresses will be considered to be on the external network and will be subject to the external bandwidth restrictions. If left blank, only the server's subnet is considered to be on the local network.", - "LaunchWebAppOnStartupHelp": "Open the web client in your default web browser when the server initially starts. This will not occur when using the restart server function.", "LearnHowYouCanContribute": "Learn how you can contribute.", "LeaveBlankToNotSetAPassword": "You can leave this field blank to set no password.", "Like": "Like", - "LinksValue": "Links: {0}", "List": "List", "Live": "Live", "LiveBroadcasts": "Live broadcasts", @@ -1387,7 +1359,6 @@ "MediaInfoSampleRate": "Sample rate", "MediaInfoSize": "Size", "MediaInfoTimestamp": "Timestamp", - "MediaInfoSoftware": "Software", "MediaInfoStreamTypeAudio": "Audio", "MediaInfoStreamTypeData": "Data", "MediaInfoStreamTypeEmbeddedImage": "Embedded Image", @@ -1443,10 +1414,8 @@ "PlayCount": "Play count", "ReplaceAllMetadata": "Replace all metadata", "ReplaceExistingImages": "Replace existing images", - "RestartPleaseWaitMessage": "Please wait while Jellyfin Server shuts down and restarts. This may take a minute or two.", "ResumeAt": "Resume from {0}", "Rewind": "Rewind", - "RunAtStartup": "Run at startup", "Runtime": "Runtime", "Saturday": "Saturday", "Save": "Save", @@ -1549,9 +1518,7 @@ "TvLibraryHelp": "Review the {0}TV naming guide{1}.", "UserAgentHelp": "Supply a custom user-agent HTTP header.", "ValueContainer": "Container: {0}", - "EnableFastImageFadeIn": "Faster animations", - "EnableFastImageFadeInHelp": "Use faster animations and transitions", - "EnableBlurhash": "Enable blurred placeholders for images", - "EnableBlurhashHelp": "Images that are still being loaded will be displayed with a blurred placeholder", + "EnableBlurHash": "Enable blurred placeholders for images", + "EnableBlurHashHelp": "Images that are still being loaded will be displayed with a blurred placeholder", "ButtonSyncPlay": "SyncPlay" } diff --git a/src/strings/fi.json b/src/strings/fi.json index a6a072ea16..73f3c608ab 100644 --- a/src/strings/fi.json +++ b/src/strings/fi.json @@ -1,6 +1,5 @@ { - "AddUser": "Lisää Käyttäjä", - "BrowsePluginCatalogMessage": "Selaa lisäosakuvastoamme katsoaksesi saatavilla olevia lisäosia.", + "MessageBrowsePluginCatalog": "Selaa lisäosakuvastoamme katsoaksesi saatavilla olevia lisäosia.", "ButtonAddUser": "Lisää Käyttäjä", "ButtonCancel": "Peruuta", "ButtonDeleteImage": "Poista Kuva", @@ -16,18 +15,12 @@ "FileReadCancelled": "Tiedoston luku on peruutettu.", "FileReadError": "Virhe tiedoston luvun aikana.", "FolderTypeTvShows": "TV-sarjat", - "HeaderCreatePassword": "Luo Salasana:", - "HeaderParentalRating": "Parental Rating", "HeaderSeries": "Sarjat", - "HeaderYear": "Year:", "LabelAudioLanguagePreference": "Äänen ensisijainen kieli:", - "LabelConfigureSettings": "Muuta asetuksia", "LabelCountry": "Maa:", "LabelCurrentPassword": "Tämän hetkinen salsana:", "LabelDisplayMissingEpisodesWithinSeasons": "Näytä puuttuvat jaksot kausien sisällä", - "LabelDownloadInternetMetadata": "Lataa kuvamateriaali ja metadata internetistä", "LabelFinish": "Valmis", - "LabelFolderType": "Kansion tyyppi:", "LabelLanguage": "Kieli:", "LabelMaxParentalRating": "Suurin sallittu ikäraja:", "LabelNewPassword": "Uusi salasana:", @@ -36,35 +29,25 @@ "LabelPrevious": "Edellinen", "LabelSaveLocalMetadata": "Tallenna kuvamateriaali mediakansioihin", "LabelSaveLocalMetadataHelp": "Kuvamateriaalin ja metadatan tallentaminen suoraan kansioihin missä niitä on helppo muuttaa.", - "LabelSubtitleLanguagePreference": "Tekstityksien ensisijainen kieli:", - "LabelUnairedMissingEpisodesWithinSeasons": "Näytä julkaisemattomat jaksot tuotantokausissa", - "LabelYourFirstName": "Etunimesi:", "LabelYoureDone": "Valmista!", "LibraryAccessHelp": "Valitse kirjastot, jotka haluat jakaa tämän käyttäjän kanssa. Järjestelmänvalvoja pystyy muokkaamaan kaikkia kansioita käyttäen metadatan hallintatyökalua.", "MaxParentalRatingHelp": "Suuremman luokituksen sisältö piilotetaan käyttäjältä.", "MoreUsersCanBeAddedLater": "Käyttäjiä voidaan lisätä myöhemmin lisää päänäkymästä.", - "NoPluginsInstalledMessage": "Sinulla ei ole mitään lisäosia asennettuna.", - "OptionRelease": "Virallinen Julkaisu", "ParentalRating": "Ikäraja", - "Password": "Salasana", "PasswordMatchError": "Salasanan ja salasanan vahvistuksen on oltava samat.", "PasswordResetComplete": "Salasana on nollattu.", "PasswordResetConfirmation": "Haluatko varmasti nollata salasanan?", "PasswordSaved": "Salasana tallennettu.", "Save": "Tallenna", "SettingsSaved": "Asetukset tallennettu.", - "TabImage": "Kuva", - "TabLibraryAccess": "Kirjaston Pääsy", "TabPassword": "Salasana", "TabProfile": "Profiili", "TabProfiles": "Profiilit", "TellUsAboutYourself": "Kerro meille itsestäsi", "ThisWizardWillGuideYou": "Tämä työkalu auttaa sinua asennusprosessin aikana. Valitse kieli aloittaaksesi.", "UninstallPluginConfirmation": "Oletko varma, että haluat poistaa {0}?", - "UninstallPluginHeader": "Poista Lisäosa", - "Users": "Käyttäjät", + "HeaderUninstallPlugin": "Poista Lisäosa", "Absolute": "Ehdoton", - "Accept": "Hyväksy", "Actor": "Näyttelijä", "Add": "Lisää", "AddToCollection": "Lisää kokoelmaan", @@ -81,11 +64,8 @@ "AllEpisodes": "Kaikki jaksot", "AllLanguages": "Kaikki kielet", "AllLibraries": "Kaikki kirjastot", - "AllowDeletionFromAll": "Salli tiedostojen poistaminen kaikista kirjastoista", "AllowOnTheFlySubtitleExtraction": "Salli tekstitysten purkaminen lennossa", "AccessRestrictedTryAgainLater": "Pääsy on toistaiseksi estetty. Yritä myöhemmin uudelleen.", - "AddGuideProviderHelp": "Lisää lähde ohjelmaoppaalle.", - "AddItemToCollectionHelp": "Lisää nimikkeitä etsimällä niitä ja käyttämällä hiiren oikeaa nappia tai valikkoa lisätäksesi ne kokoelmaan.", "Aired": "Esityspäivä", "AllowHWTranscodingHelp": "Salli virittimen muuntaa bittivirtaa lennossa. Tämä voi vähentää muunnoksen tarvetta Jellyfin-palvelimella.", "AllowMediaConversion": "Salli median muunto", @@ -96,7 +76,6 @@ "AllowedRemoteAddressesHelp": "Pilkuilla eroteltu lista IP-osoitteista tai IP/verkonpeite merkinnöistä verkoille, joille sallitaan etäyhteys palvelimeen. Tyhjäksi jätetty lista tarkoittaa, että kaikki osoitteet sallitaan.", "AlwaysPlaySubtitles": "Näytä aina tekstitykset", "AlwaysPlaySubtitlesHelp": "Oletuskieliasetusta vastaava tekstitys otetaan käyttöön ääniraidan kielestä huolimatta.", - "AnamorphicVideoNotSupported": "Anamorfinen video ei ole tuettu", "AnyLanguage": "Mikä tahansa", "Anytime": "Milloin tahansa", "AroundTime": "Noin {0}", @@ -109,7 +88,6 @@ "Audio": "Ääni", "AuthProviderHelp": "Valitse todentamispalvelu, jota käytetään tämän käyttäjän salasanan todentamisessa.", "Auto": "Auto", - "AutoBasedOnLanguageSetting": "Automaattinen (perustuu kieliasetukseen)", "Backdrop": "Tausta", "Backdrops": "Taustat", "Banner": "Lippu", @@ -132,7 +110,6 @@ "ButtonArrowUp": "Ylös", "ButtonAudioTracks": "Ääniraidat", "ButtonBack": "Takaisin", - "ButtonChangeContentType": "Vaihda sisällön tyyppiä", "ButtonChangeServer": "Vaihda Palvelinta", "ButtonConnect": "Yhdistä", "ButtonDelete": "Poista", @@ -149,11 +126,9 @@ "ButtonHelp": "Apua", "ButtonHome": "Koti", "ButtonInfo": "Tiedot", - "ButtonLearnMore": "Lue lisää", "ButtonLibraryAccess": "Kiraston pääsy", "ButtonManualLogin": "Manuaalinen kirjautuminen", "ButtonMore": "Lisää", - "ButtonMoreInformation": "Lisää tietoa", "ButtonNetwork": "Verkko", "ButtonNew": "Uusi", "ButtonNextTrack": "Seuraava raita", @@ -194,7 +169,6 @@ "ButtonTrailer": "Traileri", "ButtonUninstall": "Poista asennus", "ButtonUp": "Ylös", - "ButtonViewWebsite": "Näytä nettisivusto", "ButtonWebsite": "Nettisivusto", "CancelRecording": "Peruuta tallennus", "Categories": "Kategoriat", @@ -222,7 +196,7 @@ "DateAdded": "Lisäyspäivämäärä", "DatePlayed": "Toistopäivämäärä", "Default": "Oletus", - "DefaultErrorMessage": "Pyynnön käsittelyssä tapahtui virhe. Yritä myöhemmin uudelleen.", + "ErrorDefault": "Pyynnön käsittelyssä tapahtui virhe. Yritä myöhemmin uudelleen.", "DefaultMetadataLangaugeDescription": "Nämä ovat sinun oletuksetasetukset ja niitä voidaan muokata kirjastokohtaisesti.", "DefaultSubtitlesHelp": "Tekstitykset ladataan pakotettu- ja oletusmäärityksien upotetun metadatan mukaan. Kieliasetukset otetaan huomioon, kun on enemmän kuin yksi tekstitys josta valita.", "DeleteDeviceConfirmation": "Oletko varma, että haluat positaa tämän laitteen? Se ilmaantuu uudelleen seuraavan kerran, kun jokin käyttäjä kirjautuu sillä.", @@ -303,7 +277,6 @@ "EnableBackdropsHelp": "Näytä taustat tietyillä sivuilla selatessasi kirjastoa.", "EnableExternalVideoPlayersHelp": "Videota soitettaessa näytetään erillinen valikko.", "Depressed": "Painettu", - "CopyStreamURLError": "Osoitteen kopioidessa tapahtui virhe.", "ButtonSplit": "jaa", "AskAdminToCreateLibrary": "Pyydä järjestelmän ylläpitäjää luomaan kirjasto.", "EnableStreamLooping": "Looppaa suoralähetykset", @@ -324,7 +297,7 @@ "Play": "Toista", "PinCodeResetConfirmation": "Haluatko varmasti nollata PIN-koodin?", "People": "Ihmiset", - "PasswordResetHeader": "Nollaa salasana", + "HeaderResetPassword": "Nollaa salasana", "OriginalAirDateValue": "Alkuperäinen esityspäivä: {0}", "OptionWeekly": "Viikottainen", "OptionWeekends": "Viikonloput", @@ -405,7 +378,6 @@ "MessagePluginConfigurationRequiresLocalAccess": "Kirjaudu suoraan paikalliselle palvelimellesi muokataksesi tätä liitännäistä.", "MessagePleaseEnsureInternetMetadata": "Varmista, että metadatan lataus on käytössä.", "MessageNoServersAvailable": "Automaattisen palvelintunnistuksen avulla ei löydy palvelimia.", - "MessageUnauthorizedUser": "Sinulla ei ole lupaa käyttää palvelinta tällä hetkellä. Ota yhteyttä palvelimen järjestelmänvalvojaan saadaksesi lisätietoja.", "MessageInvalidForgotPasswordPin": "PIN-koodi on kelpaa tai vanhentunut. Yritä uudelleen.", "MessageImageTypeNotSelected": "Valitse kuvatyyppi pudotusvalikosta.", "MessageImageFileTypeAllowed": "Vain JPEG ja PNG tiedostomuotoja tuetaan.", @@ -446,8 +418,6 @@ "LabelAppName": "Sovelluksen nimi", "LabelAllowedRemoteAddressesMode": "Etä-IP-osoitesuodattimen tila:", "LabelAllowedRemoteAddresses": "Etä-IP-osoitesuodatin:", - "LabelAllowServerAutoRestartHelp": "Palvelin käynnistyy uudelleen vain hiljaisina aikoina, kun yksikään käyttäjä ei ole aktiivinen.", - "LabelAllowServerAutoRestart": "Salli palvelimen automaattinen uudelleenkäynnistys päivitysten asentamiseksi", "LabelAllowHWTranscoding": "Salli laitteistolla transkoodaus", "LabelAlbumArtMaxWidth": "Albumin kuvan maksimileveys:", "LabelAlbumArtMaxHeight": "Albumin kuvan maksimikorkeus:", @@ -516,7 +486,6 @@ "HeaderAllowMediaDeletionFrom": "Salli median poisto", "HeaderAlert": "Hälytys", "HeaderActivity": "Toiminta", - "HandledByProxy": "Reverse proxyn hoitama", "HDPrograms": "HD-ohjelmat", "OptionDownloadArtImage": "Taide", "OptionDownloadDiscImage": "Levy", @@ -573,7 +542,6 @@ "MediaInfoStreamTypeSubtitle": "Tekstitys", "MediaInfoStreamTypeData": "Data", "MediaInfoStreamTypeAudio": "Audio", - "MediaInfoSoftware": "Ohjelmisto", "MediaInfoTimestamp": "Aikaleima", "MediaInfoResolution": "Resoluutio", "MediaInfoSize": "Koko", @@ -597,7 +565,6 @@ "LiveBroadcasts": "Suorat lähetykset", "Live": "Suora", "List": "Lista", - "LinksValue": "Linkkejä: {0}", "LearnHowYouCanContribute": "Katso, miten voit auttaa.", "Large": "Suuri", "LabelffmpegPath": "FFmpeg polku:", @@ -715,7 +682,6 @@ "TabRecordings": "Tallennukset", "TabPlugins": "Liitännäiset", "TabPlaylists": "Soittolistat", - "TabPlaylist": "Soittolista", "TabPlayback": "Toistaminen", "TabNfoSettings": "NFO-asetukset", "TabNetworks": "Verkot", @@ -775,7 +741,6 @@ "SaveSubtitlesIntoMediaFolders": "Tallenna tekstitykset mediakansioihin", "Saturday": "Lauantai", "ResumeAt": "Jatka kohdasta {0}", - "RequiredForAllRemoteConnections": "Vaadittu kaikille etäyhteyksille", "ReplaceExistingImages": "Korvaa olemassaolevat kuvat", "ReplaceAllMetadata": "Korvaa kaikki metadata", "RepeatEpisodes": "Toista jaksot uudelleen", @@ -833,7 +798,6 @@ "Writer": "Kirjoittaja", "WelcomeToProject": "Tervetuloa Jellyfiniin!", "Wednesday": "Keskiviikko", - "ViewArtist": "Näytä artisti", "ViewAlbum": "Näytä albumi", "Vertical": "Vertikaalinen", "ValueSongCount": "{0} kappaletta", @@ -855,7 +819,7 @@ "OnApplicationStartup": "Käynnistyksen yhteydessä", "NumLocationsValue": "{0} kansiota", "NoSubtitleSearchResultsFound": "Ei tuloksia.", - "NoPluginConfigurationMessage": "Tällä liitännäisellä ei ole asetuksia muokattavaksi.", + "MessageNoPluginConfiguration": "Tällä liitännäisellä ei ole asetuksia muokattavaksi.", "NoCreatedLibraries": "Vaikuttaa siltä, ettet ole luonut vielä yhtään kirjastoa. {0} Haluaisitko luoda sellaisen nyt?{1}", "No": "Ei", "NextUp": "Seuraavana", @@ -976,7 +940,6 @@ "GroupBySeries": "Ryhmitä sarjan perusteella", "Fullscreen": "Kokonäyttötila", "HeaderBooks": "Kirjat", - "HeaderAutomaticUpdates": "Automaattiset päivitykset", "HeaderAudioBooks": "Äänikirjat", "HeaderApiKeys": "API-avaimet", "HeaderApiKey": "API-avain", @@ -1025,7 +988,6 @@ "LabelDeviceDescription": "Laitteen kuvaus", "LabelDefaultScreen": "Oletusnäyttö:", "LabelDefaultUser": "Oletuskäyttäjä:", - "LabelDashboardTheme": "Palvelimen päänäkymän teema:", "LabelCustomCertificatePathHelp": "Polku PKCS # 12-tiedostoon, joka sisältää sertifikaatin ja yksityisen avaimen, jotta TLS-tuki voidaan sallia henkilökohtaiselle verkkotunnukselle.", "LabelCustomCertificatePath": "Mukautetun SSL-sertifikaatin polku:", "LabelContentType": "Sisältötyyppi:", @@ -1150,7 +1112,6 @@ "PleaseRestartServerName": "Ole hyvä ja uudelleenkäynnistä Jellyfin-palvelin - {0}.", "PleaseEnterNameOrId": "Anna nimi tai ulkoinen ID.", "PreferEmbeddedTitlesOverFileNames": "Suosi upotettuja otsikoita tiedostonimien sijasta", - "PreferredNotRequired": "Suositeltava, mutta ei vaadittu", "Premieres": "Ensiesitys", "Primary": "Ensisijainen", "Previous": "Edellinen", @@ -1180,7 +1141,6 @@ "LabelTranscodingAudioCodec": "Audio codec:", "LabelSubtitleDownloaders": "Tekstitysten lataajat:", "LabelSpecialSeasonsDisplayName": "Erikoiskauden näyttönimi:", - "LabelSoundEffects": "Ääniefektit:", "LabelSortTitle": "Lajitteluotsikko:", "LabelSkipIfAudioTrackPresent": "Ohita, jos oletusääniraita vastaa latauskieltä", "LabelSkipBackLength": "Taaksepäin hyppäämisen pituus:", @@ -1241,7 +1201,7 @@ "FolderTypeUnset": "Sekalainen sisältö", "FetchingData": "Noudetaan lisätietoja", "Features": "Ominaisuudet", - "ErrorMessageStartHourGreaterThanEnd": "Loppumisajan on oltava myöhemmin kuin aloitusaika.", + "ErrorStartHourGreaterThanEnd": "Loppumisajan on oltava myöhemmin kuin aloitusaika.", "MediaInfoAnamorphic": "Anamorfinen", "ErrorGettingTvLineups": "TV esiintyjälistan lataamisessa tapahtui virhe. Varmista, että tiedot on oikein ja yritä uudelleen.", "EnableDetailsBannerHelp": "Näyttää julistekuvan yksityiskohdat -sivun ylälaidassa.", diff --git a/src/strings/fr-ca.json b/src/strings/fr-ca.json index 5f03a9d43f..9229aabf56 100644 --- a/src/strings/fr-ca.json +++ b/src/strings/fr-ca.json @@ -36,7 +36,6 @@ "LabelPlaylist": "Liste de lecture :", "LabelPrevious": "Précédent", "LabelYear": "Année :", - "LabelYourFirstName": "Votre prénom :", "LabelYoureDone": "Vous avez terminé !", "Live": "En direct", "MessageItemsAdded": "Éléments ajoutés.", @@ -80,7 +79,6 @@ "Absolute": "Absolu", "AccessRestrictedTryAgainLater": "L'accès est actuellement restreint. Veuillez réessayer plus tard.", "Actor": "Acteur(trice)", - "AddItemToCollectionHelp": "Ajoutez des éléments à des collections en les recherchant et en utilisant leurs menus contextuels (clic droit ou appuyez longtemps).", "AddToPlayQueue": "Ajouter à la file d'attente", "AddedOnValue": "Ajouté le {0}", "AdditionalNotificationServices": "Visitez le catalogue d'extensions pour installer des services de notifications supplémentaires.", @@ -126,7 +124,6 @@ "Ascending": "Croissant", "Audio": "Audio", "Auto": "Auto", - "AutoBasedOnLanguageSetting": "Auto (basé sur le réglage de la langue)", "Backdrop": "Arrière-plan", "Backdrops": "Arrière-plans", "Banner": "Bannière", @@ -138,10 +135,9 @@ "Box": "Boîtier", "BoxRear": "Dos de boîtier", "Browse": "Parcourir", - "BrowsePluginCatalogMessage": "Explorer notre catalogue des plugins pour voir les plugins disponibles.", + "MessageBrowsePluginCatalog": "Explorer notre catalogue des plugins pour voir les plugins disponibles.", "AllowHWTranscodingHelp": "Permets au syntonisateur de transcoder les flux à la volée. Cela peut aider à réduire le transcodage requis par le serveur.", "BurnSubtitlesHelp": "Détermine si le serveur doit graver les sous-titres lors du transcodage vidéo. Éviter ceci améliorera les performances du serveur. Sélectionnez Auto pour graver les formats basés sur l'image (par exemple, VOBSUB, PGS, SUB/IDX etc) ainsi que certains sous-titres ASS/SSA.", - "ButtonAccept": "Accepter", "ButtonAdd": "Ajouter", "ButtonAddMediaLibrary": "Ajouter une médiathèque", "ButtonAddScheduledTaskTrigger": "Ajouter un déclencheur", @@ -153,14 +149,8 @@ "ButtonArrowUp": "Haut", "ButtonAudioTracks": "Pistes Audio", "ButtonBack": "Retour arrière", - "ButtonCancelSeries": "Annuler séries", "ButtonChangeServer": "Changer de serveur", - "ButtonClear": "Effacer", - "ButtonClose": "Fermer", - "ButtonConfigurePassword": "Configurer le mot de passe", - "ButtonConfigurePinCode": "Configurer le code PIN", "ButtonConnect": "Connexion", - "ButtonCreate": "Créer", "ButtonDelete": "Supprimer", "ButtonDeleteImage": "Supprimer l'image", "ButtonDown": "Bas", @@ -168,22 +158,15 @@ "ButtonEdit": "Modifier", "ButtonEditImages": "Modifier les images", "ButtonEditOtherUserPreferences": "Modifier ce profil utilisateur, son avatar et ses préférences personnelles.", - "ButtonExit": "Quitter", "ButtonFilter": "Filtre", "ButtonForgotPassword": "Mot de passe oublié", "ButtonFullscreen": "Plein écran", "ButtonGuide": "Guide", "ButtonHelp": "Aide", - "ButtonHide": "Cacher", "ButtonHome": "Accueil", "ButtonInfo": "Informations", - "ButtonInviteUser": "Inviter un utilisateur", - "ButtonLearnMore": "En savoir plus", "ButtonLibraryAccess": "Accès à la médiathèque", - "ButtonManageFolders": "Gérer les dossiers", - "ButtonManageServer": "Gérer le serveur", "ButtonManualLogin": "Connexion manuelle", - "ButtonMenu": "Menu", "ButtonMore": "Plus", "ButtonNetwork": "Réseau", "AspectRatio": "Format de visionnement", @@ -205,7 +188,6 @@ "DatePlayed": "Date écoutée", "DateAdded": "Date d'ajout", "CriticRating": "Évaluation critique", - "CopyStreamURLError": "Une erreur est survenue en essayant de copier l'URL.", "CopyStreamURLSuccess": "L'URL a été copié avec succès.", "CopyStreamURL": "Copier l'URL du stream", "ContinueWatching": "Continuer à visionner", @@ -222,7 +204,6 @@ "CancelSeries": "Annuler la série", "CancelRecording": "Annuler l'enregistrement", "ButtonWebsite": "Site web", - "ButtonViewWebsite": "Voir le site web", "ButtonUp": "Vers le haut", "ButtonUninstall": "Désinstaller", "ButtonTogglePlaylist": "Liste de lecture", diff --git a/src/strings/fr.json b/src/strings/fr.json index 0b8a21470b..6d8fb68ecf 100644 --- a/src/strings/fr.json +++ b/src/strings/fr.json @@ -3,7 +3,6 @@ "AccessRestrictedTryAgainLater": "L'accès est actuellement restreint. Veuillez réessayer plus tard.", "Actor": "Acteur(trice)", "Add": "Ajouter", - "AddItemToCollectionHelp": "Ajoutez des éléments à des collections en les recherchant et en utilisant leurs menus contextuels (clic droit ou appui long) pour les ajouter à une collection.", "AddToCollection": "Ajouter à la collection", "AddToPlayQueue": "Ajouter à la file d'attente", "AddToPlaylist": "Ajouter à la liste de lecture", @@ -18,7 +17,6 @@ "AllEpisodes": "Tous les épisodes", "AllLanguages": "Toutes les langues", "AllLibraries": "Toutes les médiathèques", - "AllowDeletionFromAll": "Autoriser la suppression de média depuis toutes les médiathèques", "AllowHWTranscodingHelp": "Permet au tuner TV de transcoder les flux à la volée. Cela peut aider à réduire le transcodage requis par le serveur.", "AllowMediaConversion": "Autoriser la conversion des médias", "AllowMediaConversionHelp": "Autoriser ou refuser l'accès à la fonctionnalité de conversion des médias.", @@ -37,7 +35,6 @@ "Ascending": "Croissant", "AspectRatio": "Format d'image", "AttributeNew": "Nouveau", - "AutoBasedOnLanguageSetting": "Auto (basé sur le réglage de la langue)", "Backdrop": "Arrière-plan", "Backdrops": "Arrière-plans", "Banner": "Bannière", @@ -50,7 +47,7 @@ "Box": "Boîtier", "BoxRear": "Dos de boîtier", "Browse": "Parcourir", - "BrowsePluginCatalogMessage": "Explorer notre catalogue des plugins pour voir les plugins disponibles.", + "MessageBrowsePluginCatalog": "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. 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", @@ -80,7 +77,6 @@ "ButtonHelp": "Aide", "ButtonHome": "Accueil", "ButtonInfo": "Informations", - "ButtonLearnMore": "En savoir plus", "ButtonLibraryAccess": "Accès à la médiathèque", "ButtonManualLogin": "Connexion manuelle", "ButtonMore": "Plus", @@ -125,7 +121,6 @@ "ButtonTrailer": "Bande-annonce", "ButtonUninstall": "Désinstaller", "ButtonUp": "Haut", - "ButtonViewWebsite": "Voir le site", "ButtonWebsite": "Site Web", "CancelRecording": "Annuler l'enregistrement", "CancelSeries": "Annuler la série", @@ -156,7 +151,7 @@ "DatePlayed": "Date de lecture", "DeathDateValue": "Décédé(e) le {0}", "Default": "Par défaut", - "DefaultErrorMessage": "Il y a eu une erreur lors de l'exécution de la requête. Veuillez réessayer plus tard.", + "ErrorDefault": "Il y a eu une erreur lors de l'exécution de la requête. Veuillez réessayer plus tard.", "DefaultMetadataLangaugeDescription": "Ce sont vos réglages par défaut. Ils peuvent être personnalisés pour chaque médiathèque.", "DefaultSubtitlesHelp": "Les sous-titres seront chargés selon les marqueurs par défaut et forcé dans les métadonnées intégrées. Les langues préférées seront utilisées quand plusieurs options seront disponibles.", "Delete": "Supprimer", @@ -173,7 +168,7 @@ "DeviceAccessHelp": "Ceci ne s'applique qu'aux appareils qui peuvent être identifiés de manière unique et n'empêchera pas l'accès par navigateur. Le filtrage de l'accès aux appareil par utilisateur empêchera l'utilisation de nouveaux appareils jusqu'à ce qu'ils soient approuvés ici.", "DirectPlaying": "Lecture directe", "DirectStreamHelp1": "Le média est compatible avec l'appareil en ce qui concerne la résolution et le type de média (H.264, AC3, etc), mais se trouve dans un conteneur de fichiers incompatible (mkv, avi, wmv, etc). La vidéo sera rempaquetée à la volée avant d'être diffusée à l'appareil.", - "DirectStreamHelp2": "Le streaming en direct d'un fichier utilise très peu de puissance de traitement sans perte de qualité vidéo.", + "DirectStreamHelp2": "Le streaming en direct utilise très peu de puissance de traitement avec une perte minime de qualité vidéo.", "DirectStreaming": "Streaming direct", "Director": "Réalisateur(trice)", "Directors": "Réalisateurs", @@ -225,7 +220,7 @@ "ErrorAddingXmlTvFile": "Une erreur est survenue lors de l'accès au fichier XMLTV. Assurez-vous que le fichier existe et réessayez.", "ErrorDeletingItem": "Une erreur s'est produite lors de la suppression de l'élément du serveur Jellyfin. Vérifiez que le serveur Jellyfin a un accès en écriture au dossier multimédia et réessayez.", "ErrorGettingTvLineups": "Une erreur est survenue pendant le téléchargement des programmes TV. Assurez-vous que vos informations sont correctes et réessayez.", - "ErrorMessageStartHourGreaterThanEnd": "La date de fin doit être postérieure à la date de début.", + "ErrorStartHourGreaterThanEnd": "La date de fin doit être postérieure à la date de début.", "ErrorPleaseSelectLineup": "Veuillez sélectionner une programmation et réessayer. Si aucune programmation n'est disponible, veuillez vérifier que vos identifiant, mot de passe et code postal sont corrects.", "ErrorSavingTvProvider": "Une erreur est survenue lors de la sauvegarde du fournisseur TV. Assurez-vous qu'il est accessible et réessayez.", "EveryNDays": "Tous les {0} jours", @@ -260,7 +255,6 @@ "H264CrfHelp": "Le facteur de débit constant (CRF) est le paramètre de qualité par défaut pour l'encodeur x264. Vous pouvez régler les valeurs entre 0 et 51, où des valeurs plus faibles se traduiraient par une meilleure qualité (en augmentant le taille des fichiers). De bonne valeurs se situent entre 18 et 28. La valeur par défaut pour le x264 est 23, vous pouvez l'utiliser comme point de départ.", "EncoderPresetHelp": "Choisissez une valeur plus rapide pour améliorer la performance, ou plus lente pour améliorer la qualité.", "HDPrograms": "Programmes HD", - "HandledByProxy": "Gérée par un proxy inverse", "HardwareAccelerationWarning": "L'activation de l'accélération matérielle peut provoquer une instabilité dans certains environnements. Assurez-vous que votre système d'exploitation et vos pilotes vidéo sont complètement à jour. Si vous avez des difficultés pour lire des vidéos après l'activation, vous devrez remettre ce paramètre sur Aucun.", "HeaderAccessSchedule": "Programme d'Accès", "HeaderAccessScheduleHelp": "Créez un programme d'accès pour limiter l'accès à certaines heures.", @@ -279,12 +273,11 @@ "HeaderAllowMediaDeletionFrom": "Autoriser la suppression de médias à partir de", "HeaderApiKey": "Clé API", "HeaderApiKeys": "Clés API", - "HeaderApiKeysHelp": "Les applications externes ont besoin d'une clé d'API pour communiquer avec le serveur Jellyfin. Les clés sont distribuées lors d'une connexion avec un compte Jellyfin, ou bien en accordant manuellement une clé à une application.", + "HeaderApiKeysHelp": "Les applications externes ont besoin d'une clé d'API pour communiquer avec le serveur. Les clés sont distribuées lors d'une connexion avec un compte normal ou en accordant manuellement une clé à une application.", "HeaderApp": "Application", "HeaderAppearsOn": "Apparait dans", "HeaderAudioBooks": "Livres audios", "HeaderAudioSettings": "Réglages audio", - "HeaderAutomaticUpdates": "Mises à jour automatiques", "HeaderBlockItemsWithNoRating": "Bloquer les éléments avec des informations de classification inconnues ou n'en disposant pas :", "HeaderBooks": "Livres", "HeaderBranding": "Slogan", @@ -399,7 +392,7 @@ "HeaderPreferredMetadataLanguage": "Langue de métadonnées préférée", "HeaderProfile": "Profil", "HeaderProfileInformation": "Information de profil", - "HeaderProfileServerSettingsHelp": "Ces valeurs contrôlent la façon dont le serveur Jellyfin se présentera aux appareils.", + "HeaderProfileServerSettingsHelp": "Ces valeurs contrôlent la façon dont le serveur se présentera aux clients.", "HeaderRecentlyPlayed": "Lus récemment", "HeaderRecordingOptions": "Options d'enregistrement", "HeaderRecordingPostProcessing": "Traitement des enregistrements", @@ -423,7 +416,7 @@ "HeaderSelectServerCachePath": "Sélectionner le chemin d'accès du cache de serveur", "HeaderSelectServerCachePathHelp": "Parcourir ou saisir le chemin d'accès à utiliser pour les fichiers cache du serveur. Le dossier doit être accessible en écriture.", "HeaderSelectTranscodingPath": "Sélectionner le chemin d'accès du dossier temporaire de transcodage", - "HeaderSelectTranscodingPathHelp": "Parcourir ou saisir le chemin d'accès à utiliser pour les fichiers de transcodage temporaires. Le dossier doit être accessible en écriture.", + "HeaderSelectTranscodingPathHelp": "Parcourir ou saisir le chemin d'accès à utiliser pour les fichiers de transcodage. Le dossier doit être accessible en écriture.", "HeaderSendMessage": "Envoyer un message", "HeaderSeries": "Séries", "HeaderSeriesOptions": "Options de la série", @@ -473,8 +466,8 @@ "Home": "Accueil", "HttpsRequiresCert": "Pour activer les connexions sécurisées, vous devrez fournir un certificat SSL vérifié, comme ceux fournis par Let's Encrypt. Veuillez fournir un certificat ou désactiver les connexions sécurisées.", "Identify": "Identifier", - "ImportFavoriteChannelsHelp": "Activez cette option pour n'importer que les chaînes ajoutées aux favoris sur le tuner.", - "ImportMissingEpisodesHelp": "Les informations à propos des épisodes manquants seront importées dans votre base de donnée Jellyfin et affichées dans les saisons et séries. Cela peut accroître significativement la durée d'actualisation de la médiathèque.", + "ImportFavoriteChannelsHelp": "Seules les chaînes ajoutées aux favoris sur le tuner seront importées.", + "ImportMissingEpisodesHelp": "Les informations à propos des épisodes manquants seront importées dans votre base de données et affichées dans les saisons et séries. Cela peut accroître significativement la durée d'actualisation de la médiathèque.", "InstallingPackage": "Installation de {0} (version {1})", "InstantMix": "Mix instantané", "ItemCount": "{0} éléments", @@ -500,21 +493,19 @@ "LabelAlbumArtists": "Artistes de l'album :", "LabelAll": "Tout", "LabelAllowHWTranscoding": "Autoriser le transcodage matériel", - "LabelAllowServerAutoRestart": "Autoriser le redémarrage automatique du serveur pour appliquer les mises à jour", - "LabelAllowServerAutoRestartHelp": "Le serveur ne redémarrera que pendant les périodes d'inactivité quand aucun utilisateur n'est connecté.", "LabelAllowedRemoteAddresses": "Filtre d'adresse IP distante :", "LabelAllowedRemoteAddressesMode": "Type de filtre des adresses IP distantes :", "LabelAppName": "Nom de l'application", "LabelAppNameExample": "Exemple: Sickbeard, Sonarr", "LabelArtists": "Artistes :", - "LabelArtistsHelp": "Séparer les différents éléments par ;", + "LabelArtistsHelp": "Séparer les différents éléments par un point-virgule.", "LabelAudioLanguagePreference": "Langue audio préférée :", "LabelAutomaticallyRefreshInternetMetadataEvery": "Actualiser automatiquement les métadonnées depuis internet :", "LabelBindToLocalNetworkAddress": "Lier à l'adresse de réseau local :", - "LabelBindToLocalNetworkAddressHelp": "Optionnel. Remplace l'adresse IP locale à laquelle se lie le serveur HTTP. Sans paramètre, le serveur va se lier à toutes les adresses disponibles. La modification de cette valeur nécessite le redémarrage du serveur Jellyfin.", + "LabelBindToLocalNetworkAddressHelp": "Remplace l'adresse IP locale du serveur HTTP. Sans paramètre, le serveur va se lier à toutes les adresses disponibles. La modification de cette valeur nécessite le redémarrage du serveur Jellyfin.", "LabelBirthDate": "Date de naissance :", "LabelBirthYear": "Année de naissance :", - "LabelBlastMessageInterval": "Intervalle des messages de présence (secondes)", + "LabelBlastMessageInterval": "Intervalle des messages de présence", "LabelBlastMessageIntervalHelp": "Détermine la durée en secondes entre les messages de présence.", "LabelBlockContentWithTags": "Bloquer les éléments avec les étiquettes :", "LabelBurnSubtitles": "Graver les sous-titres :", @@ -538,7 +529,6 @@ "LabelCustomDeviceDisplayName": "Nom d'affichage :", "LabelCustomDeviceDisplayNameHelp": "Entrez un nom d'affichage personnalisé ou laissez vide pour utiliser le nom rapporté par l'appareil.", "LabelCustomRating": "Note personnalisée :", - "LabelDashboardTheme": "Thème du tableau de bord du serveur :", "LabelDateAdded": "Date d'ajout :", "LabelDateAddedBehavior": "Choix de la date d'ajout pour le nouveau contenu :", "LabelDateAddedBehaviorHelp": "Si une métadonnée est présente, elle sera toujours utilisée avant ces options.", @@ -571,7 +561,7 @@ "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)", + "LabelEnableDlnaClientDiscoveryInterval": "Intervalle de découverte des clients", "LabelEnableDlnaClientDiscoveryIntervalHelp": "Détermine la durée en secondes entre les recherches SSDP exécutées par Jellyfin.", "LabelEnableDlnaDebugLogging": "Activer le débogage DLNA dans le journal d'événements", "LabelEnableDlnaDebugLoggingHelp": "Génère de gros fichiers de journal d'événements et ne devrait être utilisé que pour des diagnostics d'erreur.", @@ -581,7 +571,7 @@ "LabelEnableDlnaServerHelp": "Autorise les appareils UPnP de votre réseau à parcourir et à lire le contenu.", "LabelEnableHardwareDecodingFor": "Activer le décodage matériel pour :", "LabelEnableRealtimeMonitor": "Activer la surveillance en temps réel", - "LabelEnableRealtimeMonitorHelp": "Les modifications des fichiers seront traitées immédiatement, sur les systèmes de fichiers qui le permettent.", + "LabelEnableRealtimeMonitorHelp": "Les modifications des fichiers seront traitées immédiatement sur les systèmes de fichiers qui le permettent.", "LabelEnableSingleImageInDidlLimit": "Limiter à une seule image intégrée", "LabelEnableSingleImageInDidlLimitHelp": "Quelques périphériques ne fourniront pas un rendu correct si plusieurs images sont intégrées dans Didl.", "LabelEndDate": "Date de fin :", @@ -597,9 +587,9 @@ "LabelForgotPasswordUsernameHelp": "Saisissez votre nom d'utilisateur, si vous vous en souvenez.", "LabelFormat": "Format :", "LabelFriendlyName": "Nom d'affichage :", - "LabelServerNameHelp": "Ce nom sera utilisé pour identifier le serveur. La valeur par défaut est le nom d'ordinateur du serveur.", + "LabelServerNameHelp": "Ce nom sera utilisé pour identifier le serveur. La valeur par défaut est le nom d'hôte du serveur.", "LabelGroupMoviesIntoCollections": "Grouper les films en collections", - "LabelGroupMoviesIntoCollectionsHelp": "Dans l'affichage des listes de films, les films faisant partie d'une collection seront affichés comme un élément groupé.", + "LabelGroupMoviesIntoCollectionsHelp": "Dans l'affichage des listes de films, les films d'une collection seront affichés comme un élément groupé.", "LabelH264Crf": "CRF d'encodage H264 :", "LabelEncoderPreset": "Profil d'encodage H264 :", "LabelHardwareAccelerationType": "Accélération matérielle :", @@ -607,7 +597,7 @@ "LabelHomeNetworkQuality": "Qualité du réseau local :", "LabelHomeScreenSectionValue": "Section {0} de l'accueil :", "LabelHttpsPort": "Numéro de port HTTPS local :", - "LabelHttpsPortHelp": "Le port TCP que le serveur HTTPS de Jellyfin doit utiliser.", + "LabelHttpsPortHelp": "Le numéro de port TCP pour le serveur HTTPS.", "LabelIconMaxHeight": "Hauteur maximum des icônes :", "LabelIconMaxHeightHelp": "Résolution maximum des icônes exposée par upnp:icon.", "LabelIconMaxWidth": "Largeur maximum des icônes :", @@ -635,7 +625,7 @@ "LabelLanguage": "Langue :", "LabelLineup": "Programmation :", "LabelLocalHttpServerPortNumber": "Numéro de port HTTP local :", - "LabelLocalHttpServerPortNumberHelp": "Le port TCP que le serveur HTTP de Jellyfin doit utiliser.", + "LabelLocalHttpServerPortNumberHelp": "Le numéro de port TCP pour le serveur HTTP.", "LabelLockItemToPreventChanges": "Verrouiller cet élément pour éviter de futures modifications", "LabelLoginDisclaimer": "Avertissement sur la page d'accueil :", "LabelLoginDisclaimerHelp": "Le slogan sera affiché en bas de la page de connexion.", @@ -661,7 +651,7 @@ "LabelMetadataReaders": "Lecteurs de métadonnées :", "LabelMetadataReadersHelp": "Classez vos sources locales de métadonnées préférées dans l'ordre de priorité. Le premier fichier trouvé sera lu.", "LabelMetadataSavers": "Enregistreurs de métadonnées :", - "LabelMetadataSaversHelp": "Sélectionnez un format de fichier pour l'enregistrement des métadonnées.", + "LabelMetadataSaversHelp": "Sélectionnez un format de fichier qui sera utilisé pour l'enregistrement des métadonnées.", "LabelMethod": "Méthode :", "LabelMinBackdropDownloadWidth": "Largeur minimum d'image d'arrière-plan à télécharger :", "LabelMinResumeDuration": "Temps de reprise minimum :", @@ -677,7 +667,7 @@ "LabelMovieCategories": "Catégories de films :", "LabelMoviePrefix": "Préfixe de film :", "LabelMoviePrefixHelp": "Si un préfixe est appliqué aux titres de film, précisez-le ici afin que le serveur puisse le gérer convenablement.", - "LabelMovieRecordingPath": "Chemin d'enregistrement des films (optionnel) :", + "LabelMovieRecordingPath": "Chemin d'enregistrement des films :", "LabelMusicStreamingTranscodingBitrate": "Débit du transcodage de la musique :", "LabelMusicStreamingTranscodingBitrateHelp": "Spécifiez le débit maximum pendant la diffusion de musique.", "LabelName": "Nom :", @@ -690,7 +680,7 @@ "LabelNumber": "Numéro :", "LabelNumberOfGuideDays": "Nombre de jours de données du guide à télécharger :", "LabelNumberOfGuideDaysHelp": "Télécharger plus de journées du guide permet de programmer des enregistrements plus longtemps à l'avance et de visualiser plus de contenus, mais prendra également plus de temps. Automatique permettra une sélection automatique basée sur le nombre de chaînes.", - "LabelOptionalNetworkPath": "(Optionnel) Dossier réseau partagé :", + "LabelOptionalNetworkPath": "Dossier réseau partagé :", "LabelOptionalNetworkPathHelp": "Si le dossier est partagé sur votre réseau, donner le chemin d'accès au dossier réseau peut permettre aux applications Jellyfin sur d'autres appareils d'avoir accès à ses fichiers directement. Par exemple, {0} ou {1}.", "LabelOriginalAspectRatio": "Ratio d'aspect original :", "LabelOriginalTitle": "Titre original :", @@ -735,24 +725,22 @@ "LabelReleaseDate": "Date de sortie :", "LabelRemoteClientBitrateLimit": "Limite de débit de streaming Internet (Mbps) :", "LabelRemoteClientBitrateLimitHelp": "Une limite de débit optionnelle par streaming pour les connexions hors du réseau local. Utile pour éviter que les appareils ne demandent un débit supérieur à ce que votre connexion internet peu fournir. Cela peut augmenter la charge du processeur de votre serveur pour transcoder les vidéos à la volée à un débit plus faible.", - "LabelRuntimeMinutes": "Durée (minutes) :", + "LabelRuntimeMinutes": "Durée :", "LabelSaveLocalMetadata": "Enregistrer les illustrations dans les dossiers des médias", "LabelSaveLocalMetadataHelp": "L'enregistrement des illustrations dans les dossiers des médias les placera à un endroit où elles seront facilement modifiables.", "LabelScheduledTaskLastRan": "Dernière exécution {0}, durée {1}.", "LabelScreensaver": "Économiseur d'écran :", "LabelSeasonNumber": "Numéro de saison :", - "LabelSecureConnectionsMode": "Mode de connexion sécurisée :", "LabelSelectFolderGroups": "Grouper automatiquement le contenu des dossiers suivants dans des catégories telles que Films, Musique et TV :", "LabelSelectFolderGroupsHelp": "Les dossiers qui ne sont pas cochés seront affichés tels quels, avec leur propre vue.", "LabelSelectUsers": "Sélectionner des utilisateurs :", "LabelSelectVersionToInstall": "Sélectionner la version à installer :", "LabelSendNotificationToUsers": "Envoyer la notification à :", "LabelSerialNumber": "Numéro de série", - "LabelSeriesRecordingPath": "Chemin d'enregistrement des séries (optionnel) :", + "LabelSeriesRecordingPath": "Chemin d'enregistrement des séries :", "LabelServerHost": "Nom d'hôte :", "LabelServerHostHelp": "192.168.1.1:8096 ou https://monserveur.com", "LabelSimultaneousConnectionLimit": "Limite de flux simultanée :", - "LabelSkin": "Habillage :", "LabelSkipBackLength": "Durée des sauts en arrière :", "LabelSkipForwardLength": "Durée des sauts en avant :", "LabelSkipIfAudioTrackPresent": "Sauter si la piste audio correspond à la langue de téléchargement", @@ -764,7 +752,6 @@ "LabelSortBy": "Trier par :", "LabelSortOrder": "Ordre de tri :", "LabelSortTitle": "Titre de tri :", - "LabelSoundEffects": "Effets sonores :", "LabelSource": "Source :", "LabelSpecialSeasonsDisplayName": "Nom d'affichage de la saison spécial :", "LabelSportsCategories": "Catégories des sports :", @@ -818,18 +805,16 @@ "LabelXDlnaDoc": "Doc X-DLNA :", "LabelXDlnaDocHelp": "Détermine le contenu de l'élément X_DLNADOC dans l'espace de nom urn:schemas-dlna-org:device-1-0.", "LabelYear": "Année :", - "LabelYourFirstName": "Votre prénom :", "LabelYoureDone": "Vous avez terminé !", "LabelZipCode": "Code postal :", "LabelffmpegPath": "Chemin vers FFmpeg :", - "LabelffmpegPathHelp": "Le chemin d'accès vers l'application FFmpeg, ou un dossier contenant FFmpeg.", + "LabelffmpegPathHelp": "Le chemin d'accès vers l'application FFmpeg ou un dossier contenant FFmpeg.", "LanNetworksHelp": "Liste des adresses IP ou des entrées IP/masque de réseau séparées par des virgules pour les réseaux qui seront considérés comme locaux lors de l'application des restrictions de bande passante. Si elle est définie, toutes les autres adresses IP seront considérées sur le réseau externe et seront soumises aux restrictions de bande passante externe. Si elle est vide, seul le sous-réseau du serveur est considéré comme se trouvant sur le réseau local.", "Large": "Grand", "LatestFromLibrary": "{0}, ajouts récents", "LearnHowYouCanContribute": "Voir comment vous pouvez contribuer.", "LibraryAccessHelp": "Sélectionnez les médiathèques à partager avec cet utilisateur. Les administrateurs pourront modifier tous les dossiers en utilisant le gestionnaire de métadonnées.", "Like": "J'aime", - "LinksValue": "Liens: {0}", "List": "Liste", "Live": "En direct", "LiveBroadcasts": "Diffusions en direct", @@ -879,14 +864,12 @@ "MessageCreateAccountAt": "Créer un compte sur {0}", "MessageDeleteTaskTrigger": "Voulez-vous vraiment supprimer ce déclencheur de tâche ?", "MessageDirectoryPickerBSDInstruction": "Sur BSD, vous devrez peut-être configurer le stockage de votre jail FreeNAS pour autoriser Jellyfin à y accéder.", - "MessageDirectoryPickerInstruction": "Les chemins réseaux peuvent être saisis manuellement dans le cas où l'utilisation du bouton Réseau ne parvient pas à localiser vos appareils. Par exemple, {0} ou {1}.", "MessageDirectoryPickerLinuxInstruction": "Pour Linux sur Arch Linux, CentOS, Debian, Fedora, openSUSE ou Ubuntu, vous devez au moins autoriser l'accès en lecture à vos répertoires de stockage pour l'utilisateur de service .", "MessageDownloadQueued": "Téléchargement mis en file d'attente.", "MessageEnablingOptionLongerScans": "Activer cette option peut accroître la durée d'actualisation de la médiathèque.", "MessageFileReadError": "Une erreur est survenue lors de la lecture du fichier. Veuillez réessayer.", "MessageForgotPasswordFileCreated": "Le fichier suivant a été créé sur votre serveur et contient les instructions sur la procédure à suivre :", "MessageForgotPasswordInNetworkRequired": "Veuillez réessayer à partir de votre réseau local pour démarrer la procédure de réinitialisation du mot de passe.", - "MessageInstallPluginFromApp": "Cette extension doit-être installée depuis l'application dans laquelle vous voulez l'utiliser.", "MessageInvalidForgotPasswordPin": "Le code PIN saisi est invalide ou a expiré. Veuillez réessayer.", "MessageInvalidUser": "Nom d'utilisateur ou mot de passe incorrect. Réessayez.", "MessageItemSaved": "Élément enregistré.", @@ -936,8 +919,8 @@ "NextUp": "A Suivre", "No": "Non", "NoNewDevicesFound": "Aucun nouvel appareil détecté. Pour en ajouter un, fermez cette fenêtre et saisissez les informations de l'appareil manuellement.", - "NoNextUpItemsMessage": "Aucun élément trouvé. Commencez à regarder vos émissions !", - "NoPluginConfigurationMessage": "Cette extension n'a aucun paramètre à configurer.", + "MessageNoNextUpItems": "Aucun élément trouvé. Commencez à regarder vos émissions !", + "MessageNoPluginConfiguration": "Cette extension n'a aucun paramètre à configurer.", "NoSubtitleSearchResultsFound": "Aucun résultat trouvé.", "NoSubtitles": "Pas de sous-titres", "NoSubtitlesHelp": "Les sous-titres ne seront pas chargés par défaut. Ils peuvent toujours être activés manuellement pendant la lecture.", @@ -958,7 +941,7 @@ "OptionAllowLinkSharingHelp": "Seules les pages Web contenant des informations de médias sont partagés. Les fichiers multimédias ne sont jamais partagés publiquement. Les partages sont limités dans le temps et expirent après {0} jours.", "OptionAllowManageLiveTv": "Autoriser la gestion des enregistrements de TV en direct", "OptionAllowMediaPlayback": "Autoriser la lecture de média", - "OptionAllowMediaPlaybackTranscodingHelp": "Limiter l'accès au transcodage peut entraîner des échecs de lecture dans les applications Jellyfin en raison de formats de média non pris en charge.", + "OptionAllowMediaPlaybackTranscodingHelp": "Limiter l'accès au transcodage peut entraîner des échecs de lecture dans les clients en raison de formats de média non pris en charge.", "OptionAllowRemoteControlOthers": "Autoriser le contrôle à distance des autres utilisateurs", "OptionAllowRemoteSharedDevices": "Autoriser le contrôle à distance des appareils partagés", "OptionAllowRemoteSharedDevicesHelp": "Les appareils DLNA sont considérés comme partagés tant qu'un utilisateur ne commence pas à les contrôler.", @@ -990,7 +973,7 @@ "OptionDatePlayed": "Date de lecture", "OptionDescending": "Décroissant", "OptionDisableUser": "Désactiver cet utilisateur", - "OptionDisableUserHelp": "Si désactivé, le serveur n'autorisera pas de connexion de cet utilisateur. Les connexions existantes seront interrompues.", + "OptionDisableUserHelp": "Le serveur n'autorisera pas de connexion de cet utilisateur. Les connexions existantes seront interrompues.", "OptionDislikes": "Pas aimés", "OptionDisplayFolderView": "Afficher une vue de dossiers pour montrer les dossiers multimédia en intégralité", "OptionDisplayFolderViewHelp": "Afficher les dossier au côté de votre médiathèque. Cela peut être utile si vous souhaitez avoir une vue complète des dossiers.", @@ -999,7 +982,7 @@ "OptionDownloadBoxImage": "Boîtier", "OptionDownloadDiscImage": "Disque", "OptionDownloadImagesInAdvance": "Télécharger les images en avance", - "OptionDownloadImagesInAdvanceHelp": "Par défaut, la plupart des images sont téléchargées seulement lorsqu'une application Jellyfin le demande. Sélectionnez cette option pour télécharger toutes les images à l'avance, lorsqu'un nouveau média est importé. Cela peut allonger significativement la durée d'actualisation de la médiathèque.", + "OptionDownloadImagesInAdvanceHelp": "Par défaut, la plupart des images sont téléchargées seulement lorsqu'un client le demande. Sélectionnez cette option pour télécharger toutes les images à l'avance, lorsqu'un nouveau média est importé. Cela peut allonger significativement la durée d'actualisation de la médiathèque.", "OptionDownloadPrimaryImage": "Principal", "OptionDownloadThumbImage": "Vignette", "OptionDvd": "DVD", @@ -1030,7 +1013,7 @@ "OptionHlsSegmentedSubtitles": "Sous-titres segmentés HLS", "OptionHomeVideos": "Photos", "OptionIgnoreTranscodeByteRangeRequests": "Ignore les requêtes de transcodage de plage d'octets", - "OptionIgnoreTranscodeByteRangeRequestsHelp": "Si l'option est activée, ces requêtes seront honorées mais l'en-tête de plage d'octets sera ignoré.", + "OptionIgnoreTranscodeByteRangeRequestsHelp": "Ces requêtes seront honorées mais l'en-tête de plage d'octets sera ignoré.", "OptionImdbRating": "Note IMDb", "OptionLikes": "Aimés", "OptionMax": "Maximum", @@ -1043,9 +1026,9 @@ "OptionOnInterval": "Par intervalle", "OptionParentalRating": "Classification parentale", "OptionPlainStorageFolders": "Afficher tous les dossiers en tant que simples dossiers de stockage", - "OptionPlainStorageFoldersHelp": "Tous les répertoires seront affichés dans le DIDL en tant que \"object.container.storageFolder\" au lieu de formats plus spécifiques comme, par exemple \"object.container.person.musicArtist\".", + "OptionPlainStorageFoldersHelp": "Tous les répertoires seront affichés dans le DIDL en tant que \"object.container.storageFolder\" au lieu de formats plus spécifiques comme, par exemple \"object.container.person.musicArtist\".", "OptionPlainVideoItems": "Afficher les vidéos en tant que simples éléments vidéos", - "OptionPlainVideoItemsHelp": "Si activé, toutes les vidéos seront affichées dans le DIDL en tant que \"object.item.videoItem\" au lieu de formats plus spécifiques comme, par exemple \"object.item.videoItem.movie\".", + "OptionPlainVideoItemsHelp": "Toutes les vidéos seront affichées dans le DIDL en tant que \"object.item.videoItem\" au lieu de formats plus spécifiques comme, par exemple \"object.item.videoItem.movie\".", "OptionPlayCount": "Nombre de lectures", "OptionPlayed": "Lu", "OptionPremiereDate": "Date de la première", @@ -1086,7 +1069,7 @@ "PasswordMatchError": "Le mot de passe et sa confirmation doivent correspondre.", "PasswordResetComplete": "Le mot de passe a été réinitialisé.", "PasswordResetConfirmation": "Êtes-vous sûr de vouloir réinitialiser le mot de passe ?", - "PasswordResetHeader": "Réinitialiser le mot de passe", + "HeaderResetPassword": "Réinitialiser le mot de passe", "PasswordSaved": "Mot de passe sauvegardé.", "People": "Personnes", "PerfectMatch": "Correspondance parfaite", @@ -1107,10 +1090,9 @@ "PleaseEnterNameOrId": "Veuillez saisir un nom ou un identifiant externe.", "PleaseRestartServerName": "Veuillez redémarrer le serveur Jellyfin - {0}.", "PleaseSelectTwoItems": "Veuillez sélectionner au moins deux éléments.", - "PluginInstalledMessage": "Cette extension a été installée avec succès. Le serveur Jellyfin doit être redémarré afin que les modifications soient prises en compte.", + "MessagePluginInstalled": "Cette extension a été installée avec succès. Le serveur Jellyfin doit être redémarré afin que les modifications soient prises en compte.", "PreferEmbeddedTitlesOverFileNames": "Préférer les titres intégrés aux médias aux noms des fichiers", "PreferEmbeddedTitlesOverFileNamesHelp": "Cela détermine le titre affiché par défaut quand il n'y a pas de métadonnées en ligne ou locales disponibles.", - "PreferredNotRequired": "Préférée, mais pas obligatoire", "Premieres": "Inédits", "Previous": "Précédent", "Primary": "Principal", @@ -1118,7 +1100,6 @@ "ProductionLocations": "Sites de production", "Programs": "Programmes", "Quality": "Qualité", - "QueueAllFromHere": "Tout mettre en file d'attente à partir d'ici", "Raised": "Élevé", "Rate": "Débit", "RecentlyWatched": "Lu récemment", @@ -1129,11 +1110,11 @@ "Record": "Enregistrer", "RecordSeries": "Enregistrer la série", "RecordingCancelled": "Enregistrement annulé.", - "RecordingPathChangeMessage": "Modifier votre dossier d'enregistrement ne déplacera pas les enregistrements existants de l'ancien emplacement vers le nouveau. Vous devrez les déplacer manuellement si vous le souhaitez.", + "MessageChangeRecordingPath": "Modifier votre dossier d'enregistrement ne déplacera pas les enregistrements existants de l'ancien emplacement vers le nouveau. Vous devrez les déplacer manuellement si vous le souhaitez.", "RecordingScheduled": "Enregistrement planifié.", "Recordings": "Enregistrements", "Refresh": "Actualiser", - "RefreshDialogHelp": "Les métadonnées sont actualisées en fonction des paramètres et des services Internet qui sont activés dans le tableau de bord du serveur Jellyfin.", + "RefreshDialogHelp": "Les métadonnées sont actualisées en fonction des paramètres et des services Internet qui sont activés dans le tableau de bord.", "RefreshMetadata": "Actualiser les métadonnées", "RefreshQueued": "Actualisation mise en file d'attente.", "ReleaseDate": "Date de sortie", @@ -1147,10 +1128,8 @@ "RepeatOne": "Répéter un média", "ReplaceAllMetadata": "Remplacer toutes les métadonnées", "ReplaceExistingImages": "Remplacer les images existantes", - "RequiredForAllRemoteConnections": "Obligatoire pour toutes les connexions externes", "ResumeAt": "Reprendre à {0}", "Rewind": "Rembobiner", - "RunAtStartup": "Exécuter au démarrage", "Runtime": "Durée", "Saturday": "Samedi", "Save": "Sauvegarder", @@ -1235,7 +1214,6 @@ "TabParentalControl": "Contrôle Parental", "TabPassword": "Mot de passe", "TabPlayback": "Lecture", - "TabPlaylist": "Liste de lecture", "TabPlaylists": "Listes de lecture", "TabProfile": "Profil", "TabProfiles": "Profils", @@ -1271,7 +1249,7 @@ "TvLibraryHelp": "Consultez le {0}guide de nommage des émissions{1}.", "Uniform": "Uniforme", "UninstallPluginConfirmation": "Êtes-vous sûr de vouloir désinstaller {0} ?", - "UninstallPluginHeader": "Désinstaller Plug-in", + "HeaderUninstallPlugin": "Désinstaller Plug-in", "Unmute": "Rétablir le son", "Unplayed": "Non lu", "Unrated": "Non noté", @@ -1300,9 +1278,7 @@ "ValueTimeLimitSingleHour": "Limite de temps : 1 heure", "ValueVideoCodec": "Codec Vidéo : {0}", "Vertical": "Verticale", - "VideoRange": "Gamme vidéo", "ViewAlbum": "Voir l'album", - "ViewArtist": "Voir l'artiste", "ViewPlaybackInfo": "Voir les informations de lecture", "Watched": "Lu", "Wednesday": "Mercredi", @@ -1338,7 +1314,6 @@ "Horizontal": "Horizontal", "Images": "Images", "LabelAudio": "Audio", - "LabelVersionNumber": "Version {0}", "LeaveBlankToNotSetAPassword": "Laissez vide pour ne pas définir de mot de passe.", "Logo": "Logo", "MediaInfoCodec": "Codec", @@ -1388,19 +1363,16 @@ "DashboardVersionNumber": "Version : {0}", "DashboardServerName": "Serveur : {0}", "LabelWeb": "Web :", - "MediaInfoSoftware": "Logiciel", "MediaInfoStreamTypeAudio": "Audio", "MediaInfoStreamTypeData": "Données", "MediaInfoStreamTypeSubtitle": "Sous-titres", "MediaInfoStreamTypeVideo": "Video", "AuthProviderHelp": "Sélectionner un fournisseur d'authentification pour authentifier le mot de passe de cet utilisateur.", - "PasswordResetProviderHelp": "Choisissez un Fournisseur de réinitialisation de mot de passe à utiliser lorsqu'un utilisateur demande la réinitialisation de son mot de passe", + "PasswordResetProviderHelp": "Choisissez un fournisseur de réinitialisation de mot de passe à utiliser lorsqu'un utilisateur demande la réinitialisation de son mot de passe.", "HeaderHome": "Accueil", "LabelUserLoginAttemptsBeforeLockout": "Tentatives de connexion échouées avant que l'utilisateur ne soit verrouillé :", "DashboardOperatingSystem": "Système d'Exploitation: {0}", "DashboardArchitecture": "Architecture : {0}", - "LaunchWebAppOnStartup": "Démarrer l'interface web dans mon navigateur quand le serveur est démarré", - "LaunchWebAppOnStartupHelp": "Ouvrir l'application dans votre navigateur internet quand le serveur est démarré pour la première fois. Cela ne se produira pas quand le serveur redémarre.", "MediaInfoStreamTypeEmbeddedImage": "Miniature", "MessageNoCollectionsAvailable": "Les collections vous permettent de profiter de groupes personnalisés de Films, Séries et d'Albums. Cliquer sur le bouton + pour commencer à créer des collections.", "MessageNoServersAvailable": "Aucun serveur n'a été trouvé en utilisant la recherche automatique de serveur.", @@ -1458,7 +1430,6 @@ "LabelPlayerDimensions": "Dimension du lecteur :", "LabelDroppedFrames": "Images perdues :", "LabelCorruptedFrames": "Images corrompues :", - "CopyStreamURLError": "Une erreur est survenue lors de la copie de l'URL.", "AskAdminToCreateLibrary": "Demander à un administrateur de créer une médiathèque.", "AllowFfmpegThrottlingHelp": "Quand le transcodage ou le remultiplexage est suffisamment en avant de la position de lecture, le processus se mettra en pause afin d’économiser des ressources. Plus utile lors d’une lecture continue. À désactiver en cas de problèmes de lecture.", "AllowFfmpegThrottling": "Adapter la vitesse du transcodage", @@ -1469,9 +1440,7 @@ "ClientSettings": "Paramètres Client", "Track": "Piste", "Season": "Saison", - "ReleaseGroup": "Groupe de Parution", "Person": "Personne", - "OtherArtist": "Autre Artiste", "Movie": "Film", "Episode": "Épisode", "BoxSet": "Coffret", @@ -1497,7 +1466,6 @@ "LabelLibraryPageSize": "Taille de la page de la médiathèque :", "LabelLibraryPageSizeHelp": "Définit la quantité d'éléments à afficher sur une page de médiathèque. Définir à 0 afin de désactiver la pagination.", "UnsupportedPlayback": "Jellyfin ne peut pas décoder du contenu protégé par un système de gestion des droits numériques, mais une tentative de lecture sera effectuée sur tout le contenu, y compris les titres protégés. Certains fichiers peuvent apparaître complètement noir, du fait de protections ou de fonctionnalités non supportées, comme les titres interactifs.", - "MessageUnauthorizedUser": "Vous n'êtes pas autorisé à accéder au serveur pour le moment. Veuillez contacter l'administrateur de votre serveur pour plus d'informations.", "ButtonTogglePlaylist": "Liste de lecture", "ButtonToggleContextMenu": "Plus", "Filter": "Filtre", @@ -1505,7 +1473,7 @@ "HeaderFavoritePlaylists": "Listes de lecture favorites", "TabDVR": "DVR", "LabelChromecastVersion": "Version de Chromecast", - "LabelEnableHttpsHelp": "Autorise le serveur à écouter les requêtes HTTPS sur le port configuré. Un certificat valide doit être configuré pour permettre ce mode de fonctionnement.", + "LabelEnableHttpsHelp": "Écouter les requêtes HTTPS sur le port configuré. Un certificat valide doit être fourni pour permettre ce mode de fonctionnement.", "LabelEnableHttps": "Activer HTTPS", "HeaderServerAddressSettings": "Paramètres adresses serveur", "HeaderRemoteAccessSettings": "Paramètres d'accès distant", @@ -1515,7 +1483,6 @@ "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", "EnableDetailsBanner": "Bannière des détails", "EnableDetailsBannerHelp": "Affichez une image de bannière en haut de la page de détails de l'article.", @@ -1551,8 +1518,8 @@ "MessageSyncPlayErrorAccessingGroups": "Une erreur s'est produite pendant l'accès à la liste de groupes.", "ShowMore": "Voir plus", "ShowLess": "Voir moins", - "EnableBlurhashHelp": "Les images qui sont encore en cours de chargement seront remplacées par une image générique floue", - "EnableBlurhash": "Utilise des images génériques floues à la place des images", + "EnableBlurHashHelp": "Les images qui sont encore en cours de chargement seront remplacées par une image générique floue.", + "EnableBlurHash": "Utilise des images génériques floues à la place des images", "ButtonCast": "Diffuser", "ButtonSyncPlay": "SyncPlay", "TabRepositories": "Dépôts", @@ -1572,5 +1539,8 @@ "StopPlayback": "Arrêter", "ButtonPlayer": "Démarrer", "Writers": "Écrivains", - "ViewAlbumArtist": "Voir l'album de l'artiste" + "ViewAlbumArtist": "Voir l'album de l'artiste", + "PreviousTrack": "Revenir au précédent", + "NextTrack": "Passer au prochain", + "LabelUnstable": "Instable" } diff --git a/src/strings/gsw.json b/src/strings/gsw.json index d7cd980b80..bf9852e512 100644 --- a/src/strings/gsw.json +++ b/src/strings/gsw.json @@ -20,18 +20,12 @@ "FolderTypeTvShows": "TV", "Friday": "Friitig", "HeaderAddUser": "Erstell en User", - "HeaderAutomaticUpdates": "Automatischi Updates", "HeaderDeviceAccess": "Grät Zuegriff", "HeaderEasyPinCode": "Eifache Pin Code", "HeaderFrequentlyPlayed": "Vell gspellt", "HeaderLatestEpisodes": "Letschti Episode", "HeaderLatestMovies": "Letschti Film", - "HeaderLatestSongs": "Letschti Songs", - "HeaderLatestTrailers": "Letschti Trailer", - "HeaderManagement": "Verwaltig", "HeaderNextUp": "Als Nächstes", - "HeaderNowPlaying": "Jetz am spelle", - "HeaderParentalRating": "Parental Rating", "HeaderPaths": "Pfad", "HeaderRecentlyPlayed": "Erst grad dezue gfüegt", "HeaderSeries": "Series", @@ -54,7 +48,6 @@ "LabelSaveLocalMetadataHelp": "Wennd Bilder und Metadate direkt i d'Medieordner speicherisch, chasch sie eifach weder finde und au bearbeite.", "LabelSelectUsers": "Wähl User:", "LabelTimeLimitHours": "Ziitlimit (h):", - "LabelYourFirstName": "Din Vorname:", "LabelYoureDone": "Du besch fertig!", "LibraryAccessHelp": "Wähl en Medieordner us, um de mit dem User z'teile. Administratore werded immer d'Möglichkeit ha alli Verzeichnis mitm Metadate Manager z'bearbeite.", "MaxParentalRatingHelp": "Date mit enere höhere Kindersicherig werded vo dem User versteckt.", @@ -63,7 +56,7 @@ "Monday": "Mäntig", "MoreUsersCanBeAddedLater": "Meh User chönt spöter im Dashboard hinzuegfüegt werde.", "NewCollectionNameExample": "Biispell: Star Wars Sammlig", - "NoNextUpItemsMessage": "Nix da. Fang mal a Serie luege!", + "MessageNoNextUpItems": "Nix da. Fang mal a Serie luege!", "OptionAlbumArtist": "Album-Artist", "OptionAscending": "Ufstiigend", "OptionBluray": "BluRay", @@ -117,7 +110,6 @@ "TabNetworks": "Studios", "TabNotifications": "Mitteilige", "TabPassword": "Passwort", - "TabPlaylist": "Playliste", "TabProfile": "Profil", "TabProfiles": "Profil", "TabShows": "Serie", @@ -147,22 +139,13 @@ "HeaderFavoriteShows": "Lieblingsserien", "HeaderFavoriteSongs": "Lieblingslieder", "HeaderLiveTV": "Live-Fernseh", - "HeaderRecordingGroups": "Ufnahmegruppe", - "LabelRunningTimeValue": "Loufziit: {0}", - "MessageApplicationUpdated": "Jellyfin Server esch aktualisiert worde", - "MessageNamedServerConfigurationUpdatedWithValue": "De Serveriistöuigsberiich {0} esch aktualisiert worde", "Movies": "Film", "Photos": "Fotis", "Playlists": "Wedergabeliste", - "PluginInstalledWithName": "{0} esch installiert worde", - "PluginUninstalledWithName": "{0} esch deinstalliert worde", - "PluginUpdatedWithName": "{0} esch updated worde", - "ProviderValue": "Aabieter: {0}", "Shows": "Serie", "Songs": "Lieder", "Sync": "Synchronisation", "ValueSpecialEpisodeName": "Extra - {0}", - "VersionNumber": "Version {0}", "Absolute": "Absolut", "Actor": "Schauspieler", "AccessRestrictedTryAgainLater": "Zuegriff isch momentan beschränkt. Probiers bitte spöter nomol.", diff --git a/src/strings/he.json b/src/strings/he.json index 3231737657..3db7c86f26 100644 --- a/src/strings/he.json +++ b/src/strings/he.json @@ -15,7 +15,7 @@ "AttributeNew": "חדש", "Backdrops": "תמונות רקע", "BirthLocation": "מיקום לידה", - "BrowsePluginCatalogMessage": "עבור לקטלוג התוספים לראות אילו זמינים.", + "MessageBrowsePluginCatalog": "עבור לקטלוג התוספים לראות אילו זמינים.", "ButtonAdd": "הוסף", "ButtonAddUser": "הוסף משתמש", "ButtonCancel": "בטל", @@ -53,7 +53,7 @@ "ConfirmDeletion": "אשר מחיקה", "Continuing": "ממשיך", "CustomDlnaProfilesHelp": "צור פרופיל מותאם אישית למכשיר חדש או לעקיפת פרופיל מערכת.", - "DefaultErrorMessage": "אירעה שגיאה בעיבוד הבקשה. בבקשה נסה שוב מאוחר יותר.", + "ErrorDefault": "אירעה שגיאה בעיבוד הבקשה. בבקשה נסה שוב מאוחר יותר.", "Delete": "מחק", "DeleteImage": "מחק תמונה", "DeleteImageConfirmation": "האם אתה בטוח שברצונך למחוק תמונה זו?", @@ -88,7 +88,6 @@ "HeaderAddToPlaylist": "הוסף לרשימת ניגון", "HeaderAddUser": "הוסף משתמש", "HeaderAdditionalParts": "חלקים נוספים", - "HeaderAutomaticUpdates": "עידכונים אוטומטים", "HeaderCancelRecording": "ביטול הקלטה", "HeaderCancelSeries": "בטל סדרה", "HeaderCastCrew": "שחקנים וצוות", @@ -151,8 +150,6 @@ "LabelAirsBeforeSeason": "באוויר לפני העונה:", "LabelAlbum": "אלבום:", "LabelAlbumArtists": "אלבום אומנים:", - "LabelAllowServerAutoRestart": "אפשר לשרת להתחיל אוטומטית כדי לאפשר את העידכונים", - "LabelAllowServerAutoRestartHelp": "השרת יתחיל מחדש רק כשאר אין משתמשים פעילים", "LabelArtists": "אומנים:", "LabelArtistsHelp": "הפרד מרובים באמצעות;", "LabelAudioLanguagePreference": "שפת קול מועדפת:", @@ -266,7 +263,6 @@ "LabelUser": "משתמש:", "LabelUserLibrary": "ספריית משתמש:", "LabelYear": "שנה:", - "LabelYourFirstName": "שמך הפרטי:", "LabelYoureDone": "סיימת!", "LibraryAccessHelp": "בחר את ספריות המדיה אשר ישותפו עם המשתמש. מנהלים יוכלו לערות את כל התיקיות באמצעות עורך המידע.", "Like": "אוהב", @@ -298,7 +294,7 @@ "NewEpisodes": "פרקים חדשים", "NewEpisodesOnly": "פרקים חדשים בלבד", "News": "חדשות", - "NoNextUpItemsMessage": "לא נמצא כלום. התחלת לצפות בסדרות שלך!", + "MessageNoNextUpItems": "לא נמצא כלום. התחלת לצפות בסדרות שלך!", "NoSubtitleSearchResultsFound": "לא נמצאו תוצאות.", "Option3D": "תלת מימד", "OptionAdminUsers": "מנהלים", @@ -393,7 +389,6 @@ "Premieres": "בכורות", "Producer": "במאי", "ProductionLocations": "מיקומי ייצור", - "QueueAllFromHere": "הוסף הכל מכאן לתור", "RecentlyWatched": "נצפה לאחרונה", "Record": "הקלט", "RecordSeries": "הקלט סדרה", @@ -464,7 +459,6 @@ "TabNetworks": "רשתות", "TabNotifications": "התראות", "TabPassword": "סיסמא", - "TabPlaylist": "רשימת נגינה", "TabProfile": "פרופיל", "TabProfiles": "פרופילים", "TabRecordings": "הקלטות", @@ -484,7 +478,7 @@ "TrackCount": "שירים {0}", "Tuesday": "שלישי", "UninstallPluginConfirmation": "האם אתה בטוח שברצונך להסיר {0}?", - "UninstallPluginHeader": "הסר תוסף", + "HeaderUninstallPlugin": "הסר תוסף", "Unrated": "אין דירוג", "ValueAlbumCount": "{0} אלבומים", "ValueDiscNumber": "דיסק {0}", @@ -502,7 +496,6 @@ "ValueSongCount": "{0} שירים", "ValueSpecialEpisodeName": "מיוחד- {0}", "ViewAlbum": "צפה באלבום", - "ViewArtist": "צפה באמן", "Wednesday": "רביעי", "WelcomeToProject": "ברוך הבא ל Jellyfin!", "Writer": "כותב", @@ -549,7 +542,6 @@ "AllowOnTheFlySubtitleExtraction": "אפשר חילוץ כתוביות בזמן אמת", "AllowHWTranscodingHelp": "אפשר למלקט לקודד הזרמות בזמן אמת. זה עשוי לעזור בהפחתת הקידוד שנעשה ע\"י השרת.", "AllComplexFormats": "כל הפורמטים המורכבים (ASS, SSA, VOBSUB, PGS, SUB/IDX)", - "AddItemToCollectionHelp": "הוסף חפצים לאוסף על ידי חיפושם ושימוש בתפריט הלחצן הימני או לחצן התפריט כדי להוסיפם לאוסף.", "Songs": "שירים", "Shows": "סדרות", "DownloadsValue": "{0} הורדות", @@ -579,7 +571,6 @@ "ButtonParentalControl": "בקרת הורים", "ButtonNetwork": "רשת", "ButtonMore": "עוד", - "ButtonLearnMore": "למד עוד", "ButtonInfo": "מידע", "ButtonHome": "בית", "ButtonHelp": "עזרה", @@ -676,7 +667,7 @@ "ExtraLarge": "גדול מאוד", "ExitFullscreen": "צא ממסך מלא", "EveryNDays": "כל {0} ימים", - "ErrorMessageStartHourGreaterThanEnd": "שעת הסיום חייבת להיות לאחר שעת ההתחלה.", + "ErrorStartHourGreaterThanEnd": "שעת הסיום חייבת להיות לאחר שעת ההתחלה.", "Episodes": "פרקים", "EnableThemeSongsHelp": "נגן שירי פתיח ברגע בעת העיון בספרייה.", "ThemeSongs": "שירי פתיח", @@ -696,13 +687,11 @@ "DirectPlaying": "ניגון ישיר", "DetectingDevices": "מזהה מכשירים", "DefaultMetadataLangaugeDescription": "אלו הגדרות ברירת המחדל שלך וניתן להתאים אותן לכל ספרייה בנפרד.", - "CopyStreamURLError": "אירעה שגיאה במהלך העתקת הקישור.", "CopyStreamURLSuccess": "הקישור הועתק בהצלחה.", "CopyStreamURL": "העתק קישור זרם", "Connect": "התחבר", "ConfirmEndPlayerSession": "‫האם לכבות את Jellyfin על {0}?", "CommunityRating": "דירוג קהילה", - "ButtonViewWebsite": "צפה באתר האינטרנט", "ButtonWebsite": "אתר אינטרנט", "ButtonUp": "למעלה", "ButtonSubmit": "שלח", @@ -727,7 +716,6 @@ "ButtonDownload": "הורדה", "ButtonDown": "למטה", "ButtonChangeServer": "החלף שרת", - "AutoBasedOnLanguageSetting": "אוטומטי (לפי הגדרות שפה)", "ButtonBack": "חזרה", "OptionBanner": "באנר", "ButtonAudioTracks": "רצועות שמע", @@ -740,7 +728,6 @@ "BoxRear": "מארז (מאחור)", "BookLibraryHelp": "ניתן להוסיף ספרים מוקלטים וספרים כתובים. עיינו {0}במדריך מתן שמות לספרים{1}.", "Desktop": "שולחן עבודה", - "MessageUnauthorizedUser": "אין לך גישה לשרת ברגע זה. אנא צור קשר עם מנהל השרת למידע נוסף.", "MessageDeleteTaskTrigger": "האם אתה בטוח שברצונך למחוק את מפעיל המשימה הזה?", "LastSeen": "נראה לאחרונה ב-{0}", "PersonRole": "כ-{0}", @@ -768,7 +755,6 @@ "Raised": "מורם", "LabelSpecialSeasonsDisplayName": "שם תצוגת \"עונה מיוחדת\":", "LabelSource": "מקור:", - "LabelSoundEffects": "אפקטי סאונד:", "ButtonTogglePlaylist": "רשימת ניגון", "ButtonToggleContextMenu": "עוד", "ButtonSyncPlay": "SyncPlay", diff --git a/src/strings/hi-in.json b/src/strings/hi-in.json index 48b82c601f..e7e45dfa20 100644 --- a/src/strings/hi-in.json +++ b/src/strings/hi-in.json @@ -5,7 +5,6 @@ "LabelFinish": "समाप्त", "LabelNext": "अगला", "LabelPrevious": "पिछला", - "LabelYourFirstName": "आपका प्रथम नामः", "LabelYoureDone": "आपने पूरा कर लिया है!", "MoreUsersCanBeAddedLater": "अधिक उपयोगकर्ताओं को बाद में डैशबोर्ड के अंतर्गत जोड़ा जा सकता है।", "TellUsAboutYourself": "हमें अपने बारे में बताएं", @@ -43,7 +42,6 @@ "ButtonMore": "अधिक", "ButtonManualLogin": "मैनुअल लॉगिन", "ButtonLibraryAccess": "पुस्तकालय का उपयोग", - "ButtonLearnMore": "और अधिक जानें", "ButtonInfo": "जानकारी", "ButtonHome": "घर", "ButtonHelp": "मदद", @@ -86,7 +84,6 @@ "Banner": "झंडा", "Backdrops": "पृष्ठभूमि", "Backdrop": "पृष्ठभूमि", - "AutoBasedOnLanguageSetting": "ऑटो (भाषा सेटिंग के आधार पर)", "Auto": "ऑटो", "AuthProviderHelp": "इस उपयोगकर्ता के पासवर्ड को प्रमाणित करने के लिए एक प्रमाणीकरण प्रदाता का उपयोग करें।", "Audio": "नया", @@ -112,9 +109,8 @@ "AlbumArtist": "चित्राधार कलाकार", "AllowOnTheFlySubtitleExtraction": "मक्खी पर उपशीर्षक निष्कर्षण की अनुमति दें", "Album": "एल्बम", - "AddItemToCollectionHelp": "उनके लिए खोज करके संग्रह में आइटम जोड़ें और उन्हें संग्रह में जोड़ने के लिए उनके राइट-क्लिक या टैप मेनू का उपयोग करें।", "ButtonSyncPlay": "SyncPlay", - "BrowsePluginCatalogMessage": "उपलब्ध प्लगिन्स देखने के लिए हमारे कैटलॉग को ब्राउज़ करें।", + "MessageBrowsePluginCatalog": "उपलब्ध प्लगिन्स देखने के लिए हमारे कैटलॉग को ब्राउज़ करें।", "Browse": "ब्राउज़", "BoxSet": "बॉक्स सेट", "BurnSubtitlesHelp": "निर्धारित करता है कि वीडियो ट्रांसकोडिंग करते समय सर्वर को उपशीर्षक बर्न-इन करना चाहिए। इससे बचने से प्रदर्शन में बहुत सुधार होगा। छवि आधारित उपशीर्षक (VOBSUB, PGS, SUB, IDX, …) एवं ASS अथवा SSA जैसे उपशीर्षक बर्न-इन करने के लिए ऑटो का चयन करें।" diff --git a/src/strings/hr.json b/src/strings/hr.json index f7f6978d39..622df7775e 100644 --- a/src/strings/hr.json +++ b/src/strings/hr.json @@ -1,7 +1,6 @@ { "Actor": "Glumac", "Add": "Dodaj", - "AddItemToCollectionHelp": "Pretraživanjem stavaka i korištenjem desnog klika ili izbornika dodavanja u kolekciju možete ih dodati u kolekciju.", "AddToCollection": "Dodaj u kolekciju", "AddToPlaylist": "Dodaj u popis", "AdditionalNotificationServices": "Pretražite katalog dodataka kako bi instalirali dodatne servise za obavijesti.", @@ -16,7 +15,7 @@ "BirthDateValue": "Rođen: {0}", "BirthLocation": "Lokacija rođenja", "BirthPlaceValue": "Mjesto rođenja: {0}", - "BrowsePluginCatalogMessage": "Pregledajte dostupne dodatke u našem katalogu.", + "MessageBrowsePluginCatalog": "Pregledajte dostupne dodatke u našem katalogu.", "ButtonAdd": "Dodaj", "ButtonAddMediaLibrary": "Dodaj medijsku bibilioteku", "ButtonAddScheduledTaskTrigger": "Dodaj okidač", @@ -44,7 +43,6 @@ "ButtonGuide": "Vodič", "ButtonHelp": "Pomoć", "ButtonHome": "Početna", - "ButtonLearnMore": "Nauči još", "ButtonLibraryAccess": "Pristup biblioteci", "ButtonManualLogin": "Ručna prijava", "ButtonMore": "Više", @@ -88,7 +86,6 @@ "ButtonTrailer": "Kratki video", "ButtonUninstall": "Ukloni", "ButtonUp": "Gore", - "ButtonViewWebsite": "Posjeti web stranice", "ButtonWebsite": "Web stranica", "CancelRecording": "Prekini snimanje", "CancelSeries": "Odustani od serije", @@ -106,7 +103,7 @@ "Continuing": "Nastavlja se", "CustomDlnaProfilesHelp": "Kreiraj prilagođeni profili za novi uređaj ili doradi neki od sistemskih profila.", "DeathDateValue": "Umro: {0}", - "DefaultErrorMessage": "Došlo je do pogreške prilikom obrade zahtjeva. Molimo pokušajte ponovo kasnije.", + "ErrorDefault": "Došlo je do pogreške prilikom obrade zahtjeva. Molimo pokušajte ponovo kasnije.", "Delete": "Izbriši", "DeleteDeviceConfirmation": "Jeste li sigurni da želite izbrisati ovaj uređaj? Pojavit će se sljedeći put kad se korisnik prijavi s njim.", "DeleteImage": "Izbriši sliku", @@ -133,7 +130,7 @@ "ErrorAddingMediaPathToVirtualFolder": "Došlo je do pogreške prilikom dodavanja putanje medija. Provjerite dali je putanja valjana i da proces Jellyfin Server-a ima pristup tom mjestu.", "ErrorAddingTunerDevice": "Došlo je do pogreške prilikom dodavanja uređaja TV/radio pretraživača. Provjerite da je dostupan i pokušajte ponovno.", "ErrorGettingTvLineups": "Došlo je do pogreške prilikom preuzimanja TV postave. Provjerite dali su vaše informacije točne i pokušajte ponovno.", - "ErrorMessageStartHourGreaterThanEnd": "Vrijeme završetka mora biti veće od početka.", + "ErrorStartHourGreaterThanEnd": "Vrijeme završetka mora biti veće od početka.", "ErrorPleaseSelectLineup": "Odaberite postavu i pokušajte ponovno. Ako niti jedna postava nije dostupna provjerite dali su korisničko ime, lozinka i poštanski broj točni.", "ErrorSavingTvProvider": "Došlo je do pogreške prilikom snimanja TV pružatelja. Provjerite da je dostupan i pokušajte ponovno.", "ExtractChapterImagesHelp": "Izdvajanje slika poglavlja omogućiti će klijentima prikaz grafičkih izbornika za odabir scena. Proces može biti spor, resursi intenzivno korišteni i može zahtijevati nekoliko gigabajta prostora. Ono se pokreće kad je otkriven video, a također i kao noćni zadatak. Raspored je podesiv u području rasporeda zadataka. Ne preporučuje se za pokretanje ovog zadatka tijekom sati čestog korištenja.", @@ -176,7 +173,6 @@ "HeaderApiKeysHelp": "Vanjske aplikacije moraju imati API ključ kako bi komunicirale s Jellyfin Serverom. Ključevi se izdaju prijavom s Jellyfin računom ili ručnim odobravanjem zahtjeva ključa.", "HeaderApp": "Aplikacija", "HeaderAudioSettings": "Postavke zvuka", - "HeaderAutomaticUpdates": "Automatske nadogradnje", "HeaderBooks": "Knjige", "HeaderBranding": "Brendiranje", "HeaderCancelRecording": "Prekini snimanje", @@ -346,8 +342,6 @@ "LabelAlbumArtists": "Izvođači albuma:", "LabelAll": "Sve", "LabelAllowHWTranscoding": "Dopusti hardversko konvertiranje", - "LabelAllowServerAutoRestart": "Dopusti serveru da se automatski resetira kako bi proveo nadogradnje", - "LabelAllowServerAutoRestartHelp": "Server će se resetirati samo dok je u statusu mirovanja kada nema aktivnih korisnika.", "LabelAppName": "Ime aplikacije", "LabelAppNameExample": "Primjer: Sickbeard, Sonarr", "LabelArtists": "Izvođači:", @@ -594,10 +588,8 @@ "LabelVaapiDeviceHelp": "Ovo je čvor provođenja koji se koristi za hardversko ubrzanje.", "LabelValue": "Vrijednost:", "LabelVersionInstalled": "{0} instaliran", - "LabelVersionNumber": "Verzija {0}", "LabelXDlnaCapHelp": "Određuje sadržaj X_DLNACAP elementa u urn:shemas-dlna-org:device-1-0 namespace.", "LabelXDlnaDocHelp": "Određuje sadržaj X_DLNADOC elementa u urn:schemas-dlna-org:device-1-0 namespace.", - "LabelYourFirstName": "Ime:", "LabelYoureDone": "Završeno!", "LabelZipCode": "Poštanski broj:", "LabelffmpegPath": "FFmpeg putanja:", @@ -649,13 +641,11 @@ "MessageCreateAccountAt": "Otvori račun kod {0}", "MessageDeleteTaskTrigger": "Jeste li sigurni da želite izbrisati ovaj okidač zadatka?", "MessageDirectoryPickerBSDInstruction": "Za BSD možda ćete morati podesiti pohranu unutar vašega FreeNAS kako bi se omogućilo Jellyfin-u pristup.", - "MessageDirectoryPickerInstruction": "Mrežne putanje mogu se unijeti ručno u slučaju da gumb Mreže ne uspije locirati vaše uređaje. Na primjer, {0} ili {1}.", "MessageDirectoryPickerLinuxInstruction": "Za Linux na Arch Linux, CentOS, Debian, Fedora, OpenSuse ili Ubuntu morate dati korisniku Jellyfin sistema barem pristup čitanja vašim lokacijama za skladištenje.", "MessageDownloadQueued": "Preuzimanje na čekanju.", "MessageFileReadError": "Prilikom učitavanja datoteke desila se greška. Pokušajte ponovno.", "MessageForgotPasswordFileCreated": "Sljedeća datoteka je stvorena na vašem poslužitelju i sadrži upute o tome kako postupiti:", "MessageForgotPasswordInNetworkRequired": "Molim pokušajte ponovno unutar kućne mreže za pokretanje postupka za poništavanje zaporke.", - "MessageInstallPluginFromApp": "Ovaj dodatak mora biti instaliran unutar aplikacije u kojoj ga namjeravate koristiti.", "MessageInvalidForgotPasswordPin": "Upisan je neispravan ili zastarjele pin. Molim, pokušajte ponovno.", "MessageInvalidUser": "Pogrešno korisničko ime ili lozinka. Molim, pokušajte ponovo.", "MessageItemSaved": "Stavka je snimljena.", @@ -694,8 +684,8 @@ "NewEpisodes": "Nove epizode", "NewEpisodesOnly": "Samo nove epizode", "News": "Vijesti", - "NoNextUpItemsMessage": "Nije pronađeno. Krenite sa gledanjem vaše emisije!", - "NoPluginConfigurationMessage": "Ovaj dodatak nema postavke za podesiti.", + "MessageNoNextUpItems": "Nije pronađeno. Krenite sa gledanjem vaše emisije!", + "MessageNoPluginConfiguration": "Ovaj dodatak nema postavke za podesiti.", "NoSubtitleSearchResultsFound": "Nije ništa pronađeno.", "NumLocationsValue": "{0} mape", "OptionAdminUsers": "Administratori", @@ -830,7 +820,7 @@ "PasswordMatchError": "Lozinka i lozinka potvrde moraju biti identične.", "PasswordResetComplete": "Lozinka je resetirana.", "PasswordResetConfirmation": "Da li ste sigurni da želite resetirati lozinku?", - "PasswordResetHeader": "Poništi lozinku", + "HeaderResetPassword": "Poništi lozinku", "PasswordSaved": "Lozinka snimljena.", "People": "Ljudi", "PinCodeResetComplete": "PIN je resetiran.", @@ -848,7 +838,6 @@ "Premieres": "Premijere", "Producer": "Producent", "ProductionLocations": "Lokacije proizvodnje", - "QueueAllFromHere": "Stavi u red čekanja sve odavde", "RecentlyWatched": "Nedavno pogledano", "RecommendationBecauseYouLike": "Zato što volite {0}", "RecommendationBecauseYouWatched": "Zato što ste gledali {0}", @@ -857,7 +846,7 @@ "Record": "Snimi", "RecordSeries": "Snimi serije", "RecordingCancelled": "Snimka je otkazana.", - "RecordingPathChangeMessage": "Promjena mape za snimanje neće migrirati postojeće snimke iz stare lokacije na novu. Morat ćete ih pomicati ručno, ako to želite.", + "MessageChangeRecordingPath": "Promjena mape za snimanje neće migrirati postojeće snimke iz stare lokacije na novu. Morat ćete ih pomicati ručno, ako to želite.", "RecordingScheduled": "Snimka je zakazana.", "Refresh": "Osviježi", "RefreshDialogHelp": "Meta-podaci se osvježavaju na temelju postavki i internet usluga koje su omogućene u nadzornoj ploči Jellyfin Server-a.", @@ -936,7 +925,6 @@ "TabParentalControl": "Roditeljska kontrola", "TabPassword": "Lozinka", "TabPlayback": "Reprodukcija", - "TabPlaylist": "Lista izvođenja", "TabPlaylists": "Popisi", "TabPlugins": "Dodaci", "TabProfile": "Profil", @@ -965,7 +953,7 @@ "TrackCount": "{0} pjesme", "Tuesday": "Utorak", "UninstallPluginConfirmation": "Da li ste sigurni da želite ukloniti {0}?", - "UninstallPluginHeader": "Ukloni dodatak", + "HeaderUninstallPlugin": "Ukloni dodatak", "Unrated": "Neocijenjeno", "UserProfilesIntro": "Jellyfin uključuje ugrađenu podršku za korisničke profile što omogućuje svakom korisniku da ima svoje vlastite postavke prikaza, PlayStation i roditeljski nadzor.", "ValueAlbumCount": "{0} albuma", @@ -990,7 +978,6 @@ "ValueTimeLimitSingleHour": "Vremensko ograničenje: 1 sat", "ValueVideoCodec": "Video koder: {0}", "ViewAlbum": "Pogledaj album", - "ViewArtist": "Pogledaj umjetnika", "Wednesday": "Srijeda", "WelcomeToProject": "Dobrodošli u Jellyfin!", "WizardCompleted": "To je sve što nam treba za sada. Jellyfin je počeo prikupljati podatke o vašoj medijskoj knjižnici. Provjerite neke od naših aplikacija, a zatim kliknite na Završi za prikaz Serverske kontrolne ploče.", @@ -1051,7 +1038,6 @@ "Album": "Album", "AddToPlayQueue": "Dodaj u red izvođenja", "Banner": "Zaglavlje", - "AutoBasedOnLanguageSetting": "Automatski (prema jezičnim postavkama)", "AspectRatio": "Omjer", "Ascending": "Uzlazno", "Art": "Grafike", @@ -1072,7 +1058,6 @@ "Box": "Kutija", "AskAdminToCreateLibrary": "Traži administratora da kreira biblioteku.", "PictureInPicture": "Slika u slici", - "OtherArtist": "Ostali izvođači", "OptionThumb": "Sličica", "OptionProtocolHttp": "HTTP", "OptionProfileVideo": "Video", @@ -1112,7 +1097,6 @@ "MediaInfoStreamTypeSubtitle": "Prijevod", "MediaInfoStreamTypeData": "Podaci", "MediaInfoStreamTypeAudio": "Audio", - "MediaInfoSoftware": "Softver", "Logo": "Logo", "List": "Lista", "LabelYear": "Godina:", @@ -1136,7 +1120,6 @@ "MillisecondsUnit": "ms", "LabelSubtitles": "Prijevodi", "LabelStatus": "Status:", - "LabelSoundEffects": "Zvučni efekti:", "LabelSortOrder": "Redoslijed sortiranja:", "LabelSortBy": "Sortiranje po:", "LabelSize": "Veličina:", @@ -1232,7 +1215,6 @@ "DatePlayed": "Datum reprodukcije", "DateAdded": "Datum dodavanja", "CriticRating": "Rejting kritičara", - "CopyStreamURLError": "Došlo je do greške prilikom kopiranja URLa.", "ConfirmEndPlayerSession": "Da li želite ugasiti Jellyfin na {0}?", "CommunityRating": "Rejting zajednice", "Browse": "Pretraži", diff --git a/src/strings/hu.json b/src/strings/hu.json index 7aa44d906e..a25e02882c 100644 --- a/src/strings/hu.json +++ b/src/strings/hu.json @@ -12,7 +12,6 @@ "Ascending": "Növekvő", "AttributeNew": "Új", "Audio": "Audió", - "AutoBasedOnLanguageSetting": "Automatikus (a nyelvi beállítások alapján)", "BirthDateValue": "Született: {0}", "BirthPlaceValue": "Születési hely: {0}", "Books": "Könyvek", @@ -131,7 +130,6 @@ "HeaderAlbums": "Albumok", "HeaderAudioBooks": "Hangos könyvek", "HeaderAudioSettings": "Audió Beállítások", - "HeaderAutomaticUpdates": "Automatikus frissitések", "HeaderCastAndCrew": "Szereplők és Stáb", "HeaderCastCrew": "Szereplők és Stáb", "HeaderChannels": "Csatornák", @@ -228,8 +226,6 @@ "Label3DFormat": "3D formátum:", "LabelAlbumArtists": "Album előadók:", "LabelAll": "Összes", - "LabelAllowServerAutoRestart": "Automatikus újraindítás engedélyezése a szervernek a frissítések telepítéséhez", - "LabelAllowServerAutoRestartHelp": "A szerver csak akkor indul újra ha nincs felhasználói tevékenység.", "LabelArtists": "Előadók:", "LabelAudio": "Audió", "LabelAudioLanguagePreference": "Audió nyelvének beállítása:", @@ -244,7 +240,6 @@ "LabelCustomDeviceDisplayName": "Megjelenítendő név:", "LabelCustomDeviceDisplayNameHelp": "Adj meg egy egyedi nevet, vagy hagyd üresen a készülék által elküldött név használatához.", "LabelCustomRating": "Egyéni értékelés:", - "LabelDashboardTheme": "Szerver vezérlőpult kinézete:", "LabelDateAdded": "Hozzáadva:", "LabelDateTimeLocale": "Dátum és idő formátum:", "LabelDay": "Nap:", @@ -278,13 +273,13 @@ "LabelMetadataPath": "Metaadat útvonal:", "LabelMetadataReaders": "Metaadat olvasók:", "LabelMetadataSavers": "Metaadat mentés:", - "LabelMetadataSaversHelp": "A metaadat letöltésének formátuma.", + "LabelMetadataSaversHelp": "A metaadatok mentési fájlformátuma.", "LabelName": "Név:", "LabelNewPassword": "Új jelszó:", "LabelNewPasswordConfirm": "Új jelszó megerősítése:", "LabelNext": "Következő", "LabelNotificationEnabled": "Értesítés engedélyezése", - "LabelOptionalNetworkPath": "(Opcionális) Megosztott hálózati mappa:", + "LabelOptionalNetworkPath": "Megosztott hálózati mappa:", "LabelOriginalAspectRatio": "Eredeti képarány:", "LabelOriginalTitle": "Eredeti cím:", "LabelOverview": "Tartalom:", @@ -303,7 +298,7 @@ "LabelProfileVideoCodecs": "Videó kódekek:", "LabelRefreshMode": "Frissítési mód:", "LabelReleaseDate": "Megjelenés dátuma:", - "LabelRuntimeMinutes": "Játékidő (perc):", + "LabelRuntimeMinutes": "Játékidő:", "LabelSeasonNumber": "Évad száma:", "LabelSelectFolderGroups": "Automatikusan csoportosítsa a következő mappák tartalmát olyan nézetekre, mint a Filmek, a Zene és a TV:", "LabelSelectFolderGroupsHelp": "A ki nem választott mappák önmagukban, saját nézetben jelennek meg.", @@ -335,10 +330,8 @@ "LabelUser": "Felhasználó:", "LabelUsername": "Felhasználónév:", "LabelVersionInstalled": "{0} telepítve", - "LabelVersionNumber": "Verzió {0}", "LabelVideo": "Videó", "LabelYear": "Év:", - "LabelYourFirstName": "Keresztneved:", "LabelYoureDone": "Készen vagy!", "LatestFromLibrary": "Nemrég hozzáadott {0}", "Like": "Tettszik", @@ -460,7 +453,7 @@ "RecommendationStarring": "Főszerepben: {0}", "Record": "Felvétel", "Refresh": "Frissítés", - "RefreshDialogHelp": "A metaadatok frissítése a Jellyfin Server vezérlőpultjában engedélyezett beállítások és internetszolgáltatások alapján történik.", + "RefreshDialogHelp": "A metaadatok frissítése a vezérlőpultban engedélyezett beállítások és internetszolgáltatások alapján történik.", "RefreshMetadata": "Metaadat frissítése", "ReleaseDate": "Megjelenés dátuma", "RememberMe": "Emlékezz rám", @@ -530,7 +523,6 @@ "TabParentalControl": "Szülői Felügyelet", "TabPassword": "Jelszó", "TabPlayback": "Lejátszás", - "TabPlaylist": "Lejátszási lista", "TabPlaylists": "Lejátszási listák", "TabPlugins": "Bővítmények", "TabProfile": "Profil", @@ -555,7 +547,7 @@ "TitlePlayback": "Lejátszás", "Tuesday": "Kedd", "UninstallPluginConfirmation": "Biztosan el szeretnéd távolítani a következőt: {0} ?", - "UninstallPluginHeader": "Bővítmény Eltávolítása", + "HeaderUninstallPlugin": "Bővítmény Eltávolítása", "Unmute": "Hangosít", "Up": "Fel", "ValueAudioCodec": "Audió Kódek: {0}", @@ -605,8 +597,7 @@ "Artists": "Előadók", "Blacklist": "Feketelista", "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.", + "MessageBrowsePluginCatalog": "Böngéssz a Bővítmény katalógusunkban a rendelkezésre álló bővítmények megtekintéséhez.", "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.", "BoxRear": "Box (hátsó)", "ButtonArrowLeft": "Bal", @@ -615,14 +606,12 @@ "ButtonEditOtherUserPreferences": "A felhasználó profiljának, képének és személyes beállításainak szerkesztése.", "ButtonFullscreen": "Teljes képernyő", "ButtonInfo": "Info", - "ButtonLearnMore": "Tudj meg többet", "ButtonNetwork": "Hálózat", "ButtonOk": "Ok", "ButtonRevoke": "Visszavon", "ButtonSelectView": "Válassz nézetet", "ButtonStart": "Start", "ButtonUp": "Fel", - "ButtonViewWebsite": "Webhely megtekintése", "CancelRecording": "Felvétel törlése", "CancelSeries": "Sorozat törlése", "Categories": "Kategóriák", @@ -646,7 +635,7 @@ "CustomDlnaProfilesHelp": "Hozz létre egyéni profilt az új eszközhöz, vagy módosítsd a rendszerprofilt.", "DeathDateValue": "Elhunyt: {0}", "Default": "Alapértelmezett", - "DefaultErrorMessage": "Hiba történt a kérés feldolgozása során. Kérlek próbáld újra később.", + "ErrorDefault": "Hiba történt a kérés feldolgozása során. Kérlek próbáld újra később.", "DefaultMetadataLangaugeDescription": "Ezek az alapértelmezettek, és könyvtáranként testre szabhatók.", "DeleteDeviceConfirmation": "Biztosan törölni szeretnéd ezt az eszközt? Legközelebb akkor jelenik meg, amikor a felhasználó bejelentkezik róla.", "DeleteImage": "Kép törlése", @@ -656,7 +645,7 @@ "DetectingDevices": "Eszközök észlelése", "DirectPlaying": "Közvetlen lejátszás", "DirectStreamHelp1": "Az adathordozó kompatibilis a készülékkel a felbontás és a médiatípus (H.264, AC3, stb.) tekintetében, de nem kompatibilis a fájltárolóban (.mkv, .avi, .wmv, stb.). A videófelvétel újra csomagolásra kerül, mielőtt azt a készülékre továbbítaná.", - "DirectStreamHelp2": "A fájl közvetlen közvetítése (Direct Streaming) nagyon kevés feldolgozási erőforrást használ, ennek ellenére a videó nem veszít a minőségéből.", + "DirectStreamHelp2": "A fájl közvetlen közvetítése (Direct Streaming) nagyon kevés feldolgozási erőforrást használ, és a videóban is minimális a minőségvesztés.", "DirectStreaming": "Közvetlen streaming", "Disabled": "Tiltva", "Disc": "Lemez", @@ -683,7 +672,7 @@ "ErrorAddingTunerDevice": "Hiba történt a tuner eszköz hozzáadásakor. Kérlek győződj meg róla, hogy az eszköz elérhető és próbáld meg újra.", "ErrorAddingXmlTvFile": "Hiba történt az XMLTV fájl elérésekor. Győződj meg róla, hogy a fájl létezik és próbáld meg újra.", "ErrorDeletingItem": "Hiba történt az elem törlése során a Jellyfin Szerverről. Ellenőrizd, hogy a Jellyfin Szerver rendelkezik-e írási jogosultsággal a média mappához és próbálja újra.", - "ErrorMessageStartHourGreaterThanEnd": "A befejezési időnek nagyobbnak kell lennie mint a kezdési idő.", + "ErrorStartHourGreaterThanEnd": "A befejezési időnek nagyobbnak kell lennie mint a kezdési idő.", "ErrorSavingTvProvider": "Hiba történt a TV szolgáltató mentésekor. Kérlek győződj meg róla, hogy elérhető és próbálkozz meg újra.", "EveryNDays": "Minden {0} nap", "ExtraLarge": "Extra NAGY", @@ -699,7 +688,6 @@ "GuideProviderSelectListings": "Válassz listát", "EncoderPresetHelp": "Válassz egy gyorsabb értéket a teljesítmény javítása érdekében, vagy egy lassabb értéket a minőség javítása érdekében.", "HDPrograms": "HD programok", - "HandledByProxy": "Reverse proxy segítségével kezelhető", "HardwareAccelerationWarning": "A hardveres gyorsítás engedélyezése bizonyos környezetekben instabilitást okozhat. Győződj meg róla, hogy az operációs rendszer és a videó-illesztőprogramok teljesen naprakészek. Ha a beállítás után problémába ütközik a videólejátszás, akkor vissza kell állítani a beállítást Nincs-re.", "HeaderAccessSchedule": "Hozzáférési Ütemezés", "HeaderAccessScheduleHelp": "Hozz létre hozzáférési ütemezést, hogy korlátozd a hozzáférést bizonyos időben.", @@ -749,7 +737,7 @@ "HeaderInstantMix": "Azonnali keverés", "HeaderItems": "Elemek", "HeaderKeepRecording": "Felvétel készítése", - "HeaderKodiMetadataHelp": "Az Nfo metaadatok engedélyezéséhez vagy letiltásához szerkeszd a könyvtárat a Jellyfin Médiatár beállításaiban és keresd meg a metaadat letöltő részt.", + "HeaderKodiMetadataHelp": "Az Nfo metaadatok engedélyezéséhez vagy letiltásához szerkeszd a könyvtárat és keresd meg a metaadat letöltő részt.", "HeaderLatestMusic": "Legújabb Zene", "HeaderLatestRecordings": "Legújabb Felvételek", "HeaderLiveTV": "Élő TV", @@ -765,7 +753,7 @@ "HeaderPhotoAlbums": "Fényképalbumok", "HeaderPlaybackError": "Lejátszási hiba", "HeaderProfileInformation": "Profil információ", - "HeaderProfileServerSettingsHelp": "Ezek az értékek szabályozzák, hogy a Jellyfin Szerver hogyan jelenik meg az eszközökön.", + "HeaderProfileServerSettingsHelp": "Ezek az értékek szabályozzák, hogy a Szerver hogyan jelenik meg a kliensek számára.", "HeaderRecordingOptions": "Felvétel beállítások", "HeaderRecordingPostProcessing": "Felvétel utáni feldolgozás", "HeaderRemoveMediaFolder": "Média mappa eltávolítása", @@ -779,7 +767,7 @@ "HeaderSelectServerCachePath": "Válaszd ki a szerver gyorsítótár útvonalát", "HeaderSelectServerCachePathHelp": "Tallózd ki vagy írd be a szerver gyorsítótár fájljainak elérési útját. A mappának írhatónak kell lennie.", "HeaderSelectTranscodingPath": "Válaszd ki az Átkódolás ideiglenes útvonalát", - "HeaderSelectTranscodingPathHelp": "Tallózd ki vagy add meg az átmeneti fájlok átkódolásához használt útvonalat. A mappának írhatónak kell lennie.", + "HeaderSelectTranscodingPathHelp": "Tallózd ki vagy add meg a fájlok átkódolásához használt útvonalat. A mappának írhatónak kell lennie.", "HeaderSeriesOptions": "Sorozatok beállításai", "LabelTag": "Címke:", "MediaInfoCodecTag": "Kódek címke", @@ -816,7 +804,7 @@ "Hide": "Elrejtés", "Horizontal": "Vízszintes", "HttpsRequiresCert": "A biztonságos kapcsolatok engedélyezéséhez megbízható SSL-tanúsítványt kell használni, mint például a Let's Encrypt. Kérlek add meg a tanúsítványt, vagy tiltsd le a biztonságos kapcsolatokat.", - "ImportMissingEpisodesHelp": "Ha engedélyezve van, a hiányzó epizódokra vonatkozó információk a Jellyfin adatbázisába kerülnek importálásra és megjelenítésre kerülnek az évadokban és sorozatokban. Ez jelentősen hosszabb könyvtárvizsgálatot okozhat.", + "ImportMissingEpisodesHelp": "A hiányzó epizódokra vonatkozó információk a Jellyfin adatbázisába kerülnek importálásra és megjelenítésre kerülnek az évadokban és sorozatokban. Ez jelentősen hosszabb könyvtárvizsgálatot okozhat.", "InstantMix": "Azonnali keverés", "ItemCount": "{0} elem", "Items": "Elemek", @@ -838,9 +826,9 @@ "LabelAppNameExample": "Például: Sickbeard, Sonarr", "LabelAutomaticallyRefreshInternetMetadataEvery": "A metaadatok automatikus frissítése az internetről:", "LabelBindToLocalNetworkAddress": "Kötés a helyi hálózati címhez:", - "LabelBindToLocalNetworkAddressHelp": "Opcionális. A helyi IP cím felülbírálása a http szerverhez való csatlakozáshoz. Ha üres marad, a szerver minden elérhető címhez kötődik. Az érték megváltoztatásához a Jellyfin Szerver újraindítása szükséges.", + "LabelBindToLocalNetworkAddressHelp": "A helyi IP cím felülbírálása a HTTP szerverhez való csatlakozáshoz. Ha üres marad, a szerver minden elérhető címhez kötődik. Az érték megváltoztatásához a Jellyfin Szerver újraindítása szükséges.", "LabelBirthDate": "Születési dátum:", - "LabelBlastMessageInterval": "Élő üzenetintervallum (másodperc)", + "LabelBlastMessageInterval": "Élő üzenetintervallum", "LabelBlastMessageIntervalHelp": "Meghatározza másodpercben az üzenetek közötti időtartamot.", "LabelBlockContentWithTags": "Blokkolja a címkével ellátott elemeket:", "LabelCache": "Gyorsítótár:", @@ -862,19 +850,15 @@ "LabelDisplayLanguage": "Megjelenítési nyelv:", "LabelDisplayLanguageHelp": "A Jellyfin fordítása egy folyamatos projekt.", "LabelDisplayMode": "Megjelenítési mód:", - "LabelDownloadInternetMetadata": "Artwork és a metaadatok letöltése az internetről", - "LabelDownloadInternetMetadataHelp": "A Jellyfin Szerver letöltheti a médiák adatait és látványos bemutatókat készít.", - "LabelArtistsHelp": "Ha több van használd a következő elválasztót ;", - "LabelDisplayCollectionsView": "Jelenítse meg a Gyűjtemények menüpontot a filmgyűjtemények megjelenítéséhez", - "LabelDisplayCollectionsViewHelp": "Ez külön menüpontot hoz létre a filmgyűjtemények megjelenítéséhez. Gyűjtemény létrehozásához kattints jobb gombbal vagy kattints a három pontra bármelyik filmen, és válaszd a 'Hozzáadás gyűjteményhez' lehetőséget. ", + "LabelArtistsHelp": "Ha több előadót adsz meg, pontosvesszővel válaszd el őket.", "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)", + "LabelEnableDlnaClientDiscoveryInterval": "Kliens felderítési intervallum", "LabelEnableDlnaClientDiscoveryIntervalHelp": "A Jellyfin által végrehajtott SSDP keresések időtartamát határozza meg másodpercben.", "LabelEnableDlnaDebugLogging": "DLNA hibakeresési naplózás engedélyezése", "LabelEnableDlnaDebugLoggingHelp": "Ez nagy naplófájlokat hoz létre és csak hibaelhárítás céljából használható.", "LabelEnableDlnaPlayTo": "DLNA Play To engedélyezése", - "LabelEnableDlnaPlayToHelp": "Felismerheti a hálózaton belüli eszközöket, és lehetővé teszi azok távvezérlését.", + "LabelEnableDlnaPlayToHelp": "Felismerheti a hálózaton belüli eszközöket, és lehetővé teszi azok vezérlését.", "LabelEnableDlnaServer": "DLNA szerver engedélyezése", "LabelEnableDlnaServerHelp": "Lehetővé teszi a hálózaton található UPnP eszközöknek, hogy böngésszenek és lejátszanak tartalmat.", "LabelEnableSingleImageInDidlLimit": "Korlátozás egyetlen beágyazott képre", @@ -887,8 +871,8 @@ "LabelFont": "Betűtípus:", "LabelFormat": "Formátum:", "LabelFriendlyName": "Könnyen megjegyezhető név:", - "LabelServerNameHelp": "Ez a név kerül a Szerver azonosítására és alapértelmezetten a számítógép neve kerül felhasználásra.", - "LabelGroupMoviesIntoCollectionsHelp": "A filmlisták megjelenítésekor a gyűjteményhez tartozó filmek egy csoportos elemként jelennek meg.", + "LabelServerNameHelp": "Ez a név kerül a Szerver azonosítására és alapértelmezetten a hoszt neve kerül felhasználásra.", + "LabelGroupMoviesIntoCollectionsHelp": "A filmlisták megjelenítésekor a gyűjteményben lévő filmek egy csoportos elemként jelennek meg.", "LabelH264Crf": "H264 enkóder CRF:", "LabelHomeNetworkQuality": "Otthoni hálózat minősége:", "LabelHttpsPort": "Helyi HTTPS port száma:", @@ -927,7 +911,7 @@ "LabelMovieCategories": "Film kategóriák:", "LabelMoviePrefix": "Film előtag:", "LabelMoviePrefixHelp": "Ha a filmcímekhez előtagot használsz, írd be ide, hogy a szerver megfelelően kezelje.", - "LabelMovieRecordingPath": "Filmfelvételi útvonal (opcionális):", + "LabelMovieRecordingPath": "Filmfelvételi útvonal:", "LabelMusicStreamingTranscodingBitrate": "Zene átkódolási bitráta:", "LabelNewName": "Új név:", "LabelNewsCategories": "Hírek kategóriái:", @@ -954,9 +938,8 @@ "LabelSaveLocalMetadataHelp": "Az artwork fájlok médiamappákba történő mentése olyan helyre kerül, ahol könnyen szerkeszthető.", "LabelScheduledTaskLastRan": "Utoljára futtatva: {0}, Időtartam: {1}.", "LabelScreensaver": "Képernyővédő:", - "LabelSecureConnectionsMode": "Biztonságos kapcsolat módja:", "LabelSerialNumber": "Sorozatszám", - "LabelSeriesRecordingPath": "Sorozatfelvétel útvonala (opcionális):", + "LabelSeriesRecordingPath": "Sorozatfelvétel útvonala:", "LabelServerHost": "Kiszolgáló:", "LabelVersion": "Verzió:", "MessageAreYouSureDeleteSubtitles": "Biztosan törölni szeretnéd ezt a feliratfájlt?", @@ -969,11 +952,9 @@ "LabelMinResumePercentage": "Minimum folytatás százalékban:", "LabelMinScreenshotDownloadWidth": "Minimális képernyőkép letöltési szélesség:", "LabelPreferredSubtitleLanguage": "Alapértelmezett feliratnyelv:", - "LabelSkin": "Kinézet:", "LabelSkipBackLength": "Ugrás vissza hossza:", "LabelSkipForwardLength": "Ugrás előre hossza:", "LabelSkipIfGraphicalSubsPresent": "Kihagyás, ha a videó már tartalmaz beágyazott feliratokat", - "LabelSoundEffects": "Hanghatások:", "LabelSportsCategories": "Sport kategóriák:", "LabelStartWhenPossible": "Elindul, amint lehetséges:", "LabelStopWhenPossible": "Leáll, amint lehetséges:", @@ -995,12 +976,11 @@ "LabelValue": "Érték:", "LabelZipCode": "Irányítószám:", "LabelffmpegPath": "FFmpeg útvonal:", - "LabelffmpegPathHelp": "Az ffmpeg alkalmazásfájl elérési útja, vagy az őt tartalmazó mappa.", + "LabelffmpegPathHelp": "Az ffmpeg alkalmazásfájl elérési útja vagy az őt tartalmazó mappa.", "Large": "Nagy", "LearnHowYouCanContribute": "Ismerd meg, hogyan járulhatsz hozzá.", "LeaveBlankToNotSetAPassword": "Ha nem szeretnél jelszót beállítani, hagyd ezt a mezőt üresen.", "LibraryAccessHelp": "Válaszd ki azokat a könyvtárakat amelyeket megosztani kívánsz ezzel a felhasználóval. A rendszergazdák a Metaadat Manager segítségével szerkeszthetik az összes mappát.", - "LinksValue": "Linkek: {0}", "List": "Lista", "LiveTV": "Élő TV", "Logo": "Logo", @@ -1031,7 +1011,6 @@ "MessageEnablingOptionLongerScans": "Ennek az opciónak a bekapcsolása jelentősen hosszabb könyvtárbeolvasást eredményezhet.", "MessageImageFileTypeAllowed": "Csak JPEG és PNG fájlok támogatottak.", "MessageImageTypeNotSelected": "Kérlek válaszd ki a kép típusát a legördülő menüből.", - "MessageInstallPluginFromApp": "Ezt a bővítményt azon alkalmazásból kell telepíteni, amelyben használni kívánod.", "MessageInvalidForgotPasswordPin": "Érvénytelen vagy lejárt PIN kódot írtál be. Kérlek próbáld újra.", "MessageInvalidUser": "Érvénytelen felhasználónév vagy jelszó. Kérlek próbáld újra.", "MessageItemSaved": "Elem mentve.", @@ -1050,7 +1029,6 @@ "LanNetworksHelp": "Vesszővel elválasztott lista az IP címekről vagy IP / netmask bejegyzésekről a hálózatokban, amelyeket a helyi hálózaton figyelembe kell venni a sávszélesség korlátozások végrehajtása során. Ha be van állítva, az összes többi IP cím külső hálózaton lesz, és a külső sávszélesség korlátozások szabálya alá tartozik. Ha üres marad, csak a szerver alhálózata tekinthető a helyi hálózatnak.", "LiveBroadcasts": "Élő adások", "MessageConfirmRevokeApiKey": "Biztosan visszavonod ezt az API kulcsot? Az alkalmazás csatlakozása a Jellyfin Szerverhez hirtelen megszűnik.", - "MessageDirectoryPickerInstruction": "A hálózati útvonalak manuálisan megadhatók abban az esetben, ha a Hálózati gomb nem találja meg a készülékeket. Például: {0} vagy {1}.", "MessageDirectoryPickerLinuxInstruction": "Az Arch Linux, CentOS, Debian, Fedora, openSUSE vagy Ubuntu Linux operációs rendszereken a Jellyfin szolgáltatás felhasználójának legalább olvasási hozzáférést kell biztosítania a tárolóhelyekhez.", "MessageForgotPasswordInNetworkRequired": "Kérlek próbáld meg újra a jelszó visszaállítási folyamatot az otthoni hálózatban.", "MessageNoMovieSuggestionsAvailable": "Jelenleg nincsenek filmajánlatok. Kezdj el nézni és értékelni a filmeket, majd térj vissza, hogy megtekinthesd az ajánlásokat.", @@ -1077,8 +1055,8 @@ "NextUp": "Következik", "No": "Nem", "NoNewDevicesFound": "Nem található új eszköz. Új tuner hozzáadásához zárd be ezt a párbeszédablakot és add meg kézzel az eszköz adatait.", - "NoNextUpItemsMessage": "Nem található. Kezdj el nézni műsorokat!", - "NoPluginConfigurationMessage": "Ez a bővítmény nem rendelkezik konfigurációs beállításokkal.", + "MessageNoNextUpItems": "Nem található. Kezdj el nézni műsorokat!", + "MessageNoPluginConfiguration": "Ez a bővítmény nem rendelkezik konfigurációs beállításokkal.", "NoSubtitles": "Nincs", "NoSubtitlesHelp": "A feliratok alapértelmezés szerint nem lesznek betöltve. Lejátszás közben kézzel is bekapcsolhatók.", "Off": "Ki", @@ -1091,7 +1069,7 @@ "OptionAllowContentDownloading": "Média letöltésének és szinkronizálásának engedélyezése", "OptionAllowLinkSharingHelp": "Csak a médiaadatokat tartalmazó weboldalak oszthatók meg. A médiafájlok soha nem oszthatók meg nyilvánosan. A megosztás időlimithez van kötve, és lejár {0} nap elteltével.", "OptionAllowManageLiveTv": "Élő TV felvételkezelés engedélyezése", - "OptionAllowMediaPlaybackTranscodingHelp": "Az átkódoláshoz való hozzáférés korlátozása lejátszási hibákat okozhat a Jellyfin alkalmazásokban a nem támogatott médiaformátumok miatt.", + "OptionAllowMediaPlaybackTranscodingHelp": "Az átkódoláshoz való hozzáférés korlátozása lejátszási hibákat okozhat a kliens alkalmazásokban a nem támogatott médiaformátumok miatt.", "OptionAllowRemoteSharedDevicesHelp": "A DLNA eszközöket mindaddig megosztottnak tekintjük, amíg a felhasználó meg nem kezdi azok irányítását.", "OptionAllowSyncTranscoding": "Engedélyezze a média letöltését és szinkronizálását, amely átkódolást igényel", "OptionAllowVideoPlaybackRemuxing": "Olyan videólejátszás engedélyezése, amely átalakítást igényel újrakódolás nélkül", @@ -1100,7 +1078,7 @@ "OptionAuto": "Auto", "OptionAutomatic": "Auto", "OptionAutomaticallyGroupSeries": "A több mappában elosztott sorozat automatikus összevonása", - "OptionAutomaticallyGroupSeriesHelp": "Ha engedélyezve van, a több mappában elosztott sorozat automatikusan egyesül egy sorozatba.", + "OptionAutomaticallyGroupSeriesHelp": "A több mappában elosztott sorozat automatikusan egyesül egy sorozatba.", "OptionBlockBooks": "Könyvek", "OptionBlockLiveTvChannels": "Élő TV csatornák", "OptionBlockMusic": "Zene", @@ -1109,11 +1087,11 @@ "OptionCaptionInfoExSamsung": "CaptionInfoEx (Samsung)", "OptionContinuing": "Folytatva", "OptionDateAddedImportTime": "Használja a könyvtárba beolvasási dátumot", - "OptionDisableUserHelp": "Ha letiltod, a szerver nem engedélyezi a felhasználó csatlakozását. A meglévő kapcsolatok azonnal megszűnnek.", + "OptionDisableUserHelp": "A szerver nem engedélyezi a felhasználó csatlakozását. A meglévő kapcsolatok azonnal megszűnnek.", "OptionDisplayFolderView": "Az egyszerű média mappák mappanézetének megjelenítése", "OptionDisplayFolderViewHelp": "Jelenítse meg a mappákat a többi médiakönyvtár mellett. Ez hasznos lehet, ha egyszerű mappa nézeteket szeretnél látni.", "OptionDownloadImagesInAdvance": "Képek előzetes letöltése", - "OptionDownloadImagesInAdvanceHelp": "Alapértelmezés szerint a legtöbb kép csak akkor töltődik le, ha azt egy Jellyfin alkalmazás kéri. Engedélyezd ezt az opciót az összes kép előzetes letöltéséhez, mikor új médiát importál. Ez jelentősen hosszabb könyvtár vizsgálatot eredményezhet.", + "OptionDownloadImagesInAdvanceHelp": "Alapértelmezés szerint a legtöbb kép csak akkor töltődik le, ha azt egy kliens kéri. Engedélyezd ezt az opciót az összes kép előzetes letöltéséhez, mikor új médiát importál. Ez jelentősen hosszabb könyvtár vizsgálatot eredményezhet.", "OptionDownloadPrimaryImage": "Elsődleges", "OptionDvd": "DVD", "OptionEmbedSubtitles": "Beágyazva tárolóba", @@ -1134,7 +1112,7 @@ "OptionEveryday": "Minden nap", "OptionHideUserFromLoginHelp": "Hasznos a privát vagy a rejtett rendszergazdák számára. A felhasználónak kézzel kell bejelentkeznie a felhasználónevének és jelszavának megadásával.", "OptionIgnoreTranscodeByteRangeRequests": "Figyelmen kívül hagyja a transzkód bájt tartomány kéréseket", - "OptionIgnoreTranscodeByteRangeRequestsHelp": "Ha engedélyezve van, ezeket a kéréseket tiszteletben tartja, viszont figyelmen kívül hagyja a bájt tartomány fejlécét.", + "OptionIgnoreTranscodeByteRangeRequestsHelp": "Ezeket a kéréseket tiszteletben tartja, viszont figyelmen kívül hagyja a bájt tartomány fejlécét.", "OptionIsHD": "HD", "OptionIsSD": "SD", "OptionMax": "Max", @@ -1162,7 +1140,7 @@ "PasswordMatchError": "A jelszónak és a jelszó megerősítésének meg kell egyeznie.", "PasswordResetComplete": "A jelszó visszaállítva.", "PasswordResetConfirmation": "Biztosan vissza szeretnéd állítani a jelszót?", - "PasswordResetHeader": "Jelszó visszaállítása", + "HeaderResetPassword": "Jelszó visszaállítása", "PasswordSaved": "Jelszó mentve.", "PerfectMatch": "Tökéletes párosítás", "PictureInPicture": "Kép a képen", @@ -1175,10 +1153,9 @@ "PleaseConfirmPluginInstallation": "Kérlek kattints az OK gombra, hogy megerősítsd, hogy elolvastad a fentieket és folytatni kívánod a bővítmény telepítését.", "PleaseEnterNameOrId": "Kérlek adj meg egy nevet vagy egy külső ID-t.", "PleaseSelectTwoItems": "Kérlek válassz legalább két elemet.", - "PluginInstalledMessage": "A bővítmény sikeresen telepítve lett. A módosítások életbelépéséhez újra kell indítani a Jellyfin Szerver programot.", + "MessagePluginInstalled": "A bővítmény sikeresen telepítve lett. A módosítások életbelépéséhez újra kell indítani a Jellyfin Szerver programot.", "PreferEmbeddedTitlesOverFileNames": "A fájlnevek helyett előnyben részesíti a beépített címeket", "PreferEmbeddedTitlesOverFileNamesHelp": "Ez határozza meg az alapértelmezett megjelenítési címet, ha nem áll rendelkezésre internetes metaadat vagy helyi metaadat.", - "PreferredNotRequired": "Ajánlott, de nem szükséges", "Premiere": "Premier", "Premieres": "Premierek", "Previous": "Előző", @@ -1191,16 +1168,14 @@ "RecentlyWatched": "Nemrég nézett", "RecordSeries": "Sorozatok rögzítése", "RecordingCancelled": "Felvétel törölve.", - "RecordingPathChangeMessage": "A felvételi mappa módosítása nem fogja áthelyezni a meglévő felvételeket a régi helyről az újra. Szükség esetén manuálisan kell mozgatni őket.", + "MessageChangeRecordingPath": "A felvételi mappa módosítása nem fogja áthelyezni a meglévő felvételeket a régi helyről az újra. Szükség esetén manuálisan kell mozgatni őket.", "RecordingScheduled": "A rögzítés ütemezett.", "Recordings": "Felvételek", "RefreshQueued": "Frissítés sorba állítva.", "RemoveFromCollection": "Törlés a gyűjteményből", "RemoveFromPlaylist": "Lejátszási listáról eltávolítani", "RepeatEpisodes": "Epizódok ismétlése", - "RequiredForAllRemoteConnections": "Minden távoli kapcsolathoz szükséges", "ResumeAt": "Folytatás: {0}", - "RunAtStartup": "Futtassa indításkor", "SaveSubtitlesIntoMediaFolders": "Mentse a feliratokat a média mappákba", "SaveSubtitlesIntoMediaFoldersHelp": "A feliratok tárolása a videofájlok mellett lehetővé teszi, hogy könnyebben kezelhetők legyenek.", "Schedule": "Ütemezés", @@ -1262,9 +1237,7 @@ "ValueTimeLimitMultiHour": "időlimit: {0} óra", "ValueTimeLimitSingleHour": "Időlimit: 1 óra", "Vertical": "Függőleges", - "VideoRange": "Videó tartomány", "ViewAlbum": "Album megtekintése", - "ViewArtist": "Előadó megtekintése", "Whitelist": "Fehérlista", "WizardCompleted": "Ez most minden amire szükség volt. A Jellyfin megkezdte a médiakönyvtáraddal kapcsolatos információk gyűjtését. Nézz meg néhány alkalmazásunkat, majd kattints a Befejezés gombra a Vezérlőpult megtekintéséhez.", "XmlTvKidsCategoriesHelp": "Az ilyen kategóriákkal rendelkező programok gyerekeknek szóló programokként jelennek meg. Válaszd el őket a '|' elválasztóval.", @@ -1277,11 +1250,10 @@ "LabelMaxResumePercentageHelp": "A címeket teljesen lejátszottnak tekintjük, ha ezen idő után fejezed be.", "LabelMaxStreamingBitrateHelp": "Adj meg egy maximum bitrátát a streameléshez.", "LabelMinResumePercentageHelp": "A címeket nem lejátszottnak tekintjük, ha ez alatt az idő alatt fejezed be.", - "LabelMusicStreamingTranscodingBitrateHelp": "Határozz meg egy streamelési max bitrátát a zenékhez.", + "LabelMusicStreamingTranscodingBitrateHelp": "Határozz meg egy streamelési maximális bitrátát a zenékhez.", "DashboardVersionNumber": "Verzió: {0}", "DashboardServerName": "Szerver: {0}", "LabelWeb": "Web:", - "MediaInfoSoftware": "Szoftver", "MediaInfoStreamTypeAudio": "Audió", "MediaInfoStreamTypeSubtitle": "Felirat", "MediaInfoStreamTypeVideo": "Videó", @@ -1289,7 +1261,6 @@ "LabelUserLoginAttemptsBeforeLockout": "Sikertelen bejelentkezési kísérletek a felhasználó zárolása előtt:", "DashboardOperatingSystem": "Operációs rendszer: {0}", "DashboardArchitecture": "Platform: {0}", - "LaunchWebAppOnStartup": "Indítsa el a webes felületet a szerver indításakor", "MessageNoCollectionsAvailable": "A gyűjtemények lehetővé teszik Filmek, Sorozatok és Albumok egyéni csoportosítását. A gyűjtemények létrehozásához kattints a + gombra.", "MessageNoServersAvailable": "Az automatikus kiszolgálókeresés nem talált szervert.", "OptionLoginAttemptsBeforeLockout": "Meghatározza, hogy hány érvénytelen bejelentkezési kísérlet történhet zárolás előtt.", @@ -1310,7 +1281,7 @@ "Guide": "Műsorújság", "H264CrfHelp": "A Constant Rate Factor (CRF) az alapértelmezett minőségi beállítás az x264 enkóderhez. Az értékek 0 és 51 között állíthatók, ahol az alacsonyabb érték jobb minőséget eredményez (nagyobb fájl méret mellett). Az ajánlott érték 18 és 28 között van. Az x264 alapértelmezett beállítása 23, ez lehet kiindulási alap.", "HeaderAddScheduledTaskTrigger": "Vezérlő Hozzáadása", - "HeaderApiKeysHelp": "A külső alkalmazásoknak egy API kulcsra van szükésge, hogy kommunikáljanak a Jellyfin szerverrel. A kulcsokat egy Jellyfin fiókkal történő belépéssel lehet megkapni, vagy kézileg felvenni egy alkalmazáshoz tartozó kulcsot.", + "HeaderApiKeysHelp": "A külső alkalmazásoknak egy API kulcsra van szükésge, hogy kommunikáljanak a Szerverrel. A kulcsokat egy normális fiókkal történő belépéssel lehet megkapni, vagy kézileg felvenni egy alkalmazáshoz tartozó kulcsot.", "HeaderBranding": "Személyes arculat", "HeaderContinueListening": "Folyamatban lévő zenék", "HeaderDeleteTaskTrigger": "Feladatvezérlő törlése", @@ -1323,7 +1294,7 @@ "HeaderGuideProviders": "TV műsorújság Szolgáltatók", "HeaderHome": "Kezdőlap", "HeaderUpcomingOnTV": "Következő TV műsorok", - "ImportFavoriteChannelsHelp": "Ha engedélyezve van, csak a tuner eszközön kedvencként megjelölt csatornák kerülnek importálásra.", + "ImportFavoriteChannelsHelp": "Csak a tuner eszközön kedvencként megjelölt csatornák kerülnek importálásra.", "LabelAlbumArtHelp": "A használandó PN érték az albumborítók esetében, mely a upnp:albumArtURI dlna:profileID tulajdonságában szerepel. Néhány eszköz meghatározott értéket vár el, függetlenül a kép méretétől.", "LabelAlbumArtMaxHeight": "Albumborító maximális magasság:", "LabelAlbumArtMaxHeightHelp": "Albumborító maximális magasság mely upnp:albumArtURI kiajánlásra kerül.", @@ -1340,7 +1311,7 @@ "LabelEmbedAlbumArtDidl": "Albumborító beágyazása a Didl-be", "LabelEmbedAlbumArtDidlHelp": "Néhány eszköz ezt a megoldást részesíti előnyben az albumborítók esetében. Mások esetlegesen lejátszási hibát jeleznek, ha ez az opció engedélyezve van.", "LabelEnableBlastAliveMessages": "Blast alive üzenetek", - "LabelHttpsPortHelp": "A TCP port száma, melyen a Jellyfin HTTPS szervere figyel.", + "LabelHttpsPortHelp": "A TCP port száma, melyen a HTTPS szerver figyel.", "LabelIconMaxHeight": "Ikon maximális magasság:", "LabelIconMaxHeightHelp": "Ikon maximális magasság, mely az upnp:icon keresztül kiajánlásra kerül.", "LabelIconMaxWidth": "Ikon maximális szélesség:", @@ -1349,7 +1320,7 @@ "LabelKeepUpTo": "Őrizd meg:", "LabelKodiMetadataUser": "Mentsd el a következő felhasználó megtekintési adatát az NFO-ba:", "LabelKodiMetadataUserHelp": "A kiválasztott felhasználó megtekintési adata elmentésre kerül az NFO fájlokba, melyet azután más alkalmazások használhatnak.", - "LabelLocalHttpServerPortNumberHelp": "A TCP port száma, melyen a Jellyfin HTTP szerver figyel.", + "LabelLocalHttpServerPortNumberHelp": "A TCP port száma, melyen a HTTP szerver figyel.", "UserAgentHelp": "Adj meg egy egyedi HTTP user-agent fejlécet.", "XmlDocumentAttributeListHelp": "Ezek a tulajdonságok minden XML válaszüzenet gyökér elemére alkalmazásra kerülnek.", "Thumb": "Miniatűr", @@ -1385,7 +1356,6 @@ "HeaderFavoritePeople": "Kedvenc emberek", "HeaderApp": "Alkalmazás", "GroupVersions": "Verziók csoportosítása", - "CopyStreamURLError": "Hiba történt az URL másolása közben.", "OptionSubstring": "Szövegrészlet", "ButtonSplit": "Szétvág", "Absolute": "Abszolút", @@ -1393,7 +1363,6 @@ "SubtitleOffset": "Felirat eltolása", "SeriesDisplayOrderHelp": "Rakd sorba az epizódokat az adásba kerülésük dátuma, a DVD sorszám, vagy az abszolút számozás szerint.", "SelectAdminUsername": "Kérjük válassz felhasználónevet az adminisztrátor fiók számára.", - "QueueAllFromHere": "Az összes sorba állítása innen", "OptionThumbCard": "Miniatűr kártya", "OptionThumb": "Miniatűr", "OptionSpecialEpisode": "Különkiadások", @@ -1419,7 +1388,6 @@ "MetadataSettingChangeHelp": "A metaadat beállítások módosítása az ezután újonnan hozzáadott médiát fogja befolyásolni. A már meglévő tartalom frissítéséhez nyisd meg a részletek képernyőt, és kattints a frissítésre, vagy végezz tömeges frissítést a Metaadat Managerben.", "MessageConfirmDeleteGuideProvider": "Biztosan törölni szeretnéd ezt a műsorújság szolgáltatót?", "MessageConfirmAppExit": "Ki szeretnél lépni?", - "LaunchWebAppOnStartupHelp": "A web kliens indítása az alapértelmezett böngészőben a szerver indítása után. A kliens nem fog elindulni a szerver újraindítása után.", "LabelVideoResolution": "Videó felbontás:", "LabelVideoCodec": "Videó kodek:", "LabelVideoBitrate": "Videó bitráta:", @@ -1440,8 +1408,8 @@ "PasswordResetProviderHelp": "Válassz egy jelszó-visszaállítási szolgáltatót, amelyet akkor kell használni, amikor a felhasználó jelszó-visszaállítást kér", "OptionResElement": "res elem", "OptionReportByteRangeSeekingWhenTranscodingHelp": "Erre olyan készülékek esetében van szükség, amelyek időigénye nem nagyon jó.", - "OptionPlainVideoItemsHelp": "Ha engedélyezve van, akkor az összes videót a DIDL-ben \"object.item.videoItem\" -ként ábrázolja, nem pedig egy specifikusabb típusként, például \"object.item.videoItem.movie\" .", - "OptionPlainStorageFoldersHelp": "Ha engedélyezve van, akkor az összes mappa a DIDL-ben \"object.container.storageFolder\" lesz, nem pedig egy specifikusabb típusként, például \"object.container.person.musicArtist\".", + "OptionPlainVideoItemsHelp": "Az összes videót a DIDL-ben \"object.item.videoItem\" -ként ábrázolja, nem pedig egy specifikusabb típusként, például \"object.item.videoItem.movie\" .", + "OptionPlainStorageFoldersHelp": "Az összes mappa a DIDL-ben \"object.container.storageFolder\" lesz, nem pedig egy specifikusabb típusként, például \"object.container.person.musicArtist\".", "OptionHlsSegmentedSubtitles": "HLS szegmentált feliratok", "OptionEquals": "Egyenlő", "OptionForceRemoteSourceTranscoding": "A távoli médiaforrások (például az élő TV) átkódolásának kényszerítése", @@ -1484,7 +1452,6 @@ "Track": "Szám", "Season": "Évad", "Person": "Személy", - "OtherArtist": "Más előadók", "Movie": "Film", "Episode": "Epizód", "ClientSettings": "Kliens beállítások", @@ -1499,18 +1466,15 @@ "UnsupportedPlayback": "Jellyfin nem tud DRM-titkosított tartalmak dekriptálására, ettől függetlenül a lejátszással mindig megpróbálkozik. Néhány fájl emiatt teljesen fekete képernyőt ad, amely vagy a titkosítás miatt van, vagy nem olyan nem támogatott tartalmak miatt, mint az interaktív címek.", "YadifBob": "YADIF Bob", "Yadif": "YADIF", - "ReleaseGroup": "Kiadócsoport", - "MessageUnauthorizedUser": "Jelenleg nincs jogosultságod a szerverhez való hozzáféréshez. Kérjük, lépj kapcsolatba az adminisztrátorral további információkért!", "ButtonTogglePlaylist": "Lejátszási listák", "ButtonToggleContextMenu": "Továbbiak", "Filter": "Szűrés", "New": "Új", "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.", + "LabelEnableHttpsHelp": "Figyelés a megadott HTTPS porton. É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", @@ -1552,8 +1516,8 @@ "LabelSyncPlayTimeOffset": "Időeltolás a szerverhez képest:", "EnableDetailsBannerHelp": "Megjelenít egy banner képet a részletes információoldal tetején.", "EnableDetailsBanner": "Banner a részletes oldalon", - "EnableBlurhashHelp": "A még betöltés alatt álló képek helyén egy elmosódott helyettesítő képet jelenít meg", - "EnableBlurhash": "Elmosódott helyettesítőképek engedélyezése", + "EnableBlurHashHelp": "A még betöltés alatt álló képek helyén egy elmosódott helyettesítő képet jelenít meg", + "EnableBlurHash": "Elmosódott helyettesítőképek engedélyezése", "ShowMore": "Továbbiak megtekintése", "ShowLess": "Kevesebb mutatása", "ButtonCast": "Vetítés", @@ -1575,5 +1539,8 @@ "ClearQueue": "Sor ürítése", "StopPlayback": "Lejátszás leállítása", "ViewAlbumArtist": "Album előadójának megtekintése", - "ButtonPlayer": "Lejátszó" + "ButtonPlayer": "Lejátszó", + "PreviousTrack": "Ugrás az előzőhöz", + "NextTrack": "Ugrás a következőre", + "LabelUnstable": "Instabil" } diff --git a/src/strings/id.json b/src/strings/id.json index 9d347b7dcc..cb840a4989 100644 --- a/src/strings/id.json +++ b/src/strings/id.json @@ -15,7 +15,6 @@ "LabelSaveLocalMetadata": "Simpan artwork dan metadata ke dalam folder media", "LabelSaveLocalMetadataHelp": "Menyimpan artwork dan metadata langsung ke folder media akan meletakkan mereka di tempat yang mudah diedit.", "LabelTimeLimitHours": "Batas waktu (jam):", - "LabelYourFirstName": "Nama depan anda:", "LabelYoureDone": "Kamu sudah selesai!", "MessageNothingHere": "Tidak ada disini.", "MessagePleaseEnsureInternetMetadata": "Pastikan unduh metadata dari internet diaktifkan.", @@ -25,7 +24,6 @@ "OptionEnableAccessToAllLibraries": "Aktifkan akses ke semua pustaka", "ParentalRating": "Parental Rating", "TabAccess": "Akses", - "TabPlaylist": "Daftar Putar", "TabProfile": "Profil", "TellUsAboutYourself": "Beritahu kami tentang anda", "ThisWizardWillGuideYou": "Panduan ini akan memandu Anda melalui proses setup. Untuk memulai, silahkan pilih bahasa yang Anda gunakan.", @@ -56,13 +54,12 @@ "Actor": "Aktor", "Delete": "Hapus", "DefaultMetadataLangaugeDescription": "Berikut ini adalah standar Anda dan dapat dikustomisasi pada tiap pustakanya.", - "DefaultErrorMessage": "Terdapat galat dalam memproses permintaan. Silakan coba kembali nanti.", + "ErrorDefault": "Terdapat galat dalam memproses permintaan. Silakan coba kembali nanti.", "Default": "Standar", "DeathDateValue": "Meninggal: {0}", "DatePlayed": "Tanggal dimainkan", "DateAdded": "Tanggal ditambahkan", "CriticRating": "Kritik peringkat", - "CopyStreamURLError": "Terdapat galat dalam penyalinan pranala.", "CopyStreamURLSuccess": "Pranala berhasil disalin.", "CopyStreamURL": "Salin Pranala Stream", "Continuing": "Melanjutkan", @@ -82,7 +79,6 @@ "Categories": "Kategori", "CancelRecording": "Batalkan perekaman", "ButtonWebsite": "Situs web", - "ButtonViewWebsite": "Tampilkan situs web", "ButtonUp": "Atas", "ButtonTrailer": "Cuplikan", "ButtonSubmit": "Kirim", @@ -119,7 +115,6 @@ "ButtonNetwork": "Jaringan", "ButtonMore": "Lebih banyak", "ButtonLibraryAccess": "Akses pustaka", - "ButtonLearnMore": "Pelajari lebih lanjut", "ButtonInfo": "Info", "ButtonHome": "Beranda", "ButtonHelp": "Bantuan", @@ -150,7 +145,7 @@ "ButtonAddMediaLibrary": "Tambah Pustaka Media", "ButtonAddImage": "Tamba gambar", "ButtonAdd": "Tambah", - "BrowsePluginCatalogMessage": "Jelajahi katalog plugin kamu untuk melihat plugin yang tersedia.", + "MessageBrowsePluginCatalog": "Jelajahi katalog plugin kamu untuk melihat plugin yang tersedia.", "Browse": "Jelajah", "BoxRear": "Kotak (belakang)", "Box": "Kotak", @@ -162,7 +157,6 @@ "Banner": "Spanduk", "Backdrops": "Latar belakang", "Backdrop": "Latar belakang", - "AutoBasedOnLanguageSetting": "Auto (berdasarkan pengaturan bahasa)", "Auto": "Auto", "AuthProviderHelp": "Pilih Penyedia Autentikasi yang akan digunakan untuk mengautentikasi kata sandi pengguna ini.", "Audio": "Audio", @@ -191,7 +185,6 @@ "AddToPlaylist": "Tambah ke dalam daftar putar", "AddToPlayQueue": "Tambah ke dalam antrean putar", "AddToCollection": "Tambah ke dalam koleksi", - "AddItemToCollectionHelp": "Tambahkan item ke dalam koleksi melalui pencarian dan gunakan klik kanan atau ketuk menu untuk menambahkannya ke dalam koleksi.", "AccessRestrictedTryAgainLater": "Akses sedang dibatasi. Mohon tunggu beberapa saat lagi", "Absolute": "Absolut", "Songs": "Lagu", diff --git a/src/strings/is-is.json b/src/strings/is-is.json index ff8f924e22..66ea452a64 100644 --- a/src/strings/is-is.json +++ b/src/strings/is-is.json @@ -23,7 +23,6 @@ "LabelNext": "Næsta", "LabelPrevious": "Fyrra", "LabelTimeLimitHours": "Tímamörk (í klukkustundum):", - "LabelYourFirstName": "Fyrra nafn:", "MoreUsersCanBeAddedLater": "Þú getur bætt við fleiri notendum síðar undir stjórnborðinu.", "NextUp": "Næst á dagskrá", "OptionEnableAccessFromAllDevices": "Virkja aðgang frá öllum tækjum", @@ -31,7 +30,6 @@ "TabAccess": "Aðgangur", "TabNotifications": "Tilkynningar", "TabPassword": "Lykilorð", - "TabPlaylist": "Afspilunar listi", "WelcomeToProject": "Velkomin/n í Jellyfin!", "Anytime": "Hvenær sem er", "Genres": "Tegundir", @@ -52,8 +50,7 @@ "Actor": "Leikari", "Add": "Bæta við", "AddToCollection": "Bæta í safn", - "AutoBasedOnLanguageSetting": "Sjálfkrafa (byggt á tungumálastillingum)", - "BrowsePluginCatalogMessage": "Skoða viðbætur sem eru í boði í viðbóta safninu okkar.", + "MessageBrowsePluginCatalog": "Skoða viðbætur sem eru í boði í viðbóta safninu okkar.", "BurnSubtitlesHelp": "Ákveður hvort þjónninn eigi að brenna textann inn í myndaskránna þegar verið er að umbreyta skrársniðinu. Með því að forðast að brenna inn textann er hægt að minnka álag á þjóninn (tölvuna). Veljið sjálfkrafa til þess að brenna texta byggðan á myndum (VOBSUB, PGS, SUB/IDX, ofl) og ákveðna ASS/SSA texta.", "OptionSaveMetadataAsHidden": "Geyma gagnagögn (metadata) og myndir sem leynilegar skrár", "PasswordMatchError": "Lykilorð og ítrekun lykilorðs þarf að passa.", @@ -80,7 +77,6 @@ "AddedOnValue": "Bætti við {0}", "AirDate": "Frumsýningardagur", "Aired": "Frumsýnt", - "AddItemToCollectionHelp": "Þú getur bætt við efni í söfn með því að leita og svo hægri smella eða ýta á valmyndina.", "AddToPlaylist": "Bæta á spilunarlista", "AdditionalNotificationServices": "Skoða viðbætur til þess að bæta við fleiri tilkynningarþjónustum.", "Alerts": "Viðvaranir", @@ -145,7 +141,7 @@ "Overview": "Yfirlit", "PackageInstallCompleted": "{0} lokið við uppsetningu.", "PasswordResetComplete": "Lykilorðið hefur verið endurstillt.", - "PasswordResetHeader": "Endurstilla lykilorð", + "HeaderResetPassword": "Endurstilla lykilorð", "PasswordResetProviderHelp": "Veldu þjónustu til þess að endurstilla lykilorð þegar notandi biður um það", "PictureInPicture": "Brot úr ramma", "PinCodeResetComplete": "Pinnið þitt hefur verið endursett.", @@ -177,7 +173,6 @@ "HeaderCastCrew": "Leikarar og Áhöfn", "HeaderCastAndCrew": "Leikarar og Áhöfn", "HeaderBooks": "Bækur", - "HeaderAutomaticUpdates": "Sjálfvirkar Uppfærslur", "HeaderAlbums": "Plötur", "HeaderAdmin": "Stjórnandi", "GuideProviderLogin": "Innskrá", @@ -214,7 +209,6 @@ "Categories": "Flokkar", "CancelRecording": "Hætta við upptöku", "ButtonWebsite": "Vefsiða", - "ButtonViewWebsite": "Skoða vefsíðu", "ButtonUp": "Upp", "ButtonUninstall": "Fjarlægja", "ButtonTrailer": "Sýnishorn", @@ -252,7 +246,6 @@ "ButtonMore": "Meira", "ButtonManualLogin": "Handvirkt Auðkenni", "ButtonLibraryAccess": "Aðgangur að safni", - "ButtonLearnMore": "Læra meira", "ButtonInfo": "Upplýsingar", "ButtonHome": "Heim", "ButtonHelp": "Hjálp", @@ -380,12 +373,11 @@ "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.", + "ErrorDefault": "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", @@ -419,11 +411,9 @@ "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", @@ -434,7 +424,7 @@ "ValueOneEpisode": "1 þáttur", "Up": "Upp", "Unplayed": "Óspilað", - "UninstallPluginHeader": "Fjarlægja Viðbót", + "HeaderUninstallPlugin": "Fjarlægja Viðbót", "Tuesday": "Þriðjudagur", "Transcoding": "Umkóðun", "Trailers": "Sýnishorn", @@ -534,13 +524,11 @@ "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 854e5fa489..9035251c12 100644 --- a/src/strings/it.json +++ b/src/strings/it.json @@ -3,7 +3,6 @@ "AccessRestrictedTryAgainLater": "L'accesso è attualmente limitato. Si prega di riprovare più tardi.", "Actor": "Attore", "Add": "Aggiungi", - "AddItemToCollectionHelp": "Aggiungi elementi alle collezioni ricercandoli e utilizzando il pulsante destro del mouse o tocca i menu per aggiungerli a una raccolta.", "AddToCollection": "Aggiunto alla collezione", "AddToPlayQueue": "Aggiungi alla coda di riproduzione", "AddToPlaylist": "Aggiungi alla playlist", @@ -34,7 +33,6 @@ "Ascending": "Crescente", "AspectRatio": "Rapporto d'Aspetto", "AttributeNew": "Nuovo", - "AutoBasedOnLanguageSetting": "Auto (basato sull'impostazione della lingua)", "Backdrop": "Sfondo", "Backdrops": "Sfondi", "BirthDateValue": "Nato il: {0}", @@ -44,7 +42,7 @@ "Books": "Libri", "BoxRear": "Box (retro)", "Browse": "Esplora", - "BrowsePluginCatalogMessage": "Sfoglia il catalogo dei Plugins.", + "MessageBrowsePluginCatalog": "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.", "ButtonAdd": "Aggiungi", "ButtonAddMediaLibrary": "Aggiungi raccolta multimediale", @@ -72,14 +70,13 @@ "ButtonGotIt": "Ho capito", "ButtonGuide": "Guida", "ButtonHelp": "Aiuto", - "ButtonLearnMore": "saperne di più", "ButtonLibraryAccess": "Accesso biblioteca", "ButtonManualLogin": "Accesso Manuale", "ButtonMore": "Altro", "ButtonNetwork": "Rete", "ButtonNew": "Nuovo", "ButtonNextTrack": "Traccia Successiva", - "ButtonOff": "Spento", + "ButtonOff": "No", "ButtonOpen": "Apri", "ButtonParentalControl": "Controllo parentale", "ButtonPause": "Pausa", @@ -115,7 +112,6 @@ "ButtonSubtitles": "Sottotitoli", "ButtonUninstall": "Disinstalla", "ButtonUp": "Su", - "ButtonViewWebsite": "Visualizza sito web", "ButtonWebsite": "Web", "CancelRecording": "Annulla la registrazione", "CancelSeries": "Annulla Serie TV", @@ -145,7 +141,7 @@ "DatePlayed": "Visto il", "DeathDateValue": "Morto: {0}", "Default": "Predefinito", - "DefaultErrorMessage": "Si è verificato un errore durante l'elaborazione della richiesta. Si prega di riprovare più tardi.", + "ErrorDefault": "Si è verificato un errore durante l'elaborazione della richiesta. Si prega di riprovare più tardi.", "DefaultMetadataLangaugeDescription": "Queste sono le tue impostazioni predefinite e possono essere personalizzate per ogni libreria.", "DefaultSubtitlesHelp": "I sottotitoli vengono letti in base agli attributi predefiniti e forzati dai metadati integrati. Le preferenze di lingua sono prese in considerazione quando sono disponibili più opzioni.", "Delete": "Elimina", @@ -213,7 +209,7 @@ "ErrorAddingXmlTvFile": "Si è verificato un errore durante l'accesso al file XMLTV. Si prega di assicurarsi che il file esista e riprovare.", "ErrorDeletingItem": "Si è verificato un errore durante l'eliminazione dell'elemento da Jellyfin Server. Verifica che Jellyfin Server abbia accesso in scrittura sulla cartella multimediale e riprova.", "ErrorGettingTvLineups": "Si è verificato un errore durante il download delle formazioni TV. Assicurarsi che le vostre informazioni siano corrette e riprovare.", - "ErrorMessageStartHourGreaterThanEnd": "Il tempo della fine deve essere maggiore del tempo di avvio.", + "ErrorStartHourGreaterThanEnd": "Il tempo della fine deve essere maggiore del tempo di avvio.", "ErrorPleaseSelectLineup": "Si prega di selezionare una scaletta e riprovare. Se non ci sono formazioni disponibili, si prega allora di verificare che il vostro nome utente, password, e il codice postale siano corretti.", "ErrorSavingTvProvider": "Si è verificato un errore durante il salvataggio del fornitore di TV. Si prega di assicurarsi che sia accessibile e riprovare.", "EveryNDays": "Ogni {0} giorni", @@ -250,7 +246,6 @@ "H264CrfHelp": "Il fattore di frequenza costante (CRF) è l'impostazione di qualità predefinita per l'encoder x264. È possibile impostare i valori compresi tra 0 e 51, in cui valori inferiori potrebbero determinare una migliore qualità (a discapito delle dimensioni superiori dei file). I valori normali sono compresi tra 18 e 28. L'impostazione predefinita per x264 è 23, quindi è possibile utilizzare questo come punto di partenza.", "EncoderPresetHelp": "Scegli una velocità maggiore per migliorare le performance, o minore per incrementare la qualità.", "HDPrograms": "Programmi HD", - "HandledByProxy": "Gestito dal reverse proxy", "HardwareAccelerationWarning": "L'attivazione dell'accelerazione hardware potrebbe causare instabilità in qualche sistema. Assicurarsi che il sistema operativo e i driver video siano completamente aggiornati. Se hai difficoltà a riprodurre video dopo aver abilitato questa operazione, dovrai cambiare l'impostazione in None.", "HeaderAccessSchedule": "Orario di accesso", "HeaderAccessScheduleHelp": "Creare un programma di accesso per limitare l'accesso a determinate ore.", @@ -273,7 +268,6 @@ "HeaderApiKeysHelp": "Le Applicazioni esterne devono avere una chiave API per comunicare con il Server Jellyfin. Le chiavi sono emesse accedendo con un account Jellyfin, o fornendo manualmente una chiave all'applicazione.", "HeaderAudioBooks": "Audiolibri", "HeaderAudioSettings": "Impostazioni audio", - "HeaderAutomaticUpdates": "Aggiornamenti Automatici", "HeaderBlockItemsWithNoRating": "Blocca elementi sconosciuti o senza informazioni:", "HeaderBooks": "Libri", "HeaderBranding": "Personalizza", @@ -484,8 +478,6 @@ "LabelAlbumArtists": "Artisti album:", "LabelAll": "Tutti", "LabelAllowHWTranscoding": "Consenti transcodifica hardware", - "LabelAllowServerAutoRestart": "Consenti al server di Riavviarsi automaticamente per applicare gli aggiornamenti", - "LabelAllowServerAutoRestartHelp": "Il server si Riavvierà solamente quando nessun utente è connesso.", "LabelAllowedRemoteAddresses": "Filtro indirizzo IP Remoto:", "LabelAllowedRemoteAddressesMode": "Modalità filtro indirizzo IP remoto:", "LabelAppName": "Nome app", @@ -521,7 +513,6 @@ "LabelCustomDeviceDisplayName": "Nome da visualizzare:", "LabelCustomDeviceDisplayNameHelp": "Fornire un nome di visualizzazione personalizzato o lasciare vuoto per utilizzare il nome riportato dal dispositivo.", "LabelCustomRating": "Voto personalizzato:", - "LabelDashboardTheme": "Tema dashboard del server:", "LabelDateAdded": "Aggiunto il:", "LabelDateAddedBehavior": "Data di comportamento per i nuovi contenuti:", "LabelDateAddedBehaviorHelp": "Se un valore di metadati è presente sarà sempre utilizzato prima una di queste opzioni.", @@ -718,7 +709,6 @@ "LabelScheduledTaskLastRan": "Ultima esecuzione {0}, taking {1}.", "LabelScreensaver": "Salvaschermo:", "LabelSeasonNumber": "Numero stagione:", - "LabelSecureConnectionsMode": "Modalità connessione sicura:", "LabelSelectFolderGroups": "Raggruppa i contenuti delle seguenti cartelle in viste come Film, Musica e Serie TV:", "LabelSelectFolderGroupsHelp": "Le cartelle non selezionate verranno mostrate come se stesse nelle proprie viste.", "LabelSelectUsers": "Seleziona Utenti:", @@ -737,7 +727,6 @@ "LabelSortBy": "Ordina per:", "LabelSortOrder": "Ordinato per:", "LabelSortTitle": "Titolo per ordinamento:", - "LabelSoundEffects": "Effetti sonori:", "LabelSource": "Origine:", "LabelSpecialSeasonsDisplayName": "Nome della stagione speciale:", "LabelSportsCategories": "Categorie sport:", @@ -783,11 +772,9 @@ "LabelValue": "valore:", "LabelVersion": "Versione:", "LabelVersionInstalled": "{0} installato", - "LabelVersionNumber": "Versione {0}", "LabelXDlnaCapHelp": "Determina il contenuto dell'elemento X_DLNACAP in urn:schemas-dlna-org:device-1-0.", "LabelXDlnaDocHelp": "Determina il contenuto dell'elemento X_DLNACAP nella urn: schemas-DLNA-org: dispositivo 1-0 namespace.", "LabelYear": "Anno:", - "LabelYourFirstName": "Il tuo nome:", "LabelYoureDone": "Hai Finito!", "LabelZipCode": "Cap:", "LabelffmpegPath": "Percorso FFmpeg:", @@ -844,14 +831,12 @@ "MessageCreateAccountAt": "Crea un account a {0}", "MessageDeleteTaskTrigger": "Sei sicuro di voler cancellare questo evento?", "MessageDirectoryPickerBSDInstruction": "Per BSD, potrebbe essere necessario per configurare le unità all'interno della vostra prigione FreeNAS al fine di permettere ricamato accedervi.", - "MessageDirectoryPickerInstruction": "Percorsi di rete possono essere inseriti manualmente nel caso in cui il pulsante Rete non riesce a individuare i vostri dispositivi. Ad esempio, {0} o {1}.", "MessageDirectoryPickerLinuxInstruction": "Per Linux su Arch Linux, CentOS, Debian, Fedora, openSUSE o Ubuntu, è necessario concedere all'utente del servizio almeno l'accesso alle posizioni di archiviazione.", "MessageDownloadQueued": "Scaricamento programmato.", "MessageEnablingOptionLongerScans": "L'abilitazione di questa opzione può rallentare significativamente le scansioni della libreria.", "MessageFileReadError": "Si è verificato un errore durante la lettura del file. Si prega di riprovare.", "MessageForgotPasswordFileCreated": "Il seguente file è stato creato sul server e contiene le istruzioni su come procedere:", "MessageForgotPasswordInNetworkRequired": "Riprova all'interno della rete domestica per avviare il processo di reimpostazione della password.", - "MessageInstallPluginFromApp": "Questo plugin deve essere installato dall'app in cui vuoi farlo funzionare.", "MessageInvalidForgotPasswordPin": "É stato inserito un codice pin invalido o scaduto . Riprova.", "MessageInvalidUser": "Utente o password errato. Riprova.", "MessageItemSaved": "Elemento salvato.", @@ -897,15 +882,15 @@ "News": "Notizie", "Next": "Prossimo", "NoNewDevicesFound": "Non sono stati trovati nuovi dispositivi. Per aggiungere un nuovo sintonizzatore, chiudere questa finestra di dialogo e immettere manualmente le informazioni sul dispositivo.", - "NoNextUpItemsMessage": "Trovato niente. Inizia a guardare i tuoi programmi!", - "NoPluginConfigurationMessage": "Questo Plugin non ha impostazioni da configurare.", + "MessageNoNextUpItems": "Trovato niente. Inizia a guardare i tuoi programmi!", + "MessageNoPluginConfiguration": "Questo Plugin non ha impostazioni da configurare.", "NoSubtitleSearchResultsFound": "Nessun risultato.", "NoSubtitles": "Nessuno", "NoSubtitlesHelp": "I sottotitoli non verranno caricati per impostazione predefinita.Possono essere ancora caricati manualmente durante la riproduzione.", "None": "Nessuno", "Normal": "Normale", "NumLocationsValue": "{0} cartelle", - "Off": "Spento", + "Off": "No", "OneChannel": "Un canale", "OnlyForcedSubtitles": "Solo forzati", "OnlyForcedSubtitlesHelp": "Solo i sottotitoli contrassegnati come forzati saranno caricati.", @@ -1041,7 +1026,7 @@ "PasswordMatchError": "Le password non coincidono.", "PasswordResetComplete": "Reset della password eseguito.", "PasswordResetConfirmation": "Sicuro di voler eseguire il reset della password?", - "PasswordResetHeader": "Reset Password", + "HeaderResetPassword": "Reset Password", "PasswordSaved": "Password salvata.", "People": "Attori", "PerfectMatch": "Corrispondenza perfetta", @@ -1062,10 +1047,9 @@ "PleaseEnterNameOrId": "Per favore inserisci un nome o un ID esterno.", "PleaseRestartServerName": "Per favore riavvia Jellyfin Server - {0}.", "PleaseSelectTwoItems": "Seleziona almeno due elementi.", - "PluginInstalledMessage": "Il plugin è stato installato correttamente. Il server Jellyfin dovrà essere riavviato affinché le modifiche abbiano effetto.", + "MessagePluginInstalled": "Il plugin è stato installato correttamente. Il server Jellyfin dovrà essere riavviato affinché le modifiche abbiano effetto.", "PreferEmbeddedTitlesOverFileNames": "Preferisci titoli integrati ai nomi dei file", "PreferEmbeddedTitlesOverFileNamesHelp": "Determina il titolo predefinito usato quando non sono disponibili metadati locali o da Internet.", - "PreferredNotRequired": "Preferito, ma non richiesto", "Premiere": "Prima visione", "Premieres": "Prime Visioni", "Previous": "Precedente", @@ -1074,7 +1058,6 @@ "ProductionLocations": "Sedi di produzione", "Programs": "Programmi", "Quality": "Qualità", - "QueueAllFromHere": "In coda tutto da qui in poi", "Raised": "Rilievo", "Rate": "Vota", "RecentlyWatched": "Visti di recente", @@ -1085,7 +1068,7 @@ "Record": "Registra", "RecordSeries": "Registra serie TV", "RecordingCancelled": "Registrazione annullata.", - "RecordingPathChangeMessage": "La modifica della cartella di registrazione non migrerà le registrazioni esistenti dalla vecchia posizione al nuovo. Sarà necessario spostarli manualmente, se lo si desidera.", + "MessageChangeRecordingPath": "La modifica della cartella di registrazione non migrerà le registrazioni esistenti dalla vecchia posizione al nuovo. Sarà necessario spostarli manualmente, se lo si desidera.", "RecordingScheduled": "Registrazione pianificata.", "Recordings": "Registrazioni", "Refresh": "Aggiorna", @@ -1103,10 +1086,8 @@ "RepeatOne": "Ripeti uno", "ReplaceAllMetadata": "Sostituisci tutti i metadati", "ReplaceExistingImages": "Sovrascrivi immagini esistenti", - "RequiredForAllRemoteConnections": "Richiesto per tutte le connessioni remote", "ResumeAt": "Riprendi da {0}", "Rewind": "Riavvolgi", - "RunAtStartup": "Esegui all'avvio", "Runtime": "Durata", "Saturday": "Sabato", "Save": "Salva", @@ -1229,7 +1210,7 @@ "TvLibraryHelp": "Rivedere la {0} guida di denominazione TV{1}.", "Uniform": "Uniforme", "UninstallPluginConfirmation": "Sei sicuro di voler Disinstallare {0}?", - "UninstallPluginHeader": "Disinstalla Plugin", + "HeaderUninstallPlugin": "Disinstalla Plugin", "Unmute": "Togli muto", "Unplayed": "Non visto", "Unrated": "Non votato", @@ -1258,9 +1239,7 @@ "ValueTimeLimitSingleHour": "Tempo limite: 1 ora", "ValueVideoCodec": "Codec Video: {0}", "Vertical": "Verticale", - "VideoRange": "Range del Video", "ViewAlbum": "Visualizza album", - "ViewArtist": "Visualizza artista", "ViewPlaybackInfo": "Vedi info sulla riproduzione", "Watched": "Visto", "Wednesday": "Mercoledì", @@ -1389,7 +1368,6 @@ "LabelPlaylist": "Playlist:", "LabelPlayMethod": "Metodo di riproduzione:", "LabelPleaseRestart": "Le modifiche avranno effetto dopo aver manualmente ricaricato il client web.", - "LabelSkin": "Skin:", "LabelTranscodes": "Trascodifiche:", "LabelTranscodingFramerate": "Framerate di trascodifica:", "LabelTranscodingProgress": "Progresso di trascodifica:", @@ -1398,12 +1376,8 @@ "LabelVideo": "Video", "DashboardArchitecture": "Architettura: {0}", "LabelWeb": "Web:", - "LaunchWebAppOnStartup": "Lancia l'interfaccia web quando viene avviato il server", - "LaunchWebAppOnStartupHelp": "Apri il client web nel tuo web browser quando il server si avvia inizialmente. Ciò non accadrà quando si usa la funzione riavvio server.", "LeaveBlankToNotSetAPassword": "Puoi lasciare questo campo vuoto per non impostare alcuna password.", - "LinksValue": "Link: {0}", "MediaInfoTimestamp": "Orario", - "MediaInfoSoftware": "Software", "Mobile": "Mobile", "MoreMediaInfo": "Informazioni sui Media", "MusicAlbum": "Album Musicale", @@ -1439,7 +1413,6 @@ "TabLogs": "Log", "TabNetworking": "Rete", "TabPassword": "Password", - "TabPlaylist": "Playlist", "TabPlugins": "Plugin", "TabServer": "Server", "TabStreaming": "Streaming", @@ -1451,7 +1424,6 @@ "OptionRandom": "Casuale", "MessageConfirmAppExit": "Vuoi uscire?", "HeaderNavigation": "Navigazione", - "CopyStreamURLError": "Si è verificato un errore nel copiare l'indirizzo.", "PlaybackErrorNoCompatibleStream": "Il client è incompatibile con il media e il server non sta inviando un formato compatibile.", "OptionForceRemoteSourceTranscoding": "Forza la transcodifica da fonti di media remoti (come LiveTV)", "NoCreatedLibraries": "Sembra che tu non abbia ancora creato delle librerie. {0}Vuoi crearne una adesso?{1}", @@ -1487,16 +1459,13 @@ "Yadif": "YADIF", "Track": "Traccia", "Season": "Stagione", - "OtherArtist": "Altri Artisti", "Movie": "Film", "LabelLibraryPageSizeHelp": "Numero di elementi presenti nella paginazione della libreria. Il valore 0 disabilita la paginazione.", "LabelLibraryPageSize": "Elementi nella paginazione della libreria:", "Episode": "Episodio", "BoxSet": "Cofanetto", "AlbumArtist": "Artisti dell'Album", - "ReleaseGroup": "Release Group", "UnsupportedPlayback": "Jellyfin non è in grado di decriptare i contenuti protetti da DRM ma tutti i contenuti verranno tentati a prescindere, compresi quelli protetti. Alcuni file potrebbero apparire completamente neri a causa della crittografia o di altre funzionalità non supportate, come i titoli interattivi.", - "MessageUnauthorizedUser": "Non sei autorizzato ad accedere in questo momento al server. Contatta l'amministratore per ulteriori dettagli.", "ButtonTogglePlaylist": "Playlist", "ButtonToggleContextMenu": "Altro", "HeaderFavoritePlaylists": "Playlist Favorite", @@ -1515,7 +1484,6 @@ "TabDVR": "DVR", "SaveChanges": "Salva modifiche", "HeaderDVR": "DVR", - "LabelNightly": "Nightly", "SyncPlayAccessHelp": "Selezionare il livello d'accesso di questo utente a SyncPlay che permetterà di riprodurre contemporaneamente su diversi dispositivi.", "MessageSyncPlayErrorMedia": "Impossibile abilitare SyncPlay! Errore media.", "MessageSyncPlayErrorMissingSession": "Impossibile abilitare SyncPlay! Sessione mancante.", @@ -1527,7 +1495,7 @@ "MessageSyncPlayGroupDoesNotExist": "Impossibile unirsi al gruppo perchè non esiste.", "MessageSyncPlayPlaybackPermissionRequired": "Permesso di riproduzione necessario.", "MessageSyncPlayNoGroupsAvailable": "Nessun gruppo disponibile. Inizia a riprodurre qualcosa.", - "MessageSyncPlayGroupWait": "{0} sta bufferizzando...", + "MessageSyncPlayGroupWait": "{0} sta bufferizzando…", "MessageSyncPlayUserLeft": "{0} ha lasciato il gruppo.", "MessageSyncPlayUserJoined": "{0} si è unito al gruppo.", "MessageSyncPlayDisabled": "SyncPlay disabilitato.", @@ -1548,8 +1516,8 @@ "HeaderSyncPlaySelectGroup": "Unisciti a un gruppo", "EnableDetailsBannerHelp": "Mostra il banner nella parte superiore della pagina di dettaglio dell'elemento.", "EnableDetailsBanner": "Banner Dettagli", - "EnableBlurhashHelp": "Le immagini ancora da caricare saranno mostrate inizialmente sfocate", - "EnableBlurhash": "Abilita i segnaposto sfocati per le immagini", + "EnableBlurHashHelp": "Le immagini ancora da caricare saranno mostrate inizialmente sfocate", + "EnableBlurHash": "Abilita i segnaposto sfocati per le immagini", "ShowMore": "Mostra di più", "ShowLess": "Mostra meno", "ButtonCast": "Cast", @@ -1571,5 +1539,6 @@ "ViewAlbumArtist": "Visualizza artista dell'album", "Writers": "Scrittori", "ClearQueue": "Svuota la coda", - "StopPlayback": "Interrompi riproduzione" + "StopPlayback": "Interrompi riproduzione", + "LabelUnstable": "Unstable" } diff --git a/src/strings/ja.json b/src/strings/ja.json index 118bd739e6..4e0a0a4fed 100644 --- a/src/strings/ja.json +++ b/src/strings/ja.json @@ -39,7 +39,6 @@ "Audio": "オーディオ", "AuthProviderHelp": "ユーザーのパスワードを認証するために使用する認証プロバイダを選択してください。", "Auto": "自動", - "AutoBasedOnLanguageSetting": "自動選択(設定されている言語を優先)", "Backdrop": "背景", "Backdrops": "背景", "Banner": "バナー", @@ -52,7 +51,7 @@ "Box": "ボックス", "BoxRear": "ボックス(後)", "Browse": "ブラウズ", - "BrowsePluginCatalogMessage": "利用可能なプラグインを表示するには、プラグインカタログを参照してください。", + "MessageBrowsePluginCatalog": "利用可能なプラグインを表示するには、プラグインカタログを参照してください。", "BurnSubtitlesHelp": "ビデオのトランスコード時にサーバーが字幕を焼付けるかどうかを決定します。 この字幕焼付けを避けると、サーバーのパフォーマンスが非常に向上します。 画像ベースの形式 (VOBSUB, PGS, SUB, IDX など) と特定の ASS または SSA 字幕でだけ焼付けを行うには、自動を選んでください。", "ButtonAdd": "追加", "ButtonAddMediaLibrary": "メディアライブラリを追加", @@ -76,14 +75,13 @@ "ButtonEditImages": "イメージを編集", "ButtonEditOtherUserPreferences": "ユーザーのアバターイメージやプロフィールなどの個人設定を編集。", "ButtonFilter": "フィルタ", - "ButtonForgotPassword": "パスワードを忘れました", + "ButtonForgotPassword": "パスワードを忘れた", "ButtonFullscreen": "フルスクリーン", "ButtonGotIt": "了解", "ButtonGuide": "ガイド", "ButtonHelp": "ヘルプ", "ButtonHome": "ホーム", "ButtonInfo": "情報", - "ButtonLearnMore": "もっと詳しく", "ButtonLibraryAccess": "ライブラリへアクセス", "ButtonManualLogin": "マニュアルログイン", "ButtonMore": "もっと", @@ -127,7 +125,6 @@ "ButtonTrailer": "予告", "ButtonUninstall": "アンインストール", "ButtonUp": "上", - "ButtonViewWebsite": "ウェブサイトで見る", "ButtonWebsite": "ウェブサイト", "CancelRecording": "レコーディングをキャンセル", "CancelSeries": "中止したシリーズ", @@ -157,7 +154,7 @@ "DateAdded": "追加日時", "DatePlayed": "再生日時", "Default": "デフォルト", - "DefaultErrorMessage": "要求の処理中にエラーが発生しました。 後でもう一度やり直してください。", + "ErrorDefault": "要求の処理中にエラーが発生しました。 後でもう一度やり直してください。", "DefaultMetadataLangaugeDescription": "これらはデフォルトであり、ライブラリごとにカスタマイズすることができます。", "DefaultSubtitlesHelp": "字幕は、埋め込みメタデータのデフォルトフラグと強制フラグに基づいてロードされます。 複数のオプションが利用可能な場合は、言語設定が考慮されます。", "Delete": "削除", @@ -223,7 +220,6 @@ "HeaderMoreLikeThis": "これに似たもの", "InstantMix": "インスタントミックス", "MoreFromValue": "もっと詳しく {0}", - "AddItemToCollectionHelp": "アイテムをコレクションに追加するには右クリックメニューかタップメニューから追加してください。", "AttributeNew": "新規", "ButtonNew": "新規", "ButtonOff": "オフ", @@ -236,7 +232,7 @@ "ErrorAddingXmlTvFile": "XMLTV ファイルへのアクセス中にエラーが発生しました。 ファイルが存在することを確認して、やり直してください。", "ErrorDeletingItem": "Jellyfin サーバーからアイテムを削除中にエラーが発生しました。 Jellyfin サーバーがメディアフォルダーへの書き込みアクセス権を持っていることを確認して、もう一度やり直してください。", "ErrorGettingTvLineups": "TV ラインナップ のダウンロード中にエラーが発生しました。 あなたの情報が正しいことを確認してもう一度やり直してください。", - "ErrorMessageStartHourGreaterThanEnd": "終了時間は開始時間より長くなければなりません。", + "ErrorStartHourGreaterThanEnd": "終了時間は開始時間より長くなければなりません。", "ErrorPleaseSelectLineup": "ラインナップを選択してもう一度やり直してください。 ラインナップが利用できない場合は、あなたのユーザー名、パスワード、および郵便番号が正しいことを確認してください。", "ErrorSavingTvProvider": "TV プロバイダの保存中にエラーが発生しました。 アクセス可能であることを確認して、もう一度やり直してください。", "EveryNDays": "{0}日ごと", @@ -276,7 +272,6 @@ "H264CrfHelp": "固定レートファクタ(CRF)は、x264エンコーダのデフォルトの品質設定です。 0から51までの値を設定できます。値が小さいほど品質が高くなります(ファイルサイズが大きくなりますが)。 正しい値は18から28の間です。x264のデフォルトは23なので、これを出発点として使用できます。", "EncoderPresetHelp": "パフォーマンスを向上させるには小さい値を、品質を向上させるには大きい値を選択してください。", "HDPrograms": "HD番組", - "HandledByProxy": "リバースプロキシで処理", "HardwareAccelerationWarning": "ハードウェアアクセラレーションを有効にすると、環境によっては不安定になる可能性があります。 オペレーティングシステムとビデオドライバが完全に最新であることを確認してください。 これを有効にした後でビデオの再生が困難な場合は、設定を[なし]に戻す必要があります。", "HeaderAccessSchedule": "アクセススケジュール", "HeaderAccessScheduleHelp": "アクセススケジュールを作成して、アクセスを特定の時間に制限します。", @@ -301,7 +296,6 @@ "HeaderAppearsOn": "表示", "HeaderAudioBooks": "オーディオブック", "HeaderAudioSettings": "音声設定", - "HeaderAutomaticUpdates": "自動更新", "HeaderBlockItemsWithNoRating": "評価情報がない、または認識できないアイテムをブロックします。", "HeaderBooks": "ブック", "HeaderBranding": "ブランディング", @@ -376,7 +370,7 @@ "HeaderItems": "アイテム", "HeaderKeepRecording": "録画を続ける", "HeaderKeepSeries": "シリーズを続ける", - "HeaderKodiMetadataHelp": "NFOメタデータを有効または無効にするには、Jellyfinライブラリ設定でライブラリを編集し、メタデータ保存機能セクションを見つけます。", + "HeaderKodiMetadataHelp": "NFOメタデータを有効または無効にするには、ライブラリを編集し「メタデータサーバー」の項目にて変更できます。", "HeaderLatestEpisodes": "最新のエピソード", "HeaderLatestMedia": "最新のメディア", "HeaderLatestMovies": "最新のムービー", @@ -424,7 +418,7 @@ "HeaderPreferredMetadataLanguage": "優先するメタデータ言語", "HeaderProfile": "プロファイル", "HeaderProfileInformation": "プロファイル情報", - "HeaderProfileServerSettingsHelp": "これらの値はJellyfinサーバーがそれ自体をデバイスに提示する方法を制御します。", + "HeaderProfileServerSettingsHelp": "これらの設定はサーバーがクライアントに提示する方法を示しています。", "HeaderRecentlyPlayed": "最近再生した", "HeaderRecordingOptions": "録画設定", "HeaderRecordingPostProcessing": "録画後の処理", @@ -442,13 +436,13 @@ "HeaderSecondsValue": "{0} 秒", "HeaderSelectCertificatePath": "証明書のパスを選択", "HeaderSelectMetadataPath": "メタデータのパスを選択", - "HeaderSelectMetadataPathHelp": "メタデータを保存するパスを参照または入力します。 フォルダは書き込み可能でなければなりません。", + "HeaderSelectMetadataPathHelp": "メタデータの保存先を参照またはパスを入力してください。 フォルダは書き込み可能でなければなりません。", "HeaderSelectPath": "パスの選択", "HeaderSelectServer": "サーバーの選択", "HeaderSelectServerCachePath": "サーバーキャッシュのパスを選択", "HeaderSelectServerCachePathHelp": "サーバーキャッシュファイルに使用するパスを参照または入力します。 フォルダは書き込み可能でなければなりません。", "HeaderSelectTranscodingPath": "トランスコーディング用の一時パスの選択", - "HeaderSelectTranscodingPathHelp": "一時ファイルのトランスコードに使用するパスを参照または入力します。 フォルダは書き込み可能でなければなりません。", + "HeaderSelectTranscodingPathHelp": "トランスコードファイルの保存先を参照またはパスを入力してください。 フォルダは書き込み可能でなければなりません。", "HeaderSendMessage": "メッセージの送信", "HeaderSeries": "シリーズ", "HeaderSeriesOptions": "シリーズオプション", @@ -503,7 +497,7 @@ "ButtonAddImage": "イメージの追加", "List": "リスト", "MediaInfoTimestamp": "タイムスタンプ", - "NoSubtitles": "字幕がありません", + "NoSubtitles": "無し", "TabCollections": "コレクション", "Thursday": "木曜日", "TitleHardwareAcceleration": "ハードウェアアクセラレーション", @@ -595,7 +589,7 @@ "OptionWeekdays": "平日", "ParentalRating": "個人評価", "PasswordResetConfirmation": "本当にパスワードを再設定しますか?", - "PasswordResetHeader": "パスワード再設定", + "HeaderResetPassword": "パスワード再設定", "PasswordSaved": "パスワードが保存されました。", "People": "ピープル", "PerfectMatch": "完全に一致", @@ -634,7 +628,7 @@ "OneChannel": "1チャンネル", "TabDevices": "デバイス", "ValueContainer": "コンテナ: {0}", - "ImportFavoriteChannelsHelp": "有効にすると、チューナーのデバイスのお気に入りのチャンネルのみインポートされます。", + "ImportFavoriteChannelsHelp": "チューナーでのお気に入りのチャンネルのみインポートされます。", "MusicAlbum": "ミュージックアルバム", "OptionDownloadLogoImage": "ロゴ", "OptionEnableAccessToAllChannels": "すべてのチャンネルへのアクセスを有効化", @@ -658,9 +652,9 @@ "LabelCriticRating": "評論家の評価:", "LabelCurrentPassword": "現在のパスワード:", "LabelCustomCss": "カスタムCSS:", - "LabelCustomCssHelp": "ウェブインターフェースにカスタムスタイリングを適応する。", + "LabelCustomCssHelp": "ウェブインターフェースにカスタムスタイルを適応する。", "LabelCustomDeviceDisplayName": "表示名:", - "LabelEnableDlnaClientDiscoveryInterval": "クライアント探索間隔 (秒)", + "LabelEnableDlnaClientDiscoveryInterval": "クライアント探索間隔", "LabelParentalRating": "個人評価:", "LabelPassword": "パスワード:", "LabelPasswordConfirm": "パスワード (確認):", @@ -683,7 +677,7 @@ "LabelBirthDate": "誕生日:", "LabelBitrate": "ビットレート:", "LabelBirthYear": "生年:", - "LabelBlastMessageInterval": "アライブメッセージ間隔 (秒)", + "LabelBlastMessageInterval": "アライブメッセージ間隔", "LabelCache": "キャッシュ:", "LabelDisplayMode": "表示モード:", "LabelDisplayOrder": "表示順:", @@ -766,7 +760,6 @@ "TabCodecs": "コーデック", "TabContainers": "コンテナ", "Rewind": "巻き戻す", - "RunAtStartup": "スタートアップに起動", "Runtime": "実行時間", "Saturday": "土曜日", "SaveSubtitlesIntoMediaFolders": "字幕をメディアフォルダーに保存", @@ -787,7 +780,7 @@ "TitlePlayback": "プレイバック", "TrackCount": "{0} トラック", "Transcoding": "トランスコーディング", - "UninstallPluginHeader": "プラグインをアンインストール", + "HeaderUninstallPlugin": "プラグインをアンインストール", "Unmute": "ミュート解除", "Unrated": "未評価", "Up": "上へ", @@ -804,9 +797,7 @@ "ValueTimeLimitMultiHour": "タイムリミット: {0} 時間", "ValueVideoCodec": "映像コーデック: {0}", "Vertical": "垂直", - "VideoRange": "映像範囲", "ViewAlbum": "アルバムを見る", - "ViewArtist": "アーティストを見る", "ViewPlaybackInfo": "プレイバック情報を見る", "Watched": "視聴済み", "WelcomeToProject": "Jellyfinにようこそ!", @@ -851,8 +842,6 @@ "LabelAlbumArtPN": "アルバムアートPN:", "LabelAlbumArtists": "アルバムアーティスト:", "LabelAllowHWTranscoding": "ハードウェアトランスコーディングを許可", - "LabelAllowServerAutoRestart": "アップデートを適応するためにサーバーの再起動を許可", - "LabelAllowServerAutoRestartHelp": "サーバーはユーザーがログインしていないときのみ再起動します。", "LabelAllowedRemoteAddresses": "リモートIPアドレスフィルター:", "LabelAppNameExample": "例: スケートボード、ソナー", "LabelArtists": "アーティスト:", @@ -872,7 +861,6 @@ "LabelCommunityRating": "コミュニティ評価:", "LabelContentType": "コンテンツタイプ:", "LabelCountry": "国:", - "LabelDashboardTheme": "サーバーダッシュボードテーマ:", "LabelPublicHttpsPortHelp": "公開ポート番号はローカルHTTPSポートにマッピングしてください。", "LabelAlbumArtMaxWidth": "アルバムアート最大高さ:", "LabelAlbumArtMaxHeight": "アルバムアート最大高さ:", @@ -927,15 +915,12 @@ "LabelRuntimeMinutes": "実行時間 (分):", "LabelScreensaver": "スクリーンセーバー:", "LabelSeasonNumber": "シーズン数:", - "LabelSecureConnectionsMode": "セキュア接続モード:", "LabelSelectUsers": "ユーザーを選択:", "LabelSelectVersionToInstall": "インストールするバージョンを選択:", "LabelSerialNumber": "シリアルナンバー", "LabelServerHost": "ホスト:", - "LabelSkin": "スキン:", "Premiere": "初日", "LabelSaveLocalMetadata": "アートワークをメディアフォルダーに保存", - "LabelSoundEffects": "音響効果:", "LabelSource": "ソース:", "LabelSportsCategories": "スポーツカテゴリ:", "LabelStatus": "ステータス:", @@ -963,13 +948,11 @@ "DashboardArchitecture": "アーキテクチャ: {0}", "LabelVideo": "映像", "LabelVideoBitrate": "映像ビットレート:", - "LabelYourFirstName": "名前:", "Share": "共有", "LabelSize": "大きさ:", "LatestFromLibrary": "最新 {0}", "LearnHowYouCanContribute": "コントリビュートする方法を知る。", "LabelTagline": "キャッチフレーズ:", - "LinksValue": "リンク: {0}", "Live": "ライブ", "LiveBroadcasts": "ライブブロードキャスト", "LiveTV": "ライブTV", @@ -986,7 +969,6 @@ "MediaInfoResolution": "解像度", "MediaInfoSampleRate": "サンプルレート", "MediaInfoSize": "大きさ", - "MediaInfoSoftware": "ソフトウェア", "MediaInfoStreamTypeAudio": "音声", "MediaInfoStreamTypeData": "データ", "MediaInfoStreamTypeEmbeddedImage": "埋め込み画像", @@ -1073,7 +1055,6 @@ "TabNotifications": "通知", "TabOther": "その他", "TabParentalControl": "ペアレンタルコントロール", - "TabPlaylist": "プレイリスト", "TabPlaylists": "プレイリスト", "TabPlugins": "プラグイン", "TabProfile": "プロフィール", @@ -1109,18 +1090,17 @@ "ValueTimeLimitSingleHour": "タイムリミット: 1 時間", "Wednesday": "水曜日", "LabelPreferredDisplayLanguage": "優先する表示言語:", - "ImportMissingEpisodesHelp": "有効にすると、所有してないエピソードの情報がJellyfinデータベースにインポートされ、シーズンとシリーズに表示されます。これは、ライブラリスキャンに莫大な時間が掛かる可能性があります。", + "ImportMissingEpisodesHelp": "所有してないエピソードの情報がデータベースにインポートされ、シーズンとシリーズ内に表示されます。ライブラリの読み込み時間が非常に長くなる可能性があります。", "LabelBindToLocalNetworkAddress": "ローカルネットワークアドレスにバインド:", "LabelDownMixAudioScale": "ダウンミキシング時の音声ブースト:", "HeaderNavigation": "ナビゲーション", - "CopyStreamURLError": "URLのコピー中にエラーが発生しました。", "ButtonSplit": "分ける", "LabelEnableDlnaServer": "DLNAサーバーの有効化", "LabelEnableDlnaDebugLogging": "DLNAデバッグログの有効化", "LabelDroppedFrames": "ドロップフレーム:", "LabelDisplayMissingEpisodesWithinSeasons": "シーズン中の見つからなかったエピソードを表示", "LabelCustomDeviceDisplayNameHelp": "任意の表示名を提供するか、空白のままにしてデバイスネームで報告する。", - "LabelArtistsHelp": "分けますと使用;", + "LabelArtistsHelp": "複数のアーティストは「;」で分ける。", "Identify": "識別する", "TabRecordings": "録画", "Recordings": "録画", @@ -1135,7 +1115,7 @@ "LabelEveryXMinutes": "毎:", "LabelEnableSingleImageInDidlLimit": "単一の埋め込み画像に制限", "LabelEnableBlastAliveMessages": "アライブメッセージを配信する", - "LabelDateAddedBehaviorHelp": "メタデータある場合、これらのオプションの前にメタデータ使います。", + "LabelDateAddedBehaviorHelp": "メタデータがある場合、これらのオプションの前に優先します。", "AskAdminToCreateLibrary": "管理者にライブラリを作成する依頼をしてください。", "AllowFfmpegThrottling": "トランスコードをスロットルする", "Episode": "エピソード", @@ -1177,7 +1157,7 @@ "LabelEmbedAlbumArtDidlHelp": "一部のデバイスでは、アルバムアートを取得するためにこの方法が好まれています。その他のデバイスでは、このオプションを有効にしても再生できない場合があります。", "LabelDownMixAudioScaleHelp": "ダウンミックス時にオーディオの音量を増幅します。値が 1 の場合、元の音量を維持します。", "LabelEnableHttps": "HTTPS を有効にする", - "LabelEnableDlnaPlayToHelp": "ネットワーク内のデバイスを検出し、それらをリモートコントロールできるようにします。", + "LabelEnableDlnaPlayToHelp": "ネットワーク内のデバイスを検出し、それらをリモートで操作できるようにします。", "LabelEnableDlnaPlayTo": "DLNA 再生を有効にする", "LabelEnableDlnaDebugLoggingHelp": "巨大なログファイルを作成します。トラブルシューティングでの必要な際にだけ使用してください。", "LabelEnableDlnaClientDiscoveryIntervalHelp": "Jellyfin が実行する SSDP 検索の間隔を決めます(秒単位)。", @@ -1203,7 +1183,6 @@ "LabelNumberOfGuideDaysHelp": "多くの日数分のガイドデータをダウンロードするとより先のスケジュールとリストを見ることができるようになりますが,ダウンロードに時間がかかるようになります。自動に設定するとチャンネル数を基に選択されます。", "LabelNumberOfGuideDays": "ガイドデータをダウンロードする日数:", "LabelNewsCategories": "ニュースのカテゴリ:", - "LabelNightly": "最新・不安定版", "LabelStable": "安定版", "LabelChromecastVersion": "Chromecastバージョン", "LabelMusicStreamingTranscodingBitrateHelp": "音楽ストリーミングの最大ビットレートを指定します。", diff --git a/src/strings/kk.json b/src/strings/kk.json index 0757d71def..909af11da3 100644 --- a/src/strings/kk.json +++ b/src/strings/kk.json @@ -3,7 +3,6 @@ "AccessRestrictedTryAgainLater": "Aǵymda qatynaý shektelgen. Áreketti keıin qaıtalańyz.", "Actor": "Aktór", "Add": "Ústeý", - "AddItemToCollectionHelp": "Tarmaqtardy izdep jáne tintýirdiń oń jaq túımeshign basyp jıyntyqtarǵa tarmaqtardy ústeńiz nemese jıyntyqqa ústeý úshin mázirlerdi túrtińiz.", "AddToCollection": "Jıyntyqqa ústeý", "AddToPlayQueue": "Oınatý kezegine ústeý", "AddToPlaylist": "Oınatý tizimine ústeý", @@ -29,7 +28,6 @@ "AllowedRemoteAddressesHelp": "Qashyqtan qosylýǵa ruqsat etiletin jeliler úshin útirlermen bólingen IP-mekenjaılarynyń tizbesi nemese IP/netmask jazbalar Eger bos qaldyrylsa, barlyq qashyqtaǵy mekenjaılarǵa ruqsat etiledi.", "AlwaysPlaySubtitles": "Árqashan oınatý", "AlwaysPlaySubtitlesHelp": "Til teńshelimine sáıkes kelgen sýbtıtrler dybys tiline qatyssyz júkteledi.", - "AnamorphicVideoNotSupported": "Anamorftyq beıne úshin qoldaý kórsetilmeıdi", "AnyLanguage": "Qaı-qaısy til", "Anytime": "Árkezde", "AroundTime": "Shamamen", @@ -41,7 +39,6 @@ "AttributeNew": "Jańa", "Audio": "Dybys", "Auto": "Avtomatty", - "AutoBasedOnLanguageSetting": "Avtomatty (til teńshelimi negizinde)", "Backdrop": "Artqy sýret", "Backdrops": "Artqy sýretter", "Banner": "Baner", @@ -54,7 +51,7 @@ "Box": "Qorap", "BoxRear": "Qorap arty", "Browse": "Sharlaý", - "BrowsePluginCatalogMessage": "Qoljetimdi plagındermen tanysý úshin plagın tizimdemesin sholyńyz.", + "MessageBrowsePluginCatalog": "Qoljetimdi plagındermen tanysý úshin plagın tizimdemesin sholyńyz.", "BurnSubtitlesHelp": "Beıneni qaıta kodtaǵan kezde server sýbtıtrlerdi jazyýyn anyqtaıdy. Onan qashqaqtaý serverdiń ónimdiligin biraz jaqsartady. Sýretke negizdelgen pishimderdi (VOBSUB, PGS, SUB, IDX, j.t.b.) jáne keıbir ASS nemese SSA sýbtıtrlerin jazý úshin Avtomattyny tańdańyz.", "ButtonAdd": "Ústeý", "ButtonAddMediaLibrary": "Tasyǵyshhana ústeý", @@ -85,7 +82,6 @@ "ButtonHelp": "Anyqtama", "ButtonHome": "Basqyǵa", "ButtonInfo": "Aqparatqa", - "ButtonLearnMore": "Kóbirek bilý", "ButtonLibraryAccess": "Tasyǵyshhanǵa qatynaý", "ButtonManualLogin": "Qolmen kirý", "ButtonMore": "Kóbirek", @@ -131,11 +127,6 @@ "ButtonTrailer": "Treıler", "ButtonUninstall": "Ornatymdy joıý", "ButtonUp": "Joǵaryǵa", - "ButtonUpdateNow": "Qazir jańartý", - "ButtonView": "Qaraý", - "ButtonViewAlbum": "Álbomdy qaraý", - "ButtonViewArtist": "Oryndaýshyny qaraý", - "ButtonViewWebsite": "Ýeb-saıtyn qaraý", "ButtonWebsite": "Ýeb-saıty", "CancelRecording": "Jazýdy boldyrmaý", "CancelSeries": "Telehıkaıany boldyrmaý", @@ -166,8 +157,7 @@ "DatePlayed": "Oınatylǵan kúni", "DeathDateValue": "Ólgeni: {0}", "Default": "Ádepki", - "DefaultCameraUploadPathHelp": "Teńshelgen júktep salý joldy tańdańyz. Eger anyqtalmasa, ádepki qalta paıdalanylady. Eger teńsheletin jol paıdalanylsa, buny sondaı-aq Jellyfin tasyǵyshhanasyn ornatý jáne teńsheý aımaǵynda tasyǵyshhana sıaqty ústeý qajet.", - "DefaultErrorMessage": "Saýal óńdelý kezinde qate oryn aldy. Áreketti keıin qaıtalańyz.", + "ErrorDefault": "Saýal óńdelý kezinde qate oryn aldy. Áreketti keıin qaıtalańyz.", "DefaultMetadataLangaugeDescription": "Bular sizdiń ádepki maǵynalaryńyz jáne ár tasyǵyshhana negizinde teńsheýge bolady.", "DefaultSubtitlesHelp": "Sýbtıtrler engizilgen metaderekterdegi ádepki jáne májbúrli jalaýshalary negizinde júktelip alynady. Birneshe opsıa qoljetimdi bolǵanda til teńshelimi qarastyrylady.", "Delete": "Joıý", @@ -236,7 +226,7 @@ "ErrorAddingXmlTvFile": "XMLTV-faılyna qatynaý kezinde qate oryn aldy. Faıl bar bolýyna kóz jetkizińiz de áreketti qaıtalańyz.", "ErrorDeletingItem": "Jellyfin Server elementin joıý kezinde qate oryn aldy. Jellyfin Server tasyǵysh qaltasyna jazýǵa ruqsaty bar ekenin tekserip, qaıtalap kórińiz.", "ErrorGettingTvLineups": "TD kezekterin júktep alý kezinde qate oryn aldy. Málimetterińiz durys ekenine kóz jetkizińiz de áreketti qaıtalańyz.", - "ErrorMessageStartHourGreaterThanEnd": "Aıaqtalý ýaqyty bastaý ýaqytynan keıinrek bolýy qajet etedi.", + "ErrorStartHourGreaterThanEnd": "Aıaqtalý ýaqyty bastaý ýaqytynan keıinrek bolýy qajet etedi.", "ErrorPleaseSelectLineup": "Tizbekti tańdańyz jáne áreketti qaıtalańyz. Eger eshqandaı tizbek qoljetimdi bolmasa, onda paıdalanýshy atyńyzdy, parólińizdi jáne poshta kodyn durys ekenin tekserińiz.", "ErrorSavingTvProvider": "TD jetkizýshisin saqtaý kezinde qate oryn aldy. Bul qatynaýly ekenine kóz jetkizińiz de áreketti qaıtalańyz.", "EveryNDays": "{0} kún saıyn", @@ -276,7 +266,6 @@ "H264CrfHelp": "Baǵalaýdyń turaqty máni (Constant Rate Factor, CRF) x264 kodtaýyshy úshin ádepki sapa parametri bolyp tabylady. Siz 0 jáne 51 arasyndaǵy mánderin belgileı alasyz, onda tómen mánder (joǵary faıl ólshemderi esebinen) nátıjesinde jaqsy sapaǵa keltiredi. Taǵylyp mánder 18 jáne 28 arasynda bolady. x264 úshin ádepkisi 23 bolyp tabylady, sondyqtan bastaý núktesi retinde osyny paıdalanýyńyzǵa bolady.", "EncoderPresetHelp": "Ónimdilikti jaqsartý úshin jyldam mánin, nemese sapasyn jaqsartý úshin baıaý mánin tańdańyz.", "HDPrograms": "HD-kórsetimder", - "HandledByProxy": "Keri proksı arqyly óńdeldi", "HardwareAccelerationWarning": "Apparattyq jedeldetýdi qosý keıbir ortalarda turaqsyzdyq týdyrýy múmkin. Amaldyq júıeńiz ben beıne draıverlerińiz tolyq jańartylǵanyna kóz jetkizińiz. Eger osyny qosqannan keıin beıne oınatýda qıyndyq bolsa, parametrdi qaıta Eshqanadaǵa ózgertýińiz qajet.", "HeaderAccessSchedule": "Qatynaý kestesi", "HeaderAccessScheduleHelp": "Qatynaýdy belgili saǵattarǵa shekteý úshin qatynaý kestesin jasańyz.", @@ -301,13 +290,9 @@ "HeaderAppearsOn": "Kórýge bolady", "HeaderAudioBooks": "Dybystyq kitaptar", "HeaderAudioSettings": "Dybys parametrleri", - "HeaderAutomaticUpdates": "Avtomatty jańartýlar", "HeaderBlockItemsWithNoRating": "Jastas sanaty týraly aqparaty joq nemese ol tanylmaǵan mazmundy qursaýlaý:", "HeaderBooks": "Kitaptar", "HeaderBranding": "Bezendirý", - "HeaderBrandingHelp": "Tobyńyzdyń ne uıymyńyzdyń muqtajdyqtaryna úılesimdi Jellyfin bezendirýin teńsheý.", - "HeaderCameraUpload": "Kameradan júktep salý", - "HeaderCameraUploadHelp": "Utqyr qurylǵylaryńyzda túsirilgen fotosýretterdi Jellyfin qoldanbalary avtomatty Jellyfin Server ishine júktep salý múmkin.", "HeaderCancelRecording": "Jazýdy boldyrmaý", "HeaderCancelSeries": "Telehıkaıany boldyrmaý", "HeaderCastAndCrew": "Róldegiler men qyzmetkerler", @@ -446,7 +431,6 @@ "HeaderSelectServerCachePathHelp": "Serverdiń kesh faıldaryn paıdalaný úshin joldy sholyńyz nemese engizińiz. Osy qalta jazý úshin qol jetimdi bolýy qajet.", "HeaderSelectTranscodingPath": "Qaıta kodtaýdyń ýaqytsha faıldaryeyń jolyn tańdaý", "HeaderSelectTranscodingPathHelp": "Qaıta kodtaýdyń ýaqytsha faıldaryn paıdalaný úshin joldy sholyńyz nemese engizińiz. Osy qalta jazý úshin qol jetimdi bolýy qajet.", - "HeaderSelectUploadPath": "Júktep salý jolyn tańdaý", "HeaderSendMessage": "Habar jiberý", "HeaderSeries": "Telehıkaıalar", "HeaderSeriesOptions": "Telehıkaıa opsıalary", @@ -526,8 +510,6 @@ "LabelAlbumArtists": "Álbom oryndaýshylary:", "LabelAll": "Barlyq", "LabelAllowHWTranscoding": "Apparattyq qaıta kodtaýǵa ruqsat etý", - "LabelAllowServerAutoRestart": "Jańartýlardy qoldaný úshin serverge qaıta iske qosylýdy ruqsat etý", - "LabelAllowServerAutoRestartHelp": "Tek qana eshqandaı paıdalýnshylar belsendi emes áreketsiz mezgilderde server qaıta iske qosylady.", "LabelAllowedRemoteAddresses": "Qashyqtaǵy IP-mekenjaı súzgisi:", "LabelAllowedRemoteAddressesMode": "Qashyqtaǵy IP-mekenjaı súzgisiniń rejimi:", "LabelAppName": "Qoldanba aty", @@ -548,8 +530,6 @@ "LabelCache": "Kesh:", "LabelCachePath": "Keshke qaraı jol:", "LabelCachePathHelp": "Sýret sıaqty serverdiń kesh faıldary úshin teńshelgen jaıǵasymdy anyqtańyz. Serverdiń ádepkisin paıdalaný úshin bos qaldyryńyz.", - "LabelCameraUploadPath": "Kameradan júktep salý joly:", - "LabelCameraUploadPathHelp": "Teńshelgen júktep salý joldy tańdańyz. Bul Kameradan júktep salý bóliminde teńshelgen kezkelgen ádepki parametrlerdi qaıta anyqtaıdy. Eger anyqtalmasa, ádepki qalta paıdalanylady. Eger teńsheletin jol paıdalanylsa, buny sondaı-aq Jellyfin tasyǵyshhanasyn ornatý jáne teńsheý aımaǵynda tasyǵyshhana esebinde ústeý qajet.", "LabelCancelled": "Boldyrylmady", "LabelCertificatePassword": "Kýáliktiń paróli:", "LabelCertificatePasswordHelp": "Eger kýáligińizge paról qajet bolsa, ony munda engizińiz.", @@ -567,7 +547,6 @@ "LabelCustomDeviceDisplayName": "Beınelený aty:", "LabelCustomDeviceDisplayNameHelp": "Beınelenetin teńshelgen atyn usynyńyz nemese qurylǵy arqyly baıandalǵan atyn paıdalaný úshin bos qaldyryńyz.", "LabelCustomRating": "Teńshelgen sanat:", - "LabelDashboardTheme": "Server taqtasynyń taqyryby:", "LabelDateAdded": "Ústelgen kúni:", "LabelDateAddedBehavior": "Jańa mazmun úshin qosylǵan kúni tártibi:", "LabelDateAddedBehaviorHelp": "Eger metaderekterde máni bolsa, bul qaısybir osy opsıalarydyń aldynda árqashanda paıdalanylady.", @@ -580,8 +559,6 @@ "LabelDeviceDescription": "Qurylǵy sıpattamasy", "LabelDidlMode": "DIDL rejimi:", "LabelDiscNumber": "Dıski nómiri:", - "LabelDisplayCollectionsView": "Fılmder jınaqtaryn kórsetý úshin Jıyntyqtar aspektin beıneleý", - "LabelDisplayCollectionsViewHelp": "Bul fılmdik jıyntyqtardy beıneleý úshin bólek aspektti jasaıdy. Jıyntyqty jasaý úshin, kezkelgen fılmniń ústinde tintýirdiń oń jaq túımeshign basyńyz nemese túrtińiz de ustap turyńyz jáne \"Jıyntyqqa ústeý\" túımeshigin tańdańyz. ", "LabelDisplayLanguage": "Beıneleý tili:", "LabelDisplayLanguageHelp": "Jellyfin tárjimeleýi aǵymdaǵy joba bolyp tabylady.", "LabelDisplayMissingEpisodesWithinSeasons": "Joq bólimderdi maýsym ishinde beıneleý", @@ -771,7 +748,6 @@ "LabelScheduledTaskLastRan": "Keıingi qosylǵany {0}, {1} aldy.", "LabelScreensaver": "Ekran qorǵaýysh:", "LabelSeasonNumber": "Maýsym nómiri:", - "LabelSecureConnectionsMode": "Qaýipsiz baılanysý rejimi:", "LabelSelectFolderGroups": "Kelesi qaltalardaǵy mazmundy Kıno, Mýzyka jáne TD sıaqty aspektterge avtomatty toptastyrý:", "LabelSelectFolderGroupsHelp": "Belgilenbegen qaltalar óz betimen óziniń aspektinde beınelenedi.", "LabelSelectUsers": "Paıdalanýshylardy tańdaý:", @@ -782,7 +758,6 @@ "LabelServerHost": "Host:", "LabelServerHostHelp": "192.168.1.100:8096 nemese https://myserver.com", "LabelSimultaneousConnectionLimit": "Bir mezgildegi aǵyndardyń shegi:", - "LabelSkin": "Muqaba:", "LabelSkipBackLength": "Artqa ótkizip jiberý uzaqtyǵy:", "LabelSkipForwardLength": "Alǵa ótkizip jiberý uzaqtyǵy:", "LabelSkipIfAudioTrackPresent": "Eger ádepki dybys jolshyǵy júktep alynatyn tilge sáıkes kelse ótkizip jiberý", @@ -794,7 +769,6 @@ "LabelSortBy": "Suryptaý tásili:", "LabelSortOrder": "Suryptaý reti:", "LabelSortTitle": "Ataý boıynsha suryptaý:", - "LabelSoundEffects": "Dybystyq áserleri:", "LabelSource": "Qaınar kózi:", "LabelSpecialSeasonsDisplayName": "Arnaıy maýsymdyń beıneleý aty:", "LabelSportsCategories": "Sporttyq sanattary:", @@ -830,9 +804,6 @@ "LabelType": "Túri:", "LabelTypeMetadataDownloaders": "{0} metaderekter júkteýshileri:", "LabelTypeText": "Mátin", - "LabelUnairedMissingEpisodesWithinSeasons": "Kórsetilmegen bólimderdi maýsym ishinde beıneleý", - "LabelUnknownLanguage": "Belgisiz til", - "LabelUrl": "URL:", "LabelUseNotificationServices": "Kelesi qyzmetterdi paıdalaný:", "LabelUser": "Paıdalanýshy:", "LabelUserAgent": "Paıdalanýshy agenti:", @@ -845,14 +816,12 @@ "LabelValue": "Máni:", "LabelVersion": "Nusqa:", "LabelVersionInstalled": "{0} ornatylǵan", - "LabelVersionNumber": "Nýsqasy: {0}", "LabelVideo": "Beıne", "LabelXDlnaCap": "X-DLNA sıpattary:", "LabelXDlnaCapHelp": "urn:schemas-dlna-org:device-1-0 ataýlar keńistigindegi X_DLNACAP elementi mazmunyn anyqtaıdy.", "LabelXDlnaDoc": "X-DLNA tásimi:", "LabelXDlnaDocHelp": "urn:schemas-dlna-org:device-1-0 ataýlar keńistigindegi X_DLNADOC elementi mazmunyn anyqtaıdy.", "LabelYear": "Jyl:", - "LabelYourFirstName": "Atyńyz:", "LabelYoureDone": "Siz daıynsyz!", "LabelZipCode": "Poshta kody:", "LabelffmpegPath": "FFmpeg joly:", @@ -863,14 +832,10 @@ "LearnHowYouCanContribute": "Qalaı úles qosýynyńyz múmkin týraly úırenińiz.", "LibraryAccessHelp": "Bul paıdalanýshymen ortaqtasý úshin tasyǵyshhanalardy bólekteńiz. Metaderek retteýshini paıdalanyp ákimshiler barlyq qaltalardy óńdeýi múmkin.", "Like": "Unaıdy", - "LinksValue": "Siltemeler: {0}", "List": "Tizim", "Live": "Tikeleı", "LiveBroadcasts": "Tikeleı taratymdar", "LiveTV": "Efır", - "LiveTvFeatureDescription": "Jellyfin Server ornatylǵan úılesimdi TD-túner qurylǵysy arqyly kezkelgen Jellyfin-qoldanbaǵa TD-efırdi tikeleı jiberý.", - "LiveTvUpdateAvailable": "(Jańartý qoljetimdi)", - "LoginDisclaimer": "Jellyfin jeke tasyǵyshhanańyzdy (mysaly, úılik beıneler men fotosýretterdi) basqarýǵa kómektesý úshin arnalǵan. Bizdiń paıdalaný sharttaryn qarańyz. Kezkelgen Jellyfin baǵdarlamalyq jasaqtamasyn paıdalnǵanda osy sharttardyń qabyldaýyn bildiredi.", "Logo": "Logotıp", "ManageLibrary": "Tasyǵyshhanany retteý", "ManageRecording": "Jazýdy retteý", @@ -919,21 +884,17 @@ "MessageCreateAccountAt": "{0} janynda tirkelgi jasaý", "MessageDeleteTaskTrigger": "Shynymen osy tapsyrma trıggerin joıý qajet pe?", "MessageDirectoryPickerBSDInstruction": "BSD ortasynda, Jellyfin qol jetkizý maqsatynda, sizdiń FreeNAS Jail ishindegi jınaqtaýyshty teńsheý qajet bolýy múmkin.", - "MessageDirectoryPickerInstruction": "Jeli túımeshigi basylǵanda qurylǵylaryńyz orny tabylmasa, jelilik joldar qolmen engizilýi múmkin. Mysaly, {0} nemese {1}.", "MessageDirectoryPickerLinuxInstruction": "Arch Linux, CentOS, Debian, Fedora, openSUSE nemese Ubuntu júıelerindegi Linux úshin, Jqyzmet kórsetý paıdalanýshyǵa kem degende saqtaý jerlerińizge oqýǵa qatynas úshin ruqsat etýge tıissiz.", "MessageDownloadQueued": "Júktep alý kezekte.", "MessageEnablingOptionLongerScans": "Osy opsıa qoıylsa, tasyǵyshhana skanerleýleri edáýir uzyn bolýy múmkin.", "MessageFileReadError": "Faıl oqý kezinde qate oryn aldy. Áreketti keıin qaıtalańyz.", "MessageForgotPasswordFileCreated": "Kelesi faıl serverińizde jasaldy jáne qalaı kirisý týraly nusqaýlar ishinde bar:", "MessageForgotPasswordInNetworkRequired": "Paróldi ysyrý prosesi úshin áreketti úılik jelińizdiń ishinde qaıtalańyz.", - "MessageInstallPluginFromApp": "Bul plagın qandaı qoldanbaǵa taǵaıyndalsa, sonyń ishinen ornatylýy tıisti.", "MessageInvalidForgotPasswordPin": "Jaramsyz nemese merzimi aıaqtalǵan PIN-kod engizildi. Áreketti qaıtalańyz.", "MessageInvalidUser": "Jaramsyz paıdalanýshy aty nemese paról. Áreketti qaıtalańyz.", "MessageItemSaved": "Tarmaq saqtaldy.", "MessageItemsAdded": "Tarmaqtar ústelgen.", "MessageLeaveEmptyToInherit": "Tektik tarmaqtan, nemese ǵalamdyq ádepki mánnen parametrlerdi muralaý úshin bos qaldyryńyz.", - "MessageLoggedOutParentalControl": "Aǵymda qatynaý shektelgen. Áreketti keıin qaıtalańyz.", - "MessageNamedServerConfigurationUpdatedWithValue": "Server konfıgýrasýasynyń {0} bólimi jańartyldy", "MessageNoAvailablePlugins": "Qol jetimdi plagınder joq.", "MessageNoMovieSuggestionsAvailable": "Eshqandaı fılm usynystary aǵymda qol jetimdi emes. Fılmderdi qaraýdy jáne baǵalaýdy bastańyz, sonda arnalǵan usynytaryńyzdy kórý úshin qaıta kelińiz.", "MessageNoPluginsInstalled": "Ornatylǵan plagınder joq.", @@ -978,8 +939,8 @@ "NextUp": "Kezekti", "No": "Joq", "NoNewDevicesFound": "Jańa qurylǵylar tabylmady. Jańa túner ústeý úshin, osy tilqatysý terezesin jaýyp, qurylǵy aqparatyn qolmen engizińiz.", - "NoNextUpItemsMessage": "Eshteńe tabylmady. Kórsetimderińizdi qaraı bastańyz!", - "NoPluginConfigurationMessage": "Osy plagınde teńsheletin parametrler joq.", + "MessageNoNextUpItems": "Eshteńe tabylmady. Kórsetimderińizdi qaraı bastańyz!", + "MessageNoPluginConfiguration": "Osy plagınde teńsheletin parametrler joq.", "NoSubtitleSearchResultsFound": "Eshqandaı nátıjeler tabylmady.", "NoSubtitles": "Eshqandaı", "NoSubtitlesHelp": "Ádepkide sýbtıtrler júktelmeıdi. Olardy oınatý kezinde áli de qolmen qosýǵa bolady.", @@ -991,9 +952,6 @@ "OnlyForcedSubtitles": "Tek qana májbúrli", "OnlyForcedSubtitlesHelp": "Tek qana májbúrli dep belgilengen sýbtıtrler júkteledi.", "OnlyImageFormats": "Tek keskin pishimder (VOBSUB, PGS jáne SUB)", - "Open": "Ashý", - "OptionActor": "Aktór", - "OptionActors": "Aktórler", "OptionAdminUsers": "Ákimshiler", "OptionAlbum": "Álbom", "OptionAlbumArtist": "Álbom oryndaýshysy", @@ -1140,7 +1098,7 @@ "PasswordMatchError": "Paróli men Paróldi rastaý óristeri sáıkes bolý kerek.", "PasswordResetComplete": "Paról ysyryldy.", "PasswordResetConfirmation": "Shynymen paróldi ysyrý qajet pe?", - "PasswordResetHeader": "Paróldi ysyrý", + "HeaderResetPassword": "Paróldi ysyrý", "PasswordSaved": "Paról saqtaldy.", "People": "Adamdar", "PerfectMatch": "Úzdik teń", @@ -1162,10 +1120,9 @@ "PleaseEnterNameOrId": "Atyn nemese syrtqy ID engizińiz.", "PleaseRestartServerName": "Jellyfin Server úshin qaıta iske qosyńyz - {0}.", "PleaseSelectTwoItems": "Eń keminde eki tarmaqty tańdańyz.", - "PluginInstalledMessage": "Plagın sátti ornatyldy. Ózgertýler kúshine enýi úshin Jellyfin Server qaıta iske qosylý qajet.", + "MessagePluginInstalled": "Plagın sátti ornatyldy. Ózgertýler kúshine enýi úshin Jellyfin Server qaıta iske qosylý qajet.", "PreferEmbeddedTitlesOverFileNames": "Faıl ataýlary ornyna endirilgen ataýlardy qalaý", "PreferEmbeddedTitlesOverFileNamesHelp": "Internettegi metaderekter nemese jergilikti metaderekter qol jetimdi bolmaǵanda bul ádepki beıneletin ataýdy anyqtaıdy.", - "PreferredNotRequired": "Talap etiledi, biraq qajet emes", "Premiere": "Tusaýkeseri", "Premieres": "Premeralar", "Previous": "Aldyńǵy", @@ -1174,7 +1131,6 @@ "ProductionLocations": "Óndirý oryndary", "Programs": "Kórsetimder", "Quality": "Sapasy", - "QueueAllFromHere": "Bul aradan bárin kezekke", "Raised": "Dónesti", "Rate": "Baǵalaý", "RecentlyWatched": "Jýyqta qaralǵan", @@ -1185,7 +1141,7 @@ "Record": "Jazý", "RecordSeries": "Telehıkaıany jazý", "RecordingCancelled": "Jazba boldyrylmady.", - "RecordingPathChangeMessage": "Jazý qaltasyn ózgertkende, bar jazbalar eski ornynan jańasyna tasymaldanbaıdy. Talap etseńiz, olardy qolmen jyljytýyńyzǵa qajet bolady.", + "MessageChangeRecordingPath": "Jazý qaltasyn ózgertkende, bar jazbalar eski ornynan jańasyna tasymaldanbaıdy. Talap etseńiz, olardy qolmen jyljytýyńyzǵa qajet bolady.", "RecordingScheduled": "Jazý josparlaǵan.", "Recordings": "Jazbalar", "Refresh": "Jańǵyrtý", @@ -1203,10 +1159,8 @@ "RepeatOne": "Bir ret qaıtalaý", "ReplaceAllMetadata": "Barlyq metaderekterdi aýystyrý", "ReplaceExistingImages": "Bar sýretterdi aýystyrý", - "RequiredForAllRemoteConnections": "Barlyq qashyqtaǵy qosylymdar úshin qajet", "ResumeAt": "{0} bastap jalǵastyrý", "Rewind": "Shegindirý", - "RunAtStartup": "Iske qosylýdan bastap oryndaý", "Runtime": "Uzaqtyǵy", "Saturday": "senbi", "Save": "Saqtaý", @@ -1222,7 +1176,6 @@ "SearchForMissingMetadata": "Joq metaderekterdi izdeý", "SearchForSubtitles": "Sýbtıtrlerdi izdeý", "SearchResults": "Izdeý nátıjeleri", - "SecondaryAudioNotSupported": "Dybys jolshyǵyn aýystyrý úshin qoldaý kórsetilmeıdi", "SendMessage": "Habar jiberý", "Series": "Telehıkaıa", "SeriesCancelled": "Telehıkaıa boldyrylmady.", @@ -1260,7 +1213,6 @@ "Sports": "Sport", "StopRecording": "Jazýdy toqtatý", "Studios": "Stýdıalar", - "Subscriptions": "Jazylymdar", "SubtitleAppearanceSettingsAlsoPassedToCastDevices": "Bul parametrler osy qurylǵy arqyly iske qosylǵan kezkelgen Chromecast oınatýyna qoldanylady.", "SubtitleAppearanceSettingsDisclaimer": "Bul parametrler grafıkalyq sýbtıtrlerge (PGS, DVD j.t.b.) nemese óz máneri bar endirilgen ASS/SSA sýbtıtrlerine qoldanylmaıdy.", "SubtitleDownloadersHelp": "Teńshelgen sýbtıtrler júkteýshilerin qosyńyz jáne basymdylyq reti boıynsha dáreje berińiz.", @@ -1304,7 +1256,6 @@ "TabParentalControl": "Mazmundy basqarý", "TabPassword": "Paról", "TabPlayback": "Oınatý", - "TabPlaylist": "Oınatý tizimi", "TabPlaylists": "Oınatý tizimderi", "TabPlugins": "Plagınder", "TabProfile": "Profaıl", @@ -1343,7 +1294,7 @@ "TvLibraryHelp": "{0}TD-kórsetimdi ataý nusqaýlyǵyn{1} qarap shyǵý.", "Uniform": "Biryńǵaı", "UninstallPluginConfirmation": "Shynymen {0} ornatýyn boldyrmaý qajet pe?", - "UninstallPluginHeader": "Plagın ornatýyn boldyrmaý", + "HeaderUninstallPlugin": "Plagın ornatýyn boldyrmaý", "Unmute": "Dybysty qosý", "Unplayed": "Oınatylmaǵan", "Unrated": "Baǵalanbaǵan", @@ -1369,16 +1320,13 @@ "ValueOneSong": "1 áýen", "ValueSeconds": "{0} sek", "ValueSeriesCount": "{0} telehıkaıa", - "ValueSeriesYearToPresent": "{0} - Aǵymda", "ValueSongCount": "{0} áýen", "ValueSpecialEpisodeName": "Arnaıy - {0}", "ValueTimeLimitMultiHour": "Ýaqyt shegi: {0} saǵat", "ValueTimeLimitSingleHour": "Ýaqyt shegi: 1 saǵat", "ValueVideoCodec": "Beıne kodegi: {0}", "Vertical": "Tiginen", - "VideoRange": "Beıne aýqymy", "ViewAlbum": "Álbomdy qaraý", - "ViewArtist": "Oryndaýshyny qaraý", "ViewPlaybackInfo": "Oınatý týraly aqparat", "Watched": "Qaralǵan", "Wednesday": "sársenbi", @@ -1420,9 +1368,6 @@ "DashboardOperatingSystem": "Operasıalyq júıe: {0}", "DashboardArchitecture": "Arhıtektýrasy: {0}", "LabelWeb": "Ýeb:", - "LaunchWebAppOnStartup": "Serverdi iske qosqan kezde ýeb-ınterfeısti iske qosý", - "LaunchWebAppOnStartupHelp": "Server bastapqyda iske qosylǵan kezde, ýeb-klıent ádepki sholǵyshta ashylady. Bul serverdi qaıta iske qosý fýnksıasyn qoldanǵanda oryn almaıdy.", - "MediaInfoSoftware": "Baǵdarlamalyq jasaqtama", "MediaInfoStreamTypeAudio": "Dybys", "MediaInfoStreamTypeData": "Derekter", "MediaInfoStreamTypeEmbeddedImage": "Endirilgen sýret", @@ -1485,7 +1430,6 @@ "LabelDroppedFrames": "Ótkizilgen kadrlar:", "LabelCorruptedFrames": "Búlingen kadrlar:", "HeaderNavigation": "Sharlaý", - "CopyStreamURLError": "URL kóshirgende qate oryn aldy.", "ButtonSplit": "Bólý", "AskAdminToCreateLibrary": "Tasýǵyshanany jasaý úshin ákimshiden suraý.", "AllowFfmpegThrottling": "Qaıta kodtaýdy retteý", @@ -1508,9 +1452,7 @@ "Yadif": "YADIF", "Track": "Jolshyq", "Season": "Maýsym", - "ReleaseGroup": "Shyǵarýshy top", "Person": "Tulǵa", - "OtherArtist": "Basqa oryndaýshy", "Movie": "Fılm", "LabelLibraryPageSize": "Tasyǵyshhana betiniń ólshemi:", "Episode": "Bólim", @@ -1532,7 +1474,6 @@ "MillisecondsUnit": "ms", "LabelSyncPlayTimeOffset": "Server ýaqtynan aýytqýy:", "LabelRequireHttps": "HTTPS qajet etedi", - "LabelNightly": "Túngi", "LabelStable": "Turaqty", "LabelChromecastVersion": "Chromecast nusqasy", "LabelEnableHttps": "HTTPS qosý", diff --git a/src/strings/ko.json b/src/strings/ko.json index 8e68c4fb48..e18dc5f537 100644 --- a/src/strings/ko.json +++ b/src/strings/ko.json @@ -13,7 +13,7 @@ "Backdrops": "배경", "BirthDateValue": "출생: {0}", "BirthPlaceValue": "출생지: {0}", - "BrowsePluginCatalogMessage": "사용 가능한 플러그인을 보려면 플러그인 카탈로그를 참고하십시오.", + "MessageBrowsePluginCatalog": "사용 가능한 플러그인을 보려면 플러그인 카탈로그를 참고하십시오.", "ButtonAdd": "추가", "ButtonAddScheduledTaskTrigger": "트리거 추가", "ButtonAddServer": "서버 추가", @@ -38,7 +38,6 @@ "ButtonHelp": "도움말", "ButtonHome": "홈", "ButtonInfo": "정보", - "ButtonLearnMore": "더 알아보기", "ButtonManualLogin": "수동 로그인", "ButtonMore": "더 보기", "ButtonNetwork": "네트워크", @@ -76,7 +75,6 @@ "ButtonSubmit": "제출", "ButtonSubtitles": "자막", "ButtonUninstall": "제거", - "ButtonViewWebsite": "웹사이트 보기", "ButtonWebsite": "웹사이트", "ChannelAccessHelp": "이 사용자와 공유할 채널을 선택합니다. 관리자는 메타데이터 매니저를 사용하여 모든 채널을 수정할 수 있습니다.", "CinemaModeConfigurationHelp": "시네마 모드는 본 영화 전에 예고편과 소개 영상 등을 재생하여 사용자의 거실에서 극장의 경험을 제공합니다.", @@ -86,7 +84,7 @@ "Connect": "접속", "CustomDlnaProfilesHelp": "새 장치를 대상으로 하거나 시스템 프로필을 재정의 할 사용자 지정 프로필을 만듭니다.", "DeathDateValue": "사망: {0}", - "DefaultErrorMessage": "요청을 처리하는 중에 오류가 발생했습니다. 나중에 다시 시도하십시오.", + "ErrorDefault": "요청을 처리하는 중에 오류가 발생했습니다. 나중에 다시 시도하십시오.", "DefaultMetadataLangaugeDescription": "이는 기본값이며 라이브러리별로 사용자 정의될 수 있습니다.", "Delete": "제거", "DeleteImage": "이미지 제거", @@ -135,7 +133,6 @@ "HeaderApiKeys": "API 키", "HeaderApp": "앱", "HeaderAudioSettings": "오디오 설정", - "HeaderAutomaticUpdates": "자동 업데이트", "HeaderBooks": "도서", "HeaderBranding": "브랜딩", "HeaderCastCrew": "배역 및 제작진", @@ -274,8 +271,6 @@ "LabelAlbumArtPN": "앨범 아트 PN:", "LabelAlbumArtists": "앨범 아티스트:", "LabelAll": "모두", - "LabelAllowServerAutoRestart": "서버가 자동으로 업데이트를 적용하도록 재시작 허용", - "LabelAllowServerAutoRestartHelp": "서버를 활성화된 사용자가 없는 유휴 기간에 다시 시작합니다.", "LabelAppName": "앱 이름", "LabelArtists": "아티스트:", "LabelArtistsHelp": "; 를 사용하여 여러 개 분리", @@ -466,8 +461,6 @@ "LabelUserLibraryHelp": "장치에 어떤 사용자 라이브러리를 보여줄 지 선택합니다. 기본 설정을 사용하려면 비워두십시오.", "LabelUsername": "사용자명:", "LabelVersionInstalled": "{0} 설치됨", - "LabelVersionNumber": "버전 {0}", - "LabelYourFirstName": "이름:", "LabelYoureDone": "완료!", "LabelZipCode": "우편 번호:", "LibraryAccessHelp": "이 사용자와 공유할 라이브러리를 선택합니다. 관리자는 메타데이터 관리자를 사용하여 모든 폴더를 수정할 수 있습니다.", @@ -526,7 +519,7 @@ "MoreUsersCanBeAddedLater": "나중에 대시보드에서 사용자를 더 추가할 수 있습니다.", "Mute": "음소거", "NewCollection": "새 컬렉션", - "NoNextUpItemsMessage": "아무도 찾지 못했어요. 여러분의 쇼를 보기 시작하세요!", + "MessageNoNextUpItems": "아무도 찾지 못했어요. 여러분의 쇼를 보기 시작하세요!", "OptionAdminUsers": "관리자", "OptionAlbum": "앨범", "OptionAlbumArtist": "앨범 아티스트", @@ -649,7 +642,7 @@ "PasswordMatchError": "비밀번호와 비밀번호 확인이 일치해야 합니다.", "PasswordResetComplete": "비밀번호가 재설정되었습니다.", "PasswordResetConfirmation": "비밀번호를 재설정하겠습니까?", - "PasswordResetHeader": "비밀번호 재설정", + "HeaderResetPassword": "비밀번호 재설정", "PasswordSaved": "비밀번호가 저장되었습니다.", "PictureInPicture": "Picture in picture", "PinCodeResetComplete": "PIN 코드가 초기화되었습니다.", @@ -660,7 +653,6 @@ "PleaseSelectTwoItems": "최소 두 개의 항목을 선택하세요.", "Premiere": "프리미어", "Producer": "프로듀서", - "QueueAllFromHere": "여기부터 모두 대기열에 추가", "RecommendationBecauseYouLike": "{0} 을(를) 좋아하기 때문에", "RecommendationBecauseYouWatched": "{0} 을(를) 시청했기 때문에", "RecommendationDirectedBy": "{0} 감독", @@ -723,7 +715,6 @@ "TabParentalControl": "자녀 보호", "TabPassword": "비밀번호", "TabPlayback": "재생", - "TabPlaylist": "재생목록", "TabPlaylists": "재생목록", "TabPlugins": "플러그인", "TabProfile": "프로필", @@ -750,7 +741,7 @@ "TrackCount": "{0} 트랙", "Tuesday": "화요일", "UninstallPluginConfirmation": "{0} 을(를) 설치 제거하겠습니까?", - "UninstallPluginHeader": "플러그인 제거", + "HeaderUninstallPlugin": "플러그인 제거", "Unmute": "음소거 취소", "UserProfilesIntro": "Jellyfin은 세분화된 디스플레이 설정, 재생 상태, 자녀 보호 기능을 갖춘 사용자 프로필을 지원합니다.", "ValueAlbumCount": "{0} 앨범", @@ -776,7 +767,6 @@ "ValueTimeLimitSingleHour": "시간 제한: 1시간", "ValueVideoCodec": "비디오 코덱: {0}", "ViewAlbum": "앨범 보기", - "ViewArtist": "아티스트 보기", "Watched": "시청함", "Wednesday": "수요일", "WelcomeToProject": "Jellyfin에 오신 것을 환영합니다!", @@ -802,7 +792,6 @@ "Shows": "쇼", "Songs": "노래", "Sync": "동기화", - "AddItemToCollectionHelp": "항목을 컬렉션에 추가하려면 검색한 뒤 우클릭이나 탭 매뉴를 이용하십시오.", "AddToCollection": "컬렉션에 추가", "AddToPlayQueue": "재생 대기열에 추가", "AddedOnValue": "{0} 추가됨", @@ -815,7 +804,7 @@ "AllowOnTheFlySubtitleExtraction": "실시간 자막 추출 허용", "AllowOnTheFlySubtitleExtractionHelp": "비디오 트랜스코딩을 방지하기 위해 내장된 자막을 비디오에서 추출하여 텍스트로 클라이언트에 전송할 수 있습니다. 다만, 일부 시스템에서 추출 과정은 긴 시간이 걸리고 비디오 재생을 멈출 수 있습니다. 클라이언트에서 트랜스코딩을 사용할 수 없는 경우 이 기능을 비활성화하여 트랜스코딩 시 자막을 영상에 삽입하십시오.", "AllowRemoteAccess": "이 Jellyfin 서버에 원격 접속을 허용합니다.", - "AllowRemoteAccessHelp": "체크 해제 시 모든 외부 접속은 차단됩니다.", + "AllowRemoteAccessHelp": "비 활성화할 시, 모든 외부 접속은 차단됩니다.", "AllowedRemoteAddressesHelp": "외부 접속을 허용할 IP 혹은 IP 넷마스크를 반점(,)으로 구분하여 입력하십시오. 공란일시, 모든 외부 접속이 허용됩니다.", "AlwaysPlaySubtitles": "항상 표시", "AlwaysPlaySubtitlesHelp": "오디오 언어를 불문하고 언어 설정에 적합한 자막을 불러옵니다.", @@ -827,7 +816,6 @@ "AspectRatio": "종횡비", "AuthProviderHelp": "이 사용자의 비밀번호를 인증할 때 사용할 인증 서비스 제공자를 선택하십시오.", "Auto": "자동", - "AutoBasedOnLanguageSetting": "자동 (언어 설정을 따름)", "Backdrop": "배경", "Banner": "배너", "BookLibraryHelp": "오디오 혹은 텍스트 도서가 지원됩니다. {0}도서 작명 가이드{1}를 참고하십시오.", @@ -898,7 +886,6 @@ "Yes": "예", "Whitelist": "화이트리스트", "ViewPlaybackInfo": "재생 정보 보기", - "VideoRange": "비디오 길이", "ValueSeconds": "{0}초", "Upload": "업로드", "Unrated": "평점을 매기지 않음", @@ -955,7 +942,7 @@ "Programs": "프로그램", "Previous": "이전", "PreferEmbeddedTitlesOverFileNames": "파일 이름보다 내장된 제목 선호", - "PluginInstalledMessage": "플러그인이 성공적으로 설치되었습니다. 변경사항을 적용하려면 Jellyfin 서버를 재시작하십시오.", + "MessagePluginInstalled": "플러그인이 성공적으로 설치되었습니다. 변경사항을 적용하려면 Jellyfin 서버를 재시작하십시오.", "PleaseRestartServerName": "Jellyfin 서버를 재시작하십시오 - {0}.", "PleaseEnterNameOrId": "이름 또는 외부 ID를 입력하십시오.", "PlayNextEpisodeAutomatically": "자동으로 다음 에피소드 재생", @@ -1006,7 +993,6 @@ "MediaInfoStreamTypeEmbeddedImage": "내장된 이미지", "MediaInfoStreamTypeData": "데이터", "MediaInfoStreamTypeAudio": "오디오", - "MediaInfoSoftware": "소프트웨어", "MediaInfoTimestamp": "타임스탬프", "MediaInfoSize": "크기", "MediaInfoLevel": "수준", @@ -1051,7 +1037,6 @@ "LabelSimultaneousConnectionLimit": "동시 스트림 제한:", "LabelSize": "크기:", "LabelServerName": "서버 이름:", - "LabelSecureConnectionsMode": "보안 연결 모드:", "LabelScreensaver": "화면보호기:", "LabelRefreshMode": "새로고침 모드:", "LabelRecord": "녹화:", @@ -1073,7 +1058,6 @@ "LabelDynamicExternalId": "{0} ID:", "LabelDisplayLanguageHelp": "Jellyfin 번역은 진행 중인 프로젝트입니다.", "LabelDisplayLanguage": "표시 언어:", - "LabelDashboardTheme": "서버 대시보드 테마:", "LabelChannels": "채널:", "LabelCancelled": "취소됨", "LabelBitrate": "비트레이트:", @@ -1105,10 +1089,8 @@ "MessageYouHaveVersionInstalled": "현재 버전 {0}이 설치되어있습니다.", "MessageNoServersAvailable": "자동 서버 탐색을 사용했지만, 서버가 발견되지 않았습니다.", "MessageDownloadQueued": "다운로드 대기 중.", - "MessageDirectoryPickerInstruction": "네트워크 버튼으로 장치를 찾지 못하면 네트워크 경로를 수동으로 입력할 수 있습니다. 예를 들어, {0} 또는 {1}.", "MessageDirectoryPickerLinuxInstruction": "Linux on Arch Linux, CentOS, Debian, Fedora, OpenSUSE, Ubuntu의 경우 서비스 사용자에게 최소한 저장 위치에 대한 읽기 권한을 부여해야 합니다.", "MessageDirectoryPickerBSDInstruction": "BSD의 경우, Jellyfin이 FreeNAS Jail에 액세스할 수 있도록 하려면 FreeNAS Jail 내에 스토리지를 구성해야 할 수도 있습니다.", - "LinksValue": "링크: {0}", "LatestFromLibrary": "최근 {0}", "LabelYear": "년도:", "LabelVaapiDeviceHelp": "하드웨어 가속에 쓰이는 렌더 노드입니다.", @@ -1117,7 +1099,6 @@ "LabelTranscodingThreadCountHelp": "트랜스코딩에 사용할 스레드의 최대 갯수를 선택하십시오. 스레드의 갯수를 줄이면 CPU사용량이 줄어들지만, 부드러운 재생에 필요한 만큼 빠르게 변환되지 않을 수 있습니다.", "LabelTranscodingThreadCount": "트랜스코딩 스레드 수:", "LabelTextBackgroundColor": "글자 배경 색깔:", - "LabelSoundEffects": "음향 효과:", "LabelSortTitle": "제목 정렬:", "LabelSortOrder": "정렬 순서:", "LabelSortBy": "정렬 기준:", @@ -1147,7 +1128,7 @@ "FileReadCancelled": "파일 읽기 작업이 취소되었습니다.", "FetchingData": "추가 데이터를 가져오는 중", "ExtraLarge": "매우 큼", - "ErrorMessageStartHourGreaterThanEnd": "종료 시간은 시작 시간보다 커야 합니다.", + "ErrorStartHourGreaterThanEnd": "종료 시간은 시작 시간보다 커야 합니다.", "Display": "디스플레이", "DirectStreamHelp1": "이 미디어는 해상도 및 미디어 유형(H.264, AC3 등)과 관련하여 장치와 호환되지만, 파일 컨테이너(mkv, avi, wmv 등)와는 호환되지 않습니다. 비디오는 장치로 스트리밍 되기 전에 즉각 재포장됩니다.", "Descending": "내림차순", @@ -1162,7 +1143,6 @@ "SeriesYearToPresent": "{0} - 제공", "RemoveFromCollection": "콜렉션에서 제거", "RecentlyWatched": "최근 시청함", - "PreferredNotRequired": "추천하지만, 필수는 아닙니다", "PleaseAddAtLeastOneFolder": "추가 버튼을 클릭하여 하나 이상의 폴더를 라이브러리에 추가하십시오.", "PlaybackData": "재생 데이터", "PasswordResetProviderHelp": "비밀번호 재설정 제공자를 선택하십시오. 비밀번호 재설정이 요청될때 사용됩니다.", @@ -1172,7 +1152,6 @@ "LiveBroadcasts": "실시간 방송", "LabelTypeMetadataDownloaders": "{0} 메타데이터 다운로더:", "LabelType": "유형:", - "LabelSkin": "스킨:", "LabelPleaseRestart": "변경사항은 웹 클라이언트를 다시 불러오면 적용됩니다.", "LabelPlayMethod": "재생 방식:", "LabelPersonRoleHelp": "예시: Ice cream truch driver", @@ -1259,11 +1238,10 @@ "H264CrfHelp": "CRF(고정 레이트 팩터)는 x264 인코더의 기본 품질 설정입니다. 0에서 51 사이의 값을 설정할 수 있습니다. 값이 작을수록 품질이 향상됩니다(파일 크기가 커지면서). Sane 값은 18과 28 사이입니다. x264의 기본값은 23이므로 시작점으로 사용할 수 있습니다.", "LabelSeasonNumber": "시즌 번호:", "LabelPlayer": "재생기:", - "LaunchWebAppOnStartup": "서버를 시작할 때 웹 인터페이스 실행", "MediaInfoBitDepth": "비트뎁스", "LabelPostProcessor": "후처리 애플리케이션:", "RefreshQueued": "새로 고침 대기 중", - "NoPluginConfigurationMessage": "이 플러그인은 설정할 것이 없습니다.", + "MessageNoPluginConfiguration": "이 플러그인은 설정할 것이 없습니다.", "OptionExtractChapterImage": "챕터 이미지 추출 활성화", "Up": "위", "EasyPasswordHelp": "쉬운 핀 코드는 지원되는 기기에서 오프라인 접근을 할 때나 내부 내트워크 로그인에서 사용됩니다.", @@ -1284,11 +1262,9 @@ "HeaderContainerProfileHelp": "컨테이너 프로파일은 사용자의 디바이스에서 재생 가능한 파일 형식을 나타냅니다. 다이렉트 플레이가 설정된 경우에도 디바이스에서 지원되지 않는 형식이라면 트랜스코딩이 적용됩니다.", "HeaderCodecProfileHelp": "코덱 프로파일은 사용자의 디바이스에서 재생 가능한 코덱을 가리킵니다. 다이렉트 플레이가 설정된 경우에도 디바이스에서 지원되지 않는 코덱이라면 트랜스코딩이 적용됩니다.", "HeaderAppearsOn": "표시", - "HandledByProxy": "리버스 프록시로 처리", "Features": "기능", "ErrorPleaseSelectLineup": "라인업을 선택하고 다시 시도하십시오. 이용 가능한 라인업이 없으면 계정, 비밀번호, 우편번호가 정확한지 확인하십시오.", "ErrorAddingListingsToSchedulesDirect": "Schedules Direct 계정에 라인업을 추가하는 중에 오류가 발생했습니다. Schedules Direct는 계정 당 제한된 수의 라인업만이 허용됩니다. 계속하려면 Schedules Direct 웹사이트에 로그인하여 다른 항목을 삭제해야 할 수 있습니다.", - "CopyStreamURLError": "URL을 복사하는 중에 오류가 발생했습니다.", "ColorTransfer": "컬러 변환", "AskAdminToCreateLibrary": "라이브러리를 생성하려면 관리자에게 문의하십시오.", "LabelCorruptedFrames": "손상된 프레임:", @@ -1312,7 +1288,6 @@ "AllowFfmpegThrottlingHelp": "트랜스코딩이나 리먹스 작업이 현재 재생 중인 위치를 넘어 충분히 진행되면 리소스를 절약하기 위해 작업을 중지합니다. 이는 재생 구간을 자주 변경하지 않을 경우에 가장 적합합니다. 재생 시 문제가 발생하면 이 항목을 비활성화하십시오.", "AllowFfmpegThrottling": "트랜스코딩 시 스로틀링", "MessageLeaveEmptyToInherit": "상위 항목의 설정이나 전역 설정값을 그대로 적용하기 위해서는 공백으로 두십시오.", - "MessageInstallPluginFromApp": "이 플러그인은 사용할 앱 내부에서 설치해야 합니다.", "MessageImageTypeNotSelected": "드롭다운 메뉴에서 이미지 유형을 선택하십시오.", "MessageCreateAccountAt": "{0}에서 계정 만들기", "MessageConfirmRevokeApiKey": "정말 api 키를 무효화하시겠습니까? Jellyfin 서버와의 연결이 예고 없이 중단될 수 있습니다.", @@ -1321,7 +1296,6 @@ "MediaInfoRefFrames": "참조 프레임", "MediaInfoPixelFormat": "픽셀 형식", "MapChannels": "채널 매핑", - "LaunchWebAppOnStartupHelp": "서버가 처음 시작되면 웹 브라우저에서 웹 클라이언트를 실행하십시오. 서버 재시작의 경우에는 적용되지 않습니다.", "Large": "크게", "LanNetworksHelp": "대역폭을 강제로 제한할 때 로컬 네트워크로 간주되는 쉼표로 구분된 IP 주소 및 IP/서브넷 마스크 목록입니다. 지정될 경우 모든 다른 IP 주소는 외부 네트워크로 간주되며 외부 대역폭 제한이 적용됩니다. 공백일 경우 서버의 서브넷만이 로컬 네트워크로 간주됩니다.", "LabelffmpegPathHelp": "ffmpeg 실행 파일 혹은 ffmpeg를 포함하는 폴더 경로입니다.", @@ -1422,13 +1396,11 @@ "NoSubtitlesHelp": "자막을 자동으로 불러오지 않습니다. 재생 중에 수동으로 켤 수 있습니다.", "MusicLibraryHelp": "{0}음악 이름 지정 규칙{1}을 확인하십시오.", "MovieLibraryHelp": "{0}영화 이름 지정 규칙{1}을 확인하십시오.", - "MessageUnauthorizedUser": "현재 서버에 접속할 권한이 없습니다. 자세한 정보는 서버 관리자에게 문의하십시오.", "HeaderFavoritePlaylists": "즐겨찾는 플레이리스트", "ButtonTogglePlaylist": "플레이리스트", "ButtonToggleContextMenu": "더보기", "Rate": "평", "PerfectMatch": "정확히 일치", - "OtherArtist": "다른 아티스트", "ButtonSyncPlay": "SyncPlay", "HeaderDVR": "DVR", "EnableDecodingColorDepth10Vp9": "10비트 VP9하드웨어 디코딩 사용합니다", diff --git a/src/strings/lt-lt.json b/src/strings/lt-lt.json index af8962c474..4a259afc8e 100644 --- a/src/strings/lt-lt.json +++ b/src/strings/lt-lt.json @@ -65,7 +65,7 @@ "ConfirmDeletion": "Patvirtinti trynimą", "Continuing": "Tęsiamas", "CustomDlnaProfilesHelp": "Sukurti kitą profilį naujam įrenginiui ar pakeisti sistemos profilį.", - "DefaultErrorMessage": "Įvyko klaida vykdant užklausą. Pabandykite vėliau.", + "ErrorDefault": "Įvyko klaida vykdant užklausą. Pabandykite vėliau.", "Delete": "Ištrinti", "DeleteMedia": "Trinti mediją", "DeviceAccessHelp": "Tai taikoma tik įrenginiams, kurie gali būti identifikuojami, ir neuždraus prieigos per naršyklę. Vartotojo įrenginio prieigos filtravimas neleis jiems naudotis naujais įrenginiais kol jie nepatvirtinti čia.", @@ -99,7 +99,6 @@ "HeaderAddToPlaylist": "Pridėti į grojaraštį", "HeaderAddUser": "Pridėti vartotoją", "HeaderAdditionalParts": "Papildomos dalys", - "HeaderAutomaticUpdates": "Automatiniai atnaujinimai", "HeaderCancelRecording": "Atšaukti įrašymą", "HeaderCancelSeries": "Atšaukti laidą", "HeaderCastCrew": "Kūrėjai", @@ -161,8 +160,6 @@ "LabelAirsBeforeSeason": "Rodoma prieš sezoną:", "LabelAlbum": "Albumas:", "LabelAlbumArtists": "Albumo atlikėjai:", - "LabelAllowServerAutoRestart": "Leisti serveriui automatiškai persikrauti pritaikant atnaujinimus", - "LabelAllowServerAutoRestartHelp": "Serveris persikraus tik neveikimo metu, kai nebus aktyvus nei vienas vartotojas.", "LabelArtists": "Atlikėjai:", "LabelArtistsHelp": "Atskirti kelis naudojant ;", "LabelAudioLanguagePreference": "Garso kalbos pageidavimas:", @@ -289,7 +286,6 @@ "LabelUseNotificationServices": "Naudoti šias paslaugas:", "LabelUser": "Vartotojas:", "LabelYear": "Metai:", - "LabelYourFirstName": "Jūsų vardas:", "LabelYoureDone": "Baigta!", "LatestFromLibrary": "Vėliausi {0}", "LibraryAccessHelp": "Pasirinkite medijos aplankus, kuriuos norite dalintis su šiuo vartotoju. Administratoriai galės redaguoti visus aplankus per metaduomenų valdymą.", @@ -322,7 +318,7 @@ "NewEpisodes": "Naujoms serijoms", "NewEpisodesOnly": "Tik naujas serijas", "News": "Naujienos", - "NoNextUpItemsMessage": "Nieko neradau. Pradėkite žiūrėti laidas!", + "MessageNoNextUpItems": "Nieko neradau. Pradėkite žiūrėti laidas!", "NoSubtitleSearchResultsFound": "Nieko neradau.", "OptionAdminUsers": "Administratoriai", "OptionAlbum": "Albumas", @@ -421,7 +417,6 @@ "Premieres": "Premieras", "Producer": "Prodiuseris", "ProductionLocations": "Filmavimo vietos", - "QueueAllFromHere": "Į eilę viską nuo čia", "RecentlyWatched": "Nesenai žiūrėta", "Record": "Įrašyti", "RecordSeries": "Įrašyti laidą", @@ -489,7 +484,6 @@ "TabNotifications": "Pranešimai", "TabOther": "Kita", "TabPassword": "Slaptažodis", - "TabPlaylist": "Grojaraštis", "TabProfile": "Profilis", "TabProfiles": "Profiliai", "TabRecordings": "Įrašai", @@ -526,7 +520,6 @@ "ValueSongCount": "{0} dainų", "ValueSpecialEpisodeName": "Ypatinga - {0}", "ViewAlbum": "Žiūrėti albumą", - "ViewArtist": "Žiūrėti atlikėją", "Wednesday": "Trečiadienis", "WelcomeToProject": "Sveiki atvykę į Jellyfin!", "WizardCompleted": "Kol kas to užteks. Jellyfin pradėjo rinkti duomenis apie Jūsų medijos biblioteką. Peržiūrėkite programėles, o po to spauskite Baigti ir perkelsime jus į Serverio skydelį.", @@ -562,10 +555,8 @@ "ButtonFullscreen": "Per visą ekraną", "ButtonGuide": "Gidas", "ButtonInfo": "Info", - "ButtonLearnMore": "Sužinoti daugiau", "ButtonLibraryAccess": "Mediatekos prieiga", "ButtonMore": "Daugiau", - "ButtonMoreInformation": "Daugiau Informacijos", "ButtonNetwork": "Tinklas", "ButtonOff": "Išjungti", "ButtonOpen": "Atidaryti", @@ -583,7 +574,6 @@ "ButtonStart": "Pradėti", "ButtonUninstall": "Pašalinti", "ButtonUp": "Aukštyn", - "ButtonViewWebsite": "Žiūrėti svetainę", "ButtonWebsite": "Svetainė", "ChangingMetadataImageSettingsNewContent": "Metaduomenų ar iliustracijų pakeitimai bus pritaikyti tik naujai pridėtam turiniui. Norint pritaikyti pakeitimus esančiam turiniui reikės atnaujinti metaduomenis rankiniu būdu.", "Channels": "Kanalai", @@ -615,7 +605,6 @@ "AllLibraries": "Visos bibliotekos", "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}.", "ButtonEditOtherUserPreferences": "Keisti šio vartotojo profilį, paveikslą ir asmeninius nustatymus.", "ButtonResetEasyPassword": "Atstatyti pin kodą", @@ -646,7 +635,6 @@ "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ą.", "AllowedRemoteAddressesHelp": "IP adresų atskirtų kableliais sąrašas ar IP/netmask įrašai tinklams, kurie turės teisę prisijungti nuotoliniu būdu. Visi adresai bus leidžiami, jei įrašas tuščias.", "HeaderMyMedia": "Mediateka", "HeaderMyDevice": "Mano įrenginys", @@ -657,7 +645,7 @@ "AllowRemoteAccessHelp": "Jei nepažymėta, visi nuotoliniai prisijungimai bus blokuojami.", "Banner": "Juosta", "HeaderDeleteDevice": "Ištrinti prietaisą", - "BrowsePluginCatalogMessage": "Peržiūrėti įskiepių katalogą.", + "MessageBrowsePluginCatalog": "Peržiūrėti įskiepių katalogą.", "EnableBackdrops": "Fonai", "EnableCinemaMode": "Kino režimas", "EnableDisplayMirroring": "Ekrano dubliavimas", @@ -819,7 +807,6 @@ "HeaderVideoQuality": "Vaizdo įrašo kokybė", "HeaderVideoType": "Video įrašo tipas", "HeaderVideoTypes": "Video tipai", - "LabelDashboardTheme": "Serverio puslapio tema:", "LabelDownloadLanguages": "Kalbos parsiuntimui:", "LabelDropShadow": "Mesti šešėlį:", "LabelEasyPinCode": "Greitas PID kodas:", @@ -833,7 +820,7 @@ "HeaderAccessSchedule": "Prieigos tvarkaraštis", "HeaderAccessScheduleHelp": "Sukurkite prieigos tvarkaraštį, kad apribotumėte prieigą tam tikromis valandomis.", "HeaderContainerProfile": "Konteinerio profilis", - "ErrorMessageStartHourGreaterThanEnd": "Pabaigos laikas turi būti didesnis nei pradžios laikas.", + "ErrorStartHourGreaterThanEnd": "Pabaigos laikas turi būti didesnis nei pradžios laikas.", "HeaderFeatures": "Medžiagos", "ErrorSavingTvProvider": "Išsaugant TV teikėją įvyko klaida. Įsitikinkite, kad jis prieinamas, ir bandykite dar kartą.", "HeaderKodiMetadataHelp": "Norėdami įjungti arba išjungti NFO metaduomenis, redaguokite biblioteką Jellyfin bibliotekos nustatymuose, metaduomenų išsaugojimo skyriuje.", @@ -925,7 +912,6 @@ "GroupBySeries": "Grupuoti pagal serialus", "Guide": "Gidas", "GuideProviderLogin": "Prisijungti", - "HandledByProxy": "Valdomas atvirkštiniu \"proxy\" serveriu", "HardwareAccelerationWarning": "Įjungus aparatinės įrangos spartinimą, kai kuriose diegimo aplinkose gali atsirasti nestabilumas. Įsitikinkite, kad jūsų operacinė sistema ir vaizdo tvarkyklės yra visiškai atnaujintos. Jei įjungus šį vaizdo įrašą kyla problemų, turite pakeisti nustatymą į \"Joks\".", "HeaderAdmin": "Administratorius", "HeaderAlbums": "Albumai", @@ -1007,7 +993,6 @@ "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", diff --git a/src/strings/lv.json b/src/strings/lv.json index 693d4e50cb..9346b653f4 100644 --- a/src/strings/lv.json +++ b/src/strings/lv.json @@ -42,7 +42,6 @@ "MediaInfoStreamTypeSubtitle": "Subtitri", "MediaInfoStreamTypeData": "Dati", "MediaInfoStreamTypeAudio": "Audio", - "MediaInfoSoftware": "Programmatūras", "MediaInfoSize": "Lielums", "MediaInfoResolution": "Izšķirtspēja", "MediaInfoProfile": "Profils", @@ -97,7 +96,6 @@ "LabelSportsCategories": "Sporta kategorijas:", "LabelSpecialSeasonsDisplayName": "Speciālās sezonas displeja nosaukums:", "LabelSource": "Avots:", - "LabelSoundEffects": "Skaņas efekti:", "LabelSortTitle": "Kārtošanas nosaukums:", "LabelSortOrder": "Kārtošanas secība:", "LabelSortBy": "Kārtot pēc:", @@ -108,7 +106,6 @@ "LabelSendNotificationToUsers": "Sūtīt paziņojumu uz:", "LabelSelectVersionToInstall": "Izvēlies versiju, ko uzstādīt:", "LabelSelectUsers": "Izvēlies lietotājus:", - "LabelSecureConnectionsMode": "Drošā savienojuma veids:", "LabelSeasonNumber": "Sezonas numurs:", "LabelScreensaver": "Ekrānsaudzētājs:", "LabelRuntimeMinutes": "Ilgums (minūtes):", @@ -350,16 +347,13 @@ "LiveBroadcasts": "Tiešraides:", "Live": "Tiešraide", "List": "Saraksts", - "LinksValue": "Linki: {0}", "Like": "Patīk", "LeaveBlankToNotSetAPassword": "Tu vari atstāt šo lauku tukšu, lai neiestatītu paroli.", - "LaunchWebAppOnStartup": "Palaist web interfeisu kad serveris tiek startēts", "LatestFromLibrary": "Jaunākais {0}", "Large": "Liels", "LabelffmpegPath": "FFmped ceļš:", "LabelZipCode": "Zip Kods:", "LabelYoureDone": "Esi pabeidzis!", - "LabelYourFirstName": "Tavs vārds:", "HeaderFavoritePeople": "Cilvēku Favorīti", "HeaderFavoriteMovies": "Filmu Favorīti", "HeaderFavoriteBooks": "Grāmatu Favorīti", @@ -389,7 +383,6 @@ "HeaderCancelSeries": "Atcelt Sēriju", "HeaderCancelRecording": "Atcelt Ierakstus", "HeaderBooks": "Grāmatas", - "HeaderAutomaticUpdates": "Automātiskie Atjauninājumi", "HeaderAudioSettings": "Audio Iestatījumi", "HeaderAudioBooks": "Audio Grāmatas", "HeaderApp": "Lietotne", @@ -474,7 +467,6 @@ "DatePlayed": "Atskaņošanas datums", "DateAdded": "Pievienošanas datums", "CriticRating": "Kritiķu reitings", - "CopyStreamURLError": "Kļūda kopējot URL.", "CopyStreamURLSuccess": "URL veiksmīgi nokopēts.", "CopyStreamURL": "Kopēt Straumes URL", "Continuing": "Turpina", @@ -491,7 +483,6 @@ "CancelSeries": "Atcelt sēriju", "CancelRecording": "Atcelt ierakstu", "ButtonWebsite": "Web vietne", - "ButtonViewWebsite": "Skatīt web vietni", "ButtonUninstall": "Atinstalēt", "ButtonTrailer": "Treileri", "ButtonSubtitles": "Subtitri", @@ -533,7 +524,6 @@ "ButtonNetwork": "Tīkls", "ButtonMore": "Vairāk", "ButtonLibraryAccess": "Bibliotēku piekļuve", - "ButtonLearnMore": "Uzzināt vairāk", "ButtonInfo": "Info", "ButtonHome": "Mājas", "ButtonHelp": "Palīdzība", @@ -557,7 +547,7 @@ "ButtonAddMediaLibrary": "Pievienot Multimēdiju Bibliotēku", "ButtonAddImage": "Pievienot attēlu", "ButtonAdd": "Pievienot", - "BrowsePluginCatalogMessage": "Pārlūko mūsu paplašinājumu katalogu, lai redzētu pieejamos paplašinājumus.", + "MessageBrowsePluginCatalog": "Pārlūko mūsu paplašinājumu katalogu, lai redzētu pieejamos paplašinājumus.", "Browse": "Pārlūkot", "BoxRear": "Kaste (aizmugure)", "Box": "Kaste", @@ -595,7 +585,6 @@ "Banner": "Karogattēls", "Backdrops": "Foni", "Backdrop": "Fons", - "AutoBasedOnLanguageSetting": "Auto (atkarībā no valodas iestatījumiem)", "Auto": "Auto", "Audio": "Audio", "AttributeNew": "Jauns", @@ -664,9 +653,7 @@ "Wednesday": "Trešdiena", "Watched": "Skatīts", "ViewPlaybackInfo": "Skatīt atskaņošanas info", - "ViewArtist": "Skatīt izpildītāju", "ViewAlbum": "Skatīt albumu", - "VideoRange": "Video platums", "Vertical": "Vertikāls", "ValueVideoCodec": "Video Kodeks: {0}", "ValueTimeLimitSingleHour": "Laika limits: 1 stunda", @@ -694,7 +681,7 @@ "Unrated": "Nevērtēts", "Unplayed": "Neatskaņots", "Unmute": "Ieslēgt skaņu", - "UninstallPluginHeader": "Noņemt Paplašinājumu", + "HeaderUninstallPlugin": "Noņemt Paplašinājumu", "UninstallPluginConfirmation": "Vai tu tiešām vēlies noņemt {0}?", "Tuesday": "Otrdiena", "Transcoding": "Trans-kodēšana", @@ -726,7 +713,6 @@ "TabProfile": "Profils", "TabPlugins": "Paplašinājumi", "TabPlaylists": "Atskaņošanas Saraksti", - "TabPlaylist": "Atskaņošanas Saraksts", "TabPlayback": "Atskaņošana", "TabPassword": "Parole", "TabParentalControl": "Vecāku Pārvaldība", @@ -832,7 +818,7 @@ "OptionAutomatic": "Auto", "OptionAuto": "Auto", "OptionArtist": "Izpildītājs", - "NoPluginConfigurationMessage": "Šim paplašinājumam nav konfigurējamu iestatījumu.", + "MessageNoPluginConfiguration": "Šim paplašinājumam nav konfigurējamu iestatījumu.", "NoCreatedLibraries": "Izskatās ka tu vēl neesi izveidojis nevienu bibliotēku. {0}Vai tu vēlies izveidot vienu tagad?{1}", "NextUp": "Nākamais", "Mute": "Apklusināt", @@ -841,7 +827,6 @@ "Menu": "Izvēlne", "LabelTriggerType": "Trigera Veids:", "LabelSkipIfGraphicalSubsPresent": "Izlaist ja video jau satur iegultus subtitrus", - "LabelSkin": "Izskats:", "LabelSimultaneousConnectionLimit": "Vienlaicīgo straumju limits:", "LabelServerHostHelp": "192.168.1.100:8096 vai https://myserver.com", "LabelServerHost": "Resursdators:", @@ -883,7 +868,7 @@ "LabelCustomCertificatePathHelp": "Ceļš uz PKCS #12 datni, kas satur sertifikātu un privāto atslēgu lai iespējotu TLS atbalstu uz sava domēna.", "FolderTypeUnset": "Jaukts Saturs", "ErrorSavingTvProvider": "Kļūda saglabājot TV sniedzēju. Pārliecinies ka tas ir pieejams un mēģini vēlreiz.", - "ErrorMessageStartHourGreaterThanEnd": "Beigu laikam jābūt vēlākam par sākuma laiku.", + "ErrorStartHourGreaterThanEnd": "Beigu laikam jābūt vēlākam par sākuma laiku.", "ErrorAddingXmlTvFile": "Kļūda atverot XMLTV datni. Lūdzu pārliecinies ka datne eksistē un mēģini vēlreiz.", "LabelCustomCssHelp": "Izmanto pats savu pielāgoto silu web interfeisam.", "LabelCustomCss": "Pielāgots CSS:", @@ -899,8 +884,6 @@ "LabelAudioCodec": "Audio kodeks:", "LabelAudioChannels": "Audio kanāli:", "LabelAudioBitrate": "Audio bitu-ātrums:", - "LabelAllowServerAutoRestartHelp": "Serveris restartēties tikai brīžos, kad neviens lietotājs nav aktīvs.", - "LabelAllowServerAutoRestart": "Atļaut serverim automātiski restartēties, lai uzstādītu atjauninājumus", "LabelAllowHWTranscoding": "Atļaut aparatūras trans-kodēšanu", "LabelAlbumArtMaxWidthHelp": "Maksimālā albumu vāku izšķirtspēja caur upnp:albumArtURI.", "LabelAlbumArtMaxWidth": "Albumu vāku maksimālais platums:", @@ -977,7 +960,7 @@ "DeleteMedia": "Dzēst mediju", "DeleteImageConfirmation": "Vai tu tiešām vēlies izdzēst šo attēlu?", "DeleteDeviceConfirmation": "Vai tu tiešām vēlies noņemt šo ierīci? Tā parādīsies atkārtoti nākamo reizi, kad lietotājs ieiet ar to.", - "DefaultErrorMessage": "Apstrādājot pieprasījumu notika kļūda. Pēc brītiņa lūdzu mēģini vēlreiz.", + "ErrorDefault": "Apstrādājot pieprasījumu notika kļūda. Pēc brītiņa lūdzu mēģini vēlreiz.", "DeathDateValue": "Miris: {0}", "ConfirmEndPlayerSession": "Vai jūs gribat izslēgt Jellyfin uz {0}?", "ConfirmDeleteItems": "Dzēšot šos vienumus, tie tiks izdzēsti gan no jūsu failu sistēmas, gan mediju bibliotēkas. Vai tiešām turpināt?", @@ -1015,7 +998,6 @@ "LabelHardwareAccelerationTypeHelp": "Aparatūras paātrināšanai ir vajadzīga papildus konfigurācija.", "LabelEncoderPreset": "H264 un H265 kodēšanas noklusējumi:", "HardwareAccelerationWarning": "Iespējojot aparatūras paātrināšanu var veidot nestabilitāti dažās vidēs. Pārliecinies ka tava operētājsistēma un video draiveri it pilnībā atjaunināti. Ja tev ir problēmas ar video atskaņošanu pēc šī iestatījuma iespējošanas, tev vajadzēs pārmainīt to atpakaļ uz Neviens.", - "HandledByProxy": "Apstrādā reversais proxy", "LabelImageFetchersHelp": "Iespējo un sakārto savu attēlu sagādnieku prioritāti.", "HeaderFetcherSettings": "Sagādnieku Iestatījumi", "HeaderBranding": "Zīmols", @@ -1028,7 +1010,6 @@ "ErrorGettingTvLineups": "Notika kļūda lejupielādējot TV sarakstus. Lūdzu pārliecinies, ka tava informācija ir pareiza un mēģini vēlreiz.", "DisplayMissingEpisodesWithinSeasonsHelp": "Tam arī jābūt iespējotam priekš TV bibliotēkām servera konfigurācijā.", "DefaultMetadataLangaugeDescription": "Šie ir jūsu noklusējumi, kas var tikt rediģēti atkarībā no bibliotēkas.", - "AddItemToCollectionHelp": "Pievieno vienumus kolekcijām tos meklējot un izmantojot to labā taustiņa vai spiediena izvēlnes lai pievienotu tos.", "LabelPleaseRestart": "Izmaiņas tiks pielietotas pēc manuālas web klienta pārlādes.", "LabelPersonRole": "Loma:", "LabelMusicStreamingTranscodingBitrateHelp": "Iestati maksimālo mūzikas straumēšanas bitu ātrumu.", @@ -1102,7 +1083,6 @@ "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:", @@ -1140,7 +1120,7 @@ "PlaybackData": "Atskaņošanas Dati", "Person": "Persona", "PerfectMatch": "Ideāla saderība", - "PasswordResetHeader": "Atiestatīt Paroli", + "HeaderResetPassword": "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.", @@ -1149,7 +1129,6 @@ "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", @@ -1227,8 +1206,6 @@ "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", "LabelSelectFolderGroups": "Automātiski grupēt saturu no sekojošām datnēm skatos kā Filmas, Mūzika un TV:", "AllowFfmpegThrottlingHelp": "Kad trans-kodējums vai remux tiek pietiekami tālu priekšā pašreizējai atskaņošanas vietai, process tiks pauzēts lai patērētu mazāk resursu. Tas ir noderīgākais skatoties bez biežas pārlēkšanas. Atspējo šo ja saskaries ar atskaņošanas problēmām.", diff --git a/src/strings/mr.json b/src/strings/mr.json index 37cbc403de..9ad45d4765 100644 --- a/src/strings/mr.json +++ b/src/strings/mr.json @@ -6,7 +6,6 @@ "ButtonNew": "नवीन", "ButtonNetwork": "नेटवर्क", "ButtonMore": "अजून", - "ButtonLearnMore": "अधिक माहिती", "ButtonInfo": "माहिती", "ButtonHelp": "मदत", "ButtonGuide": "गाईड", @@ -80,7 +79,6 @@ "Categories": "वर्ग", "CancelRecording": "रेकॉर्डिंग रद्द करा", "ButtonWebsite": "संकेतस्थळ", - "ButtonViewWebsite": "संकेतस्थळ पाहा", "ButtonUp": "वर", "ButtonTrailer": "ट्रेलर", "ButtonSubtitles": "सबटायटल", diff --git a/src/strings/ms.json b/src/strings/ms.json index d5f9259c21..a8a5bba2ee 100644 --- a/src/strings/ms.json +++ b/src/strings/ms.json @@ -13,7 +13,6 @@ "AccessRestrictedTryAgainLater": "Akses dihalang pada masa ini. Sila cuba sebentar lagi.", "Actor": "Pelakon", "Add": "Tambah", - "AddItemToCollectionHelp": "Tambah item ke koleksi melalui carian dan menggunakan menu klik kanan atau ketik menu tersebut untuk menambahkan ke koleksi.", "AddToCollection": "Tambah ke dalam koleksi", "AddToPlayQueue": "Tambah ke giliran main", "AddToPlaylist": "Tambah pada senarai main", @@ -49,7 +48,6 @@ "AttributeNew": "Terbaru", "Audio": "Audio", "Auto": "Auto", - "AutoBasedOnLanguageSetting": "Auto (berdasar tetapan bahasa)", "Backdrop": "Latar belakang", "Backdrops": "Latar belakang", "BirthDateValue": "Lahir: {0}", @@ -73,7 +71,6 @@ "ButtonChangeServer": "Tukar pelayan", "ButtonConnect": "Sambung", "ButtonLibraryAccess": "Akses pustaka", - "ButtonLearnMore": "Ketahui lebih lanjut", "ButtonInfo": "Info", "ButtonHome": "Mula", "ButtonHelp": "Pertolongan", @@ -92,7 +89,7 @@ "ButtonAddScheduledTaskTrigger": "Tambah Pencetus", "ButtonAddImage": "Tambah gambar", "BurnSubtitlesHelp": "Menentukan sama ada pelayan perlu membakar subtitle ke skrin apabila menukar video bergantung kepada format sarikata. Menghindari pembakaran sari kata ke skrin akan meningkatkan prestasi pelayan. Pilih Auto untuk membakar format berasaskan imej (VOBSUB, PGS, SUB / IDX, dll) dan subtitle ASS / SSA tertentu.", - "BrowsePluginCatalogMessage": "Semak imbas katalog plugin kami untuk melihat plugin yang tersedia.", + "MessageBrowsePluginCatalog": "Semak imbas katalog plugin kami untuk melihat plugin yang tersedia.", "BoxRear": "Kotak (belakang)", "BookLibraryHelp": "Buku audio dan teks disokong. Semak {0}panduan penamaan buku{1}.", "Banner": "Sepanduk", diff --git a/src/strings/nb.json b/src/strings/nb.json index 96405b31e0..ee7f9e9ea5 100644 --- a/src/strings/nb.json +++ b/src/strings/nb.json @@ -2,7 +2,6 @@ "Absolute": "Absolutt", "Actor": "Skuespiller", "Add": "Legg til", - "AddItemToCollectionHelp": "Legg til elementer i samlinger ved å søke etter dem og bruke deres høyreklikk eller peke-menyer for å legge dem til en samling.", "AddToCollection": "Legg til i samling", "AddToPlayQueue": "Legg til i avspillingskø", "AddToPlaylist": "Legg til i spilleliste", @@ -33,7 +32,7 @@ "BirthPlaceValue": "Fødested: {0}", "BookLibraryHelp": "Lyd- og tekstbøker støttes. Se igjennom {0} navneguiden for bøker {1}.", "Books": "Bøker", - "BrowsePluginCatalogMessage": "Bla i tilleggskatalogen vår for å se tilgjengelige applikasjonstillegg.", + "MessageBrowsePluginCatalog": "Bla i tilleggskatalogen vår for å se tilgjengelige applikasjonstillegg.", "ButtonAdd": "Legg til", "ButtonAddMediaLibrary": "Legg til bibliotek", "ButtonAddScheduledTaskTrigger": "Legg til utløser", @@ -60,7 +59,6 @@ "ButtonGotIt": "Skjønner", "ButtonHelp": "Hjelp", "ButtonHome": "Hjem", - "ButtonLearnMore": "Lær mer", "ButtonLibraryAccess": "Bibliotektilgang", "ButtonManualLogin": "Manuell Login", "ButtonMore": "Mer", @@ -101,7 +99,6 @@ "ButtonSubtitles": "Undertekster", "ButtonUninstall": "Avinstaller", "ButtonUp": "Opp", - "ButtonViewWebsite": "Vis nettsted", "ButtonWebsite": "Nettsted", "CancelRecording": "Avbryt opptak", "CancelSeries": "Avbryt serie", @@ -126,7 +123,7 @@ "Continuing": "Fortsetter", "CustomDlnaProfilesHelp": "Lag en tilpasset profil til en ny enhet eller for å overstyre en system-profil.", "DeathDateValue": "Døde: {0}", - "DefaultErrorMessage": "Det oppstod en feil under behandling av forespørselen. Vennligst prøv igjen senere.", + "ErrorDefault": "Det oppstod en feil under behandling av forespørselen. Vennligst prøv igjen senere.", "DefaultMetadataLangaugeDescription": "Dette er standardverdiene dine, de kan også tilpasses per biblioteksbasis.", "Delete": "Slett", "DeleteDeviceConfirmation": "Er du sikker på at du ønsker å slette denne enheten? Den vil gjenoppstå neste gang en bruker logger inn med den.", @@ -164,7 +161,7 @@ "ErrorAddingTunerDevice": "Det oppstod en feil når tuneren skulle legges til. Vennligst sørg for at den er tilgjengelig og prøv på nytt.", "ErrorAddingXmlTvFile": "Det oppstod en feil under lesing av XMLTV-filen. Vennligst sørg for at filen finnes og prøv igjen.", "ErrorGettingTvLineups": "Det oppstod en feil under nedlastning av TV-oversikten. Vennligst sørg for at informasjonen er korrekt og prøv igjen.", - "ErrorMessageStartHourGreaterThanEnd": "Sluttid må være senere enn starttid.", + "ErrorStartHourGreaterThanEnd": "Sluttid må være senere enn starttid.", "ErrorPleaseSelectLineup": "Velg et programoppsett og prøv igjen. Hvis ingen oppsett er tilgjengelig, sjekk at brukernavn, passord og postnummer er riktig.", "ErrorSavingTvProvider": "Det oppstod en feil ved lagring av TV-leverandør. Vennligst forsikre deg om at den er tilgjengelig, og prøv på nytt.", "EveryNDays": "Hver {0}. dag", @@ -211,7 +208,6 @@ "HeaderApiKeysHelp": "Eksterne programmer trenger en API-nøkkel for å kunne kommunisere med Jellyfin-serveren. Nøklene utstedes ved å logge på med en Jellyfin-konto, eller ved å manuelt gi programmet en nøkkel.", "HeaderAudioBooks": "Lydbøker", "HeaderAudioSettings": "Lydinnstillinger", - "HeaderAutomaticUpdates": "Automatiske oppdateringer", "HeaderBooks": "Bøker", "HeaderBranding": "Merking", "HeaderCancelRecording": "Avbryt opptak", @@ -402,8 +398,6 @@ "LabelAlbumArtists": "Albumartister:", "LabelAll": "Alle", "LabelAllowHWTranscoding": "Tillat maskinvare-omkoding", - "LabelAllowServerAutoRestart": "Tillat at serveren restartes automatisk for å installere oppdateringer", - "LabelAllowServerAutoRestartHelp": "Serveren vil kun restartes i inaktive perioder når ingen brukere er aktive.", "LabelAppName": "Applikasjonsnavn", "LabelAppNameExample": "Eksempel: Sickbeard, Sonarr", "LabelArtists": "Artister:", @@ -660,10 +654,8 @@ "LabelVaapiDeviceHelp": "Dette er enheten som brukes for maskinvareakselerasjon.", "LabelValue": "Verdi:", "LabelVersionInstalled": "{0} installert", - "LabelVersionNumber": "Versjon {0}", "LabelXDlnaCapHelp": "Bestemmer innholdet i X_DLNACAP-elementet i urn:schemas-dlna-org:device-1-0-domenet.", "LabelXDlnaDocHelp": "Bestemmer innholdet i X_DLNADOC-elementet i urn:schemas-dlna-org:device-1-0-domenet.", - "LabelYourFirstName": "Fornavnet ditt:", "LabelYoureDone": "Du er ferdig!", "LabelZipCode": "Postnummer:", "LabelffmpegPath": "Filbane til FFmpeg:", @@ -712,14 +704,12 @@ "MessageCreateAccountAt": "Opprett en konto hos {0}", "MessageDeleteTaskTrigger": "Er du sikker på at du vil slette denne oppgaveutløseren?", "MessageDirectoryPickerBSDInstruction": "På BSD-systemer må du kanskje endre lagringsinnstillinger i FreeNAS Jail slik at Jellyfin har tilgang dit.", - "MessageDirectoryPickerInstruction": "Nettverksbaner kan skrives inn manuelt i tilfelle søke-knappen ikke klarer å lokalisere enhetene dine. For eksempel {0} eller {1}.", "MessageDirectoryPickerLinuxInstruction": "På Linux-systemer med Arch Linux, CentOS, Debian, Fedora, openSUSE eller Ubuntu må du minimum gi tjenestebrukeren lesetilgang til lagringsplassene dine.", "MessageDownloadQueued": "Nedlasting lagt i kø.", "MessageEnablingOptionLongerScans": "Aktivering av dette alternativet kan føre til at skanning av biblioteket tar betydelig lenger tid.", "MessageFileReadError": "En feil oppstod når filen skulle leses. Vennligst prøv igjen.", "MessageForgotPasswordFileCreated": "Følgende fil er opprettet på serveren og inneholder instruksjoner om hvordan du kan fortsette:", "MessageForgotPasswordInNetworkRequired": "Vennligst prøv igjen fra hjemmenettverket ditt for å starte prosessen med å gjenopprette passordet ditt.", - "MessageInstallPluginFromApp": "Dette programtillegget må installeres direkte i appen du har tenkt å bruke den i.", "MessageInvalidForgotPasswordPin": "Ugyldig eller utgått PIN kode angitt. Vennligst prøv igjen.", "MessageInvalidUser": "Ugyldig brukernavn eller passord. Vennligst prøv igjen.", "MessageItemSaved": "Element lagret.", @@ -765,7 +755,7 @@ "NextUp": "Neste", "No": "Nei", "NoNewDevicesFound": "Ingen nye enheter funnet. For å legge til en ny tuner, lukk denne dialogboksen og skriv inn enhetens informasjon manuelt.", - "NoNextUpItemsMessage": "Ingen funnet. Begynn å se det du har!", + "MessageNoNextUpItems": "Ingen funnet. Begynn å se det du har!", "NoSubtitleSearchResultsFound": "Ingen resultater funnet.", "None": "Ingen", "NumLocationsValue": "{0} mapper", @@ -897,7 +887,7 @@ "PasswordMatchError": "Passord og passordbekreftelsen må matche.", "PasswordResetComplete": "Passordet har blitt tilbakestilt.", "PasswordResetConfirmation": "Er du sikker på at du vil tilbakestille passordet?", - "PasswordResetHeader": "Tilbakestill passord", + "HeaderResetPassword": "Tilbakestill passord", "PasswordSaved": "Passord lagret.", "People": "Mennesker", "PictureInPicture": "Bilde i bilde", @@ -915,7 +905,7 @@ "PleaseEnterNameOrId": "Vennligst skriv et navn eller en ekstern ID.", "PleaseRestartServerName": "Vennligst start Jellyfin-serveren på nytt - {0}.", "PleaseSelectTwoItems": "Vennligst velg minst to elementer.", - "PluginInstalledMessage": "Programtillegget ble installert. Jellyfin-serveren må startes på nytt for at endringene skal tre i kraft.", + "MessagePluginInstalled": "Programtillegget ble installert. Jellyfin-serveren må startes på nytt for at endringene skal tre i kraft.", "PreferEmbeddedTitlesOverFileNames": "Foretrekk integrerte titler fremfor filnavn", "PreferEmbeddedTitlesOverFileNamesHelp": "Dette avgjør standard visningstittel når det ikke er noen metadata eller lokale metadata tilgjengelige.", "Premieres": "Premierer", @@ -923,7 +913,6 @@ "ProductionLocations": "Produksjonslokasjoner", "Programs": "Programmer", "Quality": "Kvalitet", - "QueueAllFromHere": "Sett alt herfra i kø", "Rate": "Vurdér", "RecentlyWatched": "Nylig sett", "RecommendationBecauseYouLike": "Fordi du liker {0}", @@ -933,7 +922,7 @@ "Record": "Ta opp", "RecordSeries": "Ta opp serien", "RecordingCancelled": "Opptak er avbrutt.", - "RecordingPathChangeMessage": "Endring av mappen for opptak vil ikke flytte eksisterende opptak fra den gamle plasseringen til den nye. Du må flytte dem manuelt hvis ønskelig.", + "MessageChangeRecordingPath": "Endring av mappen for opptak vil ikke flytte eksisterende opptak fra den gamle plasseringen til den nye. Du må flytte dem manuelt hvis ønskelig.", "RecordingScheduled": "Opptak planlagt.", "Recordings": "Opptak", "Refresh": "Oppdater", @@ -1024,7 +1013,6 @@ "TabParentalControl": "Foreldrekontroll", "TabPassword": "Passord", "TabPlayback": "Avspilling", - "TabPlaylist": "Spilleliste", "TabPlaylists": "Spillelister", "TabPlugins": "Programtillegg", "TabProfile": "Profil", @@ -1052,7 +1040,7 @@ "Tuesday": "Tirsdag", "TvLibraryHelp": "Gå igjennom {0}veiledning for navngivelse av TV-programmer{1}.", "UninstallPluginConfirmation": "Er du sikker på at du ønsker å avinstallere {0}?", - "UninstallPluginHeader": "Avinstaller programtillegg", + "HeaderUninstallPlugin": "Avinstaller programtillegg", "Unrated": "Ikke vurdert", "Up": "Opp", "UserProfilesIntro": "Jellyfin har støtte for brukerprofiler med finjusterbare innstillinger, avspillingsstatus og foreldrekontroll.", @@ -1076,9 +1064,7 @@ "ValueTimeLimitMultiHour": "Tidsgrense: {0} timer", "ValueTimeLimitSingleHour": "Tidsgrense: 1 time", "ValueVideoCodec": "Videokodek: {0}", - "VideoRange": "Videoområde", "ViewAlbum": "Vis album", - "ViewArtist": "Vis artist", "ViewPlaybackInfo": "Vis avspillingsinformasjon", "Watched": "Sett", "Wednesday": "Onsdag", @@ -1118,7 +1104,6 @@ "Banner": "Banner", "Backdrops": "Bakgrunner", "Backdrop": "Bakgrunn", - "AutoBasedOnLanguageSetting": "Automatisk (basert på språkinstillingene)", "Ascending": "Stigende", "Art": "Omslagsbilde", "AnyLanguage": "Hvilket som helst språk", @@ -1146,9 +1131,7 @@ "LabelPlayMethod": "Avspillingsmetode:", "LabelTranscodes": "Omkodede filer:", "MediaInfoLayout": "Oppsett", - "HandledByProxy": "Håndteres av en reverse proxy", "LabelRemoteClientBitrateLimitHelp": "En valgfri begrensning på bithastighet per strøm for alle enheter utenfor hjemmenettverket. Dette er nyttig for å hindre enheter fra å be om en høyere bithastighet enn internettilkoblingen din kan håndtere. Dette kan føre til økt CPU-bruk på serveren for å kunne omkode videoer fortløpende til en lavere bithastighet.", - "LabelSecureConnectionsMode": "Modus for sikker tilkobling:", "MediaInfoRefFrames": "Referanserammer", "MediaIsBeingConverted": "Mediet blir konvertert til et format som er kompatibelt med enheten som spiller av mediet.", "MediaInfoStreamTypeAudio": "Lyd", @@ -1195,7 +1178,6 @@ "LabelDateTimeLocale": "Datoformat:", "LabelType": "Type:", "Large": "Stor", - "MediaInfoSoftware": "Programvare", "DirectStreamHelp1": "Mediet støttes av enheten med tanke på oppløsning og medietype (H.264, AC3, osv), men den støtter ikke filkontaineren (mkv, avi, wmv, osv). Videoen vil ompakkes fortløpende før den sendes til enheten.", "EnableBackdrops": "Bakgrunner", "EnableThemeVideos": "Temavideoer", @@ -1212,7 +1194,7 @@ "LabelLanNetworks": "Lokale nettverk:", "MediaInfoCodecTag": "Kodektagg", "Metadata": "Metadata", - "NoPluginConfigurationMessage": "Dette programtillegget har ingen innstillinger å konfigurere.", + "MessageNoPluginConfiguration": "Dette programtillegget har ingen innstillinger å konfigurere.", "TabGuide": "Guide", "Unmute": "Skru på lyd", "OptionIsHD": "HD", @@ -1230,7 +1212,6 @@ "LabelAllowedRemoteAddressesMode": "Modus for filter for eksterne IP-adresser:", "LabelDiscNumber": "Platenummer:", "LabelDisplayLanguage": "Visningsspråk:", - "LinksValue": "Linker: {0}", "OptionAuto": "Automatisk", "OptionAutomatic": "Automatisk", "OptionHomeVideos": "Fotografier", @@ -1255,8 +1236,6 @@ "LabelSkipForwardLength": "Lengde for fremoverhopp:", "LabelTriggerType": "Utløsertype:", "LanNetworksHelp": "Kommaseparert liste over IP-adresser eller IP/nettverksmaske for nettverk som skal regnes som lokalt nettverk når båndbreddebegrensninger skal håndheves. Hvis satt, vil alle andre IP-adresser bli regnet for å være på eksternt nettverk og vil dermed være underlagt båndbreddebegrensningene for eksterne nettverk. Hvis tomt, vil kun serverens subnettverk bli regnet for å være på det lokale nettverket.", - "LaunchWebAppOnStartup": "Start web-grensesnittet når serveren starter", - "LaunchWebAppOnStartupHelp": "Åpne web-klienten i din standard nettleser når serveren starter opp. Dette vil ikke skje ved omstart av serveren.", "LearnHowYouCanContribute": "Finn ut hvordan du kan bidra.", "SeriesYearToPresent": "{0} - Nå", "LabelBaseUrlHelp": "Legger til en egendefinert undermappe til serverens nettadresse. For eksempel: http://example.com/<baseurl>", @@ -1317,7 +1296,6 @@ "LabelBurnSubtitles": "Brenn inn undertekst:", "LabelCache": "Mellomlagring:", "LabelCustomCertificatePathHelp": "Filbanen til en PKCS#12-fil med et sertifikat og privatnøkkel for å aktivere TLS-støtte på et eget domene.", - "LabelDashboardTheme": "Tema for serveroversikt:", "LabelDefaultScreen": "Standardskjerm:", "LabelDropShadow": "Underskygge:", "LabelDynamicExternalId": "{0} ID:", @@ -1335,8 +1313,6 @@ "LabelServerName": "Servernavn:", "LabelSimultaneousConnectionLimit": "Begrensing på samtidige strømmer:", "LabelSize": "Størrelse:", - "LabelSkin": "Utseende:", - "LabelSoundEffects": "Lydeffekter:", "LabelSpecialSeasonsDisplayName": "Visningsnavn for spesialsesong:", "LabelStatus": "Status:", "LabelSubtitleDownloaders": "Kilder for undertekst:", @@ -1401,11 +1377,8 @@ "PlaybackData": "Avspillingsdata", "PlayCount": "Antall avspillinger", "Playlists": "Spillelister", - "PreferredNotRequired": "Foretrukket, men ikke påkrevd", "Previous": "Forrige", "Primary": "Primær", - "RequiredForAllRemoteConnections": "Påkrevd for alle eksterne tilkoblinger", - "RunAtStartup": "Kjør ved oppstart", "SaveSubtitlesIntoMediaFolders": "Lagre undertekster i mediemapper", "SaveSubtitlesIntoMediaFoldersHelp": "Lagring av undertekster ved siden av videofilene vil gjøre det lettere å behandle dem.", "Screenshot": "Skjermbilde", @@ -1451,7 +1424,6 @@ "SelectAdminUsername": "Vennligst velg et brukernavn for administrator-kontoen.", "HeaderNavigation": "Navigering", "MessageConfirmAppExit": "Vil du avslutte?", - "CopyStreamURLError": "Det var en feil under kopiering av URL'en.", "LabelVideoResolution": "Oppløsning på video:", "LabelPlayerDimensions": "Dimensjoner på avspiller:", "LabelCorruptedFrames": "Korrupte bilder:", @@ -1476,8 +1448,8 @@ "DeinterlaceMethodHelp": "Velg deinterlacing metoden som skal bli brukt når man transkoder interlaced innhold.", "ButtonTogglePlaylist": "Spilleliste", "ButtonToggleContextMenu": "Mer", - "EnableBlurhashHelp": "Bilder som fortsatt lastes inn vil vises med en tåkete plassholder", - "EnableBlurhash": "Aktiver tåkete plassholdere for bilder", + "EnableBlurHashHelp": "Bilder som fortsatt lastes inn vil vises med en tåkete plassholder", + "EnableBlurHash": "Aktiver tåkete plassholdere for bilder", "UnsupportedPlayback": "Jellyfin kan ikke dekryptere innhold beskyttet med DRM, men alt innhold vil bli forsøkt uansett, inkludert beskyttede titler. Noen filer kan fremstå helt svarte grunnet kryptering eller andre ikke støttede funksjoner, som interaktive titler.", "OnApplicationStartup": "Ved oppstart av applikasjonen", "EveryXHours": "Hver {0}. time", @@ -1502,11 +1474,9 @@ "ShowLess": "Vis mindre", "Season": "Sesong", "SaveChanges": "Lagre endringer", - "ReleaseGroup": "Utgivelsesgruppe", "PreferEmbeddedEpisodeInfosOverFileNames": "Foretrekk innebygd episodeinformasjon framfor filnavn", "PreferEmbeddedEpisodeInfosOverFileNamesHelp": "Dette bruker episodeinformasjonen fra innebygd metadata hvis tilgjengelig.", "Person": "Person", - "OtherArtist": "Annen artist", "Movie": "Film", "MessageSyncPlayErrorMedia": "Kunne ikke aktivere SyncPlay! Mediefeil.", "MessageSyncPlayErrorMissingSession": "Kunne ikke aktivere SyncPlay! Mangler sesjon.", @@ -1523,7 +1493,6 @@ "MessageSyncPlayUserJoined": "{0} har blitt med i gruppen.", "MessageSyncPlayDisabled": "SyncPlay deaktivert.", "MessageSyncPlayEnabled": "SyncPlay aktivert.", - "MessageUnauthorizedUser": "Du har ikke autorisert tilgang til serveren akkurat nå. Vennligst kontakt serveradministratoren din for mer informasjon.", "LabelSyncPlayAccess": "SyncPlay-tilgang", "LabelSyncPlayAccessNone": "Deaktivert for denne brukeren", "LabelSyncPlayAccessJoinGroups": "Tillat brukeren å bli med i grupper", @@ -1538,7 +1507,6 @@ "LabelSyncPlayTimeOffset": "Tidsforskyvning mot serveren:", "LabelRequireHttpsHelp": "Hvis valgt, vil serveren automatisk omdirigere alle HTTP-forespørsler til HTTPS. Dette har ingen effekt dersom serveren ikke lytter etter HTTPS.", "LabelRequireHttps": "Krev HTTPS", - "LabelNightly": "Nattlig", "LabelStable": "Stabil", "LabelChromecastVersion": "Chromecast-versjon", "LabelEnableHttpsHelp": "Aktiverer at serveren skal lytte på den valgte HTTPS-porten. Et gyldig sertifikat må også være konfigurert for at dette skal tre i kraft.", diff --git a/src/strings/nl.json b/src/strings/nl.json index c407f81680..39b2ea1b5e 100644 --- a/src/strings/nl.json +++ b/src/strings/nl.json @@ -3,7 +3,6 @@ "AccessRestrictedTryAgainLater": "Toegang is momenteel beperkt, probeer later opnieuw.", "Actor": "Acteur", "Add": "Toevoegen", - "AddItemToCollectionHelp": "Voeg items aan uw collecties toe door te zoeken en gebruik rechts klikken met de muis of tik op menu's om ze toe te voegen aan een verzameling.", "AddToCollection": "Toevoegen aan Collectie", "AddToPlayQueue": "Toevoegen aan wachtrij", "AddToPlaylist": "Toevoegen aan afspeellijst", @@ -38,7 +37,6 @@ "AttributeNew": "Nieuw", "Audio": "Geluid", "Auto": "Automatisch", - "AutoBasedOnLanguageSetting": "Automatisch (gebaseerd op taal instelling)", "Backdrop": "Achtergrond", "Backdrops": "Achtergronden", "BirthDateValue": "Geboren: {0}", @@ -48,7 +46,7 @@ "Books": "Boeken", "BoxRear": "Hoes (achterkant)", "Browse": "Bladeren", - "BrowsePluginCatalogMessage": "Bekijk de Plugin catalogus voor beschikbare Plug-ins.", + "MessageBrowsePluginCatalog": "Bekijk de Plugin catalogus voor beschikbare Plug-ins.", "BurnSubtitlesHelp": "Bepaalt of de server ondertitels moet branden bij het transcoderen van video's. Als u dit vermijd, worden de prestaties aanzienlijk verbeterd. Selecteer Auto om op afbeeldingen gebaseerde formaten (VOBSUB, PGS, SUB/IDX etc.) en bepaalde ASS/SSA ondertitels te branden.", "ButtonAdd": "Toevoegen", "ButtonAddMediaLibrary": "Voeg Media Bibliotheek toe", @@ -77,7 +75,6 @@ "ButtonGuide": "Gids", "ButtonHelp": "Hulp", "ButtonHome": "Start", - "ButtonLearnMore": "Meer informatie", "ButtonLibraryAccess": "Bibliotheek toegang", "ButtonManualLogin": "Handmatige Aanmelding", "ButtonMore": "Meer", @@ -118,7 +115,6 @@ "ButtonSubmit": "Uitvoeren", "ButtonSubtitles": "Ondertiteling", "ButtonUp": "Omhoog", - "ButtonViewWebsite": "Bekijk website", "CancelRecording": "Opname annuleren", "CancelSeries": "Annuleer series", "Categories": "Categorieën", @@ -149,7 +145,7 @@ "DatePlayed": "Datum afgespeeld", "DeathDateValue": "Overleden: {0}", "Default": "Standaard", - "DefaultErrorMessage": "Er is een fout opgetreden. Probeer later opnieuw.", + "ErrorDefault": "Er is een fout opgetreden. Probeer later opnieuw.", "DefaultMetadataLangaugeDescription": "Dit zijn uw standaardinstellingen en kunnen per bibliotheek worden aangepast.", "DefaultSubtitlesHelp": "Ondertitels worden geladen op basis van de standaard en geforceerd markeringen in de ingesloten metadata. Indien meerdere opties aanwezig zijn zal rekening worden gehouden met de taalvoorkeuren.", "Delete": "Verwijderen", @@ -216,7 +212,7 @@ "ErrorAddingXmlTvFile": "Er is een fout opgetreden met de toegang tot XMLTV bestand. Zorg ervoor dat het bestand bestaat en probeer het opnieuw.", "ErrorDeletingItem": "Er was een probleem bij het verwijderen van het item in Jellyfin Server. Controleer dat Jellyfin Server schrijfrechten op de map heeft en probeer het opnieuw.", "ErrorGettingTvLineups": "Er was een fout bij het downloaden van de TV lineup. Controleer of uw gegevens correct zijn en probeer het opnieuw.", - "ErrorMessageStartHourGreaterThanEnd": "Eind tijd moet na de start tijd liggen.", + "ErrorStartHourGreaterThanEnd": "Eind tijd moet na de start tijd liggen.", "ErrorPleaseSelectLineup": "Selecteer een lineup en probeer het opnieuw. Als er geen lineups beschibaar zijn, controleer dan of uw gebruikersnaam, wachtwoord en postcode correct zijn.", "ErrorSavingTvProvider": "Er was een fout bij het opslaan van de TV aanbieder. Controleer of deze toegankelijk is en probeer het opnieuw.", "EveryNDays": "Elke {0} dagen", @@ -253,7 +249,6 @@ "H264CrfHelp": "De Constant Rate Factor (CRF) is de standaard kwaliteit instelling voor de x264-encoder. U kunt de waarden tussen 0 en 51, in voorkomend lagere waarden zou resulteren in een betere kwaliteit (ten koste van hogere bestandsgrootte). aanbevolen zijn waarden tussen de 18 en 28. De standaard voor de x264 is 23, zodat u deze kunt gebruiken als uitgangspunt.", "EncoderPresetHelp": "Kies een hogere waarde om de prestaties, of een tragere waarde om de kwaliteit te verbeteren.", "HDPrograms": "HD Programma's", - "HandledByProxy": "Behandeld door reverse proxy", "HardwareAccelerationWarning": "Hardwareversnelling inschakelen kan instabiliteit veroorzaken in sommige omgevingen. Zorg ervoor dat uw besturingssysteem en videostuurprogramma's volledig up-to-date zijn. Als u problemen ondervindt bij het afspelen van video, nadat u dit hebt ingeschakeld, moet u de instelling terugzetten naar geen.", "HeaderAccessSchedule": "Schema Toegang", "HeaderAccessScheduleHelp": "Maak een toegangsschema om de toegang tot bepaalde tijden te beperken.", @@ -277,7 +272,6 @@ "HeaderAppearsOn": "Verschijnt op", "HeaderAudioBooks": "Luisterboeken", "HeaderAudioSettings": "Audio Instellingen", - "HeaderAutomaticUpdates": "Automatische updates", "HeaderBlockItemsWithNoRating": "Blokkeer items met geen of niet herkende beoordelingsinformatie:", "HeaderBooks": "Boeken", "HeaderBranding": "Huisstijl", @@ -481,8 +475,6 @@ "LabelAlbumArtists": "Album artiesten:", "LabelAll": "Alles", "LabelAllowHWTranscoding": "Hardware transcoding toestaan", - "LabelAllowServerAutoRestart": "Automatisch herstarten van de server toestaan om updates toe te passen", - "LabelAllowServerAutoRestartHelp": "De server zal alleen opnieuw opstarten tijdens inactieve perioden, wanneer er geen gebruikers actief zijn.", "LabelAllowedRemoteAddresses": "Externe IP-adressen filter:", "LabelAllowedRemoteAddressesMode": "Externe IP-adressen filter modus:", "LabelAppName": "Applicatie Naam", @@ -518,7 +510,6 @@ "LabelCustomDeviceDisplayName": "Weergave naam:", "LabelCustomDeviceDisplayNameHelp": "Geef een eigen weergave naam op of laat deze leeg om de naam te gebruiken die het apparaat opgeeft.", "LabelCustomRating": "Aangepaste classificatie:", - "LabelDashboardTheme": "Server dashboard thema:", "LabelDateAdded": "Datum toegevoegd:", "LabelDateAddedBehavior": "Datum toegevoegd gedrag voor nieuwe content:", "LabelDateAddedBehaviorHelp": "Als metadata gegevens aanwezig zijn hebben deze voorrang op deze opties.", @@ -711,7 +702,6 @@ "LabelScheduledTaskLastRan": "Laatste keer {0}, duur {1}.", "LabelScreensaver": "Schermbeveiliging:", "LabelSeasonNumber": "Seizoensnummer:", - "LabelSecureConnectionsMode": "Beveiligde verbinding modus:", "LabelSelectFolderGroups": "De inhoud van de volgende mappen automatisch groeperen in secties zoals Films, Muziek en TV:", "LabelSelectFolderGroupsHelp": "Mappen die niet aangevinkt zijn worden getoond in hun eigen weergave.", "LabelSelectUsers": "Selecteer gebruikers:", @@ -733,7 +723,6 @@ "LabelSortBy": "Sorteren op:", "LabelSortOrder": "Sorteer volgorde:", "LabelSortTitle": "Sorteer titel:", - "LabelSoundEffects": "Geluidseffecten:", "LabelSource": "Bron:", "LabelSpecialSeasonsDisplayName": "De weergavenaam van een speciaal seizoen:", "LabelSportsCategories": "Sport categorieën:", @@ -773,11 +762,9 @@ "LabelValue": "Waarde:", "LabelVersion": "Versie:", "LabelVersionInstalled": "{0} geïnstalleerd", - "LabelVersionNumber": "Versie {0}", "LabelXDlnaCapHelp": "Bepaalt de inhoud van het X_DLNACAP element in de urn: schemas-dlna-org:device-1-0 namespace.", "LabelXDlnaDocHelp": "Bepaalt de inhoud van het X_DLNADOC element in de urn:schemas-dlna-org:device-1-0 namespace.", "LabelYear": "Jaar:", - "LabelYourFirstName": "Uw voornaam:", "LabelYoureDone": "Gereed!", "LabelZipCode": "Postcode:", "LabelffmpegPath": "FFmpeg pad:", @@ -829,14 +816,12 @@ "MessageCreateAccountAt": "Maak een account bij {0}", "MessageDeleteTaskTrigger": "Weet u zeker dat u deze signaal taak wilt verwijderen?", "MessageDirectoryPickerBSDInstruction": "Voor BSD kan het noodzakelijk zijn opslag op uw FreeNAS Jail te configureren voordat Jellyfin het kan benaderen.", - "MessageDirectoryPickerInstruction": "Netwerk paden kunnen handmatig worden ingevoerd in het geval de Netwerk knop faalt om uw apparatuur te lokaliseren. Bijvoorbeeld: {0} of {1}.", "MessageDirectoryPickerLinuxInstruction": "Voor Linux op Arch Linux, CentOS, Debian, Fedora, openSUSE, of Ubuntu, moet u de service-gebruiker ten minste leestoegang tot uw opslaglocaties verlenen.", "MessageDownloadQueued": "Download in de wachtrij geplaatst.", "MessageEnablingOptionLongerScans": "Het inschakelen van deze optie kan leiden tot langere doorlooptijd van bibliotheek scans.", "MessageFileReadError": "Er is een fout opgetreden bij het lezen van het bestand. Probeer het opnieuw.", "MessageForgotPasswordFileCreated": "Het volgende bestand is gecreëerd op uw server en bevat instructies om verder te gaan:", "MessageForgotPasswordInNetworkRequired": "Probeer de wachtwoord herstel procedure opnieuw vanuit uw thuisnetwerk.", - "MessageInstallPluginFromApp": "Deze plugin moet geïnstalleerd worden vanuit de app waarin u het wilt gebruiken.", "MessageInvalidForgotPasswordPin": "Er is een ongeldige of verlopen pincode ingegeven. Probeer opnieuw.", "MessageInvalidUser": "Incorrecte gebruikersnaam of wachtwoord. Probeer opnieuw.", "MessageItemSaved": "Item opgeslagen.", @@ -884,8 +869,8 @@ "NextUp": "Hierna", "No": "Nee", "NoNewDevicesFound": "Er zijn geen nieuwe apparaten gevonden. Sluit dit melding en voer handmatig de apparaat gegevens in om een nieuwe tuner toe te voegen.", - "NoNextUpItemsMessage": "Niets gevonden. Start met kijken!", - "NoPluginConfigurationMessage": "Deze plugin heeft geen instellingen te configureren.", + "MessageNoNextUpItems": "Niets gevonden. Start met kijken!", + "MessageNoPluginConfiguration": "Deze plugin heeft geen instellingen te configureren.", "NoSubtitleSearchResultsFound": "Geen resultaten gevonden.", "NoSubtitles": "Geen ondertiteling", "NoSubtitlesHelp": "Ondertitels worden niet standaard weergegeven. Deze kunnen tijdens het afspelen handmatig worden ingeschakeld.", @@ -1026,7 +1011,7 @@ "PasswordMatchError": "Wachtwoord en wachtwoord bevestiging moeten hetzelfde zijn.", "PasswordResetComplete": "Het wachtwoord is opnieuw ingesteld.", "PasswordResetConfirmation": "Weet u zeker dat u het wachtwoord opnieuw in wilt stellen?", - "PasswordResetHeader": "Reset Wachtwoord", + "HeaderResetPassword": "Reset Wachtwoord", "PasswordSaved": "Wachtwoord opgeslagen.", "People": "Personen", "PerfectMatch": "Perfecte match", @@ -1048,10 +1033,9 @@ "PleaseEnterNameOrId": "Voer een naam of een externe ID in.", "PleaseRestartServerName": "Herstart Jellyfin Server - {0} aub.", "PleaseSelectTwoItems": "Selecteer ten minste twee items.", - "PluginInstalledMessage": "Het installeren van de plugin is gelukt. Jellyfin Server zal heropgestart moeten worden om de wijzigingen door te voeren.", + "MessagePluginInstalled": "Het installeren van de plugin is gelukt. Jellyfin Server zal heropgestart moeten worden om de wijzigingen door te voeren.", "PreferEmbeddedTitlesOverFileNames": "Prefereer ingesloten titels boven bestandsnamen", "PreferEmbeddedTitlesOverFileNamesHelp": "Dit bepaalt de standaard weergavetitel wanneer er geen internet metagegevens of lokale metadata beschikbaar is.", - "PreferredNotRequired": "Gewenst, maar niet verplicht", "Premieres": "Premières", "Previous": "Vorige", "Primary": "Primair", @@ -1059,7 +1043,6 @@ "ProductionLocations": "Productie Locaties", "Programs": "Programma's", "Quality": "Kwaliteit", - "QueueAllFromHere": "Plaats in de wachtrij vanaf hier", "Raised": "Verhoogd", "Rate": "Waardeer", "RecentlyWatched": "Onlangs bekeken", @@ -1070,7 +1053,7 @@ "Record": "Opnemen", "RecordSeries": "Series Opnemen", "RecordingCancelled": "Opname geannuleerd.", - "RecordingPathChangeMessage": "Bij het wijzigen van uw opnamemap zullen bestaande opnamen niet migreren van de oude locatie naar de nieuwe. U moet deze desgewenst handmatig verplaatsen.", + "MessageChangeRecordingPath": "Bij het wijzigen van uw opnamemap zullen bestaande opnamen niet migreren van de oude locatie naar de nieuwe. U moet deze desgewenst handmatig verplaatsen.", "RecordingScheduled": "Opname schema.", "Recordings": "Opnames", "Refresh": "Vernieuwen", @@ -1088,10 +1071,8 @@ "RepeatOne": "Eén herhalen", "ReplaceAllMetadata": "Alle metadata vervangen", "ReplaceExistingImages": "Bestaande afbeeldingen vervangen", - "RequiredForAllRemoteConnections": "Vereist voor alle externe verbindingen", "ResumeAt": "Hervatten vanaf {0}", "Rewind": "Terugspoelen", - "RunAtStartup": "Uitvoeren bij opstarten", "Runtime": "Speelduur", "Saturday": "Zaterdag", "Save": "Opslaan", @@ -1177,7 +1158,6 @@ "TabParentalControl": "Ouderlijk toezicht", "TabPassword": "Wachtwoord", "TabPlayback": "Afspelen", - "TabPlaylist": "Afspeellijst", "TabPlaylists": "Afspeellijst", "TabProfile": "Profiel", "TabProfiles": "Profielen", @@ -1210,7 +1190,7 @@ "Tuesday": "Dinsdag", "TvLibraryHelp": "Bekijk de {0}TV naamgeving gids {1}.", "UninstallPluginConfirmation": "Weet u zeker dat u {0} wilt deïnstalleren?", - "UninstallPluginHeader": "Plug-in deïnstalleren", + "HeaderUninstallPlugin": "Plug-in deïnstalleren", "Unmute": "Dempen opheffen", "Unplayed": "Niet afgespeeld", "Unrated": "Geen rating", @@ -1234,9 +1214,7 @@ "ValueTimeLimitMultiHour": "Tijdslimiet: {0} uren", "ValueTimeLimitSingleHour": "Tijdslimiet: 1 uur", "Vertical": "Verticaal", - "VideoRange": "Videobereik", "ViewAlbum": "Bekijk album", - "ViewArtist": "Bekijk artiest", "ViewPlaybackInfo": "Bekijk afspelen info", "Watched": "Bekeken", "Wednesday": "Woensdag", @@ -1273,19 +1251,10 @@ "HeaderCastCrew": "Acteurs & medewerkers", "Art": "Afbeeldingen", "HeaderLiveTV": "Live TV", - "HeaderDetails": "Details", - "HeaderExport": "Exporteer", "HeaderFilters": "Filters", "HeaderGenres": "Genres", "HeaderHttpHeaders": "HTTP Headers", - "HeaderImageLogo": "Logo", - "HeaderMenu": "Menu", - "HeaderResetTuner": "Ontvanger resetten", - "HeaderReviews": "Beoordelingen", "HeaderStatus": "Status", - "HeaderSync": "Synchronisatie", - "HeaderTV": "TV", - "HeaderTopPlugins": "Top Plugins", "AuthProviderHelp": "Selecteer een Authenticatie Provider om het wachtwoord van deze gebruiker te verifiëren.", "HeaderFavoriteMovies": "Favoriete Films", "HeaderFavoriteShows": "Favoriete shows", @@ -1296,7 +1265,6 @@ "HeaderFavoriteVideos": "Favoriete Films", "HeaderInstantMix": "Directe Mix", "HeaderItems": "Items", - "HeaderJellyfinServer": "Jellyfin Server", "HeaderLiveTv": "Live TV", "HeaderMedia": "Media", "HeaderTracks": "Nummers", @@ -1319,7 +1287,6 @@ "LabelProfileVideoCodecs": "Video codecs:", "LabelProtocolInfo": "Protocol info:", "LabelServerName": "Server naam:", - "LabelSkin": "Uiterlijk:", "ButtonAddImage": "Voeg afbeelding toe", "LabelSize": "Grootte:", "CopyStreamURLSuccess": "URL succesvol gekopieerd.", @@ -1334,7 +1301,6 @@ "LabelBaseUrl": "Basis URL:", "LabelTranscodingProgress": "Transcoderen voortgang:", "LabelTriggerType": "Signaal Type:", - "LaunchWebAppOnStartup": "Lanceer de web interface wanneer de server start", "MediaInfoBitrate": "Bitrate", "MediaInfoInterlaced": "Interlaced", "ValueSeriesCount": "{0} series", @@ -1416,7 +1382,6 @@ "LabelTranscodes": "Transcoderen:", "DashboardOperatingSystem": "Besturingssysteem: {0}", "LabelWeb": "Web:", - "LaunchWebAppOnStartupHelp": "Open de web cliënt in uw standaard browser wanneer de server voor de eerste keer start. Dit zal niet voorkomen tijdens gebruik van de server herstart functie.", "LeaveBlankToNotSetAPassword": "U kunt dit veld leeg laten om geen wachtwoord in te stellen.", "DashboardServerName": "Server: {0}", "LabelVideoBitrate": "Video bitrate:", @@ -1429,13 +1394,11 @@ "MediaInfoStreamTypeData": "Data", "MediaInfoStreamTypeSubtitle": "Ondertiteling", "MediaInfoStreamTypeVideo": "Video", - "LinksValue": "Links: {0}", "Logo": "Logo", "MediaInfoCodecTag": "Codec tag", "MediaInfoContainer": "Container", "MediaInfoFramerate": "Beeldverversing", "MediaInfoRefFrames": "Ref beeld", - "MediaInfoSoftware": "Software", "MessageImageFileTypeAllowed": "Alleen JPEG en PNG bestanden worden ondersteund.", "MessageImageTypeNotSelected": "Selecteer een afbeelding type van het menu alstublieft .", "MessageNoCollectionsAvailable": "Collecties staan u toe om te genieten van gepersonaliseerde groeperingen van Films, Series en Albums te maken. Klik op de + knop om te beginnen met het maken van collecties.", @@ -1460,7 +1423,6 @@ "AlbumArtist": "Album Artiest", "Album": "Album", "DeinterlaceMethodHelp": "Selecteer de deinterlacingmethode die u wilt gebruiken bij het transcoderen van geïnterlinieerde inhoud.", - "CopyStreamURLError": "Er trad een fout op tijdens het kopieren van de URL.", "ClientSettings": "Client instellingen", "ButtonSplit": "Splitsen", "BoxSet": "Box Set", @@ -1477,16 +1439,13 @@ "HeaderNavigation": "Navigeren", "Episode": "Aflevering", "Season": "Seizoen", - "ReleaseGroup": "Uitgave groep", "PreferEmbeddedEpisodeInfosOverFileNames": "Verkies ingeladen afleveringsinformatie boven bestandsnaam", "PreferEmbeddedEpisodeInfosOverFileNamesHelp": "Dit gebruikt de afleveringsinformatie van de ingeladen metadata als deze aanwezig is.", "PlaybackErrorNoCompatibleStream": "Deze machine is niet leesbaar met de media en de server verstuurd geen leesbare media formaten.", "Person": "Persoon", - "OtherArtist": "Andere Artiesten", "OptionForceRemoteSourceTranscoding": "Forceer het transcoderen van op afstand bediende media bronnen (zoals LiveTV)", "NoCreatedLibraries": "Het lijkt erop dat er geen bibliotheek is gecreëerd. {0}Wilt u er nu een aanmaken?{1}", "Movie": "Film", - "MessageUnauthorizedUser": "U bent niet gemachtigd om toegang tot de server te krijgen op dit moment. Neem contact op met de server beheerder voor meer informatie.", "MessageConfirmAppExit": "Wilt u afsluiten?", "LabelVideoResolution": "Video resolutie:", "LabelStreamType": "Stream type:", @@ -1546,7 +1505,6 @@ "MillisecondsUnit": "ms", "LabelSyncPlayTimeOffset": "Tijd offset met de server:", "LabelRequireHttps": "HTTPS verplichten", - "LabelNightly": "Nightly", "LabelStable": "Stabiel", "LabelChromecastVersion": "Chromecast versie", "LabelEnableHttpsHelp": "Hiermee kan de server luisteren op de geconfigureerde HTTPS-poort. Om dit te laten werken moet ook een geldig certificaat worden geconfigureerd.", @@ -1569,8 +1527,8 @@ "ClearQueue": "Leeg wachtrij", "StopPlayback": "Stop afspelen", "ButtonPlayer": "Speler", - "EnableBlurhashHelp": "Afbeeldingen die nog laden worden getoond als een wazige placeholder", - "EnableBlurhash": "Schakel wazige placeholders voor plaatjes in", + "EnableBlurHashHelp": "Afbeeldingen die nog laden worden getoond als een wazige placeholder", + "EnableBlurHash": "Schakel wazige placeholders voor plaatjes in", "Writers": "Schrijvers", "ViewAlbumArtist": "Bekijk album artiest", "MessageAddRepository": "Om een repository toe te voegen klik je op de knop naast de kop, en vul je benodigde informatie in.", diff --git a/src/strings/pl.json b/src/strings/pl.json index 9e21c5113d..b4612c14af 100644 --- a/src/strings/pl.json +++ b/src/strings/pl.json @@ -3,7 +3,6 @@ "AccessRestrictedTryAgainLater": "Dostęp jest aktualnie ograniczony. Spróbuj ponownie później.", "Actor": "Aktor", "Add": "Dodaj", - "AddItemToCollectionHelp": "Dodaj obiekty do kolekcji wyszukując je i użyj prawy przycisk myszy lub dotknij menu, aby dodać je do kolekcji.", "AddToCollection": "Dodaj do kolekcji", "AddToPlayQueue": "Dodaj do kolejki odtwarzania", "AddToPlaylist": "Dodaj do listy", @@ -40,7 +39,6 @@ "AttributeNew": "Nowy", "Audio": "Dźwięk", "Auto": "Automatycznie", - "AutoBasedOnLanguageSetting": "Automatyczna (w oparciu o ustawienia językowe)", "Backdrop": "Fototapeta", "Backdrops": "Fototapety", "Banner": "Baner", @@ -53,7 +51,7 @@ "Box": "Pudełko", "BoxRear": "Pudełko (tył)", "Browse": "Przeglądaj", - "BrowsePluginCatalogMessage": "Przejrzyj nasz katalog wtyczek żeby zobaczyć dostępne wtyczki.", + "MessageBrowsePluginCatalog": "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 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", @@ -84,13 +82,12 @@ "ButtonHelp": "Pomoc", "ButtonHome": "Start", "ButtonInfo": "Informacje", - "ButtonLearnMore": "Dowiedz się więcej", "ButtonLibraryAccess": "Dostęp do biblioteki", "ButtonManualLogin": "Logowanie manualne", "ButtonMore": "Więcej", "ButtonNetwork": "Sieć", "ButtonNew": "Nowe", - "ButtonNextTrack": "Następna utwór", + "ButtonNextTrack": "Następny utwór", "ButtonOff": "Wyłącz", "ButtonOpen": "Otwórz", "ButtonParentalControl": "Kontrola rodzicielska", @@ -128,7 +125,6 @@ "ButtonTrailer": "Zwiastun", "ButtonUninstall": "Odinstaluj", "ButtonUp": "Góra", - "ButtonViewWebsite": "Odwiedź stronę", "ButtonWebsite": "Strona WWW", "CancelRecording": "Anuluj nagranie", "CancelSeries": "Anuluj nagrywanie serialu", @@ -160,7 +156,7 @@ "DatePlayed": "Data odtwarzania", "DeathDateValue": "Zmarły: {0}", "Default": "Domyślny", - "DefaultErrorMessage": "Wystąpił błąd podczas przetwarzania żądania. Proszę spróbować ponownie później.", + "ErrorDefault": "Wystąpił błąd podczas przetwarzania żądania. Proszę spróbować ponownie później.", "DefaultMetadataLangaugeDescription": "To są twoje ustawienia domyślne. Możesz je zmienić dla każdej biblioteki osobno.", "DefaultSubtitlesHelp": "Napisy będą wczytywane w oparciu o znaczniki metadanych ścieżek dźwiękowych. Preferencje językowe brane są pod uwagę, gdy dostępnych jest wiele możliwości.", "Delete": "Usuń", @@ -229,7 +225,7 @@ "ErrorAddingXmlTvFile": "Podczas próby dostępu do pliku XMLTV wystąpił błąd. Upewnij się, że plik istnieje i spróbuj ponownie.", "ErrorDeletingItem": "Podczas usuwania pozycji z serwera Jellyfin wystąpił błąd. Upewnij się, że serwer ma uprawnienia do zapisu w folderze mediów i spróbuj ponownie.", "ErrorGettingTvLineups": "Podczas pobierania programu telewizyjnego wystąpił błąd. Upewnij się, że informacje są poprawne i spróbuj ponownie.", - "ErrorMessageStartHourGreaterThanEnd": "Czas końcowy musi być większy niż czas początkowy.", + "ErrorStartHourGreaterThanEnd": "Czas końcowy musi być większy niż czas początkowy.", "ErrorPleaseSelectLineup": "Wybierz program i spróbuj ponownie, jeśli żadne programy nie są dostępne, sprawdź czy twój login, hasło i kod pocztowy jest poprawny.", "ErrorSavingTvProvider": "Wystąpił błąd podczas dodawania dostawcy telewizji. Upewnij się, że jest on dostępny i spróbuj ponownie.", "EveryNDays": "Co {0} dni", @@ -268,7 +264,6 @@ "H264CrfHelp": "Constant Rate Factor (CRF) to domyślna jakość kodowania x264. Możesz ją ustawić w zakresie 0-51, gdzie niższe wartości zwiększają jakość (kosztem większego rozmiaru pliku). Rozsądne wartości to zakres 18-28. Domyślnie jest to wartość 23 - możesz jej użyć jako wartości początkowej.", "EncoderPresetHelp": "Wybierz wartość faster, żeby zwiększyć wydajność, albo slower, żeby zwiększyć jakość.", "HDPrograms": "Programy w jakości HD", - "HandledByProxy": "Obsługiwane przez usługę pośredniczącą", "HardwareAccelerationWarning": "Aktywacja akceleracji sprzętowej może powodować niestabilność na niektórych środowiskach. Upewnij się, że system operacyjny i sterowniki karty graficznej są aktualne. Jeżeli masz problemy z odtwarzaniem wideo po aktywacji, przywróć to ustawienie do wartości Brak.", "HeaderAccessSchedule": "Harmonogram dostępu", "HeaderAccessScheduleHelp": "Utwórz dostęp do harmonogramu aby ograniczyć go do określonych godzin.", @@ -293,7 +288,6 @@ "HeaderAppearsOn": "Występuje", "HeaderAudioBooks": "Książka mówiona", "HeaderAudioSettings": "Ustawienia dźwięku", - "HeaderAutomaticUpdates": "Aktualizacje", "HeaderBlockItemsWithNoRating": "Blokuj pozycje z brakującą lub nierozpoznaną kategorią wiekową:", "HeaderBooks": "Książki", "HeaderBranding": "Dostosowywanie", @@ -514,8 +508,6 @@ "LabelAlbumArtists": "Wykonawcy albumów:", "LabelAll": "Wszystkie", "LabelAllowHWTranscoding": "Zezwalaj na sprzętowe transkodowanie", - "LabelAllowServerAutoRestart": "Zezwalaj na ponowne uruchomienie serwera, w celu instalacji aktualizacji", - "LabelAllowServerAutoRestartHelp": "Serwer będzie ponownie uruchamiany tylko w trakcie bezczynności, kiedy nie ma aktywnych użytkowników.", "LabelAllowedRemoteAddresses": "Filtr adresów IP:", "LabelAllowedRemoteAddressesMode": "Tryb filtra adresów IP:", "LabelAppName": "Nazwa Aplikacji", @@ -553,7 +545,6 @@ "LabelCustomDeviceDisplayName": "Nazwa wyświetlana:", "LabelCustomDeviceDisplayNameHelp": "Dostarcz własną nazwę wyświetlania lub zostaw puste i użyj nazwy dostarczonej przez urządzenie.", "LabelCustomRating": "Kategoria wiekowa własna:", - "LabelDashboardTheme": "Motyw kokpitu serwera:", "LabelDateAdded": "Data dodania:", "LabelDateAddedBehavior": "Data dodania dla nowej zawartości:", "LabelDateAddedBehaviorHelp": "Jeśli istnieją metadane będą one użyte zawsze przed którąkolwiek z tych opcji.", @@ -754,7 +745,6 @@ "LabelScheduledTaskLastRan": "Ostatnio uruchomiono {0}, czas trwania {1}.", "LabelScreensaver": "Wygaszacz ekranu:", "LabelSeasonNumber": "Numer sezonu:", - "LabelSecureConnectionsMode": "Tryb zabezpieczania połączenia:", "LabelSelectFolderGroups": "Grupuj zawartość z następujących folderów w widokach taki, jak Filmy, Muzyka i Seriale:", "LabelSelectFolderGroupsHelp": "Foldery, które nie zostały zaznaczone, będą wyświetlane w swoich własnych, osobnych widokach.", "LabelSelectUsers": "Wybierz użytkowników:", @@ -765,7 +755,6 @@ "LabelServerHost": "Serwer:", "LabelServerHostHelp": "192.168.1.100:8096 or https://myserver.com", "LabelSimultaneousConnectionLimit": "Limit jednoczesnych transmisji:", - "LabelSkin": "Skóra:", "LabelSkipBackLength": "Długość skoku wstecz:", "LabelSkipForwardLength": "Długość skoku wprzód:", "LabelSkipIfAudioTrackPresent": "Pomijaj, jeżeli domyślna ścieżka dźwiękowa jest w języku pobierania", @@ -777,7 +766,6 @@ "LabelSortBy": "Sortuj po:", "LabelSortOrder": "Porządek sortowania:", "LabelSortTitle": "Tytuł sortowania:", - "LabelSoundEffects": "Efekty dźwiękowe:", "LabelSource": "Źródło:", "LabelSpecialSeasonsDisplayName": "Nazwa sezonu odcinków specjalnych:", "LabelSportsCategories": "Kategorie wydarzeń sportowych:", @@ -825,12 +813,10 @@ "LabelValue": "Wartość:", "LabelVersion": "Wersja:", "LabelVersionInstalled": "Zainstalowano {0}", - "LabelVersionNumber": "Wersja {0}", "LabelVideo": "Wideo", "LabelXDlnaCapHelp": "Określa zawartość elementu X_DLNACAP w przestrzeni nazw urn:schemas-dlna-org:device-1-0.", "LabelXDlnaDocHelp": "Określa zawartość elementu X_DLNADOC w przestrzeni nazw urn:schemas-dlna-org:device-1-0.", "LabelYear": "Rok:", - "LabelYourFirstName": "Twoje imię:", "LabelYoureDone": "Zakończono!", "LabelZipCode": "Kod pocztowy:", "LabelffmpegPath": "Folder aplikacji FFmpeg:", @@ -841,7 +827,6 @@ "LearnHowYouCanContribute": "Dowiedz się jak możesz pomóc.", "LibraryAccessHelp": "Wybierz biblioteki udostępniane temu użytkownikowi. Administratorzy będą mogli edytować wszystkie foldery używając menedżera metadanych.", "Like": "Lubię", - "LinksValue": "Łącza: {0}", "List": "Lista", "Live": "Na żywo", "LiveBroadcasts": "Transmisje na żywo", @@ -892,14 +877,12 @@ "MessageCreateAccountAt": "Utwórz konto na {0}", "MessageDeleteTaskTrigger": "Czy na pewno chcesz usunąć ten wyzwalacz zadania?", "MessageDirectoryPickerBSDInstruction": "W wypadku BSD, należy skonfigurować oprogramowanie FreeNAS aby umożliwić serwerowi Jellyfin dostęp do danych.", - "MessageDirectoryPickerInstruction": "Udziały sieciowe mogą być wprowadzone manualnie, w przypadku niewykrycia wszystkich urządzeń za pomocą przycisku \"Sieć\". Na przykład: {0} lub {1}.", "MessageDirectoryPickerLinuxInstruction": "Dla Linuxa dystrybucji Arch Linux, CentOS, Debian, Fedora, openSUSE albo Ubuntu, musisz uzyskać dla użytkownika Jellyfin uprawnienia przynajmniej do odczytu pamięci masowej.", "MessageDownloadQueued": "Dodano do kolejki pobierania.", "MessageEnablingOptionLongerScans": "Aktywowanie tej opcji może spowodować znaczne wydłużenie czasu skanowania biblioteki.", "MessageFileReadError": "Podczas wczytywania plików wystąpił błąd. Spróbuj ponownie później.", "MessageForgotPasswordFileCreated": "Plik zawierający instrukcje z dalszymi krokami został utworzony na serwerze:", "MessageForgotPasswordInNetworkRequired": "Spróbuj ponownie zainicjować czyszczenie hasła, tym razem używając swojej sieci domowej.", - "MessageInstallPluginFromApp": "Wtyczka musi być zainstalowana bezpośrednio z aplikacji, w której ma być używana.", "MessageInvalidForgotPasswordPin": "Nieprawidłowy lub wygasły PIN został wpisany. Proszę spróbować ponownie.", "MessageInvalidUser": "Nieprawidłowa nazwa użytkownika lub hasło. Spróbuj ponownie.", "MessageItemSaved": "Obiekt zapisany.", @@ -949,8 +932,8 @@ "NextUp": "Do obejrzenia", "No": "Nie", "NoNewDevicesFound": "Nie znaleziono żadnych nowych urządzeń. Aby dodać tuner, zamknij ten dialog i wprowadź informacje o urządzeniu ręcznie.", - "NoNextUpItemsMessage": "Nie znaleziono niczego. Zacznij oglądać swoje seriale!", - "NoPluginConfigurationMessage": "Ta wtyczka nie ma żadnych ustawień.", + "MessageNoNextUpItems": "Nie znaleziono niczego. Zacznij oglądać swoje seriale!", + "MessageNoPluginConfiguration": "Ta wtyczka nie ma żadnych ustawień.", "NoSubtitleSearchResultsFound": "Brak wyników wyszukiwania.", "NoSubtitles": "Brak", "NoSubtitlesHelp": "Domyślnie napisy nie będą wczytywane. Można je ciągle włączyć ręcznie podczas odtwarzania.", @@ -1106,7 +1089,7 @@ "PasswordMatchError": "Hasło i potwierdzenie hasła muszą się zgadzać.", "PasswordResetComplete": "Hasło zostało zresetowane.", "PasswordResetConfirmation": "Czy na pewno chcesz wyczyścić hasło?", - "PasswordResetHeader": "Wyczyść hasło", + "HeaderResetPassword": "Wyczyść hasło", "PasswordSaved": "Hasło zapisane.", "People": "Osoby", "PerfectMatch": "Perfekcyjne dopasowanie", @@ -1128,10 +1111,9 @@ "PleaseEnterNameOrId": "Proszę wprowadź nazwę lub zewnętrzne ID.", "PleaseRestartServerName": "Uruchom ponownie serwer Jellyfin - {0}.", "PleaseSelectTwoItems": "Proszę wybierz przynajmniej dwie pozycje.", - "PluginInstalledMessage": "Wtyczka została poprawnie zainstalowana. Serwer Jellyfin będzie wymagała ponownego uruchomienia w celu zastosowania zmian.", + "MessagePluginInstalled": "Wtyczka została poprawnie zainstalowana. Serwer Jellyfin będzie wymagała ponownego uruchomienia w celu zastosowania zmian.", "PreferEmbeddedTitlesOverFileNames": "Preferuj wbudowane tytuły zamiast nazw plików", "PreferEmbeddedTitlesOverFileNamesHelp": "Określa domyślnie wyświetlany tytuł, gdy brak dostępnych metadanych lokalnych i od dostawców internetowych.", - "PreferredNotRequired": "Preferowane, ale niewymagane", "Premiere": "Premiera", "Premieres": "Premiery", "Previous": "Poprzedni", @@ -1140,7 +1122,6 @@ "ProductionLocations": "Kraje", "Programs": "Programy", "Quality": "Jakość", - "QueueAllFromHere": "Kolejkuj wszystko z tej lokalizacji", "Raised": "Wypukły", "Rate": "Oceń", "RecentlyWatched": "Ostatnio obejrzane", @@ -1151,7 +1132,7 @@ "Record": "Nagrywaj", "RecordSeries": "Nagraj seryjnie", "RecordingCancelled": "Anulowano nagranie.", - "RecordingPathChangeMessage": "Zmiana folderu z nagraniami nie spowoduje przeniesienia już istniejących nagrań, ze starej lokalizacji do nowej. Jeśli jest to wymagane, należy to zrobić manualnie.", + "MessageChangeRecordingPath": "Zmiana folderu z nagraniami nie spowoduje przeniesienia już istniejących nagrań, ze starej lokalizacji do nowej. Jeśli jest to wymagane, należy to zrobić manualnie.", "RecordingScheduled": "Zaplanowano nagranie.", "Recordings": "Nagrania", "Refresh": "Odśwież", @@ -1169,10 +1150,8 @@ "RepeatOne": "Powtarzaj jedno", "ReplaceAllMetadata": "Zastępuj wszystkie metadane", "ReplaceExistingImages": "Zastępuj istniejące obrazy", - "RequiredForAllRemoteConnections": "Wymagane dla wszystkich zdalnych połączeń", "ResumeAt": "Wznów odtwarzanie od {0}", "Rewind": "Do tyłu", - "RunAtStartup": "Uruchamiaj po starcie", "Runtime": "Czas trwania", "Saturday": "Sobota", "Save": "Zapisz", @@ -1268,7 +1247,6 @@ "TabParentalControl": "Kontrola rodzicielska", "TabPassword": "Hasło", "TabPlayback": "Odtwarzanie", - "TabPlaylist": "Lista odtwarzania", "TabPlaylists": "Listy odtwarzania", "TabPlugins": "Wtyczki", "TabProfile": "Profil", @@ -1307,7 +1285,7 @@ "TvLibraryHelp": "Zapoznaj się z instrukcją{1} nazewnictwa seriali {0}.", "Uniform": "Jednolity", "UninstallPluginConfirmation": "Czy na pewno chcesz usunąć {0}?", - "UninstallPluginHeader": "Usuń wtyczkę", + "HeaderUninstallPlugin": "Usuń wtyczkę", "Unmute": "Dezaktywuj wyciszenie", "Unplayed": "Nieodtwarzane", "Unrated": "Nieokreślone", @@ -1337,9 +1315,7 @@ "ValueTimeLimitSingleHour": "Limit czasu: 1 godzina", "ValueVideoCodec": "Kodek wideo: {0}", "Vertical": "Wertykalny", - "VideoRange": "Zakres wideo", "ViewAlbum": "Podgląd albumu", - "ViewArtist": "Podgląd wykonawcy", "ViewPlaybackInfo": "Wyświetlaj informacje o odtwarzaniu", "Watched": "Obejrzany", "Wednesday": "Środa", @@ -1382,11 +1358,8 @@ "LabelWeb": "Sieć:", "LabelXDlnaCap": "Limit X-DLNA:", "LabelXDlnaDoc": "Dokumentacja X-DLNA:", - "LaunchWebAppOnStartup": "Uruchom aplikację w przeglądarce internetowej, gdy uruchomi się serwer Jellyfin", - "LaunchWebAppOnStartupHelp": "Otwóż aplikację internetową w domyślnej przeglądarce, gdy uruchomi się serwer. Nie nastąpi to w przypadku korzystania z funkcji ponownego uruchomienia serwera.", "LeaveBlankToNotSetAPassword": "Pozostaw puste, aby nie ustawiać hasła.", "Logo": "Logo", - "MediaInfoSoftware": "Oprogramowanie", "MediaInfoStreamTypeAudio": "Audio", "MediaInfoStreamTypeData": "Dane", "MediaInfoStreamTypeEmbeddedImage": "Osadzony Obraz", @@ -1454,7 +1427,6 @@ "LabelPlayerDimensions": "Rozmiar odtwarzacza:", "LabelDroppedFrames": "Upuszczone klatki:", "LabelCorruptedFrames": "Uszkodzone klatki:", - "CopyStreamURLError": "Wystąpił błąd podczas kopiowania adresu URL.", "AskAdminToCreateLibrary": "Poproś administratora o stworzenie biblioteki.", "AllowFfmpegThrottlingHelp": "Kiedy transkodowanie lub remuxowanie dotrze wystarczająco daleko od aktualnej pozycji odtwarzania, zatrzymaj proces aby zużywać mniej zasobów. Jest to najbardziej użyteczne podczas oglądania bez częstego przeskakiwania. Wyłącz jeśli zaobserwujesz problemy z odtwarzaniem.", "AllowFfmpegThrottling": "Ograniczaj transkodowanie", @@ -1467,9 +1439,7 @@ "AlbumArtist": "Album artysty", "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:", @@ -1484,8 +1454,8 @@ "StopPlayback": "Zatrzymaj odtwarzanie", "ButtonPlayer": "Odtwarzacz", "ButtonCast": "Obsada", - "EnableBlurhashHelp": "Obrazy które wciąż się ładują zostaną zastąpione rozmazanym symbolem", - "EnableBlurhash": "Włącz rozmazane zamienniki dla obrazów", + "EnableBlurHashHelp": "Obrazy które wciąż się ładują zostaną zastąpione rozmazanym symbolem", + "EnableBlurHash": "Włącz rozmazane zamienniki dla obrazów", "UnsupportedPlayback": "Jellyfin nie może odszyfrować zawartości zabezpieczonej przy pomocy DRM, ale spróbuje pomimo tego. Niektóre pliki mogą pojawiać się jako zupełnie czarne z powodu szyfrowania lub innych nie wspieranych funkcji jak np. interaktywne tytuły.", "OnApplicationStartup": "Przy starcie aplikacji", "EveryXHours": "Co {0} godzin", @@ -1513,7 +1483,6 @@ "ShowLess": "Pokaż mniej", "Season": "Sezon", "SaveChanges": "Zapisz zmiany", - "ReleaseGroup": "Zwolnij Grupę", "PreferEmbeddedEpisodeInfosOverFileNames": "Preferuj wbudowane informacje o odcinku przed nazwami plików", "PreferEmbeddedEpisodeInfosOverFileNamesHelp": "Używa informacji o odcinku z dołączonych metadanych jeśli są dostępne.", "MessageSyncPlayErrorMedia": "Nie udało się uruchomić SyncPlay! Błąd mediów.", @@ -1555,7 +1524,6 @@ "EnableFasterAnimations": "Szybsze animacje", "LabelRequireHttpsHelp": "Jeśli zaznaczone, serwer automatycznie przekieruje wszystkie połączenia HTTP do HTTPS. Ta opcja nie zadziała jeśli serwer nie nasłuchuje na HTTPS.", "LabelRequireHttps": "Wymagaj HTTPS", - "LabelNightly": "Nocny", "LabelStable": "Stabilny", "LabelChromecastVersion": "Wersja Chromecast", "LabelEnableHttpsHelp": "Pozwala serwerowi na nasłuchiwanie na skonfigurowanym porcie HTTPS. Prawidłowy certyfikat musi być skonfigurowany by ta opcja zadziałała.", @@ -1571,5 +1539,8 @@ "EnableDetailsBanner": "Baner w szczegółach", "EnableDecodingColorDepth10Vp9": "Włącz 10-bitowe dekodowanie sprzętowe dla VP9", "EnableDecodingColorDepth10Hevc": "Włącz 10-bitowe dekodowanie sprzętowe dla HEVC", - "BoxSet": "Kolekcja" + "BoxSet": "Kolekcja", + "PreviousTrack": "Poprzedni", + "NextTrack": "Następny", + "LabelUnstable": "Niestabilny" } diff --git a/src/strings/pt-br.json b/src/strings/pt-br.json index 5eff56b221..e398e47fa2 100644 --- a/src/strings/pt-br.json +++ b/src/strings/pt-br.json @@ -3,7 +3,6 @@ "AccessRestrictedTryAgainLater": "O acesso está atualmente restrito. Por favor, tente novamente mais tarde.", "Actor": "Ator", "Add": "Adicionar", - "AddItemToCollectionHelp": "Adiciona itens às coletâneas buscando por eles, usando o botão direito do mouse ou clicando nos menus para os adicionar a uma coletânea.", "AddToCollection": "Adicionar à coletânea", "AddToPlayQueue": "Adicionar à fila de reprodução", "AddToPlaylist": "Adicionar à lista de reprodução", @@ -38,7 +37,6 @@ "AspectRatio": "Proporção da tela", "AttributeNew": "Novo", "Audio": "Áudio", - "AutoBasedOnLanguageSetting": "Automático (baseado na configuração do idioma)", "Backdrop": "Imagem de Fundo", "Backdrops": "Imagens de Fundo", "BirthDateValue": "Nascimento: {0}", @@ -49,7 +47,7 @@ "Box": "Caixa", "BoxRear": "Caixa (traseira)", "Browse": "Navegar", - "BrowsePluginCatalogMessage": "Navegue pelo nosso catálogo de plugins para ver os plugins disponíveis.", + "MessageBrowsePluginCatalog": "Navegue pelo nosso catálogo de plugins para ver os plugins disponíveis.", "BurnSubtitlesHelp": "Determina se o servidor deveria gravar as legendas no vídeo ao convertê-lo, dependendo do formato da legenda. Evitar a gravação da legenda irá melhorar a performance do servidor. Selecione Auto para gravar legendas baseados em imagem dos tipos (ex. VOBSUB, PGS, SUB/IDX, etc.) e algumas legendas ASS/SSA.", "ButtonAdd": "Adicionar", "ButtonAddMediaLibrary": "Adicionar Biblioteca de Mídia", @@ -78,7 +76,6 @@ "ButtonGuide": "Guia", "ButtonHelp": "Ajuda", "ButtonHome": "Início", - "ButtonLearnMore": "Saiba mais", "ButtonLibraryAccess": "Acesso à biblioteca", "ButtonManualLogin": "Login Manual", "ButtonMore": "Mais", @@ -123,7 +120,6 @@ "ButtonSubtitles": "Legendas", "ButtonUninstall": "Desinstalar", "ButtonUp": "Cima", - "ButtonViewWebsite": "Ver site", "CancelRecording": "Cancelar gravação", "CancelSeries": "Cancelar série", "Categories": "Categorias", @@ -153,7 +149,7 @@ "DatePlayed": "Data de reprodução", "DeathDateValue": "Morte: {0}", "Default": "Padrão", - "DefaultErrorMessage": "Ocorreu um erro ao processar o pedido. Por favor, tente novamente mais tarde.", + "ErrorDefault": "Ocorreu um erro ao processar o pedido. Por favor, tente novamente mais tarde.", "DefaultMetadataLangaugeDescription": "Estas são suas configurações padrão e podem ser personalizadas por biblioteca.", "DefaultSubtitlesHelp": "Legendas são carregadas com base nas configurações padrão e de legendas forçadas nos metadados incorporados. As preferências de idioma são consideradas quando existem múltiplas opções disponíveis.", "Delete": "Excluir", @@ -219,7 +215,7 @@ "ErrorAddingXmlTvFile": "Ocorreu um erro ao acessar o arquivo XmlTV. Por favor, verifique se o arquivo existe e tente novamente.", "ErrorDeletingItem": "Ocorreu um erro ao excluir o item do Servidor Jellyfin. Por favor, verifique se o Servidor Jellyfin possui acesso de gravação na pasta de mídia e tente novamente.", "ErrorGettingTvLineups": "Ocorreu um erro ao fazer download da programação de TV. Por favor, certifique-se que sua informação esteja correta e tente novamente.", - "ErrorMessageStartHourGreaterThanEnd": "A hora final deve ser maior que a hora inicial.", + "ErrorStartHourGreaterThanEnd": "A hora final deve ser maior que a hora inicial.", "ErrorPleaseSelectLineup": "Por favor, selecione a programação e tente novamente. Se não houver programações disponíveis, verifique se o seu nome de usuário, senha e código postal estão corretos.", "ErrorSavingTvProvider": "Um erro ocorreu ao salvar o provedor de TV. Por favor, verifique se está acessível e tente novamente.", "EveryNDays": "A cada {0} dias", @@ -257,7 +253,6 @@ "H264CrfHelp": "O CRF (Constant Rate Factor) é a configuração padrão de qualidade para o codificador x264. Você pode definir valores entre 0 e 51, onde valores menores resultarão em melhor qualidade (ao custo de arquivos maiores). Valores saudáveis estão entre 18 e 28. O padrão para o x264 é 23, então você pode usar isso como um ponto de partida.", "EncoderPresetHelp": "Escolha um valor mais rápido para melhorar o desempenho ou um valor mais lento para melhorar a qualidade.", "HDPrograms": "Programas em HD", - "HandledByProxy": "Tratado pelo proxy reverso", "HardwareAccelerationWarning": "Ativar a aceleração de hardware pode causar instabilidade em alguns sistemas. Verifique se seu sistema operacional e drivers de vídeo estão atualizados. Se tiver dificuldades em reproduzir vídeo depois de ativar, retorne a configuração para automático.", "HeaderAccessSchedule": "Agendamento de Acesso", "HeaderAccessScheduleHelp": "Cria um agendamento de acesso para limitar o acesso em certos horários.", @@ -280,7 +275,6 @@ "HeaderAppearsOn": "Aparece em", "HeaderAudioBooks": "Livros de Áudio", "HeaderAudioSettings": "Configurações de Áudio", - "HeaderAutomaticUpdates": "Atualizações Automáticas", "HeaderBlockItemsWithNoRating": "Bloquear itens com avaliação desconhecida ou sem avaliação:", "HeaderBooks": "Livros", "HeaderBranding": "Marca", @@ -348,7 +342,7 @@ "HeaderItems": "Itens", "HeaderKeepRecording": "Continuar Gravando", "HeaderKeepSeries": "Manter Série", - "HeaderKodiMetadataHelp": "Para ativar ou desativar metadados NFO, edite uma biblioteca na configuração da Biblioteca do Jellyfin e localize a seção de gravadores de metadados.", + "HeaderKodiMetadataHelp": "Para ativar ou desativar metadados NFO, edite uma biblioteca na configuração de Biblioteca do Jellyfin e localize a seção de gravadores de metadados.", "HeaderLatestEpisodes": "Episódios Recentes", "HeaderLatestMedia": "Mídias Recentes", "HeaderLatestMovies": "Filmes Recentes", @@ -397,7 +391,7 @@ "HeaderPreferredMetadataLanguage": "Idioma Preferido dos Metadados", "HeaderProfile": "Perfil", "HeaderProfileInformation": "Informação do Perfil", - "HeaderProfileServerSettingsHelp": "Estes valores controlam como o Servidor Jellyfin se apresentará ao dispositivo.", + "HeaderProfileServerSettingsHelp": "Estes valores controlam como o servidor Jellyfin se apresentará ao dispositivo.", "HeaderRecentlyPlayed": "Reproduzido Recentemente", "HeaderRecordingOptions": "Opções de Gravação", "HeaderRecordingPostProcessing": "Processamento Pós-Gravação", @@ -497,14 +491,12 @@ "LabelAlbumArtists": "Artistas do álbum:", "LabelAll": "Todos", "LabelAllowHWTranscoding": "Permitir a transcodificação de hardware", - "LabelAllowServerAutoRestart": "Permitir ao servidor reiniciar automaticamente para aplicar as atualizações", - "LabelAllowServerAutoRestartHelp": "O servidor só reiniciará durante os períodos ociosos quando nenhum usuário estiver ativo.", "LabelAllowedRemoteAddresses": "Filtro de endereço IP remoto:", "LabelAllowedRemoteAddressesMode": "Modo do filtro de endereço IP remoto:", "LabelAppName": "Nome do app", "LabelAppNameExample": "Exemplo: Sickbeard, Sonarr", "LabelArtists": "Artistas:", - "LabelArtistsHelp": "Separa vários usando ;", + "LabelArtistsHelp": "Separe múltiplos artistas usando ponto e vírgula.", "LabelAudio": "Áudio", "LabelAudioLanguagePreference": "Idioma preferido de áudio:", "LabelAutomaticallyRefreshInternetMetadataEvery": "Atualizar automaticamente os metadados da internet:", @@ -535,7 +527,6 @@ "LabelCustomDeviceDisplayName": "Nome para exibição:", "LabelCustomDeviceDisplayNameHelp": "Fornece um nome para exibição ou deixe em branco para usar o nome informado pelo dispositivo.", "LabelCustomRating": "Avaliação personalizada:", - "LabelDashboardTheme": "Tema do painel do servidor:", "LabelDateAdded": "Data de adição:", "LabelDateAddedBehavior": "Comportamento da data de adição para novo conteúdo:", "LabelDateAddedBehaviorHelp": "Se um valor de metadados estiver presente, ele sempre será utilizado antes destas opções.", @@ -735,7 +726,6 @@ "LabelScheduledTaskLastRan": "Última execução {0}, demorando {1}.", "LabelScreensaver": "Protetor de tela:", "LabelSeasonNumber": "Número da temporada:", - "LabelSecureConnectionsMode": "Modo de conexão segura:", "LabelSelectFolderGroups": "Agrupar automaticamente o conteúdo das seguintes pastas em visualizações como Filmes, Músicas e TV:", "LabelSelectFolderGroupsHelp": "Pastas que não estão marcadas serão exibidas em sua própria visualização.", "LabelSelectUsers": "Selecionar usuários:", @@ -757,7 +747,6 @@ "LabelSortBy": "Ordenar por:", "LabelSortOrder": "Ordem:", "LabelSortTitle": "Ordenar por título:", - "LabelSoundEffects": "Efeitos sonoros:", "LabelSource": "Fonte:", "LabelSpecialSeasonsDisplayName": "Nome de exibição da temporada especial:", "LabelSportsCategories": "Categorias de esportes:", @@ -802,12 +791,10 @@ "LabelValue": "Valor:", "LabelVersion": "Versão:", "LabelVersionInstalled": "{0} instalado", - "LabelVersionNumber": "Versão {0}", "LabelVideo": "Vídeo", "LabelXDlnaCapHelp": "Determina o conteúdo do elemento X_DLNACAP no namespace urn:schemas-dlna-org:device-1-0.", "LabelXDlnaDocHelp": "Determina o conteúdo do elemento X_DLNADOC no namespace urn:schemas-dlna-org:device-1-0.", "LabelYear": "Ano:", - "LabelYourFirstName": "Seu primeiro nome:", "LabelYoureDone": "Pronto!", "LabelZipCode": "CEP:", "LabelffmpegPath": "Local do FFmpeg:", @@ -865,14 +852,12 @@ "MessageCreateAccountAt": "Criar uma conta em {0}", "MessageDeleteTaskTrigger": "Deseja realmente excluir este disparador de tarefa?", "MessageDirectoryPickerBSDInstruction": "Para BSD, você precisará configurar o armazenamento dentro de seu Jail do FreeNAS para permitir que o Jellyfin tenha acesso a ele.", - "MessageDirectoryPickerInstruction": "Os locais de rede podem ser inseridos manualmente caso o botão de rede falhe em localizar seus dispositivos. Por exemplo, {0} ou {1}.", "MessageDirectoryPickerLinuxInstruction": "Sistemas operacionais Arch Linux, CentOS, Debian, Fedora, openSUSE ou Ubuntu, devem permitir que a conta de serviço tenha ao menos acesso de leitura nos locais de armazenamento.", "MessageDownloadQueued": "Download enfileirado.", "MessageEnablingOptionLongerScans": "Ativar esta opção pode resultar em rastreamentos de biblioteca significativamente mais demorados.", "MessageFileReadError": "Ocorreu um erro ao ler o arquivo. Por favor, tente novamente.", "MessageForgotPasswordFileCreated": "O seguinte arquivo foi criado no seu servidor e contém instruções de como proceder:", "MessageForgotPasswordInNetworkRequired": "Por favor, tente novamente dentro da rede local para iniciar o processo para redefinir a senha.", - "MessageInstallPluginFromApp": "Este plugin deve ser instalado de dentro do app em que deseja usá-lo.", "MessageInvalidForgotPasswordPin": "Foi digitado um código PIN inválido ou expirado. Por favor, tente novamente.", "MessageInvalidUser": "Usuário ou senha inválidos. Por favor, tente novamente.", "MessageItemSaved": "Item salvo.", @@ -922,8 +907,8 @@ "NextUp": "A Seguir", "No": "Não", "NoNewDevicesFound": "Nenhum novo dispositivo encontrado. Para adicionar um novo sintonizador, feche esta mensagem e digite as informações do dispositivo manualmente.", - "NoNextUpItemsMessage": "Nada encontrado. Comece a assistir suas séries!", - "NoPluginConfigurationMessage": "Este plugin não permite alterar configurações.", + "MessageNoNextUpItems": "Nada encontrado. Comece a assistir suas séries!", + "MessageNoPluginConfiguration": "Este plugin não permite alterar configurações.", "NoSubtitleSearchResultsFound": "Nenhum resultado encontrado.", "NoSubtitles": "Não há legendas", "NoSubtitlesHelp": "Legendas não serão carregadas por padrão. Elas podem ser carregadas manualmente durante a reprodução.", @@ -1069,7 +1054,7 @@ "PasswordMatchError": "A senha e a confirmação da senha devem ser iguais.", "PasswordResetComplete": "A senha foi redefinida.", "PasswordResetConfirmation": "Deseja realmente redefinir a senha?", - "PasswordResetHeader": "Redefinir Senha", + "HeaderResetPassword": "Redefinir Senha", "PasswordSaved": "Senha salva.", "People": "Pessoas", "PerfectMatch": "Combinação perfeita", @@ -1090,10 +1075,9 @@ "PleaseEnterNameOrId": "Por favor, digite um nome ou ID externa.", "PleaseRestartServerName": "Por favor, reinicie o Servidor Jellyfin - {0}.", "PleaseSelectTwoItems": "Por favor, selecione pelo menos dois itens.", - "PluginInstalledMessage": "O plugin foi instalado com sucesso. O Servidor Jellyfin precisa ser reiniciado para que as alterações sejam aplicadas.", + "MessagePluginInstalled": "O plugin foi instalado com sucesso. O Servidor Jellyfin precisa ser reiniciado para que as alterações sejam aplicadas.", "PreferEmbeddedTitlesOverFileNames": "Preferir títulos incorporados ao invés de nomes de arquivos", "PreferEmbeddedTitlesOverFileNamesHelp": "Isto determina a exibição padrão do título quando não houverem metadados da internet ou locais disponíveis.", - "PreferredNotRequired": "Preferível, mas não necessário", "Premieres": "Estreias", "Previous": "Anterior", "Primary": "Principal", @@ -1101,7 +1085,6 @@ "ProductionLocations": "Locais de produção", "Programs": "Programas", "Quality": "Qualidade", - "QueueAllFromHere": "Enfileirar todas a partir daqui", "Raised": "Criado", "Rate": "Avaliação", "RecentlyWatched": "Assistido recentemente", @@ -1112,7 +1095,7 @@ "Record": "Gravar", "RecordSeries": "Gravar série", "RecordingCancelled": "Gravação cancelada.", - "RecordingPathChangeMessage": "Alterar a sua pasta de gravações não migrará as gravações existentes do local anterior para o novo. Se desejar, você necessitará movê-los manualmente.", + "MessageChangeRecordingPath": "Alterar a sua pasta de gravações não migrará as gravações existentes do local anterior para o novo. Se desejar, você necessitará movê-los manualmente.", "RecordingScheduled": "Gravação agendada.", "Recordings": "Gravações", "Refresh": "Atualizar", @@ -1130,10 +1113,8 @@ "RepeatOne": "Repetir uma vez", "ReplaceAllMetadata": "Substituir todos os metadados", "ReplaceExistingImages": "Substituir imagens existentes", - "RequiredForAllRemoteConnections": "Necessário para todas as conexões remotas", "ResumeAt": "Retomar de {0}", "Rewind": "Retroceder", - "RunAtStartup": "Executar ao iniciar", "Runtime": "Duração", "Saturday": "Sábado", "Save": "Salvar", @@ -1223,7 +1204,6 @@ "TabParentalControl": "Controle dos Pais", "TabPassword": "Senha", "TabPlayback": "Reprodução", - "TabPlaylist": "Lista de Reprodução", "TabPlaylists": "Listas de Reprodução", "TabProfile": "Perfil", "TabProfiles": "Perfis", @@ -1256,7 +1236,7 @@ "TvLibraryHelp": "Verifique o {0}guia de nomes de séries{1}.", "Uniform": "Uniforme", "UninstallPluginConfirmation": "Deseja realmente desinstalar {0}?", - "UninstallPluginHeader": "Desinstalar Plugin", + "HeaderUninstallPlugin": "Desinstalar Plugin", "Unmute": "Sair do Mudo", "Unplayed": "Não reproduzido", "Unrated": "Não avaliado", @@ -1284,9 +1264,7 @@ "ValueTimeLimitMultiHour": "Limite de tempo: {0} horas", "ValueTimeLimitSingleHour": "Limite de tempo: 1 hora", "ValueVideoCodec": "Codec de Vídeo: {0}", - "VideoRange": "Faixa de vídeo", "ViewAlbum": "Exibir álbum", - "ViewArtist": "Exibir artista", "ViewPlaybackInfo": "Exibir informação de reprodução", "Watched": "Assistido", "Wednesday": "Quarta-feira", @@ -1324,11 +1302,9 @@ "LabelCache": "Cache:", "LabelLogs": "Registros:", "LabelProfileCodecs": "Codecs:", - "LabelSkin": "Tema:", "LabelStatus": "Status:", "LabelTag": "Marcador:", "LeaveBlankToNotSetAPassword": "Caso não queira definir uma senha, deixe em branco.", - "LinksValue": "Links: {0}", "Logo": "Logo", "MediaInfoCodec": "Codec", "MediaInfoFramerate": "Taxa de quadros", @@ -1339,7 +1315,7 @@ "Normal": "Normal", "Option3D": "3D", "OptionAuto": "Automático", - "AuthProviderHelp": "Seleciona um provedor de autenticação que será usado para autenticar a senha do usuário.", + "AuthProviderHelp": "Selecione 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", @@ -1364,9 +1340,6 @@ "LabelTranscodingContainer": "Formato:", "LabelXDlnaCap": "X-DLNA cap:", "LabelXDlnaDoc": "X-DLNA doc:", - "LaunchWebAppOnStartup": "Executar a interface web quando iniciar o servidor", - "LaunchWebAppOnStartupHelp": "Abre o cliente web no seu navegador padrão quando o servidor iniciar. Isso não ocorrerá ao usar a função de reiniciar o servidor.", - "MediaInfoSoftware": "Software", "MediaInfoStreamTypeAudio": "Áudio", "MediaInfoStreamTypeData": "Dados", "MediaInfoStreamTypeEmbeddedImage": "Imagem Incorporada", @@ -1456,7 +1429,6 @@ "LabelPlayerDimensions": "Dimensões do player:", "LabelCorruptedFrames": "Quadros corrompidos:", "HeaderNavigation": "Navegação", - "CopyStreamURLError": "Houve um erro ao copiar a URL.", "ButtonSplit": "Dividir", "AskAdminToCreateLibrary": "Peça a um administrador para criar uma biblioteca.", "AllowFfmpegThrottling": "Transcodes do Acelerador", @@ -1482,9 +1454,7 @@ "Yadif": "YADIF", "Track": "Trilha", "Season": "Temporada", - "ReleaseGroup": "Grupo de Lançamento", "Person": "Pessoa", - "OtherArtist": "Outro Artista", "Movie": "Filme", "LabelLibraryPageSizeHelp": "Selecione a quantidade de itens a aparecer na página da biblioteca. Coloque 0 para desabilitar a paginação.", "LabelLibraryPageSize": "Tamanho da página da biblioteca:", @@ -1496,7 +1466,6 @@ "AlbumArtist": "Artista do Album", "Album": "Album", "UnsupportedPlayback": "O Jellyfin não pode descriptografar conteúdo protegido por DRM, porém mesmo assim fará uma tentativa para todo tipo de conteúdo, incluindo títulos protegidos. A imagem de alguns arquivos pode aparecer completamente preta devido a criptografia ou outros recursos não suportados, como títulos interativos.", - "MessageUnauthorizedUser": "Você não está autorizado a acessar o servidor neste momento. Por favor, contate o administrador do servidor para mais informações.", "ButtonTogglePlaylist": "Playlist", "ButtonToggleContextMenu": "Mais", "Filter": "Filtro", @@ -1507,7 +1476,6 @@ "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": "Permite que o servidor escute na porta HTTPS configurada. Um certificado válido também deve ser configurado para que isso entre em vigor.", @@ -1528,7 +1496,7 @@ "MessageSyncPlayGroupDoesNotExist": "Falha ao participar de grupo pois o mesmo não existe.", "MessageSyncPlayPlaybackPermissionRequired": "É necessária permissão de reprodução.", "MessageSyncPlayNoGroupsAvailable": "Nenhum grupo disponível. Comece a reproduzir algo primeiro.", - "MessageSyncPlayGroupWait": "{0} está carregando. . .", + "MessageSyncPlayGroupWait": "{0} está carregando…", "MessageSyncPlayUserLeft": "{0} deixou o grupo.", "MessageSyncPlayUserJoined": "{0} se juntou ao grupo.", "MessageSyncPlayDisabled": "SyncPlay desativado.", @@ -1548,8 +1516,8 @@ "HeaderSyncPlaySelectGroup": "Entrar em um grupo", "EnableDetailsBanner": "Banner de detalhes", "EnableDetailsBannerHelp": "Exibe um banner na parte superior da página de detalhes do item.", - "EnableBlurhashHelp": "Imagens que ainda estão carregando vão mostrar em seu lugar representações", - "EnableBlurhash": "Habilitar efeito borrado para imagens previas", + "EnableBlurHashHelp": "Imagens que ainda estão carregando vão mostrar em seu lugar representações", + "EnableBlurHash": "Habilitar efeito borrado para imagens previas", "ShowMore": "Mostrar mais", "ShowLess": "Mostrar menos", "ButtonSyncPlay": "SyncPlay", @@ -1571,5 +1539,8 @@ "Writers": "Escritores", "ClearQueue": "Limpar fila", "StopPlayback": "Parar reprodução", - "ViewAlbumArtist": "Ver artista do álbum" + "ViewAlbumArtist": "Ver artista do álbum", + "PreviousTrack": "Ir para o anterior", + "NextTrack": "Ir para o próximo", + "LabelUnstable": "Instável" } diff --git a/src/strings/pt-pt.json b/src/strings/pt-pt.json index 07b1f1aceb..56712f348a 100644 --- a/src/strings/pt-pt.json +++ b/src/strings/pt-pt.json @@ -7,7 +7,7 @@ "AttributeNew": "Novo", "Audio": "Áudio", "Backdrops": "Imagens de Fundo", - "BrowsePluginCatalogMessage": "Procure extensões disponíveis no nosso catálogo.", + "MessageBrowsePluginCatalog": "Procure extensões disponíveis no nosso catálogo.", "ButtonAdd": "Adicionar", "ButtonAddMediaLibrary": "Adicionar Biblioteca de Multimédia", "ButtonAddScheduledTaskTrigger": "Adicionar tarefa agendada", @@ -31,7 +31,6 @@ "ButtonHelp": "Ajuda", "ButtonHome": "Início", "ButtonInfo": "Informação", - "ButtonLearnMore": "Saiba mais", "ButtonManualLogin": "Início de Sessão Manual", "ButtonMore": "Mais", "ButtonNetwork": "Rede", @@ -69,7 +68,6 @@ "ButtonSubmit": "Enviar", "ButtonSubtitles": "Legendas", "ButtonUninstall": "Desinstalar", - "ButtonViewWebsite": "Ver website", "ChannelAccessHelp": "Selecione os canais para partilhar com este utilizador. Os administradores poderão editar todos os canais utilizando o gestor de metadados.", "CinemaModeConfigurationHelp": "O modo cinema traz a experiência do cinema para a sua sala, possibilitando reproduzir trailers e introduções personalizadas antes da longa-metragem.", "Composer": "Compositor", @@ -123,7 +121,6 @@ "HeaderApiKeysHelp": "As aplicações externas necessitam de uma chave da API para comunicar com o Jellyfin Server. As chaves são emitidas ao entrar com uma conta Jellyfin ou concedendo manualmente a chave à aplicação.", "HeaderApp": "Aplicação", "HeaderAudioSettings": "Configurações de Áudio", - "HeaderAutomaticUpdates": "Atualizações automáticas", "HeaderBlockItemsWithNoRating": "Bloquear conteúdo sem informação de classificação etária ou com informação desconhecida:", "HeaderBranding": "Marca", "HeaderCastCrew": "Elenco e Equipa", @@ -274,8 +271,6 @@ "LabelAlbumArtPN": "PN da capa do álbum:", "LabelAlbumArtists": "Artistas do Álbum:", "LabelAll": "Todos", - "LabelAllowServerAutoRestart": "Permitir ao servidor reiniciar automaticamente para aplicar atualizações", - "LabelAllowServerAutoRestartHelp": "O servidor irá reiniciar apenas durante períodos em que não esteja a ser usado, quando nenhum utilizador estiver ativo.", "LabelAppName": "Nome da aplicação", "LabelAppNameExample": "Exemplo: Sickbeard, Sonarr", "LabelArtists": "Artistas:", @@ -488,10 +483,8 @@ "LabelUsername": "Nome de Utilizador:", "LabelValue": "Valor:", "LabelVersionInstalled": "{0} instalado", - "LabelVersionNumber": "Versão {0}", "LabelXDlnaCapHelp": "Determina o conteúdo do elemento X_DLNACAP no namespace urn:schemas-dlna-org:device-1-0.", "LabelXDlnaDocHelp": "Determina o conteúdo do elemento X_DLNADOC no namespace urn:schemas-dlna-org:device-1-0.", - "LabelYourFirstName": "O seu primeiro nome:", "LabelYoureDone": "Concluiu!", "LabelZipCode": "CEP:", "LibraryAccessHelp": "Escolha as Bibliotecas a partilhar com este utilizador. Os Administradores poderão editar todas as pastas, usando o Gestor de Metadados.", @@ -505,7 +498,6 @@ "MessageConfirmShutdown": "Tem a certeza de que deseja encerrar o servidor?", "MessageDeleteTaskTrigger": "Tem a certeza de que deseja remover o agendamento desta tarefa?", "MessageDirectoryPickerBSDInstruction": "Num sistema operativo BSD, é necessário configurar o disco Jail FreeNAS para permitir o acesso do Servidor Jellyfin.", - "MessageDirectoryPickerInstruction": "As localizações de rede podem ser escritas manualmente caso o botão \"Rede\" não consiga encontrar os dispositivos. Por exemplo, {0} ou {1}.", "MessageDirectoryPickerLinuxInstruction": "Em sistemas operativos como Arch Linux, CentOS, Debian, Fedora, openSUSE, ou Ubuntu, é necessário dar permissão ao utilizador que executa o processo Jellyfin para ter, no mínimo, acesso de leitura à pasta.", "MessageEnablingOptionLongerScans": "Ativar esta opção pode aumentar significativamente a duração da análise da biblioteca.", "MessageFileReadError": "Ocorreu um erro ao ler este ficheiro.", @@ -529,7 +521,7 @@ "Mute": "Desativar Som", "NewCollection": "Nova Coleção", "NewCollectionNameExample": "Exemplo: Coleção Guerra das Estrelas", - "NoNextUpItemsMessage": "Nenhum encontrado. Comece a ver os seus programas!", + "MessageNoNextUpItems": "Nenhum encontrado. Comece a ver os seus programas!", "OptionAdminUsers": "Administradores", "OptionAlbum": "Álbum", "OptionAlbumArtist": "Artista do Álbum", @@ -645,7 +637,7 @@ "PasswordMatchError": "A palavra-passe e a confirmação devem coincidir.", "PasswordResetComplete": "A palavra-passe foi redefinida.", "PasswordResetConfirmation": "Tem a certeza de que deseja redefinir a palavra-passe?", - "PasswordResetHeader": "Redefinir Palavra-Passe", + "HeaderResetPassword": "Redefinir Palavra-Passe", "PasswordSaved": "Palavra-passe guardada.", "PinCodeResetComplete": "O código PIN foi redefinido.", "PinCodeResetConfirmation": "Tem a certeza de que devia repôr o código PIN?", @@ -712,7 +704,6 @@ "TabParentalControl": "Controlo Parental", "TabPassword": "Palavra-passe", "TabPlayback": "Reprodução", - "TabPlaylist": "Lista de Reprodução", "TabPlaylists": "Listas de Reprodução", "TabPlugins": "Extensões", "TabProfile": "Perfil", @@ -736,7 +727,7 @@ "TrackCount": "{0} faixas", "Tuesday": "Terça", "UninstallPluginConfirmation": "Tem a certeza de que deseja desinstalar {0}?", - "UninstallPluginHeader": "Desinstalar Extensão", + "HeaderUninstallPlugin": "Desinstalar Extensão", "Unmute": "Ativar som", "UserProfilesIntro": "O Jellyfin suporta perfis de utilizadores, permitindo que cada utilizador tenha as suas configurações de visualização, estado da reprodução e controlos parentais.", "ValueAudioCodec": "Codec de Áudio: {0}", @@ -751,7 +742,6 @@ "Writer": "Autor", "XmlDocumentAttributeListHelp": "Estes atributos são aplicados ao elemento principal de cada resposta XML.", "AccessRestrictedTryAgainLater": "Acesso atualmente restrito. Por favor, tente mais tarde.", - "AddItemToCollectionHelp": "Adicione itens às coleções pesquisando-os e utilizando o respetivo menu de toque ou clique direito para os adicionar a uma coleção.", "AddToCollection": "Adicionar à coleção", "AddToPlayQueue": "Adicionar à fila de reprodução", "AddedOnValue": "Adicionado {0}", @@ -779,7 +769,6 @@ "AspectRatio": "Proporção", "AuthProviderHelp": "Selecione um mecanismo de autenticação a ser utilizado para validar as credenciais deste utilizador.", "Auto": "Automático", - "AutoBasedOnLanguageSetting": "Automático (baseado no idioma definido)", "BirthDateValue": "Nascimento: {0}", "BirthPlaceValue": "Local de nascimento: {0}", "Blacklist": "Lista Negra", @@ -865,7 +854,6 @@ "HeaderAlert": "Alerta", "HeaderAlbums": "Álbuns", "HeaderAddToPlaylist": "Adicionar à Lista de Reprodução", - "HandledByProxy": "Gerido pelo proxy inverso", "HDPrograms": "Programas HD", "EncoderPresetHelp": "Escolha um valor mais rápido para melhorar o desempenho, ou um valor mais lento para melhorar a qualidade.", "Guide": "Programação", @@ -884,7 +872,7 @@ "ExtraLarge": "Extra Grande", "EveryNDays": "A cada {0} dias", "ErrorSavingTvProvider": "Ocorreu um erro ao guardar o provedor do serviços de TV. Por favor, garanta que está acessível e tente de novo.", - "ErrorMessageStartHourGreaterThanEnd": "A hora de fim deve ser superior à hora de início.", + "ErrorStartHourGreaterThanEnd": "A hora de fim deve ser superior à hora de início.", "ErrorDeletingItem": "Ocorreu um erro ao apagar o item do Servidor Jellyfin. Por favor, verifique o acesso de escrita do Servidor Jellyfin à pasta e tente de novo.", "ErrorAddingTunerDevice": "Ocorreu um erro ao adicionar o dispositivo de sintonização. Por favor, garanta que está acessível e tente de novo.", "ErrorAddingXmlTvFile": "Ocorreu um erro ao aceder ao ficheiro XMLTV. Por favor, certifique-se que o ficheiro está acessível e tente de novo.", @@ -918,7 +906,7 @@ "DirectStreamHelp2": "Reprodução direta de um ficheiro requer pouco processamento e não implica perda de qualidade num vídeo.", "DefaultSubtitlesHelp": "As legendas são carregadas com base nas definições por defeito ou forçado nos metadados. As preferências de idioma são consideradas quando existem múltiplas opções disponíveis.", "DefaultMetadataLangaugeDescription": "Estes são os valores por defeito que podem ser customizados para cada uma das bibliotecas.", - "DefaultErrorMessage": "Ocorreu um erro a processar o pedido. Por favor, tente novamente mais tarde.", + "ErrorDefault": "Ocorreu um erro a processar o pedido. Por favor, tente novamente mais tarde.", "Default": "Por defeito", "DeathDateValue": "Faleceu: {0}", "DatePlayed": "Reproduzido a", @@ -944,7 +932,6 @@ "LabelDefaultScreen": "Ecrã por defeito:", "LabelDeathDate": "Data de falecimento:", "LabelDateTimeLocale": "Localização da data/hora:", - "LabelDashboardTheme": "Tema do Painel Principal:", "LabelCertificatePasswordHelp": "Se o certificado requer uma palavra-passe, escreva-a aqui.", "LabelCertificatePassword": "Palavra-passe do certificado:", "LabelBurnSubtitles": "Integrar legendas:", @@ -994,19 +981,16 @@ "SaveSubtitlesIntoMediaFoldersHelp": "Guardar ficheiros de legendas junto aos ficheiros vídeo facilita a gestão.", "SaveSubtitlesIntoMediaFolders": "Guardar legendas nas pastas multimédia", "Runtime": "Duração", - "RunAtStartup": "Executar no arranque", "ResumeAt": "Retomar a partir de {0}", - "RequiredForAllRemoteConnections": "Necessário para todas as ligações externas", "ReplaceAllMetadata": "Substituir todos os metadados", "RepeatOne": "Repetir este", "RepeatMode": "Modo de Repetição", "ServerRestartNeededAfterPluginInstall": "O Servidor Jellyfin necessitará de reiniciar depois de instalar uma extensão.", - "NoPluginConfigurationMessage": "Esta extensão não é configurável.", + "MessageNoPluginConfiguration": "Esta extensão não é configurável.", "MessagePluginInstallDisclaimer": "As extensões desenvolvidas pela comunidade Jellyfin são uma ótima forma de melhorar a experiência de utilização do Jellyfin, adicionando novas funcionalidades e benefícios. Antes de proceder à instalação, tenha em atenção que estas podem alterar determinados comportamentos no Servidor Jellyfin e provocar efeitos como tempos de atualização da Biblioteca mais longos, processamento adicional em segundo plano e estabilidade do sistema reduzida.", "MessagePluginConfigurationRequiresLocalAccess": "Para configurar esta extensão, inicie sessão localmente no servidor.", - "MessageInstallPluginFromApp": "Esta extensão deverá ser instalada a partir da aplicação onde tem intenção de a utilizar.", "HeaderPluginInstallation": "Instalação de Extensão", - "PluginInstalledMessage": "A extensão foi instalada com sucesso. O Servidor Jellyfin necessitará de reiniciar para aplicar as alterações.", + "MessagePluginInstalled": "A extensão foi instalada com sucesso. O Servidor Jellyfin necessitará de reiniciar para aplicar as alterações.", "PleaseRestartServerName": "Por favor, reinicie o Servidor Jellyfin - {0}.", "PleaseConfirmPluginInstallation": "Por favor clique em OK para confirmar que leu o conteúdo acima, e que deseja prosseguir com a instalação da extensão.", "PleaseAddAtLeastOneFolder": "Por favor, adicione pelo menos uma pasta a esta Biblioteca, utilizando para isso o botão Adicionar.", @@ -1147,7 +1131,6 @@ "LabelProfileCodecs": "Codecs:", "LabelReasonForTranscoding": "Razão para transcodificação:", "LabelScreensaver": "Proteção de Ecrã:", - "LabelSecureConnectionsMode": "Modo de ligação segura:", "LabelSeriesRecordingPath": "Caminho para gravação de séries (opcional):", "ColorPrimaries": "Cores primárias", "MessageInvalidForgotPasswordPin": "Foi inserido um código PIN inválido ou expirado. Por favor, tente de novo.", @@ -1166,7 +1149,6 @@ "MediaInfoStreamTypeEmbeddedImage": "Imagem Integrada", "MediaInfoStreamTypeData": "Dados", "MediaInfoStreamTypeAudio": "Áudio", - "MediaInfoSoftware": "Software", "MediaInfoTimestamp": "Data e Hora", "MediaInfoSampleRate": "Taxa de Amostragem", "MediaInfoResolution": "Resolução", @@ -1192,12 +1174,10 @@ "LabelMetadataSaversHelp": "Escolha o formato em que deseja guardar metadados.", "LabelRefreshMode": "Modo de actualização:", "LabelRemoteClientBitrateLimitHelp": "Valor-limite de taxa de transmissão para todos os dispositivos fora da rede local. Este valor é opcional e aplica-se a cada transmissão individual. Ao definir este valor previne que dispositivos peçam uma taxa de transmissão acima da sua ligação à internet. Pedir uma taxa de transmissão acima do limite da ligação implica a necessidade de transcodificar o vídeo e num aumento da carga da CPU.", - "LabelSoundEffects": "Efeitos sonoros:", "Home": "Início", "GuideProviderLogin": "Iniciar Sessão", "HeaderSubtitleDownloads": "Transferir legendas", "LabelRecord": "Gravação:", - "LabelSkin": "Máscara:", "LabelMetadataDownloadersHelp": "Ative e ordene os seus provedores de metadados por ordem de preferência. Provedores com menos prioridade só serão usados para completar informação em falta.", "LabelMetadataReadersHelp": "Ordene as suas fontes de metadados por ordem de preferência. O primeiro ficheiro encontrado será utilizado.", "LabelMetadataReaders": "Provedores de metadados:", @@ -1212,7 +1192,7 @@ "StopRecording": "Parar gravação", "SeriesRecordingScheduled": "Gravação da série agendada.", "Recordings": "Gravações", - "RecordingPathChangeMessage": "Alterar a localização das gravações não irá migrar as gravações existentes da localização atual para a nova. Os ficheiros deverão ser movidos manualmente, se necessário.", + "MessageChangeRecordingPath": "Alterar a localização das gravações não irá migrar as gravações existentes da localização atual para a nova. Os ficheiros deverão ser movidos manualmente, se necessário.", "ManageRecording": "Gerir gravação", "OptionLoginAttemptsBeforeLockout": "Determina quantas falhas de início de sessão são admitidas antes de a conta ser bloqueada.", "OptionList": "Lista", @@ -1254,7 +1234,6 @@ "Studios": "Estúdios", "Watched": "Visto", "ViewPlaybackInfo": "Ver informação de reprodução", - "ViewArtist": "Ver artista", "ViewAlbum": "Ver álbum", "Vertical": "Vertical", "ValueSongCount": "{0} músicas", @@ -1321,7 +1300,6 @@ "LabelSportsCategories": "Categorias de Desporto:", "FetchingData": "A transferir informação adicional", "List": "lista", - "LaunchWebAppOnStartup": "Iniciar a interface web ao iniciar o servidor", "No": "Não", "OptionRegex": "Expressão Regular", "OptionCaptionInfoExSamsung": "CaptionInfoEx (Samsung)", @@ -1343,7 +1321,6 @@ "MediaInfoAnamorphic": "Anamórfico", "LabelTranscodes": "Transcodificação:", "Whitelist": "Lista branca", - "VideoRange": "Alcance video", "ValueOneAlbum": "1 álbum", "ValueMusicVideoCount": "{0} videoclips", "ValueMovieCount": "{0} filmes", @@ -1393,14 +1370,12 @@ "RefreshMetadata": "Recarregar metadados", "RecentlyWatched": "Vistos recentemente", "Rate": "Avaliação", - "QueueAllFromHere": "Fila a partir daqui", "Quality": "Qualidade", "ProductionLocations": "Localizações de produção", "Primary": "Primário", "Previous": "Anterior", "Premieres": "Estreias", "Premiere": "Estreia", - "PreferredNotRequired": "Prefiro, mas não obrigatório", "PreferEmbeddedTitlesOverFileNames": "Preferir títulos embutidos a nomes de ficheiro", "PictureInPicture": "Imagem em imagem", "OptionThumbCard": "Miniatura cartão", @@ -1419,9 +1394,7 @@ "MediaInfoDefault": "Padrão", "MediaInfoBitDepth": "Bit profundidade", "Logo": "Logotipo", - "LinksValue": "Ligações: {0}", "Like": "Gosto", - "LaunchWebAppOnStartupHelp": "Abra o cliente web no ser browser padrão quando o servidor iniciar. Isto não acontecerá usando uma função de reiniciar de servidor.", "LabelXDlnaDoc": "X-DLNA doc:", "LabelXDlnaCap": "X-DLNA cap:", "LabelVaapiDeviceHelp": "Este é o nó de renderização usado para aceleração de hardware.", @@ -1436,7 +1409,6 @@ "HeaderNavigation": "Navegação", "EnableStreamLooping": "Auto-cíclico de streams ao vivo", "Down": "Baixo", - "CopyStreamURLError": "Ocorreu um erro a copiar o URL.", "ButtonSplit": "Dividir", "NoCreatedLibraries": "Parece que ainda não foi criada nenhuma biblioteca por enquanto. {0} Gostaria de criar uma biblioteca agora? {1}", "AskAdminToCreateLibrary": "Pergunte a um administrador para criar uma biblioteca.", @@ -1456,7 +1428,6 @@ "LabelRepositoryUrl": "URL do Repositório", "HeaderNewRepository": "Novo Repositório", "MessageNoRepositories": "Sem repositórios.", - "MessageUnauthorizedUser": "Não está autorizado a aceder ao servidor neste momento. Por favor contacte o administador deste servidor para informação mais detalhada.", "LabelSyncPlayAccess": "Acesso \"SyncPlay\"", "LabelSyncPlayAccessNone": "Desativar para este utilizador", "LabelSyncPlayAccessJoinGroups": "Permitir utilizador a aderir a grupos", @@ -1473,7 +1444,6 @@ "EnableFasterAnimations": "Animações Rápidas", "LabelRequireHttpsHelp": "Se selecionado, o servidor irá automaticamente redirecionar todos os pedidos em HTTP para HTTPS. Isto não surte efeito caso o servidor não esteja configurado em HTTPS.", "LabelRequireHttps": "Exigir HTTPS", - "LabelNightly": "\"Nightly\"", "LabelStable": "Estável", "LabelChromecastVersion": "Versão do \"Chromecast\"", "LabelLibraryPageSizeHelp": "Define a quantidade de items a apresentar na página de uma Biblioteca. Para desativar a existência de paginação, introduza o valor 0.", diff --git a/src/strings/pt.json b/src/strings/pt.json index dba5a7ab52..45b8f0c182 100644 --- a/src/strings/pt.json +++ b/src/strings/pt.json @@ -24,7 +24,7 @@ "UserAgentHelp": "Forneça um user-agent HTTP personalizado.", "Unplayed": "Por reproduzir", "Unmute": "Activar som", - "UninstallPluginHeader": "Desinstalar Extensão", + "HeaderUninstallPlugin": "Desinstalar Extensão", "UninstallPluginConfirmation": "Tem a certeza que deseja desinstalar {0}?", "Uniform": "Uniforme", "Tuesday": "Terça", @@ -50,7 +50,6 @@ "TabProfile": "Perfil", "TabPlugins": "Extensões", "TabPlaylists": "Listas de Reprodução", - "TabPlaylist": "Lista de Reprodução", "TabPlayback": "Reprodução", "TabPassword": "Palavra-passe", "TabParentalControl": "Controlo Parental", @@ -117,10 +116,8 @@ "Save": "Guardar", "Saturday": "Sábado", "Runtime": "Duração", - "RunAtStartup": "Executar no arranque", "Rewind": "Retroceder", "ResumeAt": "Retomar a partir de {0}", - "RequiredForAllRemoteConnections": "Necessário para todas as ligações externas", "ReplaceExistingImages": "Substituir imagens existentes", "ReplaceAllMetadata": "Substituir todos os metadados", "RepeatOne": "Repetir este", @@ -139,7 +136,7 @@ "Raised": "Alto relevo", "Programs": "Programas", "Producer": "Produtor", - "PluginInstalledMessage": "A extensão foi instalada com sucesso. O Servidor Jellyfin necessitará de reiniciar para aplicar as alterações.", + "MessagePluginInstalled": "A extensão foi instalada com sucesso. O Servidor Jellyfin necessitará de reiniciar para aplicar as alterações.", "PleaseSelectTwoItems": "Por favor seleccione pelo menos dois itens.", "PleaseRestartServerName": "Por favor, reinicie o Servidor Jellyfin - {0}.", "PleaseEnterNameOrId": "Por favor, digite um nome ou Id externo.", @@ -162,7 +159,7 @@ "People": "Pessoas", "PasswordSaved": "Palavra-passe guardada.", "PasswordResetProviderHelp": "Seleccione um provedor de reposição de palavra-passe a ser usado quando um utilizador requisitar uma reposição de palavra-passe", - "PasswordResetHeader": "Redefinir Palavra-Passe", + "HeaderResetPassword": "Redefinir Palavra-Passe", "PasswordResetConfirmation": "Tem a certeza que deseja redefinir a palavra-passe?", "PasswordResetComplete": "A palavra-passe foi redefinida.", "PasswordMatchError": "A palavra-passe e a confirmação devem coincidir.", @@ -417,7 +414,6 @@ "LabelDateAddedBehaviorHelp": "Quando os metadados incluirem um valor, este será utilizado antes destas opções.", "LabelDateAddedBehavior": "Comportamento da data de adição para novo conteúdo:", "LabelDateAdded": "Adicionado a:", - "LabelDashboardTheme": "Tema do Painel Principal:", "LabelCustomRating": "Classificação personalizada:", "LabelCustomDeviceDisplayNameHelp": "Forneça um nome a ser mostrado, ou deixe em branco para utilizar o nome reportado pelo dispositivo.", "LabelCustomDeviceDisplayName": "Nome a ser mostrado:", @@ -455,8 +451,6 @@ "LabelAppName": "Nome da aplicação", "LabelAllowedRemoteAddressesMode": "Tipo de filtro de IP remoto:", "LabelAllowedRemoteAddresses": "Filtro de IP remoto:", - "LabelAllowServerAutoRestartHelp": "O servidor reiniciará apenas durante períodos em que não esteja a ser usado, quando nenhum utilizador estiver activo.", - "LabelAllowServerAutoRestart": "Permitir ao servidor reiniciar automaticamente para instalar actualizações", "LabelAllowHWTranscoding": "Permitir transcodificação por hardware", "LabelAll": "Todos", "LabelAlbumArtists": "Artistas do Álbum:", @@ -679,8 +673,8 @@ "OptionAlbum": "Álbum", "OptionAdminUsers": "Administradores", "OneChannel": "Um canal", - "NoPluginConfigurationMessage": "Esta extensão não é configurável.", - "NoNextUpItemsMessage": "Nenhum encontrado. Comece a ver os seus programas!", + "MessageNoPluginConfiguration": "Esta extensão não é configurável.", + "MessageNoNextUpItems": "Nenhum encontrado. Comece a ver os seus programas!", "News": "Notícias", "NewCollectionNameExample": "Exemplo: Colecção Guerra das Estrelas", "NewCollection": "Nova Colecção", @@ -707,7 +701,6 @@ "MessageItemSaved": "Item guardado.", "MessageInvalidUser": "Nome de utilizador ou palavra-passe inválidos. Por favor, tente novamente.", "MessageInvalidForgotPasswordPin": "Foi inserido um código PIN inválido ou expirado. Por favor, tente de novo.", - "MessageInstallPluginFromApp": "Esta extensão deverá ser instalada a partir da aplicação em que tem intenção de a utilizar.", "MessageImageTypeNotSelected": "Por favor, seleccione um tipo de imagem da lista.", "MessageImageFileTypeAllowed": "Apenas são suportados ficheiros JPEG ou PNG.", "MessageForgotPasswordInNetworkRequired": "Por favor, volte a tentar o processo de recuperação de palavra-passe quando se encontrar dentro da sua rede local.", @@ -716,7 +709,6 @@ "MessageEnablingOptionLongerScans": "Activar esta opção pode aumentar significativamente a duração da análise da biblioteca.", "MessageDownloadQueued": "Transferência pendente.", "MessageDirectoryPickerLinuxInstruction": "Em sistemas operativos como Arch Linux, CentOS, Debian, Fedora, OpenSuse ou Ubuntu, é necessário dar permissão ao utilizador que executa o processo Jellyfin para ter, no mínimo, acesso de leitura à pasta.", - "MessageDirectoryPickerInstruction": "As localizações de rede podem ser introduzidas manualmente caso o botão \"Rede\" não consiga encontrar os dispositivos. Por exemplo, {0} ou {1}.", "MessageDirectoryPickerBSDInstruction": "Num sistema operativo BSD, é necessário configurar o disco FreeNAS Jail para permitir o acesso do Servidor Jellyfin.", "MessageDeleteTaskTrigger": "Tem a certeza que deseja remover o agendamento desta tarefa?", "MessageCreateAccountAt": "Criar uma conta em {0}", @@ -737,7 +729,6 @@ "MediaInfoStreamTypeEmbeddedImage": "Imagem Integrada", "MediaInfoStreamTypeData": "Dados", "MediaInfoStreamTypeAudio": "Áudio", - "MediaInfoSoftware": "Software", "MediaInfoTimestamp": "Data e Hora", "MediaInfoSize": "Tamanho", "MediaInfoSampleRate": "Taxa de Amostragem", @@ -757,7 +748,6 @@ "LatestFromLibrary": "Mais Recentes em {0}", "LabelZipCode": "Código Postal:", "LabelYoureDone": "Concluiu!", - "LabelYourFirstName": "O seu primeiro nome:", "LabelXDlnaDocHelp": "Determina o conteúdo do elemento X_DLNADOC no namespace urn:schemas-dlna-org:device-1-0.", "LabelXDlnaCapHelp": "Determina o conteúdo do elemento X_DLNACAP no namespace urn:schemas-dlna-org:device-1-0.", "LabelVersionInstalled": "{0} instalado", @@ -810,7 +800,6 @@ "LabelSelectUsers": "Seleccionar utilizadores:", "LabelSelectFolderGroupsHelp": "Pastas não selecionadas serão apresentadas sozinhas, na sua própria vista.", "LabelSelectFolderGroups": "Agrupar automaticamente o conteúdo das pastas seguintes em vistas como Filmes, Música e TV:", - "LabelSecureConnectionsMode": "Modo de ligação segura:", "LabelSeasonNumber": "Número da temporada:", "LabelScreensaver": "Proteção de Ecrã:", "LabelScheduledTaskLastRan": "Última execução há {0}. Tempo de execução {1}.", @@ -858,7 +847,7 @@ "EveryNDays": "A cada {0} dias", "ErrorSavingTvProvider": "Ocorreu um erro ao guardar o provedor do serviços de TV. Por favor, garanta que está acessível e tente de novo.", "ErrorPleaseSelectLineup": "Por favor selecione a programação e tente novamente. Se não houver programações disponíveis, verifique se o seu nome de utilizador, senha e código postal estão correctos.", - "ErrorMessageStartHourGreaterThanEnd": "A hora de fim deve ser superior à hora de início.", + "ErrorStartHourGreaterThanEnd": "A hora de fim deve ser superior à hora de início.", "ErrorGettingTvLineups": "Ocorreu um erro ao transferir a programação de TV. Por favor, certifique-se que a sua informação está correcta e tente novamente.", "ErrorDeletingItem": "Ocorreu um erro ao apagar o item do Servidor Jellyfin. Por favor, verifique o acesso de escrita do Servidor Jellyfin à pasta e tente de novo.", "ErrorAddingXmlTvFile": "Ocorreu um erro ao aceder ao ficheiro XmlTV. Por favor, garanta que o ficheiro está acessível e tente de novo.", @@ -922,7 +911,7 @@ "DeleteDeviceConfirmation": "Tem a certeza que deseja remover este dispositivo? Reaparecerá na próxima vez que o utilizador inicie sessão a partir dele.", "Delete": "Remover", "DefaultSubtitlesHelp": "As legendas são carregadas com base nas definições por omissão ou forçado nos metadados. As preferências de idioma são consideradas quando existem múltiplas opções disponíveis.", - "DefaultErrorMessage": "Ocorreu um erro ao processar o pedido. Por favor, tente novamente mais tarde.", + "ErrorDefault": "Ocorreu um erro ao processar o pedido. Por favor, tente novamente mais tarde.", "Default": "Por omissão", "DeathDateValue": "Faleceu: {0}", "DatePlayed": "Reproduzido a", @@ -956,7 +945,6 @@ "CancelSeries": "Cancelar gravação de série", "CancelRecording": "Cancelar gravação", "ButtonWebsite": "Website", - "ButtonViewWebsite": "Ver website", "ButtonUp": "Para cima", "ButtonUninstall": "Desinstalar", "ButtonTrailer": "Trailer", @@ -1002,7 +990,6 @@ "ButtonMore": "Mais", "ButtonManualLogin": "Início de Sessão Manual", "ButtonLibraryAccess": "Acesso à biblioteca", - "ButtonLearnMore": "Saiba mais", "ButtonInfo": "Informação", "ButtonHome": "Início", "ButtonHelp": "Ajuda", @@ -1071,7 +1058,7 @@ "ButtonAddImage": "Adicionar Imagem", "ButtonAdd": "Adicionar", "BurnSubtitlesHelp": "Determina se o servidor deve integrar as legendas durante a conversão de vídeo, dependendo do formato da legenda. Evitar a integração de legendas melhora o desempenho do servidor. Selecione Automático para que legendas baseadas em imagem (VOBSUB, PGS, SUB/IDX) e certos formatos ASS/SSA sejam integrados.", - "BrowsePluginCatalogMessage": "Explore as extensões disponíveis no nosso catálogo.", + "MessageBrowsePluginCatalog": "Explore as extensões disponíveis no nosso catálogo.", "Browse": "Explorar", "BoxRear": "Caixa (verso)", "Box": "Caixa", @@ -1084,7 +1071,6 @@ "Banner": "Insígnia", "Backdrops": "Imagens de Fundo", "Backdrop": "Imagem de Fundo", - "AutoBasedOnLanguageSetting": "Automático (baseado no idioma definido)", "AuthProviderHelp": "Seleccione um mecanismo de autenticação a ser utilizado para validar as credenciais deste utilizador.", "Audio": "Áudio", "AttributeNew": "Novo", @@ -1117,7 +1103,6 @@ "AddToPlaylist": "Adicionar à lista de reprodução", "AddToPlayQueue": "Adicionar à fila de reprodução", "AddToCollection": "Adicionar à coleção", - "AddItemToCollectionHelp": "Adicione itens às coleções pesquisando-os e utilizando o respetivo menu de toque ou clique direito para os adicionar a uma coleção.", "Add": "Adicionar", "Actor": "Ator", "AccessRestrictedTryAgainLater": "O acesso está atualmente restrito. Por favor, tente mais tarde.", @@ -1150,7 +1135,6 @@ "HeaderCancelRecording": "Cancelar Gravação", "HeaderBooks": "Livros", "HeaderBlockItemsWithNoRating": "Bloquear conteúdo sem informação de classificação etária ou com informação desconhecida:", - "HeaderAutomaticUpdates": "Acualizações automáticas", "HeaderAudioSettings": "Configurações de Áudio", "HeaderAudioBooks": "Livros de Áudio", "HeaderApp": "Aplicação", @@ -1173,7 +1157,6 @@ "HeaderAccessScheduleHelp": "Crie uma restrição horária de acesso para limitar o acesso ao Jellyfin a determinadas horas.", "HeaderAccessSchedule": "Restrição Horária de Acesso", "HardwareAccelerationWarning": "A ativação da aceleração de hardware pode causar instabilidade em alguns ambientes. Verifique se o sistema operacional e os drivers de vídeo estão totalmente atualizados. Se você tiver dificuldade em reproduzir o vídeo depois de ativar isso, precisará alterar a configuração novamente para Nenhum.", - "HandledByProxy": "Gerido pelo proxy inverso", "HDPrograms": "Programas HD", "EncoderPresetHelp": "Escolha um valor mais rápido para melhorar o desempenho, ou um valor mais lento para melhorar a qualidade.", "H264CrfHelp": "O parâmetro \\\"Constant Rate Factor (CRF)\\\" define o nível de qualidade usadoi por omissão pelo codificador x264. Os valores variam entre 0 e 51, em que valores mais baixos resultam em maior qualidade (com o custo de ficheiros maiores). Valores entre 18 e 28 são habitualmente considerados aceitáveis. O valor por omissão é 23, sendo um bom ponto de partida para ajustes.", @@ -1205,7 +1188,6 @@ "Down": "Baixar", "HeaderTags": "Tags", "HeaderNavigation": "Navegar", - "CopyStreamURLError": "Ocorreu um erro ao copiar o URL.", "ButtonSplit": "Dividir", "AskAdminToCreateLibrary": "Peça a um administrador para criar uma biblioteca.", "AllowFfmpegThrottling": "Transcodificação com falhas", @@ -1269,12 +1251,9 @@ "ManageRecording": "Gerenciar gravações", "Logo": "Logo", "List": "Lista", - "LinksValue": "Links: {0}", "Like": "Gostei", "LeaveBlankToNotSetAPassword": "Você pode deixar esse campo em branco para definir nenhuma senha.", "LearnHowYouCanContribute": "Aprenda como você pode contribuir.", - "LaunchWebAppOnStartupHelp": "Abra o cliente da web no seu navegador da web padrão quando o servidor iniciar. Isso não ocorrerá ao usar a função de reinicialização do servidor.", - "LaunchWebAppOnStartup": "Inicie a interface da web ao iniciar o servidor", "Large": "Amplo", "LanNetworksHelp": "Lista separada por vírgula de endereços IP ou entradas de máscara de rede/IP para redes que serão consideradas na rede local ao impor restrições de largura de banda. Se definido, todos os outros endereços IP serão considerados na rede externa e estarão sujeitos às restrições de largura de banda externa. Se deixado em branco, apenas a sub-rede do servidor é considerada na rede local.", "LabelffmpegPathHelp": "O caminho para o arquivo do aplicativo ffmpeg ou pasta que contém o ffmpeg.", @@ -1306,11 +1285,9 @@ "LabelSubtitleDownloaders": "Downloaders de legendas:", "LabelStreamType": "Tipo de fluxo:", "LabelSpecialSeasonsDisplayName": "Nome de exibição da temporada especial:", - "LabelSoundEffects": "Efeitos sonoros:", "LabelSortTitle": "Classificar título:", "LabelSortOrder": "Ordem de classificação:", "LabelSortBy": "Ordenar por:", - "LabelSkin": "Pele:", "LabelRemoteClientBitrateLimitHelp": "Um limite opcional de taxa de bits por fluxo para todos os dispositivos fora da rede. Isso é útil para impedir que os dispositivos solicitem uma taxa de bits mais alta do que a sua conexão à Internet pode suportar. Isso pode resultar no aumento da carga da CPU no servidor para transcodificar vídeos em tempo real para uma taxa de bits mais baixa.", "LabelPlayerDimensions": "Dimensões do reprodutor:", "LabelParentNumber": "Número pai:", @@ -1361,7 +1338,6 @@ "AlbumArtist": "Álbum do Artista", "Quality": "Qualidade", "Previous": "Anterior", - "PreferredNotRequired": "Preferível, mas não obrigatório", "PictureInPicture": "vídeo destacado", "OptionThumb": "Miniatura", "OptionRequirePerfectSubtitleMatchHelp": "Solicitar a \"correspondência perfeita\" filtrará as legendas incluindo apenas aquelas que foram testadas com o arquivo de vídeo. Desmarcar isto aumentará a probabilidade de baixar legendas, mas poderá obter legendas incorretas ou não sincronizadas.", @@ -1389,7 +1365,6 @@ "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.", "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", @@ -1400,12 +1375,10 @@ "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", diff --git a/src/strings/ro.json b/src/strings/ro.json index ff443fae68..f8aa986264 100644 --- a/src/strings/ro.json +++ b/src/strings/ro.json @@ -38,7 +38,6 @@ "HeaderActiveRecordings": "Înregistrări active", "HeaderAddScheduledTaskTrigger": "Adaugă declanșator", "HeaderAddUser": "Adaugă Utilizator", - "HeaderAutomaticUpdates": "Actualizare Automată", "HeaderChannels": "Canale", "HeaderContinueWatching": "Vizionează în continuare", "HeaderDeviceAccess": "Accesul Dispozitivelor", @@ -63,8 +62,6 @@ "HeaderUsers": "Utilizatori", "Help": "Ajutor", "ImportMissingEpisodesHelp": "Dacă este activată, informația despre episoadele lipsă va fi importată in baza de date Jellyfin și va fi afișată în cadrul serialelor. Aceasta poate cauza un timp semnificativ mai îndelungat la scanarea bibliotecilor.", - "LabelAllowServerAutoRestart": "Permite serverului să se repornească automat pentru a aplica actualizările", - "LabelAllowServerAutoRestartHelp": "Serverul se va reporni doar în timp ce nu are nici o sarcină, când nu este nici un utilizator conectat.", "LabelArtists": "Artisti:", "LabelArtistsHelp": "Separare multiplă utilizând ;", "LabelAudioLanguagePreference": "Preferințe de limbă pentru audio:", @@ -105,7 +102,6 @@ "LabelTranscodingTempPathHelp": "Specificați o cale specială pentru fișierele transcodate trimise clienților. Lasați gol pentru a folosi pe cea implicită în directorul de lucru al serverului.", "LabelTriggerType": "Tip Declanșator:", "LabelUser": "Utilizator:", - "LabelYourFirstName": "Numele tău:", "LabelYoureDone": "Ești Gata!", "LibraryAccessHelp": "Selectează biblioteciile media partajate cu acest utilizator. Administratorii vor avea posibilitatea să modifice toate dosarele utilizând managerul de metadata.", "MaxParentalRatingHelp": "Conținutul cu o limită de vârstă mai mare va fi ascuns pentru acest utilizator.", @@ -117,7 +113,7 @@ "Monday": "Luni", "MoreUsersCanBeAddedLater": "Mai mulți utilizatori pot fi adăugați mai târziu din Tabloul de Bord.", "NewCollectionNameExample": "Exemplu: Star Wars Collection", - "NoNextUpItemsMessage": "Nu s-a gasit nimic. Începe să vizionezi seriale!", + "MessageNoNextUpItems": "Nu s-a gasit nimic. Începe să vizionezi seriale!", "OptionAllowBrowsingLiveTv": "Permite accessul la Live TV", "OptionAllowLinkSharing": "Permite partajarea pe rețelele de socializare", "OptionAllowLinkSharingHelp": "Doar paginile wev ce contin informații despre conținutul media va fi partajat. Fișierele media nu vor fi partajate niciodată pentru public. Partajările sunt limitate ca timp și vor expira după {0} zile.", @@ -202,7 +198,6 @@ "TabNotifications": "Notificări", "TabOther": "Altele", "TabPassword": "Parolă", - "TabPlaylist": "Listă de redare", "TabProfile": "Profil", "TabProfiles": "Profile", "TabRecordings": "Înregistrări", @@ -241,7 +236,6 @@ "AddedOnValue": "Adăugat la {0}", "AddToPlaylist": "Adaugă la playlist", "AddToPlayQueue": "Adaugă la coada de redare", - "AddItemToCollectionHelp": "Adaugă obiectele la colecții căutând-le și folosind meniul de click-dreapta sau apasare pentru a le adăuga la colecție.", "Add": "Adaugă", "Actor": "Artist", "AccessRestrictedTryAgainLater": "Accesul este restricționat. Te rugăm să încerci mai târziu.", @@ -262,7 +256,6 @@ "AspectRatio": "Raportul aspectului", "AuthProviderHelp": "Selectează un Furnizor de Autentificare de folosit pentru autentificarea parolei acestui utilizator.", "Auto": "Auto", - "AutoBasedOnLanguageSetting": "Auto (bazat pe setările limbii)", "Backdrop": "Fundal", "Backdrops": "Fundaluri", "Banner": "Bandieră", @@ -275,7 +268,7 @@ "Audio": "Audio", "BoxRear": "Cutie (spate)", "Browse": "Răsfoire", - "BrowsePluginCatalogMessage": "Răsfoiți catalogul de pluginuri pentru a vedea ce este disponibil.", + "MessageBrowsePluginCatalog": "Răsfoiți catalogul de pluginuri pentru a vedea ce este disponibil.", "ButtonAddMediaLibrary": "Adaugă Librărie Media", "ButtonAddServer": "Adaugă Server", "ButtonArrowDown": "Jos", @@ -292,7 +285,6 @@ "ButtonPreviousTrack": "Calea anterioară", "ButtonRevoke": "Revocă", "ButtonSettings": "Setări", - "ButtonViewWebsite": "Vezi website", "ChangingMetadataImageSettingsNewContent": "Modificări ale metadatelor sau ale setărilor de descărcare a operelor de artă se va aplica doar conținutului nou adăugat în librăriile tale. Pentru a aplica modificările titlurilor deja existente va trebui reîmprospătată manual metadata lor.", "CinemaModeConfigurationHelp": "Mod cinema aduce experiența cinematografică în sufrageria dumneavoastră prin abilitatea de a rula trailere sau introuri personalizate înaintea titlului principal.", "ConfigureDateAdded": "Configurează cum este determinată data adaugării în tabloul de bord al serverului Jellyfin în setările librariei", @@ -328,7 +320,6 @@ "ButtonGuide": "Ghid", "ButtonHome": "Acasă", "ButtonInfo": "Info", - "ButtonLearnMore": "Mai multe", "ButtonLibraryAccess": "Acces Librarie", "ButtonMore": "Mai mult", "ButtonNetwork": "Rețea", @@ -345,7 +336,7 @@ "DatePlayed": "Data redării", "DeathDateValue": "Mort: {0}", "Default": "Implicit", - "DefaultErrorMessage": "A fost o eroare în procesarea cererii. Vă rugam încercați din nou mai târziu.", + "ErrorDefault": "A fost o eroare în procesarea cererii. Vă rugam încercați din nou mai târziu.", "DeleteImageConfirmation": "Sigur doriți să ștergeți această imagine?", "ButtonRename": "Redenumește", "ButtonRepeat": "Repetă", @@ -409,7 +400,6 @@ "General": "General", "GuideProviderLogin": "Autentificare", "HDPrograms": "Programe HD", - "HandledByProxy": "Gestionat de proxy invers", "HeaderApiKeys": "Chei API", "HeaderApp": "Aplicație", "HeaderCastCrew": "Distribuție și echipă", @@ -563,7 +553,7 @@ "EnableStreamLoopingHelp": "Activați acestă opțiune dacă fluxurile live conțin doar câteva secunde de date și trebuie solicitate în mod continuu. Activarea acestei opțiuni atunci când nu este necesar poate provoca probleme.", "ErrorAddingListingsToSchedulesDirect": "A apărut o eroare la adăugarea liniei în contul dvs. Schedules Direct. Schedules Direct permite doar un număr limitat de linii pentru fiecare cont. Este posibil să fie nevoie să vă conectați la site-ul web Schedules Direct și să eliminați alte înregistrări din cont înainte de a continua.", "ErrorAddingMediaPathToVirtualFolder": "A apărut o eroare la adăugarea căii de acces la fișierul media. Vă rugăm să vă asigurați că ruta este validă și procesul Jellyfin Server are acces la locația respectivă.", - "ErrorMessageStartHourGreaterThanEnd": "Timpul de oprire trebuie să fie mai mare decât cel de pornire.", + "ErrorStartHourGreaterThanEnd": "Timpul de oprire trebuie să fie mai mare decât cel de pornire.", "ErrorPleaseSelectLineup": "Selectați o linie și încercați din nou. Dacă nu sunt disponibile linii, atunci vă rugăm să verificați dacă numele dvs. de utilizator, parola și codul poștal sunt corecte.", "ExitFullscreen": "Ieșiți din modul ecran complet", "H264CrfHelp": "Factorul de Rată Constantă (CRF) este setarea implicită a calității pentru codificatorul x264. Puteți seta valorile între 0 și 51, unde valorile mai mici ar avea ca rezultat o calitate mai bună (în detrimentul dimensiunilor mai mari de fișiere). Valorile recomandate sunt cuprinse între 18 și 28. Valoarea implicită pentru x264 este 23, deci puteți utiliza acest lucru ca punct de plecare.", @@ -661,7 +651,6 @@ "LabelSportsCategories": "Categorii sportive:", "LabelSpecialSeasonsDisplayName": "Denumirea afișării sezonului special:", "LabelSource": "Sursă:", - "LabelSoundEffects": "Efecte audio:", "LabelSortTitle": "Sortează titlu:", "LabelSortOrder": "Ordinea de sortare:", "LabelSortBy": "Sortează după:", @@ -673,7 +662,6 @@ "LabelSkipIfAudioTrackPresent": "Ignoră dacă pista audio implicită se potrivește cu limba de descărcare", "LabelSkipForwardLength": "Durata salt înainte:", "LabelSkipBackLength": "Durata salt înapoi:", - "LabelSkin": "Tema:", "LabelSize": "Mărime:", "LabelSimultaneousConnectionLimit": "Limita streamului simultan:", "LabelServerName": "Numele serverului:", @@ -684,7 +672,6 @@ "LabelSelectVersionToInstall": "Alegeți versiunea pentru instalare:", "LabelSelectFolderGroupsHelp": "Dosarele care nu sunt bifate vor fi afișate de singure în propria vizualizare.", "LabelSelectFolderGroups": "Grupați automat conținutul din următoarele foldere în vizualizări, cum ar fi Filme, Muzică și TV:", - "LabelSecureConnectionsMode": "Mod de conectare securizat:", "LabelSeasonNumber": "Numărul sezonului:", "LabelScreensaver": "Protector de ecran:", "LabelScheduledTaskLastRan": "Ultima redare{0}, cu durata {1}.", @@ -871,7 +858,6 @@ "LabelDateAddedBehaviorHelp": "Dacă există o valoare de metadate, aceasta va fi întotdeauna folosită înainte de oricare dintre aceste opțiuni.", "LabelDateAddedBehavior": "Comportamentul datei adăugării pentru conținut nou:", "LabelDateAdded": "Data adăugării:", - "LabelDashboardTheme": "Tema tabloul de bord al serverului:", "LabelCustomRating": "Evaluare personalizată:", "LabelCustomDeviceDisplayNameHelp": "Furnizați un nume de afișare personalizat sau lăsați gol pentru a utiliza numele raportat de dispozitiv.", "LabelCustomDeviceDisplayName": "Numele afisat:", @@ -1009,7 +995,7 @@ "NoSubtitlesHelp": "Subtitrările nu vor fi încărcate în mod implicit. Acestea pot fi însă activate manual în timpul redării.", "NoSubtitles": "Fără", "NoSubtitleSearchResultsFound": "Nici un rezultat găsit.", - "NoPluginConfigurationMessage": "Acest plugin nu are setări de configurat.", + "MessageNoPluginConfiguration": "Acest plugin nu are setări de configurat.", "NoNewDevicesFound": "Nu s-au găsit dispozitive noi. Pentru a adăuga un nou tuner, închideți acest dialog și introduceți informațiile dispozitivului manual.", "No": "Nu", "NextUp": "Urmează", @@ -1058,7 +1044,6 @@ "MessageItemSaved": "Articol salvat.", "MessageInvalidUser": "Nume de utilizator sau parola incorecte. Vă rugăm să încercați din nou.", "MessageInvalidForgotPasswordPin": "A fost introdus un cod PIN nevalid sau expirat. Vă rugăm să încercați din nou.", - "MessageInstallPluginFromApp": "Acest plugin trebuie instalat din aplicația în care intenționați să îl utilizați.", "MessageImageTypeNotSelected": "Vă rugăm să selectați un tip de imagine din meniul derulant.", "MessageImageFileTypeAllowed": "Sunt acceptate numai fișierele JPEG și PNG.", "MessageForgotPasswordInNetworkRequired": "Încercați din nou în rețeaua de domiciliu pentru a iniția procesul de resetare a parolei.", @@ -1066,7 +1051,6 @@ "MessageFileReadError": "S-a întâmpinat o eroare în timpul citirii fișierului. Vă rugăm să încercați din nou.", "MessageDownloadQueued": "Descărcare adăugata în coadă.", "MessageDirectoryPickerLinuxInstruction": "Pentru Linux pe Arch Linux, CentOS, Debian, Fedora, openSUSE sau Ubuntu, trebuie să acordați utilizatorului serverului Jellyfin cel puțin permisiunea de citire la locațiile de stocare.", - "MessageDirectoryPickerInstruction": "Căile de rețea pot fi introduse manual în cazul în care butonul Network nu reușește să localizeze dispozitivele. De exemplu, {0} sau {1}.", "MessageDirectoryPickerBSDInstruction": "Pentru BSD, poate fi necesar să configurați stocarea în FreeNAS jail pentru a permite serverului Jellyfin să o acceseze.", "MessageDeleteTaskTrigger": "Sigur doriți să ștergeți acest declanșator de activitate?", "MessageCreateAccountAt": "Crează un cont la {0}", @@ -1089,7 +1073,6 @@ "MediaInfoStreamTypeEmbeddedImage": "Imaginea încorporată", "MediaInfoStreamTypeData": "Date", "MediaInfoStreamTypeAudio": "Audio", - "MediaInfoSoftware": "Software", "MediaInfoTimestamp": "Data și ora", "MediaInfoSize": "Mărime", "MediaInfoSampleRate": "Rata monstrei", @@ -1124,12 +1107,9 @@ "LiveBroadcasts": "Emisie în direct", "Live": "În direct", "List": "Listă", - "LinksValue": "Linkuri: {0}", "Like": "Îmi place", "LeaveBlankToNotSetAPassword": "Puteți lăsa acest câmp necompletat pentru a nu seta o parolă.", "LearnHowYouCanContribute": "Aflați cum puteți contribui.", - "LaunchWebAppOnStartupHelp": "Deschideți clientul web în browserul dvs. implicit la pornirea inițială a serverului. Acest lucru nu se va produce atunci când se utilizează funcția serverului de repornire.", - "LaunchWebAppOnStartup": "Lansați interfața web la pornirea serverului", "LatestFromLibrary": "Ultimele {0}", "Large": "Mare", "LanNetworksHelp": "Lista separată de virgule a adreselor IP sau a intrărilor de tip IP/mască de rețea pentru rețelele care vor fi luate în considerare în rețeaua locală atunci când se aplică restricțiile de lățime de bandă. Dacă este setat, toate celelalte adrese IP vor fi considerate a fi în rețeaua externă și vor fi supuse restricțiilor de lățime de bandă externe. Dacă este lăsat necompletat, numai subnetul serverului este considerat a fi în rețeaua locală.", @@ -1222,10 +1202,8 @@ "SaveSubtitlesIntoMediaFoldersHelp": "Stocarea subtitrărilor lângă fișierele video le va permite să fie gestionate mai ușor.", "SaveSubtitlesIntoMediaFolders": "Salvați subtitrările în dosarele media", "Runtime": "Timpul de rulare", - "RunAtStartup": "Rulați la pornire", "Rewind": "Derulează", "ResumeAt": "Reluați de la {0}", - "RequiredForAllRemoteConnections": "Obligatoriu pentru toate conexiunile distante", "ReplaceExistingImages": "Înlocuiți toate imaginile", "ReplaceAllMetadata": "Înlocuiți toate metadatele", "RepeatOne": "Repetă una singură", @@ -1243,7 +1221,7 @@ "Refresh": "Reîmprospătează", "Recordings": "Înregistrări", "RecordingScheduled": "Înregistrare programată.", - "RecordingPathChangeMessage": "Modificarea dosarului dvs. de înregistrare nu va migra înregistrările existente din vechea locație la cea nouă. Dacă doriți, trebuie să le mutați manual.", + "MessageChangeRecordingPath": "Modificarea dosarului dvs. de înregistrare nu va migra înregistrările existente din vechea locație la cea nouă. Dacă doriți, trebuie să le mutați manual.", "RecordingCancelled": "Înregistrare anulată.", "RecordSeries": "Înregistrează serialele", "Record": "Înregistrează", @@ -1254,7 +1232,6 @@ "RecentlyWatched": "Vizionate recent", "Rate": "Evaluare", "Raised": "Ridicat", - "QueueAllFromHere": "Formează o coadă de aici", "Quality": "Calitatea", "Programs": "Programe", "ProductionLocations": "Locații de producție", @@ -1263,10 +1240,9 @@ "Previous": "Anteriorul", "Premieres": "Premiere", "Premiere": "Premieră", - "PreferredNotRequired": "Preferat, dar nu este necesar", "PreferEmbeddedTitlesOverFileNamesHelp": "Aceasta determină titlul afișat implicit atunci când nu sunt disponibile metadate din internet sau metadate locale.", "PreferEmbeddedTitlesOverFileNames": "Preferă titlurile incluse decât numele fișierelor", - "PluginInstalledMessage": "Pluginul a fost instalat cu succes. Jellyfin Server va trebui să fie repornit pentru ca modificările să intre în vigoare.", + "MessagePluginInstalled": "Pluginul a fost instalat cu succes. Jellyfin Server va trebui să fie repornit pentru ca modificările să intre în vigoare.", "PleaseSelectTwoItems": "Vă rugăm să selectați cel puțin două elemente.", "PleaseRestartServerName": "Vă rugăm să reporniți Jellyfin Server - {0}.", "PleaseEnterNameOrId": "Vă rugăm să introduceți un nume sau un ID extern.", @@ -1288,7 +1264,7 @@ "People": "Oameni", "PasswordSaved": "Parolă salvată.", "PasswordResetProviderHelp": "Alegeți un furnizor de resetare a parolei pentru a fi utilizat atunci când acest utilizator solicită o resetare a parolei", - "PasswordResetHeader": "Resetează parola", + "HeaderResetPassword": "Resetează parola", "PasswordResetConfirmation": "Sigur doriți să resetați parola?", "PasswordResetComplete": "Parola a fost resetată.", "PasswordMatchError": "Confirmarea parolei și parola trebuie să corespundă.", @@ -1375,9 +1351,7 @@ "Whitelist": "Listă agreată", "Watched": "Vizionat", "ViewPlaybackInfo": "Vizualizați informațiile despre redare", - "ViewArtist": "Vezi artist", "ViewAlbum": "Vizualizați albumul", - "VideoRange": "Interval video", "Vertical": "Vertical", "ValueVideoCodec": "Codec Video: {0}", "ValueTimeLimitSingleHour": "Limită de timp: 1 oră", @@ -1407,7 +1381,7 @@ "Unrated": "Neevaluat", "Unplayed": "Nerulat", "Unmute": "Activați sunetul", - "UninstallPluginHeader": "Dezinstalați pluginul", + "HeaderUninstallPlugin": "Dezinstalați pluginul", "UninstallPluginConfirmation": "Sigur doriți să dezinstalați {0}?", "Uniform": "Constant", "TvLibraryHelp": "Examinați {0}ghidul de denumire TV{1}.", @@ -1450,7 +1424,6 @@ "SystemDlnaProfilesHelp": "Profilele de sistem pot fi numai citite. Modificările aduse unui profil de sistem vor fi salvate într-un nou profil personalizat.", "HeaderNavigation": "Navigare", "MessageConfirmAppExit": "Vrei să ieși?", - "CopyStreamURLError": "A apărut o eroare la copierea adresei URL.", "LabelVideoResolution": "Rezoluția video:", "LabelStreamType": "Tipul streamului:", "LabelPlayerDimensions": "Dimensiunile soft redare:", @@ -1464,11 +1437,9 @@ "AllowFfmpegThrottling": "Limitare Transcod-uri", "Track": "Cale", "Season": "Sezon", - "ReleaseGroup": "Gruparea lansării", "PreferEmbeddedEpisodeInfosOverFileNames": "Preferați informația despre episod încorporată în fișier decât numele fișierelor", "PreferEmbeddedEpisodeInfosOverFileNamesHelp": "Aceasta folosește informația despre episod din metadatele încorporate, dacă sunt disponibile.", "Person": "Persoană", - "OtherArtist": "Alt artist", "Movie": "Film", "Episode": "Episod", "ClientSettings": "Setări pentru client", @@ -1495,7 +1466,6 @@ "UnsupportedPlayback": "Jellyfin nu poate decripta conținut protejat de DRM, dar tot conținutul va fi încercat indiferent de titlurile protejate. Unele fișiere pot părea complet negre din cauza criptării sau a altor funcții neacceptate, cum ar fi titluri interactive.", "LabelLibraryPageSizeHelp": "Setează cantitatea de elemente de afișat pe o pagină a bibliotecii. Setați la 0 pentru a dezactiva paginarea.", "LabelLibraryPageSize": "Mărimea paginii Bibliotecă:", - "MessageUnauthorizedUser": "Nu sunteți autorizat să accesați serverul în acest moment. Vă rugăm să contactați administratorul serverului pentru mai multe informații.", "ButtonTogglePlaylist": "Listă de redare", "ButtonToggleContextMenu": "Mai mult", "Filter": "Filtru", @@ -1504,7 +1474,6 @@ "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.", @@ -1547,8 +1516,8 @@ "HeaderSyncPlaySelectGroup": "Alăturați-vă unui grup", "EnableDetailsBannerHelp": "Afișați o imagine de bandou în partea de sus a paginii cu detalii ale articolului.", "EnableDetailsBanner": "Detalii Bandou", - "EnableBlurhashHelp": "Imaginile care sunt în curs de încărcare vor fi afișate cu un marcaj întinat", - "EnableBlurhash": "Activați marcatoarele întinate pentru imagini", + "EnableBlurHashHelp": "Imaginile care sunt în curs de încărcare vor fi afișate cu un marcaj întinat", + "EnableBlurHash": "Activați marcatoarele întinate pentru imagini", "ShowMore": "Arată mai mult", "ShowLess": "Arată mai puțin", "ButtonCast": "Proiectează", diff --git a/src/strings/ru.json b/src/strings/ru.json index 29fb03210a..9089e4bea7 100644 --- a/src/strings/ru.json +++ b/src/strings/ru.json @@ -3,7 +3,6 @@ "AccessRestrictedTryAgainLater": "В настоящее время доступ запрещён. Повторите попытку позже.", "Actor": "Актёр", "Add": "Добавить", - "AddItemToCollectionHelp": "Добавляйте элементы в коллекции, выполняя их поиск, и с помощью правой кнопки мыши или касания меню присоедините их к коллекции.", "AddToCollection": "Добавить в коллекцию", "AddToPlayQueue": "Добавить в очередь воспроизведения", "AddToPlaylist": "Добавить в плей-лист", @@ -40,7 +39,6 @@ "AttributeNew": "Новинка", "Audio": "Аудио", "Auto": "Авто", - "AutoBasedOnLanguageSetting": "Авто (на основе настройки языка)", "Backdrop": "Фон", "Backdrops": "Фоны", "Banner": "Баннер", @@ -53,7 +51,7 @@ "Box": "Коробка", "BoxRear": "Коробка (задняя часть)", "Browse": "Навигация", - "BrowsePluginCatalogMessage": "Просмотрите каталог плагинов, чтобы ознакомиться с имеющимися плагинами.", + "MessageBrowsePluginCatalog": "Просмотрите каталог плагинов, чтобы ознакомиться с имеющимися плагинами.", "BurnSubtitlesHelp": "Определяется, должен ли сервер внедрять субтитры при перекодировании. Избежание этого значительно улучшит производительность. Выберите «Авто» для записи основанных на графике форматов (VOBSUB, PGS, SUB, IDX и др.) и некоторых субтитров ASS или SSA.", "ButtonAdd": "Добавить", "ButtonAddMediaLibrary": "Добавить медиатеку", @@ -84,7 +82,6 @@ "ButtonHelp": "Справка", "ButtonHome": "Главное", "ButtonInfo": "Инфо", - "ButtonLearnMore": "Подробнее", "ButtonLibraryAccess": "Доступ к медиатеке", "ButtonManualLogin": "Войти вручную", "ButtonMore": "Ещё", @@ -132,7 +129,6 @@ "ButtonTrailer": "Трейлер", "ButtonUninstall": "Удалить", "ButtonUp": "Вверх", - "ButtonViewWebsite": "См. вебсайт", "ButtonWebsite": "Веб-сайт", "CancelRecording": "Отменить запись", "CancelSeries": "Отменить сериал", @@ -163,7 +159,7 @@ "DatePlayed": "Дата воспроизведения", "DeathDateValue": "Дата смерти: {0}", "Default": "По умолчанию", - "DefaultErrorMessage": "Произошла ошибка при обработке запроса. Повторите попытку позже.", + "ErrorDefault": "Произошла ошибка при обработке запроса. Повторите попытку позже.", "DefaultMetadataLangaugeDescription": "Они являются значениями по умолчанию и могут быть подстроены индивидуально для каждой медиатеки.", "DefaultSubtitlesHelp": "Загрузки субтитров определяются флагами \"По умолчанию\" и \"Форсированные\" во внедрённых метаданных. Языковые настройки учитываются при наличии нескольких опций.", "Delete": "Удалить", @@ -232,7 +228,7 @@ "ErrorAddingXmlTvFile": "Произошла ошибка при доступе к XMLTV-файлу. Убедитесь, что файл существует и повторите попытку.", "ErrorDeletingItem": "Произошла ошибка при удалении элемента с Jellyfin Server. Проверьте, что у Jellyfin Server имеется доступ на запись в медиапапку и повторите попытку.", "ErrorGettingTvLineups": "Произошла ошибка при загрузке списков сопоставления. Убедитесь, что ваши данные правильны и повторите попытку.", - "ErrorMessageStartHourGreaterThanEnd": "Конечное время должно быть позже, чем начальное время.", + "ErrorStartHourGreaterThanEnd": "Конечное время должно быть позже, чем начальное время.", "ErrorPleaseSelectLineup": "Выделите список сопоставления и повторите попытку. Если списков сопоставления не имеется, то проверьте, что ваше имя пользователя, пароль и почтовый код являются верными.", "ErrorSavingTvProvider": "Произошла ошибка при сохранении поставщика ТВ. Убедитесь, что он доступен и повторите попытку.", "EveryNDays": "Каждые {0} дней", @@ -272,7 +268,6 @@ "H264CrfHelp": "Постоянное значение оценки (Constant Rate Factor, CRF) - параметр качества по умолчанию для кодёра x264. Возможно задавать значения от 0 до 51, где меньшие значения привели бы к улучшению качества (за счёт увеличения размеров файлов). Приемлемыми являются значения от 18 до 28. Стандартно для x264 - 23, так что вы можете использовать это в качестве отправной точки.", "EncoderPresetHelp": "Выберите значение быстрее для улучшения производительности, или значение медленнее для улучшения качества.", "HDPrograms": "HD-передачи", - "HandledByProxy": "Обрабатывается обратным прокси", "HardwareAccelerationWarning": "Включение аппаратного ускорения может привести к нестабильности в некоторых средах. Убедитесь в том, что ваша операционная система и видеодрайверы полностью актуализированы. Если имеются проблемы с воспроизведением видео после включения этого, необходимо сменить параметр назад на Ничего.", "HeaderAccessSchedule": "Расписание доступа", "HeaderAccessScheduleHelp": "Создайте расписание доступа, чтобы лимитировать доступ определёнными часами.", @@ -297,7 +292,6 @@ "HeaderAppearsOn": "Фигурирует в", "HeaderAudioBooks": "Аудиокниги", "HeaderAudioSettings": "Параметры аудио", - "HeaderAutomaticUpdates": "Автоматические обновления", "HeaderBlockItemsWithNoRating": "Блокирование элементов с отсутствующей или нераспознанной информацией о возрастной категории:", "HeaderBooks": "Книги", "HeaderBranding": "Оформление", @@ -518,8 +512,6 @@ "LabelAlbumArtists": "Исполнители альбома:", "LabelAll": "Все", "LabelAllowHWTranscoding": "Разрешить аппаратную перекодировку", - "LabelAllowServerAutoRestart": "Разрешить автоматический перезапуск сервера для применения обновлений", - "LabelAllowServerAutoRestartHelp": "Сервер будет перезапускаться только в периоды простоя, когда нет активности пользователей.", "LabelAllowedRemoteAddresses": "Фильтр внешних IP-адресов:", "LabelAllowedRemoteAddressesMode": "Режим фильтра внешних IP-адресов:", "LabelAppName": "Название приложения", @@ -557,7 +549,6 @@ "LabelCustomDeviceDisplayName": "Отображаемое название:", "LabelCustomDeviceDisplayNameHelp": "Приведите произвольное имя для отображения или не заполняйте, чтобы использовать имя, выданное устройством.", "LabelCustomRating": "Произвольная возрастная категория:", - "LabelDashboardTheme": "Тема панели сервера:", "LabelDateAdded": "Дата добавления:", "LabelDateAddedBehavior": "Для нового содержания за дату добавления принимается:", "LabelDateAddedBehaviorHelp": "При наличии значения в метаданных, оно всегда используется приоритетно, чем любая из данных опций.", @@ -759,7 +750,6 @@ "LabelScheduledTaskLastRan": "Последний запуск был {0}, занял {1}.", "LabelScreensaver": "Хранитель экрана:", "LabelSeasonNumber": "Номер сезона:", - "LabelSecureConnectionsMode": "Режим безопасного соединения:", "LabelSelectFolderGroups": "Автоматическое группирование внутрь аспектов (например: Кино, Музыка и ТВ) содержания из следующих папок:", "LabelSelectFolderGroupsHelp": "Папки, при которых сняты флажки, будут отображаться самостоятельно в их собственных аспектах.", "LabelSelectUsers": "Выбранные пользователи:", @@ -770,7 +760,6 @@ "LabelServerHost": "Узел:", "LabelServerHostHelp": "192.168.1.100:8096 или https://myserver.com", "LabelSimultaneousConnectionLimit": "Лимит одновременных потоков:", - "LabelSkin": "Оболочка:", "LabelSkipBackLength": "Время отмотки:", "LabelSkipForwardLength": "Время промотки:", "LabelSkipIfAudioTrackPresent": "Пропустить, если аудиодорожка по умолчанию соответствует загружаемому языку", @@ -782,7 +771,6 @@ "LabelSortBy": "Сортировка по:", "LabelSortOrder": "Порядок сортировки:", "LabelSortTitle": "Сортировка по названию:", - "LabelSoundEffects": "Звуковые эффекты:", "LabelSource": "Источник:", "LabelSpecialSeasonsDisplayName": "Отображаемое название спецсезона:", "LabelSportsCategories": "Спортивные категории:", @@ -830,14 +818,12 @@ "LabelValue": "Значение:", "LabelVersion": "Версия:", "LabelVersionInstalled": "Установлена: {0}", - "LabelVersionNumber": "Версия {0}", "LabelVideo": "Видео", "LabelXDlnaCap": "Свойства X-Dlna:", "LabelXDlnaCapHelp": "Определяется содержание из элемента X_DLNACAP во пространстве имён urn:schemas-dlna-org:device-1-0.", "LabelXDlnaDoc": "Схема X-DLNA:", "LabelXDlnaDocHelp": "Определяется содержание из элемента X_DLNADOC во пространстве имён urn:schemas-dlna-org:device-1-0.", "LabelYear": "Год:", - "LabelYourFirstName": "Ваше имя:", "LabelYoureDone": "Вы готовы!", "LabelZipCode": "Почтовый код:", "LabelffmpegPath": "Путь к FFmpeg:", @@ -848,7 +834,6 @@ "LearnHowYouCanContribute": "Изучите, как вы можете внести свой вклад.", "LibraryAccessHelp": "Выделите медиатеки, чтобы дать доступ этому пользователю. Администраторы могут изменять все папки с помощью «Диспетчера метаданных».", "Like": "Нравится", - "LinksValue": "Ссылки: {0}", "List": "Список", "Live": "Трансляция", "LiveBroadcasts": "Прямые трансляции", @@ -902,14 +887,12 @@ "MessageCreateAccountAt": "Создайте учётную запись на {0}", "MessageDeleteTaskTrigger": "Вы действительно хотите удалить данный триггер задачи?", "MessageDirectoryPickerBSDInstruction": "Касаемо BSD, возможно, потребуется конфигурировать хранилище в вашем FreeNAS Jail для того, чтобы разрешить Jellyfin получить к нему доступ.", - "MessageDirectoryPickerInstruction": "Сетевые пути возможно ввести вручную, в том случае, если при нажатии кнопки «Сеть» происходит сбой обнаружения устройств. Например: {0} или {1}.", "MessageDirectoryPickerLinuxInstruction": "Для Linux на Arch Linux, CentOS, Debian, Fedora, openSUSE или Ubuntu, вы должны предоставить пользователю службы, по крайней мере, доступ для чтения к расположениям хранилища.", "MessageDownloadQueued": "Загрузка в очереди.", "MessageEnablingOptionLongerScans": "Включение этой опции может привести к значительному увеличению времени сканирования медиатеки.", "MessageFileReadError": "Произошла ошибка при считывании файла. Повторите попытку позже.", "MessageForgotPasswordFileCreated": "Следующий файл был создан на вашем сервере и содержит инструкции о том, как поступить:", "MessageForgotPasswordInNetworkRequired": "Повторите попытку в пределах своей домашней сети, чтобы начать процесс сброса пароля.", - "MessageInstallPluginFromApp": "Данный плагин должен устанавливаться изнутри приложения, для которого оно предназначено.", "MessageInvalidForgotPasswordPin": "Был введён неверный или истёкший PIN-код. Повторите попытку.", "MessageInvalidUser": "Недопустимое имя пользователя или пароль. Повторите попытку.", "MessageItemSaved": "Элемент сохранён.", @@ -959,8 +942,8 @@ "NextUp": "Очередное", "No": "Нет", "NoNewDevicesFound": "Новых устройств не обнаружено. Чтобы добавить новый тюнер, закройте данный диалог и введите сведения об устройстве вручную.", - "NoNextUpItemsMessage": "Ничего не найдено. Начните смотреть свои ТВ-передачи!", - "NoPluginConfigurationMessage": "В данном плагине нет параметров конфигурирования.", + "MessageNoNextUpItems": "Ничего не найдено. Начните смотреть свои ТВ-передачи!", + "MessageNoPluginConfiguration": "В данном плагине нет параметров конфигурирования.", "NoSubtitleSearchResultsFound": "Результатов не найдено.", "NoSubtitles": "Ничего", "NoSubtitlesHelp": "По умолчанию, субтитры не будут загружаться. Они могут быть все ещё включены вручную во время воспроизведения.", @@ -1118,7 +1101,7 @@ "PasswordMatchError": "Пароль и подтверждение пароля должны совпадать.", "PasswordResetComplete": "Пароль был сброшен.", "PasswordResetConfirmation": "Вы действительно хотите сбросить пароль?", - "PasswordResetHeader": "Сброс пароля", + "HeaderResetPassword": "Сброс пароля", "PasswordSaved": "Пароль был сохранён.", "People": "Люди", "PerfectMatch": "Полное соответствие", @@ -1140,10 +1123,9 @@ "PleaseEnterNameOrId": "Введите название или внешний ID.", "PleaseRestartServerName": "Перезапустите Jellyfin Server - {0}.", "PleaseSelectTwoItems": "Выберите хотя бы два элемента.", - "PluginInstalledMessage": "Плагин установлен успешно. Чтобы изменения вступили в силу, будет необходимо перезапустить Jellyfin Server.", + "MessagePluginInstalled": "Плагин установлен успешно. Чтобы изменения вступили в силу, будет необходимо перезапустить Jellyfin Server.", "PreferEmbeddedTitlesOverFileNames": "Предпочитать внедрённые названия, чем имена файлов", "PreferEmbeddedTitlesOverFileNamesHelp": "Этим определяется отображаемое название по умолчанию, когда нет метаданных с интернета или локальные метаданные недоступны.", - "PreferredNotRequired": "Предпочтительно, но не требуется", "Premiere": "Премьера", "Premieres": "Премьеры", "Previous": "Предыдущее", @@ -1152,7 +1134,6 @@ "ProductionLocations": "Производ-ные площадки", "Programs": "Передачи", "Quality": "Качество", - "QueueAllFromHere": "В очередь все отсюда", "Raised": "Выпуклая", "Rate": "Оценка", "RecentlyWatched": "Недавно просмотренное", @@ -1163,7 +1144,7 @@ "Record": "Записать", "RecordSeries": "Записать сериал", "RecordingCancelled": "Запись отменена.", - "RecordingPathChangeMessage": "Изменение папки для записи не приведёт к переносу существующих записей со старого места на новое. Вам нужно переместить их вручную, если это необходимо.", + "MessageChangeRecordingPath": "Изменение папки для записи не приведёт к переносу существующих записей со старого места на новое. Вам нужно переместить их вручную, если это необходимо.", "RecordingScheduled": "Запись назначена.", "Recordings": "Записи", "Refresh": "Обновить", @@ -1181,10 +1162,8 @@ "RepeatOne": "Повторить раз", "ReplaceAllMetadata": "Замена всех метаданных", "ReplaceExistingImages": "Замена имеющихся изображений", - "RequiredForAllRemoteConnections": "Требуется для всех внешних подключений", "ResumeAt": "Возобновить с {0}", "Rewind": "Отмотать", - "RunAtStartup": "Запускать при старте системы", "Runtime": "Длительность", "Saturday": "суббота", "Save": "Сохранить", @@ -1282,7 +1261,6 @@ "TabParentalControl": "Управление содержанием", "TabPassword": "Пароль", "TabPlayback": "Воспроизведение", - "TabPlaylist": "Плей-лист", "TabPlaylists": "Плей-листы", "TabPlugins": "Плагины", "TabProfile": "Профиль", @@ -1321,7 +1299,7 @@ "TvLibraryHelp": "Просмотрите {0}руководство по именованию передач{1}.", "Uniform": "Однородная", "UninstallPluginConfirmation": "Вы действительно хотите удалить {0}?", - "UninstallPluginHeader": "Удаление плагина", + "HeaderUninstallPlugin": "Удаление плагина", "Unmute": "Вкл. звук", "Unplayed": "Невоспроизведённое", "Unrated": "Без категории", @@ -1353,9 +1331,7 @@ "ValueTimeLimitSingleHour": "Временной лимит: 1 час", "ValueVideoCodec": "Видео кодек: {0}", "Vertical": "Вертикально", - "VideoRange": "Диапазон видео", "ViewAlbum": "Посмотреть альбом", - "ViewArtist": "Посмотреть исполнителя", "ViewPlaybackInfo": "Сведения о воспроизводимом", "Watched": "Просмотрено", "Wednesday": "среда", @@ -1397,9 +1373,6 @@ "DashboardOperatingSystem": "Операционная система: {0}", "DashboardArchitecture": "Архитектура: {0}", "LabelWeb": "Веб:", - "LaunchWebAppOnStartup": "Запустить веб-интерфейс при запуске Jellyfin Server", - "LaunchWebAppOnStartupHelp": "Открывается веб-клиент в браузере по умолчанию при начальном запуске сервера. Это не произойдет при использовании функции перезапуска сервера.", - "MediaInfoSoftware": "ПО", "MediaInfoStreamTypeAudio": "Аудио", "MediaInfoStreamTypeData": "Данные", "MediaInfoStreamTypeEmbeddedImage": "Встроенное изображение", @@ -1460,7 +1433,6 @@ "LabelPlayerDimensions": "Размеры проигрывателя:", "LabelDroppedFrames": "Пропущенные кадры:", "LabelCorruptedFrames": "Испорченные кадры:", - "CopyStreamURLError": "Произошла ошибка при копировании URL.", "OptionForceRemoteSourceTranscoding": "Принудительное перекодирование удалённых источников медиаданных (например, эфирное ТВ)", "NoCreatedLibraries": "Похоже, вы еще не создали ни одной медиатеки. {0}Желаете создать её сейчас?{1}", "AskAdminToCreateLibrary": "Попросите администратора создать медиатеку.", @@ -1481,7 +1453,6 @@ "Track": "Дорожка", "Season": "Сезон", "Person": "Персона", - "OtherArtist": "Другой исполнитель", "Movie": "Фильм", "LabelLibraryPageSize": "Размер страницы медиатеки:", "Episode": "Эпизод", @@ -1493,14 +1464,12 @@ "LastSeen": "Последний раз был {0}", "WriteAccessRequired": "Jellyfin Server требуются права на запись в эту папку. Обеспечьте доступ для записи и попробуйте снова.", "PathNotFound": "Путь не может быть найден. Убедитесь, что путь правильный и попробуйте снова.", - "ReleaseGroup": "Релиз-группа", "PreferEmbeddedEpisodeInfosOverFileNames": "Предпочитать встроенную информацию эпизода вместо имён файлов", "PreferEmbeddedEpisodeInfosOverFileNamesHelp": "Используется информация об эпизоде из встроенных метаданных, если они доступны.", "LabelLibraryPageSizeHelp": "Устанавливается количество элементов для отображения на странице медиатеки. Установите 0 для отключения нумерации страниц.", "LabelDeinterlaceMethod": "Метод устранения гребёнки:", "DeinterlaceMethodHelp": "Выберите метод устранения гребёнки, который будет использоваться при перекодировании чересстрочного содержания.", "UnsupportedPlayback": "Jellyfin не может расшифровать содержимое, защищенное DRM, но в любом случае будет предпринята попытка расшифровки всего содержимого, включая защищенные заголовки. Некоторые файлы могут выглядеть полностью черными из-за шифрования или других неподдерживаемых функций, таких как интерактивные заголовки.", - "MessageUnauthorizedUser": "В настоящее время у вас нет доступа к серверу. Пожалуйста, свяжитесь с администратором сервера для получения дополнительной информации.", "HeaderFavoritePlaylists": "Избранные плей-листы", "LabelRequireHttpsHelp": "Если этот флажок установлен, сервер будет автоматически перенаправлять все запросы через HTTP на HTTPS. Это не имеет никакого эффекта, если сервер не слушает HTTPS.", "LabelEnableHttpsHelp": "Позволяет серверу слушать HTTPS-порт. Для работы необходим действующий сертификат.", @@ -1508,7 +1477,6 @@ "TabDVR": "DVR", "SaveChanges": "Сохранить изменения", "LabelRequireHttps": "Требуется HTTPS", - "LabelNightly": "Ночная", "LabelStable": "Стабильная", "LabelChromecastVersion": "Версия Chromecast", "LabelEnableHttps": "Включить HTTPS", @@ -1550,8 +1518,8 @@ "MessageSyncPlayErrorNoActivePlayer": "Активный проигрыватель не найден. SyncPlay был отключен.", "ShowMore": "Показать больше", "ShowLess": "Показать меньше", - "EnableBlurhashHelp": "Рисунки, которые всё ещё загружаются, будут отображаться с размытым заполнением", - "EnableBlurhash": "Включить размытые заполнители для изображений", + "EnableBlurHashHelp": "Рисунки, которые всё ещё загружаются, будут отображаться с размытым заполнением", + "EnableBlurHash": "Включить размытые заполнители для изображений", "ButtonSyncPlay": "SyncPlay", "ButtonCast": "В ролях", "TabRepositories": "Репозитории", diff --git a/src/strings/sk.json b/src/strings/sk.json index 581bd128ff..44c5751175 100644 --- a/src/strings/sk.json +++ b/src/strings/sk.json @@ -20,7 +20,6 @@ "Ascending": "Vzostupne", "AspectRatio": "Pomer strán", "AttributeNew": "Nové", - "AutoBasedOnLanguageSetting": "Automaticky (na základe nastavenia jazyka)", "Backdrops": "Pozadia", "BirthDateValue": "Narodený/á: {0}", "BirthLocation": "Miesto narodenia", @@ -53,7 +52,6 @@ "ButtonGotIt": "Rozumiem", "ButtonHelp": "Pomoc", "ButtonHome": "Domov", - "ButtonLearnMore": "Zistiť viac", "ButtonManualLogin": "Manuálne prihlásenie", "ButtonMore": "Viac", "ButtonNetwork": "Sieť", @@ -92,7 +90,6 @@ "ButtonTrailer": "Trailer", "ButtonUninstall": "Odinštalovať", "ButtonUp": "Hore", - "ButtonViewWebsite": "Zobraziť webovú stránku", "ButtonWebsite": "Webové stránky", "Categories": "Kategórie", "ChannelAccessHelp": "Zvoľte kanály zdieľané s týmto používateľom. Administrátori budú schopní upraviť všetky kanály použitím správcu metadát.", @@ -110,7 +107,7 @@ "DateAdded": "Dátum pridania", "DatePlayed": "Dátum prehrania", "DeathDateValue": "Zomrel/a: {0}", - "DefaultErrorMessage": "Pri spracovaní požiadavky došlo k chybe. Prosím, skúste to neskôr znova.", + "ErrorDefault": "Pri spracovaní požiadavky došlo k chybe. Prosím, skúste to neskôr znova.", "Delete": "Zmazať", "DeleteDeviceConfirmation": "Ste si istý, že chcete odstrániť toto zariadenie? Objaví sa znovu, keď sa ním používateľ nabudúce prihlási.", "DeleteImage": "Zmazať obrázok", @@ -143,7 +140,7 @@ "EnablePhotos": "Zobraziť fotky", "EndsAtValue": "Končí o {0}", "Episodes": "Epizódy", - "ErrorMessageStartHourGreaterThanEnd": "Čas ukončenia musí byť väčší ako čas štartu.", + "ErrorStartHourGreaterThanEnd": "Čas ukončenia musí byť väčší ako čas štartu.", "EveryNDays": "Každých {0} dní", "ExitFullscreen": "Opustiť celú obrazovku", "ExtraLarge": "Veľmi veľké", @@ -183,7 +180,6 @@ "HeaderApiKeys": "Kľúče API", "HeaderAudioBooks": "Audio knihy", "HeaderAudioSettings": "Nastavenia zvuku", - "HeaderAutomaticUpdates": "Automatické aktualizácie", "HeaderBooks": "Knihy", "HeaderCastAndCrew": "Obsadenie a štáb", "HeaderChannels": "Kanály", @@ -314,8 +310,6 @@ "LabelAirTime": "Čas vysielania:", "LabelAll": "Všetky", "LabelAllowHWTranscoding": "Povoliť hardvérové transkódovanie", - "LabelAllowServerAutoRestart": "Povoliť automatický reštart servera pre aplikovanie aktualizácií", - "LabelAllowServerAutoRestartHelp": "Server sa reštartuje iba počas obdobia bez aktivity, keď nie je žiadny používateľ aktívny.", "LabelAllowedRemoteAddresses": "Filter vzdialených IP adries:", "LabelAppName": "Názov aplikácie", "LabelAppNameExample": "Príklad: Sickbeard, Sonarr", @@ -464,7 +458,6 @@ "LabelSkipForwardLength": "Dĺžka skoku dopredu:", "LabelSkipIfGraphicalSubsPresent": "Preskočiť ak video obsahuje vložené titulky", "LabelSortBy": "Zoradiť podľa:", - "LabelSoundEffects": "Zvukové efekty:", "LabelSource": "Zdroj:", "LabelSportsCategories": "Športové kategórie:", "LabelStartWhenPossible": "Spustiť akonáhle je možné:", @@ -492,9 +485,7 @@ "LabelValue": "Hodnota:", "LabelVersion": "Verzia:", "LabelVersionInstalled": "{0} nainštalovaný", - "LabelVersionNumber": "Verzia {0}", "LabelYear": "Rok:", - "LabelYourFirstName": "Meno:", "LabelYoureDone": "Hotovo!", "LabelZipCode": "PSČ:", "LabelffmpegPath": "Cesta k FFmpeg:", @@ -574,8 +565,8 @@ "Next": "Ďalšie", "NextUp": "Nasleduje", "No": "Nie", - "NoNextUpItemsMessage": "Nič nenájdené. Začnite pozerať vaše seriály!", - "NoPluginConfigurationMessage": "Tento zásuvný modul nemá žiadne nastavenia.", + "MessageNoNextUpItems": "Nič nenájdené. Začnite pozerať vaše seriály!", + "MessageNoPluginConfiguration": "Tento zásuvný modul nemá žiadne nastavenia.", "NoSubtitleSearchResultsFound": "Žiadne výsledky.", "NoSubtitles": "Žiadne", "None": "Žiadne", @@ -683,7 +674,7 @@ "PasswordMatchError": "Heslo a potvrdenie hesla sa musia zhodovať.", "PasswordResetComplete": "Heslo bolo obnovené.", "PasswordResetConfirmation": "Naozaj chcete obnoviť heslo?", - "PasswordResetHeader": "Obnoviť heslo", + "HeaderResetPassword": "Obnoviť heslo", "PasswordSaved": "Heslo uložené.", "People": "Ľudia", "PerfectMatch": "Perfektná zhoda", @@ -702,7 +693,7 @@ "PleaseEnterNameOrId": "Prosím, zadajte meno alebo externé ID.", "PleaseRestartServerName": "Prosím reštartujte Jellyfin Server - {0}.", "PleaseSelectTwoItems": "Vyberte prosím aspoň dve položky.", - "PluginInstalledMessage": "Rozšírenie bolo úspešne nainštalované. Je potrebný reštart Jellyfin Server aby sa prejavili zmeny.", + "MessagePluginInstalled": "Rozšírenie bolo úspešne nainštalované. Je potrebný reštart Jellyfin Server aby sa prejavili zmeny.", "Premiere": "Premiéra", "Premieres": "Premiéry", "Previous": "Predchádzajúce", @@ -728,7 +719,6 @@ "ReplaceAllMetadata": "Nahradiť všetky metadáta", "ReplaceExistingImages": "Nahradiť existujúce obrázky", "ResumeAt": "Pokračovať od {0}", - "RunAtStartup": "Spustiť pri štarte", "Saturday": "Sobota", "Save": "Uložiť", "SaveSubtitlesIntoMediaFolders": "Ukladať titulky do priečinkov s médiami", @@ -820,7 +810,7 @@ "Trailers": "Trailery", "Tuesday": "Utorok", "UninstallPluginConfirmation": "Ste si istý, že chcete odinštalovať {0}?", - "UninstallPluginHeader": "Odinštalovať rozšírenie", + "HeaderUninstallPlugin": "Odinštalovať rozšírenie", "Unmute": "Zapnúť zvuk", "Unplayed": "Neprehrané", "Unrated": "Nehodnotené", @@ -850,7 +840,6 @@ "ValueVideoCodec": "Video kodeky: {0}", "Vertical": "Vertikálne", "ViewAlbum": "Zobraziť album", - "ViewArtist": "Zobraziť umelca", "Wednesday": "Streda", "WelcomeToProject": "Vitajte v Jellyfin!", "WizardCompleted": "To je zatiaľ všetko, čo potrebujeme. Jellyfin začal zhromažďovať údaje o vašej multimediálnej knižnici. Pozrite si niektoré z našich aplikácií a potom kliknite na Dokončiť pre zobrazenie Dashboardu.", @@ -911,10 +900,8 @@ "DashboardArchitecture": "Architektúra: {0}", "LabelWeb": "Web:", "LeaveBlankToNotSetAPassword": "Toto pole môžete nechať prázdne pre nastavenie bez hesla.", - "LinksValue": "Odkazy: {0}", "List": "Zoznam", "Logo": "Logo", - "MediaInfoSoftware": "Softvér", "MediaInfoStreamTypeAudio": "Audio", "MediaInfoStreamTypeData": "Dáta", "MediaInfoStreamTypeSubtitle": "Titulky", @@ -987,7 +974,6 @@ "Recordings": "Nahrávky", "RemoveFromPlaylist": "Odobrať z playlistu", "RepeatMode": "Režim opakovania", - "RequiredForAllRemoteConnections": "Vyžadované pre všetky vzdialené pripojenia", "Rewind": "Pretočiť späť", "Runtime": "Dĺžka", "Schedule": "Naplánovné úlohy", @@ -1000,7 +986,6 @@ "TabDirectPlay": "Priame prehrávanie", "TabLogs": "Záznamy", "TabPlayback": "Prehrávanie", - "TabPlaylist": "Playlist", "TabPlaylists": "Playlisty", "TabServer": "Server", "TabStreaming": "Streamovanie", @@ -1028,7 +1013,6 @@ "SimultaneousConnectionLimitHelp": "Maximálny povolený počet súčasných streamov. Zadajte 0 pre vypnutie obmedzenia.", "RepeatEpisodes": "Opakovanie epizód", "Record": "Nahrávať", - "PreferredNotRequired": "Preferované, ale nevyžadované", "OptionRegex": "Regex", "OptionEstimateContentLength": "Odhadnúť dĺžku obsahu pri prekódovávaní", "OptionEnableForAllTuners": "Povoliť pre všetky tunery", @@ -1045,7 +1029,6 @@ "HeaderSeriesOptions": "Nastavenia seriálov", "HeaderParentalRatings": "Rodičovské hodnotenia", "HeaderEnabledFields": "Povolené polia", - "HeaderAudioLanguages": "Jazyk zvuku", "HeaderAllowMediaDeletionFrom": "Povoliť zmazanie médií z", "HeaderAdmin": "Admin", "EnableThemeVideos": "Videá úvodných zvučiek", @@ -1069,7 +1052,6 @@ "LabelDisplayLanguageHelp": "Preklad Jellyfinu je v neustálom vývoji.", "LabelDefaultUserHelp": "Určuje, ktorá používateľská knižnica by mala byť zobrazená na pripojenom zariadení. Toto nastavenie môže byť prepísané pomocou profilov pre každé zariadenie.", "LabelDateAddedBehaviorHelp": "Pokiaľ majú metadáta hodnotu, bude vždy použitá pred niektorou z týchto možností.", - "LabelDashboardTheme": "Téma dashboardu servera:", "LabelCustomDeviceDisplayNameHelp": "Nahradte vlastným názvom alebo ponechajte prázdne, aby názov určilo zariadenie.", "LabelCustomDeviceDisplayName": "Zobrazený názov:", "LabelCache": "Cache:", @@ -1139,8 +1121,6 @@ "HeaderApiKeysHelp": "Externé aplikácie musia mať vlastný API kľúč, aby mohli komunikovať s Jellyfin Serverom. Kľúče sú vydávané pomocou prihlásenia sa cez Jellyfin účet alebo manuálnym priradením kľúča aplikácií.", "HeaderAdditionalParts": "Dodatočné časti", "HardwareAccelerationWarning": "Povolenie hardvérovej akcelerácie môže spôsobiť nestabilitu v niektorých podmienkach. Uistite sa, že váš operačný systém a grafické ovládače sú plne aktualizované. Pokiaľ máte po zapnutí problémy s prehrávaním videa, budete musieť zmeniť nastavenie späť na Žiadne.", - "AddItemToCollectionHelp": "Pridať položku do kolekcie jej vyhľadaním a použitím pravého tlačítka myši alebo kliknutím na tlačidlo ponuky a pridať do kolekcie.", - "HandledByProxy": "Spracované pomocou reverznej proxy", "EncoderPresetHelp": "Vyberte hodnotu faster pre zlepšenie výkonu alebo hodnotu slower pre zlepšenie kvality.", "H264CrfHelp": "Constant Rate Factor (CRF) je východzím nastavením kvality pre x264 enkodér. Môžete mu nadstaviť hodnotu medzi 0 a 51, kde nižšia hodnota vedie k vyššej kvalite (za cenu väčšieho súboru). Rozumné hodnoty sú medzi 18 a 28. Východzia hodnota pre x264 je 23, ktorú môžete použiť ako začiatočný bod.", "GuideProviderSelectListings": "Výber zobrazenia", @@ -1178,7 +1158,7 @@ "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.", - "BrowsePluginCatalogMessage": "Prehliadnite si náš katalóg dostupných zásuvných modulov.", + "MessageBrowsePluginCatalog": "Prehliadnite si náš katalóg dostupných zásuvných modulov.", "Browse": "Prechádzať", "Blacklist": "Blacklist", "Banner": "Banner", @@ -1199,7 +1179,6 @@ "XmlDocumentAttributeListHelp": "Tieto atribúty sú aplikované do koreňového prvku každej XML odpovede.", "Writer": "Napísal", "Whitelist": "Whitelist", - "VideoRange": "Rozsah videa", "UserAgentHelp": "Zadajte vlastnú HTTP hlavičku pre user agenta.", "TitleHostingSettings": "Nastavenie hostingu", "Thumb": "Náhľad", @@ -1221,10 +1200,9 @@ "SelectAdminUsername": "Prosím, vyberte si používateľské meno pre účet administrátora.", "RefreshQueued": "Obnovenie zaradené do fronty.", "RefreshDialogHelp": "Metadáta sa obnovujú na základe nastavení a internetových služieb, ktoré sú povolené v dashboarde Jellyfin Serveru.", - "RecordingPathChangeMessage": "Zmenou priečinku pre nahrávanie sa existujúce nahrávky automaticky nepresunú zo starej lokácie na na novú. Budete ich musieť presunúť ručne, pokiaľ budete chcieť.", + "MessageChangeRecordingPath": "Zmenou priečinku pre nahrávanie sa existujúce nahrávky automaticky nepresunú zo starej lokácie na na novú. Budete ich musieť presunúť ručne, pokiaľ budete chcieť.", "RecordSeries": "Nahrať sériu", "Raised": "Vystupujúce", - "QueueAllFromHere": "Všetko odtiaľto zaradiť do fronty", "Primary": "Primárna", "PreferEmbeddedTitlesOverFileNamesHelp": "Toto určuje východzí názov zobrazenia, pokiaľ nie sú k dispozícií internetové metadáta alebo lokálne metadáta.", "PreferEmbeddedTitlesOverFileNames": "Preferovať vložené názvy nad názvami súborov", @@ -1291,13 +1269,11 @@ "MessageNoServersAvailable": "Žiadne servery neboli nájdené pomocou automatického objavovania serverov.", "MessageNoMovieSuggestionsAvailable": "V súčastnosti nie sú k dispozícií žiadne filmové návrhy. Začnite pozerať a hodnotiť vaše filmy, potom sa sem vráťte pre Vaše odporúčania.", "MessageNoCollectionsAvailable": "Kolekcie vám umožnia užiť si vlastné zoskupenia filmov, seriálov a albumov. Kliknite na tlačítko + pre začatie vytvárania kolekcie.", - "MessageInstallPluginFromApp": "Tento zásuvný modul musí byť nainštalovaný z aplikácie, ktorú chcete používať.", "MessageImageTypeNotSelected": "Prosím, vyberte typ obrázku z rozbalovacieho menu.", "MessageForgotPasswordInNetworkRequired": "Prosím, skúste to znova vo vašej domácej sieti pre zahájenie procesu obnovy hesla.", "MessageForgotPasswordFileCreated": "Nasledujúci súbor bol vytvorený na vašom serveri a obsahuje inštrukcie, ako postupovať:", "MessageDownloadQueued": "Sťahovanie zaradené do fronty.", "MessageDirectoryPickerLinuxInstruction": "Pre Linuxové distribúcie Arch Linux, CentOS, Debian, Fedora, openSUSE alebo Ubuntu, je potrebné udeliť používateľovi služby oprávnenie aspoň na čítanie.", - "MessageDirectoryPickerInstruction": "Sieťové cesty môžu byť zadané manuálne v prípade, že tlačítko pre Sieť nedokáže lokalizovať vaše zariadenie. Napríklad, {0} alebo {1}.", "MessageDirectoryPickerBSDInstruction": "Pre BSD možno budete potrebovať nakonfigurovať úložisko priamo vo vašom FreeNAS Jail aby k nim mohol pristupovať Jellyfin.", "MessageDeleteTaskTrigger": "Naozaj chcete vymazať tento trigger úlohy?", "MessageCreateAccountAt": "Vytvoriť účet v {0}", @@ -1315,8 +1291,6 @@ "MediaInfoBitrate": "Dátový tok", "MediaInfoAnamorphic": "Anamorfné", "MapChannels": "Nájdi kanály", - "LaunchWebAppOnStartupHelp": "Otvorí webového klienta vo vašom východzom webovom prehliadači pri prvotnom spustení servera. Toto nenastane pokiaľ použijete funkciu reštartovania servera.", - "LaunchWebAppOnStartup": "Spustiť webové rozhranie pri štarte servera", "LabelffmpegPathHelp": "Cesta k aplikačnému súboru ffmpeg alebo k priečinku obsahujúcemu ffmpeg.", "LabelXDlnaDocHelp": "Určuje obsah prvku X_DLNADOC v namespace urn:schemas-dlna-org:device-1-0.", "LabelXDlnaDoc": "X-DLNA dokumentácia:", @@ -1354,7 +1328,6 @@ "LabelSkipIfGraphicalSubsPresentHelp": "Textové verzie titulkov môžu mať za následok efektívnejšiu dodávku a zníženie šance na transkódovanie videa.", "LabelSkipIfAudioTrackPresentHelp": "Zrušte zaškrtnutie pre zobrazenie titulkov pri všetkých videách, bez ohľadu na jazyk zvuku.", "LabelSkipIfAudioTrackPresent": "Preskočiť, pokiaľ je východzia zvuková stopa rovnaká ako sťahovaný jazyk", - "LabelSkin": "Vzhľad:", "LabelSize": "Veľkosť:", "LabelSimultaneousConnectionLimit": "Limit simultánnych streamov:", "LabelServerName": "Názov serveru:", @@ -1362,7 +1335,6 @@ "LabelSendNotificationToUsers": "Odoslať oznámenie pre:", "LabelSelectFolderGroupsHelp": "Priečinky, ktoré nie sú zaškrtnuté, budú zobrazené vo vlastnom zobrazení.", "LabelSelectFolderGroups": "Automaticky zoskupiť obsah z nasledujúcich priečinkov do zobrazenia, ako sú Filmy, Hudba a TV:", - "LabelSecureConnectionsMode": "Režim zabezpečeného pripojenia:", "LabelScheduledTaskLastRan": "Naposledy pustené {0}, trvalo {1}.", "LabelSaveLocalMetadataHelp": "Ukladanie artworkov do priečinkov s médiami umožní ich jednoduchšiu úpravu.", "LabelRemoteClientBitrateLimitHelp": "Voliteľný limit dátových tokov jednotlivých streamov pre všetky sieťové zariadenia. Toto je užitočné ako prevencia voči požiadavkám zariadení o vyšší dátový tok ako dokáže zvládnuť internetové pripojenie. To môže mať za následok zvýšenie nárokov na CPU vášho servera, aby bolo možné transkódovať videá za behu na nižší dátový tok.", @@ -1457,7 +1429,6 @@ "LabelPlayerDimensions": "Rozmery prehrávača:", "LabelDroppedFrames": "Vynechané snímky:", "LabelCorruptedFrames": "Poškodené snímky:", - "CopyStreamURLError": "Pri kopírovaní URL nastala chyba.", "OptionForceRemoteSourceTranscoding": "Vynútiť transkódovanie vzdialených mediálnych zdrojov (ako napr. živá TV)", "NoCreatedLibraries": "Vyzerá to tak, že ste zatiaľ nevytvorili žiadnu knižnicu. {0}Chceli by ste nejakú vytvoriť teraz?{1}", "AskAdminToCreateLibrary": "Pokiaľ chcete vytvoriť knižnicu, musíte sa spýtať administrátora.", @@ -1485,9 +1456,7 @@ "Yadif": "YADIF", "Track": "Stopa", "Season": "Séria", - "ReleaseGroup": "Vydavateľ", "Person": "Osoba", - "OtherArtist": "Ostatný umelci", "Movie": "FIlm", "LabelDeinterlaceMethod": "Metóda odstránenia prekladaného videa:", "Episode": "Epizóda", @@ -1496,7 +1465,6 @@ "AlbumArtist": "Umelec albumu", "LabelLibraryPageSizeHelp": "Určuje množstvo položiek na zobrazenie na stránke knižnice. Nastavte 0 pre vypnutie stránkovania.", "LabelLibraryPageSize": "Veľkosť stránky knižnice:", - "MessageUnauthorizedUser": "Momentálne nemáte oprávnenie na prístup k serveru. Prosím, kontaktujte svojho administrátora serveru pre viac informácií.", "UnsupportedPlayback": "Jellyfin nemôže dešifrovať obsah chránený technológiou DRM, ale pokúsi sa o to, vrátane chránených titulov. Niektoré súbory sa môžu zobraziť ako kompletne čierne z dôvodu, že sú zašifrované alebo obsahujú nepodporované funckie, ako napríklad interaktívne funkcie.", "Filter": "Filter", "New": "Nové", @@ -1504,7 +1472,6 @@ "ButtonTogglePlaylist": "Playlist", "ButtonToggleContextMenu": "Viac", "ApiKeysCaption": "Zoznam v súčasnosti povolených API kľúčov", - "LabelNightly": "Nočná", "LabelStable": "Stabilná", "LabelChromecastVersion": "Chromecast verzia", "TabDVR": "DVR", @@ -1549,8 +1516,8 @@ "SyncPlayAccessHelp": "Vyberte úroveň prístupu pre tohto používateľa k funkcií SyncPlay. SyncPlay umožňuje zosynchronizovať prehrávanie s ostatnými zariadeniami.", "EnableDetailsBannerHelp": "Zobrazí banner na vrchnej časti detailu položky.", "EnableDetailsBanner": "Detail banneru", - "EnableBlurhashHelp": "Obrázky, ktoré sa stále načítavajú budú zobrazené ako dočasný obrázok s rozmazaným pozadím", - "EnableBlurhash": "Povoliť obrázok s rozmazaným pozadím pre chýbajúce obrázky", + "EnableBlurHashHelp": "Obrázky, ktoré sa stále načítavajú budú zobrazené ako dočasný obrázok s rozmazaným pozadím", + "EnableBlurHash": "Povoliť obrázok s rozmazaným pozadím pre chýbajúce obrázky", "ShowMore": "Zobraziť viac", "ShowLess": "Zobraziť menej", "ButtonCast": "Prenášať", diff --git a/src/strings/sl-si.json b/src/strings/sl-si.json index ee28cbec81..a8f3bd020c 100644 --- a/src/strings/sl-si.json +++ b/src/strings/sl-si.json @@ -7,7 +7,6 @@ "FolderTypeTvShows": "TV", "HeaderAddToCollection": "Dodaj v Zbirko", "HeaderAddUser": "Dodaj Uporabnika", - "HeaderAutomaticUpdates": "Samodejne Posodobitve", "HeaderEasyPinCode": "Enostavna Pin koda", "HeaderFrequentlyPlayed": "Pogosto Predvajano", "HeaderPaths": "Poti", @@ -27,7 +26,6 @@ "LabelPrevious": "Nazaj", "LabelSelectUsers": "Izberi uporabnike:", "LabelTimeLimitHours": "Časovna omejitev (ure):", - "LabelYourFirstName": "Ime:", "LabelYoureDone": "Koncano!", "MoreUsersCanBeAddedLater": "Uporabnike lahko dodate tudi kasneje preko Nadzorne plošče.", "OptionAllowMediaPlayback": "Dovoli predvajanje vsebin", @@ -50,10 +48,9 @@ "TabGenres": "Zvrsti", "TabLatest": "Zadnje", "TabMusic": "Glasba", - "TabMyPlugins": "Moji Vticniki", + "TabMyPlugins": "Moji dodatki", "TabNetworks": "Omrezja", "TabPassword": "Geslo", - "TabPlaylist": "Playlista", "TabProfile": "Profil", "TabProfiles": "Profili", "TabShows": "Oddaje", @@ -70,7 +67,7 @@ "AddToPlayQueue": "Dodaj v čakalno vrsto", "AddToPlaylist": "Dodaj na seznam predvajanja", "AddedOnValue": "Dodano {0}", - "AdditionalNotificationServices": "Prebrskaj katalog dodatkov za namestitev dodatnih storitev obveščanja.", + "AdditionalNotificationServices": "Prebrskajte katalog dodatkov za namestitev dodatnih storitev obveščanja.", "AirDate": "Datum predvajanja", "Aired": "Predvajano", "Albums": "Albumi", @@ -99,15 +96,10 @@ "HeaderContinueWatching": "Nadaljuj gledanje", "HeaderLiveTV": "TV v živo", "HeaderNextUp": "Sledi", - "HeaderRecordingGroups": "Zbirke posnetkov", - "LabelRunningTimeValue": "Čas trajanja: {0}", - "MessageApplicationUpdated": "Jellyfin Server je bil posodobljen", "Movies": "Filmi", - "AddItemToCollectionHelp": "Dodajte elemente v zbirke tako, da jih poiščete in jih z desnim klikom ali dotikom menija dodate v zbirko.", "AllowedRemoteAddressesHelp": "Z vejico ločen seznam IP naslovov ali IP/maska omrežij, ki jim je dovoljen oddaljeni dostop. Če pustite prazno, bodo dovoljeni vsi oddaljeni naslovi.", "AlwaysPlaySubtitles": "Vedno prikaži", "AlwaysPlaySubtitlesHelp": "Podnapisi, ki se ujemajo s prednostnim jezikom bodo naloženi ne glede na jezik zvoka.", - "AnamorphicVideoNotSupported": "Anamorfni video ni podprt", "AnyLanguage": "Poljubni jezik", "Anytime": "Kadarkoli", "AroundTime": "Okrog", @@ -117,17 +109,9 @@ "AspectRatio": "Razmerje stranic", "AttributeNew": "Novo", "Audio": "Zvok", - "AudioBitDepthNotSupported": "Bitna globina zvoka ni podprta", - "AudioBitrateNotSupported": "Bitna hitrost zvoka ni podprta", - "AudioChannelsNotSupported": "Zvočni kanali niso podprti", - "AudioCodecNotSupported": "Zvočni kodek ni podprt", - "AudioProfileNotSupported": "Zvočni profil ni podprt", - "AudioSampleRateNotSupported": "Frekvenca vzorčenja zvoka ni podprta", "Auto": "Samodejno", - "AutoBasedOnLanguageSetting": "Samodejno (na podlagi nastavitve jezika)", "Backdrop": "Ozadje", "Backdrops": "Ozadja", - "BestFit": "Najboljše prileganje", "BirthDateValue": "Rojen: {0}", "BirthLocation": "Kraj rojstva", "BirthPlaceValue": "Kraj rojstva: {0}", @@ -135,19 +119,14 @@ "Box": "Ovitek", "BoxRear": "Ovitek (zadnja stran)", "Browse": "Brskaj", - "BrowsePluginCatalogMessage": "Poišči razpoložljive dodatke v našem katalogu.", + "MessageBrowsePluginCatalog": "Poiščite razpoložljive dodatke v našem katalogu.", "BurnSubtitlesHelp": "Določi ali naj strežnik vžge podnapise pri prekodiranju videa. Izogibanje temu lahko občutno izboljša delovanje strežnika. Izberite Samodejno za vžig slikovnih formatov podnapisov (VOBSUB, PGS, SUB, IDX, ...) in nekaterih ASS oziroma SSA podnapisov.", - "ButtonAccept": "Sprejmi", "ButtonAdd": "Dodaj", - "MessageNamedServerConfigurationUpdatedWithValue": "Oddelek nastavitve strežnika {0} je bil posodobljen", "Photos": "Fotografije", "Playlists": "Seznami predvajanja", - "PluginInstalledWithName": "{0} je bil nameščen", - "PluginUninstalledWithName": "{0} je bil odstranjen", - "PluginUpdatedWithName": "{0} je bil posodobljen", "Songs": "Pesmi", "Sync": "Sinhroniziraj", - "AuthProviderHelp": "Izberi ponudnika preverjanja pristnosti za preverjanje gesla tega uporabnika.", + "AuthProviderHelp": "Izberite ponudnika preverjanja pristnosti za preverjanje gesla tega uporabnika.", "Banner": "Pasica", "Blacklist": "Črna lista", "ButtonAddMediaLibrary": "Dodaj knjižnico predstavnosti", @@ -160,7 +139,6 @@ "ButtonAudioTracks": "Zvočna sled", "ButtonBack": "Nazaj", "ButtonCancel": "Prekliči", - "ButtonChangeContentType": "Spremeni tip vsebine", "ButtonChangeServer": "Spremeni strežnik", "ButtonConnect": "Poveži", "ButtonDelete": "Izbriši", @@ -177,11 +155,9 @@ "ButtonHelp": "Pomoč", "ButtonHome": "Domov", "ButtonInfo": "Info", - "ButtonLearnMore": "Nauči se več", "ButtonLibraryAccess": "Dostop do knjižnic", "ButtonManualLogin": "Ročna prijava", "ButtonMore": "Več", - "ButtonMoreInformation": "Več informacij", "ButtonNetwork": "Omrežje", "ButtonNew": "Novo", "ButtonNextTrack": "Naslednja skladba", @@ -220,7 +196,6 @@ "ButtonTrailer": "Napovednik", "ButtonUninstall": "Odstrani", "ButtonUp": "Gor", - "ButtonViewWebsite": "Obišči spletno stran", "ButtonWebsite": "Spletna stran", "CancelRecording": "Prekini snemanje", "CancelSeries": "Prekini serijo", @@ -275,7 +250,7 @@ "DeleteImage": "Izbriši sliko", "Delete": "Izbiši", "DefaultMetadataLangaugeDescription": "To so vaše privzete nastavitve, ki jih lahko spreminjate za posamezno knjižnico.", - "DefaultErrorMessage": "Prišlo je do težave pri obdelavi zahteve. Poskusite ponovno kasneje.", + "ErrorDefault": "Prišlo je do težave pri obdelavi zahteve. Poskusite ponovno kasneje.", "Default": "Privzeto", "DeathDateValue": "Smrt: {0}", "DatePlayed": "Predvajano", @@ -304,7 +279,7 @@ "HeaderSelectServerCachePath": "Izberite pot predpomnjenih podatkov", "HeaderSelectServer": "Izberi strežnik", "HeaderSelectPath": "Izberi pot", - "HeaderSelectMetadataPathHelp": "Poiščite ali vnesite pot, v kateri želite shranjevati metapodatke. Datoteka mora omogočati pisanje.", + "HeaderSelectMetadataPathHelp": "Prebrskajte ali vnesite pot, ki jo želite uporabiti za metapodatke. Mapa mora dovoliti pisanje.", "HeaderSelectMetadataPath": "Izberi pot metapodatkov", "HeaderSelectCertificatePath": "Izberi pot certifikata", "HeaderSecondsValue": "{0} sekund", @@ -319,7 +294,7 @@ "HeaderRemoveMediaFolder": "Odstrani mapo predstavnosti", "HeaderRemoteControl": "Upravljanje na daljavo", "HeaderRecordingOptions": "Možnosti snemanja", - "HeaderProfileServerSettingsHelp": "Te vrednosti določajo, kako se bo Jellyfin strežnik predstavil napravi.", + "HeaderProfileServerSettingsHelp": "Te vrednosti določajo, kako se bo strežnik predstavil odjemalcem.", "HeaderProfileInformation": "Informacije o profilu", "HeaderProfile": "Profil", "HeaderPreferredMetadataLanguage": "Prednostni jezik metapodatkov", @@ -343,7 +318,7 @@ "HeaderMyMediaSmall": "Moja predstavnost (majhno)", "HeaderMyMedia": "Moja predstavnost", "HeaderMyDevice": "Moja naprava", - "HeaderMusicVideos": "Glasbeni videi", + "HeaderMusicVideos": "Videospoti", "HeaderMusicQuality": "Kvaliteta glasbe", "HeaderMovies": "Filmi", "HeaderMoreLikeThis": "Podobno", @@ -364,7 +339,7 @@ "HeaderLatestMovies": "Najnovejši filmi", "HeaderLatestMedia": "Najnovejša predstavnost", "HeaderLatestEpisodes": "Najnovejše epizode", - "HeaderKodiMetadataHelp": "Za omogočanje NFO metapodatkov uredite knjižnico v Jellyfin nastavitvah knjižnice v razdelku shranjevanje metapodatkov.", + "HeaderKodiMetadataHelp": "Za omogočanje NFO metapodatkov uredite knjižnico in poiščite možnost v razdelku shranjevanje metapodatkov.", "HeaderKeepSeries": "Ohrani serijo", "HeaderKeepRecording": "Ohrani posnetek", "HeaderInstall": "Namesti", @@ -410,7 +385,7 @@ "HeaderConnectToServer": "Poveži s strežnikom", "HeaderConfirmRevokeApiKey": "Prekliči API ključ", "HeaderConfirmProfileDeletion": "Potrdi brisanje profila", - "HeaderConfirmPluginInstallation": "Potrdi namestitev dodatka", + "HeaderConfirmPluginInstallation": "Potrdite namestitev dodatka", "HeaderConfigureRemoteAccess": "Nastavi oddaljen dostop", "HeaderCodecProfileHelp": "Profili kodeka določajo omejitve naprave pri predvajanju specifičnih kodekov. Če je omejitev dosežena bo predstavnost prekodirana, tudi če je kodek nastavljen za neposredno predvajanje.", "HeaderCodecProfile": "Profil kodeka", @@ -426,7 +401,7 @@ "HeaderAudioBooks": "Zvočne knjige", "HeaderAppearsOn": "Pojavi se", "HeaderApp": "Aplikacija", - "HeaderApiKeysHelp": "Zunanje aplikacije potrebujejo API ključ za komunikacijo z Jellyfin strežnikom. Ključi so izdani s prijavo z Jellyfin računom ali z ročno dodelitvijo ključa aplikaciji.", + "HeaderApiKeysHelp": "Zunanje aplikacije potrebujejo API ključ za komunikacijo s strežnikom. Ključi so izdani s prijavo z uporabniškim računom ali z ročno dodelitvijo ključa aplikaciji.", "HeaderApiKeys": "API ključi", "HeaderApiKey": "API ključ", "HeaderAllowMediaDeletionFrom": "Dovoli brisanje predstavnosti iz", @@ -443,7 +418,6 @@ "HeaderAccessScheduleHelp": "Ustvarite urnik dostopa in omejite dostop v določenih urah.", "HeaderAccessSchedule": "Urnik dostopa", "HardwareAccelerationWarning": "Omogočanje strojnega pospeševanja lahko povzroči nestabilnost v določenih okoljih. Zagotovite, da so vaš operacijski sistem in gonilniki posodobljeni. Če imate po omogočanju te nastavitve težave s predvajanjem videa, jo nastavite nazaj na brez.", - "HandledByProxy": "Upravlja reverse proxy", "HDPrograms": "HD programi", "EncoderPresetHelp": "Izberite hitrejšo vrednost za boljšo zmogljivost ali počasnejšo vrednost za boljšo kakovost.", "H264CrfHelp": "Faktor stalne hitrosti (CRF) je privzeta nastavitev kakovosti za kodirnik x264. Vrednosti lahko nastavite med 0 in 51, pri čemer nižje vrednosti dosežejo boljšo kakovost (na račun večjih velikosti datotek). Razumne vrednosti so med 18 in 28. Privzeta vrednost za x264 je 23, zato lahko to uporabite kot izhodišče.", @@ -458,9 +432,8 @@ "Fullscreen": "Celoten zaslon", "Friday": "Petek", "FormatValue": "Format: {0}", - "ForAdditionalLiveTvOptions": "Za dodatne ponudnike TV v živo kliknite zavihek storitve in poglejte možnosti, ki so na voljo.", "FolderTypeUnset": "Mešane vsebine", - "FolderTypeMusicVideos": "Glasbeni videi", + "FolderTypeMusicVideos": "Videospoti", "FolderTypeMusic": "Glasba", "FolderTypeMovies": "Filmi", "FolderTypeBooks": "Knjige", @@ -470,7 +443,7 @@ "FileNotFound": "Datoteka ni najdena.", "File": "Datoteka", "FetchingData": "Pridobivanje dodatnih podatkov", - "Features": "Lastnosti", + "Features": "Funkcije", "Favorite": "Priljubljeno", "FastForward": "Hitro naprej", "FFmpegSavePathNotFound": "Nismo mogli locirati FFmpeg na navedeni poti. FFprobe je prav tako zahtevan in mora biti v isti mapi. Ti komponenti sta običajno združeni skupaj v istem prenosu. Preverite pot in poskusite znova.", @@ -486,7 +459,7 @@ "EnableStreamLooping": "Samodejno ponavljaj prenose v živo", "DropShadow": "Senca", "EveryNDays": "Vsakih {0} dni", - "ErrorMessageStartHourGreaterThanEnd": "Čas konca mora biti večji od časa začetka.", + "ErrorStartHourGreaterThanEnd": "Čas konca mora biti večji od časa začetka.", "ErrorDeletingItem": "Prišlo je do težave pri brisanju predstavnosti s strežnika. Preverite ali ima Jellyfin strežnik dovoljenje za pisanje v mapi s predstavnostjo in poskusite znova.", "ErrorAddingXmlTvFile": "Prišlo je do težave pri dostopu do XMLTV datoteke. Preverite ali datoteka obstaja in poskusite znova.", "ErrorAddingMediaPathToVirtualFolder": "Prišlo je do težave pri dodajanju poti predstavnosti. Preverite ali je pot veljavna in da ima Jellyfin strežnik dovoljenja za dostop.", @@ -496,7 +469,7 @@ "EnableThemeVideosHelp": "Predvajaj tematske videe v ozadju med brskanjem knjižnice.", "EnableThemeVideos": "Tematski videi", "EnableThemeSongsHelp": "Predvajaj tematske pesmi v ozadju med brskanjem knjižnice.", - "EnableThemeSongs": "Tematske pesmi", + "EnableThemeSongs": "Glavne pesmi", "EnableStreamLoopingHelp": "Omogoči za prenose v živo ki vsebujejo zgolj nekaj sekund podatkov in jih je treba neprestano znova zahtevati. Če to ni potrebno lahko omogočanje povzroči težave.", "EnablePhotosHelp": "Fotografije bodo zaznane in prikazane skupaj z drugo predstavnostjo.", "EnablePhotos": "Prikaži fotografije", @@ -536,7 +509,7 @@ "HeaderTuners": "Sprejemniki", "HeaderTunerDevices": "Sprejemniki", "LabelAllowHWTranscoding": "Dovoli strojno pospešeno prekodiranje", - "HeaderSelectTranscodingPathHelp": "Izberite ali vnesite pot za začasne datoteka prekodiranja. Mapa mora dovoliti zapisovanje.", + "HeaderSelectTranscodingPathHelp": "Prebrskajte ali vnesite pot za datoteka prekodiranja. Mapa mora dovoliti pisanje.", "HeaderContainerProfileHelp": "Profil kontejnerja določa omejitve naprave pri predvajanju določenih formatov. Če je omejitev dosežena, bo predstavnost prekodirana, tudi če je format sicer nastavljen za neposredno predvajanje.", "HeaderTranscodingProfileHelp": "Dodaj profil prekodiranja za izbiro uporabljenih formatov, ko je potrebno prekodiranje.", "HeaderTranscodingProfile": "Profil prekodiranja", @@ -579,13 +552,11 @@ "LabelAlbumArtMaxHeight": "Največja višina slike albuma:", "LabelAlbumArtMaxHeightHelp": "Največja ločljivost slike albuma dostopna preko UPnP:albumArtURI.", "LabelAudioBitDepth": "Bitna globina zvoka:", - "LabelAllowServerAutoRestart": "Dovoli, da se strežnik samodejno znova zažene in uveljavi posodobitve", - "LabelAllowServerAutoRestartHelp": "Strežnik se bo samodejno zagnal zgolj v času mirovanja, ko ne bo aktivnih uporabnikov.", "LabelAllowedRemoteAddresses": "Filter oddaljenih IP naslovov:", "LabelAllowedRemoteAddressesMode": "Način filtra oddaljenih IP naslovov:", "LabelAppName": "Ime aplikacije", "LabelAppNameExample": "Primer: Sickbeard, Sonarr", - "LabelArtistsHelp": "Loči več z ;", + "LabelArtistsHelp": "Loči več izvajalcev s podpičjem.", "LabelAudio": "Zvok", "LabelAudioBitrate": "Bitna hitrost zvoka:", "LabelAudioChannels": "Kanali zvoka:", @@ -606,7 +577,6 @@ "LabelAlbumArtists": "Izvajalci albuma:", "LabelAll": "Vse", "LabelCustomRating": "Prilagojena ocena:", - "LabelDashboardTheme": "Tema nadzorne plošče strežnika:", "LabelBirthDate": "Datum rojstva:", "LabelCache": "Predpomnilnik:", "LabelCachePath": "Pot predpomnilnika:", @@ -618,13 +588,13 @@ "LabelCriticRating": "Ocena kritikov:", "LabelCustomCertificatePathHelp": "Pot do PKCS #12 datoteke, ki vsebuje certifikat in zasebni ključ, za omogočanje TLS povezave na domenah po meri.", "LabelCustomCss": "CSS po meri:", - "LabelCustomCssHelp": "Določite vaš lasten stil spletnega vmesnika.", + "LabelCustomCssHelp": "Določite vaš lasten slog spletnega vmesnika.", "LabelCustomDeviceDisplayName": "Prikazano ime:", "LabelCustomDeviceDisplayNameHelp": "Določi prikazano ime naprave. Pusti prazno za uporabo imena kot ga sporoči naprava sama.", "LabelDefaultScreen": "Privzeti zaslon:", "LabelDateAdded": "Datum dodajanja:", "LabelDateAddedBehavior": "Vedenje datuma dodajanja za nove vsebine:", - "LabelDateAddedBehaviorHelp": "V kolikor so prisotni ustrezni metapodatki bodo ti vedno uporabljeni najprej.", + "LabelDateAddedBehaviorHelp": "V kolikor so prisotni ustrezni metapodatki bodo ti vedno uporabljeni najprej.", "LabelDateTimeLocale": "Lokacija datuma/časa:", "LabelDefaultUser": "Privzeti uporabnik:", "LabelDeviceDescription": "Opis naprave", @@ -642,10 +612,10 @@ "LabelDay": "Dan:", "LabelDeathDate": "Datum smrti:", "LabelBitrate": "Bitna hitrost:", - "LabelBlastMessageInterval": "Interval sporočila o dostopnosti (sekunde)", + "LabelBlastMessageInterval": "Interval sporočila o dostopnosti", "LabelDefaultUserHelp": "Določi knjižnica katerega uporabnika bo prikazana na povezanih napravah. To lahko preglasite s profili za posamezno napravo.", "LabelEnableDlnaClientDiscoveryIntervalHelp": "Določi trajanje v sekundah med SSDP iskanji, ki jih izvede Jellyfin.", - "LabelEnableDlnaClientDiscoveryInterval": "Interval odkrivanja sprejemnikov (sekunde)", + "LabelEnableDlnaClientDiscoveryInterval": "Interval odkrivanja odjemalcev", "LabelEnableBlastAliveMessagesHelp": "Omogočite, če imajo UPnP naprave težave z zaznavanjem strežnika v omrežju.", "LabelEnableBlastAliveMessages": "Oddajaj sporočila o dostopnosti", "LabelEnableAutomaticPortMapHelp": "Avtomatično posreduje javna vrata na vašem usmerjevalnuku z lokalnimi vrati strežnika preko UPnP. To ne deluje z nekaterimi usmerjevalniki ali omrežnimi nastavitvami. Spremembe bodo uveljavljene po ponovnem zagonu strežnika.", @@ -660,10 +630,10 @@ "LabelDisplayOrder": "Vrstni red prikaza:", "LabelDisplayName": "Prikazano ime:", "LabelDisplayMode": "Način prikaza:", - "LabelBindToLocalNetworkAddressHelp": "Neobvezno. Preglasi lokalni IP naslov za povezavo s HTTP strežnikom. V kolikor pustite prazno se strežnik poveže z vsemi možnimi naslovi. Sprememba vrednosti zahteva ponovni zagon Jellyfin strežnika.", + "LabelBindToLocalNetworkAddressHelp": "Preglasi lokalni IP naslov za HTTP strežnik. V kolikor pustite prazno se strežnik poveže z vsemi možnimi naslovi. Sprememba vrednosti zahteva ponovni zagon Jellyfin strežnika.", "InstallingPackage": "Nameščanje {0} (različica {1})", - "ImportMissingEpisodesHelp": "Če je omogočeno, bodo podatki o manjkajočih epizodah dodani v Jellyfin bazo podatkov in prikazani znotraj sezon in serij. To lahko občutno podaljša uvoz v knjižnjico.", - "ImportFavoriteChannelsHelp": "Če je omogočeno, bodo uvoženi zgolj kanali, ki so na sprejemniku označeni kot priljubljeni.", + "ImportMissingEpisodesHelp": "Podatki o manjkajočih epizodah bodo dodani v bazo podatkov in prikazani znotraj sezon in serij. To lahko občutno podaljša čas uvoza v knjižnjico.", + "ImportFavoriteChannelsHelp": "Uvoženi bodo zgolj programi, ki so na sprejemniku označeni kot priljubljeni.", "LabelEnableDlnaServerHelp": "Omogoči UPnP napravam v omrežju da brskajo in predvajajo vsebine.", "LabelFolder": "Mapa:", "LabelIconMaxWidth": "Največja širina ikon:", @@ -682,9 +652,9 @@ "LabelHardwareAccelerationTypeHelp": "Strojno pospeševanje zahteva dodatno konfiguracijo.", "LabelHomeNetworkQuality": "Kvaliteta v domačem omrežju:", "LabelHttpsPort": "Lokalna HTTPS vrata:", - "LabelHttpsPortHelp": "Vrata TCP s katerimi se poveže Jellyfin HTTPS strežnik.", + "LabelHttpsPortHelp": "Vrata TCP za HTTPS strežnik.", "LabelLocalHttpServerPortNumber": "Lokalna HTTP vrata:", - "LabelLocalHttpServerPortNumberHelp": "Vrata TCP s katerimi se poveže Jellyfin HTTP strežnik.", + "LabelLocalHttpServerPortNumberHelp": "Vrata TCP za HTTP strežnik.", "LabelLockItemToPreventChanges": "Zakleni ta element in prepreči spreminjanje v prihodnosti", "LabelMetadataReadersHelp": "Uredi želene lokalne vire metapodatkov po prioriteti. Uporabljena bo prva najdena datoteka.", "LabelMinResumeDuration": "Najkrajša dolžina za nadaljevanje:", @@ -694,7 +664,7 @@ "LabelEnableDlnaDebugLogging": "Omogoči beleženje napak DLNA", "LabelEnableDlnaDebugLoggingHelp": "Ustvari podrobne dnevnike dogodkov. Uporabi zgolj za potrebe odpravljanja težav.", "LabelEnableDlnaPlayTo": "Omogoči DLNA predvajanje na", - "LabelEnableDlnaPlayToHelp": "Zaznaj naprave znotraj omrežja in omogoči upravljanje z njimi.", + "LabelEnableDlnaPlayToHelp": "Zaznaj naprave znotraj omrežja in omogoči oddaljeno upravljanje z njimi.", "LabelEnableDlnaServer": "Omogoči DLNA strežnik", "LabelEnableHardwareDecodingFor": "Omogoči strojno pospešeno predvajanje za:", "LabelEnableRealtimeMonitor": "Omogoči spremljanje v realnem času", @@ -707,7 +677,7 @@ "LabelBaseUrl": "Osnovni URL:", "LabelExtractChaptersDuringLibraryScan": "Izvleči slike poglavij med preiskovanjem knjižnjice", "LabelFormat": "Format:", - "LabelServerNameHelp": "To ime bo uporabljeno za identifikacijo strežnika in je privzeto enako imenu računalnika.", + "LabelServerNameHelp": "To ime bo uporabljeno za identifikacijo strežnika in je privzeto enako imenu strežnika.", "LabelGroupMoviesIntoCollectionsHelp": "Pri prikazovanju seznama filmov bodo filmi iz iste zbirke prikazani kot en združen element.", "LabelH264Crf": "H264 kodiranje CRF:", "LabelIconMaxHeight": "Največja višina ikone:", @@ -761,7 +731,7 @@ "LabelKodiMetadataEnablePathSubstitutionHelp": "Omogoči zamenjavo poti za poti slik glede na nastavitve zamenjave poti strežnika.", "LabelKodiMetadataSaveImagePaths": "Shrani poti slik znotraj nfo datotek", "LabelMetadataDownloadersHelp": "Omogoči in uredi želene vire metapodatkov po prioriteti. Viri z nižjo prioriteto bodo uporabljeni zgolj za dopolnjevanje manjkajočih informacij.", - "LabelBaseUrlHelp": "Doda podnaslov po meri na konec URL-ja strežnika. Na primer: http://example.com/<baseurl>", + "LabelBaseUrlHelp": "Dodjte podnaslov po meri na konec URL-ja strežnika. Na primer: http://example.com/<baseurl>", "LabelExtractChaptersDuringLibraryScanHelp": "Ustvari slike poglavij med uvozom videov pri preiskovanju knjižnjice. Sicer bodo ustvarjene med načrtovanim opravilom, kar omogoča hitrejše preiskovanje knjižnjice.", "LabelForgotPasswordUsernameHelp": "Vpišite svoje uporabniško ime, v kolikor se ga spomnite.", "LabelInNetworkSignInWithEasyPasswordHelp": "Uporabi enostavno PIN kodo za prijavo v naprave znotraj lokalnega omrežja. Vaše geslo bo potrebno zgolj za prijave zunaj domačega omrežja. Če pustite prazno, za prijavo v domačem omrežju omrežju ne boste potrebovali gesla.", @@ -776,7 +746,7 @@ "Small": "Majhno", "SmartSubtitlesHelp": "Podnapisi, ki se ujemajo z želenim jezikom, bodo naloženi, ko je zvok v tujem jeziku.", "SubtitleAppearanceSettingsDisclaimer": "Te nastavitve ne vplivajo na grafične podnapise (PGS, DVD, itd.) ali ASS/SSA podnapise, ki imajo vdelan svoj lasten slog.", - "PluginInstalledMessage": "Dodatek je bil uspešno nameščen. Za uveljavitev sprememb je potreben ponovni zagon Jellyfin strežnika.", + "MessagePluginInstalled": "Dodatek je bil uspešno nameščen. Za uveljavitev sprememb je potreben ponovni zagon Jellyfin strežnika.", "MessageNoMovieSuggestionsAvailable": "Trenutno ni na voljo nobenih predlogov za filme. Začnite gledati in ocenjevati vaše filme, ter se nato vrnite sem in si oglejte predloge.", "LabelSelectFolderGroups": "Samodejno združi vsebine iz spodnjih map v poglede kot so Filmi, Glasba in TV:", "TabPlayback": "Predvajanje", @@ -824,7 +794,6 @@ "NewCollectionHelp": "Zbirke vam omogočajo ustvarjanje prilagojenih skupin filmov in drugih vsebin.", "TheseSettingsAffectSubtitlesOnThisDevice": "Te nastavitve vplivajo na podnapise na tej napravi", "PlaybackData": "Podatki o predvajanju", - "PreferredNotRequired": "Prednostno, vendar ni potrebno", "PlayNext": "Predvajaj naslednje", "PlayNextEpisodeAutomatically": "Samodejno predvajaj naslednjo epizodo", "Smaller": "Manjše", @@ -855,7 +824,6 @@ "LabelOptionalNetworkPathHelp": "V primeru, da je mapa deljena v vašem omrežju, lahko Jellyfin deli omrežno pot z ostalimi napravami in jim omogoči neposreden dostop do vsebin. Na primer {0} ali {1}.", "LabelRemoteClientBitrateLimitHelp": "Neobvezna omejitev bitne hitrosti na posamezno predvajanje za vse naprave izven domačega omrežja. S tem lahko preprečite, da bi naprave zahtevale višjo bitno hitrost predvajanja, kot jo lahko prenese vaše omrežje. To lahko poveča obremenitev CPU-ja, saj bo morda potrebno sprotno prekodiranje za zmanjšanje bitne hitrosti.", "LanNetworksHelp": "Z vejico ločen seznam IP naslovov ali IP/maska omrežji, ki bodo upoštevana kot lokalna pri uveljavljanju omejitev pasovne širine. Če nastavite, se bodo vsi ostali naslovi upoštevali kot zunanji in bodo predmet omejitve pasovne širine. Če pustite prazno, bo kot lokalno omrežje upoštevano zgolj omrežje strežnika.", - "MessageDirectoryPickerInstruction": "Omrežne poti lahko vnesete ročno, v kolikor gumb Omrežje ne uspe najti vaših naprav. Primer {0} ali {1}.", "MessageForgotPasswordInNetworkRequired": "Za začetek ponastavitve gesla prosimo poskusite znova v vašem domačem omrežju.", "OptionReportByteRangeSeekingWhenTranscodingHelp": "To je potrebno za nekatere naprave, ki slabo iščejo po času.", "OptionRequirePerfectSubtitleMatch": "Prenesi zgolj podnapise, ki se popolnoma ujemajo z mojimi video datotekami", @@ -886,7 +854,7 @@ "PasswordMatchError": "Geslo in potrditev gesla se moreta ujemati.", "PasswordResetComplete": "Geslo je bilo ponastavljeno.", "PasswordResetConfirmation": "Ali ste prepričani, da želite ponastaviti geslo?", - "PasswordResetHeader": "Ponastavi geslo", + "HeaderResetPassword": "Ponastavi geslo", "PasswordResetProviderHelp": "Izberite ponudnika ponastavitve gesla, ki bo uporabljen, ko bo ta uporabnik zahteval ponastavitev gesla", "PasswordSaved": "Geslo shranjeno.", "PerfectMatch": "Popolno ujemanje", @@ -901,13 +869,11 @@ "PleaseSelectTwoItems": "Prosimo izberite vsaj dva elementa.", "Premieres": "Premiere", "Producer": "Producent", - "QueueAllFromHere": "Dodaj vse tukaj v čakalno vrsto", "Premiere": "Premiera", "OptionRuntime": "Trajanje", "OptionSaturday": "Sobota", "MediaInfoLayout": "Razporeditev", "Like": "Všeč mi je", - "LinksValue": "Povezave: {0}", "LabelPlayDefaultAudioTrack": "Predvajaj privzeti zvočni posnetek ne glede na jezik", "LabelOriginalTitle": "Izvirni naslov:", "LabelRefreshMode": "Način osveževanja:", @@ -980,7 +946,6 @@ "MessageNoAvailablePlugins": "Dodatki niso na voljo.", "MessageInvalidUser": "Napačno uporabniško ime ali geslo. Prosimo poskusite znova.", "MessageInvalidForgotPasswordPin": "Vnesena je bila napačna ali pretečena PIN koda. Prosimo, poskusite znova.", - "MessageInstallPluginFromApp": "Ta dodatek mora biti nameščen znotraj aplikacije, v kateri ga nameravate uporabljati.", "MessageImageTypeNotSelected": "Prosimo izberite tip slike v spustnem meniju.", "MessageImageFileTypeAllowed": "Podprte so zgolj JPEG in PNG datoteke.", "MessageForgotPasswordFileCreated": "Sledeča datoteka je bila ustvarjena na vašem strežniku in vsebuje navodila za nadaljevanje:", @@ -1010,7 +975,6 @@ "MediaInfoStreamTypeEmbeddedImage": "Vdelana sličica", "MediaInfoStreamTypeData": "Podatki", "MediaInfoStreamTypeAudio": "Zvok", - "MediaInfoSoftware": "Programska oprema", "MediaInfoTimestamp": "Časovni žig", "MediaInfoSize": "Velikost", "MediaInfoSampleRate": "Vzorčna hitrost", @@ -1080,7 +1044,6 @@ "OptionHasTrailer": "Napovednik", "OptionFriday": "Petek", "OptionEveryday": "Vsak dan", - "OptionEnableAutomaticServerUpdates": "Omogoči samodejno posodabljanje strežnika", "OptionDvd": "DVD", "OptionDownloadMenuImage": "Meni", "OptionDownloadLogoImage": "Logotip", @@ -1097,7 +1060,7 @@ "OptionAdminUsers": "Skrbniki", "Option3D": "3D", "NumLocationsValue": "{0} mape", - "NoPluginConfigurationMessage": "Ta dodatek nima nobenih nastavitev.", + "MessageNoPluginConfiguration": "Ta dodatek nima nobenih nastavitev.", "No": "Ne", "News": "Novice", "NewEpisodesOnly": "Samo nove epizode", @@ -1109,7 +1072,6 @@ "Mute": "Utišaj", "MoveLeft": "Premakni levo", "MoveRight": "Premakni desno", - "LabelSkin": "Preobleka:", "LabelSize": "Velikost:", "LabelSimultaneousConnectionLimit": "Omejitev števila sočasnih predvajanj:", "LabelServerName": "Ime strežnika:", @@ -1118,7 +1080,6 @@ "LabelSeriesRecordingPath": "Pot za snemanje serij (neobvezno):", "LabelSerialNumber": "Serijska številka", "LabelSendNotificationToUsers": "Pošlji obvestilo na:", - "LabelSecureConnectionsMode": "Način varne povezave:", "LabelSeasonNumber": "Številka sezone:", "LabelScreensaver": "Ohranjevalnik zaslona:", "LabelSaveLocalMetadataHelp": "Shranjevanje slik v mape predstavnosti omogoča lažji dostop in urejanje slik.", @@ -1149,7 +1110,6 @@ "LabelNumberOfGuideDays": "Število dni vodiča za prenos:", "LabelNumber": "Številka:", "LabelNotificationEnabled": "Omogoči to obvestilo", - "CopyStreamURLError": "Pri kopiranju naslova URL je prišlo do napake.", "AskAdminToCreateLibrary": "Prosite skrbnika, da ustvari knjižnico.", "AllowFfmpegThrottlingHelp": "Ko je prekodiranja dovolj pred mestom predvajanja se proces ustavi, da bo porabljal manj sredstev. To je najbolj uporabno pri gledanju brez pogostega premikanja mesta predvajanja. Če naletite na težave s predvajanjem onemogočite to možnost.", "AllowFfmpegThrottling": "Zaviraj prekodiranje", @@ -1160,7 +1120,6 @@ "LabelStartWhenPossible": "Začni, ko je mogoče:", "LabelSportsCategories": "Športne kategorije:", "LabelSource": "Vir:", - "LabelSoundEffects": "Zvočni učinki:", "LabelSkipIfGraphicalSubsPresentHelp": "Ohranjanje besedilnih različic podnapisov omogoča učinkovitejše predvajanje in zmanjša potrebo po prekodiranju.", "LabelTriggerType": "Tip sprožilca:", "LabelTranscodingVideoCodec": "Video kodek:", @@ -1186,7 +1145,7 @@ "ValueTimeLimitSingleHour": "Časovna omejitev: 1 ura", "ValueTimeLimitMultiHour": "Časovna omejitev: {0} ur", "ValueSongCount": "{0} pesmi", - "ValueMusicVideoCount": "{0} glasbenih videov", + "ValueMusicVideoCount": "{0} videospotov", "ValueMovieCount": "{0} filmov", "ValueMinutes": "{0} minut", "ValueEpisodeCount": "{0} epizod", @@ -1194,7 +1153,7 @@ "ValueSeconds": "{0} sekund", "ValueOneSong": "1 skladba", "ValueOneSeries": "1 serija", - "ValueOneMusicVideo": "1 glasbeni video", + "ValueOneMusicVideo": "1 videospot", "ValueOneMovie": "1 film", "ValueOneEpisode": "1 epizoda", "ValueOneAlbum": "1 album", @@ -1219,8 +1178,6 @@ "LibraryAccessHelp": "Izberite knjižnice, ki bodo deljenje s tem uporabnikom. Upravitelji bodo lahko urejali metapodatke z upraviteljem metapodatkov.", "LeaveBlankToNotSetAPassword": "To polje lahko pustite prazno za uporabo brez gesla.", "LearnHowYouCanContribute": "Poglejte, kako lahko pomagate.", - "LaunchWebAppOnStartupHelp": "Ob prvem zagonu strežnika se bo v privzetem brskalniku odprl spletni vmesnik. To se ne bo zgodilo pri uporabi možnosti za ponovni zagon.", - "LaunchWebAppOnStartup": "Ob zagonu strežnika zaženi spletni vmesnik", "LabelffmpegPathHelp": "Pot do datoteke aplikacije ffmpeg ali mape, ki jo vsebuje.", "LabelffmpegPath": "Pot FFmpeg:", "LabelZipCode": "Poštna številka:", @@ -1259,8 +1216,6 @@ "LabelSyncPlayPlaybackDiff": "Razlika v času predvajanja:", "MillisecondsUnit": "ms", "LabelSyncPlayTimeOffset": "Zamik časa na strežniku:", - "EnableFastImageFadeInHelp": "Uporabi hitrejše animacije in prehode", - "EnableFastImageFadeIn": "Hitrejše animacije", "LabelRequireHttpsHelp": "Če je označeno, bo strežnik samodejno preusmeril vse HTTP zahteva na HTTPS. Nima vpliva, če strežnik ne posluša na HTTPS.", "LabelRequireHttps": "Zahtevaj HTTPS", "HeaderInstantMix": "Hitri miks", @@ -1292,7 +1247,7 @@ "HeaderItems": "Vsebine", "EnableDecodingColorDepth10Vp9": "Omogoči strojno dekodiranje za 10-bit VP9", "EnableDecodingColorDepth10Hevc": "Omogoči strojno dekodiranje za 10-bit HEVC", - "LabelEnableHttpsHelp": "Omogoči strežniku, da posluša na nastavljenih HTTPS vratih. Za uveljavitev te možnosti mora biti nastavljen tudi veljaven certifikat.", + "LabelEnableHttpsHelp": "Poslušaj na nastavljenih HTTPS vratih. Za uveljavitev te možnosti mora biti nastavljen tudi veljaven certifikat.", "LabelEnableHttps": "Omogoči HTTPS", "LabelEmbedAlbumArtDidlHelp": "Nekatere naprave delujejo bolje s tem načinom pridobivanja grafike albuma. Pri drugih predvajanje morda ne bo delovalo v tem načinu.", "MessageReenableUser": "Za ponovno omogočanje poglejte spodaj", @@ -1304,7 +1259,6 @@ "LabelRepositoryUrl": "URL repozitorija", "HeaderNewRepository": "Nov repozitorij", "MessageNoRepositories": "Ni repozitorijev.", - "MessageUnauthorizedUser": "Trenutno nimate dovoljenja za dostop do tega strežnika. Kontaktirajte skrbnika strežnika za več informacij.", "MediaInfoAspectRatio": "Razmerje stranic", "MediaInfoAnamorphic": "Anamorfno", "MaxParentalRatingHelp": "Vsebine z višjo oceno bodo za tega uporabnika skrite.", @@ -1320,7 +1274,6 @@ "LabelUserAgent": "Uporabniški agent:", "EnableFasterAnimationsHelp": "Uporabi hitrejše animacije in prehode", "EnableFasterAnimations": "Hitrejše animacije", - "LabelNightly": "Nestabilna", "LabelStable": "Stabilna", "LabelChromecastVersion": "Različica Chromecast", "LabelLibraryPageSizeHelp": "Nastavi število prikazanih vsebin na strani knjižnice. Nastavite na 0 za neskončno dolgo stran.", @@ -1343,7 +1296,6 @@ "SaveChanges": "Shrani spremembe", "Save": "Shrani", "Saturday": "sobota", - "RunAtStartup": "Zaženi ob zagonu", "Rewind": "Previj nazaj", "ReplaceExistingImages": "Zamenjaj obstoječe slike", "ReplaceAllMetadata": "Zamenjaj vse metapodatke", @@ -1354,7 +1306,6 @@ "RememberMe": "Zapomni si me", "RecommendationDirectedBy": "Režija", "Person": "Oseba", - "OtherArtist": "Drugi izvajalci", "OptionProfileVideo": "Video", "OptionPoster": "Plakat", "OptionNone": "Nič", @@ -1392,5 +1343,39 @@ "MessageConfirmAppExit": "Ali želite končati?", "LabelWeb": "Splet:", "LabelLineup": "Postava:", - "BoxSet": "Komplet" + "BoxSet": "Komplet", + "TabMetadata": "Metapodatki", + "TabInfo": "Informacije", + "TabGuide": "Vodič", + "TabFavorites": "Priljubljeni", + "TabEpisodes": "Epizode", + "TabDisplay": "Prikaz", + "TabDirectPlay": "Neposredno predvajanje", + "TabDevices": "Naprave", + "TabCodecs": "Kodeki", + "TabChannels": "Programi", + "OptionRegex": "Regex", + "OptionProtocolHls": "HTTP pretakanje v živo", + "OptionProfileVideoAudio": "Video zvok", + "ThemeSongs": "Glavne pesmi", + "TabTranscoding": "Prekodiranje", + "TabStreaming": "Pretakanje", + "TabSongs": "Skladbe", + "TabSettings": "Nastavitve", + "TabServer": "Strežnik", + "TabSeries": "Serije", + "TabScheduledTasks": "Načrtovana opravila", + "TabResumeSettings": "Nadaljuj", + "HeaderUninstallPlugin": "Odstrani dodatek", + "UninstallPluginConfirmation": "Ali ste prepričan, da želite odstraniti {0}?", + "ServerRestartNeededAfterPluginInstall": "Po namestitvi dodatka bo potreben ponoven zagon jellyfin strežnika.", + "TabResponses": "Odzivi", + "TabRecordings": "Posnetki", + "TabPlugins": "Dodatki", + "TabPlaylists": "Seznami predvajanja", + "TabOther": "Ostalo", + "TabNotifications": "Obvestila", + "TabNfoSettings": "Nastavitve NFO", + "TabMusicVideos": "Videospoti", + "TabMovies": "Filmi" } diff --git a/src/strings/sr.json b/src/strings/sr.json index d1ed50e87b..4682f060f1 100644 --- a/src/strings/sr.json +++ b/src/strings/sr.json @@ -27,7 +27,6 @@ "AddToPlaylist": "Додај на листу пуштања", "AddToPlayQueue": "Додај у ред за пуштање", "AddToCollection": "Додај у колекцију", - "AddItemToCollectionHelp": "Додајте ставке у колекцију претрагом па затим десним кликом у менију изаберите да додате у колекцију.", "Add": "Додај", "Actor": "Глумац", "AccessRestrictedTryAgainLater": "Приступ је тренутно ограничен. Покушајте поново касније.", @@ -42,7 +41,6 @@ "ButtonMore": "Више", "ButtonManualLogin": "Ручни логин", "ButtonLibraryAccess": "Приступ библиотеци", - "ButtonLearnMore": "Научи више", "ButtonInfo": "Информације", "ButtonHome": "Почетна страна", "ButtonHelp": "Помоћ", @@ -70,7 +68,7 @@ "ButtonAddMediaLibrary": "Додај каталог медија", "ButtonAddImage": "Додај слику", "ButtonAdd": "Додај", - "BrowsePluginCatalogMessage": "Претражуј наш каталог доступних додатака", + "MessageBrowsePluginCatalog": "Претражуј наш каталог доступних додатака", "Browse": "Изабери", "BoxRear": "Омот (позади)", "Box": "Омот", @@ -78,7 +76,6 @@ "BirthPlaceValue": "Место рођења: {0}", "BirthLocation": "Место рођења", "BirthDateValue": "Рођен", - "AutoBasedOnLanguageSetting": "Аутоматски (зависи од подешавања језика)", "Audio": "Звук", "AttributeNew": "Ново", "AroundTime": "Около", @@ -103,7 +100,6 @@ "DateAdded": "Датум додавања", "CustomDlnaProfilesHelp": "Направите прилагођени профил да бисте циљали на нови уређај или прегазили системски профил.", "CriticRating": "Оцена критике", - "CopyStreamURLError": "Десила се грешка приликом копирања адресе.", "CopyStreamURLSuccess": "Адреса копирана успешно.", "CopyStreamURL": "Копирајте адресу стрим-а", "Continuing": "Наставља", @@ -130,7 +126,6 @@ "CancelSeries": "Откажи серију", "CancelRecording": "Откажи снимање", "ButtonWebsite": "Веб сајт", - "ButtonViewWebsite": "Погледајте веб сајт", "ButtonUp": "Горе", "ButtonUninstall": "Деинсталирај", "ButtonTrailer": "Трејлер", diff --git a/src/strings/sv.json b/src/strings/sv.json index 0ca152dcc5..ef4e849e40 100644 --- a/src/strings/sv.json +++ b/src/strings/sv.json @@ -2,7 +2,6 @@ "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 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", @@ -33,7 +32,6 @@ "AspectRatio": "Bildförhållande", "AttributeNew": "Ny", "Audio": "Ljud", - "AutoBasedOnLanguageSetting": "Automatisk (baserad på språkinställning)", "Backdrop": "Fondbild", "Backdrops": "Fondbilder", "Banner": "Banderoll", @@ -45,7 +43,7 @@ "Box": "Omslag", "BoxRear": "Omslag (baksida)", "Browse": "Bläddra", - "BrowsePluginCatalogMessage": "Besök katalogen för att se tillgängliga tillägg.", + "MessageBrowsePluginCatalog": "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, ...) och vissa ASS/SSA-undertexter.", "ButtonAdd": "Lägg till", "ButtonAddMediaLibrary": "Lägg till mediabibliotek", @@ -74,7 +72,6 @@ "ButtonGotIt": "Ok", "ButtonHelp": "Hjälp", "ButtonHome": "Hem", - "ButtonLearnMore": "Läs mer", "ButtonLibraryAccess": "Biblioteksåtkomst", "ButtonManualLogin": "Manuell inloggning", "ButtonMore": "Mer", @@ -118,7 +115,6 @@ "ButtonSubtitles": "Undertexter", "ButtonUninstall": "Avinstallera", "ButtonUp": "Upp", - "ButtonViewWebsite": "Gå till hemsidan", "ButtonWebsite": "Hemsida", "CancelRecording": "Avbryt inspelning", "CancelSeries": "Avbryt serie", @@ -145,7 +141,7 @@ "DatePlayed": "Senast visad", "DeathDateValue": "Död: {0}", "Default": "Standard", - "DefaultErrorMessage": "Ett fel uppstd vid begäran. Försök igen senare.", + "ErrorDefault": "Ett fel uppstd vid begäran. Försök igen senare.", "DefaultSubtitlesHelp": "Undertexter visas baserat på standardspråk och tvingande undertexter i den inbäddade metadatan. Förvalsspråk kommer väljas när fler val är möjliga.", "Delete": "Ta bort", "DeleteDeviceConfirmation": "Är du säker på att du vill ta bort den här enheten? Den kommer att dyka upp igen nästa gång en användare kopplar upp sig med den.", @@ -179,7 +175,7 @@ "Download": "Ladda ned", "DownloadsValue": "Nedladdningar: {0}", "DrmChannelsNotImported": "Kanaler med DRM kommer inte att importeras.", - "DropShadow": "Mjuk", + "DropShadow": "Skugga", "EasyPasswordHelp": "Din enkla pin-kod används för att logga in offline på klienter som stödjer det, och kan också användas för enkel inloggning från ditt nätverk.", "Edit": "Ändra", "EditImages": "Ändra bilder", @@ -208,7 +204,7 @@ "ErrorAddingTunerDevice": "Det gick inte att lågga till den här TV-mottagaren. Säkerställ att den går att nå och försök igen.", "ErrorDeletingItem": "Det gick inte att ta bort det här objektet från Jellyfin-servern. Kontrollera att Jellyfin-servern har skrivrättigheter till media-mappen och försök igen.", "ErrorGettingTvLineups": "Ett fel uppstod vid nedladdningen utav TV-sortimentet. Se till så att uppgifterna stämmer och försök igen.", - "ErrorMessageStartHourGreaterThanEnd": "Sluttiden måste vara senare än starttiden.", + "ErrorStartHourGreaterThanEnd": "Sluttiden måste vara senare än starttiden.", "ErrorPleaseSelectLineup": "Välj en lineup och försök igen. Om inga lineups finns tillgängliga, kolla så att användarnamn, lösenord och postnummer stämmer.", "ErrorSavingTvProvider": "Ett fel uppstod när TV-tjänsten skulle sparas. Se till att den går att nå och försök igen senare.", "EveryNDays": "Var {0}:e dag", @@ -242,7 +238,6 @@ "H264CrfHelp": "Constant Rate Factor (CRF) är kvalitetsinställningen för x264-kodeken. Du kan använda värden mellan 0 och 51, där lägre värden resulterar i bättre kvalitet (på bekostnad av större filstorlekar). Rimliga värden ligger mellan 18 och 28. Det förvalda värdet är 23, som du kan använda som utgångspunkt.", "EncoderPresetHelp": "Välj ett snabbare värde för öka prestandan, eller ett långsammare värde för att utöka kvaliten.", "HDPrograms": "HD-program", - "HandledByProxy": "Hanteras av reverse proxy", "HardwareAccelerationWarning": "Aktivering av hårdvaruacceleration kan innebära instabilitet i vissa miljöer. Säkerställ att ditt operativsystem och dina grafikdrivrutiner är helt uppdaterade. Om du har problem med uppspelning när detta är på behöver du ändra tillbaka inställningen till Auto.", "HeaderAccessSchedule": "Schema för åtkomst", "HeaderAccessScheduleHelp": "Skapa ett schema för att begränsa åtkomsten till vissa tider.", @@ -264,7 +259,6 @@ "HeaderApiKeysHelp": "Externa applikationer behöver en API-nyckel för att kommunicera med Jellyfin servern. Nycklar skapas genom att logga in med ett Jellyfin-konto eller genom att manuellt skapa en nyckel till applikationen.", "HeaderAudioBooks": "Ljudböcker", "HeaderAudioSettings": "Ljudinställningar", - "HeaderAutomaticUpdates": "Automatiska uppdateringar", "HeaderBlockItemsWithNoRating": "Blockera innehåll med ingen eller okänd åldersgräns:", "HeaderBooks": "Böcker", "HeaderCancelRecording": "Avbryt inspelning", @@ -473,8 +467,6 @@ "LabelAlbumArtists": "Albumartist:", "LabelAll": "Alla", "LabelAllowHWTranscoding": "Tillåt hårdvaruomkodning", - "LabelAllowServerAutoRestart": "Tillåt att servern startas om automatiskt efter uppdateringar", - "LabelAllowServerAutoRestartHelp": "Servern startas om endast då inga användare är inloggade.", "LabelAppName": "Appens namn", "LabelAppNameExample": "Exempel: Sickbeard, Sonarr", "LabelArtists": "Artister:", @@ -509,7 +501,6 @@ "LabelCustomDeviceDisplayName": "Visningsnamn:", "LabelCustomDeviceDisplayNameHelp": "Ange ett anpassat enhetsnamn. Lämna blankt för att använda det namn enheten själv rapporterar.", "LabelCustomRating": "Anpassad åldersgräns:", - "LabelDashboardTheme": "Kontrollpanelstema:", "LabelDateAdded": "Inlagd den:", "LabelDateAddedBehavior": "Hantering av datum för nytt innehåll:", "LabelDateAddedBehaviorHelp": "Om ett metadatavärde finns kommer det att användas i stället för dessa.", @@ -539,7 +530,7 @@ "LabelEmbedAlbumArtDidl": "Bädda in omslagsbilder i Didl", "LabelEmbedAlbumArtDidlHelp": "Vissa enheter föredrar den här metoden att ta fram omslagsbilder. Andra kanske avbryter avspelningen om detta val är aktiverat.", "LabelEnableAutomaticPortMap": "Aktivera automatisk koppling av portar", - "LabelEnableAutomaticPortMapHelp": "Automatisk länkning av publik port på routern och lokal port på servern via UPnP. Detta kanske inte fungerar med alla routrar och nätverks konfigurationer. Obs. Ingenting kommer att ändras förrän servern startats om.", + "LabelEnableAutomaticPortMapHelp": "För automatiskt vidare publika portar från din router till lokala portar på din server via UPnP. Detta fungerar inte med alla router modeller eller nätverkskonfigurationer. Ändringar kommer inte appliceras inte tills server startats om.", "LabelEnableBlastAliveMessages": "Skicka ut \"jag lever\"-meddelanden", "LabelEnableBlastAliveMessagesHelp": "Aktivera detta om andra UPnP-enheter på nätverket har problem att upptäcka servern.", "LabelEnableDlnaClientDiscoveryInterval": "Intervall för upptäckt av klienter (i sekunder)", @@ -660,7 +651,7 @@ "LabelNumberOfGuideDays": "Antal dagars tablå att hämta:", "LabelNumberOfGuideDaysHelp": "Hämtning av en längre periods tablå ger möjlighet att boka inspelningar och se program längre fram i tiden, men ger längre nedladdningstid. \"Auto\" väljer baserat på antalet kanaler.", "LabelOptionalNetworkPath": "(Valfri) Delad nätverksmapp:", - "LabelOptionalNetworkPathHelp": "Om denna mappen delas på ditt nätverk, kan den delade sökvägen tillåta Jellyfin-appar på andra enheter att streama mediafiler direkt.", + "LabelOptionalNetworkPathHelp": "Om denna mappen delas på ditt nätverk, kan den delade sökvägen tillåta Jellyfin-appar på andra enheter att streama mediafiler direkt. Som exempel, {0} eller {1}.", "LabelOriginalAspectRatio": "Ursprungligt bildförhållande:", "LabelOriginalTitle": "Original titel:", "LabelOverview": "Synopsis:", @@ -717,7 +708,6 @@ "LabelServerHost": "Värd:", "LabelServerHostHelp": "192.168.1.100:8096 eller https://min.server.com", "LabelSimultaneousConnectionLimit": "Begränsning för samtidiga strömmar:", - "LabelSkin": "Skal:", "LabelSkipBackLength": "'Hoppa bakåt'-längd:", "LabelSkipForwardLength": "'Hoppa framåt'-längd:", "LabelSkipIfAudioTrackPresent": "Hoppa över om det förvalda ljudspårets språk är samma som det hämtade", @@ -729,7 +719,6 @@ "LabelSortBy": "Sortera efter:", "LabelSortOrder": "Sortering:", "LabelSortTitle": "Sorteringstitel:", - "LabelSoundEffects": "Ljudeffekter:", "LabelSource": "Källa:", "LabelSpecialSeasonsDisplayName": "Visningsnamn för specialsäsong:", "LabelSportsCategories": "Sportkategorier:", @@ -775,7 +764,6 @@ "LabelXDlnaCapHelp": "Anger innehållet i elementet X_DLNACAP i namnutrymmet urn:schemas-dlna-org:device-1-0.", "LabelXDlnaDocHelp": "Anger innehållet i elementet X_DLNADOC i namnutrymmet urn:schemas-dlna-org:device-1-0.", "LabelYear": "År:", - "LabelYourFirstName": "Ditt förnamn:", "LabelYoureDone": "Klart!", "LabelZipCode": "Postnummer:", "LabelffmpegPath": "FFmpeg-sökväg:", @@ -785,7 +773,6 @@ "LearnHowYouCanContribute": "Se hur du kan hjälpa till.", "LibraryAccessHelp": "Ange vilka mediemappar den här användaren ska ha tillgång till. Administratörer har rätt att redigera alla mappar i metadatahanteraren.", "Like": "Gilla", - "LinksValue": "Länkar: {0}", "List": "Lista", "LiveBroadcasts": "Livesändningar", "LiveTV": "Live-TV", @@ -834,14 +821,12 @@ "MessageCreateAccountAt": "Skapa ett konto på {0}", "MessageDeleteTaskTrigger": "Vill du ta bort denna aktivitetsutlösare?", "MessageDirectoryPickerBSDInstruction": "Om du kör BSD kan du behöva konfiguerara din lagring inom FreeNAS Jail för att ge Jellyfin åtkomst till det.", - "MessageDirectoryPickerInstruction": "Nätverkssökvägar kan anges manuellt om \"Nätverk\" inte hittar dina enheter. T ex {0} eller {1}.", "MessageDirectoryPickerLinuxInstruction": "För Linux på ArchLinux, CentOS, Debian, Fedora, OpenSuse, eller Ubuntu, behöver du ge systemanvändaren för Jellyfin minst läsrättigheter till dina lagringsplatser.", "MessageDownloadQueued": "Nedladdning köad.", "MessageEnablingOptionLongerScans": "Aktivering av detta alternativ kan innebära att biblioteksskanningar tar längre tid.", "MessageFileReadError": "Ett fel uppstod när filen lästes in. Var god försök igen.", "MessageForgotPasswordFileCreated": "Följande fil har skapats på din server och innehåller information om hur du går vidare:", "MessageForgotPasswordInNetworkRequired": "Försök igen innanför ditt hemma-nätverk, att starta återställningen av lösenordet.", - "MessageInstallPluginFromApp": "Detta tillägg måste installeras inifrån den app det skall användas i.", "MessageInvalidForgotPasswordPin": "Koden har gått ut eller så är den felaktig. Försök igen.", "MessageInvalidUser": "Felaktigt användarnamn eller lösenord. Försök igen.", "MessageItemSaved": "Objektet har sparats.", @@ -850,7 +835,7 @@ "MessageNoAvailablePlugins": "Inga tillägg tillgängliga.", "MessageNoMovieSuggestionsAvailable": "Det finns inga filmförslag för tillfället. Efter att ha sett ett antal filmer kan du återkomma hit för att se dina förslag.", "MessageNoPluginsInstalled": "Inga tillägg har installerats.", - "MessageNoTrailersFound": "Hittade inga trailers. Installera Trailer-kanalen och öka biokänslan genom att lägga till ett bibliotek av trailers.", + "MessageNoTrailersFound": "Installera Trailer-kanalen och öka biokänslan genom att lägga till ett bibliotek av trailers.", "MessageNothingHere": "Ingenting här.", "MessagePasswordResetForUsers": "Lösenord har tagots bort från följande användare. För att logga in, använd ett blankt lösenord.", "MessagePlayAccessRestricted": "Uppspelning av detta innehållet är för närvarande begränsat. Kontakta din server administratör för mer information.", @@ -888,10 +873,10 @@ "Next": "Nästa", "No": "Nej", "NoNewDevicesFound": "Inga nya enheter hittades. För att lägga tilll en ny tuner, stäng denna rutan och mata in enhetsinformation manuellt.", - "NoNextUpItemsMessage": "Hittade inget. Sätt igång och titta!", - "NoPluginConfigurationMessage": "Detta tillägg har inga inställningar att konfigurera.", + "MessageNoNextUpItems": "Hittade inget. Sätt igång och titta!", + "MessageNoPluginConfiguration": "Detta tillägg har inga inställningar att konfigurera.", "NoSubtitleSearchResultsFound": "Inga resultat hittades.", - "NoSubtitles": "Inga undertexter", + "NoSubtitles": "Inga", "NoSubtitlesHelp": "Undertexter kommer inte visas per standard. Det kan fortfarande sättas på manuellt under uppspelning.", "None": "Inga", "NumLocationsValue": "{0} mappar", @@ -1035,7 +1020,7 @@ "PasswordMatchError": "Lösenordet och bekräftelsen måste överensstämma.", "PasswordResetComplete": "Lösenordet har återställts.", "PasswordResetConfirmation": "Är du säker på att du vill återställa lösenordet?", - "PasswordResetHeader": "Återställ lösenord", + "HeaderResetPassword": "Återställ lösenord", "PasswordSaved": "Lösenordet har sparats.", "People": "Personer", "PerfectMatch": "Perfekt matchning", @@ -1057,7 +1042,7 @@ "PleaseEnterNameOrId": "Ange ett namn eller externt id.", "PleaseRestartServerName": "Vänligen starta om Jellyfin Server - {0}.", "PleaseSelectTwoItems": "Var god välj minst två objekt.", - "PluginInstalledMessage": "Tillägget har installerats. Jellyfin Server behöver startas om för att verkställa ändringarna.", + "MessagePluginInstalled": "Tillägget har installerats. Jellyfin Server behöver startas om för att verkställa ändringarna.", "PreferEmbeddedTitlesOverFileNames": "Föredra inbäddade titlar över filnamnen", "PreferEmbeddedTitlesOverFileNamesHelp": "Det här bestämmer visningstiteln när ingen internet metadata eller lokal metadata finns att tillgå.", "Premiere": "Premiär", @@ -1068,7 +1053,6 @@ "ProductionLocations": "Produktionsplatser", "Programs": "Program", "Quality": "Kvalitet", - "QueueAllFromHere": "Köa alla fr o m här", "Raised": "Upphöjd", "Rate": "Betygsätt", "RecentlyWatched": "Nyligen sedda", @@ -1097,7 +1081,6 @@ "ReplaceAllMetadata": "Ersätt all metadata", "ReplaceExistingImages": "Skriv över befintliga bilder", "ResumeAt": "Återuppta från {0}", - "RunAtStartup": "Kör vid uppstart", "Runtime": "Speltid", "Saturday": "Lördag", "Save": "Spara", @@ -1184,7 +1167,6 @@ "TabParentalControl": "Föräldralås", "TabPassword": "Lösenord", "TabPlayback": "Uppspelning", - "TabPlaylist": "Spellista", "TabPlaylists": "Spellistor", "TabPlugins": "Tillägg", "TabProfile": "Profil", @@ -1219,7 +1201,7 @@ "Tuesday": "Tisdag", "TvLibraryHelp": "Läs om {0} namngivningsguide för TV-serier{1}.", "UninstallPluginConfirmation": "Är du säker på att du vill avinstallera {0}?", - "UninstallPluginHeader": "Avinstallera tillägg", + "HeaderUninstallPlugin": "Avinstallera tillägg", "Unmute": "Muting av", "Unplayed": "Inte spelad", "Unrated": "Ej klassad", @@ -1248,7 +1230,6 @@ "ValueVideoCodec": "Videokodning: {0}", "Vertical": "Vertikal", "ViewAlbum": "Bläddra album", - "ViewArtist": "Bläddra artist", "ViewPlaybackInfo": "Visa uppspelningsinfo", "Watched": "Sedd", "Wednesday": "Onsdag", @@ -1264,7 +1245,6 @@ "Yes": "Ja", "Yesterday": "Igår", "HeaderFavoriteMovies": "Favoritfilmer", - "HeaderAudioLanguages": "Ljudspråk", "HeaderAppearsOn": "Medverkar i", "HeaderApp": "Applikation", "HeaderAdmin": "Administratör", @@ -1340,7 +1320,6 @@ "LabelStatus": "Status:", "LabelSize": "Storlek:", "LabelServerName": "Servernamn:", - "LabelSecureConnectionsMode": "Säker uppkopplings läge:", "LabelPostProcessorArgumentsHelp": "Använd {path} som sökväg till inspelade filen.", "LabelPostProcessorArguments": "Post-processor kommandoradsargument:", "LabelDroppedFrames": "Tappade ramar:", @@ -1350,15 +1329,13 @@ "LabelPlayMethod": "Spelmetod:", "LabelPlayerDimensions": "Spelare dimensioner:", "LabelPasswordResetProvider": "Lösenords Återställning Leverantör:", - "LabelBaseUrlHelp": "Du kan lägga till en egen underkategori här för att få tillgång till servern från en mer unik URL.", + "LabelBaseUrlHelp": "Lägger till en anpassad undermapp till serverns URL. Som exempel: http://example.com/<baseurl>", "LabelCorruptedFrames": "Skadade ramar:", "HeaderParentalRatings": "Föräldrabetyg", "HeaderNavigation": "Navigering", "HeaderBranding": "Märke", - "CopyStreamURLError": "Kunde inte kopiera videoadress.", "AskAdminToCreateLibrary": "Fråga en administratör för att skapa ett bibliotek.", "Whitelist": "Vitlista", - "VideoRange": "Video räckvidd", "ValueOneAlbum": "1 album", "ValueMinutes": "{0} min", "ValueContainer": "Behållare: {0}", @@ -1380,15 +1357,13 @@ "SelectAdminUsername": "Vänligen välj ett användarnamn för admin kontot.", "SaveSubtitlesIntoMediaFoldersHelp": "Spara undertexter vid video filer kommer göra det mer enklare att hantera.", "Rewind": "Spola tillbaka", - "RequiredForAllRemoteConnections": "Krävs för alla fjärr kopplingar", - "RecordingPathChangeMessage": "Ändring av din inspelnings mapp kommer inte migrera existerande inspelningar från gamla platsen till den nya. Du behöver flytta dom manuellt om så önskas.", - "PreferredNotRequired": "Föredragen, men inte krävande", + "MessageChangeRecordingPath": "Ändring av din inspelnings mapp kommer inte migrera existerande inspelningar från gamla platsen till den nya. Du behöver flytta dom manuellt om så önskas.", "PlaybackData": "Uppspelnings Data", "PasswordResetProviderHelp": "Välj en Lösenords Återställnings Provider att använda när denna användare begär att återställa lösenordet", "OptionThumbCard": "Miniatyr kort", "OptionThumb": "Miniatyr", "OptionSaveMetadataAsHiddenHelp": "Ändring av detta kommer att tilldelas till ny metadata som sparas. Existerande metadata filer kommer att uppdateras nästa gång dom sparas av Jellyfin Server.", - "OptionResElement": "res element", + "OptionResElement": "återskapa element", "OptionRegex": "Regex", "OptionRandom": "Slumpmässig", "OptionProtocolHttp": "HTTP", @@ -1431,14 +1406,11 @@ "MediaInfoStreamTypeEmbeddedImage": "Inbäddad bild", "MediaInfoStreamTypeData": "Data", "MediaInfoStreamTypeAudio": "Ljud", - "MediaInfoSoftware": "Mjukvara", "MediaInfoLayout": "Design", "MediaInfoContainer": "Behållare", "ManageLibrary": "Hantera bibliotek", "Live": "Live", "LeaveBlankToNotSetAPassword": "Du kan lämna detta fält tomt för att inte ange lösenord.", - "LaunchWebAppOnStartupHelp": "Öppna webbgränssnittet i din standardwebbläsare när servern först startar. Detta händer inte när du använder starta om-funktionen.", - "LaunchWebAppOnStartup": "Öppna webbgränssnittet när servern startar", "LanNetworksHelp": "Kommatecken separerad lista på IP adresser eller IP/nätmask inlägg för nätverk som anses vara på lokala nätverket för att tvinga fram bandbredd begränsningar. Om angett, alla andra IP adresser kommer att anses vara på ett externt nätverk och kommer tilldelas till det externa bandbredd begränsningarna. Om lämnat tomt, endast serverns subnet anses vara på det lokala nätverket.", "LabelXDlnaDoc": "X-DLNA-dokumentation:", "LabelXDlnaCap": "X-DLNA-begränsning:", @@ -1475,11 +1447,9 @@ "PathNotFound": "Sökvägen hittades inte. Säkerställ att sökvägen är korrekt och försök igen.", "Track": "Spår", "Season": "Säsong", - "ReleaseGroup": "Releasegrupp", "PreferEmbeddedEpisodeInfosOverFileNames": "Föredra inbäddad avsnittsinformation före filnamn", "PreferEmbeddedEpisodeInfosOverFileNamesHelp": "Detta använder avsnittets information från inbäddad metadata om tillgängligt.", "Person": "Person", - "OtherArtist": "Annan artist", "Movie": "Film", "Episode": "Avsnitt", "ClientSettings": "Klientinställningar", @@ -1496,10 +1466,9 @@ "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.", + "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 svarta 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.", @@ -1518,7 +1487,57 @@ "HeaderSyncPlaySelectGroup": "Gå med i en grupp", "EnableDecodingColorDepth10Vp9": "Aktivera 10-Bitars hårdvaru avcodning för VP9", "EnableDecodingColorDepth10Hevc": "Aktivera 10-Bitars hårdvaru avcodning för HEVC", - "HeaderSyncPlayEnabled": "SyncPlay påslaget", + "HeaderSyncPlayEnabled": "SyncPlay aktiverat", "EnableDetailsBannerHelp": "Visa en bannerbild högst upp på sidan för detaljsidan .", - "EnableDetailsBanner": "Information banner" + "EnableDetailsBanner": "Information banner", + "LabelRepositoryName": "Förvaringsplats namn", + "LabelRepositoryUrlHelp": "Platsen för det förvaringsplats manifest du vill inkludera.", + "LabelRepositoryUrl": "Förvaringsplats URL", + "HeaderNewRepository": "Ny förvaringsplats", + "MessageNoRepositories": "Inga förvaringsplatser.", + "LabelSyncPlayAccess": "SyncPlay åtkomst", + "LabelSyncPlayAccessNone": "Avstängt för denna användaren", + "LabelSyncPlayAccessJoinGroups": "Tillåt användaren att gå med i grupper", + "LabelSyncPlayAccessCreateAndJoinGroups": "Tillåt användaren att skapa och gå med i grupper", + "LabelSyncPlayLeaveGroupDescription": "Stäng av SyncPlay", + "LabelSyncPlayLeaveGroup": "Lämna grupp", + "LabelSyncPlayNewGroupDescription": "Skapa ny grupp", + "LabelSyncPlayNewGroup": "Ny grupp", + "LabelSyncPlaySyncMethod": "Synkningsmetod:", + "LabelSyncPlayPlaybackDiff": "Uppspelnings tids skillnad:", + "MillisecondsUnit": "ms", + "LabelSyncPlayTimeOffset": "Tids skillnad med servern:", + "EnableFasterAnimationsHelp": "Använd snabbare animationer och övergångar", + "EnableFasterAnimations": "Snabbare animationer", + "LabelRequireHttpsHelp": "Om valt, kommer servern automatiskt omdirigera all inkommande trafik över HTTP till HTTPS. Detta har ingen effekt om servern inte lyssnar på HTTPS.", + "ClearQueue": "Töm kön", + "StopPlayback": "Stoppa uppspelning", + "ButtonPlayer": "Spelare", + "ButtonCast": "Roller", + "EnableBlurHashHelp": "Bilder som fortfarande laddas kommer visas med en suddig platshållare", + "EnableBlurHash": "Aktivera suddiga platshållare för bilder", + "Writers": "Skribenter", + "ViewAlbumArtist": "Visa albums artist", + "TabRepositories": "Förvaringsplatser", + "SyncPlayAccessHelp": "Välj tillgångsnivån för denna användaren har till SyncPlay funktionen. SyncPlay tillåter en att synka uppspelning med andra enheter.", + "ShowMore": "Visa mer", + "ShowLess": "Visa mindre", + "MessageSyncPlayErrorMedia": "Misslyckades att aktivera SyncPlay! Media fel.", + "MessageSyncPlayErrorMissingSession": "Misslyckades att aktivera SyncPlay! Saknar session.", + "MessageAddRepository": "Om du vill skapa en förvaringsplats, klicka på knappen bredvid rubriken och fyll i all omfrågad information.", + "MessageSyncPlayErrorNoActivePlayer": "Ingen aktiv spelare hittades. SyncPlay har avaktiverats.", + "MessageSyncPlayErrorAccessingGroups": "Ett fel uppstod vid hämtning av grupplista.", + "MessageSyncPlayLibraryAccessDenied": "Tillgång till detta innehåll är begränsat.", + "MessageSyncPlayJoinGroupDenied": "Tillåtelse krävs för att använda SyncPlay.", + "MessageSyncPlayCreateGroupDenied": "Tillåtelse krävs för att skapa en grupp.", + "MessageSyncPlayGroupDoesNotExist": "Kunde inte gå med i gruppen då den inte finns.", + "MessageSyncPlayPlaybackPermissionRequired": "Uppspelningstillåtelse krävs.", + "MessageSyncPlayNoGroupsAvailable": "Inga grupper tillgängliga. Börja spela något först.", + "MessageSyncPlayGroupWait": "{0} buffrar…", + "MessageSyncPlayUserLeft": "{0} har lämnat gruppen.", + "MessageSyncPlayUserJoined": "{0} har anslutit till gruppen.", + "MessageSyncPlayDisabled": "SyncPlay avaktiverat.", + "MessageSyncPlayEnabled": "SyncPlay aktiverat.", + "MessageNoGenresAvailable": "Aktivera vissa metadataleverantörer att hämta genrer från internet.", + "LabelRepositoryNameHelp": "Ett eget namn för att särskilja denna förvaringsplats från andra tillagda på din server." } diff --git a/src/strings/tr.json b/src/strings/tr.json index 169a71cea8..8936fa6463 100644 --- a/src/strings/tr.json +++ b/src/strings/tr.json @@ -5,7 +5,7 @@ "AllowRemoteAccess": "Bu Jellyfin sunucusuna uzaktan bağlanmaya izin ver.", "AllowRemoteAccessHelp": "Eğer işaretlenmemişse, bütün uzak bağlantılar bloke edilicek.", "AttributeNew": "Yeni", - "BrowsePluginCatalogMessage": "Mevcut eklentileri görebilmek için eklenti katologuna göz atın.", + "MessageBrowsePluginCatalog": "Mevcut eklentileri görebilmek için eklenti katologuna göz atın.", "ButtonAdd": "Ekle", "ButtonAddUser": "Kullanıcı Ekle", "ButtonArrowRight": "Sağ", @@ -58,7 +58,6 @@ "Friday": "Cuma", "HeaderActiveRecordings": "Aktif Kayıtlar", "HeaderAddUser": "Kullanıcı Ekle", - "HeaderAutomaticUpdates": "Otomatik Güncelleme", "HeaderChannels": "Kanallar", "HeaderCodecProfile": "Codec Profili", "HeaderContinueWatching": "İzlemeye Devam Et", @@ -92,7 +91,6 @@ "HeaderTaskTriggers": "Görev tetikleyicileri", "HeaderTranscodingProfile": "Kodlama Profili", "HeaderUsers": "Kullanıcılar", - "LabelAllowServerAutoRestart": "Bu sunucuya güncellemeleri uygulamak için yeniden başlama izni ver", "LabelArtists": "Sanatçılar:", "LabelAudioLanguagePreference": "Ses Dili Tercihi:", "LabelCachePath": "Önbellek Yolu:", @@ -130,7 +128,6 @@ "LabelUser": "Kullanıcı:", "LabelUserLibrary": "Kullanıcı Kütüphanesi:", "LabelYear": "Yıl:", - "LabelYourFirstName": "İlk Ad:", "LabelYoureDone": "Bitti!", "LibraryAccessHelp": "Bu kullanıcı ile paylaşmak için kütüphaneleri seçin. Yöneticiler meta yöneticisini kullanarak tüm klasörleri düzenlemesi mümkün olacaktır.", "Live": "Canlı", @@ -227,7 +224,6 @@ "TabNetworks": "Ağlar", "TabNotifications": "Bildirimler", "TabPassword": "Şifre", - "TabPlaylist": "Oynatma listesi", "TabProfile": "Profil", "TabProfiles": "Profiller", "TabRecordings": "Kayıtlar", @@ -245,7 +241,7 @@ "Thursday": "Perşembe", "Tuesday": "Salı", "UninstallPluginConfirmation": "Kaldırmak İstediginizden Eminmisiniz {0} ?", - "UninstallPluginHeader": "Eklenti Kaldır", + "HeaderUninstallPlugin": "Eklenti Kaldır", "Wednesday": "Çarşamba", "WelcomeToProject": "Jellyfin'ye Hoş Geldiniz!", "Absolute": "Mutlak", @@ -287,7 +283,6 @@ "AllEpisodes": "Tüm bölümler", "AllLanguages": "Tüm diller", "AllowMediaConversion": "Medya dönüşümüne izin ver", - "AddItemToCollectionHelp": "Ögeleri koleksiyona eklemek için; arama yapın ve üzerine sağ tıklayın veya sekme menüsünden koleksiyona ekleyin.", "AllowHWTranscodingHelp": "Ayarlayıcının anında akışları dönüştürmesine izin verin. Bu, sunucunun gerektirdiği kodlamanın azaltılmasına yardımcı olabilir.", "ColorSpace": "Renk uzayı", "ButtonConnect": "Bağlan", @@ -348,7 +343,6 @@ "ButtonArrowLeft": "Sol", "ButtonDown": "Aşağı", "ButtonGuide": "Rehber", - "ButtonLearnMore": "Daha fazla bilgi edin", "ButtonLibraryAccess": "Kütüphane erişimi", "ButtonScanAllLibraries": "Tüm Kütüphaneleri Tara", "ButtonSelectView": "Görünüm seç", @@ -387,7 +381,6 @@ "AspectRatio": "En/Boy oranı", "Audio": "Ses", "AuthProviderHelp": "Bu kullanıcının şifresini doğrulamak için kullanılacak bir Kimlik Doğrulama Sağlayıcısı seçin.", - "AutoBasedOnLanguageSetting": "Otomatik (dil ayarına göre)", "Backdrop": "zemin", "Backdrops": "Zeminler", "Banner": "afiş", @@ -402,7 +395,6 @@ "ButtonStart": "Başlat", "ButtonTrailer": "Fragman", "Box": "Kutu", - "ButtonViewWebsite": "Web sitesini görüntüle", "CancelRecording": "Kayıttan Vazgeç", "CancelSeries": "Dizileri iptal et", "ButtonUninstall": "Kaldır", @@ -421,7 +413,7 @@ "DatePlayed": "Oynanan tarih", "DeathDateValue": "Öldü: {0}", "Default": "Varsayılan", - "DefaultErrorMessage": "İsteğin işlenmesi sırasında bir hata oluştu. Lütfen daha sonra tekrar deneyiniz.", + "ErrorDefault": "İsteğin işlenmesi sırasında bir hata oluştu. Lütfen daha sonra tekrar deneyiniz.", "DefaultMetadataLangaugeDescription": "Bunlar varsayılan ayarlarınızdır ve kitaplık bazında özelleştirilebilir.", "DeleteUserConfirmation": "Bu kullanıcıyı silmek istediğinden emin misin?", "Depressed": "Bunalımlı", @@ -510,7 +502,6 @@ "HeaderAccessScheduleHelp": "Belirli saatlerle erişimi sınırlamak için bir erişim programı oluşturun.", "HeaderAccessSchedule": "Erişim Takvimi", "HardwareAccelerationWarning": "Donanım ivmesini etkinleştirmek bazı ortamlarda dengesizliğe neden olabilir. İşletim sisteminizin ve video sürücülerinizin tamamen güncel olduğundan emin olun. Bunu etkinleştirdikten sonra video oynatmakta zorluk çekiyorsanız, ayarı tekrar \"Hiçbiri\" olarak değiştirmeniz gerekecektir.", - "HandledByProxy": "Ters proxy tarafından kullanılır", "HDPrograms": "HD programlar", "EncoderPresetHelp": "Performansı artırmak için daha hızlı bir değer veya kaliteyi artırmak için daha yavaş bir değer seçin.", "H264CrfHelp": "Sabit Hız Faktörü (CRF), x264 kodlayıcı için varsayılan kalite ayarıdır. Değerleri 0 ile 51 arasında ayarlayabilirsiniz, burada daha düşük değerler daha iyi kaliteyle sonuçlanır (daha yüksek dosya boyutları pahasına). Aklı başında değerleri 18 ila 28 arasındadır. X264 için varsayılan 23, bu nedenle bunu başlangıç noktası olarak kullanabilirsiniz.", @@ -539,7 +530,7 @@ "EveryNDays": "Her {0} günde", "ErrorSavingTvProvider": "TV sağlayıcısını kaydederken bir hata oluştu. Lütfen erişilebilir olduğundan emin olun ve tekrar deneyin.", "ErrorPleaseSelectLineup": "Lütfen bir grup seçin ve tekrar deneyin. Hiç bir sıralama yoksa, lütfen kullanıcı adınızın, şifrenizin ve posta kodunuzun doğru olup olmadığını kontrol edin.", - "ErrorMessageStartHourGreaterThanEnd": "Bitiş saati, başlangıç saatinden büyük olmalıdır.", + "ErrorStartHourGreaterThanEnd": "Bitiş saati, başlangıç saatinden büyük olmalıdır.", "ErrorGettingTvLineups": "TV dizilimini indirirken bir hata oluştu. Lütfen bilgilerinizin doğru olduğundan emin olun ve tekrar deneyin.", "ErrorDeletingItem": "Öğe Jellyfin Sunucusundan silinirken bir hata oluştu. Lütfen Jellyfin Server'ın medya klasörüne yazma erişimi olup olmadığını kontrol edin ve tekrar deneyin.", "ErrorAddingXmlTvFile": "XmlTV dosyasına erişilirken bir hata oluştu. Lütfen dosyanın var olduğundan emin olun ve tekrar deneyin.", @@ -704,7 +695,6 @@ "HeaderSelectTranscodingPathHelp": "Geçici Video Kodlama dosyaları için bir dosya yolu seçin yada yazın. Dosya yoluna yazma yetkisi gereklidir.", "HeaderSelectTranscodingPath": "Video Kodlaması İçin Geçici Dosya Yolu Seç", "HeaderSelectServerCachePathHelp": "Önbellek dosyaları için bir dosya yolu seçin yada yazın. Dosya yoluna yazma yetkisi gereklidir.", - "CopyStreamURLError": "URL kopyalanırken bir hata oluştu.", "OptionNone": "Hiçbiri", "None": "Hiçbiri", "HeaderNavigation": "Navigasyon", @@ -760,7 +750,6 @@ "LabelStreamType": "Akış türü:", "LabelSubtitleDownloaders": "Altyazı indiriciler:", "LabelStopping": "Durduruluyor", - "LabelSoundEffects": "Ses efektleri:", "LabelSortOrder": "Sıralama düzeni:", "LabelSortBy": "Sıralama türü:", "LabelSkipIfGraphicalSubsPresent": "Video halihazırda gömülü altyazı barındırıyorsa atla", diff --git a/src/strings/uk.json b/src/strings/uk.json index 0b93964474..95948074ea 100644 --- a/src/strings/uk.json +++ b/src/strings/uk.json @@ -17,7 +17,6 @@ "FolderTypeMusic": "Музика", "FolderTypeTvShows": "ТБ", "HeaderAlbums": "Альбоми", - "HeaderAutomaticUpdates": "Автоматичне оновлення", "HeaderBooks": "Книги", "HeaderDeleteDevice": "Видалить пристрій", "HeaderLatestEpisodes": "Нещодавно переглянуті серії", @@ -40,7 +39,6 @@ "LabelNext": "Вперед", "LabelPath": "Шлях:", "LabelPrevious": "Назад", - "LabelYourFirstName": "Ім’я:", "Like": "Подобається", "MediaInfoAspectRatio": "Співвідношення сторін", "MediaInfoChannels": "Канали", @@ -127,7 +125,6 @@ "HeaderFavoriteArtists": "Улюблені виконавці", "HeaderFavoriteShows": "Улюблені шоу", "HeaderContinueWatching": "Продовжити перегляд", - "AddItemToCollectionHelp": "Додайте елементи до колекції за допомогою пошуку або кліком правої кнопкої миші чи натисненням на меню.", "AllowedRemoteAddressesHelp": "Список з комами, в якості розділювачів, визначає IP-адреси та IP/мережеві маски для мереж, яким дозволено підключатись віддалено. Якщо залишити строку пустою, то усі віддалені підключення будуть дозволені.", "AllowRemoteAccessHelp": "Якщо не відмічено прапорцем, усі віддалені підключення будуть заблоковані.", "AllowFfmpegThrottling": "Примусово обмежити перекодування", @@ -145,7 +142,6 @@ "Blacklist": "Чорний список", "BirthLocation": "Місце народження", "Banner": "Обкладинка", - "AutoBasedOnLanguageSetting": "Автоматично (на основі поточної мови)", "Auto": "Автоматично", "AuthProviderHelp": "Оберіть сервіс аутентифікації, який буде використаний з поточним паролем користувача.", "Audio": "Аудіо", diff --git a/src/strings/vi.json b/src/strings/vi.json index 4e51ce8d2d..b4d79f267b 100644 --- a/src/strings/vi.json +++ b/src/strings/vi.json @@ -1,7 +1,7 @@ { "Add": "Thêm", "All": "Tất cả", - "BrowsePluginCatalogMessage": "Duyệt qua các danh mục plugin của chúng tôi để xem các plugin có sẵn.", + "MessageBrowsePluginCatalog": "Duyệt qua các danh mục plugin của chúng tôi để xem các plugin có sẵn.", "ButtonAdd": "Thêm", "ButtonAddUser": "Thêm người dùng", "ButtonCancel": "Thoát", @@ -23,7 +23,6 @@ "FileReadError": "Có một lỗi xảy ra khi đọc tệp tin này.", "FolderTypeTvShows": "TV", "HeaderAddUser": "Thêm người dùng", - "HeaderAutomaticUpdates": "Tự động cập nhật", "HeaderCustomDlnaProfiles": "Hồ sơ khách hàng", "HeaderFeatureAccess": "Truy cập tính năng", "HeaderFrequentlyPlayed": "Phát thường xuyên", @@ -34,7 +33,6 @@ "HeaderStatus": "Trạng thái", "HeaderSystemDlnaProfiles": "Hồ sơ hệ thống", "HeaderUsers": "dùng", - "LabelAllowServerAutoRestart": "Cho phép máy chủ tự động khởi động lại để áp dụng các bản cập nhật", "LabelAudioLanguagePreference": "Ngôn ngữ thoại ưa thích:", "LabelCountry": "Quốc gia:", "LabelCurrentPassword": "Mật khẩu hiện tại:", @@ -51,7 +49,6 @@ "LabelSaveLocalMetadata": "Lưu các ảnh nghệ thuật và metadata vào trong các thư mục media", "LabelSaveLocalMetadataHelp": "Lưu các ảnh nghệ thuật và metadata vào trong các thư mục media, sẽ đưa chúng vào một nơi bạn có thể chỉnh sửa dễ dàng hơn.", "LabelTime": "Thời gian:", - "LabelYourFirstName": "Tên của bạn:", "LabelYoureDone": "Bạn đã hoàn thành!", "MaxParentalRatingHelp": "Nội dung với đánh giá cao hơn sẽ được ẩn đi từ người dùng này.", "MessageNothingHere": "Không có gì ở đây.", @@ -115,7 +112,7 @@ "TellUsAboutYourself": "Nói cho chúng tôi biết đôi điều về Bạn", "ThisWizardWillGuideYou": "Thủ thuật này sẽ hướng dẫn quá trình cài đặt cho bạn. Để bắt đầu, vui lòng lựa chọn ngôn ngữ bạn ưa thích.", "UninstallPluginConfirmation": "Bạn có chắc muốn gỡ bỏ{0}?", - "UninstallPluginHeader": "Gỡ bỏ Plugin", + "HeaderUninstallPlugin": "Gỡ bỏ Plugin", "AccessRestrictedTryAgainLater": "Truy cập hiện đang bị hạn chế. Hãy thử lại sau.", "AddToCollection": "Thêm vào bộ sưu tập", "Actor": "Diễn viên", @@ -140,7 +137,6 @@ "ButtonMore": "Thêm", "ButtonManualLogin": "Đăng nhập thủ công", "ButtonLibraryAccess": "Truy cập thư viện", - "ButtonLearnMore": "Tìm hiểu thêm", "ButtonInfo": "Thông tin", "ButtonHome": "Trang chủ", "ButtonHelp": "Giúp đỡ", @@ -178,7 +174,6 @@ "BirthDateValue": "Sinh năm: {0}", "Backdrops": "Phông nền", "Backdrop": "Phông nền", - "AutoBasedOnLanguageSetting": "Tự động (dựa trên cài đặt ngôn ngữ)", "Auto": "Tự động", "AuthProviderHelp": "Chọn Nhà cung cấp xác thực sẽ được sử dụng để xác thực mật khẩu người dùng này.", "Audio": "Âm thanh", @@ -214,7 +209,6 @@ "AddedOnValue": "Đã thêm {0}", "AddToPlaylist": "Thêm vào danh sách phát", "AddToPlayQueue": "Thêm vào hàng đợi", - "AddItemToCollectionHelp": "Thêm các mục vào bộ sưu tập bằng cách tìm kiếm và nhấp chuột phải hoặc nhấn vào menu để thêm chúng vào bộ sưu tập.", "Absolute": "Tuyệt đối", "ButtonSend": "Gửi", "ButtonSelectView": "Chọn chế độ xem", @@ -225,7 +219,6 @@ "Categories": "Phân loại", "CancelRecording": "Ngưng ghi hình", "ButtonWebsite": "Trang web", - "ButtonViewWebsite": "Xem trang web", "ButtonUp": "Lên", "ButtonUninstall": "Gỡ cài đặt", "ButtonTrailer": "Tóm tắt", @@ -237,14 +230,13 @@ "ButtonSignIn": "Đăng nhập", "ButtonShutdown": "Tắt", "ButtonSettings": "Cài đặt", - "DefaultErrorMessage": "Có lỗi xảy ra trong lúc xử lý yêu cầu của bạn. Xin hãy thử lại sau.", + "ErrorDefault": "Có lỗi xảy ra trong lúc xử lý yêu cầu của bạn. Xin hãy thử lại sau.", "Default": "Mặc định", "DeathDateValue": "Không hoạt động: {0}", "DatePlayed": "Ngày phát", "DateAdded": "Ngày thêm vào", "CustomDlnaProfilesHelp": "Tạo một bộ thiết lập tuỳ chọn dành cho một thiết bị mới hoặc thay thế một thiết lập hệ thống.", "CriticRating": "Đánh giá phê bình", - "CopyStreamURLError": "Có lỗi xảy ra lúc sao chép URL.", "CopyStreamURLSuccess": "URL đã được sao chép.", "CopyStreamURL": "Sao Chép URL Phát Sóng", "Continuing": "Tiếp tục", @@ -369,7 +361,6 @@ "HeaderActiveDevices": "Thiết Bị Đang Hoạt Động", "HeaderAccessScheduleHelp": "Tạo một thời gian biểu để giới hạn quyền truy cập vào một số khung giờ nhất định.", "HeaderAccessSchedule": "Thời Gian Truy Cập", - "HandledByProxy": "Được xử lý bằng phương thức đảo ngược proxy", "HDPrograms": "Chương trình chất lượng cao (HD)", "EncoderPresetHelp": "Chọn một giá trị nhanh hơn để cải thiện hiệu suất máy chủ, hoặc một giá trị chậm hơn để tăng chất lượng video.", "H264CrfHelp": "Hệ Số Tỉ Lệ Cố Định (Constant Rate Factor (CRF)) là thiết lập chất lượng mặc định dành cho bộ mã hoá x264. Bạn có thể điều chỉnh giá trị trong khoảng 0 đến 51, trong đó giá trị càng nhỏ thì chất lượng càng tốt (đồng nghĩa với việc dung lượng tập tin lớn hơn). Giá trị vừa phải nằm trong khoảng từ 18 đến 28. Giá trị mặc định dành cho x264 là 23, vì thế bạn có thể sử dụng nó để bắt đầu điều chỉnh cho phù hợp.", @@ -406,7 +397,7 @@ "EveryNDays": "Mỗi {0} ngày", "ErrorSavingTvProvider": "Có lỗi xảy ra khi lưu thông tin của nhà cung cấp TV này. Hãy thử lại khi chắc chắn rằng nó có thể truy cập.", "ErrorPleaseSelectLineup": "Hãy chọn một danh sách và thử lại. Nếu không có danh sách nào sẵn sàng, hãy chắc chắn rằng thông tin tài khoản, mật khẩu, và mã bưu điện đều chính xác.", - "ErrorMessageStartHourGreaterThanEnd": "Thời gian kết thúc phải lớn hơn thời gian bắt đầu.", + "ErrorStartHourGreaterThanEnd": "Thời gian kết thúc phải lớn hơn thời gian bắt đầu.", "ErrorGettingTvLineups": "Có lỗi xảy ra khi tải danh sách TV này. Hãy thử lại khi chắc chắn rằng thông tin của bạn chính xác.", "ErrorDeletingItem": "Có lỗi xảy ra khi xoá mục này khỏi máy chủ Jellyfin. Hãy thử lại sau khi kiểm tra chắc chắn rằng máy chủ Jellyfin có quyền ghi/xoá vào thư mục nội dung.", "ErrorAddingXmlTvFile": "Có lỗi xảy ra khi truy cập tài liệu XMLTV. Hãy thử lại khi chắc chắn rằng tài liệu này tồn tại.", @@ -617,7 +608,6 @@ "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:", @@ -701,7 +691,6 @@ "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", @@ -825,5 +814,10 @@ "LabelMaxStreamingBitrate": "Chất lượng phát tối đa:", "LabelMaxScreenshotsPerItem": "Số lượng ảnh chụp tối đa mỗi mục:", "LabelMaxResumePercentageHelp": "Nội dung sẽ được cho là đã kết thúc nếu ngừng phát sau thời gian này.", - "ButtonSyncPlay": "SyncPlay" + "ButtonSyncPlay": "SyncPlay", + "LabelPasswordConfirm": "Mật khẩu (xác nhận):", + "LabelPassword": "Mật khẩu:", + "LabelNotificationEnabled": "Bật thông báo này", + "LabelNewsCategories": "", + "LabelStable": "Ổn Định" } diff --git a/src/strings/zh-cn.json b/src/strings/zh-cn.json index 06acfddab5..553445404a 100644 --- a/src/strings/zh-cn.json +++ b/src/strings/zh-cn.json @@ -2,7 +2,6 @@ "AccessRestrictedTryAgainLater": "目前访问受限,请稍后再试。", "Actor": "演员", "Add": "添加", - "AddItemToCollectionHelp": "通过搜索项目并右键或轻触得到的弹出菜单来将项目添加到集合中。", "AddToCollection": "加入集合", "AddToPlayQueue": "添加至播放队列", "AddToPlaylist": "添加至播放列表", @@ -36,7 +35,6 @@ "AttributeNew": "新增", "Audio": "音频", "Auto": "自动", - "AutoBasedOnLanguageSetting": "自动(取决于语言设置)", "Backdrop": "背景", "Backdrops": "背景", "Banner": "横幅", @@ -47,7 +45,7 @@ "BookLibraryHelp": "现已支持音频和文本书籍。浏览{0}有声读物命名指南{1}。", "Books": "书籍", "Browse": "浏览", - "BrowsePluginCatalogMessage": "浏览我们的插件目录来查看现有插件。", + "MessageBrowsePluginCatalog": "浏览我们的插件目录来查看现有插件。", "BurnSubtitlesHelp": "服务器在转换视频时是否应压制字幕。避免压制字幕会提高服务器性能。选择“自动”以压制基于图像的字幕格式(如 VOBSUB, PGS, SUB, IDX 等)和一些复杂的 ASS/SSA 字幕。", "ButtonAdd": "添加", "ButtonAddMediaLibrary": "添加媒体库", @@ -78,7 +76,6 @@ "ButtonHelp": "帮助", "ButtonHome": "首页", "ButtonInfo": "详情", - "ButtonLearnMore": "了解更多", "ButtonLibraryAccess": "媒体库访问", "ButtonManualLogin": "手动登录", "ButtonMore": "更多", @@ -124,7 +121,6 @@ "ButtonTrailer": "预告片", "ButtonUninstall": "卸载", "ButtonUp": "上", - "ButtonViewWebsite": "浏览网站", "ButtonWebsite": "网站", "CancelRecording": "取消录制", "CancelSeries": "取消系列", @@ -148,7 +144,7 @@ "DatePlayed": "播放日期", "DeathDateValue": "去世:{0}", "Default": "默认", - "DefaultErrorMessage": "处理请求时发生错误。请稍后尝试。", + "ErrorDefault": "处理请求时发生错误。请稍后尝试。", "DefaultMetadataLangaugeDescription": "这些是你的默认设置并且可以在你的每个媒体库中被单独自定义。", "DefaultSubtitlesHelp": "字幕将基于内嵌元数据中的“默认”标志和“强制”标志来载入。当多个选项可用时,将根据语言偏好决定。", "Delete": "删除", @@ -211,7 +207,7 @@ "ErrorAddingTunerDevice": "添加协调器设备时发生错误。请确认它是可访问的然后再试一次。", "ErrorAddingXmlTvFile": "访问 XmlTV 文件时发生错误。请确认该文件是否存在然后再试一次。", "ErrorGettingTvLineups": "下载 TV 节目表 时发生错误。请确认你的信息是否正确,然后再试。", - "ErrorMessageStartHourGreaterThanEnd": "结束时间必须在开始时间后。", + "ErrorStartHourGreaterThanEnd": "结束时间必须在开始时间后。", "ErrorPleaseSelectLineup": "请选择一个阵容, 然后再试一次。如果没有可用的阵容, 请检查您的用户名、密码和邮政编码是否正确。", "ErrorSavingTvProvider": "保存 TV 提供商时发生错误。请确认它是可访问的然后再试一次。", "EveryNDays": "每 {0} 天", @@ -246,7 +242,6 @@ "H264CrfHelp": "The Constant Rate Factor (CRF) 是 x264 编码器的默认质量设置。您可以设置介于0和51之间的值, 其中较低的值将导致更好的质量 (以更高的文件大小为代价)。正常值介于18和28之间。x264 的默认值为 23, 因此可以将其用作起始点。", "EncoderPresetHelp": "选择一个更快的值以提升性能,或者选择一个更慢的值以提升质量。", "HDPrograms": "高清节目", - "HandledByProxy": "由反向代理处理", "HardwareAccelerationWarning": "启动硬件加速可能在某些环境下导致系统不稳定。请确认你的操作系统和显卡驱动程序是最新的。如果你在开启此项后播放视频时遇到困难,那么你需要将此选项设置回“没有”。", "HeaderAccessSchedule": "访问计划", "HeaderAccessScheduleHelp": "创建一个访问计划以限制可访问的时间段。", @@ -269,7 +264,6 @@ "HeaderApiKeysHelp": "外部应用程序需要 API 密钥才能与 Jellyfin Server 进行通信。使用 Jellyfin 账户进行登录时密钥将会自动生成,您也可以手动为某个应用程序分配一个密钥。", "HeaderAudioBooks": "有声读物", "HeaderAudioSettings": "声音设置", - "HeaderAutomaticUpdates": "自动更新", "HeaderBlockItemsWithNoRating": "通过没有评级和设置不允许的评级锁定内容:", "HeaderBooks": "书籍", "HeaderBranding": "品牌", @@ -477,8 +471,6 @@ "LabelAlbumArtists": "专辑作家:", "LabelAll": "所有", "LabelAllowHWTranscoding": "允许硬件转码", - "LabelAllowServerAutoRestart": "允许服务器自动重启来安装更新", - "LabelAllowServerAutoRestartHelp": "该服务器仅会在空闲和没有活动用户的期间重新启动。", "LabelAllowedRemoteAddresses": "远程IP地址过滤器:", "LabelAllowedRemoteAddressesMode": "远程IP地址过滤器模式:", "LabelAppName": "APP名称", @@ -516,7 +508,6 @@ "LabelCustomDeviceDisplayName": "显示名称:", "LabelCustomDeviceDisplayNameHelp": "自定义设备显示名称或留空则使用设备报告名称。", "LabelCustomRating": "自定义分级:", - "LabelDashboardTheme": "控制台主题:", "LabelDateAdded": "加入日期:", "LabelDateAddedBehavior": "新内容加入的日期:", "LabelDateAddedBehaviorHelp": "如果一个媒体资料的值存在,它总是优先于这些选项前使用。", @@ -719,7 +710,6 @@ "LabelScheduledTaskLastRan": "最后运行 {0}, 花费时间 {1}.", "LabelScreensaver": "屏幕保护:", "LabelSeasonNumber": "季号:", - "LabelSecureConnectionsMode": "安全连接模式:", "LabelSelectUsers": "选择用户:", "LabelSelectVersionToInstall": "选择安装版本:", "LabelSendNotificationToUsers": "发送通知至:", @@ -728,7 +718,6 @@ "LabelServerHost": "主机:", "LabelServerHostHelp": "192.168.1.100:8096 或 https://myserver.com", "LabelSimultaneousConnectionLimit": "并发流限制:", - "LabelSkin": "皮肤:", "LabelSkipBackLength": "跳过长度:", "LabelSkipForwardLength": "快进时限:", "LabelSkipIfAudioTrackPresent": "如果默认音轨的语言和下载语言一样则跳过", @@ -740,7 +729,6 @@ "LabelSortBy": "排序依据:", "LabelSortOrder": "排序顺序:", "LabelSortTitle": "短标题:", - "LabelSoundEffects": "音效:", "LabelSource": "来源:", "LabelSpecialSeasonsDisplayName": "SP 季显示的名称:", "LabelSportsCategories": "体育分类:", @@ -789,14 +777,12 @@ "LabelValue": "数值:", "LabelVersion": "版本:", "LabelVersionInstalled": "{0} 已安装", - "LabelVersionNumber": "版本 {0}", "LabelVideoResolution": "视频分辨率:", "LabelXDlnaCap": "X-DLNA CAP:", "LabelXDlnaCapHelp": "决定在 urn:schemas-dlna-org:device-1-0 namespace 中的 X_DLNACAP 元素的内容。", "LabelXDlnaDoc": "X-DLNA DOC:", "LabelXDlnaDocHelp": "决定在 urn:schemas-dlna-org:device-1-0 namespace 中的 X-Dlna doc 元素的内容。", "LabelYear": "年份:", - "LabelYourFirstName": "你的名字:", "LabelYoureDone": "完成!", "LabelZipCode": "邮编:", "LabelffmpegPath": "FFmpeg 路径:", @@ -854,14 +840,12 @@ "MessageCreateAccountAt": "在 {0} 创建帐户", "MessageDeleteTaskTrigger": "你确定删除这个任务触发条件?", "MessageDirectoryPickerBSDInstruction": "对于 BSD 系统,你需要设置包含你的 FreeNAS Jail 虚拟机的存储以允许 Jellyfin 访问它。", - "MessageDirectoryPickerInstruction": "网络按钮无法找到你的设备的情况下,网络路径可以手动输入。 例如, {0} 或者 {1}。", "MessageDirectoryPickerLinuxInstruction": "对于Arch Linux、 CentOS、Debian、Fedora、OpenSuse、Ubuntu上的Linux系统,你必须授权系统服务用户访问你存储位置。", "MessageDownloadQueued": "下载已列队。", "MessageEnablingOptionLongerScans": "启用此选项可能会大大延长媒体库扫描时间。", "MessageFileReadError": "读取文件发生错误。", "MessageForgotPasswordFileCreated": "已在服务器上创建了以下文件, 并包含有关后续步骤说明:", "MessageForgotPasswordInNetworkRequired": "请连接你的家庭网络后再试一次以开始密码重置流程。", - "MessageInstallPluginFromApp": "这个插件必须从你打算使用的应用程序中安装。", "MessageInvalidForgotPasswordPin": "无效的或过期的 pin 码。请再试一次。", "MessageInvalidUser": "用户名或密码不可用。请重试。", "MessageItemSaved": "项目已保存。", @@ -911,8 +895,8 @@ "NextUp": "下一步", "No": "否", "NoNewDevicesFound": "找不到新设备。要添加新调谐器, 请关闭此对话框并手动输入设备信息。", - "NoNextUpItemsMessage": "没有发现。开始看你的节目!", - "NoPluginConfigurationMessage": "此插件没有配置选项。", + "MessageNoNextUpItems": "没有发现。开始看你的节目!", + "MessageNoPluginConfiguration": "此插件没有配置选项。", "NoSubtitleSearchResultsFound": "未找到结果。", "NoSubtitles": "无字幕", "NoSubtitlesHelp": "字幕将默认不被加载,但你仍然可以在播放时手动打开字幕。", @@ -1072,7 +1056,7 @@ "PasswordMatchError": "密码和确认密码必须匹配。", "PasswordResetComplete": "密码已重置。", "PasswordResetConfirmation": "你确定要重置密码?", - "PasswordResetHeader": "密码重置", + "HeaderResetPassword": "密码重置", "PasswordSaved": "密码已保存。", "People": "人物", "PerfectMatch": "最佳匹配", @@ -1091,10 +1075,9 @@ "PleaseEnterNameOrId": "请输入一个名称或一个外部ID。", "PleaseRestartServerName": "请重启 Jellyfin 服务器 - {0}。", "PleaseSelectTwoItems": "请至少选择2个项目。", - "PluginInstalledMessage": "这个插件已经被成功安装。Jellyfin 服务器需要重启以使该插件生效。", + "MessagePluginInstalled": "这个插件已经被成功安装。Jellyfin 服务器需要重启以使该插件生效。", "PreferEmbeddedTitlesOverFileNames": "优先使用内置的标题而不是文件名", "PreferEmbeddedTitlesOverFileNamesHelp": "这将在没有 internet 元数据或本地元数据可用时确定默认显示标题。", - "PreferredNotRequired": "首选,但不是必需的", "Premiere": "首映", "Previous": "上一个", "Primary": "封面图", @@ -1102,7 +1085,6 @@ "ProductionLocations": "产地", "Programs": "节目", "Quality": "质量", - "QueueAllFromHere": "这里的全部内容都加入队列", "Rate": "评级", "RecentlyWatched": "最近观看", "RecommendationBecauseYouLike": "因为你喜欢 {0}", @@ -1112,7 +1094,7 @@ "Record": "录制", "RecordSeries": "录制电视剧", "RecordingCancelled": "录制已取消。", - "RecordingPathChangeMessage": "更改录制文件夹不会将现有录制从旧位置迁移到新的。您需要手动移动它们 (如果需要)。", + "MessageChangeRecordingPath": "更改录制文件夹不会将现有录制从旧位置迁移到新的。您需要手动移动它们 (如果需要)。", "RecordingScheduled": "录制预设。", "Refresh": "刷新", "RefreshMetadata": "刷新元数据", @@ -1127,10 +1109,8 @@ "RepeatOne": "单项循环", "ReplaceAllMetadata": "覆盖所有元数据", "ReplaceExistingImages": "替换现有图片", - "RequiredForAllRemoteConnections": "所有远程连接都需要", "ResumeAt": "恢复播放于{0}", "Rewind": "倒回", - "RunAtStartup": "开机时启动", "Runtime": "播放时长", "Saturday": "星期六", "Save": "保存", @@ -1217,7 +1197,6 @@ "TabParentalControl": "家长控制", "TabPassword": "密码", "TabPlayback": "播放", - "TabPlaylist": "播放列表", "TabPlaylists": "播放列表", "TabPlugins": "插件", "TabProfile": "个人配置", @@ -1254,7 +1233,7 @@ "Tuesday": "星期二", "TvLibraryHelp": "回顾{0}电视节目命名指南{1}。", "UninstallPluginConfirmation": "你确定要卸载 {0}?", - "UninstallPluginHeader": "卸载插件", + "HeaderUninstallPlugin": "卸载插件", "Unmute": "取消静音", "Unplayed": "未播放", "Unrated": "未分级", @@ -1285,7 +1264,6 @@ "ValueTimeLimitSingleHour": "时间限制:1 小时", "ValueVideoCodec": "视频编解码器: {0}", "ViewAlbum": "查看专辑", - "ViewArtist": "查看艺术家", "ViewPlaybackInfo": "查看播放信息", "Watched": "已观看", "Wednesday": "星期三", @@ -1362,14 +1340,12 @@ "DashboardVersionNumber": "版本:{0}", "DashboardServerName": "服务器:{0}", "LabelVideo": "视频", - "LabelWeb": "网站:", + "LabelWeb": "网页:", "LeaveBlankToNotSetAPassword": "您可以将此字段留空以设置空密码。", - "LinksValue": "链接:{0}", "LiveBroadcasts": "直播", "LiveTV": "电视直播", "Logo": "商标", "ManageRecording": "管理录音", - "MediaInfoSoftware": "软件", "MediaInfoStreamTypeAudio": "音频", "MediaInfoStreamTypeData": "数据", "MediaInfoStreamTypeEmbeddedImage": "内嵌图片", @@ -1389,8 +1365,6 @@ "PlaceFavoriteChannelsAtBeginning": "将最喜爱的频道置顶", "PlayNext": "播放下一个", "PlayNextEpisodeAutomatically": "自动播放下一集", - "PlaybackSettings": "播放设置", - "PlaybackSettingsIntro": "为了修改默认播放设置,请先停止视频播放,然后在应用的右上角点击个人头像。", "Premieres": "首映", "Raised": "提高", "Recordings": "录音", @@ -1404,19 +1378,14 @@ "Shows": "节目", "SkipEpisodesAlreadyInMyLibraryHelp": "将使用季和剧集编号对剧集进行比较。", "Smaller": "更小", - "SubtitleSettings": "字幕设置", - "SubtitleSettingsIntro": "要配置默认字幕外观和语言设置,请停止视频播放,然后单击应用程序右上角的用户图标。", "TagsValue": "标签:{0}", "Vertical": "垂直", - "VideoRange": "视频范围", "Depressed": "凹陷", "Uniform": "轮廓", "HeaderHome": "主页", "DashboardOperatingSystem": "操作系统:{0}", "DashboardArchitecture": "架构:{0}", "GroupVersions": "按版本分组", - "LaunchWebAppOnStartup": "当启动服务器时,打开Web界面", - "LaunchWebAppOnStartupHelp": "服务器启动时在默认浏览器中打开网页端。使用重启服务器功能时此项不生效。", "MusicAlbum": "音乐专辑", "MusicArtist": "音乐艺术家", "MusicVideo": "音乐视频", @@ -1459,7 +1428,6 @@ "ButtonSplit": "拆分", "SelectAdminUsername": "请为管理员账户选择一个用户名。", "HeaderNavigation": "导航", - "CopyStreamURLError": "复制URL地址时发生错误。", "MessageConfirmAppExit": "你要退出吗?", "OptionForceRemoteSourceTranscoding": "强制远程转码(像电视直播一样)", "NoCreatedLibraries": "看上去您还未创建任何资料库。{0} 您想现在创建一个吗? {1}", @@ -1472,9 +1440,7 @@ "ClientSettings": "客户端设置", "Track": "音轨", "Season": "季", - "ReleaseGroup": "发行组", "Person": "人物", - "OtherArtist": "其他艺术家", "Movie": "电影", "Episode": "剧集", "BoxSet": "套装", @@ -1500,7 +1466,6 @@ "LabelLibraryPageSize": "媒体库分页阈值:", "LabelLibraryPageSizeHelp": "设置媒体库页面每页要显示的最多媒体个数。设置为 0 以禁用分页。", "UnsupportedPlayback": "Jellyfin无法解密被DRM保护的内容,但仍然会尝试播放包括受保护内容在内的所有内容。某些文件由于被加密或包含不受支持的特性(如互动标题),在播放时可能显示为黑屏。", - "MessageUnauthorizedUser": "您目前无权访问服务器。更多有关信息,请与服务器管理员联系。", "Filter": "过滤", "New": "新的", "HeaderFavoritePlaylists": "收藏的播放列表", @@ -1519,7 +1484,6 @@ "LabelEnableHttps": "启用 HTTPS", "LabelChromecastVersion": "Chromecast版本", "HeaderDVR": "DVR", - "LabelNightly": "开发版", "MessageSyncPlayErrorAccessingGroups": "访问群组列表时发生错误。", "MessageSyncPlayLibraryAccessDenied": "对此内容的访问受到限制。", "MessageSyncPlayCreateGroupDenied": "需要权限以创建群组。", @@ -1540,14 +1504,12 @@ "HeaderSyncPlayEnabled": "同步播放已启用", "HeaderSyncPlaySelectGroup": "加入群组", "EnableDetailsBannerHelp": "在项目详细信息页面的顶部显示横幅图片。", - "EnableDecodingColorDepth10": "启用 10-Bit 硬件解码", - "EnableDecodingColorDepth10Help": "在支持的硬件上启用 10-Bit 硬件解码。仅对 HEVC 和 VP9 格式起作用。如果你遇到了播放问题,请关闭这个选项。", "LabelSyncPlayLeaveGroupDescription": "关闭同步播放", "EnableDetailsBanner": "详细信息页面的横幅", "ButtonCast": "投射", "ButtonSyncPlay": "SyncPlay", - "EnableBlurhashHelp": "仍在加载的图片将显示带有模糊的占位符", - "EnableBlurhash": "为图片启用模糊的占位符", + "EnableBlurHashHelp": "仍在加载的图片将显示带有模糊的占位符", + "EnableBlurHash": "为图片启用模糊的占位符", "SyncPlayAccessHelp": "为此用户选择对同步播放功能的访问级别。同步播放让你可以和其他设备同步播放进度。", "ShowMore": "显示更多", "ShowLess": "显示更少", diff --git a/src/strings/zh-hk.json b/src/strings/zh-hk.json index 551f6ec1ae..830ab8b400 100644 --- a/src/strings/zh-hk.json +++ b/src/strings/zh-hk.json @@ -47,7 +47,6 @@ "HeaderAddToCollection": "添加到收藏庫", "HeaderAddUser": "添加用戶", "HeaderAdditionalParts": "附加部份", - "HeaderAutomaticUpdates": "自動更新", "HeaderBooks": "書籍", "HeaderBranding": "界面", "HeaderCastCrew": "演員陣容", @@ -86,8 +85,6 @@ "Help": "幫助", "LabelAirsAfterSeason": "已播放劇集季度:", "LabelAirsBeforeSeason": "尚未播放劇集季度:", - "LabelAllowServerAutoRestart": "允許自動重新啟動來更新", - "LabelAllowServerAutoRestartHelp": "只在沒有活躍用戶和空檔時間重新啟動。", "LabelArtists": "藝人:", "LabelArtistsHelp": "分開多重使用 ;", "LabelAudioLanguagePreference": "首選音訊語言:", @@ -173,8 +170,6 @@ "LabelTriggerType": "觸發類型:", "LabelUser": "用戶:", "LabelVersionInstalled": "已安裝 {0}", - "LabelVersionNumber": "版本 {0}", - "LabelYourFirstName": "您的名字是:", "LabelYoureDone": "大功告成!", "LibraryAccessHelp": "選擇與此用戶共享媒體文件夾。管理員將能夠使用媒體資料瀏覽器而編輯所有文件夾。", "MaxParentalRatingHelp": "此用戶會被隱藏具有較高評價的家長評級內容。", @@ -187,7 +182,7 @@ "MoreUsersCanBeAddedLater": "稍後在控制台可以添加更多用戶。", "NewCollection": "新收藏庫", "NewCollectionNameExample": "例如:星球大戰收藏庫", - "NoNextUpItemsMessage": "未有發現。開始欣賞您的節目!", + "MessageNoNextUpItems": "未有發現。開始欣賞您的節目!", "OptionAdminUsers": "管理員", "OptionAlbum": "唱片", "OptionAlbumArtist": "唱片歌手", @@ -307,7 +302,6 @@ "TabNotifications": "通知", "TabOther": "其它", "TabPassword": "密碼", - "TabPlaylist": "播放清單", "TabProfile": "簡介", "TabProfiles": "簡介", "TabRecordings": "錄影", @@ -342,7 +336,6 @@ "AsManyAsPossible": "越多越好", "Audio": "音頻", "Auto": "自動", - "AutoBasedOnLanguageSetting": "自動 (基於語言設定)", "BirthLocation": "出生地點", "AllLanguages": "全部語言", "All": "全部", @@ -401,7 +394,6 @@ "AdditionalNotificationServices": "瀏覽插件目錄以安裝其他通知服務。", "AddToPlayQueue": "添加到播放隊列", "AddToCollection": "添加到收藏", - "AddItemToCollectionHelp": "搜尋物件並使用右鍵點擊或點擊菜單將他們添加到收藏中。", "AccessRestrictedTryAgainLater": "目前存取受限。 請稍後再試。", "AllowFfmpegThrottling": "轉碼調節器", "Dislike": "不喜歡", @@ -420,10 +412,9 @@ "DeleteMedia": "刪除媒體", "DeleteImageConfirmation": "你確定要刪除此圖片嗎?", "DeleteImage": "刪除圖片", - "DefaultErrorMessage": "處理此請求時發生錯誤,請稍後再嘗試。", + "ErrorDefault": "處理此請求時發生錯誤,請稍後再嘗試。", "Default": "預設", "DateAdded": "日期已新增", - "CopyStreamURLError": "複製URL時發生錯誤。", "CopyStreamURLSuccess": "成功複製URL。", "CopyStreamURL": "複製直播URL", "ContinueWatching": "繼續觀看", @@ -438,7 +429,6 @@ "CancelSeries": "取消片集", "CancelRecording": "取消錄影", "ButtonWebsite": "網頁", - "ButtonViewWebsite": "瀏覽網頁", "ButtonUninstall": "解除安裝", "ButtonTrailer": "預告", "ButtonTogglePlaylist": "播放清單", @@ -462,7 +452,6 @@ "ButtonOpen": "開啟", "ButtonNetwork": "網絡", "ButtonMore": "更多", - "ButtonLearnMore": "了解更多", "ButtonInfo": "資訊", "ButtonHome": "主頁", "ButtonGuide": "教學", @@ -500,7 +489,7 @@ "ButtonSyncPlay": "SyncPlay", "ButtonDown": "向下", "BurnSubtitlesHelp": "確定若服務器對視頻進行轉碼時是否嵌入字幕。 關閉這功能將使用更少時間。 選擇'自動'可嵌入基於圖像的格式字幕(VOBSUB,PGS,SUB,IDX等)和某些ASS或SSA字幕。", - "BrowsePluginCatalogMessage": "瀏覽我們的插件目錄以查看可用的插件。", + "MessageBrowsePluginCatalog": "瀏覽我們的插件目錄以查看可用的插件。", "BoxRear": "盒裝(背面)", "BoxSet": "套裝", "Box": "盒裝", diff --git a/src/strings/zh-tw.json b/src/strings/zh-tw.json index 18b4a9f097..086d163240 100644 --- a/src/strings/zh-tw.json +++ b/src/strings/zh-tw.json @@ -3,7 +3,7 @@ "All": "全部", "AllowRemoteAccessHelp": "如果未勾選,所有連線都將被阻擋。", "Browse": "瀏覽", - "BrowsePluginCatalogMessage": "瀏覽我們的模組目錄來查看可用的模組。", + "MessageBrowsePluginCatalog": "瀏覽我們的模組目錄來查看可用的模組。", "ButtonAdd": "新增", "ButtonAddServer": "新增伺服器", "ButtonAddUser": "新增使用者", @@ -60,7 +60,6 @@ "HeaderAddUser": "增加使用者", "HeaderAdditionalParts": "附加部份", "HeaderAdmin": "管理", - "HeaderAutomaticUpdates": "自動更新", "HeaderCastCrew": "拍攝人員及演員", "HeaderChannels": "頻道", "HeaderCustomDlnaProfiles": "自訂設定檔", @@ -76,18 +75,11 @@ "HeaderLatestEpisodes": "最新劇集", "HeaderLatestMovies": "最新電影", "HeaderLatestRecordings": "最新錄影的節目", - "HeaderLatestSongs": "最新歌曲", - "HeaderLatestTrailers": "最新預告", - "HeaderLinks": "鏈接", "HeaderLiveTV": "電視直播", "HeaderLiveTv": "電視", "HeaderMediaFolders": "媒體資料夾", "HeaderMusicVideos": "MV", - "HeaderNewRecording": "新錄製", - "HeaderNewUsers": "新使用者", "HeaderNextUp": "接下來", - "HeaderNowPlaying": "正在播放", - "HeaderParentalRating": "Parental Rating", "HeaderPaths": "路徑", "HeaderPlayAll": "全部播放", "HeaderPleaseSignIn": "請登入", @@ -103,8 +95,6 @@ "HeaderUsers": "使用者", "Help": "說明", "ItemCount": "{0}個項目", - "LabelAllowServerAutoRestart": "允許伺服器自動重新啟動去安裝更新資料", - "LabelAllowServerAutoRestartHelp": "伺服器只會在沒有使用者在使用時重新啟動。", "LabelAudioLanguagePreference": "音頻語言偏好選項:", "LabelCachePath": "快取路徑:", "LabelCollection": "收藏櫃:", @@ -149,7 +139,6 @@ "LabelTime": "時間:", "LabelTriggerType": "觸發類型:", "LabelUser": "使用者:", - "LabelYourFirstName": "您的名字:", "LabelYoureDone": "完成,耶!", "LibraryAccessHelp": "選擇媒體資料夾與此使用者共享。管理員將可以使用中繼資料管理器編輯所有的媒體資料夾。", "Like": "喜歡", @@ -167,7 +156,7 @@ "NewCollection": "新合集", "NewCollectionHelp": "收藏櫃讓您能夠建立個人化的影音及其他媒體的分類。", "NewCollectionNameExample": "例子:星球大戰合集", - "NoNextUpItemsMessage": "沒有找到。開始看你的節目!", + "MessageNoNextUpItems": "沒有找到。開始看你的節目!", "NoSubtitleSearchResultsFound": "無結果。", "OptionAlbum": "專輯", "OptionAlbumArtist": "專輯歌手", @@ -278,7 +267,6 @@ "TabMyPlugins": "我的插件", "TabNetworks": "網絡", "TabPassword": "密碼", - "TabPlaylist": "播放清單", "TabProfile": "設定", "TabProfiles": "設定", "TabRecordings": "錄影", @@ -297,10 +285,8 @@ "TrackCount": "{0} 個曲目", "Tuesday": "星期二", "UninstallPluginConfirmation": "你確定要解除安裝 {0}?", - "UninstallPluginHeader": "解除安裝插件", + "HeaderUninstallPlugin": "解除安裝插件", "UserProfilesIntro": "Jellyfin 可單獨對使用者進行設定,所有使用者擁有自己的顯示設置,播放狀態和家長控制。", - "Users": "使用者", - "VersionNumber": "版本 {0}", "Wednesday": "星期三", "WelcomeToProject": "歡迎使用 Jellyfin!", "WizardCompleted": "這就是我們所需的全部資訊,Jellyfin 現在正在收集你的媒體櫃的資料,在這段時間內,不妨參考我們推出的應用程式。按一下完成進入控制台。", @@ -333,7 +319,6 @@ "AttributeNew": "新增", "Audio": "音訊", "Auto": "自動", - "AutoBasedOnLanguageSetting": "自動(根據語言設定)", "Backdrop": "背景", "Backdrops": "背景", "Banner": "橫幅", @@ -342,7 +327,6 @@ "BirthPlaceValue": "出生地:{0}", "Blacklist": "黑名單", "Books": "圖書", - "ButtonAccept": "接受", "ButtonAddMediaLibrary": "新增媒體櫃", "ButtonArrowLeft": "左", "ButtonArrowRight": "右", @@ -350,7 +334,6 @@ "ButtonAudioTracks": "音軌", "ButtonBack": "返回", "ButtonChangeServer": "更換伺服器", - "AddItemToCollectionHelp": "利用搜尋並使用右鍵或點擊目錄將項目新增到收藏中。", "AddToCollection": "加入收藏", "AirDate": "播出日期", "Aired": "已播於", @@ -371,7 +354,6 @@ "ButtonFullscreen": "全螢幕", "ButtonHelp": "幫助", "ButtonInfo": "詳細資料", - "ButtonLearnMore": "瞭解更多", "ButtonLibraryAccess": "媒體庫存取", "ButtonManualLogin": "手動登入", "ButtonMore": "更多", @@ -402,7 +384,6 @@ "ButtonTrailer": "預告片", "ButtonUninstall": "解除安裝", "ButtonUp": "上", - "ButtonViewWebsite": "查看網站", "ButtonWebsite": "網站", "CancelRecording": "取消錄影", "CancelSeries": "取消系列", @@ -413,8 +394,6 @@ "ChannelNumber": "頻道號碼", "Channels": "頻道", "CinemaModeConfigurationHelp": "劇院模式直接為您的客廳帶來劇院級體驗,同時還可以播放預告片和自定開場白。", - "CinemaModeFeatureDescription": "劇院模式用預告片和自定開場白帶給您最真實的劇院體驗。", - "CloudSyncFeatureDescription": "將您的媒體備份到雲端當作簡單的備份,收藏和轉檔。", "Collections": "合輯", "Composer": "作曲家", "ConfigureDateAdded": "調整伺服器如何判定媒體庫的「新增日期」", @@ -429,13 +408,11 @@ "DeathDateValue": "死於: {0}", "Default": "預設", "ButtonAddScheduledTaskTrigger": "新增觸發器", - "CategoryPlugin": "外掛元件", "ColorPrimaries": "三原色", "ColorSpace": "色彩空間", "ColorTransfer": "色彩傳輸", "CommunityRating": "社群評分", - "DefaultCameraUploadPathHelp": "請選擇自訂上傳路徑。若留白, 將會使用預設資料夾。如果使用自訂路徑,則還需要在Jellyfin庫設置中作為“媒體庫”添加。", - "DefaultErrorMessage": "處理請求時發生錯誤。請稍後再試。", + "ErrorDefault": "處理請求時發生錯誤。請稍後再試。", "DefaultMetadataLangaugeDescription": "這些預設設定可以在你的媒體庫中單獨設定。", "DefaultSubtitlesHelp": "字幕將基於中繼資料中的「預設」標記和「強制」標記來載入,當有多個選項可用時,將根據語言偏好決定。", "DeleteDeviceConfirmation": "你確定你要刪除這個裝置嗎?當有使用者用這個裝置登入時,這個裝置會再次出現。", @@ -445,8 +422,6 @@ "Desktop": "桌面", "DetectingDevices": "正在偵測裝置", "DeviceAccessHelp": "只適用於用唯一辨識方法的裝置,並不會阻止瀏覽器存取。已過濾的使用者裝置會被拒絕存取,直到他們被批准。", - "DeviceLastUsedByUserName": "最後被 {0} 使用", - "DirectPlayError": "直接播放錯誤", "DirectPlaying": "直接播放", "DirectStreamHelp1": "媒體在畫質和媒體類型(H.264、AC3 等)方面與裝置相容。但是在不相容的檔案格式(.mkv、.avi、.wmv 等)中,在影片傳輸到裝置之前,將會重新轉檔。", "DirectStreamHelp2": "直接串流檔案會占用非常少的處理效能並且影片的品質不會有任何損失。", @@ -464,15 +439,9 @@ "DisplayModeHelp": "選擇您想要的介面樣式。", "DoNotRecord": "不錄製", "Down": "下", - "DownloadItemLimitHelp": "非必要。 設置要下載的項目數限制。", - "Downloaded": "已下載", - "Downloading": "下載中", - "DownloadingDots": "下載中…", - "Downloads": "下載", "DownloadsValue": "{0} 個下載", "DrmChannelsNotImported": "受 DMR 保護的頻道將不會被導入。", "DropShadow": "背景投影", - "DvrFeatureDescription": "使用Jellyfin DVR安排個人直播電視錄製,系列錄製等。", "EasyPasswordHelp": "你的簡易 PIN 碼將會用於在支援的 Jellyfin 應用上進行離線存取,同時也可被用於區域網路的登入。", "EditMetadata": "編輯中繼資料", "EditSubtitles": "編輯字幕", @@ -494,21 +463,14 @@ "EnableThemeSongsHelp": "瀏覽媒體庫時主題曲將作為背景音樂播放。", "EnableThemeVideos": "啟用主題影片", "EnableThemeVideosHelp": "瀏覽媒體庫時主題影片將作為背景影片播放。", - "EnterFFmpegLocation": "輸入 FFmpeg 路徑", "Episodes": "劇集", - "Error": "錯誤", "ErrorAddingListingsToSchedulesDirect": "在將電視節目時間表新增到您的 Schedules Direct 帳號時出現錯誤。每個 Schedules Direct 帳號只允許有限的時間表。您在繼續前可能需要登入 Schedules Direct 網站並刪除帳號中的其它列表。", - "ErrorAddingGuestAccount1": "新增Jellyfin Connect時發生錯誤。你的賓客有建立Jellyfin帳號嗎?他們可以在 {0} 創建帳號。", - "ErrorAddingGuestAccount2": "若你還是遇到問題,請發送email至 {0} 並附上你和他們的email帳號。", "ErrorAddingMediaPathToVirtualFolder": "新增媒體路徑時發生錯誤,請確認路徑是否有效,且你的 Jellyfin 伺服器有對該位置的存取權。", "ErrorAddingTunerDevice": "新增調諧器設備時發生錯誤,請確認它是否可被存取後再試一次。", "ErrorAddingXmlTvFile": "存取 XMLTV 檔案時發生錯誤,請確認該檔案是否存在後再試一次。", - "ErrorConnectServerUnreachable": "處理請求時發生錯誤。您的伺服器無法與我們位於 {0} 的 Jellyfin Connect伺服器溝通。請確認你的伺服器有網路連結且防火牆或其他安全性程式允許這個程式對外溝通。", "ErrorDeletingItem": "從 Jellyfin 伺服器刪除項目時發生錯誤,請確認伺服器對該磁碟有寫入權限並再試一次。", "ErrorGettingTvLineups": "下載電視節目表時發生錯誤,請確認你的資訊是否正確並重試。", - "ErrorMessagePasswordNotMatchConfirm": "密碼和密碼確認必須吻合。", - "ErrorMessageStartHourGreaterThanEnd": "結束時間必須在開始時間後。", - "ErrorMessageUsernameInUse": "用戶名已存在。請重新選個名稱再試。", + "ErrorStartHourGreaterThanEnd": "結束時間必須在開始時間後。", "ErrorPleaseSelectLineup": "請選擇節目表,然後再試一次。如果沒有可用的節目表,請檢查您的使用者名稱、密碼和郵遞區號是否正確。", "ErrorSavingTvProvider": "儲存電視供應商時發生錯誤,請確認是否可存取並重試。", "EveryNDays": "每 {0} 天", @@ -521,11 +483,8 @@ "Favorites": "我的最愛", "Features": "功能", "FileReadCancelled": "檔案讀取已取消。", - "Fill": "填滿", "Filters": "濾鏡", "FolderTypeBooks": "書籍", - "FolderTypeInherit": "延用", - "FolderTypeMixed": "混合媒體", "FolderTypeUnset": "混合內容", "Folders": "資料夾", "FormatValue": "格式:{0}", @@ -536,27 +495,20 @@ "GroupBySeries": "按系列分組", "GroupVersions": "按版本分組", "GuestStar": "客串", - "GuestUserNotFound": "未找到用戶。請確保用戶名稱正確後重試,或者嘗試輸入他們的電子郵件地址。", "Guide": "指南", "GuideProviderSelectListings": "選擇列表", "H264CrfHelp": "CRF 是 x264 編碼器的預設畫質設置。此方法允許編碼器自動分配位元速率來試著達到一定輸出品質。讓每個畫格得到它需要的位元數來保持所需的品質等級。CRF 會得到最佳的位元速率分配結果。", "EncoderPresetHelp": "速度越慢則會得到更好的壓縮編碼效率。", "HDPrograms": "HD 節目", - "HandledByProxy": "由反向代理處理", "HardwareAccelerationWarning": "啟動硬體加速可能在某些環境下導致系統不穩定。請確認你的作業系統和影片驅動程式是最新的。如果你在開啟此項後難以播放影片,那麼你需要將此選項設回「無」。", "HeaderAccessSchedule": "存取時程", "HeaderAccessScheduleHelp": "建立一個存取時程以限制可存取的時段。", "HeaderActiveDevices": "運行中裝置", "HeaderActivity": "活動", - "HeaderAddDevice": "新增裝置", - "HeaderAddLocalUser": "新增本機使用者", "HeaderAddScheduledTaskTrigger": "新增觸發", - "HeaderAddTag": "加標籤", "HeaderAddToCollection": "加到收藏", "HeaderAddToPlaylist": "加到播放列表", "HeaderAddUpdateImage": "新增/更新圖片", - "HeaderAdvanced": "進階", - "HeaderAirDays": "播出天數", "HeaderAlbumArtists": "專輯演出者", "HeaderAlbums": "專輯", "HeaderAlert": "通知", @@ -566,83 +518,50 @@ "HeaderApiKeysHelp": "外部應用程式需要有一個 API 金鑰以用於和 Jellyfin 伺服器溝通。金鑰會在 Jellyfin 使用者登入時自動發行,或者你可以手動為應用程式產生一個金鑰。", "HeaderApp": "應用程式", "HeaderAppearsOn": "同時出現於", - "HeaderAudio": "音訊", "HeaderAudioBooks": "有聲書", "HeaderAudioSettings": "音訊設定", - "HeaderAudioTracks": "音軌", - "HeaderBackdrops": "背景", "HeaderBlockItemsWithNoRating": "封鎖沒有評級或設置不允許的內容:", "HeaderBooks": "書籍", "HeaderBranding": "品牌", - "HeaderBrandingHelp": "選擇外觀,滿足您和團體的要求。", - "HeaderCameraUpload": "相片上傳", - "HeaderCameraUploadHelp": "Jellyfin 應用程式能自動上傳你通過裝置拍攝的照片至你的 Jellyfin 伺服器。", "HeaderCancelRecording": "取消錄製", "HeaderCancelSeries": "取消系列", - "HeaderCancelSyncJob": "取消同步", "HeaderCastAndCrew": "演員與工作人員", "HeaderChannelAccess": "節目存取", "HeaderChapterImages": "章節圖片", - "HeaderChapters": "章節", - "HeaderCinemaMode": "劇院模式", - "HeaderClients": "客戶端", - "HeaderCloudSync": "雲端同步", "HeaderCodecProfile": "編碼設定檔", "HeaderCodecProfileHelp": "編碼器的設定檔標明了設備播放特定編碼時的限制;如果在限制之內則媒體將被轉碼,否則編碼器將被設定為直接播放。", - "HeaderCollections": "收藏", - "HeaderColumns": "列", "HeaderConfigureRemoteAccess": "設定遠端控制", - "HeaderConfirm": "確認", - "HeaderConfirmDeletion": "確認刪除", "HeaderConfirmPluginInstallation": "確認插件安裝", "HeaderConfirmProfileDeletion": "確認刪除個人資料", - "HeaderConfirmRecordingCancellation": "確認取消錄製", - "HeaderConfirmRecordingDeletion": "確認刪除錄影", - "HeaderConfirmRemoveUser": "移除用戶", "HeaderConfirmRevokeApiKey": "重置 API 金鑰", - "HeaderConfirmSeriesCancellation": "確認系列取消", - "HeaderConfirmation": "確認", "HeaderConnectToServer": "連結至伺服器", "HeaderConnectionFailure": "連結失敗", "HeaderContainerProfile": "影片載體設定", "HeaderContainerProfileHelp": "影片容器的設定檔標明了設備播放特定媒體格式時的限制。如果在限制之內則媒體將被轉碼,否則媒體格式將被設定為直接播放。", "HeaderContinueListening": "繼續聆聽", "HeaderContinueWatching": "繼續觀賞", - "HeaderCredits": "製作人員名單", - "HeaderDashboardUserPassword": "用戶的密碼被管理在每個用戶的私人配置設置中。", - "HeaderDate": "日期", "HeaderDateIssued": "發布日期", "HeaderDefaultRecordingSettings": "預設錄製設定", "HeaderDeleteDevice": "刪除裝置", - "HeaderDeleteImage": "刪除圖片", "HeaderDeleteItems": "刪除項目", "HeaderDeleteProvider": "刪除供應者", "HeaderDeleteTaskTrigger": "刪除任務觸發條件", - "HeaderDestination": "目的地", "HeaderDetectMyDevices": "偵測我的設備", "HeaderDeveloperInfo": "開發者資訊", - "HeaderDevice": "裝置", "HeaderDeviceAccess": "允許裝置存取", "HeaderDevices": "裝置", "HeaderDirectPlayProfile": "直接播放設定檔", "HeaderDirectPlayProfileHelp": "新增直接播放設定檔,標明哪些媒體格式設備可以自己處理。", "HeaderDisplay": "顯示", - "HeaderDownloadSettings": "下載設定", - "HeaderDownloadSubtitlesFor": "下載字幕:", "HeaderDownloadSync": "下載與同步", "HeaderEditImages": "編輯圖片", - "HeaderEmbeddedImage": "內嵌圖片", "HeaderEnabledFields": "已啟用的欄位", "HeaderEnabledFieldsHelp": "反選欄位以鎖定並不讓其數據被更改。", "HeaderEpisodes": "集數", "HeaderError": "錯誤", - "HeaderExport": "輸出", "HeaderExternalIds": "外部 ID:", - "HeaderExternalPlayerPlayback": "外部播放器播放", - "HeaderExternalServices": "外部服務", "HeaderFavoriteAlbums": "最愛專輯", "HeaderFavoriteArtists": "最愛演出者", - "HeaderFavoriteCollections": "最愛收藏", "HeaderFavoriteEpisodes": "最愛影集", "HeaderFavoriteMovies": "最愛電影", "HeaderFavoritePlaylists": "最愛播放列表", @@ -653,168 +572,86 @@ "HeaderFetcherSettings": "擷取器設置", "HeaderFilters": "篩選條件", "HeaderForKids": "給兒童", - "HeaderForgotKey": "忘記金鑰", - "HeaderFreeApps": "免費Jellyfin應用程式", "HeaderGenres": "類型", - "HeaderGuests": "賓客", - "HeaderHomePage": "主畫面", - "HeaderHomeScreen": "主畫面", - "HeaderHomeScreenSettings": "主畫面設定", "HeaderHttpHeaders": "HTTP 標頭", "HeaderIdentification": "身份識別", "HeaderIdentificationCriteriaHelp": "至少輸入一個識別標準。", "HeaderIdentificationHeader": "身份識別標題", "HeaderIdentifyItemHelp": "輸入一個或多個搜索條件。刪除條件可得到更多搜索結果。", - "HeaderImageBackdrop": "背景", - "HeaderImageLogo": "商標", "HeaderImageOptions": "圖片選項", - "HeaderImagePrimary": "主要", - "HeaderImages": "圖片", "HeaderInstall": "安裝", "HeaderItems": "項目", "HeaderKeepRecording": "繼續錄製", "HeaderKeepSeries": "保存系列", "HeaderKodiMetadataHelp": "要啟用或停用 NFO 中繼資料,請在 Jellyfin「建立媒體庫」頁面中編輯該媒體庫「中繼資料儲存」部分。", - "HeaderLanguage": "語言", - "HeaderLatestChannelItems": "最近節目項目", - "HeaderLatestChannelMedia": "最近節目項目", - "HeaderLatestDownloadedVideos": "最近下載影片", - "HeaderLatestFrom": "最新發行:{0}", - "HeaderLatestFromChannel": "最新的 {0}", - "HeaderLatestItems": "最新項目", "HeaderLatestMedia": "最新媒體", "HeaderLatestMusic": "最新音樂", - "HeaderLatestTvRecordings": "最新錄製", - "HeaderLearnMore": "知道更多", "HeaderLibraries": "媒體庫", - "HeaderLibrary": "媒體庫", "HeaderLibraryAccess": "媒體庫存取", "HeaderLibraryFolders": "媒體庫資料夾", "HeaderLibraryOrder": "媒體庫排序", "HeaderLibrarySettings": "媒體庫設定", "HeaderLiveTvTunerSetup": "電視直播調諧器安裝", "HeaderLoginFailure": "登入失敗", - "HeaderManagement": "管理", "HeaderMedia": "媒體", "HeaderMediaInfo": "媒體資訊", - "HeaderMediaLocations": "媒體位址", - "HeaderMenu": "目錄", "HeaderMetadataSettings": "中繼資料設定", - "HeaderMissing": "不見了", "HeaderMoreLikeThis": "更多類似的", "HeaderMovies": "電影", "HeaderMusicQuality": "音質", "HeaderMyDevice": "我的裝置", "HeaderMyMedia": "我的媒體", "HeaderMyMediaSmall": "我的媒體", - "HeaderMyViews": "我的觀看記錄", - "HeaderName": "名字", "HeaderNavigation": "導覽", - "HeaderNetwork": "網路", "HeaderNewApiKey": "新 API 金鑰", - "HeaderNewApiKeyHelp": "允許一個應用程式存取Jellyfin伺服器。", "HeaderNewDevices": "新裝置", - "HeaderNewServer": "新伺服器", "HeaderNextEpisodePlayingInValue": "下一集在 {0} 後播放", "HeaderNextVideoPlayingInValue": "下一部影片在 {0} 後播放", - "HeaderNotifications": "通知", - "HeaderNumberOfPlayers": "播放器", "HeaderOnNow": "現正播放", - "HeaderOptions": "選項", - "HeaderOtherDisplaySettings": "顯示設定", "HeaderOtherItems": "其他項目", - "HeaderOverview": "綜覽", "HeaderPassword": "密碼", "HeaderPasswordReset": "重設密碼", "HeaderPeople": "使用者", - "HeaderPersonInfo": "使用者資訊", "HeaderPhotoAlbums": "相簿", - "HeaderPhotoInfo": "相片資訊", "HeaderPinCodeReset": "重設PIN碼", - "HeaderPlayMyMedia": "播放我的媒體", "HeaderPlayOn": "播放在", "HeaderPlayback": "媒體播放", "HeaderPlaybackError": "播放錯誤", - "HeaderPlaylists": "播放列表", "HeaderPluginInstallation": "插件安裝", - "HeaderProgram": "程式", - "HeaderRecentActivity": "最近活動", - "HeaderRecordingGroups": "錄影群", "HeaderRecordingOptions": "錄影選項", "HeaderRecordingPostProcessing": "錄影後製", - "HeaderReleaseDate": "發行日期", "HeaderRemoteControl": "遙控", "HeaderRemoveMediaFolder": "刪除媒體資料夾", "HeaderRemoveMediaLocation": "刪除媒體位址", - "HeaderRequireManualLogin": "需要手動輸入帳號:", - "HeaderRequireManualLoginHelp": "停用時,Jellyfin應用程式將呈現圖像式使用者選單", - "HeaderResetTuner": "重設調諧器", - "HeaderResolution": "畫質", "HeaderRestart": "重新啟動", - "HeaderRestartingJellyfinServer": "重新啟動Jellyfin伺服器", - "HeaderResult": "結果", - "HeaderResume": "續播", - "HeaderResumeSettings": "續播設定", - "HeaderReviews": "評價", "HeaderRevisionHistory": "更改紀錄", "HeaderRunningTasks": "正在進行的工作", - "HeaderScreenSavers": "螢幕保護程式", - "HeaderSeason": "季", - "HeaderSeasonNumber": "季數", "HeaderSeasons": "季數", "HeaderSecondsValue": "{0} 秒", - "HeaderSelectAudio": "選擇音軌", - "HeaderSelectDevices": "選擇裝置", - "HeaderSelectExternalPlayer": "選擇外接播放器", - "HeaderSelectMediaPath": "選擇媒體位址", "HeaderSelectPath": "選擇位址", - "HeaderSelectSubtitles": "選擇字幕", "HeaderSelectTranscodingPath": "選擇轉碼暫放位址", "HeaderSelectTranscodingPathHelp": "瀏覽或輸入轉碼用來存暫時資料的位址。資料夾需可讀取。", - "HeaderSelectUploadPath": "選擇上傳位址", "HeaderSendMessage": "傳送訊息", "HeaderSeriesOptions": "系列選項", - "HeaderSeriesRecordings": "系列錄影", "HeaderSeriesStatus": "系列狀態", "HeaderServerSettings": "伺服器設定", - "HeaderServices": "服務", "HeaderSettings": "設定", "HeaderSetupLibrary": "設置你的媒體庫", - "HeaderShareMediaFolders": "分享媒體資料夾", "HeaderShutdown": "關機", "HeaderSortBy": "分類", "HeaderSortOrder": "分類順序", - "HeaderSource": "來源", "HeaderSpecialEpisodeInfo": "特集資訊", - "HeaderSpecials": "特機", - "HeaderSplitMedia": "分隔媒體", "HeaderStartNow": "開始播放", "HeaderStopRecording": "停止錄影", "HeaderSubtitleAppearance": "字幕外觀", "HeaderSubtitleDownloads": "字幕下載", - "HeaderSubtitles": "字幕", - "HeaderSupportTheTeam": "支持Jellyfin團隊", "HeaderTags": "標籤", "HeaderThisUserIsCurrentlyDisabled": "這個使用者目前停用", - "HeaderTime": "時間", - "HeaderToAccessPleaseEnterEasyPinCode": "請輸入您的簡易PIN碼", - "HeaderTopPlugins": "熱門插件", - "HeaderTrack": "軌", "HeaderTracks": "軌", - "HeaderTrailers": "預告片", - "HeaderTryPlayback": "嘗試播放", "HeaderTunerDevices": "調諧器裝置", - "BobAndWeaveWithHelp": "Bob and weave (高品質,轉檔慢)", - "LabelRunningTimeValue": "運行時間: {0}", - "MessageApplicationUpdated": "Jellyfin Server 已經更新", - "MessageNamedServerConfigurationUpdatedWithValue": "伺服器設定 {0} 部分已經更新", "Movies": "電影", "Photos": "相片", "Playlists": "播放清單", - "PluginInstalledWithName": "{0} 已安裝", - "PluginUninstalledWithName": "{0} 已移除", - "PluginUpdatedWithName": "{0} 已更新", - "ProviderValue": "提供商: {0}", "Shows": "節目", "Songs": "歌曲", "Sync": "同步", @@ -919,7 +756,6 @@ "HeaderSelectServerCachePathHelp": "瀏覽或者輸入路徑以用於伺服器快取檔案。請確保該資料夾可以被寫入。", "LabelCustomDeviceDisplayNameHelp": "指定自訂的顯示名稱,或者留空以使用設備自己報告的名稱。", "LabelCustomRating": "自訂分級:", - "LabelDashboardTheme": "控制台佈景主題:", "LabelDateAdded": "新增日期:", "LabelDateAddedBehavior": "新内容加入的日期應使用:", "LabelDateTimeLocale": "設定時區:", @@ -978,7 +814,7 @@ "ThemeSongs": "主題曲", "ThemeVideos": "主題曲影片", "Upload": "上傳", - "PasswordResetHeader": "重設密碼", + "HeaderResetPassword": "重設密碼", "ScanLibrary": "掃描媒體庫", "ValueAudioCodec": "音訊編碼:{0}", "ValueCodec": "編碼:{0}", @@ -1140,14 +976,13 @@ "LabelVideoBitrate": "影片比特率:", "MediaInfoSize": "大小", "MediaInfoTimestamp": "時間戳", - "MediaInfoSoftware": "軟體", "MediaInfoStreamTypeData": "檔案", "MediaInfoStreamTypeEmbeddedImage": "內嵌語言", "MediaInfoStreamTypeSubtitle": "字幕", "MediaInfoStreamTypeVideo": "影片", "Menu": "選單", "MetadataManager": "中繼資料管理器", - "NoPluginConfigurationMessage": "這個模組沒有設定選項可供更改。", + "MessageNoPluginConfiguration": "這個模組沒有設定選項可供更改。", "NoSubtitlesHelp": "字幕不會自動讀取,但可於播放時手動選取。", "Normal": "正常", "OptionAllowContentDownloading": "允許下載及同步媒體", @@ -1219,7 +1054,6 @@ "ValueOneSong": "1 首歌", "ValueSeconds": "{0} 秒", "ValueTimeLimitSingleHour": "時間限制:1 小時", - "ViewArtist": "查看演出者", "Watched": "已看過", "Whitelist": "白名單", "Tags": "標記", @@ -1250,19 +1084,16 @@ "LabelMoviePrefix": "電影前綴:", "LabelProfileContainer": "影片容器:", "LabelDropShadow": "陰影:", - "LabelSecureConnectionsMode": "安全連接模式:", "LabelTVHomeScreen": "電視模式主畫面:", "LabelTranscodingContainer": "影片容器:", "MovieLibraryHelp": "查看 {0}Jellyfin 電影命名指南{1}。", "None": "無", - "LinksValue": "連結:{0}", "OptionAllowMediaPlaybackTranscodingHelp": "由於不支持的媒體格式,限制轉檔可能會導致 Jellyfin 應用程式播放失敗。", "MediaInfoLevel": "等級", "MessageNoTrailersFound": "安裝 Trailer channel 來新增網路上預告片,以增進你的電影體驗。", "OptionHasSpecialFeatures": "特色", "RecommendationStarring": "主演 {0}", "Rewind": "倒帶", - "RunAtStartup": "開機時啟動", "SubtitleOffset": "字幕偏移", "TabPlayback": "播放", "Unrated": "尚未評等", @@ -1323,7 +1154,6 @@ "LabelServerHost": "主機:", "LabelSimultaneousConnectionLimit": "同時串流限制:", "LabelSize": "大小:", - "LabelSkin": "主題:", "LabelSkipBackLength": "跳過長度:", "LabelSkipIfGraphicalSubsPresentHelp": "保留文字版本的字幕會更有效率傳遞,減低影片轉碼的機會。", "LabelStopWhenPossible": "當可能時自動停止:", @@ -1344,7 +1174,6 @@ "LabelWeb": "網站:", "LabelXDlnaCapHelp": "決定在 urn:schemas-dlna-org:device-1-0 namespace 中的 X_DLNACAP 元素的內容。", "LabelXDlnaDocHelp": "決定在 urn:schemas-dlna-org:device-1-0 namespace 中的 X-Dlna doc 元素的內容。", - "LaunchWebAppOnStartup": "在啟動伺服器時啟動使用者介面", "LabelUserRemoteClientBitrateLimitHelp": "覆蓋伺服器重播設定中設置的預設全域值。", "LabelTranscodingThreadCountHelp": "選擇轉檔時要使用的最大執行緒數,減少執行緒數將降低 CPU 使用率,但轉換速度可能不足以提供流暢的播放體驗。", "LabelXDlnaCap": "X-DLNA 上限:", @@ -1368,7 +1197,6 @@ "MessageCreateAccountAt": "在 {0} 建立使用者", "MessageDeleteTaskTrigger": "您確定要刪除這個任務觸發器嗎?", "MessageDirectoryPickerBSDInstruction": "對於 BSD 系統,您需要設定包含您 FreeNAS Jail 虛擬機的儲存以便 Jellyfin 存取。", - "MessageDirectoryPickerInstruction": "在網路按鈕無法找到您的裝置的情況下,網路路徑可被手動輸入。例如:{0} 或 {1}。", "MessageDirectoryPickerLinuxInstruction": "使用 Linux on Arch Linux、CentOS、Debian、Fedora、openSUSE 或 Ubuntu 作業系統,您必須授權使用者至少讀取權限來存取您的儲存路徑。", "MessageEnablingOptionLongerScans": "啟用這個選項可能會延長媒體庫的掃描時間。", "MessageFileReadError": "讀取檔案時發生錯誤。", @@ -1424,7 +1252,6 @@ "PleaseSelectTwoItems": "請至少選擇 2 個項目。", "PreferEmbeddedTitlesOverFileNames": "優先使用內建的標題而不是檔案名稱", "PreferEmbeddedTitlesOverFileNamesHelp": "這將在沒有網路上的中繼資料或本地中繼資料可用時顯示預設標題。", - "PreferredNotRequired": "首選,但非必需", "Premiere": "首映", "Premieres": "首映", "Previous": "上一個", @@ -1434,7 +1261,6 @@ "Programs": "節目", "Quality": "品質", "PackageInstallFailed": "{0} (版本 {1}) 安裝失敗。", - "QueueAllFromHere": "將這裡的全部內容加入佇列", "Raised": "提高", "Rate": "評等", "Recordings": "錄影", @@ -1461,8 +1287,8 @@ "OptionIgnoreTranscodeByteRangeRequestsHelp": "如果啟用,這些請求會被兌現,但會忽略的位元組範圍標頭。", "OptionLoginAttemptsBeforeLockoutHelp": "若值為 0,則表示將允許普通使用者嘗試三次、管理員嘗試五次的預設值,設定為 -1 來停用此功能。", "OptionRequirePerfectSubtitleMatchHelp": "僅下載經過測試並確認跟此影片檔案完美匹配的字幕。取消勾選這個項目可以增加找到並下載字幕的可能性,但可能會下載時間軸、翻譯不正確的字幕。", - "PluginInstalledMessage": "這個模組安裝成功,但 Jellyfin 伺服器需要重啟以使模組生效。", - "RecordingPathChangeMessage": "更改錄製資料夾不會將現有錄製從舊位置遷移到新的,您需要手動移動它們。", + "MessagePluginInstalled": "這個模組安裝成功,但 Jellyfin 伺服器需要重啟以使模組生效。", + "MessageChangeRecordingPath": "更改錄製資料夾不會將現有錄製從舊位置遷移到新的,您需要手動移動它們。", "LabelEmbedAlbumArtDidl": "於 Didl 中嵌入專輯封面", "LabelEnableAutomaticPortMapHelp": "透過 UPnP 自動將路由器上的公共埠轉發到伺服器上的本地埠。這可能不適用於某些路由器型號或網路設定。在伺服器重新啟動後才會進行更改。", "LabelEmbedAlbumArtDidlHelp": "有些裝置使用這個方式來取得專輯封面,啟用這個選項可能導致其他設備播放失敗。", @@ -1501,7 +1327,6 @@ "LabelSonyAggregationFlagsHelp": "決定在 urn:schemas-dlna-org:device-1-0 namespace 中的 aggregationFlags 元素的內容。", "LabelSortOrder": "排列順序:", "LabelSortTitle": "短標題:", - "LabelSoundEffects": "音效:", "LabelSource": "來源:", "LabelSpecialSeasonsDisplayName": "SP 季顯示名稱:", "LabelSportsCategories": "體育分類:", @@ -1564,7 +1389,6 @@ "MessageImageTypeNotSelected": "在下拉選單中選取圖片類型。", "RemoveFromCollection": "從收藏移除", "RepeatEpisodes": "重複劇集", - "RequiredForAllRemoteConnections": "所有遠端連接都需要", "SaveSubtitlesIntoMediaFolders": "保存字幕到媒體所在資料夾", "SaveSubtitlesIntoMediaFoldersHelp": "將字幕存儲在影片檔案旁邊可以讓管理更方便。", "ScanForNewAndUpdatedFiles": "掃描新的和有修改的文件", @@ -1574,7 +1398,6 @@ "TitlePlayback": "播放", "ValueConditions": "條件:{0}", "Vertical": "垂直", - "VideoRange": "影片範圍", "ViewPlaybackInfo": "查看播放訊息", "XmlTvSportsCategoriesHelp": "有這些類別的節目會被當作體育節目,以「|」來分隔多個項目。", "XmlTvPathHelp": "XML 電視檔案的路徑,Jellyfin 將讀取該檔案並定期檢查其更新,您負責建立和更新檔案。", @@ -1587,7 +1410,6 @@ "LabelDisplaySpecialsWithinSeasons": "顯示劇集季度中的特集", "LabelNumberOfGuideDaysHelp": "下載更多電視指南資料會提供更好時間表查看能力,但將需要更長的下載時間。自動基於頻道數目來選擇。", "LabelOptionalNetworkPath": "(選用)分享的網路資料夾:", - "MessageInstallPluginFromApp": "必須從要在其中使用它的應用程式中安裝此模組。", "OptionResElement": "res 元素", "PinCodeResetComplete": "PIN 碼已被重設。", "PinCodeResetConfirmation": "你確定要重設 PIN 碼?", @@ -1599,12 +1421,10 @@ "XmlDocumentAttributeListHelp": "這些屬性會在每一個XML回應的根元素上應用。", "SkipEpisodesAlreadyInMyLibraryHelp": "劇集將使用季和劇集編號進行比較。", "SelectAdminUsername": "請為管理員賬戶選擇一個用戶名。", - "CopyStreamURLError": "複製連結的時候發生錯誤。", "OptionSaveMetadataAsHiddenHelp": "更改此項將應用於以後保存的元數據。現有元數據文件將在下一次 Jellyfin 伺服器保存它們時被更新。", "OptionAllowRemoteSharedDevicesHelp": "DLNA裝置將被視為共享中,直至有使用者控制。", "OptionForceRemoteSourceTranscoding": "强制遠端轉碼(像電視直播一樣)", "MessageConfirmAppExit": "您要退出嗎?", - "LaunchWebAppOnStartupHelp": "伺服器啓動時在默認游覽器中打開網頁端。使用重啓伺服器功能時此項不生效。", "LabelVideoResolution": "視頻解析度:", "LabelStreamType": "串流類型:", "LabelPlayerDimensions": "播放器尺寸:", @@ -1619,7 +1439,6 @@ "PreferEmbeddedEpisodeInfosOverFileNamesHelp": "這將會使用內建劇集資料。", "PlaybackErrorNoCompatibleStream": "用戶端與該媒體不相容,伺服器也未傳送相容的媒體格式。", "PreferEmbeddedEpisodeInfosOverFileNames": "優先使用內建劇集資訊而不是檔案名稱", - "OtherArtist": "其他歌手", "Artist": "演出者", "AlbumArtist": "專輯歌手", "Album": "專輯", @@ -1639,7 +1458,6 @@ "EveryXHours": "每 {0} 小時", "OnApplicationStartup": "當應用程式啟動時", "Season": "季", - "ReleaseGroup": "發行組織", "Person": "人物", "Movie": "電影", "LabelLibraryPageSizeHelp": "設置媒體庫頁面每頁要顯示的最多媒體個數。設置為 0 來停用分頁。", @@ -1649,7 +1467,6 @@ "DeinterlaceMethodHelp": "選擇對隔行掃描內容進行轉碼時所用的反交錯方法。", "BoxSet": "套裝", "UnsupportedPlayback": "Jellyfin 無法解密受 DRM 保護的內容,但仍然會嘗試播放所有內容。某些檔案由於被加密或包含如互動標題等不受支援的內容,在播放時可能會沒有畫面。", - "MessageUnauthorizedUser": "您目前無權存取伺服器,請與您的伺服器管理員聯繫以獲取更多訊息。", "Filter": "篩選器", "New": "新增", "ApiKeysCaption": "目前已啟用的API金鑰列表", @@ -1660,7 +1477,6 @@ "EnableFasterAnimationsHelp": "使用更快的動畫與過渡效果", "EnableFasterAnimations": "更快的動畫", "LabelRequireHttps": "強制 HTTPS", - "LabelNightly": "開發版", "LabelStable": "穩定版", "LabelChromecastVersion": "Chromecast 版本", "LabelEnableHttpsHelp": "讓伺服器監聽指定的 HTTPS 端口。須設定有效的證書以便使其生效。", @@ -1684,8 +1500,8 @@ "ShowLess": "顯示更少", "ShowMore": "顯示更多", "SyncPlayAccessHelp": "選取該使用者對同步播放的存取權。此功能能讓你與其他裝置同步播放進度。", - "EnableBlurhash": "啟用模糊的占位圖片", - "EnableBlurhashHelp": "尚未讀取完畢的圖片會先顯示模糊的版本", + "EnableBlurHash": "啟用模糊的占位圖片", + "EnableBlurHashHelp": "尚未讀取完畢的圖片會先顯示模糊的版本", "ClearQueue": "清空佇列", "StopPlayback": "停止播放", "ButtonPlayer": "播放器", diff --git a/src/styles/_mixins.scss b/src/styles/_mixins.scss new file mode 100644 index 0000000000..ed23ab0833 --- /dev/null +++ b/src/styles/_mixins.scss @@ -0,0 +1,23 @@ +@mixin background-cover($position) { + background-position: $position; + background-repeat: no-repeat; + background-size: cover; +} + +@mixin circle($size) { + @include square($size); + border-radius: 100%; +} + +@mixin position($position, $top: null, $right: null, $bottom: null, $left: null) { + position: $position; + top: $top; + right: $right; + bottom: $bottom; + left: $left; +} + +@mixin square($size) { + height: $size; + width: $size; +} diff --git a/src/tv.html b/src/tv.html index ceb5c51b44..035f1db6a3 100644 --- a/src/tv.html +++ b/src/tv.html @@ -31,7 +31,7 @@
- +
diff --git a/yarn.lock b/yarn.lock index 6704749acb..17c2b176ef 100644 --- a/yarn.lock +++ b/yarn.lock @@ -9,28 +9,28 @@ dependencies: "@babel/highlight" "^7.10.4" -"@babel/compat-data@^7.10.4": - version "7.10.4" - resolved "https://registry.yarnpkg.com/@babel/compat-data/-/compat-data-7.10.4.tgz#706a6484ee6f910b719b696a9194f8da7d7ac241" - integrity sha512-t+rjExOrSVvjQQXNp5zAIYDp00KjdvGl/TpDX5REPr0S9IAIPQMTilcfG6q8c0QFmj9lSTVySV2VTsyggvtNIw== +"@babel/compat-data@^7.10.4", "@babel/compat-data@^7.11.0": + version "7.11.0" + resolved "https://registry.yarnpkg.com/@babel/compat-data/-/compat-data-7.11.0.tgz#e9f73efe09af1355b723a7f39b11bad637d7c99c" + integrity sha512-TPSvJfv73ng0pfnEOh17bYMPQbI95+nGWc71Ss4vZdRBHTDqmM9Z8ZV4rYz8Ks7sfzc95n30k6ODIq5UGnXcYQ== dependencies: browserslist "^4.12.0" invariant "^2.2.4" semver "^5.5.0" -"@babel/core@>=7.2.2", "@babel/core@>=7.9.0", "@babel/core@^7.10.5": - version "7.10.5" - resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.10.5.tgz#1f15e2cca8ad9a1d78a38ddba612f5e7cdbbd330" - integrity sha512-O34LQooYVDXPl7QWCdW9p4NR+QlzOr7xShPPJz8GsuCU3/8ua/wqTr7gmnxXv+WBESiGU/G5s16i6tUvHkNb+w== +"@babel/core@>=7.2.2", "@babel/core@>=7.9.0", "@babel/core@^7.11.0": + version "7.11.0" + resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.11.0.tgz#73b9c33f1658506887f767c26dae07798b30df76" + integrity sha512-mkLq8nwaXmDtFmRkQ8ED/eA2CnVw4zr7dCztKalZXBvdK5EeNUAesrrwUqjQEzFgomJssayzB0aqlOsP1vGLqg== dependencies: "@babel/code-frame" "^7.10.4" - "@babel/generator" "^7.10.5" - "@babel/helper-module-transforms" "^7.10.5" + "@babel/generator" "^7.11.0" + "@babel/helper-module-transforms" "^7.11.0" "@babel/helpers" "^7.10.4" - "@babel/parser" "^7.10.5" + "@babel/parser" "^7.11.0" "@babel/template" "^7.10.4" - "@babel/traverse" "^7.10.5" - "@babel/types" "^7.10.5" + "@babel/traverse" "^7.11.0" + "@babel/types" "^7.11.0" convert-source-map "^1.7.0" debug "^4.1.0" gensync "^1.0.0-beta.1" @@ -40,12 +40,28 @@ semver "^5.4.1" source-map "^0.5.0" -"@babel/generator@^7.10.5": - version "7.10.5" - resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.10.5.tgz#1b903554bc8c583ee8d25f1e8969732e6b829a69" - integrity sha512-3vXxr3FEW7E7lJZiWQ3bM4+v/Vyr9C+hpolQ8BGFr9Y8Ri2tFLWTixmwKBafDujO1WVah4fhZBeU1bieKdghig== +"@babel/eslint-parser@^7.11.0": + version "7.11.0" + resolved "https://registry.yarnpkg.com/@babel/eslint-parser/-/eslint-parser-7.11.0.tgz#b123924edd44508782c030066c926f1b807151cd" + integrity sha512-dJDM2Pc01D9TwKL3Mmz2xgVF9X953RBHq9H4gywbN1q8MrfvXmNHfsCt06vvByBVQqm+9WxMs+doEH/R09TwWQ== dependencies: - "@babel/types" "^7.10.5" + eslint-scope "5.1.0" + eslint-visitor-keys "^1.3.0" + semver "^6.3.0" + +"@babel/eslint-plugin@^7.11.0": + version "7.11.0" + resolved "https://registry.yarnpkg.com/@babel/eslint-plugin/-/eslint-plugin-7.11.0.tgz#55d5b6bd29859cabce152f16d01b3a8150d5b295" + integrity sha512-+gfPM0/T6d25jKBgmxWp38W0jqRs16Vt7DPBxGOcnN/7nS2A/6QoaXOYEaccvWS5a9UpWlMIAylivp6UtH8/sQ== + dependencies: + eslint-rule-composer "^0.3.0" + +"@babel/generator@^7.11.0": + version "7.11.0" + resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.11.0.tgz#4b90c78d8c12825024568cbe83ee6c9af193585c" + integrity sha512-fEm3Uzw7Mc9Xi//qU20cBKatTfs2aOtKqmvy/Vm7RkJEGFQ4xc9myCfbXxqK//ZS8MR/ciOHw6meGASJuKmDfQ== + dependencies: + "@babel/types" "^7.11.0" jsesc "^2.5.1" source-map "^0.5.0" @@ -150,17 +166,17 @@ dependencies: "@babel/types" "^7.10.4" -"@babel/helper-module-transforms@^7.10.4", "@babel/helper-module-transforms@^7.10.5": - version "7.10.5" - resolved "https://registry.yarnpkg.com/@babel/helper-module-transforms/-/helper-module-transforms-7.10.5.tgz#120c271c0b3353673fcdfd8c053db3c544a260d6" - integrity sha512-4P+CWMJ6/j1W915ITJaUkadLObmCRRSC234uctJfn/vHrsLNxsR8dwlcXv9ZhJWzl77awf+mWXSZEKt5t0OnlA== +"@babel/helper-module-transforms@^7.10.4", "@babel/helper-module-transforms@^7.10.5", "@babel/helper-module-transforms@^7.11.0": + version "7.11.0" + resolved "https://registry.yarnpkg.com/@babel/helper-module-transforms/-/helper-module-transforms-7.11.0.tgz#b16f250229e47211abdd84b34b64737c2ab2d359" + integrity sha512-02EVu8COMuTRO1TAzdMtpBPbe6aQ1w/8fePD2YgQmxZU4gpNWaL9gK3Jp7dxlkUlUCJOTaSeA+Hrm1BRQwqIhg== dependencies: "@babel/helper-module-imports" "^7.10.4" "@babel/helper-replace-supers" "^7.10.4" "@babel/helper-simple-access" "^7.10.4" - "@babel/helper-split-export-declaration" "^7.10.4" + "@babel/helper-split-export-declaration" "^7.11.0" "@babel/template" "^7.10.4" - "@babel/types" "^7.10.5" + "@babel/types" "^7.11.0" lodash "^4.17.19" "@babel/helper-optimise-call-expression@^7.10.4": @@ -170,7 +186,7 @@ dependencies: "@babel/types" "^7.10.4" -"@babel/helper-plugin-utils@^7.0.0", "@babel/helper-plugin-utils@^7.10.4", "@babel/helper-plugin-utils@^7.8.0": +"@babel/helper-plugin-utils@^7.0.0", "@babel/helper-plugin-utils@^7.10.4", "@babel/helper-plugin-utils@^7.8.0", "@babel/helper-plugin-utils@^7.8.3": version "7.10.4" resolved "https://registry.yarnpkg.com/@babel/helper-plugin-utils/-/helper-plugin-utils-7.10.4.tgz#2f75a831269d4f677de49986dff59927533cf375" integrity sha512-O4KCvQA6lLiMU9l2eawBPMf1xPP8xPfB3iEQw150hOVTqj/rfXz0ThTb4HEzqQfs2Bmo5Ay8BzxfzVtBrr9dVg== @@ -211,6 +227,13 @@ "@babel/template" "^7.10.4" "@babel/types" "^7.10.4" +"@babel/helper-skip-transparent-expression-wrappers@^7.11.0": + version "7.11.0" + resolved "https://registry.yarnpkg.com/@babel/helper-skip-transparent-expression-wrappers/-/helper-skip-transparent-expression-wrappers-7.11.0.tgz#eec162f112c2f58d3af0af125e3bb57665146729" + integrity sha512-0XIdiQln4Elglgjbwo9wuJpL/K7AGCY26kmEt0+pRP0TAj4jjyNq1MjoRvikrTVqKcx4Gysxt4cXvVFXP/JO2Q== + dependencies: + "@babel/types" "^7.11.0" + "@babel/helper-split-export-declaration@^7.10.4": version "7.10.4" resolved "https://registry.yarnpkg.com/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.10.4.tgz#2c70576eaa3b5609b24cb99db2888cc3fc4251d1" @@ -218,6 +241,13 @@ dependencies: "@babel/types" "^7.10.4" +"@babel/helper-split-export-declaration@^7.11.0": + version "7.11.0" + resolved "https://registry.yarnpkg.com/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.11.0.tgz#f8a491244acf6a676158ac42072911ba83ad099f" + integrity sha512-74Vejvp6mHkGE+m+k5vHY93FX2cAtrw1zXrZXRlG4l410Nm9PxfEiVTn1PjDPV5SnmieiueY4AFg2xqhNFuuZg== + dependencies: + "@babel/types" "^7.11.0" + "@babel/helper-validator-identifier@^7.10.4": version "7.10.4" resolved "https://registry.yarnpkg.com/@babel/helper-validator-identifier/-/helper-validator-identifier-7.10.4.tgz#a78c7a7251e01f616512d31b10adcf52ada5e0d2" @@ -251,10 +281,10 @@ chalk "^2.0.0" js-tokens "^4.0.0" -"@babel/parser@^7.10.4", "@babel/parser@^7.10.5": - version "7.10.5" - resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.10.5.tgz#e7c6bf5a7deff957cec9f04b551e2762909d826b" - integrity sha512-wfryxy4bE1UivvQKSQDU4/X6dr+i8bctjUjj8Zyt3DQy7NtPizJXT8M52nqpNKL+nq2PW8lxk4ZqLj0fD4B4hQ== +"@babel/parser@^7.10.4", "@babel/parser@^7.11.0": + version "7.11.0" + resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.11.0.tgz#a9d7e11aead25d3b422d17b2c6502c8dddef6a5d" + integrity sha512-qvRvi4oI8xii8NllyEc4MDJjuZiNaRzyb7Y7lup1NqJV8TZHF4O27CcP+72WPn/k1zkgJ6WJfnIbk4jTsVAZHw== "@babel/plugin-proposal-async-generator-functions@^7.10.4": version "7.10.4" @@ -281,6 +311,14 @@ "@babel/helper-plugin-utils" "^7.10.4" "@babel/plugin-syntax-dynamic-import" "^7.8.0" +"@babel/plugin-proposal-export-namespace-from@^7.10.4": + version "7.10.4" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-export-namespace-from/-/plugin-proposal-export-namespace-from-7.10.4.tgz#570d883b91031637b3e2958eea3c438e62c05f54" + integrity sha512-aNdf0LY6/3WXkhh0Fdb6Zk9j1NMD8ovj3F6r0+3j837Pn1S1PdNtcwJ5EG9WkVPNHPxyJDaxMaAOVq4eki0qbg== + dependencies: + "@babel/helper-plugin-utils" "^7.10.4" + "@babel/plugin-syntax-export-namespace-from" "^7.8.3" + "@babel/plugin-proposal-json-strings@^7.10.4": version "7.10.4" resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-json-strings/-/plugin-proposal-json-strings-7.10.4.tgz#593e59c63528160233bd321b1aebe0820c2341db" @@ -289,6 +327,14 @@ "@babel/helper-plugin-utils" "^7.10.4" "@babel/plugin-syntax-json-strings" "^7.8.0" +"@babel/plugin-proposal-logical-assignment-operators@^7.11.0": + version "7.11.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-logical-assignment-operators/-/plugin-proposal-logical-assignment-operators-7.11.0.tgz#9f80e482c03083c87125dee10026b58527ea20c8" + integrity sha512-/f8p4z+Auz0Uaf+i8Ekf1iM7wUNLcViFUGiPxKeXvxTSl63B875YPiVdUDdem7hREcI0E0kSpEhS8tF5RphK7Q== + dependencies: + "@babel/helper-plugin-utils" "^7.10.4" + "@babel/plugin-syntax-logical-assignment-operators" "^7.10.4" + "@babel/plugin-proposal-nullish-coalescing-operator@^7.10.4": version "7.10.4" resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-nullish-coalescing-operator/-/plugin-proposal-nullish-coalescing-operator-7.10.4.tgz#02a7e961fc32e6d5b2db0649e01bf80ddee7e04a" @@ -305,10 +351,10 @@ "@babel/helper-plugin-utils" "^7.10.4" "@babel/plugin-syntax-numeric-separator" "^7.10.4" -"@babel/plugin-proposal-object-rest-spread@^7.10.4": - version "7.10.4" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.10.4.tgz#50129ac216b9a6a55b3853fdd923e74bf553a4c0" - integrity sha512-6vh4SqRuLLarjgeOf4EaROJAHjvu9Gl+/346PbDH9yWbJyfnJ/ah3jmYKYtswEyCoWZiidvVHjHshd4WgjB9BA== +"@babel/plugin-proposal-object-rest-spread@^7.11.0": + version "7.11.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.11.0.tgz#bd81f95a1f746760ea43b6c2d3d62b11790ad0af" + integrity sha512-wzch41N4yztwoRw0ak+37wxwJM2oiIiy6huGCoqkvSTA9acYWcPfn9Y4aJqmFFJ70KTJUu29f3DQ43uJ9HXzEA== dependencies: "@babel/helper-plugin-utils" "^7.10.4" "@babel/plugin-syntax-object-rest-spread" "^7.8.0" @@ -322,12 +368,13 @@ "@babel/helper-plugin-utils" "^7.10.4" "@babel/plugin-syntax-optional-catch-binding" "^7.8.0" -"@babel/plugin-proposal-optional-chaining@^7.10.4": - version "7.10.4" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-optional-chaining/-/plugin-proposal-optional-chaining-7.10.4.tgz#750f1255e930a1f82d8cdde45031f81a0d0adff7" - integrity sha512-ZIhQIEeavTgouyMSdZRap4VPPHqJJ3NEs2cuHs5p0erH+iz6khB0qfgU8g7UuJkG88+fBMy23ZiU+nuHvekJeQ== +"@babel/plugin-proposal-optional-chaining@^7.11.0": + version "7.11.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-optional-chaining/-/plugin-proposal-optional-chaining-7.11.0.tgz#de5866d0646f6afdaab8a566382fe3a221755076" + integrity sha512-v9fZIu3Y8562RRwhm1BbMRxtqZNFmFA2EG+pT2diuU8PT3H6T/KXoZ54KgYisfOFZHV6PfvAiBIZ9Rcz+/JCxA== dependencies: "@babel/helper-plugin-utils" "^7.10.4" + "@babel/helper-skip-transparent-expression-wrappers" "^7.11.0" "@babel/plugin-syntax-optional-chaining" "^7.8.0" "@babel/plugin-proposal-private-methods@^7.10.1", "@babel/plugin-proposal-private-methods@^7.10.4": @@ -367,6 +414,13 @@ dependencies: "@babel/helper-plugin-utils" "^7.8.0" +"@babel/plugin-syntax-export-namespace-from@^7.8.3": + version "7.8.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-export-namespace-from/-/plugin-syntax-export-namespace-from-7.8.3.tgz#028964a9ba80dbc094c915c487ad7c4e7a66465a" + integrity sha512-MXf5laXo6c1IbEbegDmzGPwGNTsHZmEy6QGznu5Sh2UCWvueywb2ee+CCE4zQiZstxU9BMoQO9i6zUFSY0Kj0Q== + dependencies: + "@babel/helper-plugin-utils" "^7.8.3" + "@babel/plugin-syntax-json-strings@^7.8.0": version "7.8.3" resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-json-strings/-/plugin-syntax-json-strings-7.8.3.tgz#01ca21b668cd8218c9e640cb6dd88c5412b2c96a" @@ -374,6 +428,13 @@ dependencies: "@babel/helper-plugin-utils" "^7.8.0" +"@babel/plugin-syntax-logical-assignment-operators@^7.10.4": + version "7.10.4" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-logical-assignment-operators/-/plugin-syntax-logical-assignment-operators-7.10.4.tgz#ca91ef46303530448b906652bac2e9fe9941f699" + integrity sha512-d8waShlpFDinQ5MtvGU9xDAOzKH47+FFoney2baFIoMr952hKOLp1HR7VszoZvOsV/4+RRszNY7D17ba0te0ig== + dependencies: + "@babel/helper-plugin-utils" "^7.10.4" + "@babel/plugin-syntax-nullish-coalescing-operator@^7.8.0": version "7.8.3" resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-nullish-coalescing-operator/-/plugin-syntax-nullish-coalescing-operator-7.8.3.tgz#167ed70368886081f74b5c36c65a88c03b66d1a9" @@ -622,12 +683,13 @@ dependencies: "@babel/helper-plugin-utils" "^7.10.4" -"@babel/plugin-transform-spread@^7.10.4": - version "7.10.4" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-spread/-/plugin-transform-spread-7.10.4.tgz#4e2c85ea0d6abaee1b24dcfbbae426fe8d674cff" - integrity sha512-1e/51G/Ni+7uH5gktbWv+eCED9pP8ZpRhZB3jOaI3mmzfvJTWHkuyYTv0Z5PYtyM+Tr2Ccr9kUdQxn60fI5WuQ== +"@babel/plugin-transform-spread@^7.11.0": + version "7.11.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-spread/-/plugin-transform-spread-7.11.0.tgz#fa84d300f5e4f57752fe41a6d1b3c554f13f17cc" + integrity sha512-UwQYGOqIdQJe4aWNyS7noqAnN2VbaczPLiEtln+zPowRNlD+79w3oi2TWfYe0eZgd+gjZCbsydN7lzWysDt+gw== dependencies: "@babel/helper-plugin-utils" "^7.10.4" + "@babel/helper-skip-transparent-expression-wrappers" "^7.11.0" "@babel/plugin-transform-sticky-regex@^7.10.4": version "7.10.4" @@ -675,30 +737,34 @@ core-js "^2.6.5" regenerator-runtime "^0.13.4" -"@babel/preset-env@^7.10.3": - version "7.10.4" - resolved "https://registry.yarnpkg.com/@babel/preset-env/-/preset-env-7.10.4.tgz#fbf57f9a803afd97f4f32e4f798bb62e4b2bef5f" - integrity sha512-tcmuQ6vupfMZPrLrc38d0sF2OjLT3/bZ0dry5HchNCQbrokoQi4reXqclvkkAT5b+gWc23meVWpve5P/7+w/zw== +"@babel/preset-env@^7.11.0": + version "7.11.0" + resolved "https://registry.yarnpkg.com/@babel/preset-env/-/preset-env-7.11.0.tgz#860ee38f2ce17ad60480c2021ba9689393efb796" + integrity sha512-2u1/k7rG/gTh02dylX2kL3S0IJNF+J6bfDSp4DI2Ma8QN6Y9x9pmAax59fsCk6QUQG0yqH47yJWA+u1I1LccAg== dependencies: - "@babel/compat-data" "^7.10.4" + "@babel/compat-data" "^7.11.0" "@babel/helper-compilation-targets" "^7.10.4" "@babel/helper-module-imports" "^7.10.4" "@babel/helper-plugin-utils" "^7.10.4" "@babel/plugin-proposal-async-generator-functions" "^7.10.4" "@babel/plugin-proposal-class-properties" "^7.10.4" "@babel/plugin-proposal-dynamic-import" "^7.10.4" + "@babel/plugin-proposal-export-namespace-from" "^7.10.4" "@babel/plugin-proposal-json-strings" "^7.10.4" + "@babel/plugin-proposal-logical-assignment-operators" "^7.11.0" "@babel/plugin-proposal-nullish-coalescing-operator" "^7.10.4" "@babel/plugin-proposal-numeric-separator" "^7.10.4" - "@babel/plugin-proposal-object-rest-spread" "^7.10.4" + "@babel/plugin-proposal-object-rest-spread" "^7.11.0" "@babel/plugin-proposal-optional-catch-binding" "^7.10.4" - "@babel/plugin-proposal-optional-chaining" "^7.10.4" + "@babel/plugin-proposal-optional-chaining" "^7.11.0" "@babel/plugin-proposal-private-methods" "^7.10.4" "@babel/plugin-proposal-unicode-property-regex" "^7.10.4" "@babel/plugin-syntax-async-generators" "^7.8.0" "@babel/plugin-syntax-class-properties" "^7.10.4" "@babel/plugin-syntax-dynamic-import" "^7.8.0" + "@babel/plugin-syntax-export-namespace-from" "^7.8.3" "@babel/plugin-syntax-json-strings" "^7.8.0" + "@babel/plugin-syntax-logical-assignment-operators" "^7.10.4" "@babel/plugin-syntax-nullish-coalescing-operator" "^7.8.0" "@babel/plugin-syntax-numeric-separator" "^7.10.4" "@babel/plugin-syntax-object-rest-spread" "^7.8.0" @@ -731,14 +797,14 @@ "@babel/plugin-transform-regenerator" "^7.10.4" "@babel/plugin-transform-reserved-words" "^7.10.4" "@babel/plugin-transform-shorthand-properties" "^7.10.4" - "@babel/plugin-transform-spread" "^7.10.4" + "@babel/plugin-transform-spread" "^7.11.0" "@babel/plugin-transform-sticky-regex" "^7.10.4" "@babel/plugin-transform-template-literals" "^7.10.4" "@babel/plugin-transform-typeof-symbol" "^7.10.4" "@babel/plugin-transform-unicode-escapes" "^7.10.4" "@babel/plugin-transform-unicode-regex" "^7.10.4" "@babel/preset-modules" "^0.1.3" - "@babel/types" "^7.10.4" + "@babel/types" "^7.11.0" browserslist "^4.12.0" core-js-compat "^3.6.2" invariant "^2.2.2" @@ -779,25 +845,25 @@ "@babel/parser" "^7.10.4" "@babel/types" "^7.10.4" -"@babel/traverse@^7.10.4", "@babel/traverse@^7.10.5": - version "7.10.5" - resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.10.5.tgz#77ce464f5b258be265af618d8fddf0536f20b564" - integrity sha512-yc/fyv2gUjPqzTz0WHeRJH2pv7jA9kA7mBX2tXl/x5iOE81uaVPuGPtaYk7wmkx4b67mQ7NqI8rmT2pF47KYKQ== +"@babel/traverse@^7.10.4", "@babel/traverse@^7.11.0": + version "7.11.0" + resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.11.0.tgz#9b996ce1b98f53f7c3e4175115605d56ed07dd24" + integrity sha512-ZB2V+LskoWKNpMq6E5UUCrjtDUh5IOTAyIl0dTjIEoXum/iKWkoIEKIRDnUucO6f+2FzNkE0oD4RLKoPIufDtg== dependencies: "@babel/code-frame" "^7.10.4" - "@babel/generator" "^7.10.5" + "@babel/generator" "^7.11.0" "@babel/helper-function-name" "^7.10.4" - "@babel/helper-split-export-declaration" "^7.10.4" - "@babel/parser" "^7.10.5" - "@babel/types" "^7.10.5" + "@babel/helper-split-export-declaration" "^7.11.0" + "@babel/parser" "^7.11.0" + "@babel/types" "^7.11.0" debug "^4.1.0" globals "^11.1.0" lodash "^4.17.19" -"@babel/types@^7.10.4", "@babel/types@^7.10.5", "@babel/types@^7.4.4": - version "7.10.5" - resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.10.5.tgz#d88ae7e2fde86bfbfe851d4d81afa70a997b5d15" - integrity sha512-ixV66KWfCI6GKoA/2H9v6bQdbfXEwwpOdQ8cRvb4F+eyvhlaHxWFMQB4+3d9QFJXZsiiiqVrewNV0DFEQpyT4Q== +"@babel/types@^7.10.4", "@babel/types@^7.11.0", "@babel/types@^7.4.4": + version "7.11.0" + resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.11.0.tgz#2ae6bf1ba9ae8c3c43824e5861269871b206e90d" + integrity sha512-O53yME4ZZI0jO1EVGtF1ePGl0LHirG4P1ibcD80XyzZcKhcMFeCXmh4Xb1ifGBIV233Qg12x4rBfQgA+tmOukA== dependencies: "@babel/helper-validator-identifier" "^7.10.4" lodash "^4.17.19" @@ -1199,10 +1265,10 @@ acorn@^6.4.1: resolved "https://registry.yarnpkg.com/acorn/-/acorn-6.4.1.tgz#531e58ba3f51b9dacb9a6646ca4debf5b14ca474" integrity sha512-ZVA9k326Nwrj3Cj9jlh3wGFutC2ZornPNARZwsNYqQYgN0EsV2d53w5RN/co65Ohn4sUAUtb1rSUAOD6XN9idA== -acorn@^7.1.1: - version "7.1.1" - resolved "https://registry.yarnpkg.com/acorn/-/acorn-7.1.1.tgz#e35668de0b402f359de515c5482a1ab9f89a69bf" - integrity sha512-add7dgA5ppRPxCFJoAGfMDi7PIBXq1RtGo7BhbLaxwrXPOmw8gq48Y9ozT01hUKy9byMjlR20EJhu5zlkErEkg== +acorn@^7.3.1: + version "7.3.1" + resolved "https://registry.yarnpkg.com/acorn/-/acorn-7.3.1.tgz#85010754db53c3fbaf3b9ea3e083aa5c5d147ffd" + integrity sha512-tLc0wSnatxAQHVHUapaHdz72pi9KUyHjq5KyHjGg9Y8Ifdc79pTh2XvI6I1/chZbnM7QtNKzh66ooDogPZSleA== after@0.8.2: version "0.8.2" @@ -1227,7 +1293,7 @@ ajv-keywords@^3.1.0, ajv-keywords@^3.4.1: resolved "https://registry.yarnpkg.com/ajv-keywords/-/ajv-keywords-3.4.1.tgz#ef916e271c64ac12171fd8384eaae6b2345854da" integrity sha512-RO1ibKvd27e6FEShVFfPALuHI3WjSVNeK5FIsmme/LYRNxjKuNj+Dt7bucLa6NdSv3JcVTyMlm9kGR84z1XpaQ== -ajv@^6.1.0, ajv@^6.10.0, ajv@^6.10.2, ajv@^6.12.2, ajv@^6.5.5: +ajv@^6.1.0, ajv@^6.12.2, ajv@^6.5.5: version "6.12.2" resolved "https://registry.yarnpkg.com/ajv/-/ajv-6.12.2.tgz#c629c5eced17baf314437918d2da88c99d5958cd" integrity sha512-k+V+hzjm5q/Mr8ef/1Y9goCmlsK4I6Sm74teeyGvFk1XrOsbsKLjEdrvny42CZ+a8sXbk8KWpY/bDwS+FLL2UQ== @@ -1237,6 +1303,16 @@ ajv@^6.1.0, ajv@^6.10.0, ajv@^6.10.2, ajv@^6.12.2, ajv@^6.5.5: json-schema-traverse "^0.4.1" uri-js "^4.2.2" +ajv@^6.10.0, ajv@^6.10.2: + version "6.12.3" + resolved "https://registry.yarnpkg.com/ajv/-/ajv-6.12.3.tgz#18c5af38a111ddeb4f2697bd78d68abc1cabd706" + integrity sha512-4K0cK3L1hsqk9xIb2z9vs/XU+PGJZ9PNpJRDS9YLzmNdX6jmVPfamLvTJr0aDAusnHyCHO6MjzlkAsgtqp9teA== + dependencies: + fast-deep-equal "^3.1.1" + fast-json-stable-stringify "^2.0.0" + json-schema-traverse "^0.4.1" + uri-js "^4.2.2" + alameda@^1.4.0: version "1.4.0" resolved "https://registry.yarnpkg.com/alameda/-/alameda-1.4.0.tgz#ca53cad0feb5e24994a9be859e0593e8c2d8f58c" @@ -1269,13 +1345,6 @@ ansi-colors@^4.1.1: resolved "https://registry.yarnpkg.com/ansi-colors/-/ansi-colors-4.1.1.tgz#cbb9ae256bf750af1eab344f229aa27fe94ba348" integrity sha512-JoX0apGbHaUJBNl6yF+p6JAFYZ666/hhCGKN5t9QFjbJQKUU/g8MNbFDbvfrgKXvI1QpZplPOnwIo99lX/AAmA== -ansi-escapes@^4.2.1: - version "4.3.1" - resolved "https://registry.yarnpkg.com/ansi-escapes/-/ansi-escapes-4.3.1.tgz#a5c47cc43181f1f38ffd7076837700d395522a61" - integrity sha512-JWF7ocqNrp8u9oqpgV+wH5ftbt+cfvv+PTjOvKLT3AdYly/LmORARfEVT1iyjwN+4MqE5UmVKoAdIBqeoCHgLA== - dependencies: - type-fest "^0.11.0" - ansi-gray@^0.1.1: version "0.1.1" resolved "https://registry.yarnpkg.com/ansi-gray/-/ansi-gray-0.1.1.tgz#2962cf54ec9792c48510a3deb524436861ef7251" @@ -1616,14 +1685,14 @@ 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.8.0, autoprefixer@^9.8.5: - version "9.8.5" - resolved "https://registry.yarnpkg.com/autoprefixer/-/autoprefixer-9.8.5.tgz#2c225de229ddafe1d1424c02791d0c3e10ccccaa" - integrity sha512-C2p5KkumJlsTHoNv9w31NrBRgXhf6eCMteJuHZi2xhkgC+5Vm40MEtCKPhc0qdgAOhox0YPy1SQHTAky05UoKg== +autoprefixer@^9.0.0, autoprefixer@^9.6.1, autoprefixer@^9.8.0, autoprefixer@^9.8.6: + version "9.8.6" + resolved "https://registry.yarnpkg.com/autoprefixer/-/autoprefixer-9.8.6.tgz#3b73594ca1bf9266320c5acf1588d74dea74210f" + integrity sha512-XrvP4VVHdRBCdX1S3WXVD8+RyG9qeb1D5Sn1DeLiG2xfSpzellk5k54xbUERJ3M5DggQxes39UGOTP8CFrEGbg== dependencies: browserslist "^4.12.0" - caniuse-lite "^1.0.30001097" - colorette "^1.2.0" + caniuse-lite "^1.0.30001109" + colorette "^1.2.1" normalize-range "^0.1.2" num2fraction "^1.2.2" postcss "^7.0.32" @@ -1647,15 +1716,6 @@ axios@0.19.0: follow-redirects "1.5.10" is-buffer "^2.0.2" -babel-eslint@^11.0.0-beta.2: - version "11.0.0-beta.2" - resolved "https://registry.yarnpkg.com/babel-eslint/-/babel-eslint-11.0.0-beta.2.tgz#de1f06795aa0d8cedcf6ac943e63056f5b4a7048" - integrity sha512-D2tunrOu04XloEdU2XVUminUu25FILlGruZmffqH5OSnLDhCheKNvUoM1ihrexdUvhizlix8bjqRnsss4V/UIQ== - dependencies: - eslint-scope "5.0.0" - eslint-visitor-keys "^1.1.0" - semver "^6.3.0" - babel-loader@^8.0.6: version "8.1.0" resolved "https://registry.yarnpkg.com/babel-loader/-/babel-loader-8.1.0.tgz#c611d5112bd5209abe8b9fa84c3e4da25275f1c3" @@ -1857,9 +1917,9 @@ blurhash@^1.1.3: integrity sha512-yUhPJvXexbqbyijCIE/T2NCXcj9iNPhWmOKbPTuR/cm7Q5snXYIfnVnz6m7MWOXxODMz/Cr3UcVkRdHiuDVRDw== bn.js@^4.0.0, bn.js@^4.1.0, bn.js@^4.1.1, bn.js@^4.4.0: - version "4.11.8" - resolved "https://registry.yarnpkg.com/bn.js/-/bn.js-4.11.8.tgz#2cde09eb5ee341f484746bb0309b3253b1b1442f" - integrity sha512-ItfYfPLkWHUjckQCk8xC+LwxgK8NYcXywGigJgSwOP8Y2iyWT4f2vsZnoOXTTbo+o5yXmIUJ4gn5538SO5S3gA== + version "4.11.9" + resolved "https://registry.yarnpkg.com/bn.js/-/bn.js-4.11.9.tgz#26d556829458f9d1e81fc48952493d0ba3507828" + integrity sha512-E6QoYqCKZfgatHTdHzs1RRKP7ip4vvm+EyRUeE2RF0NblwVvb0p6jSVeNTOFxPn26QXN2o6SMfNxKp6kU8zQaw== boolbase@^1.0.0, boolbase@~1.0.0: version "1.0.0" @@ -2282,10 +2342,10 @@ caniuse-db@^1.0.30001090: resolved "https://registry.yarnpkg.com/caniuse-db/-/caniuse-db-1.0.30001093.tgz#5a1cae72d94df1156f40f15d9079456e1b29d050" integrity sha512-XqXxHR6Z9IN0BXLKMaTJ1NZ+US74cbKritholD6uaDLUWHiDj0QilpSb708wOcoGz0PmPRsXT/6zE+bjx+QSMw== -caniuse-lite@^1.0.0, caniuse-lite@^1.0.30000981, caniuse-lite@^1.0.30001088, caniuse-lite@^1.0.30001097: - version "1.0.30001099" - resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001099.tgz#540118fcc6842d1fde62f4ee5521d1ec6afdb40e" - integrity sha512-sdS9A+sQTk7wKoeuZBN/YMAHVztUfVnjDi4/UV3sDE8xoh7YR12hKW+pIdB3oqKGwr9XaFL2ovfzt9w8eUI5CA== +caniuse-lite@^1.0.0, caniuse-lite@^1.0.30000981, caniuse-lite@^1.0.30001088, caniuse-lite@^1.0.30001109: + version "1.0.30001109" + resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001109.tgz#a9f3f26a0c3753b063d7acbb48dfb9c0e46f2b19" + integrity sha512-4JIXRodHzdS3HdK8nSgIqXYLExOvG+D2/EenSvcub2Kp3QEADjo2v2oUn5g0n0D+UNwG9BtwKOyGcSq2qvQXvQ== caseless@~0.12.0: version "0.12.0" @@ -2318,7 +2378,7 @@ chalk@^1.0.0, chalk@^1.1.1, chalk@^1.1.3: strip-ansi "^3.0.0" supports-color "^2.0.0" -chalk@^2.0.0, chalk@^2.0.1, chalk@^2.1.0, chalk@^2.3.0, chalk@^2.4.1, chalk@^2.4.2: +chalk@^2.0.0, chalk@^2.0.1, chalk@^2.3.0, chalk@^2.4.1, chalk@^2.4.2: version "2.4.2" resolved "https://registry.yarnpkg.com/chalk/-/chalk-2.4.2.tgz#cd42541677a54333cf541a49108c1432b44c9424" integrity sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ== @@ -2363,11 +2423,6 @@ character-reference-invalid@^1.0.0: resolved "https://registry.yarnpkg.com/character-reference-invalid/-/character-reference-invalid-1.1.4.tgz#083329cda0eae272ab3dbbf37e9a382c13af1560" integrity sha512-mKKUkUbhPpQlCOfIuZkvSEgktjPFIsZKRRbC6KWVEMvlzblj3i3asQv5ODsrwt0N3pHAEvjP8KTQPHkp0+6jOg== -chardet@^0.7.0: - version "0.7.0" - resolved "https://registry.yarnpkg.com/chardet/-/chardet-0.7.0.tgz#90094849f0937f2eedc2425d0d28a9e5f0cbad9e" - integrity sha512-mT8iDcrh03qDGRRmoA2hmBJnxpllMR+0/0qlzjqZES6NdiWDcZkCNAk4rPFZ9Q85r27unkiNNg8ZOiwZXBHwcA== - chokidar@^2.0.0, chokidar@^2.1.8: version "2.1.8" resolved "https://registry.yarnpkg.com/chokidar/-/chokidar-2.1.8.tgz#804b3a7b6a99358c3c5c61e71d8728f041cff917" @@ -2448,18 +2503,6 @@ clean-stack@^2.0.0: resolved "https://registry.yarnpkg.com/clean-stack/-/clean-stack-2.2.0.tgz#ee8472dbb129e727b31e8a10a427dee9dfe4008b" integrity sha512-4diC9HaTE+KRAMWhDhrGOECgWZxoevMc5TlkObMqNSsVU62PYzXZ/SMTjzyGAFF1YusgxGcSWTEXBhp0CPwQ1A== -cli-cursor@^3.1.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/cli-cursor/-/cli-cursor-3.1.0.tgz#264305a7ae490d1d03bf0c9ba7c925d1753af307" - integrity sha512-I/zHAwsKf9FqGoXM4WWRACob9+SNukZTd94DWF57E4toouRulbCxcUh6RKUEOQlYTHJnzkPMySvPNaaSLNfLZw== - dependencies: - restore-cursor "^3.1.0" - -cli-width@^2.0.0: - version "2.2.1" - resolved "https://registry.yarnpkg.com/cli-width/-/cli-width-2.2.1.tgz#b0433d0b4e9c847ef18868a4ef16fd5fc8271c48" - integrity sha512-GRMWDxpOB6Dgk2E5Uo+3eEBvtOOlimMmpbFiKuLFnQzYDavtLFY3K5ona41jgN/WdRZtG7utuVSVTL4HbZHGkw== - cliui@^3.2.0: version "3.2.0" resolved "https://registry.yarnpkg.com/cliui/-/cliui-3.2.0.tgz#120601537a916d29940f934da3b48d585a39213d" @@ -2624,10 +2667,10 @@ color@^3.0.0: color-convert "^1.9.1" color-string "^1.5.2" -colorette@^1.2.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/colorette/-/colorette-1.2.0.tgz#45306add826d196e8c87236ac05d797f25982e63" - integrity sha512-soRSroY+OF/8OdA3PTQXwaDJeMc7TfknKKrxeSCencL2a4+Tx5zhxmmv7hdpCjhKBjehzp8+bwe/T68K0hpIjw== +colorette@^1.2.1: + version "1.2.1" + resolved "https://registry.yarnpkg.com/colorette/-/colorette-1.2.1.tgz#4d0b921325c14faf92633086a536db6e89564b1b" + integrity sha512-puCDz0CzydiSYOrnXpz/PKd69zRrribezjtE9yd4zvytoRc8+RY/KJPvtPFKZS3E3wP6neGyMe0vOTlHO5L3Pw== combined-stream@^1.0.6, combined-stream@~1.0.6: version "1.0.8" @@ -2912,7 +2955,7 @@ cross-spawn@^5.0.1: shebang-command "^1.2.0" which "^1.2.9" -cross-spawn@^6.0.0, cross-spawn@^6.0.5: +cross-spawn@^6.0.0: version "6.0.5" resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-6.0.5.tgz#4a5ec7c64dfae22c3a14124dbacdee846d80cbc4" integrity sha512-eTVLrBSt7fjbDygz805pMnstIs2VTBNkRm0qxZd+M7A5XDdxVRWO5MxGBXZhjY4cqLYLdtrGqRf8mBPmzwSpWQ== @@ -2923,6 +2966,15 @@ cross-spawn@^6.0.0, cross-spawn@^6.0.5: shebang-command "^1.2.0" which "^1.2.9" +cross-spawn@^7.0.2: + version "7.0.3" + resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-7.0.3.tgz#f73a85b9d5d41d045551c177e2882d4ac85728a6" + integrity sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w== + dependencies: + path-key "^3.1.0" + shebang-command "^2.0.0" + which "^2.0.1" + crypto-browserify@^3.11.0: version "3.12.0" resolved "https://registry.yarnpkg.com/crypto-browserify/-/crypto-browserify-3.12.0.tgz#396cf9f3137f03e4b8e532c58f698254e00f80ec" @@ -2968,10 +3020,10 @@ css-has-pseudo@^0.10.0: postcss "^7.0.6" postcss-selector-parser "^5.0.0-rc.4" -css-loader@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/css-loader/-/css-loader-4.0.0.tgz#814434d4e1e2d5f430c70e85e78268db7f3cced1" - integrity sha512-/7d5slKnmY2S39FNifJ7JQ8MhcMM/rDIjAZ2Sc/Z8lnOWOmc10hijg28ovBtljY364pQaF01O2nj5AIBDnJ9vQ== +css-loader@^4.2.0: + version "4.2.0" + resolved "https://registry.yarnpkg.com/css-loader/-/css-loader-4.2.0.tgz#b57efb92ac8f0cd85bf92d89df9634ef1f51b8bf" + integrity sha512-ko7a9b0iFpWtk9eSI/C8IICvZeGtYnjxYjw45rJprokXj/+kBd/siX4vAIBq9Uij8Jubc4jL1EvSnTjCEwaHSw== dependencies: camelcase "^6.0.0" cssesc "^3.0.0" @@ -3297,7 +3349,7 @@ decompress@^4.0.0, decompress@^4.2.0: pify "^2.3.0" strip-dirs "^2.0.0" -deep-is@~0.1.3: +deep-is@^0.1.3: version "0.1.3" resolved "https://registry.yarnpkg.com/deep-is/-/deep-is-0.1.3.tgz#b369d6fb5dbc13eecf524f91b070feedc357cf34" integrity sha1-s2nW+128E+7PUk+RsHD+7cNXzzQ= @@ -3631,9 +3683,9 @@ electron-to-chromium@^1.3.483: integrity sha512-NReBdOugu1yl8ly+0VDtiQ6Yw/1sLjnvflWq0gvY1nfUXU2PbA+1XAVuEb7ModnwL/MfUPjby7e4pAFnSHiy6Q== elliptic@^6.0.0: - version "6.5.2" - resolved "https://registry.yarnpkg.com/elliptic/-/elliptic-6.5.2.tgz#05c5678d7173c049d8ca433552224a495d0e3762" - integrity sha512-f4x70okzZbIQl/NSRLkI/+tteV/9WqL98zx+SQ69KbXxmVrmjwsNUPn/gYJJ0sHvEak24cZgHIPegRePAtA/xw== + version "6.5.3" + resolved "https://registry.yarnpkg.com/elliptic/-/elliptic-6.5.3.tgz#cb59eb2efdaf73a0bd78ccd7015a62ad6e0f93d6" + integrity sha512-IMqzv5wNQf+E6aHeIqATs0tOLeOTwj1QKbRcS3jBbYkl5oLAserA8yJTT7/VyHUYG91PRmPyeQDObKLPpeS4dw== dependencies: bn.js "^4.4.0" brorand "^1.0.1" @@ -3747,6 +3799,13 @@ enhanced-resolve@^4.3.0: memory-fs "^0.5.0" tapable "^1.0.0" +enquirer@^2.3.5: + version "2.3.6" + resolved "https://registry.yarnpkg.com/enquirer/-/enquirer-2.3.6.tgz#2a7fe5dd634a1e4125a975ec994ff5456dc3734d" + integrity sha512-yjNnPr315/FjS4zIsUxYguYUPP2e1NK4d7E7ZOLiyYCcbFBiTMyID+2wvm2w6+pZ/odMA7cRkjhsPbltwBOrLg== + dependencies: + ansi-colors "^4.1.1" + entities@^1.1.1: version "1.1.2" resolved "https://registry.yarnpkg.com/entities/-/entities-1.1.2.tgz#bdfa735299664dfafd34529ed4f8522a275fea56" @@ -3952,10 +4011,15 @@ eslint-plugin-promise@^4.2.1: resolved "https://registry.yarnpkg.com/eslint-plugin-promise/-/eslint-plugin-promise-4.2.1.tgz#845fd8b2260ad8f82564c1222fce44ad71d9418a" integrity sha512-VoM09vT7bfA7D+upt+FjeBO5eHIJQBUWki1aPvB+vbNiHS3+oGIJGIeyBtKQTME6UPXXy3vV07OL1tHd3ANuDw== -eslint-scope@5.0.0, eslint-scope@^5.0.0: - version "5.0.0" - resolved "https://registry.yarnpkg.com/eslint-scope/-/eslint-scope-5.0.0.tgz#e87c8887c73e8d1ec84f1ca591645c358bfc8fb9" - integrity sha512-oYrhJW7S0bxAFDvWqzvMPRm6pcgcnWc4QnofCAqRTRfQC0JcwenzGglTtsLyIuuWFfkqDG9vz67cnttSd53djw== +eslint-rule-composer@^0.3.0: + version "0.3.0" + resolved "https://registry.yarnpkg.com/eslint-rule-composer/-/eslint-rule-composer-0.3.0.tgz#79320c927b0c5c0d3d3d2b76c8b4a488f25bbaf9" + integrity sha512-bt+Sh8CtDmn2OajxvNO+BX7Wn4CIWMpTRm3MaiKPCQcnnlm0CS2mhui6QaoeQugs+3Kj2ESKEEGJUdVafwhiCg== + +eslint-scope@5.1.0, eslint-scope@^5.1.0: + version "5.1.0" + resolved "https://registry.yarnpkg.com/eslint-scope/-/eslint-scope-5.1.0.tgz#d0f971dfe59c69e0cada684b23d49dbf82600ce5" + integrity sha512-iiGRvtxWqgtx5m8EyQUJihBloE4EnYeGE/bz1wSPwJE6tZuJUtHlhqDM4Xj2ukE8Dyy1+HCZ4hE0fzIVMzb58w== dependencies: esrecurse "^4.1.0" estraverse "^4.1.1" @@ -3968,34 +4032,35 @@ eslint-scope@^4.0.3: esrecurse "^4.1.0" estraverse "^4.1.1" -eslint-utils@^1.4.3: - version "1.4.3" - resolved "https://registry.yarnpkg.com/eslint-utils/-/eslint-utils-1.4.3.tgz#74fec7c54d0776b6f67e0251040b5806564e981f" - integrity sha512-fbBN5W2xdY45KulGXmLHZ3c3FHfVYmKg0IrAKGOkT/464PQsx2UeIzfz1RmEci+KLm1bBaAzZAh8+/E+XAeZ8Q== +eslint-utils@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/eslint-utils/-/eslint-utils-2.1.0.tgz#d2de5e03424e707dc10c74068ddedae708741b27" + integrity sha512-w94dQYoauyvlDc43XnGB8lU3Zt713vNChgt4EWwhXAP2XkBvndfxF0AgIqKOOasjPIPzj9JqgwkwbCYD0/V3Zg== dependencies: eslint-visitor-keys "^1.1.0" -eslint-visitor-keys@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/eslint-visitor-keys/-/eslint-visitor-keys-1.1.0.tgz#e2a82cea84ff246ad6fb57f9bde5b46621459ec2" - integrity sha512-8y9YjtM1JBJU/A9Kc+SbaOV4y29sSWckBwMHa+FGtVj5gN/sbnKDf6xJUl+8g7FAij9LVaP8C24DUiH/f/2Z9A== +eslint-visitor-keys@^1.1.0, eslint-visitor-keys@^1.3.0: + version "1.3.0" + resolved "https://registry.yarnpkg.com/eslint-visitor-keys/-/eslint-visitor-keys-1.3.0.tgz#30ebd1ef7c2fdff01c3a4f151044af25fab0523e" + integrity sha512-6J72N8UNa462wa/KFODt/PJ3IU60SDpC3QXC1Hjc1BXXpfL2C9R5+AU7jhe0F6GREqVMh4Juu+NY7xn+6dipUQ== -eslint@^6.8.0: - version "6.8.0" - resolved "https://registry.yarnpkg.com/eslint/-/eslint-6.8.0.tgz#62262d6729739f9275723824302fb227c8c93ffb" - integrity sha512-K+Iayyo2LtyYhDSYwz5D5QdWw0hCacNzyq1Y821Xna2xSJj7cijoLLYmLxTQgcgZ9mC61nryMy9S7GRbYpI5Ig== +eslint@^7.6.0: + version "7.6.0" + resolved "https://registry.yarnpkg.com/eslint/-/eslint-7.6.0.tgz#522d67cfaea09724d96949c70e7a0550614d64d6" + integrity sha512-QlAManNtqr7sozWm5TF4wIH9gmUm2hE3vNRUvyoYAa4y1l5/jxD/PQStEjBMQtCqZmSep8UxrcecI60hOpe61w== dependencies: "@babel/code-frame" "^7.0.0" ajv "^6.10.0" - chalk "^2.1.0" - cross-spawn "^6.0.5" + chalk "^4.0.0" + cross-spawn "^7.0.2" debug "^4.0.1" doctrine "^3.0.0" - eslint-scope "^5.0.0" - eslint-utils "^1.4.3" - eslint-visitor-keys "^1.1.0" - espree "^6.1.2" - esquery "^1.0.1" + enquirer "^2.3.5" + eslint-scope "^5.1.0" + eslint-utils "^2.1.0" + eslint-visitor-keys "^1.3.0" + espree "^7.2.0" + esquery "^1.2.0" esutils "^2.0.2" file-entry-cache "^5.0.1" functional-red-black-tree "^1.0.1" @@ -4004,40 +4069,38 @@ eslint@^6.8.0: ignore "^4.0.6" import-fresh "^3.0.0" imurmurhash "^0.1.4" - inquirer "^7.0.0" is-glob "^4.0.0" js-yaml "^3.13.1" json-stable-stringify-without-jsonify "^1.0.1" - levn "^0.3.0" - lodash "^4.17.14" + levn "^0.4.1" + lodash "^4.17.19" minimatch "^3.0.4" - mkdirp "^0.5.1" natural-compare "^1.4.0" - optionator "^0.8.3" + optionator "^0.9.1" progress "^2.0.0" - regexpp "^2.0.1" - semver "^6.1.2" - strip-ansi "^5.2.0" - strip-json-comments "^3.0.1" + regexpp "^3.1.0" + semver "^7.2.1" + strip-ansi "^6.0.0" + strip-json-comments "^3.1.0" table "^5.2.3" text-table "^0.2.0" v8-compile-cache "^2.0.3" -espree@^6.1.2: - version "6.2.1" - resolved "https://registry.yarnpkg.com/espree/-/espree-6.2.1.tgz#77fc72e1fd744a2052c20f38a5b575832e82734a" - integrity sha512-ysCxRQY3WaXJz9tdbWOwuWr5Y/XrPTGX9Kiz3yoUXwW0VZ4w30HTkQLaGx/+ttFjF8i+ACbArnB4ce68a9m5hw== +espree@^7.2.0: + version "7.2.0" + resolved "https://registry.yarnpkg.com/espree/-/espree-7.2.0.tgz#1c263d5b513dbad0ac30c4991b93ac354e948d69" + integrity sha512-H+cQ3+3JYRMEIOl87e7QdHX70ocly5iW4+dttuR8iYSPr/hXKFb+7dBsZ7+u1adC4VrnPlTkv0+OwuPnDop19g== dependencies: - acorn "^7.1.1" + acorn "^7.3.1" acorn-jsx "^5.2.0" - eslint-visitor-keys "^1.1.0" + eslint-visitor-keys "^1.3.0" esprima@^4.0.0: version "4.0.1" resolved "https://registry.yarnpkg.com/esprima/-/esprima-4.0.1.tgz#13b04cdb3e6c5d19df91ab6987a8695619b0aa71" integrity sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A== -esquery@^1.0.1: +esquery@^1.2.0: version "1.3.1" resolved "https://registry.yarnpkg.com/esquery/-/esquery-1.3.1.tgz#b78b5828aa8e214e29fb74c4d5b752e1c033da57" integrity sha512-olpvt9QG0vniUBZspVRN6lwB7hOZoTRtT+jzR+tS4ffYx2mzbw+z0XCOk44aaLYKApNX5nMm+E+P6o25ip/DHQ== @@ -4217,15 +4280,6 @@ extend@3.0.2, extend@^3.0.0, extend@~3.0.2: resolved "https://registry.yarnpkg.com/extend/-/extend-3.0.2.tgz#f8b1136b4071fbd8eb140aff858b1019ec2915fa" integrity sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g== -external-editor@^3.0.3: - version "3.1.0" - resolved "https://registry.yarnpkg.com/external-editor/-/external-editor-3.1.0.tgz#cb03f740befae03ea4d283caed2741a83f335495" - integrity sha512-hMQ4CX1p1izmuLYyZqLMO/qGNw10wSv9QDCPfzXfyFrOaCSSoRfqE1Kf1s5an66J5JZC62NewG+mK49jOCtQew== - dependencies: - chardet "^0.7.0" - iconv-lite "^0.4.24" - tmp "^0.0.33" - extglob@^2.0.4: version "2.0.4" resolved "https://registry.yarnpkg.com/extglob/-/extglob-2.0.4.tgz#ad00fe4dc612a9232e8718711dc5cb5ab0285543" @@ -4261,9 +4315,9 @@ fancy-log@^1.1.0, fancy-log@^1.3.2, fancy-log@^1.3.3: time-stamp "^1.0.0" fast-deep-equal@^3.1.1: - version "3.1.1" - resolved "https://registry.yarnpkg.com/fast-deep-equal/-/fast-deep-equal-3.1.1.tgz#545145077c501491e33b15ec408c294376e94ae4" - integrity sha512-8UEa58QDLauDNfpbrX55Q9jrGHThw2ZMdOky5Gl1CDtVeJDPVrG4Jxx1N8jw2gkWaff5UUuX1KJd+9zGe2B+ZA== + version "3.1.3" + resolved "https://registry.yarnpkg.com/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz#3a7d56b559d6cbc3eb512325244e619a65c6c525" + integrity sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q== fast-glob@^2.2.6: version "2.2.7" @@ -4294,7 +4348,7 @@ fast-json-stable-stringify@^2.0.0: resolved "https://registry.yarnpkg.com/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz#874bf69c6f404c2b5d99c481341399fd55892633" integrity sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw== -fast-levenshtein@~2.0.6: +fast-levenshtein@^2.0.6: version "2.0.6" resolved "https://registry.yarnpkg.com/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz#3d8a5c66883a16a30ca8643e851f19baa7797917" integrity sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc= @@ -4331,13 +4385,6 @@ figures@^1.3.5: escape-string-regexp "^1.0.5" object-assign "^4.1.0" -figures@^3.0.0: - version "3.2.0" - resolved "https://registry.yarnpkg.com/figures/-/figures-3.2.0.tgz#625c18bd293c604dc4a8ddb2febf0c88341746af" - integrity sha512-yaduQFRKLXYOGgEn6AZau90j3ggSOyiqXU0F9JZfeXYhNa+Jk4X+s45A2zg5jns87GAFa34BBm2kXw4XpNcbdg== - dependencies: - escape-string-regexp "^1.0.5" - file-entry-cache@^4.0.0: version "4.0.0" resolved "https://registry.yarnpkg.com/file-entry-cache/-/file-entry-cache-4.0.0.tgz#633567d15364aefe0b299e1e217735e8f3a9f6e8" @@ -5215,10 +5262,10 @@ gulp-sourcemaps@^2.6.5: strip-bom-string "1.X" through2 "2.X" -gulp-terser@^1.2.1: - version "1.2.1" - resolved "https://registry.yarnpkg.com/gulp-terser/-/gulp-terser-1.2.1.tgz#d5b0ee7ebb1107c1a7bb92449629b07a1951b896" - integrity sha512-wFWfO6hqPwHbzyulA67ZiC2mFXQO4bPno82cvL/V6qZsFXvYxKeeFuLSNsv+i/POhyfNJLkDrcye4rRxkvJUAA== +gulp-terser@^1.3.0: + version "1.3.0" + resolved "https://registry.yarnpkg.com/gulp-terser/-/gulp-terser-1.3.0.tgz#6423fdb7dd15cc376e28063b5271271a928084bd" + integrity sha512-EvizE1LJLfOh3/EmpJoq9iqYziObOkTzFgN4KvxfB0ICp3+W5H+MOO9B7Xq5Iuu9N+RKByNJLmqR+Ph13U1vtQ== dependencies: plugin-error "^1.0.1" terser ">=4" @@ -5417,10 +5464,10 @@ hex-color-regex@^1.1.0: resolved "https://registry.yarnpkg.com/hex-color-regex/-/hex-color-regex-1.1.0.tgz#4c06fccb4602fe2602b3c93df82d7e7dbf1a8a8e" integrity sha512-l9sfDFsuqtOqKDsQdqrMRk0U85RZc0RtOR9yPI7mRVOa4FsR/BVnZ0shmQRM96Ji99kYZP/7hn1cedc1+ApsTQ== -hls.js@^0.14.6: - version "0.14.6" - resolved "https://registry.yarnpkg.com/hls.js/-/hls.js-0.14.6.tgz#f5ea8412ccd980fec67ec94a40b65adcc0bf75d1" - integrity sha512-6s8L+Pzed3Gyf7wDxQNx9TP9y9clCDIPW8cQdDV7PF7npI75BbCbUZSQQclnt20442Ay1NL3vg2WXeSEYNiuAw== +hls.js@^0.14.7: + version "0.14.7" + resolved "https://registry.yarnpkg.com/hls.js/-/hls.js-0.14.7.tgz#47fbd2662b13121ab17c07aea06b1c07828240cf" + integrity sha512-9JY0D9nwMrfQPRWc8/kEJTKK0TYfDTzIs6Xq+gdCvasRxdvQKQ2T76rdueTkS0AsFV6sQlJN0wxbnI44aRvvUA== dependencies: eventemitter3 "^4.0.3" url-toolkit "^2.1.6" @@ -5578,7 +5625,7 @@ https-browserify@^1.0.0: resolved "https://registry.yarnpkg.com/https-browserify/-/https-browserify-1.0.0.tgz#ec06c10e0a34c0f2faf199f7fd7fc78fffd03c73" integrity sha1-7AbBDgo0wPL68Zn3/X/Hj//QPHM= -iconv-lite@0.4.24, iconv-lite@^0.4.24: +iconv-lite@0.4.24: version "0.4.24" resolved "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.4.24.tgz#2022b4b25fbddc21d2f524974a474aafe733908b" integrity sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA== @@ -5785,25 +5832,6 @@ ini@^1.3.4, ini@^1.3.5: resolved "https://registry.yarnpkg.com/ini/-/ini-1.3.5.tgz#eee25f56db1c9ec6085e0c22778083f596abf927" integrity sha512-RZY5huIKCMRWDUqZlEi72f/lmXKMvuszcMBduliQ3nnWbx9X/ZBQO7DijMEYS9EhHBb2qacRUMtC7svLwe0lcw== -inquirer@^7.0.0: - version "7.1.0" - resolved "https://registry.yarnpkg.com/inquirer/-/inquirer-7.1.0.tgz#1298a01859883e17c7264b82870ae1034f92dd29" - integrity sha512-5fJMWEmikSYu0nv/flMc475MhGbB7TSPd/2IpFV4I4rMklboCH2rQjYY5kKiYGHqUF9gvaambupcJFFG9dvReg== - dependencies: - ansi-escapes "^4.2.1" - chalk "^3.0.0" - cli-cursor "^3.1.0" - cli-width "^2.0.0" - external-editor "^3.0.3" - figures "^3.0.0" - lodash "^4.17.15" - mute-stream "0.0.8" - run-async "^2.4.0" - rxjs "^6.5.3" - string-width "^4.1.0" - strip-ansi "^6.0.0" - through "^2.3.6" - interpret@^1.4.0: version "1.4.0" resolved "https://registry.yarnpkg.com/interpret/-/interpret-1.4.0.tgz#665ab8bc4da27a774a40584e812e3e0fa45b1a1e" @@ -6320,9 +6348,9 @@ js-base64@^2.1.8, js-base64@^2.1.9: integrity sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ== js-yaml@^3.13.1: - version "3.13.1" - resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-3.13.1.tgz#aff151b30bfdfa8e49e05da22e7415e9dfa37847" - integrity sha512-YfbcO7jXDdyj0DGxYVSlSeQNHbD7XPWvrVWeVUujrQEoZzWJIRrCPoyk6kL6IAjAG2IolMK4T0hNUe0HOUs5Jw== + version "3.14.0" + resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-3.14.0.tgz#a7a34170f26a21bb162424d8adacb4113a69e482" + integrity sha512-/4IbIeHcD9VMHFqDR/gQ7EdZdLimOvW2DdcxFjdyyZ9NsbS+ccrXqVWDtab/lRl5AlUqmpBx8EhPaWR+OtY17A== dependencies: argparse "^1.0.7" esprima "^4.0.0" @@ -6524,13 +6552,13 @@ levenary@^1.1.1: dependencies: leven "^3.1.0" -levn@^0.3.0, levn@~0.3.0: - version "0.3.0" - resolved "https://registry.yarnpkg.com/levn/-/levn-0.3.0.tgz#3b09924edf9f083c0490fdd4c0bc4421e04764ee" - integrity sha1-OwmSTt+fCDwEkP3UwLxEIeBHZO4= +levn@^0.4.1: + version "0.4.1" + resolved "https://registry.yarnpkg.com/levn/-/levn-0.4.1.tgz#ae4562c007473b932a6200d403268dd2fffc6ade" + integrity sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ== dependencies: - prelude-ls "~1.1.2" - type-check "~0.3.2" + prelude-ls "^1.2.1" + type-check "~0.4.0" "libass-wasm@https://github.com/jellyfin/JavascriptSubtitlesOctopus#4.0.0-jf-smarttv": version "4.0.0" @@ -7200,11 +7228,6 @@ mime@1.4.1: resolved "https://registry.yarnpkg.com/mime/-/mime-1.4.1.tgz#121f9ebc49e3766f311a76e1fa1c8003c4b03aa6" integrity sha512-KI1+qOZu5DcW6wayYHSzR/tXKCDC5Om4s1z2QJjDULzLcmf3DvzS7oluY4HCTrc+9FiKmWUgeNLg7W3uIQvxtQ== -mimic-fn@^2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/mimic-fn/-/mimic-fn-2.1.0.tgz#7ed2c2ccccaf84d3ffcb7a69b57711fc2083401b" - integrity sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg== - mimic-response@^1.0.0: version "1.0.1" resolved "https://registry.yarnpkg.com/mimic-response/-/mimic-response-1.0.1.tgz#4923538878eef42063cb8a3e3b0798781487ab1b" @@ -7337,11 +7360,6 @@ mute-stdout@^1.0.0: resolved "https://registry.yarnpkg.com/mute-stdout/-/mute-stdout-1.0.1.tgz#acb0300eb4de23a7ddeec014e3e96044b3472331" integrity sha512-kDcwXR4PS7caBpuRYYBUz9iVixUk3anO3f5OYFiIPwK/20vCzKCHyKoulbiDY1S53zD2bxUpxN/IJ+TnXjfvxg== -mute-stream@0.0.8: - version "0.0.8" - resolved "https://registry.yarnpkg.com/mute-stream/-/mute-stream-0.0.8.tgz#1630c42b2251ff81e2a283de96a5497ea92e5e0d" - integrity sha512-nnbWWOkoWyUsTjKrhgD0dcz22mdkSnpYqbEjIm2nhwhuxlSkpywJmBo8h0ZqJdkp73mb90SssHkN4rsRaBAfAA== - nan@^2.12.1, nan@^2.13.2: version "2.14.1" resolved "https://registry.yarnpkg.com/nan/-/nan-2.14.1.tgz#d7be34dfa3105b91494c3147089315eff8874b01" @@ -7740,13 +7758,6 @@ once@^1.3.0, once@^1.3.1, once@^1.3.2, once@^1.4.0: dependencies: wrappy "1" -onetime@^5.1.0: - version "5.1.0" - resolved "https://registry.yarnpkg.com/onetime/-/onetime-5.1.0.tgz#fff0f3c91617fe62bb50189636e99ac8a6df7be5" - integrity sha512-5NcSkPHhwTVFIQN+TUqXoS5+dlElHXdpAWu9I0HP20YOtIi+aZ0Ct82jdlILDxjLEAWwvm+qj1m6aEtsDVmm6Q== - dependencies: - mimic-fn "^2.1.0" - openurl@1.1.1: version "1.1.1" resolved "https://registry.yarnpkg.com/openurl/-/openurl-1.1.1.tgz#3875b4b0ef7a52c156f0db41d4609dbb0f94b387" @@ -7759,17 +7770,17 @@ opn@5.3.0: dependencies: is-wsl "^1.1.0" -optionator@^0.8.3: - version "0.8.3" - resolved "https://registry.yarnpkg.com/optionator/-/optionator-0.8.3.tgz#84fa1d036fe9d3c7e21d99884b601167ec8fb495" - integrity sha512-+IW9pACdk3XWmmTXG8m3upGUJst5XRGzxMRjXzAuJ1XnIFNvfhjjIuYkDvysnPQ7qzqVzLt78BCruntqRhWQbA== +optionator@^0.9.1: + version "0.9.1" + resolved "https://registry.yarnpkg.com/optionator/-/optionator-0.9.1.tgz#4f236a6373dae0566a6d43e1326674f50c291499" + integrity sha512-74RlY5FCnhq4jRxVUPKDaRwrVNXMqsGsiW6AJw4XK8hmtm10wC0ypZBLw5IIp85NZMr91+qd1RvvENwg7jjRFw== dependencies: - deep-is "~0.1.3" - fast-levenshtein "~2.0.6" - levn "~0.3.0" - prelude-ls "~1.1.2" - type-check "~0.3.2" - word-wrap "~1.2.3" + deep-is "^0.1.3" + fast-levenshtein "^2.0.6" + levn "^0.4.1" + prelude-ls "^1.2.1" + type-check "^0.4.0" + word-wrap "^1.2.3" optipng-bin@^6.0.0: version "6.0.0" @@ -7811,7 +7822,7 @@ os-locale@^1.4.0: dependencies: lcid "^1.0.0" -os-tmpdir@^1.0.0, os-tmpdir@~1.0.2: +os-tmpdir@^1.0.0: version "1.0.2" resolved "https://registry.yarnpkg.com/os-tmpdir/-/os-tmpdir-1.0.2.tgz#bbe67406c79aa85c5cfec766fe5734555dfa1274" integrity sha1-u+Z0BseaqFxc/sdm/lc0VV36EnQ= @@ -8133,6 +8144,11 @@ path-key@^2.0.0, path-key@^2.0.1: resolved "https://registry.yarnpkg.com/path-key/-/path-key-2.0.1.tgz#411cadb574c5a140d3a4b1910d40d80cc9f40b40" integrity sha1-QRyttXTFoUDTpLGRDUDYDMn0C0A= +path-key@^3.1.0: + version "3.1.1" + resolved "https://registry.yarnpkg.com/path-key/-/path-key-3.1.1.tgz#581f6ade658cbba65a0d3380de7753295054f375" + integrity sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q== + path-parse@^1.0.6: version "1.0.6" resolved "https://registry.yarnpkg.com/path-parse/-/path-parse-1.0.6.tgz#d62dbb5679405d72c4737ec58600e9ddcf06d24c" @@ -9043,10 +9059,10 @@ postcss@^7.0.0, postcss@^7.0.1, postcss@^7.0.13, postcss@^7.0.14, postcss@^7.0.1 source-map "^0.6.1" supports-color "^6.1.0" -prelude-ls@~1.1.2: - version "1.1.2" - resolved "https://registry.yarnpkg.com/prelude-ls/-/prelude-ls-1.1.2.tgz#21932a549f5e52ffd9a827f570e04be62a97da54" - integrity sha1-IZMqVJ9eUv/ZqCf1cOBL5iqX2lQ= +prelude-ls@^1.2.1: + version "1.2.1" + resolved "https://registry.yarnpkg.com/prelude-ls/-/prelude-ls-1.2.1.tgz#debc6489d7a6e6b0e7611888cec880337d316396" + integrity sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g== prepend-http@^1.0.1: version "1.0.4" @@ -9439,10 +9455,10 @@ regex-not@^1.0.0, regex-not@^1.0.2: extend-shallow "^3.0.2" safe-regex "^1.1.0" -regexpp@^2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/regexpp/-/regexpp-2.0.1.tgz#8d19d31cf632482b589049f8281f93dbcba4d07f" - integrity sha512-lv0M6+TkDVniA3aD1Eg0DVpfU/booSu7Eev3TDO/mZKHBfVjgCGTV4t4buppESEYDtkArYFOxTJWv6S5C+iaNw== +regexpp@^3.1.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/regexpp/-/regexpp-3.1.0.tgz#206d0ad0a5648cffbdb8ae46438f3dc51c9f78e2" + integrity sha512-ZOIzd8yVsQQA7j8GCSlPGXwg5PfmA1mrq0JP4nGhh54LaKN3xdai/vHUDu74pKwV8OxseMS65u2NImosQcSD0Q== regexpu-core@^4.7.0: version "4.7.0" @@ -9756,14 +9772,6 @@ responselike@1.0.2: dependencies: lowercase-keys "^1.0.0" -restore-cursor@^3.1.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/restore-cursor/-/restore-cursor-3.1.0.tgz#39f67c54b3a7a58cea5236d95cf0034239631f7e" - integrity sha512-l+sSefzHpj5qimhFSE5a8nufZYAM3sBSVMAPtYkmC+4EH2anSGaEMXSD0izRQbu9nfyQ9y5JrVmp7E8oZrUjvA== - dependencies: - onetime "^5.1.0" - signal-exit "^3.0.2" - ret@~0.1.10: version "0.1.15" resolved "https://registry.yarnpkg.com/ret/-/ret-0.1.15.tgz#b8a4825d5bdb1fc3f6f53c2bc33f81388681c7bc" @@ -9813,11 +9821,6 @@ ripemd160@^2.0.0, ripemd160@^2.0.1: hash-base "^3.0.0" inherits "^2.0.1" -run-async@^2.4.0: - version "2.4.1" - resolved "https://registry.yarnpkg.com/run-async/-/run-async-2.4.1.tgz#8440eccf99ea3e70bd409d49aab88e10c189a455" - integrity sha512-tvVnVv01b8c1RrA6Ep7JkStj85Guv/YrMcwqYQnwjsAS2cTmmPGBBjAjpCW7RrSodNSoE2/qg9O4bceNvUuDgQ== - run-parallel@^1.1.9: version "1.1.9" resolved "https://registry.yarnpkg.com/run-parallel/-/run-parallel-1.1.9.tgz#c9dd3a7cf9f4b2c4b6244e173a6ed866e61dd679" @@ -9842,13 +9845,6 @@ rxjs@^5.5.6: dependencies: symbol-observable "1.0.1" -rxjs@^6.5.3: - version "6.5.5" - resolved "https://registry.yarnpkg.com/rxjs/-/rxjs-6.5.5.tgz#c5c884e3094c8cfee31bf27eb87e54ccfc87f9ec" - integrity sha512-WfQI+1gohdf0Dai/Bbmk5L5ItH5tYqm3ki2c5GdWhKjalzjg93N3avFjVStyZZz+A2Em+ZxKH5bNghw9UeylGQ== - dependencies: - tslib "^1.9.0" - safe-buffer@5.1.2, safe-buffer@~5.1.0, safe-buffer@~5.1.1: version "5.1.2" resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.1.2.tgz#991ec69d296e0313747d59bdfd2b745c35f8828d" @@ -9963,12 +9959,12 @@ semver@7.0.0: resolved "https://registry.yarnpkg.com/semver/-/semver-7.0.0.tgz#5f3ca35761e47e05b206c6daff2cf814f0316b8e" integrity sha512-+GB6zVA9LWh6zovYQLALHwv5rb2PHGlJi3lfiqIHxR0uuwCgefcOJc59v9fv1w8GbStwxuuqqAjI9NMAOOgq1A== -semver@7.3.2, semver@^7.3.2: +semver@7.3.2, semver@^7.2.1, semver@^7.3.2: version "7.3.2" resolved "https://registry.yarnpkg.com/semver/-/semver-7.3.2.tgz#604962b052b81ed0786aae84389ffba70ffd3938" integrity sha512-OrOb32TeeambH6UrhtShmF7CRDqhL6/5XpPNp2DuRH6+9QLw/orhp72j87v8Qa1ScDkvrrBNpZcDejAirJmfXQ== -semver@^6.0.0, semver@^6.1.2, semver@^6.3.0: +semver@^6.0.0, semver@^6.3.0: version "6.3.0" resolved "https://registry.yarnpkg.com/semver/-/semver-6.3.0.tgz#ee0a64c8af5e8ceea67687b133761e1becbd1d3d" integrity sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw== @@ -10087,11 +10083,23 @@ shebang-command@^1.2.0: dependencies: shebang-regex "^1.0.0" +shebang-command@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/shebang-command/-/shebang-command-2.0.0.tgz#ccd0af4f8835fbdc265b82461aaf0c36663f34ea" + integrity sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA== + dependencies: + shebang-regex "^3.0.0" + shebang-regex@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/shebang-regex/-/shebang-regex-1.0.0.tgz#da42f49740c0b42db2ca9728571cb190c98efea3" integrity sha1-2kL0l0DAtC2yypcoVxyxkMmO/qM= +shebang-regex@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/shebang-regex/-/shebang-regex-3.0.0.tgz#ae16f1644d873ecad843b0307b143362d4c42172" + integrity sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A== + signal-exit@^3.0.0, signal-exit@^3.0.2: version "3.0.3" resolved "https://registry.yarnpkg.com/signal-exit/-/signal-exit-3.0.3.tgz#a1410c2edd8f077b08b4e253c8eacfcaf057461c" @@ -10699,10 +10707,10 @@ strip-indent@^3.0.0: dependencies: min-indent "^1.0.0" -strip-json-comments@^3.0.1: - version "3.1.0" - resolved "https://registry.yarnpkg.com/strip-json-comments/-/strip-json-comments-3.1.0.tgz#7638d31422129ecf4457440009fba03f9f9ac180" - integrity sha512-e6/d0eBu7gHtdCqFt0xJr642LdToM5/cN4Qb9DbHjVx1CP5RyeM+zH7pbecEmDv/lBqb0QH+6Uqq75rxFPkM0w== +strip-json-comments@^3.1.0: + version "3.1.1" + resolved "https://registry.yarnpkg.com/strip-json-comments/-/strip-json-comments-3.1.1.tgz#31f1281b3832630434831c310c01cccda8cbe006" + integrity sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig== strip-outer@^1.0.0: version "1.0.1" @@ -11110,7 +11118,7 @@ through2@^4.0.2: dependencies: readable-stream "3" -through@^2.3.6, through@^2.3.8, through@~2.3.4: +through@^2.3.8, through@~2.3.4: version "2.3.8" resolved "https://registry.yarnpkg.com/through/-/through-2.3.8.tgz#0dd4c9ffaabc357960b1b724115d7e0e86a2e1f5" integrity sha1-DdTJ/6q8NXlgsbckEV1+Doai4fU= @@ -11145,13 +11153,6 @@ timsort@^0.3.0: resolved "https://registry.yarnpkg.com/timsort/-/timsort-0.3.0.tgz#405411a8e7e6339fe64db9a234de11dc31e02bd4" integrity sha1-QFQRqOfmM5/mTbmiNN4R3DHgK9Q= -tmp@^0.0.33: - version "0.0.33" - resolved "https://registry.yarnpkg.com/tmp/-/tmp-0.0.33.tgz#6d34335889768d21b2bcda0aa277ced3b1bfadf9" - integrity sha512-jRCJlojKnZ3addtTOjdIqoRuPEKBvNXcGYqzO6zWZX8KfKEpnGY5jfggJQ3EjKuu8D4bJRr0y+cYJFmYbImXGw== - dependencies: - os-tmpdir "~1.0.2" - to-absolute-glob@^2.0.0: version "2.0.2" resolved "https://registry.yarnpkg.com/to-absolute-glob/-/to-absolute-glob-2.0.2.tgz#1865f43d9e74b0822db9f145b78cff7d0f7c849b" @@ -11286,11 +11287,16 @@ tsconfig-paths@^3.9.0: minimist "^1.2.0" strip-bom "^3.0.0" -tslib@^1.10.0, tslib@^1.9.0: +tslib@^1.10.0: version "1.11.1" resolved "https://registry.yarnpkg.com/tslib/-/tslib-1.11.1.tgz#eb15d128827fbee2841549e171f45ed338ac7e35" integrity sha512-aZW88SY8kQbU7gpV19lN24LtXh/yD4ZZg6qieAJDDg+YBsJcSmLGK9QpnUjAKVG/xefmvJGd1WUmfpT/g6AJGA== +tslib@^1.9.0: + version "1.13.0" + resolved "https://registry.yarnpkg.com/tslib/-/tslib-1.13.0.tgz#c881e13cc7015894ed914862d276436fa9a47043" + integrity sha512-i/6DQjL8Xf3be4K/E6Wgpekn5Qasl1usyw++dAA35Ue5orEn65VIxOA+YvNNl9HV3qv70T7CNwjODHZrLwvd1Q== + tty-browserify@0.0.0: version "0.0.0" resolved "https://registry.yarnpkg.com/tty-browserify/-/tty-browserify-0.0.0.tgz#a157ba402da24e9bf957f9aa69d524eed42901a6" @@ -11308,17 +11314,12 @@ tweetnacl@^0.14.3, tweetnacl@~0.14.0: resolved "https://registry.yarnpkg.com/tweetnacl/-/tweetnacl-0.14.5.tgz#5ae68177f192d4456269d108afa93ff8743f4f64" integrity sha1-WuaBd/GS1EViadEIr6k/+HQ/T2Q= -type-check@~0.3.2: - version "0.3.2" - resolved "https://registry.yarnpkg.com/type-check/-/type-check-0.3.2.tgz#5884cab512cf1d355e3fb784f30804b2b520db72" - integrity sha1-WITKtRLPHTVeP7eE8wgEsrUg23I= +type-check@^0.4.0, type-check@~0.4.0: + version "0.4.0" + resolved "https://registry.yarnpkg.com/type-check/-/type-check-0.4.0.tgz#07b8203bfa7056c0657050e3ccd2c37730bab8f1" + integrity sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew== dependencies: - prelude-ls "~1.1.2" - -type-fest@^0.11.0: - version "0.11.0" - resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.11.0.tgz#97abf0872310fed88a5c466b25681576145e33f1" - integrity sha512-OdjXJxnCN1AvyLSzeKIgXTXxV+99ZuXl3Hpo9XpJAv9MBcHrrJOQ5kV7ypXOuQie+AmWG25hLbiKdwYTifzcfQ== + prelude-ls "^1.2.1" type-fest@^0.13.1: version "0.13.1" @@ -11953,10 +11954,10 @@ webpack-stream@^5.2.1: vinyl "^2.1.0" webpack "^4.26.1" -webpack@^4.26.1, webpack@^4.44.0: - version "4.44.0" - resolved "https://registry.yarnpkg.com/webpack/-/webpack-4.44.0.tgz#3b08f88a89470175f036f4a9496b8a0428668802" - integrity sha512-wAuJxK123sqAw31SpkPiPW3iKHgFUiKvO7E7UZjtdExcsRe3fgav4mvoMM7vvpjLHVoJ6a0Mtp2fzkoA13e0Zw== +webpack@^4.26.1, webpack@^4.44.1: + version "4.44.1" + resolved "https://registry.yarnpkg.com/webpack/-/webpack-4.44.1.tgz#17e69fff9f321b8f117d1fda714edfc0b939cc21" + integrity sha512-4UOGAohv/VGUNQJstzEywwNxqX417FnjZgZJpJQegddzPmTvph37eBIRbRTfdySXzVtJXLJfbMN3mMYhM6GdmQ== dependencies: "@webassemblyjs/ast" "1.9.0" "@webassemblyjs/helper-module-context" "1.9.0" @@ -12009,6 +12010,13 @@ which@1, which@^1.2.14, which@^1.2.9, which@^1.3.1: dependencies: isexe "^2.0.0" +which@^2.0.1: + version "2.0.2" + resolved "https://registry.yarnpkg.com/which/-/which-2.0.2.tgz#7c6a8dd0a636a0327e10b59c9286eee93f3f51b1" + integrity sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA== + dependencies: + isexe "^2.0.0" + wide-align@^1.1.0: version "1.1.3" resolved "https://registry.yarnpkg.com/wide-align/-/wide-align-1.1.3.tgz#ae074e6bdc0c14a431e804e624549c633b000457" @@ -12016,7 +12024,7 @@ wide-align@^1.1.0: dependencies: string-width "^1.0.2 || 2" -word-wrap@~1.2.3: +word-wrap@^1.2.3: version "1.2.3" resolved "https://registry.yarnpkg.com/word-wrap/-/word-wrap-1.2.3.tgz#610636f6b1f703891bd34771ccb17fb93b47079c" integrity sha512-Hz/mrNwitNRh/HUAtM/VT/5VH+ygD6DV7mYKZAtHOrbs8U7lvPS6xf7EJKMF0uW1KJCl0H701g3ZGus+muE5vQ==