diff --git a/README.md b/README.md index 3a2fb3b4fb..210d2f5985 100644 --- a/README.md +++ b/README.md @@ -23,9 +23,6 @@ Feature Requests - -Discuss on our Forum - Chat on Matrix diff --git a/fedora/jellyfin-web.spec b/fedora/jellyfin-web.spec index ac3ce3bdb7..3528c8b4d3 100644 --- a/fedora/jellyfin-web.spec +++ b/fedora/jellyfin-web.spec @@ -6,7 +6,7 @@ Release: 1%{?dist} Summary: The Free Software Media System web client License: GPLv3 URL: https://jellyfin.org -# Jellyfin Server tarball created by `make -f .copr/Makefile srpm`, real URL ends with `v%{version}.tar.gz` +# Jellyfin Server tarball created by `make -f .copr/Makefile srpm`, real URL ends with `v%%{version}.tar.gz` Source0: jellyfin-web-%{version}.tar.gz %if 0%{?centos} @@ -18,6 +18,9 @@ BuildRequires: nodejs-yarn # ditto for Fedora's yarn RPM BuildRequires: git BuildArch: noarch +%if 0%{?fedora} >= 33 +BuildRequires: nodejs +%endif # Disable Automatic Dependency Processing AutoReqProv: no @@ -38,7 +41,8 @@ mv dist %{buildroot}%{_datadir}/jellyfin-web %{__install} -D -m 0644 LICENSE %{buildroot}%{_datadir}/licenses/jellyfin/LICENSE %files -%attr(755,root,root) %{_datadir}/jellyfin-web +%defattr(644,root,root,755) +%{_datadir}/jellyfin-web %{_datadir}/licenses/jellyfin/LICENSE %changelog diff --git a/src/assets/css/dashboard.css b/src/assets/css/dashboard.scss similarity index 100% rename from src/assets/css/dashboard.css rename to src/assets/css/dashboard.scss diff --git a/src/assets/css/librarybrowser.css b/src/assets/css/librarybrowser.scss similarity index 100% rename from src/assets/css/librarybrowser.css rename to src/assets/css/librarybrowser.scss diff --git a/src/assets/css/metadataeditor.css b/src/assets/css/metadataeditor.scss similarity index 100% rename from src/assets/css/metadataeditor.css rename to src/assets/css/metadataeditor.scss diff --git a/src/assets/css/scrollstyles.css b/src/assets/css/scrollstyles.scss similarity index 100% rename from src/assets/css/scrollstyles.css rename to src/assets/css/scrollstyles.scss diff --git a/src/assets/css/videoosd.css b/src/assets/css/videoosd.scss similarity index 100% rename from src/assets/css/videoosd.css rename to src/assets/css/videoosd.scss diff --git a/src/components/accessSchedule/accessSchedule.js b/src/components/accessSchedule/accessSchedule.js index 15053060d5..38f0491850 100644 --- a/src/components/accessSchedule/accessSchedule.js +++ b/src/components/accessSchedule/accessSchedule.js @@ -11,7 +11,7 @@ import datetime from '../../scripts/datetime'; import globalize from '../../scripts/globalize'; import '../../elements/emby-select/emby-select'; import '../../elements/emby-button/paper-icon-button-light'; -import '../formdialog.css'; +import '../formdialog.scss'; import template from './accessSchedule.template.html'; function getDisplayTime(hours) { diff --git a/src/components/actionSheet/actionSheet.js b/src/components/actionSheet/actionSheet.js index 85df1b2c60..3e9b237873 100644 --- a/src/components/actionSheet/actionSheet.js +++ b/src/components/actionSheet/actionSheet.js @@ -3,10 +3,10 @@ import layoutManager from '../layoutManager'; import globalize from '../../scripts/globalize'; import dom from '../../scripts/dom'; import '../../elements/emby-button/emby-button'; -import './actionSheet.css'; +import './actionSheet.scss'; import 'material-design-icons-iconfont'; -import '../../assets/css/scrollstyles.css'; -import '../../components/listview/listview.css'; +import '../../assets/css/scrollstyles.scss'; +import '../../components/listview/listview.scss'; function getOffsets(elems) { const results = []; diff --git a/src/components/actionSheet/actionSheet.css b/src/components/actionSheet/actionSheet.scss similarity index 100% rename from src/components/actionSheet/actionSheet.css rename to src/components/actionSheet/actionSheet.scss diff --git a/src/components/activitylog.js b/src/components/activitylog.js index 78967b3a34..976a37dda0 100644 --- a/src/components/activitylog.js +++ b/src/components/activitylog.js @@ -5,7 +5,7 @@ import * as datefns from 'date-fns'; import dfnshelper from '../scripts/dfnshelper'; import serverNotifications from '../scripts/serverNotifications'; import '../elements/emby-button/emby-button'; -import './listview/listview.css'; +import './listview/listview.scss'; import ServerConnections from './ServerConnections'; import alert from './alert'; diff --git a/src/components/alert.js b/src/components/alert.js index 2938cb7c70..3d967b55a9 100644 --- a/src/components/alert.js +++ b/src/components/alert.js @@ -33,14 +33,7 @@ import globalize from '../scripts/globalize'; }); options.buttons = items; - - return dialog.show(options).then(function (result) { - if (result === 'ok') { - return Promise.resolve(); - } - - return Promise.reject(); - }); + return dialog.show(options); } return Promise.resolve(); diff --git a/src/components/alphaPicker/alphaPicker.js b/src/components/alphaPicker/alphaPicker.js index 9caa1b015c..3033d38f3c 100644 --- a/src/components/alphaPicker/alphaPicker.js +++ b/src/components/alphaPicker/alphaPicker.js @@ -8,7 +8,7 @@ import focusManager from '../focusManager'; import layoutManager from '../layoutManager'; import dom from '../../scripts/dom'; -import './style.css'; +import './style.scss'; import '../../elements/emby-button/paper-icon-button-light'; import 'material-design-icons-iconfont'; diff --git a/src/components/alphaPicker/style.css b/src/components/alphaPicker/style.scss similarity index 100% rename from src/components/alphaPicker/style.css rename to src/components/alphaPicker/style.scss diff --git a/src/components/appFooter/appFooter.js b/src/components/appFooter/appFooter.js index 3b65824490..2dc396371c 100644 --- a/src/components/appFooter/appFooter.js +++ b/src/components/appFooter/appFooter.js @@ -1,4 +1,4 @@ -import './appFooter.css'; +import './appFooter.scss'; function render(options) { const elem = document.createElement('div'); diff --git a/src/components/appFooter/appFooter.css b/src/components/appFooter/appFooter.scss similarity index 100% rename from src/components/appFooter/appFooter.css rename to src/components/appFooter/appFooter.scss diff --git a/src/components/appRouter.js b/src/components/appRouter.js index c14434180d..f7b41d77ff 100644 --- a/src/components/appRouter.js +++ b/src/components/appRouter.js @@ -510,6 +510,7 @@ class AppRouter { return response.json(); }).then(data => { if (data !== null && data.StartupWizardCompleted === false) { + ServerConnections.setLocalApiClient(firstResult.ApiClient); Dashboard.navigate('wizardstart.html'); } else { this.handleConnectionResult(firstResult); diff --git a/src/components/backdrop/backdrop.js b/src/components/backdrop/backdrop.js index a2fe54de19..c16d04015d 100644 --- a/src/components/backdrop/backdrop.js +++ b/src/components/backdrop/backdrop.js @@ -2,7 +2,7 @@ import browser from '../../scripts/browser'; import { playbackManager } from '../playback/playbackmanager'; import dom from '../../scripts/dom'; import * as userSettings from '../../scripts/settings/userSettings'; -import './backdrop.css'; +import './backdrop.scss'; import ServerConnections from '../ServerConnections'; /* eslint-disable indent */ diff --git a/src/components/backdrop/backdrop.css b/src/components/backdrop/backdrop.scss similarity index 100% rename from src/components/backdrop/backdrop.css rename to src/components/backdrop/backdrop.scss diff --git a/src/components/cardbuilder/card.css b/src/components/cardbuilder/card.scss similarity index 100% rename from src/components/cardbuilder/card.css rename to src/components/cardbuilder/card.scss diff --git a/src/components/cardbuilder/cardBuilder.js b/src/components/cardbuilder/cardBuilder.js index b34c3969a4..9b5f18ed60 100644 --- a/src/components/cardbuilder/cardBuilder.js +++ b/src/components/cardbuilder/cardBuilder.js @@ -17,9 +17,9 @@ import browser from '../../scripts/browser'; import { playbackManager } from '../playback/playbackmanager'; import itemShortcuts from '../shortcuts'; import imageHelper from '../../scripts/imagehelper'; -import './card.css'; +import './card.scss'; import '../../elements/emby-button/paper-icon-button-light'; -import '../guide/programs.css'; +import '../guide/programs.scss'; import ServerConnections from '../ServerConnections'; const enableFocusTransform = !browser.slow && !browser.edge; diff --git a/src/components/channelMapper/channelMapper.js b/src/components/channelMapper/channelMapper.js index bedab5421b..3f9ed65a02 100644 --- a/src/components/channelMapper/channelMapper.js +++ b/src/components/channelMapper/channelMapper.js @@ -6,9 +6,9 @@ import actionsheet from '../actionSheet/actionSheet'; import '../../elements/emby-input/emby-input'; import '../../elements/emby-button/paper-icon-button-light'; import '../../elements/emby-button/emby-button'; -import '../listview/listview.css'; +import '../listview/listview.scss'; import 'material-design-icons-iconfont'; -import '../formdialog.css'; +import '../formdialog.scss'; import ServerConnections from '../ServerConnections'; export default class channelMapper { diff --git a/src/components/collectionEditor/collectionEditor.js b/src/components/collectionEditor/collectionEditor.js index 33e6fdecca..a5fc26c446 100644 --- a/src/components/collectionEditor/collectionEditor.js +++ b/src/components/collectionEditor/collectionEditor.js @@ -10,7 +10,7 @@ import '../../elements/emby-checkbox/emby-checkbox'; import '../../elements/emby-input/emby-input'; import '../../elements/emby-select/emby-select'; import 'material-design-icons-iconfont'; -import '../formdialog.css'; +import '../formdialog.scss'; import '../../assets/css/flexstyles.scss'; import ServerConnections from '../ServerConnections'; import toast from '../toast/toast'; diff --git a/src/components/dialog/dialog.js b/src/components/dialog/dialog.js index 6647dda400..e95b8a42e0 100644 --- a/src/components/dialog/dialog.js +++ b/src/components/dialog/dialog.js @@ -7,7 +7,7 @@ import 'material-design-icons-iconfont'; import '../../elements/emby-button/emby-button'; import '../../elements/emby-button/paper-icon-button-light'; import '../../elements/emby-input/emby-input'; -import '../formdialog.css'; +import '../formdialog.scss'; import '../../assets/css/flexstyles.scss'; import template from './dialog.template.html'; diff --git a/src/components/dialogHelper/dialogHelper.js b/src/components/dialogHelper/dialogHelper.js index 69f5677cfb..1a374aed57 100644 --- a/src/components/dialogHelper/dialogHelper.js +++ b/src/components/dialogHelper/dialogHelper.js @@ -4,8 +4,8 @@ import browser from '../../scripts/browser'; import layoutManager from '../layoutManager'; import inputManager from '../../scripts/inputManager'; import dom from '../../scripts/dom'; -import './dialoghelper.css'; -import '../../assets/css/scrollstyles.css'; +import './dialoghelper.scss'; +import '../../assets/css/scrollstyles.scss'; /* eslint-disable indent */ @@ -265,6 +265,7 @@ import '../../assets/css/scrollstyles.css'; dom.addEventListener(dlg, dom.whichAnimationEvent(), onFinish, { once: true }); + return; } diff --git a/src/components/dialogHelper/dialoghelper.css b/src/components/dialogHelper/dialoghelper.scss similarity index 100% rename from src/components/dialogHelper/dialoghelper.css rename to src/components/dialogHelper/dialoghelper.scss diff --git a/src/components/directorybrowser/directorybrowser.js b/src/components/directorybrowser/directorybrowser.js index 2f8a2cadd1..2d53da67ed 100644 --- a/src/components/directorybrowser/directorybrowser.js +++ b/src/components/directorybrowser/directorybrowser.js @@ -2,11 +2,11 @@ import loading from '../loading/loading'; import dialogHelper from '../dialogHelper/dialogHelper'; import dom from '../../scripts/dom'; import globalize from '../../scripts/globalize'; -import '../listview/listview.css'; +import '../listview/listview.scss'; import '../../elements/emby-input/emby-input'; import '../../elements/emby-button/paper-icon-button-light'; -import './directorybrowser.css'; -import '../formdialog.css'; +import './directorybrowser.scss'; +import '../formdialog.scss'; import '../../elements/emby-button/emby-button'; import alert from '../alert'; diff --git a/src/components/directorybrowser/directorybrowser.css b/src/components/directorybrowser/directorybrowser.scss similarity index 100% rename from src/components/directorybrowser/directorybrowser.css rename to src/components/directorybrowser/directorybrowser.scss diff --git a/src/components/favoriteitems.js b/src/components/favoriteitems.js index 46a415b042..372060d97c 100644 --- a/src/components/favoriteitems.js +++ b/src/components/favoriteitems.js @@ -5,7 +5,7 @@ import { appHost } from './apphost'; import imageLoader from './images/imageLoader'; import globalize from '../scripts/globalize'; import layoutManager from './layoutManager'; -import '../assets/css/scrollstyles.css'; +import '../assets/css/scrollstyles.scss'; import '../elements/emby-itemscontainer/emby-itemscontainer'; /* eslint-disable indent */ diff --git a/src/components/filterdialog/filterdialog.js b/src/components/filterdialog/filterdialog.js index 77026e72d7..47b831ca4f 100644 --- a/src/components/filterdialog/filterdialog.js +++ b/src/components/filterdialog/filterdialog.js @@ -4,7 +4,7 @@ import globalize from '../../scripts/globalize'; import { Events } from 'jellyfin-apiclient'; import '../../elements/emby-checkbox/emby-checkbox'; import '../../elements/emby-collapse/emby-collapse'; -import './style.css'; +import './style.scss'; import ServerConnections from '../ServerConnections'; import template from './filterdialog.template.html'; diff --git a/src/components/filterdialog/style.css b/src/components/filterdialog/style.scss similarity index 100% rename from src/components/filterdialog/style.css rename to src/components/filterdialog/style.scss diff --git a/src/components/filtermenu/filtermenu.js b/src/components/filtermenu/filtermenu.js index 37d7860c02..7f1cf3dabf 100644 --- a/src/components/filtermenu/filtermenu.js +++ b/src/components/filtermenu/filtermenu.js @@ -11,7 +11,7 @@ import '../../elements/emby-button/emby-button'; import '../../elements/emby-button/paper-icon-button-light'; import '../../elements/emby-select/emby-select'; import 'material-design-icons-iconfont'; -import '../formdialog.css'; +import '../formdialog.scss'; import '../../assets/css/flexstyles.scss'; import ServerConnections from '../ServerConnections'; import template from './filtermenu.template.html'; diff --git a/src/components/formdialog.css b/src/components/formdialog.scss similarity index 100% rename from src/components/formdialog.css rename to src/components/formdialog.scss diff --git a/src/components/guide/guide-settings.js b/src/components/guide/guide-settings.js index 03e3c48c3a..b8492d1448 100644 --- a/src/components/guide/guide-settings.js +++ b/src/components/guide/guide-settings.js @@ -5,7 +5,7 @@ import layoutManager from '../layoutManager'; import scrollHelper from '../../scripts/scrollHelper'; import '../../elements/emby-checkbox/emby-checkbox'; import '../../elements/emby-radio/emby-radio'; -import '../formdialog.css'; +import '../formdialog.scss'; import 'material-design-icons-iconfont'; import template from './guide-settings.template.html'; diff --git a/src/components/guide/guide.js b/src/components/guide/guide.js index 2bc2e966b0..460295b285 100644 --- a/src/components/guide/guide.js +++ b/src/components/guide/guide.js @@ -13,10 +13,10 @@ import imageLoader from '../images/imageLoader'; import layoutManager from '../layoutManager'; import itemShortcuts from '../shortcuts'; import dom from '../../scripts/dom'; -import './guide.css'; -import './programs.css'; +import './guide.scss'; +import './programs.scss'; import 'material-design-icons-iconfont'; -import '../../assets/css/scrollstyles.css'; +import '../../assets/css/scrollstyles.scss'; import '../../elements/emby-programcell/emby-programcell'; import '../../elements/emby-button/emby-button'; import '../../elements/emby-button/paper-icon-button-light'; diff --git a/src/components/guide/guide.css b/src/components/guide/guide.scss similarity index 100% rename from src/components/guide/guide.css rename to src/components/guide/guide.scss diff --git a/src/components/guide/programs.css b/src/components/guide/programs.scss similarity index 100% rename from src/components/guide/programs.css rename to src/components/guide/programs.scss diff --git a/src/components/homeScreenSettings/homeScreenSettings.js b/src/components/homeScreenSettings/homeScreenSettings.js index b07203442f..c1823f5398 100644 --- a/src/components/homeScreenSettings/homeScreenSettings.js +++ b/src/components/homeScreenSettings/homeScreenSettings.js @@ -6,7 +6,7 @@ import loading from '../loading/loading'; import { Events } from 'jellyfin-apiclient'; import homeSections from '../homesections/homesections'; import dom from '../../scripts/dom'; -import '../listview/listview.css'; +import '../listview/listview.scss'; import '../../elements/emby-select/emby-select'; import '../../elements/emby-checkbox/emby-checkbox'; import ServerConnections from '../ServerConnections'; diff --git a/src/components/homesections/homesections.js b/src/components/homesections/homesections.js index 421f74e125..6fc2eb7d39 100644 --- a/src/components/homesections/homesections.js +++ b/src/components/homesections/homesections.js @@ -9,7 +9,7 @@ import '../../elements/emby-button/paper-icon-button-light'; import '../../elements/emby-itemscontainer/emby-itemscontainer'; import '../../elements/emby-scroller/emby-scroller'; import '../../elements/emby-button/emby-button'; -import './homesections.css'; +import './homesections.scss'; import Dashboard from '../../scripts/clientUtils'; import ServerConnections from '../ServerConnections'; diff --git a/src/components/homesections/homesections.css b/src/components/homesections/homesections.scss similarity index 100% rename from src/components/homesections/homesections.css rename to src/components/homesections/homesections.scss diff --git a/src/components/imageDownloader/imageDownloader.js b/src/components/imageDownloader/imageDownloader.js index e501a808c9..dff1c89152 100644 --- a/src/components/imageDownloader/imageDownloader.js +++ b/src/components/imageDownloader/imageDownloader.js @@ -10,8 +10,8 @@ import globalize from '../../scripts/globalize'; import '../../elements/emby-checkbox/emby-checkbox'; import '../../elements/emby-button/paper-icon-button-light'; import '../../elements/emby-button/emby-button'; -import '../formdialog.css'; -import '../cardbuilder/card.css'; +import '../formdialog.scss'; +import '../cardbuilder/card.scss'; import ServerConnections from '../ServerConnections'; import template from './imageDownloader.template.html'; diff --git a/src/components/imageUploader/imageUploader.js b/src/components/imageUploader/imageUploader.js index 15a2d5cbbc..246bf92f7f 100644 --- a/src/components/imageUploader/imageUploader.js +++ b/src/components/imageUploader/imageUploader.js @@ -13,8 +13,8 @@ import layoutManager from '../layoutManager'; import globalize from '../../scripts/globalize'; import '../../elements/emby-button/emby-button'; import '../../elements/emby-select/emby-select'; -import '../formdialog.css'; -import './style.css'; +import '../formdialog.scss'; +import './style.scss'; import ServerConnections from '../ServerConnections'; import toast from '../toast/toast'; import template from './imageUploader.template.html'; diff --git a/src/components/imageUploader/style.css b/src/components/imageUploader/style.scss similarity index 100% rename from src/components/imageUploader/style.css rename to src/components/imageUploader/style.scss diff --git a/src/components/imageeditor/imageeditor.js b/src/components/imageeditor/imageeditor.js index 60fbddbaad..7f5be72f61 100644 --- a/src/components/imageeditor/imageeditor.js +++ b/src/components/imageeditor/imageeditor.js @@ -8,11 +8,11 @@ import scrollHelper from '../../scripts/scrollHelper'; import imageLoader from '../images/imageLoader'; import browser from '../../scripts/browser'; import { appHost } from '../apphost'; -import '../cardbuilder/card.css'; -import '../formdialog.css'; +import '../cardbuilder/card.scss'; +import '../formdialog.scss'; import '../../elements/emby-button/emby-button'; import '../../elements/emby-button/paper-icon-button-light'; -import './imageeditor.css'; +import './imageeditor.scss'; import ServerConnections from '../ServerConnections'; import alert from '../alert'; import confirm from '../confirm/confirm'; diff --git a/src/components/imageeditor/imageeditor.css b/src/components/imageeditor/imageeditor.scss similarity index 100% rename from src/components/imageeditor/imageeditor.css rename to src/components/imageeditor/imageeditor.scss diff --git a/src/components/images/imageLoader.js b/src/components/images/imageLoader.js index 53759b77cc..7e32b3a365 100644 --- a/src/components/images/imageLoader.js +++ b/src/components/images/imageLoader.js @@ -1,7 +1,7 @@ import * as lazyLoader from '../lazyLoader/lazyLoaderIntersectionObserver'; import * as userSettings from '../../scripts/settings/userSettings'; import { decode, isBlurhashValid } from 'blurhash'; -import './style.css'; +import './style.scss'; /* eslint-disable indent */ export function lazyImage(elem, source = elem.getAttribute('data-src')) { diff --git a/src/components/images/style.css b/src/components/images/style.scss similarity index 100% rename from src/components/images/style.css rename to src/components/images/style.scss diff --git a/src/components/indicators/indicators.js b/src/components/indicators/indicators.js index 5f8a8691d1..aab2f64073 100644 --- a/src/components/indicators/indicators.js +++ b/src/components/indicators/indicators.js @@ -1,7 +1,7 @@ import datetime from '../../scripts/datetime'; import itemHelper from '../itemHelper'; import '../../elements/emby-progressbar/emby-progressbar'; -import './indicators.css'; +import './indicators.scss'; import 'material-design-icons-iconfont'; export function enableProgressIndicator(item) { diff --git a/src/components/indicators/indicators.css b/src/components/indicators/indicators.scss similarity index 100% rename from src/components/indicators/indicators.css rename to src/components/indicators/indicators.scss diff --git a/src/components/itemMediaInfo/itemMediaInfo.js b/src/components/itemMediaInfo/itemMediaInfo.js index 37e28ec4d5..2eda9d046d 100644 --- a/src/components/itemMediaInfo/itemMediaInfo.js +++ b/src/components/itemMediaInfo/itemMediaInfo.js @@ -10,10 +10,10 @@ import layoutManager from '../layoutManager'; import globalize from '../../scripts/globalize'; import loading from '../loading/loading'; import '../../elements/emby-select/emby-select'; -import '../listview/listview.css'; +import '../listview/listview.scss'; import '../../elements/emby-button/emby-button'; import '../../elements/emby-button/paper-icon-button-light'; -import '../formdialog.css'; +import '../formdialog.scss'; import 'material-design-icons-iconfont'; import '../../assets/css/flexstyles.scss'; import ServerConnections from '../ServerConnections'; diff --git a/src/components/itemidentifier/itemidentifier.js b/src/components/itemidentifier/itemidentifier.js index 227813b117..dee99f6326 100644 --- a/src/components/itemidentifier/itemidentifier.js +++ b/src/components/itemidentifier/itemidentifier.js @@ -15,9 +15,9 @@ import browser from '../../scripts/browser'; import '../../elements/emby-input/emby-input'; import '../../elements/emby-checkbox/emby-checkbox'; import '../../elements/emby-button/paper-icon-button-light'; -import '../formdialog.css'; +import '../formdialog.scss'; import 'material-design-icons-iconfont'; -import '../cardbuilder/card.css'; +import '../cardbuilder/card.scss'; import ServerConnections from '../ServerConnections'; import toast from '../toast/toast'; import template from './itemidentifier.template.html'; diff --git a/src/components/listview/listview.js b/src/components/listview/listview.js index 96ffcd0ad3..5ca17d137a 100644 --- a/src/components/listview/listview.js +++ b/src/components/listview/listview.js @@ -12,7 +12,7 @@ import layoutManager from '../layoutManager'; import globalize from '../../scripts/globalize'; import datetime from '../../scripts/datetime'; import cardBuilder from '../cardbuilder/cardBuilder'; -import './listview.css'; +import './listview.scss'; import '../../elements/emby-ratingbutton/emby-ratingbutton'; import '../../elements/emby-playstatebutton/emby-playstatebutton'; import ServerConnections from '../ServerConnections'; diff --git a/src/components/listview/listview.css b/src/components/listview/listview.scss similarity index 100% rename from src/components/listview/listview.css rename to src/components/listview/listview.scss diff --git a/src/components/loading/loading.js b/src/components/loading/loading.js index 466173952c..ed7c2db02b 100644 --- a/src/components/loading/loading.js +++ b/src/components/loading/loading.js @@ -1,4 +1,4 @@ -import './loading.css'; +import './loading.scss'; let loadingElem; let layer1; diff --git a/src/components/loading/loading.css b/src/components/loading/loading.scss similarity index 100% rename from src/components/loading/loading.css rename to src/components/loading/loading.scss diff --git a/src/components/mediaLibraryCreator/mediaLibraryCreator.js b/src/components/mediaLibraryCreator/mediaLibraryCreator.js index c50a5ab25a..ffccd8e933 100644 --- a/src/components/mediaLibraryCreator/mediaLibraryCreator.js +++ b/src/components/mediaLibraryCreator/mediaLibraryCreator.js @@ -16,8 +16,8 @@ import '../../elements/emby-button/paper-icon-button-light'; import '../../elements/emby-input/emby-input'; import '../../elements/emby-select/emby-select'; import '../../elements/emby-toggle/emby-toggle'; -import '../listview/listview.css'; -import '../formdialog.css'; +import '../listview/listview.scss'; +import '../formdialog.scss'; import '../../assets/css/flexstyles.scss'; import toast from '../toast/toast'; import alert from '../alert'; diff --git a/src/components/mediaLibraryEditor/mediaLibraryEditor.js b/src/components/mediaLibraryEditor/mediaLibraryEditor.js index dede7afa77..cfd1955c7b 100644 --- a/src/components/mediaLibraryEditor/mediaLibraryEditor.js +++ b/src/components/mediaLibraryEditor/mediaLibraryEditor.js @@ -12,9 +12,9 @@ import dom from '../../scripts/dom'; import libraryoptionseditor from '../libraryoptionseditor/libraryoptionseditor'; import globalize from '../../scripts/globalize'; import '../../elements/emby-button/emby-button'; -import '../listview/listview.css'; +import '../listview/listview.scss'; import '../../elements/emby-button/paper-icon-button-light'; -import '../formdialog.css'; +import '../formdialog.scss'; import '../../elements/emby-toggle/emby-toggle'; import '../../assets/css/flexstyles.scss'; import toast from '../toast/toast'; diff --git a/src/components/mediainfo/mediainfo.js b/src/components/mediainfo/mediainfo.js index 73193f3758..0b09c3dff3 100644 --- a/src/components/mediainfo/mediainfo.js +++ b/src/components/mediainfo/mediainfo.js @@ -4,8 +4,8 @@ import { appRouter } from '../appRouter'; import itemHelper from '../itemHelper'; import indicators from '../indicators/indicators'; import 'material-design-icons-iconfont'; -import './mediainfo.css'; -import '../guide/programs.css'; +import './mediainfo.scss'; +import '../guide/programs.scss'; import '../../elements/emby-button/emby-button'; /* eslint-disable indent */ diff --git a/src/components/mediainfo/mediainfo.css b/src/components/mediainfo/mediainfo.scss similarity index 100% rename from src/components/mediainfo/mediainfo.css rename to src/components/mediainfo/mediainfo.scss diff --git a/src/components/metadataEditor/metadataEditor.js b/src/components/metadataEditor/metadataEditor.js index ff1654a3c5..b020f88e13 100644 --- a/src/components/metadataEditor/metadataEditor.js +++ b/src/components/metadataEditor/metadataEditor.js @@ -9,11 +9,11 @@ import shell from '../../scripts/shell'; import '../../elements/emby-checkbox/emby-checkbox'; import '../../elements/emby-input/emby-input'; import '../../elements/emby-select/emby-select'; -import '../listview/listview.css'; +import '../listview/listview.scss'; import '../../elements/emby-textarea/emby-textarea'; import '../../elements/emby-button/emby-button'; import '../../elements/emby-button/paper-icon-button-light'; -import '../formdialog.css'; +import '../formdialog.scss'; import '../../assets/css/clearbutton.scss'; import '../../assets/css/flexstyles.scss'; import ServerConnections from '../ServerConnections'; diff --git a/src/components/metadataEditor/personEditor.js b/src/components/metadataEditor/personEditor.js index 5c3b406bd6..0911632748 100644 --- a/src/components/metadataEditor/personEditor.js +++ b/src/components/metadataEditor/personEditor.js @@ -5,7 +5,7 @@ import globalize from '../../scripts/globalize'; import '../../elements/emby-button/paper-icon-button-light'; import '../../elements/emby-input/emby-input'; import '../../elements/emby-select/emby-select'; -import '../formdialog.css'; +import '../formdialog.scss'; import template from './personEditor.template.html'; /* eslint-disable indent */ diff --git a/src/components/multiSelect/multiSelect.js b/src/components/multiSelect/multiSelect.js index d6ea5b6bd4..f2f359ae98 100644 --- a/src/components/multiSelect/multiSelect.js +++ b/src/components/multiSelect/multiSelect.js @@ -3,7 +3,7 @@ import { appHost } from '../apphost'; import loading from '../loading/loading'; import globalize from '../../scripts/globalize'; import dom from '../../scripts/dom'; -import './multiSelect.css'; +import './multiSelect.scss'; import ServerConnections from '../ServerConnections'; import alert from '../alert'; import playlistEditor from '../playlisteditor/playlisteditor'; @@ -319,6 +319,7 @@ import confirm from '../confirm/confirm'; alert({ text: globalize.translate('PleaseSelectTwoItems') }); + return; } diff --git a/src/components/multiSelect/multiSelect.css b/src/components/multiSelect/multiSelect.scss similarity index 100% rename from src/components/multiSelect/multiSelect.css rename to src/components/multiSelect/multiSelect.scss diff --git a/src/components/nowPlayingBar/nowPlayingBar.js b/src/components/nowPlayingBar/nowPlayingBar.js index cbeb9813dd..da32640c76 100644 --- a/src/components/nowPlayingBar/nowPlayingBar.js +++ b/src/components/nowPlayingBar/nowPlayingBar.js @@ -13,7 +13,7 @@ import '../../elements/emby-ratingbutton/emby-ratingbutton'; import ServerConnections from '../ServerConnections'; import appFooter from '../appFooter/appFooter'; import itemShortcuts from '../shortcuts'; -import './nowPlayingBar.css'; +import './nowPlayingBar.scss'; import '../../elements/emby-slider/emby-slider'; import { appRouter } from '../appRouter'; diff --git a/src/components/nowPlayingBar/nowPlayingBar.css b/src/components/nowPlayingBar/nowPlayingBar.scss similarity index 100% rename from src/components/nowPlayingBar/nowPlayingBar.css rename to src/components/nowPlayingBar/nowPlayingBar.scss diff --git a/src/components/playback/brightnessosd.js b/src/components/playback/brightnessosd.js index e6c4b82f2e..fe6ba2e0e2 100644 --- a/src/components/playback/brightnessosd.js +++ b/src/components/playback/brightnessosd.js @@ -2,7 +2,7 @@ import { Events } from 'jellyfin-apiclient'; import { playbackManager } from './playbackmanager'; import dom from '../../scripts/dom'; import browser from '../../scripts/browser'; -import './iconosd.css'; +import './iconosd.scss'; import 'material-design-icons-iconfont'; let currentPlayer; diff --git a/src/components/playback/iconosd.css b/src/components/playback/iconosd.scss similarity index 100% rename from src/components/playback/iconosd.css rename to src/components/playback/iconosd.scss diff --git a/src/components/playback/volumeosd.js b/src/components/playback/volumeosd.js index 3269b289d0..796030f89f 100644 --- a/src/components/playback/volumeosd.js +++ b/src/components/playback/volumeosd.js @@ -3,7 +3,7 @@ import { Events } from 'jellyfin-apiclient'; import { playbackManager } from './playbackmanager'; import dom from '../../scripts/dom'; import browser from '../../scripts/browser'; -import './iconosd.css'; +import './iconosd.scss'; import 'material-design-icons-iconfont'; let currentPlayer; diff --git a/src/components/playerstats/playerstats.js b/src/components/playerstats/playerstats.js index 805f0115ce..bac81609ef 100644 --- a/src/components/playerstats/playerstats.js +++ b/src/components/playerstats/playerstats.js @@ -5,7 +5,7 @@ import layoutManager from '../layoutManager'; import { playbackManager } from '../playback/playbackmanager'; import playMethodHelper from '../playback/playmethodhelper'; import SyncPlay from '../../components/syncPlay/core'; -import './playerstats.css'; +import './playerstats.scss'; import ServerConnections from '../ServerConnections'; /* eslint-disable indent */ diff --git a/src/components/playerstats/playerstats.css b/src/components/playerstats/playerstats.scss similarity index 100% rename from src/components/playerstats/playerstats.css rename to src/components/playerstats/playerstats.scss diff --git a/src/components/playlisteditor/playlisteditor.js b/src/components/playlisteditor/playlisteditor.js index 675e8e09c9..02891b1ce1 100644 --- a/src/components/playlisteditor/playlisteditor.js +++ b/src/components/playlisteditor/playlisteditor.js @@ -12,7 +12,7 @@ import '../../elements/emby-input/emby-input'; import '../../elements/emby-button/paper-icon-button-light'; import '../../elements/emby-select/emby-select'; import 'material-design-icons-iconfont'; -import '../formdialog.css'; +import '../formdialog.scss'; import ServerConnections from '../ServerConnections'; /* eslint-disable indent */ diff --git a/src/components/prompt/prompt.js b/src/components/prompt/prompt.js index 1a919ca025..c59a6e724f 100644 --- a/src/components/prompt/prompt.js +++ b/src/components/prompt/prompt.js @@ -8,10 +8,9 @@ import 'material-design-icons-iconfont'; import '../../elements/emby-button/emby-button'; import '../../elements/emby-button/paper-icon-button-light'; import '../../elements/emby-input/emby-input'; -import '../formdialog.css'; +import '../formdialog.scss'; import template from './prompt.template.html'; -/* eslint-disable indent */ export default (() => { function replaceAll(str, find, replace) { return str.split(find).join(replace); @@ -127,4 +126,3 @@ export default (() => { }; } })(); -/* eslint-enable indent */ diff --git a/src/components/recordingcreator/recordingbutton.js b/src/components/recordingcreator/recordingbutton.js index 393e7bea96..ebb27595e1 100644 --- a/src/components/recordingcreator/recordingbutton.js +++ b/src/components/recordingcreator/recordingbutton.js @@ -2,7 +2,7 @@ import dom from '../../scripts/dom'; import recordingHelper from './recordinghelper'; import '../../elements/emby-button/paper-icon-button-light'; import '../../elements/emby-button/emby-button'; -import './recordingfields.css'; +import './recordingfields.scss'; import ServerConnections from '../ServerConnections'; function onRecordingButtonClick(e) { diff --git a/src/components/recordingcreator/recordingcreator.js b/src/components/recordingcreator/recordingcreator.js index 0b8e3d8307..36270f94ed 100644 --- a/src/components/recordingcreator/recordingcreator.js +++ b/src/components/recordingcreator/recordingcreator.js @@ -13,8 +13,8 @@ import '../../elements/emby-button/paper-icon-button-light'; import '../../elements/emby-checkbox/emby-checkbox'; import '../../elements/emby-collapse/emby-collapse'; import '../../elements/emby-input/emby-input'; -import '../formdialog.css'; -import './recordingcreator.css'; +import '../formdialog.scss'; +import './recordingcreator.scss'; import 'material-design-icons-iconfont'; import ServerConnections from '../ServerConnections'; import { playbackManager } from '../playback/playbackmanager'; diff --git a/src/components/recordingcreator/recordingcreator.css b/src/components/recordingcreator/recordingcreator.scss similarity index 100% rename from src/components/recordingcreator/recordingcreator.css rename to src/components/recordingcreator/recordingcreator.scss diff --git a/src/components/recordingcreator/recordingeditor.js b/src/components/recordingcreator/recordingeditor.js index 8ebb3c966e..c627e9e4ef 100644 --- a/src/components/recordingcreator/recordingeditor.js +++ b/src/components/recordingcreator/recordingeditor.js @@ -4,13 +4,13 @@ import globalize from '../../scripts/globalize'; import layoutManager from '../layoutManager'; import loading from '../loading/loading'; import scrollHelper from '../../scripts/scrollHelper'; -import '../../assets/css/scrollstyles.css'; +import '../../assets/css/scrollstyles.scss'; import '../../elements/emby-button/emby-button'; import '../../elements/emby-collapse/emby-collapse'; import '../../elements/emby-input/emby-input'; import '../../elements/emby-button/paper-icon-button-light'; -import '../formdialog.css'; -import './recordingcreator.css'; +import '../formdialog.scss'; +import './recordingcreator.scss'; import 'material-design-icons-iconfont'; import '../../assets/css/flexstyles.scss'; import ServerConnections from '../ServerConnections'; diff --git a/src/components/recordingcreator/recordingfields.js b/src/components/recordingcreator/recordingfields.js index 134ae6221d..ae2742d77a 100644 --- a/src/components/recordingcreator/recordingfields.js +++ b/src/components/recordingcreator/recordingfields.js @@ -6,7 +6,7 @@ import dom from '../../scripts/dom'; import recordingHelper from './recordinghelper'; import '../../elements/emby-button/emby-button'; import '../../elements/emby-button/paper-icon-button-light'; -import './recordingfields.css'; +import './recordingfields.scss'; import '../../assets/css/flexstyles.scss'; import ServerConnections from '../ServerConnections'; import toast from '../toast/toast'; diff --git a/src/components/recordingcreator/recordingfields.css b/src/components/recordingcreator/recordingfields.scss similarity index 100% rename from src/components/recordingcreator/recordingfields.css rename to src/components/recordingcreator/recordingfields.scss diff --git a/src/components/recordingcreator/seriesrecordingeditor.js b/src/components/recordingcreator/seriesrecordingeditor.js index 0014a9343e..b4bbba863b 100644 --- a/src/components/recordingcreator/seriesrecordingeditor.js +++ b/src/components/recordingcreator/seriesrecordingeditor.js @@ -4,14 +4,14 @@ import layoutManager from '../layoutManager'; import loading from '../loading/loading'; import scrollHelper from '../../scripts/scrollHelper'; import datetime from '../../scripts/datetime'; -import '../../assets/css/scrollstyles.css'; +import '../../assets/css/scrollstyles.scss'; import '../../elements/emby-button/emby-button'; import '../../elements/emby-checkbox/emby-checkbox'; import '../../elements/emby-input/emby-input'; import '../../elements/emby-select/emby-select'; import '../../elements/emby-button/paper-icon-button-light'; -import '../formdialog.css'; -import './recordingcreator.css'; +import '../formdialog.scss'; +import './recordingcreator.scss'; import 'material-design-icons-iconfont'; import '../../assets/css/flexstyles.scss'; import ServerConnections from '../ServerConnections'; diff --git a/src/components/refreshdialog/refreshdialog.js b/src/components/refreshdialog/refreshdialog.js index 3b31b023f9..fe5756af3d 100644 --- a/src/components/refreshdialog/refreshdialog.js +++ b/src/components/refreshdialog/refreshdialog.js @@ -9,7 +9,7 @@ import '../../elements/emby-button/paper-icon-button-light'; import '../../elements/emby-checkbox/emby-checkbox'; import '../../elements/emby-select/emby-select'; import 'material-design-icons-iconfont'; -import '../formdialog.css'; +import '../formdialog.scss'; import ServerConnections from '../ServerConnections'; import toast from '../toast/toast'; diff --git a/src/components/remotecontrol/remotecontrol.js b/src/components/remotecontrol/remotecontrol.js index 49fb8370c5..d502d017e7 100644 --- a/src/components/remotecontrol/remotecontrol.js +++ b/src/components/remotecontrol/remotecontrol.js @@ -11,9 +11,9 @@ import layoutManager from '../layoutManager'; import * as userSettings from '../../scripts/settings/userSettings'; import cardBuilder from '../cardbuilder/cardBuilder'; import itemContextMenu from '../itemContextMenu'; -import '../cardbuilder/card.css'; +import '../cardbuilder/card.scss'; import '../../elements/emby-itemscontainer/emby-itemscontainer'; -import './remotecontrol.css'; +import './remotecontrol.scss'; import '../../elements/emby-ratingbutton/emby-ratingbutton'; import ServerConnections from '../ServerConnections'; import toast from '../toast/toast'; diff --git a/src/components/remotecontrol/remotecontrol.css b/src/components/remotecontrol/remotecontrol.scss similarity index 100% rename from src/components/remotecontrol/remotecontrol.css rename to src/components/remotecontrol/remotecontrol.scss diff --git a/src/components/search/searchfields.js b/src/components/search/searchfields.js index 67364c33b2..601966db40 100644 --- a/src/components/search/searchfields.js +++ b/src/components/search/searchfields.js @@ -6,7 +6,7 @@ import AlphaPicker from '../alphaPicker/alphaPicker'; import '../../elements/emby-input/emby-input'; import '../../assets/css/flexstyles.scss'; import 'material-design-icons-iconfont'; -import './searchfields.css'; +import './searchfields.scss'; import template from './searchfields.template.html'; /* eslint-disable indent */ diff --git a/src/components/search/searchfields.css b/src/components/search/searchfields.scss similarity index 100% rename from src/components/search/searchfields.css rename to src/components/search/searchfields.scss diff --git a/src/components/slideshow/slideshow.js b/src/components/slideshow/slideshow.js index 0a50d26ea9..6ae0c26f0a 100644 --- a/src/components/slideshow/slideshow.js +++ b/src/components/slideshow/slideshow.js @@ -9,7 +9,7 @@ import focusManager from '../focusManager'; import browser from '../../scripts/browser'; import { appHost } from '../apphost'; import dom from '../../scripts/dom'; -import './style.css'; +import './style.scss'; import 'material-design-icons-iconfont'; import '../../elements/emby-button/paper-icon-button-light'; import ServerConnections from '../ServerConnections'; diff --git a/src/components/slideshow/style.css b/src/components/slideshow/style.scss similarity index 100% rename from src/components/slideshow/style.css rename to src/components/slideshow/style.scss diff --git a/src/components/sortmenu/sortmenu.js b/src/components/sortmenu/sortmenu.js index c8eaf80b7f..60392ad381 100644 --- a/src/components/sortmenu/sortmenu.js +++ b/src/components/sortmenu/sortmenu.js @@ -5,7 +5,7 @@ import * as userSettings from '../../scripts/settings/userSettings'; import '../../elements/emby-select/emby-select'; import '../../elements/emby-button/paper-icon-button-light'; import 'material-design-icons-iconfont'; -import '../formdialog.css'; +import '../formdialog.scss'; import '../../elements/emby-button/emby-button'; import '../../assets/css/flexstyles.scss'; import template from './sortmenu.template.html'; diff --git a/src/components/subtitleeditor/subtitleeditor.js b/src/components/subtitleeditor/subtitleeditor.js index 5e026538e3..a58175a6c1 100644 --- a/src/components/subtitleeditor/subtitleeditor.js +++ b/src/components/subtitleeditor/subtitleeditor.js @@ -7,11 +7,11 @@ import loading from '../loading/loading'; import focusManager from '../focusManager'; import dom from '../../scripts/dom'; import '../../elements/emby-select/emby-select'; -import '../listview/listview.css'; +import '../listview/listview.scss'; import '../../elements/emby-button/paper-icon-button-light'; -import '../formdialog.css'; +import '../formdialog.scss'; import 'material-design-icons-iconfont'; -import './subtitleeditor.css'; +import './subtitleeditor.scss'; import '../../elements/emby-button/emby-button'; import '../../assets/css/flexstyles.scss'; import ServerConnections from '../ServerConnections'; diff --git a/src/components/subtitleeditor/subtitleeditor.css b/src/components/subtitleeditor/subtitleeditor.scss similarity index 100% rename from src/components/subtitleeditor/subtitleeditor.css rename to src/components/subtitleeditor/subtitleeditor.scss diff --git a/src/components/subtitlesettings/subtitlesettings.js b/src/components/subtitlesettings/subtitlesettings.js index d348ae6359..0342dddf4c 100644 --- a/src/components/subtitlesettings/subtitlesettings.js +++ b/src/components/subtitlesettings/subtitlesettings.js @@ -8,13 +8,13 @@ import subtitleAppearanceHelper from './subtitleappearancehelper'; import settingsHelper from '../settingshelper'; import dom from '../../scripts/dom'; import { Events } from 'jellyfin-apiclient'; -import '../listview/listview.css'; +import '../listview/listview.scss'; import '../../elements/emby-select/emby-select'; import '../../elements/emby-slider/emby-slider'; import '../../elements/emby-input/emby-input'; import '../../elements/emby-checkbox/emby-checkbox'; import '../../assets/css/flexstyles.scss'; -import './subtitlesettings.css'; +import './subtitlesettings.scss'; import ServerConnections from '../ServerConnections'; import toast from '../toast/toast'; import template from './subtitlesettings.template.html'; diff --git a/src/components/subtitlesettings/subtitlesettings.css b/src/components/subtitlesettings/subtitlesettings.scss similarity index 100% rename from src/components/subtitlesettings/subtitlesettings.css rename to src/components/subtitlesettings/subtitlesettings.scss diff --git a/src/components/subtitlesync/subtitlesync.js b/src/components/subtitlesync/subtitlesync.js index f04ce58e7a..b5842cf884 100644 --- a/src/components/subtitlesync/subtitlesync.js +++ b/src/components/subtitlesync/subtitlesync.js @@ -2,7 +2,7 @@ import { playbackManager } from '../playback/playbackmanager'; import layoutManager from '../layoutManager'; import template from './subtitlesync.template.html'; -import './subtitlesync.css'; +import './subtitlesync.scss'; let player; let subtitleSyncSlider; diff --git a/src/components/subtitlesync/subtitlesync.css b/src/components/subtitlesync/subtitlesync.scss similarity index 100% rename from src/components/subtitlesync/subtitlesync.css rename to src/components/subtitlesync/subtitlesync.scss diff --git a/src/components/subtitleuploader/style.css b/src/components/subtitleuploader/style.scss similarity index 100% rename from src/components/subtitleuploader/style.css rename to src/components/subtitleuploader/style.scss diff --git a/src/components/subtitleuploader/subtitleuploader.js b/src/components/subtitleuploader/subtitleuploader.js index 1c9b8cfb24..8d94a8ff39 100644 --- a/src/components/subtitleuploader/subtitleuploader.js +++ b/src/components/subtitleuploader/subtitleuploader.js @@ -9,8 +9,8 @@ import template from './subtitleuploader.template.html'; import toast from '../toast/toast'; import '../../elements/emby-button/emby-button'; import '../../elements/emby-select/emby-select'; -import '../formdialog.css'; -import './style.css'; +import '../formdialog.scss'; +import './style.scss'; let currentItemId; let currentServerId; diff --git a/src/components/toast/toast.js b/src/components/toast/toast.js index 75bb5ed2ed..5a9cf0cd87 100644 --- a/src/components/toast/toast.js +++ b/src/components/toast/toast.js @@ -1,4 +1,4 @@ -import './toast.css'; +import './toast.scss'; function remove(elem) { setTimeout(function () { diff --git a/src/components/toast/toast.css b/src/components/toast/toast.scss similarity index 100% rename from src/components/toast/toast.css rename to src/components/toast/toast.scss diff --git a/src/components/tunerPicker.js b/src/components/tunerPicker.js index b85df66ac8..d652f2ad3b 100644 --- a/src/components/tunerPicker.js +++ b/src/components/tunerPicker.js @@ -7,10 +7,10 @@ import browser from '../scripts/browser'; import focusManager from './focusManager'; import scrollHelper from '../scripts/scrollHelper'; import 'material-design-icons-iconfont'; -import './formdialog.css'; +import './formdialog.scss'; import '../elements/emby-button/emby-button'; import '../elements/emby-itemscontainer/emby-itemscontainer'; -import './cardbuilder/card.css'; +import './cardbuilder/card.scss'; import ServerConnections from './ServerConnections'; const enableFocusTransform = !browser.slow && !browser.edge; diff --git a/src/components/tvproviders/schedulesdirect.js b/src/components/tvproviders/schedulesdirect.js index 8b386566b2..f005492493 100644 --- a/src/components/tvproviders/schedulesdirect.js +++ b/src/components/tvproviders/schedulesdirect.js @@ -3,7 +3,7 @@ import loading from '../loading/loading'; import globalize from '../../scripts/globalize'; import '../../elements/emby-checkbox/emby-checkbox'; import '../../elements/emby-input/emby-input'; -import '../listview/listview.css'; +import '../listview/listview.scss'; import '../../elements/emby-button/paper-icon-button-light'; import '../../elements/emby-select/emby-select'; import '../../elements/emby-button/emby-button'; @@ -112,7 +112,7 @@ export default function (page, providerId, options) { providerId = result.Id; reload(); }, function () { - Dashboard.alert({ // ApiClient.ajax() error handler + Dashboard.alert({ message: globalize.translate('ErrorSavingTvProvider') }); }); diff --git a/src/components/tvproviders/xmltv.js b/src/components/tvproviders/xmltv.js index 0220aba611..1b7c7c7063 100644 --- a/src/components/tvproviders/xmltv.js +++ b/src/components/tvproviders/xmltv.js @@ -3,7 +3,7 @@ import loading from '../loading/loading'; import globalize from '../../scripts/globalize'; import '../../elements/emby-checkbox/emby-checkbox'; import '../../elements/emby-input/emby-input'; -import '../listview/listview.css'; +import '../listview/listview.scss'; import '../../elements/emby-button/paper-icon-button-light'; import Dashboard from '../../scripts/clientUtils'; import { Events } from 'jellyfin-apiclient'; diff --git a/src/components/upnextdialog/upnextdialog.js b/src/components/upnextdialog/upnextdialog.js index 702fe4dcf6..cb40cfcbc8 100644 --- a/src/components/upnextdialog/upnextdialog.js +++ b/src/components/upnextdialog/upnextdialog.js @@ -6,7 +6,7 @@ import layoutManager from '../layoutManager'; import focusManager from '../focusManager'; import globalize from '../../scripts/globalize'; import itemHelper from '../itemHelper'; -import './upnextdialog.css'; +import './upnextdialog.scss'; import '../../elements/emby-button/emby-button'; import '../../assets/css/flexstyles.scss'; diff --git a/src/components/upnextdialog/upnextdialog.css b/src/components/upnextdialog/upnextdialog.scss similarity index 100% rename from src/components/upnextdialog/upnextdialog.css rename to src/components/upnextdialog/upnextdialog.scss diff --git a/src/components/userdatabuttons/userdatabuttons.js b/src/components/userdatabuttons/userdatabuttons.js index 9fe5546fcb..e7b97da997 100644 --- a/src/components/userdatabuttons/userdatabuttons.js +++ b/src/components/userdatabuttons/userdatabuttons.js @@ -4,7 +4,7 @@ import itemHelper from '../itemHelper'; import '../../elements/emby-button/paper-icon-button-light'; import 'material-design-icons-iconfont'; import '../../elements/emby-button/emby-button'; -import './userdatabuttons.css'; +import './userdatabuttons.scss'; import ServerConnections from '../ServerConnections'; const userDataMethods = { diff --git a/src/components/userdatabuttons/userdatabuttons.css b/src/components/userdatabuttons/userdatabuttons.scss similarity index 100% rename from src/components/userdatabuttons/userdatabuttons.css rename to src/components/userdatabuttons/userdatabuttons.scss diff --git a/src/components/viewContainer.js b/src/components/viewContainer.js index cfff424a13..f17d900d7c 100644 --- a/src/components/viewContainer.js +++ b/src/components/viewContainer.js @@ -1,5 +1,5 @@ import { importModule } from '@uupaa/dynamic-import-polyfill'; -import './viewManager/viewContainer.css'; +import './viewManager/viewContainer.scss'; import Dashboard from '../scripts/clientUtils'; /* eslint-disable indent */ diff --git a/src/components/viewManager/viewContainer.css b/src/components/viewManager/viewContainer.scss similarity index 100% rename from src/components/viewManager/viewContainer.css rename to src/components/viewManager/viewContainer.scss diff --git a/src/components/viewSettings/viewSettings.js b/src/components/viewSettings/viewSettings.js index 46bc3864ee..ca88481cea 100644 --- a/src/components/viewSettings/viewSettings.js +++ b/src/components/viewSettings/viewSettings.js @@ -8,7 +8,7 @@ import '../../elements/emby-button/emby-button'; import '../../elements/emby-button/paper-icon-button-light'; import '../../elements/emby-select/emby-select'; import 'material-design-icons-iconfont'; -import '../formdialog.css'; +import '../formdialog.scss'; import '../../assets/css/flexstyles.scss'; import template from './viewSettings.template.html'; diff --git a/src/controllers/dashboard/dashboard.js b/src/controllers/dashboard/dashboard.js index 92eb9e238f..fdeaa1f18b 100644 --- a/src/controllers/dashboard/dashboard.js +++ b/src/controllers/dashboard/dashboard.js @@ -13,7 +13,7 @@ import imageLoader from '../../components/images/imageLoader'; import ActivityLog from '../../components/activitylog'; import imageHelper from '../../scripts/imagehelper'; import indicators from '../../components/indicators/indicators'; -import '../../components/listview/listview.css'; +import '../../components/listview/listview.scss'; import '../../elements/emby-button/emby-button'; import '../../assets/css/flexstyles.scss'; import '../../elements/emby-itemscontainer/emby-itemscontainer'; @@ -106,9 +106,9 @@ import confirm from '../../components/confirm/confirm'; case 'sendmessage': showSendMessageForm(btn, session); break; - case 'transcodinginfo': showPlaybackInfo(btn, session); + break; } }); }); diff --git a/src/controllers/dashboard/devices/devices.js b/src/controllers/dashboard/devices/devices.js index 7dd597f802..7042c8f8b7 100644 --- a/src/controllers/dashboard/devices/devices.js +++ b/src/controllers/dashboard/devices/devices.js @@ -6,7 +6,7 @@ import { formatDistanceToNow } from 'date-fns'; import { localeWithSuffix } from '../../../scripts/dfnshelper'; import '../../../elements/emby-button/emby-button'; import '../../../elements/emby-itemscontainer/emby-itemscontainer'; -import '../../../components/cardbuilder/card.css'; +import '../../../components/cardbuilder/card.scss'; import Dashboard from '../../../scripts/clientUtils'; import confirm from '../../../components/confirm/confirm'; diff --git a/src/controllers/dashboard/dlna/profile.js b/src/controllers/dashboard/dlna/profile.js index 74b4f2a25c..7498cc39dd 100644 --- a/src/controllers/dashboard/dlna/profile.js +++ b/src/controllers/dashboard/dlna/profile.js @@ -5,7 +5,7 @@ import '../../../elements/emby-select/emby-select'; import '../../../elements/emby-button/emby-button'; import '../../../elements/emby-input/emby-input'; import '../../../elements/emby-checkbox/emby-checkbox'; -import '../../../components/listview/listview.css'; +import '../../../components/listview/listview.scss'; import Dashboard from '../../../scripts/clientUtils'; import toast from '../../../components/toast/toast'; diff --git a/src/controllers/dashboard/dlna/profiles.js b/src/controllers/dashboard/dlna/profiles.js index a0186c79ab..5d394da428 100644 --- a/src/controllers/dashboard/dlna/profiles.js +++ b/src/controllers/dashboard/dlna/profiles.js @@ -2,7 +2,7 @@ import 'jquery'; import globalize from '../../../scripts/globalize'; import loading from '../../../components/loading/loading'; import libraryMenu from '../../../scripts/libraryMenu'; -import '../../../components/listview/listview.css'; +import '../../../components/listview/listview.scss'; import '../../../elements/emby-button/emby-button'; import confirm from '../../../components/confirm/confirm'; diff --git a/src/controllers/dashboard/library.js b/src/controllers/dashboard/library.js index a0acb36ad4..b7d1700ba6 100644 --- a/src/controllers/dashboard/library.js +++ b/src/controllers/dashboard/library.js @@ -5,7 +5,7 @@ import libraryMenu from '../../scripts/libraryMenu'; import globalize from '../../scripts/globalize'; import dom from '../../scripts/dom'; import imageHelper from '../../scripts/imagehelper'; -import '../../components/cardbuilder/card.css'; +import '../../components/cardbuilder/card.scss'; import '../../elements/emby-itemrefreshindicator/emby-itemrefreshindicator'; import Dashboard, { pageClassOn, pageIdOn } from '../../scripts/clientUtils'; import confirm from '../../components/confirm/confirm'; @@ -101,7 +101,7 @@ import cardBuilder from '../../components/cardbuilder/cardBuilder'; menuItems.push({ name: globalize.translate('ManageLibrary'), id: 'edit', - icon: 'folder_open' + icon: 'folder' }); menuItems.push({ name: globalize.translate('ButtonRemove'), @@ -169,7 +169,8 @@ import cardBuilder from '../../components/cardbuilder/cardBuilder'; showType: false, showLocations: false, showMenu: false, - showNameWithIcon: false + showNameWithIcon: false, + elementId: 'addLibrary' }); for (let i = 0; i < virtualFolders.length; i++) { @@ -255,11 +256,8 @@ import cardBuilder from '../../components/cardbuilder/cardBuilder'; style += 'min-width:33.3%;'; } - if (virtualFolder.Locations.length == 0) { - html += '
'; - } else { - html += '
'; - } + const elementId = virtualFolder.elementId ? `id="${virtualFolder.elementId}" ` : ''; + html += '
'; html += '
'; html += '
'; diff --git a/src/controllers/dashboard/logs.js b/src/controllers/dashboard/logs.js index 06d317a8a4..dac9a6eff9 100644 --- a/src/controllers/dashboard/logs.js +++ b/src/controllers/dashboard/logs.js @@ -1,7 +1,7 @@ import datetime from '../../scripts/datetime'; import loading from '../../components/loading/loading'; import '../../elements/emby-button/emby-button'; -import '../../components/listview/listview.css'; +import '../../components/listview/listview.scss'; import '../../assets/css/flexstyles.scss'; /* eslint-disable indent */ diff --git a/src/controllers/dashboard/metadataImages.js b/src/controllers/dashboard/metadataImages.js index dad9b26ed2..9711fa4820 100644 --- a/src/controllers/dashboard/metadataImages.js +++ b/src/controllers/dashboard/metadataImages.js @@ -2,7 +2,7 @@ import 'jquery'; import loading from '../../components/loading/loading'; import libraryMenu from '../../scripts/libraryMenu'; import globalize from '../../scripts/globalize'; -import '../../components/listview/listview.css'; +import '../../components/listview/listview.scss'; import Dashboard from '../../scripts/clientUtils'; /* eslint-disable indent */ diff --git a/src/controllers/dashboard/notifications/notifications/index.js b/src/controllers/dashboard/notifications/notifications/index.js index 1e0575df88..fc2eb0c2dd 100644 --- a/src/controllers/dashboard/notifications/notifications/index.js +++ b/src/controllers/dashboard/notifications/notifications/index.js @@ -1,6 +1,6 @@ import loading from '../../../../components/loading/loading'; import globalize from '../../../../scripts/globalize'; -import '../../../../components/listview/listview.css'; +import '../../../../components/listview/listview.scss'; import '../../../../elements/emby-button/emby-button'; function reload(page) { diff --git a/src/controllers/dashboard/plugins/add/index.js b/src/controllers/dashboard/plugins/add/index.js index 89bd499f49..007a2d8410 100644 --- a/src/controllers/dashboard/plugins/add/index.js +++ b/src/controllers/dashboard/plugins/add/index.js @@ -22,6 +22,10 @@ function populateHistory(packageInfo, page) { function populateVersions(packageInfo, page, installedPlugin) { let html = ''; + packageInfo.versions.sort((a, b) => { + return b.timestamp < a.timestamp ? -1 : 1; + }); + for (let i = 0; i < packageInfo.versions.length; i++) { const version = packageInfo.versions[i]; html += ''; diff --git a/src/controllers/dashboard/plugins/available/index.js b/src/controllers/dashboard/plugins/available/index.js index da25b7c0a1..c13c1c89b5 100644 --- a/src/controllers/dashboard/plugins/available/index.js +++ b/src/controllers/dashboard/plugins/available/index.js @@ -2,7 +2,7 @@ import loading from '../../../../components/loading/loading'; import libraryMenu from '../../../../scripts/libraryMenu'; import globalize from '../../../../scripts/globalize'; import * as cardBuilder from '../../../../components/cardbuilder/cardBuilder.js'; -import '../../../../components/cardbuilder/card.css'; +import '../../../../components/cardbuilder/card.scss'; import '../../../../elements/emby-button/emby-button'; import '../../../../elements/emby-checkbox/emby-checkbox'; import '../../../../elements/emby-select/emby-select'; diff --git a/src/controllers/dashboard/plugins/installed/index.js b/src/controllers/dashboard/plugins/installed/index.js index 55d3c0b5b2..a75bbf94eb 100644 --- a/src/controllers/dashboard/plugins/installed/index.js +++ b/src/controllers/dashboard/plugins/installed/index.js @@ -3,7 +3,7 @@ import libraryMenu from '../../../../scripts/libraryMenu'; import dom from '../../../../scripts/dom'; import globalize from '../../../../scripts/globalize'; import * as cardBuilder from '../../../../components/cardbuilder/cardBuilder.js'; -import '../../../../components/cardbuilder/card.css'; +import '../../../../components/cardbuilder/card.scss'; import '../../../../elements/emby-button/emby-button'; import Dashboard, { pageIdOn } from '../../../../scripts/clientUtils'; import confirm from '../../../../components/confirm/confirm'; @@ -87,12 +87,10 @@ function getPluginCardHtml(plugin, pluginConfigurationPages) { html += '
'; } - html += "
"; - html += configPage && configPage.DisplayName ? configPage.DisplayName : plugin.Name; - html += `
${globalize.translate('LabelStatus')} ${plugin.Status}
`; - html += "
"; - html += plugin.Version; + html += '
'; + html += `${plugin.Name}${plugin.Version}`; html += '
'; + html += `
${globalize.translate('LabelStatus')} ${plugin.Status}
`; html += '
'; html += '
'; html += '
'; @@ -161,7 +159,7 @@ function showPluginMenu(page, elem) { menuItems.push({ name: globalize.translate('EnablePlugin'), id: 'enable', - icon: 'mode_enable' + icon: 'check_circle_outline' }); } @@ -169,7 +167,7 @@ function showPluginMenu(page, elem) { menuItems.push({ name: globalize.translate('DisablePlugin'), id: 'disable', - icon: 'mode_disable' + icon: 'do_not_disturb' }); } diff --git a/src/controllers/dashboard/plugins/repositories/index.js b/src/controllers/dashboard/plugins/repositories/index.js index d9188cd3a2..dfe11c0c99 100644 --- a/src/controllers/dashboard/plugins/repositories/index.js +++ b/src/controllers/dashboard/plugins/repositories/index.js @@ -5,8 +5,8 @@ import dialogHelper from '../../../../components/dialogHelper/dialogHelper'; import '../../../../elements/emby-button/emby-button'; import '../../../../elements/emby-checkbox/emby-checkbox'; import '../../../../elements/emby-select/emby-select'; -import '../../../../components/formdialog.css'; -import '../../../../components/listview/listview.css'; +import '../../../../components/formdialog.scss'; +import '../../../../components/listview/listview.scss'; let repositories = []; diff --git a/src/controllers/dashboard/scheduledtasks/scheduledtask.js b/src/controllers/dashboard/scheduledtasks/scheduledtask.js index cd2f7a07ff..149b1d20a6 100644 --- a/src/controllers/dashboard/scheduledtasks/scheduledtask.js +++ b/src/controllers/dashboard/scheduledtasks/scheduledtask.js @@ -43,7 +43,7 @@ import confirm from '../../../components/confirm/confirm'; $('.taskName', view).html(task.Name); $('#pTaskDescription', view).html(task.Description); - import('../../../components/listview/listview.css').then(() => { + import('../../../components/listview/listview.scss').then(() => { ScheduledTaskPage.loadTaskTriggers(view, task); }); diff --git a/src/controllers/dashboard/scheduledtasks/scheduledtasks.js b/src/controllers/dashboard/scheduledtasks/scheduledtasks.js index 498819da68..8792c4f5b0 100644 --- a/src/controllers/dashboard/scheduledtasks/scheduledtasks.js +++ b/src/controllers/dashboard/scheduledtasks/scheduledtasks.js @@ -5,7 +5,7 @@ import globalize from '../../../scripts/globalize'; import serverNotifications from '../../../scripts/serverNotifications'; import { formatDistance, formatDistanceToNow } from 'date-fns'; import { getLocale, localeWithSuffix } from '../../../scripts/dfnshelper'; -import '../../../components/listview/listview.css'; +import '../../../components/listview/listview.scss'; import '../../../elements/emby-button/emby-button'; /* eslint-disable indent */ diff --git a/src/controllers/dashboard/users/userparentalcontrol.js b/src/controllers/dashboard/users/userparentalcontrol.js index 282037c21f..262e24b289 100644 --- a/src/controllers/dashboard/users/userparentalcontrol.js +++ b/src/controllers/dashboard/users/userparentalcontrol.js @@ -3,7 +3,7 @@ import datetime from '../../../scripts/datetime'; import loading from '../../../components/loading/loading'; import libraryMenu from '../../../scripts/libraryMenu'; import globalize from '../../../scripts/globalize'; -import '../../../components/listview/listview.css'; +import '../../../components/listview/listview.scss'; import '../../../elements/emby-button/paper-icon-button-light'; import toast from '../../../components/toast/toast'; diff --git a/src/controllers/dashboard/users/userprofilespage.js b/src/controllers/dashboard/users/userprofilespage.js index 203a630158..91499a40a8 100644 --- a/src/controllers/dashboard/users/userprofilespage.js +++ b/src/controllers/dashboard/users/userprofilespage.js @@ -4,9 +4,9 @@ import globalize from '../../../scripts/globalize'; import { formatDistanceToNow } from 'date-fns'; import { localeWithSuffix } from '../../../scripts/dfnshelper'; import '../../../elements/emby-button/paper-icon-button-light'; -import '../../../components/cardbuilder/card.css'; +import '../../../components/cardbuilder/card.scss'; import '../../../elements/emby-button/emby-button'; -import '../../../components/indicators/indicators.css'; +import '../../../components/indicators/indicators.scss'; import '../../../assets/css/flexstyles.scss'; import Dashboard, { pageIdOn } from '../../../scripts/clientUtils'; import confirm from '../../../components/confirm/confirm'; diff --git a/src/controllers/itemDetails/index.js b/src/controllers/itemDetails/index.js index f871c0f0ca..4f0454af83 100644 --- a/src/controllers/itemDetails/index.js +++ b/src/controllers/itemDetails/index.js @@ -18,7 +18,7 @@ import libraryMenu from '../../scripts/libraryMenu'; import globalize from '../../scripts/globalize'; import browser from '../../scripts/browser'; import { playbackManager } from '../../components/playback/playbackmanager'; -import '../../assets/css/scrollstyles.css'; +import '../../assets/css/scrollstyles.scss'; import '../../elements/emby-itemscontainer/emby-itemscontainer'; import '../../elements/emby-checkbox/emby-checkbox'; import '../../elements/emby-button/emby-button'; @@ -745,9 +745,7 @@ function renderLogo(page, item, apiClient) { const url = logoImageUrl(item, apiClient, {}); - if (!layoutManager.mobile && !userSettings.enableBackdrops()) { - detailLogo.classList.add('hide'); - } else if (url) { + if (url) { detailLogo.classList.remove('hide'); imageLoader.setLazyImage(detailLogo, url); } else { diff --git a/src/controllers/livetv/livetvrecordings.js b/src/controllers/livetv/livetvrecordings.js index a1fb55f53a..8ca3530d10 100644 --- a/src/controllers/livetv/livetvrecordings.js +++ b/src/controllers/livetv/livetvrecordings.js @@ -2,7 +2,7 @@ import loading from '../../components/loading/loading'; import cardBuilder from '../../components/cardbuilder/cardBuilder'; import imageLoader from '../../components/images/imageLoader'; import '../../scripts/livetvcomponents'; -import '../../components/listview/listview.css'; +import '../../components/listview/listview.scss'; import '../../elements/emby-itemscontainer/emby-itemscontainer'; import Dashboard from '../../scripts/clientUtils'; diff --git a/src/controllers/livetv/livetvsuggested.js b/src/controllers/livetv/livetvsuggested.js index e9a19a78c2..37a8adcd78 100644 --- a/src/controllers/livetv/livetvsuggested.js +++ b/src/controllers/livetv/livetvsuggested.js @@ -6,7 +6,7 @@ import globalize from '../../scripts/globalize'; import * as mainTabsManager from '../../components/maintabsmanager'; import cardBuilder from '../../components/cardbuilder/cardBuilder'; import imageLoader from '../../components/images/imageLoader'; -import '../../assets/css/scrollstyles.css'; +import '../../assets/css/scrollstyles.scss'; import '../../elements/emby-itemscontainer/emby-itemscontainer'; import '../../elements/emby-tabs/emby-tabs'; import '../../elements/emby-button/emby-button'; diff --git a/src/controllers/livetvstatus.js b/src/controllers/livetvstatus.js index 26df1e4b31..bcf9ba577e 100644 --- a/src/controllers/livetvstatus.js +++ b/src/controllers/livetvstatus.js @@ -5,10 +5,10 @@ import dom from '../scripts/dom'; import layoutManager from '../components/layoutManager'; import loading from '../components/loading/loading'; import browser from '../scripts/browser'; -import '../components/listview/listview.css'; +import '../components/listview/listview.scss'; import '../assets/css/flexstyles.scss'; import '../elements/emby-itemscontainer/emby-itemscontainer'; -import '../components/cardbuilder/card.css'; +import '../components/cardbuilder/card.scss'; import 'material-design-icons-iconfont'; import '../elements/emby-button/emby-button'; import Dashboard from '../scripts/clientUtils'; diff --git a/src/controllers/music/musicrecommended.js b/src/controllers/music/musicrecommended.js index 10bbaae7db..fdfa2cf6da 100644 --- a/src/controllers/music/musicrecommended.js +++ b/src/controllers/music/musicrecommended.js @@ -9,7 +9,7 @@ import imageLoader from '../../components/images/imageLoader'; import libraryMenu from '../../scripts/libraryMenu'; import * as mainTabsManager from '../../components/maintabsmanager'; import globalize from '../../scripts/globalize'; -import '../../assets/css/scrollstyles.css'; +import '../../assets/css/scrollstyles.scss'; import '../../elements/emby-itemscontainer/emby-itemscontainer'; import '../../elements/emby-tabs/emby-tabs'; import '../../elements/emby-button/emby-button'; diff --git a/src/controllers/playback/video/index.js b/src/controllers/playback/video/index.js index fbe4dcf956..d74bc103e7 100644 --- a/src/controllers/playback/video/index.js +++ b/src/controllers/playback/video/index.js @@ -13,10 +13,10 @@ import { appHost } from '../../../components/apphost'; import layoutManager from '../../../components/layoutManager'; import * as userSettings from '../../../scripts/settings/userSettings'; import keyboardnavigation from '../../../scripts/keyboardNavigation'; -import '../../../assets/css/scrollstyles.css'; +import '../../../assets/css/scrollstyles.scss'; import '../../../elements/emby-slider/emby-slider'; import '../../../elements/emby-button/paper-icon-button-light'; -import '../../../assets/css/videoosd.css'; +import '../../../assets/css/videoosd.scss'; import ServerConnections from '../../../components/ServerConnections'; import shell from '../../../scripts/shell'; import SubtitleSync from '../../../components/subtitlesync/subtitlesync'; diff --git a/src/controllers/session/login/index.js b/src/controllers/session/login/index.js index 84596ce4c6..c87d2dd710 100644 --- a/src/controllers/session/login/index.js +++ b/src/controllers/session/login/index.js @@ -6,7 +6,7 @@ import layoutManager from '../../../components/layoutManager'; import libraryMenu from '../../../scripts/libraryMenu'; import browser from '../../../scripts/browser'; import globalize from '../../../scripts/globalize'; -import '../../../components/cardbuilder/card.css'; +import '../../../components/cardbuilder/card.scss'; import '../../../elements/emby-checkbox/emby-checkbox'; import Dashboard from '../../../scripts/clientUtils'; import ServerConnections from '../../../components/ServerConnections'; diff --git a/src/controllers/session/selectServer/index.js b/src/controllers/session/selectServer/index.js index 6c6e4189a5..e248fe154f 100644 --- a/src/controllers/session/selectServer/index.js +++ b/src/controllers/session/selectServer/index.js @@ -12,7 +12,7 @@ import 'material-design-icons-iconfont'; import '../../../assets/css/flexstyles.scss'; import '../../../elements/emby-scroller/emby-scroller'; import '../../../elements/emby-itemscontainer/emby-itemscontainer'; -import '../../../components/cardbuilder/card.css'; +import '../../../components/cardbuilder/card.scss'; import '../../../elements/emby-button/emby-button'; import Dashboard from '../../../scripts/clientUtils'; import ServerConnections from '../../../components/ServerConnections'; diff --git a/src/controllers/shows/tvrecommended.js b/src/controllers/shows/tvrecommended.js index 494702a722..8d8f0fc82d 100644 --- a/src/controllers/shows/tvrecommended.js +++ b/src/controllers/shows/tvrecommended.js @@ -10,7 +10,7 @@ import cardBuilder from '../../components/cardbuilder/cardBuilder'; import { playbackManager } from '../../components/playback/playbackmanager'; import * as mainTabsManager from '../../components/maintabsmanager'; import globalize from '../../scripts/globalize'; -import '../../assets/css/scrollstyles.css'; +import '../../assets/css/scrollstyles.scss'; import '../../elements/emby-itemscontainer/emby-itemscontainer'; import '../../elements/emby-button/emby-button'; import Dashboard from '../../scripts/clientUtils'; diff --git a/src/controllers/shows/tvupcoming.js b/src/controllers/shows/tvupcoming.js index 052323faea..0c1be00a18 100644 --- a/src/controllers/shows/tvupcoming.js +++ b/src/controllers/shows/tvupcoming.js @@ -4,7 +4,7 @@ import datetime from '../../scripts/datetime'; import cardBuilder from '../../components/cardbuilder/cardBuilder'; import imageLoader from '../../components/images/imageLoader'; import globalize from '../../scripts/globalize'; -import '../../assets/css/scrollstyles.css'; +import '../../assets/css/scrollstyles.scss'; import '../../elements/emby-itemscontainer/emby-itemscontainer'; /* eslint-disable indent */ diff --git a/src/controllers/user/home/index.js b/src/controllers/user/home/index.js index a1bb503adb..37a2374b0d 100644 --- a/src/controllers/user/home/index.js +++ b/src/controllers/user/home/index.js @@ -1,7 +1,7 @@ import HomescreenSettings from '../../../components/homeScreenSettings/homeScreenSettings'; import * as userSettings from '../../../scripts/settings/userSettings'; import autoFocuser from '../../../components/autoFocuser'; -import '../../../components/listview/listview.css'; +import '../../../components/listview/listview.scss'; /* eslint-disable indent */ diff --git a/src/controllers/user/menu/index.js b/src/controllers/user/menu/index.js index 86324e7b84..1872b9f018 100644 --- a/src/controllers/user/menu/index.js +++ b/src/controllers/user/menu/index.js @@ -1,5 +1,5 @@ import { appHost } from '../../../components/apphost'; -import '../../../components/listview/listview.css'; +import '../../../components/listview/listview.scss'; import '../../../elements/emby-button/emby-button'; import layoutManager from '../../../components/layoutManager'; import Dashboard from '../../../scripts/clientUtils'; diff --git a/src/controllers/user/playback/index.js b/src/controllers/user/playback/index.js index a44e96ec10..793208cb6a 100644 --- a/src/controllers/user/playback/index.js +++ b/src/controllers/user/playback/index.js @@ -2,7 +2,7 @@ import PlaybackSettings from '../../../components/playbackSettings/playbackSettings'; import * as userSettings from '../../../scripts/settings/userSettings'; import autoFocuser from '../../../components/autoFocuser'; -import '../../../components/listview/listview.css'; +import '../../../components/listview/listview.scss'; /* eslint-disable indent */ diff --git a/src/controllers/user/quickConnect/helper.js b/src/controllers/user/quickConnect/helper.js index 54e16d72bb..3b5b364d2e 100644 --- a/src/controllers/user/quickConnect/helper.js +++ b/src/controllers/user/quickConnect/helper.js @@ -31,6 +31,7 @@ export const activate = () => { title: globalize.translate('HeaderError'), message: globalize.translate('DefaultErrorMessage') }); + throw e; }); }; diff --git a/src/controllers/wizard/user/index.js b/src/controllers/wizard/user/index.js index 03566ac7ee..693b3e02d7 100644 --- a/src/controllers/wizard/user/index.js +++ b/src/controllers/wizard/user/index.js @@ -1,6 +1,6 @@ import loading from '../../../components/loading/loading'; import globalize from '../../../scripts/globalize'; -import '../../../assets/css/dashboard.css'; +import '../../../assets/css/dashboard.scss'; import '../../../elements/emby-input/emby-input'; import '../../../elements/emby-button/emby-button'; import Dashboard from '../../../scripts/clientUtils'; diff --git a/src/elements/emby-button/emby-button.js b/src/elements/emby-button/emby-button.js index a3568be018..08f9c91b60 100644 --- a/src/elements/emby-button/emby-button.js +++ b/src/elements/emby-button/emby-button.js @@ -4,7 +4,7 @@ import layoutManager from '../../components/layoutManager'; import shell from '../../scripts/shell'; import { appRouter } from '../../components/appRouter'; import { appHost } from '../../components/apphost'; -import './emby-button.css'; +import './emby-button.scss'; const EmbyButtonPrototype = Object.create(HTMLButtonElement.prototype); const EmbyLinkButtonPrototype = Object.create(HTMLAnchorElement.prototype); diff --git a/src/elements/emby-button/emby-button.css b/src/elements/emby-button/emby-button.scss similarity index 100% rename from src/elements/emby-button/emby-button.css rename to src/elements/emby-button/emby-button.scss diff --git a/src/elements/emby-button/paper-icon-button-light.js b/src/elements/emby-button/paper-icon-button-light.js index ff817a31b4..83db506f93 100644 --- a/src/elements/emby-button/paper-icon-button-light.js +++ b/src/elements/emby-button/paper-icon-button-light.js @@ -1,5 +1,5 @@ import layoutManager from '../../components/layoutManager'; -import './emby-button.css'; +import './emby-button.scss'; import 'webcomponents.js/webcomponents-lite'; const EmbyButtonPrototype = Object.create(HTMLButtonElement.prototype); diff --git a/src/elements/emby-checkbox/emby-checkbox.js b/src/elements/emby-checkbox/emby-checkbox.js index 0af079ec06..ef21ff8136 100644 --- a/src/elements/emby-checkbox/emby-checkbox.js +++ b/src/elements/emby-checkbox/emby-checkbox.js @@ -1,6 +1,6 @@ import browser from '../../scripts/browser'; import dom from '../../scripts/dom'; -import './emby-checkbox.css'; +import './emby-checkbox.scss'; import 'webcomponents.js/webcomponents-lite'; /* eslint-disable indent */ diff --git a/src/elements/emby-checkbox/emby-checkbox.css b/src/elements/emby-checkbox/emby-checkbox.scss similarity index 100% rename from src/elements/emby-checkbox/emby-checkbox.css rename to src/elements/emby-checkbox/emby-checkbox.scss diff --git a/src/elements/emby-collapse/emby-collapse.js b/src/elements/emby-collapse/emby-collapse.js index ca34a48554..3694d020f3 100644 --- a/src/elements/emby-collapse/emby-collapse.js +++ b/src/elements/emby-collapse/emby-collapse.js @@ -1,4 +1,4 @@ -import './emby-collapse.css'; +import './emby-collapse.scss'; import 'webcomponents.js/webcomponents-lite'; import '../emby-button/emby-button'; diff --git a/src/elements/emby-collapse/emby-collapse.css b/src/elements/emby-collapse/emby-collapse.scss similarity index 100% rename from src/elements/emby-collapse/emby-collapse.css rename to src/elements/emby-collapse/emby-collapse.scss diff --git a/src/elements/emby-input/emby-input.js b/src/elements/emby-input/emby-input.js index 60f459f32b..beea22af54 100644 --- a/src/elements/emby-input/emby-input.js +++ b/src/elements/emby-input/emby-input.js @@ -1,6 +1,6 @@ import browser from '../../scripts/browser'; import dom from '../../scripts/dom'; -import './emby-input.css'; +import './emby-input.scss'; import 'webcomponents.js/webcomponents-lite'; /* eslint-disable indent */ diff --git a/src/elements/emby-input/emby-input.css b/src/elements/emby-input/emby-input.scss similarity index 100% rename from src/elements/emby-input/emby-input.css rename to src/elements/emby-input/emby-input.scss diff --git a/src/elements/emby-progressring/emby-progressring.js b/src/elements/emby-progressring/emby-progressring.js index 40dbd064b3..2a1b18d442 100644 --- a/src/elements/emby-progressring/emby-progressring.js +++ b/src/elements/emby-progressring/emby-progressring.js @@ -1,4 +1,4 @@ -import './emby-progressring.css'; +import './emby-progressring.scss'; import 'webcomponents.js/webcomponents-lite'; import template from './emby-progressring.template.html'; diff --git a/src/elements/emby-progressring/emby-progressring.css b/src/elements/emby-progressring/emby-progressring.scss similarity index 100% rename from src/elements/emby-progressring/emby-progressring.css rename to src/elements/emby-progressring/emby-progressring.scss diff --git a/src/elements/emby-radio/emby-radio.js b/src/elements/emby-radio/emby-radio.js index 46cf4989d8..0dadc38f99 100644 --- a/src/elements/emby-radio/emby-radio.js +++ b/src/elements/emby-radio/emby-radio.js @@ -1,7 +1,7 @@ import layoutManager from '../../components/layoutManager'; import browser from '../../scripts/browser'; import 'webcomponents.js/webcomponents-lite'; -import './emby-radio.css'; +import './emby-radio.scss'; /* eslint-disable indent */ diff --git a/src/elements/emby-radio/emby-radio.css b/src/elements/emby-radio/emby-radio.scss similarity index 100% rename from src/elements/emby-radio/emby-radio.css rename to src/elements/emby-radio/emby-radio.scss diff --git a/src/elements/emby-scrollbuttons/emby-scrollbuttons.js b/src/elements/emby-scrollbuttons/emby-scrollbuttons.js index 639cb627cd..f174186259 100644 --- a/src/elements/emby-scrollbuttons/emby-scrollbuttons.js +++ b/src/elements/emby-scrollbuttons/emby-scrollbuttons.js @@ -1,4 +1,4 @@ -import './emby-scrollbuttons.css'; +import './emby-scrollbuttons.scss'; import 'webcomponents.js/webcomponents-lite'; import '../emby-button/paper-icon-button-light'; diff --git a/src/elements/emby-scrollbuttons/emby-scrollbuttons.css b/src/elements/emby-scrollbuttons/emby-scrollbuttons.scss similarity index 100% rename from src/elements/emby-scrollbuttons/emby-scrollbuttons.css rename to src/elements/emby-scrollbuttons/emby-scrollbuttons.scss diff --git a/src/elements/emby-scroller/emby-scroller.js b/src/elements/emby-scroller/emby-scroller.js index 396f1284e8..5a76be9e6b 100644 --- a/src/elements/emby-scroller/emby-scroller.js +++ b/src/elements/emby-scroller/emby-scroller.js @@ -5,7 +5,7 @@ import inputManager from '../../scripts/inputManager'; import focusManager from '../../components/focusManager'; import browser from '../../scripts/browser'; import 'webcomponents.js/webcomponents-lite'; -import './emby-scroller.css'; +import './emby-scroller.scss'; /* eslint-disable indent */ diff --git a/src/elements/emby-scroller/emby-scroller.css b/src/elements/emby-scroller/emby-scroller.scss similarity index 100% rename from src/elements/emby-scroller/emby-scroller.css rename to src/elements/emby-scroller/emby-scroller.scss diff --git a/src/elements/emby-select/emby-select.js b/src/elements/emby-select/emby-select.js index 4d336a63a9..af71b1a77d 100644 --- a/src/elements/emby-select/emby-select.js +++ b/src/elements/emby-select/emby-select.js @@ -1,7 +1,7 @@ import layoutManager from '../../components/layoutManager'; import browser from '../../scripts/browser'; import actionsheet from '../../components/actionSheet/actionSheet'; -import './emby-select.css'; +import './emby-select.scss'; import 'webcomponents.js/webcomponents-lite'; /* eslint-disable indent */ diff --git a/src/elements/emby-select/emby-select.css b/src/elements/emby-select/emby-select.scss similarity index 100% rename from src/elements/emby-select/emby-select.css rename to src/elements/emby-select/emby-select.scss diff --git a/src/elements/emby-slider/emby-slider.js b/src/elements/emby-slider/emby-slider.js index 828237a63d..269f7a2962 100644 --- a/src/elements/emby-slider/emby-slider.js +++ b/src/elements/emby-slider/emby-slider.js @@ -2,7 +2,7 @@ import browser from '../../scripts/browser'; import dom from '../../scripts/dom'; import layoutManager from '../../components/layoutManager'; import keyboardnavigation from '../../scripts/keyboardNavigation'; -import './emby-slider.css'; +import './emby-slider.scss'; import 'webcomponents.js/webcomponents-lite'; import '../emby-input/emby-input'; diff --git a/src/elements/emby-slider/emby-slider.css b/src/elements/emby-slider/emby-slider.scss similarity index 100% rename from src/elements/emby-slider/emby-slider.css rename to src/elements/emby-slider/emby-slider.scss diff --git a/src/elements/emby-tabs/emby-tabs.js b/src/elements/emby-tabs/emby-tabs.js index ebe46f9165..45e3270c1f 100644 --- a/src/elements/emby-tabs/emby-tabs.js +++ b/src/elements/emby-tabs/emby-tabs.js @@ -3,8 +3,8 @@ import dom from '../../scripts/dom'; import scroller from '../../libraries/scroller'; import browser from '../../scripts/browser'; import focusManager from '../../components/focusManager'; -import './emby-tabs.css'; -import '../../assets/css/scrollstyles.css'; +import './emby-tabs.scss'; +import '../../assets/css/scrollstyles.scss'; /* eslint-disable indent */ const EmbyTabs = Object.create(HTMLDivElement.prototype); diff --git a/src/elements/emby-tabs/emby-tabs.css b/src/elements/emby-tabs/emby-tabs.scss similarity index 100% rename from src/elements/emby-tabs/emby-tabs.css rename to src/elements/emby-tabs/emby-tabs.scss diff --git a/src/elements/emby-textarea/emby-textarea.js b/src/elements/emby-textarea/emby-textarea.js index 18158d8703..5a34c2e8b8 100644 --- a/src/elements/emby-textarea/emby-textarea.js +++ b/src/elements/emby-textarea/emby-textarea.js @@ -1,4 +1,4 @@ -import './emby-textarea.css'; +import './emby-textarea.scss'; import 'webcomponents.js/webcomponents-lite'; import '../emby-input/emby-input'; diff --git a/src/elements/emby-textarea/emby-textarea.css b/src/elements/emby-textarea/emby-textarea.scss similarity index 100% rename from src/elements/emby-textarea/emby-textarea.css rename to src/elements/emby-textarea/emby-textarea.scss diff --git a/src/elements/emby-toggle/emby-toggle.js b/src/elements/emby-toggle/emby-toggle.js index 7539ae398d..bcc90724bb 100644 --- a/src/elements/emby-toggle/emby-toggle.js +++ b/src/elements/emby-toggle/emby-toggle.js @@ -1,4 +1,4 @@ -import './emby-toggle.css'; +import './emby-toggle.scss'; import 'webcomponents.js/webcomponents-lite'; /* eslint-disable indent */ diff --git a/src/elements/emby-toggle/emby-toggle.css b/src/elements/emby-toggle/emby-toggle.scss similarity index 100% rename from src/elements/emby-toggle/emby-toggle.css rename to src/elements/emby-toggle/emby-toggle.scss diff --git a/src/libraries/navdrawer/navdrawer.js b/src/libraries/navdrawer/navdrawer.js index 214d86a02c..b510e4015f 100644 --- a/src/libraries/navdrawer/navdrawer.js +++ b/src/libraries/navdrawer/navdrawer.js @@ -5,8 +5,8 @@ /* eslint-disable no-var */ import browser from '../../scripts/browser'; import dom from '../../scripts/dom'; -import './navdrawer.css'; -import '../../assets/css/scrollstyles.css'; +import './navdrawer.scss'; +import '../../assets/css/scrollstyles.scss'; export function NavigationDrawer(options) { function getTouches(e) { diff --git a/src/libraries/navdrawer/navdrawer.css b/src/libraries/navdrawer/navdrawer.scss similarity index 100% rename from src/libraries/navdrawer/navdrawer.css rename to src/libraries/navdrawer/navdrawer.scss diff --git a/src/libraries/screensavermanager.js b/src/libraries/screensavermanager.js index bdb049a23c..607bf98fad 100644 --- a/src/libraries/screensavermanager.js +++ b/src/libraries/screensavermanager.js @@ -4,7 +4,7 @@ import { pluginManager } from '../components/pluginManager'; import inputManager from '../scripts/inputManager'; import * as userSettings from '../scripts/settings/userSettings'; import ServerConnections from '../components/ServerConnections'; -import './screensavermanager.css'; +import './screensavermanager.scss'; function getMinIdleTime() { // Returns the minimum amount of idle time required before the screen saver can be displayed diff --git a/src/libraries/screensavermanager.css b/src/libraries/screensavermanager.scss similarity index 100% rename from src/libraries/screensavermanager.css rename to src/libraries/screensavermanager.scss diff --git a/src/libraries/scroller.js b/src/libraries/scroller.js index f2baf51572..b438f7daae 100644 --- a/src/libraries/scroller.js +++ b/src/libraries/scroller.js @@ -7,7 +7,7 @@ import layoutManager from '../components/layoutManager'; import dom from '../scripts/dom'; import focusManager from '../components/focusManager'; import ResizeObserver from 'resize-observer-polyfill'; -import '../assets/css/scrollstyles.css'; +import '../assets/css/scrollstyles.scss'; /** * Return type of the value. diff --git a/src/plugins/comicsPlayer/plugin.js b/src/plugins/comicsPlayer/plugin.js index fed81034bb..48e624b562 100644 --- a/src/plugins/comicsPlayer/plugin.js +++ b/src/plugins/comicsPlayer/plugin.js @@ -57,11 +57,29 @@ export class ComicsPlayer { } } + bindMediaElementEvents() { + const elem = this.mediaElement; + + elem?.addEventListener('close', this.onDialogClosed, {once: true}); + elem?.querySelector('.btnExit').addEventListener('click', this.onDialogClosed, {once: true}); + } + bindEvents() { + this.bindMediaElementEvents(); + document.addEventListener('keyup', this.onWindowKeyUp); } + unbindMediaElementEvents() { + const elem = this.mediaElement; + + elem?.removeEventListener('close', this.onDialogClosed); + elem?.querySelector('.btnExit').removeEventListener('click', this.onDialogClosed); + } + unbindEvents() { + this.unbindMediaElementEvents(); + document.removeEventListener('keyup', this.onWindowKeyUp); } @@ -85,13 +103,16 @@ export class ComicsPlayer { elem.id = 'comicsPlayer'; elem.classList.add('slideshowDialog'); - elem.innerHTML = '
'; + elem.innerHTML = `
+
+ +
`; - this.bindEvents(); dialogHelper.open(elem); } this.mediaElement = elem; + this.bindEvents(); return elem; } diff --git a/src/plugins/comicsPlayer/style.scss b/src/plugins/comicsPlayer/style.scss index cd471384db..273525b989 100644 --- a/src/plugins/comicsPlayer/style.scss +++ b/src/plugins/comicsPlayer/style.scss @@ -1,4 +1,6 @@ #comicsPlayer { + background: #fff; + .slideshowSwiperContainer { height: 100%; } diff --git a/src/plugins/experimentalWarnings/plugin.js b/src/plugins/experimentalWarnings/plugin.js index cae6e8b67c..563e6264f2 100644 --- a/src/plugins/experimentalWarnings/plugin.js +++ b/src/plugins/experimentalWarnings/plugin.js @@ -28,7 +28,7 @@ function showMessage(text, userSettingsKey, appHostFeature) { } userSettings.set(userSettingsKey, '1', false); - return alert(text).catch(() => { /* ignore exceptions */ }); + return alert(text); } function showBlurayMessage() { diff --git a/src/plugins/htmlVideoPlayer/plugin.js b/src/plugins/htmlVideoPlayer/plugin.js index af6f3d25e1..7b3afb635a 100644 --- a/src/plugins/htmlVideoPlayer/plugin.js +++ b/src/plugins/htmlVideoPlayer/plugin.js @@ -1319,7 +1319,7 @@ function tryRemoveElement(elem) { const dlg = document.querySelector('.videoPlayerContainer'); if (!dlg) { - return import('./style.css').then(() => { + return import('./style.scss').then(() => { loading.show(); const dlg = document.createElement('div'); diff --git a/src/plugins/htmlVideoPlayer/style.css b/src/plugins/htmlVideoPlayer/style.scss similarity index 100% rename from src/plugins/htmlVideoPlayer/style.css rename to src/plugins/htmlVideoPlayer/style.scss diff --git a/src/plugins/logoScreensaver/plugin.js b/src/plugins/logoScreensaver/plugin.js index 5067546c7f..8d5f7031a5 100644 --- a/src/plugins/logoScreensaver/plugin.js +++ b/src/plugins/logoScreensaver/plugin.js @@ -126,7 +126,7 @@ export default function () { } self.show = function () { - import('./style.css').then(() => { + import('./style.scss').then(() => { let elem = document.querySelector('.logoScreenSaver'); if (!elem) { diff --git a/src/plugins/logoScreensaver/style.css b/src/plugins/logoScreensaver/style.scss similarity index 100% rename from src/plugins/logoScreensaver/style.css rename to src/plugins/logoScreensaver/style.scss diff --git a/src/plugins/pdfPlayer/plugin.js b/src/plugins/pdfPlayer/plugin.js index 5bface5911..2b0d69ca36 100644 --- a/src/plugins/pdfPlayer/plugin.js +++ b/src/plugins/pdfPlayer/plugin.js @@ -4,7 +4,7 @@ import keyboardnavigation from '../../scripts/keyboardNavigation'; import dialogHelper from '../../components/dialogHelper/dialogHelper'; import dom from '../../scripts/dom'; import { appRouter } from '../../components/appRouter'; -import './style.css'; +import './style.scss'; import '../../elements/emby-button/paper-icon-button-light'; import { Events } from 'jellyfin-apiclient'; import { GlobalWorkerOptions, getDocument } from 'pdfjs-dist'; diff --git a/src/plugins/pdfPlayer/style.css b/src/plugins/pdfPlayer/style.scss similarity index 100% rename from src/plugins/pdfPlayer/style.css rename to src/plugins/pdfPlayer/style.scss diff --git a/src/plugins/youtubePlayer/plugin.js b/src/plugins/youtubePlayer/plugin.js index 6362cb3cbb..f04022a52c 100644 --- a/src/plugins/youtubePlayer/plugin.js +++ b/src/plugins/youtubePlayer/plugin.js @@ -28,7 +28,7 @@ function createMediaElement(instance, options) { const dlg = document.querySelector('.youtubePlayerContainer'); if (!dlg) { - import('./style.css').then(() => { + import('./style.scss').then(() => { loading.show(); const dlg = document.createElement('div'); diff --git a/src/plugins/youtubePlayer/style.css b/src/plugins/youtubePlayer/style.scss similarity index 100% rename from src/plugins/youtubePlayer/style.css rename to src/plugins/youtubePlayer/style.scss diff --git a/src/scripts/browser.js b/src/scripts/browser.js index 1e7b5fb34c..ea384bd060 100644 --- a/src/scripts/browser.js +++ b/src/scripts/browser.js @@ -210,7 +210,7 @@ if (!browser.chrome && !browser.edgeChromium && !browser.edge && !browser.opera browser.safari = true; } -browser.osx = userAgent.toLowerCase().indexOf('os x') !== -1; +browser.osx = userAgent.toLowerCase().indexOf('mac os x') !== -1; // This is a workaround to detect iPads on iOS 13+ that report as desktop Safari // This may break in the future if Apple releases a touchscreen Mac diff --git a/src/scripts/clientUtils.js b/src/scripts/clientUtils.js index 291202b2e0..a7941d88c6 100644 --- a/src/scripts/clientUtils.js +++ b/src/scripts/clientUtils.js @@ -65,7 +65,7 @@ export async function serverAddress() { })); }).then(configs => { const selection = configs.find(obj => !obj.config.StartupWizardCompleted) || configs[0]; - return Promise.resolve(selection.url); + return Promise.resolve(selection?.url); }).catch(error => { console.log(error); return Promise.resolve(); diff --git a/src/scripts/editorsidebar.js b/src/scripts/editorsidebar.js index 1132e6fa17..1ac9df9f7c 100644 --- a/src/scripts/editorsidebar.js +++ b/src/scripts/editorsidebar.js @@ -307,7 +307,7 @@ import Dashboard from './clientUtils'; updateEditorNode(this, item); }).on('pagebeforeshow', '.metadataEditorPage', function () { /* eslint-disable-next-line @babel/no-unused-expressions */ - import('../assets/css/metadataeditor.css'); + import('../assets/css/metadataeditor.scss'); }).on('pagebeforeshow', '.metadataEditorPage', function () { const page = this; Dashboard.getCurrentUser().then(function (user) { diff --git a/src/scripts/libraryMenu.js b/src/scripts/libraryMenu.js index 91b0775a8c..c9ad29ddff 100644 --- a/src/scripts/libraryMenu.js +++ b/src/scripts/libraryMenu.js @@ -13,7 +13,7 @@ import globalize from './globalize'; import imageHelper from './imagehelper'; import '../elements/emby-button/paper-icon-button-light'; import 'material-design-icons-iconfont'; -import '../assets/css/scrollstyles.css'; +import '../assets/css/scrollstyles.scss'; import '../assets/css/flexstyles.scss'; import Dashboard, { pageClassOn } from './clientUtils'; import ServerConnections from '../components/ServerConnections'; diff --git a/src/scripts/routes.js b/src/scripts/routes.js index cc653b0edf..f9968a1fdf 100644 --- a/src/scripts/routes.js +++ b/src/scripts/routes.js @@ -8,8 +8,8 @@ import '../elements/emby-select/emby-select'; import '../elements/emby-checkbox/emby-checkbox'; import '../elements/emby-slider/emby-slider'; import '../assets/css/livetv.scss'; -import '../components/listview/listview.css'; -import '../assets/css/dashboard.css'; +import '../components/listview/listview.scss'; +import '../assets/css/dashboard.scss'; import '../assets/css/detailtable.scss'; import { appRouter } from '../components/appRouter'; diff --git a/src/scripts/scrollHelper.js b/src/scripts/scrollHelper.js index 633216dcf8..6c281539a6 100644 --- a/src/scripts/scrollHelper.js +++ b/src/scripts/scrollHelper.js @@ -1,6 +1,6 @@ import focusManager from '../components/focusManager'; import dom from './dom'; -import '../assets/css/scrollstyles.css'; +import '../assets/css/scrollstyles.scss'; function getBoundingClientRect(elem) { // Support: BlackBerry 5, iOS 3 (original iPhone) diff --git a/src/scripts/settings/webSettings.js b/src/scripts/settings/webSettings.js index b35b0dc626..e88e65ad8f 100644 --- a/src/scripts/settings/webSettings.js +++ b/src/scripts/settings/webSettings.js @@ -1,5 +1,6 @@ -let data; +import DefaultConfig from '../../config.json'; +let data; const urlResolver = document.createElement('a'); // `fetch` with `file:` support @@ -55,30 +56,14 @@ async function getConfig() { return data; } catch (error) { console.warn('failed to fetch the web config file:', error); - return getDefaultConfig(); - } -} - -async function getDefaultConfig() { - try { - const response = await fetchLocal('config.template.json', { - cache: 'no-cache' - }); - - if (!response.ok) { - throw new Error('network response was not ok'); - } - - data = await response.json(); + data = DefaultConfig; return data; - } catch (error) { - console.error('failed to fetch the default web config file:', error); } } export function getIncludeCorsCredentials() { return getConfig() - .then(config => config.includeCorsCredentials) + .then(config => !!config.includeCorsCredentials) .catch(error => { console.log('cannot get web config:', error); return false; @@ -87,7 +72,7 @@ export function getIncludeCorsCredentials() { export function getMultiServer() { return getConfig().then(config => { - return config.multiserver; + return !!config.multiserver; }).catch(error => { console.log('cannot get web config:', error); return false; @@ -126,13 +111,16 @@ const checkDefaultTheme = (themes) => { export function getThemes() { return getConfig().then(config => { - const themes = Array.isArray(config.themes) ? config.themes : []; + if (!Array.isArray(config.themes)) { + console.error('web config is invalid, missing themes:', config); + } + const themes = Array.isArray(config.themes) ? config.themes : DefaultConfig.themes; checkDefaultTheme(themes); return themes; }).catch(error => { console.log('cannot get web config:', error); checkDefaultTheme(); - return []; + return DefaultConfig.themes; }); } @@ -140,9 +128,12 @@ export const getDefaultTheme = () => internalDefaultTheme; export function getPlugins() { return getConfig().then(config => { - return config.plugins; + if (!config.plugins) { + console.error('web config is invalid, missing plugins:', config); + } + return config.plugins || DefaultConfig.plugins; }).catch(error => { console.log('cannot get web config:', error); - return []; + return DefaultConfig.plugins; }); } diff --git a/src/scripts/site.js b/src/scripts/site.js index 30e3aaa07d..7569c64f28 100644 --- a/src/scripts/site.js +++ b/src/scripts/site.js @@ -118,7 +118,7 @@ function onGlobalizeInit() { import('../assets/css/fonts.scss'); } - import('../assets/css/librarybrowser.css'); + import('../assets/css/librarybrowser.scss'); loadPlugins().then(function () { initSyncPlay(); diff --git a/src/strings/cs.json b/src/strings/cs.json index 7d8cc602d8..903697d957 100644 --- a/src/strings/cs.json +++ b/src/strings/cs.json @@ -1401,7 +1401,7 @@ "LabelMaxMuxingQueueSizeHelp": "Maximální počet paketů, které je možné napřed načíst při čekání na spuštění všech proudů. Pokud se stále zobrazuje chyba \"Příliš mnoho paketů načtených napřed ve výstupním proudu\" v protokolech ffmpeg, zkuste hodnotu zvýšit. Doporučená hodnota je 2048.", "LabelMaxMuxingQueueSize": "Maximální velikost muxovací fronty:", "LabelKnownProxies": "Známé proxy servery:", - "KnownProxiesHelp": "Čárkami oddělený seznam IP adres známých proxy serverů pro připojení k instanci Jellyfin. Vyžadováno pro správné využití HTTP hlavičky X-Forwarded-For. Vyžaduje restart.", + "KnownProxiesHelp": "Čárkami oddělený seznam IP adres nebo jmen hostitelů známých proxy serverů pro připojení k instanci Jellyfin. Vyžadováno pro správné využití HTTP hlavičky X-Forwarded-For. Vyžaduje restart.", "QuickConnectNotActive": "Rychlé připojení k tomuto serveru není povoleno", "QuickConnectNotAvailable": "Požádejte správce serveru, aby rychlé připojení povolil", "QuickConnectInvalidCode": "Neplatný kód pro rychlé připojení", @@ -1501,5 +1501,12 @@ "LabelMaxAudiobookResumeHelp": "Položky jsou považovány za přehrané, pokud jsou zastaveny po tomto čase.", "LabelMaxAudiobookResume": "Maximální délka v minutách pro pokračování u audioknih:", "MessagePlaybackError": "Přehrání tohoto souboru na vašem zařízení Google Cast se nezdařilo.", - "MessageChromecastConnectionError": "Vašemu zařízení Google Cast se nezdařilo kontaktovat server Jellyfin. Zkontrolujte připojení a zkuste to znovu." + "MessageChromecastConnectionError": "Vašemu zařízení Google Cast se nezdařilo kontaktovat server Jellyfin. Zkontrolujte připojení a zkuste to znovu.", + "AllowVppTonemappingHelp": "Plně hardwarové mapování tónů bez použití filtru OpenCL. Momentálně funguje pouze při překódování videí, které obsahují metadata HDR10.", + "EnableVppTonemapping": "Povolit mapování tónů VPP", + "EnableEnhancedNvdecDecoder": "Povolit vylepšený dekodér NVDEC", + "Framerate": "Snímková frekvence", + "DisablePlugin": "Zakázat", + "EnablePlugin": "Povolit", + "DirectPlayHelp": "Zdrojový soubor je s klientem plně kompatibilní a relaci je tak soubor posílán bez úprav." } diff --git a/src/strings/da.json b/src/strings/da.json index cf5d13af17..18bcab107c 100644 --- a/src/strings/da.json +++ b/src/strings/da.json @@ -5,20 +5,20 @@ "AddToPlayQueue": "Tilføj til afspilningskø", "AddToPlaylist": "Tilføj til afspilningsliste", "AddedOnValue": "Tilføjet {0}", - "AdditionalNotificationServices": "Kig i plugin kataloget for at få yderligere underretnings-tjenester.", + "AdditionalNotificationServices": "Kig i tilføjelser kataloget for at intallere yderligere underretnings-tjenester.", "Alerts": "Advarsler", "All": "Alle", "AllChannels": "Alle kanaler", - "AllEpisodes": "Alle episoder", + "AllEpisodes": "Alle afsnit", "AllLibraries": "Alle biblioteker", - "AllowHWTranscodingHelp": "Tillad tuneren at omkode streams on-the-fly. Dette kan hjælpe med at reducere omkodning samt CPU presset på serveren.", - "AllowMediaConversion": "Tillad media konvertering", - "AllowMediaConversionHelp": "Giv eller nægt adgang til Konvertér Media featuren.", - "AllowOnTheFlySubtitleExtraction": "Tillad udtræk af undertekster on-the-fly", - "AllowOnTheFlySubtitleExtractionHelp": "Indeholdte undertekster kan trækkes ud af videoer og leveres til klienter i ren tekst for at afhjælpe video omkodning. På nogle systemer kan dette tage lang tid og forårsage at afspilning kan hænge under udtrækningen. Slå dette fra, for at have undertekster brændt ind i video omkodningen når det er supporteret på klient enheden.", + "AllowHWTranscodingHelp": "Tillad tuneren at omkode streams på farten. Dette kan hjælpe med at begrænse omkodning påkrævet af serveren.", + "AllowMediaConversion": "Tillad medie konvertering", + "AllowMediaConversionHelp": "Tillad eller afvis adgang til medie konvertering funktionen.", + "AllowOnTheFlySubtitleExtraction": "Tillad udtræk af undertekster på farten", + "AllowOnTheFlySubtitleExtractionHelp": "Indlejrede undertekster kan udtrækkes af videoer og leveres til klienter i ren tekst for at hjælpe med at undgå video omkodning. På nogle systemer kan dette tage lang tid og forårsage at afspilningen kan hænge under udtrækningen. Deaktiver dette for at indlejrede undertekster brændes ind under video omkodningen når de ikke oprindeligt er understøttet på klient enheden.", "AllowRemoteAccess": "Tillad fjernadgang til denne server.", "AllowRemoteAccessHelp": "Hvis ikke markeret, vil alle fjernforbindelser blive blokeret.", - "AllowedRemoteAddressesHelp": "Komma seperareret liste over IP adresser og netmasker der har ret til fjernadgang. Hvis blank er alle adresser tilladte.", + "AllowedRemoteAddressesHelp": "Kommasepareret liste over IP-adresser eller IP / netmaskeindgange for netværk, som har lov til at oprette forbindelse udefra. Hvis det er tomt, er alle eksterne adresser tilladt.", "Anytime": "Altid", "AroundTime": "Omkring", "AsManyAsPossible": "Så mange som muligt", @@ -263,12 +263,12 @@ "HeaderSeasons": "Sæsoner", "HeaderSelectCertificatePath": "Vælg certifikatsti", "HeaderSelectMetadataPath": "Vælg Metadata Path", - "HeaderSelectMetadataPathHelp": "Vælg eller indtast stien for hvor du ønsker at gemme din metadata. Mappen må ikke være skrivebeskyttet.", + "HeaderSelectMetadataPathHelp": "Vælg eller indtast stien for hvor du ønsker at opbevare metadata. Mappen skal være skrivbar.", "HeaderSelectPath": "Vælg sti", "HeaderSelectServerCachePath": "Vælg \"Server Cache Path\"", "HeaderSelectServerCachePathHelp": "Vælg eller indtast stien som skal benyttes til serverens cache filer. Mappen må ikke være skrivebeskyttet.", "HeaderSelectTranscodingPath": "Vælg \"Transcoding Temporary Path\"", - "HeaderSelectTranscodingPathHelp": "Vælg eller indtast stien som skal benyttes til midlertidige transkodningsfiler. Mappen må ikke være skrivebeskyttet.", + "HeaderSelectTranscodingPathHelp": "Vælg eller indtast stien som bruges til medie der omkodes. Mappen skal være skrivbar.", "HeaderSendMessage": "Send besked", "HeaderSeriesOptions": "Serieindstillinger", "HeaderServerSettings": "Serverindstillinger", @@ -330,7 +330,7 @@ "LabelAppName": "App navn", "LabelAppNameExample": "F.eks: Sickbeard, Sonarr", "LabelArtists": "Artister:", - "LabelArtistsHelp": "Separer flere kunstnere ved at bruge semikolon.", + "LabelArtistsHelp": "Adskil flere kunstnere med et semikolon.", "LabelAudioLanguagePreference": "Foretrukket lydsprog:", "LabelAutomaticallyRefreshInternetMetadataEvery": "Genopfrisk automatisk metadata fra internettet:", "LabelBindToLocalNetworkAddress": "Bind til lokal netværksadresse:", @@ -379,16 +379,16 @@ "LabelEnableAutomaticPortMapHelp": "Forsøg at mappe den offentlige port til den lokale port med uPnP. Dette virker ikke med alle routere. Ændringerne vil først træde i kræft et en server genstart.", "LabelEnableBlastAliveMessages": "Masseudsend 'i live' beskeder", "LabelEnableBlastAliveMessagesHelp": "Aktiver dette hvis UPnP enheder har problemer med forbindelsen til serveren.", - "LabelEnableDlnaClientDiscoveryInterval": "Interval for klientsøgning (sekunder)", + "LabelEnableDlnaClientDiscoveryInterval": "Klient opdagelse interval", "LabelEnableDlnaClientDiscoveryIntervalHelp": "angiver intervallet i sekunder mellem Jellyfins SSDP søgninger.", "LabelEnableDlnaDebugLogging": "Aktiver debu logning af DLNA", "LabelEnableDlnaDebugLoggingHelp": "Opret store logfiler og skal kun bruges efter behov til fejlfinding.", "LabelEnableDlnaPlayTo": "Aktiver DLNA \"Afspil Til\"", - "LabelEnableDlnaPlayToHelp": "Find enheder i dit netværk og tilbyd at fjernstyre dem.", + "LabelEnableDlnaPlayToHelp": "Opdag enheder i dit netværk og tilbyd at fjernstyre dem.", "LabelEnableDlnaServer": "Aktiver DLNA server", "LabelEnableDlnaServerHelp": "Tillader UPnP enheder i dit netværk at gennemse og afspille indhold.", "LabelEnableRealtimeMonitor": "Aktiver realtidsovervågning", - "LabelEnableRealtimeMonitorHelp": "Ændringer vil blive behandlet øjeblikkeligt på understøttede filsystemer.", + "LabelEnableRealtimeMonitorHelp": "Ændringer træder i kraft øjeblikkeligt på understøttede filsystemer.", "LabelEnableSingleImageInDidlLimit": "Begræns til et enkelt indlejret billede", "LabelEnableSingleImageInDidlLimitHelp": "Nogle enheder viser ikke rigtigt, hvis der er flere indlejrede billeder i DIDL.", "LabelEndDate": "Slutdato:", @@ -406,11 +406,11 @@ "LabelGroupMoviesIntoCollections": "Grupper film i samlinger", "LabelGroupMoviesIntoCollectionsHelp": "Film i samlinger vil blive vist som en samlet enhed i filmlister.", "LabelH264Crf": "H264-kodning CRF:", - "LabelEncoderPreset": "Forudindstillet H264-kodning:", + "LabelEncoderPreset": "Forudindstilling for kodning:", "LabelHardwareAccelerationType": "Hardwareacceleration:", "LabelHardwareAccelerationTypeHelp": "Hardwareacceleration kræver yderligere konfiguration.", "LabelHttpsPort": "Lokalt HTTPS portnummer:", - "LabelHttpsPortHelp": "Det TCP-portnummer, som Jellyfins HTTPS-server skal benytte.", + "LabelHttpsPortHelp": "TCP port for HTTPS server.", "LabelIconMaxHeight": "Maximal højde af ikoner:", "LabelIconMaxWidth": "Maximal bredde på ikoner:", "LabelIdentificationFieldHelp": "En case-insensitive substring eller regex ekspression.", @@ -435,7 +435,7 @@ "LabelLanguage": "Sprog:", "LabelLineup": "Opstilling:", "LabelLocalHttpServerPortNumber": "Lokalt HTTP-portnummer:", - "LabelLocalHttpServerPortNumberHelp": "Det TCP-portnummer, som Jellyfin's HTTP-server skal binde til.", + "LabelLocalHttpServerPortNumberHelp": "TCP port for HTTP-server.", "LabelLockItemToPreventChanges": "Lås for at undgå fremtidige ændringer", "LabelLoginDisclaimer": "Login ansvarsfraskrivelse:", "LabelLoginDisclaimerHelp": "En besked, som vises i bunden af loginsiden.", @@ -457,7 +457,7 @@ "LabelMetadataReaders": "Metadata aflæsere:", "LabelMetadataReadersHelp": "Ranger dine fortrukne lokale metadatakilder i prioriteret rækkefølge. Den først fundne fil vil blive aflæst.", "LabelMetadataSavers": "Metadata-gemmer:", - "LabelMetadataSaversHelp": "Vælg de filformater du ønsker din metadata gemmes som.", + "LabelMetadataSaversHelp": "Vælg filformatet du ønsker metadata gemmes som.", "LabelMethod": "Metode:", "LabelMinBackdropDownloadWidth": "Minimum baggrundsbillede bredde:", "LabelMinResumeDuration": "Min. fortsæt tidsrum (sekunder):", @@ -472,9 +472,9 @@ "LabelMovieCategories": "Filmkategorier:", "LabelMoviePrefix": "Film-præfiks:", "LabelMoviePrefixHelp": "Angiv venligst her hvis der tilføjes et præfiks til filmtitler, så serveren kan håndtere det korrekt.", - "LabelMovieRecordingPath": "Film afspilningssti (valgfri):", + "LabelMovieRecordingPath": "Filmoptagelsessti:", "LabelMusicStreamingTranscodingBitrate": "Bitrate for musiktranskodning:", - "LabelMusicStreamingTranscodingBitrateHelp": "Angiv en maksimal bitrate når der streames musik.", + "LabelMusicStreamingTranscodingBitrateHelp": "Angiv en maksimal bitrate under afspilning af musik.", "LabelName": "Navn:", "LabelNewName": "Nyt navn:", "LabelNewPassword": "Ny kode:", @@ -484,8 +484,8 @@ "LabelNumber": "Nummer:", "LabelNumberOfGuideDays": "Antal dage af programguide data der skal hentes:", "LabelNumberOfGuideDaysHelp": "Hentning af flere dages programguide data giver mulighed for at planlægge længere ud i fremtiden, og se flere programoversigter, men det vil også tage længere tid at hente. Auto vil vælge baseret på antallet af kanaler.", - "LabelOptionalNetworkPath": "(Valgfri) Delt netværksmappe:", - "LabelOptionalNetworkPathHelp": "Hvis denne mappe er delt på netværket kan du, ved at dele stien til netværksdrevet, tillade Jellyfin apps på andre enheder at tilgå mediefiler direkte.", + "LabelOptionalNetworkPath": "Delt netværksmappe:", + "LabelOptionalNetworkPathHelp": "Hvis denne mappe er delt på dit netværk, kan du ved deling af netværksdrevets sti tillade andre klienter på andre enheder at tilgå mediefiler direkte. For eksempelvis, {0} eller {1}.", "LabelOriginalAspectRatio": "Originalt formatforhold:", "LabelOriginalTitle": "Original titel:", "LabelOverview": "Oversigt:", @@ -521,7 +521,7 @@ "LabelReleaseDate": "Udgivelsesdato:", "LabelRemoteClientBitrateLimit": "Begrænsning på bitrate ved internet streaming (Mbps):", "LabelRemoteClientBitrateLimitHelp": "En valgfri per-stream bitrate begrændning for alle enheder ikke på netværket. Dette er praktisk til at forhindre enheder i at efterspørge højere bitrate end din internet forbindelse kan håndtere. Dette kan resultere i forhøjet CPU load på serveren for at omkode videoer til lavere bitrate on-the-fly.", - "LabelRuntimeMinutes": "Spilletid (minutter):", + "LabelRuntimeMinutes": "Spilletid:", "LabelSaveLocalMetadata": "Gem illustrationer og metadata i mediemapper", "LabelSaveLocalMetadataHelp": "Lagring af illustrationer og metadata i mediemapper vil placerer dem et sted hvor de nemt kan redigeres.", "LabelScheduledTaskLastRan": "Sidst kørt {0}, og tog {1}.", @@ -530,7 +530,7 @@ "LabelSelectVersionToInstall": "Vælg hvilken version der skal installeres:", "LabelSendNotificationToUsers": "Send underretning til:", "LabelSerialNumber": "Serienummer", - "LabelSeriesRecordingPath": "Serier afspilningssti (valgfri):", + "LabelSeriesRecordingPath": "Serieoptagelsessti:", "LabelServerHost": "Vært:", "LabelServerHostHelp": "F. eks: 192.168.1.100:8096 eller https://myserver.com", "LabelSimultaneousConnectionLimit": "samtidige stream begrænsning:", @@ -614,7 +614,7 @@ "MessageConfirmProfileDeletion": "Er du sikker på du ønsker at slette denne profil?", "MessageConfirmRecordingCancellation": "Er du sikker på du ønsker at annullere denne optagelse?", "MessageConfirmRemoveMediaLocation": "Er du sikker på du ønsker at fjerne denne lokalisation?", - "MessageConfirmRestart": "Er du sikker på du ønsker at genstarte Jellyfin?", + "MessageConfirmRestart": "Er du sikker på du vil genstarte Jellyfin?", "MessageConfirmRevokeApiKey": "Er du sikker på du ønsker at invalidere denne api nøgle? Applikationens forbindelse til Jellyfin vil blive afbrudt øjeblikkeligt.", "MessageConfirmShutdown": "Er du sikker på du ønsker at slukke for serveren?", "MessageContactAdminToResetPassword": "Kontakt venligst din systemadministrator for at nulstille din adgangskode.", @@ -684,7 +684,7 @@ "OptionAllowLinkSharingHelp": "Kun websider der indeholder medieinformationer deles. Mediefiler deles aldrig offentligt. Delinger er tidsbegrænset og udløber efter {0} dage.", "OptionAllowManageLiveTv": "Tillad administration af live TV optagelser", "OptionAllowMediaPlayback": "Tillad afspilning ad medier", - "OptionAllowMediaPlaybackTranscodingHelp": "At begrænse adgang til omkodning kan forårsage afspilningsfejl i Jellyfin apps på grund af usupporterede medie formater.", + "OptionAllowMediaPlaybackTranscodingHelp": "At begrænse adgang til omkodning kan forårsage afspilningsfejl på klienter, i tilfælde af medie formater der ikke understøttes..", "OptionAllowRemoteControlOthers": "Tillad fjernstyring af andre brugere", "OptionAllowRemoteSharedDevices": "Tillad fjernstyring af delte enheder", "OptionAllowRemoteSharedDevicesHelp": "DLNA-enheder betragtes som delt, indtil en bruger begynder at kontrollere dem.", @@ -693,7 +693,7 @@ "OptionAllowVideoPlaybackRemuxing": "Tillad videoafspilning som kræver konvertering uden omkodning", "OptionAllowVideoPlaybackTranscoding": "Tillad videoafspilning der kræver transkodning", "OptionAutomaticallyGroupSeries": "Flet automatisk serier der er spredt over adskillige mapper", - "OptionAutomaticallyGroupSeriesHelp": "Hvis aktiveret, vil serier der er spredt over adskillige mapper i dette bibliotek blive samlet i én enkelt serie.", + "OptionAutomaticallyGroupSeriesHelp": "Serier som er adskilt i flere mapper i dette bibliotek vil automatisk blive sammensat til en enkelt serie.", "OptionCommunityRating": "Fællesskabsvurdering", "OptionCriticRating": "Kritikervurdering", "OptionCustomUsers": "Brugerdefineret", @@ -703,7 +703,7 @@ "OptionDateAddedImportTime": "Brug datoen for indskanning", "OptionDatePlayed": "Dato for afspilning", "OptionDisableUser": "Deaktiver denne bruger", - "OptionDisableUserHelp": "Hvis deaktiveret vil serveren ikke tillade forbindelser fra denne bruger. Eksisterende forbindelser vil blive afbrudt øjeblikkeligt.", + "OptionDisableUserHelp": "Serveren vil ikke tillade forbindelser fra denne bruger. Eksisterende forbindelser vil blive afbrudt øjeblikkeligt.", "OptionDislikes": "Ikke-Lide", "OptionDisplayFolderView": "Få vist en mappevisning til at se enkle mediemapper", "OptionDisplayFolderViewHelp": "Vis mapper sammen med dine andre mediebiblioteker. Dette kan være nyttigt, hvis du gerne vil have en almindelig mappevisning.", @@ -730,7 +730,7 @@ "OptionHideUserFromLoginHelp": "Nyttigt for private kontoer eller skjulte administratorkontoer. Brugeren skal logge ind ved at skive sit brugernavn og adgangskode.", "OptionHlsSegmentedSubtitles": "HLS segmenterede undertekster", "OptionIgnoreTranscodeByteRangeRequests": "Ignorer forespørgsler vedrørende transcode byte interval", - "OptionIgnoreTranscodeByteRangeRequestsHelp": "Hvis aktiveret vil disse forespørgsler blive efterkommet, men byte range headeren ignoreret.", + "OptionIgnoreTranscodeByteRangeRequestsHelp": "Disse forespørgsler vil blive efterkommet, men vil ignorere byte range headeren.", "OptionImdbRating": "IMDB bedømmelse", "OptionMax": "Maks", "OptionMissingEpisode": "Manglende episoder", @@ -781,7 +781,7 @@ "PleaseAddAtLeastOneFolder": "Tilføj venligst som minimum en enkelt mappe til dette bibliotek ved at klikke på Tilføj-knappen.", "PleaseConfirmPluginInstallation": "Klik venligst OK for at bekræfte at du har læst ovenstående og ønsker at fortsætte med installationen af plugin.", "PleaseEnterNameOrId": "Indtast venligst et navn eller eksternt ID.", - "PleaseRestartServerName": "Genstart venligst Jellyfin Server - {0}.", + "PleaseRestartServerName": "Genstart venligst Jellyfin på {0}.", "PleaseSelectTwoItems": "Vælg venligst mindst to elementer.", "MessagePluginInstalled": "Plugin blev installeret med success. Jellyfin serveren skal genstartes for at aktivere det.", "PreferEmbeddedTitlesOverFileNames": "Foretræk indlejrede titler over filnavne", @@ -802,7 +802,7 @@ "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.", + "RefreshDialogHelp": "Metadata opdateres alt efter hvilke indstillinger og internet-servicer der er aktiveret i kontrolpanelet.", "RefreshQueued": "Opdatering sat i kø.", "ReleaseDate": "Udgivelsesdato", "RememberMe": "Husk mig", @@ -832,10 +832,10 @@ "SeriesRecordingScheduled": "Optagning af serie planlagt.", "SeriesSettings": "Serieindstillinger", "SeriesYearToPresent": "{0} - Nuværende", - "ServerNameIsRestarting": "Jellyfin Server - {0} genstarter.", - "ServerNameIsShuttingDown": "Jellyfin Server - {0} lukker ned.", - "ServerRestartNeededAfterPluginInstall": "Jellyfin Server skal genstartes efter installering af plugin.", - "ServerUpdateNeeded": "Denne Jellyfin server bør opdateres. For at downloade den nyeste version besøg venligst {0}", + "ServerNameIsRestarting": "Serveren bag {0} genstarter.", + "ServerNameIsShuttingDown": "Serveren bag {0} lukker ned.", + "ServerRestartNeededAfterPluginInstall": "Jellyfin skal genstartes efter installation af en tilføjelse.", + "ServerUpdateNeeded": "Denne server bør opdateres. For at hente den nyeste version besøg venligst {0}", "Settings": "Indstillinger", "SettingsSaved": "Indstillinger er gemt.", "SettingsWarning": "Ændring af disse værdier kan resultere i instabilitet eller forbindelsesfejl. Hvis du oplever fejl, anbefaler vi at du skifter til standardværdier.", @@ -919,8 +919,8 @@ "XmlTvPathHelp": "En sti til en XMLTV fil. Jellyfin læser denne fil og kontrollerer periodisk for opdateringer. Du er ansvarlig for at oprette og opdatere filen.", "XmlTvSportsCategoriesHelp": "Programmer med disse kategorier bliver vist som sportsprogrammer. Adskil flere med '|'.", "Yesterday": "I går", - "AirDate": "Luftdata", - "Albums": "Albums", + "AirDate": "Luftdato", + "Albums": "Albummer", "Artists": "Kunstnere", "Books": "Bøger", "Collections": "Samlinger", @@ -929,7 +929,7 @@ "HeaderAlbumArtists": "Albumkunstnere", "Absolute": "Absolut", "AccessRestrictedTryAgainLater": "Adgang er begrænset. Prøv igen senere.", - "Aired": "Blev sendt", + "Aired": "Sendt", "AllComplexFormats": "Alle Komplekse Formater (ASS, SSA, VOBSUB, PGS, SUB,IDX osv.)", "AllLanguages": "Alle sprog", "AlwaysPlaySubtitles": "Afspil Altid", @@ -993,7 +993,7 @@ "EnableThemeSongsHelp": "Afspil tema sange i baggrunden mens man gennemser biblioteket.", "EnableThemeVideosHelp": "Afspil tema videoer i baggrunden mens man gennemser biblioteket.", "Episodes": "Afsnit", - "ErrorDeletingItem": "Der skete en fejl ved sletningen af mediet fra Jellyfin Server. Tjek venligst at Jellyfin Server har skrive adgang til mediemappen og prøv igen.", + "ErrorDeletingItem": "Der skete en fejl ved sletningen af mediet fra Jellyfin Serveren. Tjek venligst at Jellyfin Serveren har skrive adgang til mediemappen og prøv igen.", "ExtraLarge": "Ekstra Stor", "Extras": "Bonusmateriale", "Features": "Funktioner", @@ -1186,9 +1186,9 @@ "LabelServerName": "Server navn:", "LabelUserLoginAttemptsBeforeLockout": "Fejlede loginforsøg før bruger lukkes ude:", "ButtonAddImage": "Tilføj billede", - "AllowFfmpegThrottlingHelp": "Når en omkodning eller remux kommer langt nok foran den nuværende afspildings position, pauses processen så der bruges færre resurser. Dette er mest brugbart når man ikke springer i filmen. Slå dette fra hvis du har problemer med playback.", + "AllowFfmpegThrottlingHelp": "Når en omkodning eller remux kommer langt nok foran den nuværende afspilnings position, holder processen pause så der bruges færre ressourcer. Dette er mest brugbart når man ikke spoler ofte. Slå dette fra hvis du oplever problemer under afspilning.", "AllowFfmpegThrottling": "Begræns Omkodning", - "AlbumArtist": "Album Artist", + "AlbumArtist": "Album Kunstner", "Album": "Album", "EveryHour": "Hver time", "EveryXMinutes": "Hvert {0} minut", @@ -1198,7 +1198,7 @@ "LastSeen": "Sidst set {0}", "PersonRole": "som {0}", "ListPaging": "{0}-{1} af {2}", - "WriteAccessRequired": "Jellyfin Server kræver skriveadgang til denne mappe. Sørg for skriveadgang, og prøv igen.", + "WriteAccessRequired": "Jellyfin kræver skriveadgang til denne mappe. Sørg for skriveadgang, og prøv igen.", "PathNotFound": "Stien blev ikke fundet. Sørg for, at stien er gyldig, og prøv igen.", "Yadif": "YADIF", "TabNetworking": "Netværk", @@ -1214,7 +1214,7 @@ "OptionRandom": "Tilfældig", "OptionLoginAttemptsBeforeLockoutHelp": "En værdi på nul betyder at arve standard for tre forsøg for normale brugere og fem for administratorer. Indstilling af dette til -1 vil deaktivere funktionen.", "OptionLoginAttemptsBeforeLockout": "Bestemmer, hvor mange forkerte loginforsøg, der kan gøres, før lockout finder sted.", - "OptionForceRemoteSourceTranscoding": "Tving transcoding af eksterne mediekilder (som LiveTV)", + "OptionForceRemoteSourceTranscoding": "Tving omkodning af eksterne mediekilder (som LiveTV)", "NoCreatedLibraries": "Det ser ud til, at du ikke har oprettet nogen biblioteker endnu. {0} Vil du oprette en nu? {1}", "MusicVideo": "Musik Video", "MusicLibraryHelp": "Gennemgå {0} guide til navngivning af musik {1}.", @@ -1277,7 +1277,7 @@ "New": "Nye", "ButtonTogglePlaylist": "Spilleliste", "ButtonSyncPlay": "SyncPlay", - "HeaderRemoteAccessSettings": "Fjernkontrolsindstillinger", + "HeaderRemoteAccessSettings": "Fjernadgangsindstillinger", "HeaderHttpsSettings": "HTTPS Indstillinger", "EnableAutoCast": "Brug som standard", "Data": "Data", @@ -1311,5 +1311,130 @@ "EnableDetailsBanner": "Detalje Banner", "EnableDecodingColorDepth10Vp9": "Aktiver 10-bit hardware dekodning for VP9", "EnableDecodingColorDepth10Hevc": "Aktiver 10-bit hardware dekodning for HEVC", - "AllowTonemappingHelp": "Tonekortlægning kan omdanne det dynamiske område for en video fra HDR til SDR, samtidig med at billeddetaljer og farver opretholdes, hvilket er meget vigtig information til at repræsentere den originale scene. Fungerer i øjeblikket kun, når der omkodes videoer med indlejret HDR10- eller HLG-metadata. Hvis afspilningen ikke er jævn eller mislykkes, skal du overveje at slukke for den tilsvarende hardwaredekoder." + "AllowTonemappingHelp": "Tonekortlægning kan omdanne det dynamiske område for en video fra HDR til SDR, samtidig med at billeddetaljer og farver opretholdes, hvilket er meget vigtig information til at repræsentere den originale scene. Fungerer i øjeblikket kun, når der omkodes videoer med indlejret HDR10- eller HLG-metadata. Hvis afspilningen ikke er jævn eller mislykkes, skal du overveje at slukke for den tilsvarende hardwaredekoder.", + "LabelCurrentStatus": "Aktuel status:", + "LabelChromecastVersion": "Chromecast Version", + "LabelAutomaticDiscoveryHelp": "Tillad, at applikationer automatisk finder Jellyfin ved hjælp af UDP-port 7359.", + "LabelAutomaticDiscovery": "Aktivér automatisk opdagelse:", + "LabelAutoDiscoveryTracing": "Aktivér sporing af automatisk opdagelse.", + "Image": "Billede", + "HeaderUploadSubtitle": "Overfør undertekster", + "HeaderSyncPlaySelectGroup": "Tilslut en gruppe", + "HeaderSyncPlayEnabled": "SyncPlay aktiveret", + "HeaderServerAddressSettings": "Server Adresse Indstillinger", + "HeaderPortRanges": "Brandmur og Proxy indstillinger", + "HeaderNewRepository": "Nyt arkiv", + "HeaderNetworking": "IP Protokoller", + "HeaderDVR": "DVR", + "HeaderDeleteDevices": "Fjern alle enheder", + "HeaderDebugging": "Fejlfinding og sporing", + "HeaderAutoDiscovery": "Netværksopdagelse", + "HeaderAddUser": "Tilføj bruger", + "HeaderAddUpdateSubtitle": "Tilføj/Opdater undertekster", + "EnableQuickConnect": "Aktiver quick connect på denne server", + "EnableFasterAnimationsHelp": "Brug hurtigere animationer og overgange", + "EnableFasterAnimations": "Hurtigere animationer", + "DisablePlugin": "Deaktiver", + "EnablePlugin": "Aktiver", + "DirectPlayHelp": "Kilde filen er kompatibel med denne klient, og modtager filen uden brug af omkodning.", + "EnableEnhancedNvdecDecoder": "Aktiver forbedret NVDEC-dekoder", + "MessagePlaybackError": "Der opstod en fejl under afspilning af denne fil på din Google Cast modtager.", + "MessageChromecastConnectionError": "Din Google Cast modtager kan ikke komme i kontakt med Jellyfin serveren. Undersøg venligst forbindelsen og prøv igen.", + "LabelPlaybackInfo": "Afspilningsinformation", + "Remuxing": "Remuxing", + "AspectRatioFill": "Udfyld", + "AspectRatioCover": "Cover", + "EnableFallbackFont": "Aktiver fald tilbage på skrifttype", + "Writers": "Forfattere", + "ViewAlbumArtist": "Vis album kunstner", + "VideoAudio": "Video Lyd", + "Video": "Video", + "TabRepositories": "Arkiver", + "SyncPlayGroupDefaultTitle": "{0}'s gruppe", + "Subtitle": "Undertekster", + "StopPlayback": "Stop afspilning", + "SpecialFeatures": "Særlige funktioner", + "ShowMore": "Vis mere", + "ShowLess": "Vis mindre", + "SelectServer": "Vælg server", + "SaveChanges": "Gem ændringer", + "Restart": "Genstart", + "ResetPassword": "Nulstil adgangskode", + "QuickConnectNotAvailable": "Bed din server administrator om at aktivere quick connect", + "QuickConnectNotActive": "Quick connect er ikke aktiveret på denne server", + "QuickConnectInvalidCode": "Ugyldig quick connect kode", + "QuickConnectDescription": "For at logge ind med quick connect, vælg Quick Connect knappen på den enhed du er logget ind fra og indtast den viste kode nedenfor.", + "QuickConnectDeactivated": "Quick connect var deaktiveret før log ind anmodningen kunne blive godkendt", + "QuickConnectAuthorizeSuccess": "Anmodning godkendt", + "QuickConnectAuthorizeFail": "Ukendt quick connect kode", + "QuickConnectAuthorizeCode": "Angiv kode {0} for at logge ind", + "QuickConnectActivationSuccessful": "Aktivering blev gennemført", + "QuickConnect": "Quick Connect", + "PluginFromRepo": "{0} fra arkiv {1}", + "Profile": "Profil", + "PreviousTrack": "Gå til forrige", + "Preview": "Forhåndsvisning", + "PosterCard": "Plakatkort", + "Poster": "Plakater", + "PlaybackRate": "Afspilningshastighed", + "Photo": "Foto", + "Other": "Andet", + "OptionMaxActiveSessionsHelp": "En værdi på 0 vil deaktivere denne funktion.", + "OptionMaxActiveSessions": "Angiver det maksimale antal samtidige bruger sessioner.", + "OptionAllowContentDownloadHelp": "Brugere kan hente media og gemme det på deres enheder. Dette er ikke det samme som en sync funktion. Bog biblioteker kræver dette aktiveres for at fungere ordentlig.", + "OptionAllowContentDownload": "Tillad hentning af media", + "NextTrack": "Spring til næste", + "MusicVideos": "Musik videoer", + "MillisecondsUnit": "ms", + "MessageSyncPlayUserLeft": "{0} har forladt gruppen.", + "MessageSyncPlayUserJoined": "{0} deltager i gruppen.", + "MessageSyncPlayPlaybackPermissionRequired": "Afspilningsrettigheder påkrævet.", + "MessageSyncPlayNoGroupsAvailable": "Ingen grupper tilgængelige. Du skal afspille noget først.", + "MessageSyncPlayLibraryAccessDenied": "Adgang til dette indhold er begrænset.", + "MessageSyncPlayJoinGroupDenied": "Kan ikke tilslutte gruppe.", + "MessageSyncPlayIsDisabled": "Rettigheder påkrævet for at bruge SyncPlay.", + "MessageSyncPlayGroupDoesNotExist": "Kunne ikke tilslutte gruppe, da den ikke findes.", + "MessageSyncPlayErrorNoActivePlayer": "Ingen aktive afspiller blev fundet. SyncPlay er blevet deaktiveret.", + "MessageSyncPlayErrorMissingSession": "Fejlede under aktivering af SyncPlay! Mangler session.", + "MessageSyncPlayErrorMedia": "Fejlede under aktivering af SyncPlay! Media fejl.", + "MessageSyncPlayErrorAccessingGroups": "Der opstod en fejl under indlæsningen af gruppelisten.", + "MessageSyncPlayEnabled": "SyncPlay aktiveret", + "MessageSyncPlayDisabled": "SyncPlay deaktiveret.", + "MessageSyncPlayCreateGroupDenied": "Rettigheder påkrævet for at oprette en gruppe.", + "MessagePluginInstallError": "Der opstod en fejl under installationen af tilføjelsen.", + "MessageNoRepositories": "Ingen arkiver.", + "LabelUnstable": "Ustabil", + "LabelSyncPlayTimeSyncOffset": "Tid tærskel:", + "LabelSyncPlaySyncMethod": "Synkroniseringsmetode:", + "LabelSyncPlayResumePlaybackDescription": "Deltag i gruppeafspilning", + "LabelSyncPlayResumePlayback": "Fortsæt lokal afspilning", + "LabelSyncPlayNewGroupDescription": "Opret en ny gruppe", + "LabelSyncPlayNewGroup": "Ny gruppe", + "LabelSyncPlayLeaveGroupDescription": "Deaktiver SyncPlay", + "LabelSyncPlayLeaveGroup": "Forlad gruppe", + "LabelSyncPlayHaltPlaybackDescription": "Og ignorer nuværende afspilningslistes opdateringer", + "LabelSyncPlayHaltPlayback": "Stop lokal afspilning", + "LabelSyncPlayAccessNone": "Deaktiveret for denne bruger", + "LabelSyncPlayAccessJoinGroups": "Tillad bruger at tilslutte grupper", + "LabelSyncPlayAccessCreateAndJoinGroups": "Tillad bruger at oprette og tilslutte grupper", + "LabelSyncPlayAccess": "SyncPlay adgang", + "LabelSubtitleVerticalPosition": "Lodret position:", + "LabelStable": "Stabil", + "LabelSSDPTracingFilter": "SSDP Filter:", + "LabelRequireHttpsHelp": "Hvis afkrydset, vil serveren automatisk omdirigere alle anmodninger over HTTP til HTTPS. Dette har ingen indflydelse hvis serveren ikke lytter på HTTPS", + "LabelRequireHttps": "Kræv HTTPS", + "LabelRepositoryUrl": "Arkiv URL", + "LabelRepositoryName": "Arkiv navn", + "LabelQuickConnectCode": "Quick connect kode:", + "LabelPublishedServerUri": "Udgivne server-URI'er:", + "LabelOpenclDevice": "OpenCL Enhed:", + "LabelIsForced": "Tvunget", + "LabelH265Crf": "H265 kodning CRF:", + "LabelEnableSSDPTracing": "Aktiver SSDP sporing:", + "LabelEnableIP6Help": "Aktiverer IPv6 funktionalitet.", + "LabelEnableIP6": "Aktiver IPv6:", + "LabelEnableIP4Help": "Aktiver IPv4 funktionalitet.", + "LabelEnableIP4": "Aktiver IPv4:", + "LabelEnableHttpsHelp": "Lyt på den konfigurerede HTTPS port. Det er nødvendigt først at have et gyldigt SSL certifikat.", + "LabelEnableHttps": "Aktiver HTTPS" } diff --git a/src/strings/de.json b/src/strings/de.json index 9e499ed4e5..48a080f4e5 100644 --- a/src/strings/de.json +++ b/src/strings/de.json @@ -1264,7 +1264,7 @@ "Movie": "Film", "Episode": "Episode", "Artist": "Künstler", - "AlbumArtist": "Album Künstler", + "AlbumArtist": "Albumkünstler", "Album": "Album", "BoxSet": "Box Set", "Yadif": "YADIF", @@ -1505,8 +1505,8 @@ "AllowVppTonemappingHelp": "Vollständig hardwarebasiertes Tone-Mapping ohne Verwendung von OpenCL-Filter. Funktioniert derzeit nur bei der Transcodierung von Videos mit eingebetteten HDR10-Metadaten.", "EnableVppTonemapping": "VPP-Tone-Mapping einschalten", "EnableEnhancedNvdecDecoder": "Erweiterten NVDEC-Decoder einschalten", - "DisablePlugin": "Plugin deaktivieren", - "EnablePlugin": "Plugin aktivieren", + "DisablePlugin": "Deaktivieren", + "EnablePlugin": "Aktivieren", "Framerate": "Bildrate", "DirectPlayHelp": "Die Quelldatei ist vollständig mit diesem Client kompatibel, und die Sitzung empfängt die Datei ohne Änderungen." } diff --git a/src/strings/en-gb.json b/src/strings/en-gb.json index a863660bc1..35d010ced9 100644 --- a/src/strings/en-gb.json +++ b/src/strings/en-gb.json @@ -1457,8 +1457,8 @@ "LabelEnableIP4Help": "Enables IPv4 functionality.", "LabelEnableIP4": "Enable IPv4:", "HeaderNetworking": "IP Protocols", - "EnablePlugin": "Enable Plugin", - "DisablePlugin": "Disable Plugin", + "EnablePlugin": "Enable", + "DisablePlugin": "Disable", "YoutubeDenied": "Requested video is not allowed to be played in embedded players.", "YoutubeNotFound": "Video not found.", "YoutubePlaybackError": "Requested video cannot be played.", @@ -1501,5 +1501,12 @@ "LabelMinAudiobookResumeHelp": "Titles are assumed unplayed if stopped before this time.", "LabelMinAudiobookResume": "Minimum Audiobook resume in minutes:", "LabelMaxAudiobookResumeHelp": "Titles are assumed fully played if stopped after this time.", - "LabelMaxAudiobookResume": "Maximum Audiobook resume in minutes:" + "LabelMaxAudiobookResume": "Maximum Audiobook resume in minutes:", + "AllowVppTonemappingHelp": "Full hardware based tone mapping without using OpenCL filter. Currently works only when transcoding videos with enbedded HDR10 metadata.", + "EnableVppTonemapping": "Enable VPP Tone mapping", + "EnableEnhancedNvdecDecoder": "Enable enhanced NVDEC decoder", + "MessagePlaybackError": "There was an error playing this file on your Google Cast receiver.", + "MessageChromecastConnectionError": "Your Google Cast receiver is unable to contact the Jellyfin server. Please check the connection and try again.", + "Framerate": "Framerate", + "DirectPlayHelp": "The source file is entirely compatible with this client, and the session is receiving the file without modifications." } diff --git a/src/strings/en-us.json b/src/strings/en-us.json index ade8bf9d58..64dbf801ab 100644 --- a/src/strings/en-us.json +++ b/src/strings/en-us.json @@ -180,8 +180,8 @@ "DirectStreamHelp1": "The video stream is compatible with the device, but has an incompatible audio format (DTS, TRUEHD, etc) or number of audio channels. The video stream will be repackaged losslessly on the fly before being sent to the device. Only the audio stream will be transcoded.", "DirectStreamHelp2": "Power consumed by direct streaming usually depends on the audio profile. Only the video stream is lossless.", "DirectStreaming": "Direct streaming", - "EnablePlugin": "Enable Plugin", - "DisablePlugin": "Disable Plugin", + "EnablePlugin": "Enable", + "DisablePlugin": "Disable", "Disc": "Disc", "Disconnect": "Disconnect", "Display": "Display", @@ -489,7 +489,7 @@ "ItemCount": "{0} items", "Items": "Items", "Kids": "Kids", - "KnownProxiesHelp": "Comma separated list of IP addresses of known proxies used when connecting to your Jellyfin instance. This is required to make proper use of X-Forwarded-For headers. Requires a reboot after saving.", + "KnownProxiesHelp": "Comma separated list of IP addresses or hostnames of known proxies used when connecting to your Jellyfin instance. This is required to make proper use of X-Forwarded-For headers. Requires a reboot after saving.", "Label3DFormat": "3D format:", "LabelAbortedByServerShutdown": "(Aborted by server shutdown)", "LabelAccessDay": "Day of week:", diff --git a/src/strings/eo.json b/src/strings/eo.json index f071913c63..a4d11aeee5 100644 --- a/src/strings/eo.json +++ b/src/strings/eo.json @@ -28,5 +28,11 @@ "Collections": "Kolektoj", "Channels": "Kanaloj", "Books": "Libroj", - "Artists": "Artistoj" + "Artists": "Artistoj", + "AlwaysPlaySubtitles": "", + "AllLibraries": "Ĉiaj libraroj", + "Songs": "Kantoj", + "Playlists": "Ludlistoj", + "Photos": "Fotoj", + "Genres": "Ĝenroj" } diff --git a/src/strings/es-ar.json b/src/strings/es-ar.json index 7177e8fb87..c026dfe9f4 100644 --- a/src/strings/es-ar.json +++ b/src/strings/es-ar.json @@ -1506,5 +1506,7 @@ "EnableVppTonemapping": "Habilitar el mapeo de tonos VPP", "EnableEnhancedNvdecDecoder": "Habilitar decodificador NVDEC mejorado", "DisablePlugin": "Deshabilitar Plugin", - "EnablePlugin": "Habilitar Pugin" + "EnablePlugin": "Habilitar Plugin", + "Framerate": "Tasa de Cuadros", + "DirectPlayHelp": "El Archivo fuente es enteramente compatible con este cliente y la sesión esta recibiendo el archivo sin modificaciones" } diff --git a/src/strings/es-mx.json b/src/strings/es-mx.json index 2fa0cef308..19a739d1af 100644 --- a/src/strings/es-mx.json +++ b/src/strings/es-mx.json @@ -1249,7 +1249,7 @@ "PlaybackErrorNoCompatibleStream": "Este cliente no es compatible con los medios y el servidor no está enviando un formato de medios compatible.", "Person": "Persona", "OptionRandom": "Aleatorio", - "OptionForceRemoteSourceTranscoding": "Forzar transcodificación de fuentes remotas (como TV en vivo)", + "OptionForceRemoteSourceTranscoding": "Forzar transcodificación de fuentes remotas como TV en vivo", "NoCreatedLibraries": "Parece que no has creado ninguna biblioteca todavía. {0}¿Quisieras crear una ahora?{1}", "Movie": "Película", "MessageConfirmAppExit": "¿Deseas salir?", @@ -1496,6 +1496,17 @@ "LabelSyncPlayHaltPlaybackDescription": "Y también ignorar las actualizaciones de la lista actual", "LabelSyncPlayHaltPlayback": "Detener reproducción local", "LabelEnableSSDPTracingHelp": "Habilitar el registro detallado del seguimiento de red SSDP.
ADVERTENCIA: Esto causará una seria degradación del rendimiento.", - "DisablePlugin": "Deshabilitar Extensión", - "EnablePlugin": "Habilitar Extensión" + "DisablePlugin": "Deshabilitar", + "EnablePlugin": "Habilitar", + "AllowVppTonemappingHelp": "Mapeo de tonos completo basado en hardware sin usar el filtro OpenCL. Actualmente solo funciona cuando se transcodifican videos con metadatos HDR10 incrustados.", + "EnableVppTonemapping": "Habilitar el mapeo de tonos VPP", + "EnableEnhancedNvdecDecoder": "Habilitar decodificador NVDEC mejorado", + "MessagePlaybackError": "Se produjo un error al reproducir este archivo en su receptor Google Cast.", + "MessageChromecastConnectionError": "Su receptor de Google Cast no puede comunicarse con el servidor de Jellyfin. Comprueba la conexión y vuelve a intentarlo.", + "LabelMinAudiobookResumeHelp": "Se asume que los títulos no se reproducen si se detienen antes de este tiempo.", + "LabelMinAudiobookResume": "Reanudación minima de audiolibros en minutos:", + "LabelMaxAudiobookResumeHelp": "Se asume que los títulos están completamente reproducidos si se detienen después de este tiempo.", + "LabelMaxAudiobookResume": "Reanudación máxima de audiolibros en minutos:", + "Framerate": "Cuadros por segundo", + "DirectPlayHelp": "El archivo de origen es totalmente compatible con este cliente y la sesión recibe el archivo sin modificaciones." } diff --git a/src/strings/fr-ca.json b/src/strings/fr-ca.json index 4230869ecf..814dc4e987 100644 --- a/src/strings/fr-ca.json +++ b/src/strings/fr-ca.json @@ -642,7 +642,7 @@ "LabelDownMixAudioScale": "Booster l'audio lors du downmix :", "LabelBitrate": "Débit binaire :", "LabelDidlMode": "Mode DIDL :", - "LabelDeinterlaceMethod": "Méthode pour dénouer :", + "LabelDeinterlaceMethod": "Méthode pour désentrelacer :", "LabelDefaultUserHelp": "Détermine quelle médiathèque d'utilisateur devrait être affichée sur les appareils connectés. Ceci peut être contourné pour chaque appareil qui utilise des profils.", "LabelDateTimeLocale": "Date et heure local :", "LabelDateAddedBehaviorHelp": "Si une valeur métadonnée est présente, elle va toujours être utilisée avant les autres options.", @@ -652,12 +652,59 @@ "LabelCustomCertificatePathHelp": "Chemin vers un fichier PKCS #12 contenant un certificat et une clé privée pour activer le support TLS sur un domaine personnalisé.", "LabelCustomCertificatePath": "Chemin du certificat SSL personnalisé :", "LabelCreateHttpPortMap": "Activer le port mapping automatique pour le trafic http et https.", - "LabelCreateHttpPortMapHelp": "Permettre le port mapping automatique pour créer une règle pour le trafic http en addition au trafic https.", + "LabelCreateHttpPortMapHelp": "Permettre le mappage automatique des ports pour créer une règle pour le trafic http en plus du traffic https.", "LabelCorruptedFrames": "Images corrompues :", "LabelCriticRating": "Évaluation de la critique :", "LabelCommunityRating": "Évaluation de la communauté :", "LabelCachePathHelp": "Spécifier une location personnalisée pour les fichiers cache du serveur, comme les images. Laissé vide pour utiliser la valeur par défaut.", - "LabelBlastMessageInterval": "Interval du message Alive", + "LabelBlastMessageInterval": "Intervalle du message 'Alive'", "LabelBindToLocalNetworkAddressHelp": "Contourne l'adresse IP locale pour celle du serveur HTTP. Si laissé vide, le serveur va se lier à toutes les adresses disponibles. Changer cette valeur nécessite un redémarrage.", - "LabelAlbumArtHelp": "PN utilisé pour les pochettes d'album, dans l’attribut dlna:profileID de upnp:albumArtURi. Certains appareils nécessitent une valeur spécifique, peu importe la taille de l'image." + "LabelAlbumArtHelp": "PN utilisé pour les pochettes d'album, dans l’attribut dlna:profileID de upnp:albumArtURi. Certains appareils nécessitent une valeur spécifique, peu importe la taille de l'image.", + "ServerNameIsRestarting": "Le serveur à {0} redémarre.", + "SeriesYearToPresent": "{0} - Aujourd'hui", + "SeriesSettings": "Paramètres des séries", + "SeriesDisplayOrderHelp": "Trier les épisodes par date de sortie, DVD ou numérotation absolue.", + "Series": "Séries", + "SendMessage": "Envoyer un message", + "SelectServer": "Sélectionnez le serveur", + "SelectAdminUsername": "Sélectionnez un nom d'utilisateur pour le compte d'administrateur.", + "Season": "Saison", + "SearchResults": "Résultats de recherche", + "SearchForMissingMetadata": "Rechercher les métadonnées manquantes", + "SearchForCollectionInternetMetadata": "Rechercher les couvertures et les métadonnées sur internet", + "Screenshots": "Captures d'écran", + "LabelTitle": "Titre :", + "LabelTimeLimitHours": "Limite de temps (heures) :", + "LabelTime": "Temps :", + "LabelTheme": "Thème :", + "LabelTextSize": "Taille du texte :", + "LabelTextColor": "Couleur du texte :", + "LabelTextBackgroundColor": "Couleur de fond du texte :", + "LabelTagline": "Slogan :", + "LabelEnableAutomaticPortMap": "Active le mappage automatique des ports", + "LabelEmbedAlbumArtDidlHelp": "Certains appareils préfèrent cette méthode pour obtenir les couvertures d'album. Certains autres pourraient échouer lors de la lecture avec cette option activée.", + "LabelDropSubtitleHere": "Ajoutez les sous-titres ici, ou cliquez pour sélectionner.", + "LabelDroppedFrames": "Images perdues :", + "Framerate": "Images par seconde", + "DisablePlugin": "Désactiver", + "EnablePlugin": "Activer", + "DirectPlayHelp": "Le fichier source est entièrement compatible avec ce client, et la session reçoit le fichier sans modifications.", + "ShowAdvancedSettings": "Afficher les paramètres avancés", + "SettingsWarning": "Le changement de ces valeurs peut causer une instabilité ou des erreurs de connexion. Si vous rencontrez des problèmes, nous vous recommandons de restaurer les valeurs par défaut.", + "SettingsSaved": "Paramètres sauvegardés.", + "Settings": "Paramètres", + "ServerRestartNeededAfterPluginInstall": "Jellyfin va nécessiter un redémarrage après l'installation d'un plugin.", + "ServerNameIsShuttingDown": "Le serveur à {0} s'arrête.", + "Smart": "Intelligent", + "Smaller": "Plus petit", + "SmallCaps": "Lettres minuscules", + "Small": "Petit", + "SkipEpisodesAlreadyInMyLibraryHelp": "Les épisodes seront comparés en utilisant les saisons et les numéros d'épisodes, si disponibles.", + "Schedule": "Planning", + "ScanLibrary": "Scanner la bibliothèque", + "SubtitleAppearanceSettingsAlsoPassedToCastDevices": "Ces paramètres s'appliquent également à toute lecture Chromecast démarrée par cet appareil.", + "Subtitle": "Sous-titres", + "Studios": "Studios", + "StopRecording": "Arrêter d'enregistrer", + "Sports": "Sports" } diff --git a/src/strings/fr.json b/src/strings/fr.json index fcd50a676b..5033758b1b 100644 --- a/src/strings/fr.json +++ b/src/strings/fr.json @@ -1502,11 +1502,11 @@ "LabelMaxAudiobookResumeHelp": "Les titres seront considérés comme lus entièrement si stoppés après ce temps.", "MessagePlaybackError": "Une erreur s'est produite lors de la lecture de ce fichier sur votre récepteur Google Cast.", "MessageChromecastConnectionError": "Votre récepteur Google Cast ne parvient pas à contacter le serveur Jellyfin. Veuillez vérifier la connexion et réessayer.", - "AllowVppTonemappingHelp": "Mappage ton local purement matériel et n'utilisant pas de filtre OpenCL. Ne fonctionne actuellement que lors du transcodage de vidéos contenant des métadonnées HDR10.", + "AllowVppTonemappingHelp": "Mappage de ton local purement matériel et n'utilisant pas de filtre OpenCL. Ne fonctionne actuellement que lors du transcodage de vidéos contenant des métadonnées HDR10.", "EnableVppTonemapping": "Activer le mappage ton local VPP", "EnableEnhancedNvdecDecoder": "Activer le décodeur NVDEC amélioré", "Framerate": "Images par seconde", - "DisablePlugin": "Désactiver l'extension", - "EnablePlugin": "Activer l'extension", + "DisablePlugin": "Désactiver", + "EnablePlugin": "Activer", "DirectPlayHelp": "Le fichier source est entièrement compatible avec le client et la session reçoit le fichier sans modifications." } diff --git a/src/strings/gl.json b/src/strings/gl.json index 603fe1f298..621acc33d5 100644 --- a/src/strings/gl.json +++ b/src/strings/gl.json @@ -1,7 +1,7 @@ { "AllowMediaConversion": "Permitir a conversión dos medios", "AllComplexFormats": "Todos os formatos complexos (ASS, SSA, VOBSUB, PGS, SUB/IDX, etc.)", - "AllLibraries": "Todas as librarías", + "AllLibraries": "Todas as bibliotecas", "AllLanguages": "Todas as linguas", "AllEpisodes": "Todos os episodios", "All": "Todo", @@ -24,5 +24,23 @@ "Genres": "Xéneros", "Folders": "Cartafoles", "Favorites": "Favoritos", - "Default": "Por defecto" + "Default": "Por defecto", + "Sync": "Sincronizar", + "Songs": "Cancións", + "Shows": "Programas", + "ApiKeysCaption": "Lista das claves API activadas neste momento", + "Anytime": "Calquer Momento", + "AnyLanguage": "Calquera Lingua", + "AllowRemoteAccess": "Permitir conexións remotas a este servidor.", + "AllowMediaConversionHelp": "Permitir ou denegar aceso á función de conversión de medios.", + "AllowFfmpegThrottling": "Acelerar Transcodificacións", + "AllowedRemoteAddressesHelp": "Lista separada por comas das direcións IP ou entradas de máscara de rede para redes ás que se permitirá conectar remotamente. En branco, calquera direción remota será permitida.", + "AlbumArtist": "Artista do Álbume", + "Album": "Álbume", + "AddToPlayQueue": "Engadir á coda de reprodución", + "AddToCollection": "Engadir á coleción", + "AdditionalNotificationServices": "Navega o catálogo de plugins para instalar servicios de notificación adicionáis.", + "AddedOnValue": "Engadido {0}", + "Playlists": "Listas de reproducción", + "Photos": "Fotos" } diff --git a/src/strings/hu.json b/src/strings/hu.json index 6f7d4f43b2..0dc507625e 100644 --- a/src/strings/hu.json +++ b/src/strings/hu.json @@ -1215,7 +1215,7 @@ "LabelXDlnaCap": "X-DLNA cap:", "MapChannels": "Csatornák feltérképezése", "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", + "OptionResElement": "Res elem", "OptionReportByteRangeSeekingWhenTranscodingHelp": "Erre olyan készülékek esetében van szükség, amelyek időigénye nem nagyon jó.", "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\".", @@ -1374,7 +1374,7 @@ "ButtonActivate": "Aktiválás", "Authorize": "Felhatalmaz", "Bwdif": "BWDIF", - "SpecialFeatures": "Speciális funkciók", + "SpecialFeatures": "Speciális tartalmak", "QuickConnectNotActive": "A gyors csatlakozás nem engedélyezett ezen a szerveren", "QuickConnectNotAvailable": "Kérd meg a szerver adminisztrátorát, hogy engedélyezze a gyors csatlakozást", "QuickConnectInvalidCode": "Érvénytelen csatlakozási kód", @@ -1480,7 +1480,7 @@ "LabelAutomaticDiscovery": "Az automatikus felfedezés engedélyezése:", "LabelAutoDiscoveryTracingHelp": "Ha engedélyezve van, az automatikus felfedező porton fogadott csomagok naplózásra kerülnek.", "LabelAutoDiscoveryTracing": "Engedélyezze az automatikus felfedezés nyomkövetését.", - "KnownProxiesHelp": "Vesszővel elválasztott lista az ismert IP-címeiről, amelyeket a Jellyfin példányhoz való csatlakozáskor használnak. Erre az X-Forwarded-For fejlécek megfelelő használatához van szükség. Mentés után újra kell indítani.", + "KnownProxiesHelp": "Vesszővel elválasztott lista az ismert IP-címeiről vagy gazdagép neveiről, amelyeket a Jellyfin példányhoz való csatlakozáskor használnak. Erre az X-Forwarded-For fejlécek megfelelő használatához van szükség. Mentés után újra kell indítani.", "HeaderUploadSubtitle": "Felirat Feltöltése", "HeaderPortRanges": "Tűzfal és Proxy beállítások", "HeaderNetworking": "IP protokollok", @@ -1505,8 +1505,8 @@ "LabelMinAudiobookResume": "A hangoskönyv minimális folytatása percekben:", "LabelMaxAudiobookResumeHelp": "A címeket teljesen lejátszottnak tekintjük, ha ezen idő után fejezed be.", "LabelMaxAudiobookResume": "A hangoskönyv maximális folytatása percekben:", - "DisablePlugin": "Beépülő modul letiltása", - "EnablePlugin": "Beépülő modul engedélyezése", + "DisablePlugin": "Letiltás", + "EnablePlugin": "Engedélyezés", "Framerate": "Filmkocka szám", "DirectPlayHelp": "A forrásfájl teljes mértékben kompatibilis ezzel az klienssel, és a munkamenet módosítások nélkül fogadja a fájlt." } diff --git a/src/strings/it.json b/src/strings/it.json index c53e706217..b67ad60f67 100644 --- a/src/strings/it.json +++ b/src/strings/it.json @@ -1486,7 +1486,27 @@ "AspectRatioCover": "Copertina", "SyncPlayGroupDefaultTitle": "Gruppo di {0}", "AllowHevcEncoding": "Permetti codifica in formato HEVC", - "DisablePlugin": "Disabilita Plugin", - "EnablePlugin": "Abilita Plugin", - "DirectPlayHelp": "Il file sorgente è totalmente compatibile con questo client e la sessione lo sta ricevendo senza alcuna modifica." + "DisablePlugin": "Disabilita", + "EnablePlugin": "Abilita", + "DirectPlayHelp": "Il file sorgente è totalmente compatibile con questo client e la sessione lo sta ricevendo senza alcuna modifica.", + "AllowVppTonemappingHelp": "La mappatura toni avviene interamente sull'hardware senza utilizzo di filtri OpenCL. Al momento funziona solamente durante transcodifica di video con integrato metadata HDR10.", + "EnableVppTonemapping": "Abilita la mappatura dei toni per VPP", + "EnableEnhancedNvdecDecoder": "Abilita l'enhanced NVDEC decoder", + "PreferFmp4HlsContainerHelp": "Preferisci l'utilizzo di fMP4 come contenitore predefinito per HLS, permettendo lo streaming diretto di contenuti HEVC nei dispositivi che lo supportano.", + "PreferFmp4HlsContainer": "Preferisci fMP4-HLS Media Container", + "LabelOriginalMediaInfo": "Info Contenuti Originali", + "LabelRemuxingInfo": "Info Remuxing", + "LabelDirectStreamingInfo": "Info Direct Stream", + "RemuxHelp2": "Il Remux usa pochissima potenza di calcolo senza perdite di qualità nel contenuto.", + "RemuxHelp1": "I contenuti sono in un contenitore file è incompatibile (MKV, AVI, WMV, etc) ma sia il video che l'audio sono compatibili con il dispositivo. I contenuti saranno impacchettati nuovamente al volo prima di essere inviati al dispositivo senza perdita di qualità.", + "Remuxing": "Remuxing", + "EnableFallbackFontHelp": "Abilita font personalizzati. Questo può evitare alcuni problemi di rendering dei sottotitoli.", + "EnableFallbackFont": "Abilita i font di riserva", + "LabelFallbackFontPathHelp": "Specificare un percorso contenente font di riserva per sottotitoli ASS/SSA. La dimensione totale massima permessa è 20MB. Sono consigliati formati font leggeri e orientati all'utilizzo web come woff2.", + "LabelFallbackFontPath": "Percorso della cartella dei font di riserva:", + "HeaderSelectFallbackFontPathHelp": "Esplora o inserisci il percorso della cartella contenete i font di riserva per i sottotitoli ASS/SSA.", + "HeaderSelectFallbackFontPath": "Selezionare il percorso della cartella contenente i font di riserva", + "LabelTonemappingThresholdHelp": "L'algoritmo di mappatura dei toni viene adattato per ogni scena e la soglia è utilizzata per rilevare cambiamenti di scena. Se la distanza tra la luminosità media del frame corrente e quella della scena corrente superano la soglia, la luminosità media e di picco della scena verranno ricalcolate. I valori predefiniti e raccomandati sono 0.8 e 0.2.", + "Framerate": "Framerate", + "LabelTonemappingPeakHelp": "Sovrascrive il segnale nominale/picco/di riferimento con questo valore. Utile quando le informazioni di picco incorporate nei metadati di visualizzazione non sono affidabili o quando si esegue la mappatura dei toni da una gamma inferiore a una gamma più alta. I valori consigliati e predefiniti sono 100 e 0." } diff --git a/src/strings/ja.json b/src/strings/ja.json index 1344302af9..0211dff544 100644 --- a/src/strings/ja.json +++ b/src/strings/ja.json @@ -449,7 +449,7 @@ "LabelDidlMode": "DIDLモード:", "LabelEmbedAlbumArtDidl": "DIDLのアルバムアートを埋め込む", "LabelFailed": "失敗", - "LabelEncoderPreset": "H264エンコーディングプリセット:", + "LabelEncoderPreset": "エンコーディングプリセット:", "LabelHardwareAccelerationType": "ハードウェアアクセラレーション:", "LabelH264Crf": "H264エンコーディングCRF:", "LabelHttpsPortHelp": "HTTPS サーバーのTCPポート番号。", @@ -1162,7 +1162,7 @@ "MessageSyncPlayErrorNoActivePlayer": "アクティブなプレーヤーが見つかりません。SyncPlayは無効になりました。", "MessageSyncPlayErrorAccessingGroups": "グループリストへのアクセス中にエラーが発生しました。", "MessageSyncPlayLibraryAccessDenied": "このコンテンツへのアクセスは制限されています。", - "MessageSyncPlayJoinGroupDenied": "SyncPlayを使用するには権限が必要です。", + "MessageSyncPlayJoinGroupDenied": "グループに参加できません。", "MessageSyncPlayCreateGroupDenied": "グループ作成の権限が必要です。", "MessageSyncPlayGroupDoesNotExist": "グループが存在しないため参加できませんでした。", "MessageSyncPlayPlaybackPermissionRequired": "再生の権限が必要です。", @@ -1461,5 +1461,26 @@ "HeaderDebugging": "デバッグとトレース", "HeaderAutoDiscovery": "ネットワーク探索", "HeaderAddUser": "ユーザーを追加", - "HeaderAddUpdateSubtitle": "字幕を追加または更新" + "HeaderAddUpdateSubtitle": "字幕を追加または更新", + "LabelSelectStereo": "ステレオ", + "LabelSelectMono": "モノラル", + "LabelSyncPlayInfo": "SyncPlay情報", + "LabelTranscodingInfo": "トランズコーデイング情報", + "LabelVideoInfo": "ビデオ情報", + "LabelAudioInfo": "オウディオ情報", + "LabelPlaybackInfo": "再生インフォ", + "RemuxHelp2": "Remuxは完全にロスレスのメディア品質であり、処理能力をほとんど使用しません。", + "AspectRatioFill": "フイル", + "AspectRatioCover": "カバー", + "SyncPlayGroupDefaultTitle": "{0} のグループ", + "PluginFromRepo": "{1} リポジトリから{0}", + "MessageSyncPlayIsDisabled": "SyncPlay 使用するには許可が必要です。", + "LabelSyncPlayTimeSyncOffset": "時間オフセット:", + "LabelSyncPlayResumePlayback": "ローカル再生を再開", + "LabelSyncPlayHaltPlayback": "ローカル再生を止まる", + "LabelSSDPTracingFilter": "SSDP フイルター:", + "Framerate": "フレームレート", + "DisablePlugin": "無効する", + "EnablePlugin": "有効する", + "DirectPlayHelp": "元のファイルはこのクライアントと完全に互換性があり、セッションは変更なしでファイルを受信しています。" } diff --git a/src/strings/kk.json b/src/strings/kk.json index 83cb55bcde..59044d04f8 100644 --- a/src/strings/kk.json +++ b/src/strings/kk.json @@ -18,11 +18,11 @@ "AllEpisodes": "Barlyq telebölımder", "AllLanguages": "Barlyq tılder", "AllLibraries": "Barlyq tasyğyşhanalar", - "AllowHWTranscodingHelp": "Ağyndardy naqty uaqytta qaita kodtauğa tünerge mümkındık beredı. Būl server arqyly qaita kodtau talabyn azaituğa kömektesuı mümkın.", + "AllowHWTranscodingHelp": "Ağyndardy naqty uaqytta qaita kodtau üşınğa tünerge mümkındık beredı. Būl server arqyly qaita kodtau talabyn azaituğa kömektesuı mümkın.", "AllowMediaConversion": "Tasyğyşderekterdı türlendıruge rūqsat etu", - "AllowMediaConversionHelp": "Tasyğyşderekterdı türlendıru mümkindıgıne qatynau üşın jol beru nemese tiym salu.", + "AllowMediaConversionHelp": "Tasyğyşderekterdı türlendıru mümkındıgıne qatynau üşın jol beru nemese tyiym salu.", "AllowOnTheFlySubtitleExtraction": "Naqty uaqytta subtitrlerdı şyğaruğa rūqsat etu", - "AllowOnTheFlySubtitleExtractionHelp": "Beine qaita kodtauyna tiym saluğa kömektesu üşın, endırılgen subtitrler beineden şyğarylyp, klientterge kädımgı mätınben jetkızılu mümkın. Keibır jüielerde būğan ūzaq uaqyt ketuı jäne şyğaru ürdısı barysynda beine oinatu toqtatyluy mümkın. Tūtynğyş qūrylğyda olarğa qoldau körsetılmegen kezde, beine qaita kodtalu arqyly endırılgen subtitrler jazyluy üşın ony öşırıŋız.", + "AllowOnTheFlySubtitleExtractionHelp": "Beine qaita kodtauyna tyiym saluğa kömektesu üşın, endırılgen subtitrler beineden şyğarylyp, klientterge kädımgı mätınben jetkızılu mümkın. Keibır jüielerde būğan ūzaq uaqyt ketuı jäne şyğaru ürdısı barysynda beine oinatu toqtatyluy mümkın. Tūtynğyş qūrylğyda olarğa qoldau körsetılmegen kezde, beine qaita kodtalu arqyly endırılgen subtitrler jazyluy üşın ony öşırıŋız.", "AllowRemoteAccess": "Osy serverge syrtqy qosylymdar üşın rūqsat etu.", "AllowRemoteAccessHelp": "Eger jalauşasyz bolsa, baryq syrtqy bailanystar qūrsaulanady.", "AllowedRemoteAddressesHelp": "Qaşyqtan qosyluğa rūqsat etıletın jelıler üşın ütırlermen bölıngen IP-mekenjailary nemese IP/jelılık bürkenış jazbalarynyŋ tızbesı. Eger bos qaldyrylsa, barlyq qaşyqtağy mekenjailarğa rūqsat etıledı.", @@ -52,7 +52,7 @@ "Browse": "Şarlau", "MessageBrowsePluginCatalog": "Qoljetımdı plagindermen tanysu üşın plagin tızımdemesın şolyŋyz.", "BurnSubtitlesHelp": "Beinenı qaita kodtağan kezde server subtitrlerdı jazyuyn anyqtaidy. Onan qaşqaqtau serverdıŋ önımdılıgın bıraz jaqsartady. Suretke negızdelgen pışımderdı (VOBSUB, PGS, SUB, IDX, jäne t.b.) jäne keibır ASS nemese SSA subtitrlerın jazu üşın Avtomattyny taŋdaŋyz.", - "ButtonAddMediaLibrary": "Tasyğyşhana üsteu", + "ButtonAddMediaLibrary": "Tasyğyşhanany üsteu", "ButtonAddScheduledTaskTrigger": "Triger üsteu", "ButtonAddServer": "Server üsteu", "ButtonAddUser": "Paidalanuşy üsteu", @@ -114,7 +114,7 @@ "ConfigureDateAdded": "Üstelıngen künı Taqtadağy Tasyğyşhana parametrlerınde anyqtalady", "ConfirmDeleteImage": "Suret joiylsyn ba?", "ConfirmDeleteItem": "Osy tarmaqty joiğanda, ol fail jüiesınen de, tasyğyşhanaŋyzdan da joiylady. Şynymen jalğastyru qajet pe?", - "ConfirmDeleteItems": "Osy tarmaqtardy joiğanda, olar faildyq jüiesınen de jäne tasyğyşhanaŋyzdan da ekeuınde joiylad. Sız jalğastyru qalaisyz ba? Şynymen jalğastyru qajet pe?", + "ConfirmDeleteItems": "Osy tarmaqtardy joiğanda, olar faildyq jüiesınen de jäne tasyğyşhanaŋyzdan da joiylady. Şynymen jalğastyru qajet pe?", "ConfirmDeletion": "Joiudy rastau", "ConfirmEndPlayerSession": "{0} qūrylğysynda Jellyfin jūmysy aiaqtalsyn ba?", "Connect": "Qosylu", @@ -124,7 +124,7 @@ "CustomDlnaProfilesHelp": "Jaŋa qūrylğy maqsaty üşın teŋşelgen profaildy jasau ne jüielık profaildy qaita anyqtau.", "DateAdded": "Üstelgen künı", "DatePlayed": "Oinatylğan künı", - "DeathDateValue": "Ölgenı: {0}", + "DeathDateValue": "Qaytys bolğany: {0}", "Default": "Ädepkı", "ErrorDefault": "Saual öŋdelu kezınde qate oryn aldy. Ärekettı keiın qaitalaŋyz.", "DefaultMetadataLangaugeDescription": "Būlar sızdıŋ ädepkı mağynalaryŋyz jäne är tasyğyşhana negızınde teŋşeuge bolady.", @@ -132,7 +132,7 @@ "Delete": "Joiu", "DeleteDeviceConfirmation": "Şynymen osy qūrylğy joiylsyn ba? Būl kelesı rette paidalanuşy osydan kırgende qaita paida bolady.", "DeleteImage": "Surettı joiu", - "DeleteImageConfirmation": "Şynymen būl suret joilsyn ba?", + "DeleteImageConfirmation": "Şynymen būl suret joiylsyn ba?", "DeleteMedia": "Tasyğyşderektı joiu", "DeleteUser": "Paidalanuşyny alastau", "DeleteUserConfirmation": "Şynymen osy paidalanuşy joiylsyn ba?", @@ -140,10 +140,10 @@ "Descending": "Kemuı boiynşa", "Desktop": "Jūmys üstelı", "DetectingDevices": "Qūrylğylardy tabuda", - "DeviceAccessHelp": "Būl tek qana bıregei anyqtaluy mümkın qūrylğylar üşın qoldanylady jäne şolğyşpen qantynauğa tyiym salmaidy. Paidalanuşy qūrylğysynan qatynaudy süzgıleuı jaŋa qūrylğylardy mūnda bekıtılgenşe deiın paidalanuğa tyiym salady.", + "DeviceAccessHelp": "Būl tek qana bıregei anyqtaluy mümkın qūrylğylar üşın qoldanylady jäne şolğyşpen qatynauğa tyiym salmaidy. Paidalanuşy qūrylğysynan qatynaudy süzgıleuı jaŋa qūrylğylardy mūnda bekıtılgenşe deiın paidalanuğa tyiym salady.", "DirectPlaying": "Tıkelei oinatuda", - "DirectStreamHelp1": "Beine ağyny qūrylğymen syiysymdy, al syiysymdy emes dybys pışımı (DTS, TRUEHD, jäne t.b.) bar. Beine ağyny qūrylğyğa jіberіlmes būryn naqty uaqytta derekterı joğaltymynsyz qaıta jinaqtalady. Tek dybys ağyny qaita kodtalady.", - "DirectStreamHelp2": "Tіkelei taratu üşın tūtynylatyn quat, ädette, dybys profailyna täueldı. Tek beine ağyny derekterı joğaltymynsyz bolady.", + "DirectStreamHelp1": "Beine ağyny qūrylğymen syiysymdy, al syiysymdy emes dybys pışımı (DTS, TRUEHD, jäne t.b.) bar. Beine ağyny qūrylğyğa jıberılmes būryn naqty uaqytta derekterı joğaltymynsyz qaıta jinaqtalady. Tek dybys ağyny qaita kodtalady.", + "DirectStreamHelp2": "Ädette, tıkelei taratu üşın tūtynylatyn quat dybys profailyna täueldı. Tek beine ağyny derekterı joğaltymynsyz bolady.", "DirectStreaming": "Tıkelei tasymaldanuda", "Director": "Rejisör", "Directors": "Rejisörler", @@ -169,10 +169,10 @@ "EnableBackdropsHelp": "Artqy suretter tasyğyşhanany şolu kezınde keibır betterde öŋde beinelenedı.", "EnableCinemaMode": "Kinoteatr rejımı", "EnableColorCodedBackgrounds": "Tüspen belgılengen öŋder", - "EnableDisplayMirroring": "Beineleudıŋ telnūsqasy", + "EnableDisplayMirroring": "Displeidı şağylystyru", "EnableExternalVideoPlayers": "Syrtqy oinatqyştar", "EnableExternalVideoPlayersHelp": "Syrtqy oinatqyş mäzırı beine oinatudy bastağan kezde körsetıledı.", - "EnableHardwareEncoding": "Apparatyq kodtauudy qosu", + "EnableHardwareEncoding": "Aparattyq kodtaudy qosu", "EnableNextVideoInfoOverlay": "Oinatu kezınde kelesı beine turaly aqparatty körsetu", "EnableNextVideoInfoOverlayHelp": "Beine soŋynda ağymdağy oinatu tızımındegı kelesı beine turaly aqparatty körsetu.", "EnablePhotos": "Fotosuretter", @@ -184,11 +184,11 @@ "Ended": "Aiaqtaldy", "EndsAtValue": "Soŋy {0} kezınde", "Episodes": "Telebölımder", - "ErrorAddingListingsToSchedulesDirect": "Schedūles Dırect tırkelgıŋızge tızbek üsteu kezınde qate oryn aldy. Schedūles Dırect tırkelgısınde tızbekterdıŋ tek qana şekteulı sany ruqsat etıledı. Oryndamas būryn Schedūles Dırect saityna kırıp jäne tırkelgıden basqa tızbelerdı alastau qajet boluy mümkın.", - "ErrorAddingMediaPathToVirtualFolder": "Tasyğyşderekter jolyn üstegen kezınde qate oryn aldy. Jol dūrys ekenıne jäne Jellyfin osy jaiğasymğa qatynaityna köz jetkızıŋız.", + "ErrorAddingListingsToSchedulesDirect": "Schedules Direct tırkelgıŋızge tızbek üsteu kezınde qate oryn aldy. Schedules Direct tırkelgısınde tızbekterdıŋ tek qana şekteulı sany ruqsat etıledı. Oryndamas būryn Schedules Direct saityna kırıp jäne tırkelgıden basqa tızbelerdı alastau qajet boluy mümkın.", + "ErrorAddingMediaPathToVirtualFolder": "Tasyğyşderekter jolyn üstegen kezınde qate oryn aldy. Jol dūrys ekenıne jäne Jellyfin osy ornalasymğa qatynaityna köz jetkızıŋız.", "ErrorAddingTunerDevice": "Tüner qūrylğysyn üsteu kezınde qate oryn aldy. Būl qatynauly ekenıne köz jetkızıŋız de ärekettı qaitalaŋyz.", "ErrorAddingXmlTvFile": "XMLTV-failyna qatynau kezınde qate oryn aldy. Fail bar boluyna köz jetkızıŋız de ärekettı qaitalaŋyz.", - "ErrorDeletingItem": "Server elementın joiu kezınde qate oryn aldy. Jellyfin tasyğyş qaltasyna jazuğa rūqsaty bar ekenın tekserıp, qaitalap körıŋız.", + "ErrorDeletingItem": "Serverdegı tarmaqty joiu kezınde qate oryn aldy. Jellyfin tasyğyş qaltasyna jazuğa rūqsaty bar ekenın tekserıp, qaitalap körıŋız.", "ErrorGettingTvLineups": "TD kezekterın jüktep alu kezınde qate oryn aldy. Mälımetterıŋız dūrys ekenıne köz jetkızıŋız de ärekettı qaitalaŋyz.", "ErrorStartHourGreaterThanEnd": "Aiaqtalu uaqyty bastau uaqytynan keiınrek boluy qajet etedı.", "ErrorPleaseSelectLineup": "Tızbektı taŋdaŋyz jäne ärekettı qaitalaŋyz. Eger eşqandai tızbek qoljetımdı bolmasa, onda paidalanuşy atyŋyzdy, parölıŋızdı jäne poşta kodyn dūrys ekenın tekserıŋız.", @@ -196,9 +196,9 @@ "EveryNDays": "{0} kün saiyn", "ExitFullscreen": "Tolyq ekrandan şyğu", "ExtraLarge": "Öte ırı", - "ExtractChapterImagesHelp": "Sahna suretterın şyğaryp alu klientterıne sahna bölekteuge arnalğan syzbalyq mäzırlerdı beineleu üşın rūqsat etedı. Būl proses baiau, qor közın köp talap etetın jäne bıraz gigabait keŋıstıktı qajet etetın boluy mümkın. Ol beinefaildary tabylğanda, jäne tüngı uaqytyna josparlağan tapsyrma retınde jūmys ısteidı. Oryndau kestesı Josparlauşy aimağynda teŋşeledı. Būl tapsyrmany qarbalas sağattarynda jūmys ıstetkızu ūsynylmaidy.", + "ExtractChapterImagesHelp": "Sahna suretterın şyğaryp alu tūtynğyştaryna sahna bölekteuge arnalğan syzbalyq mäzırlerdı beineleu üşın rūqsat etedı. Būl proses baiau, qor közın köp talap etetın jäne bıraz gigabait keŋıstıktı qajet etetın boluy mümkın. Ol beinefaildary tabylğanda, jäne tüngı uaqytyna josparlağan tapsyrma retınde jūmys ısteidı. Oryndau kestesı Josparlauşy aimağynda teŋşeledı. Būl tapsyrmany qarbalas sağattarynda jūmys ıstetkızu ūsynylmaidy.", "Extras": "Qosymşalar", - "FFmpegSavePathNotFound": "Bızge sız engızgen FFmpeg jolyn paidalanyp tabu mümkın bolmady. Sondai-aq FFprobe talap etıledı jäne sol qaltada boluy jön. Būl qūramdastar ädette sol jükteumen bırge jetkızıledı. Joldy tekserıp, qaitalap körıŋız.", + "FFmpegSavePathNotFound": "Bızge sız engızgen FFmpeg jolyn paidalanyp tabu mümkın bolmady. Sondai-aq FFprobe üşın talap etıledı jäne sol qaltada boluy qajet. Būl qūramdastar ädette sol jükteumen bırge jetkızıledı. Joldy tekserıp, qaitalap körıŋız.", "FastForward": "Jyldam alğa", "Favorite": "Taŋdauly", "Favorites": "Taŋdaulylar", @@ -224,7 +224,7 @@ "H264CrfHelp": "Bağalaudyŋ tūraqty mänı (Constant Rate Factor, CRF) x264 men x265 kodtauyşy üşın ädepkı sapa parametrı bolyp tabylady. Sız 0 jäne 51 arasyndağy mänderın belgılei alasyz, onda tömen mänder (joğary fail ölşemderı esebınen) nätijesınde jaqsy sapağa keltıredı. Tağylyp mänder 18 jäne 28 arasynda bolady. Ädepkısı x264 üşın 23 jäne x265 üşın 28 bolyp tabylady, sondyqtan bastau nüktesı retınde osyny paidalanuyŋyzğa bolady.", "EncoderPresetHelp": "Önımdılıktı jaqsartu üşın jyldam mänın, nemese sapasyn jaqsartu üşın baiau mänın taŋdaŋyz.", "HDPrograms": "HD-berılimder", - "HardwareAccelerationWarning": "Apparattyq jedeldetudı qosu keibır ortalarda tūraqsyzdyq tudyruy mümkın. Amaldyq jüieŋız ben beine draiverlerıŋız tolyq jaŋartylğanyna köz jetkızıŋız. Eger osyny qosqannan keiın beine oinatuda qiyndyq bolsa, parametrdı qaita Eşqanadağa özgertuıŋız qajet.", + "HardwareAccelerationWarning": "Aparattyq jedeldetudı qosu keibır ortalarda tūraqsyzdyq tudyruy mümkın. Operasialyq jüieŋız ben beine draiverlerıŋız tolyq jaŋartylğanyna köz jetkızıŋız. Eger osyny qosqannan keiın beine oinatuda qiyndyq bolsa, parametrdı qaita Eşqanadai dep özgertuıŋız qajet.", "HeaderAccessSchedule": "Qatynau kestesı", "HeaderAccessScheduleHelp": "Qatynaudy belgılı sağattarğa şekteu üşın qatynau kestesın jasaŋyz.", "HeaderActiveDevices": "Belsendı qūrylğylar", @@ -240,7 +240,7 @@ "HeaderAllowMediaDeletionFrom": "Osydan tasyğyşderekterdı joiuğa rūqsat etu", "HeaderApiKey": "API-kılt", "HeaderApiKeys": "API-kıltter", - "HeaderApiKeysHelp": "Syrtqy qoldanbalar server bağdarlamasymen qatynasu üşın API kıltı qajet etedı. Kıltter qalypty paidalanuşy tırkelgısıne kırgende, nemese kılttı qoldanbağa qolmen rūqsat etılgende berıledı.", + "HeaderApiKeysHelp": "Syrtqy qoldanbalar server bağdarlamasymen qatynasu üşın API-kılttı qajet etedı. Kıltter qalypty paidalanuşy tırkelgısıne kırgende, nemese kılttı qoldanbağa qolmen rūqsat etılgende berıledı.", "HeaderApp": "Qoldanba", "HeaderAppearsOn": "Köruge bolady", "HeaderAudioBooks": "Dybystyq kıtaptar", @@ -255,7 +255,7 @@ "HeaderCodecProfile": "Kodek profaily", "HeaderCodecProfileHelp": "Kodek profaildary naqty kodekter arqyly oinatqanda qūrylğynyŋ şekteulerın körsetedı. Eger şekteu qoldanylsa, sonda kodek tıkelei oinatu üşın teŋşelse de tasyğyşderekter qaita kodtalynady.", "HeaderConfigureRemoteAccess": "Qaşyqtan qatynaudy teŋşeu", - "HeaderConfirmPluginInstallation": "Plagin ornatymyn rastau", + "HeaderConfirmPluginInstallation": "Plagin ornatuyn rastau", "HeaderConfirmProfileDeletion": "Profail joiudy rastau", "HeaderConfirmRevokeApiKey": "API-kılttı qaitaryp alu", "HeaderConnectToServer": "Serverge qosylu", @@ -285,7 +285,7 @@ "HeaderEnabledFieldsHelp": "Qūrsaulau üşın jäne derekter özgertuıne tyiym salu üşın, örısten qūsbelgını alyŋyz.", "HeaderError": "Qate", "HeaderExternalIds": "Syrtqy säikestendırgışter:", - "HeaderFeatureAccess": "Mümkindıkterge qatynau", + "HeaderFeatureAccess": "Mümkındıkterge qatynau", "HeaderFetchImages": "Suretterdı şyğaryp alu:", "HeaderFetcherSettings": "Şyğaryp aluşy parametrlerı", "HeaderForKids": "Balalyq", @@ -302,7 +302,7 @@ "HeaderInstantMix": "Lezdık qospa", "HeaderKeepRecording": "Jazudy saqtap qalu", "HeaderKeepSeries": "Telehikaiany saqtap qalu", - "HeaderKodiMetadataHelp": "NFO metaderekterın qosu nemese öşıru üşın, tasyğyşhanany öŋdeŋız jäne metaderekter saqtauyş bölımın tabyŋyz.", + "HeaderKodiMetadataHelp": "NFO-metaderekterın qosu nemese öşıru üşın, tasyğyşhanany öŋdeŋız jäne metaderekter saqtauyştar bölımın tabyŋyz.", "HeaderLatestEpisodes": "Eŋ keiıngı telebölımder", "HeaderLatestMedia": "Eŋ keiıngı tasyğyşderekter", "HeaderLatestMovies": "Eŋ keiıngı filmder", @@ -340,31 +340,31 @@ "HeaderPlayback": "Tasyğyşderekterdı oinatu", "HeaderPlaybackError": "Oinatu qatesı", "HeaderPleaseSignIn": "Kırıŋız", - "HeaderPluginInstallation": "Plagin ornatymy", + "HeaderPluginInstallation": "Plagin ornatuy", "HeaderPreferredMetadataLanguage": "Metaderekter tılınıŋ teŋşelımı", "HeaderProfileInformation": "Profail mälımetterı", "HeaderProfileServerSettingsHelp": "Būl mänder server qalai özın tūtynğyştarğa körsetetınıŋ basqarady.", "HeaderRecentlyPlayed": "Juyqta oinatylğan", "HeaderRecordingOptions": "Jazu opsialary", - "HeaderRecordingPostProcessing": "Jazbany keiıngı öŋdeu", + "HeaderRecordingPostProcessing": "Jazbany keiın öŋdeu", "HeaderRemoteControl": "Qaşyqtan basqaru", "HeaderRemoveMediaFolder": "Tasyğyş qaltasyn alastau", "HeaderRemoveMediaLocation": "Tasyğyşderekter ornalasuyn alastau", "HeaderResponseProfile": "Ün qatu profaily", - "HeaderResponseProfileHelp": "Keibır tasyğyşderekter türlerın oinatqanda ün qatu profaildary qūrylğyğa jıberıletın aqparatty teŋşeu üşın jol beredı.", + "HeaderResponseProfileHelp": "Keibır tasyğyşderekter türlerın oinatqanda jauap beru profaildary qūrylğyğa jıberıletın aqparatty teŋşeu üşın jol beredı.", "HeaderRevisionHistory": "Özgerıster tarihy", "HeaderRunningTasks": "Oryndalyp jatqan tapsyrmalar", "HeaderScenes": "Sahnalar", "HeaderSeasons": "Mausymdar", - "HeaderSecondsValue": "{0} sekönd", + "HeaderSecondsValue": "{0} sekund", "HeaderSelectCertificatePath": "Kuälık jolyn taŋdau", "HeaderSelectMetadataPath": "Metaderekter jolyn taŋdau", - "HeaderSelectMetadataPathHelp": "Metaderekterge paidalanu üşın joldy şolyŋyz nemese engızıŋız. Osy qalta jazu üşın qol jetımdı boluy qajet.", + "HeaderSelectMetadataPathHelp": "Metaderekter üşın paidalanuğa joldy şolyŋyz nemese engızıŋız. Osy qalta jazu üşın qoljetımdı boluy qajet.", "HeaderSelectPath": "Joldy taŋdau", - "HeaderSelectServerCachePath": "Server keşınıŋ jolyn taŋdau", - "HeaderSelectServerCachePathHelp": "Serverdıŋ keş faildaryn paidalanu üşın joldy şolyŋyz nemese engızıŋız. Osy qalta jazu üşın qol jetımdı boluy qajet.", - "HeaderSelectTranscodingPath": "Qaita kodtaudyŋ uaqytşa faildaryeyŋ jolyn taŋdau", - "HeaderSelectTranscodingPathHelp": "Qaita kodtau faildaryn paidalanu üşın joldy şolyŋyz nemese engızıŋız. Osy qalta jazu üşın qol jetımdı boluy qajet.", + "HeaderSelectServerCachePath": "Serverlık keşteu jolyn taŋdau", + "HeaderSelectServerCachePathHelp": "Serverlık keşteu faildaryn paidalanu üşın joldy şolyŋyz nemese engızıŋız. Osy qalta jazu üşın qol jetımdı boluy qajet.", + "HeaderSelectTranscodingPath": "Qaita kodtaudyŋ uaqytşa faildar jolyn taŋdau", + "HeaderSelectTranscodingPathHelp": "Qaita kodtau faildaryn paidalanu üşın joldy şolyŋyz nemese engızıŋız. Osy qalta jazu üşın qoljetımdı boluy qajet.", "HeaderSendMessage": "Habar jıberu", "HeaderSeriesOptions": "Telehikaia opsialary", "HeaderSeriesStatus": "Telehikaia küiı", @@ -374,7 +374,7 @@ "HeaderSortOrder": "Sūryptau retı", "HeaderSpecialEpisodeInfo": "Arnaiy telebölım turaly", "HeaderStartNow": "Qazır bastau", - "HeaderStatus": "Küi", + "HeaderStatus": "Küiı", "HeaderStopRecording": "Jazudy toqtatu", "HeaderSubtitleAppearance": "Subtitrler körınısı", "HeaderSubtitleDownloads": "Subtitrler jükteulerı", @@ -386,7 +386,7 @@ "HeaderThisUserIsCurrentlyDisabled": "Osy paidalanuşy ağymda ajyratylğan", "HeaderTracks": "Jolşyqtar", "HeaderTranscodingProfile": "Qaita kodtau profaily", - "HeaderTranscodingProfileHelp": "Qajet bolğanda qandai pışımderdı paidalanu mındetılıgın körsetu ūşın qaita kodtau profaildar üsteu.", + "HeaderTranscodingProfileHelp": "Qajet bolğanda qandai pışımderdı paidalanu mındetılıgın körsetu ūşın qaita kodtau profaildaryn üsteu.", "HeaderTunerDevices": "Tüner qūrylğylary", "HeaderTuners": "Tünerler", "HeaderTypeImageFetchers": "{0} suret şyğaryp aluşylary", @@ -413,7 +413,7 @@ "Images": "Suretter", "ImportFavoriteChannelsHelp": "Tüner qūrylğysyndağy taŋdauly retınde belgılengen ğana arnalar şetten äkelınetın bolady.", "InstallingPackage": "{0} ({1} nūsqasy) ornatyluda", - "InstantMix": "Lezdık qospalau", + "InstantMix": "Lezdık qospa", "ItemCount": "{0} tarmaq", "Items": "Tarmaqtar", "Kids": "Balalyq", @@ -433,7 +433,7 @@ "LabelAlbumArtMaxWidth": "Älbom suretınıŋ eŋ joğary enı:", "LabelAlbumArtPN": "Älbom suretı PN:", "LabelAlbumArtists": "Älbom oryndauşylary:", - "LabelAllowHWTranscoding": "Apparattyq qaita kodtauğa rūqsat etu", + "LabelAllowHWTranscoding": "Aparattyq qaita kodtauğa rūqsat etu", "LabelAllowedRemoteAddresses": "Qaşyqtağy IP-mekenjai süzgısı:", "LabelAllowedRemoteAddressesMode": "Qaşyqtağy IP-mekenjai süzgısınıŋ rejımı:", "LabelAppName": "Qoldanba aty", @@ -448,10 +448,10 @@ "LabelBirthYear": "Tuğan jyly:", "LabelBlastMessageInterval": "Belsendılıktı tekseru habarlar aralyğy", "LabelBlastMessageIntervalHelp": "Belsendılıktı tekseru habarlaryn jaudyru ara ūzaqtyğyn sekundtar arqyly anyqtaidy.", - "LabelBlockContentWithTags": "Myna tegterı bar mazmūndy qūrsaulau:", + "LabelBlockContentWithTags": "Kelesı tegterı bar mazmūndy qūrsaulau:", "LabelBurnSubtitles": "Subtitrlerdı jazu:", - "LabelCache": "Keş:", - "LabelCachePath": "Keşke qarai jol:", + "LabelCache": "Keşteu:", + "LabelCachePath": "Keşteu joly:", "LabelCachePathHelp": "Suret siaqty serverdıŋ keş faildary üşın teŋşelgen jaiğasymdy anyqtaŋyz. Serverdıŋ ädepkısın paidalanu üşın bos qaldyryŋyz.", "LabelCancelled": "Boldyrylmady", "LabelCertificatePassword": "Kuälıktıŋ parölı:", @@ -471,14 +471,14 @@ "LabelCustomRating": "Teŋşelgen sanat:", "LabelDashboardTheme": "Server taqtasynyŋ taqyryby:", "LabelDateAdded": "Üstelgen künı:", - "LabelDateAddedBehavior": "Jaŋa mazmūn üşın qosylğan künı tärtıbı:", + "LabelDateAddedBehavior": "Jaŋa mazmūn üstelgen künı üşın tärtıbı:", "LabelDateAddedBehaviorHelp": "Eger metaderekterde mänı bolsa, būl qaisybır osy opsialarydyŋ aldynda ärqaşanda paidalanylady.", "LabelDateTimeLocale": "Kün men uaqyt:", "LabelDay": "Kün:", "LabelDeathDate": "Ölgen künı:", "LabelDefaultScreen": "Ädepkı ekran:", "LabelDefaultUser": "Ädepkı paidalanuşy:", - "LabelDefaultUserHelp": "Qūrylğylar qosylğanda qai paidalanuşynyŋ tasyğyşhanasy beinelenuı tiıstılıgın anyqtaidy. Profaildardy paidalanğanda būl är qūrylğy üşın qaita tağaiyndaluy mümkın.", + "LabelDefaultUserHelp": "Qūrylğylar qosylğanda qai paidalanuşynyŋ tasyğyşhanasy beinelenu tiıstılıgın anyqtaidy. Profaildardy paidalanğanda būl är qūrylğy üşın qaita tağaiyndaluy mümkın.", "LabelDeviceDescription": "Qūrylğy sipattamasy", "LabelDidlMode": "DIDL rejımı:", "LabelDiscNumber": "Diskı nömırı:", @@ -497,18 +497,18 @@ "LabelEmbedAlbumArtDidl": "DIDL ışıne älbom suretın endıru", "LabelEmbedAlbumArtDidlHelp": "Älbom suretın alu üşın keibır qūrylğylar osy ädıstı qalaidy. Basqalar üşın, osy opsia qosylğanda, oinatu sätsız boluy mümkın.", "LabelEnableAutomaticPortMap": "Avtomatty port salğastyruyn qosu", - "LabelEnableAutomaticPortMapHelp": "Jol josparlağyş jaria portyn server jergılıktı portyna UPnP arqyly avtomatty qaita jıberu. Būl keibır jol josparlağyş ūlgılerımen ne jelı teŋşelımderımen jūmys ıstemeitını mümkın. Özgerıster server qaita ıske qosylğanşa deiın qoldanylmaidy.", + "LabelEnableAutomaticPortMapHelp": "Jol josparlağyş jaria portyn server jergılıktı portyna UPnP arqyly avtomatty qaita jıberedı. Būl keibır jol josparlağyş ūlgılerımen ne jelı teŋşelımderımen jūmys ıstemeitını mümkın. Özgerıster server qaita ıske qosylğanşa deiın qoldanylmaidy.", "LabelEnableBlastAliveMessages": "Belsendılıktı tekseru habarlaryn jaudyru", "LabelEnableBlastAliveMessagesHelp": "Eger jelıdegı basqa UPnP qūrylğylarymen server nyq tabylmasa būny qosyŋyz.", "LabelEnableDlnaClientDiscoveryInterval": "Tūtynğyş baiqau uaqytynyŋ aralyğy", "LabelEnableDlnaClientDiscoveryIntervalHelp": "SSDP saual salu ara ūzaqtyğyn sekundtar arqyly anyqtaidy.", - "LabelEnableDlnaDebugLogging": "DLNA küikeltıru jazbalaryn jūrnalda qosu", + "LabelEnableDlnaDebugLogging": "DLNA küin keltıru jazbalar jūrnalyn qosu", "LabelEnableDlnaDebugLoggingHelp": "Öte auqymdy jūrnal faildary jasalady jäne tek qana aqaulyqtardy joiu üşın qajet bolğan retınde paidalanylady.", "LabelEnableDlnaPlayTo": "DLNA qūrylğysynda oinatudy qosu", "LabelEnableDlnaPlayToHelp": "Jelıdegı qūrylğylardy tabady jäne būlardy qaşyqtan basqaru qabıletın ūsynady.", "LabelEnableDlnaServer": "DLNA-serverın qosu", - "LabelEnableDlnaServerHelp": "Jelıdegı UPnP qūrylğylarğa mazmūn şolu men oinatu üşın rūqsat etu.", - "LabelEnableHardwareDecodingFor": "Apparatyq kodtaudy mynağan qosu:", + "LabelEnableDlnaServerHelp": "Jelıdegı UPnP-qūrylğylarğa mazmūn şolu men oinatu üşın rūqsat etu.", + "LabelEnableHardwareDecodingFor": "Aparattyq kodtaudy mynağan qosu:", "LabelEnableRealtimeMonitor": "Naqty uaqyttağy baqylaudy qosu", "LabelEnableRealtimeMonitorHelp": "Qoldaudağy faildyq jüielerınde faildar özgerısterı dereu öŋdeledı.", "LabelEnableSingleImageInDidlLimit": "Jalğyz kırıstırılgen suretke şekteu", @@ -531,15 +531,15 @@ "LabelGroupMoviesIntoCollectionsHelp": "Film tızımderın beinelegen kezde jiyntyqtağy filmder toptalğan bıryŋğai tarmaq bolyp körsetıledı.", "LabelH264Crf": "H264 kodtau CRF mänı:", "LabelEncoderPreset": "Kodtau daiyndamasy:", - "LabelHardwareAccelerationType": "Apparatyq jedeldetu:", - "LabelHardwareAccelerationTypeHelp": "Apparattyq jedeldetu üşın qosymşa teŋşelımder qajet.", + "LabelHardwareAccelerationType": "Aparattyq jedeldetu:", + "LabelHardwareAccelerationTypeHelp": "Aparattyq jedeldetu üşın qosymşa teŋşelımder qajet.", "LabelHomeNetworkQuality": "Üilık jelı sapasy:", "LabelHomeScreenSectionValue": "Basqy bet {0}-bölım:", "LabelHttpsPort": "Jergılıktı HTTPS-port nömırı:", "LabelHttpsPortHelp": "HTTPS-server üşın TCP-port nömırı.", "LabelIconMaxHeight": "Belgışenıŋ eŋ joğary biıgı:", "LabelIconMaxWidth": "Belgışenıŋ eŋ joğary enı:", - "LabelIdentificationFieldHelp": "Registr eskermeitın ışkı jol nemese ūdaiy örnek.", + "LabelIdentificationFieldHelp": "Registrdı eskerusız ışkı jol nemese ūdaiy örnek.", "LabelImageFetchersHelp": "Teŋşelgen suret şyğaryp aluşylaryn qosyŋyz jäne basymdylyq retı boiynşa däreje berıŋız.", "LabelImageType": "Suret türı:", "LabelImportOnlyFavoriteChannels": "Taŋdauly retınde belgılengen arnalarmen şekteu", @@ -551,14 +551,14 @@ "LabelKodiMetadataDateFormat": "Şyğaru künınıŋ pışımı:", "LabelKodiMetadataDateFormatHelp": "NFO-faildaryndağy barlyq künder osy pışımnıŋ kömegımen taldanady.", "LabelKodiMetadataEnableExtraThumbs": "extrafanart derekterın extrathūmbs örısıne köşıru", - "LabelKodiMetadataEnableExtraThumbsHelp": "Suretterdı jüktegen kezde, olar Kodı qabyğymen eŋ joğary siysymdyğy üşın extrafanart jäne extrathūmbs ekeuınde saqtalady.", + "LabelKodiMetadataEnableExtraThumbsHelp": "Suretterdı jüktegen kezde, olar Kodı mūqabasymen eŋ joğary siysymdyğy üşın extrafanart jäne extrathūmbs ekeuınde saqtalady.", "LabelKodiMetadataEnablePathSubstitution": "Jol almastyrudy qosu", "LabelKodiMetadataEnablePathSubstitutionHelp": "Serverdıŋ jol almastyru teŋşeuın paidalanyp suretterdıŋ jol almastyruyn qosady.", "LabelKodiMetadataSaveImagePaths": "Suret joldaryn NFO-faildarynda saqtau", "LabelKodiMetadataSaveImagePathsHelp": "Eger suretterdıŋ Kodı nūsqaulyq ūstanymdaryna sai kelmegen ataulary bolsa, būl ūsynylady.", "LabelKodiMetadataUser": "NFO-faildarda myna paidalanuşynyŋ qaralğan derekterın saqtau:", "LabelKodiMetadataUserHelp": "Qaralu derekterın basqa qoldanbalar üşın NFO-faildarda saqtau.", - "LabelLanNetworks": "Üidegı jelıler:", + "LabelLanNetworks": "Üilık jelıler:", "LabelLanguage": "Tıl:", "LabelLineup": "Tızbek:", "LabelLocalHttpServerPortNumber": "Jergılıktı HTTP-port nömırı:", @@ -575,7 +575,7 @@ "LabelMaxParentalRating": "Eŋ joğary ūiğaryndy jastas sanaty:", "LabelMaxResumePercentage": "Jalğastyru üşın eŋ köp paiyzy:", "LabelMaxResumePercentageHelp": "Būl kezden keiın toqtatylsa tuyndylar tolyq oinatylğan dep boljaldy.", - "LabelMaxScreenshotsPerItem": "Tarmaq boiynşa eŋ köp skrinşot sany:", + "LabelMaxScreenshotsPerItem": "Tarmaq boiynşa ekran suretterınıŋ eŋ köp sany:", "LabelMaxStreamingBitrate": "Eŋ joğary tasymaldanu sapasy:", "LabelMaxStreamingBitrateHelp": "Tasymaldanu kezınde eŋ joğary qarqyndy anyqtaŋyz.", "LabelMessageText": "Habar mätını:", @@ -592,10 +592,10 @@ "LabelMethod": "Ädıs:", "LabelMinBackdropDownloadWidth": "Artqy surettıŋ jüktep alynatyn eŋ az enı:", "LabelMinResumeDuration": "Jalğastyru üşın eŋ az ūzaqtyğy:", - "LabelMinResumeDurationHelp": "Oinatu orny saqtalatyn jäne jalğastyruğa mümkındık beretın sekundtar arqyly eŋ qysqa beine ūzyndyğy.", + "LabelMinResumeDurationHelp": "Oinatu orny saqtalatyn jäne jalğastyruğa mümkındık beretın eŋ qysqa beinenıŋ sekundtar arqyly ūzaqtyğy.", "LabelMinResumePercentage": "Jalğastyru üşın eŋ az paiyzy:", "LabelMinResumePercentageHelp": "Būl kezden būryn toqtatylsa tuyndylar oinatylmağan dep boljaldy.", - "LabelMinScreenshotDownloadWidth": "Jüktep alu üşın eŋ az skrinşot enı:", + "LabelMinScreenshotDownloadWidth": "Jüktep alu üşın ekran suretınıŋ eŋ az enı:", "LabelModelDescription": "Model sipattamasy", "LabelModelName": "Model aty", "LabelModelNumber": "Model nömırı", @@ -625,10 +625,10 @@ "LabelParentalRating": "Jastas sanaty:", "LabelPassword": "Paröl:", "LabelPasswordConfirm": "Paröl (rastau):", - "LabelPasswordRecoveryPinCode": "PIN kody:", + "LabelPasswordRecoveryPinCode": "PIN-kody:", "LabelPath": "Joly:", "LabelPersonRole": "Rölı:", - "LabelPersonRoleHelp": "Mysal: Balmūzdaq furgonynyŋ jürgızuşısı", + "LabelPersonRoleHelp": "Mysal: Balmūzdaq avtoküimenıŋ jürgızuşısı", "LabelPlaceOfBirth": "Tuğan jerı:", "LabelPlayDefaultAudioTrack": "Tılge qatyssyz ädepkı dybys jolşyğyn oinatu", "LabelPlaylist": "Oinatu tızımı:", @@ -645,7 +645,7 @@ "LabelProfileVideoCodecs": "Beinelık kodekter:", "LabelProtocol": "Protokol:", "LabelProtocolInfo": "Protoqol turaly:", - "LabelProtocolInfoHelp": "Būl män qūrylğynyŋ GetProtocolİnfo sūranystaryna jauap bergende paidalanylady.", + "LabelProtocolInfoHelp": "Būl män qūrylğynyŋ GetProtocolInfo sūranystaryna jauap bergende paidalanylady.", "LabelPublicHttpPort": "Jaria HTTP-port nömırı:", "LabelPublicHttpPortHelp": "Jergılıktı HTTP-portyna salystyryluy tiıs jaria port nömırı.", "LabelPublicHttpsPort": "Jaria HTTPS-port nömırı:", @@ -665,7 +665,7 @@ "LabelScreensaver": "Ekran qorğauyş:", "LabelSeasonNumber": "Mausym nömırı:", "LabelSelectFolderGroups": "Kelesı qaltalardağy mazmūndy Kino, Muzyka jäne TD siaqty aspektterge avtomatty toptastyru:", - "LabelSelectFolderGroupsHelp": "Belgılenbegen qaltalar öz betimen özınıŋ aspektınde beinelenedı.", + "LabelSelectFolderGroupsHelp": "Belgılenbegen qaltalar öz betımen özınıŋ aspektınde beinelenedı.", "LabelSelectUsers": "Paidalanuşylardy taŋdau:", "LabelSelectVersionToInstall": "Ornatym nūsqasyn taŋdau:", "LabelSendNotificationToUsers": "Mynağan habarlandyrmany jıberu:", @@ -681,7 +681,7 @@ "LabelSkipIfGraphicalSubsPresent": "Eger beinede endırılgen subtitrler bolsa, ötkızıp jıberu", "LabelSkipIfGraphicalSubsPresentHelp": "Subtitrlerdıŋ mätındık nūsqalary qaldyrylsa, nätijesınde tiımdı jetkızıledı jäne beinenıŋ qaita kodtau yqtimaldyğyn kemıtedı.", "LabelSonyAggregationFlags": "Sony bırıktıru jalauşalary:", - "LabelSonyAggregationFlagsHelp": "ūrn:schemas-sonycom:av ataular keŋıstıgındegı aggregatıonFlags elementı mazmūnyn anyqtaidy.", + "LabelSonyAggregationFlagsHelp": "urn:schemas-sonycom:av ataular keŋıstıgındegı aggregatıonFlags elementı mazmūnyn anyqtaidy.", "LabelSortBy": "Sūryptau täsılı:", "LabelSortOrder": "Sūryptau retı:", "LabelSortTitle": "Atau boiynşa sūryptau:", @@ -724,21 +724,21 @@ "LabelUserRemoteClientBitrateLimitHelp": "Serverdıŋ oinatu parametrlerınde ornatylğan ädepkı ğalamdyq mändı qaita anyqtaidy.", "LabelUsername": "Paidalanuşy aty:", "LabelVaapiDevice": "VA-API qūrylğysy:", - "LabelVaapiDeviceHelp": "Būl apparattyq jedeldetu üşın qoldanylatyn körsetu tüiını bolyp tabylady.", + "LabelVaapiDeviceHelp": "Būl aparattyq jedeldetu üşın qoldanylatyn körsetu tüiını bolyp tabylady.", "LabelValue": "Mänı:", "LabelVersion": "Nūsqasy:", "LabelVersionInstalled": "{0} ornatylğan", "LabelXDlnaCap": "X-DLNA sipattary:", - "LabelXDlnaCapHelp": "urn:schemas-dlna-org:device-1-0 ataular keŋıstıgındegı X_DLNACAP elementı mazmūnyn anyqtaidy.", + "LabelXDlnaCapHelp": "urn:schemas-dlna-org:device-1-0 ataular keŋıstıgındegı X_DLNACAP tarmağy mazmūnyn anyqtaidy.", "LabelXDlnaDoc": "X-DLNA täsımı:", - "LabelXDlnaDocHelp": "urn:schemas-dlna-org:device-1-0 ataular keŋıstıgındegı X_DLNADOC elementı mazmūnyn anyqtaidy.", + "LabelXDlnaDocHelp": "urn:schemas-dlna-org:device-1-0 ataular keŋıstıgındegı X_DLNADOC tarmağy mazmūnyn anyqtaidy.", "LabelYear": "Jyl:", "LabelYoureDone": "Sız daiynsyz!", "LabelZipCode": "Poşta kody:", "LabelffmpegPath": "FFmpeg joly:", "LabelffmpegPathHelp": "FFmpeg-qoldabaŋyzdyŋ failyna, nemese FFmpeg bar qaltağa jol.", "LanNetworksHelp": "Ötkızu mümkındıgın şekteudı jüzege asyru kezınde jergılıktı jelıde qarastyrylatyn jelıler üşın ütırlermen bölıngen IP-mekenjailarynyŋ tızbesı nemese IP/netmask jazbalar. Eger ornatylsa, barlyq basqa IP-mekenjailary syrtqy jelıde qarastyrylady jäne syrtqy ötkızu mümkındıgın şekteulerıne ūşyraidy. Eger bos qaldyrylsa, serverdıŋ ışkı jelısı tek jergılıktı jelıde sanalady.", - "Large": "İrı", + "Large": "Irı", "LatestFromLibrary": "Eŋ keiıngı {0}", "LearnHowYouCanContribute": "Qalai üles qosuynyŋyz mümkın turaly üirenıŋız.", "LibraryAccessHelp": "Būl paidalanuşymen ortaqtasu üşın tasyğyşhanalardy bölekteŋız. Metaderek retteuşını paidalanyp äkımşıler barlyq qaltalardy öŋdeuı mümkın.", @@ -780,7 +780,7 @@ "MediaIsBeingConverted": "Tasyğyşderekter oinatuşy qūrylğymen üilesımdı pışımge türlendırıledı.", "Menu": "Mäzır", "MessageAlreadyInstalled": "Osy nūsqa būrynnan ornatylğan.", - "MessageAreYouSureDeleteSubtitles": "Şynymen būl subtitrler faily joilsyn ba?", + "MessageAreYouSureDeleteSubtitles": "Şynymen būl subtitrler faily joiylsyn ba?", "MessageAreYouSureYouWishToRemoveMediaFolder": "Şynymen osy tasyğyşderekter qaltasy alastalsyn ba?", "MessageConfirmDeleteGuideProvider": "Şynymen osy Telegid jetkızuşı joiylsyn ba?", "MessageConfirmDeleteTunerDevice": "Şynymen būl qūrylğy joiylsyn ba?", @@ -793,8 +793,8 @@ "MessageContactAdminToResetPassword": "Parölıŋızdı ysyru üşın jüielık äkımşıŋızge bailanysyŋyz.", "MessageCreateAccountAt": "{0} janynda tırkelgı jasau", "MessageDeleteTaskTrigger": "Şynymen osy tapsyrma trigerı joiylsyn ba?", - "MessageDirectoryPickerBSDInstruction": "BSD ortasynda, Jellyfin qol jetkızu maqsatynda, sızdıŋ FreeNAS Jaıl jinaqtauyşty teŋşeu qajet boluy mümkın.", - "MessageDirectoryPickerLinuxInstruction": "Arch Linux, CentOS, Debian, Fedora, openSUSE nemese Ubuntu jüielerındegı Linux üşın, Jqyzmet körsetu paidalanuşyğa kem degende saqtau jerlerıŋızge oquğa qatynas üşın rūqsat etuge tiıssız.", + "MessageDirectoryPickerBSDInstruction": "BSD ortasynda, Jellyfin qol jetkızu maqsatynda, sızdıŋ FreeNAS Jail jinaqtauyşty teŋşeu qajet boluy mümkın.", + "MessageDirectoryPickerLinuxInstruction": "Arch Linux, CentOS, Debian, Fedora, openSUSE nemese Ubuntu jüielerındegı Linux üşın, kem degende saqtau jerlerıŋızdi oqu qatynasy üşın qyzmet körsetu paidalanuşysyna rūqsat etuge tiıssız.", "MessageDownloadQueued": "Jüktep alu kezekte.", "MessageEnablingOptionLongerScans": "Osy opsia qoiylsa, tasyğyşhana skanerleulerı edäuır ūzyn boluy mümkın.", "MessageFileReadError": "Fail oqu kezınde qate oryn aldy. Ärekettı keiın qaitalaŋyz.", @@ -804,13 +804,13 @@ "MessageInvalidUser": "Jaramsyz paidalanuşy aty nemese paröl. Ärekettı qaitalaŋyz.", "MessageItemSaved": "Tarmaq saqtaldy.", "MessageItemsAdded": "Tarmaqtar üstelgen.", - "MessageLeaveEmptyToInherit": "Tektık tarmaqtan, nemese ğalamdyq ädepkı männen parametrlerdı mūralau üşın bos qaldyryŋyz.", + "MessageLeaveEmptyToInherit": "Tektık tarmaqtan, nemese ğalamdyq ädepkı männen parametrlerdı mūrağa ielenu üşın bos qaldyryŋyz.", "MessageNoAvailablePlugins": "Qol jetımdı plaginder joq.", "MessageNoMovieSuggestionsAvailable": "Eşqandai film ūsynystary ağymda qol jetımdı emes. Filmderdı qaraudy jäne bağalaudy bastaŋyz, sonda arnalğan ūsynytaryŋyzdy köru üşın qaita kelıŋız.", "MessageNoPluginsInstalled": "Ornatylğan plaginder joq.", "MessageNoTrailersFound": "İnternet-treilerler tasyğyşhanasyn üstep film äserın jaqsartu üşın Treiler arnasyn ornatyŋyz.", "MessageNothingHere": "Osynda eşteme joq.", - "MessagePasswordResetForUsers": "Kelesı paidalanuşylar özderınıŋ parölderın ysyrddy. Endı ysyrudyı oryndau üşın paidalanylğan PIN-kodtarymem kıre alady.", + "MessagePasswordResetForUsers": "Kelesı paidalanuşylar özderınıŋ parölderın ysyrdy. Endı ysyrudyı oryndau üşın paidalanylğan PIN-kodtarymem kıre alady.", "MessagePlayAccessRestricted": "Osy mazmūndyŋ oinatuy ağymda şektelgen. Qosymşa aqparat alu üşın server äkımşısıne bailanysyŋyz.", "MessagePleaseEnsureInternetMetadata": "İnternetten metaderektı jüktep aluy qosylğanyna köz jetkızıŋız.", "MessagePleaseWait": "Küte tūryŋyz. Būl minöt aluy mümkın.", @@ -824,7 +824,7 @@ "Metadata": "Metaderekter", "MetadataManager": "Metaderek retteuşı", "MetadataSettingChangeHelp": "Metaderekter parametrlerın özgertu bolaşaqtağy üstelgen jaŋa mazmūnğa äser etedı. Bar mazmūndy jaŋartu üşın, tolyq mälımetter ekranyn aşyŋyz da jaŋartu tüimeşıgın basyŋyz, nemese metaderekter retteuışını paidalanyp qorymymen jaŋartudy oryndaŋyz.", - "MinutesAfter": "minut soŋyŋda", + "MinutesAfter": "min soŋyŋda", "MinutesBefore": "minut aldynda", "Mobile": "Ūtqyr", "Monday": "düisenbı", @@ -878,8 +878,8 @@ "OptionAllowVideoPlaybackRemuxing": "Qaita kodtausyz türlendıru talaby bar beine oinatu üşın rūqsat etu", "OptionAllowVideoPlaybackTranscoding": "Qaita kodtauğa talaby bar beine oinatu üşın rūqsat etu", "OptionAutomaticallyGroupSeries": "Bırneşe qaltalar arasynda taralğan telehikaiany avtomatty bır telehikaiağa bırıktıru", - "OptionAutomaticallyGroupSeriesHelp": "Osy tasyğyşhana ışındegı bırneşe qaltalar arasynda taralğan telehikaiasy avtomatty bır telehikaiağa bırıktırıletın bolady.", - "OptionBluray": "BlūRay", + "OptionAutomaticallyGroupSeriesHelp": "Osy tasyğyşhana ışındegı bırneşe qaltalar arasynda taralğan telehikaia avtomatty bır telehikaiağa bırıktırıletın bolady.", + "OptionBluray": "BluRay", "OptionCommunityRating": "Qauym bağalauy", "OptionCriticRating": "Synşylar bağalauy", "OptionCustomUsers": "Teŋşeulı", @@ -925,12 +925,12 @@ "OptionOnInterval": "Aralyqta", "OptionParentalRating": "Jastas sanat", "OptionPlainStorageFolders": "Barlyq qaltalardy kädımgı saqtama qaltalary retınde beineleu", - "OptionPlainStorageFoldersHelp": "Barlyq qaltalar DIDL ışınde \"object.container.person.musicArtıst\" siaqty naqtylau türınıŋ ornyna \"object.container.storageFolder\" bolyp beinelenedı.", + "OptionPlainStorageFoldersHelp": "Barlyq qaltalar DIDL ışınde \"object.container.person.musicArtist\" siaqty naqtylau türınıŋ ornyna \"object.container.storageFolder\" bolyp beinelenedı.", "OptionPlainVideoItems": "Barlyq beinelerdı kädımgı beine tarmaqtary retınde beineleu", - "OptionPlainVideoItemsHelp": "Barlyq qaltalar DIDL ışınde \"object.item.vıdeoİtem.movıe\" siaqty naqtylau türınıŋ ornyna \"object.item.vıdeoİtem\" bolyp beinelenedı.", + "OptionPlainVideoItemsHelp": "Barlyq qaltalar DIDL ışınde \"object.item.vıdeoItem.movıe\" siaqty naqtylau türınıŋ ornyna \"object.item.vıdeoItem\" bolyp beinelenedı.", "OptionPlayCount": "Oinatu esebı", "OptionPremiereDate": "Tūsaukeser kün-aiy", - "OptionProtocolHls": "HTTP Тікелей Тасымалдау", + "OptionProtocolHls": "HTTP Тıкелей Тасымалдау", "OptionProtocolHttp": "HTTP", "OptionRegex": "Ūdaiy örnek", "OptionReleaseDate": "Şyğaru künı", @@ -946,7 +946,7 @@ "OptionTrackName": "Jolşyq aty", "OptionTvdbRating": "TVDB bağalauy", "OptionUnairedEpisode": "Körsetılmegen telebölımder", - "OptionWakeFromSleep": "Ūiqydan oiatuda", + "OptionWakeFromSleep": "Oiatu", "OptionWeekdays": "Jūmys künderı", "OptionWeekends": "Demalys künderı", "OptionWeekly": "Apta saiyn", @@ -982,7 +982,7 @@ "PleaseSelectTwoItems": "Eŋ kemınde ekı tarmaqty taŋdaŋyz.", "MessagePluginInstalled": "Plagin sättı ornatyldy. Özgertuler küşıne enuı üşın server qaita ıske qosylu qajet.", "PreferEmbeddedTitlesOverFileNames": "Fail ataulary ornyna endırılgen bölım aqparatyn qalau", - "PreferEmbeddedTitlesOverFileNamesHelp": "İnternettegı metaderekter nemese jergılıktı metaderekter qol jetımdı bolmağanda būl ädepkı beineletın ataudy anyqtaidy.", + "PreferEmbeddedTitlesOverFileNamesHelp": "İnternettegı metaderekter nemese jergılıktı metaderekter qoljetımdı bolmağanda būl ädepkı beineletın ataudy anyqtaidy.", "Premiere": "Tūsaukeserı", "Premieres": "Premeralar", "Previous": "Aldyŋğy", @@ -1046,7 +1046,7 @@ "ServerNameIsRestarting": "{0} ışındegı server qaita ıske qosyluda.", "ServerNameIsShuttingDown": "{0} ışındegı server jūmysyn aiaqtauda.", "ServerRestartNeededAfterPluginInstall": "Plagindı ornatqannan keiın Jellyfin qaita ıske qosylu qajet.", - "ServerUpdateNeeded": "Osy Jserver jaŋartyluy qajet. Soŋğy nūsqasyn jüktep alu üşın, {0} kırıŋız", + "ServerUpdateNeeded": "Osy server jaŋartyluy qajet. Soŋğy nūsqasyn jüktep alu üşın, {0} kırıŋız", "Settings": "Parametrler", "SettingsSaved": "Parametrler saqtaldy.", "SettingsWarning": "Būl mänderdı özgertkende tūraqsyzdyq nemese qosylym mümkındıgınde sätsızdık tudyryluy mümkın. Eger sızde qandai da bır aqaulyqtar bolsa, olardy qaitadan ädepkısıne özgertudı ūsynamyz.", @@ -1057,7 +1057,7 @@ "ShowYear": "Körsetım jyly", "Shows": "Körsetımder", "Shuffle": "Aralastyru", - "SimultaneousConnectionLimitHelp": "Bır mezgıldegı ağyndardyŋ ruqsat etılgen eŋ köp sany. Şeksız üşınt 0 engızıŋız.", + "SimultaneousConnectionLimitHelp": "Bır mezgıldegı ağyndardyŋ ruqsat etılgen eŋ köp sany. Şeksız üşın 0 engızıŋız.", "SkipEpisodesAlreadyInMyLibrary": "Menıŋ tasyğyşhanamda bar telebölımderdı jazbau", "SkipEpisodesAlreadyInMyLibraryHelp": "Qol jetımdı bolğanda, telebölımder mausym jäne telebölım nömırlerı boiynşa salystyrylady.", "Small": "Ūsaq", @@ -1100,7 +1100,7 @@ "TabParentalControl": "Mazmūndy basqaru", "TabPlugins": "Plaginder", "TabProfiles": "Profaildar", - "TabResponses": "Ün qatular", + "TabResponses": "Jauap beruler", "TabScheduledTasks": "Josparlauşy", "TabServer": "Server", "TabStreaming": "Tasymaldanu", @@ -1114,7 +1114,7 @@ "ThisWizardWillGuideYou": "Būl komekşı ornatu jäne teŋşeu prosesı satylarymen ötkızedı. Bastau üşın özıŋızge tıl teŋşelımın taŋdaŋyz.", "Thumb": "Nobai", "Thursday": "beisenbı", - "TitleHardwareAcceleration": "Apparatyq jedeldetu", + "TitleHardwareAcceleration": "Aparattyq jedeldetu", "TitleHostingSettings": "Ornalasu parametrlerı", "TitlePlayback": "Oinatu", "TrackCount": "{0} jolşyq", @@ -1124,13 +1124,13 @@ "TvLibraryHelp": "{0}TD-körsetımdı atau nūsqaulyğyn{1} qarap şyğu.", "Uniform": "Bıryŋğai", "UninstallPluginConfirmation": "Şynymen {0} ornatuy boldyrylmasyn ba?", - "HeaderUninstallPlugin": "Plagin ornatuyn boldyrmau", + "HeaderUninstallPlugin": "Plagin ornatymyn boldyrmau", "Unmute": "Dybysty qosu", "Unplayed": "Oinatylmağan", "Unrated": "Bağalanbağan", "Up": "Joğaryğa", "Upload": "Jüktep salu", - "UserAgentHelp": "Teŋşeletın paidalanuşy agentıne HTTP bas derektemesın jetkızu.", + "UserAgentHelp": "Teŋşeletın HTTP user-agent bas derektemesın jetkızu.", "UserProfilesIntro": "Jellyfin qūramynda egjeilı beineleu parametrlerı, oinatu küiı jäne mazmūn basqaruy bar paidalanuşylyq profaildarynyŋ qoldauy körsetıledı.", "ValueAlbumCount": "{0} älbom", "ValueAudioCodec": "Dybys kodegı: {0}", @@ -1160,20 +1160,20 @@ "ViewPlaybackInfo": "Oinatu turaly aqparat", "Watched": "Qaralğan", "Wednesday": "särsenbı", - "WelcomeToProject": "Jellyfin üşın qoş keldıŋız!", + "WelcomeToProject": "Jellyfin-ge qoş keldıŋız!", "Whitelist": "Aq tızım", "WizardCompleted": "Äzırşe būl bızge keregınıŋ bärı bolyp tabylady. Jellyfin tasyğyşhanaŋyz turaly mälımetterdı jinai bastady. Endı keibır bızdıŋ qoldanbalarymyzben tanysyŋyz, jäne keiın Aiaqtau tüimeşıgın basyŋyz, sonda Taqta qarauğa şyğa keledı.", "Writer": "Senarişy", "XmlDocumentAttributeListHelp": "Osy tölsipattar ärbır XML ün qatulardyŋ tübır elementı üşın qoldanylady.", - "XmlTvKidsCategoriesHelp": "Osy sanattağy bağdarlamalar balalyq bağdarlamary retınde beinelenedı. Bırneşuın '|' arqyly bölıŋız.", - "XmlTvMovieCategoriesHelp": "Osy sanattağy bağdarlamalar filmder retınde beinelenedı. Bırneşuın '|' arqyly bölıŋız.", - "XmlTvNewsCategoriesHelp": "Osy sanattağy bağdarlamalar jaŋalyq bağdarlamary retınde beinelenedı. Bırneşuın '|' arqyly bölıŋız.", + "XmlTvKidsCategoriesHelp": "Osy sanattağy bağdarlamalar balalyq bağdarlamary retınde beinelenedı. Bırneşeuın '|' arqyly bölıŋız.", + "XmlTvMovieCategoriesHelp": "Osy sanattağy bağdarlamalar filmder retınde beinelenedı. Bırneşeuın '|' arqyly bölıŋız.", + "XmlTvNewsCategoriesHelp": "Osy sanattağy bağdarlamalar jaŋalyq bağdarlamary retınde beinelenedı. Bırneşeuın '|' arqyly bölıŋız.", "XmlTvPathHelp": "XMLTV-failynyŋ joly. Jellyfin osy faildy oqidy jäne ony jaŋartular üşın mezgılınde tekserıp şyğady. Faildy jasau jäne jaŋartu üşın özıŋız jauapty bolyp tabylasyz.", - "XmlTvSportsCategoriesHelp": "Osy sanattağy bağdarlamalar sporttyq bağdarlamary retınde beinelenedı. Bırneşuın '|' arqyly bölıŋız.", + "XmlTvSportsCategoriesHelp": "Osy sanattağy bağdarlamalar sporttyq bağdarlamary retınde beinelenedı. Bırneşeuın '|' arqyly bölıŋız.", "Yes": "İä", "Yesterday": "Keşe", "ChangingMetadataImageSettingsNewContent": "Metaderekterdı nemese suretterdı jükteu parametrlerın özgertuı tek tasyğyşhanağa üstelgen jaŋa mazmūnğa qoldanylady. Özgerısterdı qoldanystağy ataularğa qoldanu üşın olardyŋ metaderekterın qolmen jaŋğyrtu qajet.", - "LabelDynamicExternalId": "{0} İd:", + "LabelDynamicExternalId": "{0} ID:", "LeaveBlankToNotSetAPassword": "Paröldı ornatpau üşın būl örıstı bos qaldyruğa bolady.", "MessageImageFileTypeAllowed": "Tek qana JPEG jäne PNG faildary qoldauda.", "MessageImageTypeNotSelected": "Suret türın aşylmaly mäzırden tandaŋyz.", @@ -1200,12 +1200,12 @@ "OptionIsHD": "HD", "OptionIsSD": "SD", "OptionLoginAttemptsBeforeLockout": "Qūlyptalğanşa deiın qanşa dūrys emes kıru äreketı jasaluy mümkın ekendıgın anyqtaidy.", - "OptionLoginAttemptsBeforeLockoutHelp": "0 mänı qarapaiym paidalanuşylar üşın üş jäne äkımşıler üşın bes ärekettıŋ ädepkı mänın bıldıredı. Osyny -1 etıp ornatu mümkındıktı ajyratady.", + "OptionLoginAttemptsBeforeLockoutHelp": "0 mänı qarapaiym paidalanuşylar üşın üş jäne äkımşıler üşın bes ärekettıŋ ädepkı mänın bıldıredı. Būl -1 etıp ornatylğanda mümkındık ajyratylady.", "PasswordResetProviderHelp": "Būl paidalanuşy paröldı ysyru saualyn jıbergen kezde paidalanylatyn paröldı ysyru jetkızuşısın taŋdaŋyz.", "PlaybackData": "Oinatu derekterı", "SubtitleOffset": "Subtitrler yğysuy", "TabNetworking": "Jelılık jūmys", - "LabelBaseUrlHelp": "Serverdıŋ URL-mekenjaiyna jeke ışkı katalogty qosady. Mysaly: http://example.com/<baseūrl>", + "LabelBaseUrlHelp": "Serverdıŋ URL-mekenjaiyna jeke ışkı katalogty qosady. Mysaly: http://example.com/<baseurl>", "MoreMediaInfo": "Tasyğyşderekter turaly", "LabelVideoCodec": "Beinelık kodek:", "LabelVideoBitrate": "Beine qarqyny:", @@ -1245,14 +1245,14 @@ "PlaybackErrorNoCompatibleStream": "Būl klient tasyğyş derektermen üilesımsız jäne server üilesımdı pışımınde tasyğyş derekterın jıbermedı.", "AllowFfmpegThrottlingHelp": "Qaita kodtau nemese remuksiŋ ağymdyq oinatu jaiğasymynan edäuır alğa ozğanda, qor közderın azdau tūtynatyndai etıp üdırıstı kıdırtedı. Būl jiı ızdemei qarau kezınde paidaly. Eger oinatu mäselelerı bolsa, ony öşırıŋız.", "Album": "Älbom", - "DeinterlaceMethodHelp": "Bağdarlamalyq jasaqtama şatysqan mazmūndy qaıta kodtau kezіnde paidalanylatyn şatyssyzdandyru ädіsіn taŋdaŋyz. Aparattyq jedeldetudі qoldaityn aparattyq şatyssyzdandyrudy qosylğan kezde, osy parametrdіŋ ornyna aparattyq şatyssyzdandyrğyş qoldanylady.", + "DeinterlaceMethodHelp": "Bağdarlamalyq jasaqtama şatysqan mazmūndy qaıta kodtau kezınde paidalanylatyn şatyssyzdandyru ädısın taŋdaŋyz. Aparattyq jedeldetudі qoldaityn aparattyq şatyssyzdandyrudy qosylğan kezde, osy parametrdıŋ ornyna aparattyq şatyssyzdandyrğyş qoldanylady.", "LabelDeinterlaceMethod": "Şatyssyzdandyrudy ädısı:", "YadifBob": "YADIF eki eseleýimen", "OnApplicationStartup": "Qoldanba ıske qosylğanda", "EveryXHours": "Är {0} sağ", "EveryHour": "Är sağat", "EveryXMinutes": "Är {0} min", - "OnWakeFromSleep": "Ūiqylyqtan oianğanda", + "OnWakeFromSleep": "Oianğanda", "WeeklyAt": "{0} {1} kezınde", "DailyAt": "Künde {0} kezınde", "LastSeen": "Soŋğy körıngenı {0}", @@ -1286,7 +1286,7 @@ "LabelEnableHttps": "HTTPS qosu", "HeaderSyncPlayEnabled": "SyncPlay qosuly", "HeaderSyncPlaySelectGroup": "Topty qosu", - "HeaderServerAddressSettings": "Server mekenjaiy parametrlerı", + "HeaderServerAddressSettings": "Server mekenjaiynyŋ parametrlerı", "HeaderRemoteAccessSettings": "Qaşyqtan qatynau parametrlerı", "HeaderHttpsSettings": "HTTPS parametrlerı", "HeaderDVR": "DVR", @@ -1328,7 +1328,7 @@ "HeaderNetworking": "IP-protokoldar", "HeaderDebugging": "Küiın keltıru men qadağalau", "HeaderAddUpdateSubtitle": "Sūbtitrler üsteu/jaŋartu", - "EnableFasterAnimations": "Jyldamyraq animasialar", + "EnableFasterAnimations": "Jyldam animasialar", "Authorize": "Rūqsat etu", "EnableDetailsBanner": "Egjeiler banerı", "Bwdif": "BWDIF süzgısı", @@ -1372,7 +1372,7 @@ "QuickConnectAuthorizeCode": "Kıru üşın {0} kodyn engızıŋız", "QuickConnectActivationSuccessful": "Sättı belsendırıldı", "QuickConnect": "Quick Connect qyzmetı", - "PluginFromRepo": "{0}, {1} repozitorinan", + "PluginFromRepo": "{0}, {1} repozitoridan", "Profile": "Profail", "PreviousTrack": "Aldyŋğysyna ötu", "LabelTonemappingThreshold": "Tonmapiŋ şegı:", @@ -1383,11 +1383,11 @@ "LabelTonemappingAlgorithm": "Tonmapiŋ algoritmyn taŋdau:", "LabelAutomaticDiscovery": "Avtomatty baiqaudy qosu:", "LabelAutoDiscoveryTracing": "Avtomatty baiqau qadağalauyn qosu.", - "EnableTonemapping": "Tonmapiŋ qosu", + "EnableTonemapping": "Tonmapiŋdı qosu", "EnableQuickConnect": "Osy serverde Quick Connect qosu", "EnableFasterAnimationsHelp": "Jyldam animasialar men auysulardy paidalanu", - "EnableBlurHash": "Keskіnder üşіn būlyŋğyr toltyrğyştardy qosu", - "ApiKeysCaption": "Ağymdağy qosylğan API-kіltterdıŋ tіzіmі", + "EnableBlurHash": "Keskіnder üşın būlyŋğyr toltyrğyştardy qosu", + "ApiKeysCaption": "Ağymdağy qosylğan API-kıltterdıŋ tızımı", "LabelMaxAudiobookResume": "Dybys kіtaptyŋ eŋ köp jalğastyryluy, min:", "LabelKnownProxies": "Belgılı proksiler:", "LabelHDHomerunPortRange": "HD Homerūn porttarynyŋ auqymy:", @@ -1395,13 +1395,13 @@ "LabelEnableSSDPTracing": "SSDP qadağalauyn qosu:", "LabelEnableIP6Help": "IPv6 mümkındıkterın qosady.", "LabelEnableIP4Help": "IPv4 mümkındıkterın qosady.", - "EnableDetailsBannerHelp": "Baner suretіn tarmaq egjeilerı betіnіŋ joğarysynda beineleu.", - "EnableDecodingColorDepth10Vp9": "VP9 üşіn 10-bittіk aparattyq kodsyzdandyrudy qosu", - "EnableDecodingColorDepth10Hevc": "HEVC üşіn 10-bittіk aparattyq kodsyzdandyrudy qosu", - "DeleteDevicesConfirmation": "Şynymen barlyq qūrylğylar joiylsyn ba? Barlyq qalğan seanstar aiaqtalady. Paidalanuşy kelesі kіrgen kezde qūrylğylar qaita paida bolady.", - "YoutubePlaybackError": "Saual salynğan beinenі oinatu mümkіn emes.", + "EnableDetailsBannerHelp": "Baner suretın tarmaq egjeilerı betınıŋ joğarysynda beineleu.", + "EnableDecodingColorDepth10Vp9": "VP9 üşın 10-bittık aparattyq kodsyzdandyrudy qosu", + "EnableDecodingColorDepth10Hevc": "HEVC üşın 10-bittіk aparattyq kodsyzdandyrudy qosu", + "DeleteDevicesConfirmation": "Şynymen barlyq qūrylğylar joiylsyn ba? Barlyq qalğan seanstar aiaqtalady. Paidalanuşy kelesı kırgen kezde qūrylğylar qaita paida bolady.", + "YoutubePlaybackError": "Saual salynğan beinenı oinatu mümkın emes.", "AllowHevcEncoding": "HEVC pışımınde kodtauğa rūqsat etu", - "PreferFmp4HlsContainer": "FMP4-HLS tasyğyş konteinerіn qalau", + "PreferFmp4HlsContainer": "FMP4-HLS tasyğyş konteinerın qalau", "Preview": "Aldyn-ala qarau", "PreferEmbeddedEpisodeInfosOverFileNames": "Fail ataulary ornyna endırılgen telebölım aqparatyn qalau", "PosterCard": "Poster kartasy", @@ -1409,7 +1409,7 @@ "PlaybackRate": "Oinatu qarqyny", "Photo": "Foto", "Other": "Basqa", - "OptionMaxActiveSessionsHelp": "0 mänі mümkındıktı öşіredі.", + "OptionMaxActiveSessionsHelp": "0 mänі mümkındıktı öşıredі.", "OptionMaxActiveSessions": "Bіr mezettegı qoldanuşy seanstarynyŋ eŋ köp sanyn ornatu.", "OptionAllowContentDownload": "Tasyğyşderekter faildaryn jükteuge rūqsat etu", "NextTrack": "Kelesıne ötu", @@ -1418,96 +1418,96 @@ "MessageSyncPlayUserLeft": "{0} toptan şyqty.", "MessageSyncPlayUserJoined": "{0} topqa qosyldy.", "MessageSyncPlayPlaybackPermissionRequired": "Oinatu rūqsaty qajet.", - "MessageSyncPlayNoGroupsAvailable": "Toptar qoljetımdı emes. Aldymen bіrdeŋe oinai bastaŋyz.", - "MessageSyncPlayLibraryAccessDenied": "Būl mazmūnğa qoljetіmdіlіk şektelgen.", - "MessageSyncPlayJoinGroupDenied": "Topqa qosylu mümkіn emes.", - "MessageSyncPlayIsDisabled": "SyncPlay paidalanu üşіn rūqsat qajet.", + "MessageSyncPlayNoGroupsAvailable": "Toptar qoljetımdı emes. Aldymen bırdeŋe oinai bastaŋyz.", + "MessageSyncPlayLibraryAccessDenied": "Būl mazmūnğa qoljetіmdılık şektelgen.", + "MessageSyncPlayJoinGroupDenied": "Topqa qosylu mümkın emes.", + "MessageSyncPlayIsDisabled": "SyncPlay paidalanu üşın rūqsat qajet.", "MessageSyncPlayGroupWait": "{0} buferleude…", - "MessageSyncPlayErrorNoActivePlayer": "Belsendі oiynatqyş tabylmady. SyncPlay öşіrіlgen.", + "MessageSyncPlayErrorNoActivePlayer": "Belsendı oiynatqyş tabylmady. SyncPlay öşırılgen.", "MessageSyncPlayErrorMissingSession": "SyncPlay qosylmady! Joq seans.", "MessageSyncPlayErrorMedia": "SyncPlay qosylmady! Tasyğyşderekter qatesı.", "LabelVideoRange": "Beine auqymy:", "LabelUserMaxActiveSessions": "Bіr mezettegı qoldanuşy seanstarynyŋ eŋ köp sany:", "LabelUDPPortRange": "UDP bailanys auqymy:", "LabelSyncPlayTimeSyncOffset": "Uaqyt yğysuy:", - "LabelSyncPlayTimeSyncDevice": "Mynaumen uaqytty ündestıru:", + "LabelSyncPlayTimeSyncDevice": "Uaqytty osymen ündestıru:", "LabelSyncPlayResumePlaybackDescription": "Toptyq oinatuğa qaita qosylu", "LabelSyncPlayResumePlayback": "Jergіlіktі oinatudy jalğastyru", - "LabelSyncPlayHaltPlaybackDescription": "Jäne ağymdağy oinatu tіzіmіnіŋ jaŋartularyn elemeu", + "LabelSyncPlayHaltPlaybackDescription": "Jäne ağymdağy oinatu tızımınіŋ jaŋartularyn elemeu", "LabelSyncPlayHaltPlayback": "Jergіlіktі oinatudy toqtatu", - "LabelSyncPlayAccessNone": "Būl paidalanuşy üşіn öşіrіlgen", + "LabelSyncPlayAccessNone": "Būl paidalanuşy üşın öşırіlgen", "LabelSyncPlayAccessJoinGroups": "Paidalanuşyğa toptarğa qosylu üşın rūqsat beru", "LabelSyncPlayAccessCreateAndJoinGroups": "Paidalanuşyğa toptar qūru jäne olarğa qosylu üşın rūqsat beru", - "LabelRepositoryNameHelp": "Būl repozitoridі serverіŋіzge qosylğan basqalardan aiyrmaşylyğyn köru üşіn retteletіn atau.", + "LabelRepositoryNameHelp": "Būl repozitoridі serverıŋızge qosylğan basqalardan aiyrmaşylyğyn köru üşın retteletіn atau.", "LabelPublishedServerUri": "Jarialanğan serverlık URI-mekenjailary:", "LabelOpenclDevice": "OpenCL qūrylğysy:", "LabelMinAudiobookResumeHelp": "Būl kezden būryn toqtatylsa tuyndylar oinatylmağan dep boljaldy.", - "LabelMinAudiobookResume": "Dybys kіtabyŋ jalğastyu üşın eŋ az uaqyty, min:", - "LabelMaxMuxingQueueSize": "Muksıŋ kezegınіŋ eŋ ülken mölşerі:", - "LabelFallbackFontPathHelp": "ASS/SSA subtitrlerіn qalyptastyru üşın orynbasuşy qarіpterden tūratyn joldy anyqtaŋyz. Qarіptіŋ rūqsat etіlgen jalpy eŋ ülken kölemі - 20 MB. Qarіptіŋ jeŋіldetılgen jäne ueb-betterıne yŋğaily pışımderı, mysaly, woff2 ūsynylady.", - "EnableFallbackFontHelp": "Teŋşeulі balama qarіpterdі qosu. Būl subtitrlerdі būrys qalyptastyru mäselesınen jaltaru boluy mümkın.", - "LabelFallbackFontPath": "Orynbasuşy qarіp qaltasynyŋ joly:", - "HeaderSelectFallbackFontPathHelp": "ASS/SSA subtitrlerіn qalyptastyru üşіn paidalanylatyn orynbasuşy qarıp qaltasyn şarlaŋyz nemese engіzіŋіz.", - "HeaderSelectFallbackFontPath": "Orynbasuşy qarіp qaltasynyŋ jolyn taŋdau", - "UseDoubleRateDeinterlacing": "Şatyssyzdandyrudy kezіnde kadr jiіlіgіn qosarlatu", - "QuickConnectDeactivated": "Kіru saualy bekıtılu mümkın bolmastai, Quick connect ajyratyldy", - "QuickConnectNotAvailable": "Quick Connect qosyluyn server äkіmşіsіnen sūraŋyz", - "QuickConnectNotActive": "Būl serverde Quick connect belsendі emes", + "LabelMinAudiobookResume": "Dybys kіtabyŋ jalğastyru üşın eŋ az uaqyty, min:", + "LabelMaxMuxingQueueSize": "Muksiŋ kezegınıŋ eŋ ülken mölşerı:", + "LabelFallbackFontPathHelp": "ASS/SSA subtitrlerın qalyptastyru üşın orynbasuşy qarıpterden tūratyn joldy anyqtaŋyz. qarıptıŋ rūqsat etılgen jalpy eŋ ülken kölemı - 20 MB. qarıptıŋ jeŋıldetılgen jäne ueb-betterıne yŋğaily pışımderı, mysaly, woff2 ūsynylady.", + "EnableFallbackFontHelp": "Teŋşeulı balama qarıpterdı qosu. Būl subtitrlerdı būrys qalyptastyru mäselesınen jaltaru boluy mümkın.", + "LabelFallbackFontPath": "Orynbasuşy qarıp qaltasynyŋ joly:", + "HeaderSelectFallbackFontPathHelp": "ASS/SSA subtitrlerın qalyptastyru üşın paidalanylatyn orynbasuşy qarıp qaltasyn şarlaŋyz nemese engızıŋız.", + "HeaderSelectFallbackFontPath": "Orynbasuşy qarıp qaltasynyŋ jolyn taŋdau", + "UseDoubleRateDeinterlacing": "Şatyssyzdandyrudy kezınde kadr jiіlіgіn qosarlatu", + "QuickConnectDeactivated": "Kıru saualy bekıtılu mümkın bolmastai, Quick connect ajyratyldy", + "QuickConnectNotAvailable": "Quick Connect qosyluyn server äkımşısınen sūraŋyz", + "QuickConnectNotActive": "Būl serverde Quick connect belsendı emes", "QuickConnectAuthorizeFail": "Belgısız Quick connect kody", - "PreferEmbeddedEpisodeInfosOverFileNamesHelp": "Telebölım aqparatyn, būl bar bolsa, endіrіlgen metaderekterden paidalanady.", - "PathNotFound": "Joldy tabu mümkın bolmady. Joldyŋ jaramdy ekenіne köz jetkіzіp, qaitalap körіŋіz.", + "PreferEmbeddedEpisodeInfosOverFileNamesHelp": "Telebölım aqparatyn, būl bar bolsa, endırılgen metaderekterden paidalanady.", + "PathNotFound": "Joldy tabu mümkın bolmady. Joldyŋ jaramdy ekenıne köz jetkızıp, qaitalap körıŋіz.", "MessageSyncPlayGroupDoesNotExist": "Top joq bolğasyn, oğan qosylu sätsız boldy.", - "MessageSyncPlayErrorAccessingGroups": "Toptar tіzіmіne qatynau kezіnde qate paida boldy.", + "MessageSyncPlayErrorAccessingGroups": "Toptar tızımıne qatynau kezınde qate paida boldy.", "MessageSyncPlayCreateGroupDenied": "Top qūruğa rūqsat qajet.", - "MessagePluginInstallError": "Plagindі ornatu kezіnde qate paida boldy.", + "MessagePluginInstallError": "Plagindı ornatu kezınde qate paida boldy.", "MessageNoGenresAvailable": "İnternetten janrlardy alu üşın keibіr metaderekter jetkіzuşіlerın qosu.", - "MessageGetInstalledPluginsError": "Ornatylğan plaginderdіŋ ağymdyq tіzіmіn alu kezіnde qate paida boldy.", + "MessageGetInstalledPluginsError": "Ornatylğan plaginderdıŋ ağymdyq tızımın alu kezınde qate paida boldy.", "MessagePlaybackError": "Būl faildy Google Cast qabyldağyşy oinatqanda qate paida boldy.", "LabelMaxAudiobookResumeHelp": "Osy uaqyttan keiіn toqtatylğan bolsa, şyğarylymdar tolyğymen oinatyldy dep sanalady.", "LabelIconMaxResHelp": "\"upnp:ıcon\" sipaty arqyly körstıletın belgışelerdıŋ eŋ joğary ajyratylymdyğy.", "LabelHDHomerunPortRangeHelp": "HD Homerūn qūrylğysynyŋ UDP-porttar auqymy osy mänge şekteledі. (Ädepkіsı: 1024 - 645535).", - "LabelEnableSSDPTracingHelp": "Tіrkeletın SSDP-jelіsіn qadağalau egjeilerі qosylady.
ESKERTU: Būl önіmdіlіktіŋ salmaqty naşarlauyna äkeledі.", + "LabelEnableSSDPTracingHelp": "SSDP jelılik qadağalau egjeilerın jūrnalğa tirkeuın qosady.
ESKERTU: Būl önımdılıktıŋ salmaqty naşarlauyna äkeledі.", "LabelCreateHttpPortMap": "HTTP-trafıgı jäne de HTTPS üşın, avtomatty port salğastyru qosylady.", - "YoutubeDenied": "Saual jasalğan beine üşın endіrіlgen oinatqyştarda oinatuğa tyiym salynğan.", - "WriteAccessRequired": "Jellyfin osy qaltada jazuğa rūqsatty qajet etedі. Jazu rūqsatyn qamtamasyz etіp, qaitalap körіŋіz.", - "TonemappingRangeHelp": "Şyğystyq tüs auqymyn taŋdau. Avto, kіrіstık auqymymen bіrdei bolady.", - "LabelSSDPTracingFilterHelp": "Tіrkelgen SSDP-trafigіn süzuge arnalğan mındettı emes IP-mekenjai.", - "LabelRepositoryUrlHelp": "Üstelınetın repozitori manifestіnіŋ jaiğasymy.", + "YoutubeDenied": "Saual jasalğan beine üşın endırılgen oinatqyştarda oinatuğa tyiym salynğan.", + "WriteAccessRequired": "Jellyfin osy qaltada jazuğa rūqsatty qajet etedі. Jazu rūqsatyn qamtamasyz etıp, qaitalap körıŋız.", + "TonemappingRangeHelp": "Şyğystyq tüs auqymyn taŋdau. Avto, kırıstık auqymymen bırdei bolady.", + "LabelSSDPTracingFilterHelp": "Tırkelgen SSDP-trafigın süzuge arnalğan mındettı emes IP-mekenjai.", + "LabelRepositoryUrlHelp": "Üstelınetın repozitori manifestınıŋ ornalasymy.", "LabelPublishedServerUriHelp": "Jellyfin paidalanylatyn URI, interfeis nemese tūtynğyş IP-mekenjaiy negіznde almastyrylady.", - "LabelTonemappingParamHelp": "Tonmapiŋ algoritmın retteu. Ūsynylğan jäne ädepkі mänder - NaN. Ädette ony bos qaldyryŋyz.", + "LabelTonemappingParamHelp": "Tonmapiŋ algoritmın retteu. Ūsynylğan jäne ädepkı mänder - NaN. Ädette ony bos qaldyryŋyz.", "LabelAutomaticDiscoveryHelp": "Qoldanbalarğa Jellyfin-dı avtomatty anyqtauğa 7359 UDP-porty arqyly rūqsat etıledı.", "LabelAutoDiscoveryTracingHelp": "Qosylğan kezde avtomatty anyqtau portynda qabyldanğan desteler tіrkeledі.", "LabelAlbumArtMaxResHelp": "\"upnp:albumArtURI\" sipaty arqyly körstıletın älbom mūqabasynyŋ eŋ joğary ajyratylymdyğy.", - "EnableBlurHashHelp": "Älі jüktelıp jatyrğan suretter bіregei toltyrğyş arqyly beinelenedі.", - "LabelLibraryPageSizeHelp": "Tasyğyşhana betınde körsetіletіn tarmaqtardyŋ mölşerі ornatylady. Betteudı öşіru üşіn 0 mänіn ornatyŋyz.", - "LabelEnableHttpsHelp": "Teŋşelgen HTTPS-porty tyŋdalady. Būl küşіne enuі üşіn jaramdy kuälık jetıldıruı qajet.", - "LabelCreateHttpPortMapHelp": "HTTPS-trafigіne qosymşa keletın HTTP-trafik erejesın jasau üşіn avtomatty port salğastyruğa rūqsat etіledı.", + "EnableBlurHashHelp": "Älı jüktelıp jatyrğan suretter bıregei toltyrğyş arqyly beinelenedı.", + "LabelLibraryPageSizeHelp": "Tasyğyşhana betınde körsetıletın tarmaqtardyŋ mölşerı ornatylady. Betteudı öşıru üşın 0 mänın ornatyŋyz.", + "LabelEnableHttpsHelp": "Teŋşelgen HTTPS-porty tyŋdalady. Būl küşıne enuі üşın jaramdy kuälık jetıldıruı qajet.", + "LabelCreateHttpPortMapHelp": "HTTPS-trafigıne qosymşa keletın HTTP-trafik erejesın jasau üşın avtomatty port salğastyruğa rūqsat etіledı.", "MessageAddRepository": "Eger repozitoridı üstegıŋız kelse, üstіŋgі derekteme janyndağy tüimeşıktı basyp, saual etılgen aqparatty toltyryŋyz.", - "LabelRequireHttpsHelp": "Belgіlengen bolsa, server HTTP arqyly kelgen barlyq saualdardy HTTPS üşın avtomatty bağyttaidy. Eger server HTTPS-portyn tyŋdamasa, būl eşqandai äser etpeidі.", - "SyncPlayAccessHelp": "Būl paidalanuşynyŋ SyncPlay mümkіndіgіne qatynau deŋgeiіn taŋdaŋyz. SyncPlay basqa qūrylğylarmen oinatudy ündestıruge mümkіndіk beredі.", - "SubtitleVerticalPositionHelp": "Mätіn kösetıletın jol nömіrі. Oŋ sandar joğarydan tömenge bağyttalğan. Terіs sandar tömennen joğaryğa bağyttalğan.", - "QuickConnectDescription": "Quick Connect arqyly jüiege kіru üşіn jüieden kіrіp jatqan qūrylğydan Quick Connect tüimeşıgіn taŋdap, tömende körsetіlgen kodty engіzіŋіz.", - "OptionAllowContentDownloadHelp": "Paidalanuşylar tasyğyşderekterdı jüktep alyp, ony öz qūrylğylarynda saqtai alady. Būl ündestıru mümkіndіgіmen bіrdei emes. Kіtap tasyğyşhanalaryna būl dūrys jūmys іsteu üşіn qajet.", + "LabelRequireHttpsHelp": "Belgılengen bolsa, server HTTP arqyly kelgen barlyq saualdardy HTTPS üşın avtomatty bağyttaidy. Eger server HTTPS-portyn tyŋdamasa, būl eşqandai äser etpeidı.", + "SyncPlayAccessHelp": "Būl paidalanuşynyŋ SyncPlay mümkındіgіne qatynau deŋgeiіn taŋdaŋyz. SyncPlay basqa qūrylğylarmen oinatudy ündestıruge mümkındık beredі.", + "SubtitleVerticalPositionHelp": "Mätın kösetıletın jol nömіrі. Oŋ sandar joğarydan tömenge bağyttalğan. Terіs sandar tömennen joğaryğa bağyttalğan.", + "QuickConnectDescription": "Quick Connect arqyly jüiege kıru üşın jüieden kırıp jatqan qūrylğydan Quick Connect tüimeşıgın taŋdap, tömende körsetılgen kodty engızıŋız.", + "OptionAllowContentDownloadHelp": "Paidalanuşylar tasyğyşderekterdı jüktep alyp, ony öz qūrylğylarynda saqtai alady. Būl ündestıru mümkındіgіmen bırdei emes. Kіtap tasyğyşhanalaryna būl dūrys jūmys іsteu üşın qajet.", "RemuxHelp2": "Remūksiŋ müldem derekterı joğaltymynsyz tasyğyşderekter sapasymen öte az öŋdeu quatyn paidalanady.", - "PreferFmp4HlsContainerHelp": "Qoldau körsetіlgen qūrylğylarğa HEVC-mazmūndy tıkelei taratuğa mümkіndіk beretіn, HLS üşіn ädepkі retіnde fMP4-konteinerdı paidalanuyn qalau.", - "MessageChromecastConnectionError": "Google Cast qabyldağyşy Jellyfin-serverben bailanysa almaidy. Qosylymdy tekserіp, qaitalap körіŋіz.", - "TonemappingAlgorithmHelp": "Tonmapiŋdı naqty teŋşeuge bolady. Eger osy opsialarmen tanys bolmasaŋyz, ädettegıdei ädepkіnı qaldyryŋyz. Ūsynylğan män - Hable.", - "LabelUDPPortRangeHelp": "UDP-qosylymdaryn jasağanda, Jellyfin üşın osy port auqymyn paidalanuğa şekteu qoiylady. (Ädepkі mänі: 1024 - 645535).
Eskerım: Belgіlі bіr mümkındık üşіn osy auqymnan tys tūraqty porttar qajet boluy mümkіn.", - "LabelOpenclDeviceHelp": "Būl tonmapiŋ üşіn paidalanylatyn OpenCL qūrylğysy. Nüktenіŋ sol jağy - tūğyrnama nömіrі, al oŋ jağy - tūğyrnamadağy qūrylğynyŋ nömіrі. Ädepkі mänі - 0,0. OpenCL aparattyq jedeldetu ädіsіn qamtityn ffmpeg qoldanbasynyŋ faily qajet.", + "PreferFmp4HlsContainerHelp": "Qoldau körsetılgen qūrylğylarğa HEVC-mazmūndy tıkelei taratuğa mümkındık beretın, HLS üşın ädepkı retınde fMP4-konteinerdı paidalanuyn qalau.", + "MessageChromecastConnectionError": "Google Cast qabyldağyşy Jellyfin-serverben bailanysa almaidy. Qosylymdy tekserıp, qaitalap körıŋız.", + "TonemappingAlgorithmHelp": "Tonmapiŋdı naqty teŋşeuge bolady. Eger osy opsialarmen tanys bolmasaŋyz, ädettegıdei ädepkını qaldyryŋyz. Ūsynylğan män - Hable.", + "LabelUDPPortRangeHelp": "UDP-qosylymdaryn jasağanda, Jellyfin üşın osy port auqymyn paidalanuğa şekteu qoiylady. (Ädepkı mänı: 1024 - 645535).
Eskerım: Belgılı bır mümkındık üşın osy auqymnan tys tūraqty porttar qajet boluy mümkın.", + "LabelOpenclDeviceHelp": "Būl tonmapiŋ üşın paidalanylatyn OpenCL qūrylğysy. Nüktenіŋ sol jağy - tūğyrnama nömіrі, al oŋ jağy - tūğyrnamadağy qūrylğynyŋ nömіrі. Ädepkі mänі - 0,0. OpenCL aparattyq jedeldetu ädіsіn qamtityn ffmpeg qoldanbasynyŋ faily qajet.", "RemuxHelp1": "Tasyğyşderekter syiysymdy emes faildyq konteinerde (MKV, AVI, WMV jäne t.b.) tūr, al beine ağyny da, dybys ağyny da qūrylğymen syiysymdy. Tasyğyşderekter qūrylğyğa jіberіlmes būryn naqty uaqytta derekterı joğaltymynsyz qaıta jinaqtalady.", - "KnownProxiesHelp": "Jellyfin danasyna qosylu kezіnde paidalanylatyn belgіlі proksilerdıŋ ütіrmen bölіngen IP-mekenjailar tіzіmі. Osy X-Forwarded-For üstıngı derektemeler tiıstı paidalanu üşіn qajet. Saqtaudan keiіn qaita ıske qosudy qajet etedі.", - "LabelMaxMuxingQueueSizeHelp": "Barlyq ağyndardyŋ ıske qosylğanyn kütken kezde buferge jіberіletіn eŋ köp desteler sany. Eger älі de ffmpeg jūrnaldarynda \"Too many packets būffered for oūtpūt stream\" (Şyğarylym ağyny üşіn tym köp deste buferlengen) qatesı kezdesıp tūrsa, ony artyp körіŋіz. Ūsynylğan mänı - 2048.", - "AllowTonemappingHelp": "Tonmapiŋ, keskіnnіŋ egjeilerі men tüsterіn saqtai otyryp, beinenіŋ HDR dinamikalyq auqymyn SDR auqymyna türlendıre alady, būl tüpnūsqalyq sahnamen tanystyru üşіn öte maŋyzdy aqparat. Ağymda, endırılgen HDR10 nemese HLG metaderekterі bar beinelerdі qaita kodtau kezіnde ğana, jūmys іsteidі. Eger oinatu tegіs bolmasa nemese sätsіz aiaqtalsa, tiіstі aparattyq dekoderdі öşіruın qarastyryŋyz.", - "UnsupportedPlayback": "Jellyfin, DRM arqyly qorğalğan mazmūndyŋ şifryn şeşe almaidy, bіraq barlyq mazmūnğa, sonyŋ іşіnde qorğalğan şyğarymdarğa, būğan qaramastan äreket jasalady. Keibіr faildar, şifrlau nemese basqa qoldau körsetіlmeitіn mümkіndіkterge bailanysty, mysaly, äreketestık şyğarymdarğa, tolyq qara bolyp körіnuі mümkіn.", - "LabelTonemappingPeakHelp": "Osy mänmen signaldy/nominaldy/anyqtamalyq şyŋ qaita anyqtalady. Beinelenetın metaderekterge endırılgen şyŋdyq aqparat senіmdі bolmağan kezde nemese tömengі auqymnan joğary auqymğa ötkızetın tonmapiŋ kezіnde paidaly. Ūsynylğan jäne ädepkі mänder 100 jäne 0.", - "UseDoubleRateDeinterlacingHelp": "Būl parametr şatyssyzdandyru kezіnde örіs qarqynyn paidalanady, ony köbіnese \"bob\" şatyssyzdandyru dep ataidy, būl şatysqan beinenі teledidardan körgen kezdegіdei tolyq jyljymaldyqty jetkızu üşіn beinenіŋ kadr jiılıgı qosarlatylady.", - "LabelTonemappingThresholdHelp": "Tonmapiŋ algoritmynyŋ parametrlerі är sahnağa säikes baptalady. Al şektіk män sahnanyŋ özgergen-özgermegenіn anyqtau üşіn qoldanylady. Eger ağymdyq kadrdyŋ ortaşa jaryqtyğy men ağymdyq syrğymaly orta män aralyğy şektіk männen asyp ketse, onda bіz sahna orta mänı men şyŋdyq jaryqtyğyn qaita esepteitіn bolamyz. Ūsynylğan jäne ädepkі mänder - 0,8 jäne 0,2 bolady.", - "LabelTonemappingDesatHelp": "Jaryqtyqtyŋ osy deŋgeiіnen asatyn jarqyn aimaqtar üşіn qanyqsyzdandyru qoldanylady. Parametr neğūrlym joğary bolsa, soğūrlym tüstіk aqparat saqtalady. Būl parametr öte jarqyn aimaqtar üşın rabaisyz köz şağylystyratyndai tüsterіn boldyrmauğa kömektesedі, ornyna olar aq tüske (tegіs) ainalady. Būl auqymnan tys tüster turaly aqparatty azaitu esebınen keskınderdіn tabiğilyğyn köbırek sezіnuge mäjbür etedі. Ūsynylğan jäne ädepkі mänder - 0 jäne 0.5 bolady.", + "KnownProxiesHelp": "Jellyfin danasyna qosylu kezınde paidalanylatyn belgılı proksilerdıŋ ütırmen bölıngen IP-mekenjailar nemese tüiınder tızımı. Osy X-Forwarded-For üstıngı derektemeler tiıstı paidalanu üşın qajet. Saqtaudan keiın qaita ıske qosudy qajet etedі.", + "LabelMaxMuxingQueueSizeHelp": "Barlyq ağyndardyŋ ıske qosylğanyn kütken kezde buferge jıberıletіn destelerdıŋ eŋ köp sany. Eger älі de ffmpeg jūrnaldarynda \"Too many packets buffered for output stream\" (Şyğarylym ağyny üşın tym köp deste buferlengen) qatesı kezdesıp tūrsa, ony artyp körıŋız. Ūsynylğan mänı - 2048.", + "AllowTonemappingHelp": "Tonmapiŋ, keskınnıŋ egjeilerı men tüsterın saqtai otyryp, beinenıŋ HDR dinamikalyq auqymyn SDR auqymyna türlendıre alady, būl tüpnūsqalyq sahnamen tanystyru üşın öte maŋyzdy aqparat. Ağymda, endırılgen HDR10 nemese HLG metaderekterı bar beinelerdı qaita kodtau kezınde ğana, jūmys ısteidı. Eger oinatu tegıs bolmasa nemese sätsız aiaqtalsa, tiıstі aparattyq dekoderdı öşıruın qarastyryŋyz.", + "UnsupportedPlayback": "Jellyfin, DRM arqyly qorğalğan mazmūndyŋ şifryn şeşe almaidy, bıraq barlyq mazmūnğa, sonyŋ ışınde qorğalğan şyğarymdarğa, būğan qaramastan äreket jasalady. Keibır faildar, şifrlau nemese basqa qoldau körsetılmeitın mümkındıkterge bailanysty, mysaly, äreketestık şyğarymdarğa, tolyq qara bolyp körınuı mümkın.", + "LabelTonemappingPeakHelp": "Osy mänmen signaldy/nominaldy/anyqtamalyq şyŋ qaita anyqtalady. Beinelenetın metaderekterge endırılgen şyŋdyq aqparat senımdı bolmağan kezde nemese tömengı auqymnan joğary auqymğa ötkızetın tonmapiŋ kezınde paidaly. Ūsynylğan jäne ädepkı mänder 100 jäne 0.", + "UseDoubleRateDeinterlacingHelp": "Būl parametr şatyssyzdandyru kezınde örıs qarqynyn paidalanady, ony köbınese \"bob\" şatyssyzdandyru dep ataidy, būl şatysqan beinenı teledidardan körgen kezdegıdei tolyq jyljymaldyqty jetkızu üşın beinenıŋ kadr jiılıgı qosarlatylady.", + "LabelTonemappingThresholdHelp": "Tonmapiŋ algoritmynyŋ parametrlerі är sahnağa säikes baptalady. Al şektık män sahnanyŋ özgergen-özgermegenіn anyqtau üşın qoldanylady. Eger ağymdyq kadrdyŋ ortaşa jaryqtyğy men ağymdyq syrğymaly orta män aralyğy şektіk männen asyp ketse, onda bіz sahna orta mänı men şyŋdyq jaryqtyğyn qaita esepteitіn bolamyz. Ūsynylğan jäne ädepkı mänder - 0,8 jäne 0,2 bolady.", + "LabelTonemappingDesatHelp": "Jaryqtyqtyŋ osy deŋgeiınen asatyn jarqyn aimaqtar üşın qanyqsyzdandyru qoldanylady. Parametr neğūrlym joğary bolsa, soğūrlym tüstık aqparat saqtalady. Būl parametr öte jarqyn aimaqtar üşın rabaisyz köz şağylystyratyndai tüsterın boldyrmauğa kömektesedı, ornyna olar aq tüske (tegıs) ainalady. Būl auqymnan tys tüster turaly aqparatty azaitu esebınen keskınderdın tabiğilyğyn köbırek sezınuge mäjbür etedı. Ūsynylğan jäne ädepkı mänder - 0 jäne 0.5 bolady.", "AllowVppTonemappingHelp": "OpenCL süzgısın qoldanbai aparattyq qūraldarğa tolyq negızdelgen tonmapiŋ. Ağymda HDR10 metaderekterı bar beinelerdı qaita kodtau kezınde ğana jūmys ısteidı.", - "EnableVppTonemapping": "VPP tonmapiŋdi qosu", + "EnableVppTonemapping": "VPP tonmapiŋdı qosu", "EnableEnhancedNvdecDecoder": "Jaqsartylğan NVDEC kodsyzdandyrğyşty qosu", - "DisablePlugin": "Plagindı öşıru", - "EnablePlugin": "Plagindı qosu", + "DisablePlugin": "Öşıru", + "EnablePlugin": "Qosu", "Framerate": "Kadr jyld-ğy", "DirectPlayHelp": "Qainar fail osy tūtynğyşpen tolyğymen üilesımdı, al seans osy faildy özgertusız qabyldaidy." } diff --git a/src/strings/ko.json b/src/strings/ko.json index fbce80fe97..1c43e72048 100644 --- a/src/strings/ko.json +++ b/src/strings/ko.json @@ -870,7 +870,7 @@ "LabelLanNetworks": "LAN 네트워크:", "LabelInternetQuality": "인터넷 퀄리티:", "LabelHomeNetworkQuality": "홈 네트워크 퀄리티:", - "LabelEncoderPreset": "H264 인코딩 프리셋:", + "LabelEncoderPreset": "인코딩 프리셋:", "LabelFont": "폰트:", "LabelFolder": "폴더:", "LabelFileOrUrl": "파일 또는 URL:", @@ -1047,7 +1047,7 @@ "HeaderNextVideoPlayingInValue": "{0}뒤에 다음 비디오 재생", "HeaderOnNow": "지금", "LabelBlockContentWithTags": "다음 태그가 있는 항목 차단:", - "H264CrfHelp": "CRF(고정 레이트 팩터)는 x264 인코더의 기본 품질 설정입니다. 0에서 51 사이의 값을 설정할 수 있습니다. 값이 작을수록 품질이 향상됩니다(파일 크기가 커지면서). Sane 값은 18과 28 사이입니다. x264의 기본값은 23이므로 시작점으로 사용할 수 있습니다.", + "H264CrfHelp": "CRF(고정 레이트 팩터)는 x264와 x265 인코더의 기본 품질 설정입니다. 0에서 51 사이의 값을 설정할 수 있습니다. 값이 작을수록 품질이 향상됩니다(파일 크기가 커지면서). Sane 값은 18과 28 사이입니다. x264의 기본값은 23이고, x265는 28입니다. 이 기본값을 시작점으로 사용할 수 있습니다.", "LabelSeasonNumber": "시즌 번호:", "LabelPlayer": "재생기:", "MediaInfoBitDepth": "비트뎁스", @@ -1426,5 +1426,38 @@ "OptionAllowContentDownload": "영상 다운로드 허용", "HeaderDeleteDevices": "모든 기기 삭제", "DeleteDevicesConfirmation": "모든 디바이스를 삭제하시겠습니까?다른 세션은 모두 로그아웃 됩니다.디바이스는 다음 번 로그인 했을 때에 다시 표시되게 됩니다.", - "DeleteAll": "전체삭제" + "DeleteAll": "전체삭제", + "LabelMinAudiobookResumeHelp": "이 시간을 지나기 전에 정지되면 재생되지 않은 것으로 간주합니다.", + "LabelMinAudiobookResume": "최소 Audiobook 다시시작 시간 (분):", + "LabelMaxAudiobookResumeHelp": "이 시간을 넘겼을 때 정지되면 완전히 재생된 것으로 간주합니다.", + "LabelMaxAudiobookResume": "최대 Audiobook 다시시작 시간 (분):", + "LabelIsForced": "강제하기", + "LabelHDHomerunPortRangeHelp": "HD Homerun의 UDP 포트 범위를 이 값으로 제한합니다 (기본값 1024 - 645535).", + "LabelHDHomerunPortRange": "HD Homerun 포트 범위:", + "LabelH265Crf": "H265 인코딩 CRF:", + "LabelEnableSSDPTracingHelp": "SSDP 네트워크의 세부사항이 저장됩니다.
경고: 심각한 성능 저하를 일으킬 수 있습니다.", + "LabelEnableSSDPTracing": "SSDP 추적 활성화:", + "AllowVppTonemappingHelp": "OpenCL필터 없이 하드웨어 기반으로 톤 매핑을 활성화합니다. 현재 내장된 HDR10 메타데이터가 있는 영상을 변환할 때만 작동합니다.", + "LabelEnableIP6Help": "IPv6 기능을 활성화합니다.", + "LabelEnableIP6": "IPv6 활성화:", + "LabelEnableIP4Help": "IPv4 기능을 활성화합니다.", + "LabelEnableIP4": "IPv4 활성화:", + "LabelDropSubtitleHere": "여기에 자막을 드롭하거나, 클릭하여 탐색기 열기.", + "LabelCreateHttpPortMapHelp": "https와 http 트래픽에 대한 규칙을 만들기 위해 자동 포트 맵핑을 허용.", + "LabelCreateHttpPortMap": "http와 https 트래픽에서 자동 포트 맵핑 활성화.", + "LabelAutomaticDiscoveryHelp": "프로그램이 포트 7359/udp 에서 자동으로 Jellyfin을 발견하도록 허용합니다.", + "LabelAutomaticDiscovery": "자동 탐색 활성화:", + "LabelAutoDiscoveryTracingHelp": "활성화하면, 자동 탐색 포트로 받은 패킷이 기록됩니다.", + "LabelAutoDiscoveryTracing": "자동 탐색 추적 활성화", + "HeaderUploadSubtitle": "자막 업로드", + "HeaderPortRanges": "방화벽 및 프록시 설정", + "HeaderNetworking": "IP 프로토콜", + "HeaderDebugging": "디버그 및 추적", + "HeaderAutoDiscovery": "네트워크 탐색", + "HeaderAddUser": "사용자 추가", + "HeaderAddUpdateSubtitle": "자막 추가/업데이트", + "Framerate": "프레임 레이트", + "DisablePlugin": "플러그인 비활성화", + "EnablePlugin": "플러그인 활성화", + "DirectPlayHelp": "원본 파일이 이 재생 장치에 완벽하게 호환됩니다. 파일을 수정하지 않고 받아옵니다." } diff --git a/src/strings/lt-lt.json b/src/strings/lt-lt.json index 5d2b5d96dd..148882f26c 100644 --- a/src/strings/lt-lt.json +++ b/src/strings/lt-lt.json @@ -481,7 +481,7 @@ "DateAdded": "Pridėjimo data", "DatePlayed": "Grojimo data", "DeathDateValue": "Mirė: {0}", - "Default": "Numatytasis", + "Default": "Numatytas", "DeleteDeviceConfirmation": "Ar tikrai norite ištrinti šį įrenginį? Įrenginys atsiras kitą kartą, kai vartotojas vėl prisijungs su juo.", "DeleteImage": "Trinti paveikslą", "DeleteImageConfirmation": "Ar tikrai norite ištrinti šį paveikslą?", diff --git a/src/strings/ml.json b/src/strings/ml.json index 8721e27eb6..c9c81d047f 100644 --- a/src/strings/ml.json +++ b/src/strings/ml.json @@ -1501,8 +1501,8 @@ "AllowVppTonemappingHelp": "OpenCL ഫിൽട്ടർ ഉപയോഗിക്കാതെ പൂർണ്ണ ഹാർഡ്‌വെയർ അടിസ്ഥാനമാക്കിയുള്ള ടോൺ മാപ്പിംഗ്. ഉൾച്ചേർത്ത HDR10 മെറ്റാഡാറ്റ ഉപയോഗിച്ച് വീഡിയോകൾ ട്രാൻസ്കോഡ് ചെയ്യുമ്പോൾ മാത്രമാണ് നിലവിൽ പ്രവർത്തിക്കുന്നത്.", "EnableVppTonemapping": "VPP ടോൺ മാപ്പിംഗ് പ്രാപ്തമാക്കുക", "EnableEnhancedNvdecDecoder": "മെച്ചപ്പെടുത്തിയ NVDEC ഡീകോഡർ പ്രാപ്തമാക്കുക", - "DisablePlugin": "പ്ലഗിൻ അപ്രാപ്‌തമാക്കുക", - "EnablePlugin": "പ്ലഗിൻ പ്രാപ്തമാക്കുക", + "DisablePlugin": "പ്രവർത്തനരഹിതമാക്കുക", + "EnablePlugin": "പ്രവർത്തനക്ഷമമാക്കുക", "DirectPlayHelp": "ഉറവിട ഫയൽ ഈ ക്ലയന്റുമായി പൂർണ്ണമായും പൊരുത്തപ്പെടുന്നു, കൂടാതെ സെഷനിൽ മാറ്റങ്ങൾ വരുത്താതെ ഫയൽ സ്വീകരിക്കുന്നു.", "Framerate": "ഫ്രെയിം റേറ്റ്" } diff --git a/src/strings/mr.json b/src/strings/mr.json index 051a671abb..82a1950f1c 100644 --- a/src/strings/mr.json +++ b/src/strings/mr.json @@ -76,5 +76,6 @@ "ButtonPreviousTrack": "मागचा ट्रॅक", "ButtonPause": "पॉझ", "ButtonSyncPlay": "SyncPlay", - "Collections": "संग्रह" + "Collections": "संग्रह", + "Absolute": "पूर्ण" } diff --git a/src/strings/nb.json b/src/strings/nb.json index 84aa71e27b..22b493dee3 100644 --- a/src/strings/nb.json +++ b/src/strings/nb.json @@ -1501,5 +1501,12 @@ "LabelSelectStereo": "Stereo", "LabelSelectMono": "Mono", "LabelSelectAudioChannels": "Kanaler", - "LabelAllowedAudioChannels": "Maksimalt antall lydkanaler tillatt" + "LabelAllowedAudioChannels": "Maksimalt antall lydkanaler tillatt", + "AllowVppTonemappingHelp": "Full maskinvarebasert tonekartlegging uten bruk av OpenCL-filter. Fungerer for øyeblikket bare når du omkoder videoer med innebygd HDR10-metadata.", + "EnableVppTonemapping": "Aktiver VPP-tonekartlegging", + "EnableEnhancedNvdecDecoder": "Aktiver forbedret NVDEC-dekoder", + "Framerate": "Bildefrekvens", + "DisablePlugin": "Deaktiver programtillegg", + "EnablePlugin": "Aktiver", + "DirectPlayHelp": "Kildefilen er helt kompatibel med denne klienten, og økten mottar filen uten endringer." } diff --git a/src/strings/nl.json b/src/strings/nl.json index 1b24be093e..eda8d4d31b 100644 --- a/src/strings/nl.json +++ b/src/strings/nl.json @@ -1385,7 +1385,7 @@ "QuickConnectActivationSuccessful": "Succesvol geactiveerd", "LabelKnownProxies": "Bekende proxies:", "LabelCurrentStatus": "Huidige status:", - "KnownProxiesHelp": "Een door komma gescheiden lijst van IP adresen van bekende proxies. Die gebruikt worden bij het verbinden met je Jellyfin instantie. Dit is nodig om goed gebruik te maken van X-Forwarded-For headers. Reboot nodig na opslaan.", + "KnownProxiesHelp": "Een door komma gescheiden lijst van IP adressen van bekende proxies, die gebruikt worden bij het verbinden met je Jellyfin instantie. Dit is nodig om goed gebruik te maken van X-Forwarded-For headers. Reboot nodig na opslaan.", "EnableQuickConnect": "Schakel Quick Connect in op deze server", "ButtonUseQuickConnect": "Gebruik Quick Connect", "LabelMaxMuxingQueueSizeHelp": "Maximaal aantal pakketten dat kan worden gebufferd terwijl wordt gewacht tot alle streams zijn geïnitialiseerd. Probeer het te verhogen als u nog steeds de fout \"Te veel pakketten gebufferd voor uitvoerstroom\" tegenkomt in ffmpeg-logboeken. De aanbevolen waarde is 2048.", diff --git a/src/strings/pl.json b/src/strings/pl.json index 3f8768951b..05c058a09a 100644 --- a/src/strings/pl.json +++ b/src/strings/pl.json @@ -1347,7 +1347,7 @@ "PreviousTrack": "Poprzedni", "NextTrack": "Następny", "LabelUnstable": "Niestabilny", - "Preview": "Zapowiedź", + "Preview": "Podgląd", "SubtitleVerticalPositionHelp": "Numer wiersza, w którym pojawia się tekst. Liczby dodatnie wskazują z góry na dół. Liczby ujemne wskazują od dołu do góry.", "LabelSubtitleVerticalPosition": "Pozycja pionowa:", "MessageGetInstalledPluginsError": "Wystąpił błąd podczas pobierania listy aktualnie zainstalowanych wtyczek.", @@ -1504,5 +1504,9 @@ "LabelH265Crf": "CRF kodowania H265:", "AllowVppTonemappingHelp": "W pełni sprzętowe mapowanie tonów bez użycia filtra OpenCL. Aktualnie działa wyłącznie w trakcie transkodowania wideo z wbudowanymi metadanymi HDR10.", "EnableVppTonemapping": "Włącz mapowanie tonów VPP", - "EnableEnhancedNvdecDecoder": "Włącz ulepszony dekoder NVDEC" + "EnableEnhancedNvdecDecoder": "Włącz ulepszony dekoder NVDEC", + "Framerate": "Częstotliwość wyświetlania klatek", + "DisablePlugin": "Wyłącz", + "EnablePlugin": "Włącz", + "DirectPlayHelp": "Plik źródłowy jest całkowicie zgodny z tym klientem, a sesja otrzymuje plik bez modyfikacji." } diff --git a/src/strings/pt-br.json b/src/strings/pt-br.json index a8cb4e5a04..4e6329df0f 100644 --- a/src/strings/pt-br.json +++ b/src/strings/pt-br.json @@ -119,7 +119,7 @@ "DatePlayed": "Data de reprodução", "DeathDateValue": "Morte: {0}", "Default": "Padrão", - "ErrorDefault": "Ocorreu um erro ao processar o pedido. Por favor, tente novamente mais tarde.", + "ErrorDefault": "Ocorreu um erro ao processar o requisito. 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", @@ -249,7 +249,7 @@ "HeaderContainerProfile": "Perfil de Formato", "HeaderContainerProfileHelp": "Perfis de formato indicam as limitações de um dispositivo ao reproduzir formatos específicos. Se uma limitação ocorre, a mídia será transcodificada, mesmo se o formato estiver configurado para reprodução direta.", "HeaderContinueListening": "Continuar Escutando", - "HeaderContinueWatching": "Continuar Assistindo", + "HeaderContinueWatching": "Continuar assistindo", "HeaderCustomDlnaProfiles": "Perfis Personalizados", "HeaderDateIssued": "Data da Emissão", "HeaderDefaultRecordingSettings": "Configurações Padrão de Gravações", @@ -307,8 +307,8 @@ "HeaderMoreLikeThis": "Mais Disso", "HeaderMusicQuality": "Qualidade da Música", "HeaderMyDevice": "Meu Dispositivo", - "HeaderMyMedia": "Minha Mídia", - "HeaderMyMediaSmall": "Minha Mídia (pequeno)", + "HeaderMyMedia": "Minha mídia", + "HeaderMyMediaSmall": "Minha mídia (pequeno)", "HeaderNewApiKey": "Nova Chave de API", "HeaderNewDevices": "Novos Dispositivos", "HeaderNextEpisodePlayingInValue": "Reproduzindo Próximo Episódio em {0}", @@ -816,7 +816,7 @@ "NewEpisodesOnly": "Apenas novos episódios", "News": "Notícias", "Next": "Próximo", - "NextUp": "A Seguir", + "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.", "MessageNoNextUpItems": "Nada encontrado. Comece a assistir suas séries!", @@ -1422,7 +1422,7 @@ "UseDoubleRateDeinterlacingHelp": "Essa configuração utiliza a \"field rate\" ao fazer o processo de \"deinterlacing\", frequentemente chamado de \"bob deinterlacing\", que dobra a taxa de quadros do vídeo para proporcionar um movimento completo similar àquele visto ao ver um vídeo \"interlaçado\" em uma TV.", "OptionMaxActiveSessions": "Estabelece o número máximo de sessões de usuários simultâneas.", "LabelUserMaxActiveSessions": "Número máximo de sessões de usuários simultâneas:", - "OptionAllowContentDownloadHelp": "Os usuários podem baixar mídias e armazená-las em seus dispositivos. Isso não é o mesmo que um recurso de sincronização. Para funcionar corretamente isso exige que a biblioteca de mídia esteja habilitada.", + "OptionAllowContentDownloadHelp": "Os usuários podem baixar mídias e armazená-las em seus dispositivos. Isso não é o mesmo que um recurso de sincronização. As bibliotecas de livros exigem que isso esteja habilitado para funcionar corretamente.", "OptionAllowContentDownload": "Permitir download de mídia", "HeaderDeleteDevices": "Excluir todos os dispositivos", "DeleteDevicesConfirmation": "Tem certeza de que deseja excluir todos os dispositivos? Todas as outras sessões serão desconectadas. Os dispositivos reaparecerão na próxima vez que um usuário fizer login.", @@ -1440,7 +1440,7 @@ "LabelAutomaticDiscovery": "Habilitar Descobrimento Automático:", "LabelAutoDiscoveryTracingHelp": "Quando habilitado, os pacotes recebidos na porta de descobrimento automático são registrados.", "LabelAutoDiscoveryTracing": "Habilitar rastreamento de Descobrimento Automático.", - "LabelEnableSSDPTracingHelp": "Habilite o rastreamento de rede SSDP de detalhes a ser registrado.
AVISO: Isso causará uma grave degradação no desempenho.", + "LabelEnableSSDPTracingHelp": "Habilitar que os detalhes do rastreamento da rede SSDP sejam registrados.
AVISO: Isso causará uma grave degradação do desempenho.", "LabelEnableSSDPTracing": "Habilitar rastreamento de SSDP:", "LabelEnableIP6Help": "Ativa a funcionalidade IPv6.", "LabelEnableIP6": "Ativar IPv6:", @@ -1501,5 +1501,12 @@ "LabelMaxAudiobookResumeHelp": "Os títulos são considerados totalmente reproduzidos se parados após esse período.", "LabelMaxAudiobookResume": "Resumo máximo do audiolivro em minutos:", "LabelIsForced": "Forçado", - "LabelHDHomerunPortRangeHelp": "Restringe o intervalo de portas UDP HD Homerun a este valor. (O padrão é 1024 - 645535)." + "LabelHDHomerunPortRangeHelp": "Restringe o intervalo de portas UDP HD Homerun a este valor. (O padrão é 1024 - 645535).", + "Framerate": "Taxa de quadros", + "DisablePlugin": "Desativar", + "EnablePlugin": "Habilitar", + "DirectPlayHelp": "O arquivo de origem é totalmente compatível com este cliente e a sessão está recebendo o arquivo sem modificações.", + "YoutubeBadRequest": "Requisição ruim.", + "AspectRatioFill": "Preencher", + "LabelHDHomerunPortRange": "Intervalo de portas HDHomerun:" } diff --git a/src/strings/ro.json b/src/strings/ro.json index b41a3d7c39..9ef6d7d101 100644 --- a/src/strings/ro.json +++ b/src/strings/ro.json @@ -1502,5 +1502,12 @@ "LabelMinAudiobookResumeHelp": "Titlurile se presupun neredate dacă sunt oprite înainte de această durată.", "LabelMinAudiobookResume": "Timp minim de reluare pentru cărți audio:", "LabelMaxAudiobookResumeHelp": "Titlurile sunt considerate complet redate dacă sunt oprite după acest timp.", - "LabelMaxAudiobookResume": "Timp maxim de reluare pentru cărți audio:" + "LabelMaxAudiobookResume": "Timp maxim de reluare pentru cărți audio:", + "AllowVppTonemappingHelp": "Cartografiere completă a tonurilor bazată pe hardware fără utilizarea filtrului OpenCL. În prezent funcționează numai la transcodarea videoclipurilor cu metadate HDR10 încorporate.", + "EnableVppTonemapping": "Activați maparea tonului VPP", + "EnableEnhancedNvdecDecoder": "Activați decodorul NVDEC îmbunătățit", + "Framerate": "Rata frame-urilor", + "DisablePlugin": "Dezactivați Pluginul", + "EnablePlugin": "Activați Pluginul", + "DirectPlayHelp": "Fișierul sursă este pe deplin compatibil cu acest client, iar sesiunea primește fișierul fără modificări." } diff --git a/src/strings/ru.json b/src/strings/ru.json index 1faa771e4d..8a2f771e37 100644 --- a/src/strings/ru.json +++ b/src/strings/ru.json @@ -1134,7 +1134,7 @@ "Unrated": "Без категории", "Up": "Вверх", "Upload": "Выкладка", - "UserAgentHelp": "Предоставить HTTP-заголовок произвольного пользователь-агента.", + "UserAgentHelp": "Предоставить произвольный заголовок HTTP user-agent.", "UserProfilesIntro": "В Jellyfin есть поддержка пользовательских профилей с детализациями параметров отображения, состояния воспроизведения и управления содержания.", "ValueAlbumCount": "{0} альбом(а/ов)", "ValueAudioCodec": "Аудио кодек: {0}", @@ -1405,7 +1405,7 @@ "LabelQuickConnectCode": "Код Quick connect:", "LabelKnownProxies": "Известные прокси:", "LabelCurrentStatus": "Текущее состояние:", - "KnownProxiesHelp": "Разделенный запятыми список IP-адресов известных прокси, используемых при подключении к вашему экземпляру Jellyfin. Это необходимо для правильного использования заголовков X-Forwarded-For. Требуется перезагрузка после сохранения.", + "KnownProxiesHelp": "Разделенный запятыми список IP-адресов или имён хостов известных прокси, используемых при подключении к вашему экземпляру Jellyfin. Это необходимо для правильного использования заголовков X-Forwarded-For. Требуется перезагрузка после сохранения.", "EnableQuickConnect": "Включить quick connect на этом сервере", "EnableAutoCast": "Задать по умолчанию", "ButtonUseQuickConnect": "Использовать Quick Connect", @@ -1505,8 +1505,8 @@ "AllowVppTonemappingHelp": "Полный аппаратный тонмаппинг без использования фильтра OpenCL. В настоящее время работает только при перекодировании видео со встроенными метаданными HDR10.", "EnableVppTonemapping": "Включить VPP-тонмаппинг", "EnableEnhancedNvdecDecoder": "Включить улучшенный декодер NVDEC", - "DisablePlugin": "Отключить плагин", - "EnablePlugin": "Включить плагин", + "DisablePlugin": "Отключить", + "EnablePlugin": "Включить", "Framerate": "Ч-та кадров", "DirectPlayHelp": "Исходный файл полностью совместим с этим клиентом, а сеанс получает файл без изменений." } diff --git a/src/strings/sl-si.json b/src/strings/sl-si.json index c98d017092..16d35d61d4 100644 --- a/src/strings/sl-si.json +++ b/src/strings/sl-si.json @@ -21,7 +21,7 @@ "LabelYoureDone": "Končano!", "MoreUsersCanBeAddedLater": "Uporabnike lahko dodate tudi kasneje preko Nadzorne plošče.", "OptionAllowMediaPlayback": "Dovoli predvajanje vsebin", - "OptionDisableUser": "Onemogoci tega uporabnika", + "OptionDisableUser": "Onemogoči tega uporabnika", "OptionEnableAccessFromAllDevices": "Omogoči dostop iz vseh naprav", "OptionEnableAccessToAllChannels": "Omogoci dostop do vseh kanalov", "OptionEnableAccessToAllLibraries": "Omogoci dostop do vseh knjiznic", @@ -105,7 +105,7 @@ "Sync": "Sinhroniziraj", "AuthProviderHelp": "Izberite ponudnika preverjanja pristnosti za preverjanje gesla tega uporabnika.", "Banner": "Pasica", - "Blacklist": "Črna lista", + "Blacklist": "Seznam prepovedanih", "ButtonAddMediaLibrary": "Dodaj knjižnico predstavnosti", "ButtonAddScheduledTaskTrigger": "Dodaj sprožilec", "ButtonAddServer": "Dodaj strežnik", @@ -503,7 +503,7 @@ "LabelDeviceDescription": "Opis naprave", "LabelDiscNumber": "Številka diska:", "LabelDisplayLanguage": "Jezik prikaza:", - "LabelDisplayLanguageHelp": "Prevajanje Jellyfin strežnika je tekoči projekt.", + "LabelDisplayLanguageHelp": "Prevajanje Jellyfin strežnika je aktiven projekt.", "LabelBirthYear": "Letnica rojstva:", "LabelBlastMessageIntervalHelp": "Določi dolžino intervala v sekundah med pošiljanjem sporočil o dostopnosti.", "LabelBurnSubtitles": "Vžgi podnapise:", @@ -1344,7 +1344,7 @@ "LabelColorSpace": "Barvni prostor:", "MediaInfoColorSpace": "Barvni prostor", "ButtonPlayer": "Predvajalnik", - "Whitelist": "Seznam želja", + "Whitelist": "Seznam dovoljenih", "SubtitleVerticalPositionHelp": "Številka vrstice kjer se pojavi besedilo. Pozitivne številke predstavljajo od zgoraj navzdol. Negativne številke predstavljajo od spodaj navzgor.", "TonemappingRangeHelp": "Izberite barvni razpon izhoda. Auto je isto kot razpon vhoda.", "LabelOpenclDevice": "OpenCL naprava:", diff --git a/src/strings/sv.json b/src/strings/sv.json index 41d1d0baec..9c28e418a1 100644 --- a/src/strings/sv.json +++ b/src/strings/sv.json @@ -1441,8 +1441,8 @@ "LabelMaxMuxingQueueSize": "Maximal muxing köstorlek:", "LabelMaxAudiobookResume": "Maximal tid för att återuppta ljudböcker, i minuter:", "Framerate": "Bilder per sekund", - "DisablePlugin": "Avaktivera plugin", - "EnablePlugin": "Aktivera plugin", + "DisablePlugin": "Avaktivera", + "EnablePlugin": "Aktivera", "DirectPlayHelp": "Källfilen är inte kompatibel med denna klient, filen spelas upp utan omkodning.", "LabelTonemappingDesat": "Tonmappning desat:", "LabelTonemappingAlgorithm": "Välj algoritm för tonmappning:", @@ -1465,7 +1465,7 @@ "LabelTonemappingThresholdHelp": "Algoritmernas parametrar för tonmappning är finjusterade för varje scen. Ett tröskelvärde används för att upptäcka om scenen har ändrats eller ej. Om skillnaden mellan nuvarande bildrutas ljusstyrka och det nuvarande genomsnittliga ljusstyrkans värde överstiger tröskelvärdet så kommer scenens genomsnittsvärde och maximala ljusstyrka att beräknas om. De rekommenderade och förvalda värdena är 0.8 och 0.2.", "LabelTonemappingThreshold": "Tonmappning tröskelvärde:", "LabelTonemappingRange": "Tonmappning omfång:", - "LabelTonemappingPeakHelp": "Åsidosätt signal/nominal/reference peak med detta värde. Det är användbart när den inbäddade informationen i metadatan inte är tillförlitlig eller när man tonmappar från ett lägre till högre omfång. De förvalda värdena är 100 och 0.", + "LabelTonemappingPeakHelp": "Åsidosätta signal/nominal/referenstopp med detta värde. Det är användbart när den inbäddade informationen i metadatan inte är tillförlitlig eller när man tonmappar från ett lägre till högre omfång. De förvalda värdena är 100 och 0.", "LabelTonemappingPeak": "Tonmappning peak:", "LabelTonemappingParamHelp": "Ställ in algoritm för tonmappning. De rekommenderade och förvalda värdena är NaN. Vanligtvis kan man lämna det tomt.", "LabelTonemappingParam": "Tonmappning param:", @@ -1475,5 +1475,15 @@ "UseDoubleRateDeinterlacingHelp": "Denna inställning använder fälthastigheten vid deinterlacing, ofta kallad bob deinterlacing, vilket fördubblar bildhastigheten för videon för att ge full rörelse som är vad du skulle se när du tittar på interlaced video på en TV.", "TonemappingRangeHelp": "Välj utdatafärgsintervall. Auto är samma som inmatningsområdet.", "LabelTonemappingDesatHelp": "Använd desaturering för höjdpunkter som överstiger denna ljusstyrka. Ju högre parameter, desto mer färginformation bevaras. Denna inställning hjälper till att förhindra onaturligt utblåsta färger för superhöjdpunkter genom att (mjukt) förvandlas till vitt istället. Detta gör att bilderna känns mer naturliga, på bekostnad av att minska informationen om färger utanför området. De rekommenderade värdena och standardvärdena är 0 och 0.5.", - "LabelOpenclDeviceHelp": "Det här är OpenCL-enheten som används för tonmappning. Den vänstra sidan av punkten är plattformsnumret och den högra sidan är enhetsnumret på plattformen. Standardvärdet är 0.0. ffmpeg-applikationen som innehåller OpenCL-hårdvaruaccelereringsmetoden krävs." + "LabelOpenclDeviceHelp": "Det här är OpenCL-enheten som används för tonmappning. Den vänstra sidan av punkten är plattformsnumret och den högra sidan är enhetsnumret på plattformen. Standardvärdet är 0.0. ffmpeg-applikationen som innehåller OpenCL-hårdvaruaccelereringsmetoden krävs.", + "LabelVideoInfo": "Video-information", + "LabelAudioInfo": "Ljud-information", + "LabelPlaybackInfo": "Uppspelnings information", + "AspectRatioFill": "Fyll", + "EnableFallbackFont": "Aktivera reserv-gränssnitt", + "LabelFallbackFontPathHelp": "Ange en sökväg som innehåller reservteckensnitt för renderningen av ASS/SSA undertexter. Den maximala totala tilllåtna filstorleken är 20 MB. Lättviktiga och webbvänliga filtyper t.ex. woff2 rekommenderas.", + "LabelFallbackFontPath": "Reservteckensnittmappens sökväg:", + "HeaderSelectFallbackFontPath": "Välja Reservteckensnittmappens Sökväg", + "HeaderSelectFallbackFontPathHelp": "Söka eller mata in sökvägen av reservteckensnittmappen för att använda i ASS/SSA undertexters renderingen.", + "AllowTonemappingHelp": "Tonmappning kan förvändla en videos dynamisk omfång från HDR till SDR (standard dynamiska omfång) när den bibehåller bildens detaljer och färger, som är mycket viktig information för att representera originalscenen. Fungerar för närvarande bara under transkodning av videor med inbäddad HDR10 eller HLG metedata. Om uppspelning är inte jämn eller misslyckas, vänligen överväg att avsluta den korresponderande maskinvarudekodaren." } diff --git a/src/strings/ta.json b/src/strings/ta.json index 202a75cb18..376e1a4c63 100644 --- a/src/strings/ta.json +++ b/src/strings/ta.json @@ -1520,8 +1520,8 @@ "AllowVppTonemappingHelp": "OpenCL வடிப்பானைப் பயன்படுத்தாமல் முழு வன்பொருள் அடிப்படையிலான டோன் மேப்பிங். உட்பொதிக்கப்பட்ட HDR10 மெட்டாடேட்டாவுடன் வீடியோக்களை டிரான்ஸ்கோடிங் செய்யும் போது மட்டுமே தற்போது செயல்படுகிறது.", "EnableVppTonemapping": "VPP டோன் மேப்பிங்கை இயக்கு", "EnableEnhancedNvdecDecoder": "மேம்படுத்தப்பட்ட NVDEC டிகோடரை இயக்கவும்", - "DisablePlugin": "செருகுநிரலை முடக்கு", - "EnablePlugin": "செருகுநிரலை இயக்கு", + "DisablePlugin": "முடக்கு", + "EnablePlugin": "இயக்கு", "Framerate": "பிரேம் வீதம்", "DirectPlayHelp": "மூல கோப்பு இந்த கிளையனுடன் முற்றிலும் ஒத்துப்போகும், மேலும் அமர்வு மாற்றங்கள் இல்லாமல் கோப்பைப் பெறுகிறது." } diff --git a/src/strings/th.json b/src/strings/th.json index 65315b4aba..f83c574110 100644 --- a/src/strings/th.json +++ b/src/strings/th.json @@ -8,7 +8,96 @@ "RemoveFromPlaylist": "ลบออกจากเพลย์ลิสต์", "Playlists": "เพลย์ลิสต์", "LabelPlaylist": "เพลย์ลิสต์:", - "HeaderAddToPlaylist": "เพิ่มไปยังเพลย์ลิสต์", + "HeaderAddToPlaylist": "เพิ่มลงในเพลย์ลิสต์", "ButtonTogglePlaylist": "เพลย์ลิสต์", - "AddToPlaylist": "เพิ่มไปยังเพลย์ลิสต์" + "AddToPlaylist": "เพิ่มไปยังเพลย์ลิสต์", + "Authorize": "อนุญาต", + "AspectRatio": "อัตราส่วน", + "Artists": "ศิลปิน", + "Artist": "ศิลปิน", + "ApiKeysCaption": "รายการ API keys ที่เปิดใช้งานในปัจจุบัน", + "Anytime": "ทุกเวลา", + "AnyLanguage": "ทุกภาษา", + "AllowRemoteAccessHelp": "หากไม่เช็ค การเชื่อมต่อระยะไกลทั้งหมดจะถูกบล็อก", + "AllowRemoteAccess": "อนุญาตการเชื่อมต่อเซิฟเวอร์ระยะไกล", + "AllowMediaConversionHelp": "อนุญาตหรือปฏิเสธฟีเจอร์การแปลงมีเดีย", + "AllComplexFormats": "ฟอร์แมตที่ซับซ้อนทั้งหมด (ASS, SSA, VOBSUB, PGS, SUB, IDX, …)", + "AllChannels": "ช่องทั้งหมด", + "All": "ทั้งหมด", + "Alerts": "แจ้งเตือน", + "Albums": "อัลบั้ม", + "AlbumArtist": "อัลบั้มศิลปิน", + "Album": "อัลบั้ม", + "AirDate": "วันที่ออกอากาศ", + "AddedOnValue": "เพิ่มแล้ว", + "Framerate": "เฟรมเรต", + "Folders": "โฟลเดอร์", + "FileNotFound": "ไม่พบไฟล์", + "File": "ไฟล์", + "EveryXMinutes": "ทุก {0} นาที", + "EveryXHours": "ทุก {0} ชั่วโมง", + "EveryNDays": "ทุก {0} วัน", + "EveryHour": "ทุกชั่วโมง", + "Episode": "ตอน", + "Edit": "แก้ไข", + "Download": "ดาวน์โหลด", + "Disconnect": "ยกเลิกการเชื่อมต่อ", + "Directors": "ผู้กำกับ", + "Director": "ผู้กำกับ", + "DeleteAll": "ลบทั้งหมด", + "Delete": "ลบ", + "DatePlayed": "วันที่เล่น", + "DateAdded": "วันที่เพิ่ม", + "ConfirmDeletion": "ยืนยันการลบ", + "Connect": "เชื่อมต่อ", + "ColorSpace": "ปริภูมิสี", + "Categories": "หมวดหมู่", + "ButtonTrailer": "เทรลเลอร์", + "ButtonWebsite": "เว็บไซต์", + "ButtonSignOut": "ออกจากระบบ", + "ButtonSignIn": "เข้าสู่ระบบ", + "ButtonScanAllLibraries": "สแกนทุกไลบรารี", + "ButtonQuickStartGuide": "คู่มือแนะนำอย่างย่อ", + "ButtonOk": "ตกลง", + "ButtonMore": "เพิ่มเติม", + "ButtonFullscreen": "เต็มหน้าจอ", + "ButtonCancel": "ยกเลิก", + "ButtonChangeServer": "เปลี่ยนเซิร์ฟเวอร์", + "ButtonForgotPassword": "ลืมรหัสผ่าน", + "ButtonArrowRight": "ขวา", + "ButtonArrowLeft": "ซ้าย", + "ButtonAddUser": "เพิ่มผู้ใช้", + "ButtonAddServer": "เพิ่มเซิร์ฟเวอร์", + "ButtonAddImage": "เพิ่มรูปภาพ", + "Blacklist": "แบล็คลิสต์", + "AllLibraries": "ทุกไลบรารี", + "AllLanguages": "ทุกภาษา", + "AllEpisodes": "ทุกตอน", + "Books": "หนังสือ", + "Banner": "แบนเนอร์", + "Backdrops": "ฉากหลัง", + "Backdrop": "ฉากหลัง", + "HeaderConnectToServer": "เชื่อมต่อเซิฟเวอร์", + "HeaderAlbumArtists": "ศิลปินอัลบั้ม", + "HeaderAddToCollection": "เพิ่มลงในคอลเลกชัน", + "GuideProviderLogin": "เข้าสู่ระบบ", + "Genre": "ประเภท", + "Favorites": "รายการโปรด", + "Favorite": "รายการโปรด", + "EndsAtValue": "จบเมื่อ {0}", + "Ended": "จบ", + "DownloadsValue": "{0} ดาวน์โหลด", + "Desktop": "เดสก์ท็อป", + "Default": "ค่าเริ่มต้น", + "DashboardServerName": "เซิฟเวอร์: {0}", + "DashboardVersionNumber": "เวอร์ชัน: {0}", + "DeathDateValue": "ตาย: {0}", + "DashboardOperatingSystem": "ระบบปฏิบัติการ: {0}", + "CopyStreamURL": "คัดลอกสตรีม URL", + "ContinueWatching": "ดูต่อ", + "Collections": "คอลเลกชัน", + "ClearQueue": "ล้างคิว", + "ButtonUninstall": "ถอนการติดตั้ง", + "ButtonStart": "เริ่มเล่น", + "ButtonStop": "หยุด" } diff --git a/src/strings/tr.json b/src/strings/tr.json index 24b97259eb..2661244382 100644 --- a/src/strings/tr.json +++ b/src/strings/tr.json @@ -1117,5 +1117,19 @@ "MusicVideos": "Müzik Videoları", "MusicVideo": "Müzik Videosu", "MusicAlbum": "Müzik Albümü", - "LabelSelectFolderGroups": "Aşağıdaki klasörlerdeki içeriği otomatik olarak Filmler, Müzik ve TV gibi görünümlerde gruplandırın:" + "LabelSelectFolderGroups": "Aşağıdaki klasörlerdeki içeriği otomatik olarak Filmler, Müzik ve TV gibi görünümlerde gruplandırın:", + "LabelPublicHttpsPort": "Genel HTTPS bağlantı noktası:", + "LabelPublicHttpPortHelp": "Yerel HTTP bağlantı noktası ile eşlenmesi gereken genel bağlantı noktası.", + "LabelPublicHttpPort": "Genel HTTP bağlantı noktası:", + "LabelProtocolInfo": "Protokol bilgisi:", + "LabelProtocol": "Protokol:", + "LabelProfileCodecsHelp": "Virgül kullanarak ayırınız. Tüm codec bileşenlerine uygulamak için boş bırakınız.", + "LabelPreferredDisplayLanguage": "Tercih edilen görüntüleme dili:", + "LabelPlayMethod": "Oynatma methodu:", + "LabelPlayerDimensions": "Oynatıcı boyutları:", + "LabelPlayDefaultAudioTrack": "Dilden bağımsız olarak varsayılan ses parçasını çal", + "LabelOpenclDevice": "OpenCL Cihazı:", + "Framerate": "Karehızı", + "DisablePlugin": "Aktif değil", + "EnablePlugin": "Aktif" } diff --git a/src/strings/vi.json b/src/strings/vi.json index 80627bfe68..68b5b81e29 100644 --- a/src/strings/vi.json +++ b/src/strings/vi.json @@ -770,7 +770,7 @@ "MessageImageFileTypeAllowed": "Chỉ các tệp JPEG và PNG được hỗ trợ.", "LabelKnownProxies": "Các Proxy đã biết:", "LabelIconMaxResHelp": "Độ phân giải tối đa của các biểu tượng được hiển thị thông qua thuộc tính upnp:icon .", - "KnownProxiesHelp": "Phân tách bằng dấu phẩy danh sách địa chỉ IP của các proxy đã biết được sử dụng khi kết nối với Jellyfin. Đây là bắt buộc để sử dụng đúng các tiêu đề X-Forwarded-For. Yêu cầu khởi động lại sau khi lưu.", + "KnownProxiesHelp": "Danh sách địa chỉ IP hoặc tên máy chủ được phân tách bằng dấu phẩy của các proxy đã biết được sử dụng khi kết nối với Jellyfin. Đây là bắt buộc để sử dụng đúng các tiêu đề X-Forwarded-For. Yêu cầu khởi động lại sau khi lưu.", "Image": "Hình Ảnh", "LabelSyncPlayLeaveGroup": "Rời khỏi nhóm", "LabelSyncPlayNewGroupDescription": "Tạo một nhóm mới", @@ -1505,8 +1505,8 @@ "AllowVppTonemappingHelp": "Ánh xạ âm dựa trên phần cứng đầy đủ mà không cần sử dụng bộ lọc OpenCL. Hiện chỉ hoạt động khi chuyển mã video có siêu dữ liệu HDR10 được nhúng.", "EnableEnhancedNvdecDecoder": "Bật bộ giải mã NVDEC nâng cao", "EnableVppTonemapping": "Bật ánh xạ tông màu VPP", - "DisablePlugin": "Tắt Plugin", - "EnablePlugin": "Bật Plugin", + "DisablePlugin": "Tắt", + "EnablePlugin": "Bật", "Framerate": "Tỷ lệ khung hình", "DirectPlayHelp": "Tệp nguồn hoàn toàn tương thích với ứng dụng khách này và phiên đang nhận tệp mà không có sửa đổi." } diff --git a/src/strings/zh-cn.json b/src/strings/zh-cn.json index 8e5ca57560..733980786e 100644 --- a/src/strings/zh-cn.json +++ b/src/strings/zh-cn.json @@ -422,7 +422,7 @@ "LabelCommunityRating": "公众评分:", "LabelContentType": "内容类型:", "LabelCorruptedFrames": "损坏的帧:", - "LabelCountry": "国家:", + "LabelCountry": "国家/地区:", "LabelCriticRating": "影评人评分:", "LabelCurrentPassword": "当前密码:", "LabelCustomCertificatePath": "自定义 SSL 证书路径:", @@ -1505,8 +1505,8 @@ "EnableEnhancedNvdecDecoder": "启用增强的 NVDEC 解码器", "EnableVppTonemapping": "启用 VPP 色调映射", "AllowVppTonemappingHelp": "完全基于硬件的色调映射,不需要 OpenCL 滤镜。目前仅在转码内嵌 HDR10 元数据的视频时生效。", - "DisablePlugin": "关闭插件", - "EnablePlugin": "激活插件", + "DisablePlugin": "禁用", + "EnablePlugin": "激活", "DirectPlayHelp": "源文件与此客户端完全兼容,会话正在接收文件而未做任何修改。", "Framerate": "帧率" } diff --git a/src/strings/zh-hk.json b/src/strings/zh-hk.json index 73415f382d..c8ec2f86d6 100644 --- a/src/strings/zh-hk.json +++ b/src/strings/zh-hk.json @@ -62,7 +62,7 @@ "LabelCachePathHelp": "選擇指定所需的緩存文件路徑,如圖像。保留空白以使用默認設定。", "LabelCommunityRating": "討論區評分", "LabelContentType": "內容類型:", - "LabelCountry": "國家:", + "LabelCountry": "國家/地區:", "LabelCurrentPassword": "目前密碼:", "LabelCustomCss": "自訂 CSS:", "LabelCustomCssHelp": "應用自訂 CSS Web 界面。", diff --git a/src/strings/zh-tw.json b/src/strings/zh-tw.json index e81616f968..f085980432 100644 --- a/src/strings/zh-tw.json +++ b/src/strings/zh-tw.json @@ -67,7 +67,7 @@ "LabelCachePath": "快取路徑:", "LabelCollection": "收藏櫃:", "LabelContentType": "內容類型:", - "LabelCountry": "國家:", + "LabelCountry": "國家/地區:", "LabelCurrentPassword": "當前的密碼:", "LabelDay": "日:", "LabelEnableDlnaClientDiscoveryInterval": "尋找用戶端時間間隔", @@ -1478,5 +1478,18 @@ "LabelH265Crf": "H265 編碼 CRF:", "LabelEnableSSDPTracingHelp": "將 SSDP 追蹤詳細資料記錄至日誌。
警告:這將導致效能嚴重損失。", "LabelEnableSSDPTracing": "啟用 SSDP 追蹤:", - "LabelAutoDiscoveryTracing": "開啟自動追蹤。" + "LabelAutoDiscoveryTracing": "開啟自動追蹤。", + "YoutubeNotFound": "找不到影片。", + "YoutubeBadRequest": "錯誤請求。", + "LabelSelectStereo": "雙聲道", + "LabelSelectMono": "單聲道", + "LabelSelectAudioChannels": "聲道", + "LabelDirectStreamingInfo": "直接串流資訊", + "LabelTranscodingInfo": "轉碼資訊", + "LabelVideoInfo": "影片資訊", + "LabelAudioInfo": "音檔資訊", + "LabelPlaybackInfo": "播放資訊", + "Framerate": "幀數", + "DisablePlugin": "停用", + "EnablePlugin": "啟用" } diff --git a/webpack.common.js b/webpack.common.js index 2562cc9f10..ba723767fe 100644 --- a/webpack.common.js +++ b/webpack.common.js @@ -44,12 +44,14 @@ module.exports = { { from: 'assets/**', globOptions: { + dot: true, ignore: ['**/css/*'] } }, { from: '*.*', globOptions: { + dot: true, ignore: ['**.js', '**.html'] } } @@ -77,7 +79,7 @@ module.exports = { }) ], output: { - filename: '[name].bundle.js', + filename: '[name].[contenthash].bundle.js', path: path.resolve(__dirname, 'dist'), publicPath: '' },