diff --git a/.eslintrc.js b/.eslintrc.js index 042c347fe..73a86537b 100644 --- a/.eslintrc.js +++ b/.eslintrc.js @@ -64,6 +64,7 @@ module.exports = { 'no-throw-literal': ['error'], 'no-trailing-spaces': ['error'], 'no-undef-init': ['error'], + 'no-unneeded-ternary': ['error'], 'no-unused-expressions': ['off'], '@typescript-eslint/no-unused-expressions': ['error', { 'allowShortCircuit': true, 'allowTernary': true, 'allowTaggedTemplates': true }], 'no-unused-private-class-members': ['error'], diff --git a/CONTRIBUTORS.md b/CONTRIBUTORS.md index fcb514601..05b512b8a 100644 --- a/CONTRIBUTORS.md +++ b/CONTRIBUTORS.md @@ -66,11 +66,12 @@ - [Fishbigger](https://github.com/fishbigger) - [sleepycatcoding](https://github.com/sleepycatcoding) - [TheMelmacian](https://github.com/TheMelmacian) + - [v0idMrK](https://github.com/v0idMrK) - [tehciolo](https://github.com/tehciolo) - [scampower3](https://github.com/scampower3) + - [LittleBigOwI] (https://github.com/LittleBigOwI/) - [Nate G](https://github.com/GGProGaming) - # Emby Contributors - [LukePulverenti](https://github.com/LukePulverenti) diff --git a/src/apps/experimental/components/library/GenresSectionContainer.tsx b/src/apps/experimental/components/library/GenresSectionContainer.tsx index ebfd20d33..14b061850 100644 --- a/src/apps/experimental/components/library/GenresSectionContainer.tsx +++ b/src/apps/experimental/components/library/GenresSectionContainer.tsx @@ -71,8 +71,8 @@ const GenresSectionContainer: FC = ({ centerText: true, cardLayout: false, shape: itemType === BaseItemKind.MusicAlbum ? 'overflowSquare' : 'overflowPortrait', - showParentTitle: itemType === BaseItemKind.MusicAlbum ? true : false, - showYear: itemType === BaseItemKind.MusicAlbum ? false : true + showParentTitle: itemType === BaseItemKind.MusicAlbum, + showYear: itemType !== BaseItemKind.MusicAlbum }} />; }; diff --git a/src/components/cardbuilder/cardBuilder.js b/src/components/cardbuilder/cardBuilder.js index 6d33700ca..c1c746006 100644 --- a/src/components/cardbuilder/cardBuilder.js +++ b/src/components/cardbuilder/cardBuilder.js @@ -11,8 +11,8 @@ import browser from 'scripts/browser'; import datetime from 'scripts/datetime'; import dom from 'scripts/dom'; import globalize from 'scripts/globalize'; -import imageHelper from 'scripts/imagehelper'; import { getBackdropShape, getPortraitShape, getSquareShape } from 'utils/card'; +import imageHelper from 'utils/image'; import { randomInt } from 'utils/number'; import focusManager from '../focusManager'; diff --git a/src/components/filtermenu/filtermenu.js b/src/components/filtermenu/filtermenu.js index 5c78a6f4a..1423e5ac5 100644 --- a/src/components/filtermenu/filtermenu.js +++ b/src/components/filtermenu/filtermenu.js @@ -102,7 +102,15 @@ function onInputCommand(e) { break; } } -function saveValues(context, settings, settingsKey, setfilters) { +function saveValues(context, settings, settingsKey) { + context.querySelectorAll('.simpleFilter').forEach(elem => { + if (elem.tagName === 'INPUT') { + setBasicFilter(context, settingsKey + '-filter-' + elem.getAttribute('data-settingname'), elem); + } else { + setBasicFilter(context, settingsKey + '-filter-' + elem.getAttribute('data-settingname'), elem.querySelector('input')); + } + }); + // Video type const videoTypes = []; context.querySelectorAll('.chkVideoTypeFilter').forEach(elem => { @@ -111,6 +119,8 @@ function saveValues(context, settings, settingsKey, setfilters) { } }); + userSettings.setFilter(settingsKey + '-filter-VideoTypes', videoTypes.join(',')); + // Series status const seriesStatuses = []; context.querySelectorAll('.chkSeriesStatus').forEach(elem => { @@ -119,6 +129,8 @@ function saveValues(context, settings, settingsKey, setfilters) { } }); + userSettings.setFilter(`${settingsKey}-filter-SeriesStatus`, seriesStatuses.join(',')); + // Genres const genres = []; context.querySelectorAll('.chkGenreFilter').forEach(elem => { @@ -127,38 +139,7 @@ function saveValues(context, settings, settingsKey, setfilters) { } }); - if (setfilters) { - setfilters((prevState) => ({ - ...prevState, - StartIndex: 0, - IsPlayed: context.querySelector('.chkPlayed').checked, - IsUnplayed: context.querySelector('.chkUnplayed').checked, - IsFavorite: context.querySelector('.chkFavorite').checked, - IsResumable: context.querySelector('.chkResumable').checked, - Is4K: context.querySelector('.chk4KFilter').checked, - IsHD: context.querySelector('.chkHDFilter').checked, - IsSD: context.querySelector('.chkSDFilter').checked, - Is3D: context.querySelector('.chk3DFilter').checked, - VideoTypes: videoTypes.join(','), - SeriesStatus: seriesStatuses.join(','), - HasSubtitles: context.querySelector('.chkSubtitle').checked, - HasTrailer: context.querySelector('.chkTrailer').checked, - HasSpecialFeature: context.querySelector('.chkSpecialFeature').checked, - HasThemeSong: context.querySelector('.chkThemeSong').checked, - HasThemeVideo: context.querySelector('.chkThemeVideo').checked, - GenreIds: genres.join(',') - })); - } else { - context.querySelectorAll('.simpleFilter').forEach(elem => { - if (elem.tagName === 'INPUT') { - setBasicFilter(context, settingsKey + '-filter-' + elem.getAttribute('data-settingname'), elem); - } else { - setBasicFilter(context, settingsKey + '-filter-' + elem.getAttribute('data-settingname'), elem.querySelector('input')); - } - }); - - userSettings.setFilter(settingsKey + '-filter-GenreIds', genres.join(',')); - } + userSettings.setFilter(settingsKey + '-filter-GenreIds', genres.join(',')); } function bindCheckboxInput(context, on) { const elems = context.querySelectorAll('.checkboxList-verticalwrap'); @@ -289,7 +270,7 @@ class FilterMenu { } if (submitted) { - saveValues(dlg, options.settings, options.settingsKey, options.setfilters); + saveValues(dlg, options.settings, options.settingsKey); return resolve(); } return resolve(); diff --git a/src/components/guide/guide.js b/src/components/guide/guide.js index 76c54693f..97c8bff2c 100644 --- a/src/components/guide/guide.js +++ b/src/components/guide/guide.js @@ -291,7 +291,7 @@ function Guide(options) { showPremiereIndicator: allowIndicators && userSettings.get('guide-indicator-premiere') !== 'false', showNewIndicator: allowIndicators && userSettings.get('guide-indicator-new') !== 'false', showRepeatIndicator: allowIndicators && userSettings.get('guide-indicator-repeat') === 'true', - showEpisodeTitle: layoutManager.tv ? false : true + showEpisodeTitle: !layoutManager.tv }; apiClient.getLiveTvChannels(channelQuery).then(function (channelsResult) { diff --git a/src/components/homesections/sections/libraryButtons.ts b/src/components/homesections/sections/libraryButtons.ts index 06656c343..fc5c48166 100644 --- a/src/components/homesections/sections/libraryButtons.ts +++ b/src/components/homesections/sections/libraryButtons.ts @@ -4,7 +4,7 @@ import escapeHtml from 'escape-html'; import imageLoader from 'components/images/imageLoader'; import { appRouter } from 'components/router/appRouter'; import globalize from 'scripts/globalize'; -import imageHelper from 'scripts/imagehelper'; +import imageHelper from 'utils/image'; function getLibraryButtonsHtml(items: BaseItemDto[]) { let html = ''; diff --git a/src/components/itemContextMenu.js b/src/components/itemContextMenu.js index 0416ce471..bf03b6903 100644 --- a/src/components/itemContextMenu.js +++ b/src/components/itemContextMenu.js @@ -9,6 +9,7 @@ import itemHelper from './itemHelper'; import { playbackManager } from './playback/playbackmanager'; import ServerConnections from './ServerConnections'; import toast from './toast/toast'; +import * as userSettings from '../scripts/settings/userSettings'; export function getCommands(options) { const item = options.item; @@ -589,9 +590,16 @@ function play(item, resume, queue, queueNext) { serverId: item.ServerId }); } else { + const sortParentId = 'items-' + (item.IsFolder ? item.Id : item.ParentId) + '-Folder'; + const sortValues = userSettings.getSortValuesLegacy(sortParentId); + playbackManager[method]({ items: [item], - startPositionTicks: startPosition + startPositionTicks: startPosition, + queryOptions: { + SortBy: sortValues.sortBy, + SortOrder: sortValues.sortOrder + } }); } } diff --git a/src/components/listview/listview.js b/src/components/listview/listview.js index 1a230c31e..4c05be198 100644 --- a/src/components/listview/listview.js +++ b/src/components/listview/listview.js @@ -177,7 +177,7 @@ export function getListViewHtml(options) { const isLargeStyle = options.imageSize === 'large'; const enableOverview = options.enableOverview; - const clickEntireItem = layoutManager.tv ? true : false; + const clickEntireItem = layoutManager.tv; const outerTagName = clickEntireItem ? 'button' : 'div'; const enableSideMediaInfo = options.enableSideMediaInfo != null ? options.enableSideMediaInfo : true; diff --git a/src/components/mediainfo/mediainfo.js b/src/components/mediainfo/mediainfo.js index ec908d0d0..a6bfcf715 100644 --- a/src/components/mediainfo/mediainfo.js +++ b/src/components/mediainfo/mediainfo.js @@ -183,9 +183,9 @@ export function getMediaInfoHtml(item, options = {}) { if (item.EndDate) { try { const endYear = datetime.toLocaleString(datetime.parseISO8601Date(item.EndDate).getFullYear(), { useGrouping: false }); - - if (endYear !== item.ProductionYear) { - text += `-${endYear}`; + /* At this point, text will contain only the start year */ + if (endYear !== text) { + text += ` - ${endYear}`; } } catch (e) { console.error('error parsing date:', item.EndDate); diff --git a/src/components/playback/playbackmanager.js b/src/components/playback/playbackmanager.js index 53b70ea44..2e2aef986 100644 --- a/src/components/playback/playbackmanager.js +++ b/src/components/playback/playbackmanager.js @@ -15,6 +15,7 @@ import { PluginType } from '../../types/plugin.ts'; import { includesAny } from '../../utils/container.ts'; import { getItems } from '../../utils/jellyfin-apiclient/getItems.ts'; import { getItemBackdropImageUrl } from '../../utils/jellyfin-apiclient/backdropImage'; +import merge from 'lodash-es/merge'; const UNLIMITED_ITEMS = -1; @@ -145,7 +146,7 @@ function createStreamInfoFromUrlItem(item) { } function mergePlaybackQueries(obj1, obj2) { - const query = Object.assign(obj1, obj2); + const query = merge({}, obj1, obj2); const filters = query.Filters ? query.Filters.split(',') : []; if (filters.indexOf('IsNotFolder') === -1) { @@ -1798,15 +1799,15 @@ class PlaybackManager { SortBy: options.shuffle ? 'Random' : null }); } else if (firstItem.Type === 'MusicArtist') { - promise = getItemsForPlayback(serverId, { + promise = getItemsForPlayback(serverId, mergePlaybackQueries({ ArtistIds: firstItem.Id, Filters: 'IsNotFolder', Recursive: true, SortBy: options.shuffle ? 'Random' : 'SortName', MediaTypes: 'Audio' - }); + }, queryOptions)); } else if (firstItem.MediaType === 'Photo') { - promise = getItemsForPlayback(serverId, { + promise = getItemsForPlayback(serverId, mergePlaybackQueries({ ParentId: firstItem.ParentId, Filters: 'IsNotFolder', // Setting this to true may cause some incorrect sorting @@ -1814,7 +1815,7 @@ class PlaybackManager { SortBy: options.shuffle ? 'Random' : 'SortName', MediaTypes: 'Photo,Video', Limit: UNLIMITED_ITEMS - }).then(function (result) { + }, queryOptions)).then(function (result) { const playbackItems = result.Items; let index = playbackItems.map(function (i) { @@ -1830,7 +1831,7 @@ class PlaybackManager { return Promise.resolve(result); }); } else if (firstItem.Type === 'PhotoAlbum') { - promise = getItemsForPlayback(serverId, { + promise = getItemsForPlayback(serverId, mergePlaybackQueries({ ParentId: firstItem.Id, Filters: 'IsNotFolder', // Setting this to true may cause some incorrect sorting @@ -1839,15 +1840,15 @@ class PlaybackManager { // Only include Photos because we do not handle mixed queues currently MediaTypes: 'Photo', Limit: UNLIMITED_ITEMS - }); + }, queryOptions)); } else if (firstItem.Type === 'MusicGenre') { - promise = getItemsForPlayback(serverId, { + promise = getItemsForPlayback(serverId, mergePlaybackQueries({ GenreIds: firstItem.Id, Filters: 'IsNotFolder', Recursive: true, SortBy: options.shuffle ? 'Random' : 'SortName', MediaTypes: 'Audio' - }); + }, queryOptions)); } else if (firstItem.Type === 'Series' || firstItem.Type === 'Season') { const apiClient = ServerConnections.getApiClient(firstItem.ServerId); @@ -2773,6 +2774,12 @@ class PlaybackManager { }); }); } else { + if (item.AlbumId != null) { + return apiClient.getItem(apiClient.getCurrentUserId(), item.AlbumId).then(function(result) { + mediaSource.albumLUFS = result.LUFS; + return mediaSource; + }); + } return mediaSource; } } else { diff --git a/src/components/playback/playersettingsmenu.js b/src/components/playback/playersettingsmenu.js index e0acde509..9f9f54d56 100644 --- a/src/components/playback/playersettingsmenu.js +++ b/src/components/playback/playersettingsmenu.js @@ -46,7 +46,7 @@ function showQualityMenu(player, btn) { const bitrate = parseInt(id, 10); if (bitrate !== selectedBitrate) { playbackManager.setMaxStreamingBitrate({ - enableAutomaticBitrateDetection: bitrate ? false : true, + enableAutomaticBitrateDetection: !bitrate, maxBitrate: bitrate }, player); } diff --git a/src/components/playbackSettings/playbackSettings.js b/src/components/playbackSettings/playbackSettings.js index 0e3a798b6..aa02c1ed2 100644 --- a/src/components/playbackSettings/playbackSettings.js +++ b/src/components/playbackSettings/playbackSettings.js @@ -173,7 +173,7 @@ function loadForm(context, user, userSettings, apiClient) { context.querySelector('.chkPlayDefaultAudioTrack').checked = user.Configuration.PlayDefaultAudioTrack || false; context.querySelector('.chkPreferFmp4HlsContainer').checked = userSettings.preferFmp4HlsContainer(); context.querySelector('.chkEnableCinemaMode').checked = userSettings.enableCinemaMode(); - context.querySelector('.chkEnableAudioNormalization').checked = userSettings.enableAudioNormalization(); + context.querySelector('#selectAudioNormalization').value = userSettings.selectAudioNormalization(); context.querySelector('.chkEnableNextVideoOverlay').checked = userSettings.enableNextVideoInfoOverlay(); context.querySelector('.chkRememberAudioSelections').checked = user.Configuration.RememberAudioSelections || false; context.querySelector('.chkRememberSubtitleSelections').checked = user.Configuration.RememberSubtitleSelections || false; @@ -218,7 +218,7 @@ function saveUser(context, user, userSettingsInstance, apiClient) { user.Configuration.EnableNextEpisodeAutoPlay = context.querySelector('.chkEpisodeAutoPlay').checked; userSettingsInstance.preferFmp4HlsContainer(context.querySelector('.chkPreferFmp4HlsContainer').checked); userSettingsInstance.enableCinemaMode(context.querySelector('.chkEnableCinemaMode').checked); - userSettingsInstance.enableAudioNormalization(context.querySelector('.chkEnableAudioNormalization').checked); + userSettingsInstance.selectAudioNormalization(context.querySelector('#selectAudioNormalization').value); userSettingsInstance.enableNextVideoInfoOverlay(context.querySelector('.chkEnableNextVideoOverlay').checked); user.Configuration.RememberAudioSelections = context.querySelector('.chkRememberAudioSelections').checked; user.Configuration.RememberSubtitleSelections = context.querySelector('.chkRememberSubtitleSelections').checked; diff --git a/src/components/playbackSettings/playbackSettings.template.html b/src/components/playbackSettings/playbackSettings.template.html index 44dfe85e0..0926737af 100644 --- a/src/components/playbackSettings/playbackSettings.template.html +++ b/src/components/playbackSettings/playbackSettings.template.html @@ -72,12 +72,13 @@ ${TabAdvanced} -
- -
${EnableAudioNormalizationHelp}
+
+ +
${SelectAudioNormalizationHelp}
diff --git a/src/components/shortcuts.js b/src/components/shortcuts.js index 7dc840e8b..58a7bffb0 100644 --- a/src/components/shortcuts.js +++ b/src/components/shortcuts.js @@ -11,6 +11,7 @@ import dom from '../scripts/dom'; import recordingHelper from './recordingcreator/recordinghelper'; import ServerConnections from './ServerConnections'; import toast from './toast/toast'; +import * as userSettings from '../scripts/settings/userSettings'; function playAllFromHere(card, serverId, queue) { const parent = card.parentNode; @@ -177,6 +178,10 @@ function executeAction(card, target, action) { const item = getItemInfoFromCard(card); + const itemsContainer = dom.parentWithClass(card, 'itemsContainer'); + + const sortParentId = 'items-' + (item.IsFolder ? item.Id : itemsContainer?.getAttribute('data-parentid')) + '-Folder'; + const serverId = item.ServerId; const type = item.Type; @@ -200,12 +205,17 @@ function executeAction(card, target, action) { }); } else if (action === 'play' || action === 'resume') { const startPositionTicks = parseInt(card.getAttribute('data-positionticks') || '0', 10); + const sortValues = userSettings.getSortValuesLegacy(sortParentId, 'SortName'); if (playbackManager.canPlay(item)) { playbackManager.play({ ids: [playableItemId], startPositionTicks: startPositionTicks, - serverId: serverId + serverId: serverId, + queryOptions: { + SortBy: sortValues.sortBy, + SortOrder: sortValues.sortOrder + } }); } else { console.warn('Unable to play item', item); diff --git a/src/components/sortmenu/sortmenu.js b/src/components/sortmenu/sortmenu.js index 65aef222e..39d42362b 100644 --- a/src/components/sortmenu/sortmenu.js +++ b/src/components/sortmenu/sortmenu.js @@ -18,8 +18,8 @@ function onSubmit(e) { function initEditor(context, settings) { context.querySelector('form').addEventListener('submit', onSubmit); - context.querySelector('.selectSortOrder').value = settings.SortOrder; - context.querySelector('.selectSortBy').value = settings.SortBy; + context.querySelector('.selectSortOrder').value = settings.sortOrder; + context.querySelector('.selectSortBy').value = settings.sortBy; } function centerFocus(elem, horiz, on) { @@ -37,18 +37,9 @@ function fillSortBy(context, options) { }).join(''); } -function saveValues(context, settingsKey, setSortValues) { - if (setSortValues) { - setSortValues((prevState) => ({ - ...prevState, - StartIndex: 0, - SortBy: context.querySelector('.selectSortBy').value, - SortOrder: context.querySelector('.selectSortOrder').value - })); - } else { - userSettings.setFilter(settingsKey + '-sortorder', context.querySelector('.selectSortOrder').value); - userSettings.setFilter(settingsKey + '-sortby', context.querySelector('.selectSortBy').value); - } +function saveValues(context, settingsKey) { + userSettings.setFilter(settingsKey + '-sortorder', context.querySelector('.selectSortOrder').value); + userSettings.setFilter(settingsKey + '-sortby', context.querySelector('.selectSortBy').value); } class SortMenu { @@ -104,7 +95,7 @@ class SortMenu { } if (submitted) { - saveValues(dlg, options.settingsKey, options.setSortValues); + saveValues(dlg, options.settingsKey); resolve(); return; } diff --git a/src/components/toolbar/AppToolbar.tsx b/src/components/toolbar/AppToolbar.tsx index 8ed92eee1..d63d007cf 100644 --- a/src/components/toolbar/AppToolbar.tsx +++ b/src/components/toolbar/AppToolbar.tsx @@ -6,7 +6,7 @@ import Toolbar from '@mui/material/Toolbar'; import Tooltip from '@mui/material/Tooltip'; import Typography from '@mui/material/Typography'; import React, { FC, ReactNode } from 'react'; -import { Link } from 'react-router-dom'; +import { Link, useLocation } from 'react-router-dom'; import appIcon from 'assets/img/icon-transparent.png'; import { appRouter } from 'components/router/appRouter'; @@ -38,9 +38,13 @@ const AppToolbar: FC = ({ }) => { const { user } = useApi(); const isUserLoggedIn = Boolean(user); + const currentLocation = useLocation(); const isBackButtonAvailable = appRouter.canGoBack(); + // Handles a specific case to hide the user menu on the select server page while authenticated + const isUserMenuAvailable = currentLocation.pathname !== '/selectserver.html'; + return ( = ({ {children} - {isUserLoggedIn && ( + {isUserLoggedIn && isUserMenuAvailable && ( <> {buttons} diff --git a/src/components/viewSettings/viewSettings.js b/src/components/viewSettings/viewSettings.js index f5cb86420..a214f1367 100644 --- a/src/components/viewSettings/viewSettings.js +++ b/src/components/viewSettings/viewSettings.js @@ -29,24 +29,13 @@ function initEditor(context, settings) { context.querySelector('.selectImageType').value = settings.imageType || 'primary'; } -function saveValues(context, settings, settingsKey, setviewsettings) { - if (setviewsettings) { - setviewsettings((prevState) => ({ - ...prevState, - StartIndex: 0, - imageType: context.querySelector('.selectImageType').value, - showTitle: context.querySelector('.chkShowTitle').checked || false, - showYear: context.querySelector('.chkShowYear').checked || false, - cardLayout: context.querySelector('.chkEnableCardLayout').checked || false - })); - } else { - const elems = context.querySelectorAll('.viewSetting-checkboxContainer'); - for (const elem of elems) { - userSettings.set(settingsKey + '-' + elem.getAttribute('data-settingname'), elem.querySelector('input').checked); - } - - userSettings.set(settingsKey + '-imageType', context.querySelector('.selectImageType').value); +function saveValues(context, settings, settingsKey) { + const elems = context.querySelectorAll('.viewSetting-checkboxContainer'); + for (const elem of elems) { + userSettings.set(settingsKey + '-' + elem.getAttribute('data-settingname'), elem.querySelector('input').checked); } + + userSettings.set(settingsKey + '-imageType', context.querySelector('.selectImageType').value); } function centerFocus(elem, horiz, on) { @@ -112,7 +101,6 @@ class ViewSettings { dlg.querySelector('.selectImageType').addEventListener('change', function () { showIfAllowed(dlg, '.chkTitleContainer', this.value !== 'list' && this.value !== 'banner'); showIfAllowed(dlg, '.chkYearContainer', this.value !== 'list' && this.value !== 'banner'); - showIfAllowed(dlg, '.chkCardLayoutContainer', this.value !== 'list' && this.value !== 'banner'); }); dlg.querySelector('.btnCancel').addEventListener('click', function () { @@ -137,7 +125,7 @@ class ViewSettings { } if (submitted) { - saveValues(dlg, options.settings, options.settingsKey, options.setviewsettings); + saveValues(dlg, options.settings, options.settingsKey); return resolve(); } diff --git a/src/components/viewSettings/viewSettings.template.html b/src/components/viewSettings/viewSettings.template.html index ddee9536b..df9767fb7 100644 --- a/src/components/viewSettings/viewSettings.template.html +++ b/src/components/viewSettings/viewSettings.template.html @@ -35,13 +35,6 @@ ${GroupBySeries}
- -
- -
diff --git a/src/controllers/dashboard/dashboard.js b/src/controllers/dashboard/dashboard.js index bae3880f2..30f37764b 100644 --- a/src/controllers/dashboard/dashboard.js +++ b/src/controllers/dashboard/dashboard.js @@ -12,7 +12,7 @@ import playMethodHelper from '../../components/playback/playmethodhelper'; import cardBuilder from '../../components/cardbuilder/cardBuilder'; import imageLoader from '../../components/images/imageLoader'; import ActivityLog from '../../components/activitylog'; -import imageHelper from '../../scripts/imagehelper'; +import imageHelper from '../../utils/image'; import indicators from '../../components/indicators/indicators'; import '../../components/listview/listview.scss'; import '../../elements/emby-button/emby-button'; diff --git a/src/controllers/dashboard/devices/devices.js b/src/controllers/dashboard/devices/devices.js index c62571a1b..33ca6bfb0 100644 --- a/src/controllers/dashboard/devices/devices.js +++ b/src/controllers/dashboard/devices/devices.js @@ -3,7 +3,7 @@ import cardBuilder from '../../../components/cardbuilder/cardBuilder'; import loading from '../../../components/loading/loading'; import dom from '../../../scripts/dom'; import globalize from '../../../scripts/globalize'; -import imageHelper from '../../../scripts/imagehelper'; +import imageHelper from '../../../utils/image'; import { formatDistanceToNow } from 'date-fns'; import { getLocaleWithSuffix } from '../../../utils/dateFnsLocale.ts'; import '../../../elements/emby-button/emby-button'; diff --git a/src/controllers/dashboard/encodingsettings.html b/src/controllers/dashboard/encodingsettings.html index 278d95dba..af2d4eb6d 100644 --- a/src/controllers/dashboard/encodingsettings.html +++ b/src/controllers/dashboard/encodingsettings.html @@ -254,7 +254,9 @@ -
${LabelFallbackFontPathHelp}
+
+ ${LabelFallbackFontPathHelp} +
); diff --git a/src/elements/emby-scrollbuttons/emby-scrollbuttons.js b/src/elements/emby-scrollbuttons/emby-scrollbuttons.js index 770a435ef..7adfaa8e7 100644 --- a/src/elements/emby-scrollbuttons/emby-scrollbuttons.js +++ b/src/elements/emby-scrollbuttons/emby-scrollbuttons.js @@ -2,6 +2,7 @@ import './emby-scrollbuttons.scss'; import 'webcomponents.js/webcomponents-lite'; import '../emby-button/paper-icon-button-light'; import globalize from '../../scripts/globalize'; +import { scrollerItemSlideIntoView } from './utils'; const EmbyScrollButtonsPrototype = Object.create(HTMLDivElement.prototype); @@ -128,26 +129,16 @@ function getScrollSize(elem) { } function onScrollButtonClick() { - const scroller = this.parentNode.nextSibling; - const direction = this.getAttribute('data-direction'); - const scrollSize = getScrollSize(scroller); - const scrollPos = getScrollPosition(scroller); - - let newPos; - if (direction === 'left') { - newPos = Math.max(0, scrollPos - scrollSize); - } else { - newPos = scrollPos + scrollSize; - } - - if (globalize.getIsRTL() && direction === 'left') { - newPos = scrollPos + scrollSize; - } else if (globalize.getIsRTL()) { - newPos = Math.min(0, scrollPos - scrollSize); - } - - scroller.scrollToPosition(newPos, false); + const scroller = this.parentNode.nextSibling; + const scrollPosition = getScrollPosition(scroller); + scrollerItemSlideIntoView({ + direction, + scroller, + scrollState: { + scrollPos: scrollPosition + } + }); } EmbyScrollButtonsPrototype.attachedCallback = function () { diff --git a/src/elements/emby-scrollbuttons/utils.ts b/src/elements/emby-scrollbuttons/utils.ts new file mode 100644 index 000000000..dc8a7c1d4 --- /dev/null +++ b/src/elements/emby-scrollbuttons/utils.ts @@ -0,0 +1,103 @@ +import ScrollerFactory from 'libraries/scroller'; +import globalize from 'scripts/globalize'; + +export enum ScrollDirection { + RIGHT = 'right', + LEFT = 'left', +} + +interface ScrollState { + scrollPos: number; +} + +interface ScrollerItemSlideIntoViewProps { + direction: ScrollDirection; + scroller: ScrollerFactory | null; + scrollState: ScrollState; +} + +interface ScrollToWindowProps { + scroller: ScrollerFactory; + items: HTMLElement[]; + scrollState: ScrollState; + direction: ScrollDirection +} + +export function scrollerItemSlideIntoView({ direction, scroller, scrollState }: ScrollerItemSlideIntoViewProps) { + if (!scroller) { + return; + } + + const slider: HTMLElement = scroller.getScrollSlider(); + const items = [...slider.children] as HTMLElement[]; + + scrollToWindow({ + scroller, + items, + scrollState, + direction + }); +} + +function getFirstAndLastVisible(scrollFrame: HTMLElement, items: HTMLElement[], { scrollPos: scrollPosition }: ScrollState) { + const isRTL = globalize.getIsRTL(); + const localeModifier = isRTL ? -1 : 1; + + const currentScrollPos = scrollPosition * localeModifier; + const scrollerWidth = scrollFrame.offsetWidth; + const itemWidth = items[0].offsetWidth; + + // Rounding down here will give us the first item index which is fully visible. We want the first partially visible + // index so we'll subtract one. + const firstVisibleIndex = Math.max(Math.floor(currentScrollPos / itemWidth) - 1, 0); + // Rounding up will give us the last index which is at least partially visible (overflows at container end). + const lastVisibleIndex = Math.floor((currentScrollPos + scrollerWidth) / itemWidth); + + return [firstVisibleIndex, lastVisibleIndex]; +} + +function scrollToWindow({ + scroller, + items, + scrollState, + direction = ScrollDirection.RIGHT +}: ScrollToWindowProps) { + // When we're rendering RTL, scrolling toward the end of the container is toward the left so all of our scroll + // positions need to be negative. + const isRTL = globalize.getIsRTL(); + const localeModifier = isRTL ? -1 : 1; + + // NOTE: The legacy scroller is passing in an Element which is the frame element and has some of the scroller + // factory functions on it, but is not a true scroller factory. For legacy, we need to pass `scroller` directly + // instead of getting the frame from the factory instance. + const frame = scroller.getScrollFrame?.() ?? scroller; + const [firstVisibleIndex, lastVisibleIndex] = getFirstAndLastVisible(frame, items, scrollState); + + let scrollToPosition: number; + + if (direction === ScrollDirection.RIGHT) { + const nextItem = items[lastVisibleIndex]; + + // This will be the position to anchor the item at `lastVisibleIndex` to the start of the view window. + const nextItemScrollOffset = lastVisibleIndex * nextItem.offsetWidth; + scrollToPosition = nextItemScrollOffset * localeModifier; + } else { + const previousItem = items[firstVisibleIndex]; + const previousItemScrollOffset = firstVisibleIndex * previousItem.offsetWidth; + + // Find the total number of items that can fit in a view window and subtract one to account for item at + // `firstVisibleIndex`. The total width of these items is the amount that we need to adjust the scroll position by + // to anchor item at `firstVisibleIndex` to the end of the view window. + const offsetAdjustment = (Math.floor(frame.offsetWidth / previousItem.offsetWidth) - 1) * previousItem.offsetWidth; + + // This will be the position to anchor the item at `firstVisibleIndex` to the end of the view window. + scrollToPosition = (previousItemScrollOffset - offsetAdjustment) * localeModifier; + } + + if (scroller.slideTo) { + scroller.slideTo(scrollToPosition, false, undefined); + } else { + // @ts-expect-error Legacy support passes in a `scroller` that isn't a ScrollFactory + scroller.scrollToPosition(scrollToPosition); + } +} diff --git a/src/plugins/htmlAudioPlayer/plugin.js b/src/plugins/htmlAudioPlayer/plugin.js index 2742e8d8c..d9104638c 100644 --- a/src/plugins/htmlAudioPlayer/plugin.js +++ b/src/plugins/htmlAudioPlayer/plugin.js @@ -112,9 +112,14 @@ class HtmlAudioPlayer { let val = options.url; console.debug('playing url: ' + val); import('../../scripts/settings/userSettings').then((userSettings) => { - if (userSettings.enableAudioNormalization() && options.item.LUFS != null) { + if (userSettings.selectAudioNormalization() == 'TrackGain' && options.item.LUFS != null) { const dbGain = -18 - options.item.LUFS; self.gainNode.gain.value = Math.pow(10, (dbGain / 20)); + console.debug('[HtmlAudioPlayer] Using track gain'); + } else if (userSettings.selectAudioNormalization() == 'AlbumGain' && options.mediaSource.albumLUFS != null) { + const dbGain = -18 - options.mediaSource.albumLUFS; + self.gainNode.gain.value = Math.pow(10, (dbGain / 20)); + console.debug('[HtmlAudioPlayer] Using album gain'); } else { self.gainNode.gain.value = 1; } diff --git a/src/scripts/browserDeviceProfile.js b/src/scripts/browserDeviceProfile.js index f6289522f..afa8c8df7 100644 --- a/src/scripts/browserDeviceProfile.js +++ b/src/scripts/browserDeviceProfile.js @@ -692,7 +692,7 @@ export default function (options) { profile.TranscodingProfiles = []; - const hlsBreakOnNonKeyFrames = browser.iOS || browser.osx || browser.edge || !canPlayNativeHls() ? true : false; + const hlsBreakOnNonKeyFrames = browser.iOS || browser.osx || browser.edge || !canPlayNativeHls(); if (canPlayHls() && browser.enableHlsAudio !== false) { profile.TranscodingProfiles.push({ diff --git a/src/scripts/itemsByName.js b/src/scripts/itemsByName.js index b0ead111d..11a3cb169 100644 --- a/src/scripts/itemsByName.js +++ b/src/scripts/itemsByName.js @@ -125,7 +125,8 @@ function renderSection(item, element, type) { ArtistIds: '', AlbumArtistIds: '', Limit: 10, - SortBy: 'SortName' + SortOrder: 'Descending,Desending,Ascending', + SortBy: 'PremiereDate,ProductionYear,SortName' }, { shape: 'overflowPortrait', showTitle: true, @@ -194,7 +195,7 @@ function renderSection(item, element, type) { PersonTypes: '', ArtistIds: '', AlbumArtistIds: '', - SortOrder: 'Descending', + SortOrder: 'Descending,Desending,Ascending', SortBy: 'PremiereDate,ProductionYear,Sortname' }, { shape: 'overflowSquare', diff --git a/src/scripts/libraryMenu.js b/src/scripts/libraryMenu.js index f90ece9d7..ce105dbec 100644 --- a/src/scripts/libraryMenu.js +++ b/src/scripts/libraryMenu.js @@ -12,7 +12,7 @@ import { pluginManager } from '../components/pluginManager'; import groupSelectionMenu from '../plugins/syncPlay/ui/groupSelectionMenu'; import browser from './browser'; import globalize from './globalize'; -import imageHelper from './imagehelper'; +import imageHelper from '../utils/image'; import { getMenuLinks } from '../scripts/settings/webSettings'; import Dashboard, { pageClassOn } from '../utils/dashboard'; import ServerConnections from '../components/ServerConnections'; diff --git a/src/scripts/settings/userSettings.js b/src/scripts/settings/userSettings.js index 9dc065621..f9fa978b7 100644 --- a/src/scripts/settings/userSettings.js +++ b/src/scripts/settings/userSettings.js @@ -158,15 +158,15 @@ export class UserSettings { /** * Get or set 'Enable Audio Normalization' state. - * @param {boolean|undefined} val - Flag to enable 'Enable Audio Normalization' or undefined. - * @return {boolean} 'Enable Audio Normalization' state. + * @param {string|undefined} val - Flag to enable 'Enable Audio Normalization' or undefined. + * @return {string} 'Enable Audio Normalization' state. */ - enableAudioNormalization(val) { + selectAudioNormalization(val) { if (val !== undefined) { - return this.set('enableAudioNormalization', val.toString(), false); + return this.set('selectAudioNormalization', val, false); } - return toBoolean(this.get('enableAudioNormalization', false), true); + return this.get('selectAudioNormalization', false) || 'TrackGain'; } /** @@ -622,6 +622,21 @@ export class UserSettings { getFilter(key) { return this.get(key, true); } + + /** + * Gets the current sort values (Legacy - Non-JSON) + * (old views such as list.js [Photos] will + * use this one) + * @param {string} key - Filter key. + * @param {string} defaultSortBy - Default SortBy value. + * @return {Object} sortOptions object + */ + getSortValuesLegacy(key, defaultSortBy) { + return { + sortBy: this.getFilter(key + '-sortby') || defaultSortBy, + sortOrder: this.getFilter(key + '-sortorder') === 'Descending' ? 'Descending' : 'Ascending' + }; + } } export const currentSettings = new UserSettings; @@ -636,7 +651,7 @@ export const serverConfig = currentSettings.serverConfig.bind(currentSettings); export const allowedAudioChannels = currentSettings.allowedAudioChannels.bind(currentSettings); export const preferFmp4HlsContainer = currentSettings.preferFmp4HlsContainer.bind(currentSettings); export const enableCinemaMode = currentSettings.enableCinemaMode.bind(currentSettings); -export const enableAudioNormalization = currentSettings.enableAudioNormalization.bind(currentSettings); +export const selectAudioNormalization = currentSettings.selectAudioNormalization.bind(currentSettings); export const enableNextVideoInfoOverlay = currentSettings.enableNextVideoInfoOverlay.bind(currentSettings); export const enableVideoRemainingTime = currentSettings.enableVideoRemainingTime.bind(currentSettings); export const enableThemeSongs = currentSettings.enableThemeSongs.bind(currentSettings); @@ -672,3 +687,4 @@ export const customCss = currentSettings.customCss.bind(currentSettings); export const disableCustomCss = currentSettings.disableCustomCss.bind(currentSettings); export const getSavedView = currentSettings.getSavedView.bind(currentSettings); export const saveViewSetting = currentSettings.saveViewSetting.bind(currentSettings); +export const getSortValuesLegacy = currentSettings.getSortValuesLegacy.bind(currentSettings); diff --git a/src/strings/cs.json b/src/strings/cs.json index 6d04706b1..35c5c436d 100644 --- a/src/strings/cs.json +++ b/src/strings/cs.json @@ -1429,7 +1429,7 @@ "DeleteAll": "Odstranit vše", "EnableFallbackFontHelp": "Povolit vlastní alternativní písma. Může vyřešit problémy s nesprávným vykreslením titulků.", "EnableFallbackFont": "Povolit záložní písma", - "LabelFallbackFontPathHelp": "Zadejte cestu k náhradním písmům pro vykreslení titulků ve formátu ASS/SSA. Maximální celková velikost písma je 20 MB. Doporučujeme používat malé webové písma jako například formát woff2.", + "LabelFallbackFontPathHelp": "Tato písma používají někteří klienti k vykreslení titulků. Více informací naleznete v dokumentaci.", "LabelFallbackFontPath": "Cesta k náhradním písmům", "HeaderSelectFallbackFontPathHelp": "Vyberte či zadejte cestu k záložním písmům pro vykreslení titulků ve formátu ASS/SSA.", "HeaderSelectFallbackFontPath": "Vybrat cestu k záložním fontům", @@ -1776,5 +1776,9 @@ "UnknownError": "Došlo k neznámé chybě.", "BackdropScreensaver": "Pozadí", "LogoScreensaver": "Logo", - "LabelIsHearingImpaired": "Titulky pro neslyšící" + "LabelIsHearingImpaired": "Titulky pro neslyšící", + "LabelSelectAudioNormalization": "Normalizace hlasitosti", + "LabelAlbumGain": "Na úrovni alba", + "LabelTrackGain": "Na úrovni skladby", + "SelectAudioNormalizationHelp": "Normalizace na úrovni skladby upraví hlasitost všech skladeb tak, aby byla všude stejná. Normalizace na úrovni alba upraví hlasitost všech skladeb tak, aby byla hlasitost stejná v rámci jednotlivých alb." } diff --git a/src/strings/en-us.json b/src/strings/en-us.json index b6eee5bfe..464521d27 100644 --- a/src/strings/en-us.json +++ b/src/strings/en-us.json @@ -138,7 +138,7 @@ "ChannelNumber": "Channel number", "Channels": "Channels", "CinemaModeConfigurationHelp": "Cinema mode brings the theater experience straight to your living room with the ability to play trailers and custom intros before the main feature.", - "EnableAudioNormalizationHelp": "Audio normalization will add a constant gain to keep the average at a desired level (-18dB).", + "SelectAudioNormalizationHelp": "Track gain - adjusts the volume of each track so they playback with the same loudness. Album gain - adjusts the volume of all the tracks in an album only, keeping the album's dynamic range.", "ClearQueue": "Clear queue", "ClientSettings": "Client Settings", "Collections": "Collections", @@ -226,7 +226,6 @@ "EnableBlurHash": "Enable blurred placeholders for images", "EnableBlurHashHelp": "Images that are still being loaded will be displayed with a unique placeholder.", "EnableCinemaMode": "Cinema mode", - "EnableAudioNormalization": "Audio Normalization", "EnableColorCodedBackgrounds": "Color coded backgrounds", "EnableDecodingColorDepth10Hevc": "Enable 10-bit hardware decoding for HEVC", "EnableDecodingColorDepth10Vp9": "Enable 10-bit hardware decoding for VP9", @@ -549,6 +548,7 @@ "LabelAlbumArtMaxResHelp": "Maximum resolution of album art exposed via the 'upnp:albumArtURI' property.", "LabelAlbumArtMaxWidth": "Album art max width", "LabelAlbumArtPN": "Album art PN", + "LabelAlbumGain": "Album Gain", "LabelAllowedRemoteAddresses": "Remote IP address filter", "LabelAllowedRemoteAddressesMode": "Remote IP address filter mode", "LabelAllowHWTranscoding": "Allow hardware transcoding", @@ -561,6 +561,7 @@ "LabelAudioChannels": "Audio channels", "LabelAudioCodec": "Audio codec", "LabelAudioLanguagePreference": "Preferred audio language", + "LabelSelectAudioNormalization": "Audio Normalization", "LabelAudioSampleRate": "Audio sample rate", "LabelAuthProvider": "Authentication Provider", "LabelAutomaticallyAddToCollection": "Automatically add to collection", @@ -1625,7 +1626,7 @@ "HeaderSelectFallbackFontPath": "Select Fallback Font Folder Path", "HeaderSelectFallbackFontPathHelp": "Browse or enter the path of the fallback font folder to use for rendering ASS/SSA subtitles.", "LabelFallbackFontPath": "Fallback font folder path", - "LabelFallbackFontPathHelp": "Specify a path containing fallback fonts for rendering ASS/SSA subtitles. The maximum allowed total font size is 20 MB. Lightweight and web-friendly font formats such as woff2 are recommended.", + "LabelFallbackFontPathHelp": "These fonts are used by some clients to render subtitles. Please refer to the documentation for more information.", "EnableFallbackFont": "Enable fallback fonts", "EnableFallbackFontHelp": "Enable custom alternate fonts. This can avoid the problem of incorrect subtitle rendering.", "AspectRatioCover": "Cover", @@ -1636,6 +1637,7 @@ "LabelPlaybackInfo": "Playback Info", "LabelAudioInfo": "Audio Info", "LabelVideoInfo": "Video Info", + "LabelTrackGain": "Track Gain", "LabelTranscodingInfo": "Transcoding Info", "LabelDirectStreamingInfo": "Direct Streaming Info", "LabelRemuxingInfo": "Remuxing Info", diff --git a/src/strings/fi.json b/src/strings/fi.json index a2ba7d3d4..94264fdf2 100644 --- a/src/strings/fi.json +++ b/src/strings/fi.json @@ -1450,7 +1450,7 @@ "LabelAutomaticallyAddToCollectionHelp": "Kun ainakin kahdelle elokuvalle on ilmoitettu sama kokoelma, lisätään ne kokoelmaan automaattisesti.", "OptionSaveMetadataAsHiddenHelp": "Tämän muutos vaikuttaa vain jatkossa tehtäviin metatietojen tallennuksiin. Olemassa olevat metatietotiedostot päivitetään, kun palvelin tallentaa ne seuraavan kerran.", "SpecialFeatures": "Lisämateriaalit", - "LabelFallbackFontPathHelp": "Määritä ASS/SSA-tekstitysten varmistusfonttien tiedostosijainti. Suurin sallittu fontin kokonaiskoko on 20 Mt. Kevyet verkkoystävälliset fontit, kuten woff2, ovat suositeltuja.", + "LabelFallbackFontPathHelp": "Jotkin päätelaitteet käyttävät tekstityksille näitä fontteja. Katso lisätietoja käyttöoppaasta.", "HeaderSelectFallbackFontPathHelp": "Selaa tai syötä ASS/SSA-tekstitysten renderöintiin käytettävien varmistusfonttien tiedostosijainti.", "PathNotFound": "Tiedostosijaintia ei löydy. Varmista, että se on oikein ja yritä uudelleen.", "XmlTvPathHelp": "XMLTV-tiedoston sijainti. Jellyfin lukee tiedoston ajoittain muutosten varalta. Olet itse vastuussa tiedoston luonnista ja päivityksestä.", @@ -1774,5 +1774,9 @@ "UnknownError": "Tapahtui tuntematon virhe.", "BackdropScreensaver": "Backdrop-näytönsäästäjä", "LogoScreensaver": "Logo-näytönsäästäjä", - "LabelIsHearingImpaired": "Kuulorajoitteisille (SDH)" + "LabelIsHearingImpaired": "Kuulorajoitteisille (SDH)", + "SelectAudioNormalizationHelp": "Kappalekohtainen vahvistus – jokaisen kappaleen äänenvoimakkuus pyritään säätämään samalle tasolle. Albumikohtainen vahvistus – kappaleiden äänenvoimakkuus pyritään tasaamaan albumikohtaisesti albumikohtaisen dynamiikan säilyttämiseksi.", + "LabelAlbumGain": "Albumikohtainen vahvistus", + "LabelSelectAudioNormalization": "Äänenvoimakkuuden normalisointi", + "LabelTrackGain": "Kappelkohtainen vahvistus" } diff --git a/src/strings/fr.json b/src/strings/fr.json index 242cdd9d7..7bdae6ff6 100644 --- a/src/strings/fr.json +++ b/src/strings/fr.json @@ -27,7 +27,7 @@ "AllowedRemoteAddressesHelp": "Liste séparée par des virgules des adresses IP autorisées à se connecter à distance. Une liste laissée vide signifie que toutes les adresses sont autorisées.", "AlwaysPlaySubtitles": "Toujours afficher", "AlwaysPlaySubtitlesHelp": "Les sous-titres correspondant à la langue préférée seront chargés indépendamment de la langue de l'audio.", - "AnyLanguage": "N'importe quel langage", + "AnyLanguage": "N'importe quelle langue", "Anytime": "N'importe quand", "AroundTime": "Aux environs de {0}", "Artists": "Artistes", diff --git a/src/strings/lv.json b/src/strings/lv.json index a23cb8adc..715de7fd0 100644 --- a/src/strings/lv.json +++ b/src/strings/lv.json @@ -13,14 +13,14 @@ "Metadata": "Metadati", "MessageYouHaveVersionInstalled": "Jums pašlaik ir uzstādīta versija {0}.", "MessageUnableToConnectToServer": "Mēs pašlaik nevaram sazināties ar izvēlēto serveri. Pārliecinies ka tas strādā, un mēģini vēlreiz.", - "MessageTheFollowingLocationWillBeRemovedFromLibrary": "Sekojošie multvides ceļi tiks noņemti no tavas bibliotēkas", + "MessageTheFollowingLocationWillBeRemovedFromLibrary": "Sekojošie multivides ceļi tiks noņemti no tavas bibliotēkas", "MessagePleaseWait": "Lūdzu uzgaidi. Tas var aizņemt pāris minūtes.", "MessageNothingHere": "Šeit nekā nav.", - "MessageNoPluginsInstalled": "Tev nav uzstādīti paplašinājumi.", + "MessageNoPluginsInstalled": "Jums nav uzstādīti paplašinājumi.", "MessageNoAvailablePlugins": "Nav pieejamu paplašinājumu.", - "MessageItemsAdded": "Vienums pievienots.", + "MessageItemsAdded": "Vienumi pievienoti.", "MessageItemSaved": "Vienums saglabāts.", - "MessageInvalidUser": "Nepareizs lietotājvārds vai parole. Lūdzu mēģini vēlreiz.", + "MessageInvalidUser": "Nepareizs lietotājvārds vai parole. Lūdzu mēģiniet vēlreiz.", "MessageImageFileTypeAllowed": "Tikai JPEG un PNG datnes tiek atbalstītas.", "MessageFileReadError": "Lasot datni notika kļūda. Lūdzu mēģini vēlreiz.", "MessageDownloadQueued": "Lejupielāde ierindota.", @@ -59,7 +59,7 @@ "LabelTunerIpAddress": "Tūnera IP Addrese", "LabelTunerType": "Tūnera tips", "LabelType": "Tips", - "LabelTranscodePath": "Trans-kodēšanas ceļš", + "LabelTranscodePath": "Transkodēšanas ceļš", "LabelTrackNumber": "Celiņa numurs", "LabelTimeLimitHours": "Laika limits (stundas)", "LabelTime": "Laiks", @@ -67,16 +67,16 @@ "LabelTextSize": "Teksta lielums", "LabelTextColor": "Teksta krāsa", "LabelTextBackgroundColor": "Teksta fona krāsa", - "LabelTag": "Tags", - "LabelTVHomeScreen": "TV režīma mājas ekrāns", + "LabelTag": "Birka", + "LabelTVHomeScreen": "TV režīma sākumekrāns", "LabelSupportedMediaTypes": "Atbalstītie Multivides Veidi", "LabelSubtitlePlaybackMode": "Subtitru veids", "LabelSubtitleFormatHelp": "Piemērs: srt", "LabelSubtitleDownloaders": "Subtitru lejupielādētāji", "LabelStreamType": "Straumes veids", - "LabelStopping": "Aptur", + "LabelStopping": "Tiek apturēts", "LabelStopWhenPossible": "Apturēt kad iespējams", - "LabelStatus": "Status", + "LabelStatus": "Statuss", "LabelStartWhenPossible": "Sākt kad iespējams", "LabelSportsCategories": "Sporta kategorijas", "LabelSpecialSeasonsDisplayName": "Speciālās sezonas displeja nosaukums", @@ -86,7 +86,7 @@ "LabelSortBy": "Kārtot pēc", "LabelSize": "Ilgums", "LabelServerName": "Servera nosaukums", - "LabelSeriesRecordingPath": "Sērijas ieraksta ceļā", + "LabelSeriesRecordingPath": "Seriāla ieraksta ceļš", "LabelSerialNumber": "Sērijas numurs", "LabelSendNotificationToUsers": "Sūtīt paziņojumu uz", "LabelSelectVersionToInstall": "Izvēlies versiju, ko uzstādīt", @@ -98,17 +98,17 @@ "LabelRefreshMode": "Atjaunināšanās režīms", "LabelRecordingPath": "Noklusējuma ierakstīšanas ceļš", "LabelRecord": "Ierakstīt", - "LabelReasonForTranscoding": "Trans-kodēšanas iemesls", + "LabelReasonForTranscoding": "Transkodēšanas iemesls", "LabelPublicHttpsPort": "Publiskā HTTPS porta numurs", "LabelPublicHttpPort": "Publiskā HTTP porta numurs", "LabelProtocolInfo": "Protokola info", "LabelProtocol": "Protokols", - "LabelProfileVideoCodecs": "Video kodeksi", + "LabelProfileVideoCodecs": "Video kodeki", "LabelProfileContainersHelp": "Atdalīti ar komatu. Var atstāt tukšu, lai pielietotu visiem konteineriem.", "LabelProfileContainer": "Konteineriem", - "LabelProfileCodecsHelp": "Atdalīti ar komatu. Var atstāt tukšu, lai pielietotu visiem kodeksiem.", - "LabelProfileCodecs": "Kodeksi", - "LabelProfileAudioCodecs": "Audio kodeksi", + "LabelProfileCodecsHelp": "Atdalīti ar komatu. Var atstāt tukšu, lai pielietotu visiem kodekiem.", + "LabelProfileCodecs": "Kodeki", + "LabelProfileAudioCodecs": "Audio kodeki", "LabelPreferredDisplayLanguage": "Ieteicamā displeja valoda", "LabelPostProcessorArgumentsHelp": "Izmantot {path} kā ceļu ieraksta datnei.", "LabelPostProcessor": "Pēcapstrādes lietotne", @@ -119,8 +119,8 @@ "LabelPlaceOfBirth": "Dzimšanas vieta", "LabelPersonRoleHelp": "Piemēram: saldējuma furgona šoferis", "LabelPath": "Ceļš", - "LabelPasswordRecoveryPinCode": "Pin kods", - "LabelPasswordResetProvider": "Paroles maiņas Nodrošinātājs", + "LabelPasswordRecoveryPinCode": "PIN kods", + "LabelPasswordResetProvider": "Paroles maiņas nodrošinātājs", "LabelPasswordConfirm": "Parole (apstiprinājums)", "LabelPassword": "Parole", "LabelParentNumber": "Vecāku numurs", @@ -154,7 +154,7 @@ "LabelImageType": "Attēla veids", "LabelIconMaxWidth": "Ikonas maksimālais platums", "LabelHttpsPort": "Vietējā HTTPS porta numurs", - "LabelHomeScreenSectionValue": "Mājas ekrāna sekcija {0}", + "LabelHomeScreenSectionValue": "Sākumekrāna sadaļa {0}", "LabelHomeNetworkQuality": "Mājas tīkla kvalitāte", "LabelHardwareAccelerationType": "Aparatūras paātrināšana", "LabelFriendlyName": "Draudzīgs nosaukums", @@ -171,13 +171,13 @@ "LabelEndDate": "Beigu datums", "LabelEnableHardwareDecodingFor": "Iespējot aparatūras atkodēšanu priekš", "LabelEnableDlnaServer": "Iespējot DLNA serveri", - "LabelEnableDlnaPlayTo": "Iespējot DLNA atskaņošanu uz", - "LabelEnableDlnaDebugLogging": "Iespējot DLNA atkļūdošanas logošanu", - "LabelEnableDlnaClientDiscoveryInterval": "Klientu meklēšanas intervāls", + "LabelEnableDlnaPlayTo": "Iespējot ‘Atskaņot uz’ DLNA funkcionalitāti", + "LabelEnableDlnaDebugLogging": "Iespējot DLNA atkļūdošanas žurnālu", + "LabelEnableDlnaClientDiscoveryInterval": "Klientu atklāšanas intervāls", "LabelEasyPinCode": "Vieglais PIN kods", "LabelDownloadLanguages": "Lejupielādēt valodas", "LabelDisplayOrder": "Displeja kārtojums", - "LabelDisplayName": "Displeja nosaukums", + "LabelDisplayName": "Parādāmais nosaukums", "LabelDisplayMode": "Displeja režīms", "LabelDisplayLanguageHelp": "Jellyfin tulkošana ir notiekošs projekts.", "LabelDisplayLanguage": "Displeja valoda", @@ -191,7 +191,7 @@ "LabelCriticRating": "Kritiķu reitings", "LabelCountry": "Valsts", "LabelContentType": "Satura veids", - "LabelCommunityRating": "Kopienas vēŗtējums", + "LabelCommunityRating": "Kopienas vērtējums", "LabelCollection": "Kolekcija", "LabelChannels": "Kanāli", "LabelCertificatePassword": "Sertifikāta parole", @@ -222,7 +222,7 @@ "Identify": "Identificēt", "Horizontal": "Horizontāls", "Home": "Mājas", - "HideWatchedContentFromLatestMedia": "Paslēpt skatītos vienumus no 'Jaunākās Multivides'", + "HideWatchedContentFromLatestMedia": "Noslēpt skatīto saturu no “Nesen pievienotie multivides līdzekļi”", "Hide": "Paslēpt", "HeaderStopRecording": "Apturēt ierakstu", "HeaderStatus": "Statuss", @@ -230,64 +230,64 @@ "HeaderSpecialEpisodeInfo": "Speciālās sērijas info", "HeaderSortOrder": "Kārtošanas secība", "HeaderSortBy": "Kārtot pēc", - "HeaderSetupLibrary": "Uzstādīt multvides bibliotēkas", - "HeaderServerSettings": "Servera Iestatījumi", - "HeaderSeriesStatus": "Sēriju Status", - "HeaderSeriesOptions": "Sēriju Opcijas", - "HeaderSendMessage": "Sūtīt Ziņojumu", - "HeaderSelectServerCachePath": "Izvēlies Servera Keša Ceļu", - "HeaderSecondsValue": "{0} Sekundes", + "HeaderSetupLibrary": "Uzstādīt multivides bibliotēkas", + "HeaderServerSettings": "Servera iestatījumi", + "HeaderSeriesStatus": "Seriāla statuss", + "HeaderSeriesOptions": "Seriāla opcijas", + "HeaderSendMessage": "Sūtīt ziņu", + "HeaderSelectServerCachePath": "Izvēlēties servera kešatmiņas ceļu", + "HeaderSecondsValue": "{0} sekundes", "HeaderSeasons": "Sezonas", - "HeaderRevisionHistory": "Revīziju Vēsture", - "HeaderRemoveMediaLocation": "Noņemt Multvides Atrašanās Vietu", - "HeaderRemoveMediaFolder": "Noņemt Multvides Mapi", - "HeaderRecordingOptions": "Ierakstu Opcijas", - "HeaderRecentlyPlayed": "Nesen Atskaņots", - "HeaderProfileInformation": "Profila Informācija", + "HeaderRevisionHistory": "Revīziju vēsture", + "HeaderRemoveMediaLocation": "Noņemt multivides atrašanās vietu", + "HeaderRemoveMediaFolder": "Noņemt multivides mapi", + "HeaderRecordingOptions": "Ierakstu opcijas", + "HeaderRecentlyPlayed": "Nesen atskaņots", + "HeaderProfileInformation": "Profila informācija", "HeaderPleaseSignIn": "Lūdzu ieej", "HeaderPlaybackError": "Atskaņošanas kļūda", - "HeaderPlayback": "Multvides atskaņošana", + "HeaderPlayback": "Multivides atskaņošana", "HeaderPlayAll": "Atskaņot visu", "HeaderPinCodeReset": "Atiestatīt vieglo PIN Kodu", "HeaderPhotoAlbums": "Fotoalbumi", "HeaderPaths": "Ceļi", "HeaderPasswordReset": "Paroles atiestatīšana", "HeaderPassword": "Parole", - "HeaderNextVideoPlayingInValue": "Nākošais video sāksies pēc {0}", - "HeaderNextEpisodePlayingInValue": "Nākošā sērija sāksies pēc: {0}", - "HeaderNewDevices": "Jaunas Ierīces", - "HeaderNewApiKey": "Jauna API Atslēga", + "HeaderNextVideoPlayingInValue": "Nākamais video sāksies pēc {0}", + "HeaderNextEpisodePlayingInValue": "Nākamā sērija sāksies pēc: {0}", + "HeaderNewDevices": "Jaunas ierīces", + "HeaderNewApiKey": "Jauna API atslēga", "HeaderNavigation": "Navigācija", - "HeaderMyMediaSmall": "Mana Multvide (mazs)", - "HeaderMyMedia": "Mana Multvide", - "HeaderMyDevice": "Mana Ierīce", - "HeaderMusicQuality": "Audio Kvalitāte", + "HeaderMyMediaSmall": "Mana multivide (mazs)", + "HeaderMyMedia": "Mana multivide", + "HeaderMyDevice": "Mana ierīce", + "HeaderMusicQuality": "Audio kvalitāte", "HeaderMoreLikeThis": "Līdzīgs saturs", - "HeaderMetadataSettings": "Metadatu Iestatījumi", - "HeaderMediaFolders": "Multvides Mapes", - "HeaderMedia": "Multvide", - "HeaderLiveTvTunerSetup": "Tiešraides TV Tūnera Uzstādīšana", - "HeaderLibrarySettings": "Bibliotēku Iestatījumi", - "HeaderLibraryOrder": "Bibliotēku Kārtojums", - "HeaderLibraryFolders": "Bibliotēku Mapes", - "HeaderLibraryAccess": "Bibliotēku Piekļuves", + "HeaderMetadataSettings": "Metadatu iestatījumi", + "HeaderMediaFolders": "Multivides mapes", + "HeaderMedia": "Multivide", + "HeaderLiveTvTunerSetup": "Tiešraides TV uztvērēja iestatīšana", + "HeaderLibrarySettings": "Bibliotēku iestatījumi", + "HeaderLibraryOrder": "Bibliotēku kārtojums", + "HeaderLibraryFolders": "Bibliotēku mapes", + "HeaderLibraryAccess": "Piekļuve bibliotēkām", "HeaderLibraries": "Bibliotēkas", - "HeaderLatestRecordings": "Jaunākie Ieraksti", - "HeaderLatestMusic": "Jaunākā Mūzika", - "HeaderLatestMovies": "Jaunākās Filmas", - "HeaderLatestMedia": "Jaunākā Multvide", - "HeaderLatestEpisodes": "Jaunākās sērijas", - "HeaderKeepRecording": "Turpināt Ierakstu", + "HeaderLatestRecordings": "Nesen pievienotie ieraksti", + "HeaderLatestMusic": "Jaunākā mūzika", + "HeaderLatestMovies": "Jaunākās filmas", + "HeaderLatestMedia": "Nesen pievienotie multivides līdzekļi", + "HeaderLatestEpisodes": "Nesen pievienotās sērijas", + "HeaderKeepRecording": "Turpināt ierakstu", "HeaderInstall": "Uzstādīt", - "HeaderImageSettings": "Attēlu Iestatījumi", - "HeaderImageOptions": "Attēlu Opcijas", - "HeaderIdentificationHeader": "Identifikācijas Headers", - "HeaderIdentificationCriteriaHelp": "Ievadi vismaz vienu identifikācijas kritēriju.", + "HeaderImageSettings": "Attēlu iestatījumi", + "HeaderImageOptions": "Attēlu opcijas", + "HeaderIdentificationHeader": "Identifikācijas galvene", + "HeaderIdentificationCriteriaHelp": "Ievadiet vismaz vienu identifikācijas kritēriju.", "HeaderIdentification": "Identifikācija", - "HeaderHttpHeaders": "HTTP Headeri", - "HeaderGuideProviders": "TV Gida Datu Nodrošinātāji", - "HeaderFrequentlyPlayed": "Bieži Atskaņots", - "HeaderForKids": "Priekš Bērniem", + "HeaderHttpHeaders": "HTTP galvenes", + "HeaderGuideProviders": "TV gida datu nodrošinātāji", + "HeaderFrequentlyPlayed": "Bieži atskaņots", + "HeaderForKids": "Bērniem", "MediaInfoPath": "Ceļš", "MediaInfoLevel": "Līmenis", "MediaInfoLayout": "Izkārtojums", @@ -295,7 +295,7 @@ "MediaInfoExternal": "Ārējs", "MediaInfoDefault": "Noklusējums", "MediaInfoContainer": "Konteiners", - "MediaInfoCodecTag": "Kodeksa tags", + "MediaInfoCodecTag": "Kodeka birka", "MediaInfoCodec": "Kodeks", "MediaInfoChannels": "Kanāli", "MediaInfoAnamorphic": "Anamorfisks", @@ -309,21 +309,21 @@ "Live": "Tiešraide", "List": "Saraksts", "LeaveBlankToNotSetAPassword": "Tu vari atstāt šo lauku tukšu, lai neiestatītu paroli.", - "LatestFromLibrary": "Jaunākais {0}", + "LatestFromLibrary": "Nesen pievienotais {0}", "Large": "Liels", "LabelffmpegPath": "FFmped ceļš", - "LabelZipCode": "Zip Kods", - "LabelYoureDone": "Esi pabeidzis!", + "LabelZipCode": "Pasta indekss", + "LabelYoureDone": "Darīts!", "HeaderExternalIds": "Ārējie ID", "HeaderError": "Kļūda", - "HeaderEditImages": "Rediģēt Attēlus", - "HeaderDownloadSync": "Lejupielādēt & Sinhronizēt", + "HeaderEditImages": "Rediģēt attēlus", + "HeaderDownloadSync": "Lejupielādēt & sinhronizēt", "HeaderDevices": "Ierīces", - "HeaderDeviceAccess": "Ierīču Piekļuve", - "HeaderDeveloperInfo": "Izstrādātāju Info", - "HeaderDeleteItems": "Noņemt Vienumus", - "HeaderDeleteItem": "Noņemt Vienumu", - "HeaderDeleteDevice": "Noņemt ierīci", + "HeaderDeviceAccess": "Ierīču piekļuve", + "HeaderDeveloperInfo": "Izstrādātāju info", + "HeaderDeleteItems": "Dzēst vienumus", + "HeaderDeleteItem": "Dzēst vienumu", + "HeaderDeleteDevice": "Dzēst ierīci", "HeaderContinueWatching": "Turpināt skatīšanos", "HeaderContinueListening": "Turpināt klausīšanos", "HeaderContainerProfile": "Konteinera profils", @@ -334,14 +334,14 @@ "HeaderConfigureRemoteAccess": "Uzstādīt attālināto piekļuvi", "HeaderCodecProfile": "Kodeku profils", "HeaderChannelAccess": "Piekļuve kanāliem", - "HeaderCancelSeries": "Atcelt sēriju", + "HeaderCancelSeries": "Atcelt seriālu", "HeaderCancelRecording": "Atcelt ierakstus", "HeaderAudioSettings": "Audio iestatījumi", "HeaderAudioBooks": "Audio grāmatas", "HeaderApp": "Lietotne", "HeaderApiKeys": "API atslēgas", "HeaderApiKey": "API atslēga", - "HeaderAllowMediaDeletionFrom": "Atļaut multvides dzēšanu no", + "HeaderAllowMediaDeletionFrom": "Atļaut multivides dzēšanu no", "HeaderAlert": "Paziņojums", "HeaderAlbumArtists": "Albumu izpildītāji", "HeaderAdmin": "Administrācija", @@ -372,7 +372,7 @@ "ExitFullscreen": "Iziet no pilnekrāna", "EveryNDays": "Ik pa {0} dienām", "Episodes": "Sērijas", - "EndsAtValue": "Beigsies {0}", + "EndsAtValue": "Beigsies pulksten {0}", "EnableThemeVideosHelp": "Atskaņot tēmas video fonā bibliotēkas pārlūkošanas laikā.", "EnableThemeSongsHelp": "Atskaņot tēmas mūziku fonā bibliotēkas pārlūkošanas laikā.", "EnablePhotos": "Rādīt attēlus", @@ -392,8 +392,8 @@ "Download": "Lejupielādēt", "DisplayModeHelp": "Izvēlies izkārtojuma veidu, kuru tu gribi priekš šī interfeisa.", "DoNotRecord": "Neierakstīt", - "DisplayInOtherHomeScreenSections": "Rādīt mājas ekrāna sadaļās kā 'Jaunākā Multivide' un 'Turpini Skatīties'", - "DisplayInMyMedia": "Rādīt mājas ekrānā", + "DisplayInOtherHomeScreenSections": "Rādīt tādās sākumekrāna sadaļās kā “Nesen pievienotie multivides līdzekļi” un “Turpini skatīties”", + "DisplayInMyMedia": "Rādīt sākumekrānā", "Display": "Displejs", "Disc": "Disks", "Directors": "Režisori", @@ -413,7 +413,7 @@ "Continuing": "Turpina", "ContinueWatching": "Turpināt skatīties", "Connect": "Savienot", - "ConfirmDeletion": "Apstiprināt Dzēšanu", + "ConfirmDeletion": "Apstiprināt dzēšanu", "ConfirmDeleteImage": "Dzēst attēlu?", "CommunityRating": "Kopienas reitings", "Collections": "Kolekcijas", @@ -421,7 +421,7 @@ "Channels": "Kanāli", "ChannelNumber": "Kanāla numurs", "Categories": "Kategorijas", - "CancelSeries": "Atcelt sēriju", + "CancelSeries": "Atcelt seriālu", "CancelRecording": "Atcelt ierakstu", "ButtonWebsite": "Tīmekļa vietne", "ButtonUninstall": "Atinstalēt", @@ -461,7 +461,7 @@ "ButtonAudioTracks": "Audio celiņi", "ButtonAddUser": "Pievienot lietotāju", "ButtonAddServer": "Pievienot serveri", - "ButtonAddMediaLibrary": "Pievienot multimēdiju bibliotēku", + "ButtonAddMediaLibrary": "Pievienot multivides bibliotēku", "ButtonAddImage": "Pievienot attēlu", "MessageBrowsePluginCatalog": "Pārlūko mūsu paplašinājumu katalogu, lai redzētu pieejamos paplašinājumus.", "Browse": "Pārlūkot", @@ -481,14 +481,14 @@ "HeaderUser": "Lietotājs", "HeaderUploadImage": "Augšupielādēt attēlu", "HeaderUpcomingOnTV": "Nākamais televīzijā", - "HeaderTypeText": "Ievadīt Tekstu", - "HeaderTypeImageFetchers": "Attēlu Sagādnieki ({0})", - "HeaderTuners": "Tūneri", - "HeaderTunerDevices": "Tūnera Ierīces", - "HeaderTranscodingProfile": "Transkodēšanas Profils", + "HeaderTypeText": "Ievadīt tekstu", + "HeaderTypeImageFetchers": "Attēlu sagādnieki ({0})", + "HeaderTuners": "Uztvērēji", + "HeaderTunerDevices": "Uztvērēja Ierīces", + "HeaderTranscodingProfile": "Transkodēšanas profils", "HeaderTracks": "Celiņi", "HeaderThisUserIsCurrentlyDisabled": "Šis lietotājs pašlaik ir atspējots", - "HeaderSystemDlnaProfiles": "Sistēmas Profili", + "HeaderSystemDlnaProfiles": "Sistēmas profili", "HeaderSubtitleProfiles": "Subtitru profili", "HeaderSubtitleProfile": "Subtitru profils", "HeaderSubtitleDownloads": "Subtitru lejupielāde", @@ -569,10 +569,10 @@ "ValueTimeLimitSingleHour": "Laika limits: 1 stunda", "ValueTimeLimitMultiHour": "Laika limits: {0} stundas", "ValueSongCount": "{0} dziesmas", - "ValueSeriesCount": "{0} sērijas", + "ValueSeriesCount": "{0} seriāli", "ValueSeconds": "{0} sekundes", "ValueOneSong": "1 dziesma", - "ValueOneSeries": "1 sērija", + "ValueOneSeries": "1 seriāls", "ValueOneMusicVideo": "1 mūzikas video", "ValueOneMovie": "1 filma", "ValueOneEpisode": "1 sērija", @@ -586,15 +586,15 @@ "ValueCodec": "Kodeks: {0}", "ValueAudioCodec": "Audio kodeks: {0}", "ValueAlbumCount": "{0} albumi", - "UserProfilesIntro": "Jellyfin satur atbalstu lietotāju profiliem ar granulāru kontroli pār displeja iestatījumiem, atskaņošanas statusu un vecāku pārvaldi.", + "UserProfilesIntro": "Jellyfin atbalsta lietotāja profilus ar detalizētiem attēlošanas iestatījumiem, atskaņošanas stāvokli un vecāku kontroli.", "Upload": "Augšupielādēt", "Unrated": "Nevērtēts", "Unplayed": "Neatskaņots", "Unmute": "Ieslēgt skaņu", - "HeaderUninstallPlugin": "Noņemt Paplašinājumu", + "HeaderUninstallPlugin": "Noņemt paplašinājumu", "UninstallPluginConfirmation": "Vai tu tiešām vēlies noņemt {0}?", "Tuesday": "Otrdiena", - "Transcoding": "Trans-kodēšana", + "Transcoding": "Transkodēšana", "Trailers": "Treileri", "TrackCount": "{0} celiņi", "TitlePlayback": "Atskaņošana", @@ -604,7 +604,7 @@ "ThemeVideos": "Tēmas video", "ThemeSongs": "Tēmas mūzika", "TellUsAboutYourself": "Pastāsti mums par sevi", - "TagsValue": "Tagi: {0}", + "TagsValue": "Birkas: {0}", "Tags": "Birkas", "TabStreaming": "Straumēšana", "TabServer": "Serveris", @@ -620,7 +620,7 @@ "TabMyPlugins": "Mani paplašinājumi", "TabMusic": "Mūzika", "TabLogs": "Žurnāli", - "TabLatest": "Jaunākais", + "TabLatest": "Nesen pievienots", "TabDirectPlay": "Tiešā atskaņošana", "TabContainers": "Konteineri", "TabCodecs": "Kodeki", @@ -642,10 +642,10 @@ "Refresh": "Atjaunot", "Recordings": "Ieraksti", "RecordingCancelled": "Ieraksts atcelts.", - "RecordSeries": "Ierakstīt sēriju", + "RecordSeries": "Ierakstīt seriālu", "Record": "Ieraksts", "RecommendationBecauseYouWatched": "Tāpēc ka tu skatījies {0}", - "RecommendationBecauseYouLike": "Tāpēc ka tev patīk {0}", + "RecommendationBecauseYouLike": "Tāpēc, ka jums patīk {0}", "RecentlyWatched": "Nesen skatīts", "Quality": "Kvalitāte", "Programs": "Programmas", @@ -653,7 +653,7 @@ "Previous": "Iepriekšējais", "PleaseSelectTwoItems": "Izvēlies vismaz divus vienumus.", "Played": "Atskaņots", - "PlayNext": "Atskaņot nākamp", + "PlayNext": "Atskaņot nākamo", "PlayAllFromHere": "Atskaņot visus no šejienes", "Play": "Atskaņot", "PinCodeResetComplete": "Pin kods atiestatīts.", @@ -679,7 +679,7 @@ "NextUp": "Nākamais", "Mute": "Apklusināt", "MessageNoServersAvailable": "Automātiskā serveru meklēšana neatrada nevienu serveri.", - "MessageInvalidForgotPasswordPin": "Tika ievadīts nepareizs vai nevecojis PIN kods. Lūdzu mēģini vēlreiz.", + "MessageInvalidForgotPasswordPin": "Tika ievadīts nepareizs vai nevecojis PIN kods. Lūdzu mēģiniet vēlreiz.", "Menu": "Izvēlne", "LabelTriggerType": "Trigera veids", "LabelSkipIfGraphicalSubsPresent": "Izlaist ja video jau satur iegultus subtitrus", @@ -708,10 +708,10 @@ "LabelH264Crf": "H.264 kodēšanas CRF", "LabelGroupMoviesIntoCollections": "Grupēt filmas kolekcijās", "LabelEnableRealtimeMonitor": "Iespējot reāllaika uzraudzību", - "LabelEnableDlnaServerHelp": "Ļauj UPnP ierīcēm tavā tīklā pārlūkot un atskaņot vienumus.", - "LabelEnableDlnaPlayToHelp": "Atrast ierīces lokālajā tīklā, un dot iespēju tās kontrolēt attālināti.", - "LabelEnableDlnaDebugLoggingHelp": "Izveido lielas log datnes, un paredzēts tikai atkļūdošanas lietošanai.", - "LabelEnableBlastAliveMessagesHelp": "Iespējo šo ja serveri uzticami neatrod citas tīklā esošas UPnP ierīces.", + "LabelEnableDlnaServerHelp": "Ļaujiet UPnP ierīcēm jūsu tīklā pārlūkot un atskaņot saturu.", + "LabelEnableDlnaPlayToHelp": "Atrodiet ierīces jūsu lokālajā tīklā un dodiet iespēju kontrolēt tās attālināti.", + "LabelEnableDlnaDebugLoggingHelp": "Veido lielus žurnāla failus un tos vajadzētu izmantot tikai īslaicīgi problēmu novēršanas nolūkos.", + "LabelEnableBlastAliveMessagesHelp": "Iespējojiet šo, ja citas jūsu tīklā esošas UPnP ierīces nespēj uzticami atklāt šo serveri.", "LabelEnableAutomaticPortMapHelp": "Automātiski kartēt publiskos portus uz jūsu rūtera lokālajiem portiem caur UPnP. Tas var nefunkcionēt uz dažiem rūteru modeļiem vai tīkla konfigurācijām. Izmaiņas netiks pielietotas līdz servera restartam.", "LabelEnableAutomaticPortMap": "Iespējot automātisko portu kartēšanu", "LabelDynamicExternalId": "{0} Id", @@ -728,56 +728,56 @@ "LabelCustomCertificatePath": "Pielāgotā SSL sertifikāta ceļš", "LabelCorruptedFrames": "Bojātie kadri", "LabelCertificatePasswordHelp": "Ja tavam sertifikātam ir vajadzīga parole, lūdzu ievadi to šeit.", - "LabelBlockContentWithTags": "Aizliegt vienumus ar tagiem", + "LabelBlockContentWithTags": "Bloķēt vienumus ar birkām", "LabelBitrate": "Bitu ātrums", - "LabelBindToLocalNetworkAddress": "Uzstādīt uz lokālās tīkla adreses", + "LabelBindToLocalNetworkAddress": "Saistīt ar vietējā tīkla adresi", "LabelAutomaticallyRefreshInternetMetadataEvery": "Automātiski atjaunot metadatus no interneta", "LabelAuthProvider": "Autentifikācijas Nodrošinātājs", "LabelAudioSampleRate": "Audio izlases ātrums", "LabelAudioCodec": "Audio kodeks", "LabelAudioChannels": "Audio kanāli", "LabelAudioBitrate": "Audio bitu-ātrums", - "LabelAllowHWTranscoding": "Atļaut aparatūras trans-kodēšanu", + "LabelAllowHWTranscoding": "Atļaut aparatūras transkodēšanu", "LabelAlbumArtMaxWidth": "Albumu vāku maksimālais platums", "LabelAlbumArtMaxHeight": "Albumu vāku maksimālais augstums", "LabelAbortedByServerShutdown": "(Atcelts dēļ servera izslēgšanas)", "ImportFavoriteChannelsHelp": "Tikai kanāli, kas atzīmēti kā favorīti uztvērēja ierīcē tiks importēti.", - "HttpsRequiresCert": "Lai iespējotu drošos savienojumus, tev ir jānodrošina uzticams SSL sertifikāts, kā Let's Encrypt. Lūdzu nodrošini sertifikātu, vai atspējo drošos savienojumus.", - "HeaderTranscodingProfileHelp": "Pievieno tiešās atskaņošanas profilus, lai norādītu kurus formātus izmantot kad ir vajadzīga trans-kodēšana.", - "HeaderTaskTriggers": "Uzdevumu Trigeri", - "HeaderSelectTranscodingPathHelp": "Pārlūko vai ievadi ceļu, kurā tiks glabātas trans-kodēšanas datnes. Šai mapei jābūt rakstāmai.", - "HeaderSelectTranscodingPath": "Izvēlies Trans-kodēšanas Īslaicīgo Ceļu", - "HeaderSelectServerCachePathHelp": "Pārlūko vai ievadi ceļu, kurā vēlies saglabāt servera keša datnes. Šai mapei jābūt rakstāmai.", - "HeaderSelectPath": "Izvēlies Ceļu", - "HeaderSelectMetadataPathHelp": "Pārlūko vai ievadi ceļu, kurā vēlies saglabāt metadatus. Šai mapei jābūt rakstāmai.", - "HeaderSelectMetadataPath": "Izvēlies Metadatu Ceļu", - "HeaderSelectCertificatePath": "Izvēlies Sertifikāta Ceļu", + "HttpsRequiresCert": "Lai iespējotu drošos savienojumus, jums ir jānodrošina uzticams SSL sertifikāts, piemēram, Let's Encrypt. Lūdzu, nodrošiniet sertifikātu vai atspējojiet drošos savienojumus.", + "HeaderTranscodingProfileHelp": "Pievienojiet transkodēšanas profilus, lai norādītu, kuri formāti jāizmanto, kad nepieciešama transkodēšana.", + "HeaderTaskTriggers": "Uzdevumu trigeri", + "HeaderSelectTranscodingPathHelp": "Pārlūkojiet vai ievadiet ceļu, kas tiks izmantots transkodētajiem failiem. Mapē jābūt iespējai rakstīt.", + "HeaderSelectTranscodingPath": "Izvēlēties transkodēšanas pagaidu ceļu", + "HeaderSelectServerCachePathHelp": "Pārlūkojiet vai ievadiet ceļu, kas jāizmanto servera kešatmiņas failiem. Mapē jābūt iespējai rakstīt.", + "HeaderSelectPath": "Izvēlēties ceļu", + "HeaderSelectMetadataPathHelp": "Pārlūkojiet vai ievadiet ceļu, ko vēlaties izmantot metadatiem. Mapē jābūt iespējai rakstīt.", + "HeaderSelectMetadataPath": "Izvēlēties metadatu ceļu", + "HeaderSelectCertificatePath": "Izvēlēties sertifikāta ceļu", "HeaderScenes": "Ainas", - "HeaderRunningTasks": "Ejošie Uzdevumi", + "HeaderRunningTasks": "Aktīvie uzdevumi", "HeaderResponseProfileHelp": "Atbilžu profili nodrošina iespējas rediģēt informāciju, kas tiek nosūtīta uz ierīci atskaņojot noteiktus medijus.", - "HeaderResponseProfile": "Atbilžu Profils", + "HeaderResponseProfile": "Atbilžu profils", "HeaderRemoteControl": "Tālvadība", - "HeaderRecordingPostProcessing": "Ierakstu Pēcapstrāde", + "HeaderRecordingPostProcessing": "Ierakstu pēcapstrāde", "HeaderProfileServerSettingsHelp": "Šīs vērtības kontrolē, kā serveris sevi rādīs klientiem.", - "HeaderPreferredMetadataLanguage": "Ieteicamā Metadatu Valoda", + "HeaderPreferredMetadataLanguage": "Ieteicamā metadatu valoda", "HeaderPluginInstallation": "Paplašinājuma instalācija", "HeaderPlayOn": "Atskaņot uz", "HeaderParentalRatings": "Vecāku vērtējumi", "HeaderOtherItems": "Citi vienumi", - "HeaderOnNow": "Tagad", - "HeaderLoginFailure": "Ieiešanas Kļūda", + "HeaderOnNow": "Pašlaik", + "HeaderLoginFailure": "Ieiešanas kļūda", "HeaderKodiMetadataHelp": "Lai iespējotu vai atspējotu NFO metadatus, rediģē bibliotēku un atrodi sadaļu 'Metadatu glabātājs'.", - "HeaderIdentifyItemHelp": "Ievadi vienu vai vairākus meklēšanas kritērijus. Noņem kritērijus lai palielinātu meklēšanas rezultātus.", - "HeaderFetchImages": "Ielādēt Attēlus", - "HeaderFeatureAccess": "Funkciju Piekļuve", - "HeaderEnabledFieldsHelp": "Atķeksē lauku lai to slēgtu un aizliegt tā satura mainīšanu.", - "HeaderEnabledFields": "Iespējotie Lauki", + "HeaderIdentifyItemHelp": "Ievadiet vienu vai vairākus meklēšanas kritērijus. Noņemiet kritērijus, lai paplašinātu meklēšanas rezultātus.", + "HeaderFetchImages": "Ielādēt attēlus", + "HeaderFeatureAccess": "Funkciju piekļuve", + "HeaderEnabledFieldsHelp": "Noņemiet atzīmi no lauka, lai to bloķētu un novērstu tā datu maiņu.", + "HeaderEnabledFields": "Iespējotie lauki", "HeaderEasyPinCode": "Vieglais PIN Kods", "HeaderDirectPlayProfileHelp": "Pievieno tiešās atskaņošanas profilus, lai norādītu kurus formātus ierīce spēj atskaņot natīvi.", - "HeaderDirectPlayProfile": "Tiešās Atskaņošanas Profils", - "HeaderDetectMyDevices": "Noteikt Manas Ierīces", - "HeaderDeleteTaskTrigger": "Dzēst Uzdevuma Trigeri", - "HeaderDeleteProvider": "Dzēst Sniedzēju", + "HeaderDirectPlayProfile": "Tiešās atskaņošanas profils", + "HeaderDetectMyDevices": "Noteikt manas ierīces", + "HeaderDeleteTaskTrigger": "Dzēst uzdevuma trigeri", + "HeaderDeleteProvider": "Dzēst pakalpojumu sniedzēju", "HeaderDefaultRecordingSettings": "Noklusējuma ieraksta iestatījumi", "HeaderDateIssued": "Izdošanas datums", "HeaderCustomDlnaProfiles": "Pielāgoti profili", @@ -800,7 +800,7 @@ "DisplayMissingEpisodesWithinSeasons": "Rādīt trūkstošās sērijas sezonās", "Disconnect": "Atvienot", "DirectStreamHelp2": "Tiešās straumēšanas patērētā jauda ir pārsvarā atkarīga no audio profila. Tikai video straume ir bezzuduma.", - "DirectStreamHelp1": "Video avots ir saderīgs ar šo ierīci, bet tam ir nesaderīgs audio formāts (DTS, Dolby TrueHD utt.) vai audio kanālu skaits. Video tiks pārpakots bez zudumiem pirms tas tiks pārsūtīts uz ierīci. Tikai audio tiks pārkodēts.", + "DirectStreamHelp1": "Video avots ir saderīgs ar šo ierīci, bet tam ir nesaderīgs audio formāts (DTS, Dolby TrueHD utt.) vai audio kanālu skaits. Video tiks pārpakots bez zudumiem pirms tas tiks pārsūtīts uz ierīci. Tikai audio tiks transkodēts.", "Descending": "Dilstošs", "Depressed": "Atspiests", "DeleteUserConfirmation": "Vai tu tiešām vēlies izdzēst šo lietotāju?", @@ -810,23 +810,23 @@ "DeleteDeviceConfirmation": "Vai tu tiešām vēlies noņemt šo ierīci? Tā parādīsies atkārtoti nākamo reizi, kad lietotājs ieiet ar to.", "ErrorDefault": "Apstrādājot pieprasījumu notika kļūda. Pēc brītiņa lūdzu mēģini vēlreiz.", "DeathDateValue": "Miris: {0}", - "ConfirmEndPlayerSession": "Vai jūs gribat izslēgt Jellyfin {0}?", + "ConfirmEndPlayerSession": "Vai vēlaties izslēgt Jelgavniek {0}?", "ConfirmDeleteItems": "Dzēšot šos vienumus, tie tiks izdzēsti gan no jūsu failu sistēmas, gan mediju bibliotēkas. Vai tiešām turpināt?", "ConfirmDeleteItem": "Dzēšot šo vienumu, tas tiks izdzēsts gan no jūsu failu sistēmas, gan mediju bibliotēkas. Vai tiešām turpināt?", "ConfigureDateAdded": "Uzstādīt kā metadati priekš 'Pievienošanas datums' tiek noteikts sadaļā Info panelis > Bibliotēkas > NFO Iestatījumi", "Composer": "Komponists", "ColorSpace": "Krāsu telpa", "ColorPrimaries": "Primārās krāsas", - "CinemaModeConfigurationHelp": "Teātra režīms ienes kinoteātra pieredzi tavā dzīvojamā istabā, ar iespējām atskaņot treilerus un pielāgotus ievadus pirms galvenās filmas.", + "CinemaModeConfigurationHelp": "Kinoteātra režīms ienes kinoteātra pieredzi jūsu dzīvojamā istabā ar iespējām atskaņot treilerus un pielāgotus ievadus pirms galvenās filmas.", "ChannelAccessHelp": "Izvēlies kanālus, ko koplietot ar šo lietotāju. Administratori spēs rediģēt visus kanālus izmantojot metadatu pārvaldnieku.", - "ChangingMetadataImageSettingsNewContent": "Izmaiņas metadatu vai mākslas lejupielādes iestatījumos tiks izmantotas tikai jauniem bibliotēkas vienumiem. Lai pielietotu šīs izmaiņas jau esošiem vienumiem, tev vajadzēs atjaunot šo vienumu metadatus manuāli.", + "ChangingMetadataImageSettingsNewContent": "Izmaiņas metadatu vai mākslas lejupielādes iestatījumos tiks izmantotas tikai vēlāk pievienotajam bibliotēkas saturam. Lai pielietotu šīs izmaiņas jau esošiem vienumiem, jums nepieciešams atjaunināt šo vienumu metadatus manuāli.", "ButtonSubmit": "Iesniegt", "ButtonQuickStartGuide": "Ātrā lietošanas instrukcija", "ButtonManualLogin": "Manuālā pieteikšanās", "ButtonEditOtherUserPreferences": "Rediģē šī lietotāja profilu, attēlu un personas iestatījumus.", "ButtonArrowRight": "Pa labi", "ButtonArrowLeft": "Pa kreisi", - "ButtonAddScheduledTaskTrigger": "Pievienot palaidēju", + "ButtonAddScheduledTaskTrigger": "Pievienot trigeri", "BookLibraryHelp": "Audio un teksta grāmatas tiek atbalstītas. Pārskati {0} grāmatu nosaukšanas instrukciju {1}.", "Blacklist": "Melnais saraksts", "AuthProviderHelp": "Izvēlies autentifikācijas nodrošinājumu, kas tiks izmantots lai autentificētu šī lietotāja paroli.", @@ -839,9 +839,9 @@ "AirDate": "Tiešraides datums", "LabelHardwareAccelerationTypeHelp": "Aparatūras paātrināšanai ir vajadzīga papildus konfigurācija.", "LabelEncoderPreset": "Kodēšanas noklusējumi", - "HardwareAccelerationWarning": "Iespējojot aparatūras paātrināšanu var veidot nestabilitāti dažās vidēs. Pārliecinies ka tava operētājsistēma un video draiveri it pilnībā atjaunināti. Ja tev ir problēmas ar video atskaņošanu pēc šī iestatījuma iespējošanas, tev vajadzēs pārmainīt to atpakaļ uz Neviens.", + "HardwareAccelerationWarning": "Iespējota aparatūras paātrināšana var izraisīt nestabilitāti atsevišķās vidēs. Pārliecinieties, ka operētājsistēma un video draiveri it pilnībā atjaunināti. Ja jums ir problēmas ar video atskaņošanu pēc šī iestatījuma iespējošanas, jums vajadzēs nomainīt to atpakaļ uz Neviens.", "LabelImageFetchersHelp": "Iespējo un sakārto savu attēlu sagādnieku prioritāti.", - "HeaderFetcherSettings": "Sagādnieku Iestatījumi", + "HeaderFetcherSettings": "Sagādnieku iestatījumi", "HeaderBranding": "Zīmols", "HeaderBlockItemsWithNoRating": "Bloķēt vienumus, kam nav vai nav atpazīta reitinga informācija", "HeaderApiKeysHelp": "Ārējām lietotnēm ir vajadzīgas API atslēgas, lai sazinātos ar serveri. Atslēgas tiek izdotas, ieejot lietotāja kontā vai manuāli ģenerējot lietotnei atslēgu.", @@ -849,13 +849,13 @@ "HeaderAccessSchedule": "Piekļuves grafiks", "ExtraLarge": "Ļoti liels", "ErrorPleaseSelectLineup": "Lūdzu izvēlies sarakstu un mēģini vēlreiz. Ja nav pieejams neviens saraksts, pārliecinies ka tavs lietotājvārds, parole un pasta kods ir pareizi.", - "ErrorGettingTvLineups": "Notika kļūda lejupielādējot TV sarakstus. Lūdzu pārliecinies, ka tava informācija ir pareiza un mēģini vēlreiz.", + "ErrorGettingTvLineups": "Notika kļūda lejupielādējot TV sarakstus. Lūdzu pārliecinieties, ka jūsu informācija ir pareiza un mēģiniet vēlreiz.", "DisplayMissingEpisodesWithinSeasonsHelp": "Tam arī jābūt iespējotam priekš TV bibliotēkām servera konfigurācijā.", "DefaultMetadataLangaugeDescription": "Šie ir jūsu noklusējumi, kas var tikt rediģēti atkarībā no bibliotēkas.", "LabelPleaseRestart": "Izmaiņas tiks pielietotas pēc manuālas web klienta pārlādes.", "LabelPersonRole": "Loma", "LabelMusicStreamingTranscodingBitrateHelp": "Iestati maksimālo mūzikas straumēšanas bitu ātrumu.", - "LabelMusicStreamingTranscodingBitrate": "Mūzikas trans-kodēšanas bitu ātrums", + "LabelMusicStreamingTranscodingBitrate": "Mūzikas transkodēšanas bitu ātrums", "LabelModelUrl": "Modeļa URL", "LabelModelNumber": "Modeļa numurs", "LabelModelName": "Modeļa nosaukums", @@ -863,15 +863,15 @@ "LabelMinScreenshotDownloadWidth": "Minimālais ekrānattēlu lejupielādes platums:", "LabelMinBackdropDownloadWidth": "Minimālais fona attēla lejupielādes platums", "LabelKodiMetadataUser": "Saglabāt lietotāja skatīšanās informāciju uz NFO datnēm priekš", - "LabelKodiMetadataSaveImagePathsHelp": "Tas ir ieteicams ja tev ir attēlu datņu nosaukumi, kas neatbilst Kodi vadlīnijām.", + "LabelKodiMetadataSaveImagePathsHelp": "Tas ir ieteicams ja jums ir attēlu datņu nosaukumi, kas neatbilst Kodi vadlīnijām.", "LabelKodiMetadataSaveImagePaths": "Saglabāt attēlu ceļus iekš nfo datnēm", "LabelKodiMetadataEnablePathSubstitutionHelp": "Iespējot ceļu substitūciju attēlu ceļiem izmantojot serveru ceļu substitūcijas iestatījumus.", "LabelKodiMetadataEnablePathSubstitution": "Iespējot ceļu substitūciju", "MessageDirectoryPickerBSDInstruction": "BSD gadījumā, jums iespējams vajadzēs nokonfigurēt glabātuvi savā FreeNAS Jail, lai Jellyfin varētu piekļūt jūsu multividei.", "MessageConfirmRevokeApiKey": "Vai tiešām vēlaties atsaukt šo API atslēgu? Lietotnes savienojums ar šo serveri tiks pēkšņi atslēgts.", "MessageConfirmProfileDeletion": "Vai tu tiešām vēlies izdzēst šo profilu?", - "LabelTranscodingProgress": "Trans-kodēšanas progress", - "LabelTranscodingFramerate": "Trans-kodēšanas kadru ātrums", + "LabelTranscodingProgress": "Transkodēšanas progress", + "LabelTranscodingFramerate": "Transkodēšanas kadru ātrums", "LabelRecordingPathHelp": "Ievadi noklusējuma vietējo vietu, kur saglabāt ierakstus. Ja atstāsts tukšs, servera programmas datu mape tiks lietota tā vietā.", "LabelPublicHttpsPortHelp": "Publiskais porta numurs, ko kartēt uz vietējo HTTPS portu.", "LabelOriginalAspectRatio": "Oriģinālās proporcijas", @@ -889,18 +889,18 @@ "LibraryAccessHelp": "Izvēlies bibliotēkas, ko koplietot ar šo lietotāju. Administratori spēs rediģēt visas bibliotēkas izmantojot metadatu pārvaldnieku.", "LearnHowYouCanContribute": "Uzziniet, kā jūs varat palīdzēt.", "LabelUserLoginAttemptsBeforeLockout": "Neizdevušies piekļuves mēģinājumi pirms lietotājs tiek bloķēts", - "LabelTranscodingThreadCount": "Pārkodēšanas pavedienu daudzums", - "LabelTranscodes": "Transkodi", + "LabelTranscodingThreadCount": "Transkodēšanas pavedienu daudzums", + "LabelTranscodes": "Transkodējumi", "LabelTitle": "Tituls", - "LabelSaveLocalMetadata": "Saglabāt māksu media mapēs", + "LabelSaveLocalMetadata": "Saglabāt mākslu multivides mapēs", "LabelNumberOfGuideDays": "Dienu daudzumus, kuram lejupielādēt gidu", "LabelLockItemToPreventChanges": "Aizslēgt šo objektu lai aizliegtu izmaiņas", - "LabelLocalHttpServerPortNumber": "Vietējais HTTP porta numurs", + "LabelLocalHttpServerPortNumber": "Vietējā HTTP porta numurs", "OptionAllowManageLiveTv": "Atļaut Tiešraides TV ierakstu pārvaldīšanu", "OptionAllowLinkSharing": "Atļaut dalīšanos sociālajos tīklos", "OptionAllowBrowsingLiveTv": "Atļaut Tiešraides TV piekļuvi", "MediaInfoForced": "Piespiests", - "LabelPublicHttpPortHelp": "Publiskai porta numurs, kas tiks kartēts uz vietējo HTTP portu.", + "LabelPublicHttpPortHelp": "Publiskā porta numurs, kas tiks kartēts uz vietējo HTTP portu.", "LabelOptionalNetworkPath": "Koplietota tīkla mape", "LabelLibraryPageSizeHelp": "Uzstāda vienumu daudzumu, ko rādīt bibliotēkas lapā. Uzstādi uz 0 lai atspējotu lapošanu.", "LabelLibraryPageSize": "Bibliotēkas lapu lielums", @@ -916,14 +916,14 @@ "LabelBaseUrl": "Pamata URL", "LabelEnableSingleImageInDidlLimitHelp": "Dažas ierīces pareizi neatskaņos ja vairāki attēli ir iegulti iekš Didl.", "LabelEnableSingleImageInDidlLimit": "Ierobežot uz vienu iegulto attēlu", - "LabelEnableDlnaClientDiscoveryIntervalHelp": "Nosaka laiku sekundēs veiktajiem SSDP meklējumiem.", + "LabelEnableDlnaClientDiscoveryIntervalHelp": "Nosaka laiku sekundēs starp veiktajiem SSDP meklējumiem.", "LabelEmbedAlbumArtDidlHelp": "Dažas ierīces labprātāk izmanto šo metodi lai saņemtu albumu vākus. Citas var neatskaņot ar šo opciju ieslēgtu.", "LabelDroppedFrames": "Nomestie kadri", "LabelDownMixAudioScaleHelp": "Pastiprināt audio lejupmiksēšanas laikā. Vērtība viens paturēs oriģinālo skaļumu.", "LabelDownMixAudioScale": "Audio pastiprinājums lejupmiksējot", "LabelDateAddedBehaviorHelp": "Ja atrodas metadatu vērtība, tā vienmēr tiks izmantota pirms jebkuras no šīm opcijām.", "LabelDashboardTheme": "Servera vadības paneļa tēma", - "LabelCustomDeviceDisplayNameHelp": "Ievadi pielāgotu displeja vārdu vai atstāj tukšu lai izmantotu ierīces noteikto.", + "LabelCustomDeviceDisplayNameHelp": "Norādiet pielāgotu parādāmo nosaukumu vai atstājiet tukšu, lai izmantotu ierīces paziņoto nosaukumu.", "LabelCachePathHelp": "Nosaki pielāgotu atrašanās vietu priekš keša datnēm kā attēliem. Atstāj tukšu lai izmantotu servera noklusējumu.", "LabelAllowedRemoteAddressesMode": "Attālās IP adreses filtra režīms", "LabelAllowedRemoteAddresses": "Attālās IP adreses filtrs", @@ -932,8 +932,8 @@ "LabelAirsBeforeEpisode": "Tiešraidē pirms sērijas", "LabelAirsAfterSeason": "Tiešraidē pēc sezonas", "HeaderSubtitleProfilesHelp": "Subtitru profili apraksta ierīces atbalstītos subtitru formātus.", - "HeaderKeepSeries": "Paturēt Sēriju", - "ApiKeysCaption": "Saraksts ar pašlaik iespējotajām API atslēgām", + "HeaderKeepSeries": "Paturēt seriālu", + "ApiKeysCaption": "Pašlaik iespējoto API atslēgu saraksts", "EncoderPresetHelp": "Izvēlies ātrāku vērtību, lai uzlabotu veiktspēju, vai lēnāku vērtību, lai uzlabotu kvalitāti.", "FetchingData": "Iegūst papildu datus", "ErrorDeletingItem": "Notika kļūda dzēšot vienumu no servera. Lūdzu pārliecinies vai Jellyfin ir rakstoša piekļuve pie satura mapes un mēģini vēlreiz.", @@ -941,18 +941,18 @@ "ErrorAddingMediaPathToVirtualFolder": "Notika kļūda pievienojot satura ceļu. Lūdzu pārliecinies ka ceļš ir derīgs un ka Jellyfin Servera procesam ir piekļuve tai vietai.", "Episode": "Sērija", "DeviceAccessHelp": "Tas attiecas tikai uz ierīcēm, kas var tikt unikāli identificētas un neaizliegs piekļuvi no pārlūka. Filtrējot lietotāju ierīču piekļuvi neatļaus tiem izmantot jaunas ierīces, līdz tās nav tikušas šeit atļautas.", - "DeinterlaceMethodHelp": "Izvēlies rindpārlēces sakļaušanas (deinterlacing) metodi, kad tiek trans-kodēts rindpārlēces izvērsts (interlaced) saturs. Ja ir ieslēgta aparatūras paātrinājuma atbalstoša aparatūras rindpārlēces sakļaušana, tad šī iestatījuma vietā tiks lietots aparatūras rindpārlēces sakļāvējs.", - "CustomDlnaProfilesHelp": "Izveido pielāgotu profilu priekš jaunas ierīces, vai pārraksti sistēmas profilu.", + "DeinterlaceMethodHelp": "Izvēlies rindpārlēces sakļaušanas (deinterlacing) metodi, kad tiek transkodēts rindpārlēces izvērsts (interlaced) saturs. Ja ir ieslēgta aparatūras paātrinājuma atbalstoša aparatūras rindpārlēces sakļaušana, tad šī iestatījuma vietā tiks lietots aparatūras rindpārlēces sakļāvējs.", + "CustomDlnaProfilesHelp": "Izveidojiet pielāgotu profilu priekš jaunas ierīces vai pārrakstiet sistēmas profilu.", "ColorTransfer": "Krāsu pārsūtīšana", "ClientSettings": "Klientu Iestatījumi", "ButtonTogglePlaylist": "Atskaņošanas saraksts", - "BurnSubtitlesHelp": "Nosaka, vai serverim ir jāiededzina subtitri video trans-kodēšanas laikā. To nedarot tiks stipri palielināta veiktspēja. Izvēlies Auto lai iededzinātu uz attēliem bāzētus formātus (VOBSUB, PGS, SUB, IDX, …) un noteiktus ASS vai SSA subtitrus.", + "BurnSubtitlesHelp": "Nosaka, vai serverim ir jāiededzina subtitri video transkodēšanas laikā. Izvairīšanās no tā ievērojami uzlabos veiktspēju. Izvēlies Auto lai iededzinātu uz attēliem bāzētus formātus (VOBSUB, PGS, SUB, IDX u.c.) un noteiktus ASS vai SSA subtitrus.", "Artist": "Izpildītājs", "AllowOnTheFlySubtitleExtractionHelp": "Iegultie subtitri var tikt izvilkti no video un nogādāti klientiem kā parasts teksts, lai nevajadzētu veikt lieku video transkodēšanu. Uz dažām sistēmām tas var aizņemt ilgu laiku un likt video atskaņošanai uzkārties izvilkšanas procesa laikā. Atspējo šo, lai iegultos subtitrus iededzinātu video transkodēšanas veidā, kad tos noklusēti neatbalsta klienta ierīce.", "AlbumArtist": "Albuma izpildītājs", "Album": "Albums", "PleaseRestartServerName": "Lūdzu, atsāknējiet Jellyfin serverī {0}.", - "PlayNextEpisodeAutomatically": "Atskaņot nākamo epizodi automātiski", + "PlayNextEpisodeAutomatically": "Atskaņot nākamo sēriju automātiski", "PlayFromBeginning": "Atskaņot no sākuma", "PlayCount": "Atskaņošanas reizes", "PlaybackData": "Atskaņošanas dati", @@ -984,19 +984,19 @@ "OptionLoginAttemptsBeforeLockout": "Nosaka, cik daudz nepareizi piekļuves mēģinājumi var notikt pirms notiek bloķēšana.", "OptionImdbRating": "IMDb Vērtējums", "OptionIgnoreTranscodeByteRangeRequestsHelp": "Šie pieprasījumi tiks veikti, bet ignorēs baitu diapazona galveni.", - "OptionIgnoreTranscodeByteRangeRequests": "Ignorēt trans-kodēšanas baitu diapazona pieprasījumus", + "OptionIgnoreTranscodeByteRangeRequests": "Ignorēt transkodēšanas baitu diapazona pieprasījumus", "OptionHlsSegmentedSubtitles": "HLS segmentēti subtitri", "OptionHideUserFromLoginHelp": "Noderīgs lai paslēptu privātus vai paslēptus administratora kontus. Šim lietotājam būs jāieiet manuāli, ievadot savu lietotājvārdu un paroli.", "OptionHideUser": "Paslēpt šo lietotāju no piekļuves ekrāniem", "OptionHasThemeVideo": "Tēmu Video", "OptionExternallyDownloaded": "Ārējā lejupielāde", - "OptionEstimateContentLength": "Novērtēt satura ilgumu trans-kodēšanas laikā", + "OptionEstimateContentLength": "Novērtēt satura ilgumu transkodēšanas laikā", "OptionEquals": "Vienāds ar", "OptionEnableM2tsModeHelp": "Iespējo m2ts režīmu iekodējot uz mpegts.", "OptionEnableM2tsMode": "Iespējot M2ts režīmu", "OptionEnableForAllTuners": "Iespējot visām tūnera ierīcēm", "OptionEnableExternalContentInSuggestionsHelp": "Atļaut interneta treilerus un tiešraides TV programmām tikt iekļautām ieteiktajā saturā.", - "OptionEnableExternalContentInSuggestions": "Iespējot ārējo saturu iekš ieteikumiem", + "OptionEnableExternalContentInSuggestions": "Iespējot ārējo saturu ieteikumos", "OptionEnableAccessToAllChannels": "Iespējot piekļuvi visiem kanāliem", "OptionEnableAccessFromAllDevices": "Iespējot piekļuvi no visām ierīcēm", "OptionEmbedSubtitles": "Ievietot iekš konteinera", @@ -1011,16 +1011,16 @@ "OptionCriticRating": "Kritiķu Vēŗtējums", "OptionCommunityRating": "Kopienas Vērtējums", "OptionCaptionInfoExSamsung": "CaptionInfoEx (Samsung)", - "OptionAllowVideoPlaybackTranscoding": "Atļaut video atskaņošanu, kas prasa trans-kodēšanu", - "OptionAllowVideoPlaybackRemuxing": "Atļaut video atskaņošanu, kas prasa pārveidošanu bez pārkodēšanas", + "OptionAllowVideoPlaybackTranscoding": "Atļaut video atskaņošanu, kas prasa transkodēšanu", + "OptionAllowVideoPlaybackRemuxing": "Atļaut atskaņošanu bez pārkodēšanas tiem video, kas pieprasa pārveidošanu", "OptionAllowUserToManageServer": "Atļaut šim lietotājam pārvaldīt serveri", - "OptionAllowSyncTranscoding": "Atļaut satura lejupielādi un sinhronizēšanu, kas prasa trans-kodēšanu", + "OptionAllowSyncTranscoding": "Atļaut satura lejupielādi un sinhronizēšanu, kas prasa transkodēšanu", "OptionAllowRemoteSharedDevicesHelp": "DLNA ierīces tiek uzskatītas kā koplietotas līdz lietotājs sāk tās vadīt.", "OptionAllowRemoteSharedDevices": "Atļaut koplietotu ierīču attālinātu vadību", "OptionAllowMediaPlayback": "Atļaut satura atskaņošanu", "OptionAllowContentDownloading": "Atļaut satura lejupielādi un sinhronizāciju", - "OptionForceRemoteSourceTranscoding": "Piespiest pārkodēšanu no attāliem multivides avotiem, kā Tiešraides TV", - "OptionAllowAudioPlaybackTranscoding": "Atļaut audio atskaņošanu, kas prasa trans-kodēšanu", + "OptionForceRemoteSourceTranscoding": "Attālinātu multivides avotu (Tiešraides TV) piespiedu transkodēšana", + "OptionAllowAudioPlaybackTranscoding": "Atļaut audio atskaņošanu, kas prasa transkodēšanu", "OnlyForcedSubtitlesHelp": "Tikai subtitri, kas atzīmēti kā piespiedu tiks ielādēti.", "OnlyForcedSubtitles": "Tikai Piespiedu", "MoreUsersCanBeAddedLater": "Papildus lietotāji var tikt pievienoti vēlāk no vadības paneļa.", @@ -1031,7 +1031,7 @@ "AllowFfmpegThrottlingHelp": "Kad transkodējums vai remux tiek pietiekami tālu priekšā pašreizējai atskaņošanas vietai, process tiks pauzēts, lai patērētu mazāk resursu. Tas ir visnoderīgāks, kad skatās bez biežas pārlēkšanas. Atspējo šo, ja saskaries ar atskaņošanas problēmām.", "ButtonSyncPlay": "Sinhronizēta atskaņošana", "LabelCustomRating": "Pielāgotais vērtējums", - "LabelCurrentStatus": "Pašreizējais status", + "LabelCurrentStatus": "Pašreizējais statuss", "LabelAudioBitDepth": "Audio bitu dziļums", "LabelAlbumArtMaxResHelp": "Maksimālā albuma vāka izšķirtspēja, kas padota izmantojot upnp:albumArtURI rekvizītu.", "InstantMix": "Tūlītēja jaukšana", @@ -1070,15 +1070,15 @@ "EnableDetailsBanner": "Informācijas reklāmkarogs", "ButtonPlayer": "Atskaņotājs", "ButtonCast": "Raidīt uz ierīci", - "AllowTonemappingHelp": "Toņu kartēšana var pārveidot video dinamisko diapazonu no HDR uz SDR, saglabājot attēla detaļas un krāsas, kas ir ļoti svarīga informācija, lai attēlotu sākotnējo ainu. Pašlaik strādā tikai, kad tiek pārkodēti video ar iegultiem 10-bitu HDR10, HLG vai DoVi metadatiem. Ja atskaņošana nav vienmērīga vai tā neizdodas, lūdzu, apsveriet atbilstošā aparatūras dekodētāja izslēgšanu.", + "AllowTonemappingHelp": "Tonālā kartēšana var pārveidot video dinamisko diapazonu no HDR uz SDR, vienlaikus saglabājot attēla detaļas un krāsas, kas ir ļoti svarīga informācija, lai atveidotu sākotnējo ainu. Pašlaik darbojas tikai ar 10bit HDR10, HLG un DoVi video. Šim nolūkam ir nepieciešama atbilstoša OpenCL vai CUDA izpildmehānisma programma.", "LabelChromecastVersion": "Chromecast Versija", "HeaderUploadSubtitle": "Augšupielādēt subtitrus", - "HeaderRemoteAccessSettings": "Attālinātas Pieejas Iestatījumi", - "HeaderPortRanges": "Ugunsmūra un Starpniekservera Iestatījumi", - "HeaderNewRepository": "Jauna Krātuve", - "HeaderNetworking": "IP Protokoli", - "HeaderHttpsSettings": "HTTPS Iestatījumi", - "HeaderDeleteDevices": "Izdzēst Visas Ierīces", + "HeaderRemoteAccessSettings": "Attālinātas pieejas iestatījumi", + "HeaderPortRanges": "Ugunsmūra un starpniekservera iestatījumi", + "HeaderNewRepository": "Jauna krātuve", + "HeaderNetworking": "IP protokoli", + "HeaderHttpsSettings": "HTTPS iestatījumi", + "HeaderDeleteDevices": "Izdzēst visas ierīces", "HeaderDebugging": "Atkļūdošana un problēmu izsekošana", "HeaderContinueReading": "Turpināt lasīt", "HeaderAddUser": "Pievienot lietotāju", @@ -1102,8 +1102,8 @@ "LabelUnstable": "Nestabils", "LabelUDPPortRangeHelp": "Ierobežojiet Jellyfin, lai izmantotu šo portu diapazonu, veidojot UDP savienojumus. (Noklusējums ir 1024–65535).
Piezīme. Dažām funkcijām ir nepieciešami fiksēti porti, kas var būt ārpus šī diapazona.", "LabelUDPPortRange": "UDP komunikāciju diapazons", - "LabelTranscodingThreadCountHelp": "Atlasiet maksimālo pārkodēšanai izmantojamo pavedienu skaitu. Samazinot pavedienu skaitu, tiks samazināts CPU lietojums, taču konvertēšana var nebūt pietiekami ātra, lai atskaņošana būtu vienmērīga.", - "LabelTranscodingTempPathHelp": "Norādiet pielāgotu ceļu pārkodēšanas failiem, kas tiek nodrošināti klientiem. Atstājiet tukšu, lai izmantotu servera noklusējuma iestatījumu.", + "LabelTranscodingThreadCountHelp": "Atlasiet maksimālo transkodēšanai izmantojamo pavedienu skaitu. Samazinot pavedienu skaitu, tiks samazināts CPU lietojums, taču konvertēšana var nebūt pietiekami ātra, lai atskaņošana būtu vienmērīga.", + "LabelTranscodingTempPathHelp": "Norādiet pielāgotu ceļu transkodēšanas failiem, kas tiek nodrošināti klientiem. Atstājiet tukšu, lai izmantotu servera noklusējuma iestatījumu.", "LabelTonemappingThresholdHelp": "Toņu kartēšanas algoritma parametri tiek precīzi noregulēti katrai ainai. Un tiek izmantots slieksnis, lai noteiktu, vai aina ir mainījusies vai nav. Ja attālums starp pašreizējo kadra vidējo spilgtumu un pašreizējo vidējo spilgtumu pārsniedz sliekšņa vērtību, mēs pārrēķinām ainas vidējo un maksimālo spilgtumu. Ieteicamās un noklusējuma vērtības ir 0.8 un 0.2 .", "LabelTonemappingThreshold": "Toņu kartēšanas slieksnis", "LabelTonemappingRange": "Toņu kartēšanas diapazons", @@ -1157,7 +1157,7 @@ "LabelSonyAggregationFlags": "Sony apkopošanas karodziņi", "LabelSlowResponseTime": "Laiks milisekundēs, pēc kura atbilde tiek uzskatīta par lēnu", "LabelSlowResponseEnabled": "Reģistrēt brīdinājuma ziņojumu, ja serveris atbildēja lēni", - "LabelSkipIfGraphicalSubsPresentHelp": "Saglabājot subtitru teksta versijas, tiks nodrošināta efektīvāka piegāde un samazināsies video pārkodēšanas iespējamība.", + "LabelSkipIfGraphicalSubsPresentHelp": "Saglabājot subtitru teksta versijas, tiks nodrošināta efektīvāka piegāde un samazināsies video transkodēšanas iespējamība.", "LabelSkipIfAudioTrackPresentHelp": "Noņemiet atzīmi no šīs izvēles rūtiņas, lai nodrošinātu, ka visiem videoklipiem ir subtitri neatkarīgi no audio valodas.", "LabelSkipIfAudioTrackPresent": "Izlaist, ja noklusējuma audio celiņš atbilst lejupielādes valodai", "LabelSkipForwardLength": "Izlaist uz priekšu soļa garums", @@ -1165,13 +1165,13 @@ "LabelSelectFolderGroupsHelp": "Mapes, kuras nav atzīmētas, tiks parādītas pašas savā skatā.", "LabelScheduledTaskLastRan": "Pēdējo reizi palaists {0}, turpmākais {1}.", "LabelSaveLocalMetadataHelp": "Saglabājot mākslas darbus multivides mapēs, tie tiks novietoti vietā, kur tos varēs viegli rediģēt.", - "LabelRequireHttpsHelp": "Ja atzīmēts, serveris automātiski novirzīs visus pieprasījumus kas izmanto HTTP, uz HTTPS. Tam nav nekādas ietekmes, ja serveris neklausās HTTPS.", + "LabelRequireHttpsHelp": "Ja atzīmēts, serveris automātiski pārvirzīs visus HTTP pieprasījumus uz HTTPS. Tam nav nekādas ietekmes, ja serveris neklausās HTTPS.", "LabelRequireHttps": "Pieprasīt HTTPS", "LabelRepositoryUrlHelp": "Tā repozitorija manifesta atrašanās vieta, kuru vēlaties iekļaut.", "LabelRepositoryUrl": "Repozitorija URL", "LabelRepositoryNameHelp": "Pielāgots nosaukums, lai atšķirtu šo repozitoriju no citām jūsu serverim pievienotajām vietām.", "LabelRepositoryName": "Repozitorija Nosaukums", - "LabelRemoteClientBitrateLimitHelp": "Papildu straumes bitu pārraides ātruma ierobežojums visām ārpus tīkla ierīcēm. Tas ir noderīgi, lai ierīces nepieprasītu lielāku bitu pārraides ātrumu, nekā spēj nodrošināt jūsu interneta savienojums. Tas var izraisīt palielinātu CPU slodzi jūsu serverī. Lai reāllaikā pārkodētu videoklipus pārslēdziet uz mazāku bitu pārraides ātrumu.", + "LabelRemoteClientBitrateLimitHelp": "Papildu straumes bitu pārraides ātruma ierobežojums visām ārpus tīkla ierīcēm. Tas ir noderīgi, lai ierīces nepieprasītu lielāku bitu pārraides ātrumu, nekā spēj nodrošināt jūsu interneta savienojums. Tas var izraisīt palielinātu CPU slodzi jūsu serverī. Lai reāllaikā transkodētu videoklipus pārslēdziet uz mazāku bitu pārraides ātrumu.", "LabelQuickConnectCode": "Quick Connect kods", "LabelIsForced": "Piespiedu", "LabelIdentificationFieldHelp": "Lielo burtu ignorējošs apakšteksts vai \"regex\" izteiksme.", @@ -1185,27 +1185,27 @@ "LabelEnableSSDPTracingHelp": "Iespējot detalizētas SSDP tīkla izsekošanas datu reģistrēšanu.
BRĪDINĀJUMS. Tas izraisīs nopietnu veiktspējas pasliktināšanos.", "LabelEnableSSDPTracing": "Iespējot SSDP izsekošanu", "LabelEnableRealtimeMonitorHelp": "Failu izmaiņas tiks nekavējoties apstrādātas atbalstītajās failu sistēmās.", - "LabelEnableIP6Help": "Ieslēgt IPv6 funkcionalitāti.", - "LabelEnableIP6": "Ieslēgt IPv6", - "LabelEnableIP4Help": "Ieslēgt IPv4 funkcionalitāti.", - "LabelEnableIP4": "Iespeējot IPv4", + "LabelEnableIP6Help": "Iespējot IPv6 funkcionalitāti.", + "LabelEnableIP6": "Iespējot IPv6", + "LabelEnableIP4Help": "Iespējot IPv4 funkcionalitāti.", + "LabelEnableIP4": "Iespējot IPv4", "LabelEnableHttpsHelp": "Klausieties konfigurētajā HTTPS portā. Lai tas tiktu izmantots ir jāiesniedz arī derīgs sertifikāts.", "LabelEnableHttps": "Iespējot HTTPS", - "LabelEnableBlastAliveMessages": "Pārraidīt \"ieslēgts\" ziņu visiem", + "LabelEnableBlastAliveMessages": "Pārraidīt “Ieslēgts\" ziņojumus visiem", "LabelDropSubtitleHere": "Nometiet subtitrus šeit vai noklikšķiniet lai pārlūkotu.", "LabelDropShadow": "Krītošā ēna", "LabelDisplaySpecialsWithinSeasons": "Rādīt īpašos piedāvājumus sezonās, kurās tie tika rādīti", "LabelDisableCustomCss": "Atspējot pielāgoto CSS kodu tēmu veidošanai/zīmola veidošanai, kas tiek nodrošināta no servera.", "LabelDeinterlaceMethod": "Deinterlace metode", - "LabelDefaultUserHelp": "Nosakiet, kura lietotāja bibliotēka ir jāparāda pievienotajās ierīcēs. To var ignorēt katrai ierīce izmantojot profilus.", + "LabelDefaultUserHelp": "Noteikt, kura lietotāja bibliotēka ir jāattēlo pievienotajās ierīcēs. To var pārdefinēt katrai ierīcei, izmantojot profilus.", "LabelDateAddedBehavior": "Pievienošanas datums jaunajam saturam", "LabelCreateHttpPortMapHelp": "Atļaut automātisku portu kartēšanu, lai izveidotu noteikumu HTTP trafikam papildus HTTPS trafikam.", "LabelCreateHttpPortMap": "Iespējot automātisko portu kartēšanu HTTP un HTTPS trafikam.", "LabelColorTransfer": "Krāsu pārnešana", "LabelColorSpace": "Krāsu telpa", "LabelColorPrimaries": "Galvenās krāsas", - "LabelBlastMessageIntervalHelp": "Nosakiet ilgumu sekundēs starp dzīvajiem ziņojumiem.", - "LabelBlastMessageInterval": "Dzīvs ziņojuma intervāls", + "LabelBlastMessageIntervalHelp": "Nosakiet ilgumu sekundēs starp “Ieslēgts” ziņojumu pārraidēm.", + "LabelBlastMessageInterval": "“Ieslēgts” ziņojumu intervāls", "LabelBindToLocalNetworkAddressHelp": "Ignorēt HTTP servera vietējo IP adresi. Ja tas tiks atstāts tukšs, serveris saistīs visas pieejamās adreses. Lai mainītu šo vērtību, ir nepieciešama restartēšana.", "LabelAutomaticDiscoveryHelp": "Atļaut lietotnēm automātiksi atrast Jellyfin izmantojot UDP portu 7359.", "LabelAutomaticDiscovery": "Ieslēgt Automātisko Atklāšanu", @@ -1217,25 +1217,25 @@ "KnownProxiesHelp": "Komatatdalīts saraksts ar IP adresēm vai zināmo starpniekserveru resursdatora nosaukumiem, kas tiek izmantoti, veidojot savienojumu ar jūsu Jellyfin instanci. Tas ir nepieciešams, lai pareizi izmantotu galvenes “X-Forwarded-For”. Pēc saglabāšanas nepieciešama restartēšana.", "HeaderSyncPlayTimeSyncSettings": "Laika sinhronizēšana", "HeaderSyncPlayPlaybackSettings": "Atskaņošana", - "HeaderSyncPlaySettings": "SyncPlay Iestatījumi", - "HeaderInstantMix": "Tūlītējs Sajaukums", + "HeaderSyncPlaySettings": "SyncPlay iestatījumi", + "HeaderInstantMix": "Tūlītēja sajaukšana", "HeaderDVR": "DVR", - "HeaderContainerProfileHelp": "Konteineru profili norāda uz ierīces ierobežojumiem, atskaņojot noteiktus formātus. Ja tiek piemērots ierobežojums, multivide tiks pārkodēta, pat ja formāts ir konfigurēts tiešai atskaņošanai.", - "HeaderCodecProfileHelp": "Kodeku profili norāda uz ierīces ierobežojumiem, atskaņojot noteiktus kodekus. Ja tiek piemērots ierobežojums, fails tiks pārkodēts pat tad, ja kodeks ir konfigurēts tiešai atskaņošanai.", + "HeaderContainerProfileHelp": "Konteineru profili norāda uz ierīces ierobežojumiem, atskaņojot noteiktus formātus. Ja tiek piemērots ierobežojums, multivide tiks transkodēta, pat ja formāts ir konfigurēts tiešai atskaņošanai.", + "HeaderCodecProfileHelp": "Kodeku profili norāda uz ierīces ierobežojumiem, atskaņojot noteiktus kodekus. Ja tiek piemērots ierobežojums, fails tiks transkodēts pat tad, ja kodeks ir konfigurēts tiešai atskaņošanai.", "HeaderAutoDiscovery": "Tīkla atklāšana", "H264CrfHelp": "CRF is noklusējuma kvalitātes iestatījums priekš x264 un x265 kodētājiem. Pieļaujamās vērtības 0-51, kur zemāka vērtības atbilst labākai kvalitātei (jo mazāks skaitlis jo lielāki faili). Parasti izvēlas 18-28. Noklusējums x264 kodētājam ir 23, x265 ir 28. Noklusējuma vērtības var izmantot kā sākuma punktu.", "GuideProviderSelectListings": "Izvēlēties sarakstus", - "ErrorPlayerNotFound": "Atskaņotājs pieprasītajam mēdijam nav atrasts.", + "ErrorPlayerNotFound": "Atskaņotājs pieprasītajam medijam nav atrasts.", "ErrorAddingListingsToSchedulesDirect": "Pievienojot sarakstu jūsu Schedules Direct kontam. Schedules Direct atļauj vienā kontā tikai ierobežotu grupu skaitu. Pirms turpināt, jums būs jāpiesakās Schedules Direct vietnē un jānoņem citi ieraksti no sava konta.", "Engineer": "Skaņas inženieris", "DirectPlayHelp": "Oriģinālais fails ir pilnībā saderīgs ar šo klientu un šī sesija saņem failu bez modifikācijas.", "Cursive": "Kursīvs", "Console": "Konsole", "Conductor": "Diriģents", - "Casual": "Ikdienišks", + "Casual": "Ikdienišķs", "Arranger": "Aranžetājs", "AgeValue": "({0} gadu/s vecs)", - "LabelPublishedServerUriHelp": "Ignorēt Jellyfin izmantoto URI pamatojoties uz saskarni vai klienta IP adresi.", + "LabelPublishedServerUriHelp": "Pārrakstīt URI, ko izmanto Jellyfin, vadoties pēc tīkla interfeisa vai klienta IP adreses.", "LabelPublishedServerUri": "Publicētā servera URI", "LabelProtocolInfoHelp": "Vērtība, kas tiks izmantota, atbildot uz GetProtocolInfo pieprasījumiem no ierīces.", "LabelPostProcessorArguments": "Pēcapstrādes komandrindas argumenti", @@ -1267,7 +1267,7 @@ "LabelKnownProxies": "Zināmie starpniekserveri", "LabelKeepUpTo": "Sekot līdz", "GoogleCastUnsupported": "Google Cast neatbalstīts", - "EnableRewatchingNextUpHelp": "Ieslēgt jau skatītu epizošu rādīšanu 'Nākamais' sadaļās.", + "EnableRewatchingNextUpHelp": "Iespējot jau noskatīto sēriju rādīšanu sadaļā “Nākamais”.", "Digital": "Digitāls", "CopyFailed": "Nevarēja nokopēt", "Copy": "Kopēt", @@ -1320,7 +1320,7 @@ "DownloadAll": "Lejuplādēt visu", "AllowEmbeddedSubtitlesAllowAllOption": "Atļaut visu", "LabelStereoDownmixAlgorithm": "Stereo Lejupmiksēšanas Algoritms", - "MessageDirectoryPickerLinuxInstruction": "Priekš Linux uz Arch Linux, CentOS, Debian, Fedora, openSUSE vai Ubuntu, tev jāatļauj pakalpojuma lietotājam vismaz lasīšanas piekļuvi tavām glabātuvēm.", + "MessageDirectoryPickerLinuxInstruction": "Priekš Linux uz Arch Linux, CentOS, Debian, Fedora, openSUSE vai Ubuntu, jums jāatļauj pakalpojuma lietotājam vismaz lasīšanas piekļuvi tavām glabātuvēm.", "Larger": "Lielāks", "IgnoreDts": "Ignorēt DTS (dekodēšanas laikzīmogu)", "Lyricist": "Vārdu autors", @@ -1336,13 +1336,13 @@ "MediaInfoBitrate": "Datu pārraides ātrums", "LabelEnableAudioVbr": "Iespējot VBR skaņas kodēšanu", "LabelEnableAudioVbrHelp": "Mainīgs bitreits sneidz labāku kvalitāti lai izlīdzinātu bitreita attiecību, bet dažos retos gadījumos var izraisīt ilgus bufera laikus un savietojamības problēmas.", - "Bold": "Treknreksts", + "Bold": "Treknteksts", "LanNetworksHelp": "Ar komatu atdalīts saraksts, kas satur IP adreses vai IP/apakštīkla maskas priekš tīkliem, kas tiks uztverti kā atrodamies lokālajā tīklā, īstenojot tīkla ātruma ierobežojumus. Ja iestatīts, visas citas IP adreses tiks uztvertas kā ārēja tīkla un tām tiks īstenotas ārēja tīkla ātruma ierobežojumi. Ja atstāts tukšs, tikai servera apakštīkls tiks uztverts kā atrodamies lokālajā tīklā.", "ListPaging": "{0}-{1} no {2}", "MapChannels": "Kanālu kartēšana", "MediaInfoColorPrimaries": "Primārās krāsas", "MediaInfoColorTransfer": "Krāsu pārnešana", - "MessageChangeRecordingPath": "Ierakstu mapes maiņa automātiski nepārvietos jau pastāvošus ierakstus no vecās uz jauno atrašanās vietu. Tev vajadzēs pašam tos manuāli pārvietot vajadzības gadījumā.", + "MessageChangeRecordingPath": "Ierakstu mapes maiņa automātiski nepārvietos jau pastāvošus ierakstus no vecās uz jauno atrašanās vietu. Jums vajadzēs pašam tos manuāli pārvietot vajadzības gadījumā.", "MessageEnablingOptionLongerScans": "Šīs opcijas iespējošana var izraisīt krienti ilgākas krātuves skenēšanas.", "HeaderPerformance": "Veiktspēja", "LabelDummyChapterDurationHelp": "Intervāls starp fiktīvajām nodaļām. Iestatiet 0, lai atslēgtu fiktīvo nodaļu ģenerēšanu. Šīs vērtības maiņa neietekmēs esošās fiktīvās nodaļas.", @@ -1350,7 +1350,7 @@ "LabelChapterImageResolutionHelp": "Izvilkto nodaļu attēlu izšķirtspēja. Šīs vērtības maiņa neietekmēs esošās fiktīvās nodaļas.", "LabelParallelImageEncodingLimit": "Paralēlas attēlu kodēšanas limits", "LabelParallelImageEncodingLimitHelp": "Maksimālais daudzums ar attēlu kodēšanas procesiem, kas drīkst darboties vienlaicīgi. Iestatot šo uz 0, limits automātiski tiks izvēlēts balstoties uz jūsu sistēmas specifikācijām.", - "HeaderDummyChapter": "Nodaļu Attēli", + "HeaderDummyChapter": "Nodaļu attēli", "EnableCardLayout": "Padarīt redzamu CardBox", "MessageConfirmDeleteGuideProvider": "Vai esat pārliecināti, ka vēlaties izdzēst šo ceļveža pakalpojumu sniedzēju?", "MessageForgotPasswordInNetworkRequired": "Lūdzu, mēģiniet vēlreiz savā mājas tīklā, lai uzsāktu paroles atiestatīšanas procesu.", @@ -1380,7 +1380,7 @@ "MessagePluginInstallDisclaimer": "Kopienas dalībnieku izveidoti spraudņi ir lielisks veids, kā uzlabot savu pieredzi, izmantojot papildu funkcijas un priekšrocības, bet šādi spraudņi var saturēt bīstamu vai nestabilu kodu. Pirms instalēšanas ņemiet vērā to iespējamo ietekmi uz jūsu serveri, piemēram, ilgāku bibliotēkas skenēšanu, papildu fona apstrādi un sistēmas stabilitātes samazināšanos.", "MessagePasswordResetForUsers": "Šo lietotāju paroles ir atiestatītas. Tagad viņi var pierakstīties, izmantojot PIN kodus, kas tika izmantoti atiestatīšanai.", "MessagePluginInstalled": "Spraudnis tika veiksmīgi instalēts. Lai izmaiņas stātos spēkā, serveris ir jārestartē.", - "HeaderRecordingMetadataSaving": "Metadatu Ierakstīšana", + "HeaderRecordingMetadataSaving": "Ieraksta metadati", "AllowCollectionManagement": "Ļaut konkrētajam lietotājam pārvaldīt kolekciju", "MediaInfoRefFrames": "Atskaites kadri", "MessageDeleteTaskTrigger": "Vai esat pārliecināti, ka vēlaties izdzēst šo uzdevuma trigeri?", @@ -1404,7 +1404,7 @@ "MessageUnauthorizedUser": "Pašlaik jums nav tiesību piekļūt serverim. Lai iegūtu papildinformāciju, lūdzu, sazinieties ar sava servera administratoru.", "Small": "Mazs", "ServerNameIsShuttingDown": "Serveris {0} tiek izslēgts.", - "OptionReportByteRangeSeekingWhenTranscoding": "Ziņot, ka serveris atbalsta baitu meklēšanu pārkodēšanas laikā", + "OptionReportByteRangeSeekingWhenTranscoding": "Ziņot, ka serveris atbalsta baitu meklēšanu transkodēšanas laikā", "OptionRequirePerfectSubtitleMatchHelp": "Ja tiek prasīta ideāla atbilstība, tiks filtrēti tikai tie subtitri, kas ir pārbaudīti un verificēti ar precīzu video failu. Ja noņemsiet šo izvēles rūtiņu, palielināsies iespēja, ka subtitri tiks lejupielādēti, taču palielināsies kļūdaina vai nepareiza subtitru teksta iespējamība.", "PasswordRequiredForAdmin": "Administratora kontiem ir nepieciešama parole.", "PleaseConfirmPluginInstallation": "Lūdzu, noklikšķiniet uz OK, lai apstiprinātu, ka esat izlasījis iepriekš minēto informāciju un vēlaties turpināt spraudņa instalēšanu.", @@ -1430,7 +1430,7 @@ "AllowEmbeddedSubtitles": "Dažādu veidu iegulto subtitru atspējošana", "OnWakeFromSleep": "Pēc pamošanās no miega režīma", "MusicLibraryHelp": "Pārskatiet {0}mūzikas nosaukšanas ceļvedi{1}.", - "OptionAllowMediaPlaybackTranscodingHelp": "Ierobežojot piekļuvi pārkodēšanai, klientiem var rasties atskaņošanas kļūmes neatbalstītu multivides formātu dēļ.", + "OptionAllowMediaPlaybackTranscodingHelp": "Ierobežojot piekļuvi transkodēšanai, klientiem var rasties atskaņošanas kļūmes neatbalstītu multivides formātu dēļ.", "OptionMaxActiveSessions": "Iestatiet maksimālo vienlaicīgo lietotāju sesiju skaitu.", "Print": "Drukāt", "QuickConnect": "Quick Connect", @@ -1447,7 +1447,7 @@ "Notifications": "Paziņojumi", "NotificationsMovedMessage": "Paziņojumu funkcionalitāte ir pārcelta uz Webhook spraudni.", "OnApplicationStartup": "Lietojumprogrammas palaišanas laikā", - "OptionAutomaticallyGroupSeriesHelp": "Sērijas, kas šajā bibliotēkā ir sadalītas vairākās mapēs, tiks automātiski apvienotas vienā šovā.", + "OptionAutomaticallyGroupSeriesHelp": "Sērijas, kas šajā bibliotēkā ir sadalītas vairākās mapēs, tiks automātiski apvienotas vienā seriālā.", "OptionExtractChapterImage": "Iespējot nodaļu attēlu ieguvi", "QuickConnectNotActive": "Quick Connect šajā serverī nav aktīvs", "New": "Jauns", @@ -1482,9 +1482,9 @@ "PreferEmbeddedTitlesOverFileNamesHelp": "Noteikt redzamo nosaukumu, kas jāizmanto, ja nav pieejami interneta metadati vai vietējie metadati.", "OptionSpecialEpisode": "Speciālizlaidumi", "AllowSegmentDeletion": "Dzēst segmentus", - "AllowSegmentDeletionHelp": "Dzēst vecus segmentus pēc to nosūtīšanas klientam. Šis lauj neglabāt visu pārkodēto failu diskā. Izslēdziet šo tikai ja jums ir problēmas ar atskanosanu.", + "AllowSegmentDeletionHelp": "Dzēst vecus segmentus pēc to nosūtīšanas klientam. Šis ļauj neglabāt visu transkodēto failu diskā. Izslēdziet šo tikai ja jums ir problēmas ar atskaņošanu.", "GoHome": "Doties mājās", - "HeaderEpisodesStatus": "Epizožu statuss", + "HeaderEpisodesStatus": "Sēriju statuss", "LabelDate": "Datums", "LabelBackdropScreensaverInterval": "Fona ekrānsaudzētāja intervāls", "LabelBackdropScreensaverIntervalHelp": "Laiks sekundēs starp dažādiem foniem, ja tiek izmantots fona ekrānsaudzētājs.", @@ -1494,7 +1494,7 @@ "HeaderConfirmRepositoryInstallation": "Apstipriniet spraudņu krātuves instalāciju", "LabelDeveloper": "Izstrādātājs", "LabelThrottleDelaySeconds": "Bremzēt pēc", - "LabelThrottleDelaySecondsHelp": "Laiks sekundēs pēc kura pārkodētājs tiks pēc kura pārkodētājs tiks bremzēts. Šim jābūt pietiekami lielam lai klients saglabātu veselīgu buferi. Šis strādā tikai ja bremzēšana ir ieslēgta.", + "LabelThrottleDelaySecondsHelp": "Laiks sekundēs, pēc kura transkodētājs tiks bremzēts. Šim jābūt pietiekami lielam lai klients saglabātu veselīgu buferi. Šis strādā tikai ja bremzēšana ir ieslēgta.", "LabelSegmentKeepSeconds": "Cik ilgi paturēt segmentus", "HeaderGuestCast": "Vieszvaigznes", "RecommendationStarring": "Lomās {0}", @@ -1535,9 +1535,128 @@ "AllowAv1Encoding": "Atļaut kodēšanu AV1 formātā", "Clip": "Klips", "AiTranslated": "Tulkots ar MI", - "ForeignPartsOnly": "Piespiedu/Tikai cittautu daļas", + "ForeignPartsOnly": "Piespiedu/Tikai fragmentus svešvalodā", "TextSent": "Teksts nosūtīts.", "Track": "Celiņš", "TabUpcoming": "Nākošais", - "Writers": "Scenāristi" + "Writers": "Scenāristi", + "Video": "Video", + "AllowVppTonemappingHelp": "Pilnībā uz Intel draiveri balstīta toņu kartēšana. Pašlaik darbojas tikai ar HDR10 video uz noteiktas aparatūras. Tai ir augstāka prioritāte salīdzinājumā ar citu OpenCL implementāciju.", + "UnknownAudioStreamInfo": "Audio straumējuma informācija nav zināma", + "HearingImpairedShort": "HI/SDH", + "ScanLibrary": "Skenēt bibliotēku", + "ScreenResolution": "Ekrāna izšķirtspēja", + "SearchForCollectionInternetMetadata": "Mākslas darbu un metadatu meklēšana internetā", + "SearchResults": "Meklēšanas rezultāti", + "SeriesYearToPresent": "{0} - Šobrīd", + "Share": "Kopīgot", + "ShowLess": "Rādīt mazāk", + "ShowMore": "Rādīt vairāk", + "SkipEpisodesAlreadyInMyLibrary": "Neierakstīt sērijas, kas jau atrodas manā bibliotēkā", + "SkipEpisodesAlreadyInMyLibraryHelp": "Sērijas tiks salīdzinātas, izmantojot sezonas un sēriju numurus, ja tādi būs pieejami.", + "SubtitleAppearanceSettingsDisclaimer": "Sekojošie iestatījumi neattiecas uz iepriekš minētajiem grafiskajiem subtitriem vai ASS/SSA subtitriem, kuros ir iestrādāti savi stili.", + "SubtitleLightGray": "Gaiši pelēks", + "SubtitleMagenta": "Purpursarkans", + "SubtitleVerticalPositionHelp": "Rindas numurs, kurā parādās teksts. Pozitīvie skaitļi norāda no augšas uz leju. Negatīvi skaitļi norāda uz augšupejošu tekstu.", + "TheseSettingsAffectSubtitlesOnThisDevice": "Šie iestatījumi ietekmē subtitrus šajā ierīcē", + "ThisWizardWillGuideYou": "Šis vednis palīdzēs jums veikt iestatīšanas procesu. Lai sāktu, izvēlieties vēlamo valodu.", + "EnableVppTonemapping": "Iespējot VPP toņu kartēšanu", + "AudioCodecNotSupported": "Audio kodeks netiek atbalstīts", + "AudioChannelsNotSupported": "Audio kanālu skaits netiek atbalstīts", + "AudioSampleRateNotSupported": "Audio atskaņošanas ātrums netiek atbalstīts", + "SecondaryAudioNotSupported": "Sekundārie audio celiņi netiek atbalstīti", + "Scene": "Aina", + "AudioBitrateNotSupported": "Audio bitu pārraides ātrums netiek atbalstīts", + "LabelTonemappingMode": "Toņu kartēšanas režīms", + "SaveChanges": "Saglabāt izmaiņas", + "SubtitleRed": "Sarkans", + "Sunday": "Svētdiena", + "EnableFallbackFont": "Iespējot rezerves fontus", + "EnableGamepadHelp": "Klausieties, vai tiek saņemts ievades signāls no visiem pievienotajiem kontrolieriem. (Nepieciešams: “TV” displeja režīms)", + "Save": "Saglabāt", + "Studio": "Studija", + "Typewriter": "Rakstāmmašīna", + "UserMenu": "Lietotāja izvēlne", + "LabelSyncPlayInfo": "SyncPlay info", + "ResetPassword": "Atiestatīt paroli", + "Up": "Augšup", + "HeaderSelectFallbackFontPath": "Izvēlēties rezerves fontu mapes ceļu", + "SubtitleBlack": "Melns", + "SubtitleBlue": "Zils", + "SubtitleGray": "Pēlēks", + "SubtitleWhite": "Balts", + "SubtitleYellow": "Dzeltens", + "SubtitleGreen": "Zaļš", + "Subtitle": "Subtitri", + "SecondarySubtitles": "Sekundārie subtitri", + "SeriesDisplayOrderHelp": "Sakārtojiet sērijas pēc to izlaišanas datuma, DVD secības vai absolūtās numerācijas.", + "SeriesRecordingScheduled": "Seriāla ieraksts ieplānots.", + "Shuffle": "Sajaukt secību", + "Sort": "Kārtot", + "SortByValue": "Kārtot pēc {0}", + "StopPlayback": "Apturēt atskaņošanu", + "Studios": "Studijas", + "SubtitleDownloadersHelp": "Iespējojiet un sakārtojiet vēlamos subtitru lejupielādētājus prioritārā secībā.", + "Subtitles": "Subtitri", + "Suggestions": "Ieteikumi", + "LabelSelectMono": "Mono", + "YoutubeNotFound": "Video nav atrasts.", + "SubtitleCodecNotSupported": "Subtitru kodeks netiek atbalstīts", + "AudioProfileNotSupported": "Audio kodeka profils netiek atbalstīts", + "AudioBitDepthNotSupported": "Audio bitu dziļums netiek atbalstīts", + "SortChannelsBy": "Kārtot kanālus pēc", + "StopRecording": "Apturēt ierakstu", + "Sports": "Sports", + "YoutubeBadRequest": "Nepareizs pieprasījums.", + "ShowParentImages": "Rādīt seriāla attēlus", + "Whitelist": "Baltais saraksts", + "LogLevel.Warning": "Brīdinājums", + "SeriesSettings": "Seriāla iestatījumi", + "ShowAdvancedSettings": "Rādīt papildu iestatījumus", + "SubtitleCyan": "Ciāns", + "LabelVideoInfo": "Video info", + "VideoAudio": "Video audio", + "ViewAlbumArtist": "Skatīt albuma mākslinieku", + "LabelTranscodingInfo": "Transkodēšanas info", + "SaveSubtitlesIntoMediaFoldersHelp": "Uzglabājot subtitrus blakus video failiem, tos būs vieglāk pārvaldīt.", + "Schedule": "Grafiks", + "Search": "Meklēt", + "SimultaneousConnectionLimitHelp": "Maksimālais atļauto vienlaicīgo straumējumu skaits. Ievadiet 0, ja ierobežojuma nav.", + "SubtitleAppearanceSettingsAlsoPassedToCastDevices": "Šie iestatījumi attiecas arī uz jebkuru Google Cast atskaņošanu, ko sāk šī ierīce.", + "EnableFallbackFontHelp": "Iespējot pielāgotus alternatīvos fontus. Tādējādi var izvairīties no nepareizas subtitru atveidošanas problēmas.", + "Select": "Izvēlēties", + "EnableEnhancedNvdecDecoderHelp": "Eksperimentālā NVDEC implementācija, neieslēdziet šo opciju, ja vien nesaskaraties ar dekodēšanas kļūdām.", + "Restart": "Pārstartēt", + "Rewind": "Attīt", + "SearchForSubtitles": "Subtitru meklēšana", + "SettingsWarning": "Šo vērtību maiņa var izraisīt nestabilitāti vai savienojamības traucējumus. Ja rodas problēmas, iesakām tās mainīt atpakaļ uz noklusējuma iestatījumiem.", + "SyncPlayAccessHelp": "SyncPlay funkcija ļauj sinhronizēt atskaņošanu ar citām ierīcēm. Izvēlieties, kāds piekļuves līmenis funkcijai SyncPlay ir pieejams šim lietotājam.", + "UnknownError": "Notika nezināma kļūda.", + "UnsupportedPlayback": "Jellyfin nevar atšifrēt saturu, kas aizsargāts ar DRM, taču neatkarīgi no tā tiks izmēģināts viss saturs, tostarp aizsargāti izdevumi. Daži faili var rādīties pilnīgi melni šifrēšanas vai citu neatbalstītu funkciju dēļ, piemēram, interaktīvie nosaukumi.", + "HeaderSelectFallbackFontPathHelp": "Pārlūkojiet vai ievadiet rezerves fontu mapes ceļu, kas jāizmanto ASS/SSA subtitru atveidošanai.", + "LabelSelectStereo": "Stereo", + "YoutubePlaybackError": "Pieprasīto video nevar atskaņot.", + "YoutubeDenied": "Pieprasīto video nav atļauts atskaņot iegultajos atskaņotājos.", + "UnknownVideoStreamInfo": "Audio straumējuma informācija nav zināma", + "MachineTranslated": "Mašīntulkojums", + "ResumeAt": "Atsākt no {0}", + "SearchForMissingMetadata": "Trūkstošo metadatu meklēšana", + "Unreleased": "Pagaidām nav publicēts", + "Series": "Sērijas", + "TonemappingAlgorithmHelp": "Toņu kartēšana var tikt precīzi pielāgota. Ja šīs opcijas jums nav pazīstamas, saglabājiet noklusējuma iestatījumus. Ieteicamā vērtība ir \"BT.2390\".", + "EnableIntelLowPowerH264HwEncoder": "Iespējot Intel zema enerģijas patēriņa H.264 aparatūras kodētāju", + "EnableIntelLowPowerHevcHwEncoder": "Iespējot Intel zema enerģijas patēriņa HEVC aparatūras kodētāju", + "SelectAll": "Izvēlēties visu", + "Unknown": "Nezināms", + "LabelSelectAudioChannels": "Kanāli", + "SyncPlayGroupDefaultTitle": "{0} grupa", + "ValueConditions": "Nosacījumi: {0}", + "LabelSegmentKeepSecondsHelp": "Laiks sekundēs, cik ilgi jāsaglabā segmenti, pirms tie tiek pārrakstīti. Jābūt lielākam par “Bremzēt pēc”. Darbojas tikai tad, ja ir iespējota segmentu dzēšana.", + "EnableEnhancedNvdecDecoder": "Iespējot uzlabotu NVDEC dekoderi", + "Sample": "Paraugs", + "Saturday": "Sestdiena", + "SeriesCancelled": "Seriāls atcelts.", + "SmartSubtitlesHelp": "Ja audioieraksts ir svešvalodā, tiks ielādēti subtitri, kas atbilst valodas preferencēm.", + "SubtitleOffset": "Subtitru nobīde", + "SystemDlnaProfilesHelp": "Sistēmas profili ir tikai lasāmi. Izmaiņas sistēmas profilā tiks saglabātas jaunajā pielāgotajā profilā." } diff --git a/src/strings/mk.json b/src/strings/mk.json index 8b33686e2..074330606 100644 --- a/src/strings/mk.json +++ b/src/strings/mk.json @@ -23,11 +23,11 @@ "AddToFavorites": "Додади во омилени", "All": "Сите", "Add": "Додади", - "Actor": "Актер", - "Absolute": "Абсолутно", + "Actor": "Глумец", + "Absolute": "Апсолутно", "ButtonSubmit": "Испрати", "ButtonStop": "Стопирај", - "ButtonStart": "Почеток", + "ButtonStart": "Почни", "ButtonSplit": "Раздели", "ButtonExitApp": "Излези од апликацијата", "ButtonSignOut": "Одјави се", @@ -44,50 +44,50 @@ "ButtonRemove": "Отстрани", "ButtonRefreshGuideData": "Освежи податоци на водич", "ButtonQuickStartGuide": "Водич за брз почеток", - "ButtonPreviousTrack": "Претходна трака", - "ButtonPause": "Пауза", + "ButtonPreviousTrack": "Претходна нумера", + "ButtonPause": "Паузирај", "ButtonParentalControl": "Родителска контрола", "ButtonOpen": "Отвори", - "ButtonOk": "Ок", - "ButtonNextTrack": "Следна трака", + "ButtonOk": "Во ред", + "ButtonNextTrack": "Следна нумера", "ButtonMore": "Повеќе", - "ButtonManualLogin": "Мануелна најава", + "ButtonManualLogin": "Рачна најава", "ButtonLibraryAccess": "Пристап до библиотека", - "ButtonInfo": "Инфо", + "ButtonInfo": "Информации", "ButtonGotIt": "Потврдувам", "ButtonFullscreen": "Цел екран", "ButtonForgotPassword": "Заборавена лозинка", - "ButtonEditOtherUserPreferences": "Ажурирај го профилот на овој корисник, слики и лични преференци.", + "ButtonEditOtherUserPreferences": "Ажурирај го профилот на овој корисник, слики и лични поставки.", "ButtonClose": "Затвори", "ButtonChangeServer": "Смени сервер", "ButtonCast": "Проектирај на уред", "ButtonCancel": "Откажи", "ButtonBack": "Назад", - "ButtonAudioTracks": "Аудио траки", + "ButtonAudioTracks": "Јазик на звук", "ButtonArrowRight": "Десно", "ButtonArrowLeft": "Лево", "ButtonAddUser": "Додај корисник", "ButtonAddServer": "Додај сервер", - "ButtonAddScheduledTaskTrigger": "Додај тригер", - "ButtonAddMediaLibrary": "Додај медија библиотека", + "ButtonAddScheduledTaskTrigger": "Додај прекинувач", + "ButtonAddMediaLibrary": "Додај медиумска библиотека", "ButtonAddImage": "Додај слика", "ButtonActivate": "Активирај", - "Browse": "Прелистувај", + "Browse": "Пребарувај", "BoxSet": "Сет на кутии", - "BoxRear": "Кутија (позади)", - "Box": "Кутија", + "BoxRear": "Омот (позади)", + "Box": "Омот", "BookLibraryHelp": "Аудио и текстуални книги се поддржани. Проверете го {0} водич за именување на книги {1}.", "Blacklist": "Црна листа", "BirthPlaceValue": "Место на раѓање: {0}", "BirthLocation": "Место на раѓање", "BirthDateValue": "Роден: {0}", "Banner": "Банер", - "Auto": "Ауто", - "AuthProviderHelp": "Одбери автентикациски провајдер кој што ќе се користи за лозинката на овој корисник.", - "Authorize": "Авторизирај", - "Audio": "Аудио", - "AspectRatio": "Соодно", - "AsManyAsPossible": "Колку што е можно", + "Auto": "Автоматски", + "AuthProviderHelp": "Одбери провајдер за автентикација кој што ќе се користи за лозинката на овој корисник.", + "Authorize": "Одобри", + "Audio": "Звук", + "AspectRatio": "Сооднос", + "AsManyAsPossible": "Колку што е можно повеќе", "AskAdminToCreateLibrary": "Побарај од администратор да создаде библиотека.", "Ascending": "Растечки", "Artist": "Изведувач", @@ -96,59 +96,59 @@ "ApiKeysCaption": "Листа на моментално вклучени API клучеви", "Anytime": "Било кога", "AnyLanguage": "Било кој јазик", - "AlwaysPlaySubtitlesHelp": "Преводи кои се совпаѓаат со јазичните преференци ќе бидат вчитани без разлика на јазикот на аудиото.", + "AlwaysPlaySubtitlesHelp": "Преводи кои се совпаѓаат со претпочитаниот јазик ќе бидат вчитани без разлика на јазикот на звукот.", "AlwaysPlaySubtitles": "Пуштај секогаш", - "AllowTonemappingHelp": "Тонско-мапирање може да го трансформира динамичкиот опсег на видео од HDR во SDR зачувајќи ги бојата и деталите на сликата, кои што се важни информации за репрезентирање на оригиналната сцена. Моментално функционира само со HDR10 или HLG видеа. Задолжителни се соодветните OpenCL или CUDA рантајм.", - "AllowRemoteAccessHelp": "Ако не е штиклирано, сите далечински конекции ќе бидат блокирано.", - "AllowRemoteAccess": "Дозволи далечински конекции до овој сервер", - "AllowOnTheFlySubtitleExtractionHelp": "Вградени преводи може да бидат екстрахирани од видеа и испорачани на клиентите во обичен текст, со цел да се превентира видео транскодирање. На некои системи ова може да трае долго и да причини заглавување на видеото при екстракцијата. Оневозможете го ова за да ги имате вградените преводи во видео транскодирањето дури и кога не се нативно поддржани на клиент уредот.", - "AllowOnTheFlySubtitleExtraction": "Дозволи екстракција на преводи во живо", - "AllowMediaConversionHelp": "Додај или одземи пристап за конвертирање на медија.", - "AllowMediaConversion": "Дозволи конверзија на медија", + "AllowTonemappingHelp": "Тонско-мапирање може да го трансформира динамичкиот опсег на видео од HDR во SDR зачувувајќи ги бојата и деталите на сликата, кои што се важни информации за претставување на оригиналната сцена. Моментално функционира само со HDR10 или HLG видеа. Задолжителни се соодветните OpenCL или CUDA рантајм.", + "AllowRemoteAccessHelp": "Ако не е штиклирано, сите далечински врски ќе бидат блокирани.", + "AllowRemoteAccess": "Дозволи далечински врски до овој сервер", + "AllowOnTheFlySubtitleExtractionHelp": "Вградени преводи може да бидат одвоени од видеа и испорачани на клиентите во обичен текст, со цел да се спречи видео транскодирање. На некои системи ова може да трае долго и да причини заглавување на видеото при екстракцијата. Оневозможете го ова за да ги имате вградените преводи во видео транскодирањето дури и кога не се нативно поддржани на клиент уредот.", + "AllowOnTheFlySubtitleExtraction": "Дозволи екстракција на преводи во реално време", + "AllowMediaConversionHelp": "Дозволи или забрани пристап за конвертирање.", + "AllowMediaConversion": "Дозволи конверзија на медиумска содржина", "AllowHWTranscodingHelp": "Дозволи му на тјунерот да транскодира стримови во живо. Со ова може да се намали транскодирањето потребно од серверот.", "AllowFfmpegThrottlingHelp": "Кога транскодирање или ремукс е доволно пред моментална позиција на плејбек, паузирај го процесот за да конзумира помалку ресурси. Ова е најкорисно кога се гледа без често премотување. Изгасете го ова доколку имате проблеми со гледање и премотување.", "AllowFfmpegThrottling": "Пригуши транскодирања", - "AllowedRemoteAddressesHelp": "Листа на IP адреси или IP/нетмаск парови кои ќе имаат дозвола да се конектираат далечински. Ако е оставено празно, сите адреси ќе ја имаат оваа дозвола.", + "AllowedRemoteAddressesHelp": "Листа на IP адреси или IP/нетмаск парови кои ќе имаат дозвола да се поврзуваат далечински. Ако е оставено празно, сите адреси ќе ја имаат оваа дозвола.", "AllLibraries": "Сите библиотеки", "AllLanguages": "Сите јазици", "AllEpisodes": "Сите епизоди", - "AllComplexFormats": "Сите комплексни формати (ASS, SSA, VobSub, PGS, SUB, IDX, …)", + "AllComplexFormats": "Сите сложени формати (ASS, SSA, VobSub, PGS, SUB, IDX, …)", "AllChannels": "Сите канали", - "Alerts": "Алармирања", + "Alerts": "Предупредувања", "AlbumArtist": "Изведувач", "Album": "Албум", "Aired": "Емитувано", "AirDate": "Датум на емитување", "AgeValue": "({0} години)", - "AddToPlayQueue": "Додај во редица за гледање", + "AddToPlayQueue": "Додади во ред за пуштање", "AdditionalNotificationServices": "Пребарувајте низ каталогот за плугини за да инсталирате додатни сервиси за известувања.", "AddedOnValue": "Додадено {0}", "AccessRestrictedTryAgainLater": "Пристапот е моментално органичен. Ве молиме пробајте подоцна.", - "DirectStreaming": "Директно стримање", - "DirectStreamHelp2": "Моќта конзумирана со директно стримање најчесто е зависна од аудио профилот. Само видео стримот е без губење на квалитет.", - "DirectStreamHelp1": "Видео стримот е компатибилен со овој уред, но има некомпатибилен аудио формат (DTS, Dolby TrueHD, etc.) или број на аудио канали. Видео стримот ќе биде препакуван без губење на квалитет во живо пред да биде пратен на уредот. Само аудио стримот ќе биде транскодиран.", + "DirectStreaming": "Директен стрим", + "DirectStreamHelp2": "Енергијата која се троши од директното стримување најчесто зависи од аудио профилот. Само видео стримот е без губење на квалитет.", + "DirectStreamHelp1": "Видео стримот е компатибилен со овој уред, но има некомпатибилен формат на звук (DTS, Dolby TrueHD, etc.) или број на аудио канали. Видео стримот ќе биде препакуван без губење на квалитет во живо пред да биде пратен на уредот. Само аудио стримот ќе биде транскодиран.", "DirectPlayHelp": "Изворната датотека е комплетно компатибилна со овој клиент, и сесијата ја прима оваа датотека без модификации.", "DirectPlaying": "Директно гледање", "Directors": "Режисери", "Director": "Режисер", - "Digital": "Дигитален", - "DeviceAccessHelp": "Ова важи само за уреди кои што можат да бидат уникатно идентифицирани и нема да превентираат пристап на прелистувач. Филтерирање на кориснички пристап на уред ќе ги превентира од користење на нови уреди додека не се одобрени тука.", - "DetectingDevices": "Детектирање на уреди", - "Desktop": "Десктоп", + "Digital": "Дигитално", + "DeviceAccessHelp": "Ова важи само за уреди кои што можат да бидат уникатно препознаени и нема да спречат пристап до прелистувачот. Филтрирање на кориснички пристап на уред ќе спречи користење на нови уреди додека не се одобрат тука.", + "DetectingDevices": "Откривање на уреди", + "Desktop": "Работна површина", "Descending": "Опаѓачки", "DeleteUserConfirmation": "Дали сте сигурни дека сакате да го избришете овој корисник?", "DeleteUser": "Избриши корисник", - "DeleteMedia": "Избриши медија", + "DeleteMedia": "Избриши медиумска содржина", "DeleteImageConfirmation": "Дали сте сигурни дека сакате да ја избришете оваа слика?", "DeleteImage": "Избриши слика", "DeleteDevicesConfirmation": "Дали сте сигурни дека сакате да ги избришете сите уреди? Сите други сесии ќе бидат одјавени. Уредите ќе се појават повторно кога корисникот ќе се најави.", - "DeleteDeviceConfirmation": "Дали сте сигурен дека сакате да го избришете овој уред? Ќе се појави следниот пат кога корисникот ќе се најави со него.", - "DeleteAll": "Избриши ги сите", + "DeleteDeviceConfirmation": "Дали сте сигурни дека сакате да го избришете овој уред? Ќе се појави повторно следниот пат кога корисникот ќе се најави со него.", + "DeleteAll": "Избриши сѐ", "Delete": "Избриши", - "DeinterlaceMethodHelp": "Одбери го методот за одпреплетување кога софтверски се транскодира преплетена содржина. Кога хардверска акцелерација која што поддржува хардверско одпреплетување е вклучено хардверскиот одпреплетувач ќе биде користен наместо ова подесување.", - "DefaultSubtitlesHelp": "Преводите се вчитани базирано на стандардните и форсирани знаменца во вградената метадата. Преференците за јазик се земени во предвид кога има повеќе можни опции.", - "DefaultMetadataLangaugeDescription": "Ова се вашите стандардни опции и можат да бидат прилагодени посебно за секоја библиотека.", - "DeathDateValue": "Починал: {0}", + "DeinterlaceMethodHelp": "Одбери го методот за одпреплетување кога софтверски се транскодира преплетена содржина. Кога хардверско забрзување кое што поддржува хардверско одпреплетување е вклучено, хардверскиот одпреплетувач ќе биде користен наместо оваа поставка.", + "DefaultSubtitlesHelp": "Преводите се вчитани базирано на стандардните и форсирани знаменца во вградената метадата. Поставките за јазик се земени во предвид кога има повеќе можни опции.", + "DefaultMetadataLangaugeDescription": "Ова се вашите зададени вредности и можат да бидат прилагодени посебно за секоја библиотека.", + "DeathDateValue": "Починал/а: {0}", "DatePlayed": "Датум на гледање", "DateAdded": "Датум на додавање", "Data": "Податоци", @@ -157,32 +157,32 @@ "DashboardOperatingSystem": "Оперативен систем: {0}", "DashboardArchitecture": "Архитектура: {0}", "DailyAt": "Секој ден во {0}", - "CustomDlnaProfilesHelp": "Создади прилагоден профил за таргетирање на нов уред или за прескокање на системски профил.", - "Cursive": "Закосено", + "CustomDlnaProfilesHelp": "Создадете прилагоден профил за да насочите нов уред или да го отфрлите системскиот профил.", + "Cursive": "Ракописно", "CriticRating": "Оценка на критичари", "CopyStreamURLSuccess": "Успешно копирана адреса.", "CopyStreamURL": "Копирај адреса на стрим", "CopyFailed": "Неуспешно копирање", "Copy": "Копирај", "Copied": "Копирано", - "Continuing": "Продолжување", + "Continuing": "Продолжува", "ContinueWatching": "Продолжи со гледање", "Console": "Конзола", - "Connect": "Поврзување", - "ConfirmEndPlayerSession": "Дали сакате да го изгасите Jellyfin на {0}?", + "Connect": "Поврзи", + "ConfirmEndPlayerSession": "Дали сакате да го исклучите Jellyfin на {0}?", "ConfirmDeletion": "Потврди бришење", - "ConfirmDeleteItems": "Бришење на овие ставки ќе ги избрише и од податочниот систем и од библиотеката. Дали сте сигурни дека сакате да продолжите?", - "ConfirmDeleteItem": "Бришење на оваа ставка ќе го избрише и од податочниот систем и од библиотеката. Дали сте сигурни дека сакате да продолжите?", + "ConfirmDeleteItems": "Бришењето на овие ставки ќе ги избрише и од податочниот систем и од библиотеката. Дали сте сигурни дека сакате да продолжите?", + "ConfirmDeleteItem": "Бришењето на оваа ставка ќе го избрише и од податочниот систем и од библиотеката. Дали сте сигурни дека сакате да продолжите?", "ConfirmDeleteImage": "Избриши слика?", - "ConfigureDateAdded": "Намести како метадатата за „датум на додавање“ е одредена во Контролна табла > Библиотеки > NFO подесувања", - "Conductor": "Кондуктор", + "ConfigureDateAdded": "Поставете како се одредуваат метаподатоците за „Датум на додадено“ во Контролна табла > Библиотеки > Поставки за NFO", + "Conductor": "Диригент", "Composer": "Композитор", "CommunityRating": "Оценка на заедницата", - "ColorTransfer": "Трансфер на бои", + "ColorTransfer": "Пренос на бои", "ColorSpace": "Простор на бои", - "ColorPrimaries": "Примарни бои", + "ColorPrimaries": "Основни бои", "ClientSettings": "Кориснички поставувања", - "ClearQueue": "Исчисти редица", + "ClearQueue": "Исчисти ред", "CinemaModeConfigurationHelp": "Кино режин го носи кино искуството директно во вашата дневна соба со можноста на пуштање на трејлери и интра пред главните сцени.", "ChannelNumber": "Број на канал", "ChannelNameOnly": "Само канал {0}", @@ -197,5 +197,108 @@ "ButtonUseQuickConnect": "Користи „брзо поврзување“", "ButtonUninstall": "Деинсталирај", "ButtonTrailer": "Трејлер", - "ButtonTogglePlaylist": "Плејлиста" + "ButtonTogglePlaylist": "Плејлиста", + "Backdrop": "Позадина", + "LabelThrottleDelaySecondsHelp": "Време во секунди по кое транскодерот ќе биде пригушен. Мора да биде доволно долго за клиентот да одржува здрав бафер. Работи само ако е овозможено пригушување.", + "Art": "Графика", + "ButtonSyncPlay": "SyncPlay", + "ButtonBackspace": "бек-спејс", + "ButtonPlayer": "Плеер", + "ButtonSpace": "Празно место", + "BackdropScreensaver": "Заштитник на екран во позадина", + "AllowCollectionManagement": "Дозволете овој корисник да управува со колекциите", + "AllowSegmentDeletion": "Избриши сегменти", + "AllowSegmentDeletionHelp": "Избришете ги старите сегменти откако ќе бидат испратени до клиентот. Ова го спречува складирањето на целата транскодирана датотека на дискот. Ќе работи само со овозможено пригушување. Исклучете го ова ако имате проблеми со репродукцијата.", + "LabelThrottleDelaySeconds": "Пригуши после", + "LabelSegmentKeepSeconds": "Време за чување на сегментите", + "LabelSegmentKeepSecondsHelp": "Време во секунди за кое сегментите треба да се чуваат пред да бидат препишани. Мора да биде подолго од „Пригуши после“. Работи само ако е овозможено бришењето сегменти.", + "Backdrops": "Позадини", + "BurnSubtitlesHelp": "Определете дали серверот треба да вградува преводи додека транскодирате видеа. Избегнувањето на ова во голема мера ќе ги подобри перформансите. Изберете Автоматски за снимање на формати базирани на слики (VobSub, PGS, SUB, IDX, итн.) и одредени ASS или SSA преводи.", + "DisableCustomCss": "Оневозможи приспособен CSS код обезбеден од серверот", + "Download": "Преземи", + "EditImages": "Уреди слики", + "EditSubtitles": "Уреди превод", + "EnableBackdropsHelp": "Прикажувајте ги заднините во заднината на некои страници додека ја прелистувате библиотеката.", + "EnableBlurHashHelp": "Сликите што сè уште се вчитуваат ќе се прикажат со единствено место.", + "EnableDisplayMirroring": "Пресликување на екранот", + "EnableExternalVideoPlayers": "Надворешни видео плеери", + "EnableExternalVideoPlayersHelp": "Ќе се прикаже мени за надворешен плеер кога ќе започнете со репродукција на видео.", + "Episodes": "Епизоди", + "ErrorAddingListingsToSchedulesDirect": "Настана грешка при додавањето на поставата на вашата сметка на Распореди Директно. Распореди Директно дозволува само ограничен број на постави по сметка. Можеби ќе треба да се најавите на веб-локацијата Распоред Директно и да ги отстраните другите списоци од вашата сметка пред да продолжите.", + "ErrorGettingTvLineups": "Настана грешка при преземањето ТВ-постави. Проверете дали вашите информации се точни и обидете се повторно.", + "EveryXHours": "Секои {0} часови", + "ExtractChapterImagesHelp": "Извлекувањето слики од поглавја ќе им овозможи на клиентите да прикажуваат графички менија за избор на сцена. Процесот може да биде бавен, интензивен за ресурси и може да бара неколку гигабајти простор. Работи кога ќе се откријат видеата, а исто така и како ноќна закажана задача. Распоредот може да се конфигурира во областа за закажани задачи. Не се препорачува да се извршува оваа задача за време на максимални часови на употреба.", + "FFmpegSavePathNotFound": "Не можеме да го најдеме FFmpeg користејќи ја патеката што ја внесовте. Потребна е и FFprobe и мора да постои во истата папка. Овие компоненти обично се заедно во истото преземање. Проверете ја патеката и обидете се повторно.", + "FileNotFound": "Датотеката не е пронајдена.", + "Disc": "Диск", + "EnableDetailsBanner": "Детали за банер", + "Extras": "Додатоци", + "Features": "Можности", + "File": "Датотека", + "EnableFasterAnimationsHelp": "Користи побрзи анимации и транзиции.", + "EnableFasterAnimations": "Побрзи анимации", + "EnableHardwareEncoding": "Овозможи хардверско кодирање", + "ErrorPlayerNotFound": "Не е пронајден плеер за бараните медиумски содржини.", + "EveryHour": "Секој час", + "EveryNDays": "Секои {0} дена", + "EnablePlugin": "Овозможи", + "DoNotRecord": "Не снимај", + "DownloadsValue": "{0} преземања", + "EnableBlurHash": "Овозможете заматени места за слики", + "ErrorStartHourGreaterThanEnd": "Времето на завршување мора да биде поголемо од времето на започнување.", + "ExitFullscreen": "Излези од приказ на цел екран", + "ExtraLarge": "Екстра големо", + "FastForward": "Премотај-напред", + "Favorite": "Омилено", + "DisplayInOtherHomeScreenSections": "Прикажување во деловите на почетниот екран како што се „Неодамна додадени медиуми“ и „Продолжи со гледање“", + "EnableThemeSongsHelp": "Пуштете ги тематските песни во позадина додека ја прелистувате библиотеката.", + "EnableRewatchingNextUp": "Овозможи повторно гледање во Следно", + "EnableRewatchingNextUpHelp": "Овозможи прикажување на веќе гледаните епизоди во деловите „Следно“.", + "Depressed": "Застарено", + "DisablePlugin": "Оневозможи", + "Disconnect": "Исклучи", + "Display": "Прикажи", + "DisplayInMyMedia": "Прикажи на почетен екран", + "EnableStreamLooping": "Автоматско-повторување на преноси во живо", + "EnableQuickConnect": "Овозможи Брзо Поврзување на овој сервер", + "EnableNextVideoInfoOverlayHelp": "На крајот на видеото, прикажи информации за следното видео во моменталната плејлиста.", + "Episode": "Епизода", + "DisplayMissingEpisodesWithinSeasonsHelp": "Ова мора да биде овозможено и за ТВ библиотеките во конфигурацијата на серверот.", + "Down": "Надолу", + "Edit": "Уреди", + "EditMetadata": "Уреди метаподатоци", + "EnableAutoCast": "Постави за зададено", + "EnableDecodingColorDepth10Vp9": "Овозможи 10-битно хардверско декодирање за VP9", + "EnableCinemaMode": "Кино режим", + "EnableDetailsBannerHelp": "Прикажете слика на банер на врвот на страницата со детали за ставката.", + "EnableAudioNormalization": "Нормализација на звук", + "EnableDecodingColorDepth10Hevc": "Овозможи 10-битно хардверско декодирање за HEVC", + "EnableNextVideoInfoOverlay": "Прикажи ги информациите за следното видео за време на гледањето", + "EncoderPresetHelp": "Изберете побрза вредност за подобрување на перформансите или побавна вредност за подобрување на квалитетот.", + "Ended": "Завршено", + "EndsAtValue": "Завршува во {0}", + "Engineer": "Звучен инжинер", + "ErrorAddingMediaPathToVirtualFolder": "Настана грешка при додавањето на патеката за медиумски содржини. Ве молиме проверете дали патеката е валидна и Jellyfin има пристап до таа локација.", + "ErrorAddingTunerDevice": "Настана грешка при додавањето на тјунерот. Проверете дали е достапен и обидете се повторно.", + "ErrorAddingXmlTvFile": "Настана грешка при пристапот до датотеката XMLTV. Проверете дали постои датотеката и обидете се повторно.", + "ErrorDefault": "Настана грешка при обработката на барањето. Обидете се повторно подоцна.", + "EveryXMinutes": "Секои {0} минути", + "EnableAudioNormalizationHelp": "Нормализацијата на звукот ќе додаде постојано засилување за да го задржи просекот на посакуваното ниво (-18dB).", + "DisplayModeHelp": "Изберете го стилот на распоред што го сакате за интерфејсот.", + "Experimental": "Експериментално", + "DropShadow": "Прикажи сенка", + "EnablePhotos": "Прикажи фотографии", + "EnablePhotosHelp": "Сликите ќе бидат откриени и прикажани заедно со други медиумски датотеки.", + "ErrorDeletingItem": "Настана грешка при бришењето на ставката од серверот. Ве молиме проверете дали Jellyfin има пристап за пишување до медиумската папка и обидете се повторно.", + "ErrorPleaseSelectLineup": "Изберете постава и обидете се повторно. Ако не се достапни постави, тогаш ве молиме проверете дали вашето корисничко име, лозинка и поштенски код се точни.", + "ErrorSavingTvProvider": "Настана грешка при зачувувањето на ТВ-провајдерот. Проверете дали е достапен и обидете се повторно.", + "EnableCardLayout": "Прикажи визуелен CardBox", + "DownloadAll": "Преземи сѐ", + "EnableColorCodedBackgrounds": "Позадини со кодирани бои", + "DisplayMissingEpisodesWithinSeasons": "Прикажи ги епизодите што недостасуваат во сезоните", + "EnableTonemapping": "Овозможи мапирање на тонови", + "FetchingData": "Прибавување на додатни податоци", + "EnableStreamLoopingHelp": "Овозможете го ова ако преносите во живо содржат само неколку секунди податоци и треба постојано да се бараат. Овозможувањето на ова кога не е потребно може да предизвика проблеми.", + "EnableThemeVideosHelp": "Пуштете ги тематските видеа во заднина додека ја прелистувате библиотеката.", + "DrmChannelsNotImported": "Канали со DRM заштита нема да бидат внесени." } diff --git a/src/strings/pl.json b/src/strings/pl.json index aaa0b1ab5..50e3fc0bc 100644 --- a/src/strings/pl.json +++ b/src/strings/pl.json @@ -1454,7 +1454,7 @@ "AspectRatioCover": "Okładka", "EnableFallbackFontHelp": "Włącz niestandardowe czcionki. Może pozwolić uniknąć problemów przy renderowaniu napisów.", "EnableFallbackFont": "Włącz czcionki zastępcze", - "LabelFallbackFontPathHelp": "Sprecyzuj ścieżkę zawierającą zastępcze czcionki dla renderowania napisów ASS/SSA. Maksymalny dozwolony łączny rozmiar czcionki to 20 MB. Lekkie i przyjazne dla sieci (web-friendly) formaty czcionek takie jak woff2 są zalecane.", + "LabelFallbackFontPathHelp": "Czcionki te są używane przez niektóre klienty do renderowania napisów. Aby uzyskać więcej informacji, zapoznaj się z dokumentacją.", "LabelFallbackFontPath": "Ścieżka folderu czcionki zastępczej", "HeaderSelectFallbackFontPathHelp": "Wyszukaj lub podaj ścieżkę folderu czcionki zastępczej do użycia przy renderowaniu napisów ASS/SAA.", "HeaderSelectFallbackFontPath": "Wybierz ścieżkę folderu czcionki zastępczej", @@ -1776,5 +1776,9 @@ "UnknownError": "Wystąpił nieznany błąd.", "BackdropScreensaver": "Wygaszacz ekranu z fototapetami", "LogoScreensaver": "Wygaszacz ekranu z logo", - "LabelIsHearingImpaired": "Dla osób niedosłyszących" + "LabelIsHearingImpaired": "Dla osób niedosłyszących", + "LabelAlbumGain": "Wzmocnienie albumu", + "LabelSelectAudioNormalization": "Normalizacja dźwięku", + "LabelTrackGain": "Wzmocnienie utworu", + "SelectAudioNormalizationHelp": "Wzmocnienie utworu – reguluje głośność każdego utworu tak, aby odtwarzał się z tą samą głośnością. Wzmocnienie albumu – reguluje głośność tylko wszystkich utworów w albumie, zachowując zakres dynamiki albumu." } diff --git a/src/strings/si.json b/src/strings/si.json index 6a329b5cc..24499c28b 100644 --- a/src/strings/si.json +++ b/src/strings/si.json @@ -23,5 +23,7 @@ "AllChannels": "සියලුම නාලිකා", "AllComplexFormats": "සියලුම සංකීර්ණ ආකෘති (ASS, SSA, VobSub, PGS, SUB, IDX, …)", "AllEpisodes": "සියලුම කථාංග", - "AllowedRemoteAddressesHelp": "දුරස්ථව සම්බන්ධ වීමට ඉඩ දෙන ජාල සඳහා කොමාවෙන් වෙන් කළ IP ලිපින ලැයිස්තුව හෝ IP/netmask ඇතුළත් කිරීම්. හිස්ව තැබුවහොත්, සියලු දුරස්ථ ලිපිනවලට ඉඩ දෙනු ලැබේ." + "AllowedRemoteAddressesHelp": "දුරස්ථව සම්බන්ධ වීමට ඉඩ දෙන ජාල සඳහා කොමාවෙන් වෙන් කළ IP ලිපින ලැයිස්තුව හෝ IP/netmask ඇතුළත් කිරීම්. හිස්ව තැබුවහොත්, සියලු දුරස්ථ ලිපිනවලට ඉඩ දෙනු ලැබේ.", + "AllowSegmentDeletion": "මේ කොටස මකන්න", + "AllowSegmentDeletionHelp": "client වෙත යැවීමෙන් පසු පැරණි කොටස් මකන්න. මෙය සම්පූර්ණ ට්‍රාන්ස්කෝඩ් ගොනුව තැටියේ ගබඩා කිරීම වළක්වයි. ක්‍රියා කරන්නේ තෙරපුම සක්‍රීය කර පමණි. ඔබ පසුධාවන ගැටළු අත්විඳින්නේ නම් මෙය අක්‍රිය කරන්න." } diff --git a/src/strings/sk.json b/src/strings/sk.json index 33b31f3ce..92cbb69f6 100644 --- a/src/strings/sk.json +++ b/src/strings/sk.json @@ -1454,7 +1454,7 @@ "AspectRatioFill": "Vyplniť", "EnableFallbackFontHelp": "Povoliť vlastné alternatívne fonty. Toto môže vyriešiť problémy s nesprávnym vykreslením titulkov.", "EnableFallbackFont": "Povoliť záložné fonty", - "LabelFallbackFontPathHelp": "Špecifikuje cestu obsahujúcu záložné fonty pre vykreslenie ASS/SSA tituliek. Maximálna povolená veľkosť fontu je 20 MB. Doporučujeme používať malé a webovo-priateľské formy fontov ako napr. woff2.", + "LabelFallbackFontPathHelp": "Tieto písma používajú niektorí klienti na vykresľovanie titulkov. Viac informácií nájdete v dokumentácii.", "LabelFallbackFontPath": "Cesta k priečinku záložných fontov", "HeaderSelectFallbackFontPathHelp": "Vyberte alebo zadajte cestu k priečinku záložných fontov pre vykreslenie ASS/SSA titulkov.", "HeaderSelectFallbackFontPath": "Vybrať cestu k priečinku záložných fontov", @@ -1776,5 +1776,9 @@ "LabelSegmentKeepSeconds": "Doba ponechania segmentov", "LabelThrottleDelaySecondsHelp": "Čas v sekundách, po ktorom bude prekódovanie obmedzené. Musí byť dostatočne veľký, aby mal klient v rezerve dostatočné množstvo prehrávaného súboru. Funguje len vtedy, ak je povolená funkcia Obmedziť prekódovanie.", "AllowSegmentDeletionHelp": "Odstránenie starých segmentov po ich odoslaní klientovi. Tým sa zabráni tomu, aby sa celý prekódovaný súbor musel ukladať na disk. Funguje len so zapnutou funkciou Obmedziť prekódovanie. Ak sa vyskytnú problémy s prehrávaním, vypnite túto funkciu.", - "LabelSegmentKeepSecondsHelp": "Čas v sekundách, počas ktorého budú segmenty uložené. Musí byť dlhší ako je čas určený v \"Obmedziť po\". Funguje len vtedy, ak je povolená funkcia Zmazania segmentov." + "LabelSegmentKeepSecondsHelp": "Čas v sekundách, počas ktorého budú segmenty uložené. Musí byť dlhší ako je čas určený v \"Obmedziť po\". Funguje len vtedy, ak je povolená funkcia Zmazania segmentov.", + "SelectAudioNormalizationHelp": "Zosilnenie stopy - upravuje hlasitosť jednotlivých stôp tak, aby sa prehrávali s rovnakou hlasitosťou. Zosilnenie pre album - upravuje hlasitosť všetkých skladieb iba v albume, pričom zachováva dynamický rozsah albumu.", + "LabelAlbumGain": "Zosilnenie pre album", + "LabelSelectAudioNormalization": "Normalizácia hlasitosti", + "LabelTrackGain": "Zosilnenie stopy" } diff --git a/src/strings/tr.json b/src/strings/tr.json index 8769e19db..3bda2f059 100644 --- a/src/strings/tr.json +++ b/src/strings/tr.json @@ -981,7 +981,7 @@ "PreferEmbeddedTitlesOverFileNames": "Dosya adları yerine gömülü başlıkları tercih et", "LabelSpecialSeasonsDisplayName": "Görünen özel sezon adı", "SpecialFeatures": "Özel Özellikler", - "LabelFallbackFontPathHelp": "ASS/SSA altyazılarını oluşturmak için yedek yazı tiplerini içeren bir yol belirtin. İzin verilen maksimum toplam yazı tipi boyutu 20 MB'dir. Woff2 gibi hafif ve web dostu yazı tipi formatları önerilir.", + "LabelFallbackFontPathHelp": "Bu yazı tipleri bazı istemciler tarafından altyazıları oluşturmak için kullanılır. Daha fazla bilgi için lütfen belgelere bakın.", "HeaderSelectFallbackFontPathHelp": "ASS/SSA altyazılarının işlenmesinde kullanılacak yedek yazı tipi klasörünün yoluna göz atın veya girin.", "TheseSettingsAffectSubtitlesOnThisDevice": "Bu ayarlar, bu cihazdaki altyazıları etkiler", "Subtitles": "Altyazılar", @@ -1768,5 +1768,9 @@ "AiTranslated": "AI Çevirisi", "MachineTranslated": "Makine Çevirisi", "ForeignPartsOnly": "Gömülü/Yalnız yabancı parçalar", - "HearingImpairedShort": "HI/SDH" + "HearingImpairedShort": "HI/SDH", + "SelectAudioNormalizationHelp": "Parça ses kazancı - her parçanın ses seviyesini, aynı ses yüksekliğinde çalınacak şekilde ayarlar. Albüm ses kazancı - albümün dinamik aralığını koruyarak yalnızca bir albümdeki tüm parçaların ses düzeyini ayarlar.", + "LabelSelectAudioNormalization": "Ses Normalleştirme", + "LabelAlbumGain": "Albüm Ses Kazancı", + "LabelTrackGain": "Parça Ses Kazancı" } diff --git a/src/strings/uk.json b/src/strings/uk.json index 583d7f09b..eaabed5b5 100644 --- a/src/strings/uk.json +++ b/src/strings/uk.json @@ -640,7 +640,7 @@ "AllowHevcEncoding": "Дозволити кодування у форматі HEVC", "PreferFmp4HlsContainerHelp": "Віддавайте перевагу використанню fMP4 як контейнера за умовчанням для HLS, що дає змогу направляти потоковий вміст HEVC на підтримувані пристрої.", "RemuxHelp1": "Носій даних знаходиться у несумісному контейнері файлів (MKV, AVI, WMV тощо), але і відеопотік, і аудіопотік сумісні з пристроєм. Носії будуть перепаковані без втрат на льоту перед надсиланням на пристрій.", - "LabelFallbackFontPathHelp": "Вкажіть шлях, що містить резервні шрифти для відображення субтитрів ASS/SSA. Максимально допустимий загальний розмір шрифту - 20 МБ. Рекомендуються легкі та зручні для Інтернету формати шрифтів, такі як woff2.", + "LabelFallbackFontPathHelp": "Ці шрифти використовуються деякими клієнтами для відтворення субтитрів. Будь ласка, зверніться до документації для отримання додаткової інформації.", "XmlTvPathHelp": "Шлях до файлу XMLTV. Jellyfin прочитає цей файл і періодично перевірятиме його на наявність оновлень. Ви несете відповідальність за створення та оновлення файлу.", "WriteAccessRequired": "Jellyfin вимагає доступу до запису в цю папку. Будь ласка, забезпечте доступ до запису та повторіть спробу.", "Watched": "Переглянуто", @@ -1652,7 +1652,7 @@ "HomeVideosPhotos": "Домашні відео та фото", "EnableSplashScreen": "Увімкнути заставку", "ScreenResolution": "Роздільна здатність екрану", - "RememberSubtitleSelectionsHelp": "Спробувати обрати дорожку субтитрів, яка найбільше відповідає попередньому відео.", + "RememberSubtitleSelectionsHelp": "Спробувати обрати доріжку субтитрів, яка найбільше відповідає попередньому відео.", "RememberSubtitleSelections": "Обрати дорожку субтитрів засновуючись на попередньому елементі", "RememberAudioSelectionsHelp": "Спробувати обрати звукову доріжку, яка найбільше відповідає попередньому відео.", "RememberAudioSelections": "Обрати звукову доріжку засновуючись на попередньому елементі", @@ -1773,5 +1773,9 @@ "GoHome": "На головну", "BackdropScreensaver": "Фонова заставка", "LogoScreensaver": "Заставка з логотипом", - "LabelIsHearingImpaired": "Для людей з вадами слуху (SDH)" + "LabelIsHearingImpaired": "Для людей з вадами слуху (SDH)", + "SelectAudioNormalizationHelp": "Посилення треку - регулює гучність кожного треку так, щоб вони відтворювалися з однаковою гучністю. Посилення альбому - регулює гучність лише всіх треків в альбомі, зберігаючи динамічний діапазон альбому.", + "LabelAlbumGain": "Посилення альбому", + "LabelSelectAudioNormalization": "Нормалізація звуку", + "LabelTrackGain": "Посилення треку" } diff --git a/src/strings/vi.json b/src/strings/vi.json index 693eb272a..1a0e27154 100644 --- a/src/strings/vi.json +++ b/src/strings/vi.json @@ -1429,7 +1429,7 @@ "DeleteAll": "Xóa Hết", "EnableFallbackFontHelp": "Bật phông chữ thay thế tùy chỉnh. Điều này có thể tránh sự cố hiển thị phụ đề không chính xác.", "EnableFallbackFont": "Bật phông chữ dự phòng", - "LabelFallbackFontPathHelp": "Chỉ định đường dẫn chứa phông chữ dự phòng để hiển thị phụ đề ASS / SSA. Tổng kích thước phông chữ tối đa được phép là 20 MB. Các định dạng phông chữ nhẹ và thân thiện với web như woff2 được khuyến khích.", + "LabelFallbackFontPathHelp": "Những phông chữ này được một số máy khách sử dụng để hiển thị phụ đề. Vui lòng tham khảo tài liệu để biết thêm thông tin.", "LabelFallbackFontPath": "Đường dẫn thư mục phông chữ dự phòng", "HeaderSelectFallbackFontPathHelp": "Duyệt hoặc nhập đường dẫn của thư mục phông chữ dự phòng dùng để hiển thị phụ đề ASS/SSA.", "HeaderSelectFallbackFontPath": "Chọn Đường dẫn Thư mục Phông chữ Dự phòng", @@ -1757,5 +1757,6 @@ "HeaderGuestCast": "Ngôi Sao Khách Mời", "GoHome": "Về Trang Chủ", "AiTranslated": "Được AI Dịch", - "MachineTranslated": "Được Máy Dịch" + "MachineTranslated": "Được Máy Dịch", + "LabelSelectAudioNormalization": "Chuẩn Hóa Âm Thanh" } diff --git a/src/styles/dashboard.scss b/src/styles/dashboard.scss index d2866c0ee..40b4e2f11 100644 --- a/src/styles/dashboard.scss +++ b/src/styles/dashboard.scss @@ -16,6 +16,8 @@ progress { appearance: none; margin: 0; background: #ccc !important; + border-radius: 0.2em; + border: none; } progress[role]::after { diff --git a/src/scripts/imagehelper.js b/src/utils/image.ts similarity index 76% rename from src/scripts/imagehelper.js rename to src/utils/image.ts index 052c68111..7420fad41 100644 --- a/src/scripts/imagehelper.js +++ b/src/utils/image.ts @@ -1,7 +1,10 @@ +import type { DeviceInfo } from '@jellyfin/sdk/lib/generated-client/models/device-info'; +import type { SessionInfo } from '@jellyfin/sdk/lib/generated-client/models/session-info'; + const BASE_DEVICE_IMAGE_URL = 'assets/img/devices/'; // audit note: this module is expected to return safe text for use in HTML -function getWebDeviceIcon(browser) { +function getWebDeviceIcon(browser: string | null | undefined) { switch (browser) { case 'Opera': case 'Opera TV': @@ -31,8 +34,8 @@ function getWebDeviceIcon(browser) { } } -export function getDeviceIcon(device) { - switch (device.AppName || device.Client) { +export function getDeviceIcon(info: DeviceInfo | SessionInfo) { + switch ((info as DeviceInfo).AppName || (info as SessionInfo).Client) { case 'Samsung Smart TV': return BASE_DEVICE_IMAGE_URL + 'samsung.svg'; case 'Xbox One': @@ -58,13 +61,20 @@ export function getDeviceIcon(device) { case 'Finamp': return BASE_DEVICE_IMAGE_URL + 'finamp.svg'; case 'Jellyfin Web': - return getWebDeviceIcon(device.Name || device.DeviceName); + return getWebDeviceIcon((info as DeviceInfo).Name || (info as SessionInfo).DeviceName); default: + if (info.Capabilities?.IconUrl) { + try { + return new URL(info.Capabilities.IconUrl).toString(); + } catch (err) { + console.error('[getDeviceIcon] device capabilities has invalid IconUrl', info, err); + } + } return BASE_DEVICE_IMAGE_URL + 'other.svg'; } } -export function getLibraryIcon(library) { +export function getLibraryIcon(library: string | null | undefined) { switch (library) { case 'movies': return 'video_library'; @@ -94,6 +104,6 @@ export function getLibraryIcon(library) { } export default { - getDeviceIcon: getDeviceIcon, - getLibraryIcon: getLibraryIcon + getDeviceIcon, + getLibraryIcon };