From 6cfcf36c3cdc1663179806810bb10826ba634657 Mon Sep 17 00:00:00 2001 From: MrK Date: Sun, 17 Sep 2023 23:27:44 +0100 Subject: [PATCH 01/31] Fixing bug #5584 by sending the proper Sort params to the API --- src/components/playback/playbackmanager.js | 16 ++++++++++++++-- src/components/shortcuts.js | 18 ++++++++++++++++-- src/controllers/list.js | 4 +++- 3 files changed, 33 insertions(+), 5 deletions(-) diff --git a/src/components/playback/playbackmanager.js b/src/components/playback/playbackmanager.js index 05117fd08d..c1ba163335 100644 --- a/src/components/playback/playbackmanager.js +++ b/src/components/playback/playbackmanager.js @@ -1806,12 +1806,18 @@ class PlaybackManager { MediaTypes: 'Audio' }); } else if (firstItem.MediaType === 'Photo') { + const sortOptions = options.sortOptions || {}; + let sortByValue = options.shuffle ? 'Random' : sortOptions.sortBy; + if (sortByValue == null) { + sortByValue = 'SortName'; + } promise = getItemsForPlayback(serverId, { ParentId: firstItem.ParentId, Filters: 'IsNotFolder', // Setting this to true may cause some incorrect sorting Recursive: false, - SortBy: options.shuffle ? 'Random' : 'SortName', + SortBy: sortByValue, + SortOrder: sortOptions.sortOrder, MediaTypes: 'Photo,Video', Limit: UNLIMITED_ITEMS }).then(function (result) { @@ -1849,11 +1855,17 @@ class PlaybackManager { MediaTypes: 'Audio' }); } else if (firstItem.IsFolder && firstItem.CollectionType === 'homevideos') { + const sortOptions = options.sortOptions || {}; + let sortByValue = options.shuffle ? 'Random' : sortOptions.sortBy; + if (sortByValue == null) { + sortByValue = 'SortName'; + } promise = getItemsForPlayback(serverId, mergePlaybackQueries({ ParentId: firstItem.Id, Filters: 'IsNotFolder', Recursive: true, - SortBy: options.shuffle ? 'Random' : 'SortName', + SortBy: sortByValue, + SortOrder: sortOptions.sortOrder, // Only include Photos because we do not handle mixed queues currently MediaTypes: 'Photo', Limit: UNLIMITED_ITEMS diff --git a/src/components/shortcuts.js b/src/components/shortcuts.js index 7dc840e8b6..10174d886d 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; @@ -165,6 +166,14 @@ function showPlayMenu(card, target) { }); } +function getSortValues(parentId) { + const basekey = 'items-' + parentId + '-Folder'; + return { + sortBy: userSettings.getFilter(basekey + '-sortby'), + sortOrder: userSettings.getFilter(basekey + '-sortorder') === 'Descending' ? 'Descending' : 'Ascending' + }; +} + function executeAction(card, target, action) { target = target || card; @@ -175,6 +184,10 @@ function executeAction(card, target, action) { id = card.getAttribute('data-id'); } + const itemsContainer = dom.parentWithClass(card, 'itemsContainer'); + + const parentId = itemsContainer.getAttribute('data-parentid'); + const item = getItemInfoFromCard(card); const serverId = item.ServerId; @@ -200,12 +213,13 @@ function executeAction(card, target, action) { }); } else if (action === 'play' || action === 'resume') { const startPositionTicks = parseInt(card.getAttribute('data-positionticks') || '0', 10); - + if (playbackManager.canPlay(item)) { playbackManager.play({ ids: [playableItemId], startPositionTicks: startPositionTicks, - serverId: serverId + serverId: serverId, + sortOptions: getSortValues(parentId) }); } else { console.warn('Unable to play item', item); diff --git a/src/controllers/list.js b/src/controllers/list.js index 0378a1025c..fc2366a3e9 100644 --- a/src/controllers/list.js +++ b/src/controllers/list.js @@ -722,11 +722,13 @@ class ItemsView { function play() { const currentItem = self.currentItem; + const values = self.getSortValues(); if (currentItem && !self.hasFilters) { playbackManager.play({ items: [currentItem], - autoplay: true + autoplay: true, + sortOptions: values }); } else { getItems(self, self.params, currentItem, null, 0, 300).then(function (result) { From 344a6bfad6b7b88749f93cc236dc7bd2b7c4065f Mon Sep 17 00:00:00 2001 From: MrK Date: Sun, 17 Sep 2023 23:33:58 +0100 Subject: [PATCH 02/31] Updated CONTRIBUTORS.md --- CONTRIBUTORS.md | 1 + 1 file changed, 1 insertion(+) diff --git a/CONTRIBUTORS.md b/CONTRIBUTORS.md index eccfd4cf27..835b7db646 100644 --- a/CONTRIBUTORS.md +++ b/CONTRIBUTORS.md @@ -132,3 +132,4 @@ - [jomp16](https://github.com/jomp16) - [Leon de Klerk](https://github.com/leondeklerk) - [CrispyBaguette](https://github.com/CrispyBaguette) + - [v0idMrK](https://github.com/v0idMrK) From ecba6dccb95e5859c0eb934d2df3ff49da909dca Mon Sep 17 00:00:00 2001 From: MrK Date: Mon, 18 Sep 2023 13:00:22 +0100 Subject: [PATCH 03/31] Removing bad trailing space --- src/components/shortcuts.js | 1 - 1 file changed, 1 deletion(-) diff --git a/src/components/shortcuts.js b/src/components/shortcuts.js index 10174d886d..22366c5c70 100644 --- a/src/components/shortcuts.js +++ b/src/components/shortcuts.js @@ -213,7 +213,6 @@ function executeAction(card, target, action) { }); } else if (action === 'play' || action === 'resume') { const startPositionTicks = parseInt(card.getAttribute('data-positionticks') || '0', 10); - if (playbackManager.canPlay(item)) { playbackManager.play({ ids: [playableItemId], From f922742d862e0111e785efd0fb8002098be8de0a Mon Sep 17 00:00:00 2001 From: MrK Date: Mon, 18 Sep 2023 19:36:21 +0100 Subject: [PATCH 04/31] Contributors file updated correctly Adds shortcuts.js function to get sort order Added sort order technique to most types of media on playbackmanager.js --- CONTRIBUTORS.md | 2 +- src/components/playback/playbackmanager.js | 42 +++++++++++++--------- src/components/shortcuts.js | 1 + 3 files changed, 28 insertions(+), 17 deletions(-) diff --git a/CONTRIBUTORS.md b/CONTRIBUTORS.md index 835b7db646..3cb25b462e 100644 --- a/CONTRIBUTORS.md +++ b/CONTRIBUTORS.md @@ -66,6 +66,7 @@ - [Fishbigger](https://github.com/fishbigger) - [sleepycatcoding](https://github.com/sleepycatcoding) - [TheMelmacian](https://github.com/TheMelmacian) + - [v0idMrK](https://github.com/v0idMrK) # Emby Contributors @@ -132,4 +133,3 @@ - [jomp16](https://github.com/jomp16) - [Leon de Klerk](https://github.com/leondeklerk) - [CrispyBaguette](https://github.com/CrispyBaguette) - - [v0idMrK](https://github.com/v0idMrK) diff --git a/src/components/playback/playbackmanager.js b/src/components/playback/playbackmanager.js index c1ba163335..60173e8ed2 100644 --- a/src/components/playback/playbackmanager.js +++ b/src/components/playback/playbackmanager.js @@ -1773,6 +1773,18 @@ class PlaybackManager { }); } + function getSortOptions(options) { + const sortOptions = options.sortOptions || {}; + let sortByValue = options.shuffle ? 'Random' : sortOptions.sortBy; + if (sortByValue == null) { + sortByValue = 'SortName'; + } + return { + sortBy: sortByValue, + sortOrder: sortOptions.sortOrder + }; + } + function translateItemsForPlayback(items, options) { if (items.length > 1 && options && options.ids) { // Use the original request id array for sorting the result in the proper order @@ -1788,6 +1800,8 @@ class PlaybackManager { const queryOptions = options.queryOptions || {}; + const sortOptions = getSortOptions(options); + if (firstItem.Type === 'Program') { promise = getItemsForPlayback(serverId, { Ids: firstItem.ChannelId @@ -1802,21 +1816,17 @@ class PlaybackManager { ArtistIds: firstItem.Id, Filters: 'IsNotFolder', Recursive: true, - SortBy: options.shuffle ? 'Random' : 'SortName', + SortBy: sortOptions.sortBy, + SortOrder: sortOptions.sortOrder, MediaTypes: 'Audio' }); } else if (firstItem.MediaType === 'Photo') { - const sortOptions = options.sortOptions || {}; - let sortByValue = options.shuffle ? 'Random' : sortOptions.sortBy; - if (sortByValue == null) { - sortByValue = 'SortName'; - } promise = getItemsForPlayback(serverId, { ParentId: firstItem.ParentId, Filters: 'IsNotFolder', // Setting this to true may cause some incorrect sorting Recursive: false, - SortBy: sortByValue, + SortBy: sortOptions.sortBy, SortOrder: sortOptions.sortOrder, MediaTypes: 'Photo,Video', Limit: UNLIMITED_ITEMS @@ -1841,7 +1851,8 @@ class PlaybackManager { Filters: 'IsNotFolder', // Setting this to true may cause some incorrect sorting Recursive: false, - SortBy: options.shuffle ? 'Random' : 'SortName', + SortBy: sortOptions.sortBy, + SortOrder: sortOptions.sortOrder, // Only include Photos because we do not handle mixed queues currently MediaTypes: 'Photo', Limit: UNLIMITED_ITEMS @@ -1851,20 +1862,16 @@ class PlaybackManager { GenreIds: firstItem.Id, Filters: 'IsNotFolder', Recursive: true, - SortBy: options.shuffle ? 'Random' : 'SortName', + SortBy: sortOptions.sortBy, + SortOrder: sortOptions.sortOrder, MediaTypes: 'Audio' }); } else if (firstItem.IsFolder && firstItem.CollectionType === 'homevideos') { - const sortOptions = options.sortOptions || {}; - let sortByValue = options.shuffle ? 'Random' : sortOptions.sortBy; - if (sortByValue == null) { - sortByValue = 'SortName'; - } promise = getItemsForPlayback(serverId, mergePlaybackQueries({ ParentId: firstItem.Id, Filters: 'IsNotFolder', Recursive: true, - SortBy: sortByValue, + SortBy: sortOptions.sortBy, SortOrder: sortOptions.sortOrder, // Only include Photos because we do not handle mixed queues currently MediaTypes: 'Photo', @@ -1872,10 +1879,12 @@ class PlaybackManager { }, queryOptions)); } else if (firstItem.IsFolder) { let sortBy = null; + let sortOrder = null; if (options.shuffle) { sortBy = 'Random'; } else if (firstItem.Type !== 'BoxSet') { - sortBy = 'SortName'; + sortBy = sortOptions.sortBy; + sortOrder = sortOptions.sortOrder; } promise = getItemsForPlayback(serverId, mergePlaybackQueries({ ParentId: firstItem.Id, @@ -1883,6 +1892,7 @@ class PlaybackManager { Recursive: true, // These are pre-sorted SortBy: sortBy, + SortOrder: sortOrder, MediaTypes: 'Audio,Video' }, queryOptions)); } else if (firstItem.Type === 'Episode' && items.length === 1 && getPlayer(firstItem, options).supportsProgress !== false) { diff --git a/src/components/shortcuts.js b/src/components/shortcuts.js index 22366c5c70..d4de04dbf0 100644 --- a/src/components/shortcuts.js +++ b/src/components/shortcuts.js @@ -213,6 +213,7 @@ function executeAction(card, target, action) { }); } else if (action === 'play' || action === 'resume') { const startPositionTicks = parseInt(card.getAttribute('data-positionticks') || '0', 10); + if (playbackManager.canPlay(item)) { playbackManager.play({ ids: [playableItemId], From 580ad5f1a8dfde72be012c062b3405c766eb8ca9 Mon Sep 17 00:00:00 2001 From: MrK Date: Tue, 19 Sep 2023 22:29:54 +0100 Subject: [PATCH 05/31] Added getSortOptions to userSettings.js and cleaned up the shortcuts.js and list.js to use the above method --- src/components/shortcuts.js | 16 ++++------------ src/controllers/list.js | 5 +---- src/scripts/settings/userSettings.js | 13 +++++++++++++ 3 files changed, 18 insertions(+), 16 deletions(-) diff --git a/src/components/shortcuts.js b/src/components/shortcuts.js index d4de04dbf0..70bf264fc3 100644 --- a/src/components/shortcuts.js +++ b/src/components/shortcuts.js @@ -166,14 +166,6 @@ function showPlayMenu(card, target) { }); } -function getSortValues(parentId) { - const basekey = 'items-' + parentId + '-Folder'; - return { - sortBy: userSettings.getFilter(basekey + '-sortby'), - sortOrder: userSettings.getFilter(basekey + '-sortorder') === 'Descending' ? 'Descending' : 'Ascending' - }; -} - function executeAction(card, target, action) { target = target || card; @@ -184,11 +176,11 @@ function executeAction(card, target, action) { id = card.getAttribute('data-id'); } + const item = getItemInfoFromCard(card); + const itemsContainer = dom.parentWithClass(card, 'itemsContainer'); - const parentId = itemsContainer.getAttribute('data-parentid'); - - const item = getItemInfoFromCard(card); + const sortParentId = 'items-' + (item.IsFolder ? item.Id : itemsContainer.getAttribute('data-parentid')) + '-Folder'; const serverId = item.ServerId; const type = item.Type; @@ -219,7 +211,7 @@ function executeAction(card, target, action) { ids: [playableItemId], startPositionTicks: startPositionTicks, serverId: serverId, - sortOptions: getSortValues(parentId) + sortOptions: userSettings.getSortValues(sortParentId) }); } else { console.warn('Unable to play item', item); diff --git a/src/controllers/list.js b/src/controllers/list.js index fc2366a3e9..ded9d921ed 100644 --- a/src/controllers/list.js +++ b/src/controllers/list.js @@ -962,10 +962,7 @@ class ItemsView { getSortValues() { const basekey = this.getSettingsKey(); - return { - sortBy: userSettings.getFilter(basekey + '-sortby') || this.getDefaultSortBy(), - sortOrder: userSettings.getFilter(basekey + '-sortorder') === 'Descending' ? 'Descending' : 'Ascending' - }; + return userSettings.getSortValues(basekey); } getDefaultSortBy() { diff --git a/src/scripts/settings/userSettings.js b/src/scripts/settings/userSettings.js index 691b07cb4d..26fc2100e5 100644 --- a/src/scripts/settings/userSettings.js +++ b/src/scripts/settings/userSettings.js @@ -622,6 +622,18 @@ export class UserSettings { getFilter(key) { return this.get(key, true); } + + /** + * Gets the current sort values + * @param {string} key - Filter key. + * @return {Object} sortOptions object + */ + getSortValues(key) { + return { + sortBy: this.getFilter(key + '-sortby'), + sortOrder: this.getFilter(key + '-sortorder') === 'Descending' ? 'Descending' : 'Ascending' + }; + } } export const currentSettings = new UserSettings; @@ -672,3 +684,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 getSortValues = currentSettings.getSortValues.bind(currentSettings); From ee791f9d0d2b7c0bc96e6109415c1032d92f2a24 Mon Sep 17 00:00:00 2001 From: MrK Date: Wed, 20 Sep 2023 17:44:55 +0100 Subject: [PATCH 06/31] Changed from using sortOptions to using already implemented queryOptions Null verification for parentid on shortcuts.js itemContextMenu is now obeying to sorting --- src/components/itemContextMenu.js | 30 +++++++++++- src/components/playback/playbackmanager.js | 55 +++++++--------------- src/components/shortcuts.js | 4 +- src/controllers/list.js | 4 +- src/scripts/settings/userSettings.js | 24 ++++++++-- 5 files changed, 70 insertions(+), 47 deletions(-) diff --git a/src/components/itemContextMenu.js b/src/components/itemContextMenu.js index 0ec982f15a..fe01437b9d 100644 --- a/src/components/itemContextMenu.js +++ b/src/components/itemContextMenu.js @@ -9,6 +9,8 @@ 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'; +import libraryMenu from '../scripts/libraryMenu'; export function getCommands(options) { const item = options.item; @@ -567,6 +569,29 @@ function deleteSeriesTimer(apiClient, item, resolve, command) { }); } +function getSettingsKey(item) { + if (item.IsFolder) { + return 'Folder'; + } + const itemType = item.MediaType; + switch (itemType) { + case 'Movie': + case 'BoxSet': + case 'Video': + return 'movies'; + case 'Audio': + return 'songs'; + case 'MusicAlbum': + return 'musicalbums'; + case 'MusicArtist': + return 'musicartists'; + case 'MusicGenre': + return 'genres'; + case 'MusicPlaylist': + return 'musicplaylists'; + } +} + function play(item, resume, queue, queueNext) { let method = 'play'; if (queue) { @@ -589,9 +614,12 @@ function play(item, resume, queue, queueNext) { serverId: item.ServerId }); } else { + const sortParentId = item.IsFolder ? ('items-' + item.Id) : libraryMenu.getTopParentId() + '-' + getSettingsKey(item); + const sortValues = userSettings.getSortValues(sortParentId); playbackManager[method]({ items: [item], - startPositionTicks: startPosition + startPositionTicks: startPosition, + queryOptions: sortValues }); } } diff --git a/src/components/playback/playbackmanager.js b/src/components/playback/playbackmanager.js index 60173e8ed2..1981fdc57e 100644 --- a/src/components/playback/playbackmanager.js +++ b/src/components/playback/playbackmanager.js @@ -145,7 +145,10 @@ function createStreamInfoFromUrlItem(item) { } function mergePlaybackQueries(obj1, obj2) { - const query = Object.assign(obj1, obj2); + const query = obj1; + for (const key in obj2) { + if (obj2[key] !== undefined) query[key] = obj2[key]; + } const filters = query.Filters ? query.Filters.split(',') : []; if (filters.indexOf('IsNotFolder') === -1) { @@ -1773,18 +1776,6 @@ class PlaybackManager { }); } - function getSortOptions(options) { - const sortOptions = options.sortOptions || {}; - let sortByValue = options.shuffle ? 'Random' : sortOptions.sortBy; - if (sortByValue == null) { - sortByValue = 'SortName'; - } - return { - sortBy: sortByValue, - sortOrder: sortOptions.sortOrder - }; - } - function translateItemsForPlayback(items, options) { if (items.length > 1 && options && options.ids) { // Use the original request id array for sorting the result in the proper order @@ -1800,8 +1791,6 @@ class PlaybackManager { const queryOptions = options.queryOptions || {}; - const sortOptions = getSortOptions(options); - if (firstItem.Type === 'Program') { promise = getItemsForPlayback(serverId, { Ids: firstItem.ChannelId @@ -1812,25 +1801,23 @@ 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: sortOptions.sortBy, - SortOrder: sortOptions.sortOrder, + 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 Recursive: false, - SortBy: sortOptions.sortBy, - SortOrder: sortOptions.sortOrder, MediaTypes: 'Photo,Video', + sortBy: options.shuffle ? 'Random' : 'SortName', Limit: UNLIMITED_ITEMS - }).then(function (result) { + }, queryOptions)).then(function (result) { const playbackItems = result.Items; let index = playbackItems.map(function (i) { @@ -1846,45 +1833,40 @@ 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 Recursive: false, - SortBy: sortOptions.sortBy, - SortOrder: sortOptions.sortOrder, + SortBy: options.shuffle ? 'Random' : 'SortName', // 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: sortOptions.sortBy, - SortOrder: sortOptions.sortOrder, + SortBy: options.shuffle ? 'Random' : 'SortName', MediaTypes: 'Audio' - }); + })); } else if (firstItem.IsFolder && firstItem.CollectionType === 'homevideos') { promise = getItemsForPlayback(serverId, mergePlaybackQueries({ ParentId: firstItem.Id, Filters: 'IsNotFolder', Recursive: true, - SortBy: sortOptions.sortBy, - SortOrder: sortOptions.sortOrder, + SortBy: options.shuffle ? 'Random' : 'SortName', // Only include Photos because we do not handle mixed queues currently MediaTypes: 'Photo', Limit: UNLIMITED_ITEMS }, queryOptions)); } else if (firstItem.IsFolder) { let sortBy = null; - let sortOrder = null; if (options.shuffle) { sortBy = 'Random'; } else if (firstItem.Type !== 'BoxSet') { - sortBy = sortOptions.sortBy; - sortOrder = sortOptions.sortOrder; + sortBy = 'SortName'; } promise = getItemsForPlayback(serverId, mergePlaybackQueries({ ParentId: firstItem.Id, @@ -1892,7 +1874,6 @@ class PlaybackManager { Recursive: true, // These are pre-sorted SortBy: sortBy, - SortOrder: sortOrder, MediaTypes: 'Audio,Video' }, queryOptions)); } else if (firstItem.Type === 'Episode' && items.length === 1 && getPlayer(firstItem, options).supportsProgress !== false) { diff --git a/src/components/shortcuts.js b/src/components/shortcuts.js index 70bf264fc3..0fca127afa 100644 --- a/src/components/shortcuts.js +++ b/src/components/shortcuts.js @@ -180,7 +180,7 @@ function executeAction(card, target, action) { const itemsContainer = dom.parentWithClass(card, 'itemsContainer'); - const sortParentId = 'items-' + (item.IsFolder ? item.Id : itemsContainer.getAttribute('data-parentid')) + '-Folder'; + const sortParentId = 'items-' + (item.IsFolder ? item.Id : itemsContainer?.getAttribute('data-parentid')) + '-Folder'; const serverId = item.ServerId; const type = item.Type; @@ -211,7 +211,7 @@ function executeAction(card, target, action) { ids: [playableItemId], startPositionTicks: startPositionTicks, serverId: serverId, - sortOptions: userSettings.getSortValues(sortParentId) + queryOptions: userSettings.getSortValuesLegacy(sortParentId, 'SortName') }); } else { console.warn('Unable to play item', item); diff --git a/src/controllers/list.js b/src/controllers/list.js index ded9d921ed..31f3d5000e 100644 --- a/src/controllers/list.js +++ b/src/controllers/list.js @@ -728,7 +728,7 @@ class ItemsView { playbackManager.play({ items: [currentItem], autoplay: true, - sortOptions: values + queryOptions: values }); } else { getItems(self, self.params, currentItem, null, 0, 300).then(function (result) { @@ -962,7 +962,7 @@ class ItemsView { getSortValues() { const basekey = this.getSettingsKey(); - return userSettings.getSortValues(basekey); + return userSettings.getSortValuesLegacy(basekey, this.getDefaultSortBy()); } getDefaultSortBy() { diff --git a/src/scripts/settings/userSettings.js b/src/scripts/settings/userSettings.js index 26fc2100e5..339da9687c 100644 --- a/src/scripts/settings/userSettings.js +++ b/src/scripts/settings/userSettings.js @@ -624,15 +624,28 @@ export class UserSettings { } /** - * Gets the current sort values + * Gets the current sort values (Legacy - Non-JSON) + * (old views such as list.js [Photos] will + * use this one) + * @param {string} key - Filter key. + * @return {Object} sortOptions object + */ + getSortValuesLegacy(key, defaultSortBy) { + return { + sortBy: this.getFilter(key + '-sortby') || defaultSortBy, + sortOrder: this.getFilter(key + '-sortorder') === 'Descending' ? 'Descending' : 'Ascending' + }; + } + + /** + * Gets the current sort values (JSON) + * (new views such as MoviesView will use + * this one) * @param {string} key - Filter key. * @return {Object} sortOptions object */ getSortValues(key) { - return { - sortBy: this.getFilter(key + '-sortby'), - sortOrder: this.getFilter(key + '-sortorder') === 'Descending' ? 'Descending' : 'Ascending' - }; + return this.loadQuerySettings(key, {}); } } @@ -684,4 +697,5 @@ 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); export const getSortValues = currentSettings.getSortValues.bind(currentSettings); From 4488a586a45e60f2ec75357cd234d7f83d76ad7d Mon Sep 17 00:00:00 2001 From: MrK Date: Wed, 20 Sep 2023 22:50:01 +0100 Subject: [PATCH 07/31] Removed unneeded calls to getSortValues on playbackManager calls that only play 1 item --- src/components/itemContextMenu.js | 28 +--------------------------- src/controllers/list.js | 4 +--- 2 files changed, 2 insertions(+), 30 deletions(-) diff --git a/src/components/itemContextMenu.js b/src/components/itemContextMenu.js index fe01437b9d..db742eda56 100644 --- a/src/components/itemContextMenu.js +++ b/src/components/itemContextMenu.js @@ -569,29 +569,6 @@ function deleteSeriesTimer(apiClient, item, resolve, command) { }); } -function getSettingsKey(item) { - if (item.IsFolder) { - return 'Folder'; - } - const itemType = item.MediaType; - switch (itemType) { - case 'Movie': - case 'BoxSet': - case 'Video': - return 'movies'; - case 'Audio': - return 'songs'; - case 'MusicAlbum': - return 'musicalbums'; - case 'MusicArtist': - return 'musicartists'; - case 'MusicGenre': - return 'genres'; - case 'MusicPlaylist': - return 'musicplaylists'; - } -} - function play(item, resume, queue, queueNext) { let method = 'play'; if (queue) { @@ -614,12 +591,9 @@ function play(item, resume, queue, queueNext) { serverId: item.ServerId }); } else { - const sortParentId = item.IsFolder ? ('items-' + item.Id) : libraryMenu.getTopParentId() + '-' + getSettingsKey(item); - const sortValues = userSettings.getSortValues(sortParentId); playbackManager[method]({ items: [item], - startPositionTicks: startPosition, - queryOptions: sortValues + startPositionTicks: startPosition }); } } diff --git a/src/controllers/list.js b/src/controllers/list.js index 31f3d5000e..1ab0bd3383 100644 --- a/src/controllers/list.js +++ b/src/controllers/list.js @@ -722,13 +722,11 @@ class ItemsView { function play() { const currentItem = self.currentItem; - const values = self.getSortValues(); if (currentItem && !self.hasFilters) { playbackManager.play({ items: [currentItem], - autoplay: true, - queryOptions: values + autoplay: true }); } else { getItems(self, self.params, currentItem, null, 0, 300).then(function (result) { From af61ae047c79d1df8889812ebd5dbf8f23314d6a Mon Sep 17 00:00:00 2001 From: MrK Date: Wed, 20 Sep 2023 22:55:16 +0100 Subject: [PATCH 08/31] Added queryOptions to MusicGenre call on playbackmanager UserSettings added param to function comment --- src/components/playback/playbackmanager.js | 2 +- src/scripts/settings/userSettings.js | 1 + 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/src/components/playback/playbackmanager.js b/src/components/playback/playbackmanager.js index 1981fdc57e..0ff00b232d 100644 --- a/src/components/playback/playbackmanager.js +++ b/src/components/playback/playbackmanager.js @@ -1850,7 +1850,7 @@ class PlaybackManager { Recursive: true, SortBy: options.shuffle ? 'Random' : 'SortName', MediaTypes: 'Audio' - })); + }, queryOptions)); } else if (firstItem.IsFolder && firstItem.CollectionType === 'homevideos') { promise = getItemsForPlayback(serverId, mergePlaybackQueries({ ParentId: firstItem.Id, diff --git a/src/scripts/settings/userSettings.js b/src/scripts/settings/userSettings.js index 339da9687c..fe301463fc 100644 --- a/src/scripts/settings/userSettings.js +++ b/src/scripts/settings/userSettings.js @@ -628,6 +628,7 @@ export class UserSettings { * (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) { From ef8d92309bc8770e4a0a7e1dc2b6269d45f95c82 Mon Sep 17 00:00:00 2001 From: MrK Date: Wed, 20 Sep 2023 23:10:09 +0100 Subject: [PATCH 09/31] Code cleanup Restoring "Play All" functionality --- src/components/shortcuts.js | 7 +++++-- src/controllers/list.js | 5 +++++ 2 files changed, 10 insertions(+), 2 deletions(-) diff --git a/src/components/shortcuts.js b/src/components/shortcuts.js index 0fca127afa..bcbf42a36c 100644 --- a/src/components/shortcuts.js +++ b/src/components/shortcuts.js @@ -205,13 +205,16 @@ 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, - queryOptions: userSettings.getSortValuesLegacy(sortParentId, 'SortName') + queryOptions: { + SortBy: sortValues.sortBy, + SortOrder: sortValues.sortOrder + } }); } else { console.warn('Unable to play item', item); diff --git a/src/controllers/list.js b/src/controllers/list.js index 1ab0bd3383..5370bdcd6f 100644 --- a/src/controllers/list.js +++ b/src/controllers/list.js @@ -724,8 +724,13 @@ class ItemsView { const currentItem = self.currentItem; if (currentItem && !self.hasFilters) { + const values = self.getSortValues(); playbackManager.play({ items: [currentItem], + queryOptions: { + SortBy: values.sortBy, + SortOrder: values.sortOrder + }, autoplay: true }); } else { From c935ba9a2058aec7eac1d234e27b6fb9dcbde082 Mon Sep 17 00:00:00 2001 From: MrK Date: Thu, 21 Sep 2023 00:14:07 +0100 Subject: [PATCH 10/31] Removed unused imports --- src/components/itemContextMenu.js | 2 -- 1 file changed, 2 deletions(-) diff --git a/src/components/itemContextMenu.js b/src/components/itemContextMenu.js index db742eda56..0ec982f15a 100644 --- a/src/components/itemContextMenu.js +++ b/src/components/itemContextMenu.js @@ -9,8 +9,6 @@ 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'; -import libraryMenu from '../scripts/libraryMenu'; export function getCommands(options) { const item = options.item; From 5d20523616eebb814b3b1361cceee27eee33a083 Mon Sep 17 00:00:00 2001 From: MrK Date: Sat, 23 Sep 2023 22:50:57 +0100 Subject: [PATCH 11/31] Reverting itemContextMenu changes to support folder/playlist ordering with the "Play" action Code cleanup --- src/components/itemContextMenu.js | 34 +++++++++++++++++++++- src/components/playback/playbackmanager.js | 2 +- src/components/shortcuts.js | 1 + 3 files changed, 35 insertions(+), 2 deletions(-) diff --git a/src/components/itemContextMenu.js b/src/components/itemContextMenu.js index 0ec982f15a..ee5518e110 100644 --- a/src/components/itemContextMenu.js +++ b/src/components/itemContextMenu.js @@ -9,6 +9,8 @@ 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'; +import libraryMenu from '../scripts/libraryMenu'; export function getCommands(options) { const item = options.item; @@ -567,6 +569,29 @@ function deleteSeriesTimer(apiClient, item, resolve, command) { }); } +function getSettingsKey(item) { + if (item.IsFolder) { + return 'Folder'; + } + const itemType = item.MediaType; + switch (itemType) { + case 'Movie': + case 'BoxSet': + case 'Video': + return 'movies'; + case 'Audio': + return 'songs'; + case 'MusicAlbum': + return 'musicalbums'; + case 'MusicArtist': + return 'musicartists'; + case 'MusicGenre': + return 'genres'; + case 'MusicPlaylist': + return 'musicplaylists'; + } +} + function play(item, resume, queue, queueNext) { let method = 'play'; if (queue) { @@ -589,9 +614,16 @@ function play(item, resume, queue, queueNext) { serverId: item.ServerId }); } else { + const sortParentId = item.IsFolder ? ('items-' + item.Id) : libraryMenu.getTopParentId() + '-' + getSettingsKey(item); + const sortValues = userSettings.getSortValues(sortParentId); + playbackManager[method]({ items: [item], - startPositionTicks: startPosition + startPositionTicks: startPosition, + queryOptions: { + SortBy: sortValues.sortBy, + SortOrder: sortValues.sortOrder + } }); } } diff --git a/src/components/playback/playbackmanager.js b/src/components/playback/playbackmanager.js index 0ff00b232d..e263a72848 100644 --- a/src/components/playback/playbackmanager.js +++ b/src/components/playback/playbackmanager.js @@ -1815,7 +1815,7 @@ class PlaybackManager { // Setting this to true may cause some incorrect sorting Recursive: false, MediaTypes: 'Photo,Video', - sortBy: options.shuffle ? 'Random' : 'SortName', + SortBy: options.shuffle ? 'Random' : 'SortName', Limit: UNLIMITED_ITEMS }, queryOptions)).then(function (result) { const playbackItems = result.Items; diff --git a/src/components/shortcuts.js b/src/components/shortcuts.js index bcbf42a36c..58a7bffb05 100644 --- a/src/components/shortcuts.js +++ b/src/components/shortcuts.js @@ -206,6 +206,7 @@ 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], From d62a36a708869ca859d5e146edebb1bff1e1c78e Mon Sep 17 00:00:00 2001 From: MrK Date: Mon, 2 Oct 2023 23:25:57 +0100 Subject: [PATCH 12/31] itemContextMenu only supports folders and using parentId instead for lists Revert line change on playbackmanager.js --- src/components/itemContextMenu.js | 28 ++-------------------- src/components/playback/playbackmanager.js | 2 +- 2 files changed, 3 insertions(+), 27 deletions(-) diff --git a/src/components/itemContextMenu.js b/src/components/itemContextMenu.js index ee5518e110..89ef6b3d28 100644 --- a/src/components/itemContextMenu.js +++ b/src/components/itemContextMenu.js @@ -10,7 +10,6 @@ import { playbackManager } from './playback/playbackmanager'; import ServerConnections from './ServerConnections'; import toast from './toast/toast'; import * as userSettings from '../scripts/settings/userSettings'; -import libraryMenu from '../scripts/libraryMenu'; export function getCommands(options) { const item = options.item; @@ -569,29 +568,6 @@ function deleteSeriesTimer(apiClient, item, resolve, command) { }); } -function getSettingsKey(item) { - if (item.IsFolder) { - return 'Folder'; - } - const itemType = item.MediaType; - switch (itemType) { - case 'Movie': - case 'BoxSet': - case 'Video': - return 'movies'; - case 'Audio': - return 'songs'; - case 'MusicAlbum': - return 'musicalbums'; - case 'MusicArtist': - return 'musicartists'; - case 'MusicGenre': - return 'genres'; - case 'MusicPlaylist': - return 'musicplaylists'; - } -} - function play(item, resume, queue, queueNext) { let method = 'play'; if (queue) { @@ -614,8 +590,8 @@ function play(item, resume, queue, queueNext) { serverId: item.ServerId }); } else { - const sortParentId = item.IsFolder ? ('items-' + item.Id) : libraryMenu.getTopParentId() + '-' + getSettingsKey(item); - const sortValues = userSettings.getSortValues(sortParentId); + const sortParentId = 'items-' + (item.IsFolder ? item.Id : item.ParentId) + '-Folder'; + const sortValues = userSettings.getSortValuesLegacy(sortParentId); playbackManager[method]({ items: [item], diff --git a/src/components/playback/playbackmanager.js b/src/components/playback/playbackmanager.js index e263a72848..a546933ea5 100644 --- a/src/components/playback/playbackmanager.js +++ b/src/components/playback/playbackmanager.js @@ -1814,8 +1814,8 @@ class PlaybackManager { Filters: 'IsNotFolder', // Setting this to true may cause some incorrect sorting Recursive: false, - MediaTypes: 'Photo,Video', SortBy: options.shuffle ? 'Random' : 'SortName', + MediaTypes: 'Photo,Video', Limit: UNLIMITED_ITEMS }, queryOptions)).then(function (result) { const playbackItems = result.Items; From ad5bcb6c8d3f9fa073a6178e6c3602d52eb834d2 Mon Sep 17 00:00:00 2001 From: MrK Date: Thu, 5 Oct 2023 22:49:35 +0100 Subject: [PATCH 13/31] Removed unused method --- src/scripts/settings/userSettings.js | 12 ------------ 1 file changed, 12 deletions(-) diff --git a/src/scripts/settings/userSettings.js b/src/scripts/settings/userSettings.js index fe301463fc..f95f508e74 100644 --- a/src/scripts/settings/userSettings.js +++ b/src/scripts/settings/userSettings.js @@ -637,17 +637,6 @@ export class UserSettings { sortOrder: this.getFilter(key + '-sortorder') === 'Descending' ? 'Descending' : 'Ascending' }; } - - /** - * Gets the current sort values (JSON) - * (new views such as MoviesView will use - * this one) - * @param {string} key - Filter key. - * @return {Object} sortOptions object - */ - getSortValues(key) { - return this.loadQuerySettings(key, {}); - } } export const currentSettings = new UserSettings; @@ -699,4 +688,3 @@ export const disableCustomCss = currentSettings.disableCustomCss.bind(currentSet export const getSavedView = currentSettings.getSavedView.bind(currentSettings); export const saveViewSetting = currentSettings.saveViewSetting.bind(currentSettings); export const getSortValuesLegacy = currentSettings.getSortValuesLegacy.bind(currentSettings); -export const getSortValues = currentSettings.getSortValues.bind(currentSettings); From 7a96d7dfeb66de5c0194f2759607a336b6de681b Mon Sep 17 00:00:00 2001 From: Georges-Antoine Assi Date: Mon, 9 Oct 2023 15:13:12 -0400 Subject: [PATCH 14/31] [4857] Space play/pause music in queue view --- src/controllers/playback/queue/index.js | 42 +++++++++++++++++++++---- 1 file changed, 36 insertions(+), 6 deletions(-) diff --git a/src/controllers/playback/queue/index.js b/src/controllers/playback/queue/index.js index 602135a794..beae60dd8b 100644 --- a/src/controllers/playback/queue/index.js +++ b/src/controllers/playback/queue/index.js @@ -1,19 +1,49 @@ -import RemoteControl from '../../../components/remotecontrol/remotecontrol'; -import libraryMenu from '../../../scripts/libraryMenu'; -import '../../../elements/emby-button/emby-button'; +import RemoteControl from "../../../components/remotecontrol/remotecontrol"; +import { playbackManager } from "../../../components/playback/playbackmanager"; +import libraryMenu from "../../../scripts/libraryMenu"; +import "../../../elements/emby-button/emby-button"; export default function (view) { const remoteControl = new RemoteControl(); - remoteControl.init(view, view.querySelector('.remoteControlContent')); - view.addEventListener('viewshow', function () { + remoteControl.init(view, view.querySelector(".remoteControlContent")); + + let currentPlayer; + + function onKeyDown(e) { + if (e.keyCode === 32 && e.target.tagName !== "BUTTON") { + playbackManager.playPause(currentPlayer); + e.preventDefault(); + e.stopPropagation(); + } + } + + function releaseCurrentPlayer() { + const player = currentPlayer; + if (player) currentPlayer = null; + } + + function bindToPlayer(player) { + if (player !== currentPlayer) { + releaseCurrentPlayer(); + currentPlayer = player; + if (!player) return; + } + } + + view.addEventListener("viewshow", function () { libraryMenu.setTransparentMenu(true); + bindToPlayer(playbackManager.getCurrentPlayer()); + document.addEventListener("keydown", onKeyDown); if (remoteControl) { remoteControl.onShow(); } }); - view.addEventListener('viewbeforehide', function () { + + view.addEventListener("viewbeforehide", function () { libraryMenu.setTransparentMenu(false); + document.removeEventListener("keydown", onKeyDown); + releaseCurrentPlayer(); if (remoteControl) { remoteControl.destroy(); From bf5e52571493b8ca01b38be1cae067427e6a7e27 Mon Sep 17 00:00:00 2001 From: Georges-Antoine Assi Date: Mon, 9 Oct 2023 17:40:31 -0400 Subject: [PATCH 15/31] Fix lint issues --- src/controllers/playback/queue/index.js | 20 ++++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) diff --git a/src/controllers/playback/queue/index.js b/src/controllers/playback/queue/index.js index beae60dd8b..de2188feb3 100644 --- a/src/controllers/playback/queue/index.js +++ b/src/controllers/playback/queue/index.js @@ -1,16 +1,16 @@ -import RemoteControl from "../../../components/remotecontrol/remotecontrol"; -import { playbackManager } from "../../../components/playback/playbackmanager"; -import libraryMenu from "../../../scripts/libraryMenu"; -import "../../../elements/emby-button/emby-button"; +import RemoteControl from '../../../components/remotecontrol/remotecontrol'; +import { playbackManager } from '../../../components/playback/playbackmanager'; +import libraryMenu from '../../../scripts/libraryMenu'; +import '../../../elements/emby-button/emby-button'; export default function (view) { const remoteControl = new RemoteControl(); - remoteControl.init(view, view.querySelector(".remoteControlContent")); + remoteControl.init(view, view.querySelector('.remoteControlContent')); let currentPlayer; function onKeyDown(e) { - if (e.keyCode === 32 && e.target.tagName !== "BUTTON") { + if (e.keyCode === 32 && e.target.tagName !== 'BUTTON') { playbackManager.playPause(currentPlayer); e.preventDefault(); e.stopPropagation(); @@ -30,19 +30,19 @@ export default function (view) { } } - view.addEventListener("viewshow", function () { + view.addEventListener('viewshow', function () { libraryMenu.setTransparentMenu(true); bindToPlayer(playbackManager.getCurrentPlayer()); - document.addEventListener("keydown", onKeyDown); + document.addEventListener('keydown', onKeyDown); if (remoteControl) { remoteControl.onShow(); } }); - view.addEventListener("viewbeforehide", function () { + view.addEventListener('viewbeforehide', function () { libraryMenu.setTransparentMenu(false); - document.removeEventListener("keydown", onKeyDown); + document.removeEventListener('keydown', onKeyDown); releaseCurrentPlayer(); if (remoteControl) { From 36db09fb53996f1f43ca096a14fc09d4478112eb Mon Sep 17 00:00:00 2001 From: LJQ Date: Fri, 13 Oct 2023 01:54:42 +0800 Subject: [PATCH 16/31] Fixed year appearing as - in the series page when the years are the same. --- src/components/mediainfo/mediainfo.js | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/components/mediainfo/mediainfo.js b/src/components/mediainfo/mediainfo.js index ec908d0d0f..f0f9dd9a76 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); From ec51592cde36fa3a4b8b349a04bc5f59edc14865 Mon Sep 17 00:00:00 2001 From: grafixeyehero Date: Fri, 13 Oct 2023 02:43:50 +0300 Subject: [PATCH 17/31] Remove unused Code --- src/components/filtermenu/filtermenu.js | 49 ++++++------------- src/components/sortmenu/sortmenu.js | 21 +++----- src/components/viewSettings/viewSettings.js | 26 +++------- .../viewSettings/viewSettings.template.html | 7 --- 4 files changed, 28 insertions(+), 75 deletions(-) diff --git a/src/components/filtermenu/filtermenu.js b/src/components/filtermenu/filtermenu.js index 5c78a6f4a4..1423e5ac54 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/sortmenu/sortmenu.js b/src/components/sortmenu/sortmenu.js index 65aef222e9..39d42362bf 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/viewSettings/viewSettings.js b/src/components/viewSettings/viewSettings.js index f5cb864206..a214f13674 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 ddee9536ba..df9767fb75 100644 --- a/src/components/viewSettings/viewSettings.template.html +++ b/src/components/viewSettings/viewSettings.template.html @@ -35,13 +35,6 @@ ${GroupBySeries} - -
- -
From a01bfcef330e6bec0f36f552ddccce08096f9e4c Mon Sep 17 00:00:00 2001 From: LJQ Date: Fri, 13 Oct 2023 12:21:32 +0800 Subject: [PATCH 18/31] Change from 5 tabs to 20 spaces --- src/components/mediainfo/mediainfo.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/components/mediainfo/mediainfo.js b/src/components/mediainfo/mediainfo.js index f0f9dd9a76..a6bfcf7153 100644 --- a/src/components/mediainfo/mediainfo.js +++ b/src/components/mediainfo/mediainfo.js @@ -183,7 +183,7 @@ export function getMediaInfoHtml(item, options = {}) { if (item.EndDate) { try { const endYear = datetime.toLocaleString(datetime.parseISO8601Date(item.EndDate).getFullYear(), { useGrouping: false }); - /* At this point, text will contain only the start year */ + /* At this point, text will contain only the start year */ if (endYear !== text) { text += ` - ${endYear}`; } From fcf773d2dcce798345cdd37ed9d621948740d1ef Mon Sep 17 00:00:00 2001 From: Brad Beattie Date: Mon, 16 Oct 2023 11:21:56 -0700 Subject: [PATCH 19/31] Movies sorted primarily by PremiereDate --- src/scripts/itemsByName.js | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/scripts/itemsByName.js b/src/scripts/itemsByName.js index b0ead111d2..6c15114773 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', + SortBy: 'PremiereDate,ProductionYear,Sortname' }, { shape: 'overflowPortrait', showTitle: true, From b33d927c08081090c106dbdcdc6c3b23613c8e1a Mon Sep 17 00:00:00 2001 From: MrK Date: Mon, 16 Oct 2023 21:01:23 +0100 Subject: [PATCH 20/31] Using lodash implementation to merge playback queries --- src/components/playback/playbackmanager.js | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/src/components/playback/playbackmanager.js b/src/components/playback/playbackmanager.js index a546933ea5..806db30e3f 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,10 +146,7 @@ function createStreamInfoFromUrlItem(item) { } function mergePlaybackQueries(obj1, obj2) { - const query = obj1; - for (const key in obj2) { - if (obj2[key] !== undefined) query[key] = obj2[key]; - } + const query = merge({}, obj1, obj2); const filters = query.Filters ? query.Filters.split(',') : []; if (filters.indexOf('IsNotFolder') === -1) { From 04040e5e5917256f0d5b5ec60db389ff919c9389 Mon Sep 17 00:00:00 2001 From: Brad Beattie Date: Mon, 16 Oct 2023 13:06:35 -0700 Subject: [PATCH 21/31] Update src/scripts/itemsByName.js Co-authored-by: Niels van Velzen --- src/scripts/itemsByName.js | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/scripts/itemsByName.js b/src/scripts/itemsByName.js index 6c15114773..2e81b4ea1a 100644 --- a/src/scripts/itemsByName.js +++ b/src/scripts/itemsByName.js @@ -125,8 +125,8 @@ function renderSection(item, element, type) { ArtistIds: '', AlbumArtistIds: '', Limit: 10, - SortOrder: 'Descending', - SortBy: 'PremiereDate,ProductionYear,Sortname' + SortOrder: 'Descending,Desending,Ascending', + SortBy: 'PremiereDate,ProductionYear,SortName' }, { shape: 'overflowPortrait', showTitle: true, From 5660aa32929538efc7f8c400d5bc37776e351763 Mon Sep 17 00:00:00 2001 From: Brad Beattie Date: Mon, 16 Oct 2023 13:07:00 -0700 Subject: [PATCH 22/31] Update itemsByName.js --- src/scripts/itemsByName.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/scripts/itemsByName.js b/src/scripts/itemsByName.js index 2e81b4ea1a..11a3cb169e 100644 --- a/src/scripts/itemsByName.js +++ b/src/scripts/itemsByName.js @@ -195,7 +195,7 @@ function renderSection(item, element, type) { PersonTypes: '', ArtistIds: '', AlbumArtistIds: '', - SortOrder: 'Descending', + SortOrder: 'Descending,Desending,Ascending', SortBy: 'PremiereDate,ProductionYear,Sortname' }, { shape: 'overflowSquare', From 68362f4a1f7064a2ab5c17836116cabc46efb0e1 Mon Sep 17 00:00:00 2001 From: Georges-Antoine Assi Date: Mon, 16 Oct 2023 16:21:35 -0400 Subject: [PATCH 23/31] Remove line that returns early for no reason --- src/controllers/playback/queue/index.js | 1 - 1 file changed, 1 deletion(-) diff --git a/src/controllers/playback/queue/index.js b/src/controllers/playback/queue/index.js index de2188feb3..7741b87dde 100644 --- a/src/controllers/playback/queue/index.js +++ b/src/controllers/playback/queue/index.js @@ -26,7 +26,6 @@ export default function (view) { if (player !== currentPlayer) { releaseCurrentPlayer(); currentPlayer = player; - if (!player) return; } } From 7f7b4118e3b831e04f367fb0316e3f523d019c7e Mon Sep 17 00:00:00 2001 From: Andrejs Date: Tue, 17 Oct 2023 17:06:01 +0000 Subject: [PATCH 24/31] Translated using Weblate (Latvian) Translation: Jellyfin/Jellyfin Web Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-web/lv/ --- src/strings/lv.json | 394 ++++++++++++++++++++++++++++---------------- 1 file changed, 256 insertions(+), 138 deletions(-) diff --git a/src/strings/lv.json b/src/strings/lv.json index a23cb8adc1..b57557d669 100644 --- a/src/strings/lv.json +++ b/src/strings/lv.json @@ -13,7 +13,7 @@ "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.", @@ -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", @@ -74,9 +74,9 @@ "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", @@ -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", @@ -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", @@ -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": "Sēriju statuss", + "HeaderSeriesOptions": "Sēriju 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": "Bibliotēku piekļuves", "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", @@ -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", @@ -341,7 +341,7 @@ "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,7 +392,7 @@ "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'", + "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 mājas ekrānā", "Display": "Displejs", "Disc": "Disks", @@ -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", @@ -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", @@ -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", @@ -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", @@ -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.", @@ -737,47 +737,47 @@ "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", + "HeaderTranscodingProfileHelp": "Pievienojiet pārkodēš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", + "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", @@ -810,7 +810,7 @@ "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", @@ -826,7 +826,7 @@ "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.", @@ -841,7 +841,7 @@ "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.", "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.", @@ -855,7 +855,7 @@ "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", @@ -870,8 +870,8 @@ "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", @@ -890,9 +890,9 @@ "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", + "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", @@ -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 sērijas", + "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.", + "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": "Izveido pielāgotu profilu priekš jaunas ierīces, vai pārraksti sistēmas profilu.", "ColorTransfer": "Krāsu pārsūtīšana", "ClientSettings": "Klientu Iestatījumi", "ButtonTogglePlaylist": "Atskaņošanas saraksts", - "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,13 +984,13 @@ "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", @@ -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", + "OptionAllowVideoPlaybackTranscoding": "Atļaut video atskaņošanu, kas prasa transkodēšanu", "OptionAllowVideoPlaybackRemuxing": "Atļaut video atskaņošanu, kas prasa pārveidošanu bez pārkodēšanas", "OptionAllowUserToManageServer": "Atļaut šim lietotājam pārvaldīt serveri", - "OptionAllowSyncTranscoding": "Atļaut satura lejupielādi un sinhronizēšanu, kas prasa trans-kodēšanu", + "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", + "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", @@ -1073,12 +1073,12 @@ "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.", "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", @@ -1217,8 +1217,8 @@ "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.", @@ -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", @@ -1336,7 +1336,7 @@ "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", @@ -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?", @@ -1484,7 +1484,7 @@ "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.", "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.", @@ -1535,9 +1535,127 @@ "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": "Sēriju 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 sēriju attēlus", + "Whitelist": "Baltais saraksts", + "LogLevel.Warning": "Brīdinājums", + "SeriesSettings": "Sēriju 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": "Sērijas atceltas.", + "SmartSubtitlesHelp": "Ja audioieraksts ir svešvalodā, tiks ielādēti subtitri, kas atbilst valodas preferencēm.", + "SubtitleOffset": "Subtitru nobīde" } From 43c007207ef3fd80e70acba1af86c2d320486b11 Mon Sep 17 00:00:00 2001 From: Andrejs Date: Tue, 17 Oct 2023 19:24:44 +0000 Subject: [PATCH 25/31] Translated using Weblate (Latvian) Translation: Jellyfin/Jellyfin Web Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-web/lv/ --- src/strings/lv.json | 30 +++++++++++++++--------------- 1 file changed, 15 insertions(+), 15 deletions(-) diff --git a/src/strings/lv.json b/src/strings/lv.json index b57557d669..43c675f099 100644 --- a/src/strings/lv.json +++ b/src/strings/lv.json @@ -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", @@ -232,8 +232,8 @@ "HeaderSortBy": "Kārtot pēc", "HeaderSetupLibrary": "Uzstādīt multivides bibliotēkas", "HeaderServerSettings": "Servera iestatījumi", - "HeaderSeriesStatus": "Sēriju statuss", - "HeaderSeriesOptions": "Sēriju opcijas", + "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", @@ -334,7 +334,7 @@ "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", @@ -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", @@ -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", @@ -642,7 +642,7 @@ "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}", @@ -932,7 +932,7 @@ "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ērijas", + "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", @@ -1232,7 +1232,7 @@ "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.", @@ -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", @@ -1590,7 +1590,7 @@ "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": "Sēriju ieraksts ieplānots.", + "SeriesRecordingScheduled": "Seriāla ieraksts ieplānots.", "Shuffle": "Sajaukt secību", "Sort": "Kārtot", "SortByValue": "Kārtot pēc {0}", @@ -1608,10 +1608,10 @@ "StopRecording": "Apturēt ierakstu", "Sports": "Sports", "YoutubeBadRequest": "Nepareizs pieprasījums.", - "ShowParentImages": "Rādīt sēriju attēlus", + "ShowParentImages": "Rādīt seriāla attēlus", "Whitelist": "Baltais saraksts", "LogLevel.Warning": "Brīdinājums", - "SeriesSettings": "Sēriju iestatījumi", + "SeriesSettings": "Seriāla iestatījumi", "ShowAdvancedSettings": "Rādīt papildu iestatījumus", "SubtitleCyan": "Ciāns", "LabelVideoInfo": "Video info", @@ -1655,7 +1655,7 @@ "EnableEnhancedNvdecDecoder": "Iespējot uzlabotu NVDEC dekoderi", "Sample": "Paraugs", "Saturday": "Sestdiena", - "SeriesCancelled": "Sērijas atceltas.", + "SeriesCancelled": "Seriāls atcelts.", "SmartSubtitlesHelp": "Ja audioieraksts ir svešvalodā, tiks ielādēti subtitri, kas atbilst valodas preferencēm.", "SubtitleOffset": "Subtitru nobīde" } From 1096e5cab6ab996c9e11edeb4faa3766610f81f2 Mon Sep 17 00:00:00 2001 From: Andrejs Date: Tue, 17 Oct 2023 19:27:59 +0000 Subject: [PATCH 26/31] Translated using Weblate (Latvian) Translation: Jellyfin/Jellyfin Web Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-web/lv/ --- src/strings/lv.json | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/strings/lv.json b/src/strings/lv.json index 43c675f099..d7dc57af11 100644 --- a/src/strings/lv.json +++ b/src/strings/lv.json @@ -895,12 +895,12 @@ "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", From d97fc25360d949caf7a4bbd436a74d6a3a40987b Mon Sep 17 00:00:00 2001 From: Andrejs Date: Tue, 17 Oct 2023 20:35:51 +0000 Subject: [PATCH 27/31] Translated using Weblate (Latvian) Translation: Jellyfin/Jellyfin Web Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-web/lv/ --- src/strings/lv.json | 133 ++++++++++++++++++++++---------------------- 1 file changed, 67 insertions(+), 66 deletions(-) diff --git a/src/strings/lv.json b/src/strings/lv.json index d7dc57af11..715de7fd06 100644 --- a/src/strings/lv.json +++ b/src/strings/lv.json @@ -16,11 +16,11 @@ "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.", @@ -67,8 +67,8 @@ "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", @@ -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", @@ -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", @@ -270,7 +270,7 @@ "HeaderLibrarySettings": "Bibliotēku iestatījumi", "HeaderLibraryOrder": "Bibliotēku kārtojums", "HeaderLibraryFolders": "Bibliotēku mapes", - "HeaderLibraryAccess": "Bibliotēku piekļuves", + "HeaderLibraryAccess": "Piekļuve bibliotēkām", "HeaderLibraries": "Bibliotēkas", "HeaderLatestRecordings": "Nesen pievienotie ieraksti", "HeaderLatestMusic": "Jaunākā mūzika", @@ -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", @@ -393,7 +393,7 @@ "DisplayModeHelp": "Izvēlies izkārtojuma veidu, kuru tu gribi priekš šī interfeisa.", "DoNotRecord": "Neierakstīt", "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 mājas ekrānā", + "DisplayInMyMedia": "Rādīt sākumekrānā", "Display": "Displejs", "Disc": "Disks", "Directors": "Režisori", @@ -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", @@ -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", @@ -645,7 +645,7 @@ "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", @@ -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,9 +728,9 @@ "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", @@ -742,8 +742,8 @@ "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": "Pievienojiet pārkodēšanas profilus, lai norādītu, kuri formāti jāizmanto, kad nepieciešama transkodēšana.", + "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", @@ -764,7 +764,7 @@ "HeaderPlayOn": "Atskaņot uz", "HeaderParentalRatings": "Vecāku vērtējumi", "HeaderOtherItems": "Citi vienumi", - "HeaderOnNow": "Tagad", + "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": "Ievadiet vienu vai vairākus meklēšanas kritērijus. Noņemiet kritērijus, lai paplašinātu meklēšanas rezultātus.", @@ -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?", @@ -817,9 +817,9 @@ "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", @@ -839,7 +839,7 @@ "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", "HeaderBranding": "Zīmols", @@ -849,7 +849,7 @@ "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.", @@ -863,7 +863,7 @@ "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", @@ -889,7 +889,7 @@ "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", + "LabelTranscodingThreadCount": "Transkodēšanas pavedienu daudzums", "LabelTranscodes": "Transkodējumi", "LabelTitle": "Tituls", "LabelSaveLocalMetadata": "Saglabāt mākslu multivides mapēs", @@ -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", @@ -942,7 +942,7 @@ "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 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": "Izveido pielāgotu profilu priekš jaunas ierīces, vai pārraksti sistēmas profilu.", + "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", @@ -996,7 +996,7 @@ "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", @@ -1012,14 +1012,14 @@ "OptionCommunityRating": "Kopienas Vērtējums", "OptionCaptionInfoExSamsung": "CaptionInfoEx (Samsung)", "OptionAllowVideoPlaybackTranscoding": "Atļaut video atskaņošanu, kas prasa transkodēšanu", - "OptionAllowVideoPlaybackRemuxing": "Atļaut video atskaņošanu, kas prasa pārveidošanu bez pārkodēšanas", + "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 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", + "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", @@ -1070,7 +1070,7 @@ "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", @@ -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", @@ -1220,12 +1220,12 @@ "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.", @@ -1235,7 +1235,7 @@ "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", @@ -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", @@ -1342,7 +1342,7 @@ "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.", @@ -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", @@ -1482,7 +1482,7 @@ "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": "Sēriju statuss", "LabelDate": "Datums", @@ -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}", @@ -1657,5 +1657,6 @@ "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" + "SubtitleOffset": "Subtitru nobīde", + "SystemDlnaProfilesHelp": "Sistēmas profili ir tikai lasāmi. Izmaiņas sistēmas profilā tiks saglabātas jaunajā pielāgotajā profilā." } From da602e480d58e358d8c628c04e1ee765d0bfcde7 Mon Sep 17 00:00:00 2001 From: Andrijan Jovanovski Date: Tue, 17 Oct 2023 22:26:38 +0000 Subject: [PATCH 28/31] Translated using Weblate (Macedonian) Translation: Jellyfin/Jellyfin Web Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-web/mk/ --- src/strings/mk.json | 86 +++++++++++++++++++++++++++------------------ 1 file changed, 51 insertions(+), 35 deletions(-) diff --git a/src/strings/mk.json b/src/strings/mk.json index 8b33686e2a..726bfc6707 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,31 +96,31 @@ "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": "Пристапот е моментално органичен. Ве молиме пробајте подоцна.", @@ -197,5 +197,21 @@ "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 преводи." } From b3558d26cd062176ef67146a80e8bfcdd1f3fddc Mon Sep 17 00:00:00 2001 From: kasundigital Date: Tue, 17 Oct 2023 21:17:24 +0000 Subject: [PATCH 29/31] Translated using Weblate (Sinhala) Translation: Jellyfin/Jellyfin Web Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-web/si/ --- src/strings/si.json | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/src/strings/si.json b/src/strings/si.json index 6a329b5cc5..24499c28b1 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 වෙත යැවීමෙන් පසු පැරණි කොටස් මකන්න. මෙය සම්පූර්ණ ට්‍රාන්ස්කෝඩ් ගොනුව තැටියේ ගබඩා කිරීම වළක්වයි. ක්‍රියා කරන්නේ තෙරපුම සක්‍රීය කර පමණි. ඔබ පසුධාවන ගැටළු අත්විඳින්නේ නම් මෙය අක්‍රිය කරන්න." } From e6ea5f1d0e7bb712ce936e02696deff32e2d33fc Mon Sep 17 00:00:00 2001 From: edgar-vincent Date: Wed, 18 Oct 2023 18:08:05 +0000 Subject: [PATCH 30/31] Translated using Weblate (French) Translation: Jellyfin/Jellyfin Web Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-web/fr/ --- src/strings/fr.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/strings/fr.json b/src/strings/fr.json index 242cdd9d73..7bdae6ff68 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", From edb8c0cc48652899b0cc6256cd356948b26a0014 Mon Sep 17 00:00:00 2001 From: Andrijan Jovanovski Date: Wed, 18 Oct 2023 17:45:16 +0000 Subject: [PATCH 31/31] Translated using Weblate (Macedonian) Translation: Jellyfin/Jellyfin Web Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-web/mk/ --- src/strings/mk.json | 141 +++++++++++++++++++++++++++++++++++--------- 1 file changed, 114 insertions(+), 27 deletions(-) diff --git a/src/strings/mk.json b/src/strings/mk.json index 726bfc6707..074330606d 100644 --- a/src/strings/mk.json +++ b/src/strings/mk.json @@ -124,31 +124,31 @@ "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}", @@ -213,5 +213,92 @@ "LabelSegmentKeepSeconds": "Време за чување на сегментите", "LabelSegmentKeepSecondsHelp": "Време во секунди за кое сегментите треба да се чуваат пред да бидат препишани. Мора да биде подолго од „Пригуши после“. Работи само ако е овозможено бришењето сегменти.", "Backdrops": "Позадини", - "BurnSubtitlesHelp": "Определете дали серверот треба да вградува преводи додека транскодирате видеа. Избегнувањето на ова во голема мера ќе ги подобри перформансите. Изберете Автоматски за снимање на формати базирани на слики (VobSub, PGS, SUB, IDX, итн.) и одредени ASS или SSA преводи." + "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 заштита нема да бидат внесени." }