diff --git a/.eslintrc.js b/.eslintrc.js index 98fa2b817f..ff12e198c3 100644 --- a/.eslintrc.js +++ b/.eslintrc.js @@ -29,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'], @@ -41,7 +41,7 @@ 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 }], diff --git a/CONTRIBUTORS.md b/CONTRIBUTORS.md index c51cd6b31f..46c40b6c99 100644 --- a/CONTRIBUTORS.md +++ b/CONTRIBUTORS.md @@ -35,6 +35,7 @@ - [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) diff --git a/package.json b/package.json index d9b7c0970e..854bb76028 100644 --- a/package.json +++ b/package.json @@ -20,7 +20,7 @@ "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", @@ -38,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", @@ -107,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", @@ -126,6 +127,7 @@ "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", @@ -138,6 +140,7 @@ "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", @@ -163,6 +166,9 @@ "src/components/syncPlay/playbackPermissionManager.js", "src/components/syncPlay/syncPlayManager.js", "src/components/syncPlay/timeSyncManager.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", @@ -189,6 +195,8 @@ "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", @@ -201,12 +209,19 @@ "src/controllers/dashboard/users/userparentalcontrol.js", "src/controllers/dashboard/users/userpasswordpage.js", "src/controllers/dashboard/users/userprofilespage.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/livetv/livetvseriestimers.js", "src/controllers/shows/episodes.js", "src/controllers/shows/tvgenres.js", @@ -264,10 +279,14 @@ "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/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/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/appRouter.js b/src/components/appRouter.js index 4fa2a92433..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(); } }; @@ -285,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 @@ -342,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 () { @@ -356,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 8a5581d817..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 = []; @@ -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'); }); @@ -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/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}
-
- -
-
'; - } - itemHtml += '
'; - itemHtml += '
'; - itemHtml += '

'; - itemHtml += notification.Category; - itemHtml += '

'; - if (showHelp) { - showHelp = false; - itemHtml += ''; - itemHtml += globalize.translate('Help'); - itemHtml += ''; - } +function reload(page) { + loading.show(); + ApiClient.getJSON(ApiClient.getUrl('Notifications/Types')).then(function (list) { + let html = ''; + let lastCategory = ''; + let showHelp = true; + html += list.map(function (notification) { + let itemHtml = ''; + if (notification.Category !== lastCategory) { + lastCategory = notification.Category; + if (lastCategory) { + itemHtml += '
'; itemHtml += '
'; - itemHtml += '
'; } - itemHtml += ''; - if (notification.Enabled) { - itemHtml += ''; - } else { - itemHtml += ''; + itemHtml += '
'; + itemHtml += '
'; + itemHtml += '

'; + itemHtml += notification.Category; + itemHtml += '

'; + if (showHelp) { + showHelp = false; + itemHtml += '
'; + itemHtml += globalize.translate('Help'); + itemHtml += ''; } - itemHtml += '
'; - itemHtml += '
' + notification.Name + '
'; itemHtml += '
'; - itemHtml += ''; - itemHtml += ''; - return itemHtml; - }).join(''); - - if (list.length) { - html += '
'; - html += '
'; + itemHtml += '
'; } - page.querySelector('.notificationList').innerHTML = html; - loading.hide(); - }); - } + itemHtml += ''; + if (notification.Enabled) { + itemHtml += ''; + } else { + itemHtml += ''; + } + itemHtml += '
'; + itemHtml += '
' + notification.Name + '
'; + itemHtml += '
'; + itemHtml += ''; + itemHtml += '
'; + return itemHtml; + }).join(''); - return function(view, params) { - view.addEventListener('viewshow', function() { - reload(view); - }); - }; -}); + if (list.length) { + html += '
'; + html += '
'; + } + page.querySelector('.notificationList').innerHTML = html; + loading.hide(); + }); +} + +export default function (view, params) { + view.addEventListener('viewshow', function () { + reload(view); + }); +} diff --git a/src/controllers/dashboard/plugins/add/index.js b/src/controllers/dashboard/plugins/add/index.js index a3c450dd79..6c666b4646 100644 --- a/src/controllers/dashboard/plugins/add/index.js +++ b/src/controllers/dashboard/plugins/add/index.js @@ -1,6 +1,8 @@ define(['jQuery', 'loading', 'libraryMenu', 'globalize', 'connectionManager', 'emby-button'], function ($, loading, libraryMenu, globalize, connectionManager) { 'use strict'; + loading = loading.default || loading; + function populateHistory(packageInfo, page) { var html = ''; var length = Math.min(packageInfo.versions.length, 10); @@ -79,7 +81,7 @@ define(['jQuery', 'loading', 'libraryMenu', 'globalize', 'connectionManager', 'e page.querySelector('#btnInstall').disabled = true; ApiClient.installPlugin(name, guid, version).then(function () { loading.hide(); - alertText(globalize.translate('PluginInstalledMessage')); + alertText(globalize.translate('MessagePluginInstalled')); }); }; diff --git a/src/controllers/dashboard/plugins/available/index.js b/src/controllers/dashboard/plugins/available/index.js index e27a3298da..e38365ef55 100644 --- a/src/controllers/dashboard/plugins/available/index.js +++ b/src/controllers/dashboard/plugins/available/index.js @@ -1,6 +1,8 @@ define(['loading', 'libraryMenu', 'globalize', 'cardStyle', 'emby-button', 'emby-checkbox', 'emby-select'], function (loading, libraryMenu, globalize) { 'use strict'; + loading = loading.default || loading; + function reloadList(page) { loading.show(); var promise1 = ApiClient.getAvailablePlugins(); diff --git a/src/controllers/dashboard/plugins/installed/index.js b/src/controllers/dashboard/plugins/installed/index.js index d28a04cb2b..80577d227b 100644 --- a/src/controllers/dashboard/plugins/installed/index.js +++ b/src/controllers/dashboard/plugins/installed/index.js @@ -1,15 +1,17 @@ define(['loading', 'libraryMenu', 'dom', 'globalize', 'cardStyle', 'emby-button'], function (loading, libraryMenu, dom, globalize) { 'use strict'; + loading = loading.default || loading; + function deletePlugin(page, uniqueid, name) { var msg = globalize.translate('UninstallPluginConfirmation', name); require(['confirm'], function (confirm) { confirm.default({ - title: globalize.translate('UninstallPluginHeader'), + title: globalize.translate('HeaderUninstallPlugin'), text: msg, primary: 'delete', - confirmText: globalize.translate('UninstallPluginHeader') + confirmText: globalize.translate('HeaderUninstallPlugin') }).then(function () { loading.show(); ApiClient.uninstallPlugin(uniqueid).then(function () { @@ -21,7 +23,7 @@ define(['loading', 'libraryMenu', 'dom', 'globalize', 'cardStyle', 'emby-button' function showNoConfigurationMessage() { Dashboard.alert({ - message: globalize.translate('NoPluginConfigurationMessage') + message: globalize.translate('MessageNoPluginConfiguration') }); } @@ -95,7 +97,7 @@ define(['loading', 'libraryMenu', 'dom', 'globalize', 'cardStyle', 'emby-button' html += '
'; html += '

' + globalize.translate('MessageNoPluginsInstalled') + '

'; html += '

'; - html += globalize.translate('BrowsePluginCatalogMessage'); + html += globalize.translate('MessageBrowsePluginCatalog'); html += '

'; html += '
'; } diff --git a/src/controllers/dashboard/users/usernew.js b/src/controllers/dashboard/users/usernew.js index f45cbf8ca8..d3ff449d02 100644 --- a/src/controllers/dashboard/users/usernew.js +++ b/src/controllers/dashboard/users/usernew.js @@ -89,7 +89,7 @@ import 'emby-checkbox'; }); }, function (response) { import('toast').then(({default: toast}) => { - toast(globalize.translate('DefaultErrorMessage')); + toast(globalize.translate('ErrorDefault')); }); loading.hide(); diff --git a/src/controllers/dashboard/users/userpasswordpage.js b/src/controllers/dashboard/users/userpasswordpage.js index db91c7bce7..d399804d3e 100644 --- a/src/controllers/dashboard/users/userpasswordpage.js +++ b/src/controllers/dashboard/users/userpasswordpage.js @@ -145,14 +145,14 @@ import 'emby-button'; function resetPassword() { const msg = globalize.translate('PasswordResetConfirmation'); import('confirm').then(({default: confirm}) => { - confirm(msg, globalize.translate('PasswordResetHeader')).then(function () { + confirm(msg, globalize.translate('HeaderResetPassword')).then(function () { const userId = params.userId; loading.show(); ApiClient.resetUserPassword(userId).then(function () { loading.hide(); Dashboard.alert({ message: globalize.translate('PasswordResetComplete'), - title: globalize.translate('PasswordResetHeader') + title: globalize.translate('HeaderResetPassword') }); loadUser(view, params); }); 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 74cf186729..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,7 +155,7 @@ define(['appRouter', 'cardBuilder', 'dom', 'globalize', 'connectionManager', 'ap EnableTotalRecordCount: false }; options.Limit = 20; - var userId = apiClient.getCurrentUserId(); + const userId = apiClient.getCurrentUserId(); if (section.types === 'MusicArtist') { return apiClient.getArtists(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++; @@ -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 3396a7336f..b615b3609d 100644 --- a/src/controllers/home.js +++ b/src/controllers/home.js @@ -40,7 +40,7 @@ define(['tabbedView', 'globalize', 'require', 'emby-tabs', 'emby-button', 'emby- var 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/list.js b/src/controllers/list.js index 01ef35a26a..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(), 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/livetvsuggested.js b/src/controllers/livetv/livetvsuggested.js index 36ba825a34..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; } 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/movies/moviecollections.js b/src/controllers/movies/moviecollections.js index dc8fae3a7b..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) { diff --git a/src/controllers/movies/moviegenres.js b/src/controllers/movies/moviegenres.js index 07334b4d91..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) { 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 4ffe7888cf..a633d654cd 100644 --- a/src/controllers/movies/moviesrecommended.js +++ b/src/controllers/movies/moviesrecommended.js @@ -1,6 +1,8 @@ define(['events', 'layoutManager', 'inputManager', 'userSettings', 'libraryMenu', 'mainTabsManager', 'cardBuilder', 'dom', 'imageLoader', 'playbackManager', 'globalize', 'emby-scroller', 'emby-itemscontainer', 'emby-tabs', 'emby-button'], function (events, layoutManager, inputManager, userSettings, libraryMenu, mainTabsManager, cardBuilder, dom, imageLoader, playbackManager, globalize) { 'use strict'; + 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/index.html b/src/index.html index a135079a7d..797fce8a94 100644 --- a/src/index.html +++ b/src/index.html @@ -1,13 +1,11 @@ - - @@ -15,10 +13,9 @@ - - + + - @@ -64,7 +61,6 @@ - Jellyfin 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 be5beb98ed..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 = ''; @@ -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 f4acc6d8b3..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; @@ -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/sessionPlayer/plugin.js b/src/plugins/sessionPlayer/plugin.js index 89a18a96cc..fb1f745df3 100644 --- a/src/plugins/sessionPlayer/plugin.js +++ b/src/plugins/sessionPlayer/plugin.js @@ -1,6 +1,8 @@ define(['playbackManager', 'events', 'serverNotifications', 'connectionManager'], function (playbackManager, events, serverNotifications, connectionManager) { 'use strict'; + playbackManager = playbackManager.default || playbackManager; + function getActivePlayerId() { var info = playbackManager.getPlayerInfo(); return info ? info.id : null; diff --git a/src/scripts/autoThemes.js b/src/scripts/autoThemes.js new file mode 100644 index 0000000000..dad8c10322 --- /dev/null +++ b/src/scripts/autoThemes.js @@ -0,0 +1,8 @@ +import * as userSettings from 'userSettings'; +import skinManager from 'skinManager'; +import connectionManager from 'connectionManager'; +import events from 'events'; + +events.on(connectionManager, 'localusersignedin', function (e, user) { + skinManager.setTheme(userSettings.theme()); +}); diff --git a/src/scripts/browserDeviceProfile.js b/src/scripts/browserDeviceProfile.js index 382ffbed1a..5befcb1df5 100644 --- a/src/scripts/browserDeviceProfile.js +++ b/src/scripts/browserDeviceProfile.js @@ -1,6 +1,8 @@ define(['browser'], function (browser) { 'use strict'; + browser = browser.default || browser; + function canPlayH264(videoTestElement) { return !!(videoTestElement.canPlayType && videoTestElement.canPlayType('video/mp4; codecs="avc1.42E01E, mp4a.40.2"').replace(/no/, '')); } diff --git a/src/scripts/inputManager.js b/src/scripts/inputManager.js index aa2c2945c0..3432c9e351 100644 --- a/src/scripts/inputManager.js +++ b/src/scripts/inputManager.js @@ -35,6 +35,7 @@ import appHost from 'apphost'; if (eventListenerCount) { eventListenerCount--; } + dom.removeEventListener(scope, 'command', fn, {}); } diff --git a/src/scripts/libraryMenu.js b/src/scripts/libraryMenu.js index d2a68cd6e3..bbe01276ba 100644 --- a/src/scripts/libraryMenu.js +++ b/src/scripts/libraryMenu.js @@ -1,6 +1,9 @@ define(['dom', 'layoutManager', 'inputManager', 'connectionManager', 'events', 'viewManager', 'libraryBrowser', 'appRouter', 'apphost', 'playbackManager', 'syncPlayManager', 'groupSelectionMenu', 'browser', 'globalize', 'scripts/imagehelper', 'paper-icon-button-light', 'material-icons', 'scrollStyles', 'flexStyles'], function (dom, layoutManager, inputManager, connectionManager, events, viewManager, libraryBrowser, appRouter, appHost, playbackManager, syncPlayManager, groupSelectionMenu, browser, globalize, imageHelper) { 'use strict'; + playbackManager = playbackManager.default || playbackManager; + browser = browser.default || browser; + function renderHeader() { var html = ''; html += '
'; diff --git a/src/scripts/mouseManager.js b/src/scripts/mouseManager.js index d801d82393..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,7 +36,7 @@ define(['inputManager', 'focusManager', 'browser', 'layoutManager', 'events', 'd } } - function showCursor() { + export function showCursor() { if (isMouseIdle) { isMouseIdle = false; removeIdleClasses(); @@ -39,7 +44,7 @@ define(['inputManager', 'focusManager', 'browser', 'layoutManager', 'events', 'd } } - function hideCursor() { + export function hideCursor() { if (!isMouseIdle) { isMouseIdle = true; addIdleClasses(); @@ -47,17 +52,17 @@ define(['inputManager', 'focusManager', 'browser', 'layoutManager', 'events', 'd } } - var lastPointerMoveData; + 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, @@ -81,11 +86,11 @@ define(['inputManager', 'focusManager', 'browser', 'layoutManager', 'events', 'd } 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); } @@ -115,7 +120,7 @@ define(['inputManager', 'focusManager', 'browser', 'layoutManager', 'events', 'd } } - var mouseInterval; + let mouseInterval; function startMouseInterval() { if (!mouseInterval) { mouseInterval = setInterval(onMouseInterval, 5000); @@ -123,7 +128,7 @@ define(['inputManager', 'focusManager', 'browser', 'layoutManager', 'events', 'd } function stopMouseInterval() { - var interval = mouseInterval; + const interval = mouseInterval; if (interval) { clearInterval(interval); @@ -167,8 +172,10 @@ define(['inputManager', 'focusManager', 'browser', 'layoutManager', 'events', 'd events.on(layoutManager, 'modechange', initMouse); - self.hideCursor = hideCursor; - self.showCursor = showCursor; +/* eslint-enable indent */ + +export default { + hideCursor, + showCursor +}; - return self; -}); 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 f1b49f6342..604f9c7bab 100644 --- a/src/scripts/site.js +++ b/src/scripts/site.js @@ -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) { @@ -180,7 +180,7 @@ var Dashboard = { alert: function (options) { if (typeof options == 'string') { return void require(['toast'], function (toast) { - toast({ + toast.default({ text: options }); }); @@ -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); diff --git a/src/scripts/themeLoader.js b/src/scripts/themeLoader.js deleted file mode 100644 index f7b78e70ab..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 (viewType === 'a') { - 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 bab716af49..a0df4fc037 100644 --- a/src/strings/af.json +++ b/src/strings/af.json @@ -112,7 +112,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}.", diff --git a/src/strings/ar.json b/src/strings/ar.json index 216cbf7074..d4ff757824 100644 --- a/src/strings/ar.json +++ b/src/strings/ar.json @@ -11,7 +11,7 @@ "BirthDateValue": "وُلد: {0}", "BirthPlaceValue": "مكان الميلاد: {0}", "Browse": "تصفح", - "BrowsePluginCatalogMessage": "تصفح قائمتنا للملحق لترى المتوفر من الملاحق.", + "MessageBrowsePluginCatalog": "تصفح قائمتنا للملحق لترى المتوفر من الملاحق.", "ButtonAdd": "إضافة", "ButtonAddMediaLibrary": "إضافة مكتبة وسائط", "ButtonAddScheduledTaskTrigger": "إضافة زناد", @@ -92,7 +92,7 @@ "CinemaModeConfigurationHelp": "الطور السينمائي يوفر أجواء سينمائية إلى قلب صالتك مع إمكانية تشغيل عروض إعلانية لأفلام أخرى وعرض مقدمات أخرى من انتقاءاتك قبل تشغيل الفيلم الرئيسي.", "CustomDlnaProfilesHelp": "إنشاء عرائض مخصوصه تستهدف جهازاً جديداً أو يمتطي حساباً نظامياً.", "DeathDateValue": "توفي: {0}", - "DefaultErrorMessage": "كان هناك خطأ في معالجة الطلب. الرجاء المحاولة لاحقاً.", + "ErrorDefault": "كان هناك خطأ في معالجة الطلب. الرجاء المحاولة لاحقاً.", "Delete": "حذف", "DeleteDeviceConfirmation": "هل أنت متأكد أنك تريد حذف هذا الجهاز؟ سيظهر الجهاز من جديد في المرة القادمة التي يسجل فها مستخدم دخوله عبره.", "DeleteImage": "حذف صورة", @@ -110,7 +110,7 @@ "ErrorAddingTunerDevice": "كان هناك خطأ في إضافة جهاز المولف. الرجاء التأكد من صلاحية الوصول إليه ثم عاود المحاولة.", "ErrorAddingXmlTvFile": "كان هناك خطأ في محاولة الوصول إلى ملف XMLTV. الرجاء التأكد من وجود الملف ثم حاول مرة أخرى.", "ErrorGettingTvLineups": "كان هناك خطأ في إنزال اصطفافات التلفاز. الرجاء التأكد من أن بياناتك صحيحة ثم عاود المحاولة.", - "ErrorMessageStartHourGreaterThanEnd": "وقت النهاية يجب أن يكون أكبر من وقت البداية.", + "ErrorStartHourGreaterThanEnd": "وقت النهاية يجب أن يكون أكبر من وقت البداية.", "ErrorPleaseSelectLineup": "الرجاء اختيار اصطفاف ثم المحاولة مرة أخرى. إن لم تتوفر أية اصطفافات، فالرجاء التأكد من اسم المستخدم وكلمة المرور الخاصة بك، وتأكد من صحة رمزك البريدي.", "ErrorSavingTvProvider": "كان هناك خطأ في حفظ مزود التلفزة. الرجاء التأكد من صلاحية الوصول إليه ثم عاود المحاولة.", "ExitFullscreen": "الخروج من الشاشة الكاملة", @@ -632,8 +632,8 @@ "MoreUsersCanBeAddedLater": "يمكن اضافة المستخدمين لاحقا من لوحة العدادات.", "Mute": "صامت", "NextUp": "التالي", - "NoNextUpItemsMessage": "لم يتم ايجاد شيء، إبدأ بمشاهدة برامجك!", - "NoPluginConfigurationMessage": "هذا الملحق ليس له إعدادات تضبط.", + "MessageNoNextUpItems": "لم يتم ايجاد شيء، إبدأ بمشاهدة برامجك!", + "MessageNoPluginConfiguration": "هذا الملحق ليس له إعدادات تضبط.", "NumLocationsValue": "{0} مجلد(ات)", "Option3D": "ثلاثي أبعاد", "OptionAdminUsers": "المدراء", @@ -772,7 +772,7 @@ "PasswordMatchError": "كلمة السر وتاكيدها يجب ان يتطابقان.", "PasswordResetComplete": "لقد تم اعادة تعيين كلمة السر.", "PasswordResetConfirmation": "هل انت متاكد من انك تريد اعادة تعيين كلمة السر؟", - "PasswordResetHeader": "إعادة تهيئة كلمة السر", + "HeaderResetPassword": "إعادة تهيئة كلمة السر", "PasswordSaved": "تم حفظ كلمة السر.", "PictureInPicture": "صورة داخل صورة", "PinCodeResetComplete": "تمت إعادة تهيئة الرمز الشخصي", @@ -783,7 +783,7 @@ "RecommendationBecauseYouWatched": "لأنك شاهدت {0}", "RecommendationDirectedBy": "إخراج {0}", "RecommendationStarring": "بطولة {0}", - "RecordingPathChangeMessage": "إن تغيير مجلد التسجيل لم يهجّر التسجيلات الموجودة من الموقع القديم إلى الموقع الجديد. سيتعين عليك أن تنقلهم بنفسك لو شئت.", + "MessageChangeRecordingPath": "إن تغيير مجلد التسجيل لم يهجّر التسجيلات الموجودة من الموقع القديم إلى الموقع الجديد. سيتعين عليك أن تنقلهم بنفسك لو شئت.", "RememberMe": "تذكرني", "Rewind": "الترجيع", "Saturday": "السبت", @@ -862,7 +862,7 @@ "TitlePlayback": "تشغيل", "Tuesday": "الثلاثاء", "UninstallPluginConfirmation": "هل انت متاكد انك تريد إزالة تثبيت {0}؟", - "UninstallPluginHeader": "الغاء الملحق", + "HeaderUninstallPlugin": "الغاء الملحق", "Unmute": "غير صامت", "UserProfilesIntro": "إمبي يتضمن الدعم التلقائي حسابات المستخدمين، ما يتيح لكل مستخدم أن يحفظ إعدادات العرض الخاصة وحالات تشغيل الوسائط وخواص الرقابة الأبوية.", "ValueAlbumCount": "{0} ألبومـ(ات)", diff --git a/src/strings/bg-bg.json b/src/strings/bg-bg.json index 9af8c54435..f24c10d980 100644 --- a/src/strings/bg-bg.json +++ b/src/strings/bg-bg.json @@ -508,7 +508,7 @@ "NewEpisodes": "Нови епизоди", "NewEpisodesOnly": "Само нови епизоди", "News": "Новини", - "NoNextUpItemsMessage": "Нищо не е намерено. Започнете да гледате вашите предавания!", + "MessageNoNextUpItems": "Нищо не е намерено. Започнете да гледате вашите предавания!", "NoSubtitleSearchResultsFound": "Няма намерени резултати.", "NoSubtitles": "Без", "None": "Нищо", @@ -613,7 +613,7 @@ "OriginalAirDateValue": "Дата на първоначално излъчване: {0}", "Overview": "Обобщение", "ParentalRating": "Родителска оценка", - "PasswordResetHeader": "Зануляване на паролата", + "HeaderResetPassword": "Зануляване на паролата", "People": "Хора", "Photos": "Снимки", "PictureInPicture": "Картина в картина", @@ -748,7 +748,7 @@ "TrackCount": "{0} песни", "Trailers": "Трейлъри", "Tuesday": "Вторник", - "UninstallPluginHeader": "Деинсталиране на приставката", + "HeaderUninstallPlugin": "Деинсталиране на приставката", "Unmute": "Без заглушаване", "Unplayed": "Непускано", "Upload": "Качване", @@ -841,7 +841,7 @@ "OptionResElement": "рес. елемент", "ButtonChangeServer": "Смяна на сървър", "ButtonAddImage": "Добавяне на изображение", - "BrowsePluginCatalogMessage": "За да видите наличните добавки, прегледайте каталога с добавките.", + "MessageBrowsePluginCatalog": "За да видите наличните добавки, прегледайте каталога с добавките.", "Box": "Кутия", "AlwaysPlaySubtitlesHelp": "Поднадписите, съвпадащи с езика от настройките, ще се зареждат, независимо от езика на аудио то.", "BookLibraryHelp": "Поддържат се аудио книги такива съдържащи текст. Проверете ръководството за наименуване {1} на книги {0}.", @@ -882,7 +882,7 @@ "CinemaModeConfigurationHelp": "Режимът на кино носи театрално изживяване направо във вашата всекидневна с възможност за пускане на трейлъри и персонализирани интродукции преди основния филм.", "ChangingMetadataImageSettingsNewContent": "Промените в настройките за изтегляне на метаданни или изображения ще се прилагат само за ново съдържание, добавено към вашата библиотека. За да приложите промените към съществуващите заглавия, ще трябва да обновите метаданните им ръчно.", "DefaultMetadataLangaugeDescription": "Това са настройки по подразбиране и могат да се променят на база библиотека.", - "DefaultErrorMessage": "Възникна грешка при изпълнение на заявката. Моля опитайте по-късно.", + "ErrorDefault": "Възникна грешка при изпълнение на заявката. Моля опитайте по-късно.", "CustomDlnaProfilesHelp": "Създаване на персонализиран профил за целево устройство или заменяне на системния профил.", "CopyStreamURL": "Копиране URL на стрийма", "CopyStreamURLError": "Възникна грешка при копиране на URL.", @@ -903,7 +903,7 @@ "ButtonToggleContextMenu": "Повече", "ErrorSavingTvProvider": "Има проблем със запазването на ТВ доставчика.Убедете се ,че е достъпен и опитайте отново.", "ErrorPleaseSelectLineup": "Моля изберете списък и опитайте отново.Ако няма налични списъци се убедете ,че името,паролата и пощенския код са точни.", - "ErrorMessageStartHourGreaterThanEnd": "Времето за край трябва да бъде по-голямо от началното време.", + "ErrorStartHourGreaterThanEnd": "Времето за край трябва да бъде по-голямо от началното време.", "ErrorGettingTvLineups": "Има проблем при опита да бъдат свалени списъци с ТВ.Убедете се ,че информацията е правилна и опитайте отново.", "ErrorDeletingItem": "Има проблем при опита да бъде изтрит файла от сървъра.Убедете се ,че сървъра има право да трие папки и опитайте отново.", "ErrorAddingXmlTvFile": "Има проблем при достъпа на XMLTV файла.Уверете се ,че е наличен и пробвайте отново.", @@ -1197,8 +1197,8 @@ "LabelProtocolInfo": "Информация за протокола:", "LabelPostProcessorArgumentsHelp": "Използвай {path},като път за записване на файла.", "LabelPostProcessorArguments": "Аргументи на командния ред след обработка:", - "EnableBlurhashHelp": "Изображенията, които все още се зареждат, ще се показват чрез функцията\"размито запълване\"", - "EnableBlurhash": "Активиране на функцията \"размито запълване\" за изображения", + "EnableBlurHashHelp": "Изображенията, които все още се зареждат, ще се показват чрез функцията\"размито запълване\"", + "EnableBlurHash": "Активиране на функцията \"размито запълване\" за изображения", "UnsupportedPlayback": "Джелифин не може да дешифрира съдържание, защитено с DRM, но въпреки това цялото съдържание ще бъде обработено, включително защитените заглавия. Някои файлове могат да изглеждат напълно черни поради криптиране или други неподдържани функции, например интерактивни заглавия.", "OnApplicationStartup": "При стартиране на приложението", "EveryXHours": "На всеки {0} часа", @@ -1423,7 +1423,7 @@ "RefreshDialogHelp": "Метаданните се обновяват въз основа на настройките и интернет услугите, които са активирани от таблото за управление на сървъра.", "Recordings": "Записи", "RecordingScheduled": "Записът е насрочен.", - "RecordingPathChangeMessage": "Промяната на вашата папка за запис няма да мигрира съществуващите записи от старото местоположение към новото.Необходимо е да направите това ръчно.", + "MessageChangeRecordingPath": "Промяната на вашата папка за запис няма да мигрира съществуващите записи от старото местоположение към новото.Необходимо е да направите това ръчно.", "RecordSeries": "Запиши сериал", "RecommendationStarring": "В главните роли {0}", "RecommendationDirectedBy": "Режисьор {0}", @@ -1434,7 +1434,7 @@ "PreferEmbeddedEpisodeInfosOverFileNames": "Предпочитай \"вградената\" информация за епизода вместо името на файла", "PreferEmbeddedEpisodeInfosOverFileNamesHelp": "Това използва информацията за епизода от вградените метаданни, ако е налична.", "PreferEmbeddedTitlesOverFileNamesHelp": "Това определя заглавието по подразбиране, когато няма интернет метаданни или локални метаданни.", - "PluginInstalledMessage": "Добавката е успешно инсталирана. Джелифин ще трябва да бъде рестартиран, за да влязат в сила промените.", + "MessagePluginInstalled": "Добавката е успешно инсталирана. Джелифин ще трябва да бъде рестартиран, за да влязат в сила промените.", "PleaseSelectTwoItems": "Моля, изберете поне два елемента.", "PleaseEnterNameOrId": "Моля, въведете име или външен идентификатор.", "PleaseConfirmPluginInstallation": "Моля, щракнете върху OK, за да потвърдите, че сте прочели горното и искате да продължите с инсталирането на добавката.", @@ -1519,7 +1519,7 @@ "OnlyForcedSubtitles": "Само принудително", "OneChannel": "Един канал", "NoSubtitlesHelp": "Субтитрите няма да бъдат заредени по подразбиране. Те все още могат да бъдат включени ръчно по време на възпроизвеждане.", - "NoPluginConfigurationMessage": "Тази добавка няма настройки за конфигуриране.", + "MessageNoPluginConfiguration": "Тази добавка няма настройки за конфигуриране.", "NoNewDevicesFound": "Не са намерени нови устройства. За да добавите нов тунер, затворете този диалогов прозорец и въведете ръчно информацията за устройството.", "NoCreatedLibraries": "Изглежда, че все още не сте създали библиотеки. {0} Искате ли да ги създадете сега? {1}", "NextUp": "Следващ по ред", diff --git a/src/strings/ca.json b/src/strings/ca.json index 2324c31e4c..cf6031e240 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", @@ -84,7 +84,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?", @@ -490,8 +490,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", @@ -708,7 +708,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", diff --git a/src/strings/cs.json b/src/strings/cs.json index 8cb6bc39ac..3ca8676c1b 100644 --- a/src/strings/cs.json +++ b/src/strings/cs.json @@ -2,7 +2,7 @@ "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.", + "AddItemToCollectionHelp": "Přidat položky do kolekce jejich vyhledáním a použitím pravého tlačítka myši nebo kliknutím na příslušnou položku v nabídce.", "AddToCollection": "Přidat do kolekce", "AddToPlayQueue": "Přidat do fronty k přehrání", "AddToPlaylist": "Přidat do playlistu", @@ -34,7 +34,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ěč", @@ -131,7 +131,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", @@ -144,7 +144,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", @@ -185,7 +185,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.", + "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", @@ -235,7 +235,7 @@ "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íč.", + "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", @@ -341,7 +341,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", @@ -358,13 +358,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", @@ -410,8 +410,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", @@ -441,14 +441,14 @@ "LabelAppName": "Název aplikace", "LabelAppNameExample": "Příklad: Sickbeard, Sonarr", "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.", @@ -461,7 +461,7 @@ "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í:", @@ -495,16 +495,16 @@ "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í:", @@ -521,14 +521,14 @@ "LabelFormat": "Formát:", "LabelFriendlyName": "Přívětivý název:", "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:", @@ -552,7 +552,7 @@ "LabelLanguage": "Jazyk:", "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 zodpovědnosti při přihlášení:", "LabelLoginDisclaimerHelp": "Zpráva, která se zobrazí v dolní části přihlašovací stránky.", @@ -576,7 +576,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í:", @@ -592,7 +592,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:", @@ -605,7 +605,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:", @@ -645,7 +645,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}.", @@ -657,7 +657,7 @@ "LabelSelectVersionToInstall": "Vyber verzi k instalaci:", "LabelSendNotificationToUsers": "Odeslat oznámení pro:", "LabelSerialNumber": "Sériové číslo", - "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:", @@ -717,7 +717,7 @@ "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.", @@ -798,7 +798,7 @@ "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", "Mobile": "Mobilní", @@ -819,8 +819,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.", @@ -852,7 +852,7 @@ "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", @@ -871,7 +871,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.", @@ -879,7 +879,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", @@ -911,7 +911,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", @@ -923,9 +923,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", @@ -964,7 +964,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", @@ -1004,11 +1004,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í", @@ -1131,7 +1131,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", @@ -1205,7 +1205,7 @@ "Depressed": "Vytlačené", "Descending": "Klesající", "DetectingDevices": "Hledání zařízení", - "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", @@ -1237,7 +1237,7 @@ "HeaderFavoriteVideos": "Oblíbená videa", "HeaderFetcherSettings": "Nastavení načítání", "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", @@ -1305,7 +1305,7 @@ "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", @@ -1313,7 +1313,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í:", @@ -1339,7 +1339,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)", @@ -1357,8 +1357,8 @@ "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á", - "PluginInstalledMessage": "Zásuvný modul byl úspěšně nainstalován. Server Jellyfin bude nutné restartovat, aby se změny projevily.", + "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.", "Raised": "Vystupující", @@ -1499,7 +1499,7 @@ "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", @@ -1543,8 +1543,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.", diff --git a/src/strings/da.json b/src/strings/da.json index 9965294f4c..0f4433baff 100644 --- a/src/strings/da.json +++ b/src/strings/da.json @@ -31,7 +31,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", @@ -119,7 +119,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 +154,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", @@ -754,8 +754,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", @@ -890,7 +890,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", @@ -906,7 +906,7 @@ "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.", "Premieres": "Premiere", @@ -923,7 +923,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.", @@ -1034,7 +1034,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.", diff --git a/src/strings/de.json b/src/strings/de.json index 837feb42b9..db1ef10305 100644 --- a/src/strings/de.json +++ b/src/strings/de.json @@ -46,7 +46,7 @@ "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", @@ -143,7 +143,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", @@ -158,8 +158,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", @@ -210,7 +210,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", @@ -263,7 +263,7 @@ "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", @@ -333,7 +333,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", @@ -381,7 +381,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", @@ -399,13 +399,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", @@ -452,8 +452,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", @@ -485,14 +485,14 @@ "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:", @@ -511,7 +511,7 @@ "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:", @@ -547,12 +547,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:", @@ -572,16 +572,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:", @@ -609,7 +609,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.", @@ -634,7 +634,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:", @@ -650,9 +650,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:", @@ -662,7 +662,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:", @@ -705,7 +705,7 @@ "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}.", @@ -717,7 +717,7 @@ "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:", @@ -783,7 +783,7 @@ "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}", @@ -864,7 +864,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", @@ -888,8 +888,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.", @@ -910,7 +910,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.", @@ -921,7 +921,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", @@ -940,7 +940,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.", @@ -948,7 +948,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", @@ -978,7 +978,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", @@ -989,9 +989,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", @@ -1026,7 +1026,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", @@ -1048,7 +1048,7 @@ "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", @@ -1071,11 +1071,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", @@ -1209,7 +1209,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", @@ -1369,7 +1369,7 @@ "TagsValue": "Markierungen: {0}", "Thumb": "Miniaturansicht", "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", @@ -1396,7 +1396,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:", @@ -1414,7 +1414,7 @@ "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:", @@ -1504,7 +1504,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", @@ -1543,8 +1543,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", @@ -1564,5 +1564,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 a1fbf85613..fe22f110c3 100644 --- a/src/strings/el.json +++ b/src/strings/el.json @@ -43,7 +43,7 @@ "Books": "Βιβλία", "Box": "Κουτί", "Browse": "Αναζήτηση", - "BrowsePluginCatalogMessage": "Πλοηγηθείτε στον κατάλογο plugin μας για να δείτε τα διαθέσιμα plugins.", + "MessageBrowsePluginCatalog": "Πλοηγηθείτε στον κατάλογο plugin μας για να δείτε τα διαθέσιμα plugins.", "BurnSubtitlesHelp": "Καθορίζει αν ο διακομιστής πρέπει να εγγράψει τους υπότιτλους κατά τη μετατροπή βίντεο ανάλογα με τη μορφή των υπότιτλων. Η αποφυγή της εγγραφής στους υπότιτλους θα βελτιώσει την απόδοση του διακομιστή. Επιλέξτε Αυτόματα για να εγγράψετε μορφές βασισμένες σε εικόνες (VOBSUB, PGS, SUB / IDX κ.λπ.) και ορισμένους υπότιτλους ASS / SSA.", "ButtonAdd": "Πρόσθεσε", "ButtonAddMediaLibrary": "Προσθήκη βιβλιοθήκης πολυμέσων", @@ -146,7 +146,7 @@ "DatePlayed": "Ημερομηνία Αναπαραγωγής", "DeathDateValue": "Πέθανε: {0}", "Default": "Προεπιλογή", - "DefaultErrorMessage": "Παρουσιάστηκε σφάλμα κατά την επεξεργασία του αιτήματός σας. Παρακαλώ δοκιμάστε ξανά αργότερα.", + "ErrorDefault": "Παρουσιάστηκε σφάλμα κατά την επεξεργασία του αιτήματός σας. Παρακαλώ δοκιμάστε ξανά αργότερα.", "DefaultMetadataLangaugeDescription": "Αυτές είναι οι προεπιλογές σας και μπορούν να προσαρμοστούν σε βάση ανά βιβλιοθήκη.", "DefaultSubtitlesHelp": "Οι υπότιτλοι φορτώνονται με βάση τις προεπιλεγμένες και αναγκασμένες σημαίες στα ενσωματωμένα μεταδεδομένα. Οι προτιμήσεις γλώσσας εξετάζονται όταν υπάρχουν πολλές επιλογές.", "Delete": "Διαγραφή", @@ -206,7 +206,7 @@ "Episodes": "Επεισόδια", "ErrorAddingMediaPathToVirtualFolder": "Παρουσιάστηκε σφάλμα κατά την προσθήκη της διαδρομής πολυμέσων. Βεβαιωθείτε ότι η διαδρομή είναι έγκυρη και ότι η διαδικασία του διακομιστή Jellyfin έχει πρόσβαση σε αυτήν τη θέση.", "ErrorDeletingItem": "Παρουσιάστηκε σφάλμα κατά τη διαγραφή του στοιχείου από τον διακομιστή Jellyfin. Βεβαιωθείτε ότι ο διακομιστής Jellyfin έχει πρόσβαση εγγραφής στο φάκελο πολυμέσων και προσπαθήστε ξανά.", - "ErrorMessageStartHourGreaterThanEnd": "Η ώρα λήξης πρέπει να είναι μεγαλύτερη από την ώρα έναρξης.", + "ErrorStartHourGreaterThanEnd": "Η ώρα λήξης πρέπει να είναι μεγαλύτερη από την ώρα έναρξης.", "EveryNDays": "Κάθε {0} μέρες", "ExitFullscreen": "Έξοδος από τη πλήρη οθόνη", "ExtraLarge": "Πολύ Μεγάλο", @@ -794,8 +794,8 @@ "Next": "Επόμενο", "NextUp": "Επόμενο", "No": "Οχι", - "NoNextUpItemsMessage": "Δεν βρέθηκε κανένα. Ξεκινήστε παρακολουθώντας τις εκπομπές σας!", - "NoPluginConfigurationMessage": "Αυτό το plugin δεν απαιτεί ρυθμίσεις.", + "MessageNoNextUpItems": "Δεν βρέθηκε κανένα. Ξεκινήστε παρακολουθώντας τις εκπομπές σας!", + "MessageNoPluginConfiguration": "Αυτό το plugin δεν απαιτεί ρυθμίσεις.", "NoSubtitleSearchResultsFound": "Δεν βρέθηκαν αποτελέσματα.", "NoSubtitles": "Χωρίς Υπότιτλους", "NoSubtitlesHelp": "Οι υπότιτλοι δεν θα φορτωθούν από προεπιλογή.Μπορούν ακόμα να ενεργοποιούνται χειροκίνητα κατά την αναπαραγωγή.", @@ -925,7 +925,7 @@ "PasswordMatchError": "Ο κωδικός πρόσβασης και ο κωδικός επιβεβαίωσης πρέπει να είναι ίδιοι.", "PasswordResetComplete": "Ο κωδικός πρόσβασης επαναφέρθηκε.", "PasswordResetConfirmation": "Είστε σίγουροι ότι θέλετε να επαναφέρετε τον κωδικό πρόσβασης;", - "PasswordResetHeader": "Επαναφορά του κωδικού πρόσβασης", + "HeaderResetPassword": "Επαναφορά του κωδικού πρόσβασης", "PasswordSaved": "Ο κωδικός πρόσβασης αποθηκεύτηκε.", "People": "Πρόσωπα", "PerfectMatch": "Τέλεια αντιστοίχιση", @@ -946,7 +946,7 @@ "PleaseEnterNameOrId": "Εισαγάγετε ένα όνομα ή ένα εξωτερικό αναγνωριστικό.", "PleaseRestartServerName": "Κάντε επανεκκίνηση του Jellyfin Server - {0}.", "PleaseSelectTwoItems": "Επιλέξτε τουλάχιστον δύο στοιχεία.", - "PluginInstalledMessage": "Η προσθήκη έχει εγκατασταθεί με επιτυχία. Θα πρέπει να γίνει επανεκκίνηση του διακομιστή Jellyfin για να εφαρμοστούν οι αλλαγές.", + "MessagePluginInstalled": "Η προσθήκη έχει εγκατασταθεί με επιτυχία. Θα πρέπει να γίνει επανεκκίνηση του διακομιστή Jellyfin για να εφαρμοστούν οι αλλαγές.", "Premiere": "Πρεμιέρα", "Premieres": "Πρεμιέρες", "Previous": "Προηγούμενο", @@ -1103,7 +1103,7 @@ "Tuesday": "Τρίτη", "Uniform": "ομοειδής", "UninstallPluginConfirmation": "Είστε σίγουροι ότι θέλετε να απεγκαταστήσετε;", - "UninstallPluginHeader": "απεγκατάστησετε το plugin", + "HeaderUninstallPlugin": "απεγκατάστησετε το plugin", "Unmute": "Με ήχο", "Unplayed": "Δεν παίχθηκε", "Unrated": "Χωρίς Βαθμολογία", diff --git a/src/strings/en-gb.json b/src/strings/en-gb.json index 1947dc0c37..e1c2e52a30 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", @@ -202,7 +202,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.", @@ -269,7 +269,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", @@ -466,7 +466,7 @@ "Unrated": "Unrated", "Unplayed": "Unplayed", "Unmute": "Unmute", - "UninstallPluginHeader": "Uninstall Plugin", + "HeaderUninstallPlugin": "Uninstall Plugin", "Trailers": "Trailers", "TrackCount": "{0} tracks", "TitlePlayback": "Playback", @@ -567,7 +567,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", @@ -585,7 +585,7 @@ "Premiere": "Premiere", "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.", @@ -602,7 +602,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.", @@ -686,8 +686,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", @@ -1501,8 +1501,8 @@ "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.", diff --git a/src/strings/en-us.json b/src/strings/en-us.json index a148ef061f..82d2d796f1 100644 --- a/src/strings/en-us.json +++ b/src/strings/en-us.json @@ -45,7 +45,7 @@ "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", @@ -61,7 +61,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", @@ -178,7 +178,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.", "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 +195,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 +253,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,7 +313,7 @@ "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", @@ -400,7 +400,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 +450,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 +469,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 +531,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", @@ -565,7 +565,7 @@ "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 +576,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 +601,14 @@ "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 +640,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 +660,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 +671,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 +681,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 +711,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 +737,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,9 +753,9 @@ "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", @@ -770,7 +770,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:", @@ -822,7 +822,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}.", @@ -836,7 +836,7 @@ "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:", @@ -938,7 +938,7 @@ "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}", @@ -1067,7 +1067,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", @@ -1100,8 +1100,8 @@ "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.", @@ -1126,7 +1126,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.", @@ -1139,7 +1139,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", @@ -1161,7 +1161,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.", @@ -1171,7 +1171,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", @@ -1204,7 +1204,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", @@ -1222,9 +1222,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", @@ -1275,8 +1275,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", @@ -1301,7 +1301,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.", @@ -1326,11 +1326,11 @@ "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", @@ -1495,7 +1495,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", @@ -1561,8 +1561,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/es-ar.json b/src/strings/es-ar.json index e64f1e7c6e..52c98fbc52 100644 --- a/src/strings/es-ar.json +++ b/src/strings/es-ar.json @@ -97,7 +97,7 @@ "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.", "ButtonAdd": "Agregar", "ButtonAddMediaLibrary": "Agregar biblioteca de medios", @@ -201,7 +201,7 @@ "DatePlayed": "Fecha de reproducción", "DeathDateValue": "Muerte: {0}", "Default": "Predeterminado", - "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.", @@ -271,7 +271,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", @@ -918,8 +918,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", @@ -1208,7 +1208,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", @@ -1232,7 +1232,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.", @@ -1256,7 +1256,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.", @@ -1357,8 +1357,8 @@ "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", @@ -1412,7 +1412,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}.", diff --git a/src/strings/es-mx.json b/src/strings/es-mx.json index 5500a26ce6..98b9fd4ab0 100644 --- a/src/strings/es-mx.json +++ b/src/strings/es-mx.json @@ -50,7 +50,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", @@ -156,7 +156,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", @@ -224,7 +224,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", @@ -934,8 +934,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.", @@ -1087,7 +1087,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", @@ -1109,7 +1109,7 @@ "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.", "Premiere": "Estreno", @@ -1131,7 +1131,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", @@ -1281,7 +1281,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", @@ -1544,8 +1544,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 23bc5c9330..44456fb83e 100644 --- a/src/strings/es.json +++ b/src/strings/es.json @@ -40,7 +40,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", @@ -138,7 +138,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 +185,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", @@ -854,8 +854,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.", @@ -1000,7 +1000,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.", @@ -1017,7 +1017,7 @@ "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.", "Premieres": "Estrenos", @@ -1037,7 +1037,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", @@ -1169,7 +1169,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", @@ -1511,8 +1511,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 2e02dd6b3d..fad50d979a 100644 --- a/src/strings/es_419.json +++ b/src/strings/es_419.json @@ -114,7 +114,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}.", @@ -306,8 +306,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", @@ -580,7 +580,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", @@ -604,7 +604,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.", @@ -628,7 +628,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.", @@ -1303,7 +1303,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.", @@ -1374,7 +1374,7 @@ "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", @@ -1496,7 +1496,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", @@ -1541,10 +1541,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 3b3cb07e00..fa2e67474c 100644 --- a/src/strings/fa.json +++ b/src/strings/fa.json @@ -73,7 +73,7 @@ "MessagePleaseEnsureInternetMetadata": "لطفا مطمئن شوید دانلود متاداده از اینترنت فعال است.", "MoreUsersCanBeAddedLater": "بعدا میتوانید کاربران بیشتری را در داشبورد اضافه کنید.", "NextUp": "بعدی چیه", - "NoNextUpItemsMessage": "چیزی یافت نشد. دیدن سریال ها یتان را شروع کنید!", + "MessageNoNextUpItems": "چیزی یافت نشد. دیدن سریال ها یتان را شروع کنید!", "OptionAscending": "صعودی", "OptionDescending": "نزولی", "OptionDislikes": "پسندیده نشده ها", @@ -225,7 +225,7 @@ "AddToCollection": "افزودن به مجموعه", "ExitFullscreen": "خروج از تمام صفحه", "EveryNDays": "هر {0} روز", - "ErrorMessageStartHourGreaterThanEnd": "زمان پایان باید پس از زمان شروع باشد.", + "ErrorStartHourGreaterThanEnd": "زمان پایان باید پس از زمان شروع باشد.", "Episodes": "قسمت‌ها", "EndsAtValue": "تمام شده در {0}", "Ended": "تمام شده", @@ -272,7 +272,7 @@ "DeleteDeviceConfirmation": "آیا از حذف این دستگاه اطمینان دارید؟ هنگامی که یک کاربر دوباره با آن دستگاه وارد شود، دوباره نمایش داده می‌شود.", "Delete": "حذف", "DefaultMetadataLangaugeDescription": "این موارد پیشفرض‌های شماست و می‌توانید برای هر کتابخانه آن را شخصی سازی کنید.", - "DefaultErrorMessage": "خطایی در پردازش درخواست رخ داد. لطفا اندکی بعد دوباره تلاش کنید.", + "ErrorDefault": "خطایی در پردازش درخواست رخ داد. لطفا اندکی بعد دوباره تلاش کنید.", "Default": "پیشفرض", "DeathDateValue": "تلف شد: {0}", "DatePlayed": "تاریخ پخش شده", @@ -312,7 +312,7 @@ "ButtonShutdown": "خاموش", "ButtonSelectDirectory": "انتخاب مسیر", "ButtonEditOtherUserPreferences": "نمایه، تصویر و ترجیحات شخصی این کاربر را ویرایش کنید.", - "BrowsePluginCatalogMessage": "برای مرور کردن افزونه‌های موجود، به فروشگاه افزونه‌های ما سر بزنید.", + "MessageBrowsePluginCatalog": "برای مرور کردن افزونه‌های موجود، به فروشگاه افزونه‌های ما سر بزنید.", "AuthProviderHelp": "ارائه دهنده تأیید اعتبار را انتخاب کنید تا برای تأیید اعتبار گذرواژه این کاربر استفاده شود.", "HeaderRecordingPostProcessing": "در حال ضبط پس پردازش", "HeaderRecordingOptions": "گزینه‌های ضبط", @@ -520,7 +520,7 @@ "Unrated": "بدون امتیاز", "Unplayed": "پخش نشده", "Unmute": "صدادار", - "UninstallPluginHeader": "حذف نصب افزونه", + "HeaderUninstallPlugin": "حذف نصب افزونه", "UninstallPluginConfirmation": "آیا اطمینان دارید که می‌خواهید {0} را حذف نصب کنید؟", "Uniform": "یکپارچه", "Tuesday": "سه‌شنبه", @@ -698,7 +698,7 @@ "MessageInvalidUser": "نام کاربری یا گذرواژه نامعتبر است. لطفا دوباره تلاش کنید.", "MessageInvalidForgotPasswordPin": "کد پین نامعتبر یا منقضی شده وارد شد. لطفا دوباره تلاش کنید.", "MessageInstallPluginFromApp": "این افزونه باید از داخل برنامه‌ای که قصد استفاده از آن را دارید نصب شود.", - "PasswordResetHeader": "بازنشانی گذرواژه", + "HeaderResetPassword": "بازنشانی گذرواژه", "PasswordResetConfirmation": "آیا واقعا تمایل به بازنشانی گذرواژه دارید؟", "PasswordResetComplete": "گذرواژه بازنشانی شد.", "PasswordMatchError": "گذرواژه و تکرار گذرواژه باید یکسان باشند.", @@ -743,7 +743,7 @@ "Refresh": "به‌روز‌رسانی", "Recordings": "ضبط شده ها", "RecordingScheduled": "ضبط برنامه ریزی شد.", - "RecordingPathChangeMessage": "با تغییر محل ذخیره فایل های ضبط شده، فایل های موجود به صورت خودکار منتقل نمی شوند. در صورت نیاز، شما باید خودتان این کار را انجام دهید.", + "MessageChangeRecordingPath": "با تغییر محل ذخیره فایل های ضبط شده، فایل های موجود به صورت خودکار منتقل نمی شوند. در صورت نیاز، شما باید خودتان این کار را انجام دهید.", "RecordingCancelled": "ضبط شدن لغو شد.", "RecordSeries": "ضبط کردن سریال ها", "Record": "ضبط کردن", @@ -767,7 +767,7 @@ "PreferEmbeddedEpisodeInfosOverFileNamesHelp": "این از اطلاعات قسمت در فراداده های تعبیه شده در صورت موجود استفاده می کند.", "PreferEmbeddedTitlesOverFileNamesHelp": "این عنوان نمایش را به صورت پیش فرض تعیین می کند، زمانی که فراداده اینترنتی یا محلی موجود نباشند.", "PreferEmbeddedTitlesOverFileNames": "عنوان های تعبیه شده را به نام فایل ترجیح بده", - "PluginInstalledMessage": "افزونه با موفقیت نصب شد. برای اعمال تغییرات سرور جلیفین نیاز به بارگذاری مجدد دارد.", + "MessagePluginInstalled": "افزونه با موفقیت نصب شد. برای اعمال تغییرات سرور جلیفین نیاز به بارگذاری مجدد دارد.", "PleaseSelectTwoItems": "لطفا حداقل دو مورد را انتخاب کنید.", "PleaseRestartServerName": "لطفا سرور جلیفین را دوباره بارگذاری کنید - {0}.", "PleaseEnterNameOrId": "لطفا یک نام یا شناسه خارجی را وارد کنید.", @@ -797,7 +797,7 @@ "LaunchWebAppOnStartup": "نمای وب هنگامی که سرور آغاز به کار می‌کند باز بشود", "NoSubtitles": "خالی", "NoSubtitleSearchResultsFound": "نتیجه‌ای یافت نشد.", - "NoPluginConfigurationMessage": "این افزونه هیچ تنظیماتی برای پیکربندی ندارد.", + "MessageNoPluginConfiguration": "این افزونه هیچ تنظیماتی برای پیکربندی ندارد.", "No": "خیر", "Next": "بعدی", "News": "اخبار", @@ -1543,7 +1543,7 @@ "TvLibraryHelp": "Review the {0}TV naming guide{1}.", "UserAgentHelp": "Supply a custom user-agent HTTP header.", "ValueContainer": "Container: {0}", - "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 657f1a4c32..ab385484f0 100644 --- a/src/strings/fi.json +++ b/src/strings/fi.json @@ -1,5 +1,5 @@ { - "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", @@ -47,7 +47,7 @@ "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", + "HeaderUninstallPlugin": "Poista Lisäosa", "Absolute": "Ehdoton", "Actor": "Näyttelijä", "Add": "Lisää", @@ -201,7 +201,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 +303,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", @@ -831,7 +831,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", @@ -1216,7 +1216,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 00bc7320cd..2e3b99b946 100644 --- a/src/strings/fr-ca.json +++ b/src/strings/fr-ca.json @@ -138,7 +138,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.", "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.", "ButtonAdd": "Ajouter", diff --git a/src/strings/fr.json b/src/strings/fr.json index 63cf6b95f9..a4fbc078ef 100644 --- a/src/strings/fr.json +++ b/src/strings/fr.json @@ -49,7 +49,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", @@ -155,7 +155,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", @@ -172,7 +172,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", @@ -224,7 +224,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", @@ -277,7 +277,7 @@ "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", @@ -397,7 +397,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", @@ -421,7 +421,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", @@ -471,8 +471,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", @@ -505,14 +505,14 @@ "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 :", @@ -569,7 +569,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.", @@ -579,7 +579,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 :", @@ -595,9 +595,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 :", @@ -605,7 +605,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 :", @@ -633,7 +633,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.", @@ -659,7 +659,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 :", @@ -675,7 +675,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 :", @@ -688,7 +688,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 :", @@ -733,7 +733,7 @@ "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}.", @@ -745,7 +745,7 @@ "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 :", @@ -819,7 +819,7 @@ "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", @@ -932,8 +932,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.", @@ -954,7 +954,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.", @@ -986,7 +986,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.", @@ -995,7 +995,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", @@ -1026,7 +1026,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", @@ -1039,9 +1039,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", @@ -1082,7 +1082,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", @@ -1103,7 +1103,7 @@ "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.", "Premieres": "Inédits", @@ -1124,11 +1124,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", @@ -1265,7 +1265,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é", @@ -1386,7 +1386,7 @@ "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}", @@ -1497,7 +1497,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", @@ -1543,8 +1543,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", diff --git a/src/strings/gsw.json b/src/strings/gsw.json index dad75ae57d..231cb131e5 100644 --- a/src/strings/gsw.json +++ b/src/strings/gsw.json @@ -58,7 +58,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", diff --git a/src/strings/he.json b/src/strings/he.json index 4288b04762..29824e4c3e 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": "האם אתה בטוח שברצונך למחוק תמונה זו?", @@ -298,7 +298,7 @@ "NewEpisodes": "פרקים חדשים", "NewEpisodesOnly": "פרקים חדשים בלבד", "News": "חדשות", - "NoNextUpItemsMessage": "לא נמצא כלום. התחלת לצפות בסדרות שלך!", + "MessageNoNextUpItems": "לא נמצא כלום. התחלת לצפות בסדרות שלך!", "NoSubtitleSearchResultsFound": "לא נמצאו תוצאות.", "Option3D": "תלת מימד", "OptionAdminUsers": "מנהלים", @@ -484,7 +484,7 @@ "TrackCount": "שירים {0}", "Tuesday": "שלישי", "UninstallPluginConfirmation": "האם אתה בטוח שברצונך להסיר {0}?", - "UninstallPluginHeader": "הסר תוסף", + "HeaderUninstallPlugin": "הסר תוסף", "Unrated": "אין דירוג", "ValueAlbumCount": "{0} אלבומים", "ValueDiscNumber": "דיסק {0}", @@ -675,7 +675,7 @@ "ExtraLarge": "גדול מאוד", "ExitFullscreen": "צא ממסך מלא", "EveryNDays": "כל {0} ימים", - "ErrorMessageStartHourGreaterThanEnd": "שעת הסיום חייבת להיות לאחר שעת ההתחלה.", + "ErrorStartHourGreaterThanEnd": "שעת הסיום חייבת להיות לאחר שעת ההתחלה.", "Episodes": "פרקים", "EnableThemeSongsHelp": "נגן שירי פתיח ברגע בעת העיון בספרייה.", "ThemeSongs": "שירי פתיח", diff --git a/src/strings/hi-in.json b/src/strings/hi-in.json index 48b82c601f..7e9bb01563 100644 --- a/src/strings/hi-in.json +++ b/src/strings/hi-in.json @@ -114,7 +114,7 @@ "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 db5c5499d2..ed534a8d95 100644 --- a/src/strings/hr.json +++ b/src/strings/hr.json @@ -16,7 +16,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č", @@ -106,7 +106,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 +133,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.", @@ -692,8 +692,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", @@ -828,7 +828,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.", @@ -855,7 +855,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.", @@ -963,7 +963,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", diff --git a/src/strings/hu.json b/src/strings/hu.json index ddf4cd9fe9..b097531d06 100644 --- a/src/strings/hu.json +++ b/src/strings/hu.json @@ -278,13 +278,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 +303,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.", @@ -459,7 +459,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", @@ -554,7 +554,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}", @@ -604,7 +604,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.", + "MessageBrowsePluginCatalog": "Böngéssz a Bővítmény katalógusunkban a rendelkezésre álló bővítmények megtekintéséhez.", "AddItemToCollectionHelp": "Adj elemeket a gyűjteményekhez, ehhez keresed meg őket, majd kattints jobb egérgombbal, vagy kattints a menüre és add hozzá a gyűjteményhez.", "AllowedRemoteAddressesHelp": "Vesszővel válaszd el az IP-címek vagy IP / netmask címek listáját annak a hálózatnak amelyből távolról csatlakozhatnak. Ha üresen marad, az összes távoli cím megengedett.", "BoxRear": "Box (hátsó)", @@ -645,7 +645,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", @@ -655,7 +655,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", @@ -682,7 +682,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", @@ -747,7 +747,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", @@ -763,7 +763,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", @@ -777,7 +777,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", @@ -814,7 +814,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", @@ -836,9 +836,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:", @@ -860,15 +860,15 @@ "LabelDisplayLanguage": "Megjelenítési nyelv:", "LabelDisplayLanguageHelp": "A Jellyfin fordítása egy folyamatos projekt.", "LabelDisplayMode": "Megjelenítési mód:", - "LabelArtistsHelp": "Ha több van használd a következő elválasztót ;", + "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", @@ -881,8 +881,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:", @@ -921,7 +921,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:", @@ -949,7 +949,7 @@ "LabelScheduledTaskLastRan": "Utoljára futtatva: {0}, Időtartam: {1}.", "LabelScreensaver": "Képernyővédő:", "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?", @@ -988,7 +988,7 @@ "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.", @@ -1069,8 +1069,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", @@ -1083,7 +1083,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", @@ -1092,7 +1092,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", @@ -1101,11 +1101,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", @@ -1126,7 +1126,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", @@ -1154,7 +1154,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", @@ -1167,7 +1167,7 @@ "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.", "Premiere": "Premier", @@ -1182,7 +1182,7 @@ "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.", @@ -1266,7 +1266,7 @@ "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:", @@ -1299,7 +1299,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", @@ -1312,7 +1312,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.", @@ -1329,7 +1329,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:", @@ -1338,7 +1338,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", @@ -1429,8 +1429,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", @@ -1499,7 +1499,7 @@ "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", @@ -1541,8 +1541,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", @@ -1564,5 +1564,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..b0eb49d9df 100644 --- a/src/strings/id.json +++ b/src/strings/id.json @@ -56,7 +56,7 @@ "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", @@ -150,7 +150,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", diff --git a/src/strings/is-is.json b/src/strings/is-is.json index fac582bad4..f46de26e59 100644 --- a/src/strings/is-is.json +++ b/src/strings/is-is.json @@ -53,7 +53,7 @@ "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.", @@ -145,7 +145,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.", @@ -380,7 +380,7 @@ "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ð", @@ -433,7 +433,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", diff --git a/src/strings/it.json b/src/strings/it.json index be5af2f812..cf2daf77b2 100644 --- a/src/strings/it.json +++ b/src/strings/it.json @@ -44,7 +44,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", @@ -145,7 +145,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 +213,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", @@ -893,8 +893,8 @@ "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.", @@ -1037,7 +1037,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", @@ -1058,7 +1058,7 @@ "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.", "Premiere": "Prima visione", @@ -1080,7 +1080,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", @@ -1223,7 +1223,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", @@ -1541,8 +1541,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", diff --git a/src/strings/ja.json b/src/strings/ja.json index 691df651c0..53d3650cef 100644 --- a/src/strings/ja.json +++ b/src/strings/ja.json @@ -52,7 +52,7 @@ "Box": "ボックス", "BoxRear": "ボックス(後)", "Browse": "ブラウズ", - "BrowsePluginCatalogMessage": "利用可能なプラグインを表示するには、プラグインカタログを参照してください。", + "MessageBrowsePluginCatalog": "利用可能なプラグインを表示するには、プラグインカタログを参照してください。", "BurnSubtitlesHelp": "ビデオのトランスコード時にサーバーが字幕を焼付けるかどうかを決定します。 この字幕焼付けを避けると、サーバーのパフォーマンスが非常に向上します。 画像ベースの形式 (VOBSUB, PGS, SUB, IDX など) と特定の ASS または SSA 字幕でだけ焼付けを行うには、自動を選んでください。", "ButtonAdd": "追加", "ButtonAddMediaLibrary": "メディアライブラリを追加", @@ -157,7 +157,7 @@ "DateAdded": "追加日時", "DatePlayed": "再生日時", "Default": "デフォルト", - "DefaultErrorMessage": "要求の処理中にエラーが発生しました。 後でもう一度やり直してください。", + "ErrorDefault": "要求の処理中にエラーが発生しました。 後でもう一度やり直してください。", "DefaultMetadataLangaugeDescription": "これらはデフォルトであり、ライブラリごとにカスタマイズすることができます。", "DefaultSubtitlesHelp": "字幕は、埋め込みメタデータのデフォルトフラグと強制フラグに基づいてロードされます。 複数のオプションが利用可能な場合は、言語設定が考慮されます。", "Delete": "削除", @@ -236,7 +236,7 @@ "ErrorAddingXmlTvFile": "XMLTV ファイルへのアクセス中にエラーが発生しました。 ファイルが存在することを確認して、やり直してください。", "ErrorDeletingItem": "Jellyfin サーバーからアイテムを削除中にエラーが発生しました。 Jellyfin サーバーがメディアフォルダーへの書き込みアクセス権を持っていることを確認して、もう一度やり直してください。", "ErrorGettingTvLineups": "TV ラインナップ のダウンロード中にエラーが発生しました。 あなたの情報が正しいことを確認してもう一度やり直してください。", - "ErrorMessageStartHourGreaterThanEnd": "終了時間は開始時間より長くなければなりません。", + "ErrorStartHourGreaterThanEnd": "終了時間は開始時間より長くなければなりません。", "ErrorPleaseSelectLineup": "ラインナップを選択してもう一度やり直してください。 ラインナップが利用できない場合は、あなたのユーザー名、パスワード、および郵便番号が正しいことを確認してください。", "ErrorSavingTvProvider": "TV プロバイダの保存中にエラーが発生しました。 アクセス可能であることを確認して、もう一度やり直してください。", "EveryNDays": "{0}日ごと", @@ -375,7 +375,7 @@ "HeaderItems": "アイテム", "HeaderKeepRecording": "録画を続ける", "HeaderKeepSeries": "シリーズを続ける", - "HeaderKodiMetadataHelp": "NFOメタデータを有効または無効にするには、Jellyfinライブラリ設定でライブラリを編集し、メタデータ保存機能セクションを見つけます。", + "HeaderKodiMetadataHelp": "NFOメタデータを有効または無効にするには、ライブラリを編集し「メタデータサーバー」の項目にて変更できます。", "HeaderLatestEpisodes": "最新のエピソード", "HeaderLatestMedia": "最新のメディア", "HeaderLatestMovies": "最新のムービー", @@ -423,7 +423,7 @@ "HeaderPreferredMetadataLanguage": "優先するメタデータ言語", "HeaderProfile": "プロファイル", "HeaderProfileInformation": "プロファイル情報", - "HeaderProfileServerSettingsHelp": "これらの値はJellyfinサーバーがそれ自体をデバイスに提示する方法を制御します。", + "HeaderProfileServerSettingsHelp": "これらの設定はサーバーがクライアントに提示する方法を示しています。", "HeaderRecentlyPlayed": "最近再生した", "HeaderRecordingOptions": "録画設定", "HeaderRecordingPostProcessing": "録画後の処理", @@ -441,13 +441,13 @@ "HeaderSecondsValue": "{0} 秒", "HeaderSelectCertificatePath": "証明書のパスを選択", "HeaderSelectMetadataPath": "メタデータのパスを選択", - "HeaderSelectMetadataPathHelp": "メタデータを保存するパスを参照または入力します。 フォルダは書き込み可能でなければなりません。", + "HeaderSelectMetadataPathHelp": "メタデータの保存先を参照またはパスを入力してください。 フォルダは書き込み可能でなければなりません。", "HeaderSelectPath": "パスの選択", "HeaderSelectServer": "サーバーの選択", "HeaderSelectServerCachePath": "サーバーキャッシュのパスを選択", "HeaderSelectServerCachePathHelp": "サーバーキャッシュファイルに使用するパスを参照または入力します。 フォルダは書き込み可能でなければなりません。", "HeaderSelectTranscodingPath": "トランスコーディング用の一時パスの選択", - "HeaderSelectTranscodingPathHelp": "一時ファイルのトランスコードに使用するパスを参照または入力します。 フォルダは書き込み可能でなければなりません。", + "HeaderSelectTranscodingPathHelp": "トランスコードファイルの保存先を参照またはパスを入力してください。 フォルダは書き込み可能でなければなりません。", "HeaderSendMessage": "メッセージの送信", "HeaderSeries": "シリーズ", "HeaderSeriesOptions": "シリーズオプション", @@ -594,7 +594,7 @@ "OptionWeekdays": "平日", "ParentalRating": "個人評価", "PasswordResetConfirmation": "本当にパスワードを再設定しますか?", - "PasswordResetHeader": "パスワード再設定", + "HeaderResetPassword": "パスワード再設定", "PasswordSaved": "パスワードが保存されました。", "People": "ピープル", "PerfectMatch": "完全に一致", @@ -633,7 +633,7 @@ "OneChannel": "1チャンネル", "TabDevices": "デバイス", "ValueContainer": "コンテナ: {0}", - "ImportFavoriteChannelsHelp": "有効にすると、チューナーのデバイスのお気に入りのチャンネルのみインポートされます。", + "ImportFavoriteChannelsHelp": "チューナーでのお気に入りのチャンネルのみインポートされます。", "MusicAlbum": "ミュージックアルバム", "OptionDownloadLogoImage": "ロゴ", "OptionEnableAccessToAllChannels": "すべてのチャンネルへのアクセスを有効化", @@ -657,9 +657,9 @@ "LabelCriticRating": "評論家の評価:", "LabelCurrentPassword": "現在のパスワード:", "LabelCustomCss": "カスタムCSS:", - "LabelCustomCssHelp": "ウェブインターフェースにカスタムスタイリングを適応する。", + "LabelCustomCssHelp": "ウェブインターフェースにカスタムスタイルを適応する。", "LabelCustomDeviceDisplayName": "表示名:", - "LabelEnableDlnaClientDiscoveryInterval": "クライアント探索間隔 (秒)", + "LabelEnableDlnaClientDiscoveryInterval": "クライアント探索間隔", "LabelParentalRating": "個人評価:", "LabelPassword": "パスワード:", "LabelPasswordConfirm": "パスワード (確認):", @@ -682,7 +682,7 @@ "LabelBirthDate": "誕生日:", "LabelBitrate": "ビットレート:", "LabelBirthYear": "生年:", - "LabelBlastMessageInterval": "アライブメッセージ間隔 (秒)", + "LabelBlastMessageInterval": "アライブメッセージ間隔", "LabelCache": "キャッシュ:", "LabelDisplayMode": "表示モード:", "LabelDisplayOrder": "表示順:", @@ -786,7 +786,7 @@ "TitlePlayback": "プレイバック", "TrackCount": "{0} トラック", "Transcoding": "トランスコーディング", - "UninstallPluginHeader": "プラグインをアンインストール", + "HeaderUninstallPlugin": "プラグインをアンインストール", "Unmute": "ミュート解除", "Unrated": "未評価", "Up": "上へ", @@ -1106,7 +1106,7 @@ "ValueTimeLimitSingleHour": "タイムリミット: 1 時間", "Wednesday": "水曜日", "LabelPreferredDisplayLanguage": "優先する表示言語:", - "ImportMissingEpisodesHelp": "有効にすると、所有してないエピソードの情報がJellyfinデータベースにインポートされ、シーズンとシリーズに表示されます。これは、ライブラリスキャンに莫大な時間が掛かる可能性があります。", + "ImportMissingEpisodesHelp": "所有してないエピソードの情報がデータベースにインポートされ、シーズンとシリーズ内に表示されます。ライブラリの読み込み時間が非常に長くなる可能性があります。", "LabelBindToLocalNetworkAddress": "ローカルネットワークアドレスにバインド:", "LabelDownMixAudioScale": "ダウンミキシング時の音声ブースト:", "HeaderNavigation": "ナビゲーション", @@ -1117,7 +1117,7 @@ "LabelDroppedFrames": "ドロップフレーム:", "LabelDisplayMissingEpisodesWithinSeasons": "シーズン中の見つからなかったエピソードを表示", "LabelCustomDeviceDisplayNameHelp": "任意の表示名を提供するか、空白のままにしてデバイスネームで報告する。", - "LabelArtistsHelp": "分けますと使用;", + "LabelArtistsHelp": "複数のアーティストは「;」で分ける。", "Identify": "識別する", "TabRecordings": "録画", "Recordings": "録画", @@ -1132,7 +1132,7 @@ "LabelEveryXMinutes": "毎:", "LabelEnableSingleImageInDidlLimit": "単一の埋め込み画像に制限", "LabelEnableBlastAliveMessages": "アライブメッセージを配信する", - "LabelDateAddedBehaviorHelp": "メタデータある場合、これらのオプションの前にメタデータ使います。", + "LabelDateAddedBehaviorHelp": "メタデータがある場合、これらのオプションの前に優先します。", "AskAdminToCreateLibrary": "管理者にライブラリを作成する依頼をしてください。", "AllowFfmpegThrottling": "トランスコードをスロットルする", "Episode": "エピソード", @@ -1174,7 +1174,7 @@ "LabelEmbedAlbumArtDidlHelp": "一部のデバイスでは、アルバムアートを取得するためにこの方法が好まれています。その他のデバイスでは、このオプションを有効にしても再生できない場合があります。", "LabelDownMixAudioScaleHelp": "ダウンミックス時にオーディオの音量を増幅します。値が 1 の場合、元の音量を維持します。", "LabelEnableHttps": "HTTPS を有効にする", - "LabelEnableDlnaPlayToHelp": "ネットワーク内のデバイスを検出し、それらをリモートコントロールできるようにします。", + "LabelEnableDlnaPlayToHelp": "ネットワーク内のデバイスを検出し、それらをリモートで操作できるようにします。", "LabelEnableDlnaPlayTo": "DLNA 再生を有効にする", "LabelEnableDlnaDebugLoggingHelp": "巨大なログファイルを作成します。トラブルシューティングでの必要な際にだけ使用してください。", "LabelEnableDlnaClientDiscoveryIntervalHelp": "Jellyfin が実行する SSDP 検索の間隔を決めます(秒単位)。", diff --git a/src/strings/kk.json b/src/strings/kk.json index 1396bcff34..e4eb57a72d 100644 --- a/src/strings/kk.json +++ b/src/strings/kk.json @@ -53,7 +53,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ý", @@ -161,7 +161,7 @@ "DatePlayed": "Oınatylǵan kúni", "DeathDateValue": "Ólgeni: {0}", "Default": "Ádepki", - "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ıý", @@ -230,7 +230,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", @@ -952,8 +952,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.", @@ -1111,7 +1111,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ń", @@ -1133,7 +1133,7 @@ "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.", "Premiere": "Tusaýkeseri", @@ -1155,7 +1155,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ý", @@ -1310,7 +1310,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", diff --git a/src/strings/ko.json b/src/strings/ko.json index e587031bb5..721a6969bb 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": "서버 추가", @@ -86,7 +86,7 @@ "Connect": "접속", "CustomDlnaProfilesHelp": "새 장치를 대상으로 하거나 시스템 프로필을 재정의 할 사용자 지정 프로필을 만듭니다.", "DeathDateValue": "사망: {0}", - "DefaultErrorMessage": "요청을 처리하는 중에 오류가 발생했습니다. 나중에 다시 시도하십시오.", + "ErrorDefault": "요청을 처리하는 중에 오류가 발생했습니다. 나중에 다시 시도하십시오.", "DefaultMetadataLangaugeDescription": "이는 기본값이며 라이브러리별로 사용자 정의될 수 있습니다.", "Delete": "제거", "DeleteImage": "이미지 제거", @@ -525,7 +525,7 @@ "MoreUsersCanBeAddedLater": "나중에 대시보드에서 사용자를 더 추가할 수 있습니다.", "Mute": "음소거", "NewCollection": "새 컬렉션", - "NoNextUpItemsMessage": "아무도 찾지 못했어요. 여러분의 쇼를 보기 시작하세요!", + "MessageNoNextUpItems": "아무도 찾지 못했어요. 여러분의 쇼를 보기 시작하세요!", "OptionAdminUsers": "관리자", "OptionAlbum": "앨범", "OptionAlbumArtist": "앨범 아티스트", @@ -648,7 +648,7 @@ "PasswordMatchError": "비밀번호와 비밀번호 확인이 일치해야 합니다.", "PasswordResetComplete": "비밀번호가 재설정되었습니다.", "PasswordResetConfirmation": "비밀번호를 재설정하겠습니까?", - "PasswordResetHeader": "비밀번호 재설정", + "HeaderResetPassword": "비밀번호 재설정", "PasswordSaved": "비밀번호가 저장되었습니다.", "PictureInPicture": "Picture in picture", "PinCodeResetComplete": "PIN 코드가 초기화되었습니다.", @@ -749,7 +749,7 @@ "TrackCount": "{0} 트랙", "Tuesday": "화요일", "UninstallPluginConfirmation": "{0} 을(를) 설치 제거하겠습니까?", - "UninstallPluginHeader": "플러그인 제거", + "HeaderUninstallPlugin": "플러그인 제거", "Unmute": "음소거 취소", "UserProfilesIntro": "Jellyfin은 세분화된 디스플레이 설정, 재생 상태, 자녀 보호 기능을 갖춘 사용자 프로필을 지원합니다.", "ValueAlbumCount": "{0} 앨범", @@ -813,7 +813,7 @@ "AllowOnTheFlySubtitleExtraction": "실시간 자막 추출 허용", "AllowOnTheFlySubtitleExtractionHelp": "비디오 트랜스코딩을 방지하기 위해 내장된 자막을 비디오에서 추출하여 텍스트로 클라이언트에 전송할 수 있습니다. 다만, 일부 시스템에서 추출 과정은 긴 시간이 걸리고 비디오 재생을 멈출 수 있습니다. 클라이언트에서 트랜스코딩을 사용할 수 없는 경우 이 기능을 비활성화하여 트랜스코딩 시 자막을 영상에 삽입하십시오.", "AllowRemoteAccess": "이 Jellyfin 서버에 원격 접속을 허용합니다.", - "AllowRemoteAccessHelp": "체크 해제 시 모든 외부 접속은 차단됩니다.", + "AllowRemoteAccessHelp": "비 활성화할 시, 모든 외부 접속은 차단됩니다.", "AllowedRemoteAddressesHelp": "외부 접속을 허용할 IP 혹은 IP 넷마스크를 반점(,)으로 구분하여 입력하십시오. 공란일시, 모든 외부 접속이 허용됩니다.", "AlwaysPlaySubtitles": "항상 표시", "AlwaysPlaySubtitlesHelp": "오디오 언어를 불문하고 언어 설정에 적합한 자막을 불러옵니다.", @@ -953,7 +953,7 @@ "Programs": "프로그램", "Previous": "이전", "PreferEmbeddedTitlesOverFileNames": "파일 이름보다 내장된 제목 선호", - "PluginInstalledMessage": "플러그인이 성공적으로 설치되었습니다. 변경사항을 적용하려면 Jellyfin 서버를 재시작하십시오.", + "MessagePluginInstalled": "플러그인이 성공적으로 설치되었습니다. 변경사항을 적용하려면 Jellyfin 서버를 재시작하십시오.", "PleaseRestartServerName": "Jellyfin 서버를 재시작하십시오 - {0}.", "PleaseEnterNameOrId": "이름 또는 외부 ID를 입력하십시오.", "PlayNextEpisodeAutomatically": "자동으로 다음 에피소드 재생", @@ -1143,7 +1143,7 @@ "FileReadCancelled": "파일 읽기 작업이 취소되었습니다.", "FetchingData": "추가 데이터를 가져오는 중", "ExtraLarge": "매우 큼", - "ErrorMessageStartHourGreaterThanEnd": "종료 시간은 시작 시간보다 커야 합니다.", + "ErrorStartHourGreaterThanEnd": "종료 시간은 시작 시간보다 커야 합니다.", "Display": "디스플레이", "DirectStreamHelp1": "이 미디어는 해상도 및 미디어 유형(H.264, AC3 등)과 관련하여 장치와 호환되지만, 파일 컨테이너(mkv, avi, wmv 등)와는 호환되지 않습니다. 비디오는 장치로 스트리밍 되기 전에 즉각 재포장됩니다.", "Descending": "내림차순", @@ -1258,7 +1258,7 @@ "MediaInfoBitDepth": "비트뎁스", "LabelPostProcessor": "후처리 애플리케이션:", "RefreshQueued": "새로 고침 대기 중", - "NoPluginConfigurationMessage": "이 플러그인은 설정할 것이 없습니다.", + "MessageNoPluginConfiguration": "이 플러그인은 설정할 것이 없습니다.", "OptionExtractChapterImage": "챕터 이미지 추출 활성화", "Up": "위", "EasyPasswordHelp": "쉬운 핀 코드는 지원되는 기기에서 오프라인 접근을 할 때나 내부 내트워크 로그인에서 사용됩니다.", diff --git a/src/strings/lt-lt.json b/src/strings/lt-lt.json index c0b254251a..8599c332c5 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.", @@ -322,7 +322,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", @@ -655,7 +655,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", @@ -831,7 +831,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.", diff --git a/src/strings/lv.json b/src/strings/lv.json index fd2d2d821e..4a0addb70c 100644 --- a/src/strings/lv.json +++ b/src/strings/lv.json @@ -556,7 +556,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", @@ -692,7 +692,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", @@ -830,7 +830,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", @@ -881,7 +881,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:", @@ -975,7 +975,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?", @@ -1137,7 +1137,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.", diff --git a/src/strings/ms.json b/src/strings/ms.json index d5f9259c21..db01453815 100644 --- a/src/strings/ms.json +++ b/src/strings/ms.json @@ -92,7 +92,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 bba97f9da2..8df80afaa8 100644 --- a/src/strings/nb.json +++ b/src/strings/nb.json @@ -33,7 +33,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", @@ -126,7 +126,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 +164,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", @@ -763,7 +763,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", @@ -895,7 +895,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", @@ -913,7 +913,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", @@ -931,7 +931,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", @@ -1050,7 +1050,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.", @@ -1207,7 +1207,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", @@ -1469,8 +1469,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", diff --git a/src/strings/nl.json b/src/strings/nl.json index e97578db4b..c27ea0ef96 100644 --- a/src/strings/nl.json +++ b/src/strings/nl.json @@ -48,7 +48,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", @@ -149,7 +149,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 +216,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", @@ -880,8 +880,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.", @@ -1022,7 +1022,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", @@ -1044,7 +1044,7 @@ "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.", "Premieres": "Premières", @@ -1065,7 +1065,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", @@ -1204,7 +1204,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", @@ -1552,8 +1552,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 3c4c9b3160..c77e0ac1b8 100644 --- a/src/strings/pl.json +++ b/src/strings/pl.json @@ -53,7 +53,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", @@ -160,7 +160,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 +229,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", @@ -945,8 +945,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.", @@ -1102,7 +1102,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", @@ -1124,7 +1124,7 @@ "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.", "Premiere": "Premiera", @@ -1146,7 +1146,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ż", @@ -1301,7 +1301,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", @@ -1477,8 +1477,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", diff --git a/src/strings/pt-br.json b/src/strings/pt-br.json index e2f61129f5..3b99379518 100644 --- a/src/strings/pt-br.json +++ b/src/strings/pt-br.json @@ -49,7 +49,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", @@ -153,7 +153,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 +219,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", @@ -347,7 +347,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", @@ -396,7 +396,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", @@ -503,7 +503,7 @@ "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:", @@ -918,8 +918,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.", @@ -1065,7 +1065,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", @@ -1086,7 +1086,7 @@ "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.", "Premieres": "Estreias", @@ -1107,7 +1107,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", @@ -1250,7 +1250,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", @@ -1332,7 +1332,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", @@ -1541,8 +1541,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", diff --git a/src/strings/pt-pt.json b/src/strings/pt-pt.json index 4243a4869c..f48f47befd 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", @@ -527,7 +527,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", @@ -643,7 +643,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?", @@ -734,7 +734,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}", @@ -881,7 +881,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.", @@ -915,7 +915,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", @@ -997,12 +997,12 @@ "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.", @@ -1207,7 +1207,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", diff --git a/src/strings/pt.json b/src/strings/pt.json index e6d21f584d..6b6f793ffb 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", @@ -138,7 +138,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.", @@ -161,7 +161,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.", @@ -678,8 +678,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", @@ -855,7 +855,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.", @@ -919,7 +919,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", @@ -1068,7 +1068,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", diff --git a/src/strings/ro.json b/src/strings/ro.json index ccb91f0a50..3ea72217bd 100644 --- a/src/strings/ro.json +++ b/src/strings/ro.json @@ -117,7 +117,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.", @@ -275,7 +275,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", @@ -345,7 +345,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ă", @@ -562,7 +562,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.", @@ -1007,7 +1007,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ă", @@ -1239,7 +1239,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ă", @@ -1261,7 +1261,7 @@ "Premiere": "Premieră", "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.", @@ -1283,7 +1283,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ă.", @@ -1401,7 +1401,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}.", @@ -1541,8 +1541,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 0a471bca0c..b24b8ab3ef 100644 --- a/src/strings/ru.json +++ b/src/strings/ru.json @@ -53,7 +53,7 @@ "Box": "Коробка", "BoxRear": "Коробка (задняя часть)", "Browse": "Навигация", - "BrowsePluginCatalogMessage": "Просмотрите каталог плагинов, чтобы ознакомиться с имеющимися плагинами.", + "MessageBrowsePluginCatalog": "Просмотрите каталог плагинов, чтобы ознакомиться с имеющимися плагинами.", "BurnSubtitlesHelp": "Определяется, должен ли сервер внедрять субтитры при перекодировании. Избежание этого значительно улучшит производительность. Выберите «Авто» для записи основанных на графике форматов (VOBSUB, PGS, SUB, IDX и др.) и некоторых субтитров ASS или SSA.", "ButtonAdd": "Добавить", "ButtonAddMediaLibrary": "Добавить медиатеку", @@ -163,7 +163,7 @@ "DatePlayed": "Дата воспроизведения", "DeathDateValue": "Дата смерти: {0}", "Default": "По умолчанию", - "DefaultErrorMessage": "Произошла ошибка при обработке запроса. Повторите попытку позже.", + "ErrorDefault": "Произошла ошибка при обработке запроса. Повторите попытку позже.", "DefaultMetadataLangaugeDescription": "Они являются значениями по умолчанию и могут быть подстроены индивидуально для каждой медиатеки.", "DefaultSubtitlesHelp": "Загрузки субтитров определяются флагами \"По умолчанию\" и \"Форсированные\" во внедрённых метаданных. Языковые настройки учитываются при наличии нескольких опций.", "Delete": "Удалить", @@ -232,7 +232,7 @@ "ErrorAddingXmlTvFile": "Произошла ошибка при доступе к XMLTV-файлу. Убедитесь, что файл существует и повторите попытку.", "ErrorDeletingItem": "Произошла ошибка при удалении элемента с Jellyfin Server. Проверьте, что у Jellyfin Server имеется доступ на запись в медиапапку и повторите попытку.", "ErrorGettingTvLineups": "Произошла ошибка при загрузке списков сопоставления. Убедитесь, что ваши данные правильны и повторите попытку.", - "ErrorMessageStartHourGreaterThanEnd": "Конечное время должно быть позже, чем начальное время.", + "ErrorStartHourGreaterThanEnd": "Конечное время должно быть позже, чем начальное время.", "ErrorPleaseSelectLineup": "Выделите список сопоставления и повторите попытку. Если списков сопоставления не имеется, то проверьте, что ваше имя пользователя, пароль и почтовый код являются верными.", "ErrorSavingTvProvider": "Произошла ошибка при сохранении поставщика ТВ. Убедитесь, что он доступен и повторите попытку.", "EveryNDays": "Каждые {0} дней", @@ -955,8 +955,8 @@ "NextUp": "Очередное", "No": "Нет", "NoNewDevicesFound": "Новых устройств не обнаружено. Чтобы добавить новый тюнер, закройте данный диалог и введите сведения об устройстве вручную.", - "NoNextUpItemsMessage": "Ничего не найдено. Начните смотреть свои ТВ-передачи!", - "NoPluginConfigurationMessage": "В данном плагине нет параметров конфигурирования.", + "MessageNoNextUpItems": "Ничего не найдено. Начните смотреть свои ТВ-передачи!", + "MessageNoPluginConfiguration": "В данном плагине нет параметров конфигурирования.", "NoSubtitleSearchResultsFound": "Результатов не найдено.", "NoSubtitles": "Ничего", "NoSubtitlesHelp": "По умолчанию, субтитры не будут загружаться. Они могут быть все ещё включены вручную во время воспроизведения.", @@ -1114,7 +1114,7 @@ "PasswordMatchError": "Пароль и подтверждение пароля должны совпадать.", "PasswordResetComplete": "Пароль был сброшен.", "PasswordResetConfirmation": "Вы действительно хотите сбросить пароль?", - "PasswordResetHeader": "Сброс пароля", + "HeaderResetPassword": "Сброс пароля", "PasswordSaved": "Пароль был сохранён.", "People": "Люди", "PerfectMatch": "Полное соответствие", @@ -1136,7 +1136,7 @@ "PleaseEnterNameOrId": "Введите название или внешний ID.", "PleaseRestartServerName": "Перезапустите Jellyfin Server - {0}.", "PleaseSelectTwoItems": "Выберите хотя бы два элемента.", - "PluginInstalledMessage": "Плагин установлен успешно. Чтобы изменения вступили в силу, будет необходимо перезапустить Jellyfin Server.", + "MessagePluginInstalled": "Плагин установлен успешно. Чтобы изменения вступили в силу, будет необходимо перезапустить Jellyfin Server.", "PreferEmbeddedTitlesOverFileNames": "Предпочитать внедрённые названия, чем имена файлов", "PreferEmbeddedTitlesOverFileNamesHelp": "Этим определяется отображаемое название по умолчанию, когда нет метаданных с интернета или локальные метаданные недоступны.", "Premiere": "Премьера", @@ -1158,7 +1158,7 @@ "Record": "Записать", "RecordSeries": "Записать сериал", "RecordingCancelled": "Запись отменена.", - "RecordingPathChangeMessage": "Изменение папки для записи не приведёт к переносу существующих записей со старого места на новое. Вам нужно переместить их вручную, если это необходимо.", + "MessageChangeRecordingPath": "Изменение папки для записи не приведёт к переносу существующих записей со старого места на новое. Вам нужно переместить их вручную, если это необходимо.", "RecordingScheduled": "Запись назначена.", "Recordings": "Записи", "Refresh": "Обновить", @@ -1315,7 +1315,7 @@ "TvLibraryHelp": "Просмотрите {0}руководство по именованию передач{1}.", "Uniform": "Однородная", "UninstallPluginConfirmation": "Вы действительно хотите удалить {0}?", - "UninstallPluginHeader": "Удаление плагина", + "HeaderUninstallPlugin": "Удаление плагина", "Unmute": "Вкл. звук", "Unplayed": "Невоспроизведённое", "Unrated": "Без категории", @@ -1543,8 +1543,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 dc754fdff2..7b6331aa4d 100644 --- a/src/strings/sk.json +++ b/src/strings/sk.json @@ -110,7 +110,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 +143,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é", @@ -573,8 +573,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", @@ -682,7 +682,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", @@ -701,7 +701,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", @@ -819,7 +819,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é", @@ -1172,7 +1172,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", @@ -1215,7 +1215,7 @@ "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", @@ -1541,8 +1541,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 16d8472546..d5e3fdba67 100644 --- a/src/strings/sl-si.json +++ b/src/strings/sl-si.json @@ -124,14 +124,14 @@ "Box": "Ovitek", "BoxRear": "Ovitek (zadnja stran)", "Browse": "Brskaj", - "BrowsePluginCatalogMessage": "Poiščite 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.", "ButtonAdd": "Dodaj", "Photos": "Fotografije", "Playlists": "Seznami predvajanja", "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", @@ -257,7 +257,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", @@ -286,7 +286,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", @@ -301,7 +301,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", @@ -346,7 +346,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", @@ -408,7 +408,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", @@ -450,7 +450,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.", @@ -466,7 +466,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.", @@ -516,7 +516,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", @@ -565,7 +565,7 @@ "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:", @@ -598,13 +598,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", @@ -622,10 +622,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.", @@ -640,10 +640,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:", @@ -662,9 +662,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:", @@ -674,7 +674,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", @@ -687,7 +687,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:", @@ -741,7 +741,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.", @@ -756,7 +756,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", @@ -864,7 +864,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", @@ -1074,7 +1074,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", @@ -1266,7 +1266,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", @@ -1389,7 +1389,7 @@ "TabSeries": "Serije", "TabScheduledTasks": "Načrtovana opravila", "TabResumeSettings": "Nadaljuj", - "UninstallPluginHeader": "Odstrani dodatek", + "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", diff --git a/src/strings/sr.json b/src/strings/sr.json index d1ed50e87b..df90a3c0f8 100644 --- a/src/strings/sr.json +++ b/src/strings/sr.json @@ -70,7 +70,7 @@ "ButtonAddMediaLibrary": "Додај каталог медија", "ButtonAddImage": "Додај слику", "ButtonAdd": "Додај", - "BrowsePluginCatalogMessage": "Претражуј наш каталог доступних додатака", + "MessageBrowsePluginCatalog": "Претражуј наш каталог доступних додатака", "Browse": "Изабери", "BoxRear": "Омот (позади)", "Box": "Омот", diff --git a/src/strings/sv.json b/src/strings/sv.json index dfc0fa6826..16357498af 100644 --- a/src/strings/sv.json +++ b/src/strings/sv.json @@ -45,7 +45,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", @@ -145,7 +145,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.", @@ -208,7 +208,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", @@ -886,8 +886,8 @@ "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", "NoSubtitlesHelp": "Undertexter kommer inte visas per standard. Det kan fortfarande sättas på manuellt under uppspelning.", @@ -1033,7 +1033,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", @@ -1055,7 +1055,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", @@ -1217,7 +1217,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", @@ -1375,7 +1375,7 @@ "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", - "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.", + "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", @@ -1538,8 +1538,8 @@ "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", + "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", diff --git a/src/strings/tr.json b/src/strings/tr.json index f6ea6c7188..194ff3c1c5 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ğ", @@ -245,7 +245,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", @@ -421,7 +421,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ı", @@ -538,7 +538,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.", diff --git a/src/strings/vi.json b/src/strings/vi.json index 4481559761..823eca0a9d 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", @@ -115,7 +115,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", @@ -237,7 +237,7 @@ "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", @@ -405,7 +405,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.", diff --git a/src/strings/zh-cn.json b/src/strings/zh-cn.json index c496ab54d0..eaf358a6ce 100644 --- a/src/strings/zh-cn.json +++ b/src/strings/zh-cn.json @@ -47,7 +47,7 @@ "BookLibraryHelp": "现已支持音频和文本书籍。浏览{0}有声读物命名指南{1}。", "Books": "书籍", "Browse": "浏览", - "BrowsePluginCatalogMessage": "浏览我们的插件目录来查看现有插件。", + "MessageBrowsePluginCatalog": "浏览我们的插件目录来查看现有插件。", "BurnSubtitlesHelp": "服务器在转换视频时是否应压制字幕。避免压制字幕会提高服务器性能。选择“自动”以压制基于图像的字幕格式(如 VOBSUB, PGS, SUB, IDX 等)和一些复杂的 ASS/SSA 字幕。", "ButtonAdd": "添加", "ButtonAddMediaLibrary": "添加媒体库", @@ -148,7 +148,7 @@ "DatePlayed": "播放日期", "DeathDateValue": "去世:{0}", "Default": "默认", - "DefaultErrorMessage": "处理请求时发生错误。请稍后尝试。", + "ErrorDefault": "处理请求时发生错误。请稍后尝试。", "DefaultMetadataLangaugeDescription": "这些是你的默认设置并且可以在你的每个媒体库中被单独自定义。", "DefaultSubtitlesHelp": "字幕将基于内嵌元数据中的“默认”标志和“强制”标志来载入。当多个选项可用时,将根据语言偏好决定。", "Delete": "删除", @@ -211,7 +211,7 @@ "ErrorAddingTunerDevice": "添加协调器设备时发生错误。请确认它是可访问的然后再试一次。", "ErrorAddingXmlTvFile": "访问 XmlTV 文件时发生错误。请确认该文件是否存在然后再试一次。", "ErrorGettingTvLineups": "下载 TV 节目表 时发生错误。请确认你的信息是否正确,然后再试。", - "ErrorMessageStartHourGreaterThanEnd": "结束时间必须在开始时间后。", + "ErrorStartHourGreaterThanEnd": "结束时间必须在开始时间后。", "ErrorPleaseSelectLineup": "请选择一个阵容, 然后再试一次。如果没有可用的阵容, 请检查您的用户名、密码和邮政编码是否正确。", "ErrorSavingTvProvider": "保存 TV 提供商时发生错误。请确认它是可访问的然后再试一次。", "EveryNDays": "每 {0} 天", @@ -907,8 +907,8 @@ "NextUp": "下一步", "No": "否", "NoNewDevicesFound": "找不到新设备。要添加新调谐器, 请关闭此对话框并手动输入设备信息。", - "NoNextUpItemsMessage": "没有发现。开始看你的节目!", - "NoPluginConfigurationMessage": "此插件没有配置选项。", + "MessageNoNextUpItems": "没有发现。开始看你的节目!", + "MessageNoPluginConfiguration": "此插件没有配置选项。", "NoSubtitleSearchResultsFound": "未找到结果。", "NoSubtitles": "无字幕", "NoSubtitlesHelp": "字幕将默认不被加载,但你仍然可以在播放时手动打开字幕。", @@ -1068,7 +1068,7 @@ "PasswordMatchError": "密码和确认密码必须匹配。", "PasswordResetComplete": "密码已重置。", "PasswordResetConfirmation": "你确定要重置密码?", - "PasswordResetHeader": "密码重置", + "HeaderResetPassword": "密码重置", "PasswordSaved": "密码已保存。", "People": "人物", "PerfectMatch": "最佳匹配", @@ -1087,7 +1087,7 @@ "PleaseEnterNameOrId": "请输入一个名称或一个外部ID。", "PleaseRestartServerName": "请重启 Jellyfin 服务器 - {0}。", "PleaseSelectTwoItems": "请至少选择2个项目。", - "PluginInstalledMessage": "这个插件已经被成功安装。Jellyfin 服务器需要重启以使该插件生效。", + "MessagePluginInstalled": "这个插件已经被成功安装。Jellyfin 服务器需要重启以使该插件生效。", "PreferEmbeddedTitlesOverFileNames": "优先使用内置的标题而不是文件名", "PreferEmbeddedTitlesOverFileNamesHelp": "这将在没有 internet 元数据或本地元数据可用时确定默认显示标题。", "Premiere": "首映", @@ -1107,7 +1107,7 @@ "Record": "录制", "RecordSeries": "录制电视剧", "RecordingCancelled": "录制已取消。", - "RecordingPathChangeMessage": "更改录制文件夹不会将现有录制从旧位置迁移到新的。您需要手动移动它们 (如果需要)。", + "MessageChangeRecordingPath": "更改录制文件夹不会将现有录制从旧位置迁移到新的。您需要手动移动它们 (如果需要)。", "RecordingScheduled": "录制预设。", "Refresh": "刷新", "RefreshMetadata": "刷新元数据", @@ -1248,7 +1248,7 @@ "Tuesday": "星期二", "TvLibraryHelp": "回顾{0}电视节目命名指南{1}。", "UninstallPluginConfirmation": "你确定要卸载 {0}?", - "UninstallPluginHeader": "卸载插件", + "HeaderUninstallPlugin": "卸载插件", "Unmute": "取消静音", "Unplayed": "未播放", "Unrated": "未分级", @@ -1533,8 +1533,8 @@ "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 b52dcbc1ef..97e7b5633a 100644 --- a/src/strings/zh-hk.json +++ b/src/strings/zh-hk.json @@ -186,7 +186,7 @@ "MoreUsersCanBeAddedLater": "稍後在控制台可以添加更多用戶。", "NewCollection": "新收藏庫", "NewCollectionNameExample": "例如:星球大戰收藏庫", - "NoNextUpItemsMessage": "未有發現。開始欣賞您的節目!", + "MessageNoNextUpItems": "未有發現。開始欣賞您的節目!", "OptionAdminUsers": "管理員", "OptionAlbum": "唱片", "OptionAlbumArtist": "唱片歌手", @@ -419,7 +419,7 @@ "DeleteMedia": "刪除媒體", "DeleteImageConfirmation": "你確定要刪除此圖片嗎?", "DeleteImage": "刪除圖片", - "DefaultErrorMessage": "處理此請求時發生錯誤,請稍後再嘗試。", + "ErrorDefault": "處理此請求時發生錯誤,請稍後再嘗試。", "Default": "預設", "DateAdded": "日期已新增", "CopyStreamURLError": "複製URL時發生錯誤。", @@ -499,7 +499,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 22a40d3247..0bb3504023 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": "新增使用者", @@ -160,7 +160,7 @@ "NewCollection": "新合集", "NewCollectionHelp": "收藏櫃讓您能夠建立個人化的影音及其他媒體的分類。", "NewCollectionNameExample": "例子:星球大戰合集", - "NoNextUpItemsMessage": "沒有找到。開始看你的節目!", + "MessageNoNextUpItems": "沒有找到。開始看你的節目!", "NoSubtitleSearchResultsFound": "無結果。", "OptionAlbum": "專輯", "OptionAlbumArtist": "專輯歌手", @@ -290,7 +290,7 @@ "TrackCount": "{0} 個曲目", "Tuesday": "星期二", "UninstallPluginConfirmation": "你確定要解除安裝 {0}?", - "UninstallPluginHeader": "解除安裝插件", + "HeaderUninstallPlugin": "解除安裝插件", "UserProfilesIntro": "Jellyfin 可單獨對使用者進行設定,所有使用者擁有自己的顯示設置,播放狀態和家長控制。", "Wednesday": "星期三", "WelcomeToProject": "歡迎使用 Jellyfin!", @@ -421,7 +421,7 @@ "ColorSpace": "色彩空間", "ColorTransfer": "色彩傳輸", "CommunityRating": "社群評分", - "DefaultErrorMessage": "處理請求時發生錯誤。請稍後再試。", + "ErrorDefault": "處理請求時發生錯誤。請稍後再試。", "DefaultMetadataLangaugeDescription": "這些預設設定可以在你的媒體庫中單獨設定。", "DefaultSubtitlesHelp": "字幕將基於中繼資料中的「預設」標記和「強制」標記來載入,當有多個選項可用時,將根據語言偏好決定。", "DeleteDeviceConfirmation": "你確定你要刪除這個裝置嗎?當有使用者用這個裝置登入時,這個裝置會再次出現。", @@ -479,7 +479,7 @@ "ErrorAddingXmlTvFile": "存取 XMLTV 檔案時發生錯誤,請確認該檔案是否存在後再試一次。", "ErrorDeletingItem": "從 Jellyfin 伺服器刪除項目時發生錯誤,請確認伺服器對該磁碟有寫入權限並再試一次。", "ErrorGettingTvLineups": "下載電視節目表時發生錯誤,請確認你的資訊是否正確並重試。", - "ErrorMessageStartHourGreaterThanEnd": "結束時間必須在開始時間後。", + "ErrorStartHourGreaterThanEnd": "結束時間必須在開始時間後。", "ErrorPleaseSelectLineup": "請選擇節目表,然後再試一次。如果沒有可用的節目表,請檢查您的使用者名稱、密碼和郵遞區號是否正確。", "ErrorSavingTvProvider": "儲存電視供應商時發生錯誤,請確認是否可存取並重試。", "EveryNDays": "每 {0} 天", @@ -824,7 +824,7 @@ "ThemeSongs": "主題曲", "ThemeVideos": "主題曲影片", "Upload": "上傳", - "PasswordResetHeader": "重設密碼", + "HeaderResetPassword": "重設密碼", "ScanLibrary": "掃描媒體庫", "ValueAudioCodec": "音訊編碼:{0}", "ValueCodec": "編碼:{0}", @@ -993,7 +993,7 @@ "MediaInfoStreamTypeVideo": "影片", "Menu": "選單", "MetadataManager": "中繼資料管理器", - "NoPluginConfigurationMessage": "這個模組沒有設定選項可供更改。", + "MessageNoPluginConfiguration": "這個模組沒有設定選項可供更改。", "NoSubtitlesHelp": "字幕不會自動讀取,但可於播放時手動選取。", "Normal": "正常", "OptionAllowContentDownloading": "允許下載及同步媒體", @@ -1303,8 +1303,8 @@ "OptionIgnoreTranscodeByteRangeRequestsHelp": "如果啟用,這些請求會被兌現,但會忽略的位元組範圍標頭。", "OptionLoginAttemptsBeforeLockoutHelp": "若值為 0,則表示將允許普通使用者嘗試三次、管理員嘗試五次的預設值,設定為 -1 來停用此功能。", "OptionRequirePerfectSubtitleMatchHelp": "僅下載經過測試並確認跟此影片檔案完美匹配的字幕。取消勾選這個項目可以增加找到並下載字幕的可能性,但可能會下載時間軸、翻譯不正確的字幕。", - "PluginInstalledMessage": "這個模組安裝成功,但 Jellyfin 伺服器需要重啟以使模組生效。", - "RecordingPathChangeMessage": "更改錄製資料夾不會將現有錄製從舊位置遷移到新的,您需要手動移動它們。", + "MessagePluginInstalled": "這個模組安裝成功,但 Jellyfin 伺服器需要重啟以使模組生效。", + "MessageChangeRecordingPath": "更改錄製資料夾不會將現有錄製從舊位置遷移到新的,您需要手動移動它們。", "LabelEmbedAlbumArtDidl": "於 Didl 中嵌入專輯封面", "LabelEnableAutomaticPortMapHelp": "透過 UPnP 自動將路由器上的公共埠轉發到伺服器上的本地埠。這可能不適用於某些路由器型號或網路設定。在伺服器重新啟動後才會進行更改。", "LabelEmbedAlbumArtDidlHelp": "有些裝置使用這個方式來取得專輯封面,啟用這個選項可能導致其他設備播放失敗。", @@ -1525,8 +1525,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 09181bfc78..17c2b176ef 100644 --- a/yarn.lock +++ b/yarn.lock @@ -1265,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" @@ -1293,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== @@ -1303,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" @@ -1335,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" @@ -2375,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== @@ -2420,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" @@ -2505,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" @@ -2969,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== @@ -2980,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" @@ -3354,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= @@ -3804,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" @@ -4014,7 +4016,7 @@ eslint-rule-composer@^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, 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== @@ -4030,47 +4032,35 @@ eslint-scope@^4.0.3: esrecurse "^4.1.0" estraverse "^4.1.1" -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== - dependencies: - 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.3.0: +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" @@ -4079,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== @@ -4292,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" @@ -4336,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" @@ -4369,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= @@ -4406,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" @@ -5290,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" @@ -5653,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== @@ -5860,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" @@ -6395,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" @@ -6599,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" @@ -7275,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" @@ -7412,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" @@ -7815,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" @@ -7834,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" @@ -7886,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= @@ -8208,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" @@ -9118,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" @@ -9514,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" @@ -9831,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" @@ -9888,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" @@ -9917,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" @@ -10038,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== @@ -10162,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" @@ -10774,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" @@ -11185,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= @@ -11220,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" @@ -11361,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" @@ -11383,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" @@ -12084,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" @@ -12091,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==