';
+ msg += result.PinFile;
+ msg += ' ';
+ Dashboard.alert({
+ message: msg,
+ title: globalize.translate('ButtonForgotPassword'),
+ callback: function () {
+ navigate('forgotpasswordpin');
+ }
+ });
}
}
});
diff --git a/src/strings/en-us.json b/src/strings/en-us.json
index 9f6e69f1c..62d49a750 100644
--- a/src/strings/en-us.json
+++ b/src/strings/en-us.json
@@ -1127,6 +1127,7 @@
"MessageEnablingOptionLongerScans": "Enabling this option may result in significantly longer library scans.",
"MessageFileReadError": "There was an error reading the file. Please try again.",
"MessageForgotPasswordFileCreated": "The following file has been created on your server and contains instructions on how to proceed",
+ "MessageForgotPasswordPinReset": "Enter PIN here to finish Password reset",
"MessageForgotPasswordInNetworkRequired": "Please try again within your home network to initiate the password reset process.",
"MessageGetInstalledPluginsError": "An error occurred while getting the list of currently installed plugins.",
"MessageImageFileTypeAllowed": "Only JPEG and PNG files are supported.",
diff --git a/src/strings/es.json b/src/strings/es.json
index 5870de605..803721341 100644
--- a/src/strings/es.json
+++ b/src/strings/es.json
@@ -714,6 +714,7 @@
"MessageEnablingOptionLongerScans": "Activar esta opción implicará escaneos de la biblioteca más largos.",
"MessageFileReadError": "Ha habido un error leyendo el fichero. Por favor, inténtalo más tarde.",
"MessageForgotPasswordFileCreated": "Se ha creado el siguiente archivo en tu servidor y contiene instrucciones de cómo proceder",
+ "MessageForgotPasswordPinReset": "Introdice el PIN aqui para finalizar el reseteo de contraseña",
"MessageForgotPasswordInNetworkRequired": "Por favor, inténtalo de nuevo desde tu red de casa para iniciar el proceso de restablecimiento de la contraseña.",
"MessageInvalidForgotPasswordPin": "Has introducido un código PIN inválido o expirado. Por favor, inténtalo de nuevo.",
"MessageInvalidUser": "Usuario o contraseña inválidos. Por favor, inténtalo otra vez.",
From 5bcbcfbe126a2cc303e08de685eb6bd23463a6fa Mon Sep 17 00:00:00 2001
From: Bill Thornton
Date: Tue, 22 Apr 2025 08:26:43 -0400
Subject: [PATCH 075/645] Move server connections to lib
---
src/apps/dashboard/controllers/dashboard.js | 2 +-
src/apps/dashboard/routes/branding/index.tsx | 2 +-
.../dashboard/routes/libraries/display.tsx | 2 +-
.../dashboard/routes/libraries/metadata.tsx | 2 +-
src/apps/dashboard/routes/libraries/nfo.tsx | 2 +-
src/apps/dashboard/routes/logs/index.tsx | 2 +-
src/apps/dashboard/routes/playback/resume.tsx | 2 +-
.../dashboard/routes/playback/streaming.tsx | 2 +-
.../dashboard/routes/playback/trickplay.tsx | 2 +-
src/apps/dashboard/routes/settings/index.tsx | 2 +-
.../routes/users/parentalcontrol.tsx | 2 +-
.../stable/features/playback/utils/image.ts | 2 +-
.../playback/utils/mediaSegmentManager.ts | 2 +-
src/apps/wizard/controllers/finish/index.js | 2 +-
src/apps/wizard/controllers/library.js | 2 +-
src/apps/wizard/controllers/remote/index.js | 2 +-
src/apps/wizard/controllers/settings/index.js | 2 +-
src/apps/wizard/controllers/start/index.js | 2 +-
src/apps/wizard/controllers/user/index.js | 2 +-
src/components/ConnectionRequired.tsx | 2 +-
src/components/ServerContentPage.tsx | 6 +++---
src/components/activitylog.js | 2 +-
src/components/backdrop/backdrop.js | 2 +-
src/components/cardbuilder/cardBuilder.js | 2 +-
.../cardbuilder/chaptercardbuilder.js | 3 ++-
src/components/channelMapper/channelMapper.js | 2 +-
.../collectionEditor/collectionEditor.js | 2 +-
.../displaySettings/displaySettings.js | 2 +-
src/components/filterdialog/filterdialog.js | 2 +-
src/components/filtermenu/filtermenu.js | 2 +-
src/components/groupedcards.js | 2 +-
src/components/guide/guide.js | 2 +-
.../homeScreenSettings/homeScreenSettings.js | 2 +-
.../homesections/sections/activeRecordings.ts | 2 +-
.../homesections/sections/liveTv.ts | 2 +-
.../homesections/sections/nextUp.ts | 2 +-
.../homesections/sections/recentlyAdded.ts | 4 ++--
.../homesections/sections/resume.ts | 2 +-
.../imageDownloader/imageDownloader.js | 2 +-
src/components/imageUploader/imageUploader.js | 3 ++-
src/components/imageeditor/imageeditor.js | 2 +-
src/components/itemContextMenu.js | 2 +-
src/components/itemHelper.js | 2 +-
src/components/itemMediaInfo/itemMediaInfo.js | 2 +-
.../itemidentifier/itemidentifier.js | 2 +-
src/components/listview/listview.js | 2 +-
src/components/lyricseditor/lyricseditor.js | 2 +-
.../lyricsuploader/lyricsuploader.js | 2 +-
.../metadataEditor/metadataEditor.js | 3 ++-
src/components/multiSelect/multiSelect.js | 2 +-
src/components/notifications/notifications.js | 2 +-
src/components/nowPlayingBar/nowPlayingBar.js | 2 +-
.../playback/displayMirrorManager.ts | 2 +-
src/components/playback/playbackmanager.js | 4 ++--
src/components/playback/playersettingsmenu.js | 4 ++--
.../playbackSettings/playbackSettings.js | 2 +-
src/components/playerstats/playerstats.js | 3 ++-
.../playlisteditor/playlisteditor.ts | 2 +-
src/components/pluginManager.js | 2 +-
.../recordingcreator/recordingbutton.js | 3 ++-
.../recordingcreator/recordingcreator.js | 3 ++-
.../recordingcreator/recordingeditor.js | 3 ++-
.../recordingcreator/recordingfields.js | 3 ++-
.../recordingcreator/recordinghelper.js | 4 ++--
.../recordingcreator/seriesrecordingeditor.js | 3 ++-
src/components/refreshdialog/refreshdialog.js | 3 ++-
src/components/remotecontrol/remotecontrol.js | 3 ++-
src/components/router/appRouter.js | 4 ++--
src/components/shortcuts.js | 2 +-
src/components/slideshow/slideshow.js | 3 ++-
.../subtitleeditor/subtitleeditor.js | 3 ++-
.../subtitlesettings/subtitlesettings.js | 3 ++-
.../subtitleuploader/subtitleuploader.js | 3 ++-
src/components/themeMediaPlayer.js | 2 +-
src/components/upnextdialog/upnextdialog.js | 3 ++-
.../userdatabuttons/userdatabuttons.js | 3 ++-
src/controllers/favorites.js | 2 +-
src/controllers/hometab.js | 3 ++-
src/controllers/itemDetails/index.js | 5 ++---
src/controllers/list.js | 2 +-
src/controllers/lyrics.js | 2 +-
src/controllers/playback/video/index.js | 2 +-
src/controllers/session/addServer/index.js | 15 +++++++-------
src/controllers/session/login/index.js | 5 +++--
src/controllers/session/selectServer/index.js | 4 ++--
.../emby-itemscontainer.js | 7 ++++---
.../emby-playstatebutton.js | 2 +-
.../emby-ratingbutton/emby-ratingbutton.js | 2 +-
src/hooks/useApi.tsx | 6 +++---
src/index.jsx | 5 ++---
.../jellyfin-apiclient}/ServerConnections.js | 10 +++++-----
src/plugins/backdropScreensaver/plugin.js | 6 +++---
src/plugins/bookPlayer/plugin.js | 2 +-
src/plugins/chromecastPlayer/plugin.js | 2 +-
src/plugins/comicsPlayer/plugin.js | 2 +-
src/plugins/htmlVideoPlayer/plugin.js | 2 +-
src/plugins/pdfPlayer/plugin.js | 2 +-
src/plugins/photoPlayer/plugin.js | 4 ++--
src/plugins/playAccessValidation/plugin.js | 8 ++++----
src/plugins/sessionPlayer/plugin.js | 2 +-
src/plugins/syncPlay/plugin.ts | 2 +-
src/plugins/syncPlay/ui/groupSelectionMenu.js | 2 +-
src/scripts/autoBackdrops.js | 2 +-
src/scripts/autoThemes.js | 6 +++---
src/scripts/autocast.js | 6 +++---
src/scripts/deleteHelper.js | 11 +++++-----
src/scripts/itemsByName.js | 13 ++++++------
src/scripts/libraryMenu.js | 2 +-
src/scripts/playlistViewer.js | 2 +-
src/scripts/screensavermanager.js | 11 +++++-----
src/scripts/serverNotifications.js | 20 +++++++++----------
src/scripts/taskbutton.js | 10 +++++-----
src/utils/dashboard.js | 2 +-
113 files changed, 198 insertions(+), 176 deletions(-)
rename src/{components => lib/jellyfin-apiclient}/ServerConnections.js (94%)
diff --git a/src/apps/dashboard/controllers/dashboard.js b/src/apps/dashboard/controllers/dashboard.js
index 334fb7e3e..8b6167182 100644
--- a/src/apps/dashboard/controllers/dashboard.js
+++ b/src/apps/dashboard/controllers/dashboard.js
@@ -17,12 +17,12 @@ import imageHelper from 'utils/image';
import indicators from 'components/indicators/indicators';
import taskButton from 'scripts/taskbutton';
import Dashboard from 'utils/dashboard';
-import ServerConnections from 'components/ServerConnections';
import alert from 'components/alert';
import confirm from 'components/confirm/confirm';
import { getDefaultBackgroundClass } from 'components/cardbuilder/cardBuilderUtils';
import { getSystemInfoQuery } from 'hooks/useSystemInfo';
+import ServerConnections from 'lib/jellyfin-apiclient/ServerConnections';
import { toApi } from 'utils/jellyfin-apiclient/compat';
import { queryClient } from 'utils/query/queryClient';
diff --git a/src/apps/dashboard/routes/branding/index.tsx b/src/apps/dashboard/routes/branding/index.tsx
index 3d2d8d2c7..e124aba01 100644
--- a/src/apps/dashboard/routes/branding/index.tsx
+++ b/src/apps/dashboard/routes/branding/index.tsx
@@ -18,10 +18,10 @@ import { getBrandingOptionsQuery, QUERY_KEY, useBrandingOptions } from 'apps/das
import Loading from 'components/loading/LoadingComponent';
import Image from 'components/Image';
import Page from 'components/Page';
-import ServerConnections from 'components/ServerConnections';
import { SPLASHSCREEN_URL } from 'constants/branding';
import { useApi } from 'hooks/useApi';
import globalize from 'lib/globalize';
+import ServerConnections from 'lib/jellyfin-apiclient/ServerConnections';
import { queryClient } from 'utils/query/queryClient';
import { ActionData } from 'types/actionData';
diff --git a/src/apps/dashboard/routes/libraries/display.tsx b/src/apps/dashboard/routes/libraries/display.tsx
index d83f8d588..8dd377e94 100644
--- a/src/apps/dashboard/routes/libraries/display.tsx
+++ b/src/apps/dashboard/routes/libraries/display.tsx
@@ -12,11 +12,11 @@ import TextField from '@mui/material/TextField';
import Typography from '@mui/material/Typography';
import Loading from 'components/loading/LoadingComponent';
import Page from 'components/Page';
-import ServerConnections from 'components/ServerConnections';
import { getConfigurationApi } from '@jellyfin/sdk/lib/utils/api/configuration-api';
import { QUERY_KEY as CONFIG_QUERY_KEY, useConfiguration } from 'hooks/useConfiguration';
import { QUERY_KEY as NAMED_CONFIG_QUERY_KEY, NamedConfiguration, useNamedConfiguration } from 'hooks/useNamedConfiguration';
import globalize from 'lib/globalize';
+import ServerConnections from 'lib/jellyfin-apiclient/ServerConnections';
import { type ActionFunctionArgs, Form, useActionData, useNavigation } from 'react-router-dom';
import { ActionData } from 'types/actionData';
import { queryClient } from 'utils/query/queryClient';
diff --git a/src/apps/dashboard/routes/libraries/metadata.tsx b/src/apps/dashboard/routes/libraries/metadata.tsx
index 4ac74a960..ae611329b 100644
--- a/src/apps/dashboard/routes/libraries/metadata.tsx
+++ b/src/apps/dashboard/routes/libraries/metadata.tsx
@@ -12,9 +12,9 @@ import { useCultures } from 'apps/dashboard/features/libraries/api/useCultures';
import { getImageResolutionOptions } from 'apps/dashboard/features/libraries/utils/metadataOptions';
import Loading from 'components/loading/LoadingComponent';
import Page from 'components/Page';
-import ServerConnections from 'components/ServerConnections';
import { QUERY_KEY, useConfiguration } from 'hooks/useConfiguration';
import globalize from 'lib/globalize';
+import ServerConnections from 'lib/jellyfin-apiclient/ServerConnections';
import React from 'react';
import { type ActionFunctionArgs, Form, useActionData, useNavigation } from 'react-router-dom';
import { ActionData } from 'types/actionData';
diff --git a/src/apps/dashboard/routes/libraries/nfo.tsx b/src/apps/dashboard/routes/libraries/nfo.tsx
index 8d42be829..65d3bbe10 100644
--- a/src/apps/dashboard/routes/libraries/nfo.tsx
+++ b/src/apps/dashboard/routes/libraries/nfo.tsx
@@ -12,11 +12,11 @@ import TextField from '@mui/material/TextField';
import Typography from '@mui/material/Typography';
import Loading from 'components/loading/LoadingComponent';
import Page from 'components/Page';
-import ServerConnections from 'components/ServerConnections';
import SimpleAlert from 'components/SimpleAlert';
import { QUERY_KEY, useNamedConfiguration } from 'hooks/useNamedConfiguration';
import { useUsers } from 'hooks/useUsers';
import globalize from 'lib/globalize';
+import ServerConnections from 'lib/jellyfin-apiclient/ServerConnections';
import React, { useCallback, useState } from 'react';
import { type ActionFunctionArgs, Form, useActionData, useNavigation } from 'react-router-dom';
import { ActionData } from 'types/actionData';
diff --git a/src/apps/dashboard/routes/logs/index.tsx b/src/apps/dashboard/routes/logs/index.tsx
index 84af1b244..68027807f 100644
--- a/src/apps/dashboard/routes/logs/index.tsx
+++ b/src/apps/dashboard/routes/logs/index.tsx
@@ -3,6 +3,7 @@ import { getConfigurationApi } from '@jellyfin/sdk/lib/utils/api/configuration-a
import Loading from 'components/loading/LoadingComponent';
import Page from 'components/Page';
import globalize from 'lib/globalize';
+import ServerConnections from 'lib/jellyfin-apiclient/ServerConnections';
import Alert from '@mui/material/Alert';
import Box from '@mui/material/Box';
import Button from '@mui/material/Button';
@@ -12,7 +13,6 @@ import Checkbox from '@mui/material/Checkbox';
import TextField from '@mui/material/TextField';
import Typography from '@mui/material/Typography';
import { type ActionFunctionArgs, Form, useActionData, useNavigation } from 'react-router-dom';
-import ServerConnections from 'components/ServerConnections';
import { useServerLogs } from 'apps/dashboard/features/logs/api/useServerLogs';
import { useConfiguration } from 'hooks/useConfiguration';
import type { ServerConfiguration } from '@jellyfin/sdk/lib/generated-client/models/server-configuration';
diff --git a/src/apps/dashboard/routes/playback/resume.tsx b/src/apps/dashboard/routes/playback/resume.tsx
index f711ac82d..520c15eaf 100644
--- a/src/apps/dashboard/routes/playback/resume.tsx
+++ b/src/apps/dashboard/routes/playback/resume.tsx
@@ -1,6 +1,7 @@
import React from 'react';
import Page from 'components/Page';
import globalize from 'lib/globalize';
+import ServerConnections from 'lib/jellyfin-apiclient/ServerConnections';
import Alert from '@mui/material/Alert';
import Box from '@mui/material/Box';
import Button from '@mui/material/Button';
@@ -11,7 +12,6 @@ import { type ActionFunctionArgs, Form, useActionData, useNavigation } from 'rea
import { ActionData } from 'types/actionData';
import { QUERY_KEY, useConfiguration } from 'hooks/useConfiguration';
import Loading from 'components/loading/LoadingComponent';
-import ServerConnections from 'components/ServerConnections';
import { getConfigurationApi } from '@jellyfin/sdk/lib/utils/api/configuration-api';
import { queryClient } from 'utils/query/queryClient';
diff --git a/src/apps/dashboard/routes/playback/streaming.tsx b/src/apps/dashboard/routes/playback/streaming.tsx
index fdb75b834..d3d5a3f56 100644
--- a/src/apps/dashboard/routes/playback/streaming.tsx
+++ b/src/apps/dashboard/routes/playback/streaming.tsx
@@ -1,6 +1,7 @@
import React from 'react';
import Page from 'components/Page';
import globalize from 'lib/globalize';
+import ServerConnections from 'lib/jellyfin-apiclient/ServerConnections';
import Alert from '@mui/material/Alert';
import Box from '@mui/material/Box';
import Button from '@mui/material/Button';
@@ -8,7 +9,6 @@ import Stack from '@mui/material/Stack';
import TextField from '@mui/material/TextField';
import Typography from '@mui/material/Typography';
import { type ActionFunctionArgs, Form, useActionData, useNavigation } from 'react-router-dom';
-import ServerConnections from 'components/ServerConnections';
import { getConfigurationApi } from '@jellyfin/sdk/lib/utils/api/configuration-api';
import { QUERY_KEY, useConfiguration } from 'hooks/useConfiguration';
import Loading from 'components/loading/LoadingComponent';
diff --git a/src/apps/dashboard/routes/playback/trickplay.tsx b/src/apps/dashboard/routes/playback/trickplay.tsx
index 02591d216..05984a0d7 100644
--- a/src/apps/dashboard/routes/playback/trickplay.tsx
+++ b/src/apps/dashboard/routes/playback/trickplay.tsx
@@ -1,6 +1,7 @@
import React from 'react';
import globalize from 'lib/globalize';
+import ServerConnections from 'lib/jellyfin-apiclient/ServerConnections';
import { type ActionFunctionArgs, Form, useActionData, useNavigation } from 'react-router-dom';
import { QUERY_KEY, useConfiguration } from 'hooks/useConfiguration';
import Page from 'components/Page';
@@ -16,7 +17,6 @@ import MenuItem from '@mui/material/MenuItem';
import TextField from '@mui/material/TextField';
import Button from '@mui/material/Button';
import Alert from '@mui/material/Alert';
-import ServerConnections from 'components/ServerConnections';
import { getConfigurationApi } from '@jellyfin/sdk/lib/utils/api/configuration-api';
import { TrickplayScanBehavior } from '@jellyfin/sdk/lib/generated-client/models/trickplay-scan-behavior';
import { ProcessPriorityClass } from '@jellyfin/sdk/lib/generated-client/models/process-priority-class';
diff --git a/src/apps/dashboard/routes/settings/index.tsx b/src/apps/dashboard/routes/settings/index.tsx
index 2e4a31d0f..9ad2486a0 100644
--- a/src/apps/dashboard/routes/settings/index.tsx
+++ b/src/apps/dashboard/routes/settings/index.tsx
@@ -11,6 +11,7 @@ import Page from 'components/Page';
import { QUERY_KEY, useConfiguration } from 'hooks/useConfiguration';
import { useSystemInfo } from 'hooks/useSystemInfo';
import globalize from 'lib/globalize';
+import ServerConnections from 'lib/jellyfin-apiclient/ServerConnections';
import React, { useCallback, useEffect, useState } from 'react';
import { type ActionFunctionArgs, Form, useActionData, useNavigation } from 'react-router-dom';
import SearchIcon from '@mui/icons-material/Search';
@@ -21,7 +22,6 @@ import Checkbox from '@mui/material/Checkbox';
import Button from '@mui/material/Button';
import Link from '@mui/material/Link';
import DirectoryBrowser from 'components/directorybrowser/directorybrowser';
-import ServerConnections from 'components/ServerConnections';
import { getConfigurationApi } from '@jellyfin/sdk/lib/utils/api/configuration-api';
import { queryClient } from 'utils/query/queryClient';
import { ActionData } from 'types/actionData';
diff --git a/src/apps/dashboard/routes/users/parentalcontrol.tsx b/src/apps/dashboard/routes/users/parentalcontrol.tsx
index 2e4954259..9129421fb 100644
--- a/src/apps/dashboard/routes/users/parentalcontrol.tsx
+++ b/src/apps/dashboard/routes/users/parentalcontrol.tsx
@@ -17,7 +17,7 @@ import CheckBoxElement from '../../../../elements/CheckBoxElement';
import SelectElement from '../../../../elements/SelectElement';
import Page from '../../../../components/Page';
import prompt from '../../../../components/prompt/prompt';
-import ServerConnections from 'components/ServerConnections';
+import ServerConnections from 'lib/jellyfin-apiclient/ServerConnections';
type NamedItem = {
name: string;
diff --git a/src/apps/stable/features/playback/utils/image.ts b/src/apps/stable/features/playback/utils/image.ts
index 4bac595af..d35f678ee 100644
--- a/src/apps/stable/features/playback/utils/image.ts
+++ b/src/apps/stable/features/playback/utils/image.ts
@@ -1,7 +1,7 @@
import { BaseItemKind } from '@jellyfin/sdk/lib/generated-client/models/base-item-kind';
import { ImageType } from '@jellyfin/sdk/lib/generated-client/models/image-type';
-import ServerConnections from 'components/ServerConnections';
+import ServerConnections from 'lib/jellyfin-apiclient/ServerConnections';
import type { ItemDto } from 'types/base/models/item-dto';
interface ImageOptions {
diff --git a/src/apps/stable/features/playback/utils/mediaSegmentManager.ts b/src/apps/stable/features/playback/utils/mediaSegmentManager.ts
index 129eda65f..85b5b8309 100644
--- a/src/apps/stable/features/playback/utils/mediaSegmentManager.ts
+++ b/src/apps/stable/features/playback/utils/mediaSegmentManager.ts
@@ -4,8 +4,8 @@ import { MediaSegmentType } from '@jellyfin/sdk/lib/generated-client/models/medi
import { getMediaSegmentsApi } from '@jellyfin/sdk/lib/utils/api/media-segments-api';
import type { PlaybackManager } from 'components/playback/playbackmanager';
-import ServerConnections from 'components/ServerConnections';
import { TICKS_PER_MILLISECOND, TICKS_PER_SECOND } from 'constants/time';
+import ServerConnections from 'lib/jellyfin-apiclient/ServerConnections';
import { currentSettings as userSettings } from 'scripts/settings/userSettings';
import type { PlayerState } from 'types/playbackStopInfo';
import type { Event } from 'utils/events';
diff --git a/src/apps/wizard/controllers/finish/index.js b/src/apps/wizard/controllers/finish/index.js
index 4408da2dd..05770cc15 100644
--- a/src/apps/wizard/controllers/finish/index.js
+++ b/src/apps/wizard/controllers/finish/index.js
@@ -1,5 +1,5 @@
import loading from 'components/loading/loading';
-import ServerConnections from 'components/ServerConnections';
+import ServerConnections from 'lib/jellyfin-apiclient/ServerConnections';
function onFinish() {
loading.show();
diff --git a/src/apps/wizard/controllers/library.js b/src/apps/wizard/controllers/library.js
index ccdc42b13..598fb29a5 100644
--- a/src/apps/wizard/controllers/library.js
+++ b/src/apps/wizard/controllers/library.js
@@ -3,8 +3,8 @@ import escapeHtml from 'escape-html';
import { getDefaultBackgroundClass } from 'components/cardbuilder/cardBuilderUtils';
import confirm from 'components/confirm/confirm';
import loading from 'components/loading/loading';
-import ServerConnections from 'components/ServerConnections';
import globalize from 'lib/globalize';
+import ServerConnections from 'lib/jellyfin-apiclient/ServerConnections';
import dom from 'scripts/dom';
import taskButton from 'scripts/taskbutton';
import Dashboard, { pageClassOn, pageIdOn } from 'utils/dashboard';
diff --git a/src/apps/wizard/controllers/remote/index.js b/src/apps/wizard/controllers/remote/index.js
index f836f1fa9..441d67ea1 100644
--- a/src/apps/wizard/controllers/remote/index.js
+++ b/src/apps/wizard/controllers/remote/index.js
@@ -1,5 +1,5 @@
import loading from 'components/loading/loading';
-import ServerConnections from 'components/ServerConnections';
+import ServerConnections from 'lib/jellyfin-apiclient/ServerConnections';
import Dashboard from 'utils/dashboard';
import 'elements/emby-checkbox/emby-checkbox';
diff --git a/src/apps/wizard/controllers/settings/index.js b/src/apps/wizard/controllers/settings/index.js
index f118d83ce..605910235 100644
--- a/src/apps/wizard/controllers/settings/index.js
+++ b/src/apps/wizard/controllers/settings/index.js
@@ -1,5 +1,5 @@
import loading from 'components/loading/loading';
-import ServerConnections from 'components/ServerConnections';
+import ServerConnections from 'lib/jellyfin-apiclient/ServerConnections';
import Dashboard from 'utils/dashboard';
import 'elements/emby-button/emby-button';
diff --git a/src/apps/wizard/controllers/start/index.js b/src/apps/wizard/controllers/start/index.js
index 4bd9d68a9..0311f5da6 100644
--- a/src/apps/wizard/controllers/start/index.js
+++ b/src/apps/wizard/controllers/start/index.js
@@ -1,5 +1,5 @@
import loading from 'components/loading/loading';
-import ServerConnections from 'components/ServerConnections';
+import ServerConnections from 'lib/jellyfin-apiclient/ServerConnections';
import Dashboard from 'utils/dashboard';
import dom from 'scripts/dom';
diff --git a/src/apps/wizard/controllers/user/index.js b/src/apps/wizard/controllers/user/index.js
index 1a13a790b..034f5e27e 100644
--- a/src/apps/wizard/controllers/user/index.js
+++ b/src/apps/wizard/controllers/user/index.js
@@ -1,7 +1,7 @@
import loading from 'components/loading/loading';
-import ServerConnections from 'components/ServerConnections';
import toast from 'components/toast/toast';
import globalize from 'lib/globalize';
+import ServerConnections from 'lib/jellyfin-apiclient/ServerConnections';
import Dashboard from 'utils/dashboard';
import 'styles/dashboard.scss';
diff --git a/src/components/ConnectionRequired.tsx b/src/components/ConnectionRequired.tsx
index 305aeb7db..ec4e83907 100644
--- a/src/components/ConnectionRequired.tsx
+++ b/src/components/ConnectionRequired.tsx
@@ -4,10 +4,10 @@ import type { ApiClient, ConnectResponse } from 'jellyfin-apiclient';
import globalize from 'lib/globalize';
import { ConnectionState } from 'lib/jellyfin-apiclient/connectionState';
+import ServerConnections from 'lib/jellyfin-apiclient/ServerConnections';
import alert from './alert';
import Loading from './loading/LoadingComponent';
-import ServerConnections from './ServerConnections';
enum AccessLevel {
/** Requires a user with administrator access */
diff --git a/src/components/ServerContentPage.tsx b/src/components/ServerContentPage.tsx
index 2880e9a30..152d23cb8 100644
--- a/src/components/ServerContentPage.tsx
+++ b/src/components/ServerContentPage.tsx
@@ -1,10 +1,10 @@
import { FunctionComponent, useEffect } from 'react';
import { useLocation } from 'react-router-dom';
-import ServerConnections from './ServerConnections';
import viewManager from './viewManager/viewManager';
-import globalize from '../lib/globalize';
-import type { RestoreViewFailResponse } from '../types/viewManager';
+import globalize from 'lib/globalize';
+import ServerConnections from 'lib/jellyfin-apiclient/ServerConnections';
+import type { RestoreViewFailResponse } from 'types/viewManager';
interface ServerContentPageProps {
view: string
diff --git a/src/components/activitylog.js b/src/components/activitylog.js
index 36f17c880..4afc28fdb 100644
--- a/src/components/activitylog.js
+++ b/src/components/activitylog.js
@@ -1,12 +1,12 @@
import escapeHtml from 'escape-html';
import Events from '../utils/events.ts';
import globalize from '../lib/globalize';
+import ServerConnections from 'lib/jellyfin-apiclient/ServerConnections';
import dom from '../scripts/dom';
import { formatRelative } from 'date-fns';
import serverNotifications from '../scripts/serverNotifications';
import '../elements/emby-button/emby-button';
import './listview/listview.scss';
-import ServerConnections from './ServerConnections';
import alert from './alert';
import { getLocale } from '../utils/dateFnsLocale.ts';
import { toBoolean } from '../utils/string.ts';
diff --git a/src/components/backdrop/backdrop.js b/src/components/backdrop/backdrop.js
index f99a46a5b..14d71298e 100644
--- a/src/components/backdrop/backdrop.js
+++ b/src/components/backdrop/backdrop.js
@@ -1,9 +1,9 @@
import isEqual from 'lodash-es/isEqual';
+import ServerConnections from 'lib/jellyfin-apiclient/ServerConnections';
import browser from '../../scripts/browser';
import { playbackManager } from '../playback/playbackmanager';
import dom from '../../scripts/dom';
import * as userSettings from '../../scripts/settings/userSettings';
-import ServerConnections from '../ServerConnections';
import './backdrop.scss';
diff --git a/src/components/cardbuilder/cardBuilder.js b/src/components/cardbuilder/cardBuilder.js
index 1f7da1655..6882a8409 100644
--- a/src/components/cardbuilder/cardBuilder.js
+++ b/src/components/cardbuilder/cardBuilder.js
@@ -12,6 +12,7 @@ import browser from 'scripts/browser';
import datetime from 'scripts/datetime';
import dom from 'scripts/dom';
import globalize from 'lib/globalize';
+import ServerConnections from 'lib/jellyfin-apiclient/ServerConnections';
import { getBackdropShape, getPortraitShape, getSquareShape } from 'utils/card';
import { getItemTypeIcon, getLibraryIcon } from 'utils/image';
@@ -22,7 +23,6 @@ import itemHelper from '../itemHelper';
import layoutManager from '../layoutManager';
import { playbackManager } from '../playback/playbackmanager';
import { appRouter } from '../router/appRouter';
-import ServerConnections from '../ServerConnections';
import itemShortcuts from '../shortcuts';
import 'elements/emby-button/paper-icon-button-light';
diff --git a/src/components/cardbuilder/chaptercardbuilder.js b/src/components/cardbuilder/chaptercardbuilder.js
index 21535adc8..5249e00a4 100644
--- a/src/components/cardbuilder/chaptercardbuilder.js
+++ b/src/components/cardbuilder/chaptercardbuilder.js
@@ -5,11 +5,12 @@
*/
import escapeHtml from 'escape-html';
+
+import ServerConnections from 'lib/jellyfin-apiclient/ServerConnections';
import datetime from '../../scripts/datetime';
import imageLoader from '../images/imageLoader';
import layoutManager from '../layoutManager';
import browser from '../../scripts/browser';
-import ServerConnections from '../ServerConnections';
const enableFocusTransform = !browser.slow && !browser.edge;
diff --git a/src/components/channelMapper/channelMapper.js b/src/components/channelMapper/channelMapper.js
index 762ca0b75..0195aa47c 100644
--- a/src/components/channelMapper/channelMapper.js
+++ b/src/components/channelMapper/channelMapper.js
@@ -3,6 +3,7 @@ import dom from '../../scripts/dom';
import dialogHelper from '../dialogHelper/dialogHelper';
import loading from '../loading/loading';
import globalize from '../../lib/globalize';
+import ServerConnections from 'lib/jellyfin-apiclient/ServerConnections';
import actionsheet from '../actionSheet/actionSheet';
import '../../elements/emby-input/emby-input';
import '../../elements/emby-button/paper-icon-button-light';
@@ -10,7 +11,6 @@ import '../../elements/emby-button/emby-button';
import '../listview/listview.scss';
import 'material-design-icons-iconfont';
import '../formdialog.scss';
-import ServerConnections from '../ServerConnections';
export default class ChannelMapper {
constructor(options) {
diff --git a/src/components/collectionEditor/collectionEditor.js b/src/components/collectionEditor/collectionEditor.js
index 703c60df7..ff4a69abd 100644
--- a/src/components/collectionEditor/collectionEditor.js
+++ b/src/components/collectionEditor/collectionEditor.js
@@ -5,6 +5,7 @@ import loading from '../loading/loading';
import layoutManager from '../layoutManager';
import { appRouter } from '../router/appRouter';
import globalize from '../../lib/globalize';
+import ServerConnections from 'lib/jellyfin-apiclient/ServerConnections';
import '../../elements/emby-button/emby-button';
import '../../elements/emby-button/paper-icon-button-light';
import '../../elements/emby-checkbox/emby-checkbox';
@@ -13,7 +14,6 @@ import '../../elements/emby-select/emby-select';
import 'material-design-icons-iconfont';
import '../formdialog.scss';
import '../../styles/flexstyles.scss';
-import ServerConnections from '../ServerConnections';
import toast from '../toast/toast';
let currentServerId;
diff --git a/src/components/displaySettings/displaySettings.js b/src/components/displaySettings/displaySettings.js
index 354ef54d0..aea0137b4 100644
--- a/src/components/displaySettings/displaySettings.js
+++ b/src/components/displaySettings/displaySettings.js
@@ -6,6 +6,7 @@ import { appHost } from '../apphost';
import focusManager from '../focusManager';
import datetime from '../../scripts/datetime';
import globalize from '../../lib/globalize';
+import ServerConnections from 'lib/jellyfin-apiclient/ServerConnections';
import loading from '../loading/loading';
import skinManager from '../../scripts/themeManager';
import { PluginType } from '../../types/plugin.ts';
@@ -14,7 +15,6 @@ import '../../elements/emby-select/emby-select';
import '../../elements/emby-checkbox/emby-checkbox';
import '../../elements/emby-button/emby-button';
import '../../elements/emby-textarea/emby-textarea';
-import ServerConnections from '../ServerConnections';
import toast from '../toast/toast';
import template from './displaySettings.template.html';
diff --git a/src/components/filterdialog/filterdialog.js b/src/components/filterdialog/filterdialog.js
index e52dcebc9..02a0828da 100644
--- a/src/components/filterdialog/filterdialog.js
+++ b/src/components/filterdialog/filterdialog.js
@@ -1,12 +1,12 @@
import dom from '../../scripts/dom';
import dialogHelper from '../dialogHelper/dialogHelper';
import globalize from '../../lib/globalize';
+import ServerConnections from 'lib/jellyfin-apiclient/ServerConnections';
import union from 'lodash-es/union';
import Events from '../../utils/events.ts';
import '../../elements/emby-checkbox/emby-checkbox';
import '../../elements/emby-collapse/emby-collapse';
import './style.scss';
-import ServerConnections from '../ServerConnections';
import template from './filterdialog.template.html';
import { stopMultiSelect } from '../../components/multiSelect/multiSelect';
diff --git a/src/components/filtermenu/filtermenu.js b/src/components/filtermenu/filtermenu.js
index 5d7609f9f..e1891caeb 100644
--- a/src/components/filtermenu/filtermenu.js
+++ b/src/components/filtermenu/filtermenu.js
@@ -5,6 +5,7 @@ import dialogHelper from '../dialogHelper/dialogHelper';
import inputManager from '../../scripts/inputManager';
import layoutManager from '../layoutManager';
import globalize from '../../lib/globalize';
+import ServerConnections from 'lib/jellyfin-apiclient/ServerConnections';
import * as userSettings from '../../scripts/settings/userSettings';
import '../../elements/emby-checkbox/emby-checkbox';
import '../../elements/emby-input/emby-input';
@@ -14,7 +15,6 @@ import '../../elements/emby-select/emby-select';
import 'material-design-icons-iconfont';
import '../formdialog.scss';
import '../../styles/flexstyles.scss';
-import ServerConnections from '../ServerConnections';
import template from './filtermenu.template.html';
function onSubmit(e) {
diff --git a/src/components/groupedcards.js b/src/components/groupedcards.js
index 9167dc3ec..1594353ba 100644
--- a/src/components/groupedcards.js
+++ b/src/components/groupedcards.js
@@ -1,7 +1,7 @@
+import ServerConnections from 'lib/jellyfin-apiclient/ServerConnections';
import dom from '../scripts/dom';
import { appRouter } from './router/appRouter';
import Dashboard from '../utils/dashboard';
-import ServerConnections from './ServerConnections';
function onGroupedCardClick(e, card) {
const itemId = card.getAttribute('data-id');
diff --git a/src/components/guide/guide.js b/src/components/guide/guide.js
index 0b72fc023..ccb1ba06c 100644
--- a/src/components/guide/guide.js
+++ b/src/components/guide/guide.js
@@ -2,6 +2,7 @@ import escapeHtml from 'escape-html';
import inputManager from '../../scripts/inputManager';
import browser from '../../scripts/browser';
import globalize from '../../lib/globalize';
+import ServerConnections from 'lib/jellyfin-apiclient/ServerConnections';
import Events from '../../utils/events.ts';
import scrollHelper from '../../scripts/scrollHelper';
import serverNotifications from '../../scripts/serverNotifications';
@@ -25,7 +26,6 @@ import '../../elements/emby-tabs/emby-tabs';
import '../../elements/emby-scroller/emby-scroller';
import '../../styles/flexstyles.scss';
import 'webcomponents.js/webcomponents-lite';
-import ServerConnections from '../ServerConnections';
import template from './tvguide.template.html';
function showViewSettings(instance) {
diff --git a/src/components/homeScreenSettings/homeScreenSettings.js b/src/components/homeScreenSettings/homeScreenSettings.js
index 74b5c82ce..ea4aefe08 100644
--- a/src/components/homeScreenSettings/homeScreenSettings.js
+++ b/src/components/homeScreenSettings/homeScreenSettings.js
@@ -2,6 +2,7 @@
import escapeHtml from 'escape-html';
import { getUserViewsQuery } from 'hooks/useUserViews';
+import ServerConnections from 'lib/jellyfin-apiclient/ServerConnections';
import { toApi } from 'utils/jellyfin-apiclient/compat';
import { queryClient } from 'utils/query/queryClient';
@@ -15,7 +16,6 @@ import dom from '../../scripts/dom';
import '../listview/listview.scss';
import '../../elements/emby-select/emby-select';
import '../../elements/emby-checkbox/emby-checkbox';
-import ServerConnections from '../ServerConnections';
import toast from '../toast/toast';
import template from './homeScreenSettings.template.html';
import { LibraryTab } from '../../types/libraryTab.ts';
diff --git a/src/components/homesections/sections/activeRecordings.ts b/src/components/homesections/sections/activeRecordings.ts
index 45989f298..c4bf5f9b1 100644
--- a/src/components/homesections/sections/activeRecordings.ts
+++ b/src/components/homesections/sections/activeRecordings.ts
@@ -1,9 +1,9 @@
import type { BaseItemDto } from '@jellyfin/sdk/lib/generated-client/models/base-item-dto';
import type { ApiClient } from 'jellyfin-apiclient';
-import ServerConnections from 'components/ServerConnections';
import cardBuilder from 'components/cardbuilder/cardBuilder';
import globalize from 'lib/globalize';
+import ServerConnections from 'lib/jellyfin-apiclient/ServerConnections';
import type { SectionContainerElement, SectionOptions } from './section';
diff --git a/src/components/homesections/sections/liveTv.ts b/src/components/homesections/sections/liveTv.ts
index e09f812fd..140723e7f 100644
--- a/src/components/homesections/sections/liveTv.ts
+++ b/src/components/homesections/sections/liveTv.ts
@@ -5,8 +5,8 @@ import type { ApiClient } from 'jellyfin-apiclient';
import { appRouter } from 'components/router/appRouter';
import cardBuilder from 'components/cardbuilder/cardBuilder';
import layoutManager from 'components/layoutManager';
-import ServerConnections from 'components/ServerConnections';
import globalize from 'lib/globalize';
+import ServerConnections from 'lib/jellyfin-apiclient/ServerConnections';
import { getBackdropShape } from 'utils/card';
import type { SectionContainerElement, SectionOptions } from './section';
diff --git a/src/components/homesections/sections/nextUp.ts b/src/components/homesections/sections/nextUp.ts
index fbf1443e2..0ab23c4bb 100644
--- a/src/components/homesections/sections/nextUp.ts
+++ b/src/components/homesections/sections/nextUp.ts
@@ -4,8 +4,8 @@ import type { ApiClient } from 'jellyfin-apiclient';
import cardBuilder from 'components/cardbuilder/cardBuilder';
import layoutManager from 'components/layoutManager';
import { appRouter } from 'components/router/appRouter';
-import ServerConnections from 'components/ServerConnections';
import globalize from 'lib/globalize';
+import ServerConnections from 'lib/jellyfin-apiclient/ServerConnections';
import type { UserSettings } from 'scripts/settings/userSettings';
import { getBackdropShape } from 'utils/card';
diff --git a/src/components/homesections/sections/recentlyAdded.ts b/src/components/homesections/sections/recentlyAdded.ts
index 27d16d161..f0b71b943 100644
--- a/src/components/homesections/sections/recentlyAdded.ts
+++ b/src/components/homesections/sections/recentlyAdded.ts
@@ -5,11 +5,11 @@ import { CollectionType } from '@jellyfin/sdk/lib/generated-client/models/collec
import escapeHtml from 'escape-html';
import type { ApiClient } from 'jellyfin-apiclient';
+import cardBuilder from 'components/cardbuilder/cardBuilder';
import layoutManager from 'components/layoutManager';
import { appRouter } from 'components/router/appRouter';
import globalize from 'lib/globalize';
-import ServerConnections from 'components/ServerConnections';
-import cardBuilder from 'components/cardbuilder/cardBuilder';
+import ServerConnections from 'lib/jellyfin-apiclient/ServerConnections';
import { getBackdropShape, getPortraitShape, getSquareShape } from 'utils/card';
import type { SectionContainerElement, SectionOptions } from './section';
diff --git a/src/components/homesections/sections/resume.ts b/src/components/homesections/sections/resume.ts
index 249cad2d0..c58ee4a71 100644
--- a/src/components/homesections/sections/resume.ts
+++ b/src/components/homesections/sections/resume.ts
@@ -2,9 +2,9 @@ import type { BaseItemDto } from '@jellyfin/sdk/lib/generated-client/models/base
import type { BaseItemKind } from '@jellyfin/sdk/lib/generated-client/models/base-item-kind';
import type { ApiClient } from 'jellyfin-apiclient';
-import ServerConnections from 'components/ServerConnections';
import cardBuilder from 'components/cardbuilder/cardBuilder';
import globalize from 'lib/globalize';
+import ServerConnections from 'lib/jellyfin-apiclient/ServerConnections';
import type { UserSettings } from 'scripts/settings/userSettings';
import { getBackdropShape, getPortraitShape } from 'utils/card';
diff --git a/src/components/imageDownloader/imageDownloader.js b/src/components/imageDownloader/imageDownloader.js
index cd05ec57e..5c82419f8 100644
--- a/src/components/imageDownloader/imageDownloader.js
+++ b/src/components/imageDownloader/imageDownloader.js
@@ -7,12 +7,12 @@ import browser from '../../scripts/browser';
import layoutManager from '../layoutManager';
import scrollHelper from '../../scripts/scrollHelper';
import globalize from '../../lib/globalize';
+import ServerConnections from 'lib/jellyfin-apiclient/ServerConnections';
import '../../elements/emby-checkbox/emby-checkbox';
import '../../elements/emby-button/paper-icon-button-light';
import '../../elements/emby-button/emby-button';
import '../formdialog.scss';
import '../cardbuilder/card.scss';
-import ServerConnections from '../ServerConnections';
import template from './imageDownloader.template.html';
const enableFocusTransform = !browser.slow && !browser.edge;
diff --git a/src/components/imageUploader/imageUploader.js b/src/components/imageUploader/imageUploader.js
index cc211fde9..b4e84c00e 100644
--- a/src/components/imageUploader/imageUploader.js
+++ b/src/components/imageUploader/imageUploader.js
@@ -10,11 +10,12 @@ import loading from '../loading/loading';
import scrollHelper from '../../scripts/scrollHelper';
import layoutManager from '../layoutManager';
import globalize from '../../lib/globalize';
+import ServerConnections from 'lib/jellyfin-apiclient/ServerConnections';
+
import '../../elements/emby-button/emby-button';
import '../../elements/emby-select/emby-select';
import '../formdialog.scss';
import './style.scss';
-import ServerConnections from '../ServerConnections';
import toast from '../toast/toast';
import template from './imageUploader.template.html';
diff --git a/src/components/imageeditor/imageeditor.js b/src/components/imageeditor/imageeditor.js
index c975cdd7d..ab9f1ae93 100644
--- a/src/components/imageeditor/imageeditor.js
+++ b/src/components/imageeditor/imageeditor.js
@@ -4,6 +4,7 @@ import dom from '../../scripts/dom';
import layoutManager from '../layoutManager';
import focusManager from '../focusManager';
import globalize from '../../lib/globalize';
+import ServerConnections from 'lib/jellyfin-apiclient/ServerConnections';
import scrollHelper from '../../scripts/scrollHelper';
import imageLoader from '../images/imageLoader';
import browser from '../../scripts/browser';
@@ -13,7 +14,6 @@ import '../formdialog.scss';
import '../../elements/emby-button/emby-button';
import '../../elements/emby-button/paper-icon-button-light';
import './imageeditor.scss';
-import ServerConnections from '../ServerConnections';
import alert from '../alert';
import confirm from '../confirm/confirm';
import template from './imageeditor.template.html';
diff --git a/src/components/itemContextMenu.js b/src/components/itemContextMenu.js
index adba9ab0e..9b1368ceb 100644
--- a/src/components/itemContextMenu.js
+++ b/src/components/itemContextMenu.js
@@ -2,12 +2,12 @@ import browser from '../scripts/browser';
import { copy } from '../scripts/clipboard';
import dom from '../scripts/dom';
import globalize from '../lib/globalize';
+import ServerConnections from 'lib/jellyfin-apiclient/ServerConnections';
import actionsheet from './actionSheet/actionSheet';
import { appHost } from './apphost';
import { appRouter } from './router/appRouter';
import itemHelper, { canEditPlaylist } from './itemHelper';
import { playbackManager } from './playback/playbackmanager';
-import ServerConnections from './ServerConnections';
import toast from './toast/toast';
import * as userSettings from '../scripts/settings/userSettings';
import { BaseItemKind } from '@jellyfin/sdk/lib/generated-client/models/base-item-kind';
diff --git a/src/components/itemHelper.js b/src/components/itemHelper.js
index 2a93c36e7..c1e87dea1 100644
--- a/src/components/itemHelper.js
+++ b/src/components/itemHelper.js
@@ -7,7 +7,7 @@ import { getPlaylistsApi } from '@jellyfin/sdk/lib/utils/api/playlists-api';
import { appHost } from './apphost';
import globalize from 'lib/globalize';
-import ServerConnections from './ServerConnections';
+import ServerConnections from 'lib/jellyfin-apiclient/ServerConnections';
import { toApi } from 'utils/jellyfin-apiclient/compat';
export function getDisplayName(item, options = {}) {
diff --git a/src/components/itemMediaInfo/itemMediaInfo.js b/src/components/itemMediaInfo/itemMediaInfo.js
index f77395abf..95e2af29f 100644
--- a/src/components/itemMediaInfo/itemMediaInfo.js
+++ b/src/components/itemMediaInfo/itemMediaInfo.js
@@ -11,6 +11,7 @@ import toast from '../toast/toast';
import { copy } from '../../scripts/clipboard';
import dom from '../../scripts/dom';
import globalize from '../../lib/globalize';
+import ServerConnections from 'lib/jellyfin-apiclient/ServerConnections';
import itemHelper from '../../components/itemHelper';
import loading from '../loading/loading';
import '../../elements/emby-select/emby-select';
@@ -20,7 +21,6 @@ import '../../elements/emby-button/paper-icon-button-light';
import '../formdialog.scss';
import 'material-design-icons-iconfont';
import '../../styles/flexstyles.scss';
-import ServerConnections from '../ServerConnections';
import template from './itemMediaInfo.template.html';
// Do not add extra spaces between tags - they will be copied into the result
diff --git a/src/components/itemidentifier/itemidentifier.js b/src/components/itemidentifier/itemidentifier.js
index 506c1c284..2cfebb1f8 100644
--- a/src/components/itemidentifier/itemidentifier.js
+++ b/src/components/itemidentifier/itemidentifier.js
@@ -8,6 +8,7 @@ import escapeHtml from 'escape-html';
import dialogHelper from '../dialogHelper/dialogHelper';
import loading from '../loading/loading';
import globalize from '../../lib/globalize';
+import ServerConnections from 'lib/jellyfin-apiclient/ServerConnections';
import scrollHelper from '../../scripts/scrollHelper';
import layoutManager from '../layoutManager';
import focusManager from '../focusManager';
@@ -18,7 +19,6 @@ import '../../elements/emby-button/paper-icon-button-light';
import '../formdialog.scss';
import 'material-design-icons-iconfont';
import '../cardbuilder/card.scss';
-import ServerConnections from '../ServerConnections';
import toast from '../toast/toast';
import template from './itemidentifier.template.html';
import datetime from '../../scripts/datetime';
diff --git a/src/components/listview/listview.js b/src/components/listview/listview.js
index 916b9a44a..d501c3180 100644
--- a/src/components/listview/listview.js
+++ b/src/components/listview/listview.js
@@ -10,12 +10,12 @@ import mediaInfo from '../mediainfo/mediainfo';
import indicators from '../indicators/indicators';
import layoutManager from '../layoutManager';
import globalize from '../../lib/globalize';
+import ServerConnections from 'lib/jellyfin-apiclient/ServerConnections';
import datetime from '../../scripts/datetime';
import cardBuilder from '../cardbuilder/cardBuilder';
import './listview.scss';
import '../../elements/emby-ratingbutton/emby-ratingbutton';
import '../../elements/emby-playstatebutton/emby-playstatebutton';
-import ServerConnections from '../ServerConnections';
import { getDefaultBackgroundClass } from '../cardbuilder/cardBuilderUtils';
import markdownIt from 'markdown-it';
import DOMPurify from 'dompurify';
diff --git a/src/components/lyricseditor/lyricseditor.js b/src/components/lyricseditor/lyricseditor.js
index f2e37175f..9fcbde190 100644
--- a/src/components/lyricseditor/lyricseditor.js
+++ b/src/components/lyricseditor/lyricseditor.js
@@ -5,6 +5,7 @@ import { toApi } from 'utils/jellyfin-apiclient/compat';
import dialogHelper from '../dialogHelper/dialogHelper';
import layoutManager from '../layoutManager';
import globalize from 'lib/globalize';
+import ServerConnections from 'lib/jellyfin-apiclient/ServerConnections';
import loading from '../loading/loading';
import focusManager from '../focusManager';
import dom from '../../scripts/dom';
@@ -16,7 +17,6 @@ import 'material-design-icons-iconfont';
import './lyricseditor.scss';
import '../../elements/emby-button/emby-button';
import '../../styles/flexstyles.scss';
-import ServerConnections from '../ServerConnections';
import toast from '../toast/toast';
import template from './lyricseditor.template.html';
import templatePreview from './lyricspreview.template.html';
diff --git a/src/components/lyricsuploader/lyricsuploader.js b/src/components/lyricsuploader/lyricsuploader.js
index 6d6030a7b..85b5fc692 100644
--- a/src/components/lyricsuploader/lyricsuploader.js
+++ b/src/components/lyricsuploader/lyricsuploader.js
@@ -3,12 +3,12 @@ import escapeHtml from 'escape-html';
import { getLyricsApi } from '@jellyfin/sdk/lib/utils/api/lyrics-api';
import { toApi } from 'utils/jellyfin-apiclient/compat';
import dialogHelper from '../../components/dialogHelper/dialogHelper';
-import ServerConnections from '../ServerConnections';
import dom from '../../scripts/dom';
import loading from '../../components/loading/loading';
import scrollHelper from '../../scripts/scrollHelper';
import layoutManager from '../layoutManager';
import globalize from 'lib/globalize';
+import ServerConnections from 'lib/jellyfin-apiclient/ServerConnections';
import template from './lyricsuploader.template.html';
import toast from '../toast/toast';
import '../../elements/emby-button/emby-button';
diff --git a/src/components/metadataEditor/metadataEditor.js b/src/components/metadataEditor/metadataEditor.js
index 4dea1b00d..912ffef1d 100644
--- a/src/components/metadataEditor/metadataEditor.js
+++ b/src/components/metadataEditor/metadataEditor.js
@@ -6,6 +6,8 @@ import datetime from '../../scripts/datetime';
import loading from '../loading/loading';
import focusManager from '../focusManager';
import globalize from '../../lib/globalize';
+import ServerConnections from 'lib/jellyfin-apiclient/ServerConnections';
+
import '../../elements/emby-checkbox/emby-checkbox';
import '../../elements/emby-input/emby-input';
import '../../elements/emby-select/emby-select';
@@ -17,7 +19,6 @@ import '../formdialog.scss';
import '../../styles/clearbutton.scss';
import '../../styles/flexstyles.scss';
import './style.scss';
-import ServerConnections from '../ServerConnections';
import toast from '../toast/toast';
import { appRouter } from '../router/appRouter';
import template from './metadataEditor.template.html';
diff --git a/src/components/multiSelect/multiSelect.js b/src/components/multiSelect/multiSelect.js
index efcb17265..1a0800ae1 100644
--- a/src/components/multiSelect/multiSelect.js
+++ b/src/components/multiSelect/multiSelect.js
@@ -2,9 +2,9 @@ import browser from '../../scripts/browser';
import { appHost } from '../apphost';
import loading from '../loading/loading';
import globalize from '../../lib/globalize';
+import ServerConnections from 'lib/jellyfin-apiclient/ServerConnections';
import dom from '../../scripts/dom';
import './multiSelect.scss';
-import ServerConnections from '../ServerConnections';
import alert from '../alert';
import confirm from '../confirm/confirm';
import itemHelper from '../itemHelper';
diff --git a/src/components/notifications/notifications.js b/src/components/notifications/notifications.js
index 9c8982b51..609f96ace 100644
--- a/src/components/notifications/notifications.js
+++ b/src/components/notifications/notifications.js
@@ -2,8 +2,8 @@ import serverNotifications from '../../scripts/serverNotifications';
import { playbackManager } from '../playback/playbackmanager';
import Events from '../../utils/events.ts';
import globalize from '../../lib/globalize';
+import ServerConnections from 'lib/jellyfin-apiclient/ServerConnections';
import { getItems } from '../../utils/jellyfin-apiclient/getItems.ts';
-import ServerConnections from '../../components/ServerConnections';
import NotificationIcon from './notificationicon.png';
diff --git a/src/components/nowPlayingBar/nowPlayingBar.js b/src/components/nowPlayingBar/nowPlayingBar.js
index c16b167d0..72f6375d4 100644
--- a/src/components/nowPlayingBar/nowPlayingBar.js
+++ b/src/components/nowPlayingBar/nowPlayingBar.js
@@ -1,6 +1,7 @@
import { getImageUrl } from 'apps/stable/features/playback/utils/image';
import { getItemTextLines } from 'apps/stable/features/playback/utils/itemText';
import { appRouter, isLyricsPage } from 'components/router/appRouter';
+import ServerConnections from 'lib/jellyfin-apiclient/ServerConnections';
import datetime from '../../scripts/datetime';
import Events from '../../utils/events.ts';
@@ -14,7 +15,6 @@ import globalize from 'lib/globalize';
import itemContextMenu from '../itemContextMenu';
import '../../elements/emby-button/paper-icon-button-light';
import '../../elements/emby-ratingbutton/emby-ratingbutton';
-import ServerConnections from '../ServerConnections';
import appFooter from '../appFooter/appFooter';
import itemShortcuts from '../shortcuts';
import './nowPlayingBar.scss';
diff --git a/src/components/playback/displayMirrorManager.ts b/src/components/playback/displayMirrorManager.ts
index 00856421f..cda68897a 100644
--- a/src/components/playback/displayMirrorManager.ts
+++ b/src/components/playback/displayMirrorManager.ts
@@ -1,5 +1,5 @@
-import ServerConnections from 'components/ServerConnections';
import { getItemQuery } from 'hooks/useItem';
+import ServerConnections from 'lib/jellyfin-apiclient/ServerConnections';
import { toApi } from 'utils/jellyfin-apiclient/compat';
import { queryClient } from 'utils/query/queryClient';
diff --git a/src/components/playback/playbackmanager.js b/src/components/playback/playbackmanager.js
index f4e8ec02c..d181e2619 100644
--- a/src/components/playback/playbackmanager.js
+++ b/src/components/playback/playbackmanager.js
@@ -1,3 +1,4 @@
+import { BaseItemKind } from '@jellyfin/sdk/lib/generated-client/models/base-item-kind.js';
import { PlaybackErrorCode } from '@jellyfin/sdk/lib/generated-client/models/playback-error-code.js';
import { getMediaInfoApi } from '@jellyfin/sdk/lib/utils/api/media-info-api';
import { MediaType } from '@jellyfin/sdk/lib/generated-client/models/media-type';
@@ -14,7 +15,6 @@ import * as userSettings from '../../scripts/settings/userSettings';
import globalize from '../../lib/globalize';
import loading from '../loading/loading';
import { appHost } from '../apphost';
-import ServerConnections from '../ServerConnections';
import alert from '../alert';
import { PluginType } from '../../types/plugin.ts';
import { includesAny } from '../../utils/container.ts';
@@ -24,10 +24,10 @@ import { getItemBackdropImageUrl } from '../../utils/jellyfin-apiclient/backdrop
import { PlayerEvent } from 'apps/stable/features/playback/constants/playerEvent';
import { bindMediaSegmentManager } from 'apps/stable/features/playback/utils/mediaSegmentManager';
import { bindMediaSessionSubscriber } from 'apps/stable/features/playback/utils/mediaSessionSubscriber';
+import ServerConnections from 'lib/jellyfin-apiclient/ServerConnections';
import { MediaError } from 'types/mediaError';
import { getMediaError } from 'utils/mediaError';
import { toApi } from 'utils/jellyfin-apiclient/compat';
-import { BaseItemKind } from '@jellyfin/sdk/lib/generated-client/models/base-item-kind.js';
import { bindSkipSegment } from './skipsegment.ts';
const UNLIMITED_ITEMS = -1;
diff --git a/src/components/playback/playersettingsmenu.js b/src/components/playback/playersettingsmenu.js
index dc92de54d..8c6134969 100644
--- a/src/components/playback/playersettingsmenu.js
+++ b/src/components/playback/playersettingsmenu.js
@@ -1,8 +1,8 @@
import actionsheet from '../actionSheet/actionSheet';
import { playbackManager } from '../playback/playbackmanager';
-import globalize from '../../lib/globalize';
+import globalize from 'lib/globalize';
+import ServerConnections from 'lib/jellyfin-apiclient/ServerConnections';
import qualityoptions from '../qualityOptions';
-import ServerConnections from '../ServerConnections';
function showQualityMenu(player, btn) {
const videoStream = playbackManager.currentMediaSource(player).MediaStreams.filter(function (stream) {
diff --git a/src/components/playbackSettings/playbackSettings.js b/src/components/playbackSettings/playbackSettings.js
index f15627a3e..e67647fcd 100644
--- a/src/components/playbackSettings/playbackSettings.js
+++ b/src/components/playbackSettings/playbackSettings.js
@@ -3,6 +3,7 @@ import escapeHTML from 'escape-html';
import { MediaSegmentAction } from 'apps/stable/features/playback/constants/mediaSegmentAction';
import { getId, getMediaSegmentAction } from 'apps/stable/features/playback/utils/mediaSegmentSettings';
+import ServerConnections from 'lib/jellyfin-apiclient/ServerConnections';
import appSettings from '../../scripts/settings/appSettings';
import { appHost } from '../apphost';
@@ -12,7 +13,6 @@ import qualityoptions from '../qualityOptions';
import globalize from '../../lib/globalize';
import loading from '../loading/loading';
import Events from '../../utils/events.ts';
-import ServerConnections from '../ServerConnections';
import toast from '../toast/toast';
import template from './playbackSettings.template.html';
diff --git a/src/components/playerstats/playerstats.js b/src/components/playerstats/playerstats.js
index 663c1932e..b67a7c863 100644
--- a/src/components/playerstats/playerstats.js
+++ b/src/components/playerstats/playerstats.js
@@ -1,13 +1,14 @@
import '../../elements/emby-button/paper-icon-button-light';
import globalize from '../../lib/globalize';
+import ServerConnections from 'lib/jellyfin-apiclient/ServerConnections';
import Events from '../../utils/events.ts';
import layoutManager from '../layoutManager';
import { playbackManager } from '../playback/playbackmanager';
import playMethodHelper from '../playback/playmethodhelper';
import { pluginManager } from '../pluginManager';
import { PluginType } from '../../types/plugin.ts';
+
import './playerstats.scss';
-import ServerConnections from '../ServerConnections';
function init(instance) {
const parent = document.createElement('div');
diff --git a/src/components/playlisteditor/playlisteditor.ts b/src/components/playlisteditor/playlisteditor.ts
index 629790695..99836cf9c 100644
--- a/src/components/playlisteditor/playlisteditor.ts
+++ b/src/components/playlisteditor/playlisteditor.ts
@@ -8,6 +8,7 @@ import escapeHtml from 'escape-html';
import toast from 'components/toast/toast';
import dom from 'scripts/dom';
import globalize from 'lib/globalize';
+import ServerConnections from 'lib/jellyfin-apiclient/ServerConnections';
import { currentSettings as userSettings } from 'scripts/settings/userSettings';
import { PluginType } from 'types/plugin';
import { toApi } from 'utils/jellyfin-apiclient/compat';
@@ -19,7 +20,6 @@ import layoutManager from '../layoutManager';
import { playbackManager } from '../playback/playbackmanager';
import { pluginManager } from '../pluginManager';
import { appRouter } from '../router/appRouter';
-import ServerConnections from '../ServerConnections';
import 'elements/emby-button/emby-button';
import 'elements/emby-input/emby-input';
diff --git a/src/components/pluginManager.js b/src/components/pluginManager.js
index ce42c806d..811e82a74 100644
--- a/src/components/pluginManager.js
+++ b/src/components/pluginManager.js
@@ -8,8 +8,8 @@ import { appRouter } from './router/appRouter';
import * as inputManager from '../scripts/inputManager';
import toast from '../components/toast/toast';
import confirm from '../components/confirm/confirm';
+import ServerConnections from 'lib/jellyfin-apiclient/ServerConnections';
import * as dashboard from '../utils/dashboard';
-import ServerConnections from '../components/ServerConnections';
// TODO: replace with each plugin version
const cacheParam = new Date().getTime();
diff --git a/src/components/recordingcreator/recordingbutton.js b/src/components/recordingcreator/recordingbutton.js
index f2d5376ea..b78e3b9f9 100644
--- a/src/components/recordingcreator/recordingbutton.js
+++ b/src/components/recordingcreator/recordingbutton.js
@@ -1,9 +1,10 @@
+import ServerConnections from 'lib/jellyfin-apiclient/ServerConnections';
import dom from '../../scripts/dom';
import recordingHelper from './recordinghelper';
+
import '../../elements/emby-button/paper-icon-button-light';
import '../../elements/emby-button/emby-button';
import './recordingfields.scss';
-import ServerConnections from '../ServerConnections';
function onRecordingButtonClick() {
const item = this.item;
diff --git a/src/components/recordingcreator/recordingcreator.js b/src/components/recordingcreator/recordingcreator.js
index d69043f60..cc040aa64 100644
--- a/src/components/recordingcreator/recordingcreator.js
+++ b/src/components/recordingcreator/recordingcreator.js
@@ -1,5 +1,6 @@
import dialogHelper from '../dialogHelper/dialogHelper';
import globalize from '../../lib/globalize';
+import ServerConnections from 'lib/jellyfin-apiclient/ServerConnections';
import layoutManager from '../layoutManager';
import mediaInfo from '../mediainfo/mediainfo';
import loading from '../loading/loading';
@@ -8,6 +9,7 @@ import datetime from '../../scripts/datetime';
import imageLoader from '../images/imageLoader';
import RecordingFields from './recordingfields';
import Events from '../../utils/events.ts';
+
import '../../elements/emby-button/emby-button';
import '../../elements/emby-button/paper-icon-button-light';
import '../../elements/emby-checkbox/emby-checkbox';
@@ -16,7 +18,6 @@ import '../../elements/emby-input/emby-input';
import '../formdialog.scss';
import './recordingcreator.scss';
import 'material-design-icons-iconfont';
-import ServerConnections from '../ServerConnections';
import { playbackManager } from '../playback/playbackmanager';
import template from './recordingcreator.template.html';
diff --git a/src/components/recordingcreator/recordingeditor.js b/src/components/recordingcreator/recordingeditor.js
index 442fe8663..af71d102d 100644
--- a/src/components/recordingcreator/recordingeditor.js
+++ b/src/components/recordingcreator/recordingeditor.js
@@ -1,9 +1,11 @@
import dialogHelper from '../dialogHelper/dialogHelper';
import globalize from '../../lib/globalize';
+import ServerConnections from 'lib/jellyfin-apiclient/ServerConnections';
import layoutManager from '../layoutManager';
import loading from '../loading/loading';
import scrollHelper from '../../scripts/scrollHelper';
+
import '../../styles/scrollstyles.scss';
import '../../elements/emby-button/emby-button';
import '../../elements/emby-collapse/emby-collapse';
@@ -13,7 +15,6 @@ import '../formdialog.scss';
import './recordingcreator.scss';
import 'material-design-icons-iconfont';
import '../../styles/flexstyles.scss';
-import ServerConnections from '../ServerConnections';
import template from './recordingeditor.template.html';
let currentDialog;
diff --git a/src/components/recordingcreator/recordingfields.js b/src/components/recordingcreator/recordingfields.js
index 19249218b..b443698d1 100644
--- a/src/components/recordingcreator/recordingfields.js
+++ b/src/components/recordingcreator/recordingfields.js
@@ -1,14 +1,15 @@
import globalize from '../../lib/globalize';
+import ServerConnections from 'lib/jellyfin-apiclient/ServerConnections';
import Events from '../../utils/events.ts';
import serverNotifications from '../../scripts/serverNotifications';
import loading from '../loading/loading';
import dom from '../../scripts/dom';
import recordingHelper from './recordinghelper';
+
import '../../elements/emby-button/emby-button';
import '../../elements/emby-button/paper-icon-button-light';
import './recordingfields.scss';
import '../../styles/flexstyles.scss';
-import ServerConnections from '../ServerConnections';
import toast from '../toast/toast';
import template from './recordingfields.template.html';
diff --git a/src/components/recordingcreator/recordinghelper.js b/src/components/recordingcreator/recordinghelper.js
index 3c593a18a..55aa52c0c 100644
--- a/src/components/recordingcreator/recordinghelper.js
+++ b/src/components/recordingcreator/recordinghelper.js
@@ -1,6 +1,6 @@
-import globalize from '../../lib/globalize';
+import globalize from 'lib/globalize';
+import ServerConnections from 'lib/jellyfin-apiclient/ServerConnections';
import loading from '../loading/loading';
-import ServerConnections from '../ServerConnections';
import toast from '../toast/toast';
import confirm from '../confirm/confirm';
import dialog from '../dialog/dialog';
diff --git a/src/components/recordingcreator/seriesrecordingeditor.js b/src/components/recordingcreator/seriesrecordingeditor.js
index 30c8e3936..ccc2d6940 100644
--- a/src/components/recordingcreator/seriesrecordingeditor.js
+++ b/src/components/recordingcreator/seriesrecordingeditor.js
@@ -1,9 +1,11 @@
import dialogHelper from '../dialogHelper/dialogHelper';
import globalize from '../../lib/globalize';
+import ServerConnections from 'lib/jellyfin-apiclient/ServerConnections';
import layoutManager from '../layoutManager';
import loading from '../loading/loading';
import scrollHelper from '../../scripts/scrollHelper';
import datetime from '../../scripts/datetime';
+
import '../../styles/scrollstyles.scss';
import '../../elements/emby-button/emby-button';
import '../../elements/emby-checkbox/emby-checkbox';
@@ -14,7 +16,6 @@ import '../formdialog.scss';
import './recordingcreator.scss';
import 'material-design-icons-iconfont';
import '../../styles/flexstyles.scss';
-import ServerConnections from '../ServerConnections';
import template from './seriesrecordingeditor.template.html';
let currentDialog;
diff --git a/src/components/refreshdialog/refreshdialog.js b/src/components/refreshdialog/refreshdialog.js
index 65997a31a..67f4bd4a4 100644
--- a/src/components/refreshdialog/refreshdialog.js
+++ b/src/components/refreshdialog/refreshdialog.js
@@ -3,6 +3,8 @@ import dialogHelper from '../dialogHelper/dialogHelper';
import loading from '../loading/loading';
import layoutManager from '../layoutManager';
import globalize from '../../lib/globalize';
+import ServerConnections from 'lib/jellyfin-apiclient/ServerConnections';
+
import '../../elements/emby-input/emby-input';
import '../../elements/emby-button/emby-button';
import '../../elements/emby-button/paper-icon-button-light';
@@ -10,7 +12,6 @@ import '../../elements/emby-checkbox/emby-checkbox';
import '../../elements/emby-select/emby-select';
import 'material-design-icons-iconfont';
import '../formdialog.scss';
-import ServerConnections from '../ServerConnections';
import toast from '../toast/toast';
function getEditorHtml() {
diff --git a/src/components/remotecontrol/remotecontrol.js b/src/components/remotecontrol/remotecontrol.js
index b4344b5f1..76beb45ab 100644
--- a/src/components/remotecontrol/remotecontrol.js
+++ b/src/components/remotecontrol/remotecontrol.js
@@ -11,9 +11,11 @@ import { playbackManager } from '../playback/playbackmanager';
import Events from '../../utils/events.ts';
import { appHost } from '../apphost';
import globalize from '../../lib/globalize';
+import ServerConnections from 'lib/jellyfin-apiclient/ServerConnections';
import layoutManager from '../layoutManager';
import * as userSettings from '../../scripts/settings/userSettings';
import itemContextMenu from '../itemContextMenu';
+
import '../cardbuilder/card.scss';
import '../../elements/emby-button/emby-button';
import '../../elements/emby-button/paper-icon-button-light';
@@ -21,7 +23,6 @@ import '../../elements/emby-itemscontainer/emby-itemscontainer';
import './remotecontrol.scss';
import '../../elements/emby-ratingbutton/emby-ratingbutton';
import '../../elements/emby-slider/emby-slider';
-import ServerConnections from '../ServerConnections';
import toast from '../toast/toast';
import { appRouter } from '../router/appRouter';
import { getDefaultBackgroundClass } from '../cardbuilder/cardBuilderUtils';
diff --git a/src/components/router/appRouter.js b/src/components/router/appRouter.js
index 29f3cf4f4..23013117b 100644
--- a/src/components/router/appRouter.js
+++ b/src/components/router/appRouter.js
@@ -4,12 +4,12 @@ import { setBackdropTransparency } from '../backdrop/backdrop';
import globalize from '../../lib/globalize';
import itemHelper from '../itemHelper';
import loading from '../loading/loading';
-import ServerConnections from '../ServerConnections';
import alert from '../alert';
-import { queryClient } from 'utils/query/queryClient';
import { getItemQuery } from 'hooks/useItem';
+import ServerConnections from 'lib/jellyfin-apiclient/ServerConnections';
import { toApi } from 'utils/jellyfin-apiclient/compat';
+import { queryClient } from 'utils/query/queryClient';
import { history } from 'RootAppRouter';
/** Pages of "no return" (when "Go back" should behave differently, probably quitting the application). */
diff --git a/src/components/shortcuts.js b/src/components/shortcuts.js
index d76fa0c81..82386c503 100644
--- a/src/components/shortcuts.js
+++ b/src/components/shortcuts.js
@@ -8,9 +8,9 @@ import { playbackManager } from './playback/playbackmanager';
import inputManager from '../scripts/inputManager';
import { appRouter } from './router/appRouter';
import globalize from '../lib/globalize';
+import ServerConnections from 'lib/jellyfin-apiclient/ServerConnections';
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';
import { toApi } from 'utils/jellyfin-apiclient/compat';
diff --git a/src/components/slideshow/slideshow.js b/src/components/slideshow/slideshow.js
index 522a6f738..6b223c140 100644
--- a/src/components/slideshow/slideshow.js
+++ b/src/components/slideshow/slideshow.js
@@ -3,16 +3,17 @@
* @module components/slideshow/slideshow
*/
import dialogHelper from '../dialogHelper/dialogHelper';
+import ServerConnections from 'lib/jellyfin-apiclient/ServerConnections';
import inputManager from '../../scripts/inputManager';
import layoutManager from '../layoutManager';
import focusManager from '../focusManager';
import browser from '../../scripts/browser';
import { appHost } from '../apphost';
import dom from '../../scripts/dom';
+
import './style.scss';
import 'material-design-icons-iconfont';
import '../../elements/emby-button/paper-icon-button-light';
-import ServerConnections from '../ServerConnections';
import screenfull from 'screenfull';
import { randomInt } from '../../utils/number.ts';
diff --git a/src/components/subtitleeditor/subtitleeditor.js b/src/components/subtitleeditor/subtitleeditor.js
index 106ef0b56..2941f0078 100644
--- a/src/components/subtitleeditor/subtitleeditor.js
+++ b/src/components/subtitleeditor/subtitleeditor.js
@@ -3,10 +3,12 @@ import { appHost } from '../apphost';
import dialogHelper from '../dialogHelper/dialogHelper';
import layoutManager from '../layoutManager';
import globalize from '../../lib/globalize';
+import ServerConnections from 'lib/jellyfin-apiclient/ServerConnections';
import * as userSettings from '../../scripts/settings/userSettings';
import loading from '../loading/loading';
import focusManager from '../focusManager';
import dom from '../../scripts/dom';
+
import '../../elements/emby-select/emby-select';
import '../listview/listview.scss';
import '../../elements/emby-button/paper-icon-button-light';
@@ -15,7 +17,6 @@ import 'material-design-icons-iconfont';
import './subtitleeditor.scss';
import '../../elements/emby-button/emby-button';
import '../../styles/flexstyles.scss';
-import ServerConnections from '../ServerConnections';
import toast from '../toast/toast';
import confirm from '../confirm/confirm';
import template from './subtitleeditor.template.html';
diff --git a/src/components/subtitlesettings/subtitlesettings.js b/src/components/subtitlesettings/subtitlesettings.js
index 0ae3d6e9d..b335b877e 100644
--- a/src/components/subtitlesettings/subtitlesettings.js
+++ b/src/components/subtitlesettings/subtitlesettings.js
@@ -1,4 +1,5 @@
import globalize from '../../lib/globalize';
+import ServerConnections from 'lib/jellyfin-apiclient/ServerConnections';
import { appHost } from '../apphost';
import appSettings from '../../scripts/settings/appSettings';
import focusManager from '../focusManager';
@@ -8,6 +9,7 @@ import subtitleAppearanceHelper from './subtitleappearancehelper';
import settingsHelper from '../settingshelper';
import dom from '../../scripts/dom';
import Events from '../../utils/events.ts';
+
import '../listview/listview.scss';
import '../../elements/emby-select/emby-select';
import '../../elements/emby-slider/emby-slider';
@@ -15,7 +17,6 @@ import '../../elements/emby-input/emby-input';
import '../../elements/emby-checkbox/emby-checkbox';
import '../../styles/flexstyles.scss';
import './subtitlesettings.scss';
-import ServerConnections from '../ServerConnections';
import toast from '../toast/toast';
import template from './subtitlesettings.template.html';
diff --git a/src/components/subtitleuploader/subtitleuploader.js b/src/components/subtitleuploader/subtitleuploader.js
index dc13ada07..9b363576f 100644
--- a/src/components/subtitleuploader/subtitleuploader.js
+++ b/src/components/subtitleuploader/subtitleuploader.js
@@ -3,14 +3,15 @@ import escapeHtml from 'escape-html';
import { getSubtitleApi } from '@jellyfin/sdk/lib/utils/api/subtitle-api';
import { toApi } from 'utils/jellyfin-apiclient/compat';
import dialogHelper from '../../components/dialogHelper/dialogHelper';
-import ServerConnections from '../ServerConnections';
import dom from '../../scripts/dom';
import loading from '../../components/loading/loading';
import scrollHelper from '../../scripts/scrollHelper';
import layoutManager from '../layoutManager';
import globalize from '../../lib/globalize';
+import ServerConnections from 'lib/jellyfin-apiclient/ServerConnections';
import template from './subtitleuploader.template.html';
import toast from '../toast/toast';
+
import '../../elements/emby-button/emby-button';
import '../../elements/emby-select/emby-select';
import '../formdialog.scss';
diff --git a/src/components/themeMediaPlayer.js b/src/components/themeMediaPlayer.js
index fe25704ce..33a50dc70 100644
--- a/src/components/themeMediaPlayer.js
+++ b/src/components/themeMediaPlayer.js
@@ -3,6 +3,7 @@ import { MediaType } from '@jellyfin/sdk/lib/generated-client/models/media-type'
import { getLibraryApi } from '@jellyfin/sdk/lib/utils/api/library-api';
import { getItemQuery } from 'hooks/useItem';
+import ServerConnections from 'lib/jellyfin-apiclient/ServerConnections';
import { currentSettings as userSettings } from 'scripts/settings/userSettings';
import { ItemKind } from 'types/base/models/item-kind';
import Events from 'utils/events.ts';
@@ -10,7 +11,6 @@ import { toApi } from 'utils/jellyfin-apiclient/compat';
import { queryClient } from 'utils/query/queryClient';
import { playbackManager } from './playback/playbackmanager';
-import ServerConnections from './ServerConnections';
let currentOwnerId;
let currentThemeIds = [];
diff --git a/src/components/upnextdialog/upnextdialog.js b/src/components/upnextdialog/upnextdialog.js
index 74a0fc5ba..061fac20b 100644
--- a/src/components/upnextdialog/upnextdialog.js
+++ b/src/components/upnextdialog/upnextdialog.js
@@ -5,8 +5,9 @@ import mediaInfo from '../mediainfo/mediainfo';
import layoutManager from '../layoutManager';
import focusManager from '../focusManager';
import globalize from '../../lib/globalize';
+import ServerConnections from 'lib/jellyfin-apiclient/ServerConnections';
import itemHelper from '../itemHelper';
-import ServerConnections from '../ServerConnections';
+
import './upnextdialog.scss';
import '../../elements/emby-button/emby-button';
import '../../styles/flexstyles.scss';
diff --git a/src/components/userdatabuttons/userdatabuttons.js b/src/components/userdatabuttons/userdatabuttons.js
index 50b8b69e2..16ab8b755 100644
--- a/src/components/userdatabuttons/userdatabuttons.js
+++ b/src/components/userdatabuttons/userdatabuttons.js
@@ -1,11 +1,12 @@
import globalize from '../../lib/globalize';
+import ServerConnections from 'lib/jellyfin-apiclient/ServerConnections';
import dom from '../../scripts/dom';
import itemHelper from '../itemHelper';
+
import '../../elements/emby-button/paper-icon-button-light';
import 'material-design-icons-iconfont';
import '../../elements/emby-button/emby-button';
import './userdatabuttons.scss';
-import ServerConnections from '../ServerConnections';
const userDataMethods = {
markPlayed: markPlayed,
diff --git a/src/controllers/favorites.js b/src/controllers/favorites.js
index ccc689fc2..84d79ea38 100644
--- a/src/controllers/favorites.js
+++ b/src/controllers/favorites.js
@@ -2,9 +2,9 @@ import cardBuilder from 'components/cardbuilder/cardBuilder';
import focusManager from 'components/focusManager';
import layoutManager from 'components/layoutManager';
import { appRouter } from 'components/router/appRouter';
-import ServerConnections from 'components/ServerConnections';
import dom from 'scripts/dom';
import globalize from 'lib/globalize';
+import ServerConnections from 'lib/jellyfin-apiclient/ServerConnections';
import { getBackdropShape, getPortraitShape, getSquareShape } from 'utils/card';
import { ItemSortBy } from '@jellyfin/sdk/lib/generated-client/models/item-sort-by';
diff --git a/src/controllers/hometab.js b/src/controllers/hometab.js
index 9b5c08707..aeabb131f 100644
--- a/src/controllers/hometab.js
+++ b/src/controllers/hometab.js
@@ -2,8 +2,9 @@ import * as userSettings from '../scripts/settings/userSettings';
import loading from '../components/loading/loading';
import focusManager from '../components/focusManager';
import homeSections from '../components/homesections/homesections';
+import ServerConnections from 'lib/jellyfin-apiclient/ServerConnections';
+
import '../elements/emby-itemscontainer/emby-itemscontainer';
-import ServerConnections from '../components/ServerConnections';
class HomeTab {
constructor(view, params) {
diff --git a/src/controllers/itemDetails/index.js b/src/controllers/itemDetails/index.js
index c3f37a155..1c4088d31 100644
--- a/src/controllers/itemDetails/index.js
+++ b/src/controllers/itemDetails/index.js
@@ -21,12 +21,12 @@ import loading from 'components/loading/loading';
import { playbackManager } from 'components/playback/playbackmanager';
import { appRouter } from 'components/router/appRouter';
import itemShortcuts from 'components/shortcuts';
-import ServerConnections from 'components/ServerConnections';
+import globalize from 'lib/globalize';
+import ServerConnections from 'lib/jellyfin-apiclient/ServerConnections';
import browser from 'scripts/browser';
import datetime from 'scripts/datetime';
import dom from 'scripts/dom';
import { download } from 'scripts/fileDownloader';
-import globalize from 'lib/globalize';
import libraryMenu from 'scripts/libraryMenu';
import * as userSettings from 'scripts/settings/userSettings';
import { getPortraitShape, getSquareShape } from 'utils/card';
@@ -1379,7 +1379,6 @@ function renderChildren(page, item) {
if (item.Type == 'MusicAlbum') {
let showArtist = false;
for (const track of result.Items) {
- // eslint-disable-next-line sonarjs/no-alphabetical-sort
if (!isEqual(track.ArtistItems.map(x => x.Id).sort(), track.AlbumArtists.map(x => x.Id).sort())) {
showArtist = true;
break;
diff --git a/src/controllers/list.js b/src/controllers/list.js
index 479c647c2..b1a772cb6 100644
--- a/src/controllers/list.js
+++ b/src/controllers/list.js
@@ -8,9 +8,9 @@ import AlphaNumericShortcuts from '../scripts/alphanumericshortcuts';
import libraryBrowser from '../scripts/libraryBrowser';
import { playbackManager } from '../components/playback/playbackmanager';
import AlphaPicker from '../components/alphaPicker/alphaPicker';
+import ServerConnections from 'lib/jellyfin-apiclient/ServerConnections';
import '../elements/emby-itemscontainer/emby-itemscontainer';
import '../elements/emby-scroller/emby-scroller';
-import ServerConnections from '../components/ServerConnections';
import LibraryMenu from '../scripts/libraryMenu';
import { CollectionType } from '@jellyfin/sdk/lib/generated-client/models/collection-type';
import { ItemSortBy } from '@jellyfin/sdk/lib/generated-client/models/item-sort-by';
diff --git a/src/controllers/lyrics.js b/src/controllers/lyrics.js
index 6272f7fcc..98aa74e8a 100644
--- a/src/controllers/lyrics.js
+++ b/src/controllers/lyrics.js
@@ -4,12 +4,12 @@ import autoFocuser from 'components/autoFocuser';
import { appRouter } from '../components/router/appRouter';
import layoutManager from 'components/layoutManager';
import { playbackManager } from '../components/playback/playbackmanager';
-import ServerConnections from '../components/ServerConnections';
import scrollManager from 'components/scrollManager';
import focusManager from 'components/focusManager';
import keyboardNavigation from 'scripts/keyboardNavigation';
import globalize from 'lib/globalize';
+import ServerConnections from 'lib/jellyfin-apiclient/ServerConnections';
import LibraryMenu from 'scripts/libraryMenu';
import Events from 'utils/events';
diff --git a/src/controllers/playback/video/index.js b/src/controllers/playback/video/index.js
index b143df9d4..192c1b9f1 100644
--- a/src/controllers/playback/video/index.js
+++ b/src/controllers/playback/video/index.js
@@ -19,10 +19,10 @@ import '../../../elements/emby-slider/emby-slider';
import '../../../elements/emby-button/paper-icon-button-light';
import '../../../elements/emby-ratingbutton/emby-ratingbutton';
import '../../../styles/videoosd.scss';
-import ServerConnections from '../../../components/ServerConnections';
import shell from '../../../scripts/shell';
import SubtitleSync from '../../../components/subtitlesync/subtitlesync';
import { appRouter } from '../../../components/router/appRouter';
+import ServerConnections from 'lib/jellyfin-apiclient/ServerConnections';
import LibraryMenu from '../../../scripts/libraryMenu';
import { setBackdropTransparency, TRANSPARENCY_LEVEL } from '../../../components/backdrop/backdrop';
import { pluginManager } from '../../../components/pluginManager';
diff --git a/src/controllers/session/addServer/index.js b/src/controllers/session/addServer/index.js
index 251d7ae67..bf76d5099 100644
--- a/src/controllers/session/addServer/index.js
+++ b/src/controllers/session/addServer/index.js
@@ -1,10 +1,11 @@
-import appSettings from '../../../scripts/settings/appSettings';
-import loading from '../../../components/loading/loading';
-import globalize from '../../../lib/globalize';
-import '../../../elements/emby-button/emby-button';
-import Dashboard from '../../../utils/dashboard';
-import ServerConnections from '../../../components/ServerConnections';
-import { ConnectionState } from '../../../lib/jellyfin-apiclient/connectionState';
+import loading from 'components/loading/loading';
+import globalize from 'lib/globalize';
+import { ConnectionState } from 'lib/jellyfin-apiclient/connectionState';
+import ServerConnections from 'lib/jellyfin-apiclient/ServerConnections';
+import appSettings from 'scripts/settings/appSettings';
+import Dashboard from 'utils/dashboard';
+
+import 'elements/emby-button/emby-button';
function handleConnectionResult(page, result) {
loading.hide();
diff --git a/src/controllers/session/login/index.js b/src/controllers/session/login/index.js
index 4c241389a..dca448018 100644
--- a/src/controllers/session/login/index.js
+++ b/src/controllers/session/login/index.js
@@ -11,12 +11,13 @@ import globalize from '../../../lib/globalize';
import '../../../components/cardbuilder/card.scss';
import '../../../elements/emby-checkbox/emby-checkbox';
import Dashboard from '../../../utils/dashboard';
-import ServerConnections from '../../../components/ServerConnections';
import toast from '../../../components/toast/toast';
import dialogHelper from '../../../components/dialogHelper/dialogHelper';
import baseAlert from '../../../components/alert';
-import './login.scss';
import { getDefaultBackgroundClass } from '../../../components/cardbuilder/cardBuilderUtils';
+import ServerConnections from 'lib/jellyfin-apiclient/ServerConnections';
+
+import './login.scss';
const enableFocusTransform = !browser.slow && !browser.edge;
diff --git a/src/controllers/session/selectServer/index.js b/src/controllers/session/selectServer/index.js
index 7770b64cb..0b05409e1 100644
--- a/src/controllers/session/selectServer/index.js
+++ b/src/controllers/session/selectServer/index.js
@@ -17,10 +17,10 @@ import '../../../elements/emby-itemscontainer/emby-itemscontainer';
import '../../../components/cardbuilder/card.scss';
import '../../../elements/emby-button/emby-button';
import Dashboard from '../../../utils/dashboard';
-import ServerConnections from '../../../components/ServerConnections';
import alert from '../../../components/alert';
-import { ConnectionState } from '../../../lib/jellyfin-apiclient/connectionState';
import { getDefaultBackgroundClass } from '../../../components/cardbuilder/cardBuilderUtils';
+import { ConnectionState } from 'lib/jellyfin-apiclient/connectionState';
+import ServerConnections from 'lib/jellyfin-apiclient/ServerConnections';
const enableFocusTransform = !browser.slow && !browser.edge;
diff --git a/src/elements/emby-itemscontainer/emby-itemscontainer.js b/src/elements/emby-itemscontainer/emby-itemscontainer.js
index dd40a8053..1c6948f9c 100644
--- a/src/elements/emby-itemscontainer/emby-itemscontainer.js
+++ b/src/elements/emby-itemscontainer/emby-itemscontainer.js
@@ -1,3 +1,6 @@
+import 'webcomponents.js/webcomponents-lite';
+import Sortable from 'sortablejs';
+
import itemShortcuts from '../../components/shortcuts';
import inputManager from '../../scripts/inputManager';
import { playbackManager } from '../../components/playback/playbackmanager';
@@ -7,11 +10,9 @@ import browser from '../../scripts/browser';
import dom from '../../scripts/dom';
import loading from '../../components/loading/loading';
import focusManager from '../../components/focusManager';
+import ServerConnections from 'lib/jellyfin-apiclient/ServerConnections';
import serverNotifications from '../../scripts/serverNotifications';
import Events from '../../utils/events.ts';
-import 'webcomponents.js/webcomponents-lite';
-import ServerConnections from '../../components/ServerConnections';
-import Sortable from 'sortablejs';
const ItemsContainerPrototype = Object.create(HTMLDivElement.prototype);
diff --git a/src/elements/emby-playstatebutton/emby-playstatebutton.js b/src/elements/emby-playstatebutton/emby-playstatebutton.js
index 1e83bb055..40dd6cccd 100644
--- a/src/elements/emby-playstatebutton/emby-playstatebutton.js
+++ b/src/elements/emby-playstatebutton/emby-playstatebutton.js
@@ -1,8 +1,8 @@
import serverNotifications from '../../scripts/serverNotifications';
import globalize from '../../lib/globalize';
+import ServerConnections from 'lib/jellyfin-apiclient/ServerConnections';
import Events from '../../utils/events.ts';
import EmbyButtonPrototype from '../../elements/emby-button/emby-button';
-import ServerConnections from '../../components/ServerConnections';
function addNotificationEvent(instance, name, handler) {
const localHandler = handler.bind(instance);
diff --git a/src/elements/emby-ratingbutton/emby-ratingbutton.js b/src/elements/emby-ratingbutton/emby-ratingbutton.js
index a0621afea..6241d09df 100644
--- a/src/elements/emby-ratingbutton/emby-ratingbutton.js
+++ b/src/elements/emby-ratingbutton/emby-ratingbutton.js
@@ -1,8 +1,8 @@
import serverNotifications from '../../scripts/serverNotifications';
import globalize from '../../lib/globalize';
+import ServerConnections from 'lib/jellyfin-apiclient/ServerConnections';
import Events from '../../utils/events.ts';
import EmbyButtonPrototype from '../emby-button/emby-button';
-import ServerConnections from '../../components/ServerConnections';
function addNotificationEvent(instance, name, handler) {
const localHandler = handler.bind(instance);
diff --git a/src/hooks/useApi.tsx b/src/hooks/useApi.tsx
index 20614091b..a0c899e2d 100644
--- a/src/hooks/useApi.tsx
+++ b/src/hooks/useApi.tsx
@@ -3,9 +3,9 @@ import type { UserDto } from '@jellyfin/sdk/lib/generated-client';
import type { ApiClient, Event } from 'jellyfin-apiclient';
import React, { type FC, type PropsWithChildren, createContext, useContext, useEffect, useMemo, useState } from 'react';
-import ServerConnections from '../components/ServerConnections';
-import events from '../utils/events';
-import { toApi } from '../utils/jellyfin-apiclient/compat';
+import ServerConnections from 'lib/jellyfin-apiclient/ServerConnections';
+import events from 'utils/events';
+import { toApi } from 'utils/jellyfin-apiclient/compat';
export interface JellyfinApiContext {
__legacyApiClient__?: ApiClient
diff --git a/src/index.jsx b/src/index.jsx
index 66df6e33e..bf426c000 100644
--- a/src/index.jsx
+++ b/src/index.jsx
@@ -5,7 +5,7 @@ import React from 'react';
import { createRoot } from 'react-dom/client';
// NOTE: We need to import this first to initialize the connection
-import ServerConnections from './components/ServerConnections';
+import ServerConnections from 'lib/jellyfin-apiclient/ServerConnections';
import { appHost } from './components/apphost';
import autoFocuser from './components/autoFocuser';
@@ -23,7 +23,6 @@ import { pageClassOn, serverAddress } from './utils/dashboard';
import Events from './utils/events';
import RootApp from './RootApp';
-import { history } from 'RootAppRouter';
// Import the button webcomponent for use throughout the site
// NOTE: This is a bit of a hack, files should ensure the component is imported before use
@@ -206,7 +205,7 @@ async function renderApp() {
const root = createRoot(container);
root.render(
-
+
);
}
diff --git a/src/components/ServerConnections.js b/src/lib/jellyfin-apiclient/ServerConnections.js
similarity index 94%
rename from src/components/ServerConnections.js
rename to src/lib/jellyfin-apiclient/ServerConnections.js
index 630bc6364..31e73531d 100644
--- a/src/components/ServerConnections.js
+++ b/src/lib/jellyfin-apiclient/ServerConnections.js
@@ -3,12 +3,12 @@
import { Api } from '@jellyfin/sdk';
import { Credentials, ApiClient } from 'jellyfin-apiclient';
-import { appHost } from './apphost';
+import { appHost } from 'components/apphost';
import ConnectionManager from 'lib/jellyfin-apiclient/connectionManager';
-import Dashboard from '../utils/dashboard';
-import Events from '../utils/events.ts';
-import { setUserInfo } from '../scripts/settings/userSettings';
-import appSettings from '../scripts/settings/appSettings';
+import appSettings from 'scripts/settings/appSettings';
+import { setUserInfo } from 'scripts/settings/userSettings';
+import Dashboard from 'utils/dashboard';
+import Events from 'utils/events.ts';
import { toApi } from 'utils/jellyfin-apiclient/compat';
const normalizeImageOptions = options => {
diff --git a/src/plugins/backdropScreensaver/plugin.js b/src/plugins/backdropScreensaver/plugin.js
index 1058be5be..1b0c5bfb7 100644
--- a/src/plugins/backdropScreensaver/plugin.js
+++ b/src/plugins/backdropScreensaver/plugin.js
@@ -1,7 +1,7 @@
-import ServerConnections from '../../components/ServerConnections';
-import { PluginType } from '../../types/plugin.ts';
-import * as userSettings from '../../scripts/settings/userSettings';
+import ServerConnections from 'lib/jellyfin-apiclient/ServerConnections';
+import * as userSettings from 'scripts/settings/userSettings';
+import { PluginType } from 'types/plugin.ts';
class BackdropScreensaver {
constructor() {
diff --git a/src/plugins/bookPlayer/plugin.js b/src/plugins/bookPlayer/plugin.js
index 733519cb3..9ad4e8526 100644
--- a/src/plugins/bookPlayer/plugin.js
+++ b/src/plugins/bookPlayer/plugin.js
@@ -3,10 +3,10 @@ import 'material-design-icons-iconfont';
import loading from '../../components/loading/loading';
import keyboardnavigation from '../../scripts/keyboardNavigation';
import dialogHelper from '../../components/dialogHelper/dialogHelper';
-import ServerConnections from '../../components/ServerConnections';
import Screenfull from 'screenfull';
import TableOfContents from './tableOfContents';
import { translateHtml } from '../../lib/globalize';
+import ServerConnections from 'lib/jellyfin-apiclient/ServerConnections';
import browser from 'scripts/browser';
import * as userSettings from '../../scripts/settings/userSettings';
import TouchHelper from 'scripts/touchHelper';
diff --git a/src/plugins/chromecastPlayer/plugin.js b/src/plugins/chromecastPlayer/plugin.js
index 868f02691..ed85eedab 100644
--- a/src/plugins/chromecastPlayer/plugin.js
+++ b/src/plugins/chromecastPlayer/plugin.js
@@ -3,8 +3,8 @@ import * as userSettings from '../../scripts/settings/userSettings';
import { playbackManager } from '../../components/playback/playbackmanager';
import globalize from '../../lib/globalize';
import CastSenderApi from './castSenderApi';
-import ServerConnections from '../../components/ServerConnections';
import alert from '../../components/alert';
+import ServerConnections from 'lib/jellyfin-apiclient/ServerConnections';
import { PluginType } from '../../types/plugin.ts';
import Events from '../../utils/events.ts';
import { getItems } from '../../utils/jellyfin-apiclient/getItems.ts';
diff --git a/src/plugins/comicsPlayer/plugin.js b/src/plugins/comicsPlayer/plugin.js
index 0e8f599a1..8c84b121f 100644
--- a/src/plugins/comicsPlayer/plugin.js
+++ b/src/plugins/comicsPlayer/plugin.js
@@ -3,7 +3,7 @@ import loading from '../../components/loading/loading';
import dialogHelper from '../../components/dialogHelper/dialogHelper';
import keyboardnavigation from '../../scripts/keyboardNavigation';
import { appRouter } from '../../components/router/appRouter';
-import ServerConnections from '../../components/ServerConnections';
+import ServerConnections from 'lib/jellyfin-apiclient/ServerConnections';
import * as userSettings from '../../scripts/settings/userSettings';
import { PluginType } from '../../types/plugin.ts';
diff --git a/src/plugins/htmlVideoPlayer/plugin.js b/src/plugins/htmlVideoPlayer/plugin.js
index 5afc9d182..5c48b5ff8 100644
--- a/src/plugins/htmlVideoPlayer/plugin.js
+++ b/src/plugins/htmlVideoPlayer/plugin.js
@@ -29,7 +29,7 @@ import {
import itemHelper from '../../components/itemHelper';
import Screenfull from 'screenfull';
import globalize from '../../lib/globalize';
-import ServerConnections from '../../components/ServerConnections';
+import ServerConnections from 'lib/jellyfin-apiclient/ServerConnections';
import profileBuilder, { canPlaySecondaryAudio } from '../../scripts/browserDeviceProfile';
import { getIncludeCorsCredentials } from '../../scripts/settings/webSettings';
import { setBackdropTransparency, TRANSPARENCY_LEVEL } from '../../components/backdrop/backdrop';
diff --git a/src/plugins/pdfPlayer/plugin.js b/src/plugins/pdfPlayer/plugin.js
index c42869865..1c040602f 100644
--- a/src/plugins/pdfPlayer/plugin.js
+++ b/src/plugins/pdfPlayer/plugin.js
@@ -1,9 +1,9 @@
-import ServerConnections from '../../components/ServerConnections';
import loading from '../../components/loading/loading';
import keyboardnavigation from '../../scripts/keyboardNavigation';
import dialogHelper from '../../components/dialogHelper/dialogHelper';
import dom from '../../scripts/dom';
import { appRouter } from '../../components/router/appRouter';
+import ServerConnections from 'lib/jellyfin-apiclient/ServerConnections';
import { PluginType } from '../../types/plugin.ts';
import Events from '../../utils/events.ts';
diff --git a/src/plugins/photoPlayer/plugin.js b/src/plugins/photoPlayer/plugin.js
index 44aa79b82..397739314 100644
--- a/src/plugins/photoPlayer/plugin.js
+++ b/src/plugins/photoPlayer/plugin.js
@@ -1,5 +1,5 @@
-import ServerConnections from '../../components/ServerConnections';
-import { PluginType } from '../../types/plugin.ts';
+import ServerConnections from 'lib/jellyfin-apiclient/ServerConnections';
+import { PluginType } from 'types/plugin.ts';
export default class PhotoPlayer {
constructor() {
diff --git a/src/plugins/playAccessValidation/plugin.js b/src/plugins/playAccessValidation/plugin.js
index 0a3ab4a85..5202bf231 100644
--- a/src/plugins/playAccessValidation/plugin.js
+++ b/src/plugins/playAccessValidation/plugin.js
@@ -1,7 +1,7 @@
-import globalize from '../../lib/globalize';
-import ServerConnections from '../../components/ServerConnections';
-import alert from '../../components/alert';
-import { PluginType } from '../../types/plugin.ts';
+import alert from 'components/alert';
+import globalize from 'lib/globalize';
+import ServerConnections from 'lib/jellyfin-apiclient/ServerConnections';
+import { PluginType } from 'types/plugin.ts';
function showErrorMessage() {
return alert(globalize.translate('MessagePlayAccessRestricted'));
diff --git a/src/plugins/sessionPlayer/plugin.js b/src/plugins/sessionPlayer/plugin.js
index 32c24ce7e..0e55d599f 100644
--- a/src/plugins/sessionPlayer/plugin.js
+++ b/src/plugins/sessionPlayer/plugin.js
@@ -1,6 +1,6 @@
import { playbackManager } from '../../components/playback/playbackmanager';
+import ServerConnections from 'lib/jellyfin-apiclient/ServerConnections';
import serverNotifications from '../../scripts/serverNotifications';
-import ServerConnections from '../../components/ServerConnections';
import { PluginType } from '../../types/plugin.ts';
import Events from '../../utils/events.ts';
import isEqual from 'lodash-es/isEqual';
diff --git a/src/plugins/syncPlay/plugin.ts b/src/plugins/syncPlay/plugin.ts
index 33d99aa75..a32c64ec3 100644
--- a/src/plugins/syncPlay/plugin.ts
+++ b/src/plugins/syncPlay/plugin.ts
@@ -1,5 +1,5 @@
import { playbackManager } from '../../components/playback/playbackmanager';
-import ServerConnections from '../../components/ServerConnections';
+import ServerConnections from 'lib/jellyfin-apiclient/ServerConnections';
import Events from '../../utils/events';
import SyncPlay from './core';
import SyncPlayNoActivePlayer from './ui/players/NoActivePlayer';
diff --git a/src/plugins/syncPlay/ui/groupSelectionMenu.js b/src/plugins/syncPlay/ui/groupSelectionMenu.js
index ec224c64b..543d83977 100644
--- a/src/plugins/syncPlay/ui/groupSelectionMenu.js
+++ b/src/plugins/syncPlay/ui/groupSelectionMenu.js
@@ -5,7 +5,7 @@ import actionsheet from '../../../components/actionSheet/actionSheet';
import globalize from '../../../lib/globalize';
import playbackPermissionManager from './playbackPermissionManager';
import { pluginManager } from '../../../components/pluginManager';
-import ServerConnections from '../../../components/ServerConnections';
+import ServerConnections from 'lib/jellyfin-apiclient/ServerConnections';
import { PluginType } from '../../../types/plugin.ts';
import Events from '../../../utils/events.ts';
diff --git a/src/scripts/autoBackdrops.js b/src/scripts/autoBackdrops.js
index 0ba53e242..4083e4602 100644
--- a/src/scripts/autoBackdrops.js
+++ b/src/scripts/autoBackdrops.js
@@ -4,8 +4,8 @@ import libraryMenu from './libraryMenu';
import { pageClassOn } from '../utils/dashboard';
import { queryClient } from 'utils/query/queryClient';
import { getBrandingOptionsQuery } from 'apps/dashboard/features/branding/api/useBrandingOptions';
-import ServerConnections from 'components/ServerConnections';
import { SPLASHSCREEN_URL } from 'constants/branding';
+import ServerConnections from 'lib/jellyfin-apiclient/ServerConnections';
const cache = {};
diff --git a/src/scripts/autoThemes.js b/src/scripts/autoThemes.js
index b7c2fdf0d..673efa56f 100644
--- a/src/scripts/autoThemes.js
+++ b/src/scripts/autoThemes.js
@@ -1,8 +1,8 @@
import * as userSettings from './settings/userSettings';
import skinManager from './themeManager';
-import ServerConnections from '../components/ServerConnections';
-import { pageClassOn } from '../utils/dashboard';
-import Events from '../utils/events.ts';
+import ServerConnections from 'lib/jellyfin-apiclient/ServerConnections';
+import { pageClassOn } from 'utils/dashboard';
+import Events from 'utils/events.ts';
// Set the default theme when loading
skinManager.setTheme(userSettings.theme())
diff --git a/src/scripts/autocast.js b/src/scripts/autocast.js
index 65d7b19de..87462f07c 100644
--- a/src/scripts/autocast.js
+++ b/src/scripts/autocast.js
@@ -1,6 +1,6 @@
-import ServerConnections from 'components/ServerConnections';
-import { playbackManager } from '../components/playback/playbackmanager';
-import Events from '../utils/events.ts';
+import { playbackManager } from 'components/playback/playbackmanager';
+import ServerConnections from 'lib/jellyfin-apiclient/ServerConnections';
+import Events from 'utils/events.ts';
export function enable(enabled) {
console.debug('[autocast] %s cast player', enabled ? 'enabling' : 'disabling');
diff --git a/src/scripts/deleteHelper.js b/src/scripts/deleteHelper.js
index e482737c5..d9afa4d01 100644
--- a/src/scripts/deleteHelper.js
+++ b/src/scripts/deleteHelper.js
@@ -1,11 +1,12 @@
-import globalize from 'lib/globalize';
-import alert from '../components/alert';
-import confirm from '../components/confirm/confirm';
-import { appRouter } from '../components/router/appRouter';
-import ServerConnections from '../components/ServerConnections';
import { BaseItemKind } from '@jellyfin/sdk/lib/generated-client/models/base-item-kind';
+import alert from 'components/alert';
+import confirm from 'components/confirm/confirm';
+import { appRouter } from 'components/router/appRouter';
+import globalize from 'lib/globalize';
+import ServerConnections from 'lib/jellyfin-apiclient/ServerConnections';
+
function alertText(options) {
return alert(options);
}
diff --git a/src/scripts/itemsByName.js b/src/scripts/itemsByName.js
index 936c7b877..6b4cbefca 100644
--- a/src/scripts/itemsByName.js
+++ b/src/scripts/itemsByName.js
@@ -1,10 +1,11 @@
-import listView from '../components/listview/listview';
-import cardBuilder from '../components/cardbuilder/cardBuilder';
-import imageLoader from '../components/images/imageLoader';
+import listView from 'components/listview/listview';
+import cardBuilder from 'components/cardbuilder/cardBuilder';
+import imageLoader from 'components/images/imageLoader';
import globalize from 'lib/globalize';
-import '../elements/emby-itemscontainer/emby-itemscontainer';
-import '../elements/emby-button/emby-button';
-import ServerConnections from '../components/ServerConnections';
+import ServerConnections from 'lib/jellyfin-apiclient/ServerConnections';
+
+import 'elements/emby-itemscontainer/emby-itemscontainer';
+import 'elements/emby-button/emby-button';
function renderItems(page, item) {
const sections = [];
diff --git a/src/scripts/libraryMenu.js b/src/scripts/libraryMenu.js
index fe93f8bd7..cecd63381 100644
--- a/src/scripts/libraryMenu.js
+++ b/src/scripts/libraryMenu.js
@@ -20,10 +20,10 @@ import { pluginManager } from '../components/pluginManager';
import groupSelectionMenu from '../plugins/syncPlay/ui/groupSelectionMenu';
import browser from './browser';
import globalize from 'lib/globalize';
+import ServerConnections from 'lib/jellyfin-apiclient/ServerConnections';
import imageHelper from '../utils/image';
import { getMenuLinks } from '../scripts/settings/webSettings';
import Dashboard, { pageClassOn } from '../utils/dashboard';
-import ServerConnections from '../components/ServerConnections';
import { PluginType } from '../types/plugin.ts';
import Events from '../utils/events.ts';
import { getParameterByName } from '../utils/url.ts';
diff --git a/src/scripts/playlistViewer.js b/src/scripts/playlistViewer.js
index 524086312..ff8e22506 100644
--- a/src/scripts/playlistViewer.js
+++ b/src/scripts/playlistViewer.js
@@ -1,7 +1,7 @@
import { getPlaylistsApi } from '@jellyfin/sdk/lib/utils/api/playlists-api';
-import ServerConnections from 'components/ServerConnections';
import listView from 'components/listview/listview';
+import ServerConnections from 'lib/jellyfin-apiclient/ServerConnections';
import { toApi } from 'utils/jellyfin-apiclient/compat';
function getFetchPlaylistItemsFn(apiClient, itemId) {
diff --git a/src/scripts/screensavermanager.js b/src/scripts/screensavermanager.js
index fccc2751a..f085b1a91 100644
--- a/src/scripts/screensavermanager.js
+++ b/src/scripts/screensavermanager.js
@@ -1,10 +1,11 @@
-import { playbackManager } from '../components/playback/playbackmanager';
-import { pluginManager } from '../components/pluginManager';
+import { playbackManager } from 'components/playback/playbackmanager';
+import { pluginManager } from 'components/pluginManager';
+import ServerConnections from 'lib/jellyfin-apiclient/ServerConnections';
+import { PluginType } from 'types/plugin.ts';
+import Events from 'utils/events.ts';
+
import inputManager from './inputManager';
import * as userSettings from './settings/userSettings';
-import ServerConnections from '../components/ServerConnections';
-import { PluginType } from '../types/plugin.ts';
-import Events from '../utils/events.ts';
import './screensavermanager.scss';
diff --git a/src/scripts/serverNotifications.js b/src/scripts/serverNotifications.js
index 00088ef29..2b0d231b8 100644
--- a/src/scripts/serverNotifications.js
+++ b/src/scripts/serverNotifications.js
@@ -1,13 +1,13 @@
-import { playbackManager } from '../components/playback/playbackmanager';
-import { pluginManager } from '../components/pluginManager';
-import inputManager from '../scripts/inputManager';
-import focusManager from '../components/focusManager';
-import { appRouter } from '../components/router/appRouter';
-import ServerConnections from '../components/ServerConnections';
-import toast from '../components/toast/toast';
-import alert from '../components/alert';
-import Events from '../utils/events.ts';
-import { PluginType } from '../types/plugin.ts';
+import alert from 'components/alert';
+import focusManager from 'components/focusManager';
+import { playbackManager } from 'components/playback/playbackmanager';
+import { pluginManager } from 'components/pluginManager';
+import { appRouter } from 'components/router/appRouter';
+import toast from 'components/toast/toast';
+import ServerConnections from 'lib/jellyfin-apiclient/ServerConnections';
+import inputManager from 'scripts/inputManager';
+import Events from 'utils/events.ts';
+import { PluginType } from 'types/plugin.ts';
const serverNotifications = {};
diff --git a/src/scripts/taskbutton.js b/src/scripts/taskbutton.js
index 0bc9c0ab8..bb2066fce 100644
--- a/src/scripts/taskbutton.js
+++ b/src/scripts/taskbutton.js
@@ -1,10 +1,10 @@
-import serverNotifications from '../scripts/serverNotifications';
-import globalize from '../lib/globalize';
-import ServerConnections from '../components/ServerConnections';
-import Events from '../utils/events.ts';
+import globalize from 'lib/globalize';
+import ServerConnections from 'lib/jellyfin-apiclient/ServerConnections';
+import serverNotifications from 'scripts/serverNotifications';
+import Events from 'utils/events.ts';
-import '../elements/emby-button/emby-button';
+import 'elements/emby-button/emby-button';
function taskbutton(options) {
function pollTasks() {
diff --git a/src/utils/dashboard.js b/src/utils/dashboard.js
index 9b468730d..666951acb 100644
--- a/src/utils/dashboard.js
+++ b/src/utils/dashboard.js
@@ -1,10 +1,10 @@
-import ServerConnections from '../components/ServerConnections';
import toast from '../components/toast/toast';
import loading from '../components/loading/loading';
import { appRouter } from '../components/router/appRouter';
import baseAlert from '../components/alert';
import baseConfirm from '../components/confirm/confirm';
import globalize from '../lib/globalize';
+import ServerConnections from 'lib/jellyfin-apiclient/ServerConnections';
import * as webSettings from '../scripts/settings/webSettings';
import datetime from '../scripts/datetime';
import { setBackdropTransparency } from '../components/backdrop/backdrop';
From 953073cd28b4cccc128672f514e15cb3bd58f616 Mon Sep 17 00:00:00 2001
From: Bill Thornton
Date: Tue, 22 Apr 2025 08:48:34 -0400
Subject: [PATCH 076/645] Use index file for apiclient lib imports
---
src/apiclient.d.ts | 2 +-
src/apps/dashboard/controllers/dashboard.js | 2 +-
src/apps/dashboard/routes/branding/index.tsx | 2 +-
src/apps/dashboard/routes/libraries/display.tsx | 2 +-
src/apps/dashboard/routes/libraries/metadata.tsx | 2 +-
src/apps/dashboard/routes/libraries/nfo.tsx | 2 +-
src/apps/dashboard/routes/logs/index.tsx | 2 +-
src/apps/dashboard/routes/playback/resume.tsx | 2 +-
src/apps/dashboard/routes/playback/streaming.tsx | 2 +-
src/apps/dashboard/routes/playback/trickplay.tsx | 2 +-
src/apps/dashboard/routes/settings/index.tsx | 2 +-
src/apps/dashboard/routes/users/parentalcontrol.tsx | 2 +-
src/apps/stable/features/playback/utils/image.ts | 2 +-
src/apps/stable/features/playback/utils/mediaSegmentManager.ts | 2 +-
src/apps/wizard/controllers/finish/index.js | 2 +-
src/apps/wizard/controllers/library.js | 2 +-
src/apps/wizard/controllers/remote/index.js | 2 +-
src/apps/wizard/controllers/settings/index.js | 2 +-
src/apps/wizard/controllers/start/index.js | 2 +-
src/apps/wizard/controllers/user/index.js | 2 +-
src/components/ConnectionRequired.tsx | 3 +--
src/components/ServerContentPage.tsx | 2 +-
src/components/activitylog.js | 2 +-
src/components/backdrop/backdrop.js | 2 +-
src/components/cardbuilder/cardBuilder.js | 2 +-
src/components/cardbuilder/chaptercardbuilder.js | 2 +-
src/components/channelMapper/channelMapper.js | 2 +-
src/components/collectionEditor/collectionEditor.js | 2 +-
src/components/displaySettings/displaySettings.js | 2 +-
src/components/filterdialog/filterdialog.js | 2 +-
src/components/filtermenu/filtermenu.js | 2 +-
src/components/groupedcards.js | 2 +-
src/components/guide/guide.js | 2 +-
src/components/homeScreenSettings/homeScreenSettings.js | 2 +-
src/components/homesections/sections/activeRecordings.ts | 2 +-
src/components/homesections/sections/liveTv.ts | 2 +-
src/components/homesections/sections/nextUp.ts | 2 +-
src/components/homesections/sections/recentlyAdded.ts | 2 +-
src/components/homesections/sections/resume.ts | 2 +-
src/components/imageDownloader/imageDownloader.js | 2 +-
src/components/imageUploader/imageUploader.js | 2 +-
src/components/imageeditor/imageeditor.js | 2 +-
src/components/itemContextMenu.js | 2 +-
src/components/itemHelper.js | 2 +-
src/components/itemMediaInfo/itemMediaInfo.js | 2 +-
src/components/itemidentifier/itemidentifier.js | 2 +-
src/components/listview/listview.js | 2 +-
src/components/lyricseditor/lyricseditor.js | 2 +-
src/components/lyricsuploader/lyricsuploader.js | 2 +-
src/components/metadataEditor/metadataEditor.js | 2 +-
src/components/multiSelect/multiSelect.js | 2 +-
src/components/notifications/notifications.js | 2 +-
src/components/nowPlayingBar/nowPlayingBar.js | 2 +-
src/components/playback/displayMirrorManager.ts | 2 +-
src/components/playback/playbackmanager.js | 2 +-
src/components/playback/playersettingsmenu.js | 2 +-
src/components/playbackSettings/playbackSettings.js | 2 +-
src/components/playerstats/playerstats.js | 2 +-
src/components/playlisteditor/playlisteditor.ts | 2 +-
src/components/pluginManager.js | 2 +-
src/components/recordingcreator/recordingbutton.js | 2 +-
src/components/recordingcreator/recordingcreator.js | 2 +-
src/components/recordingcreator/recordingeditor.js | 2 +-
src/components/recordingcreator/recordingfields.js | 2 +-
src/components/recordingcreator/recordinghelper.js | 2 +-
src/components/recordingcreator/seriesrecordingeditor.js | 2 +-
src/components/refreshdialog/refreshdialog.js | 2 +-
src/components/remotecontrol/remotecontrol.js | 2 +-
src/components/router/appRouter.js | 2 +-
src/components/shortcuts.js | 2 +-
src/components/slideshow/slideshow.js | 2 +-
src/components/subtitleeditor/subtitleeditor.js | 2 +-
src/components/subtitlesettings/subtitlesettings.js | 2 +-
src/components/subtitleuploader/subtitleuploader.js | 2 +-
src/components/themeMediaPlayer.js | 2 +-
src/components/upnextdialog/upnextdialog.js | 2 +-
src/components/userdatabuttons/userdatabuttons.js | 2 +-
src/controllers/favorites.js | 2 +-
src/controllers/hometab.js | 2 +-
src/controllers/itemDetails/index.js | 2 +-
src/controllers/list.js | 2 +-
src/controllers/lyrics.js | 2 +-
src/controllers/playback/video/index.js | 2 +-
src/controllers/session/addServer/index.js | 3 +--
src/controllers/session/login/index.js | 2 +-
src/controllers/session/selectServer/index.js | 3 +--
src/elements/emby-itemscontainer/emby-itemscontainer.js | 2 +-
src/elements/emby-playstatebutton/emby-playstatebutton.js | 2 +-
src/elements/emby-ratingbutton/emby-ratingbutton.js | 2 +-
src/hooks/useApi.tsx | 2 +-
src/index.jsx | 2 +-
src/lib/jellyfin-apiclient/ServerConnections.js | 3 ++-
src/lib/jellyfin-apiclient/index.ts | 3 +++
src/plugins/backdropScreensaver/plugin.js | 2 +-
src/plugins/bookPlayer/plugin.js | 2 +-
src/plugins/chromecastPlayer/plugin.js | 2 +-
src/plugins/comicsPlayer/plugin.js | 2 +-
src/plugins/htmlVideoPlayer/plugin.js | 2 +-
src/plugins/pdfPlayer/plugin.js | 2 +-
src/plugins/photoPlayer/plugin.js | 2 +-
src/plugins/playAccessValidation/plugin.js | 2 +-
src/plugins/sessionPlayer/plugin.js | 2 +-
src/plugins/syncPlay/plugin.ts | 2 +-
src/plugins/syncPlay/ui/groupSelectionMenu.js | 2 +-
src/scripts/autoBackdrops.js | 2 +-
src/scripts/autoThemes.js | 2 +-
src/scripts/autocast.js | 2 +-
src/scripts/deleteHelper.js | 2 +-
src/scripts/itemsByName.js | 2 +-
src/scripts/libraryMenu.js | 2 +-
src/scripts/playlistViewer.js | 2 +-
src/scripts/screensavermanager.js | 2 +-
src/scripts/serverNotifications.js | 2 +-
src/scripts/taskbutton.js | 2 +-
src/utils/dashboard.js | 2 +-
115 files changed, 118 insertions(+), 117 deletions(-)
create mode 100644 src/lib/jellyfin-apiclient/index.ts
diff --git a/src/apiclient.d.ts b/src/apiclient.d.ts
index f250ccfce..0d8729e7d 100644
--- a/src/apiclient.d.ts
+++ b/src/apiclient.d.ts
@@ -67,7 +67,7 @@ declare module 'jellyfin-apiclient' {
UtcTimeResponse,
VirtualFolderInfo
} from '@jellyfin/sdk/lib/generated-client';
- import type { ConnectionState } from 'lib/jellyfin-apiclient/connectionState';
+ import type { ConnectionState } from 'lib/jellyfin-apiclient';
class ApiClient {
constructor(serverAddress: string, appName: string, appVersion: string, deviceName: string, deviceId: string);
diff --git a/src/apps/dashboard/controllers/dashboard.js b/src/apps/dashboard/controllers/dashboard.js
index 8b6167182..2388ac717 100644
--- a/src/apps/dashboard/controllers/dashboard.js
+++ b/src/apps/dashboard/controllers/dashboard.js
@@ -22,7 +22,7 @@ import confirm from 'components/confirm/confirm';
import { getDefaultBackgroundClass } from 'components/cardbuilder/cardBuilderUtils';
import { getSystemInfoQuery } from 'hooks/useSystemInfo';
-import ServerConnections from 'lib/jellyfin-apiclient/ServerConnections';
+import { ServerConnections } from 'lib/jellyfin-apiclient';
import { toApi } from 'utils/jellyfin-apiclient/compat';
import { queryClient } from 'utils/query/queryClient';
diff --git a/src/apps/dashboard/routes/branding/index.tsx b/src/apps/dashboard/routes/branding/index.tsx
index e124aba01..26595a50d 100644
--- a/src/apps/dashboard/routes/branding/index.tsx
+++ b/src/apps/dashboard/routes/branding/index.tsx
@@ -21,7 +21,7 @@ import Page from 'components/Page';
import { SPLASHSCREEN_URL } from 'constants/branding';
import { useApi } from 'hooks/useApi';
import globalize from 'lib/globalize';
-import ServerConnections from 'lib/jellyfin-apiclient/ServerConnections';
+import { ServerConnections } from 'lib/jellyfin-apiclient';
import { queryClient } from 'utils/query/queryClient';
import { ActionData } from 'types/actionData';
diff --git a/src/apps/dashboard/routes/libraries/display.tsx b/src/apps/dashboard/routes/libraries/display.tsx
index 8dd377e94..9cd0852c9 100644
--- a/src/apps/dashboard/routes/libraries/display.tsx
+++ b/src/apps/dashboard/routes/libraries/display.tsx
@@ -16,7 +16,7 @@ import { getConfigurationApi } from '@jellyfin/sdk/lib/utils/api/configuration-a
import { QUERY_KEY as CONFIG_QUERY_KEY, useConfiguration } from 'hooks/useConfiguration';
import { QUERY_KEY as NAMED_CONFIG_QUERY_KEY, NamedConfiguration, useNamedConfiguration } from 'hooks/useNamedConfiguration';
import globalize from 'lib/globalize';
-import ServerConnections from 'lib/jellyfin-apiclient/ServerConnections';
+import { ServerConnections } from 'lib/jellyfin-apiclient';
import { type ActionFunctionArgs, Form, useActionData, useNavigation } from 'react-router-dom';
import { ActionData } from 'types/actionData';
import { queryClient } from 'utils/query/queryClient';
diff --git a/src/apps/dashboard/routes/libraries/metadata.tsx b/src/apps/dashboard/routes/libraries/metadata.tsx
index ae611329b..122072d4e 100644
--- a/src/apps/dashboard/routes/libraries/metadata.tsx
+++ b/src/apps/dashboard/routes/libraries/metadata.tsx
@@ -14,7 +14,7 @@ import Loading from 'components/loading/LoadingComponent';
import Page from 'components/Page';
import { QUERY_KEY, useConfiguration } from 'hooks/useConfiguration';
import globalize from 'lib/globalize';
-import ServerConnections from 'lib/jellyfin-apiclient/ServerConnections';
+import { ServerConnections } from 'lib/jellyfin-apiclient';
import React from 'react';
import { type ActionFunctionArgs, Form, useActionData, useNavigation } from 'react-router-dom';
import { ActionData } from 'types/actionData';
diff --git a/src/apps/dashboard/routes/libraries/nfo.tsx b/src/apps/dashboard/routes/libraries/nfo.tsx
index 65d3bbe10..326834a83 100644
--- a/src/apps/dashboard/routes/libraries/nfo.tsx
+++ b/src/apps/dashboard/routes/libraries/nfo.tsx
@@ -16,7 +16,7 @@ import SimpleAlert from 'components/SimpleAlert';
import { QUERY_KEY, useNamedConfiguration } from 'hooks/useNamedConfiguration';
import { useUsers } from 'hooks/useUsers';
import globalize from 'lib/globalize';
-import ServerConnections from 'lib/jellyfin-apiclient/ServerConnections';
+import { ServerConnections } from 'lib/jellyfin-apiclient';
import React, { useCallback, useState } from 'react';
import { type ActionFunctionArgs, Form, useActionData, useNavigation } from 'react-router-dom';
import { ActionData } from 'types/actionData';
diff --git a/src/apps/dashboard/routes/logs/index.tsx b/src/apps/dashboard/routes/logs/index.tsx
index 68027807f..b5d8b0967 100644
--- a/src/apps/dashboard/routes/logs/index.tsx
+++ b/src/apps/dashboard/routes/logs/index.tsx
@@ -3,7 +3,7 @@ import { getConfigurationApi } from '@jellyfin/sdk/lib/utils/api/configuration-a
import Loading from 'components/loading/LoadingComponent';
import Page from 'components/Page';
import globalize from 'lib/globalize';
-import ServerConnections from 'lib/jellyfin-apiclient/ServerConnections';
+import { ServerConnections } from 'lib/jellyfin-apiclient';
import Alert from '@mui/material/Alert';
import Box from '@mui/material/Box';
import Button from '@mui/material/Button';
diff --git a/src/apps/dashboard/routes/playback/resume.tsx b/src/apps/dashboard/routes/playback/resume.tsx
index 520c15eaf..6bd23a8ce 100644
--- a/src/apps/dashboard/routes/playback/resume.tsx
+++ b/src/apps/dashboard/routes/playback/resume.tsx
@@ -1,7 +1,7 @@
import React from 'react';
import Page from 'components/Page';
import globalize from 'lib/globalize';
-import ServerConnections from 'lib/jellyfin-apiclient/ServerConnections';
+import { ServerConnections } from 'lib/jellyfin-apiclient';
import Alert from '@mui/material/Alert';
import Box from '@mui/material/Box';
import Button from '@mui/material/Button';
diff --git a/src/apps/dashboard/routes/playback/streaming.tsx b/src/apps/dashboard/routes/playback/streaming.tsx
index d3d5a3f56..b3be899d6 100644
--- a/src/apps/dashboard/routes/playback/streaming.tsx
+++ b/src/apps/dashboard/routes/playback/streaming.tsx
@@ -1,7 +1,7 @@
import React from 'react';
import Page from 'components/Page';
import globalize from 'lib/globalize';
-import ServerConnections from 'lib/jellyfin-apiclient/ServerConnections';
+import { ServerConnections } from 'lib/jellyfin-apiclient';
import Alert from '@mui/material/Alert';
import Box from '@mui/material/Box';
import Button from '@mui/material/Button';
diff --git a/src/apps/dashboard/routes/playback/trickplay.tsx b/src/apps/dashboard/routes/playback/trickplay.tsx
index 05984a0d7..d44814771 100644
--- a/src/apps/dashboard/routes/playback/trickplay.tsx
+++ b/src/apps/dashboard/routes/playback/trickplay.tsx
@@ -1,7 +1,7 @@
import React from 'react';
import globalize from 'lib/globalize';
-import ServerConnections from 'lib/jellyfin-apiclient/ServerConnections';
+import { ServerConnections } from 'lib/jellyfin-apiclient';
import { type ActionFunctionArgs, Form, useActionData, useNavigation } from 'react-router-dom';
import { QUERY_KEY, useConfiguration } from 'hooks/useConfiguration';
import Page from 'components/Page';
diff --git a/src/apps/dashboard/routes/settings/index.tsx b/src/apps/dashboard/routes/settings/index.tsx
index 9ad2486a0..f86614600 100644
--- a/src/apps/dashboard/routes/settings/index.tsx
+++ b/src/apps/dashboard/routes/settings/index.tsx
@@ -11,7 +11,7 @@ import Page from 'components/Page';
import { QUERY_KEY, useConfiguration } from 'hooks/useConfiguration';
import { useSystemInfo } from 'hooks/useSystemInfo';
import globalize from 'lib/globalize';
-import ServerConnections from 'lib/jellyfin-apiclient/ServerConnections';
+import { ServerConnections } from 'lib/jellyfin-apiclient';
import React, { useCallback, useEffect, useState } from 'react';
import { type ActionFunctionArgs, Form, useActionData, useNavigation } from 'react-router-dom';
import SearchIcon from '@mui/icons-material/Search';
diff --git a/src/apps/dashboard/routes/users/parentalcontrol.tsx b/src/apps/dashboard/routes/users/parentalcontrol.tsx
index 9129421fb..c171719b0 100644
--- a/src/apps/dashboard/routes/users/parentalcontrol.tsx
+++ b/src/apps/dashboard/routes/users/parentalcontrol.tsx
@@ -17,7 +17,7 @@ import CheckBoxElement from '../../../../elements/CheckBoxElement';
import SelectElement from '../../../../elements/SelectElement';
import Page from '../../../../components/Page';
import prompt from '../../../../components/prompt/prompt';
-import ServerConnections from 'lib/jellyfin-apiclient/ServerConnections';
+import { ServerConnections } from 'lib/jellyfin-apiclient';
type NamedItem = {
name: string;
diff --git a/src/apps/stable/features/playback/utils/image.ts b/src/apps/stable/features/playback/utils/image.ts
index d35f678ee..4497846d9 100644
--- a/src/apps/stable/features/playback/utils/image.ts
+++ b/src/apps/stable/features/playback/utils/image.ts
@@ -1,7 +1,7 @@
import { BaseItemKind } from '@jellyfin/sdk/lib/generated-client/models/base-item-kind';
import { ImageType } from '@jellyfin/sdk/lib/generated-client/models/image-type';
-import ServerConnections from 'lib/jellyfin-apiclient/ServerConnections';
+import { ServerConnections } from 'lib/jellyfin-apiclient';
import type { ItemDto } from 'types/base/models/item-dto';
interface ImageOptions {
diff --git a/src/apps/stable/features/playback/utils/mediaSegmentManager.ts b/src/apps/stable/features/playback/utils/mediaSegmentManager.ts
index 85b5b8309..a3bf7e939 100644
--- a/src/apps/stable/features/playback/utils/mediaSegmentManager.ts
+++ b/src/apps/stable/features/playback/utils/mediaSegmentManager.ts
@@ -5,7 +5,7 @@ import { getMediaSegmentsApi } from '@jellyfin/sdk/lib/utils/api/media-segments-
import type { PlaybackManager } from 'components/playback/playbackmanager';
import { TICKS_PER_MILLISECOND, TICKS_PER_SECOND } from 'constants/time';
-import ServerConnections from 'lib/jellyfin-apiclient/ServerConnections';
+import { ServerConnections } from 'lib/jellyfin-apiclient';
import { currentSettings as userSettings } from 'scripts/settings/userSettings';
import type { PlayerState } from 'types/playbackStopInfo';
import type { Event } from 'utils/events';
diff --git a/src/apps/wizard/controllers/finish/index.js b/src/apps/wizard/controllers/finish/index.js
index 05770cc15..bea7e28e7 100644
--- a/src/apps/wizard/controllers/finish/index.js
+++ b/src/apps/wizard/controllers/finish/index.js
@@ -1,5 +1,5 @@
import loading from 'components/loading/loading';
-import ServerConnections from 'lib/jellyfin-apiclient/ServerConnections';
+import { ServerConnections } from 'lib/jellyfin-apiclient';
function onFinish() {
loading.show();
diff --git a/src/apps/wizard/controllers/library.js b/src/apps/wizard/controllers/library.js
index 598fb29a5..dfa0f17e4 100644
--- a/src/apps/wizard/controllers/library.js
+++ b/src/apps/wizard/controllers/library.js
@@ -4,7 +4,7 @@ import { getDefaultBackgroundClass } from 'components/cardbuilder/cardBuilderUti
import confirm from 'components/confirm/confirm';
import loading from 'components/loading/loading';
import globalize from 'lib/globalize';
-import ServerConnections from 'lib/jellyfin-apiclient/ServerConnections';
+import { ServerConnections } from 'lib/jellyfin-apiclient';
import dom from 'scripts/dom';
import taskButton from 'scripts/taskbutton';
import Dashboard, { pageClassOn, pageIdOn } from 'utils/dashboard';
diff --git a/src/apps/wizard/controllers/remote/index.js b/src/apps/wizard/controllers/remote/index.js
index 441d67ea1..7b35e2cb6 100644
--- a/src/apps/wizard/controllers/remote/index.js
+++ b/src/apps/wizard/controllers/remote/index.js
@@ -1,5 +1,5 @@
import loading from 'components/loading/loading';
-import ServerConnections from 'lib/jellyfin-apiclient/ServerConnections';
+import { ServerConnections } from 'lib/jellyfin-apiclient';
import Dashboard from 'utils/dashboard';
import 'elements/emby-checkbox/emby-checkbox';
diff --git a/src/apps/wizard/controllers/settings/index.js b/src/apps/wizard/controllers/settings/index.js
index 605910235..765530a2b 100644
--- a/src/apps/wizard/controllers/settings/index.js
+++ b/src/apps/wizard/controllers/settings/index.js
@@ -1,5 +1,5 @@
import loading from 'components/loading/loading';
-import ServerConnections from 'lib/jellyfin-apiclient/ServerConnections';
+import { ServerConnections } from 'lib/jellyfin-apiclient';
import Dashboard from 'utils/dashboard';
import 'elements/emby-button/emby-button';
diff --git a/src/apps/wizard/controllers/start/index.js b/src/apps/wizard/controllers/start/index.js
index 0311f5da6..9081a6c52 100644
--- a/src/apps/wizard/controllers/start/index.js
+++ b/src/apps/wizard/controllers/start/index.js
@@ -1,5 +1,5 @@
import loading from 'components/loading/loading';
-import ServerConnections from 'lib/jellyfin-apiclient/ServerConnections';
+import { ServerConnections } from 'lib/jellyfin-apiclient';
import Dashboard from 'utils/dashboard';
import dom from 'scripts/dom';
diff --git a/src/apps/wizard/controllers/user/index.js b/src/apps/wizard/controllers/user/index.js
index 034f5e27e..a9255754f 100644
--- a/src/apps/wizard/controllers/user/index.js
+++ b/src/apps/wizard/controllers/user/index.js
@@ -1,7 +1,7 @@
import loading from 'components/loading/loading';
import toast from 'components/toast/toast';
import globalize from 'lib/globalize';
-import ServerConnections from 'lib/jellyfin-apiclient/ServerConnections';
+import { ServerConnections } from 'lib/jellyfin-apiclient';
import Dashboard from 'utils/dashboard';
import 'styles/dashboard.scss';
diff --git a/src/components/ConnectionRequired.tsx b/src/components/ConnectionRequired.tsx
index ec4e83907..e84e86de4 100644
--- a/src/components/ConnectionRequired.tsx
+++ b/src/components/ConnectionRequired.tsx
@@ -3,8 +3,7 @@ import { Outlet, useLocation, useNavigate } from 'react-router-dom';
import type { ApiClient, ConnectResponse } from 'jellyfin-apiclient';
import globalize from 'lib/globalize';
-import { ConnectionState } from 'lib/jellyfin-apiclient/connectionState';
-import ServerConnections from 'lib/jellyfin-apiclient/ServerConnections';
+import { ConnectionState, ServerConnections } from 'lib/jellyfin-apiclient';
import alert from './alert';
import Loading from './loading/LoadingComponent';
diff --git a/src/components/ServerContentPage.tsx b/src/components/ServerContentPage.tsx
index 152d23cb8..2400e4fd1 100644
--- a/src/components/ServerContentPage.tsx
+++ b/src/components/ServerContentPage.tsx
@@ -3,7 +3,7 @@ import { useLocation } from 'react-router-dom';
import viewManager from './viewManager/viewManager';
import globalize from 'lib/globalize';
-import ServerConnections from 'lib/jellyfin-apiclient/ServerConnections';
+import { ServerConnections } from 'lib/jellyfin-apiclient';
import type { RestoreViewFailResponse } from 'types/viewManager';
interface ServerContentPageProps {
diff --git a/src/components/activitylog.js b/src/components/activitylog.js
index 4afc28fdb..cde6c81da 100644
--- a/src/components/activitylog.js
+++ b/src/components/activitylog.js
@@ -1,7 +1,7 @@
import escapeHtml from 'escape-html';
import Events from '../utils/events.ts';
import globalize from '../lib/globalize';
-import ServerConnections from 'lib/jellyfin-apiclient/ServerConnections';
+import { ServerConnections } from 'lib/jellyfin-apiclient';
import dom from '../scripts/dom';
import { formatRelative } from 'date-fns';
import serverNotifications from '../scripts/serverNotifications';
diff --git a/src/components/backdrop/backdrop.js b/src/components/backdrop/backdrop.js
index 14d71298e..cc7346d5f 100644
--- a/src/components/backdrop/backdrop.js
+++ b/src/components/backdrop/backdrop.js
@@ -1,5 +1,5 @@
import isEqual from 'lodash-es/isEqual';
-import ServerConnections from 'lib/jellyfin-apiclient/ServerConnections';
+import { ServerConnections } from 'lib/jellyfin-apiclient';
import browser from '../../scripts/browser';
import { playbackManager } from '../playback/playbackmanager';
import dom from '../../scripts/dom';
diff --git a/src/components/cardbuilder/cardBuilder.js b/src/components/cardbuilder/cardBuilder.js
index 6882a8409..b44b6e104 100644
--- a/src/components/cardbuilder/cardBuilder.js
+++ b/src/components/cardbuilder/cardBuilder.js
@@ -12,7 +12,7 @@ import browser from 'scripts/browser';
import datetime from 'scripts/datetime';
import dom from 'scripts/dom';
import globalize from 'lib/globalize';
-import ServerConnections from 'lib/jellyfin-apiclient/ServerConnections';
+import { ServerConnections } from 'lib/jellyfin-apiclient';
import { getBackdropShape, getPortraitShape, getSquareShape } from 'utils/card';
import { getItemTypeIcon, getLibraryIcon } from 'utils/image';
diff --git a/src/components/cardbuilder/chaptercardbuilder.js b/src/components/cardbuilder/chaptercardbuilder.js
index 5249e00a4..f8fa94e6a 100644
--- a/src/components/cardbuilder/chaptercardbuilder.js
+++ b/src/components/cardbuilder/chaptercardbuilder.js
@@ -6,7 +6,7 @@
import escapeHtml from 'escape-html';
-import ServerConnections from 'lib/jellyfin-apiclient/ServerConnections';
+import { ServerConnections } from 'lib/jellyfin-apiclient';
import datetime from '../../scripts/datetime';
import imageLoader from '../images/imageLoader';
import layoutManager from '../layoutManager';
diff --git a/src/components/channelMapper/channelMapper.js b/src/components/channelMapper/channelMapper.js
index 0195aa47c..91caf81c9 100644
--- a/src/components/channelMapper/channelMapper.js
+++ b/src/components/channelMapper/channelMapper.js
@@ -3,7 +3,7 @@ import dom from '../../scripts/dom';
import dialogHelper from '../dialogHelper/dialogHelper';
import loading from '../loading/loading';
import globalize from '../../lib/globalize';
-import ServerConnections from 'lib/jellyfin-apiclient/ServerConnections';
+import { ServerConnections } from 'lib/jellyfin-apiclient';
import actionsheet from '../actionSheet/actionSheet';
import '../../elements/emby-input/emby-input';
import '../../elements/emby-button/paper-icon-button-light';
diff --git a/src/components/collectionEditor/collectionEditor.js b/src/components/collectionEditor/collectionEditor.js
index ff4a69abd..a8981f2b3 100644
--- a/src/components/collectionEditor/collectionEditor.js
+++ b/src/components/collectionEditor/collectionEditor.js
@@ -5,7 +5,7 @@ import loading from '../loading/loading';
import layoutManager from '../layoutManager';
import { appRouter } from '../router/appRouter';
import globalize from '../../lib/globalize';
-import ServerConnections from 'lib/jellyfin-apiclient/ServerConnections';
+import { ServerConnections } from 'lib/jellyfin-apiclient';
import '../../elements/emby-button/emby-button';
import '../../elements/emby-button/paper-icon-button-light';
import '../../elements/emby-checkbox/emby-checkbox';
diff --git a/src/components/displaySettings/displaySettings.js b/src/components/displaySettings/displaySettings.js
index aea0137b4..21eef9f28 100644
--- a/src/components/displaySettings/displaySettings.js
+++ b/src/components/displaySettings/displaySettings.js
@@ -6,7 +6,7 @@ import { appHost } from '../apphost';
import focusManager from '../focusManager';
import datetime from '../../scripts/datetime';
import globalize from '../../lib/globalize';
-import ServerConnections from 'lib/jellyfin-apiclient/ServerConnections';
+import { ServerConnections } from 'lib/jellyfin-apiclient';
import loading from '../loading/loading';
import skinManager from '../../scripts/themeManager';
import { PluginType } from '../../types/plugin.ts';
diff --git a/src/components/filterdialog/filterdialog.js b/src/components/filterdialog/filterdialog.js
index 02a0828da..1e192372f 100644
--- a/src/components/filterdialog/filterdialog.js
+++ b/src/components/filterdialog/filterdialog.js
@@ -1,7 +1,7 @@
import dom from '../../scripts/dom';
import dialogHelper from '../dialogHelper/dialogHelper';
import globalize from '../../lib/globalize';
-import ServerConnections from 'lib/jellyfin-apiclient/ServerConnections';
+import { ServerConnections } from 'lib/jellyfin-apiclient';
import union from 'lodash-es/union';
import Events from '../../utils/events.ts';
import '../../elements/emby-checkbox/emby-checkbox';
diff --git a/src/components/filtermenu/filtermenu.js b/src/components/filtermenu/filtermenu.js
index e1891caeb..a77e7d110 100644
--- a/src/components/filtermenu/filtermenu.js
+++ b/src/components/filtermenu/filtermenu.js
@@ -5,7 +5,7 @@ import dialogHelper from '../dialogHelper/dialogHelper';
import inputManager from '../../scripts/inputManager';
import layoutManager from '../layoutManager';
import globalize from '../../lib/globalize';
-import ServerConnections from 'lib/jellyfin-apiclient/ServerConnections';
+import { ServerConnections } from 'lib/jellyfin-apiclient';
import * as userSettings from '../../scripts/settings/userSettings';
import '../../elements/emby-checkbox/emby-checkbox';
import '../../elements/emby-input/emby-input';
diff --git a/src/components/groupedcards.js b/src/components/groupedcards.js
index 1594353ba..1756280ed 100644
--- a/src/components/groupedcards.js
+++ b/src/components/groupedcards.js
@@ -1,4 +1,4 @@
-import ServerConnections from 'lib/jellyfin-apiclient/ServerConnections';
+import { ServerConnections } from 'lib/jellyfin-apiclient';
import dom from '../scripts/dom';
import { appRouter } from './router/appRouter';
import Dashboard from '../utils/dashboard';
diff --git a/src/components/guide/guide.js b/src/components/guide/guide.js
index ccb1ba06c..20795ea2d 100644
--- a/src/components/guide/guide.js
+++ b/src/components/guide/guide.js
@@ -2,7 +2,7 @@ import escapeHtml from 'escape-html';
import inputManager from '../../scripts/inputManager';
import browser from '../../scripts/browser';
import globalize from '../../lib/globalize';
-import ServerConnections from 'lib/jellyfin-apiclient/ServerConnections';
+import { ServerConnections } from 'lib/jellyfin-apiclient';
import Events from '../../utils/events.ts';
import scrollHelper from '../../scripts/scrollHelper';
import serverNotifications from '../../scripts/serverNotifications';
diff --git a/src/components/homeScreenSettings/homeScreenSettings.js b/src/components/homeScreenSettings/homeScreenSettings.js
index ea4aefe08..d330c8f22 100644
--- a/src/components/homeScreenSettings/homeScreenSettings.js
+++ b/src/components/homeScreenSettings/homeScreenSettings.js
@@ -2,7 +2,7 @@
import escapeHtml from 'escape-html';
import { getUserViewsQuery } from 'hooks/useUserViews';
-import ServerConnections from 'lib/jellyfin-apiclient/ServerConnections';
+import { ServerConnections } from 'lib/jellyfin-apiclient';
import { toApi } from 'utils/jellyfin-apiclient/compat';
import { queryClient } from 'utils/query/queryClient';
diff --git a/src/components/homesections/sections/activeRecordings.ts b/src/components/homesections/sections/activeRecordings.ts
index c4bf5f9b1..72ab3dfe6 100644
--- a/src/components/homesections/sections/activeRecordings.ts
+++ b/src/components/homesections/sections/activeRecordings.ts
@@ -3,7 +3,7 @@ import type { ApiClient } from 'jellyfin-apiclient';
import cardBuilder from 'components/cardbuilder/cardBuilder';
import globalize from 'lib/globalize';
-import ServerConnections from 'lib/jellyfin-apiclient/ServerConnections';
+import { ServerConnections } from 'lib/jellyfin-apiclient';
import type { SectionContainerElement, SectionOptions } from './section';
diff --git a/src/components/homesections/sections/liveTv.ts b/src/components/homesections/sections/liveTv.ts
index 140723e7f..4b8b17cbd 100644
--- a/src/components/homesections/sections/liveTv.ts
+++ b/src/components/homesections/sections/liveTv.ts
@@ -6,7 +6,7 @@ import { appRouter } from 'components/router/appRouter';
import cardBuilder from 'components/cardbuilder/cardBuilder';
import layoutManager from 'components/layoutManager';
import globalize from 'lib/globalize';
-import ServerConnections from 'lib/jellyfin-apiclient/ServerConnections';
+import { ServerConnections } from 'lib/jellyfin-apiclient';
import { getBackdropShape } from 'utils/card';
import type { SectionContainerElement, SectionOptions } from './section';
diff --git a/src/components/homesections/sections/nextUp.ts b/src/components/homesections/sections/nextUp.ts
index 0ab23c4bb..539472bbf 100644
--- a/src/components/homesections/sections/nextUp.ts
+++ b/src/components/homesections/sections/nextUp.ts
@@ -5,7 +5,7 @@ import cardBuilder from 'components/cardbuilder/cardBuilder';
import layoutManager from 'components/layoutManager';
import { appRouter } from 'components/router/appRouter';
import globalize from 'lib/globalize';
-import ServerConnections from 'lib/jellyfin-apiclient/ServerConnections';
+import { ServerConnections } from 'lib/jellyfin-apiclient';
import type { UserSettings } from 'scripts/settings/userSettings';
import { getBackdropShape } from 'utils/card';
diff --git a/src/components/homesections/sections/recentlyAdded.ts b/src/components/homesections/sections/recentlyAdded.ts
index f0b71b943..5f35ba303 100644
--- a/src/components/homesections/sections/recentlyAdded.ts
+++ b/src/components/homesections/sections/recentlyAdded.ts
@@ -9,7 +9,7 @@ import cardBuilder from 'components/cardbuilder/cardBuilder';
import layoutManager from 'components/layoutManager';
import { appRouter } from 'components/router/appRouter';
import globalize from 'lib/globalize';
-import ServerConnections from 'lib/jellyfin-apiclient/ServerConnections';
+import { ServerConnections } from 'lib/jellyfin-apiclient';
import { getBackdropShape, getPortraitShape, getSquareShape } from 'utils/card';
import type { SectionContainerElement, SectionOptions } from './section';
diff --git a/src/components/homesections/sections/resume.ts b/src/components/homesections/sections/resume.ts
index c58ee4a71..bb9215b2b 100644
--- a/src/components/homesections/sections/resume.ts
+++ b/src/components/homesections/sections/resume.ts
@@ -4,7 +4,7 @@ import type { ApiClient } from 'jellyfin-apiclient';
import cardBuilder from 'components/cardbuilder/cardBuilder';
import globalize from 'lib/globalize';
-import ServerConnections from 'lib/jellyfin-apiclient/ServerConnections';
+import { ServerConnections } from 'lib/jellyfin-apiclient';
import type { UserSettings } from 'scripts/settings/userSettings';
import { getBackdropShape, getPortraitShape } from 'utils/card';
diff --git a/src/components/imageDownloader/imageDownloader.js b/src/components/imageDownloader/imageDownloader.js
index 5c82419f8..b4ddaf85d 100644
--- a/src/components/imageDownloader/imageDownloader.js
+++ b/src/components/imageDownloader/imageDownloader.js
@@ -7,7 +7,7 @@ import browser from '../../scripts/browser';
import layoutManager from '../layoutManager';
import scrollHelper from '../../scripts/scrollHelper';
import globalize from '../../lib/globalize';
-import ServerConnections from 'lib/jellyfin-apiclient/ServerConnections';
+import { ServerConnections } from 'lib/jellyfin-apiclient';
import '../../elements/emby-checkbox/emby-checkbox';
import '../../elements/emby-button/paper-icon-button-light';
import '../../elements/emby-button/emby-button';
diff --git a/src/components/imageUploader/imageUploader.js b/src/components/imageUploader/imageUploader.js
index b4e84c00e..1f26dbff3 100644
--- a/src/components/imageUploader/imageUploader.js
+++ b/src/components/imageUploader/imageUploader.js
@@ -10,7 +10,7 @@ import loading from '../loading/loading';
import scrollHelper from '../../scripts/scrollHelper';
import layoutManager from '../layoutManager';
import globalize from '../../lib/globalize';
-import ServerConnections from 'lib/jellyfin-apiclient/ServerConnections';
+import { ServerConnections } from 'lib/jellyfin-apiclient';
import '../../elements/emby-button/emby-button';
import '../../elements/emby-select/emby-select';
diff --git a/src/components/imageeditor/imageeditor.js b/src/components/imageeditor/imageeditor.js
index ab9f1ae93..ab5f7832d 100644
--- a/src/components/imageeditor/imageeditor.js
+++ b/src/components/imageeditor/imageeditor.js
@@ -4,7 +4,7 @@ import dom from '../../scripts/dom';
import layoutManager from '../layoutManager';
import focusManager from '../focusManager';
import globalize from '../../lib/globalize';
-import ServerConnections from 'lib/jellyfin-apiclient/ServerConnections';
+import { ServerConnections } from 'lib/jellyfin-apiclient';
import scrollHelper from '../../scripts/scrollHelper';
import imageLoader from '../images/imageLoader';
import browser from '../../scripts/browser';
diff --git a/src/components/itemContextMenu.js b/src/components/itemContextMenu.js
index 9b1368ceb..959b391d8 100644
--- a/src/components/itemContextMenu.js
+++ b/src/components/itemContextMenu.js
@@ -2,7 +2,7 @@ import browser from '../scripts/browser';
import { copy } from '../scripts/clipboard';
import dom from '../scripts/dom';
import globalize from '../lib/globalize';
-import ServerConnections from 'lib/jellyfin-apiclient/ServerConnections';
+import { ServerConnections } from 'lib/jellyfin-apiclient';
import actionsheet from './actionSheet/actionSheet';
import { appHost } from './apphost';
import { appRouter } from './router/appRouter';
diff --git a/src/components/itemHelper.js b/src/components/itemHelper.js
index c1e87dea1..fa8aadbdd 100644
--- a/src/components/itemHelper.js
+++ b/src/components/itemHelper.js
@@ -7,7 +7,7 @@ import { getPlaylistsApi } from '@jellyfin/sdk/lib/utils/api/playlists-api';
import { appHost } from './apphost';
import globalize from 'lib/globalize';
-import ServerConnections from 'lib/jellyfin-apiclient/ServerConnections';
+import { ServerConnections } from 'lib/jellyfin-apiclient';
import { toApi } from 'utils/jellyfin-apiclient/compat';
export function getDisplayName(item, options = {}) {
diff --git a/src/components/itemMediaInfo/itemMediaInfo.js b/src/components/itemMediaInfo/itemMediaInfo.js
index 95e2af29f..70c35e848 100644
--- a/src/components/itemMediaInfo/itemMediaInfo.js
+++ b/src/components/itemMediaInfo/itemMediaInfo.js
@@ -11,7 +11,7 @@ import toast from '../toast/toast';
import { copy } from '../../scripts/clipboard';
import dom from '../../scripts/dom';
import globalize from '../../lib/globalize';
-import ServerConnections from 'lib/jellyfin-apiclient/ServerConnections';
+import { ServerConnections } from 'lib/jellyfin-apiclient';
import itemHelper from '../../components/itemHelper';
import loading from '../loading/loading';
import '../../elements/emby-select/emby-select';
diff --git a/src/components/itemidentifier/itemidentifier.js b/src/components/itemidentifier/itemidentifier.js
index 2cfebb1f8..b374e47da 100644
--- a/src/components/itemidentifier/itemidentifier.js
+++ b/src/components/itemidentifier/itemidentifier.js
@@ -8,7 +8,7 @@ import escapeHtml from 'escape-html';
import dialogHelper from '../dialogHelper/dialogHelper';
import loading from '../loading/loading';
import globalize from '../../lib/globalize';
-import ServerConnections from 'lib/jellyfin-apiclient/ServerConnections';
+import { ServerConnections } from 'lib/jellyfin-apiclient';
import scrollHelper from '../../scripts/scrollHelper';
import layoutManager from '../layoutManager';
import focusManager from '../focusManager';
diff --git a/src/components/listview/listview.js b/src/components/listview/listview.js
index d501c3180..5b6c54c2b 100644
--- a/src/components/listview/listview.js
+++ b/src/components/listview/listview.js
@@ -10,7 +10,7 @@ import mediaInfo from '../mediainfo/mediainfo';
import indicators from '../indicators/indicators';
import layoutManager from '../layoutManager';
import globalize from '../../lib/globalize';
-import ServerConnections from 'lib/jellyfin-apiclient/ServerConnections';
+import { ServerConnections } from 'lib/jellyfin-apiclient';
import datetime from '../../scripts/datetime';
import cardBuilder from '../cardbuilder/cardBuilder';
import './listview.scss';
diff --git a/src/components/lyricseditor/lyricseditor.js b/src/components/lyricseditor/lyricseditor.js
index 9fcbde190..bb393ea48 100644
--- a/src/components/lyricseditor/lyricseditor.js
+++ b/src/components/lyricseditor/lyricseditor.js
@@ -5,7 +5,7 @@ import { toApi } from 'utils/jellyfin-apiclient/compat';
import dialogHelper from '../dialogHelper/dialogHelper';
import layoutManager from '../layoutManager';
import globalize from 'lib/globalize';
-import ServerConnections from 'lib/jellyfin-apiclient/ServerConnections';
+import { ServerConnections } from 'lib/jellyfin-apiclient';
import loading from '../loading/loading';
import focusManager from '../focusManager';
import dom from '../../scripts/dom';
diff --git a/src/components/lyricsuploader/lyricsuploader.js b/src/components/lyricsuploader/lyricsuploader.js
index 85b5fc692..6755e4fc0 100644
--- a/src/components/lyricsuploader/lyricsuploader.js
+++ b/src/components/lyricsuploader/lyricsuploader.js
@@ -8,7 +8,7 @@ import loading from '../../components/loading/loading';
import scrollHelper from '../../scripts/scrollHelper';
import layoutManager from '../layoutManager';
import globalize from 'lib/globalize';
-import ServerConnections from 'lib/jellyfin-apiclient/ServerConnections';
+import { ServerConnections } from 'lib/jellyfin-apiclient';
import template from './lyricsuploader.template.html';
import toast from '../toast/toast';
import '../../elements/emby-button/emby-button';
diff --git a/src/components/metadataEditor/metadataEditor.js b/src/components/metadataEditor/metadataEditor.js
index 912ffef1d..6dc155a84 100644
--- a/src/components/metadataEditor/metadataEditor.js
+++ b/src/components/metadataEditor/metadataEditor.js
@@ -6,7 +6,7 @@ import datetime from '../../scripts/datetime';
import loading from '../loading/loading';
import focusManager from '../focusManager';
import globalize from '../../lib/globalize';
-import ServerConnections from 'lib/jellyfin-apiclient/ServerConnections';
+import { ServerConnections } from 'lib/jellyfin-apiclient';
import '../../elements/emby-checkbox/emby-checkbox';
import '../../elements/emby-input/emby-input';
diff --git a/src/components/multiSelect/multiSelect.js b/src/components/multiSelect/multiSelect.js
index 1a0800ae1..95e59d9ca 100644
--- a/src/components/multiSelect/multiSelect.js
+++ b/src/components/multiSelect/multiSelect.js
@@ -2,7 +2,7 @@ import browser from '../../scripts/browser';
import { appHost } from '../apphost';
import loading from '../loading/loading';
import globalize from '../../lib/globalize';
-import ServerConnections from 'lib/jellyfin-apiclient/ServerConnections';
+import { ServerConnections } from 'lib/jellyfin-apiclient';
import dom from '../../scripts/dom';
import './multiSelect.scss';
import alert from '../alert';
diff --git a/src/components/notifications/notifications.js b/src/components/notifications/notifications.js
index 609f96ace..9edd0ec18 100644
--- a/src/components/notifications/notifications.js
+++ b/src/components/notifications/notifications.js
@@ -2,7 +2,7 @@ import serverNotifications from '../../scripts/serverNotifications';
import { playbackManager } from '../playback/playbackmanager';
import Events from '../../utils/events.ts';
import globalize from '../../lib/globalize';
-import ServerConnections from 'lib/jellyfin-apiclient/ServerConnections';
+import { ServerConnections } from 'lib/jellyfin-apiclient';
import { getItems } from '../../utils/jellyfin-apiclient/getItems.ts';
import NotificationIcon from './notificationicon.png';
diff --git a/src/components/nowPlayingBar/nowPlayingBar.js b/src/components/nowPlayingBar/nowPlayingBar.js
index 72f6375d4..0184cec0b 100644
--- a/src/components/nowPlayingBar/nowPlayingBar.js
+++ b/src/components/nowPlayingBar/nowPlayingBar.js
@@ -1,7 +1,7 @@
import { getImageUrl } from 'apps/stable/features/playback/utils/image';
import { getItemTextLines } from 'apps/stable/features/playback/utils/itemText';
import { appRouter, isLyricsPage } from 'components/router/appRouter';
-import ServerConnections from 'lib/jellyfin-apiclient/ServerConnections';
+import { ServerConnections } from 'lib/jellyfin-apiclient';
import datetime from '../../scripts/datetime';
import Events from '../../utils/events.ts';
diff --git a/src/components/playback/displayMirrorManager.ts b/src/components/playback/displayMirrorManager.ts
index cda68897a..63d7059f8 100644
--- a/src/components/playback/displayMirrorManager.ts
+++ b/src/components/playback/displayMirrorManager.ts
@@ -1,5 +1,5 @@
import { getItemQuery } from 'hooks/useItem';
-import ServerConnections from 'lib/jellyfin-apiclient/ServerConnections';
+import { ServerConnections } from 'lib/jellyfin-apiclient';
import { toApi } from 'utils/jellyfin-apiclient/compat';
import { queryClient } from 'utils/query/queryClient';
diff --git a/src/components/playback/playbackmanager.js b/src/components/playback/playbackmanager.js
index d181e2619..b3c519111 100644
--- a/src/components/playback/playbackmanager.js
+++ b/src/components/playback/playbackmanager.js
@@ -24,7 +24,7 @@ import { getItemBackdropImageUrl } from '../../utils/jellyfin-apiclient/backdrop
import { PlayerEvent } from 'apps/stable/features/playback/constants/playerEvent';
import { bindMediaSegmentManager } from 'apps/stable/features/playback/utils/mediaSegmentManager';
import { bindMediaSessionSubscriber } from 'apps/stable/features/playback/utils/mediaSessionSubscriber';
-import ServerConnections from 'lib/jellyfin-apiclient/ServerConnections';
+import { ServerConnections } from 'lib/jellyfin-apiclient';
import { MediaError } from 'types/mediaError';
import { getMediaError } from 'utils/mediaError';
import { toApi } from 'utils/jellyfin-apiclient/compat';
diff --git a/src/components/playback/playersettingsmenu.js b/src/components/playback/playersettingsmenu.js
index 8c6134969..5b0aca301 100644
--- a/src/components/playback/playersettingsmenu.js
+++ b/src/components/playback/playersettingsmenu.js
@@ -1,7 +1,7 @@
import actionsheet from '../actionSheet/actionSheet';
import { playbackManager } from '../playback/playbackmanager';
import globalize from 'lib/globalize';
-import ServerConnections from 'lib/jellyfin-apiclient/ServerConnections';
+import { ServerConnections } from 'lib/jellyfin-apiclient';
import qualityoptions from '../qualityOptions';
function showQualityMenu(player, btn) {
diff --git a/src/components/playbackSettings/playbackSettings.js b/src/components/playbackSettings/playbackSettings.js
index e67647fcd..0050e0c66 100644
--- a/src/components/playbackSettings/playbackSettings.js
+++ b/src/components/playbackSettings/playbackSettings.js
@@ -3,7 +3,7 @@ import escapeHTML from 'escape-html';
import { MediaSegmentAction } from 'apps/stable/features/playback/constants/mediaSegmentAction';
import { getId, getMediaSegmentAction } from 'apps/stable/features/playback/utils/mediaSegmentSettings';
-import ServerConnections from 'lib/jellyfin-apiclient/ServerConnections';
+import { ServerConnections } from 'lib/jellyfin-apiclient';
import appSettings from '../../scripts/settings/appSettings';
import { appHost } from '../apphost';
diff --git a/src/components/playerstats/playerstats.js b/src/components/playerstats/playerstats.js
index b67a7c863..97d4a7afd 100644
--- a/src/components/playerstats/playerstats.js
+++ b/src/components/playerstats/playerstats.js
@@ -1,6 +1,6 @@
import '../../elements/emby-button/paper-icon-button-light';
import globalize from '../../lib/globalize';
-import ServerConnections from 'lib/jellyfin-apiclient/ServerConnections';
+import { ServerConnections } from 'lib/jellyfin-apiclient';
import Events from '../../utils/events.ts';
import layoutManager from '../layoutManager';
import { playbackManager } from '../playback/playbackmanager';
diff --git a/src/components/playlisteditor/playlisteditor.ts b/src/components/playlisteditor/playlisteditor.ts
index 99836cf9c..c9d9ac5af 100644
--- a/src/components/playlisteditor/playlisteditor.ts
+++ b/src/components/playlisteditor/playlisteditor.ts
@@ -8,7 +8,7 @@ import escapeHtml from 'escape-html';
import toast from 'components/toast/toast';
import dom from 'scripts/dom';
import globalize from 'lib/globalize';
-import ServerConnections from 'lib/jellyfin-apiclient/ServerConnections';
+import { ServerConnections } from 'lib/jellyfin-apiclient';
import { currentSettings as userSettings } from 'scripts/settings/userSettings';
import { PluginType } from 'types/plugin';
import { toApi } from 'utils/jellyfin-apiclient/compat';
diff --git a/src/components/pluginManager.js b/src/components/pluginManager.js
index 811e82a74..7f9d57dd1 100644
--- a/src/components/pluginManager.js
+++ b/src/components/pluginManager.js
@@ -8,7 +8,7 @@ import { appRouter } from './router/appRouter';
import * as inputManager from '../scripts/inputManager';
import toast from '../components/toast/toast';
import confirm from '../components/confirm/confirm';
-import ServerConnections from 'lib/jellyfin-apiclient/ServerConnections';
+import { ServerConnections } from 'lib/jellyfin-apiclient';
import * as dashboard from '../utils/dashboard';
// TODO: replace with each plugin version
diff --git a/src/components/recordingcreator/recordingbutton.js b/src/components/recordingcreator/recordingbutton.js
index b78e3b9f9..90e266f7e 100644
--- a/src/components/recordingcreator/recordingbutton.js
+++ b/src/components/recordingcreator/recordingbutton.js
@@ -1,4 +1,4 @@
-import ServerConnections from 'lib/jellyfin-apiclient/ServerConnections';
+import { ServerConnections } from 'lib/jellyfin-apiclient';
import dom from '../../scripts/dom';
import recordingHelper from './recordinghelper';
diff --git a/src/components/recordingcreator/recordingcreator.js b/src/components/recordingcreator/recordingcreator.js
index cc040aa64..14a4c6d0d 100644
--- a/src/components/recordingcreator/recordingcreator.js
+++ b/src/components/recordingcreator/recordingcreator.js
@@ -1,6 +1,6 @@
import dialogHelper from '../dialogHelper/dialogHelper';
import globalize from '../../lib/globalize';
-import ServerConnections from 'lib/jellyfin-apiclient/ServerConnections';
+import { ServerConnections } from 'lib/jellyfin-apiclient';
import layoutManager from '../layoutManager';
import mediaInfo from '../mediainfo/mediainfo';
import loading from '../loading/loading';
diff --git a/src/components/recordingcreator/recordingeditor.js b/src/components/recordingcreator/recordingeditor.js
index af71d102d..e35d98024 100644
--- a/src/components/recordingcreator/recordingeditor.js
+++ b/src/components/recordingcreator/recordingeditor.js
@@ -1,7 +1,7 @@
import dialogHelper from '../dialogHelper/dialogHelper';
import globalize from '../../lib/globalize';
-import ServerConnections from 'lib/jellyfin-apiclient/ServerConnections';
+import { ServerConnections } from 'lib/jellyfin-apiclient';
import layoutManager from '../layoutManager';
import loading from '../loading/loading';
import scrollHelper from '../../scripts/scrollHelper';
diff --git a/src/components/recordingcreator/recordingfields.js b/src/components/recordingcreator/recordingfields.js
index b443698d1..a1d3103c8 100644
--- a/src/components/recordingcreator/recordingfields.js
+++ b/src/components/recordingcreator/recordingfields.js
@@ -1,5 +1,5 @@
import globalize from '../../lib/globalize';
-import ServerConnections from 'lib/jellyfin-apiclient/ServerConnections';
+import { ServerConnections } from 'lib/jellyfin-apiclient';
import Events from '../../utils/events.ts';
import serverNotifications from '../../scripts/serverNotifications';
import loading from '../loading/loading';
diff --git a/src/components/recordingcreator/recordinghelper.js b/src/components/recordingcreator/recordinghelper.js
index 55aa52c0c..a251590a3 100644
--- a/src/components/recordingcreator/recordinghelper.js
+++ b/src/components/recordingcreator/recordinghelper.js
@@ -1,5 +1,5 @@
import globalize from 'lib/globalize';
-import ServerConnections from 'lib/jellyfin-apiclient/ServerConnections';
+import { ServerConnections } from 'lib/jellyfin-apiclient';
import loading from '../loading/loading';
import toast from '../toast/toast';
import confirm from '../confirm/confirm';
diff --git a/src/components/recordingcreator/seriesrecordingeditor.js b/src/components/recordingcreator/seriesrecordingeditor.js
index ccc2d6940..6580b03af 100644
--- a/src/components/recordingcreator/seriesrecordingeditor.js
+++ b/src/components/recordingcreator/seriesrecordingeditor.js
@@ -1,6 +1,6 @@
import dialogHelper from '../dialogHelper/dialogHelper';
import globalize from '../../lib/globalize';
-import ServerConnections from 'lib/jellyfin-apiclient/ServerConnections';
+import { ServerConnections } from 'lib/jellyfin-apiclient';
import layoutManager from '../layoutManager';
import loading from '../loading/loading';
import scrollHelper from '../../scripts/scrollHelper';
diff --git a/src/components/refreshdialog/refreshdialog.js b/src/components/refreshdialog/refreshdialog.js
index 67f4bd4a4..721ba36e6 100644
--- a/src/components/refreshdialog/refreshdialog.js
+++ b/src/components/refreshdialog/refreshdialog.js
@@ -3,7 +3,7 @@ import dialogHelper from '../dialogHelper/dialogHelper';
import loading from '../loading/loading';
import layoutManager from '../layoutManager';
import globalize from '../../lib/globalize';
-import ServerConnections from 'lib/jellyfin-apiclient/ServerConnections';
+import { ServerConnections } from 'lib/jellyfin-apiclient';
import '../../elements/emby-input/emby-input';
import '../../elements/emby-button/emby-button';
diff --git a/src/components/remotecontrol/remotecontrol.js b/src/components/remotecontrol/remotecontrol.js
index 76beb45ab..a2d32ed24 100644
--- a/src/components/remotecontrol/remotecontrol.js
+++ b/src/components/remotecontrol/remotecontrol.js
@@ -11,7 +11,7 @@ import { playbackManager } from '../playback/playbackmanager';
import Events from '../../utils/events.ts';
import { appHost } from '../apphost';
import globalize from '../../lib/globalize';
-import ServerConnections from 'lib/jellyfin-apiclient/ServerConnections';
+import { ServerConnections } from 'lib/jellyfin-apiclient';
import layoutManager from '../layoutManager';
import * as userSettings from '../../scripts/settings/userSettings';
import itemContextMenu from '../itemContextMenu';
diff --git a/src/components/router/appRouter.js b/src/components/router/appRouter.js
index 23013117b..032ddfaf1 100644
--- a/src/components/router/appRouter.js
+++ b/src/components/router/appRouter.js
@@ -7,7 +7,7 @@ import loading from '../loading/loading';
import alert from '../alert';
import { getItemQuery } from 'hooks/useItem';
-import ServerConnections from 'lib/jellyfin-apiclient/ServerConnections';
+import { ServerConnections } from 'lib/jellyfin-apiclient';
import { toApi } from 'utils/jellyfin-apiclient/compat';
import { queryClient } from 'utils/query/queryClient';
import { history } from 'RootAppRouter';
diff --git a/src/components/shortcuts.js b/src/components/shortcuts.js
index 82386c503..1ff18ef23 100644
--- a/src/components/shortcuts.js
+++ b/src/components/shortcuts.js
@@ -8,7 +8,7 @@ import { playbackManager } from './playback/playbackmanager';
import inputManager from '../scripts/inputManager';
import { appRouter } from './router/appRouter';
import globalize from '../lib/globalize';
-import ServerConnections from 'lib/jellyfin-apiclient/ServerConnections';
+import { ServerConnections } from 'lib/jellyfin-apiclient';
import dom from '../scripts/dom';
import recordingHelper from './recordingcreator/recordinghelper';
import toast from './toast/toast';
diff --git a/src/components/slideshow/slideshow.js b/src/components/slideshow/slideshow.js
index 6b223c140..49bf8dc1e 100644
--- a/src/components/slideshow/slideshow.js
+++ b/src/components/slideshow/slideshow.js
@@ -3,7 +3,7 @@
* @module components/slideshow/slideshow
*/
import dialogHelper from '../dialogHelper/dialogHelper';
-import ServerConnections from 'lib/jellyfin-apiclient/ServerConnections';
+import { ServerConnections } from 'lib/jellyfin-apiclient';
import inputManager from '../../scripts/inputManager';
import layoutManager from '../layoutManager';
import focusManager from '../focusManager';
diff --git a/src/components/subtitleeditor/subtitleeditor.js b/src/components/subtitleeditor/subtitleeditor.js
index 2941f0078..fa4d71e84 100644
--- a/src/components/subtitleeditor/subtitleeditor.js
+++ b/src/components/subtitleeditor/subtitleeditor.js
@@ -3,7 +3,7 @@ import { appHost } from '../apphost';
import dialogHelper from '../dialogHelper/dialogHelper';
import layoutManager from '../layoutManager';
import globalize from '../../lib/globalize';
-import ServerConnections from 'lib/jellyfin-apiclient/ServerConnections';
+import { ServerConnections } from 'lib/jellyfin-apiclient';
import * as userSettings from '../../scripts/settings/userSettings';
import loading from '../loading/loading';
import focusManager from '../focusManager';
diff --git a/src/components/subtitlesettings/subtitlesettings.js b/src/components/subtitlesettings/subtitlesettings.js
index b335b877e..ee8b2c3ed 100644
--- a/src/components/subtitlesettings/subtitlesettings.js
+++ b/src/components/subtitlesettings/subtitlesettings.js
@@ -1,5 +1,5 @@
import globalize from '../../lib/globalize';
-import ServerConnections from 'lib/jellyfin-apiclient/ServerConnections';
+import { ServerConnections } from 'lib/jellyfin-apiclient';
import { appHost } from '../apphost';
import appSettings from '../../scripts/settings/appSettings';
import focusManager from '../focusManager';
diff --git a/src/components/subtitleuploader/subtitleuploader.js b/src/components/subtitleuploader/subtitleuploader.js
index 9b363576f..f70726577 100644
--- a/src/components/subtitleuploader/subtitleuploader.js
+++ b/src/components/subtitleuploader/subtitleuploader.js
@@ -8,7 +8,7 @@ import loading from '../../components/loading/loading';
import scrollHelper from '../../scripts/scrollHelper';
import layoutManager from '../layoutManager';
import globalize from '../../lib/globalize';
-import ServerConnections from 'lib/jellyfin-apiclient/ServerConnections';
+import { ServerConnections } from 'lib/jellyfin-apiclient';
import template from './subtitleuploader.template.html';
import toast from '../toast/toast';
diff --git a/src/components/themeMediaPlayer.js b/src/components/themeMediaPlayer.js
index 33a50dc70..c8c267532 100644
--- a/src/components/themeMediaPlayer.js
+++ b/src/components/themeMediaPlayer.js
@@ -3,7 +3,7 @@ import { MediaType } from '@jellyfin/sdk/lib/generated-client/models/media-type'
import { getLibraryApi } from '@jellyfin/sdk/lib/utils/api/library-api';
import { getItemQuery } from 'hooks/useItem';
-import ServerConnections from 'lib/jellyfin-apiclient/ServerConnections';
+import { ServerConnections } from 'lib/jellyfin-apiclient';
import { currentSettings as userSettings } from 'scripts/settings/userSettings';
import { ItemKind } from 'types/base/models/item-kind';
import Events from 'utils/events.ts';
diff --git a/src/components/upnextdialog/upnextdialog.js b/src/components/upnextdialog/upnextdialog.js
index 061fac20b..7bb40943d 100644
--- a/src/components/upnextdialog/upnextdialog.js
+++ b/src/components/upnextdialog/upnextdialog.js
@@ -5,7 +5,7 @@ import mediaInfo from '../mediainfo/mediainfo';
import layoutManager from '../layoutManager';
import focusManager from '../focusManager';
import globalize from '../../lib/globalize';
-import ServerConnections from 'lib/jellyfin-apiclient/ServerConnections';
+import { ServerConnections } from 'lib/jellyfin-apiclient';
import itemHelper from '../itemHelper';
import './upnextdialog.scss';
diff --git a/src/components/userdatabuttons/userdatabuttons.js b/src/components/userdatabuttons/userdatabuttons.js
index 16ab8b755..453664e39 100644
--- a/src/components/userdatabuttons/userdatabuttons.js
+++ b/src/components/userdatabuttons/userdatabuttons.js
@@ -1,5 +1,5 @@
import globalize from '../../lib/globalize';
-import ServerConnections from 'lib/jellyfin-apiclient/ServerConnections';
+import { ServerConnections } from 'lib/jellyfin-apiclient';
import dom from '../../scripts/dom';
import itemHelper from '../itemHelper';
diff --git a/src/controllers/favorites.js b/src/controllers/favorites.js
index 84d79ea38..b926859f0 100644
--- a/src/controllers/favorites.js
+++ b/src/controllers/favorites.js
@@ -4,7 +4,7 @@ import layoutManager from 'components/layoutManager';
import { appRouter } from 'components/router/appRouter';
import dom from 'scripts/dom';
import globalize from 'lib/globalize';
-import ServerConnections from 'lib/jellyfin-apiclient/ServerConnections';
+import { ServerConnections } from 'lib/jellyfin-apiclient';
import { getBackdropShape, getPortraitShape, getSquareShape } from 'utils/card';
import { ItemSortBy } from '@jellyfin/sdk/lib/generated-client/models/item-sort-by';
diff --git a/src/controllers/hometab.js b/src/controllers/hometab.js
index aeabb131f..15aefabb8 100644
--- a/src/controllers/hometab.js
+++ b/src/controllers/hometab.js
@@ -2,7 +2,7 @@ import * as userSettings from '../scripts/settings/userSettings';
import loading from '../components/loading/loading';
import focusManager from '../components/focusManager';
import homeSections from '../components/homesections/homesections';
-import ServerConnections from 'lib/jellyfin-apiclient/ServerConnections';
+import { ServerConnections } from 'lib/jellyfin-apiclient';
import '../elements/emby-itemscontainer/emby-itemscontainer';
diff --git a/src/controllers/itemDetails/index.js b/src/controllers/itemDetails/index.js
index 1c4088d31..122b6a7c3 100644
--- a/src/controllers/itemDetails/index.js
+++ b/src/controllers/itemDetails/index.js
@@ -22,7 +22,7 @@ import { playbackManager } from 'components/playback/playbackmanager';
import { appRouter } from 'components/router/appRouter';
import itemShortcuts from 'components/shortcuts';
import globalize from 'lib/globalize';
-import ServerConnections from 'lib/jellyfin-apiclient/ServerConnections';
+import { ServerConnections } from 'lib/jellyfin-apiclient';
import browser from 'scripts/browser';
import datetime from 'scripts/datetime';
import dom from 'scripts/dom';
diff --git a/src/controllers/list.js b/src/controllers/list.js
index b1a772cb6..2c3d09019 100644
--- a/src/controllers/list.js
+++ b/src/controllers/list.js
@@ -8,7 +8,7 @@ import AlphaNumericShortcuts from '../scripts/alphanumericshortcuts';
import libraryBrowser from '../scripts/libraryBrowser';
import { playbackManager } from '../components/playback/playbackmanager';
import AlphaPicker from '../components/alphaPicker/alphaPicker';
-import ServerConnections from 'lib/jellyfin-apiclient/ServerConnections';
+import { ServerConnections } from 'lib/jellyfin-apiclient';
import '../elements/emby-itemscontainer/emby-itemscontainer';
import '../elements/emby-scroller/emby-scroller';
import LibraryMenu from '../scripts/libraryMenu';
diff --git a/src/controllers/lyrics.js b/src/controllers/lyrics.js
index 98aa74e8a..36ae408bc 100644
--- a/src/controllers/lyrics.js
+++ b/src/controllers/lyrics.js
@@ -9,7 +9,7 @@ import focusManager from 'components/focusManager';
import keyboardNavigation from 'scripts/keyboardNavigation';
import globalize from 'lib/globalize';
-import ServerConnections from 'lib/jellyfin-apiclient/ServerConnections';
+import { ServerConnections } from 'lib/jellyfin-apiclient';
import LibraryMenu from 'scripts/libraryMenu';
import Events from 'utils/events';
diff --git a/src/controllers/playback/video/index.js b/src/controllers/playback/video/index.js
index 192c1b9f1..e0d51005f 100644
--- a/src/controllers/playback/video/index.js
+++ b/src/controllers/playback/video/index.js
@@ -22,7 +22,7 @@ import '../../../styles/videoosd.scss';
import shell from '../../../scripts/shell';
import SubtitleSync from '../../../components/subtitlesync/subtitlesync';
import { appRouter } from '../../../components/router/appRouter';
-import ServerConnections from 'lib/jellyfin-apiclient/ServerConnections';
+import { ServerConnections } from 'lib/jellyfin-apiclient';
import LibraryMenu from '../../../scripts/libraryMenu';
import { setBackdropTransparency, TRANSPARENCY_LEVEL } from '../../../components/backdrop/backdrop';
import { pluginManager } from '../../../components/pluginManager';
diff --git a/src/controllers/session/addServer/index.js b/src/controllers/session/addServer/index.js
index bf76d5099..68b14e890 100644
--- a/src/controllers/session/addServer/index.js
+++ b/src/controllers/session/addServer/index.js
@@ -1,7 +1,6 @@
import loading from 'components/loading/loading';
import globalize from 'lib/globalize';
-import { ConnectionState } from 'lib/jellyfin-apiclient/connectionState';
-import ServerConnections from 'lib/jellyfin-apiclient/ServerConnections';
+import { ConnectionState, ServerConnections } from 'lib/jellyfin-apiclient';
import appSettings from 'scripts/settings/appSettings';
import Dashboard from 'utils/dashboard';
diff --git a/src/controllers/session/login/index.js b/src/controllers/session/login/index.js
index dca448018..e99d14da4 100644
--- a/src/controllers/session/login/index.js
+++ b/src/controllers/session/login/index.js
@@ -15,7 +15,7 @@ import toast from '../../../components/toast/toast';
import dialogHelper from '../../../components/dialogHelper/dialogHelper';
import baseAlert from '../../../components/alert';
import { getDefaultBackgroundClass } from '../../../components/cardbuilder/cardBuilderUtils';
-import ServerConnections from 'lib/jellyfin-apiclient/ServerConnections';
+import { ServerConnections } from 'lib/jellyfin-apiclient';
import './login.scss';
diff --git a/src/controllers/session/selectServer/index.js b/src/controllers/session/selectServer/index.js
index 0b05409e1..3ed198677 100644
--- a/src/controllers/session/selectServer/index.js
+++ b/src/controllers/session/selectServer/index.js
@@ -19,8 +19,7 @@ import '../../../elements/emby-button/emby-button';
import Dashboard from '../../../utils/dashboard';
import alert from '../../../components/alert';
import { getDefaultBackgroundClass } from '../../../components/cardbuilder/cardBuilderUtils';
-import { ConnectionState } from 'lib/jellyfin-apiclient/connectionState';
-import ServerConnections from 'lib/jellyfin-apiclient/ServerConnections';
+import { ConnectionState, ServerConnections } from 'lib/jellyfin-apiclient';
const enableFocusTransform = !browser.slow && !browser.edge;
diff --git a/src/elements/emby-itemscontainer/emby-itemscontainer.js b/src/elements/emby-itemscontainer/emby-itemscontainer.js
index 1c6948f9c..e1657d095 100644
--- a/src/elements/emby-itemscontainer/emby-itemscontainer.js
+++ b/src/elements/emby-itemscontainer/emby-itemscontainer.js
@@ -10,7 +10,7 @@ import browser from '../../scripts/browser';
import dom from '../../scripts/dom';
import loading from '../../components/loading/loading';
import focusManager from '../../components/focusManager';
-import ServerConnections from 'lib/jellyfin-apiclient/ServerConnections';
+import { ServerConnections } from 'lib/jellyfin-apiclient';
import serverNotifications from '../../scripts/serverNotifications';
import Events from '../../utils/events.ts';
diff --git a/src/elements/emby-playstatebutton/emby-playstatebutton.js b/src/elements/emby-playstatebutton/emby-playstatebutton.js
index 40dd6cccd..f41a14352 100644
--- a/src/elements/emby-playstatebutton/emby-playstatebutton.js
+++ b/src/elements/emby-playstatebutton/emby-playstatebutton.js
@@ -1,6 +1,6 @@
import serverNotifications from '../../scripts/serverNotifications';
import globalize from '../../lib/globalize';
-import ServerConnections from 'lib/jellyfin-apiclient/ServerConnections';
+import { ServerConnections } from 'lib/jellyfin-apiclient';
import Events from '../../utils/events.ts';
import EmbyButtonPrototype from '../../elements/emby-button/emby-button';
diff --git a/src/elements/emby-ratingbutton/emby-ratingbutton.js b/src/elements/emby-ratingbutton/emby-ratingbutton.js
index 6241d09df..40b581c7b 100644
--- a/src/elements/emby-ratingbutton/emby-ratingbutton.js
+++ b/src/elements/emby-ratingbutton/emby-ratingbutton.js
@@ -1,6 +1,6 @@
import serverNotifications from '../../scripts/serverNotifications';
import globalize from '../../lib/globalize';
-import ServerConnections from 'lib/jellyfin-apiclient/ServerConnections';
+import { ServerConnections } from 'lib/jellyfin-apiclient';
import Events from '../../utils/events.ts';
import EmbyButtonPrototype from '../emby-button/emby-button';
diff --git a/src/hooks/useApi.tsx b/src/hooks/useApi.tsx
index a0c899e2d..b8bd88b42 100644
--- a/src/hooks/useApi.tsx
+++ b/src/hooks/useApi.tsx
@@ -3,7 +3,7 @@ import type { UserDto } from '@jellyfin/sdk/lib/generated-client';
import type { ApiClient, Event } from 'jellyfin-apiclient';
import React, { type FC, type PropsWithChildren, createContext, useContext, useEffect, useMemo, useState } from 'react';
-import ServerConnections from 'lib/jellyfin-apiclient/ServerConnections';
+import { ServerConnections } from 'lib/jellyfin-apiclient';
import events from 'utils/events';
import { toApi } from 'utils/jellyfin-apiclient/compat';
diff --git a/src/index.jsx b/src/index.jsx
index bf426c000..8d57c445f 100644
--- a/src/index.jsx
+++ b/src/index.jsx
@@ -5,7 +5,7 @@ import React from 'react';
import { createRoot } from 'react-dom/client';
// NOTE: We need to import this first to initialize the connection
-import ServerConnections from 'lib/jellyfin-apiclient/ServerConnections';
+import { ServerConnections } from 'lib/jellyfin-apiclient';
import { appHost } from './components/apphost';
import autoFocuser from './components/autoFocuser';
diff --git a/src/lib/jellyfin-apiclient/ServerConnections.js b/src/lib/jellyfin-apiclient/ServerConnections.js
index 31e73531d..bae007970 100644
--- a/src/lib/jellyfin-apiclient/ServerConnections.js
+++ b/src/lib/jellyfin-apiclient/ServerConnections.js
@@ -4,13 +4,14 @@ import { Api } from '@jellyfin/sdk';
import { Credentials, ApiClient } from 'jellyfin-apiclient';
import { appHost } from 'components/apphost';
-import ConnectionManager from 'lib/jellyfin-apiclient/connectionManager';
import appSettings from 'scripts/settings/appSettings';
import { setUserInfo } from 'scripts/settings/userSettings';
import Dashboard from 'utils/dashboard';
import Events from 'utils/events.ts';
import { toApi } from 'utils/jellyfin-apiclient/compat';
+import ConnectionManager from './connectionManager';
+
const normalizeImageOptions = options => {
if (!options.quality && (options.maxWidth || options.width || options.maxHeight || options.height || options.fillWidth || options.fillHeight)) {
options.quality = 90;
diff --git a/src/lib/jellyfin-apiclient/index.ts b/src/lib/jellyfin-apiclient/index.ts
new file mode 100644
index 000000000..ce919d85f
--- /dev/null
+++ b/src/lib/jellyfin-apiclient/index.ts
@@ -0,0 +1,3 @@
+export { ConnectionMode } from './connectionMode';
+export { ConnectionState } from './connectionState';
+export { default as ServerConnections } from './ServerConnections';
diff --git a/src/plugins/backdropScreensaver/plugin.js b/src/plugins/backdropScreensaver/plugin.js
index 1b0c5bfb7..fc22fbb4b 100644
--- a/src/plugins/backdropScreensaver/plugin.js
+++ b/src/plugins/backdropScreensaver/plugin.js
@@ -1,5 +1,5 @@
-import ServerConnections from 'lib/jellyfin-apiclient/ServerConnections';
+import { ServerConnections } from 'lib/jellyfin-apiclient';
import * as userSettings from 'scripts/settings/userSettings';
import { PluginType } from 'types/plugin.ts';
diff --git a/src/plugins/bookPlayer/plugin.js b/src/plugins/bookPlayer/plugin.js
index 9ad4e8526..1e0ad2a00 100644
--- a/src/plugins/bookPlayer/plugin.js
+++ b/src/plugins/bookPlayer/plugin.js
@@ -6,7 +6,7 @@ import dialogHelper from '../../components/dialogHelper/dialogHelper';
import Screenfull from 'screenfull';
import TableOfContents from './tableOfContents';
import { translateHtml } from '../../lib/globalize';
-import ServerConnections from 'lib/jellyfin-apiclient/ServerConnections';
+import { ServerConnections } from 'lib/jellyfin-apiclient';
import browser from 'scripts/browser';
import * as userSettings from '../../scripts/settings/userSettings';
import TouchHelper from 'scripts/touchHelper';
diff --git a/src/plugins/chromecastPlayer/plugin.js b/src/plugins/chromecastPlayer/plugin.js
index ed85eedab..a7c149ac4 100644
--- a/src/plugins/chromecastPlayer/plugin.js
+++ b/src/plugins/chromecastPlayer/plugin.js
@@ -4,7 +4,7 @@ import { playbackManager } from '../../components/playback/playbackmanager';
import globalize from '../../lib/globalize';
import CastSenderApi from './castSenderApi';
import alert from '../../components/alert';
-import ServerConnections from 'lib/jellyfin-apiclient/ServerConnections';
+import { ServerConnections } from 'lib/jellyfin-apiclient';
import { PluginType } from '../../types/plugin.ts';
import Events from '../../utils/events.ts';
import { getItems } from '../../utils/jellyfin-apiclient/getItems.ts';
diff --git a/src/plugins/comicsPlayer/plugin.js b/src/plugins/comicsPlayer/plugin.js
index 8c84b121f..24d12f0c0 100644
--- a/src/plugins/comicsPlayer/plugin.js
+++ b/src/plugins/comicsPlayer/plugin.js
@@ -3,7 +3,7 @@ import loading from '../../components/loading/loading';
import dialogHelper from '../../components/dialogHelper/dialogHelper';
import keyboardnavigation from '../../scripts/keyboardNavigation';
import { appRouter } from '../../components/router/appRouter';
-import ServerConnections from 'lib/jellyfin-apiclient/ServerConnections';
+import { ServerConnections } from 'lib/jellyfin-apiclient';
import * as userSettings from '../../scripts/settings/userSettings';
import { PluginType } from '../../types/plugin.ts';
diff --git a/src/plugins/htmlVideoPlayer/plugin.js b/src/plugins/htmlVideoPlayer/plugin.js
index 5c48b5ff8..efd19e3f8 100644
--- a/src/plugins/htmlVideoPlayer/plugin.js
+++ b/src/plugins/htmlVideoPlayer/plugin.js
@@ -29,7 +29,7 @@ import {
import itemHelper from '../../components/itemHelper';
import Screenfull from 'screenfull';
import globalize from '../../lib/globalize';
-import ServerConnections from 'lib/jellyfin-apiclient/ServerConnections';
+import { ServerConnections } from 'lib/jellyfin-apiclient';
import profileBuilder, { canPlaySecondaryAudio } from '../../scripts/browserDeviceProfile';
import { getIncludeCorsCredentials } from '../../scripts/settings/webSettings';
import { setBackdropTransparency, TRANSPARENCY_LEVEL } from '../../components/backdrop/backdrop';
diff --git a/src/plugins/pdfPlayer/plugin.js b/src/plugins/pdfPlayer/plugin.js
index 1c040602f..f77c01364 100644
--- a/src/plugins/pdfPlayer/plugin.js
+++ b/src/plugins/pdfPlayer/plugin.js
@@ -3,7 +3,7 @@ import keyboardnavigation from '../../scripts/keyboardNavigation';
import dialogHelper from '../../components/dialogHelper/dialogHelper';
import dom from '../../scripts/dom';
import { appRouter } from '../../components/router/appRouter';
-import ServerConnections from 'lib/jellyfin-apiclient/ServerConnections';
+import { ServerConnections } from 'lib/jellyfin-apiclient';
import { PluginType } from '../../types/plugin.ts';
import Events from '../../utils/events.ts';
diff --git a/src/plugins/photoPlayer/plugin.js b/src/plugins/photoPlayer/plugin.js
index 397739314..7fcec8294 100644
--- a/src/plugins/photoPlayer/plugin.js
+++ b/src/plugins/photoPlayer/plugin.js
@@ -1,4 +1,4 @@
-import ServerConnections from 'lib/jellyfin-apiclient/ServerConnections';
+import { ServerConnections } from 'lib/jellyfin-apiclient';
import { PluginType } from 'types/plugin.ts';
export default class PhotoPlayer {
diff --git a/src/plugins/playAccessValidation/plugin.js b/src/plugins/playAccessValidation/plugin.js
index 5202bf231..cae96f8c3 100644
--- a/src/plugins/playAccessValidation/plugin.js
+++ b/src/plugins/playAccessValidation/plugin.js
@@ -1,6 +1,6 @@
import alert from 'components/alert';
import globalize from 'lib/globalize';
-import ServerConnections from 'lib/jellyfin-apiclient/ServerConnections';
+import { ServerConnections } from 'lib/jellyfin-apiclient';
import { PluginType } from 'types/plugin.ts';
function showErrorMessage() {
diff --git a/src/plugins/sessionPlayer/plugin.js b/src/plugins/sessionPlayer/plugin.js
index 0e55d599f..40681ae81 100644
--- a/src/plugins/sessionPlayer/plugin.js
+++ b/src/plugins/sessionPlayer/plugin.js
@@ -1,5 +1,5 @@
import { playbackManager } from '../../components/playback/playbackmanager';
-import ServerConnections from 'lib/jellyfin-apiclient/ServerConnections';
+import { ServerConnections } from 'lib/jellyfin-apiclient';
import serverNotifications from '../../scripts/serverNotifications';
import { PluginType } from '../../types/plugin.ts';
import Events from '../../utils/events.ts';
diff --git a/src/plugins/syncPlay/plugin.ts b/src/plugins/syncPlay/plugin.ts
index a32c64ec3..41f5715ab 100644
--- a/src/plugins/syncPlay/plugin.ts
+++ b/src/plugins/syncPlay/plugin.ts
@@ -1,5 +1,5 @@
import { playbackManager } from '../../components/playback/playbackmanager';
-import ServerConnections from 'lib/jellyfin-apiclient/ServerConnections';
+import { ServerConnections } from 'lib/jellyfin-apiclient';
import Events from '../../utils/events';
import SyncPlay from './core';
import SyncPlayNoActivePlayer from './ui/players/NoActivePlayer';
diff --git a/src/plugins/syncPlay/ui/groupSelectionMenu.js b/src/plugins/syncPlay/ui/groupSelectionMenu.js
index 543d83977..1b6a3d963 100644
--- a/src/plugins/syncPlay/ui/groupSelectionMenu.js
+++ b/src/plugins/syncPlay/ui/groupSelectionMenu.js
@@ -5,7 +5,7 @@ import actionsheet from '../../../components/actionSheet/actionSheet';
import globalize from '../../../lib/globalize';
import playbackPermissionManager from './playbackPermissionManager';
import { pluginManager } from '../../../components/pluginManager';
-import ServerConnections from 'lib/jellyfin-apiclient/ServerConnections';
+import { ServerConnections } from 'lib/jellyfin-apiclient';
import { PluginType } from '../../../types/plugin.ts';
import Events from '../../../utils/events.ts';
diff --git a/src/scripts/autoBackdrops.js b/src/scripts/autoBackdrops.js
index 4083e4602..8c0283740 100644
--- a/src/scripts/autoBackdrops.js
+++ b/src/scripts/autoBackdrops.js
@@ -5,7 +5,7 @@ import { pageClassOn } from '../utils/dashboard';
import { queryClient } from 'utils/query/queryClient';
import { getBrandingOptionsQuery } from 'apps/dashboard/features/branding/api/useBrandingOptions';
import { SPLASHSCREEN_URL } from 'constants/branding';
-import ServerConnections from 'lib/jellyfin-apiclient/ServerConnections';
+import { ServerConnections } from 'lib/jellyfin-apiclient';
const cache = {};
diff --git a/src/scripts/autoThemes.js b/src/scripts/autoThemes.js
index 673efa56f..3a842261a 100644
--- a/src/scripts/autoThemes.js
+++ b/src/scripts/autoThemes.js
@@ -1,6 +1,6 @@
import * as userSettings from './settings/userSettings';
import skinManager from './themeManager';
-import ServerConnections from 'lib/jellyfin-apiclient/ServerConnections';
+import { ServerConnections } from 'lib/jellyfin-apiclient';
import { pageClassOn } from 'utils/dashboard';
import Events from 'utils/events.ts';
diff --git a/src/scripts/autocast.js b/src/scripts/autocast.js
index 87462f07c..ac86286e2 100644
--- a/src/scripts/autocast.js
+++ b/src/scripts/autocast.js
@@ -1,5 +1,5 @@
import { playbackManager } from 'components/playback/playbackmanager';
-import ServerConnections from 'lib/jellyfin-apiclient/ServerConnections';
+import { ServerConnections } from 'lib/jellyfin-apiclient';
import Events from 'utils/events.ts';
export function enable(enabled) {
diff --git a/src/scripts/deleteHelper.js b/src/scripts/deleteHelper.js
index d9afa4d01..3f9fc8979 100644
--- a/src/scripts/deleteHelper.js
+++ b/src/scripts/deleteHelper.js
@@ -5,7 +5,7 @@ import alert from 'components/alert';
import confirm from 'components/confirm/confirm';
import { appRouter } from 'components/router/appRouter';
import globalize from 'lib/globalize';
-import ServerConnections from 'lib/jellyfin-apiclient/ServerConnections';
+import { ServerConnections } from 'lib/jellyfin-apiclient';
function alertText(options) {
return alert(options);
diff --git a/src/scripts/itemsByName.js b/src/scripts/itemsByName.js
index 6b4cbefca..e60d468d0 100644
--- a/src/scripts/itemsByName.js
+++ b/src/scripts/itemsByName.js
@@ -2,7 +2,7 @@ import listView from 'components/listview/listview';
import cardBuilder from 'components/cardbuilder/cardBuilder';
import imageLoader from 'components/images/imageLoader';
import globalize from 'lib/globalize';
-import ServerConnections from 'lib/jellyfin-apiclient/ServerConnections';
+import { ServerConnections } from 'lib/jellyfin-apiclient';
import 'elements/emby-itemscontainer/emby-itemscontainer';
import 'elements/emby-button/emby-button';
diff --git a/src/scripts/libraryMenu.js b/src/scripts/libraryMenu.js
index cecd63381..c4c6c6d4d 100644
--- a/src/scripts/libraryMenu.js
+++ b/src/scripts/libraryMenu.js
@@ -20,7 +20,7 @@ import { pluginManager } from '../components/pluginManager';
import groupSelectionMenu from '../plugins/syncPlay/ui/groupSelectionMenu';
import browser from './browser';
import globalize from 'lib/globalize';
-import ServerConnections from 'lib/jellyfin-apiclient/ServerConnections';
+import { ServerConnections } from 'lib/jellyfin-apiclient';
import imageHelper from '../utils/image';
import { getMenuLinks } from '../scripts/settings/webSettings';
import Dashboard, { pageClassOn } from '../utils/dashboard';
diff --git a/src/scripts/playlistViewer.js b/src/scripts/playlistViewer.js
index ff8e22506..2bb15930d 100644
--- a/src/scripts/playlistViewer.js
+++ b/src/scripts/playlistViewer.js
@@ -1,7 +1,7 @@
import { getPlaylistsApi } from '@jellyfin/sdk/lib/utils/api/playlists-api';
import listView from 'components/listview/listview';
-import ServerConnections from 'lib/jellyfin-apiclient/ServerConnections';
+import { ServerConnections } from 'lib/jellyfin-apiclient';
import { toApi } from 'utils/jellyfin-apiclient/compat';
function getFetchPlaylistItemsFn(apiClient, itemId) {
diff --git a/src/scripts/screensavermanager.js b/src/scripts/screensavermanager.js
index f085b1a91..d0b5ef1b9 100644
--- a/src/scripts/screensavermanager.js
+++ b/src/scripts/screensavermanager.js
@@ -1,6 +1,6 @@
import { playbackManager } from 'components/playback/playbackmanager';
import { pluginManager } from 'components/pluginManager';
-import ServerConnections from 'lib/jellyfin-apiclient/ServerConnections';
+import { ServerConnections } from 'lib/jellyfin-apiclient';
import { PluginType } from 'types/plugin.ts';
import Events from 'utils/events.ts';
diff --git a/src/scripts/serverNotifications.js b/src/scripts/serverNotifications.js
index 2b0d231b8..0f9353dcf 100644
--- a/src/scripts/serverNotifications.js
+++ b/src/scripts/serverNotifications.js
@@ -4,7 +4,7 @@ import { playbackManager } from 'components/playback/playbackmanager';
import { pluginManager } from 'components/pluginManager';
import { appRouter } from 'components/router/appRouter';
import toast from 'components/toast/toast';
-import ServerConnections from 'lib/jellyfin-apiclient/ServerConnections';
+import { ServerConnections } from 'lib/jellyfin-apiclient';
import inputManager from 'scripts/inputManager';
import Events from 'utils/events.ts';
import { PluginType } from 'types/plugin.ts';
diff --git a/src/scripts/taskbutton.js b/src/scripts/taskbutton.js
index bb2066fce..8a4979b60 100644
--- a/src/scripts/taskbutton.js
+++ b/src/scripts/taskbutton.js
@@ -1,6 +1,6 @@
import globalize from 'lib/globalize';
-import ServerConnections from 'lib/jellyfin-apiclient/ServerConnections';
+import { ServerConnections } from 'lib/jellyfin-apiclient';
import serverNotifications from 'scripts/serverNotifications';
import Events from 'utils/events.ts';
diff --git a/src/utils/dashboard.js b/src/utils/dashboard.js
index 666951acb..8c5d849eb 100644
--- a/src/utils/dashboard.js
+++ b/src/utils/dashboard.js
@@ -4,7 +4,7 @@ import { appRouter } from '../components/router/appRouter';
import baseAlert from '../components/alert';
import baseConfirm from '../components/confirm/confirm';
import globalize from '../lib/globalize';
-import ServerConnections from 'lib/jellyfin-apiclient/ServerConnections';
+import { ServerConnections } from 'lib/jellyfin-apiclient';
import * as webSettings from '../scripts/settings/webSettings';
import datetime from '../scripts/datetime';
import { setBackdropTransparency } from '../components/backdrop/backdrop';
From 608434fd51977c9dc2770bc57dc270ccc4c3e40f Mon Sep 17 00:00:00 2001
From: Bill Thornton
Date: Tue, 22 Apr 2025 09:53:46 -0400
Subject: [PATCH 077/645] Update README for lib/jellyfin-apiclient
---
README.md | 45 +++++++++++++++++++++++----------------------
1 file changed, 23 insertions(+), 22 deletions(-)
diff --git a/README.md b/README.md
index f8fee50ee..4d054ac37 100644
--- a/README.md
+++ b/README.md
@@ -81,28 +81,29 @@ Jellyfin Web is the frontend used for most of the clients available for end user
.
└── src
├── apps
- │ ├── dashboard # Admin dashboard app
- │ ├── experimental # New experimental app
- │ ├── stable # Classic (stable) app
- │ └── wizard # Startup wizard app
- ├── assets # Static assets
- ├── components # Higher order visual components and React components
- ├── constants # Common constant values
- ├── controllers # Legacy page views and controllers 🧹 ❌
- ├── elements # Basic webcomponents and React equivalents 🧹
- ├── hooks # Custom React hooks
- ├── lib # Reusable libraries
- │ ├── globalize # Custom localization library
- │ ├── legacy # Polyfills for legacy browsers
- │ ├── navdrawer # Navigation drawer library for classic layout
- │ └── scroller # Content scrolling library
- ├── plugins # Client plugins (features dynamically loaded at runtime)
- ├── scripts # Random assortment of visual components and utilities 🐉 ❌
- ├── strings # Translation files (only commit changes to en-us.json)
- ├── styles # Common app Sass stylesheets
- ├── themes # Sass and MUI themes
- ├── types # Common TypeScript interfaces/types
- └── utils # Utility functions
+ │ ├── dashboard # Admin dashboard app
+ │ ├── experimental # New experimental app
+ │ ├── stable # Classic (stable) app
+ │ └── wizard # Startup wizard app
+ ├── assets # Static assets
+ ├── components # Higher order visual components and React components
+ ├── constants # Common constant values
+ ├── controllers # Legacy page views and controllers 🧹 ❌
+ ├── elements # Basic webcomponents and React equivalents 🧹
+ ├── hooks # Custom React hooks
+ ├── lib # Reusable libraries
+ │ ├── globalize # Custom localization library
+ │ ├── jellyfin-apiclient # Supporting code for the deprecated apiclient package
+ │ ├── legacy # Polyfills for legacy browsers
+ │ ├── navdrawer # Navigation drawer library for classic layout
+ │ └── scroller # Content scrolling library
+ ├── plugins # Client plugins (features dynamically loaded at runtime)
+ ├── scripts # Random assortment of visual components and utilities 🐉 ❌
+ ├── strings # Translation files (only commit changes to en-us.json)
+ ├── styles # Common app Sass stylesheets
+ ├── themes # Sass and MUI themes
+ ├── types # Common TypeScript interfaces/types
+ └── utils # Utility functions
```
- ❌ — Deprecated, do **not** create new files here
From 83092b7ca621f1eaae26019aef7031f39d93b2ce Mon Sep 17 00:00:00 2001
From: Bill Thornton
Date: Tue, 22 Apr 2025 12:38:34 -0400
Subject: [PATCH 078/645] Update authorization header in connection manager
---
src/lib/jellyfin-apiclient/connectionManager.js | 13 ++++++++++++-
1 file changed, 12 insertions(+), 1 deletion(-)
diff --git a/src/lib/jellyfin-apiclient/connectionManager.js b/src/lib/jellyfin-apiclient/connectionManager.js
index 144a4b61d..bc39f1d5e 100644
--- a/src/lib/jellyfin-apiclient/connectionManager.js
+++ b/src/lib/jellyfin-apiclient/connectionManager.js
@@ -1,3 +1,4 @@
+import { getAuthorizationHeader } from '@jellyfin/sdk/lib/utils';
import { MINIMUM_VERSION } from '@jellyfin/sdk/lib/versions';
import { ApiClient } from 'jellyfin-apiclient';
@@ -224,7 +225,17 @@ export default class ConnectionManager {
url: `${serverUrl}/System/Info`,
dataType: 'json',
headers: {
- 'X-MediaBrowser-Token': server.AccessToken
+ 'Authorization': getAuthorizationHeader(
+ {
+ name: appName,
+ version: appVersion
+ },
+ {
+ id: deviceId,
+ name: deviceName
+ },
+ server.AccessToken
+ )
}
}).then(
(systemInfo) => {
From f0896776550bf74aa75c1ac482bc6bfacd2eb35c Mon Sep 17 00:00:00 2001
From: Bill Thornton
Date: Tue, 22 Apr 2025 12:50:00 -0400
Subject: [PATCH 079/645] Update authorization header in connection manager
---
src/lib/jellyfin-apiclient/connectionManager.js | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
diff --git a/src/lib/jellyfin-apiclient/connectionManager.js b/src/lib/jellyfin-apiclient/connectionManager.js
index bc39f1d5e..15d6c8591 100644
--- a/src/lib/jellyfin-apiclient/connectionManager.js
+++ b/src/lib/jellyfin-apiclient/connectionManager.js
@@ -1,3 +1,4 @@
+import { AUTHORIZATION_HEADER } from '@jellyfin/sdk/lib/api';
import { getAuthorizationHeader } from '@jellyfin/sdk/lib/utils';
import { MINIMUM_VERSION } from '@jellyfin/sdk/lib/versions';
import { ApiClient } from 'jellyfin-apiclient';
@@ -225,7 +226,7 @@ export default class ConnectionManager {
url: `${serverUrl}/System/Info`,
dataType: 'json',
headers: {
- 'Authorization': getAuthorizationHeader(
+ [AUTHORIZATION_HEADER]: getAuthorizationHeader(
{
name: appName,
version: appVersion
From 1f76a661337c8af82ba8072176cbd2ba88d44ae9 Mon Sep 17 00:00:00 2001
From: Fawrrax
Date: Tue, 22 Apr 2025 12:54:06 -0400
Subject: [PATCH 080/645] Translated using Weblate (Finnish) Translation:
Jellyfin/Jellyfin Web Translate-URL:
https://translate.jellyfin.org/projects/jellyfin/jellyfin-web/fi/
---
src/strings/fi.json | 41 +++++++++++++++++++++++++++++++----------
1 file changed, 31 insertions(+), 10 deletions(-)
diff --git a/src/strings/fi.json b/src/strings/fi.json
index 6667c81d7..276fc7630 100644
--- a/src/strings/fi.json
+++ b/src/strings/fi.json
@@ -145,7 +145,7 @@
"ColorTransfer": "Värien siirto",
"CommunityRating": "Yhteisön arvosana",
"Composer": "Säveltäjä",
- "ConfigureDateAdded": "Määritä miten 'Lisäyspäivä' tunnistetaan kohdasta Hallintapaneeli > Kirjastot > NFO-asetukset",
+ "ConfigureDateAdded": "Määritä miten 'Lisäyspäivä' tunnistetaan kohdasta Hallintapaneeli > Kirjastot > Näytä",
"ConfirmDeleteImage": "Poista kuva?",
"ConfirmDeleteItem": "Tämän kohteen poistaminen poistaa sen sekä tiedostojärjestelmästä että mediakirjastosta. Haluatko varmasti jatkaa?",
"ConfirmDeleteItems": "Näiden kohteiden poistaminen poistaa ne sekä tiedostojärjestelmästä että mediakirjastosta. Haluatko varmasti jatkaa?",
@@ -646,7 +646,7 @@
"EveryXHours": "{0} tunnin välein",
"EveryXMinutes": "{0} minuutin välein",
"EveryHour": "Tunnin välein",
- "LastSeen": "Viimeksi nähty {0}",
+ "LastSeen": "Viimeksi aktiivinen {0}",
"Yadif": "YADIF",
"Writer": "Kirjoittaja",
"WelcomeToProject": "Tervetuloa Jellyfiniin!",
@@ -793,7 +793,7 @@
"LabelMessageText": "Viestin sisältö",
"LabelMaxScreenshotsPerItem": "Kuvakaappausten enimmäismäärä per kohde:",
"LabelLoginDisclaimerHelp": "Kirjautumissivun alareunassa näytettävä viesti.",
- "LabelLockItemToPreventChanges": "Lukitse tämä kohde estääksesi tulevat muutokset",
+ "LabelLockItemToPreventChanges": "Lukitse tämä kohde estääksesi tulevat metatietojen muutokset",
"LabelLocalHttpServerPortNumberHelp": "HTTP-palvelimen TCP-portin numero.",
"LabelLocalHttpServerPortNumber": "Paikallisen HTTP-portin numero",
"LabelKodiMetadataSaveImagePaths": "Tallenna kuvien tiedostosijainnit NFO-tiedostoihin",
@@ -1026,7 +1026,7 @@
"HeaderAccessScheduleHelp": "Rajoita käyttö tiettyihin aikoihin luomalla käyttöaikataulu.",
"HardwareAccelerationWarning": "Laitteistokiihdytyksen käyttöönotto voi joissain ympäristöissä aiheuttaa epävakautta. Varmista, että käyttöjärjestelmän ja näytönohjaimen ajurit ovat ajan tasalla. Mikäli huomaat videotoistossa ongelmia käyttöönoton jälkeen, palauta \"Ei mitään\" -asetus.",
"EncoderPresetHelp": "Nopeampi asetus parantaa transkoodauksen nopeutta kuvanlaadun kustannuksella, ja hitaampi kuvanlaatua nopeuden kustannuksella.",
- "H264CrfHelp": "Constant Rate Factor (CRF) on x264 -enkooderin kuvanlaadun vakioasetus. Voit valita arvon lukujen 0 ja 51 väliltä, jossa matalammat arvot tarkoittavat parempaa kuvanlaatua (suurempien tiedostokokojen hinnalla). Järkevät arvot ovat väliltä 18-28. Oletusarvo x264:lle on 23, joten voit käyttää sitä lähtökohtana.",
+ "H264CrfHelp": "Constant Rate Factor (CRF) on x264 ja x265 -ohjelmistoenkooderien kuvanlaadun vakioasetus. Voit valita arvon lukujen 0 ja 51 väliltä, jossa matalammat arvot tarkoittavat parempaa kuvanlaatua (suurempien tiedostokokojen hinnalla). Järkevät arvot ovat väliltä 18-28. Oletusarvo x264:lle on 23, joten voit käyttää sitä lähtökohtana. Laitteistoenkooderit eivät käytä näitä asetuksia.",
"GuideProviderSelectListings": "Valitse luettelot",
"GuideProviderLogin": "Kirjaudu",
"GuestStar": "Vieraileva näyttelijä",
@@ -1278,11 +1278,11 @@
"LabelTonemappingThresholdHelp": "Sävykartoitusalgoritmin parametrit on hienosäädetty kohtauskohtaisesti ja raja-arvon avulla havaitaan onko kohtaus muuttunut vai ei. Jos nykyisen kehyksen keskimääräinen kirkkaus ja tämän hetkisen keskiarvon välimatka ylittää kynnysarvon, lasketaan kohtauksen kirkkauden keski- ja huippuarvo uudelleen. Suositellut ja oletusarvot ovat 0.8 ja 0.2.",
"LabelTonemappingThreshold": "Sävykartoituksen raja-arvo",
"LabelTonemappingRange": "Sävykartoituksen alue",
- "LabelTonemappingPeakHelp": "Korvaa signal-/nominal-/reference-huiput tällä arvolla. Hyödyllinen silloin kun näytön metatiedoissa ilmoitettu huipputieto ei ole luotettava tai kun sävykartoitetaan matalammalta alueelta korkeammalle. Suositeltu arvo on 100 ja oletusarvo on 0.",
+ "LabelTonemappingPeakHelp": "Korvaa metatiedoissa ilmoitetun input signaalin arvon tällä huippuarvolla. Suositeltu arvo on 100 (1000nit).",
"LabelTonemappingPeak": "Sävykartoituksen huippu",
"LabelTonemappingParamHelp": "Säädä sävykartoitusalgoritmia. Suositeltu ja oletusarvo on NaN. Tyypillisesti jätetään tyhjäksi.",
"LabelTonemappingParam": "Sävykartoituksen parametrit",
- "LabelTonemappingDesatHelp": "Vähentää tämän tason ylittävien värien kylläisyyttä. Auttaa estämään ylikorostuneita värejä muuntamalla väriavaruuden ulkopuoliset värit tasaisesti kohti valkoista. Korkeampi arvo säilyttää enemmän värejä. Suositus- ja oletusarvot ovat 0 ja 0,5.",
+ "LabelTonemappingDesatHelp": "Vähentää tämän kirkkaustason ylittävien värien kylläisyyttä. Suositeltu arvo on 0 (poista käytöstä).",
"LabelTonemappingDesat": "Sävykartoituksen kylläisyys",
"LabelTonemappingAlgorithm": "Valitse käytettävä sävykartoitusalgoritmi",
"LabelSyncPlayTimeSyncOffset": "Aika poikkeama",
@@ -1715,7 +1715,7 @@
"MediaInfoBlPresentFlag": "DV BL havaittu",
"MediaInfoRpuPresentFlag": "DV RPU havaittu",
"MediaInfoDvVersionMinor": "DV-väliversio",
- "LabelParallelImageEncodingLimitHelp": "Rinnakkain suoritettavien kuvaenkoodauksien enimmäismäärä. Asettamalla arvoksi \"0\" rajoitus asetetaan automaattisesti järjestelmän perusteella.",
+ "LabelParallelImageEncodingLimitHelp": "Rinnakkain suoritettavien kuvaenkoodauksien enimmäismäärä. Jättämällä arvon tyhjäksi rajoitus asetetaan automaattisesti järjestelmän perusteella.",
"HeaderPerformance": "Suorituskyky",
"LabelParallelImageEncodingLimit": "Rinnakkaisten kuvaenkoodauksien rajoitus",
"LabelEnableAudioVbr": "Käytä vaihtelevaa bittinopeutta äänen pakkaamiseen",
@@ -1775,7 +1775,7 @@
"BackdropScreensaver": "Backdrop-näytönsäästäjä",
"LogoScreensaver": "Logo-näytönsäästäjä",
"LabelIsHearingImpaired": "Kuulorajoitteisille (SDH)",
- "SelectAudioNormalizationHelp": "Kappalekohtainen vahvistus – jokaisen kappaleen äänenvoimakkuus pyritään säätämään samalle tasolle. Albumikohtainen vahvistus – kappaleiden äänenvoimakkuus pyritään tasaamaan albumikohtaisesti albumikohtaisen dynamiikan säilyttämiseksi.",
+ "SelectAudioNormalizationHelp": "Kappalekohtainen vahvistus – jokaisen kappaleen äänenvoimakkuus pyritään säätämään samalle tasolle. Albumikohtainen vahvistus – kappaleiden äänenvoimakkuus pyritään tasaamaan albumikohtaisesti albumikohtaisen dynamiikan säilyttämiseksi. Asetuksen vaihtaminen voi edellyttää nykyisen toiston käynnistämistä uudelleen.",
"LabelAlbumGain": "Albumikohtainen vahvistus",
"LabelSelectAudioNormalization": "Äänenvoimakkuuden normalisointi",
"LabelTrackGain": "Kappelkohtainen vahvistus",
@@ -1925,7 +1925,7 @@
"SelectPreferredTranscodeVideoAudioCodecHelp": "Valitse ensisijainen äänikoodekki videomateriaalin transkoodaamiseen. Jos ensisijainen koodekki ei ole tuettu, serveri käyttää seuraavaksi parasta koodekkia.",
"LabelTrickplayAccelEncoding": "Käyttöönota rautakiihdytetty MJPEG enkoodaus",
"LabelTrickplayAccelEncodingHelp": "Tällä hetkellä ainoastaan käytettävissä QSV, VA-API, VideoToolbox ja RKMPP. Tällä valinnalla ei ole vaikutusta muihin rautakiihdytysmetodeihin.",
- "HeaderVideoAdvanced": "Edistynyt video",
+ "HeaderVideoAdvanced": "Video (edistynyt)",
"PlaylistPublicDescription": "Salli tämän soittolistan katsominen jokaiselle kirjautuneelle käyttäjälle.",
"DateModified": "Muokkauspäivämäärä",
"AlwaysBurnInSubtitleWhenTranscoding": "Polta tekstit aina muunnettaessa",
@@ -1992,5 +1992,26 @@
"DeleteServerConfirmation": "Haluatko varmasti poistaa tämän palvelimen?",
"LabelDevice": "Laite",
"MetadataImagesLoadError": "Metadata-asetusten lataus epäonnistui",
- "LibraryNameInvalid": "Kirjastolla tulee olla nimi."
+ "LibraryNameInvalid": "Kirjastolla tulee olla nimi.",
+ "AutoSubtitleStylingHelp": "Tämä tila vaihtaa automaattisesti natiivien ja mukautettujen tekstitystyylien välillä päätelaitteesta riippuen.",
+ "Custom": "Mukautettu",
+ "CustomSubtitleStylingHelp": "Tekstityksien tyylit toimivat useimmilla laitteilla, mutta kuormittavat suorituskykyä.",
+ "DisplayLoadError": "Virhe ladattaessa näytön konfiguraatiotietoja.",
+ "LastActive": "Viimeksi aktiivinen",
+ "MessageCancelSeriesTimerError": "Virhe peruessa sarjan ajastinta",
+ "MetadataNfoLoadError": "Metatietojen NFO-asetusten lataaminen epäonnistui",
+ "Native": "Natiivi",
+ "LabelMediaSegmentProviders": "Median osioiden tarjoajat",
+ "LabelSubtitleStyling": "Tekstityksien tyyli",
+ "MessageCancelTimerError": "Virhe peruessa ajastinta",
+ "LabelGroupShowsIntoCollections": "Kokoa sarjat kokoelmiksi",
+ "LabelGroupShowsIntoCollectionsHelp": "Kokoelmissa olevat sarjat näytetään yhtenä kohteena sarjalistauksissa.",
+ "LimitSegmentLength": "Käytä lyhyempiä HLS segmenttejä",
+ "LimitSegmentLengthHelp": "Tämän asetuksen käyttöön ottaminen voi ehkäistä HLS soittimen jämähtämistä kelattaessa tietyillä laitteilla, kuten webOS TV:llä.",
+ "MediaSegmentProvidersHelp": "Ota käyttöön ja järjestä halutut mediaosioiden tarjoajat tärkeysjärjestykseen.",
+ "CustomSplashScreenSize": "Mukautetut kuvat tulee olla 16x9 näyttösuhteessa ja minimissään 1920x1080 resoluutiolla.",
+ "DeleteCustomImage": "Poista mukautettu kuva",
+ "ImageDeleteFailed": "Kuvan poistaminen epäonnistui",
+ "ImageUploadCancelled": "Kuvan lähetys peruttiin",
+ "ImageUploadFailed": "Kuvan lähetys epäonnistui"
}
From ddd4d0143bca145849a6f8e473829bb7b47eff6f Mon Sep 17 00:00:00 2001
From: Fawrrax
Date: Wed, 23 Apr 2025 02:31:01 -0400
Subject: [PATCH 081/645] Translated using Weblate (Finnish) Translation:
Jellyfin/Jellyfin Web Translate-URL:
https://translate.jellyfin.org/projects/jellyfin/jellyfin-web/fi/
---
src/strings/fi.json | 37 ++++++++++++++++++++++++-------------
1 file changed, 24 insertions(+), 13 deletions(-)
diff --git a/src/strings/fi.json b/src/strings/fi.json
index 276fc7630..4c4a0d1b1 100644
--- a/src/strings/fi.json
+++ b/src/strings/fi.json
@@ -34,7 +34,7 @@
"SettingsSaved": "Asetukset tallennettu.",
"TabProfiles": "Profiilit",
"TellUsAboutYourself": "Kerro meille itsestäsi",
- "ThisWizardWillGuideYou": "Tämä työkalu auttaa sinua asennusprosessin aikana. Valitse kieli aloittaaksesi.",
+ "ThisWizardWillGuideYou": "Tämä työkalu auttaa sinua asennusprosessin aikana. Anna palvelimen nimi ja valitse kieli aloittaaksesi.",
"UninstallPluginConfirmation": "Haluatko varmasti poistaa lisäosan '{0}'?",
"HeaderUninstallPlugin": "Poista lisäosa",
"Absolute": "Ehdoton",
@@ -353,7 +353,7 @@
"HeaderSubtitleDownloads": "Tekstitysten lataus",
"HeaderSpecialEpisodeInfo": "Erikoisjakson tiedot",
"HeaderSortOrder": "Lajittelujärjestys",
- "HeaderSetupLibrary": "Aseta mediakirjastosi",
+ "HeaderSetupLibrary": "Määritä mediakirjastosi",
"HeaderSeriesStatus": "Sarjan tila",
"HeaderSeriesOptions": "Sarjan asetukset",
"HeaderSelectTranscodingPath": "Valitse transkoodauksen väliakaistiedostojen sijainti",
@@ -647,7 +647,7 @@
"EveryXMinutes": "{0} minuutin välein",
"EveryHour": "Tunnin välein",
"LastSeen": "Viimeksi aktiivinen {0}",
- "Yadif": "YADIF",
+ "Yadif": "Yet Another DeInterlacing Filter (YADIF)",
"Writer": "Kirjoittaja",
"WelcomeToProject": "Tervetuloa Jellyfiniin!",
"Wednesday": "Keskiviikko",
@@ -1545,8 +1545,8 @@
"LabelVideoInfo": "Videon tiedot",
"LabelAudioInfo": "Äänen tiedot",
"LabelPlaybackInfo": "Toiston tiedot",
- "AspectRatioFill": "Täyttö",
- "AspectRatioCover": "Kansi",
+ "AspectRatioFill": "Täytä",
+ "AspectRatioCover": "Suurenna",
"EnableFallbackFontHelp": "Käytä omia vaihtoehtoisia fontteja. Tämän avulla voidaan välttää tekstitysten renderöintiongelmia.",
"EnableFallbackFont": "Käytä varmistusfontteja",
"WriteAccessRequired": "Jellyfin tarvitsee kirjoitusoikeuden tähän kansioon. Varmista kirjoitusoikeus ja yritä uudelleen.",
@@ -1646,12 +1646,12 @@
"PreferSystemNativeHwDecoder": "Suosi käyttöjärjestelmän natiiveja DXVA- ja VA-API-laitteistodekoodereita",
"ContainerBitrateExceedsLimit": "Videon bittinopeus ylittää rajoituksen",
"AudioBitDepthNotSupported": "Äänen bittisyvyyttä ei tueta",
- "EnableEnhancedNvdecDecoderHelp": "Kokeellinen NVDEC-toteutus, jota ei tule käyttää, jollei dekoodausvirheitä esiinny.",
+ "EnableEnhancedNvdecDecoderHelp": "Parannettu NVDEC-toteutus. Kytke tämä asetus pois päältä käyttääksesi CUVID:ia jos dekoodausvirheitä esiintyy.",
"PersonRole": "roolissa {0}",
"HomeVideosPhotos": "Kotivideot ja valokuvat",
"Bold": "Lihavoitu",
"LabelTextWeight": "Tekstin vahvuus",
- "EnableSplashScreen": "Käytä aloitusruutua",
+ "EnableSplashScreen": "Ota käyttöön aloitusruudun kuva",
"MediaInfoDvLevel": "DV-taso",
"MediaInfoDvProfile": "DV-profiili",
"MediaInfoDoViTitle": "DV-nimike",
@@ -1827,7 +1827,7 @@
"PlaybackError.NotAllowed": "Tämän median toisto ei ole sallittua.",
"EnableVideoToolboxTonemapping": "Ota käyttöön VideoToolbox Tone mapping",
"AllowMjpegEncoding": "Salli enkoodaus MJPEG formaattiin (käytetään trickplay luomisessa)",
- "LabelTrickplayAccel": "Ota käyttöön laitteistokiihdytys",
+ "LabelTrickplayAccel": "Ota käyttöön laitteistodekoodaus",
"LabelTrickplayAccelHelp": "Varmista, että otat käyttöön \"Salli MPEG enkoodaus' Transkoodausasetuksissa jos laitteistosi tukee sitä.",
"LabelScanBehaviorHelp": "Oletuskäyttäytyminen on ei-blokkaava, joka lisää median kirjastoon ennen trickplay luontia. Blokkaus varmistaa, että trickplay-tiedostot luodaan ennen kuin media lisätään kirjastoon, mutta tekee skannauksista merkittävästi pitempiä.",
"PriorityIdle": "Toimeton",
@@ -1882,7 +1882,7 @@
"EnableTrueHd": "Ota TrueHD käyttöön",
"HeaderNextItem": "Seuraava {0}",
"HeaderNextItemPlayingInValue": "Seuraavaksi {0} jonka alkuun {1}",
- "LabelTrickplayKeyFrameOnlyExtraction": "Luo kuvia ainoastaan avainkehyksistä",
+ "LabelTrickplayKeyFrameOnlyExtraction": "Luo kuvia ainoastaan avainruuduista",
"PasswordMissingSaveError": "Uusi salasana ei voi olla tyhjä.",
"SearchForLyrics": "Etsi sanoituksia",
"LabelSelectPreferredTranscodeVideoCodec": "Ensisijainen transkoodaava videokoodekki",
@@ -1903,7 +1903,7 @@
"LabelNoChangelog": "Tälle julkaisuversiolle ei ole saatavilla muutoshistoriaa.",
"LabelIsSynced": "On synkronisoitu",
"NoLyricsSearchResultsFound": "Kappaleen sanoja ei löytynyt.",
- "PluginLoadRepoError": "Virhe haettaessa lisäosan tietoja sen säilytyspaikasta.",
+ "PluginLoadRepoError": "Virhe haettaessa lisäosan tietoja ohjelmavarastosta.",
"PluginUninstallError": "Virhe poistettaessa lisäosaa.",
"PreviewLyrics": "Esikatsele kappaleen sanoja",
"PluginEnableError": "Virhe lisäosan käyttöönotossa.",
@@ -1919,11 +1919,11 @@
"LabelSelectPreferredTranscodeVideoAudioCodec": "Ensisijainen transkoodattu äänikoodekki videotoistossa",
"AllowTonemappingSoftwareHelp": "Sävykartoitus voi muuttaa videon dynaamista aluetta HDR:stä SDR:ään säilyttäen silti kuvan yksityiskohdat ja värin, jotka ovat erittäin tärkeitä alkuperäisen kohtauksen tiedon säilyttämiseksi. Tällä hetkellä se toimii ainoastaan 10bit HDR10, -HLG, ja DoVi-videoiden kanssa.",
"Editor": "Ohjaus",
- "Letterer": "Kirjoittaja",
+ "Letterer": "Tekstaaja",
"LibraryScanFanoutConcurrencyHelp": "Samanaikaisten suoritettavien kirjastoskannausten maksimimäärä. Mikäli tämä arvo on jätetty tyhjäksi, määrä valitaan järjestelmän prosessorin säikeiden lukumäärän mukaan. VAROITUS: Tämän arvon asettaminen liian korkeaksi voi aiheuttaa ongelmia verkkotiedostojärjestelmissä. Jos koet ongelmatilanteista, laske tätä numeroa.",
"SaveLyricsIntoMediaFoldersHelp": "Sanoitusten tallentaminen äänitiedoston kanssa samaan sijaintiin helpottaa niiden hallintaa.",
"SelectPreferredTranscodeVideoAudioCodecHelp": "Valitse ensisijainen äänikoodekki videomateriaalin transkoodaamiseen. Jos ensisijainen koodekki ei ole tuettu, serveri käyttää seuraavaksi parasta koodekkia.",
- "LabelTrickplayAccelEncoding": "Käyttöönota rautakiihdytetty MJPEG enkoodaus",
+ "LabelTrickplayAccelEncoding": "Ota käyttöön laitteistokiihdytetty MJPEG enkoodaus",
"LabelTrickplayAccelEncodingHelp": "Tällä hetkellä ainoastaan käytettävissä QSV, VA-API, VideoToolbox ja RKMPP. Tällä valinnalla ei ole vaikutusta muihin rautakiihdytysmetodeihin.",
"HeaderVideoAdvanced": "Video (edistynyt)",
"PlaylistPublicDescription": "Salli tämän soittolistan katsominen jokaiselle kirjautuneelle käyttäjälle.",
@@ -2013,5 +2013,16 @@
"DeleteCustomImage": "Poista mukautettu kuva",
"ImageDeleteFailed": "Kuvan poistaminen epäonnistui",
"ImageUploadCancelled": "Kuvan lähetys peruttiin",
- "ImageUploadFailed": "Kuvan lähetys epäonnistui"
+ "ImageUploadFailed": "Kuvan lähetys epäonnistui",
+ "RetryWithGlobalSearch": "Yritä uudelleen globaalilla haulla",
+ "StreamCountExceedsLimit": "Lähetyksien määrä ylittää raja-arvon",
+ "UploadCustomImage": "Lähetä mukautettu kuva",
+ "UseCustomTagDelimitersHelp": "Leikkaa artisti/genre tagit mukautetulla merkillä.",
+ "ReadInputAtNativeFramerate": "Lue syöte natiivilla ruudunpäivitysnopeudella",
+ "ReadInputAtNativeFramerateHelp": "Tämän asetuksen käyttöön ottaminen voi ratkaista joitain ongelmia, esim. suoratoiston ennenaikaisen pysähtymisen.",
+ "UseCustomTagDelimiters": "Käytä mukautettua tagien erotinta",
+ "SettingsPageLoadError": "Asetukset-sivun lataaminen epäonnistui",
+ "NativeSubtitleStylingHelp": "Tekstityksen tyylit eivät toimi kaikilla laitteilla, mutta ei aiheuta ylimääräistä kuormaa.",
+ "VideoCodecTagNotSupported": "Videokoodekin tagi ei ole tuettu",
+ "LogLoadFailure": "Logitiedoston lataaminen epäonnistui. Se saattaa olla kirjoituksen kohteena."
}
From 215af526ec6e39dff8ccae94ef0ab9c47603ed03 Mon Sep 17 00:00:00 2001
From: Thales Wittee
Date: Wed, 23 Apr 2025 05:42:14 -0400
Subject: [PATCH 082/645] Translated using Weblate (Portuguese (Brazil))
Translation: Jellyfin/Jellyfin Web Translate-URL:
https://translate.jellyfin.org/projects/jellyfin/jellyfin-web/pt_BR/
---
src/strings/pt-br.json | 11 +++++++++--
1 file changed, 9 insertions(+), 2 deletions(-)
diff --git a/src/strings/pt-br.json b/src/strings/pt-br.json
index 88f683915..0ff03ad03 100644
--- a/src/strings/pt-br.json
+++ b/src/strings/pt-br.json
@@ -104,7 +104,7 @@
"ColorTransfer": "Transferência de cor",
"CommunityRating": "Avaliação da comunidade",
"Composer": "Compositor",
- "ConfigureDateAdded": "Configure como os metadados são determinados para 'Data adicionada' em \"Painel > Bibliotecas > Configurações de NFO\"",
+ "ConfigureDateAdded": "Configure como os metadados são determinados para 'Data adicionada' em \"Painel > Bibliotecas > Exibição\"",
"ConfirmDeleteImage": "Excluir imagem?",
"ConfirmDeleteItem": "Ao excluir este item, você o excluirá do sistema de arquivos e também da biblioteca de mídias. Deseja realmente continuar?",
"ConfirmDeleteItems": "Ao excluir estes itens, você os excluirá do sistema de arquivos e de sua biblioteca de mídias. Deseja realmente continuar?",
@@ -1988,5 +1988,12 @@
"LabelMediaSegmentProviders": "Provedores de segmento de mídia",
"HeaderNextEpisode": "Próximo episódio",
"HeaderNextVideo": "Próximo vídeo",
- "MediaSegmentProvidersHelp": "Habilite e classifique seus provedores de segmentos de mídia preferidos em ordem de prioridade."
+ "MediaSegmentProvidersHelp": "Habilite e classifique seus provedores de segmentos de mídia preferidos em ordem de prioridade.",
+ "CustomSubtitleStylingHelp": "A personalização das legendas funcionará na maioria dos dispositivos, mas pode acarretar um custo adicional de desempenho.",
+ "CustomSplashScreenSize": "Imagens personalizadas devem ter uma proporção de 16x9 com um tamanho mínimo de 1920x1080.",
+ "DeleteCustomImage": "Excluir Imagem Personalizada",
+ "CopyLogSuccess": "Conteúdo do log copiado com sucesso.",
+ "AutoSubtitleStylingHelp": "Este modo alternará automaticamente entre os mecanismos de estilo de legenda nativo e personalizado com base no tipo do seu dispositivo.",
+ "Custom": "Personalizado",
+ "DeleteServerConfirmation": "Você tem certeza que deseja excluir este servidor?"
}
From cb2c64c6d5db5f993c25e963245a61e104543c4b Mon Sep 17 00:00:00 2001
From: Josh Patra
Date: Wed, 23 Apr 2025 04:22:45 -0400
Subject: [PATCH 083/645] Translated using Weblate (English (Pirate))
Translation: Jellyfin/Jellyfin Web Translate-URL:
https://translate.jellyfin.org/projects/jellyfin/jellyfin-web/en@pirate/
---
src/strings/pr.json | 4 +++-
1 file changed, 3 insertions(+), 1 deletion(-)
diff --git a/src/strings/pr.json b/src/strings/pr.json
index 8547d5635..f0019627d 100644
--- a/src/strings/pr.json
+++ b/src/strings/pr.json
@@ -101,5 +101,7 @@
"AllComplexFormats": "All Fancy Codecs (ARR, SSA, BootySub, Pirate GoldS, Swabby, Charts, …)",
"AllowFfmpegThrottling": "Rein in Code Scurvy",
"Channels": "Channels",
- "AllowCollectionManagement": "Permit this scallywag to handle treasures"
+ "AllowCollectionManagement": "Permit this scallywag to handle treasures",
+ "Absolute": "Abs'lute",
+ "AgeValue": "({0} summers gone by)"
}
From 5259baecb965808a904304d96bfb7911b7f9b7ed Mon Sep 17 00:00:00 2001
From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com>
Date: Wed, 23 Apr 2025 14:35:47 +0000
Subject: [PATCH 084/645] Update CI dependencies
---
.github/workflows/__codeql.yml | 6 +++---
.github/workflows/__package.yml | 2 +-
.github/workflows/__quality_checks.yml | 2 +-
.github/workflows/pull_request.yml | 2 +-
4 files changed, 6 insertions(+), 6 deletions(-)
diff --git a/.github/workflows/__codeql.yml b/.github/workflows/__codeql.yml
index a6151df9c..9494bc7ad 100644
--- a/.github/workflows/__codeql.yml
+++ b/.github/workflows/__codeql.yml
@@ -26,15 +26,15 @@ jobs:
show-progress: false
- name: Initialize CodeQL 🛠️
- uses: github/codeql-action/init@45775bd8235c68ba998cffa5171334d58593da47 # v3.28.15
+ uses: github/codeql-action/init@28deaeda66b76a05916b6923827895f2b14ab387 # v3.28.16
with:
queries: security-and-quality
languages: ${{ matrix.language }}
- name: Autobuild 📦
- uses: github/codeql-action/autobuild@45775bd8235c68ba998cffa5171334d58593da47 # v3.28.15
+ uses: github/codeql-action/autobuild@28deaeda66b76a05916b6923827895f2b14ab387 # v3.28.16
- name: Perform CodeQL Analysis 🧪
- uses: github/codeql-action/analyze@45775bd8235c68ba998cffa5171334d58593da47 # v3.28.15
+ uses: github/codeql-action/analyze@28deaeda66b76a05916b6923827895f2b14ab387 # v3.28.16
with:
category: '/language:${{matrix.language}}'
diff --git a/.github/workflows/__package.yml b/.github/workflows/__package.yml
index b3af5861d..3be087499 100644
--- a/.github/workflows/__package.yml
+++ b/.github/workflows/__package.yml
@@ -19,7 +19,7 @@ jobs:
ref: ${{ inputs.commit || github.sha }}
- name: Setup node environment
- uses: actions/setup-node@cdca7365b2dadb8aad0a33bc7601856ffabcc48e # v4.3.0
+ uses: actions/setup-node@49933ea5288caeca8642d1e84afbd3f7d6820020 # v4.4.0
with:
node-version: 20
cache: npm
diff --git a/.github/workflows/__quality_checks.yml b/.github/workflows/__quality_checks.yml
index 5bc0c2e1b..013f81240 100644
--- a/.github/workflows/__quality_checks.yml
+++ b/.github/workflows/__quality_checks.yml
@@ -48,7 +48,7 @@ jobs:
show-progress: false
- name: Setup node environment ⚙️
- uses: actions/setup-node@cdca7365b2dadb8aad0a33bc7601856ffabcc48e # v4.3.0
+ uses: actions/setup-node@49933ea5288caeca8642d1e84afbd3f7d6820020 # v4.4.0
with:
node-version: 20
cache: npm
diff --git a/.github/workflows/pull_request.yml b/.github/workflows/pull_request.yml
index fe43dc99f..6f874a5f2 100644
--- a/.github/workflows/pull_request.yml
+++ b/.github/workflows/pull_request.yml
@@ -85,7 +85,7 @@ jobs:
ref: ${{ github.event.pull_request.head.sha }}
- name: Setup node environment
- uses: actions/setup-node@cdca7365b2dadb8aad0a33bc7601856ffabcc48e # v4.3.0
+ uses: actions/setup-node@49933ea5288caeca8642d1e84afbd3f7d6820020 # v4.4.0
with:
node-version: 20
cache: npm
From 08c19fd59ae16318ce952228e89c04e3df6dffcc Mon Sep 17 00:00:00 2001
From: Rasko
Date: Wed, 23 Apr 2025 09:28:47 -0400
Subject: [PATCH 085/645] =?UTF-8?q?Translated=20using=20Weblate=20(Norwegi?=
=?UTF-8?q?an=20Bokm=C3=A5l)=20Translation:=20Jellyfin/Jellyfin=20Web=20Tr?=
=?UTF-8?q?anslate-URL:=20https://translate.jellyfin.org/projects/jellyfin?=
=?UTF-8?q?/jellyfin-web/nb=5FNO/?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
src/strings/nb.json | 21 ++++++++++++++++-----
1 file changed, 16 insertions(+), 5 deletions(-)
diff --git a/src/strings/nb.json b/src/strings/nb.json
index e62641d02..dda8582ce 100644
--- a/src/strings/nb.json
+++ b/src/strings/nb.json
@@ -890,7 +890,7 @@
"TabUpcoming": "Kommende",
"Tags": "Tagger",
"TellUsAboutYourself": "Fortell oss litt om deg selv",
- "ThisWizardWillGuideYou": "Denne veiviseren vil hjelpe deg gjennom installasjonsprosessen. Velg ønsket språk for å komme i gang.",
+ "ThisWizardWillGuideYou": "Denne veiviseren vil hjelpe deg gjennom installasjonsprosessen. Velg et navn på serveren og ønsket språk for å komme i gang.",
"Thursday": "Torsdag",
"TitleHardwareAcceleration": "Maskinvareakselerasjon",
"TitleHostingSettings": "Vertsinnstillinger",
@@ -1437,8 +1437,8 @@
"RemuxHelp2": "Ompakking bruker svært lite prosessorkraft og fører ikke til tap av kvalitet på mediet.",
"RemuxHelp1": "Mediet er i en inkompatibel mediabeholder (MKV, AVI, WMV osv.), men både videostrømmen og lydstrømmen er kompatibel med enheten. Mediet vil pakkes om fortløpende uten kvalitetstap før det sendes til enheten.",
"Remuxing": "Ompakking",
- "AspectRatioFill": "Fyll",
- "AspectRatioCover": "Dekk",
+ "AspectRatioFill": "Strekk",
+ "AspectRatioCover": "Zoom",
"EnableFallbackFontHelp": "Aktiver egendefinerte alternative skrifttyper. Dette kan hjelpe med å unngå problemer ved gjengivelse av undertekster.",
"EnableFallbackFont": "Aktiver skrifttyper å falle tilbake på",
"LabelFallbackFontPathHelp": "Disse skrifttypene er brukt av noen klienter for å vise undertekster. Referer til dokumentasjonen for mer informasjon.",
@@ -1954,7 +1954,7 @@
"LabelCustomTagDelimiters": "Egendefinert skilletegn for tagger",
"LabelCustomTagDelimitersHelp": "Tegn som skal behandles som skilletegn for å separere tagger.",
"LabelDelimiterWhitelist": "Hviteliste for skilletegn",
- "LabelDelimiterWhitelistHelp": "Objekter som skal ekskluderes fra tagdeling. Ett objekt per linje.",
+ "LabelDelimiterWhitelistHelp": "Elementer som skal ekskluderes fra tagdeling. Ett element per linje.",
"PreferNonstandardArtistsTag": "Foretrekk ARTISTER-tag om tilgjengelig",
"PreferNonstandardArtistsTagHelp": "Bruk ikke-standard ARTISTS-taggen istedenfor ARTIST-taggen når den er tilgjengelig.",
"UseCustomTagDelimiters": "Bruk egendefinert skilletegn for tagger",
@@ -2008,5 +2008,16 @@
"Native": "Innebygd",
"Retry": "Prøv igjen",
"MetadataImagesLoadError": "Kunne ikke laste inn metadata-innstillinger",
- "LimitSegmentLength": "Bruk kortere HLS segmenter"
+ "LimitSegmentLength": "Bruk kortere HLS segmenter",
+ "UploadCustomImage": "Last opp egendefinert bilde",
+ "ReadInputAtNativeFramerateHelp": "Aktivering av denne innstillingen kan løse noen problemer som f. eks. direktesendinger som avsluttes for tidlig.",
+ "CustomSplashScreenSize": "Egendefinerte bilder bør være i en 16x9 størrelsesforhold med en minimumstørrelse på 1920x1080.",
+ "DeleteCustomImage": "Slett egendefinert bilde",
+ "ImageDeleteFailed": "Sletting av bilde mislykket",
+ "ImageUploadCancelled": "Opplastning av bilde avbrutt",
+ "ImageUploadFailed": "Opplastning av bilde mislykket",
+ "RetryWithGlobalSearch": "Prøv på nytt med globalt søk",
+ "LimitSegmentLengthHelp": "Aktivering av denne innstillingen kan hindre HLS-spilleren fra å henge seg opp ved spoling på enkelte enheter som f. eks. webOS TV-er.",
+ "LabelGroupShowsIntoCollections": "Grupper serier inn i samlinger",
+ "LabelGroupShowsIntoCollectionsHelp": "Serier i en samling vil vises som ett samlet element når serielister vises."
}
From a1a8ce1eaf4ac5cd62ee0bda1883790a5400ead4 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?=E7=84=A1=E6=83=85=E5=A4=A9?=
Date: Wed, 23 Apr 2025 15:03:22 -0400
Subject: [PATCH 086/645] Translated using Weblate (Chinese (Simplified Han
script)) Translation: Jellyfin/Jellyfin Web Translate-URL:
https://translate.jellyfin.org/projects/jellyfin/jellyfin-web/zh_Hans/
---
src/strings/zh-cn.json | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/src/strings/zh-cn.json b/src/strings/zh-cn.json
index ece36dc6c..e80c1b2e2 100644
--- a/src/strings/zh-cn.json
+++ b/src/strings/zh-cn.json
@@ -1057,7 +1057,7 @@
"ThemeSongs": "主题曲",
"ThemeVideos": "主题视频",
"TheseSettingsAffectSubtitlesOnThisDevice": "这些设置仅影响该设备的字幕显示",
- "ThisWizardWillGuideYou": "该向导将指导你完成安装过程。首先,请选择你的语言。",
+ "ThisWizardWillGuideYou": "此向导将引导您完成设置过程。首先,请输入服务器名称并选择您的首选语言。",
"Thumb": "缩略图",
"Thursday": "星期四",
"TitleHardwareAcceleration": "硬件加速",
From e0b7c8c332cfdd4d2c8c38cd951fdf49ba6c65b2 Mon Sep 17 00:00:00 2001
From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com>
Date: Thu, 24 Apr 2025 05:10:55 +0000
Subject: [PATCH 087/645] Update dependency @jellyfin/sdk to
v0.0.0-unstable.202504240501
---
package-lock.json | 14 +++++++-------
package.json | 2 +-
2 files changed, 8 insertions(+), 8 deletions(-)
diff --git a/package-lock.json b/package-lock.json
index 71c10d3ca..30548be78 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -18,7 +18,7 @@
"@fontsource/noto-sans-sc": "5.2.5",
"@fontsource/noto-sans-tc": "5.2.5",
"@jellyfin/libass-wasm": "4.2.3",
- "@jellyfin/sdk": "0.0.0-unstable.202504210502",
+ "@jellyfin/sdk": "0.0.0-unstable.202504240501",
"@jellyfin/ux-web": "1.0.0",
"@mui/icons-material": "6.4.11",
"@mui/material": "6.4.11",
@@ -4091,9 +4091,9 @@
"license": "LGPL-2.1-or-later AND (FTL OR GPL-2.0-or-later) AND MIT AND MIT-Modern-Variant AND ISC AND NTP AND Zlib AND BSL-1.0"
},
"node_modules/@jellyfin/sdk": {
- "version": "0.0.0-unstable.202504210502",
- "resolved": "https://registry.npmjs.org/@jellyfin/sdk/-/sdk-0.0.0-unstable.202504210502.tgz",
- "integrity": "sha512-CfJ7HXpfSZBToo8Vx1QW+mVodrnRnBQ1ssXTcS6EI0ZXp+xLhHoKkB4K0KgkEkYjJ1EOn5mZ+ITifyoV15Ivzg==",
+ "version": "0.0.0-unstable.202504240501",
+ "resolved": "https://registry.npmjs.org/@jellyfin/sdk/-/sdk-0.0.0-unstable.202504240501.tgz",
+ "integrity": "sha512-oFcPhQz2BbzWjAVDhAAP4mUn2Y4OQOgLPqJCSot94EF1VPZXPDklkgSSrvgC/vb8k82juoB8zRrv+UEQCB6seQ==",
"license": "MPL-2.0",
"peerDependencies": {
"axios": "^1.3.4"
@@ -28585,9 +28585,9 @@
"integrity": "sha512-C0OlBxIr9NdeFESMTA/OVDqNSWtog6Mi7wwzwH12xbZpxsMD0RgCupUcIP7zZgcpTNecW3fZq5d6xVo7Q8HEJw=="
},
"@jellyfin/sdk": {
- "version": "0.0.0-unstable.202504210502",
- "resolved": "https://registry.npmjs.org/@jellyfin/sdk/-/sdk-0.0.0-unstable.202504210502.tgz",
- "integrity": "sha512-CfJ7HXpfSZBToo8Vx1QW+mVodrnRnBQ1ssXTcS6EI0ZXp+xLhHoKkB4K0KgkEkYjJ1EOn5mZ+ITifyoV15Ivzg==",
+ "version": "0.0.0-unstable.202504240501",
+ "resolved": "https://registry.npmjs.org/@jellyfin/sdk/-/sdk-0.0.0-unstable.202504240501.tgz",
+ "integrity": "sha512-oFcPhQz2BbzWjAVDhAAP4mUn2Y4OQOgLPqJCSot94EF1VPZXPDklkgSSrvgC/vb8k82juoB8zRrv+UEQCB6seQ==",
"requires": {}
},
"@jellyfin/ux-web": {
diff --git a/package.json b/package.json
index f3c82e9d6..874b9cea1 100644
--- a/package.json
+++ b/package.json
@@ -84,7 +84,7 @@
"@fontsource/noto-sans-sc": "5.2.5",
"@fontsource/noto-sans-tc": "5.2.5",
"@jellyfin/libass-wasm": "4.2.3",
- "@jellyfin/sdk": "0.0.0-unstable.202504210502",
+ "@jellyfin/sdk": "0.0.0-unstable.202504240501",
"@jellyfin/ux-web": "1.0.0",
"@mui/icons-material": "6.4.11",
"@mui/material": "6.4.11",
From 1d7ba48218e087513e64eea275ac84fc3a410f81 Mon Sep 17 00:00:00 2001
From: vinyk19
Date: Thu, 24 Apr 2025 07:31:39 -0400
Subject: [PATCH 088/645] Translated using Weblate (Danish) Translation:
Jellyfin/Jellyfin Web Translate-URL:
https://translate.jellyfin.org/projects/jellyfin/jellyfin-web/da/
---
src/strings/da.json | 20 +++++++++++++++++---
1 file changed, 17 insertions(+), 3 deletions(-)
diff --git a/src/strings/da.json b/src/strings/da.json
index 8b63a784e..d7a5f7c3b 100644
--- a/src/strings/da.json
+++ b/src/strings/da.json
@@ -876,7 +876,7 @@
"TabScheduledTasks": "Planlagte opgaver",
"TabUpcoming": "Kommende",
"TellUsAboutYourself": "Fortæl os lidt om dig selv",
- "ThisWizardWillGuideYou": "Denne guide vil hjælpe dig igennem opsætningen. For at begynde, vælg venligst dit fortrukne sprog.",
+ "ThisWizardWillGuideYou": "Denne guide vil hjælpe dig igennem opsætningsprocessen. For at starte, indtast venligst et servernavn og vælg dit foretrukne sprog.",
"Thursday": "Torsdag",
"TitleHardwareAcceleration": "Hardwareacceleration",
"TitleHostingSettings": "Værts-indstillinger",
@@ -1866,7 +1866,7 @@
"Inker": "Maler",
"Penciller": "Tegner",
"Letterer": "Skrift fra",
- "LibraryScanFanoutConcurrencyHelp": "Maks. antal parallelle opgaver under biblioteks-scanninger. Hvis du indstiller dette til 0, vil der vælges en grænse baseret på dit systems kerneantal. ADVARSEL: Indstilles dette tal for højt, kan det forårsage problemer med netværksfilsystemer; hvis du oplever problemer, skal du sænke dette tal.",
+ "LibraryScanFanoutConcurrencyHelp": "Maksimalt antal parallelle opgaver under biblioteksscanning. Hvis feltet efterlades tomt, vælges en grænse baseret på antallet af kerner i systemet. ADVARSEL: Et for højt tal kan give problemer med netværksfilsystemer – sænk tallet, hvis du oplever problemer.",
"Lyrics": "Sangtekster",
"PlaylistError.AddFailed": "Fejl ved tilføjelse til afspilningsliste",
"PlaylistError.CreateFailed": "Fejl ved oprettelse af afspilningsliste",
@@ -2010,5 +2010,19 @@
"DeleteCustomImage": "Slet brugerdefineret billede",
"ImageUploadCancelled": "Billedupload annulleret",
"ImageDeleteFailed": "Billedsletning mislykkedes",
- "ImageUploadFailed": "Billedupload mislykkedes"
+ "ImageUploadFailed": "Billedupload mislykkedes",
+ "StreamCountExceedsLimit": "Antallet af streams overskrider grænsen",
+ "LimitSegmentLengthHelp": "Aktivering af denne indstilling kan hjælpe med at forhindre, at HLS-afspilleren fryser ved søgning på visse enheder, f.eks. webOS-tv.",
+ "MetadataImagesLoadError": "Kunne ikke indlæse metadata-indstillinger",
+ "MetadataNfoLoadError": "Kunne ikke indlæse metadata-NFO-indstillinger",
+ "Native": "Oprindelig",
+ "UploadCustomImage": "Upload brugerdefineret billede",
+ "SettingsPageLoadError": "Kunne ikke indlæse indstillingsside",
+ "ReadInputAtNativeFramerate": "Læs input ved den oprindelige billedfrekvens",
+ "ReadInputAtNativeFramerateHelp": "Aktivering af denne indstilling kan løse nogle problemer, f.eks. at live streams stopper for tidligt.",
+ "RetryWithGlobalSearch": "Prøv igen med en global søgning",
+ "PageNotFound": "Dette er ikke den side, du leder efter.",
+ "LogLoadFailure": "Kunne ikke indlæse logfilen. Den kan stadig blive skrevet til aktivt.",
+ "LabelGroupShowsIntoCollectionsHelp": "Serier i en samling vises som ét samlet element, når serielister vises.",
+ "LimitSegmentLength": "Brug kortere HLS-segmenter"
}
From 2ca88c8e675b6f2aaba995e9e65017f4a669e7eb Mon Sep 17 00:00:00 2001
From: r-w-code
Date: Thu, 24 Apr 2025 07:16:48 -0400
Subject: [PATCH 089/645] Translated using Weblate (English (United Kingdom))
Translation: Jellyfin/Jellyfin Web Translate-URL:
https://translate.jellyfin.org/projects/jellyfin/jellyfin-web/en_GB/
---
src/strings/en-gb.json | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/src/strings/en-gb.json b/src/strings/en-gb.json
index 2f6ea3c63..8975fd9b1 100644
--- a/src/strings/en-gb.json
+++ b/src/strings/en-gb.json
@@ -398,7 +398,7 @@
"TitleHostingSettings": "Hosting Settings",
"TitleHardwareAcceleration": "Hardware Acceleration",
"Thursday": "Thursday",
- "ThisWizardWillGuideYou": "This wizard will help guide you through the setup process. To begin, please select your preferred language.",
+ "ThisWizardWillGuideYou": "This wizard will help guide you through the setup process. To begin, please enter a server name and select your preferred language.",
"TheseSettingsAffectSubtitlesOnThisDevice": "These settings affect subtitles on this device",
"TabServer": "Server",
"TabScheduledTasks": "Scheduled Tasks",
From 05335d35616a9f9b1fef6f369ae4f806ea9ce05d Mon Sep 17 00:00:00 2001
From: Blackspirits
Date: Thu, 24 Apr 2025 12:41:57 -0400
Subject: [PATCH 090/645] Translated using Weblate (Portuguese (Portugal))
Translation: Jellyfin/Jellyfin Web Translate-URL:
https://translate.jellyfin.org/projects/jellyfin/jellyfin-web/pt_PT/
---
src/strings/pt-pt.json | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/src/strings/pt-pt.json b/src/strings/pt-pt.json
index a82477ef6..8916bd72b 100644
--- a/src/strings/pt-pt.json
+++ b/src/strings/pt-pt.json
@@ -585,7 +585,7 @@
"TabServer": "Servidor",
"TabUpcoming": "Próximos",
"TellUsAboutYourself": "Fale-nos sobre si",
- "ThisWizardWillGuideYou": "Este assistente irá ajudá-lo durante o processo de configuração. Para começar, selecione o idioma.",
+ "ThisWizardWillGuideYou": "Este assistente irá ajudar-te durante o processo de configuração. Para começar, introduz o nome do servidor e seleciona o teu idioma.",
"Thursday": "Quinta",
"TitlePlayback": "Reprodução",
"TrackCount": "{0} faixas",
@@ -834,7 +834,7 @@
"MessagePluginConfigurationRequiresLocalAccess": "Para configurar esta extensão, inicia sessão localmente no servidor.",
"HeaderPluginInstallation": "Instalação de extensão",
"MessagePluginInstalled": "A extensão foi instalada com sucesso. O servidor terá que reiniciar para aplicar as alterações.",
- "PleaseRestartServerName": "Por favor, reinicie o Jellyfin no {0}.",
+ "PleaseRestartServerName": "Por favor, reinicia o Jellyfin no {0}.",
"PleaseConfirmPluginInstallation": "Por favor clique em OK para confirmar que leu o conteúdo acima, e que deseja prosseguir com a instalação da extensão.",
"PleaseAddAtLeastOneFolder": "Por favor, adicione pelo menos uma pasta a esta Biblioteca, utilizando para isso o botão '+' na secção 'Pastas'.",
"Played": "Reproduzido",
From 8cde855daa9bac7304ce056e551fa4d7eb04ccf9 Mon Sep 17 00:00:00 2001
From: Blackspirits
Date: Thu, 24 Apr 2025 12:52:09 -0400
Subject: [PATCH 091/645] Translated using Weblate (Portuguese) Translation:
Jellyfin/Jellyfin Web Translate-URL:
https://translate.jellyfin.org/projects/jellyfin/jellyfin-web/pt/
---
src/strings/pt.json | 12 ++++++------
1 file changed, 6 insertions(+), 6 deletions(-)
diff --git a/src/strings/pt.json b/src/strings/pt.json
index 88767a864..17c07c953 100644
--- a/src/strings/pt.json
+++ b/src/strings/pt.json
@@ -30,7 +30,7 @@
"TrackCount": "{0} faixas",
"TitlePlayback": "Reprodução",
"Thursday": "Quinta",
- "ThisWizardWillGuideYou": "Este assistente ajudá-lo-á durante o processo de configuração. Para começar, selecione o idioma.",
+ "ThisWizardWillGuideYou": "Este assistente irá ajudar-te durante o processo de configuração. Para começar, introduz o nome do servidor e seleciona o teu idioma.",
"TellUsAboutYourself": "Fale-nos sobre si",
"TabUpcoming": "Próximos",
"TabStreaming": "Transmissão",
@@ -110,7 +110,7 @@
"Producer": "Produtor",
"MessagePluginInstalled": "A extensão foi instalada com sucesso. O servidor necessitará de ser reiniciado para aplicar as alterações.",
"PleaseSelectTwoItems": "Por favor selecione pelo menos dois itens.",
- "PleaseRestartServerName": "Por favor, reinicie o Servidor Jellyfin - {0}.",
+ "PleaseRestartServerName": "Por favor, reinicia o Jellyfin no {0}.",
"PleaseEnterNameOrId": "Introduz um nome ou um ID externo.",
"PleaseConfirmPluginInstallation": "Por favor clique em OK para confirmar que leu o conteúdo acima e que deseja prosseguir com a instalação da extensão.",
"PleaseAddAtLeastOneFolder": "Por favor, adicione pelo menos uma pasta a esta Biblioteca, utilizando o botão Adicionar.",
@@ -291,7 +291,7 @@
"LabelH264Crf": "CRF para codificação H.264",
"LabelGroupMoviesIntoCollectionsHelp": "Ao mostrar listas de filmes, aqueles que pertençam a uma coleção serão apresentados como um único item agrupado.",
"LabelGroupMoviesIntoCollections": "Agrupar filmes em coleções",
- "LabelServerNameHelp": "Esse nome será usado para identificar o servidor e será o padrão para o hostname do servidor.",
+ "LabelServerNameHelp": "Este nome será utilizado para identificar o servidor. Hostname do servidor usado por defeito.",
"LabelFriendlyName": "Nome amigável",
"LabelFormat": "Formato",
"LabelForgotPasswordUsernameHelp": "Introduz o teu nome de utilizador, se te lembrares dele.",
@@ -1160,8 +1160,8 @@
"ShowYear": "Exibir ano",
"ShowTitle": "Exibir título",
"SettingsWarning": "Mudar estes valores pode causar instabilidade ou falhas de conexão. Se tiver problemas, recomendamos restaurar os valores originais.",
- "ServerNameIsShuttingDown": "O servidor Jellyfin - {0} está a desligar.",
- "ServerNameIsRestarting": "O servidor Jellyfin - {0} está a reiniciar.",
+ "ServerNameIsShuttingDown": "O servidor {0} está a desligar.",
+ "ServerNameIsRestarting": "O servidor {0} está a reiniciar.",
"SeriesYearToPresent": "{0} - Atualmente",
"SeriesCancelled": "Série cancelada.",
"SelectAdminUsername": "Seleciona um nome de utilizador para a conta de administrador.",
@@ -1250,7 +1250,7 @@
"LabelSSDPTracingFilter": "Filtro SSDP",
"LabelRepositoryUrlHelp": "A localização do manifesto do repositório que você deseja incluir.",
"LabelRepositoryUrl": "URL do Repositório",
- "LabelRepositoryNameHelp": "Um nome personalizado para distinguir este repositório de qualquer outro adicionado ao seu servidor.",
+ "LabelRepositoryNameHelp": "Nome personalizado para distinguir este repositório de outros presentes no servidor.",
"LabelRepositoryName": "Nome do Repositório",
"LabelQuickConnectCode": "Código de Ligação Rápida",
"LabelPublishedServerUriHelp": "Substituir o URI utilizado pelo Jellyfin, com base na interface, ou no endereço IP do cliente. Por exemplo: internal=http://jellyfin.example.com, external=https://jellyfin.example.com, ou all=https://jellyfin.example.com",
From 5d1b1e266a4f5d8e861a16991f35b83de993eb02 Mon Sep 17 00:00:00 2001
From: Gallyam Biktashev
Date: Thu, 24 Apr 2025 15:45:58 -0400
Subject: [PATCH 092/645] Translated using Weblate (Russian) Translation:
Jellyfin/Jellyfin Web Translate-URL:
https://translate.jellyfin.org/projects/jellyfin/jellyfin-web/ru/
---
src/strings/ru.json | 6 +++---
1 file changed, 3 insertions(+), 3 deletions(-)
diff --git a/src/strings/ru.json b/src/strings/ru.json
index bb476ebc0..6be97fb0d 100644
--- a/src/strings/ru.json
+++ b/src/strings/ru.json
@@ -522,7 +522,7 @@
"LabelEvent": "Событие",
"LabelEveryXMinutes": "Каждые",
"LabelExtractChaptersDuringLibraryScan": "Извлекать изображения сцен в процессе сканирования медиатеки",
- "LabelExtractChaptersDuringLibraryScanHelp": "Генерируются изображения сцен при импорте видео в процессе сканирования медиатеки. В противном случае, они будут извлечены в процессе назначенной задачи «Изображения сцен», позволяя регулярному сканированию медиатеки завершаться быстрее.",
+ "LabelExtractChaptersDuringLibraryScanHelp": "Генерировать изображения разделов при импорте видео в процессе сканирования медиатеки. Иначе они будут извлекаться в процессе запланированной задачи «Изображения сцен», позволяя регулярному сканированию медиатеки завершаться быстрее.",
"LabelFailed": "Неудачно",
"LabelFileOrUrl": "Файл или URL",
"LabelFinish": "Завершение",
@@ -914,7 +914,7 @@
"OptionEstimateContentLength": "Рассчитывать длительность содержания при перекодировании",
"OptionEveryday": "Ежедневно",
"OptionExternallyDownloaded": "Внешние загружаемые",
- "OptionExtractChapterImage": "Включить извлечение изображений сцен",
+ "OptionExtractChapterImage": "Включить извлечение изображений разделов",
"OptionHasThemeSong": "Тематическая мелодия",
"OptionHasThemeVideo": "Тематическое видео",
"OptionHideUser": "Скрыть этого пользователя с экрана входа",
@@ -1701,7 +1701,7 @@
"LabelParallelImageEncodingLimit": "Ограничение на параллельное кодирование изображений",
"LabelParallelImageEncodingLimitHelp": "Максимальное количество кодировок изображений, которые разрешено выполнять параллельно. Оставив это значение пустым, вы выберете ограничение, основанное на количестве ядер вашей системы.",
"HeaderPerformance": "Производительность",
- "LabelDummyChapterDurationHelp": "Интервал между изображениями разделов. Установите значение 0, чтобы отключить генерацию изображений разделов. Изменение этого параметра не повлияет на существующие изображения разделов.",
+ "LabelDummyChapterDurationHelp": "Интервал между виртуальным разделами. Установите значение 0 для отключения генерации виртуальных разделов. Изменение этого параметра не повлияет на существующие виртуальные разделы.",
"LabelChapterImageResolutionHelp": "Разрешение созданных изображений разделов. Изменение этого параметра не повлияет на существующие изображения разделов.",
"ResolutionMatchSource": "Соответствовать источнику",
"MenuOpen": "Открыть Меню",
From 20816d4edbadb035dede0617cf5447275697f876 Mon Sep 17 00:00:00 2001
From: Nyanmisaka <799610810@qq.com>
Date: Fri, 25 Apr 2025 15:06:22 -0400
Subject: [PATCH 093/645] Translated using Weblate (Chinese (Simplified Han
script)) Translation: Jellyfin/Jellyfin Web Translate-URL:
https://translate.jellyfin.org/projects/jellyfin/jellyfin-web/zh_Hans/
---
src/strings/zh-cn.json | 6 +++---
1 file changed, 3 insertions(+), 3 deletions(-)
diff --git a/src/strings/zh-cn.json b/src/strings/zh-cn.json
index e80c1b2e2..50a1d8a58 100644
--- a/src/strings/zh-cn.json
+++ b/src/strings/zh-cn.json
@@ -1603,9 +1603,9 @@
"Cursive": "草书",
"ContainerBitrateExceedsLimit": "视频比特率超过限制",
"PreferSystemNativeHwDecoder": "首选系统原生的 DXVA 或 VA-API 硬件解码器",
- "EnableIntelLowPowerH264HwEncoder": "启用低电压模式的 Intel H.264 硬件编码器",
- "EnableIntelLowPowerHevcHwEncoder": "启用低电压模式的 Intel HEVC 硬件编码器",
- "IntelLowPowerEncHelp": "低电压模式编码能节省不必要的 CPU-GPU 同步。Linux 中使用前必须配置好 i915 HuC 固件。",
+ "EnableIntelLowPowerH264HwEncoder": "启用低功耗模式的 Intel H.264 硬件编码器",
+ "EnableIntelLowPowerHevcHwEncoder": "启用低功耗模式的 Intel HEVC 硬件编码器",
+ "IntelLowPowerEncHelp": "低功耗模式编码能避免不必要的 CPU-GPU 同步。在 Linux 中使用前必须配置好 i915 HuC 固件。",
"LabelHardwareEncodingOptions": "硬件编码选项",
"DirectPlayError": "启动直接播放时出错",
"UnknownAudioStreamInfo": "音频流信息未知",
From 424e617bb6b8d91611651ce893e95b5eb8b4f9cf Mon Sep 17 00:00:00 2001
From: Blackspirits
Date: Sat, 26 Apr 2025 03:03:47 -0400
Subject: [PATCH 094/645] Translated using Weblate (Portuguese (Portugal))
Translation: Jellyfin/Jellyfin Web Translate-URL:
https://translate.jellyfin.org/projects/jellyfin/jellyfin-web/pt_PT/
---
src/strings/pt-pt.json | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/src/strings/pt-pt.json b/src/strings/pt-pt.json
index 8916bd72b..96d7361cd 100644
--- a/src/strings/pt-pt.json
+++ b/src/strings/pt-pt.json
@@ -713,7 +713,7 @@
"FormatValue": "Formato: {0}",
"Filters": "Filtros",
"File": "Ficheiro",
- "Favorite": "Favoritos",
+ "Favorite": "Favorito",
"FFmpegSavePathNotFound": "Não conseguimos encontrar o FFmpeg na localização que introduziste. O FFprobe também é necessário e deve estar na mesma pasta. Estes componentes são, por norma, instalados em conjunto. Por favor, verifica a localização e tenta novamente.",
"Extras": "Extras",
"ExtraLarge": "Extra grande",
From b468f0dbeba60180965e31f627c4b0e85890115b Mon Sep 17 00:00:00 2001
From: Blackspirits
Date: Sat, 26 Apr 2025 03:03:59 -0400
Subject: [PATCH 095/645] Translated using Weblate (Portuguese) Translation:
Jellyfin/Jellyfin Web Translate-URL:
https://translate.jellyfin.org/projects/jellyfin/jellyfin-web/pt/
---
src/strings/pt.json | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/src/strings/pt.json b/src/strings/pt.json
index 17c07c953..afc97ac23 100644
--- a/src/strings/pt.json
+++ b/src/strings/pt.json
@@ -722,7 +722,7 @@
"File": "Ficheiro",
"Features": "Funcionalidades",
"Favorites": "Favoritos",
- "Favorite": "Favoritos",
+ "Favorite": "Favorito",
"FastForward": "Avanço rápido",
"FFmpegSavePathNotFound": "Não conseguimos encontrar o FFmpeg na localização que introduziste. O FFprobe também é necessário e deve estar na mesma pasta. Estes componentes são, por norma, instalados em conjunto. Por favor, verifica a localização e tenta novamente.",
"Extras": "Extras",
From 3b1ed1ace2bded0c4aefb0d65a2949f709e2a319 Mon Sep 17 00:00:00 2001
From: Bill Thornton
Date: Tue, 22 Apr 2025 17:23:06 -0400
Subject: [PATCH 096/645] Update server update required handling
---
src/components/ConnectionErrorPage.tsx | 45 ++++++++++++++++++++++++++
src/components/ConnectionRequired.tsx | 42 +++++++++++-------------
src/strings/en-us.json | 1 +
3 files changed, 65 insertions(+), 23 deletions(-)
create mode 100644 src/components/ConnectionErrorPage.tsx
diff --git a/src/components/ConnectionErrorPage.tsx b/src/components/ConnectionErrorPage.tsx
new file mode 100644
index 000000000..2b7278eca
--- /dev/null
+++ b/src/components/ConnectionErrorPage.tsx
@@ -0,0 +1,45 @@
+import React, { FC, useEffect, useState } from 'react';
+
+import Page from 'components/Page';
+import globalize from 'lib/globalize';
+import { ConnectionState } from 'lib/jellyfin-apiclient';
+
+interface ConnectionErrorPageProps {
+ state: ConnectionState
+}
+
+const ConnectionErrorPage: FC = ({
+ state
+}) => {
+ const [ title, setTitle ] = useState();
+ const [ htmlMessage, setHtmlMessage ] = useState();
+
+ useEffect(() => {
+ if (state === ConnectionState.ServerUpdateNeeded) {
+ setTitle(globalize.translate('HeaderUpdateRequired'));
+ setHtmlMessage(globalize.translate(
+ 'ServerUpdateNeeded',
+ 'jellyfin.org/downloads/server'
+ ));
+ }
+ }, [ state ]);
+
+ if (!title) return;
+
+ return (
+
+
+
{title}
+ {htmlMessage && (
+
+ )}
+
+
+ );
+};
+
+export default ConnectionErrorPage;
diff --git a/src/components/ConnectionRequired.tsx b/src/components/ConnectionRequired.tsx
index e84e86de4..290a6c8d5 100644
--- a/src/components/ConnectionRequired.tsx
+++ b/src/components/ConnectionRequired.tsx
@@ -2,10 +2,9 @@ import React, { FunctionComponent, useCallback, useEffect, useState } from 'reac
import { Outlet, useLocation, useNavigate } from 'react-router-dom';
import type { ApiClient, ConnectResponse } from 'jellyfin-apiclient';
-import globalize from 'lib/globalize';
import { ConnectionState, ServerConnections } from 'lib/jellyfin-apiclient';
-import alert from './alert';
+import ConnectionErrorPage from './ConnectionErrorPage';
import Loading from './loading/LoadingComponent';
enum AccessLevel {
@@ -56,8 +55,16 @@ const ConnectionRequired: FunctionComponent = ({
const navigate = useNavigate();
const location = useLocation();
+ const [ errorState, setErrorState ] = useState();
const [ isLoading, setIsLoading ] = useState(true);
+ const navigateIfNotThere = useCallback((route: BounceRoutes) => {
+ // If we try to navigate to the current route, just set isLoading = false
+ if (location.pathname === route) setIsLoading(false);
+ // Otherwise navigate to the route
+ else navigate(route);
+ }, [ location.pathname, navigate ]);
+
const bounce = useCallback(async (connectionResponse: ConnectResponse) => {
switch (connectionResponse.State) {
case ConnectionState.SignedIn:
@@ -77,31 +84,14 @@ const ConnectionRequired: FunctionComponent = ({
return;
case ConnectionState.ServerSelection:
// Bounce to select server page
- if (location.pathname === BounceRoutes.SelectServer) {
- setIsLoading(false);
- } else {
- console.debug('[ConnectionRequired] redirecting to select server page');
- navigate(BounceRoutes.SelectServer);
- }
- return;
- case ConnectionState.ServerUpdateNeeded:
- // Show update needed message and bounce to select server page
- try {
- await alert({
- text: globalize.translate('ServerUpdateNeeded', 'https://github.com/jellyfin/jellyfin'),
- html: globalize.translate('ServerUpdateNeeded', 'https://github.com/jellyfin/jellyfin')
- });
- } catch (ex) {
- console.warn('[ConnectionRequired] failed to show alert', ex);
- }
- console.debug('[ConnectionRequired] server update required, redirecting to select server page');
- navigate(BounceRoutes.SelectServer);
+ console.debug('[ConnectionRequired] redirecting to select server page');
+ navigateIfNotThere(BounceRoutes.SelectServer);
return;
}
console.warn('[ConnectionRequired] unhandled connection state', connectionResponse.State);
// eslint-disable-next-line react-hooks/exhaustive-deps
- }, [location.pathname, navigate]);
+ }, [ navigateIfNotThere, location.pathname, navigate ]);
const handleWizard = useCallback(async (firstConnection: ConnectResponse | null) => {
const apiClient = firstConnection?.ApiClient || ServerConnections.currentApiClient();
@@ -194,7 +184,9 @@ const ConnectionRequired: FunctionComponent = ({
console.debug('[ConnectionRequired] connection state', firstConnection?.State);
ServerConnections.firstConnection = true;
- if (level === AccessLevel.Wizard) {
+ if (firstConnection?.State === ConnectionState.ServerUpdateNeeded) {
+ setErrorState(firstConnection.State);
+ } else if (level === AccessLevel.Wizard) {
handleWizard(firstConnection)
.catch(err => {
console.error('[ConnectionRequired] could not validate wizard status', err);
@@ -217,6 +209,10 @@ const ConnectionRequired: FunctionComponent = ({
});
}, [handleIncompleteWizard, handleWizard, level, validateUserAccess]);
+ if (errorState) {
+ return ;
+ }
+
if (isLoading) {
return ;
}
diff --git a/src/strings/en-us.json b/src/strings/en-us.json
index 9f6e69f1c..ab5b5f05c 100644
--- a/src/strings/en-us.json
+++ b/src/strings/en-us.json
@@ -538,6 +538,7 @@
"HeaderTypeText": "Enter Text",
"HeaderUninstallPlugin": "Uninstall Plugin",
"HeaderUpcomingOnTV": "Upcoming On TV",
+ "HeaderUpdateRequired": "Update Required",
"HeaderUploadImage": "Upload Image",
"HeaderUploadLyrics": "Upload Lyrics",
"HeaderUploadSubtitle": "Upload Subtitle",
From 4914b2e49ff9c5e70f12598e8c3eeedf2ef204ec Mon Sep 17 00:00:00 2001
From: Christos Mak
Date: Sun, 27 Apr 2025 04:47:09 -0400
Subject: [PATCH 097/645] Translated using Weblate (Greek) Translation:
Jellyfin/Jellyfin Web Translate-URL:
https://translate.jellyfin.org/projects/jellyfin/jellyfin-web/el/
---
src/strings/el.json | 5 +++--
1 file changed, 3 insertions(+), 2 deletions(-)
diff --git a/src/strings/el.json b/src/strings/el.json
index 788d021a7..d83d3c91b 100644
--- a/src/strings/el.json
+++ b/src/strings/el.json
@@ -1709,7 +1709,7 @@
"LabelSegmentKeepSeconds": "Χρόνος που θα κρατηθούν τα τμήματα",
"BackdropScreensaver": "Φόντο προφύλαξης οθόνης",
"GridView": "Προβολή Πλέγματος",
- "LabelBackdropScreensaverInterval": "Διάστημα Φόντου Προφύλαξης Οθόνης",
+ "LabelBackdropScreensaverInterval": "Διάρκεια Προφύλαξης Οθόνης",
"LabelBackdropScreensaverIntervalHelp": "Ο χρόνος σε δευτερόλεπτα μεταξύ διαφορετικών φόντων όταν χρησιμοποιείται το φόντο προφύλαξης οθόνης.",
"LabelEnableLUFSScan": "Ενεργοποίηση σάρωσης LUFS",
"LabelMediaDetails": "Λεπτομέρειες πολυμέσων",
@@ -1971,5 +1971,6 @@
"DeleteCustomImage": "Διαγραφή προσαρμοσμένης εικόνας",
"ImageDeleteFailed": "Η διαγραφή εικόνας απέτυχε",
"ImageUploadCancelled": "Η φόρτωση της εικόνας ακυρώθηκε",
- "ImageUploadFailed": "Η φόρτωση της εικόνας απέτυχε"
+ "ImageUploadFailed": "Η φόρτωση της εικόνας απέτυχε",
+ "LimitSegmentLength": "Χρήση μικρότερων τμημάτων HLS"
}
From 9d856bb9b33e10ff90631f8763a27e00a485c589 Mon Sep 17 00:00:00 2001
From: yoga sree jagadam
Date: Sun, 27 Apr 2025 05:37:20 -0400
Subject: [PATCH 098/645] Translated using Weblate (Telugu) Translation:
Jellyfin/Jellyfin Web Translate-URL:
https://translate.jellyfin.org/projects/jellyfin/jellyfin-web/te/
---
src/strings/te.json | 49 +++++++++++++++++++++++++++++++++++++++++++--
1 file changed, 47 insertions(+), 2 deletions(-)
diff --git a/src/strings/te.json b/src/strings/te.json
index 8957d7fbb..e06a9937f 100644
--- a/src/strings/te.json
+++ b/src/strings/te.json
@@ -1010,7 +1010,7 @@
"HeaderAccessSchedule": "యాక్సెస్ షెడ్యూల్",
"HardwareAccelerationWarning": "హార్డ్వేర్ త్వరణాన్ని ప్రారంభించడం కొన్ని పరిసరాలలో అస్థిరతకు కారణం కావచ్చు. మీ ఆపరేటింగ్ సిస్టమ్ మరియు వీడియో డ్రైవర్లు పూర్తిగా తాజాగా ఉన్నాయని నిర్ధారించుకోండి. దీన్ని ప్రారంభించిన తర్వాత మీకు వీడియో ప్లే చేయడంలో ఇబ్బంది ఉంటే, మీరు సెట్టింగ్ను తిరిగి ఏమీలేదు.",
"HDPrograms": "HD ప్రోగ్రామ్లు",
- "H264CrfHelp": "స్థిరమైన రేటు కారకం (CRF) అనేది x264 మరియు x265 ఎన్కోడర్ కోసం డిఫాల్ట్ నాణ్యత సెట్టింగ్. మీరు 0 మరియు 51 మధ్య విలువలను సెట్ చేయవచ్చు, ఇక్కడ తక్కువ విలువలు మంచి నాణ్యతను కలిగిస్తాయి (అధిక ఫైల్ పరిమాణాల ఖర్చుతో). సేన్ విలువలు 18 మరియు 28 మధ్య ఉన్నాయి. X264 యొక్క డిఫాల్ట్ 23, మరియు x265 కొరకు 28, కాబట్టి మీరు దీన్ని ప్రారంభ బిందువుగా ఉపయోగించవచ్చు.",
+ "H264CrfHelp": "స్థిరమైన రేటు కారకం (సిఆర్ఎఫ్) అనేది x264 మరియు x265 ఎన్కోడర్ కోసం డిఫాల్ట్ నాణ్యత సెట్టింగ్. మీరు 0 మరియు 51 మధ్య విలువలను సెట్ చేయవచ్చు, ఇక్కడ తక్కువ విలువలు మంచి నాణ్యతను కలిగిస్తాయి (అధిక ఫైల్ పరిమాణాల ఖర్చుతో). సేన్ విలువలు 18 మరియు 28 మధ్య ఉన్నాయి. X264 యొక్క డిఫాల్ట్ 23, మరియు x265 కొరకు 28, కాబట్టి మీరు దీన్ని ప్రారంభ బిందువుగా ఉపయోగించవచ్చు.",
"GuideProviderSelectListings": "జాబితాలను ఎంచుకోండి",
"GuideProviderLogin": "ప్రవేశించండి",
"Guide": "గైడ్",
@@ -1572,5 +1572,50 @@
"DownloadAll": "అన్నీ డౌన్లోడ్ చేసుకోండి",
"EnableCardLayout": "దృశ్య కార్డ్బాక్స్ను ప్రదర్శించు",
"EnableHi10pHelp": "H.264 10-బిట్ వీడియోలను ట్రాన్స్కోడ్ చేయకుండా ఉండటానికి ప్రారంభించండి. వీడియో ఖాళీ ఫ్రేమ్లను ప్రదర్శిస్తే ఈ ఎంపికను నిలిపివేయండి.",
- "EnableRewatchingNextUpHelp": "'తదుపరిది' విభాగాలలో ఇప్పటికే చూసిన ఎపిసోడ్లను చూపించడాన్ని ప్రారంభించండి."
+ "EnableRewatchingNextUpHelp": "'తదుపరిది' విభాగాలలో ఇప్పటికే చూసిన ఎపిసోడ్లను చూపించడాన్ని ప్రారంభించండి.",
+ "CustomSplashScreenSize": "కస్టమ్ చిత్రాలు కనీసం 1920x1080 సైజులో 16x9 ఆస్పెక్ట్ రేషియోలో ఉండాలి.",
+ "CustomSubtitleStylingHelp": "ఉపశీర్షిక స్టైలింగ్ చాలా పరికరాల్లో పని చేస్తుంది, కానీ అదనపు పనితీరు ఓవర్హెడ్తో వస్తుంది.",
+ "DateModified": "సవరించిన తేదీ",
+ "DeleteLyrics": "సాహిత్యాన్ని తొలగించు",
+ "DirectPlayHelp": "సోర్స్ ఫైల్ ఈ క్లయింట్తో పూర్తిగా అనుకూలంగా ఉంది మరియు సెషన్ ఎటువంటి మార్పులు లేకుండా ఫైల్ను స్వీకరిస్తోంది.",
+ "EnableTrueHdHelp": "మీ పరికరం ట్రూహెచ్డి కి మద్దతు ఇస్తే లేదా అనుకూలమైన ఆడియో రిసీవర్కు కనెక్ట్ చేయబడి ఉంటే మాత్రమే ప్రారంభించండి, లేకుంటే అది ప్లేబ్యాక్ వైఫల్యానికి కారణం కావచ్చు.",
+ "ErrorPlayerNotFound": "అభ్యర్థించిన మీడియా కోసం ప్లేయర్ కనుగొనబడలేదు.",
+ "FallbackMaxStreamingBitrateHelp": "ffprobe సోర్స్ స్ట్రీమ్ బిట్రేట్ను నిర్ణయించలేనప్పుడు గరిష్ట స్ట్రీమింగ్ బిట్రేట్ను ఫాల్బ్యాక్గా ఉపయోగిస్తారు. ఇది క్లయింట్లు అధిక ట్రాన్స్కోడింగ్ బిట్రేట్ను అభ్యర్థించకుండా నిరోధించడంలో సహాయపడుతుంది, దీని వలన ప్లేయర్ విఫలమవడానికి మరియు ఎన్కోడర్ ఓవర్లోడ్ కావడానికి కారణం కావచ్చు.",
+ "HeaderNextVideo": "తదుపరి వీడియో",
+ "Framerate": "ఫ్రేమ్రేట్",
+ "HeaderLyricDownloads": "సాహిత్యం డౌన్లోడ్",
+ "HeaderMediaSegmentActions": "మీడియా విభాగం చర్యలు",
+ "HeaderNoLyrics": "సాహిత్యం కనుగొనబడలేదు",
+ "HeaderAudioAdvanced": "ఆడియో అధునాతనం",
+ "HeaderGuestCast": "అతిథి నటులు",
+ "HeaderNextEpisode": "తదుపరి ఎపిసోడ్",
+ "DisablePlugin": "నిలిపివేయండి",
+ "HeaderDeleteSeries": "సిరీస్ను తొలగించు",
+ "HeaderDeleteLyrics": "సాహిత్యాన్ని తొలగించు",
+ "HeaderEpisodesStatus": "ఎపిసోడ్ల స్థితి",
+ "DeleteCustomImage": "కస్టమ్ చిత్రంను తొలగించండి",
+ "Digital": "డిజిటల్",
+ "GoHome": "హోమ్ కి వెళ్ళు",
+ "GoogleCastUnsupported": "గూగుల్ కాస్ట్ మద్దతు లేదు",
+ "GridView": "గ్రిడ్ వీక్షణ",
+ "HeaderConfirmRepositoryInstallation": "ప్లగిన్ రిపోజిటరీ ఇన్స్టాలేషన్ను నిర్ధారించండి",
+ "HeaderAddLyrics": "సాహిత్యాన్ని జోడించండి",
+ "HeaderPageNotFound": "పేజీ కనుగొనబడలేదు",
+ "DisableVbrAudioEncodingHelp": "ఈ క్లయింట్ కోసం విబిఆర్ తో ఆడియోను ఎన్కోడ్ చేయకుండా సర్వర్ను నిరోధించండి.",
+ "HeaderPerformance": "ప్రదర్శన",
+ "HeaderEditPlaylist": "ప్లేజాబితాను సవరించు",
+ "DisplayLoadError": "డిస్ప్లే కాన్ఫిగరేషన్ డేటాను లోడ్ చేస్తున్నప్పుడు లోపం సంభవించింది.",
+ "DlnaMovedMessage": "డిఎల్ఎన్ఎ కార్యాచరణ ప్లగిన్కి తరలించబడింది.",
+ "HeaderAllRecordings": "అన్ని రికార్డింగ్లు",
+ "HeaderDummyChapter": "అధ్యాయ చిత్రాలు",
+ "DeleteEntireSeries": "{0} ఎపిసోడ్లను తొలగించండి",
+ "DeleteSeries": "సిరీస్ను తొలగించు",
+ "DeleteEpisode": "ఎపిసోడ్ను తొలగించు",
+ "DeleteName": "తొలగించు {0}",
+ "EnablePlugin": "ప్రారంభించు",
+ "ErrorDeletingLyrics": "సర్వర్ నుండి లిరిక్స్ తొలగించడంలో లోపం ఏర్పడింది. దయచేసి జెల్లీఫిన్ మీడియా ఫోల్డర్కు రైట్ యాక్సెస్ కలిగి ఉందో లేదో తనిఖీ చేసి, మళ్లీ ప్రయత్నించండి.",
+ "DeleteServerConfirmation": "మీరు ఈ సర్వర్ను తొలగించాలనుకుంటున్నారా?",
+ "HeaderNewPlaylist": "కొత్త ప్లేజాబితా",
+ "Experimental": "ప్రయోగాత్మకమైనది",
+ "HeaderContinueReading": "చదవడం కొనసాగించు"
}
From 4d23589f2d3fe776dcaad43bc85bc7fa47aa4aed Mon Sep 17 00:00:00 2001
From: yoga sree jagadam
Date: Sun, 27 Apr 2025 06:13:40 -0400
Subject: [PATCH 099/645] Translated using Weblate (Telugu) Translation:
Jellyfin/Jellyfin Web Translate-URL:
https://translate.jellyfin.org/projects/jellyfin/jellyfin-web/te/
---
src/strings/te.json | 191 +++++++++++++++++++++++++++++++++++++++++---
1 file changed, 181 insertions(+), 10 deletions(-)
diff --git a/src/strings/te.json b/src/strings/te.json
index e06a9937f..91a137415 100644
--- a/src/strings/te.json
+++ b/src/strings/te.json
@@ -401,12 +401,12 @@
"MessageReenableUser": "తిరిగి ప్రారంభించటానికి క్రింద చూడండి",
"MessagePluginInstallError": "ప్లగ్ఇన్ను ఇన్స్టాల్ చేస్తున్నప్పుడు లోపం సంభవించింది.",
"MessagePluginInstalled": "ప్లగ్ఇన్ విజయవంతంగా వ్యవస్థాపించబడింది. మార్పులు అమలులోకి రావడానికి సర్వర్ పున ar ప్రారంభించబడాలి.",
- "MessagePluginInstallDisclaimer": "అదనపు ఫీచర్లు మరియు ప్రయోజనాలతో మీ అనుభవాన్ని మెరుగుపరచడానికి కమ్యూనిటీ సభ్యులు నిర్మించిన ప్లగిన్లు గొప్ప మార్గం. ఇన్స్టాల్ చేయడానికి ముందు, దయచేసి మీ సర్వర్లో ఎక్కువ లైబ్రరీ స్కాన్లు, అదనపు నేపథ్య ప్రాసెసింగ్ మరియు సిస్టమ్ స్థిరత్వం తగ్గడం వంటి వాటి గురించి తెలుసుకోండి.",
+ "MessagePluginInstallDisclaimer": "హెచ్చరిక: మూడవ పక్ష ప్లగిన్ను ఇన్స్టాల్ చేయడం వల్ల ప్రమాదాలు ఉంటాయి. ఇది అస్థిరమైన లేదా హానికరమైన కోడ్ను కలిగి ఉండవచ్చు మరియు ఎప్పుడైనా మారవచ్చు. మీరు విశ్వసించే రచయితల నుండి మాత్రమే ప్లగిన్లను ఇన్స్టాల్ చేయండి మరియు బాహ్య సేవా ప్రశ్నలు, సుదీర్ఘ లైబ్రరీ స్కాన్లు లేదా అదనపు నేపథ్య ప్రాసెసింగ్తో సహా దాని సంభావ్య ప్రభావాల గురించి దయచేసి తెలుసుకోండి.",
"MessagePluginConfigurationRequiresLocalAccess": "ఈ ప్లగ్ఇన్ను కాన్ఫిగర్ చేయడానికి దయచేసి మీ స్థానిక సర్వర్కు నేరుగా సైన్ ఇన్ చేయండి.",
"MessagePleaseWait": "దయచేసి వేచి ఉండండి. దీనికి ఒక నిమిషం పట్టవచ్చు.",
"MessagePleaseEnsureInternetMetadata": "దయచేసి ఇంటర్నెట్ మెటాడేటా డౌన్లోడ్ ప్రారంభించబడిందని నిర్ధారించుకోండి.",
"MessagePlayAccessRestricted": "ఈ కంటెంట్ యొక్క ప్లేబ్యాక్ ప్రస్తుతం పరిమితం చేయబడింది. దయచేసి మరింత సమాచారం కోసం మీ సర్వర్ నిర్వాహకుడిని సంప్రదించండి.",
- "MessagePasswordResetForUsers": "కింది వినియోగదారులు వారి పాస్వర్డ్లను రీసెట్ చేసారు. రీసెట్ చేయడానికి ఉపయోగించిన పిన్ కోడ్లతో వారు ఇప్పుడు సైన్ ఇన్ చేయవచ్చు.",
+ "MessagePasswordResetForUsers": "కింది వినియోగదారుల పాస్వర్డ్లు రీసెట్ చేయబడ్డాయి. రీసెట్ చేయడానికి ఉపయోగించిన పిన్ కోడ్లతో వారు ఇప్పుడు సైన్ ఇన్ చేయవచ్చు.",
"MessageNoTrailersFound": "ఇంటర్నెట్ ట్రెయిలర్ల లైబ్రరీని జోడించడం ద్వారా మీ చలన చిత్ర అనుభవాన్ని మెరుగుపరచడానికి ట్రైలర్స్ ఛానెల్ను ఇన్స్టాల్ చేయండి.",
"MessageNothingHere": "ఇక్కడ ఏమి లేదు.",
"MessageNoServersAvailable": "ఆటోమేటిక్ సర్వర్ డిస్కవరీని ఉపయోగించి సర్వర్లు కనుగొనబడలేదు.",
@@ -497,7 +497,7 @@
"LeaveBlankToNotSetAPassword": "పాస్వర్డ్ను సెట్ చేయడానికి మీరు ఈ ఫీల్డ్ను ఖాళీగా ఉంచవచ్చు.",
"LearnHowYouCanContribute": "మీరు ఎలా సహకరించగలరో తెలుసుకోండి.",
"LatestFromLibrary": "తాజా {0}",
- "LastSeen": "చివరిగా చూసినది {0}",
+ "LastSeen": "చివరి కార్యాచరణ {0}",
"Large": "పెద్దది",
"LanNetworksHelp": "బ్యాండ్విడ్త్ పరిమితులను అమలు చేసేటప్పుడు స్థానిక నెట్వర్క్లో పరిగణించబడే నెట్వర్క్ల కోసం కామాతో వేరు చేయబడిన IP చిరునామాలు లేదా నెట్వర్క్ల కోసం IP / నెట్మాస్క్ ఎంట్రీలు. సెట్ చేస్తే, అన్ని ఇతర IP చిరునామాలు బాహ్య నెట్వర్క్లో ఉన్నట్లు పరిగణించబడతాయి మరియు బాహ్య బ్యాండ్విడ్త్ పరిమితులకు లోబడి ఉంటాయి. ఖాళీగా ఉంచినట్లయితే, సర్వర్ యొక్క సబ్నెట్ మాత్రమే స్థానిక నెట్వర్క్లో పరిగణించబడుతుంది.",
"LabelZipCode": "పిన్ కోడ్",
@@ -569,11 +569,11 @@
"LabelTonemappingThresholdHelp": "టోన్ మ్యాపింగ్ అల్గోరిథం పారామితులు ప్రతి సన్నివేశానికి చక్కగా ట్యూన్ చేయబడతాయి. మరియు సన్నివేశం మారిందా లేదా అని గుర్తించడానికి ఒక ప్రవేశాన్ని ఉపయోగిస్తారు. ప్రస్తుత ఫ్రేమ్ సగటు ప్రకాశం మరియు ప్రస్తుత నడుస్తున్న సగటు మధ్య దూరం ప్రవేశ విలువను మించి ఉంటే, మేము దృశ్య సగటు మరియు గరిష్ట ప్రకాశాన్ని తిరిగి లెక్కిస్తాము. సిఫార్సు చేయబడిన మరియు డిఫాల్ట్ విలువలు 0.8 మరియు 0.2.",
"LabelTonemappingThreshold": "టోన్ మ్యాపింగ్ ప్రవేశ",
"LabelTonemappingRange": "టోన్ మ్యాపింగ్ పరిధి",
- "LabelTonemappingPeakHelp": "ఈ విలువతో సిగ్నల్ / నామమాత్ర / సూచన శిఖరాన్ని భర్తీ చేయండి. ప్రదర్శన మెటాడేటాలో పొందుపరిచిన గరిష్ట సమాచారం నమ్మదగినది కానప్పుడు లేదా తక్కువ పరిధి నుండి అధిక శ్రేణికి టోన్ మ్యాపింగ్ చేసినప్పుడు ఉపయోగపడుతుంది. సిఫార్సు చేయబడిన మరియు డిఫాల్ట్ విలువలు 100 మరియు 0.",
+ "LabelTonemappingPeakHelp": "బదులుగా ఈ పీక్ విలువతో ఇన్పుట్ సిగ్నల్ కోసం ఎంబెడెడ్ మెటాడేటా విలువను ఓవర్రైడ్ చేయండి. డిఫాల్ట్ విలువ 100 (1000nit).",
"LabelTonemappingPeak": "టోన్ మ్యాపింగ్ శిఖరం",
"LabelTonemappingParamHelp": "టోన్ మ్యాపింగ్ అల్గోరిథం ట్యూన్ చేయండి. సిఫార్సు చేయబడిన మరియు డిఫాల్ట్ విలువలు NaN. సాధారణంగా దీన్ని ఖాళీగా ఉంచండి.",
"LabelTonemappingParam": "టోన్ మ్యాపింగ్ పారామ్",
- "LabelTonemappingDesatHelp": "ఈ స్థాయి ప్రకాశం మించిన ముఖ్యాంశాల కోసం డీసట్రేషన్ను వర్తించండి. అధిక పరామితి, మరింత రంగు సమాచారం భద్రపరచబడుతుంది. ఈ సెట్టింగ్ సూపర్-హైలైట్ల కోసం అసహజంగా ఎగిరిన రంగులను నిరోధించడానికి సహాయపడుతుంది (బదులుగా సజావుగా) తెల్లగా మారుతుంది. ఇది వెలుపల రంగుల గురించి సమాచారాన్ని తగ్గించే ఖర్చుతో చిత్రాలను మరింత సహజంగా భావిస్తుంది. సిఫార్సు చేయబడిన మరియు డిఫాల్ట్ విలువలు 0 మరియు 0.5.",
+ "LabelTonemappingDesatHelp": "ఈ ప్రకాశం స్థాయిని మించిన హైలైట్ల కోసం డీసాచురేషన్ను వర్తింపజేయండి. సిఫార్సు చేయబడిన విలువ 0 (నిలిపివేయండి).",
"LabelTonemappingDesat": "టోన్ మ్యాపింగ్ డెసాట్",
"LabelTonemappingAlgorithm": "ఉపయోగించడానికి టోన్ మ్యాపింగ్ అల్గోరిథం ఎంచుకోండి",
"LabelTitle": "శీర్షిక",
@@ -733,7 +733,7 @@
"LabelCriticRating": "విమర్శనాత్మక రేటింగ్",
"LabelCreateHttpPortMapHelp": "HTTPS ట్రాఫిక్తో పాటు HTTP ట్రాఫిక్ కోసం నియమాన్ని రూపొందించడానికి ఆటోమేటిక్ పోర్ట్ మ్యాపింగ్ను అనుమతించండి.",
"LabelCreateHttpPortMap": "HTTP ట్రాఫిక్ మరియు HTTPS కోసం ఆటోమేటిక్ పోర్ట్ మ్యాపింగ్ను ప్రారంభించండి.",
- "LabelCountry": "దేశం",
+ "LabelCountry": "దేశం/ప్రాంతం",
"LabelCorruptedFrames": "పాడైన ఫ్రేమ్లు",
"LabelContentType": "కంటెంట్ రకం",
"LabelCommunityRating": "సంఘం రేటింగ్",
@@ -844,7 +844,7 @@
"LabelAudioBitDepth": "ఆడియో బిట్ లోతు",
"LabelArtistsHelp": "బహుళ కళాకారులను సెమికోలన్తో వేరు చేయండి.",
"LabelArtists": "కళాకారులు",
- "LabelAppNameExample": "ఉదాహరణ: సిక్బియర్డ్, సోనార్",
+ "LabelAppNameExample": "API కీలను గుర్తించడానికి మానవులు చదవగలిగే పేరు. ఈ సెట్టింగ్ కార్యాచరణను ప్రభావితం చేయదు.",
"LabelAppName": "అనువర్తనం పేరు",
"LabelAllowHWTranscoding": "హార్డ్వేర్ ట్రాన్స్కోడింగ్ను అనుమతించండి",
"LabelAllowedRemoteAddressesMode": "రిమోట్ IP చిరునామా ఫిల్టర్ మోడ్",
@@ -1076,7 +1076,7 @@
"LabelRecord": "రికార్డ్",
"LabelReasonForTranscoding": "ట్రాన్స్కోడింగ్కు కారణం",
"LabelQuickConnectCode": "త్వరిత కనెక్ట్ కోడ్",
- "LabelPublishedServerUriHelp": "ఇంటర్ఫేస్ లేదా క్లయింట్ IP చిరునామా ఆధారంగా జెల్లీఫిన్ ఉపయోగించే URI ని భర్తీ చేయండి.",
+ "LabelPublishedServerUriHelp": "ఇంటర్ఫేస్ లేదా క్లయింట్ ఐపీ చిరునామా ఆధారంగా జెల్లీఫిన్ ఉపయోగించే యుఆర్ఐని ఓవర్రైడ్ చేయండి. ఉదాహరణకు: internal=http://jellyfin.example.com, external=https://jellyfin.example.com, లేదా all=https://jellyfin.example.com",
"LabelPublishedServerUri": "ప్రచురించిన సర్వర్ URI లు",
"LabelPublicHttpsPortHelp": "స్థానిక పోర్ట్ నంబర్ను స్థానిక హెచ్టిటిపిఎస్ పోర్ట్కు మ్యాప్ చేయాలి.",
"LabelPublicHttpsPort": "పబ్లిక్ HTTPS పోర్ట్ సంఖ్య",
@@ -1177,7 +1177,7 @@
"LabelLogs": "లాగ్లు",
"LabelLoginDisclaimerHelp": "లాగిన్ పేజీ దిగువన ప్రదర్శించబడే సందేశం.",
"LabelLoginDisclaimer": "లాగిన్ నిరాకరణ",
- "LabelLockItemToPreventChanges": "భవిష్యత్తులో మార్పులను నివారించడానికి ఈ అంశాన్ని లాక్ చేయండి",
+ "LabelLockItemToPreventChanges": "భవిష్యత్తులో మెటాడేటా మార్పులను నిరోధించడానికి ఈ అంశాన్ని లాక్ చేయండి",
"LabelLocalHttpServerPortNumberHelp": "HTTP సర్వర్ కోసం TCP పోర్ట్ సంఖ్య.",
"LabelLocalHttpServerPortNumber": "స్థానిక HTTP పోర్ట్ సంఖ్య",
"LabelLineup": "లైనప్",
@@ -1617,5 +1617,176 @@
"DeleteServerConfirmation": "మీరు ఈ సర్వర్ను తొలగించాలనుకుంటున్నారా?",
"HeaderNewPlaylist": "కొత్త ప్లేజాబితా",
"Experimental": "ప్రయోగాత్మకమైనది",
- "HeaderContinueReading": "చదవడం కొనసాగించు"
+ "HeaderContinueReading": "చదవడం కొనసాగించు",
+ "LabelSelectPreferredTranscodeVideoAudioCodec": "వీడియో ప్లేబ్యాక్లో ప్రాధాన్య ట్రాన్స్కోడ్ ఆడియో కోడెక్",
+ "LabelDeveloper": "డెవలపర్",
+ "MediaSegmentType.Commercial": "వాణిజ్య",
+ "MetadataNfoLoadError": "మెటాడేటా ఎన్ఎఫ్ఓ సెట్టింగ్లను లోడ్ చేయడంలో విఫలమైంది",
+ "HeaderPreviewLyrics": "సాహిత్యాన్ని పరిదృశ్యం చేయండి",
+ "HeaderRecordingMetadataSaving": "మెటాడేటా రికార్డింగ్",
+ "HeaderSyncPlaySettings": "సమకాలీకరణ సెట్టింగ్లు",
+ "HeaderSyncPlayTimeSyncSettings": "సమయ సమకాలీకరణ",
+ "HeaderSyncPlayPlaybackSettings": "ప్లేబ్యాక్",
+ "HeaderUploadLyrics": "సాహిత్యాన్ని అప్లోడ్ చేయండి",
+ "IgnoreDtsHelp": "ఈ ఎంపికను నిలిపివేయడం వలన కొన్ని సమస్యలు పరిష్కరించబడవచ్చు, ఉదా. ప్రత్యేక ఆడియో మరియు వీడియో స్ట్రీమ్లు ఉన్న ఛానెల్లలో ఆడియో లేకపోవడం.",
+ "ImageDeleteFailed": "చిత్రం తొలగింపు విఫలమైంది",
+ "LabelAlbumGain": "ఆల్బమ్ లాభం",
+ "ImageUploadFailed": "చిత్రం అప్లోడ్ విఫలమైంది",
+ "LabelAllowContentWithTags": "ట్యాగ్లతో ఉన్న అంశాలను అనుమతించు",
+ "LabelAllowStreamSharing": "స్ట్రీమ్ షేరింగ్ను అనుమతించండి",
+ "LabelAutomaticallyAddToCollection": "సేకరణకు స్వయంచాలకంగా జోడించు",
+ "LabelSelectAudioNormalization": "ఆడియో సాధారణీకరణ",
+ "LabelIsSynced": "సమకాలీకరించబడింది",
+ "LabelParallelImageEncodingLimitHelp": "సమాంతరంగా అమలు చేయడానికి అనుమతించబడిన గరిష్ట సంఖ్యలో చిత్రం ఎన్కోడింగ్లు. దీన్ని ఖాళీగా ఉంచడం వలన మీ వ్యవస్థ కోర్ గణన ఆధారంగా పరిమితిని ఎంచుకుంటారు.",
+ "LabelBackdropScreensaverIntervalHelp": "బ్యాక్డ్రాప్ స్క్రీన్సేవర్ను ఉపయోగిస్తున్నప్పుడు వివిధ బ్యాక్డ్రాప్ల మధ్య సమయం సెకన్లలో.",
+ "LabelDevice": "పరికరం",
+ "LabelCustomTagDelimitersHelp": "ట్యాగ్లను వేరు చేయడానికి అక్షరాలను డీలిమిటర్లుగా పరిగణించాలి.",
+ "LabelHardwareEncoding": "హార్డ్వేర్ ఎన్కోడింగ్",
+ "LabelDate": "తేదీ",
+ "LabelDelimiterWhitelistHelp": "ట్యాగ్ విభజన నుండి మినహాయించాల్సిన అంశాలు. ప్రతి పంక్తికి ఒక అంశం.",
+ "LabelDisableVbrAudioEncoding": "విబిఆర్ ఆడియో ఎన్కోడింగ్ను నిలిపివేయండి",
+ "LabelDropLyricsHere": "సాహిత్యాన్ని ఇక్కడ వదలండి లేదా బ్రౌజ్ చేయడానికి క్లిక్ చేయండి.",
+ "LabelChapterImageResolutionHelp": "సంగ్రహించబడిన అధ్యాయ చిత్రాల స్పష్టత. దీన్ని మార్చడం వలన ఇప్పటికే ఉన్న నకిలీ అధ్యాయాలపై ఎటువంటి ప్రభావం ఉండదు.",
+ "LabelEnableAudioVbrHelp": "వేరియబుల్ బిట్రేట్ సగటు బిట్రేట్ నిష్పత్తికి మెరుగైన నాణ్యతను అందిస్తుంది, కానీ కొన్ని అరుదైన సందర్భాల్లో బఫరింగ్ మరియు అనుకూలత సమస్యలను కలిగించవచ్చు.",
+ "LabelNoChangelog": "ఈ విడుదలకు ఎలాంటి చేంజ్లాగ్ అందించబడలేదు.",
+ "LabelEnableLUFSScan": "లూఫ్స్ స్కాన్ను ప్రారంభించండి",
+ "LabelMaxDaysForNextUpHelp": "ఒక షో చూడకుండా 'తదుపరిది' జాబితాలో గరిష్టంగా ఎన్ని రోజులు ఉండాలో సెట్ చేయండి.",
+ "LabelEnableLUFSScanHelp": "ట్రాక్లలో సమాన శబ్దాన్ని పొందడానికి క్లయింట్లు ఆడియో ప్లేబ్యాక్ను సాధారణీకరించవచ్చు. ఇది లైబ్రరీ స్కాన్లను ఎక్కువసేపు చేస్తుంది మరియు ఎక్కువ వనరులను తీసుకుంటుంది.",
+ "LabelFallbackMaxStreamingBitrate": "ఫాల్బ్యాక్ గరిష్ట స్ట్రీమ్ బిట్రేట్ (Mbps)",
+ "LabelMaxVideoResolution": "అనుమతించబడిన గరిష్ట వీడియో ట్రాన్స్కోడింగ్ స్పష్టత",
+ "LabelMediaDetails": "మీడియా వివరాలు",
+ "LabelMediaSegmentProviders": "మీడియా భాగం ప్రొవైడర్లు",
+ "LabelLocalCustomCss": "ఈ క్లయింట్కు మాత్రమే వర్తించే స్టైలింగ్ కోసం అనుకూల సిఎస్ఎస్ కోడ్. మీరు సర్వర్ అనుకూల సిఎస్ఎస్ కోడ్ను నిలిపివేయాలనుకోవచ్చు.",
+ "LabelQsvDevice": "క్యూఎస్వి పరికరం",
+ "LabelSortName": "పేరును క్రమబద్ధీకరించు",
+ "LabelQsvDeviceHelp": "బహుళ-జిపియు వ్యవస్థలో ఇంటెల్ క్యూఎస్వి కోసం పరికరాన్ని పేర్కొనండి. లైనక్స్లో, ఇది రెండర్ నోడ్, ఉదా., /dev/dri/renderD128. విండోస్లో, ఇది 0 నుండి ప్రారంభమయ్యే పరికర సూచిక. మీరు ఏమి చేస్తున్నారో మీకు తెలియకపోతే ఖాళీగా వదిలేయండి.",
+ "Larger": "పెద్దది",
+ "LabelSaveTrickplayLocally": "మీడియా పక్కన ట్రిక్ప్లే చిత్రాలను సేవ్ చేయండి",
+ "LabelSaveTrickplayLocallyHelp": "ట్రిక్ప్లే చిత్రాలను మీడియా ఫోల్డర్లలో సేవ్ చేయడం వలన వాటిని సులభంగా తరలించడం మరియు యాక్సెస్ చేయడం కోసం మీ మీడియా పక్కన ఉంచుతారు.",
+ "LabelScreensaverTime": "స్క్రీన్సేవర్ సమయం",
+ "Bold": "బోల్డ్",
+ "LabelScreensaverTimeHelp": "స్క్రీన్సేవర్ను ప్రారంభించడానికి సెకన్లలో పట్టే నిష్క్రియాత్మక సమయం.",
+ "LabelSyncPlaySettingsDescription": "సింక్ప్లే ప్రాధాన్యతలను మార్చండి",
+ "LabelSyncPlaySettingsSyncCorrectionHelp": "మీడియాను వేగవంతం చేయడం ద్వారా లేదా అంచనా వేసిన స్థానానికి చేరుకోవడం ద్వారా ప్లేబ్యాక్ యొక్క యాక్టివ్ సింక్ను ప్రారంభించండి. భారీగా నత్తిగా మాట్లాడటం జరిగితే దీన్ని నిలిపివేయండి.",
+ "LabelSyncPlaySettingsMinDelaySpeedToSync": "స్పీడ్టుసింక్ కనీస ఆలస్యం",
+ "LabelSyncPlaySettingsMinDelaySpeedToSyncHelp": "కనీస ప్లేబ్యాక్ ఆలస్యం (msలో) ఆ తర్వాత స్పీడ్టుసింక్ ప్లేబ్యాక్ స్థానాన్ని సరిచేయడానికి ప్రయత్నిస్తుంది.",
+ "LabelSyncPlaySettingsMaxDelaySpeedToSyncHelp": "గరిష్ట ప్లేబ్యాక్ ఆలస్యం (msలో), ఆ తర్వాత స్పీడ్టుసింక్ బదులుగా స్కిప్టోసింక్ ఉపయోగించబడుతుంది.",
+ "LabelSyncPlaySettingsSpeedToSyncDuration": "స్పీడ్టుసింక్ వ్యవధి",
+ "LimitSegmentLength": "చిన్నహెచ్ఎల్ఎస్ విభాగాలను ఉపయోగించండి",
+ "LabelSyncPlaySettingsSpeedToSyncDurationHelp": "ప్లేబ్యాక్ స్థానాన్ని సరిచేయడానికి స్పీడ్టుసింక్ ఉపయోగించే మిల్లీసెకన్ల మొత్తం.",
+ "LabelSyncPlaySettingsMinDelaySkipToSyncHelp": "కనీస ప్లేబ్యాక్ ఆలస్యం (msలో) ఆ తర్వాత స్కిప్టోసింక్ ప్లేబ్యాక్ స్థానాన్ని సరిచేయడానికి ప్రయత్నిస్తుంది.",
+ "LabelSyncPlaySettingsSpeedToSyncHelp": "ప్లేబ్యాక్ను వేగవంతం చేయడంలో ఉండే సింక్ కరెక్షన్ పద్ధతి. సింక్ కరెక్షన్ను తప్పనిసరిగా ప్రారంభించాలి.",
+ "LogLevel.Warning": "హెచ్చరిక",
+ "MediaSegmentType.Recap": "రీక్యాప్",
+ "LabelSelectPreferredTranscodeVideoCodec": "ప్రాధాన్య ట్రాన్స్కోడ్ వీడియో కోడెక్",
+ "LastActive": "చివరిగా యాక్టివ్గా ఉన్న సమయం",
+ "LibraryScanFanoutConcurrency": "సమాంతర లైబ్రరీ స్కాన్ పనుల పరిమితి",
+ "LibraryScanFanoutConcurrencyHelp": "లైబ్రరీ స్కాన్ల సమయంలో సమాంతర పనుల గరిష్ట సంఖ్య. దీన్ని ఖాళీగా ఉంచడం వల్ల మీ సిస్టమ్ కోర్ కౌంట్ ఆధారంగా పరిమితిని ఎంచుకుంటారు. హెచ్చరిక: ఈ సంఖ్యను చాలా ఎక్కువగా సెట్ చేయడం వల్ల నెట్వర్క్ ఫైల్ సిస్టమ్లతో సమస్యలు తలెత్తవచ్చు; మీరు సమస్యలను ఎదుర్కొంటే ఈ సంఖ్యను తగ్గించండి.",
+ "LibraryInvalidItemIdError": "లైబ్రరీ చెల్లని స్థితిలో ఉంది మరియు సవరించబడదు. మీరు బహుశా ఒక బగ్ను ఎదుర్కొంటున్నారు: డేటాబేస్లోని మార్గం ఫైల్సిస్టమ్లో సరైన మార్గం కాదు.",
+ "MediaSegmentAction.AskToSkip": "దాటవేయమని అడగండి",
+ "LimitSegmentLengthHelp": "ఈ ఎంపికను ప్రారంభించడం వలన వెబ్ఓఎస్ టీవీలు వంటి కొన్ని పరికరాల్లో సీకింగ్ సమయంలో హెచ్ఎల్ఎస్ ప్లేయర్ హ్యాంగ్ అవ్వకుండా నిరోధించవచ్చు.",
+ "LimitSupportedVideoResolutionHelp": "గరిష్ట మద్దతు ఉన్న వీడియో రిజల్యూషన్గా 'గరిష్టంగా అనుమతించబడిన వీడియో ట్రాన్స్కోడింగ్ రిజల్యూషన్'ని ఉపయోగించండి.",
+ "MediaInfoTitle": "శీర్షిక",
+ "LogLevel.Trace": "ట్రేస్",
+ "LogLevel.Information": "సమాచారం",
+ "MediaInfoRotation": "భ్రమణం",
+ "Mixer": "మిక్సర్",
+ "LogLevel.None": "ఏదీ లేదు",
+ "MediaSegmentProvidersHelp": "మీకు ఇష్టమైన మీడియా భాగం ప్రొవైడర్లను ప్రాధాన్యత క్రమంలో ప్రారంభించండి మరియు ర్యాంక్ చేయండి.",
+ "MenuClose": "మెనూ మూసివేయి",
+ "Lyrics": "సాహిత్యం",
+ "MessageNoFavoritesAvailable": "ప్రస్తుతం ఇష్టమైనవి ఏవీ అందుబాటులో లేవు.",
+ "MenuOpen": "మెనూ తెరవండి",
+ "MessageCancelTimerError": "టైమర్ను రద్దు చేస్తున్నప్పుడు లోపం సంభవించింది",
+ "MessageRenameMediaFolder": "మీడియా లైబ్రరీ పేరు మార్చడం వలన మొత్తం మెటాడేటా పోతుంది, జాగ్రత్తగా కొనసాగండి.",
+ "MessageRepositoryInstallDisclaimer": "హెచ్చరిక: మూడవ పక్ష ప్లగిన్ రిపోజిటరీని ఇన్స్టాల్ చేయడం వలన ప్రమాదాలు ఉంటాయి. ఇది అస్థిరమైన లేదా హానికరమైన కోడ్ను కలిగి ఉండవచ్చు మరియు ఎప్పుడైనా మారవచ్చు. మీరు విశ్వసించే రచయితల నుండి మాత్రమే రిపోజిటరీలను ఇన్స్టాల్ చేయండి.",
+ "MessageSent": "సందేశం పంపబడింది.",
+ "MoveToTop": "పైకి తరలించు",
+ "MessageUnauthorizedUser": "ఈ సమయంలో సర్వర్ను యాక్సెస్ చేయడానికి మీకు అధికారం లేదు. దయచేసి మరిన్ని వివరాల కోసం మీ సర్వర్ నిర్వాహకుడిని సంప్రదించండి.",
+ "NativeSubtitleStylingHelp": "కొన్ని పరికరాల్లో ఉపశీర్షిక స్టైలింగ్ పనిచేయదు. అయితే, దీనికి ఎటువంటి పనితీరు ఓవర్ హెడ్ ఉండదు.",
+ "OptionDateShowAdded": "తేదీ ప్రదర్శన జోడించబడింది",
+ "PageNotFound": "ఇది మీరు వెతుకుతున్న పేజీ కాదు.",
+ "PasswordRequiredForAdmin": "నిర్వాహక ఖాతాలకు పాస్వర్డ్ అవసరం.",
+ "PasswordMissingSaveError": "కొత్త పాస్వర్డ్ ఖాళీగా ఉండకూడదు.",
+ "HeaderVideoAdvanced": "వీడియో అధునాతనం",
+ "LabelStereoDownmixAlgorithm": "స్టీరియో డౌన్మిక్స్ అల్గోరిథం",
+ "MessageNoItemsAvailable": "ప్రస్తుతం ఏ వస్తువులు అందుబాటులో లేవు.",
+ "MessageCancelSeriesTimerError": "సిరీస్ టైమర్ను రద్దు చేస్తున్నప్పుడు లోపం సంభవించింది",
+ "HomeVideosPhotos": "హోమ్ వీడియోలు మరియు ఫోటోలు",
+ "IgnoreDts": "డిటిఎస్ (డీకోడింగ్ టైమ్స్టాంప్)ను విస్మరించండి",
+ "LabelInstalled": "ఇన్స్టాల్ చేయబడింది",
+ "LabelRepository": "రిపోజిటరీ",
+ "LabelSyncPlaySettingsExtraTimeOffset": "అదనపు సమయం ఆఫ్సెట్",
+ "LabelWebVersion": "వెబ్ వెర్షన్",
+ "Localization": "స్థానికీకరణ",
+ "MoveToBottom": "దిగువకు తరలించు",
+ "LabelOriginalName": "అసలు పేరు",
+ "ImageUploadCancelled": "చిత్రం అప్లోడ్ రద్దు చేయబడింది",
+ "LabelParallelImageEncodingLimit": "సమాంతర చిత్రం ఎన్కోడింగ్ పరిమితి",
+ "LabelSlowResponseTime": "ప్రతిస్పందన నెమ్మదిగా పరిగణించబడే సమయం msలో",
+ "LogLevel.Critical": "క్లిష్టమైనది",
+ "MediaSegmentType.Preview": "ప్రివ్యూ",
+ "LogLevel.Error": "లోపం",
+ "MediaSegmentType.Intro": "పరిచయం",
+ "NextChapter": "తదుపరి అధ్యాయం",
+ "LabelAllowFmp4TranscodingContainer": "ఎఫ్ఎమ్పి 4 ట్రాన్స్కోడింగ్ కంటైనర్ను అనుమతించండి",
+ "LabelAlwaysRemuxFlacAudioFiles": "FLAC ఆడియో ఫైల్లను ఎల్లప్పుడూ రీమక్స్ చేయండి",
+ "LabelBackdropScreensaverInterval": "బ్యాక్డ్రాప్ స్క్రీన్సేవర్ విరామం",
+ "LabelSyncPlaySettingsMaxDelaySpeedToSync": "స్పీడ్టుసింక్ గరిష్ట ఆలస్యం",
+ "LabelSyncPlaySettingsSkipToSync": "స్కిప్టోసింక్ ని ప్రారంభించండి",
+ "Illustrator": "చిత్రకారుడు",
+ "LogLevel.Debug": "డీబగ్",
+ "Letterer": "అక్షరం",
+ "Penciller": "పెన్సిలర్",
+ "OtherArtist": "ఇతర కళాకారుడు",
+ "LabelSyncPlaySettingsSkipToSyncHelp": "అంచనా వేసిన స్థానానికి చేరుకోవడంలో ఉండే సమకాలీకరణ దిద్దుబాటు పద్ధతి. సమకాలీకరణ దిద్దుబాటును తప్పనిసరిగా ప్రారంభించాలి.",
+ "LabelSystem": "వ్యవస్థ",
+ "LabelServerVersion": "సర్వర్ వెర్షన్",
+ "ListView": "జాబితా వీక్షణ",
+ "Inker": "ఇంకర్",
+ "NoLyricsSearchResultsFound": "సాహిత్యం కనుగొనబడలేదు.",
+ "LabelAudioTagSettings": "ఆడియో ట్యాగ్ సెట్టింగ్లు",
+ "LabelCustomTagDelimiters": "కస్టమ్ ట్యాగ్ డీలిమిటర్",
+ "LabelDelimiterWhitelist": "డీలిమిటర్ వైట్లిస్ట్",
+ "LabelMaxDaysForNextUp": "'తదుపరిది'లో గరిష్ట రోజులు",
+ "LabelAlwaysRemuxMp3AudioFiles": "MP3 ఆడియో ఫైళ్ళను ఎల్లప్పుడూ రీమక్స్ చేయండి",
+ "LabelLyricDownloaders": "లిరిక్ డౌన్లోడర్లు",
+ "LyricDownloadersHelp": "మీకు ఇష్టమైన లిరిక్ డౌన్లోడ్లను ప్రాధాన్యత క్రమంలో ప్రారంభించండి మరియు ర్యాంక్ చేయండి.",
+ "MediaSegmentType.Outro": "ఔట్రో",
+ "LabelGroupShowsIntoCollections": "సమూహ ప్రదర్శనలను సేకరణలలోకి మార్చడం",
+ "LabelGroupShowsIntoCollectionsHelp": "ప్రదర్శన జాబితాలను ప్రదర్శించేటప్పుడు సేకరణలోని ప్రదర్శనలు ఒక సమూహ అంశంగా ప్రదర్శించబడతాయి.",
+ "LabelSyncPlaySettingsMinDelaySkipToSync": "స్కిప్టోసింక్ కనీస ఆలస్యం",
+ "LabelSyncPlaySettingsSyncCorrection": "సమకాలీకరణ దిద్దుబాటు",
+ "LabelMediaSegmentsType": "{0} విభాగాలు",
+ "LabelSlowResponseEnabled": "సర్వర్ సమాధానం ఇవ్వడంలో నెమ్మదిగా ఉంటే హెచ్చరిక సందేశాన్ని లాగ్ చేయండి",
+ "MediaSegmentSkipPrompt": "{0} దాటవేయి",
+ "LabelNotInstalled": "ఇన్స్టాల్ చేయబడలేదు",
+ "ItemDetails": "వస్తువు వివరాలు",
+ "LabelLevel": "స్థాయి",
+ "LabelSyncPlaySettingsSpeedToSync": "స్పీడ్టుసింక్ ని ప్రారంభించండి",
+ "MediaSegmentAction.Skip": "దాటవేయి",
+ "MediaSegmentAction.None": "ఏదీ లేదు",
+ "MixedMoviesShows": "మిశ్రమ సినిమాలు మరియు కార్యక్రమాలు",
+ "LabelBuildVersion": "నిర్మించు వెర్షన్",
+ "LabelDuration": "వ్యవధి",
+ "LabelSubtitleStyling": "ఉపశీర్షిక శైలి",
+ "LabelSyncPlayNoGroups": "సమూహాలు అందుబాటులో లేవు",
+ "LogoScreensaver": "లోగో స్క్రీన్సేవర్",
+ "Lyricist": "గీత రచయిత",
+ "LimitSupportedVideoResolution": "గరిష్ట మద్దతు ఉన్న వీడియో స్పష్టతను పరిమితం చేయండి",
+ "LabelEnableAudioVbr": "విబిఆర్ ఆడియో ఎన్కోడింగ్ను ప్రారంభించండి",
+ "LabelEnablePlugin": "ప్లగిన్ను ప్రారంభించు",
+ "MessageSplitVersionsError": "వెర్షన్లను విభజించేటప్పుడు ఎర్రర్ సంభవించింది",
+ "Native": "స్థానికం",
+ "OriginalAirDate": "అసలు ప్రసార తేదీ",
+ "Lyric": "లిరిక్",
+ "MetadataImagesLoadError": "మెటాడేటా సెట్టింగ్లను లోడ్ చేయడంలో విఫలమైంది",
+ "LabelSyncPlaySettingsExtraTimeOffsetHelp": "సమయ సమకాలీకరణ కోసం ఎంచుకున్న పరికరంతో సమయ ఆఫ్సెట్ను (msలో) మాన్యువల్గా సర్దుబాటు చేయండి. జాగ్రత్తగా సర్దుబాటు చేయండి.",
+ "LabelTextWeight": "టెక్స్ట్ బరువు",
+ "OptionDateEpisodeAdded": "తేదీ ఎపిసోడ్ జోడించబడింది",
+ "LabelDummyChapterDuration": "విరామం",
+ "LabelChapterImageResolution": "స్పష్టత",
+ "LabelDummyChapterDurationHelp": "డమ్మీ అధ్యాయాల మధ్య విరామం. డమ్మీ అధ్యాయాల జనరేషన్ను నిలిపివేయడానికి 0కి సెట్ చేయండి. దీన్ని మార్చడం వల్ల ఇప్పటికే ఉన్న డమ్మీ అధ్యాయాలపై ఎటువంటి ప్రభావం ఉండదు.",
+ "MoviesAndShows": "సినిమాలు మరియు షోలు",
+ "LibraryNameInvalid": "లైబ్రరీ పేరు ఖాళీగా ఉండకూడదు."
}
From 2240e4b47d6bdfcfa74363f1a6516644c12abbf5 Mon Sep 17 00:00:00 2001
From: Christos Mak
Date: Sun, 27 Apr 2025 08:11:19 -0400
Subject: [PATCH 100/645] Translated using Weblate (Greek) Translation:
Jellyfin/Jellyfin Web Translate-URL:
https://translate.jellyfin.org/projects/jellyfin/jellyfin-web/el/
---
src/strings/el.json | 5 ++++-
1 file changed, 4 insertions(+), 1 deletion(-)
diff --git a/src/strings/el.json b/src/strings/el.json
index d83d3c91b..60eba2914 100644
--- a/src/strings/el.json
+++ b/src/strings/el.json
@@ -1972,5 +1972,8 @@
"ImageDeleteFailed": "Η διαγραφή εικόνας απέτυχε",
"ImageUploadCancelled": "Η φόρτωση της εικόνας ακυρώθηκε",
"ImageUploadFailed": "Η φόρτωση της εικόνας απέτυχε",
- "LimitSegmentLength": "Χρήση μικρότερων τμημάτων HLS"
+ "LimitSegmentLength": "Χρήση μικρότερων τμημάτων HLS",
+ "PreferNonstandardArtistsTag": "Προτίμηση της ετικέτας ARTISTS εάν είναι διαθέσιμη",
+ "Penciller": "Στυλογράφος",
+ "Native": "Εγγενές"
}
From 901429c576152e5e81c35b54b239aa7579c2ef16 Mon Sep 17 00:00:00 2001
From: RikyR
Date: Sun, 27 Apr 2025 09:11:51 -0400
Subject: [PATCH 101/645] Translated using Weblate (Italian) Translation:
Jellyfin/Jellyfin Web Translate-URL:
https://translate.jellyfin.org/projects/jellyfin/jellyfin-web/it/
---
src/strings/it.json | 12 ++++++++++--
1 file changed, 10 insertions(+), 2 deletions(-)
diff --git a/src/strings/it.json b/src/strings/it.json
index d18d81a33..c841f1ed2 100644
--- a/src/strings/it.json
+++ b/src/strings/it.json
@@ -1045,7 +1045,7 @@
"ThemeSongs": "Temi canzoni",
"ThemeVideos": "Temi video",
"TheseSettingsAffectSubtitlesOnThisDevice": "Queste impostazioni influenzano i sottotitoli di questo dispositivo",
- "ThisWizardWillGuideYou": "Questa procedura ti guiderà attraverso il processo di installazione. Per iniziare, per favore scegli la tua lingua preferita.",
+ "ThisWizardWillGuideYou": "Questa procedura ti guiderà attraverso il processo di installazione. Per iniziare, per favore inserisci il nome del server e scegli la tua lingua preferita.",
"Thumb": "Miniatura",
"Thursday": "Giovedì",
"TitleHardwareAcceleration": "Accelerazione Hardware",
@@ -2014,5 +2014,13 @@
"PageNotFound": "Questa non è la pagina che stai cercando.",
"SettingsPageLoadError": "Errore nel caricamento della pagina di configurazione",
"RetryWithGlobalSearch": "Riprova con la ricerca globale",
- "StreamCountExceedsLimit": "Il numero di flussi supera il limite"
+ "StreamCountExceedsLimit": "Il numero di flussi supera il limite",
+ "ReadInputAtNativeFramerate": "Lettura dell'ingresso alla frequenza di fotogrammi nativa",
+ "ReadInputAtNativeFramerateHelp": "Abilitando questa opzione potresti risolvere alcuni problemi, ad esempio l'interruzione anticipata delle dirette streaming.",
+ "CustomSplashScreenSize": "Le immagini personalizzate devono avere un formato 16x9 e una dimensione minima di 1920x1080.",
+ "DeleteCustomImage": "Elimina l'immagine personalizzata",
+ "ImageUploadCancelled": "Caricamento immagine annullato",
+ "ImageUploadFailed": "Caricamento immagine non riuscito",
+ "ImageDeleteFailed": "Eliminazione immagine non riuscita",
+ "UploadCustomImage": "Carica immagine personalizzata"
}
From 46febba85b6f077eb73f53e78f780f6d7c4a1b22 Mon Sep 17 00:00:00 2001
From: yoga sree jagadam
Date: Sun, 27 Apr 2025 08:23:26 -0400
Subject: [PATCH 102/645] Translated using Weblate (Telugu) Translation:
Jellyfin/Jellyfin Web Translate-URL:
https://translate.jellyfin.org/projects/jellyfin/jellyfin-web/te/
---
src/strings/te.json | 107 +++++++++++++++++++++++++++++++++++++++++++-
1 file changed, 106 insertions(+), 1 deletion(-)
diff --git a/src/strings/te.json b/src/strings/te.json
index 91a137415..c1e4e1ba1 100644
--- a/src/strings/te.json
+++ b/src/strings/te.json
@@ -1788,5 +1788,110 @@
"LabelChapterImageResolution": "స్పష్టత",
"LabelDummyChapterDurationHelp": "డమ్మీ అధ్యాయాల మధ్య విరామం. డమ్మీ అధ్యాయాల జనరేషన్ను నిలిపివేయడానికి 0కి సెట్ చేయండి. దీన్ని మార్చడం వల్ల ఇప్పటికే ఉన్న డమ్మీ అధ్యాయాలపై ఎటువంటి ప్రభావం ఉండదు.",
"MoviesAndShows": "సినిమాలు మరియు షోలు",
- "LibraryNameInvalid": "లైబ్రరీ పేరు ఖాళీగా ఉండకూడదు."
+ "LibraryNameInvalid": "లైబ్రరీ పేరు ఖాళీగా ఉండకూడదు.",
+ "VideoResolutionNotSupported": "వీడియో స్పష్టతకు మద్దతు లేదు",
+ "PreferSystemNativeHwDecoder": "ఓఎస్ నేటివ్ డిఎక్స్విఎ లేదా విఎ-ఏపీఐ హార్డ్వేర్ డీకోడర్లను ఇష్టపడండి",
+ "EnableVppTonemapping": "వీపీపీ టోన్ మ్యాపింగ్ను ప్రారంభించండి",
+ "EnableVideoToolboxTonemapping": "వీడియోటూల్బాక్స్ టోన్ మ్యాపింగ్ను ప్రారంభించండి",
+ "EnableEnhancedNvdecDecoder": "మెరుగుపరచబడిన ఎన్విడిఇసి డీకోడర్ను ప్రారంభించండి",
+ "AudioBitrateNotSupported": "ఆడియో బిట్రేట్కు మద్దతు లేదు",
+ "AllowVppTonemappingHelp": "పూర్తి ఇంటెల్ డ్రైవర్ ఆధారిత టోన్-మ్యాపింగ్. ప్రస్తుతం హెచ్డిఆర్10 వీడియోలతో కొన్ని హార్డ్వేర్లపై మాత్రమే పనిచేస్తుంది. మరొక ఓపెన్సిఎల్ అమలుతో పోలిస్తే దీనికి అధిక ప్రాధాన్యత ఉంది.",
+ "AllowVideoToolboxTonemappingHelp": "వీడియోటూల్బాక్స్ ద్వారా అందించబడిన హార్డ్వేర్-యాక్సిలరేటెడ్ టోన్-మ్యాపింగ్. ఇది హెచ్డిఆర్10, హెచ్డిఆర్10+ మరియు హెచ్ఎల్జితో సహా చాలా హెచ్డిఆర్ ఫార్మాట్లతో పనిచేస్తుంది, కానీ డాల్బీ విజన్ ప్రొఫైల్ 5తో పనిచేయదు. మరొక మెటల్ అమలుతో పోలిస్తే దీనికి అధిక ప్రాధాన్యత ఉంది.",
+ "EnableGamepadHelp": "కనెక్ట్ చేయబడిన ఏవైనా కంట్రోలర్ల నుండి ఇన్పుట్ వినండి. (అవసరం: 'టీవీ' డిస్ప్లే మోడ్)",
+ "VideoLevelNotSupported": "వీడియో కోడెక్ స్థాయికి మద్దతు లేదు",
+ "VideoProfileNotSupported": "వీడియో కోడెక్ ప్రొఫైల్కు మద్దతు లేదు",
+ "EnableIntelLowPowerHevcHwEncoder": "ఇంటెల్ తక్కువ-శక్తి హెవిసి హార్డ్వేర్ ఎన్కోడర్ను ప్రారంభించండి",
+ "IntelLowPowerEncHelp": "తక్కువ-పవర్ ఎన్కోడింగ్ అనవసరమైన సీపీయూ-జిపియు సమకాలీకరణను ఉంచగలదు. లైనక్స్లో i915 హెచ్యుసి ఫర్మ్వేర్ కాన్ఫిగర్ చేయబడకపోతే వాటిని నిలిపివేయాలి.",
+ "EnableEnhancedNvdecDecoderHelp": "మెరుగైన ఎన్విడిఇసి అమలు, మీరు డీకోడింగ్ లోపాలను ఎదుర్కొంటే క్యూవిడ్ని ఉపయోగించడానికి ఈ ఎంపికను నిలిపివేయండి.",
+ "LabelHardwareEncodingOptions": "హార్డ్వేర్ ఎన్కోడింగ్ ఎంపికలు",
+ "MediaInfoDvProfile": "డివి ప్రొఫైల్",
+ "MediaInfoBlPresentFlag": "డివి బిఎల్ ప్రీసెట్ ఫ్లాగ్",
+ "EncodingFormatHelp": "జెల్లీఫిన్ ట్రాన్స్కోడ్ చేయాల్సిన వీడియో ఎన్కోడింగ్ను ఎంచుకోండి. ఎంచుకున్న ఫార్మాట్కు హార్డ్వేర్ త్వరణం అందుబాటులో లేనప్పుడు జెల్లీఫిన్ సాఫ్ట్వేర్ ఎన్కోడింగ్ను ఉపయోగిస్తుంది. H264 ఎన్కోడింగ్ ఎల్లప్పుడూ ప్రారంభించబడుతుంది.",
+ "UnknownVideoStreamInfo": "వీడియో స్ట్రీమ్ సమాచారం తెలియదు",
+ "Trickplay": "ట్రిక్ప్లే",
+ "Short": "చిన్నది",
+ "HearingImpairedShort": "హై/ఎస్డీహెచ్",
+ "LabelIsHearingImpaired": "వినికిడి లోపం ఉన్నవారికి (ఎస్డీహెచ్)",
+ "BlockingScan": "బ్లాకింగ్ - క్యూల జనరేషన్, పూర్తయ్యే వరకు స్కాన్ను బ్లాక్ చేస్తుంది",
+ "BehindTheScenes": "తెర వెనుక",
+ "LabelTrickplayAccel": "హార్డ్వేర్ డీకోడింగ్ను ప్రారంభించండి",
+ "TonemappingModeHelp": "టోన్ మ్యాపింగ్ మోడ్ను ఎంచుకోండి. మీరు హైలైట్లను పూర్తిగా కోల్పోతున్నట్లు అనిపిస్తే, ఆర్జిబి మోడ్కి మారడానికి ప్రయత్నించండి.",
+ "PlaybackError.SERVER_ERROR": "సర్వర్ లోపం కారణంగా ప్లేబ్యాక్ విఫలమైంది.",
+ "ForeignPartsOnly": "బలవంతంగా/విదేశీ భాగాలు మాత్రమే",
+ "LabelTrickplayAccelEncoding": "హార్డ్వేర్ యాక్సిలరేటెడ్ ఎంజెపిఇజి ఎన్కోడింగ్ను ప్రారంభించండి",
+ "LabelTrickplayAccelEncodingHelp": "ప్రస్తుతం క్యూఎస్వి, విఎ-ఏపీఐ, వీడియోటూల్బాక్స్ మరియు ఆర్కెఎంపిపి లలో మాత్రమే అందుబాటులో ఉంది, ఈ ఎంపిక ఇతర హార్డ్వేర్ త్వరణ పద్ధతులపై ఎటువంటి ప్రభావాన్ని చూపదు.",
+ "LabelTrickplayKeyFrameOnlyExtraction": "కీ ఫ్రేమ్ల నుండి మాత్రమే చిత్రాలను రూపొందించండి",
+ "LabelTrickplayKeyFrameOnlyExtractionHelp": "తక్కువ ఖచ్చితమైన సమయంతో గణనీయంగా వేగవంతమైన ప్రాసెసింగ్ కోసం మాత్రమే కీ ఫ్రేమ్లను సంగ్రహించండి. కాన్ఫిగర్ చేయబడిన హార్డ్వేర్ డీకోడర్ ఈ మోడ్కు మద్దతు ఇవ్వకపోతే, బదులుగా సాఫ్ట్వేర్ డీకోడర్ను ఉపయోగిస్తుంది.",
+ "LabelScanBehaviorHelp": "డిఫాల్ట్ ప్రవర్తన నాన్ బ్లాకింగ్, ఇది ట్రిక్ప్లే జనరేషన్ పూర్తయ్యే ముందు లైబ్రరీకి మీడియాను జోడిస్తుంది. బ్లాక్ చేయడం వలన లైబ్రరీకి మీడియా జోడించబడే ముందు ట్రిక్ప్లే ఫైల్లు జనరేట్ అయ్యేలా చేస్తుంది, కానీ స్కాన్లు చాలా ఎక్కువసేపు ఉంటాయి.",
+ "PriorityBelowNormal": "సాధారణం కంటే తక్కువ",
+ "PlaybackError.ASS_RENDER_ERROR": "యాస్/ఎస్ఎస్ఏ ఉపశీర్షిక రెండరర్లో ఒక ఎర్రర్ ఎదురైంది.",
+ "PlaybackError.MEDIA_DECODE_ERROR": "మీడియాను డీకోడ్ చేయడంలో లోపం కారణంగా ప్లేబ్యాక్ విఫలమైంది.",
+ "PlaybackError.MEDIA_NOT_SUPPORTED": "ఈ క్లయింట్ మీడియాకు మద్దతు ఇవ్వనందున ప్లేబ్యాక్ విఫలమైంది.",
+ "PlaybackError.NETWORK_ERROR": "నెట్వర్క్ లోపం కారణంగా ప్లేబ్యాక్ విఫలమైంది.",
+ "PlaybackError.FATAL_HLS_ERROR": "హెచ్ఎల్ఎస్ స్ట్రీమ్లో ఒక ప్రాణాంతకమైన లోపం ఎదురైంది.",
+ "LabelVppTonemappingContrast": "వీపీపీ టోన్ మ్యాపింగ్ కాంట్రాస్ట్ గెయిన్",
+ "InterlacedVideoNotSupported": "ఇంటర్లేస్డ్ వీడియోకు మద్దతు లేదు",
+ "VideoRangeTypeNotSupported": "వీడియో పరిధి రకానికి మద్దతు లేదు",
+ "Controls": "నియంత్రణలు",
+ "AudioChannelsNotSupported": "ఆడియో ఛానెల్ల సంఖ్యకు మద్దతు లేదు",
+ "AudioBitDepthNotSupported": "ఆడియో బిట్ డెప్త్ కు మద్దతు లేదు",
+ "LabelEncodingFormatOptions": "ఎన్కోడింగ్ ఫార్మాట్ ఎంపికలు",
+ "AudioIsExternal": "ఆడియో స్ట్రీమ్ బాహ్యమైనది",
+ "VideoBitrateNotSupported": "వీడియో బిట్రేట్కు మద్దతు లేదు",
+ "DeletedScene": "తొలగించబడిన దృశ్యం",
+ "Trailer": "ట్రైలర్",
+ "Sample": "నమూనా",
+ "MediaInfoDoViTitle": "డివి టైటిల్",
+ "MediaInfoDvVersionMinor": "డివి వెర్షన్ మైనర్",
+ "MediaInfoDvLevel": "డివి స్థాయి",
+ "MediaInfoRpuPresentFlag": "డివి ఆర్పియు ప్రీసెట్ ఫ్లాగ్",
+ "LabelTonemappingMode": "టోన్ మ్యాపింగ్ మోడ్",
+ "Unknown": "తెలియదు",
+ "AllowAv1Encoding": "AV1 ఫార్మాట్లో ఎన్కోడింగ్ను అనుమతించండి",
+ "EnableIntelLowPowerH264HwEncoder": "ఇంటెల్ తక్కువ-శక్తి H.264 హార్డ్వేర్ ఎన్కోడర్ను ప్రారంభించండి",
+ "MediaInfoVideoRangeType": "వీడియో పరిధి రకం",
+ "MediaInfoDvVersionMajor": "డివి వెర్షన్ మేజర్",
+ "PriorityHigh": "అధిక",
+ "PriorityAboveNormal": "సాధారణం కంటే ఎక్కువ",
+ "PriorityNormal": "సాధారణం",
+ "LabelVppTonemappingBrightnessHelp": "వీపీపీ టోన్ మ్యాపింగ్లో బ్రైట్నెస్ గెయిన్ను వర్తింపజేయండి. సిఫార్సు చేయబడిన విలువ 16.",
+ "VideoCodecNotSupported": "వీడియో కోడెక్కు మద్దతు లేదు",
+ "SubtitleCodecNotSupported": "ఉపశీర్షిక కోడెక్కు మద్దతు లేదు",
+ "SecondaryAudioNotSupported": "ద్వితీయ ఆడియో ట్రాక్లకు మద్దతు లేదు",
+ "Scene": "దృశ్యం",
+ "Interview": "ఇంటర్వ్యూ",
+ "Unreleased": "ఇంకా విడుదల కాలేదు",
+ "VideoBitDepthNotSupported": "వీడియో యొక్క బిట్ డెప్త్కు మద్దతు లేదు",
+ "Featurette": "ఫీచర్",
+ "LabelVppTonemappingContrastHelp": "వీపీపీ టోన్ మ్యాపింగ్లో కాంట్రాస్ట్ గెయిన్ను వర్తింపజేయండి. సిఫార్సు చేయబడిన విలువ 1.",
+ "AiTranslated": "AI అనువదించబడింది",
+ "LabelVppTonemappingBrightness": "వీపీపీ టోన్ మ్యాపింగ్ బ్రైట్నెస్ గెయిన్",
+ "Select": "ఎంచుకోండి",
+ "VideoCodecTagNotSupported": "వీడియో కోడెక్ ట్యాగ్కు మద్దతు లేదు",
+ "AudioProfileNotSupported": "ఆడియో కోడెక్ ప్రొఫైల్కు మద్దతు లేదు",
+ "DirectPlayError": "డైరెక్ట్ ప్లేబ్యాక్ను ప్రారంభించడంలో లోపం ఉంది",
+ "SelectAll": "అన్నీ ఎంచుకోండి",
+ "PlaybackError.PLAYER_ERROR": "ప్రాణాంతకమైన ప్లేయర్ లోపం కారణంగా ప్లేబ్యాక్ విఫలమైంది.",
+ "PlaybackError.NO_MEDIA_ERROR": "ప్లే చేయడానికి చెల్లుబాటు అయ్యే మీడియా సోర్స్ దొరకలేదు.",
+ "MachineTranslated": "యంత్ర అనువాదం",
+ "AudioCodecNotSupported": "ఆడియో కోడెక్కు మద్దతు లేదు",
+ "LabelScanBehavior": "స్కాన్ ప్రవర్తన",
+ "ContainerNotSupported": "కంటైనర్కు మద్దతు లేదు",
+ "AnamorphicVideoNotSupported": "అనమార్ఫిక్ వీడియోకు మద్దతు లేదు",
+ "ThemeSong": "థీమ్ పాట",
+ "MediaInfoDvBlSignalCompatibilityId": "డివి బిఎల్ సిగ్నల్ అనుకూలత ఐడి",
+ "NonBlockingScan": "నాన్ బ్లాకింగ్ - క్యూ జనరేషన్, ఆపై తిరిగి వస్తుంది",
+ "AudioSampleRateNotSupported": "ఆడియో నమూనా రేటుకు మద్దతు లేదు",
+ "ContainerBitrateExceedsLimit": "వీడియో బిట్రేట్ పరిమితిని మించిపోయింది",
+ "PriorityIdle": "ఖాళీగా ఉంది",
+ "Clip": "క్లిప్",
+ "PlaybackError.NotAllowed": "ఈ మీడియా ప్లేబ్యాక్ అనుమతించబడదు.",
+ "UnknownAudioStreamInfo": "ఆడియో స్ట్రీమ్ సమాచారం తెలియదు",
+ "ThemeVideo": "థీమ్ వీడియో",
+ "LabelVideoRangeType": "వీడియో పరిధి రకం",
+ "MediaInfoElPresentFlag": "డివి ఎల్ ప్రీసెట్ ఫ్లాగ్",
+ "EnableSplashScreen": "స్ప్లాష్ స్క్రీన్ చిత్రాన్ని ప్రారంభించండి",
+ "RefFramesNotSupported": "రిఫరెన్స్ ఫ్రేమ్లకు మద్దతు లేదు",
+ "LabelEnableGamepad": "గేమ్ప్యాడ్ను ప్రారంభించండి",
+ "VideoFramerateNotSupported": "వీడియో ఫ్రేమ్రేట్కు మద్దతు లేదు"
}
From 4f3a985bf7531561e1e479859794c0e330859184 Mon Sep 17 00:00:00 2001
From: Christos Mak
Date: Sun, 27 Apr 2025 12:24:42 -0400
Subject: [PATCH 103/645] Translated using Weblate (Greek) Translation:
Jellyfin/Jellyfin Web Translate-URL:
https://translate.jellyfin.org/projects/jellyfin/jellyfin-web/el/
---
src/strings/el.json | 19 ++++++++++++++++---
1 file changed, 16 insertions(+), 3 deletions(-)
diff --git a/src/strings/el.json b/src/strings/el.json
index 60eba2914..b72f9df4a 100644
--- a/src/strings/el.json
+++ b/src/strings/el.json
@@ -864,7 +864,7 @@
"SeriesYearToPresent": "{0} - Εώς σήμερα",
"ServerNameIsRestarting": "Ο διακομιστής {0} επανεκκινείται.",
"ServerNameIsShuttingDown": "Ο διακομιστής {0} τερματίζεται.",
- "ServerRestartNeededAfterPluginInstall": "Θα πρέπει να γίνει επανεκκίνηση του Jellyfin μετά την εγκατάσταση ενός plugin.",
+ "ServerRestartNeededAfterPluginInstall": "Θα πρέπει να γίνει επανεκκίνηση του Jellyfin μετά την εγκατάσταση του plugin.",
"ServerUpdateNeeded": "Αυτός ο server πρέπει να ενημερωθεί. Για να κάνετε λήψη της τελευταίας έκδοσης, επισκεφθείτε την {0}",
"Settings": "Ρυθμίσεις",
"SettingsSaved": "Οι ρυθμίσεις αποθηκεύτηκαν.",
@@ -924,7 +924,7 @@
"ThemeSongs": "Θεματικά τραγούδια",
"ThemeVideos": "Θεματικά βίντεο",
"TheseSettingsAffectSubtitlesOnThisDevice": "Αυτές οι ρυθμίσεις επηρεάζουν τους υπότιτλους αυτής της συσκευής",
- "ThisWizardWillGuideYou": "Αυτός ο οδηγός θα σας καθοδηγήσει στη διαδικασία εγκατάστασης. Για να ξεκινήσετε, παρακαλούμε επιλέξτε τη γλώσσα που προτιμάτε.",
+ "ThisWizardWillGuideYou": "Αυτός ο οδηγός θα σας βοηθήσει να ολοκληρώσετε την εγκατάσταση. Για να ξεκινήσετε, παρακαλούμε επιλέξτε τη γλώσσα που προτιμάτε.",
"Thursday": "Πέμπτη",
"TitleHardwareAcceleration": "Επιτάχυνση υλικού",
"TitlePlayback": "Αναπαραγωγή",
@@ -1975,5 +1975,18 @@
"LimitSegmentLength": "Χρήση μικρότερων τμημάτων HLS",
"PreferNonstandardArtistsTag": "Προτίμηση της ετικέτας ARTISTS εάν είναι διαθέσιμη",
"Penciller": "Στυλογράφος",
- "Native": "Εγγενές"
+ "Native": "Εγγενές",
+ "SaveRecordingImages": "Αποθήκευση εικόνων εγγραφής EPG",
+ "StreamCountExceedsLimit": "Ο αριθμός των ροών υπερβαίνει το όριο",
+ "RetryWithGlobalSearch": "Επανάληψη με συνολική αναζήτηση",
+ "SaveLyricsIntoMediaFoldersHelp": "Η αποθήκευση των στίχων μαζί με τα αρχεία ήχου θα επιτρέψει την ευκολότερη διαχείρισή τους.",
+ "SaveRecordingNFOHelp": "Αποθήκευση μεταδεδομένων από τον πάροχο καταλόγων EPG μαζί με τα μέσα ενημέρωσης.",
+ "UploadCustomImage": "Ανέβασμα προσαρμοσμένης εικόνας",
+ "Translator": "Μεταφραστής",
+ "UseCustomTagDelimiters": "Χρήση προσαρμοσμένου διαχωριστικού ετικέτας",
+ "Regional": "Περιφερειακή",
+ "SaveLyricsIntoMediaFolders": "Αποθήκευση στίχων σε φακέλους πολυμέσων",
+ "SearchForLyrics": "Αναζήτηση στίχων",
+ "Studio": "Στούντιο",
+ "SaveRecordingImagesHelp": "Αποθήκευση εικόνων από τον πάροχο καταλόγων EPG μαζί με τα μέσα ενημέρωσης."
}
From 1a2cb0cf07cb5903e772d6a0e6505424dfeb727e Mon Sep 17 00:00:00 2001
From: lazyphoton
Date: Sun, 27 Apr 2025 13:23:40 -0400
Subject: [PATCH 104/645] Translated using Weblate (Spanish (Latin America))
Translation: Jellyfin/Jellyfin Web Translate-URL:
https://translate.jellyfin.org/projects/jellyfin/jellyfin-web/es_419/
---
src/strings/es_419.json | 30 +++++++++++++++++++++++++-----
1 file changed, 25 insertions(+), 5 deletions(-)
diff --git a/src/strings/es_419.json b/src/strings/es_419.json
index 4670075b6..d2d237a5a 100644
--- a/src/strings/es_419.json
+++ b/src/strings/es_419.json
@@ -1213,7 +1213,7 @@
"ConfirmDeleteItems": "Eliminar estos elementos los eliminará tanto del sistema como de tu biblioteca de medios. ¿Estás seguro de querer continuar?",
"ConfirmDeleteItem": "Eliminar este elemento lo eliminará tanto del sistema como de tu biblioteca de medios. ¿Estás seguro de querer continuar?",
"ConfirmDeleteImage": "¿Eliminar imagen?",
- "ConfigureDateAdded": "Configure como los metadatos para 'Fecha de adición' en el Panel de control > Bibliotecas > Configuración de NFO",
+ "ConfigureDateAdded": "Configure cómo los metadatos para 'Fecha de adición' se determinan en el Panel de control > Bibliotecas > Configuración de NFO",
"Composer": "Compositor",
"CommunityRating": "Calificación de la comunidad",
"ColorTransfer": "Transferencia de color",
@@ -1418,7 +1418,7 @@
"LabelQuickConnectCode": "Código de «Conexión rápida»",
"LabelKnownProxies": "Proxies conocidos",
"LabelIconMaxResHelp": "Resolución maxima de los iconos por medio de la función 'upnp:icon'.",
- "EnableAutoCast": "Establecer como Predeterminado",
+ "EnableAutoCast": "Establecer como predeterminado",
"OptionMaxActiveSessionsHelp": "fijar esto en 0 desactivará esta característica.",
"OptionMaxActiveSessions": "Determina el número máximo de sesiones que puede tener cada usuario de forma simultnea.",
"LabelUserMaxActiveSessions": "Límite de sesiones simultaneas",
@@ -1508,7 +1508,7 @@
"DisablePlugin": "Deshabilitar",
"EnablePlugin": "Habilitar",
"Framerate": "Cuadros por segundo",
- "DirectPlayHelp": "El archivo de origen es totalmente compatible con este cliente y la sesión esta recibiendo el archivo sin modificaciones.",
+ "DirectPlayHelp": "El archivo de origen es totalmente compatible con este cliente y la sesión está recibiendo el archivo sin modificaciones.",
"HeaderContinueReading": "Continuar leyendo",
"EnableGamepadHelp": "Esperando por entrada desde cualquier controlador conectado. (Requiere: ‘TV’ Modo Pantalla)",
"LabelEnableGamepad": "Habilitar Gamepad",
@@ -1640,7 +1640,7 @@
"NotificationsMovedMessage": "La funcionalidad de notificaciones se ha movido al plugin de Webhooks.",
"MessageRenameMediaFolder": "Renombrar una librería de medios provoca que los metadatos guardados se pierdan, proceder con caución.",
"NextChapter": "Proxima escena",
- "SelectAudioNormalizationHelp": "Ganancia de pista - ajusta el volumen de cada pista para que la reproducción suene en la misma intensidad. Ganancia de Album - ajusta el volumen de todas las pistas del album, manteniendo el rango dinámico del mismo.",
+ "SelectAudioNormalizationHelp": "Ganancia de pista - ajusta el volumen de cada pista para que la reproducción suene con la misma intensidad. Ganancia de Album - ajusta el volumen de todas las pistas del album, manteniendo el rango dinámico del mismo.",
"LabelAlbumGain": "Ganancia de Album",
"LabelSelectAudioNormalization": "Normalización de Audio",
"PasswordRequiredForAdmin": "Una contraseña es requerida para las cuentas de administrador.",
@@ -1724,5 +1724,25 @@
"PlaybackError.FATAL_HLS_ERROR": "Se encontró un error fatal en la transmisión HLS.",
"PreferEmbeddedExtrasTitlesOverFileNames": "Preferir los títulos incrustados en lugar de los nombres de archivo para los extras",
"AllowVideoToolboxTonemappingHelp": "El mapeo de tonos acelerado por hardware proporcionado por VideoToolbox. Funciona con la mayoría de los formatos HDR, incluyendo HDR10, HDR10+ y HLG, pero no funciona con Dolby Vision Perfil 5. Tiene una mayor prioridad en comparación con otra implementación en Metal.",
- "HeaderMediaSegmentActions": "Acciones de segmentos de medios"
+ "HeaderMediaSegmentActions": "Acciones de segmentos de medios",
+ "DisplayLoadError": "Se produjo un error al cargar los datos de configuración de visualización.",
+ "AutoSubtitleStylingHelp": "Este modo cambiará automáticamente entre los mecanismos nativos y personalizados de estilo de subtítulos según el tipo de dispositivo.",
+ "Custom": "Personalizado",
+ "Colorist": "Colorista",
+ "CopyLogSuccess": "Contenido del registro copiado correctamente.",
+ "CustomSubtitleStylingHelp": "El estilo de subtítulos funcionará en la mayoría de los dispositivos, pero implica una carga adicional de rendimiento.",
+ "DisableVbrAudioEncodingHelp": "Evita que el servidor codifique el audio con VBR para este cliente.",
+ "DlnaMovedMessage": "La funcionalidad DLNA se ha movido a un plugin.",
+ "DateModified": "Fecha de modificación",
+ "EnableDtsHelp": "Activa esta opción solo si tu dispositivo es compatible con DTS o está conectado a un receptor de audio compatible, de lo contrario, podría fallar la reproducción.",
+ "EditLyrics": "Editar letras",
+ "Anime": "Anime",
+ "Editor": "Editor",
+ "DeleteServerConfirmation": "¿Estás seguro de querer eliminar este servidor?",
+ "EnableHi10p": "Activar perfil H.264 High 10",
+ "CustomSplashScreenSize": "Las imágenes personalizadas deben tener una relación de aspecto de 16:9 y un tamaño mínimo de 1920x1080.",
+ "DeleteCustomImage": "Borrar imagen personalizada",
+ "DeleteEpisode": "Borrar episodio",
+ "DeleteName": "Borrar {0}",
+ "EnableDts": "Activar DTS (DCA)"
}
From 4e2b6290aaa4d2f99e0b190088b1bd0d89ee4ff8 Mon Sep 17 00:00:00 2001
From: yoga sree jagadam
Date: Sun, 27 Apr 2025 12:18:04 -0400
Subject: [PATCH 105/645] Translated using Weblate (Telugu) Translation:
Jellyfin/Jellyfin Web Translate-URL:
https://translate.jellyfin.org/projects/jellyfin/jellyfin-web/te/
---
src/strings/te.json | 129 +++++++++++++++++++++++++++++++++++++++++---
1 file changed, 121 insertions(+), 8 deletions(-)
diff --git a/src/strings/te.json b/src/strings/te.json
index c1e4e1ba1..bff96499c 100644
--- a/src/strings/te.json
+++ b/src/strings/te.json
@@ -28,7 +28,7 @@
"LabelSelectAudioChannels": "ఛానెల్లు",
"LabelAllowedAudioChannels": "గరిష్టంగా అనుమతించబడిన ఆడియో ఛానెల్లు",
"AllowHevcEncoding": "HEVC ఆకృతిలో ఎన్కోడింగ్ను అనుమతించండి",
- "PreferFmp4HlsContainerHelp": "HLS కోసం డిఫాల్ట్ కంటైనర్గా fMP4 ను ఉపయోగించడానికి ఇష్టపడండి, మద్దతు ఉన్న పరికరాల్లో HEVC కంటెంట్ను ప్రత్యక్షంగా ప్రసారం చేయడం సాధ్యపడుతుంది.",
+ "PreferFmp4HlsContainerHelp": "హెచ్ఎల్ఎస్ కోసం ఎఫ్ఎంపి4 ను డిఫాల్ట్ కంటైనర్గా ఉపయోగించడానికి ఇష్టపడండి, దీని వలన మద్దతు ఉన్న పరికరాల్లో హెచ్ఈవీసీ మరియు ఎవి1 కంటెంట్ను డైరెక్ట్ స్ట్రీమ్ చేయడం సాధ్యపడుతుంది.",
"PreferFmp4HlsContainer": "FMP4-HLS మీడియా కంటైనర్కు ప్రాధాన్యత ఇవ్వండి",
"LabelSyncPlayInfo": "సమకాలీకరణ సమాచారం",
"LabelOriginalMediaInfo": "అసలు మీడియా సమాచారం",
@@ -41,17 +41,17 @@
"RemuxHelp2": "పూర్తిగా నష్టపోని మీడియా నాణ్యతతో రీమక్స్ చాలా తక్కువ ప్రాసెసింగ్ శక్తిని ఉపయోగిస్తుంది.",
"RemuxHelp1": "మీడియా అననుకూల ఫైల్ కంటైనర్లో ఉంది (MKV, AVI, WMV, మొదలైనవి) కానీ వీడియో స్ట్రీమ్ మరియు ఆడియో స్ట్రీమ్ రెండూ పరికరానికి అనుకూలంగా ఉంటాయి. పరికరానికి పంపే ముందు మీడియా ఎగిరిపోకుండా నష్టపోకుండా ప్యాక్ చేయబడుతుంది.",
"Remuxing": "రీమక్సింగ్",
- "AspectRatioFill": "పూరించండి",
- "AspectRatioCover": "కవర్",
+ "AspectRatioFill": "సాగదీయండి",
+ "AspectRatioCover": "జూమ్",
"EnableFallbackFontHelp": "అనుకూల ప్రత్యామ్నాయ ఫాంట్లను ప్రారంభించండి. ఇది తప్పు ఉపశీర్షిక రెండరింగ్ సమస్యను నివారించవచ్చు.",
"EnableFallbackFont": "ఫాల్బ్యాక్ ఫాంట్లను ప్రారంభించండి",
- "LabelFallbackFontPathHelp": "ASS / SSA ఉపశీర్షికలను అందించడానికి ఫాల్బ్యాక్ ఫాంట్లను కలిగి ఉన్న మార్గాన్ని పేర్కొనండి. గరిష్టంగా అనుమతించబడిన మొత్తం ఫాంట్ పరిమాణం 20 MB. తేలికపాటి మరియు వెబ్-స్నేహపూర్వక ఫాంట్ ఫార్మాట్లైన వోఫ్ 2 సిఫార్సు చేయబడింది.",
+ "LabelFallbackFontPathHelp": "ఈ ఫాంట్లను కొంతమంది క్లయింట్లు సబ్టైటిల్లను రెండర్ చేయడానికి ఉపయోగిస్తారు. మరిన్ని వివరాల కోసం దయచేసి డాక్యుమెంటేషన్ను చూడండి.",
"LabelFallbackFontPath": "ఫాల్బ్యాక్ ఫాంట్ ఫోల్డర్ మార్గం",
"HeaderSelectFallbackFontPathHelp": "ASS / SSA ఉపశీర్షికలను రెండరింగ్ చేయడానికి ఉపయోగించడానికి ఫాల్బ్యాక్ ఫాంట్ ఫోల్డర్ యొక్క మార్గాన్ని బ్రౌజ్ చేయండి లేదా నమోదు చేయండి.",
"HeaderSelectFallbackFontPath": "ఫాల్బ్యాక్ ఫాంట్ ఫోల్డర్ మార్గం ఎంచుకోండి",
"Yesterday": "నిన్న",
"Yes": "అవును",
- "Yadif": "YADIF",
+ "Yadif": "మరో డీఇంటర్లేసింగ్ ఫిల్టర్ (YADIF)",
"XmlTvSportsCategoriesHelp": "ఈ వర్గాలతో కూడిన కార్యక్రమాలు క్రీడా కార్యక్రమాలుగా ప్రదర్శించబడతాయి. '|' తో బహుళాలను వేరు చేయండి.",
"XmlTvPathHelp": "XMLTV ఫైల్కు మార్గం. జెల్లీఫిన్ ఈ ఫైల్ను చదివి ఎప్పటికప్పుడు నవీకరణల కోసం తనిఖీ చేస్తుంది. ఫైల్ను సృష్టించడం మరియు నవీకరించడం మీ బాధ్యత.",
"XmlTvNewsCategoriesHelp": "ఈ వర్గాలతో కూడిన కార్యక్రమాలు వార్తా కార్యక్రమాలుగా ప్రదర్శించబడతాయి. '|' తో బహుళాలను వేరు చేయండి.",
@@ -121,7 +121,7 @@
"Thursday": "గురువారం",
"ThumbCard": "బొటనవేలు కార్డు",
"Thumb": "బొటనవేలు",
- "ThisWizardWillGuideYou": "ఈ విజర్డ్ సెటప్ ప్రాసెస్ ద్వారా మీకు మార్గనిర్దేశం చేస్తుంది. ప్రారంభించడానికి, దయచేసి మీకు ఇష్టమైన భాషను ఎంచుకోండి.",
+ "ThisWizardWillGuideYou": "ఈ విజార్డ్ సెటప్ ప్రక్రియ ద్వారా మీకు మార్గనిర్దేశం చేస్తుంది. ప్రారంభించడానికి, దయచేసి సర్వర్ పేరును నమోదు చేసి, మీకు నచ్చిన భాషను ఎంచుకోండి.",
"TheseSettingsAffectSubtitlesOnThisDevice": "ఈ సెట్టింగ్లు ఈ పరికరంలోని ఉపశీర్షికలను ప్రభావితం చేస్తాయి",
"ThemeVideos": "థీమ్ వీడియోలు",
"ThemeSongs": "థీమ్ పాటలు",
@@ -175,7 +175,7 @@
"SettingsSaved": "సెట్టింగులు సేవ్ చేయబడ్డాయి.",
"Settings": "సెట్టింగులు",
"ServerUpdateNeeded": "ఈ సర్వర్ నవీకరించబడాలి. తాజా అప్డేట్ డౌన్లోడ్ చేయడానికి, దయచేసి {0}ని సందర్శించండి",
- "ServerRestartNeededAfterPluginInstall": "ప్లగ్ఇన్ను ఇన్స్టాల్ చేసిన తర్వాత జెల్లీఫిన్ పున ar ప్రారంభించాలి.",
+ "ServerRestartNeededAfterPluginInstall": "ప్లగిన్ను ఇన్స్టాల్ చేసిన తర్వాత జెల్లీఫిన్ను రీస్టార్ట్ చేయాల్సి ఉంటుంది.",
"ServerNameIsShuttingDown": "{0} వద్ద సర్వర్ షట్ డౌన్ అవుతోంది.",
"ServerNameIsRestarting": "{0} వద్ద సర్వర్ పునఃప్రారంభించబడుతోంది.",
"SeriesYearToPresent": "{0} - ప్రస్తుతం",
@@ -1893,5 +1893,118 @@
"EnableSplashScreen": "స్ప్లాష్ స్క్రీన్ చిత్రాన్ని ప్రారంభించండి",
"RefFramesNotSupported": "రిఫరెన్స్ ఫ్రేమ్లకు మద్దతు లేదు",
"LabelEnableGamepad": "గేమ్ప్యాడ్ను ప్రారంభించండి",
- "VideoFramerateNotSupported": "వీడియో ఫ్రేమ్రేట్కు మద్దతు లేదు"
+ "VideoFramerateNotSupported": "వీడియో ఫ్రేమ్రేట్కు మద్దతు లేదు",
+ "PlaybackError.RateLimitExceeded": "రేట్ పరిమితుల కారణంగా ఈ సమయంలో ఈ మీడియాను ప్లే చేయడం సాధ్యం కాదు.",
+ "PlaylistError.CreateFailed": "ప్లేజాబితాను సృష్టించడంలో లోపం ఏర్పడింది",
+ "PlaylistError.UpdateFailed": "ప్లేజాబితాను నవీకరించడంలో లోపం ఏర్పడింది",
+ "PluginEnableError": "ప్లగిన్ను ప్రారంభించేటప్పుడు లోపం సంభవించింది.",
+ "PreferEmbeddedExtrasTitlesOverFileNamesHelp": "ఎక్స్ట్రాలు తరచుగా పేరెంట్ లాగానే ఎంబెడెడ్ పేరును కలిగి ఉంటాయి, ఏమైనప్పటికీ వాటి కోసం ఎంబెడెడ్ శీర్షికలను ఉపయోగించడానికి దీన్ని తనిఖీ చేయండి.",
+ "PreferNonstandardArtistsTagHelp": "అందుబాటులో ఉన్నప్పుడు ARTIST ట్యాగ్కు బదులుగా ప్రామాణికం కాని ARTISTS ట్యాగ్ను ఉపయోగించండి.",
+ "AllowEmbeddedSubtitlesHelp": "మీడియా కంటైనర్లలో ప్యాక్ చేయబడిన ఉపశీర్షికలను నిలిపివేయండి. పూర్తి లైబ్రరీ రిఫ్రెష్ అవసరం.",
+ "AllowEmbeddedSubtitles": "వివిధ రకాల ఎంబెడెడ్ ఉపశీర్షికలను నిలిపివేయండి",
+ "AllowEmbeddedSubtitlesAllowAllOption": "అన్నీ అనుమతించు",
+ "RememberSubtitleSelections": "మునుపటి అంశం ఆధారంగా ఉపశీర్షిక ట్రాక్ను సెట్ చేయండి",
+ "PreviewLyrics": "సాహిత్యాన్ని పరిదృశ్యం చేయండి",
+ "RetryWithGlobalSearch": "గ్లోబల్ శోధనతో మళ్ళీ ప్రయత్నించండి",
+ "PreviousChapter": "మునుపటి అధ్యాయం",
+ "ReleaseGroup": "విడుదల సమూహం",
+ "RememberAudioSelections": "మునుపటి అంశం ఆధారంగా ఆడియో ట్రాక్ను సెట్ చేయండి",
+ "Reset": "తిరిగి నిర్దారించు",
+ "RememberAudioSelectionsHelp": "ఆడియో ట్రాక్ను చివరి వీడియోకు దగ్గరగా ఉండేలా సెట్ చేయడానికి ప్రయత్నించండి.",
+ "RememberSubtitleSelectionsHelp": "చివరి వీడియోకు దగ్గరగా ఉన్న సబ్టైటిల్ ట్రాక్ను సెట్ చేయడానికి ప్రయత్నించండి.",
+ "RenderPgsSubtitleHelp": "క్లయింట్ బర్న్డ్ ఇన్ సబ్టైటిల్స్ని ఉపయోగించడానికి బదులుగా PGS సబ్టైటిల్స్ని రెండర్ చేయాలా వద్దా అని నిర్ణయించండి. ఇది క్లయింట్-సైడ్ రెండరింగ్ పనితీరుకు బదులుగా సర్వర్-సైడ్ ట్రాన్స్కోడింగ్ను నివారించవచ్చు.",
+ "SaveLyricsIntoMediaFoldersHelp": "ఆడియో ఫైళ్ల పక్కన సాహిత్యాన్ని నిల్వ చేయడం వల్ల వాటిని మరింత సులభంగా నిర్వహించవచ్చు.",
+ "SavePassword": "పాస్వర్డ్ను సేవ్ చేయండి",
+ "SaveRecordingNFO": "ఎన్ఎఫ్ఓలో రికార్డింగ్ ఇపిజి మెటాడేటాను సేవ్ చేయండి",
+ "SaveRecordingNFOHelp": "సైడ్ మీడియాతో పాటు ఇపిజి లిస్టింగ్ ప్రొవైడర్ నుండి మెటాడేటాను సేవ్ చేయండి.",
+ "SaveRecordingImages": "రికార్డింగ్ ఇపిజి చిత్రాలను సేవ్ చేయండి",
+ "SaveRecordingImagesHelp": "సైడ్ మీడియాతో పాటు ఇపిజి లిస్టింగ్ ప్రొవైడర్ నుండి చిత్రాలను సేవ్ చేయండి.",
+ "StoryArc": "స్టోరీ ఆర్క్",
+ "SelectPreferredTranscodeVideoCodecHelp": "ట్రాన్స్కోడ్ చేయడానికి ప్రాధాన్య వీడియో కోడెక్ను ఎంచుకోండి. ప్రాధాన్య కోడెక్కు మద్దతు లేకపోతే, సర్వర్ తదుపరి అందుబాటులో ఉన్న ఉత్తమ కోడెక్ను ఉపయోగిస్తుంది.",
+ "SelectPreferredTranscodeVideoAudioCodecHelp": "వీడియో కంటెంట్ కోసం ట్రాన్స్కోడ్ చేయడానికి ప్రాధాన్య ఆడియో కోడెక్ను ఎంచుకోండి. ప్రాధాన్య కోడెక్కు మద్దతు లేకపోతే, సర్వర్ తదుపరి అందుబాటులో ఉన్న ఉత్తమ కోడెక్ను ఉపయోగిస్తుంది.",
+ "ShowParentImages": "సిరీస్ చిత్రాలను చూపించు",
+ "StreamCountExceedsLimit": "స్ట్రీమ్ల సంఖ్య పరిమితిని మించిపోయింది",
+ "SubtitleLightGray": "లేత బూడిద రంగు",
+ "SubtitleGreen": "ఆకుపచ్చ",
+ "Track": "ట్రాక్",
+ "TypeOptionPluralMusicArtist": "సంగీత కళాకారులు",
+ "TypeOptionPluralAudio": "ఆడియోలు",
+ "UnknownError": "తెలియని లోపం సంభవించింది.",
+ "LabelImageInterval": "చిత్ర విరామం",
+ "UseEpisodeImagesInNextUp": "'తదుపరిది' మరియు 'చూడటం కొనసాగించు' విభాగాలలో ఎపిసోడ్ చిత్రాలను ఉపయోగించండి",
+ "LabelProcessPriority": "ప్రక్రియ ప్రాధాన్యత",
+ "LabelWidthResolutionsHelp": "ట్రిక్ప్లే చిత్రాలు రూపొందించబడే వెడల్పుల (px) కామాతో వేరు చేయబడిన జాబితా. అన్ని చిత్రాలు మూలానికి అనులోమానుపాతంలో రూపొందించబడాలి, కాబట్టి 16:9 వీడియోలో 320 వెడల్పు 320x180 చుట్టూ ముగుస్తుంది.",
+ "PluginUninstallError": "ప్లగిన్ను అన్ఇన్స్టాల్ చేస్తున్నప్పుడు లోపం సంభవించింది.",
+ "LabelProcessPriorityHelp": "దీన్ని తక్కువగా లేదా ఎక్కువగా సెట్ చేయడం వలన సీపీయూ ఇతర ప్రక్రియలకు సంబంధించి ffmpeg ట్రిక్ప్లే జనరేషన్ ప్రాసెస్కు ఎలా ప్రాధాన్యత ఇస్తుందో నిర్ణయిస్తుంది. ట్రిక్ప్లే చిత్రాలను ఉత్పత్తి చేస్తున్నప్పుడు మీరు మందగమనాన్ని గమనించినప్పటికీ వాటి జనరేషన్ను పూర్తిగా ఆపకూడదనుకుంటే, థ్రెడ్ కౌంట్తో పాటు దీన్ని తగ్గించడానికి ప్రయత్నించండి.",
+ "LabelJpegQuality": "జెపిఇజి నాణ్యత",
+ "LabelTileWidthHelp": "X దిశలో ప్రతి టైల్కు గరిష్ట సంఖ్యలో చిత్రాలు.",
+ "LabelTrickplayThreadsHelp": "ffmpeg యొక్క '-థ్రెడ్లు' ఆర్గ్యుమెంట్కు పాస్ చేయాల్సిన థ్రెడ్ల సంఖ్య.",
+ "LabelExtractTrickplayDuringLibraryScanHelp": "లైబ్రరీ స్కాన్ సమయంలో వీడియోలు దిగుమతి అయినప్పుడు ట్రిక్ప్లే చిత్రాలను రూపొందించండి. లేకపోతే, ట్రిక్ప్లే చిత్రాల షెడ్యూల్ చేయబడిన పని సమయంలో అవి సంగ్రహించబడతాయి. జనరేషన్ను నాన్-బ్లాకింగ్కు సెట్ చేస్తే లైబ్రరీ స్కాన్ పూర్తి కావడానికి పట్టే సమయాన్ని ఇది ప్రభావితం చేయదు.",
+ "SettingsPageLoadError": "సెట్టింగ్ల పేజీని లోడ్ చేయడంలో విఫలమైంది",
+ "ReadInputAtNativeFramerate": "నేటివ్ ఫ్రేమ్ రేట్లో ఇన్పుట్ను చదవండి",
+ "ReadInputAtNativeFramerateHelp": "ఈ ఎంపికను ప్రారంభించడం వలన కొన్ని సమస్యలు పరిష్కరించబడవచ్చు, ఉదా. ప్రత్యక్ష ప్రసారాలు ముందుగానే ఆగిపోవడం.",
+ "PlaybackErrorPlaceHolder": "ఇది జెల్లీఫిన్ ప్లే చేయలేని భౌతిక మీడియా కోసం ఒక ప్లేస్హోల్డర్. ప్లే చేయడానికి డిస్క్ను చొప్పించండి.",
+ "PreferNonstandardArtistsTag": "అందుబాటులో ఉంటే ARTISTS ట్యాగ్కు ప్రాధాన్యత ఇవ్వండి",
+ "TypeOptionPluralEpisode": "ఎపిసోడ్లు",
+ "TextSent": "టెక్స్ట్ పంపబడింది.",
+ "LabelExtractTrickplayDuringLibraryScan": "లైబ్రరీ స్కాన్ సమయంలో ట్రిక్ప్లే చిత్రాలను సంగ్రహించండి",
+ "Studio": "స్టూడియో",
+ "SubtitleBlack": "నలుపు",
+ "SaveLyricsIntoMediaFolders": "సాహిత్యాన్ని మీడియా ఫోల్డర్లలో సేవ్ చేయండి",
+ "ScreenResolution": "స్క్రీన్ స్పష్టత",
+ "SubtitleRed": "ఎరుపు",
+ "SubtitleGray": "బూడిద రంగు",
+ "TypeOptionPluralVideo": "వీడియోలు",
+ "TypeOptionPluralSeries": "టీవీ కార్యక్రమాలు",
+ "LabelTileHeight": "టైల్ ఎత్తు",
+ "SubtitleCyan": "నీలి నీలం",
+ "SubtitleBlue": "నీలం",
+ "LabelJpegQualityHelp": "ట్రిక్ప్లే చిత్రాల కోసం జెపిఇజి కంప్రెషన్ నాణ్యత.",
+ "Print": "ప్రింట్",
+ "PlaylistPublicDescription": "ఈ ప్లేజాబితాను లాగిన్ అయిన ఏ యూజర్ అయినా వీక్షించడానికి అనుమతించండి.",
+ "PlaylistError.AddFailed": "ప్లేజాబితాకు జోడించడంలో లోపం",
+ "UploadCustomImage": "కస్టమ్ ఇమేజ్ను అప్లోడ్ చేయండి",
+ "SubtitleMagenta": "మెజెంటా",
+ "UseEpisodeImagesInNextUpHelp": "'తదుపరిది' మరియు 'చూడటం కొనసాగించు' విభాగాలు షో యొక్క ప్రాథమిక థంబ్నెయిల్కు బదులుగా ఎపిసోడ్ చిత్రాలను థంబ్నెయిల్లుగా ఉపయోగిస్తాయి.",
+ "PleaseConfirmRepositoryInstallation": "పైన పేర్కొన్నది చదివారని మరియు ప్లగిన్ రిపోజిటరీ ఇన్స్టాలేషన్తో కొనసాగాలనుకుంటున్నారని నిర్ధారించడానికి దయచేసి సరే క్లిక్ చేయండి.",
+ "PluginDisableError": "ప్లగిన్ను నిలిపివేస్తున్నప్పుడు లోపం సంభవించింది.",
+ "StereoDownmixAlgorithmHelp": "మల్టీ-ఛానల్ ఆడియోను స్టీరియోకు డౌన్మిక్స్ చేయడానికి ఉపయోగించే అల్గోరిథం.",
+ "TypeOptionPluralBoxSet": "బాక్స్ సెట్లు",
+ "Translator": "అనువదించు",
+ "PlaylistPublic": "పబ్లిక్ యాక్సెస్ను అనుమతించండి",
+ "PluginLoadConfigError": "ప్లగిన్ ఆకృతీకరణ పేజీలను పొందుతున్నప్పుడు లోపం సంభవించింది.",
+ "Regional": "ప్రాంతీయ",
+ "PreferEmbeddedExtrasTitlesOverFileNames": "అదనపు లక్షణాల కోసం ఫైల్ పేర్ల కంటే ఎంబెడెడ్ శీర్షికలను ఇష్టపడండి",
+ "SubtitleWhite": "తెలుపు",
+ "SubtitleYellow": "పసుపు",
+ "ResolutionMatchSource": "మూలాన్ని సరిపోల్చండి",
+ "UserMenu": "వినియోగదారు మెనూ",
+ "SecondarySubtitles": "ద్వితీయ ఉపశీర్షికలు",
+ "UseCustomTagDelimiters": "కస్టమ్ ట్యాగ్ డీలిమిటర్ని ఉపయోగించండి",
+ "UseCustomTagDelimitersHelp": "కస్టమ్ అక్షరాలతో కళాకారుడు/శైలి ట్యాగ్లను విభజించండి.",
+ "LabelWidthResolutions": "వెడల్పు రిజల్యూషన్లు",
+ "LabelQscale": "క్యూస్కేల్",
+ "ExtractTrickplayImagesHelp": "ట్రిక్ప్లే చిత్రాలు చాప్టర్ చిత్రాల మాదిరిగానే ఉంటాయి, కానీ అవి కంటెంట్ మొత్తం పొడవునా విస్తరించి ఉంటాయి మరియు వీడియోలను స్క్రబ్ చేస్తున్నప్పుడు ప్రివ్యూను చూపించడానికి ఉపయోగించబడతాయి.",
+ "SearchForLyrics": "సాహిత్యం కోసం శోధించండి",
+ "LabelTileWidth": "టైల్ వెడల్పు",
+ "SearchResultsEmpty": "క్షమించండి! \"{0}\" కోసం ఫలితాలు కనుగొనబడలేదు",
+ "LogLoadFailure": "లాగ్ ఫైల్ను లోడ్ చేయడంలో విఫలమైంది. ఇది ఇప్పటికీ చురుకుగా వ్రాయబడి ఉండవచ్చు.",
+ "LabelTileHeightHelp": "Y దిశలో ప్రతి టైల్కు గరిష్ట సంఖ్యలో చిత్రాలు.",
+ "LabelQscaleHelp": "ffmpeg ద్వారా చిత్రాల అవుట్పుట్ యొక్క నాణ్యత స్కేల్, 2 అత్యధిక నాణ్యత మరియు 31 అత్యల్ప నాణ్యత.",
+ "LabelTrickplayThreads": "FFmpeg థ్రెడ్లు",
+ "RenderPgsSubtitle": "ప్రయోగాత్మక పీజీఎస్ ఉపశీర్షిక రెండరింగ్",
+ "LabelImageIntervalHelp": "ప్రతి కొత్త ట్రిక్ప్లే చిత్రం మధ్య సమయ విరామం (ms).",
+ "Typewriter": "టైప్రైటర్",
+ "OptionExtractTrickplayImage": "ట్రిక్ప్లే ఇమేజ్ సంగ్రహణను ప్రారంభించండి",
+ "AllowEmbeddedSubtitlesAllowImageOption": "చిత్రాన్ని అనుమతించు",
+ "AllowEmbeddedSubtitlesAllowTextOption": "టెక్స్ట్ను అనుమతించు",
+ "ViewLyrics": "సాహిత్యాన్ని వీక్షించండి",
+ "Retry": "మళ్ళీ ప్రయత్నించండి",
+ "Remixer": "రీమిక్సర్",
+ "Production": "ఉత్పత్తి",
+ "ReplaceTrickplayImages": "ఇప్పటికే ఉన్న ట్రిక్ప్లే చిత్రాలను భర్తీ చేయండి",
+ "TypeOptionPluralMusicAlbum": "సంగీత ఆల్బమ్లు",
+ "LabelTrackGain": "ట్రాక్ లాభం",
+ "AllowEmbeddedSubtitlesAllowNoneOption": "ఎవరినీ అనుమతించవద్దు",
+ "PluginLoadRepoError": "రిపోజిటరీ నుండి ప్లగిన్ వివరాలను పొందుతున్నప్పుడు లోపం సంభవించింది."
}
From f78ac5b88874db9093ef24beb4284fd5c5375513 Mon Sep 17 00:00:00 2001
From: Sami Heino
Date: Mon, 28 Apr 2025 04:07:37 -0400
Subject: [PATCH 106/645] Translated using Weblate (Finnish) Translation:
Jellyfin/Jellyfin Web Translate-URL:
https://translate.jellyfin.org/projects/jellyfin/jellyfin-web/fi/
---
src/strings/fi.json | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/src/strings/fi.json b/src/strings/fi.json
index 4c4a0d1b1..99d3b2429 100644
--- a/src/strings/fi.json
+++ b/src/strings/fi.json
@@ -243,7 +243,7 @@
"Album": "Albumi",
"Played": "Toistetut",
"PlayFromBeginning": "Toista alusta",
- "PlayNext": "Toista seuraava",
+ "PlayNext": "Toista seuraavaksi",
"Play": "Toista",
"PinCodeResetConfirmation": "Haluatko varmasti poistaa Helppo PIN -koodin?",
"People": "Ihmiset",
From ce41095ba97b92732d5a65004b6a1e9b35f750fb Mon Sep 17 00:00:00 2001
From: besart-hajdari
Date: Mon, 28 Apr 2025 04:53:26 -0400
Subject: [PATCH 107/645] Translated using Weblate (Albanian) Translation:
Jellyfin/Jellyfin Web Translate-URL:
https://translate.jellyfin.org/projects/jellyfin/jellyfin-web/sq/
---
src/strings/sq.json | 4 +++-
1 file changed, 3 insertions(+), 1 deletion(-)
diff --git a/src/strings/sq.json b/src/strings/sq.json
index 0a33f7a97..79de1cc9b 100644
--- a/src/strings/sq.json
+++ b/src/strings/sq.json
@@ -584,5 +584,7 @@
"HeaderSyncPlaySelectGroup": "Bashkohuni një grupi",
"DirectStreamHelp2": "Energjia e konsumuar nga transmetimi i drejtpërdrejtë zakonisht varet nga profili i audios. Vetëm transmetimi i videove është pa humbje.",
"EnableDetailsBannerHelp": "Shfaqni një imazh baneri në krye të faqes së artikullit.",
- "AirPlay": "AirPlay"
+ "AirPlay": "AirPlay",
+ "AllowContentWithTagsHelp": "Shfaq vetëm median që ka të paktën një nga etiketat e specifikuara.",
+ "AllowSubtitleManagement": "Lejoje këtë përdorues të redaktojë titrat"
}
From 01c4cacd38565c842b52d0f464dd8f4373bac23e Mon Sep 17 00:00:00 2001
From: Francesco Lo Faro
Date: Mon, 28 Apr 2025 12:13:37 -0400
Subject: [PATCH 108/645] Translated using Weblate (Italian) Translation:
Jellyfin/Jellyfin Web Translate-URL:
https://translate.jellyfin.org/projects/jellyfin/jellyfin-web/it/
---
src/strings/it.json | 6 +++++-
1 file changed, 5 insertions(+), 1 deletion(-)
diff --git a/src/strings/it.json b/src/strings/it.json
index c841f1ed2..04d6d9672 100644
--- a/src/strings/it.json
+++ b/src/strings/it.json
@@ -2022,5 +2022,9 @@
"ImageUploadCancelled": "Caricamento immagine annullato",
"ImageUploadFailed": "Caricamento immagine non riuscito",
"ImageDeleteFailed": "Eliminazione immagine non riuscita",
- "UploadCustomImage": "Carica immagine personalizzata"
+ "UploadCustomImage": "Carica immagine personalizzata",
+ "LabelGroupShowsIntoCollectionsHelp": "Le serie in una collezione verranno mostrate come un elemento di gruppo quando vengono mostrate le liste di serie.",
+ "LimitSegmentLength": "Usa segmenti HLS più corti",
+ "LimitSegmentLengthHelp": "Abilitare questa opzione può aiutare ad evitare che il lettore HLS si blocchi mentre si ricerca su alcuni dispositivi, come le TV webOS.",
+ "LabelGroupShowsIntoCollections": "Raggruppa le serie in collezioni"
}
From c31dbc21c07c6f9414242760e57d6bc80a5db9b4 Mon Sep 17 00:00:00 2001
From: Dan Tsivinsky
Date: Mon, 28 Apr 2025 11:19:42 -0400
Subject: [PATCH 109/645] Translated using Weblate (Russian) Translation:
Jellyfin/Jellyfin Web Translate-URL:
https://translate.jellyfin.org/projects/jellyfin/jellyfin-web/ru/
---
src/strings/ru.json | 4 +++-
1 file changed, 3 insertions(+), 1 deletion(-)
diff --git a/src/strings/ru.json b/src/strings/ru.json
index 6be97fb0d..c6b60fb74 100644
--- a/src/strings/ru.json
+++ b/src/strings/ru.json
@@ -2024,5 +2024,7 @@
"LabelGroupShowsIntoCollections": "Группировать сериалы в коллекции",
"LabelGroupShowsIntoCollectionsHelp": "Сериалы в коллекции будут отображаться как один элемент при отображении списка сериалов.",
"ReadInputAtNativeFramerate": "Вычитывать данные в исходной частоте кадров",
- "ReadInputAtNativeFramerateHelp": "Включение этой опции может исправить некоторые проблемы, например, остановку прямых трансляций."
+ "ReadInputAtNativeFramerateHelp": "Включение этой опции может исправить некоторые проблемы, например, остановку прямых трансляций.",
+ "LimitSegmentLength": "Используйте короткие HLS сегменты",
+ "LimitSegmentLengthHelp": "Включение этой опции может помочь предотвратить зависание HLS-плеера во время перемотки на некоторых устройствах, например, на телевизорах с webOS."
}
From 412a141323fa7410c012b905c9700be2e3a9263e Mon Sep 17 00:00:00 2001
From: Blackspirits
Date: Mon, 28 Apr 2025 15:31:45 -0400
Subject: [PATCH 110/645] Translated using Weblate (Portuguese (Portugal))
Translation: Jellyfin/Jellyfin Web Translate-URL:
https://translate.jellyfin.org/projects/jellyfin/jellyfin-web/pt_PT/
---
src/strings/pt-pt.json | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/src/strings/pt-pt.json b/src/strings/pt-pt.json
index 96d7361cd..346af3195 100644
--- a/src/strings/pt-pt.json
+++ b/src/strings/pt-pt.json
@@ -1674,7 +1674,7 @@
"Scene": "Cena",
"Interview": "Entrevista",
"DeletedScene": "Cenas removidas",
- "BehindTheScenes": "Nos bastidores",
+ "BehindTheScenes": "Bastidores",
"DownloadAll": "Transferir tudo",
"MessageNoItemsAvailable": "Nenhum item disponível atualmente.",
"MessageNoFavoritesAvailable": "Não existem favoritos atualmente disponíveis.",
From f9f1f11406f9e0444874c6b1dd97815e3ac012d8 Mon Sep 17 00:00:00 2001
From: Blackspirits
Date: Mon, 28 Apr 2025 15:16:18 -0400
Subject: [PATCH 111/645] Translated using Weblate (Portuguese) Translation:
Jellyfin/Jellyfin Web Translate-URL:
https://translate.jellyfin.org/projects/jellyfin/jellyfin-web/pt/
---
src/strings/pt.json | 6 +++---
1 file changed, 3 insertions(+), 3 deletions(-)
diff --git a/src/strings/pt.json b/src/strings/pt.json
index afc97ac23..450b89890 100644
--- a/src/strings/pt.json
+++ b/src/strings/pt.json
@@ -1342,7 +1342,7 @@
"Engineer": "Engenheiro de som",
"DisableCustomCss": "Desativar código CSS personalizado fornecido pelo servidor",
"Console": "Consola",
- "Conductor": "Condutor",
+ "Conductor": "Maestro",
"Casual": "Casual",
"ButtonBackspace": "Retrocesso",
"GoogleCastUnsupported": "Google Cast não compatível",
@@ -1729,7 +1729,7 @@
"DirectPlayError": "Ocorreu um erro ao iniciar a reprodução direta",
"Short": "Curto",
"Clip": "Clipe",
- "BehindTheScenes": "Por trás das cenas",
+ "BehindTheScenes": "Bastidores",
"DeletedScene": "Cena deletada",
"Interview": "Entrevista",
"LabelVideoRangeType": "Tipo de gama de vídeo",
@@ -1741,7 +1741,7 @@
"AllowAv1Encoding": "Permitir codificação no formato AV1",
"AiTranslated": "IA traduzida",
"MachineTranslated": "Traduzido automaticamente",
- "AnamorphicVideoNotSupported": "O vídeo anamórfico não é compatível",
+ "AnamorphicVideoNotSupported": "Vídeos anamórficos não são suportados",
"InterlacedVideoNotSupported": "Vídeo entrelaçado não é compatível",
"EnableEnhancedNvdecDecoderHelp": "Implementação NVDEC melhorada, desativa esta opção e utiliza CUVID no caso de encontrares erros de descodificação.",
"AudioChannelsNotSupported": "O número de canais de áudio não é suportado",
From f4e6a9d90e155697be7322b3336bcf14a7514903 Mon Sep 17 00:00:00 2001
From: Ahmed Moussa
Date: Tue, 29 Apr 2025 02:29:51 -0400
Subject: [PATCH 112/645] Translated using Weblate (Arabic) Translation:
Jellyfin/Jellyfin Web Translate-URL:
https://translate.jellyfin.org/projects/jellyfin/jellyfin-web/ar/
---
src/strings/ar.json | 127 ++++++++++++++++++++++++++++++++++++++++++--
1 file changed, 123 insertions(+), 4 deletions(-)
diff --git a/src/strings/ar.json b/src/strings/ar.json
index 3608e3499..2c884445e 100644
--- a/src/strings/ar.json
+++ b/src/strings/ar.json
@@ -1129,7 +1129,7 @@
"PackageInstallFailed": "{0} (الإصدار {1}) فشل تثبيت.",
"PackageInstallCompleted": "اكتمل تثبيت {0} (الإصدار {1}).",
"PackageInstallCancelled": "تم إلغاء تثبيت {0} (الإصدار {1}).",
- "Overview": "ملخص",
+ "Overview": "نظرة عامة",
"OptionRequirePerfectSubtitleMatchHelp": "سيؤدي طلب التطابق التام إلى تصفية الترجمات المصاحبة لتشمل فقط تلك التي تم اختبارها والتحقق منها بملف الفيديو الخاص بك بالضبط. سيؤدي إلغاء تحديد هذا إلى زيادة احتمالية تنزيل الترجمات المصاحبة ، لكنني سأزيد من فرص نص الترجمة الخاطئ أو غير الصحيح.",
"OptionRegex": "ريجكس",
"OptionRandom": "عشوائي",
@@ -1433,7 +1433,7 @@
"LabelPersonRoleHelp": "مثال: سائق شاحنة الآيس كريم",
"LabelPersonRole": "دور",
"LabelPasswordResetProvider": "مزود إعادة تعيين كلمة المرور",
- "LabelOverview": "ملخص",
+ "LabelOverview": "نظرة عامة",
"LabelOriginalTitle": "العنوان الأصلي",
"LabelOriginalName": "الاسم الاصلي",
"LabelOriginalAspectRatio": "النسبة البعدينية الأصلية",
@@ -1596,7 +1596,7 @@
"LabelTonemappingThresholdHelp": "يتم ضبط معلمات خوارزمية تعيين النغمة لكل مشهد. ويتم استخدام عتبة لاكتشاف ما إذا كان المشهد قد تغير أم لا. إذا تجاوزت المسافة بين متوسط سطوع الإطار الحالي ومتوسط التشغيل الحالي قيمة عتبة ، فسنقوم بإعادة حساب متوسط سطوع المشهد وذروة السطوع. القيم الموصي بها والافتراضية هي 0.8 و 0.2.",
"LabelTonemappingThreshold": "حد تعيين النغمة",
"LabelTonemappingRange": "نطاق تعيين النغمة",
- "LabelTonemappingPeakHelp": "تجاوز الإشارة / الذروة الاسمية / المرجعية بهذه القيمة. يكون مفيدًا عندما تكون معلومات الذروة المضمنة في البيانات الوصفية للعرض غير موثوقة أو عند تعيين درجة اللون من نطاق أقل إلى نطاق أعلى. القيم الموصي بها والافتراضية هي 100 و 0.",
+ "LabelTonemappingPeakHelp": "تجاوز قيمة البيانات الوصفية المضمنة لإشارة الإدخال بقيمة الذروة هذه بدلاً من ذلك. القيمة الافتراضية هي 100 (1000nit).",
"LabelTonemappingPeak": "ذروة رسم الخرائط",
"Cursive": "متّصل",
"LabelHardwareEncodingOptions": "خيارات ترميز الأجهزة",
@@ -1858,5 +1858,124 @@
"LabelLevel": "المستوى",
"LabelDropLyricsHere": "ضع الكلمات هنا, أو إضغط على تفصح.",
"LabelInstalled": "مثبت",
- "LabelQsvDevice": "جهاز QSV"
+ "LabelQsvDevice": "جهاز QSV",
+ "CustomSplashScreenSize": "يجب أن تكون الصور المخصصة بنسبة عرض إلى ارتفاع 16 × 9 بحجم لا يقل عن 1920 × 1080.",
+ "ImageUploadFailed": "فشل تحميل الصورة",
+ "LabelDelimiterWhitelistHelp": "العناصر التي سيتم استبعادها من تقسيم العلامات. عنصر واحد لكل سطر.",
+ "LabelFallbackMaxStreamingBitrate": "معدل البت الأقصى للبث الاحتياطي (ميغابت في الثانية)",
+ "LabelMediaSegmentProviders": "مزودو مقاطع الوسائط",
+ "LabelMediaSegmentsType": "{0} مقطع/مقاطع",
+ "LabelParallelImageEncodingLimitHelp": "الحد الأقصى لعدد ترميزات الصور المسموح بتشغيلها بالتوازي. سيؤدي ترك هذا فارغًا إلى اختيار حد يستند إلى عدد النواة الأساسية لأنظمتك.",
+ "LabelQsvDeviceHelp": "حدد الجهاز الخاص ب Intel QSV على نظام متعدد وحدات معالجة الرسومات. في نظام Linux، هذا هو عقدة التصيير، على سبيل المثال، /dev/dri/renderD128. في نظام ويندوز، هذا هو فهرس الجهاز بدءًا من 0. اتركه فارغًا إلا إذا كنت تعرف ما تفعله.",
+ "LabelScreensaverTime": "مهلة شاشة التوقف",
+ "LabelSaveTrickplayLocally": "حفظ صور المعاينة السريعة بجوار الوسائط",
+ "PlaylistError.CreateFailed": "خطأ في إنشاء قائمة التشغيل",
+ "PlaylistError.UpdateFailed": "خطأ أثناء تحديث قائمة التشغيل",
+ "LabelScreensaverTimeHelp": "مقدار الوقت بالثواني من عدم النشاط المطلوب لبدء تشغيل شاشة التوقف.",
+ "LogLevel.Debug": "تنقيح",
+ "LibraryScanFanoutConcurrencyHelp": "الحد الأقصى لعدد المهام المتوازية أثناء عمليات مسح المكتبة. سيؤدي ترك هذا الرقم فارغاً إلى اختيار حد استناداً إلى عدد النواة في أنظمتك. تحذير: قد يتسبب تعيين هذا الرقم عالٍ جداً في حدوث مشاكل مع أنظمة ملفات الشبكة؛ إذا واجهت مشاكل قم بتخفيض هذا الرقم.",
+ "LimitSegmentLengthHelp": "قد يساعد تمكين هذا الخيار في منع تعليق مشغل HLS أثناء البحث على أجهزة معينة، مثل أجهزة تلفاز webOS.",
+ "PlaybackError.ASS_RENDER_ERROR": "تمت مواجهة خطأ في عارض الترجمة ASS/SSA.",
+ "LimitSupportedVideoResolution": "تحديد الحد الأقصى لدقة الفيديو المدعومة",
+ "SelectPreferredTranscodeVideoCodecHelp": "حدد برنامج ترميز الفيديو المفضل لتحويل الترميز إليه. إذا كان برنامج الترميز المفضل غير مدعوم، سيستخدم الخادم أفضل برنامج ترميز متاح تالياً.",
+ "ListView": "عرض القائمة",
+ "NativeSubtitleStylingHelp": "لن يعمل تصميم الترجمة على بعض الأجهزة. ومع ذلك، فإنه لا يترافق معه أي عبء على الأداء.",
+ "PasswordMissingSaveError": "لا يمكن أن تكون كلمة المرور الجديدة فارغة.",
+ "PlaylistPublicDescription": "السماح بعرض قائمة التشغيل هذه من قبل أي مستخدم قام بتسجيل الدخول.",
+ "PleaseConfirmRepositoryInstallation": "يُرجى النقر فوق موافق لتأكيد أنك قرأت ما ورد أعلاه وترغب في متابعة تثبيت المكونات الإضافات.",
+ "PluginLoadConfigError": "حدث خطأ أثناء الحصول على صفحات تكوين المكون الإضافي.",
+ "PreferEmbeddedExtrasTitlesOverFileNames": "تفضيل العناوين المضمنة على أسماء الملفات للإضافات",
+ "PreferEmbeddedExtrasTitlesOverFileNamesHelp": "غالبًا ما يكون للإضافات نفس الاسم المضمن مثل الأصل، تحقق من ذلك لاستخدام العناوين المضمنة لها على أي حال.",
+ "PreviewLyrics": "معاينة كلمات الأغاني",
+ "ReadInputAtNativeFramerate": "قراءة المدخلات بمعدل الإطارات الأصلي",
+ "RenderPgsSubtitleHelp": "تحديد ما إذا كان يجب على العميل عرض ترجمات PGS بدلاً من استخدام الترجمات المنسوخة في الترجمة. يمكن أن يؤدي ذلك إلى تجنب تحويل الترميز من جانب الخادم مقابل أداء العرض من جانب العميل.",
+ "SaveRecordingNFOHelp": "حفظ البيانات الوصفية من مزود قوائم EPG إلى جانب الوسائط.",
+ "SaveLyricsIntoMediaFolders": "حفظ كلمات الأغاني في مجلدات الوسائط",
+ "SaveLyricsIntoMediaFoldersHelp": "سيسمح تخزين كلمات الأغاني بجوار الملفات الصوتية بإدارتها بسهولة أكبر.",
+ "SaveRecordingNFO": "حفظ البيانات الوصفية لتسجيل EPG في ملف NFO",
+ "NonBlockingScan": "عدم الحجب - التوليد في قائمة الانتظار، ثم الإرجاع",
+ "LabelScanBehaviorHelp": "السلوك الافتراضي هو عدم الحجب، والذي سيضيف الوسائط إلى المكتبة قبل أن يتم إنشاء صور المعاينة السريعة. سيضمن الحظر إنشاء صور المعاينة السريعة قبل إضافة الوسائط إلى المكتبة، ولكنه سيجعل عمليات المسح أطول بكثير.",
+ "LabelProcessPriorityHelp": "سيحدد ضبط هذا الأمر على مستوى أقل أو أعلى كيفية إعطاء وحدة المعالجة المركزية الأولوية لعملية توليد صور المعاينة السريعة ffmpeg بالنسبة للعمليات الأخرى. إذا لاحظتَ تباطؤًا أثناء توليد صور المعاينة السريعة ولكنك لا تريد إيقاف توليدها بالكامل، حاول خفض هذا الأمر وكذلك عدد خيوط وحدة المعالجة المركزية.",
+ "LabelImageIntervalHelp": "الفاصل الزمني (مللي ثانية) بين كل صور معاينة سريعة جديدة.",
+ "LabelWidthResolutionsHelp": "قائمة مفصولة بفاصلة للعرض (بكسل) التي سيتم إنشاء صور المعاينة السريعة بها. يجب أن يتم توليد جميع الصور بشكل متناسب مع المصدر، لذا فإن عرض 320 على فيديو 16:9 ينتهي بعرض 320 × 180 تقريبًا.",
+ "LabelTileHeight": "ارتفاع القالب",
+ "LabelTrickplayThreads": "خيوط FFmpeg",
+ "LabelTrickplayThreadsHelp": "عدد الخيوط التي يجب تمريرها إلى وسيطة ”threads-“ في ffmpeg.",
+ "OptionExtractTrickplayImage": "تمكين استخراج صور المعاينة السريعة",
+ "LabelGroupShowsIntoCollectionsHelp": "سيتم عرض العروض التليفزيونية كعنصر واحد مجمّع عند عرض قوائم العروض.",
+ "LabelGroupShowsIntoCollections": "تجميع البرامج التلفزيونية في مجموعات",
+ "LabelCustomTagDelimitersHelp": "الأحرف التي سيتم التعامل معها كمحددات لفصل العلامات.",
+ "LabelDelimiterWhitelist": "القائمة البيضاء للمحددات",
+ "LabelRepository": "مستودع",
+ "LabelSubtitleStyling": "تنسيق الترجمة النصية",
+ "MoveToBottom": "انتقل إلى الأسفل",
+ "ReplaceTrickplayImages": "استبدال صور المعاينة السريعة الموجودة",
+ "RetryWithGlobalSearch": "إعادة المحاولة باستخدام بحث شامل",
+ "Reset": "إعادة تعيين",
+ "SearchForLyrics": "البحث عن كلمات الأغاني",
+ "LabelSelectPreferredTranscodeVideoCodec": "برنامج ترميز الفيديو المفضل لتحويل الترميز",
+ "Letterer": "حرفي",
+ "LimitSupportedVideoResolutionHelp": "استخدم ”الدقة القصوى المسموح بها لتحويل ترميز الفيديو“ كحد أقصى لدقة الفيديو المدعومة.",
+ "LogLevel.Trace": "تتبع",
+ "MediaSegmentProvidersHelp": "قم بتمكين وترتيب موفري قطاع الوسائط المفضلين لديك حسب الأولوية.",
+ "MessageCancelSeriesTimerError": "حدث خطأ أثناء إلغاء المؤقت المتسلسل",
+ "MessageCancelTimerError": "حدث خطأ أثناء إلغاء المؤقت",
+ "MetadataNfoLoadError": "فشل في تحميل إعدادات NFO للبيانات الوصفية",
+ "MoveToTop": "انتقل إلى الأعلى",
+ "PageNotFound": "هذه ليست الصفحة التي تبحث عنها.",
+ "MediaSegmentAction.AskToSkip": "اطلب التخطي",
+ "ResolutionMatchSource": "تطابق المصدر",
+ "BlockingScan": "الحجب - إنشاء قوائم الانتظار، وحجب الفحص حتى اكتماله",
+ "LabelWidthResolutions": "دقة العرض",
+ "LabelQscale": "مقياس الجودة",
+ "LabelQscaleHelp": "مقياس جودة الصور التي يُخرجها ffmpeg، حيث يمثل الرقم 2 أعلى جودة والرقم 31 أدنى جودة.",
+ "SaveRecordingImagesHelp": "حفظ الصور من مزود قوائم EPG إلى جانب الوسائط.",
+ "LabelParallelImageEncodingLimit": "حد ترميز الصور المتوازية",
+ "LastActive": "آخر نشاط",
+ "LyricDownloadersHelp": "قم بتمكين وترتيب أدوات تنزيل الأغاني المفضلة لديك حسب الأولوية.",
+ "MediaSegmentSkipPrompt": "تخطي {0}",
+ "MediaSegmentType.Intro": "مقدمة",
+ "MessageRepositoryInstallDisclaimer": "تحذير: تنطوي عملية تثبيت مستودع ملحقات الطرف الثالث على مخاطر. قد تحتوي على تعليمات برمجية غير مستقرة أو ضارة، وقد تتغير في أي وقت. قم فقط بتثبيت المستودعات من المطورين الذين تثق بهم.",
+ "PlaybackError.MEDIA_DECODE_ERROR": "فشل التشغيل بسبب خطأ في فك تشفير الوسائط.",
+ "PlaybackError.FATAL_HLS_ERROR": "حدث خطأ فادح في دفق HLS.",
+ "PlaybackError.RateLimitExceeded": "لا يمكن تشغيل هذه الوسائط في الوقت الحالي بسبب حدود المعدل.",
+ "PlaylistError.AddFailed": "خطأ أثناء الإضافة إلى قائمة التشغيل",
+ "PluginUninstallError": "حدث خطأ أثناء إلغاء تثبيت المكون الاضافي.",
+ "PreferNonstandardArtistsTag": "يفضل علامة الفنانين إذا كانت متوفرة",
+ "SaveRecordingImages": "حفظ تسجيل صور EPG",
+ "LabelSaveTrickplayLocallyHelp": "إن حفظ صور المعاينة السريعة في مجلدات الوسائط سيضعها بجوار وسائطك، مما يسهل عملية النقل والوصول إليها.",
+ "LibraryScanFanoutConcurrency": "حد مهام مسح المكتبة الموازية",
+ "LimitSegmentLength": "استخدام مقاطع HLS أقصر",
+ "Lyrics": "كلمات",
+ "MediaSegmentType.Outro": "الخاتمة",
+ "MediaSegmentType.Preview": "معاينة",
+ "MediaSegmentType.Recap": "ملخص",
+ "MessageSplitVersionsError": "حدث خطأ أثناء تقسيم الإصدارات",
+ "MoviesAndShows": "الأفلام و المسلسلات التلفزيونية",
+ "Native": "اصلي",
+ "PluginLoadRepoError": "حدث خطأ أثناء الحصول على تفاصيل المكون الإضافي من المستودع.",
+ "ReadInputAtNativeFramerateHelp": "قد يؤدي تمكين هذا الخيار إلى حل بعض المشكلات، مثل توقف البث المباشر قبل الأوان.",
+ "Regional": "إقليمي",
+ "LabelImageInterval": "الفاصل الزمني للصور",
+ "LabelTileHeightHelp": "الحد الأقصى لعدد الصور لكل لوحة في اتجاه المحور العمودي/الرأسي.",
+ "LibraryInvalidItemIdError": "المكتبة في حالة غير صالحة ولا يمكن تحريرها. من المحتمل أنك تواجه خطأ: المسار في قاعدة البيانات ليس هو المسار الصحيح على نظام الملفات.",
+ "PluginEnableError": "حدث خطأ أثناء تمكين المكون الإضافي.",
+ "LabelTileWidthHelp": "العدد الأقصى للصور لكل بلاطة في اتجاه المحور الأفقي.",
+ "RenderPgsSubtitle": "عرض ترجمة PGS التجريبي",
+ "MediaInfoRotation": "الدوران",
+ "DeleteCustomImage": "حذف الصورة المخصصة",
+ "ImageDeleteFailed": "فشل حذف الصورة",
+ "ImageUploadCancelled": "تم إلغاء تحميل الصور",
+ "PluginDisableError": "حدث خطأ أثناء تعطيل المكون الإضافي.",
+ "PreferNonstandardArtistsTagHelp": "استخدم علامة الفنانين غير القياسية بدلاً من علامة الفنان عند توفرها.",
+ "PlaylistPublic": "السماح بالوصول العام",
+ "Lyric": "كلمات غنائية",
+ "MetadataImagesLoadError": "فشل تحميل إعدادات البيانات الوصفية",
+ "LabelTileWidth": "عرض القالب",
+ "LabelJpegQualityHelp": "جودة ضغط JPEG لصور المعاينة السريعة.",
+ "MediaSegmentAction.Skip": "تخطي",
+ "MediaSegmentType.Commercial": "تجاري",
+ "MediaSegmentAction.None": "لا يوجد شيء",
+ "NoLyricsSearchResultsFound": "لم يتم العثور على كلمات الأغنية.",
+ "LibraryNameInvalid": "لا يمكن أن يكون اسم المكتبة فارغاً."
}
From 66b21c5925e268b0d26150d1507d0eaa9814cadd Mon Sep 17 00:00:00 2001
From: "Thadah D. Denyse"
Date: Tue, 29 Apr 2025 03:57:22 -0400
Subject: [PATCH 113/645] Translated using Weblate (Basque) Translation:
Jellyfin/Jellyfin Web Translate-URL:
https://translate.jellyfin.org/projects/jellyfin/jellyfin-web/eu/
---
src/strings/eu.json | 12 +++++++++---
1 file changed, 9 insertions(+), 3 deletions(-)
diff --git a/src/strings/eu.json b/src/strings/eu.json
index 0f4f73f2c..d145ce989 100644
--- a/src/strings/eu.json
+++ b/src/strings/eu.json
@@ -959,7 +959,7 @@
"Large": "Handia",
"LanNetworksHelp": "Banda-zabaleraren murrizketak ezartzean sare lokalean kontuan hartuko diren sareetarako IP helbideen zerrenda, komen edo IP/sare-maskara helbideko sarreren bidez bereizita. Ezartzen bada, gainerako IP helbide guztiak kanpoko sarean hartuko dira kontuan, eta kanpoko banda-zabaleraren murrizketei lotuta egongo dira. Hutsik utziz gero, zerbitzariaren azpisarea sare lokalean dagoela baino ez da ulertuko.",
"LabelZipCode": "Posta kodea",
- "LabelYoureDone": "Kito!",
+ "LabelYoureDone": "Amaitu duzu!",
"LabelYear": "Urtea",
"LabelXDlnaDocHelp": "X_DLNADOC elementuaren edukia zehazten du izen espazioan: schemas-dlna-org: device-1-0.",
"LabelXDlnaDoc": "X-DLNA doc",
@@ -1635,7 +1635,7 @@
"AllowSegmentDeletion": "Ezabatu segmentuak",
"AllowSegmentDeletionHelp": "Ezabatu segmentu zaharrak bezeroak deskargatu ondoren. Honela, bihurtutako fitxategi osoa diskoan gordetzea saihesten da. Desgaitu erreproduzitzeko arazoak badituzu.",
"LabelThrottleDelaySeconds": "Throttle buruan",
- "LabelThrottleDelaySecondsHelp": "Denbora segundotan transkodetzailea geldiarazten hasiko den. Bezeroak buffer osasuntsu bat mantentzeko bezain handia izan behar da. Bakarrik funtzionatzen du throttling onartua baldin badago.",
+ "LabelThrottleDelaySecondsHelp": "Transkodetzailea mugatuko den denbora segundotan. Bezeroak buffer osasuntsu bat mantentzeko bezain handia izan behar du. Mugaketa gaituta dagoenean bakarrik funtzionatzen du.",
"LabelSegmentKeepSeconds": "Segmentuak gordetzeko denbora..",
"AirPlay": "AirPlay",
"AllowContentWithTagsHelp": "Erakutsi zehaztutako etiketetik gutxienez bat duen serieen media.",
@@ -1653,5 +1653,11 @@
"LabelExtractTrickplayDuringLibraryScanHelp": "Sortu trickplay irudiak liburutegia eskaneatzean bideoak inportatzen direnean. Bestela, trickplay irudiak programatutako zeregin bezala erauziko dira. Sorkuntza blokeatzen ez bada, horrek ez du eragingo liburutegiko eskaneatzea burutzeko denboran.",
"AllowTonemappingSoftwareHelp": "Tonu-mapatzeak bideo baten barruti dinamikoa HDRtik SDRra alda dezake, irudiaren xehetasunak eta koloreak mantenduz, jatorrizko eszena irudikatzeko oso informazio garrantzitsua baita. Gaur egun 10 biteko HDR10, HLG eta DoVi bideoekin bakarrik funtzionatzen du.",
"MessageRepositoryInstallDisclaimer": "OHARRA: hirugarrenen pluginen biltegi bat instalatzeak arriskuak dakartza. Kode ezegonkorra edo gaiztoa izan dezake eta edozein unetan alda daiteke. Instalatu fidagarriak diren egileen biltegiak soilik.",
- "EncodingFormatHelp": "Hautatu Jellyfin-ek transkodetu behar duen bideo-kodeketa. Jellyfin-ek software-kodeketa erabiliko du hautatutako formaturako hardware-azelerazioa erabilgarri ez dagoenean. H264 kodeketa gaituta egongo da beti."
+ "EncodingFormatHelp": "Hautatu Jellyfin-ek transkodetu behar duen bideo-kodeketa. Jellyfin-ek software-kodeketa erabiliko du hautatutako formaturako hardware-azelerazioa erabilgarri ez dagoenean. H264 kodeketa gaituta egongo da beti.",
+ "LabelTrickplayKeyFrameOnlyExtractionHelp": "Gako-fotogramak soilik atera, prozesaketa askoz azkarragoa lortzeko, denbora-zehaztasuna gutxituz. Konfiguratutako hardware deskodetzaileak modu hau onartzen ez badu, software deskodetzailea erabiliko da horren ordez.",
+ "ExtractTrickplayImagesHelp": "Trickplay irudiak kapitulu-irudien antzekoak dira, baina edukiaren luzera osoa hartzen dute eta bideoetan zehar mugitzean aurrebista bat erakusteko erabiltzen dira.",
+ "SelectPreferredTranscodeVideoAudioCodecHelp": "Hautatu audio kodek hobetsia bideo edukia transkodetzeko. Kodek hobetsia ez bada onartzen, zerbitzariak eskuragarri dagoen hurrengo kodekik onena erabiliko du.",
+ "LabelParallelImageEncodingLimitHelp": "Paraleloan exekutatzeko baimendutako irudi-kodeketa kopuru maximoa. Hutsik uzten baduzu, zure sistemaren nukleo kopuruan oinarritutako muga bat aukeratuko da.",
+ "AllowFmp4TranscodingContainerHelp": "Baimendu sintonizatzaile honetarako fMP4 transkodetze edukiontziari HEVC eta HDR edukiak gaitzea. Sintonizatzaile guztiak ez dira bateragarriak edukiontzi honekin. Desgaitu hau erreprodukzio arazoak badituzu.",
+ "LibraryInvalidItemIdError": "Liburutegia egoera baliogabean dago eta ezin da editatu. Baliteke akats bat izatea: datu-baseko bide-izena ez da fitxategi-sistemako bide-izen zuzena."
}
From 95aeeb172b067b4536fbdc534708056b69b914ce Mon Sep 17 00:00:00 2001
From: Ahmed Moussa
Date: Tue, 29 Apr 2025 04:01:11 -0400
Subject: [PATCH 114/645] Translated using Weblate (Arabic) Translation:
Jellyfin/Jellyfin Web Translate-URL:
https://translate.jellyfin.org/projects/jellyfin/jellyfin-web/ar/
---
src/strings/ar.json | 6 +++++-
1 file changed, 5 insertions(+), 1 deletion(-)
diff --git a/src/strings/ar.json b/src/strings/ar.json
index 2c884445e..6d8d02c14 100644
--- a/src/strings/ar.json
+++ b/src/strings/ar.json
@@ -1977,5 +1977,9 @@
"MediaSegmentType.Commercial": "تجاري",
"MediaSegmentAction.None": "لا يوجد شيء",
"NoLyricsSearchResultsFound": "لم يتم العثور على كلمات الأغنية.",
- "LibraryNameInvalid": "لا يمكن أن يكون اسم المكتبة فارغاً."
+ "LibraryNameInvalid": "لا يمكن أن يكون اسم المكتبة فارغاً.",
+ "ExtractTrickplayImagesHelp": "تتشابه صور المعاينة السريعة مع صور الفصول، باستثناء أنها تمتد على طول المحتوى بالكامل وتستخدم لإظهار معاينة عند التنظيف من خلال مقاطع الفيديو.",
+ "LabelExtractTrickplayDuringLibraryScanHelp": "إنشاء صور المعاينة السريعة عندما يتم استيراد مقاطع الفيديو أثناء فحص المكتبة. خلاف ذلك، سيتم استخراجها أثناء المهمة المجدولة لصور المعاينة السريعة. إذا تم تعيين الإنشاء على عدم الحظر، فلن يؤثر ذلك على الوقت الذي يستغرقه فحص المكتبة حتى يكتمل.",
+ "LogLoadFailure": "فشل تحميل ملف السجل. قد لا يزال من يتم الكتابة إليه بشكل نشط.",
+ "LabelExtractTrickplayDuringLibraryScan": "استخراج صور المعاينة السريعة أثناء فحص المكتبة"
}
From fd9f754740c8742aabc35077ecd2669a7254f425 Mon Sep 17 00:00:00 2001
From: "Thadah D. Denyse"
Date: Tue, 29 Apr 2025 04:01:36 -0400
Subject: [PATCH 115/645] Translated using Weblate (Basque) Translation:
Jellyfin/Jellyfin Web Translate-URL:
https://translate.jellyfin.org/projects/jellyfin/jellyfin-web/eu/
---
src/strings/eu.json | 64 +++++++++++++++++++++++++++++++++++++--------
1 file changed, 53 insertions(+), 11 deletions(-)
diff --git a/src/strings/eu.json b/src/strings/eu.json
index d145ce989..918a906c0 100644
--- a/src/strings/eu.json
+++ b/src/strings/eu.json
@@ -1,5 +1,5 @@
{
- "ThisWizardWillGuideYou": "Laguntzaile horrek instalazio-prozesuan gidatuko du. Hasteko, aukeratu zure hizkuntza hobetsia.",
+ "ThisWizardWillGuideYou": "Laguntzaile honek konfigurazio prozesuan zehar gidatuko zaitu. Hasteko, idatzi zerbitzari-izen bat eta hautatu zure hizkuntza lehenetsia.",
"LabelPreferredSubtitleLanguage": "Azpitituluen hizkuntza hobetsia",
"LabelPreferredDisplayLanguage": "Bistaratze hizkuntza hobetsia",
"LabelMetadataDownloadLanguage": "Deskargatzeko hizkuntza hobetsia",
@@ -65,7 +65,7 @@
"LabelSelectAudioChannels": "Kanalak",
"LabelAllowedAudioChannels": "Baimendutako gehieneko audio-kanalak",
"AllowHevcEncoding": "HEVC formatuan kodetzea baimentzea",
- "PreferFmp4HlsContainerHelp": "Hobetsi fMP4 erabiltzea HLSrako edukiontzi lehenetsi gisa, HEVC eduki zuzena gailu bateragarrietan transmititu ahal izateko.",
+ "PreferFmp4HlsContainerHelp": "Hobetsi fMP4 erabiltzea HLSrako edukiontzi lehenetsi gisa, HEVC eta AV1 eduki zuzena gailu bateragarrietan transmititu ahal izateko.",
"PreferFmp4HlsContainer": "Hobetsi fMP4-HLS multimedia-edukiontzia",
"LabelSyncPlayInfo": "SyncPlay informazioa",
"LabelOriginalMediaInfo": "Jatorrizko multimedia informazioa",
@@ -82,7 +82,7 @@
"AspectRatioCover": "Azala",
"EnableFallbackFontHelp": "Iturri alternatibo pertsonalizatuak aktibatzea. Horrek azpitituluak oker errenderizatzearen arazoa saihets dezake.",
"EnableFallbackFont": "Iturri alternatiboak aktibatzea",
- "LabelFallbackFontPathHelp": "ASS/SSA azpitituluak renderizatzeko iturri alternatiboak dituen bidea zehazten du. Iturriaren gehieneko tamaina 20 MB-koa da. Iturri arineko formatuak eta web bateragarriak, hala nola woff2 gomendatzen dira.",
+ "LabelFallbackFontPathHelp": "Letra-tipo hauek bezero batzuek erabiltzen dituzte azpitituluak errendatzeko. Informazio gehiago lortzeko, jo dokumentaziora.",
"LabelFallbackFontPath": "Iturrien karpeta alternatiboaren helbidea",
"HeaderSelectFallbackFontPathHelp": "Bilatu edo idatzi ASS/SSA azpitituluak errenderizatzeko erabilitako iturri karpeta alternatiboaren helbidea.",
"HeaderSelectFallbackFontPath": "Hautatu iturri alternatiboen karpeta",
@@ -451,7 +451,7 @@
"MessagePleaseWait": "Mesedez, itxaron.",
"MessagePleaseEnsureInternetMetadata": "Ziurtatu metadatuak Internetetik deskargatzea aktibatuta dagoela.",
"MessagePlayAccessRestricted": "Eduki horren erreprodukzioa mugatuta dago. Informazio gehiago nahi izanez gero, jarri harremanetan zerbitzari honen administratzailearekin.",
- "MessagePasswordResetForUsers": "Hurrengo erabiltzaileei pasahitzak berrezarri dizkie. Orain saioa has dezakete berrezartzeko erabili ziren PIN kodeekin.",
+ "MessagePasswordResetForUsers": "Erabiltzaile hauen pasahitzak berrezarri dira. Orain berrezarpena egiteko erabilitako PIN kodeekin saioa has dezakete.",
"MessageNoTrailersFound": "Trailerren kanala instalatu zure esperientzia zinematografikoa hobetzeko, Interneteko trailerren liburutegi bat gehituz.",
"MessageNothingHere": "Hemen ezer ez.",
"MessageNoServersAvailable": "Ez da zerbitzaririk aurkitu zerbitzarien detekzio automatikoa erabilita.",
@@ -546,7 +546,7 @@
"LabelRecord": "Grabatu",
"LabelReasonForTranscoding": "Bihurketa egiteko arrazoia",
"LabelQuickConnectCode": "Konexio azkarreko kodea",
- "LabelPublishedServerUriHelp": "Jellyfinek erabilitako URIa ezeztatzen du, bezeroaren interfazearen edo IP helbidearen arabera.",
+ "LabelPublishedServerUriHelp": "Jellyfinek erabiltzen duen URIa gainidatzi, interfazearen edo bezeroaren IP helbidearen arabera. Adibidez: internal=http://jellyfin.adibidea.com, external=https://jellyfin.adibidea.com edo all=https://jellyfin.adibidea.com",
"LabelPublishedServerUri": "Argitaratutako zerbitzariaren URI",
"LabelPublicHttpsPortHelp": "https tokiko portuarekin lotu behar den portu publikoa.",
"LabelPublicHttpsPort": "https portu publikoa",
@@ -872,7 +872,7 @@
"LabelAudioBitDepth": "Audio-biten sakonera",
"LabelArtistsHelp": "Artista ugari puntu eta koma erabiliz bereiztea.",
"LabelArtists": "Artistak",
- "LabelAppNameExample": "Adibidea: Sickbeard, Sonarr",
+ "LabelAppNameExample": "API gakoak identifikatzeko gizakiek irakur dezaketen izen bat. Ezarpen honek ez du funtzionaltasunean eragingo.",
"LabelAppName": "Aplikazioaren izena",
"LabelAllowHWTranscoding": "Baimendu hardware bidezko transkodetzea",
"LabelAllowedRemoteAddressesMode": "Urruneko IP direkzio-iragazkiaren modua",
@@ -1005,11 +1005,11 @@
"LabelTonemappingThresholdHelp": "Tonuak mapatzeko algoritmoaren parametroak eszena bakoitzean egokitzen dira. Atalase bat erabiltzen da eszena aldatu den ala ez antzemateko. Batez besteko distira egungo fotogramaren eta hurrengoaren arteko atalasetik ateratzen bada, batez besteko eta moko distiraren balioak kalkulatuko dira berriro. 0.8 eta 0.2 balio lehenetsiak gomendatzen dira.",
"LabelTonemappingThreshold": "Tonuaren mapaketaren atalasea",
"LabelTonemappingRange": "Tonuaren mapaketa-tartea",
- "LabelTonemappingPeakHelp": "Balio hori duten erreferentziazko tontorrak ez dira kontuan hartuko. Erabilgarria da irudi-metadatuetan txertatutako moko-informazioa fidagarria ez denean edo tonuen mapaketa maila baxu batetik maila altuago batera egiten denean. 100 eta 0 balio lehenetsiak gomendatzen dira.",
+ "LabelTonemappingPeakHelp": "Gainditu sarrera-seinalearen metadatu txertatuaren balioa gailur-balio honekin. Balio lehenetsia 100 da (1000 nit).",
"LabelTonemappingPeak": "Tonuaren mapaketaren pikoa",
"LabelTonemappingParamHelp": "Tonua mapatzeko algoritmoa doitzea. Gomendatutako eta aurrez zehaztutako balioa NaN da. Normalean, utzi hutsik.",
"LabelTonemappingParam": "Tonuaren mapaketaren parametroak",
- "LabelTonemappingDesatHelp": "Distira-maila hori gainditzen duten aberastasunei saturazioa kentzea. Parametroa zenbat eta gorago, orduan eta kolore-informazio gehiago gordeko da. Doikuntza horri esker, erraz itzaltzen diren kolore altuak pixkanaka zurira aldatzen dira. Horren ondorioz, irudiak naturalagoak dira, tartetik kanpo dauden koloreei buruzko informazioa murriztearen truke. 0 eta 0.5 balio lehenetsiak gomendatzen dira.",
+ "LabelTonemappingDesatHelp": "Aplikatu desaturazioa distira-maila hori gainditzen duten argi-izpietarako. Gomendatutako balioa 0 da (desgaitu).",
"LabelTonemappingDesat": "Tonuen mapaketa gaingabetua",
"LabelTonemappingAlgorithm": "Hautatu tonuak mapatzeko algoritmoa",
"LabelTitle": "Izenburua",
@@ -1402,7 +1402,7 @@
"DirectStreaming": "Zuzeneko streaminga",
"DirectStreamHelp2": "Zuzeneko transmisioak kontsumitutako energia audio-profilaren araberakoa izaten da. Bideo transmisioak bakarrik ez du galerarik.",
"DirectStreamHelp1": "Bideo-transmisioa bateragarria da gailuarekin, baina audio-formatu bateraezina du (DTS, Dolby TrueHD, etab.) edo audio-kanalen kopurua. Bideo-transmisioa berriro paketatuko da, martxan galerarik gabe, gailura bidali aurretik. Audio-transmisioa baino ez da transkodetuko.",
- "DirectPlayHelp": "Jatorrizko fitxategia guztiz bateragarria da bezero honekin, eta saioa fitxategia jasotzen ari da aldaketarik gabe.",
+ "DirectPlayHelp": "Iturburu-fitxategia bezero honekin guztiz bateragarria da eta saioak fitxategia aldaketarik gabe jasotzen ari du.",
"DirectPlaying": "Zuzeneko erreprodukzioa",
"Directors": "Zuzendariak",
"Director": "Zuzendaria",
@@ -1447,7 +1447,7 @@
"ConfirmDeleteItems": "Elementu horiek ezabatzean, artxibo-sistematik zein multimedia-liburutegitik ezabatuko dira. Ziur zaude jarraitu nahi duzula?",
"ConfirmDeleteItem": "Elementu hori ezabatzean, artxibo-sistematik zein multimedia-liburutegitik ezabatuko da. Ziur zaude jarraitu nahi duzula?",
"ConfirmDeleteImage": "Irudia ezabatu?",
- "ConfigureDateAdded": "Konfiguratu nola zehaztuko den eranskinaren data liburutegiaren konfiguraziopeko panelean",
+ "ConfigureDateAdded": "Konfiguratu 'Gehitze-data'-ren metadatuak nola zehazten diren Hasiera > Liburutegiak > Erakutsi atalean",
"Conductor": "Orkestra-zuzendaria",
"Composer": "Konpositorea",
"CommunityRating": "Komunitatearen puntuazioa",
@@ -1659,5 +1659,47 @@
"SelectPreferredTranscodeVideoAudioCodecHelp": "Hautatu audio kodek hobetsia bideo edukia transkodetzeko. Kodek hobetsia ez bada onartzen, zerbitzariak eskuragarri dagoen hurrengo kodekik onena erabiliko du.",
"LabelParallelImageEncodingLimitHelp": "Paraleloan exekutatzeko baimendutako irudi-kodeketa kopuru maximoa. Hutsik uzten baduzu, zure sistemaren nukleo kopuruan oinarritutako muga bat aukeratuko da.",
"AllowFmp4TranscodingContainerHelp": "Baimendu sintonizatzaile honetarako fMP4 transkodetze edukiontziari HEVC eta HDR edukiak gaitzea. Sintonizatzaile guztiak ez dira bateragarriak edukiontzi honekin. Desgaitu hau erreprodukzio arazoak badituzu.",
- "LibraryInvalidItemIdError": "Liburutegia egoera baliogabean dago eta ezin da editatu. Baliteke akats bat izatea: datu-baseko bide-izena ez da fitxategi-sistemako bide-izen zuzena."
+ "LibraryInvalidItemIdError": "Liburutegia egoera baliogabean dago eta ezin da editatu. Baliteke akats bat izatea: datu-baseko bide-izena ez da fitxategi-sistemako bide-izen zuzena.",
+ "RenderPgsSubtitleHelp": "Zehaztu bezeroak PGS azpitituluak errendatu behar dituen azpititulu errendatuen ordez. Horrek zerbitzariaren aldeko transkodifikazioa saihestu dezake bezeroaren aldeko errendatze-errendimenduaren truke.",
+ "ConfirmDeleteSeries": "Telesail hau ezabatzeak fitxategi-sistematik eta zure multimedia liburutegitik {0} atal GUZTIAK ezabatuko ditu. Ziur jarraitu nahi duzula?",
+ "SelectPreferredTranscodeVideoCodecHelp": "Hautatu transkodetzeko bideo kodek hobetsia. Kodek hobetsia ez bada onartzen, zerbitzariak eskuragarri duen hurrengo kodek onena erabiliko du.",
+ "IntelLowPowerEncHelp": "Energia gutxiko kodeketak beharrezkoa ez den CPU-GPU sinkronizazioa mantendu dezake. Linuxen desgaitu egin behar dira i915 HuC firmwarea konfiguratuta ez badago.",
+ "AlwaysRemuxFlacAudioFilesHelp": "Zure arakatzaileak erreproduzitzea ukatzen dituen fitxategiak badituzu edo denbora-zigiluak gaizki kalkulatzen baditu, gaitu hau konponbide gisa.",
+ "PreferEmbeddedExtrasTitlesOverFileNamesHelp": "Gehigarriek askotan gurasoaren izen txertatu bera izaten dute, markatu hau hala ere izenburu txertatuak erabiltzeko.",
+ "PleaseConfirmRepositoryInstallation": "Mesedez, egin klik Ados botoian goikoa irakurri duzula eta plugin biltegiaren instalazioarekin jarraitu nahi duzula berresteko.",
+ "AutoSubtitleStylingHelp": "Modu honek automatikoki aldatuko du azpitituluen estilo-mekanismo natibo eta pertsonalizatuen artean, zure gailu motaren arabera.",
+ "NativeSubtitleStylingHelp": "Azpitituluen estiloak ez du funtzionatuko gailu batzuetan. Hala ere, ez dator errendimendu-gainkargarekin.",
+ "AlwaysBurnInSubtitleWhenTranscodingHelp": "Transkodetzea abiarazten denean azpititulu guztiak grabatu. Horrek azpitituluen sinkronizazioa bermatzen du transkodetu ondoren, baina transkodetze-abiadura murrizten du.",
+ "AlwaysRemuxMp3AudioFilesHelp": "Zure arakatzaileak denbora-zigiluak oker kalkulatzen dituen fitxategiak badituzu, gaitu hau konponbide gisa.",
+ "CustomSplashScreenSize": "Irudi pertsonalizatuek 16x9ko alderdi-erlazioa eta gutxienez 1920x1080ko tamaina izan behar dute.",
+ "LabelBackdropScreensaverIntervalHelp": "Atzeko planoaren pantaila-babeslea erabiltzean atzeko plano desberdinen arteko denbora segundotan.",
+ "RememberAudioSelectionsHelp": "Saiatu audio-pista azken bideoaren antzekoena ezartzen.",
+ "SaveLyricsIntoMediaFoldersHelp": "Audio fitxategien ondoan letrak gordetzeak errazago kudeatzen utziko du.",
+ "MessageRenameMediaFolder": "Multimedia liburutegi baten izena aldatzeak metadatu guztiak galtzea eragingo du, kontuz erabili aukera hau.",
+ "LabelScreensaverTimeHelp": "Pantaila-babeslea abiarazteko behar den jarduerarik gabeko denbora segundotan.",
+ "CustomSubtitleStylingHelp": "Azpitituluen estiloak gailu gehienetan funtzionatuko du, baina errendimendu-gastu gehigarria dakar.",
+ "LabelVppTonemappingBrightnessHelp": "Aplikatu distira-irabazia VPP tonu-mapeatzean. Gomendatutako balioa 16 da.",
+ "LabelVppTonemappingContrastHelp": "Aplikatu kontraste-irabazia VPP tonu-mapeatzean. Gomendatutako balioa 1 da.",
+ "LogLoadFailure": "Erregistro-fitxategia kargatzeak huts egin du. Baliteke oraindik aktiboki idazten ari izatea bertan.",
+ "LabelSegmentKeepSecondsHelp": "Bezeroak deskargatu ondoren segmentuak gorde behar diren denbora segundotan. Segmentuak ezabatzeko aukera gaituta badago bakarrik funtzionatzen du.",
+ "ConfirmDeleteLyrics": "Letra hauek ezabatzeak fitxategi-sistematik eta zure multimedia liburutegitik ezabatuko ditu. Ziur jarraitu nahi duzula?",
+ "EnableDtsHelp": "Gaitu hau soilik zure gailuak DTS onartzen badu edo audio hargailu bateragarri batera konektatuta badago; bestela, erreprodukzioak huts egin dezake.",
+ "EnableTrueHdHelp": "Gaitu hau soilik zure gailuak TrueHD onartzen badu edo audio hargailu bateragarri batera konektatuta badago; bestela, erreprodukzioak huts egin dezake.",
+ "EnableEnhancedNvdecDecoderHelp": "NVDEC inplementazio hobetua, desgaitu aukera hau CUVID erabiltzeko deskodetze-erroreak izanez gero.",
+ "LabelEnableLUFSScanHelp": "Bezeroek audio erreprodukzioa normalizatu dezakete pista guztietan ozentasun berdina lortzeko. Horrek liburutegiko eskaneatzeak luzeagoak egingo ditu eta baliabide gehiago beharko ditu.",
+ "EnableHi10pHelp": "Gaitu H.264 10 biteko bideoak transkodetzea saihesteko. Desgaitu aukera hau bideoak fotograma hutsak erakusten badira.",
+ "ErrorDeletingLyrics": "Errorea gertatu da letrak zerbitzaritik ezabatzean. Mesedez, egiaztatu Jellyfinek multimedia karpetan idazteko baimena duela eta saiatu berriro.",
+ "LabelEnableAudioVbrHelp": "Bit-tasa aldakorrak kalitate hobea eskaintzen du batez besteko bit-tasaren aldean, baina kasu bakan batzuetan buffering eta bateragarritasun arazoak sor ditzake.",
+ "LabelGroupShowsIntoCollectionsHelp": "Bilduma bateko saioak elementu multzokatu bakar gisa bistaratuko dira saioaren zerrendak bistaratzean.",
+ "IgnoreDtsHelp": "Aukera hau desgaitzeak arazo batzuk konpondu ditzake, adibidez, audio eta bideo jario bereiziak dituzten kanaletan audioa galtzea.",
+ "LimitSegmentLengthHelp": "Aukera hau gaitzeak HLS erreproduzitzailea zenbait gailutan, hala nola webOS telebistetan, bilaketan blokeatzea eragotzi dezake.",
+ "RememberSubtitleSelectionsHelp": "Saiatu azpitituluen pista azken bideoaren antzekoena ezartzen.",
+ "TonemappingModeHelp": "Hautatu tonu-mapatze modua. Argi-izpiak lehertuta badaude, saiatu RGB modura aldatzen.",
+ "LabelTrickplayAccelEncodingHelp": "Gaur egun QSV, VA-API, VideoToolbox eta RKMPP-n bakarrik eskuragarri, aukera honek ez du eraginik beste hardware azelerazio metodoetan.",
+ "AllowEmbeddedSubtitlesHelp": "Desgaitu multimedia edukiontzietan dauden azpitituluak. Liburutegia guztiz freskatzea eskatzen du.",
+ "LabelSaveTrickplayLocallyHelp": "Trickplay irudiak multimedia karpetetan gordetzeak zure multimedia ondoan jarriko ditu migrazio eta sarbide errazak izan ditzaten.",
+ "LabelTrickplayThreadsHelp": "ffmpeg-en '-threads' argumentura pasatuko diren hari kopurua.",
+ "LabelQscaleHelp": "ffmpeg-ek sortutako irudien kalitate-eskala, 2 kalitate handiena izanik eta 31 baxuena.",
+ "LabelDummyChapterDurationHelp": "Kapitulu faltsuen arteko tartea. 0ra ezarri kapitulu faltsuen sorrera desgaitzeko. Hau aldatzeak ez du eraginik izango dauden kapitulu faltsuetan.",
+ "LabelChapterImageResolutionHelp": "Ateratako kapitulu-irudien bereizmena. Hau aldatzeak ez du eraginik izango dauden kapitulu faltsuetan."
}
From 72b127e54b15d13768043cb9bd2db07f51f9962c Mon Sep 17 00:00:00 2001
From: Acrotos
Date: Tue, 29 Apr 2025 08:54:09 -0400
Subject: [PATCH 116/645] Translated using Weblate (Romanian) Translation:
Jellyfin/Jellyfin Web Translate-URL:
https://translate.jellyfin.org/projects/jellyfin/jellyfin-web/ro/
---
src/strings/ro.json | 6 ++++--
1 file changed, 4 insertions(+), 2 deletions(-)
diff --git a/src/strings/ro.json b/src/strings/ro.json
index 6a62b4568..ba647e34e 100644
--- a/src/strings/ro.json
+++ b/src/strings/ro.json
@@ -136,7 +136,7 @@
"TabProfiles": "Profile",
"TabUpcoming": "Urmează să apară",
"TellUsAboutYourself": "Spune-ne despre tine",
- "ThisWizardWillGuideYou": "Acest asistent vă va ghida prin procesul de configurare. Pentru a începe, vă rugăm să selectați limba preferată.",
+ "ThisWizardWillGuideYou": "Acest asistent vă va ghida prin procesul de configurare. Introduceți numele de server și selectați limba preferată pentru a începe.",
"Thursday": "Joi",
"Tuesday": "Marți",
"UserProfilesIntro": "Jellyfin include suport pentru profile de utilizator cu setări de afișare granulare, starea redării și control parental.",
@@ -2024,5 +2024,7 @@
"ImageUploadCancelled": "Încărcarea imaginii anulată",
"ImageUploadFailed": "Încărcarea imaginii a eșuat",
"LabelGroupShowsIntoCollections": "Grupează serialele în colecții",
- "LabelGroupShowsIntoCollectionsHelp": "Serialele dintr-o colecție vor fi afișate ca un singur element grupat în lista de seriale."
+ "LabelGroupShowsIntoCollectionsHelp": "Serialele dintr-o colecție vor fi afișate ca un singur element grupat în lista de seriale.",
+ "LimitSegmentLengthHelp": "Activarea acestei opțiuni poate ajuta la prevenirea blocării playerului HLS în timpul căutării pe anumite dispozitive, cum ar fi televizoarele webOS.",
+ "LimitSegmentLength": "Utilizați segment HLS redus"
}
From da7135e77a4404e23d060c0a2ae952de967647bc Mon Sep 17 00:00:00 2001
From: "Thadah D. Denyse"
Date: Tue, 29 Apr 2025 09:21:28 -0400
Subject: [PATCH 117/645] Translated using Weblate (Basque) Translation:
Jellyfin/Jellyfin Web Translate-URL:
https://translate.jellyfin.org/projects/jellyfin/jellyfin-web/eu/
---
src/strings/eu.json | 5 ++++-
1 file changed, 4 insertions(+), 1 deletion(-)
diff --git a/src/strings/eu.json b/src/strings/eu.json
index 918a906c0..3e00f4362 100644
--- a/src/strings/eu.json
+++ b/src/strings/eu.json
@@ -1701,5 +1701,8 @@
"LabelTrickplayThreadsHelp": "ffmpeg-en '-threads' argumentura pasatuko diren hari kopurua.",
"LabelQscaleHelp": "ffmpeg-ek sortutako irudien kalitate-eskala, 2 kalitate handiena izanik eta 31 baxuena.",
"LabelDummyChapterDurationHelp": "Kapitulu faltsuen arteko tartea. 0ra ezarri kapitulu faltsuen sorrera desgaitzeko. Hau aldatzeak ez du eraginik izango dauden kapitulu faltsuetan.",
- "LabelChapterImageResolutionHelp": "Ateratako kapitulu-irudien bereizmena. Hau aldatzeak ez du eraginik izango dauden kapitulu faltsuetan."
+ "LabelChapterImageResolutionHelp": "Ateratako kapitulu-irudien bereizmena. Hau aldatzeak ez du eraginik izango dauden kapitulu faltsuetan.",
+ "ReadInputAtNativeFramerateHelp": "Aukera hau gaitzeak arazo batzuk konpondu ditzake, adibidez, zuzeneko erreprodukzioak azkarregi gelditzea.",
+ "PlaybackError.RateLimitExceeded": "Une honetan ezin da multimedia hau erreproduzitu abiadura-mugak direla eta.",
+ "MediaSegmentProvidersHelp": "Gaitu eta sailkatu nahiago dituzun multimedia-segmentu hornitzaileak lehentasunaren arabera."
}
From d190fdb27c600a298867aa72a9377828a064e2dd Mon Sep 17 00:00:00 2001
From: Nicholas Jorgenson
Date: Tue, 29 Apr 2025 16:06:43 -0400
Subject: [PATCH 118/645] Fix lazy loading on the genre pages (#6799)
* Fix genre tab from sorting shows randomly
* Fix loading elements that have already been loaded
* Fix lazyLoader for show and movie genre tabs
* Reduce time window in which callback may be executed again
---
.../lazyLoader/lazyLoaderIntersectionObserver.js | 8 ++++----
src/controllers/movies/moviegenres.js | 8 +++++++-
src/controllers/shows/tvgenres.js | 8 +++++++-
3 files changed, 18 insertions(+), 6 deletions(-)
diff --git a/src/components/lazyLoader/lazyLoaderIntersectionObserver.js b/src/components/lazyLoader/lazyLoaderIntersectionObserver.js
index 81378710f..8a3835d89 100644
--- a/src/components/lazyLoader/lazyLoaderIntersectionObserver.js
+++ b/src/components/lazyLoader/lazyLoaderIntersectionObserver.js
@@ -7,10 +7,10 @@ export class LazyLoader {
createObserver() {
const callback = this.options.callback;
- const observer = new IntersectionObserver(
- (entries) => {
+ const newObserver = new IntersectionObserver(
+ (entries, observer) => {
entries.forEach(entry => {
- callback(entry);
+ callback(entry, observer);
});
},
{
@@ -18,7 +18,7 @@ export class LazyLoader {
threshold: 0
});
- this.observer = observer;
+ this.observer = newObserver;
}
addElements(elements) {
diff --git a/src/controllers/movies/moviegenres.js b/src/controllers/movies/moviegenres.js
index 9a45f59e0..b9fa8bc50 100644
--- a/src/controllers/movies/moviegenres.js
+++ b/src/controllers/movies/moviegenres.js
@@ -52,8 +52,14 @@ export default function (view, params, tabContent) {
return !layoutManager.desktop;
}
- const fillItemsContainer = (entry) => {
+ const fillItemsContainer = (entry, observer) => {
+ if (!entry.isIntersecting) {
+ return;
+ }
+
const elem = entry.target;
+ observer.unobserve(elem);
+
const id = elem.getAttribute('data-id');
const viewStyle = this.getCurrentViewStyle();
let limit = viewStyle == 'Thumb' || viewStyle == 'ThumbCard' ? 5 : 9;
diff --git a/src/controllers/shows/tvgenres.js b/src/controllers/shows/tvgenres.js
index c1c360a83..6c5982627 100644
--- a/src/controllers/shows/tvgenres.js
+++ b/src/controllers/shows/tvgenres.js
@@ -52,8 +52,14 @@ export default function (view, params, tabContent) {
return !layoutManager.desktop;
}
- function fillItemsContainer(entry) {
+ function fillItemsContainer(entry, observer) {
+ if (!entry.isIntersecting) {
+ return;
+ }
+
const elem = entry.target;
+ observer.unobserve(elem);
+
const id = elem.getAttribute('data-id');
const viewStyle = self.getCurrentViewStyle();
let limit = viewStyle == 'Thumb' || viewStyle == 'ThumbCard' ? 5 : 9;
From 96ba9bf8bec778b0c5a7cc8e18689f6d262d8e23 Mon Sep 17 00:00:00 2001
From: "Thadah D. Denyse"
Date: Tue, 29 Apr 2025 15:58:48 -0400
Subject: [PATCH 119/645] Translated using Weblate (Basque) Translation:
Jellyfin/Jellyfin Web Translate-URL:
https://translate.jellyfin.org/projects/jellyfin/jellyfin-web/eu/
---
src/strings/eu.json | 9 ++++++++-
1 file changed, 8 insertions(+), 1 deletion(-)
diff --git a/src/strings/eu.json b/src/strings/eu.json
index 3e00f4362..20948906f 100644
--- a/src/strings/eu.json
+++ b/src/strings/eu.json
@@ -1704,5 +1704,12 @@
"LabelChapterImageResolutionHelp": "Ateratako kapitulu-irudien bereizmena. Hau aldatzeak ez du eraginik izango dauden kapitulu faltsuetan.",
"ReadInputAtNativeFramerateHelp": "Aukera hau gaitzeak arazo batzuk konpondu ditzake, adibidez, zuzeneko erreprodukzioak azkarregi gelditzea.",
"PlaybackError.RateLimitExceeded": "Une honetan ezin da multimedia hau erreproduzitu abiadura-mugak direla eta.",
- "MediaSegmentProvidersHelp": "Gaitu eta sailkatu nahiago dituzun multimedia-segmentu hornitzaileak lehentasunaren arabera."
+ "MediaSegmentProvidersHelp": "Gaitu eta sailkatu nahiago dituzun multimedia-segmentu hornitzaileak lehentasunaren arabera.",
+ "LabelDelimiterWhitelistHelp": "Etiketa zatitzetik kanpo utzi beharreko elementuak. Elementu bat lerro bakoitzeko.",
+ "PluginLoadRepoError": "Errore bat gertatu da pluginaren xehetasunak biltegitik lortzean.",
+ "PlaylistPublicDescription": "Baimendu erreprodukzio-zerrenda hau saioa hasitako edozein erabiltzailek ikustea.",
+ "DisableVbrAudioEncodingHelp": "Eragotzi zerbitzariari bezero honentzat VBR-rekin audioa kodetzea.",
+ "PlaybackError.MEDIA_NOT_SUPPORTED": "Erreprodukzioak huts egin du bezero honek ez duelako multimedia onartzen.",
+ "LimitSupportedVideoResolutionHelp": "Erabili 'Bideoa transkodetzeko gehienezko bereizmena' onartutako bideo bereizmen maximo gisa.",
+ "LyricDownloadersHelp": "Gaitu eta sailkatu zure letra deskargatzaile gogokoenak lehentasunaren arabera."
}
From 8047483a7cd2d41558bcfce79b85d239f74e1317 Mon Sep 17 00:00:00 2001
From: MontejoJorge
Date: Tue, 29 Apr 2025 22:43:37 +0200
Subject: [PATCH 120/645] use the TS SDK as @viown suggested
---
.../routes/session/forgotPassword/index.tsx | 24 +++++++++----------
1 file changed, 11 insertions(+), 13 deletions(-)
diff --git a/src/apps/stable/routes/session/forgotPassword/index.tsx b/src/apps/stable/routes/session/forgotPassword/index.tsx
index 55a0c3ff6..6a5a1094b 100644
--- a/src/apps/stable/routes/session/forgotPassword/index.tsx
+++ b/src/apps/stable/routes/session/forgotPassword/index.tsx
@@ -4,30 +4,28 @@ import { useNavigate } from 'react-router-dom';
import globalize from 'lib/globalize';
import Button from 'elements/emby-button/Button';
import Input from 'elements/emby-input/Input';
-import ServerConnections from 'components/ServerConnections';
import { useMutation } from '@tanstack/react-query';
import Dashboard from 'utils/dashboard';
+import { getUserApi } from '@jellyfin/sdk/lib/utils/api/user-api';
+import ServerConnections from 'components/ServerConnections';
export const ForgotPasswordPage = () => {
const navigate = useNavigate();
const [username, setUsername] = useState('');
- const apiClient = ServerConnections.currentApiClient();
-
const forgotPasswordMutation = useMutation({
- mutationFn: (enteredUsername: string) => {
- if (!apiClient) {
- throw new Error('API client is not available');
+ mutationFn: async (enteredUsername: string) => {
+ const currentApi = ServerConnections.getCurrentApi();
+ if (!currentApi) {
+ throw new Error('API not available');
}
- return apiClient.ajax({
- type: 'POST',
- url: apiClient.getUrl('Users/ForgotPassword'),
- dataType: 'json',
- contentType: 'application/json',
- data: JSON.stringify({
+ const response = await getUserApi(currentApi).forgotPassword({
+ forgotPasswordDto: {
EnteredUsername: enteredUsername
- })
+ }
});
+
+ return response.data;
},
onSuccess: (result) => {
if (result.Action == 'ContactAdmin') {
From 99a6c653ff0754434e595486846df0e263c9cc0e Mon Sep 17 00:00:00 2001
From: MontejoJorge
Date: Tue, 29 Apr 2025 22:56:58 +0200
Subject: [PATCH 121/645] use ForgotPasswordAction enum
---
src/apps/stable/routes/session/forgotPassword/index.tsx | 7 ++++---
1 file changed, 4 insertions(+), 3 deletions(-)
diff --git a/src/apps/stable/routes/session/forgotPassword/index.tsx b/src/apps/stable/routes/session/forgotPassword/index.tsx
index 6a5a1094b..c75ac9d53 100644
--- a/src/apps/stable/routes/session/forgotPassword/index.tsx
+++ b/src/apps/stable/routes/session/forgotPassword/index.tsx
@@ -7,6 +7,7 @@ import Input from 'elements/emby-input/Input';
import { useMutation } from '@tanstack/react-query';
import Dashboard from 'utils/dashboard';
import { getUserApi } from '@jellyfin/sdk/lib/utils/api/user-api';
+import { ForgotPasswordAction } from '@jellyfin/sdk/lib/generated-client/models/forgot-password-action';
import ServerConnections from 'components/ServerConnections';
export const ForgotPasswordPage = () => {
@@ -28,21 +29,21 @@ export const ForgotPasswordPage = () => {
return response.data;
},
onSuccess: (result) => {
- if (result.Action == 'ContactAdmin') {
+ if (result.Action == ForgotPasswordAction.ContactAdmin) {
Dashboard.alert({
message: globalize.translate('MessageContactAdminToResetPassword'),
title: globalize.translate('ButtonForgotPassword')
});
}
- if (result.Action == 'InNetworkRequired') {
+ if (result.Action == ForgotPasswordAction.InNetworkRequired) {
Dashboard.alert({
message: globalize.translate('MessageForgotPasswordInNetworkRequired'),
title: globalize.translate('ButtonForgotPassword')
});
}
- if (result.Action == 'PinCode') {
+ if (result.Action == ForgotPasswordAction.PinCode) {
let msg = globalize.translate('MessageForgotPasswordFileCreated');
msg += '
';
msg += globalize.translate('MessageForgotPasswordPinReset');
From 9d05c9e65d827006653a6b90e179b8f24be05e67 Mon Sep 17 00:00:00 2001
From: MontejoJorge
Date: Tue, 29 Apr 2025 22:58:28 +0200
Subject: [PATCH 122/645] remove es translation (weblate handle this)
---
src/strings/es.json | 1 -
1 file changed, 1 deletion(-)
diff --git a/src/strings/es.json b/src/strings/es.json
index 803721341..5870de605 100644
--- a/src/strings/es.json
+++ b/src/strings/es.json
@@ -714,7 +714,6 @@
"MessageEnablingOptionLongerScans": "Activar esta opción implicará escaneos de la biblioteca más largos.",
"MessageFileReadError": "Ha habido un error leyendo el fichero. Por favor, inténtalo más tarde.",
"MessageForgotPasswordFileCreated": "Se ha creado el siguiente archivo en tu servidor y contiene instrucciones de cómo proceder",
- "MessageForgotPasswordPinReset": "Introdice el PIN aqui para finalizar el reseteo de contraseña",
"MessageForgotPasswordInNetworkRequired": "Por favor, inténtalo de nuevo desde tu red de casa para iniciar el proceso de restablecimiento de la contraseña.",
"MessageInvalidForgotPasswordPin": "Has introducido un código PIN inválido o expirado. Por favor, inténtalo de nuevo.",
"MessageInvalidUser": "Usuario o contraseña inválidos. Por favor, inténtalo otra vez.",
From 12acfb32e38650d9bb64ad22dde3aa6288a2bab1 Mon Sep 17 00:00:00 2001
From: Bill Thornton
Date: Tue, 29 Apr 2025 17:16:59 -0400
Subject: [PATCH 123/645] Fix unavailable server handling
---
src/components/ConnectionErrorPage.tsx | 33 +++++++++++++++----
src/components/ConnectionRequired.tsx | 2 +-
.../jellyfin-apiclient/connectionManager.js | 4 ---
src/strings/en-us.json | 1 +
4 files changed, 29 insertions(+), 11 deletions(-)
diff --git a/src/components/ConnectionErrorPage.tsx b/src/components/ConnectionErrorPage.tsx
index 2b7278eca..3dae182b7 100644
--- a/src/components/ConnectionErrorPage.tsx
+++ b/src/components/ConnectionErrorPage.tsx
@@ -1,6 +1,8 @@
import React, { FC, useEffect, useState } from 'react';
+import { appHost } from 'components/apphost';
import Page from 'components/Page';
+import LinkButton from 'elements/emby-button/LinkButton';
import globalize from 'lib/globalize';
import { ConnectionState } from 'lib/jellyfin-apiclient';
@@ -13,14 +15,22 @@ const ConnectionErrorPage: FC = ({
}) => {
const [ title, setTitle ] = useState();
const [ htmlMessage, setHtmlMessage ] = useState();
+ const [ message, setMessage ] = useState();
useEffect(() => {
- if (state === ConnectionState.ServerUpdateNeeded) {
- setTitle(globalize.translate('HeaderUpdateRequired'));
- setHtmlMessage(globalize.translate(
- 'ServerUpdateNeeded',
- 'jellyfin.org/downloads/server'
- ));
+ switch (state) {
+ case ConnectionState.ServerUpdateNeeded:
+ setTitle(globalize.translate('HeaderUpdateRequired'));
+ setHtmlMessage(globalize.translate(
+ 'ServerUpdateNeeded',
+ 'jellyfin.org/downloads/server'
+ ));
+ setMessage(undefined);
+ return;
+ case ConnectionState.Unavailable:
+ setTitle(globalize.translate('HeaderServerUnavailable'));
+ setHtmlMessage(undefined);
+ setMessage(globalize.translate('MessageUnableToConnectToServer'));
}
}, [ state ]);
@@ -37,6 +47,17 @@ const ConnectionErrorPage: FC = ({
{htmlMessage && (
)}
+ {message && (
+
diff --git a/src/strings/en-us.json b/src/strings/en-us.json
index 8e24c10d5..a38a9f617 100644
--- a/src/strings/en-us.json
+++ b/src/strings/en-us.json
@@ -119,7 +119,7 @@
"ButtonPause": "Pause",
"ButtonPlayer": "Player",
"ButtonPreviousTrack": "Previous track",
- "ButtonQuickStartGuide": "Quick Start Guide",
+ "ButtonQuickStartGuide": "Setup Guide",
"ButtonRefreshGuideData": "Refresh Guide Data",
"ButtonRemove": "Remove",
"ButtonRename": "Rename",
From db0780ab407e34e74020ca4b6f5a1e0504417aea Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Luk=C3=A1=C5=A1=20Kucharczyk?=
Date: Fri, 16 May 2025 02:46:19 -0400
Subject: [PATCH 284/645] Translated using Weblate (Czech) Translation:
Jellyfin/Jellyfin Web Translate-URL:
https://translate.jellyfin.org/projects/jellyfin/jellyfin-web/cs/
---
src/strings/cs.json | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/src/strings/cs.json b/src/strings/cs.json
index 24b18d21d..68f422468 100644
--- a/src/strings/cs.json
+++ b/src/strings/cs.json
@@ -56,7 +56,7 @@
"ButtonParentalControl": "Rodičovská kontrola",
"ButtonPause": "Pozastavit",
"ButtonPreviousTrack": "Předchozí stopa",
- "ButtonQuickStartGuide": "Rychlý průvodce",
+ "ButtonQuickStartGuide": "Průvodce nastavením",
"ButtonRefreshGuideData": "Aktualizovat data programového průvodce",
"ButtonRemove": "Odstranit",
"ButtonRename": "Přejmenovat",
From 1b2c4fca62db081f83e7210dacaf2716f7a951fb Mon Sep 17 00:00:00 2001
From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com>
Date: Fri, 16 May 2025 09:33:09 +0000
Subject: [PATCH 285/645] Update dependency @jellyfin/sdk to
v0.0.0-unstable.202505160502
---
package-lock.json | 14 +++++++-------
package.json | 2 +-
2 files changed, 8 insertions(+), 8 deletions(-)
diff --git a/package-lock.json b/package-lock.json
index cd7f79ce1..69219f035 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -18,7 +18,7 @@
"@fontsource/noto-sans-sc": "5.2.5",
"@fontsource/noto-sans-tc": "5.2.5",
"@jellyfin/libass-wasm": "4.2.3",
- "@jellyfin/sdk": "0.0.0-unstable.202505150502",
+ "@jellyfin/sdk": "0.0.0-unstable.202505160502",
"@jellyfin/ux-web": "1.0.0",
"@mui/icons-material": "6.4.11",
"@mui/material": "6.4.11",
@@ -4095,9 +4095,9 @@
"license": "LGPL-2.1-or-later AND (FTL OR GPL-2.0-or-later) AND MIT AND MIT-Modern-Variant AND ISC AND NTP AND Zlib AND BSL-1.0"
},
"node_modules/@jellyfin/sdk": {
- "version": "0.0.0-unstable.202505150502",
- "resolved": "https://registry.npmjs.org/@jellyfin/sdk/-/sdk-0.0.0-unstable.202505150502.tgz",
- "integrity": "sha512-SLHw0xXbzwhGxWu2Xr+8cXmsDYdVXzjYCelsNA9x4IQQFOGpUXXSFsgFWS7gV+oohChJDrnq3j3kFMzgvXnTXg==",
+ "version": "0.0.0-unstable.202505160502",
+ "resolved": "https://registry.npmjs.org/@jellyfin/sdk/-/sdk-0.0.0-unstable.202505160502.tgz",
+ "integrity": "sha512-Iqdf7ziGKdyIHzEWVJArYmFdyUMOf9L6VJXBsOLNHczBQsBpFrs2Zn9qyh/oVw+QT/XyFB7TZlkIM7O96eH63w==",
"license": "MPL-2.0",
"peerDependencies": {
"axios": "^1.3.4"
@@ -27773,9 +27773,9 @@
"integrity": "sha512-C0OlBxIr9NdeFESMTA/OVDqNSWtog6Mi7wwzwH12xbZpxsMD0RgCupUcIP7zZgcpTNecW3fZq5d6xVo7Q8HEJw=="
},
"@jellyfin/sdk": {
- "version": "0.0.0-unstable.202505150502",
- "resolved": "https://registry.npmjs.org/@jellyfin/sdk/-/sdk-0.0.0-unstable.202505150502.tgz",
- "integrity": "sha512-SLHw0xXbzwhGxWu2Xr+8cXmsDYdVXzjYCelsNA9x4IQQFOGpUXXSFsgFWS7gV+oohChJDrnq3j3kFMzgvXnTXg==",
+ "version": "0.0.0-unstable.202505160502",
+ "resolved": "https://registry.npmjs.org/@jellyfin/sdk/-/sdk-0.0.0-unstable.202505160502.tgz",
+ "integrity": "sha512-Iqdf7ziGKdyIHzEWVJArYmFdyUMOf9L6VJXBsOLNHczBQsBpFrs2Zn9qyh/oVw+QT/XyFB7TZlkIM7O96eH63w==",
"requires": {}
},
"@jellyfin/ux-web": {
diff --git a/package.json b/package.json
index cbad32431..5131b2ce7 100644
--- a/package.json
+++ b/package.json
@@ -84,7 +84,7 @@
"@fontsource/noto-sans-sc": "5.2.5",
"@fontsource/noto-sans-tc": "5.2.5",
"@jellyfin/libass-wasm": "4.2.3",
- "@jellyfin/sdk": "0.0.0-unstable.202505150502",
+ "@jellyfin/sdk": "0.0.0-unstable.202505160502",
"@jellyfin/ux-web": "1.0.0",
"@mui/icons-material": "6.4.11",
"@mui/material": "6.4.11",
From f06403fa4e6296a4580a23e3d1a2d0a8d0248c0e Mon Sep 17 00:00:00 2001
From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com>
Date: Fri, 16 May 2025 09:33:21 +0000
Subject: [PATCH 286/645] Update tanstack-query monorepo to v5.75.6
---
package-lock.json | 46 +++++++++++++++++++++++-----------------------
package.json | 4 ++--
2 files changed, 25 insertions(+), 25 deletions(-)
diff --git a/package-lock.json b/package-lock.json
index cd7f79ce1..b20835f5e 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -24,8 +24,8 @@
"@mui/material": "6.4.11",
"@mui/x-date-pickers": "7.29.3",
"@react-hook/resize-observer": "2.0.2",
- "@tanstack/react-query": "5.75.5",
- "@tanstack/react-query-devtools": "5.75.5",
+ "@tanstack/react-query": "5.75.6",
+ "@tanstack/react-query-devtools": "5.75.6",
"abortcontroller-polyfill": "1.7.8",
"blurhash": "2.0.5",
"classlist.js": "https://github.com/eligrey/classList.js/archive/1.2.20180112.tar.gz",
@@ -5788,9 +5788,9 @@
}
},
"node_modules/@tanstack/query-core": {
- "version": "5.75.5",
- "resolved": "https://registry.npmjs.org/@tanstack/query-core/-/query-core-5.75.5.tgz",
- "integrity": "sha512-kPDOxtoMn2Ycycb76Givx2fi+2pzo98F9ifHL/NFiahEDpDwSVW6o12PRuQ0lQnBOunhRG5etatAhQij91M3MQ==",
+ "version": "5.75.6",
+ "resolved": "https://registry.npmjs.org/@tanstack/query-core/-/query-core-5.75.6.tgz",
+ "integrity": "sha512-r+WQ/z30KZF0TFkzCT7C8gWgrLuv7/t+gEjqeEp69JAIUS/omuieaHeIkoscjEcT6yaWebXGTyjdiIxJkYzEXg==",
"license": "MIT",
"funding": {
"type": "github",
@@ -5808,12 +5808,12 @@
}
},
"node_modules/@tanstack/react-query": {
- "version": "5.75.5",
- "resolved": "https://registry.npmjs.org/@tanstack/react-query/-/react-query-5.75.5.tgz",
- "integrity": "sha512-QrLCJe40BgBVlWdAdf2ZEVJ0cISOuEy/HKupId1aTKU6gPJZVhSvZpH+Si7csRflCJphzlQ77Yx6gUxGW9o0XQ==",
+ "version": "5.75.6",
+ "resolved": "https://registry.npmjs.org/@tanstack/react-query/-/react-query-5.75.6.tgz",
+ "integrity": "sha512-0d97uvpeHUNN5eTEsJzYgxLgAEyUM+XaJAWFFAaXH+dQgDN//TTDNbei/YVzN5BUJcWcnQ7YaQDtLLzSe+IvTg==",
"license": "MIT",
"dependencies": {
- "@tanstack/query-core": "5.75.5"
+ "@tanstack/query-core": "5.75.6"
},
"funding": {
"type": "github",
@@ -5824,9 +5824,9 @@
}
},
"node_modules/@tanstack/react-query-devtools": {
- "version": "5.75.5",
- "resolved": "https://registry.npmjs.org/@tanstack/react-query-devtools/-/react-query-devtools-5.75.5.tgz",
- "integrity": "sha512-S31U00nJOQIbxydRH1kOwdLRaLBrda8O5QjzmgkRg60UZzPGdbI6+873Qa0YGUfPeILDbR2ukgWyg7CJQPy4iA==",
+ "version": "5.75.6",
+ "resolved": "https://registry.npmjs.org/@tanstack/react-query-devtools/-/react-query-devtools-5.75.6.tgz",
+ "integrity": "sha512-g8NH6E4F0ggatuu7Zhx3sBkvacsiMd+mrHxezlLLfftwhjRSVP1s6bvXYEAiCOQ+RNAVYFX0X1ujGSUqmcRY4w==",
"license": "MIT",
"dependencies": {
"@tanstack/query-devtools": "5.74.7"
@@ -5836,7 +5836,7 @@
"url": "https://github.com/sponsors/tannerlinsley"
},
"peerDependencies": {
- "@tanstack/react-query": "^5.75.5",
+ "@tanstack/react-query": "^5.75.6",
"react": "^18 || ^19"
}
},
@@ -28694,9 +28694,9 @@
}
},
"@tanstack/query-core": {
- "version": "5.75.5",
- "resolved": "https://registry.npmjs.org/@tanstack/query-core/-/query-core-5.75.5.tgz",
- "integrity": "sha512-kPDOxtoMn2Ycycb76Givx2fi+2pzo98F9ifHL/NFiahEDpDwSVW6o12PRuQ0lQnBOunhRG5etatAhQij91M3MQ=="
+ "version": "5.75.6",
+ "resolved": "https://registry.npmjs.org/@tanstack/query-core/-/query-core-5.75.6.tgz",
+ "integrity": "sha512-r+WQ/z30KZF0TFkzCT7C8gWgrLuv7/t+gEjqeEp69JAIUS/omuieaHeIkoscjEcT6yaWebXGTyjdiIxJkYzEXg=="
},
"@tanstack/query-devtools": {
"version": "5.74.7",
@@ -28704,17 +28704,17 @@
"integrity": "sha512-nSNlfuGdnHf4yB0S+BoNYOE1o3oAH093weAYZolIHfS2stulyA/gWfSk/9H4ZFk5mAAHb5vNqAeJOmbdcGPEQw=="
},
"@tanstack/react-query": {
- "version": "5.75.5",
- "resolved": "https://registry.npmjs.org/@tanstack/react-query/-/react-query-5.75.5.tgz",
- "integrity": "sha512-QrLCJe40BgBVlWdAdf2ZEVJ0cISOuEy/HKupId1aTKU6gPJZVhSvZpH+Si7csRflCJphzlQ77Yx6gUxGW9o0XQ==",
+ "version": "5.75.6",
+ "resolved": "https://registry.npmjs.org/@tanstack/react-query/-/react-query-5.75.6.tgz",
+ "integrity": "sha512-0d97uvpeHUNN5eTEsJzYgxLgAEyUM+XaJAWFFAaXH+dQgDN//TTDNbei/YVzN5BUJcWcnQ7YaQDtLLzSe+IvTg==",
"requires": {
- "@tanstack/query-core": "5.75.5"
+ "@tanstack/query-core": "5.75.6"
}
},
"@tanstack/react-query-devtools": {
- "version": "5.75.5",
- "resolved": "https://registry.npmjs.org/@tanstack/react-query-devtools/-/react-query-devtools-5.75.5.tgz",
- "integrity": "sha512-S31U00nJOQIbxydRH1kOwdLRaLBrda8O5QjzmgkRg60UZzPGdbI6+873Qa0YGUfPeILDbR2ukgWyg7CJQPy4iA==",
+ "version": "5.75.6",
+ "resolved": "https://registry.npmjs.org/@tanstack/react-query-devtools/-/react-query-devtools-5.75.6.tgz",
+ "integrity": "sha512-g8NH6E4F0ggatuu7Zhx3sBkvacsiMd+mrHxezlLLfftwhjRSVP1s6bvXYEAiCOQ+RNAVYFX0X1ujGSUqmcRY4w==",
"requires": {
"@tanstack/query-devtools": "5.74.7"
}
diff --git a/package.json b/package.json
index cbad32431..5b4a69fdf 100644
--- a/package.json
+++ b/package.json
@@ -90,8 +90,8 @@
"@mui/material": "6.4.11",
"@mui/x-date-pickers": "7.29.3",
"@react-hook/resize-observer": "2.0.2",
- "@tanstack/react-query": "5.75.5",
- "@tanstack/react-query-devtools": "5.75.5",
+ "@tanstack/react-query": "5.75.6",
+ "@tanstack/react-query-devtools": "5.75.6",
"abortcontroller-polyfill": "1.7.8",
"blurhash": "2.0.5",
"classlist.js": "https://github.com/eligrey/classList.js/archive/1.2.20180112.tar.gz",
From f000f1102b9495467b48e0dff93e7320c6261de6 Mon Sep 17 00:00:00 2001
From: Kityn
Date: Fri, 16 May 2025 05:38:22 -0400
Subject: [PATCH 287/645] Translated using Weblate (Polish) Translation:
Jellyfin/Jellyfin Web Translate-URL:
https://translate.jellyfin.org/projects/jellyfin/jellyfin-web/pl/
---
src/strings/pl.json | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/src/strings/pl.json b/src/strings/pl.json
index 3d2120281..1a103cabf 100644
--- a/src/strings/pl.json
+++ b/src/strings/pl.json
@@ -76,7 +76,7 @@
"ButtonParentalControl": "Kontrola rodzicielska",
"ButtonPause": "Pauza",
"ButtonPreviousTrack": "Poprzedni utwór",
- "ButtonQuickStartGuide": "Skrócona instrukcja obsługi",
+ "ButtonQuickStartGuide": "Przewodnik konfiguracji",
"ButtonRefreshGuideData": "Odśwież dane przewodnika",
"ButtonRemove": "Usuń",
"ButtonRename": "Zmień nazwę",
From 94a9fd1cdb9be85fcfa453e39bf17f6d688fc8b9 Mon Sep 17 00:00:00 2001
From: Kityn
Date: Fri, 16 May 2025 05:39:24 -0400
Subject: [PATCH 288/645] Translated using Weblate (Polish) Translation:
Jellyfin/Jellyfin Web Translate-URL:
https://translate.jellyfin.org/projects/jellyfin/jellyfin-web/pl/
---
src/strings/pl.json | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/src/strings/pl.json b/src/strings/pl.json
index 1a103cabf..a583586be 100644
--- a/src/strings/pl.json
+++ b/src/strings/pl.json
@@ -1693,7 +1693,7 @@
"SaveRecordingNFOHelp": "Zapisz metadane od dostawcy list EPG wraz z mediami.",
"HeaderDummyChapter": "Obrazy rozdziału",
"LabelDummyChapterDuration": "Interwał",
- "LabelDummyChapterDurationHelp": "Odstęp między fikcyjnymi rozdziałami. Ustaw na 0, aby wyłączyć generowanie fikcyjnych rozdziałów. Zmiana tego nie będzie miała wpływu na istniejące fikcyjne rozdziały.",
+ "LabelDummyChapterDurationHelp": "Odstęp między fikcyjnymi rozdziałami w sekundach. Ustaw na 0, aby wyłączyć generowanie fikcyjnych rozdziałów. Zmiana tego nie będzie miała wpływu na istniejące fikcyjne rozdziały.",
"LabelDummyChapterCount": "Ograniczenie",
"LabelChapterImageResolution": "Rozdzielczość",
"LabelChapterImageResolutionHelp": "Rozdzielczość wyodrębnionych obrazów rozdziałów. Zmiana tego ustawienia nie ma wpływu na istniejące rozdziały.",
From 934d101394d2d6e1007395026f80ee66f37d7e74 Mon Sep 17 00:00:00 2001
From: Viorel Ciobotaru
Date: Fri, 16 May 2025 05:56:47 -0400
Subject: [PATCH 289/645] Translated using Weblate (Romanian) Translation:
Jellyfin/Jellyfin Web Translate-URL:
https://translate.jellyfin.org/projects/jellyfin/jellyfin-web/ro/
---
src/strings/ro.json | 7 ++++---
1 file changed, 4 insertions(+), 3 deletions(-)
diff --git a/src/strings/ro.json b/src/strings/ro.json
index 2f6b60e1a..a222fa469 100644
--- a/src/strings/ro.json
+++ b/src/strings/ro.json
@@ -4,7 +4,7 @@
"ButtonAddUser": "Adaugă Utilizator",
"ButtonCancel": "Anulează",
"ButtonManualLogin": "Conectare manuală",
- "ButtonQuickStartGuide": "Ghid rapid de Start",
+ "ButtonQuickStartGuide": "Ghid de Configurare",
"ButtonRefreshGuideData": "Reîmprospătează Ghidul",
"ButtonRemove": "Elimină",
"ButtonSelectDirectory": "Selectați Director",
@@ -1672,7 +1672,7 @@
"Experimental": "Experimental",
"LabelStereoDownmixAlgorithm": "Algoritmul de Mixare Descendentă în Stereo",
"LabelDummyChapterDuration": "Interval",
- "LabelDummyChapterDurationHelp": "Intervalul dintre capitolele fictive. Setați la 0 pentru a dezactiva generarea de capitole fictive. Modificarea acestui parametru nu va avea niciun efect asupra capitolelor fictive existente.",
+ "LabelDummyChapterDurationHelp": "Intervalul dintre capitolele fictive în secunde. Setați la 0 pentru a dezactiva generarea de capitole fictive. Modificarea acestui parametru nu va avea niciun efect asupra capitolelor fictive existente.",
"LabelDummyChapterCount": "Limită",
"LabelDummyChapterCountHelp": "Numărul maxim de imagini de capitol care vor fi extrase pentru fiecare fișier media individual.",
"LabelChapterImageResolution": "Rezoluție",
@@ -2030,5 +2030,6 @@
"HeaderServerUnavailable": "Server indisponibil",
"HeaderUpdateRequired": "Actualizare necesară",
"ViewSettings": "Vedeți setările",
- "MessageForgotPasswordPinReset": "Introduceți PIN-ul aici pentru a finaliza resetarea parolei"
+ "MessageForgotPasswordPinReset": "Introduceți PIN-ul aici pentru a finaliza resetarea parolei",
+ "DownloadManager": "Descărcări"
}
From 6e20578de4cf6356117249d17c39fce9b73b2061 Mon Sep 17 00:00:00 2001
From: stanol
Date: Fri, 16 May 2025 05:50:17 -0400
Subject: [PATCH 290/645] Translated using Weblate (Ukrainian) Translation:
Jellyfin/Jellyfin Web Translate-URL:
https://translate.jellyfin.org/projects/jellyfin/jellyfin-web/uk/
---
src/strings/uk.json | 9 ++++++---
1 file changed, 6 insertions(+), 3 deletions(-)
diff --git a/src/strings/uk.json b/src/strings/uk.json
index 6a58fff20..402a1a1c9 100644
--- a/src/strings/uk.json
+++ b/src/strings/uk.json
@@ -170,7 +170,7 @@
"ButtonResetEasyPassword": "Скинути простий PIN -код",
"ButtonRemove": "Видалити",
"ButtonRefreshGuideData": "Оновити дані телегіда",
- "ButtonQuickStartGuide": "Посібник по швидкому запуску",
+ "ButtonQuickStartGuide": "Посібник з налаштування",
"ButtonPreviousTrack": "Попередня доріжка",
"ButtonPause": "Пауза",
"ButtonParentalControl": "Батьківський контроль",
@@ -1696,7 +1696,7 @@
"SaveRecordingImagesHelp": "Зберігайте зображення з постачальника списків EPG разом із носієм.",
"HeaderDummyChapter": "Зображення сцен",
"LabelDummyChapterDuration": "Інтервал",
- "LabelDummyChapterDurationHelp": "Інтервал між зображеннями сцен. Встановіть значення 0, щоб вимкнути генерацію зображень сцен. Зміна цього параметра не вплине на існуючі зображення сцен.",
+ "LabelDummyChapterDurationHelp": "Інтервал між зображеннями сцен у секундах. Встановіть значення 0, щоб вимкнути генерацію зображень сцен. Зміна цього параметра не вплине на існуючі зображення сцен.",
"LabelDummyChapterCount": "Ліміт",
"LabelDummyChapterCountHelp": "Максимальна кількість зображень розділів, які буде видобуто для кожного медіафайлу.",
"LabelChapterImageResolution": "Роздільна здатність",
@@ -2025,5 +2025,8 @@
"HeaderUpdateRequired": "Потрібне оновлення",
"LimitSegmentLength": "Використовувати коротші сегменти HLS",
"LimitSegmentLengthHelp": "Увімкнення цієї опції може допомогти запобігти зависанню HLS-програвача під час пошуку на певних пристроях, наприклад, на телевізорах з webOS.",
- "HeaderServerUnavailable": "Сервер недоступний"
+ "HeaderServerUnavailable": "Сервер недоступний",
+ "DownloadManager": "Завантаження",
+ "ViewSettings": "Налаштування перегляду",
+ "MessageForgotPasswordPinReset": "Введіть PIN-код, щоб завершити відновлення пароля"
}
From fb0a610166534eae26133d87cc62543bf74fc6d1 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?=E7=84=A1=E6=83=85=E5=A4=A9?=
Date: Fri, 16 May 2025 05:52:09 -0400
Subject: [PATCH 291/645] Translated using Weblate (Chinese (Simplified Han
script)) Translation: Jellyfin/Jellyfin Web Translate-URL:
https://translate.jellyfin.org/projects/jellyfin/jellyfin-web/zh_Hans/
---
src/strings/zh-cn.json | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/src/strings/zh-cn.json b/src/strings/zh-cn.json
index 28af95a99..59e2f45f1 100644
--- a/src/strings/zh-cn.json
+++ b/src/strings/zh-cn.json
@@ -71,7 +71,7 @@
"ButtonParentalControl": "家长控制",
"ButtonPause": "暂停",
"ButtonPreviousTrack": "上一音轨",
- "ButtonQuickStartGuide": "快速入门指南",
+ "ButtonQuickStartGuide": "设置指南",
"ButtonRefreshGuideData": "刷新指南数据",
"ButtonRemove": "移除",
"ButtonRename": "重命名",
@@ -1691,7 +1691,7 @@
"StereoDownmixAlgorithmHelp": "用于将多声道下降混合为立体声的算法。",
"HeaderRecordingMetadataSaving": "记录元数据",
"LabelDummyChapterDuration": "间隔",
- "LabelDummyChapterDurationHelp": "虚拟章节之间的时间间隔。将其设置为0以禁用虚拟章节生成。更改此设置不会影响现有的虚拟章节。",
+ "LabelDummyChapterDurationHelp": "虚拟章节之间的间隔(以秒为单位)。设置为 0 表示禁用虚拟章节生成。更改此值不会对现有虚拟章节产生影响。",
"PreferEmbeddedExtrasTitlesOverFileNames": "对额外内容优先使用内置的标题而不是文件名",
"PreferEmbeddedExtrasTitlesOverFileNamesHelp": "额外内容通常与父项有相同的内置标题,勾选此项来对它们使用内置标题。",
"SaveRecordingNFO": "在 NFO 中保存录制的 EPG 元数据",
From a6a3d0c6f50d11ef5d6670b3e61d664fc0e23e66 Mon Sep 17 00:00:00 2001
From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com>
Date: Fri, 16 May 2025 11:36:31 +0000
Subject: [PATCH 292/645] Update github/codeql-action action to v3.28.18
---
.github/workflows/__codeql.yml | 6 +++---
1 file changed, 3 insertions(+), 3 deletions(-)
diff --git a/.github/workflows/__codeql.yml b/.github/workflows/__codeql.yml
index bf450fd84..17af6d679 100644
--- a/.github/workflows/__codeql.yml
+++ b/.github/workflows/__codeql.yml
@@ -26,15 +26,15 @@ jobs:
show-progress: false
- name: Initialize CodeQL 🛠️
- uses: github/codeql-action/init@60168efe1c415ce0f5521ea06d5c2062adbeed1b # v3.28.17
+ uses: github/codeql-action/init@ff0a06e83cb2de871e5a09832bc6a81e7276941f # v3.28.18
with:
queries: security-and-quality
languages: ${{ matrix.language }}
- name: Autobuild 📦
- uses: github/codeql-action/autobuild@60168efe1c415ce0f5521ea06d5c2062adbeed1b # v3.28.17
+ uses: github/codeql-action/autobuild@ff0a06e83cb2de871e5a09832bc6a81e7276941f # v3.28.18
- name: Perform CodeQL Analysis 🧪
- uses: github/codeql-action/analyze@60168efe1c415ce0f5521ea06d5c2062adbeed1b # v3.28.17
+ uses: github/codeql-action/analyze@ff0a06e83cb2de871e5a09832bc6a81e7276941f # v3.28.18
with:
category: '/language:${{matrix.language}}'
From d120a66a54c9ead53fbd68c98572e3b3f0783de8 Mon Sep 17 00:00:00 2001
From: Tal Sarid
Date: Fri, 16 May 2025 11:10:13 -0400
Subject: [PATCH 293/645] Translated using Weblate (Hebrew) Translation:
Jellyfin/Jellyfin Web Translate-URL:
https://translate.jellyfin.org/projects/jellyfin/jellyfin-web/he/
---
src/strings/he.json | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/src/strings/he.json b/src/strings/he.json
index 89011c5cd..b633221ce 100644
--- a/src/strings/he.json
+++ b/src/strings/he.json
@@ -20,7 +20,7 @@
"ButtonGotIt": "הבנתי",
"ButtonManualLogin": "התחברות ידנית",
"ButtonOk": "בסדר",
- "ButtonQuickStartGuide": "מדריך מהיר",
+ "ButtonQuickStartGuide": "מדריך התקנה",
"ButtonRefreshGuideData": "רענן את מדריך השידור",
"ButtonRemove": "הסר",
"ButtonSelectDirectory": "בחר תיקיות",
@@ -1274,7 +1274,7 @@
"EnableSmoothScroll": "הפעל גלילה חלקה",
"HeaderDeleteSeries": "מחק סדרה",
"LabelAlbumGain": "עוצמת אלבום",
- "LabelDummyChapterDurationHelp": "מרווח הזמן בין פרקי הדמה. קבע ל-0 כדי להשבית את ייצור פרקי הדמה. שינוי זה לא ישפיע על פרקי דמה קיימים.",
+ "LabelDummyChapterDurationHelp": "מרווח הזמן בין פרקי הדמה בשניות. קבע ל-0 כדי להשבית את ייצור פרקי הדמה. שינוי זה לא ישפיע על פרקי דמה קיימים.",
"LabelMaxDaysForNextUpHelp": "הגדר את מספר הימים המקסימלי שתכנית צריכה להישאר ברשימת 'הבא בתור' מבלי לצפות בה.",
"LabelMaxVideoResolution": "רזולוצייה מקסימלית המותרת להמרת קידוד וידאו",
"LabelLocalCustomCss": "קוד CSS לעיצוב מותאם אישית ללקוח זה בלבד. ייתכן שתרצה להשבית את קוד ה-CSS המסופק על ידי השרת.",
From 269ada18df74a2dc60a99cab2a817bd9d98cf191 Mon Sep 17 00:00:00 2001
From: Bas <44002186+854562@users.noreply.github.com>
Date: Fri, 16 May 2025 14:36:19 -0400
Subject: [PATCH 294/645] Translated using Weblate (Dutch) Translation:
Jellyfin/Jellyfin Web Translate-URL:
https://translate.jellyfin.org/projects/jellyfin/jellyfin-web/nl/
---
src/strings/nl.json | 7 ++++---
1 file changed, 4 insertions(+), 3 deletions(-)
diff --git a/src/strings/nl.json b/src/strings/nl.json
index 7f3b523df..98097a88a 100644
--- a/src/strings/nl.json
+++ b/src/strings/nl.json
@@ -70,7 +70,7 @@
"ButtonParentalControl": "Ouderlijk toezicht",
"ButtonPause": "Pauzeren",
"ButtonPreviousTrack": "Vorige nummer",
- "ButtonQuickStartGuide": "Snelstartgids",
+ "ButtonQuickStartGuide": "Instelgids",
"ButtonRefreshGuideData": "Gidsgegevens vernieuwen",
"ButtonRemove": "Verwijderen",
"ButtonRename": "Hernoemen",
@@ -1700,7 +1700,7 @@
"SaveRecordingNFOHelp": "Metadata uit de EPG-vermeldingen naast media opslaan.",
"SaveRecordingImages": "EPG-afbeeldingen opslaan",
"HeaderDummyChapter": "Hoofdstukafbeeldingen",
- "LabelDummyChapterDurationHelp": "De interval tussen dummy-hoofdstukken. Stel in op 0 om het genereren van dummy-hoofdstukken uit te zetten. Wijzigingen hebben geen invloed op bestaande dummy-hoofdstukken.",
+ "LabelDummyChapterDurationHelp": "De interval tussen dummy-hoofdstukken in seconden. Stel in op 0 om het genereren van dummy-hoofdstukken uit te zetten. Wijzigingen hebben geen invloed op bestaande dummy-hoofdstukken.",
"ResolutionMatchSource": "Gelijk aan bron",
"HeaderRecordingMetadataSaving": "Metadata opname",
"SecondarySubtitles": "Secundaire ondertiteling",
@@ -2029,5 +2029,6 @@
"HeaderUpdateRequired": "Bijwerken vereist",
"HeaderServerUnavailable": "Server niet beschikbaar",
"MessageForgotPasswordPinReset": "Pincode hier invoeren om wachtwoordherstel te voltooien",
- "DownloadManager": "Downloads"
+ "DownloadManager": "Downloads",
+ "ViewSettings": "Weergave-instellingen"
}
From da542ebd5bef13bde56562a63a3aca07af507589 Mon Sep 17 00:00:00 2001
From: Blackspirits
Date: Fri, 16 May 2025 13:41:53 -0400
Subject: [PATCH 295/645] Translated using Weblate (Portuguese (Portugal))
Translation: Jellyfin/Jellyfin Web Translate-URL:
https://translate.jellyfin.org/projects/jellyfin/jellyfin-web/pt_PT/
---
src/strings/pt-pt.json | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/src/strings/pt-pt.json b/src/strings/pt-pt.json
index d6c98f485..3049aaeac 100644
--- a/src/strings/pt-pt.json
+++ b/src/strings/pt-pt.json
@@ -27,7 +27,7 @@
"ButtonOpen": "Abrir",
"ButtonPause": "Pausar",
"ButtonPreviousTrack": "Faixa anterior",
- "ButtonQuickStartGuide": "Guia de Início Rápido",
+ "ButtonQuickStartGuide": "Guia de instalação",
"ButtonRefreshGuideData": "Atualizar Guia TV",
"ButtonRemove": "Remover",
"ButtonResetEasyPassword": "Redefinir código Easy PIN",
From 5d9cda6dc917f04ba9b11f71a3137cdcc8dfbdab Mon Sep 17 00:00:00 2001
From: Blackspirits
Date: Fri, 16 May 2025 13:42:12 -0400
Subject: [PATCH 296/645] Translated using Weblate (Portuguese) Translation:
Jellyfin/Jellyfin Web Translate-URL:
https://translate.jellyfin.org/projects/jellyfin/jellyfin-web/pt/
---
src/strings/pt.json | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/src/strings/pt.json b/src/strings/pt.json
index dc237b38e..d4401ac99 100644
--- a/src/strings/pt.json
+++ b/src/strings/pt.json
@@ -843,7 +843,7 @@
"ButtonRename": "Alterar o nome",
"ButtonRemove": "Remover",
"ButtonRefreshGuideData": "Atualizar Guia TV",
- "ButtonQuickStartGuide": "Guia de Início Rápido",
+ "ButtonQuickStartGuide": "Guia de instalação",
"ButtonPreviousTrack": "Faixa anterior",
"ButtonPause": "Pausar",
"ButtonParentalControl": "Controlo parental",
From 511c148b288d498e9435c1382f84f71c8b1773df Mon Sep 17 00:00:00 2001
From: Martin Just
Date: Fri, 16 May 2025 18:36:18 -0400
Subject: [PATCH 297/645] Translated using Weblate (German) Translation:
Jellyfin/Jellyfin Web Translate-URL:
https://translate.jellyfin.org/projects/jellyfin/jellyfin-web/de/
---
src/strings/de.json | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/src/strings/de.json b/src/strings/de.json
index 011ef8467..c31dce518 100644
--- a/src/strings/de.json
+++ b/src/strings/de.json
@@ -67,7 +67,7 @@
"ButtonOpen": "Öffnen",
"ButtonParentalControl": "Kindersicherung",
"ButtonPreviousTrack": "Vorheriges Lied",
- "ButtonQuickStartGuide": "Schnellstartanleitung",
+ "ButtonQuickStartGuide": "Einrichtungsanleitung",
"ButtonRefreshGuideData": "TV-Programmdaten aktualisieren",
"ButtonRemove": "Entfernen",
"ButtonRename": "Umbenennen",
@@ -1700,7 +1700,7 @@
"HeaderDummyChapter": "Kapitelbilder",
"HeaderRecordingMetadataSaving": "Aufzeichnung von Metadaten",
"LabelDummyChapterDuration": "Intervall",
- "LabelDummyChapterDurationHelp": "Das Intervall zwischen Dummy-Kapiteln. Auf 0 setzen, um die Erzeugung von Dummy-Kapiteln zu deaktivieren. Eine Änderung dieses Wertes hat keine Auswirkung auf bestehende Dummy-Kapitel.",
+ "LabelDummyChapterDurationHelp": "Das Intervall zwischen Dummy-Kapiteln in Sekunden. Auf 0 setzen, um die Erzeugung von Dummy-Kapiteln zu deaktivieren. Eine Änderung dieses Wertes hat keine Auswirkung auf bestehende Dummy-Kapitel.",
"LabelDummyChapterCount": "Limit",
"LabelDummyChapterCountHelp": "Die maximale Anzahl von Kapitelbildern, die für jede Mediendatei extrahiert werden.",
"LabelChapterImageResolution": "Auflösung",
From 5306c66bac9800026046e57f0228894f7921950c Mon Sep 17 00:00:00 2001
From: mabod
Date: Sat, 17 May 2025 05:58:08 -0400
Subject: [PATCH 298/645] Translated using Weblate (German) Translation:
Jellyfin/Jellyfin Web Translate-URL:
https://translate.jellyfin.org/projects/jellyfin/jellyfin-web/de/
---
src/strings/de.json | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/src/strings/de.json b/src/strings/de.json
index c31dce518..f60a7f336 100644
--- a/src/strings/de.json
+++ b/src/strings/de.json
@@ -73,7 +73,7 @@
"ButtonRename": "Umbenennen",
"ButtonResetEasyPassword": "Easy PIN-Code zurücksetzen",
"ButtonResume": "Fortsetzen",
- "ButtonRevoke": "Wiederrufen",
+ "ButtonRevoke": "Widerrufen",
"ButtonScanAllLibraries": "Alle Bibliotheken scannen",
"ButtonSelectDirectory": "Verzeichnis wählen",
"ButtonSelectView": "Ansicht wählen",
From 9dd8698bdd1ea48ebd9a3c63a44b18a09b7ac243 Mon Sep 17 00:00:00 2001
From: Alex
Date: Sat, 17 May 2025 13:15:15 -0400
Subject: [PATCH 299/645] Translated using Weblate (Russian) Translation:
Jellyfin/Jellyfin Web Translate-URL:
https://translate.jellyfin.org/projects/jellyfin/jellyfin-web/ru/
---
src/strings/ru.json | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/src/strings/ru.json b/src/strings/ru.json
index 57530e417..c57810029 100644
--- a/src/strings/ru.json
+++ b/src/strings/ru.json
@@ -1179,7 +1179,7 @@
"XmlTvSportsCategoriesHelp": "Передачи в этих категориях будут отображаться как спортивные. Для разделения используйте «|».",
"Yes": "Да",
"Yesterday": "Вчера",
- "ChangingMetadataImageSettingsNewContent": "Изменения в настройках загрузки метаданных или иллюстраций применяются только к добавляемому в дальнейшем контенту. Чтобы применить изменения к имеющемуся контенту, необходимо обновить их метаданные вручную.",
+ "ChangingMetadataImageSettingsNewContent": "Изменения в настройках загрузки метаданных или иллюстраций будут применяться только к новому контенту, добавленному в медиатеку. Чтобы применить изменения к уже существующему контенту, необходимо обновить их метаданные вручную.",
"LabelDynamicExternalId": "{0} ID",
"LeaveBlankToNotSetAPassword": "Оставьте пустым, чтобы не назначать пароль.",
"MessageImageFileTypeAllowed": "Поддерживаются только файлы JPEG и PNG.",
@@ -1833,7 +1833,7 @@
"PriorityBelowNormal": "Ниже нормы",
"LabelImageIntervalHelp": "Интервал времени (мс) между каждым новым изображением trickplay.",
"LabelTileHeightHelp": "Максимальное количество изображений на плитке в направлении Y.",
- "EnableLibrary": "Активировать библиотеку",
+ "EnableLibrary": "Включить библиотеку",
"EnableLibraryHelp": "Отключение библиотеки скроет ее от просмотра всеми пользователями.",
"Trickplay": "Trickplay",
"LabelScanBehavior": "Поведение при сканировании",
From 2f14cb5605ea4255f8dfc2a649a0ceaf27373f13 Mon Sep 17 00:00:00 2001
From: sabretou
Date: Sat, 17 May 2025 12:57:03 -0400
Subject: [PATCH 300/645] Translated using Weblate (Marathi) Translation:
Jellyfin/Jellyfin Web Translate-URL:
https://translate.jellyfin.org/projects/jellyfin/jellyfin-web/mr/
---
src/strings/mr.json | 5 +++--
1 file changed, 3 insertions(+), 2 deletions(-)
diff --git a/src/strings/mr.json b/src/strings/mr.json
index abd68cf42..63826fed2 100644
--- a/src/strings/mr.json
+++ b/src/strings/mr.json
@@ -519,7 +519,7 @@
"LabelAudioCodec": "ऑडियो कोडेक",
"LabelAudioChannels": "ऑडियो वाहिन्या",
"LabelArtists": "संगीतकार",
- "LabelAppNameExample": "उदाहरणार्थ: Sickbeard, Sonarr",
+ "LabelAppNameExample": "",
"LabelAppName": "अॅपचे नाव",
"LabelAlbumArtists": "अल्बम संगीतका",
"LabelAlbum": "अल्बम",
@@ -676,5 +676,6 @@
"AllowCollectionManagement": "या वापरकर्त्यास संग्रह व्यवस्थापित करण्यास अनुमती द्या",
"AllowSegmentDeletion": "विभागांना हटवा",
"AllowSegmentDeletionHelp": "क्लायंटला पाठवल्यानंतर जुन्या विभागांना हटवा. यामुळे संपूर्ण ट्रान्सकोड केलेली फाईल डिस्कवर साठवण्याची आवश्यकता नाही. केवळ थ्रॉटलिंग सक्षम असल्यास कार्य करेल. जर आपल्याला प्लेबॅक समस्या येत असतील तर हे बंद करा.",
- "LabelSegmentKeepSeconds": "विभागांना ठेवण्याची वेळ"
+ "LabelSegmentKeepSeconds": "विभागांना ठेवण्याची वेळ",
+ "AirPlay": "एअरप्ले"
}
From 4fa8202beecb1442b3dc1b2072ac48a67d350fe5 Mon Sep 17 00:00:00 2001
From: myrad2267
Date: Sat, 17 May 2025 20:27:01 -0400
Subject: [PATCH 301/645] Translated using Weblate (French (Canada))
Translation: Jellyfin/Jellyfin Web Translate-URL:
https://translate.jellyfin.org/projects/jellyfin/jellyfin-web/fr_CA/
---
src/strings/fr-ca.json | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/src/strings/fr-ca.json b/src/strings/fr-ca.json
index 3db5fa495..77993f206 100644
--- a/src/strings/fr-ca.json
+++ b/src/strings/fr-ca.json
@@ -1144,7 +1144,7 @@
"LabelTonemappingParam": "Paramètre de tone-mapping",
"LabelSkipForwardLength": "Temps de saut en avant",
"LabelSortName": "Nom de tri",
- "LabelDummyChapterDurationHelp": "L’intervalle entre les chapitres fictifs. Définir une valeur de 0 pour désactiver la génération de chapitres fictifs. Le changement de cette valeur n’aura aucun effet sur les chapitres fictifs existants.",
+ "LabelDummyChapterDurationHelp": "L’intervalle entre les chapitres fictifs en secondes. Définir une valeur de 0 pour désactiver la génération de chapitres fictifs. Le changement de cette valeur n’aura aucun effet sur les chapitres fictifs existants.",
"LabelEnableLUFSScan": "Activer le scan LUFS",
"LabelOriginalAspectRatio": "Format d’image original",
"LabelPlayer": "Lecteur",
From f582c83e8ed96605b65f430737d86473d9ff06a6 Mon Sep 17 00:00:00 2001
From: myrad2267
Date: Sat, 17 May 2025 20:27:20 -0400
Subject: [PATCH 302/645] 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 14e020e7a..3a700a6d3 100644
--- a/src/strings/fr.json
+++ b/src/strings/fr.json
@@ -1694,7 +1694,7 @@
"HeaderRecordingMetadataSaving": "Enregistrement des métadonnées",
"SaveRecordingNFO": "Enregistrer les métadonnées du fournisseur dans le fichier NFO",
"SaveRecordingImages": "Enregistrer les images des métadonnées du fournisseur",
- "LabelDummyChapterDurationHelp": "Intervalle entre deux chapitres factices ou 0 pour désactiver la génération. Changer la valeur n’affectera pas les chapitres existants.",
+ "LabelDummyChapterDurationHelp": "Intervalle entre deux chapitres factices en seondes ou 0 pour désactiver la génération. Changer la valeur n’affectera pas les chapitres existants.",
"LabelDummyChapterCount": "Limite",
"LabelChapterImageResolution": "Résolution",
"LabelChapterImageResolutionHelp": "La résolution d'image des chapitre factices. Changer la valeur n’affectera pas les chapitres existants.",
From e9ab8b4d5f5dc5afef0ee8c3c50388bc7a0ca7a7 Mon Sep 17 00:00:00 2001
From: Iagocds
Date: Sun, 18 May 2025 01:02:36 -0400
Subject: [PATCH 303/645] Translated using Weblate (Portuguese (Brazil))
Translation: Jellyfin/Jellyfin Web Translate-URL:
https://translate.jellyfin.org/projects/jellyfin/jellyfin-web/pt_BR/
---
src/strings/pt-br.json | 48 +++++++++++++++++++++++++++++++++---------
1 file changed, 38 insertions(+), 10 deletions(-)
diff --git a/src/strings/pt-br.json b/src/strings/pt-br.json
index cd782b110..d1870d19a 100644
--- a/src/strings/pt-br.json
+++ b/src/strings/pt-br.json
@@ -72,7 +72,7 @@
"ButtonParentalControl": "Controle dos pais",
"ButtonPause": "Pausar",
"ButtonPreviousTrack": "Faixa anterior",
- "ButtonQuickStartGuide": "Guia Rápido",
+ "ButtonQuickStartGuide": "Guia de configuração",
"ButtonRefreshGuideData": "Atualizar Dados do Guia",
"ButtonRemove": "Remover",
"ButtonRename": "Renomear",
@@ -1066,7 +1066,7 @@
"ThemeSongs": "Músicas-tema",
"ThemeVideos": "Vídeos-tema",
"TheseSettingsAffectSubtitlesOnThisDevice": "Estas configurações afetam as legendas neste dispositivo",
- "ThisWizardWillGuideYou": "Este assistente irá guiá-lo pelo processo de instalação. Para começar, por favor selecione seu idioma preferido.",
+ "ThisWizardWillGuideYou": "Este assistente irá guiá-lo pelo processo de instalação. Para começar, por favor digite o nome do servidor e selecione seu idioma preferido.",
"Thumb": "Miniatura",
"Thursday": "Quinta-feira",
"TitleHardwareAcceleration": "Aceleração de Hardware",
@@ -1475,7 +1475,7 @@
"RemuxHelp2": "Remux usa muito pouco processamento com uma qualidade de mídia completamente sem perdas.",
"RemuxHelp1": "A mídia está em um contêiner de arquivo incompatível (MKV, AVI, WMV, etc.), mas tanto o fluxo de vídeo quanto o de áudio são compatíveis com o dispositivo. A mídia será reembalada sem perdas em tempo real antes de ser enviada para o dispositivo.",
"Remuxing": "Remuxar",
- "AspectRatioCover": "Capa",
+ "AspectRatioCover": "Ampliar",
"EnableFallbackFontHelp": "Habilite fontes alternativas personalizadas. Isso pode evitar o problema de renderização incorreta das legendas.",
"EnableFallbackFont": "Ativar fontes alternativas",
"LabelFallbackFontPathHelp": "Estas fontes são utilizadas em alguns clientes para mostrar legendas. Por favor, consulte a documentação para mais informações.",
@@ -1507,7 +1507,7 @@
"EnablePlugin": "Habilitar",
"DirectPlayHelp": "O arquivo de origem é totalmente compatível com este cliente e a sessão está recebendo o arquivo sem modificações.",
"YoutubeBadRequest": "Requisição ruim.",
- "AspectRatioFill": "Preencher",
+ "AspectRatioFill": "Esticar",
"LabelHDHomerunPortRange": "Intervalo de portas HDHomerun",
"HeaderContinueReading": "Continue Lendo",
"UseEpisodeImagesInNextUp": "Utilizar imagens dos episódios nas seções 'Veja a Seguir' e 'Continue Assistindo'",
@@ -1590,7 +1590,7 @@
"TypeOptionPluralMusicAlbum": "Álbuns de música",
"TypeOptionPluralMovie": "Filmes",
"TypeOptionPluralEpisode": "Episódios",
- "TypeOptionPluralBoxSet": "Boxes Coleção",
+ "TypeOptionPluralBoxSet": "Box Coleções",
"TypeOptionPluralBook": "Livros",
"TypeOptionPluralAudio": "Áudios",
"Print": "Imprimir",
@@ -1652,7 +1652,7 @@
"AllowEmbeddedSubtitles": "Desabilitar diferentes tipos de legendas embutidas",
"Bold": "Negrito",
"LabelTextWeight": "Intensidade do texto",
- "EnableSplashScreen": "Ativar tela de abertura",
+ "EnableSplashScreen": "Ativar imagem na tela de abertura",
"ScreenResolution": "Resolução de tela",
"RememberAudioSelectionsHelp": "Tentar definir a faixa de áudio com a correspondência mais próxima do último vídeo.",
"RememberAudioSelections": "Definir faixa de áudio baseado no item anterior",
@@ -1723,12 +1723,12 @@
"UserMenu": "Menu do Usuário",
"HeaderPerformance": "Rendimento",
"EnableAudioNormalizationHelp": "A normalização de áudio vai adicionar um ganho constante para manter a média no nível desejado (-18db).",
- "LabelDummyChapterDurationHelp": "Intervalo entre os capítulos forçados. Ajuste com 0 para desabilitar a geração de capítulos forçados. A mudança não terá efeito nos capítulos forçados existentes.",
+ "LabelDummyChapterDurationHelp": "Intervalo entre os capítulos forçados em segundos. Ajuste com 0 para desabilitar a geração de capítulos forçados. A mudança não terá efeito nos capítulos forçados existentes.",
"LabelParallelImageEncodingLimit": "Limite de codificação em paralelo de imagens",
"HeaderDummyChapter": "Imagem dos capítulos",
"LabelEnableLUFSScan": "Habilitar procura LUFS",
"LabelEnableLUFSScanHelp": "Tocadores podem normalizar a reprodução de áudio (LUFS) para obter igual volume em todas as faixas. Isto fará com que o escaneamento das bibliotecas demore mais e utilize mais recursos.",
- "LabelParallelImageEncodingLimitHelp": "Número máximo de codificação de imagens que são permitidas executar em paralelo. Ajustar com 0 irá escolher um limite baseado na quantidade de núcleos.",
+ "LabelParallelImageEncodingLimitHelp": "Número máximo de codificação de imagens que são permitido executar em paralelo. Deixar isso vazio irá escolher um limite baseado na quantidade de núcleos.",
"PreferEmbeddedExtrasTitlesOverFileNames": "Prefere os títulos inclusos ao nome dos arquivos para os extras",
"PreferEmbeddedExtrasTitlesOverFileNamesHelp": "Os extras geralmente têm o mesmo nome incorporado do título principal, verifique isso para usar títulos incorporados para eles de qualquer maneira.",
"TonemappingModeHelp": "Selecione o modo de mapeamento de tom. Se você experimentar realces estourados, tente mudar para o modo RGB.",
@@ -1880,7 +1880,7 @@
"SelectPreferredTranscodeVideoAudioCodecHelp": "Selecione o codec de áudio preferido para o qual transcodificar o conteúdo de vídeo. Se o codec preferido não for compatível, o servidor usará o próximo melhor codec disponível.",
"SaveLyricsIntoMediaFolders": "Salvar letras de música nas pastas de mídia",
"SaveLyricsIntoMediaFoldersHelp": "Armazenar as letras de músicas ao lado dos arquivos de áudio permite que eles sejam gerenciadas com mais facilidade.",
- "LibraryScanFanoutConcurrencyHelp": "Número máximo de tarefas paralelas durante o escaneamento da biblioteca. Definir o valor como 0 irá escolher um limite com base na quantidade de núcleos do seu sistema. AVISO: Definir esse número muito alto pode causar problemas com sistema de arquivos em rede; se você encontrar problemas, reduza esse número.",
+ "LibraryScanFanoutConcurrencyHelp": "Número máximo de tarefas paralelas durante o escaneamento da biblioteca. Definir deixar isso vazio irá escolher um limite com base na quantidade de núcleos do seu sistema. AVISO: Definir esse número muito alto pode causar problemas com sistema de arquivos em rede; se você encontrar problemas, reduza esse número.",
"PlaylistError.CreateFailed": "Erro ao criar lista de reprodução",
"PlaylistPublic": "Permitir acesso público",
"PlaylistPublicDescription": "Permitir que essa lista de reprodução seja visualizada por qualquer usuário conectado.",
@@ -1998,5 +1998,33 @@
"DeleteServerConfirmation": "Você tem certeza que deseja excluir este servidor?",
"HeaderPageNotFound": "Página indisponível",
"LabelDevice": "Dispositivo",
- "HeaderServerUnavailable": "Servidor indisponível"
+ "HeaderServerUnavailable": "Servidor indisponível",
+ "LabelGroupShowsIntoCollections": "Agrupar shows em coleções",
+ "LabelGroupShowsIntoCollectionsHelp": "Shows em uma coleção vão ser exibidos como um item agrupado nas listagens de shows.",
+ "LibraryNameInvalid": "O nome da biblioteca não pode ficar em branco.",
+ "LimitSegmentLength": "Use segmentos HLS menores",
+ "LimitSegmentLengthHelp": "Habilitar essa opção pode ajudar a prevenir o reprodutor de mídia HLS de travar a reprodução durante o avanço rápido em alguns dispositivos, como as TVs com webOS.",
+ "ReadInputAtNativeFramerateHelp": "Habilitando essa opção pode resolver alguns problemas, ex.: transmissões ao vivo parando prematuramente.",
+ "MetadataNfoLoadError": "Falha ao carregar as configurações de metadados NFO",
+ "SettingsPageLoadError": "Falha ao carregar a pagina de configurações",
+ "ReadInputAtNativeFramerate": "Ler a entrada na frequência de quadros nativa",
+ "ViewSettings": "Ver as configurações",
+ "ImageUploadCancelled": "Upload de imagem cancelado",
+ "ImageUploadFailed": "Upload de imagem falhou",
+ "LogLoadFailure": "Falha ao carregar o arquivo de registros. Pode estar ainda sendo gravado.",
+ "UploadCustomImage": "Enviar imagem personalizada",
+ "RetryWithGlobalSearch": "Retentar com a pesquisa global",
+ "PageNotFound": "Essa não é a pagina que você está procurando.",
+ "Retry": "Retentar",
+ "DownloadManager": "Downloads",
+ "ImageDeleteFailed": "Falha ao deletar a imagem",
+ "DisplayLoadError": "Um erro ocorreu durante o carregamento dos dados de configuração de tela.",
+ "LabelSubtitleStyling": "Estilização da legenda",
+ "NativeSubtitleStylingHelp": "A estilização das legendas podem não funcionar em alguns dispositivos. Mas ela não causa nenhuma perda de desempenho.",
+ "LastActive": "Ultima vez ativo",
+ "HeaderUpdateRequired": "Atualização requerida",
+ "MetadataImagesLoadError": "Falha ao carregar as configurações de metadados",
+ "MessageForgotPasswordPinReset": "Digite o PIN aqui para finalizar a redefinição da senha",
+ "Native": "Nativo",
+ "StreamCountExceedsLimit": "O número de reproduções excede o limite"
}
From 6e67a9b62a1d488754dad325c02c07ff92c85e28 Mon Sep 17 00:00:00 2001
From: Gallyam Biktashev
Date: Mon, 19 May 2025 04:10:58 -0400
Subject: [PATCH 304/645] Translated using Weblate (Russian) Translation:
Jellyfin/Jellyfin Web Translate-URL:
https://translate.jellyfin.org/projects/jellyfin/jellyfin-web/ru/
---
src/strings/ru.json | 6 ++++--
1 file changed, 4 insertions(+), 2 deletions(-)
diff --git a/src/strings/ru.json b/src/strings/ru.json
index c57810029..a04123e81 100644
--- a/src/strings/ru.json
+++ b/src/strings/ru.json
@@ -1701,7 +1701,7 @@
"LabelParallelImageEncodingLimit": "Ограничение на параллельное кодирование изображений",
"LabelParallelImageEncodingLimitHelp": "Максимальное количество кодировок изображений, которые разрешено выполнять параллельно. Оставив это значение пустым, вы выберете ограничение, основанное на количестве ядер вашей системы.",
"HeaderPerformance": "Производительность",
- "LabelDummyChapterDurationHelp": "Интервал между виртуальным разделами. Установите значение 0 для отключения генерации виртуальных разделов. Изменение этого параметра не повлияет на существующие виртуальные разделы.",
+ "LabelDummyChapterDurationHelp": "Интервал между виртуальным разделами в секундах. Установите значение 0 для отключения генерации виртуальных разделов. Изменение этого параметра не повлияет на существующие виртуальные разделы.",
"LabelChapterImageResolutionHelp": "Разрешение созданных изображений разделов. Изменение этого параметра не повлияет на существующие изображения разделов.",
"ResolutionMatchSource": "Соответствовать источнику",
"MenuOpen": "Открыть Меню",
@@ -2029,5 +2029,7 @@
"LimitSegmentLengthHelp": "Включение этой опции может помочь предотвратить зависание HLS-плеера во время перемотки на некоторых устройствах, например, на телевизорах с webOS.",
"HeaderServerUnavailable": "Сервер недоступен",
"HeaderUpdateRequired": "Требуется обновление",
- "ViewSettings": "Настройки видов"
+ "ViewSettings": "Настройки видов",
+ "DownloadManager": "Загрузки",
+ "MessageForgotPasswordPinReset": "Введите PIN-код для завершения сброса пароля"
}
From d0abbe9a27f65ff3365d86ad8e021d4441159137 Mon Sep 17 00:00:00 2001
From: "Thadah D. Denyse"
Date: Mon, 19 May 2025 03:28:36 -0400
Subject: [PATCH 305/645] Translated using Weblate (Basque) Translation:
Jellyfin/Jellyfin Web Translate-URL:
https://translate.jellyfin.org/projects/jellyfin/jellyfin-web/eu/
---
src/strings/eu.json | 8 +++++---
1 file changed, 5 insertions(+), 3 deletions(-)
diff --git a/src/strings/eu.json b/src/strings/eu.json
index 751d941ff..bfb28cf82 100644
--- a/src/strings/eu.json
+++ b/src/strings/eu.json
@@ -1491,7 +1491,7 @@
"ButtonRename": "Berriro izendatu",
"ButtonRemove": "Ezabatu",
"ButtonRefreshGuideData": "Gidako datuak eguneratzea",
- "ButtonQuickStartGuide": "Hasiera azkarreko gida",
+ "ButtonQuickStartGuide": "Konfigurazio gida",
"ButtonPreviousTrack": "Aurreko pista",
"ButtonPlayer": "Ugaltzailea",
"ButtonPause": "Etenaldia",
@@ -1700,7 +1700,7 @@
"LabelSaveTrickplayLocallyHelp": "Trickplay irudiak multimedia karpetetan gordetzeak zure multimedia ondoan jarriko ditu migrazio eta sarbide errazak izan ditzaten.",
"LabelTrickplayThreadsHelp": "ffmpeg-en '-threads' argumentura pasatuko diren hari kopurua.",
"LabelQscaleHelp": "ffmpeg-ek sortutako irudien kalitate-eskala, 2 kalitate handiena izanik eta 31 baxuena.",
- "LabelDummyChapterDurationHelp": "Kapitulu faltsuen arteko tartea. 0ra ezarri kapitulu faltsuen sorrera desgaitzeko. Hau aldatzeak ez du eraginik izango dauden kapitulu faltsuetan.",
+ "LabelDummyChapterDurationHelp": "Kapitulu faltsuen arteko tartea, segundotan. 0ra ezarri kapitulu faltsuen sorrera desgaitzeko. Hau aldatzeak ez du eraginik izango dauden kapitulu faltsuetan.",
"LabelChapterImageResolutionHelp": "Ateratako kapitulu-irudien bereizmena. Hau aldatzeak ez du eraginik izango dauden kapitulu faltsuetan.",
"ReadInputAtNativeFramerateHelp": "Aukera hau gaitzeak arazo batzuk konpondu ditzake, adibidez, zuzeneko erreprodukzioak azkarregi gelditzea.",
"PlaybackError.RateLimitExceeded": "Une honetan ezin da multimedia hau erreproduzitu abiadura-mugak direla eta.",
@@ -2010,5 +2010,7 @@
"LabelDummyChapterDuration": "Tartea",
"LogLevel.None": "Bat ere ez",
"HeaderUpdateRequired": "Eguneraketa beharrezkoa da",
- "Illustrator": "Ilustratzailea"
+ "Illustrator": "Ilustratzailea",
+ "MessageForgotPasswordPinReset": "Sartu PINa hemen pasahitza berrezartzeko",
+ "DownloadManager": "Deskargak"
}
From 392b1dc3a6dc81f0925667fc597769c46b85595c Mon Sep 17 00:00:00 2001
From: domenico code
Date: Mon, 19 May 2025 05:13:44 -0400
Subject: [PATCH 306/645] Translated using Weblate (Italian) Translation:
Jellyfin/Jellyfin Web Translate-URL:
https://translate.jellyfin.org/projects/jellyfin/jellyfin-web/it/
---
src/strings/it.json | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
diff --git a/src/strings/it.json b/src/strings/it.json
index 003d76393..7a976476e 100644
--- a/src/strings/it.json
+++ b/src/strings/it.json
@@ -2029,5 +2029,6 @@
"LabelGroupShowsIntoCollections": "Raggruppa le serie in collezioni",
"HeaderServerUnavailable": "Server Non Disponibile",
"HeaderUpdateRequired": "Aggiornamento Necessario",
- "ViewSettings": "Mostra impostazioni"
+ "ViewSettings": "Mostra impostazioni",
+ "DownloadManager": "Scaricati"
}
From b9b316e2433c8312bb8f471de8c00a3d648da56e Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Yago=20Ra=C3=B1a=20Gayoso?=
Date: Mon, 19 May 2025 08:26:43 -0400
Subject: [PATCH 307/645] Translated using Weblate (Spanish) Translation:
Jellyfin/Jellyfin Web Translate-URL:
https://translate.jellyfin.org/projects/jellyfin/jellyfin-web/es/
---
src/strings/es.json | 8 +++++---
1 file changed, 5 insertions(+), 3 deletions(-)
diff --git a/src/strings/es.json b/src/strings/es.json
index f8a2ba54b..22b184c62 100644
--- a/src/strings/es.json
+++ b/src/strings/es.json
@@ -63,7 +63,7 @@
"ButtonParentalControl": "Control parental",
"ButtonPause": "Pausa",
"ButtonPreviousTrack": "Pista anterior",
- "ButtonQuickStartGuide": "Guía de inicio rápido",
+ "ButtonQuickStartGuide": "Guía de configuración",
"ButtonRefreshGuideData": "Actualizar datos de la guía",
"ButtonRemove": "Eliminar",
"ButtonRename": "Renombrar",
@@ -1695,7 +1695,7 @@
"SaveRecordingImages": "Guardar grabación de imágenes EPG",
"SaveRecordingImagesHelp": "Guardar imágenes del proveedor de listados EPG junto con los archivos multimedia.",
"LabelDummyChapterDuration": "Intervalo",
- "LabelDummyChapterDurationHelp": "Intervalo entre capítulos dummy. Dejar a 0 para deshabilitar la generación de capítulos dummy. Cambiar esta opción no tendrá efecto para capítulos dummy ya existentes.",
+ "LabelDummyChapterDurationHelp": "Intervalo entre capítulos dummy en segundos. Dejar a 0 para deshabilitar la generación de capítulos dummy. Cambiar esta opción no tendrá efecto para capítulos dummy ya existentes.",
"HeaderDummyChapter": "Imágenes de capítulos",
"LabelDummyChapterCount": "Límite",
"Featurette": "Reportaje extra",
@@ -2029,5 +2029,7 @@
"StreamCountExceedsLimit": "El numero de transmisiones excede el límite",
"HeaderServerUnavailable": "Servidor no disponible",
"HeaderUpdateRequired": "Actualización requerida",
- "ViewSettings": "Ajustes de vista"
+ "ViewSettings": "Ajustes de vista",
+ "DownloadManager": "Descargas",
+ "MessageForgotPasswordPinReset": "Introducir PIN aquí para terminar el restablecimiento de contraseña"
}
From 782ec8857d3e355dc88b34f46414825944db0c1a Mon Sep 17 00:00:00 2001
From: hoanghuy309
Date: Mon, 19 May 2025 07:33:09 -0400
Subject: [PATCH 308/645] Translated using Weblate (Vietnamese) Translation:
Jellyfin/Jellyfin Web Translate-URL:
https://translate.jellyfin.org/projects/jellyfin/jellyfin-web/vi/
---
src/strings/vi.json | 7 ++++---
1 file changed, 4 insertions(+), 3 deletions(-)
diff --git a/src/strings/vi.json b/src/strings/vi.json
index 061a06b37..7ed489819 100644
--- a/src/strings/vi.json
+++ b/src/strings/vi.json
@@ -85,7 +85,7 @@
"ButtonResetEasyPassword": "Đặt lại mã PIN Tiện Lợi",
"ButtonRename": "Đổi tên",
"ButtonRefreshGuideData": "Làm mới dữ liệu hướng dẫn",
- "ButtonQuickStartGuide": "Hướng dẫn nhanh",
+ "ButtonQuickStartGuide": "Hướng Dẫn Thiết Lập",
"ButtonPreviousTrack": "Bản ghi trước",
"ButtonPause": "Tạm dừng",
"ButtonParentalControl": "Kiểm soát của cha mẹ",
@@ -1681,7 +1681,7 @@
"DownloadAll": "Tải Xuống Tất Cả",
"LabelStereoDownmixAlgorithm": "Thuật Toán Trộn Âm Thanh Nổi",
"StereoDownmixAlgorithmHelp": "Thuật toán được sử dụng để trộn âm thanh đa kênh thành âm thanh nổi.",
- "LabelDummyChapterDurationHelp": "Khoảng thời gian giữa các phân đoạn giả. Đặt thành 0 để tắt tạo phân đoạn giả. Việc thay đổi điều này sẽ không ảnh hưởng đến các phân đoạn giả hiện có.",
+ "LabelDummyChapterDurationHelp": "Khoảng thời gian giữa các phân đoạn giả tính bằng giây. Đặt thành 0 để tắt sinh ra phân đoạn giả. Thay đổi điều này sẽ không ảnh hưởng đến các phân đoạn giả hiện có.",
"LabelChapterImageResolutionHelp": "Độ phân giải của hình ảnh đoạn trích xuất. Việc thay đổi điều này sẽ không ảnh hưởng đến các đoạn giả hiện có.",
"SaveRecordingNFO": "Lưu bản ghi dữ liệu mô tả EPG trong NFO",
"SaveRecordingImagesHelp": "Lưu hình ảnh từ nhà cung cấp danh sách EPG bên cạnh phương tiện.",
@@ -2027,5 +2027,6 @@
"HeaderServerUnavailable": "Máy Chủ Không Khả Dụng",
"HeaderUpdateRequired": "Bắt Buộc Cập Nhập",
"ViewSettings": "Xem cài đặt",
- "MessageForgotPasswordPinReset": "Nhập PIN vào đây để hoàn thành đặt lại Mật Khẩu"
+ "MessageForgotPasswordPinReset": "Nhập PIN vào đây để hoàn thành đặt lại Mật Khẩu",
+ "DownloadManager": "Tải xuống"
}
From 7791a55b36da8cf89d646318f6fe45ef568d208e Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Aindri=C3=BA=20Mac=20Giolla=20Eoin?=
Date: Mon, 19 May 2025 08:43:47 -0400
Subject: [PATCH 309/645] Translated using Weblate (Irish) Translation:
Jellyfin/Jellyfin Web Translate-URL:
https://translate.jellyfin.org/projects/jellyfin/jellyfin-web/ga/
---
src/strings/ga.json | 48 +++++++++++++++++++++++++++++++++++----------
1 file changed, 38 insertions(+), 10 deletions(-)
diff --git a/src/strings/ga.json b/src/strings/ga.json
index b6f8d2f78..91017e5ef 100644
--- a/src/strings/ga.json
+++ b/src/strings/ga.json
@@ -172,7 +172,7 @@
"LabelMetadataSaversHelp": "Roghnaigh na formáidí comhaid le húsáid agus do mheiteashonraí á sábháil.",
"LabelMinResumeDuration": "Íosfhad atosaithe",
"LabelNumber": "Uimhir",
- "LabelParallelImageEncodingLimitHelp": "Líon uasta ionchóduithe íomhá a cheadaítear a rith go comhthreomhar. Má shocraíonn tú é seo go 0, roghnóidh sé teorainn bunaithe ar chroí-chomhaireamh do chórais.",
+ "LabelParallelImageEncodingLimitHelp": "Uasmhéid na n-ionchóduithe íomhá a cheadaítear a rith go comhthreomhar. Má fhágtar seo folamh roghnófar teorainn bunaithe ar chomhaireamh croí do chórais.",
"LabelParentalRating": "Rátáil tuismitheora",
"LabelParentNumber": "Uimhir tuismitheora",
"LabelPostProcessorArgumentsHelp": "Úsáid {path} mar chosán an chomhaid taifeadta.",
@@ -351,7 +351,7 @@
"Letterer": "Leitir Ceanainn",
"LibraryAccessHelp": "Roghnaigh na leabharlanna le roinnt leis an úsáideoir seo. Beidh riarthóirí in ann gach fillteán a chur in eagar ag baint úsáide as an mbainisteoir meiteashonraí.",
"LibraryScanFanoutConcurrency": "Teorainn le tascanna scanadh leabharlainne comhthreomhara",
- "LibraryScanFanoutConcurrencyHelp": "Líon uasta tascanna comhthreomhara le linn scanadh leabharlainne. Má shocraíonn tú é seo go 0, roghnóidh sé teorainn bunaithe ar chroí-chomhaireamh do chórais. RABHADH: D'fhéadfadh socrú na huimhreach seo ró-ard a bheith ina chúis le saincheisteanna le córais comhad líonra; má bhíonn fadhbanna agat an uimhir seo a ísliú.",
+ "LibraryScanFanoutConcurrencyHelp": "Uasmhéid na dtascanna comhthreomhara le linn scananna leabharlainne. Má fhágtar seo folamh roghnófar teorainn bunaithe ar chomhaireamh croí do chórais. RABHADH: D’fhéadfadh fadhbanna a bheith ann le córais chomhad líonra nuair a shocraítear an uimhir seo ró-ard; má bhíonn fadhbanna agat, ísligh an uimhir seo.",
"LimitSupportedVideoResolution": "Cuir teorainn leis an taifeach físe uasta a dtacaítear leis",
"LimitSupportedVideoResolutionHelp": "Bain úsáid as 'Maximum Allowed Video Transcoding Resolution' mar réiteach físe uasta tacaithe.",
"List": "Liosta",
@@ -726,7 +726,7 @@
"Vertical": "Ingearach",
"WriteAccessRequired": "Éilíonn Jellyfin rochtain scríofa ar an bhfillteán seo. Cinntigh le do thoil go bhfuil rochtain scríofa agat agus bain triail eile as.",
"Writer": "Scríbhneoir",
- "AspectRatioFill": "Líon",
+ "AspectRatioFill": "Sín",
"LabelRemuxingInfo": "Eolas Remuxing",
"LabelOriginalMediaInfo": "Buneolas faoi na Meáin",
"LabelSyncPlayInfo": "Eolas sioncronaithePlay",
@@ -805,7 +805,7 @@
"LabelDropLyricsHere": "Buail liricí anseo, nó cliceáil chun brabhsáil.",
"LabelDropShadow": "Buail scáth",
"LabelDropSubtitleHere": "Buail fotheideal anseo, nó cliceáil chun brabhsáil.",
- "LabelDummyChapterDurationHelp": "An t-eatramh idir caibidlí caocha. Socraigh go 0 chun giniúint chaibidil caoch a dhíchumasú. Ní bheidh aon éifeacht ag athrú seo ar chaibidlí caocha atá ann cheana féin.",
+ "LabelDummyChapterDurationHelp": "An t-eatramh idir caibidlí bréige i soicindí. Socraigh go 0 chun giniúint caibidlí bréige a dhíchumasú. Ní bheidh aon tionchar ag athrú seo ar chaibidlí bréige atá ann cheana féin.",
"LabelEnableAudioVbrHelp": "Cuireann ráta giotán athraitheach cáilíocht níos fearr ar fáil do chóimheas meánráta giotán, ach i gcásanna neamhchoitianta d'fhéadfadh saincheisteanna maolánacha agus comhoiriúnachta a bheith mar thoradh orthu.",
"LabelEnableAutomaticPortMap": "Cumasaigh mapáil uathoibríoch calafoirt",
"LabelEnableAutomaticPortMapHelp": "Cuir calafoirt phoiblí ar do ródaire ar aghaidh go huathoibríoch chuig calafoirt áitiúla ar do fhreastalaí trí UPnP. B'fhéidir nach n-oibreoidh sé seo le roinnt samhlacha ródaire nó cumraíochtaí líonra. Ní chuirfear athruithe i bhfeidhm go dtí tar éis atosú freastalaí.",
@@ -1187,7 +1187,7 @@
"TabParentalControl": "Rialú Tuismitheoirí",
"TellUsAboutYourself": "Inis dúinn fút féin",
"TheseSettingsAffectSubtitlesOnThisDevice": "Bíonn tionchar ag na socruithe seo ar fhotheidil ar an ngléas seo",
- "ThisWizardWillGuideYou": "Cabhróidh an draoi seo leat tú a threorú tríd an bpróiseas socraithe. Chun tús a chur leis, roghnaigh an teanga is fearr leat.",
+ "ThisWizardWillGuideYou": "Cabhróidh an draoi seo leat an próiseas socraithe a dhéanamh. Chun tús a chur leis, cuir isteach ainm freastalaí agus roghnaigh do theanga is fearr leat.",
"Thumb": "Ordóg",
"Thursday": "Déardaoin",
"TitleHardwareAcceleration": "Luasghéarú Crua-earraí",
@@ -1386,7 +1386,7 @@
"Sports": "Spórt",
"HeaderFetchImages": "Faigh Íomhánna",
"HeaderForKids": "Do Pháistí",
- "AspectRatioCover": "Clúdach",
+ "AspectRatioCover": "Zúmáil",
"Unreleased": "Gan scaoileadh fós",
"HeaderFrequentlyPlayed": "Seinnte go Minic",
"HeaderGuestCast": "Réaltaí Aoi",
@@ -1420,7 +1420,7 @@
"ButtonOk": "Ceart go leor",
"ButtonPlayer": "Imreoir",
"ButtonPreviousTrack": "An rian roimhe seo",
- "ButtonQuickStartGuide": "Treoir Tosaigh Thapa",
+ "ButtonQuickStartGuide": "Treoir Socraithe",
"ButtonRefreshGuideData": "Athnuaigh Sonraí Treorach",
"ButtonRename": "Athainmnigh",
"ButtonResume": "Athdhúisigh",
@@ -1709,7 +1709,7 @@
"EnableIntelLowPowerH264HwEncoder": "Cumasaigh ionchódóir crua-earraí Intel Low-Power H.264",
"EncodingFormatHelp": "Roghnaigh an t-ionchódú físe gur chóir jellyfin transcode chuig. Úsáidfidh Jellyfin ionchódú bogearraí nuair nach bhfuil luasghéarú crua-earraí don fhormáid roghnaithe ar fáil. Cumasófar ionchódú H264 i gcónaí.",
"ThemeVideo": "Físeán Téama",
- "EnableSplashScreen": "Cumasaigh an splancscáileán",
+ "EnableSplashScreen": "Cumasaigh an íomhá splancscáileáin",
"LabelVppTonemappingContrast": "VPP Tone mapáil gnóthachan codarsnachta",
"MediaInfoDvLevel": "Leibhéal DV",
"LabelQscale": "Qscale",
@@ -1812,8 +1812,36 @@
"LabelSubtitleStyling": "Stíleáil fotheideal",
"Native": "Dúchasach",
"NativeSubtitleStylingHelp": "Ní oibreoidh stíliú fotheideal ar ghléasanna áirithe. Mar sin féin, ní thagann sé le haon forchostais feidhmíochta.",
- "LibraryNameInvalid": "Ní féidir le hainm na leabharlainne a bheith folamh ná spásanna tosaigh/rianta a bheith ann.",
+ "LibraryNameInvalid": "Ní féidir ainm na leabharlainne a fhágáil folamh.",
"DeleteServerConfirmation": "An bhfuil tú cinnte gur mian leat an freastalaí seo a scriosadh?",
"LastActive": "Gníomhach seo caite",
- "LabelDevice": "Gléas"
+ "LabelDevice": "Gléas",
+ "CopyLogSuccess": "Cóipeáladh ábhar an loga go rathúil.",
+ "HeaderServerUnavailable": "Freastalaí Gan Fáil",
+ "ImageDeleteFailed": "Theip ar scriosadh íomhá",
+ "SettingsPageLoadError": "Theip ar an leathanach socruithe a lódáil",
+ "DisplayLoadError": "Tharla earráid agus sonraí cumraíochta an taispeána á lódáil.",
+ "DownloadManager": "Íoslódálacha",
+ "ReadInputAtNativeFramerateHelp": "D’fhéadfadh sé go réiteofaí roinnt fadhbanna tríd an rogha seo a chumasú, e.g. sruthú beo ag stopadh roimh am.",
+ "MetadataNfoLoadError": "Theip ar shocruithe NFO meiteashonraí a lódáil",
+ "ReadInputAtNativeFramerate": "Léigh ionchur ag ráta fráma dúchasach",
+ "LogLoadFailure": "Theip ar an gcomhad loga a luchtú. Seans go bhfuiltear fós ag scríobh chuige go gníomhach.",
+ "HeaderPageNotFound": "Leathanach gan aimsiú",
+ "PageNotFound": "Ní hé seo an leathanach atá á lorg agat.",
+ "LabelGroupShowsIntoCollectionsHelp": "Taispeánfar seónna i mbailiúchán mar mhír ghrúpáilte amháin agus liostaí seónna á dtaispeáint.",
+ "LabelGroupShowsIntoCollections": "Taispeántais ghrúpa i mbailiúcháin",
+ "LimitSegmentLength": "Úsáid codanna HLS níos giorra",
+ "LimitSegmentLengthHelp": "D’fhéadfadh sé go gcuideodh cumasú an rogha seo le cosc a chur ar an seinnteoir HLS dul i bhfostú le linn cuardaigh ar ghléasanna áirithe, amhail teilifíseáin webOS.",
+ "Retry": "Déan iarracht arís",
+ "RetryWithGlobalSearch": "Déan iarracht eile le cuardach domhanda",
+ "ViewSettings": "Féach ar shocruithe",
+ "CustomSplashScreenSize": "Ba chóir go mbeadh íomhánna saincheaptha i gcóimheas gné 16x9 agus méid íosta 1920x1080.",
+ "DeleteCustomImage": "Scrios Íomhá Saincheaptha",
+ "ImageUploadCancelled": "Uaslódáil íomhá curtha ar ceal",
+ "ImageUploadFailed": "Theip ar uaslódáil íomhá",
+ "MessageForgotPasswordPinReset": "Cuir isteach an PIN anseo chun an t-athshocrú pasfhocail a chríochnú",
+ "StreamCountExceedsLimit": "Tá líon na sruthanna níos mó ná an teorainn",
+ "UploadCustomImage": "Uaslódáil Íomhá Saincheaptha",
+ "MetadataImagesLoadError": "Theip ar shocruithe meiteashonraí a lódáil",
+ "HeaderUpdateRequired": "Nuashonrú Riachtanach"
}
From 4d2d46de4bf00fcab5b73862b6aaf4660c6aa903 Mon Sep 17 00:00:00 2001
From: Tal Sarid
Date: Mon, 19 May 2025 17:58:58 -0400
Subject: [PATCH 310/645] Translated using Weblate (Hebrew) Translation:
Jellyfin/Jellyfin Web Translate-URL:
https://translate.jellyfin.org/projects/jellyfin/jellyfin-web/he/
---
src/strings/he.json | 28 ++++++++++++++--------------
1 file changed, 14 insertions(+), 14 deletions(-)
diff --git a/src/strings/he.json b/src/strings/he.json
index b633221ce..08b6830f9 100644
--- a/src/strings/he.json
+++ b/src/strings/he.json
@@ -1375,8 +1375,8 @@
"LabelRecordingPath": "מסלול הקלטה ברירת מחדל",
"LabelScreensaverTimeHelp": "מספר השניות הנחוץ של חוסר פעילות כדי להפעיל את שומר המסך.",
"LabelRepository": "מאגר",
- "LabelSaveTrickplayLocally": "שמירת תמונות טריקפליי ליד המדיה",
- "LabelSaveTrickplayLocallyHelp": "שמירת תמונות טריקפליי בתיקיית המדיה תשים אותם ליד המדיה שלך למיגרציה וגישה קלה.",
+ "LabelSaveTrickplayLocally": "שמירת תמונות Trickplay לצד המדיה",
+ "LabelSaveTrickplayLocallyHelp": "שמירת תמונות Trickplay בתיקיית המדיה תשים אותן לצד המדיה שלך למיגרציה וגישה קלה.",
"LabelRemoteClientBitrateLimit": "גבול קצב הזרמת רשת (Mbps)",
"LabelOptionalNetworkPathHelp": "אם תיקייה זו משותפת ברשת, הגדרת הכתובת המשותפת תאפשר ללקוחות אחרים לגשת לקבצי המדיה ישירות. למשל {0} או {1}.",
"LabelOpenclDeviceHelp": "התקן OpenCL זה משמש למיפוי גוונים. משמאל לנקודה מופיע מספר הפלטפורמה, ומימינה מספר הרכיב בפלטפורמה. ערך ברירת המחדל הוא 0.0. נדרשת תוכנת FFmpeg המכילה את שיטת האצת החומרה OpenCL.",
@@ -1697,7 +1697,7 @@
"RenderPgsSubtitleHelp": "לקבוע אם על הלקוח לרנדר כתוביות PGS במקום להשתמש בכתוביות מוטמעות. זה יכול לחסוך שינוי קידוד בצד השרת על חשבון ביצועי הרנדר בצד השרת.",
"RepeatAll": "חזרה על הכל",
"RepeatOne": "חזרה פעם אחת",
- "ReplaceTrickplayImages": "החלפת תמונות קיימות",
+ "ReplaceTrickplayImages": "החלפת תמונות Trickplay קיימות",
"SearchForLyrics": "חיפוש מילים לשיר",
"SubtitleAppearanceSettingsAlsoPassedToCastDevices": "הגדרות אלה תקפות גם לניגון Google Cast שהופעלו על ידי מכשיר זה.",
"SubtitleMagenta": "לילך",
@@ -1867,16 +1867,16 @@
"LabelVideoRangeType": "סוג טווח וידיאו",
"LabelTrickplayAccel": "הפעלת פענוח חומרה",
"LabelProcessPriority": "עדיפות התהליך",
- "LabelProcessPriorityHelp": "שינוי ערך זה יקבע כמה המעבד מתעדף את תהליך יצירת טריקפליי ביחס לתהליכים אחרים. אם הבחנת בהאטה בזמן יצירת תמונות טריקפליי ולא רוצה לעצור את יצירתם, ניתן להוריד זאת לצד הורדת מספר החוטים.",
+ "LabelProcessPriorityHelp": "שינוי ערך זה יקבע כמה המעבד מתעדף את תהליך יצירת Trickplay ביחס לתהליכים אחרים. אם הבחנת בהאטה בזמן יצירת תמונות Trickplay ולא רוצה לעצור את יצירתם, ניתן להוריד זאת לצד הורדת מספר החוטים.",
"LabelTileHeight": "גובה אריח",
- "LabelWidthResolutionsHelp": "רשימה מופרדת בפסיקים של רוחבים (פיקסלים) שיווצרו על ידי טריקפליי. כל התמונות יווצרו ביחס למקור, למשל רוחב 320 בוידיאו ביחס 16:9 יוציא תמונה ברזולוציה 320x180.",
+ "LabelWidthResolutionsHelp": "רשימה מופרדת בפסיקים של רוחבי התמונות (בפיקסלים) שייווצרו על ידי Trickplay. כל התמונות ייווצרו ביחס למקור, למשל רוחב 320 בווידיאו ביחס 16:9 יוציא תמונה ברזולוציה 320x180.",
"LabelTileWidth": "רוחב אריח",
"LabelTileWidthHelp": "מספר מירבי של תמונות לכל אריח בכיוון אופקי.",
- "LabelExtractTrickplayDuringLibraryScanHelp": "האם ליצור תמונות טריקפליי כאשר וידיאו מיובא במהלך סריקת ספרייה. אחרת, הן ייחולצו במהלך המשימה המתוכננת של טריקפליי. אם היצירה הוגדרה ללא חסימה זה לא ישפיע על זמן הסריקה.",
- "ExtractTrickplayImagesHelp": "תמונות טריקפליי הן דומות לתמונות פרק, פרט לכך שהן מתוחות לכל אורך התוכן ומשמשות לתצוגה מקדימה כאשר גוללים דרך וידיאו.",
+ "LabelExtractTrickplayDuringLibraryScanHelp": "האם ליצור תמונות Trickplay כאשר וידיאו מיובא במהלך סריקת ספרייה. אחרת, הן יחולצו במהלך המשימה המתוכננת של Trickplay. אם היצירה הוגדרה ללא חסימה זה לא ישפיע על זמן הסריקה.",
+ "ExtractTrickplayImagesHelp": "תמונות Trickplay דומות לתמונות פרקים, פרט לכך שהן קיימות לכל אורך התוכן ומשמשות לתצוגה מקדימה כאשר מדלגים קדימה ואחורה בווידיאו.",
"LabelTileHeightHelp": "מספר מירבי של תמונות לכל אריח בכיוון אנכי.",
"LabelJpegQuality": "איכות JPEG",
- "LabelJpegQualityHelp": "איכות כיוו. JPEG בתמונות טריקפליי.",
+ "LabelJpegQualityHelp": "איכות כיווץ JPEG בתמונות Trickplay.",
"LabelQscale": "דרגת איכות התמונה",
"LabelVppTonemappingContrast": "עוצמת ניגודיות במיפוי גוונים של VPP",
"LabelVppTonemappingContrastHelp": "הגדרת עוצמת הניגודיות במיפוי גוונים ב-VPP. הערך המומלץ הוא 1.",
@@ -1888,7 +1888,7 @@
"MediaInfoBlPresentFlag": "דגל bl של דולבי ויז'ן",
"LabelTonemappingMode": "מצב מיפוי גוונים",
"LabelImageInterval": "משך-זמן התמונה",
- "LabelImageIntervalHelp": "משך הזמן (מילישניות) בין כל תמונת טריקפליי חדשה.",
+ "LabelImageIntervalHelp": "משך הזמן (במילי-שניות) בין כל תמונת Trickplay חדשה.",
"LabelWidthResolutions": "רזולוציות רוחב",
"MediaInfoDvLevel": "רמת דולבי ויז'ן",
"MediaInfoRpuPresentFlag": "דגל rpu של דולבי ויז'ן",
@@ -1900,14 +1900,14 @@
"MachineTranslated": "תרגום מכונה",
"ForeignPartsOnly": "כפוי/שפה זרה בלבד",
"HearingImpairedShort": "HI/SDH",
- "LabelExtractTrickplayDuringLibraryScan": "חילוץ תמונות טריקפליי במהלך סריקות ספרייה",
+ "LabelExtractTrickplayDuringLibraryScan": "חילוץ תמונות Trickplay במהלך סריקות ספרייה",
"MediaInfoVideoRangeType": "סוג טווח וידיאו",
"LabelIsHearingImpaired": "כתוביות לחירשים וכבדי שמיעה (SDH)",
"LabelVppTonemappingBrightnessHelp": "הגדרת עוצמת בהירות במיפוי גוונים ב-VPP. הערך המומלץ הוא 16.",
- "Trickplay": "טריקפליי",
+ "Trickplay": "Trickplay",
"LabelTrickplayKeyFrameOnlyExtraction": "יצירת תמונות ממסגרות מפתח בלבד",
"LabelTrickplayKeyFrameOnlyExtractionHelp": "הוצאת מסגרות המפתח בלבד תספק עיבוד מהיר בהרבה עם תזמון פחות מדויק. אם מפענח החומרה המוגדר לא תומך במצב זה, ייעשה שימוש במפענח תוכנה במקום.",
- "LabelTrickplayAccelEncoding": "הפעלת האצת חומרה בקידוד MJPEG",
+ "LabelTrickplayAccelEncoding": "הפעלה של האצת חומרה בקידוד MJPEG",
"LabelTrickplayAccelEncodingHelp": "כרגע זמין רק ב-QSV, VA-API, VideoToolbox, RKMPP, אפשרות זו לא משפיעה על שיטות האצת חומרה אחרות.",
"LabelScanBehavior": "התנהגות סריקה",
"NonBlockingScan": "ללא חסימה - מוסיף את הפעולה לתור, וחוזר",
@@ -1915,11 +1915,11 @@
"PriorityHigh": "גבוהה",
"PriorityAboveNormal": "מעל רגילה",
"PriorityNormal": "רגילה",
- "LabelScanBehaviorHelp": "התנהגות ברירת המחדל היא ללא חסימה, מה שיוסיף מדיה לספרייה לפני שטריקפליי מסיים. חסימה תבטיח שהקבצים של טריקפליי יווצרו לפני שהמדיה נוספת לספרייה, אך תגרום לסריקות להיות משמעותית ארוכות יותר.",
+ "LabelScanBehaviorHelp": "התנהגות ברירת המחדל היא ללא חסימה, מה שיוסיף מדיה לספרייה לפני שיצירת תמונות ה-Trickplay תסתיים. חסימה תבטיח שהקבצים של Trickplay ייווצרו לפני שהמדיה נוספת לספרייה, אך תגרום לסריקות להיות ארוכות יותר משמעותית.",
"LabelTrickplayThreads": "חוטי FFmpeg",
"LabelQscaleHelp": "דרגת האיכות של תמונות שייצאו מ-ffmpeg, כאשר האיכות הכי גבוהה היא 2 והאיכות הכי נמוכה היא 31.",
"LabelTrickplayThreadsHelp": "מספר החוטים שיעברו ל-ffmpeg.",
- "OptionExtractTrickplayImage": "הפעלת חילוץ תמונות של טריקפליי",
+ "OptionExtractTrickplayImage": "הפעלת חילוץ תמונות של Trickplay",
"Anime": "אנימה",
"MoviesAndShows": "סרטים וסדרות",
"HeaderNextEpisode": "הפרק הבא",
From e91089a3006cde1c1e837b1f45271ca92203b613 Mon Sep 17 00:00:00 2001
From: Shuhei Hayashibara
Date: Tue, 20 May 2025 13:20:19 -0400
Subject: [PATCH 311/645] Translated using Weblate (Japanese) Translation:
Jellyfin/Jellyfin Web Translate-URL:
https://translate.jellyfin.org/projects/jellyfin/jellyfin-web/ja/
---
src/strings/ja.json | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/src/strings/ja.json b/src/strings/ja.json
index 3aceacf93..44ffb1c6f 100644
--- a/src/strings/ja.json
+++ b/src/strings/ja.json
@@ -750,7 +750,7 @@
"LabelFolder": "フォルダー",
"LabelForgotPasswordUsernameHelp": "ユーザー名を覚えていたら入力してください。",
"LabelFormat": "フォーマット",
- "LabelDropImageHere": "画像を個々にドロップするか検索する。",
+ "LabelDropImageHere": "ここに画像をドロップするか、クリックして参照してください。",
"LabelEasyPinCode": "簡単な PIN コード",
"LabelManufacturerUrl": "製作社のURL",
"LabelHomeScreenSectionValue": "ホームスクリーンセクション {0}",
From 3ea9fea17d9e3339a75958197f5e422ee9f14592 Mon Sep 17 00:00:00 2001
From: Max
Date: Tue, 20 May 2025 18:38:38 -0400
Subject: [PATCH 312/645] Fix music playback order for artists and albums
---
src/components/playback/playbackmanager.js | 8 ++++++--
1 file changed, 6 insertions(+), 2 deletions(-)
diff --git a/src/components/playback/playbackmanager.js b/src/components/playback/playbackmanager.js
index 1b5aee732..767aa7106 100644
--- a/src/components/playback/playbackmanager.js
+++ b/src/components/playback/playbackmanager.js
@@ -1843,7 +1843,7 @@ export class PlaybackManager {
ArtistIds: firstItem.Id,
Filters: 'IsNotFolder',
Recursive: true,
- SortBy: options.shuffle ? 'Random' : 'SortName',
+ SortBy: options.shuffle ? 'Random' : 'Album,ParentIndexNumber,IndexNumber,SortName',
MediaTypes: 'Audio'
}, queryOptions));
case 'PhotoAlbum':
@@ -1924,7 +1924,11 @@ export class PlaybackManager {
if (options.shuffle) {
sortBy = 'Random';
} else if (firstItem.Type !== 'BoxSet') {
- sortBy = 'SortName';
+ if (firstItem.CollectionType === 'music' || firstItem.MediaType === 'Audio') {
+ sortBy = 'Album,ParentIndexNumber,IndexNumber,SortName';
+ } else {
+ sortBy = 'SortName';
+ }
}
return getItemsForPlayback(serverId, mergePlaybackQueries({
From 323630c4ea90726ce89dabe12b3fe9e4ab548fa5 Mon Sep 17 00:00:00 2001
From: deneille
Date: Wed, 21 May 2025 00:38:41 -0400
Subject: [PATCH 313/645] hid load spinner when playback modal is closed
---
src/components/dialogHelper/dialogHelper.js | 3 +++
1 file changed, 3 insertions(+)
diff --git a/src/components/dialogHelper/dialogHelper.js b/src/components/dialogHelper/dialogHelper.js
index 56f338ca6..e8cc85609 100644
--- a/src/components/dialogHelper/dialogHelper.js
+++ b/src/components/dialogHelper/dialogHelper.js
@@ -3,6 +3,7 @@ import browser from '../../scripts/browser';
import layoutManager from '../layoutManager';
import inputManager from '../../scripts/inputManager';
import { toBoolean } from '../../utils/string.ts';
+import { hide } from '../loading/loading.ts';
import dom from '../../scripts/dom';
import { history } from 'RootAppRouter';
@@ -99,6 +100,8 @@ function DialogHashHandler(dlg, hash, resolve) {
}
removeBackdrop(dlg);
+ hide();
+
dlg.classList.remove('opened');
if (removeScrollLockOnClose) {
From cff41588d5d60b5e5f1a9408a254b8602e965fb0 Mon Sep 17 00:00:00 2001
From: nextlooper42
Date: Wed, 21 May 2025 07:14:03 -0400
Subject: [PATCH 314/645] Translated using Weblate (Slovak) Translation:
Jellyfin/Jellyfin Web Translate-URL:
https://translate.jellyfin.org/projects/jellyfin/jellyfin-web/sk/
---
src/strings/sk.json | 8 +++++---
1 file changed, 5 insertions(+), 3 deletions(-)
diff --git a/src/strings/sk.json b/src/strings/sk.json
index 68fd5db41..b99c10fe6 100644
--- a/src/strings/sk.json
+++ b/src/strings/sk.json
@@ -47,7 +47,7 @@
"ButtonParentalControl": "Rodičovská kontrola",
"ButtonPause": "Pozastaviť",
"ButtonPreviousTrack": "Predchádzajúca stopa",
- "ButtonQuickStartGuide": "Príručka rýchleho štartu",
+ "ButtonQuickStartGuide": "Sprievodca nastavením",
"ButtonRefreshGuideData": "Obnoviť údaje programového sprievodcu",
"ButtonRemove": "Odstrániť",
"ButtonRename": "Premenovať",
@@ -1698,7 +1698,7 @@
"ResolutionMatchSource": "Rovnaké ako zdroj",
"SaveRecordingNFOHelp": "Uloží metadáta z EPG položiek sprievodcu spolu s médiami.",
"SaveRecordingImages": "Uložiť obrázky EPG nahrávky",
- "LabelDummyChapterDurationHelp": "Interval medzi fiktívnymi kapitolami. Nastavením na 0 vypnete generovanie fiktívnych kapitol. Zmena tejto hodnoty nebude mať žiadny vplyv na existujúce fiktívne kapitoly.",
+ "LabelDummyChapterDurationHelp": "Interval medzi fiktívnymi kapitolami v sekundách. Nastavením na 0 vypnete generovanie fiktívnych kapitol. Zmena tejto hodnoty nebude mať žiadny vplyv na existujúce fiktívne kapitoly.",
"SaveRecordingNFO": "Uložiť metadáta nahrávky zo sprievodcu EPG do NFO",
"SaveRecordingImagesHelp": "Uloží obrázky z EPG položiek sprievodcu spolu s médiami.",
"HeaderRecordingMetadataSaving": "Metadáta nahrávok",
@@ -2029,5 +2029,7 @@
"LabelGroupShowsIntoCollectionsHelp": "Seriály v kolekcii budú zobrazené ako jedna zoskupená položka v zozname seriálov.",
"HeaderServerUnavailable": "Server nie je dostupný",
"HeaderUpdateRequired": "Vyžaduje sa aktualizácia",
- "DownloadManager": "Stiahnuté"
+ "DownloadManager": "Stiahnuté",
+ "ViewSettings": "Zobraziť nastavenia",
+ "MessageForgotPasswordPinReset": "Zadajte PIN kód na dokončenie obnovy hesla"
}
From a208ccea9d541602fcb60a622514c24b3b5ba970 Mon Sep 17 00:00:00 2001
From: hoanghuy309
Date: Wed, 21 May 2025 07:33:36 -0400
Subject: [PATCH 315/645] Translated using Weblate (Vietnamese) Translation:
Jellyfin/Jellyfin Web Translate-URL:
https://translate.jellyfin.org/projects/jellyfin/jellyfin-web/vi/
---
src/strings/vi.json | 8 ++++----
1 file changed, 4 insertions(+), 4 deletions(-)
diff --git a/src/strings/vi.json b/src/strings/vi.json
index 7ed489819..ab704bc34 100644
--- a/src/strings/vi.json
+++ b/src/strings/vi.json
@@ -269,7 +269,7 @@
"HeaderCastAndCrew": "Diễn Viên & Ê-kíp",
"HeaderCancelSeries": "Huỷ Loạt Phim",
"HeaderCancelRecording": "Hủy Ghi Lại",
- "HeaderBranding": "Tạo Thương Hiệu",
+ "HeaderBranding": "Thương hiệu",
"HeaderBlockItemsWithNoRating": "Khoá những mục không có thông tin đánh giá hoặc thông tin không đáng tin cậy",
"HeaderAudioSettings": "Cài Đặt Âm Thanh",
"HeaderAudioBooks": "Sách Nói",
@@ -437,7 +437,7 @@
"HeaderSecondsValue": "{0} Giây",
"HeaderSeasons": "Phần",
"HeaderScenes": "Phân Cảnh",
- "HeaderRunningTasks": "Những Tác Vụ Hoạt Động",
+ "HeaderRunningTasks": "Tác Vụ Đang Chạy",
"HeaderRevisionHistory": "Lịch Sử Chỉnh Sửa",
"HeaderResponseProfileHelp": "Cấu hình phản hồi là phương thức tuỳ chỉnh thông tin gửi về thiết bị phát khi phát một số loại phương tiện.",
"HeaderResponseProfile": "Hồ Sơ Phản Hồi",
@@ -1194,7 +1194,7 @@
"SearchForSubtitles": "Tìm kiếm phụ đề",
"SearchForMissingMetadata": "Tìm kiếm dữ liệu mô tả bị thiếu",
"SearchForCollectionInternetMetadata": "Tìm kiếm ảnh bìa minh họa và dữ liệu mô tả qua Internet",
- "Search": "Tìm Kiếm",
+ "Search": "Tìm kiếm",
"Screenshots": "Ảnh chụp màn hình",
"Screenshot": "Ảnh chụp màn hình",
"Schedule": "Lên lịch",
@@ -1207,7 +1207,7 @@
"Rewind": "Tua Chậm Lại",
"ResumeAt": "Tiếp tục từ {0}",
"Restart": "Khởi Động Lại",
- "ResetPassword": "Đặt lại mật khẩu",
+ "ResetPassword": "Đặt Lại Mật Khẩu",
"ReplaceExistingImages": "Thay thế hình ảnh hiện có",
"ReplaceAllMetadata": "Thay thế tất cả dữ liệu mô tả",
"RepeatOne": "Lặp lại một lần",
From 30acd068c0e3db3832385b1265ea1899be5cd824 Mon Sep 17 00:00:00 2001
From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com>
Date: Thu, 22 May 2025 05:36:47 +0000
Subject: [PATCH 316/645] Update dependency @jellyfin/sdk to
v0.0.0-unstable.202505220501
---
package-lock.json | 14 +++++++-------
package.json | 2 +-
2 files changed, 8 insertions(+), 8 deletions(-)
diff --git a/package-lock.json b/package-lock.json
index bcdf14725..e262f0c6d 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -18,7 +18,7 @@
"@fontsource/noto-sans-sc": "5.2.5",
"@fontsource/noto-sans-tc": "5.2.5",
"@jellyfin/libass-wasm": "4.2.3",
- "@jellyfin/sdk": "0.0.0-unstable.202505160502",
+ "@jellyfin/sdk": "0.0.0-unstable.202505220501",
"@jellyfin/ux-web": "1.0.0",
"@mui/icons-material": "6.4.11",
"@mui/material": "6.4.11",
@@ -4095,9 +4095,9 @@
"license": "LGPL-2.1-or-later AND (FTL OR GPL-2.0-or-later) AND MIT AND MIT-Modern-Variant AND ISC AND NTP AND Zlib AND BSL-1.0"
},
"node_modules/@jellyfin/sdk": {
- "version": "0.0.0-unstable.202505160502",
- "resolved": "https://registry.npmjs.org/@jellyfin/sdk/-/sdk-0.0.0-unstable.202505160502.tgz",
- "integrity": "sha512-Iqdf7ziGKdyIHzEWVJArYmFdyUMOf9L6VJXBsOLNHczBQsBpFrs2Zn9qyh/oVw+QT/XyFB7TZlkIM7O96eH63w==",
+ "version": "0.0.0-unstable.202505220501",
+ "resolved": "https://registry.npmjs.org/@jellyfin/sdk/-/sdk-0.0.0-unstable.202505220501.tgz",
+ "integrity": "sha512-ad+5uCpfWF4OcFzkcYRCscmkJGo7zW5H50eHRfdZYefuU5Cg321QOsDrYn7pPl+7Ji+0h97zi7KqWuIbY50MyQ==",
"license": "MPL-2.0",
"peerDependencies": {
"axios": "^1.3.4"
@@ -27773,9 +27773,9 @@
"integrity": "sha512-C0OlBxIr9NdeFESMTA/OVDqNSWtog6Mi7wwzwH12xbZpxsMD0RgCupUcIP7zZgcpTNecW3fZq5d6xVo7Q8HEJw=="
},
"@jellyfin/sdk": {
- "version": "0.0.0-unstable.202505160502",
- "resolved": "https://registry.npmjs.org/@jellyfin/sdk/-/sdk-0.0.0-unstable.202505160502.tgz",
- "integrity": "sha512-Iqdf7ziGKdyIHzEWVJArYmFdyUMOf9L6VJXBsOLNHczBQsBpFrs2Zn9qyh/oVw+QT/XyFB7TZlkIM7O96eH63w==",
+ "version": "0.0.0-unstable.202505220501",
+ "resolved": "https://registry.npmjs.org/@jellyfin/sdk/-/sdk-0.0.0-unstable.202505220501.tgz",
+ "integrity": "sha512-ad+5uCpfWF4OcFzkcYRCscmkJGo7zW5H50eHRfdZYefuU5Cg321QOsDrYn7pPl+7Ji+0h97zi7KqWuIbY50MyQ==",
"requires": {}
},
"@jellyfin/ux-web": {
diff --git a/package.json b/package.json
index 9b4231c6a..615036759 100644
--- a/package.json
+++ b/package.json
@@ -84,7 +84,7 @@
"@fontsource/noto-sans-sc": "5.2.5",
"@fontsource/noto-sans-tc": "5.2.5",
"@jellyfin/libass-wasm": "4.2.3",
- "@jellyfin/sdk": "0.0.0-unstable.202505160502",
+ "@jellyfin/sdk": "0.0.0-unstable.202505220501",
"@jellyfin/ux-web": "1.0.0",
"@mui/icons-material": "6.4.11",
"@mui/material": "6.4.11",
From ebeb81a2359861a99f954dedcc562aca766b648d Mon Sep 17 00:00:00 2001
From: BromTeque
Date: Thu, 22 May 2025 12:37:31 -0400
Subject: [PATCH 317/645] =?UTF-8?q?Translated=20using=20Weblate=20(Norwegi?=
=?UTF-8?q?an=20Bokm=C3=A5l)=20Translation:=20Jellyfin/Jellyfin=20Web=20Tr?=
=?UTF-8?q?anslate-URL:=20https://translate.jellyfin.org/projects/jellyfin?=
=?UTF-8?q?/jellyfin-web/nb=5FNO/?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
src/strings/nb.json | 8 +++++---
1 file changed, 5 insertions(+), 3 deletions(-)
diff --git a/src/strings/nb.json b/src/strings/nb.json
index 9ccd2927f..daa22e0d7 100644
--- a/src/strings/nb.json
+++ b/src/strings/nb.json
@@ -55,7 +55,7 @@
"ButtonOpen": "Åpne",
"ButtonParentalControl": "Foreldrekontroll",
"ButtonPreviousTrack": "Forrige spor",
- "ButtonQuickStartGuide": "Hurtigveiledning",
+ "ButtonQuickStartGuide": "Oppsettsveiledning",
"ButtonRefreshGuideData": "Oppdater TV-guidedata",
"ButtonRemove": "Fjern",
"ButtonRename": "Endre navn",
@@ -1694,7 +1694,7 @@
"LabelDummyChapterDuration": "Intervall",
"HeaderRecordingMetadataSaving": "Opptak metadata",
"HeaderPerformance": "Ytelse",
- "LabelDummyChapterDurationHelp": "Tid mellom dummykapitler. Sett til 0 for å slå av dummykapittelgenerering. Endring av dette vil ha ingen effekt på eksiterende dummykapitler.",
+ "LabelDummyChapterDurationHelp": "Tid mellom dummykapitler i sekunder. Sett til 0 for å slå av dummykapittelgenerering. Endring av dette vil ha ingen effekt på eksisterende dummykapitler.",
"LabelEnableAudioVbrHelp": "Variabel bithastighet tilbyr bedre forhold mellom kvalitet og gjennomsnittlig bithastighet, men kan i visse tilfeller forårsake buffering og problemer med kompatibilitet.",
"LabelEnableAudioVbr": "Aktiver VBR lydenkoding",
"SubtitleBlack": "Svart",
@@ -2024,5 +2024,7 @@
"StreamCountExceedsLimit": "Antallet strømninger overskrider grensen",
"ReadInputAtNativeFramerate": "Les inndata i opprinnelig bildefrekvens",
"HeaderUpdateRequired": "Oppdatering kreves",
- "ViewSettings": "Se instillinger"
+ "ViewSettings": "Se instillinger",
+ "MessageForgotPasswordPinReset": "Tast inn PIN-kode her for å fullføre tilbakestilling av passordet",
+ "DownloadManager": "Nedlastinger"
}
From b8a566b476e4d771522cdee5c7b02930ac51a61e Mon Sep 17 00:00:00 2001
From: HanaO00
Date: Thu, 22 May 2025 22:09:34 -0400
Subject: [PATCH 318/645] 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 3a700a6d3..8abff338c 100644
--- a/src/strings/fr.json
+++ b/src/strings/fr.json
@@ -1694,7 +1694,7 @@
"HeaderRecordingMetadataSaving": "Enregistrement des métadonnées",
"SaveRecordingNFO": "Enregistrer les métadonnées du fournisseur dans le fichier NFO",
"SaveRecordingImages": "Enregistrer les images des métadonnées du fournisseur",
- "LabelDummyChapterDurationHelp": "Intervalle entre deux chapitres factices en seondes ou 0 pour désactiver la génération. Changer la valeur n’affectera pas les chapitres existants.",
+ "LabelDummyChapterDurationHelp": "Intervalle entre deux chapitres factices en secondes ou 0 pour désactiver la génération. Changer la valeur n’affectera pas les chapitres existants.",
"LabelDummyChapterCount": "Limite",
"LabelChapterImageResolution": "Résolution",
"LabelChapterImageResolutionHelp": "La résolution d'image des chapitre factices. Changer la valeur n’affectera pas les chapitres existants.",
From 09b0e1b677db0e54c50e1082953d388bbb674172 Mon Sep 17 00:00:00 2001
From: Chatcharin Sangbutsarakum
Date: Thu, 22 May 2025 23:54:24 -0400
Subject: [PATCH 319/645] Translated using Weblate (Thai) Translation:
Jellyfin/Jellyfin Web Translate-URL:
https://translate.jellyfin.org/projects/jellyfin/jellyfin-web/th/
---
src/strings/th.json | 41 ++++++++++++++++++++++++++++++++++++++---
1 file changed, 38 insertions(+), 3 deletions(-)
diff --git a/src/strings/th.json b/src/strings/th.json
index 483ee432c..bdd6490ea 100644
--- a/src/strings/th.json
+++ b/src/strings/th.json
@@ -133,7 +133,7 @@
"ButtonCast": "แคสต์ไปยังอุปกรณ์",
"ButtonBack": "กลับ",
"ButtonAddMediaLibrary": "เพิ่มมีเดียไลบรารี",
- "BurnSubtitlesHelp": "เลือกว่าเซิร์ฟเวอร์ควรฝังคำบรรยายลงไปในวิดีโอในขณะที่แปลงรหัสวิดีโอหรือไม่ หลีกเหลี่ยงสิ่งนี้จะทำให้ประสิทธิภาพดีขึ้นอย่างมาก เลือก อัตโนมัติ เพื่อที่จะฝังคำบรรยายตามฟอร์แมต (VobSub, PGS, SUB, IDX, และอื่นๆ) และคำบรรยาย ASS หรือ SSA บางรายการ",
+ "BurnSubtitlesHelp": "กำหนดว่าเซิร์ฟเวอร์ควรเผาคำบรรยายลงในวิดีโอหรือไม่ การหลีกเลี่ยงการเผาคำบรรยายจะช่วยเพิ่มประสิทธิภาพได้อย่างมาก หากเลือก “อัตโนมัติ” ระบบจะเผาคำบรรยายที่เป็นภาพ (เช่น VobSub, PGS, SUB, IDX เป็นต้น) และคำบรรยายบางประเภทในรูปแบบ ASS หรือ SSA โดยอัตโนมัติ",
"Auto": "อัตโนมัติ",
"BirthPlaceValue": "สถานที่เกิด: {0}",
"BirthLocation": "สถานที่เกิด",
@@ -144,11 +144,46 @@
"Aired": "ออกอากาศ",
"AlwaysPlaySubtitles": "แสดงตลอด",
"AllowCollectionManagement": "อนุญาตให้ผู้ใช้นี้จัดการคอลเลกชัน",
- "AllowedRemoteAddressesHelp": "คอมม่าเป็นการแบ่งเลขที่อยู่ IP หรือ การเข้า IP/netmask สำหรับโครงข่ายนั้นที่จะต้องถูกอนุญาตให้เชื่อมต่อระยะไกล ถ้าเว้นว่างไว้การเชื่อมต่อระยะไกลจะถูกอนุญาตโดยอัตโนมัติ",
+ "AllowedRemoteAddressesHelp": "คอมม่าเป็นการแบ่งเลขที่อยู่ IP หรือ การเข้า IP/netmask สำหรับโครงข่ายนั้นที่จะต้องถูกอนุญาตให้เชื่อมต่อระยะไกล ถ้าเว้นว่างไว้การเชื่อมต่อระยะไกลจะถูกอนุญาตโดยอัตโนมัติ",
"AllowFfmpegThrottling": "กำลังเข้ารหัส",
"AllowContentWithTagsHelp": "แสดงสื่อที่สอดคล้องกับ Tag เฉพาะทางอย่างน้อย 1 Tag",
"AllowSubtitleManagement": "อนุญาติให้ผู้ใช้ท่านนี้แก้ไขคำบรรยายใต้วิดีโอได้",
"AllowFfmpegThrottlingHelp": "เมื่อกระบวนการแปลงรหัส (transcode) หรือเปลี่ยนคอนเทนเนอร์ (remux) มีความคืบหน้าเร็วกว่าตำแหน่งที่กำลังเล่นอยู่ในปัจจุบันมากพอแล้ว ระบบจะหยุดชั่วคราวโดยอัตโนมัติ เพื่อลดการใช้ทรัพยากรของระบบ ฟีเจอร์นี้มีประโยชน์มากที่สุดเมื่อรับชมวิดีโอโดยไม่ได้เลื่อนตำแหน่งบ่อยๆ แต่หากพบปัญหาในการเล่น ให้ปิดฟีเจอร์นี้ออก",
"AllowFmp4TranscodingContainerHelp": "อนุญาตให้ใช้คอนเทนเนอร์แบบ fMP4 ในการแปลงรหัสสำหรับจูนเนอร์นี้ เพื่อให้สามารถเล่นเนื้อหาที่เข้ารหัสแบบ HEVC และ HDR ได้ แต่ไม่ใช่จูนเนอร์ทุกตัวที่จะรองรับคอนเทนเนอร์ประเภทนี้ หากพบปัญหาในการเล่นเนื้อหา ให้ปิดฟีเจอร์นี้ออก",
- "AirPlay": "แอร์เพลย์"
+ "AirPlay": "แอร์เพลย์",
+ "AllowHWTranscodingHelp": "อนุญาตให้จูนเนอร์แปลงสตรีมแบบเรียลไทม์ ซึ่งอาจช่วยลดภาระการแปลงสัญญาณที่ต้องทำโดยเซิร์ฟเวอร์ลงได้",
+ "Audio": "เสียง",
+ "AskAdminToCreateLibrary": "โปรดติดต่อผู้ดูแลระบบเพื่อสร้างไลบรารี",
+ "AllowOnTheFlySubtitleExtractionHelp": "สามารถดึงคำบรรยายที่ฝังอยู่ในวิดีโอออกมาและส่งให้ผู้ใช้ในรูปแบบข้อความธรรมดา เพื่อช่วยหลีกเลี่ยงการแปลงสัญญาณวิดีโอ อย่างไรก็ตาม บนอุปกรณ์บางระบบกระบวนการนี้อาจใช้เวลานานและทำให้การเล่นวิดีโอสะดุดขณะดึงคำบรรยาย หากปิดการทำงานนี้ คำบรรยายที่ฝังจะถูกเผารวมเข้ากับวิดีโอในระหว่างการแปลงสัญญาณ เมื่ออุปกรณ์ผู้ใช้ไม่รองรับคำบรรยายโดยตรง",
+ "AllowTonemappingHelp": "การทำ Tone-mapping สามารถแปลงช่วงไดนามิกของวิดีโอจาก HDR เป็น SDR โดยยังคงรักษารายละเอียดของภาพและสีไว้ ซึ่งเป็นข้อมูลสำคัญในการแสดงภาพให้ใกล้เคียงกับฉากต้นฉบับ ปัจจุบันรองรับเฉพาะวิดีโอแบบ HDR10, HLG และ DoVi ที่เป็นแบบ 10 บิตเท่านั้น และจำเป็นต้องมีระบบรันไทม์ GPGPU ที่รองรับในการใช้งานฟีเจอร์นี้",
+ "AlwaysPlaySubtitlesHelp": "คำบรรยายที่ตรงกับภาษาที่ตั้งค่าไว้จะถูกโหลดโดยไม่คำนึงถึงภาษาของเสียงพูดที่อยู่ในวิดีโอ",
+ "AlwaysRemuxMp3AudioFilesHelp": "หากคุณมีไฟล์ที่เบราว์เซอร์คำนวณเวลาไม่ถูกต้อง ให้เปิดใช้งานตัวเลือกนี้เพื่อใช้เป็นวิธีแก้ไขชั่วคราว",
+ "AuthProviderHelp": "เลือกผู้ให้บริการยืนยันตัวตนที่จะใช้ในการตรวจสอบรหัสผ่านของผู้ใช้นี้",
+ "Browse": "เรียกดู",
+ "AsManyAsPossible": "ให้ได้มากที่สุด",
+ "ButtonActivate": "เปิดใช้งาน",
+ "AllowOnTheFlySubtitleExtraction": "อนุญาตให้แตกไฟล์คำบรรยายแบบเรียลไทม์",
+ "Ascending": "เรียงจากน้อยไปมาก",
+ "BackdropScreensaver": "ภาพพื้นหลังสกรีนเซฟเวอร์",
+ "Bold": "ตัวหนา",
+ "LabelTitle": "ชื่อเรื่อง",
+ "LabelTonemappingAlgorithm": "เลือกอัลกอริทึม Tone Mapping ที่ต้องการใช้งาน",
+ "Author": "ผู้เขียน",
+ "BlockContentWithTagsHelp": "ซ่อนสื่อที่มีแท็กอย่างน้อยหนึ่งรายการตามที่ระบุไว้",
+ "LabelTag": "แท็ก",
+ "LabelThrottleDelaySecondsHelp": "เวลาในหน่วยวินาทีหลังจากที่ตัวแปลงสัญญาณจะถูกจำกัดความเร็ว ค่านี้ต้องมากพอเพื่อให้ฝั่งผู้ใช้สามารถรักษาบัฟเฟอร์ให้เพียงพอ สามารถใช้งานได้เฉพาะเมื่อมีการเปิดใช้งานการจำกัดความเร็วเท่านั้น",
+ "LabelTextColor": "สีตัวอักษร",
+ "LabelTextBackgroundColor": "สีของพื้นหลังตัวอักษร",
+ "LabelSegmentKeepSeconds": "เวลาที่จะเก็บข้อมูลแต่ละเซ็กเมนต์ไว้",
+ "LabelSegmentKeepSecondsHelp": "ระยะเวลาในหน่วยวินาที ที่จะเก็บเซ็กเมนต์ไว้หลังจากที่ถูกดาวน์โหลดโดยผู้ใช้ ใช้งานได้เฉพาะเมื่อมีการเปิดใช้งานการลบเซ็กเมนต์เท่านั้น",
+ "AlwaysRemuxFlacAudioFilesHelp": "หากคุณมีไฟล์ที่เบราว์เซอร์ไม่สามารถเล่นได้หรือคำนวณเวลาไม่ถูกต้อง ให้เปิดใช้งานตัวเลือกนี้เพื่อใช้เป็นวิธีแก้ไขชั่วคราว",
+ "AllowTonemappingSoftwareHelp": "การทำ Tone-mapping สามารถแปลงช่วงไดนามิกของวิดีโอจาก HDR เป็น SDR โดยยังคงรักษารายละเอียดของภาพและสีไว้ ซึ่งเป็นข้อมูลสำคัญในการแสดงผลให้ใกล้เคียงกับฉากจริงมากที่สุด ปัจจุบันรองรับเฉพาะวิดีโอแบบ 10 บิตในรูปแบบ HDR10, HLG และ DoVi เท่านั้น",
+ "LabelSystem": "ระบบ",
+ "AutoSubtitleStylingHelp": "โหมดนี้จะสลับการแสดงผลคำบรรยายระหว่างรูปแบบดั้งเดิมของอุปกรณ์และรูปแบบที่กำหนดเองโดยอัตโนมัติ ตามประเภทของอุปกรณ์ที่ใช้งาน",
+ "LabelTextWeight": "ความหนาตัวอักษร",
+ "LabelTheme": "ธีม",
+ "LabelTime": "เวลา",
+ "LabelTimeLimitHours": "จำกัดเวลา (ชั่วโมง)",
+ "LabelTextSize": "ขนาดตัวอักษร",
+ "Anime": "อนิเมะ"
}
From 15b7847c2ede2b7a64b021a2db3fba8c372f3c0c Mon Sep 17 00:00:00 2001
From: Pere
Date: Fri, 23 May 2025 02:27:58 -0400
Subject: [PATCH 320/645] Translated using Weblate (Catalan) Translation:
Jellyfin/Jellyfin Web Translate-URL:
https://translate.jellyfin.org/projects/jellyfin/jellyfin-web/ca/
---
src/strings/ca.json | 9 ++++++---
1 file changed, 6 insertions(+), 3 deletions(-)
diff --git a/src/strings/ca.json b/src/strings/ca.json
index db3789058..c04d94cb0 100644
--- a/src/strings/ca.json
+++ b/src/strings/ca.json
@@ -35,7 +35,7 @@
"ButtonParentalControl": "Control parental",
"ButtonPause": "Pausa",
"ButtonPreviousTrack": "Pista anterior",
- "ButtonQuickStartGuide": "Guia d'inici ràpid",
+ "ButtonQuickStartGuide": "Guia de configuració",
"ButtonRefreshGuideData": "Actualitza les dades de la guia",
"ButtonRemove": "Elimina",
"ButtonResetEasyPassword": "Restabliu el codi Easy PIN",
@@ -1694,7 +1694,7 @@
"HeaderDummyChapter": "Imatges dels capítols",
"LabelDummyChapterCount": "Límit",
"LabelDummyChapterDuration": "Interval",
- "LabelDummyChapterDurationHelp": "L'interval entre capítols ficticis. Ajusta-ho a 0 per a desactivar la generació de capítols ficticis. Canviar-ho no afectarà els capítols ficticis existents.",
+ "LabelDummyChapterDurationHelp": "L'interval entre capítols ficticis en segons. Ajusta-ho a 0 per a desactivar la generació de capítols ficticis. Canviar-ho no afectarà els capítols ficticis existents.",
"LabelChapterImageResolution": "Resolució",
"LabelChapterImageResolutionHelp": "La resolució de les imatges del capítol extretes. Canviar-ho no afectarà els capítols ficticis existents.",
"ResolutionMatchSource": "Coincidir amb la font",
@@ -2024,5 +2024,8 @@
"LimitSegmentLength": "Utilitzar segments HLS escurçats",
"LimitSegmentLengthHelp": "Activar aquesta opció pot ajudar a prevenir que el reproductor HLS es pengi durant la cerca en alguns dispositius, com televisors webOS.",
"HeaderServerUnavailable": "El Servidor no està disponible",
- "HeaderUpdateRequired": "Cal una actualització"
+ "HeaderUpdateRequired": "Cal una actualització",
+ "ViewSettings": "Configuració de vista",
+ "DownloadManager": "Descarregues",
+ "MessageForgotPasswordPinReset": "Introdueix PIN aquí per acabar el Restabliment de contrasenya"
}
From d218368b50ea744503e7ac4d3f8bc2ba6dad5d85 Mon Sep 17 00:00:00 2001
From: viown <48097677+viown@users.noreply.github.com>
Date: Sat, 8 Mar 2025 12:33:28 +0300
Subject: [PATCH 321/645] Enhance skip button design
---
src/components/playback/skipbutton.scss | 17 ++++++-----------
1 file changed, 6 insertions(+), 11 deletions(-)
diff --git a/src/components/playback/skipbutton.scss b/src/components/playback/skipbutton.scss
index 63eb13b9c..86540c684 100644
--- a/src/components/playback/skipbutton.scss
+++ b/src/components/playback/skipbutton.scss
@@ -2,7 +2,7 @@
position: fixed;
left: 0;
right: 0;
- bottom: 18%;
+ bottom: 8rem;
pointer-events: none;
z-index: 10000;
}
@@ -11,26 +11,21 @@
display: flex;
align-items: center;
margin-left: auto;
- margin-right: 16%;
+ margin-right: 6rem;
+ z-index: 10000;
padding: 12px 20px;
- color: black;
+ background-color: #303030;
+ color: rgba(255, 255, 255, 0.87);
border: none;
- border-radius: 100px;
+ border-radius: 0.2em;
font-weight: bold;
font-size: 1.2em;
transition: opacity 200ms ease-out;
gap: 3px;
- box-shadow: 7px 6px 15px -14px rgba(0, 0, 0, 0.65);
cursor: pointer;
pointer-events: auto;
}
-@media (orientation: landscape) and (max-height: 500px) {
- .skip-button {
- bottom: 27%;
- }
-}
-
.no-transition {
transition: none;
}
From e2a22830520fcbb045a6817b669fff2a1cee678f Mon Sep 17 00:00:00 2001
From: Bill Thornton
Date: Fri, 16 May 2025 12:54:58 -0400
Subject: [PATCH 322/645] Migrate mui themes to css vars
---
src/hooks/useUserTheme.ts | 6 +-
src/themes/UserThemeProvider.tsx | 28 ++++---
src/themes/appletv/index.ts | 27 -------
src/themes/blueradiance/index.ts | 16 ----
src/themes/dark/index.ts | 7 --
src/themes/defaults.ts | 11 ++-
src/themes/light/index.ts | 30 -------
src/themes/purplehaze/index.ts | 22 -----
src/themes/themes.ts | 135 ++++++++++++++++++++++++-------
src/themes/wmc/index.ts | 16 ----
10 files changed, 135 insertions(+), 163 deletions(-)
delete mode 100644 src/themes/appletv/index.ts
delete mode 100644 src/themes/blueradiance/index.ts
delete mode 100644 src/themes/dark/index.ts
delete mode 100644 src/themes/light/index.ts
delete mode 100644 src/themes/purplehaze/index.ts
delete mode 100644 src/themes/wmc/index.ts
diff --git a/src/hooks/useUserTheme.ts b/src/hooks/useUserTheme.ts
index 29593ddca..2d60c173c 100644
--- a/src/hooks/useUserTheme.ts
+++ b/src/hooks/useUserTheme.ts
@@ -1,12 +1,14 @@
import { useThemes } from './useThemes';
import { useUserSettings } from './useUserSettings';
+const FALLBACK_THEME_ID = 'dark';
+
export function useUserTheme() {
const { theme, dashboardTheme } = useUserSettings();
const { defaultTheme } = useThemes();
return {
- theme: theme || defaultTheme?.id,
- dashboardTheme: dashboardTheme || defaultTheme?.id
+ theme: theme || defaultTheme?.id || FALLBACK_THEME_ID,
+ dashboardTheme: dashboardTheme || defaultTheme?.id || FALLBACK_THEME_ID
};
}
diff --git a/src/themes/UserThemeProvider.tsx b/src/themes/UserThemeProvider.tsx
index bdffd2748..e3ea9eb17 100644
--- a/src/themes/UserThemeProvider.tsx
+++ b/src/themes/UserThemeProvider.tsx
@@ -1,11 +1,11 @@
-import { ThemeProvider } from '@mui/material/styles';
+import { type SupportedColorScheme, ThemeProvider, useColorScheme } from '@mui/material/styles';
import React, { type FC, type PropsWithChildren, useState, useEffect } from 'react';
import { useLocation } from 'react-router-dom';
import { DASHBOARD_APP_PATHS } from 'apps/dashboard/routes/routes';
import { useUserTheme } from 'hooks/useUserTheme';
-import { DEFAULT_THEME, getTheme } from './themes';
+import appTheme, { COLOR_SCHEMES } from './themes';
const isDashboardThemePage = (pathname: string) => [
// NOTE: The metadata manager doesn't seem to use the dashboard theme
@@ -13,10 +13,9 @@ const isDashboardThemePage = (pathname: string) => [
DASHBOARD_APP_PATHS.PluginConfig
].some(path => pathname.startsWith(`/${path}`));
-const UserThemeProvider: FC> = ({ children }) => {
+const ColorSchemeSwitcher: FC = () => {
const [ isDashboard, setIsDashboard ] = useState(false);
- const [ muiTheme, setMuiTheme ] = useState(DEFAULT_THEME);
-
+ const { setColorScheme, setMode } = useColorScheme();
const location = useLocation();
const { theme, dashboardTheme } = useUserTheme();
@@ -26,15 +25,20 @@ const UserThemeProvider: FC> = ({ children }) => {
}, [ location.pathname ]);
useEffect(() => {
- if (isDashboard) {
- setMuiTheme(getTheme(dashboardTheme));
- } else {
- setMuiTheme(getTheme(theme));
- }
- }, [ dashboardTheme, isDashboard, theme ]);
+ const currentSchemeName = (isDashboard ? dashboardTheme : theme) as SupportedColorScheme;
+ const currentScheme = COLOR_SCHEMES[currentSchemeName];
+ setColorScheme(currentSchemeName);
+ setMode(currentScheme.palette?.mode || 'dark');
+ }, [ dashboardTheme, isDashboard, setColorScheme, setMode, theme ]);
+
+ return null;
+};
+
+const UserThemeProvider: FC> = ({ children }) => {
return (
-
+
+
{children}
);
diff --git a/src/themes/appletv/index.ts b/src/themes/appletv/index.ts
deleted file mode 100644
index 9acba52cf..000000000
--- a/src/themes/appletv/index.ts
+++ /dev/null
@@ -1,27 +0,0 @@
-import createTheme, { type ThemeOptions } from '@mui/material/styles/createTheme';
-import merge from 'lodash-es/merge';
-
-import { DEFAULT_THEME_OPTIONS } from 'themes/defaults';
-
-const themeOptions: ThemeOptions = {
- palette: {
- mode: 'light',
- background: {
- default: '#d5e9f2',
- paper: '#fff'
- }
- },
- components: {
- MuiAppBar: {
- styleOverrides: {
- colorPrimary: {
- backgroundColor: '#bcbcbc'
- }
- }
- }
- }
-};
-
-const theme = createTheme(merge({}, DEFAULT_THEME_OPTIONS, themeOptions));
-
-export default theme;
diff --git a/src/themes/blueradiance/index.ts b/src/themes/blueradiance/index.ts
deleted file mode 100644
index 2b2634309..000000000
--- a/src/themes/blueradiance/index.ts
+++ /dev/null
@@ -1,16 +0,0 @@
-import createTheme, { type ThemeOptions } from '@mui/material/styles/createTheme';
-import merge from 'lodash-es/merge';
-
-import { DEFAULT_THEME_OPTIONS } from 'themes/defaults';
-
-const options: ThemeOptions = {
- palette: {
- background: {
- paper: '#011432'
- }
- }
-};
-
-const theme = createTheme(merge({}, DEFAULT_THEME_OPTIONS, options));
-
-export default theme;
diff --git a/src/themes/dark/index.ts b/src/themes/dark/index.ts
deleted file mode 100644
index 71fcaa425..000000000
--- a/src/themes/dark/index.ts
+++ /dev/null
@@ -1,7 +0,0 @@
-import createTheme from '@mui/material/styles/createTheme';
-
-import { DEFAULT_THEME_OPTIONS } from 'themes/defaults';
-
-const theme = createTheme(DEFAULT_THEME_OPTIONS);
-
-export default theme;
diff --git a/src/themes/defaults.ts b/src/themes/defaults.ts
index 7f92f0c4b..5150ec003 100644
--- a/src/themes/defaults.ts
+++ b/src/themes/defaults.ts
@@ -1,8 +1,9 @@
-import type { ThemeOptions } from '@mui/material/styles/createTheme';
+import type { ColorSystemOptions, ThemeOptions } from '@mui/material/styles';
const LIST_ICON_WIDTH = 36;
-export const DEFAULT_THEME_OPTIONS: ThemeOptions = {
+/** The default "Dark" color scheme. */
+export const DEFAULT_COLOR_SCHEME: ColorSystemOptions = {
palette: {
mode: 'dark',
primary: {
@@ -24,7 +25,11 @@ export const DEFAULT_THEME_OPTIONS: ThemeOptions = {
error: {
main: '#cb272a' // Red color
}
- },
+ }
+};
+
+/** The default customizations to the default MUI theme. */
+export const DEFAULT_THEME_OPTIONS: ThemeOptions = {
typography: {
fontFamily: '"Noto Sans", sans-serif',
button: {
diff --git a/src/themes/light/index.ts b/src/themes/light/index.ts
deleted file mode 100644
index f6a84e9bd..000000000
--- a/src/themes/light/index.ts
+++ /dev/null
@@ -1,30 +0,0 @@
-import createTheme, { type ThemeOptions } from '@mui/material/styles/createTheme';
-import merge from 'lodash-es/merge';
-
-import { DEFAULT_THEME_OPTIONS } from 'themes/defaults';
-
-const options: ThemeOptions = {
- palette: {
- mode: 'light',
- background: {
- default: '#f2f2f2',
- // NOTE: The original theme uses #303030 for the drawer and app bar but we would need the drawer to use
- // dark mode for a color that dark to work properly which would require a separate ThemeProvider just for
- // the drawer... which is not worth the trouble in my opinion
- paper: '#e8e8e8'
- }
- },
- components: {
- MuiAppBar: {
- styleOverrides: {
- colorPrimary: {
- backgroundColor: '#e8e8e8'
- }
- }
- }
- }
-};
-
-const theme = createTheme(merge({}, DEFAULT_THEME_OPTIONS, options));
-
-export default theme;
diff --git a/src/themes/purplehaze/index.ts b/src/themes/purplehaze/index.ts
deleted file mode 100644
index 407178422..000000000
--- a/src/themes/purplehaze/index.ts
+++ /dev/null
@@ -1,22 +0,0 @@
-import createTheme, { type ThemeOptions } from '@mui/material/styles/createTheme';
-import merge from 'lodash-es/merge';
-
-import { DEFAULT_THEME_OPTIONS } from 'themes/defaults';
-
-const options: ThemeOptions = {
- palette: {
- background: {
- paper: '#000420'
- },
- primary: {
- main: '#48c3c8'
- },
- secondary: {
- main: '#ff77f1'
- }
- }
-};
-
-const theme = createTheme(merge({}, DEFAULT_THEME_OPTIONS, options));
-
-export default theme;
diff --git a/src/themes/themes.ts b/src/themes/themes.ts
index b5ad17f98..d6780dfda 100644
--- a/src/themes/themes.ts
+++ b/src/themes/themes.ts
@@ -1,13 +1,17 @@
-import { type Theme } from '@mui/material/styles';
+import { type ColorSystemOptions, createTheme, extendTheme } from '@mui/material/styles';
+import merge from 'lodash-es/merge';
-import appletv from './appletv';
-import blueradiance from './blueradiance';
-import dark from './dark';
-import light from './light';
-import purplehaze from './purplehaze';
-import wmc from './wmc';
+import { DEFAULT_COLOR_SCHEME, DEFAULT_THEME_OPTIONS } from './defaults';
+/** Extend MUI types to include our customizations. */
declare module '@mui/material/styles' {
+ interface ColorSchemeOverrides {
+ appletv: true;
+ blueradiance: true;
+ purplehaze: true;
+ wmc: true;
+ }
+
interface Palette {
starIcon: Palette['primary'];
}
@@ -17,32 +21,107 @@ declare module '@mui/material/styles' {
}
}
-const ALL_THEMES = {
+/** The default built-in MUI theme. */
+const defaultMuiTheme = extendTheme({
+ // @ts-expect-error The default theme does not include our custom color schemes
+ colorSchemes: { dark: true, light: true }
+});
+
+/**
+ * Default color schemes ('dark' or 'light') will automatically be merged with MUI's corresponding default color
+ * scheme. For custom schemes, we need to merge these manually.
+ */
+const buildCustomColorScheme = (options: ColorSystemOptions) => merge(
+ {},
+ options.palette?.mode === 'light' ? defaultMuiTheme.colorSchemes.light : defaultMuiTheme.colorSchemes.dark,
+ DEFAULT_COLOR_SCHEME,
+ options
+);
+
+/** The Apple TV inspired color scheme. */
+const appletv = buildCustomColorScheme({
+ palette: {
+ mode: 'light',
+ background: {
+ default: '#d5e9f2',
+ paper: '#fff'
+ },
+ AppBar: {
+ defaultBg: '#bcbcbc'
+ }
+ }
+});
+
+/** The "Blue Radiance" color scheme. */
+const blueradiance = buildCustomColorScheme({
+ palette: {
+ background: {
+ paper: '#011432'
+ }
+ }
+});
+
+/** The "Light" color scheme. */
+const light = merge({}, DEFAULT_COLOR_SCHEME, {
+ palette: {
+ mode: 'light',
+ background: {
+ default: '#f2f2f2',
+ // NOTE: The original theme uses #303030 for the drawer and app bar but we would need the drawer to use
+ // dark mode for a color that dark to work properly which would require a separate ThemeProvider just for
+ // the drawer... which is not worth the trouble in my opinion
+ paper: '#e8e8e8'
+ },
+ AppBar: {
+ defaultBg: '#e8e8e8'
+ }
+ }
+});
+
+/** The "Purple Haze" color scheme. */
+const purplehaze = buildCustomColorScheme({
+ palette: {
+ background: {
+ paper: '#000420'
+ },
+ primary: {
+ main: '#48c3c8'
+ },
+ secondary: {
+ main: '#ff77f1'
+ }
+ }
+});
+
+/** The Windows Media Center inspired color scheme. */
+const wmc = buildCustomColorScheme({
+ palette: {
+ background: {
+ paper: '#0c2450'
+ }
+ }
+});
+
+/** All color scheme variants in the app. */
+export const COLOR_SCHEMES = {
appletv,
blueradiance,
- dark,
+ dark: DEFAULT_COLOR_SCHEME,
light,
purplehaze,
wmc
};
-/** The default theme if a user has not selected a preferred theme. */
-export const DEFAULT_THEME = dark;
+/** The default theme containing all color scheme variants. */
+const DEFAULT_THEME = createTheme({
+ cssVariables: {
+ cssVarPrefix: 'jf',
+ colorSchemeSelector: 'data',
+ disableCssColorScheme: true
+ },
+ defaultColorScheme: 'dark',
+ ...DEFAULT_THEME_OPTIONS,
+ colorSchemes: COLOR_SCHEMES
+});
-/**
- * Gets a MUI Theme by its string id. Returns the default theme if no matching theme is found.
- */
-export function getTheme(id?: string): Theme {
- if (!id) {
- console.info('[getTheme] no theme id; returning default theme');
- return DEFAULT_THEME;
- }
-
- console.info('[getTheme] getting theme "%s"', id);
- if (Object.keys(ALL_THEMES).includes(id)) {
- return ALL_THEMES[id as keyof typeof ALL_THEMES];
- }
-
- console.warn('[getTheme] theme "%s" not found; returning default theme', id);
- return DEFAULT_THEME;
-}
+export default DEFAULT_THEME;
diff --git a/src/themes/wmc/index.ts b/src/themes/wmc/index.ts
deleted file mode 100644
index 105ac10d6..000000000
--- a/src/themes/wmc/index.ts
+++ /dev/null
@@ -1,16 +0,0 @@
-import createTheme, { type ThemeOptions } from '@mui/material/styles/createTheme';
-import merge from 'lodash-es/merge';
-
-import { DEFAULT_THEME_OPTIONS } from 'themes/defaults';
-
-const options: ThemeOptions = {
- palette: {
- background: {
- paper: '#0c2450'
- }
- }
-};
-
-const theme = createTheme(merge({}, DEFAULT_THEME_OPTIONS, options));
-
-export default theme;
From 8fc680f106159326f2bfca0c5d16bad7d8e32109 Mon Sep 17 00:00:00 2001
From: Bill Thornton
Date: Mon, 19 May 2025 11:07:08 -0400
Subject: [PATCH 323/645] Fix AppBar background colors
---
src/components/ElevationScroll.tsx | 2 +-
src/themes/themes.ts | 9 +++++++++
2 files changed, 10 insertions(+), 1 deletion(-)
diff --git a/src/components/ElevationScroll.tsx b/src/components/ElevationScroll.tsx
index acbc07bae..920140c42 100644
--- a/src/components/ElevationScroll.tsx
+++ b/src/components/ElevationScroll.tsx
@@ -13,7 +13,7 @@ const ElevationScroll = ({ children, elevate = false }: { children: ReactElement
const isElevated = elevate || trigger;
return React.cloneElement(children, {
- color: isElevated ? 'primary' : 'transparent',
+ color: isElevated ? 'default' : 'transparent',
elevation: isElevated ? 4 : 0
});
};
diff --git a/src/themes/themes.ts b/src/themes/themes.ts
index d6780dfda..edf16a9ac 100644
--- a/src/themes/themes.ts
+++ b/src/themes/themes.ts
@@ -57,6 +57,9 @@ const blueradiance = buildCustomColorScheme({
palette: {
background: {
paper: '#011432'
+ },
+ AppBar: {
+ defaultBg: '#011432'
}
}
});
@@ -89,6 +92,9 @@ const purplehaze = buildCustomColorScheme({
},
secondary: {
main: '#ff77f1'
+ },
+ AppBar: {
+ defaultBg: '#000420'
}
}
});
@@ -98,6 +104,9 @@ const wmc = buildCustomColorScheme({
palette: {
background: {
paper: '#0c2450'
+ },
+ AppBar: {
+ defaultBg: '#0c2450'
}
}
});
From 27e7847a3fbc93146344d20ec58cbff0bd39dd1e Mon Sep 17 00:00:00 2001
From: muqtda
Date: Sat, 24 May 2025 16:05:25 -0400
Subject: [PATCH 324/645] Translated using Weblate (Arabic) Translation:
Jellyfin/Jellyfin Web Translate-URL:
https://translate.jellyfin.org/projects/jellyfin/jellyfin-web/ar/
---
src/strings/ar.json | 4 +++-
1 file changed, 3 insertions(+), 1 deletion(-)
diff --git a/src/strings/ar.json b/src/strings/ar.json
index 0177bae62..f3d43d851 100644
--- a/src/strings/ar.json
+++ b/src/strings/ar.json
@@ -2016,5 +2016,7 @@
"Penciller": "القلم",
"HeaderUpdateRequired": "مطلوب تحديث",
"SubtitleCyan": "سماوي",
- "SubtitleMagenta": "أرجواني"
+ "SubtitleMagenta": "أرجواني",
+ "DownloadManager": "التنزيلات",
+ "MessageForgotPasswordPinReset": "اكتب رمز قفل البرنامج لانهاء عملية تغيير كلمة المرور"
}
From 600ceeef943462197c4b20af5f177c3b3cde3768 Mon Sep 17 00:00:00 2001
From: Joan Nualart
Date: Sat, 24 May 2025 15:09:07 -0400
Subject: [PATCH 325/645] Translated using Weblate (Catalan) Translation:
Jellyfin/Jellyfin Web Translate-URL:
https://translate.jellyfin.org/projects/jellyfin/jellyfin-web/ca/
---
src/strings/ca.json | 6 +++---
1 file changed, 3 insertions(+), 3 deletions(-)
diff --git a/src/strings/ca.json b/src/strings/ca.json
index c04d94cb0..9d9338f3e 100644
--- a/src/strings/ca.json
+++ b/src/strings/ca.json
@@ -1929,7 +1929,7 @@
"LabelDuration": "Duració",
"LabelDropLyricsHere": "Arrossega i deixa anar les lletres aquí, o fes clic aquí per cercar-les.",
"AllowFmp4TranscodingContainerHelp": "Permet el contenidor de transcodificació fMP4 per a aquest sintonintzador, per habilitar continguts HEVC i HDR. No tots els sintonitzadors són compatibles amb aquest contenidor. Desactiva-ho si experimentes problemes de reproducció.",
- "AllowStreamSharingHelp": "Permet que Jellyfin dupliqui el flux mpegts del sintonitzador i comparteixi aquest flux duplicat amb els seus clients. Això és útil quan el sintonitzador té un límit de recompte total de reproduccions, però també pot causar problemes de reproducció.",
+ "AllowStreamSharingHelp": "Permet que Jellyfin dupliqui el flux mpegts del sintonitzador i comparteixi aquest flux duplicat amb els seus clients. Això és útil quan el sintonitzador té un límit en la quantitat total de reproduccions, però també pot causar problemes de reproducció.",
"LabelCustomTagDelimiters": "Limitador d'etiquetes personalitzat",
"Anime": "Anime",
"DisableVbrAudioEncodingHelp": "Evita que el servidor codifiqui àudio en VBR per a aquest client.",
@@ -1973,8 +1973,8 @@
"LyricDownloadersHelp": "Activa i classifica els descarregadors de lletres preferits en ordre de prioritat.",
"MessageSplitVersionsError": "S'ha produït un error separant les versions",
"LabelAllowStreamSharing": "Permet la reproducció compartida",
- "AlwaysBurnInSubtitleWhenTranscoding": "Sempre gravar els subtítols al transcodificar",
- "AlwaysBurnInSubtitleWhenTranscodingHelp": "Gravar tots els subtítols quan la transcodificació s'activi. Això assegura la sincronització dels subtítols després de la transcodificació, a canvi d'una menor velocitat de transcodificació.",
+ "AlwaysBurnInSubtitleWhenTranscoding": "Sempre incorporar els subtítols al transcodificar",
+ "AlwaysBurnInSubtitleWhenTranscodingHelp": "Incorporar tots els subtítols quan s'activi la transcodificació. Això assegura la sincronització dels subtítols després de la transcodificació, a canvi d'una menor velocitat de transcodificació.",
"HeaderMediaSegmentActions": "Accions dels segments dels mitjans",
"LabelMediaSegmentsType": "{0} Segments",
"PreferNonstandardArtistsTag": "Preferir l'etiqueta ARTISTS si estan disponibles",
From 3ce609649dee4ec0a36e160c76094a6d92239efb Mon Sep 17 00:00:00 2001
From: Gallyam Biktashev
Date: Sat, 24 May 2025 16:00:13 -0400
Subject: [PATCH 326/645] Translated using Weblate (Russian) Translation:
Jellyfin/Jellyfin Web Translate-URL:
https://translate.jellyfin.org/projects/jellyfin/jellyfin-web/ru/
---
src/strings/ru.json | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/src/strings/ru.json b/src/strings/ru.json
index a04123e81..e44d1978f 100644
--- a/src/strings/ru.json
+++ b/src/strings/ru.json
@@ -2029,7 +2029,7 @@
"LimitSegmentLengthHelp": "Включение этой опции может помочь предотвратить зависание HLS-плеера во время перемотки на некоторых устройствах, например, на телевизорах с webOS.",
"HeaderServerUnavailable": "Сервер недоступен",
"HeaderUpdateRequired": "Требуется обновление",
- "ViewSettings": "Настройки видов",
+ "ViewSettings": "Показать параметры",
"DownloadManager": "Загрузки",
"MessageForgotPasswordPinReset": "Введите PIN-код для завершения сброса пароля"
}
From fd3c7814f065aa73ee1f2bd53277bf73a20d3df9 Mon Sep 17 00:00:00 2001
From: Gallyam Biktashev
Date: Sat, 24 May 2025 17:31:48 -0400
Subject: [PATCH 327/645] Translated using Weblate (Russian) Translation:
Jellyfin/Jellyfin Web Translate-URL:
https://translate.jellyfin.org/projects/jellyfin/jellyfin-web/ru/
---
src/strings/ru.json | 6 +++---
1 file changed, 3 insertions(+), 3 deletions(-)
diff --git a/src/strings/ru.json b/src/strings/ru.json
index e44d1978f..cb6c3b511 100644
--- a/src/strings/ru.json
+++ b/src/strings/ru.json
@@ -1742,7 +1742,7 @@
"LogLevel.Critical": "Критично",
"LogLevel.None": "Ничего",
"HeaderEpisodesStatus": "Статус эпизодов",
- "LabelEnableLUFSScanHelp": "Клиенты могут нормализировать воспроизведения звука, чтобы обеспечить одинаковую громкость в разных треках. Сканированния библеотек займет больше времени и ресурсов.",
+ "LabelEnableLUFSScanHelp": "Клиенты могут нормализовывать звук для обеспечения одинаковой громкости в разных треках. Сканирования библиотеки будут занимать больше времени и ресурсов.",
"LabelLevel": "Уровень",
"LogLevel.Debug": "Отладка",
"MessageRepositoryInstallDisclaimer": "ПРЕДУПРЕЖДЕНИЕ: Установка стороннего репозитория плагинов несет определенные риски. Он может содержать нестабильный или вредоносный код и может изменяться в любое время. Устанавливайте репозитории только от авторов, которым вы доверяете.",
@@ -1950,14 +1950,14 @@
"MessageSplitVersionsError": "Произошла ошибка во время разделения версий",
"LibraryInvalidItemIdError": "Библиотека находится в неверном состоянии и не может быть отредактирована. Возможно, путь в базе данных не соответствует пути на файловой системе.",
"MessageCancelSeriesTimerError": "Произошла ошибка во время отмены таймера сериала",
- "UseCustomTagDelimiters": "Использовать пользовательский сепаратор тэгов",
+ "UseCustomTagDelimiters": "Использовать пользовательский разделитель тегов",
"LabelQsvDevice": "QSV Устройство",
"LabelQsvDeviceHelp": "Укажите устройство для Intel QSV на системе с несколькими GPU. На Linux это узел рендеринга, например, /dev/dri/renderD128. На Windows это индекс устройства, начинающийся с 0. Оставьте пустым, если не уверены в том, что делаете.",
"LabelLyricDownloaders": "Загрузчики слов песен",
"LabelAudioTagSettings": "Настройки аудио тэгов",
"LabelCustomTagDelimiters": "Пользовательский разделитель тегов",
"LabelDelimiterWhitelist": "Белый список разделителей",
- "LabelDelimiterWhitelistHelp": "Элементы, которые будут при разделении тэгов. Один элемент на строку.",
+ "LabelDelimiterWhitelistHelp": "Элементы, которые будут исключены из разделения тегов. Один элемент на строку.",
"PreferNonstandardArtistsTag": "Преподчитать тэг ARTISTS при наличии",
"UseCustomTagDelimitersHelp": "Разделять тэги исполнителя/жанра используя пользовательские символы.",
"LabelSaveTrickplayLocallyHelp": "Сохранение изображений trickplay в папки медиа поместит их рядом с вашими медиа файлами для удобства миграции и доступа.",
From c18be02ba6c93a219e80cfdbab0098d305484321 Mon Sep 17 00:00:00 2001
From: Joan Nualart
Date: Sat, 24 May 2025 20:12:16 -0400
Subject: [PATCH 328/645] Translated using Weblate (Catalan) Translation:
Jellyfin/Jellyfin Web Translate-URL:
https://translate.jellyfin.org/projects/jellyfin/jellyfin-web/ca/
---
src/strings/ca.json | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/src/strings/ca.json b/src/strings/ca.json
index 9d9338f3e..28f20259e 100644
--- a/src/strings/ca.json
+++ b/src/strings/ca.json
@@ -1735,7 +1735,7 @@
"AllowSegmentDeletion": "Suprimeix segments",
"AllowSegmentDeletionHelp": "Suprimeix els segments antics després que el client els hagi descarregat. Això evita haver d'emmagatzemar tot el fitxer transcodificat al disc. Desactiva-ho si tens problemes de reproducció.",
"LabelThrottleDelaySeconds": "Acceleració després de",
- "LabelThrottleDelaySecondsHelp": "Temps, en segons, després del qual s'accelerarà el transcodificador. Ha de ser prou gran per a que el client mantingui una memòria intermèdia saludable. Només funciona si l'acceleració està habilitada.",
+ "LabelThrottleDelaySecondsHelp": "Temps en segons, després del qual s'accelerarà el transcodificador. La durada ha de ser suficient per a que el client mantingui una memòria intermèdia saludable. Només funciona si l'acceleració està habilitada.",
"LabelSegmentKeepSeconds": "Temps per mantenir els segments",
"LabelIsHearingImpaired": "Per a persones amb discapacitat auditiva (SDH)",
"LogLevel.Warning": "Advertència",
From 2f811a1066ee8082cf4f2c6718a1ebc0127a7d34 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Arnau=20Galofr=C3=A9?=
Date: Sun, 25 May 2025 11:51:50 -0400
Subject: [PATCH 329/645] Translated using Weblate (Catalan) Translation:
Jellyfin/Jellyfin Web Translate-URL:
https://translate.jellyfin.org/projects/jellyfin/jellyfin-web/ca/
---
src/strings/ca.json | 18 +++++++++---------
1 file changed, 9 insertions(+), 9 deletions(-)
diff --git a/src/strings/ca.json b/src/strings/ca.json
index 28f20259e..7ae3ab780 100644
--- a/src/strings/ca.json
+++ b/src/strings/ca.json
@@ -37,16 +37,16 @@
"ButtonPreviousTrack": "Pista anterior",
"ButtonQuickStartGuide": "Guia de configuració",
"ButtonRefreshGuideData": "Actualitza les dades de la guia",
- "ButtonRemove": "Elimina",
+ "ButtonRemove": "Eliminar",
"ButtonResetEasyPassword": "Restabliu el codi Easy PIN",
"ButtonResume": "Reprèn",
- "ButtonSelectDirectory": "Selecciona el directori",
- "ButtonSend": "Envia",
- "ButtonShutdown": "Atura",
+ "ButtonSelectDirectory": "Seleccionar el directori",
+ "ButtonSend": "Enviar",
+ "ButtonShutdown": "Apagar",
"ButtonSignIn": "Iniciar sessió",
"ButtonSignOut": "Tancar sessió",
- "ButtonStop": "Atura",
- "ButtonSubmit": "Envia",
+ "ButtonStop": "Aturar",
+ "ButtonSubmit": "Enviar",
"ButtonTrailer": "Tràiler",
"CancelRecording": "Cancel·la enregistrament",
"CancelSeries": "Cancel·la sèrie",
@@ -599,7 +599,7 @@
"ButtonUninstall": "Desinstal·lar",
"ButtonSplit": "Dividir",
"ButtonStart": "Començar",
- "ButtonSelectView": "Selecciona la vista",
+ "ButtonSelectView": "Seleccionar la vista",
"ButtonScanAllLibraries": "Escanejar totes les biblioteques",
"ButtonRevoke": "Revocar",
"ButtonRename": "Canviar el nom",
@@ -2026,6 +2026,6 @@
"HeaderServerUnavailable": "El Servidor no està disponible",
"HeaderUpdateRequired": "Cal una actualització",
"ViewSettings": "Configuració de vista",
- "DownloadManager": "Descarregues",
- "MessageForgotPasswordPinReset": "Introdueix PIN aquí per acabar el Restabliment de contrasenya"
+ "DownloadManager": "Descàrregues",
+ "MessageForgotPasswordPinReset": "Introdueix el PIN aquí per acabar el Restabliment de contrasenya"
}
From 1948f048795b33124019270e5ed1adf2f69bf986 Mon Sep 17 00:00:00 2001
From: Tal Sarid
Date: Mon, 26 May 2025 02:06:34 -0400
Subject: [PATCH 330/645] Translated using Weblate (Hebrew) Translation:
Jellyfin/Jellyfin Web Translate-URL:
https://translate.jellyfin.org/projects/jellyfin/jellyfin-web/he/
---
src/strings/he.json | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/src/strings/he.json b/src/strings/he.json
index 08b6830f9..3afe3a596 100644
--- a/src/strings/he.json
+++ b/src/strings/he.json
@@ -333,7 +333,7 @@
"RepeatEpisodes": "חזור על פרקים",
"ReplaceAllMetadata": "החלף את כל המטא נתונים",
"ReplaceExistingImages": "החלף תמונות קיימות",
- "ResumeAt": "המשך מ {0}",
+ "ResumeAt": "המשך מ־{0}",
"Runtime": "זמן ריצה",
"Saturday": "שבת",
"Save": "שמור",
From 0f4ff1d86e8eae7e24cfb46e99c9f60d86612171 Mon Sep 17 00:00:00 2001
From: Mandeep
Date: Mon, 26 May 2025 02:28:37 -0400
Subject: [PATCH 331/645] Translated using Weblate (Hindi) Translation:
Jellyfin/Jellyfin Web Translate-URL:
https://translate.jellyfin.org/projects/jellyfin/jellyfin-web/hi/
---
src/strings/hi-in.json | 17 +++++++++++++----
1 file changed, 13 insertions(+), 4 deletions(-)
diff --git a/src/strings/hi-in.json b/src/strings/hi-in.json
index 1a3dbb643..7debc3eaf 100644
--- a/src/strings/hi-in.json
+++ b/src/strings/hi-in.json
@@ -1,5 +1,5 @@
{
- "ButtonQuickStartGuide": "तुरंत आरंभ मार्गदर्शिका",
+ "ButtonQuickStartGuide": "सेटअप गाइड",
"ButtonSignOut": "Sign out",
"LabelFinish": "समाप्त",
"LabelYoureDone": "आपने पूरा कर लिया है!",
@@ -83,7 +83,7 @@
"AllowedRemoteAddressesHelp": "नेटवर्क के लिए आईपी पतों आईपी/नेटमास्क एंट्रीज़ की कॉमा विभाजित सूची जो रिमोट रूप से कनेक्ट करने की अनुमति देगा। यदि खाली छोड़ा गया है, तो सभी रिमोट पतों को अनुमति दी जाएगी।",
"AllowRemoteAccessHelp": "अनियंत्रित होने पर, सभी दूरस्थ कनेक्शन अवरुद्ध हो जाएंगे।",
"AllowRemoteAccess": "इस सर्वर को असमीप संपर्क की अनुमति दें",
- "AllowFfmpegThrottlingHelp": "जब कोई ट्रांसकोड या रीमक्स वर्तमान प्लेबैक स्थिति से काफी आगे निकल जाता है, तो प्रक्रिया को रोक दें ताकि यह कम संसाधनों का उपभोग करे। अक्सर बिना खोजे देखते समय यह सबसे उपयोगी होता है। यदि आप प्लेबैक समस्याओं का अनुभव करते हैं तो इसे बंद कर दें।",
+ "AllowFfmpegThrottlingHelp": "जब कोई ट्रांसकोड या रीमक्स वर्तमान प्लेबैक स्थिति से काफी आगे निकल जाता है, तो प्रक्रिया को रोक दें ताकि यह कम संसाधनों का उपभोग करे। अक्सर बिना बार-बार आगे पीछे किए देखते समय यह सबसे उपयोगी होता है। यदि आप प्लेबैक में समस्या अनुभव करते हैं तो इसे बंद कर दें।",
"AllowFfmpegThrottling": "थ्रोटल ट्रांसकोड",
"AllowOnTheFlySubtitleExtractionHelp": "वीडियो ट्रांसकोडिंग को रोकने में मदद करने के लिए एंबेडेड सबटाइटल वीडियो से निकाले जा सकते हैं और सादे पाठ में ग्राहकों तक पहुंचाए जाते हैं। कुछ प्रणालियों पर यह एक लंबा समय ले सकता है और निष्कर्षण प्रक्रिया के दौरान वीडियो प्लेबैक को स्टाल करने का कारण बन सकता है। जब वे क्लाइंट डिवाइस द्वारा मूल रूप से समर्थित नहीं होते हैं, तो वीडियो ट्रांसकोडिंग के साथ जले हुए एम्बेडेड उपशीर्षक को अक्षम करें।",
"AlbumArtist": "एल्बम कलाकार",
@@ -93,7 +93,7 @@
"MessageBrowsePluginCatalog": "उपलब्ध प्लगिन्स देखने के लिए हमारे कैटलॉग को ब्राउज़ करें।",
"Browse": "ब्राउज़",
"BoxSet": "बॉक्स सेट",
- "BurnSubtitlesHelp": "निर्धारित करता है कि वीडियो ट्रांसकोडिंग करते समय सर्वर को उपशीर्षक बर्न-इन करना चाहिए। इससे बचने से प्रदर्शन में बहुत सुधार होगा। छवि आधारित उपशीर्षक (VOBSUB, PGS, SUB, IDX, …) एवं ASS अथवा SSA जैसे उपशीर्षक बर्न-इन करने के लिए ऑटो का चयन करें।",
+ "BurnSubtitlesHelp": "निर्धारित करें कि सर्वर को सबटाइटल्स को वीडियो में एम्बेड (burn-in) करना चाहिए या नहीं। इसे बंद रखने से वीडियो स्ट्रीमिंग तेज़ और आसान हो सकती है। 'Auto' चुनने पर केवल इमेज-आधारित फॉर्मैट (जैसे VobSub, PGS, SUB, IDX आदि) और कुछ ASS या SSA सबटाइटल्स को ही एम्बेड किया जाएगा।",
"ButtonRemove": "हटाना",
"ButtonOpen": "खोलो",
"HeaderContinueWatching": "देखना जारी रखें",
@@ -186,5 +186,14 @@
"AlternateDVD": "वैकल्पिक डीवीडी",
"BlockContentWithTagsHelp": "निर्दिष्ट टैगों में से कम से कम एक टैग के साथ मीडिया छिपाएँ।",
"ButtonEditUser": "यूजर को संपादित करो",
- "CinemaModeConfigurationHelp": "सिनेमा मोड मुख्य फीचर से पहले ट्रेलर और कस्टम इंट्रो चलाने की क्षमता के साथ थिएटर अनुभव को सीधे आपके लिविंग रूम में लाता है।"
+ "CinemaModeConfigurationHelp": "सिनेमा मोड मुख्य फीचर से पहले ट्रेलर और कस्टम इंट्रो चलाने की क्षमता के साथ थिएटर अनुभव को सीधे आपके लिविंग रूम में लाता है।",
+ "AlwaysRemuxFlacAudioFilesHelp": "अगर आपके पास ऐसी फाइलें हैं जिन्हें आपका ब्राउज़र चलाने से मना करता है या जिनमें टाइमस्टैम्प गलत तरीके से दिखते हैं, तो इस विकल्प को चालू करें। यह एक वैकल्पिक समाधान के रूप में काम करेगा।",
+ "AllowFmp4TranscodingContainerHelp": "HEVC और HDR कंटेंट चलाने के लिए इस ट्यूनर में fMP4 ट्रांसकोडिंग कंटेनर चालू करें। ध्यान दें कि सभी ट्यूनर इसके साथ काम नहीं करते। अगर वीडियो प्लेबैक में कोई समस्या हो, तो इसे बंद कर दें।",
+ "AllowStreamSharingHelp": "Jellyfin को ट्यूनर से MPEG-TS स्ट्रीम की एक कॉपी बनाने और उसे अपने क्लाइंट्स के साथ शेयर करने की अनुमति दें। यह तब उपयोगी होता है जब ट्यूनर पर स्ट्रीम की संख्या की सीमा होती है, लेकिन इससे कभी-कभी प्लेबैक में दिक्कत भी आ सकती है।",
+ "AlwaysBurnInSubtitleWhenTranscodingHelp": "जब ट्रांसकोडिंग शुरू हो, तब सभी सबटाइटल्स को वीडियो में स्थायी रूप से जोड़ दें। इससे ट्रांसकोडिंग के बाद सबटाइटल्स की सही टाइमिंग बनी रहती है, लेकिन ट्रांसकोडिंग की गति थोड़ी कम हो सकती है।",
+ "AllowTonemappingSoftwareHelp": "टोन-मैपिंग एक वीडियो के डायनामिक रेंज को HDR से SDR में बदल सकती है, जिससे ओरिजिनल सीन की डिटेल्स और रंग सही तरीके से बने रहते हैं। यह जानकारी वीडियो की गुणवत्ता बनाए रखने के लिए बेहद ज़रूरी होती है। फिलहाल, यह फ़ीचर केवल 10-बिट HDR10, HLG और DoVi वीडियो पर काम करता है।",
+ "AlwaysRemuxMp3AudioFilesHelp": "अगर आपकी कुछ फाइलों में ब्राउज़र टाइमस्टैम्प गलत दिखा रहा है, तो इस विकल्प को एक समाधान के रूप में चालू करें।",
+ "Anime": "एनिमे",
+ "AutoSubtitleStylingHelp": "यह मोड आपके डिवाइस के प्रकार के आधार पर, मूल (native) और कस्टम सबटाइटल स्टाइलिंग के बीच अपने आप स्विच करेगा।",
+ "AlwaysBurnInSubtitleWhenTranscoding": "ट्रांसकोडिंग करते समय सबटाइटल को हमेशा वीडियो में स्थायी रूप से जोड़ें"
}
From 81e001c74702756530eb3badf65911315501cbaf Mon Sep 17 00:00:00 2001
From: Joan Nualart
Date: Mon, 26 May 2025 03:41:31 -0400
Subject: [PATCH 332/645] Translated using Weblate (Catalan) Translation:
Jellyfin/Jellyfin Web Translate-URL:
https://translate.jellyfin.org/projects/jellyfin/jellyfin-web/ca/
---
src/strings/ca.json | 8 ++++----
1 file changed, 4 insertions(+), 4 deletions(-)
diff --git a/src/strings/ca.json b/src/strings/ca.json
index 7ae3ab780..c0d086b2f 100644
--- a/src/strings/ca.json
+++ b/src/strings/ca.json
@@ -573,9 +573,9 @@
"ValueSpecialEpisodeName": "Especial - {0}",
"ViewAlbum": "Veure àlbum",
"ViewPlaybackInfo": "Veure informació de reproducció",
- "Watched": "Vists",
+ "Watched": "Vist",
"Wednesday": "Dimecres",
- "WelcomeToProject": "Benvingut a Jellyfin!",
+ "WelcomeToProject": "Et donem la benvinguda a Jellyfin!",
"WizardCompleted": "Això és tot el que necessitem per ara. Jellyfin ha començat a recollir informació de la vostra biblioteca multimèdia. Mireu-vos alguna de les nostres apps i llavors feu clic a Finalitzar per veure el Tauler de control.",
"Writer": "Escriptor",
"XmlTvKidsCategoriesHelp": "Els programes amb aquestes categories es mostraran com a programes infantils. Separa'n varis emprant '|'.",
@@ -868,7 +868,7 @@
"XmlTvPathHelp": "Una ruta a un arxiu XMLTV. Jellyfin llegirà aquesta imatge i comprovar periòdicament si hi ha actualitzacions. Vostè és responsable de crear i actualitzar l'arxiu.",
"XmlDocumentAttributeListHelp": "Aquests atributs s'apliquen a l'element arrel de cada resposta XML.",
"Writers": "Escriptors",
- "WriteAccessRequired": "El Jellyfin necessita accés d'escriptura a aquesta carpeta. Garantiu l'accés d'escriptura i torneu-ho a intentar.",
+ "WriteAccessRequired": "El Jellyfin necessita accés d'escriptura a aquesta carpeta. Garanteix l'accés d'escriptura i torna-ho a intentar.",
"Whitelist": "Llista blanca",
"WeeklyAt": "{0} S a {1}",
"ViewAlbumArtist": "Veure artista àlbum",
@@ -2025,7 +2025,7 @@
"LimitSegmentLengthHelp": "Activar aquesta opció pot ajudar a prevenir que el reproductor HLS es pengi durant la cerca en alguns dispositius, com televisors webOS.",
"HeaderServerUnavailable": "El Servidor no està disponible",
"HeaderUpdateRequired": "Cal una actualització",
- "ViewSettings": "Configuració de vista",
+ "ViewSettings": "Configuració de visualització",
"DownloadManager": "Descàrregues",
"MessageForgotPasswordPinReset": "Introdueix el PIN aquí per acabar el Restabliment de contrasenya"
}
From 32b6c55d2b1801c355f30e36af7228456f30f877 Mon Sep 17 00:00:00 2001
From: Swedish Wiking
Date: Mon, 26 May 2025 11:18:35 -0400
Subject: [PATCH 333/645] Translated using Weblate (Swedish) Translation:
Jellyfin/Jellyfin Web Translate-URL:
https://translate.jellyfin.org/projects/jellyfin/jellyfin-web/sv/
---
src/strings/sv.json | 8 +++++---
1 file changed, 5 insertions(+), 3 deletions(-)
diff --git a/src/strings/sv.json b/src/strings/sv.json
index 7f3ebd078..83cd5d39b 100644
--- a/src/strings/sv.json
+++ b/src/strings/sv.json
@@ -68,7 +68,7 @@
"ButtonParentalControl": "Föräldralås",
"ButtonPause": "Paus",
"ButtonPreviousTrack": "Föregående spår",
- "ButtonQuickStartGuide": "Snabbstartguide",
+ "ButtonQuickStartGuide": "Installationsguide",
"ButtonRefreshGuideData": "Uppdatera programguiden",
"ButtonRemove": "Ta bort",
"ButtonRename": "Ändra namn",
@@ -1695,7 +1695,7 @@
"SaveRecordingImagesHelp": "Spara bilder från EPG-listningsleverantören tillsammans med media.",
"HeaderDummyChapter": "Kapitelbilder",
"LabelDummyChapterDuration": "Intervall",
- "LabelDummyChapterDurationHelp": "Intervall mellan dummy-kapitel. Ställ in på 0 för att inaktivera generering av dummy-kapitel. Ändringar av detta har ingen effekt på befintliga dummy-kapitel.",
+ "LabelDummyChapterDurationHelp": "Intervall mellan dummy-kapitel (i sekunder). Ställ in på 0 för att inaktivera generering av dummy-kapitel. Ändringar av detta har ingen effekt på befintliga dummy-kapitel.",
"LabelDummyChapterCount": "Gräns",
"LabelDummyChapterCountHelp": "Största antal kapitelbilder som kommer hämtas in för varje enskild mediafil.",
"LabelChapterImageResolution": "Upplösning",
@@ -2024,5 +2024,7 @@
"ReadInputAtNativeFramerate": "Läs inmatning i ursprungling bildhastighet",
"ViewSettings": "Visa inställningar",
"HeaderServerUnavailable": "Server Otillgänglig",
- "HeaderUpdateRequired": "Uppdatering Krävs"
+ "HeaderUpdateRequired": "Uppdatering Krävs",
+ "DownloadManager": "Nedladdningar",
+ "MessageForgotPasswordPinReset": "Ange PIN-koden här för att slutföra lösenordsåterställningen"
}
From ec4d16d201fb0d40848a8eeab329ad653a5b826b Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Yago=20Ra=C3=B1a=20Gayoso?=
Date: Mon, 26 May 2025 10:23:12 -0400
Subject: [PATCH 334/645] Translated using Weblate (Galician) Translation:
Jellyfin/Jellyfin Web Translate-URL:
https://translate.jellyfin.org/projects/jellyfin/jellyfin-web/gl/
---
src/strings/gl.json | 10 ++++++++--
1 file changed, 8 insertions(+), 2 deletions(-)
diff --git a/src/strings/gl.json b/src/strings/gl.json
index 9b7998120..2adfe0ca2 100644
--- a/src/strings/gl.json
+++ b/src/strings/gl.json
@@ -205,7 +205,7 @@
"ButtonRevoke": "Revogar",
"ButtonEditOtherUserPreferences": "Edita o perfil desta usuaria, imaxe e preferencias personais.",
"ButtonScanAllLibraries": "Escanear tódalas bibliotecas",
- "BurnSubtitlesHelp": "Indica se o servidor debería incluír os subtítulos ao recodificar os vídeos. Se non fas esto mellorarás moito o rendemento. Elixe Auto para incluir formatos baseados na imaxe (VobSub, PGS, SUB, IDX, etc.) e certos subtítulos ASS ou SSA.",
+ "BurnSubtitlesHelp": "Indica se o servidor debería incluír os subtítulos. Se non fas esto mellorarás moito o rendemento. Elixe Auto para incluir formatos baseados na imaxe (VobSub, PGS, SUB, IDX, etc.) e certos subtítulos ASS ou SSA.",
"ButtonAddScheduledTaskTrigger": "Engadir activador",
"ButtonForgotPassword": "Contrasinal esquecido",
"DownloadsValue": "{0} descargas",
@@ -1047,5 +1047,11 @@
"CustomSplashScreenSize": "As imaxes personalizadas deben ter unha relación de aspecto de 16x9 e un tamaño mínimo de 1920x1080.",
"DeleteCustomImage": "Eliminar imaxe personalizada",
"DateModified": "Data de modificación",
- "HeaderLatestRecordings": "Gravacións recentemente engadidas"
+ "HeaderLatestRecordings": "Gravacións recentemente engadidas",
+ "HeaderNextEpisode": "Seguinte episodio",
+ "HeaderPageNotFound": "Páxina non atopada",
+ "HeaderOtherItems": "Outros elementos",
+ "HeaderMusicQuality": "Calidade de son",
+ "HeaderNewPlaylist": "Nova lista de reprodución",
+ "HeaderNextVideo": "Seguinte vídeo"
}
From 65d90b5190a6c4da9c012f846c942d7d3e5b27ee Mon Sep 17 00:00:00 2001
From: millallo
Date: Mon, 26 May 2025 13:39:43 -0400
Subject: [PATCH 335/645] Translated using Weblate (Italian) Translation:
Jellyfin/Jellyfin Web Translate-URL:
https://translate.jellyfin.org/projects/jellyfin/jellyfin-web/it/
---
src/strings/it.json | 5 +++--
1 file changed, 3 insertions(+), 2 deletions(-)
diff --git a/src/strings/it.json b/src/strings/it.json
index 7a976476e..a858b81ba 100644
--- a/src/strings/it.json
+++ b/src/strings/it.json
@@ -66,7 +66,7 @@
"ButtonParentalControl": "Controllo parentale",
"ButtonPause": "Pausa",
"ButtonPreviousTrack": "Traccia Precedente",
- "ButtonQuickStartGuide": "Guida rapida",
+ "ButtonQuickStartGuide": "Guida alla Configurazione",
"ButtonRefreshGuideData": "Aggiorna la guida",
"ButtonRemove": "Rimuovi",
"ButtonRename": "Rinomina",
@@ -2030,5 +2030,6 @@
"HeaderServerUnavailable": "Server Non Disponibile",
"HeaderUpdateRequired": "Aggiornamento Necessario",
"ViewSettings": "Mostra impostazioni",
- "DownloadManager": "Scaricati"
+ "DownloadManager": "Scaricati",
+ "MessageForgotPasswordPinReset": "Inserisci il PIN per resettare la Password"
}
From 88a9871da5c000a7a059057590379b29e9e6c4e2 Mon Sep 17 00:00:00 2001
From: Blackspirits
Date: Mon, 26 May 2025 16:16:01 -0400
Subject: [PATCH 336/645] Translated using Weblate (Portuguese) Translation:
Jellyfin/Jellyfin Web Translate-URL:
https://translate.jellyfin.org/projects/jellyfin/jellyfin-web/pt/
---
src/strings/pt.json | 20 ++++++++++----------
1 file changed, 10 insertions(+), 10 deletions(-)
diff --git a/src/strings/pt.json b/src/strings/pt.json
index d4401ac99..a29ff31c0 100644
--- a/src/strings/pt.json
+++ b/src/strings/pt.json
@@ -300,8 +300,8 @@
"LabelFinish": "Terminar",
"LabelFileOrUrl": "Ficheiro ou URL",
"LabelFailed": "Falhou",
- "LabelExtractChaptersDuringLibraryScanHelp": "Gerar imagens dos capítulos quando os vídeos forem importados durante a atualização da biblioteca. Caso contrário, serão geradas durante a tarefa agendada de extração de imagens dos capítulos, permitindo uma atualização mais rápida da biblioteca.",
- "LabelExtractChaptersDuringLibraryScan": "Extrair imagens dos capítulos durante a atualização da biblioteca",
+ "LabelExtractChaptersDuringLibraryScanHelp": "Gerar imagens dos capítulos ao importar vídeos durante a análise da biblioteca. Caso contrário, as imagens serão extraídas mais tarde, através da tarefa agendada de extração de imagens de capítulos, permitindo que a análise regular da biblioteca seja concluída mais rapidamente.",
+ "LabelExtractChaptersDuringLibraryScan": "Extrair imagens dos capítulos durante a análise da biblioteca",
"LabelBaseUrlHelp": "Adicione um subdiretório personalizado ao URL do servidor. Por exemplo: http://example.com/<baseurl>",
"LabelBaseUrl": "URL Base",
"LabelEveryXMinutes": "A cada",
@@ -548,7 +548,7 @@
"OptionDisableUserHelp": "O servidor não permitirá nenhuma conexão deste usuário. As conexões existentes serão encerradas abruptamente.",
"OptionDisableUser": "Desativar este utilizador",
"OptionDatePlayed": "Data de reprodução",
- "OptionDateAddedImportTime": "Usar a data de importação para a biblioteca",
+ "OptionDateAddedImportTime": "Utilizar a data da análise para a biblioteca",
"OptionDateAddedFileTime": "Usar a data de criação do ficheiro",
"OptionDateAdded": "Data de adição",
"OptionDaily": "Diariamente",
@@ -590,7 +590,7 @@
"MessageUnableToConnectToServer": "Não foi possível estabelecer ligação ao servidor. Por favor, certifique-se que o servidor está a correr e tente de novo.",
"MessageTheFollowingLocationWillBeRemovedFromLibrary": "As seguintes pastas multimédia serão removidas da tua biblioteca",
"MessageReenableUser": "Vê abaixo para reativar",
- "MessagePluginInstallDisclaimer": "AVISO: A instalação de uma extensão de terceiros acarreta riscos. Ela pode conter código instável ou malicioso e pode ser alterado a qualquer momento. Instala apenas extensões de autores em quem confias e tem em atenção os potenciais efeitos que podem ter, incluindo consultas de serviços externos, análises mais longas da biblioteca ou processamento adicional em segundo plano.",
+ "MessagePluginInstallDisclaimer": "AVISO: Instalar uma extensão de terceiros implica riscos. Pode conter código instável ou malicioso e pode ser alterada a qualquer momento. Instala apenas extensões de autores em quem confies e está atento aos possíveis efeitos, incluindo consultas a serviços externos, análises da biblioteca mais longas ou processamento adicional em segundo plano.",
"MessagePluginConfigurationRequiresLocalAccess": "Para configurar esta extensão, inicia sessão localmente no servidor.",
"MessagePleaseEnsureInternetMetadata": "Certifique-se de que a transferência de metadados da Internet está ativada.",
"MessagePasswordResetForUsers": "Os seguintes utilizadores tiveram as suas palavras-passe redefinidas. Podem agora iniciar sessão com os códigos PIN que foram utilizados para efetuar a redefinição.",
@@ -609,7 +609,7 @@
"MessageForgotPasswordInNetworkRequired": "Por favor, volte a tentar o processo de redefinição de palavra-passe quando se encontrar dentro da sua rede local.",
"MessageForgotPasswordFileCreated": "Foi criado no servidor o ficheiro abaixo que contém instruções de como prosseguir",
"MessageFileReadError": "Ocorreu um erro ao ler este ficheiro.",
- "MessageEnablingOptionLongerScans": "Ativar esta opção pode aumentar significativamente a duração da análise da biblioteca.",
+ "MessageEnablingOptionLongerScans": "Ativar esta opção pode prolongar significativamente o tempo das análises da biblioteca.",
"MessageDownloadQueued": "Transferência pendente.",
"MessageDirectoryPickerLinuxInstruction": "Em sistemas operativos como Arch Linux, CentOS, Debian, Fedora, OpenSuse ou Ubuntu, é necessário dar permissão ao utilizador que executa o processo Jellyfin para ter, no mínimo, acesso de leitura à pasta.",
"MessageDirectoryPickerBSDInstruction": "Para BSD, você talvez precise configurar o armazenamento em seu FreeNAS Jail para que o Jellyfin possa acessar sua mídia.",
@@ -1420,7 +1420,7 @@
"EnableAudioNormalizationHelp": "A normalização de áudio vai adicionar um ganho constante para manter a média em um nível desejável (-18db).",
"LabelParallelImageEncodingLimit": "Limite de codificação de imagens em paralelo",
"LabelEnableLUFSScan": "Ativar a verificação LUFS",
- "LabelEnableLUFSScanHelp": "Os clientes podem normalizar a reprodução de áudio para obter o mesmo volume entre as faixas. Isso fará com que as varreduras da biblioteca sejam mais longas e consumam mais recursos.",
+ "LabelEnableLUFSScanHelp": "Os clientes podem normalizar a reprodução de áudio para obter um volume uniforme entre faixas. Isto tornará as análises da biblioteca mais lentas e exigirá mais recursos.",
"LabelParallelImageEncodingLimitHelp": "Número máximo de codificações de imagem permitidas para execução em paralelo. Se deixares este campo vazio, será escolhido um limite baseado na contagem de núcleos do teu sistema.",
"GoHome": "Ir ao início",
"GridView": "Vista em grelha",
@@ -1801,7 +1801,7 @@
"LabelImageInterval": "Intervalo de imagem",
"LabelQscale": "Fator de qualidade (Qscale)",
"LabelImageIntervalHelp": "Intervalo de tempo (ms) entre cada nova imagem trickplay.",
- "LabelScanBehaviorHelp": "O comportamento predefinido é não bloquear, o que adicionará ficheiros multimédia à biblioteca antes que a geração de trickplay seja feita. Bloquear irá garantir que os ficheiros trickplay são gerados antes de os ficheiros multimédia serem adicionados à biblioteca, mas fará com que as pesquisas sejam significativamente mais longas.",
+ "LabelScanBehaviorHelp": "O comportamento predefinido é não bloqueante, o que faz com que os ficheiros multimédia sejam adicionados à biblioteca antes da geração do trickplay estar concluída. O modo bloqueante assegura que os ficheiros trickplay são gerados antes dos ficheiros multimédia serem adicionados à biblioteca, mas tornará as análises significativamente mais demoradas.",
"LabelWidthResolutions": "Resoluções de largura",
"LabelTileWidth": "Largura do mosaico",
"LabelWidthResolutionsHelp": "Lista separada por vírgulas das larguras (px) em que serão geradas as imagens trickplay. Todas as imagens devem ser geradas proporcionalmente à fonte, por isso um vídeo 16:9 com uma largura de 320 acabará por ter cerca de 320x180.",
@@ -1859,7 +1859,7 @@
"BlockingScan": "Bloqueante - coloca a geração em fila de espera, bloqueia a análise até ser concluída",
"NonBlockingScan": "Não bloqueante - coloca a geração em fila de espera e depois regressa",
"LabelExtractTrickplayDuringLibraryScan": "Extrair imagens trickplay durante a análise da biblioteca",
- "LabelExtractTrickplayDuringLibraryScanHelp": "Gera imagens trickplay quando os vídeos são importados durante a análise da biblioteca. Caso contrário, serão extraídas durante a tarefa agendada de imagens trickplay. Se a geração estiver definida como não bloqueante, isto não afetará o tempo que a análise da biblioteca demora a ser concluída.",
+ "LabelExtractTrickplayDuringLibraryScanHelp": "Gerar imagens trickplay quando os vídeos são importados durante a análise da biblioteca. Caso contrário, as imagens serão extraídas durante a tarefa agendada de imagens trickplay. Se a geração estiver definida como não bloqueante, isto não afetará o tempo que a análise da biblioteca demora a concluir.",
"PlaybackError.ASS_RENDER_ERROR": "Foi encontrado um erro no renderizador de legendas ASS/SSA.",
"SavePassword": "Guardar palavra-passe",
"Author": "Autor",
@@ -1877,8 +1877,8 @@
"Letterer": "Letrista",
"LabelSelectPreferredTranscodeVideoAudioCodec": "Codec de áudio de transcodificação preferido na reprodução de vídeo",
"SelectPreferredTranscodeVideoAudioCodecHelp": "Seleciona o codec de áudio preferido para transcodificar o conteúdo de vídeo. Se o codec preferido não for suportado, o servidor utilizará o próximo melhor codec disponível.",
- "LibraryScanFanoutConcurrencyHelp": "Número máximo de tarefas paralelas durante as verificações da biblioteca. Se deixar este campo vazio, escolherá um limite baseado na contagem de núcleos do teu sistema. AVISO: Definir este número demasiado alto pode causar problemas com os sistemas de ficheiros de rede; se tiveres problemas, reduz este número.",
- "LibraryScanFanoutConcurrency": "Limite das tarefas de análise da biblioteca paralela",
+ "LibraryScanFanoutConcurrencyHelp": "Número máximo de tarefas paralelas durante as análises da biblioteca. Se deixares este campo vazio, será escolhido um limite com base no número de núcleos do teu sistema. AVISO: Definir um valor demasiado elevado pode causar problemas com sistemas de ficheiros em rede; se encontrares problemas, reduz este número.",
+ "LibraryScanFanoutConcurrency": "Limite de tarefas paralelas de análise da biblioteca",
"PlaylistPublicDescription": "Permitir que esta lista de reprodução seja vista por qualquer utilizador com sessão iniciada.",
"PlaylistPublic": "Permitir acesso público",
"SaveLyricsIntoMediaFoldersHelp": "Guardar letras junto a ficheiros de áudio permiti-las-á ser mais facilmente geridas.",
From 685ef0c3cc12954061b67f12f9c2b44c4241e8ac Mon Sep 17 00:00:00 2001
From: hoanghuy309
Date: Tue, 27 May 2025 02:14:53 -0400
Subject: [PATCH 337/645] Translated using Weblate (Vietnamese) Translation:
Jellyfin/Jellyfin Web Translate-URL:
https://translate.jellyfin.org/projects/jellyfin/jellyfin-web/vi/
---
src/strings/vi.json | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/src/strings/vi.json b/src/strings/vi.json
index ab704bc34..079053339 100644
--- a/src/strings/vi.json
+++ b/src/strings/vi.json
@@ -1417,7 +1417,7 @@
"OptionEquals": "Bằng",
"OptionCaptionInfoExSamsung": "Thông tin chú thích ví dụ (Samsung)",
"MessageSyncPlayGroupWait": "{0} đang lưu vào bộ đệm…",
- "MediaInfoAnamorphic": "Phim điện ảnh màn ảnh rộng",
+ "MediaInfoAnamorphic": "Biến dạng",
"LabelXDlnaCap": "ID khả năng của thiết bị",
"OptionMaxActiveSessionsHelp": "Giá trị 0 sẽ vô hiệu hóa tính năng.",
"OptionMaxActiveSessions": "Đặt số lượng phiên người dùng đồng thời tối đa.",
From b0c3ceadcac210b30dd89e4baa10b8e76fb253bc Mon Sep 17 00:00:00 2001
From: Nandes Simanjuntak
Date: Tue, 27 May 2025 05:59:14 -0400
Subject: [PATCH 338/645] Translated using Weblate (Indonesian) Translation:
Jellyfin/Jellyfin Web Translate-URL:
https://translate.jellyfin.org/projects/jellyfin/jellyfin-web/id/
---
src/strings/id.json | 5 ++++-
1 file changed, 4 insertions(+), 1 deletion(-)
diff --git a/src/strings/id.json b/src/strings/id.json
index 1305e9570..190156c45 100644
--- a/src/strings/id.json
+++ b/src/strings/id.json
@@ -1945,5 +1945,8 @@
"HeaderNextVideo": "Video Selanjutnya",
"AndOtherArtists": "{0} dan {1} artis lainnya.",
"LabelAllowStreamSharing": "Mengizinkan berbagi stream",
- "LabelAudioTagSettings": "Pengaturan Tag Audio"
+ "LabelAudioTagSettings": "Pengaturan Tag Audio",
+ "Custom": "Kustom",
+ "CopyLogSuccess": "Catatan konten berhasil di salin.",
+ "CustomSplashScreenSize": "Kustom gambar harus dalam 16x9 aspek rasio dengan ukuran minimum 1920x1080."
}
From 1424e38abb1c618b5c91b126e34dc7d50b8358dc Mon Sep 17 00:00:00 2001
From: Nilkanth Hala
Date: Tue, 27 May 2025 07:20:13 -0400
Subject: [PATCH 339/645] Translated using Weblate (Hindi) Translation:
Jellyfin/Jellyfin Web Translate-URL:
https://translate.jellyfin.org/projects/jellyfin/jellyfin-web/hi/
---
src/strings/hi-in.json | 33 ++++++++++++++++++++++++++-------
1 file changed, 26 insertions(+), 7 deletions(-)
diff --git a/src/strings/hi-in.json b/src/strings/hi-in.json
index 7debc3eaf..8a7fda1cd 100644
--- a/src/strings/hi-in.json
+++ b/src/strings/hi-in.json
@@ -57,17 +57,17 @@
"BoxRear": "बॉक्स (पीछे)",
"Box": "बॉक्स",
"Books": "पुस्तकें",
- "BookLibraryHelp": "ऑडियो और पाठ्य पुस्तकें समर्थित हैं। {0} पुस्तक नामकरण गाइड {1} की समीक्षा करें।",
+ "BookLibraryHelp": "ऑडियो और पाठ्य पुस्तकें समर्थित हैं। {0} पुस्तक नामकरण मार्गदर्शिका {1} की समीक्षा करें।",
"Blacklist": "काला सूची में डालना",
"BirthPlaceValue": "जन्म स्थान: {0}",
"BirthLocation": "जन्म स्थान",
"BirthDateValue": "जन्म: {0}",
- "Banner": "झंडा",
+ "Banner": "बैनर",
"Backdrops": "पृष्ठभूमि",
"Backdrop": "पृष्ठभूमि",
"Auto": "ऑटो",
"AuthProviderHelp": "इस उपयोगकर्ता के पासवर्ड को प्रमाणित करने के लिए एक प्रमाणीकरण प्रदाता का उपयोग करें।",
- "Audio": "नया",
+ "Audio": "ऑडियो",
"AspectRatio": "आस्पेक्ट अनुपात",
"AskAdminToCreateLibrary": "लाइब्रेरी बनाने के लिए किसी व्यवस्थापक से पूछें।",
"Ascending": "आरोही",
@@ -93,7 +93,7 @@
"MessageBrowsePluginCatalog": "उपलब्ध प्लगिन्स देखने के लिए हमारे कैटलॉग को ब्राउज़ करें।",
"Browse": "ब्राउज़",
"BoxSet": "बॉक्स सेट",
- "BurnSubtitlesHelp": "निर्धारित करें कि सर्वर को सबटाइटल्स को वीडियो में एम्बेड (burn-in) करना चाहिए या नहीं। इसे बंद रखने से वीडियो स्ट्रीमिंग तेज़ और आसान हो सकती है। 'Auto' चुनने पर केवल इमेज-आधारित फॉर्मैट (जैसे VobSub, PGS, SUB, IDX आदि) और कुछ ASS या SSA सबटाइटल्स को ही एम्बेड किया जाएगा।",
+ "BurnSubtitlesHelp": "निर्धारित करें कि सर्वर को उपशीर्षक बर्न करना चाहिए या नहीं। इससे बचने से प्रदर्शन में बहुत सुधार होगा। छवि आधारित प्रारूप (VobSub, PGS, SUB, IDX, आदि) और कुछ ASS या SSA उपशीर्षक बर्न करने के लिए ऑटो का चयन करें।",
"ButtonRemove": "हटाना",
"ButtonOpen": "खोलो",
"HeaderContinueWatching": "देखना जारी रखें",
@@ -161,7 +161,7 @@
"AllowContentWithTagsHelp": "केवल उन मीडिया को दिखाएं जिनमें से कम से कम एक निर्दिष्ट टैग हो।",
"AirPlay": "वायु प्रसारण",
"AllowSubtitleManagement": "इस उपयोगकर्ता को उपशीर्षक संपादित करने की अनुमति दें",
- "BackdropScreensaver": "पृष्ठभूमि स्क्रीनसेवर",
+ "BackdropScreensaver": "बैकड्रॉप स्क्रीनसेवर",
"ChangingMetadataImageSettingsNewContent": "मेटाडेटा या कलाकृति डाउनलोडिंग सेटिंग्स में परिवर्तन केवल आपकी लाइब्रेरी में जोड़ी गई नई सामग्री पर लागू होंगे। मौजूदा शीर्षकों में परिवर्तन लागू करने के लिए, आपको उनके मेटाडेटा को मैन्युअल रूप से ताज़ा करना होगा।",
"Author": "लेखक",
"ButtonBackspace": "बैकस्पेस",
@@ -184,7 +184,7 @@
"ChannelNumber": "चैनल संख्या",
"Alternate": "वैकल्पिक",
"AlternateDVD": "वैकल्पिक डीवीडी",
- "BlockContentWithTagsHelp": "निर्दिष्ट टैगों में से कम से कम एक टैग के साथ मीडिया छिपाएँ।",
+ "BlockContentWithTagsHelp": "कम से कम एक निर्दिष्ट टैग वाले मीडिया को छिपाएं।",
"ButtonEditUser": "यूजर को संपादित करो",
"CinemaModeConfigurationHelp": "सिनेमा मोड मुख्य फीचर से पहले ट्रेलर और कस्टम इंट्रो चलाने की क्षमता के साथ थिएटर अनुभव को सीधे आपके लिविंग रूम में लाता है।",
"AlwaysRemuxFlacAudioFilesHelp": "अगर आपके पास ऐसी फाइलें हैं जिन्हें आपका ब्राउज़र चलाने से मना करता है या जिनमें टाइमस्टैम्प गलत तरीके से दिखते हैं, तो इस विकल्प को चालू करें। यह एक वैकल्पिक समाधान के रूप में काम करेगा।",
@@ -195,5 +195,24 @@
"AlwaysRemuxMp3AudioFilesHelp": "अगर आपकी कुछ फाइलों में ब्राउज़र टाइमस्टैम्प गलत दिखा रहा है, तो इस विकल्प को एक समाधान के रूप में चालू करें।",
"Anime": "एनिमे",
"AutoSubtitleStylingHelp": "यह मोड आपके डिवाइस के प्रकार के आधार पर, मूल (native) और कस्टम सबटाइटल स्टाइलिंग के बीच अपने आप स्विच करेगा।",
- "AlwaysBurnInSubtitleWhenTranscoding": "ट्रांसकोडिंग करते समय सबटाइटल को हमेशा वीडियो में स्थायी रूप से जोड़ें"
+ "AlwaysBurnInSubtitleWhenTranscoding": "ट्रांसकोडिंग करते समय सबटाइटल को हमेशा वीडियो में स्थायी रूप से जोड़ें",
+ "ConfirmDeleteItem": "इस आइटम को हटाने से यह फ़ाइल सिस्टम और आपकी मीडिया लाइब्रेरी दोनों से हट जाएगा। क्या आप वाकई जारी रखना चाहते हैं?",
+ "ConfirmDeleteItems": "इन आइटम को हटाने से वे फ़ाइल सिस्टम और आपकी मीडिया लाइब्रेरी दोनों से हट जाएँगे। क्या आप वाकई जारी रखना चाहते हैं?",
+ "ConfirmDeleteLyrics": "इन गीतों को हटाने से वे फ़ाइल सिस्टम और आपकी मीडिया लाइब्रेरी दोनों से मिट जाएँगे। क्या आप वाकई जारी रखना चाहते हैं?",
+ "ConfirmEndPlayerSession": "क्या आप {0} पर जेलीफिन को बंद करना चाहेंगे?",
+ "Console": "कंसोल",
+ "ContinueWatching": "देखना जारी रखें",
+ "Continuing": "सतत",
+ "Connect": "कनेक्ट करें",
+ "Copy": "कॉपी",
+ "ConfirmDeletion": "विलोपन की पुष्टि करें",
+ "Copied": "कॉपी किया गया",
+ "ColorTransfer": "रंग स्थानांतरण",
+ "ColorSpace": "रंग स्थान",
+ "CommunityRating": "सामुदायिक रेटिंग",
+ "ConfirmDeleteSeries": "इस श्रृंखला को हटाने से फ़ाइल सिस्टम और आपकी मीडिया लाइब्रेरी दोनों से सभी {0} एपिसोड हट जाएँगे। क्या आप वाकई जारी रखना चाहते हैं?",
+ "Composer": "संगीतकार",
+ "Conductor": "कंडक्टर",
+ "ConfigureDateAdded": "डैशबोर्ड > लाइब्रेरीज़ > डिस्प्ले में 'जोड़ी गई तिथि' के लिए मेटाडेटा निर्धारित करने का तरीका सेट करें",
+ "ConfirmDeleteImage": "छवि हटाएँ?"
}
From 5c77645971975d2be53c8df5d68c71b856dc3e74 Mon Sep 17 00:00:00 2001
From: Nilkanth Hala
Date: Tue, 27 May 2025 07:42:05 -0400
Subject: [PATCH 340/645] Translated using Weblate (Hindi) Translation:
Jellyfin/Jellyfin Web Translate-URL:
https://translate.jellyfin.org/projects/jellyfin/jellyfin-web/hi/
---
src/strings/hi-in.json | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
diff --git a/src/strings/hi-in.json b/src/strings/hi-in.json
index 8a7fda1cd..1c4082bcf 100644
--- a/src/strings/hi-in.json
+++ b/src/strings/hi-in.json
@@ -214,5 +214,6 @@
"Composer": "संगीतकार",
"Conductor": "कंडक्टर",
"ConfigureDateAdded": "डैशबोर्ड > लाइब्रेरीज़ > डिस्प्ले में 'जोड़ी गई तिथि' के लिए मेटाडेटा निर्धारित करने का तरीका सेट करें",
- "ConfirmDeleteImage": "छवि हटाएँ?"
+ "ConfirmDeleteImage": "छवि हटाएँ?",
+ "CopyFailed": "कॉपी नहीं किया जा सका"
}
From 0901ad8be70290c75e38782f56ef649c41fd4ae9 Mon Sep 17 00:00:00 2001
From: Nilkanth Hala
Date: Tue, 27 May 2025 07:54:52 -0400
Subject: [PATCH 341/645] Translated using Weblate (Gujarati) Translation:
Jellyfin/Jellyfin Web Translate-URL:
https://translate.jellyfin.org/projects/jellyfin/jellyfin-web/gu/
---
src/strings/gu.json | 90 ++++++++++++++++++++++++++++++++++++++++++++-
1 file changed, 89 insertions(+), 1 deletion(-)
diff --git a/src/strings/gu.json b/src/strings/gu.json
index c5bff38cc..0ac9f33ef 100644
--- a/src/strings/gu.json
+++ b/src/strings/gu.json
@@ -23,5 +23,93 @@
"AlternateDVD": "અન્ય DVD",
"AllowMediaConversion": "મીડિયા રૂપાંતરણની અનુમતિ આપો",
"Absolute": "સંપૂર્ણ",
- "Add": "ઉમેરો"
+ "Add": "ઉમેરો",
+ "AddedOnValue": "{0} ઉમેર્યું",
+ "AddToCollection": "સંગ્રહમાં ઉમેરો",
+ "AddToPlaylist": "પ્લેલિસ્ટમાં ઉમેરો",
+ "AddToPlayQueue": "પ્લે કતારમાં ઉમેરો",
+ "AllowSegmentDeletion": "સેગમેન્ટ્સ કાઢી નાખો",
+ "LabelSegmentKeepSeconds": "સેગમેન્ટ્સ રાખવાનો સમય",
+ "AllowMediaConversionHelp": "કન્વર્ટ મીડિયા સુવિધાની ઍક્સેસ આપો અથવા નકારો.",
+ "AlwaysPlaySubtitles": "હંમેશા વગાડો",
+ "AskAdminToCreateLibrary": "લાઇબ્રેરી બનાવવા માટે એડમિનિસ્ટ્રેટરને કહો.",
+ "Backdrop": "પૃષ્ઠભૂમિ",
+ "BirthLocation": "જન્મસ્થળ",
+ "ButtonAudioTracks": "ઑડિયો ટ્રૅક્સ",
+ "ButtonEditOtherUserPreferences": "આ વપરાશકર્તાની પ્રોફાઇલ, છબી અને વ્યક્તિગત પસંદગીઓમાં ફેરફાર કરો.",
+ "ButtonClose": "બંધ કરો",
+ "AddToFavorites": "મનપસંદમાં ઉમેરો",
+ "AllowedRemoteAddressesHelp": "નેટવર્ક્સ માટે IP સરનામાં અથવા IP/નેટમાસ્ક એન્ટ્રીઓની અલ્પવિરામથી વિભાજિત સૂચિ જે દૂરસ્થ રીતે કનેક્ટ થવાની મંજૂરી આપવામાં આવશે. જો ખાલી છોડી દેવામાં આવે, તો બધા દૂરસ્થ સરનામાંને મંજૂરી આપવામાં આવશે.",
+ "AllowFfmpegThrottlingHelp": "જ્યારે ટ્રાન્સકોડ અથવા રીમક્સ વર્તમાન પ્લેબેક સ્થિતિથી ખૂબ આગળ વધે છે, ત્યારે પ્રક્રિયાને થોભાવો જેથી તે ઓછા સંસાધનોનો ઉપયોગ કરે. વારંવાર શોધ્યા વિના જોતી વખતે આ સૌથી ઉપયોગી છે. જો તમને પ્લેબેક સમસ્યાઓનો અનુભવ થાય તો આને બંધ કરો.",
+ "AllowFmp4TranscodingContainerHelp": "આ ટ્યુનર માટે fMP4 ટ્રાન્સકોડિંગ કન્ટેનરને HEVC અને HDR કન્ટેન્ટ સક્ષમ કરવાની મંજૂરી આપો. બધા ટ્યુનર આ કન્ટેનર સાથે સુસંગત નથી. જો તમને પ્લેબેક સમસ્યાઓનો અનુભવ થાય તો આને અક્ષમ કરો.",
+ "AllowSegmentDeletionHelp": "ક્લાયન્ટ દ્વારા જૂના સેગમેન્ટ્સ ડાઉનલોડ કર્યા પછી તેને કાઢી નાખો. આનાથી આખી ટ્રાન્સકોડેડ ફાઇલને ડિસ્ક પર સ્ટોર કરવાની જરૂર પડતી નથી. જો તમને પ્લેબેક સમસ્યાઓનો અનુભવ થાય તો આને બંધ કરો.",
+ "AllowStreamSharingHelp": "જેલીફિનને ટ્યુનરમાંથી mpegts સ્ટ્રીમ ડુપ્લિકેટ કરવાની મંજૂરી આપો અને આ ડુપ્લિકેટ સ્ટ્રીમ તેના ક્લાયન્ટ્સ સાથે શેર કરો. જ્યારે ટ્યુનરમાં કુલ સ્ટ્રીમ કાઉન્ટ મર્યાદા હોય ત્યારે આ ઉપયોગી છે પરંતુ પ્લેબેક સમસ્યાઓનું કારણ પણ બની શકે છે.",
+ "AlwaysBurnInSubtitleWhenTranscodingHelp": "ટ્રાન્સકોડિંગ ટ્રિગર થાય ત્યારે બધા સબટાઈટલ બર્ન કરો. આ ટ્રાન્સકોડિંગ પછી સબટાઈટલ સિંક્રનાઇઝેશનને ઓછી ટ્રાન્સકોડિંગ ઝડપના ખર્ચે સુનિશ્ચિત કરે છે.",
+ "AndOtherArtists": "{0} અને {1} અન્ય કલાકારો.",
+ "LabelThrottleDelaySecondsHelp": "ટ્રાન્સકોડર થ્રોટલ થાય તે પછીનો સમય સેકન્ડમાં. ક્લાયન્ટ સ્વસ્થ બફર જાળવી શકે તેટલો મોટો હોવો જોઈએ. જો થ્રોટલિંગ સક્ષમ હોય તો જ તે કાર્ય કરે છે.",
+ "LabelSegmentKeepSecondsHelp": "ક્લાયન્ટ દ્વારા ડાઉનલોડ કર્યા પછી સેગમેન્ટ્સ કયા માટે રાખવા જોઈએ તે સેકન્ડમાં સમય. જો સેગમેન્ટ ડિલીટ કરવાનું સક્ષમ હોય તો જ તે કાર્ય કરે છે.",
+ "AllowTonemappingHelp": "ટોન-મેપિંગ વિડિઓની ગતિશીલ શ્રેણીને HDR થી SDR માં રૂપાંતરિત કરી શકે છે, જ્યારે છબીની વિગતો અને રંગો જાળવી રાખે છે, જે મૂળ દ્રશ્યનું પ્રતિનિધિત્વ કરવા માટે ખૂબ જ મહત્વપૂર્ણ માહિતી છે. હાલમાં ફક્ત 10bit HDR10, HLG અને DoVi વિડિઓઝ સાથે કામ કરે છે. આ માટે અનુરૂપ GPGPU રનટાઇમની જરૂર છે.",
+ "AllowTonemappingSoftwareHelp": "ટોન-મેપિંગ વિડિઓની ગતિશીલ શ્રેણીને HDR થી SDR માં પરિવર્તિત કરી શકે છે, જ્યારે છબીની વિગતો અને રંગો જાળવી રાખે છે, જે મૂળ દ્રશ્યનું પ્રતિનિધિત્વ કરવા માટે ખૂબ જ મહત્વપૂર્ણ માહિતી છે. હાલમાં ફક્ત 10bit HDR10, HLG અને DoVi વિડિઓઝ સાથે કામ કરે છે.",
+ "AlwaysRemuxFlacAudioFilesHelp": "જો તમારી પાસે એવી ફાઇલો છે જેને તમારું બ્રાઉઝર ચલાવવાનો ઇનકાર કરે છે અથવા જ્યાં તે ખોટી રીતે ટાઇમસ્ટેમ્પની ગણતરી કરે છે, તો આને ઉકેલ તરીકે સક્ષમ કરો.",
+ "ApiKeysCaption": "હાલમાં સક્ષમ API કીની સૂચિ",
+ "Ascending": "ચડતા ક્રમમાં",
+ "LabelThrottleDelaySeconds": "થ્રોટલ પછી",
+ "AllowHWTranscodingHelp": "ટ્યુનરને તરત જ સ્ટ્રીમ્સ ટ્રાન્સકોડ કરવાની મંજૂરી આપો. આ સર્વર દ્વારા જરૂરી ટ્રાન્સકોડિંગ ઘટાડવામાં મદદ કરી શકે છે.",
+ "Art": "ક્લિયર આર્ટ",
+ "AspectRatio": "પાસા ગુણોત્તર",
+ "Artists": "કલાકારો",
+ "AsManyAsPossible": "શક્ય હોય તેટલા",
+ "Auto": "ઓટો",
+ "Author": "લેખક",
+ "AllowOnTheFlySubtitleExtractionHelp": "વિડિઓ ટ્રાન્સકોડિંગ અટકાવવા માટે, એમ્બેડેડ સબટાઈટલને વિડિઓમાંથી એક્સટ્રેક્ટ કરી શકાય છે અને ક્લાયંટને સાદા ટેક્સ્ટમાં પહોંચાડી શકાય છે. કેટલીક સિસ્ટમો પર આમાં લાંબો સમય લાગી શકે છે અને એક્સટ્રેક્શન પ્રક્રિયા દરમિયાન વિડિઓ પ્લેબેક અટકી શકે છે. જ્યારે ક્લાયંટ ડિવાઇસ દ્વારા મૂળ રીતે સપોર્ટેડ ન હોય ત્યારે વિડિઓ ટ્રાન્સકોડિંગ સાથે એમ્બેડેડ સબટાઈટલ બર્ન કરવા માટે આને અક્ષમ કરો.",
+ "Artist": "કલાકાર",
+ "Audio": "ઑડિયો",
+ "Authorize": "અધિકૃત કરો",
+ "AuthProviderHelp": "આ વપરાશકર્તાના પાસવર્ડને પ્રમાણિત કરવા માટે ઉપયોગમાં લેવાતા પ્રમાણીકરણ પ્રદાતાને પસંદ કરો.",
+ "BurnSubtitlesHelp": "સર્વર સબટાઈટલમાં બર્ન થવું જોઈએ કે નહીં તે નક્કી કરો. આને ટાળવાથી કામગીરીમાં ઘણો સુધારો થશે. છબી આધારિત ફોર્મેટ (VobSub, PGS, SUB, IDX, વગેરે) અને ચોક્કસ ASS અથવા SSA સબટાઈટલ બર્ન કરવા માટે ઓટો પસંદ કરો.",
+ "AutoSubtitleStylingHelp": "આ મોડ આપમેળે તમારા ઉપકરણના પ્રકાર પર આધારિત મૂળ અને કસ્ટમ સબટાઈટલ સ્ટાઇલ મિકેનિઝમ્સ વચ્ચે સ્વિચ કરશે.",
+ "ButtonFullscreen": "પૂર્ણસ્ક્રીન",
+ "ButtonGotIt": "સમજાઈ ગયું",
+ "AnyLanguage": "કોઈપણ ભાષા",
+ "Banner": "બેનર",
+ "AlwaysBurnInSubtitleWhenTranscoding": "ટ્રાન્સકોડિંગ કરતી વખતે હંમેશા સબટાઈટલમાં બર્ન કરો",
+ "AllowOnTheFlySubtitleExtraction": "તરત જ ઉપશીર્ષક કાઢવાની મંજૂરી આપો",
+ "AllowRemoteAccess": "આ સર્વર પર રિમોટ કનેક્શન્સને મંજૂરી આપો",
+ "AllowRemoteAccessHelp": "જો અનચેક કરવામાં આવે, તો બધા રિમોટ કનેક્શન બ્લોક થઈ જશે.",
+ "AlwaysPlaySubtitlesHelp": "ઑડિઓ ભાષાને ધ્યાનમાં લીધા વિના, ભાષા પસંદગી સાથે મેળ ખાતા સબટાઈટલ લોડ કરવામાં આવશે.",
+ "AlwaysRemuxMp3AudioFilesHelp": "જો તમારી પાસે એવી ફાઇલો છે જેના માટે તમારું બ્રાઉઝર ખોટી રીતે ટાઇમસ્ટેમ્પની ગણતરી કરે છે, તો આને ઉકેલ તરીકે સક્ષમ કરો.",
+ "Anytime": "કોઈપણ સમયે",
+ "AroundTime": "લગભગ {0}",
+ "Books": "પુસ્તકો",
+ "ButtonAddServer": "સર્વર ઉમેરો",
+ "ButtonArrowLeft": "ડાબે",
+ "ButtonAddUser": "વપરાશકર્તા ઉમેરો",
+ "ButtonArrowRight": "અધિકાર",
+ "ButtonBackspace": "બેકસ્પેસ",
+ "ButtonCancel": "રદ કરો",
+ "Anime": "એનીમે",
+ "Arranger": "ગોઠવનાર",
+ "BirthPlaceValue": "જન્મ સ્થળ: {0}",
+ "Blacklist": "બ્લેકલિસ્ટ",
+ "BlockContentWithTagsHelp": "ઓછામાં ઓછા એક ઉલ્લેખિત ટૅગ સાથે મીડિયા છુપાવો.",
+ "BookLibraryHelp": "ઑડિયો અને ટેક્સ્ટ બુક સપોર્ટેડ છે. {0} પુસ્તક નામકરણ માર્ગદર્શિકા {1}ની સમીક્ષા કરો.",
+ "Box": "બોક્સ",
+ "BoxRear": "બોક્સ (પાછળનું)",
+ "BoxSet": "બોક્સ સમૂહ",
+ "Browse": "બ્રાઉઝ",
+ "ButtonActivate": "સક્રિય કરો",
+ "Backdrops": "પાછળની બાજુ",
+ "BackdropScreensaver": "બેકડ્રોપ સ્ક્રીનસેવર",
+ "BirthDateValue": "જન્મ: {0}",
+ "ButtonAddMediaLibrary": "મીડિયા લાઇબ્રેરી ઉમેરો",
+ "ButtonAddScheduledTaskTrigger": "ટ્રીગર ઉમેરો",
+ "ButtonBack": "પાછળ",
+ "ButtonCast": "ઉપકરણ પર કાસ્ટ કરો",
+ "ButtonChangeServer": "સર્વર બદલો",
+ "ButtonEditUser": "વપરાશકર્તા સંપાદિત કરો",
+ "ButtonForgotPassword": "પાસવર્ડ ભૂલી ગયા",
+ "ButtonInfo": "માહિતી",
+ "ButtonAddImage": "છબી ઉમેરો",
+ "ButtonLibraryAccess": "લાઇબ્રેરી એક્સેસ",
+ "ButtonManualLogin": "મેન્યુઅલ લોગિન"
}
From 3c4258c8f0b951b22bfab4b733b624259e857425 Mon Sep 17 00:00:00 2001
From: JoaKing
Date: Tue, 27 May 2025 14:19:15 -0400
Subject: [PATCH 342/645] Translated using Weblate (Spanish (Latin America))
Translation: Jellyfin/Jellyfin Web Translate-URL:
https://translate.jellyfin.org/projects/jellyfin/jellyfin-web/es_419/
---
src/strings/es_419.json | 4 +++-
1 file changed, 3 insertions(+), 1 deletion(-)
diff --git a/src/strings/es_419.json b/src/strings/es_419.json
index d2d237a5a..2cd3f947c 100644
--- a/src/strings/es_419.json
+++ b/src/strings/es_419.json
@@ -1744,5 +1744,7 @@
"DeleteCustomImage": "Borrar imagen personalizada",
"DeleteEpisode": "Borrar episodio",
"DeleteName": "Borrar {0}",
- "EnableDts": "Activar DTS (DCA)"
+ "EnableDts": "Activar DTS (DCA)",
+ "DownloadManager": "Descargas",
+ "EnableLibrary": "Habilitar la librería"
}
From 9d53d4a107c22ad89ae5065a908854e6f1cba973 Mon Sep 17 00:00:00 2001
From: wheremygit
Date: Wed, 28 May 2025 05:47:42 -0400
Subject: [PATCH 343/645] Translated using Weblate (Marathi) Translation:
Jellyfin/Jellyfin Web Translate-URL:
https://translate.jellyfin.org/projects/jellyfin/jellyfin-web/mr/
---
src/strings/mr.json | 6 +++++-
1 file changed, 5 insertions(+), 1 deletion(-)
diff --git a/src/strings/mr.json b/src/strings/mr.json
index 63826fed2..a3217c063 100644
--- a/src/strings/mr.json
+++ b/src/strings/mr.json
@@ -677,5 +677,9 @@
"AllowSegmentDeletion": "विभागांना हटवा",
"AllowSegmentDeletionHelp": "क्लायंटला पाठवल्यानंतर जुन्या विभागांना हटवा. यामुळे संपूर्ण ट्रान्सकोड केलेली फाईल डिस्कवर साठवण्याची आवश्यकता नाही. केवळ थ्रॉटलिंग सक्षम असल्यास कार्य करेल. जर आपल्याला प्लेबॅक समस्या येत असतील तर हे बंद करा.",
"LabelSegmentKeepSeconds": "विभागांना ठेवण्याची वेळ",
- "AirPlay": "एअरप्ले"
+ "AirPlay": "एअरप्ले",
+ "AccessRestrictedTryAgainLater": "सध्या प्रवेश मर्यादित आहे. कृपया नंतर पुन्हा प्रयत्न करा.",
+ "Alternate": "पर्यायी",
+ "AllowContentWithTagsHelp": "फक्त निर्दिष्ट टॅगपैकी किमान एक असलेले मीडिया दाखवा.",
+ "AllowSubtitleManagement": "या वापरकर्त्याला सबटायटल संपादित करण्याची परवानगी द्या"
}
From 963bba1e6697fa1a7cb75cded48f0937670b1bd1 Mon Sep 17 00:00:00 2001
From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com>
Date: Wed, 28 May 2025 11:07:16 +0000
Subject: [PATCH 344/645] Update dependency @jellyfin/sdk to
v0.0.0-unstable.202505280501
---
package-lock.json | 14 +++++++-------
package.json | 2 +-
2 files changed, 8 insertions(+), 8 deletions(-)
diff --git a/package-lock.json b/package-lock.json
index e262f0c6d..3321ae719 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -18,7 +18,7 @@
"@fontsource/noto-sans-sc": "5.2.5",
"@fontsource/noto-sans-tc": "5.2.5",
"@jellyfin/libass-wasm": "4.2.3",
- "@jellyfin/sdk": "0.0.0-unstable.202505220501",
+ "@jellyfin/sdk": "0.0.0-unstable.202505280501",
"@jellyfin/ux-web": "1.0.0",
"@mui/icons-material": "6.4.11",
"@mui/material": "6.4.11",
@@ -4095,9 +4095,9 @@
"license": "LGPL-2.1-or-later AND (FTL OR GPL-2.0-or-later) AND MIT AND MIT-Modern-Variant AND ISC AND NTP AND Zlib AND BSL-1.0"
},
"node_modules/@jellyfin/sdk": {
- "version": "0.0.0-unstable.202505220501",
- "resolved": "https://registry.npmjs.org/@jellyfin/sdk/-/sdk-0.0.0-unstable.202505220501.tgz",
- "integrity": "sha512-ad+5uCpfWF4OcFzkcYRCscmkJGo7zW5H50eHRfdZYefuU5Cg321QOsDrYn7pPl+7Ji+0h97zi7KqWuIbY50MyQ==",
+ "version": "0.0.0-unstable.202505280501",
+ "resolved": "https://registry.npmjs.org/@jellyfin/sdk/-/sdk-0.0.0-unstable.202505280501.tgz",
+ "integrity": "sha512-RGzd4M6z1Ud9rY1CxSwRIi7q3c1dcyGjPCYTvA9w8RAHQh3MPo1ulI1V50NW8fCiEGb1S84HfdbB5EDPTEZSOA==",
"license": "MPL-2.0",
"peerDependencies": {
"axios": "^1.3.4"
@@ -27773,9 +27773,9 @@
"integrity": "sha512-C0OlBxIr9NdeFESMTA/OVDqNSWtog6Mi7wwzwH12xbZpxsMD0RgCupUcIP7zZgcpTNecW3fZq5d6xVo7Q8HEJw=="
},
"@jellyfin/sdk": {
- "version": "0.0.0-unstable.202505220501",
- "resolved": "https://registry.npmjs.org/@jellyfin/sdk/-/sdk-0.0.0-unstable.202505220501.tgz",
- "integrity": "sha512-ad+5uCpfWF4OcFzkcYRCscmkJGo7zW5H50eHRfdZYefuU5Cg321QOsDrYn7pPl+7Ji+0h97zi7KqWuIbY50MyQ==",
+ "version": "0.0.0-unstable.202505280501",
+ "resolved": "https://registry.npmjs.org/@jellyfin/sdk/-/sdk-0.0.0-unstable.202505280501.tgz",
+ "integrity": "sha512-RGzd4M6z1Ud9rY1CxSwRIi7q3c1dcyGjPCYTvA9w8RAHQh3MPo1ulI1V50NW8fCiEGb1S84HfdbB5EDPTEZSOA==",
"requires": {}
},
"@jellyfin/ux-web": {
diff --git a/package.json b/package.json
index 615036759..eb42a0602 100644
--- a/package.json
+++ b/package.json
@@ -84,7 +84,7 @@
"@fontsource/noto-sans-sc": "5.2.5",
"@fontsource/noto-sans-tc": "5.2.5",
"@jellyfin/libass-wasm": "4.2.3",
- "@jellyfin/sdk": "0.0.0-unstable.202505220501",
+ "@jellyfin/sdk": "0.0.0-unstable.202505280501",
"@jellyfin/ux-web": "1.0.0",
"@mui/icons-material": "6.4.11",
"@mui/material": "6.4.11",
From eb125b56668c0af4775cfbe7bd4694eb5345f71a Mon Sep 17 00:00:00 2001
From: Dmitry Lyzo
Date: Wed, 28 May 2025 21:36:56 +0300
Subject: [PATCH 345/645] Add Proxy polyfill
---
package-lock.json | 12 ++++++++++++
package.json | 1 +
src/lib/legacy/index.ts | 1 +
webpack.common.js | 1 +
4 files changed, 15 insertions(+)
diff --git a/package-lock.json b/package-lock.json
index 3321ae719..6fa4641b7 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -53,6 +53,7 @@
"material-react-table": "3.2.1",
"native-promise-only": "0.8.1",
"pdfjs-dist": "3.11.174",
+ "proxy-polyfill": "0.3.2",
"react": "18.3.1",
"react-blurhash": "0.3.0",
"react-dom": "18.3.1",
@@ -18712,6 +18713,12 @@
"integrity": "sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg==",
"peer": true
},
+ "node_modules/proxy-polyfill": {
+ "version": "0.3.2",
+ "resolved": "https://registry.npmjs.org/proxy-polyfill/-/proxy-polyfill-0.3.2.tgz",
+ "integrity": "sha512-ENKSXOMCewnQTOyqrQXxEjIhzT6dy572mtehiItbDoIUF5Sv5UkmRUc8kowg2MFvr232Uo8rwRpNg3V5kgTKbA==",
+ "license": "Apache-2.0"
+ },
"node_modules/pump": {
"version": "3.0.2",
"resolved": "https://registry.npmjs.org/pump/-/pump-3.0.2.tgz",
@@ -37665,6 +37672,11 @@
"integrity": "sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg==",
"peer": true
},
+ "proxy-polyfill": {
+ "version": "0.3.2",
+ "resolved": "https://registry.npmjs.org/proxy-polyfill/-/proxy-polyfill-0.3.2.tgz",
+ "integrity": "sha512-ENKSXOMCewnQTOyqrQXxEjIhzT6dy572mtehiItbDoIUF5Sv5UkmRUc8kowg2MFvr232Uo8rwRpNg3V5kgTKbA=="
+ },
"pump": {
"version": "3.0.2",
"resolved": "https://registry.npmjs.org/pump/-/pump-3.0.2.tgz",
diff --git a/package.json b/package.json
index eb42a0602..0288e7670 100644
--- a/package.json
+++ b/package.json
@@ -119,6 +119,7 @@
"material-react-table": "3.2.1",
"native-promise-only": "0.8.1",
"pdfjs-dist": "3.11.174",
+ "proxy-polyfill": "0.3.2",
"react": "18.3.1",
"react-blurhash": "0.3.0",
"react-dom": "18.3.1",
diff --git a/src/lib/legacy/index.ts b/src/lib/legacy/index.ts
index d8dcf9539..fadde20eb 100644
--- a/src/lib/legacy/index.ts
+++ b/src/lib/legacy/index.ts
@@ -8,6 +8,7 @@ import 'classlist.js';
import 'whatwg-fetch';
import 'abortcontroller-polyfill'; // requires fetch
import 'resize-observer-polyfill';
+import 'proxy-polyfill';
import './domParserTextHtml';
import './elementAppendPrepend';
diff --git a/webpack.common.js b/webpack.common.js
index aaae57d0d..ad0019a0e 100644
--- a/webpack.common.js
+++ b/webpack.common.js
@@ -229,6 +229,7 @@ const config = {
path.resolve(__dirname, 'node_modules/markdown-it'),
path.resolve(__dirname, 'node_modules/material-react-table'),
path.resolve(__dirname, 'node_modules/mdurl'),
+ path.resolve(__dirname, 'node_modules/proxy-polyfill'),
path.resolve(__dirname, 'node_modules/punycode'),
path.resolve(__dirname, 'node_modules/react-blurhash'),
path.resolve(__dirname, 'node_modules/react-lazy-load-image-component'),
From 474782c454bea1180bde801197a2b04e2ccd7cd4 Mon Sep 17 00:00:00 2001
From: "Troj@"
Date: Fri, 30 May 2025 02:26:47 -0400
Subject: [PATCH 346/645] Translated using Weblate (Belarusian) Translation:
Jellyfin/Jellyfin Web Translate-URL:
https://translate.jellyfin.org/projects/jellyfin/jellyfin-web/be/
---
src/strings/be-by.json | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
diff --git a/src/strings/be-by.json b/src/strings/be-by.json
index ae23eb2ac..f0502a13b 100644
--- a/src/strings/be-by.json
+++ b/src/strings/be-by.json
@@ -1992,5 +1992,6 @@
"MoviesAndShows": "Фільмы і Cерыялы",
"PreviewLyrics": "Прадпрагляд тэксту песні",
"ReadInputAtNativeFramerate": "Чытаць уваходныя дадзеныя пры зыходнай частаце кадраў",
- "ReadInputAtNativeFramerateHelp": "Уключэнне гэтай опцыі можа вырашыць некаторыя праблемы, напрыклад, заўчаснае спыненне прамых трансляцый."
+ "ReadInputAtNativeFramerateHelp": "Уключэнне гэтай опцыі можа вырашыць некаторыя праблемы, напрыклад, заўчаснае спыненне прамых трансляцый.",
+ "Retry": "Паўтарыць"
}
From 2028eea5b6618dcadbb6489a140b518c1d82b496 Mon Sep 17 00:00:00 2001
From: scapade
Date: Fri, 30 May 2025 03:05:40 -0400
Subject: [PATCH 347/645] Translated using Weblate (Finnish) Translation:
Jellyfin/Jellyfin Web Translate-URL:
https://translate.jellyfin.org/projects/jellyfin/jellyfin-web/fi/
---
src/strings/fi.json | 8 ++++++--
1 file changed, 6 insertions(+), 2 deletions(-)
diff --git a/src/strings/fi.json b/src/strings/fi.json
index 99d3b2429..c8faea452 100644
--- a/src/strings/fi.json
+++ b/src/strings/fi.json
@@ -113,7 +113,7 @@
"ButtonParentalControl": "Lapsilukko",
"ButtonPause": "Tauko",
"ButtonPreviousTrack": "Edellinen raita",
- "ButtonQuickStartGuide": "Pikaopas",
+ "ButtonQuickStartGuide": "Asennusopas",
"ButtonRefreshGuideData": "Päivitä oppaan tiedot",
"ButtonRemove": "Poista",
"ButtonRename": "Nimeä uudelleen",
@@ -2024,5 +2024,9 @@
"SettingsPageLoadError": "Asetukset-sivun lataaminen epäonnistui",
"NativeSubtitleStylingHelp": "Tekstityksen tyylit eivät toimi kaikilla laitteilla, mutta ei aiheuta ylimääräistä kuormaa.",
"VideoCodecTagNotSupported": "Videokoodekin tagi ei ole tuettu",
- "LogLoadFailure": "Logitiedoston lataaminen epäonnistui. Se saattaa olla kirjoituksen kohteena."
+ "LogLoadFailure": "Logitiedoston lataaminen epäonnistui. Se saattaa olla kirjoituksen kohteena.",
+ "HeaderServerUnavailable": "Palvelin ei ole käytettävissä",
+ "DownloadManager": "Lataukset",
+ "ViewSettings": "Tarkastele asetuksia",
+ "HeaderUpdateRequired": "Päivitys vaaditaan"
}
From ddd897335f5efa4a5bc78c261353a4957b8466dd Mon Sep 17 00:00:00 2001
From: hoanghuy309
Date: Fri, 30 May 2025 03:31:06 -0400
Subject: [PATCH 348/645] Translated using Weblate (Vietnamese) Translation:
Jellyfin/Jellyfin Web Translate-URL:
https://translate.jellyfin.org/projects/jellyfin/jellyfin-web/vi/
---
src/strings/vi.json | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/src/strings/vi.json b/src/strings/vi.json
index 079053339..fcf510f63 100644
--- a/src/strings/vi.json
+++ b/src/strings/vi.json
@@ -347,7 +347,7 @@
"EnableExternalVideoPlayers": "Trình phát video bên ngoài",
"EnableDisplayMirroring": "Cho phép trình chiếu trên thiết bị khác",
"HeaderProfileInformation": "Thông Tin Hồ Sơ",
- "HeaderPreferredMetadataLanguage": "Ngôn Ngữ Dữ Liệu Mô Tả Ưu Tiên",
+ "HeaderPreferredMetadataLanguage": "Ngôn Ngữ Dữ Liệu Mô Tả Ưa Thích",
"HeaderPluginInstallation": "Cài Đặt Plugin",
"HeaderPleaseSignIn": "Hãy đăng nhập",
"HeaderPlaybackError": "Lỗi Phát Lại",
From c2e34d3e2bac0df174a9d017153e3ec1d0a4e7ff Mon Sep 17 00:00:00 2001
From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com>
Date: Fri, 30 May 2025 16:40:35 +0000
Subject: [PATCH 349/645] Update dependency swiper to v11.2.8
---
package-lock.json | 14 +++++++-------
package.json | 2 +-
2 files changed, 8 insertions(+), 8 deletions(-)
diff --git a/package-lock.json b/package-lock.json
index 3321ae719..708dc3bd3 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -61,7 +61,7 @@
"resize-observer-polyfill": "1.5.1",
"screenfull": "6.0.2",
"sortablejs": "1.15.6",
- "swiper": "11.2.6",
+ "swiper": "11.2.8",
"usehooks-ts": "3.1.1",
"webcomponents.js": "0.7.24",
"whatwg-fetch": "3.6.20"
@@ -23121,9 +23121,9 @@
}
},
"node_modules/swiper": {
- "version": "11.2.6",
- "resolved": "https://registry.npmjs.org/swiper/-/swiper-11.2.6.tgz",
- "integrity": "sha512-8aXpYKtjy3DjcbzZfz+/OX/GhcU5h+looA6PbAzHMZT6ESSycSp9nAjPCenczgJyslV+rUGse64LMGpWE3PX9Q==",
+ "version": "11.2.8",
+ "resolved": "https://registry.npmjs.org/swiper/-/swiper-11.2.8.tgz",
+ "integrity": "sha512-S5FVf6zWynPWooi7pJ7lZhSUe2snTzqLuUzbd5h5PHUOhzgvW0bLKBd2wv0ixn6/5o9vwc/IkQT74CRcLJQzeg==",
"funding": [
{
"type": "patreon",
@@ -40790,9 +40790,9 @@
}
},
"swiper": {
- "version": "11.2.6",
- "resolved": "https://registry.npmjs.org/swiper/-/swiper-11.2.6.tgz",
- "integrity": "sha512-8aXpYKtjy3DjcbzZfz+/OX/GhcU5h+looA6PbAzHMZT6ESSycSp9nAjPCenczgJyslV+rUGse64LMGpWE3PX9Q=="
+ "version": "11.2.8",
+ "resolved": "https://registry.npmjs.org/swiper/-/swiper-11.2.8.tgz",
+ "integrity": "sha512-S5FVf6zWynPWooi7pJ7lZhSUe2snTzqLuUzbd5h5PHUOhzgvW0bLKBd2wv0ixn6/5o9vwc/IkQT74CRcLJQzeg=="
},
"symbol-tree": {
"version": "3.2.4",
diff --git a/package.json b/package.json
index eb42a0602..ac9e6c128 100644
--- a/package.json
+++ b/package.json
@@ -127,7 +127,7 @@
"resize-observer-polyfill": "1.5.1",
"screenfull": "6.0.2",
"sortablejs": "1.15.6",
- "swiper": "11.2.6",
+ "swiper": "11.2.8",
"usehooks-ts": "3.1.1",
"webcomponents.js": "0.7.24",
"whatwg-fetch": "3.6.20"
From a050b9cccb4d0da2e1978ae0a5eacf3c5eb39100 Mon Sep 17 00:00:00 2001
From: viown <48097677+viown@users.noreply.github.com>
Date: Mon, 2 Jun 2025 14:24:33 +0300
Subject: [PATCH 350/645] Update position ticks when user data updates
---
src/components/cardbuilder/cardBuilder.js | 1 +
1 file changed, 1 insertion(+)
diff --git a/src/components/cardbuilder/cardBuilder.js b/src/components/cardbuilder/cardBuilder.js
index b44b6e104..ce408991f 100644
--- a/src/components/cardbuilder/cardBuilder.js
+++ b/src/components/cardbuilder/cardBuilder.js
@@ -1333,6 +1333,7 @@ function updateUserData(card, userData) {
innerCardFooter.appendChild(itemProgressBar);
}
+ card.setAttribute('data-positionticks', userData.PlaybackPositionTicks);
itemProgressBar.innerHTML = progressHtml;
} else {
itemProgressBar = card.querySelector('.itemProgressBar');
From a938650dedcda0cd296c3f7b74c881f31387973f Mon Sep 17 00:00:00 2001
From: Nathan Kerr
Date: Tue, 6 May 2025 09:50:11 -0700
Subject: [PATCH 351/645] Add support for rendering React components in legacy
views
Add name to Contributors
---
CONTRIBUTORS.md | 1 +
src/utils/reactUtils.tsx | 41 ++++++++++++++++++++++++++++++++++++++++
2 files changed, 42 insertions(+)
create mode 100644 src/utils/reactUtils.tsx
diff --git a/CONTRIBUTORS.md b/CONTRIBUTORS.md
index 48b9b147b..a7b330971 100644
--- a/CONTRIBUTORS.md
+++ b/CONTRIBUTORS.md
@@ -100,6 +100,7 @@
- [StableCrimson](https://github.com/StableCrimson)
- [diegoeche](https://github.com/diegoeche)
- [Free O'Toole](https://github.com/freeotoole)
+- [TheBosZ](https://github.com/thebosz)
## Emby Contributors
diff --git a/src/utils/reactUtils.tsx b/src/utils/reactUtils.tsx
new file mode 100644
index 000000000..097f18540
--- /dev/null
+++ b/src/utils/reactUtils.tsx
@@ -0,0 +1,41 @@
+import { createRoot } from 'react-dom/client';
+import * as React from 'react';
+import { QueryClientProvider } from '@tanstack/react-query';
+import { ApiProvider } from 'hooks/useApi';
+import { UserSettingsProvider } from 'hooks/useUserSettings';
+import { WebConfigProvider } from 'hooks/useWebConfig';
+import { queryClient } from 'utils/query/queryClient';
+import { useUserTheme } from 'hooks/useUserTheme';
+import { ThemeProvider } from '@mui/material/styles';
+import { getTheme } from 'themes/themes';
+
+export const attachReactElement = (Element: (props: object) => React.ReactNode, props: object, element: HTMLElement, replace = false) => {
+ const domNode = document.createElement('div');
+ const root = createRoot(replace ? domNode : element);
+ root.render(
+
+
+
+ );
+
+ if (replace) {
+ element.replaceWith(domNode);
+ }
+};
+
+const RootContext: React.FC = ({ children }) => {
+ const { theme } = useUserTheme();
+ return (
+
+
+
+
+
+ {children}
+
+
+
+
+
+ );
+};
From 9c211382cf26524eb6464a930aed82fd1c6ea065 Mon Sep 17 00:00:00 2001
From: JoaKing
Date: Mon, 2 Jun 2025 16:19:28 -0400
Subject: [PATCH 352/645] Translated using Weblate (Spanish (Latin America))
Translation: Jellyfin/Jellyfin Web Translate-URL:
https://translate.jellyfin.org/projects/jellyfin/jellyfin-web/es_419/
---
src/strings/es_419.json | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/src/strings/es_419.json b/src/strings/es_419.json
index 2cd3f947c..d81cb244f 100644
--- a/src/strings/es_419.json
+++ b/src/strings/es_419.json
@@ -1249,7 +1249,7 @@
"ButtonRename": "Renombrar",
"ButtonRemove": "Remover",
"ButtonRefreshGuideData": "Actualizar datos de la guía",
- "ButtonQuickStartGuide": "Guía de inicio rápido",
+ "ButtonQuickStartGuide": "Guía de instalación",
"ButtonPreviousTrack": "Pista anterior",
"ButtonPause": "Pausar",
"ButtonParentalControl": "Control parental",
From f10f2bdf6eb80adf9d61e4b50a4bc8b401411348 Mon Sep 17 00:00:00 2001
From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com>
Date: Tue, 3 Jun 2025 09:22:29 +0000
Subject: [PATCH 353/645] Bump tar-fs from 2.1.2 to 2.1.3
Bumps [tar-fs](https://github.com/mafintosh/tar-fs) from 2.1.2 to 2.1.3.
- [Commits](https://github.com/mafintosh/tar-fs/commits)
---
updated-dependencies:
- dependency-name: tar-fs
dependency-version: 2.1.3
dependency-type: indirect
...
Signed-off-by: dependabot[bot]
---
package-lock.json | 12 ++++++------
1 file changed, 6 insertions(+), 6 deletions(-)
diff --git a/package-lock.json b/package-lock.json
index 6fa4641b7..b561f67eb 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -23220,9 +23220,9 @@
}
},
"node_modules/tar-fs": {
- "version": "2.1.2",
- "resolved": "https://registry.npmjs.org/tar-fs/-/tar-fs-2.1.2.tgz",
- "integrity": "sha512-EsaAXwxmx8UB7FRKqeozqEPop69DXcmYwTQwXvyAPF352HJsPdkVhvTaDPYqfNgruveJIJy3TA2l+2zj8LJIJA==",
+ "version": "2.1.3",
+ "resolved": "https://registry.npmjs.org/tar-fs/-/tar-fs-2.1.3.tgz",
+ "integrity": "sha512-090nwYJDmlhwFwEW3QQl+vaNnxsO2yVsd45eTKRBzSzu+hlb1w2K9inVq5b0ngXuLVqQ4ApvsUHHnu/zQNkWAg==",
"dev": true,
"license": "MIT",
"optional": true,
@@ -40875,9 +40875,9 @@
}
},
"tar-fs": {
- "version": "2.1.2",
- "resolved": "https://registry.npmjs.org/tar-fs/-/tar-fs-2.1.2.tgz",
- "integrity": "sha512-EsaAXwxmx8UB7FRKqeozqEPop69DXcmYwTQwXvyAPF352HJsPdkVhvTaDPYqfNgruveJIJy3TA2l+2zj8LJIJA==",
+ "version": "2.1.3",
+ "resolved": "https://registry.npmjs.org/tar-fs/-/tar-fs-2.1.3.tgz",
+ "integrity": "sha512-090nwYJDmlhwFwEW3QQl+vaNnxsO2yVsd45eTKRBzSzu+hlb1w2K9inVq5b0ngXuLVqQ4ApvsUHHnu/zQNkWAg==",
"dev": true,
"optional": true,
"peer": true,
From 4c8ae195eb6d95229a63b392092658635602e2bf Mon Sep 17 00:00:00 2001
From: "Troj@"
Date: Tue, 3 Jun 2025 07:03:13 -0400
Subject: [PATCH 354/645] Translated using Weblate (Belarusian) Translation:
Jellyfin/Jellyfin Web Translate-URL:
https://translate.jellyfin.org/projects/jellyfin/jellyfin-web/be/
---
src/strings/be-by.json | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/src/strings/be-by.json b/src/strings/be-by.json
index f0502a13b..aea8cf3af 100644
--- a/src/strings/be-by.json
+++ b/src/strings/be-by.json
@@ -1,7 +1,7 @@
{
"ButtonCancel": "Адмяніць",
"ButtonOk": "ОК",
- "ButtonQuickStartGuide": "Даведнік па пачатку працы",
+ "ButtonQuickStartGuide": "Кіраўніцтва па наладзе",
"ButtonSignOut": "Выйсці",
"HeaderEasyPinCode": "Easy PIN-код",
"HeaderPaths": "Шляхі",
From 6a8c96cc8c98fa396e2593b78e8cd4c230a4b14f Mon Sep 17 00:00:00 2001
From: viown <48097677+viown@users.noreply.github.com>
Date: Tue, 3 Jun 2025 22:04:45 +0300
Subject: [PATCH 355/645] Add backup dashboard pages
---
.../drawer/sections/AdvancedDrawerSection.tsx | 9 +
.../features/backups/api/useBackups.ts | 27 +++
.../features/backups/api/useCreateBackup.ts | 25 +++
.../features/backups/api/useRestoreBackup.ts | 19 ++
.../features/backups/components/Backup.tsx | 68 +++++++
.../backups/components/BackupInfoDialog.tsx | 135 ++++++++++++
.../components/BackupProgressDialog.tsx | 27 +++
.../backups/components/CreateBackupForm.tsx | 123 +++++++++++
.../components/RestoreConfirmationDialog.tsx | 46 +++++
.../components/RestoreProgressDialog.tsx | 32 +++
src/apps/dashboard/routes/_asyncRoutes.ts | 1 +
src/apps/dashboard/routes/backups/index.tsx | 192 ++++++++++++++++++
src/strings/en-us.json | 15 ++
13 files changed, 719 insertions(+)
create mode 100644 src/apps/dashboard/features/backups/api/useBackups.ts
create mode 100644 src/apps/dashboard/features/backups/api/useCreateBackup.ts
create mode 100644 src/apps/dashboard/features/backups/api/useRestoreBackup.ts
create mode 100644 src/apps/dashboard/features/backups/components/Backup.tsx
create mode 100644 src/apps/dashboard/features/backups/components/BackupInfoDialog.tsx
create mode 100644 src/apps/dashboard/features/backups/components/BackupProgressDialog.tsx
create mode 100644 src/apps/dashboard/features/backups/components/CreateBackupForm.tsx
create mode 100644 src/apps/dashboard/features/backups/components/RestoreConfirmationDialog.tsx
create mode 100644 src/apps/dashboard/features/backups/components/RestoreProgressDialog.tsx
create mode 100644 src/apps/dashboard/routes/backups/index.tsx
diff --git a/src/apps/dashboard/components/drawer/sections/AdvancedDrawerSection.tsx b/src/apps/dashboard/components/drawer/sections/AdvancedDrawerSection.tsx
index 97d8f2671..4d5508aba 100644
--- a/src/apps/dashboard/components/drawer/sections/AdvancedDrawerSection.tsx
+++ b/src/apps/dashboard/components/drawer/sections/AdvancedDrawerSection.tsx
@@ -1,4 +1,5 @@
import Article from '@mui/icons-material/Article';
+import Backup from '@mui/icons-material/Backup';
import Lan from '@mui/icons-material/Lan';
import Schedule from '@mui/icons-material/Schedule';
import VpnKey from '@mui/icons-material/VpnKey';
@@ -38,6 +39,14 @@ const AdvancedDrawerSection = () => {
+
+
+
+
+
+
+
+
diff --git a/src/apps/dashboard/features/backups/api/useBackups.ts b/src/apps/dashboard/features/backups/api/useBackups.ts
new file mode 100644
index 000000000..22b45d2ae
--- /dev/null
+++ b/src/apps/dashboard/features/backups/api/useBackups.ts
@@ -0,0 +1,27 @@
+import { Api } from '@jellyfin/sdk';
+import { BackupApi } from '@jellyfin/sdk/lib/generated-client/api/backup-api';
+import { useQuery } from '@tanstack/react-query';
+import type { AxiosRequestConfig } from 'axios';
+import { useApi } from 'hooks/useApi';
+
+export const QUERY_KEY = 'Backups';
+
+const fetchBackups = async (api: Api, options?: AxiosRequestConfig) => {
+ // FIXME: Replace with getBackupApi when available in SDK
+ const backupApi = new BackupApi(api.configuration, undefined, api.axiosInstance);
+
+ const response = await backupApi.listBackups(options);
+
+ return response.data;
+};
+
+export const useBackups = () => {
+ const { api } = useApi();
+
+ return useQuery({
+ queryKey: [ QUERY_KEY ],
+ queryFn: ({ signal }) =>
+ fetchBackups(api!, { signal }),
+ enabled: !!api
+ });
+};
diff --git a/src/apps/dashboard/features/backups/api/useCreateBackup.ts b/src/apps/dashboard/features/backups/api/useCreateBackup.ts
new file mode 100644
index 000000000..19861d096
--- /dev/null
+++ b/src/apps/dashboard/features/backups/api/useCreateBackup.ts
@@ -0,0 +1,25 @@
+import type { BackupOptionsDto } from '@jellyfin/sdk/lib/generated-client/models/backup-options-dto';
+import { BackupApi } from '@jellyfin/sdk/lib/generated-client/api/backup-api';
+import { useMutation } from '@tanstack/react-query';
+import { useApi } from 'hooks/useApi';
+import { QUERY_KEY } from './useBackups';
+import { queryClient } from 'utils/query/queryClient';
+
+export const useCreateBackup = () => {
+ const { api } = useApi();
+ // FIXME: Replace with getBackupApi when available in SDK
+ const backupApi = new BackupApi(api?.configuration, undefined, api?.axiosInstance);
+
+ return useMutation({
+ mutationFn: (backupOptions: BackupOptionsDto) => (
+ backupApi.createBackup({
+ backupOptionsDto: backupOptions
+ })
+ ),
+ onSuccess: () => {
+ void queryClient.invalidateQueries({
+ queryKey: [ QUERY_KEY ]
+ });
+ }
+ });
+};
diff --git a/src/apps/dashboard/features/backups/api/useRestoreBackup.ts b/src/apps/dashboard/features/backups/api/useRestoreBackup.ts
new file mode 100644
index 000000000..0ecafbfb5
--- /dev/null
+++ b/src/apps/dashboard/features/backups/api/useRestoreBackup.ts
@@ -0,0 +1,19 @@
+import { BackupApi } from '@jellyfin/sdk/lib/generated-client/api/backup-api';
+import { useMutation } from '@tanstack/react-query';
+import { useApi } from 'hooks/useApi';
+
+export const useRestoreBackup = () => {
+ const { api } = useApi();
+ // FIXME: Replace with getBackupApi when available in SDK
+ const backupApi = new BackupApi(api?.configuration, undefined, api?.axiosInstance);
+
+ return useMutation({
+ mutationFn: (fileName: string) => (
+ backupApi.startRestoreBackup({
+ backupRestoreRequestDto: {
+ ArchiveFileName: fileName
+ }
+ })
+ )
+ });
+};
diff --git a/src/apps/dashboard/features/backups/components/Backup.tsx b/src/apps/dashboard/features/backups/components/Backup.tsx
new file mode 100644
index 000000000..e7c622d3b
--- /dev/null
+++ b/src/apps/dashboard/features/backups/components/Backup.tsx
@@ -0,0 +1,68 @@
+import React, { FunctionComponent, useCallback, useState } from 'react';
+import type { BackupManifestDto } from '@jellyfin/sdk/lib/generated-client/models/backup-manifest-dto';
+import IconButton from '@mui/material/IconButton';
+import ListItem from '@mui/material/ListItem';
+import Restore from '@mui/icons-material/Restore';
+import ListItemButton from '@mui/material/ListItemButton';
+import ListItemText from '@mui/material/ListItemText';
+import Tooltip from '@mui/material/Tooltip';
+import globalize from 'lib/globalize';
+import BackupInfoDialog from './BackupInfoDialog';
+
+type BackupProps = {
+ backup: BackupManifestDto;
+ onRestore: (backup: BackupManifestDto) => void;
+};
+
+const Backup: FunctionComponent = ({ backup, onRestore }) => {
+ const [ isInfoDialogOpen, setIsInfoDialogOpen ] = useState(false);
+
+ const onDialogClose = useCallback(() => {
+ setIsInfoDialogOpen(false);
+ }, []);
+
+ const openDialog = useCallback(() => {
+ setIsInfoDialogOpen(true);
+ }, []);
+
+ const restore = useCallback(() => {
+ onRestore(backup);
+ }, [ backup, onRestore ]);
+
+ return (
+ <>
+
+
+
+
+
+
+ }
+ >
+
+
+
+
+ >
+ );
+};
+
+export default Backup;
diff --git a/src/apps/dashboard/features/backups/components/BackupInfoDialog.tsx b/src/apps/dashboard/features/backups/components/BackupInfoDialog.tsx
new file mode 100644
index 000000000..d83a768fb
--- /dev/null
+++ b/src/apps/dashboard/features/backups/components/BackupInfoDialog.tsx
@@ -0,0 +1,135 @@
+import type { BackupManifestDto } from '@jellyfin/sdk/lib/generated-client/models/backup-manifest-dto';
+import Typography from '@mui/material/Typography';
+import Button from '@mui/material/Button';
+import Dialog from '@mui/material/Dialog';
+import DialogActions from '@mui/material/DialogActions';
+import DialogContent from '@mui/material/DialogContent';
+import DialogTitle from '@mui/material/DialogTitle';
+import Box from '@mui/material/Box';
+import globalize from 'lib/globalize';
+import React, { FunctionComponent, useCallback } from 'react';
+import Stack from '@mui/material/Stack';
+import FormGroup from '@mui/material/FormGroup';
+import FormControl from '@mui/material/FormControl';
+import FormControlLabel from '@mui/material/FormControlLabel';
+import Checkbox from '@mui/material/Checkbox';
+import ContentCopy from '@mui/icons-material/ContentCopy';
+import IconButton from '@mui/material/IconButton';
+import { copy } from 'scripts/clipboard';
+import toast from 'components/toast/toast';
+
+type IProps = {
+ backup: BackupManifestDto;
+ open: boolean;
+ onClose: () => void;
+};
+
+const BackupInfoDialog: FunctionComponent = ({ backup, open, onClose }: IProps) => {
+ const copyPath = useCallback(async () => {
+ if (backup.Path) {
+ await copy(backup.Path);
+ toast({ text: globalize.translate('Copied') });
+ }
+ }, [ backup.Path ]);
+
+ return (
+
+ );
+};
+
+export default BackupInfoDialog;
diff --git a/src/apps/dashboard/features/backups/components/BackupProgressDialog.tsx b/src/apps/dashboard/features/backups/components/BackupProgressDialog.tsx
new file mode 100644
index 000000000..bcf158d2a
--- /dev/null
+++ b/src/apps/dashboard/features/backups/components/BackupProgressDialog.tsx
@@ -0,0 +1,27 @@
+import React, { FunctionComponent } from 'react';
+import Dialog from '@mui/material/Dialog';
+import DialogContent from '@mui/material/DialogContent';
+import DialogTitle from '@mui/material/DialogTitle';
+import LinearProgress from '@mui/material/LinearProgress';
+import globalize from 'lib/globalize';
+
+type IProps = {
+ open: boolean
+};
+
+const BackupProgressDialog: FunctionComponent = ({ open }) => {
+ return (
+
+ );
+};
+
+export default BackupProgressDialog;
diff --git a/src/apps/dashboard/features/backups/components/CreateBackupForm.tsx b/src/apps/dashboard/features/backups/components/CreateBackupForm.tsx
new file mode 100644
index 000000000..5d62d9e39
--- /dev/null
+++ b/src/apps/dashboard/features/backups/components/CreateBackupForm.tsx
@@ -0,0 +1,123 @@
+import React, { FunctionComponent, useCallback } from 'react';
+import globalize from 'lib/globalize';
+import type { BackupOptionsDto } from '@jellyfin/sdk/lib/generated-client/models/backup-options-dto';
+import Dialog from '@mui/material/Dialog';
+import DialogTitle from '@mui/material/DialogTitle';
+import DialogContent from '@mui/material/DialogContent';
+import Stack from '@mui/material/Stack';
+import DialogActions from '@mui/material/DialogActions';
+import Button from '@mui/material/Button';
+import FormControl from '@mui/material/FormControl';
+import FormControlLabel from '@mui/material/FormControlLabel';
+import Checkbox from '@mui/material/Checkbox';
+import FormGroup from '@mui/material/FormGroup';
+import DialogContentText from '@mui/material/DialogContentText';
+
+type IProps = {
+ open: boolean,
+ onClose?: () => void,
+ onCreate: (backupOptions: BackupOptionsDto) => void
+};
+
+const CreateBackupForm: FunctionComponent = ({ open, onClose, onCreate }) => {
+ const onSubmit = useCallback((e: React.FormEvent) => {
+ e.preventDefault();
+
+ const formData = new FormData(e.currentTarget);
+
+ const data = Object.fromEntries(formData.entries());
+
+ const backupOptions: BackupOptionsDto = {
+ 'Metadata': data.Metadata?.toString() === 'on',
+ 'Trickplay': data.Trickplay?.toString() === 'on',
+ 'Subtitles': data.Subtitles?.toString() === 'on'
+ };
+
+ onCreate(backupOptions);
+ }, [ onCreate ]);
+
+ return (
+
+ );
+};
+
+export default CreateBackupForm;
diff --git a/src/apps/dashboard/features/backups/components/RestoreConfirmationDialog.tsx b/src/apps/dashboard/features/backups/components/RestoreConfirmationDialog.tsx
new file mode 100644
index 000000000..0456e1122
--- /dev/null
+++ b/src/apps/dashboard/features/backups/components/RestoreConfirmationDialog.tsx
@@ -0,0 +1,46 @@
+import Button from '@mui/material/Button';
+import Dialog from '@mui/material/Dialog';
+import DialogActions from '@mui/material/DialogActions';
+import DialogContent from '@mui/material/DialogContent';
+import DialogContentText from '@mui/material/DialogContentText';
+import DialogTitle from '@mui/material/DialogTitle';
+import globalize from 'lib/globalize';
+import React, { FunctionComponent } from 'react';
+
+type IProps = {
+ open: boolean;
+ onClose: () => void;
+ onConfirm: () => void;
+};
+
+const RestoreConfirmationDialog: FunctionComponent = ({ open, onClose, onConfirm }: IProps) => {
+ return (
+
+ );
+};
+
+export default RestoreConfirmationDialog;
diff --git a/src/apps/dashboard/features/backups/components/RestoreProgressDialog.tsx b/src/apps/dashboard/features/backups/components/RestoreProgressDialog.tsx
new file mode 100644
index 000000000..937aaafba
--- /dev/null
+++ b/src/apps/dashboard/features/backups/components/RestoreProgressDialog.tsx
@@ -0,0 +1,32 @@
+import React, { FunctionComponent } from 'react';
+import Dialog from '@mui/material/Dialog';
+import DialogContent from '@mui/material/DialogContent';
+import DialogTitle from '@mui/material/DialogTitle';
+import LinearProgress from '@mui/material/LinearProgress';
+import DialogContentText from '@mui/material/DialogContentText';
+import Stack from '@mui/material/Stack';
+import globalize from 'lib/globalize';
+
+type IProps = {
+ open: boolean
+};
+
+const RestoreProgressDialog: FunctionComponent = ({ open }) => {
+ return (
+
+ );
+};
+
+export default RestoreProgressDialog;
diff --git a/src/apps/dashboard/routes/_asyncRoutes.ts b/src/apps/dashboard/routes/_asyncRoutes.ts
index 2ab21c5d4..10d4fb838 100644
--- a/src/apps/dashboard/routes/_asyncRoutes.ts
+++ b/src/apps/dashboard/routes/_asyncRoutes.ts
@@ -3,6 +3,7 @@ import { AppType } from 'constants/appType';
export const ASYNC_ADMIN_ROUTES: AsyncRoute[] = [
{ path: 'activity', type: AppType.Dashboard },
+ { path: 'backups', type: AppType.Dashboard },
{ path: 'branding', type: AppType.Dashboard },
{ path: 'devices', type: AppType.Dashboard },
{ path: 'settings', type: AppType.Dashboard },
diff --git a/src/apps/dashboard/routes/backups/index.tsx b/src/apps/dashboard/routes/backups/index.tsx
new file mode 100644
index 000000000..6cbf92e27
--- /dev/null
+++ b/src/apps/dashboard/routes/backups/index.tsx
@@ -0,0 +1,192 @@
+import Box from '@mui/material/Box';
+import Button from '@mui/material/Button';
+import Stack from '@mui/material/Stack';
+import Typography from '@mui/material/Typography';
+import AddIcon from '@mui/icons-material/Add';
+import { useBackups } from 'apps/dashboard/features/backups/api/useBackups';
+import Page from 'components/Page';
+import globalize from 'lib/globalize';
+import React, { useCallback, useEffect, useMemo, useState } from 'react';
+import Loading from 'components/loading/LoadingComponent';
+import Alert from '@mui/material/Alert';
+import List from '@mui/material/List';
+import CreateBackupForm from 'apps/dashboard/features/backups/components/CreateBackupForm';
+import type { BackupOptionsDto } from '@jellyfin/sdk/lib/generated-client/models/backup-options-dto';
+import type { BackupManifestDto } from '@jellyfin/sdk/lib/generated-client/models/backup-manifest-dto';
+import { useCreateBackup } from 'apps/dashboard/features/backups/api/useCreateBackup';
+import BackupProgressDialog from 'apps/dashboard/features/backups/components/BackupProgressDialog';
+import Backup from 'apps/dashboard/features/backups/components/Backup';
+import SimpleAlert from 'components/SimpleAlert';
+import RestoreConfirmationDialog from 'apps/dashboard/features/backups/components/RestoreConfirmationDialog';
+import { useRestoreBackup } from 'apps/dashboard/features/backups/api/useRestoreBackup';
+import RestoreProgressDialog from 'apps/dashboard/features/backups/components/RestoreProgressDialog';
+import { useApi } from 'hooks/useApi';
+import { getSystemApi } from '@jellyfin/sdk/lib/utils/api/system-api';
+
+export const Component = () => {
+ const { api } = useApi();
+ const { data: backups, isPending, isError } = useBackups();
+ const [ isCreateFormOpen, setIsCreateFormOpen ] = useState(false);
+ const [ backupInProgress, setBackupInProgress ] = useState(false);
+ const [ restoreInProgress, setRestoreInProgress ] = useState(false);
+ const [ isRestoreSuccess, setIsRestoreSuccess ] = useState(false);
+ const [ isErrorOccurred, setIsErrorOccurred ] = useState(false);
+ const [ isRestoreDialogOpen, setIsRestoreDialogOpen ] = useState(false);
+ const [ backupToRestore, setBackupToRestore ] = useState(null);
+ const createBackup = useCreateBackup();
+ const restoreBackup = useRestoreBackup();
+
+ const onCreateClick = useCallback(() => {
+ setIsCreateFormOpen(true);
+ }, []);
+
+ const onCreateFormClose = useCallback(() => {
+ setIsCreateFormOpen(false);
+ }, []);
+
+ const onRestoreDialogClose = useCallback(() => {
+ setIsRestoreDialogOpen(false);
+ }, []);
+
+ const onErrorAlertClose = useCallback(() => {
+ setIsErrorOccurred(false);
+ }, []);
+
+ const onRestoreSuccessAlertClose = useCallback(() => {
+ setIsRestoreSuccess(false);
+ }, []);
+
+ const onBackupCreate = useCallback((backupOptions: BackupOptionsDto) => {
+ setBackupInProgress(true);
+ setIsCreateFormOpen(false);
+ createBackup.mutate(backupOptions, {
+ onError: () => {
+ setIsErrorOccurred(true);
+ },
+ onSettled: () => {
+ setBackupInProgress(false);
+ }
+ });
+ }, [ createBackup ]);
+
+ const promptRestore = useCallback((backup: BackupManifestDto) => {
+ setIsRestoreDialogOpen(true);
+ setBackupToRestore(backup);
+ }, []);
+
+ const onRestoreConfirm = useCallback(() => {
+ if (backupToRestore?.Path) {
+ restoreBackup.mutate(backupToRestore?.Path, {
+ onSuccess: () => {
+ setRestoreInProgress(true);
+ },
+ onError: () => {
+ setIsErrorOccurred(true);
+ },
+ onSettled: () => {
+ setIsRestoreDialogOpen(false);
+ }
+ });
+ }
+ }, [backupToRestore?.Path, restoreBackup]);
+
+ useEffect(() => {
+ if (restoreInProgress) {
+ const serverCheckInterval = setInterval(() => {
+ void getSystemApi(api!)
+ .getPublicSystemInfo()
+ .then(() => {
+ setRestoreInProgress(false);
+ setIsRestoreSuccess(true);
+ clearInterval(serverCheckInterval);
+ });
+ }, 5000);
+
+ return () => {
+ clearInterval(serverCheckInterval);
+ };
+ }
+ }, [api, restoreInProgress]);
+
+ const sortedBackups = useMemo(() => (
+ backups?.sort((a, b) => {
+ if (a.DateCreated && b.DateCreated) {
+ return new Date(b.DateCreated).getTime() - new Date(a.DateCreated).getTime();
+ } else {
+ return 0;
+ }
+ })
+ ), [ backups ]);
+
+ if (isPending) {
+ return ;
+ }
+
+ return (
+
+
+
+
+
+
+
+
+ {isError ? (
+ {globalize.translate('BackupsPageLoadError')}
+ ) : (
+
+
+ {globalize.translate('TabBackups')}
+
+
+ {globalize.translate('HeaderBackupsHelp')}
+
+
+ }
+ onClick={onCreateClick}
+ >
+ {globalize.translate('ButtonCreateBackup')}
+
+
+
+ {backups.length > 0 && (
+
+ {sortedBackups?.map(backup => {
+ return ;
+ })}
+
+ )}
+
+
+ )}
+
+
+ );
+};
diff --git a/src/strings/en-us.json b/src/strings/en-us.json
index 5402157b2..411e56a72 100644
--- a/src/strings/en-us.json
+++ b/src/strings/en-us.json
@@ -76,6 +76,7 @@
"Backdrop": "Backdrop",
"Backdrops": "Backdrops",
"BackdropScreensaver": "Backdrop Screensaver",
+ "BackupsPageLoadError": "Failed to load backups page",
"Banner": "Banner",
"BirthDateValue": "Born: {0}",
"BirthLocation": "Birth location",
@@ -104,6 +105,7 @@
"ButtonCast": "Cast to Device",
"ButtonChangeServer": "Change Server",
"ButtonClose": "Close",
+ "ButtonCreateBackup": "Create Backup",
"ButtonEditOtherUserPreferences": "Edit this user's profile, image and personal preferences.",
"ButtonEditUser": "Edit user",
"ButtonForgotPassword": "Forgot Password",
@@ -190,6 +192,7 @@
"CopyStreamURLSuccess": "URL copied successfully.",
"CopyLogSuccess": "Log contents copied successfully.",
"CoverArtist": "Cover artist",
+ "Create": "Create",
"Creator": "Creator",
"CriticRating": "Critics rating",
"Cursive": "Cursive",
@@ -388,6 +391,7 @@
"HeaderAudioSettings": "Audio Settings",
"HeaderAutoDiscovery": "Network Discovery",
"HeaderBlockItemsWithNoRating": "Block items with no or unrecognized rating information",
+ "HeaderBackupsHelp": "Create and restore snapshots of your server which can include the database, metadata, subtitles and trickplay.",
"HeaderBranding": "Branding",
"HeaderCancelRecording": "Cancel Recording",
"HeaderCancelSeries": "Cancel Series",
@@ -617,6 +621,7 @@
"LabelAutomaticallyRefreshInternetMetadataEvery": "Automatically refresh metadata from the internet",
"LabelAutomaticDiscovery": "Enable Auto Discovery",
"LabelAutomaticDiscoveryHelp": "Allow applications to automatically detect Jellyfin by using UDP port 7359.",
+ "LabelBackupsUnavailable": "No backups available",
"LabelBaseUrl": "Base URL",
"LabelBaseUrlHelp": "Add a custom subdirectory to the server URL. For example: http://example.com/<baseurl>",
"LabelBackdropScreensaverInterval": "Backdrop Screensaver Interval",
@@ -661,6 +666,7 @@
"LabelCustomTagDelimiters": "Custom Tag Delimiter",
"LabelCustomTagDelimitersHelp": "Characters to be treated as delimiters to separate tags.",
"LabelDashboardTheme": "Server Dashboard theme",
+ "LabelDatabase": "Database",
"LabelDate": "Date",
"LabelDateAdded": "Date added",
"LabelDateAddedBehavior": "Date added behavior for new content",
@@ -881,6 +887,7 @@
"LabelRepositoryUrlHelp": "The location of the repository manifest you want to include.",
"LabelRequireHttps": "Require HTTPS",
"LabelRequireHttpsHelp": "If checked, the server will automatically redirect all requests over HTTP to HTTPS. This has no effect if the server is not listening on HTTPS.",
+ "LabelRestore": "Restore",
"LabelRuntimeMinutes": "Runtime",
"LabelSaveLocalMetadata": "Save artwork into media folders",
"LabelSaveLocalMetadataHelp": "Saving artwork into media folders will put them in a place where they can be easily edited.",
@@ -1109,6 +1116,8 @@
"MessageAddRepository": "If you wish to add a repository, click the button next to the header and fill out the requested information.",
"MessageAreYouSureDeleteSubtitles": "Are you sure you wish to delete this subtitle file?",
"MessageAreYouSureYouWishToRemoveMediaFolder": "Are you sure you wish to remove this media folder?",
+ "MessageBackupDisclaimer": "Depending on the size of your library, the backup process may take a while.",
+ "MessageBackupInProgress": "Backup in progress",
"MessageBrowsePluginCatalog": "Browse our plugin catalog to view available plugins.",
"MessageCancelSeriesTimerError": "An error occurred while canceling the series timer",
"MessageCancelTimerError": "An error occurred while canceling the timer",
@@ -1163,6 +1172,9 @@
"MessageReenableUser": "See below to reenable",
"MessageRenameMediaFolder": "Renaming a media library will cause all metadata to be lost, proceed with caution.",
"MessageRepositoryInstallDisclaimer": "WARNING: Installing a third party plugin repository carries risks. It may contain unstable or malicious code, and may change at any time. Only install repositories from authors that you trust.",
+ "MessageRestoreDisclaimer": "WARNING: You are about to restore from a previous backup. Your server will be rendered unusable for the duration of the process and any new data created since the backup will be lost.",
+ "MessageRestoreInProgress": "Restore in progress",
+ "MessageRestoreSuccess": "Restore successfully completed",
"MessageSent": "Message sent.",
"MessageSplitVersionsError": "An error occurred while splitting versions",
"MessageSyncPlayCreateGroupDenied": "Permission required to create a group.",
@@ -1185,6 +1197,7 @@
"MessageUnableToConnectToServer": "We're unable to connect to the selected server right now. Please ensure it is running and try again.",
"MessageUnauthorizedUser": "You are not authorized to access the server at this time. Please contact your server administrator for more information.",
"MessageUnsetContentHelp": "Content will be displayed as plain folders. For best results use the metadata manager to set the content types of sub-folders.",
+ "MessageWaitingForServer": "Waiting for server...",
"MetadataImagesLoadError": "Failed to load metadata settings",
"MetadataManager": "Metadata Manager",
"MetadataNfoLoadError": "Failed to load metadata NFO settings",
@@ -1565,12 +1578,14 @@
"SubtitleVerticalPositionHelp": "Line number where text appears. Positive numbers indicate top down. Negative numbers indicate bottom up.",
"SubtitleWhite": "White",
"SubtitleYellow": "Yellow",
+ "Success": "Success",
"Suggestions": "Suggestions",
"Sunday": "Sunday",
"SyncPlayAccessHelp": "The SyncPlay feature enables to sync playback with other devices. Select the level of access this user has to the SyncPlay.",
"SyncPlayGroupDefaultTitle": "{0}'s group",
"TabAccess": "Access",
"TabAdvanced": "Advanced",
+ "TabBackups": "Backups",
"TabCatalog": "Catalog",
"TabDashboard": "Dashboard",
"TabLatest": "Recently Added",
From 09063d3376f1008da7acc46b775d092e64f3bdb7 Mon Sep 17 00:00:00 2001
From: Bill Thornton
Date: Tue, 3 Jun 2025 16:28:22 -0400
Subject: [PATCH 356/645] Migrate paths dashboard widget to react and add
storage metrics
---
.../components/widgets/ServerPathWidget.tsx | 67 +++++++++++
src/apps/dashboard/controllers/dashboard.html | 39 +------
src/apps/dashboard/controllers/dashboard.js | 45 ++++----
.../features/storage/api/useSystemStorage.ts | 28 +++++
.../storage/components/StorageListItem.tsx | 105 ++++++++++++++++++
.../storage/components/StorageTypeIcon.tsx | 31 ++++++
.../features/storage/constants/StorageType.ts | 13 +++
src/strings/en-us.json | 9 ++
src/utils/file.test.ts | 22 ++++
src/utils/file.ts | 8 ++
src/utils/reactUtils.tsx | 36 +++---
11 files changed, 322 insertions(+), 81 deletions(-)
create mode 100644 src/apps/dashboard/components/widgets/ServerPathWidget.tsx
create mode 100644 src/apps/dashboard/features/storage/api/useSystemStorage.ts
create mode 100644 src/apps/dashboard/features/storage/components/StorageListItem.tsx
create mode 100644 src/apps/dashboard/features/storage/components/StorageTypeIcon.tsx
create mode 100644 src/apps/dashboard/features/storage/constants/StorageType.ts
create mode 100644 src/utils/file.test.ts
diff --git a/src/apps/dashboard/components/widgets/ServerPathWidget.tsx b/src/apps/dashboard/components/widgets/ServerPathWidget.tsx
new file mode 100644
index 000000000..98fe4be57
--- /dev/null
+++ b/src/apps/dashboard/components/widgets/ServerPathWidget.tsx
@@ -0,0 +1,67 @@
+import ChevronRight from '@mui/icons-material/ChevronRight';
+import Button from '@mui/material/Button';
+import List from '@mui/material/List';
+import Typography from '@mui/material/Typography';
+import React from 'react';
+
+import { useSystemStorage } from 'apps/dashboard/features/storage/api/useSystemStorage';
+import StorageListItem from 'apps/dashboard/features/storage/components/StorageListItem';
+import globalize from 'lib/globalize';
+
+const ServerPathWidget = () => {
+ const { data: systemStorage } = useSystemStorage();
+
+ return (
+ <>
+ }
+ sx={{
+ marginTop: 1,
+ marginBottom: 1
+ }}
+ // NOTE: We should use a react-router Link component, but components rendered in legacy views lack the
+ // routing context
+ href='#/dashboard/settings'
+ >
+
+ {globalize.translate('HeaderPaths')}
+
+
+
+
+
+
+
+
+
+
+
+
+ >
+ );
+};
+
+export default ServerPathWidget;
diff --git a/src/apps/dashboard/controllers/dashboard.html b/src/apps/dashboard/controllers/dashboard.html
index 5c449c5e9..55906b688 100644
--- a/src/apps/dashboard/controllers/dashboard.html
+++ b/src/apps/dashboard/controllers/dashboard.html
@@ -75,44 +75,7 @@
-
+ )}
+
+
+ );
+};
+
+Component.displayName = 'LiveTvRecordingsPage';
diff --git a/src/strings/en-us.json b/src/strings/en-us.json
index 6909988d7..6f8a7339c 100644
--- a/src/strings/en-us.json
+++ b/src/strings/en-us.json
@@ -1052,6 +1052,7 @@
"Live": "Live",
"LiveBroadcasts": "Live broadcasts",
"LiveTV": "Live TV",
+ "LiveTVPageLoadError": "Failed to load recordings page",
"Localization": "Localization",
"LogLevel.Trace": "Trace",
"LogLevel.Debug": "Debug",
From 45a3cb4137641f4a835cf3c9b5d7273663a8b2c9 Mon Sep 17 00:00:00 2001
From: viown <48097677+viown@users.noreply.github.com>
Date: Wed, 11 Jun 2025 01:09:55 +0300
Subject: [PATCH 437/645] Apply review feedback
Co-authored-by: Bill Thornton
---
.../features/plugins/components/NewRepositoryForm.tsx | 6 +++---
src/strings/en-us.json | 2 +-
2 files changed, 4 insertions(+), 4 deletions(-)
diff --git a/src/apps/dashboard/features/plugins/components/NewRepositoryForm.tsx b/src/apps/dashboard/features/plugins/components/NewRepositoryForm.tsx
index 7cc2a6912..122d2c231 100644
--- a/src/apps/dashboard/features/plugins/components/NewRepositoryForm.tsx
+++ b/src/apps/dashboard/features/plugins/components/NewRepositoryForm.tsx
@@ -23,9 +23,9 @@ const NewRepositoryForm = ({ open, onClose, onAdd }: IProps) => {
const data = Object.fromEntries(formData.entries());
const repository: RepositoryInfo = {
- 'Name': data.Name?.toString(),
- 'Url': data.Url?.toString(),
- 'Enabled': true
+ Name: data.Name?.toString(),
+ Url: data.Url?.toString(),
+ Enabled: true
};
onAdd(repository);
diff --git a/src/strings/en-us.json b/src/strings/en-us.json
index d312cc9c0..fa59b572e 100644
--- a/src/strings/en-us.json
+++ b/src/strings/en-us.json
@@ -213,7 +213,7 @@
"DeleteCustomImage": "Delete Custom Image",
"DeleteDeviceConfirmation": "Are you sure you wish to delete this device? It will reappear the next time a user signs in with it.",
"DeleteDevicesConfirmation": "Are you sure you wish to delete all devices? All other sessions will be logged out. Devices will reappear the next time a user signs in.",
- "DeleteRepositoryConfirmation": "Are you sure you'd like to delete this repository?",
+ "DeleteRepositoryConfirmation": "Are you sure you want to delete this repository?",
"DeleteImage": "Delete Image",
"DeleteImageConfirmation": "Are you sure you wish to delete this image?",
"DeleteLyrics": "Delete lyrics",
From 81401ebad68e87b4dce6ed39f00f96550e1bfda6 Mon Sep 17 00:00:00 2001
From: st7105
Date: Tue, 10 Jun 2025 18:39:55 -0400
Subject: [PATCH 438/645] Translated using Weblate (Russian) Translation:
Jellyfin/Jellyfin Web Translate-URL:
https://translate.jellyfin.org/projects/jellyfin/jellyfin-web/ru/
---
src/strings/ru.json | 10 ++++++++--
1 file changed, 8 insertions(+), 2 deletions(-)
diff --git a/src/strings/ru.json b/src/strings/ru.json
index d9a1f2291..5e17aa867 100644
--- a/src/strings/ru.json
+++ b/src/strings/ru.json
@@ -1419,7 +1419,7 @@
"OptionMaxActiveSessions": "Задать максимальное количество одновременных пользовательских сеансов.",
"OptionAllowContentDownload": "Разрешить загрузку медиафайлов",
"LabelMaxMuxingQueueSizeHelp": "Максимальное число пакетов, которое возможно буферизовать при ожидании инициализации всех потоков. Попробуйте увеличить значение, если всё ещё встречается ошибка «Too many packets buffered for output stream» (Слишком много пакетов буферизовано для выходного потока) в журналах FFmpeg. Рекомендуемое значение - 2048.",
- "LabelTonemappingParamHelp": "Подстройка алгоритма тонмаппинга. Значение рекомендуемое и по умолчанию - NaN. Обычно оставляйте это поле пустым.",
+ "LabelTonemappingParamHelp": "Настроить алгоритм наложения тонов. Обычно это значение пустое.",
"LabelTonemappingDesatHelp": "Применить понижение насыщенности для светлых участков, яркость которых превышает этот уровень. Рекомендуемое значение 0 (отключить).",
"LabelTonemappingPeakHelp": "Переопределить пиковую яркость из метаданных этим значением. По умолчанию равно 100 (1000nit).",
"LabelTonemappingThresholdHelp": "Параметры алгоритма тонмаппинга подстраиваются для каждой сцены. А порог используется, чтобы определить, изменилась ли сцена или нет. Если дистанция между средней яркостью текущего кадра и текущим скользящим средним превышает пороговое значение, мы пересчитаем среднюю и пиковую яркость сцены. Значения рекомендуемое и по умолчанию - 0.8 и 0.2.",
@@ -2055,5 +2055,11 @@
"StorageType.Fixed": "Фиксированный",
"StorageType.CDRom": "CD-ROM",
"Success": "Успешно",
- "BackupsPageLoadError": "Не удалось загрузить страницу резервирования"
+ "BackupsPageLoadError": "Не удалось загрузить страницу резервирования",
+ "PluginsLoadError": "При загрузке плагинов произошла ошибка.",
+ "ConfirmDeleteRepository": "Удалить репозиторий?",
+ "DeleteRepositoryConfirmation": "Вы уверены, что хотите удалить это репозиторий?",
+ "RepositoriesPageLoadError": "Не удалось загрузить репозитории",
+ "TranscodingLoadError": "Не удалось загрузить настройки транскодирования",
+ "ButtonLearnMore": "Узнать больше"
}
From d4506dbf0c228096176f274c3137bf50b5015d40 Mon Sep 17 00:00:00 2001
From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com>
Date: Wed, 11 Jun 2025 03:12:10 +0000
Subject: [PATCH 439/645] Update tanstack-query monorepo to v5.80.2
---
package-lock.json | 62 +++++++++++++++++++++++------------------------
package.json | 4 +--
2 files changed, 33 insertions(+), 33 deletions(-)
diff --git a/package-lock.json b/package-lock.json
index 340d95081..8a4047c45 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -24,8 +24,8 @@
"@mui/material": "6.4.12",
"@mui/x-date-pickers": "7.29.4",
"@react-hook/resize-observer": "2.0.2",
- "@tanstack/react-query": "5.75.6",
- "@tanstack/react-query-devtools": "5.75.6",
+ "@tanstack/react-query": "5.80.2",
+ "@tanstack/react-query-devtools": "5.80.2",
"abortcontroller-polyfill": "1.7.8",
"blurhash": "2.0.5",
"classlist.js": "https://github.com/eligrey/classList.js/archive/1.2.20180112.tar.gz",
@@ -5630,9 +5630,9 @@
}
},
"node_modules/@tanstack/query-core": {
- "version": "5.75.6",
- "resolved": "https://registry.npmjs.org/@tanstack/query-core/-/query-core-5.75.6.tgz",
- "integrity": "sha512-r+WQ/z30KZF0TFkzCT7C8gWgrLuv7/t+gEjqeEp69JAIUS/omuieaHeIkoscjEcT6yaWebXGTyjdiIxJkYzEXg==",
+ "version": "5.80.2",
+ "resolved": "https://registry.npmjs.org/@tanstack/query-core/-/query-core-5.80.2.tgz",
+ "integrity": "sha512-g2Es97uwFk7omkWiH9JmtLWSA8lTUFVseIyzqbjqJEEx7qN+Hg6jbBdDvelqtakamppaJtGORQ64hEJ5S6ojSg==",
"license": "MIT",
"funding": {
"type": "github",
@@ -5640,9 +5640,9 @@
}
},
"node_modules/@tanstack/query-devtools": {
- "version": "5.74.7",
- "resolved": "https://registry.npmjs.org/@tanstack/query-devtools/-/query-devtools-5.74.7.tgz",
- "integrity": "sha512-nSNlfuGdnHf4yB0S+BoNYOE1o3oAH093weAYZolIHfS2stulyA/gWfSk/9H4ZFk5mAAHb5vNqAeJOmbdcGPEQw==",
+ "version": "5.80.0",
+ "resolved": "https://registry.npmjs.org/@tanstack/query-devtools/-/query-devtools-5.80.0.tgz",
+ "integrity": "sha512-D6gH4asyjaoXrCOt5vG5Og/YSj0D/TxwNQgtLJIgWbhbWCC/emu2E92EFoVHh4ppVWg1qT2gKHvKyQBEFZhCuA==",
"license": "MIT",
"funding": {
"type": "github",
@@ -5650,12 +5650,12 @@
}
},
"node_modules/@tanstack/react-query": {
- "version": "5.75.6",
- "resolved": "https://registry.npmjs.org/@tanstack/react-query/-/react-query-5.75.6.tgz",
- "integrity": "sha512-0d97uvpeHUNN5eTEsJzYgxLgAEyUM+XaJAWFFAaXH+dQgDN//TTDNbei/YVzN5BUJcWcnQ7YaQDtLLzSe+IvTg==",
+ "version": "5.80.2",
+ "resolved": "https://registry.npmjs.org/@tanstack/react-query/-/react-query-5.80.2.tgz",
+ "integrity": "sha512-LfA0SVheJBOqC8RfJw/JbOW3yh2zuONQeWU5Prjm7yjUGUONeOedky1Bj39Cfj8MRdXrZV+DxNT7/DN/M907lQ==",
"license": "MIT",
"dependencies": {
- "@tanstack/query-core": "5.75.6"
+ "@tanstack/query-core": "5.80.2"
},
"funding": {
"type": "github",
@@ -5666,19 +5666,19 @@
}
},
"node_modules/@tanstack/react-query-devtools": {
- "version": "5.75.6",
- "resolved": "https://registry.npmjs.org/@tanstack/react-query-devtools/-/react-query-devtools-5.75.6.tgz",
- "integrity": "sha512-g8NH6E4F0ggatuu7Zhx3sBkvacsiMd+mrHxezlLLfftwhjRSVP1s6bvXYEAiCOQ+RNAVYFX0X1ujGSUqmcRY4w==",
+ "version": "5.80.2",
+ "resolved": "https://registry.npmjs.org/@tanstack/react-query-devtools/-/react-query-devtools-5.80.2.tgz",
+ "integrity": "sha512-nGeCXBkSoYHKkQQO6pBr+DE8ML/EGd79MvFCkBPRcAA8u65OMNOJPXB0sg2AGgXX2+enTEQLHWZwjzukNB9gIA==",
"license": "MIT",
"dependencies": {
- "@tanstack/query-devtools": "5.74.7"
+ "@tanstack/query-devtools": "5.80.0"
},
"funding": {
"type": "github",
"url": "https://github.com/sponsors/tannerlinsley"
},
"peerDependencies": {
- "@tanstack/react-query": "^5.75.6",
+ "@tanstack/react-query": "^5.80.2",
"react": "^18 || ^19"
}
},
@@ -28439,29 +28439,29 @@
}
},
"@tanstack/query-core": {
- "version": "5.75.6",
- "resolved": "https://registry.npmjs.org/@tanstack/query-core/-/query-core-5.75.6.tgz",
- "integrity": "sha512-r+WQ/z30KZF0TFkzCT7C8gWgrLuv7/t+gEjqeEp69JAIUS/omuieaHeIkoscjEcT6yaWebXGTyjdiIxJkYzEXg=="
+ "version": "5.80.2",
+ "resolved": "https://registry.npmjs.org/@tanstack/query-core/-/query-core-5.80.2.tgz",
+ "integrity": "sha512-g2Es97uwFk7omkWiH9JmtLWSA8lTUFVseIyzqbjqJEEx7qN+Hg6jbBdDvelqtakamppaJtGORQ64hEJ5S6ojSg=="
},
"@tanstack/query-devtools": {
- "version": "5.74.7",
- "resolved": "https://registry.npmjs.org/@tanstack/query-devtools/-/query-devtools-5.74.7.tgz",
- "integrity": "sha512-nSNlfuGdnHf4yB0S+BoNYOE1o3oAH093weAYZolIHfS2stulyA/gWfSk/9H4ZFk5mAAHb5vNqAeJOmbdcGPEQw=="
+ "version": "5.80.0",
+ "resolved": "https://registry.npmjs.org/@tanstack/query-devtools/-/query-devtools-5.80.0.tgz",
+ "integrity": "sha512-D6gH4asyjaoXrCOt5vG5Og/YSj0D/TxwNQgtLJIgWbhbWCC/emu2E92EFoVHh4ppVWg1qT2gKHvKyQBEFZhCuA=="
},
"@tanstack/react-query": {
- "version": "5.75.6",
- "resolved": "https://registry.npmjs.org/@tanstack/react-query/-/react-query-5.75.6.tgz",
- "integrity": "sha512-0d97uvpeHUNN5eTEsJzYgxLgAEyUM+XaJAWFFAaXH+dQgDN//TTDNbei/YVzN5BUJcWcnQ7YaQDtLLzSe+IvTg==",
+ "version": "5.80.2",
+ "resolved": "https://registry.npmjs.org/@tanstack/react-query/-/react-query-5.80.2.tgz",
+ "integrity": "sha512-LfA0SVheJBOqC8RfJw/JbOW3yh2zuONQeWU5Prjm7yjUGUONeOedky1Bj39Cfj8MRdXrZV+DxNT7/DN/M907lQ==",
"requires": {
- "@tanstack/query-core": "5.75.6"
+ "@tanstack/query-core": "5.80.2"
}
},
"@tanstack/react-query-devtools": {
- "version": "5.75.6",
- "resolved": "https://registry.npmjs.org/@tanstack/react-query-devtools/-/react-query-devtools-5.75.6.tgz",
- "integrity": "sha512-g8NH6E4F0ggatuu7Zhx3sBkvacsiMd+mrHxezlLLfftwhjRSVP1s6bvXYEAiCOQ+RNAVYFX0X1ujGSUqmcRY4w==",
+ "version": "5.80.2",
+ "resolved": "https://registry.npmjs.org/@tanstack/react-query-devtools/-/react-query-devtools-5.80.2.tgz",
+ "integrity": "sha512-nGeCXBkSoYHKkQQO6pBr+DE8ML/EGd79MvFCkBPRcAA8u65OMNOJPXB0sg2AGgXX2+enTEQLHWZwjzukNB9gIA==",
"requires": {
- "@tanstack/query-devtools": "5.74.7"
+ "@tanstack/query-devtools": "5.80.0"
}
},
"@tanstack/react-table": {
diff --git a/package.json b/package.json
index 924b267bb..fe249b184 100644
--- a/package.json
+++ b/package.json
@@ -90,8 +90,8 @@
"@mui/material": "6.4.12",
"@mui/x-date-pickers": "7.29.4",
"@react-hook/resize-observer": "2.0.2",
- "@tanstack/react-query": "5.75.6",
- "@tanstack/react-query-devtools": "5.75.6",
+ "@tanstack/react-query": "5.80.2",
+ "@tanstack/react-query-devtools": "5.80.2",
"abortcontroller-polyfill": "1.7.8",
"blurhash": "2.0.5",
"classlist.js": "https://github.com/eligrey/classList.js/archive/1.2.20180112.tar.gz",
From c8cf2302ad9143d7bbb0570dc467ab73323172ee Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Joan=20Montan=C3=A9?=
Date: Wed, 11 Jun 2025 02:24:54 -0400
Subject: [PATCH 440/645] Translated using Weblate (Catalan) Translation:
Jellyfin/Jellyfin Web Translate-URL:
https://translate.jellyfin.org/projects/jellyfin/jellyfin-web/ca/
---
src/strings/ca.json | 44 ++++++++++++++++++++++----------------------
1 file changed, 22 insertions(+), 22 deletions(-)
diff --git a/src/strings/ca.json b/src/strings/ca.json
index 41bc3d044..171095d46 100644
--- a/src/strings/ca.json
+++ b/src/strings/ca.json
@@ -158,7 +158,7 @@
"HeaderOnNow": "Transmetent ara",
"HeaderParentalRatings": "Classificacions parentals",
"HeaderPassword": "Contrasenya",
- "HeaderPasswordReset": "Restablir contrasenya",
+ "HeaderPasswordReset": "Restableix la contrasenya",
"HeaderPaths": "Directoris",
"HeaderPlayAll": "Reprodueix-ho tot",
"HeaderPlaybackError": "Error de reproducció",
@@ -304,8 +304,8 @@
"LabelMovieRecordingPath": "Directori de gravació de pel·lícules",
"LabelName": "Nom",
"LabelNewName": "Nou nom",
- "LabelNewPassword": "Nova contrasenya",
- "LabelNewPasswordConfirm": "Confirma la nova contrasenya",
+ "LabelNewPassword": "Contrasenya nova",
+ "LabelNewPasswordConfirm": "Confirmeu la contrasenya nova",
"LabelNotificationEnabled": "Habilita aquesta notificació",
"LabelNumber": "Nombre",
"LabelNumberOfGuideDays": "Nombre de dies de dades de la guia a descarregar",
@@ -384,7 +384,7 @@
"MessageConfirmProfileDeletion": "N'estàs segur d'eliminar aquest perfil?",
"MessageConfirmRecordingCancellation": "Estàs segur que vols cancel·lar aquest enregistrament?",
"MessageConfirmRestart": "Esteu segur que voleu reiniciar Jellyfin?",
- "MessageContactAdminToResetPassword": "Contacti amb l'administrador per restablir la contrasenya.",
+ "MessageContactAdminToResetPassword": "Contacteu amb l'administrador per a restablir la contrasenya.",
"MessageDownloadQueued": "Descàrrega encuada.",
"MessageEnablingOptionLongerScans": "Habilitar aquesta opció pot resultar en escanejos de la biblioteca significativament més lents.",
"MessageItemSaved": "Ítem desat.",
@@ -474,10 +474,10 @@
"OriginalAirDateValue": "Data original d'emissió: {0}",
"PackageInstallCancelled": "Instal·lació de {0} (versió {1}) cancel·lada.",
"ParentalRating": "Valoració Parental",
- "PasswordMatchError": "La confirmació de la contrasenya i la contrasenya han de coincidir.",
+ "PasswordMatchError": "La contrasenya i la confirmació han de coincidir.",
"PasswordResetComplete": "La contrasenya s'ha restablert.",
- "PasswordResetConfirmation": "Estàs segur que vols restablir la contrasenya?",
- "PasswordSaved": "Contrasenya desada.",
+ "PasswordResetConfirmation": "Esteu segur que voleu restablir la contrasenya?",
+ "PasswordSaved": "S'ha desat la contrasenya.",
"People": "Repartiment i equip",
"Play": "Reprodueix",
"PlayAllFromHere": "Reprodueix-ho tot des d'aquí",
@@ -614,7 +614,7 @@
"BirthDateValue": "Nascut: {0}",
"Banner": "Pancarta",
"Auto": "Auto",
- "AuthProviderHelp": "Selecciona un proveïdor d'autenticació per utilitzar per autenticar la contrasenya d'aquest usuari.",
+ "AuthProviderHelp": "Trieu un proveïdor d'autenticació que s'usarà per a autenticar la contrasenya d'aquest usuari.",
"AskAdminToCreateLibrary": "Demanar a un administrador que creï una biblioteca.",
"Ascending": "Ascendent",
"Art": "Clearart",
@@ -722,7 +722,7 @@
"DisplayMissingEpisodesWithinSeasonsHelp": "Això també s'ha d'activar per a les biblioteques de TV a la configuració del servidor.",
"DisplayInOtherHomeScreenSections": "Mostra a les seccions de la pantalla d'inici, com ara a 'Contingut multimèdia afegit darrerament' i 'Continueu mirant-ho'",
"DisplayInMyMedia": "Mostra a la pantalla inicial",
- "Display": "Mostra",
+ "Display": "Pantalla",
"Disc": "Disc",
"Directors": "Directors",
"Director": "Director",
@@ -754,7 +754,7 @@
"ButtonCast": "Transmetre a dispositiu",
"ApiKeysCaption": "Llista de les claus API activades actualment",
"AllowTonemappingHelp": "El mapeig de tons pot transformar el rang dinàmic d'un vídeo d'HDR a SDR mantenint els detalls i els colors de la imatge, que són informació molt important per representar l'escena original. Actualment només funciona amb vídeos 10 bit HDR10, HLG o DoVi. Això requereix el temps d'execució GPGPU corresponent.",
- "ErrorPleaseSelectLineup": "Seleccioneu una alineació i torneu-ho a provar. Si no hi ha cap formació disponible, comproveu que el vostre nom d’usuari, contrasenya i codi postal siguin correctes.",
+ "ErrorPleaseSelectLineup": "Trieu una alineació i torneu-ho a provar. Si no hi ha cap formació disponible, comproveu que el vostre nom d’usuari, contrasenya i codi postal siguin correctes.",
"ErrorAddingListingsToSchedulesDirect": "S'ha produït un error en afegir la programació al vostre compte de Schedules Direct. Schedules Direct només permet un nombre limitat de programacions per compte. És possible que hagueu d’iniciar sessió al lloc web de Schedules Direct i eliminar altres llistats del vostre compte abans de continuar.",
"EnableThemeVideosHelp": "Reproduir vídeos temàtics en segon pla mentre navegues per la biblioteca.",
"EnableStreamLoopingHelp": "Activeu aquesta opció si les transmissions en directe només contenen uns segons de dades i cal sol·licitar-les contínuament. Habilitar-ho quan no sigui necessari pot causar problemes.",
@@ -967,11 +967,11 @@
"NoSubtitlesHelp": "Els subtítols no seran carregats per defecte. Encara es poden activar de forma manual durant la reproducció.",
"Normal": "Normal",
"NoNewDevicesFound": "No s'han trobat dispositius nous. Per afegir un nou sintonitzador, tanqueu aquest avís i introduïu la informació del dispositiu de forma manual.",
- "NoCreatedLibraries": "Sembla que no s'ha creat cap biblioteca encara. {0} Li agradaria crear una ara? {1}",
+ "NoCreatedLibraries": "Sembla que no s'ha creat cap biblioteca encara. {0} Us agradaria crear-ne una ara? {1}",
"No": "No",
"NextUp": "A continuació",
"NextTrack": "Passar a la següent",
- "Next": "Pròxim",
+ "Next": "Endavant",
"News": "Notícies",
"New": "Nou",
"Never": "Mai",
@@ -1023,7 +1023,7 @@
"MessageImageTypeNotSelected": "Seleccioneu un tipus d'imatge al menú desplegable.",
"MessageImageFileTypeAllowed": "Només els arxius JPEG i PNG són compatibles.",
"MessageGetInstalledPluginsError": "S'ha produït un error a l'hora d'obtenir la llista de complements instal·lats.",
- "MessageForgotPasswordInNetworkRequired": "Torneu a iniciar el procés de restabliment de contrasenya des de dins de la seva xarxa domèstica.",
+ "MessageForgotPasswordInNetworkRequired": "Torneu a iniciar el procés de restabliment de contrasenya des de la vostra xarxa domèstica.",
"MessageForgotPasswordFileCreated": "El següent arxiu s'ha creat en el seu servidor i conté instruccions sobre com procedir",
"MessageFileReadError": "Hi ha hagut un error a llegint l'arxiu. Torni-ho a provar.",
"MessageDirectoryPickerLinuxInstruction": "Per a Linux amb Arch Linux, CentOS, Debian, Fedora, openSUSE, o Ubuntu, ha de concedir a l'usuari del servei com a mínim l'accés de lectura als llocs d'emmagatzematge.",
@@ -1070,7 +1070,7 @@
"LiveBroadcasts": "Emissions en directe",
"ListPaging": "{0} - {1} de {2}",
"List": "Llista",
- "LeaveBlankToNotSetAPassword": "Podeu deixar aquest camp en blanc per establir cap contrasenya.",
+ "LeaveBlankToNotSetAPassword": "Podeu deixar aquest camp en blanc per a no establir cap contrasenya.",
"LearnHowYouCanContribute": "Aprendre com pot contribuir.",
"LastSeen": "Última activitat {0}",
"Large": "Gran",
@@ -1201,7 +1201,7 @@
"LabelPlayerDimensions": "Dimensions del reproductor",
"LabelPlayer": "Reproductor",
"LabelPasswordResetProvider": "Restabliment de la contrasenya de l'proveïdor",
- "LabelPasswordConfirm": "Contrasenya (confirmar)",
+ "LabelPasswordConfirm": "Contrasenya (confirmació)",
"LabelParentNumber": "Nombre de Pares",
"LabelParentalRating": "Classificació parental",
"LabelOptionalNetworkPathHelp": "Si aquesta carpeta es comparteix a la xarxa, el subministrament de la ruta del recurs compartit de xarxa pot permetre als clients accedir directament als fitxers dels continguts multimèdia des d'altres dispositius. Per exemple, {0} o {1}.",
@@ -1315,7 +1315,7 @@
"LabelColorPrimaries": "Colors primaris",
"LabelChromecastVersion": "Versió Google Cast",
"LabelCertificatePasswordHelp": "Si el seu certificat requereix una clau, ingressi-la aquí.",
- "LabelCertificatePassword": "Verificar contrasenya",
+ "LabelCertificatePassword": "Verifica la contrasenya",
"LabelBurnSubtitles": "Gravar subtítols",
"LabelBlockContentWithTags": "Bloquejar elements amb etiquetes",
"LabelBlastMessageIntervalHelp": "Determina la durada en segons entre ràfegues de missatges en directe.",
@@ -1376,7 +1376,7 @@
"Runtime": "Temps d'execució",
"Rewind": "Rebobinar",
"Restart": "Reinicia",
- "ResetPassword": "Restablir la contrasenya",
+ "ResetPassword": "Restableix la contrasenya",
"RepeatOne": "Repetir 1",
"RepeatMode": "Mode de repetició",
"RepeatAll": "Repeteix-ho tot",
@@ -1864,7 +1864,7 @@
"HeaderNoLyrics": "No s'ha trobat cap lletra",
"Lyrics": "Lletres",
"ViewLyrics": "Veure lletres",
- "SavePassword": "Desar contrasenya",
+ "SavePassword": "Desa la contrasenya",
"EnableDts": "Habilitar DTS (DCA)",
"PlaylistError.AddFailed": "S'ha produït un error en agregar a la llista de reproducció",
"PlaylistError.CreateFailed": "S'ha produït un error en crear la llista de reproducció",
@@ -1938,7 +1938,7 @@
"HeaderNewPlaylist": "Llista de reproducció nova",
"AlwaysRemuxFlacAudioFilesHelp": "Si el teu navegador rebutja reproduir certs arxius o calcula les marques de temps de manera imprecisa, activa això com a solució alternativa.",
"AlwaysRemuxMp3AudioFilesHelp": "Si el teu navegador calcula les marques de temps de certs arxius de manera imprecisa, activa això com a solució alternativa.",
- "EnableHi10pHelp": "Activar per evitar transcodificació de vídeos en H.264 10-bits. Desactivar-ho si la reproducció del vídeo mostra fotogrames buits.",
+ "EnableHi10pHelp": "Activar per a evitar transcodificació de vídeos en H.264 10-bits. Desactivar-ho si la reproducció del vídeo mostra fotogrames buits.",
"DateModified": "Data de modificació",
"HeaderAudioAdvanced": "Àudio avançat",
"LabelAllowFmp4TranscodingContainer": "Permet el contenidor de transcodificació fMP4",
@@ -1986,8 +1986,8 @@
"VideoCodecTagNotSupported": "L'etiqueta del còdec de vídeo no és compatible",
"RenderPgsSubtitleHelp": "Determina si el client ha de renderitzar els subtítols PGS en lloc d'usar els subtítols incrustats. Això pot evitar la transcodificació de part del servidor a canvi del rendiment de renderitzat de part del client.",
"FallbackMaxStreamingBitrateHelp": "El bitrate màxim s'usa com a alternativa quan ffprobe no pot determinar el flux de l'origen. Això ajuda a prevenir que els clients sol·licitin un bitrate de transcodificació excessivament alt, el qual provocaria errors en el reproductor o sobrecarregar el codificador.",
- "HeaderNextEpisode": "Pròxim Episodi",
- "HeaderNextVideo": "Pròxim Vídeo",
+ "HeaderNextEpisode": "Pròxim episodi",
+ "HeaderNextVideo": "Pròxim vídeo",
"LabelMediaSegmentProviders": "Proveïdors de segments de continguts multimèdia",
"MediaSegmentProvidersHelp": "Habiliteu i classifiqueu per ordre de prioritat els vostres proveïdors preferits de segments multimèdia.",
"AutoSubtitleStylingHelp": "Aquest mode canviarà automàticament entre els mecanismes d'estils de subtítols natius i personalitzats, basant-se en el teu tipus de dispositiu.",
@@ -2027,7 +2027,7 @@
"HeaderUpdateRequired": "Cal una actualització",
"ViewSettings": "Configuració de visualització",
"DownloadManager": "Descàrregues",
- "MessageForgotPasswordPinReset": "Introdueix el PIN aquí per acabar el Restabliment de contrasenya",
+ "MessageForgotPasswordPinReset": "Introduïu el PIN aquí per a acabar el restabliment de la contrasenya",
"LabelImageCache": "Imatges en el cache",
"MessageBackupDisclaimer": "Depenent de la mida de la biblioteca, la còpia de seguretat pot trigar cert temps.",
"MessageRestoreDisclaimer": "ATENCIÓ: Estàs a punt de restaurar una còpia de seguretat anterior. El seu servidor no serà utilitzable durant el procés i les dades creades des del moment de l'inici de la còpia seran perdudes.",
From d1266034bfd84acb0890ee59eef58243b47219d8 Mon Sep 17 00:00:00 2001
From: Gargotaire
Date: Wed, 11 Jun 2025 02:28:31 -0400
Subject: [PATCH 441/645] Translated using Weblate (Catalan) Translation:
Jellyfin/Jellyfin Web Translate-URL:
https://translate.jellyfin.org/projects/jellyfin/jellyfin-web/ca/
---
src/strings/ca.json | 44 ++++++++++++++++++++++----------------------
1 file changed, 22 insertions(+), 22 deletions(-)
diff --git a/src/strings/ca.json b/src/strings/ca.json
index 171095d46..cdb70442a 100644
--- a/src/strings/ca.json
+++ b/src/strings/ca.json
@@ -14,7 +14,7 @@
"AspectRatio": "Relació d'aspecte",
"Audio": "Àudio",
"MessageBrowsePluginCatalog": "Consulteu el nostre catàleg per veure els complements disponibles.",
- "ButtonAddMediaLibrary": "Afegeix una biblioteca multimèdia",
+ "ButtonAddMediaLibrary": "Afegeix una mediateca",
"ButtonAddScheduledTaskTrigger": "Afegeix un disparador",
"ButtonAddServer": "Afegeix Servidor",
"ButtonAddUser": "Afegeix un usuari",
@@ -26,7 +26,7 @@
"ButtonEditOtherUserPreferences": "Editar el perfil, la imatge i les preferències d'aquest usuari.",
"ButtonForgotPassword": "He oblidat la contrasenya",
"ButtonGotIt": "Entesos",
- "ButtonLibraryAccess": "Accés a la biblioteca",
+ "ButtonLibraryAccess": "Accés a la mediateca",
"ButtonManualLogin": "Inici de sessió manual",
"ButtonMore": "Més",
"ButtonNextTrack": "Pista següent",
@@ -176,7 +176,7 @@
"HeaderSendMessage": "Enviar missatge",
"HeaderSeriesOptions": "Opcions de la sèrie",
"HeaderServerSettings": "Preferències del servidor",
- "HeaderSetupLibrary": "Configureu les vostres biblioteques multimèdia",
+ "HeaderSetupLibrary": "Configureu les vostres mediateques",
"HeaderSortBy": "Ordenar per",
"HeaderSortOrder": "Ordre",
"HeaderStartNow": "Començar ara",
@@ -367,7 +367,7 @@
"LabelYear": "Any",
"LabelYoureDone": "Ja està!",
"LatestFromLibrary": "Novetats a {0}",
- "LibraryAccessHelp": "Seleccioneu les biblioteques que voleu compartir amb aquest usuari. Els administradors podran editar totes les carpetes mitjançant el gestor de metadades.",
+ "LibraryAccessHelp": "Seleccioneu les mediateques que voleu compartir amb aquest usuari. Els administradors podran editar totes les carpetes mitjançant el gestor de metadades.",
"Live": "Directe",
"MarkPlayed": "Marca com a reproduït",
"MarkUnplayed": "Marca com a no reproduït",
@@ -444,7 +444,7 @@
"OptionEmbedSubtitles": "Incrusta dins el contenidor",
"OptionEnableAccessFromAllDevices": "Habilita l'accés des de tots els dispositius",
"OptionEnableAccessToAllChannels": "Habilita l'accés a tots els canals",
- "OptionEnableAccessToAllLibraries": "Habilita l'accés a totes les biblioteques",
+ "OptionEnableAccessToAllLibraries": "Habilita l'accés a totes les mediateques",
"OptionEnableExternalContentInSuggestionsHelp": "Permet incloure tràilers d'internet i programes de TV en directe amb el continguts suggerits.",
"OptionEquals": "Equival",
"OptionEveryday": "Cada dia",
@@ -600,7 +600,7 @@
"ButtonSplit": "Dividir",
"ButtonStart": "Començar",
"ButtonSelectView": "Seleccionar la vista",
- "ButtonScanAllLibraries": "Escanejar totes les biblioteques",
+ "ButtonScanAllLibraries": "Escanejar totes les mediateques",
"ButtonRevoke": "Revoca",
"ButtonRename": "Canviar el nom",
"ButtonNetwork": "Xarxa",
@@ -615,7 +615,7 @@
"Banner": "Pancarta",
"Auto": "Auto",
"AuthProviderHelp": "Trieu un proveïdor d'autenticació que s'usarà per a autenticar la contrasenya d'aquest usuari.",
- "AskAdminToCreateLibrary": "Demanar a un administrador que creï una biblioteca.",
+ "AskAdminToCreateLibrary": "Demana a un administrador que creï una mediateca.",
"Ascending": "Ascendent",
"Art": "Clearart",
"Anytime": "En qualsevol moment",
@@ -627,7 +627,7 @@
"AllowMediaConversionHelp": "Concedeix o denega l’accés a la funció de conversió de contingut multimèdia.",
"AllowMediaConversion": "Permet la conversió de continguts multimèdia",
"AllowHWTranscodingHelp": "Permet al sintonitzador transcodifique els fluxos sobre la marxa.",
- "AllLibraries": "Totes les biblioteques",
+ "AllLibraries": "Totes les mediateques",
"AllLanguages": "Tots els idiomes",
"AllComplexFormats": "Tots els formats complexos (ASS, SSA, VobSub, PGS, SUB / IDX, etc.)",
"Alerts": "Alertes",
@@ -640,7 +640,7 @@
"ClientSettings": "Configuració del client",
"CinemaModeConfigurationHelp": "El mode Cinema aporta l'experiència del teatre directament a la sala d'estar amb la possibilitat de jugar a tràilers i presentacions personalitzades abans de la funció principal.",
"ChannelNameOnly": "Només el canal {0}",
- "ChangingMetadataImageSettingsNewContent": "Els canvis als paràmetres de descàrrega de metadades o imatges només s'apliquen al contingut nou afegit a la biblioteca. Per aplicar els canvis als títols existents, haureu d'actualitzar les metadades manualment.",
+ "ChangingMetadataImageSettingsNewContent": "Els canvis als paràmetres de descàrrega de metadades o imatges només s'apliquen al contingut nou afegit a la mediateca. Per aplicar els canvis als títols existents, haureu d'actualitzar les metadades manualment.",
"ButtonTogglePlaylist": "Llista de reproducció",
"BurnSubtitlesHelp": "Determina si el servidor hauria de gravar els subtítols. Evitant això millorarà molt el rendiment. Selecciona Auto per gravar formats basats en imatges (VobSub, PGS, SUB, IDX) i certs subtítols ASS o SSA.",
"Browse": "Navega",
@@ -664,13 +664,13 @@
"ContinueWatching": "Continueu mirant-ho",
"ConfirmEndPlayerSession": "Vols tancar Jellyfin a {0}?",
"ConfirmDeleteItems": "L'eliminació d'aquests elements els suprimirà del sistema de fitxers i de la biblioteca multimèdia. N'esteu segur que desitgeu continuar?",
- "ConfirmDeleteItem": "L'esborrat d'aquest element l'eliminarà del sistema de fitxers i de la biblioteca multimèdia. Esteu segurs que voleu continuar?",
- "ConfigureDateAdded": "Configureu com es determinen les metadades de la \"Data d'afegit\" al Tauler > Biblioteques > Visualització",
+ "ConfirmDeleteItem": "L'esborrat d'aquest element l'eliminarà del sistema de fitxers i de la mediateca. N'esteu segur que desitgeu continuar?",
+ "ConfigureDateAdded": "Configureu com es determinen les metadades de la \"Data d'afegit\" al Tauler > Mediateques > Visualització",
"CommunityRating": "Ràting comunitari",
"ColorTransfer": "Transferència de color",
"ColorSpace": "Espai de color",
"ColorPrimaries": "Colors primaris",
- "DefaultMetadataLangaugeDescription": "Aquests son els vostres valors per defecte i poden ser personalitzats per a cada biblioteca.",
+ "DefaultMetadataLangaugeDescription": "Aquests son els vostres valors per defecte i poden ser personalitzats per a cada mediateca.",
"Default": "Per defecte",
"DatePlayed": "Data reproduït",
"DateAdded": "Data d'addició",
@@ -713,13 +713,13 @@
"EnableExternalVideoPlayers": "Reproductors de vídeo externs",
"EnableDecodingColorDepth10Vp9": "Activar la descodificació de maquinari de 10 bits per a VP9",
"EnableDecodingColorDepth10Hevc": "Activar la descodificació de maquinari de 10 bits per a HEVC",
- "EnableBackdropsHelp": "Mostra imatges al fons d'algunes pàgines mentre es navega per la biblioteca.",
+ "EnableBackdropsHelp": "Mostra imatges al fons d'algunes pàgines mentre es navega per la mediateca.",
"EnableAutoCast": "Establir com a per defecte",
"EditMetadata": "Edita les metadades",
"EasyPasswordHelp": "El vostre codi Easy PIN s'utilitza per accedir fora de línia als clients compatibles i també es pot utilitzar per iniciar la sessió a la xarxa fàcilment.",
"DrmChannelsNotImported": "Els canals amb DRM no s’importaran.",
"DownloadsValue": "{0} descàrregues",
- "DisplayMissingEpisodesWithinSeasonsHelp": "Això també s'ha d'activar per a les biblioteques de TV a la configuració del servidor.",
+ "DisplayMissingEpisodesWithinSeasonsHelp": "Això també s'ha d'activar per a les mediateques de TV a la configuració del servidor.",
"DisplayInOtherHomeScreenSections": "Mostra a les seccions de la pantalla d'inici, com ara a 'Contingut multimèdia afegit darrerament' i 'Continueu mirant-ho'",
"DisplayInMyMedia": "Mostra a la pantalla inicial",
"Display": "Pantalla",
@@ -1008,7 +1008,7 @@
"MessageReenableUser": "Vegeu més avall per tornar a activar",
"MessagePluginInstallError": "S'ha produït un error durant la instal·lació del complement.",
"MessagePluginInstalled": "El complement s'ha instal·lat correctament. És necessari reiniciar el servidor perquè els canvis tinguin efecte.",
- "MessagePluginInstallDisclaimer": "ADVERTÈNCIA: La instal·lació d'un complement de tercers comporta riscos. Pot contenir codi inestable o maliciós, i pot canviar en qualsevol moment. Instal·leu només complements d'autors en els que confieu, i sigueu conscient dels efectes que poden tenir, incloent consultes a serveis externs, exploracions de biblioteques més llargues o processos addicionals de rerefons.",
+ "MessagePluginInstallDisclaimer": "ADVERTÈNCIA: La instal·lació d'un complement de tercers comporta riscos. Pot contenir codi inestable o maliciós, i pot canviar en qualsevol moment. Instal·leu només complements d'autors en els que confieu, i sigueu conscient dels efectes que poden tenir, incloent consultes a serveis externs, exploracions més llargues de mediateques o processos addicionals de rerefons.",
"MessagePluginConfigurationRequiresLocalAccess": "Connecteu-vos amb el servidor local directament per configurar aquest complement.",
"MessagePleaseWait": "Si us plau, espereu. Això pot trigar un minut.",
"MessagePlayAccessRestricted": "La reproducció d'aquest contingut està restringit actualment. Poseu-vos en contacte amb l'administrador de servidor per obtenir més informació.",
@@ -1410,7 +1410,7 @@
"PreferEmbeddedEpisodeInfosOverFileNamesHelp": "Utilitzar la informació de l'episodi de les metadades incrustades si està disponible.",
"PreferEmbeddedEpisodeInfosOverFileNames": "Prefereixo informació de l'episodi incrustat sobre els noms d'arxiu",
"PosterCard": "Targeta de pòster",
- "Poster": "Pòster",
+ "Poster": "Cartell",
"PleaseSelectTwoItems": "Seleccioneu al menys dos ítems.",
"PleaseEnterNameOrId": "Introdueixi un nom o un ID extern.",
"PleaseConfirmPluginInstallation": "Feu clic a 'D'acord' per confirmar que ha llegit el text de dalt i desitja procedir amb la instal·lació del complement.",
@@ -1468,7 +1468,7 @@
"OptionEnableForAllTuners": "Habilitar per a tots els dispositius sintonitzadors",
"OptionEnableExternalContentInSuggestions": "Habilitar contingut extern en suggeriments",
"OptionDvd": "DVD",
- "OptionDisplayFolderViewHelp": "Mostra els directoris juntament amb les vostres altres biblioteques multimèdia. Això pot ser útil si us agradaria tenir una vista senzilla de directoris.",
+ "OptionDisplayFolderViewHelp": "Mostra els directoris juntament amb les vostres altres mediateques. Això pot ser útil si us agradaria tenir una vista senzilla de directoris.",
"OptionDisplayFolderView": "Mostra una vista de carpeta per a veure directoris multimèdia sense format",
"OptionDateAddedFileTime": "Utilitzar la data de creació de l'arxiu",
"OptionCustomUsers": "Personalitzat",
@@ -1480,7 +1480,7 @@
"OptionAllowVideoPlaybackRemuxing": "Permet la reproducció de vídeo que requereix una conversió sense recodificació",
"OptionAllowSyncTranscoding": "Permet la conversió del contingut multimèdia quan es descarregui i sincronitzi",
"OptionAllowMediaPlaybackTranscodingHelp": "La restricció de l'accés a la transcodificació pot provocar errors de reproducció en els clients a causa dels formats multimèdia incompatibles.",
- "OptionAllowContentDownloadHelp": "Els usuaris poden descarregar el contingut multimèdia i emmagatzemar-lo als seus dispositius. Això no és el mateix que una funció de sincronització. Les biblioteques de llibres ho requereixen per funcionar.",
+ "OptionAllowContentDownloadHelp": "Els usuaris poden descarregar el contingut multimèdia i emmagatzemar-lo als seus dispositius. Això no és el mateix que una funció de sincronització. Les mediateques de llibres ho requereixen per funcionar.",
"OptionAllowContentDownload": "Permet la descàrrega del contingut multimèdia",
"OptionAllowAudioPlaybackTranscoding": "Permet la reproducció d'àudio que requereix la transcodificació",
"Option3D": "3D",
@@ -1797,7 +1797,7 @@
"ChannelResolutionUHD4K": "UHD (4K)",
"LabelTrickplayAccel": "Habilitar descodificació per maquinari",
"NonBlockingScan": "Sense Bloqueig - generació de cues, després retorna",
- "ConfirmDeleteSeries": "Eliminar aquesta sèrie eliminarà TOTS {0} episodis tant del sistema de fitxers com de la biblioteca multimèdia. N'esteu segur que desitgeu continuar?",
+ "ConfirmDeleteSeries": "Eliminar aquesta sèrie eliminarà TOTS {0} episodis tant del sistema de fitxers com de la mediateca. N'esteu segur que desitgeu continuar?",
"LabelEncodingFormatOptions": "Opcions de format de codificació",
"LabelTrickplayAccelHelp": "Assegura't d'habilitar 'Permetre codificació MJPEG' a Transcodificació si el teu maquinari ho suporta.",
"LabelWidthResolutions": "Resolucions d'Amplada",
@@ -1818,8 +1818,8 @@
"PlaybackError.NotAllowed": "La reproducció d'aquest contingut multimèdia no està permesa.",
"Trickplay": "Trickplay",
"PriorityHigh": "Alta",
- "EnableLibrary": "Habilitar la biblioteca",
- "EnableLibraryHelp": "Deshabilitar la biblioteca l'amagarà per a tots els usuaris.",
+ "EnableLibrary": "Habilita la mediateca",
+ "EnableLibraryHelp": "Deshabilitar la mediateca l'amagarà per a tots els usuaris.",
"LimitSupportedVideoResolution": "Limitar la resolució màxima de vídeo suportada",
"LimitSupportedVideoResolutionHelp": "Utilitzar \"La màxima resolució de transcodificació de vídeo permesa\" com a màxima resolució suportada.",
"PlaybackError.FATAL_HLS_ERROR": "S'ha produït un error fatal al stream HLS.",
@@ -1887,7 +1887,7 @@
"LabelSelectPreferredTranscodeVideoAudioCodec": "Còdec d'àudio de transcodificació preferit en la reproducció de vídeo",
"LibraryScanFanoutConcurrencyHelp": "Nombre màxim de tasques paral·leles durant les exploracions de la biblioteca. Si es deixa buit, es triarà un límit basat en el nombre de nuclis del vostre sistema. ADVERTÈNCIA: establir aquest número massa alt pot causar problemes amb els sistemes de fitxers de xarxa; si trobeu problemes, baixeu aquest número.",
"SelectPreferredTranscodeVideoAudioCodecHelp": "Seleccioneu el còdec d'àudio preferit per transcodificar per al contingut de vídeo. Si el còdec preferit no és compatible, el servidor utilitzarà el següent millor còdec disponible.",
- "LibraryScanFanoutConcurrency": "Límit de tasques d'exploració paral·leles per a les biblioteques",
+ "LibraryScanFanoutConcurrency": "Límit de tasques d'exploració paral·leles per a les mediateques",
"Penciller": "Dibuixant",
"Inker": "Tintador",
"Letterer": "Retolador",
From 54571f76dc29ea9600412db595a49f546ce5078a Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Luk=C3=A1=C5=A1=20Kucharczyk?=
Date: Wed, 11 Jun 2025 01:45:06 -0400
Subject: [PATCH 442/645] Translated using Weblate (Czech) Translation:
Jellyfin/Jellyfin Web Translate-URL:
https://translate.jellyfin.org/projects/jellyfin/jellyfin-web/cs/
---
src/strings/cs.json | 10 ++++++++--
1 file changed, 8 insertions(+), 2 deletions(-)
diff --git a/src/strings/cs.json b/src/strings/cs.json
index ccc9e1230..5b4f0bfd2 100644
--- a/src/strings/cs.json
+++ b/src/strings/cs.json
@@ -1374,7 +1374,7 @@
"Bwdif": "Odstranění prokládání \"Bob Weaver\" (BWDIF)",
"UseDoubleRateDeinterlacingHelp": "Toto nastavení při odstranění prokládání zdvojnásobuje snímkovou frekvenci, aby výsledné video vypadalo stejně plynule, jako při přehrávání prokládaného obsahu v televizi.",
"UseDoubleRateDeinterlacing": "Zdvojnásobit snímkovou frekvenci při odstranění prokládání",
- "LabelTonemappingParamHelp": "Pro ladění algoritmu mapování tónů. Doporučená a výchozí hodnota je NaN. Obecně je pole ponecháváno prázdné.",
+ "LabelTonemappingParamHelp": "Pro ladění algoritmu mapování tónů. Obecně je pole ponecháváno prázdné.",
"LabelTonemappingParam": "Parametr mapování tónů",
"LabelTonemappingPeakHelp": "Přepsat hodnotu vstupního signálu v metadatech souboru touto vrcholnou hodnotou. Doporučená hodnota je 100 (1000 nitů).",
"LabelTonemappingPeak": "Vrchol mapování tónů",
@@ -2055,5 +2055,11 @@
"MessageWaitingForServer": "Čekání na odezvu serveru...",
"Success": "Úspěch",
"HeaderBackups": "Zálohy",
- "LabelProgramData": "Programová data"
+ "LabelProgramData": "Programová data",
+ "ConfirmDeleteRepository": "Odstranit repozitář?",
+ "RepositoriesPageLoadError": "Načtení repozitářů se nezdařilo",
+ "PluginsLoadError": "Při načítání zásuvných modulů došlo k chybě.",
+ "ButtonLearnMore": "Více informací",
+ "DeleteRepositoryConfirmation": "Opravdu chcete odstranit tento repozitář?",
+ "TranscodingLoadError": "Načtení nastavení překódování se nezdařilo"
}
From 2edc7d3580e92f30ce26d9b0de18ecd5ebd00ca2 Mon Sep 17 00:00:00 2001
From: Bas <44002186+854562@users.noreply.github.com>
Date: Wed, 11 Jun 2025 02:44:26 -0400
Subject: [PATCH 443/645] Translated using Weblate (Dutch) Translation:
Jellyfin/Jellyfin Web Translate-URL:
https://translate.jellyfin.org/projects/jellyfin/jellyfin-web/nl/
---
src/strings/nl.json | 9 +++++++--
1 file changed, 7 insertions(+), 2 deletions(-)
diff --git a/src/strings/nl.json b/src/strings/nl.json
index 47eedfc07..cb267a810 100644
--- a/src/strings/nl.json
+++ b/src/strings/nl.json
@@ -1392,7 +1392,7 @@
"LabelMaxMuxingQueueSize": "Maximale grootte muxing-wachtrij",
"LabelColorPrimaries": "Primaire kleur",
"MediaInfoColorPrimaries": "Primaire kleuren",
- "LabelTonemappingParamHelp": "Stel het tonemapping-algoritme af. Dit veld is standaard leeg; het wordt aanbevolen dit zo te laten.",
+ "LabelTonemappingParamHelp": "Stel het tonemapping-algoritme af. Normaliter kan dit veld leeg blijven.",
"LabelTonemappingParam": "Tonemapping-parameter",
"LabelTonemappingPeakHelp": "Gebruik deze piekwaarde voor het ingangssignaal in plaats van de waarde in de ingesloten metadata. De standaardwaarde is 100 (1000 nit).",
"LabelTonemappingPeak": "Tonemapping-piek",
@@ -2055,5 +2055,10 @@
"StorageType.Ram": "RAM",
"StorageType.Removable": "Verwisselbaar",
"StorageType.Unknown": "Onbekend",
- "PluginsLoadError": "Er is een fout opgetreden bij het laden van plug-ins."
+ "PluginsLoadError": "Er is een fout opgetreden bij het laden van plug-ins.",
+ "ButtonLearnMore": "Meer informatie",
+ "ConfirmDeleteRepository": "Repository verwijderen?",
+ "DeleteRepositoryConfirmation": "Weet je zeker dat je dit repository wilt verwijderen?",
+ "RepositoriesPageLoadError": "Repository's laden mislukt",
+ "TranscodingLoadError": "Laden van transcodeerinstellingen mislukt"
}
From 3aaba84281192dd876ca4becfe46e4f24399cd11 Mon Sep 17 00:00:00 2001
From: Kityn
Date: Wed, 11 Jun 2025 01:12:41 -0400
Subject: [PATCH 444/645] Translated using Weblate (Polish) Translation:
Jellyfin/Jellyfin Web Translate-URL:
https://translate.jellyfin.org/projects/jellyfin/jellyfin-web/pl/
---
src/strings/pl.json | 10 ++++++++--
1 file changed, 8 insertions(+), 2 deletions(-)
diff --git a/src/strings/pl.json b/src/strings/pl.json
index 9590620f2..2953268d8 100644
--- a/src/strings/pl.json
+++ b/src/strings/pl.json
@@ -1409,7 +1409,7 @@
"LabelTonemappingRange": "Zakres mapowania tonów",
"LabelTonemappingPeakHelp": "Zamiast tego zastąp osadzoną wartość metadanych dla sygnału wejściowego tą wartością szczytową. Wartość domyślna to 100 (1000 nitów).",
"LabelTonemappingPeak": "Szczyt mapowania tonów",
- "LabelTonemappingParamHelp": "Wyreguluj algorytm mapowania tonów. Zalecane i domyślne wartości to NaN. Ogólnie pozostaw to puste.",
+ "LabelTonemappingParamHelp": "Wyreguluj algorytm mapowania tonów. Zazwyczaj pozostaw to puste.",
"LabelTonemappingParam": "Parametry mapowania tonów",
"LabelTonemappingDesatHelp": "Zastosuj desaturację dla rozjaśnień, które przekraczają ten poziom jasności. Zalecana wartość to 0 (wyłącz).",
"LabelTonemappingDesat": "Desaturacja mapowania tonów",
@@ -2055,5 +2055,11 @@
"Success": "Powodzenie",
"HeaderBackupsHelp": "Twórz i przywracaj migawki swojego serwera, które mogą zawierać bazę danych, metadane, napisy i trickplay.",
"LabelImageCache": "Pamięć podręczna obrazów",
- "MessageRestoreDisclaimer": "OSTRZEŻENIE: zamierzasz przywrócić dane z poprzedniej kopii zapasowej. Twój serwer będzie bezużyteczny przez cały czas trwania procesu, a wszelkie nowe dane utworzone od czasu utworzenia kopii zapasowej zostaną utracone."
+ "MessageRestoreDisclaimer": "OSTRZEŻENIE: zamierzasz przywrócić dane z poprzedniej kopii zapasowej. Twój serwer będzie bezużyteczny przez cały czas trwania procesu, a wszelkie nowe dane utworzone od czasu utworzenia kopii zapasowej zostaną utracone.",
+ "ConfirmDeleteRepository": "Usunąć repozytorium?",
+ "RepositoriesPageLoadError": "Nie udało się załadować repozytoriów",
+ "PluginsLoadError": "Wystąpił błąd podczas ładowania wtyczek.",
+ "ButtonLearnMore": "Dowiedz się więcej",
+ "TranscodingLoadError": "Nie udało się załadować ustawień transkodowania",
+ "DeleteRepositoryConfirmation": "Czy na pewno chcesz usunąć to repozytorium?"
}
From fd318139b65879dedce1e79bcd11601113e12efb Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Joan=20Montan=C3=A9?=
Date: Wed, 11 Jun 2025 04:34:16 -0400
Subject: [PATCH 445/645] Translated using Weblate (Catalan) Translation:
Jellyfin/Jellyfin Web Translate-URL:
https://translate.jellyfin.org/projects/jellyfin/jellyfin-web/ca/
---
src/strings/ca.json | 34 +++++++++++++++++-----------------
1 file changed, 17 insertions(+), 17 deletions(-)
diff --git a/src/strings/ca.json b/src/strings/ca.json
index cdb70442a..8a970c31d 100644
--- a/src/strings/ca.json
+++ b/src/strings/ca.json
@@ -37,7 +37,7 @@
"ButtonPreviousTrack": "Pista anterior",
"ButtonQuickStartGuide": "Guia de configuració",
"ButtonRefreshGuideData": "Actualitza les dades de la guia",
- "ButtonRemove": "Eliminar",
+ "ButtonRemove": "Elimina",
"ButtonResetEasyPassword": "Restabliu el codi Easy PIN",
"ButtonResume": "Reprèn",
"ButtonSelectDirectory": "Seleccionar el directori",
@@ -50,7 +50,7 @@
"ButtonTrailer": "Tràiler",
"CancelRecording": "Cancel·la enregistrament",
"CancelSeries": "Cancel·la sèrie",
- "ChannelAccessHelp": "Selecciona els canals a compartir amb aquest usuari. Els administradors podran editar tots els canals emprant el gestor de metadades.",
+ "ChannelAccessHelp": "Trieu els canals a compartir amb aquest usuari. Els administradors podran editar tots els canals emprant el gestor de metadades.",
"Composer": "Compositor",
"ConfirmDeleteImage": "Esborrar imatge?",
"ConfirmDeletion": "Confirma supressió",
@@ -115,7 +115,7 @@
"HeaderCustomDlnaProfiles": "Perfils personalitzats",
"HeaderDateIssued": "Data d'emissió",
"HeaderDefaultRecordingSettings": "Preferències d'enregistrament per defecte",
- "HeaderDeleteDevice": "Eliminar dispositiu",
+ "HeaderDeleteDevice": "Elimina el dispositiu",
"HeaderDeleteItem": "Esborrar l'ítem",
"HeaderDeveloperInfo": "Informació del desenvolupador",
"HeaderDeviceAccess": "Accés al dispositiu",
@@ -367,7 +367,7 @@
"LabelYear": "Any",
"LabelYoureDone": "Ja està!",
"LatestFromLibrary": "Novetats a {0}",
- "LibraryAccessHelp": "Seleccioneu les mediateques que voleu compartir amb aquest usuari. Els administradors podran editar totes les carpetes mitjançant el gestor de metadades.",
+ "LibraryAccessHelp": "Trieu les mediateques que voleu compartir amb aquest usuari. Els administradors podran editar totes les carpetes mitjançant el gestor de metadades.",
"Live": "Directe",
"MarkPlayed": "Marca com a reproduït",
"MarkUnplayed": "Marca com a no reproduït",
@@ -380,7 +380,7 @@
"MediaInfoPixelFormat": "Format de píxel",
"MediaInfoProfile": "Perfil",
"MediaInfoResolution": "Resolució",
- "MessageAreYouSureDeleteSubtitles": "Estàs segur que vols eliminar aquest fitxer de subtítols?",
+ "MessageAreYouSureDeleteSubtitles": "Esteu segur que voleu eliminar aquest fitxer de subtítols?",
"MessageConfirmProfileDeletion": "N'estàs segur d'eliminar aquest perfil?",
"MessageConfirmRecordingCancellation": "Estàs segur que vols cancel·lar aquest enregistrament?",
"MessageConfirmRestart": "Esteu segur que voleu reiniciar Jellyfin?",
@@ -600,7 +600,7 @@
"ButtonSplit": "Dividir",
"ButtonStart": "Començar",
"ButtonSelectView": "Seleccionar la vista",
- "ButtonScanAllLibraries": "Escanejar totes les mediateques",
+ "ButtonScanAllLibraries": "Escaneja totes les mediateques",
"ButtonRevoke": "Revoca",
"ButtonRename": "Canviar el nom",
"ButtonNetwork": "Xarxa",
@@ -664,7 +664,7 @@
"ContinueWatching": "Continueu mirant-ho",
"ConfirmEndPlayerSession": "Vols tancar Jellyfin a {0}?",
"ConfirmDeleteItems": "L'eliminació d'aquests elements els suprimirà del sistema de fitxers i de la biblioteca multimèdia. N'esteu segur que desitgeu continuar?",
- "ConfirmDeleteItem": "L'esborrat d'aquest element l'eliminarà del sistema de fitxers i de la mediateca. N'esteu segur que desitgeu continuar?",
+ "ConfirmDeleteItem": "Eliminar aquest element l'eliminarà del sistema de fitxers i de la mediateca. N'esteu segur, que desitgeu continuar?",
"ConfigureDateAdded": "Configureu com es determinen les metadades de la \"Data d'afegit\" al Tauler > Mediateques > Visualització",
"CommunityRating": "Ràting comunitari",
"ColorTransfer": "Transferència de color",
@@ -731,7 +731,7 @@
"DirectPlaying": "Reproducció directe",
"DetectingDevices": "Detectant dispositius",
"Descending": "Descendent",
- "DeleteUserConfirmation": "Esteu segurs que voleu eliminar aquest usuari?",
+ "DeleteUserConfirmation": "Esteu segur que voleu eliminar aquest usuari?",
"DeleteDeviceConfirmation": "Esteu segurs que voleu suprimir aquest dispositiu? Tornarà a aparèixer la propera vegada que un usuari iniciï la sessió amb ell.",
"Data": "Dades",
"ButtonUseQuickConnect": "Utilitzar Quick Connect",
@@ -755,7 +755,7 @@
"ApiKeysCaption": "Llista de les claus API activades actualment",
"AllowTonemappingHelp": "El mapeig de tons pot transformar el rang dinàmic d'un vídeo d'HDR a SDR mantenint els detalls i els colors de la imatge, que són informació molt important per representar l'escena original. Actualment només funciona amb vídeos 10 bit HDR10, HLG o DoVi. Això requereix el temps d'execució GPGPU corresponent.",
"ErrorPleaseSelectLineup": "Trieu una alineació i torneu-ho a provar. Si no hi ha cap formació disponible, comproveu que el vostre nom d’usuari, contrasenya i codi postal siguin correctes.",
- "ErrorAddingListingsToSchedulesDirect": "S'ha produït un error en afegir la programació al vostre compte de Schedules Direct. Schedules Direct només permet un nombre limitat de programacions per compte. És possible que hagueu d’iniciar sessió al lloc web de Schedules Direct i eliminar altres llistats del vostre compte abans de continuar.",
+ "ErrorAddingListingsToSchedulesDirect": "S'ha produït un error en afegir la programació al vostre compte de Schedules Direct. Schedules Direct només permet un nombre limitat de programacions per compte. És possible que hàgiu d’iniciar sessió al lloc web de Schedules Direct i eliminar altres llistats del vostre compte abans de continuar.",
"EnableThemeVideosHelp": "Reproduir vídeos temàtics en segon pla mentre navegues per la biblioteca.",
"EnableStreamLoopingHelp": "Activeu aquesta opció si les transmissions en directe només contenen uns segons de dades i cal sol·licitar-les contínuament. Habilitar-ho quan no sigui necessari pot causar problemes.",
"EnableFasterAnimationsHelp": "Utilitzeu animacions i transicions més ràpides.",
@@ -1702,7 +1702,7 @@
"HeaderPerformance": "Rendiment",
"LabelDummyChapterCountHelp": "El nombre màxim d'imatges del capítol que s'extreuran per a cada fitxer multimèdia.",
"LabelParallelImageEncodingLimit": "Límit de codificació paral·lela d'imatges",
- "LabelParallelImageEncodingLimitHelp": "Número màxim de codificacions d'imatge que es poden executar en paral·lel. Si es deixa buit, es triarà un límit en funció del número de nuclis.",
+ "LabelParallelImageEncodingLimitHelp": "Nombre màxim de codificacions d'imatge que es poden executar en paral·lel. Si es deixa buit, es triarà un límit en funció del nombre de nuclis.",
"PreferEmbeddedExtrasTitlesOverFileNamesHelp": "Els extres sovint tenen el mateix nom incrustat que el principal, marqueu-ho per utilitzar-los títols incrustats de totes maneres.",
"SaveRecordingNFO": "Desa les metadades EPG d'enregistrament a NFO",
"SaveRecordingImages": "Guarda les imatges d'enregistrament EPG",
@@ -1779,9 +1779,9 @@
"ForeignPartsOnly": "Només parts Forçades/Forànies",
"HeaderGuestCast": "Estrelles Convidades",
"HeaderAllRecordings": "Tots els enregistraments",
- "LabelServerVersion": "Versió del Servidor",
- "LabelWebVersion": "Versió Web",
- "ButtonEditUser": "Editar usuari",
+ "LabelServerVersion": "Versió del servidor",
+ "LabelWebVersion": "Versió web",
+ "ButtonEditUser": "Edita l'usuari",
"ChannelResolutionSD": "SD",
"DeleteName": "Esborrar {0}",
"ChannelResolutionFullHD": "Full HD",
@@ -1915,14 +1915,14 @@
"MediaInfoRotation": "Rotació",
"MoveToBottom": "Moure al final",
"MoveToTop": "Moure al principi",
- "EditLyrics": "Editar lletres",
+ "EditLyrics": "Edita la lletra",
"HeaderAddLyrics": "Afegeix lletres",
"HeaderPreviewLyrics": "Previsualitzar lletres",
"HeaderUploadLyrics": "Pujar lletres",
"LabelIsSynced": "Està sincronitzat",
"NoLyricsSearchResultsFound": "No s'han trobat lletres.",
"SearchForLyrics": "Cercar lletres",
- "LibraryInvalidItemIdError": "La biblioteca està en un estat invàlid, i no es pot editar. És possible que hagis trobat un error: el camí de la base de dades no és un camí correcte al sistema de fitxers.",
+ "LibraryInvalidItemIdError": "La biblioteca està en un estat invàlid, i no es pot editar. És possible que hàgiu trobat un error: el camí de la base de dades no és un camí correcte al sistema de fitxers.",
"LabelTrickplayKeyFrameOnlyExtraction": "Només generar imatges en fotogrames clau",
"LabelTrickplayKeyFrameOnlyExtractionHelp": "Només extreure fotogrames clau per a un processament significativament més ràpid amb una sincronització menys precisa. Si el descodificador de maquinari configurat no admet aquest mode, en el seu lloc s'utilitzarà el descodificador per programari.",
"AllowTonemappingSoftwareHelp": "El mapatge de tons pot transformar el rang dinàmic d'un vídeo d'HDR a SDR mantenint els detalls i els colors de la imatge, que són informació molt important per representar l'escena original. Actualment, només funciona amb vídeos HDR10, HLG i DoVi de 10 bits.",
@@ -1997,7 +1997,7 @@
"Native": "Nadiu",
"NativeSubtitleStylingHelp": "L'estilització de subtítols no funcionarà en alguns dispositius. Tot i això, no suposa cap sobrecàrrega de rendiment.",
"LibraryNameInvalid": "El nom de la biblioteca no pot estar buit.",
- "DeleteServerConfirmation": "De veritat vols eliminar aquest servidor?",
+ "DeleteServerConfirmation": "Esteu segur que voleu eliminar aquest servidor?",
"LabelDevice": "Dispositiu",
"LastActive": "Últim actiu",
"CopyLogSuccess": "Registres copiats satisfactòriament.",
@@ -2014,7 +2014,7 @@
"LabelGroupShowsIntoCollections": "Agrupar sèries en col·leccions",
"LabelGroupShowsIntoCollectionsHelp": "Les sèries que estiguin dins d'una col·lecció es mostraran com un únic element agrupat quan es mostrin les llistes de sèries.",
"CustomSplashScreenSize": "Les imatges personalitzades haurien de ser en 16x9 de ràtio d'aspecte i a una mida mínima de 1920x1080.",
- "DeleteCustomImage": "Eliminar Imatge Personalitzada",
+ "DeleteCustomImage": "Elimina la imatge personalitzada",
"ImageDeleteFailed": "Eliminació de la imatge fallida",
"ImageUploadCancelled": "Pujada d'imatge cancel·lada",
"ImageUploadFailed": "Pujada d'imatge fallida",
From 9ed68413cbe751d4d5faa1d0b89c68521302fefb Mon Sep 17 00:00:00 2001
From: Martin Just
Date: Wed, 11 Jun 2025 05:48:23 -0400
Subject: [PATCH 446/645] Translated using Weblate (German) Translation:
Jellyfin/Jellyfin Web Translate-URL:
https://translate.jellyfin.org/projects/jellyfin/jellyfin-web/de/
---
src/strings/de.json | 10 ++++++++--
1 file changed, 8 insertions(+), 2 deletions(-)
diff --git a/src/strings/de.json b/src/strings/de.json
index 3f1192672..9d04dcfb4 100644
--- a/src/strings/de.json
+++ b/src/strings/de.json
@@ -1385,7 +1385,7 @@
"KnownProxiesHelp": "Kommagetrennte Liste von IP-Adressen oder Hostnamen bekannter Proxys, die bei der Verbindung mit dieser Jellyfin-Instanz verwendet werden. Dies ist erforderlich, um die X-Forwarded-For-Header korrekt verwenden zu können. Erfordert nach dem Speichern einen Neustart.",
"LabelMaxMuxingQueueSizeHelp": "Maximale Anzahl von Paketen, die gepuffert werden können, während auf die Initialisierung aller Streams gewartet wird. Versuche diese zu erhöhen, wenn in den FFmpeg-Protokollen der Fehler \"Zu viele Pakete für den Ausgabestrom gepuffert\" auftaucht. Der empfohlene Wert ist 2048.",
"LabelMaxMuxingQueueSize": "Maximale Größe der Muxing-Warteschlange",
- "LabelTonemappingParamHelp": "Feinabstimmung des Tone-Mapping-Algorithmus. Die empfohlenen und Standardwerte sind NaN. Im Allgemeinen leer lassen.",
+ "LabelTonemappingParamHelp": "Feinabstimmung des Tone-Mapping-Algorithmus. Im Allgemeinen leer lassen.",
"LabelTonemappingParam": "Tone-Mapping-Parameter",
"LabelTonemappingPeakHelp": "Überschreibt den Maximalwert des Input Signals der eingebetteten Metadaten mit diesem Wert. Der Standardwert ist 100 (1000nit).",
"LabelTonemappingPeak": "Tone-Mapping-Spitze",
@@ -2055,5 +2055,11 @@
"StorageType.Network": "Netzwerk",
"StorageType.Ram": "Arbeitsspeicher",
"StorageType.Removable": "Wechselmedium",
- "StorageType.Unknown": "Unbekannt"
+ "StorageType.Unknown": "Unbekannt",
+ "RepositoriesPageLoadError": "Repositories konnten nicht geladen werden",
+ "PluginsLoadError": "Beim Laden der Plugins ist ein Fehler aufgetreten.",
+ "ButtonLearnMore": "Mehr erfahren",
+ "TranscodingLoadError": "Transcodierungseinstellungen konnten nicht geladen werden",
+ "ConfirmDeleteRepository": "Repository löschen?",
+ "DeleteRepositoryConfirmation": "Sind Sie sicher, dass Sie dieses Repository löschen wollen?"
}
From a954af4628fb03ec3dae5bf9a949b16fc025df65 Mon Sep 17 00:00:00 2001
From: stanol
Date: Wed, 11 Jun 2025 05:42:44 -0400
Subject: [PATCH 447/645] Translated using Weblate (Ukrainian) Translation:
Jellyfin/Jellyfin Web Translate-URL:
https://translate.jellyfin.org/projects/jellyfin/jellyfin-web/uk/
---
src/strings/uk.json | 10 ++++++++--
1 file changed, 8 insertions(+), 2 deletions(-)
diff --git a/src/strings/uk.json b/src/strings/uk.json
index a7a8be5c7..30be018d8 100644
--- a/src/strings/uk.json
+++ b/src/strings/uk.json
@@ -960,7 +960,7 @@
"LabelTonemappingRange": "Діапазон тонального відображення",
"LabelTonemappingPeakHelp": "Замініть вбудоване значення метаданих для вхідного сигналу на це пікове значення. Значення за замовчуванням - 100 (1000 ніт).",
"LabelTonemappingPeak": "Пік тонального відображення",
- "LabelTonemappingParamHelp": "Налаштуйте алгоритм тонального відображення. Рекомендоване значення та значення за замовчуванням - NaN. Зазвичай залиште його порожнім.",
+ "LabelTonemappingParamHelp": "Налаштуйте алгоритм тонального відображення. Зазвичай залиште його порожнім.",
"LabelTonemappingParam": "Параметр тонального відображення",
"LabelTonemappingDesat": "Зменшення насиченості тонального відображення",
"LabelTonemappingAlgorithm": "Оберіть алгоритм тонального відображення, який потрібно використовувати",
@@ -2052,5 +2052,11 @@
"StorageType.Removable": "Знімне",
"StorageType.Unknown": "Невідоме",
"Success": "Успіх",
- "HeaderBackups": "Резервні копії"
+ "HeaderBackups": "Резервні копії",
+ "ConfirmDeleteRepository": "Видалити репозиторій?",
+ "DeleteRepositoryConfirmation": "Ви впевнені, що хочете видалити цей репозиторій?",
+ "PluginsLoadError": "Виникла помилка під час завантаження плагінів.",
+ "RepositoriesPageLoadError": "Не вдалося завантажити репозиторії",
+ "TranscodingLoadError": "Не вдалося завантажити налаштування перекодування",
+ "ButtonLearnMore": "Дізнатися більше"
}
From f0fcae35f535697057d552c70deadcaab5f1747b Mon Sep 17 00:00:00 2001
From: myrad2267
Date: Wed, 11 Jun 2025 06:25:42 -0400
Subject: [PATCH 448/645] Translated using Weblate (French (Canada))
Translation: Jellyfin/Jellyfin Web Translate-URL:
https://translate.jellyfin.org/projects/jellyfin/jellyfin-web/fr_CA/
---
src/strings/fr-ca.json | 9 +++++++--
1 file changed, 7 insertions(+), 2 deletions(-)
diff --git a/src/strings/fr-ca.json b/src/strings/fr-ca.json
index 64d97aa0e..0b4dadf24 100644
--- a/src/strings/fr-ca.json
+++ b/src/strings/fr-ca.json
@@ -1053,7 +1053,7 @@
"LabelProtocolInfoHelp": "La valeur utilisée pour répondre aux requêtes « GetProtocolInfo » de l’appareil.",
"Bold": "Gras",
"LabelTonemappingDesatHelp": "Appliquer la désaturation pour les hautes lumières qui dépassent ce niveau de luminosité. La valeur recommandée est 0 (désactivé).",
- "LabelTonemappingParamHelp": "Paramètre pour régler l’algorithme de tone-mapping. La valeur par défaut et recommandée est vide.",
+ "LabelTonemappingParamHelp": "Paramètre pour régler l’algorithme de tone-mapping. Recommandée de laisser vide.",
"LabelSyncPlayLeaveGroupDescription": "Désactiver SyncPlay",
"LabelSyncPlayNewGroup": "Nouveau groupe",
"LabelPostProcessorArgumentsHelp": "Utilisez {path} comme le chemin d’accès au fichier d’enregistrement.",
@@ -2000,5 +2000,10 @@
"Success": "Succès",
"HeaderBackups": "Sauvegardes",
"MessageBackupDisclaimer": "Selon la taille de votre médiathèque, le processus de sauvegarde peut prendre un certain temps.",
- "PluginsLoadError": "Une erreur s'est produite lors du chargement des plugins."
+ "PluginsLoadError": "Une erreur s'est produite lors du chargement des plugins.",
+ "DeleteRepositoryConfirmation": "Êtes-vous sûr de vouloir supprimer ce dépôt ?",
+ "ButtonLearnMore": "En apprendre plus",
+ "TranscodingLoadError": "Échec du chargement des paramètres de transcodage",
+ "ConfirmDeleteRepository": "Supprimer le dépôt ?",
+ "RepositoriesPageLoadError": "Échec du chargement des dépôts"
}
From 2748001ba47617ec77a8572408145f32ceee31c3 Mon Sep 17 00:00:00 2001
From: myrad2267
Date: Wed, 11 Jun 2025 06:29:02 -0400
Subject: [PATCH 449/645] Translated using Weblate (French) Translation:
Jellyfin/Jellyfin Web Translate-URL:
https://translate.jellyfin.org/projects/jellyfin/jellyfin-web/fr/
---
src/strings/fr.json | 9 +++++++--
1 file changed, 7 insertions(+), 2 deletions(-)
diff --git a/src/strings/fr.json b/src/strings/fr.json
index dd50e5b45..b8c5a62ba 100644
--- a/src/strings/fr.json
+++ b/src/strings/fr.json
@@ -1398,7 +1398,7 @@
"KnownProxiesHelp": "Liste séparée par des virgules des adresses IP ou noms des relais connus pour se connecter à ce serveur Jellyfin. Cette liste est nécessaire au bon fontionnement des en-têtes 'X-Forwarded-For'. Un redémarrage sera requis après sauvegarde.",
"LabelTonemappingThreshold": "Seuil de mappage tonal",
"LabelTonemappingDesatHelp": "Désaturer les couleurs qui dépassent ce niveau de luminosité. La valeur recommandée est 0 (désactivé).",
- "LabelTonemappingParamHelp": "Régler l'algorithme de mappage tonal. Sauf cas particulier, il est recommandé de laisser ce champ vide.",
+ "LabelTonemappingParamHelp": "Paramètre pour régler l’algorithme de tone-mapping. Recommandée de laisser vide.",
"LabelTonemappingPeak": "Pic de mappage tonal",
"LabelTonemappingThresholdHelp": "Les paramètres de l'algorithme de mappage tonal sont affinés pour chaque scène. Définir ici le seuil utilisé pour détecter un changement de scène. Si la distance entre la moyenne actuelle de la luminosité du cadre et la moyenne mobile actuelle dépasse la valeur de ce seuil, la moyenne et le pic de la luminosité du cadre sont recalculés. La valeur recommandée est 0,8 ; la valeur par défaut est 0,2.",
"LabelVideoRange": "Plage vidéo",
@@ -2056,5 +2056,10 @@
"Success": "Succès",
"MessageBackupDisclaimer": "Selon la taille de votre médiathèque, le processus de sauvegarde peut prendre un certain temps.",
"MessageRestoreDisclaimer": "AVERTISSEMENT : Vous êtes sur le point de restaurer une sauvegarde précédente. Votre serveur sera inutilisable pendant toute la durée du processus et toutes les nouvelles données créées depuis la sauvegarde seront perdues.",
- "PluginsLoadError": "Une erreur s'est produite lors du chargement des plugins."
+ "PluginsLoadError": "Une erreur s'est produite lors du chargement des plugins.",
+ "ButtonLearnMore": "En apprendre plus",
+ "TranscodingLoadError": "Échec du chargement des paramètres de transcodage",
+ "ConfirmDeleteRepository": "Supprimer le dépôt ?",
+ "DeleteRepositoryConfirmation": "Êtes-vous sûr de vouloir supprimer ce dépôt ?",
+ "RepositoriesPageLoadError": "Échec du chargement des dépôts"
}
From 92b7794136cb194ab622b7acd7420fe781091356 Mon Sep 17 00:00:00 2001
From: Battseren Badral
Date: Wed, 11 Jun 2025 07:41:22 -0400
Subject: [PATCH 450/645] Translated using Weblate (Mongolian) Translation:
Jellyfin/Jellyfin Web Translate-URL:
https://translate.jellyfin.org/projects/jellyfin/jellyfin-web/mn/
---
src/strings/mn.json | 14 +++++++++++---
1 file changed, 11 insertions(+), 3 deletions(-)
diff --git a/src/strings/mn.json b/src/strings/mn.json
index 2972aec05..28fc85aff 100644
--- a/src/strings/mn.json
+++ b/src/strings/mn.json
@@ -3,10 +3,10 @@
"Songs": "Дуунууд",
"Playlists": "Тоглуулах жагсаалт",
"Movies": "Кино",
- "Genres": "Төрөл зүйл",
+ "Genres": "Төрлүүд",
"Favorites": "Дуртай",
"Collections": "Багц",
- "Artists": "Зураачуд",
+ "Artists": "Уран бүтээлчид",
"ButtonCancel": "Цуцлах",
"Artist": "Жүжигчин",
"Album": "Цомог",
@@ -100,5 +100,13 @@
"AccessRestrictedTryAgainLater": "Одоогоор хандалт хязгаарлагдмал байна. Дараа дахин оролдож үзнэ үү.",
"Actor": "Жүжигчин",
"Add": "Нэмэх",
- "AddedOnValue": "Нэмсэн"
+ "AddedOnValue": "Нэмсэн",
+ "Shows": "Нэвтрүүлгүүд",
+ "Photos": "Зургууд",
+ "MusicVideos": "Дууны клип",
+ "Folders": "Хавтаснууд",
+ "Channels": "Сувгууд",
+ "HeaderAlbumArtists": "Цомгийн уран бүтээлчид",
+ "ValueSpecialEpisodeName": "Тусгай - {0}",
+ "Default": "Өгөгдмөл"
}
From 6b89afe3cc5be40e61b8f52a691b4063f041ae9c Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Joan=20Montan=C3=A9?=
Date: Wed, 11 Jun 2025 08:21:15 -0400
Subject: [PATCH 451/645] Translated using Weblate (Catalan) Translation:
Jellyfin/Jellyfin Web Translate-URL:
https://translate.jellyfin.org/projects/jellyfin/jellyfin-web/ca/
---
src/strings/ca.json | 16 ++++++++++------
1 file changed, 10 insertions(+), 6 deletions(-)
diff --git a/src/strings/ca.json b/src/strings/ca.json
index 8a970c31d..9a7127457 100644
--- a/src/strings/ca.json
+++ b/src/strings/ca.json
@@ -640,7 +640,7 @@
"ClientSettings": "Configuració del client",
"CinemaModeConfigurationHelp": "El mode Cinema aporta l'experiència del teatre directament a la sala d'estar amb la possibilitat de jugar a tràilers i presentacions personalitzades abans de la funció principal.",
"ChannelNameOnly": "Només el canal {0}",
- "ChangingMetadataImageSettingsNewContent": "Els canvis als paràmetres de descàrrega de metadades o imatges només s'apliquen al contingut nou afegit a la mediateca. Per aplicar els canvis als títols existents, haureu d'actualitzar les metadades manualment.",
+ "ChangingMetadataImageSettingsNewContent": "Els canvis als paràmetres de descàrrega de metadades o imatges només s'apliquen al contingut nou afegit a la mediateca. Per a aplicar els canvis als títols existents, haureu d'actualitzar les metadades manualment.",
"ButtonTogglePlaylist": "Llista de reproducció",
"BurnSubtitlesHelp": "Determina si el servidor hauria de gravar els subtítols. Evitant això millorarà molt el rendiment. Selecciona Auto per gravar formats basats en imatges (VobSub, PGS, SUB, IDX) i certs subtítols ASS o SSA.",
"Browse": "Navega",
@@ -670,7 +670,7 @@
"ColorTransfer": "Transferència de color",
"ColorSpace": "Espai de color",
"ColorPrimaries": "Colors primaris",
- "DefaultMetadataLangaugeDescription": "Aquests son els vostres valors per defecte i poden ser personalitzats per a cada mediateca.",
+ "DefaultMetadataLangaugeDescription": "Aquests són els vostres valors per defecte i poden ser personalitzats per a cada mediateca.",
"Default": "Per defecte",
"DatePlayed": "Data reproduït",
"DateAdded": "Data d'addició",
@@ -701,7 +701,7 @@
"ErrorAddingTunerDevice": "S'ha produït un error en afegir el dispositiu sintonitzador. Assegureu-vos que sigui accessible i torneu-ho a provar.",
"ErrorAddingMediaPathToVirtualFolder": "S'ha produït un error en afegir la ruta multimèdia. Assegureu-vos que la ruta sigui vàlida i que Jellyfin tingui accés a aquesta ubicació.",
"Episode": "Episodi",
- "EnableThemeSongsHelp": "Reprodueix sintonies en segon pla mentre navegues per la biblioteca.",
+ "EnableThemeSongsHelp": "Reprodueix sintonies en segon pla mentre navegueu per la biblioteca.",
"EnableStreamLooping": "Bucle automàtic en emisions en directe",
"EnableQuickConnect": "Activar Quick Connect en aquest servidor",
"EnablePhotosHelp": "Les imatges es detectaran i es mostraran al costat d'altres fitxers multimèdia.",
@@ -756,7 +756,7 @@
"AllowTonemappingHelp": "El mapeig de tons pot transformar el rang dinàmic d'un vídeo d'HDR a SDR mantenint els detalls i els colors de la imatge, que són informació molt important per representar l'escena original. Actualment només funciona amb vídeos 10 bit HDR10, HLG o DoVi. Això requereix el temps d'execució GPGPU corresponent.",
"ErrorPleaseSelectLineup": "Trieu una alineació i torneu-ho a provar. Si no hi ha cap formació disponible, comproveu que el vostre nom d’usuari, contrasenya i codi postal siguin correctes.",
"ErrorAddingListingsToSchedulesDirect": "S'ha produït un error en afegir la programació al vostre compte de Schedules Direct. Schedules Direct només permet un nombre limitat de programacions per compte. És possible que hàgiu d’iniciar sessió al lloc web de Schedules Direct i eliminar altres llistats del vostre compte abans de continuar.",
- "EnableThemeVideosHelp": "Reproduir vídeos temàtics en segon pla mentre navegues per la biblioteca.",
+ "EnableThemeVideosHelp": "Reprodueix vídeos temàtics en segon pla mentre navegueu per la biblioteca.",
"EnableStreamLoopingHelp": "Activeu aquesta opció si les transmissions en directe només contenen uns segons de dades i cal sol·licitar-les contínuament. Habilitar-ho quan no sigui necessari pot causar problemes.",
"EnableFasterAnimationsHelp": "Utilitzeu animacions i transicions més ràpides.",
"EnableFasterAnimations": "Animacions més ràpides",
@@ -1113,7 +1113,7 @@
"LabelTonemappingRange": "Gamma de mapa de tons",
"LabelTonemappingPeakHelp": "Anul·la el valor de metadades incrustat pel senyal d'entrada amb aquest valor com a pic. El valor per defecte és 100 (1000 nits).",
"LabelTonemappingPeak": "Pic del mapa de tons",
- "LabelTonemappingParamHelp": "Afinar el algoritme d'assignació de to. Els valors recomanats i per defecte són NaN. Generalment deixar-la en blanc.",
+ "LabelTonemappingParamHelp": "Ajusta l'algoritme d'assignació de to. Generalment, deixeu-ho en blanc.",
"LabelTonemappingParam": "Paràmetres de mapa de tons",
"LabelTonemappingDesatHelp": "Aplicar dessaturació de punts destacats que superen aquest nivell de brillantor. El valor recomanat és 0 (desactivar).",
"LabelTonemappingDesat": "Mapa de tons desat",
@@ -2053,5 +2053,9 @@
"StorageType.Removable": "Retirable",
"StorageType.Unknown": "Desconegut",
"PluginsLoadError": "S'ha produït un error en carregar els complements.",
- "ButtonLearnMore": "En voleu saber més?"
+ "ButtonLearnMore": "En voleu saber més?",
+ "RepositoriesPageLoadError": "No s'han pogut carregar els repositoris",
+ "TranscodingLoadError": "No s'han pogut carregar els paràmetres de transcodificació",
+ "ConfirmDeleteRepository": "Voleu esborrar el repositori?",
+ "DeleteRepositoryConfirmation": "Esteu segur de voler esborrar aquest repositori?"
}
From afc914b162982e354c11a74446635cd989c91b8c Mon Sep 17 00:00:00 2001
From: yoga sree jagadam
Date: Wed, 11 Jun 2025 09:43:00 -0400
Subject: [PATCH 452/645] Translated using Weblate (Telugu) Translation:
Jellyfin/Jellyfin Web Translate-URL:
https://translate.jellyfin.org/projects/jellyfin/jellyfin-web/te/
---
src/strings/te.json | 7 ++++---
1 file changed, 4 insertions(+), 3 deletions(-)
diff --git a/src/strings/te.json b/src/strings/te.json
index bff96499c..ee89bc7dd 100644
--- a/src/strings/te.json
+++ b/src/strings/te.json
@@ -163,7 +163,7 @@
"Subtitles": "ఉపశీర్షికలు",
"SubtitleOffset": "ఉపశీర్షిక ఆఫ్సెట్",
"SubtitleDownloadersHelp": "ప్రాధాన్యత క్రమంలో మీకు ఇష్టమైన ఉపశీర్షిక డౌన్లోడ్లను ప్రారంభించండి మరియు ర్యాంక్ చేయండి.",
- "SubtitleAppearanceSettingsDisclaimer": "ఈ సెట్టింగులు గ్రాఫికల్ ఉపశీర్షికలకు (పిజిఎస్, డివిడి, మొదలైనవి) లేదా వారి స్వంత శైలులను పొందుపరిచే ASS / SSA ఉపశీర్షికలకు వర్తించవు.",
+ "SubtitleAppearanceSettingsDisclaimer": "పైన పేర్కొన్న గ్రాఫికల్ ఉపశీర్షికలుకు లేదా వాటి స్వంత శైలులను ఎస్యాస్/యాస్యాస్ఎ ఉపశీర్షికలుకు కింది సెట్టింగ్లు వర్తించవు.",
"ShowTitle": "శీర్షిక చూపించు",
"Shows": "ప్రదర్శనలు",
"ShowMore": "ఇంకా చూపించు",
@@ -505,7 +505,7 @@
"LabelYear": "సంవత్సరం",
"LabelXDlnaDocHelp": "X_DLNADOC మూలకం యొక్క కంటెంట్ను urn: schemas-dlna-org: device-1-0 నేమ్స్పేస్లో నిర్ణయిస్తుంది.",
"LabelXDlnaDoc": "X-DLNA పత్రం",
- "SubtitleAppearanceSettingsAlsoPassedToCastDevices": "ఈ పరికరం ప్రారంభించిన ఏదైనా Chromecast ప్లేబ్యాక్కు కూడా ఈ సెట్టింగ్లు వర్తిస్తాయి.",
+ "SubtitleAppearanceSettingsAlsoPassedToCastDevices": "ఈ పరికరం ద్వారా ప్రారంభించబడిన ఏదైనా గూగుల్ కాస్ట్ ప్లేబ్యాక్కు కూడా ఈ సెట్టింగ్లు వర్తిస్తాయి.",
"Subtitle": "ఉపశీర్షిక",
"Studios": "స్టూడియోస్",
"StopRecording": "రికార్డింగ్ ఆపు",
@@ -2006,5 +2006,6 @@
"TypeOptionPluralMusicAlbum": "సంగీత ఆల్బమ్లు",
"LabelTrackGain": "ట్రాక్ లాభం",
"AllowEmbeddedSubtitlesAllowNoneOption": "ఎవరినీ అనుమతించవద్దు",
- "PluginLoadRepoError": "రిపోజిటరీ నుండి ప్లగిన్ వివరాలను పొందుతున్నప్పుడు లోపం సంభవించింది."
+ "PluginLoadRepoError": "రిపోజిటరీ నుండి ప్లగిన్ వివరాలను పొందుతున్నప్పుడు లోపం సంభవించింది.",
+ "StorageType.Unknown": "తెలియదు"
}
From c05178c6e2f0cf871d24185549824492d42f4f7b Mon Sep 17 00:00:00 2001
From: Battseren Badral
Date: Wed, 11 Jun 2025 08:14:01 -0400
Subject: [PATCH 453/645] Translated using Weblate (Mongolian) Translation:
Jellyfin/Jellyfin Web Translate-URL:
https://translate.jellyfin.org/projects/jellyfin/jellyfin-web/mn/
---
src/strings/mn.json | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
diff --git a/src/strings/mn.json b/src/strings/mn.json
index 28fc85aff..d0a63d892 100644
--- a/src/strings/mn.json
+++ b/src/strings/mn.json
@@ -108,5 +108,6 @@
"Channels": "Сувгууд",
"HeaderAlbumArtists": "Цомгийн уран бүтээлчид",
"ValueSpecialEpisodeName": "Тусгай - {0}",
- "Default": "Өгөгдмөл"
+ "Default": "Өгөгдмөл",
+ "AddToCollection": "Цуглуулгад нэмэх"
}
From af0094691b793cc0587594b0edbfbabdfe4ba779 Mon Sep 17 00:00:00 2001
From: Gargotaire
Date: Wed, 11 Jun 2025 13:00:45 -0400
Subject: [PATCH 454/645] Translated using Weblate (Catalan) Translation:
Jellyfin/Jellyfin Web Translate-URL:
https://translate.jellyfin.org/projects/jellyfin/jellyfin-web/ca/
---
src/strings/ca.json | 20 ++++++++++----------
1 file changed, 10 insertions(+), 10 deletions(-)
diff --git a/src/strings/ca.json b/src/strings/ca.json
index 9a7127457..971fe438d 100644
--- a/src/strings/ca.json
+++ b/src/strings/ca.json
@@ -142,11 +142,11 @@
"HeaderLatestMovies": "Pel·lícules afegides darrerament",
"HeaderLatestMusic": "Música afegida darrerament",
"HeaderLatestRecordings": "Enregistraments afegits darrerament",
- "HeaderLibraries": "Llibreries",
- "HeaderLibraryAccess": "Accés a la biblioteca",
- "HeaderLibraryFolders": "Directoris de la biblioteca",
- "HeaderLibraryOrder": "Ordre de la biblioteca",
- "HeaderLibrarySettings": "Configuració de la biblioteca",
+ "HeaderLibraries": "Mediateques",
+ "HeaderLibraryAccess": "Accés a la mediateca",
+ "HeaderLibraryFolders": "Directoris de la mediateca",
+ "HeaderLibraryOrder": "Ordre de la mediateca",
+ "HeaderLibrarySettings": "Configuració de la mediateca",
"HeaderMediaFolders": "Carpetes multimèdia",
"HeaderMetadataSettings": "Preferències de les metadades",
"HeaderMyDevice": "El meu dispositiu",
@@ -663,7 +663,7 @@
"CopyStreamURL": "Copia l'URL de reproducció",
"ContinueWatching": "Continueu mirant-ho",
"ConfirmEndPlayerSession": "Vols tancar Jellyfin a {0}?",
- "ConfirmDeleteItems": "L'eliminació d'aquests elements els suprimirà del sistema de fitxers i de la biblioteca multimèdia. N'esteu segur que desitgeu continuar?",
+ "ConfirmDeleteItems": "L'eliminació d'aquests elements els suprimirà del sistema de fitxers i de la mediateca. N'esteu segur que desitgeu continuar?",
"ConfirmDeleteItem": "Eliminar aquest element l'eliminarà del sistema de fitxers i de la mediateca. N'esteu segur, que desitgeu continuar?",
"ConfigureDateAdded": "Configureu com es determinen les metadades de la \"Data d'afegit\" al Tauler > Mediateques > Visualització",
"CommunityRating": "Ràting comunitari",
@@ -701,7 +701,7 @@
"ErrorAddingTunerDevice": "S'ha produït un error en afegir el dispositiu sintonitzador. Assegureu-vos que sigui accessible i torneu-ho a provar.",
"ErrorAddingMediaPathToVirtualFolder": "S'ha produït un error en afegir la ruta multimèdia. Assegureu-vos que la ruta sigui vàlida i que Jellyfin tingui accés a aquesta ubicació.",
"Episode": "Episodi",
- "EnableThemeSongsHelp": "Reprodueix sintonies en segon pla mentre navegueu per la biblioteca.",
+ "EnableThemeSongsHelp": "Reprodueix sintonies en segon pla mentre es navega per la mediateca.",
"EnableStreamLooping": "Bucle automàtic en emisions en directe",
"EnableQuickConnect": "Activar Quick Connect en aquest servidor",
"EnablePhotosHelp": "Les imatges es detectaran i es mostraran al costat d'altres fitxers multimèdia.",
@@ -756,7 +756,7 @@
"AllowTonemappingHelp": "El mapeig de tons pot transformar el rang dinàmic d'un vídeo d'HDR a SDR mantenint els detalls i els colors de la imatge, que són informació molt important per representar l'escena original. Actualment només funciona amb vídeos 10 bit HDR10, HLG o DoVi. Això requereix el temps d'execució GPGPU corresponent.",
"ErrorPleaseSelectLineup": "Trieu una alineació i torneu-ho a provar. Si no hi ha cap formació disponible, comproveu que el vostre nom d’usuari, contrasenya i codi postal siguin correctes.",
"ErrorAddingListingsToSchedulesDirect": "S'ha produït un error en afegir la programació al vostre compte de Schedules Direct. Schedules Direct només permet un nombre limitat de programacions per compte. És possible que hàgiu d’iniciar sessió al lloc web de Schedules Direct i eliminar altres llistats del vostre compte abans de continuar.",
- "EnableThemeVideosHelp": "Reprodueix vídeos temàtics en segon pla mentre navegueu per la biblioteca.",
+ "EnableThemeVideosHelp": "Reprodueix vídeos temàtics en segon pla mentre es navega per la mediateca.",
"EnableStreamLoopingHelp": "Activeu aquesta opció si les transmissions en directe només contenen uns segons de dades i cal sol·licitar-les contínuament. Habilitar-ho quan no sigui necessari pot causar problemes.",
"EnableFasterAnimationsHelp": "Utilitzeu animacions i transicions més ràpides.",
"EnableFasterAnimations": "Animacions més ràpides",
@@ -1526,7 +1526,7 @@
"HeaderMedia": "Contingut multimèdia",
"HeaderLoginFailure": "Error en l'inici de sessió",
"HeaderLiveTvTunerSetup": "Configuració del sintonitzador de TV",
- "HeaderKodiMetadataHelp": "Per activar o desactivar les metadades NFO, editeu una biblioteca i busqueu la secció d'Estalviadors de metadades.",
+ "HeaderKodiMetadataHelp": "Per activar o desactivar les metadades NFO, editeu una mediateca i busqueu la secció d'Estalviadors de metadades.",
"HeaderImageOptions": "Opcions de la imatge",
"HeaderIdentifyItemHelp": "Introduïu un o més criteris de cerca. Elimineu criteris per augmentar els resultats de cerca.",
"HeaderHttpsSettings": "Configuració de HTTPS",
@@ -1857,7 +1857,7 @@
"ExtractTrickplayImagesHelp": "Les imatges de Trickplay són similars a les imatges de capítols, excepte que abasten tota la longitud del contingut i s'utilitzen per mostrar una vista prèvia quan es desplaça pels vídeos.",
"LabelTrickplayAccelEncodingHelp": "En aquests moments només està disponible en QSV, VAAPI, VideoToolbox i RKMPP, aquesta opció no afecta els altres mètodes d'acceleració per maquinari.",
"LabelTrickplayAccelEncoding": "Habilitar codificació MJPEG accelerada per maquinari",
- "ConfirmDeleteLyrics": "L'esborrat d'aquestes lletres, les suprimirà tant del sistema de fitxers com de la vostra biblioteca multimèdia. Esteu segur que voleu continuar?",
+ "ConfirmDeleteLyrics": "L'esborrat d'aquestes lletres, les suprimirà tant del sistema de fitxers com de la vostra mediateca. N'esteu segur que desitgeu continuar?",
"ErrorDeletingLyrics": "S'ha produït un error en suprimir les lletres del servidor. Si us plau, comproveu que Jellyfin tingui accés d'escriptura a la carpeta multimèdia i torneu-ho a provar.",
"HeaderDeleteLyrics": "Esborrar Lletres",
"DeleteLyrics": "Esborrar lletres",
From 0b1a976d42839be01eb00660c8c3ef80a491e1bd Mon Sep 17 00:00:00 2001
From: Gargotaire
Date: Wed, 11 Jun 2025 14:29:57 -0400
Subject: [PATCH 455/645] Translated using Weblate (Catalan) Translation:
Jellyfin/Jellyfin Web Translate-URL:
https://translate.jellyfin.org/projects/jellyfin/jellyfin-web/ca/
---
src/strings/ca.json | 52 ++++++++++++++++++++++-----------------------
1 file changed, 26 insertions(+), 26 deletions(-)
diff --git a/src/strings/ca.json b/src/strings/ca.json
index 971fe438d..e9b32d616 100644
--- a/src/strings/ca.json
+++ b/src/strings/ca.json
@@ -255,7 +255,7 @@
"LabelEpisodeNumber": "Episodi",
"LabelEvent": "Esdeveniment",
"LabelEveryXMinutes": "Cada",
- "LabelExtractChaptersDuringLibraryScan": "Extrau imatges dels episodis durant l'escaneig de la biblioteca",
+ "LabelExtractChaptersDuringLibraryScan": "Extreu imatges dels episodis durant l'escaneig de la mediateca",
"LabelFailed": "Fallit",
"LabelFinish": "Finalitzar",
"LabelFriendlyName": "Nom amistós",
@@ -386,7 +386,7 @@
"MessageConfirmRestart": "Esteu segur que voleu reiniciar Jellyfin?",
"MessageContactAdminToResetPassword": "Contacteu amb l'administrador per a restablir la contrasenya.",
"MessageDownloadQueued": "Descàrrega encuada.",
- "MessageEnablingOptionLongerScans": "Habilitar aquesta opció pot resultar en escanejos de la biblioteca significativament més lents.",
+ "MessageEnablingOptionLongerScans": "Habilitar aquesta opció pot resultar en escanejos significativament més lents de la mediateca.",
"MessageItemSaved": "Ítem desat.",
"MessageItemsAdded": "Ítems afegits.",
"MessageNoAvailablePlugins": "No hi ha complements disponibles.",
@@ -524,7 +524,7 @@
"Share": "Comparteix",
"ShowIndicatorsFor": "Mostra indicadors per a",
"Shuffle": "Aleatori",
- "SkipEpisodesAlreadyInMyLibrary": "No enregistris episodis que ja estan a la meva biblioteca",
+ "SkipEpisodesAlreadyInMyLibrary": "No enregistris episodis que ja són a la mediateca",
"SkipEpisodesAlreadyInMyLibraryHelp": "Els episodis es compararan emprant la temporada i el nombre d'episodi quan siguin disponibles.",
"SortName": "Nom per endreçar",
"Studios": "Estudis",
@@ -576,7 +576,7 @@
"Watched": "Vist",
"Wednesday": "Dimecres",
"WelcomeToProject": "Et donem la benvinguda a Jellyfin!",
- "WizardCompleted": "Això és tot el que necessitem per ara. Jellyfin ha començat a recollir informació de la vostra biblioteca multimèdia. Mireu-vos alguna de les nostres apps i llavors feu clic a Finalitzar per veure el Tauler de control.",
+ "WizardCompleted": "Això és tot el que necessitem per ara. Jellyfin ha començat a recollir informació de la vostra mediateca. Mireu-vos alguna de les nostres apps i llavors feu clic a Finalitzar per veure el Tauler de control.",
"Writer": "Escriptor",
"XmlTvKidsCategoriesHelp": "Els programes amb aquestes categories es mostraran com a programes infantils. Separa'n varis emprant '|'.",
"XmlTvMovieCategoriesHelp": "Els programes amb aquestes categories es mostraran com a pel·lícules. Separa'n varis emprant '|'.",
@@ -944,8 +944,8 @@
"SimultaneousConnectionLimitHelp": "El nombre màxim de transmissions simultànies permeses. Establiu 0 per a cap límit.",
"ShowYear": "Mostrar l'any",
"ShowTitle": "Mostrar el títol",
- "ShowMore": "Mostra més",
- "ShowLess": "Mostrar menys",
+ "ShowMore": "Mostra'n més",
+ "ShowLess": "Mostra menys",
"ShowAdvancedSettings": "Mostra la configuració avançada",
"SettingsWarning": "El canvi d'aquests valors pot causar errors d'inestabilitat o de connectivitat. Si teniu algun problema, es recomana canviar-les per defecte.",
"ServerRestartNeededAfterPluginInstall": "Jellyfin haurà de ser reiniciat després d'instal·lar el complement.",
@@ -960,14 +960,14 @@
"SearchResults": "Resultats de la cerca",
"Screenshot": "Captura",
"Schedule": "Programar",
- "ScanLibrary": "biblioteca d'escaneig",
+ "ScanLibrary": "Escaneja la mediateca",
"ScanForNewAndUpdatedFiles": "Cerca fitxers nous i actualitzats",
"SaveSubtitlesIntoMediaFoldersHelp": "L'emmagatzematge de subtítols al costat dels arxius de vídeo que els permetrà ser manejats amb més facilitat.",
"SaveSubtitlesIntoMediaFolders": "Desa els subtítols en els directoris de continguts multimèdia",
"NoSubtitlesHelp": "Els subtítols no seran carregats per defecte. Encara es poden activar de forma manual durant la reproducció.",
"Normal": "Normal",
"NoNewDevicesFound": "No s'han trobat dispositius nous. Per afegir un nou sintonitzador, tanqueu aquest avís i introduïu la informació del dispositiu de forma manual.",
- "NoCreatedLibraries": "Sembla que no s'ha creat cap biblioteca encara. {0} Us agradaria crear-ne una ara? {1}",
+ "NoCreatedLibraries": "Sembla que encara no s'ha creat cap mediateca. {0} Us agradaria crear-ne una ara? {1}",
"No": "No",
"NextUp": "A continuació",
"NextTrack": "Passar a la següent",
@@ -987,7 +987,7 @@
"Metadata": "Metadades",
"MessageUnsetContentHelp": "El contingut es mostrarà com carpetes de civil. Per obtenir els millors resultats utilitzar el gestor de metadades per establir els tipus de contingut de les subcarpetes.",
"MessageUnableToConnectToServer": "No es pot connectar amb el servidor seleccionat en aquest moment. Assegureu-vos que està funcionant i torni a intentar-ho.",
- "MessageTheFollowingLocationWillBeRemovedFromLibrary": "S'eliminaran les següents ubicacions de la biblioteca multimèdia",
+ "MessageTheFollowingLocationWillBeRemovedFromLibrary": "Les ubicacions següents s'eliminaran de la mediateca",
"MessageSyncPlayUserLeft": "{0} ha deixat el grup.",
"MessageSyncPlayUserJoined": "{0} s'ha unit al grup.",
"MessageSyncPlayPlaybackPermissionRequired": "Permís de reproducció requerit.",
@@ -1064,7 +1064,7 @@
"MediaInfoAnamorphic": "Anamòrfic",
"MapChannels": "Mapa de canals",
"ManageRecording": "Maneig de gravació",
- "ManageLibrary": "Maneig de la biblioteca",
+ "ManageLibrary": "Gestió de la mediateca",
"Logo": "Logo",
"LiveTV": "TV en directe",
"LiveBroadcasts": "Emissions en directe",
@@ -1234,8 +1234,8 @@
"LabelLocalHttpServerPortNumberHelp": "El número de port TCP per al servidor HTTP.",
"LabelLocalCustomCss": "Estil CSS personalitzat que s'aplica només a aquest client. És possible que vulgueu desactivar el servidor de CSS personalitzat.",
"LabelLineup": "Els titulars",
- "LabelLibraryPageSizeHelp": "Estableix la quantitat d'elements a mostrar en una pàgina de la biblioteca. Es posa a 0 per tal de desactivar la paginació.",
- "LabelLibraryPageSize": "Mida de pàgina de la biblioteca",
+ "LabelLibraryPageSizeHelp": "Estableix la quantitat d'elements a mostrar en una pàgina de la mediateca. Es posa a 0 per tal de desactivar la paginació.",
+ "LabelLibraryPageSize": "Mida de pàgina de la mediateca",
"LabelLanNetworks": "Xarxes LAN",
"LabelKodiMetadataUserHelp": "Guarda les dades de visionat en arxius NFO de manera que altres aplicacions les puguin utilitzar.",
"LabelKodiMetadataUser": "Guardar les dades de visualització d'usuari en arxius NFO per a",
@@ -1267,7 +1267,7 @@
"LabelFolder": "Carpeta",
"LabelFileOrUrl": "Arxiu o URL",
"LabelffmpegPath": "FFmpeg ruta",
- "LabelExtractChaptersDuringLibraryScanHelp": "Generar imatges de capítols quan els vídeos s'importen durant l'exploració de la biblioteca. En cas contrari, seran extrets durant les imatges capítol tasca programada, el que permet l'exploració de la biblioteca regular per completar més ràpid.",
+ "LabelExtractChaptersDuringLibraryScanHelp": "Genera imatges de capítols quan els vídeos són importats durant l'escaneig de la mediateca. Desmarcant, les imatges es descarregaran quan s'executi la tasca programada, permetent un escaneig més ràpid de la mediateca.",
"LabelEncoderPreset": "Codificació preestablert",
"LabelEnableSSDPTracing": "Habilitar rastreig SSDP",
"LabelEnableSingleImageInDidlLimitHelp": "Alguns dispositius no es mostri correctament si diverses imatges estan integrats dins de DIDL.",
@@ -1382,7 +1382,7 @@
"RepeatAll": "Repeteix-ho tot",
"RefreshDialogHelp": "Les metadades s'actualitzen segons la configuració i serveis d'internet habilitats al Tauler de control.",
"Recordings": "Enregistraments",
- "RecommendationStarring": "Protagonitzada {0}",
+ "RecommendationStarring": "Protagonitzada per {0}",
"RecommendationDirectedBy": "Dirigida per {0}",
"RecommendationBecauseYouLike": "Perquè t'agrada {0}",
"Rate": "Rati",
@@ -1414,7 +1414,7 @@
"PleaseSelectTwoItems": "Seleccioneu al menys dos ítems.",
"PleaseEnterNameOrId": "Introdueixi un nom o un ID extern.",
"PleaseConfirmPluginInstallation": "Feu clic a 'D'acord' per confirmar que ha llegit el text de dalt i desitja procedir amb la instal·lació del complement.",
- "PleaseAddAtLeastOneFolder": "Afegiu al menys una carpeta a aquesta biblioteca fent clic al botó '+'.",
+ "PleaseAddAtLeastOneFolder": "Afegiu-hi almenys un directori fent clic al botó '+'.",
"PlayNextEpisodeAutomatically": "Jugar el proper episodi de forma automàtica",
"PlayNext": "Reproduir el següent",
"PlayCount": "Contador de reproduccions",
@@ -1474,7 +1474,7 @@
"OptionCustomUsers": "Personalitzat",
"OptionCaptionInfoExSamsung": "CaptionInfoEx (Samsung)",
"OptionBluray": "BD",
- "OptionAutomaticallyGroupSeriesHelp": "Sèrie que es distribueixen en diverses carpetes dins d'aquesta biblioteca es combinarà automàticament en una sola sèrie.",
+ "OptionAutomaticallyGroupSeriesHelp": "Les sèries que es distribueixen entre diversos directoris d'aquesta mediateca es combinaran automàticament en una única sèrie.",
"OptionAutomaticallyGroupSeries": "Automàticament sèrie que es distribueixen en diverses carpetes",
"OptionAllowVideoPlaybackTranscoding": "Permet la reproducció de vídeo que requereix la transcodificació",
"OptionAllowVideoPlaybackRemuxing": "Permet la reproducció de vídeo que requereix una conversió sense recodificació",
@@ -1608,7 +1608,7 @@
"AllowEmbeddedSubtitlesAllowImageOption": "Permetre imatge",
"AllowEmbeddedSubtitlesAllowNoneOption": "No permetre cap",
"AllowEmbeddedSubtitlesAllowAllOption": "Permet-ho tot",
- "AllowEmbeddedSubtitlesHelp": "Desactiveu els subtítols empaquetats dins dels contenidors multimèdia. Requereix una actualització completa de la biblioteca.",
+ "AllowEmbeddedSubtitlesHelp": "Desactiva els subtítols empaquetats dins dels contenidors multimèdia. Requereix una actualització completa de la mediateca.",
"AllowEmbeddedSubtitles": "Desactivar diferents tipus de subtítols incrustats",
"OriginalAirDate": "Data d'emissió original",
"MixedMoviesShows": "Pel·lícules i sèries mixtes",
@@ -1656,7 +1656,7 @@
"MessageNoFavoritesAvailable": "No hi han preferits disponibles actualment.",
"OptionDateEpisodeAdded": "Data d'addició de l'episodi",
"MessageNoItemsAvailable": "No hi han elements disponibles actualment.",
- "MessageRenameMediaFolder": "Canviar una biblioteca de nom provocarà que es perdin totes les metadades, continueu amb precaució.",
+ "MessageRenameMediaFolder": "Canviar una mediateca de nom provocarà que es perdin totes les metadades, continueu amb precaució.",
"LabelTextWeight": "Estil del text",
"RememberSubtitleSelections": "Establir la pista de subtítols en funció de l'element anterior",
"LabelVppTonemappingBrightnessHelp": "Aplicar el guany de brillantor al mapa de to VPP. El valor recomanat és 16.",
@@ -1722,7 +1722,7 @@
"EnableAudioNormalization": "Normalització d'àudio",
"LabelEnableLUFSScan": "Activar escaneig LUFS",
"Select": "Seleccionar",
- "LabelEnableLUFSScanHelp": "Els clients poden normalitzar la reproducció d'àudio per obtenir un nivell de volum igual entre totes les pistes d'àudio. Això farà que els escanejos de la biblioteca siguin més duraders i requereixin de més recursos.",
+ "LabelEnableLUFSScanHelp": "Els clients poden normalitzar la reproducció d'àudio per obtenir un nivell de volum igual entre pistes d'àudio. Això farà que els escanejos de la mediateca s'allarguin més i els calgui més recursos.",
"TonemappingModeHelp": "Selecciona el mode de mapeig de to. Si experimentes zones sobreexposades, prova a canviar al mode RGB.",
"EnableAudioNormalizationHelp": "La normalització de l'àudio afegirà un guany constant per mantenir la mitjana al nivell desitjat (-18dB).",
"GetThePlugin": "Obtenir el Plugin",
@@ -1801,7 +1801,7 @@
"LabelEncodingFormatOptions": "Opcions de format de codificació",
"LabelTrickplayAccelHelp": "Assegura't d'habilitar 'Permetre codificació MJPEG' a Transcodificació si el teu maquinari ho suporta.",
"LabelWidthResolutions": "Resolucions d'Amplada",
- "LabelScanBehaviorHelp": "El comportament predeterminat és sense blocatge, cosa que afegirà contingut multimèdia a la biblioteca abans que la generació de la previsualització es completi. El bloqueig assegura que els fitxers de previsualització es generin abans que el contingut multimèdia no s'afegeixi a la biblioteca, però farà que l'escaneig sigui significativament més llarg.",
+ "LabelScanBehaviorHelp": "El comportament predeterminat és sense blocatge, cosa que afegirà contingut multimèdia a la mediateca abans que la generació de la previsualització es completi. El bloqueig assegura que els fitxers de previsualització es generin abans que el contingut multimèdia no s'afegeixi a la mediateca, però farà que l'escaneig sigui significativament més llarg.",
"LabelProcessPriorityHelp": "Establint-ho més baix o més alt determinarà com el processador prioritza el procés de generació de trickplay ffmpeg en relació amb altres processos. Si observeu una ralentització mentre genereu imatges de trickplay, però no voleu aturar completament la seva generació, proveu de reduir-la així com el nombre de fils.",
"AirPlay": "AirPlay",
"AllowContentWithTagsHelp": "Mostra només el contingut multimèdia amb com a mínim alguna de les etiquetes especificades.",
@@ -1837,8 +1837,8 @@
"LabelJpegQualityHelp": "Qualitat de compressió JPEG per a les imatges de trickplay.",
"LabelQscale": "Qscale",
"OptionExtractTrickplayImage": "Habilitar extracció d'imatges de trickplay",
- "LabelExtractTrickplayDuringLibraryScan": "Extreure imatges de trickplay durant l'escaneig de la biblioteca",
- "LabelExtractTrickplayDuringLibraryScanHelp": "Generar imatges de trickplay quan els vídeos són importats durant l'escaneig de la biblioteca. D'altra banda, seran extrets durant la tasca programada d'imatges de trickplay. Si la generació està marcada com a sense bloqueig, això no afectarà el temps que triga a completar l'exploració de la biblioteca.",
+ "LabelExtractTrickplayDuringLibraryScan": "Extreu imatges de previsualització durant l'escaneig de la mediateca",
+ "LabelExtractTrickplayDuringLibraryScanHelp": "Genera imatges de previsualització quan els vídeos són importats durant l'escaneig de la mediateca. D'altra banda, seran extrets durant la tasca programada d'imatges de previsualització. Si la generació està marcada com a sense bloqueig, això no afectarà el temps que triga a completar l'exploració de la mediateca.",
"DeleteEntireSeries": "Elimina {0} episodis",
"DeleteSeries": "Esborrar Sèries",
"DeleteEpisode": "Elimina l'episodi",
@@ -1885,7 +1885,7 @@
"SaveLyricsIntoMediaFolders": "Desa la lletra a les carpetes multimèdia",
"SaveLyricsIntoMediaFoldersHelp": "Emmagatzemar les lletres al costat dels fitxers d'àudio permetrà gestionar-les més fàcilment.",
"LabelSelectPreferredTranscodeVideoAudioCodec": "Còdec d'àudio de transcodificació preferit en la reproducció de vídeo",
- "LibraryScanFanoutConcurrencyHelp": "Nombre màxim de tasques paral·leles durant les exploracions de la biblioteca. Si es deixa buit, es triarà un límit basat en el nombre de nuclis del vostre sistema. ADVERTÈNCIA: establir aquest número massa alt pot causar problemes amb els sistemes de fitxers de xarxa; si trobeu problemes, baixeu aquest número.",
+ "LibraryScanFanoutConcurrencyHelp": "Nombre màxim de tasques paral·leles durant les exploracions de la mediateca. Si es deixa buit, es triarà un límit basat en el nombre de nuclis del vostre sistema. ADVERTÈNCIA: establir aquest número massa alt pot causar problemes amb els sistemes de fitxers de xarxa; si trobeu problemes, baixeu aquest número.",
"SelectPreferredTranscodeVideoAudioCodecHelp": "Seleccioneu el còdec d'àudio preferit per transcodificar per al contingut de vídeo. Si el còdec preferit no és compatible, el servidor utilitzarà el següent millor còdec disponible.",
"LibraryScanFanoutConcurrency": "Límit de tasques d'exploració paral·leles per a les mediateques",
"Penciller": "Dibuixant",
@@ -1922,7 +1922,7 @@
"LabelIsSynced": "Està sincronitzat",
"NoLyricsSearchResultsFound": "No s'han trobat lletres.",
"SearchForLyrics": "Cercar lletres",
- "LibraryInvalidItemIdError": "La biblioteca està en un estat invàlid, i no es pot editar. És possible que hàgiu trobat un error: el camí de la base de dades no és un camí correcte al sistema de fitxers.",
+ "LibraryInvalidItemIdError": "La mediateca està en un estat invàlid, i no es pot editar. És possible que hàgiu trobat un error: la ruta de la base de dades no és una ruta correcta al sistema de fitxers.",
"LabelTrickplayKeyFrameOnlyExtraction": "Només generar imatges en fotogrames clau",
"LabelTrickplayKeyFrameOnlyExtractionHelp": "Només extreure fotogrames clau per a un processament significativament més ràpid amb una sincronització menys precisa. Si el descodificador de maquinari configurat no admet aquest mode, en el seu lloc s'utilitzarà el descodificador per programari.",
"AllowTonemappingSoftwareHelp": "El mapatge de tons pot transformar el rang dinàmic d'un vídeo d'HDR a SDR mantenint els detalls i els colors de la imatge, que són informació molt important per representar l'escena original. Actualment, només funciona amb vídeos HDR10, HLG i DoVi de 10 bits.",
@@ -1996,7 +1996,7 @@
"LabelSubtitleStyling": "Estilització de subtítols",
"Native": "Nadiu",
"NativeSubtitleStylingHelp": "L'estilització de subtítols no funcionarà en alguns dispositius. Tot i això, no suposa cap sobrecàrrega de rendiment.",
- "LibraryNameInvalid": "El nom de la biblioteca no pot estar buit.",
+ "LibraryNameInvalid": "El nom de la mediateca no pot estar buit.",
"DeleteServerConfirmation": "Esteu segur que voleu eliminar aquest servidor?",
"LabelDevice": "Dispositiu",
"LastActive": "Últim actiu",
@@ -2029,7 +2029,7 @@
"DownloadManager": "Descàrregues",
"MessageForgotPasswordPinReset": "Introduïu el PIN aquí per a acabar el restabliment de la contrasenya",
"LabelImageCache": "Imatges en el cache",
- "MessageBackupDisclaimer": "Depenent de la mida de la biblioteca, la còpia de seguretat pot trigar cert temps.",
+ "MessageBackupDisclaimer": "Depenent de la mida de la mediateca, la còpia de seguretat pot trigar una estona.",
"MessageRestoreDisclaimer": "ATENCIÓ: Estàs a punt de restaurar una còpia de seguretat anterior. El seu servidor no serà utilitzable durant el procés i les dades creades des del moment de l'inici de la còpia seran perdudes.",
"MessageWaitingForServer": "Esperant al servidor...",
"StorageType.CDRom": "CD-ROM",
From e59e0a2815fec7b13621ad2ee99e684727ceaeb2 Mon Sep 17 00:00:00 2001
From: cmpsb
Date: Wed, 11 Jun 2025 14:17:55 -0400
Subject: [PATCH 456/645] Translated using Weblate (Swedish) Translation:
Jellyfin/Jellyfin Web Translate-URL:
https://translate.jellyfin.org/projects/jellyfin/jellyfin-web/sv/
---
src/strings/sv.json | 17 +++++++++++++++--
1 file changed, 15 insertions(+), 2 deletions(-)
diff --git a/src/strings/sv.json b/src/strings/sv.json
index d9878055d..3cdee4cdd 100644
--- a/src/strings/sv.json
+++ b/src/strings/sv.json
@@ -1467,7 +1467,7 @@
"LabelTonemappingRange": "Tonmappningsomfång",
"LabelTonemappingPeakHelp": "Åsidosätt det inbäddade metadatavärdet för ingångssignalen med detta toppvärde istället. Standardvärdet är 100 (1000nit).",
"LabelTonemappingPeak": "Tonmappningstoppvärde",
- "LabelTonemappingParamHelp": "Ställ in algoritm för tonmappning. De rekommenderade och förvalda värdena är NaN. Vanligtvis kan man lämna det tomt.",
+ "LabelTonemappingParamHelp": "Ställ in algoritm för tonmappning. Vanligtvis kan man lämna det tomt.",
"LabelTonemappingParam": "Tonmappningsparameter",
"RemuxHelp1": "Median är i en inkompatibel filbehållare (MKV, AVI, WMV, etc) men både videoströmmen och ljudströmmen är kompatibla med enheten. Media kommer att förpackas förlustfritt i farten innan den skickas till enheten.",
"AspectRatioCover": "Förstora",
@@ -2043,5 +2043,18 @@
"StorageType.Network": "Nätverk",
"StorageType.Ram": "RAM",
"StorageType.Unknown": "Okänd",
- "HeaderBackups": "Backuper"
+ "HeaderBackups": "Backuper",
+ "Success": "Lyckat",
+ "PluginsLoadError": "Ett fel uppstod vid inläsning av tillägg.",
+ "ConfirmDeleteRepository": "Ta bort arkiv?",
+ "DeleteRepositoryConfirmation": "Är du säker på att du vill ta bort detta arkiv?",
+ "HeaderBackupsHelp": "Skapa och återställ snapshots av din server, som kan innehålla databasen, metadata, undertexter och trickplay.",
+ "MessageRestoreDisclaimer": "VARNING: Du håller på att återställa från en tidigare säkerhetskopia. Din server kommer att vara otillgänglig under processen och all ny data som skapats efter säkerhetskopian kommer att förloras.",
+ "MessageRestoreSuccess": "Återställning slutförd",
+ "RepositoriesPageLoadError": "Kunde inte ladda arkiv",
+ "StorageType.Removable": "Borttagbar",
+ "TranscodingLoadError": "Kunde inte läsa in transkodningsinställningarna",
+ "ButtonLearnMore": "Läs mer",
+ "LabelImageCache": "Bildcache",
+ "StorageType.Fixed": "Åtgärdat"
}
From 5bee81111a9caf3834a784c6cbcaea3e378cf54d Mon Sep 17 00:00:00 2001
From: TOomaAh
Date: Wed, 11 Jun 2025 23:11:56 +0200
Subject: [PATCH 457/645] fix: move Chapters,Trickplay fields to shuffle query
only
---
src/controllers/movies/movies.js | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/src/controllers/movies/movies.js b/src/controllers/movies/movies.js
index 80d3f1d37..e8c37f7f9 100644
--- a/src/controllers/movies/movies.js
+++ b/src/controllers/movies/movies.js
@@ -33,7 +33,7 @@ export default function (view, params, tabContent, options) {
function shuffle() {
isLoading = true;
loading.show();
- const newQuery = { ...query, SortBy: 'Random', StartIndex: 0, Limit: 300 };
+ const newQuery = { ...query, SortBy: 'Random', StartIndex: 0, Limit: 300, Fields: 'PrimaryImageAspectRatio,MediaSourceCount,Chapters,Trickplay' };
return ApiClient.getItems(ApiClient.getCurrentUserId(), newQuery).then(({ Items }) => {
playbackManager.play({
items: Items,
@@ -277,7 +277,7 @@ export default function (view, params, tabContent, options) {
SortOrder: 'Ascending',
IncludeItemTypes: 'Movie',
Recursive: true,
- Fields: 'PrimaryImageAspectRatio,MediaSourceCount,Chapters,Trickplay',
+ Fields: 'PrimaryImageAspectRatio,MediaSourceCount',
ImageTypeLimit: 1,
EnableImageTypes: 'Primary,Backdrop,Banner,Thumb',
StartIndex: 0,
From 9921163d0ab4a84ccc49107064c40f8776a8072f Mon Sep 17 00:00:00 2001
From: Gargotaire
Date: Wed, 11 Jun 2025 18:33:51 -0400
Subject: [PATCH 458/645] Translated using Weblate (Catalan) Translation:
Jellyfin/Jellyfin Web Translate-URL:
https://translate.jellyfin.org/projects/jellyfin/jellyfin-web/ca/
---
src/strings/ca.json | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/src/strings/ca.json b/src/strings/ca.json
index e9b32d616..e80a22e36 100644
--- a/src/strings/ca.json
+++ b/src/strings/ca.json
@@ -583,7 +583,7 @@
"XmlTvNewsCategoriesHelp": "Els programes amb aquestes categories es mostraran com a programes de notícies. Separa'n varis emprant '|'.",
"XmlTvSportsCategoriesHelp": "Els programes amb aquestes categories es mostraran com a programes esportius. Separa'n varis emprant '|'.",
"Books": "Llibres",
- "Folders": "Carpetes",
+ "Folders": "Directoris",
"Photos": "Fotos",
"Shows": "Sèries",
"Songs": "Cançons",
@@ -705,7 +705,7 @@
"EnableStreamLooping": "Bucle automàtic en emisions en directe",
"EnableQuickConnect": "Activar Quick Connect en aquest servidor",
"EnablePhotosHelp": "Les imatges es detectaran i es mostraran al costat d'altres fitxers multimèdia.",
- "EnablePhotos": "Mostrar fotos",
+ "EnablePhotos": "Mostra les fotos",
"EnableNextVideoInfoOverlayHelp": "Al final d'un vídeo, mostreu informació sobre el següent vídeo que apareix a la llista de reproducció actual.",
"EnableNextVideoInfoOverlay": "Mostra la informació del següent vídeo durant la reproducció",
"EnableHardwareEncoding": "Activa la codificació de maquinari",
From 4c789eec9a7314e9fd1cdd6bc546983d2f40f709 Mon Sep 17 00:00:00 2001
From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com>
Date: Thu, 12 Jun 2025 00:30:28 +0000
Subject: [PATCH 459/645] Update github/codeql-action action to v3.29.0
---
.github/workflows/__codeql.yml | 6 +++---
1 file changed, 3 insertions(+), 3 deletions(-)
diff --git a/.github/workflows/__codeql.yml b/.github/workflows/__codeql.yml
index 9feb49c22..54aae70d7 100644
--- a/.github/workflows/__codeql.yml
+++ b/.github/workflows/__codeql.yml
@@ -26,15 +26,15 @@ jobs:
show-progress: false
- name: Initialize CodeQL 🛠️
- uses: github/codeql-action/init@fca7ace96b7d713c7035871441bd52efbe39e27e # v3.28.19
+ uses: github/codeql-action/init@ce28f5bb42b7a9f2c824e633a3f6ee835bab6858 # v3.29.0
with:
queries: security-and-quality
languages: ${{ matrix.language }}
- name: Autobuild 📦
- uses: github/codeql-action/autobuild@fca7ace96b7d713c7035871441bd52efbe39e27e # v3.28.19
+ uses: github/codeql-action/autobuild@ce28f5bb42b7a9f2c824e633a3f6ee835bab6858 # v3.29.0
- name: Perform CodeQL Analysis 🧪
- uses: github/codeql-action/analyze@fca7ace96b7d713c7035871441bd52efbe39e27e # v3.28.19
+ uses: github/codeql-action/analyze@ce28f5bb42b7a9f2c824e633a3f6ee835bab6858 # v3.29.0
with:
category: '/language:${{matrix.language}}'
From e809040423e076cb62411d85adc937e840b43df0 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Joan=20Montan=C3=A9?=
Date: Thu, 12 Jun 2025 01:36:44 -0400
Subject: [PATCH 460/645] Translated using Weblate (Catalan) Translation:
Jellyfin/Jellyfin Web Translate-URL:
https://translate.jellyfin.org/projects/jellyfin/jellyfin-web/ca/
---
src/strings/ca.json | 40 ++++++++++++++++++++--------------------
1 file changed, 20 insertions(+), 20 deletions(-)
diff --git a/src/strings/ca.json b/src/strings/ca.json
index e80a22e36..cdac0404e 100644
--- a/src/strings/ca.json
+++ b/src/strings/ca.json
@@ -59,7 +59,7 @@
"ErrorDefault": "Hi ha hagut un error processant la petició. Intenteu-ho més tard.",
"Delete": "Esborra",
"DeleteImage": "Esborra Imatge",
- "DeleteImageConfirmation": "Esteu segur que voleu suprimir aquesta imatge?",
+ "DeleteImageConfirmation": "N'esteu segur, que voleu suprimir aquesta imatge?",
"DeleteMedia": "Esborra",
"DeleteUser": "Esborrar usuari",
"Desktop": "Escriptori",
@@ -380,10 +380,10 @@
"MediaInfoPixelFormat": "Format de píxel",
"MediaInfoProfile": "Perfil",
"MediaInfoResolution": "Resolució",
- "MessageAreYouSureDeleteSubtitles": "Esteu segur que voleu eliminar aquest fitxer de subtítols?",
+ "MessageAreYouSureDeleteSubtitles": "N'esteu segur, que voleu eliminar aquest fitxer de subtítols?",
"MessageConfirmProfileDeletion": "N'estàs segur d'eliminar aquest perfil?",
"MessageConfirmRecordingCancellation": "Estàs segur que vols cancel·lar aquest enregistrament?",
- "MessageConfirmRestart": "Esteu segur que voleu reiniciar Jellyfin?",
+ "MessageConfirmRestart": "N'esteu segur, que voleu reiniciar Jellyfin?",
"MessageContactAdminToResetPassword": "Contacteu amb l'administrador per a restablir la contrasenya.",
"MessageDownloadQueued": "Descàrrega encuada.",
"MessageEnablingOptionLongerScans": "Habilitar aquesta opció pot resultar en escanejos significativament més lents de la mediateca.",
@@ -476,7 +476,7 @@
"ParentalRating": "Valoració Parental",
"PasswordMatchError": "La contrasenya i la confirmació han de coincidir.",
"PasswordResetComplete": "La contrasenya s'ha restablert.",
- "PasswordResetConfirmation": "Esteu segur que voleu restablir la contrasenya?",
+ "PasswordResetConfirmation": "N'esteu segur, que voleu restablir la contrasenya?",
"PasswordSaved": "S'ha desat la contrasenya.",
"People": "Repartiment i equip",
"Play": "Reprodueix",
@@ -561,7 +561,7 @@
"TitlePlayback": "Reproducció",
"TrackCount": "{0} pistes",
"Tuesday": "Dimarts",
- "UninstallPluginConfirmation": "Està segur que vol desinstal·lar {0}?",
+ "UninstallPluginConfirmation": "N'esteu segur, que voleu desinstal·lar {0}?",
"HeaderUninstallPlugin": "Desinstal·lar complement",
"Unmute": "De-silencia",
"Unrated": "Sense valorar",
@@ -663,7 +663,7 @@
"CopyStreamURL": "Copia l'URL de reproducció",
"ContinueWatching": "Continueu mirant-ho",
"ConfirmEndPlayerSession": "Vols tancar Jellyfin a {0}?",
- "ConfirmDeleteItems": "L'eliminació d'aquests elements els suprimirà del sistema de fitxers i de la mediateca. N'esteu segur que desitgeu continuar?",
+ "ConfirmDeleteItems": "L'eliminació d'aquests elements els suprimirà del sistema de fitxers i de la mediateca. N'esteu segur, que desitgeu continuar?",
"ConfirmDeleteItem": "Eliminar aquest element l'eliminarà del sistema de fitxers i de la mediateca. N'esteu segur, que desitgeu continuar?",
"ConfigureDateAdded": "Configureu com es determinen les metadades de la \"Data d'afegit\" al Tauler > Mediateques > Visualització",
"CommunityRating": "Ràting comunitari",
@@ -731,8 +731,8 @@
"DirectPlaying": "Reproducció directe",
"DetectingDevices": "Detectant dispositius",
"Descending": "Descendent",
- "DeleteUserConfirmation": "Esteu segur que voleu eliminar aquest usuari?",
- "DeleteDeviceConfirmation": "Esteu segurs que voleu suprimir aquest dispositiu? Tornarà a aparèixer la propera vegada que un usuari iniciï la sessió amb ell.",
+ "DeleteUserConfirmation": "N'esteu segur, que voleu eliminar aquest usuari?",
+ "DeleteDeviceConfirmation": "N'esteu segur, que voleu suprimir aquest dispositiu? Tornarà a aparèixer la pròxima vegada que un usuari iniciï la sessió amb ell.",
"Data": "Dades",
"ButtonUseQuickConnect": "Utilitzar Quick Connect",
"ButtonActivate": "Activar",
@@ -770,7 +770,7 @@
"EnablePlugin": "Activar",
"DirectStreamHelp1": "El flux de vídeo és compatible amb el dispositiu, però té un format d'àudio incompatible (DTS, Dolby TrueHD, etc.) o un nombre de canals d'àudio. El flux de vídeo es tornarà a empaquetar sense pèrdues sobre la marxa abans d'enviar-lo al dispositiu. Només es transcodificarà el flux d'àudio.",
"DirectPlayHelp": "El fitxer font és totalment compatible amb aquest client i la sessió rep el fitxer sense modificacions.",
- "DeleteDevicesConfirmation": "N'esteu segur que voleu suprimir tots els dispositius? Totes les altres sessions es tancaran. Els dispositius reapareixeran la propera vegada que un usuari iniciï la sessió.",
+ "DeleteDevicesConfirmation": "N'esteu segur, que voleu suprimir tots els dispositius? Totes les altres sessions es tancaran. Els dispositius reapareixeran la pròxima vegada que un usuari iniciï la sessió.",
"DeleteAll": "Elimina-ho tot",
"DeinterlaceMethodHelp": "Seleccioneu el mètode de desentrellaçat que voleu utilitzar quan transcodifiqueu el programari de contingut entrellaçat. Quan està activada l'acceleració de maquinari que admet el desentrellaçat de maquinari, s'utilitzarà el desentrellaçador de maquinari en lloc d'aquesta configuració.",
"HeaderDirectPlayProfileHelp": "Afegiu perfils de reproducció directa per indicar quins formats pot gestionar el dispositiu de forma nativa.",
@@ -1028,16 +1028,16 @@
"MessageFileReadError": "Hi ha hagut un error a llegint l'arxiu. Torni-ho a provar.",
"MessageDirectoryPickerLinuxInstruction": "Per a Linux amb Arch Linux, CentOS, Debian, Fedora, openSUSE, o Ubuntu, ha de concedir a l'usuari del servei com a mínim l'accés de lectura als llocs d'emmagatzematge.",
"MessageDirectoryPickerBSDInstruction": "Per a BSD, caldrà tenir configurat l'emmagatzematge del \"FreeNAS Jail\" perquè permeti a Jellyfin accedir al contingut multimèdia.",
- "MessageDeleteTaskTrigger": "Esteu segur que voleu eliminar aquest disparador tasca?",
+ "MessageDeleteTaskTrigger": "N'esteu segur, que voleu eliminar aquest disparador tasca?",
"MessageCreateAccountAt": "Crear un compte a {0}",
- "MessageConfirmShutdown": "Esteu segur que voleu tancar el servidor?",
- "MessageConfirmRevokeApiKey": "N'esteu segur de voler revocar aquesta clau d'API? La connexió de l'aplicació d'aquest servidor s'interromprà abruptament.",
- "MessageConfirmRemoveMediaLocation": "Esteu segur que voleu suprimir aquesta ubicació?",
- "MessageConfirmDeleteTunerDevice": "Està segur que desitja eliminar aquest dispositiu?",
- "MessageConfirmDeleteGuideProvider": "Esteu segur que voleu eliminar aquest proveïdor de guia?",
+ "MessageConfirmShutdown": "N'esteu segur, que voleu tancar el servidor?",
+ "MessageConfirmRevokeApiKey": "N'esteu segur, de voler revocar aquesta clau d'API? La connexió de l'aplicació d'aquest servidor s'interromprà abruptament.",
+ "MessageConfirmRemoveMediaLocation": "N'esteu segur, que voleu suprimir aquesta ubicació?",
+ "MessageConfirmDeleteTunerDevice": "N'esteu segur, que voleu eliminar aquest dispositiu?",
+ "MessageConfirmDeleteGuideProvider": "N'esteu segur, que voleu eliminar aquest proveïdor de guia?",
"MessageConfirmAppExit": "Vols sortir?",
"MessageChangeRecordingPath": "Canviar la seva carpeta d'enregistrament no migrarà enregistraments existents des de la ubicació anterior a la nova. Haurà de moure manualment si es desitja.",
- "MessageAreYouSureYouWishToRemoveMediaFolder": "N'esteu segur que desitgeu eliminar aquest directori multimèdia?",
+ "MessageAreYouSureYouWishToRemoveMediaFolder": "N'esteu segur, que desitgeu eliminar aquest directori multimèdia?",
"MessageAlreadyInstalled": "Aquesta versió ja està instal·lada.",
"MessageAddRepository": "Si voleu afegir un repositori, feu clic al botó situat al costat de la capçalera i completeu la informació sol·licitada.",
"Menu": "Menú",
@@ -1797,7 +1797,7 @@
"ChannelResolutionUHD4K": "UHD (4K)",
"LabelTrickplayAccel": "Habilitar descodificació per maquinari",
"NonBlockingScan": "Sense Bloqueig - generació de cues, després retorna",
- "ConfirmDeleteSeries": "Eliminar aquesta sèrie eliminarà TOTS {0} episodis tant del sistema de fitxers com de la mediateca. N'esteu segur que desitgeu continuar?",
+ "ConfirmDeleteSeries": "Eliminar aquesta sèrie eliminarà TOTS {0} episodis tant del sistema de fitxers com de la mediateca. N'esteu segur, que desitgeu continuar?",
"LabelEncodingFormatOptions": "Opcions de format de codificació",
"LabelTrickplayAccelHelp": "Assegura't d'habilitar 'Permetre codificació MJPEG' a Transcodificació si el teu maquinari ho suporta.",
"LabelWidthResolutions": "Resolucions d'Amplada",
@@ -1857,7 +1857,7 @@
"ExtractTrickplayImagesHelp": "Les imatges de Trickplay són similars a les imatges de capítols, excepte que abasten tota la longitud del contingut i s'utilitzen per mostrar una vista prèvia quan es desplaça pels vídeos.",
"LabelTrickplayAccelEncodingHelp": "En aquests moments només està disponible en QSV, VAAPI, VideoToolbox i RKMPP, aquesta opció no afecta els altres mètodes d'acceleració per maquinari.",
"LabelTrickplayAccelEncoding": "Habilitar codificació MJPEG accelerada per maquinari",
- "ConfirmDeleteLyrics": "L'esborrat d'aquestes lletres, les suprimirà tant del sistema de fitxers com de la vostra mediateca. N'esteu segur que desitgeu continuar?",
+ "ConfirmDeleteLyrics": "L'esborrat d'aquestes lletres, les suprimirà tant del sistema de fitxers com de la vostra mediateca. N'esteu segur, que desitgeu continuar?",
"ErrorDeletingLyrics": "S'ha produït un error en suprimir les lletres del servidor. Si us plau, comproveu que Jellyfin tingui accés d'escriptura a la carpeta multimèdia i torneu-ho a provar.",
"HeaderDeleteLyrics": "Esborrar Lletres",
"DeleteLyrics": "Esborrar lletres",
@@ -1997,7 +1997,7 @@
"Native": "Nadiu",
"NativeSubtitleStylingHelp": "L'estilització de subtítols no funcionarà en alguns dispositius. Tot i això, no suposa cap sobrecàrrega de rendiment.",
"LibraryNameInvalid": "El nom de la mediateca no pot estar buit.",
- "DeleteServerConfirmation": "Esteu segur que voleu eliminar aquest servidor?",
+ "DeleteServerConfirmation": "N'esteu segur, que voleu eliminar aquest servidor?",
"LabelDevice": "Dispositiu",
"LastActive": "Últim actiu",
"CopyLogSuccess": "Registres copiats satisfactòriament.",
@@ -2057,5 +2057,5 @@
"RepositoriesPageLoadError": "No s'han pogut carregar els repositoris",
"TranscodingLoadError": "No s'han pogut carregar els paràmetres de transcodificació",
"ConfirmDeleteRepository": "Voleu esborrar el repositori?",
- "DeleteRepositoryConfirmation": "Esteu segur de voler esborrar aquest repositori?"
+ "DeleteRepositoryConfirmation": "N'esteu segur, de voler esborrar aquest repositori?"
}
From 633a11532cb1d628709b1915d1a66aa6934aa21e Mon Sep 17 00:00:00 2001
From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com>
Date: Thu, 12 Jun 2025 09:50:30 +0000
Subject: [PATCH 461/645] Update dependency @jellyfin/sdk to
v0.0.0-unstable.202506120501
---
package-lock.json | 14 +++++++-------
package.json | 2 +-
2 files changed, 8 insertions(+), 8 deletions(-)
diff --git a/package-lock.json b/package-lock.json
index 8a4047c45..f733b5449 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -18,7 +18,7 @@
"@fontsource/noto-sans-sc": "5.2.5",
"@fontsource/noto-sans-tc": "5.2.5",
"@jellyfin/libass-wasm": "4.2.3",
- "@jellyfin/sdk": "0.0.0-unstable.202506100501",
+ "@jellyfin/sdk": "0.0.0-unstable.202506120501",
"@jellyfin/ux-web": "1.0.0",
"@mui/icons-material": "6.4.12",
"@mui/material": "6.4.12",
@@ -4129,9 +4129,9 @@
"license": "LGPL-2.1-or-later AND (FTL OR GPL-2.0-or-later) AND MIT AND MIT-Modern-Variant AND ISC AND NTP AND Zlib AND BSL-1.0"
},
"node_modules/@jellyfin/sdk": {
- "version": "0.0.0-unstable.202506100501",
- "resolved": "https://registry.npmjs.org/@jellyfin/sdk/-/sdk-0.0.0-unstable.202506100501.tgz",
- "integrity": "sha512-Cwz6ZB3FBWXD7f9y+OQ/K2bUzvkT2yweRWgnA2DZenlhcChSTcHkH+9SigSCe0ely4FtYxp4czPdFFQnoXJE0g==",
+ "version": "0.0.0-unstable.202506120501",
+ "resolved": "https://registry.npmjs.org/@jellyfin/sdk/-/sdk-0.0.0-unstable.202506120501.tgz",
+ "integrity": "sha512-Q6klssMF4FFVWE5zw3V2l7+xpU68FydCSLR9Wwol1LT/zoThpN56tBdscFCmLlTK4ZVCaj+dq3reML8U2h1czw==",
"license": "MPL-2.0",
"peerDependencies": {
"axios": "^1.3.4"
@@ -27669,9 +27669,9 @@
"integrity": "sha512-C0OlBxIr9NdeFESMTA/OVDqNSWtog6Mi7wwzwH12xbZpxsMD0RgCupUcIP7zZgcpTNecW3fZq5d6xVo7Q8HEJw=="
},
"@jellyfin/sdk": {
- "version": "0.0.0-unstable.202506100501",
- "resolved": "https://registry.npmjs.org/@jellyfin/sdk/-/sdk-0.0.0-unstable.202506100501.tgz",
- "integrity": "sha512-Cwz6ZB3FBWXD7f9y+OQ/K2bUzvkT2yweRWgnA2DZenlhcChSTcHkH+9SigSCe0ely4FtYxp4czPdFFQnoXJE0g==",
+ "version": "0.0.0-unstable.202506120501",
+ "resolved": "https://registry.npmjs.org/@jellyfin/sdk/-/sdk-0.0.0-unstable.202506120501.tgz",
+ "integrity": "sha512-Q6klssMF4FFVWE5zw3V2l7+xpU68FydCSLR9Wwol1LT/zoThpN56tBdscFCmLlTK4ZVCaj+dq3reML8U2h1czw==",
"requires": {}
},
"@jellyfin/ux-web": {
diff --git a/package.json b/package.json
index fe249b184..81add10d8 100644
--- a/package.json
+++ b/package.json
@@ -84,7 +84,7 @@
"@fontsource/noto-sans-sc": "5.2.5",
"@fontsource/noto-sans-tc": "5.2.5",
"@jellyfin/libass-wasm": "4.2.3",
- "@jellyfin/sdk": "0.0.0-unstable.202506100501",
+ "@jellyfin/sdk": "0.0.0-unstable.202506120501",
"@jellyfin/ux-web": "1.0.0",
"@mui/icons-material": "6.4.12",
"@mui/material": "6.4.12",
From 92cdfcc1ea9bbf6ad86184bcfbad06eb384837fc Mon Sep 17 00:00:00 2001
From: viown <48097677+viown@users.noreply.github.com>
Date: Wed, 11 Jun 2025 16:53:51 +0300
Subject: [PATCH 462/645] Migrate plugins catalog to React
---
src/apps/dashboard/components/BaseCard.tsx | 21 ++-
.../controllers/plugins/available/index.html | 17 --
.../controllers/plugins/available/index.js | 163 ------------------
.../features/plugins/api/queryKey.ts | 2 +-
.../features/plugins/api/usePackageInfo.ts | 14 +-
.../features/plugins/api/usePackages.ts | 32 ++++
.../plugins/components/PackageCard.tsx | 28 +++
.../plugins/components/PluginCard.tsx | 20 ++-
.../plugins/utils/getPackageCategories.ts | 17 ++
.../plugins/utils/getPackagesByCategory.ts | 15 ++
src/apps/dashboard/routes/_asyncRoutes.ts | 1 +
src/apps/dashboard/routes/_legacyRoutes.ts | 7 -
src/apps/dashboard/routes/plugins/catalog.tsx | 84 +++++++++
13 files changed, 217 insertions(+), 204 deletions(-)
delete mode 100644 src/apps/dashboard/controllers/plugins/available/index.html
delete mode 100644 src/apps/dashboard/controllers/plugins/available/index.js
create mode 100644 src/apps/dashboard/features/plugins/api/usePackages.ts
create mode 100644 src/apps/dashboard/features/plugins/components/PackageCard.tsx
create mode 100644 src/apps/dashboard/features/plugins/utils/getPackageCategories.ts
create mode 100644 src/apps/dashboard/features/plugins/utils/getPackagesByCategory.ts
create mode 100644 src/apps/dashboard/routes/plugins/catalog.tsx
diff --git a/src/apps/dashboard/components/BaseCard.tsx b/src/apps/dashboard/components/BaseCard.tsx
index f6e683146..8209ec3f0 100644
--- a/src/apps/dashboard/components/BaseCard.tsx
+++ b/src/apps/dashboard/components/BaseCard.tsx
@@ -9,6 +9,7 @@ import MoreVertIcon from '@mui/icons-material/MoreVert';
import { getDefaultBackgroundClass } from 'components/cardbuilder/cardBuilderUtils';
import CardActionArea from '@mui/material/CardActionArea';
import Stack from '@mui/material/Stack';
+import { Link, To } from 'react-router-dom';
interface IProps {
title?: string;
@@ -16,13 +17,14 @@ interface IProps {
text?: string;
image?: string | null;
icon?: React.ReactNode;
+ to?: To;
onClick?: () => void;
action?: boolean;
actionRef?: React.MutableRefObject;
onActionClick?: () => void;
};
-const BaseCard = ({ title, secondaryTitle, text, image, icon, onClick, action, actionRef, onActionClick }: IProps) => {
+const BaseCard = ({ title, secondaryTitle, text, image, icon, to, onClick, action, actionRef, onActionClick }: IProps) => {
return (
-
+
{image ? (
-
)}
+
{appHost.supports(AppFeature.MultiServer) && (
= ({
{globalize.translate('ButtonChangeServer')}
)}
+
{state === ConnectionState.ServerMismatch && (
{globalize.translate('ConnectAnyway')}
diff --git a/src/strings/en-us.json b/src/strings/en-us.json
index 44189a154..105400ff2 100644
--- a/src/strings/en-us.json
+++ b/src/strings/en-us.json
@@ -1184,7 +1184,7 @@
"MessageRestoreInProgress": "Restore in progress",
"MessageRestoreSuccess": "Restore successfully completed",
"MessageSent": "Message sent.",
- "MessageServerMismatch": "The server you are connecting to is not the same server that you previously connected to at this address. If this is expected please select \"Connect Anyway\". Otherwise your connection or the server might be compromised.",
+ "MessageServerMismatch": "The server you are connecting to is not the same server that you previously connected to at this address. If this is expected, please select \"Connect Anyway\". Otherwise, your connection or the server might be compromised.",
"MessageSplitVersionsError": "An error occurred while splitting versions",
"MessageSyncPlayCreateGroupDenied": "Permission required to create a group.",
"MessageSyncPlayDisabled": "SyncPlay disabled.",
From e9747adf4892a1927526290205f79f23f310b88f Mon Sep 17 00:00:00 2001
From: Bill Thornton
Date: Wed, 25 Jun 2025 17:37:57 -0400
Subject: [PATCH 518/645] Refactor ItemCountsWidget to reduce duplication
---
.../components/widgets/ItemCountsWidget.tsx | 123 ++++++++----------
1 file changed, 54 insertions(+), 69 deletions(-)
diff --git a/src/apps/dashboard/components/widgets/ItemCountsWidget.tsx b/src/apps/dashboard/components/widgets/ItemCountsWidget.tsx
index f4a5e7987..1488b5ebf 100644
--- a/src/apps/dashboard/components/widgets/ItemCountsWidget.tsx
+++ b/src/apps/dashboard/components/widgets/ItemCountsWidget.tsx
@@ -1,3 +1,4 @@
+import type { ItemCounts } from '@jellyfin/sdk/lib/generated-client/models/item-counts';
import Book from '@mui/icons-material/Book';
import Movie from '@mui/icons-material/Movie';
import MusicNote from '@mui/icons-material/MusicNote';
@@ -5,12 +6,51 @@ import MusicVideo from '@mui/icons-material/MusicVideo';
import Tv from '@mui/icons-material/Tv';
import VideoLibrary from '@mui/icons-material/VideoLibrary';
import Grid from '@mui/material/Grid2';
+import SvgIcon from '@mui/material/SvgIcon';
import React, { useMemo } from 'react';
import { useItemCounts } from 'apps/dashboard/features/metrics/api/useItemCounts';
import MetricCard, { type MetricCardProps } from 'apps/dashboard/features/metrics/components/MetricCard';
import globalize from 'lib/globalize';
+interface MetricDefinition {
+ key: keyof ItemCounts
+ i18n: string
+}
+
+interface CardDefinition {
+ Icon: typeof SvgIcon
+ metrics: MetricDefinition[]
+}
+
+const CARD_DEFINITIONS: CardDefinition[] = [
+ {
+ Icon: Movie,
+ metrics: [{ key: 'MovieCount', i18n: 'Movies' }]
+ }, {
+ Icon: Tv,
+ metrics: [
+ { key: 'SeriesCount', i18n: 'Series' },
+ { key: 'EpisodeCount', i18n: 'Episodes' }
+ ]
+ }, {
+ Icon: MusicNote,
+ metrics: [
+ { key: 'AlbumCount', i18n: 'Albums' },
+ { key: 'SongCount', i18n: 'Songs' }
+ ]
+ }, {
+ Icon: MusicVideo,
+ metrics: [{ key: 'MusicVideoCount', i18n: 'MusicVideos' }]
+ }, {
+ Icon: Book,
+ metrics: [{ key: 'BookCount', i18n: 'Books' }]
+ }, {
+ Icon: VideoLibrary,
+ metrics: [{ key: 'BoxSetCount', i18n: 'Collections' }]
+ }
+];
+
const ItemCountsWidget = () => {
const {
data: counts,
@@ -18,75 +58,20 @@ const ItemCountsWidget = () => {
} = useItemCounts();
const cards: MetricCardProps[] = useMemo(() => {
- const cardProps: MetricCardProps[] = [];
-
- if (isPending || counts?.MovieCount) {
- cardProps.push({
- Icon: Movie,
- metrics: [{
- label: globalize.translate('Movies'),
- value: counts?.MovieCount
- }]
- });
- }
-
- if (isPending || counts?.SeriesCount || counts?.EpisodeCount) {
- cardProps.push({
- Icon: Tv,
- metrics: [{
- label: globalize.translate('Series'),
- value: counts?.SeriesCount
- }, {
- label: globalize.translate('Episodes'),
- value: counts?.EpisodeCount
- }]
- });
- }
-
- if (isPending || counts?.AlbumCount || counts?.SongCount) {
- cardProps.push({
- Icon: MusicNote,
- metrics: [{
- label: globalize.translate('Albums'),
- value: counts?.AlbumCount
- }, {
- label: globalize.translate('Songs'),
- value: counts?.SongCount
- }]
- });
- }
-
- if (isPending || counts?.MusicVideoCount) {
- cardProps.push({
- Icon: MusicVideo,
- metrics: [{
- label: globalize.translate('MusicVideos'),
- value: counts?.MusicVideoCount
- }]
- });
- }
-
- if (isPending || counts?.BookCount) {
- cardProps.push({
- Icon: Book,
- metrics: [{
- label: globalize.translate('Books'),
- value: counts?.BookCount
- }]
- });
- }
-
- if (isPending || counts?.BoxSetCount) {
- cardProps.push({
- Icon: VideoLibrary,
- metrics: [{
- label: globalize.translate('Collections'),
- value: counts?.BoxSetCount
- }]
- });
- }
-
- return cardProps;
+ return CARD_DEFINITIONS
+ .filter(def => (
+ // Include all cards while the request is pending
+ isPending
+ // Check if the metrics are present in counts
+ || def.metrics.some(({ key }) => counts?.[key])
+ ))
+ .map(({ Icon, metrics }) => ({
+ Icon,
+ metrics: metrics.map(({ i18n, key }) => ({
+ label: globalize.translate(i18n),
+ value: counts?.[key]
+ }))
+ }));
}, [ counts, isPending ]);
return (
From 11601c4018848bb0fc5ef47914fb15bf8cd78834 Mon Sep 17 00:00:00 2001
From: myrad2267
Date: Wed, 25 Jun 2025 22:56:06 -0400
Subject: [PATCH 519/645] Translated using Weblate (French (Canada))
Translation: Jellyfin/Jellyfin Web Translate-URL:
https://translate.jellyfin.org/projects/jellyfin/jellyfin-web/fr_CA/
---
src/strings/fr-ca.json | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
diff --git a/src/strings/fr-ca.json b/src/strings/fr-ca.json
index 0b4dadf24..b829a8a05 100644
--- a/src/strings/fr-ca.json
+++ b/src/strings/fr-ca.json
@@ -2005,5 +2005,6 @@
"ButtonLearnMore": "En apprendre plus",
"TranscodingLoadError": "Échec du chargement des paramètres de transcodage",
"ConfirmDeleteRepository": "Supprimer le dépôt ?",
- "RepositoriesPageLoadError": "Échec du chargement des dépôts"
+ "RepositoriesPageLoadError": "Échec du chargement des dépôts",
+ "LiveTVPageLoadError": "Échec du chargement de la page d'enregistrements"
}
From ccb9b202220fcad5970c0e144a3414acb18638b3 Mon Sep 17 00:00:00 2001
From: myrad2267
Date: Wed, 25 Jun 2025 22:55:15 -0400
Subject: [PATCH 520/645] Translated using Weblate (French) Translation:
Jellyfin/Jellyfin Web Translate-URL:
https://translate.jellyfin.org/projects/jellyfin/jellyfin-web/fr/
---
src/strings/fr.json | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
diff --git a/src/strings/fr.json b/src/strings/fr.json
index b8c5a62ba..5a7669283 100644
--- a/src/strings/fr.json
+++ b/src/strings/fr.json
@@ -2061,5 +2061,6 @@
"TranscodingLoadError": "Échec du chargement des paramètres de transcodage",
"ConfirmDeleteRepository": "Supprimer le dépôt ?",
"DeleteRepositoryConfirmation": "Êtes-vous sûr de vouloir supprimer ce dépôt ?",
- "RepositoriesPageLoadError": "Échec du chargement des dépôts"
+ "RepositoriesPageLoadError": "Échec du chargement des dépôts",
+ "LiveTVPageLoadError": "Échec du chargement de la page d'enregistrements"
}
From acd6ccf3b3a902bd414ffd0e5738e3833d9a8cfa Mon Sep 17 00:00:00 2001
From: st7105
Date: Thu, 26 Jun 2025 01:55:43 -0400
Subject: [PATCH 521/645] Translated using Weblate (Russian) Translation:
Jellyfin/Jellyfin Web Translate-URL:
https://translate.jellyfin.org/projects/jellyfin/jellyfin-web/ru/
---
src/strings/ru.json | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
diff --git a/src/strings/ru.json b/src/strings/ru.json
index 5e17aa867..6b77519eb 100644
--- a/src/strings/ru.json
+++ b/src/strings/ru.json
@@ -2061,5 +2061,6 @@
"DeleteRepositoryConfirmation": "Вы уверены, что хотите удалить это репозиторий?",
"RepositoriesPageLoadError": "Не удалось загрузить репозитории",
"TranscodingLoadError": "Не удалось загрузить настройки транскодирования",
- "ButtonLearnMore": "Узнать больше"
+ "ButtonLearnMore": "Узнать больше",
+ "LiveTVPageLoadError": "Не удалось загрузить страницу с записями"
}
From 6598410c656c4b47ff7b09a77d398ba4b1dce0b8 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Luk=C3=A1=C5=A1=20Kucharczyk?=
Date: Thu, 26 Jun 2025 05:11:46 -0400
Subject: [PATCH 522/645] Translated using Weblate (Czech) Translation:
Jellyfin/Jellyfin Web Translate-URL:
https://translate.jellyfin.org/projects/jellyfin/jellyfin-web/cs/
---
src/strings/cs.json | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
diff --git a/src/strings/cs.json b/src/strings/cs.json
index 5b4f0bfd2..9dec8ce2e 100644
--- a/src/strings/cs.json
+++ b/src/strings/cs.json
@@ -2061,5 +2061,6 @@
"PluginsLoadError": "Při načítání zásuvných modulů došlo k chybě.",
"ButtonLearnMore": "Více informací",
"DeleteRepositoryConfirmation": "Opravdu chcete odstranit tento repozitář?",
- "TranscodingLoadError": "Načtení nastavení překódování se nezdařilo"
+ "TranscodingLoadError": "Načtení nastavení překódování se nezdařilo",
+ "LiveTVPageLoadError": "Načtení stránky s nahrávkami se nezdařilo"
}
From f4153ae7060642b2a7466393ef79a6cdc18d5cf0 Mon Sep 17 00:00:00 2001
From: Martin Just
Date: Thu, 26 Jun 2025 04:18:53 -0400
Subject: [PATCH 523/645] Translated using Weblate (German) Translation:
Jellyfin/Jellyfin Web Translate-URL:
https://translate.jellyfin.org/projects/jellyfin/jellyfin-web/de/
---
src/strings/de.json | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
diff --git a/src/strings/de.json b/src/strings/de.json
index 9d04dcfb4..efb96b38c 100644
--- a/src/strings/de.json
+++ b/src/strings/de.json
@@ -2061,5 +2061,6 @@
"ButtonLearnMore": "Mehr erfahren",
"TranscodingLoadError": "Transcodierungseinstellungen konnten nicht geladen werden",
"ConfirmDeleteRepository": "Repository löschen?",
- "DeleteRepositoryConfirmation": "Sind Sie sicher, dass Sie dieses Repository löschen wollen?"
+ "DeleteRepositoryConfirmation": "Sind Sie sicher, dass Sie dieses Repository löschen wollen?",
+ "LiveTVPageLoadError": "Aufzeichnungsseite konnte nicht geladen werden"
}
From f2d23db4836c4f11626d5f4d0623f782e2042595 Mon Sep 17 00:00:00 2001
From: Oatavandi
Date: Thu, 26 Jun 2025 09:49:00 -0400
Subject: [PATCH 524/645] Translated using Weblate (Tamil) Translation:
Jellyfin/Jellyfin Web Translate-URL:
https://translate.jellyfin.org/projects/jellyfin/jellyfin-web/ta/
---
src/strings/ta.json | 7 +++++--
1 file changed, 5 insertions(+), 2 deletions(-)
diff --git a/src/strings/ta.json b/src/strings/ta.json
index 86b8efe8a..875d4e2bb 100644
--- a/src/strings/ta.json
+++ b/src/strings/ta.json
@@ -1477,7 +1477,7 @@
"LabelUDPPortRange": "UDP தொடர்பு வரம்பு",
"LabelSSDPTracingFilterHelp": "உள்நுழைந்த SSDP போக்குவரத்தை வடிகட்ட விருப்ப ஐபி முகவரி.",
"LabelSSDPTracingFilter": "SSDP வடிகட்டி",
- "LabelPublishedServerUriHelp": "ஜெல்லிஃபின் பயன்படுத்தும் URI ஐ இடைமுகம் அல்லது கிளையன்ட் ஐபி முகவரியின் அடிப்படையில் மேலெழுதவும்.",
+ "LabelPublishedServerUriHelp": "இடைமுகம் அல்லது கிளையன்ட் ஐபி முகவரியின் அடிப்படையில் ஜெல்லிஃபின் பயன்படுத்தும் URI ஐ மேலெழுதவும். எடுத்துக்காட்டாக: internal=http://jellyfin.example.com, external=https://jellyfin.example.com, அல்லது all=https://jellyfin.example.com",
"LabelPublishedServerUri": "வெளியிடப்பட்ட சேவையக URI கள்",
"LabelIsForced": "கட்டாயப்படுத்தப்பட்டது",
"LabelHDHomerunPortRangeHelp": "இந்த மதிப்பிற்கு HDHomeRun UDP போர்ட் வரம்பைக் கட்டுப்படுத்துகிறது. (இயல்புநிலை 1024 - 65535).",
@@ -1904,5 +1904,8 @@
"ErrorDeletingLyrics": "சேவையகத்திலிருந்து பாடல் வரிகளை நீக்குவதில் பிழை. ஜெல்லிஃபின் மீடியா கோப்புறையில் எழுதுவதற்கான அணுகலைப் பெற்றுள்ளதா என்பதைச் சரிபார்த்து, மீண்டும் முயற்சிக்கவும்.",
"HeaderNoLyrics": "பாடல் வரிகள் எதுவும் கிடைக்கவில்லை",
"HeaderLyricDownloads": "பாடல் வரிகள் பதிவிறக்கம்",
- "AllowFmp4TranscodingContainerHelp": "HEVC மற்றும் HDR பதிவுகளை செயல்படுத்துவதற்க்கு இந்த டியூனரிற்கு fMP4 ட்ரான்ஸ்கோடிங் கண்டெய்னரை அனுமதிக்கவும். எல்லா விதமான டியூனர்களும் இந்த கண்டெய்னருடன் ஒத்துவராது. தரவுகளை செயல்படுத்துவதில் ஏதேனும் தடங்கல் ஏற்பட்டால் இதை ஆஃப் செய்யவும்."
+ "AllowFmp4TranscodingContainerHelp": "HEVC மற்றும் HDR பதிவுகளை செயல்படுத்துவதற்க்கு இந்த டியூனரிற்கு fMP4 ட்ரான்ஸ்கோடிங் கண்டெய்னரை அனுமதிக்கவும். எல்லா விதமான டியூனர்களும் இந்த கண்டெய்னருடன் ஒத்துவராது. தரவுகளை செயல்படுத்துவதில் ஏதேனும் தடங்கல் ஏற்பட்டால் இதை ஆஃப் செய்யவும்.",
+ "Retry": "மீண்டும் முயற்சிக்கவும்",
+ "AllowStreamSharingHelp": "ட்யூனரிலிருந்து mpegts ஸ்ட்ரீமை நகலெடுத்து, இந்த நகல் ஸ்ட்ரீமை அதன் வாடிக்கையாளர்களுடன் பகிர்ந்து கொள்ள ஜெல்லிஃபினை அனுமதிக்கவும். ட்யூனருக்கு மொத்த ஸ்ட்ரீம் எண்ணிக்கை வரம்பு இருக்கும்போது இது பயனுள்ளதாக இருக்கும், ஆனால் பிளேபேக் சிக்கல்களையும் ஏற்படுத்தக்கூடும்.",
+ "Alternate": "மாற்று"
}
From 8979508efec2e4d36b6dd3eb89c41bc00485bdf3 Mon Sep 17 00:00:00 2001
From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com>
Date: Thu, 26 Jun 2025 15:14:29 +0000
Subject: [PATCH 525/645] Update dependency @jellyfin/sdk to
v0.0.0-unstable.202506260502
---
package-lock.json | 14 +++++++-------
package.json | 2 +-
2 files changed, 8 insertions(+), 8 deletions(-)
diff --git a/package-lock.json b/package-lock.json
index f733b5449..0ee4c6760 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -18,7 +18,7 @@
"@fontsource/noto-sans-sc": "5.2.5",
"@fontsource/noto-sans-tc": "5.2.5",
"@jellyfin/libass-wasm": "4.2.3",
- "@jellyfin/sdk": "0.0.0-unstable.202506120501",
+ "@jellyfin/sdk": "0.0.0-unstable.202506260502",
"@jellyfin/ux-web": "1.0.0",
"@mui/icons-material": "6.4.12",
"@mui/material": "6.4.12",
@@ -4129,9 +4129,9 @@
"license": "LGPL-2.1-or-later AND (FTL OR GPL-2.0-or-later) AND MIT AND MIT-Modern-Variant AND ISC AND NTP AND Zlib AND BSL-1.0"
},
"node_modules/@jellyfin/sdk": {
- "version": "0.0.0-unstable.202506120501",
- "resolved": "https://registry.npmjs.org/@jellyfin/sdk/-/sdk-0.0.0-unstable.202506120501.tgz",
- "integrity": "sha512-Q6klssMF4FFVWE5zw3V2l7+xpU68FydCSLR9Wwol1LT/zoThpN56tBdscFCmLlTK4ZVCaj+dq3reML8U2h1czw==",
+ "version": "0.0.0-unstable.202506260502",
+ "resolved": "https://registry.npmjs.org/@jellyfin/sdk/-/sdk-0.0.0-unstable.202506260502.tgz",
+ "integrity": "sha512-+lTM6BwCY4O25tnZ2ZIegodrHWBXv+Kql5fadRNm9MISoR/ZMcg30z21oLtNLxZoqG+D66AjIzOaqipygyLaoA==",
"license": "MPL-2.0",
"peerDependencies": {
"axios": "^1.3.4"
@@ -27669,9 +27669,9 @@
"integrity": "sha512-C0OlBxIr9NdeFESMTA/OVDqNSWtog6Mi7wwzwH12xbZpxsMD0RgCupUcIP7zZgcpTNecW3fZq5d6xVo7Q8HEJw=="
},
"@jellyfin/sdk": {
- "version": "0.0.0-unstable.202506120501",
- "resolved": "https://registry.npmjs.org/@jellyfin/sdk/-/sdk-0.0.0-unstable.202506120501.tgz",
- "integrity": "sha512-Q6klssMF4FFVWE5zw3V2l7+xpU68FydCSLR9Wwol1LT/zoThpN56tBdscFCmLlTK4ZVCaj+dq3reML8U2h1czw==",
+ "version": "0.0.0-unstable.202506260502",
+ "resolved": "https://registry.npmjs.org/@jellyfin/sdk/-/sdk-0.0.0-unstable.202506260502.tgz",
+ "integrity": "sha512-+lTM6BwCY4O25tnZ2ZIegodrHWBXv+Kql5fadRNm9MISoR/ZMcg30z21oLtNLxZoqG+D66AjIzOaqipygyLaoA==",
"requires": {}
},
"@jellyfin/ux-web": {
diff --git a/package.json b/package.json
index 81add10d8..64300b4b6 100644
--- a/package.json
+++ b/package.json
@@ -84,7 +84,7 @@
"@fontsource/noto-sans-sc": "5.2.5",
"@fontsource/noto-sans-tc": "5.2.5",
"@jellyfin/libass-wasm": "4.2.3",
- "@jellyfin/sdk": "0.0.0-unstable.202506120501",
+ "@jellyfin/sdk": "0.0.0-unstable.202506260502",
"@jellyfin/ux-web": "1.0.0",
"@mui/icons-material": "6.4.12",
"@mui/material": "6.4.12",
From 515585d5fdef02c63b5b80798dc623893c77ff3e Mon Sep 17 00:00:00 2001
From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com>
Date: Thu, 26 Jun 2025 15:14:44 +0000
Subject: [PATCH 526/645] Update tanstack-query monorepo to v5.80.10
---
package-lock.json | 46 +++++++++++++++++++++++-----------------------
package.json | 4 ++--
2 files changed, 25 insertions(+), 25 deletions(-)
diff --git a/package-lock.json b/package-lock.json
index f733b5449..530aff3f6 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -24,8 +24,8 @@
"@mui/material": "6.4.12",
"@mui/x-date-pickers": "7.29.4",
"@react-hook/resize-observer": "2.0.2",
- "@tanstack/react-query": "5.80.2",
- "@tanstack/react-query-devtools": "5.80.2",
+ "@tanstack/react-query": "5.80.10",
+ "@tanstack/react-query-devtools": "5.80.10",
"abortcontroller-polyfill": "1.7.8",
"blurhash": "2.0.5",
"classlist.js": "https://github.com/eligrey/classList.js/archive/1.2.20180112.tar.gz",
@@ -5630,9 +5630,9 @@
}
},
"node_modules/@tanstack/query-core": {
- "version": "5.80.2",
- "resolved": "https://registry.npmjs.org/@tanstack/query-core/-/query-core-5.80.2.tgz",
- "integrity": "sha512-g2Es97uwFk7omkWiH9JmtLWSA8lTUFVseIyzqbjqJEEx7qN+Hg6jbBdDvelqtakamppaJtGORQ64hEJ5S6ojSg==",
+ "version": "5.80.10",
+ "resolved": "https://registry.npmjs.org/@tanstack/query-core/-/query-core-5.80.10.tgz",
+ "integrity": "sha512-mUNQOtzxkjL6jLbyChZoSBP6A5gQDVRUiPvW+/zw/9ftOAz+H754zCj3D8PwnzPKyHzGkQ9JbH48ukhym9LK1Q==",
"license": "MIT",
"funding": {
"type": "github",
@@ -5650,12 +5650,12 @@
}
},
"node_modules/@tanstack/react-query": {
- "version": "5.80.2",
- "resolved": "https://registry.npmjs.org/@tanstack/react-query/-/react-query-5.80.2.tgz",
- "integrity": "sha512-LfA0SVheJBOqC8RfJw/JbOW3yh2zuONQeWU5Prjm7yjUGUONeOedky1Bj39Cfj8MRdXrZV+DxNT7/DN/M907lQ==",
+ "version": "5.80.10",
+ "resolved": "https://registry.npmjs.org/@tanstack/react-query/-/react-query-5.80.10.tgz",
+ "integrity": "sha512-6zM098J8sLy9oU60XAdzUlAH4wVzoMVsWUWiiE/Iz4fd67PplxeyL4sw/MPcVJJVhbwGGXCsHn9GrQt2mlAzig==",
"license": "MIT",
"dependencies": {
- "@tanstack/query-core": "5.80.2"
+ "@tanstack/query-core": "5.80.10"
},
"funding": {
"type": "github",
@@ -5666,9 +5666,9 @@
}
},
"node_modules/@tanstack/react-query-devtools": {
- "version": "5.80.2",
- "resolved": "https://registry.npmjs.org/@tanstack/react-query-devtools/-/react-query-devtools-5.80.2.tgz",
- "integrity": "sha512-nGeCXBkSoYHKkQQO6pBr+DE8ML/EGd79MvFCkBPRcAA8u65OMNOJPXB0sg2AGgXX2+enTEQLHWZwjzukNB9gIA==",
+ "version": "5.80.10",
+ "resolved": "https://registry.npmjs.org/@tanstack/react-query-devtools/-/react-query-devtools-5.80.10.tgz",
+ "integrity": "sha512-6JL63fSc7kxyGOLV2w466SxhMn/m7LZk/ximQciy6OpVt+n2A8Mq3S0QwhIzfm4WEwLK/F3OELfzRToQburnYA==",
"license": "MIT",
"dependencies": {
"@tanstack/query-devtools": "5.80.0"
@@ -5678,7 +5678,7 @@
"url": "https://github.com/sponsors/tannerlinsley"
},
"peerDependencies": {
- "@tanstack/react-query": "^5.80.2",
+ "@tanstack/react-query": "^5.80.10",
"react": "^18 || ^19"
}
},
@@ -28439,9 +28439,9 @@
}
},
"@tanstack/query-core": {
- "version": "5.80.2",
- "resolved": "https://registry.npmjs.org/@tanstack/query-core/-/query-core-5.80.2.tgz",
- "integrity": "sha512-g2Es97uwFk7omkWiH9JmtLWSA8lTUFVseIyzqbjqJEEx7qN+Hg6jbBdDvelqtakamppaJtGORQ64hEJ5S6ojSg=="
+ "version": "5.80.10",
+ "resolved": "https://registry.npmjs.org/@tanstack/query-core/-/query-core-5.80.10.tgz",
+ "integrity": "sha512-mUNQOtzxkjL6jLbyChZoSBP6A5gQDVRUiPvW+/zw/9ftOAz+H754zCj3D8PwnzPKyHzGkQ9JbH48ukhym9LK1Q=="
},
"@tanstack/query-devtools": {
"version": "5.80.0",
@@ -28449,17 +28449,17 @@
"integrity": "sha512-D6gH4asyjaoXrCOt5vG5Og/YSj0D/TxwNQgtLJIgWbhbWCC/emu2E92EFoVHh4ppVWg1qT2gKHvKyQBEFZhCuA=="
},
"@tanstack/react-query": {
- "version": "5.80.2",
- "resolved": "https://registry.npmjs.org/@tanstack/react-query/-/react-query-5.80.2.tgz",
- "integrity": "sha512-LfA0SVheJBOqC8RfJw/JbOW3yh2zuONQeWU5Prjm7yjUGUONeOedky1Bj39Cfj8MRdXrZV+DxNT7/DN/M907lQ==",
+ "version": "5.80.10",
+ "resolved": "https://registry.npmjs.org/@tanstack/react-query/-/react-query-5.80.10.tgz",
+ "integrity": "sha512-6zM098J8sLy9oU60XAdzUlAH4wVzoMVsWUWiiE/Iz4fd67PplxeyL4sw/MPcVJJVhbwGGXCsHn9GrQt2mlAzig==",
"requires": {
- "@tanstack/query-core": "5.80.2"
+ "@tanstack/query-core": "5.80.10"
}
},
"@tanstack/react-query-devtools": {
- "version": "5.80.2",
- "resolved": "https://registry.npmjs.org/@tanstack/react-query-devtools/-/react-query-devtools-5.80.2.tgz",
- "integrity": "sha512-nGeCXBkSoYHKkQQO6pBr+DE8ML/EGd79MvFCkBPRcAA8u65OMNOJPXB0sg2AGgXX2+enTEQLHWZwjzukNB9gIA==",
+ "version": "5.80.10",
+ "resolved": "https://registry.npmjs.org/@tanstack/react-query-devtools/-/react-query-devtools-5.80.10.tgz",
+ "integrity": "sha512-6JL63fSc7kxyGOLV2w466SxhMn/m7LZk/ximQciy6OpVt+n2A8Mq3S0QwhIzfm4WEwLK/F3OELfzRToQburnYA==",
"requires": {
"@tanstack/query-devtools": "5.80.0"
}
diff --git a/package.json b/package.json
index 81add10d8..63480243b 100644
--- a/package.json
+++ b/package.json
@@ -90,8 +90,8 @@
"@mui/material": "6.4.12",
"@mui/x-date-pickers": "7.29.4",
"@react-hook/resize-observer": "2.0.2",
- "@tanstack/react-query": "5.80.2",
- "@tanstack/react-query-devtools": "5.80.2",
+ "@tanstack/react-query": "5.80.10",
+ "@tanstack/react-query-devtools": "5.80.10",
"abortcontroller-polyfill": "1.7.8",
"blurhash": "2.0.5",
"classlist.js": "https://github.com/eligrey/classList.js/archive/1.2.20180112.tar.gz",
From e425c8d89fc594f32b8c47fe969fb517fcaf1dcd Mon Sep 17 00:00:00 2001
From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com>
Date: Thu, 26 Jun 2025 15:15:08 +0000
Subject: [PATCH 527/645] Update Linters
---
package-lock.json | 837 ++++++++++++++++++++++++++--------------------
package.json | 14 +-
2 files changed, 474 insertions(+), 377 deletions(-)
diff --git a/package-lock.json b/package-lock.json
index f733b5449..39c76d012 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -73,8 +73,8 @@
"@babel/preset-env": "7.27.2",
"@babel/preset-react": "7.27.1",
"@eslint-community/eslint-plugin-eslint-comments": "4.5.0",
- "@eslint/js": "9.28.0",
- "@stylistic/eslint-plugin": "4.4.0",
+ "@eslint/js": "9.29.0",
+ "@stylistic/eslint-plugin": "4.4.1",
"@stylistic/stylelint-plugin": "3.1.2",
"@types/dompurify": "3.0.5",
"@types/escape-html": "1.0.4",
@@ -85,7 +85,7 @@
"@types/react-dom": "18.3.7",
"@types/react-lazy-load-image-component": "1.6.4",
"@types/sortablejs": "1.15.8",
- "@typescript-eslint/parser": "8.33.1",
+ "@typescript-eslint/parser": "8.34.1",
"@uupaa/dynamic-import-polyfill": "1.0.2",
"@vitest/coverage-v8": "3.2.1",
"autoprefixer": "10.4.21",
@@ -97,13 +97,13 @@
"css-loader": "7.1.2",
"cssnano": "7.0.7",
"es-check": "9.1.2",
- "eslint": "9.28.0",
+ "eslint": "9.29.0",
"eslint-plugin-compat": "6.0.2",
"eslint-plugin-import": "2.31.0",
"eslint-plugin-jsx-a11y": "6.10.2",
"eslint-plugin-react": "7.37.5",
"eslint-plugin-react-hooks": "5.2.0",
- "eslint-plugin-sonarjs": "3.0.2",
+ "eslint-plugin-sonarjs": "3.0.3",
"expose-loader": "5.0.1",
"fast-glob": "3.3.3",
"fork-ts-checker-webpack-plugin": "9.1.0",
@@ -121,11 +121,11 @@
"source-map-loader": "5.0.0",
"speed-measure-webpack-plugin": "1.5.0",
"style-loader": "4.0.0",
- "stylelint": "16.20.0",
+ "stylelint": "16.21.0",
"stylelint-config-rational-order": "0.1.2",
"stylelint-no-browser-hacks": "2.0.0",
"stylelint-order": "7.0.0",
- "stylelint-scss": "6.12.0",
+ "stylelint-scss": "6.12.1",
"ts-loader": "9.5.2",
"typescript": "5.8.3",
"typescript-eslint": "8.33.1",
@@ -3746,9 +3746,9 @@
}
},
"node_modules/@eslint/config-array": {
- "version": "0.20.0",
- "resolved": "https://registry.npmjs.org/@eslint/config-array/-/config-array-0.20.0.tgz",
- "integrity": "sha512-fxlS1kkIjx8+vy2SjuCB94q3htSNrufYTXubwiBFeaQHbH6Ipi43gFJq2zCMt6PHhImH3Xmr0NksKDvchWlpQQ==",
+ "version": "0.20.1",
+ "resolved": "https://registry.npmjs.org/@eslint/config-array/-/config-array-0.20.1.tgz",
+ "integrity": "sha512-OL0RJzC/CBzli0DrrR31qzj6d6i6Mm3HByuhflhl4LOBiWxN+3i6/t/ZQQNii4tjksXi8r2CRW1wMpWA2ULUEw==",
"dev": true,
"license": "Apache-2.0",
"dependencies": {
@@ -3886,9 +3886,9 @@
}
},
"node_modules/@eslint/js": {
- "version": "9.28.0",
- "resolved": "https://registry.npmjs.org/@eslint/js/-/js-9.28.0.tgz",
- "integrity": "sha512-fnqSjGWd/CoIp4EXIxWVK/sHA6DOHN4+8Ix2cX5ycOY7LG0UY8nHCU5pIp2eaE1Mc7Qd8kHspYNzYXT2ojPLzg==",
+ "version": "9.29.0",
+ "resolved": "https://registry.npmjs.org/@eslint/js/-/js-9.29.0.tgz",
+ "integrity": "sha512-3PIF4cBw/y+1u2EazflInpV+lYsSG0aByVIQzAgb1m1MhHFSbqTyNqtBKHgWf/9Ykud+DhILS9EGkmekVhbKoQ==",
"dev": true,
"license": "MIT",
"engines": {
@@ -5383,9 +5383,9 @@
"license": "MIT"
},
"node_modules/@stylistic/eslint-plugin": {
- "version": "4.4.0",
- "resolved": "https://registry.npmjs.org/@stylistic/eslint-plugin/-/eslint-plugin-4.4.0.tgz",
- "integrity": "sha512-bIh/d9X+OQLCAMdhHtps+frvyjvAM4B1YlSJzcEEhl7wXLIqPar3ngn9DrHhkBOrTA/z9J0bUMtctAspe0dxdQ==",
+ "version": "4.4.1",
+ "resolved": "https://registry.npmjs.org/@stylistic/eslint-plugin/-/eslint-plugin-4.4.1.tgz",
+ "integrity": "sha512-CEigAk7eOLyHvdgmpZsKFwtiqS2wFwI1fn4j09IU9GmD4euFM4jEBAViWeCqaNLlbX2k2+A/Fq9cje4HQBXuJQ==",
"dev": true,
"license": "MIT",
"dependencies": {
@@ -5402,119 +5402,6 @@
"eslint": ">=9.0.0"
}
},
- "node_modules/@stylistic/eslint-plugin/node_modules/@typescript-eslint/scope-manager": {
- "version": "8.34.0",
- "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-8.34.0.tgz",
- "integrity": "sha512-9Ac0X8WiLykl0aj1oYQNcLZjHgBojT6cW68yAgZ19letYu+Hxd0rE0veI1XznSSst1X5lwnxhPbVdwjDRIomRw==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "@typescript-eslint/types": "8.34.0",
- "@typescript-eslint/visitor-keys": "8.34.0"
- },
- "engines": {
- "node": "^18.18.0 || ^20.9.0 || >=21.1.0"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/typescript-eslint"
- }
- },
- "node_modules/@stylistic/eslint-plugin/node_modules/@typescript-eslint/types": {
- "version": "8.34.0",
- "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-8.34.0.tgz",
- "integrity": "sha512-9V24k/paICYPniajHfJ4cuAWETnt7Ssy+R0Rbcqo5sSFr3QEZ/8TSoUi9XeXVBGXCaLtwTOKSLGcInCAvyZeMA==",
- "dev": true,
- "license": "MIT",
- "engines": {
- "node": "^18.18.0 || ^20.9.0 || >=21.1.0"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/typescript-eslint"
- }
- },
- "node_modules/@stylistic/eslint-plugin/node_modules/@typescript-eslint/typescript-estree": {
- "version": "8.34.0",
- "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-8.34.0.tgz",
- "integrity": "sha512-rOi4KZxI7E0+BMqG7emPSK1bB4RICCpF7QD3KCLXn9ZvWoESsOMlHyZPAHyG04ujVplPaHbmEvs34m+wjgtVtg==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "@typescript-eslint/project-service": "8.34.0",
- "@typescript-eslint/tsconfig-utils": "8.34.0",
- "@typescript-eslint/types": "8.34.0",
- "@typescript-eslint/visitor-keys": "8.34.0",
- "debug": "^4.3.4",
- "fast-glob": "^3.3.2",
- "is-glob": "^4.0.3",
- "minimatch": "^9.0.4",
- "semver": "^7.6.0",
- "ts-api-utils": "^2.1.0"
- },
- "engines": {
- "node": "^18.18.0 || ^20.9.0 || >=21.1.0"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/typescript-eslint"
- },
- "peerDependencies": {
- "typescript": ">=4.8.4 <5.9.0"
- }
- },
- "node_modules/@stylistic/eslint-plugin/node_modules/@typescript-eslint/utils": {
- "version": "8.34.0",
- "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-8.34.0.tgz",
- "integrity": "sha512-8L4tWatGchV9A1cKbjaavS6mwYwp39jql8xUmIIKJdm+qiaeHy5KMKlBrf30akXAWBzn2SqKsNOtSENWUwg7XQ==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "@eslint-community/eslint-utils": "^4.7.0",
- "@typescript-eslint/scope-manager": "8.34.0",
- "@typescript-eslint/types": "8.34.0",
- "@typescript-eslint/typescript-estree": "8.34.0"
- },
- "engines": {
- "node": "^18.18.0 || ^20.9.0 || >=21.1.0"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/typescript-eslint"
- },
- "peerDependencies": {
- "eslint": "^8.57.0 || ^9.0.0",
- "typescript": ">=4.8.4 <5.9.0"
- }
- },
- "node_modules/@stylistic/eslint-plugin/node_modules/@typescript-eslint/visitor-keys": {
- "version": "8.34.0",
- "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-8.34.0.tgz",
- "integrity": "sha512-qHV7pW7E85A0x6qyrFn+O+q1k1p3tQCsqIZ1KZ5ESLXY57aTvUd3/a4rdPTeXisvhXn2VQG0VSKUqs8KHF2zcA==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "@typescript-eslint/types": "8.34.0",
- "eslint-visitor-keys": "^4.2.0"
- },
- "engines": {
- "node": "^18.18.0 || ^20.9.0 || >=21.1.0"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/typescript-eslint"
- }
- },
- "node_modules/@stylistic/eslint-plugin/node_modules/brace-expansion": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz",
- "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "balanced-match": "^1.0.0"
- }
- },
"node_modules/@stylistic/eslint-plugin/node_modules/eslint-visitor-keys": {
"version": "4.2.1",
"resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-4.2.1.tgz",
@@ -5538,22 +5425,6 @@
"node": ">=4.0"
}
},
- "node_modules/@stylistic/eslint-plugin/node_modules/minimatch": {
- "version": "9.0.5",
- "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.5.tgz",
- "integrity": "sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==",
- "dev": true,
- "license": "ISC",
- "dependencies": {
- "brace-expansion": "^2.0.1"
- },
- "engines": {
- "node": ">=16 || 14 >=14.17"
- },
- "funding": {
- "url": "https://github.com/sponsors/isaacs"
- }
- },
"node_modules/@stylistic/eslint-plugin/node_modules/picomatch": {
"version": "4.0.2",
"resolved": "https://registry.npmjs.org/picomatch/-/picomatch-4.0.2.tgz",
@@ -5567,19 +5438,6 @@
"url": "https://github.com/sponsors/jonschlinkert"
}
},
- "node_modules/@stylistic/eslint-plugin/node_modules/semver": {
- "version": "7.7.2",
- "resolved": "https://registry.npmjs.org/semver/-/semver-7.7.2.tgz",
- "integrity": "sha512-RF0Fw+rO5AMf9MAyaRXI4AV0Ulj5lMHqVxxdSgiVbixSCXoEmmX/jk0CuJw4+3SqroYO9VoUh+HcuJivvtJemA==",
- "dev": true,
- "license": "ISC",
- "bin": {
- "semver": "bin/semver.js"
- },
- "engines": {
- "node": ">=10"
- }
- },
"node_modules/@stylistic/stylelint-plugin": {
"version": "3.1.2",
"resolved": "https://registry.npmjs.org/@stylistic/stylelint-plugin/-/stylelint-plugin-3.1.2.tgz",
@@ -6224,16 +6082,16 @@
}
},
"node_modules/@typescript-eslint/parser": {
- "version": "8.33.1",
- "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-8.33.1.tgz",
- "integrity": "sha512-qwxv6dq682yVvgKKp2qWwLgRbscDAYktPptK4JPojCwwi3R9cwrvIxS4lvBpzmcqzR4bdn54Z0IG1uHFskW4dA==",
+ "version": "8.34.1",
+ "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-8.34.1.tgz",
+ "integrity": "sha512-4O3idHxhyzjClSMJ0a29AcoK0+YwnEqzI6oz3vlRf3xw0zbzt15MzXwItOlnr5nIth6zlY2RENLsOPvhyrKAQA==",
"dev": true,
"license": "MIT",
"dependencies": {
- "@typescript-eslint/scope-manager": "8.33.1",
- "@typescript-eslint/types": "8.33.1",
- "@typescript-eslint/typescript-estree": "8.33.1",
- "@typescript-eslint/visitor-keys": "8.33.1",
+ "@typescript-eslint/scope-manager": "8.34.1",
+ "@typescript-eslint/types": "8.34.1",
+ "@typescript-eslint/typescript-estree": "8.34.1",
+ "@typescript-eslint/visitor-keys": "8.34.1",
"debug": "^4.3.4"
},
"engines": {
@@ -6248,15 +6106,146 @@
"typescript": ">=4.8.4 <5.9.0"
}
},
- "node_modules/@typescript-eslint/project-service": {
- "version": "8.34.0",
- "resolved": "https://registry.npmjs.org/@typescript-eslint/project-service/-/project-service-8.34.0.tgz",
- "integrity": "sha512-iEgDALRf970/B2YExmtPMPF54NenZUf4xpL3wsCRx/lgjz6ul/l13R81ozP/ZNuXfnLCS+oPmG7JIxfdNYKELw==",
+ "node_modules/@typescript-eslint/parser/node_modules/@typescript-eslint/scope-manager": {
+ "version": "8.34.1",
+ "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-8.34.1.tgz",
+ "integrity": "sha512-beu6o6QY4hJAgL1E8RaXNC071G4Kso2MGmJskCFQhRhg8VOH/FDbC8soP8NHN7e/Hdphwp8G8cE6OBzC8o41ZA==",
"dev": true,
"license": "MIT",
"dependencies": {
- "@typescript-eslint/tsconfig-utils": "^8.34.0",
- "@typescript-eslint/types": "^8.34.0",
+ "@typescript-eslint/types": "8.34.1",
+ "@typescript-eslint/visitor-keys": "8.34.1"
+ },
+ "engines": {
+ "node": "^18.18.0 || ^20.9.0 || >=21.1.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/typescript-eslint"
+ }
+ },
+ "node_modules/@typescript-eslint/parser/node_modules/@typescript-eslint/types": {
+ "version": "8.34.1",
+ "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-8.34.1.tgz",
+ "integrity": "sha512-rjLVbmE7HR18kDsjNIZQHxmv9RZwlgzavryL5Lnj2ujIRTeXlKtILHgRNmQ3j4daw7zd+mQgy+uyt6Zo6I0IGA==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": "^18.18.0 || ^20.9.0 || >=21.1.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/typescript-eslint"
+ }
+ },
+ "node_modules/@typescript-eslint/parser/node_modules/@typescript-eslint/typescript-estree": {
+ "version": "8.34.1",
+ "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-8.34.1.tgz",
+ "integrity": "sha512-rjCNqqYPuMUF5ODD+hWBNmOitjBWghkGKJg6hiCHzUvXRy6rK22Jd3rwbP2Xi+R7oYVvIKhokHVhH41BxPV5mA==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@typescript-eslint/project-service": "8.34.1",
+ "@typescript-eslint/tsconfig-utils": "8.34.1",
+ "@typescript-eslint/types": "8.34.1",
+ "@typescript-eslint/visitor-keys": "8.34.1",
+ "debug": "^4.3.4",
+ "fast-glob": "^3.3.2",
+ "is-glob": "^4.0.3",
+ "minimatch": "^9.0.4",
+ "semver": "^7.6.0",
+ "ts-api-utils": "^2.1.0"
+ },
+ "engines": {
+ "node": "^18.18.0 || ^20.9.0 || >=21.1.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/typescript-eslint"
+ },
+ "peerDependencies": {
+ "typescript": ">=4.8.4 <5.9.0"
+ }
+ },
+ "node_modules/@typescript-eslint/parser/node_modules/@typescript-eslint/visitor-keys": {
+ "version": "8.34.1",
+ "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-8.34.1.tgz",
+ "integrity": "sha512-xoh5rJ+tgsRKoXnkBPFRLZ7rjKM0AfVbC68UZ/ECXoDbfggb9RbEySN359acY1vS3qZ0jVTVWzbtfapwm5ztxw==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@typescript-eslint/types": "8.34.1",
+ "eslint-visitor-keys": "^4.2.1"
+ },
+ "engines": {
+ "node": "^18.18.0 || ^20.9.0 || >=21.1.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/typescript-eslint"
+ }
+ },
+ "node_modules/@typescript-eslint/parser/node_modules/brace-expansion": {
+ "version": "2.0.2",
+ "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.2.tgz",
+ "integrity": "sha512-Jt0vHyM+jmUBqojB7E1NIYadt0vI0Qxjxd2TErW94wDz+E2LAm5vKMXXwg6ZZBTHPuUlDgQHKXvjGBdfcF1ZDQ==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "balanced-match": "^1.0.0"
+ }
+ },
+ "node_modules/@typescript-eslint/parser/node_modules/eslint-visitor-keys": {
+ "version": "4.2.1",
+ "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-4.2.1.tgz",
+ "integrity": "sha512-Uhdk5sfqcee/9H/rCOJikYz67o0a2Tw2hGRPOG2Y1R2dg7brRe1uG0yaNQDHu+TO/uQPF/5eCapvYSmHUjt7JQ==",
+ "dev": true,
+ "license": "Apache-2.0",
+ "engines": {
+ "node": "^18.18.0 || ^20.9.0 || >=21.1.0"
+ },
+ "funding": {
+ "url": "https://opencollective.com/eslint"
+ }
+ },
+ "node_modules/@typescript-eslint/parser/node_modules/minimatch": {
+ "version": "9.0.5",
+ "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.5.tgz",
+ "integrity": "sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==",
+ "dev": true,
+ "license": "ISC",
+ "dependencies": {
+ "brace-expansion": "^2.0.1"
+ },
+ "engines": {
+ "node": ">=16 || 14 >=14.17"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/isaacs"
+ }
+ },
+ "node_modules/@typescript-eslint/parser/node_modules/semver": {
+ "version": "7.7.2",
+ "resolved": "https://registry.npmjs.org/semver/-/semver-7.7.2.tgz",
+ "integrity": "sha512-RF0Fw+rO5AMf9MAyaRXI4AV0Ulj5lMHqVxxdSgiVbixSCXoEmmX/jk0CuJw4+3SqroYO9VoUh+HcuJivvtJemA==",
+ "dev": true,
+ "license": "ISC",
+ "bin": {
+ "semver": "bin/semver.js"
+ },
+ "engines": {
+ "node": ">=10"
+ }
+ },
+ "node_modules/@typescript-eslint/project-service": {
+ "version": "8.34.1",
+ "resolved": "https://registry.npmjs.org/@typescript-eslint/project-service/-/project-service-8.34.1.tgz",
+ "integrity": "sha512-nuHlOmFZfuRwLJKDGQOVc0xnQrAmuq1Mj/ISou5044y1ajGNp2BNliIqp7F2LPQ5sForz8lempMFCovfeS1XoA==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@typescript-eslint/tsconfig-utils": "^8.34.1",
+ "@typescript-eslint/types": "^8.34.1",
"debug": "^4.3.4"
},
"engines": {
@@ -6271,9 +6260,9 @@
}
},
"node_modules/@typescript-eslint/project-service/node_modules/@typescript-eslint/types": {
- "version": "8.34.0",
- "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-8.34.0.tgz",
- "integrity": "sha512-9V24k/paICYPniajHfJ4cuAWETnt7Ssy+R0Rbcqo5sSFr3QEZ/8TSoUi9XeXVBGXCaLtwTOKSLGcInCAvyZeMA==",
+ "version": "8.35.0",
+ "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-8.35.0.tgz",
+ "integrity": "sha512-0mYH3emanku0vHw2aRLNGqe7EXh9WHEhi7kZzscrMDf6IIRUQ5Jk4wp1QrledE/36KtdZrVfKnE32eZCf/vaVQ==",
"dev": true,
"license": "MIT",
"engines": {
@@ -6303,9 +6292,9 @@
}
},
"node_modules/@typescript-eslint/tsconfig-utils": {
- "version": "8.34.0",
- "resolved": "https://registry.npmjs.org/@typescript-eslint/tsconfig-utils/-/tsconfig-utils-8.34.0.tgz",
- "integrity": "sha512-+W9VYHKFIzA5cBeooqQxqNriAP0QeQ7xTiDuIOr71hzgffm3EL2hxwWBIIj4GuofIbKxGNarpKqIq6Q6YrShOA==",
+ "version": "8.34.1",
+ "resolved": "https://registry.npmjs.org/@typescript-eslint/tsconfig-utils/-/tsconfig-utils-8.34.1.tgz",
+ "integrity": "sha512-K4Sjdo4/xF9NEeA2khOb7Y5nY6NSXBnod87uniVYW9kHP+hNlDV8trUSFeynA2uxWam4gIWgWoygPrv9VMWrYg==",
"dev": true,
"license": "MIT",
"engines": {
@@ -10497,19 +10486,19 @@
}
},
"node_modules/eslint": {
- "version": "9.28.0",
- "resolved": "https://registry.npmjs.org/eslint/-/eslint-9.28.0.tgz",
- "integrity": "sha512-ocgh41VhRlf9+fVpe7QKzwLj9c92fDiqOj8Y3Sd4/ZmVA4Btx4PlUYPq4pp9JDyupkf1upbEXecxL2mwNV7jPQ==",
+ "version": "9.29.0",
+ "resolved": "https://registry.npmjs.org/eslint/-/eslint-9.29.0.tgz",
+ "integrity": "sha512-GsGizj2Y1rCWDu6XoEekL3RLilp0voSePurjZIkxL3wlm5o5EC9VpgaP7lrCvjnkuLvzFBQWB3vWB3K5KQTveQ==",
"dev": true,
"license": "MIT",
"dependencies": {
"@eslint-community/eslint-utils": "^4.2.0",
"@eslint-community/regexpp": "^4.12.1",
- "@eslint/config-array": "^0.20.0",
+ "@eslint/config-array": "^0.20.1",
"@eslint/config-helpers": "^0.2.1",
"@eslint/core": "^0.14.0",
"@eslint/eslintrc": "^3.3.1",
- "@eslint/js": "9.28.0",
+ "@eslint/js": "9.29.0",
"@eslint/plugin-kit": "^0.3.1",
"@humanfs/node": "^0.16.6",
"@humanwhocodes/module-importer": "^1.0.1",
@@ -10521,9 +10510,9 @@
"cross-spawn": "^7.0.6",
"debug": "^4.3.2",
"escape-string-regexp": "^4.0.0",
- "eslint-scope": "^8.3.0",
- "eslint-visitor-keys": "^4.2.0",
- "espree": "^10.3.0",
+ "eslint-scope": "^8.4.0",
+ "eslint-visitor-keys": "^4.2.1",
+ "espree": "^10.4.0",
"esquery": "^1.5.0",
"esutils": "^2.0.2",
"fast-deep-equal": "^3.1.3",
@@ -10890,9 +10879,9 @@
}
},
"node_modules/eslint-plugin-sonarjs": {
- "version": "3.0.2",
- "resolved": "https://registry.npmjs.org/eslint-plugin-sonarjs/-/eslint-plugin-sonarjs-3.0.2.tgz",
- "integrity": "sha512-LxjbfwI7ypENeTmGyKmDyNux3COSkMi7H/6Cal5StSLQ6edf0naP45SZR43OclaNR7WfhVTZdhOn63q3/Y6puQ==",
+ "version": "3.0.3",
+ "resolved": "https://registry.npmjs.org/eslint-plugin-sonarjs/-/eslint-plugin-sonarjs-3.0.3.tgz",
+ "integrity": "sha512-/UrTz8wyTW0MQVJKUF70vSjsMMf54+0cKHWAuYObuE82vNM8zrscm0wvZprolHNN0PIdnvVQ9Dm6MQkIzOKu4A==",
"dev": true,
"license": "LGPL-3.0-only",
"dependencies": {
@@ -10903,17 +10892,17 @@
"jsx-ast-utils": "3.3.5",
"minimatch": "9.0.5",
"scslre": "0.3.0",
- "semver": "7.7.1",
- "typescript": "^5"
+ "semver": "7.7.2",
+ "typescript": ">=5"
},
"peerDependencies": {
"eslint": "^8.0.0 || ^9.0.0"
}
},
"node_modules/eslint-plugin-sonarjs/node_modules/brace-expansion": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz",
- "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==",
+ "version": "2.0.2",
+ "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.2.tgz",
+ "integrity": "sha512-Jt0vHyM+jmUBqojB7E1NIYadt0vI0Qxjxd2TErW94wDz+E2LAm5vKMXXwg6ZZBTHPuUlDgQHKXvjGBdfcF1ZDQ==",
"dev": true,
"license": "MIT",
"dependencies": {
@@ -10947,9 +10936,9 @@
}
},
"node_modules/eslint-plugin-sonarjs/node_modules/semver": {
- "version": "7.7.1",
- "resolved": "https://registry.npmjs.org/semver/-/semver-7.7.1.tgz",
- "integrity": "sha512-hlq8tAfn0m/61p4BVRcPzIGr6LKiMwo4VM6dGi6pt4qcRkmNzTcWq6eCEjEh+qXjkMDvPlOFFSGwQjoEa6gyMA==",
+ "version": "7.7.2",
+ "resolved": "https://registry.npmjs.org/semver/-/semver-7.7.2.tgz",
+ "integrity": "sha512-RF0Fw+rO5AMf9MAyaRXI4AV0Ulj5lMHqVxxdSgiVbixSCXoEmmX/jk0CuJw4+3SqroYO9VoUh+HcuJivvtJemA==",
"dev": true,
"license": "ISC",
"bin": {
@@ -11216,15 +11205,15 @@
}
},
"node_modules/espree": {
- "version": "10.3.0",
- "resolved": "https://registry.npmjs.org/espree/-/espree-10.3.0.tgz",
- "integrity": "sha512-0QYC8b24HWY8zjRnDTL6RiHfDbAWn63qb4LMj1Z4b076A4une81+z03Kg7l7mn/48PUTqoLptSXez8oknU8Clg==",
+ "version": "10.4.0",
+ "resolved": "https://registry.npmjs.org/espree/-/espree-10.4.0.tgz",
+ "integrity": "sha512-j6PAQ2uUr79PZhBjP5C5fhl8e39FmRnOjsD5lGnWrFU8i2G776tBK7+nP8KuQUTTyAZUwfQqXAgrVH5MbH9CYQ==",
"dev": true,
"license": "BSD-2-Clause",
"dependencies": {
- "acorn": "^8.14.0",
+ "acorn": "^8.15.0",
"acorn-jsx": "^5.3.2",
- "eslint-visitor-keys": "^4.2.0"
+ "eslint-visitor-keys": "^4.2.1"
},
"engines": {
"node": "^18.18.0 || ^20.9.0 || >=21.1.0"
@@ -11233,10 +11222,23 @@
"url": "https://opencollective.com/eslint"
}
},
+ "node_modules/espree/node_modules/acorn": {
+ "version": "8.15.0",
+ "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.15.0.tgz",
+ "integrity": "sha512-NZyJarBfL7nWwIq+FDL6Zp/yHEhePMNnnJ0y3qfieCrmNvYct8uvtiV41UvlSe6apAfk0fY1FbWx+NwfmpvtTg==",
+ "dev": true,
+ "license": "MIT",
+ "bin": {
+ "acorn": "bin/acorn"
+ },
+ "engines": {
+ "node": ">=0.4.0"
+ }
+ },
"node_modules/espree/node_modules/eslint-visitor-keys": {
- "version": "4.2.0",
- "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-4.2.0.tgz",
- "integrity": "sha512-UyLnSehNt62FFhSwjZlHmeokpRK59rcz29j+F1/aDgbkbRTk7wIc9XzdoasMUbRNKDM0qQt/+BJ4BrpFeABemw==",
+ "version": "4.2.1",
+ "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-4.2.1.tgz",
+ "integrity": "sha512-Uhdk5sfqcee/9H/rCOJikYz67o0a2Tw2hGRPOG2Y1R2dg7brRe1uG0yaNQDHu+TO/uQPF/5eCapvYSmHUjt7JQ==",
"dev": true,
"license": "Apache-2.0",
"engines": {
@@ -21304,9 +21306,9 @@
}
},
"node_modules/stylelint": {
- "version": "16.20.0",
- "resolved": "https://registry.npmjs.org/stylelint/-/stylelint-16.20.0.tgz",
- "integrity": "sha512-B5Myu9WRxrgKuLs3YyUXLP2H0mrbejwNxPmyADlACWwFsrL8Bmor/nTSh4OMae5sHjOz6gkSeccQH34gM4/nAw==",
+ "version": "16.21.0",
+ "resolved": "https://registry.npmjs.org/stylelint/-/stylelint-16.21.0.tgz",
+ "integrity": "sha512-ki3PpJGG7xhm3WtINoWGnlvqAmbqSexoRMbEMJzlwewSIOqPRKPlq452c22xAdEJISVi80r+I7KL9GPUiwFgbg==",
"dev": true,
"funding": [
{
@@ -21320,9 +21322,9 @@
],
"license": "MIT",
"dependencies": {
- "@csstools/css-parser-algorithms": "^3.0.4",
- "@csstools/css-tokenizer": "^3.0.3",
- "@csstools/media-query-list-parser": "^4.0.2",
+ "@csstools/css-parser-algorithms": "^3.0.5",
+ "@csstools/css-tokenizer": "^3.0.4",
+ "@csstools/media-query-list-parser": "^4.0.3",
"@csstools/selector-specificity": "^5.0.0",
"@dual-bundle/import-meta-resolve": "^4.1.0",
"balanced-match": "^2.0.0",
@@ -21333,21 +21335,21 @@
"debug": "^4.4.1",
"fast-glob": "^3.3.3",
"fastest-levenshtein": "^1.0.16",
- "file-entry-cache": "^10.1.0",
+ "file-entry-cache": "^10.1.1",
"global-modules": "^2.0.0",
"globby": "^11.1.0",
"globjoin": "^0.1.4",
"html-tags": "^3.3.1",
- "ignore": "^7.0.4",
+ "ignore": "^7.0.5",
"imurmurhash": "^0.1.4",
"is-plain-object": "^5.0.0",
- "known-css-properties": "^0.36.0",
+ "known-css-properties": "^0.37.0",
"mathml-tag-names": "^2.1.3",
"meow": "^13.2.0",
"micromatch": "^4.0.8",
"normalize-path": "^3.0.0",
"picocolors": "^1.1.1",
- "postcss": "^8.5.3",
+ "postcss": "^8.5.5",
"postcss-resolve-nested-selector": "^0.1.6",
"postcss-safe-parser": "^7.0.1",
"postcss-selector-parser": "^7.1.0",
@@ -22367,9 +22369,9 @@
}
},
"node_modules/stylelint-scss": {
- "version": "6.12.0",
- "resolved": "https://registry.npmjs.org/stylelint-scss/-/stylelint-scss-6.12.0.tgz",
- "integrity": "sha512-U7CKhi1YNkM1pXUXl/GMUXi8xKdhl4Ayxdyceie1nZ1XNIdaUgMV6OArpooWcDzEggwgYD0HP/xIgVJo9a655w==",
+ "version": "6.12.1",
+ "resolved": "https://registry.npmjs.org/stylelint-scss/-/stylelint-scss-6.12.1.tgz",
+ "integrity": "sha512-UJUfBFIvXfly8WKIgmqfmkGKPilKB4L5j38JfsDd+OCg2GBdU0vGUV08Uw82tsRZzd4TbsUURVVNGeOhJVF7pA==",
"dev": true,
"license": "MIT",
"dependencies": {
@@ -22421,9 +22423,9 @@
}
},
"node_modules/stylelint-scss/node_modules/mdn-data": {
- "version": "2.21.0",
- "resolved": "https://registry.npmjs.org/mdn-data/-/mdn-data-2.21.0.tgz",
- "integrity": "sha512-+ZKPQezM5vYJIkCxaC+4DTnRrVZR1CgsKLu5zsQERQx6Tea8Y+wMx5A24rq8A8NepCeatIQufVAekKNgiBMsGQ==",
+ "version": "2.22.0",
+ "resolved": "https://registry.npmjs.org/mdn-data/-/mdn-data-2.22.0.tgz",
+ "integrity": "sha512-IwcXqjPl4kgZbQH1WLb97/Pjt7XwPDSHnXsjENPhwx68bBf/Dw1/PwM8paXnFq974V1d8qP4o9ViVQqZuPAlCw==",
"dev": true,
"license": "CC0-1.0"
},
@@ -22666,6 +22668,13 @@
"js-yaml": "bin/js-yaml.js"
}
},
+ "node_modules/stylelint/node_modules/known-css-properties": {
+ "version": "0.37.0",
+ "resolved": "https://registry.npmjs.org/known-css-properties/-/known-css-properties-0.37.0.tgz",
+ "integrity": "sha512-JCDrsP4Z1Sb9JwG0aJ8Eo2r7k4Ou5MwmThS/6lcIe1ICyb7UBJKGRIUUdqc2ASdE/42lgz6zFUnzAIhtXnBVrQ==",
+ "dev": true,
+ "license": "MIT"
+ },
"node_modules/stylelint/node_modules/mdn-data": {
"version": "2.12.2",
"resolved": "https://registry.npmjs.org/mdn-data/-/mdn-data-2.12.2.tgz",
@@ -22692,6 +22701,35 @@
"url": "https://github.com/sponsors/sindresorhus"
}
},
+ "node_modules/stylelint/node_modules/postcss": {
+ "version": "8.5.6",
+ "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.5.6.tgz",
+ "integrity": "sha512-3Ybi1tAuwAP9s0r1UQ2J4n5Y0G05bJkpUIO0/bI9MhwmD70S5aTWbXGBwxHrelT+XM1k6dM0pk+SwNkpTRN7Pg==",
+ "dev": true,
+ "funding": [
+ {
+ "type": "opencollective",
+ "url": "https://opencollective.com/postcss/"
+ },
+ {
+ "type": "tidelift",
+ "url": "https://tidelift.com/funding/github/npm/postcss"
+ },
+ {
+ "type": "github",
+ "url": "https://github.com/sponsors/ai"
+ }
+ ],
+ "license": "MIT",
+ "dependencies": {
+ "nanoid": "^3.3.11",
+ "picocolors": "^1.1.1",
+ "source-map-js": "^1.2.1"
+ },
+ "engines": {
+ "node": "^10 || ^12 || >=14"
+ }
+ },
"node_modules/stylelint/node_modules/postcss-safe-parser": {
"version": "7.0.1",
"resolved": "https://registry.npmjs.org/postcss-safe-parser/-/postcss-safe-parser-7.0.1.tgz",
@@ -23918,6 +23956,31 @@
"typescript": ">=4.8.4 <5.9.0"
}
},
+ "node_modules/typescript-eslint/node_modules/@typescript-eslint/parser": {
+ "version": "8.33.1",
+ "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-8.33.1.tgz",
+ "integrity": "sha512-qwxv6dq682yVvgKKp2qWwLgRbscDAYktPptK4JPojCwwi3R9cwrvIxS4lvBpzmcqzR4bdn54Z0IG1uHFskW4dA==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@typescript-eslint/scope-manager": "8.33.1",
+ "@typescript-eslint/types": "8.33.1",
+ "@typescript-eslint/typescript-estree": "8.33.1",
+ "@typescript-eslint/visitor-keys": "8.33.1",
+ "debug": "^4.3.4"
+ },
+ "engines": {
+ "node": "^18.18.0 || ^20.9.0 || >=21.1.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/typescript-eslint"
+ },
+ "peerDependencies": {
+ "eslint": "^8.57.0 || ^9.0.0",
+ "typescript": ">=4.8.4 <5.9.0"
+ }
+ },
"node_modules/uc.micro": {
"version": "2.1.0",
"resolved": "https://registry.npmjs.org/uc.micro/-/uc.micro-2.1.0.tgz",
@@ -27422,9 +27485,9 @@
"dev": true
},
"@eslint/config-array": {
- "version": "0.20.0",
- "resolved": "https://registry.npmjs.org/@eslint/config-array/-/config-array-0.20.0.tgz",
- "integrity": "sha512-fxlS1kkIjx8+vy2SjuCB94q3htSNrufYTXubwiBFeaQHbH6Ipi43gFJq2zCMt6PHhImH3Xmr0NksKDvchWlpQQ==",
+ "version": "0.20.1",
+ "resolved": "https://registry.npmjs.org/@eslint/config-array/-/config-array-0.20.1.tgz",
+ "integrity": "sha512-OL0RJzC/CBzli0DrrR31qzj6d6i6Mm3HByuhflhl4LOBiWxN+3i6/t/ZQQNii4tjksXi8r2CRW1wMpWA2ULUEw==",
"dev": true,
"requires": {
"@eslint/object-schema": "^2.1.6",
@@ -27522,9 +27585,9 @@
}
},
"@eslint/js": {
- "version": "9.28.0",
- "resolved": "https://registry.npmjs.org/@eslint/js/-/js-9.28.0.tgz",
- "integrity": "sha512-fnqSjGWd/CoIp4EXIxWVK/sHA6DOHN4+8Ix2cX5ycOY7LG0UY8nHCU5pIp2eaE1Mc7Qd8kHspYNzYXT2ojPLzg==",
+ "version": "9.29.0",
+ "resolved": "https://registry.npmjs.org/@eslint/js/-/js-9.29.0.tgz",
+ "integrity": "sha512-3PIF4cBw/y+1u2EazflInpV+lYsSG0aByVIQzAgb1m1MhHFSbqTyNqtBKHgWf/9Ykud+DhILS9EGkmekVhbKoQ==",
"dev": true
},
"@eslint/object-schema": {
@@ -28294,9 +28357,9 @@
"dev": true
},
"@stylistic/eslint-plugin": {
- "version": "4.4.0",
- "resolved": "https://registry.npmjs.org/@stylistic/eslint-plugin/-/eslint-plugin-4.4.0.tgz",
- "integrity": "sha512-bIh/d9X+OQLCAMdhHtps+frvyjvAM4B1YlSJzcEEhl7wXLIqPar3ngn9DrHhkBOrTA/z9J0bUMtctAspe0dxdQ==",
+ "version": "4.4.1",
+ "resolved": "https://registry.npmjs.org/@stylistic/eslint-plugin/-/eslint-plugin-4.4.1.tgz",
+ "integrity": "sha512-CEigAk7eOLyHvdgmpZsKFwtiqS2wFwI1fn4j09IU9GmD4euFM4jEBAViWeCqaNLlbX2k2+A/Fq9cje4HQBXuJQ==",
"dev": true,
"requires": {
"@typescript-eslint/utils": "^8.32.1",
@@ -28306,71 +28369,6 @@
"picomatch": "^4.0.2"
},
"dependencies": {
- "@typescript-eslint/scope-manager": {
- "version": "8.34.0",
- "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-8.34.0.tgz",
- "integrity": "sha512-9Ac0X8WiLykl0aj1oYQNcLZjHgBojT6cW68yAgZ19letYu+Hxd0rE0veI1XznSSst1X5lwnxhPbVdwjDRIomRw==",
- "dev": true,
- "requires": {
- "@typescript-eslint/types": "8.34.0",
- "@typescript-eslint/visitor-keys": "8.34.0"
- }
- },
- "@typescript-eslint/types": {
- "version": "8.34.0",
- "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-8.34.0.tgz",
- "integrity": "sha512-9V24k/paICYPniajHfJ4cuAWETnt7Ssy+R0Rbcqo5sSFr3QEZ/8TSoUi9XeXVBGXCaLtwTOKSLGcInCAvyZeMA==",
- "dev": true
- },
- "@typescript-eslint/typescript-estree": {
- "version": "8.34.0",
- "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-8.34.0.tgz",
- "integrity": "sha512-rOi4KZxI7E0+BMqG7emPSK1bB4RICCpF7QD3KCLXn9ZvWoESsOMlHyZPAHyG04ujVplPaHbmEvs34m+wjgtVtg==",
- "dev": true,
- "requires": {
- "@typescript-eslint/project-service": "8.34.0",
- "@typescript-eslint/tsconfig-utils": "8.34.0",
- "@typescript-eslint/types": "8.34.0",
- "@typescript-eslint/visitor-keys": "8.34.0",
- "debug": "^4.3.4",
- "fast-glob": "^3.3.2",
- "is-glob": "^4.0.3",
- "minimatch": "^9.0.4",
- "semver": "^7.6.0",
- "ts-api-utils": "^2.1.0"
- }
- },
- "@typescript-eslint/utils": {
- "version": "8.34.0",
- "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-8.34.0.tgz",
- "integrity": "sha512-8L4tWatGchV9A1cKbjaavS6mwYwp39jql8xUmIIKJdm+qiaeHy5KMKlBrf30akXAWBzn2SqKsNOtSENWUwg7XQ==",
- "dev": true,
- "requires": {
- "@eslint-community/eslint-utils": "^4.7.0",
- "@typescript-eslint/scope-manager": "8.34.0",
- "@typescript-eslint/types": "8.34.0",
- "@typescript-eslint/typescript-estree": "8.34.0"
- }
- },
- "@typescript-eslint/visitor-keys": {
- "version": "8.34.0",
- "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-8.34.0.tgz",
- "integrity": "sha512-qHV7pW7E85A0x6qyrFn+O+q1k1p3tQCsqIZ1KZ5ESLXY57aTvUd3/a4rdPTeXisvhXn2VQG0VSKUqs8KHF2zcA==",
- "dev": true,
- "requires": {
- "@typescript-eslint/types": "8.34.0",
- "eslint-visitor-keys": "^4.2.0"
- }
- },
- "brace-expansion": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz",
- "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==",
- "dev": true,
- "requires": {
- "balanced-match": "^1.0.0"
- }
- },
"eslint-visitor-keys": {
"version": "4.2.1",
"resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-4.2.1.tgz",
@@ -28383,26 +28381,11 @@
"integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==",
"dev": true
},
- "minimatch": {
- "version": "9.0.5",
- "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.5.tgz",
- "integrity": "sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==",
- "dev": true,
- "requires": {
- "brace-expansion": "^2.0.1"
- }
- },
"picomatch": {
"version": "4.0.2",
"resolved": "https://registry.npmjs.org/picomatch/-/picomatch-4.0.2.tgz",
"integrity": "sha512-M7BAV6Rlcy5u+m6oPhAPFgJTzAioX/6B0DxyvDlo9l8+T3nLKbrczg2WLUyzd45L8RqfUMyGPzekbMvX2Ldkwg==",
"dev": true
- },
- "semver": {
- "version": "7.7.2",
- "resolved": "https://registry.npmjs.org/semver/-/semver-7.7.2.tgz",
- "integrity": "sha512-RF0Fw+rO5AMf9MAyaRXI4AV0Ulj5lMHqVxxdSgiVbixSCXoEmmX/jk0CuJw4+3SqroYO9VoUh+HcuJivvtJemA==",
- "dev": true
}
}
},
@@ -28919,33 +28902,109 @@
}
},
"@typescript-eslint/parser": {
- "version": "8.33.1",
- "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-8.33.1.tgz",
- "integrity": "sha512-qwxv6dq682yVvgKKp2qWwLgRbscDAYktPptK4JPojCwwi3R9cwrvIxS4lvBpzmcqzR4bdn54Z0IG1uHFskW4dA==",
+ "version": "8.34.1",
+ "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-8.34.1.tgz",
+ "integrity": "sha512-4O3idHxhyzjClSMJ0a29AcoK0+YwnEqzI6oz3vlRf3xw0zbzt15MzXwItOlnr5nIth6zlY2RENLsOPvhyrKAQA==",
"dev": true,
"requires": {
- "@typescript-eslint/scope-manager": "8.33.1",
- "@typescript-eslint/types": "8.33.1",
- "@typescript-eslint/typescript-estree": "8.33.1",
- "@typescript-eslint/visitor-keys": "8.33.1",
+ "@typescript-eslint/scope-manager": "8.34.1",
+ "@typescript-eslint/types": "8.34.1",
+ "@typescript-eslint/typescript-estree": "8.34.1",
+ "@typescript-eslint/visitor-keys": "8.34.1",
"debug": "^4.3.4"
+ },
+ "dependencies": {
+ "@typescript-eslint/scope-manager": {
+ "version": "8.34.1",
+ "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-8.34.1.tgz",
+ "integrity": "sha512-beu6o6QY4hJAgL1E8RaXNC071G4Kso2MGmJskCFQhRhg8VOH/FDbC8soP8NHN7e/Hdphwp8G8cE6OBzC8o41ZA==",
+ "dev": true,
+ "requires": {
+ "@typescript-eslint/types": "8.34.1",
+ "@typescript-eslint/visitor-keys": "8.34.1"
+ }
+ },
+ "@typescript-eslint/types": {
+ "version": "8.34.1",
+ "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-8.34.1.tgz",
+ "integrity": "sha512-rjLVbmE7HR18kDsjNIZQHxmv9RZwlgzavryL5Lnj2ujIRTeXlKtILHgRNmQ3j4daw7zd+mQgy+uyt6Zo6I0IGA==",
+ "dev": true
+ },
+ "@typescript-eslint/typescript-estree": {
+ "version": "8.34.1",
+ "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-8.34.1.tgz",
+ "integrity": "sha512-rjCNqqYPuMUF5ODD+hWBNmOitjBWghkGKJg6hiCHzUvXRy6rK22Jd3rwbP2Xi+R7oYVvIKhokHVhH41BxPV5mA==",
+ "dev": true,
+ "requires": {
+ "@typescript-eslint/project-service": "8.34.1",
+ "@typescript-eslint/tsconfig-utils": "8.34.1",
+ "@typescript-eslint/types": "8.34.1",
+ "@typescript-eslint/visitor-keys": "8.34.1",
+ "debug": "^4.3.4",
+ "fast-glob": "^3.3.2",
+ "is-glob": "^4.0.3",
+ "minimatch": "^9.0.4",
+ "semver": "^7.6.0",
+ "ts-api-utils": "^2.1.0"
+ }
+ },
+ "@typescript-eslint/visitor-keys": {
+ "version": "8.34.1",
+ "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-8.34.1.tgz",
+ "integrity": "sha512-xoh5rJ+tgsRKoXnkBPFRLZ7rjKM0AfVbC68UZ/ECXoDbfggb9RbEySN359acY1vS3qZ0jVTVWzbtfapwm5ztxw==",
+ "dev": true,
+ "requires": {
+ "@typescript-eslint/types": "8.34.1",
+ "eslint-visitor-keys": "^4.2.1"
+ }
+ },
+ "brace-expansion": {
+ "version": "2.0.2",
+ "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.2.tgz",
+ "integrity": "sha512-Jt0vHyM+jmUBqojB7E1NIYadt0vI0Qxjxd2TErW94wDz+E2LAm5vKMXXwg6ZZBTHPuUlDgQHKXvjGBdfcF1ZDQ==",
+ "dev": true,
+ "requires": {
+ "balanced-match": "^1.0.0"
+ }
+ },
+ "eslint-visitor-keys": {
+ "version": "4.2.1",
+ "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-4.2.1.tgz",
+ "integrity": "sha512-Uhdk5sfqcee/9H/rCOJikYz67o0a2Tw2hGRPOG2Y1R2dg7brRe1uG0yaNQDHu+TO/uQPF/5eCapvYSmHUjt7JQ==",
+ "dev": true
+ },
+ "minimatch": {
+ "version": "9.0.5",
+ "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.5.tgz",
+ "integrity": "sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==",
+ "dev": true,
+ "requires": {
+ "brace-expansion": "^2.0.1"
+ }
+ },
+ "semver": {
+ "version": "7.7.2",
+ "resolved": "https://registry.npmjs.org/semver/-/semver-7.7.2.tgz",
+ "integrity": "sha512-RF0Fw+rO5AMf9MAyaRXI4AV0Ulj5lMHqVxxdSgiVbixSCXoEmmX/jk0CuJw4+3SqroYO9VoUh+HcuJivvtJemA==",
+ "dev": true
+ }
}
},
"@typescript-eslint/project-service": {
- "version": "8.34.0",
- "resolved": "https://registry.npmjs.org/@typescript-eslint/project-service/-/project-service-8.34.0.tgz",
- "integrity": "sha512-iEgDALRf970/B2YExmtPMPF54NenZUf4xpL3wsCRx/lgjz6ul/l13R81ozP/ZNuXfnLCS+oPmG7JIxfdNYKELw==",
+ "version": "8.34.1",
+ "resolved": "https://registry.npmjs.org/@typescript-eslint/project-service/-/project-service-8.34.1.tgz",
+ "integrity": "sha512-nuHlOmFZfuRwLJKDGQOVc0xnQrAmuq1Mj/ISou5044y1ajGNp2BNliIqp7F2LPQ5sForz8lempMFCovfeS1XoA==",
"dev": true,
"requires": {
- "@typescript-eslint/tsconfig-utils": "^8.34.0",
- "@typescript-eslint/types": "^8.34.0",
+ "@typescript-eslint/tsconfig-utils": "^8.34.1",
+ "@typescript-eslint/types": "^8.34.1",
"debug": "^4.3.4"
},
"dependencies": {
"@typescript-eslint/types": {
- "version": "8.34.0",
- "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-8.34.0.tgz",
- "integrity": "sha512-9V24k/paICYPniajHfJ4cuAWETnt7Ssy+R0Rbcqo5sSFr3QEZ/8TSoUi9XeXVBGXCaLtwTOKSLGcInCAvyZeMA==",
+ "version": "8.35.0",
+ "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-8.35.0.tgz",
+ "integrity": "sha512-0mYH3emanku0vHw2aRLNGqe7EXh9WHEhi7kZzscrMDf6IIRUQ5Jk4wp1QrledE/36KtdZrVfKnE32eZCf/vaVQ==",
"dev": true
}
}
@@ -28961,9 +29020,9 @@
}
},
"@typescript-eslint/tsconfig-utils": {
- "version": "8.34.0",
- "resolved": "https://registry.npmjs.org/@typescript-eslint/tsconfig-utils/-/tsconfig-utils-8.34.0.tgz",
- "integrity": "sha512-+W9VYHKFIzA5cBeooqQxqNriAP0QeQ7xTiDuIOr71hzgffm3EL2hxwWBIIj4GuofIbKxGNarpKqIq6Q6YrShOA==",
+ "version": "8.34.1",
+ "resolved": "https://registry.npmjs.org/@typescript-eslint/tsconfig-utils/-/tsconfig-utils-8.34.1.tgz",
+ "integrity": "sha512-K4Sjdo4/xF9NEeA2khOb7Y5nY6NSXBnod87uniVYW9kHP+hNlDV8trUSFeynA2uxWam4gIWgWoygPrv9VMWrYg==",
"dev": true,
"requires": {}
},
@@ -31900,18 +31959,18 @@
"dev": true
},
"eslint": {
- "version": "9.28.0",
- "resolved": "https://registry.npmjs.org/eslint/-/eslint-9.28.0.tgz",
- "integrity": "sha512-ocgh41VhRlf9+fVpe7QKzwLj9c92fDiqOj8Y3Sd4/ZmVA4Btx4PlUYPq4pp9JDyupkf1upbEXecxL2mwNV7jPQ==",
+ "version": "9.29.0",
+ "resolved": "https://registry.npmjs.org/eslint/-/eslint-9.29.0.tgz",
+ "integrity": "sha512-GsGizj2Y1rCWDu6XoEekL3RLilp0voSePurjZIkxL3wlm5o5EC9VpgaP7lrCvjnkuLvzFBQWB3vWB3K5KQTveQ==",
"dev": true,
"requires": {
"@eslint-community/eslint-utils": "^4.2.0",
"@eslint-community/regexpp": "^4.12.1",
- "@eslint/config-array": "^0.20.0",
+ "@eslint/config-array": "^0.20.1",
"@eslint/config-helpers": "^0.2.1",
"@eslint/core": "^0.14.0",
"@eslint/eslintrc": "^3.3.1",
- "@eslint/js": "9.28.0",
+ "@eslint/js": "9.29.0",
"@eslint/plugin-kit": "^0.3.1",
"@humanfs/node": "^0.16.6",
"@humanwhocodes/module-importer": "^1.0.1",
@@ -31923,9 +31982,9 @@
"cross-spawn": "^7.0.6",
"debug": "^4.3.2",
"escape-string-regexp": "^4.0.0",
- "eslint-scope": "^8.3.0",
- "eslint-visitor-keys": "^4.2.0",
- "espree": "^10.3.0",
+ "eslint-scope": "^8.4.0",
+ "eslint-visitor-keys": "^4.2.1",
+ "espree": "^10.4.0",
"esquery": "^1.5.0",
"esutils": "^2.0.2",
"fast-deep-equal": "^3.1.3",
@@ -32327,9 +32386,9 @@
"requires": {}
},
"eslint-plugin-sonarjs": {
- "version": "3.0.2",
- "resolved": "https://registry.npmjs.org/eslint-plugin-sonarjs/-/eslint-plugin-sonarjs-3.0.2.tgz",
- "integrity": "sha512-LxjbfwI7ypENeTmGyKmDyNux3COSkMi7H/6Cal5StSLQ6edf0naP45SZR43OclaNR7WfhVTZdhOn63q3/Y6puQ==",
+ "version": "3.0.3",
+ "resolved": "https://registry.npmjs.org/eslint-plugin-sonarjs/-/eslint-plugin-sonarjs-3.0.3.tgz",
+ "integrity": "sha512-/UrTz8wyTW0MQVJKUF70vSjsMMf54+0cKHWAuYObuE82vNM8zrscm0wvZprolHNN0PIdnvVQ9Dm6MQkIzOKu4A==",
"dev": true,
"requires": {
"@eslint-community/regexpp": "4.12.1",
@@ -32339,14 +32398,14 @@
"jsx-ast-utils": "3.3.5",
"minimatch": "9.0.5",
"scslre": "0.3.0",
- "semver": "7.7.1",
- "typescript": "^5"
+ "semver": "7.7.2",
+ "typescript": ">=5"
},
"dependencies": {
"brace-expansion": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz",
- "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==",
+ "version": "2.0.2",
+ "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.2.tgz",
+ "integrity": "sha512-Jt0vHyM+jmUBqojB7E1NIYadt0vI0Qxjxd2TErW94wDz+E2LAm5vKMXXwg6ZZBTHPuUlDgQHKXvjGBdfcF1ZDQ==",
"dev": true,
"requires": {
"balanced-match": "^1.0.0"
@@ -32368,9 +32427,9 @@
}
},
"semver": {
- "version": "7.7.1",
- "resolved": "https://registry.npmjs.org/semver/-/semver-7.7.1.tgz",
- "integrity": "sha512-hlq8tAfn0m/61p4BVRcPzIGr6LKiMwo4VM6dGi6pt4qcRkmNzTcWq6eCEjEh+qXjkMDvPlOFFSGwQjoEa6gyMA==",
+ "version": "7.7.2",
+ "resolved": "https://registry.npmjs.org/semver/-/semver-7.7.2.tgz",
+ "integrity": "sha512-RF0Fw+rO5AMf9MAyaRXI4AV0Ulj5lMHqVxxdSgiVbixSCXoEmmX/jk0CuJw4+3SqroYO9VoUh+HcuJivvtJemA==",
"dev": true
}
}
@@ -32392,20 +32451,26 @@
"dev": true
},
"espree": {
- "version": "10.3.0",
- "resolved": "https://registry.npmjs.org/espree/-/espree-10.3.0.tgz",
- "integrity": "sha512-0QYC8b24HWY8zjRnDTL6RiHfDbAWn63qb4LMj1Z4b076A4une81+z03Kg7l7mn/48PUTqoLptSXez8oknU8Clg==",
+ "version": "10.4.0",
+ "resolved": "https://registry.npmjs.org/espree/-/espree-10.4.0.tgz",
+ "integrity": "sha512-j6PAQ2uUr79PZhBjP5C5fhl8e39FmRnOjsD5lGnWrFU8i2G776tBK7+nP8KuQUTTyAZUwfQqXAgrVH5MbH9CYQ==",
"dev": true,
"requires": {
- "acorn": "^8.14.0",
+ "acorn": "^8.15.0",
"acorn-jsx": "^5.3.2",
- "eslint-visitor-keys": "^4.2.0"
+ "eslint-visitor-keys": "^4.2.1"
},
"dependencies": {
+ "acorn": {
+ "version": "8.15.0",
+ "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.15.0.tgz",
+ "integrity": "sha512-NZyJarBfL7nWwIq+FDL6Zp/yHEhePMNnnJ0y3qfieCrmNvYct8uvtiV41UvlSe6apAfk0fY1FbWx+NwfmpvtTg==",
+ "dev": true
+ },
"eslint-visitor-keys": {
- "version": "4.2.0",
- "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-4.2.0.tgz",
- "integrity": "sha512-UyLnSehNt62FFhSwjZlHmeokpRK59rcz29j+F1/aDgbkbRTk7wIc9XzdoasMUbRNKDM0qQt/+BJ4BrpFeABemw==",
+ "version": "4.2.1",
+ "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-4.2.1.tgz",
+ "integrity": "sha512-Uhdk5sfqcee/9H/rCOJikYz67o0a2Tw2hGRPOG2Y1R2dg7brRe1uG0yaNQDHu+TO/uQPF/5eCapvYSmHUjt7JQ==",
"dev": true
}
}
@@ -39304,14 +39369,14 @@
}
},
"stylelint": {
- "version": "16.20.0",
- "resolved": "https://registry.npmjs.org/stylelint/-/stylelint-16.20.0.tgz",
- "integrity": "sha512-B5Myu9WRxrgKuLs3YyUXLP2H0mrbejwNxPmyADlACWwFsrL8Bmor/nTSh4OMae5sHjOz6gkSeccQH34gM4/nAw==",
+ "version": "16.21.0",
+ "resolved": "https://registry.npmjs.org/stylelint/-/stylelint-16.21.0.tgz",
+ "integrity": "sha512-ki3PpJGG7xhm3WtINoWGnlvqAmbqSexoRMbEMJzlwewSIOqPRKPlq452c22xAdEJISVi80r+I7KL9GPUiwFgbg==",
"dev": true,
"requires": {
- "@csstools/css-parser-algorithms": "^3.0.4",
- "@csstools/css-tokenizer": "^3.0.3",
- "@csstools/media-query-list-parser": "^4.0.2",
+ "@csstools/css-parser-algorithms": "^3.0.5",
+ "@csstools/css-tokenizer": "^3.0.4",
+ "@csstools/media-query-list-parser": "^4.0.3",
"@csstools/selector-specificity": "^5.0.0",
"@dual-bundle/import-meta-resolve": "^4.1.0",
"balanced-match": "^2.0.0",
@@ -39322,21 +39387,21 @@
"debug": "^4.4.1",
"fast-glob": "^3.3.3",
"fastest-levenshtein": "^1.0.16",
- "file-entry-cache": "^10.1.0",
+ "file-entry-cache": "^10.1.1",
"global-modules": "^2.0.0",
"globby": "^11.1.0",
"globjoin": "^0.1.4",
"html-tags": "^3.3.1",
- "ignore": "^7.0.4",
+ "ignore": "^7.0.5",
"imurmurhash": "^0.1.4",
"is-plain-object": "^5.0.0",
- "known-css-properties": "^0.36.0",
+ "known-css-properties": "^0.37.0",
"mathml-tag-names": "^2.1.3",
"meow": "^13.2.0",
"micromatch": "^4.0.8",
"normalize-path": "^3.0.0",
"picocolors": "^1.1.1",
- "postcss": "^8.5.3",
+ "postcss": "^8.5.5",
"postcss-resolve-nested-selector": "^0.1.6",
"postcss-safe-parser": "^7.0.1",
"postcss-selector-parser": "^7.1.0",
@@ -39484,6 +39549,12 @@
"argparse": "^2.0.1"
}
},
+ "known-css-properties": {
+ "version": "0.37.0",
+ "resolved": "https://registry.npmjs.org/known-css-properties/-/known-css-properties-0.37.0.tgz",
+ "integrity": "sha512-JCDrsP4Z1Sb9JwG0aJ8Eo2r7k4Ou5MwmThS/6lcIe1ICyb7UBJKGRIUUdqc2ASdE/42lgz6zFUnzAIhtXnBVrQ==",
+ "dev": true
+ },
"mdn-data": {
"version": "2.12.2",
"resolved": "https://registry.npmjs.org/mdn-data/-/mdn-data-2.12.2.tgz",
@@ -39502,6 +39573,17 @@
"lines-and-columns": "^1.1.6"
}
},
+ "postcss": {
+ "version": "8.5.6",
+ "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.5.6.tgz",
+ "integrity": "sha512-3Ybi1tAuwAP9s0r1UQ2J4n5Y0G05bJkpUIO0/bI9MhwmD70S5aTWbXGBwxHrelT+XM1k6dM0pk+SwNkpTRN7Pg==",
+ "dev": true,
+ "requires": {
+ "nanoid": "^3.3.11",
+ "picocolors": "^1.1.1",
+ "source-map-js": "^1.2.1"
+ }
+ },
"postcss-safe-parser": {
"version": "7.0.1",
"resolved": "https://registry.npmjs.org/postcss-safe-parser/-/postcss-safe-parser-7.0.1.tgz",
@@ -40322,9 +40404,9 @@
}
},
"stylelint-scss": {
- "version": "6.12.0",
- "resolved": "https://registry.npmjs.org/stylelint-scss/-/stylelint-scss-6.12.0.tgz",
- "integrity": "sha512-U7CKhi1YNkM1pXUXl/GMUXi8xKdhl4Ayxdyceie1nZ1XNIdaUgMV6OArpooWcDzEggwgYD0HP/xIgVJo9a655w==",
+ "version": "6.12.1",
+ "resolved": "https://registry.npmjs.org/stylelint-scss/-/stylelint-scss-6.12.1.tgz",
+ "integrity": "sha512-UJUfBFIvXfly8WKIgmqfmkGKPilKB4L5j38JfsDd+OCg2GBdU0vGUV08Uw82tsRZzd4TbsUURVVNGeOhJVF7pA==",
"dev": true,
"requires": {
"css-tree": "^3.0.1",
@@ -40362,9 +40444,9 @@
"dev": true
},
"mdn-data": {
- "version": "2.21.0",
- "resolved": "https://registry.npmjs.org/mdn-data/-/mdn-data-2.21.0.tgz",
- "integrity": "sha512-+ZKPQezM5vYJIkCxaC+4DTnRrVZR1CgsKLu5zsQERQx6Tea8Y+wMx5A24rq8A8NepCeatIQufVAekKNgiBMsGQ==",
+ "version": "2.22.0",
+ "resolved": "https://registry.npmjs.org/mdn-data/-/mdn-data-2.22.0.tgz",
+ "integrity": "sha512-IwcXqjPl4kgZbQH1WLb97/Pjt7XwPDSHnXsjENPhwx68bBf/Dw1/PwM8paXnFq974V1d8qP4o9ViVQqZuPAlCw==",
"dev": true
},
"postcss-selector-parser": {
@@ -41171,6 +41253,21 @@
"@typescript-eslint/eslint-plugin": "8.33.1",
"@typescript-eslint/parser": "8.33.1",
"@typescript-eslint/utils": "8.33.1"
+ },
+ "dependencies": {
+ "@typescript-eslint/parser": {
+ "version": "8.33.1",
+ "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-8.33.1.tgz",
+ "integrity": "sha512-qwxv6dq682yVvgKKp2qWwLgRbscDAYktPptK4JPojCwwi3R9cwrvIxS4lvBpzmcqzR4bdn54Z0IG1uHFskW4dA==",
+ "dev": true,
+ "requires": {
+ "@typescript-eslint/scope-manager": "8.33.1",
+ "@typescript-eslint/types": "8.33.1",
+ "@typescript-eslint/typescript-estree": "8.33.1",
+ "@typescript-eslint/visitor-keys": "8.33.1",
+ "debug": "^4.3.4"
+ }
+ }
}
},
"uc.micro": {
diff --git a/package.json b/package.json
index 81add10d8..a2dc46b74 100644
--- a/package.json
+++ b/package.json
@@ -10,8 +10,8 @@
"@babel/preset-env": "7.27.2",
"@babel/preset-react": "7.27.1",
"@eslint-community/eslint-plugin-eslint-comments": "4.5.0",
- "@eslint/js": "9.28.0",
- "@stylistic/eslint-plugin": "4.4.0",
+ "@eslint/js": "9.29.0",
+ "@stylistic/eslint-plugin": "4.4.1",
"@stylistic/stylelint-plugin": "3.1.2",
"@types/dompurify": "3.0.5",
"@types/escape-html": "1.0.4",
@@ -22,7 +22,7 @@
"@types/react-dom": "18.3.7",
"@types/react-lazy-load-image-component": "1.6.4",
"@types/sortablejs": "1.15.8",
- "@typescript-eslint/parser": "8.33.1",
+ "@typescript-eslint/parser": "8.34.1",
"@uupaa/dynamic-import-polyfill": "1.0.2",
"@vitest/coverage-v8": "3.2.1",
"autoprefixer": "10.4.21",
@@ -34,13 +34,13 @@
"css-loader": "7.1.2",
"cssnano": "7.0.7",
"es-check": "9.1.2",
- "eslint": "9.28.0",
+ "eslint": "9.29.0",
"eslint-plugin-compat": "6.0.2",
"eslint-plugin-import": "2.31.0",
"eslint-plugin-jsx-a11y": "6.10.2",
"eslint-plugin-react": "7.37.5",
"eslint-plugin-react-hooks": "5.2.0",
- "eslint-plugin-sonarjs": "3.0.2",
+ "eslint-plugin-sonarjs": "3.0.3",
"expose-loader": "5.0.1",
"fast-glob": "3.3.3",
"fork-ts-checker-webpack-plugin": "9.1.0",
@@ -58,11 +58,11 @@
"source-map-loader": "5.0.0",
"speed-measure-webpack-plugin": "1.5.0",
"style-loader": "4.0.0",
- "stylelint": "16.20.0",
+ "stylelint": "16.21.0",
"stylelint-config-rational-order": "0.1.2",
"stylelint-no-browser-hacks": "2.0.0",
"stylelint-order": "7.0.0",
- "stylelint-scss": "6.12.0",
+ "stylelint-scss": "6.12.1",
"ts-loader": "9.5.2",
"typescript": "5.8.3",
"typescript-eslint": "8.33.1",
From b300ebdfda7bee837127473941956d43a7945ba5 Mon Sep 17 00:00:00 2001
From: Gargotaire
Date: Thu, 26 Jun 2025 13:57:21 -0400
Subject: [PATCH 528/645] Translated using Weblate (Catalan) Translation:
Jellyfin/Jellyfin Web Translate-URL:
https://translate.jellyfin.org/projects/jellyfin/jellyfin-web/ca/
---
src/strings/ca.json | 50 ++++++++++++++++++++++-----------------------
1 file changed, 25 insertions(+), 25 deletions(-)
diff --git a/src/strings/ca.json b/src/strings/ca.json
index f7cb6b7bc..55342d1fb 100644
--- a/src/strings/ca.json
+++ b/src/strings/ca.json
@@ -334,16 +334,16 @@
"LabelRefreshMode": "Mode d'actualització",
"LabelReleaseDate": "Data de llançament",
"LabelSaveLocalMetadata": "Desa les imatges als directoris multimèdia",
- "LabelSaveLocalMetadataHelp": "Desar les imatges als directoris multimèdia les ubicarà a un lloc on podran ser editats fàcilment.",
+ "LabelSaveLocalMetadataHelp": "Desar les imatges als directoris multimèdia les ubicarà a un lloc on podran ser editades fàcilment.",
"LabelScreensaver": "Estalvi de pantalla",
"LabelSeasonNumber": "Temporada",
"LabelSelectFolderGroups": "Agrupa automàticament el contingut de les següents carpetes en col·leccions com 'Pel·lícules', 'Música' i 'TV'",
- "LabelSelectFolderGroupsHelp": "Les carpetes desmarcades serán mostrades individualment en la seva pròpia vista.",
+ "LabelSelectFolderGroupsHelp": "Els directoris desmarcats seran mostrats individualment en la seva pròpia vista.",
"LabelSelectUsers": "Selecciona usuaris",
- "LabelSelectVersionToInstall": "Seleccioni la versió a instal·lar",
+ "LabelSelectVersionToInstall": "Seleccioneu la versió a instal·lar",
"LabelSendNotificationToUsers": "Envia la notificació a",
"LabelSerialNumber": "Nombre de sèrie",
- "LabelSeriesRecordingPath": "Directori de gravació de sèries",
+ "LabelSeriesRecordingPath": "Ruta de l'enregistrament de sèries",
"LabelSortTitle": "Títol d'endreçat",
"LabelSource": "Font",
"LabelStartWhenPossible": "Inicia quan sigui possible",
@@ -840,7 +840,7 @@
"LabelSelectStereo": "Estèreo",
"LabelSelectMono": "Mono",
"LabelSelectAudioChannels": "Canals",
- "LabelAllowedAudioChannels": "Màxim permès Canals d'àudio",
+ "LabelAllowedAudioChannels": "Màxim permès de canals d'àudio",
"AllowHevcEncoding": "Permetre la codificació en format HEVC",
"PreferFmp4HlsContainerHelp": "Prefereixen utilitzar FMP4 com el contenidor predeterminat per HLS, de manera que és possible corrent directe contingut HEVC i AV1 en els dispositius compatibles.",
"PreferFmp4HlsContainer": "Prefereixo el contenidor multimèdia fMP4-HLS",
@@ -1165,22 +1165,22 @@
"LabelSkipIfGraphicalSubsPresentHelp": "Mantenir versions de text de subtítols donarà lloc a un lliurament més eficient i disminuir la probabilitat de transcodificació de vídeo.",
"LabelSkipIfGraphicalSubsPresent": "Saltar si el vídeo ja conté subtítols incrustats",
"LabelSkipIfAudioTrackPresentHelp": "Desmarqueu això per assegurar tots els vídeos tenen subtítols, sense importar l'idioma d'àudio.",
- "LabelSkipIfAudioTrackPresent": "Saltar si la pista d'àudio per defecte coincideix amb l'idioma descàrrega",
- "LabelSkipForwardLength": "Saltar cap endavant longitud",
- "LabelSkipBackLength": "Saltar llarg d'esquena",
+ "LabelSkipIfAudioTrackPresent": "Salta-ho si la pista d'àudio per defecte coincideix amb l'idioma de descàrrega",
+ "LabelSkipForwardLength": "Temps d'avançament",
+ "LabelSkipBackLength": "Temps de rebobinat",
"LabelSize": "Mida",
- "LabelSimultaneousConnectionLimit": "Límit de corrent simultània",
+ "LabelSimultaneousConnectionLimit": "Límit de fluxos simultanis de dades",
"LabelServerHostHelp": "192.168.1.100:8096 o https://myserver.com",
"LabelServerHost": "Amfitrió",
- "LabelScheduledTaskLastRan": "Darrera execució {0}, ha trigat {1}.",
+ "LabelScheduledTaskLastRan": "La darrera execució {0}, ha trigat {1}.",
"LabelRuntimeMinutes": "Temps d'execució",
- "LabelRequireHttpsHelp": "Si se selecciona, el servidor redirigirà automàticament totes les sol·licituds a través d'HTTP a HTTPS. Això no té efecte si el servidor no està escoltant en HTTPS.",
- "LabelRequireHttps": "Requerir HTTPS",
- "LabelRepositoryUrlHelp": "La ubicació de l'manifest repositori que voleu incloure.",
+ "LabelRequireHttpsHelp": "Si se selecciona, el servidor redirigirà automàticament totes les sol·licituds d'HTTP cap a HTTPS. Això no té efecte si el servidor no està escoltant en HTTPS.",
+ "LabelRequireHttps": "Requereix HTTPS",
+ "LabelRepositoryUrlHelp": "La ubicació del manifest repositori que voleu incloure.",
"LabelRepositoryUrl": "URL del repositori",
"LabelRepositoryNameHelp": "Un nom per distingir aquest repositori dels altres afegits al servidor.",
"LabelRepositoryName": "Nom del repositori",
- "LabelRemoteClientBitrateLimitHelp": "Un límit opcional de taxa de bits per cada corrent de tot fora dels dispositius de xarxa. Això és útil per evitar que els dispositius de sol·licitar una taxa de bits més alta que la connexió a Internet pot gestionar. Això pot resultar en una major càrrega de la CPU en el servidor per tal de transcodificació de vídeos sobre la marxa a una menor taxa de bits.",
+ "LabelRemoteClientBitrateLimitHelp": "Un límit opcional de taxa de bits per als dispositius que es trobin fora de xarxa. És útil per evitar que els dispositius sol·licitin una taxa de bits més alta que la que pot gestionar la vostra connexió a Internet. Això pot resultar en una major càrrega de la CPU en el servidor per tal de transcodificar els vídeos sobre la marxa a una menor taxa de bits.",
"LabelRemoteClientBitrateLimit": "Límit de la taxa de bits en transmetre per Internet (Mbps)",
"LabelRecordingPathHelp": "Especifiqueu la ubicació per defecte per a desar els enregistraments. Si es deixa buit, es farà servir el directori de dades de programa del servidor.",
"LabelReasonForTranscoding": "Motiu per a la transcodificació",
@@ -1658,15 +1658,15 @@
"MessageNoItemsAvailable": "No hi han elements disponibles actualment.",
"MessageRenameMediaFolder": "Canviar una mediateca de nom provocarà que es perdin totes les metadades, continueu amb precaució.",
"LabelTextWeight": "Estil de text",
- "RememberSubtitleSelections": "Establir la pista de subtítols en funció de l'element anterior",
+ "RememberSubtitleSelections": "Estableix la pista de subtítols en funció de l'element anterior",
"LabelVppTonemappingBrightnessHelp": "Aplicar el guany de brillantor al mapa de to VPP. El valor recomanat és 16.",
"MediaInfoRpuPresentFlag": "Flag DV rpu predeterminat",
"MediaInfoDvBlSignalCompatibilityId": "Identificador de compatibilitat del senyal DV bl",
"Unreleased": "Encara no s'ha publicat",
"OptionDateShowAdded": "Data de la sèrie afegida",
- "RememberAudioSelectionsHelp": "Intentar establir la pista d'àudio amb la coincidència més semblant a l'últim vídeo.",
- "RememberSubtitleSelectionsHelp": "Intentar configurar la pista de subtítols amb la coincidència més semblant a l'últim vídeo.",
- "RememberAudioSelections": "Establir la pista d'àudio en funció de l'element anterior",
+ "RememberAudioSelectionsHelp": "Intenta establir la pista d'àudio amb la coincidència més semblant a l'últim vídeo.",
+ "RememberSubtitleSelectionsHelp": "Intenta configurar la pista de subtítols amb la coincidència més semblant a l'últim vídeo.",
+ "RememberAudioSelections": "Estableix la pista d'àudio en funció de l'element anterior",
"EnableEnhancedNvdecDecoderHelp": "Implementació millorada de NVDEC, desactiveu aquesta opció per a utilitzar CUVID si trobeu errors de descodificació.",
"LabelVppTonemappingBrightness": "Guany de brillantor del mapa de to VPP",
"LabelVppTonemappingContrast": "Guany de contrast de mapatge de to VPP",
@@ -1820,7 +1820,7 @@
"PriorityHigh": "Alta",
"EnableLibrary": "Habilita la mediateca",
"EnableLibraryHelp": "Deshabilitar la mediateca l'amagarà per a tots els usuaris.",
- "LimitSupportedVideoResolution": "Limitar la resolució màxima de vídeo suportada",
+ "LimitSupportedVideoResolution": "Limita la resolució màxima de vídeo suportada",
"LimitSupportedVideoResolutionHelp": "Utilitzar \"La màxima resolució de transcodificació de vídeo permesa\" com a màxima resolució suportada.",
"PlaybackError.FATAL_HLS_ERROR": "S'ha produït un error fatal al stream HLS.",
"PlaybackError.RateLimitExceeded": "Aquest contingut multimèdia no es pot reproduir en aquests instants deguts a límits de transmissió.",
@@ -1958,17 +1958,17 @@
"LabelLyricDownloaders": "Descarregador de lletres",
"LabelQsvDeviceHelp": "Específica el dispositiu Intel QSV en els sistemes amb múltiples GPU. En sistemes Linux, això és un node de renderitzat, per exemple, /dev/dri/renderD128. En Windows, és un índex de dispositiu que comença al 0. Deixeu-ho en blanc a no ser que sapigueu què esteu fent.",
"LabelScreensaverTime": "Temps de l'estalvi de pantalla",
- "LabelScreensaverTimeHelp": "La quantitat de temps d'inactivitat en segons necessària per activar l'estalvi de pantalla.",
+ "LabelScreensaverTimeHelp": "La quantitat de temps, en segons d'inactivitat, necessària per activar l'estalvi de pantalla.",
"MediaSegmentAction.AskToSkip": "Solicitar saltar",
- "MediaSegmentSkipPrompt": "Saltar {0}",
+ "MediaSegmentSkipPrompt": "Salta {0}",
"MediaSegmentType.Commercial": "Comercial",
"MediaSegmentType.Recap": "Recapitulació",
- "MediaSegmentType.Outro": "Tancament",
+ "MediaSegmentType.Outro": "Crèdits",
"MediaSegmentType.Preview": "Previsualització",
"PlaylistError.UpdateFailed": "Error en actualitzar la llista de reproducció",
"LabelAlwaysRemuxFlacAudioFiles": "Sempre re-multiplexa els fitxers d'àudio FLAC",
"LabelAlwaysRemuxMp3AudioFiles": "Sempre re-multiplexa els fitxers d'àudio MP3",
- "LabelSaveTrickplayLocally": "Desa previsualitzacions junt amb els continguts multimèdia",
+ "LabelSaveTrickplayLocally": "Desa les imatges de previsualització junt amb els continguts multimèdia",
"LabelSaveTrickplayLocallyHelp": "Desant les imatges de previsualització als directoris multimèdia, quedaran junt amb els continguts multimèdia per a més fàcil migració i accés.",
"LyricDownloadersHelp": "Activa i classifica els descarregadors de lletres preferits en ordre de prioritat.",
"MessageSplitVersionsError": "S'ha produït un error separant les versions",
@@ -2021,7 +2021,7 @@
"UploadCustomImage": "Pujar imatge personalitzada",
"ReadInputAtNativeFramerate": "Llegeix l'origen a la velocitat de fotogrames nativa",
"ReadInputAtNativeFramerateHelp": "Activant aquesta opció pot solucionar alguns problemes, p. ex. retransmissions en directe que es paren sobtadament.",
- "LimitSegmentLength": "Utilitzar segments HLS escurçats",
+ "LimitSegmentLength": "Fes servir els segments HLS més curts",
"LimitSegmentLengthHelp": "Activar aquesta opció pot ajudar a prevenir que el reproductor HLS es pengi durant la cerca en alguns dispositius, com televisors webOS.",
"HeaderServerUnavailable": "El servidor no està disponible",
"HeaderUpdateRequired": "Cal una actualització",
@@ -2040,7 +2040,7 @@
"HeaderBackupsHelp": "Crea i restaura còpies del servidor, les quals poden incloure la base de dades, metadades, subtítols i imatges de previsualització.",
"LabelBackupsUnavailable": "No hi ha còpies de seguretat disponibles",
"LabelDatabase": "Base de dades",
- "LabelRestore": "Restaurar",
+ "LabelRestore": "Restaura",
"MessageBackupInProgress": "Còpia de seguretat en progrés",
"MessageRestoreInProgress": "Restabliment en procés",
"Success": "Èxit",
From 2efaf91a04d361da583a737c2b1916249306df54 Mon Sep 17 00:00:00 2001
From: Blackspirits
Date: Thu, 26 Jun 2025 13:28:20 -0400
Subject: [PATCH 529/645] Translated using Weblate (Portuguese (Portugal))
Translation: Jellyfin/Jellyfin Web Translate-URL:
https://translate.jellyfin.org/projects/jellyfin/jellyfin-web/pt_PT/
---
src/strings/pt-pt.json | 7 ++++---
1 file changed, 4 insertions(+), 3 deletions(-)
diff --git a/src/strings/pt-pt.json b/src/strings/pt-pt.json
index d98019b9e..f0f172c8c 100644
--- a/src/strings/pt-pt.json
+++ b/src/strings/pt-pt.json
@@ -1728,7 +1728,7 @@
"OptionDateShowAdded": "Data de adição da Série",
"LabelLevel": "Nível",
"LabelSystem": "Sistema",
- "LogLevel.Debug": "Debug",
+ "LogLevel.Debug": "Depuração",
"LabelDeveloper": "Desenvolvedor",
"LabelTonemappingMode": "Modo do mapeamento de tons",
"LabelDate": "Data",
@@ -1736,7 +1736,7 @@
"Unknown": "Desconhecido",
"HeaderEpisodesStatus": "Estado do Episódio",
"LabelMediaDetails": "Detalhes do conteúdo multimédia",
- "LogLevel.Trace": "Vestígio",
+ "LogLevel.Trace": "Rastreio",
"LogLevel.Error": "Erro",
"LogLevel.Critical": "Crítico",
"LogLevel.None": "Nenhum",
@@ -2056,5 +2056,6 @@
"StorageType.NoRootDirectory": "Sem pasta raiz",
"StorageType.Ram": "RAM",
"StorageType.Removable": "Removível",
- "LabelImageCache": "Cache de imagens"
+ "LabelImageCache": "Cache de imagens",
+ "LiveTVPageLoadError": "Falha ao carregar a página de gravações"
}
From 858da75601030916a215123a88c6aee92fe7c16a Mon Sep 17 00:00:00 2001
From: Blackspirits
Date: Thu, 26 Jun 2025 13:22:05 -0400
Subject: [PATCH 530/645] Translated using Weblate (Portuguese) Translation:
Jellyfin/Jellyfin Web Translate-URL:
https://translate.jellyfin.org/projects/jellyfin/jellyfin-web/pt/
---
src/strings/pt.json | 9 +++++----
1 file changed, 5 insertions(+), 4 deletions(-)
diff --git a/src/strings/pt.json b/src/strings/pt.json
index b1162e545..61778f895 100644
--- a/src/strings/pt.json
+++ b/src/strings/pt.json
@@ -1587,7 +1587,7 @@
"LabelDate": "Data",
"MessageRenameMediaFolder": "Mudar o nome de uma biblioteca multimédia fará com que todos os metadados se percam, por isso, procede com cuidado.",
"LabelSyncPlaySettingsMinDelaySkipToSync": "Atraso mínimo do pulo de sincronização",
- "LogLevel.None": "Nada",
+ "LogLevel.None": "Nenhum",
"LogLevel.Critical": "Crítico",
"New": "Novo",
"SubtitleWhite": "Branco",
@@ -1598,8 +1598,8 @@
"LabelSelectMono": "Mono",
"HeaderEpisodesStatus": "Status dos episódios",
"LabelSyncPlaySettingsSkipToSyncHelp": "Método de correção de sincronismo que consiste em buscar a posição estimada. A correção de sincronização deve estar habilitada.",
- "LogLevel.Trace": "Vestígio",
- "LogLevel.Debug": "Depurar",
+ "LogLevel.Trace": "Rastreio",
+ "LogLevel.Debug": "Depuração",
"LogLevel.Information": "Informação",
"MessageRepositoryInstallDisclaimer": "AVISO: A instalação de uma extensão de terceiros acarreta riscos. Ela pode conter código instável ou malicioso e pode ser alterado a qualquer momento. Instala apenas extensões de autores em quem confias.",
"OptionAllowContentDownload": "Permitir transferências de multimédia",
@@ -2024,5 +2024,6 @@
"HeaderUpdateRequired": "Atualização necessária",
"ViewSettings": "Ver definições",
"MessageForgotPasswordPinReset": "Introduz o PIN para concluir a redefinição da palavra-passe",
- "DownloadManager": "Transferências"
+ "DownloadManager": "Transferências",
+ "LiveTVPageLoadError": "Falha ao carregar a página de gravações"
}
From 2ed7623d617979fb8bb44ca5f2d0d48f760c7a13 Mon Sep 17 00:00:00 2001
From: Gargotaire
Date: Thu, 26 Jun 2025 16:35:24 -0400
Subject: [PATCH 531/645] Translated using Weblate (Catalan) Translation:
Jellyfin/Jellyfin Web Translate-URL:
https://translate.jellyfin.org/projects/jellyfin/jellyfin-web/ca/
---
src/strings/ca.json | 22 +++++++++++-----------
1 file changed, 11 insertions(+), 11 deletions(-)
diff --git a/src/strings/ca.json b/src/strings/ca.json
index 55342d1fb..ae8cd088a 100644
--- a/src/strings/ca.json
+++ b/src/strings/ca.json
@@ -344,7 +344,7 @@
"LabelSendNotificationToUsers": "Envia la notificació a",
"LabelSerialNumber": "Nombre de sèrie",
"LabelSeriesRecordingPath": "Ruta de l'enregistrament de sèries",
- "LabelSortTitle": "Títol d'endreçat",
+ "LabelSortTitle": "Ordena per títols",
"LabelSource": "Font",
"LabelStartWhenPossible": "Inicia quan sigui possible",
"LabelStatus": "Estat",
@@ -1133,22 +1133,22 @@
"LabelSyncPlayNewGroup": "Grup nou",
"LabelSyncPlayLeaveGroupDescription": "Desactiva SyncPlay",
"LabelSyncPlayLeaveGroup": "Surt del grup",
- "LabelSyncPlayHaltPlaybackDescription": "I ignorar les actualitzacions de llista de reproducció actual",
- "LabelSyncPlayHaltPlayback": "Aturar la reproducció local",
+ "LabelSyncPlayHaltPlaybackDescription": "I ignora les actualitzacions de la llista de reproducció",
+ "LabelSyncPlayHaltPlayback": "Atura la reproducció local",
"LabelSyncPlayAccessNone": "S'ha desactivat per a aquest usuari",
"LabelSyncPlayAccessJoinGroups": "Permet als usuaris unir-se als grups",
- "LabelSyncPlayAccessCreateAndJoinGroups": "Permet a l'usuari crear i unir-se a grups",
+ "LabelSyncPlayAccessCreateAndJoinGroups": "Permet als usuaris crear i unir-se a grups",
"LabelSyncPlayAccess": "Accés SyncPlay",
"LabelSupportedMediaTypes": "Tipus de mitjans compatibles",
"LabelSubtitleVerticalPosition": "Posició vertical",
"LabelSubtitleDownloaders": "Descarregadors de subtítols",
"LabelStreamType": "Tipus de seqüència",
- "LabelStopping": "Parant",
+ "LabelStopping": "S'està aturant",
"LabelStable": "Estable",
"LabelSSDPTracingFilterHelp": "Adreça IP opcional sobre la qual es registra un filtrat de el tràfic de SSDP.",
"LabelSSDPTracingFilter": "SSDP Filtre",
"LabelSportsCategories": "Modalitats esportives",
- "LabelSpecialSeasonsDisplayName": "Nom de temporada especial",
+ "LabelSpecialSeasonsDisplayName": "Nom de la temporada especial",
"LabelSortOrder": "Ordre de classificació",
"LabelSortBy": "Ordena per",
"LabelSonyAggregationFlagsHelp": "Determina el contingut de l'element 'aggregationFlags' al espai de noms 'urn:schemas-sonycom:av'.",
@@ -1160,11 +1160,11 @@
"LabelffmpegPathHelp": "La ruta d'accés al fitxer de l'aplicació de FFmpeg o del directori que la conté.",
"LabelEnableSSDPTracingHelp": "Permetin als detalls de la xarxa SSDP rastreig que s'ha de registrar. ADVERTÈNCIA:. Això farà que seria degradació del rendiment.",
"LabelBaseUrlHelp": "Afegiu un subdirectori personalitzat a l'adreça URL de servidor. Per exemple: http://example.com/<baseurl>",
- "LabelSlowResponseTime": "Temps en ms després de la qual cosa es considera una resposta lenta",
- "LabelSlowResponseEnabled": "Registrar un avis si la resposta del servidor es lenta",
- "LabelSkipIfGraphicalSubsPresentHelp": "Mantenir versions de text de subtítols donarà lloc a un lliurament més eficient i disminuir la probabilitat de transcodificació de vídeo.",
- "LabelSkipIfGraphicalSubsPresent": "Saltar si el vídeo ja conté subtítols incrustats",
- "LabelSkipIfAudioTrackPresentHelp": "Desmarqueu això per assegurar tots els vídeos tenen subtítols, sense importar l'idioma d'àudio.",
+ "LabelSlowResponseTime": "Temps en ms després del qual es considera que la resposta és lenta",
+ "LabelSlowResponseEnabled": "Registra un avís si la resposta del servidor és lenta",
+ "LabelSkipIfGraphicalSubsPresentHelp": "Mantenir versions de subtítols en text plans donarà lloc a un lliurament més eficient i disminuirà la probabilitat de transcodificació de vídeo.",
+ "LabelSkipIfGraphicalSubsPresent": "Salta, si el vídeo ja conté subtítols incrustats",
+ "LabelSkipIfAudioTrackPresentHelp": "Desmarqueu-ho per a assegurar tots els vídeos tenen subtítols, sense importar l'idioma de l'àudio.",
"LabelSkipIfAudioTrackPresent": "Salta-ho si la pista d'àudio per defecte coincideix amb l'idioma de descàrrega",
"LabelSkipForwardLength": "Temps d'avançament",
"LabelSkipBackLength": "Temps de rebobinat",
From f19bcf2e911a22e60c80c358fbeb7921abac5ccb Mon Sep 17 00:00:00 2001
From: Gargotaire
Date: Thu, 26 Jun 2025 17:26:44 -0400
Subject: [PATCH 532/645] Translated using Weblate (Catalan) Translation:
Jellyfin/Jellyfin Web Translate-URL:
https://translate.jellyfin.org/projects/jellyfin/jellyfin-web/ca/
---
src/strings/ca.json | 22 +++++++++++-----------
1 file changed, 11 insertions(+), 11 deletions(-)
diff --git a/src/strings/ca.json b/src/strings/ca.json
index ae8cd088a..efe3f5107 100644
--- a/src/strings/ca.json
+++ b/src/strings/ca.json
@@ -1123,7 +1123,7 @@
"LabelTextBackgroundColor": "Color del text de fons",
"LabelTagline": "Lema",
"LabelTag": "Etiqueta",
- "LabelSyncPlayTimeSyncOffset": "Compensació de temps",
+ "LabelSyncPlayTimeSyncOffset": "Temps de decalatge",
"LabelSyncPlayTimeSyncDevice": "Temps de sincronització amb",
"LabelSyncPlaySyncMethod": "Mètode de sincronització",
"LabelSyncPlayResumePlaybackDescription": "Torneu a la reproducció grupal",
@@ -1544,7 +1544,7 @@
"HeaderSyncPlaySettings": "Configuració de SyncPlay",
"Engineer": "Enginyer de so",
"AgeValue": "({0} anys)",
- "LabelSyncPlaySettingsExtraTimeOffsetHelp": "Ajusta manualment el temps de compensació amb el dispositiu seleccionat per la sincronització del temps. Ajustar amb cura.",
+ "LabelSyncPlaySettingsExtraTimeOffsetHelp": "Ajusteu manualment el temps de decalatge amb el dispositiu seleccionat per a la sincronització del temps. Ajusteu-ho amb cura.",
"LabelSyncPlaySettingsDescription": "Canvia les preferències de SyncPlay",
"LabelMaxDaysForNextUp": "Màxim de dies per \"A continuació\"",
"LabelHardwareEncoding": "Codificació per maquinari",
@@ -1617,17 +1617,17 @@
"Localization": "Localització",
"Larger": "Més gran",
"LabelSyncPlaySettingsSkipToSyncHelp": "Mètode de correcció de sincronització que consisteix a buscar la posició estimada. La correcció de sincronització ha d'estar activada.",
- "LabelSyncPlaySettingsSkipToSync": "Activar SkipToSync",
- "LabelSyncPlaySettingsSpeedToSyncHelp": "Mètode de correcció de sincronització que consisteix a accelerar la reproducció. La correcció de sincronització ha d'estar activada.",
- "LabelSyncPlaySettingsSpeedToSync": "Activar SpeedToSync",
+ "LabelSyncPlaySettingsSkipToSync": "Habilita SkipToSync",
+ "LabelSyncPlaySettingsSpeedToSyncHelp": "Mètode de correcció de sincronització que consisteix a accelerar la reproducció. La correcció de sincronització ha d'estar habilitada.",
+ "LabelSyncPlaySettingsSpeedToSync": "Habilita SpeedToSync",
"LabelSyncPlaySettingsMinDelaySkipToSyncHelp": "Retard mínim de reproducció (en ms) després del qual SkipToSync intenta corregir la posició de reproducció.",
- "LabelSyncPlaySettingsMinDelaySkipToSync": "SkipToSync retard mínim",
- "LabelSyncPlaySettingsSpeedToSyncDurationHelp": "Quantitat de mil·lisegons utilitzat per SpeedToSync per corregir la posició de reproducció.",
- "LabelSyncPlaySettingsSpeedToSyncDuration": "SpeedToSync duració",
+ "LabelSyncPlaySettingsMinDelaySkipToSync": "Retard mínim de SkipToSync",
+ "LabelSyncPlaySettingsSpeedToSyncDurationHelp": "Quantitat de mil·lisegons utilitzat per SpeedToSync per a corregir la posició de reproducció.",
+ "LabelSyncPlaySettingsSpeedToSyncDuration": "Duració de SpeedToSync",
"LabelSyncPlaySettingsMaxDelaySpeedToSyncHelp": "Retard màxim de reproducció (en ms) després del qual s'utilitza SkipToSync en lloc de SpeedToSync.",
- "LabelSyncPlaySettingsMaxDelaySpeedToSync": "SpeedToSync retard màxim",
- "LabelSyncPlaySettingsMinDelaySpeedToSyncHelp": "Retard de reproducció mínim (en ms) després del qual SpeedToSync intenta corregir la posició de reproducció.",
- "LabelSyncPlaySettingsMinDelaySpeedToSync": "SpeedToSync retard mínim",
+ "LabelSyncPlaySettingsMaxDelaySpeedToSync": "Retard màxim de SpeedToSync",
+ "LabelSyncPlaySettingsMinDelaySpeedToSyncHelp": "Retard mínim de reproducció (en ms) després del qual SpeedToSync intenta corregir la posició de reproducció.",
+ "LabelSyncPlaySettingsMinDelaySpeedToSync": "Retard mínim de SpeedToSync",
"LabelSyncPlaySettingsSyncCorrectionHelp": "Habilita la sincronització activa de la reproducció accelerant els continguts multimèdia o cercant la posició estimada. Desactiveu-ho en cas d'intermitències.",
"ItemDetails": "Detalls de l'element",
"GoogleCastUnsupported": "El Google Cast no és compatible",
From 2b9b5530f33cdeee4d1d5cbccf2ccaa7615b1cee Mon Sep 17 00:00:00 2001
From: viown <48097677+viown@users.noreply.github.com>
Date: Fri, 27 Jun 2025 01:54:09 +0300
Subject: [PATCH 533/645] Apply review feedback
---
.../features/plugins/components/PluginCard.tsx | 2 +-
.../features/plugins/constants/categoryLabels.ts | 2 +-
src/apps/dashboard/routes/plugins/catalog.tsx | 14 +++++++++++++-
3 files changed, 15 insertions(+), 3 deletions(-)
diff --git a/src/apps/dashboard/features/plugins/components/PluginCard.tsx b/src/apps/dashboard/features/plugins/components/PluginCard.tsx
index 5ea7eef53..3c9d26bca 100644
--- a/src/apps/dashboard/features/plugins/components/PluginCard.tsx
+++ b/src/apps/dashboard/features/plugins/components/PluginCard.tsx
@@ -47,7 +47,7 @@ const PluginCard = ({ plugin, configurationPage }: IProps) => {
const navigateToPluginSettings = useCallback(() => {
navigate(pluginPage);
- }, [ navigate, location, configurationPage ]);
+ }, [ navigate, pluginPage ]);
const onEnablePlugin = useCallback(() => {
if (plugin.Id && plugin.Version) {
diff --git a/src/apps/dashboard/features/plugins/constants/categoryLabels.ts b/src/apps/dashboard/features/plugins/constants/categoryLabels.ts
index 52be2cef7..3cf460403 100644
--- a/src/apps/dashboard/features/plugins/constants/categoryLabels.ts
+++ b/src/apps/dashboard/features/plugins/constants/categoryLabels.ts
@@ -1,5 +1,5 @@
/** A mapping of category names used by the plugin repository to translation keys. */
-export const CATEGORY_LABELS = {
+export const CATEGORY_LABELS: Record = {
Administration: 'HeaderAdmin',
Anime: 'Anime',
Authentication: 'LabelAuthProvider', // Legacy
diff --git a/src/apps/dashboard/routes/plugins/catalog.tsx b/src/apps/dashboard/routes/plugins/catalog.tsx
index b2106d8fe..e55096338 100644
--- a/src/apps/dashboard/routes/plugins/catalog.tsx
+++ b/src/apps/dashboard/routes/plugins/catalog.tsx
@@ -14,6 +14,7 @@ import TextField from '@mui/material/TextField';
import IconButton from '@mui/material/IconButton';
import Settings from '@mui/icons-material/Settings';
import { Link } from 'react-router-dom';
+import { CATEGORY_LABELS } from 'apps/dashboard/features/plugins/constants/categoryLabels';
export const Component = () => {
const { data: packages, isPending: isPackagesPending } = usePackages();
@@ -29,6 +30,17 @@ export const Component = () => {
setSearchQuery(e.target.value);
}, []);
+ const getCategoryLabel = (category: string) => {
+ const categoryKey = category.replace(/\s/g, '');
+
+ if (CATEGORY_LABELS[categoryKey]) {
+ return globalize.translate(CATEGORY_LABELS[categoryKey]);
+ }
+
+ console.warn('[AvailablePlugins] unmapped category label', category);
+ return category;
+ };
+
if (isPackagesPending) {
return ;
}
@@ -62,7 +74,7 @@ export const Component = () => {
{packageCategories.map(category => (
- {category}
+ {getCategoryLabel(category)}
{getPackagesByCategory(filteredPackages, category).map(pkg => (
From 2db1141df201b596bae1e1163028409d56ef0b7f Mon Sep 17 00:00:00 2001
From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com>
Date: Fri, 27 Jun 2025 02:42:16 +0000
Subject: [PATCH 534/645] Update CatChen/eslint-suggestion-action action to
v4.1.18
---
.github/workflows/pull_request.yml | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/.github/workflows/pull_request.yml b/.github/workflows/pull_request.yml
index a1fa34dbe..6a16a0930 100644
--- a/.github/workflows/pull_request.yml
+++ b/.github/workflows/pull_request.yml
@@ -95,6 +95,6 @@ jobs:
run: npm ci --no-audit
- name: Run eslint
- uses: CatChen/eslint-suggestion-action@04af6ad359e691c79287ee21c478e706fb482d1f # v4.1.17
+ uses: CatChen/eslint-suggestion-action@4dda35decf912ab18ea3e071acec2c6c2eda00b6 # v4.1.18
with:
github-token: ${{ secrets.GITHUB_TOKEN }}
From dcfde8983467d3bdc1251c772c2c040de5d8f785 Mon Sep 17 00:00:00 2001
From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com>
Date: Fri, 27 Jun 2025 02:42:41 +0000
Subject: [PATCH 535/645] Update dependency es-check to v9.1.4
---
package-lock.json | 36 ++++++++++++++++++------------------
package.json | 2 +-
2 files changed, 19 insertions(+), 19 deletions(-)
diff --git a/package-lock.json b/package-lock.json
index 39c76d012..354d8e4e9 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -96,7 +96,7 @@
"cross-env": "7.0.3",
"css-loader": "7.1.2",
"cssnano": "7.0.7",
- "es-check": "9.1.2",
+ "es-check": "9.1.4",
"eslint": "9.29.0",
"eslint-plugin-compat": "6.0.2",
"eslint-plugin-import": "2.31.0",
@@ -10211,18 +10211,18 @@
}
},
"node_modules/es-check": {
- "version": "9.1.2",
- "resolved": "https://registry.npmjs.org/es-check/-/es-check-9.1.2.tgz",
- "integrity": "sha512-aoVC4ROjhULurs3/CO9bAwJH0GDWNcnXNVPJulRWlo7ATHTxXtwee3loVfP6X8CvCqDsQs+CPMwOFrr5JwTFPQ==",
+ "version": "9.1.4",
+ "resolved": "https://registry.npmjs.org/es-check/-/es-check-9.1.4.tgz",
+ "integrity": "sha512-oCElzPyMZTm7IpCbdBslOjPdpI3uoccctPVTJLJyi34k+nXSaqApMAfm0yleEKTyPGXkmtWwPFBSyN22cKUhJw==",
"dev": true,
"license": "MIT",
"dependencies": {
"acorn": "8.14.1",
"acorn-walk": "^8.3.4",
"browserslist": "^4.23.3",
- "commander": "13.1.0",
+ "commander": "14.0.0",
"fast-glob": "^3.3.3",
- "lilconfig": "^3.0.0",
+ "lilconfig": "^3.1.3",
"source-map": "^0.7.4",
"supports-color": "8.1.1",
"winston": "3.17.0"
@@ -10235,13 +10235,13 @@
}
},
"node_modules/es-check/node_modules/commander": {
- "version": "13.1.0",
- "resolved": "https://registry.npmjs.org/commander/-/commander-13.1.0.tgz",
- "integrity": "sha512-/rFeCpNJQbhSZjGVwO9RFV3xPqbnERS8MmIQzCtD/zl6gpJuV/bMLuN92oG3F7d8oDEHHRrujSXNUr8fpjntKw==",
+ "version": "14.0.0",
+ "resolved": "https://registry.npmjs.org/commander/-/commander-14.0.0.tgz",
+ "integrity": "sha512-2uM9rYjPvyq39NwLRqaiLtWHyDC1FvryJDa2ATTVims5YAS4PupsEQsDvP14FqhFr0P49CYDugi59xaxJlTXRA==",
"dev": true,
"license": "MIT",
"engines": {
- "node": ">=18"
+ "node": ">=20"
}
},
"node_modules/es-check/node_modules/has-flag": {
@@ -31750,26 +31750,26 @@
}
},
"es-check": {
- "version": "9.1.2",
- "resolved": "https://registry.npmjs.org/es-check/-/es-check-9.1.2.tgz",
- "integrity": "sha512-aoVC4ROjhULurs3/CO9bAwJH0GDWNcnXNVPJulRWlo7ATHTxXtwee3loVfP6X8CvCqDsQs+CPMwOFrr5JwTFPQ==",
+ "version": "9.1.4",
+ "resolved": "https://registry.npmjs.org/es-check/-/es-check-9.1.4.tgz",
+ "integrity": "sha512-oCElzPyMZTm7IpCbdBslOjPdpI3uoccctPVTJLJyi34k+nXSaqApMAfm0yleEKTyPGXkmtWwPFBSyN22cKUhJw==",
"dev": true,
"requires": {
"acorn": "8.14.1",
"acorn-walk": "^8.3.4",
"browserslist": "^4.23.3",
- "commander": "13.1.0",
+ "commander": "14.0.0",
"fast-glob": "^3.3.3",
- "lilconfig": "^3.0.0",
+ "lilconfig": "^3.1.3",
"source-map": "^0.7.4",
"supports-color": "8.1.1",
"winston": "3.17.0"
},
"dependencies": {
"commander": {
- "version": "13.1.0",
- "resolved": "https://registry.npmjs.org/commander/-/commander-13.1.0.tgz",
- "integrity": "sha512-/rFeCpNJQbhSZjGVwO9RFV3xPqbnERS8MmIQzCtD/zl6gpJuV/bMLuN92oG3F7d8oDEHHRrujSXNUr8fpjntKw==",
+ "version": "14.0.0",
+ "resolved": "https://registry.npmjs.org/commander/-/commander-14.0.0.tgz",
+ "integrity": "sha512-2uM9rYjPvyq39NwLRqaiLtWHyDC1FvryJDa2ATTVims5YAS4PupsEQsDvP14FqhFr0P49CYDugi59xaxJlTXRA==",
"dev": true
},
"has-flag": {
diff --git a/package.json b/package.json
index a2dc46b74..27eda806a 100644
--- a/package.json
+++ b/package.json
@@ -33,7 +33,7 @@
"cross-env": "7.0.3",
"css-loader": "7.1.2",
"cssnano": "7.0.7",
- "es-check": "9.1.2",
+ "es-check": "9.1.4",
"eslint": "9.29.0",
"eslint-plugin-compat": "6.0.2",
"eslint-plugin-import": "2.31.0",
From 9ee17d13a34acf009e40be18e58445685ad0d158 Mon Sep 17 00:00:00 2001
From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com>
Date: Fri, 27 Jun 2025 02:44:12 +0000
Subject: [PATCH 536/645] Update Fonts to v5.2.6
---
package-lock.json | 70 +++++++++++++++++++++++------------------------
package.json | 10 +++----
2 files changed, 40 insertions(+), 40 deletions(-)
diff --git a/package-lock.json b/package-lock.json
index a6d5fceeb..c049b798b 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -12,11 +12,11 @@
"@emotion/react": "11.14.0",
"@emotion/styled": "11.14.0",
"@fontsource/noto-sans": "5.2.7",
- "@fontsource/noto-sans-hk": "5.2.5",
- "@fontsource/noto-sans-jp": "5.2.5",
- "@fontsource/noto-sans-kr": "5.2.5",
- "@fontsource/noto-sans-sc": "5.2.5",
- "@fontsource/noto-sans-tc": "5.2.5",
+ "@fontsource/noto-sans-hk": "5.2.6",
+ "@fontsource/noto-sans-jp": "5.2.6",
+ "@fontsource/noto-sans-kr": "5.2.6",
+ "@fontsource/noto-sans-sc": "5.2.6",
+ "@fontsource/noto-sans-tc": "5.2.6",
"@jellyfin/libass-wasm": "4.2.3",
"@jellyfin/sdk": "0.0.0-unstable.202506260502",
"@jellyfin/ux-web": "1.0.0",
@@ -3932,45 +3932,45 @@
}
},
"node_modules/@fontsource/noto-sans-hk": {
- "version": "5.2.5",
- "resolved": "https://registry.npmjs.org/@fontsource/noto-sans-hk/-/noto-sans-hk-5.2.5.tgz",
- "integrity": "sha512-dQK+2kLRChvlbvsXadnvfjBy1+hQojKu/zobeLiKXquFWJis9CdwNIaxTFa4Khwsq8HzR9JzxGb6L1tSK6JWYw==",
+ "version": "5.2.6",
+ "resolved": "https://registry.npmjs.org/@fontsource/noto-sans-hk/-/noto-sans-hk-5.2.6.tgz",
+ "integrity": "sha512-EF7rFuy8jPthjDK8ciFRdVseAs01B93zeE74m/O6F71p9UdIlE9AbtPaMfNHzvnTixYcnHbcxQzx72lSpwvrPg==",
"license": "OFL-1.1",
"funding": {
"url": "https://github.com/sponsors/ayuhito"
}
},
"node_modules/@fontsource/noto-sans-jp": {
- "version": "5.2.5",
- "resolved": "https://registry.npmjs.org/@fontsource/noto-sans-jp/-/noto-sans-jp-5.2.5.tgz",
- "integrity": "sha512-ISoJUQlsuSo4y56P+eJD+g022BRAF1BC2uCyEFGRsob0g8VvQAoWNMlWh+P0VQw68QzZHHj41zRzeRFpzAdA7w==",
+ "version": "5.2.6",
+ "resolved": "https://registry.npmjs.org/@fontsource/noto-sans-jp/-/noto-sans-jp-5.2.6.tgz",
+ "integrity": "sha512-BvUHYZKL87yWGRNFqInxDciU/Czp6klOEcB9l/6CnjMN77F5jc21r/A4XkMx46eY8FzVvfjCYTYUB4zExlX2Ww==",
"license": "OFL-1.1",
"funding": {
"url": "https://github.com/sponsors/ayuhito"
}
},
"node_modules/@fontsource/noto-sans-kr": {
- "version": "5.2.5",
- "resolved": "https://registry.npmjs.org/@fontsource/noto-sans-kr/-/noto-sans-kr-5.2.5.tgz",
- "integrity": "sha512-9swPyua410J00z+GhemPKK/StWdiW07dchS9JcskesdQrhnPBLD6zVQtQsrj+ZPXTFBftbcrMlWFsWhmFn6S9w==",
+ "version": "5.2.6",
+ "resolved": "https://registry.npmjs.org/@fontsource/noto-sans-kr/-/noto-sans-kr-5.2.6.tgz",
+ "integrity": "sha512-8yVWUzOT+El3PAqY8ZKvNatgzL7EgrvLoNp0GjYSLkgDKvvX+xaIZ34W8gfATjeXKmolj9lQN4TqADfPlbmUsg==",
"license": "OFL-1.1",
"funding": {
"url": "https://github.com/sponsors/ayuhito"
}
},
"node_modules/@fontsource/noto-sans-sc": {
- "version": "5.2.5",
- "resolved": "https://registry.npmjs.org/@fontsource/noto-sans-sc/-/noto-sans-sc-5.2.5.tgz",
- "integrity": "sha512-rYAl3Alcjo2PnI0sqzRfnA022H8yWePNrjYalApQwYE+fFlaXmD6Mm3E9wmJCpmJM8clwhQWq/E8IlPl1bmZHQ==",
+ "version": "5.2.6",
+ "resolved": "https://registry.npmjs.org/@fontsource/noto-sans-sc/-/noto-sans-sc-5.2.6.tgz",
+ "integrity": "sha512-hk0xVQ+mL/W0rXDhBhud2U5te/slsQKcaU+3Ni6ZxeFP1jJmcNmxHEZOG5DjLBOi0L//0R5Nwvn6ebTiZrwVZw==",
"license": "OFL-1.1",
"funding": {
"url": "https://github.com/sponsors/ayuhito"
}
},
"node_modules/@fontsource/noto-sans-tc": {
- "version": "5.2.5",
- "resolved": "https://registry.npmjs.org/@fontsource/noto-sans-tc/-/noto-sans-tc-5.2.5.tgz",
- "integrity": "sha512-+qQKW1slXsS5H5AvsiBfNo7krmuxyKkb6vV2l/nE7Uyd5TBpaomub+kuIO3iwgLBtVOesSkl6HwtR4SNxry+FA==",
+ "version": "5.2.6",
+ "resolved": "https://registry.npmjs.org/@fontsource/noto-sans-tc/-/noto-sans-tc-5.2.6.tgz",
+ "integrity": "sha512-cXpi78o0adtqz/7/3Onpp2u/O8G2XC4WufuT8EQjEu2Mvdq2WRgLZk/KOrhh7kH/3BSijbKnYUwQ5mTEvaSF5A==",
"license": "OFL-1.1",
"funding": {
"url": "https://github.com/sponsors/ayuhito"
@@ -27612,29 +27612,29 @@
"integrity": "sha512-mTpMSMft6Nb+ZSF4DSiJVYnLzKCRjHNFieZ/swuxSDQK+v1hjUeDTBxLHKUdfmC+ZPg6TUEWw4oRq2ltnDbSjQ=="
},
"@fontsource/noto-sans-hk": {
- "version": "5.2.5",
- "resolved": "https://registry.npmjs.org/@fontsource/noto-sans-hk/-/noto-sans-hk-5.2.5.tgz",
- "integrity": "sha512-dQK+2kLRChvlbvsXadnvfjBy1+hQojKu/zobeLiKXquFWJis9CdwNIaxTFa4Khwsq8HzR9JzxGb6L1tSK6JWYw=="
+ "version": "5.2.6",
+ "resolved": "https://registry.npmjs.org/@fontsource/noto-sans-hk/-/noto-sans-hk-5.2.6.tgz",
+ "integrity": "sha512-EF7rFuy8jPthjDK8ciFRdVseAs01B93zeE74m/O6F71p9UdIlE9AbtPaMfNHzvnTixYcnHbcxQzx72lSpwvrPg=="
},
"@fontsource/noto-sans-jp": {
- "version": "5.2.5",
- "resolved": "https://registry.npmjs.org/@fontsource/noto-sans-jp/-/noto-sans-jp-5.2.5.tgz",
- "integrity": "sha512-ISoJUQlsuSo4y56P+eJD+g022BRAF1BC2uCyEFGRsob0g8VvQAoWNMlWh+P0VQw68QzZHHj41zRzeRFpzAdA7w=="
+ "version": "5.2.6",
+ "resolved": "https://registry.npmjs.org/@fontsource/noto-sans-jp/-/noto-sans-jp-5.2.6.tgz",
+ "integrity": "sha512-BvUHYZKL87yWGRNFqInxDciU/Czp6klOEcB9l/6CnjMN77F5jc21r/A4XkMx46eY8FzVvfjCYTYUB4zExlX2Ww=="
},
"@fontsource/noto-sans-kr": {
- "version": "5.2.5",
- "resolved": "https://registry.npmjs.org/@fontsource/noto-sans-kr/-/noto-sans-kr-5.2.5.tgz",
- "integrity": "sha512-9swPyua410J00z+GhemPKK/StWdiW07dchS9JcskesdQrhnPBLD6zVQtQsrj+ZPXTFBftbcrMlWFsWhmFn6S9w=="
+ "version": "5.2.6",
+ "resolved": "https://registry.npmjs.org/@fontsource/noto-sans-kr/-/noto-sans-kr-5.2.6.tgz",
+ "integrity": "sha512-8yVWUzOT+El3PAqY8ZKvNatgzL7EgrvLoNp0GjYSLkgDKvvX+xaIZ34W8gfATjeXKmolj9lQN4TqADfPlbmUsg=="
},
"@fontsource/noto-sans-sc": {
- "version": "5.2.5",
- "resolved": "https://registry.npmjs.org/@fontsource/noto-sans-sc/-/noto-sans-sc-5.2.5.tgz",
- "integrity": "sha512-rYAl3Alcjo2PnI0sqzRfnA022H8yWePNrjYalApQwYE+fFlaXmD6Mm3E9wmJCpmJM8clwhQWq/E8IlPl1bmZHQ=="
+ "version": "5.2.6",
+ "resolved": "https://registry.npmjs.org/@fontsource/noto-sans-sc/-/noto-sans-sc-5.2.6.tgz",
+ "integrity": "sha512-hk0xVQ+mL/W0rXDhBhud2U5te/slsQKcaU+3Ni6ZxeFP1jJmcNmxHEZOG5DjLBOi0L//0R5Nwvn6ebTiZrwVZw=="
},
"@fontsource/noto-sans-tc": {
- "version": "5.2.5",
- "resolved": "https://registry.npmjs.org/@fontsource/noto-sans-tc/-/noto-sans-tc-5.2.5.tgz",
- "integrity": "sha512-+qQKW1slXsS5H5AvsiBfNo7krmuxyKkb6vV2l/nE7Uyd5TBpaomub+kuIO3iwgLBtVOesSkl6HwtR4SNxry+FA=="
+ "version": "5.2.6",
+ "resolved": "https://registry.npmjs.org/@fontsource/noto-sans-tc/-/noto-sans-tc-5.2.6.tgz",
+ "integrity": "sha512-cXpi78o0adtqz/7/3Onpp2u/O8G2XC4WufuT8EQjEu2Mvdq2WRgLZk/KOrhh7kH/3BSijbKnYUwQ5mTEvaSF5A=="
},
"@humanfs/core": {
"version": "0.19.1",
diff --git a/package.json b/package.json
index 103d4a7e8..f7fce6042 100644
--- a/package.json
+++ b/package.json
@@ -78,11 +78,11 @@
"@emotion/react": "11.14.0",
"@emotion/styled": "11.14.0",
"@fontsource/noto-sans": "5.2.7",
- "@fontsource/noto-sans-hk": "5.2.5",
- "@fontsource/noto-sans-jp": "5.2.5",
- "@fontsource/noto-sans-kr": "5.2.5",
- "@fontsource/noto-sans-sc": "5.2.5",
- "@fontsource/noto-sans-tc": "5.2.5",
+ "@fontsource/noto-sans-hk": "5.2.6",
+ "@fontsource/noto-sans-jp": "5.2.6",
+ "@fontsource/noto-sans-kr": "5.2.6",
+ "@fontsource/noto-sans-sc": "5.2.6",
+ "@fontsource/noto-sans-tc": "5.2.6",
"@jellyfin/libass-wasm": "4.2.3",
"@jellyfin/sdk": "0.0.0-unstable.202506260502",
"@jellyfin/ux-web": "1.0.0",
From 432776b8f4048d182a904d7328417fbebd4bc899 Mon Sep 17 00:00:00 2001
From: hoanghuy309
Date: Thu, 26 Jun 2025 21:07:07 -0400
Subject: [PATCH 537/645] Translated using Weblate (Vietnamese) Translation:
Jellyfin/Jellyfin Web Translate-URL:
https://translate.jellyfin.org/projects/jellyfin/jellyfin-web/vi/
---
src/strings/vi.json | 6 +++++-
1 file changed, 5 insertions(+), 1 deletion(-)
diff --git a/src/strings/vi.json b/src/strings/vi.json
index cba469f6e..0de9056af 100644
--- a/src/strings/vi.json
+++ b/src/strings/vi.json
@@ -2055,5 +2055,9 @@
"DeleteRepositoryConfirmation": "Bạn có chắc là bạn muốn xóa kho lưu trữ này?",
"ConfirmDeleteRepository": "Xóa kho lưu trữ?",
"RepositoriesPageLoadError": "Không tải được kho lưu trữ",
- "ButtonLearnMore": "Tìm Hiểu Thêm"
+ "ButtonLearnMore": "Tìm Hiểu Thêm",
+ "TranscodingLoadError": "Không tải được cài đặt chuyển mã",
+ "StorageType.CDRom": "CD-ROM",
+ "StorageType.Ram": "RAM",
+ "LiveTVPageLoadError": "Không tải được trang ghi"
}
From 7907cabcad2dc2468a01ce8e2ed10b690a43b82f Mon Sep 17 00:00:00 2001
From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com>
Date: Fri, 27 Jun 2025 02:52:47 +0000
Subject: [PATCH 538/645] Update dependency @jellyfin/sdk to
v0.0.0-unstable.202506270243
---
package-lock.json | 14 +++++++-------
package.json | 2 +-
2 files changed, 8 insertions(+), 8 deletions(-)
diff --git a/package-lock.json b/package-lock.json
index 7691bfe17..364e8cbb0 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -18,7 +18,7 @@
"@fontsource/noto-sans-sc": "5.2.6",
"@fontsource/noto-sans-tc": "5.2.6",
"@jellyfin/libass-wasm": "4.2.3",
- "@jellyfin/sdk": "0.0.0-unstable.202506260502",
+ "@jellyfin/sdk": "0.0.0-unstable.202506270243",
"@jellyfin/ux-web": "1.0.0",
"@mui/icons-material": "6.4.12",
"@mui/material": "6.4.12",
@@ -4129,9 +4129,9 @@
"license": "LGPL-2.1-or-later AND (FTL OR GPL-2.0-or-later) AND MIT AND MIT-Modern-Variant AND ISC AND NTP AND Zlib AND BSL-1.0"
},
"node_modules/@jellyfin/sdk": {
- "version": "0.0.0-unstable.202506260502",
- "resolved": "https://registry.npmjs.org/@jellyfin/sdk/-/sdk-0.0.0-unstable.202506260502.tgz",
- "integrity": "sha512-+lTM6BwCY4O25tnZ2ZIegodrHWBXv+Kql5fadRNm9MISoR/ZMcg30z21oLtNLxZoqG+D66AjIzOaqipygyLaoA==",
+ "version": "0.0.0-unstable.202506270243",
+ "resolved": "https://registry.npmjs.org/@jellyfin/sdk/-/sdk-0.0.0-unstable.202506270243.tgz",
+ "integrity": "sha512-dTsPNmRUsWhmZn/8m4/8I00VvsFg7lrCJXk7BHhwYgKJjqphFWDupqSz7y9U4MvMf1Hnw3ms3hxWTxk0ZFnTTg==",
"license": "MPL-2.0",
"peerDependencies": {
"axios": "^1.3.4"
@@ -27732,9 +27732,9 @@
"integrity": "sha512-C0OlBxIr9NdeFESMTA/OVDqNSWtog6Mi7wwzwH12xbZpxsMD0RgCupUcIP7zZgcpTNecW3fZq5d6xVo7Q8HEJw=="
},
"@jellyfin/sdk": {
- "version": "0.0.0-unstable.202506260502",
- "resolved": "https://registry.npmjs.org/@jellyfin/sdk/-/sdk-0.0.0-unstable.202506260502.tgz",
- "integrity": "sha512-+lTM6BwCY4O25tnZ2ZIegodrHWBXv+Kql5fadRNm9MISoR/ZMcg30z21oLtNLxZoqG+D66AjIzOaqipygyLaoA==",
+ "version": "0.0.0-unstable.202506270243",
+ "resolved": "https://registry.npmjs.org/@jellyfin/sdk/-/sdk-0.0.0-unstable.202506270243.tgz",
+ "integrity": "sha512-dTsPNmRUsWhmZn/8m4/8I00VvsFg7lrCJXk7BHhwYgKJjqphFWDupqSz7y9U4MvMf1Hnw3ms3hxWTxk0ZFnTTg==",
"requires": {}
},
"@jellyfin/ux-web": {
diff --git a/package.json b/package.json
index d8b55de4c..aa575f6e5 100644
--- a/package.json
+++ b/package.json
@@ -84,7 +84,7 @@
"@fontsource/noto-sans-sc": "5.2.6",
"@fontsource/noto-sans-tc": "5.2.6",
"@jellyfin/libass-wasm": "4.2.3",
- "@jellyfin/sdk": "0.0.0-unstable.202506260502",
+ "@jellyfin/sdk": "0.0.0-unstable.202506270243",
"@jellyfin/ux-web": "1.0.0",
"@mui/icons-material": "6.4.12",
"@mui/material": "6.4.12",
From c5d760dff0e0f4a5244882def5fd77f350e4ca7a Mon Sep 17 00:00:00 2001
From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com>
Date: Fri, 27 Jun 2025 02:52:59 +0000
Subject: [PATCH 539/645] Update PostCSS
---
package-lock.json | 168 ++++++++++++++++++----------------------------
package.json | 4 +-
2 files changed, 66 insertions(+), 106 deletions(-)
diff --git a/package-lock.json b/package-lock.json
index 7691bfe17..42843d1fc 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -112,9 +112,9 @@
"html-webpack-plugin": "5.6.3",
"jsdom": "26.1.0",
"mini-css-extract-plugin": "2.9.2",
- "postcss": "8.5.4",
+ "postcss": "8.5.6",
"postcss-loader": "8.1.1",
- "postcss-preset-env": "10.2.0",
+ "postcss-preset-env": "10.2.3",
"postcss-scss": "4.0.9",
"sass": "1.87.0",
"sass-loader": "16.0.5",
@@ -2387,9 +2387,9 @@
}
},
"node_modules/@csstools/postcss-is-pseudo-class": {
- "version": "5.0.1",
- "resolved": "https://registry.npmjs.org/@csstools/postcss-is-pseudo-class/-/postcss-is-pseudo-class-5.0.1.tgz",
- "integrity": "sha512-JLp3POui4S1auhDR0n8wHd/zTOWmMsmK3nQd3hhL6FhWPaox5W7j1se6zXOG/aP07wV2ww0lxbKYGwbBszOtfQ==",
+ "version": "5.0.3",
+ "resolved": "https://registry.npmjs.org/@csstools/postcss-is-pseudo-class/-/postcss-is-pseudo-class-5.0.3.tgz",
+ "integrity": "sha512-jS/TY4SpG4gszAtIg7Qnf3AS2pjcUM5SzxpApOrlndMeGhIbaTzWBzzP/IApXoNWEW7OhcjkRT48jnAUIFXhAQ==",
"dev": true,
"funding": [
{
@@ -8045,9 +8045,9 @@
}
},
"node_modules/browserslist": {
- "version": "4.24.5",
- "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.24.5.tgz",
- "integrity": "sha512-FDToo4Wo82hIdgc1CQ+NQD0hEhmpPjrZ3hiUgwgOG6IuTdlpr8jdjyG24P6cNP1yJpTLzS5OcGgSw0xmDU1/Tw==",
+ "version": "4.25.1",
+ "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.25.1.tgz",
+ "integrity": "sha512-KGj0KoOMXLpSNkkEI6Z6mShmQy0bc1I+T7K9N81k4WWMrfz+6fQ6es80B/YLAeRoKvjYE1YSHHOW1qe9xIVzHw==",
"dev": true,
"funding": [
{
@@ -8065,8 +8065,8 @@
],
"license": "MIT",
"dependencies": {
- "caniuse-lite": "^1.0.30001716",
- "electron-to-chromium": "^1.5.149",
+ "caniuse-lite": "^1.0.30001726",
+ "electron-to-chromium": "^1.5.173",
"node-releases": "^2.0.19",
"update-browserslist-db": "^1.1.3"
},
@@ -8315,9 +8315,9 @@
}
},
"node_modules/caniuse-lite": {
- "version": "1.0.30001718",
- "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001718.tgz",
- "integrity": "sha512-AflseV1ahcSunK53NfEs9gFWgOEmzr0f+kaMFA4xiLZlr9Hzt7HxcSpIFcnNCUkz6R6dWKa54rUz3HUmI3nVcw==",
+ "version": "1.0.30001726",
+ "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001726.tgz",
+ "integrity": "sha512-VQAUIUzBiZ/UnlM28fSp2CRF3ivUn1BWEvxMcVTNwpw91Py1pGbPIyIKtd+tzct9C3ouceCVdGAXxZOpZAsgdw==",
"dev": true,
"funding": [
{
@@ -10020,9 +10020,9 @@
"dev": true
},
"node_modules/electron-to-chromium": {
- "version": "1.5.152",
- "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.5.152.tgz",
- "integrity": "sha512-xBOfg/EBaIlVsHipHl2VdTPJRSvErNUaqW8ejTq5OlOlIYx1wOllCHsAvAIrr55jD1IYEfdR86miUEt8H5IeJg==",
+ "version": "1.5.176",
+ "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.5.176.tgz",
+ "integrity": "sha512-2nDK9orkm7M9ZZkjO3PjbEd3VUulQLyg5T9O3enJdFvUg46Hzd4DUvTvAuEgbdHYXyFsiG4A5sO9IzToMH1cDg==",
"dev": true,
"license": "ISC"
},
@@ -16420,9 +16420,9 @@
}
},
"node_modules/postcss": {
- "version": "8.5.4",
- "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.5.4.tgz",
- "integrity": "sha512-QSa9EBe+uwlGTFmHsPKokv3B/oEMQZxfqW0QqNCyhpa6mB1afzulwn8hihglqAb2pOw+BJgNlmXQ8la2VeHB7w==",
+ "version": "8.5.6",
+ "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.5.6.tgz",
+ "integrity": "sha512-3Ybi1tAuwAP9s0r1UQ2J4n5Y0G05bJkpUIO0/bI9MhwmD70S5aTWbXGBwxHrelT+XM1k6dM0pk+SwNkpTRN7Pg==",
"dev": true,
"funding": [
{
@@ -17718,9 +17718,9 @@
}
},
"node_modules/postcss-nesting": {
- "version": "13.0.1",
- "resolved": "https://registry.npmjs.org/postcss-nesting/-/postcss-nesting-13.0.1.tgz",
- "integrity": "sha512-VbqqHkOBOt4Uu3G8Dm8n6lU5+9cJFxiuty9+4rcoyRPO9zZS1JIs6td49VIoix3qYqELHlJIn46Oih9SAKo+yQ==",
+ "version": "13.0.2",
+ "resolved": "https://registry.npmjs.org/postcss-nesting/-/postcss-nesting-13.0.2.tgz",
+ "integrity": "sha512-1YCI290TX+VP0U/K/aFxzHzQWHWURL+CtHMSbex1lCdpXD1SoR2sYuxDu5aNI9lPoXpKTCggFZiDJbwylU0LEQ==",
"dev": true,
"funding": [
{
@@ -17734,7 +17734,7 @@
],
"license": "MIT-0",
"dependencies": {
- "@csstools/selector-resolve-nested": "^3.0.0",
+ "@csstools/selector-resolve-nested": "^3.1.0",
"@csstools/selector-specificity": "^5.0.0",
"postcss-selector-parser": "^7.0.0"
},
@@ -17746,9 +17746,9 @@
}
},
"node_modules/postcss-nesting/node_modules/@csstools/selector-resolve-nested": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/@csstools/selector-resolve-nested/-/selector-resolve-nested-3.0.0.tgz",
- "integrity": "sha512-ZoK24Yku6VJU1gS79a5PFmC8yn3wIapiKmPgun0hZgEI5AOqgH2kiPRsPz1qkGv4HL+wuDLH83yQyk6inMYrJQ==",
+ "version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/@csstools/selector-resolve-nested/-/selector-resolve-nested-3.1.0.tgz",
+ "integrity": "sha512-mf1LEW0tJLKfWyvn5KdDrhpxHyuxpbNwTIwOYLIvsTffeyOf85j5oIzfG0yosxDgx/sswlqBnESYUcQH0vgZ0g==",
"dev": true,
"funding": [
{
@@ -18049,9 +18049,9 @@
}
},
"node_modules/postcss-preset-env": {
- "version": "10.2.0",
- "resolved": "https://registry.npmjs.org/postcss-preset-env/-/postcss-preset-env-10.2.0.tgz",
- "integrity": "sha512-cl13sPBbSqo1Q7Ryb19oT5NZO5IHFolRbIMdgDq4f9w1MHYiL6uZS7uSsjXJ1KzRIcX5BMjEeyxmAevVXENa3Q==",
+ "version": "10.2.3",
+ "resolved": "https://registry.npmjs.org/postcss-preset-env/-/postcss-preset-env-10.2.3.tgz",
+ "integrity": "sha512-zlQN1yYmA7lFeM1wzQI14z97mKoM8qGng+198w1+h6sCud/XxOjcKtApY9jWr7pXNS3yHDEafPlClSsWnkY8ow==",
"dev": true,
"funding": [
{
@@ -18077,7 +18077,7 @@
"@csstools/postcss-hwb-function": "^4.0.10",
"@csstools/postcss-ic-unit": "^4.0.2",
"@csstools/postcss-initial": "^2.0.1",
- "@csstools/postcss-is-pseudo-class": "^5.0.1",
+ "@csstools/postcss-is-pseudo-class": "^5.0.3",
"@csstools/postcss-light-dark-function": "^2.0.9",
"@csstools/postcss-logical-float-and-clear": "^3.0.0",
"@csstools/postcss-logical-overflow": "^2.0.0",
@@ -18099,7 +18099,7 @@
"@csstools/postcss-trigonometric-functions": "^4.0.9",
"@csstools/postcss-unset-value": "^4.0.0",
"autoprefixer": "^10.4.21",
- "browserslist": "^4.24.5",
+ "browserslist": "^4.25.0",
"css-blank-pseudo": "^7.0.1",
"css-has-pseudo": "^7.0.2",
"css-prefers-color-scheme": "^10.0.0",
@@ -18110,7 +18110,7 @@
"postcss-color-hex-alpha": "^10.0.0",
"postcss-color-rebeccapurple": "^10.0.0",
"postcss-custom-media": "^11.0.6",
- "postcss-custom-properties": "^14.0.5",
+ "postcss-custom-properties": "^14.0.6",
"postcss-custom-selectors": "^8.0.5",
"postcss-dir-pseudo-class": "^9.0.1",
"postcss-double-position-gradients": "^6.0.2",
@@ -18121,7 +18121,7 @@
"postcss-image-set-function": "^7.0.0",
"postcss-lab-function": "^7.0.10",
"postcss-logical": "^8.1.0",
- "postcss-nesting": "^13.0.1",
+ "postcss-nesting": "^13.0.2",
"postcss-opacity-percentage": "^3.0.0",
"postcss-overflow-shorthand": "^6.0.0",
"postcss-page-break": "^3.0.4",
@@ -22701,35 +22701,6 @@
"url": "https://github.com/sponsors/sindresorhus"
}
},
- "node_modules/stylelint/node_modules/postcss": {
- "version": "8.5.6",
- "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.5.6.tgz",
- "integrity": "sha512-3Ybi1tAuwAP9s0r1UQ2J4n5Y0G05bJkpUIO0/bI9MhwmD70S5aTWbXGBwxHrelT+XM1k6dM0pk+SwNkpTRN7Pg==",
- "dev": true,
- "funding": [
- {
- "type": "opencollective",
- "url": "https://opencollective.com/postcss/"
- },
- {
- "type": "tidelift",
- "url": "https://tidelift.com/funding/github/npm/postcss"
- },
- {
- "type": "github",
- "url": "https://github.com/sponsors/ai"
- }
- ],
- "license": "MIT",
- "dependencies": {
- "nanoid": "^3.3.11",
- "picocolors": "^1.1.1",
- "source-map-js": "^1.2.1"
- },
- "engines": {
- "node": "^10 || ^12 || >=14"
- }
- },
"node_modules/stylelint/node_modules/postcss-safe-parser": {
"version": "7.0.1",
"resolved": "https://registry.npmjs.org/postcss-safe-parser/-/postcss-safe-parser-7.0.1.tgz",
@@ -26868,9 +26839,9 @@
"requires": {}
},
"@csstools/postcss-is-pseudo-class": {
- "version": "5.0.1",
- "resolved": "https://registry.npmjs.org/@csstools/postcss-is-pseudo-class/-/postcss-is-pseudo-class-5.0.1.tgz",
- "integrity": "sha512-JLp3POui4S1auhDR0n8wHd/zTOWmMsmK3nQd3hhL6FhWPaox5W7j1se6zXOG/aP07wV2ww0lxbKYGwbBszOtfQ==",
+ "version": "5.0.3",
+ "resolved": "https://registry.npmjs.org/@csstools/postcss-is-pseudo-class/-/postcss-is-pseudo-class-5.0.3.tgz",
+ "integrity": "sha512-jS/TY4SpG4gszAtIg7Qnf3AS2pjcUM5SzxpApOrlndMeGhIbaTzWBzzP/IApXoNWEW7OhcjkRT48jnAUIFXhAQ==",
"dev": true,
"requires": {
"@csstools/selector-specificity": "^5.0.0",
@@ -30229,13 +30200,13 @@
}
},
"browserslist": {
- "version": "4.24.5",
- "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.24.5.tgz",
- "integrity": "sha512-FDToo4Wo82hIdgc1CQ+NQD0hEhmpPjrZ3hiUgwgOG6IuTdlpr8jdjyG24P6cNP1yJpTLzS5OcGgSw0xmDU1/Tw==",
+ "version": "4.25.1",
+ "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.25.1.tgz",
+ "integrity": "sha512-KGj0KoOMXLpSNkkEI6Z6mShmQy0bc1I+T7K9N81k4WWMrfz+6fQ6es80B/YLAeRoKvjYE1YSHHOW1qe9xIVzHw==",
"dev": true,
"requires": {
- "caniuse-lite": "^1.0.30001716",
- "electron-to-chromium": "^1.5.149",
+ "caniuse-lite": "^1.0.30001726",
+ "electron-to-chromium": "^1.5.173",
"node-releases": "^2.0.19",
"update-browserslist-db": "^1.1.3"
}
@@ -30411,9 +30382,9 @@
}
},
"caniuse-lite": {
- "version": "1.0.30001718",
- "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001718.tgz",
- "integrity": "sha512-AflseV1ahcSunK53NfEs9gFWgOEmzr0f+kaMFA4xiLZlr9Hzt7HxcSpIFcnNCUkz6R6dWKa54rUz3HUmI3nVcw==",
+ "version": "1.0.30001726",
+ "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001726.tgz",
+ "integrity": "sha512-VQAUIUzBiZ/UnlM28fSp2CRF3ivUn1BWEvxMcVTNwpw91Py1pGbPIyIKtd+tzct9C3ouceCVdGAXxZOpZAsgdw==",
"dev": true
},
"canvas": {
@@ -31593,9 +31564,9 @@
"dev": true
},
"electron-to-chromium": {
- "version": "1.5.152",
- "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.5.152.tgz",
- "integrity": "sha512-xBOfg/EBaIlVsHipHl2VdTPJRSvErNUaqW8ejTq5OlOlIYx1wOllCHsAvAIrr55jD1IYEfdR86miUEt8H5IeJg==",
+ "version": "1.5.176",
+ "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.5.176.tgz",
+ "integrity": "sha512-2nDK9orkm7M9ZZkjO3PjbEd3VUulQLyg5T9O3enJdFvUg46Hzd4DUvTvAuEgbdHYXyFsiG4A5sO9IzToMH1cDg==",
"dev": true
},
"element-closest-polyfill": {
@@ -36176,9 +36147,9 @@
"dev": true
},
"postcss": {
- "version": "8.5.4",
- "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.5.4.tgz",
- "integrity": "sha512-QSa9EBe+uwlGTFmHsPKokv3B/oEMQZxfqW0QqNCyhpa6mB1afzulwn8hihglqAb2pOw+BJgNlmXQ8la2VeHB7w==",
+ "version": "8.5.6",
+ "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.5.6.tgz",
+ "integrity": "sha512-3Ybi1tAuwAP9s0r1UQ2J4n5Y0G05bJkpUIO0/bI9MhwmD70S5aTWbXGBwxHrelT+XM1k6dM0pk+SwNkpTRN7Pg==",
"dev": true,
"requires": {
"nanoid": "^3.3.11",
@@ -36954,20 +36925,20 @@
}
},
"postcss-nesting": {
- "version": "13.0.1",
- "resolved": "https://registry.npmjs.org/postcss-nesting/-/postcss-nesting-13.0.1.tgz",
- "integrity": "sha512-VbqqHkOBOt4Uu3G8Dm8n6lU5+9cJFxiuty9+4rcoyRPO9zZS1JIs6td49VIoix3qYqELHlJIn46Oih9SAKo+yQ==",
+ "version": "13.0.2",
+ "resolved": "https://registry.npmjs.org/postcss-nesting/-/postcss-nesting-13.0.2.tgz",
+ "integrity": "sha512-1YCI290TX+VP0U/K/aFxzHzQWHWURL+CtHMSbex1lCdpXD1SoR2sYuxDu5aNI9lPoXpKTCggFZiDJbwylU0LEQ==",
"dev": true,
"requires": {
- "@csstools/selector-resolve-nested": "^3.0.0",
+ "@csstools/selector-resolve-nested": "^3.1.0",
"@csstools/selector-specificity": "^5.0.0",
"postcss-selector-parser": "^7.0.0"
},
"dependencies": {
"@csstools/selector-resolve-nested": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/@csstools/selector-resolve-nested/-/selector-resolve-nested-3.0.0.tgz",
- "integrity": "sha512-ZoK24Yku6VJU1gS79a5PFmC8yn3wIapiKmPgun0hZgEI5AOqgH2kiPRsPz1qkGv4HL+wuDLH83yQyk6inMYrJQ==",
+ "version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/@csstools/selector-resolve-nested/-/selector-resolve-nested-3.1.0.tgz",
+ "integrity": "sha512-mf1LEW0tJLKfWyvn5KdDrhpxHyuxpbNwTIwOYLIvsTffeyOf85j5oIzfG0yosxDgx/sswlqBnESYUcQH0vgZ0g==",
"dev": true,
"requires": {}
},
@@ -37113,9 +37084,9 @@
}
},
"postcss-preset-env": {
- "version": "10.2.0",
- "resolved": "https://registry.npmjs.org/postcss-preset-env/-/postcss-preset-env-10.2.0.tgz",
- "integrity": "sha512-cl13sPBbSqo1Q7Ryb19oT5NZO5IHFolRbIMdgDq4f9w1MHYiL6uZS7uSsjXJ1KzRIcX5BMjEeyxmAevVXENa3Q==",
+ "version": "10.2.3",
+ "resolved": "https://registry.npmjs.org/postcss-preset-env/-/postcss-preset-env-10.2.3.tgz",
+ "integrity": "sha512-zlQN1yYmA7lFeM1wzQI14z97mKoM8qGng+198w1+h6sCud/XxOjcKtApY9jWr7pXNS3yHDEafPlClSsWnkY8ow==",
"dev": true,
"requires": {
"@csstools/postcss-cascade-layers": "^5.0.1",
@@ -37130,7 +37101,7 @@
"@csstools/postcss-hwb-function": "^4.0.10",
"@csstools/postcss-ic-unit": "^4.0.2",
"@csstools/postcss-initial": "^2.0.1",
- "@csstools/postcss-is-pseudo-class": "^5.0.1",
+ "@csstools/postcss-is-pseudo-class": "^5.0.3",
"@csstools/postcss-light-dark-function": "^2.0.9",
"@csstools/postcss-logical-float-and-clear": "^3.0.0",
"@csstools/postcss-logical-overflow": "^2.0.0",
@@ -37152,7 +37123,7 @@
"@csstools/postcss-trigonometric-functions": "^4.0.9",
"@csstools/postcss-unset-value": "^4.0.0",
"autoprefixer": "^10.4.21",
- "browserslist": "^4.24.5",
+ "browserslist": "^4.25.0",
"css-blank-pseudo": "^7.0.1",
"css-has-pseudo": "^7.0.2",
"css-prefers-color-scheme": "^10.0.0",
@@ -37163,7 +37134,7 @@
"postcss-color-hex-alpha": "^10.0.0",
"postcss-color-rebeccapurple": "^10.0.0",
"postcss-custom-media": "^11.0.6",
- "postcss-custom-properties": "^14.0.5",
+ "postcss-custom-properties": "^14.0.6",
"postcss-custom-selectors": "^8.0.5",
"postcss-dir-pseudo-class": "^9.0.1",
"postcss-double-position-gradients": "^6.0.2",
@@ -37174,7 +37145,7 @@
"postcss-image-set-function": "^7.0.0",
"postcss-lab-function": "^7.0.10",
"postcss-logical": "^8.1.0",
- "postcss-nesting": "^13.0.1",
+ "postcss-nesting": "^13.0.2",
"postcss-opacity-percentage": "^3.0.0",
"postcss-overflow-shorthand": "^6.0.0",
"postcss-page-break": "^3.0.4",
@@ -39573,17 +39544,6 @@
"lines-and-columns": "^1.1.6"
}
},
- "postcss": {
- "version": "8.5.6",
- "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.5.6.tgz",
- "integrity": "sha512-3Ybi1tAuwAP9s0r1UQ2J4n5Y0G05bJkpUIO0/bI9MhwmD70S5aTWbXGBwxHrelT+XM1k6dM0pk+SwNkpTRN7Pg==",
- "dev": true,
- "requires": {
- "nanoid": "^3.3.11",
- "picocolors": "^1.1.1",
- "source-map-js": "^1.2.1"
- }
- },
"postcss-safe-parser": {
"version": "7.0.1",
"resolved": "https://registry.npmjs.org/postcss-safe-parser/-/postcss-safe-parser-7.0.1.tgz",
diff --git a/package.json b/package.json
index d8b55de4c..f44a0be21 100644
--- a/package.json
+++ b/package.json
@@ -49,9 +49,9 @@
"html-webpack-plugin": "5.6.3",
"jsdom": "26.1.0",
"mini-css-extract-plugin": "2.9.2",
- "postcss": "8.5.4",
+ "postcss": "8.5.6",
"postcss-loader": "8.1.1",
- "postcss-preset-env": "10.2.0",
+ "postcss-preset-env": "10.2.3",
"postcss-scss": "4.0.9",
"sass": "1.87.0",
"sass-loader": "16.0.5",
From 2b8d337aea9da81dcc6aafac7eed85c38f81cacc Mon Sep 17 00:00:00 2001
From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com>
Date: Fri, 27 Jun 2025 02:53:16 +0000
Subject: [PATCH 540/645] Update Vitest to v3.2.4
---
package-lock.json | 288 ++++++++++++++++++++++++----------------------
package.json | 4 +-
2 files changed, 155 insertions(+), 137 deletions(-)
diff --git a/package-lock.json b/package-lock.json
index 7691bfe17..61e0778d9 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -87,7 +87,7 @@
"@types/sortablejs": "1.15.8",
"@typescript-eslint/parser": "8.34.1",
"@uupaa/dynamic-import-polyfill": "1.0.2",
- "@vitest/coverage-v8": "3.2.1",
+ "@vitest/coverage-v8": "3.2.4",
"autoprefixer": "10.4.21",
"babel-loader": "10.0.0",
"clean-webpack-plugin": "4.0.0",
@@ -129,7 +129,7 @@
"ts-loader": "9.5.2",
"typescript": "5.8.3",
"typescript-eslint": "8.33.1",
- "vitest": "3.2.1",
+ "vitest": "3.2.4",
"webpack": "5.99.9",
"webpack-bundle-analyzer": "4.10.2",
"webpack-cli": "6.0.1",
@@ -6515,9 +6515,9 @@
"dev": true
},
"node_modules/@vitest/coverage-v8": {
- "version": "3.2.1",
- "resolved": "https://registry.npmjs.org/@vitest/coverage-v8/-/coverage-v8-3.2.1.tgz",
- "integrity": "sha512-6dy0uF/0BE3jpUW9bFzg0V2S4F7XVaZHL/7qma1XANvHPQGoJuc3wtx911zSoAgUnpfvcLVK1vancNJ95d+uxQ==",
+ "version": "3.2.4",
+ "resolved": "https://registry.npmjs.org/@vitest/coverage-v8/-/coverage-v8-3.2.4.tgz",
+ "integrity": "sha512-EyF9SXU6kS5Ku/U82E259WSnvg6c8KTjppUncuNdm5QHpe17mwREHnjDzozC8x9MZ0xfBUFSaLkRv4TMA75ALQ==",
"dev": true,
"license": "MIT",
"dependencies": {
@@ -6539,8 +6539,8 @@
"url": "https://opencollective.com/vitest"
},
"peerDependencies": {
- "@vitest/browser": "3.2.1",
- "vitest": "3.2.1"
+ "@vitest/browser": "3.2.4",
+ "vitest": "3.2.4"
},
"peerDependenciesMeta": {
"@vitest/browser": {
@@ -6549,15 +6549,15 @@
}
},
"node_modules/@vitest/expect": {
- "version": "3.2.1",
- "resolved": "https://registry.npmjs.org/@vitest/expect/-/expect-3.2.1.tgz",
- "integrity": "sha512-FqS/BnDOzV6+IpxrTg5GQRyLOCtcJqkwMwcS8qGCI2IyRVDwPAtutztaf1CjtPHlZlWtl1yUPCd7HM0cNiDOYw==",
+ "version": "3.2.4",
+ "resolved": "https://registry.npmjs.org/@vitest/expect/-/expect-3.2.4.tgz",
+ "integrity": "sha512-Io0yyORnB6sikFlt8QW5K7slY4OjqNX9jmJQ02QDda8lyM6B5oNgVWoSoKPac8/kgnCUzuHQKrSLtu/uOqqrig==",
"dev": true,
"license": "MIT",
"dependencies": {
"@types/chai": "^5.2.2",
- "@vitest/spy": "3.2.1",
- "@vitest/utils": "3.2.1",
+ "@vitest/spy": "3.2.4",
+ "@vitest/utils": "3.2.4",
"chai": "^5.2.0",
"tinyrainbow": "^2.0.0"
},
@@ -6566,13 +6566,13 @@
}
},
"node_modules/@vitest/mocker": {
- "version": "3.2.1",
- "resolved": "https://registry.npmjs.org/@vitest/mocker/-/mocker-3.2.1.tgz",
- "integrity": "sha512-OXxMJnx1lkB+Vl65Re5BrsZEHc90s5NMjD23ZQ9NlU7f7nZiETGoX4NeKZSmsKjseuMq2uOYXdLOeoM0pJU+qw==",
+ "version": "3.2.4",
+ "resolved": "https://registry.npmjs.org/@vitest/mocker/-/mocker-3.2.4.tgz",
+ "integrity": "sha512-46ryTE9RZO/rfDd7pEqFl7etuyzekzEhUbTW3BvmeO/BcCMEgq59BKhek3dXDWgAj4oMK6OZi+vRr1wPW6qjEQ==",
"dev": true,
"license": "MIT",
"dependencies": {
- "@vitest/spy": "3.2.1",
+ "@vitest/spy": "3.2.4",
"estree-walker": "^3.0.3",
"magic-string": "^0.30.17"
},
@@ -6593,9 +6593,9 @@
}
},
"node_modules/@vitest/pretty-format": {
- "version": "3.2.1",
- "resolved": "https://registry.npmjs.org/@vitest/pretty-format/-/pretty-format-3.2.1.tgz",
- "integrity": "sha512-xBh1X2GPlOGBupp6E1RcUQWIxw0w/hRLd3XyBS6H+dMdKTAqHDNsIR2AnJwPA3yYe9DFy3VUKTe3VRTrAiQ01g==",
+ "version": "3.2.4",
+ "resolved": "https://registry.npmjs.org/@vitest/pretty-format/-/pretty-format-3.2.4.tgz",
+ "integrity": "sha512-IVNZik8IVRJRTr9fxlitMKeJeXFFFN0JaB9PHPGQ8NKQbGpfjlTx9zO4RefN8gp7eqjNy8nyK3NZmBzOPeIxtA==",
"dev": true,
"license": "MIT",
"dependencies": {
@@ -6606,27 +6606,28 @@
}
},
"node_modules/@vitest/runner": {
- "version": "3.2.1",
- "resolved": "https://registry.npmjs.org/@vitest/runner/-/runner-3.2.1.tgz",
- "integrity": "sha512-kygXhNTu/wkMYbwYpS3z/9tBe0O8qpdBuC3dD/AW9sWa0LE/DAZEjnHtWA9sIad7lpD4nFW1yQ+zN7mEKNH3yA==",
+ "version": "3.2.4",
+ "resolved": "https://registry.npmjs.org/@vitest/runner/-/runner-3.2.4.tgz",
+ "integrity": "sha512-oukfKT9Mk41LreEW09vt45f8wx7DordoWUZMYdY/cyAk7w5TWkTRCNZYF7sX7n2wB7jyGAl74OxgwhPgKaqDMQ==",
"dev": true,
"license": "MIT",
"dependencies": {
- "@vitest/utils": "3.2.1",
- "pathe": "^2.0.3"
+ "@vitest/utils": "3.2.4",
+ "pathe": "^2.0.3",
+ "strip-literal": "^3.0.0"
},
"funding": {
"url": "https://opencollective.com/vitest"
}
},
"node_modules/@vitest/snapshot": {
- "version": "3.2.1",
- "resolved": "https://registry.npmjs.org/@vitest/snapshot/-/snapshot-3.2.1.tgz",
- "integrity": "sha512-5xko/ZpW2Yc65NVK9Gpfg2y4BFvcF+At7yRT5AHUpTg9JvZ4xZoyuRY4ASlmNcBZjMslV08VRLDrBOmUe2YX3g==",
+ "version": "3.2.4",
+ "resolved": "https://registry.npmjs.org/@vitest/snapshot/-/snapshot-3.2.4.tgz",
+ "integrity": "sha512-dEYtS7qQP2CjU27QBC5oUOxLE/v5eLkGqPE0ZKEIDGMs4vKWe7IjgLOeauHsR0D5YuuycGRO5oSRXnwnmA78fQ==",
"dev": true,
"license": "MIT",
"dependencies": {
- "@vitest/pretty-format": "3.2.1",
+ "@vitest/pretty-format": "3.2.4",
"magic-string": "^0.30.17",
"pathe": "^2.0.3"
},
@@ -6635,9 +6636,9 @@
}
},
"node_modules/@vitest/spy": {
- "version": "3.2.1",
- "resolved": "https://registry.npmjs.org/@vitest/spy/-/spy-3.2.1.tgz",
- "integrity": "sha512-Nbfib34Z2rfcJGSetMxjDCznn4pCYPZOtQYox2kzebIJcgH75yheIKd5QYSFmR8DIZf2M8fwOm66qSDIfRFFfQ==",
+ "version": "3.2.4",
+ "resolved": "https://registry.npmjs.org/@vitest/spy/-/spy-3.2.4.tgz",
+ "integrity": "sha512-vAfasCOe6AIK70iP5UD11Ac4siNUNJ9i/9PZ3NKx07sG6sUxeag1LWdNrMWeKKYBLlzuK+Gn65Yd5nyL6ds+nw==",
"dev": true,
"license": "MIT",
"dependencies": {
@@ -6648,14 +6649,14 @@
}
},
"node_modules/@vitest/utils": {
- "version": "3.2.1",
- "resolved": "https://registry.npmjs.org/@vitest/utils/-/utils-3.2.1.tgz",
- "integrity": "sha512-KkHlGhePEKZSub5ViknBcN5KEF+u7dSUr9NW8QsVICusUojrgrOnnY3DEWWO877ax2Pyopuk2qHmt+gkNKnBVw==",
+ "version": "3.2.4",
+ "resolved": "https://registry.npmjs.org/@vitest/utils/-/utils-3.2.4.tgz",
+ "integrity": "sha512-fB2V0JFrQSMsCo9HiSq3Ezpdv4iYaXRG1Sx8edX3MwxfyNn83mKiGzOcH+Fkxt4MHxr3y42fQi1oeAInqgX2QA==",
"dev": true,
"license": "MIT",
"dependencies": {
- "@vitest/pretty-format": "3.2.1",
- "loupe": "^3.1.3",
+ "@vitest/pretty-format": "3.2.4",
+ "loupe": "^3.1.4",
"tinyrainbow": "^2.0.0"
},
"funding": {
@@ -14903,10 +14904,11 @@
}
},
"node_modules/loupe": {
- "version": "3.1.3",
- "resolved": "https://registry.npmjs.org/loupe/-/loupe-3.1.3.tgz",
- "integrity": "sha512-kkIp7XSkP78ZxJEsSxW3712C6teJVoeHHwgo9zJ380de7IYyJ2ISlxojcH2pC5OFLewESmnRi/+XCDIEEVyoug==",
- "dev": true
+ "version": "3.1.4",
+ "resolved": "https://registry.npmjs.org/loupe/-/loupe-3.1.4.tgz",
+ "integrity": "sha512-wJzkKwJrheKtknCOKNEtDK4iqg/MxmZheEMtSTYvnzRdEYaZzmgH976nenp8WdJRdx5Vc1X/9MO0Oszl6ezeXg==",
+ "dev": true,
+ "license": "MIT"
},
"node_modules/lower-case": {
"version": "2.0.2",
@@ -21251,6 +21253,26 @@
"url": "https://github.com/sponsors/sindresorhus"
}
},
+ "node_modules/strip-literal": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/strip-literal/-/strip-literal-3.0.0.tgz",
+ "integrity": "sha512-TcccoMhJOM3OebGhSBEmp3UZ2SfDMZUEBdRA/9ynfLi8yYajyWX3JiXArcJt4Umh4vISpspkQIY8ZZoCqjbviA==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "js-tokens": "^9.0.1"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/antfu"
+ }
+ },
+ "node_modules/strip-literal/node_modules/js-tokens": {
+ "version": "9.0.1",
+ "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-9.0.1.tgz",
+ "integrity": "sha512-mxa9E9ITFOt0ban3j6L5MpjwegGz6lBQmM1IJkWeBZGcMxto50+eWdjC/52xDbS2vy0k7vIMK0Fe2wfL9OQSpQ==",
+ "dev": true,
+ "license": "MIT"
+ },
"node_modules/style-loader": {
"version": "4.0.0",
"resolved": "https://registry.npmjs.org/style-loader/-/style-loader-4.0.0.tgz",
@@ -23429,9 +23451,9 @@
}
},
"node_modules/tinypool": {
- "version": "1.1.0",
- "resolved": "https://registry.npmjs.org/tinypool/-/tinypool-1.1.0.tgz",
- "integrity": "sha512-7CotroY9a8DKsKprEy/a14aCCm8jYVmR7aFy4fpkZM8sdpNJbKkixuNjgM50yCmip2ezc8z4N7k3oe2+rfRJCQ==",
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/tinypool/-/tinypool-1.1.1.tgz",
+ "integrity": "sha512-Zba82s87IFq9A9XmjiX5uZA/ARWDrB03OHlq+Vw1fSdt0I+4/Kutwy8BP4Y/y/aORMo61FQ0vIb5j44vSo5Pkg==",
"dev": true,
"license": "MIT",
"engines": {
@@ -24433,9 +24455,9 @@
}
},
"node_modules/vite-node": {
- "version": "3.2.1",
- "resolved": "https://registry.npmjs.org/vite-node/-/vite-node-3.2.1.tgz",
- "integrity": "sha512-V4EyKQPxquurNJPtQJRZo8hKOoKNBRIhxcDbQFPFig0JdoWcUhwRgK8yoCXXrfYVPKS6XwirGHPszLnR8FbjCA==",
+ "version": "3.2.4",
+ "resolved": "https://registry.npmjs.org/vite-node/-/vite-node-3.2.4.tgz",
+ "integrity": "sha512-EbKSKh+bh1E1IFxeO0pg1n4dvoOTt0UDiXMd/qn++r98+jPO1xtJilvXldeuQ8giIB5IkpjCgMleHMNEsGH6pg==",
"dev": true,
"license": "MIT",
"dependencies": {
@@ -24484,20 +24506,20 @@
}
},
"node_modules/vitest": {
- "version": "3.2.1",
- "resolved": "https://registry.npmjs.org/vitest/-/vitest-3.2.1.tgz",
- "integrity": "sha512-VZ40MBnlE1/V5uTgdqY3DmjUgZtIzsYq758JGlyQrv5syIsaYcabkfPkEuWML49Ph0D/SoqpVFd0dyVTr551oA==",
+ "version": "3.2.4",
+ "resolved": "https://registry.npmjs.org/vitest/-/vitest-3.2.4.tgz",
+ "integrity": "sha512-LUCP5ev3GURDysTWiP47wRRUpLKMOfPh+yKTx3kVIEiu5KOMeqzpnYNsKyOoVrULivR8tLcks4+lga33Whn90A==",
"dev": true,
"license": "MIT",
"dependencies": {
"@types/chai": "^5.2.2",
- "@vitest/expect": "3.2.1",
- "@vitest/mocker": "3.2.1",
- "@vitest/pretty-format": "^3.2.1",
- "@vitest/runner": "3.2.1",
- "@vitest/snapshot": "3.2.1",
- "@vitest/spy": "3.2.1",
- "@vitest/utils": "3.2.1",
+ "@vitest/expect": "3.2.4",
+ "@vitest/mocker": "3.2.4",
+ "@vitest/pretty-format": "^3.2.4",
+ "@vitest/runner": "3.2.4",
+ "@vitest/snapshot": "3.2.4",
+ "@vitest/spy": "3.2.4",
+ "@vitest/utils": "3.2.4",
"chai": "^5.2.0",
"debug": "^4.4.1",
"expect-type": "^1.2.1",
@@ -24508,10 +24530,10 @@
"tinybench": "^2.9.0",
"tinyexec": "^0.3.2",
"tinyglobby": "^0.2.14",
- "tinypool": "^1.1.0",
+ "tinypool": "^1.1.1",
"tinyrainbow": "^2.0.0",
"vite": "^5.0.0 || ^6.0.0 || ^7.0.0-0",
- "vite-node": "3.2.1",
+ "vite-node": "3.2.4",
"why-is-node-running": "^2.3.0"
},
"bin": {
@@ -24527,8 +24549,8 @@
"@edge-runtime/vm": "*",
"@types/debug": "^4.1.12",
"@types/node": "^18.0.0 || ^20.0.0 || >=22.0.0",
- "@vitest/browser": "3.2.1",
- "@vitest/ui": "3.2.1",
+ "@vitest/browser": "3.2.4",
+ "@vitest/ui": "3.2.4",
"happy-dom": "*",
"jsdom": "*"
},
@@ -24556,19 +24578,6 @@
}
}
},
- "node_modules/vitest/node_modules/@vitest/pretty-format": {
- "version": "3.2.3",
- "resolved": "https://registry.npmjs.org/@vitest/pretty-format/-/pretty-format-3.2.3.tgz",
- "integrity": "sha512-yFglXGkr9hW/yEXngO+IKMhP0jxyFw2/qys/CK4fFUZnSltD+MU7dVYGrH8rvPcK/O6feXQA+EU33gjaBBbAng==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "tinyrainbow": "^2.0.0"
- },
- "funding": {
- "url": "https://opencollective.com/vitest"
- }
- },
"node_modules/vitest/node_modules/picomatch": {
"version": "4.0.2",
"resolved": "https://registry.npmjs.org/picomatch/-/picomatch-4.0.2.tgz",
@@ -29143,9 +29152,9 @@
"dev": true
},
"@vitest/coverage-v8": {
- "version": "3.2.1",
- "resolved": "https://registry.npmjs.org/@vitest/coverage-v8/-/coverage-v8-3.2.1.tgz",
- "integrity": "sha512-6dy0uF/0BE3jpUW9bFzg0V2S4F7XVaZHL/7qma1XANvHPQGoJuc3wtx911zSoAgUnpfvcLVK1vancNJ95d+uxQ==",
+ "version": "3.2.4",
+ "resolved": "https://registry.npmjs.org/@vitest/coverage-v8/-/coverage-v8-3.2.4.tgz",
+ "integrity": "sha512-EyF9SXU6kS5Ku/U82E259WSnvg6c8KTjppUncuNdm5QHpe17mwREHnjDzozC8x9MZ0xfBUFSaLkRv4TMA75ALQ==",
"dev": true,
"requires": {
"@ampproject/remapping": "^2.3.0",
@@ -29164,76 +29173,77 @@
}
},
"@vitest/expect": {
- "version": "3.2.1",
- "resolved": "https://registry.npmjs.org/@vitest/expect/-/expect-3.2.1.tgz",
- "integrity": "sha512-FqS/BnDOzV6+IpxrTg5GQRyLOCtcJqkwMwcS8qGCI2IyRVDwPAtutztaf1CjtPHlZlWtl1yUPCd7HM0cNiDOYw==",
+ "version": "3.2.4",
+ "resolved": "https://registry.npmjs.org/@vitest/expect/-/expect-3.2.4.tgz",
+ "integrity": "sha512-Io0yyORnB6sikFlt8QW5K7slY4OjqNX9jmJQ02QDda8lyM6B5oNgVWoSoKPac8/kgnCUzuHQKrSLtu/uOqqrig==",
"dev": true,
"requires": {
"@types/chai": "^5.2.2",
- "@vitest/spy": "3.2.1",
- "@vitest/utils": "3.2.1",
+ "@vitest/spy": "3.2.4",
+ "@vitest/utils": "3.2.4",
"chai": "^5.2.0",
"tinyrainbow": "^2.0.0"
}
},
"@vitest/mocker": {
- "version": "3.2.1",
- "resolved": "https://registry.npmjs.org/@vitest/mocker/-/mocker-3.2.1.tgz",
- "integrity": "sha512-OXxMJnx1lkB+Vl65Re5BrsZEHc90s5NMjD23ZQ9NlU7f7nZiETGoX4NeKZSmsKjseuMq2uOYXdLOeoM0pJU+qw==",
+ "version": "3.2.4",
+ "resolved": "https://registry.npmjs.org/@vitest/mocker/-/mocker-3.2.4.tgz",
+ "integrity": "sha512-46ryTE9RZO/rfDd7pEqFl7etuyzekzEhUbTW3BvmeO/BcCMEgq59BKhek3dXDWgAj4oMK6OZi+vRr1wPW6qjEQ==",
"dev": true,
"requires": {
- "@vitest/spy": "3.2.1",
+ "@vitest/spy": "3.2.4",
"estree-walker": "^3.0.3",
"magic-string": "^0.30.17"
}
},
"@vitest/pretty-format": {
- "version": "3.2.1",
- "resolved": "https://registry.npmjs.org/@vitest/pretty-format/-/pretty-format-3.2.1.tgz",
- "integrity": "sha512-xBh1X2GPlOGBupp6E1RcUQWIxw0w/hRLd3XyBS6H+dMdKTAqHDNsIR2AnJwPA3yYe9DFy3VUKTe3VRTrAiQ01g==",
+ "version": "3.2.4",
+ "resolved": "https://registry.npmjs.org/@vitest/pretty-format/-/pretty-format-3.2.4.tgz",
+ "integrity": "sha512-IVNZik8IVRJRTr9fxlitMKeJeXFFFN0JaB9PHPGQ8NKQbGpfjlTx9zO4RefN8gp7eqjNy8nyK3NZmBzOPeIxtA==",
"dev": true,
"requires": {
"tinyrainbow": "^2.0.0"
}
},
"@vitest/runner": {
- "version": "3.2.1",
- "resolved": "https://registry.npmjs.org/@vitest/runner/-/runner-3.2.1.tgz",
- "integrity": "sha512-kygXhNTu/wkMYbwYpS3z/9tBe0O8qpdBuC3dD/AW9sWa0LE/DAZEjnHtWA9sIad7lpD4nFW1yQ+zN7mEKNH3yA==",
+ "version": "3.2.4",
+ "resolved": "https://registry.npmjs.org/@vitest/runner/-/runner-3.2.4.tgz",
+ "integrity": "sha512-oukfKT9Mk41LreEW09vt45f8wx7DordoWUZMYdY/cyAk7w5TWkTRCNZYF7sX7n2wB7jyGAl74OxgwhPgKaqDMQ==",
"dev": true,
"requires": {
- "@vitest/utils": "3.2.1",
- "pathe": "^2.0.3"
+ "@vitest/utils": "3.2.4",
+ "pathe": "^2.0.3",
+ "strip-literal": "^3.0.0"
}
},
"@vitest/snapshot": {
- "version": "3.2.1",
- "resolved": "https://registry.npmjs.org/@vitest/snapshot/-/snapshot-3.2.1.tgz",
- "integrity": "sha512-5xko/ZpW2Yc65NVK9Gpfg2y4BFvcF+At7yRT5AHUpTg9JvZ4xZoyuRY4ASlmNcBZjMslV08VRLDrBOmUe2YX3g==",
+ "version": "3.2.4",
+ "resolved": "https://registry.npmjs.org/@vitest/snapshot/-/snapshot-3.2.4.tgz",
+ "integrity": "sha512-dEYtS7qQP2CjU27QBC5oUOxLE/v5eLkGqPE0ZKEIDGMs4vKWe7IjgLOeauHsR0D5YuuycGRO5oSRXnwnmA78fQ==",
"dev": true,
"requires": {
- "@vitest/pretty-format": "3.2.1",
+ "@vitest/pretty-format": "3.2.4",
"magic-string": "^0.30.17",
"pathe": "^2.0.3"
}
},
"@vitest/spy": {
- "version": "3.2.1",
- "resolved": "https://registry.npmjs.org/@vitest/spy/-/spy-3.2.1.tgz",
- "integrity": "sha512-Nbfib34Z2rfcJGSetMxjDCznn4pCYPZOtQYox2kzebIJcgH75yheIKd5QYSFmR8DIZf2M8fwOm66qSDIfRFFfQ==",
+ "version": "3.2.4",
+ "resolved": "https://registry.npmjs.org/@vitest/spy/-/spy-3.2.4.tgz",
+ "integrity": "sha512-vAfasCOe6AIK70iP5UD11Ac4siNUNJ9i/9PZ3NKx07sG6sUxeag1LWdNrMWeKKYBLlzuK+Gn65Yd5nyL6ds+nw==",
"dev": true,
"requires": {
"tinyspy": "^4.0.3"
}
},
"@vitest/utils": {
- "version": "3.2.1",
- "resolved": "https://registry.npmjs.org/@vitest/utils/-/utils-3.2.1.tgz",
- "integrity": "sha512-KkHlGhePEKZSub5ViknBcN5KEF+u7dSUr9NW8QsVICusUojrgrOnnY3DEWWO877ax2Pyopuk2qHmt+gkNKnBVw==",
+ "version": "3.2.4",
+ "resolved": "https://registry.npmjs.org/@vitest/utils/-/utils-3.2.4.tgz",
+ "integrity": "sha512-fB2V0JFrQSMsCo9HiSq3Ezpdv4iYaXRG1Sx8edX3MwxfyNn83mKiGzOcH+Fkxt4MHxr3y42fQi1oeAInqgX2QA==",
"dev": true,
"requires": {
- "@vitest/pretty-format": "3.2.1",
- "loupe": "^3.1.3",
+ "@vitest/pretty-format": "3.2.4",
+ "loupe": "^3.1.4",
"tinyrainbow": "^2.0.0"
}
},
@@ -35068,9 +35078,9 @@
}
},
"loupe": {
- "version": "3.1.3",
- "resolved": "https://registry.npmjs.org/loupe/-/loupe-3.1.3.tgz",
- "integrity": "sha512-kkIp7XSkP78ZxJEsSxW3712C6teJVoeHHwgo9zJ380de7IYyJ2ISlxojcH2pC5OFLewESmnRi/+XCDIEEVyoug==",
+ "version": "3.1.4",
+ "resolved": "https://registry.npmjs.org/loupe/-/loupe-3.1.4.tgz",
+ "integrity": "sha512-wJzkKwJrheKtknCOKNEtDK4iqg/MxmZheEMtSTYvnzRdEYaZzmgH976nenp8WdJRdx5Vc1X/9MO0Oszl6ezeXg==",
"dev": true
},
"lower-case": {
@@ -39333,6 +39343,23 @@
"integrity": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==",
"dev": true
},
+ "strip-literal": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/strip-literal/-/strip-literal-3.0.0.tgz",
+ "integrity": "sha512-TcccoMhJOM3OebGhSBEmp3UZ2SfDMZUEBdRA/9ynfLi8yYajyWX3JiXArcJt4Umh4vISpspkQIY8ZZoCqjbviA==",
+ "dev": true,
+ "requires": {
+ "js-tokens": "^9.0.1"
+ },
+ "dependencies": {
+ "js-tokens": {
+ "version": "9.0.1",
+ "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-9.0.1.tgz",
+ "integrity": "sha512-mxa9E9ITFOt0ban3j6L5MpjwegGz6lBQmM1IJkWeBZGcMxto50+eWdjC/52xDbS2vy0k7vIMK0Fe2wfL9OQSpQ==",
+ "dev": true
+ }
+ }
+ },
"style-loader": {
"version": "4.0.0",
"resolved": "https://registry.npmjs.org/style-loader/-/style-loader-4.0.0.tgz",
@@ -40898,9 +40925,9 @@
}
},
"tinypool": {
- "version": "1.1.0",
- "resolved": "https://registry.npmjs.org/tinypool/-/tinypool-1.1.0.tgz",
- "integrity": "sha512-7CotroY9a8DKsKprEy/a14aCCm8jYVmR7aFy4fpkZM8sdpNJbKkixuNjgM50yCmip2ezc8z4N7k3oe2+rfRJCQ==",
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/tinypool/-/tinypool-1.1.1.tgz",
+ "integrity": "sha512-Zba82s87IFq9A9XmjiX5uZA/ARWDrB03OHlq+Vw1fSdt0I+4/Kutwy8BP4Y/y/aORMo61FQ0vIb5j44vSo5Pkg==",
"dev": true
},
"tinyrainbow": {
@@ -41576,9 +41603,9 @@
}
},
"vite-node": {
- "version": "3.2.1",
- "resolved": "https://registry.npmjs.org/vite-node/-/vite-node-3.2.1.tgz",
- "integrity": "sha512-V4EyKQPxquurNJPtQJRZo8hKOoKNBRIhxcDbQFPFig0JdoWcUhwRgK8yoCXXrfYVPKS6XwirGHPszLnR8FbjCA==",
+ "version": "3.2.4",
+ "resolved": "https://registry.npmjs.org/vite-node/-/vite-node-3.2.4.tgz",
+ "integrity": "sha512-EbKSKh+bh1E1IFxeO0pg1n4dvoOTt0UDiXMd/qn++r98+jPO1xtJilvXldeuQ8giIB5IkpjCgMleHMNEsGH6pg==",
"dev": true,
"requires": {
"cac": "^6.7.14",
@@ -41589,19 +41616,19 @@
}
},
"vitest": {
- "version": "3.2.1",
- "resolved": "https://registry.npmjs.org/vitest/-/vitest-3.2.1.tgz",
- "integrity": "sha512-VZ40MBnlE1/V5uTgdqY3DmjUgZtIzsYq758JGlyQrv5syIsaYcabkfPkEuWML49Ph0D/SoqpVFd0dyVTr551oA==",
+ "version": "3.2.4",
+ "resolved": "https://registry.npmjs.org/vitest/-/vitest-3.2.4.tgz",
+ "integrity": "sha512-LUCP5ev3GURDysTWiP47wRRUpLKMOfPh+yKTx3kVIEiu5KOMeqzpnYNsKyOoVrULivR8tLcks4+lga33Whn90A==",
"dev": true,
"requires": {
"@types/chai": "^5.2.2",
- "@vitest/expect": "3.2.1",
- "@vitest/mocker": "3.2.1",
- "@vitest/pretty-format": "^3.2.1",
- "@vitest/runner": "3.2.1",
- "@vitest/snapshot": "3.2.1",
- "@vitest/spy": "3.2.1",
- "@vitest/utils": "3.2.1",
+ "@vitest/expect": "3.2.4",
+ "@vitest/mocker": "3.2.4",
+ "@vitest/pretty-format": "^3.2.4",
+ "@vitest/runner": "3.2.4",
+ "@vitest/snapshot": "3.2.4",
+ "@vitest/spy": "3.2.4",
+ "@vitest/utils": "3.2.4",
"chai": "^5.2.0",
"debug": "^4.4.1",
"expect-type": "^1.2.1",
@@ -41612,22 +41639,13 @@
"tinybench": "^2.9.0",
"tinyexec": "^0.3.2",
"tinyglobby": "^0.2.14",
- "tinypool": "^1.1.0",
+ "tinypool": "^1.1.1",
"tinyrainbow": "^2.0.0",
"vite": "^5.0.0 || ^6.0.0 || ^7.0.0-0",
- "vite-node": "3.2.1",
+ "vite-node": "3.2.4",
"why-is-node-running": "^2.3.0"
},
"dependencies": {
- "@vitest/pretty-format": {
- "version": "3.2.3",
- "resolved": "https://registry.npmjs.org/@vitest/pretty-format/-/pretty-format-3.2.3.tgz",
- "integrity": "sha512-yFglXGkr9hW/yEXngO+IKMhP0jxyFw2/qys/CK4fFUZnSltD+MU7dVYGrH8rvPcK/O6feXQA+EU33gjaBBbAng==",
- "dev": true,
- "requires": {
- "tinyrainbow": "^2.0.0"
- }
- },
"picomatch": {
"version": "4.0.2",
"resolved": "https://registry.npmjs.org/picomatch/-/picomatch-4.0.2.tgz",
diff --git a/package.json b/package.json
index d8b55de4c..12511ed64 100644
--- a/package.json
+++ b/package.json
@@ -24,7 +24,7 @@
"@types/sortablejs": "1.15.8",
"@typescript-eslint/parser": "8.34.1",
"@uupaa/dynamic-import-polyfill": "1.0.2",
- "@vitest/coverage-v8": "3.2.1",
+ "@vitest/coverage-v8": "3.2.4",
"autoprefixer": "10.4.21",
"babel-loader": "10.0.0",
"clean-webpack-plugin": "4.0.0",
@@ -66,7 +66,7 @@
"ts-loader": "9.5.2",
"typescript": "5.8.3",
"typescript-eslint": "8.33.1",
- "vitest": "3.2.1",
+ "vitest": "3.2.4",
"webpack": "5.99.9",
"webpack-bundle-analyzer": "4.10.2",
"webpack-cli": "6.0.1",
From 3b6bb402226a2af898fffea31ef9c3b693b3b9d5 Mon Sep 17 00:00:00 2001
From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com>
Date: Fri, 27 Jun 2025 02:53:25 +0000
Subject: [PATCH 541/645] Update dependency core-js to v3.43.0
---
package-lock.json | 14 +++++++-------
package.json | 2 +-
2 files changed, 8 insertions(+), 8 deletions(-)
diff --git a/package-lock.json b/package-lock.json
index 7691bfe17..fcbda331b 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -30,7 +30,7 @@
"blurhash": "2.0.5",
"classlist.js": "https://github.com/eligrey/classList.js/archive/1.2.20180112.tar.gz",
"classnames": "2.5.1",
- "core-js": "3.42.0",
+ "core-js": "3.43.0",
"date-fns": "2.30.0",
"dompurify": "2.5.8",
"element-closest-polyfill": "1.0.7",
@@ -8898,9 +8898,9 @@
}
},
"node_modules/core-js": {
- "version": "3.42.0",
- "resolved": "https://registry.npmjs.org/core-js/-/core-js-3.42.0.tgz",
- "integrity": "sha512-Sz4PP4ZA+Rq4II21qkNqOEDTDrCvcANId3xpIgB34NDkWc3UduWj2dqEtN9yZIq8Dk3HyPI33x9sqqU5C8sr0g==",
+ "version": "3.43.0",
+ "resolved": "https://registry.npmjs.org/core-js/-/core-js-3.43.0.tgz",
+ "integrity": "sha512-N6wEbTTZSYOY2rYAn85CuvWWkCK6QweMn7/4Nr3w+gDBeBhk/x4EJeY6FPo4QzDoJZxVTv8U7CMvgWk6pOHHqA==",
"hasInstallScript": true,
"license": "MIT",
"funding": {
@@ -30842,9 +30842,9 @@
}
},
"core-js": {
- "version": "3.42.0",
- "resolved": "https://registry.npmjs.org/core-js/-/core-js-3.42.0.tgz",
- "integrity": "sha512-Sz4PP4ZA+Rq4II21qkNqOEDTDrCvcANId3xpIgB34NDkWc3UduWj2dqEtN9yZIq8Dk3HyPI33x9sqqU5C8sr0g=="
+ "version": "3.43.0",
+ "resolved": "https://registry.npmjs.org/core-js/-/core-js-3.43.0.tgz",
+ "integrity": "sha512-N6wEbTTZSYOY2rYAn85CuvWWkCK6QweMn7/4Nr3w+gDBeBhk/x4EJeY6FPo4QzDoJZxVTv8U7CMvgWk6pOHHqA=="
},
"core-js-compat": {
"version": "3.40.0",
diff --git a/package.json b/package.json
index d8b55de4c..6944eb11c 100644
--- a/package.json
+++ b/package.json
@@ -96,7 +96,7 @@
"blurhash": "2.0.5",
"classlist.js": "https://github.com/eligrey/classList.js/archive/1.2.20180112.tar.gz",
"classnames": "2.5.1",
- "core-js": "3.42.0",
+ "core-js": "3.43.0",
"date-fns": "2.30.0",
"dompurify": "2.5.8",
"element-closest-polyfill": "1.0.7",
From e4f2b7e189aef560e314a2a1b6bfc7758c1b4deb Mon Sep 17 00:00:00 2001
From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com>
Date: Fri, 27 Jun 2025 02:53:54 +0000
Subject: [PATCH 542/645] Update Sass to v1.89.2
---
package-lock.json | 396 ++++++++++++++++++----------------------------
package.json | 4 +-
2 files changed, 152 insertions(+), 248 deletions(-)
diff --git a/package-lock.json b/package-lock.json
index 7691bfe17..012558549 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -116,7 +116,7 @@
"postcss-loader": "8.1.1",
"postcss-preset-env": "10.2.0",
"postcss-scss": "4.0.9",
- "sass": "1.87.0",
+ "sass": "1.89.2",
"sass-loader": "16.0.5",
"source-map-loader": "5.0.0",
"speed-measure-webpack-plugin": "1.5.0",
@@ -143,7 +143,7 @@
"yarn": "YARN NO LONGER USED - use npm instead."
},
"optionalDependencies": {
- "sass-embedded": "1.87.0"
+ "sass-embedded": "1.89.2"
}
},
"node_modules/@aashutoshrathi/word-wrap": {
@@ -1830,9 +1830,9 @@
}
},
"node_modules/@bufbuild/protobuf": {
- "version": "2.1.0",
- "resolved": "https://registry.npmjs.org/@bufbuild/protobuf/-/protobuf-2.1.0.tgz",
- "integrity": "sha512-+2Mx67Y3skJ4NCD/qNSdBJNWtu6x6Qr53jeNg+QcwiL6mt0wK+3jwHH2x1p7xaYH6Ve2JKOVn0OxU35WsmqI9A==",
+ "version": "2.5.2",
+ "resolved": "https://registry.npmjs.org/@bufbuild/protobuf/-/protobuf-2.5.2.tgz",
+ "integrity": "sha512-foZ7qr0IsUBjzWIq+SuBLfdQCpJ1j8cTuNNT4owngTHoN5KsJb8L9t65fzz7SCeSWzescoOil/0ldqiL041ABg==",
"license": "(Apache-2.0 AND BSD-3-Clause)",
"optional": true
},
@@ -19425,9 +19425,9 @@
"dev": true
},
"node_modules/sass": {
- "version": "1.87.0",
- "resolved": "https://registry.npmjs.org/sass/-/sass-1.87.0.tgz",
- "integrity": "sha512-d0NoFH4v6SjEK7BoX810Jsrhj7IQSYHAHLi/iSpgqKc7LaIDshFRlSg5LOymf9FqQhxEHs2W5ZQXlvy0KD45Uw==",
+ "version": "1.89.2",
+ "resolved": "https://registry.npmjs.org/sass/-/sass-1.89.2.tgz",
+ "integrity": "sha512-xCmtksBKd/jdJ9Bt9p7nPKiuqrlBMBuuGkQlkhZjjQk3Ty48lv93k5Dq6OPkKt4XwxDJ7tvlfrTa1MPA9bf+QA==",
"dev": true,
"license": "MIT",
"dependencies": {
@@ -19446,13 +19446,13 @@
}
},
"node_modules/sass-embedded": {
- "version": "1.87.0",
- "resolved": "https://registry.npmjs.org/sass-embedded/-/sass-embedded-1.87.0.tgz",
- "integrity": "sha512-1IA3iTJNh4BkkA/nidKiVwbmkxr9o6LsPegycHMX/JYs255zpocN5GdLF1+onohQCJxbs5ldr8osKV7qNaNBjg==",
+ "version": "1.89.2",
+ "resolved": "https://registry.npmjs.org/sass-embedded/-/sass-embedded-1.89.2.tgz",
+ "integrity": "sha512-Ack2K8rc57kCFcYlf3HXpZEJFNUX8xd8DILldksREmYXQkRHI879yy8q4mRDJgrojkySMZqmmmW1NxrFxMsYaA==",
"license": "MIT",
"optional": true,
"dependencies": {
- "@bufbuild/protobuf": "^2.0.0",
+ "@bufbuild/protobuf": "^2.5.0",
"buffer-builder": "^0.2.0",
"colorjs.io": "^0.5.0",
"immutable": "^5.0.2",
@@ -19468,32 +19468,28 @@
"node": ">=16.0.0"
},
"optionalDependencies": {
- "sass-embedded-android-arm": "1.87.0",
- "sass-embedded-android-arm64": "1.87.0",
- "sass-embedded-android-ia32": "1.87.0",
- "sass-embedded-android-riscv64": "1.87.0",
- "sass-embedded-android-x64": "1.87.0",
- "sass-embedded-darwin-arm64": "1.87.0",
- "sass-embedded-darwin-x64": "1.87.0",
- "sass-embedded-linux-arm": "1.87.0",
- "sass-embedded-linux-arm64": "1.87.0",
- "sass-embedded-linux-ia32": "1.87.0",
- "sass-embedded-linux-musl-arm": "1.87.0",
- "sass-embedded-linux-musl-arm64": "1.87.0",
- "sass-embedded-linux-musl-ia32": "1.87.0",
- "sass-embedded-linux-musl-riscv64": "1.87.0",
- "sass-embedded-linux-musl-x64": "1.87.0",
- "sass-embedded-linux-riscv64": "1.87.0",
- "sass-embedded-linux-x64": "1.87.0",
- "sass-embedded-win32-arm64": "1.87.0",
- "sass-embedded-win32-ia32": "1.87.0",
- "sass-embedded-win32-x64": "1.87.0"
+ "sass-embedded-android-arm": "1.89.2",
+ "sass-embedded-android-arm64": "1.89.2",
+ "sass-embedded-android-riscv64": "1.89.2",
+ "sass-embedded-android-x64": "1.89.2",
+ "sass-embedded-darwin-arm64": "1.89.2",
+ "sass-embedded-darwin-x64": "1.89.2",
+ "sass-embedded-linux-arm": "1.89.2",
+ "sass-embedded-linux-arm64": "1.89.2",
+ "sass-embedded-linux-musl-arm": "1.89.2",
+ "sass-embedded-linux-musl-arm64": "1.89.2",
+ "sass-embedded-linux-musl-riscv64": "1.89.2",
+ "sass-embedded-linux-musl-x64": "1.89.2",
+ "sass-embedded-linux-riscv64": "1.89.2",
+ "sass-embedded-linux-x64": "1.89.2",
+ "sass-embedded-win32-arm64": "1.89.2",
+ "sass-embedded-win32-x64": "1.89.2"
}
},
"node_modules/sass-embedded-android-arm": {
- "version": "1.87.0",
- "resolved": "https://registry.npmjs.org/sass-embedded-android-arm/-/sass-embedded-android-arm-1.87.0.tgz",
- "integrity": "sha512-Z20u/Y1kFDpMbgiloR5YPLxNuMVeKQRC8e/n68oAAxf3u7rDSmNn2msi7USqgT1f2zdBBNawn/ifbFEla6JiHw==",
+ "version": "1.89.2",
+ "resolved": "https://registry.npmjs.org/sass-embedded-android-arm/-/sass-embedded-android-arm-1.89.2.tgz",
+ "integrity": "sha512-oHAPTboBHRZlDBhyRB6dvDKh4KvFs+DZibDHXbkSI6dBZxMTT+Yb2ivocHnctVGucKTLQeT7+OM5DjWHyynL/A==",
"cpu": [
"arm"
],
@@ -19507,9 +19503,9 @@
}
},
"node_modules/sass-embedded-android-arm64": {
- "version": "1.87.0",
- "resolved": "https://registry.npmjs.org/sass-embedded-android-arm64/-/sass-embedded-android-arm64-1.87.0.tgz",
- "integrity": "sha512-uqeZoBuXm3W2KhxolScAAfWOLHL21e50g7AxlLmG0he7WZsWw6e9kSnmq301iLIFp4kvmXYXbXbNKAeu9ItRYA==",
+ "version": "1.89.2",
+ "resolved": "https://registry.npmjs.org/sass-embedded-android-arm64/-/sass-embedded-android-arm64-1.89.2.tgz",
+ "integrity": "sha512-+pq7a7AUpItNyPu61sRlP6G2A8pSPpyazASb+8AK2pVlFayCSPAEgpwpCE9A2/Xj86xJZeMizzKUHxM2CBCUxA==",
"cpu": [
"arm64"
],
@@ -19522,26 +19518,10 @@
"node": ">=14.0.0"
}
},
- "node_modules/sass-embedded-android-ia32": {
- "version": "1.87.0",
- "resolved": "https://registry.npmjs.org/sass-embedded-android-ia32/-/sass-embedded-android-ia32-1.87.0.tgz",
- "integrity": "sha512-hSWTqo2Igdig528cUb1W1+emw9d1J4+nqOoR4tERS04zcwRRFNDiuBT0o5meV7nkEwE982F+h57YdcRXj8gTtg==",
- "cpu": [
- "ia32"
- ],
- "license": "MIT",
- "optional": true,
- "os": [
- "android"
- ],
- "engines": {
- "node": ">=14.0.0"
- }
- },
"node_modules/sass-embedded-android-riscv64": {
- "version": "1.87.0",
- "resolved": "https://registry.npmjs.org/sass-embedded-android-riscv64/-/sass-embedded-android-riscv64-1.87.0.tgz",
- "integrity": "sha512-kBAPSjiTBLy5ua/0LRNAJwOAARhzFU7gP35fYORJcdBuz1lkIVPVnid1lh9qQ6Ce9MOJcr7VKFtGnTuqVeig5A==",
+ "version": "1.89.2",
+ "resolved": "https://registry.npmjs.org/sass-embedded-android-riscv64/-/sass-embedded-android-riscv64-1.89.2.tgz",
+ "integrity": "sha512-HfJJWp/S6XSYvlGAqNdakeEMPOdhBkj2s2lN6SHnON54rahKem+z9pUbCriUJfM65Z90lakdGuOfidY61R9TYg==",
"cpu": [
"riscv64"
],
@@ -19555,9 +19535,9 @@
}
},
"node_modules/sass-embedded-android-x64": {
- "version": "1.87.0",
- "resolved": "https://registry.npmjs.org/sass-embedded-android-x64/-/sass-embedded-android-x64-1.87.0.tgz",
- "integrity": "sha512-ZHMrNdtdMSpJUYco2MesnlPwDTZftD3pqkkOMI2pbqarPoFUKJtP5k80nwCM0sJGtqfNE+O16w9yPght0CMiJg==",
+ "version": "1.89.2",
+ "resolved": "https://registry.npmjs.org/sass-embedded-android-x64/-/sass-embedded-android-x64-1.89.2.tgz",
+ "integrity": "sha512-BGPzq53VH5z5HN8de6jfMqJjnRe1E6sfnCWFd4pK+CAiuM7iw5Fx6BQZu3ikfI1l2GY0y6pRXzsVLdp/j4EKEA==",
"cpu": [
"x64"
],
@@ -19571,9 +19551,9 @@
}
},
"node_modules/sass-embedded-darwin-arm64": {
- "version": "1.87.0",
- "resolved": "https://registry.npmjs.org/sass-embedded-darwin-arm64/-/sass-embedded-darwin-arm64-1.87.0.tgz",
- "integrity": "sha512-7TK1JWJdCIRSdZv5CJv/HpDz/wIfwUy2FoPz9sVOEj1pDTH0N+VfJd5VutCddIdoQN9jr0ap8vwkc65FbAxV2A==",
+ "version": "1.89.2",
+ "resolved": "https://registry.npmjs.org/sass-embedded-darwin-arm64/-/sass-embedded-darwin-arm64-1.89.2.tgz",
+ "integrity": "sha512-UCm3RL/tzMpG7DsubARsvGUNXC5pgfQvP+RRFJo9XPIi6elopY5B6H4m9dRYDpHA+scjVthdiDwkPYr9+S/KGw==",
"cpu": [
"arm64"
],
@@ -19587,9 +19567,9 @@
}
},
"node_modules/sass-embedded-darwin-x64": {
- "version": "1.87.0",
- "resolved": "https://registry.npmjs.org/sass-embedded-darwin-x64/-/sass-embedded-darwin-x64-1.87.0.tgz",
- "integrity": "sha512-2JiQzt7FmgUC4MYT2QvbeH/Bi3e76WEhaYoc5P3WyTW8unsHksyTdMuTuYe0Qf9usIyt6bmm5no/4BBw7c8Cig==",
+ "version": "1.89.2",
+ "resolved": "https://registry.npmjs.org/sass-embedded-darwin-x64/-/sass-embedded-darwin-x64-1.89.2.tgz",
+ "integrity": "sha512-D9WxtDY5VYtMApXRuhQK9VkPHB8R79NIIR6xxVlN2MIdEid/TZWi1MHNweieETXhWGrKhRKglwnHxxyKdJYMnA==",
"cpu": [
"x64"
],
@@ -19603,9 +19583,9 @@
}
},
"node_modules/sass-embedded-linux-arm": {
- "version": "1.87.0",
- "resolved": "https://registry.npmjs.org/sass-embedded-linux-arm/-/sass-embedded-linux-arm-1.87.0.tgz",
- "integrity": "sha512-z5P6INMsGXiUcq1sRRbksyQUhalFFYjTEexuxfSYdK3U2YQMADHubQh8pGzkWvFRPOpnh83RiGuwvpaARYHnsw==",
+ "version": "1.89.2",
+ "resolved": "https://registry.npmjs.org/sass-embedded-linux-arm/-/sass-embedded-linux-arm-1.89.2.tgz",
+ "integrity": "sha512-leP0t5U4r95dc90o8TCWfxNXwMAsQhpWxTkdtySDpngoqtTy3miMd7EYNYd1znI0FN1CBaUvbdCMbnbPwygDlA==",
"cpu": [
"arm"
],
@@ -19619,9 +19599,9 @@
}
},
"node_modules/sass-embedded-linux-arm64": {
- "version": "1.87.0",
- "resolved": "https://registry.npmjs.org/sass-embedded-linux-arm64/-/sass-embedded-linux-arm64-1.87.0.tgz",
- "integrity": "sha512-5z+mwJCbGZcg+q+MwdEVSh0ogFK7OSAe175Gsozzr/Izw34Q+RGUw9O82jsV2c4YNuTAQvzEHgIO5cvNvt3Quw==",
+ "version": "1.89.2",
+ "resolved": "https://registry.npmjs.org/sass-embedded-linux-arm64/-/sass-embedded-linux-arm64-1.89.2.tgz",
+ "integrity": "sha512-2N4WW5LLsbtrWUJ7iTpjvhajGIbmDR18ZzYRywHdMLpfdPApuHPMDF5CYzHbS+LLx2UAx7CFKBnj5LLjY6eFgQ==",
"cpu": [
"arm64"
],
@@ -19634,26 +19614,10 @@
"node": ">=14.0.0"
}
},
- "node_modules/sass-embedded-linux-ia32": {
- "version": "1.87.0",
- "resolved": "https://registry.npmjs.org/sass-embedded-linux-ia32/-/sass-embedded-linux-ia32-1.87.0.tgz",
- "integrity": "sha512-Xzcp+YPp0iakGL148Jl57CO+MxLuj2jsry3M+rc1cSnDlvkjNVs6TMxaL70GFeV5HdU2V60voYcgE7adDUtJjw==",
- "cpu": [
- "ia32"
- ],
- "license": "MIT",
- "optional": true,
- "os": [
- "linux"
- ],
- "engines": {
- "node": ">=14.0.0"
- }
- },
"node_modules/sass-embedded-linux-musl-arm": {
- "version": "1.87.0",
- "resolved": "https://registry.npmjs.org/sass-embedded-linux-musl-arm/-/sass-embedded-linux-musl-arm-1.87.0.tgz",
- "integrity": "sha512-4PyqOWhRzyu06RRmpCCBOJdF4BOv7s446wrV6yODtEyyfSIDx3MJabo3KT0oJ1lTWSI/aU3R89bKx0JFXcIHHw==",
+ "version": "1.89.2",
+ "resolved": "https://registry.npmjs.org/sass-embedded-linux-musl-arm/-/sass-embedded-linux-musl-arm-1.89.2.tgz",
+ "integrity": "sha512-Z6gG2FiVEEdxYHRi2sS5VIYBmp17351bWtOCUZ/thBM66+e70yiN6Eyqjz80DjL8haRUegNQgy9ZJqsLAAmr9g==",
"cpu": [
"arm"
],
@@ -19667,9 +19631,9 @@
}
},
"node_modules/sass-embedded-linux-musl-arm64": {
- "version": "1.87.0",
- "resolved": "https://registry.npmjs.org/sass-embedded-linux-musl-arm64/-/sass-embedded-linux-musl-arm64-1.87.0.tgz",
- "integrity": "sha512-HWE5eTRCoKzFZWsxOjDMTF5m4DDTQ0n7NJxSYiUXPBDydr9viPXbGOMYG7WVJLjiF7upr7DYo/mfp/SNTMlZyg==",
+ "version": "1.89.2",
+ "resolved": "https://registry.npmjs.org/sass-embedded-linux-musl-arm64/-/sass-embedded-linux-musl-arm64-1.89.2.tgz",
+ "integrity": "sha512-nTyuaBX6U1A/cG7WJh0pKD1gY8hbg1m2SnzsyoFG+exQ0lBX/lwTLHq3nyhF+0atv7YYhYKbmfz+sjPP8CZ9lw==",
"cpu": [
"arm64"
],
@@ -19682,26 +19646,10 @@
"node": ">=14.0.0"
}
},
- "node_modules/sass-embedded-linux-musl-ia32": {
- "version": "1.87.0",
- "resolved": "https://registry.npmjs.org/sass-embedded-linux-musl-ia32/-/sass-embedded-linux-musl-ia32-1.87.0.tgz",
- "integrity": "sha512-aQaPvlRn3kh93PLQvl6BcFKu8Ji92+42blFEkg6nMVvmugD5ZwH2TGFrX25ibx4CYxRpMS4ssF7a0i7vy5HB1Q==",
- "cpu": [
- "ia32"
- ],
- "license": "MIT",
- "optional": true,
- "os": [
- "linux"
- ],
- "engines": {
- "node": ">=14.0.0"
- }
- },
"node_modules/sass-embedded-linux-musl-riscv64": {
- "version": "1.87.0",
- "resolved": "https://registry.npmjs.org/sass-embedded-linux-musl-riscv64/-/sass-embedded-linux-musl-riscv64-1.87.0.tgz",
- "integrity": "sha512-o5DxcqiFzET3KRWo+futHr/lhAMBP3tJGGx8YIgpHQYfvDMbsvE0hiFC+nZ/GF9dbcGd+ceIQwfvE5mcc7Gsjw==",
+ "version": "1.89.2",
+ "resolved": "https://registry.npmjs.org/sass-embedded-linux-musl-riscv64/-/sass-embedded-linux-musl-riscv64-1.89.2.tgz",
+ "integrity": "sha512-N6oul+qALO0SwGY8JW7H/Vs0oZIMrRMBM4GqX3AjM/6y8JsJRxkAwnfd0fDyK+aICMFarDqQonQNIx99gdTZqw==",
"cpu": [
"riscv64"
],
@@ -19715,9 +19663,9 @@
}
},
"node_modules/sass-embedded-linux-musl-x64": {
- "version": "1.87.0",
- "resolved": "https://registry.npmjs.org/sass-embedded-linux-musl-x64/-/sass-embedded-linux-musl-x64-1.87.0.tgz",
- "integrity": "sha512-dKxWsu9Wu/CyfzQmHdeiGqrRSzJ85VUjbSx+aP1/7ttmps3SSg+YW95PuqnCOa7GSuSreC3dKKpXHTywUxMLQA==",
+ "version": "1.89.2",
+ "resolved": "https://registry.npmjs.org/sass-embedded-linux-musl-x64/-/sass-embedded-linux-musl-x64-1.89.2.tgz",
+ "integrity": "sha512-K+FmWcdj/uyP8GiG9foxOCPfb5OAZG0uSVq80DKgVSC0U44AdGjvAvVZkrgFEcZ6cCqlNC2JfYmslB5iqdL7tg==",
"cpu": [
"x64"
],
@@ -19731,9 +19679,9 @@
}
},
"node_modules/sass-embedded-linux-riscv64": {
- "version": "1.87.0",
- "resolved": "https://registry.npmjs.org/sass-embedded-linux-riscv64/-/sass-embedded-linux-riscv64-1.87.0.tgz",
- "integrity": "sha512-Sy3ESZ4FwBiijvmTA9n+0p0w3MNCue1AgINVPzpAY27EFi0h49eqQm9SWfOkFqmkFS2zFRYowdQOr5Bbr2gOXA==",
+ "version": "1.89.2",
+ "resolved": "https://registry.npmjs.org/sass-embedded-linux-riscv64/-/sass-embedded-linux-riscv64-1.89.2.tgz",
+ "integrity": "sha512-g9nTbnD/3yhOaskeqeBQETbtfDQWRgsjHok6bn7DdAuwBsyrR3JlSFyqKc46pn9Xxd9SQQZU8AzM4IR+sY0A0w==",
"cpu": [
"riscv64"
],
@@ -19747,9 +19695,9 @@
}
},
"node_modules/sass-embedded-linux-x64": {
- "version": "1.87.0",
- "resolved": "https://registry.npmjs.org/sass-embedded-linux-x64/-/sass-embedded-linux-x64-1.87.0.tgz",
- "integrity": "sha512-+UfjakOcHHKTnEqB3EZ+KqzezQOe1emvy4Rs+eQhLyfekpYuNze/qlRvYxfKTmrtvDiUrIto8MXsyZfMLzkuMA==",
+ "version": "1.89.2",
+ "resolved": "https://registry.npmjs.org/sass-embedded-linux-x64/-/sass-embedded-linux-x64-1.89.2.tgz",
+ "integrity": "sha512-Ax7dKvzncyQzIl4r7012KCMBvJzOz4uwSNoyoM5IV6y5I1f5hEwI25+U4WfuTqdkv42taCMgpjZbh9ERr6JVMQ==",
"cpu": [
"x64"
],
@@ -19763,9 +19711,9 @@
}
},
"node_modules/sass-embedded-win32-arm64": {
- "version": "1.87.0",
- "resolved": "https://registry.npmjs.org/sass-embedded-win32-arm64/-/sass-embedded-win32-arm64-1.87.0.tgz",
- "integrity": "sha512-m1DS6FYUE0/fv+vt38uQB/kxR4UjnyD+2zcSc298pFmA0aYh/XZIPWw7RxG1HL3KLE1ZrGyu3254MPoxRhs3ig==",
+ "version": "1.89.2",
+ "resolved": "https://registry.npmjs.org/sass-embedded-win32-arm64/-/sass-embedded-win32-arm64-1.89.2.tgz",
+ "integrity": "sha512-j96iJni50ZUsfD6tRxDQE2QSYQ2WrfHxeiyAXf41Kw0V4w5KYR/Sf6rCZQLMTUOHnD16qTMVpQi20LQSqf4WGg==",
"cpu": [
"arm64"
],
@@ -19778,26 +19726,10 @@
"node": ">=14.0.0"
}
},
- "node_modules/sass-embedded-win32-ia32": {
- "version": "1.87.0",
- "resolved": "https://registry.npmjs.org/sass-embedded-win32-ia32/-/sass-embedded-win32-ia32-1.87.0.tgz",
- "integrity": "sha512-JztXLo59GMe2E6g+kCsyiERYhtZgkcyDYx6CrXoSTE5WaE+RbxRiCCCv8/1+hf406f08pUxJ8G0Ody7M5urtBA==",
- "cpu": [
- "ia32"
- ],
- "license": "MIT",
- "optional": true,
- "os": [
- "win32"
- ],
- "engines": {
- "node": ">=14.0.0"
- }
- },
"node_modules/sass-embedded-win32-x64": {
- "version": "1.87.0",
- "resolved": "https://registry.npmjs.org/sass-embedded-win32-x64/-/sass-embedded-win32-x64-1.87.0.tgz",
- "integrity": "sha512-4nQErpauvhgSo+7ClumGdjdf9sGx+U9yBgvhI0+zUw+D5YvraVgvA0Lk8Wuwntx2PqnvKUk8YDr/vxHJostv4Q==",
+ "version": "1.89.2",
+ "resolved": "https://registry.npmjs.org/sass-embedded-win32-x64/-/sass-embedded-win32-x64-1.89.2.tgz",
+ "integrity": "sha512-cS2j5ljdkQsb4PaORiClaVYynE9OAPZG/XjbOMxpQmjRIf7UroY4PEIH+Waf+y47PfXFX9SyxhYuw2NIKGbEng==",
"cpu": [
"x64"
],
@@ -26650,9 +26582,9 @@
"dev": true
},
"@bufbuild/protobuf": {
- "version": "2.1.0",
- "resolved": "https://registry.npmjs.org/@bufbuild/protobuf/-/protobuf-2.1.0.tgz",
- "integrity": "sha512-+2Mx67Y3skJ4NCD/qNSdBJNWtu6x6Qr53jeNg+QcwiL6mt0wK+3jwHH2x1p7xaYH6Ve2JKOVn0OxU35WsmqI9A==",
+ "version": "2.5.2",
+ "resolved": "https://registry.npmjs.org/@bufbuild/protobuf/-/protobuf-2.5.2.tgz",
+ "integrity": "sha512-foZ7qr0IsUBjzWIq+SuBLfdQCpJ1j8cTuNNT4owngTHoN5KsJb8L9t65fzz7SCeSWzescoOil/0ldqiL041ABg==",
"optional": true
},
"@colors/colors": {
@@ -38097,9 +38029,9 @@
"dev": true
},
"sass": {
- "version": "1.87.0",
- "resolved": "https://registry.npmjs.org/sass/-/sass-1.87.0.tgz",
- "integrity": "sha512-d0NoFH4v6SjEK7BoX810Jsrhj7IQSYHAHLi/iSpgqKc7LaIDshFRlSg5LOymf9FqQhxEHs2W5ZQXlvy0KD45Uw==",
+ "version": "1.89.2",
+ "resolved": "https://registry.npmjs.org/sass/-/sass-1.89.2.tgz",
+ "integrity": "sha512-xCmtksBKd/jdJ9Bt9p7nPKiuqrlBMBuuGkQlkhZjjQk3Ty48lv93k5Dq6OPkKt4XwxDJ7tvlfrTa1MPA9bf+QA==",
"dev": true,
"requires": {
"@parcel/watcher": "^2.4.1",
@@ -38126,36 +38058,32 @@
}
},
"sass-embedded": {
- "version": "1.87.0",
- "resolved": "https://registry.npmjs.org/sass-embedded/-/sass-embedded-1.87.0.tgz",
- "integrity": "sha512-1IA3iTJNh4BkkA/nidKiVwbmkxr9o6LsPegycHMX/JYs255zpocN5GdLF1+onohQCJxbs5ldr8osKV7qNaNBjg==",
+ "version": "1.89.2",
+ "resolved": "https://registry.npmjs.org/sass-embedded/-/sass-embedded-1.89.2.tgz",
+ "integrity": "sha512-Ack2K8rc57kCFcYlf3HXpZEJFNUX8xd8DILldksREmYXQkRHI879yy8q4mRDJgrojkySMZqmmmW1NxrFxMsYaA==",
"optional": true,
"requires": {
- "@bufbuild/protobuf": "^2.0.0",
+ "@bufbuild/protobuf": "^2.5.0",
"buffer-builder": "^0.2.0",
"colorjs.io": "^0.5.0",
"immutable": "^5.0.2",
"rxjs": "^7.4.0",
- "sass-embedded-android-arm": "1.87.0",
- "sass-embedded-android-arm64": "1.87.0",
- "sass-embedded-android-ia32": "1.87.0",
- "sass-embedded-android-riscv64": "1.87.0",
- "sass-embedded-android-x64": "1.87.0",
- "sass-embedded-darwin-arm64": "1.87.0",
- "sass-embedded-darwin-x64": "1.87.0",
- "sass-embedded-linux-arm": "1.87.0",
- "sass-embedded-linux-arm64": "1.87.0",
- "sass-embedded-linux-ia32": "1.87.0",
- "sass-embedded-linux-musl-arm": "1.87.0",
- "sass-embedded-linux-musl-arm64": "1.87.0",
- "sass-embedded-linux-musl-ia32": "1.87.0",
- "sass-embedded-linux-musl-riscv64": "1.87.0",
- "sass-embedded-linux-musl-x64": "1.87.0",
- "sass-embedded-linux-riscv64": "1.87.0",
- "sass-embedded-linux-x64": "1.87.0",
- "sass-embedded-win32-arm64": "1.87.0",
- "sass-embedded-win32-ia32": "1.87.0",
- "sass-embedded-win32-x64": "1.87.0",
+ "sass-embedded-android-arm": "1.89.2",
+ "sass-embedded-android-arm64": "1.89.2",
+ "sass-embedded-android-riscv64": "1.89.2",
+ "sass-embedded-android-x64": "1.89.2",
+ "sass-embedded-darwin-arm64": "1.89.2",
+ "sass-embedded-darwin-x64": "1.89.2",
+ "sass-embedded-linux-arm": "1.89.2",
+ "sass-embedded-linux-arm64": "1.89.2",
+ "sass-embedded-linux-musl-arm": "1.89.2",
+ "sass-embedded-linux-musl-arm64": "1.89.2",
+ "sass-embedded-linux-musl-riscv64": "1.89.2",
+ "sass-embedded-linux-musl-x64": "1.89.2",
+ "sass-embedded-linux-riscv64": "1.89.2",
+ "sass-embedded-linux-x64": "1.89.2",
+ "sass-embedded-win32-arm64": "1.89.2",
+ "sass-embedded-win32-x64": "1.89.2",
"supports-color": "^8.1.1",
"sync-child-process": "^1.0.2",
"varint": "^6.0.0"
@@ -38179,123 +38107,99 @@
}
},
"sass-embedded-android-arm": {
- "version": "1.87.0",
- "resolved": "https://registry.npmjs.org/sass-embedded-android-arm/-/sass-embedded-android-arm-1.87.0.tgz",
- "integrity": "sha512-Z20u/Y1kFDpMbgiloR5YPLxNuMVeKQRC8e/n68oAAxf3u7rDSmNn2msi7USqgT1f2zdBBNawn/ifbFEla6JiHw==",
+ "version": "1.89.2",
+ "resolved": "https://registry.npmjs.org/sass-embedded-android-arm/-/sass-embedded-android-arm-1.89.2.tgz",
+ "integrity": "sha512-oHAPTboBHRZlDBhyRB6dvDKh4KvFs+DZibDHXbkSI6dBZxMTT+Yb2ivocHnctVGucKTLQeT7+OM5DjWHyynL/A==",
"optional": true
},
"sass-embedded-android-arm64": {
- "version": "1.87.0",
- "resolved": "https://registry.npmjs.org/sass-embedded-android-arm64/-/sass-embedded-android-arm64-1.87.0.tgz",
- "integrity": "sha512-uqeZoBuXm3W2KhxolScAAfWOLHL21e50g7AxlLmG0he7WZsWw6e9kSnmq301iLIFp4kvmXYXbXbNKAeu9ItRYA==",
- "optional": true
- },
- "sass-embedded-android-ia32": {
- "version": "1.87.0",
- "resolved": "https://registry.npmjs.org/sass-embedded-android-ia32/-/sass-embedded-android-ia32-1.87.0.tgz",
- "integrity": "sha512-hSWTqo2Igdig528cUb1W1+emw9d1J4+nqOoR4tERS04zcwRRFNDiuBT0o5meV7nkEwE982F+h57YdcRXj8gTtg==",
+ "version": "1.89.2",
+ "resolved": "https://registry.npmjs.org/sass-embedded-android-arm64/-/sass-embedded-android-arm64-1.89.2.tgz",
+ "integrity": "sha512-+pq7a7AUpItNyPu61sRlP6G2A8pSPpyazASb+8AK2pVlFayCSPAEgpwpCE9A2/Xj86xJZeMizzKUHxM2CBCUxA==",
"optional": true
},
"sass-embedded-android-riscv64": {
- "version": "1.87.0",
- "resolved": "https://registry.npmjs.org/sass-embedded-android-riscv64/-/sass-embedded-android-riscv64-1.87.0.tgz",
- "integrity": "sha512-kBAPSjiTBLy5ua/0LRNAJwOAARhzFU7gP35fYORJcdBuz1lkIVPVnid1lh9qQ6Ce9MOJcr7VKFtGnTuqVeig5A==",
+ "version": "1.89.2",
+ "resolved": "https://registry.npmjs.org/sass-embedded-android-riscv64/-/sass-embedded-android-riscv64-1.89.2.tgz",
+ "integrity": "sha512-HfJJWp/S6XSYvlGAqNdakeEMPOdhBkj2s2lN6SHnON54rahKem+z9pUbCriUJfM65Z90lakdGuOfidY61R9TYg==",
"optional": true
},
"sass-embedded-android-x64": {
- "version": "1.87.0",
- "resolved": "https://registry.npmjs.org/sass-embedded-android-x64/-/sass-embedded-android-x64-1.87.0.tgz",
- "integrity": "sha512-ZHMrNdtdMSpJUYco2MesnlPwDTZftD3pqkkOMI2pbqarPoFUKJtP5k80nwCM0sJGtqfNE+O16w9yPght0CMiJg==",
+ "version": "1.89.2",
+ "resolved": "https://registry.npmjs.org/sass-embedded-android-x64/-/sass-embedded-android-x64-1.89.2.tgz",
+ "integrity": "sha512-BGPzq53VH5z5HN8de6jfMqJjnRe1E6sfnCWFd4pK+CAiuM7iw5Fx6BQZu3ikfI1l2GY0y6pRXzsVLdp/j4EKEA==",
"optional": true
},
"sass-embedded-darwin-arm64": {
- "version": "1.87.0",
- "resolved": "https://registry.npmjs.org/sass-embedded-darwin-arm64/-/sass-embedded-darwin-arm64-1.87.0.tgz",
- "integrity": "sha512-7TK1JWJdCIRSdZv5CJv/HpDz/wIfwUy2FoPz9sVOEj1pDTH0N+VfJd5VutCddIdoQN9jr0ap8vwkc65FbAxV2A==",
+ "version": "1.89.2",
+ "resolved": "https://registry.npmjs.org/sass-embedded-darwin-arm64/-/sass-embedded-darwin-arm64-1.89.2.tgz",
+ "integrity": "sha512-UCm3RL/tzMpG7DsubARsvGUNXC5pgfQvP+RRFJo9XPIi6elopY5B6H4m9dRYDpHA+scjVthdiDwkPYr9+S/KGw==",
"optional": true
},
"sass-embedded-darwin-x64": {
- "version": "1.87.0",
- "resolved": "https://registry.npmjs.org/sass-embedded-darwin-x64/-/sass-embedded-darwin-x64-1.87.0.tgz",
- "integrity": "sha512-2JiQzt7FmgUC4MYT2QvbeH/Bi3e76WEhaYoc5P3WyTW8unsHksyTdMuTuYe0Qf9usIyt6bmm5no/4BBw7c8Cig==",
+ "version": "1.89.2",
+ "resolved": "https://registry.npmjs.org/sass-embedded-darwin-x64/-/sass-embedded-darwin-x64-1.89.2.tgz",
+ "integrity": "sha512-D9WxtDY5VYtMApXRuhQK9VkPHB8R79NIIR6xxVlN2MIdEid/TZWi1MHNweieETXhWGrKhRKglwnHxxyKdJYMnA==",
"optional": true
},
"sass-embedded-linux-arm": {
- "version": "1.87.0",
- "resolved": "https://registry.npmjs.org/sass-embedded-linux-arm/-/sass-embedded-linux-arm-1.87.0.tgz",
- "integrity": "sha512-z5P6INMsGXiUcq1sRRbksyQUhalFFYjTEexuxfSYdK3U2YQMADHubQh8pGzkWvFRPOpnh83RiGuwvpaARYHnsw==",
+ "version": "1.89.2",
+ "resolved": "https://registry.npmjs.org/sass-embedded-linux-arm/-/sass-embedded-linux-arm-1.89.2.tgz",
+ "integrity": "sha512-leP0t5U4r95dc90o8TCWfxNXwMAsQhpWxTkdtySDpngoqtTy3miMd7EYNYd1znI0FN1CBaUvbdCMbnbPwygDlA==",
"optional": true
},
"sass-embedded-linux-arm64": {
- "version": "1.87.0",
- "resolved": "https://registry.npmjs.org/sass-embedded-linux-arm64/-/sass-embedded-linux-arm64-1.87.0.tgz",
- "integrity": "sha512-5z+mwJCbGZcg+q+MwdEVSh0ogFK7OSAe175Gsozzr/Izw34Q+RGUw9O82jsV2c4YNuTAQvzEHgIO5cvNvt3Quw==",
- "optional": true
- },
- "sass-embedded-linux-ia32": {
- "version": "1.87.0",
- "resolved": "https://registry.npmjs.org/sass-embedded-linux-ia32/-/sass-embedded-linux-ia32-1.87.0.tgz",
- "integrity": "sha512-Xzcp+YPp0iakGL148Jl57CO+MxLuj2jsry3M+rc1cSnDlvkjNVs6TMxaL70GFeV5HdU2V60voYcgE7adDUtJjw==",
+ "version": "1.89.2",
+ "resolved": "https://registry.npmjs.org/sass-embedded-linux-arm64/-/sass-embedded-linux-arm64-1.89.2.tgz",
+ "integrity": "sha512-2N4WW5LLsbtrWUJ7iTpjvhajGIbmDR18ZzYRywHdMLpfdPApuHPMDF5CYzHbS+LLx2UAx7CFKBnj5LLjY6eFgQ==",
"optional": true
},
"sass-embedded-linux-musl-arm": {
- "version": "1.87.0",
- "resolved": "https://registry.npmjs.org/sass-embedded-linux-musl-arm/-/sass-embedded-linux-musl-arm-1.87.0.tgz",
- "integrity": "sha512-4PyqOWhRzyu06RRmpCCBOJdF4BOv7s446wrV6yODtEyyfSIDx3MJabo3KT0oJ1lTWSI/aU3R89bKx0JFXcIHHw==",
+ "version": "1.89.2",
+ "resolved": "https://registry.npmjs.org/sass-embedded-linux-musl-arm/-/sass-embedded-linux-musl-arm-1.89.2.tgz",
+ "integrity": "sha512-Z6gG2FiVEEdxYHRi2sS5VIYBmp17351bWtOCUZ/thBM66+e70yiN6Eyqjz80DjL8haRUegNQgy9ZJqsLAAmr9g==",
"optional": true
},
"sass-embedded-linux-musl-arm64": {
- "version": "1.87.0",
- "resolved": "https://registry.npmjs.org/sass-embedded-linux-musl-arm64/-/sass-embedded-linux-musl-arm64-1.87.0.tgz",
- "integrity": "sha512-HWE5eTRCoKzFZWsxOjDMTF5m4DDTQ0n7NJxSYiUXPBDydr9viPXbGOMYG7WVJLjiF7upr7DYo/mfp/SNTMlZyg==",
- "optional": true
- },
- "sass-embedded-linux-musl-ia32": {
- "version": "1.87.0",
- "resolved": "https://registry.npmjs.org/sass-embedded-linux-musl-ia32/-/sass-embedded-linux-musl-ia32-1.87.0.tgz",
- "integrity": "sha512-aQaPvlRn3kh93PLQvl6BcFKu8Ji92+42blFEkg6nMVvmugD5ZwH2TGFrX25ibx4CYxRpMS4ssF7a0i7vy5HB1Q==",
+ "version": "1.89.2",
+ "resolved": "https://registry.npmjs.org/sass-embedded-linux-musl-arm64/-/sass-embedded-linux-musl-arm64-1.89.2.tgz",
+ "integrity": "sha512-nTyuaBX6U1A/cG7WJh0pKD1gY8hbg1m2SnzsyoFG+exQ0lBX/lwTLHq3nyhF+0atv7YYhYKbmfz+sjPP8CZ9lw==",
"optional": true
},
"sass-embedded-linux-musl-riscv64": {
- "version": "1.87.0",
- "resolved": "https://registry.npmjs.org/sass-embedded-linux-musl-riscv64/-/sass-embedded-linux-musl-riscv64-1.87.0.tgz",
- "integrity": "sha512-o5DxcqiFzET3KRWo+futHr/lhAMBP3tJGGx8YIgpHQYfvDMbsvE0hiFC+nZ/GF9dbcGd+ceIQwfvE5mcc7Gsjw==",
+ "version": "1.89.2",
+ "resolved": "https://registry.npmjs.org/sass-embedded-linux-musl-riscv64/-/sass-embedded-linux-musl-riscv64-1.89.2.tgz",
+ "integrity": "sha512-N6oul+qALO0SwGY8JW7H/Vs0oZIMrRMBM4GqX3AjM/6y8JsJRxkAwnfd0fDyK+aICMFarDqQonQNIx99gdTZqw==",
"optional": true
},
"sass-embedded-linux-musl-x64": {
- "version": "1.87.0",
- "resolved": "https://registry.npmjs.org/sass-embedded-linux-musl-x64/-/sass-embedded-linux-musl-x64-1.87.0.tgz",
- "integrity": "sha512-dKxWsu9Wu/CyfzQmHdeiGqrRSzJ85VUjbSx+aP1/7ttmps3SSg+YW95PuqnCOa7GSuSreC3dKKpXHTywUxMLQA==",
+ "version": "1.89.2",
+ "resolved": "https://registry.npmjs.org/sass-embedded-linux-musl-x64/-/sass-embedded-linux-musl-x64-1.89.2.tgz",
+ "integrity": "sha512-K+FmWcdj/uyP8GiG9foxOCPfb5OAZG0uSVq80DKgVSC0U44AdGjvAvVZkrgFEcZ6cCqlNC2JfYmslB5iqdL7tg==",
"optional": true
},
"sass-embedded-linux-riscv64": {
- "version": "1.87.0",
- "resolved": "https://registry.npmjs.org/sass-embedded-linux-riscv64/-/sass-embedded-linux-riscv64-1.87.0.tgz",
- "integrity": "sha512-Sy3ESZ4FwBiijvmTA9n+0p0w3MNCue1AgINVPzpAY27EFi0h49eqQm9SWfOkFqmkFS2zFRYowdQOr5Bbr2gOXA==",
+ "version": "1.89.2",
+ "resolved": "https://registry.npmjs.org/sass-embedded-linux-riscv64/-/sass-embedded-linux-riscv64-1.89.2.tgz",
+ "integrity": "sha512-g9nTbnD/3yhOaskeqeBQETbtfDQWRgsjHok6bn7DdAuwBsyrR3JlSFyqKc46pn9Xxd9SQQZU8AzM4IR+sY0A0w==",
"optional": true
},
"sass-embedded-linux-x64": {
- "version": "1.87.0",
- "resolved": "https://registry.npmjs.org/sass-embedded-linux-x64/-/sass-embedded-linux-x64-1.87.0.tgz",
- "integrity": "sha512-+UfjakOcHHKTnEqB3EZ+KqzezQOe1emvy4Rs+eQhLyfekpYuNze/qlRvYxfKTmrtvDiUrIto8MXsyZfMLzkuMA==",
+ "version": "1.89.2",
+ "resolved": "https://registry.npmjs.org/sass-embedded-linux-x64/-/sass-embedded-linux-x64-1.89.2.tgz",
+ "integrity": "sha512-Ax7dKvzncyQzIl4r7012KCMBvJzOz4uwSNoyoM5IV6y5I1f5hEwI25+U4WfuTqdkv42taCMgpjZbh9ERr6JVMQ==",
"optional": true
},
"sass-embedded-win32-arm64": {
- "version": "1.87.0",
- "resolved": "https://registry.npmjs.org/sass-embedded-win32-arm64/-/sass-embedded-win32-arm64-1.87.0.tgz",
- "integrity": "sha512-m1DS6FYUE0/fv+vt38uQB/kxR4UjnyD+2zcSc298pFmA0aYh/XZIPWw7RxG1HL3KLE1ZrGyu3254MPoxRhs3ig==",
- "optional": true
- },
- "sass-embedded-win32-ia32": {
- "version": "1.87.0",
- "resolved": "https://registry.npmjs.org/sass-embedded-win32-ia32/-/sass-embedded-win32-ia32-1.87.0.tgz",
- "integrity": "sha512-JztXLo59GMe2E6g+kCsyiERYhtZgkcyDYx6CrXoSTE5WaE+RbxRiCCCv8/1+hf406f08pUxJ8G0Ody7M5urtBA==",
+ "version": "1.89.2",
+ "resolved": "https://registry.npmjs.org/sass-embedded-win32-arm64/-/sass-embedded-win32-arm64-1.89.2.tgz",
+ "integrity": "sha512-j96iJni50ZUsfD6tRxDQE2QSYQ2WrfHxeiyAXf41Kw0V4w5KYR/Sf6rCZQLMTUOHnD16qTMVpQi20LQSqf4WGg==",
"optional": true
},
"sass-embedded-win32-x64": {
- "version": "1.87.0",
- "resolved": "https://registry.npmjs.org/sass-embedded-win32-x64/-/sass-embedded-win32-x64-1.87.0.tgz",
- "integrity": "sha512-4nQErpauvhgSo+7ClumGdjdf9sGx+U9yBgvhI0+zUw+D5YvraVgvA0Lk8Wuwntx2PqnvKUk8YDr/vxHJostv4Q==",
+ "version": "1.89.2",
+ "resolved": "https://registry.npmjs.org/sass-embedded-win32-x64/-/sass-embedded-win32-x64-1.89.2.tgz",
+ "integrity": "sha512-cS2j5ljdkQsb4PaORiClaVYynE9OAPZG/XjbOMxpQmjRIf7UroY4PEIH+Waf+y47PfXFX9SyxhYuw2NIKGbEng==",
"optional": true
},
"sass-loader": {
diff --git a/package.json b/package.json
index d8b55de4c..215f9d451 100644
--- a/package.json
+++ b/package.json
@@ -53,7 +53,7 @@
"postcss-loader": "8.1.1",
"postcss-preset-env": "10.2.0",
"postcss-scss": "4.0.9",
- "sass": "1.87.0",
+ "sass": "1.89.2",
"sass-loader": "16.0.5",
"source-map-loader": "5.0.0",
"speed-measure-webpack-plugin": "1.5.0",
@@ -134,7 +134,7 @@
"whatwg-fetch": "3.6.20"
},
"optionalDependencies": {
- "sass-embedded": "1.87.0"
+ "sass-embedded": "1.89.2"
},
"browserslist": [
"last 2 Firefox versions",
From 5e487bb60fb1cd215855b1b4b3cc05bdefc87e6a Mon Sep 17 00:00:00 2001
From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com>
Date: Fri, 27 Jun 2025 03:01:16 +0000
Subject: [PATCH 543/645] Update dependency typescript-eslint to v8.34.1
---
package-lock.json | 496 +++++++++-------------------------------------
package.json | 2 +-
2 files changed, 97 insertions(+), 401 deletions(-)
diff --git a/package-lock.json b/package-lock.json
index 61e0778d9..7c1888ae2 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -128,7 +128,7 @@
"stylelint-scss": "6.12.1",
"ts-loader": "9.5.2",
"typescript": "5.8.3",
- "typescript-eslint": "8.33.1",
+ "typescript-eslint": "8.34.1",
"vitest": "3.2.4",
"webpack": "5.99.9",
"webpack-bundle-analyzer": "4.10.2",
@@ -6042,17 +6042,17 @@
}
},
"node_modules/@typescript-eslint/eslint-plugin": {
- "version": "8.33.1",
- "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-8.33.1.tgz",
- "integrity": "sha512-TDCXj+YxLgtvxvFlAvpoRv9MAncDLBV2oT9Bd7YBGC/b/sEURoOYuIwLI99rjWOfY3QtDzO+mk0n4AmdFExW8A==",
+ "version": "8.34.1",
+ "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-8.34.1.tgz",
+ "integrity": "sha512-STXcN6ebF6li4PxwNeFnqF8/2BNDvBupf2OPx2yWNzr6mKNGF7q49VM00Pz5FaomJyqvbXpY6PhO+T9w139YEQ==",
"dev": true,
"license": "MIT",
"dependencies": {
"@eslint-community/regexpp": "^4.10.0",
- "@typescript-eslint/scope-manager": "8.33.1",
- "@typescript-eslint/type-utils": "8.33.1",
- "@typescript-eslint/utils": "8.33.1",
- "@typescript-eslint/visitor-keys": "8.33.1",
+ "@typescript-eslint/scope-manager": "8.34.1",
+ "@typescript-eslint/type-utils": "8.34.1",
+ "@typescript-eslint/utils": "8.34.1",
+ "@typescript-eslint/visitor-keys": "8.34.1",
"graphemer": "^1.4.0",
"ignore": "^7.0.0",
"natural-compare": "^1.4.0",
@@ -6066,7 +6066,7 @@
"url": "https://opencollective.com/typescript-eslint"
},
"peerDependencies": {
- "@typescript-eslint/parser": "^8.33.1",
+ "@typescript-eslint/parser": "^8.34.1",
"eslint": "^8.57.0 || ^9.0.0",
"typescript": ">=4.8.4 <5.9.0"
}
@@ -6106,137 +6106,6 @@
"typescript": ">=4.8.4 <5.9.0"
}
},
- "node_modules/@typescript-eslint/parser/node_modules/@typescript-eslint/scope-manager": {
- "version": "8.34.1",
- "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-8.34.1.tgz",
- "integrity": "sha512-beu6o6QY4hJAgL1E8RaXNC071G4Kso2MGmJskCFQhRhg8VOH/FDbC8soP8NHN7e/Hdphwp8G8cE6OBzC8o41ZA==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "@typescript-eslint/types": "8.34.1",
- "@typescript-eslint/visitor-keys": "8.34.1"
- },
- "engines": {
- "node": "^18.18.0 || ^20.9.0 || >=21.1.0"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/typescript-eslint"
- }
- },
- "node_modules/@typescript-eslint/parser/node_modules/@typescript-eslint/types": {
- "version": "8.34.1",
- "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-8.34.1.tgz",
- "integrity": "sha512-rjLVbmE7HR18kDsjNIZQHxmv9RZwlgzavryL5Lnj2ujIRTeXlKtILHgRNmQ3j4daw7zd+mQgy+uyt6Zo6I0IGA==",
- "dev": true,
- "license": "MIT",
- "engines": {
- "node": "^18.18.0 || ^20.9.0 || >=21.1.0"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/typescript-eslint"
- }
- },
- "node_modules/@typescript-eslint/parser/node_modules/@typescript-eslint/typescript-estree": {
- "version": "8.34.1",
- "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-8.34.1.tgz",
- "integrity": "sha512-rjCNqqYPuMUF5ODD+hWBNmOitjBWghkGKJg6hiCHzUvXRy6rK22Jd3rwbP2Xi+R7oYVvIKhokHVhH41BxPV5mA==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "@typescript-eslint/project-service": "8.34.1",
- "@typescript-eslint/tsconfig-utils": "8.34.1",
- "@typescript-eslint/types": "8.34.1",
- "@typescript-eslint/visitor-keys": "8.34.1",
- "debug": "^4.3.4",
- "fast-glob": "^3.3.2",
- "is-glob": "^4.0.3",
- "minimatch": "^9.0.4",
- "semver": "^7.6.0",
- "ts-api-utils": "^2.1.0"
- },
- "engines": {
- "node": "^18.18.0 || ^20.9.0 || >=21.1.0"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/typescript-eslint"
- },
- "peerDependencies": {
- "typescript": ">=4.8.4 <5.9.0"
- }
- },
- "node_modules/@typescript-eslint/parser/node_modules/@typescript-eslint/visitor-keys": {
- "version": "8.34.1",
- "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-8.34.1.tgz",
- "integrity": "sha512-xoh5rJ+tgsRKoXnkBPFRLZ7rjKM0AfVbC68UZ/ECXoDbfggb9RbEySN359acY1vS3qZ0jVTVWzbtfapwm5ztxw==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "@typescript-eslint/types": "8.34.1",
- "eslint-visitor-keys": "^4.2.1"
- },
- "engines": {
- "node": "^18.18.0 || ^20.9.0 || >=21.1.0"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/typescript-eslint"
- }
- },
- "node_modules/@typescript-eslint/parser/node_modules/brace-expansion": {
- "version": "2.0.2",
- "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.2.tgz",
- "integrity": "sha512-Jt0vHyM+jmUBqojB7E1NIYadt0vI0Qxjxd2TErW94wDz+E2LAm5vKMXXwg6ZZBTHPuUlDgQHKXvjGBdfcF1ZDQ==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "balanced-match": "^1.0.0"
- }
- },
- "node_modules/@typescript-eslint/parser/node_modules/eslint-visitor-keys": {
- "version": "4.2.1",
- "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-4.2.1.tgz",
- "integrity": "sha512-Uhdk5sfqcee/9H/rCOJikYz67o0a2Tw2hGRPOG2Y1R2dg7brRe1uG0yaNQDHu+TO/uQPF/5eCapvYSmHUjt7JQ==",
- "dev": true,
- "license": "Apache-2.0",
- "engines": {
- "node": "^18.18.0 || ^20.9.0 || >=21.1.0"
- },
- "funding": {
- "url": "https://opencollective.com/eslint"
- }
- },
- "node_modules/@typescript-eslint/parser/node_modules/minimatch": {
- "version": "9.0.5",
- "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.5.tgz",
- "integrity": "sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==",
- "dev": true,
- "license": "ISC",
- "dependencies": {
- "brace-expansion": "^2.0.1"
- },
- "engines": {
- "node": ">=16 || 14 >=14.17"
- },
- "funding": {
- "url": "https://github.com/sponsors/isaacs"
- }
- },
- "node_modules/@typescript-eslint/parser/node_modules/semver": {
- "version": "7.7.2",
- "resolved": "https://registry.npmjs.org/semver/-/semver-7.7.2.tgz",
- "integrity": "sha512-RF0Fw+rO5AMf9MAyaRXI4AV0Ulj5lMHqVxxdSgiVbixSCXoEmmX/jk0CuJw4+3SqroYO9VoUh+HcuJivvtJemA==",
- "dev": true,
- "license": "ISC",
- "bin": {
- "semver": "bin/semver.js"
- },
- "engines": {
- "node": ">=10"
- }
- },
"node_modules/@typescript-eslint/project-service": {
"version": "8.34.1",
"resolved": "https://registry.npmjs.org/@typescript-eslint/project-service/-/project-service-8.34.1.tgz",
@@ -6274,14 +6143,14 @@
}
},
"node_modules/@typescript-eslint/scope-manager": {
- "version": "8.33.1",
- "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-8.33.1.tgz",
- "integrity": "sha512-dM4UBtgmzHR9bS0Rv09JST0RcHYearoEoo3pG5B6GoTR9XcyeqX87FEhPo+5kTvVfKCvfHaHrcgeJQc6mrDKrA==",
+ "version": "8.34.1",
+ "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-8.34.1.tgz",
+ "integrity": "sha512-beu6o6QY4hJAgL1E8RaXNC071G4Kso2MGmJskCFQhRhg8VOH/FDbC8soP8NHN7e/Hdphwp8G8cE6OBzC8o41ZA==",
"dev": true,
"license": "MIT",
"dependencies": {
- "@typescript-eslint/types": "8.33.1",
- "@typescript-eslint/visitor-keys": "8.33.1"
+ "@typescript-eslint/types": "8.34.1",
+ "@typescript-eslint/visitor-keys": "8.34.1"
},
"engines": {
"node": "^18.18.0 || ^20.9.0 || >=21.1.0"
@@ -6309,14 +6178,14 @@
}
},
"node_modules/@typescript-eslint/type-utils": {
- "version": "8.33.1",
- "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-8.33.1.tgz",
- "integrity": "sha512-1cG37d9xOkhlykom55WVwG2QRNC7YXlxMaMzqw2uPeJixBFfKWZgaP/hjAObqMN/u3fr5BrTwTnc31/L9jQ2ww==",
+ "version": "8.34.1",
+ "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-8.34.1.tgz",
+ "integrity": "sha512-Tv7tCCr6e5m8hP4+xFugcrwTOucB8lshffJ6zf1mF1TbU67R+ntCc6DzLNKM+s/uzDyv8gLq7tufaAhIBYeV8g==",
"dev": true,
"license": "MIT",
"dependencies": {
- "@typescript-eslint/typescript-estree": "8.33.1",
- "@typescript-eslint/utils": "8.33.1",
+ "@typescript-eslint/typescript-estree": "8.34.1",
+ "@typescript-eslint/utils": "8.34.1",
"debug": "^4.3.4",
"ts-api-utils": "^2.1.0"
},
@@ -6333,9 +6202,9 @@
}
},
"node_modules/@typescript-eslint/types": {
- "version": "8.33.1",
- "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-8.33.1.tgz",
- "integrity": "sha512-xid1WfizGhy/TKMTwhtVOgalHwPtV8T32MS9MaH50Cwvz6x6YqRIPdD2WvW0XaqOzTV9p5xdLY0h/ZusU5Lokg==",
+ "version": "8.34.1",
+ "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-8.34.1.tgz",
+ "integrity": "sha512-rjLVbmE7HR18kDsjNIZQHxmv9RZwlgzavryL5Lnj2ujIRTeXlKtILHgRNmQ3j4daw7zd+mQgy+uyt6Zo6I0IGA==",
"dev": true,
"license": "MIT",
"engines": {
@@ -6347,16 +6216,16 @@
}
},
"node_modules/@typescript-eslint/typescript-estree": {
- "version": "8.33.1",
- "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-8.33.1.tgz",
- "integrity": "sha512-+s9LYcT8LWjdYWu7IWs7FvUxpQ/DGkdjZeE/GGulHvv8rvYwQvVaUZ6DE+j5x/prADUgSbbCWZ2nPI3usuVeOA==",
+ "version": "8.34.1",
+ "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-8.34.1.tgz",
+ "integrity": "sha512-rjCNqqYPuMUF5ODD+hWBNmOitjBWghkGKJg6hiCHzUvXRy6rK22Jd3rwbP2Xi+R7oYVvIKhokHVhH41BxPV5mA==",
"dev": true,
"license": "MIT",
"dependencies": {
- "@typescript-eslint/project-service": "8.33.1",
- "@typescript-eslint/tsconfig-utils": "8.33.1",
- "@typescript-eslint/types": "8.33.1",
- "@typescript-eslint/visitor-keys": "8.33.1",
+ "@typescript-eslint/project-service": "8.34.1",
+ "@typescript-eslint/tsconfig-utils": "8.34.1",
+ "@typescript-eslint/types": "8.34.1",
+ "@typescript-eslint/visitor-keys": "8.34.1",
"debug": "^4.3.4",
"fast-glob": "^3.3.2",
"is-glob": "^4.0.3",
@@ -6375,49 +6244,10 @@
"typescript": ">=4.8.4 <5.9.0"
}
},
- "node_modules/@typescript-eslint/typescript-estree/node_modules/@typescript-eslint/project-service": {
- "version": "8.33.1",
- "resolved": "https://registry.npmjs.org/@typescript-eslint/project-service/-/project-service-8.33.1.tgz",
- "integrity": "sha512-DZR0efeNklDIHHGRpMpR5gJITQpu6tLr9lDJnKdONTC7vvzOlLAG/wcfxcdxEWrbiZApcoBCzXqU/Z458Za5Iw==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "@typescript-eslint/tsconfig-utils": "^8.33.1",
- "@typescript-eslint/types": "^8.33.1",
- "debug": "^4.3.4"
- },
- "engines": {
- "node": "^18.18.0 || ^20.9.0 || >=21.1.0"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/typescript-eslint"
- },
- "peerDependencies": {
- "typescript": ">=4.8.4 <5.9.0"
- }
- },
- "node_modules/@typescript-eslint/typescript-estree/node_modules/@typescript-eslint/tsconfig-utils": {
- "version": "8.33.1",
- "resolved": "https://registry.npmjs.org/@typescript-eslint/tsconfig-utils/-/tsconfig-utils-8.33.1.tgz",
- "integrity": "sha512-STAQsGYbHCF0/e+ShUQ4EatXQ7ceh3fBCXkNU7/MZVKulrlq1usH7t2FhxvCpuCi5O5oi1vmVaAjrGeL71OK1g==",
- "dev": true,
- "license": "MIT",
- "engines": {
- "node": "^18.18.0 || ^20.9.0 || >=21.1.0"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/typescript-eslint"
- },
- "peerDependencies": {
- "typescript": ">=4.8.4 <5.9.0"
- }
- },
"node_modules/@typescript-eslint/typescript-estree/node_modules/brace-expansion": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz",
- "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==",
+ "version": "2.0.2",
+ "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.2.tgz",
+ "integrity": "sha512-Jt0vHyM+jmUBqojB7E1NIYadt0vI0Qxjxd2TErW94wDz+E2LAm5vKMXXwg6ZZBTHPuUlDgQHKXvjGBdfcF1ZDQ==",
"dev": true,
"license": "MIT",
"dependencies": {
@@ -6454,16 +6284,16 @@
}
},
"node_modules/@typescript-eslint/utils": {
- "version": "8.33.1",
- "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-8.33.1.tgz",
- "integrity": "sha512-52HaBiEQUaRYqAXpfzWSR2U3gxk92Kw006+xZpElaPMg3C4PgM+A5LqwoQI1f9E5aZ/qlxAZxzm42WX+vn92SQ==",
+ "version": "8.34.1",
+ "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-8.34.1.tgz",
+ "integrity": "sha512-mqOwUdZ3KjtGk7xJJnLbHxTuWVn3GO2WZZuM+Slhkun4+qthLdXx32C8xIXbO1kfCECb3jIs3eoxK3eryk7aoQ==",
"dev": true,
"license": "MIT",
"dependencies": {
"@eslint-community/eslint-utils": "^4.7.0",
- "@typescript-eslint/scope-manager": "8.33.1",
- "@typescript-eslint/types": "8.33.1",
- "@typescript-eslint/typescript-estree": "8.33.1"
+ "@typescript-eslint/scope-manager": "8.34.1",
+ "@typescript-eslint/types": "8.34.1",
+ "@typescript-eslint/typescript-estree": "8.34.1"
},
"engines": {
"node": "^18.18.0 || ^20.9.0 || >=21.1.0"
@@ -6478,14 +6308,14 @@
}
},
"node_modules/@typescript-eslint/visitor-keys": {
- "version": "8.33.1",
- "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-8.33.1.tgz",
- "integrity": "sha512-3i8NrFcZeeDHJ+7ZUuDkGT+UHq+XoFGsymNK2jZCOHcfEzRQ0BdpRtdpSx/Iyf3MHLWIcLS0COuOPibKQboIiQ==",
+ "version": "8.34.1",
+ "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-8.34.1.tgz",
+ "integrity": "sha512-xoh5rJ+tgsRKoXnkBPFRLZ7rjKM0AfVbC68UZ/ECXoDbfggb9RbEySN359acY1vS3qZ0jVTVWzbtfapwm5ztxw==",
"dev": true,
"license": "MIT",
"dependencies": {
- "@typescript-eslint/types": "8.33.1",
- "eslint-visitor-keys": "^4.2.0"
+ "@typescript-eslint/types": "8.34.1",
+ "eslint-visitor-keys": "^4.2.1"
},
"engines": {
"node": "^18.18.0 || ^20.9.0 || >=21.1.0"
@@ -23956,40 +23786,15 @@
}
},
"node_modules/typescript-eslint": {
- "version": "8.33.1",
- "resolved": "https://registry.npmjs.org/typescript-eslint/-/typescript-eslint-8.33.1.tgz",
- "integrity": "sha512-AgRnV4sKkWOiZ0Kjbnf5ytTJXMUZQ0qhSVdQtDNYLPLnjsATEYhaO94GlRQwi4t4gO8FfjM6NnikHeKjUm8D7A==",
+ "version": "8.34.1",
+ "resolved": "https://registry.npmjs.org/typescript-eslint/-/typescript-eslint-8.34.1.tgz",
+ "integrity": "sha512-XjS+b6Vg9oT1BaIUfkW3M3LvqZE++rbzAMEHuccCfO/YkP43ha6w3jTEMilQxMF92nVOYCcdjv1ZUhAa1D/0ow==",
"dev": true,
"license": "MIT",
"dependencies": {
- "@typescript-eslint/eslint-plugin": "8.33.1",
- "@typescript-eslint/parser": "8.33.1",
- "@typescript-eslint/utils": "8.33.1"
- },
- "engines": {
- "node": "^18.18.0 || ^20.9.0 || >=21.1.0"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/typescript-eslint"
- },
- "peerDependencies": {
- "eslint": "^8.57.0 || ^9.0.0",
- "typescript": ">=4.8.4 <5.9.0"
- }
- },
- "node_modules/typescript-eslint/node_modules/@typescript-eslint/parser": {
- "version": "8.33.1",
- "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-8.33.1.tgz",
- "integrity": "sha512-qwxv6dq682yVvgKKp2qWwLgRbscDAYktPptK4JPojCwwi3R9cwrvIxS4lvBpzmcqzR4bdn54Z0IG1uHFskW4dA==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "@typescript-eslint/scope-manager": "8.33.1",
- "@typescript-eslint/types": "8.33.1",
- "@typescript-eslint/typescript-estree": "8.33.1",
- "@typescript-eslint/visitor-keys": "8.33.1",
- "debug": "^4.3.4"
+ "@typescript-eslint/eslint-plugin": "8.34.1",
+ "@typescript-eslint/parser": "8.34.1",
+ "@typescript-eslint/utils": "8.34.1"
},
"engines": {
"node": "^18.18.0 || ^20.9.0 || >=21.1.0"
@@ -28886,16 +28691,16 @@
}
},
"@typescript-eslint/eslint-plugin": {
- "version": "8.33.1",
- "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-8.33.1.tgz",
- "integrity": "sha512-TDCXj+YxLgtvxvFlAvpoRv9MAncDLBV2oT9Bd7YBGC/b/sEURoOYuIwLI99rjWOfY3QtDzO+mk0n4AmdFExW8A==",
+ "version": "8.34.1",
+ "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-8.34.1.tgz",
+ "integrity": "sha512-STXcN6ebF6li4PxwNeFnqF8/2BNDvBupf2OPx2yWNzr6mKNGF7q49VM00Pz5FaomJyqvbXpY6PhO+T9w139YEQ==",
"dev": true,
"requires": {
"@eslint-community/regexpp": "^4.10.0",
- "@typescript-eslint/scope-manager": "8.33.1",
- "@typescript-eslint/type-utils": "8.33.1",
- "@typescript-eslint/utils": "8.33.1",
- "@typescript-eslint/visitor-keys": "8.33.1",
+ "@typescript-eslint/scope-manager": "8.34.1",
+ "@typescript-eslint/type-utils": "8.34.1",
+ "@typescript-eslint/utils": "8.34.1",
+ "@typescript-eslint/visitor-keys": "8.34.1",
"graphemer": "^1.4.0",
"ignore": "^7.0.0",
"natural-compare": "^1.4.0",
@@ -28921,82 +28726,6 @@
"@typescript-eslint/typescript-estree": "8.34.1",
"@typescript-eslint/visitor-keys": "8.34.1",
"debug": "^4.3.4"
- },
- "dependencies": {
- "@typescript-eslint/scope-manager": {
- "version": "8.34.1",
- "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-8.34.1.tgz",
- "integrity": "sha512-beu6o6QY4hJAgL1E8RaXNC071G4Kso2MGmJskCFQhRhg8VOH/FDbC8soP8NHN7e/Hdphwp8G8cE6OBzC8o41ZA==",
- "dev": true,
- "requires": {
- "@typescript-eslint/types": "8.34.1",
- "@typescript-eslint/visitor-keys": "8.34.1"
- }
- },
- "@typescript-eslint/types": {
- "version": "8.34.1",
- "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-8.34.1.tgz",
- "integrity": "sha512-rjLVbmE7HR18kDsjNIZQHxmv9RZwlgzavryL5Lnj2ujIRTeXlKtILHgRNmQ3j4daw7zd+mQgy+uyt6Zo6I0IGA==",
- "dev": true
- },
- "@typescript-eslint/typescript-estree": {
- "version": "8.34.1",
- "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-8.34.1.tgz",
- "integrity": "sha512-rjCNqqYPuMUF5ODD+hWBNmOitjBWghkGKJg6hiCHzUvXRy6rK22Jd3rwbP2Xi+R7oYVvIKhokHVhH41BxPV5mA==",
- "dev": true,
- "requires": {
- "@typescript-eslint/project-service": "8.34.1",
- "@typescript-eslint/tsconfig-utils": "8.34.1",
- "@typescript-eslint/types": "8.34.1",
- "@typescript-eslint/visitor-keys": "8.34.1",
- "debug": "^4.3.4",
- "fast-glob": "^3.3.2",
- "is-glob": "^4.0.3",
- "minimatch": "^9.0.4",
- "semver": "^7.6.0",
- "ts-api-utils": "^2.1.0"
- }
- },
- "@typescript-eslint/visitor-keys": {
- "version": "8.34.1",
- "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-8.34.1.tgz",
- "integrity": "sha512-xoh5rJ+tgsRKoXnkBPFRLZ7rjKM0AfVbC68UZ/ECXoDbfggb9RbEySN359acY1vS3qZ0jVTVWzbtfapwm5ztxw==",
- "dev": true,
- "requires": {
- "@typescript-eslint/types": "8.34.1",
- "eslint-visitor-keys": "^4.2.1"
- }
- },
- "brace-expansion": {
- "version": "2.0.2",
- "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.2.tgz",
- "integrity": "sha512-Jt0vHyM+jmUBqojB7E1NIYadt0vI0Qxjxd2TErW94wDz+E2LAm5vKMXXwg6ZZBTHPuUlDgQHKXvjGBdfcF1ZDQ==",
- "dev": true,
- "requires": {
- "balanced-match": "^1.0.0"
- }
- },
- "eslint-visitor-keys": {
- "version": "4.2.1",
- "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-4.2.1.tgz",
- "integrity": "sha512-Uhdk5sfqcee/9H/rCOJikYz67o0a2Tw2hGRPOG2Y1R2dg7brRe1uG0yaNQDHu+TO/uQPF/5eCapvYSmHUjt7JQ==",
- "dev": true
- },
- "minimatch": {
- "version": "9.0.5",
- "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.5.tgz",
- "integrity": "sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==",
- "dev": true,
- "requires": {
- "brace-expansion": "^2.0.1"
- }
- },
- "semver": {
- "version": "7.7.2",
- "resolved": "https://registry.npmjs.org/semver/-/semver-7.7.2.tgz",
- "integrity": "sha512-RF0Fw+rO5AMf9MAyaRXI4AV0Ulj5lMHqVxxdSgiVbixSCXoEmmX/jk0CuJw4+3SqroYO9VoUh+HcuJivvtJemA==",
- "dev": true
- }
}
},
"@typescript-eslint/project-service": {
@@ -29019,13 +28748,13 @@
}
},
"@typescript-eslint/scope-manager": {
- "version": "8.33.1",
- "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-8.33.1.tgz",
- "integrity": "sha512-dM4UBtgmzHR9bS0Rv09JST0RcHYearoEoo3pG5B6GoTR9XcyeqX87FEhPo+5kTvVfKCvfHaHrcgeJQc6mrDKrA==",
+ "version": "8.34.1",
+ "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-8.34.1.tgz",
+ "integrity": "sha512-beu6o6QY4hJAgL1E8RaXNC071G4Kso2MGmJskCFQhRhg8VOH/FDbC8soP8NHN7e/Hdphwp8G8cE6OBzC8o41ZA==",
"dev": true,
"requires": {
- "@typescript-eslint/types": "8.33.1",
- "@typescript-eslint/visitor-keys": "8.33.1"
+ "@typescript-eslint/types": "8.34.1",
+ "@typescript-eslint/visitor-keys": "8.34.1"
}
},
"@typescript-eslint/tsconfig-utils": {
@@ -29036,33 +28765,33 @@
"requires": {}
},
"@typescript-eslint/type-utils": {
- "version": "8.33.1",
- "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-8.33.1.tgz",
- "integrity": "sha512-1cG37d9xOkhlykom55WVwG2QRNC7YXlxMaMzqw2uPeJixBFfKWZgaP/hjAObqMN/u3fr5BrTwTnc31/L9jQ2ww==",
+ "version": "8.34.1",
+ "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-8.34.1.tgz",
+ "integrity": "sha512-Tv7tCCr6e5m8hP4+xFugcrwTOucB8lshffJ6zf1mF1TbU67R+ntCc6DzLNKM+s/uzDyv8gLq7tufaAhIBYeV8g==",
"dev": true,
"requires": {
- "@typescript-eslint/typescript-estree": "8.33.1",
- "@typescript-eslint/utils": "8.33.1",
+ "@typescript-eslint/typescript-estree": "8.34.1",
+ "@typescript-eslint/utils": "8.34.1",
"debug": "^4.3.4",
"ts-api-utils": "^2.1.0"
}
},
"@typescript-eslint/types": {
- "version": "8.33.1",
- "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-8.33.1.tgz",
- "integrity": "sha512-xid1WfizGhy/TKMTwhtVOgalHwPtV8T32MS9MaH50Cwvz6x6YqRIPdD2WvW0XaqOzTV9p5xdLY0h/ZusU5Lokg==",
+ "version": "8.34.1",
+ "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-8.34.1.tgz",
+ "integrity": "sha512-rjLVbmE7HR18kDsjNIZQHxmv9RZwlgzavryL5Lnj2ujIRTeXlKtILHgRNmQ3j4daw7zd+mQgy+uyt6Zo6I0IGA==",
"dev": true
},
"@typescript-eslint/typescript-estree": {
- "version": "8.33.1",
- "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-8.33.1.tgz",
- "integrity": "sha512-+s9LYcT8LWjdYWu7IWs7FvUxpQ/DGkdjZeE/GGulHvv8rvYwQvVaUZ6DE+j5x/prADUgSbbCWZ2nPI3usuVeOA==",
+ "version": "8.34.1",
+ "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-8.34.1.tgz",
+ "integrity": "sha512-rjCNqqYPuMUF5ODD+hWBNmOitjBWghkGKJg6hiCHzUvXRy6rK22Jd3rwbP2Xi+R7oYVvIKhokHVhH41BxPV5mA==",
"dev": true,
"requires": {
- "@typescript-eslint/project-service": "8.33.1",
- "@typescript-eslint/tsconfig-utils": "8.33.1",
- "@typescript-eslint/types": "8.33.1",
- "@typescript-eslint/visitor-keys": "8.33.1",
+ "@typescript-eslint/project-service": "8.34.1",
+ "@typescript-eslint/tsconfig-utils": "8.34.1",
+ "@typescript-eslint/types": "8.34.1",
+ "@typescript-eslint/visitor-keys": "8.34.1",
"debug": "^4.3.4",
"fast-glob": "^3.3.2",
"is-glob": "^4.0.3",
@@ -29071,28 +28800,10 @@
"ts-api-utils": "^2.1.0"
},
"dependencies": {
- "@typescript-eslint/project-service": {
- "version": "8.33.1",
- "resolved": "https://registry.npmjs.org/@typescript-eslint/project-service/-/project-service-8.33.1.tgz",
- "integrity": "sha512-DZR0efeNklDIHHGRpMpR5gJITQpu6tLr9lDJnKdONTC7vvzOlLAG/wcfxcdxEWrbiZApcoBCzXqU/Z458Za5Iw==",
- "dev": true,
- "requires": {
- "@typescript-eslint/tsconfig-utils": "^8.33.1",
- "@typescript-eslint/types": "^8.33.1",
- "debug": "^4.3.4"
- }
- },
- "@typescript-eslint/tsconfig-utils": {
- "version": "8.33.1",
- "resolved": "https://registry.npmjs.org/@typescript-eslint/tsconfig-utils/-/tsconfig-utils-8.33.1.tgz",
- "integrity": "sha512-STAQsGYbHCF0/e+ShUQ4EatXQ7ceh3fBCXkNU7/MZVKulrlq1usH7t2FhxvCpuCi5O5oi1vmVaAjrGeL71OK1g==",
- "dev": true,
- "requires": {}
- },
"brace-expansion": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz",
- "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==",
+ "version": "2.0.2",
+ "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.2.tgz",
+ "integrity": "sha512-Jt0vHyM+jmUBqojB7E1NIYadt0vI0Qxjxd2TErW94wDz+E2LAm5vKMXXwg6ZZBTHPuUlDgQHKXvjGBdfcF1ZDQ==",
"dev": true,
"requires": {
"balanced-match": "^1.0.0"
@@ -29116,25 +28827,25 @@
}
},
"@typescript-eslint/utils": {
- "version": "8.33.1",
- "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-8.33.1.tgz",
- "integrity": "sha512-52HaBiEQUaRYqAXpfzWSR2U3gxk92Kw006+xZpElaPMg3C4PgM+A5LqwoQI1f9E5aZ/qlxAZxzm42WX+vn92SQ==",
+ "version": "8.34.1",
+ "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-8.34.1.tgz",
+ "integrity": "sha512-mqOwUdZ3KjtGk7xJJnLbHxTuWVn3GO2WZZuM+Slhkun4+qthLdXx32C8xIXbO1kfCECb3jIs3eoxK3eryk7aoQ==",
"dev": true,
"requires": {
"@eslint-community/eslint-utils": "^4.7.0",
- "@typescript-eslint/scope-manager": "8.33.1",
- "@typescript-eslint/types": "8.33.1",
- "@typescript-eslint/typescript-estree": "8.33.1"
+ "@typescript-eslint/scope-manager": "8.34.1",
+ "@typescript-eslint/types": "8.34.1",
+ "@typescript-eslint/typescript-estree": "8.34.1"
}
},
"@typescript-eslint/visitor-keys": {
- "version": "8.33.1",
- "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-8.33.1.tgz",
- "integrity": "sha512-3i8NrFcZeeDHJ+7ZUuDkGT+UHq+XoFGsymNK2jZCOHcfEzRQ0BdpRtdpSx/Iyf3MHLWIcLS0COuOPibKQboIiQ==",
+ "version": "8.34.1",
+ "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-8.34.1.tgz",
+ "integrity": "sha512-xoh5rJ+tgsRKoXnkBPFRLZ7rjKM0AfVbC68UZ/ECXoDbfggb9RbEySN359acY1vS3qZ0jVTVWzbtfapwm5ztxw==",
"dev": true,
"requires": {
- "@typescript-eslint/types": "8.33.1",
- "eslint-visitor-keys": "^4.2.0"
+ "@typescript-eslint/types": "8.34.1",
+ "eslint-visitor-keys": "^4.2.1"
},
"dependencies": {
"eslint-visitor-keys": {
@@ -41272,29 +40983,14 @@
"dev": true
},
"typescript-eslint": {
- "version": "8.33.1",
- "resolved": "https://registry.npmjs.org/typescript-eslint/-/typescript-eslint-8.33.1.tgz",
- "integrity": "sha512-AgRnV4sKkWOiZ0Kjbnf5ytTJXMUZQ0qhSVdQtDNYLPLnjsATEYhaO94GlRQwi4t4gO8FfjM6NnikHeKjUm8D7A==",
+ "version": "8.34.1",
+ "resolved": "https://registry.npmjs.org/typescript-eslint/-/typescript-eslint-8.34.1.tgz",
+ "integrity": "sha512-XjS+b6Vg9oT1BaIUfkW3M3LvqZE++rbzAMEHuccCfO/YkP43ha6w3jTEMilQxMF92nVOYCcdjv1ZUhAa1D/0ow==",
"dev": true,
"requires": {
- "@typescript-eslint/eslint-plugin": "8.33.1",
- "@typescript-eslint/parser": "8.33.1",
- "@typescript-eslint/utils": "8.33.1"
- },
- "dependencies": {
- "@typescript-eslint/parser": {
- "version": "8.33.1",
- "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-8.33.1.tgz",
- "integrity": "sha512-qwxv6dq682yVvgKKp2qWwLgRbscDAYktPptK4JPojCwwi3R9cwrvIxS4lvBpzmcqzR4bdn54Z0IG1uHFskW4dA==",
- "dev": true,
- "requires": {
- "@typescript-eslint/scope-manager": "8.33.1",
- "@typescript-eslint/types": "8.33.1",
- "@typescript-eslint/typescript-estree": "8.33.1",
- "@typescript-eslint/visitor-keys": "8.33.1",
- "debug": "^4.3.4"
- }
- }
+ "@typescript-eslint/eslint-plugin": "8.34.1",
+ "@typescript-eslint/parser": "8.34.1",
+ "@typescript-eslint/utils": "8.34.1"
}
},
"uc.micro": {
diff --git a/package.json b/package.json
index 12511ed64..9efcb2fa2 100644
--- a/package.json
+++ b/package.json
@@ -65,7 +65,7 @@
"stylelint-scss": "6.12.1",
"ts-loader": "9.5.2",
"typescript": "5.8.3",
- "typescript-eslint": "8.33.1",
+ "typescript-eslint": "8.34.1",
"vitest": "3.2.4",
"webpack": "5.99.9",
"webpack-bundle-analyzer": "4.10.2",
From 7a02f3b21f56977b9f2551da5ee1e4928d2030e1 Mon Sep 17 00:00:00 2001
From: nyanmisaka
Date: Fri, 27 Jun 2025 12:29:09 +0800
Subject: [PATCH 544/645] Set maxMaxBufferLength to avoid bufferAppendError on
Chrome 138
```
HLS Error: Type: mediaError Details: bufferAppendError Fatal: true
```
It seems that the default buffer eviction behavior has changed in
Chrome 138, so the default maxMaxBufferLength from hls.js don't apply.
Signed-off-by: nyanmisaka
---
src/plugins/htmlVideoPlayer/plugin.js | 1 +
1 file changed, 1 insertion(+)
diff --git a/src/plugins/htmlVideoPlayer/plugin.js b/src/plugins/htmlVideoPlayer/plugin.js
index 541a13e91..b647c5dcb 100644
--- a/src/plugins/htmlVideoPlayer/plugin.js
+++ b/src/plugins/htmlVideoPlayer/plugin.js
@@ -453,6 +453,7 @@ export class HtmlVideoPlayer {
startPosition: options.playerStartPositionTicks / 10000000,
manifestLoadingTimeOut: 20000,
maxBufferLength: maxBufferLength,
+ maxMaxBufferLength: maxBufferLength,
videoPreference: { preferHDR: true },
xhrSetup(xhr) {
xhr.withCredentials = includeCorsCredentials;
From 08bed0cae3f0b6929b3598c11bb14561ada90a0a Mon Sep 17 00:00:00 2001
From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com>
Date: Fri, 27 Jun 2025 09:29:00 +0000
Subject: [PATCH 545/645] Update dependency @jellyfin/sdk to
v0.0.0-unstable.202506270502
---
package-lock.json | 14 +++++++-------
package.json | 2 +-
2 files changed, 8 insertions(+), 8 deletions(-)
diff --git a/package-lock.json b/package-lock.json
index 13417ad00..030c8a2ae 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -18,7 +18,7 @@
"@fontsource/noto-sans-sc": "5.2.6",
"@fontsource/noto-sans-tc": "5.2.6",
"@jellyfin/libass-wasm": "4.2.3",
- "@jellyfin/sdk": "0.0.0-unstable.202506270243",
+ "@jellyfin/sdk": "0.0.0-unstable.202506270502",
"@jellyfin/ux-web": "1.0.0",
"@mui/icons-material": "6.4.12",
"@mui/material": "6.4.12",
@@ -4129,9 +4129,9 @@
"license": "LGPL-2.1-or-later AND (FTL OR GPL-2.0-or-later) AND MIT AND MIT-Modern-Variant AND ISC AND NTP AND Zlib AND BSL-1.0"
},
"node_modules/@jellyfin/sdk": {
- "version": "0.0.0-unstable.202506270243",
- "resolved": "https://registry.npmjs.org/@jellyfin/sdk/-/sdk-0.0.0-unstable.202506270243.tgz",
- "integrity": "sha512-dTsPNmRUsWhmZn/8m4/8I00VvsFg7lrCJXk7BHhwYgKJjqphFWDupqSz7y9U4MvMf1Hnw3ms3hxWTxk0ZFnTTg==",
+ "version": "0.0.0-unstable.202506270502",
+ "resolved": "https://registry.npmjs.org/@jellyfin/sdk/-/sdk-0.0.0-unstable.202506270502.tgz",
+ "integrity": "sha512-PooFqKY/puCipm8YkkP91dj1Sq+VufXWD2V5yS5gEyEE1Usoj0CkWOaas2eUdf/3cUaPeLOXuczRA/Oht1PU5w==",
"license": "MPL-2.0",
"peerDependencies": {
"axios": "^1.3.4"
@@ -27449,9 +27449,9 @@
"integrity": "sha512-C0OlBxIr9NdeFESMTA/OVDqNSWtog6Mi7wwzwH12xbZpxsMD0RgCupUcIP7zZgcpTNecW3fZq5d6xVo7Q8HEJw=="
},
"@jellyfin/sdk": {
- "version": "0.0.0-unstable.202506270243",
- "resolved": "https://registry.npmjs.org/@jellyfin/sdk/-/sdk-0.0.0-unstable.202506270243.tgz",
- "integrity": "sha512-dTsPNmRUsWhmZn/8m4/8I00VvsFg7lrCJXk7BHhwYgKJjqphFWDupqSz7y9U4MvMf1Hnw3ms3hxWTxk0ZFnTTg==",
+ "version": "0.0.0-unstable.202506270502",
+ "resolved": "https://registry.npmjs.org/@jellyfin/sdk/-/sdk-0.0.0-unstable.202506270502.tgz",
+ "integrity": "sha512-PooFqKY/puCipm8YkkP91dj1Sq+VufXWD2V5yS5gEyEE1Usoj0CkWOaas2eUdf/3cUaPeLOXuczRA/Oht1PU5w==",
"requires": {}
},
"@jellyfin/ux-web": {
diff --git a/package.json b/package.json
index 8f101f65b..d4fe98160 100644
--- a/package.json
+++ b/package.json
@@ -84,7 +84,7 @@
"@fontsource/noto-sans-sc": "5.2.6",
"@fontsource/noto-sans-tc": "5.2.6",
"@jellyfin/libass-wasm": "4.2.3",
- "@jellyfin/sdk": "0.0.0-unstable.202506270243",
+ "@jellyfin/sdk": "0.0.0-unstable.202506270502",
"@jellyfin/ux-web": "1.0.0",
"@mui/icons-material": "6.4.12",
"@mui/material": "6.4.12",
From ab8b58f32428f339e0c254279b584e815a067da2 Mon Sep 17 00:00:00 2001
From: sarnoso
Date: Fri, 27 Jun 2025 06:42:25 -0400
Subject: [PATCH 546/645] Translated using Weblate (Catalan) Translation:
Jellyfin/Jellyfin Web Translate-URL:
https://translate.jellyfin.org/projects/jellyfin/jellyfin-web/ca/
---
src/strings/ca.json | 5 +++--
1 file changed, 3 insertions(+), 2 deletions(-)
diff --git a/src/strings/ca.json b/src/strings/ca.json
index efe3f5107..1d4b896b8 100644
--- a/src/strings/ca.json
+++ b/src/strings/ca.json
@@ -2053,9 +2053,10 @@
"StorageType.Removable": "Retirable",
"StorageType.Unknown": "Desconegut",
"PluginsLoadError": "S'ha produït un error en carregar els complements.",
- "ButtonLearnMore": "En voleu saber més?",
+ "ButtonLearnMore": "Saber més",
"RepositoriesPageLoadError": "No s'han pogut carregar els repositoris",
"TranscodingLoadError": "No s'han pogut carregar els paràmetres de transcodificació",
"ConfirmDeleteRepository": "Desitgeu eliminar el repositori?",
- "DeleteRepositoryConfirmation": "N'esteu segur, de voler esborrar aquest repositori?"
+ "DeleteRepositoryConfirmation": "N'esteu segur, de voler esborrar aquest repositori?",
+ "LiveTVPageLoadError": "La càrrega de la pàgina de gravacions ha fallat"
}
From d3c11320a438fba57cdeb5ab04b8b90778b2e221 Mon Sep 17 00:00:00 2001
From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com>
Date: Fri, 27 Jun 2025 14:34:26 +0000
Subject: [PATCH 547/645] Update github/codeql-action action to v3.29.1
---
.github/workflows/__codeql.yml | 6 +++---
1 file changed, 3 insertions(+), 3 deletions(-)
diff --git a/.github/workflows/__codeql.yml b/.github/workflows/__codeql.yml
index 54aae70d7..54bccbf55 100644
--- a/.github/workflows/__codeql.yml
+++ b/.github/workflows/__codeql.yml
@@ -26,15 +26,15 @@ jobs:
show-progress: false
- name: Initialize CodeQL 🛠️
- uses: github/codeql-action/init@ce28f5bb42b7a9f2c824e633a3f6ee835bab6858 # v3.29.0
+ uses: github/codeql-action/init@39edc492dbe16b1465b0cafca41432d857bdb31a # v3.29.1
with:
queries: security-and-quality
languages: ${{ matrix.language }}
- name: Autobuild 📦
- uses: github/codeql-action/autobuild@ce28f5bb42b7a9f2c824e633a3f6ee835bab6858 # v3.29.0
+ uses: github/codeql-action/autobuild@39edc492dbe16b1465b0cafca41432d857bdb31a # v3.29.1
- name: Perform CodeQL Analysis 🧪
- uses: github/codeql-action/analyze@ce28f5bb42b7a9f2c824e633a3f6ee835bab6858 # v3.29.0
+ uses: github/codeql-action/analyze@39edc492dbe16b1465b0cafca41432d857bdb31a # v3.29.1
with:
category: '/language:${{matrix.language}}'
From 19162e00b1d6aefb6d52e58697fed30dab0dc9c5 Mon Sep 17 00:00:00 2001
From: Bill Thornton
Date: Fri, 27 Jun 2025 11:28:54 -0400
Subject: [PATCH 548/645] Cleanup package filter
Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>
---
.../plugins/utils/getPackagesByCategory.ts | 16 +++++++++-------
1 file changed, 9 insertions(+), 7 deletions(-)
diff --git a/src/apps/dashboard/features/plugins/utils/getPackagesByCategory.ts b/src/apps/dashboard/features/plugins/utils/getPackagesByCategory.ts
index afcbb7adc..fcaa21ad4 100644
--- a/src/apps/dashboard/features/plugins/utils/getPackagesByCategory.ts
+++ b/src/apps/dashboard/features/plugins/utils/getPackagesByCategory.ts
@@ -3,13 +3,15 @@ import type { PackageInfo } from '@jellyfin/sdk/lib/generated-client/models/pack
const getPackagesByCategory = (packages: PackageInfo[] | undefined, category: string) => {
if (!packages) return [];
- return packages.filter(pkg => pkg.category == category).sort((a, b) => {
- if (a.name && b.name) {
- return a.name?.localeCompare(b.name);
- } else {
- return 0;
- }
- });
+ return packages
+ .filter(pkg => pkg.category === category)
+ .sort((a, b) => {
+ if (a.name && b.name) {
+ return a.name.localeCompare(b.name);
+ } else {
+ return 0;
+ }
+ });
};
export default getPackagesByCategory;
From 5f632363b9c51f61564acf5a26e89e2635e559d3 Mon Sep 17 00:00:00 2001
From: Paul Donald
Date: Fri, 27 Jun 2025 17:40:57 +0200
Subject: [PATCH 549/645] Fix split idiom shutdown -> shut down
---
src/strings/en-us.json | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/src/strings/en-us.json b/src/strings/en-us.json
index 1a4879bf5..a5d9c9534 100644
--- a/src/strings/en-us.json
+++ b/src/strings/en-us.json
@@ -182,7 +182,7 @@
"ConfirmDeleteLyrics": "Deleting these lyrics will delete them from both the file system and your media library. Are you sure you wish to continue?",
"ConfirmDeleteRepository": "Delete repository?",
"ConfirmDeletion": "Confirm Deletion",
- "ConfirmEndPlayerSession": "Would you like to shutdown Jellyfin on {0}?",
+ "ConfirmEndPlayerSession": "Would you like to shut Jellyfin down on {0}?",
"Connect": "Connect",
"Console": "Console",
"ContinueWatching": "Continue watching",
@@ -1135,7 +1135,7 @@
"MessageConfirmRemoveMediaLocation": "Are you sure you wish to remove this location?",
"MessageConfirmRestart": "Are you sure you wish to restart Jellyfin?",
"MessageConfirmRevokeApiKey": "Are you sure you wish to revoke this API key? The application's connection to this server will be abruptly ended.",
- "MessageConfirmShutdown": "Are you sure you wish to shutdown the server?",
+ "MessageConfirmShutdown": "Are you sure you wish to shut the server down?",
"MessageContactAdminToResetPassword": "Please contact your system administrator to reset your password.",
"MessageCreateAccountAt": "Create an account at {0}",
"MessageDeleteTaskTrigger": "Are you sure you wish to delete this task trigger?",
From b823d146855e4e75da9bff0bb38d2efcf32923fb Mon Sep 17 00:00:00 2001
From: sarnoso
Date: Fri, 27 Jun 2025 11:53:14 -0400
Subject: [PATCH 550/645] Translated using Weblate (Spanish) Translation:
Jellyfin/Jellyfin Web Translate-URL:
https://translate.jellyfin.org/projects/jellyfin/jellyfin-web/es/
---
src/strings/es.json | 14 +++++++++++++-
1 file changed, 13 insertions(+), 1 deletion(-)
diff --git a/src/strings/es.json b/src/strings/es.json
index 4778c0731..83c1b08ef 100644
--- a/src/strings/es.json
+++ b/src/strings/es.json
@@ -2031,5 +2031,17 @@
"HeaderUpdateRequired": "Actualización requerida",
"ViewSettings": "Ajustes de vista",
"DownloadManager": "Descargas",
- "MessageForgotPasswordPinReset": "Introducir PIN aquí para terminar el restablecimiento de contraseña"
+ "MessageForgotPasswordPinReset": "Introducir PIN aquí para terminar el restablecimiento de contraseña",
+ "ButtonLearnMore": "Saber Más",
+ "Create": "Crear",
+ "HeaderBackupsHelp": "Crea y restaura instantáneas de tu servidor, que pueden incluir la base de datos, los metadatos, los subtítulos y el trickplay.",
+ "LabelBackupsUnavailable": "No hay respaldos disponibles",
+ "LabelDatabase": "Base de datos",
+ "BackupsPageLoadError": "Fallo al cargar la página de respaldos de datos",
+ "ButtonCreateBackup": "Crear respaldo de datos",
+ "LabelRestore": "Restaurar",
+ "ConfirmDeleteRepository": "Eliminar repositorio?",
+ "DeleteRepositoryConfirmation": "Estás seguro que quieres eliminar este repositorio?",
+ "LabelProgramData": "Datos del programa",
+ "LabelImageCache": "Caché de imágenes"
}
From b9c0585d9df6e2850d9246bd598e42e4d18e423c Mon Sep 17 00:00:00 2001
From: sarnoso
Date: Fri, 27 Jun 2025 11:59:24 -0400
Subject: [PATCH 551/645] Translated using Weblate (Spanish) Translation:
Jellyfin/Jellyfin Web Translate-URL:
https://translate.jellyfin.org/projects/jellyfin/jellyfin-web/es/
---
src/strings/es.json | 20 +++++++++++++++++++-
1 file changed, 19 insertions(+), 1 deletion(-)
diff --git a/src/strings/es.json b/src/strings/es.json
index 83c1b08ef..e452cf109 100644
--- a/src/strings/es.json
+++ b/src/strings/es.json
@@ -2043,5 +2043,23 @@
"ConfirmDeleteRepository": "Eliminar repositorio?",
"DeleteRepositoryConfirmation": "Estás seguro que quieres eliminar este repositorio?",
"LabelProgramData": "Datos del programa",
- "LabelImageCache": "Caché de imágenes"
+ "LabelImageCache": "Caché de imágenes",
+ "StorageType.Fixed": "Corregido",
+ "StorageType.CDRom": "CD-ROM",
+ "StorageType.Removable": "Extraíble",
+ "PluginsLoadError": "Se produjo un error al cargar los complementos.",
+ "RepositoriesPageLoadError": "Fallo al cargar los repositorios",
+ "MessageBackupDisclaimer": "Dependiendo del tamaño de tu biblioteca, el proceso de copia de seguridad puede tardar un rato.",
+ "MessageBackupInProgress": "Copia de seguridad en curso",
+ "MessageRestoreSuccess": "Restauración completada con éxito",
+ "StorageType.Network": "Red",
+ "StorageType.Ram": "RAM",
+ "StorageType.NoRootDirectory": "Directorio raíz no encontrado",
+ "StorageType.Unknown": "Desconocido",
+ "Success": "Operación exitosa",
+ "HeaderBackups": "Respaldos de datos",
+ "TranscodingLoadError": "Error al cargar la configuración de transcodificación",
+ "MessageRestoreDisclaimer": "ADVERTENCIA: Estás a punto de restaurar un respaldo de datos anterior. Tu servidor quedará inoperativo durante el proceso y se perderán todos los datos nuevos creados desde la fecha de esa copia.",
+ "MessageRestoreInProgress": "Restauración en progreso",
+ "MessageWaitingForServer": "Esperando al servidor..."
}
From 40d98ab6e15e9757f19d40bbaafe93b27b2e1023 Mon Sep 17 00:00:00 2001
From: Ruben Teixeira
Date: Fri, 27 Jun 2025 12:22:44 -0400
Subject: [PATCH 552/645] Translated using Weblate (Portuguese) Translation:
Jellyfin/Jellyfin Web Translate-URL:
https://translate.jellyfin.org/projects/jellyfin/jellyfin-web/pt/
---
src/strings/pt.json | 6 +++++-
1 file changed, 5 insertions(+), 1 deletion(-)
diff --git a/src/strings/pt.json b/src/strings/pt.json
index 61778f895..70536c9f1 100644
--- a/src/strings/pt.json
+++ b/src/strings/pt.json
@@ -2025,5 +2025,9 @@
"ViewSettings": "Ver definições",
"MessageForgotPasswordPinReset": "Introduz o PIN para concluir a redefinição da palavra-passe",
"DownloadManager": "Transferências",
- "LiveTVPageLoadError": "Falha ao carregar a página de gravações"
+ "LiveTVPageLoadError": "Falha ao carregar a página de gravações",
+ "ButtonLearnMore": "Saber mais",
+ "ButtonCreateBackup": "Criar cópia de segurança",
+ "BackupsPageLoadError": "Falha ao carregar página de cópias de segurança",
+ "ConfirmDeleteRepository": "Apagar repositório?"
}
From 85fc9de45f774f5f4a4baf78f226544dcacc8775 Mon Sep 17 00:00:00 2001
From: Timi Tuohenmaa <8275701+timitt@users.noreply.github.com>
Date: Sat, 29 Mar 2025 13:17:24 +0200
Subject: [PATCH 553/645] Enable use of hls.js when LG WebOS 4 or newer is
used.
---
src/components/htmlMediaHelper.js | 6 ++++++
src/scripts/browserDeviceProfile.js | 8 ++++++++
2 files changed, 14 insertions(+)
diff --git a/src/components/htmlMediaHelper.js b/src/components/htmlMediaHelper.js
index f876568ce..b2453c358 100644
--- a/src/components/htmlMediaHelper.js
+++ b/src/components/htmlMediaHelper.js
@@ -48,6 +48,12 @@ export function enableHlsJsPlayer(runTimeTicks, mediaType) {
return false;
}
+ // Native HLS support in WebOS only plays stereo sound. hls.js works better, but works only on WebOS 4 or newer.
+ // Using hls.js also seems to fix fast forward issues that native HLS has.
+ if (browser.web0sVersion >= 4) {
+ return true;
+ }
+
// The native players on these devices support seeking live streams, no need to use hls.js here
if (browser.tizen || browser.web0s) {
return false;
diff --git a/src/scripts/browserDeviceProfile.js b/src/scripts/browserDeviceProfile.js
index 086f9443a..80bf0f33e 100644
--- a/src/scripts/browserDeviceProfile.js
+++ b/src/scripts/browserDeviceProfile.js
@@ -137,6 +137,14 @@ function supportsEac3(videoTestElement) {
}
function supportsAc3InHls(videoTestElement) {
+ // We use hls.js on WebOS 4 and newer and hls.js uses Media Sources Extensions (MSE) API.
+ // On WebOS MSE does support AC-3 and EAC-3 only on audio mp4 file but not on audiovideo mp4
+ // therefore until audio and video is not separated when generating stream and m3u8 this should
+ // return false.
+ if (browser.web0sVersion >= 4) {
+ return false;
+ }
+
if (browser.tizen || browser.web0s) {
return true;
}
From c1678affff6d1c5e26c7518c467116084b47556e Mon Sep 17 00:00:00 2001
From: Ruben Teixeira
Date: Fri, 27 Jun 2025 12:32:56 -0400
Subject: [PATCH 554/645] Translated using Weblate (Portuguese) Translation:
Jellyfin/Jellyfin Web Translate-URL:
https://translate.jellyfin.org/projects/jellyfin/jellyfin-web/pt/
---
src/strings/pt.json | 18 ++++++++++++++++--
1 file changed, 16 insertions(+), 2 deletions(-)
diff --git a/src/strings/pt.json b/src/strings/pt.json
index 70536c9f1..2419279d4 100644
--- a/src/strings/pt.json
+++ b/src/strings/pt.json
@@ -1223,7 +1223,7 @@
"AllowTonemappingHelp": "O mapeamento de tons pode transformar a gama dinâmica de um vídeo de HDR para SDR, mantendo os detalhes e as cores da imagem, que são informações muito importantes para representar a cena original. Atualmente funciona apenas com vídeos HDR10 de 10 bits, HLG e DoVi. Isso requer o tempo de execução GPGPU correspondente.",
"MusicVideos": "Videoclipes",
"LabelTonemappingPeak": "Pico do mapeamento de tons",
- "LabelTonemappingParamHelp": "Afina o algoritmo de mapeamento de tons. Os valores recomendados e predefinidos são NaN. Exceto em casos específicos, é recomendado deixar este campo em branco.",
+ "LabelTonemappingParamHelp": "Afina o algoritmo de mapeamento de tons. É recomendado deixar este campo em branco.",
"LabelTonemappingParam": "Parâmetros do mapeamento de tons",
"LabelTonemappingDesatHelp": "Aplica a dessaturação aos realces que excedem este nível de brilho. O valor recomendado é 0 (desativar).",
"LabelTonemappingDesat": "Dessaturação do mapeamento de tons",
@@ -2029,5 +2029,19 @@
"ButtonLearnMore": "Saber mais",
"ButtonCreateBackup": "Criar cópia de segurança",
"BackupsPageLoadError": "Falha ao carregar página de cópias de segurança",
- "ConfirmDeleteRepository": "Apagar repositório?"
+ "ConfirmDeleteRepository": "Apagar repositório?",
+ "LabelRestore": "Restauro",
+ "MessageBackupDisclaimer": "Dependendo do tamanho da mediateca, o processo de cópia de segurança poderá ser demorado.",
+ "HeaderBackups": "Cópias de segurança",
+ "TranscodingLoadError": "Falha ao carregar configurações de transcodificação",
+ "StorageType.Unknown": "Desconhecido",
+ "Success": "Sucesso",
+ "MessageBackupInProgress": "Cópia de segurança em progresso",
+ "Create": "Criar",
+ "DeleteRepositoryConfirmation": "Tem a certeza que pretende apagar este repositório?",
+ "HeaderBackupsHelp": "Criar e restaurar cópias do servidor, incluindo metadados, legendas e miniaturas de pré-visualização.",
+ "LabelBackupsUnavailable": "Sem cópias de segurança disponíveis",
+ "LabelDatabase": "Base de dados",
+ "LabelImageCache": "Memória cache de imagens",
+ "LabelProgramData": "Dados da aplicação"
}
From 7b94be3ec666f5171923e33dc2d248f53d768db3 Mon Sep 17 00:00:00 2001
From: Gargotaire
Date: Fri, 27 Jun 2025 14:13:45 -0400
Subject: [PATCH 555/645] Translated using Weblate (Catalan) Translation:
Jellyfin/Jellyfin Web Translate-URL:
https://translate.jellyfin.org/projects/jellyfin/jellyfin-web/ca/
---
src/strings/ca.json | 20 ++++++++++----------
1 file changed, 10 insertions(+), 10 deletions(-)
diff --git a/src/strings/ca.json b/src/strings/ca.json
index 1d4b896b8..692bd35dc 100644
--- a/src/strings/ca.json
+++ b/src/strings/ca.json
@@ -1104,8 +1104,8 @@
"LabelTunerIpAddress": "Adreça IP de l'sintonitzador",
"LabelTranscodingThreadCountHelp": "Seleccioneu el nombre màxim de fils que pot utilitzar la transcodificació. La reducció del nombre de fils disminuirà l'ús de la CPU, però es possible que no transcodifiqui prou ràpid per a una reproducció fluïda.",
"LabelTranscodingThreadCount": "Transcodificació nombre de fils",
- "LabelTranscodingProgress": "Transcodificació de progrés",
- "LabelTranscodingFramerate": "Transcodificació d'imatges per segon",
+ "LabelTranscodingProgress": "Progrés de la transcodificació",
+ "LabelTranscodingFramerate": "Velocitat de transcodificació",
"LabelTranscodes": "Transcodificadors",
"LabelTranscodePath": "Ruta de transcodificació",
"LabelTonemappingThresholdHelp": "Els paràmetres de l'algorisme de mapa de tons es van afinar per cada escena. I un llindar s'utilitza per detectar si l'escena ha canviat o no. Si la distància entre l'actual marc de brillantor mig i la mitjana d'execució actual supera un valor llindar, ens agradaria tornar a calcular la mitjana i l'escena lluentor màxima. Els valors recomanats i predeterminats són 0,8 i 0,2.",
@@ -1113,15 +1113,15 @@
"LabelTonemappingRange": "Gamma de mapa de tons",
"LabelTonemappingPeakHelp": "Anul·la el valor de metadades incrustat pel senyal d'entrada amb aquest valor com a pic. El valor per defecte és 100 (1000 nits).",
"LabelTonemappingPeak": "Pic del mapa de tons",
- "LabelTonemappingParamHelp": "Ajusta l'algoritme d'assignació de to. Generalment, deixeu-ho en blanc.",
+ "LabelTonemappingParamHelp": "Ajusta l'algoritme de mapeig de to. Generalment, deixeu-ho en blanc.",
"LabelTonemappingParam": "Paràmetres de mapa de tons",
- "LabelTonemappingDesatHelp": "Aplicar dessaturació de punts destacats que superen aquest nivell de brillantor. El valor recomanat és 0 (desactivar).",
+ "LabelTonemappingDesatHelp": "Aplica dessaturació de punts realçats que superen aquest nivell de brillantor. El valor recomanat és 0 (deshabilitat).",
"LabelTonemappingDesat": "Mapa de tons desat",
- "LabelTonemappingAlgorithm": "Seleccioneu l'algoritme de \"Tone mapping\"",
- "LabelTextSize": "Mida de text",
- "LabelTextColor": "Color de text",
- "LabelTextBackgroundColor": "Color del text de fons",
- "LabelTagline": "Lema",
+ "LabelTonemappingAlgorithm": "Seleccioneu l'algoritme de mapeig de tons",
+ "LabelTextSize": "Mida del text",
+ "LabelTextColor": "Color del text",
+ "LabelTextBackgroundColor": "Color de fons del text",
+ "LabelTagline": "Eslògan",
"LabelTag": "Etiqueta",
"LabelSyncPlayTimeSyncOffset": "Temps de decalatge",
"LabelSyncPlayTimeSyncDevice": "Temps de sincronització amb",
@@ -1616,7 +1616,7 @@
"Lyricist": "Lletrista",
"Localization": "Localització",
"Larger": "Més gran",
- "LabelSyncPlaySettingsSkipToSyncHelp": "Mètode de correcció de sincronització que consisteix a buscar la posició estimada. La correcció de sincronització ha d'estar activada.",
+ "LabelSyncPlaySettingsSkipToSyncHelp": "Mètode de correcció de sincronització que consisteix a cercar la posició estimada. La correcció de sincronització ha d'estar activada.",
"LabelSyncPlaySettingsSkipToSync": "Habilita SkipToSync",
"LabelSyncPlaySettingsSpeedToSyncHelp": "Mètode de correcció de sincronització que consisteix a accelerar la reproducció. La correcció de sincronització ha d'estar habilitada.",
"LabelSyncPlaySettingsSpeedToSync": "Habilita SpeedToSync",
From dee168f63283c5e1f9341a86825de99914cfaf28 Mon Sep 17 00:00:00 2001
From: Tal Sarid
Date: Fri, 27 Jun 2025 14:06:15 -0400
Subject: [PATCH 556/645] Translated using Weblate (Hebrew) Translation:
Jellyfin/Jellyfin Web Translate-URL:
https://translate.jellyfin.org/projects/jellyfin/jellyfin-web/he/
---
src/strings/he.json | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
diff --git a/src/strings/he.json b/src/strings/he.json
index 96b3303a6..9728c7c22 100644
--- a/src/strings/he.json
+++ b/src/strings/he.json
@@ -1993,5 +1993,6 @@
"MessageRestoreDisclaimer": "אזהרה: שחזור מגיבוי קודם. השרת לא יהיה פעיל בזמן השחזור וכל מידע חדש שנוצר מאז הגיבוי יאבד.",
"Success": "הצלחה",
"MessageRestoreInProgress": "מתבצע שחזור",
- "MessageRestoreSuccess": "השחזור הושלם בהצלחה"
+ "MessageRestoreSuccess": "השחזור הושלם בהצלחה",
+ "LiveTVPageLoadError": "נכשל בטעינת דף ההקלטות"
}
From f38dc83ca681e8b3d4dad67549fa3c380b8ea3c1 Mon Sep 17 00:00:00 2001
From: Kityn
Date: Fri, 27 Jun 2025 13:54:55 -0400
Subject: [PATCH 557/645] Translated using Weblate (Polish) Translation:
Jellyfin/Jellyfin Web Translate-URL:
https://translate.jellyfin.org/projects/jellyfin/jellyfin-web/pl/
---
src/strings/pl.json | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/src/strings/pl.json b/src/strings/pl.json
index a69ae7648..6e7c2c9a0 100644
--- a/src/strings/pl.json
+++ b/src/strings/pl.json
@@ -115,7 +115,7 @@
"ConfirmDeleteItem": "Usunięcie tej pozycji usunie ją zarówno z systemu plików jak i z biblioteki mediów. Czy chcesz kontynuować?",
"ConfirmDeleteItems": "Usunięcie tej pozycji usunie ją zarówno z systemu plików jak i z biblioteki mediów. Czy chcesz kontynuować?",
"ConfirmDeletion": "Potwierdzenie usunięcia",
- "ConfirmEndPlayerSession": "Czy chcesz zamknąć Jellyfin na {0}?",
+ "ConfirmEndPlayerSession": "Czy chcesz wyłączyć Jellyfin na {0}?",
"Connect": "Połącz",
"ContinueWatching": "Kontynuuj odtwarzanie",
"Continuing": "Dalej wyświetlane",
@@ -782,7 +782,7 @@
"MessageConfirmRemoveMediaLocation": "Czy na pewno chcesz usunąć tę lokalizację?",
"MessageConfirmRestart": "Czy na pewno chcesz uruchomić Jellyfin ponownie?",
"MessageConfirmRevokeApiKey": "Czy na pewno chcesz unieważnić klucz API? Połączenia aplikacji z serwerem zostaną natychmiastowo zakończone.",
- "MessageConfirmShutdown": "Czy na pewno chcesz zamknąć serwer?",
+ "MessageConfirmShutdown": "Czy na pewno chcesz wyłączyć serwer?",
"MessageContactAdminToResetPassword": "W celu wyczyszczenia hasła. skontaktuj się z administratorem systemu.",
"MessageCreateAccountAt": "Utwórz konto na {0}",
"MessageDeleteTaskTrigger": "Czy na pewno chcesz usunąć ten wyzwalacz zadania?",
From b9e411c660c4c81ecbead436de71fc020875c5dc Mon Sep 17 00:00:00 2001
From: Gargotaire
Date: Fri, 27 Jun 2025 16:55:06 -0400
Subject: [PATCH 558/645] Translated using Weblate (Catalan) Translation:
Jellyfin/Jellyfin Web Translate-URL:
https://translate.jellyfin.org/projects/jellyfin/jellyfin-web/ca/
---
src/strings/ca.json | 102 ++++++++++++++++++++++----------------------
1 file changed, 51 insertions(+), 51 deletions(-)
diff --git a/src/strings/ca.json b/src/strings/ca.json
index 692bd35dc..bc3acdaa6 100644
--- a/src/strings/ca.json
+++ b/src/strings/ca.json
@@ -15,7 +15,7 @@
"Audio": "Àudio",
"MessageBrowsePluginCatalog": "Consulteu el nostre catàleg per veure els complements disponibles.",
"ButtonAddMediaLibrary": "Afegeix una mediateca",
- "ButtonAddScheduledTaskTrigger": "Afegeix un disparador",
+ "ButtonAddScheduledTaskTrigger": "Afegeix un detonador",
"ButtonAddServer": "Afegeix un servidor",
"ButtonAddUser": "Afegeix un usuari",
"ButtonArrowLeft": "Esquerra",
@@ -183,7 +183,7 @@
"HeaderStatus": "Estat",
"HeaderSubtitleAppearance": "Aparença dels subtítols",
"HeaderSystemDlnaProfiles": "Perfils del sistema",
- "HeaderTaskTriggers": "Disparadors de tasques",
+ "HeaderTaskTriggers": "Detonadors de tasques",
"HeaderTranscodingProfile": "Perfil de transcodificació",
"HeaderTypeText": "Introduïu text",
"HeaderUpcomingOnTV": "Properes emissions",
@@ -356,8 +356,8 @@
"LabelTimeLimitHours": "Temps límit (en hores)",
"LabelTitle": "Títol",
"LabelTrackNumber": "Pista",
- "LabelTranscodingTempPathHelp": "Especifiqueu una ruta d'accés personalitzat per als fitxers de transcodificació servits als clients. Deixeu-ho en blanc per utilitzar el servidor per defecte.",
- "LabelTriggerType": "Tipus de Disparador",
+ "LabelTranscodingTempPathHelp": "Especifiqueu una ruta personalitzada d'accés per als fitxers de transcodificació servits als clients. Deixeu-ho en blanc per a utilitzar el servidor per defecte.",
+ "LabelTriggerType": "Tipus de detonador",
"LabelType": "Tipus",
"LabelUseNotificationServices": "Empra els següents serveis",
"LabelUser": "Usuari",
@@ -371,7 +371,7 @@
"Live": "Directe",
"MarkPlayed": "Marca com a reproduït",
"MarkUnplayed": "Marca com a no reproduït",
- "MaxParentalRatingHelp": "El contingut amb una classificació superior no serà mostrat a l'usuari.",
+ "MaxParentalRatingHelp": "El contingut amb una classificació superior s'amagarà a aquest usuari.",
"MediaInfoAspectRatio": "Relació d'aspecte",
"MediaInfoChannels": "Canals",
"MediaInfoDefault": "Per defecte",
@@ -382,15 +382,15 @@
"MediaInfoResolution": "Resolució",
"MessageAreYouSureDeleteSubtitles": "N'esteu segur, que voleu eliminar aquest fitxer de subtítols?",
"MessageConfirmProfileDeletion": "N'estàs segur d'eliminar aquest perfil?",
- "MessageConfirmRecordingCancellation": "Estàs segur que vols cancel·lar aquest enregistrament?",
+ "MessageConfirmRecordingCancellation": "N'esteu segur, que voleu cancel·lar l'enregistrament?",
"MessageConfirmRestart": "N'esteu segur, que voleu reiniciar Jellyfin?",
"MessageContactAdminToResetPassword": "Contacteu amb l'administrador per a restablir la contrasenya.",
- "MessageDownloadQueued": "Descàrrega encuada.",
+ "MessageDownloadQueued": "Descàrrega posada a la cua.",
"MessageEnablingOptionLongerScans": "Habilitar aquesta opció pot resultar en escanejos significativament més lents de la mediateca.",
- "MessageItemSaved": "Ítem desat.",
- "MessageItemsAdded": "Ítems afegits.",
+ "MessageItemSaved": "Element desat.",
+ "MessageItemsAdded": "Elements afegits.",
"MessageNoAvailablePlugins": "No hi ha complements disponibles.",
- "MessageNoMovieSuggestionsAvailable": "Per ara no hi ha suggerències de pel·lícules. Comenceu a veure i valorar les pel·lícules i torneu aquí per veure les recomanacions.",
+ "MessageNoMovieSuggestionsAvailable": "Per ara no hi ha suggeriments de pel·lícules. Comenceu a veure i valorar les pel·lícules i torneu aquí per veure les recomanacions.",
"MessageNoPluginsInstalled": "No té cap complement instal·lat.",
"MessageNoTrailersFound": "Instal·leu el canal de tràilers per millorar la vostra experiència de pel·lícula afegint una biblioteca de tràilers d'internet.",
"MessageNothingHere": "Res per aquí.",
@@ -413,7 +413,7 @@
"NewCollectionNameExample": "Exemple: Col·leció Star Wars",
"NewEpisodes": "Nous episodis",
"NewEpisodesOnly": "Només episodis nous",
- "MessageNoNextUpItems": "Cap trobat. Comença a mirar els teus programes!",
+ "MessageNoNextUpItems": "No s'ha trobat cap. Comenceu a mirar les vostres sèries!",
"MessageNoPluginConfiguration": "Aquest complement no té opcions de configuració.",
"NoSubtitleSearchResultsFound": "No s'han trobat resultats.",
"None": "Cap",
@@ -775,7 +775,7 @@
"DeinterlaceMethodHelp": "Seleccioneu el mètode de desentrellaçat que voleu utilitzar quan transcodifiqueu el programari de contingut entrellaçat. Quan està activada l'acceleració de maquinari que admet el desentrellaçat de maquinari, s'utilitzarà el desentrellaçador de maquinari en lloc d'aquesta configuració.",
"HeaderDirectPlayProfileHelp": "Afegiu perfils de reproducció directa per indicar quins formats pot gestionar el dispositiu de forma nativa.",
"HeaderDetectMyDevices": "Elimina els meus dispositius",
- "HeaderDeleteTaskTrigger": "S'està eliminant el disparador de tasques",
+ "HeaderDeleteTaskTrigger": "S'està eliminant el detonador de tasques",
"HeaderDeleteProvider": "Elimina el proveïdor",
"HeaderDeleteItems": "Elimina els elements",
"HeaderDeleteDevices": "Elimina tots els dispositius",
@@ -1013,30 +1013,30 @@
"MessagePleaseWait": "Si us plau, espereu. Això pot trigar un minut.",
"MessagePlayAccessRestricted": "La reproducció d'aquest contingut està restringit actualment. Poseu-vos en contacte amb l'administrador de servidor per obtenir més informació.",
"MessagePasswordResetForUsers": "S'han restablert contrasenyes dels següents usuaris. Ara poden accedir amb codis PIN que van utilitzar per realitzar el restabliment.",
- "MessageNoServersAvailable": "No hi ha servidors han estat trobats usant el descobriment automàtic de servidor.",
+ "MessageNoServersAvailable": "No s'ha trobat cap servidor fent sevir el detector automàtic de servidors.",
"MessageNoRepositories": "No hi ha repositoris.",
- "MessageNoGenresAvailable": "Permetre alguns proveïdors de metadades per tirar dels gèneres a través d'Internet.",
- "MessageNoCollectionsAvailable": "Les col·leccions us permeten gaudir d'agrupacions personalitzades de pel·lícules, sèries i àlbums. Feu clic al botó '+' per començar a crear col·leccions.",
- "MessageLeaveEmptyToInherit": "Deixar en blanc per Heretar configuració d'un element principal o el valor predeterminat global.",
+ "MessageNoGenresAvailable": "Habilita alguns proveïdors de metadades per a extreure els gèneres d'Internet.",
+ "MessageNoCollectionsAvailable": "Les col·leccions us permeten gaudir d'agrupacions personalitzades de pel·lícules, sèries i àlbums. Feu clic al botó '+' per a començar a crear col·leccions.",
+ "MessageLeaveEmptyToInherit": "Deixeu-ho en blanc per a heretar la configuració d'un element principal o el valor predeterminat global.",
"MessageInvalidUser": "Nom d'usuari o contrasenya incorrectes. Torneu-ho a provar.",
- "MessageInvalidForgotPasswordPin": "S'ha introduït un codi PIN no vàlid o caducat. Torni-ho a provar.",
+ "MessageInvalidForgotPasswordPin": "S'ha introduït un codi PIN no vàlid o caducat. Torneu-ho a provar.",
"MessageImageTypeNotSelected": "Seleccioneu un tipus d'imatge al menú desplegable.",
- "MessageImageFileTypeAllowed": "Només els arxius JPEG i PNG són compatibles.",
+ "MessageImageFileTypeAllowed": "Només els fitxers JPEG i PNG són compatibles.",
"MessageGetInstalledPluginsError": "S'ha produït un error a l'hora d'obtenir la llista de complements instal·lats.",
"MessageForgotPasswordInNetworkRequired": "Torneu a iniciar el procés de restabliment de contrasenya des de la vostra xarxa domèstica.",
- "MessageForgotPasswordFileCreated": "El següent arxiu s'ha creat en el seu servidor i conté instruccions sobre com procedir",
- "MessageFileReadError": "Hi ha hagut un error a llegint l'arxiu. Torni-ho a provar.",
- "MessageDirectoryPickerLinuxInstruction": "Per a Linux amb Arch Linux, CentOS, Debian, Fedora, openSUSE, o Ubuntu, ha de concedir a l'usuari del servei com a mínim l'accés de lectura als llocs d'emmagatzematge.",
+ "MessageForgotPasswordFileCreated": "El següent fitxer s'ha creat en el seu servidor i conté instruccions sobre com procedir",
+ "MessageFileReadError": "S'ha produït un error en llegir el fitxer. Torneu-ho a provar.",
+ "MessageDirectoryPickerLinuxInstruction": "Per a Linux amb Arch Linux, CentOS, Debian, Fedora, openSUSE, o Ubuntu, heu de concedir a l'usuari del servei com a mínim l'accés de lectura als llocs d'emmagatzematge.",
"MessageDirectoryPickerBSDInstruction": "Per a BSD, caldrà tenir configurat l'emmagatzematge del \"FreeNAS Jail\" perquè permeti a Jellyfin accedir al contingut multimèdia.",
- "MessageDeleteTaskTrigger": "N'esteu segur, que voleu eliminar aquest disparador tasca?",
- "MessageCreateAccountAt": "Crear un compte a {0}",
+ "MessageDeleteTaskTrigger": "N'esteu segur, que voleu eliminar aquest detonador de tasca?",
+ "MessageCreateAccountAt": "Crea un compte a {0}",
"MessageConfirmShutdown": "N'esteu segur, que voleu tancar el servidor?",
"MessageConfirmRevokeApiKey": "N'esteu segur, de voler revocar aquesta clau d'API? La connexió de l'aplicació d'aquest servidor s'interromprà abruptament.",
"MessageConfirmRemoveMediaLocation": "N'esteu segur, que voleu suprimir aquesta ubicació?",
"MessageConfirmDeleteTunerDevice": "N'esteu segur, que voleu eliminar aquest dispositiu?",
"MessageConfirmDeleteGuideProvider": "N'esteu segur, que voleu eliminar aquest proveïdor de guia?",
- "MessageConfirmAppExit": "Vols sortir?",
- "MessageChangeRecordingPath": "Canviar la seva carpeta d'enregistrament no migrarà enregistraments existents des de la ubicació anterior a la nova. Haurà de moure manualment si es desitja.",
+ "MessageConfirmAppExit": "Desitgeu sortir?",
+ "MessageChangeRecordingPath": "Canviar la seva carpeta d'enregistrament no migrarà enregistraments existents des de la ubicació anterior a la nova. Si ho desitgeu, l'haureu de moure manualment.",
"MessageAreYouSureYouWishToRemoveMediaFolder": "N'esteu segur, que desitgeu eliminar aquest directori multimèdia?",
"MessageAlreadyInstalled": "Aquesta versió ja està instal·lada.",
"MessageAddRepository": "Si voleu afegir un repositori, feu clic al botó situat al costat de la capçalera i completeu la informació sol·licitada.",
@@ -1046,15 +1046,15 @@
"MediaInfoTimestamp": "Marca de temps",
"MediaInfoSize": "Mida",
"MediaInfoSampleRate": "Freqüència de mostreig",
- "MediaInfoRefFrames": "Ref de quadres",
+ "MediaInfoRefFrames": "Fotogrames de referència",
"MediaInfoPath": "Ruta",
"MediaInfoLevel": "Nivell",
- "MediaInfoLayout": "Disposició",
+ "MediaInfoLayout": "Format",
"MediaInfoInterlaced": "Entrellaçat",
"MediaInfoFramerate": "Imatges per segon",
"MediaInfoExternal": "Extern",
"MediaInfoContainer": "Contenidor",
- "MediaInfoColorTransfer": "Transferencia de color",
+ "MediaInfoColorTransfer": "Transferència de color",
"MediaInfoColorSpace": "Espai de color",
"MediaInfoColorPrimaries": "Colors primaris",
"MediaInfoCodecTag": "Etiqueta de còdec",
@@ -1062,10 +1062,10 @@
"MediaInfoBitrate": "Taxa de bits",
"MediaInfoBitDepth": "Profunditat de bits",
"MediaInfoAnamorphic": "Anamòrfic",
- "MapChannels": "Mapa de canals",
- "ManageRecording": "Maneig de gravació",
+ "MapChannels": "Mapeja canals",
+ "ManageRecording": "Maneig d'enregistrament",
"ManageLibrary": "Gestió de la mediateca",
- "Logo": "Logo",
+ "Logo": "Logotip",
"LiveTV": "TV en directe",
"LiveBroadcasts": "Emissions en directe",
"ListPaging": "{0} - {1} de {2}",
@@ -1082,14 +1082,14 @@
"LabelXDlnaCap": "Dispositiu Capability ID",
"LabelWeb": "Web",
"LabelVideoResolution": "Resolució de vídeo",
- "LabelVideoRange": "Gamma de vídeo",
+ "LabelVideoRange": "Rang de vídeo",
"LabelVideoCodec": "Còdec de vídeo",
"LabelVideoBitrate": "Taxa de bits de vídeo",
"LabelVersionInstalled": "{0} instal·lats",
"LabelVersion": "Versió",
- "LabelVaapiDeviceHelp": "Aquest és el \"render node\" que s'utilitza per a l'acceleració de maquinari.",
+ "LabelVaapiDeviceHelp": "Aquest és el node de processament que es fa servir per a l'acceleració del maquinari.",
"LabelVaapiDevice": "Dispositiu VA-API",
- "LabelUserRemoteClientBitrateLimitHelp": "Substituir el valor global predeterminat establert a la configuració del servidor, vegeu Tauler de control > Reproducció > Streaming.",
+ "LabelUserRemoteClientBitrateLimitHelp": "Substitueix el valor global predeterminat establert a la configuració del servidor, vegeu Tauler de control > Reproducció > Reproducció en línia.",
"LabelUserMaxActiveSessions": "Nombre màxim de sessions simultànies d'usuaris",
"LabelUserLoginAttemptsBeforeLockout": "Intents de connexió fallits abans que l'usuari sigui bloquejat",
"LabelUserLibraryHelp": "Seleccioneu quina biblioteca d'usuari es visualitza al dispositiu. Deixeu-ho en blanc per heretar la configuració predeterminada.",
@@ -1101,9 +1101,9 @@
"LabelTypeMetadataDownloaders": "Descarregadors de metadades ({0})",
"LabelTVHomeScreen": "Pantalla d'inici en mode TV",
"LabelTunerType": "Tipus de sintonitzador",
- "LabelTunerIpAddress": "Adreça IP de l'sintonitzador",
+ "LabelTunerIpAddress": "Adreça IP del sintonitzador",
"LabelTranscodingThreadCountHelp": "Seleccioneu el nombre màxim de fils que pot utilitzar la transcodificació. La reducció del nombre de fils disminuirà l'ús de la CPU, però es possible que no transcodifiqui prou ràpid per a una reproducció fluïda.",
- "LabelTranscodingThreadCount": "Transcodificació nombre de fils",
+ "LabelTranscodingThreadCount": "Nombre de fils de la transcodificació",
"LabelTranscodingProgress": "Progrés de la transcodificació",
"LabelTranscodingFramerate": "Velocitat de transcodificació",
"LabelTranscodes": "Transcodificadors",
@@ -1653,9 +1653,9 @@
"IgnoreDts": "Ignora DTS (descodificació de la marca de temps)",
"IgnoreDtsHelp": "Desactivar aquesta opció pot resoldre alguns problemes. Per exemple, àudio absent a canals amb vídeo i àudio rebuts per separat.",
"LabelMaxVideoResolution": "Resolució màxima permesa en transcodificar un vídeo",
- "MessageNoFavoritesAvailable": "No hi han preferits disponibles actualment.",
+ "MessageNoFavoritesAvailable": "Actualment, no hi ha preferits disponibles.",
"OptionDateEpisodeAdded": "Data d'addició de l'episodi",
- "MessageNoItemsAvailable": "No hi han elements disponibles actualment.",
+ "MessageNoItemsAvailable": "Actualment, no hi ha elements disponibles.",
"MessageRenameMediaFolder": "Canviar una mediateca de nom provocarà que es perdin totes les metadades, continueu amb precaució.",
"LabelTextWeight": "Estil de text",
"RememberSubtitleSelections": "Estableix la pista de subtítols en funció de l'element anterior",
@@ -1726,8 +1726,8 @@
"TonemappingModeHelp": "Selecciona el mode de mapeig de to. Si experimentes zones sobreexposades, prova a canviar al mode RGB.",
"EnableAudioNormalizationHelp": "La normalització de l'àudio afegirà un guany constant per mantenir la mitjana al nivell desitjat (-18dB).",
"GetThePlugin": "Obtenir el Plugin",
- "MenuClose": "Tancar el menú",
- "MenuOpen": "Obrir el menú",
+ "MenuClose": "Tanca el menú",
+ "MenuOpen": "Obre el menú",
"Notifications": "Notificacions",
"NotificationsMovedMessage": "Les funcions de notificacions s'han mogut al plugin Webhook.",
"UserMenu": "Menú d'usuari",
@@ -1738,7 +1738,7 @@
"LabelThrottleDelaySecondsHelp": "Temps en segons, després del qual s'accelerarà el transcodificador. La durada ha de ser suficient per a que el client mantingui una memòria intermèdia saludable. Només funciona si l'acceleració està habilitada.",
"LabelSegmentKeepSeconds": "Temps per mantenir els segments",
"LabelIsHearingImpaired": "Per a persones amb discapacitat auditiva (SDH)",
- "LogLevel.Warning": "Advertència",
+ "LogLevel.Warning": "Avís",
"GoHome": "Ves a l'inici",
"HearingImpairedShort": "HI/SDH",
"LabelBackdropScreensaverInterval": "Interval de l'estalvi de pantalla de fons",
@@ -1746,11 +1746,11 @@
"LabelSyncPlayNoGroups": "No hi ha grups disponibles",
"GridView": "Vista de graella",
"BackdropScreensaver": "Estalvis de pantalla de fons",
- "ListView": "Vista de Llista",
+ "ListView": "Vista de llista",
"LogLevel.Critical": "Crític",
"LogLevel.Information": "Informació",
"LogLevel.Debug": "Depuració",
- "LogoScreensaver": "Salvapantalles de Logo",
+ "LogoScreensaver": "Estalvi de pantalles del logotip",
"LogLevel.None": "Cap",
"HeaderEpisodesStatus": "Estat dels episodis",
"LabelDate": "Data",
@@ -1820,8 +1820,8 @@
"PriorityHigh": "Alta",
"EnableLibrary": "Habilita la mediateca",
"EnableLibraryHelp": "Deshabilitar la mediateca l'amagarà per a tots els usuaris.",
- "LimitSupportedVideoResolution": "Limita la resolució màxima de vídeo suportada",
- "LimitSupportedVideoResolutionHelp": "Utilitzar \"La màxima resolució de transcodificació de vídeo permesa\" com a màxima resolució suportada.",
+ "LimitSupportedVideoResolution": "Limita la resolució màxima de vídeos compatibles",
+ "LimitSupportedVideoResolutionHelp": "Fes servir \"La màxima resolució de transcodificació de vídeo permesa\" com a màxima resolució permesa.",
"PlaybackError.FATAL_HLS_ERROR": "S'ha produït un error fatal al stream HLS.",
"PlaybackError.RateLimitExceeded": "Aquest contingut multimèdia no es pot reproduir en aquests instants deguts a límits de transmissió.",
"EncodingFormatHelp": "Seleccioni la codificació de vídeo a la qual hauria de transcodificar Jellyfin. Jellyfin utilitzarà codificació mitjançant programari quan l'acceleració per maquinari no estigui disponible. La codificació H264 sempre estarà habilitada.",
@@ -1885,12 +1885,12 @@
"SaveLyricsIntoMediaFolders": "Desa la lletra a les carpetes multimèdia",
"SaveLyricsIntoMediaFoldersHelp": "Emmagatzemar les lletres al costat dels fitxers d'àudio permetrà gestionar-les més fàcilment.",
"LabelSelectPreferredTranscodeVideoAudioCodec": "Còdec d'àudio de transcodificació preferit en la reproducció de vídeo",
- "LibraryScanFanoutConcurrencyHelp": "Nombre màxim de tasques paral·leles durant les exploracions de la mediateca. Si es deixa buit, es triarà un límit basat en el nombre de nuclis del vostre sistema. ADVERTÈNCIA: establir aquest número massa alt pot causar problemes amb els sistemes de fitxers de xarxa; si trobeu problemes, baixeu aquest número.",
+ "LibraryScanFanoutConcurrencyHelp": "Nombre màxim de tasques paral·leles durant les exploracions de la mediateca. Si es deixa buit, es triarà un límit basat en el nombre de nuclis del vostre sistema. AVÍS: establir aquest número massa alt pot causar problemes amb els sistemes de fitxers de xarxa; si us dona problemes, abaixeu aquest número.",
"SelectPreferredTranscodeVideoAudioCodecHelp": "Seleccioneu el còdec d'àudio preferit per transcodificar per al contingut de vídeo. Si el còdec preferit no és compatible, el servidor utilitzarà el següent millor còdec disponible.",
"LibraryScanFanoutConcurrency": "Límit de tasques d'exploració paral·leles per a les mediateques",
"Penciller": "Dibuixant",
"Inker": "Entintador",
- "Letterer": "Retolador",
+ "Letterer": "Retolista",
"Alternate": "Alterna",
"AlternateDVD": "DVD alternatiu",
"Regional": "Regional",
@@ -1946,7 +1946,7 @@
"LabelCustomTagDelimitersHelp": "Caràcters que es consideraran delimitadors per a separar etiquetes.",
"LabelQsvDevice": "Dispositiu QSV",
"MediaSegmentAction.None": "Cap",
- "MediaSegmentAction.Skip": "Saltar",
+ "MediaSegmentAction.Skip": "Salta",
"MediaSegmentType.Intro": "Introducció",
"LabelDelimiterWhitelist": "Llista blanca de delimitadors",
"LabelDelimiterWhitelistHelp": "Elements a excloure de la divisió d'etiquetes. Un element per línia.",
@@ -1959,7 +1959,7 @@
"LabelQsvDeviceHelp": "Específica el dispositiu Intel QSV en els sistemes amb múltiples GPU. En sistemes Linux, això és un node de renderitzat, per exemple, /dev/dri/renderD128. En Windows, és un índex de dispositiu que comença al 0. Deixeu-ho en blanc a no ser que sapigueu què esteu fent.",
"LabelScreensaverTime": "Temps de l'estalvi de pantalla",
"LabelScreensaverTimeHelp": "La quantitat de temps, en segons d'inactivitat, necessària per activar l'estalvi de pantalla.",
- "MediaSegmentAction.AskToSkip": "Solicitar saltar",
+ "MediaSegmentAction.AskToSkip": "Sol·licita saltar",
"MediaSegmentSkipPrompt": "Salta {0}",
"MediaSegmentType.Commercial": "Comercial",
"MediaSegmentType.Recap": "Recapitulació",
@@ -1970,7 +1970,7 @@
"LabelAlwaysRemuxMp3AudioFiles": "Sempre re-multiplexa els fitxers d'àudio MP3",
"LabelSaveTrickplayLocally": "Desa les imatges de previsualització junt amb els continguts multimèdia",
"LabelSaveTrickplayLocallyHelp": "Desant les imatges de previsualització als directoris multimèdia, quedaran junt amb els continguts multimèdia per a més fàcil migració i accés.",
- "LyricDownloadersHelp": "Activa i classifica els descarregadors de lletres preferits en ordre de prioritat.",
+ "LyricDownloadersHelp": "Habilita i classifica en ordre de prioritat els descarregadors de lletres preferits.",
"MessageSplitVersionsError": "S'ha produït un error separant les versions",
"LabelAllowStreamSharing": "Permet la reproducció compartida",
"AlwaysBurnInSubtitleWhenTranscoding": "En transcodificar, incrusta sempre els subtítols",
@@ -2027,7 +2027,7 @@
"HeaderUpdateRequired": "Cal una actualització",
"ViewSettings": "Configuració de visualització",
"DownloadManager": "Descàrregues",
- "MessageForgotPasswordPinReset": "Introduïu el PIN aquí per a acabar el restabliment de la contrasenya",
+ "MessageForgotPasswordPinReset": "Introduïu el PIN aquí per a concloure el restabliment de la contrasenya",
"LabelImageCache": "Imatges a la memòria cau",
"MessageBackupDisclaimer": "Depenent de la mida de la mediateca, la còpia de seguretat pot trigar una estona.",
"MessageRestoreDisclaimer": "ATENCIÓ: Estàs a punt de restaurar una còpia de seguretat anterior. El seu servidor no serà utilitzable durant el procés i les dades creades des del moment de l'inici de la còpia seran perdudes.",
From 9fc3bde43c63f4aa8c78efe63c91b77fc6d94c3c Mon Sep 17 00:00:00 2001
From: viown <48097677+viown@users.noreply.github.com>
Date: Sat, 28 Jun 2025 03:39:39 +0300
Subject: [PATCH 559/645] Update header sizes to be consistent
---
src/apps/dashboard/components/table/TablePage.tsx | 2 +-
src/apps/dashboard/routes/libraries/display.tsx | 2 +-
src/apps/dashboard/routes/libraries/nfo.tsx | 2 +-
3 files changed, 3 insertions(+), 3 deletions(-)
diff --git a/src/apps/dashboard/components/table/TablePage.tsx b/src/apps/dashboard/components/table/TablePage.tsx
index d9724c9d1..3b68ab851 100644
--- a/src/apps/dashboard/components/table/TablePage.tsx
+++ b/src/apps/dashboard/components/table/TablePage.tsx
@@ -53,7 +53,7 @@ const TablePage = ({
marginBottom: 1
}}
>
-
+
{title}
{subtitle && (
diff --git a/src/apps/dashboard/routes/libraries/display.tsx b/src/apps/dashboard/routes/libraries/display.tsx
index 7e47367ac..ad8667726 100644
--- a/src/apps/dashboard/routes/libraries/display.tsx
+++ b/src/apps/dashboard/routes/libraries/display.tsx
@@ -98,7 +98,7 @@ export const Component = () => {
{globalize.translate('SettingsSaved')}
)}
- {globalize.translate('Display')}
+ {globalize.translate('Display')} {
{globalize.translate('SettingsSaved')}
)}
- {globalize.translate('TabNfoSettings')}
+ {globalize.translate('TabNfoSettings')}{globalize.translate('HeaderKodiMetadataHelp')}
Date: Fri, 27 Jun 2025 21:34:17 -0400
Subject: [PATCH 560/645] Translated using Weblate (Spanish (Latin America))
Translation: Jellyfin/Jellyfin Web Translate-URL:
https://translate.jellyfin.org/projects/jellyfin/jellyfin-web/es_419/
---
src/strings/es_419.json | 13 ++++++++++++-
1 file changed, 12 insertions(+), 1 deletion(-)
diff --git a/src/strings/es_419.json b/src/strings/es_419.json
index d81cb244f..1f5e8fe44 100644
--- a/src/strings/es_419.json
+++ b/src/strings/es_419.json
@@ -1746,5 +1746,16 @@
"DeleteName": "Borrar {0}",
"EnableDts": "Activar DTS (DCA)",
"DownloadManager": "Descargas",
- "EnableLibrary": "Habilitar la librería"
+ "EnableLibrary": "Habilitar la librería",
+ "EnableLibraryHelp": "Deshabilitar la librería ocultará la ayuda de todos las vistas de usuario.",
+ "EnableHi10pHelp": "Activar para evitar transcodificar vídeos a H.264 10-bit. Desactivar esta opción si el video muestra recuadros en blanco.",
+ "ButtonLearnMore": "Aprender Más",
+ "Create": "Crear",
+ "EnableTrueHd": "Activar TrueHD",
+ "BackupsPageLoadError": "Falló al cargar la página de respaldos",
+ "ButtonCreateBackup": "Crear Respaldo",
+ "EnableSmoothScroll": "Activar desplazamiento suavizado",
+ "ConfirmDeleteRepository": "¿Eliminar repositorio?",
+ "DeleteRepositoryConfirmation": "¿Estás seguro de que deseas eliminar este repositorio?",
+ "EnableTrueHdHelp": "Habilítelo solo si su dispositivo es compatible con TrueHD o está conectado a un receptor de audio compatible, de lo contrario, puede provocar fallas en la reproducción."
}
From c1b99115e8187e40112d4b6742fb369e8a697d06 Mon Sep 17 00:00:00 2001
From: Gargotaire
Date: Sat, 28 Jun 2025 02:00:41 -0400
Subject: [PATCH 561/645] Translated using Weblate (Catalan) Translation:
Jellyfin/Jellyfin Web Translate-URL:
https://translate.jellyfin.org/projects/jellyfin/jellyfin-web/ca/
---
src/strings/ca.json | 74 ++++++++++++++++++++++-----------------------
1 file changed, 37 insertions(+), 37 deletions(-)
diff --git a/src/strings/ca.json b/src/strings/ca.json
index bc3acdaa6..c0b4bc6c0 100644
--- a/src/strings/ca.json
+++ b/src/strings/ca.json
@@ -394,15 +394,15 @@
"MessageNoPluginsInstalled": "No té cap complement instal·lat.",
"MessageNoTrailersFound": "Instal·leu el canal de tràilers per millorar la vostra experiència de pel·lícula afegint una biblioteca de tràilers d'internet.",
"MessageNothingHere": "Res per aquí.",
- "MessagePleaseEnsureInternetMetadata": "Assegureu-vos que la descàrrega de metadades d'internet està habilitada.",
+ "MessagePleaseEnsureInternetMetadata": "Assegureu-vos que està habilitada la descàrrega de metadades d'internet.",
"MessageYouHaveVersionInstalled": "Actualment teniu la versió {0} instal·lada.",
- "MetadataManager": "Gestor de Metadades",
+ "MetadataManager": "Gestor de metadades",
"MinutesAfter": "minuts després",
"MinutesBefore": "minuts abans",
"Mobile": "Mòbil",
"Monday": "Dilluns",
"MoreFromValue": "Més de {0}",
- "MoreUsersCanBeAddedLater": "Es poden afegir més usuaris des del Tauler de control.",
+ "MoreUsersCanBeAddedLater": "Es poden afegir més usuaris des del tauler de control.",
"MoveLeft": "Mou a l'esquerra",
"MoveRight": "Mou a la dreta",
"Mute": "Silencia",
@@ -975,44 +975,44 @@
"News": "Notícies",
"New": "Nou",
"Never": "Mai",
- "MusicVideo": "Music video",
- "MusicLibraryHelp": "Revisar el {0} de la música guia de noms {1}.",
+ "MusicVideo": "Videoclip",
+ "MusicLibraryHelp": "Revisa la {0} guia de noms de música {1}.",
"MusicArtist": "Artista musical",
"MusicAlbum": "Àlbum de música",
- "MovieLibraryHelp": "Revisar la pel·lícula {0} guia de noms {1}.",
+ "MovieLibraryHelp": "Revisa la {0} guia de noms de pel·lícules {1}.",
"Movie": "Pel·lícula",
"MoreMediaInfo": "Informació multimèdia",
"MillisecondsUnit": "ms",
- "MetadataSettingChangeHelp": "Canviar la configuració de les metadades afectarà al nou contingut afegit a partir d'ara. Per actualitzar el contingut existent, obriu la pantalla de detalls i feu clic al botó \"Actualitzar\" o actualitzeu-lo utilitzant el Gestor de metadades.",
+ "MetadataSettingChangeHelp": "Canviar la configuració de les metadades afectarà al nou contingut afegit a partir d'ara. Per s actualitzar el contingut existent, obriu la pantalla de detalls i feu clic al botó \"Actualitza\" o actualitzeu-lo utilitzant el \"Gestor de metadades\".",
"Metadata": "Metadades",
- "MessageUnsetContentHelp": "El contingut es mostrarà com carpetes de civil. Per obtenir els millors resultats utilitzar el gestor de metadades per establir els tipus de contingut de les subcarpetes.",
- "MessageUnableToConnectToServer": "No es pot connectar amb el servidor seleccionat en aquest moment. Assegureu-vos que està funcionant i torni a intentar-ho.",
+ "MessageUnsetContentHelp": "El contingut es mostrarà com a directoris simples. Per a obtenir els millors resultats feu servir el gestor de metadades per a establir els tipus de contingut dels subdirectoris.",
+ "MessageUnableToConnectToServer": "No es pot connectar amb el servidor seleccionat en aquest moment. Assegureu-vos que estigui funcionant i torneu a intentar-ho.",
"MessageTheFollowingLocationWillBeRemovedFromLibrary": "Les ubicacions següents s'eliminaran de la mediateca",
"MessageSyncPlayUserLeft": "{0} ha deixat el grup.",
"MessageSyncPlayUserJoined": "{0} s'ha unit al grup.",
- "MessageSyncPlayPlaybackPermissionRequired": "Permís de reproducció requerit.",
- "MessageSyncPlayNoGroupsAvailable": "No hi ha grups disponibles. Comenceu per primer reproduir alguna cosa.",
+ "MessageSyncPlayPlaybackPermissionRequired": "Requereix d'un permís per a la reproducció.",
+ "MessageSyncPlayNoGroupsAvailable": "No hi ha grups disponibles. Reproduïu primer alguna cosa.",
"MessageSyncPlayLibraryAccessDenied": "L'accés a aquest contingut està restringit.",
"MessageSyncPlayJoinGroupDenied": "No s'ha pogut unir al grup.",
- "MessageSyncPlayIsDisabled": "El permís necessari per utilitzar SyncPlay.",
- "MessageSyncPlayGroupWait": "{0} és l'emmagatzematge en memòria intermèdia …",
- "MessageSyncPlayGroupDoesNotExist": "No s'ha pogut unir-se a el grup, ja que no existeix.",
- "MessageSyncPlayErrorNoActivePlayer": "No s'ha trobat cap reproductor actiu. SyncPlay ha estat desactivat.",
- "MessageSyncPlayErrorMissingSession": "No s'ha pogut activar SyncPlay! Falta sessió.",
- "MessageSyncPlayErrorMedia": "Error a l'habilitar SyncPlay! error de suport.",
- "MessageSyncPlayErrorAccessingGroups": "S'ha produït un error a l'accedir a la llista de grups.",
- "MessageSyncPlayEnabled": "SyncPlay habilitat.",
- "MessageSyncPlayDisabled": "SyncPlay discapacitats.",
+ "MessageSyncPlayIsDisabled": "Per a fer servir SyncPlay cal un permís.",
+ "MessageSyncPlayGroupWait": "{0} s'està carregant…",
+ "MessageSyncPlayGroupDoesNotExist": "La unió al grup ha fallat, perquè no existeix.",
+ "MessageSyncPlayErrorNoActivePlayer": "No s'ha trobat cap reproductor actiu. SyncPlay ha estat deshabilitat.",
+ "MessageSyncPlayErrorMissingSession": "No s'ha pogut activar SyncPlay! No s'ha trobat cap sessió.",
+ "MessageSyncPlayErrorMedia": "No s'ha pogut habilitar SyncPlay! S'ha produït un error de contingut multimèdia.",
+ "MessageSyncPlayErrorAccessingGroups": "S'ha produït un error en accedir a la llista de grups.",
+ "MessageSyncPlayEnabled": "SyncPlay està habilitat.",
+ "MessageSyncPlayDisabled": "SyncPlay està deshabilitat.",
"MessageSyncPlayCreateGroupDenied": "Per a crear un grup cal un permís.",
"MessageSent": "Missatge enviat.",
- "MessageReenableUser": "Vegeu més avall per tornar a activar",
+ "MessageReenableUser": "Vegeu més avall per a tornar a habilitar",
"MessagePluginInstallError": "S'ha produït un error durant la instal·lació del complement.",
"MessagePluginInstalled": "El complement s'ha instal·lat correctament. És necessari reiniciar el servidor perquè els canvis tinguin efecte.",
- "MessagePluginInstallDisclaimer": "ADVERTÈNCIA: La instal·lació d'un complement de tercers comporta riscos. Pot contenir codi inestable o maliciós, i pot canviar en qualsevol moment. Instal·leu només complements d'autors en els que confieu, i sigueu conscient dels efectes que poden tenir, incloent consultes a serveis externs, exploracions més llargues de mediateques o processos addicionals de rerefons.",
- "MessagePluginConfigurationRequiresLocalAccess": "Connecteu-vos amb el servidor local directament per configurar aquest complement.",
- "MessagePleaseWait": "Si us plau, espereu. Això pot trigar un minut.",
- "MessagePlayAccessRestricted": "La reproducció d'aquest contingut està restringit actualment. Poseu-vos en contacte amb l'administrador de servidor per obtenir més informació.",
- "MessagePasswordResetForUsers": "S'han restablert contrasenyes dels següents usuaris. Ara poden accedir amb codis PIN que van utilitzar per realitzar el restabliment.",
+ "MessagePluginInstallDisclaimer": "AVÍS: La instal·lació d'un complement de tercers comporta riscos. Pot contenir codi inestable o maliciós, i pot canviar en qualsevol moment. Instal·leu només complements d'autors en els que confieu, i sigueu conscient dels efectes que poden tenir, incloent peticions a serveis externs, exploracions més llargues de mediateques o processos addicionals en segon pla.",
+ "MessagePluginConfigurationRequiresLocalAccess": "Connecteu-vos directament amb el servidor local per a configurar aquest complement.",
+ "MessagePleaseWait": "Espereu, si us plau. Pot trigar un minut.",
+ "MessagePlayAccessRestricted": "La reproducció d'aquest contingut està actualment restringit. Poseu-vos en contacte amb l'administrador del servidor per a obtenir més informació.",
+ "MessagePasswordResetForUsers": "S'han restablert contrasenyes dels següents usuaris. Ara poden accedir amb els codis PIN que van utilitzar per reinicialitzar.",
"MessageNoServersAvailable": "No s'ha trobat cap servidor fent sevir el detector automàtic de servidors.",
"MessageNoRepositories": "No hi ha repositoris.",
"MessageNoGenresAvailable": "Habilita alguns proveïdors de metadades per a extreure els gèneres d'Internet.",
@@ -1611,8 +1611,8 @@
"AllowEmbeddedSubtitlesHelp": "Desactiva els subtítols empaquetats dins dels contenidors multimèdia. Requereix una actualització completa de la mediateca.",
"AllowEmbeddedSubtitles": "Desactivar diferents tipus de subtítols incrustats",
"OriginalAirDate": "Data d'emissió original",
- "MixedMoviesShows": "Pel·lícules i sèries mixtes",
- "MessageUnauthorizedUser": "No teniu autorització per accedir al servidor en aquest moment. Poseu-vos en contacte amb l'administrador del servidor per obtenir més informació.",
+ "MixedMoviesShows": "Barreja de pel·lícules i sèries",
+ "MessageUnauthorizedUser": "No teniu autorització per accedir en aquest moment al servidor. Per a més informació, poseu-vos en contacte amb l'administrador del servidor.",
"Lyricist": "Lletrista",
"Localization": "Localització",
"Larger": "Més gran",
@@ -1769,7 +1769,7 @@
"LabelSelectAudioNormalization": "Normalització de l'àudio",
"LabelSystem": "Sistema",
"LogLevel.Error": "Error",
- "MessageRepositoryInstallDisclaimer": "ADVERTÈNCIA: L'instal·lació d'un complement de tercers comporta riscos. Pot contenir còdi inestable o maliciós, i pot canviar en qualsevol moment. Només instal·li complements d'autors en els que confiï.",
+ "MessageRepositoryInstallDisclaimer": "AVÍS: La instal·lació d'un complement de tercers comporta riscos. Pot contenir codi inestable o maliciós, i pot canviar en qualsevol moment. Instal·leu només complements d'autors en els que confieu.",
"PasswordRequiredForAdmin": "Es requereix una contrasenya pels comptes d'administrador.",
"LabelTrackGain": "Guany de pista",
"AllowAv1Encoding": "Permetre l'encodificació en format AV1",
@@ -1913,8 +1913,8 @@
"PreviewLyrics": "Previsualitzar lletres",
"Reset": "Restablir",
"MediaInfoRotation": "Rotació",
- "MoveToBottom": "Mou al final",
- "MoveToTop": "Mou al principi",
+ "MoveToBottom": "Mou al fons",
+ "MoveToTop": "Mou al cim",
"EditLyrics": "Edició de la lletra",
"HeaderAddLyrics": "Afegeix lletres",
"HeaderPreviewLyrics": "Previsualitza lletres",
@@ -1971,7 +1971,7 @@
"LabelSaveTrickplayLocally": "Desa les imatges de previsualització junt amb els continguts multimèdia",
"LabelSaveTrickplayLocallyHelp": "Desant les imatges de previsualització als directoris multimèdia, quedaran junt amb els continguts multimèdia per a més fàcil migració i accés.",
"LyricDownloadersHelp": "Habilita i classifica en ordre de prioritat els descarregadors de lletres preferits.",
- "MessageSplitVersionsError": "S'ha produït un error separant les versions",
+ "MessageSplitVersionsError": "S'ha produït un error en separar les versions",
"LabelAllowStreamSharing": "Permet la reproducció compartida",
"AlwaysBurnInSubtitleWhenTranscoding": "En transcodificar, incrusta sempre els subtítols",
"AlwaysBurnInSubtitleWhenTranscodingHelp": "Incorpora tots els subtítols quan s'activi la transcodificació. Això assegura la sincronització dels subtítols després de la transcodificació, a canvi d'una menor velocitat de transcodificació.",
@@ -1995,7 +1995,7 @@
"CustomSubtitleStylingHelp": "L'estilització de subtítols funciona en la majoria dels dispositius, però suposa un cost addicional de rendiment.",
"LabelSubtitleStyling": "Estilització de subtítols",
"Native": "Nadiu",
- "NativeSubtitleStylingHelp": "L'estilització de subtítols no funcionarà en alguns dispositius. Tot i això, no suposa cap sobrecàrrega de rendiment.",
+ "NativeSubtitleStylingHelp": "L'estilització dels subtítols no funcionarà en alguns dispositius. Tot i això, no suposa cap sobrecàrrega de rendiment.",
"LibraryNameInvalid": "El nom de la mediateca no pot estar buit.",
"DeleteServerConfirmation": "N'esteu segur, que voleu eliminar aquest servidor?",
"LabelDevice": "Dispositiu",
@@ -2030,8 +2030,8 @@
"MessageForgotPasswordPinReset": "Introduïu el PIN aquí per a concloure el restabliment de la contrasenya",
"LabelImageCache": "Imatges a la memòria cau",
"MessageBackupDisclaimer": "Depenent de la mida de la mediateca, la còpia de seguretat pot trigar una estona.",
- "MessageRestoreDisclaimer": "ATENCIÓ: Estàs a punt de restaurar una còpia de seguretat anterior. El seu servidor no serà utilitzable durant el procés i les dades creades des del moment de l'inici de la còpia seran perdudes.",
- "MessageWaitingForServer": "Esperant al servidor...",
+ "MessageRestoreDisclaimer": "ATENCIÓ: Esteu a punt de restaurar una còpia anterior de seguretat. El servidor no es podrà fer servir durant el procés i les dades creades des del moment de l'inici de la còpia es perdran.",
+ "MessageWaitingForServer": "S'està esperant el servidor...",
"StorageType.CDRom": "CD-ROM",
"StorageType.NoRootDirectory": "Cap directori arrel",
"BackupsPageLoadError": "No s'ha pogut carregar la pàgina de còpies de seguretat",
@@ -2042,11 +2042,11 @@
"LabelDatabase": "Base de dades",
"LabelRestore": "Restaura",
"MessageBackupInProgress": "Còpia de seguretat en progrés",
- "MessageRestoreInProgress": "Restabliment en procés",
+ "MessageRestoreInProgress": "Restauració en procés",
"Success": "Èxit",
"HeaderBackups": "Cópies de seguretat",
"LabelProgramData": "Dades del programa",
- "MessageRestoreSuccess": "Restaurament completat exitosament",
+ "MessageRestoreSuccess": "Restauració completada exitosament",
"StorageType.Fixed": "Arreglat",
"StorageType.Network": "Xarxa",
"StorageType.Ram": "RAM",
From 3a9be356708682f2c411f36962fa34578252f46f Mon Sep 17 00:00:00 2001
From: myrad2267
Date: Sat, 28 Jun 2025 01:18:10 -0400
Subject: [PATCH 562/645] Translated using Weblate (French (Canada))
Translation: Jellyfin/Jellyfin Web Translate-URL:
https://translate.jellyfin.org/projects/jellyfin/jellyfin-web/fr_CA/
---
src/strings/fr-ca.json | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/src/strings/fr-ca.json b/src/strings/fr-ca.json
index b829a8a05..f253ac038 100644
--- a/src/strings/fr-ca.json
+++ b/src/strings/fr-ca.json
@@ -165,7 +165,7 @@
"CopyStreamURL": "Copier l'URL du stream",
"ContinueWatching": "Continuer à visionner",
"Connect": "Connexion",
- "ConfirmEndPlayerSession": "Voulez-vous éteindre Jellyfin sur {0}?",
+ "ConfirmEndPlayerSession": "Voulez-vous arrêter Jellyfin sur {0}?",
"ConfirmDeletion": "Confirmer la suppression",
"ConfirmDeleteItems": "Supprimer ces éléments les effaceront du disque et de votre médiathèque. Êtes-vous sûr de vouloir continuer?",
"ConfirmDeleteImage": "Effacer l'image?",
From 1cbf73e92df92dc5f279ec1fa0d12a71a05f5ca2 Mon Sep 17 00:00:00 2001
From: Gargotaire
Date: Sat, 28 Jun 2025 02:51:51 -0400
Subject: [PATCH 563/645] Translated using Weblate (Catalan) Translation:
Jellyfin/Jellyfin Web Translate-URL:
https://translate.jellyfin.org/projects/jellyfin/jellyfin-web/ca/
---
src/strings/ca.json | 78 ++++++++++++++++++++++-----------------------
1 file changed, 39 insertions(+), 39 deletions(-)
diff --git a/src/strings/ca.json b/src/strings/ca.json
index c0b4bc6c0..e179a5dc0 100644
--- a/src/strings/ca.json
+++ b/src/strings/ca.json
@@ -410,8 +410,8 @@
"Name": "Nom",
"NewCollection": "Col·lecció nova",
"NewCollectionHelp": "Les col·leccions us permeten crear agrupacions personalitzades de pel·lícules i altres continguts.",
- "NewCollectionNameExample": "Exemple: Col·leció Star Wars",
- "NewEpisodes": "Nous episodis",
+ "NewCollectionNameExample": "Exemple: Star Wars - Col·leció",
+ "NewEpisodes": "Episodis nous",
"NewEpisodesOnly": "Només episodis nous",
"MessageNoNextUpItems": "No s'ha trobat cap. Comenceu a mirar les vostres sèries!",
"MessageNoPluginConfiguration": "Aquest complement no té opcions de configuració.",
@@ -422,44 +422,44 @@
"OnlyForcedSubtitlesHelp": "Només es carregaran aquells subtítols marcats com a forçats.",
"OptionAdminUsers": "Administradors",
"OptionAllUsers": "Tots els usuaris",
- "OptionAllowBrowsingLiveTv": "Permetre accés a TV en directe",
+ "OptionAllowBrowsingLiveTv": "Permet l'accés a TV en directe",
"OptionAllowContentDownloading": "Permetre descàrrega de mitjans",
"OptionAllowLinkSharing": "Permet compartir a les xarxes socials",
- "OptionAllowLinkSharingHelp": "Només les pàgines web contenint informació multimèdia seran compartides. En cap cas es comparteixen fitxers públicament. Les comparticions estan limitades per temps i expiraran després de {0} dies.",
- "OptionAllowManageLiveTv": "Permetre gestionar l'enregistrament de TV en directe",
- "OptionAllowMediaPlayback": "Permetre reproducció multimèdia",
- "OptionAllowRemoteControlOthers": "Permetre el control remot d'altres usuaris",
- "OptionAllowRemoteSharedDevices": "Permetre el control remot dels dispositius compartits",
- "OptionAllowRemoteSharedDevicesHelp": "Els dispositius DLNA es consideren compartits fins que un usuari comença a controlar-los.",
- "OptionAllowUserToManageServer": "Permet a aquest usuari gestionar el servidor",
+ "OptionAllowLinkSharingHelp": "Només es compartiran les pàgines web contenint informació multimèdia. En cap cas es comparteixen fitxers públicament. Les comparticions estan limitades per temps i expiraran després de {0} dies.",
+ "OptionAllowManageLiveTv": "Permet gestionar l'enregistrament de TV en directe",
+ "OptionAllowMediaPlayback": "Permet la reproducció multimèdia",
+ "OptionAllowRemoteControlOthers": "Permet el control remot d'altres usuaris",
+ "OptionAllowRemoteSharedDevices": "Permet el control remot dels dispositius compartits",
+ "OptionAllowRemoteSharedDevicesHelp": "Els dispositius DLNA es consideren compartits fins que un usuari comenci a controlar-los.",
+ "OptionAllowUserToManageServer": "Permet gestionar el servidor a aquest usuari",
"OptionCommunityRating": "Valoració de la comunitat",
- "OptionCriticRating": "Valoració dels crítics",
+ "OptionCriticRating": "Valoració de la crítica",
"OptionDaily": "Diari",
- "OptionDateAdded": "Data que es va afegir",
- "OptionDateAddedImportTime": "Empra la data d'escaneig",
+ "OptionDateAdded": "Afegit el",
+ "OptionDateAddedImportTime": "Fes servir la data d'escaneig",
"OptionDatePlayed": "Data de Reproducció",
- "OptionDisableUser": "Desactiva aquest usuari",
+ "OptionDisableUser": "Habilita aquest usuari",
"OptionDisableUserHelp": "El servidor no permetrà cap connexió d’aquest usuari. Les connexions existents es tancaran immediatament.",
"OptionDislikes": "No m'agrada",
"OptionEmbedSubtitles": "Incrusta dins el contenidor",
"OptionEnableAccessFromAllDevices": "Habilita l'accés des de tots els dispositius",
"OptionEnableAccessToAllChannels": "Habilita l'accés a tots els canals",
"OptionEnableAccessToAllLibraries": "Habilita l'accés a totes les mediateques",
- "OptionEnableExternalContentInSuggestionsHelp": "Permet incloure tràilers d'internet i programes de TV en directe amb el continguts suggerits.",
+ "OptionEnableExternalContentInSuggestionsHelp": "Permet incloure tràilers d'internet i programes de TV en directe entre el contingut suggerit.",
"OptionEquals": "Equival",
"OptionEveryday": "Cada dia",
"OptionExternallyDownloaded": "Descàrrega externa",
- "OptionHasThemeSong": "Cançó Temàtica",
- "OptionHasThemeVideo": "Vídeo Temàtic",
+ "OptionHasThemeSong": "Tema musical",
+ "OptionHasThemeVideo": "Vídeo temàtic",
"OptionHideUser": "Oculta aquest usuari de les pantalles d'inici de sessió",
"OptionHideUserFromLoginHelp": "Pràctic per a comptes d'administrador ocults o privats. L'usuari necessitarà accedir manualment introduint el seu nom d'usuari i contrasenya.",
"OptionImdbRating": "Qualificació IMDb",
"OptionLikes": "M'agrada",
- "OptionMissingEpisode": "Episodis Perduts",
+ "OptionMissingEpisode": "Episodis perduts",
"OptionNew": "Nou…",
"OptionOnInterval": "En un interval",
"OptionParentalRating": "Classificació parental",
- "OptionPlayCount": "Nombre de Reproduccions",
+ "OptionPlayCount": "Nombre de reproduccions",
"OptionReleaseDate": "Data d'estrena",
"OptionResumable": "Es pot reprendre",
"OptionSaveMetadataAsHidden": "Desa les metadades i les imatges com a fitxers ocults",
@@ -964,13 +964,13 @@
"ScanForNewAndUpdatedFiles": "Cerca fitxers nous i actualitzats",
"SaveSubtitlesIntoMediaFoldersHelp": "L'emmagatzematge de subtítols al costat dels arxius de vídeo que els permetrà ser manejats amb més facilitat.",
"SaveSubtitlesIntoMediaFolders": "Desa els subtítols en els directoris de continguts multimèdia",
- "NoSubtitlesHelp": "Els subtítols no seran carregats per defecte. Encara es poden activar de forma manual durant la reproducció.",
+ "NoSubtitlesHelp": "Els subtítols no es carregaran per defecte. Encara es poden activar de forma manual durant la reproducció.",
"Normal": "Normal",
"NoNewDevicesFound": "No s'han trobat dispositius nous. Per afegir un nou sintonitzador, tanqueu aquest avís i introduïu la informació del dispositiu de forma manual.",
"NoCreatedLibraries": "Sembla que encara no s'ha creat cap mediateca. {0} Us agradaria crear-ne una ara? {1}",
"No": "No",
"NextUp": "A continuació",
- "NextTrack": "Salta a la següent",
+ "NextTrack": "Salta al següent",
"Next": "Següent",
"News": "Notícies",
"New": "Nou",
@@ -1437,8 +1437,8 @@
"OptionTrackName": "Nom de la pista",
"OptionSaveMetadataAsHiddenHelp": "El canvi d'aquest s'aplicarà als nous metadades guardats en el futur. arxius de metadades existents s'actualitzaran la propera vegada que es guarden al servidor.",
"OptionResElement": "'res' element",
- "OptionRequirePerfectSubtitleMatchHelp": "Que requereix una combinació perfecta filtrarà subtítols per incloure només aquells que han estat provats i verificats amb l'arxiu de vídeo exacta. A l'desmarcar això augmentarà la probabilitat de subtítols està descarregant, però augmentarà les possibilitats de subtítols de text inoportuns o incorrecta.",
- "OptionRequirePerfectSubtitleMatch": "Només descarregar subtítols que siguin una coincidència perfecta amb els arxius de vídeo",
+ "OptionRequirePerfectSubtitleMatchHelp": "Requerir una combinació perfecta filtrarà els subtítols per a incloure només aquells que s'ha testat i verificat que coincideixen amb el fitxer de vídeo. En desmarcar això augmentarà la probabilitat de descàrrega de subtítols, però augmentarà les possibilitats que els subtítols no acabin d'encaixar o siguin incorrectes.",
+ "OptionRequirePerfectSubtitleMatch": "Descarrega només els subtítols que siguin coincideixin perfectament amb els fitxers de vídeo",
"OptionReportByteRangeSeekingWhenTranscodingHelp": "Necessari per a alguns dispositius que no busquen els fixters massa bé.",
"OptionReportByteRangeSeekingWhenTranscoding": "Informe que dóna suport al servidor byte de la recerca, quan la transcodificació",
"OptionRegex": "Expressions regulars",
@@ -1450,10 +1450,10 @@
"OptionPlainVideoItems": "Mostra tots els vídeos com a elements de vídeo sense format",
"OptionPlainStorageFoldersHelp": "Totes les carpetes estan representats en DIDL com 'object.container.storageFolder' en lloc d'un tipus específic més, com 'object.container.person.musicArtist'.",
"OptionPlainStorageFolders": "Mostra totes les carpetes com carpetes d'emmagatzematge sense format",
- "OptionMaxActiveSessionsHelp": "Un valor de 0 desactivarà la funció.",
- "OptionMaxActiveSessions": "Establir el nombre màxim de sessions simultànies d'usuaris.",
- "OptionMax": "Max",
- "OptionLoginAttemptsBeforeLockoutHelp": "Un valor de 0 significa que s'hereten els valors per defecte: 3 intents per als usuaris normals i 5 per als administradors. Establir a -1 desactiva la funció.",
+ "OptionMaxActiveSessionsHelp": "Un valor de 0 deshabilitarà la funció.",
+ "OptionMaxActiveSessions": "Estableix el nombre màxim de sessions simultànies d'usuaris.",
+ "OptionMax": "Màx",
+ "OptionLoginAttemptsBeforeLockoutHelp": "Un valor de 0 significa que s'hereten els valors per defecte: 3 intents per als usuaris normals i 5 per als administradors. Posar-hi -1 deshabilita la funció.",
"OptionLoginAttemptsBeforeLockout": "Determina el nombre d'intents d'inici de sessió incorrectes que es poden fer abans que es bloquegi.",
"OptionIsSD": "SD",
"OptionIsHD": "HD",
@@ -1461,22 +1461,22 @@
"OptionIgnoreTranscodeByteRangeRequests": "No feu cas de les sol·licituds d'interval de bytes de transcodificació",
"OptionHlsSegmentedSubtitles": "HLS segmentat subtítols",
"OptionForceRemoteSourceTranscoding": "Força la transcodificació de fonts externes, com ara la televisió en directe",
- "OptionExtractChapterImage": "Habilitar extracció de la imatge capítol",
+ "OptionExtractChapterImage": "Habilita l'extracció d'imatges de capítols",
"OptionEstimateContentLength": "Estimar longitud d'el contingut quan la transcodificació",
"OptionEnableM2tsModeHelp": "Activar el mode M2TS quan es codifica a MPEG-TS.",
"OptionEnableM2tsMode": "Activar més modes M2TS",
- "OptionEnableForAllTuners": "Habilitar per a tots els dispositius sintonitzadors",
- "OptionEnableExternalContentInSuggestions": "Habilitar contingut extern en suggeriments",
+ "OptionEnableForAllTuners": "Habilita per a tots els dispositius sintonitzadors",
+ "OptionEnableExternalContentInSuggestions": "Habilita el contingut extern en els suggeriments",
"OptionDvd": "DVD",
- "OptionDisplayFolderViewHelp": "Mostra els directoris juntament amb les vostres altres mediateques. Això pot ser útil si us agradaria tenir una vista senzilla de directoris.",
- "OptionDisplayFolderView": "Mostra una vista de carpeta per a veure directoris multimèdia sense format",
- "OptionDateAddedFileTime": "Utilitzar la data de creació de l'arxiu",
+ "OptionDisplayFolderViewHelp": "Mostra els directoris juntament amb les altres mediateques. Això pot ser útil si us agradaria tenir una vista de directoris sense format.",
+ "OptionDisplayFolderView": "Mostra una vista de directori per a veure directoris multimèdia sense format",
+ "OptionDateAddedFileTime": "Fes servir la data de creació de l'arxiu",
"OptionCustomUsers": "Personalitzat",
"OptionCaptionInfoExSamsung": "CaptionInfoEx (Samsung)",
"OptionBluray": "BD",
- "OptionAutomaticallyGroupSeriesHelp": "Les sèries que es distribueixen entre diversos directoris d'aquesta mediateca es combinaran automàticament en una única sèrie.",
+ "OptionAutomaticallyGroupSeriesHelp": "Les sèries d'aquesta mediateca que es distribueixin entre diversos directoris es combinaran automàticament en una única sèrie.",
"OptionAutomaticallyGroupSeries": "Combina automàticament les sèries que estiguin distribuïdes entre diversos directoris",
- "OptionAllowVideoPlaybackTranscoding": "Permet la reproducció de vídeo que requereix la transcodificació",
+ "OptionAllowVideoPlaybackTranscoding": "Permet la reproducció de vídeo que requereix una transcodificació",
"OptionAllowVideoPlaybackRemuxing": "Permet la reproducció de vídeo que requereix una conversió sense recodificació",
"OptionAllowSyncTranscoding": "Permet la conversió del contingut multimèdia quan es descarregui i sincronitzi",
"OptionAllowMediaPlaybackTranscodingHelp": "La restricció de l'accés a la transcodificació pot provocar errors de reproducció en els clients a causa dels formats multimèdia incompatibles.",
@@ -1484,10 +1484,10 @@
"OptionAllowContentDownload": "Permet la descàrrega del contingut multimèdia",
"OptionAllowAudioPlaybackTranscoding": "Permet la reproducció d'àudio que requereix la transcodificació",
"Option3D": "3D",
- "OnWakeFromSleep": "En deixant de la son",
- "OnlyImageFormats": "Només Formats d'Imatge (VobSub, PGS, SUB)",
+ "OnWakeFromSleep": "En sortir de la suspensió",
+ "OnlyImageFormats": "Només formats d'imatge (VobSub, PGS, SUB)",
"OneChannel": "Un canal",
- "OnApplicationStartup": "A l'iniciar l'aplicació",
+ "OnApplicationStartup": "En iniciar l'aplicació",
"Off": "Apagat",
"HeaderSubtitleProfile": "Perfil dels subtítols",
"HeaderSubtitleDownloads": "Descàrrega dels subtítols",
@@ -1663,7 +1663,7 @@
"MediaInfoRpuPresentFlag": "Flag DV rpu predeterminat",
"MediaInfoDvBlSignalCompatibilityId": "Identificador de compatibilitat del senyal DV bl",
"Unreleased": "Encara no s'ha publicat",
- "OptionDateShowAdded": "Data de la sèrie afegida",
+ "OptionDateShowAdded": "Data d'addició de la sèrie",
"RememberAudioSelectionsHelp": "Intenta establir la pista d'àudio amb la coincidència més semblant a l'últim vídeo.",
"RememberSubtitleSelectionsHelp": "Intenta configurar la pista de subtítols amb la coincidència més semblant a l'últim vídeo.",
"RememberAudioSelections": "Estableix la pista d'àudio en funció de l'element anterior",
From c930cdf83eac277a950e616fdd9798abc8adcb2f Mon Sep 17 00:00:00 2001
From: Gargotaire
Date: Sat, 28 Jun 2025 05:14:51 -0400
Subject: [PATCH 564/645] Translated using Weblate (Catalan) Translation:
Jellyfin/Jellyfin Web Translate-URL:
https://translate.jellyfin.org/projects/jellyfin/jellyfin-web/ca/
---
src/strings/ca.json | 46 ++++++++++++++++++++++-----------------------
1 file changed, 23 insertions(+), 23 deletions(-)
diff --git a/src/strings/ca.json b/src/strings/ca.json
index e179a5dc0..f28e18864 100644
--- a/src/strings/ca.json
+++ b/src/strings/ca.json
@@ -466,16 +466,16 @@
"OptionSpecialEpisode": "Especials",
"OptionSubstring": "Subcadena",
"OptionTvdbRating": "Valoració de TVDB",
- "OptionUnairedEpisode": "Episodis No Emesos",
- "OptionWakeFromSleep": "Despertar",
+ "OptionUnairedEpisode": "Episodis no emesos",
+ "OptionWakeFromSleep": "Desperta de la hibernació",
"OptionWeekdays": "Entre setmana",
"OptionWeekends": "Cap de setmana",
"OptionWeekly": "Setmanal",
"OriginalAirDateValue": "Data original d'emissió: {0}",
- "PackageInstallCancelled": "Instal·lació de {0} (versió {1}) cancel·lada.",
- "ParentalRating": "Valoració Parental",
- "PasswordMatchError": "La contrasenya i la confirmació han de coincidir.",
- "PasswordResetComplete": "La contrasenya s'ha restablert.",
+ "PackageInstallCancelled": "S'ha cancel·lat la instal·lació de {0} (versió {1}).",
+ "ParentalRating": "Valoració parental",
+ "PasswordMatchError": "La contrasenya i la confirmació de la contrasenya han de ser iguals.",
+ "PasswordResetComplete": "S'ha restablert la contrasenya.",
"PasswordResetConfirmation": "N'esteu segur, que voleu restablir la contrasenya?",
"PasswordSaved": "S'ha desat la contrasenya.",
"People": "Repartiment i equip",
@@ -1407,21 +1407,21 @@
"Premieres": "Estrenes",
"PreferEmbeddedTitlesOverFileNamesHelp": "Determinar el títol de visualització que voleu utilitzar quan no hi hagi metadades d'Internet o metadades locals disponibles.",
"PreferEmbeddedTitlesOverFileNames": "Prefereixo títols integrats més de noms de fitxer",
- "PreferEmbeddedEpisodeInfosOverFileNamesHelp": "Utilitzar la informació de l'episodi de les metadades incrustades si està disponible.",
- "PreferEmbeddedEpisodeInfosOverFileNames": "Prefereixo informació de l'episodi incrustat sobre els noms d'arxiu",
+ "PreferEmbeddedEpisodeInfosOverFileNamesHelp": "Fes servir la informació de l'episodi de les metadades xuclades, si es troba disponible.",
+ "PreferEmbeddedEpisodeInfosOverFileNames": "Prioritza la informació de l'episodi inclosa en els noms dels fitxers",
"PosterCard": "Targeta de presentació",
"Poster": "Cartell",
- "PleaseSelectTwoItems": "Seleccioneu al menys dos ítems.",
- "PleaseEnterNameOrId": "Introdueixi un nom o un ID extern.",
+ "PleaseSelectTwoItems": "Seleccioneu almenys dos elements.",
+ "PleaseEnterNameOrId": "Introduïu un nom o un identificador extern.",
"PleaseConfirmPluginInstallation": "Feu clic a 'D'acord' per confirmar que ha llegit el text de dalt i desitja procedir amb la instal·lació del complement.",
"PleaseAddAtLeastOneFolder": "Afegiu-hi almenys un directori fent clic al botó '+'.",
"PlayNextEpisodeAutomatically": "Reprodueix l'episodi següent de forma automàtica",
"PlayNext": "Reprodueix el següent",
- "PlayCount": "Contador de reproduccions",
+ "PlayCount": "Comptador de reproduccions",
"PlaybackRate": "Velocitat de reproducció",
"PlaybackErrorNoCompatibleStream": "Aquest client no és compatible amb el contingut multimèdia i el servidor no està enviant un format multimèdia compatible.",
"PlaybackData": "Informació de reproducció",
- "PlaceFavoriteChannelsAtBeginning": "Col·loqui els canals favorits a l'començament",
+ "PlaceFavoriteChannelsAtBeginning": "Col·loca els canals preferits al començament",
"PinCodeResetConfirmation": "Esteu segur que voleu restablir el codi PIN?",
"PinCodeResetComplete": "El codi PIN s'ha restablert.",
"PictureInPicture": "Imatge en imatge",
@@ -1429,13 +1429,13 @@
"PersonRole": "com {0}",
"Person": "Persona",
"PerfectMatch": "Combinació perfecta",
- "PathNotFound": "La ruta no s'ha pogut trobat. Assegureu-vos que la ruta és vàlida i torni a intentar-ho.",
- "PasswordResetProviderHelp": "Escollir un proveïdor de restabliment de contrasenya que s'utilitzarà quan l'usuari sol·licita un restabliment de contrasenya.",
- "PackageInstallFailed": "La instal·lació de {0} (versió {1}) ha fallat.",
- "PackageInstallCompleted": "Instal·lació de {0} (versió {1}) acabada.",
+ "PathNotFound": "La ruta no s'ha pogut trobat. Assegureu-vos que la ruta és vàlida i torneu-ho a intentar.",
+ "PasswordResetProviderHelp": "Escollir un proveïdor de restabliment de contrasenya que s'utilitzarà quan l'usuari sol·liciti un restabliment de contrasenya.",
+ "PackageInstallFailed": "Ha fallat la instal·lació de {0} (versió {1}).",
+ "PackageInstallCompleted": "S'ha acabat la instal·lació de {0} (versió {1}).",
"Overview": "Visió de conjunt",
"OptionTrackName": "Nom de la pista",
- "OptionSaveMetadataAsHiddenHelp": "El canvi d'aquest s'aplicarà als nous metadades guardats en el futur. arxius de metadades existents s'actualitzaran la propera vegada que es guarden al servidor.",
+ "OptionSaveMetadataAsHiddenHelp": "La configuració s'aplicarà a les metadades noves que es vagin creant. Els fitxers existents de metadades s'actualitzaran la propera vegada que es desin al servidor.",
"OptionResElement": "'res' element",
"OptionRequirePerfectSubtitleMatchHelp": "Requerir una combinació perfecta filtrarà els subtítols per a incloure només aquells que s'ha testat i verificat que coincideixen amb el fitxer de vídeo. En desmarcar això augmentarà la probabilitat de descàrrega de subtítols, però augmentarà les possibilitats que els subtítols no acabin d'encaixar o siguin incorrectes.",
"OptionRequirePerfectSubtitleMatch": "Descarrega només els subtítols que siguin coincideixin perfectament amb els fitxers de vídeo",
@@ -1484,7 +1484,7 @@
"OptionAllowContentDownload": "Permet la descàrrega del contingut multimèdia",
"OptionAllowAudioPlaybackTranscoding": "Permet la reproducció d'àudio que requereix la transcodificació",
"Option3D": "3D",
- "OnWakeFromSleep": "En sortir de la suspensió",
+ "OnWakeFromSleep": "En despertar de la hibernació",
"OnlyImageFormats": "Només formats d'imatge (VobSub, PGS, SUB)",
"OneChannel": "Un canal",
"OnApplicationStartup": "En iniciar l'aplicació",
@@ -1569,7 +1569,7 @@
"Track": "Pista",
"Print": "Imprimeix",
"PreviousChapter": "Episodi anterior",
- "PlaybackErrorPlaceHolder": "Això és un marcador de posició per a suports físics que Jellyfin no pot reproduir. Inseriu el disc per reproduir-lo.",
+ "PlaybackErrorPlaceHolder": "Això és un marcador de posició per a suports físics que Jellyfin no pot reproduir. Inseriu el disc per a reproduir-lo.",
"OtherArtist": "Altres artistes",
"NextChapter": "Episodi següent",
"Mixer": "Mesclador",
@@ -1809,7 +1809,7 @@
"LabelAllowContentWithTags": "Permet elements amb etiquetes",
"BlockingScan": "Bloqueig - generació de cues, bloqueja escaneig fins a completar-se",
"LabelScanBehavior": "Comportament de l'escaneig",
- "PlaybackError.ASS_RENDER_ERROR": "S'ha produït un error al renderitzador de subtítols ASS/SSA.",
+ "PlaybackError.ASS_RENDER_ERROR": "S'ha produït un error en el renderitzador de subtítols ASS/SSA.",
"PlaybackError.MEDIA_NOT_SUPPORTED": "La reproducció ha fallat, perquè el contingut multimèdia no és compatible amb aquest client.",
"PlaybackError.NETWORK_ERROR": "La reproducció ha fallat a causa d'un error de connexió.",
"PlaybackError.NO_MEDIA_ERROR": "No s'ha pogut trobar un contingut multimèdia vàlid per a reproduir.",
@@ -1822,7 +1822,7 @@
"EnableLibraryHelp": "Deshabilitar la mediateca l'amagarà per a tots els usuaris.",
"LimitSupportedVideoResolution": "Limita la resolució màxima de vídeos compatibles",
"LimitSupportedVideoResolutionHelp": "Fes servir \"La màxima resolució de transcodificació de vídeo permesa\" com a màxima resolució permesa.",
- "PlaybackError.FATAL_HLS_ERROR": "S'ha produït un error fatal al stream HLS.",
+ "PlaybackError.FATAL_HLS_ERROR": "S'ha produït un error fatal a l'stream HLS.",
"PlaybackError.RateLimitExceeded": "Aquest contingut multimèdia no es pot reproduir en aquests instants deguts a límits de transmissió.",
"EncodingFormatHelp": "Seleccioni la codificació de vídeo a la qual hauria de transcodificar Jellyfin. Jellyfin utilitzarà codificació mitjançant programari quan l'acceleració per maquinari no estigui disponible. La codificació H264 sempre estarà habilitada.",
"PriorityAboveNormal": "Per sobre del Normal",
@@ -1879,7 +1879,7 @@
"EnableTrueHdHelp": "Habiliteu-ho només si el vostre dispositiu és compatible amb TrueHD o està connectat a un receptor d'àudio compatible, en cas contrari, pot provocar un error de reproducció.",
"Illustrator": "Il·lustrador",
"Translator": "Traductor",
- "PlaylistPublic": "Permetre accés públic",
+ "PlaylistPublic": "Permet l'accés públic",
"PlaylistPublicDescription": "Permet que aquesta llista de reproducció sigui vista per qualsevol usuari registrat.",
"HeaderLyricDownloads": "Descàrregues de lletres",
"SaveLyricsIntoMediaFolders": "Desa la lletra a les carpetes multimèdia",
@@ -1965,7 +1965,7 @@
"MediaSegmentType.Recap": "Recapitulació",
"MediaSegmentType.Outro": "Crèdits",
"MediaSegmentType.Preview": "Previsualització",
- "PlaylistError.UpdateFailed": "Error en actualitzar la llista de reproducció",
+ "PlaylistError.UpdateFailed": "S'ha produït un error en actualitzar la llista de reproducció",
"LabelAlwaysRemuxFlacAudioFiles": "Sempre re-multiplexa els fitxers d'àudio FLAC",
"LabelAlwaysRemuxMp3AudioFiles": "Sempre re-multiplexa els fitxers d'àudio MP3",
"LabelSaveTrickplayLocally": "Desa les imatges de previsualització junt amb els continguts multimèdia",
From ca990e649cdcb4728fbadaff7e8b49fa01c53e44 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?=E7=84=A1=E6=83=85=E5=A4=A9?=
Date: Sat, 28 Jun 2025 06:18:07 -0400
Subject: [PATCH 565/645] Translated using Weblate (Chinese (Simplified Han
script)) Translation: Jellyfin/Jellyfin Web Translate-URL:
https://translate.jellyfin.org/projects/jellyfin/jellyfin-web/zh_Hans/
---
src/strings/zh-cn.json | 7 ++++---
1 file changed, 4 insertions(+), 3 deletions(-)
diff --git a/src/strings/zh-cn.json b/src/strings/zh-cn.json
index ef5a694be..fe95332c0 100644
--- a/src/strings/zh-cn.json
+++ b/src/strings/zh-cn.json
@@ -750,7 +750,7 @@
"MessageConfirmRemoveMediaLocation": "你确定要移除此位置?",
"MessageConfirmRestart": "你确定要重启 Jellyfin?",
"MessageConfirmRevokeApiKey": "你确定你希望撤销这个 API 秘钥吗?这个应用程序与本服务器的连接将会被立刻中断。",
- "MessageConfirmShutdown": "你确定要关闭服务端?",
+ "MessageConfirmShutdown": "您确定要关闭服务器吗?",
"MessageContactAdminToResetPassword": "请联系你的管理员以重置你的密码。",
"MessageCreateAccountAt": "在 {0} 创建帐户",
"MessageDeleteTaskTrigger": "你确定删除这个任务触发条件?",
@@ -1127,7 +1127,7 @@
"ColorTransfer": "色彩传递",
"ConfirmDeleteItem": "删除此项目会将其从文件系统和媒体库中删除。您确定要继续吗(删除播放列表与合集不会删除文件)?",
"ConfirmDeleteItems": "删除这些项目会将它们从文件系统和媒体库中删除。您确定要继续吗(删除播放列表与合集不会删除文件)?",
- "ConfirmEndPlayerSession": "您要在 {0} 上关闭 Jellyfin 吗?",
+ "ConfirmEndPlayerSession": "您想关闭 {0} 上的 Jellyfin 吗?",
"ValueSeconds": "{0} 秒",
"Features": "功能",
"Genre": "类型",
@@ -2061,5 +2061,6 @@
"RepositoriesPageLoadError": "加载存储库失败",
"TranscodingLoadError": "加载转码设置失败",
"PluginsLoadError": "加载插件时发生错误。",
- "ButtonLearnMore": "了解更多"
+ "ButtonLearnMore": "了解更多",
+ "LiveTVPageLoadError": "无法加载录制页面"
}
From 83f6a822ad861e426c254727b76821c808a496c2 Mon Sep 17 00:00:00 2001
From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com>
Date: Sat, 28 Jun 2025 11:40:22 +0000
Subject: [PATCH 566/645] Update dependency @jellyfin/sdk to
v0.0.0-unstable.202506280502
---
package-lock.json | 14 +++++++-------
package.json | 2 +-
2 files changed, 8 insertions(+), 8 deletions(-)
diff --git a/package-lock.json b/package-lock.json
index 030c8a2ae..ae75a3565 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -18,7 +18,7 @@
"@fontsource/noto-sans-sc": "5.2.6",
"@fontsource/noto-sans-tc": "5.2.6",
"@jellyfin/libass-wasm": "4.2.3",
- "@jellyfin/sdk": "0.0.0-unstable.202506270502",
+ "@jellyfin/sdk": "0.0.0-unstable.202506280502",
"@jellyfin/ux-web": "1.0.0",
"@mui/icons-material": "6.4.12",
"@mui/material": "6.4.12",
@@ -4129,9 +4129,9 @@
"license": "LGPL-2.1-or-later AND (FTL OR GPL-2.0-or-later) AND MIT AND MIT-Modern-Variant AND ISC AND NTP AND Zlib AND BSL-1.0"
},
"node_modules/@jellyfin/sdk": {
- "version": "0.0.0-unstable.202506270502",
- "resolved": "https://registry.npmjs.org/@jellyfin/sdk/-/sdk-0.0.0-unstable.202506270502.tgz",
- "integrity": "sha512-PooFqKY/puCipm8YkkP91dj1Sq+VufXWD2V5yS5gEyEE1Usoj0CkWOaas2eUdf/3cUaPeLOXuczRA/Oht1PU5w==",
+ "version": "0.0.0-unstable.202506280502",
+ "resolved": "https://registry.npmjs.org/@jellyfin/sdk/-/sdk-0.0.0-unstable.202506280502.tgz",
+ "integrity": "sha512-6aOrvBvPhIqBhw0FttJ6cMSXVoEJIOkg1Vb9MVgPDqcqDpftrYlbFyzVWJ7zHN4Fc1X/CO338j/U1zOc72Arow==",
"license": "MPL-2.0",
"peerDependencies": {
"axios": "^1.3.4"
@@ -27449,9 +27449,9 @@
"integrity": "sha512-C0OlBxIr9NdeFESMTA/OVDqNSWtog6Mi7wwzwH12xbZpxsMD0RgCupUcIP7zZgcpTNecW3fZq5d6xVo7Q8HEJw=="
},
"@jellyfin/sdk": {
- "version": "0.0.0-unstable.202506270502",
- "resolved": "https://registry.npmjs.org/@jellyfin/sdk/-/sdk-0.0.0-unstable.202506270502.tgz",
- "integrity": "sha512-PooFqKY/puCipm8YkkP91dj1Sq+VufXWD2V5yS5gEyEE1Usoj0CkWOaas2eUdf/3cUaPeLOXuczRA/Oht1PU5w==",
+ "version": "0.0.0-unstable.202506280502",
+ "resolved": "https://registry.npmjs.org/@jellyfin/sdk/-/sdk-0.0.0-unstable.202506280502.tgz",
+ "integrity": "sha512-6aOrvBvPhIqBhw0FttJ6cMSXVoEJIOkg1Vb9MVgPDqcqDpftrYlbFyzVWJ7zHN4Fc1X/CO338j/U1zOc72Arow==",
"requires": {}
},
"@jellyfin/ux-web": {
diff --git a/package.json b/package.json
index d4fe98160..5ebfafc46 100644
--- a/package.json
+++ b/package.json
@@ -84,7 +84,7 @@
"@fontsource/noto-sans-sc": "5.2.6",
"@fontsource/noto-sans-tc": "5.2.6",
"@jellyfin/libass-wasm": "4.2.3",
- "@jellyfin/sdk": "0.0.0-unstable.202506270502",
+ "@jellyfin/sdk": "0.0.0-unstable.202506280502",
"@jellyfin/ux-web": "1.0.0",
"@mui/icons-material": "6.4.12",
"@mui/material": "6.4.12",
From 760dc0a1099c92e7a4a6ae2181ea0b8788ec8257 Mon Sep 17 00:00:00 2001
From: Gargotaire
Date: Sat, 28 Jun 2025 06:53:30 -0400
Subject: [PATCH 567/645] Translated using Weblate (Catalan) Translation:
Jellyfin/Jellyfin Web Translate-URL:
https://translate.jellyfin.org/projects/jellyfin/jellyfin-web/ca/
---
src/strings/ca.json | 6 +++---
1 file changed, 3 insertions(+), 3 deletions(-)
diff --git a/src/strings/ca.json b/src/strings/ca.json
index f28e18864..717b613e6 100644
--- a/src/strings/ca.json
+++ b/src/strings/ca.json
@@ -1406,7 +1406,7 @@
"Preview": "Vista prèvia",
"Premieres": "Estrenes",
"PreferEmbeddedTitlesOverFileNamesHelp": "Determinar el títol de visualització que voleu utilitzar quan no hi hagi metadades d'Internet o metadades locals disponibles.",
- "PreferEmbeddedTitlesOverFileNames": "Prefereixo títols integrats més de noms de fitxer",
+ "PreferEmbeddedTitlesOverFileNames": "Prioritza els títols xuclats per sobre dels noms dels fitxers",
"PreferEmbeddedEpisodeInfosOverFileNamesHelp": "Fes servir la informació de l'episodi de les metadades xuclades, si es troba disponible.",
"PreferEmbeddedEpisodeInfosOverFileNames": "Prioritza la informació de l'episodi inclosa en els noms dels fitxers",
"PosterCard": "Targeta de presentació",
@@ -1684,7 +1684,7 @@
"Featurette": "Migmetratge",
"Short": "Curt",
"HeaderRecordingMetadataSaving": "Metadades de l'enregistrament",
- "PreferEmbeddedExtrasTitlesOverFileNames": "Preferir els títols incrustats als noms d'arxiu per als extres",
+ "PreferEmbeddedExtrasTitlesOverFileNames": "Prioritza els títols inclosos en els noms de fitxers per als extres",
"SecondarySubtitles": "Subtítols secundaris",
"SubtitleBlack": "Negre",
"SubtitleGray": "Gris",
@@ -1703,7 +1703,7 @@
"LabelDummyChapterCountHelp": "El nombre màxim d'imatges del capítol que s'extreuran per a cada fitxer multimèdia.",
"LabelParallelImageEncodingLimit": "Límit de codificació d'imatges en paral·lel",
"LabelParallelImageEncodingLimitHelp": "Nombre màxim de codificacions d'imatge que es poden executar en paral·lel. Si es deixa buit, es triarà un límit en funció del nombre de nuclis.",
- "PreferEmbeddedExtrasTitlesOverFileNamesHelp": "Els extres sovint tenen el mateix nom incrustat que el principal, marqueu-ho per utilitzar-los títols incrustats de totes maneres.",
+ "PreferEmbeddedExtrasTitlesOverFileNamesHelp": "Els extres sovint tenen els mateixos noms dels títols als que pertanyen, marqueu-ho per fer-los servir de totes maneres.",
"SaveRecordingNFO": "Desa les metadades EPG d'enregistrament a NFO",
"SaveRecordingImages": "Guarda les imatges d'enregistrament EPG",
"SaveRecordingImagesHelp": "Desa les imatges del proveïdor de llistes EPG amb el contingut multimèdia.",
From 4200c4e208bb25fb82699f1e96d0ea8ffc73407f Mon Sep 17 00:00:00 2001
From: Gargotaire
Date: Sat, 28 Jun 2025 10:46:08 -0400
Subject: [PATCH 568/645] Translated using Weblate (Catalan) Translation:
Jellyfin/Jellyfin Web Translate-URL:
https://translate.jellyfin.org/projects/jellyfin/jellyfin-web/ca/
---
src/strings/ca.json | 22 +++++++++++-----------
1 file changed, 11 insertions(+), 11 deletions(-)
diff --git a/src/strings/ca.json b/src/strings/ca.json
index 717b613e6..63438faf0 100644
--- a/src/strings/ca.json
+++ b/src/strings/ca.json
@@ -485,7 +485,7 @@
"Played": "Reproduït",
"Playlists": "Llistes de reproducció",
"PleaseRestartServerName": "Reinicieu el Jellyfin a {0}.",
- "Premiere": "Première",
+ "Premiere": "Estrena",
"Producer": "Productor",
"Programs": "Programes",
"Quality": "Qualitat",
@@ -1401,11 +1401,11 @@
"Profile": "Perfil",
"ProductionLocations": "Centres de producció",
"Primary": "Principal",
- "PreviousTrack": "Vés a l'anterior",
+ "PreviousTrack": "Ves a l'anterior",
"Previous": "Anterior",
"Preview": "Vista prèvia",
"Premieres": "Estrenes",
- "PreferEmbeddedTitlesOverFileNamesHelp": "Determinar el títol de visualització que voleu utilitzar quan no hi hagi metadades d'Internet o metadades locals disponibles.",
+ "PreferEmbeddedTitlesOverFileNamesHelp": "Determina el títol que farà servir quan no hi hagi metadades d'Internet o metadades locals disponibles.",
"PreferEmbeddedTitlesOverFileNames": "Prioritza els títols xuclats per sobre dels noms dels fitxers",
"PreferEmbeddedEpisodeInfosOverFileNamesHelp": "Fes servir la informació de l'episodi de les metadades xuclades, si es troba disponible.",
"PreferEmbeddedEpisodeInfosOverFileNames": "Prioritza la informació de l'episodi inclosa en els noms dels fitxers",
@@ -1604,12 +1604,12 @@
"Remixer": "Remesclador",
"ReleaseGroup": "Grup de llançament",
"Production": "Producció",
- "AllowEmbeddedSubtitlesAllowTextOption": "Permetre text",
- "AllowEmbeddedSubtitlesAllowImageOption": "Permetre imatge",
- "AllowEmbeddedSubtitlesAllowNoneOption": "No permetre cap",
+ "AllowEmbeddedSubtitlesAllowTextOption": "Permet text",
+ "AllowEmbeddedSubtitlesAllowImageOption": "Permet imatge",
+ "AllowEmbeddedSubtitlesAllowNoneOption": "No en permetis cap",
"AllowEmbeddedSubtitlesAllowAllOption": "Permet-ho tot",
- "AllowEmbeddedSubtitlesHelp": "Desactiva els subtítols empaquetats dins dels contenidors multimèdia. Requereix una actualització completa de la mediateca.",
- "AllowEmbeddedSubtitles": "Desactivar diferents tipus de subtítols incrustats",
+ "AllowEmbeddedSubtitlesHelp": "Deshabilita els subtítols empaquetats dins dels contenidors multimèdia. Requereix d'una actualització completa de la mediateca.",
+ "AllowEmbeddedSubtitles": "Deshabilita diferents tipus de subtítols incrustats",
"OriginalAirDate": "Data d'emissió original",
"MixedMoviesShows": "Barreja de pel·lícules i sèries",
"MessageUnauthorizedUser": "No teniu autorització per accedir en aquest moment al servidor. Per a més informació, poseu-vos en contacte amb l'administrador del servidor.",
@@ -1910,7 +1910,7 @@
"PluginUninstallError": "S'ha produït un error en desinstal·lar el complement.",
"SelectPreferredTranscodeVideoCodecHelp": "Seleccioneu el còdec de vídeo preferit per transcodificar. Si el còdec preferit no és compatible, el servidor utilitzarà el següent millor còdec disponible.",
"PasswordMissingSaveError": "La nova contrasenya no pot ser buida.",
- "PreviewLyrics": "Previsualitzar lletres",
+ "PreviewLyrics": "Previsualitza lletres",
"Reset": "Restablir",
"MediaInfoRotation": "Rotació",
"MoveToBottom": "Mou al fons",
@@ -1977,10 +1977,10 @@
"AlwaysBurnInSubtitleWhenTranscodingHelp": "Incorpora tots els subtítols quan s'activi la transcodificació. Això assegura la sincronització dels subtítols després de la transcodificació, a canvi d'una menor velocitat de transcodificació.",
"HeaderMediaSegmentActions": "Accions dels segments de continguts multimèdia",
"LabelMediaSegmentsType": "{0} Segments",
- "PreferNonstandardArtistsTag": "Preferir l'etiqueta ARTISTS si estan disponibles",
+ "PreferNonstandardArtistsTag": "Prioritza l'etiqueta ARTISTS si es troba disponible",
"ReplaceTrickplayImages": "Substitueix les imatges trickplay existents",
"UseCustomTagDelimiters": "Utilitza delimitador d'etiquetes personalitzat",
- "PreferNonstandardArtistsTagHelp": "Utilitza l'etiqueta no estàndard ARTISTS en lloc de l'etiqueta ARTIST quan estigui disponible.",
+ "PreferNonstandardArtistsTagHelp": "Fes servir l'etiqueta no estàndard ARTISTS en lloc de l'etiqueta ARTIST quan estigui disponible.",
"UseCustomTagDelimitersHelp": "Separa les etiquetes artista/gènere amb caràcters personalitzats.",
"RenderPgsSubtitle": "Renderitzat experimental de subtitols PGS",
"VideoCodecTagNotSupported": "L'etiqueta del còdec de vídeo no és compatible",
From 821ae4b112375752f58afb7f560c21767063c2f9 Mon Sep 17 00:00:00 2001
From: Oatavandi
Date: Sat, 28 Jun 2025 09:20:10 -0400
Subject: [PATCH 569/645] Translated using Weblate (Tamil) Translation:
Jellyfin/Jellyfin Web Translate-URL:
https://translate.jellyfin.org/projects/jellyfin/jellyfin-web/ta/
---
src/strings/ta.json | 208 +++++++++++++++++++++++++++++++++++++++-----
1 file changed, 186 insertions(+), 22 deletions(-)
diff --git a/src/strings/ta.json b/src/strings/ta.json
index 875d4e2bb..52a898b42 100644
--- a/src/strings/ta.json
+++ b/src/strings/ta.json
@@ -63,7 +63,7 @@
"ButtonAddScheduledTaskTrigger": "தூண்டுதலைச் சேர்க்கவும்",
"ButtonAddMediaLibrary": "ஊடக நூலகத்தைச் சேர்க்கவும்",
"ButtonAddImage": "படத்தைச் சேர்க்கவும்",
- "BurnSubtitlesHelp": "வீடியோக்களை டிரான்ஸ்கோடிங் செய்யும் போது சர்வர் வசனங்களில் எரிய வேண்டுமா என்பதைத் தீர்மானிக்கவும். இதைத் தவிர்ப்பது செயல்திறனை பெரிதும் மேம்படுத்தும். பட அடிப்படையிலான வடிவங்கள் (VobSub, PGS, SUB, IDX, முதலியன) மற்றும் சில ASS அல்லது SSA வசனங்களை எழுத தானியங்கு என்பதைத் தேர்ந்தெடுக்கவும்.",
+ "BurnSubtitlesHelp": "சர்வர் சப்டைட்டில்களில் எரிக்க வேண்டுமா என்பதைத் தீர்மானிக்கவும். இதைத் தவிர்ப்பது செயல்திறனை பெரிதும் மேம்படுத்தும். பட அடிப்படையிலான வடிவங்களை (VobSub, PGS, SUB, IDX, முதலியன) மற்றும் சில ASS அல்லது SSA சப்டைட்டில்களை எரிக்க ஆட்டோவைத் தேர்ந்தெடுக்கவும்.",
"MessageBrowsePluginCatalog": "கிடைக்கக்கூடிய செருகுநிரல்களைக் காண எங்கள் சொருகி பட்டியலை உலாவுக.",
"Browse": "உலவ",
"BoxRear": "பெட்டி (பின்புறம்)",
@@ -123,7 +123,7 @@
"ButtonRename": "மறுபெயரிடு",
"ButtonRemove": "அகற்று",
"ButtonRefreshGuideData": "வழிகாட்டி தரவைப் புதுப்பிக்கவும்",
- "ButtonQuickStartGuide": "விரைவு தொடக்க வழிகாட்டி",
+ "ButtonQuickStartGuide": "அமைவு வழிகாட்டி",
"ButtonPreviousTrack": "முந்தைய பாடல்",
"ButtonPause": "இடைநிறுத்தம்",
"ButtonParentalControl": "பெற்றோர் கட்டுப்பாடு",
@@ -225,7 +225,7 @@
"ConfirmDeleteItems": "இந்த உருப்படிகளை நீக்குவது கோப்பு முறைமை மற்றும் உங்கள் ஊடக நூலகம் இரண்டிலிருந்தும் அவற்றை நீக்கும். நீங்கள் தொடர விரும்புகிறீர்களா?",
"ConfirmDeleteItem": "இந்த உருப்படியை நீக்குவது கோப்பு முறைமை மற்றும் உங்கள் ஊடக நூலகம் இரண்டிலிருந்தும் நீக்கப்படும். நீங்கள் தொடர விரும்புகிறீர்களா?",
"ConfirmDeleteImage": "படத்தை நீக்கவா?",
- "ConfigureDateAdded": "டாஷ்போர்டு > நூலகங்கள் > NFO அமைப்புகளில் 'சேர்க்கப்பட்ட தேதி'க்கான மெட்டாடேட்டா எவ்வாறு தீர்மானிக்கப்படுகிறது என்பதை அமைக்கவும்",
+ "ConfigureDateAdded": "'சேர்க்கப்பட்ட தேதி'க்கான மெட்டாடேட்டா எவ்வாறு தீர்மானிக்கப்படுகிறது என்பதை டாஷ்போர்டு > நூலகங்கள் > காட்சி என்பதில் அமைக்கவும்",
"Composer": "இசையமைப்பாளர்",
"CommunityRating": "சமூக மதிப்பீடு",
"ColorTransfer": "வண்ண பரிமாற்றம்",
@@ -633,7 +633,7 @@
"LabelLogs": "பதிவுகள்",
"LabelLoginDisclaimerHelp": "உள்நுழைவு பக்கத்தின் கீழே காண்பிக்கப்படும் செய்தி.",
"LabelLoginDisclaimer": "உள்நுழைவு மறுப்பு",
- "LabelLockItemToPreventChanges": "எதிர்கால மாற்றங்களைத் தடுக்க இந்த உருப்படியைப் பூட்டவும்",
+ "LabelLockItemToPreventChanges": "எதிர்கால மெட்டாடேட்டா மாற்றங்களைத் தடுக்க இந்த உருப்படியைப் பூட்டுங்கள்",
"LabelLocalHttpServerPortNumberHelp": "HTTP சேவையகத்திற்கான TCP போர்ட் எண்.",
"LabelLocalHttpServerPortNumber": "உள்ளூர் HTTP போர்ட் எண்",
"LabelLineup": "வரிசை",
@@ -929,7 +929,7 @@
"MessageDeleteTaskTrigger": "இந்த பணி தூண்டுதலை நீக்க விரும்புகிறீர்களா?",
"MessageCreateAccountAt": "{0} இல் ஒரு கணக்கை உருவாக்கவும்",
"MessageContactAdminToResetPassword": "உங்கள் கடவுச்சொல்லை மீட்டமைக்க உங்கள் கணினி நிர்வாகியைத் தொடர்பு கொள்ளவும்.",
- "MessageConfirmShutdown": "சேவையகத்தை நிறுத்த விரும்புகிறீர்களா?",
+ "MessageConfirmShutdown": "நீங்கள் சேவையகத்தை நிச்சயமாக மூட விரும்புகிறீர்களா?",
"MessageConfirmRevokeApiKey": "இந்த API விசையை நிச்சயமாகத் திரும்பப் பெற விரும்புகிறீர்களா? இந்த சேவையகத்திற்கான பயன்பாட்டின் இணைப்பு திடீரென துண்டிக்கப்படும்.",
"MessageConfirmRestart": "ஜெல்லிஃபின் மறுதொடக்கம் செய்ய விரும்புகிறீர்களா?",
"MessageConfirmRemoveMediaLocation": "இந்த இருப்பிடத்தை அகற்ற விரும்புகிறீர்களா?",
@@ -1155,7 +1155,7 @@
"SettingsSaved": "அமைப்புகள் சேமிக்கப்பட்டன.",
"Settings": "அமைப்புகள்",
"ServerUpdateNeeded": "இந்த சேவையகத்தை புதுப்பிக்க வேண்டும். சமீபத்திய பதிப்பைப் பதிவிறக்க, தயவுசெய்து {0} ஐ பார்வையிடவும்",
- "ServerRestartNeededAfterPluginInstall": "செருகுநிரலை நிறுவிய பின் ஜெல்லிஃபின் மறுதொடக்கம் செய்யப்பட வேண்டும்.",
+ "ServerRestartNeededAfterPluginInstall": "செருகுநிரலை நிறுவிய பின் ஜெல்லிஃபினை மறுதொடக்கம் செய்ய வேண்டும்.",
"ServerNameIsShuttingDown": "{0} இல் உள்ள சேவையகம் மூடப்படும்.",
"ServerNameIsRestarting": "{0} இல் உள்ள சேவையகம் மறுதொடக்கம் செய்யப்படுகிறது.",
"SeriesYearToPresent": "{0} - தற்போது",
@@ -1301,7 +1301,7 @@
"TitleHardwareAcceleration": "வன்பொருள் முடுக்கம்",
"Thursday": "வியாழக்கிழமை",
"Thumb": "சிறுபடம்",
- "ThisWizardWillGuideYou": "இந்த வழிகாட்டி அமைவு செயல்முறை மூலம் உங்களுக்கு வழிகாட்ட உதவும். தொடங்க, நீங்கள் விரும்பும் மொழியைத் தேர்ந்தெடுக்கவும்.",
+ "ThisWizardWillGuideYou": "இந்த வழிகாட்டி அமைவு செயல்முறையின் மூலம் உங்களுக்கு வழிகாட்ட உதவும். தொடங்குவதற்கு, தயவுசெய்து ஒரு சேவையக பெயரை உள்ளிட்டு உங்களுக்கு விருப்பமான மொழியைத் தேர்ந்தெடுக்கவும்.",
"TheseSettingsAffectSubtitlesOnThisDevice": "இந்த அமைப்புகள் இந்த சாதனத்தில் வசன வரிகள் பாதிக்கின்றன",
"ThemeVideos": "தீம் வீடியோக்கள்",
"ThemeSongs": "தீம் பாடல்கள்",
@@ -1362,7 +1362,7 @@
"OnWakeFromSleep": "தூக்கத்திலிருந்து எழுந்தவுடன்",
"WeeklyAt": "{1} இல் {0}",
"DailyAt": "தினசரி {0}",
- "LastSeen": "கடைசியாக பார்த்தது {0}",
+ "LastSeen": "கடைசி செயல்பாடு {0}",
"PersonRole": "{0} என",
"ListPaging": "{0} - {2} இன் {1}",
"WriteAccessRequired": "ஜெல்லிஃபினுக்கு இந்த கோப்புறையில் எழுத அணுகல் தேவை. எழுதும் அணுகலை உறுதிசெய்து மீண்டும் முயற்சிக்கவும்.",
@@ -1390,13 +1390,13 @@
"UseDoubleRateDeinterlacing": "செயலிழக்கும்போது பிரேம் வீதத்தை இரட்டிப்பாக்குங்கள்",
"LabelMaxMuxingQueueSizeHelp": "அனைத்து ஸ்ட்ரீம்களும் தொடங்கும் வரை காத்திருக்கும் போது, இடையகப்படுத்தக்கூடிய பாக்கெட்டுகளின் அதிகபட்ச எண்ணிக்கை. FFmpeg பதிவுகளில் \"அவுட்புட் ஸ்ட்ரீமிற்காக பல பாக்கெட்டுகள் இடையகப்படுத்தப்பட்டுள்ளன\" என்ற பிழையை நீங்கள் இன்னும் சந்தித்தால் அதை அதிகரிக்க முயற்சிக்கவும். பரிந்துரைக்கப்பட்ட மதிப்பு 2048 ஆகும்.",
"LabelMaxMuxingQueueSize": "அதிகபட்ச மக்ஸிங் வரிசை அளவு",
- "LabelTonemappingParamHelp": "டோன் மேப்பிங் வழிமுறையை டியூன் செய்யுங்கள். பரிந்துரைக்கப்பட்ட மற்றும் இயல்புநிலை மதிப்புகள் NaN ஆகும். பொதுவாக அதை காலியாக விடவும்.",
+ "LabelTonemappingParamHelp": "டோன் மேப்பிங் அல்காரிதத்தை டியூன் செய்யவும். பொதுவாக அதை காலியாக விடவும்.",
"LabelTonemappingParam": "டோன் மேப்பிங் அளவுரு",
- "LabelTonemappingPeakHelp": "இந்த மதிப்புடன் சமிக்ஞை / பெயரளவு / குறிப்பு உச்சத்தை மேலெழுதவும். காட்சி மெட்டாடேட்டாவில் உட்பொதிக்கப்பட்ட உச்ச தகவல் நம்பகத்தன்மையற்றதாக இருக்கும்போது அல்லது குறைந்த வரம்பிலிருந்து அதிக வரம்பிற்கு டோன் மேப்பிங் செய்யும்போது பயனுள்ளதாக இருக்கும். பரிந்துரைக்கப்பட்ட மற்றும் இயல்புநிலை மதிப்புகள் 100 மற்றும் 0 ஆகும்.",
+ "LabelTonemappingPeakHelp": "உள்ளீட்டு சமிக்ஞைக்கான உட்பொதிக்கப்பட்ட மெட்டாடேட்டா மதிப்பை இந்த உச்ச மதிப்புடன் மேலெழுதவும். இயல்புநிலை மதிப்பு 100 (1000nit) ஆகும்.",
"LabelTonemappingPeak": "டோன் மேப்பிங் உச்சம்",
"LabelTonemappingThresholdHelp": "டோன் மேப்பிங் அல்காரிதம் அளவுருக்கள் ஒவ்வொரு காட்சிக்கும் நன்றாக வடிவமைக்கப்பட்டுள்ளன. காட்சி மாறியதா இல்லையா என்பதைக் கண்டறிய ஒரு வாசல் பயன்படுத்தப்படுகிறது. தற்போதைய ஃபிரேம் சராசரி பிரகாசத்திற்கும் தற்போதைய இயங்கும் சராசரிக்கும் இடையே உள்ள தூரம் ஒரு த்ரெஷோல்ட் மதிப்பை மீறினால், காட்சி சராசரி மற்றும் உச்ச பிரகாசத்தை மீண்டும் கணக்கிடுவோம். பரிந்துரைக்கப்பட்ட மற்றும் இயல்புநிலை மதிப்புகள் 0.8 மற்றும் 0.2 ஆகும்.",
"LabelTonemappingThreshold": "டோன் மேப்பிங் வரம்பு",
- "LabelTonemappingDesatHelp": "இந்த பிரகாசத்தின் அளவைத் தாண்டிய சிறப்பம்சங்களுக்கு தேய்மானத்தைப் பயன்படுத்துங்கள். அதிக அளவுரு, அதிக வண்ண தகவல்கள் பாதுகாக்கப்படும். இந்த அமைப்பு சூப்பர்-சிறப்பம்சங்களுக்கான இயற்கைக்கு மாறான வண்ணங்களைத் தடுக்க உதவுகிறது, அதற்கு பதிலாக (சுமூகமாக) வெள்ளை நிறமாக மாறுவதன் மூலம். இது வரம்பற்ற வண்ணங்களைப் பற்றிய தகவல்களைக் குறைக்கும் செலவில், படங்கள் மிகவும் இயல்பானதாக உணரவைக்கும். பரிந்துரைக்கப்பட்ட மற்றும் இயல்புநிலை மதிப்புகள் 0 மற்றும் 0.5 ஆகும்.",
+ "LabelTonemappingDesatHelp": "இந்த பிரகாச அளவை மீறும் ஹைலைட்டுகளுக்கு நிறைவுறாத்தன்மையைப் பயன்படுத்தவும். பரிந்துரைக்கப்பட்ட மதிப்பு 0 (முடக்கு).",
"LabelTonemappingDesat": "டோன் மேப்பிங் சேமிக்கப்பட்டது",
"TonemappingRangeHelp": "வெளியீட்டு வண்ண வரம்பைத் தேர்ந்தெடுக்கவும். ஆட்டோ என்பது உள்ளீட்டு வரம்பைப் போன்றது.",
"LabelTonemappingRange": "டோன் மேப்பிங் சரகம்",
@@ -1470,8 +1470,8 @@
"RemuxHelp2": "முற்றிலும் இழப்பற்ற ஊடகத் தரத்துடன் ரீமக்ஸ் மிகக் குறைந்த செயலாக்க சக்தியைப் பயன்படுத்துகிறது.",
"RemuxHelp1": "மீடியா பொருந்தாத கோப்பு கொள்கலனில் (MKV, AVI, WMV போன்றவை) உள்ளது, ஆனால் வீடியோ ஸ்ட்ரீம் மற்றும் ஆடியோ ஸ்ட்ரீம் இரண்டும் சாதனத்துடன் இணக்கமாக உள்ளன. சாதனத்திற்கு அனுப்பப்படுவதற்கு முன்பு மீடியா பறக்காமல் இழப்பின்றி மீண்டும் தொகுக்கப்படும்.",
"Remuxing": "ரீமக்ஸ்",
- "AspectRatioFill": "நிரப்பு",
- "AspectRatioCover": "உறை",
+ "AspectRatioFill": "நீட்டிக்கவும்",
+ "AspectRatioCover": "பெரிதாக்கு",
"PluginFromRepo": "{1} களஞ்சியத்திலிருந்து {0}",
"LabelUDPPortRangeHelp": "யுடிபி இணைப்புகளை உருவாக்கும்போது இந்த போர்ட் வரம்பைப் பயன்படுத்த ஜெல்லிஃபின் கட்டுப்படுத்தவும். (இயல்புநிலை 1024 - 65535). குறிப்பு: சில செயல்பாடுகளுக்கு இந்த வரம்பிற்கு வெளியே இருக்கும் நிலையான துறைமுகங்கள் தேவைப்படுகின்றன.",
"LabelUDPPortRange": "UDP தொடர்பு வரம்பு",
@@ -1676,9 +1676,9 @@
"MediaInfoVideoRangeType": "வீடியோ வரம்பு வகை",
"LabelVideoRangeType": "வீடியோ வரம்பு வகை",
"VideoRangeTypeNotSupported": "வீடியோவின் வரம்பு வகை ஆதரிக்கப்படவில்லை",
- "LabelVppTonemappingContrastHelp": "VPP tone மேப்பிங்கில் கான்ட்ராஸ்ட் ஆதாயத்தைப் பயன்படுத்தவும். பரிந்துரைக்கப்பட்ட மற்றும் இயல்புநிலை மதிப்புகள் இரண்டும் 1 ஆகும்.",
- "LabelVppTonemappingBrightnessHelp": "VPP டோன் மேப்பிங்கில் பிரைட்னஸ் ஆதாயத்தை பயன்படுத்தவும். பரிந்துரைக்கப்பட்ட மற்றும் இயல்புநிலை மதிப்புகள் 16 மற்றும் 0 ஆகும்.",
- "EnableSplashScreen": "ஸ்பிளாஸ் திரையை இயக்கவும்",
+ "LabelVppTonemappingContrastHelp": "VPP டோன் மேப்பிங்கில் கான்ட்ராஸ்ட் ஆதாயத்தைப் பயன்படுத்தவும். பரிந்துரைக்கப்பட்ட மதிப்பு 1 ஆகும்.",
+ "LabelVppTonemappingBrightnessHelp": "VPP டோன் மேப்பிங்கில் பிரகாசக் குறைப்பைப் பயன்படுத்தவும். பரிந்துரைக்கப்பட்ட மதிப்பு 16 ஆகும்.",
+ "EnableSplashScreen": "ஸ்பிளாஸ் திரை படத்தை இயக்கு",
"ScreenResolution": "திரை அளவு",
"RememberSubtitleSelectionsHelp": "சப்டைட்டில் டிராக்கை கடைசி வீடியோவுக்கு மிக நெருக்கமான பொருத்தமாக அமைக்க முயற்சிக்கவும்.",
"RememberSubtitleSelections": "முந்தைய உருப்படியின் அடிப்படையில் வசன வரிகளை அமைக்கவும்",
@@ -1691,7 +1691,7 @@
"IgnoreDts": "DTS புறக்கணிக்கவும்",
"LabelThrottleDelaySecondsHelp": "டிரான்ஸ்கோடர் த்ரோட்டில் செய்த பிறகு உள்ள நேரத்தை இது குறிக்கிறது. நேரத்தின் அளவு அதிகமாக இருக்கும் பட்சத்தில் செயல்பாடு ஆரோக்கியமாக இருக்கும். த்ரோட்டில் செயல்பாட்டில் இருந்தால் மட்டுமே இது வேலை செய்யும்.",
"LabelSegmentKeepSecondsHelp": "கிளையன்ட் பதிவிறக்கம் செய்த பிறகு, எந்தப் பகுதிகளை வைத்திருக்க வேண்டும் என்பதை நொடிகளில் நேரம். பிரிவு நீக்கம் இயக்கப்பட்டிருந்தால் மட்டுமே வேலை செய்யும்.",
- "LabelDummyChapterDurationHelp": "போலி அத்தியாயங்களுக்கு இடையிலான இடைவெளி. போலி அத்தியாய உருவாக்கத்தை முடக்க 0 என அமைக்கவும். இதை மாற்றுவது ஏற்கனவே உள்ள போலி அத்தியாயங்களில் எந்த விளைவையும் ஏற்படுத்தாது.",
+ "LabelDummyChapterDurationHelp": "போலி அத்தியாயங்களுக்கு இடையிலான இடைவெளி வினாடிகளில். போலி அத்தியாய உருவாக்கத்தை முடக்க 0 என அமைக்கவும். இதை மாற்றுவது ஏற்கனவே உள்ள போலி அத்தியாயங்களில் எந்த விளைவையும் ஏற்படுத்தாது.",
"MessageRepositoryInstallDisclaimer": "எச்சரிக்கை: மூன்றாம் தரப்பு செருகுநிரல் களஞ்சியத்தை நிறுவுவது அபாயங்களைக் கொண்டுள்ளது. இது நிலையற்ற அல்லது தீங்கிழைக்கும் குறியீட்டைக் கொண்டிருக்கலாம் மற்றும் எந்த நேரத்திலும் மாறலாம். நீங்கள் நம்பும் நபர்களிடம் மட்டுமே களஞ்சியங்களை நிறுவவும்.",
"Featurette": "அம்சம்",
"LabelTonemappingMode": "டோன் மேப்பிங் பயன்முறை",
@@ -1764,7 +1764,7 @@
"LogLevel.Critical": "முக்கியம்",
"NotificationsMovedMessage": "அறிவிப்புகள் செயல்பாடு Webhook செருகுநிரலுக்கு நகர்த்தப்பட்டது.",
"LabelEnableLUFSScanHelp": "டிராக்குகள் முழுவதும் சமமான ஒலியைப் பெற செயலிகள் ஆடியோ பிளேபேக்கை இயல்பாக்கலாம். இது லைப்ரரி ஸ்கேன்களில் தாமதத்தை ஏற்படுத்தும் மற்றும் அதிக கணினி வளங்களை உபயோக படுத்தும் என்பதை நினைவில் கொள்ளவும்.",
- "LabelParallelImageEncodingLimitHelp": "இணையாக இயக்க அனுமதிக்கப்படும் பட குறியாக்கங்களின் அதிகபட்ச எண்ணிக்கை. இதை 0 ஆக அமைப்பது உங்கள் கணினியின் முக்கிய எண்ணிக்கையின் அடிப்படையில் வரம்பை தேர்ந்தெடுக்கும்.",
+ "LabelParallelImageEncodingLimitHelp": "இணையாக இயங்க அனுமதிக்கப்பட்ட அதிகபட்ச பட குறியாக்கங்கள். இதை காலியாக விடுவது உங்கள் கணினியின் மைய எண்ணிக்கையின் அடிப்படையில் ஒரு வரம்பைத் தேர்ந்தெடுக்கும்.",
"MessageRenameMediaFolder": "மீடியா லைப்ரரிக்கு மறுபெயரிடுவது அனைத்து மெட்டாடேட்டாவையும் இழக்க நேரிடும், எச்சரிக்கையுடன் தொடரவும்.",
"SubtitleRed": "சிவப்பு",
"SubtitleWhite": "வெள்ளை",
@@ -1785,7 +1785,7 @@
"AllowSegmentDeletionHelp": "கிளையன்ட் பதிவிறக்கிய பிறகு பழைய பகுதிகளை நீக்கவும். இது முழு டிரான்ஸ்கோடட் கோப்பையும் வட்டில் சேமிப்பதைத் தடுக்கிறது. பிளேபேக் சிக்கல்களை நீங்கள் சந்தித்தால் இதை முடக்கவும்.",
"LabelThrottleDelaySeconds": "செறிவூட்டு",
"LabelSegmentKeepSeconds": "பகுதிகளை வைத்திருக்க வேண்டிய நேரம்",
- "SelectAudioNormalizationHelp": "Track Gain - ஒவ்வொரு ஒலி அமைப்புகளுக்கும் சத்தத்தின் அளவை நிறுவுதல். Album Gain - ஒரு ஆல்பத்தில் உள்ள அனைத்து ஒலி அமைப்புகளுக்கும் ஒரே மாதிரியான சத்தத்தின் நிறுவுதல்.",
+ "SelectAudioNormalizationHelp": "டிராக் கெயின் - ஒவ்வொரு டிராக்கின் ஒலியளவையும் சரிசெய்கிறது, இதனால் அவை ஒரே சத்தத்துடன் பிளேபேக் ஆகும். ஆல்பம் கெயின் - ஆல்பத்தின் டைனமிக் வரம்பைப் பராமரிக்கும் வகையில், ஒரு ஆல்பத்தில் உள்ள அனைத்து டிராக்குகளின் ஒலியளவையும் மட்டும் சரிசெய்கிறது. \"ஆஃப்\" மற்றும் பிற விருப்பங்களுக்கு இடையில் மாறுவதற்கு தற்போதைய பிளேபேக்கை மறுதொடக்கம் செய்ய வேண்டும்.",
"LabelAlbumGain": "ஆல்பத்தின் ஒலி அளவு வேறுபாடுகள்",
"LabelSelectAudioNormalization": "ஒலி இயல்பாக்கம்",
"AllowCollectionManagement": "சேகரிப்புகளை நிர்வகிக்க இந்தப் பயனரை அனுமதி",
@@ -1871,7 +1871,7 @@
"LabelProcessPriority": "செயல்முறை முன்னுரிமை",
"LabelQscale": "Qscale",
"EnableTrueHdHelp": "உங்கள் சாதனம் TrueHD ஐ ஆதரித்தால் அல்லது இணக்கமான ஆடியோ ரிசீவருடன் இணைக்கப்பட்டிருந்தால் மட்டுமே இயக்கவும், இல்லையெனில் அது பிளேபேக் தோல்வியை ஏற்படுத்தலாம்.",
- "LibraryScanFanoutConcurrencyHelp": "லைப்ரரி ஸ்கேன்களின் போது இணையான பணிகளின் அதிகபட்ச எண்ணிக்கை. இதை 0 ஆக அமைப்பது உங்கள் கணினியின் முக்கிய எண்ணிக்கையின் அடிப்படையில் வரம்பை தேர்ந்தெடுக்கும். எச்சரிக்கை: இந்த எண்ணை மிக அதிகமாக அமைப்பதால் பிணைய கோப்பு முறைமைகளில் சிக்கல்கள் ஏற்படலாம்; நீங்கள் சிக்கல்களை எதிர்கொண்டால், இந்த எண்ணைக் குறைக்கவும்.",
+ "LibraryScanFanoutConcurrencyHelp": "நூலக ஸ்கேன்களின் போது அதிகபட்ச இணையான பணிகளின் எண்ணிக்கை. இதை காலியாக விடுவது உங்கள் கணினியின் மைய எண்ணிக்கையின் அடிப்படையில் ஒரு வரம்பைத் தேர்ந்தெடுக்கும். எச்சரிக்கை: இந்த எண்ணை மிக அதிகமாக அமைப்பது பிணைய கோப்பு முறைமைகளில் சிக்கல்களை ஏற்படுத்தக்கூடும்; நீங்கள் சிக்கல்களை எதிர்கொண்டால் இந்த எண்ணைக் குறைக்கவும்.",
"PlaylistError.CreateFailed": "பிளேலிஸ்ட்டை உருவாக்குவதில் பிழை",
"PlaylistError.AddFailed": "பிளேலிஸ்ட்டில் சேர்ப்பதில் பிழை",
"SaveLyricsIntoMediaFolders": "மீடியா கோப்புறைகளில் பாடல் வரிகளைச் சேமிக்கவும்",
@@ -1897,7 +1897,7 @@
"HeaderVideoAdvanced": "வீடியோ மேம்பட்டது",
"Lyrics": "பாடல் வரிகள்",
"ConfirmDeleteLyrics": "இந்தப் பாடல் வரிகளை நீக்குவது கோப்பு முறைமை மற்றும் உங்கள் மீடியா லைப்ரரி இரண்டிலிருந்தும் நீக்கப்படும். நீங்கள் நிச்சயமாக தொடர விரும்புகிறீர்களா?",
- "LabelTrickplayAccelEncodingHelp": "தற்போது QSV மற்றும் VAAPI இல் மட்டுமே கிடைக்கிறது, இந்த விருப்பம் மற்ற வன்பொருள் முடுக்க முறைகளில் எந்த விளைவையும் ஏற்படுத்தாது.",
+ "LabelTrickplayAccelEncodingHelp": "தற்போது QSV, VA-API, VideoToolbox மற்றும் RKMPP ஆகியவற்றில் மட்டுமே கிடைக்கிறது, இந்த விருப்பம் மற்ற வன்பொருள் முடுக்கம் முறைகளில் எந்த விளைவையும் ஏற்படுத்தாது.",
"LabelTrickplayAccelEncoding": "வன்பொருள் துரிதப்படுத்தப்பட்ட MJPEG குறியாக்கத்தை இயக்கவும்",
"PlaylistPublic": "பொது அணுகலை அனுமதிக்கவும்",
"PlaylistPublicDescription": "உள்நுழைந்துள்ள எவரும் இந்த பிளேலிஸ்ட்டைப் பார்க்க அனுமதிக்கவும்.",
@@ -1907,5 +1907,169 @@
"AllowFmp4TranscodingContainerHelp": "HEVC மற்றும் HDR பதிவுகளை செயல்படுத்துவதற்க்கு இந்த டியூனரிற்கு fMP4 ட்ரான்ஸ்கோடிங் கண்டெய்னரை அனுமதிக்கவும். எல்லா விதமான டியூனர்களும் இந்த கண்டெய்னருடன் ஒத்துவராது. தரவுகளை செயல்படுத்துவதில் ஏதேனும் தடங்கல் ஏற்பட்டால் இதை ஆஃப் செய்யவும்.",
"Retry": "மீண்டும் முயற்சிக்கவும்",
"AllowStreamSharingHelp": "ட்யூனரிலிருந்து mpegts ஸ்ட்ரீமை நகலெடுத்து, இந்த நகல் ஸ்ட்ரீமை அதன் வாடிக்கையாளர்களுடன் பகிர்ந்து கொள்ள ஜெல்லிஃபினை அனுமதிக்கவும். ட்யூனருக்கு மொத்த ஸ்ட்ரீம் எண்ணிக்கை வரம்பு இருக்கும்போது இது பயனுள்ளதாக இருக்கும், ஆனால் பிளேபேக் சிக்கல்களையும் ஏற்படுத்தக்கூடும்.",
- "Alternate": "மாற்று"
+ "Alternate": "மாற்று",
+ "MessageRestoreSuccess": "மீட்டமைத்தல் வெற்றிகரமாக முடிந்தது",
+ "AlwaysBurnInSubtitleWhenTranscodingHelp": "டிரான்ஸ்கோடிங் தூண்டப்படும்போது அனைத்து வசனங்களையும் எரிக்கவும். இது டிரான்ஸ்கோடிங் வேகத்தைக் குறைப்பதன் மூலம் டிரான்ஸ்கோடிங்கிற்குப் பிறகு வசன ஒத்திசைவை உறுதி செய்கிறது.",
+ "AllowTonemappingSoftwareHelp": "டோன்-மேப்பிங், அசல் காட்சியைப் பிரதிநிதித்துவப்படுத்துவதற்கு மிக முக்கியமான தகவலான பட விவரங்கள் மற்றும் வண்ணங்களைப் பராமரிக்கும் அதே வேளையில், ஒரு வீடியோவின் டைனமிக் வரம்பை HDR இலிருந்து SDR ஆக மாற்றும். தற்போது 10பிட் HDR10, HLG மற்றும் DoVi வீடியோக்களுடன் மட்டுமே இயங்குகிறது.",
+ "AlwaysRemuxMp3AudioFilesHelp": "உங்கள் உலாவி நேர முத்திரைகளை தவறாகக் கணக்கிடும் கோப்புகள் உங்களிடம் இருந்தால், இதை ஒரு தீர்வாக இயக்கவும்.",
+ "DeleteRepositoryConfirmation": "இந்த களஞ்சியத்தை நீக்க விரும்புகிறீர்களா?",
+ "DisableVbrAudioEncodingHelp": "இந்த கிளையண்டிற்கு VBR உடன் ஆடியோவை என்கோட் செய்வதிலிருந்து சர்வரைத் தடுக்கவும்.",
+ "FallbackMaxStreamingBitrateHelp": "ffprobe மூல ஸ்ட்ரீம் பிட்ரேட்டை தீர்மானிக்க முடியாதபோது, அதிகபட்ச ஸ்ட்ரீமிங் பிட்ரேட் ஒரு குறைப்பாகப் பயன்படுத்தப்படுகிறது. இது வாடிக்கையாளர்கள் அதிகப்படியான டிரான்ஸ்கோடிங் பிட்ரேட்டைக் கோருவதைத் தடுக்க உதவுகிறது, இது பிளேயரை செயலிழக்கச் செய்து என்கோடரை ஓவர்லோட் செய்யக்கூடும்.",
+ "LabelCustomTagDelimitersHelp": "தனித்தனி குறிச்சொற்களுக்கான வரம்புக் குறிகளாகக் கருதப்பட வேண்டிய எழுத்துக்கள்.",
+ "LabelDelimiterWhitelist": "வரம்பு நீக்கி அனுமதிப்பட்டியல்",
+ "LabelDelimiterWhitelistHelp": "குறிச்சொல் பிரிப்பிலிருந்து விலக்கப்பட வேண்டிய உருப்படிகள். ஒரு வரிக்கு ஒரு உருப்படி.",
+ "LabelDevice": "சாதனம்",
+ "LabelLyricDownloaders": "பாடல் வரி பதிவிறக்கிகள்",
+ "LabelQsvDeviceHelp": "பல-GPU அமைப்பில் Intel QSVக்கான சாதனத்தைக் குறிப்பிடவும். Linux-ல், இது ரெண்டர் நோட், எ.கா., /dev/dri/renderD128. Windows-ல், இது 0 இலிருந்து தொடங்கும் சாதனக் குறியீடு. நீங்கள் என்ன செய்கிறீர்கள் என்று தெரியாவிட்டால் காலியாக விடவும்.",
+ "LabelRepository": "களஞ்சியம்",
+ "LabelRestore": "மீட்டமை",
+ "LabelSaveTrickplayLocallyHelp": "டிரிக்பிளே படங்களை மீடியா கோப்புறைகளில் சேமிப்பது, எளிதாக இடம்பெயர்வு மற்றும் அணுகலுக்காக அவற்றை உங்கள் மீடியாவிற்கு அடுத்ததாக வைக்கும்.",
+ "LabelScreensaverTimeHelp": "ஸ்கிரீன்சேவரைத் தொடங்க தேவையான செயலற்ற நேரத்தின் அளவு வினாடிகளில்.",
+ "LabelSubtitleStyling": "வசன நடை",
+ "LabelSelectPreferredTranscodeVideoCodec": "விருப்பமான டிரான்ஸ்கோட் வீடியோ கோடெக்",
+ "LibraryInvalidItemIdError": "நூலகம் தவறான நிலையில் உள்ளது மற்றும் திருத்த முடியாது. நீங்கள் ஒரு பிழையை எதிர்கொள்ள நேரிடலாம்: தரவுத்தளத்தில் உள்ள பாதை கோப்பு முறைமையில் சரியான பாதை அல்ல.",
+ "MediaSegmentProvidersHelp": "உங்களுக்கு விருப்பமான ஊடகப் பிரிவு வழங்குநர்களை முன்னுரிமையின் வரிசையில் இயக்கி தரவரிசைப்படுத்துங்கள்.",
+ "MessageCancelTimerError": "டைமரை ரத்துசெய்யும்போது பிழை ஏற்பட்டது",
+ "MessageRestoreDisclaimer": "எச்சரிக்கை: நீங்கள் முந்தைய காப்புப்பிரதியிலிருந்து மீட்டெடுக்கப் போகிறீர்கள். செயல்முறை முடியும் வரை உங்கள் சேவையகம் பயன்படுத்த முடியாததாகிவிடும், மேலும் காப்புப்பிரதிக்குப் பிறகு உருவாக்கப்படும் எந்த புதிய தரவும் இழக்கப்படும்.",
+ "MoveToBottom": "கீழே நகர்த்து",
+ "NativeSubtitleStylingHelp": "சில சாதனங்களில் வசன நடை வேலை செய்யாது. இருப்பினும், இது எந்த செயல்திறன் செலவுகளையும் கொண்டிருக்கவில்லை.",
+ "PasswordMissingSaveError": "புதிய கடவுச்சொல் காலியாக இருக்கக்கூடாது.",
+ "PluginDisableError": "செருகுநிரலை முடக்கும்போது பிழை ஏற்பட்டது.",
+ "PluginEnableError": "செருகுநிரலை இயக்கும்போது பிழை ஏற்பட்டது.",
+ "PluginLoadConfigError": "செருகுநிரல் உள்ளமைவு பக்கங்களைப் பெறும்போது பிழை ஏற்பட்டது.",
+ "ReadInputAtNativeFramerateHelp": "இந்த விருப்பத்தை இயக்குவது சில சிக்கல்களைத் தீர்க்கக்கூடும், எ.கா. நேரடி ஒளிபரப்புகள் முன்கூட்டியே நிறுத்தப்படுவது.",
+ "RenderPgsSubtitleHelp": "கிளையன்ட், பர்ன்டு இன் சப்டைட்டில்களைப் பயன்படுத்துவதற்குப் பதிலாக PGS சப்டைட்டில்களை ரெண்டர் செய்ய வேண்டுமா என்பதைத் தீர்மானிக்கவும். இது கிளையன்ட்-சைட் ரெண்டரிங் செயல்திறனுக்கு ஈடாக சர்வர்-சைட் டிரான்ஸ்கோடிங்கைத் தவிர்க்கலாம்.",
+ "RetryWithGlobalSearch": "உலகளாவிய தேடலுடன் மீண்டும் முயற்சிக்கவும்",
+ "Reset": "மீட்டமைக்கவும்",
+ "RepositoriesPageLoadError": "களஞ்சியங்களை ஏற்றுவதில் தோல்வி",
+ "SelectPreferredTranscodeVideoAudioCodecHelp": "வீடியோ உள்ளடக்கத்திற்கு டிரான்ஸ்கோட் செய்ய விருப்பமான ஆடியோ கோடெக்கைத் தேர்ந்தெடுக்கவும். விருப்பமான கோடெக் ஆதரிக்கப்படவில்லை என்றால், சேவையகம் அடுத்து கிடைக்கக்கூடிய சிறந்த கோடெக்கைப் பயன்படுத்தும்.",
+ "StorageType.CDRom": "சிடி-ரோம்",
+ "StorageType.Fixed": "சரி செய்யப்பட்டது",
+ "StorageType.Network": "வலைப்பின்னல்",
+ "StorageType.NoRootDirectory": "ரூட் கோப்பகம் இல்லை",
+ "StorageType.Ram": "ரேம்",
+ "StorageType.Removable": "நீக்கக்கூடியது",
+ "StorageType.Unknown": "தெரியவில்லை",
+ "Success": "வெற்றி",
+ "LabelTrickplayKeyFrameOnlyExtractionHelp": "குறைவான துல்லியமான நேரத்துடன் குறிப்பிடத்தக்க வேகமான செயலாக்கத்திற்கு மட்டுமே கீ பிரேம்களைப் பிரித்தெடுக்கவும். உள்ளமைக்கப்பட்ட வன்பொருள் டிகோடர் இந்த பயன்முறையை ஆதரிக்கவில்லை என்றால், அதற்கு பதிலாக மென்பொருள் டிகோடரைப் பயன்படுத்தும்.",
+ "LogLoadFailure": "பதிவு கோப்பை ஏற்ற முடியவில்லை. அது இன்னும் செயலில் எழுதப்பட்டிருக்கலாம்.",
+ "LabelAlwaysRemuxMp3AudioFiles": "எப்போதும் MP3 ஆடியோ கோப்புகளை ரீமக்ஸ் செய்யவும்",
+ "PreferNonstandardArtistsTag": "கிடைத்தால், கலைஞர்கள் குறிச்சொல்லை விரும்புங்கள்",
+ "SettingsPageLoadError": "அமைப்புகள் பக்கத்தை ஏற்ற முடியவில்லை",
+ "LabelTrickplayKeyFrameOnlyExtraction": "முக்கிய சட்டகங்களிலிருந்து மட்டுமே படங்களை உருவாக்கவும்",
+ "ReadInputAtNativeFramerate": "உள்ளீட்டை நேட்டிவ் பிரேம் வீதத்தில் படிக்கவும்",
+ "AlwaysBurnInSubtitleWhenTranscoding": "டிரான்ஸ்கோடிங் செய்யும்போது எப்போதும் வசன வரிகளில் எழுது",
+ "CustomSplashScreenSize": "தனிப்பயன் படங்கள் குறைந்தபட்சம் 1920x1080 அளவில் 16x9 தோற்ற விகிதத்தில் இருக்க வேண்டும்.",
+ "DeleteCustomImage": "தனிப்பயன் படத்தை நீக்கு",
+ "MessageCancelSeriesTimerError": "தொடர் டைமரை ரத்து செய்யும் போது பிழை ஏற்பட்டது",
+ "DateModified": "திருத்தப்பட்ட தேதி",
+ "ImageUploadCancelled": "பட பதிவேற்றம் ரத்துசெய்யப்பட்டது",
+ "ImageUploadFailed": "படத்தைப் பதிவேற்ற முடியவில்லை",
+ "EnableHi10p": "H.264 உயர் 10 சுயவிவரத்தை இயக்கு",
+ "EnableHi10pHelp": "H.264 10-பிட் வீடியோக்களை டிரான்ஸ்கோட் செய்வதைத் தவிர்க்க இயக்கவும். வீடியோ வெற்று பிரேம்களைக் காட்டினால் இந்த விருப்பத்தை முடக்கவும்.",
+ "HeaderAudioAdvanced": "மேம்பட்ட ஆடியோ",
+ "HeaderPreviewLyrics": "முன்னோட்டப் பாடல் வரிகள்",
+ "LabelAllowStreamSharing": "ஸ்ட்ரீம் பகிர்வை அனுமதி",
+ "LabelDropLyricsHere": "பாடல் வரிகளை இங்கே விடுங்கள், அல்லது உலவ கிளிக் செய்யவும்.",
+ "LabelFallbackMaxStreamingBitrate": "ஃபால்பேக் அதிகபட்ச ஸ்ட்ரீம் பிட்ரேட் (Mbps)",
+ "LabelAllowFmp4TranscodingContainer": "fMP4 டிரான்ஸ்கோடிங் கண்டெய்னரை அனுமதிக்கவும்",
+ "LabelAlwaysRemuxFlacAudioFiles": "எப்போதும் FLAC ஆடியோ கோப்புகளை மறுதொடக்கம் செய்யவும்",
+ "LabelSelectPreferredTranscodeVideoAudioCodec": "வீடியோ பிளேபேக்கில் விருப்பமான டிரான்ஸ்கோட் ஆடியோ கோடெக்",
+ "MessageSplitVersionsError": "பதிப்புகளைப் பிரிக்கும்போது பிழை ஏற்பட்டது",
+ "MediaSegmentType.Outro": "அவுட்ரோ",
+ "MoviesAndShows": "திரைப்படங்கள் மற்றும் நிகழ்ச்சிகள்",
+ "PluginsLoadError": "செருகுநிரல்களை ஏற்றும்போது பிழை ஏற்பட்டது.",
+ "PluginUninstallError": "செருகுநிரலை நிறுவல் நீக்கும்போது பிழை ஏற்பட்டது.",
+ "HeaderBackups": "காப்புப்பிரதிகள்",
+ "MessageWaitingForServer": "சேவையகத்திற்காக காத்திருக்கிறது...",
+ "ConfirmDeleteRepository": "களஞ்சியத்தை நீக்கவா?",
+ "Create": "உருவாக்கு",
+ "HeaderNextEpisode": "அடுத்த அத்தியாயம்",
+ "HeaderNextVideo": "அடுத்த காணொளி",
+ "PreviewLyrics": "முன்னோட்டப் பாடல் வரிகள்",
+ "SelectPreferredTranscodeVideoCodecHelp": "டிரான்ஸ்கோட் செய்ய விருப்பமான வீடியோ கோடெக்கைத் தேர்ந்தெடுக்கவும். விருப்பமான கோடெக் ஆதரிக்கப்படவில்லை என்றால், சேவையகம் அடுத்து கிடைக்கக்கூடிய சிறந்த கோடெக்கைப் பயன்படுத்தும்.",
+ "StreamCountExceedsLimit": "ஸ்ட்ரீம்களின் எண்ணிக்கை வரம்பை மீறுகிறது",
+ "TranscodingLoadError": "டிரான்ஸ்கோடிங் அமைப்புகளை ஏற்ற முடியவில்லை",
+ "AutoSubtitleStylingHelp": "இந்த பயன்முறை உங்கள் சாதன வகையைப் பொறுத்து சொந்த மற்றும் தனிப்பயன் வசன ஸ்டைலிங் வழிமுறைகளுக்கு இடையில் தானாகவே மாறும்.",
+ "Custom": "தனிப்பயன்",
+ "CustomSubtitleStylingHelp": "வசன வரிகள் ஸ்டைலிங் பெரும்பாலான சாதனங்களில் வேலை செய்யும், ஆனால் கூடுதல் செயல்திறன் செலவுகளுடன் வருகிறது.",
+ "HeaderPageNotFound": "பக்கம் கிடைக்கவில்லை",
+ "UseCustomTagDelimiters": "தனிப்பயன் டேக் பிரிப்பானைப் பயன்படுத்தவும்",
+ "LabelNoChangelog": "இந்த வெளியீட்டிற்கு எந்த மாற்றப் பதிவும் வழங்கப்படவில்லை.",
+ "RenderPgsSubtitle": "பரிசோதனை PGS வசன ரெண்டரிங்",
+ "LabelEnablePlugin": "செருகுநிரலை இயக்கு",
+ "LabelIsSynced": "ஒத்திசைக்கப்பட்டது",
+ "LabelMediaSegmentsType": "{0} பிரிவுகள்",
+ "LabelAudioTagSettings": "ஆடியோ டேக் அமைப்புகள்",
+ "ReplaceTrickplayImages": "ஏற்கனவே உள்ள ட்ரிக்பிளே படங்களை மாற்றவும்",
+ "SearchForLyrics": "பாடல் வரிகளைத் தேடு",
+ "LabelScreensaverTime": "திரை சேமிப்பான் நேரம்",
+ "UseCustomTagDelimitersHelp": "கலைஞர்/வகை குறிச்சொற்களை தனிப்பயன் எழுத்துக்களுடன் பிரிக்கவும்.",
+ "LimitSegmentLength": "குறுகிய HLS பிரிவுகளைப் பயன்படுத்தவும்",
+ "LimitSegmentLengthHelp": "இந்த விருப்பத்தை இயக்குவது, webOS TVகள் போன்ற சில சாதனங்களில் தேடும் போது HLS பிளேயர் தொங்குவதைத் தடுக்க உதவும்.",
+ "LabelGroupShowsIntoCollections": "தொகுப்புகளில் குழு நிகழ்ச்சிகள்",
+ "LabelGroupShowsIntoCollectionsHelp": "காட்சிப் பட்டியல்களைக் காண்பிக்கும் போது, தொகுப்பில் உள்ள நிகழ்ச்சிகள் ஒரு தொகுக்கப்பட்ட உருப்படியாகக் காண்பிக்கப்படும்.",
+ "MediaSegmentAction.AskToSkip": "தவிர்க்கக் கேளுங்கள்",
+ "MediaSegmentSkipPrompt": "{0} ஐத் தவிர்",
+ "CopyLogSuccess": "பதிவு உள்ளடக்கங்கள் வெற்றிகரமாக நகலெடுக்கப்பட்டன.",
+ "DownloadManager": "பதிவிறக்கங்கள்",
+ "HeaderMediaSegmentActions": "ஊடகப் பிரிவு நடவடிக்கைகள்",
+ "HeaderNewPlaylist": "புதிய பிளேலிஸ்ட்",
+ "NoLyricsSearchResultsFound": "பாடல் வரிகள் எதுவும் கிடைக்கவில்லை.",
+ "AndOtherArtists": "{0} மற்றும் {1} பிற கலைஞர்கள்.",
+ "LiveTVPageLoadError": "பதிவுகள் பக்கத்தை ஏற்ற முடியவில்லை",
+ "LyricDownloadersHelp": "உங்களுக்கு விருப்பமான பாடல் வரி பதிவிறக்கிகளை முன்னுரிமையின் வரிசையில் இயக்கி தரவரிசைப்படுத்துங்கள்.",
+ "MediaInfoRotation": "சுழற்சி",
+ "HeaderUploadLyrics": "பாடல் வரிகளைப் பதிவேற்றவும்",
+ "MessageRestoreInProgress": "மீட்டமைவு செயலில் உள்ளது",
+ "MetadataNfoLoadError": "மெட்டாடேட்டா NFO அமைப்புகளை ஏற்ற முடியவில்லை",
+ "MoveToTop": "மேலே நகர்த்து",
+ "Native": "பூர்வீகம்",
+ "PlaylistError.UpdateFailed": "பட்டியலைப் புதுப்பிப்பதில் பிழை",
+ "PluginLoadRepoError": "களஞ்சியத்திலிருந்து செருகுநிரல் விவரங்களைப் பெறும்போது பிழை ஏற்பட்டது.",
+ "PreferNonstandardArtistsTagHelp": "கிடைக்கும்போது, ARTIST குறிச்சொல்லுக்குப் பதிலாக, தரமற்ற ARTISTS குறிச்சொல்லைப் பயன்படுத்தவும்.",
+ "Regional": "பிராந்திய",
+ "UploadCustomImage": "தனிப்பயன் படத்தை பதிவேற்று",
+ "ViewSettings": "அமைப்புகளைக் காண்க",
+ "VideoCodecTagNotSupported": "வீடியோ கோடெக் டேக் ஆதரிக்கப்படவில்லை",
+ "AlwaysRemuxFlacAudioFilesHelp": "உங்கள் உலாவி இயக்க நிராகரிக்கும் கோப்புகள் இருந்தால் அல்லது தவறாக நேர முத்திரைகளைக் கணக்கிடும் இடத்தில் இருந்தால், இதை ஒரு தீர்வாக இயக்கவும்.",
+ "HeaderEditPlaylist": "பிளேலிஸ்ட்டைத் திருத்து",
+ "DisplayLoadError": "காட்சி உள்ளமைவு தரவை ஏற்றும்போது பிழை ஏற்பட்டது.",
+ "LabelDisableVbrAudioEncoding": "VBR ஆடியோ குறியாக்கத்தை முடக்கு",
+ "PageNotFound": "நீங்கள் தேடும் பக்கம் இதுவல்ல.",
+ "MediaSegmentAction.Skip": "தவிர்",
+ "MediaSegmentType.Commercial": "வணிகம்",
+ "MessageBackupDisclaimer": "உங்கள் நூலகத்தின் அளவைப் பொறுத்து, காப்புப்பிரதி செயல்முறை சிறிது நேரம் ஆகலாம்.",
+ "MessageBackupInProgress": "காப்புப்பிரதி எடுக்கப்படுகிறது",
+ "MetadataImagesLoadError": "மெட்டாடேட்டா அமைப்புகளை ஏற்ற முடியவில்லை",
+ "AlternateDVD": "மாற்று DVD",
+ "DeleteServerConfirmation": "இந்த சேவையகத்தை நீக்க விரும்புகிறீர்களா?",
+ "LabelMediaSegmentProviders": "ஊடகப் பிரிவு வழங்குநர்கள்",
+ "MediaSegmentAction.None": "யாரும் இல்லை",
+ "MediaSegmentType.Recap": "சிறுகதை",
+ "Anime": "அனிமே",
+ "LabelQsvDevice": "QSV சாதனம்",
+ "LabelSaveTrickplayLocally": "மீடியாவுக்கு அடுத்து ட்ரிக்பிளே படங்களைச் சேமிக்கவும்",
+ "MediaSegmentType.Intro": "அறிமுகம்",
+ "MediaSegmentType.Preview": "முன்னோட்டம்",
+ "MessageForgotPasswordPinReset": "கடவுச்சொல் மீட்டமைப்பை முடிக்க, இங்கே பின்னை உள்ளிடவும்",
+ "HeaderServerUnavailable": "சேவையகம் கிடைக்கவில்லை",
+ "HeaderUpdateRequired": "புதுப்பிப்பு தேவை",
+ "LabelDuration": "கால அளவு",
+ "ButtonLearnMore": "மேலும் அறிக",
+ "HeaderBackupsHelp": "தரவுத்தளம், மெட்டாடேட்டா, வசன வரிகள் மற்றும் ட்ரிக்பிளே ஆகியவற்றை உள்ளடக்கிய உங்கள் சேவையகத்தின் ஸ்னாப்ஷாட்களை உருவாக்கி மீட்டெடுக்கவும்.",
+ "ImageDeleteFailed": "படத்தை நீக்க முடியவில்லை",
+ "LabelProgramData": "நிரல் தரவு",
+ "LibraryNameInvalid": "நூலகப் பெயர் காலியாக இருக்கக்கூடாது.",
+ "ButtonCreateBackup": "காப்புப்பிரதியை உருவாக்கு",
+ "BackupsPageLoadError": "காப்புப் பிரதி பக்கத்தை ஏற்ற முடியவில்லை",
+ "HeaderAddLyrics": "பாடல் வரிகளைச் சேர்க்கவும்",
+ "LabelCustomTagDelimiters": "தனிப்பயன் டேக் பிரிப்பான்",
+ "LabelDatabase": "தரவுத்தளம்",
+ "LabelBackupsUnavailable": "காப்புப்பிரதிகள் எதுவும் கிடைக்கவில்லை",
+ "EditLyrics": "பாடல் வரிகளைத் திருத்து",
+ "LabelImageCache": "பட தற்காலிக சேமிப்பு",
+ "LabelInstalled": "நிறுவப்பட்டது",
+ "LabelNotInstalled": "நிறுவப்படவில்லை",
+ "LastActive": "கடைசியாகச் செயல்பட்டது"
}
From 1121ce8a8dd4d966f8a61112a8e21a030f0eddef Mon Sep 17 00:00:00 2001
From: Gargotaire
Date: Sat, 28 Jun 2025 11:17:42 -0400
Subject: [PATCH 570/645] Translated using Weblate (Catalan) Translation:
Jellyfin/Jellyfin Web Translate-URL:
https://translate.jellyfin.org/projects/jellyfin/jellyfin-web/ca/
---
src/strings/ca.json | 66 ++++++++++++++++++++++-----------------------
1 file changed, 33 insertions(+), 33 deletions(-)
diff --git a/src/strings/ca.json b/src/strings/ca.json
index 63438faf0..90d06d3e6 100644
--- a/src/strings/ca.json
+++ b/src/strings/ca.json
@@ -490,22 +490,22 @@
"Programs": "Programes",
"Quality": "Qualitat",
"RecentlyWatched": "Reproduït recentment",
- "RecommendationBecauseYouWatched": "Ja que has vist {0}",
- "Record": "Grava",
+ "RecommendationBecauseYouWatched": "Perquè heu vist {0}",
+ "Record": "Enregistra",
"RecordSeries": "Enregistra la sèrie",
"RecordingCancelled": "Enregistrament cancel·lat.",
"RecordingScheduled": "Enregistrament programat.",
"Refresh": "Actualitza",
"RefreshMetadata": "Actualitza les metadades",
- "RefreshQueued": "Actualització encuada.",
- "ReleaseDate": "Estrena",
- "RememberMe": "Recorda'm",
+ "RefreshQueued": "Actualització posada a la cua.",
+ "ReleaseDate": "Data d'estrena",
+ "RememberMe": "Recorda-m'ho",
"RemoveFromCollection": "Elimina de la col·lecció",
"RemoveFromPlaylist": "Esborra de la llista de reproducció",
"Repeat": "Repeteix",
- "RepeatEpisodes": "Repetir episodis",
- "ReplaceAllMetadata": "Reemplaça totes les metadades",
- "ReplaceExistingImages": "Reemplaça imatges existents",
+ "RepeatEpisodes": "Repeteix els episodis",
+ "ReplaceAllMetadata": "Substitueix totes les metadades",
+ "ReplaceExistingImages": "Substitueix les imatges existents",
"ResumeAt": "Reprodueix des de {0}",
"Saturday": "Dissabte",
"Save": "Desa",
@@ -1374,28 +1374,28 @@
"HeaderSubtitleProfiles": "Perfils dels subtítols",
"SaveChanges": "Guardar canvis",
"Runtime": "Temps d'execució",
- "Rewind": "Rebobinar",
+ "Rewind": "Rebobina",
"Restart": "Reinicia",
"ResetPassword": "Restableix la contrasenya",
- "RepeatOne": "Repetir 1",
+ "RepeatOne": "Repeteix un",
"RepeatMode": "Mode de repetició",
"RepeatAll": "Repeteix-ho tot",
"RefreshDialogHelp": "Les metadades s'actualitzen segons la configuració i serveis d'internet habilitats al Tauler de control.",
"Recordings": "Enregistraments",
"RecommendationStarring": "Protagonitzada per {0}",
"RecommendationDirectedBy": "Dirigida per {0}",
- "RecommendationBecauseYouLike": "Perquè t'agrada {0}",
- "Rate": "Rati",
+ "RecommendationBecauseYouLike": "Perquè us agrada {0}",
+ "Rate": "Valoreu",
"Raised": "Elevat",
"QuickConnectNotAvailable": "Demaneu a l'administrador del servidor que activi el Quick Connect",
"QuickConnectNotActive": "Quick Connect no està activat en aquest servidor",
"QuickConnectInvalidCode": "Codi de Quick Connect no vàlid",
"QuickConnectDescription": "Per iniciar sessió amb Quick Connect, seleccioneu el botó 'Quick Connect' al dispositiu des del que us esteu connectant i introduïu el codi que apareix a continuació.",
"QuickConnectDeactivated": "El Quick Connect s'ha desactivat abans que la sol·licitud d'inici de sessió pogués ser aprovada",
- "QuickConnectAuthorizeSuccess": "Heu autenticat el vostre dispositiu correctament!",
+ "QuickConnectAuthorizeSuccess": "Heu autenticat correctament el vostre dispositiu!",
"QuickConnectAuthorizeFail": "Codi de Quick Connect no reconegut",
"QuickConnectAuthorizeCode": "Introduïu el codi {0} per iniciar sessió",
- "QuickConnectActivationSuccessful": "Activat amb èxit",
+ "QuickConnectActivationSuccessful": "S'ha activat amb èxit",
"QuickConnect": "Quick Connect (connexió ràpida)",
"PluginFromRepo": "{0} des del repositori {1}",
"Profile": "Perfil",
@@ -1795,14 +1795,14 @@
"DlnaMovedMessage": "La funcionalitat DLNA s'ha mogut a complements.",
"AllowSubtitleManagement": "Permet editar subtítols a aquest usuari",
"ChannelResolutionUHD4K": "UHD (4K)",
- "LabelTrickplayAccel": "Habilitar descodificació per maquinari",
+ "LabelTrickplayAccel": "Habilita la descodificació per maquinari",
"NonBlockingScan": "Sense Bloqueig - generació de cues, després retorna",
"ConfirmDeleteSeries": "Eliminar aquesta sèrie eliminarà TOTS {0} episodis tant del sistema de fitxers com de la mediateca. N'esteu segur, que desitgeu continuar?",
"LabelEncodingFormatOptions": "Opcions de format de codificació",
"LabelTrickplayAccelHelp": "Assegura't d'habilitar 'Permetre codificació MJPEG' a Transcodificació si el teu maquinari ho suporta.",
"LabelWidthResolutions": "Resolucions d'Amplada",
"LabelScanBehaviorHelp": "El comportament predeterminat és sense blocatge, cosa que afegirà contingut multimèdia a la mediateca abans que la generació de la previsualització es completi. El bloqueig assegura que els fitxers de previsualització es generin abans que el contingut multimèdia no s'afegeixi a la mediateca, però farà que l'escaneig sigui significativament més llarg.",
- "LabelProcessPriorityHelp": "Establint-ho més baix o més alt determinarà com el processador prioritza el procés de generació de trickplay ffmpeg en relació amb altres processos. Si observeu una ralentització mentre genereu imatges de trickplay, però no voleu aturar completament la seva generació, proveu de reduir-la així com el nombre de fils.",
+ "LabelProcessPriorityHelp": "Establint-ho més baix o més alt determinarà com el processador prioritza el procés de generació de previsualització ffmpeg en relació amb altres processos. Si observeu una ralentització mentre genereu imatges de previsualització, però no voleu aturar completament la seva generació, proveu de reduir-la així com el nombre de fils.",
"AirPlay": "AirPlay",
"AllowContentWithTagsHelp": "Mostra només el contingut multimèdia amb com a mínim alguna de les etiquetes especificades.",
"BlockContentWithTagsHelp": "Amaga el contingut multimèdia amb com a mínim una de les etiquetes especificades.",
@@ -1816,7 +1816,7 @@
"PlaybackError.PLAYER_ERROR": "La reproducció ha fallat a causa d'un error fatal del reproductor.",
"PlaybackError.SERVER_ERROR": "La reproducció ha fallat a causa d'un error del servidor.",
"PlaybackError.NotAllowed": "La reproducció d'aquest contingut multimèdia no està permesa.",
- "Trickplay": "Trickplay",
+ "Trickplay": "Previsualització",
"PriorityHigh": "Alta",
"EnableLibrary": "Habilita la mediateca",
"EnableLibraryHelp": "Deshabilitar la mediateca l'amagarà per a tots els usuaris.",
@@ -1827,16 +1827,16 @@
"EncodingFormatHelp": "Seleccioni la codificació de vídeo a la qual hauria de transcodificar Jellyfin. Jellyfin utilitzarà codificació mitjançant programari quan l'acceleració per maquinari no estigui disponible. La codificació H264 sempre estarà habilitada.",
"PriorityAboveNormal": "Per sobre del Normal",
"PriorityNormal": "Normal",
- "LabelImageIntervalHelp": "Interval de temps (ms) entre cada imatge nova de trickplay.",
- "LabelWidthResolutionsHelp": "Llista separada per comes de les amplades (px) en què es generaran les imatges de trickplay. Totes les imatges s'han de generar proporcionalment a la font, de manera que una amplada de 320 en un vídeo 16:9 acaba al voltant de 320x180.",
+ "LabelImageIntervalHelp": "Interval de temps (ms) entre cada imatge nova de previsualització.",
+ "LabelWidthResolutionsHelp": "Llista separada per comes de les amplades (px) en què es generaran les imatges de previsualització. Totes les imatges s'han de generar proporcionalment a la font, de manera que una amplada de 320 en un vídeo 16:9 acaba al voltant de 320x180.",
"LabelTileWidth": "Amplada del Títol",
"LabelTileWidthHelp": "Nombre màxim d'imatges per casella en la direcció X.",
"LabelTileHeight": "Alçada del Títol",
"LabelTileHeightHelp": "Nombre màxim d'imatges per casella en la direcció Y.",
"LabelJpegQuality": "Qualitat JPEG",
- "LabelJpegQualityHelp": "Qualitat de compressió JPEG per a les imatges de trickplay.",
+ "LabelJpegQualityHelp": "Qualitat de compressió JPEG per a les imatges de previsualització.",
"LabelQscale": "Qscale",
- "OptionExtractTrickplayImage": "Habilitar extracció d'imatges de trickplay",
+ "OptionExtractTrickplayImage": "Habilita l'extracció d'imatges de previsualització",
"LabelExtractTrickplayDuringLibraryScan": "Extreu imatges de previsualització durant l'escaneig de la mediateca",
"LabelExtractTrickplayDuringLibraryScanHelp": "Genera imatges de previsualització quan els vídeos són importats durant l'escaneig de la mediateca. D'altra banda, seran extrets durant la tasca programada d'imatges de previsualització. Si la generació està marcada com a sense bloqueig, això no afectarà el temps que triga a completar l'exploració de la mediateca.",
"DeleteEntireSeries": "Elimina {0} episodis",
@@ -1854,9 +1854,9 @@
"LabelImageInterval": "Interval d'Imatges",
"LabelQscaleHelp": "Escala de qualitat de les imatges generades per ffmpeg, sent 2 la qualitat més alta i 31 la més baixa.",
"LabelTrickplayThreads": "Fils de FFmpeg",
- "ExtractTrickplayImagesHelp": "Les imatges de Trickplay són similars a les imatges de capítols, excepte que abasten tota la longitud del contingut i s'utilitzen per mostrar una vista prèvia quan es desplaça pels vídeos.",
+ "ExtractTrickplayImagesHelp": "Les imatges de previsualització són similars a les imatges de capítols, excepte que abasten tota la longitud del contingut i s'utilitzen per mostrar una vista prèvia en moure's pels vídeos.",
"LabelTrickplayAccelEncodingHelp": "En aquests moments només està disponible en QSV, VAAPI, VideoToolbox i RKMPP, aquesta opció no afecta els altres mètodes d'acceleració per maquinari.",
- "LabelTrickplayAccelEncoding": "Habilitar codificació MJPEG accelerada per maquinari",
+ "LabelTrickplayAccelEncoding": "Habilita la codificació MJPEG accelerada per maquinari",
"ConfirmDeleteLyrics": "L'esborrat d'aquestes lletres, les suprimirà tant del sistema de fitxers com de la vostra mediateca. N'esteu segur, que desitgeu continuar?",
"ErrorDeletingLyrics": "S'ha produït un error en suprimir les lletres del servidor. Si us plau, comproveu que Jellyfin tingui accés d'escriptura a la carpeta multimèdia i torneu-ho a provar.",
"HeaderDeleteLyrics": "Elimina la lletra",
@@ -1882,7 +1882,7 @@
"PlaylistPublic": "Permet l'accés públic",
"PlaylistPublicDescription": "Permet que aquesta llista de reproducció sigui vista per qualsevol usuari registrat.",
"HeaderLyricDownloads": "Descàrregues de lletres",
- "SaveLyricsIntoMediaFolders": "Desa la lletra a les carpetes multimèdia",
+ "SaveLyricsIntoMediaFolders": "Desa les lletres al directoris multimèdia",
"SaveLyricsIntoMediaFoldersHelp": "Emmagatzemar les lletres al costat dels fitxers d'àudio permetrà gestionar-les més fàcilment.",
"LabelSelectPreferredTranscodeVideoAudioCodec": "Còdec d'àudio de transcodificació preferit en la reproducció de vídeo",
"LibraryScanFanoutConcurrencyHelp": "Nombre màxim de tasques paral·leles durant les exploracions de la mediateca. Si es deixa buit, es triarà un límit basat en el nombre de nuclis del vostre sistema. AVÍS: establir aquest número massa alt pot causar problemes amb els sistemes de fitxers de xarxa; si us dona problemes, abaixeu aquest número.",
@@ -1911,7 +1911,7 @@
"SelectPreferredTranscodeVideoCodecHelp": "Seleccioneu el còdec de vídeo preferit per transcodificar. Si el còdec preferit no és compatible, el servidor utilitzarà el següent millor còdec disponible.",
"PasswordMissingSaveError": "La nova contrasenya no pot ser buida.",
"PreviewLyrics": "Previsualitza lletres",
- "Reset": "Restablir",
+ "Reset": "Restableix",
"MediaInfoRotation": "Rotació",
"MoveToBottom": "Mou al fons",
"MoveToTop": "Mou al cim",
@@ -1923,7 +1923,7 @@
"NoLyricsSearchResultsFound": "No s'han trobat lletres.",
"SearchForLyrics": "Cercar lletres",
"LibraryInvalidItemIdError": "La mediateca es troba en un estat no vàlid, i no es pot editar. És possible que hàgiu trobat un error: la ruta de la base de dades no és una ruta correcta en el sistema de fitxers.",
- "LabelTrickplayKeyFrameOnlyExtraction": "Només generar imatges en fotogrames clau",
+ "LabelTrickplayKeyFrameOnlyExtraction": "Només genera imatges dels fotogrames clau",
"LabelTrickplayKeyFrameOnlyExtractionHelp": "Només extreure fotogrames clau per a un processament significativament més ràpid amb una sincronització menys precisa. Si el descodificador de maquinari configurat no admet aquest mode, en el seu lloc s'utilitzarà el descodificador per programari.",
"AllowTonemappingSoftwareHelp": "El mapatge de tons pot transformar el rang dinàmic d'un vídeo d'HDR a SDR mantenint els detalls i els colors de la imatge, que són informació molt important per representar l'escena original. Actualment, només funciona amb vídeos HDR10, HLG i DoVi de 10 bits.",
"LabelDuration": "Duració",
@@ -1978,13 +1978,13 @@
"HeaderMediaSegmentActions": "Accions dels segments de continguts multimèdia",
"LabelMediaSegmentsType": "{0} Segments",
"PreferNonstandardArtistsTag": "Prioritza l'etiqueta ARTISTS si es troba disponible",
- "ReplaceTrickplayImages": "Substitueix les imatges trickplay existents",
+ "ReplaceTrickplayImages": "Substitueix les imatges de previsualització existents",
"UseCustomTagDelimiters": "Utilitza delimitador d'etiquetes personalitzat",
"PreferNonstandardArtistsTagHelp": "Fes servir l'etiqueta no estàndard ARTISTS en lloc de l'etiqueta ARTIST quan estigui disponible.",
"UseCustomTagDelimitersHelp": "Separa les etiquetes artista/gènere amb caràcters personalitzats.",
- "RenderPgsSubtitle": "Renderitzat experimental de subtitols PGS",
+ "RenderPgsSubtitle": "Renderitzat experimental de subtítols PGS",
"VideoCodecTagNotSupported": "L'etiqueta del còdec de vídeo no és compatible",
- "RenderPgsSubtitleHelp": "Determina si el client ha de renderitzar els subtítols PGS en lloc d'usar els subtítols incrustats. Això pot evitar la transcodificació de part del servidor a canvi del rendiment de renderitzat de part del client.",
+ "RenderPgsSubtitleHelp": "Determina si el client ha de renderitzar els subtítols PGS enlloc de fer servir els subtítols incrustats. Això pot evitar la transcodificació de part del servidor a canvi del rendiment de renderitzat de part del client.",
"FallbackMaxStreamingBitrateHelp": "La transmissió màxima de bits s'usa com a alternativa quan ffprobe no pot determinar el flux de l'origen. Això ajuda a prevenir que els clients sol·licitin un bitrate de transcodificació excessivament alt, el qual provocaria errors en el reproductor o sobrecarregaria el codificador.",
"HeaderNextEpisode": "Episodi següent",
"HeaderNextVideo": "Vídeo següent",
@@ -2001,7 +2001,7 @@
"LabelDevice": "Dispositiu",
"LastActive": "Últim actiu",
"CopyLogSuccess": "Registres copiats satisfactòriament.",
- "Retry": "Tronar a provar",
+ "Retry": "Torna a provar-ho",
"LogLoadFailure": "Error al carregar el registre. És probable que encara s'estigui escrivint en ell.",
"MetadataNfoLoadError": "No s'han pogut carregar les configuracions de metadades NFO",
"SettingsPageLoadError": "No s'ha pogut carregar la pàgina de configuracions",
@@ -2010,7 +2010,7 @@
"PageNotFound": "Aquesta no és la pàgina que esteu cercant.",
"MetadataImagesLoadError": "No s'han pogut carregar les configuracions de metadades",
"StreamCountExceedsLimit": "El número de flux excedeix el límit",
- "RetryWithGlobalSearch": "Reintentar amb una cerca global",
+ "RetryWithGlobalSearch": "Reintenta amb una cerca global",
"LabelGroupShowsIntoCollections": "Agrupa sèries en col·leccions",
"LabelGroupShowsIntoCollectionsHelp": "Les sèries que estiguin dins d'una col·lecció es mostraran com un únic element agrupat quan es mostrin les llistes de sèries.",
"CustomSplashScreenSize": "Les imatges personalitzades haurien de ser en 16x9 de ràtio d'aspecte i a una mida mínima de 1920x1080.",
@@ -2019,8 +2019,8 @@
"ImageUploadCancelled": "Pujada d'imatge cancel·lada",
"ImageUploadFailed": "No s'ha pogut carregar la imatge",
"UploadCustomImage": "Pujar imatge personalitzada",
- "ReadInputAtNativeFramerate": "Llegeix l'origen a la velocitat de fotogrames nativa",
- "ReadInputAtNativeFramerateHelp": "Activant aquesta opció pot solucionar alguns problemes, p. ex. retransmissions en directe que es paren sobtadament.",
+ "ReadInputAtNativeFramerate": "Fes servir la velocitat original de fotogrames",
+ "ReadInputAtNativeFramerateHelp": "Habilitar aquesta opció pot solucionar alguns problemes, p. ex. retransmissions en directe que s'aturen sobtadament.",
"LimitSegmentLength": "Fes servir els segments HLS més curts",
"LimitSegmentLengthHelp": "Activar aquesta opció pot ajudar a prevenir que el reproductor HLS es pengi durant la cerca en alguns dispositius, com televisors webOS.",
"HeaderServerUnavailable": "El servidor no està disponible",
From bb5771d2f5c24a9282b11762095137d47e9b7292 Mon Sep 17 00:00:00 2001
From: nextlooper42
Date: Sat, 28 Jun 2025 11:31:40 -0400
Subject: [PATCH 571/645] Translated using Weblate (Slovak) Translation:
Jellyfin/Jellyfin Web Translate-URL:
https://translate.jellyfin.org/projects/jellyfin/jellyfin-web/sk/
---
src/strings/sk.json | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/src/strings/sk.json b/src/strings/sk.json
index 712057fd5..f2b8a462d 100644
--- a/src/strings/sk.json
+++ b/src/strings/sk.json
@@ -72,7 +72,7 @@
"Composer": "Skladateľ",
"ConfirmDeleteImage": "Zmazať obrázok?",
"ConfirmDeletion": "Potvrdiť zmazanie",
- "ConfirmEndPlayerSession": "Chcete vypnúť Jellyfin na {0}?",
+ "ConfirmEndPlayerSession": "Chceli by ste vypnúť Jellyfin na {0}?",
"Connect": "Pripojiť",
"ContinueWatching": "Pokračovať v pozeraní",
"CriticRating": "Hodnotenie kritikov",
@@ -457,7 +457,7 @@
"MessageConfirmRecordingCancellation": "Zrušiť nahrávanie?",
"MessageConfirmRemoveMediaLocation": "Ste si istý, že chcete odstrániť toto umiestnenie?",
"MessageConfirmRestart": "Ste si istý, že chcete reštartovať Jellyfin?",
- "MessageConfirmShutdown": "Ste si istý, že chcete vypnúť server?",
+ "MessageConfirmShutdown": "Ste si istí, že chcete vypnúť server?",
"MessageEnablingOptionLongerScans": "Povolenie tejto možnosti môže mať za následok podstatne dlhšie skenovania knižníc.",
"MessageFileReadError": "Pri načítaní súboru nastala chyba. Prosí, skúste to znova.",
"MessageInvalidForgotPasswordPin": "Bol zadaný neplatný alebo expirovaný PIN. Prosím, skúste to znova.",
From ea63d71fc0e7e9934f285b1efee94935a6681c39 Mon Sep 17 00:00:00 2001
From: Oliver Schuller
Date: Sat, 28 Jun 2025 12:04:15 -0400
Subject: [PATCH 572/645] Translated using Weblate (Swedish) Translation:
Jellyfin/Jellyfin Web Translate-URL:
https://translate.jellyfin.org/projects/jellyfin/jellyfin-web/sv/
---
src/strings/sv.json | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
diff --git a/src/strings/sv.json b/src/strings/sv.json
index 3cdee4cdd..68665b054 100644
--- a/src/strings/sv.json
+++ b/src/strings/sv.json
@@ -2056,5 +2056,6 @@
"TranscodingLoadError": "Kunde inte läsa in transkodningsinställningarna",
"ButtonLearnMore": "Läs mer",
"LabelImageCache": "Bildcache",
- "StorageType.Fixed": "Åtgärdat"
+ "StorageType.Fixed": "Åtgärdat",
+ "LiveTVPageLoadError": "Misslyckades med att ladda inspelningssidan"
}
From 9ad3076e39a9e388df3b1064c8f7171247392ced Mon Sep 17 00:00:00 2001
From: Gargotaire
Date: Sat, 28 Jun 2025 12:53:53 -0400
Subject: [PATCH 573/645] Translated using Weblate (Catalan) Translation:
Jellyfin/Jellyfin Web Translate-URL:
https://translate.jellyfin.org/projects/jellyfin/jellyfin-web/ca/
---
src/strings/ca.json | 86 ++++++++++++++++++++++-----------------------
1 file changed, 43 insertions(+), 43 deletions(-)
diff --git a/src/strings/ca.json b/src/strings/ca.json
index 90d06d3e6..00829c0d7 100644
--- a/src/strings/ca.json
+++ b/src/strings/ca.json
@@ -286,7 +286,7 @@
"LabelMaxStreamingBitrateHelp": "Especifica un bitrate màxim quan es faci streaming.",
"LabelMessageText": "Text del missatge",
"LabelMessageTitle": "Títol del missatge",
- "LabelMetadata": "Metadada",
+ "LabelMetadata": "Metadades",
"LabelMetadataDownloadLanguage": "Idioma preferit de descàrrega",
"LabelMetadataPath": "Ruta de metadades",
"LabelMetadataPathHelp": "Especifiqueu un directori personalitzat per a les imatges i metadades descarregades.",
@@ -337,7 +337,7 @@
"LabelSaveLocalMetadataHelp": "Desar les imatges als directoris multimèdia les ubicarà a un lloc on podran ser editades fàcilment.",
"LabelScreensaver": "Estalvi de pantalla",
"LabelSeasonNumber": "Temporada",
- "LabelSelectFolderGroups": "Agrupa automàticament el contingut de les següents carpetes en col·leccions com 'Pel·lícules', 'Música' i 'TV'",
+ "LabelSelectFolderGroups": "Agrupa automàticament el contingut dels següents directoris en vistes com 'Pel·lícules', 'Música' i 'TV'",
"LabelSelectFolderGroupsHelp": "Els directoris desmarcats seran mostrats individualment en la seva pròpia vista.",
"LabelSelectUsers": "Selecciona usuaris",
"LabelSelectVersionToInstall": "Seleccioneu la versió a instal·lar",
@@ -449,7 +449,7 @@
"OptionEquals": "Equival",
"OptionEveryday": "Cada dia",
"OptionExternallyDownloaded": "Descàrrega externa",
- "OptionHasThemeSong": "Tema musical",
+ "OptionHasThemeSong": "Sintonia",
"OptionHasThemeVideo": "Vídeo temàtic",
"OptionHideUser": "Oculta aquest usuari de les pantalles d'inici de sessió",
"OptionHideUserFromLoginHelp": "Pràctic per a comptes d'administrador ocults o privats. L'usuari necessitarà accedir manualment introduint el seu nom d'usuari i contrasenya.",
@@ -511,25 +511,25 @@
"Save": "Desa",
"Screenshots": "Captures de pantalla",
"Search": "Cerca",
- "SearchForCollectionInternetMetadata": "Cerca a internet imatges i metadades",
+ "SearchForCollectionInternetMetadata": "Cerca imatges i metadades a Internet",
"SearchForMissingMetadata": "Cerca metadades perdudes",
- "SearchForSubtitles": "Cerca Subtítols",
- "SendMessage": "Envia missatge",
+ "SearchForSubtitles": "Cerca subtítols",
+ "SendMessage": "Envia un missatge",
"SeriesCancelled": "Sèrie cancel·lada.",
- "SeriesRecordingScheduled": "Enregistrament de la sèrie programat.",
+ "SeriesRecordingScheduled": "Enregistrament programat de la sèrie.",
"SeriesSettings": "Preferències de la sèrie",
- "ServerUpdateNeeded": "El servidor necessita ser actualitzat. Per descarregar la darrera versió, visiteu {0}",
- "Settings": "Preferències",
- "SettingsSaved": "Preferències desades.",
+ "ServerUpdateNeeded": "El servidor necessita ser actualitzat. Per a descarregar la darrera versió, visiteu {0}",
+ "Settings": "Configuració",
+ "SettingsSaved": "Configuració desada.",
"Share": "Comparteix",
"ShowIndicatorsFor": "Mostra indicadors per a",
"Shuffle": "Aleatori",
"SkipEpisodesAlreadyInMyLibrary": "No enregistris episodis que ja són a la mediateca",
- "SkipEpisodesAlreadyInMyLibraryHelp": "Els episodis es compararan emprant la temporada i el nombre d'episodi quan siguin disponibles.",
- "SortName": "Nom per endreçar",
+ "SkipEpisodesAlreadyInMyLibraryHelp": "Els episodis es compararan emprant la temporada i el nombre d'episodi quan estiguin disponibles.",
+ "SortName": "Nom d'ordenació",
"Studios": "Estudis",
"Subtitles": "Subtítols",
- "Suggestions": "Suggerències",
+ "Suggestions": "Suggeriments",
"Sunday": "Diumenge",
"Sync": "Sincronitzar",
"TabAccess": "Accés",
@@ -550,11 +550,11 @@
"TabPlugins": "Complements",
"TabProfiles": "Perfils",
"TabResponses": "Respostes",
- "TabScheduledTasks": "Tasques Programades",
+ "TabScheduledTasks": "Tasques programades",
"TabServer": "Servidor",
"TabUpcoming": "Properament",
"Tags": "Etiquetes",
- "TellUsAboutYourself": "Explica'ns sobre tu",
+ "TellUsAboutYourself": "Expliqueu-nos com sou",
"TheseSettingsAffectSubtitlesOnThisDevice": "Aquestes preferències afecten els subtítols d'aquest dispositiu",
"ThisWizardWillGuideYou": "Aquest assistent us guiarà durant el procés d'instal·lació. Per començar, si us plau, entreu el nom del servidor i seleccioneu el vostre idioma preferit.",
"Thursday": "Dijous",
@@ -721,7 +721,7 @@
"DownloadsValue": "{0} descàrregues",
"DisplayMissingEpisodesWithinSeasonsHelp": "Això també s'ha d'activar per a les mediateques de TV a la configuració del servidor.",
"DisplayInOtherHomeScreenSections": "Mostra a les seccions de la pantalla d'inici, com ara a 'Contingut multimèdia afegit darrerament' i 'Continueu mirant-ho'",
- "DisplayInMyMedia": "Mostra a la pantalla inicial",
+ "DisplayInMyMedia": "Mostra a la pantalla principal",
"Display": "Pantalla",
"Disc": "Disc",
"Directors": "Directors",
@@ -765,7 +765,7 @@
"EnableColorCodedBackgrounds": "Fons codificats per colors",
"EnableBlurHashHelp": "Les imatges que encara s'estan carregant es mostraran amb un marcador únic de posició.",
"EnableBlurHash": "Habilita marcadors de posició borrosos per a imatges",
- "DropShadow": "Projecta ombra",
+ "DropShadow": "Projecció d'ombra",
"DisablePlugin": "Deshabilita",
"EnablePlugin": "Habilita",
"DirectStreamHelp1": "El flux de vídeo és compatible amb el dispositiu, però té un format d'àudio incompatible (DTS, Dolby TrueHD, etc.) o un nombre de canals d'àudio. El flux de vídeo es tornarà a empaquetar sense pèrdues sobre la marxa abans d'enviar-lo al dispositiu. Només es transcodificarà el flux d'àudio.",
@@ -923,20 +923,20 @@
"SystemDlnaProfilesHelp": "Perfils de el sistema són de només lectura. Els canvis en un perfil de sistema seran emmagatzemades a un nou perfil personalitzat.",
"SyncPlayGroupDefaultTitle": "Grup de {0}",
"SyncPlayAccessHelp": "La funció SyncPlay permet sincronitzar la reproducció amb altres dispositius. Seleccioneu el nivell d'accés a SyncPlay que té aquest usuari.",
- "SubtitleVerticalPositionHelp": "Número de línia on apareix el text. Els nombres positius indiquen dalt a baix. Els nombres negatius indiquen dalt a baix.",
- "SubtitleOffset": "Subtítol Offset",
+ "SubtitleVerticalPositionHelp": "Número de línia on apareix el text. Les xifres positives numeren de dalt a baix. Les xifres negatives numeren de baix a dalt.",
+ "SubtitleOffset": "Decalatge de subtítols",
"SubtitleDownloadersHelp": "Habilita i classifica els descarregadors de subtítols preferits per ordre de prioritat.",
"SubtitleAppearanceSettingsDisclaimer": "La configuració següent no s'aplica als subtítols gràfics esmentats anteriorment ni als subtítols ASS/SSA que incrusten els seus propis estils.",
"SubtitleAppearanceSettingsAlsoPassedToCastDevices": "Aquests ajustos s'apliquen també a qualsevol reproducció Google Cast iniciada per aquest dispositiu.",
"Subtitle": "Subtítol",
- "StopRecording": "Aturar la gravació",
- "StopPlayback": "Aturar la reproducció",
+ "StopRecording": "Atura la gravació",
+ "StopPlayback": "Atura la reproducció",
"Sports": "Esports",
"SpecialFeatures": "Característiques especials",
- "SortChannelsBy": "Ordenar els canals per",
- "SortByValue": "Ordenar per {0}",
- "Sort": "Ordenar",
- "SmartSubtitlesHelp": "Subtítols que concordin amb la preferència d'idioma seran carregats quan l'àudio està en un idioma estranger.",
+ "SortChannelsBy": "Ordena els canals per",
+ "SortByValue": "Ordena per {0}",
+ "Sort": "Ordre",
+ "SmartSubtitlesHelp": "Els subtítols que coincideixin amb l'idioma preferit es carregaran quan l'àudio estigui en un idioma estranger.",
"Smart": "Intel·ligent",
"Smaller": "Menor",
"SmallCaps": "Versaletes",
@@ -952,17 +952,17 @@
"ServerNameIsShuttingDown": "El servidor en {0} s'està tancant.",
"ServerNameIsRestarting": "El servidor en {0} s'està reiniciant.",
"SeriesYearToPresent": "{0} - Ara",
- "SeriesDisplayOrderHelp": "Ordenar episodis per data d'emissió, ordre del DVD o numeració absoluta.",
+ "SeriesDisplayOrderHelp": "Ordena els episodis per data d'emissió, ordre dels DVD o numeració absoluta.",
"Series": "Sèrie",
- "SelectServer": "seleccionar servidor",
+ "SelectServer": "Seleccioneu un servidor",
"SelectAdminUsername": "Seleccioneu un nom d'usuari per al compte d'administrador.",
"Season": "Temporada",
"SearchResults": "Resultats de la cerca",
"Screenshot": "Captura",
- "Schedule": "Programar",
+ "Schedule": "Programa",
"ScanLibrary": "S'estan escanejant les mediateques",
"ScanForNewAndUpdatedFiles": "Cerca fitxers nous i actualitzats",
- "SaveSubtitlesIntoMediaFoldersHelp": "L'emmagatzematge de subtítols al costat dels arxius de vídeo que els permetrà ser manejats amb més facilitat.",
+ "SaveSubtitlesIntoMediaFoldersHelp": "L'emmagatzematge dels subtítols amb els fitxers de vídeo permetrà gestionar-los amb més facilitat.",
"SaveSubtitlesIntoMediaFolders": "Desa els subtítols en els directoris de continguts multimèdia",
"NoSubtitlesHelp": "Els subtítols no es carregaran per defecte. Encara es poden activar de forma manual durant la reproducció.",
"Normal": "Normal",
@@ -1567,7 +1567,7 @@
"TypeOptionPluralEpisode": "Episodis",
"TypeOptionPluralBook": "Llibres",
"Track": "Pista",
- "Print": "Imprimeix",
+ "Print": "Impremta",
"PreviousChapter": "Episodi anterior",
"PlaybackErrorPlaceHolder": "Això és un marcador de posició per a suports físics que Jellyfin no pot reproduir. Inseriu el disc per a reproduir-lo.",
"OtherArtist": "Altres artistes",
@@ -1582,7 +1582,7 @@
"Cursive": "Cursiva",
"Console": "Terminal",
"ThemeVideo": "Vídeo temàtic",
- "ThemeSong": "Tema musical",
+ "ThemeSong": "Sintonia",
"Sample": "Mostra",
"Scene": "Escena",
"Interview": "Entrevista",
@@ -1593,11 +1593,11 @@
"AudioIsExternal": "El flux d'àudio és extern",
"IntelLowPowerEncHelp": "La codificació de baixa potència pot mantenir la sincronització CPU-GPU innecessària. A Linux s'han de desactivar si el microprogramari i915 HuC no està configurat.",
"PreferSystemNativeHwDecoder": "Preferiu els descodificadors de maquinari DXVA o VA-API natius del SO",
- "Typewriter": "Màquina d'escriure",
+ "Typewriter": "Mecanogràfica",
"TypeOptionPluralSeries": "Sèries",
"TypeOptionPluralBoxSet": "Col·leccions",
"TypeOptionPluralAudio": "Àudios",
- "StoryArc": "Arc de la història",
+ "StoryArc": "Arc argumental",
"ShowParentImages": "Mostra imatges de sèrie",
"SetUsingLastTracksHelp": "Intenta configurar la pista de subtítols/àudio amb la coincidència més semblant a l'últim vídeo.",
"SetUsingLastTracks": "Establiu pistes de subtítols/àudio amb l'element anterior",
@@ -1705,7 +1705,7 @@
"LabelParallelImageEncodingLimitHelp": "Nombre màxim de codificacions d'imatge que es poden executar en paral·lel. Si es deixa buit, es triarà un límit en funció del nombre de nuclis.",
"PreferEmbeddedExtrasTitlesOverFileNamesHelp": "Els extres sovint tenen els mateixos noms dels títols als que pertanyen, marqueu-ho per fer-los servir de totes maneres.",
"SaveRecordingNFO": "Desa les metadades EPG d'enregistrament a NFO",
- "SaveRecordingImages": "Guarda les imatges d'enregistrament EPG",
+ "SaveRecordingImages": "Desa les imatges d'enregistrament EPG",
"SaveRecordingImagesHelp": "Desa les imatges del proveïdor de llistes EPG amb el contingut multimèdia.",
"SubtitleBlue": "Blau",
"SubtitleCyan": "Cian",
@@ -1714,7 +1714,7 @@
"SubtitleMagenta": "Magenta",
"SubtitleRed": "Vermell",
"SubtitleYellow": "Groc",
- "StereoDownmixAlgorithmHelp": "Algoritme utilitzat per barrejar àudio multicanal a estèreo.",
+ "StereoDownmixAlgorithmHelp": "Algoritme fet servir per a barrejar l'àudio multicanal a estèreo.",
"DownloadAll": "Descarrega-ho tot",
"LabelEnableAudioVbr": "Habilita la codificació d'àudio VBR",
"LabelEnableAudioVbrHelp": "La taxa variable de bits ofereix una millor relació entre la qualitat i velocitat mitjana de bits, però en alguns casos rars pot provocar problemes de compatibilitat i de memòria intermèdia.",
@@ -1883,10 +1883,10 @@
"PlaylistPublicDescription": "Permet que aquesta llista de reproducció sigui vista per qualsevol usuari registrat.",
"HeaderLyricDownloads": "Descàrregues de lletres",
"SaveLyricsIntoMediaFolders": "Desa les lletres al directoris multimèdia",
- "SaveLyricsIntoMediaFoldersHelp": "Emmagatzemar les lletres al costat dels fitxers d'àudio permetrà gestionar-les més fàcilment.",
+ "SaveLyricsIntoMediaFoldersHelp": "Emmagatzemar les lletres amb els fitxers d'àudio permetrà gestionar-les més fàcilment.",
"LabelSelectPreferredTranscodeVideoAudioCodec": "Còdec d'àudio de transcodificació preferit en la reproducció de vídeo",
"LibraryScanFanoutConcurrencyHelp": "Nombre màxim de tasques paral·leles durant les exploracions de la mediateca. Si es deixa buit, es triarà un límit basat en el nombre de nuclis del vostre sistema. AVÍS: establir aquest número massa alt pot causar problemes amb els sistemes de fitxers de xarxa; si us dona problemes, abaixeu aquest número.",
- "SelectPreferredTranscodeVideoAudioCodecHelp": "Seleccioneu el còdec d'àudio preferit per transcodificar per al contingut de vídeo. Si el còdec preferit no és compatible, el servidor utilitzarà el següent millor còdec disponible.",
+ "SelectPreferredTranscodeVideoAudioCodecHelp": "Seleccioneu el còdec d'àudio preferit per a transcodificar per al contingut de vídeo. Si el còdec preferit no és compatible, el servidor utilitzarà el següent millor còdec disponible.",
"LibraryScanFanoutConcurrency": "Límit de tasques d'exploració paral·leles per a les mediateques",
"Penciller": "Dibuixant",
"Inker": "Entintador",
@@ -1908,7 +1908,7 @@
"PluginLoadConfigError": "S'ha produït un error en obtenir les pàgines de configuració del complement.",
"PluginLoadRepoError": "S'ha produït un error en obtenir els detalls del repositori del complement.",
"PluginUninstallError": "S'ha produït un error en desinstal·lar el complement.",
- "SelectPreferredTranscodeVideoCodecHelp": "Seleccioneu el còdec de vídeo preferit per transcodificar. Si el còdec preferit no és compatible, el servidor utilitzarà el següent millor còdec disponible.",
+ "SelectPreferredTranscodeVideoCodecHelp": "Seleccioneu el còdec de vídeo preferit per a transcodificar. Si el còdec preferit no és compatible, el servidor utilitzarà el següent millor còdec disponible.",
"PasswordMissingSaveError": "La nova contrasenya no pot ser buida.",
"PreviewLyrics": "Previsualitza lletres",
"Reset": "Restableix",
@@ -1921,7 +1921,7 @@
"HeaderUploadLyrics": "Pujada de lletres",
"LabelIsSynced": "Està sincronitzat",
"NoLyricsSearchResultsFound": "No s'han trobat lletres.",
- "SearchForLyrics": "Cercar lletres",
+ "SearchForLyrics": "Cerca lletres",
"LibraryInvalidItemIdError": "La mediateca es troba en un estat no vàlid, i no es pot editar. És possible que hàgiu trobat un error: la ruta de la base de dades no és una ruta correcta en el sistema de fitxers.",
"LabelTrickplayKeyFrameOnlyExtraction": "Només genera imatges dels fotogrames clau",
"LabelTrickplayKeyFrameOnlyExtractionHelp": "Només extreure fotogrames clau per a un processament significativament més ràpid amb una sincronització menys precisa. Si el descodificador de maquinari configurat no admet aquest mode, en el seu lloc s'utilitzarà el descodificador per programari.",
@@ -2004,12 +2004,12 @@
"Retry": "Torna a provar-ho",
"LogLoadFailure": "Error al carregar el registre. És probable que encara s'estigui escrivint en ell.",
"MetadataNfoLoadError": "No s'han pogut carregar les configuracions de metadades NFO",
- "SettingsPageLoadError": "No s'ha pogut carregar la pàgina de configuracions",
+ "SettingsPageLoadError": "No s'ha pogut carregar la pàgina de configuració",
"DisplayLoadError": "S'ha produït un error en carregar les dades de configuració de la pantalla.",
"HeaderPageNotFound": "Pàgina no trobada",
"PageNotFound": "Aquesta no és la pàgina que esteu cercant.",
"MetadataImagesLoadError": "No s'han pogut carregar les configuracions de metadades",
- "StreamCountExceedsLimit": "El número de flux excedeix el límit",
+ "StreamCountExceedsLimit": "El nombre de fluxos excedeix el límit",
"RetryWithGlobalSearch": "Reintenta amb una cerca global",
"LabelGroupShowsIntoCollections": "Agrupa sèries en col·leccions",
"LabelGroupShowsIntoCollectionsHelp": "Les sèries que estiguin dins d'una col·lecció es mostraran com un únic element agrupat quan es mostrin les llistes de sèries.",
@@ -2044,13 +2044,13 @@
"MessageBackupInProgress": "Còpia de seguretat en progrés",
"MessageRestoreInProgress": "Restauració en procés",
"Success": "Èxit",
- "HeaderBackups": "Cópies de seguretat",
+ "HeaderBackups": "Còpies de seguretat",
"LabelProgramData": "Dades del programa",
"MessageRestoreSuccess": "Restauració completada exitosament",
"StorageType.Fixed": "Arreglat",
"StorageType.Network": "Xarxa",
"StorageType.Ram": "RAM",
- "StorageType.Removable": "Retirable",
+ "StorageType.Removable": "Extraïble",
"StorageType.Unknown": "Desconegut",
"PluginsLoadError": "S'ha produït un error en carregar els complements.",
"ButtonLearnMore": "Saber més",
From 0987d39eb3abf06f229cc8b5ee74834671edd945 Mon Sep 17 00:00:00 2001
From: Gargotaire
Date: Sat, 28 Jun 2025 15:24:45 -0400
Subject: [PATCH 574/645] Translated using Weblate (Catalan) Translation:
Jellyfin/Jellyfin Web Translate-URL:
https://translate.jellyfin.org/projects/jellyfin/jellyfin-web/ca/
---
src/strings/ca.json | 102 ++++++++++++++++++++++----------------------
1 file changed, 51 insertions(+), 51 deletions(-)
diff --git a/src/strings/ca.json b/src/strings/ca.json
index 00829c0d7..9e9497968 100644
--- a/src/strings/ca.json
+++ b/src/strings/ca.json
@@ -337,7 +337,7 @@
"LabelSaveLocalMetadataHelp": "Desar les imatges als directoris multimèdia les ubicarà a un lloc on podran ser editades fàcilment.",
"LabelScreensaver": "Estalvi de pantalla",
"LabelSeasonNumber": "Temporada",
- "LabelSelectFolderGroups": "Agrupa automàticament el contingut dels següents directoris en vistes com 'Pel·lícules', 'Música' i 'TV'",
+ "LabelSelectFolderGroups": "Agrupa automàticament el contingut dels següents directoris en vistes com 'Pel·lícules', 'Música' i 'Televisió'",
"LabelSelectFolderGroupsHelp": "Els directoris desmarcats seran mostrats individualment en la seva pròpia vista.",
"LabelSelectUsers": "Selecciona usuaris",
"LabelSelectVersionToInstall": "Seleccioneu la versió a instal·lar",
@@ -422,11 +422,11 @@
"OnlyForcedSubtitlesHelp": "Només es carregaran aquells subtítols marcats com a forçats.",
"OptionAdminUsers": "Administradors",
"OptionAllUsers": "Tots els usuaris",
- "OptionAllowBrowsingLiveTv": "Permet l'accés a TV en directe",
+ "OptionAllowBrowsingLiveTv": "Permet l'accés a la televisió en directe",
"OptionAllowContentDownloading": "Permetre descàrrega de mitjans",
"OptionAllowLinkSharing": "Permet compartir a les xarxes socials",
"OptionAllowLinkSharingHelp": "Només es compartiran les pàgines web contenint informació multimèdia. En cap cas es comparteixen fitxers públicament. Les comparticions estan limitades per temps i expiraran després de {0} dies.",
- "OptionAllowManageLiveTv": "Permet gestionar l'enregistrament de TV en directe",
+ "OptionAllowManageLiveTv": "Permet gestionar l'enregistrament de la televisió en directe",
"OptionAllowMediaPlayback": "Permet la reproducció multimèdia",
"OptionAllowRemoteControlOthers": "Permet el control remot d'altres usuaris",
"OptionAllowRemoteSharedDevices": "Permet el control remot dels dispositius compartits",
@@ -445,7 +445,7 @@
"OptionEnableAccessFromAllDevices": "Habilita l'accés des de tots els dispositius",
"OptionEnableAccessToAllChannels": "Habilita l'accés a tots els canals",
"OptionEnableAccessToAllLibraries": "Habilita l'accés a totes les mediateques",
- "OptionEnableExternalContentInSuggestionsHelp": "Permet incloure tràilers d'internet i programes de TV en directe entre el contingut suggerit.",
+ "OptionEnableExternalContentInSuggestionsHelp": "Permet incloure tràilers d'internet i programes de televisió en directe entre el contingut suggerit.",
"OptionEquals": "Equival",
"OptionEveryday": "Cada dia",
"OptionExternallyDownloaded": "Descàrrega externa",
@@ -542,7 +542,7 @@
"TabLatest": "Novetats",
"TabMusic": "Música",
"TabMyPlugins": "Els meus complements",
- "TabNetworks": "Cadenes de TV",
+ "TabNetworks": "Cadenes de televisió",
"TabNfoSettings": "Preferències NFO",
"TabNotifications": "Notificacions",
"TabOther": "Altres",
@@ -556,7 +556,7 @@
"Tags": "Etiquetes",
"TellUsAboutYourself": "Expliqueu-nos com sou",
"TheseSettingsAffectSubtitlesOnThisDevice": "Aquestes preferències afecten els subtítols d'aquest dispositiu",
- "ThisWizardWillGuideYou": "Aquest assistent us guiarà durant el procés d'instal·lació. Per començar, si us plau, entreu el nom del servidor i seleccioneu el vostre idioma preferit.",
+ "ThisWizardWillGuideYou": "Aquest assistent us guiarà durant el procés d'instal·lació. Per començar, entreu el nom del servidor i seleccioneu el vostre idioma preferit.",
"Thursday": "Dijous",
"TitlePlayback": "Reproducció",
"TrackCount": "{0} pistes",
@@ -566,17 +566,17 @@
"Unmute": "De-silencia",
"Unrated": "Sense valorar",
"Up": "Amunt",
- "UserProfilesIntro": "El Jellyfin inclou suport per a perfils d'usuari amb configuració de pantalla granular, estat de reproducció i controls parentals.",
+ "UserProfilesIntro": "Jellyfin inclou suport per a perfils d'usuari amb configuració de pantalla granular, estat de reproducció i controls parentals.",
"ValueEpisodeCount": "{0} episodis",
- "ValueMusicVideoCount": "{0} vídeos musicals",
- "ValueOneMusicVideo": "1 vídeo musical",
+ "ValueMusicVideoCount": "{0} videoclips",
+ "ValueOneMusicVideo": "1 videoclip",
"ValueSpecialEpisodeName": "Especial - {0}",
"ViewAlbum": "Mostra'n l'àlbum",
- "ViewPlaybackInfo": "Veure informació de reproducció",
+ "ViewPlaybackInfo": "Mostra la informació de reproducció",
"Watched": "Vist",
"Wednesday": "Dimecres",
- "WelcomeToProject": "Et donem la benvinguda a Jellyfin!",
- "WizardCompleted": "Això és tot el que necessitem per ara. Jellyfin ha començat a recollir informació de la vostra mediateca. Mireu-vos alguna de les nostres apps i llavors feu clic a Finalitzar per veure el Tauler de control.",
+ "WelcomeToProject": "Us donem la benvinguda a Jellyfin!",
+ "WizardCompleted": "Això és tot el que necessitem per ara. Jellyfin ha començat a recollir informació de la vostra mediateca. Mireu-vos alguna de les nostres apps i llavors feu clic a Finalitza per veure el Tauler de control.",
"Writer": "Escriptor",
"XmlTvKidsCategoriesHelp": "Els programes amb aquestes categories es mostraran com a programes infantils. Separa'n varis emprant '|'.",
"XmlTvMovieCategoriesHelp": "Els programes amb aquestes categories es mostraran com a pel·lícules. Separa'n varis emprant '|'.",
@@ -645,7 +645,7 @@
"BurnSubtitlesHelp": "Determina si el servidor hauria de gravar els subtítols. Evitant això millorarà molt el rendiment. Selecciona Automàtic per gravar formats basats en imatges (VobSub, PGS, SUB, IDX) i certs subtítols ASS o SSA.",
"Browse": "Navega",
"BoxRear": "Capsa (darrere)",
- "BoxSet": "Col·lecció",
+ "BoxSet": "Cofre",
"Box": "Capsa",
"BookLibraryHelp": "Els àudiollibres i llibres de text funcionen. Reviseu la {0} guia de denominació de llibres {1}.",
"Backdrops": "Fons",
@@ -695,7 +695,7 @@
"EveryNDays": "Cada {0} dies",
"ErrorSavingTvProvider": "S'ha produït un error en desar el proveïdor de televisió. Assegureu-vos que sigui accessible i torneu-ho a provar.",
"ErrorStartHourGreaterThanEnd": "L'hora de finalització ha de ser superior a l'hora d'inici.",
- "ErrorGettingTvLineups": "S'ha produït un error en descarregar les programacions de TV. Comproveu que la vostra informació sigui correcta i torneu-ho a provar.",
+ "ErrorGettingTvLineups": "S'ha produït un error en descarregar les programacions de televisió. Comproveu que la vostra informació sigui correcta i torneu-ho a provar.",
"ErrorDeletingItem": "S'ha produït un error en suprimir l'element del servidor. Comproveu que Jellyfin tingui accés d’escriptura a la carpeta multimèdia i torneu-ho a provar.",
"ErrorAddingXmlTvFile": "S'ha produït un error en accedir al fitxer XMLTV. Assegureu-vos que el fitxer existeix i torneu-ho a provar.",
"ErrorAddingTunerDevice": "S'ha produït un error en afegir el dispositiu sintonitzador. Assegureu-vos que sigui accessible i torneu-ho a provar.",
@@ -719,7 +719,7 @@
"EasyPasswordHelp": "El vostre codi Easy PIN s'utilitza per accedir fora de línia als clients compatibles i també es pot utilitzar per iniciar la sessió a la xarxa fàcilment.",
"DrmChannelsNotImported": "Els canals amb DRM no s’importaran.",
"DownloadsValue": "{0} descàrregues",
- "DisplayMissingEpisodesWithinSeasonsHelp": "Això també s'ha d'activar per a les mediateques de TV a la configuració del servidor.",
+ "DisplayMissingEpisodesWithinSeasonsHelp": "Això també s'ha d'activar per a les mediateques de televisió a la configuració del servidor.",
"DisplayInOtherHomeScreenSections": "Mostra a les seccions de la pantalla d'inici, com ara a 'Contingut multimèdia afegit darrerament' i 'Continueu mirant-ho'",
"DisplayInMyMedia": "Mostra a la pantalla principal",
"Display": "Pantalla",
@@ -828,7 +828,7 @@
"SubtitleCodecNotSupported": "El còdec de subtítols no s'admet",
"ContainerNotSupported": "El contenidor no està suportat",
"AudioCodecNotSupported": "El còdec d'àudio no és compatible",
- "EnableGamepadHelp": "Detecta l'entrada de qualsevol comandament connectat. (Requereix el mode de visualització \"TV\")",
+ "EnableGamepadHelp": "Detecta l'entrada de qualsevol comandament connectat. (Requereix el mode de visualització \"Televisió\")",
"LabelEnableGamepad": "Habilita el comandament de videojocs",
"Controls": "Controls",
"AllowVppTonemappingHelp": "Mapeig de to basat en controladors Intel complets. Actualment només funciona amb cert maquinari amb vídeos HDR10. Això té una prioritat més alta en comparació amb una altra implementació d'OpenCL.",
@@ -854,32 +854,32 @@
"LabelPlaybackInfo": "Informació de reproducció",
"RemuxHelp2": "Remux utilitza molt poca potència de processament amb una qualitat multimèdia sense pèrdues.",
"RemuxHelp1": "El contingut multimèdia es troba en un contenidor de fitxers incompatible (MKV, AVI, WMV, etc.), però tant el flux de vídeo com el flux d'àudio són compatibles amb el dispositiu. El contingut multimèdia es reempaquetarà sobre la marxa i sense pèrdues, abans d'enviar-se al dispositiu.",
- "AspectRatioFill": "Estirar",
- "AspectRatioCover": "Zoom",
- "EnableFallbackFontHelp": "Habilitar fonts alternes d'encàrrec. Això es pot evitar el problema de renderitzat de subtítols incorrectes.",
- "EnableFallbackFont": "Habilitar fonts de replegament",
- "LabelFallbackFontPathHelp": "Aquestes fonts sont utilitzades per alguns clients per generar subtítols. Si us plau, consulteu la documentació per a més informació.",
- "LabelFallbackFontPath": "Replegament ruta de la carpeta de la font",
- "HeaderSelectFallbackFontPathHelp": "Examineu o introduïu la ruta de la carpeta de fonts que s'utilitzaran per renderitzar els subtítols ASS/SSA.",
- "HeaderSelectFallbackFontPath": "Seleccioneu la ruta de la carpeta de fonts",
+ "AspectRatioFill": "Estira",
+ "AspectRatioCover": "Escala",
+ "EnableFallbackFontHelp": "Habilita tipus de lletra alternatives personalitzades. Això pot evitar el problema de renderitzat incorrecte de subtítols.",
+ "EnableFallbackFont": "Habilita els tipus de lletra de contingència",
+ "LabelFallbackFontPathHelp": "Aquests tipus de lletra són fetes servir per a alguns clients per a generar subtítols. Consulteu la documentació per a més informació.",
+ "LabelFallbackFontPath": "Ruta del directori de tipus de lletres de contingència",
+ "HeaderSelectFallbackFontPathHelp": "Examineu o introduïu la ruta del directori de tipus de lletres que s'utilitzaran per renderitzar els subtítols ASS/SSA.",
+ "HeaderSelectFallbackFontPath": "Seleccioneu la ruta de la ruta de tipus de lletres",
"Yesterday": "Ahir",
- "Yes": "Si",
+ "Yes": "Sí",
"Yadif": "Yet Another DeInterlacing Filter (YADIF)",
- "XmlTvPathHelp": "Una ruta a un arxiu XMLTV. Jellyfin llegirà aquesta imatge i comprovar periòdicament si hi ha actualitzacions. Vostè és responsable de crear i actualitzar l'arxiu.",
+ "XmlTvPathHelp": "Una ruta a un arxiu XMLTV. Jellyfin llegirà aquest fitxer i comprovarà periòdicament si hi ha actualitzacions. Sou el responsable de crear i actualitzar l'arxiu.",
"XmlDocumentAttributeListHelp": "Aquests atributs s'apliquen a l'element arrel de cada resposta XML.",
"Writers": "Escriptors",
- "WriteAccessRequired": "El Jellyfin necessita accés d'escriptura a aquesta carpeta. Garanteix l'accés d'escriptura i torna-ho a intentar.",
+ "WriteAccessRequired": "Jellyfin necessita accés d'escriptura a aquest directori. Garantiu l'accés d'escriptura i torneu-ho a intentar.",
"Whitelist": "Llista blanca",
- "WeeklyAt": "{0} S a {1}",
+ "WeeklyAt": "Tots els {0} a {1}",
"ViewAlbumArtist": "Mostra l'artista de l'àlbum",
- "VideoAudio": "Vídeo Audio",
+ "VideoAudio": "Pista d'àudio",
"Video": "Vídeo",
"Vertical": "Vertical",
"ValueVideoCodec": "Vídeo Codec: {0}",
"ValueTimeLimitSingleHour": "Límit de temps: 1 hora",
"ValueTimeLimitMultiHour": "Termini: {0} hores",
"ValueSongCount": "{0} cançons",
- "ValueSeriesCount": "{0} sèrie",
+ "ValueSeriesCount": "{0} sèries",
"ValueSeconds": "{0} segons",
"ValueOneSong": "1 cançó",
"ValueOneSeries": "1 sèrie",
@@ -894,23 +894,23 @@
"ValueCodec": "Codec: {0}",
"ValueAudioCodec": "Audio Codec: {0}",
"ValueAlbumCount": "{0} àlbums",
- "UserAgentHelp": "Subministrar una capçalera HTTP 'User-Agent' personalitzat.",
+ "UserAgentHelp": "Subministrar una capçalera HTTP 'User-Agent' personalitzada.",
"UseEpisodeImagesInNextUpHelp": "Les seccions 'A continuació' i 'Continueu mirant' utilitzaran imatges episodi com miniatures en lloc de la imatge principal de la sèrie.",
- "UseEpisodeImagesInNextUp": "Utilitza imatges d'episodi en les seccions 'A continuació' i 'Continueu veient'",
- "UseDoubleRateDeinterlacingHelp": "Aquesta configuració utilitza el tipus de camp quan el desentrellaçat, sovint referit com el desentrellaçat Bob, el que duplica la taxa de fotogrames de vídeo per proporcionar moviment complet com el que es veu quan es visualitza vídeo entrellaçat en un televisor.",
- "UseDoubleRateDeinterlacing": "El doble de la velocitat de fotogrames quan el desentrellaçat",
- "Upload": "Pujar",
- "UnsupportedPlayback": "Jellyfin no pot desxifrar el contingut protegit per DRM, però tot el contingut serà tractat independentment, incloent títols protegits. Alguns fitxers poden aparèixer a causa de completament negre xifrat o altres característiques no compatibles, com ara títols interactius.",
+ "UseEpisodeImagesInNextUp": "Fes servir imatges d'episodis en les seccions 'A continuació' i 'Continueu mirant'",
+ "UseDoubleRateDeinterlacingHelp": "Aquesta configuració fa servir la velocitat de camp quan en desentrellaçar, sovint referit com el desentrellaçat bob, que duplica la taxa de fotogrames de vídeo per a proporcionar un moviment continu com el que es veu en mirar un vídeo entrellaçat en un televisor.",
+ "UseDoubleRateDeinterlacing": "El doble de fotogrames per segon en entrellaçar",
+ "Upload": "Puja",
+ "UnsupportedPlayback": "Jellyfin no pot desxifrar el contingut protegit per DRM, però tot el contingut serà tractat independentment, incloent títols protegits. Alguns fitxers poden aparèixer completament negres degut al xifrat o altres característiques no compatibles, com ara títols interactius.",
"Unplayed": "No reproduït",
"Uniform": "Uniforme",
- "TvLibraryHelp": "Revisar el {0} de TV guia de noms {1}.",
- "TV": "TV",
+ "TvLibraryHelp": "Revisa la {0}guia de noms de la programació de televisió{1}.",
+ "TV": "Televisió",
"Transcoding": "Transcodificació",
"TonemappingRangeHelp": "Seleccioneu el rang de color de sortida. Auto és el mateix que el rang d'entrada.",
- "TonemappingAlgorithmHelp": "Mapeig de tons pot ser afinat. Si vostè no està familiaritzat amb aquestes opcions, simplement mantingui el valor per omissió. El valor recomanat és 'BT.2390'.",
- "TitleHostingSettings": "Ajustaments de Hosting",
- "TitleHardwareAcceleration": "Acceleració per hardware",
- "ThumbCard": "Targeta miniatura",
+ "TonemappingAlgorithmHelp": "El mapeig de tons es pot afinar amb precisió. Si no esteu familiaritzat amb aquestes opcions, millor que mantingueu el valor predeterminat. El valor recomanat és 'BT.2390'.",
+ "TitleHostingSettings": "Configuració d'allotjament",
+ "TitleHardwareAcceleration": "Acceleració per maquinari",
+ "ThumbCard": "Targeta de miniatura",
"Thumb": "Miniatura",
"ThemeVideos": "Vídeos temàtics",
"ThemeSongs": "Sintonies",
@@ -1066,7 +1066,7 @@
"ManageRecording": "Maneig d'enregistrament",
"ManageLibrary": "Gestió de la mediateca",
"Logo": "Logotip",
- "LiveTV": "TV en directe",
+ "LiveTV": "Televisió en directe",
"LiveBroadcasts": "Emissions en directe",
"ListPaging": "{0} - {1} de {2}",
"List": "Llista",
@@ -1099,7 +1099,7 @@
"LabelUDPPortRange": "UDP Comunicacions de Camp",
"LabelTypeText": "Text",
"LabelTypeMetadataDownloaders": "Descarregadors de metadades ({0})",
- "LabelTVHomeScreen": "Pantalla d'inici en mode TV",
+ "LabelTVHomeScreen": "Pantalla d'inici en mode televisió",
"LabelTunerType": "Tipus de sintonitzador",
"LabelTunerIpAddress": "Adreça IP del sintonitzador",
"LabelTranscodingThreadCountHelp": "Seleccioneu el nombre màxim de fils que pot utilitzar la transcodificació. La reducció del nombre de fils disminuirà l'ús de la CPU, però es possible que no transcodifiqui prou ràpid per a una reproducció fluïda.",
@@ -1525,12 +1525,12 @@
"HeaderMoreLikeThis": "Similars",
"HeaderMedia": "Contingut multimèdia",
"HeaderLoginFailure": "Error en l'inici de sessió",
- "HeaderLiveTvTunerSetup": "Configuració del sintonitzador de TV",
+ "HeaderLiveTvTunerSetup": "Configuració del sintonitzador de televisió",
"HeaderKodiMetadataHelp": "Per activar o desactivar les metadades NFO, editeu una mediateca i busqueu la secció d'Estalviadors de metadades.",
"HeaderImageOptions": "Opcions de les imatges",
"HeaderIdentifyItemHelp": "Introduïu un o més criteris de cerca. Elimineu criteris per a augmentar els resultats de cerca.",
"HeaderHttpsSettings": "Configuració de HTTPS",
- "HeaderGuideProviders": "Proveïdors de dades de la guia de TV",
+ "HeaderGuideProviders": "Proveïdors de dades de la guia de televisió",
"HeaderForKids": "Per als infants",
"HeaderFetcherSettings": "Configuració del capturador",
"HeaderError": "Error",
@@ -1560,7 +1560,7 @@
"ContainerBitrateExceedsLimit": "El còdec de vídeo excedeix el límit",
"TypeOptionPluralVideo": "Vídeos",
"TypeOptionPluralSeason": "Temporades",
- "TypeOptionPluralMusicVideo": "Vídeos Musicals",
+ "TypeOptionPluralMusicVideo": "Videoclips",
"TypeOptionPluralMusicArtist": "Artistes musicals",
"TypeOptionPluralMusicAlbum": "Àlbums de música",
"TypeOptionPluralMovie": "Pel·lícules",
@@ -1595,7 +1595,7 @@
"PreferSystemNativeHwDecoder": "Preferiu els descodificadors de maquinari DXVA o VA-API natius del SO",
"Typewriter": "Mecanogràfica",
"TypeOptionPluralSeries": "Sèries",
- "TypeOptionPluralBoxSet": "Col·leccions",
+ "TypeOptionPluralBoxSet": "Cofres",
"TypeOptionPluralAudio": "Àudios",
"StoryArc": "Arc argumental",
"ShowParentImages": "Mostra imatges de sèrie",
@@ -1863,7 +1863,7 @@
"DeleteLyrics": "Elimina les lletres",
"HeaderNoLyrics": "No s'ha trobat cap lletra",
"Lyrics": "Lletres",
- "ViewLyrics": "Veure lletres",
+ "ViewLyrics": "Mostra les lletres",
"SavePassword": "Desa la contrasenya",
"EnableDts": "Habilita DTS (DCA)",
"PlaylistError.AddFailed": "S'ha produït un error en agregar a la llista de reproducció",
@@ -1979,9 +1979,9 @@
"LabelMediaSegmentsType": "{0} Segments",
"PreferNonstandardArtistsTag": "Prioritza l'etiqueta ARTISTS si es troba disponible",
"ReplaceTrickplayImages": "Substitueix les imatges de previsualització existents",
- "UseCustomTagDelimiters": "Utilitza delimitador d'etiquetes personalitzat",
+ "UseCustomTagDelimiters": "Fes servir un delimitador personalitzat d'etiquetes",
"PreferNonstandardArtistsTagHelp": "Fes servir l'etiqueta no estàndard ARTISTS en lloc de l'etiqueta ARTIST quan estigui disponible.",
- "UseCustomTagDelimitersHelp": "Separa les etiquetes artista/gènere amb caràcters personalitzats.",
+ "UseCustomTagDelimitersHelp": "Separa les etiquetes d'artista/gènere amb caràcters personalitzats.",
"RenderPgsSubtitle": "Renderitzat experimental de subtítols PGS",
"VideoCodecTagNotSupported": "L'etiqueta del còdec de vídeo no és compatible",
"RenderPgsSubtitleHelp": "Determina si el client ha de renderitzar els subtítols PGS enlloc de fer servir els subtítols incrustats. Això pot evitar la transcodificació de part del servidor a canvi del rendiment de renderitzat de part del client.",
From a0091546f9fba6760c759df3d6065898935ee7f6 Mon Sep 17 00:00:00 2001
From: Acrotos
Date: Sat, 28 Jun 2025 16:07:52 -0400
Subject: [PATCH 575/645] Translated using Weblate (Romanian) Translation:
Jellyfin/Jellyfin Web Translate-URL:
https://translate.jellyfin.org/projects/jellyfin/jellyfin-web/ro/
---
src/strings/ro.json | 9 +++++----
1 file changed, 5 insertions(+), 4 deletions(-)
diff --git a/src/strings/ro.json b/src/strings/ro.json
index 28812a125..25afc0e5c 100644
--- a/src/strings/ro.json
+++ b/src/strings/ro.json
@@ -244,7 +244,7 @@
"ButtonOpen": "Deschide",
"ButtonParentalControl": "Control parental",
"ButtonPause": "Pauză",
- "ConfirmEndPlayerSession": "Dorești să oprești serverul Jellyfin pe {0}?",
+ "ConfirmEndPlayerSession": "Doriti sa inchideti Jellyfin pe {0}?",
"Connect": "Conectare",
"ContinueWatching": "Continuă vizionarea",
"DatePlayed": "Data redării",
@@ -897,7 +897,7 @@
"MessageDeleteTaskTrigger": "Sigur doriți să ștergeți acest declanșator de activitate?",
"MessageCreateAccountAt": "Crează un cont la {0}",
"MessageContactAdminToResetPassword": "Vă rugăm să contactați administratorul de sistem pentru a vă reseta parola.",
- "MessageConfirmShutdown": "Sigur doriți să opriți serverul?",
+ "MessageConfirmShutdown": "Sigur dorești sa inchizi serverul?",
"MessageConfirmRevokeApiKey": "Sigur doriți să revocați această cheie API? Conexiunea aplicației la acest server va fi terminată brusc.",
"MessageConfirmRestart": "Sigur doriți să restartați Jellyfin?",
"MessageConfirmRemoveMediaLocation": "Sigur doriți să eliminați această locație?",
@@ -1381,7 +1381,7 @@
"Authorize": "Autorizează",
"LabelMaxMuxingQueueSizeHelp": "Numărul maxim de pachete care pot fi tamponate în așteptarea inițializării tuturor fluxurilor. Încercați să o măriți dacă întâmpinați încă o eroare „Prea multe pachete tamponate pentru fluxul de ieșire” în jurnalele FFmpeg. Valoarea recomandată este 2048.",
"LabelMaxMuxingQueueSize": "Dimensiunea maximă a cozii de mux",
- "LabelTonemappingParamHelp": "Reglați algoritmul de mapare a tonurilor. Valorile recomandate și implicite sunt NaN. În general, lăsați-l necompletat.",
+ "LabelTonemappingParamHelp": "Ajustați algoritmul de mapare a tonurilor. In general, lasati-l gol.",
"LabelTonemappingParam": "Parametrii mapării tonurilor",
"LabelTonemappingPeakHelp": "În schimb, înlocuiți valoarea metadatelor încorporate pentru semnalul de intrare cu această valoare de vârf. Valoarea implicită este 100 (1000 nit).",
"LabelTonemappingPeak": "Vârful mapării tonurilor",
@@ -2061,5 +2061,6 @@
"Create": "Crează",
"BackupsPageLoadError": "A eșuat să încarce pagina de copii de rezervă",
"ButtonCreateBackup": "Crează copie de rezervă",
- "LabelImageCache": "Cache imagine"
+ "LabelImageCache": "Cache imagine",
+ "LiveTVPageLoadError": "Nu s-a putut incarca pagina de înregistrari"
}
From 2508a3e45bdd34096310af7647a1ddeaf2a75da4 Mon Sep 17 00:00:00 2001
From: Gargotaire
Date: Sat, 28 Jun 2025 17:28:27 -0400
Subject: [PATCH 576/645] Translated using Weblate (Catalan) Translation:
Jellyfin/Jellyfin Web Translate-URL:
https://translate.jellyfin.org/projects/jellyfin/jellyfin-web/ca/
---
src/strings/ca.json | 42 +++++++++++++++++++++---------------------
1 file changed, 21 insertions(+), 21 deletions(-)
diff --git a/src/strings/ca.json b/src/strings/ca.json
index 9e9497968..384fa96da 100644
--- a/src/strings/ca.json
+++ b/src/strings/ca.json
@@ -738,9 +738,9 @@
"ButtonActivate": "Activa",
"Authorize": "Autoritza",
"LabelServerName": "Nom del servidor",
- "MessageChromecastConnectionError": "El seu receptor de Google Cast no pot contactar amb el servidor de Jellyfin. Comproveu la connexió i torneu-ho a provar.",
- "MessagePlaybackError": "Hi ha hagut un problema reproduïnt aquest arxiu al teu receptor de Google Cast.",
- "EnableEnhancedNvdecDecoder": "Activa el decodificador NVDEC millorat",
+ "MessageChromecastConnectionError": "El receptor de Google Cast no pot contactar amb el servidor de Jellyfin. Comproveu la connexió i torneu-ho a provar.",
+ "MessagePlaybackError": "S'ha produït un error en reproduir aquest fitxer en el receptor de Google Cast.",
+ "EnableEnhancedNvdecDecoder": "Habilita el descodificador NVDEC millorat",
"DefaultSubtitlesHelp": "Els subtítols es carreguen en funció de les marques forçades i per defecte de les metadades incrustades. Les preferències d'idioma es consideren quan hi ha diverses opcions disponibles.",
"DeathDateValue": "Mort: {0}",
"DashboardVersionNumber": "Versió: {0}",
@@ -753,7 +753,7 @@
"ButtonPlayer": "Reproductor",
"ButtonCast": "Transmet al dispositiu",
"ApiKeysCaption": "Llista de les claus API activades actualment",
- "AllowTonemappingHelp": "El mapeig de tons pot transformar el rang dinàmic d'un vídeo d'HDR a SDR mantenint els detalls i els colors de la imatge, que són informació molt important per representar l'escena original. Actualment només funciona amb vídeos 10 bit HDR10, HLG o DoVi. Això requereix el temps d'execució GPGPU corresponent.",
+ "AllowTonemappingHelp": "El mapatge de tons pot transformar el rang dinàmic d'un vídeo d'HDR a SDR mantenint els detalls i els colors de la imatge, que són informació molt important per representar l'escena original. Actualment només funciona amb vídeos 10 bit HDR10, HLG o DoVi. Això requereix el temps d'execució GPGPU corresponent.",
"ErrorPleaseSelectLineup": "Trieu una alineació i torneu-ho a provar. Si no hi ha cap formació disponible, comproveu que el vostre nom d’usuari, contrasenya i codi postal siguin correctes.",
"ErrorAddingListingsToSchedulesDirect": "S'ha produït un error en afegir la programació al vostre compte de Schedules Direct. Schedules Direct només permet un nombre limitat de programacions per compte. És possible que hàgiu d’iniciar sessió al lloc web de Schedules Direct i eliminar altres llistats del vostre compte abans de continuar.",
"EnableThemeVideosHelp": "Reprodueix vídeos temàtics en segon pla mentre es navega per la mediateca.",
@@ -831,28 +831,28 @@
"EnableGamepadHelp": "Detecta l'entrada de qualsevol comandament connectat. (Requereix el mode de visualització \"Televisió\")",
"LabelEnableGamepad": "Habilita el comandament de videojocs",
"Controls": "Controls",
- "AllowVppTonemappingHelp": "Mapeig de to basat en controladors Intel complets. Actualment només funciona amb cert maquinari amb vídeos HDR10. Això té una prioritat més alta en comparació amb una altra implementació d'OpenCL.",
- "EnableVppTonemapping": "Habilitar l'assignació de to VPP",
+ "AllowVppTonemappingHelp": "Mapatge de to basat en controladors Intel complets. Actualment només funciona amb cert maquinari amb vídeos HDR10. Això té una prioritat més alta en comparació amb una altra implementació d'OpenCL.",
+ "EnableVppTonemapping": "Habilita el mapatge VPP de to",
"YoutubeDenied": "El vídeo sol·licitat no es pot reproduir en reproductors integrats.",
- "YoutubeNotFound": "Vídeo no trobat.",
- "YoutubePlaybackError": "vídeo sol·licitat no es pot reproduir.",
+ "YoutubeNotFound": "No s'ha pogut trobar el vídeo.",
+ "YoutubePlaybackError": "No s'ha pogut reproduir el vídeo sol·licitat.",
"YoutubeBadRequest": "Sol·licitud errònia.",
"LabelSelectStereo": "Estèreo",
"LabelSelectMono": "Mono",
"LabelSelectAudioChannels": "Canals",
"LabelAllowedAudioChannels": "Màxim permès de canals d'àudio",
- "AllowHevcEncoding": "Permetre la codificació en format HEVC",
- "PreferFmp4HlsContainerHelp": "Prefereixen utilitzar FMP4 com el contenidor predeterminat per HLS, de manera que és possible corrent directe contingut HEVC i AV1 en els dispositius compatibles.",
- "PreferFmp4HlsContainer": "Prefereixo el contenidor multimèdia fMP4-HLS",
- "LabelSyncPlayInfo": "Informació SyncPlay",
+ "AllowHevcEncoding": "Permet la codificació en format HEVC",
+ "PreferFmp4HlsContainerHelp": "Fes servir FMP4 com el contenidor predeterminat per a HLS, fent possible transmetre el contingut directe HEVC i AV1 en els dispositius compatibles.",
+ "PreferFmp4HlsContainer": "Prioritza el contenidor multimèdia fMP4-HLS",
+ "LabelSyncPlayInfo": "Informació de SyncPlay",
"LabelOriginalMediaInfo": "Informació original del contingut multimèdia",
"LabelRemuxingInfo": "informació remuxing",
- "LabelDirectStreamingInfo": "Transmissió d'Informació Directa",
+ "LabelDirectStreamingInfo": "Informació de transmissió directa",
"LabelTranscodingInfo": "Informació de transcodificació",
"LabelVideoInfo": "Sobre el vídeo",
"LabelAudioInfo": "Informació d'àudio",
"LabelPlaybackInfo": "Informació de reproducció",
- "RemuxHelp2": "Remux utilitza molt poca potència de processament amb una qualitat multimèdia sense pèrdues.",
+ "RemuxHelp2": "Remux fa servir molt poca potència de processament amb una qualitat multimèdia sense pèrdues.",
"RemuxHelp1": "El contingut multimèdia es troba en un contenidor de fitxers incompatible (MKV, AVI, WMV, etc.), però tant el flux de vídeo com el flux d'àudio són compatibles amb el dispositiu. El contingut multimèdia es reempaquetarà sobre la marxa i sense pèrdues, abans d'enviar-se al dispositiu.",
"AspectRatioFill": "Estira",
"AspectRatioCover": "Escala",
@@ -907,7 +907,7 @@
"TV": "Televisió",
"Transcoding": "Transcodificació",
"TonemappingRangeHelp": "Seleccioneu el rang de color de sortida. Auto és el mateix que el rang d'entrada.",
- "TonemappingAlgorithmHelp": "El mapeig de tons es pot afinar amb precisió. Si no esteu familiaritzat amb aquestes opcions, millor que mantingueu el valor predeterminat. El valor recomanat és 'BT.2390'.",
+ "TonemappingAlgorithmHelp": "El mapatge de tons es pot afinar amb precisió. Si no esteu familiaritzat amb aquestes opcions, millor que mantingueu el valor predeterminat. El valor recomanat és 'BT.2390'.",
"TitleHostingSettings": "Configuració d'allotjament",
"TitleHardwareAcceleration": "Acceleració per maquinari",
"ThumbCard": "Targeta de miniatura",
@@ -1113,11 +1113,11 @@
"LabelTonemappingRange": "Gamma de mapa de tons",
"LabelTonemappingPeakHelp": "Anul·la el valor de metadades incrustat pel senyal d'entrada amb aquest valor com a pic. El valor per defecte és 100 (1000 nits).",
"LabelTonemappingPeak": "Pic del mapa de tons",
- "LabelTonemappingParamHelp": "Ajusta l'algoritme de mapeig de to. Generalment, deixeu-ho en blanc.",
+ "LabelTonemappingParamHelp": "Ajusta l'algoritme de mapatge de to. Generalment, deixeu-ho en blanc.",
"LabelTonemappingParam": "Paràmetres de mapa de tons",
"LabelTonemappingDesatHelp": "Aplica dessaturació de punts realçats que superen aquest nivell de brillantor. El valor recomanat és 0 (deshabilitat).",
"LabelTonemappingDesat": "Mapa de tons desat",
- "LabelTonemappingAlgorithm": "Seleccioneu l'algoritme de mapeig de tons",
+ "LabelTonemappingAlgorithm": "Seleccioneu l'algoritme de mapatge de tons",
"LabelTextSize": "Mida del text",
"LabelTextColor": "Color del text",
"LabelTextBackgroundColor": "Color de fons del text",
@@ -1206,7 +1206,7 @@
"LabelParentalRating": "Classificació parental",
"LabelOptionalNetworkPathHelp": "Si aquesta carpeta es comparteix a la xarxa, el subministrament de la ruta del recurs compartit de xarxa pot permetre als clients accedir directament als fitxers dels continguts multimèdia des d'altres dispositius. Per exemple, {0} o {1}.",
"LabelOptionalNetworkPath": "Directori de xarxa compartida",
- "LabelOpenclDeviceHelp": "Aquest és el dispositiu OpenCL que s'utilitza pel mapeig de tons. El costat esquerra del punt és el número de la plataforma, la dreta és el número de dispositiu a la plataforma. El valor per defecte és 0,0. Es requereix que el fitxer de l'aplicació FFmpeg que conté el mètode d'acceleració de maquinari OpenCL.",
+ "LabelOpenclDeviceHelp": "Aquest és el dispositiu OpenCL que s'utilitza pel mapatge de tons. El costat esquerra del punt és el número de la plataforma, la dreta és el número de dispositiu a la plataforma. El valor per defecte és 0,0. Es requereix que el fitxer de l'aplicació FFmpeg que conté el mètode d'acceleració de maquinari OpenCL.",
"LabelOpenclDevice": "Dispositiu OpenCL",
"LabelNumberOfGuideDaysHelp": "Descarregar les dades de més dies de la guia ofereix la possibilitat de programar amb més antelació i veure més llistats, però també trigarà més temps a l'hora de descarregar. \"Auto\" triarà en funció del nombre de canals.",
"LabelNewsCategories": "Categories de notícies",
@@ -1718,12 +1718,12 @@
"DownloadAll": "Descarrega-ho tot",
"LabelEnableAudioVbr": "Habilita la codificació d'àudio VBR",
"LabelEnableAudioVbrHelp": "La taxa variable de bits ofereix una millor relació entre la qualitat i velocitat mitjana de bits, però en alguns casos rars pot provocar problemes de compatibilitat i de memòria intermèdia.",
- "LabelTonemappingMode": "Mode de mapeig de to",
+ "LabelTonemappingMode": "Mode de mapatge de to",
"EnableAudioNormalization": "Normalització d'àudio",
"LabelEnableLUFSScan": "Habilita l'escaneig LUFS",
"Select": "Selecció",
"LabelEnableLUFSScanHelp": "Els clients poden normalitzar la reproducció d'àudio per obtenir un nivell de volum igual entre pistes d'àudio. Això farà que els escanejos de la mediateca s'allarguin més i els calgui més recursos.",
- "TonemappingModeHelp": "Selecciona el mode de mapeig de to. Si experimentes zones sobreexposades, prova a canviar al mode RGB.",
+ "TonemappingModeHelp": "Selecciona el mode de mapatge de to. Si experimentes zones sobreexposades, prova a canviar al mode RGB.",
"EnableAudioNormalizationHelp": "La normalització de l'àudio afegirà un guany constant per mantenir la mitjana al nivell desitjat (-18dB).",
"GetThePlugin": "Obtenir el Plugin",
"MenuClose": "Tanca el menú",
@@ -1787,7 +1787,7 @@
"ChannelResolutionFullHD": "Full HD",
"LabelBuildVersion": "Versió de la compilació",
"LabelUseReplayGainTagsHelp": "Escaneja els fitxers d'àudio per trobar etiquetes ReplayGain i fes-les servir en lloc de calcular el valor LUFS. (Utilitza menys potència. Invalidarà l'opció 'Escaneig LUFS')",
- "EnableVideoToolboxTonemapping": "Habilitar el mapatge de tons de VideoToolbox",
+ "EnableVideoToolboxTonemapping": "Habilita el mapatge de tons de VideoToolbox",
"AllowVideoToolboxTonemappingHelp": "Acceleració per maquinari en el mapatge de tons per VideoToolbox. Funciona amb la majoria dels formats HDR, inclosos HDR10, HDR10+ i HLG, però no funciona amb Dolby Vision Profile 5. Això té una prioritat més alta en comparació amb una altra implementació de Metal.",
"LabelUseReplayGainTags": "Utilitzar etiquetes ReplayGain",
"ChannelResolutionSDPAL": "SD (PAL)",
From cfa3d64b6038bba7960adc19619e728ee7825d32 Mon Sep 17 00:00:00 2001
From: Gargotaire
Date: Sat, 28 Jun 2025 17:52:01 -0400
Subject: [PATCH 577/645] Translated using Weblate (Catalan) Translation:
Jellyfin/Jellyfin Web Translate-URL:
https://translate.jellyfin.org/projects/jellyfin/jellyfin-web/ca/
---
src/strings/ca.json | 24 ++++++++++++------------
1 file changed, 12 insertions(+), 12 deletions(-)
diff --git a/src/strings/ca.json b/src/strings/ca.json
index 384fa96da..58dd057bb 100644
--- a/src/strings/ca.json
+++ b/src/strings/ca.json
@@ -812,21 +812,21 @@
"Depressed": "Deprimit",
"AudioBitDepthNotSupported": "La profunditat de bits d'àudio no és compatible",
"VideoProfileNotSupported": "El perfil d'el còdec de vídeo no és compatible",
- "VideoLevelNotSupported": "El nivell de l'còdec de vídeo no és compatible",
+ "VideoLevelNotSupported": "El nivell del còdec de vídeo no és compatible",
"VideoFramerateNotSupported": "La velocitat de fotogrames de vídeo no és compatible",
"VideoBitDepthNotSupported": "La profunditat de bits de vídeo no és compatible",
- "RefFramesNotSupported": "Sistemes de referència no són compatibles",
- "SecondaryAudioNotSupported": "Pistes d'àudio secundaris no són compatibles",
- "InterlacedVideoNotSupported": "Vídeo entrellaçat no és compatible",
- "AnamorphicVideoNotSupported": "Vídeo anamòrfic no és compatible",
- "AudioSampleRateNotSupported": "Velocitat de mostreig de l'àudio no és compatible",
- "AudioProfileNotSupported": "El perfil d'el còdec d'àudio no és compatible",
- "VideoResolutionNotSupported": "No s'admet la resolució de el vídeo",
- "AudioChannelsNotSupported": "No s'admet el nombre de canals d'àudio",
- "AudioBitrateNotSupported": "Taxa de bits d'àudio no és compatible",
+ "RefFramesNotSupported": "Els fotogrames de referència no són compatibles",
+ "SecondaryAudioNotSupported": "Les pistes d'àudio secundàries no són compatibles",
+ "InterlacedVideoNotSupported": "El vídeo entrellaçat no és compatible",
+ "AnamorphicVideoNotSupported": "El vídeo anamòrfic no és compatible",
+ "AudioSampleRateNotSupported": "La velocitat de mostreig de l'àudio no és compatible",
+ "AudioProfileNotSupported": "El perfil del còdec d'àudio no és compatible",
+ "VideoResolutionNotSupported": "La resolució del vídeo no és compatible",
+ "AudioChannelsNotSupported": "El nombre de canals d'àudio no és compatible",
+ "AudioBitrateNotSupported": "La taxa de bits d'àudio no és compatible",
"VideoCodecNotSupported": "El còdec de vídeo no és compatible",
- "SubtitleCodecNotSupported": "El còdec de subtítols no s'admet",
- "ContainerNotSupported": "El contenidor no està suportat",
+ "SubtitleCodecNotSupported": "El còdec de subtítols no és compatible",
+ "ContainerNotSupported": "El contenidor no és compatible",
"AudioCodecNotSupported": "El còdec d'àudio no és compatible",
"EnableGamepadHelp": "Detecta l'entrada de qualsevol comandament connectat. (Requereix el mode de visualització \"Televisió\")",
"LabelEnableGamepad": "Habilita el comandament de videojocs",
From 5dcd020b1c24d1dc563475c1244f855a02f40294 Mon Sep 17 00:00:00 2001
From: Gargotaire
Date: Sat, 28 Jun 2025 18:24:11 -0400
Subject: [PATCH 578/645] Translated using Weblate (Catalan) Translation:
Jellyfin/Jellyfin Web Translate-URL:
https://translate.jellyfin.org/projects/jellyfin/jellyfin-web/ca/
---
src/strings/ca.json | 70 ++++++++++++++++++++++-----------------------
1 file changed, 35 insertions(+), 35 deletions(-)
diff --git a/src/strings/ca.json b/src/strings/ca.json
index 58dd057bb..f2c302c37 100644
--- a/src/strings/ca.json
+++ b/src/strings/ca.json
@@ -807,11 +807,11 @@
"EveryXMinutes": "Cada {0} minuts",
"EveryXHours": "Cada {0} hores",
"EveryHour": "Cada hora",
- "EnableTonemapping": "Habilita l'assignació de tons",
+ "EnableTonemapping": "Habilita el mapatge de tons",
"DisableCustomCss": "Desactiveu el CSS personalitzat proporcionat pel servidor",
"Depressed": "Deprimit",
"AudioBitDepthNotSupported": "La profunditat de bits d'àudio no és compatible",
- "VideoProfileNotSupported": "El perfil d'el còdec de vídeo no és compatible",
+ "VideoProfileNotSupported": "El perfil del còdec de vídeo no és compatible",
"VideoLevelNotSupported": "El nivell del còdec de vídeo no és compatible",
"VideoFramerateNotSupported": "La velocitat de fotogrames de vídeo no és compatible",
"VideoBitDepthNotSupported": "La profunditat de bits de vídeo no és compatible",
@@ -831,7 +831,7 @@
"EnableGamepadHelp": "Detecta l'entrada de qualsevol comandament connectat. (Requereix el mode de visualització \"Televisió\")",
"LabelEnableGamepad": "Habilita el comandament de videojocs",
"Controls": "Controls",
- "AllowVppTonemappingHelp": "Mapatge de to basat en controladors Intel complets. Actualment només funciona amb cert maquinari amb vídeos HDR10. Això té una prioritat més alta en comparació amb una altra implementació d'OpenCL.",
+ "AllowVppTonemappingHelp": "Mapatge de tons basat en controladors Intel complets. Actualment només funciona amb cert maquinari amb vídeos HDR10. Això té una prioritat més alta en comparació amb una altra implementació d'OpenCL.",
"EnableVppTonemapping": "Habilita el mapatge VPP de to",
"YoutubeDenied": "El vídeo sol·licitat no es pot reproduir en reproductors integrats.",
"YoutubeNotFound": "No s'ha pogut trobar el vídeo.",
@@ -1113,7 +1113,7 @@
"LabelTonemappingRange": "Gamma de mapa de tons",
"LabelTonemappingPeakHelp": "Anul·la el valor de metadades incrustat pel senyal d'entrada amb aquest valor com a pic. El valor per defecte és 100 (1000 nits).",
"LabelTonemappingPeak": "Pic del mapa de tons",
- "LabelTonemappingParamHelp": "Ajusta l'algoritme de mapatge de to. Generalment, deixeu-ho en blanc.",
+ "LabelTonemappingParamHelp": "Ajusta l'algoritme de mapatge de tons. Generalment, deixeu-ho en blanc.",
"LabelTonemappingParam": "Paràmetres de mapa de tons",
"LabelTonemappingDesatHelp": "Aplica dessaturació de punts realçats que superen aquest nivell de brillantor. El valor recomanat és 0 (deshabilitat).",
"LabelTonemappingDesat": "Mapa de tons desat",
@@ -1307,8 +1307,8 @@
"LabelCustomCertificatePathHelp": "Ruta a un arxiu PKCS #12 que contingui un certificat i una clau privada per a activar el suport TLS en un domini personalitzat.",
"LabelCustomCertificatePath": "Ruta del certificat SSL personalitzat",
"LabelCurrentStatus": "Estat actual",
- "LabelCreateHttpPortMapHelp": "Permet l'assignació de ports automàtica per a crear una regla per al tràfic HTTP, a més a més del trànsit HTTPS.",
- "LabelCreateHttpPortMap": "Habilita l'assignació automàtica de ports per al tràfic HTTP, així com HTTPS.",
+ "LabelCreateHttpPortMapHelp": "Permet el mapatge automàtic de ports per a crear una regla per al tràfic HTTP, a més a més del trànsit HTTPS.",
+ "LabelCreateHttpPortMap": "Habilita el mapatge automàtic de ports per al tràfic HTTP, així com HTTPS.",
"LabelCorruptedFrames": "Quadres corruptes",
"LabelColorTransfer": "Transferència de color",
"LabelColorSpace": "Espai de color",
@@ -1550,14 +1550,14 @@
"LabelHardwareEncoding": "Codificació per maquinari",
"ErrorPlayerNotFound": "No s'ha trobat cap reproductor per al fitxer multimèdia sol·licitat.",
"SelectAll": "Selecciona-ho tot",
- "DirectPlayError": "Hi ha hagut un error en iniciar la reproducció en directe",
+ "DirectPlayError": "S'ha produït un error en iniciar la reproducció en directe",
"UnknownAudioStreamInfo": "La informació del flux d'àudio és desconeguda",
"UnknownVideoStreamInfo": "La informació del flux de vídeo és desconeguda",
- "VideoBitrateNotSupported": "La velocitat de transmissió del vídeo no està suportada",
+ "VideoBitrateNotSupported": "La velocitat de transmissió del vídeo no és compatible",
"LabelHardwareEncodingOptions": "Opcions de codificació per maquinari",
"EnableIntelLowPowerHevcHwEncoder": "Habilita el còdec per maquinari Intel Low-Power HEVC",
"EnableIntelLowPowerH264HwEncoder": "Habilita el còdec per maquinari Intel Low-Power H.264",
- "ContainerBitrateExceedsLimit": "El còdec de vídeo excedeix el límit",
+ "ContainerBitrateExceedsLimit": "La taxa de bits de vídeo excedeix el límit",
"TypeOptionPluralVideo": "Vídeos",
"TypeOptionPluralSeason": "Temporades",
"TypeOptionPluralMusicVideo": "Videoclips",
@@ -1592,7 +1592,7 @@
"Clip": "Clip",
"AudioIsExternal": "El flux d'àudio és extern",
"IntelLowPowerEncHelp": "La codificació de baixa potència pot mantenir la sincronització CPU-GPU innecessària. A Linux s'han de desactivar si el microprogramari i915 HuC no està configurat.",
- "PreferSystemNativeHwDecoder": "Preferiu els descodificadors de maquinari DXVA o VA-API natius del SO",
+ "PreferSystemNativeHwDecoder": "Prioritza els descodificadors de maquinari DXVA o VA-API natius del sistema operatiu",
"Typewriter": "Mecanogràfica",
"TypeOptionPluralSeries": "Sèries",
"TypeOptionPluralBoxSet": "Cofres",
@@ -1659,8 +1659,8 @@
"MessageRenameMediaFolder": "Canviar una mediateca de nom provocarà que es perdin totes les metadades, continueu amb precaució.",
"LabelTextWeight": "Estil de text",
"RememberSubtitleSelections": "Estableix la pista de subtítols en funció de l'element anterior",
- "LabelVppTonemappingBrightnessHelp": "Aplicar el guany de brillantor al mapa de to VPP. El valor recomanat és 16.",
- "MediaInfoRpuPresentFlag": "Flag DV rpu predeterminat",
+ "LabelVppTonemappingBrightnessHelp": "Aplica el guany de brillantor al mapatge de tons VPP. El valor recomanat és 16.",
+ "MediaInfoRpuPresentFlag": "Senyalització DV rpu predeterminada",
"MediaInfoDvBlSignalCompatibilityId": "Identificador de compatibilitat del senyal DV bl",
"Unreleased": "Encara no s'ha publicat",
"OptionDateShowAdded": "Data d'addició de la sèrie",
@@ -1668,9 +1668,9 @@
"RememberSubtitleSelectionsHelp": "Intenta configurar la pista de subtítols amb la coincidència més semblant a l'últim vídeo.",
"RememberAudioSelections": "Estableix la pista d'àudio en funció de l'element anterior",
"EnableEnhancedNvdecDecoderHelp": "Implementació millorada de NVDEC, desactiveu aquesta opció per a utilitzar CUVID si trobeu errors de descodificació.",
- "LabelVppTonemappingBrightness": "Guany de brillantor del mapa de to VPP",
- "LabelVppTonemappingContrast": "Guany de contrast de mapatge de to VPP",
- "LabelVppTonemappingContrastHelp": "Aplicar el guany de contrast a l'assignació de to VPP. El valor recomanat és 1.",
+ "LabelVppTonemappingBrightness": "Guany de brillantor del mapatge de tons VPP",
+ "LabelVppTonemappingContrast": "Guany de contrast de mapatge de tons VPP",
+ "LabelVppTonemappingContrastHelp": "Aplica el guany de contrast al mapatge de tons VPP. El valor recomanat és 1.",
"VideoRangeTypeNotSupported": "El tipus d'interval del vídeo no és compatible",
"LabelVideoRangeType": "Tipus d'interval de vídeo",
"MediaInfoVideoRangeType": "Tipus d'interval de vídeo",
@@ -1679,8 +1679,8 @@
"MediaInfoDvVersionMinor": "Versió inferior DV",
"MediaInfoDvProfile": "Perfil DV",
"MediaInfoDvLevel": "Nivell DV",
- "MediaInfoElPresentFlag": "Flag DV el predeterminat",
- "MediaInfoBlPresentFlag": "Flag DV bl predeterminat",
+ "MediaInfoElPresentFlag": "Senyalització \"DV el\" predeterminada",
+ "MediaInfoBlPresentFlag": "Senyalització DV bl predeterminada",
"Featurette": "Migmetratge",
"Short": "Curt",
"HeaderRecordingMetadataSaving": "Metadades de l'enregistrament",
@@ -1718,12 +1718,12 @@
"DownloadAll": "Descarrega-ho tot",
"LabelEnableAudioVbr": "Habilita la codificació d'àudio VBR",
"LabelEnableAudioVbrHelp": "La taxa variable de bits ofereix una millor relació entre la qualitat i velocitat mitjana de bits, però en alguns casos rars pot provocar problemes de compatibilitat i de memòria intermèdia.",
- "LabelTonemappingMode": "Mode de mapatge de to",
+ "LabelTonemappingMode": "Mode de mapatge de tons",
"EnableAudioNormalization": "Normalització d'àudio",
"LabelEnableLUFSScan": "Habilita l'escaneig LUFS",
"Select": "Selecció",
"LabelEnableLUFSScanHelp": "Els clients poden normalitzar la reproducció d'àudio per obtenir un nivell de volum igual entre pistes d'àudio. Això farà que els escanejos de la mediateca s'allarguin més i els calgui més recursos.",
- "TonemappingModeHelp": "Selecciona el mode de mapatge de to. Si experimentes zones sobreexposades, prova a canviar al mode RGB.",
+ "TonemappingModeHelp": "Seleccioneu el mode de mapatge de tons. Si experimenteu zones sobreexposades, proveu a canviar al mode RGB.",
"EnableAudioNormalizationHelp": "La normalització de l'àudio afegirà un guany constant per mantenir la mitjana al nivell desitjat (-18dB).",
"GetThePlugin": "Obtenir el Plugin",
"MenuClose": "Tanca el menú",
@@ -1772,11 +1772,11 @@
"MessageRepositoryInstallDisclaimer": "AVÍS: La instal·lació d'un complement de tercers comporta riscos. Pot contenir codi inestable o maliciós, i pot canviar en qualsevol moment. Instal·leu només complements d'autors en els que confieu.",
"PasswordRequiredForAdmin": "Es requereix una contrasenya pels comptes d'administrador.",
"LabelTrackGain": "Guany de pista",
- "AllowAv1Encoding": "Permetre l'encodificació en format AV1",
+ "AllowAv1Encoding": "Permet la codificació en format AV1",
"LabelSegmentKeepSecondsHelp": "Temps en segons per aquells segments que s'han de mantenir després que el client els hagi descarregat. Només funciona si l'esborrat de segments està habilitat.",
"AiTranslated": "Traduït per IA",
- "MachineTranslated": "Traduït per Màquina",
- "ForeignPartsOnly": "Només parts Forçades/Forànies",
+ "MachineTranslated": "Traduït automàticament",
+ "ForeignPartsOnly": "Només parts forçades/foranes",
"HeaderGuestCast": "Estrelles convidades",
"HeaderAllRecordings": "Tots els enregistraments",
"LabelServerVersion": "Versió del servidor",
@@ -1800,14 +1800,14 @@
"ConfirmDeleteSeries": "Eliminar aquesta sèrie eliminarà TOTS {0} episodis tant del sistema de fitxers com de la mediateca. N'esteu segur, que desitgeu continuar?",
"LabelEncodingFormatOptions": "Opcions de format de codificació",
"LabelTrickplayAccelHelp": "Assegura't d'habilitar 'Permetre codificació MJPEG' a Transcodificació si el teu maquinari ho suporta.",
- "LabelWidthResolutions": "Resolucions d'Amplada",
+ "LabelWidthResolutions": "Resolucions d'amplada",
"LabelScanBehaviorHelp": "El comportament predeterminat és sense blocatge, cosa que afegirà contingut multimèdia a la mediateca abans que la generació de la previsualització es completi. El bloqueig assegura que els fitxers de previsualització es generin abans que el contingut multimèdia no s'afegeixi a la mediateca, però farà que l'escaneig sigui significativament més llarg.",
- "LabelProcessPriorityHelp": "Establint-ho més baix o més alt determinarà com el processador prioritza el procés de generació de previsualització ffmpeg en relació amb altres processos. Si observeu una ralentització mentre genereu imatges de previsualització, però no voleu aturar completament la seva generació, proveu de reduir-la així com el nombre de fils.",
+ "LabelProcessPriorityHelp": "Configurant-ho més baix o més alt determinarà com el processador prioritza el procés de generació de previsualització ffmpeg en relació amb altres processos. Si observeu una ralentització mentre genereu imatges de previsualització, però no voleu aturar completament la seva generació, proveu de reduir-la així com el nombre de fils.",
"AirPlay": "AirPlay",
"AllowContentWithTagsHelp": "Mostra només el contingut multimèdia amb com a mínim alguna de les etiquetes especificades.",
"BlockContentWithTagsHelp": "Amaga el contingut multimèdia amb com a mínim una de les etiquetes especificades.",
"LabelAllowContentWithTags": "Permet elements amb etiquetes",
- "BlockingScan": "Bloqueig - generació de cues, bloqueja escaneig fins a completar-se",
+ "BlockingScan": "Bloqueig - generació de cues, bloqueja l'escaneig fins a completar-se",
"LabelScanBehavior": "Comportament de l'escaneig",
"PlaybackError.ASS_RENDER_ERROR": "S'ha produït un error en el renderitzador de subtítols ASS/SSA.",
"PlaybackError.MEDIA_NOT_SUPPORTED": "La reproducció ha fallat, perquè el contingut multimèdia no és compatible amb aquest client.",
@@ -1824,14 +1824,14 @@
"LimitSupportedVideoResolutionHelp": "Fes servir \"La màxima resolució de transcodificació de vídeo permesa\" com a màxima resolució permesa.",
"PlaybackError.FATAL_HLS_ERROR": "S'ha produït un error fatal a l'stream HLS.",
"PlaybackError.RateLimitExceeded": "Aquest contingut multimèdia no es pot reproduir en aquests instants deguts a límits de transmissió.",
- "EncodingFormatHelp": "Seleccioni la codificació de vídeo a la qual hauria de transcodificar Jellyfin. Jellyfin utilitzarà codificació mitjançant programari quan l'acceleració per maquinari no estigui disponible. La codificació H264 sempre estarà habilitada.",
- "PriorityAboveNormal": "Per sobre del Normal",
+ "EncodingFormatHelp": "Seleccioneu la codificació de vídeo a la qual hauria de transcodificar Jellyfin. Jellyfin farà servir codificació per programari quan l'acceleració per maquinari per al format seleccionat no estigui disponible. La codificació H264 sempre estarà habilitada.",
+ "PriorityAboveNormal": "Per sobre del normal",
"PriorityNormal": "Normal",
"LabelImageIntervalHelp": "Interval de temps (ms) entre cada imatge nova de previsualització.",
"LabelWidthResolutionsHelp": "Llista separada per comes de les amplades (px) en què es generaran les imatges de previsualització. Totes les imatges s'han de generar proporcionalment a la font, de manera que una amplada de 320 en un vídeo 16:9 acaba al voltant de 320x180.",
- "LabelTileWidth": "Amplada del Títol",
+ "LabelTileWidth": "Amplada del títol",
"LabelTileWidthHelp": "Nombre màxim d'imatges per casella en la direcció X.",
- "LabelTileHeight": "Alçada del Títol",
+ "LabelTileHeight": "Alçada del títol",
"LabelTileHeightHelp": "Nombre màxim d'imatges per casella en la direcció Y.",
"LabelJpegQuality": "Qualitat JPEG",
"LabelJpegQualityHelp": "Qualitat de compressió JPEG per a les imatges de previsualització.",
@@ -1843,15 +1843,15 @@
"DeleteSeries": "Elimina la sèrie",
"DeleteEpisode": "Elimina l'episodi",
"PriorityIdle": "Parada",
- "LabelProcessPriority": "Prioritat de Processos",
- "LabelTrickplayThreadsHelp": "Nombre de fils a passar a l'argument de ffmpleg '-threads'.",
+ "LabelProcessPriority": "Prioritat de processos",
+ "LabelTrickplayThreadsHelp": "El nombre de fils per a passar a l'argument '-threads' de ffmpleg.",
"Lyric": "Lletra",
"EnableSmoothScroll": "Habilita el desplaçament suau",
"HeaderDeleteSeries": "Elimina la sèrie",
"PlaybackError.MEDIA_DECODE_ERROR": "La reproducció ha fallat a causa d'un error en descodificar el contingut.",
"AllowMjpegEncoding": "Permetre codificació en format MJPEG (utilitzat durant la generació de trickplay)",
- "PriorityBelowNormal": "Per sota del Normal",
- "LabelImageInterval": "Interval d'Imatges",
+ "PriorityBelowNormal": "Per sota del normal",
+ "LabelImageInterval": "Interval d'imatges",
"LabelQscaleHelp": "Escala de qualitat de les imatges generades per ffmpeg, sent 2 la qualitat més alta i 31 la més baixa.",
"LabelTrickplayThreads": "Fils de FFmpeg",
"ExtractTrickplayImagesHelp": "Les imatges de previsualització són similars a les imatges de capítols, excepte que abasten tota la longitud del contingut i s'utilitzen per mostrar una vista prèvia en moure's pels vídeos.",
@@ -1924,7 +1924,7 @@
"SearchForLyrics": "Cerca lletres",
"LibraryInvalidItemIdError": "La mediateca es troba en un estat no vàlid, i no es pot editar. És possible que hàgiu trobat un error: la ruta de la base de dades no és una ruta correcta en el sistema de fitxers.",
"LabelTrickplayKeyFrameOnlyExtraction": "Només genera imatges dels fotogrames clau",
- "LabelTrickplayKeyFrameOnlyExtractionHelp": "Només extreure fotogrames clau per a un processament significativament més ràpid amb una sincronització menys precisa. Si el descodificador de maquinari configurat no admet aquest mode, en el seu lloc s'utilitzarà el descodificador per programari.",
+ "LabelTrickplayKeyFrameOnlyExtractionHelp": "Extreu només els fotogrames clau per a un processament significativament més ràpid amb una sincronització menys precisa. Si el descodificador configurat de maquinari no admet aquest mode, en el seu lloc es farà servir el descodificador per programari.",
"AllowTonemappingSoftwareHelp": "El mapatge de tons pot transformar el rang dinàmic d'un vídeo d'HDR a SDR mantenint els detalls i els colors de la imatge, que són informació molt important per representar l'escena original. Actualment, només funciona amb vídeos HDR10, HLG i DoVi de 10 bits.",
"LabelDuration": "Duració",
"LabelDropLyricsHere": "Arrossega i deixa-hi anar les lletres, o clica-hi per a cercar-les.",
@@ -2002,7 +2002,7 @@
"LastActive": "Últim actiu",
"CopyLogSuccess": "Registres copiats satisfactòriament.",
"Retry": "Torna a provar-ho",
- "LogLoadFailure": "Error al carregar el registre. És probable que encara s'estigui escrivint en ell.",
+ "LogLoadFailure": "S'ha produït un error en carregar el registre. És probable que encara s'hi estigui escrivint.",
"MetadataNfoLoadError": "No s'han pogut carregar les configuracions de metadades NFO",
"SettingsPageLoadError": "No s'ha pogut carregar la pàgina de configuració",
"DisplayLoadError": "S'ha produït un error en carregar les dades de configuració de la pantalla.",
From 44c499973a40ce12c34cc8d6cbdd379f940d5397 Mon Sep 17 00:00:00 2001
From: Nirwan
Date: Sat, 28 Jun 2025 19:57:30 -0400
Subject: [PATCH 579/645] Translated using Weblate (Indonesian) Translation:
Jellyfin/Jellyfin Web Translate-URL:
https://translate.jellyfin.org/projects/jellyfin/jellyfin-web/id/
---
src/strings/id.json | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
diff --git a/src/strings/id.json b/src/strings/id.json
index 190156c45..5b1152656 100644
--- a/src/strings/id.json
+++ b/src/strings/id.json
@@ -1948,5 +1948,6 @@
"LabelAudioTagSettings": "Pengaturan Tag Audio",
"Custom": "Kustom",
"CopyLogSuccess": "Catatan konten berhasil di salin.",
- "CustomSplashScreenSize": "Kustom gambar harus dalam 16x9 aspek rasio dengan ukuran minimum 1920x1080."
+ "CustomSplashScreenSize": "Kustom gambar harus dalam 16x9 aspek rasio dengan ukuran minimum 1920x1080.",
+ "AllowFmp4TranscodingContainerHelp": "Izinkan kontainer transkode fMP4 pada tuner ini untuk mengaktifkan konten HEVC dan HDR. Tidak semua tuner kompatibel dengan kontainer ini. Nonaktifkan jika Anda mengalami masalah pemutaran."
}
From a93fda3e239128430be2e2e15bc44c4bd3f77a8a Mon Sep 17 00:00:00 2001
From: Nirwan
Date: Sun, 29 Jun 2025 01:50:46 -0400
Subject: [PATCH 580/645] Translated using Weblate (Indonesian) Translation:
Jellyfin/Jellyfin Web Translate-URL:
https://translate.jellyfin.org/projects/jellyfin/jellyfin-web/id/
---
src/strings/id.json | 30 ++++++++++++++++++++++++++----
1 file changed, 26 insertions(+), 4 deletions(-)
diff --git a/src/strings/id.json b/src/strings/id.json
index 5b1152656..8bff80574 100644
--- a/src/strings/id.json
+++ b/src/strings/id.json
@@ -1,5 +1,5 @@
{
- "ButtonQuickStartGuide": "Panduan cepat",
+ "ButtonQuickStartGuide": "Panduan Pengaturan",
"ButtonSignOut": "Sign out",
"HeaderEasyPinCode": "Kode PIN Mudah",
"HeaderSetupLibrary": "Siapkan perpustakaan media Anda",
@@ -52,12 +52,12 @@
"Continuing": "Melanjutkan",
"ContinueWatching": "Lanjutkan menonton",
"Connect": "Sambung",
- "ConfirmEndPlayerSession": "Apakah Anda ingin mematikan Jellyfin pada {0}?",
+ "ConfirmEndPlayerSession": "Apakah Anda ingin mematikan Jellyfin di {0}?",
"ConfirmDeletion": "Konfirmasi Penghapusan",
"ConfirmDeleteItems": "Penghapusan item-item ini akan menghapus baik pada sistem berkas maupun pustaka media Anda. Apakah Anda yakin untuk melanjutkan?",
"ConfirmDeleteItem": "Penghapusan item ini akan menghapus baik pada sistem berkas maupun pustaka media Anda. Apakah Anda yakin untuk melanjutkan?",
"ConfirmDeleteImage": "Hapus gambar?",
- "ConfigureDateAdded": "Atur cara kerja penentuan metadata untuk 'Tanggal ditambahkan' di menu Dasbor > Pustaka > Pengaturan NFO",
+ "ConfigureDateAdded": "Atur bagaimana metadata untuk 'Tanggal Ditambahkan' ditentukan di Dasbor > Pustaka > Tampilan.",
"Composer": "Komposer",
"CommunityRating": "Peringkat komunitas",
"ChannelNumber": "Nomor saluran",
@@ -1949,5 +1949,27 @@
"Custom": "Kustom",
"CopyLogSuccess": "Catatan konten berhasil di salin.",
"CustomSplashScreenSize": "Kustom gambar harus dalam 16x9 aspek rasio dengan ukuran minimum 1920x1080.",
- "AllowFmp4TranscodingContainerHelp": "Izinkan kontainer transkode fMP4 pada tuner ini untuk mengaktifkan konten HEVC dan HDR. Tidak semua tuner kompatibel dengan kontainer ini. Nonaktifkan jika Anda mengalami masalah pemutaran."
+ "AllowFmp4TranscodingContainerHelp": "Izinkan kontainer transkode fMP4 pada tuner ini untuk mengaktifkan konten HEVC dan HDR. Tidak semua tuner kompatibel dengan kontainer ini. Nonaktifkan jika Anda mengalami masalah pemutaran.",
+ "AllowTonemappingSoftwareHelp": "Pemetaan nada dapat mengubah rentang dinamis video dari HDR ke SDR sambil mempertahankan detail gambar dan warna, yang merupakan informasi sangat penting untuk merepresentasikan adegan asli. Saat ini hanya berfungsi dengan video 10-bit HDR10, HLG, dan DoVi.",
+ "DisplayLoadError": "Terjadi kesalahan saat memuat data konfigurasi tampilan.",
+ "FallbackMaxStreamingBitrateHelp": "Bitrate streaming maksimum digunakan sebagai nilai pengganti saat ffprobe tidak dapat menentukan bitrate aliran sumber. Ini membantu mencegah klien meminta bitrate transkode yang sangat tinggi, yang dapat menyebabkan pemutar gagal dan membebani encoder secara berlebihan.",
+ "AllowStreamSharingHelp": "Izinkan Jellyfin menggandakan aliran mpegts dari tuner dan membagikan salinannya ke klien. Fitur ini berguna jika tuner memiliki batas jumlah aliran, namun berisiko menyebabkan masalah pemutaran.",
+ "HeaderPageNotFound": "Halaman tidak ditemukan",
+ "DownloadManager": "Unduhan",
+ "HeaderAudioAdvanced": "Audio Lanjutan",
+ "AutoSubtitleStylingHelp": "Mode ini akan secara otomatis beralih antara mekanisme gaya subtitle bawaan dan kustom berdasarkan jenis perangkat Anda.",
+ "CustomSubtitleStylingHelp": "Gaya subtitle akan berfungsi di sebagian besar perangkat, namun disertai dengan beban performa tambahan.",
+ "DeleteServerConfirmation": "Apakah Anda yakin ingin menghapus server ini?",
+ "ButtonLearnMore": "Pelajari Lebih Lanjut",
+ "Create": "Buat",
+ "DeleteCustomImage": "Hapus Gambar Kustom",
+ "HeaderBackupsHelp": "Buat dan pulihkan snapshot server Anda yang dapat mencakup database, metadata, subtitle, dan trickplay.",
+ "BackupsPageLoadError": "Gagal memuat halaman cadangan",
+ "ButtonCreateBackup": "Buat Cadangan",
+ "HeaderMediaSegmentActions": "Tindakan Segmen Media",
+ "HeaderUpdateRequired": "Pembaruan Diperlukan",
+ "ConfirmDeleteRepository": "Hapus Repositori?",
+ "DeleteRepositoryConfirmation": "Apakah Anda yakin ingin menghapus repositori ini?",
+ "HeaderServerUnavailable": "Server tidak tersedia",
+ "ImageDeleteFailed": "Gagal menghapus gambar"
}
From 2311203d1c40b40c9009070c01b92ec1cb5ee350 Mon Sep 17 00:00:00 2001
From: Gargotaire
Date: Sun, 29 Jun 2025 03:23:28 -0400
Subject: [PATCH 581/645] Translated using Weblate (Catalan) Translation:
Jellyfin/Jellyfin Web Translate-URL:
https://translate.jellyfin.org/projects/jellyfin/jellyfin-web/ca/
---
src/strings/ca.json | 8 ++++----
1 file changed, 4 insertions(+), 4 deletions(-)
diff --git a/src/strings/ca.json b/src/strings/ca.json
index f2c302c37..633b4529d 100644
--- a/src/strings/ca.json
+++ b/src/strings/ca.json
@@ -152,7 +152,7 @@
"HeaderMyDevice": "El meu dispositiu",
"HeaderMyMedia": "Els meus continguts multimèdia",
"HeaderMyMediaSmall": "Els meus continguts multimèdia (petit)",
- "HeaderNewApiKey": "Nova clau API",
+ "HeaderNewApiKey": "Clau API nova",
"HeaderNextEpisodePlayingInValue": "L'episodi següent es reproduirà en {0}",
"HeaderNextVideoPlayingInValue": "El vídeo següent es reproduirà en {0}",
"HeaderOnNow": "En curs",
@@ -437,7 +437,7 @@
"OptionDaily": "Diari",
"OptionDateAdded": "Afegit el",
"OptionDateAddedImportTime": "Fes servir la data d'escaneig",
- "OptionDatePlayed": "Data de Reproducció",
+ "OptionDatePlayed": "Reproduït el",
"OptionDisableUser": "Habilita aquest usuari",
"OptionDisableUserHelp": "El servidor no permetrà cap connexió d’aquest usuari. Les connexions existents es tancaran immediatament.",
"OptionDislikes": "No m'agrada",
@@ -672,7 +672,7 @@
"ColorPrimaries": "Colors primaris",
"DefaultMetadataLangaugeDescription": "Aquests són els vostres valors per defecte i poden ser personalitzats per a cada mediateca.",
"Default": "Per defecte",
- "DatePlayed": "Data de reproducció",
+ "DatePlayed": "Reproduït el",
"DateAdded": "Data d'addició",
"CustomDlnaProfilesHelp": "Crear un perfil personalitzat per a un nou dispositiu o substituir un perfil de sistema.",
"HeaderAdmin": "Administració",
@@ -1149,7 +1149,7 @@
"LabelSSDPTracingFilter": "SSDP Filtre",
"LabelSportsCategories": "Modalitats esportives",
"LabelSpecialSeasonsDisplayName": "Nom de la temporada especial",
- "LabelSortOrder": "Ordre de classificació",
+ "LabelSortOrder": "Ordre",
"LabelSortBy": "Ordena per",
"LabelSonyAggregationFlagsHelp": "Determina el contingut de l'element 'aggregationFlags' al espai de noms 'urn:schemas-sonycom:av'.",
"LabelSonyAggregationFlags": "Banderes d'agregació de Sony",
From bd6e235806ac3e2cb63bd41023ed54c680d564ab Mon Sep 17 00:00:00 2001
From: Gargotaire
Date: Sun, 29 Jun 2025 05:06:55 -0400
Subject: [PATCH 582/645] Translated using Weblate (Catalan) Translation:
Jellyfin/Jellyfin Web Translate-URL:
https://translate.jellyfin.org/projects/jellyfin/jellyfin-web/ca/
---
src/strings/ca.json | 12 ++++++------
1 file changed, 6 insertions(+), 6 deletions(-)
diff --git a/src/strings/ca.json b/src/strings/ca.json
index 633b4529d..a76ab691c 100644
--- a/src/strings/ca.json
+++ b/src/strings/ca.json
@@ -14,7 +14,7 @@
"AspectRatio": "Relació d'aspecte",
"Audio": "Àudio",
"MessageBrowsePluginCatalog": "Consulteu el nostre catàleg per veure els complements disponibles.",
- "ButtonAddMediaLibrary": "Afegeix una mediateca",
+ "ButtonAddMediaLibrary": "Afegiu-hi una mediateca",
"ButtonAddScheduledTaskTrigger": "Afegeix un detonador",
"ButtonAddServer": "Afegeix un servidor",
"ButtonAddUser": "Afegeix un usuari",
@@ -469,8 +469,8 @@
"OptionUnairedEpisode": "Episodis no emesos",
"OptionWakeFromSleep": "Desperta de la hibernació",
"OptionWeekdays": "Entre setmana",
- "OptionWeekends": "Cap de setmana",
- "OptionWeekly": "Setmanal",
+ "OptionWeekends": "Caps de setmana",
+ "OptionWeekly": "Setmanalment",
"OriginalAirDateValue": "Data original d'emissió: {0}",
"PackageInstallCancelled": "S'ha cancel·lat la instal·lació de {0} (versió {1}).",
"ParentalRating": "Valoració parental",
@@ -607,7 +607,7 @@
"ButtonInfo": "Informació",
"ButtonFullscreen": "Pantalla completa",
"ButtonAudioTracks": "Pistes d'àudio",
- "ButtonAddImage": "Afegeix una imatge",
+ "ButtonAddImage": "Afegiu-hi una imatge",
"Blacklist": "Llista negra",
"BirthPlaceValue": "Lloc de naixement: {0}",
"BirthLocation": "Lloc de naixement",
@@ -747,7 +747,7 @@
"DashboardServerName": "Servidor: {0}",
"DashboardOperatingSystem": "Sistema Operatiu: {0}",
"DashboardArchitecture": "Arquitectura: {0}",
- "DailyAt": "Diàriament a {0}",
+ "DailyAt": "Diàriament a les {0}",
"ClearQueue": "Esborra la cua",
"Bwdif": "Filtre de desentrellat de Bob Weaver",
"ButtonPlayer": "Reproductor",
@@ -1611,7 +1611,7 @@
"AllowEmbeddedSubtitlesHelp": "Deshabilita els subtítols empaquetats dins dels contenidors multimèdia. Requereix d'una actualització completa de la mediateca.",
"AllowEmbeddedSubtitles": "Deshabilita diferents tipus de subtítols incrustats",
"OriginalAirDate": "Data d'emissió original",
- "MixedMoviesShows": "Barreja de pel·lícules i sèries",
+ "MixedMoviesShows": "Pel·lícules i sèries barrejades",
"MessageUnauthorizedUser": "No teniu autorització per accedir en aquest moment al servidor. Per a més informació, poseu-vos en contacte amb l'administrador del servidor.",
"Lyricist": "Lletrista",
"Localization": "Localització",
From 5d009c5b88b101d6bd92277f0271d2eb4264616d Mon Sep 17 00:00:00 2001
From: Gargotaire
Date: Sun, 29 Jun 2025 10:38:50 -0400
Subject: [PATCH 583/645] Translated using Weblate (Catalan) Translation:
Jellyfin/Jellyfin Web Translate-URL:
https://translate.jellyfin.org/projects/jellyfin/jellyfin-web/ca/
---
src/strings/ca.json | 12 ++++++------
1 file changed, 6 insertions(+), 6 deletions(-)
diff --git a/src/strings/ca.json b/src/strings/ca.json
index a76ab691c..e834999c6 100644
--- a/src/strings/ca.json
+++ b/src/strings/ca.json
@@ -100,7 +100,7 @@
"HeaderApiKey": "Clau API",
"HeaderApiKeys": "Claus API",
"HeaderApiKeysHelp": "Cal que les aplicacions externes tinguin una clau API per comunicar-se amb el servidor. Les claus s’emeten iniciant la sessió amb un compte d’usuari normal o concedint manualment una clau a l’aplicació.",
- "HeaderAudioSettings": "Preferències d'àudio",
+ "HeaderAudioSettings": "Configuració d'àudio",
"HeaderBranding": "Aparença",
"HeaderCancelRecording": "Cancel·la l'enregistrament",
"HeaderCancelSeries": "Cancel·la la sèrie",
@@ -114,7 +114,7 @@
"HeaderContinueWatching": "Continueu mirant",
"HeaderCustomDlnaProfiles": "Perfils personalitzats",
"HeaderDateIssued": "Data d'emissió",
- "HeaderDefaultRecordingSettings": "Preferències d'enregistrament per defecte",
+ "HeaderDefaultRecordingSettings": "Configuració per defecte de l'enregistrament",
"HeaderDeleteDevice": "Elimina el dispositiu",
"HeaderDeleteItem": "Elimina l'element",
"HeaderDeveloperInfo": "Informació del desenvolupador",
@@ -148,7 +148,7 @@
"HeaderLibraryOrder": "Ordre de la mediateca",
"HeaderLibrarySettings": "Configuració de la mediateca",
"HeaderMediaFolders": "Directoris multimèdia",
- "HeaderMetadataSettings": "Preferències de les metadades",
+ "HeaderMetadataSettings": "Configuració de les metadades",
"HeaderMyDevice": "El meu dispositiu",
"HeaderMyMedia": "Els meus continguts multimèdia",
"HeaderMyMediaSmall": "Els meus continguts multimèdia (petit)",
@@ -517,7 +517,7 @@
"SendMessage": "Envia un missatge",
"SeriesCancelled": "Sèrie cancel·lada.",
"SeriesRecordingScheduled": "Enregistrament programat de la sèrie.",
- "SeriesSettings": "Preferències de la sèrie",
+ "SeriesSettings": "Configuració de les sèries",
"ServerUpdateNeeded": "El servidor necessita ser actualitzat. Per a descarregar la darrera versió, visiteu {0}",
"Settings": "Configuració",
"SettingsSaved": "Configuració desada.",
@@ -543,7 +543,7 @@
"TabMusic": "Música",
"TabMyPlugins": "Els meus complements",
"TabNetworks": "Cadenes de televisió",
- "TabNfoSettings": "Preferències NFO",
+ "TabNfoSettings": "Configuració de NFO",
"TabNotifications": "Notificacions",
"TabOther": "Altres",
"TabParentalControl": "Control parental",
@@ -555,7 +555,7 @@
"TabUpcoming": "Properament",
"Tags": "Etiquetes",
"TellUsAboutYourself": "Expliqueu-nos com sou",
- "TheseSettingsAffectSubtitlesOnThisDevice": "Aquestes preferències afecten els subtítols d'aquest dispositiu",
+ "TheseSettingsAffectSubtitlesOnThisDevice": "Aquestes configuracions afecten els subtítols d'aquest dispositiu",
"ThisWizardWillGuideYou": "Aquest assistent us guiarà durant el procés d'instal·lació. Per començar, entreu el nom del servidor i seleccioneu el vostre idioma preferit.",
"Thursday": "Dijous",
"TitlePlayback": "Reproducció",
From a8d19f0dac4d1e9625d77ed707c6808e99402acb Mon Sep 17 00:00:00 2001
From: Blackspirits
Date: Sun, 29 Jun 2025 13:49:30 -0400
Subject: [PATCH 584/645] Translated using Weblate (Portuguese) Translation:
Jellyfin/Jellyfin Web Translate-URL:
https://translate.jellyfin.org/projects/jellyfin/jellyfin-web/pt/
---
src/strings/pt.json | 12 ++++++------
1 file changed, 6 insertions(+), 6 deletions(-)
diff --git a/src/strings/pt.json b/src/strings/pt.json
index 2419279d4..10a0e4052 100644
--- a/src/strings/pt.json
+++ b/src/strings/pt.json
@@ -194,7 +194,7 @@
"LabelPostProcessor": "Aplicação de pós-processamento",
"LabelPleaseRestart": "As alterações produzirão efeito depois de recarregar a página web.",
"LabelPlayMethod": "Método de reprodução",
- "LabelPlaylist": "Lista de Reprodução",
+ "LabelPlaylist": "Playlist",
"LabelPlayer": "Leitor",
"LabelPersonRoleHelp": "Exemplo: motorista da carrinha de gelados",
"LabelPersonRole": "Personagem",
@@ -986,7 +986,7 @@
"HeaderAlbumArtists": "Artistas do Álbum",
"HeaderAdditionalParts": "Partes Adicionais",
"HeaderAddUpdateImage": "Adicionar/Atualizar imagem",
- "HeaderAddToPlaylist": "Adicionar à lista de reprodução",
+ "HeaderAddToPlaylist": "Adicionar à playlist",
"HeaderAddToCollection": "Adicionar à coleção",
"HeaderActivity": "Atividade",
"HeaderActiveRecordings": "Gravações ativas",
@@ -1238,7 +1238,7 @@
"LabelSyncPlayNewGroup": "Novo grupo",
"LabelSyncPlayLeaveGroupDescription": "Desativar SyncPlay",
"LabelSyncPlayLeaveGroup": "Deixar o grupo",
- "LabelSyncPlayHaltPlaybackDescription": "E ignorar as atualizações recentes da lista de reprodução",
+ "LabelSyncPlayHaltPlaybackDescription": "E ignorar as atualizações recentes da playlist",
"LabelSyncPlayHaltPlayback": "Parar reprodução local",
"LabelSyncPlayAccessNone": "Desativado para este utilizador",
"LabelSyncPlayAccessJoinGroups": "Permitir ao utilizador aderir a grupos",
@@ -1879,11 +1879,11 @@
"SelectPreferredTranscodeVideoAudioCodecHelp": "Seleciona o codec de áudio preferido para transcodificar o conteúdo de vídeo. Se o codec preferido não for suportado, o servidor utilizará o próximo melhor codec disponível.",
"LibraryScanFanoutConcurrencyHelp": "Número máximo de tarefas paralelas durante as análises da biblioteca. Se deixares este campo vazio, será escolhido um limite com base no número de núcleos do teu sistema. AVISO: Definir um valor demasiado elevado pode causar problemas com sistemas de ficheiros em rede; se encontrares problemas, reduz este número.",
"LibraryScanFanoutConcurrency": "Limite de tarefas paralelas de análise da biblioteca",
- "PlaylistPublicDescription": "Permitir que esta lista de reprodução seja vista por qualquer utilizador com sessão iniciada.",
+ "PlaylistPublicDescription": "Permitir que esta playlist seja vista por qualquer utilizador com sessão iniciada.",
"PlaylistPublic": "Permitir acesso público",
"SaveLyricsIntoMediaFoldersHelp": "Guardar letras junto a ficheiros de áudio permiti-las-á ser mais facilmente geridas.",
- "PlaylistError.AddFailed": "Erro ao adicionar à lista de reprodução",
- "PlaylistError.CreateFailed": "Erro ao criar a lista de reprodução",
+ "PlaylistError.AddFailed": "Erro ao adicionar à playlist",
+ "PlaylistError.CreateFailed": "Erro ao criar a playlist",
"Translator": "Tradutor",
"Inker": "Tinteiro",
"Alternate": "Alternar",
From b61b96c94ddc3ac26c0b8c660445f6b74522b9da Mon Sep 17 00:00:00 2001
From: Blackspirits
Date: Sun, 29 Jun 2025 13:46:31 -0400
Subject: [PATCH 585/645] Translated using Weblate (Portuguese (Portugal))
Translation: Jellyfin/Jellyfin Web Translate-URL:
https://translate.jellyfin.org/projects/jellyfin/jellyfin-web/pt_PT/
---
src/strings/pt-pt.json | 22 +++++++++++-----------
1 file changed, 11 insertions(+), 11 deletions(-)
diff --git a/src/strings/pt-pt.json b/src/strings/pt-pt.json
index f0f172c8c..a2ffeb8e8 100644
--- a/src/strings/pt-pt.json
+++ b/src/strings/pt-pt.json
@@ -1,7 +1,7 @@
{
"Actor": "Ator",
"Add": "Adicionar",
- "AddToPlaylist": "Adicionar à lista de reprodução",
+ "AddToPlaylist": "Adicionar à playlist",
"AdditionalNotificationServices": "Explore o catálogo de extensões para instalar serviços de notificação adicionais.",
"All": "Todos",
"Audio": "Áudio",
@@ -701,7 +701,7 @@
"HeaderAudioBooks": "Áudiolivro",
"HeaderAllowMediaDeletionFrom": "Permitir remoção de multimídia a partir de",
"HeaderAlert": "Alerta",
- "HeaderAddToPlaylist": "Adicionar à lista de reprodução",
+ "HeaderAddToPlaylist": "Adicionar à playlist",
"HDPrograms": "Programas em Alta-Definição",
"EncoderPresetHelp": "Escolha um valor mais rápido para melhorar o desempenho, ou um valor mais lento para melhorar a qualidade.",
"Guide": "Programação",
@@ -727,7 +727,7 @@
"EndsAtValue": "Termina às {0}",
"EnablePhotosHelp": "Imagens serão detectadas e exibidas em conjunto com outros ficheiros multimédia.",
"EnablePhotos": "Mostrar fotografias",
- "EnableNextVideoInfoOverlayHelp": "No final de um vídeo, mostrar informação sobre o próximo vídeo da lista de reprodução.",
+ "EnableNextVideoInfoOverlayHelp": "No final de um vídeo, mostrar informações sobre o próximo vídeo da playlist atual.",
"EnableNextVideoInfoOverlay": "Mostrar informação sobre o próximo vídeo durante a reprodução",
"EnableHardwareEncoding": "Ativar codificação por hardware",
"EnableExternalVideoPlayersHelp": "O menu do leitor externo surgirá ao iniciar a reprodução de vídeo.",
@@ -858,12 +858,12 @@
"HeaderStartNow": "Iniciar",
"HeaderOnNow": "No ar",
"Unplayed": "Por reproduzir",
- "RemoveFromPlaylist": "Remover da lista de reprodução",
+ "RemoveFromPlaylist": "Remover da playlist",
"LabelUserRemoteClientBitrateLimitHelp": "Esta opção substituirá o valor predefinido do servidor, definido no Painel de Controlo > Reprodução > Transmissão.",
"MarkUnplayed": "Marcar como não visto",
"MarkPlayed": "Marcar como visto",
"LabelSelectFolderGroupsHelp": "Pastas não selecionadas serão apresentadas sozinhas, na sua própria vista.",
- "LabelPlaylist": "Lista de reprodução",
+ "LabelPlaylist": "Playlist",
"HeaderPlayOn": "Reproduzir em",
"HeaderNextVideoPlayingInValue": "O próximo vídeo começa dentro de {0}",
"HeaderNextEpisodePlayingInValue": "O próximo episódio começa dentro de {0}",
@@ -1274,7 +1274,7 @@
"EnableDecodingColorDepth10Hevc": "Ativar descodificação de hardware de 10-bits para HEVC",
"DeinterlaceMethodHelp": "Seleciona o método de desentrelaçamento a utilizar quando o software transcodifica conteúdo entrelaçado. Caso esteja ativo, o desentrelaçamento através de aceleração por hardware terá prioridade sobre esta opção.",
"ClientSettings": "Definições do cliente",
- "ButtonTogglePlaylist": "lista de reprodução",
+ "ButtonTogglePlaylist": "Playlist",
"BoxSet": "Coleção",
"Artist": "Artista",
"AlbumArtist": "Artista do álbum",
@@ -1501,7 +1501,7 @@
"LabelDirectStreamingInfo": "Informações de transmissão direta",
"LabelTranscodingInfo": "Informações de transcodificação",
"LabelSyncPlayTimeSyncDevice": "Sincronizar o tempo com",
- "LabelSyncPlayHaltPlaybackDescription": "E ignorar as atualizações recentes da lista de reprodução",
+ "LabelSyncPlayHaltPlaybackDescription": "E ignorar as atualizações recentes da playlist",
"LabelSyncPlaySettingsDescription": "Mudar definições SyncPlay",
"LabelSortName": "Filtrar nome",
"LabelSlowResponseTime": "Tempo em ms após o qual a resposta é considerada lenta",
@@ -1530,7 +1530,7 @@
"LabelAutomaticallyAddToCollection": "Adicionar automaticamente à coleção",
"ItemDetails": "Detalhes",
"GoogleCastUnsupported": "O Google Cast não é suportado",
- "EnableRewatchingNextUpHelp": "Mostrar episódios já vistos nas secções 'A Seguir'.",
+ "EnableRewatchingNextUpHelp": "Mostrar episódios já vistos na secção \"A seguir\".",
"EnableRewatchingNextUp": "Ativar Rever em 'A Seguir'",
"Digital": "Digital",
"Cursive": "Cursivo",
@@ -1881,15 +1881,15 @@
"SelectPreferredTranscodeVideoAudioCodecHelp": "Seleciona o codec de áudio preferido para transcodificar o conteúdo de vídeo. Se o codec preferido não for suportado, o servidor utilizará o próximo melhor codec disponível.",
"LibraryScanFanoutConcurrencyHelp": "Número máximo de tarefas paralelas durante a análise da biblioteca. Deixar este campo em branco fará com que o limite seja definido automaticamente com base no número de núcleos do sistema. AVISO: Definir este número demasiado alto pode causar problemas em sistemas de ficheiros de rede; se encontrares dificuldades, reduz este valor.",
"LibraryScanFanoutConcurrency": "Limite das tarefas de análise da biblioteca paralela",
- "PlaylistError.AddFailed": "Erro ao adicionar à lista de reprodução",
- "PlaylistError.CreateFailed": "Erro ao criar a lista de reprodução",
+ "PlaylistError.AddFailed": "Erro ao adicionar à playlist",
+ "PlaylistError.CreateFailed": "Erro ao criar a playlist",
"SaveLyricsIntoMediaFoldersHelp": "Guardar letras junto a ficheiros de áudio permiti-las-á ser mais facilmente geridas.",
"Inker": "Tinteiro",
"Penciller": "Lapiseira",
"Alternate": "Alternar",
"AlternateDVD": "DVD alternativo",
"PlaylistPublic": "Permitir acesso público",
- "PlaylistPublicDescription": "Permitir que esta lista de reprodução seja vista por qualquer utilizador com sessão iniciada.",
+ "PlaylistPublicDescription": "Permitir que esta playlist seja vista por qualquer utilizador com sessão iniciada.",
"Regional": "Regional",
"SaveLyricsIntoMediaFolders": "Guardar letras em pastas multimédia",
"Translator": "Tradutor",
From d33412370e7f51db445e88b67800ff39174730b0 Mon Sep 17 00:00:00 2001
From: Tal Sarid
Date: Mon, 30 Jun 2025 03:49:13 -0400
Subject: [PATCH 586/645] Translated using Weblate (Hebrew) Translation:
Jellyfin/Jellyfin Web Translate-URL:
https://translate.jellyfin.org/projects/jellyfin/jellyfin-web/he/
---
src/strings/he.json | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/src/strings/he.json b/src/strings/he.json
index 9728c7c22..336668e8f 100644
--- a/src/strings/he.json
+++ b/src/strings/he.json
@@ -558,7 +558,7 @@
"CopyStreamURLSuccess": "הקישור הועתק בהצלחה.",
"CopyStreamURL": "העתק קישור זרם",
"Connect": "התחבר",
- "ConfirmEndPlayerSession": "האם לכבות את ג'ליפין על {0}?",
+ "ConfirmEndPlayerSession": "האם ברצונך לכבות את Jellyfin ב-{0}?",
"CommunityRating": "דירוג קהילה",
"ButtonWebsite": "אתר אינטרנט",
"ButtonSubmit": "שלח",
From 5aaa16f9340c4e8afac9c1ffad7b03fff88d199f Mon Sep 17 00:00:00 2001
From: felix920506
Date: Mon, 30 Jun 2025 03:49:11 -0400
Subject: [PATCH 587/645] Translated using Weblate (Chinese (Traditional Han
script)) Translation: Jellyfin/Jellyfin Web Translate-URL:
https://translate.jellyfin.org/projects/jellyfin/jellyfin-web/zh_Hant/
---
src/strings/zh-tw.json | 13 ++++++++++---
1 file changed, 10 insertions(+), 3 deletions(-)
diff --git a/src/strings/zh-tw.json b/src/strings/zh-tw.json
index 847e1fd29..b3c0d589c 100644
--- a/src/strings/zh-tw.json
+++ b/src/strings/zh-tw.json
@@ -10,7 +10,7 @@
"ButtonForgotPassword": "忘記密碼",
"ButtonGotIt": "我知道了",
"ButtonOk": "確定",
- "ButtonQuickStartGuide": "快速入門指南",
+ "ButtonQuickStartGuide": "設定指南",
"ButtonRefreshGuideData": "更新電視節目表",
"ButtonRemove": "移除",
"ButtonSelectDirectory": "選擇資料夾",
@@ -296,7 +296,7 @@
"ConfigureDateAdded": "在「控制台 > 媒體庫 > 顯示」中設定「添加日期」的判斷方式",
"ConfirmDeleteImage": "是否確定刪除圖片?",
"ConfirmDeleteItems": "刪除這些項目會將檔案從檔案系統和媒體庫中刪除。你真的要繼續嗎?",
- "ConfirmEndPlayerSession": "您要在 {0} 秒後將 Jellyfin 關閉嗎?",
+ "ConfirmEndPlayerSession": "您要關閉 {0} 上的Jellyfin嗎?",
"Connect": "連線",
"ContinueWatching": "繼續觀看",
"CriticRating": "影評評分",
@@ -2013,5 +2013,12 @@
"DisplayLoadError": "載入顯示設定時發生錯誤。",
"HeaderUpdateRequired": "需要更新",
"ImageUploadCancelled": "圖片上傳已取消",
- "ImageUploadFailed": "圖片上傳失敗"
+ "ImageUploadFailed": "圖片上傳失敗",
+ "DownloadManager": "下載",
+ "BackupsPageLoadError": "無法載入備份頁面",
+ "ConfirmDeleteRepository": "刪除儲存庫?",
+ "Create": "建立",
+ "DeleteRepositoryConfirmation": "您確定要刪除此儲存庫嗎?",
+ "ButtonLearnMore": "瞭解更多",
+ "ButtonCreateBackup": "建立備份"
}
From 2fd6ce69befd084d4c797792e4e11cf50e9d5626 Mon Sep 17 00:00:00 2001
From: Akshay Prabhu
Date: Mon, 30 Jun 2025 02:29:04 -0400
Subject: [PATCH 588/645] Translated using Weblate (Kannada) Translation:
Jellyfin/Jellyfin Web Translate-URL:
https://translate.jellyfin.org/projects/jellyfin/jellyfin-web/kn/
---
src/strings/kn.json | 21 ++++++++++++++++++++-
1 file changed, 20 insertions(+), 1 deletion(-)
diff --git a/src/strings/kn.json b/src/strings/kn.json
index 2162b1e31..fcd8a5323 100644
--- a/src/strings/kn.json
+++ b/src/strings/kn.json
@@ -26,5 +26,24 @@
"Shows": "ಧಾರವಾಹಿಗಳು",
"Photos": "ಚಿತ್ರಗಳು",
"Artists": "ಕಲಾವಿದರು",
- "Books": "ಪುಸ್ತಕಗಳು"
+ "Books": "ಪುಸ್ತಕಗಳು",
+ "AddedOnValue": "{0} ಸೇರಿಸಲಾಗಿದೆ",
+ "AddToPlaylist": "ಪ್ಲೇಲಿಸ್ಟ್ಗೆ ಸೇರಿಸಿ",
+ "Aired": "ಪ್ರಸಾರಗೊಂಡಿದೆ",
+ "AllComplexFormats": "ಎಲ್ಲಾ ಸಂಕೀರ್ಣ ಫಾರ್ಮ್ಯಾಟ್ಗಳು (ASS, SSA, VobSub, PGS, SUB, IDX, …)",
+ "All": "ಎಲ್ಲಾ",
+ "AirPlay": "ಎರ್ಪ್ಲೇ",
+ "Add": "ಸೇರಿಸಿ",
+ "AddToCollection": "ಸಂಗ್ರಹಕ್ಕೆ ಸೇರಿಸಿ",
+ "AllEpisodes": "ಎಲ್ಲಾ ಎಪಿಸೋಡ್ಗಳು",
+ "AllChannels": "ಎಲ್ಲಾ ಚಾನೆಲ್ಗಳು",
+ "Album": "ಆಲ್ಬಮ್",
+ "AddToFavorites": "ಮೆಚ್ಚಿನವುಗಳಿಗೆ ಸೇರಿಸಿ",
+ "AlbumArtist": "ಆಲ್ಬಮ್ ಕಲಾವಿದ",
+ "Alerts": "ಅಲರ್ಟ್ಗಳು",
+ "AllLanguages": "ಎಲ್ಲಾ ಭಾಷೆಗಳು",
+ "AllLibraries": "ಎಲ್ಲಾ ಲೈಬ್ರರಿ ಗಳು",
+ "AddToPlayQueue": "ಪ್ಲೇ ಕ್ಯೂಗೆ ಸೇರಿಸಿ",
+ "AgeValue": "({0} ವರ್ಷಗಳಷ್ಟು ಹಳೆಯದು)",
+ "AirDate": "ಪ್ರಸಾರ ದಿನಾಂಕ"
}
From 855276e8afe0ef42d4754918d9e8c6d647ff9f65 Mon Sep 17 00:00:00 2001
From: MrPlow
Date: Mon, 30 Jun 2025 05:05:52 -0400
Subject: [PATCH 589/645] Translated using Weblate (German) Translation:
Jellyfin/Jellyfin Web Translate-URL:
https://translate.jellyfin.org/projects/jellyfin/jellyfin-web/de/
---
src/strings/de.json | 6 +++---
1 file changed, 3 insertions(+), 3 deletions(-)
diff --git a/src/strings/de.json b/src/strings/de.json
index efb96b38c..384d5ceed 100644
--- a/src/strings/de.json
+++ b/src/strings/de.json
@@ -101,7 +101,7 @@
"ConfirmDeleteItem": "Das Löschen dieses Objekts löscht die Datei vom Laufwerk und aus deiner Medienbibliothek. Bist du wirklich sicher?",
"ConfirmDeleteItems": "Das Löschen dieser Objekte löscht die Dateien vom Laufwerk und aus deiner Medienbibliothek. Bist du wirklich sicher?",
"ConfirmDeletion": "Löschen bestätigen",
- "ConfirmEndPlayerSession": "Möchtest du Jellyfin auf {0} beenden?",
+ "ConfirmEndPlayerSession": "Möchtest du Jellyfin um {0} herunterfahren?",
"Connect": "Verbinden",
"ContinueWatching": "Weiterschauen",
"Continuing": "Fortlaufend",
@@ -737,8 +737,8 @@
"MessageConfirmRemoveMediaLocation": "Bist du sicher, dass du diese Medienquelle entfernen willst?",
"MessageConfirmRestart": "Willst du Jellyfin wirklich neu starten?",
"MessageConfirmRevokeApiKey": "Bist du sicher, dass du diesen API-Schlüssel löschen willst? Die Verbindung der Anwendung zu diesem Server wird sofort unterbrochen werden.",
- "MessageConfirmShutdown": "Willst du den Server wirklich herunterfahren?",
- "MessageContactAdminToResetPassword": "Bitte kontaktiere deinen Systemadministrator, um dein Passwort zurücksetzen zu lassen.",
+ "MessageConfirmShutdown": "Bist du sicher, dass du den Server herunterfahren möchtest?",
+ "MessageContactAdminToResetPassword": "Bitte kontaktiere deinen Systemadministrator, um dein Passwort zurückzusetzen.",
"MessageCreateAccountAt": "Erstelle ein Konto bei {0}",
"MessageDeleteTaskTrigger": "Bist du sicher, dass du diesen Aufgabenauslöser entfernen möchtest?",
"MessageDirectoryPickerBSDInstruction": "Für BSD musst du ggf. Speicherplatz in deinem 'FreeNAS Jail' so konfigurieren, damit Jellyfin auf deine Medien zugreifen kann.",
From a53a2a6c86c924b3aab9a3c3e58a48f95691cbd3 Mon Sep 17 00:00:00 2001
From: muqtda
Date: Mon, 30 Jun 2025 11:33:53 -0400
Subject: [PATCH 590/645] Translated using Weblate (Arabic) Translation:
Jellyfin/Jellyfin Web Translate-URL:
https://translate.jellyfin.org/projects/jellyfin/jellyfin-web/ar/
---
src/strings/ar.json | 16 ++++++++--------
1 file changed, 8 insertions(+), 8 deletions(-)
diff --git a/src/strings/ar.json b/src/strings/ar.json
index 59e2ad319..c58f0f05d 100644
--- a/src/strings/ar.json
+++ b/src/strings/ar.json
@@ -10,7 +10,7 @@
"BirthDateValue": "وُلد: {0}",
"BirthPlaceValue": "مكان الميلاد: {0}",
"Browse": "تصفح",
- "MessageBrowsePluginCatalog": "تصفح قائمتنا للملحق لترى المتوفر من الملاحق.",
+ "MessageBrowsePluginCatalog": "تصفح قائمتنا للاضافات لترى المتوفر .",
"ButtonAddMediaLibrary": "إضافة مكتبة وسائط",
"ButtonAddScheduledTaskTrigger": "إضافة معيار",
"ButtonAddServer": "إضافة خادم",
@@ -500,13 +500,13 @@
"MessageAlreadyInstalled": "هذا الإصدار تم تثبيته مسبقاً.",
"MessageAreYouSureYouWishToRemoveMediaFolder": "هل أنت متأكد أنك تريد إزالة مجلد الوسائط هذا؟",
"MessageConfirmDeleteGuideProvider": "هل أنت متأكد أنك ترغب في حذف مزود الدليل هذا؟",
- "MessageConfirmDeleteTunerDevice": "هل أنت متأكد أنك تريد حذف هذا المولف؟",
+ "MessageConfirmDeleteTunerDevice": "هل أنت متأكد أنك تريد حذف هذا الجهاز؟",
"MessageConfirmProfileDeletion": "هل أنت متأكد أنك تريد حذف هذه العريضة؟",
- "MessageConfirmRemoveMediaLocation": "هل أنت متأكد أنك تريد حذف هذا المكان؟",
- "MessageConfirmRestart": "هل أنت متأكد أنك تريد أن تعيد تشغيل خادم Jellyfin؟",
+ "MessageConfirmRemoveMediaLocation": "هل أنت متأكد أنك تريد حذف هذا الموقع؟",
+ "MessageConfirmRestart": "هل أنت متأكد أنك تريد أن تعيد تشغيل سيرفر Jellyfin؟",
"MessageConfirmRevokeApiKey": "هل أنت متأكد من رغبتك في إبطال مفتاح واجهة برمجة التطبيقات هذا؟ سيتم إنهاء اتصال التطبيق بهذا الخادم بشكل مفاجئ.",
- "MessageConfirmShutdown": "هل أنت متأكد أنك تريد أن تنهي تشغيل الخادم؟",
- "MessageContactAdminToResetPassword": "الرجاء التواصل مع مدير النظام لإعادة أعداد كملة سرّك.",
+ "MessageConfirmShutdown": "هل أنت متأكد أنك تريد ايقاف السيرفر؟",
+ "MessageContactAdminToResetPassword": "الرجاء التواصل مع مدير النظام لإعادة أعداد كلمة السر.",
"MessageCreateAccountAt": "أنشئ حساب في {0}",
"MessageDeleteTaskTrigger": "هل أنت متأكد أنك تريد حذف زناد المهمة؟",
"MessageDirectoryPickerBSDInstruction": "بالنسبة إلى BSD ، قد تحتاج إلى إعداد التخزين داخل \"FreeNAS Jail\" حتى يتمكن Jellyfin من الوصول إلى الوسائط الخاصة بك.",
@@ -645,7 +645,7 @@
"RecommendationBecauseYouWatched": "لأنك شاهدت {0}",
"RecommendationDirectedBy": "إخراج {0}",
"RecommendationStarring": "بطولة {0}",
- "MessageChangeRecordingPath": "إن تغيير مجلد التسجيل لم يهجّر التسجيلات الموجودة من الموقع القديم إلى الموقع الجديد. سيتعين عليك أن تنقلهم بنفسك لو شئت.",
+ "MessageChangeRecordingPath": "إن تغيير مجلد التسجيل لن ينقل التسجيلات الموجودة من الموقع القديم إلى الموقع الجديد. سيتعين عليك أن تنقلهم بنفسك .",
"RememberMe": "تذكرنى",
"Rewind": "الترجيع",
"Saturday": "السبت",
@@ -814,7 +814,7 @@
"MessageImageTypeNotSelected": "الرجاء اختيار نوع الصورة من القائمة المنسدلة.",
"MessageImageFileTypeAllowed": "ملفات JPEG و PNG مدعومون فقط.",
"MessageDownloadQueued": "تمت إضافة التحميل إلى قائمة الانتظار.",
- "MessageConfirmRecordingCancellation": "الغاء التسجيل؟",
+ "MessageConfirmRecordingCancellation": "هل تريد الغاء التسجيل؟",
"MessageAreYouSureDeleteSubtitles": "هل انت متأكد انك تريد حذف ملف الترجمة هذا؟",
"Menu": "القائمة",
"MediaIsBeingConverted": "يتم تحويل الوسط الى صيغة متوافقة مع الحهاز الذي يشغل الوسط.",
From b38df3d55289ddd3b675c6e8726ef4d316d40e0f Mon Sep 17 00:00:00 2001
From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com>
Date: Mon, 30 Jun 2025 17:56:56 +0000
Subject: [PATCH 591/645] Update github/codeql-action action to v3.29.2
---
.github/workflows/__codeql.yml | 6 +++---
1 file changed, 3 insertions(+), 3 deletions(-)
diff --git a/.github/workflows/__codeql.yml b/.github/workflows/__codeql.yml
index 54bccbf55..c001ec143 100644
--- a/.github/workflows/__codeql.yml
+++ b/.github/workflows/__codeql.yml
@@ -26,15 +26,15 @@ jobs:
show-progress: false
- name: Initialize CodeQL 🛠️
- uses: github/codeql-action/init@39edc492dbe16b1465b0cafca41432d857bdb31a # v3.29.1
+ uses: github/codeql-action/init@181d5eefc20863364f96762470ba6f862bdef56b # v3.29.2
with:
queries: security-and-quality
languages: ${{ matrix.language }}
- name: Autobuild 📦
- uses: github/codeql-action/autobuild@39edc492dbe16b1465b0cafca41432d857bdb31a # v3.29.1
+ uses: github/codeql-action/autobuild@181d5eefc20863364f96762470ba6f862bdef56b # v3.29.2
- name: Perform CodeQL Analysis 🧪
- uses: github/codeql-action/analyze@39edc492dbe16b1465b0cafca41432d857bdb31a # v3.29.1
+ uses: github/codeql-action/analyze@181d5eefc20863364f96762470ba6f862bdef56b # v3.29.2
with:
category: '/language:${{matrix.language}}'
From 5a1f44391df66e9c6d70dcf297e446b55666b1a4 Mon Sep 17 00:00:00 2001
From: Gargotaire
Date: Mon, 30 Jun 2025 13:43:16 -0400
Subject: [PATCH 592/645] Translated using Weblate (Catalan) Translation:
Jellyfin/Jellyfin Web Translate-URL:
https://translate.jellyfin.org/projects/jellyfin/jellyfin-web/ca/
---
src/strings/ca.json | 8 ++++----
1 file changed, 4 insertions(+), 4 deletions(-)
diff --git a/src/strings/ca.json b/src/strings/ca.json
index e834999c6..da19a915d 100644
--- a/src/strings/ca.json
+++ b/src/strings/ca.json
@@ -496,7 +496,7 @@
"RecordingCancelled": "Enregistrament cancel·lat.",
"RecordingScheduled": "Enregistrament programat.",
"Refresh": "Actualitza",
- "RefreshMetadata": "Actualitza les metadades",
+ "RefreshMetadata": "Actualització de les metadades",
"RefreshQueued": "Actualització posada a la cua.",
"ReleaseDate": "Data d'estrena",
"RememberMe": "Recorda-m'ho",
@@ -504,7 +504,7 @@
"RemoveFromPlaylist": "Esborra de la llista de reproducció",
"Repeat": "Repeteix",
"RepeatEpisodes": "Repeteix els episodis",
- "ReplaceAllMetadata": "Substitueix totes les metadades",
+ "ReplaceAllMetadata": "Substitució de totes les metadades",
"ReplaceExistingImages": "Substitueix les imatges existents",
"ResumeAt": "Reprodueix des de {0}",
"Saturday": "Dissabte",
@@ -512,7 +512,7 @@
"Screenshots": "Captures de pantalla",
"Search": "Cerca",
"SearchForCollectionInternetMetadata": "Cerca imatges i metadades a Internet",
- "SearchForMissingMetadata": "Cerca metadades perdudes",
+ "SearchForMissingMetadata": "Cerca de metadades perdudes",
"SearchForSubtitles": "Cerca subtítols",
"SendMessage": "Envia un missatge",
"SeriesCancelled": "Sèrie cancel·lada.",
@@ -961,7 +961,7 @@
"Screenshot": "Captura",
"Schedule": "Programa",
"ScanLibrary": "S'estan escanejant les mediateques",
- "ScanForNewAndUpdatedFiles": "Cerca fitxers nous i actualitzats",
+ "ScanForNewAndUpdatedFiles": "Cerca de fitxers nous i actualitzats",
"SaveSubtitlesIntoMediaFoldersHelp": "L'emmagatzematge dels subtítols amb els fitxers de vídeo permetrà gestionar-los amb més facilitat.",
"SaveSubtitlesIntoMediaFolders": "Desa els subtítols en els directoris de continguts multimèdia",
"NoSubtitlesHelp": "Els subtítols no es carregaran per defecte. Encara es poden activar de forma manual durant la reproducció.",
From 9f6e3c306190726384e4251217a8110b3e13258b Mon Sep 17 00:00:00 2001
From: Gargotaire
Date: Mon, 30 Jun 2025 17:05:22 -0400
Subject: [PATCH 593/645] Translated using Weblate (Catalan) Translation:
Jellyfin/Jellyfin Web Translate-URL:
https://translate.jellyfin.org/projects/jellyfin/jellyfin-web/ca/
---
src/strings/ca.json | 8 ++++----
1 file changed, 4 insertions(+), 4 deletions(-)
diff --git a/src/strings/ca.json b/src/strings/ca.json
index da19a915d..b7ddc4b15 100644
--- a/src/strings/ca.json
+++ b/src/strings/ca.json
@@ -437,7 +437,7 @@
"OptionDaily": "Diari",
"OptionDateAdded": "Afegit el",
"OptionDateAddedImportTime": "Fes servir la data d'escaneig",
- "OptionDatePlayed": "Reproduït el",
+ "OptionDatePlayed": "Data de reproducció",
"OptionDisableUser": "Habilita aquest usuari",
"OptionDisableUserHelp": "El servidor no permetrà cap connexió d’aquest usuari. Les connexions existents es tancaran immediatament.",
"OptionDislikes": "No m'agrada",
@@ -672,7 +672,7 @@
"ColorPrimaries": "Colors primaris",
"DefaultMetadataLangaugeDescription": "Aquests són els vostres valors per defecte i poden ser personalitzats per a cada mediateca.",
"Default": "Per defecte",
- "DatePlayed": "Reproduït el",
+ "DatePlayed": "Data de reproducció",
"DateAdded": "Data d'addició",
"CustomDlnaProfilesHelp": "Crear un perfil personalitzat per a un nou dispositiu o substituir un perfil de sistema.",
"HeaderAdmin": "Administració",
@@ -1417,7 +1417,7 @@
"PleaseAddAtLeastOneFolder": "Afegiu-hi almenys un directori fent clic al botó '+'.",
"PlayNextEpisodeAutomatically": "Reprodueix l'episodi següent de forma automàtica",
"PlayNext": "Reprodueix el següent",
- "PlayCount": "Comptador de reproduccions",
+ "PlayCount": "Nombre de reproduccions",
"PlaybackRate": "Velocitat de reproducció",
"PlaybackErrorNoCompatibleStream": "Aquest client no és compatible amb el contingut multimèdia i el servidor no està enviant un format multimèdia compatible.",
"PlaybackData": "Informació de reproducció",
@@ -1433,7 +1433,7 @@
"PasswordResetProviderHelp": "Escollir un proveïdor de restabliment de contrasenya que s'utilitzarà quan l'usuari sol·liciti un restabliment de contrasenya.",
"PackageInstallFailed": "Ha fallat la instal·lació de {0} (versió {1}).",
"PackageInstallCompleted": "S'ha acabat la instal·lació de {0} (versió {1}).",
- "Overview": "Visió de conjunt",
+ "Overview": "Sinopsi",
"OptionTrackName": "Nom de la pista",
"OptionSaveMetadataAsHiddenHelp": "La configuració s'aplicarà a les metadades noves que es vagin creant. Els fitxers existents de metadades s'actualitzaran la propera vegada que es desin al servidor.",
"OptionResElement": "'res' element",
From 78ea4d934246f5ffc96218d69043ec843c9947aa Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Petric=C4=83=20Andrei-Cosmin?=
Date: Mon, 30 Jun 2025 20:25:27 -0400
Subject: [PATCH 594/645] Translated using Weblate (Romanian) Translation:
Jellyfin/Jellyfin Web Translate-URL:
https://translate.jellyfin.org/projects/jellyfin/jellyfin-web/ro/
---
src/strings/ro.json | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/src/strings/ro.json b/src/strings/ro.json
index 25afc0e5c..f47f74a15 100644
--- a/src/strings/ro.json
+++ b/src/strings/ro.json
@@ -255,7 +255,7 @@
"ButtonRename": "Redenumește",
"ButtonResetEasyPassword": "Resetează codul Easy PIN",
"ButtonResume": "Continuă",
- "ButtonScanAllLibraries": "Scanează Toate Librariile",
+ "ButtonScanAllLibraries": "Scanează Toate Librăriile",
"ButtonSelectView": "Selectați perspectivă",
"ButtonSend": "Trimite",
"ButtonShutdown": "Oprește",
@@ -1363,7 +1363,7 @@
"Subtitle": "Subtitrare",
"SpecialFeatures": "Caracteristici Speciale",
"SelectServer": "Selectează server",
- "Restart": "Redemarare",
+ "Restart": "Restartează",
"ResetPassword": "Resetează Parola",
"Profile": "Profil",
"PosterCard": "Afiș",
From b979240a9fcecce49c29d8a600bea591832db777 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Petric=C4=83=20Andrei-Cosmin?=
Date: Mon, 30 Jun 2025 20:35:47 -0400
Subject: [PATCH 595/645] Translated using Weblate (Romanian) Translation:
Jellyfin/Jellyfin Web Translate-URL:
https://translate.jellyfin.org/projects/jellyfin/jellyfin-web/ro/
---
src/strings/ro.json | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/src/strings/ro.json b/src/strings/ro.json
index f47f74a15..9400d154a 100644
--- a/src/strings/ro.json
+++ b/src/strings/ro.json
@@ -1681,7 +1681,7 @@
"LabelParallelImageEncodingLimitHelp": "Numărul maxim de encodări ale imaginilor care sunt permise să ruleze simultan. Lăsând această opțiune goală, se va alege automat o limită bazată pe specificațiile tehnice ale sistemului.",
"HeaderDummyChapter": "Imaginile Capitolelor",
"HeaderRecordingMetadataSaving": "Înregistrarea Metadatelor",
- "EnableSplashScreen": "Activează imaginea ecranului de pornire",
+ "EnableSplashScreen": "Activează ecranul de pornire",
"StereoDownmixAlgorithmHelp": "Algoritm utilizat pentru downmix multi-canale audio la stereo.",
"Short": "Scurt",
"MediaInfoDoViTitle": "Titlu DV",
From 6316bdb53bfd1548bf8742e5c48d1f009e3dcfa9 Mon Sep 17 00:00:00 2001
From: Edson
Date: Tue, 1 Jul 2025 00:54:16 -0400
Subject: [PATCH 596/645] Translated using Weblate (Portuguese) Translation:
Jellyfin/Jellyfin Web Translate-URL:
https://translate.jellyfin.org/projects/jellyfin/jellyfin-web/pt/
---
src/strings/pt.json | 22 +++++++++++++++++-----
1 file changed, 17 insertions(+), 5 deletions(-)
diff --git a/src/strings/pt.json b/src/strings/pt.json
index 10a0e4052..5a1a791bd 100644
--- a/src/strings/pt.json
+++ b/src/strings/pt.json
@@ -1524,7 +1524,7 @@
"OnApplicationStartup": "Na inicialização do aplicativo",
"MessageSyncPlayLibraryAccessDenied": "O acesso a este conteúdo é restrito.",
"SortName": "Classificar nome",
- "SubtitleAppearanceSettingsAlsoPassedToCastDevices": "Estas definições também se aplicam a qualquer reprodução do Google Cast iniciada por este dispositivo.",
+ "SubtitleAppearanceSettingsAlsoPassedToCastDevices": "Essas configurações também se aplicam a qualquer reprodução do Google Cast iniciada por este dispositivo.",
"OnWakeFromSleep": "Ao acordar da suspensão",
"OptionMaxActiveSessionsHelp": "Um valor 0 desativará o recurso.",
"Watched": "Assistido",
@@ -1591,7 +1591,7 @@
"LogLevel.Critical": "Crítico",
"New": "Novo",
"SubtitleWhite": "Branco",
- "SubtitleLightGray": "Cinzento-claro",
+ "SubtitleLightGray": "Cinza claro",
"Track": "Faixa",
"TypeOptionPluralMusicArtist": "Artistas musicais",
"TypeOptionPluralSeason": "Temporadas",
@@ -1631,7 +1631,7 @@
"LogoScreensaver": "Logótipo da proteção de ecrã",
"MediaInfoColorSpace": "Espaço colorido",
"Studio": "Estúdio",
- "SubtitleGray": "Cinzento",
+ "SubtitleGray": "Cinza",
"TabLogs": "Registos (Logs)",
"Tags": "Etiquetas",
"Vertical": "Vertical",
@@ -1705,7 +1705,7 @@
"LabelBuildVersion": "Versão de compilação",
"LabelWebVersion": "Versão web",
"SubtitleCyan": "Ciano",
- "SubtitleOffset": "Desvio das legendas",
+ "SubtitleOffset": "Deslocamento de legenda",
"ValueOneMusicVideo": "1 videoclipe",
"ValueOneSeries": "1 série",
"XmlTvSportsCategoriesHelp": "Lista de categorias, separadas por '|', que correspondem a programas de desporto.",
@@ -2043,5 +2043,17 @@
"LabelBackupsUnavailable": "Sem cópias de segurança disponíveis",
"LabelDatabase": "Base de dados",
"LabelImageCache": "Memória cache de imagens",
- "LabelProgramData": "Dados da aplicação"
+ "LabelProgramData": "Dados da aplicação",
+ "MessageRestoreDisclaimer": "AVISO: Você está prestes a restaurar a partir de um backup anterior. Seu servidor ficará inutilizável durante o processo e todos os novos dados criados desde o backup serão perdidos.",
+ "RepositoriesPageLoadError": "Falha ao carregar repositórios",
+ "PluginsLoadError": "Ocorreu um erro ao carregar os plugins.",
+ "MessageRestoreInProgress": "Restauração em andamento",
+ "MessageRestoreSuccess": "Restauração concluída com sucesso",
+ "StorageType.CDRom": "CD-ROM",
+ "StorageType.NoRootDirectory": "Nenhum diretório raiz",
+ "StorageType.Ram": "RAM",
+ "StorageType.Removable": "Removível",
+ "StorageType.Fixed": "Consertado",
+ "StorageType.Network": "Network",
+ "MessageWaitingForServer": "Aguardando servidor..."
}
From 78c24696d0c13852038761d47d2f1b9afd93386a Mon Sep 17 00:00:00 2001
From: Spiros Vita
Date: Tue, 1 Jul 2025 05:03:07 -0400
Subject: [PATCH 597/645] Translated using Weblate (Greek) Translation:
Jellyfin/Jellyfin Web Translate-URL:
https://translate.jellyfin.org/projects/jellyfin/jellyfin-web/el/
---
src/strings/el.json | 40 ++++++++++++++++++++++++++++++++++++----
1 file changed, 36 insertions(+), 4 deletions(-)
diff --git a/src/strings/el.json b/src/strings/el.json
index d661aafee..7c8c2927a 100644
--- a/src/strings/el.json
+++ b/src/strings/el.json
@@ -66,7 +66,7 @@
"ButtonParentalControl": "Γονικός έλεγχος",
"ButtonPause": "Παύση",
"ButtonPreviousTrack": "Προηγούμενο",
- "ButtonQuickStartGuide": "Οδηγός Γρήγορης Εκκίνησης",
+ "ButtonQuickStartGuide": "Οδηγός Ρύθμισης",
"ButtonRefreshGuideData": "Ανανέωση Δεδομένων Οδηγού",
"ButtonRemove": "Κατάργηση",
"ButtonRename": "Μετονομασία",
@@ -1304,7 +1304,7 @@
"LabelSyncPlaySettingsSpeedToSyncHelp": "Μέθοδος διόρθωσης συγχρονισμού που συνίσταται στην επιτάχυνση της αναπαραγωγής. Η διόρθωση συγχρονισμού πρέπει να είναι ενεργοποιημένη.",
"LabelSyncPlaySettingsSkipToSyncHelp": "Μέθοδος διόρθωσης συγχρονισμού που συνίσταται στην αναζήτηση της εκτιμώμενης θέσης. Η διόρθωση συγχρονισμού πρέπει να είναι ενεργοποιημένη.",
"LabelTonemappingDesatHelp": "Εφαρμόστε αποκορεσμό για τονισμένα σημεία που υπερβαίνουν αυτό το επίπεδο φωτεινότητας. Οι συνιστώμενη τιμή είναι 0 (απενεργοποίηση).",
- "LabelTonemappingParamHelp": "Συντονίστε τον αλγόριθμο χαρτογράφησης τόνου. Οι συνιστώμενες και προεπιλεγμένες τιμές είναι NaN. Γενικά αφήστε το κενό.",
+ "LabelTonemappingParamHelp": "Συντονίστε τον αλγόριθμο χαρτογράφησης τόνου. Γενικά αφήστε το κενό.",
"LabelTonemappingPeakHelp": "Παράκαμψη τιμής ενσωματωμένων μεταδεδομένων για ένα σήμα εισόδου με αυτή τη τιμή κορυφής. Οι προεπιλεγμένη τιμή είναι 100 (1000nit).",
"LabelTonemappingThresholdHelp": "Οι παράμετροι του αλγορίθμου χαρτογράφησης τόνου ρυθμίζονται με ακρίβεια ανά σκηνή. Και χρησιμοποιείται ένα κατώφλι για να ανιχνεύσει εάν η σκηνή έχει αλλάξει ή όχι. Εάν η απόσταση μεταξύ της τρέχουσας μέσης φωτεινότητας του καρέ και του τρέχοντος μέσου όρου λειτουργίας υπερβαίνει μια τιμή κατωφλίου, θα υπολογίσουμε εκ νέου τη μέση φωτεινότητα της σκηνής και τη μέγιστη φωτεινότητα. Οι συνιστώμενες και προεπιλεγμένες τιμές είναι 0,8 και 0,2.",
"LabelTranscodingProgress": "Πρόοδος διακωδικοποίησης",
@@ -1691,7 +1691,7 @@
"LabelParallelImageEncodingLimit": "Οριο παράλληλης κωδικοποίησης εικόνων",
"HeaderRecordingMetadataSaving": "Καταγραφή Μεταδεδομένων",
"HeaderPerformance": "Επίδοση",
- "LabelDummyChapterDurationHelp": "Το διάστημα ανάμεσα στα ψεύτικα κεφάλαια. Ορισμός σε 0 για την απενεργοποίηση παραγωγής ψεύτικων κεφαλαίων. Η μεταβολή αυτού δεν θα έχει επίδραση στα ήδη υπάρχοντα ψεύτικα κεφάλαια.",
+ "LabelDummyChapterDurationHelp": "Το διάστημα ανάμεσα στα ψεύτικα κεφάλαια σε δευτερόλεπτα. Ορίστε το σε 0 για την απενεργοποίηση δημιουργίας ψεύτικων κεφαλαίων. Η αλλαγή της ρύθμισης δεν θα έχει επίδραση στα ήδη υπάρχοντα ψεύτικα κεφάλαια.",
"HeaderDummyChapter": "Εικόνες Κεφαλαίου",
"LabelDummyChapterCount": "Όριο",
"LabelDummyChapterCountHelp": "Ο μέγιστος αριθμός εικόνων κεφαλαίου που θα εξαχθεί για κάθε αρχείο πολυμέσων.",
@@ -2001,5 +2001,37 @@
"LimitSegmentLengthHelp": "Η ενεργοποίηση αυτής της επιλογής μπορεί να βοηθήσει στην αποτροπή κολλήματος του προγράμματος αναπαραγωγής HLS κατά την αναζήτηση σε ορισμένες συσκευές, όπως οι τηλεοράσεις webOS.",
"LabelQscale": "Qscale",
"HeaderUpdateRequired": "Απαιτείται ενημέρωση",
- "ReadInputAtNativeFramerate": "Ανάγνωση εισόδου σε εγγενή ρυθμό καρέ"
+ "ReadInputAtNativeFramerate": "Ανάγνωση εισόδου σε εγγενή ρυθμό καρέ",
+ "DownloadManager": "Λήψεις",
+ "LabelBackupsUnavailable": "Δεν υπάρχουν διαθέσιμα αντίγραφα ασφαλείας",
+ "MessageForgotPasswordPinReset": "Εισάγετε το PIN εδώ για να ολοκληρώσετε την επαναφορά κωδικού πρόσβασης",
+ "MessageRestoreDisclaimer": "ΠΡΟΕΙΔΟΠΟΙΗΣΗ: Θα επαναφέρετε ένα προηγούμενο αντίγραφο ασφαλείας. Ο διακομιστής σας δεν θα λειτουργεί για όσο διαρκεί η διαδικασία επαναφοράς, και όλα τα δεδομένα που δημιουργήθηκαν μετά την δημιουργία του αντίγραφου ασφαλείας θα χαθούν.",
+ "PluginsLoadError": "Ένα σφάλμα συνέβη κατά την φόρτωση των προσθέτων.",
+ "StorageType.NoRootDirectory": "Δεν υπάρχει ριζικός κατάλογος",
+ "LiveTVPageLoadError": "Αποτυχία φόρτωσης σελίδας καταγραφών",
+ "MessageRestoreSuccess": "Η επαναφορά ολοκληρώθηκε επιτυχώς",
+ "RepositoriesPageLoadError": "Αποτυχία φόρτωσης αποθετηρίων",
+ "ButtonLearnMore": "Μάθετε περισσότερα",
+ "LabelImageCache": "Κρυφή μνήμη εικόνων",
+ "StorageType.CDRom": "CD-ROM",
+ "StorageType.Fixed": "Σταθερός",
+ "StorageType.Network": "Δίκτυο",
+ "StorageType.Ram": "RAM",
+ "StorageType.Unknown": "Άγνωστος",
+ "Success": "Επιτυχία",
+ "TranscodingLoadError": "Αποτυχία φόρτωσης ρυθμίσεων διακωδικοποίησης",
+ "BackupsPageLoadError": "Αποτυχία φόρτωσης σελίδας αντιγράφων ασφαλείας",
+ "ButtonCreateBackup": "Δημιουργία αντίγραφου ασφαλείας",
+ "Create": "Δημιουργία",
+ "LabelDatabase": "Βάση δεδομένων",
+ "LabelRestore": "Επαναφορά",
+ "MessageBackupDisclaimer": "Ανάλογα με το μέγεθος της βιβλιοθήκης σας, η διαδικασία δημιουργίας αντιγράφων ασφαλείας μπορεί να διαρκέσει πολύ ώρα.",
+ "MessageBackupInProgress": "Δημιουργία αντιγράφων ασφαλείας σε εξέλιξη",
+ "MessageWaitingForServer": "Αναμονή για τον διακομιστή...",
+ "HeaderBackups": "Αντίγραφα ασφαλείας",
+ "ConfirmDeleteRepository": "Διαγραφή αποθετηρίου;",
+ "DeleteRepositoryConfirmation": "Είστε σίγουροι ότι θέλετε να σβήσετε αυτό το αποθετήριο;",
+ "HeaderBackupsHelp": "Δημιουργήστε και επαναφέρετε στιγμιότυπα του διακομιστή σας, τα οποία μπορεί να περιλαμβάνουν τη βάση δεδομένων, τα μεταδεδομένα, τους υποτίτλους και το Trickplay.",
+ "LabelProgramData": "Δεδομένα προγράμματος",
+ "MessageRestoreInProgress": "Επαναφορά σε εξέλιξη"
}
From e10b5cda578d3c6e8fdcb5ffa4b82ce60e4621e9 Mon Sep 17 00:00:00 2001
From: Francesco Lo Faro
Date: Tue, 1 Jul 2025 06:19:51 -0400
Subject: [PATCH 598/645] Translated using Weblate (Italian) Translation:
Jellyfin/Jellyfin Web Translate-URL:
https://translate.jellyfin.org/projects/jellyfin/jellyfin-web/it/
---
src/strings/it.json | 33 ++++++++++++++++++++++++++++++++-
1 file changed, 32 insertions(+), 1 deletion(-)
diff --git a/src/strings/it.json b/src/strings/it.json
index 8664521ff..581a78a0a 100644
--- a/src/strings/it.json
+++ b/src/strings/it.json
@@ -2031,5 +2031,36 @@
"HeaderUpdateRequired": "Aggiornamento Necessario",
"ViewSettings": "Mostra impostazioni",
"DownloadManager": "Scaricati",
- "MessageForgotPasswordPinReset": "Inserisci il PIN per resettare la Password"
+ "MessageForgotPasswordPinReset": "Inserisci il PIN per resettare la Password",
+ "LiveTVPageLoadError": "Impossibile caricare la pagina delle registrazioni",
+ "MessageBackupDisclaimer": "In base alla grandezza della tua libreria, il processo di backup può impiegare un po' di tempo.",
+ "MessageRestoreDisclaimer": "ATTENZIONE: Stai per ripristinare un backup precedente. Il tuo server verrà reso inutilizzabile durante il processo e tutti i dati creati dopo il backup verranno persi.",
+ "RepositoriesPageLoadError": "Impossibile caricare i repository",
+ "PluginsLoadError": "Si è verificato un errore durante il caricamento dei plugin.",
+ "StorageType.NoRootDirectory": "Nessuna Cartella Radice",
+ "Success": "Successo",
+ "StorageType.Network": "Rete",
+ "HeaderBackups": "Backup",
+ "MessageBackupInProgress": "Backup in corso",
+ "StorageType.CDRom": "CD-ROM",
+ "StorageType.Fixed": "Fisso",
+ "StorageType.Ram": "RAM",
+ "StorageType.Removable": "Removibile",
+ "StorageType.Unknown": "Sconosciuto",
+ "ButtonLearnMore": "Scopri di più",
+ "Create": "Crea",
+ "HeaderBackupsHelp": "Crea e ripristina snapshot del tuo server che possono includere il database, metadati, sottotitoli e trickplay.",
+ "LabelBackupsUnavailable": "Nessun backup disponibile",
+ "LabelDatabase": "Database",
+ "MessageRestoreSuccess": "Ripristino completato con successo",
+ "MessageWaitingForServer": "In attesa del server...",
+ "TranscodingLoadError": "Impossibile caricare le impostazioni di transcodifica",
+ "BackupsPageLoadError": "Impossibile caricare la pagina dei backup",
+ "ButtonCreateBackup": "Crea Backup",
+ "ConfirmDeleteRepository": "Eliminare repository?",
+ "DeleteRepositoryConfirmation": "Sei sicuro di voler eliminare questo repository?",
+ "LabelRestore": "Ripristina",
+ "MessageRestoreInProgress": "Ripristino in corso",
+ "LabelImageCache": "Cache delle immagini",
+ "LabelProgramData": "Dati del programma"
}
From fcc8c8c879a8055b20ba3838e4c009ec336048a7 Mon Sep 17 00:00:00 2001
From: Edson
Date: Tue, 1 Jul 2025 13:59:09 -0400
Subject: [PATCH 599/645] Translated using Weblate (Portuguese) Translation:
Jellyfin/Jellyfin Web Translate-URL:
https://translate.jellyfin.org/projects/jellyfin/jellyfin-web/pt/
---
src/strings/pt.json | 2584 +++++++++++++++++++++----------------------
1 file changed, 1292 insertions(+), 1292 deletions(-)
diff --git a/src/strings/pt.json b/src/strings/pt.json
index 5a1a791bd..3c2e3ad00 100644
--- a/src/strings/pt.json
+++ b/src/strings/pt.json
@@ -1,155 +1,155 @@
{
- "HeaderTypeImageFetchers": "Fornecedores de imagens ({0})",
- "HeaderSubtitleDownloads": "Transferências de Legendas",
- "HeaderKodiMetadataHelp": "Para ativar ou desativar os metadados NFO, edita uma biblioteca e localiza a secção dos metadados.",
- "HeaderFetcherSettings": "Definições do Pesquisador",
- "HeaderCastAndCrew": "Elenco e equipa técnica",
- "HeaderAppearsOn": "Presente em",
+ "HeaderTypeImageFetchers": "Buscadores de imagem ({0})",
+ "HeaderSubtitleDownloads": "Downloads de Legendas",
+ "HeaderKodiMetadataHelp": "Para ativar ou desativar os metadados NFO, edite uma biblioteca e encontre a seção 'Salvadores de metadados'.",
+ "HeaderFetcherSettings": "Configurações do Fetcher",
+ "HeaderCastAndCrew": "Elenco & Equipe",
+ "HeaderAppearsOn": "Aparece Em",
"HeaderAdmin": "Administração",
- "GuideProviderLogin": "Iniciar sessão",
- "XmlTvPathHelp": "Caminho para um ficheiro XMLTV. O Jellyfin vai ler o ficheiro periodicamente para atualizar a programação da TV. O utilizador é responsável pela criação e atualização do ficheiro.",
+ "GuideProviderLogin": "Login",
+ "XmlTvPathHelp": "Um caminho para um arquivo XMLTV. O Jellyfin lerá este arquivo e verificará periodicamente se há atualizações. Você é responsável por criar e atualizar o arquivo.",
"XmlDocumentAttributeListHelp": "Estes atributos são aplicados ao elemento principal de cada resposta XML.",
- "Writer": "Argumento",
- "WizardCompleted": "É tudo o que precisamos por agora. O Jellyfin começou a recolher informações sobre a tua biblioteca multimédia. Vê algumas das nossas aplicações e, em seguida, clica em Terminar para ver o Painel de Controlo.",
+ "Writer": "Escritor",
+ "WizardCompleted": "Isso é tudo que precisamos por agora. O Jellyfin começou a coletar informações sobre sua biblioteca de mídia. Confira alguns de nossos aplicativos e, em seguida, clique em Concluir para ver o Painel.",
"WelcomeToProject": "Bem-vindo ao Jellyfin!",
- "Wednesday": "Quarta",
+ "Wednesday": "Quarta-feira",
"ValueVideoCodec": "Codec de Vídeo: {0}",
"ValueTimeLimitSingleHour": "Limite de tempo: 1 hora",
"ValueTimeLimitMultiHour": "Limite de tempo: {0} horas",
"ValueSpecialEpisodeName": "Especial - {0}",
"ValueConditions": "Condições: {0}",
"ValueAudioCodec": "Codec de Áudio: {0}",
- "UserProfilesIntro": "O Jellyfin suporta perfis de utilizadores, permitindo que cada utilizador tenha as suas definições de visualização, estado de reprodução e controlos parentais.",
- "UserAgentHelp": "Forneça um 'User-Agent' HTTP personalizado.",
- "Unplayed": "Por reproduzir",
+ "UserProfilesIntro": "O Jellyfin inclui suporte para perfis de usuário com configurações de exibição granulares, estado de reprodução e controles dos pais.",
+ "UserAgentHelp": "Fornecer um cabeçalho HTTP 'User-Agent' personalizado.",
+ "Unplayed": "Não reproduzido",
"Unmute": "Ativar som",
- "HeaderUninstallPlugin": "Desinstalar extensão",
- "UninstallPluginConfirmation": "Tem a certeza que deseja desinstalar {0}?",
+ "HeaderUninstallPlugin": "Desinstalar Plugin",
+ "UninstallPluginConfirmation": "Tem certeza de que deseja desinstalar {0}?",
"Uniform": "Uniforme",
- "Tuesday": "Terça",
+ "Tuesday": "Terça-feira",
"TrackCount": "{0} faixas",
"TitlePlayback": "Reprodução",
- "Thursday": "Quinta",
- "ThisWizardWillGuideYou": "Este assistente irá ajudar-te durante o processo de configuração. Para começar, introduz o nome do servidor e seleciona o teu idioma.",
- "TellUsAboutYourself": "Fale-nos sobre si",
+ "Thursday": "Quinta-feira",
+ "ThisWizardWillGuideYou": "Este assistente ajudará você a passar pelo processo de configuração. Para começar, insira um nome de servidor e selecione seu idioma preferido.",
+ "TellUsAboutYourself": "Conte-nos sobre você",
"TabUpcoming": "Próximos",
- "TabStreaming": "Transmissão",
+ "TabStreaming": "Streaming",
"TabServer": "Servidor",
- "TabScheduledTasks": "Tarefas agendadas",
+ "TabScheduledTasks": "Tarefas Agendadas",
"TabResponses": "Respostas",
"TabProfiles": "Perfis",
- "TabPlugins": "Extensões",
- "TabParentalControl": "Controlo parental",
+ "TabPlugins": "Plugins",
+ "TabParentalControl": "Controle dos pais",
"TabOther": "Outro",
"TabNotifications": "Notificações",
- "TabNfoSettings": "Definições de ficheiros NFO",
- "TabNetworks": "Canais de TV",
- "TabMyPlugins": "As minhas extensões",
+ "TabNfoSettings": "Configurações NFO",
+ "TabNetworks": "Redes de TV",
+ "TabMyPlugins": "Meus Plugins",
"TabMusic": "Música",
- "TabLatest": "Adicionado recentemente",
+ "TabLatest": "Recentemente Adicionado",
"TabDirectPlay": "Reprodução Directa",
- "TabDashboard": "Painel de controlo",
+ "TabDashboard": "Painel",
"TabContainers": "Contentores",
"TabCatalog": "Catálogo",
- "TabAdvanced": "Definições avançadas",
+ "TabAdvanced": "Avançado",
"TabAccess": "Acesso",
"TV": "TV",
"SystemDlnaProfilesHelp": "Os perfis de sistema são apenas de leitura. Mudanças a um perfil de sistema serão guardadas num novo perfil personalizado.",
"Sync": "Sincronização",
"Sunday": "Domingo",
"Subtitles": "Legendas",
- "Sports": "Desporto",
+ "Sports": "Esportes",
"SortChannelsBy": "Ordenar canais por",
"Songs": "Músicas",
- "SkipEpisodesAlreadyInMyLibraryHelp": "Os episódios serão comparados utilizando os números de episódio e temporada, quando disponíveis.",
- "SkipEpisodesAlreadyInMyLibrary": "Não gravar episódios que já estejam presentes na Biblioteca",
- "SimultaneousConnectionLimitHelp": "O número máximo de transmissões simultâneas permitidas. Introduz 0 para não haver limite.",
- "Shuffle": "Aleatório",
- "Shows": "Séries",
- "ShowAdvancedSettings": "Mostrar definições avançadas",
- "Share": "Partilhar",
- "SettingsSaved": "Definições guardadas.",
- "Settings": "Definições",
- "ServerUpdateNeeded": "Este servidor precisa de ser atualizado. Para transferir a versão mais recente, visite {0}",
- "ServerRestartNeededAfterPluginInstall": "O Jellyfin terá que reiniciar após instalar a extensão.",
- "SeriesDisplayOrderHelp": "Ordenar episódios por data de estreia, ordem no DVD ou numeração absoluta.",
- "Series": "Séries",
+ "SkipEpisodesAlreadyInMyLibraryHelp": "Os episódios serão comparados usando os números da temporada e do episódio, quando disponíveis.",
+ "SkipEpisodesAlreadyInMyLibrary": "Não gravar episódios que já estão na minha biblioteca",
+ "SimultaneousConnectionLimitHelp": "O número máximo de streams simultâneos permitidos. Digite 0 para sem limite.",
+ "Shuffle": "Embaralhar",
+ "Shows": "Programas",
+ "ShowAdvancedSettings": "Mostrar configurações avançadas",
+ "Share": "Compartilhar",
+ "SettingsSaved": "Configurações salvas.",
+ "Settings": "Configurações",
+ "ServerUpdateNeeded": "Este servidor precisa ser atualizado. Para baixar a versão mais recente, visite {0}",
+ "ServerRestartNeededAfterPluginInstall": "O Jellyfin precisará ser reiniciado após a instalação do plugin.",
+ "SeriesDisplayOrderHelp": "Ordenar episódios por data de exibição, ordem do DVD ou numeração absoluta.",
+ "Series": "Série",
"SendMessage": "Enviar mensagem",
"SearchResults": "Resultados da pesquisa",
- "SearchForSubtitles": "Procurar legendas",
- "SearchForCollectionInternetMetadata": "Procurar na internet por imagens e metadados",
+ "SearchForSubtitles": "Pesquisar legendas",
+ "SearchForCollectionInternetMetadata": "Pesquisar na internet por arte e metadados",
"Search": "Pesquisar",
"Screenshots": "Capturas de Ecrã",
"Screenshot": "Captura de Ecrã",
- "Schedule": "Agendamentos",
- "ScanForNewAndUpdatedFiles": "Procurar ficheiros novos ou atualizados",
- "SaveSubtitlesIntoMediaFoldersHelp": "Guardar ficheiros de legendas junto aos ficheiros vídeo irá facilitar a sua gestão.",
- "SaveSubtitlesIntoMediaFolders": "Guardar legendas em pastas multimédia",
- "Save": "Guardar",
+ "Schedule": "Agendar",
+ "ScanForNewAndUpdatedFiles": "Verificar novos arquivos e arquivos atualizados",
+ "SaveSubtitlesIntoMediaFoldersHelp": "Armazenar legendas ao lado de arquivos de vídeo permitirá que sejam gerenciadas mais facilmente.",
+ "SaveSubtitlesIntoMediaFolders": "Salvar legendas nas pastas de mídia",
+ "Save": "Salvar",
"Saturday": "Sábado",
- "Runtime": "Tempo de execução",
+ "Runtime": "Duração",
"Rewind": "Retroceder",
- "ResumeAt": "Retomar a partir de {0}",
+ "ResumeAt": "Retomar de {0}",
"ReplaceExistingImages": "Substituir imagens existentes",
"ReplaceAllMetadata": "Substituir todos os metadados",
- "RepeatOne": "Repetir uma vez",
+ "RepeatOne": "Repetir um",
"RepeatMode": "Modo de repetição",
"Repeat": "Repetir",
- "RemoveFromPlaylist": "Remover da lista de reprodução",
+ "RemoveFromPlaylist": "Remover da playlist",
"Refresh": "Atualizar",
"RecordingScheduled": "Gravação agendada.",
"RecordingCancelled": "Gravação cancelada.",
"RecordSeries": "Gravar série",
"Record": "Gravar",
- "RecommendationStarring": "{0} como protagonista",
- "RecommendationDirectedBy": "Realizado por {0}",
- "RecommendationBecauseYouWatched": "Porque viu {0}",
- "RecommendationBecauseYouLike": "Porque gosta de {0}",
- "Raised": "Elevado",
+ "RecommendationStarring": "Com {0}",
+ "RecommendationDirectedBy": "Dirigido por {0}",
+ "RecommendationBecauseYouWatched": "Porque você assistiu {0}",
+ "RecommendationBecauseYouLike": "Porque você gosta de {0}",
+ "Raised": "Levantado",
"Programs": "Programas",
"Producer": "Produtor",
- "MessagePluginInstalled": "A extensão foi instalada com sucesso. O servidor necessitará de ser reiniciado para aplicar as alterações.",
- "PleaseSelectTwoItems": "Por favor selecione pelo menos dois itens.",
- "PleaseRestartServerName": "Por favor, reinicia o Jellyfin no {0}.",
- "PleaseEnterNameOrId": "Introduz um nome ou um ID externo.",
+ "MessagePluginInstalled": "O plugin foi instalado com sucesso. O servidor precisará ser reiniciado para que as alterações tenham efeito.",
+ "PleaseSelectTwoItems": "Por favor, selecione pelo menos dois itens.",
+ "PleaseRestartServerName": "Por favor, reinicie o Jellyfin em {0}.",
+ "PleaseEnterNameOrId": "Por favor, insira um nome ou um ID externo.",
"PleaseConfirmPluginInstallation": "Por favor clique em OK para confirmar que leu o conteúdo acima e que deseja prosseguir com a instalação da extensão.",
- "PleaseAddAtLeastOneFolder": "Adiciona pelo menos uma pasta a esta biblioteca, clicando no botão '+' na secção 'Pastas'.",
+ "PleaseAddAtLeastOneFolder": "Por favor, adicione pelo menos uma pasta a esta biblioteca clicando no botão '+' na seção 'Pastas'.",
"Playlists": "Playlists",
"Played": "Reproduzido",
"PlayNextEpisodeAutomatically": "Reproduzir próximo episódio automaticamente",
- "PlayNext": "Reproduzir a seguir",
- "PlayFromBeginning": "Reproduzir do início",
- "PlayCount": "N.º de Reproduções",
- "PlaybackData": "Dados de Reprodução",
- "PlayAllFromHere": "Reproduzir todos a partir daqui",
+ "PlayNext": "Reproduzir próximo",
+ "PlayFromBeginning": "Reproduzir desde o início",
+ "PlayCount": "Contagem de Reprodução",
+ "PlaybackData": "Informações de Reprodução",
+ "PlayAllFromHere": "Reproduzir tudo a partir daqui",
"Play": "Reproduzir",
- "PlaceFavoriteChannelsAtBeginning": "Mover canais favoritos para o início",
+ "PlaceFavoriteChannelsAtBeginning": "Colocar canais favoritos no início",
"PinCodeResetConfirmation": "Tem a certeza de que devia repôr o código PIN?",
"PinCodeResetComplete": "O código PIN foi redefinido.",
- "Photos": "Fotografias",
+ "Photos": "Fotos",
"PerfectMatch": "Correspondência perfeita",
"People": "Pessoas",
- "PasswordSaved": "Palavra passe guardada.",
- "PasswordResetProviderHelp": "Selecione um fornecedor de redefinição de palavra-passe a ser utilizado quando um utilizador solicitar uma redefinição de palavra-passe.",
- "PasswordResetConfirmation": "Tem a certeza de que deseja redefinir a palavra-passe?",
- "PasswordResetComplete": "A palavra-passe foi redefinida.",
- "PasswordMatchError": "A palavra passe e a palavra passe de confirmação devem ser iguais.",
- "ParentalRating": "Classificação etária",
- "PackageInstallFailed": "A instalação de {0} (versão{1}) falhou.",
- "PackageInstallCompleted": "A instalação de {0} (versão {1}) foi concluída.",
- "PackageInstallCancelled": "A instalação de {0} (versão {1}) foi cancelada.",
- "Overview": "Resumo",
- "OriginalAirDateValue": "Data de estreia original: {0}",
+ "PasswordSaved": "Senha salva.",
+ "PasswordResetProviderHelp": "Escolha um provedor de redefinição de senha a ser usado quando este usuário solicitar uma redefinição de senha.",
+ "PasswordResetConfirmation": "Tem certeza de que deseja redefinir a senha?",
+ "PasswordResetComplete": "A senha foi redefinida.",
+ "PasswordMatchError": "A senha e a confirmação da senha devem corresponder.",
+ "ParentalRating": "Classificação parental",
+ "PackageInstallFailed": "{0} (versão {1}) instalação falhou.",
+ "PackageInstallCompleted": "{0} (versão {1}) instalação concluída.",
+ "PackageInstallCancelled": "{0} (versão {1}) instalação cancelada.",
+ "Overview": "Visão geral",
+ "OriginalAirDateValue": "Data original de exibição: {0}",
"OptionWeekly": "Semanalmente",
- "OptionWeekends": "Fins-de-semana",
+ "OptionWeekends": "Fins de semana",
"OptionWeekdays": "Dias da semana",
- "OptionWakeFromSleep": "Retomar da suspensão",
- "OptionUnairedEpisode": "Episódios por Estrear",
- "OptionTvdbRating": "Classificação no TVDB",
- "OptionTrackName": "Nome da pista",
+ "OptionWakeFromSleep": "Despertar do sono",
+ "OptionUnairedEpisode": "Episódios Não Exibidos",
+ "OptionTvdbRating": "Avaliação TheTVDB",
+ "OptionTrackName": "Nome da Faixa",
"OptionSubstring": "Subcadeia",
"OptionSpecialEpisode": "Especiais",
- "OptionSaveMetadataAsHidden": "Guardar metadados e imagens como ficheiros ocultos",
+ "OptionSaveMetadataAsHidden": "Salvar metadados e imagens como arquivos ocultos",
"OptionResumable": "Retomável",
"OptionResElement": "elemento res",
"OptionReportByteRangeSeekingWhenTranscodingHelp": "Isto é necessário para alguns dispositivos que não pesquisam o tempo muito bem.",
@@ -157,71 +157,71 @@
"OptionReleaseDate": "Data de Lançamento",
"OptionProtocolHttp": "HTTP",
"OptionProtocolHls": "Emissão HTTP em direto",
- "OptionPremiereDate": "Data de Estreia",
- "OptionPlayCount": "N.º de Visualizações",
+ "OptionPremiereDate": "Data da Estreia",
+ "OptionPlayCount": "Contagem de Reprodução",
"OptionPlainVideoItemsHelp": "Quando activado, todos os vídeos são representados no DIDL como \"object.item.videoItem\" ao invés de um tipo mais específico como, por exemplo, \"object.item.videoItem.movie\".",
"OptionPlainVideoItems": "Mostrar todos os vídeos como itens de vídeo simples",
"OptionPlainStorageFoldersHelp": "Quando activado, todas as pastas são representadas no DIDL como \"object.container.storageFolder\" ao invés de um tipo mais específico como, por exemplo, \"object.container.person.musicArtist\".",
"OptionPlainStorageFolders": "Mostrar todas as pastas como simples pastas de armazenamento",
- "OptionParentalRating": "Classificação etária",
- "OptionOnInterval": "Num intervalo",
- "OptionNew": "Nova…",
- "LabelSaveLocalMetadataHelp": "Guardar imagens diretamente nas pastas multimédia facilita o acesso para a sua edição.",
- "LabelSaveLocalMetadata": "Guardar imagens e metadados nas pastas multimédia",
- "LabelRuntimeMinutes": "Tempo de execução",
- "LabelRemoteClientBitrateLimit": "Taxa de bits máxima para transmissão para a Internet (Mbps)",
+ "OptionParentalRating": "Classificação Parental",
+ "OptionOnInterval": "Em um intervalo",
+ "OptionNew": "Novo…",
+ "LabelSaveLocalMetadataHelp": "Salvar arte nas pastas de mídia as colocará em um local onde podem ser facilmente editadas.",
+ "LabelSaveLocalMetadata": "Salvar arte nas pastas de mídia",
+ "LabelRuntimeMinutes": "Duração",
+ "LabelRemoteClientBitrateLimit": "Limite de taxa de bits para streaming pela Internet (Mbps)",
"LabelReleaseDate": "Data de lançamento",
- "LabelRecordingPathHelp": "Especifica a localização predefinida para guardar as gravações. Se for deixada em branco, será utilizada a pasta de dados do programa do servidor.",
- "LabelRecordingPath": "Localização predefinida das gravações",
+ "LabelRecordingPathHelp": "Especifique o local padrão para salvar gravações. Se deixado em branco, a pasta de dados do programa do servidor será usada.",
+ "LabelRecordingPath": "Caminho padrão de gravação",
"LabelReasonForTranscoding": "Razão para transcodificação",
- "LabelPublicHttpsPortHelp": "Número da porta pública que deverá ser transferida para a porta HTTPS local.",
+ "LabelPublicHttpsPortHelp": "O número da porta pública que deve ser mapeado para a porta HTTPS local.",
"LabelPublicHttpsPort": "Número da porta HTTPS pública",
- "LabelPublicHttpPortHelp": "Número da porta pública que deverá ser transferida para a porta HTTP local.",
+ "LabelPublicHttpPortHelp": "O número da porta pública que deve ser mapeado para a porta HTTP local.",
"LabelPublicHttpPort": "Número da porta HTTP pública",
"LabelProtocolInfoHelp": "O valor que será usado ao responder aos pedidos GetProtocolInfo do dispositivo.",
"LabelProtocolInfo": "Informação do protocolo",
"LabelProtocol": "Protocolo",
"LabelProfileVideoCodecs": "Codecs do vídeo",
"LabelProfileContainersHelp": "Separados por vírgula. Pode ser deixado em branco para usar com todos os contentores.",
- "LabelProfileContainer": "Container",
+ "LabelProfileContainer": "Contêiner",
"LabelProfileCodecsHelp": "Separados por vírgula. Pode ser deixado em branco para usar com todos os codecs.",
"LabelProfileCodecs": "Codificadores",
"LabelProfileAudioCodecs": "Codecs do áudio",
- "LabelPreferredSubtitleLanguage": "Idioma de legendas preferido",
- "LabelPreferredDisplayLanguage": "Idioma de visualização preferido",
- "LabelPostProcessorArgumentsHelp": "Utilizar {path} como caminho para o ficheiro de gravação.",
- "LabelPostProcessorArguments": "Argumentos de linha de comandos para a aplicação de pós-processamento",
- "LabelPostProcessor": "Aplicação de pós-processamento",
- "LabelPleaseRestart": "As alterações produzirão efeito depois de recarregar a página web.",
+ "LabelPreferredSubtitleLanguage": "Idioma de legenda preferido",
+ "LabelPreferredDisplayLanguage": "Idioma de exibição preferido",
+ "LabelPostProcessorArgumentsHelp": "Use {path} como o caminho para o arquivo de gravação.",
+ "LabelPostProcessorArguments": "Argumentos da linha de comando do pós-processador",
+ "LabelPostProcessor": "Aplicativo de pós-processamento",
+ "LabelPleaseRestart": "As alterações terão efeito após recarregar manualmente o cliente da web.",
"LabelPlayMethod": "Método de reprodução",
"LabelPlaylist": "Playlist",
- "LabelPlayer": "Leitor",
- "LabelPersonRoleHelp": "Exemplo: motorista da carrinha de gelados",
- "LabelPersonRole": "Personagem",
- "LabelPath": "Localização",
+ "LabelPlayer": "Reprodutor",
+ "LabelPersonRoleHelp": "Exemplo: Motorista do caminhão de sorvete",
+ "LabelPersonRole": "Papel",
+ "LabelPath": "Caminho",
"LabelPasswordRecoveryPinCode": "Código PIN",
- "LabelPasswordConfirm": "Palavra-passe (confirmar)",
- "LabelPassword": "Palavra-passe",
- "LabelParentalRating": "Classificação etária",
- "LabelOverview": "Sinopse",
+ "LabelPasswordConfirm": "Senha (confirmação)",
+ "LabelPassword": "Senha",
+ "LabelParentalRating": "Classificação parental",
+ "LabelOverview": "Visão geral",
"LabelOriginalTitle": "Título original",
"LabelOriginalAspectRatio": "Proporção original",
- "LabelOptionalNetworkPathHelp": "Caso a pasta esteja partilhada, fornecer o caminho de rede pode permitir aos clientes aceder diretamente aos ficheiros multimédia. Por exemplo, {0} ou {1}.",
+ "LabelOptionalNetworkPathHelp": "Se esta pasta estiver compartilhada na sua rede, fornecer o caminho do compartilhamento de rede pode permitir que clientes em outros dispositivos acessem os arquivos de mídia diretamente. Por exemplo, {0} ou {1}.",
"LabelOptionalNetworkPath": "Pasta de rede compartilhada",
- "LabelNumberOfGuideDaysHelp": "Transferir mais dias de Guia TV permite agendar com maior antecedência e ver mais listagens, no entanto, levará mais tempo a transferir. Se selecionares Automático, será escolhido o período baseado no número de canais.",
- "LabelNumberOfGuideDays": "Número de dias de Guia TV a transferir",
+ "LabelNumberOfGuideDaysHelp": "Baixar mais dias de dados do guia fornece a capacidade de agendar com mais antecedência e ver mais listagens, mas também levará mais tempo para baixar. O automático escolherá com base no número de canais.",
+ "LabelNumberOfGuideDays": "Número de dias de dados do guia para baixar",
"LabelNumber": "Número",
"LabelNotificationEnabled": "Activar esta notificação",
"LabelNewsCategories": "Categorias de notícias",
- "LabelNewPasswordConfirm": "Confirmar nova palavra-passe",
- "LabelNewPassword": "Nova palavra-passe",
+ "LabelNewPasswordConfirm": "Confirmação da nova senha",
+ "LabelNewPassword": "Nova senha",
"LabelNewName": "Novo nome",
"LabelName": "Nome",
"LabelMusicStreamingTranscodingBitrateHelp": "Especifique uma taxa de bits máxima ao fazer streaming de música.",
"LabelMusicStreamingTranscodingBitrate": "Taxa de transcodificação de música",
- "LabelMovieRecordingPath": "Localização para gravação de filmes",
- "LabelMoviePrefixHelp": "Se aplicares um prefixo aos títulos dos filmes, introduz aqui para que o servidor o possa tratar corretamente.",
- "LabelMoviePrefix": "Prefixo para filmes",
+ "LabelMovieRecordingPath": "Caminho de gravação de filmes",
+ "LabelMoviePrefixHelp": "Se um prefixo for aplicado aos títulos dos filmes, insira-o aqui para que o servidor possa lidar com isso corretamente.",
+ "LabelMoviePrefix": "Prefixo do filme",
"LabelMovieCategories": "Categorias de filmes",
"LabelMonitorUsers": "Monitorizar actividade de",
"LabelModelUrl": "URL do modelo",
@@ -229,89 +229,89 @@
"LabelModelName": "Nome do modelo",
"LabelModelDescription": "Descrição do modelo",
"LabelMinScreenshotDownloadWidth": "Transferir capturas de ecrã com este tamanho mínimo:",
- "LabelMinResumePercentageHelp": "Os títulos são considerados como não vistos se parados antes desta percentagem da duração.",
- "LabelMinResumePercentage": "Percentagem mínima de visualização para permitir retomar",
- "LabelMinResumeDurationHelp": "A duração mínima de um vídeo, em segundos, que te permite guardar o progresso e retomar a reprodução.",
- "LabelMinResumeDuration": "Duração mínima para permitir retomar a reprodução",
- "LabelMinBackdropDownloadWidth": "Transferir imagens de fundo com este tamanho mínimo",
+ "LabelMinResumePercentageHelp": "Os títulos são considerados não reproduzidos se parados antes deste tempo.",
+ "LabelMinResumePercentage": "Porcentagem mínima de retomar",
+ "LabelMinResumeDurationHelp": "O menor comprimento de vídeo em segundos que salvará a localização da reprodução e permitirá que você retome.",
+ "LabelMinResumeDuration": "Duração mínima para retomar",
+ "LabelMinBackdropDownloadWidth": "Largura mínima para download de plano de fundo",
"LabelMethod": "Método",
- "LabelEndDate": "Data de fim",
+ "LabelEndDate": "Data de término",
"HeaderXmlDocumentAttributes": "Atributos do Documento XML",
- "HeaderLoginFailure": "Falha no início de sessão",
- "LabelMetadataPathHelp": "Introduz a localização para guardar imagens e metadados transferidos da internet.",
- "LabelMetadataPath": "Localização dos metadados",
- "LabelMetadataDownloadLanguage": "Idioma preferido para transferência",
+ "HeaderLoginFailure": "Falha no Login",
+ "LabelMetadataPathHelp": "Especifique um local personalizado para a arte e metadados baixados.",
+ "LabelMetadataPath": "Caminho dos metadados",
+ "LabelMetadataDownloadLanguage": "Idioma de download preferido",
"LabelMetadata": "Metadados",
- "LabelMessageTitle": "Titulo da mensagem",
+ "LabelMessageTitle": "Título da mensagem",
"LabelMessageText": "Texto da mensagem",
"LabelMaxStreamingBitrateHelp": "Defina uma taxa máxima de transmissão.",
"LabelMaxStreamingBitrate": "Qualidade máxima de transmissão",
"LabelMaxScreenshotsPerItem": "Número máximo de capturas de ecrã por item:",
- "LabelMaxResumePercentageHelp": "Os títulos são considerados como vistos se parados após esta percentagem da duração.",
- "LabelMaxResumePercentage": "Percentagem máxima de visualização para permitir retomar",
- "LabelMaxParentalRating": "Classificação etária máxima permitida",
- "LabelMaxChromecastBitrate": "Qualidade de transmissão para Chromecast",
- "LabelMaxBackdropsPerItem": "Número máximo de imagens de fundo por item",
+ "LabelMaxResumePercentageHelp": "Os títulos são considerados totalmente reproduzidos se parados após este tempo.",
+ "LabelMaxResumePercentage": "Porcentagem máxima de retomar",
+ "LabelMaxParentalRating": "Classificação parental máxima permitida",
+ "LabelMaxChromecastBitrate": "Qualidade de streaming do Google Cast",
+ "LabelMaxBackdropsPerItem": "Número máximo de planos de fundo por item",
"LabelMatchType": "Tipo de correspondência",
"LabelManufacturerUrl": "URL do Fabricante",
"LabelManufacturer": "Fabricante",
- "LabelLoginDisclaimerHelp": "Este aviso será mostrado na parte inferior da página de início de sessão.",
- "LabelLoginDisclaimer": "Aviso legal de início de sessão",
- "LabelLockItemToPreventChanges": "Bloquear este item para evitar futuras alterações de metadados",
+ "LabelLoginDisclaimerHelp": "Uma mensagem que será exibida na parte inferior da página de login.",
+ "LabelLoginDisclaimer": "Aviso de login",
+ "LabelLockItemToPreventChanges": "Bloquear este item para evitar futuras alterações nos metadados",
"LabelLocalHttpServerPortNumberHelp": "O número da porta TCP para o servidor HTTP.",
"LabelLocalHttpServerPortNumber": "Número da porta HTTP local",
"LabelLineup": "Programação",
"LabelLanguage": "Idioma",
- "LabelLanNetworks": "Redes locais (LAN)",
- "LabelKodiMetadataSaveImagePathsHelp": "Esta opção é recomendada se existirem nomes de imagens que não estejam de acordo com as recomendações do Kodi.",
- "LabelKodiMetadataSaveImagePaths": "Guardar a localização de imagens em ficheiros nfo",
- "LabelKodiMetadataEnablePathSubstitutionHelp": "Ativa a substituição de caminhos de imagens usando as definições de substituição de caminhos do servidor.",
- "LabelKodiMetadataEnablePathSubstitution": "Ativar a substituição de caminhos",
- "LabelKodiMetadataEnableExtraThumbsHelp": "Ao transferir imagens, estas podem ser guardadas como extrafanart e extrathumbs para uma maior compatibilidade com os temas Kodi.",
- "LabelKodiMetadataEnableExtraThumbs": "Copiar o parâmetro extrafanart para extrathumbs",
- "LabelKodiMetadataDateFormatHelp": "Todas as datas presentes em ficheiros NFO serão analisadas utilizando este formato.",
+ "LabelLanNetworks": "Redes LAN",
+ "LabelKodiMetadataSaveImagePathsHelp": "Isso é recomendado se você tiver nomes de arquivos de imagem que não estão em conformidade com as diretrizes do Kodi.",
+ "LabelKodiMetadataSaveImagePaths": "Salvar caminhos de imagem dentro dos arquivos NFO",
+ "LabelKodiMetadataEnablePathSubstitutionHelp": "Ativar a substituição de caminho das imagens usando as configurações de substituição de caminho do servidor.",
+ "LabelKodiMetadataEnablePathSubstitution": "Ativar substituição de caminho",
+ "LabelKodiMetadataEnableExtraThumbsHelp": "Ao baixar imagens, elas podem ser salvas tanto em extrafanart quanto em extrathumbs para máxima compatibilidade com skins do Kodi.",
+ "LabelKodiMetadataEnableExtraThumbs": "Copiar extrafanart para o campo extrathumbs",
+ "LabelKodiMetadataDateFormatHelp": "Todas as datas dentro dos arquivos NFO serão analisadas usando este formato.",
"LabelKodiMetadataDateFormat": "Formato da data de lançamento",
- "LabelKidsCategories": "Categorias infantis",
- "LabelKeepUpTo": "Manter, no máximo",
- "LabelInternetQuality": "Qualidade para a Internet",
+ "LabelKidsCategories": "Categorias Infantis",
+ "LabelKeepUpTo": "Manter até",
+ "LabelInternetQuality": "Qualidade da Internet",
"LabelInNetworkSignInWithEasyPasswordHelp": "Utilizar um código PIN para entrar no Jellyfin dentro da rede. A palavra-passe só será necessária fora da rede. Se o código PIN for deixado em branco, não será necessária autenticação dentro da rede.",
"LabelInNetworkSignInWithEasyPassword": "Activar acesso dentro da rede com código PIN",
"LabelImportOnlyFavoriteChannels": "Restringir a canais marcados como favoritos",
- "LabelImageType": "Tipo de imagem",
+ "LabelImageType": "Tipo de Imagem",
"LabelIdentificationFieldHelp": "Uma subcadeia ou expressão regex que não diferencia maiúscula de minúsculas.",
"LabelIconMaxWidth": "Largura máxima do ícone",
"LabelIconMaxHeight": "Altura máxima do ícone",
"LabelHttpsPortHelp": "O número da porta TCP para o servidor HTTPS.",
"LabelHttpsPort": "Número da porta HTTPS local",
- "LabelHomeScreenSectionValue": "Secção {0} do painel principal",
- "LabelHomeNetworkQuality": "Qualidade da rede interna",
- "LabelHardwareAccelerationTypeHelp": "A aceleração de hardware requer configuração adicional.",
+ "LabelHomeScreenSectionValue": "Seção da tela inicial {0}",
+ "LabelHomeNetworkQuality": "Qualidade da rede local",
+ "LabelHardwareAccelerationTypeHelp": "A aceleração por hardware requer configuração adicional.",
"LabelHardwareAccelerationType": "Aceleração por hardware",
"LabelEncoderPreset": "Predefinição de codificação",
- "LabelH264Crf": "CRF para codificação H.264",
- "LabelGroupMoviesIntoCollectionsHelp": "Ao mostrar listas de filmes, aqueles que pertençam a uma coleção serão apresentados como um único item agrupado.",
+ "LabelH264Crf": "Codificação H.264 CRF",
+ "LabelGroupMoviesIntoCollectionsHelp": "Filmes em uma coleção serão exibidos como um único item agrupado ao exibir listas de filmes.",
"LabelGroupMoviesIntoCollections": "Agrupar filmes em coleções",
- "LabelServerNameHelp": "Este nome será utilizado para identificar o servidor. Hostname do servidor usado por defeito.",
+ "LabelServerNameHelp": "Este nome será usado para identificar o servidor e será definido como o nome do host do servidor.",
"LabelFriendlyName": "Nome amigável",
"LabelFormat": "Formato",
- "LabelForgotPasswordUsernameHelp": "Introduz o teu nome de utilizador, se te lembrares dele.",
- "LabelFont": "Tipo de Letra",
+ "LabelForgotPasswordUsernameHelp": "Insira seu nome de usuário, se você se lembrar.",
+ "LabelFont": "Fonte",
"LabelFolder": "Pasta",
- "LabelFinish": "Terminar",
- "LabelFileOrUrl": "Ficheiro ou URL",
+ "LabelFinish": "Concluir",
+ "LabelFileOrUrl": "Arquivo ou URL",
"LabelFailed": "Falhou",
- "LabelExtractChaptersDuringLibraryScanHelp": "Gerar imagens dos capítulos ao importar vídeos durante a análise da biblioteca. Caso contrário, as imagens serão extraídas mais tarde, através da tarefa agendada de extração de imagens de capítulos, permitindo que a análise regular da biblioteca seja concluída mais rapidamente.",
- "LabelExtractChaptersDuringLibraryScan": "Extrair imagens dos capítulos durante a análise da biblioteca",
- "LabelBaseUrlHelp": "Adicione um subdiretório personalizado ao URL do servidor. Por exemplo: http://example.com/<baseurl>",
- "LabelBaseUrl": "URL Base",
+ "LabelExtractChaptersDuringLibraryScanHelp": "Gerar imagens de capítulos ao importar vídeos durante a verificação da biblioteca. Caso contrário, elas serão extraídas durante a tarefa agendada de imagens de capítulos, permitindo que a verificação regular da biblioteca seja concluída mais rapidamente.",
+ "LabelExtractChaptersDuringLibraryScan": "Extrair imagens de capítulos durante a verificação da biblioteca",
+ "LabelBaseUrlHelp": "Adicione um subdiretório personalizado à URL do servidor. Por exemplo: http://example.com/<baseurl>",
+ "LabelBaseUrl": "URL base",
"LabelEveryXMinutes": "A cada",
"LabelEvent": "Evento",
"LabelEpisodeNumber": "Número do episódio",
"LabelEnableSingleImageInDidlLimitHelp": "Alguns dispositivos não interpretarão o ficheiro apropriadamente se múltiplas imagens forem incorporadas no DIDL.",
"LabelEnableSingleImageInDidlLimit": "Limitar a uma imagem incorporada",
- "LabelEnableRealtimeMonitorHelp": "As alterações nos arquivos serão processadas imediatamente nos sistemas de arquivos suportados.",
- "LabelEnableRealtimeMonitor": "Ativar monitorização em tempo real",
- "LabelEnableHardwareDecodingFor": "Ativar descodificação por hardware para",
+ "LabelEnableRealtimeMonitorHelp": "Alterações nos arquivos serão processadas imediatamente em sistemas de arquivos suportados.",
+ "LabelEnableRealtimeMonitor": "Ativar monitoramento em tempo real",
+ "LabelEnableHardwareDecodingFor": "Ativar decodificação de hardware para",
"LabelEnableDlnaServerHelp": "Permite que dispositivos UPnP na rede naveguem e reproduzam conteúdo.",
"LabelEnableDlnaServer": "Activar servidor DLNA",
"LabelEnableDlnaPlayToHelp": "Detecte dispositivos em sua rede e ofereça a capacidade de controlá-los remotamente.",
@@ -327,78 +327,78 @@
"LabelEmbedAlbumArtDidlHelp": "Alguns dispositivos preferem este método para obter a capa do álbum. Outros pode não ser capazes de reproduzir com esta opção activada.",
"LabelEmbedAlbumArtDidl": "Incorporar a capa do álbum no DIDL",
"LabelEasyPinCode": "Código PIN",
- "LabelDynamicExternalId": "{0} ID",
- "LabelDropShadow": "Realce",
- "LabelDropImageHere": "Arraste a imagem para aqui, ou clique para procurar.",
- "LabelDownloadLanguages": "Transferir os idiomas",
- "LabelDownMixAudioScaleHelp": "Aumentar o volume de áudio durante o downmix. O valor 1 preserva o volume original.",
- "LabelDownMixAudioScale": "Reforço de áudio durante o downmix",
- "LabelDisplaySpecialsWithinSeasons": "Mostrar episódios especiais dentro das temporadas em que estrearam",
- "LabelDisplayOrder": "Ordem de apresentação",
- "LabelDisplayName": "Nome para apresentação",
- "LabelDisplayMode": "Modo de apresentação",
- "LabelDisplayLanguageHelp": "A tradução do Jellyfin é um projeto em desenvolvimento contínuo.",
- "LabelDisplayLanguage": "Idioma",
+ "LabelDynamicExternalId": "{0} Id",
+ "LabelDropShadow": "Sombra projetada",
+ "LabelDropImageHere": "Solte a imagem aqui, ou clique para navegar.",
+ "LabelDownloadLanguages": "Idiomas para download",
+ "LabelDownMixAudioScaleHelp": "Aumenta o áudio ao fazer downmix. Um valor de um preserva o volume original.",
+ "LabelDownMixAudioScale": "Aumento de áudio ao fazer downmix",
+ "LabelDisplaySpecialsWithinSeasons": "Exibir especiais dentro das temporadas em que foram exibidos",
+ "LabelDisplayOrder": "Ordem de exibição",
+ "LabelDisplayName": "Nome de exibição",
+ "LabelDisplayMode": "Modo de exibição",
+ "LabelDisplayLanguageHelp": "Traduzir o Jellyfin é um projeto em andamento.",
+ "LabelDisplayLanguage": "Idioma de exibição",
"LabelDiscNumber": "Número do disco",
"LabelDidlMode": "Modo DIDL",
"LabelDeviceDescription": "Descrição do dispositivo",
"LabelDefaultUserHelp": "Determina que biblioteca será apresentada aos dispositivos ligados. Pode ser redefinido para cada dispositivo através de perfis.",
"LabelDefaultUser": "Utilizador por omissão",
- "LabelDefaultScreen": "Ecrã por omissão",
+ "LabelDefaultScreen": "Tela padrão",
"LabelDeathDate": "Data de falecimento",
"LabelRefreshMode": "Modo de atualização",
- "LabelRecord": "Registo",
- "LabelPasswordResetProvider": "Fornecedor de redefinição da palavra-passe",
- "LabelMetadataSaversHelp": "Escolhe os formatos de ficheiro a utilizar para guardar os teus metadados.",
- "LabelMetadataReadersHelp": "Ordene as fontes locais de metadados por ordem de prioridade. O primeiro ficheiro a ser encontrado será lido.",
- "LabelMetadataReaders": "Fornecedores de metadados",
- "LabelMetadataDownloadersHelp": "Ativa e ordena os teus fornecedores de metadados preferidos por ordem de prioridade. Os de menor prioridade só serão utilizados para preencher as informações em falta.",
- "LabelLogs": "Registos (Logs)",
- "LabelKodiMetadataUserHelp": "Guardar dados de utilização em NFO para que outras aplicações os utilizem.",
- "LabelKodiMetadataUser": "Guardar dados de utilização em NFO para",
- "LabelImageFetchersHelp": "Ativa e ordena os fornecedores de imagens por ordem de preferência.",
+ "LabelRecord": "Gravar",
+ "LabelPasswordResetProvider": "Provedor de Redefinição de Senha",
+ "LabelMetadataSaversHelp": "Escolha os formatos de arquivo a serem usados ao salvar seus metadados.",
+ "LabelMetadataReadersHelp": "Classifique suas fontes de metadados locais preferidas por ordem de prioridade. O primeiro arquivo encontrado será lido.",
+ "LabelMetadataReaders": "Leitores de metadados",
+ "LabelMetadataDownloadersHelp": "Ative e classifique seus downloaders de metadados preferidos por ordem de prioridade. Downloaders de prioridade mais baixa serão usados apenas para preencher informações ausentes.",
+ "LabelLogs": "Logs",
+ "LabelKodiMetadataUserHelp": "Salvar dados de visualização em arquivos NFO para outros aplicativos usarem.",
+ "LabelKodiMetadataUser": "Salvar dados de visualização do usuário em arquivos NFO para",
+ "LabelImageFetchersHelp": "Ative e classifique seus buscadores de imagem preferidos por ordem de prioridade.",
"Home": "Início",
"LabelDay": "Dia da semana",
- "LabelDateTimeLocale": "Formato da data/hora",
- "LabelDateAddedBehaviorHelp": "Se um valor de metadados estiver presente, ele sempre será usado antes de qualquer uma dessas opções.",
- "LabelDateAddedBehavior": "Comportamento da data de adição para novo conteúdo",
- "LabelDateAdded": "Adicionado a",
- "LabelDashboardTheme": "Tema do Painel de Controlo",
+ "LabelDateTimeLocale": "Localidade de data e hora",
+ "LabelDateAddedBehaviorHelp": "Se um valor de metadado estiver presente, ele será sempre usado antes de qualquer uma dessas opções.",
+ "LabelDateAddedBehavior": "Comportamento da data adicionada para novos conteúdos",
+ "LabelDateAdded": "Data adicionada",
+ "LabelDashboardTheme": "Tema do Painel do Servidor",
"LabelCustomRating": "Classificação personalizada",
- "LabelCustomDeviceDisplayNameHelp": "Forneça um nome a ser mostrado, ou deixe em branco para utilizar o nome reportado pelo dispositivo.",
- "LabelCustomCssHelp": "Aplica o teu código CSS personalizado à interface web.",
- "LabelCustomCss": "codigo CSS personalizado",
- "LabelCustomCertificatePathHelp": "Localização do ficheiro PKCS #12 que contém um certificado e uma chave privada para ativar o suporte TLS num domínio personalizado.",
- "LabelCustomCertificatePath": "Localização do certificado SSL personalizado",
- "LabelCurrentPassword": "Palavra-passe atual",
+ "LabelCustomDeviceDisplayNameHelp": "Forneça um nome de exibição personalizado ou deixe em branco para usar o nome informado pelo dispositivo.",
+ "LabelCustomCssHelp": "Aplique seu código CSS personalizado para personalização/marcação na interface da web.",
+ "LabelCustomCss": "Código CSS personalizado",
+ "LabelCustomCertificatePathHelp": "Caminho para um arquivo PKCS #12 contendo um certificado e uma chave privada para ativar o suporte a TLS em um domínio personalizado.",
+ "LabelCustomCertificatePath": "Caminho do certificado SSL personalizado",
+ "LabelCurrentPassword": "Senha atual",
"LabelCriticRating": "Avaliação da crítica",
"LabelCountry": "País/Região",
"LabelContentType": "Tipo de conteúdo",
- "LabelCommunityRating": "Classificação da comunidade",
+ "LabelCommunityRating": "Avaliação da comunidade",
"LabelCollection": "Coleção",
"LabelChannels": "Canais",
- "LabelCertificatePasswordHelp": "Se o certificado requer uma palavra-passe, escreva-a aqui.",
- "LabelCertificatePassword": "Palavra-passe do certificado",
+ "LabelCertificatePasswordHelp": "Se o seu certificado exigir uma senha, insira-a aqui.",
+ "LabelCertificatePassword": "Senha do certificado",
"LabelCancelled": "Cancelado",
- "LabelCachePathHelp": "Especifica uma localização personalizada para os ficheiros de cache do servidor, como imagens. Deixa em branco para usar a predefinição do servidor.",
- "LabelCachePath": "Localização da cache",
+ "LabelCachePathHelp": "Especifique um local personalizado para arquivos de cache do servidor, como imagens. Deixe em branco para usar o padrão do servidor.",
+ "LabelCachePath": "Caminho do cache",
"LabelCache": "Cache",
"LabelBirthDate": "Data de nascimento",
- "LabelBindToLocalNetworkAddressHelp": "Substitua o endereço IP local do servidor HTTP. Se deixado em branco, o servidor se vinculará a todos os endereços disponíveis. Alterar este valor requer um reinício.",
- "LabelBindToLocalNetworkAddress": "Endereço local para colocar o servidor à escuta",
- "LabelAutomaticallyRefreshInternetMetadataEvery": "Atualizar metadados automaticamente a partir da Internet",
- "LabelAuthProvider": "Fornecedor de autenticação",
+ "LabelBindToLocalNetworkAddressHelp": "Substitua o endereço IP local para o servidor HTTP. Se deixado em branco, o servidor será vinculado a todos os endereços disponíveis. Alterar este valor requer uma reinicialização.",
+ "LabelBindToLocalNetworkAddress": "Vincular ao endereço de rede local",
+ "LabelAutomaticallyRefreshInternetMetadataEvery": "Atualizar automaticamente metadados da internet a cada",
+ "LabelAuthProvider": "Provedor de Autenticação",
"LabelAudioSampleRate": "Taxa de amostragem de áudio",
"LabelAudioLanguagePreference": "Idioma de áudio preferido",
"LabelAudioCodec": "Codec de áudio",
"LabelAudioChannels": "Canais de áudio",
- "LabelAudioBitrate": "Taxa de bits de áudio",
- "LabelArtistsHelp": "Separe artistas múltiplos com um ponto e vírgula.",
+ "LabelAudioBitrate": "Taxa de bits do áudio",
+ "LabelArtistsHelp": "Separe vários artistas com ponto e vírgula.",
"LabelArtists": "Artistas",
- "LabelAppNameExample": "Um nome legível por humanos para identificar as chaves da API. Esta definição não afetará a funcionalidade.",
- "LabelAppName": "Nome da aplicação",
- "LabelAllowedRemoteAddressesMode": "Tipo de filtro de IP remoto",
- "LabelAllowedRemoteAddresses": "Filtro de IP remoto",
+ "LabelAppNameExample": "Um nome legível para identificar chaves de API. Esta configuração não afetará a funcionalidade.",
+ "LabelAppName": "Nome do app",
+ "LabelAllowedRemoteAddressesMode": "Modo de filtro de endereço IP remoto",
+ "LabelAllowedRemoteAddresses": "Filtro de endereço IP remoto",
"LabelAllowHWTranscoding": "Permitir transcodificação por hardware",
"LabelAlbumArtists": "Artistas do Álbum",
"LabelAlbumArtPN": "PN da capa do álbum",
@@ -406,27 +406,27 @@
"LabelAlbumArtMaxHeight": "Altura máxima da capa do álbum",
"LabelAlbumArtHelp": "PN utilizado para a capa do álbum no atributo dlna:profileID/upnp:albumArtURI. Alguns dispositivos requerem um valor específico, independentemente do tamanho da imagem.",
"LabelAlbum": "Álbum",
- "LabelAirsBeforeSeason": "Estreou antes da temporada",
- "LabelAirsBeforeEpisode": "Estreou antes do episódio",
- "LabelAirsAfterSeason": "Estreou depois da temporada",
- "LabelAirTime": "Horário",
- "LabelAirDays": "Dias da Exibição",
- "LabelAccessStart": "Hora de Início",
- "LabelAccessEnd": "Hora de Fim",
+ "LabelAirsBeforeSeason": "Exibe antes da temporada",
+ "LabelAirsBeforeEpisode": "Exibe antes do episódio",
+ "LabelAirsAfterSeason": "Exibe após a temporada",
+ "LabelAirTime": "Horário de exibição",
+ "LabelAirDays": "Dias de exibição",
+ "LabelAccessStart": "Hora de início",
+ "LabelAccessEnd": "Hora de término",
"LabelAccessDay": "Dia da semana",
- "LabelAbortedByServerShutdown": "(Abortado - Servidor encerrado)",
+ "LabelAbortedByServerShutdown": "(Abortado pelo desligamento do servidor)",
"Label3DFormat": "Formato 3D",
"Kids": "Crianças",
"Items": "Itens",
"ItemCount": "{0} itens",
- "InstantMix": "Mistura instântanea",
- "InstallingPackage": "A instalar {0} (version {1})",
- "ImportFavoriteChannelsHelp": "Apenas serão importados canais marcados como favoritos no sintonizador.",
+ "InstantMix": "Mistura instantânea",
+ "InstallingPackage": "Instalando {0} (versão {1})",
+ "ImportFavoriteChannelsHelp": "Apenas os canais marcados como favoritos no dispositivo sintonizador serão importados.",
"Images": "Imagens",
"Identify": "Identificar",
- "HttpsRequiresCert": "Para ativares as ligações seguras, terás de fornecer um certificado SSL fiável, como o Let's Encrypt. Caso contrário, desativa as ligações seguras.",
+ "HttpsRequiresCert": "Para habilitar conexões seguras, você precisará fornecer um certificado SSL confiável, como o Let's Encrypt. Por favor, forneça um certificado ou desative as conexões seguras.",
"Horizontal": "Horizontal",
- "HideWatchedContentFromLatestMedia": "Ocultar títulos já vistos da secção \"Conteúdo adicionado recentemente\"",
+ "HideWatchedContentFromLatestMedia": "Ocultar conteúdo assistido de 'Mídia Recentemente Adicionada'",
"Hide": "Ocultar",
"Help": "Ajuda",
"HeaderYears": "Anos",
@@ -436,1084 +436,1084 @@
"HeaderVideoTypes": "Tipos de Vídeo",
"HeaderVideoType": "Tipo de Vídeo",
"HeaderVideoQuality": "Qualidade do Vídeo",
- "HeaderUsers": "Utilizadores",
- "HeaderUser": "Utilizador",
+ "HeaderUsers": "Usuários",
+ "HeaderUser": "Usuário",
"HeaderUploadImage": "Enviar Imagem",
- "HeaderUpcomingOnTV": "A Seguir",
- "HeaderTypeText": "Inserir texto",
+ "HeaderUpcomingOnTV": "Próximos na TV",
+ "HeaderTypeText": "Inserir Texto",
"HeaderTuners": "Sintonizadores",
- "HeaderTunerDevices": "Sintonizadores",
+ "HeaderTunerDevices": "Dispositivos Sintonizadores",
"HeaderTranscodingProfileHelp": "Adicionar perfis de transcodificação que indiquem que formatos deverão ser usados quando a transcodificação é necessária.",
"HeaderTranscodingProfile": "Perfil da Transcodificação",
"HeaderTracks": "Faixas",
- "HeaderThisUserIsCurrentlyDisabled": "Este utilizador está atualmente desativado",
- "HeaderTaskTriggers": "Tarefas agendadas",
+ "HeaderThisUserIsCurrentlyDisabled": "Este usuário está atualmente desativado",
+ "HeaderTaskTriggers": "Gatilhos de Tarefa",
"HeaderSystemDlnaProfiles": "Perfis de Sistema",
"HeaderSubtitleProfilesHelp": "Os perfis da legenda descrevem os formatos da legenda suportados pelo dispositivo.",
"HeaderSubtitleProfiles": "Perfis da Legenda",
"HeaderSubtitleProfile": "Perfil da Legenda",
- "HeaderSubtitleAppearance": "Aparência das Legendas",
- "HeaderStopRecording": "Parar gravação",
- "HeaderStatus": "Estado",
- "HeaderStartNow": "Iniciar",
- "HeaderSpecialEpisodeInfo": "Informação sobre o episódio especial",
- "HeaderSortOrder": "Sequência de ordenação",
- "HeaderSortBy": "Ordenar por",
- "HeaderSetupLibrary": "Configurar bibliotecas multimédia",
+ "HeaderSubtitleAppearance": "Aparência da Legenda",
+ "HeaderStopRecording": "Parar Gravação",
+ "HeaderStatus": "Status",
+ "HeaderStartNow": "Iniciar Agora",
+ "HeaderSpecialEpisodeInfo": "Informações sobre Episódios Especiais",
+ "HeaderSortOrder": "Ordem de Classificação",
+ "HeaderSortBy": "Ordenar Por",
+ "HeaderSetupLibrary": "Configurar suas bibliotecas de mídia",
"HeaderServerSettings": "Configurações do Servidor",
- "HeaderSeriesStatus": "Estado da Série",
+ "HeaderSeriesStatus": "Status da Série",
"HeaderSeriesOptions": "Opções da Série",
- "HeaderSendMessage": "Enviar mensagem",
- "HeaderSelectTranscodingPathHelp": "Pesquisa ou introduz a localização que pretendes utilizar para os ficheiros de transcodificação. O servidor requer permissões de escrita nesta pasta.",
- "HeaderSelectTranscodingPath": "Seleccione o Local Temporário da Transcodificação",
- "HeaderSelectServerCachePathHelp": "Pesquisa ou introduz a localização que pretendes utilizar para os ficheiros de cache do servidor. O servidor requer permissões de escrita nesta pasta.",
- "HeaderSelectServerCachePath": "Seleciona a localização da cache do servidor",
- "HeaderSelectPath": "Seleciona a localização",
- "HeaderSelectMetadataPathHelp": "Pesquisa ou introduz a localização que pretendes utilizar para os metadados. O servidor requer permissões de escrita nesta pasta.",
- "HeaderSelectMetadataPath": "Seleciona a localização dos metadados",
- "HeaderSelectCertificatePath": "Seleciona a localização do certificado",
- "HeaderSecondsValue": "{0} segundos",
+ "HeaderSendMessage": "Enviar Mensagem",
+ "HeaderSelectTranscodingPathHelp": "Navegue ou insira o caminho a ser usado para arquivos de transcodificação. A pasta deve ser gravável.",
+ "HeaderSelectTranscodingPath": "Selecionar Caminho Temporário de Transcodificação",
+ "HeaderSelectServerCachePathHelp": "Navegue ou insira o caminho a ser usado para arquivos de cache do servidor. A pasta deve ser gravável.",
+ "HeaderSelectServerCachePath": "Selecionar Caminho do Cache do Servidor",
+ "HeaderSelectPath": "Selecionar Caminho",
+ "HeaderSelectMetadataPathHelp": "Navegue ou insira o caminho que deseja usar para os metadados. A pasta deve ser gravável.",
+ "HeaderSelectMetadataPath": "Selecionar Caminho dos Metadados",
+ "HeaderSelectCertificatePath": "Selecionar Caminho do Certificado",
+ "HeaderSecondsValue": "{0} Segundos",
"HeaderSeasons": "Temporadas",
"HeaderScenes": "Cenas",
"HeaderRunningTasks": "Tarefas em Execução",
- "HeaderRevisionHistory": "Histórico de Versões",
+ "HeaderRevisionHistory": "Histórico de Revisões",
"HeaderResponseProfileHelp": "Os perfis de resposta oferecem uma forma de individualizar a informação enviada para o dispositivo ao executar certos ficheiros multimédia.",
"HeaderResponseProfile": "Perfil de Resposta",
- "HeaderRemoveMediaLocation": "Remover Localização dos ficheiros multimédia",
- "HeaderRemoveMediaFolder": "Excluir Pasta Multimédia",
- "HeaderRemoteControl": "Telecomando",
- "HeaderRecordingPostProcessing": "Pós-processamento de gravação",
- "HeaderRecordingOptions": "Opções de gravação",
- "HeaderRecentlyPlayed": "Reproduzido Recentemente",
+ "HeaderRemoveMediaLocation": "Remover Local de Mídia",
+ "HeaderRemoveMediaFolder": "Remover Pasta de Mídia",
+ "HeaderRemoteControl": "Controle Remoto",
+ "HeaderRecordingPostProcessing": "Pós-processamento de Gravação",
+ "HeaderRecordingOptions": "Opções de Gravação",
+ "HeaderRecentlyPlayed": "Reproduzidos Recentemente",
"HeaderProfileServerSettingsHelp": "Estes campos controlam como o servidor se apresenta aos clientes.",
"HeaderProfileInformation": "Informação do Perfil",
- "HeaderPreferredMetadataLanguage": "Idioma Preferido dos Metadados",
+ "HeaderPreferredMetadataLanguage": "Idioma de Metadados Preferido",
"HeaderPluginInstallation": "Instalar Extensão",
- "HeaderPleaseSignIn": "Iniciar sessão",
- "HeaderPlaybackError": "Erro na reprodução",
- "HeaderPlayback": "Reprodução de multimédia",
- "HeaderPlayOn": "Reproduzir em",
- "HeaderPlayAll": "Reproduzir tudo",
+ "HeaderPleaseSignIn": "Por favor, faça login",
+ "HeaderPlaybackError": "Erro de Reprodução",
+ "HeaderPlayback": "Reprodução de Mídia",
+ "HeaderPlayOn": "Reproduzir Em",
+ "HeaderPlayAll": "Reproduzir Tudo",
"HeaderPinCodeReset": "Redefinir Código PIN",
- "HeaderPhotoAlbums": "Álbuns de fotografias",
- "HeaderPaths": "Localizações",
- "HeaderPasswordReset": "Redefinição de palavra-passe",
- "HeaderPassword": "Palavra-passe",
- "HeaderParentalRatings": "Classificações etárias",
- "HeaderOtherItems": "Outros itens",
- "HeaderOnNow": "No ar",
- "HeaderNextVideoPlayingInValue": "O próximo vídeo começa dentro de {0}",
- "HeaderNextEpisodePlayingInValue": "O próximo episódio começa dentro de {0}",
- "HeaderNewDevices": "Novos dispositivos",
- "HeaderNewApiKey": "Nova chave API",
- "HeaderMyMediaSmall": "O meu conteúdo (pequeno)",
- "HeaderMyMedia": "O meu conteúdo",
+ "HeaderPhotoAlbums": "Álbuns de Fotos",
+ "HeaderPaths": "Caminhos",
+ "HeaderPasswordReset": "Redefinição de Senha",
+ "HeaderPassword": "Senha",
+ "HeaderParentalRatings": "Classificações dos Pais",
+ "HeaderOtherItems": "Outros Itens",
+ "HeaderOnNow": "Agora",
+ "HeaderNextVideoPlayingInValue": "Próximo Vídeo Tocando em {0}",
+ "HeaderNextEpisodePlayingInValue": "Próximo Episódio Tocando em {0}",
+ "HeaderNewDevices": "Novos Dispositivos",
+ "HeaderNewApiKey": "Nova Chave da API",
+ "HeaderMyMediaSmall": "Minha Mídia (pequeno)",
+ "HeaderMyMedia": "Minha Mídia",
"HeaderMyDevice": "O meu dispositivo",
- "HeaderMusicQuality": "Qualidade da música",
- "HeaderMoreLikeThis": "Títulos semelhantes",
- "HeaderMetadataSettings": "Definições de metadados",
- "HeaderMediaFolders": "Pastas Multimédia",
- "HeaderMedia": "Multimédia",
- "HeaderLiveTvTunerSetup": "Configurar Sintonizador de TV",
- "HeaderLibrarySettings": "Definições da biblioteca",
- "HeaderLibraryOrder": "Ordenação da Biblioteca",
- "HeaderLibraryFolders": "Pastas Multimédia",
- "HeaderLibraryAccess": "Acesso à biblioteca",
+ "HeaderMusicQuality": "Qualidade da Música",
+ "HeaderMoreLikeThis": "Mais Como Isso",
+ "HeaderMetadataSettings": "Configurações de Metadados",
+ "HeaderMediaFolders": "Pastas de Mídia",
+ "HeaderMedia": "Mídia",
+ "HeaderLiveTvTunerSetup": "Configuração do Sintonizador de TV Ao Vivo",
+ "HeaderLibrarySettings": "Configurações da Biblioteca",
+ "HeaderLibraryOrder": "Ordem da Biblioteca",
+ "HeaderLibraryFolders": "Pastas da Biblioteca",
+ "HeaderLibraryAccess": "Acesso à Biblioteca",
"HeaderLibraries": "Bibliotecas",
- "HeaderLatestRecordings": "Gravações adicionadas recentemente",
- "HeaderLatestMusic": "Músicas adicionadas recentemente",
- "HeaderLatestMovies": "Filmes adicionados recentemente",
- "HeaderLatestMedia": "Conteúdo adicionado recentemente",
- "HeaderLatestEpisodes": "Episódios adicionados recentemente",
+ "HeaderLatestRecordings": "Gravações Recentemente Adicionadas",
+ "HeaderLatestMusic": "Músicas Recentemente Adicionadas",
+ "HeaderLatestMovies": "Filmes Recentemente Adicionados",
+ "HeaderLatestMedia": "Mídia Recentemente Adicionada",
+ "HeaderLatestEpisodes": "Episódios Recentemente Adicionados",
"HeaderKeepSeries": "Manter Série",
- "HeaderKeepRecording": "Continuar a gravar",
- "HeaderInstantMix": "Mistura instantânea",
+ "HeaderKeepRecording": "Manter Gravação",
+ "HeaderInstantMix": "Mistura Instantânea",
"HeaderInstall": "Instalar",
"HeaderImageSettings": "Configurações de Imagem",
"HeaderImageOptions": "Opções de Imagem",
- "HeaderIdentifyItemHelp": "Introduz um ou mais critérios de pesquisa. Remove os critérios para aumentar os resultados da pesquisa.",
+ "HeaderIdentifyItemHelp": "Insira um ou mais critérios de pesquisa. Remova critérios para aumentar os resultados da pesquisa.",
"HeaderIdentificationHeader": "Cabeçalho de Identificação",
"HeaderIdentificationCriteriaHelp": "Introduza, pelo menos, um critério de identificação.",
"HeaderIdentification": "Identificação",
"HeaderHttpHeaders": "Cabeçalhos HTTP",
- "HeaderGuideProviders": "Fornecedores de Guia TV",
- "HeaderDeleteTaskTrigger": "Remover tarefa agendada",
- "HeaderBranding": "Marca",
- "HeaderFrequentlyPlayed": "Reproduzido Frequentemente",
- "HeaderForKids": "Para crianças",
- "HeaderFetchImages": "Procurar Imagens",
+ "HeaderGuideProviders": "Provedores de Dados da Guia de TV",
+ "HeaderDeleteTaskTrigger": "Excluir Gatilho da Tarefa",
+ "HeaderBranding": "Branding",
+ "HeaderFrequentlyPlayed": "Reproduzidos com Frequência",
+ "HeaderForKids": "Para Crianças",
+ "HeaderFetchImages": "Buscar Imagens",
"OptionDownloadImagesInAdvanceHelp": "Por omissão, a maioria das imagens são transferidas apenas quando uma aplicação do Jellyfin as solicita. Active esta opção para descarregar todas as imagens antecipadamente, assim que novos ficheiros multimédia sejam importados. Isto pode aumentar significativamente a duração da análise da biblioteca.",
"OptionDownloadImagesInAdvance": "Transferir imagens antecipadamente",
"OptionDislikes": "Não gostos",
- "OptionDisableUserHelp": "O servidor não permitirá nenhuma conexão deste usuário. As conexões existentes serão encerradas abruptamente.",
- "OptionDisableUser": "Desativar este utilizador",
- "OptionDatePlayed": "Data de reprodução",
- "OptionDateAddedImportTime": "Utilizar a data da análise para a biblioteca",
- "OptionDateAddedFileTime": "Usar a data de criação do ficheiro",
- "OptionDateAdded": "Data de adição",
+ "OptionDisableUserHelp": "O servidor não permitirá conexões deste usuário. Conexões existentes serão encerradas abruptamente.",
+ "OptionDisableUser": "Desativar este usuário",
+ "OptionDatePlayed": "Data Reproduzida",
+ "OptionDateAddedImportTime": "Usar data escaneada na biblioteca",
+ "OptionDateAddedFileTime": "Usar data de criação do arquivo",
+ "OptionDateAdded": "Data Adicionada",
"OptionDaily": "Diariamente",
"OptionCustomUsers": "Personalizado",
- "OptionCriticRating": "Classificação dos críticos",
- "OptionCommunityRating": "Classificação da comunidade",
- "OptionAllowVideoPlaybackTranscoding": "Permitir reprodução de vídeo que necessite de transcodificação",
- "OptionAllowUserToManageServer": "Permitir a este utilizador gerir o servidor",
- "OptionAllowRemoteSharedDevicesHelp": "Dispositivos DLNA são considerados partilhados até que um utilizador comece a controlá-lo.",
- "OptionAllowRemoteSharedDevices": "Permitir controlo remoto de dispositivos partilhados",
- "MessageConfirmDeleteTunerDevice": "Tem a certeza que deseja remover este dispositivo?",
- "MapChannels": "Mapear canais",
- "ManageLibrary": "Gerir biblioteca",
+ "OptionCriticRating": "Avaliação da Crítica",
+ "OptionCommunityRating": "Avaliação da Comunidade",
+ "OptionAllowVideoPlaybackTranscoding": "Permitir reprodução de vídeo que requer transcodificação",
+ "OptionAllowUserToManageServer": "Permitir que este usuário gerencie o servidor",
+ "OptionAllowRemoteSharedDevicesHelp": "Dispositivos DLNA são considerados compartilhados até que um usuário comece a controlá-los.",
+ "OptionAllowRemoteSharedDevices": "Permitir controle remoto de dispositivos compartilhados",
+ "MessageConfirmDeleteTunerDevice": "Tem certeza de que deseja excluir este dispositivo?",
+ "MapChannels": "Mapear Canais",
+ "ManageLibrary": "Gerenciar biblioteca",
"LabelSize": "Tamanho",
- "LabelPlayDefaultAudioTrack": "Reproduzir a faixa de áudio predefinida independentemente do idioma",
+ "LabelPlayDefaultAudioTrack": "Reproduzir faixa de áudio padrão, independentemente do idioma",
"LabelPlaceOfBirth": "Local de nascimento",
- "OptionAllowRemoteControlOthers": "Permitir controlo remoto de outros utilizadores",
- "OptionAllowMediaPlaybackTranscodingHelp": "Restringir o acesso à transcodificação pode causar falhas de reprodução em clientes devido a formatos de mídia não suportados.",
- "OptionAllowMediaPlayback": "Permitir reprodução de multimédia",
- "OptionAllowManageLiveTv": "Permitir gestão de gravações de TV em Direto",
- "OptionAllowLinkSharing": "Permitir partilha nas redes sociais",
+ "OptionAllowRemoteControlOthers": "Permitir controle remoto de outros usuários",
+ "OptionAllowMediaPlaybackTranscodingHelp": "Restringir o acesso à transcodificação pode causar falhas na reprodução em clientes devido a formatos de mídia não suportados.",
+ "OptionAllowMediaPlayback": "Permitir reprodução de mídia",
+ "OptionAllowManageLiveTv": "Permitir gerenciamento de gravações da TV Ao Vivo",
+ "OptionAllowLinkSharing": "Permitir compartilhamento em redes sociais",
"OptionAllowContentDownloading": "Permitir download dos ficheiros multimédia",
- "OptionAllowBrowsingLiveTv": "Permitir acesso a TV em Directo",
- "OptionAllowAudioPlaybackTranscoding": "Permitir reprodução de áudio que necessite transcodificação",
+ "OptionAllowBrowsingLiveTv": "Permitir acesso à TV Ao Vivo",
+ "OptionAllowAudioPlaybackTranscoding": "Permitir transcodificação de reprodução de áudio",
"OptionAllUsers": "Todos os utilizadores",
"OptionAdminUsers": "Administradores",
"OneChannel": "Um canal",
- "MessageNoPluginConfiguration": "Esta extensão não tem definições que possas alterar.",
- "MessageNoNextUpItems": "Nenhum encontrado. Comece a ver os seus programas!",
+ "MessageNoPluginConfiguration": "Este plugin não possui configurações para serem definidas.",
+ "MessageNoNextUpItems": "Nenhum encontrado. Comece a assistir seus programas!",
"News": "Notícias",
- "NewCollectionNameExample": "Exemplo: Coleção Guerra das Estrelas",
- "NewCollection": "Nova coleção",
- "Mute": "Desativar som",
+ "NewCollectionNameExample": "Exemplo: Coleção Star Wars",
+ "NewCollection": "Nova Coleção",
+ "Mute": "Silenciar",
"Movies": "Filmes",
- "MoreUsersCanBeAddedLater": "É possível adicionar utilizadores posteriormente através do Painel de Controlo.",
- "Monday": "Segunda",
+ "MoreUsersCanBeAddedLater": "Mais usuários podem ser adicionados depois, a partir do Painel.",
+ "Monday": "Segunda-feira",
"MinutesBefore": "minutos antes",
- "MinutesAfter": "minutos depois",
- "MessageUnableToConnectToServer": "Não foi possível estabelecer ligação ao servidor. Por favor, certifique-se que o servidor está a correr e tente de novo.",
- "MessageTheFollowingLocationWillBeRemovedFromLibrary": "As seguintes pastas multimédia serão removidas da tua biblioteca",
- "MessageReenableUser": "Vê abaixo para reativar",
- "MessagePluginInstallDisclaimer": "AVISO: Instalar uma extensão de terceiros implica riscos. Pode conter código instável ou malicioso e pode ser alterada a qualquer momento. Instala apenas extensões de autores em quem confies e está atento aos possíveis efeitos, incluindo consultas a serviços externos, análises da biblioteca mais longas ou processamento adicional em segundo plano.",
- "MessagePluginConfigurationRequiresLocalAccess": "Para configurar esta extensão, inicia sessão localmente no servidor.",
- "MessagePleaseEnsureInternetMetadata": "Certifique-se de que a transferência de metadados da Internet está ativada.",
- "MessagePasswordResetForUsers": "Os seguintes utilizadores tiveram as suas palavras-passe redefinidas. Podem agora iniciar sessão com os códigos PIN que foram utilizados para efetuar a redefinição.",
+ "MinutesAfter": "minutos após",
+ "MessageUnableToConnectToServer": "Não conseguimos conectar ao servidor selecionado no momento. Por favor, certifique-se de que ele está em execução e tente novamente.",
+ "MessageTheFollowingLocationWillBeRemovedFromLibrary": "A seguinte localização de mídia será removida da sua biblioteca",
+ "MessageReenableUser": "Veja abaixo para reativar",
+ "MessagePluginInstallDisclaimer": "ATENÇÃO: Instalar um plugin de terceiros envolve riscos. Ele pode conter código instável ou malicioso, e pode mudar a qualquer momento. Instale apenas plugins de autores confiáveis e esteja ciente dos efeitos potenciais, incluindo consultas a serviços externos, verificações de biblioteca mais longas ou processamento adicional em segundo plano.",
+ "MessagePluginConfigurationRequiresLocalAccess": "Para configurar este plugin, faça login diretamente no seu servidor local.",
+ "MessagePleaseEnsureInternetMetadata": "Por favor, assegure-se de que o download de metadados da internet está ativado.",
+ "MessagePasswordResetForUsers": "Os seguintes usuários tiveram suas senhas redefinidas. Eles agora podem fazer login com os códigos PIN que foram usados para realizar a redefinição.",
"MessageNothingHere": "Nada aqui.",
"MessageNoTrailersFound": "Instale o canal de trailers para aprimorar sua experiência de cinema, adicionando uma biblioteca de trailers da Internet.",
- "MessageNoPluginsInstalled": "Não existe nenhuma extensão instalada.",
- "MessageNoMovieSuggestionsAvailable": "De momento, não existem sugestões de filmes disponíveis. Veja filmes e avalie-os, e regresse para ver as suas recomendações.",
- "MessageNoAvailablePlugins": "Não existem extensões disponíveis.",
- "MessageLeaveEmptyToInherit": "Deixa em branco para herdar as definições de um item pai ou do valor predefinido global.",
+ "MessageNoPluginsInstalled": "Você não tem plugins instalados.",
+ "MessageNoMovieSuggestionsAvailable": "Nenhuma sugestão de filme disponível no momento. Comece a assistir e avaliar seus filmes, e então volte para ver suas recomendações.",
+ "MessageNoAvailablePlugins": "Nenhum plugin disponível.",
+ "MessageLeaveEmptyToInherit": "Deixe em branco para herdar as configurações de um item pai ou o valor padrão global.",
"MessageItemsAdded": "Itens adicionados.",
- "MessageItemSaved": "Item guardado.",
- "MessageInvalidUser": "Nome de utilizador ou palavra-passe inválidos. Por favor, tenta novamente.",
- "MessageInvalidForgotPasswordPin": "Introduziste um código PIN inválido ou expirado. Tenta novamente.",
- "MessageImageTypeNotSelected": "Por favor, seleccione um tipo de imagem da lista.",
- "MessageImageFileTypeAllowed": "Apenas são suportados ficheiros JPEG ou PNG.",
- "MessageForgotPasswordInNetworkRequired": "Por favor, volte a tentar o processo de redefinição de palavra-passe quando se encontrar dentro da sua rede local.",
- "MessageForgotPasswordFileCreated": "Foi criado no servidor o ficheiro abaixo que contém instruções de como prosseguir",
- "MessageFileReadError": "Ocorreu um erro ao ler este ficheiro.",
- "MessageEnablingOptionLongerScans": "Ativar esta opção pode prolongar significativamente o tempo das análises da biblioteca.",
- "MessageDownloadQueued": "Transferência pendente.",
- "MessageDirectoryPickerLinuxInstruction": "Em sistemas operativos como Arch Linux, CentOS, Debian, Fedora, OpenSuse ou Ubuntu, é necessário dar permissão ao utilizador que executa o processo Jellyfin para ter, no mínimo, acesso de leitura à pasta.",
- "MessageDirectoryPickerBSDInstruction": "Para BSD, você talvez precise configurar o armazenamento em seu FreeNAS Jail para que o Jellyfin possa acessar sua mídia.",
- "MessageDeleteTaskTrigger": "Tem a certeza que deseja remover o agendamento desta tarefa?",
+ "MessageItemSaved": "Item salvo.",
+ "MessageInvalidUser": "Nome de usuário ou senha inválidos. Por favor, tente novamente.",
+ "MessageInvalidForgotPasswordPin": "Um código PIN inválido ou expirado foi inserido. Por favor, tente novamente.",
+ "MessageImageTypeNotSelected": "Por favor, selecione um tipo de imagem no menu suspenso.",
+ "MessageImageFileTypeAllowed": "Apenas arquivos JPEG e PNG são suportados.",
+ "MessageForgotPasswordInNetworkRequired": "Por favor, tente novamente dentro da sua rede doméstica para iniciar o processo de redefinição de senha.",
+ "MessageForgotPasswordFileCreated": "O seguinte arquivo foi criado em seu servidor e contém instruções sobre como proceder",
+ "MessageFileReadError": "Ocorreu um erro ao ler o arquivo. Por favor, tente novamente.",
+ "MessageEnablingOptionLongerScans": "Ativar esta opção pode resultar em verificações de biblioteca significativamente mais longas.",
+ "MessageDownloadQueued": "Download na fila.",
+ "MessageDirectoryPickerLinuxInstruction": "Para Linux em Arch Linux, CentOS, Debian, Fedora, openSUSE ou Ubuntu, você deve conceder ao usuário do serviço pelo menos acesso de leitura aos seus locais de armazenamento.",
+ "MessageDirectoryPickerBSDInstruction": "Para BSD, pode ser necessário configurar o armazenamento dentro do 'FreeNAS Jail' para que o Jellyfin possa acessar sua mídia.",
+ "MessageDeleteTaskTrigger": "Tem certeza de que deseja excluir este gatilho de tarefa?",
"MessageCreateAccountAt": "Criar uma conta em {0}",
- "MessageContactAdminToResetPassword": "Contacte o administrador do sistema para redefinir a sua palavra-passe.",
- "MessageConfirmShutdown": "Tem a certeza que deseja encerrar o servidor?",
- "MessageConfirmRevokeApiKey": "Tem certeza de que deseja revogar esta chave de API? A conexão do aplicativo com este servidor será encerrada abruptamente.",
+ "MessageContactAdminToResetPassword": "Por favor, entre em contato com o administrador do sistema para redefinir sua senha.",
+ "MessageConfirmShutdown": "Tem certeza de que deseja desligar o servidor?",
+ "MessageConfirmRevokeApiKey": "Tem certeza de que deseja revogar esta chave da API? A conexão do aplicativo com este servidor será encerrada abruptamente.",
"MessageConfirmRestart": "Tem certeza de que deseja reiniciar o Jellyfin?",
- "MessageConfirmRemoveMediaLocation": "Tem a certeza que deseja remover esta localização?",
- "MessageConfirmRecordingCancellation": "Cancelar a gravação?",
+ "MessageConfirmRemoveMediaLocation": "Tem certeza de que deseja remover este local?",
+ "MessageConfirmRecordingCancellation": "Cancelar gravação?",
"MessageConfirmProfileDeletion": "Tem a certeza de que deseja remover este perfil?",
- "MessageConfirmDeleteGuideProvider": "Tem a certeza de que pretende eliminar este fornecedor de programação de TV?",
- "MessageAreYouSureYouWishToRemoveMediaFolder": "Tem a certeza de que deseja remover esta pasta?",
- "MessageAreYouSureDeleteSubtitles": "Tem a certeza que deseja remover este ficheiro de legendas?",
+ "MessageConfirmDeleteGuideProvider": "Tem certeza de que deseja excluir este provedor de guia?",
+ "MessageAreYouSureYouWishToRemoveMediaFolder": "Tem certeza de que deseja remover esta pasta de mídia?",
+ "MessageAreYouSureDeleteSubtitles": "Tem certeza de que deseja excluir este arquivo de legenda?",
"MessageAlreadyInstalled": "Esta versão já se encontra instalada.",
"Menu": "Menu",
- "MediaIsBeingConverted": "O conteúdo está a ser convertido para um formato compatível com o dispositivo em que o está a reproduzir.",
- "MediaInfoTimestamp": "Data e Hora",
+ "MediaIsBeingConverted": "A mídia está sendo convertida para um formato compatível com o dispositivo que está reproduzindo a mídia.",
+ "MediaInfoTimestamp": "Timestamp",
"MediaInfoSize": "Tamanho",
"MediaInfoSampleRate": "Taxa de amostragem",
"MediaInfoResolution": "Resolução",
"MediaInfoProfile": "Perfil",
- "MediaInfoPixelFormat": "Formato dos píxeis",
+ "MediaInfoPixelFormat": "Formato de pixel",
"MediaInfoPath": "Caminho",
"MediaInfoLevel": "Nível",
"MediaInfoChannels": "Canais",
- "MaxParentalRatingHelp": "O conteúdo com uma classificação etária mais elevada será ocultado a este utilizador.",
- "MarkUnplayed": "Marcar como não visto",
- "MarkPlayed": "Marcar como visto",
- "LiveTV": "TV em Directo",
- "LiveBroadcasts": "Emissões em Directo",
- "Live": "Em Directo",
- "LibraryAccessHelp": "Seleciona as bibliotecas a partilhar com este utilizador. Os administradores poderão editar todas as pastas utilizando o gestor de metadados.",
- "LatestFromLibrary": "Adicionado recentemente em {0}",
+ "MaxParentalRatingHelp": "Conteúdo com uma classificação mais alta será ocultado deste usuário.",
+ "MarkUnplayed": "Marcar como não reproduzido",
+ "MarkPlayed": "Marcar como reproduzido",
+ "LiveTV": "TV Ao Vivo",
+ "LiveBroadcasts": "Transmissões ao vivo",
+ "Live": "Ao Vivo",
+ "LibraryAccessHelp": "Selecione as bibliotecas para compartilhar com este usuário. Administradores poderão editar todas as pastas usando o gerenciador de metadados.",
+ "LatestFromLibrary": "Recentemente Adicionado em {0}",
"LabelZipCode": "Código Postal",
- "LabelYoureDone": "Concluiu!",
+ "LabelYoureDone": "Você Concluiu!",
"LabelXDlnaDocHelp": "Determina o conteúdo do elemento X_DLNADOC no namespace urn:schemas-dlna-org:device-1-0.",
"LabelXDlnaCapHelp": "Determina o conteúdo do elemento X_DLNACAP no namespace urn:schemas-dlna-org:device-1-0.",
- "LabelVersionInstalled": "{0} instalado",
+ "LabelVersionInstalled": "{0} instalada",
"LabelValue": "Valor",
- "LabelUsername": "Nome de utilizador",
- "LabelUserRemoteClientBitrateLimitHelp": "Esta opção substituirá o valor predefinido do servidor, definido no Painel de Controlo > Reprodução > Transmissão.",
+ "LabelUsername": "Nome de usuário",
+ "LabelUserRemoteClientBitrateLimitHelp": "Substitua o valor global padrão definido nas configurações do servidor, veja Painel > Reprodução > Streaming.",
"LabelUserLibraryHelp": "Seleccione a biblioteca de utilizador a mostrar no dispositivo. Deixe em branco para herdar a definição padrão.",
"LabelUserLibrary": "Biblioteca do Utilizador",
- "LabelUser": "Utilizador",
+ "LabelUser": "Usuário",
"LabelUseNotificationServices": "Usar os seguintes serviços",
"LabelTypeText": "Texto",
"LabelType": "Tipo",
- "LabelTunerType": "Tipo do sintonizador",
- "LabelTunerIpAddress": "Endereço IP do sintonizador",
- "LabelTriggerType": "Tipo do Accionador",
- "LabelTranscodingThreadCountHelp": "Seleciona o número máximo de processos a utilizar durante a transcodificação. Reduzir o número de processos diminuirá a utilização do CPU, mas pode não converter com rapidez suficiente para uma experiência de reprodução suave.",
- "LabelTranscodingThreadCount": "Número de processos de transcodificação",
- "LabelTranscodingTempPathHelp": "Especifica um caminho personalizado para os ficheiros transcodificados enviados aos clientes, ou deixa em branco para utilizar o caminho predefinido do servidor.",
+ "LabelTunerType": "Tipo de sintonizador",
+ "LabelTunerIpAddress": "Endereço IP do Sintonizador",
+ "LabelTriggerType": "Tipo de gatilho",
+ "LabelTranscodingThreadCountHelp": "Selecione o número máximo de threads a serem usadas durante a transcodificação. Reduzir a contagem de threads diminuirá o uso da CPU, mas pode não converter rápido o suficiente para uma experiência de reprodução suave.",
+ "LabelTranscodingThreadCount": "Contagem de threads da transcodificação",
+ "LabelTranscodingTempPathHelp": "Especifique um caminho personalizado para os arquivos de transcodificação servidos aos clientes. Deixe em branco para usar o padrão do servidor.",
"LabelTimeLimitHours": "Limite de tempo (horas)",
- "LabelTime": "Tempo",
- "LabelTextSize": "Tamanho do Texto",
- "LabelTagline": "Slogan",
+ "LabelTime": "Hora",
+ "LabelTextSize": "Tamanho do texto",
+ "LabelTagline": "Tagline",
"LabelSupportedMediaTypes": "Tipos de Conteúdos Suportados",
- "LabelSubtitlePlaybackMode": "Modo de legendas",
+ "LabelSubtitlePlaybackMode": "Modo de legenda",
"LabelSubtitleFormatHelp": "Exemplo: srt",
- "LabelStopping": "A parar",
- "LabelStopWhenPossible": "Parar, quando possível",
- "LabelStatus": "Estado",
- "LabelStartWhenPossible": "Começar, quando possível",
+ "LabelStopping": "Parando",
+ "LabelStopWhenPossible": "Parar quando possível",
+ "LabelStatus": "Status",
+ "LabelStartWhenPossible": "Iniciar quando possível",
"LabelSource": "Fonte",
"LabelSonyAggregationFlagsHelp": "Determina o conteúdo do elemento aggregationFlags no namespace urn:schemas-sonycom:av.",
"LabelSonyAggregationFlags": "Marcas de agregação da Sony",
- "LabelSkipIfGraphicalSubsPresentHelp": "Manter versões em texto das legendas resultará numa transmissão mais eficiente e diminuirá a necessidade de transcodificação de vídeo.",
- "LabelSkipIfGraphicalSubsPresent": "Ignorar se o vídeo já possuir legendas integradas",
- "LabelSkipIfAudioTrackPresentHelp": "Desmarque esta opção para garantir que todos os vídeos têm legendas, independentemente do idioma do áudio.",
- "LabelSkipIfAudioTrackPresent": "Ignorar no caso de o idioma da faixa de áudio principal coincidir com o idioma de transferência",
- "LabelSkipForwardLength": "Avançar reprodução (segundos)",
- "LabelSkipBackLength": "Recuar reprodução (segundos)",
- "LabelSimultaneousConnectionLimit": "Limite de transmissões simultâneas",
+ "LabelSkipIfGraphicalSubsPresentHelp": "Manter versões de texto das legendas resultará em entrega mais eficiente e diminuirá a probabilidade de transcodificação de vídeo.",
+ "LabelSkipIfGraphicalSubsPresent": "Pular se o vídeo já contiver legendas embutidas",
+ "LabelSkipIfAudioTrackPresentHelp": "Desmarque isso para garantir que todos os vídeos tenham legendas, independentemente do idioma do áudio.",
+ "LabelSkipIfAudioTrackPresent": "Pular se a faixa de áudio padrão corresponder ao idioma de download",
+ "LabelSkipForwardLength": "Duração do avanço",
+ "LabelSkipBackLength": "Duração do retrocesso",
+ "LabelSimultaneousConnectionLimit": "Limite de streams simultâneos",
"LabelServerName": "Nome do servidor",
- "LabelServerHostHelp": "192.168.1.100:8096 ou https://omeudominio.com",
- "LabelServerHost": "Servidor",
- "LabelSeriesRecordingPath": "Localização para gravação de séries",
+ "LabelServerHostHelp": "192.168.1.100:8096 ou https://meuservidor.com",
+ "LabelServerHost": "Host",
+ "LabelSeriesRecordingPath": "Caminho de gravação da série",
"LabelSerialNumber": "Número de série",
"LabelSendNotificationToUsers": "Enviar notificação para",
- "LabelSelectVersionToInstall": "Seleciona a versão a instalar",
+ "LabelSelectVersionToInstall": "Selecionar versão para instalar",
"LabelSelectUsers": "Seleccionar utilizadores",
- "LabelSelectFolderGroupsHelp": "Pastas não selecionadas serão apresentadas sozinhas, na sua própria vista.",
- "LabelSelectFolderGroups": "Agrupar automaticamente o conteúdo das pastas seguintes em vistas como Filmes, Música e TV",
+ "LabelSelectFolderGroupsHelp": "Pastas que não estão marcadas serão exibidas sozinhas em sua própria visualização.",
+ "LabelSelectFolderGroups": "Agrupar automaticamente o conteúdo das seguintes pastas em visualizações como 'Filmes', 'Música' e 'TV'",
"LabelSeasonNumber": "Número da temporada",
- "LabelScreensaver": "Proteção de ecrã",
- "LabelScheduledTaskLastRan": "Última execução {0}. Tempo de execução {1}.",
- "HeaderFeatureAccess": "Acesso a funcionalidades",
+ "LabelScreensaver": "Protetor de tela",
+ "LabelScheduledTaskLastRan": "Última execução {0}, levando {1}.",
+ "HeaderFeatureAccess": "Acesso a Recursos",
"HeaderExternalIds": "IDs Externos",
"HeaderError": "Erro",
- "HeaderEnabledFieldsHelp": "Desmarque um campo para bloqueá-lo e evitar que os seus dados sejam alterados.",
- "HeaderEnabledFields": "Campos ativados",
- "HeaderEditImages": "Editar imagens",
+ "HeaderEnabledFieldsHelp": "Desmarque um campo para bloqueá-lo e impedir que seus dados sejam alterados.",
+ "HeaderEnabledFields": "Campos Ativados",
+ "HeaderEditImages": "Editar Imagens",
"HeaderEasyPinCode": "Código PIN",
- "HeaderDownloadSync": "Transferência e Sincronização",
+ "HeaderDownloadSync": "Baixar & Sincronizar",
"HeaderDirectPlayProfileHelp": "Adicionar perfis de reprodução directa que indiquem que formatos o dispositivo pode suportar nativamente.",
"HeaderDirectPlayProfile": "Perfil da Reprodução Directa",
"HeaderDevices": "Dispositivos",
"HeaderDeviceAccess": "Acesso ao Dispositivo",
- "HeaderDeveloperInfo": "Informação do programador",
- "HeaderDetectMyDevices": "Detetar os meus dispositivos",
- "HeaderDeleteProvider": "Eliminar fornecedor",
- "HeaderDeleteItems": "Remover Itens",
+ "HeaderDeveloperInfo": "Informações do Desenvolvedor",
+ "HeaderDetectMyDevices": "Detectar Meus Dispositivos",
+ "HeaderDeleteProvider": "Excluir Provedor",
+ "HeaderDeleteItems": "Excluir Itens",
"Filters": "Filtros",
- "FileReadError": "Ocorreu um erro ao ler o ficheiro.",
- "FileReadCancelled": "A leitura do ficheiro foi cancelada.",
- "FileNotFound": "Ficheiro não encontrado.",
- "File": "Ficheiro",
- "Features": "Funcionalidades",
+ "FileReadError": "Ocorreu um erro ao ler o arquivo.",
+ "FileReadCancelled": "A leitura do arquivo foi cancelada.",
+ "FileNotFound": "Arquivo não encontrado.",
+ "File": "Arquivo",
+ "Features": "Recursos",
"Favorites": "Favoritos",
"Favorite": "Favorito",
- "FastForward": "Avanço rápido",
- "FFmpegSavePathNotFound": "Não conseguimos encontrar o FFmpeg na localização que introduziste. O FFprobe também é necessário e deve estar na mesma pasta. Estes componentes são, por norma, instalados em conjunto. Por favor, verifica a localização e tenta novamente.",
+ "FastForward": "Avançar",
+ "FFmpegSavePathNotFound": "Não conseguimos encontrar o FFmpeg usando o caminho informado. O FFprobe também é necessário e deve existir na mesma pasta. Esses componentes normalmente vêm juntos no mesmo download. Verifique o caminho e tente novamente.",
"Extras": "Extras",
- "ExtractChapterImagesHelp": "Extrair imagens dos capítulos permite aos clientes apresentar menus de seleção de cenas com gráficos. O processo poderá ser lento e exigente em recursos, bem como ocupar múltiplos gigabytes em disco. Este processo é executado quando novos vídeos são encontrados e também através de uma tarefa agendada noturna. É possível configurar a hora de execução para que, idealmente, não coincida com horas de maior utilização.",
+ "ExtractChapterImagesHelp": "Extrair imagens de capítulos permitirá que os clientes exibam menus gráficos de seleção de cenas. O processo pode ser lento, intensivo em recursos e pode exigir vários gigabytes de espaço. Ele é executado quando os vídeos são descobertos e também como uma tarefa agendada noturna. O agendamento é configurável na área de tarefas agendadas. Não é recomendável executar essa tarefa durante horários de pico.",
"ExtraLarge": "Extra Grande",
- "ExitFullscreen": "Sair do ecrã inteiro",
+ "ExitFullscreen": "Sair da tela cheia",
"EveryNDays": "A cada {0} dias",
- "ErrorSavingTvProvider": "Ocorreu um erro ao guardar o fornecedor de televisão. Certifique-se de que está acessível e tente novamente.",
- "ErrorPleaseSelectLineup": "Seleciona a programação e tenta novamente. Se não houver programações disponíveis, verifica se o teu nome de utilizador, palavra-passe e código postal estão corretos.",
- "ErrorStartHourGreaterThanEnd": "A hora de fim deve ser superior à hora de início.",
- "ErrorGettingTvLineups": "Ocorreu um erro ao transferir a programação de TV. Por favor, certifique-se que a sua informação está correcta e tente novamente.",
- "ErrorDeletingItem": "Ocorreu um erro ao eliminar o item do servidor. Verifica se o Jellyfin tem acesso de escrita à pasta multimédia e tenta novamente.",
- "ErrorAddingXmlTvFile": "Ocorreu um erro ao aceder ao ficheiro XmlTV. Por favor, garanta que o ficheiro está acessível e tente de novo.",
- "ErrorAddingTunerDevice": "Ocorreu um erro ao adicionar o dispositivo de sintonização. Por favor, garanta que está acessível e tente de novo.",
- "ErrorAddingMediaPathToVirtualFolder": "Ocorreu um erro ao adicionares a localização dos ficheiros. Certifica-te de que o caminho é valido e que o Jellyfin tem acesso ao mesmo.",
+ "ErrorSavingTvProvider": "Ocorreu um erro ao salvar o provedor de TV. Verifique se ele está acessível e tente novamente.",
+ "ErrorPleaseSelectLineup": "Por favor, selecione uma programação e tente novamente. Se nenhuma programação estiver disponível, verifique se seu nome de usuário, senha e código postal estão corretos.",
+ "ErrorStartHourGreaterThanEnd": "A hora de término deve ser maior que a hora de início.",
+ "ErrorGettingTvLineups": "Ocorreu um erro ao baixar as programações de TV. Verifique se suas informações estão corretas e tente novamente.",
+ "ErrorDeletingItem": "Ocorreu um erro ao excluir o item do servidor. Verifique se o Jellyfin tem acesso de gravação à pasta de mídia e tente novamente.",
+ "ErrorAddingXmlTvFile": "Ocorreu um erro ao acessar o arquivo XMLTV. Verifique se o arquivo existe e tente novamente.",
+ "ErrorAddingTunerDevice": "Ocorreu um erro ao adicionar o dispositivo sintonizador. Verifique se ele está acessível e tente novamente.",
+ "ErrorAddingMediaPathToVirtualFolder": "Ocorreu um erro ao adicionar o caminho da mídia. Verifique se o caminho é válido e se o Jellyfin tem acesso a esse local.",
"Episodes": "Episódios",
- "EndsAtValue": "Termina às {0}",
- "EnableThemeVideosHelp": "Reproduzir vídeos do tema em plano de fundo durante a navegação pela Biblioteca.",
- "EnableThemeSongsHelp": "Reproduz as bandas sonoras em segundo plano enquanto navegas na biblioteca.",
- "EnableStreamLoopingHelp": "Ativa esta opção se as transmissões em direto contiverem apenas alguns segundos de dados e precisarem de ser solicitadas continuamente. Ativar esta opção quando não é necessária pode causar problemas.",
- "EnablePhotosHelp": "Imagens serão detectadas e mostradas em conjunto com outros ficheiros multimédia.",
- "EnablePhotos": "Mostrar fotografias",
- "EnableNextVideoInfoOverlayHelp": "No final de um vídeo, mostrar informação sobre o próximo vídeo na lista de reprodução.",
- "EnableNextVideoInfoOverlay": "Mostrar informação sobre o próximo vídeo durante a reprodução",
+ "EndsAtValue": "Termina em {0}",
+ "EnableThemeVideosHelp": "Reproduzir vídeos tema em segundo plano enquanto navega pela biblioteca.",
+ "EnableThemeSongsHelp": "Reproduzir as músicas tema em segundo plano enquanto navega pela biblioteca.",
+ "EnableStreamLoopingHelp": "Ative isso se os streams ao vivo contiverem apenas alguns segundos de dados e precisarem ser solicitados continuamente. Ativar isso quando não necessário pode causar problemas.",
+ "EnablePhotosHelp": "Imagens serão detectadas e exibidas junto com outros arquivos de mídia.",
+ "EnablePhotos": "Exibir as fotos",
+ "EnableNextVideoInfoOverlayHelp": "Ao final de um vídeo, exibir informações sobre o próximo vídeo na lista de reprodução atual.",
+ "EnableNextVideoInfoOverlay": "Mostrar informações do próximo vídeo durante a reprodução",
"EnableHardwareEncoding": "Ativar codificação por hardware",
- "EnableExternalVideoPlayersHelp": "O menu do leitor externo surgirá ao iniciar a reprodução de vídeo.",
- "EnableExternalVideoPlayers": "Leitores de vídeo externos",
- "EnableDisplayMirroring": "Duplicação de ecrã",
- "EnableColorCodedBackgrounds": "Código de cores para o fundo",
+ "EnableExternalVideoPlayersHelp": "Um menu de reprodutor externo será exibido ao iniciar a reprodução de vídeo.",
+ "EnableExternalVideoPlayers": "Reprodutores de vídeo externos",
+ "EnableDisplayMirroring": "Espelhamento de exibição",
+ "EnableColorCodedBackgrounds": "Fundos com cores codificadas",
"EnableCinemaMode": "Modo cinema",
- "EnableBackdropsHelp": "Mostrar imagens de fundo em algumas páginas durante a navegação pela Biblioteca.",
+ "EnableBackdropsHelp": "Exibir os planos de fundo em algumas páginas enquanto navega pela biblioteca.",
"EditSubtitles": "Editar legendas",
"EditMetadata": "Editar metadados",
"EditImages": "Editar imagens",
"Edit": "Editar",
"EasyPasswordHelp": "O código PIN é utilizado para acesso off-line em clientes suportados e pode ser usado para um acesso fácil dentro da rede.",
- "DropShadow": "sombra projetada",
- "DrmChannelsNotImported": "Canais com proteção DRM não serão importados.",
- "DownloadsValue": "{0} transferências",
- "Download": "Transferir",
+ "DropShadow": "Sombra projetada",
+ "DrmChannelsNotImported": "Canais com DRM não serão importados.",
+ "DownloadsValue": "{0} downloads",
+ "Download": "Baixar",
"DoNotRecord": "Não gravar",
- "DisplayModeHelp": "Seleciona o estilo de apresentação da interface.",
- "DisplayMissingEpisodesWithinSeasonsHelp": "Deve também ser ativado para as bibliotecas de TV nas configurações do servidor.",
- "DisplayMissingEpisodesWithinSeasons": "Mostrar episódios em falta numa série",
- "DisplayInOtherHomeScreenSections": "Mostrar na página Início em secções como 'Conteúdo adicionado recentemente' e 'Continuar a ver'",
- "DisplayInMyMedia": "Mostrar no ecrã principal",
- "Display": "Visualização",
- "Disconnect": "Desligar",
+ "DisplayModeHelp": "Selecione o estilo de layout que você deseja para a interface.",
+ "DisplayMissingEpisodesWithinSeasonsHelp": "Isso também deve estar ativado para bibliotecas de TV na configuração do servidor.",
+ "DisplayMissingEpisodesWithinSeasons": "Exibir episódios ausentes dentro das temporadas",
+ "DisplayInOtherHomeScreenSections": "Exibir em seções da tela inicial como 'Mídia Recentemente Adicionada' e 'Continuar Assistindo'",
+ "DisplayInMyMedia": "Exibir na tela inicial",
+ "Display": "Exibição",
+ "Disconnect": "Desconectar",
"Disc": "Disco",
- "Directors": "Realização",
- "Director": "Realização",
- "DirectStreaming": "Transmissão direta",
- "DirectStreamHelp2": "A energia consumida pela transmissão direta depende normalmente do perfil de áudio. Apenas a transmissão do vídeo é feita sem perdas.",
- "DirectStreamHelp1": "A transmissão de vídeo é compatível com o dispositivo, mas possui um formato de áudio (DTS, Dolby TrueHD, etc.) ou número de canais de áudio incompatível. A transmissão será reempacotada sem perda em tempo real antes de ser enviada para o dispositivo. Apenas a transmissão de áudio será transcodificada.",
+ "Directors": "Diretores",
+ "Director": "Diretor",
+ "DirectStreaming": "Streaming direto",
+ "DirectStreamHelp2": "O consumo de energia pelo streaming direto geralmente depende do perfil de áudio. Apenas o stream de vídeo é sem perdas.",
+ "DirectStreamHelp1": "O stream de vídeo é compatível com o dispositivo, mas possui um formato de áudio incompatível (DTS, Dolby TrueHD, etc.) ou número de canais de áudio. O stream de vídeo será reembalado sem perdas em tempo real antes de ser enviado ao dispositivo. Apenas o stream de áudio será transcodificado.",
"DirectPlaying": "Reprodução direta",
- "DeviceAccessHelp": "Apenas se aplica a dispositivos que podem ser identificados como únicos e que não impedem o acesso ao navegador. Filtrar o acesso a dispositivos a um utilizador, impede-o de utilizar novos dispositivos, até estes serem aprovados aqui.",
- "DetectingDevices": "Procurando dispositivos",
- "Desktop": "Área de Trabalho",
+ "DeviceAccessHelp": "Isso se aplica apenas a dispositivos que podem ser identificados de forma única e não impedirá o acesso pelo navegador. Filtrar o acesso do dispositivo do usuário impedirá que eles usem novos dispositivos até que tenham sido aprovados aqui.",
+ "DetectingDevices": "Detectando dispositivos",
+ "Desktop": "Desktop",
"Descending": "Descendente",
- "Depressed": "Baixo relevo",
- "DeleteUserConfirmation": "Tens a certeza de que pretendes eliminar este utilizador?",
- "DeleteUser": "Eliminar utilizador",
- "DeleteMedia": "Remover multimédia",
- "DeleteImageConfirmation": "Tens a certeza de que pretendes eliminar esta imagem?",
- "DeleteImage": "Eliminar imagem",
- "DeleteDeviceConfirmation": "Tem a certeza que deseja remover este dispositivo? Reaparecerá na próxima vez que o utilizador inicie sessão a partir dele.",
- "Delete": "Eliminar",
- "DefaultSubtitlesHelp": "As legendas são carregadas com base nas definições predefinidas e forçadas para os metadados incorporados. As preferências de idioma são consideradas quando existem múltiplas opções disponíveis.",
- "ErrorDefault": "Ocorreu um erro ao processar o pedido. Por favor, tente novamente mais tarde.",
- "Default": "Predefinição",
- "DeathDateValue": "Faleceu: {0}",
- "DatePlayed": "Reproduzido a",
- "DateAdded": "Adicionado a",
+ "Depressed": "Depressivo",
+ "DeleteUserConfirmation": "Tem certeza de que deseja excluir este usuário?",
+ "DeleteUser": "Excluir usuário",
+ "DeleteMedia": "Excluir mídia",
+ "DeleteImageConfirmation": "Tem certeza de que deseja excluir esta imagem?",
+ "DeleteImage": "Excluir imagem",
+ "DeleteDeviceConfirmation": "Tem certeza de que deseja excluir este dispositivo? Ele reaparecerá na próxima vez que um usuário fizer login com ele.",
+ "Delete": "Excluir",
+ "DefaultSubtitlesHelp": "As legendas são carregadas com base nas flags padrão e forçadas nos metadados embutidos. As preferências de idioma são consideradas quando várias opções estão disponíveis.",
+ "ErrorDefault": "Ocorreu um erro ao processar a solicitação. Por favor, tente novamente mais tarde.",
+ "Default": "Padrão",
+ "DeathDateValue": "Falecido: {0}",
+ "DatePlayed": "Data de reprodução",
+ "DateAdded": "Data adicionada",
"CustomDlnaProfilesHelp": "Crie um perfil personalizado para um novo dispositivo ou para sobrepor a um perfil de sistema.",
- "CriticRating": "Classificação dos críticos",
- "CopyStreamURLSuccess": "URL copiado com sucesso.",
- "CopyStreamURL": "Copiar URL da corrente",
- "Continuing": "A Continuar",
- "ContinueWatching": "Continuar a ver",
- "Connect": "Ligar",
- "ConfirmEndPlayerSession": "Deseja encerrar o Servidor Jellyfin em {0}?",
- "ConfirmDeletion": "Confirmar remoção",
- "ConfirmDeleteItems": "A eliminação destes itens elimina-os do sistema de ficheiros e da tua biblioteca multimédia. Tens a certeza de que queres continuar?",
- "ConfirmDeleteItem": "A eliminação deste item irá eliminá-lo do sistema de ficheiros e da tua biblioteca multimédia. Tens a certeza de que queres continuar?",
- "ConfirmDeleteImage": "Eliminar a imagem?",
- "ConfigureDateAdded": "Configura a forma como é atribuída a data de adição, no Painel de controlo > Bibliotecas > Visualização",
+ "CriticRating": "Avaliação da crítica",
+ "CopyStreamURLSuccess": "URL copiada com sucesso.",
+ "CopyStreamURL": "Copiar URL do Stream",
+ "Continuing": "Continuando",
+ "ContinueWatching": "Continuar assistindo",
+ "Connect": "Conectar",
+ "ConfirmEndPlayerSession": "Você gostaria de desligar o Jellyfin em {0}?",
+ "ConfirmDeletion": "Confirmar exclusão",
+ "ConfirmDeleteItems": "Excluir estes itens irá removê-los do sistema de arquivos e da sua biblioteca de mídia. Tem certeza de que deseja continuar?",
+ "ConfirmDeleteItem": "Excluir este item irá removê-lo do sistema de arquivos e da sua biblioteca de mídia. Tem certeza de que deseja continuar?",
+ "ConfirmDeleteImage": "Excluir imagem?",
+ "ConfigureDateAdded": "Configurar como os metadados de 'Data adicionada' são determinados em Painel > Bibliotecas > Exibição",
"Composer": "Compositor",
- "CommunityRating": "Classificação da comunidade",
- "ColorTransfer": "Transferência de cores",
- "ColorSpace": "Espaço de cores",
- "ColorPrimaries": "Cores primárias",
+ "CommunityRating": "Avaliação da comunidade",
+ "ColorTransfer": "Transferência de cor",
+ "ColorSpace": "Espaço de cor",
+ "ColorPrimaries": "Primárias de cor",
"Collections": "Coleções",
- "CinemaModeConfigurationHelp": "O modo cinema traz a experiência do cinema diretamente para a tua sala de estar, com a possibilidade de reproduzir trailers e introduções personalizadas antes da longa-metragem.",
+ "CinemaModeConfigurationHelp": "O modo cinema traz a experiência do cinema para sua casa, permitindo exibir trailers e introduções personalizadas antes do conteúdo principal.",
"Channels": "Canais",
"ChannelNumber": "Número do canal",
"ChannelNameOnly": "Apenas canal {0}",
- "ChannelAccessHelp": "Seleciona os canais para partilhar com este utilizador. Os administradores poderão editar todos os canais utilizando o gestor de metadados.",
- "ChangingMetadataImageSettingsNewContent": "As alterações às definições de transferência de metadados ou de imagens só se aplicam a novos conteúdos adicionados à tua biblioteca. Para aplicar as alterações aos títulos existentes, terás de atualizar os metadados manualmente.",
+ "ChannelAccessHelp": "Selecione os canais para compartilhar com este usuário. Administradores podem editar todos os canais usando o gerenciador de metadados.",
+ "ChangingMetadataImageSettingsNewContent": "Alterações nas configurações de download de metadados ou imagens só se aplicam a novos conteúdos adicionados à sua biblioteca. Para aplicar em títulos existentes, atualize os metadados manualmente.",
"Categories": "Categorias",
- "CancelSeries": "Cancelar gravação de série",
+ "CancelSeries": "Cancelar série",
"CancelRecording": "Cancelar gravação",
- "ButtonWebsite": "Website",
+ "ButtonWebsite": "Site",
"ButtonUninstall": "Desinstalar",
"ButtonTrailer": "Trailer",
"ButtonSubmit": "Enviar",
"ButtonStop": "Parar",
"ButtonStart": "Iniciar",
- "ButtonSignOut": "Terminar sessão",
- "ButtonSignIn": "Iniciar sessão",
- "ButtonShutdown": "Encerrar",
+ "ButtonSignOut": "Sair",
+ "ButtonSignIn": "Entrar",
+ "ButtonShutdown": "Desligar",
"ButtonSend": "Enviar",
"ButtonSelectView": "Selecionar visualização",
- "ButtonSelectDirectory": "Seleccione a Pasta",
- "ButtonScanAllLibraries": "Analisar todas as bibliotecas",
+ "ButtonSelectDirectory": "Selecionar diretório",
+ "ButtonScanAllLibraries": "Verificar todas as bibliotecas",
"ButtonRevoke": "Revogar",
"ButtonResume": "Retomar",
"ButtonResetEasyPassword": "Redefinir código PIN",
- "ButtonRename": "Alterar o nome",
+ "ButtonRename": "Renomear",
"ButtonRemove": "Remover",
- "ButtonRefreshGuideData": "Atualizar Guia TV",
- "ButtonQuickStartGuide": "Guia de instalação",
+ "ButtonRefreshGuideData": "Atualizar dados do guia",
+ "ButtonQuickStartGuide": "Guia de configuração",
"ButtonPreviousTrack": "Faixa anterior",
"ButtonPause": "Pausar",
- "ButtonParentalControl": "Controlo parental",
+ "ButtonParentalControl": "Controle dos pais",
"ButtonOpen": "Abrir",
- "ButtonOk": "OK",
- "ButtonNextTrack": "Faixa seguinte",
+ "ButtonOk": "Ok",
+ "ButtonNextTrack": "Próxima faixa",
"ButtonNetwork": "Rede",
"ButtonMore": "Mais",
- "ButtonManualLogin": "Início de sessão manual",
+ "ButtonManualLogin": "Login manual",
"ButtonLibraryAccess": "Acesso à biblioteca",
- "ButtonInfo": "Informação",
- "ButtonFullscreen": "Ecrã inteiro",
- "ButtonForgotPassword": "Esqueci-me da palavra-passe",
- "ButtonEditOtherUserPreferences": "Editar este perfil de utilizador, imagem e preferências pessoais.",
+ "ButtonInfo": "Informações",
+ "ButtonFullscreen": "Tela cheia",
+ "ButtonForgotPassword": "Esqueci minha senha",
+ "ButtonEditOtherUserPreferences": "Editar perfil, imagem e preferências deste usuário.",
"Auto": "Automático",
- "AlwaysPlaySubtitles": "Mostrar sempre legendas",
- "AllowMediaConversionHelp": "Permitir ou negar acesso à funcionalidade de conversão multimédia.",
- "AllowMediaConversion": "Permitir conversão multimédia",
- "ButtonGotIt": "Entendido",
- "ButtonChangeServer": "Alterar Servidor",
+ "AlwaysPlaySubtitles": "Sempre exibir",
+ "AllowMediaConversionHelp": "Conceder ou negar acesso ao recurso de conversão de mídia.",
+ "AllowMediaConversion": "Permitir conversão de mídia",
+ "ButtonGotIt": "Entendi",
+ "ButtonChangeServer": "Trocar servidor",
"ButtonCancel": "Cancelar",
"ButtonBack": "Voltar",
- "OptionMissingEpisode": "Episódios em Falta",
- "OptionMax": "Máximo",
+ "OptionMissingEpisode": "Episódios Ausentes",
+ "OptionMax": "Máx",
"OptionLikes": "Gostos",
"OptionImdbRating": "Classificação no IMDb",
"OptionIgnoreTranscodeByteRangeRequestsHelp": "Essas solicitações serão atendidas, mas irão ignorar o cabeçalho do intervalo de bytes.",
"OptionHlsSegmentedSubtitles": "Legendas segmentadas HLS",
- "OptionHideUserFromLoginHelp": "Útil para contas de administrador privadas ou ocultas. O utilizador terá de iniciar sessão manualmente, introduzindo o nome de utilizador e a palavra-passe.",
- "OptionHideUser": "Ocultar este utilizador nos formulários de início de sessão",
- "OptionHasThemeVideo": "Vídeo do tema",
- "OptionHasThemeSong": "Banda sonora do tema",
+ "OptionHideUserFromLoginHelp": "Útil para contas de administrador privadas ou ocultas. O usuário precisará fazer login manualmente inserindo seu nome de usuário e senha.",
+ "OptionHideUser": "Ocultar este usuário das telas de login",
+ "OptionHasThemeVideo": "Vídeo Tema",
+ "OptionHasThemeSong": "Música Tema",
"OptionExternallyDownloaded": "Download Externo",
"OptionEveryday": "Todos os dias",
"OptionEstimateContentLength": "Estimar o tamanho do conteúdo ao transcodificar",
"OptionEquals": "Igual a",
"OptionEnableM2tsModeHelp": "Activar o modo m2ts ao codificar para mpegts.",
"OptionEnableM2tsMode": "Activar modo M2ts",
- "OptionEnableExternalContentInSuggestionsHelp": "Permitir que trailers da Internet e programas de TV em Directo sejam incluídos no conteúdo sugerido.",
- "OptionEnableAccessToAllLibraries": "Permitir acesso a todas as bibliotecas",
- "OptionEnableAccessFromAllDevices": "Permitir o acesso a partir de todos os dispositivos",
+ "OptionEnableExternalContentInSuggestionsHelp": "Permitir que trailers da internet e programas de TV ao vivo sejam incluídos dentro do conteúdo sugerido.",
+ "OptionEnableAccessToAllLibraries": "Ativar acesso a todas as bibliotecas",
+ "OptionEnableAccessFromAllDevices": "Ativar acesso de todos os dispositivos",
"OptionEmbedSubtitles": "Incorporar no contentor",
"OptionDvd": "DVD",
- "LabelBurnSubtitles": "Integrar legendas",
- "LabelBlockContentWithTags": "Bloquear itens com etiquetas",
- "LabelBlastMessageIntervalHelp": "Determina a duração em segundos entre as mensagens de exploração enviadas pelo servidor.",
- "LabelBlastMessageInterval": "Intervalo para envio de mensagens de reconhecimento",
+ "LabelBurnSubtitles": "Queimar legendas",
+ "LabelBlockContentWithTags": "Bloquear itens com tags",
+ "LabelBlastMessageIntervalHelp": "Determine a duração em segundos entre as mensagens alive.",
+ "LabelBlastMessageInterval": "Intervalo da mensagem Alive",
"LabelBitrate": "Taxa de bits",
"LabelBirthYear": "Ano de nascimento",
- "ButtonAudioTracks": "Faixas de Áudio",
+ "ButtonAudioTracks": "Faixas de áudio",
"ButtonArrowRight": "Direita",
"ButtonArrowLeft": "Esquerda",
- "ButtonAddUser": "Adicionar utilizador",
+ "ButtonAddUser": "Adicionar usuário",
"ButtonAddServer": "Adicionar servidor",
- "ButtonAddScheduledTaskTrigger": "Adicionar tarefa agendada",
- "ButtonAddMediaLibrary": "Adicionar Biblioteca de Multimédia",
- "ButtonAddImage": "Adicionar Imagem",
- "BurnSubtitlesHelp": "Determina se o servidor deve integrar as legendas. Evitar a integração de legendas melhora o desempenho do servidor. Selecione Automático para que legendas baseadas em imagem (VOBSUB, PGS, SUB/IDX) e certos formatos ASS/SSA sejam integrados.",
- "MessageBrowsePluginCatalog": "Explora as extensões disponíveis no nosso catálogo.",
+ "ButtonAddScheduledTaskTrigger": "Adicionar gatilho",
+ "ButtonAddMediaLibrary": "Adicionar biblioteca de mídia",
+ "ButtonAddImage": "Adicionar imagem",
+ "BurnSubtitlesHelp": "Define se o servidor deve embutir legendas. Evitar isso melhora o desempenho. Selecione Automático para embutir formatos baseados em imagem (VobSub, PGS, SUB, IDX, etc.) e certos ASS ou SSA.",
+ "MessageBrowsePluginCatalog": "Navegue pelo nosso catálogo de plugins para ver os plugins disponíveis.",
"Browse": "Explorar",
- "BoxRear": "Caixa (verso)",
+ "BoxRear": "Caixa (traseira)",
"Box": "Caixa",
"Books": "Livros",
- "BookLibraryHelp": "São suportados audiolivros e ebooks. Consulta o {0} guia de nomenclatura de livros {1}.",
- "Blacklist": "Lista Negra",
+ "BookLibraryHelp": "Livros de áudio e texto são suportados. Veja o {0}guia de nomes de livros{1}.",
+ "Blacklist": "Lista negra",
"BirthPlaceValue": "Local de nascimento: {0}",
"BirthLocation": "Local de nascimento",
"BirthDateValue": "Nascimento: {0}",
- "Banner": "Faixa",
- "Backdrops": "Imagens de fundo",
- "Backdrop": "Imagem de fundo",
- "AuthProviderHelp": "Seleciona um mecanismo de autenticação a ser utilizado para validar as credenciais deste utilizador.",
+ "Banner": "Banner",
+ "Backdrops": "Planos de fundo",
+ "Backdrop": "Plano de fundo",
+ "AuthProviderHelp": "Selecione um provedor de autenticação para validar a senha deste usuário.",
"Audio": "Áudio",
- "AspectRatio": "Proporção da imagem",
- "Ascending": "Crescente",
- "Art": "ClearArt (imagem transparente)",
- "AroundTime": "Por volta das {0}",
- "Anytime": "Qualquer altura",
+ "AspectRatio": "Proporção",
+ "Ascending": "Ascendente",
+ "Art": "Clearart",
+ "AroundTime": "Por volta de {0}",
+ "Anytime": "Qualquer horário",
"AnyLanguage": "Qualquer idioma",
"Artists": "Artistas",
- "AsManyAsPossible": "Tantos quanto possível",
- "AllowedRemoteAddressesHelp": "Lista separada por vírgula de endereços IP ou entradas de máscara de IP/rede para redes que terão permissão para se conectar remotamente. Se deixado em branco, todos os endereços remotos serão permitidos.",
- "AllowRemoteAccessHelp": "Se desmarcada, todas as conexões remotas serão bloqueadas.",
+ "AsManyAsPossible": "O máximo possível",
+ "AllowedRemoteAddressesHelp": "Lista separada por vírgulas de endereços IP ou entradas IP/máscara de redes que poderão se conectar remotamente. Se deixado em branco, todos os endereços remotos serão permitidos.",
+ "AllowRemoteAccessHelp": "Se desmarcado, todas as conexões remotas serão bloqueadas.",
"AllowRemoteAccess": "Permitir conexões remotas a este servidor",
- "AllowOnTheFlySubtitleExtractionHelp": "Legendas integradas podem ser extraídas do vídeo e enviadas como texto simples para os clientes para evitar transcodificação. Em certos dispositivos, esta poderá ser uma operação demorada e pode causar interrupções de reprodução durante o processo de extração. Desative esta opção para que as legendas sejam integradas no vídeo durante a conversão para um formato suportado pelo dispositivo de destino.",
- "AllowOnTheFlySubtitleExtraction": "Permitir a extração de legendas em tempo real",
- "AllowHWTranscodingHelp": "Permite ao sintonizador converter emissões em tempo real. Poderá reduzir a necessidade de conversão a fazer pelo servidor.",
+ "AllowOnTheFlySubtitleExtractionHelp": "Legendas embutidas podem ser extraídas dos vídeos e entregues em texto simples, evitando transcodificação de vídeo. Em alguns sistemas, pode ser demorado e travar a reprodução. Desative para embutir legendas na transcodificação quando não suportadas nativamente pelo dispositivo.",
+ "AllowOnTheFlySubtitleExtraction": "Permitir extração de legendas em tempo real",
+ "AllowHWTranscodingHelp": "Permite que o sintonizador transcodifique streams em tempo real. Pode ajudar a reduzir a transcodificação exigida pelo servidor.",
"AllLibraries": "Todas as bibliotecas",
"AllLanguages": "Todos os idiomas",
"AllEpisodes": "Todos os episódios",
- "AllComplexFormats": "Todos os formatos complexos (ASS, SSA, VobSub, PGS, SUB, IDX, …)",
+ "AllComplexFormats": "Todos os formatos complexos (ASS, SSA, VobSub, PGS, SUB, IDX, ...)",
"AllChannels": "Todos os canais",
"All": "Todos",
"Alerts": "Alertas",
"Albums": "Álbuns",
- "Aired": "Estreou em",
- "AirDate": "Data de estreia",
+ "Aired": "Exibido",
+ "AirDate": "Data de exibição",
"AdditionalNotificationServices": "Explore o catálogo de extensões para instalar serviços adicionais de notificação.",
- "AddedOnValue": "{0} foi adicionado",
- "AddToPlaylist": "Adicionar à lista de reprodução",
+ "AddedOnValue": "Adicionado em {0}",
+ "AddToPlaylist": "Adicionar à playlist",
"AddToPlayQueue": "Adicionar à fila de reprodução",
"AddToCollection": "Adicionar à coleção",
"Add": "Adicionar",
"Actor": "Ator",
- "AccessRestrictedTryAgainLater": "O acesso está atualmente restrito. Por favor, tenta mais tarde.",
+ "AccessRestrictedTryAgainLater": "O acesso está restrito no momento. Por favor, tente novamente mais tarde.",
"Absolute": "Absoluto",
- "AlwaysPlaySubtitlesHelp": "As legendas correspondentes à preferência de idioma serão carregadas, independentemente do idioma do áudio.",
- "SearchForMissingMetadata": "Procurar metadados em falta",
- "ScanLibrary": "Analisar biblioteca",
- "HeaderDeleteItem": "Remover item",
- "HeaderDeleteDevice": "Eliminar dispositivo",
- "HeaderDefaultRecordingSettings": "Predefinições de gravação",
- "HeaderDateIssued": "Data da emissão",
+ "AlwaysPlaySubtitlesHelp": "Legendas que correspondam à preferência de idioma serão carregadas independentemente do idioma do áudio.",
+ "SearchForMissingMetadata": "Pesquisar metadados ausentes",
+ "ScanLibrary": "Verificar biblioteca",
+ "HeaderDeleteItem": "Excluir Item",
+ "HeaderDeleteDevice": "Excluir Dispositivo",
+ "HeaderDefaultRecordingSettings": "Configurações Padrão de Gravação",
+ "HeaderDateIssued": "Data de Emissão",
"HeaderCustomDlnaProfiles": "Perfis Personalizados",
- "HeaderContinueWatching": "Continuar a ver",
- "HeaderContinueListening": "Continuar a ouvir",
+ "HeaderContinueWatching": "Continuar Assistindo",
+ "HeaderContinueListening": "Continuar Ouvindo",
"HeaderContainerProfileHelp": "Os Perfis do Contentor indicam as limitações de um dispositivo ao reproduzir formatos específicos. Se hourver alguma limitação, o ficheiro multimédia será transcodificado, mesmo se o formato estiver configurado para reprodução directa.",
"HeaderContainerProfile": "Perfil do Contentor",
- "HeaderConnectionFailure": "Falha de Ligação",
- "HeaderConnectToServer": "Ligar ao Servidor",
+ "HeaderConnectionFailure": "Falha na Conexão",
+ "HeaderConnectToServer": "Conectar ao Servidor",
"HeaderConfirmRevokeApiKey": "Revogar Chave da API",
"HeaderConfirmProfileDeletion": "Confirmar Remoção do Perfil",
- "HeaderConfirmPluginInstallation": "Confirmar instalação da extensão",
+ "HeaderConfirmPluginInstallation": "Confirmar Instalação do Plugin",
"HeaderConfigureRemoteAccess": "Configurar Acesso Remoto",
"HeaderCodecProfileHelp": "Os perfis do Codec indicam as limitações de um dispositivo ao reproduzir codecs específicos. Se uma limitação ocorrer, o ficheiro multimédia será transcodificado, mesmo se o codec estiver configurado para reprodução direta.",
"HeaderCodecProfile": "Perfil do Codec",
- "HeaderChapterImages": "Imagens dos capítulos",
- "HeaderChannelAccess": "Acesso ao canal",
- "HeaderCancelSeries": "Cancelar gravação de série",
- "HeaderCancelRecording": "Cancelar gravação",
- "HeaderBlockItemsWithNoRating": "Bloquear conteúdo sem informação de classificação etária ou com informação desconhecida",
- "HeaderAudioSettings": "Definições de áudio",
- "HeaderAudioBooks": "Livros de Áudio",
- "HeaderApp": "Aplicação",
- "HeaderApiKeysHelp": "As aplicações externas necessitam de uma chave de API para comunicar com o servidor. As chaves são emitidas ao iniciar sessão com uma conta de utilizador normal ou concedendo manualmente a chave à aplicação.",
+ "HeaderChapterImages": "Imagens de Capítulo",
+ "HeaderChannelAccess": "Acesso ao Canal",
+ "HeaderCancelSeries": "Cancelar Série",
+ "HeaderCancelRecording": "Cancelar Gravação",
+ "HeaderBlockItemsWithNoRating": "Bloquear itens sem informações de classificação ou com classificação não reconhecida",
+ "HeaderAudioSettings": "Configurações de Áudio",
+ "HeaderAudioBooks": "Audiolivros",
+ "HeaderApp": "App",
+ "HeaderApiKeysHelp": "Aplicativos externos precisam de uma chave de API para se comunicar com o servidor. As chaves são emitidas ao fazer login com uma conta de usuário normal ou ao conceder manualmente uma chave ao aplicativo.",
"HeaderApiKeys": "Chaves da API",
"HeaderApiKey": "Chave da API",
- "HeaderAllowMediaDeletionFrom": "Permitir remoção de multimédia a partir de",
+ "HeaderAllowMediaDeletionFrom": "Permitir exclusão de mídia de",
"HeaderAlert": "Alerta",
"HeaderAlbumArtists": "Artistas do Álbum",
"HeaderAdditionalParts": "Partes Adicionais",
- "HeaderAddUpdateImage": "Adicionar/Atualizar imagem",
- "HeaderAddToPlaylist": "Adicionar à playlist",
- "HeaderAddToCollection": "Adicionar à coleção",
+ "HeaderAddUpdateImage": "Adicionar/Atualizar Imagem",
+ "HeaderAddToPlaylist": "Adicionar à Playlist",
+ "HeaderAddToCollection": "Adicionar à Coleção",
"HeaderActivity": "Atividade",
- "HeaderActiveRecordings": "Gravações ativas",
- "HeaderActiveDevices": "Dispositivos ativos",
- "HeaderAccessScheduleHelp": "Crie uma restrição horária de acesso para limitar o acesso ao Jellyfin a determinadas horas.",
- "HeaderAccessSchedule": "Restrição Horária de Acesso",
- "HardwareAccelerationWarning": "Ativar a aceleração por hardware pode causar instabilidade em alguns ambientes. Certifica-te de que o teu sistema operativo e controladores de vídeo estão totalmente atualizados. Se tiveres dificuldades em reproduzir vídeo depois de ativares esta opção, terás de voltar a alterar a definição para \"Nenhum\".",
- "HDPrograms": "Programas HD",
- "EncoderPresetHelp": "Escolha um valor mais rápido para melhorar o desempenho, ou um valor mais lento para melhorar a qualidade.",
- "H264CrfHelp": "O parâmetro \"Constant Rate Factor\" (CRF) define o nível de qualidade predefinido para os codificadores de software x264 e x265. Os valores possíveis vão de 0 a 51, sendo que valores mais baixos produzem melhor qualidade — à custa de ficheiros maiores. Os valores mais comuns situam-se entre 18 e 28. O valor predefinido para o x264 é 23, e para o x265 é 28, podendo servir como ponto de partida para afinares a qualidade conforme necessário. Codificadores por hardware não utilizam esta definição.",
- "GuideProviderSelectListings": "Selecionar listas",
- "Guide": "Programação",
- "GuestStar": "Estrela convidada",
+ "HeaderActiveRecordings": "Gravações Ativas",
+ "HeaderActiveDevices": "Dispositivos Ativos",
+ "HeaderAccessScheduleHelp": "Crie uma agenda de acesso para limitar o acesso a determinadas horas.",
+ "HeaderAccessSchedule": "Agenda de Acesso",
+ "HardwareAccelerationWarning": "Ativar a aceleração de hardware pode causar instabilidade em alguns ambientes. Certifique-se de que seu sistema operacional e drivers de vídeo estão totalmente atualizados. Se você tiver dificuldade em reproduzir vídeo após ativar isso, será necessário alterar a configuração de volta para Nenhum.",
+ "HDPrograms": "Programas em HD",
+ "EncoderPresetHelp": "Escolha um valor mais rápido para melhorar o desempenho ou um valor mais lento para melhorar a qualidade.",
+ "H264CrfHelp": "O 'Constant Rate Factor' (CRF) é a configuração de qualidade padrão para os codificadores de software x264 e x265. Você pode definir valores entre 0 e 51, onde valores mais baixos resultam em melhor qualidade (à custa de tamanhos de arquivo maiores). Valores razoáveis estão entre 18 e 28. O padrão para x264 é 23, e para x265 é 28, então você pode usar isso como ponto de partida. Codificadores de hardware não usam essas configurações.",
+ "GuideProviderSelectListings": "Selecionar listagens",
+ "Guide": "Guia",
+ "GuestStar": "Participação especial",
"GroupVersions": "Agrupar versões",
"GroupBySeries": "Agrupar por série",
- "ErrorAddingListingsToSchedulesDirect": "Ocorreu um erro ao adicionar o alinhamento à tua conta do Schedules Direct. O Schedules Direct só permite um número limitado de alinhamentos por conta. Poderás ter de iniciar sessão no site do Schedules Direct e remover outras listagens da tua conta antes de prosseguires.",
- "Ended": "Terminado",
- "DefaultMetadataLangaugeDescription": "Estes são os valores-predefinidos que podem ser personalizados para cada uma das bibliotecas.",
- "Genres": "Géneros",
- "Genre": "Género",
+ "ErrorAddingListingsToSchedulesDirect": "Ocorreu um erro ao adicionar a programação à sua conta do Schedules Direct. O Schedules Direct permite apenas um número limitado de programações por conta. Você pode precisar fazer login no site do Schedules Direct e remover outras listagens da sua conta antes de prosseguir.",
+ "Ended": "Encerrado",
+ "DefaultMetadataLangaugeDescription": "Estas são suas configurações padrão e podem ser personalizadas por biblioteca.",
+ "Genres": "Gêneros",
+ "Genre": "Gênero",
"General": "Geral",
- "Fullscreen": "Ecrã inteiro",
- "Friday": "Sexta",
+ "Fullscreen": "Tela cheia",
+ "Friday": "Sexta-feira",
"FormatValue": "Formato: {0}",
"Folders": "Pastas",
"OptionIgnoreTranscodeByteRangeRequests": "Ignorar solicitações de intervalo de bytes de transcodificação",
- "OptionEnableAccessToAllChannels": "Permitir acesso a todos os canais",
- "FetchingData": "A transferir informação adicional",
- "EnableStreamLooping": "Transmissões em direto em loop automático",
- "Down": "Baixar",
+ "OptionEnableAccessToAllChannels": "Ativar acesso a todos os canais",
+ "FetchingData": "Buscando dados adicionais",
+ "EnableStreamLooping": "Repetir streams ao vivo automaticamente",
+ "Down": "Para baixo",
"HeaderNavigation": "Navegação",
- "ButtonSplit": "Separar",
+ "ButtonSplit": "Dividir",
"AskAdminToCreateLibrary": "Peça a um administrador para criar uma biblioteca.",
- "AllowFfmpegThrottling": "Transcodificação do Acelerador",
+ "AllowFfmpegThrottling": "Controlar transcodificações",
"DashboardOperatingSystem": "Sistema Operativo",
- "LabelUserLoginAttemptsBeforeLockout": "Tentativas de início de sessão falhadas até o utilizador ser bloqueado",
+ "LabelUserLoginAttemptsBeforeLockout": "Tentativas de login falhadas antes do bloqueio do usuário",
"LabelTrackNumber": "Número da faixa",
- "LabelSportsCategories": "Categorias de desporto",
+ "LabelSportsCategories": "Categorias de esportes",
"Yesterday": "Ontem",
- "MusicVideo": "Vídeo de música",
- "MusicLibraryHelp": "Consulta o {0}guia de nomenclatura de músicas{1}.",
- "MusicArtist": "Artista musical",
- "MusicAlbum": "Álbum de música",
- "MovieLibraryHelp": "Consulta o {0}guia de nomenclatura de filmes{1}.",
+ "MusicVideo": "Vídeo Musical",
+ "MusicLibraryHelp": "Veja o {0}guia de nomes de música{1}.",
+ "MusicArtist": "Artista de Música",
+ "MusicAlbum": "Álbum de Música",
+ "MovieLibraryHelp": "Veja o {0}guia de nomes de filmes{1}.",
"MoveRight": "Mover para a direita",
- "MoveLeft": "Mova à esquerda",
- "MoreMediaInfo": "Informações sobre mídia",
+ "MoveLeft": "Mover para a esquerda",
+ "MoreMediaInfo": "Informações da Mídia",
"MoreFromValue": "Mais de {0}",
"MediaInfoRefFrames": "Quadros de referência",
- "MediaInfoContainer": "Container",
+ "MediaInfoContainer": "Contêiner",
"MediaInfoAnamorphic": "Anamórfico",
"LabelVideoResolution": "Resolução do vídeo",
- "LabelTypeMetadataDownloaders": "Fornecedores de metadados ({0})",
- "LabelTranscodePath": "Caminho da transcodificação",
- "OnlyImageFormats": "Somente formatos de imagem (VOBSUB, PGS, SUB)",
- "OnlyForcedSubtitlesHelp": "Apenas as legendas marcadas como forçadas serão carregadas.",
- "OnlyForcedSubtitles": "Apenas legendas forçadas",
- "Off": "Desligadas",
+ "LabelTypeMetadataDownloaders": "Downloaders de metadados ({0})",
+ "LabelTranscodePath": "Caminho de transcodificação",
+ "OnlyImageFormats": "Apenas Formatos de Imagem (VobSub, PGS, SUB)",
+ "OnlyForcedSubtitlesHelp": "Apenas legendas marcadas como forçadas serão carregadas.",
+ "OnlyForcedSubtitles": "Apenas Forçadas",
+ "Off": "Desligado",
"NumLocationsValue": "{0} pastas",
"Normal": "Normal",
"None": "Nenhum",
- "NoSubtitlesHelp": "As legendas não serão carregadas por padrão. Eles ainda podem ser ativados manualmente durante a reprodução.",
- "NoSubtitleSearchResultsFound": "Sem resultados.",
- "NoNewDevicesFound": "Não foram encontrados novos dispositivos. Para adicionares um novo sintonizador, fecha esta caixa de diálogo e introduz as informações do dispositivo manualmente.",
- "NoCreatedLibraries": "Parece que você ainda não criou nenhuma biblioteca. {0} Deseja criar um agora? {1}",
+ "NoSubtitlesHelp": "As legendas não serão carregadas por padrão. Elas ainda podem ser ativadas manualmente durante a reprodução.",
+ "NoSubtitleSearchResultsFound": "Nenhum resultado encontrado.",
+ "NoNewDevicesFound": "Nenhum novo dispositivo encontrado. Para adicionar um novo sintonizador, feche este diálogo e insira as informações do dispositivo manualmente.",
+ "NoCreatedLibraries": "Parece que você ainda não criou nenhuma biblioteca. {0>Você gostaria de criar uma agora?{1}",
"No": "Não",
- "Mobile": "Telemóvel",
- "MetadataSettingChangeHelp": "Alterar as definições de metadados irá afetar apenas conteúdo adicionado no futuro. Para atualizar conteúdo já existente, abre o painel de detalhes e clica no botão 'Recarregar metadados' ou executa uma atualização em massa utilizando o Gestor de metadados.",
- "MetadataManager": "Gestor de metadados",
+ "Mobile": "Móvel",
+ "MetadataSettingChangeHelp": "Alterar as configurações de metadados afetará o novo conteúdo adicionado a partir de agora. Para atualizar o conteúdo existente, abra a tela de detalhes e clique no botão 'Atualizar', ou faça atualizações em massa usando o 'Gerenciador de Metadados'.",
+ "MetadataManager": "Gerenciador de Metadados",
"Metadata": "Metadados",
"MessageYouHaveVersionInstalled": "Você possui a versão {0} atualmente instalada.",
- "MessageUnsetContentHelp": "O conteúdo será exibido como pastas simples. Para obter melhores resultados, use o gerenciador de metadados para definir os tipos de conteúdo das subpastas.",
- "MessagePleaseWait": "Por favor, espere. Isso pode levar um minuto.",
- "MessagePlayAccessRestricted": "A reprodução deste conteúdo está atualmente restrita. Entre em contato com o administrador do servidor para obter mais informações.",
- "MessageNoServersAvailable": "Nenhum servidor foi encontrado usando a descoberta automática de servidores.",
- "MessageNoCollectionsAvailable": "As coleções permitem-te desfrutar de agrupamentos personalizados de filmes, séries e álbuns. Clica no botão '+' para começares a criar coleções.",
- "MessageConfirmAppExit": "Deseja sair?",
+ "MessageUnsetContentHelp": "O conteúdo será exibido como pastas simples. Para melhores resultados, use o gerenciador de metadados para definir os tipos de conteúdo das subpastas.",
+ "MessagePleaseWait": "Por favor, aguarde. Isso pode levar um minuto.",
+ "MessagePlayAccessRestricted": "A reprodução deste conteúdo está atualmente restrita. Por favor, entre em contato com o administrador do servidor para mais informações.",
+ "MessageNoServersAvailable": "Nenhum servidor encontrado usando a descoberta automática de servidores.",
+ "MessageNoCollectionsAvailable": "As coleções permitem que você desfrute de agrupamentos personalizados de Filmes, Séries e Álbuns. Clique no botão '+' para começar a criar coleções.",
+ "MessageConfirmAppExit": "Você deseja sair?",
"MediaInfoLayout": "Layout",
"MediaInfoLanguage": "Idioma",
"MediaInfoInterlaced": "Entrelaçado",
- "MediaInfoFramerate": "Taxa de fotogramas",
+ "MediaInfoFramerate": "Taxa de quadros",
"MediaInfoForced": "Forçado",
"MediaInfoExternal": "Externo",
"MediaInfoDefault": "Padrão",
- "MediaInfoCodecTag": "Codec tag",
+ "MediaInfoCodecTag": "Tag do codec",
"MediaInfoCodec": "Codec",
"MediaInfoBitrate": "Taxa de bits",
"MediaInfoBitDepth": "Profundidade de bits",
- "MediaInfoAspectRatio": "Proporção da imagem",
- "ManageRecording": "Gerir gravação",
+ "MediaInfoAspectRatio": "Proporção",
+ "ManageRecording": "Gerenciar gravação",
"Logo": "Logo",
"List": "Lista",
- "LeaveBlankToNotSetAPassword": "Você pode deixar esse campo em branco para definir nenhuma senha.",
- "LearnHowYouCanContribute": "Aprenda como você pode contribuir.",
+ "LeaveBlankToNotSetAPassword": "Você pode deixar este campo em branco para não definir uma senha.",
+ "LearnHowYouCanContribute": "Saiba como você pode contribuir.",
"Large": "Grande",
- "LanNetworksHelp": "Lista separada por vírgula de endereços IP ou entradas de máscara de rede/IP para redes que serão consideradas na rede local ao impor restrições de largura de banda. Se definido, todos os outros endereços IP serão considerados na rede externa e estarão sujeitos às restrições de largura de banda externa. Se deixado em branco, apenas a sub-rede do servidor é considerada na rede local.",
- "LabelffmpegPathHelp": "Localização da aplicação ou pasta que contém o FFmpeg.",
- "LabelffmpegPath": "Localização do FFmpeg",
+ "LanNetworksHelp": "Lista separada por vírgulas de endereços IP ou IP/máscara de redes que serão consideradas na rede local ao aplicar restrições de largura de banda. Se definido, todos os outros endereços IP serão considerados na rede externa e estarão sujeitos às restrições de largura de banda externa. Se deixado em branco, apenas a sub-rede do servidor será considerada na rede local.",
+ "LabelffmpegPathHelp": "O caminho para o arquivo ou pasta do aplicativo FFmpeg.",
+ "LabelffmpegPath": "Caminho do FFmpeg",
"LabelYear": "Ano",
"LabelXDlnaDoc": "Documentação X-DLNA",
"LabelXDlnaCap": "Limite X-DLNA",
"LabelWeb": "Web",
- "LabelVideoCodec": "Codec do vídeo",
+ "LabelVideoCodec": "Codec de vídeo",
"LabelVideoBitrate": "Taxa de bits do vídeo",
"DashboardArchitecture": "Arquitetura: {0}",
"DashboardServerName": "Servidor: {0}",
"DashboardVersionNumber": "Versão: {0}",
"LabelVersion": "Versão",
- "LabelVaapiDeviceHelp": "Este é o nó de renderização usado para aceleração de hardware.",
+ "LabelVaapiDeviceHelp": "Este é o nó de renderização usado para a aceleração de hardware.",
"LabelVaapiDevice": "Dispositivo VA-API",
- "LabelUserAgent": "Agente do utilizador",
- "LabelTranscodes": "Transcodificação",
- "LabelTranscodingFramerate": "Transcodificação da taxa de fotogramas",
+ "LabelUserAgent": "Agente do usuário",
+ "LabelTranscodes": "Transcodificações",
+ "LabelTranscodingFramerate": "Taxa de quadros da transcodificação",
"LabelTranscodingProgress": "Progresso da transcodificação",
"LabelTitle": "Título",
"LabelTheme": "Tema",
"LabelTextColor": "Cor do texto",
- "LabelTextBackgroundColor": "Cor do plano de fundo do texto",
+ "LabelTextBackgroundColor": "Cor de fundo do texto",
"LabelTag": "Tag",
"LabelTVHomeScreen": "Tela inicial do modo TV",
- "LabelSubtitleDownloaders": "Fornecedores de legendas",
- "LabelStreamType": "Tipo de transmissão",
+ "LabelSubtitleDownloaders": "Baixadores de legendas",
+ "LabelStreamType": "Tipo de stream",
"LabelSpecialSeasonsDisplayName": "Nome de exibição da temporada especial",
- "LabelSortTitle": "Classificar título",
- "LabelSortOrder": "Sequência de ordenação",
+ "LabelSortTitle": "Título da ordenação",
+ "LabelSortOrder": "Ordem de classificação",
"LabelSortBy": "Ordenar por",
- "LabelRemoteClientBitrateLimitHelp": "Um limite opcional de taxa de bits por fluxo para todos os dispositivos fora da rede. Isso é útil para impedir que os dispositivos solicitem uma taxa de bits mais alta do que a sua conexão à Internet pode suportar. Isso pode resultar no aumento da carga da CPU no servidor para transcodificar vídeos em tempo real para uma taxa de bits mais baixa.",
- "LabelPlayerDimensions": "Dimensões do leitor",
- "LabelParentNumber": "Número pai",
- "LabelMetadataSavers": "Formatos de gravação dos metadados",
- "LabelDroppedFrames": "Quadros caídos",
+ "LabelRemoteClientBitrateLimitHelp": "Um limite opcional de taxa de bits por stream para todos os dispositivos fora da rede. Isso é útil para evitar que dispositivos solicitem uma taxa de bits mais alta do que sua conexão com a Internet pode suportar. Isso pode resultar em aumento da carga da CPU no servidor para transcodificar vídeos em tempo real para uma taxa de bits mais baixa.",
+ "LabelPlayerDimensions": "Dimensões do reprodutor",
+ "LabelParentNumber": "Número do pai",
+ "LabelMetadataSavers": "Salvadores de metadados",
+ "LabelDroppedFrames": "Quadros descartados",
"LabelCorruptedFrames": "Quadros corrompidos",
- "LabelAudioBitDepth": "Profundidade do bit de áudio",
- "ClientSettings": "Definições do cliente",
- "AllowFfmpegThrottlingHelp": "Quando uma transcodificação ou remux se aproximar da posição atual de reprodução, pause o processo para que consuma menos recursos. Isso é mais útil ao assistir sem procurar com frequência. Desative isso se você tiver problemas de reprodução.",
- "MySubtitles": "Minhas legendas",
+ "LabelAudioBitDepth": "Profundidade de bits do áudio",
+ "ClientSettings": "Configurações do cliente",
+ "AllowFfmpegThrottlingHelp": "Quando uma transcodificação ou remux estiver muito à frente da posição atual de reprodução, o processo será pausado para consumir menos recursos. Útil ao assistir sem avançar/retroceder muito. Desative se tiver problemas de reprodução.",
+ "MySubtitles": "Minhas Legendas",
"Name": "Nome",
"Never": "Nunca",
"Artist": "Artista",
"LabelDeinterlaceMethod": "Método de desentrelaçamento",
- "DeinterlaceMethodHelp": "Seleciona o método de desentrelaçamento a utilizar quando o software transcodifica conteúdo entrelaçado. Caso esteja ativo, o desentrelaçamento através de aceleração por hardware terá prioridade sobre esta opção.",
+ "DeinterlaceMethodHelp": "Selecione o método de desentrelaçamento a ser usado ao transcodificar conteúdo entrelaçado. Quando a aceleração de hardware com desentrelaçamento de hardware é ativada, o desentrelaçador de hardware será usado em vez desta configuração.",
"Movie": "Filme",
"LabelLibraryPageSize": "Tamanho da página da biblioteca",
"Album": "Álbum",
- "LabelLibraryPageSizeHelp": "Define a quantidade de itens a apresentar na página de uma biblioteca. Para desativares a paginação, introduz o valor 0.",
+ "LabelLibraryPageSizeHelp": "Defina a quantidade de itens a serem exibidos em uma página da biblioteca. Defina como 0 para desativar a paginação.",
"Episode": "Episódio",
- "OptionRequirePerfectSubtitleMatch": "Baixar apenas legendas que correspondem corretamente aos arquivos de vídeo",
+ "OptionRequirePerfectSubtitleMatch": "Baixar apenas legendas que sejam uma correspondência perfeita para os arquivos de vídeo",
"OptionRandom": "Aleatório",
- "OptionLoginAttemptsBeforeLockout": "Determina quantas tentativas de início de sessão são admitidas antes de a conta ser bloqueada.",
+ "OptionLoginAttemptsBeforeLockout": "Determinar quantas tentativas de login incorretas podem ser feitas antes que o bloqueio ocorra.",
"OptionIsSD": "SD",
"OptionIsHD": "HD",
- "OptionEnableExternalContentInSuggestions": "Habilitar sugestão de conteúdo externo",
- "OptionDisplayFolderViewHelp": "Exiba pastas ao lado de outras bibliotecas de mídia. Isso pode ser útil se você quiser ter uma visualização simples de pastas.",
- "OptionDisplayFolderView": "Exibir uma exibição de pasta para mostrar pastas de mídia simples",
- "OptionBluray": "Blu-ray",
- "OptionAllowVideoPlaybackRemuxing": "Permitir reprodução de vídeo que requer conversão sem recodificação",
- "OptionAllowLinkSharingHelp": "Somente páginas da web que contêm informações sobre mídia são compartilhadas. Os arquivos de mídia nunca são compartilhados publicamente. As ações são limitadas no tempo e expiram após {0} dias.",
+ "OptionEnableExternalContentInSuggestions": "Ativar conteúdo externo nas sugestões",
+ "OptionDisplayFolderViewHelp": "Exibir pastas junto com suas outras bibliotecas de mídia. Isso pode ser útil se você quiser ter uma visualização de pasta simples.",
+ "OptionDisplayFolderView": "Exibir uma visualização de pasta para mostrar pastas de mídia simples",
+ "OptionBluray": "BD",
+ "OptionAllowVideoPlaybackRemuxing": "Permitir reprodução de vídeo que requer conversão sem reencodificação",
+ "OptionAllowLinkSharingHelp": "Apenas páginas da web contendo informações da mídia são compartilhadas. Os arquivos de mídia nunca são compartilhados publicamente. Os compartilhamentos têm prazo limitado e expirarão após {0} dias.",
"Option3D": "3D",
- "NextUp": "A seguir",
+ "NextUp": "Próximo",
"Next": "Próximo",
"NewEpisodesOnly": "Apenas novos episódios",
"NewEpisodes": "Novos episódios",
- "NewCollectionHelp": "As coleções permitem-te criar agrupamentos personalizados de filmes e outros tipos de conteúdo.",
- "BoxSet": "Coleção",
- "AlbumArtist": "Artista do álbum",
+ "NewCollectionHelp": "As coleções permitem que você crie agrupamentos personalizados de filmes e outros conteúdos da biblioteca.",
+ "BoxSet": "Box",
+ "AlbumArtist": "Artista do Álbum",
"Quality": "Qualidade",
"Previous": "Anterior",
- "PictureInPicture": "Imagem em imagem (vídeo flutuante)",
- "OptionRequirePerfectSubtitleMatchHelp": "Solicitar a \"correspondência perfeita\" filtrará as legendas incluindo apenas aquelas que foram testadas com o arquivo de vídeo. Desmarcar isto aumentará a probabilidade de baixar legendas, mas poderá obter legendas incorretas ou não sincronizadas.",
+ "PictureInPicture": "Imagem na imagem",
+ "OptionRequirePerfectSubtitleMatchHelp": "Exigir uma correspondência perfeita filtrará as legendas para incluir apenas aquelas que foram testadas e verificadas com seu arquivo de vídeo exato. Desmarcar isso aumentará a probabilidade de download de legendas, mas também aumentará as chances de legendas fora de sincronia ou incorretas.",
"StopRecording": "Parar gravação",
- "ShowYear": "Exibir ano",
- "ShowTitle": "Exibir título",
- "SettingsWarning": "Alterar estes valores poderá causar instabilidade ou falhas de ligação. Se ocorrer algum problema, recomendamos que os voltes a alterar para os valores predefinidos.",
- "ServerNameIsShuttingDown": "O servidor {0} está a desligar.",
- "ServerNameIsRestarting": "O servidor {0} está a reiniciar.",
- "SeriesYearToPresent": "{0} - Atualmente",
+ "ShowYear": "Mostrar o ano",
+ "ShowTitle": "Mostrar o título",
+ "SettingsWarning": "Alterar esses valores pode causar instabilidade ou falhas de conectividade. Se você experimentar algum problema, recomendamos alterá-los de volta para o padrão.",
+ "ServerNameIsShuttingDown": "O servidor em {0} está desligando.",
+ "ServerNameIsRestarting": "O servidor em {0} está reiniciando.",
+ "SeriesYearToPresent": "{0} - Presente",
"SeriesCancelled": "Série cancelada.",
- "SelectAdminUsername": "Seleciona um nome de utilizador para a conta de administrador.",
+ "SelectAdminUsername": "Por favor, selecione um nome de usuário para a conta de administrador.",
"Season": "Temporada",
"RepeatEpisodes": "Repetir episódios",
- "RepeatAll": "Repetir todos",
+ "RepeatAll": "Repetir tudo",
"RemoveFromCollection": "Remover da coleção",
- "RememberMe": "Lembrar-me",
- "ReleaseDate": "Data do lançamento",
+ "RememberMe": "Lembrar de mim",
+ "ReleaseDate": "Data de Lançamento",
"RefreshMetadata": "Atualizar metadados",
- "RecentlyWatched": "Visto recentemente",
+ "RecentlyWatched": "Assistido Recentemente",
"OptionEnableForAllTuners": "Ativar para todos os dispositivos sintonizadores",
"OptionCaptionInfoExSamsung": "Informações da legenda (Samsung)",
- "OptionAutomaticallyGroupSeriesHelp": "As séries que estão espalhadas por várias pastas dentro desta biblioteca serão automaticamente mescladas em uma única série.",
- "OptionAutomaticallyGroupSeries": "Mesclar automaticamente séries que estão espalhadas por várias pastas",
- "OptionAllowSyncTranscoding": "Permitir a transferência e sincronização de multimédia que exija transcodificação",
- "OptionForceRemoteSourceTranscoding": "Força a transcodificação de fontes multimédia remotas, como a TV em direto",
- "PreferEmbeddedTitlesOverFileNames": "Preferir títulos incorporados ao invés dos nomes dos arquivos",
- "OptionSaveMetadataAsHiddenHelp": "Alterar isso será aplicado aos novos metadados salvos daqui para frente. Os arquivos de metadados existentes serão atualizados na próxima vez em que forem salvos pelo Jellyfin Server.",
+ "OptionAutomaticallyGroupSeriesHelp": "Séries espalhadas por várias pastas dentro desta biblioteca serão mescladas automaticamente em uma única série.",
+ "OptionAutomaticallyGroupSeries": "Mesclar automaticamente séries espalhadas por várias pastas",
+ "OptionAllowSyncTranscoding": "Permitir downloads e sincronização de mídia que requerem transcodificação",
+ "OptionForceRemoteSourceTranscoding": "Forçar transcodificação de fontes de mídia remotas, como TV Ao Vivo",
+ "PreferEmbeddedTitlesOverFileNames": "Preferir títulos incorporados em vez de nomes de arquivos",
+ "OptionSaveMetadataAsHiddenHelp": "Alterar isso se aplicará a novos metadados salvos a partir de agora. Os arquivos de metadados existentes serão atualizados na próxima vez que forem salvos pelo servidor.",
"OptionRegex": "Expressão Regular",
- "OptionLoginAttemptsBeforeLockoutHelp": "O valor zero significa herdar a definição por defeito de três tentativas para utilizadores comuns e cinco para administradores. Definir este campo como -1 desativa esta funcionalidade.",
- "OptionExtractChapterImage": "Ativar extração de imagens dos capítulos",
- "PreferEmbeddedEpisodeInfosOverFileNames": "Preferir informações de episódios incorporados ao invés de nomes de arquivos",
- "PreferEmbeddedEpisodeInfosOverFileNamesHelp": "Usar os metadados incorporados para informações do episódio, se disponíveis.",
- "PreferEmbeddedTitlesOverFileNamesHelp": "Determina o título a apresentar quando não é possível carregar metadados locais ou da Internet.",
- "PlaybackErrorNoCompatibleStream": "Este cliente não é compatível com a mídia e o servidor não está a enviar um formato de mídia compatível.",
+ "OptionLoginAttemptsBeforeLockoutHelp": "Um valor de zero significa herdar o padrão de três tentativas para usuários normais e cinco para administradores. Definir isso como -1 desativará o recurso.",
+ "OptionExtractChapterImage": "Ativar extração de imagem de capítulo",
+ "PreferEmbeddedEpisodeInfosOverFileNames": "Preferir informações de episódio incorporadas em vez de nomes de arquivos",
+ "PreferEmbeddedEpisodeInfosOverFileNamesHelp": "Usar as informações do episódio dos metadados incorporados, se disponíveis.",
+ "PreferEmbeddedTitlesOverFileNamesHelp": "Determinar o título a ser exibido quando nenhum metadado da internet ou metadado local estiver disponível.",
+ "PlaybackErrorNoCompatibleStream": "Este cliente não é compatível com a mídia e o servidor não está enviando um formato de mídia compatível.",
"Person": "Pessoa",
- "LabelRequireHttpsHelp": "Se marcado, o servidor redirecionará automaticamente todas as solicitações por HTTP para HTTPS. Isso não terá efeito se o servidor não estiver escutando HTTPS.",
+ "LabelRequireHttpsHelp": "Se marcado, o servidor redirecionará automaticamente todas as solicitações de HTTP para HTTPS. Isso não tem efeito se o servidor não estiver ouvindo em HTTPS.",
"LabelRequireHttps": "Requer HTTPS",
- "LabelChromecastVersion": "Versão do Chromecast",
- "LabelEnableHttpsHelp": "Escutar na porta HTTPS configurada. Para que esta opção seja ativada, é necessário fornecer um certificado válido.",
+ "LabelChromecastVersion": "Versão do Google Cast",
+ "LabelEnableHttpsHelp": "Ouça na porta HTTPS configurada. Um certificado válido também deve ser fornecido para que isso tenha efeito.",
"LabelEnableHttps": "Ativar HTTPS",
- "HeaderServerAddressSettings": "Definições de endereço do servidor",
- "HeaderRemoteAccessSettings": "Definições de acesso remoto",
- "HeaderHttpsSettings": "Definições de HTTPS",
+ "HeaderServerAddressSettings": "Configurações de Endereço do Servidor",
+ "HeaderRemoteAccessSettings": "Configurações de Acesso Remoto",
+ "HeaderHttpsSettings": "Configurações HTTPS",
"HeaderDVR": "DVR",
- "ApiKeysCaption": "Lista das chaves da API atualmente ativas",
- "ButtonTogglePlaylist": "Lista de reprodução",
+ "ApiKeysCaption": "Lista das chaves de API atualmente habilitadas",
+ "ButtonTogglePlaylist": "Playlist",
"ButtonSyncPlay": "SyncPlay",
"Data": "Dados",
- "ButtonUseQuickConnect": "Utilizar Ligação Rápida",
+ "ButtonUseQuickConnect": "Usar Conexão Rápida",
"ButtonActivate": "Ativar",
"Authorize": "Autorizar",
- "EnableDetailsBannerHelp": "Mostrar uma imagem no topo da página dos detalhes do item.",
- "EnableDetailsBanner": "Faixa de detalhes",
- "EnableQuickConnect": "Ativar Ligação Rápida neste servidor",
- "EnableDecodingColorDepth10Vp9": "Ativar descodificação de hardware de 10-bits para VP9",
- "EnableDecodingColorDepth10Hevc": "Ativar descodificação de hardware de 10-bits para HEVC",
- "EnableAutoCast": "Definir como predefinição",
- "HeaderDeleteDevices": "Eliminar todos os dispositivos",
- "Other": "Outros",
- "DeleteDevicesConfirmation": "Tens a certeza de que pretendes eliminar todos os dispositivos? Todas as outras sessões serão encerradas. Os dispositivos voltarão a aparecer da próxima vez que um utilizador iniciar sessão.",
- "DeleteAll": "Eliminar tudo",
- "DailyAt": "Diariamente, às {0}",
+ "EnableDetailsBannerHelp": "Exibir uma imagem de banner na parte superior da página de detalhes do item.",
+ "EnableDetailsBanner": "Banner de detalhes",
+ "EnableQuickConnect": "Ativar Conexão Rápida neste servidor",
+ "EnableDecodingColorDepth10Vp9": "Ativar decodificação de hardware de 10 bits para VP9",
+ "EnableDecodingColorDepth10Hevc": "Ativar decodificação de hardware de 10 bits para HEVC",
+ "EnableAutoCast": "Definir como padrão",
+ "HeaderDeleteDevices": "Excluir Todos os Dispositivos",
+ "Other": "Outro",
+ "DeleteDevicesConfirmation": "Tem certeza de que deseja excluir todos os dispositivos? Todas as outras sessões serão desconectadas. Os dispositivos reaparecerão na próxima vez que um usuário fizer login.",
+ "DeleteAll": "Excluir tudo",
+ "DailyAt": "Diariamente às {0}",
"ClearQueue": "Limpar fila",
- "Bwdif": "Filtro de Desentrelação Bob Weaver (BWDIF)",
- "ButtonPlayer": "Leitor",
- "ButtonCast": "Transmitir para o dispositivo",
- "AllowTonemappingHelp": "O mapeamento de tons pode transformar a gama dinâmica de um vídeo de HDR para SDR, mantendo os detalhes e as cores da imagem, que são informações muito importantes para representar a cena original. Atualmente funciona apenas com vídeos HDR10 de 10 bits, HLG e DoVi. Isso requer o tempo de execução GPGPU correspondente.",
- "MusicVideos": "Videoclipes",
+ "Bwdif": "Filtro de Desentrelaçamento Bob Weaver (BWDIF)",
+ "ButtonPlayer": "Reprodutor",
+ "ButtonCast": "Transmitir para dispositivo",
+ "AllowTonemappingHelp": "O tone-mapping transforma o alcance dinâmico de um vídeo de HDR para SDR mantendo detalhes e cores. Funciona apenas com vídeos HDR10, HLG e DoVi de 10 bits. Requer runtime GPGPU correspondente.",
+ "MusicVideos": "Vídeos Musicais",
"LabelTonemappingPeak": "Pico do mapeamento de tons",
- "LabelTonemappingParamHelp": "Afina o algoritmo de mapeamento de tons. É recomendado deixar este campo em branco.",
- "LabelTonemappingParam": "Parâmetros do mapeamento de tons",
- "LabelTonemappingDesatHelp": "Aplica a dessaturação aos realces que excedem este nível de brilho. O valor recomendado é 0 (desativar).",
- "LabelTonemappingDesat": "Dessaturação do mapeamento de tons",
- "LabelTonemappingAlgorithm": "Seleciona o algoritmo de mapeamento de tons a utilizar",
+ "LabelTonemappingParamHelp": "Ajuste o algoritmo de mapeamento de tons. Geralmente, deixe em branco.",
+ "LabelTonemappingParam": "Parâmetro do mapeamento de tons",
+ "LabelTonemappingDesatHelp": "Aplicar desaturação para realces que excedem este nível de brilho. O valor recomendado é 0 (desativar).",
+ "LabelTonemappingDesat": "Desaturação do mapeamento de tons",
+ "LabelTonemappingAlgorithm": "Selecione o algoritmo de mapeamento de tons a ser usado",
"LabelSyncPlayTimeSyncOffset": "Deslocamento de tempo",
- "LabelSyncPlayTimeSyncDevice": "Sincronizando o tempo com",
+ "LabelSyncPlayTimeSyncDevice": "Sincronização de tempo com",
"LabelSyncPlaySyncMethod": "Método de sincronização",
- "LabelSyncPlayResumePlaybackDescription": "Retomar a reprodução em grupo",
- "LabelSyncPlayResumePlayback": "Retomar a reprodução local",
+ "LabelSyncPlayResumePlaybackDescription": "Juntar-se novamente à reprodução em grupo",
+ "LabelSyncPlayResumePlayback": "Retomar reprodução local",
"LabelSyncPlayPlaybackDiff": "Diferença de tempo de reprodução",
- "LabelSyncPlayNewGroupDescription": "Crie um novo grupo",
+ "LabelSyncPlayNewGroupDescription": "Criar um novo grupo",
"LabelSyncPlayNewGroup": "Novo grupo",
"LabelSyncPlayLeaveGroupDescription": "Desativar SyncPlay",
- "LabelSyncPlayLeaveGroup": "Deixar o grupo",
- "LabelSyncPlayHaltPlaybackDescription": "E ignorar as atualizações recentes da playlist",
+ "LabelSyncPlayLeaveGroup": "Sair do grupo",
+ "LabelSyncPlayHaltPlaybackDescription": "E ignorar atualizações atuais da lista de reprodução",
"LabelSyncPlayHaltPlayback": "Parar reprodução local",
- "LabelSyncPlayAccessNone": "Desativado para este utilizador",
- "LabelSyncPlayAccessJoinGroups": "Permitir ao utilizador aderir a grupos",
- "LabelSyncPlayAccessCreateAndJoinGroups": "Permitir ao utilizador criar e aderir a grupos",
- "LabelSyncPlayAccess": "Acesso SyncPlay",
+ "LabelSyncPlayAccessNone": "Desativado para este usuário",
+ "LabelSyncPlayAccessJoinGroups": "Permitir que o usuário junte-se a grupos",
+ "LabelSyncPlayAccessCreateAndJoinGroups": "Permitir que o usuário crie e junte-se a grupos",
+ "LabelSyncPlayAccess": "Acesso ao SyncPlay",
"LabelSubtitleVerticalPosition": "Posição vertical",
"LabelStable": "Estável",
"LabelSSDPTracingFilterHelp": "Endereço IP opcional para filtrar o tráfego SSDP registrado.",
"LabelSSDPTracingFilter": "Filtro SSDP",
"LabelRepositoryUrlHelp": "A localização do manifesto do repositório que você deseja incluir.",
"LabelRepositoryUrl": "URL do Repositório",
- "LabelRepositoryNameHelp": "Nome personalizado para distinguir este repositório de outros presentes no servidor.",
+ "LabelRepositoryNameHelp": "Um nome personalizado para distinguir este repositório de outros adicionados ao seu servidor.",
"LabelRepositoryName": "Nome do Repositório",
- "LabelQuickConnectCode": "Código de Ligação Rápida",
- "LabelPublishedServerUriHelp": "Substituir o URI utilizado pelo Jellyfin, com base na interface, ou no endereço IP do cliente. Por exemplo: internal=http://jellyfin.example.com, external=https://jellyfin.example.com, ou all=https://jellyfin.example.com",
- "LabelPublishedServerUri": "URIs de Servidor Publicado",
- "LabelOpenclDeviceHelp": "Este é o dispositivo OpenCL utilizado para o mapeamento de tons. O número à esquerda do ponto representa a plataforma, e o da direita representa o número do dispositivo nessa plataforma. O valor predefinido é 0.0. É necessário o ficheiro da aplicação FFmpeg que contenha o método de aceleração por hardware via OpenCL.",
+ "LabelQuickConnectCode": "Código de Conexão Rápida",
+ "LabelPublishedServerUriHelp": "Substitua a URI usada pelo Jellyfin, com base na interface ou no endereço IP do cliente. Por exemplo: internal=http://jellyfin.example.com, external=https://jellyfin.example.com, or all=https://jellyfin.example.com",
+ "LabelPublishedServerUri": "URIs do Servidor Publicado",
+ "LabelOpenclDeviceHelp": "Este é o dispositivo OpenCL usado para mapeamento de tons. O lado esquerdo do ponto é o número da plataforma e o lado direito é o número do dispositivo na plataforma. O valor padrão é 0.0. O arquivo do aplicativo FFmpeg contendo o método de aceleração de hardware OpenCL é necessário.",
"LabelOpenclDevice": "Dispositivo OpenCL",
- "LabelMinAudiobookResumeHelp": "Os audiolivros são considerados como não ouvidos se parados antes do valor definido.",
- "LabelMinAudiobookResume": "Duração mínima do audiolivro em minutos para permitir retomar",
- "LabelMaxAudiobookResume": "Minutos restantes para retomar o audiolivro",
- "LabelMaxMuxingQueueSizeHelp": "Número máximo de pacotes que podem ser armazenados em buffer enquanto espera que todas as transmissões sejam inicializadas. Tenta aumentá-lo se ainda encontrares o erro \"Demasiados pacotes armazenados em buffer para o fluxo de saída\" nos registos do FFmpeg. O valor recomendado é 2048.",
+ "LabelMinAudiobookResumeHelp": "Os títulos são considerados não reproduzidos se parados antes deste tempo.",
+ "LabelMinAudiobookResume": "Retomar mínimo do audiolivro em minutos",
+ "LabelMaxAudiobookResume": "Minutos restantes do audiolivro para retomar",
+ "LabelMaxMuxingQueueSizeHelp": "Número máximo de pacotes que podem ser armazenados em buffer enquanto aguardam a inicialização de todos os streams. Tente aumentá-lo se ainda encontrar o erro \"Muitos pacotes armazenados em buffer para o stream de saída\" nos logs do FFmpeg. O valor recomendado é 2048.",
"LabelMaxMuxingQueueSize": "Tamanho máximo da fila de muxing",
- "LabelMaxAudiobookResumeHelp": "Os audiolivros são considerados como ouvidos quando o valor em falta for menor que o valor definido.",
+ "LabelMaxAudiobookResumeHelp": "Os títulos são considerados totalmente reproduzidos se parados quando a duração restante é menor que este valor.",
"LabelKnownProxies": "Proxies conhecidos",
"LabelIsForced": "Forçado",
"LabelIconMaxResHelp": "Resolução máxima dos ícones expostos por meio da propriedade upnp:icon.",
"LabelHDHomerunPortRangeHelp": "Restringe o intervalo de portas UDP HD Homerun a este valor. (O padrão é 1024 - 65535).",
"LabelHDHomerunPortRange": "Intervalo de portas HD Homerun",
- "LabelH265Crf": "CRF da codificação H.265",
+ "LabelH265Crf": "Codificação H.265 CRF",
"LabelEnableSSDPTracingHelp": "Habilite o registro dos detalhes do rastreamento de rede SSDP. AVISO: Isso causará uma grave degradação do desempenho.",
"LabelEnableSSDPTracing": "Habilitar Rastreamento de SSDP",
- "LabelEnableIP4Help": "Ativar a funcionalidade IPv4.",
- "LabelEnableIP6Help": "Ativar a funcionalidade IPv6.",
+ "LabelEnableIP4Help": "Ativar funcionalidade IPv4.",
+ "LabelEnableIP6Help": "Ativar funcionalidade IPv6.",
"LabelEnableIP6": "Ativar IPv6",
"LabelEnableIP4": "Ativar IPv4",
"LabelDropSubtitleHere": "Solte a legenda aqui, ou clique para navegar.",
- "LabelCurrentStatus": "Estado atual",
- "LabelCreateHttpPortMapHelp": "Permita o mapeamento automático de portas para criar uma regra para o tráfego HTTP, além do tráfego HTTPS.",
- "LabelCreateHttpPortMap": "Ativar o mapeamento automático de portas para tráfego HTTP e HTTPS.",
+ "LabelCurrentStatus": "Status atual",
+ "LabelCreateHttpPortMapHelp": "Permitir mapeamento automático de porta para criar uma regra para tráfego HTTP além do tráfego HTTPS.",
+ "LabelCreateHttpPortMap": "Ativar mapeamento automático de porta para tráfego HTTP e HTTPS.",
"LabelColorTransfer": "Transferência de cor",
"LabelColorSpace": "Espaço de cor",
- "LabelColorPrimaries": "Cores primárias",
- "LabelAutomaticDiscoveryHelp": "Permitir que os aplicativos detectem automaticamente o Jellyfin usando a porta UDP 7359.",
- "LabelAutomaticDiscovery": "Ativar deteção automática",
+ "LabelColorPrimaries": "Primárias de cor",
+ "LabelAutomaticDiscoveryHelp": "Permitir que aplicativos detectem automaticamente o Jellyfin usando o UDP na porta 7359.",
+ "LabelAutomaticDiscovery": "Ativar Descoberta Automática",
"LabelAutoDiscoveryTracingHelp": "Quando habilitado, os pacotes recebidos na porta de descoberta automática serão registrados.",
"LabelAutoDiscoveryTracing": "Ative o rastreamento de Descoberta Automática.",
"LabelAlbumArtMaxResHelp": "Resolução máxima da arte do álbum exposta por meio da propriedade upnp:albumArtURI.",
- "KnownProxiesHelp": "Lista separada por vírgulas de endereços IP ou hostnames de proxies conhecidos usados ao se conectar à sua instância Jellyfin. Isso é necessário para fazer uso adequado dos cabeçalhos X-Forwarded-For. Requer uma reinicialização após salvar.",
+ "KnownProxiesHelp": "Lista separada por vírgulas de endereços IP ou nomes de hosts de proxies conhecidos usados ao conectar-se à sua instância Jellyfin. Isso é necessário para fazer uso adequado dos cabeçalhos 'X-Forwarded-For'. Requer uma reinicialização após a gravação.",
"Image": "Imagem",
"HeaderUploadSubtitle": "Enviar Legenda",
- "HeaderSyncPlaySelectGroup": "Junta-te a um grupo",
+ "HeaderSyncPlaySelectGroup": "Entrar em um grupo",
"HeaderSyncPlayEnabled": "SyncPlay ativado",
- "HeaderPortRanges": "Definições de Firewall e Proxy",
- "HeaderNewRepository": "Novo repositório",
+ "HeaderPortRanges": "Configurações de Firewall e Proxy",
+ "HeaderNewRepository": "Novo Repositório",
"HeaderNetworking": "Protocolos IP",
"HeaderDebugging": "Depuração e Rastreamento",
- "HeaderContinueReading": "Continuar a ler",
- "HeaderAutoDiscovery": "Deteção de rede",
- "HeaderAddUser": "Adicionar utilizador",
- "HeaderAddUpdateSubtitle": "Adicionar/Atualizar legenda",
- "Framerate": "Taxa de fotogramas",
+ "HeaderContinueReading": "Continuar Lendo",
+ "HeaderAutoDiscovery": "Descoberta Automática",
+ "HeaderAddUser": "Adicionar Usuário",
+ "HeaderAddUpdateSubtitle": "Adicionar/Atualizar Legenda",
+ "Framerate": "Taxa de quadros",
"Filter": "Filtro",
"EveryXMinutes": "A cada {0} minutos",
"EveryXHours": "A cada {0} horas",
- "EveryHour": "Toda hora",
+ "EveryHour": "A cada hora",
"EnableTonemapping": "Ativar mapeamento de tons",
"EnableFasterAnimationsHelp": "Use animações e transições mais rápidas.",
"EnableFasterAnimations": "Animações mais rápidas",
- "EnableBlurHashHelp": "As imagens que ainda estão sendo carregadas serão exibidas com um marcador único.",
- "EnableBlurHash": "Ativar marcadores de posição desfocados para imagens",
+ "EnableBlurHashHelp": "Imagens que ainda estão sendo carregadas serão exibidas com um placeholder exclusivo.",
+ "EnableBlurHash": "Ativar placeholders desfocados para imagens",
"DisablePlugin": "Desativar",
"EnablePlugin": "Ativar",
"DirectPlayHelp": "O arquivo de origem é totalmente compatível com este cliente e a sessão está recebendo o arquivo sem modificações.",
"MessageSent": "Mensagem enviada.",
- "MessagePluginInstallError": "Ocorreu um erro durante a instalação da extensão.",
- "MessageNoRepositories": "Sem repositórios.",
- "MessageGetInstalledPluginsError": "Ocorreu um erro ao tentar obter a lista de extensões atualmente instaladas.",
- "MediaInfoColorPrimaries": "Cores primárias",
+ "MessagePluginInstallError": "Ocorreu um erro ao instalar o plugin.",
+ "MessageNoRepositories": "Nenhum repositório.",
+ "MessageGetInstalledPluginsError": "Ocorreu um erro ao obter a lista de plugins atualmente instalados.",
+ "MediaInfoColorPrimaries": "Primárias de cor",
"LastSeen": "Última atividade {0}",
- "LabelUserMaxActiveSessions": "Número máximo de sessões em simultâneo",
+ "LabelUserMaxActiveSessions": "Número máximo de sessões de usuário simultâneas",
"LabelUnstable": "Instável",
"LabelHardwareEncoding": "Codificação por hardware",
- "LabelSyncPlaySettingsExtraTimeOffset": "Compensação do tempo extra",
- "LabelSyncPlaySettingsDescription": "Alterar as preferências do SyncPlay",
- "LabelSortName": "Ordenar nome",
+ "LabelSyncPlaySettingsExtraTimeOffset": "Deslocamento de tempo extra",
+ "LabelSyncPlaySettingsDescription": "Alterar preferências do SyncPlay",
+ "LabelSortName": "Nome da ordenação",
"LabelSlowResponseTime": "Tempo em ms após o qual uma resposta é considerada lenta",
- "LabelSlowResponseEnabled": "Escrever aviso no registo se o servidor for muito lento a responder",
- "LabelOriginalName": "Nome Original",
- "LabelLocalCustomCss": "Estilo CSS personalizado que se aplica apenas a este cliente. Podes desativar o CSS personalizado do servidor.",
- "LabelMaxDaysForNextUpHelp": "Defina a quantidade máxima de dias que um programa deve permanecer na lista 'Próximo' sem o assistir.",
- "LabelMaxDaysForNextUp": "Máximo de dias em 'Próximo'",
- "AgeValue": "Com {0} anos",
- "LabelDisableCustomCss": "Desativar código CSS personalizado fornecido pelo servidor.",
- "LabelAutomaticallyAddToCollectionHelp": "Quando pelo menos 2 filmes tiverem o mesmo nome de coleção, estes serão adicionados automaticamente.",
+ "LabelSlowResponseEnabled": "Registrar uma mensagem de aviso se o servidor demorar para responder",
+ "LabelOriginalName": "Nome original",
+ "LabelLocalCustomCss": "Código CSS personalizado para estilização que se aplica apenas a este cliente. Você pode desativar o código CSS personalizado do servidor.",
+ "LabelMaxDaysForNextUpHelp": "Defina a quantidade máxima de dias que um programa deve permanecer na lista 'Próximo' sem ser assistido.",
+ "LabelMaxDaysForNextUp": "Máx. dias no 'Próximo'",
+ "AgeValue": "({0} anos)",
+ "LabelDisableCustomCss": "Desativar código CSS personalizado para personalização/marcação fornecido pelo servidor.",
+ "LabelAutomaticallyAddToCollectionHelp": "Quando pelo menos 2 filmes tiverem o mesmo nome de coleção, eles serão adicionados automaticamente à coleção.",
"LabelAutomaticallyAddToCollection": "Adicionar automaticamente à coleção",
"HeaderSyncPlayTimeSyncSettings": "Sincronização de tempo",
"HeaderSyncPlayPlaybackSettings": "Reprodução",
- "HeaderSyncPlaySettings": "Definições de SyncPlay",
- "ErrorPlayerNotFound": "Não foi possível identificar nenhum leitor compatível com o ficheiro solicitado.",
+ "HeaderSyncPlaySettings": "Configurações do SyncPlay",
+ "ErrorPlayerNotFound": "Nenhum reprodutor encontrado para a mídia solicitada.",
"Engineer": "Engenheiro de som",
"DisableCustomCss": "Desativar código CSS personalizado fornecido pelo servidor",
- "Console": "Consola",
- "Conductor": "Maestro",
+ "Console": "Console",
+ "Conductor": "Condutor",
"Casual": "Casual",
- "ButtonBackspace": "Retrocesso",
- "GoogleCastUnsupported": "Google Cast não compatível",
+ "ButtonBackspace": "Backspace",
+ "GoogleCastUnsupported": "Google Cast Não Suportado",
"Digital": "Digital",
- "CopyFailed": "Não podes copiar",
+ "CopyFailed": "Não foi possível copiar",
"Copy": "Copiar",
"Copied": "Copiado",
"ButtonSpace": "Espaço",
- "ButtonExitApp": "Sair da aplicação",
+ "ButtonExitApp": "Sair do aplicativo",
"ButtonClose": "Fechar",
"AddToFavorites": "Adicionar aos favoritos",
- "DownloadAll": "Transferir tudo",
+ "DownloadAll": "Baixar tudo",
"Experimental": "Experimental",
"HeaderPerformance": "Desempenho",
- "IgnoreDts": "Ignorar DTS (decodificação de timestamp)",
- "IgnoreDtsHelp": "Desativar esta opção pode resolver alguns problemas, por exemplo, a falta de áudio em canais com fluxos de áudio e vídeo separados.",
- "LabelStereoDownmixAlgorithm": "Algoritmo Stereo Downmix",
+ "IgnoreDts": "Ignorar DTS (timestamp de decodificação)",
+ "IgnoreDtsHelp": "Desativar esta opção pode resolver alguns problemas, por exemplo, áudio ausente em canais com streams de áudio e vídeo separados.",
+ "LabelStereoDownmixAlgorithm": "Algoritmo de Downmix Estéreo",
"ShowLess": "Mostrar menos",
- "SecondarySubtitles": "Legendas secundárias",
- "ScreenResolution": "Resolução do ecrã",
+ "SecondarySubtitles": "Legendas Secundárias",
+ "ScreenResolution": "Resolução da Tela",
"Restart": "Reiniciar",
- "EnableCardLayout": "Mostrar cartão visual",
- "EnableRewatchingNextUp": "Ativar Rever em 'A Seguir'",
- "Arranger": "Organizador",
+ "EnableCardLayout": "Exibir Cartão visual",
+ "EnableRewatchingNextUp": "Ativar Reassistir no Próximo",
+ "Arranger": "Arranjador",
"Print": "Imprimir",
- "Poster": "Cartaz",
+ "Poster": "Pôster",
"Small": "Pequeno",
- "QuickConnectActivationSuccessful": "Ativado com sucesso",
+ "QuickConnectActivationSuccessful": "Ativação bem-sucedida",
"SaveChanges": "Guardar alterações",
- "PreferEmbeddedExtrasTitlesOverFileNames": "Preferir títulos incorporados ao invés dos nomes dos arquivos para os extras",
- "AllowEmbeddedSubtitlesAllowAllOption": "Permitir todos os tipos",
- "AllowEmbeddedSubtitlesAllowImageOption": "Permitir imagens",
- "Preview": "Amostra",
+ "PreferEmbeddedExtrasTitlesOverFileNames": "Preferir títulos incorporados em vez de nomes de arquivos para extras",
+ "AllowEmbeddedSubtitlesAllowAllOption": "Permitir Todas",
+ "AllowEmbeddedSubtitlesAllowImageOption": "Permitir Imagem",
+ "Preview": "Prévia",
"Premieres": "Estreias",
"Production": "Produção",
"Profile": "Perfil",
- "PreviousTrack": "Faixa anterior",
+ "PreviousTrack": "Pular para anterior",
"PluginFromRepo": "{0} do repositório {1}",
"ShowMore": "Mostrar mais",
- "MediaInfoBlPresentFlag": "Sinalizador predefinido DV BL",
- "ReleaseGroup": "Grupo do lançamento",
+ "MediaInfoBlPresentFlag": "Sinalizador de preset BL do DV",
+ "ReleaseGroup": "Grupo de Lançamento",
"Primary": "Primário",
- "RefreshDialogHelp": "Os metadados são atualizados consoante as definições e serviços de internet ativos no Painel de controlo.",
+ "RefreshDialogHelp": "Os metadados são atualizados com base nas configurações e serviços da internet que estão ativados no Painel.",
"Cursive": "Cursivo",
- "ItemDetails": "Detalhe do item",
- "HomeVideosPhotos": "Videos e Fotos",
- "PreferSystemNativeHwDecoder": "Preferir os descodificadores DXVA nativos do SO ou os de hardware VA-API",
- "EnableRewatchingNextUpHelp": "Mostrar episódios já vistos nas secções 'A Seguir'.",
- "AllowEmbeddedSubtitlesAllowNoneOption": "Não permitir",
- "Rate": "Classificar",
+ "ItemDetails": "Detalhes do Item",
+ "HomeVideosPhotos": "Vídeos e Fotos Iniciais",
+ "PreferSystemNativeHwDecoder": "Preferir decodificadores de hardware nativos do sistema operacional DXVA ou VA-API",
+ "EnableRewatchingNextUpHelp": "Ativar exibição de episódios já assistidos nas seções 'Próximo'.",
+ "AllowEmbeddedSubtitlesAllowNoneOption": "Permitir Nenhuma",
+ "Rate": "Avaliar",
"Recordings": "Gravações",
"ShowIndicatorsFor": "Mostrar indicadores para",
- "SeriesSettings": "Definições de séries",
+ "SeriesSettings": "Configurações da Série",
"Trailer": "Trailer",
- "EnableIntelLowPowerH264HwEncoder": "Ativar o codificador de hardware H.264 de baixo consumo da Intel",
- "MediaInfoDvBlSignalCompatibilityId": "ID de compatibilidade BL",
- "HeaderDummyChapter": "Imagens dos capítulos",
+ "EnableIntelLowPowerH264HwEncoder": "Ativar codificador de hardware H.264 de baixo consumo Intel",
+ "MediaInfoDvBlSignalCompatibilityId": "ID de compatibilidade de sinal BL do DV",
+ "HeaderDummyChapter": "Imagens de Capítulo",
"LabelDummyChapterDuration": "Intervalo",
- "LabelChapterImageResolutionHelp": "A resolução das imagens dos capítulos extraídas. A alteração desta resolução não terá qualquer efeito nos capítulos fictícios existentes.",
+ "LabelChapterImageResolutionHelp": "A resolução das imagens de capítulo extraídas. Alterar isso não terá efeito sobre os capítulos fictícios existentes.",
"LabelChapterImageResolution": "Resolução",
"LabelDummyChapterCount": "Limite",
- "HeaderRecordingMetadataSaving": "Registo de metadados",
- "AllowEmbeddedSubtitlesAllowTextOption": "Permitir texto",
+ "HeaderRecordingMetadataSaving": "Gravação de Metadados",
+ "AllowEmbeddedSubtitlesAllowTextOption": "Permitir Texto",
"Premiere": "Estreia",
"PreviousChapter": "Capítulo anterior",
- "LabelDummyChapterDurationHelp": "Define o intervalo entre capítulos fictícios em segundos. Para desativar a criação de capítulos fictícios, define como 0. Alterar este valor não terá qualquer efeito sobre os capítulos fictícios existentes.",
- "AllowCollectionManagement": "Permitir este utilizador gerir as coleções",
+ "LabelDummyChapterDurationHelp": "O intervalo entre capítulos fictícios em segundos. Defina como 0 para desativar a geração de capítulos fictícios. Alterar isso não terá efeito sobre os capítulos fictícios existentes.",
+ "AllowCollectionManagement": "Permitir que este usuário gerencie coleções",
"LabelMaxVideoResolution": "Resolução máxima permitida para transcodificação de vídeo",
"EnableAudioNormalization": "Normalização de Áudio",
"GetThePlugin": "Obter o Plugin",
- "LabelSyncPlaySettingsExtraTimeOffsetHelp": "Ajuste manualmente o atraso de tempo (em ms) com o dispositivo selecionado para sincronismo de tempo. Ajuste com cuidado.",
- "LabelSyncPlaySettingsSyncCorrection": "Correção de sincronismo",
- "LabelEnableAudioVbr": "Habilitar codificação de áudio VBR",
- "LabelEnableAudioVbrHelp": "A taxa de bits variavel oferece uma melhor que a taxa de bits médio, mas em alguns raros casos pode causar problemas relacionados a armazenamento e compatibilidade.",
+ "LabelSyncPlaySettingsExtraTimeOffsetHelp": "Ajuste manualmente o deslocamento de tempo (em ms) com o dispositivo selecionado para sincronização de tempo. Ajuste com cuidado.",
+ "LabelSyncPlaySettingsSyncCorrection": "Correção de Sincronização",
+ "LabelEnableAudioVbr": "Ativar codificação de áudio VBR",
+ "LabelEnableAudioVbrHelp": "A codificação de taxa variável oferece melhor qualidade em relação à taxa de bits média, mas em alguns casos raros pode causar problemas de buffer e compatibilidade.",
"EnableAudioNormalizationHelp": "A normalização de áudio vai adicionar um ganho constante para manter a média em um nível desejável (-18db).",
- "LabelParallelImageEncodingLimit": "Limite de codificação de imagens em paralelo",
- "LabelEnableLUFSScan": "Ativar a verificação LUFS",
- "LabelEnableLUFSScanHelp": "Os clientes podem normalizar a reprodução de áudio para obter um volume uniforme entre faixas. Isto tornará as análises da biblioteca mais lentas e exigirá mais recursos.",
- "LabelParallelImageEncodingLimitHelp": "Número máximo de codificações de imagem permitidas para execução em paralelo. Se deixares este campo vazio, será escolhido um limite baseado na contagem de núcleos do teu sistema.",
- "GoHome": "Ir ao início",
- "GridView": "Vista em grelha",
- "HeaderConfirmRepositoryInstallation": "Confirmar a instalação do repositório de extensões",
- "AllowSegmentDeletion": "Eliminar segmentos",
- "AllowSegmentDeletionHelp": "Elimina segmentos antigos depois de terem sido descarregados pelo cliente. Isto evita ter de armazenar todo o ficheiro transcodificado no disco. Desativa esta opção se tiveres problemas de reprodução.",
- "LabelSegmentKeepSeconds": "Tempo em segundos para manter os segmentos",
- "LabelSegmentKeepSecondsHelp": "Tempo em segundos durante o qual os segmentos devem ser mantidos depois de serem descarregados pelo cliente. Só funciona se a eliminação de segmentos estiver ativada.",
- "LabelThrottleDelaySeconds": "acelerar depois",
- "HeaderAllRecordings": "Todas as gravações",
- "PreferEmbeddedExtrasTitlesOverFileNamesHelp": "Os extras geralmente têm o mesmo nome incorporado do parente, marque isto para usar títulos incorporados para eles de qualquer maneira.",
- "QuickConnectAuthorizeSuccess": "Autenticaste o teu dispositivo com sucesso!",
- "QuickConnectNotActive": "A Ligação Rápida não está ativa neste servidor",
- "ResolutionMatchSource": "Mesma que a fonte",
+ "LabelParallelImageEncodingLimit": "Limite de codificação de imagem paralela",
+ "LabelEnableLUFSScan": "Ativar verificação LUFS",
+ "LabelEnableLUFSScanHelp": "Os clientes podem normalizar a reprodução de áudio para obter um volume igual em todas as faixas. Isso tornará as verificações de biblioteca mais longas e consumirá mais recursos.",
+ "LabelParallelImageEncodingLimitHelp": "Número máximo de codificações de imagem que podem ser executadas em paralelo. Deixá-lo vazio escolherá um limite com base na contagem de núcleos do seu sistema.",
+ "GoHome": "Ir para a página inicial",
+ "GridView": "Visualização em grade",
+ "HeaderConfirmRepositoryInstallation": "Confirmar Instalação do Repositório do Plugin",
+ "AllowSegmentDeletion": "Excluir segmentos",
+ "AllowSegmentDeletionHelp": "Exclui segmentos antigos após serem baixados pelo cliente. Isso evita armazenar o arquivo transcodificado inteiro no disco. Desative se tiver problemas de reprodução.",
+ "LabelSegmentKeepSeconds": "Tempo para manter segmentos",
+ "LabelSegmentKeepSecondsHelp": "Tempo em segundos para manter os segmentos após serem baixados pelo cliente. Só funciona se a exclusão de segmentos estiver ativada.",
+ "LabelThrottleDelaySeconds": "Controlar após",
+ "HeaderAllRecordings": "Todas as Gravações",
+ "PreferEmbeddedExtrasTitlesOverFileNamesHelp": "Extras geralmente têm o mesmo nome incorporado que o pai, marque isso para usar os títulos incorporados para eles mesmo assim.",
+ "QuickConnectAuthorizeSuccess": "Você autenticou seu dispositivo com sucesso!",
+ "QuickConnectNotActive": "A Conexão Rápida não está ativa neste servidor",
+ "ResolutionMatchSource": "Correspondência com a Fonte",
"SeriesRecordingScheduled": "Gravação da série agendada.",
- "RememberSubtitleSelections": "Definir faixa de legendas com base no item anterior",
- "RememberAudioSelections": "Defina a faixa de áudio com base no item anterior",
- "RememberAudioSelectionsHelp": "Tente definir a faixa de áudio para a correspondência mais próxima do último vídeo.",
- "RememberSubtitleSelectionsHelp": "Tente definir a faixa de legendas para a correspondência mais próxima do último vídeo.",
- "ResetPassword": "Redefinir palavra-passe",
- "LabelSyncPlaySettingsMaxDelaySpeedToSyncHelp": "Atraso máximo de reprodução (em ms) após o qual SkipToSync é usado em vez de SpeedToSync.",
- "LabelSyncPlaySettingsMinDelaySpeedToSyncHelp": "Atraso mínimo da reprodução (em ms) após o qual o SpeedToSync tenta corrigir a posição de reprodução.",
- "QuickConnectNotAvailable": "Pede ao administrador do servidor para ativar a Ligação Rápida",
- "Remixer": "'Remixer'",
- "QuickConnectAuthorizeCode": "Introduz o código {0} para iniciar sessão",
- "QuickConnect": "Ligação Rápida",
+ "RememberSubtitleSelections": "Definir faixa de legenda com base no item anterior",
+ "RememberAudioSelections": "Definir faixa de áudio com base no item anterior",
+ "RememberAudioSelectionsHelp": "Tentar definir a faixa de áudio para a correspondência mais próxima com o último vídeo.",
+ "RememberSubtitleSelectionsHelp": "Tentar definir a faixa de legenda para a correspondência mais próxima com o último vídeo.",
+ "ResetPassword": "Redefinir Senha",
+ "LabelSyncPlaySettingsMaxDelaySpeedToSyncHelp": "Atraso máximo de reprodução (em ms) após o qual o SkipToSync é usado em vez do SpeedToSync.",
+ "LabelSyncPlaySettingsMinDelaySpeedToSyncHelp": "Atraso mínimo de reprodução (em ms) após o qual o SpeedToSync tenta corrigir a posição da reprodução.",
+ "QuickConnectNotAvailable": "Peça ao administrador do servidor para ativar a Conexão Rápida",
+ "Remixer": "Remixer",
+ "QuickConnectAuthorizeCode": "Insira o código {0} para fazer login",
+ "QuickConnect": "Conexão Rápida",
"SelectServer": "Selecionar Servidor",
- "PosterCard": "Cartaz em forma de cartão",
+ "PosterCard": "Cartão de Pôster",
"SortByValue": "Ordenar por {0}",
- "PathNotFound": "Não foi possível encontrar a localização. Certifica-te de que o caminho é válido e tenta novamente.",
- "PlaybackErrorPlaceHolder": "Este é um espaço reservado para mídia física que o Jellyfin não consegue reproduzir. Por favor insira o disco para reproduzir.",
- "ProductionLocations": "Locais da produção",
+ "PathNotFound": "O caminho não pôde ser encontrado. Verifique se o caminho é válido e tente novamente.",
+ "PlaybackErrorPlaceHolder": "Este é um placeholder para mídia física que o Jellyfin não pode reproduzir. Por favor, insira o disco para reproduzir.",
+ "ProductionLocations": "Locais de Produção",
"Photo": "Foto",
- "SearchResultsEmpty": "Desculpa! Não foram encontrados resultados para \"{0}\"",
- "ShowParentImages": "Mostrar imagens das series",
- "SaveRecordingNFO": "Guardar metadados EPG da gravação no NFO",
+ "SearchResultsEmpty": "Desculpe! Nenhum resultado encontrado para \"{0}\"",
+ "ShowParentImages": "Mostrar imagens da série",
+ "SaveRecordingNFO": "Salvar metadados EPG da gravação em NFO",
"PersonRole": "como {0}",
- "AllowEmbeddedSubtitles": "Desativar diferentes tipos de legendas incorporadas",
- "QuickConnectDeactivated": "A Ligação Rápida foi desativada antes do pedido de início de sessão ser aprovado",
- "QuickConnectInvalidCode": "Código de Ligação Rápida inválido",
- "QuickConnectDescription": "Para iniciar sessão com a Ligação Rápida, clica no botão \"Ligação Rápida\" no dispositivo a partir do qual estás a iniciar sessão e introduz o código apresentado abaixo.",
- "RefreshQueued": "Atualização em fila de espera.",
+ "AllowEmbeddedSubtitles": "Desativar diferentes tipos de legendas embutidas",
+ "QuickConnectDeactivated": "A Conexão Rápida foi desativada antes que a solicitação de login pudesse ser aprovada",
+ "QuickConnectInvalidCode": "Código de Conexão Rápida inválido",
+ "QuickConnectDescription": "Para fazer login com a Conexão Rápida, selecione o botão 'Conexão Rápida' no dispositivo que você está fazendo login e insira o código exibido abaixo.",
+ "RefreshQueued": "Atualização na fila.",
"PlaybackRate": "Velocidade de Reprodução",
- "AllowEmbeddedSubtitlesHelp": "Desativar as legendas que estão empacotadas em containers multimédia. Requer uma atualização completa da biblioteca.",
+ "AllowEmbeddedSubtitlesHelp": "Desativar legendas que estão embaladas dentro dos contêineres de mídia. Requer uma atualização completa da biblioteca.",
"LabelEnableGamepad": "Ativar Gamepad",
"LabelTonemappingThreshold": "Limite de mapeamento de tons",
"LabelTonemappingRange": "Intervalo do mapeamento de tons",
- "PasswordRequiredForAdmin": "É necessária uma palavra passe para contas de administrador.",
- "PleaseConfirmRepositoryInstallation": "Clique em OK para confirmar que leu o texto acima e deseja prosseguir com a instalação do repositório de plug-ins.",
- "LabelThrottleDelaySecondsHelp": "Tempo em segundos após o qual o transcodificador será limitado. Deve ser grande o suficiente para que o cliente mantenha um buffer saudável. Só funciona se a limitação estiver ligada.",
- "QuickConnectAuthorizeFail": "Código de Ligação Rápida desconhecido",
- "TonemappingAlgorithmHelp": "O mapeamento de tons pode ser afinado. Se não estiveres familiarizado com estas opções, mantém o valor predefinido. O valor recomendado é 'BT.2390'.",
- "UseEpisodeImagesInNextUp": "Utilizar imagens do episódio nas secções 'A seguir' e 'Continuar a ver'",
- "UseEpisodeImagesInNextUpHelp": "As secções 'A seguir' e 'Continuar a ver' vão utilizar imagens dos episódios como miniatura em vez da imagem primária da série.",
- "Yadif": "Mais um filtro de desentrelaçamento (YADIF)",
- "IntelLowPowerEncHelp": "A codificação de baixo consumo pode manter uma sincronização CPU-GPU desnecessária. No Linux eles devem ser desativados se o firmware i915 HuC não estiver configurado.",
+ "PasswordRequiredForAdmin": "Uma senha é necessária para contas de administrador.",
+ "PleaseConfirmRepositoryInstallation": "Por favor, clique em OK para confirmar que você leu o acima e deseja prosseguir com a instalação do repositório do plugin.",
+ "LabelThrottleDelaySecondsHelp": "Tempo em segundos após o qual o transcodificador será controlado. Deve ser suficiente para o cliente manter um buffer saudável. Só funciona se o controle estiver ativado.",
+ "QuickConnectAuthorizeFail": "Código de Conexão Rápida desconhecido",
+ "TonemappingAlgorithmHelp": "O mapeamento de tons pode ser ajustado. Se você não estiver familiarizado com essas opções, mantenha o padrão. O valor recomendado é 'BT.2390'.",
+ "UseEpisodeImagesInNextUp": "Usar imagens de episódios nas seções 'Próximo' e 'Continuar Assistindo'",
+ "UseEpisodeImagesInNextUpHelp": "'Próximo' e 'Continuar Assistindo' usarão imagens de episódios como miniaturas em vez da miniatura principal do programa.",
+ "Yadif": "Yet Another DeInterlacing Filter (YADIF)",
+ "IntelLowPowerEncHelp": "A codificação de baixo consumo pode manter a sincronização desnecessária entre CPU e GPU. No Linux, devem ser desativados se o firmware HuC i915 não estiver configurado.",
"LabelTonemappingThresholdHelp": "Os parâmetros do algoritmo de mapeamento de tom são ajustados para cada cena. Um limite é usado para detectar se a cena mudou ou não. Se a distância entre o brilho médio do quadro atual e a média atual exceder um valor limite, recalcularíamos a média da cena e o brilho máximo. Os valores recomendados e padrão são 0,8 e 0,2.",
"SyncPlayAccessHelp": "O recurso SyncPlay permite sincronizar a reprodução com outros dispositivos. Selecione o nível de acesso que este usuário tem ao SyncPlay.",
- "AllowVppTonemappingHelp": "Mapeamento de tons totalmente baseado no driver Intel. Vídeos em HDR10 funcionam apenas em certas configurações de hardware. Tem maior prioridade quando comparado a outras implementações OpenCL.",
- "LabelSyncPlaySettingsMinDelaySkipToSyncHelp": "Atraso mínimo de reprodução (em ms) após o qual SkipToSync tenta corrigir a posição de reprodução.",
- "OptionMaxActiveSessions": "Definir o número máximo de sessões de usuário simultâneas.",
- "LabelSyncPlaySettingsSpeedToSyncDurationHelp": "Quantidade de milissegundos usados pelo SpeedToSync para corrigir a posição de reprodução.",
- "SubtitleAppearanceSettingsDisclaimer": "Estas definições não se aplicam a legendas gráficas mencionadas acima ou a legendas ASS/SSA com estilos próprios incorporados.",
- "UnsupportedPlayback": "Jellyfin não pode desencriptar conteúdo protegido por DRM, mas todo o conteúdo será testado de qualquer maneira, incluindo títulos protegidos. Alguns arquivos podem aparecer completamente pretos devido à encriptação ou a outros recursos não suportados, como títulos interativos.",
- "MessageSyncPlayGroupWait": "{0} está a armazenar em buffer…",
- "LabelSelectAudioNormalization": "Normalização de áudio",
- "LabelBackdropScreensaverIntervalHelp": "O tempo em segundos entre a mudança de diferentes imagens de fundo na proteção de ecrã.",
+ "AllowVppTonemappingHelp": "Mapeamento de tons baseado em driver completo da Intel. Atualmente funciona apenas em determinados hardwares com vídeos HDR10. Esta opção tem prioridade mais alta em comparação com outra implementação OpenCL.",
+ "LabelSyncPlaySettingsMinDelaySkipToSyncHelp": "Atraso mínimo de reprodução (em ms) após o qual o SkipToSync tenta corrigir a posição da reprodução.",
+ "OptionMaxActiveSessions": "Defina o número máximo de sessões de usuário simultâneas.",
+ "LabelSyncPlaySettingsSpeedToSyncDurationHelp": "Quantidade de milissegundos usados pelo SpeedToSync para corrigir a posição da reprodução.",
+ "SubtitleAppearanceSettingsDisclaimer": "As configurações a seguir não se aplicam às legendas gráficas mencionadas acima ou às legendas ASS/SSA que incorporam seus próprios estilos.",
+ "UnsupportedPlayback": "O Jellyfin não pode descriptografar conteúdo protegido por DRM, mas todo o conteúdo será tentado independentemente, incluindo títulos protegidos. Alguns arquivos podem aparecer completamente pretos devido à criptografia ou outros recursos não suportados, como títulos interativos.",
+ "MessageSyncPlayGroupWait": "{0} está carregando…",
+ "LabelSelectAudioNormalization": "Normalização de Áudio",
+ "LabelBackdropScreensaverIntervalHelp": "O tempo em segundos entre diferentes planos de fundo ao usar o protetor de tela com plano de fundo.",
"LabelServerVersion": "Versão do servidor",
- "LabelTonemappingPeakHelp": "Substitui o valor de metadados incorporado para o sinal de entrada por este valor de pico. O valor predefinido é 100 (1000nit).",
- "OptionDateShowAdded": "Data de exibição adicionada",
+ "LabelTonemappingPeakHelp": "Substitua o valor de metadados incorporado para o sinal de entrada por este valor de pico. O valor padrão é 100 (1000nit).",
+ "OptionDateShowAdded": "Data do Programa Adicionado",
"Studios": "Estúdios",
- "WriteAccessRequired": "Jellyfin requer acesso de gravação a esta pasta. Garanta o acesso de gravação e tente novamente.",
- "LabelFallbackFontPathHelp": "Essas fontes são usadas por alguns clientes para renderizar legendas. Consulte a documentação para obter mais informações.",
- "EnableGamepadHelp": "Detetar o sinal de entrada de qualquer comando ligado. (Requer: Modo de apresentação 'TV')",
- "BackdropScreensaver": "Fundo do protetor de ecrã",
+ "WriteAccessRequired": "O Jellyfin requer acesso de gravação a esta pasta. Por favor, assegure-se de que o acesso de gravação está habilitado e tente novamente.",
+ "LabelFallbackFontPathHelp": "Essas fontes são usadas por alguns clientes para renderizar legendas. Consulte a documentação para mais informações.",
+ "EnableGamepadHelp": "Ouvir entrada de qualquer controle conectado. (Requer: 'Modo de Exibição TV')",
+ "BackdropScreensaver": "Protetor de tela com plano de fundo",
"LabelLevel": "Nível",
- "LabelSyncPlaySettingsMinDelaySpeedToSync": "Atraso mínimo da velocidade de sincronização",
- "OptionDateEpisodeAdded": "Data do episódio adicionado",
- "SubtitleDownloadersHelp": "Ativa e ordena os teus fornecedores de legendas preferidos por ordem de prioridade.",
- "Sort": "Organizar",
- "SmartSubtitlesHelp": "As legendas que correspondem à preferência de idioma serão carregadas quando o áudio estiver em um idioma estrangeiro.",
+ "LabelSyncPlaySettingsMinDelaySpeedToSync": "Atraso mínimo do SpeedToSync",
+ "OptionDateEpisodeAdded": "Data do Episódio Adicionado",
+ "SubtitleDownloadersHelp": "Ative e classifique seus baixadores de legendas preferidos por ordem de prioridade.",
+ "Sort": "Ordenar",
+ "SmartSubtitlesHelp": "Legendas que correspondem à preferência de idioma serão carregadas quando o áudio estiver em um idioma estrangeiro.",
"SubtitleMagenta": "Magenta",
"Smart": "Inteligente",
- "StopPlayback": "Parar a reprodução",
- "MessageSyncPlayEnabled": "Sincronização ativada.",
- "MessageSyncPlayGroupDoesNotExist": "Falha ao ingressar no grupo porque ele não existe.",
+ "StopPlayback": "Parar reprodução",
+ "MessageSyncPlayEnabled": "SyncPlay ativado.",
+ "MessageSyncPlayGroupDoesNotExist": "Falha ao entrar no grupo porque ele não existe.",
"Subtitle": "Legenda",
- "MixedMoviesShows": "Filmes e séries misturados",
- "MessageSyncPlayIsDisabled": "Requer permissão para utilizar SyncPlay.",
- "LabelMediaDetails": "Detalhes do conteúdo multimédia",
- "MessageSyncPlayErrorNoActivePlayer": "Não foi encontrado nenhum leitor ativo. O SyncPlay foi desativado.",
- "SpecialFeatures": "Opções especiais",
- "MessageSyncPlayNoGroupsAvailable": "Não há grupos disponíveis. Começa por reproduzir algo primeiro.",
+ "MixedMoviesShows": "Filmes e Programas Mistos",
+ "MessageSyncPlayIsDisabled": "Permissão necessária para usar o SyncPlay.",
+ "LabelMediaDetails": "Detalhes da mídia",
+ "MessageSyncPlayErrorNoActivePlayer": "Nenhum reprodutor ativo encontrado. O SyncPlay foi desativado.",
+ "SpecialFeatures": "Recursos Especiais",
+ "MessageSyncPlayNoGroupsAvailable": "Sem grupos disponíveis. Comece a reproduzir algo primeiro.",
"Smaller": "Menor",
"MessageSyncPlayErrorMedia": "Falha ao ativar o SyncPlay! Erro de mídia.",
"MessageSyncPlayErrorAccessingGroups": "Ocorreu um erro ao acessar a lista de grupos.",
@@ -1522,346 +1522,346 @@
"SubtitleVerticalPositionHelp": "Número da linha onde o texto aparece. Números positivos indicam de cima para baixo. Números negativos indicam de baixo para cima.",
"Remuxing": "Remuxing",
"OnApplicationStartup": "Na inicialização do aplicativo",
- "MessageSyncPlayLibraryAccessDenied": "O acesso a este conteúdo é restrito.",
- "SortName": "Classificar nome",
+ "MessageSyncPlayLibraryAccessDenied": "Acesso a este conteúdo restrito.",
+ "SortName": "Nome da ordenação",
"SubtitleAppearanceSettingsAlsoPassedToCastDevices": "Essas configurações também se aplicam a qualquer reprodução do Google Cast iniciada por este dispositivo.",
- "OnWakeFromSleep": "Ao acordar da suspensão",
- "OptionMaxActiveSessionsHelp": "Um valor 0 desativará o recurso.",
+ "OnWakeFromSleep": "Ao sair do modo de suspensão",
+ "OptionMaxActiveSessionsHelp": "Um valor de 0 desativará o recurso.",
"Watched": "Assistido",
- "SyncPlayGroupDefaultTitle": "grupo de {0}",
+ "SyncPlayGroupDefaultTitle": "Grupo de {0}",
"TabRepositories": "Repositórios",
- "TagsValue": "Etiquetas: {0}",
+ "TagsValue": "Tags: {0}",
"TextSent": "Texto enviado.",
- "ThemeSongs": "Bandas sonoras do tema",
- "ThemeVideos": "Vídeos do tema",
- "TheseSettingsAffectSubtitlesOnThisDevice": "Estas definições afetam as legendas neste dispositivo",
+ "ThemeSongs": "Músicas tema",
+ "ThemeVideos": "Vídeos tema",
+ "TheseSettingsAffectSubtitlesOnThisDevice": "Essas configurações afetam as legendas neste dispositivo",
"Thumb": "Miniatura",
- "ThumbCard": "Miniatura em forma de cartão",
- "TitleHardwareAcceleration": "Aceleraçao do hardware",
+ "ThumbCard": "Cartão de Miniatura",
+ "TitleHardwareAcceleration": "Aceleração por Hardware",
"Trailers": "Trailers",
"TypeOptionPluralAudio": "Áudios",
"TypeOptionPluralBook": "Livros",
"TypeOptionPluralMovie": "Filmes",
"Typewriter": "Máquina de escrever",
"UnknownError": "Ocorreu um erro desconhecido.",
- "Up": "Acima",
- "Upload": "Carregar",
+ "Up": "Para cima",
+ "Upload": "Enviar",
"ValueCodec": "Codec: {0}",
"ValueContainer": "Contêiner: {0}",
"ValueDiscNumber": "Disco {0}",
"ValueMovieCount": "{0} filmes",
"ValueEpisodeCount": "{0} episódios",
- "ValueMusicVideoCount": "{0} videoclipes",
+ "ValueMusicVideoCount": "{0} vídeos musicais",
"ValueOneEpisode": "1 episódio",
"ValueOneSong": "1 música",
"ValueSeconds": "{0} segundos",
"ViewAlbum": "Ver álbum",
"ViewAlbumArtist": "Ver artista do álbum",
"ViewPlaybackInfo": "Ver informações de reprodução",
- "WeeklyAt": "{0} às {1}",
- "Whitelist": "Lista de permissões",
- "Writers": "Argumento",
- "XmlTvKidsCategoriesHelp": "Lista de categorias, separadas por '|', que correspondem a programas para crianças.",
+ "WeeklyAt": "{0}s às {1}",
+ "Whitelist": "Lista branca",
+ "Writers": "Escritores",
+ "XmlTvKidsCategoriesHelp": "Programas com essas categorias serão exibidos como programas para crianças. Separe várias com '|'.",
"Yes": "Sim",
- "HeaderSelectFallbackFontPathHelp": "Navegue ou insira o caminho da pasta de fontes substitutas a ser usada para renderizar legendas ASS/SSA.",
- "RemuxHelp1": "O ficheiro multimédia está num container de ficheiros incompatível (MKV, AVI, WMV, etc.), mas tanto o fluxo de vídeo como o fluxo de áudio são compatíveis com o dispositivo. O ficheiro multimédia será reempacotado sem perdas em tempo real antes de ser enviado para o dispositivo.",
- "PreferFmp4HlsContainer": "Preferir o container multimédia fMP4-HLS",
- "LabelSyncPlayInfo": "Informações de Sincronização",
- "PreferFmp4HlsContainerHelp": "Utiliza o fMP4 como container predefinido para HLS, tornando possível a transmissão direta de conteúdos HEVC e AV1 em dispositivos suportados.",
+ "HeaderSelectFallbackFontPathHelp": "Navegue ou insira o caminho da pasta da fonte de recuo a ser usada para renderizar legendas ASS/SSA.",
+ "RemuxHelp1": "A mídia está em um contêiner de arquivo incompatível (MKV, AVI, WMV, etc), mas tanto o stream de vídeo quanto o de áudio são compatíveis com o dispositivo. A mídia será reembalada sem perdas em tempo real antes de ser enviada ao dispositivo.",
+ "PreferFmp4HlsContainer": "Preferir contêiner de mídia fMP4-HLS",
+ "LabelSyncPlayInfo": "Informações do SyncPlay",
+ "PreferFmp4HlsContainerHelp": "Preferir usar fMP4 como o contêiner padrão para HLS, tornando possível o streaming direto de conteúdos HEVC e AV1 em dispositivos suportados.",
"LabelSelectAudioChannels": "Canais",
"LabelSelectStereo": "Estéreo",
- "ContainerNotSupported": "O container não é suportado",
- "LabelSyncPlayNoGroups": "Não há grupos disponíveis",
- "LabelSyncPlaySettingsMaxDelaySpeedToSync": "Atraso máximo da Velocidade de sincronização",
- "LabelSyncPlaySettingsSkipToSync": "Ativar pulo de sincronização",
+ "ContainerNotSupported": "O contêiner não é suportado",
+ "LabelSyncPlayNoGroups": "Sem grupos disponíveis",
+ "LabelSyncPlaySettingsMaxDelaySpeedToSync": "Atraso máximo do SpeedToSync",
+ "LabelSyncPlaySettingsSkipToSync": "Ativar SkipToSync",
"LabelSyncPlaySettingsSpeedToSync": "Ativar SpeedToSync",
"NotificationsMovedMessage": "A funcionalidade de notificações foi movida para o plugin Webhook.",
- "AspectRatioCover": "Zoom",
+ "AspectRatioCover": "Cobrir",
"AspectRatioFill": "Esticar",
- "AudioCodecNotSupported": "O codec de áudio não é compatível",
- "HeaderGuestCast": "Estrelas convidadas",
- "LabelSyncPlaySettingsSpeedToSyncHelp": "Método de correção de sincronização que consiste em acelerar a reprodução. A correção de sincronização deve estar habilitada.",
+ "AudioCodecNotSupported": "O codec de áudio não é suportado",
+ "HeaderGuestCast": "Participações Especiais",
+ "LabelSyncPlaySettingsSpeedToSyncHelp": "Método de correção de sincronização que consiste em acelerar a reprodução. A correção de sincronização deve estar ativada.",
"MessageSyncPlayDisabled": "SyncPlay desativado.",
- "LabelVideoInfo": "Informações do vídeo",
- "LabelRemuxingInfo": "Informações sobre remixagem",
+ "LabelVideoInfo": "Informações de Vídeo",
+ "LabelRemuxingInfo": "Informações de Remuxing",
"LabelDate": "Data",
- "MessageRenameMediaFolder": "Mudar o nome de uma biblioteca multimédia fará com que todos os metadados se percam, por isso, procede com cuidado.",
- "LabelSyncPlaySettingsMinDelaySkipToSync": "Atraso mínimo do pulo de sincronização",
+ "MessageRenameMediaFolder": "Renomear uma biblioteca de mídia fará com que todos os metadados sejam perdidos, prossiga com cautela.",
+ "LabelSyncPlaySettingsMinDelaySkipToSync": "Atraso mínimo do SkipToSync",
"LogLevel.None": "Nenhum",
"LogLevel.Critical": "Crítico",
"New": "Novo",
"SubtitleWhite": "Branco",
- "SubtitleLightGray": "Cinza claro",
+ "SubtitleLightGray": "Cinza Claro",
"Track": "Faixa",
- "TypeOptionPluralMusicArtist": "Artistas musicais",
+ "TypeOptionPluralMusicArtist": "Artistas de Música",
"TypeOptionPluralSeason": "Temporadas",
"LabelSelectMono": "Mono",
- "HeaderEpisodesStatus": "Status dos episódios",
- "LabelSyncPlaySettingsSkipToSyncHelp": "Método de correção de sincronismo que consiste em buscar a posição estimada. A correção de sincronização deve estar habilitada.",
- "LogLevel.Trace": "Rastreio",
- "LogLevel.Debug": "Depuração",
+ "HeaderEpisodesStatus": "Status dos Episódios",
+ "LabelSyncPlaySettingsSkipToSyncHelp": "Método de correção de sincronização que consiste em buscar a posição estimada. A correção de sincronização deve estar ativada.",
+ "LogLevel.Trace": "Rastrear",
+ "LogLevel.Debug": "Depurar",
"LogLevel.Information": "Informação",
- "MessageRepositoryInstallDisclaimer": "AVISO: A instalação de uma extensão de terceiros acarreta riscos. Ela pode conter código instável ou malicioso e pode ser alterado a qualquer momento. Instala apenas extensões de autores em quem confias.",
- "OptionAllowContentDownload": "Permitir transferências de multimédia",
- "StoryArc": "Arco da história",
+ "MessageRepositoryInstallDisclaimer": "ATENÇÃO: Instalar um repositório de plugin de terceiros envolve riscos. Ele pode conter código instável ou malicioso, e pode mudar a qualquer momento. Instale apenas repositórios de autores confiáveis.",
+ "OptionAllowContentDownload": "Permitir downloads de mídia",
+ "StoryArc": "Arco da História",
"TabNetworking": "Rede",
"ValueOneMovie": "1 filme",
- "HeaderSelectFallbackFontPath": "Selecione o caminho da pasta de fontes substitutas",
- "XmlTvMovieCategoriesHelp": "Lista de categorias, separadas por '|', que correspondem a filmes.",
- "LabelVideoRange": "Gama de vídeo",
- "Mixer": "Misturador",
+ "HeaderSelectFallbackFontPath": "Selecionar Caminho da Fonte de Recuo",
+ "XmlTvMovieCategoriesHelp": "Programas com essas categorias serão exibidos como filmes. Separe várias com '|'.",
+ "LabelVideoRange": "Faixa de vídeo",
+ "Mixer": "Mixer",
"LabelSystem": "Sistema",
- "SaveRecordingImages": "Guardar imagens da gravação EPG",
- "SaveRecordingImagesHelp": "Guardar imagens do fornecedor de listas EPG juntamente com os ficheiros multimédia.",
- "UseDoubleRateDeinterlacing": "Duplicar a velocidade de fotogramas ao desentrelaçar",
+ "SaveRecordingImages": "Salvar imagens EPG da gravação",
+ "SaveRecordingImagesHelp": "Salvar imagens do provedor de listagens EPG junto com a mídia.",
+ "UseDoubleRateDeinterlacing": "Dobrar a taxa de quadros ao desentrelaçar",
"MessageSyncPlayUserJoined": "{0} entrou no grupo.",
"MessageSyncPlayUserLeft": "{0} saiu do grupo.",
"MillisecondsUnit": "ms",
"SubtitleGreen": "Verde",
"Notifications": "Notificações",
- "XmlTvNewsCategoriesHelp": "Lista de categorias, separadas por '|', que correspondem a programas de informação.",
- "LabelOriginalMediaInfo": "Informações da mídia original",
- "YoutubeBadRequest": "Requisição ruim.",
- "YoutubeDenied": "O vídeo solicitado não pode ser reproduzido em leitores incorporados.",
- "TypeOptionPluralBoxSet": "Conjuntos de caixas",
- "LabelBackdropScreensaverInterval": "Intervalo da imagem de fundo do protetor de ecrã",
- "UseDoubleRateDeinterlacingHelp": "Esta definição utiliza a taxa de campo durante o desentrelaçamento, muitas vezes referido como desentrelaçamento bob, que duplica a taxa de fotogramas do vídeo para proporcionar movimento fluído, como o que verias ao ver vídeo entrelaçado numa televisão.",
- "LabelDirectStreamingInfo": "Informações de transmissão direta",
- "LabelAlbumGain": "Ganho do álbum",
- "LogoScreensaver": "Logótipo da proteção de ecrã",
- "MediaInfoColorSpace": "Espaço colorido",
+ "XmlTvNewsCategoriesHelp": "Programas com essas categorias serão exibidos como programas de notícias. Separe várias com '|'.",
+ "LabelOriginalMediaInfo": "Informações da Mídia Original",
+ "YoutubeBadRequest": "Solicitação inválida.",
+ "YoutubeDenied": "O vídeo solicitado não pode ser reproduzido em players incorporados.",
+ "TypeOptionPluralBoxSet": "Caixas",
+ "LabelBackdropScreensaverInterval": "Intervalo do protetor de tela com plano de fundo",
+ "UseDoubleRateDeinterlacingHelp": "Esta configuração usa a taxa de campo ao desentrelaçar, muitas vezes chamada de desentrelaçamento bob, que dobra a taxa de quadros do vídeo para fornecer movimento completo como o que você veria ao visualizar vídeo entrelaçado em uma TV.",
+ "LabelDirectStreamingInfo": "Informações de Streaming Direto",
+ "LabelAlbumGain": "Ganho do Álbum",
+ "LogoScreensaver": "Protetor de tela com logo",
+ "MediaInfoColorSpace": "Espaço de cor",
"Studio": "Estúdio",
"SubtitleGray": "Cinza",
- "TabLogs": "Registos (Logs)",
- "Tags": "Etiquetas",
+ "TabLogs": "Logs",
+ "Tags": "Tags",
"Vertical": "Vertical",
"Video": "Vídeo",
- "VideoAudio": "Vídeo Áudio",
- "MessageNoItemsAvailable": "Nenhum item está disponível no momento.",
- "MessageNoFavoritesAvailable": "Não existem favoritos atualmente disponíveis.",
- "SaveRecordingNFOHelp": "Guardar metadados do fornecedor de listagens EPG juntamente com os ficheiros multimédia.",
- "TonemappingRangeHelp": "Seleciona o intervalo de cores de saída. A opção 'Automático' mantém o intervalo de cores de entrada.",
+ "VideoAudio": "Áudio de Vídeo",
+ "MessageNoItemsAvailable": "Nenhum item disponível no momento.",
+ "MessageNoFavoritesAvailable": "Nenhum favorito disponível no momento.",
+ "SaveRecordingNFOHelp": "Salvar metadados do provedor de listagens EPG junto com a mídia.",
+ "TonemappingRangeHelp": "Selecione a faixa de cor de saída. Automático é o mesmo que a faixa de entrada.",
"TypeOptionPluralEpisode": "Episódios",
- "MediaInfoColorTransfer": "Transferência de cores",
- "MediaInfoVideoRange": "Gama de vídeo",
- "MessageNoGenresAvailable": "Ativa alguns fornecedores de metadados para obter géneros da internet.",
- "ListView": "Lista de Exibição",
+ "MediaInfoColorTransfer": "Transferência de cor",
+ "MediaInfoVideoRange": "Faixa de vídeo",
+ "MessageNoGenresAvailable": "Ative alguns provedores de metadados para buscar gêneros da internet.",
+ "ListView": "Visualização em lista",
"LogLevel.Warning": "Aviso",
- "MessageChangeRecordingPath": "Alterar a localização das gravações não irá migrar as gravações existentes da localização atual para a nova. Os ficheiros deverão ser movidos manualmente, se necessário.",
+ "MessageChangeRecordingPath": "Alterar sua pasta de gravação não migrará gravações existentes da antiga localização para a nova. Você precisará movê-las manualmente, se desejado.",
"ListPaging": "{0}-{1} de {2}",
"Localization": "Localização",
"Lyricist": "Letrista",
"NextChapter": "Próximo capítulo",
- "TvLibraryHelp": "Revise o {0}guia de nomenclatura de TV{1}.",
- "TypeOptionPluralSeries": "Séries",
+ "TvLibraryHelp": "Veja o {0}guia de nomes de TV{1}.",
+ "TypeOptionPluralSeries": "Programas de TV",
"TypeOptionPluralVideo": "Vídeos",
- "ValueSeriesCount": "{0} série",
- "LabelAudioInfo": "Informações de áudio",
+ "ValueSeriesCount": "{0} séries",
+ "LabelAudioInfo": "Informações de Áudio",
"RemuxHelp2": "Remux usa muito pouco poder de processamento com qualidade de mídia completamente sem perdas.",
"MenuOpen": "Abrir Menu",
"MenuClose": "Fechar Menu",
- "OptionAllowContentDownloadHelp": "Os utilizadores podem transferir conteúdo multimédia e armazená-lo nos seus dispositivos. Isto não é o mesmo que uma funcionalidade de sincronização. As bibliotecas de livros necessitam de ter esta opção ativada para funcionarem corretamente.",
- "SmallCaps": "Letras Minúsculas",
+ "OptionAllowContentDownloadHelp": "Os usuários podem baixar mídias e armazená-las em seus dispositivos. Isso não é o mesmo que um recurso de sincronização. Bibliotecas de livros exigem isso ativado para funcionar corretamente.",
+ "SmallCaps": "Caps pequenas",
"StereoDownmixAlgorithmHelp": "Algoritmo usado para fazer downmix de áudio multicanal para estéreo.",
"Suggestions": "Sugestões",
"TabCodecs": "Codificadores",
"SubtitleRed": "Vermelho",
"SubtitleYellow": "Amarelo",
"Unrated": "Sem classificação",
- "TypeOptionPluralMusicAlbum": "Álbuns de música",
- "TypeOptionPluralMusicVideo": "Vídeos musicais",
+ "TypeOptionPluralMusicAlbum": "Álbuns de Música",
+ "TypeOptionPluralMusicVideo": "Vídeos Musicais",
"UserMenu": "Menu do Usuário",
"ValueAlbumCount": "{0} álbuns",
"ValueOneAlbum": "1 álbum",
"ValueSongCount": "{0} músicas",
- "Controls": "Comandos",
- "LabelSyncPlaySettingsSpeedToSyncDuration": "Duração da Velocidade de sincronização",
- "EnableFallbackFontHelp": "Ative fontes alternativas personalizadas. Isso pode evitar o problema de renderização incorreta de legendas.",
- "MessagePlaybackError": "Ocorreu um erro ao reproduzir este ficheiro no teu recetor Google Cast.",
+ "Controls": "Controles",
+ "LabelSyncPlaySettingsSpeedToSyncDuration": "Duração do SpeedToSync",
+ "EnableFallbackFontHelp": "Ativar fontes alternativas personalizadas. Isso pode evitar o problema de renderização incorreta de legendas.",
+ "MessagePlaybackError": "Ocorreu um erro ao reproduzir este arquivo em seu receptor Google Cast.",
"NextTrack": "Pular para o próximo",
- "TitleHostingSettings": "Definições de hospedagem",
+ "TitleHostingSettings": "Configurações de Hospedagem",
"LabelTextWeight": "Peso do texto",
"Bold": "Negrito",
- "MessageSyncPlayCreateGroupDenied": "Requer permissão para criar um grupo.",
- "MessageUnauthorizedUser": "Você não está autorizado a acessar o servidor neste momento. Entre em contato com o administrador do servidor para obter mais informações.",
+ "MessageSyncPlayCreateGroupDenied": "Permissão necessária para criar um grupo.",
+ "MessageUnauthorizedUser": "Você não está autorizado a acessar o servidor neste momento. Por favor, entre em contato com o administrador do servidor para mais informações.",
"OtherArtist": "Outro Artista",
"Transcoding": "Transcodificação",
"YoutubePlaybackError": "O vídeo solicitado não pode ser reproduzido.",
- "MessageChromecastConnectionError": "O recetor Google Cast não consegue contactar o servidor Jellyfin. Verifica a ligação e tenta novamente.",
- "EnableFallbackFont": "Ativar fontes substitutas",
+ "MessageChromecastConnectionError": "Seu receptor Google Cast não consegue contatar o servidor Jellyfin. Por favor, verifique a conexão e tente novamente.",
+ "EnableFallbackFont": "Ativar fontes de recuo",
"LabelDeveloper": "Desenvolvedor",
- "MessageSyncPlayErrorMissingSession": "Falha ao ativar o Sincronização! Sessão perdida.",
- "MessageSyncPlayPlaybackPermissionRequired": "Requer permissão de reprodução.",
- "OriginalAirDate": "Data de transmissão original",
- "SelectAudioNormalizationHelp": "Ganho de faixa - ajusta o volume de cada faixa para que sejam reproduzidas com o mesmo volume. Ganho do álbum - ajusta o volume de todas as faixas apenas de um álbum, mantendo a faixa dinâmica do álbum. Alternar entre \"Desativado\" e outras opções requer o reinício da reprodução atual.",
- "LabelSyncPlaySettingsSyncCorrectionHelp": "Permite que a reprodução seja acelerada ou que o leitor salte para a posição estimada. Desativa caso esteja com paragens de reprodução frequentes.",
+ "MessageSyncPlayErrorMissingSession": "Falha ao ativar o SyncPlay! Sessão ausente.",
+ "MessageSyncPlayPlaybackPermissionRequired": "Permissão de reprodução necessária.",
+ "OriginalAirDate": "Data Original de Exibição",
+ "SelectAudioNormalizationHelp": "Track gain - ajusta o volume de cada faixa para que sejam reproduzidas com o mesmo nível de loudness. Album gain - ajusta o volume de todas as faixas de um álbum, mantendo a faixa dinâmica do álbum. Alternar entre \"Desligado\" e outras opções requer reiniciar a reprodução atual.",
+ "LabelSyncPlaySettingsSyncCorrectionHelp": "Ativar sincronização ativa da reprodução, acelerando a mídia ou buscando a posição estimada. Desative isso em caso de gagueira intensa.",
"Larger": "Maior",
"LogLevel.Error": "Erro",
"MediaInfoTitle": "Título",
- "MessageAddRepository": "Caso queira adicionar um repositório, clique no botão próximo ao cabeçalho e preencha as informações solicitadas.",
+ "MessageAddRepository": "Se você deseja adicionar um repositório, clique no botão ao lado do cabeçalho e preencha as informações solicitadas.",
"MessageSyncPlayJoinGroupDenied": "Não é possível entrar no grupo.",
- "LabelTrackGain": "Rastrear ganho",
- "ValueMinutes": "{0} minutos",
- "LabelBuildVersion": "Versão de compilação",
- "LabelWebVersion": "Versão web",
+ "LabelTrackGain": "Ganho da Faixa",
+ "ValueMinutes": "{0} min",
+ "LabelBuildVersion": "Versão da compilação",
+ "LabelWebVersion": "Versão da Web",
"SubtitleCyan": "Ciano",
- "SubtitleOffset": "Deslocamento de legenda",
- "ValueOneMusicVideo": "1 videoclipe",
+ "SubtitleOffset": "Deslocamento da Legenda",
+ "ValueOneMusicVideo": "1 vídeo musical",
"ValueOneSeries": "1 série",
- "XmlTvSportsCategoriesHelp": "Lista de categorias, separadas por '|', que correspondem a programas de desporto.",
- "LabelFallbackFontPath": "Caminho da pasta de fontes substitutas",
- "LabelPlaybackInfo": "Informações de reprodução",
- "LabelTranscodingInfo": "Informações de transcodificação",
- "AllowHevcEncoding": "Permitir codificação no formato HEVC",
- "LabelAllowedAudioChannels": "Máximo de canais de áudio permitidos",
+ "XmlTvSportsCategoriesHelp": "Programas com essas categorias serão exibidos como programas esportivos. Separe várias com '|'.",
+ "LabelFallbackFontPath": "Caminho da pasta da fonte de recuo",
+ "LabelPlaybackInfo": "Informações de Reprodução",
+ "LabelTranscodingInfo": "Informações de Transcodificação",
+ "AllowHevcEncoding": "Permitir codificação em formato HEVC",
+ "LabelAllowedAudioChannels": "Máximo de Canais de Áudio Permitidos",
"YoutubeNotFound": "Vídeo não encontrado.",
- "EnableEnhancedNvdecDecoder": "Habilitar decodificador NVDEC aprimorado",
- "EnableVppTonemapping": "Ativar o mapeamento de tons VPP",
- "MediaInfoDvProfile": "Perfil DV",
- "VideoCodecNotSupported": "O codec de vídeo não é compatível",
- "SubtitleCodecNotSupported": "O codec de legenda não é compatível",
+ "EnableEnhancedNvdecDecoder": "Ativar decodificador NVDEC aprimorado",
+ "EnableVppTonemapping": "Ativar mapeamento de tons VPP",
+ "MediaInfoDvProfile": "Perfil do DV",
+ "VideoCodecNotSupported": "O codec de vídeo não é suportado",
+ "SubtitleCodecNotSupported": "O codec de legenda não é suportado",
"RefFramesNotSupported": "Quadros de referência não são suportados",
"SecondaryAudioNotSupported": "Faixas de áudio secundárias não são suportadas",
- "VideoLevelNotSupported": "O nível do codec de vídeo não é compatível",
+ "VideoLevelNotSupported": "O nível do codec de vídeo não é suportado",
"AudioBitDepthNotSupported": "A profundidade de bits do áudio não é suportada",
- "LabelHardwareEncodingOptions": "Opções de codificação de hardware",
- "UnknownAudioStreamInfo": "As informações do fluxo de áudio são desconhecidas",
+ "LabelHardwareEncodingOptions": "Opções de codificação por hardware",
+ "UnknownAudioStreamInfo": "As informações do stream de áudio são desconhecidas",
"DirectPlayError": "Ocorreu um erro ao iniciar a reprodução direta",
- "Short": "Curto",
+ "Short": "Curta",
"Clip": "Clipe",
- "BehindTheScenes": "Bastidores",
+ "BehindTheScenes": "Por trás das câmeras",
"DeletedScene": "Cena deletada",
"Interview": "Entrevista",
- "LabelVideoRangeType": "Tipo de gama de vídeo",
- "MediaInfoVideoRangeType": "Tipo de gama de vídeo",
- "MediaInfoDoViTitle": "Título do DVD",
- "MediaInfoDvVersionMajor": "Versão DV principal",
- "MediaInfoDvLevel": "Nível DV",
+ "LabelVideoRangeType": "Tipo de faixa de vídeo",
+ "MediaInfoVideoRangeType": "Tipo de faixa de vídeo",
+ "MediaInfoDoViTitle": "Título DV",
+ "MediaInfoDvVersionMajor": "Versão maior do DV",
+ "MediaInfoDvLevel": "Nível do DV",
"Unreleased": "Ainda não lançado",
- "AllowAv1Encoding": "Permitir codificação no formato AV1",
- "AiTranslated": "IA traduzida",
- "MachineTranslated": "Traduzido automaticamente",
- "AnamorphicVideoNotSupported": "Vídeos anamórficos não são suportados",
- "InterlacedVideoNotSupported": "Vídeo entrelaçado não é compatível",
- "EnableEnhancedNvdecDecoderHelp": "Implementação NVDEC melhorada, desativa esta opção e utiliza CUVID no caso de encontrares erros de descodificação.",
+ "AllowAv1Encoding": "Permitir codificação em formato AV1",
+ "AiTranslated": "Traduzido por IA",
+ "MachineTranslated": "Traduzido por Máquina",
+ "AnamorphicVideoNotSupported": "Vídeo anamórfico não é suportado",
+ "InterlacedVideoNotSupported": "Vídeo entrelaçado não é suportado",
+ "EnableEnhancedNvdecDecoderHelp": "Implementação aprimorada do NVDEC, desative esta opção para usar o CUVID se você encontrar erros de decodificação.",
"AudioChannelsNotSupported": "O número de canais de áudio não é suportado",
"ContainerBitrateExceedsLimit": "A taxa de bits do vídeo excede o limite",
"VideoBitrateNotSupported": "A taxa de bits do vídeo não é suportada",
- "LabelVppTonemappingBrightness": "Ganho de brilho para mapeamento de tons VPP",
- "LabelVppTonemappingBrightnessHelp": "Aplica o ganho de brilho no mapeamento de tons VPP. O valor recomendado é 16.",
- "ThemeSong": "Banda sonora do tema",
- "Featurette": "Destaque",
+ "LabelVppTonemappingBrightness": "Ganho de brilho do mapeamento de tons VPP",
+ "LabelVppTonemappingBrightnessHelp": "Aplicar ganho de brilho no mapeamento de tons VPP. O valor recomendado é 16.",
+ "ThemeSong": "Música Tema",
+ "Featurette": "Featurette",
"Scene": "Cena",
"Sample": "Amostra",
- "ThemeVideo": "Vídeo do tema",
- "EnableSplashScreen": "Ativar imagem do ecrã de apresentação",
+ "ThemeVideo": "Vídeo Tema",
+ "EnableSplashScreen": "Ativar a imagem da tela de apresentação",
"LabelVppTonemappingContrast": "Ganho de contraste do mapeamento de tons VPP",
- "LabelVppTonemappingContrastHelp": "Aplica o ganho de contraste no mapeamento de tons VPP. O valor recomendado é 1.",
+ "LabelVppTonemappingContrastHelp": "Aplicar ganho de contraste no mapeamento de tons VPP. O valor recomendado é 1.",
"Unknown": "Desconhecido",
- "EnableIntelLowPowerHevcHwEncoder": "Habilitar codificador de hardware HEVC Intel Baixa-Potência",
- "AudioIsExternal": "O fluxo de áudio é externo",
- "MediaInfoElPresentFlag": "Sinalizador predefinido DV EL",
- "AudioProfileNotSupported": "O perfil do codec de áudio não é compatível",
- "MediaInfoDvVersionMinor": "Versão DV menor",
+ "EnableIntelLowPowerHevcHwEncoder": "Ativar codificador de hardware HEVC de baixo consumo Intel",
+ "AudioIsExternal": "O stream de áudio é externo",
+ "MediaInfoElPresentFlag": "Sinalizador de preset EL do DV",
+ "AudioProfileNotSupported": "O perfil do codec de áudio não é suportado",
+ "MediaInfoDvVersionMinor": "Versão menor do DV",
"Select": "Selecionar",
- "VideoProfileNotSupported": "O perfil do codec de vídeo não é compatível",
- "MediaInfoRpuPresentFlag": "Sinalizador predefinido DV RPU",
- "HearingImpairedShort": "Alta Definição/SDH",
+ "VideoProfileNotSupported": "O perfil do codec de vídeo não é suportado",
+ "MediaInfoRpuPresentFlag": "Sinalizador de preset RPU do DV",
+ "HearingImpairedShort": "HI/SDH",
"ForeignPartsOnly": "Apenas partes forçadas/estrangeiras",
"LabelIsHearingImpaired": "Para deficientes auditivos (SDH)",
"AudioBitrateNotSupported": "A taxa de bits do áudio não é suportada",
"AudioSampleRateNotSupported": "A taxa de amostragem do áudio não é suportada",
"VideoResolutionNotSupported": "A resolução do vídeo não é suportada",
"VideoBitDepthNotSupported": "A profundidade de bits do vídeo não é suportada",
- "VideoFramerateNotSupported": "A taxa de quadros do vídeo não é compatível",
+ "VideoFramerateNotSupported": "A taxa de quadros do vídeo não é suportada",
"UnknownVideoStreamInfo": "As informações do stream de vídeo são desconhecidas",
- "SelectAll": "Selecionar tudo",
- "LabelTonemappingMode": "Modo do mapeamento de tons",
- "TonemappingModeHelp": "Seleciona o modo de mapeamento de tons. Se notares áreas muito claras ou estouradas, experimenta mudar para o modo RGB.",
- "VideoRangeTypeNotSupported": "O tipo de gama deste vídeo não é suportado",
+ "SelectAll": "Selecionar Tudo",
+ "LabelTonemappingMode": "Modo de mapeamento de tons",
+ "TonemappingModeHelp": "Selecione o modo de mapeamento de tons. Se você experimentar realces estourados, tente mudar para o modo RGB.",
+ "VideoRangeTypeNotSupported": "O tipo de faixa do vídeo não é suportado",
"ChannelResolutionHD": "HD",
"ChannelResolutionSD": "SD",
- "AllowVideoToolboxTonemappingHelp": "Mapeamento de tons acelerado por hardware fornecido pelo VideoToolbox. Funciona com a maioria dos formatos HDR, incluindo HDR10, HDR10+ e HLG, mas não funciona com Dolby Vision Profile 5. Tem uma prioridade mais alta em comparação com outra implementação Metal.",
- "EnableVideoToolboxTonemapping": "Ativar o mapeamento de tons do VideoToolbox",
+ "AllowVideoToolboxTonemappingHelp": "Mapeamento de tons acelerado por hardware fornecido pelo VideoToolbox. Funciona com a maioria dos formatos HDR, incluindo HDR10, HDR10+ e HLG, mas não funciona com Dolby Vision Profile 5. Esta opção tem prioridade mais alta em comparação com outra implementação Metal.",
+ "EnableVideoToolboxTonemapping": "Ativar mapeamento de tons VideoToolbox",
"LabelUseReplayGainTags": "Usar etiquetas ReplayGain",
"LabelUseReplayGainTagsHelp": "Procura etiquetas replaygain nos ficheiros áudio e utiliza-as em vez de calcular o valor LUFS. (Utiliza menos poder de computação. Substitui a opção 'Verificação LUFS')",
- "AllowSubtitleManagement": "Permitir a este utilizador editar legendas",
- "DeleteName": "Eliminar {0}",
+ "AllowSubtitleManagement": "Permitir que este usuário edite legendas",
+ "DeleteName": "Excluir {0}",
"Trickplay": "Trickplay",
"AllowMjpegEncoding": "Permitir a codificação no formato MJPEG (usado durante a criação de trickplay)",
- "PriorityIdle": "Inativo",
- "LabelProcessPriority": "Prioridade do processo",
+ "PriorityIdle": "Ocioso",
+ "LabelProcessPriority": "Prioridade do Processo",
"LabelTrickplayAccelHelp": "Certifica-te de que ativas a opção \"Permitir codificação MJPEG\" em Transcodificação, se o teu hardware o suportar.",
- "PriorityAboveNormal": "Acima do normal",
+ "PriorityAboveNormal": "Acima do Normal",
"PriorityNormal": "Normal",
- "PriorityBelowNormal": "Abaixo do normal",
- "LabelTrickplayAccel": "Ativar a descodificação por hardware",
+ "PriorityBelowNormal": "Abaixo do Normal",
+ "LabelTrickplayAccel": "Ativar decodificação por hardware",
"PriorityHigh": "Alta",
"LabelJpegQualityHelp": "A qualidade de compressão JPEG para imagens trickplay.",
- "LabelImageInterval": "Intervalo de imagem",
- "LabelQscale": "Fator de qualidade (Qscale)",
+ "LabelImageInterval": "Intervalo de Imagem",
+ "LabelQscale": "Qscale",
"LabelImageIntervalHelp": "Intervalo de tempo (ms) entre cada nova imagem trickplay.",
- "LabelScanBehaviorHelp": "O comportamento predefinido é não bloqueante, o que faz com que os ficheiros multimédia sejam adicionados à biblioteca antes da geração do trickplay estar concluída. O modo bloqueante assegura que os ficheiros trickplay são gerados antes dos ficheiros multimédia serem adicionados à biblioteca, mas tornará as análises significativamente mais demoradas.",
- "LabelWidthResolutions": "Resoluções de largura",
- "LabelTileWidth": "Largura do mosaico",
- "LabelWidthResolutionsHelp": "Lista separada por vírgulas das larguras (px) em que serão geradas as imagens trickplay. Todas as imagens devem ser geradas proporcionalmente à fonte, por isso um vídeo 16:9 com uma largura de 320 acabará por ter cerca de 320x180.",
- "LabelTrickplayThreadsHelp": "O número de threads a passar para o argumento '-threads' do ffmpeg.",
- "LabelQscaleHelp": "A escala de qualidade das imagens produzidas pelo ffmpeg, sendo 2 a qualidade mais elevada e 31 a mais baixa.",
- "OptionExtractTrickplayImage": "Ativar a extração de imagens trickplay",
- "LabelProcessPriorityHelp": "Definir este valor mais baixo ou mais alto determinará como o CPU prioriza o processo de geração de trickplay do ffmpeg em relação a outros processos. Se notares lentidão enquanto geras imagens de trickplay mas não queres parar completamente a sua geração, tenta baixar este valor, bem como a contagem de threads.",
- "LabelTileHeight": "Altura do mosaico",
+ "LabelScanBehaviorHelp": "O comportamento padrão é não bloqueante, o que adicionará mídia à biblioteca antes que a geração de trickplay seja concluída. O bloqueante garantirá que os arquivos trickplay sejam gerados antes que a mídia seja adicionada à biblioteca, mas tornará as verificações significativamente mais longas.",
+ "LabelWidthResolutions": "Resoluções de Largura",
+ "LabelTileWidth": "Largura do Tile",
+ "LabelWidthResolutionsHelp": "Lista separada por vírgulas das larguras (px) que as imagens trickplay serão geradas. Todas as imagens devem ser geradas proporcionalmente à fonte, então uma largura de 320 em um vídeo 16:9 termina em cerca de 320x180.",
+ "LabelTrickplayThreadsHelp": "O número de threads a serem passadas para o argumento '-threads' do ffmpeg.",
+ "LabelQscaleHelp": "A escala de qualidade das imagens geradas pelo ffmpeg, sendo 2 a mais alta qualidade e 31 a mais baixa.",
+ "OptionExtractTrickplayImage": "Ativar extração de imagem trickplay",
+ "LabelProcessPriorityHelp": "Definir isso mais baixo ou mais alto determinará como a CPU prioriza o processo de geração de trickplay do ffmpeg em relação a outros processos. Se você notar lentidão ao gerar imagens trickplay, mas não quiser interromper completamente a geração, tente diminuir isso e também a contagem de threads.",
+ "LabelTileHeight": "Altura do Tile",
"LabelJpegQuality": "Qualidade JPEG",
- "LabelTileHeightHelp": "Número máximo de imagens por mosaico na direção Y.",
- "LabelTileWidthHelp": "Número máximo de imagens por mosaico na direção X.",
- "ExtractTrickplayImagesHelp": "As imagens Trickplay são semelhantes às imagens dos capítulos, exceto pelo facto de abrangerem toda a extensão do conteúdo e serem utilizadas para mostrar uma pré-visualização ao percorrer os vídeos.",
- "AllowContentWithTagsHelp": "Mostrar apenas os conteúdos multimédia com pelo menos uma das etiquetas especificadas.",
- "BlockContentWithTagsHelp": "Ocultar os conteúdos multimédia com pelo menos uma das etiquetas especificadas.",
- "ButtonEditUser": "Editar utilizador",
- "EncodingFormatHelp": "Seleciona a codificação de vídeo para a qual o Jellyfin deve transcodificar. O Jellyfin usará a codificação de software quando a aceleração de hardware para o formato selecionado não estiver disponível. A codificação H264 será sempre ativada.",
+ "LabelTileHeightHelp": "Número máximo de imagens por tile na direção Y.",
+ "LabelTileWidthHelp": "Número máximo de imagens por tile na direção X.",
+ "ExtractTrickplayImagesHelp": "Imagens trickplay são semelhantes às imagens de capítulo, exceto que abrangem toda a extensão do conteúdo e são usadas para mostrar uma prévia ao passar rapidamente por vídeos.",
+ "AllowContentWithTagsHelp": "Exibir apenas mídias com pelo menos uma das tags especificadas.",
+ "BlockContentWithTagsHelp": "Ocultar mídias com pelo menos uma das tags especificadas.",
+ "ButtonEditUser": "Editar usuário",
+ "EncodingFormatHelp": "Selecione a codificação de vídeo que o Jellyfin deve transcodificar. O Jellyfin usará codificação por software quando a aceleração de hardware para o formato selecionado não estiver disponível. A codificação H264 será sempre ativada.",
"LabelEncodingFormatOptions": "Opções de formato de codificação",
"AirPlay": "AirPlay",
- "LimitSupportedVideoResolutionHelp": "Utiliza 'Resolução máxima permitida para transcodificação de vídeo' como resolução máxima de vídeo suportada.",
- "EnableLibraryHelp": "Se desativares a biblioteca, ela será ocultada de todas as visualizações do utilizador.",
+ "LimitSupportedVideoResolutionHelp": "Usar 'Resolução máxima permitida para transcodificação de vídeo' como resolução máxima de vídeo suportada.",
+ "EnableLibraryHelp": "Desativar a biblioteca a ocultará de todas as visualizações de usuários.",
"EnableLibrary": "Ativar a biblioteca",
- "LabelTrickplayAccelEncodingHelp": "Atualmente apenas disponível em QSV, VA-API, VideoToolbox e RKMPP, esta opção não tem efeito noutros métodos de aceleração de hardware.",
- "LabelTrickplayAccelEncoding": "Ativar a codificação MJPEG acelerada por hardware",
- "ConfirmDeleteLyrics": "A eliminação destas letras irá eliminá-las do sistema de ficheiros e da tua biblioteca multimédia. Tens a certeza de que queres continuar?",
+ "LabelTrickplayAccelEncodingHelp": "Atualmente disponível apenas no QSV, VA-API, VideoToolbox e RKMPP, esta opção não tem efeito em outros métodos de aceleração de hardware.",
+ "LabelTrickplayAccelEncoding": "Ativar codificação MJPEG acelerada por hardware",
+ "ConfirmDeleteLyrics": "Excluir estas letras irá removê-las do sistema de arquivos e da sua biblioteca de mídia. Tem certeza de que deseja continuar?",
"ChannelResolutionFullHD": "Full HD",
"ChannelResolutionUHD4K": "UHD (4K)",
"ChannelResolutionSDPAL": "SD (PAL)",
- "ConfirmDeleteSeries": "A eliminação desta série elimina TODOS os {0} episódios do sistema de ficheiros e da tua biblioteca multimédia. Tens a certeza de que queres continuar?",
- "LabelScanBehavior": "Comportamento de análise",
- "LabelTrickplayThreads": "Threads FFmpeg",
+ "ConfirmDeleteSeries": "Excluir esta série irá remover TODOS os {0} episódios do sistema de arquivos e da sua biblioteca de mídia. Tem certeza de que deseja continuar?",
+ "LabelScanBehavior": "Comportamento da Verificação",
+ "LabelTrickplayThreads": "Threads do FFmpeg",
"Lyric": "Letra",
- "PlaybackError.FATAL_HLS_ERROR": "Foi encontrado um erro fatal na transmissão HLS.",
- "PlaybackError.MEDIA_DECODE_ERROR": "A reprodução falhou devido a um erro ao descodificar o conteúdo.",
- "PlaybackError.MEDIA_NOT_SUPPORTED": "A reprodução falhou porque o conteúdo não é suportado por este cliente.",
+ "PlaybackError.FATAL_HLS_ERROR": "Um erro fatal foi encontrado no stream HLS.",
+ "PlaybackError.MEDIA_DECODE_ERROR": "A reprodução falhou devido a um erro na decodificação da mídia.",
+ "PlaybackError.MEDIA_NOT_SUPPORTED": "A reprodução falhou porque a mídia não é suportada por este cliente.",
"PlaybackError.NETWORK_ERROR": "A reprodução falhou devido a um erro de rede.",
- "PlaybackError.NO_MEDIA_ERROR": "Não foi possível encontrar uma fonte multimédia válida para reproduzir.",
- "PlaybackError.PLAYER_ERROR": "A reprodução falhou devido a um erro fatal do leitor.",
- "PlaybackError.RateLimitExceeded": "Este conteúdo não pode ser reproduzido neste momento devido aos limites de velocidade.",
- "DeleteSeries": "Eliminar séries",
- "PlaybackError.NotAllowed": "A reprodução deste conteúdo não é permitida.",
- "EnableSmoothScroll": "Ativar deslocação suave",
+ "PlaybackError.NO_MEDIA_ERROR": "Não foi possível encontrar uma fonte de mídia válida para reproduzir.",
+ "PlaybackError.PLAYER_ERROR": "A reprodução falhou devido a um erro fatal no player.",
+ "PlaybackError.RateLimitExceeded": "Esta mídia não pode ser reproduzida no momento devido a limites de taxa.",
+ "DeleteSeries": "Excluir série",
+ "PlaybackError.NotAllowed": "A reprodução desta mídia não é permitida.",
+ "EnableSmoothScroll": "Ativar rolagem suave",
"LimitSupportedVideoResolution": "Limitar a resolução máxima de vídeo suportada",
- "PlaybackError.SERVER_ERROR": "A reprodução falhou devido a um erro do servidor.",
- "DlnaMovedMessage": "A funcionalidade DLNA foi transferida para uma extensão.",
- "DeleteEntireSeries": "Eliminar {0} episódios",
- "DeleteEpisode": "Eliminar episódio",
- "HeaderDeleteSeries": "Eliminar séries",
- "LabelAllowContentWithTags": "Permitir items com etiquetas",
+ "PlaybackError.SERVER_ERROR": "A reprodução falhou devido a um erro no servidor.",
+ "DlnaMovedMessage": "A funcionalidade DLNA foi movida para um plugin.",
+ "DeleteEntireSeries": "Excluir {0} episódios",
+ "DeleteEpisode": "Excluir episódio",
+ "HeaderDeleteSeries": "Excluir Série",
+ "LabelAllowContentWithTags": "Permitir itens com tags",
"Lyrics": "Letras",
"ViewLyrics": "Ver letras",
- "DeleteLyrics": "Eliminar letras",
- "ErrorDeletingLyrics": "Ocorreu um erro ao eliminar as letras do servidor. Verifica se o Jellyfin tem acesso de escrita à pasta multimédia e tenta novamente.",
- "HeaderDeleteLyrics": "Eliminar letras",
+ "DeleteLyrics": "Excluir letras",
+ "ErrorDeletingLyrics": "Ocorreu um erro ao excluir as letras do servidor. Verifique se o Jellyfin tem acesso de gravação à pasta de mídia e tente novamente.",
+ "HeaderDeleteLyrics": "Excluir Letras",
"HeaderNoLyrics": "Nenhuma letra encontrada",
- "BlockingScan": "Bloqueante - coloca a geração em fila de espera, bloqueia a análise até ser concluída",
- "NonBlockingScan": "Não bloqueante - coloca a geração em fila de espera e depois regressa",
- "LabelExtractTrickplayDuringLibraryScan": "Extrair imagens trickplay durante a análise da biblioteca",
- "LabelExtractTrickplayDuringLibraryScanHelp": "Gerar imagens trickplay quando os vídeos são importados durante a análise da biblioteca. Caso contrário, as imagens serão extraídas durante a tarefa agendada de imagens trickplay. Se a geração estiver definida como não bloqueante, isto não afetará o tempo que a análise da biblioteca demora a concluir.",
- "PlaybackError.ASS_RENDER_ERROR": "Foi encontrado um erro no renderizador de legendas ASS/SSA.",
- "SavePassword": "Guardar palavra-passe",
+ "BlockingScan": "Bloqueante - gera fila, bloqueia verificação até completar",
+ "NonBlockingScan": "Não Bloqueante - gera fila, depois retorna",
+ "LabelExtractTrickplayDuringLibraryScan": "Extrair imagens trickplay durante a verificação da biblioteca",
+ "LabelExtractTrickplayDuringLibraryScanHelp": "Gerar imagens trickplay ao importar vídeos durante a verificação da biblioteca. Caso contrário, elas serão extraídas durante a tarefa agendada de imagens trickplay. Se a geração estiver definida como não bloqueante, isso não afetará o tempo que uma verificação da biblioteca leva para ser concluída.",
+ "PlaybackError.ASS_RENDER_ERROR": "Um erro foi encontrado no renderizador de legendas ASS/SSA.",
+ "SavePassword": "Salvar Senha",
"Author": "Autor",
"Colorist": "Colorista",
"CoverArtist": "Artista da capa",
@@ -1869,191 +1869,191 @@
"Editor": "Editor",
"Illustrator": "Ilustrador",
"EnableDts": "Ativar DTS (DCA)",
- "EnableDtsHelp": "Ativar apenas se o dispositivo suportar DTS ou estiver ligado a um recetor de áudio compatível; caso contrário, pode provocar falhas de reprodução.",
+ "EnableDtsHelp": "Ative apenas se o seu dispositivo suportar DTS ou estiver conectado a um receptor de áudio compatível, caso contrário, pode causar falha na reprodução.",
"EnableTrueHd": "Ativar TrueHD",
- "EnableTrueHdHelp": "Ativar apenas se o dispositivo suportar TrueHD ou estiver ligado a um recetor de áudio compatível; caso contrário, pode provocar falhas de reprodução.",
- "HeaderVideoAdvanced": "Definições avançadas de vídeo",
- "HeaderLyricDownloads": "Descarregar letras",
- "Letterer": "Letrista",
+ "EnableTrueHdHelp": "Ative apenas se o seu dispositivo suportar TrueHD ou estiver conectado a um receptor de áudio compatível, caso contrário, pode causar falha na reprodução.",
+ "HeaderVideoAdvanced": "Vídeo Avançado",
+ "HeaderLyricDownloads": "Downloads de Letras",
+ "Letterer": "Letterer",
"LabelSelectPreferredTranscodeVideoAudioCodec": "Codec de áudio de transcodificação preferido na reprodução de vídeo",
- "SelectPreferredTranscodeVideoAudioCodecHelp": "Seleciona o codec de áudio preferido para transcodificar o conteúdo de vídeo. Se o codec preferido não for suportado, o servidor utilizará o próximo melhor codec disponível.",
- "LibraryScanFanoutConcurrencyHelp": "Número máximo de tarefas paralelas durante as análises da biblioteca. Se deixares este campo vazio, será escolhido um limite com base no número de núcleos do teu sistema. AVISO: Definir um valor demasiado elevado pode causar problemas com sistemas de ficheiros em rede; se encontrares problemas, reduz este número.",
- "LibraryScanFanoutConcurrency": "Limite de tarefas paralelas de análise da biblioteca",
- "PlaylistPublicDescription": "Permitir que esta playlist seja vista por qualquer utilizador com sessão iniciada.",
+ "SelectPreferredTranscodeVideoAudioCodecHelp": "Selecione o codec de áudio preferido para transcodificar para conteúdo de vídeo. Se o codec preferido não for suportado, o servidor usará o próximo codec disponível.",
+ "LibraryScanFanoutConcurrencyHelp": "Número máximo de tarefas em paralelo durante as verificações da biblioteca. Deixar isso vazio escolherá um limite com base na contagem de núcleos do seu sistema. AVISO: Definir esse número muito alto pode causar problemas com sistemas de arquivos de rede; se você encontrar problemas, diminua esse número.",
+ "LibraryScanFanoutConcurrency": "Limite de tarefas de verificação de biblioteca em paralelo",
+ "PlaylistPublicDescription": "Permitir que esta playlist seja vista por qualquer usuário logado.",
"PlaylistPublic": "Permitir acesso público",
- "SaveLyricsIntoMediaFoldersHelp": "Guardar letras junto a ficheiros de áudio permiti-las-á ser mais facilmente geridas.",
+ "SaveLyricsIntoMediaFoldersHelp": "Armazenar letras ao lado de arquivos de áudio permitirá que sejam gerenciadas mais facilmente.",
"PlaylistError.AddFailed": "Erro ao adicionar à playlist",
- "PlaylistError.CreateFailed": "Erro ao criar a playlist",
+ "PlaylistError.CreateFailed": "Erro ao criar playlist",
"Translator": "Tradutor",
- "Inker": "Tinteiro",
- "Alternate": "Alternar",
- "AlternateDVD": "DVD alternativo",
- "Penciller": "Lapiseira",
+ "Inker": "Inker",
+ "Alternate": "Alternativo",
+ "AlternateDVD": "DVD Alternativo",
+ "Penciller": "Penciler",
"Regional": "Regional",
- "SaveLyricsIntoMediaFolders": "Guardar letras em pastas multimédia",
- "LabelSelectPreferredTranscodeVideoCodec": "Codec de vídeo transcodificado preferido",
- "SelectPreferredTranscodeVideoCodecHelp": "Seleciona o codec de vídeo preferido para transcodificar. Se o codec preferido não for suportado, o servidor utilizará o próximo melhor codec disponível.",
+ "SaveLyricsIntoMediaFolders": "Salvar letras nas pastas de mídia",
+ "LabelSelectPreferredTranscodeVideoCodec": "Codec de vídeo de transcodificação preferido",
+ "SelectPreferredTranscodeVideoCodecHelp": "Selecione o codec de vídeo preferido para transcodificar. Se o codec preferido não for suportado, o servidor usará o próximo codec disponível.",
"HeaderNextItem": "Seguinte {0}",
- "EditLyrics": "Editar letra",
- "HeaderAddLyrics": "Adicionar letra",
- "HeaderPreviewLyrics": "Pré-visualizar letra",
- "LabelScreensaverTimeHelp": "A quantidade de tempo, em segundos, de inatividade necessária para iniciar a proteção de ecrã.",
+ "EditLyrics": "Editar letras",
+ "HeaderAddLyrics": "Adicionar Letras",
+ "HeaderPreviewLyrics": "Visualizar Letras",
+ "LabelScreensaverTimeHelp": "A quantidade de tempo em segundos de inatividade necessária para iniciar o protetor de tela.",
"LabelDuration": "Duração",
- "LabelDisableVbrAudioEncoding": "Desativar a codificação de áudio VBR",
- "LabelEnablePlugin": "Ativar extensão",
- "LabelDelimiterWhitelistHelp": "Itens a ser excluídos da separação de etiquetas. Um item por linha.",
- "LabelDropLyricsHere": "Arrasta e larga a letra aqui, ou clica para explorar.",
- "MediaSegmentSkipPrompt": "Saltar {0}",
- "MediaSegmentAction.Skip": "Saltar",
- "MediaSegmentAction.AskToSkip": "Pedir para saltar",
- "MediaSegmentType.Commercial": "Publicidade",
- "SearchForLyrics": "Procurar letras",
+ "LabelDisableVbrAudioEncoding": "Desativar codificação de áudio VBR",
+ "LabelEnablePlugin": "Ativar plugin",
+ "LabelDelimiterWhitelistHelp": "Itens a serem excluídos da divisão de tags. Um item por linha.",
+ "LabelDropLyricsHere": "Solte as letras aqui, ou clique para navegar.",
+ "MediaSegmentSkipPrompt": "Pular {0}",
+ "MediaSegmentAction.Skip": "Pular",
+ "MediaSegmentAction.AskToSkip": "Perguntar antes de pular",
+ "MediaSegmentType.Commercial": "Comercial",
+ "SearchForLyrics": "Pesquisar letras",
"NoLyricsSearchResultsFound": "Nenhuma letra encontrada.",
"MediaSegmentType.Intro": "Introdução",
- "EnableHi10pHelp": "Ativa para evitar a transcodificação de vídeos H.264 de 10 bits. Desativa esta opção se o vídeo apresentar quadros em branco.",
- "LyricDownloadersHelp": "Ativa e classifica os teus fornecedores de letras preferidos por ordem de prioridade.",
- "AlwaysRemuxMp3AudioFilesHelp": "Se tiveres ficheiros que o teu navegador calcula de forma imprecisa os registos de data/hora, ativa esta opção como solução alternativa.",
- "AlwaysRemuxFlacAudioFilesHelp": "Se tiveres ficheiros que o teu navegador recusar reproduzir ou em que calcula incorretamente os registos de data/hora, ativa esta opção como solução alternativa.",
+ "EnableHi10pHelp": "Ative para evitar a transcodificação de vídeos H.264 de 10 bits. Desative esta opção se o vídeo apresentar quadros em branco.",
+ "LyricDownloadersHelp": "Ative e classifique seus baixadores de letras preferidos por ordem de prioridade.",
+ "AlwaysRemuxMp3AudioFilesHelp": "Se arquivos MP3 apresentarem problemas de tempo no navegador, ative esta opção como solução temporária.",
+ "AlwaysRemuxFlacAudioFilesHelp": "Se arquivos FLAC não tocarem no navegador ou apresentarem problemas de tempo, ative esta opção como solução temporária.",
"HeaderNextItemPlayingInValue": "{0} seguinte em {1}",
- "HeaderNewPlaylist": "Nova playlist",
- "UseCustomTagDelimiters": "Utilizar delimitador de etiquetas personalizado",
- "UseCustomTagDelimitersHelp": "Divide etiquetas de artistas/género com carateres personalizados.",
- "LabelTrickplayKeyFrameOnlyExtraction": "Gerar imagens apenas de fotogramas-chave",
- "VideoCodecTagNotSupported": "A etiqueta do codec de vídeo não é suportada",
+ "HeaderNewPlaylist": "Nova Playlist",
+ "UseCustomTagDelimiters": "Usar delimitador de tag personalizado",
+ "UseCustomTagDelimitersHelp": "Dividir tags de artista/gênero com caracteres personalizados.",
+ "LabelTrickplayKeyFrameOnlyExtraction": "Gerar imagens apenas a partir de quadros-chave",
+ "VideoCodecTagNotSupported": "O tag do codec de vídeo não é suportado",
"AndOtherArtists": "{0} e {1} outros artistas.",
- "MoviesAndShows": "Filmes e séries",
- "Anime": "Animé",
- "AlwaysBurnInSubtitleWhenTranscodingHelp": "Incorpora todas as legendas quando a transcodificação é acionada. Isto assegura que as legendas são sincronizadas após a transcodificação, à custa de uma velocidade de transcodificação reduzida.",
- "AllowTonemappingSoftwareHelp": "O mapeamento de tons pode transformar a gama dinâmica de um vídeo de HDR para SDR, mantendo os detalhes e cores da imagens, que são informações muito importantes para representar a cena original. De momento, funciona apenas com vídeos HDR10 de 10 bits, HLG e DoVi.",
- "AlwaysBurnInSubtitleWhenTranscoding": "Incorporar sempre legendas durante a transcodificação",
- "DateModified": "Data de modificação",
- "AllowFmp4TranscodingContainerHelp": "Permite que o container de transcodificação fMP4 para este sintonizador permita conteúdos HEVC e HDR. Nem todos os sintonizadores são compatíveis com este container. Desativa-o se tiveres problemas de reprodução.",
- "AllowStreamSharingHelp": "Permite que o Jellyfin duplique a transmissão mpegts do sintonizador e partilhe esta transmissão duplicada aos seus clientes. Isto é útil quando o sintonizador tem um limite de contagens de transmissões totais mas pode também causar problemas de reprodução.",
- "EnableHi10p": "Ativar o perfil H.264 High 10",
- "DisableVbrAudioEncodingHelp": "Impedir que o servidor codifique o áudio com VBR para este cliente.",
- "LabelAllowFmp4TranscodingContainer": "Permitir o container de transcodificação fMP4",
- "HeaderAudioAdvanced": "Definições avançadas de áudio",
- "HeaderNextEpisode": "Próximo episódio",
- "HeaderNextVideo": "Próximo vídeo",
- "HeaderEditPlaylist": "Editar playlist",
- "HeaderUploadLyrics": "Fazer upload da letra",
- "LabelAlwaysRemuxFlacAudioFiles": "Fazer sempre remux de ficheiros de áudio FLAC",
- "HeaderMediaSegmentActions": "Ações de segmentos de multimédia",
- "FallbackMaxStreamingBitrateHelp": "A taxa de bits máxima de transmissão é usada como um recurso quando o ffprobe não consegue determinar a taxa de bits da transmissão de origem. Isso ajuda a evitar que os clientes solicitem uma taxa de bits de transcodificação excessivamente alta, o que poderia fazer com que o leitor falhasse e sobrecarregasse o codificador.",
- "LabelAudioTagSettings": "Definições de etiquetas de áudio",
- "LabelSaveTrickplayLocally": "Guardar miniaturas de pré-visualização (trickplay) junto aos ficheiros de multimédia",
- "LabelSaveTrickplayLocallyHelp": "As miniaturas de pré-visualização (trickplay) serão guardadas junto aos ficheiros de multimédia, o que facilita a migração e o acesso.",
- "LabelAllowStreamSharing": "Permitir partilha de transmissão",
- "LabelLyricDownloaders": "Fornecedores de letras",
- "LabelNoChangelog": "Nenhum registo de alterações foi disponibilizado para esta versão.",
+ "MoviesAndShows": "Filmes e Programas",
+ "Anime": "Anime",
+ "AlwaysBurnInSubtitleWhenTranscodingHelp": "Embutir todas as legendas ao transcodificar. Garante sincronização das legendas, mas pode reduzir a velocidade da transcodificação.",
+ "AllowTonemappingSoftwareHelp": "O tone-mapping transforma o alcance dinâmico de um vídeo de HDR para SDR mantendo detalhes e cores. Funciona apenas com vídeos HDR10, HLG e DoVi de 10 bits.",
+ "AlwaysBurnInSubtitleWhenTranscoding": "Sempre embutir legendas ao transcodificar",
+ "DateModified": "Data modificada",
+ "AllowFmp4TranscodingContainerHelp": "Permite o uso do contêiner fMP4 para este sintonizador, habilitando conteúdos HEVC e HDR. Nem todos os sintonizadores são compatíveis. Desative se tiver problemas de reprodução.",
+ "AllowStreamSharingHelp": "Permite que o Jellyfin duplique o fluxo mpegts do sintonizador e compartilhe com os clientes. Útil quando há limite de streams no sintonizador, mas pode causar problemas de reprodução.",
+ "EnableHi10p": "Ativar H.264 High 10 Profile",
+ "DisableVbrAudioEncodingHelp": "Impedir que o servidor codifique áudio com VBR para este cliente.",
+ "LabelAllowFmp4TranscodingContainer": "Permitir contêiner de transcodificação fMP4",
+ "HeaderAudioAdvanced": "Áudio Avançado",
+ "HeaderNextEpisode": "Próximo Episódio",
+ "HeaderNextVideo": "Próximo Vídeo",
+ "HeaderEditPlaylist": "Editar Playlist",
+ "HeaderUploadLyrics": "Enviar Letras",
+ "LabelAlwaysRemuxFlacAudioFiles": "Sempre remuxar arquivos de áudio FLAC",
+ "HeaderMediaSegmentActions": "Ações de Segmento de Mídia",
+ "FallbackMaxStreamingBitrateHelp": "A taxa máxima de streaming é usada como um fallback quando o ffprobe não consegue determinar a taxa de bits do stream de origem. Isso ajuda a evitar que os clientes solicitem uma taxa de transcodificação excessivamente alta, o que pode fazer o player falhar e sobrecarregar o codificador.",
+ "LabelAudioTagSettings": "Configurações de Tag de Áudio",
+ "LabelSaveTrickplayLocally": "Salvar imagens trickplay ao lado da mídia",
+ "LabelSaveTrickplayLocallyHelp": "Salvar imagens trickplay nas pastas de mídia as colocará ao lado da sua mídia para fácil migração e acesso.",
+ "LabelAllowStreamSharing": "Permitir compartilhamento de stream",
+ "LabelLyricDownloaders": "Baixadores de letras",
+ "LabelNoChangelog": "Nenhum registro de alterações fornecido para este lançamento.",
"LabelNotInstalled": "Não instalado",
- "LabelCustomTagDelimiters": "Delimitador de Etiqueta personalizado",
- "LabelCustomTagDelimitersHelp": "Carateres considerados como delimitadores para separar etiquetas.",
- "LabelDelimiterWhitelist": "Lista de delimitadores permitidos",
- "LabelFallbackMaxStreamingBitrate": "Taxa de bits máxima por omissão (Mbps)",
- "LabelIsSynced": "Está sincronizado",
- "LabelAlwaysRemuxMp3AudioFiles": "Remuxar sempre ficheiros de áudio MP3",
+ "LabelCustomTagDelimiters": "Delimitador de Tag Personalizado",
+ "LabelCustomTagDelimitersHelp": "Caracteres a serem tratados como delimitadores para separar tags.",
+ "LabelDelimiterWhitelist": "Lista branca de delimitadores",
+ "LabelFallbackMaxStreamingBitrate": "Taxa máxima de stream de fallback (Mbps)",
+ "LabelIsSynced": "Está Sincronizado",
+ "LabelAlwaysRemuxMp3AudioFiles": "Sempre remuxar arquivos de áudio MP3",
"LabelInstalled": "Instalado",
- "LabelMediaSegmentsType": "{0} segmentos",
+ "LabelMediaSegmentsType": "{0} Segmentos",
"LabelRepository": "Repositório",
"LabelQsvDevice": "Dispositivo QSV",
- "LabelQsvDeviceHelp": "Especifica o dispositivo para Intel QSV num sistema multi-GPU. Em Linux, este é o nó de renderização, por exemplo, /dev/dri/renderD128. Em Windows, este é o índice do dispositivo, começando do 0. Deixa em branco a não ser que saibas o que está a fazer.",
- "MessageCancelSeriesTimerError": "Ocorreu um erro ao cancelar o temporizador da série",
+ "LabelQsvDeviceHelp": "Especifique o dispositivo para Intel QSV em um sistema com múltiplas GPUs. No Linux, este é o nó de renderização, por exemplo, /dev/dri/renderD128. No Windows, este é o índice do dispositivo começando de 0. Deixe em branco, a menos que você saiba o que está fazendo.",
+ "MessageCancelSeriesTimerError": "Ocorreu um erro ao cancelar o timer da série",
"MediaSegmentAction.None": "Nenhum",
- "PluginDisableError": "Ocorreu um erro ao desativar a extensão.",
- "PluginUninstallError": "Ocorreu um erro ao desinstalar a extensão.",
- "LibraryInvalidItemIdError": "A biblioteca está num estado inválido e não pode ser editada. É possível que esteja a encontrar um erro: o caminho na base de dados não é o caminho correto no sistema de ficheiros.",
- "PreferNonstandardArtistsTag": "Preferir a etiqueta ARTISTS se disponível",
- "LabelScreensaverTime": "Tempo de proteção de ecrã",
- "MessageSplitVersionsError": "Ocorreu um erro ao separar as versões",
- "PluginEnableError": "Ocorreu um erro ao ativar a extensão.",
+ "PluginDisableError": "Ocorreu um erro ao desativar o plugin.",
+ "PluginUninstallError": "Ocorreu um erro ao desinstalar o plugin.",
+ "LibraryInvalidItemIdError": "A biblioteca está em um estado inválido e não pode ser editada. Você pode estar enfrentando um bug: o caminho no banco de dados não é o caminho correto no sistema de arquivos.",
+ "PreferNonstandardArtistsTag": "Preferir tag ARTISTS se disponível",
+ "LabelScreensaverTime": "Tempo do protetor de tela",
+ "MessageSplitVersionsError": "Ocorreu um erro ao dividir versões",
+ "PluginEnableError": "Ocorreu um erro ao ativar o plugin.",
"MediaInfoRotation": "Rotação",
"MediaSegmentType.Recap": "Recapitulação",
- "MediaSegmentType.Preview": "Pré-visualização",
- "MediaSegmentType.Outro": "Créditos",
- "MoveToBottom": "Mover para o fundo",
- "MoveToTop": "Mover para o início",
- "PasswordMissingSaveError": "A nova palavra-passe não pode estar vazia.",
- "PluginLoadConfigError": "Ocorreu um erro ao obter as páginas de configuração da extensão.",
- "PluginLoadRepoError": "Ocorreu um erro ao obter os detalhes da extensão a partir do repositório.",
- "PlaylistError.UpdateFailed": "Erro ao atualizar a playlist",
- "MessageCancelTimerError": "Ocorreu um erro ao cancelar o temporizador",
- "ReplaceTrickplayImages": "Substituir imagens de trickplay existentes",
- "Reset": "Repor",
- "PreferNonstandardArtistsTagHelp": "Utiliza a etiqueta não normalizada ARTISTS em vez da etiqueta ARTIST quando disponível.",
+ "MediaSegmentType.Preview": "Prévia",
+ "MediaSegmentType.Outro": "Conclusão",
+ "MoveToBottom": "Mover para baixo",
+ "MoveToTop": "Mover para cima",
+ "PasswordMissingSaveError": "A nova senha não pode estar vazia.",
+ "PluginLoadConfigError": "Ocorreu um erro ao obter as páginas de configuração do plugin.",
+ "PluginLoadRepoError": "Ocorreu um erro ao obter os detalhes do plugin do repositório.",
+ "PlaylistError.UpdateFailed": "Erro ao atualizar playlist",
+ "MessageCancelTimerError": "Ocorreu um erro ao cancelar o timer",
+ "ReplaceTrickplayImages": "Substituir imagens trickplay existentes",
+ "Reset": "Redefinir",
+ "PreferNonstandardArtistsTagHelp": "Usar a tag ARTISTS não padrão em vez da tag ARTIST quando disponível.",
"RenderPgsSubtitle": "Renderização experimental de legendas PGS",
- "PreviewLyrics": "Pré-visualizar letra",
- "RenderPgsSubtitleHelp": "Determina se o cliente deve renderizar legendas PGS em vez de utilizar legendas embebidas. Isto pode evitar a transcodificação do lado do servidor em troca de desempenho de renderização do lado do cliente.",
- "LabelMediaSegmentProviders": "Fornecedores de segmentos de multimédia",
- "MediaSegmentProvidersHelp": "Ativa e classifica os teus fornecedores de segmentos de multimédia preferidos por ordem de prioridade.",
- "LabelTrickplayKeyFrameOnlyExtractionHelp": "Extrai somente os fotogramas-chave para um processamento significativamente mais rápido com temporização menos precisa. Se o descodificador de hardware configurado não suportar esse modo, será utilizado o descodificador de software.",
- "AutoSubtitleStylingHelp": "Este modo alterna automaticamente entre os mecanismos de estilo de legendas nativo e personalizado com base no teu tipo de dispositivo.",
+ "PreviewLyrics": "Visualizar Letras",
+ "RenderPgsSubtitleHelp": "Determina se o cliente deve renderizar legendas PGS em vez de usar legendas embutidas. Isso pode evitar a transcodificação do lado do servidor em troca de desempenho de renderização do lado do cliente.",
+ "LabelMediaSegmentProviders": "Provedores de segmento de mídia",
+ "MediaSegmentProvidersHelp": "Ative e classifique seus provedores de segmento de mídia preferidos por ordem de prioridade.",
+ "LabelTrickplayKeyFrameOnlyExtractionHelp": "Extrair apenas quadros-chave para processamento significativamente mais rápido com menor precisão de tempo. Se o decodificador de hardware configurado não suportar este modo, será usado o decodificador de software.",
+ "AutoSubtitleStylingHelp": "Este modo alterna automaticamente entre os estilos nativos e personalizados de legendas, conforme o tipo do seu dispositivo.",
"Custom": "Personalizado",
- "CustomSubtitleStylingHelp": "O estilo de legendas funciona na maioria dos dispositivos, mas tem uma sobrecarga de desempenho adicional.",
- "LabelSubtitleStyling": "Estilo de legendas",
+ "CustomSubtitleStylingHelp": "O estilo de legenda funcionará na maioria dos dispositivos, mas vem com uma sobrecarga de desempenho adicional.",
+ "LabelSubtitleStyling": "Estilo da legenda",
"Native": "Nativo",
- "NativeSubtitleStylingHelp": "O estilo de legenda não funcionará em alguns dispositivos. No entanto, não tem qualquer sobrecarga de desempenho.",
+ "NativeSubtitleStylingHelp": "O estilo de legenda não funcionará em alguns dispositivos. No entanto, não vem com nenhuma sobrecarga de desempenho.",
"LabelDevice": "Dispositivo",
"LastActive": "Última atividade",
- "DeleteServerConfirmation": "Tens a certeza de que queres eliminar este servidor?",
+ "DeleteServerConfirmation": "Tem certeza de que deseja excluir este servidor?",
"LibraryNameInvalid": "O nome da biblioteca não pode estar vazio.",
- "MetadataNfoLoadError": "Falha ao carregar as definições de metadados NFO",
- "SettingsPageLoadError": "Falha ao carregar a página de definições",
+ "MetadataNfoLoadError": "Falha ao carregar as configurações de metadados NFO",
+ "SettingsPageLoadError": "Falha ao carregar a página de configurações",
"RetryWithGlobalSearch": "Tentar novamente com uma pesquisa global",
- "StreamCountExceedsLimit": "O número de transmissões excede o limite",
- "ReadInputAtNativeFramerateHelp": "Ativar esta opção pode resolver alguns problemas, por exemplo, transmissões ao vivo que param prematuramente.",
- "ReadInputAtNativeFramerate": "Reproduzir a entrada à velocidade de fotogramas nativa",
- "LogLoadFailure": "Falha ao carregar o ficheiro de registo de alterações. É possível que atualmente esteja a ser escrito.",
- "CustomSplashScreenSize": "As imagens personalizadas devem ter uma proporção de 16x9 e um tamanho mínimo de 1920x1080.",
- "DeleteCustomImage": "Eliminar imagem personalizada",
- "ImageUploadCancelled": "Carregamento de imagens cancelado",
- "ImageUploadFailed": "Falha no carregamento da imagem",
- "ImageDeleteFailed": "Falha na eliminação da imagem",
- "PageNotFound": "Esta não é a página que procuras.",
- "UploadCustomImage": "Carregar imagem personalizada",
+ "StreamCountExceedsLimit": "O número de streams excede o limite",
+ "ReadInputAtNativeFramerateHelp": "Ativar esta opção pode resolver alguns problemas, por exemplo, streams ao vivo parando prematuramente.",
+ "ReadInputAtNativeFramerate": "Ler entrada na taxa de quadros nativa",
+ "LogLoadFailure": "Falha ao carregar o arquivo de log. Ele pode ainda estar sendo escrito ativamente.",
+ "CustomSplashScreenSize": "Imagens personalizadas devem ter uma proporção de 16x9 com tamanho mínimo de 1920x1080.",
+ "DeleteCustomImage": "Excluir imagem personalizada",
+ "ImageUploadCancelled": "Envio de imagem cancelado",
+ "ImageUploadFailed": "Falha ao enviar imagem",
+ "ImageDeleteFailed": "Falha ao excluir imagem",
+ "PageNotFound": "Esta não é a página que você está procurando.",
+ "UploadCustomImage": "Enviar Imagem Personalizada",
"HeaderPageNotFound": "Página não encontrada",
- "LabelGroupShowsIntoCollections": "Agrupar séries em coleções",
- "LabelGroupShowsIntoCollectionsHelp": "As séries de uma coleção serão apresentadas como um item agrupado quando forem apresentadas listas de séries.",
- "DisplayLoadError": "Ocorreu um erro ao carregar os dados de configuração do ecrã.",
- "MetadataImagesLoadError": "Falha ao carregar definições de metadados",
- "CopyLogSuccess": "Conteúdo do registo copiado com sucesso.",
- "LimitSegmentLength": "Utilizar segmentos HLS mais curtos",
- "LimitSegmentLengthHelp": "Ativar esta opção pode ajudar a evitar que o leitor HLS bloqueie durante a pesquisa em determinados dispositivos, como as TVs webOS.",
+ "LabelGroupShowsIntoCollections": "Agrupar programas em coleções",
+ "LabelGroupShowsIntoCollectionsHelp": "Programas em uma coleção serão exibidos como um único item agrupado ao exibir listas de programas.",
+ "DisplayLoadError": "Ocorreu um erro ao carregar os dados de configuração de exibição.",
+ "MetadataImagesLoadError": "Falha ao carregar as configurações de metadados",
+ "CopyLogSuccess": "Conteúdo do log copiado com sucesso.",
+ "LimitSegmentLength": "Usar segmentos HLS mais curtos",
+ "LimitSegmentLengthHelp": "Ativar esta opção pode ajudar a evitar que o player HLS trave durante a busca em certos dispositivos, como TVs webOS.",
"Retry": "Tentar novamente",
- "HeaderServerUnavailable": "Servidor indisponível",
- "HeaderUpdateRequired": "Atualização necessária",
- "ViewSettings": "Ver definições",
- "MessageForgotPasswordPinReset": "Introduz o PIN para concluir a redefinição da palavra-passe",
- "DownloadManager": "Transferências",
+ "HeaderServerUnavailable": "Servidor Indisponível",
+ "HeaderUpdateRequired": "Atualização Necessária",
+ "ViewSettings": "Ver configurações",
+ "MessageForgotPasswordPinReset": "Insira o PIN aqui para finalizar a redefinição da senha",
+ "DownloadManager": "Downloads",
"LiveTVPageLoadError": "Falha ao carregar a página de gravações",
- "ButtonLearnMore": "Saber mais",
- "ButtonCreateBackup": "Criar cópia de segurança",
- "BackupsPageLoadError": "Falha ao carregar página de cópias de segurança",
- "ConfirmDeleteRepository": "Apagar repositório?",
- "LabelRestore": "Restauro",
- "MessageBackupDisclaimer": "Dependendo do tamanho da mediateca, o processo de cópia de segurança poderá ser demorado.",
- "HeaderBackups": "Cópias de segurança",
- "TranscodingLoadError": "Falha ao carregar configurações de transcodificação",
+ "ButtonLearnMore": "Saiba mais",
+ "ButtonCreateBackup": "Criar backup",
+ "BackupsPageLoadError": "Falha ao carregar a página de backups",
+ "ConfirmDeleteRepository": "Excluir repositório?",
+ "LabelRestore": "Restaurar",
+ "MessageBackupDisclaimer": "Dependendo do tamanho da sua biblioteca, o processo de backup pode demorar um pouco.",
+ "HeaderBackups": "Backups",
+ "TranscodingLoadError": "Falha ao carregar as configurações de transcodificação",
"StorageType.Unknown": "Desconhecido",
"Success": "Sucesso",
- "MessageBackupInProgress": "Cópia de segurança em progresso",
+ "MessageBackupInProgress": "Backup em andamento",
"Create": "Criar",
- "DeleteRepositoryConfirmation": "Tem a certeza que pretende apagar este repositório?",
- "HeaderBackupsHelp": "Criar e restaurar cópias do servidor, incluindo metadados, legendas e miniaturas de pré-visualização.",
- "LabelBackupsUnavailable": "Sem cópias de segurança disponíveis",
- "LabelDatabase": "Base de dados",
- "LabelImageCache": "Memória cache de imagens",
- "LabelProgramData": "Dados da aplicação",
- "MessageRestoreDisclaimer": "AVISO: Você está prestes a restaurar a partir de um backup anterior. Seu servidor ficará inutilizável durante o processo e todos os novos dados criados desde o backup serão perdidos.",
+ "DeleteRepositoryConfirmation": "Tem certeza de que deseja excluir este repositório?",
+ "HeaderBackupsHelp": "Criar e restaurar instantâneas do seu servidor que podem incluir o banco de dados, metadados, legendas e trickplay.",
+ "LabelBackupsUnavailable": "Nenhum backup disponível",
+ "LabelDatabase": "Banco de dados",
+ "LabelImageCache": "Cache de Imagem",
+ "LabelProgramData": "Dados do Programa",
+ "MessageRestoreDisclaimer": "ATENÇÃO: Você está prestes a restaurar a partir de um backup anterior. Seu servidor ficará indisponível durante o processo e qualquer dado novo criado desde o backup será perdido.",
"RepositoriesPageLoadError": "Falha ao carregar repositórios",
- "PluginsLoadError": "Ocorreu um erro ao carregar os plugins.",
+ "PluginsLoadError": "Ocorreu um erro ao carregar plugins.",
"MessageRestoreInProgress": "Restauração em andamento",
"MessageRestoreSuccess": "Restauração concluída com sucesso",
"StorageType.CDRom": "CD-ROM",
- "StorageType.NoRootDirectory": "Nenhum diretório raiz",
+ "StorageType.NoRootDirectory": "Sem Diretório Raiz",
"StorageType.Ram": "RAM",
"StorageType.Removable": "Removível",
- "StorageType.Fixed": "Consertado",
- "StorageType.Network": "Network",
- "MessageWaitingForServer": "Aguardando servidor..."
+ "StorageType.Fixed": "Fixo",
+ "StorageType.Network": "Rede",
+ "MessageWaitingForServer": "Aguardando o servidor..."
}
From 93ec7af3f7c87f6301cd5d83a75576bc4611cfc4 Mon Sep 17 00:00:00 2001
From: Bill Thornton
Date: Tue, 1 Jul 2025 16:20:15 -0400
Subject: [PATCH 600/645] Fix image loading skeleton
---
src/apps/dashboard/routes/plugins/plugin.tsx | 8 +--
src/components/Image.tsx | 61 ++++++++++----------
src/components/LoadingSkeleton.tsx | 18 ++++++
3 files changed, 53 insertions(+), 34 deletions(-)
create mode 100644 src/components/LoadingSkeleton.tsx
diff --git a/src/apps/dashboard/routes/plugins/plugin.tsx b/src/apps/dashboard/routes/plugins/plugin.tsx
index 9da0a8a9c..e847b9385 100644
--- a/src/apps/dashboard/routes/plugins/plugin.tsx
+++ b/src/apps/dashboard/routes/plugins/plugin.tsx
@@ -64,13 +64,13 @@ const PluginPage: FC = () => {
const {
data: configurationPages,
isError: isConfigurationPagesError,
- isLoading: isConfigurationPagesLoading
+ isPending: isConfigurationPagesLoading
} = useConfigurationPages();
const {
data: packageInfo,
isError: isPackageInfoError,
- isLoading: isPackageInfoLoading
+ isPending: isPackageInfoLoading
} = usePackageInfo(pluginName ? {
name: pluginName,
assemblyGuid: pluginId
@@ -78,8 +78,8 @@ const PluginPage: FC = () => {
const {
data: plugins,
- isLoading: isPluginsLoading,
- isError: isPluginsError
+ isError: isPluginsError,
+ isPending: isPluginsLoading
} = usePlugins();
const isLoading =
diff --git a/src/components/Image.tsx b/src/components/Image.tsx
index 84f792722..7ab0effe9 100644
--- a/src/components/Image.tsx
+++ b/src/components/Image.tsx
@@ -2,9 +2,10 @@ import type { SvgIconComponent } from '@mui/icons-material';
import ImageNotSupported from '@mui/icons-material/ImageNotSupported';
import Box from '@mui/material/Box/Box';
import Paper from '@mui/material/Paper/Paper';
-import Skeleton from '@mui/material/Skeleton/Skeleton';
import React, { type FC } from 'react';
+import { LoadingSkeleton } from './LoadingSkeleton';
+
interface ImageProps {
isLoading: boolean
alt?: string
@@ -30,36 +31,36 @@ const Image: FC = ({
overflow: 'hidden'
}}
>
- {isLoading && (
-
- )}
- {url ? (
-
- ) : (
-
-
+ {url ? (
+
-
- )}
+ ) : (
+
+
+
+ )}
+
);
diff --git a/src/components/LoadingSkeleton.tsx b/src/components/LoadingSkeleton.tsx
new file mode 100644
index 000000000..d49735dd1
--- /dev/null
+++ b/src/components/LoadingSkeleton.tsx
@@ -0,0 +1,18 @@
+import Skeleton, { type SkeletonProps } from '@mui/material/Skeleton/Skeleton';
+import React, { FC } from 'react';
+
+interface LoadingSkeletonProps extends SkeletonProps {
+ isLoading: boolean
+}
+
+export const LoadingSkeleton: FC = ({
+ children,
+ isLoading,
+ ...props
+}) => (
+ isLoading ? (
+
+ ) : (
+ children
+ )
+);
From f8afd13764aa66f9401768e9e5e61e061732bd37 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Luk=C3=A1=C5=A1=20Kucharczyk?=
Date: Wed, 2 Jul 2025 01:48:13 -0400
Subject: [PATCH 601/645] Translated using Weblate (Czech) Translation:
Jellyfin/Jellyfin Web Translate-URL:
https://translate.jellyfin.org/projects/jellyfin/jellyfin-web/cs/
---
src/strings/cs.json | 5 ++++-
1 file changed, 4 insertions(+), 1 deletion(-)
diff --git a/src/strings/cs.json b/src/strings/cs.json
index 9dec8ce2e..0b8d3ccc8 100644
--- a/src/strings/cs.json
+++ b/src/strings/cs.json
@@ -2062,5 +2062,8 @@
"ButtonLearnMore": "Více informací",
"DeleteRepositoryConfirmation": "Opravdu chcete odstranit tento repozitář?",
"TranscodingLoadError": "Načtení nastavení překódování se nezdařilo",
- "LiveTVPageLoadError": "Načtení stránky s nahrávkami se nezdařilo"
+ "LiveTVPageLoadError": "Načtení stránky s nahrávkami se nezdařilo",
+ "ConnectAnyway": "Přesto připojit",
+ "HeaderServerMismatch": "Neshoda serveru",
+ "MessageServerMismatch": "Adresa serveru, ke kterému se připojujete, se od posledního připojení změnila. Pokud jste to očekávali, stiskněte \"Přesto připojit\". Pokud jste to neočekávali, může být vaše připojení nebo server kompromitován."
}
From 550faafc6785737dcb86c0a307f25d67045f22b7 Mon Sep 17 00:00:00 2001
From: MrPlow
Date: Wed, 2 Jul 2025 00:07:10 -0400
Subject: [PATCH 602/645] Translated using Weblate (German) Translation:
Jellyfin/Jellyfin Web Translate-URL:
https://translate.jellyfin.org/projects/jellyfin/jellyfin-web/de/
---
src/strings/de.json | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
diff --git a/src/strings/de.json b/src/strings/de.json
index 384d5ceed..02bdb4021 100644
--- a/src/strings/de.json
+++ b/src/strings/de.json
@@ -2062,5 +2062,6 @@
"TranscodingLoadError": "Transcodierungseinstellungen konnten nicht geladen werden",
"ConfirmDeleteRepository": "Repository löschen?",
"DeleteRepositoryConfirmation": "Sind Sie sicher, dass Sie dieses Repository löschen wollen?",
- "LiveTVPageLoadError": "Aufzeichnungsseite konnte nicht geladen werden"
+ "LiveTVPageLoadError": "Aufzeichnungsseite konnte nicht geladen werden",
+ "MessageServerMismatch": "Der Server mit dem Du dich verbindest, ist nicht der selbe, wie der, mit dem Du zuletzt unter dieser Adresse verbunden warst. Wenn das so sein soll, wähle \"Trotzdem verbinden\". Ansonsten könnte es sein, dass Deine Verbindung oder der Server kompromittiert wurde."
}
From 5e3e6d897bebb5d4a43adeb5dac2e103b19081a4 Mon Sep 17 00:00:00 2001
From: Bas <44002186+854562@users.noreply.github.com>
Date: Wed, 2 Jul 2025 01:26:49 -0400
Subject: [PATCH 603/645] Translated using Weblate (Dutch) Translation:
Jellyfin/Jellyfin Web Translate-URL:
https://translate.jellyfin.org/projects/jellyfin/jellyfin-web/nl/
---
src/strings/nl.json | 5 ++++-
1 file changed, 4 insertions(+), 1 deletion(-)
diff --git a/src/strings/nl.json b/src/strings/nl.json
index b3c5122ae..b77f7aeea 100644
--- a/src/strings/nl.json
+++ b/src/strings/nl.json
@@ -2061,5 +2061,8 @@
"DeleteRepositoryConfirmation": "Weet je zeker dat je dit repository wilt verwijderen?",
"RepositoriesPageLoadError": "Laden van repository's mislukt",
"TranscodingLoadError": "Laden van transcodeerinstellingen mislukt",
- "LiveTVPageLoadError": "Laden van opnamepagina mislukt"
+ "LiveTVPageLoadError": "Laden van opnamepagina mislukt",
+ "MessageServerMismatch": "De server waarmee je probeert te verbinden, is niet dezelfde als de server waarmee je eerder op dit adres verbonden was. Als dit klopt, kies dan voor \"Toch verbinden\". Is dat niet het geval, dan is je verbinding of de server mogelijk niet veilig.",
+ "ConnectAnyway": "Toch verbinden",
+ "HeaderServerMismatch": "Server komt niet overeen"
}
From c96e397e6f5bd1656ec67d9e289d67ad8a91a18b Mon Sep 17 00:00:00 2001
From: Kityn
Date: Wed, 2 Jul 2025 01:31:27 -0400
Subject: [PATCH 604/645] Translated using Weblate (Polish) Translation:
Jellyfin/Jellyfin Web Translate-URL:
https://translate.jellyfin.org/projects/jellyfin/jellyfin-web/pl/
---
src/strings/pl.json | 5 ++++-
1 file changed, 4 insertions(+), 1 deletion(-)
diff --git a/src/strings/pl.json b/src/strings/pl.json
index 6e7c2c9a0..bb7686c0d 100644
--- a/src/strings/pl.json
+++ b/src/strings/pl.json
@@ -2062,5 +2062,8 @@
"ButtonLearnMore": "Dowiedz się więcej",
"TranscodingLoadError": "Nie udało się załadować ustawień transkodowania",
"DeleteRepositoryConfirmation": "Czy na pewno chcesz usunąć to repozytorium?",
- "LiveTVPageLoadError": "Nie udało się załadować strony z nagraniami"
+ "LiveTVPageLoadError": "Nie udało się załadować strony z nagraniami",
+ "HeaderServerMismatch": "Niezgodność serwera",
+ "MessageServerMismatch": "Serwer, z którym się łączysz, nie jest tym samym serwerem, z którym łączyłeś się wcześniej pod tym adresem. Jeśli jest to oczekiwane, wybierz „Połącz się mimo wszystko”. W przeciwnym razie Twoje połączenie lub serwer mogą być zagrożone.",
+ "ConnectAnyway": "Połącz się mimo wszystko"
}
From f05df8fb740459305c1a7143970103da415bc85f Mon Sep 17 00:00:00 2001
From: Martin Just
Date: Wed, 2 Jul 2025 04:05:33 -0400
Subject: [PATCH 605/645] Translated using Weblate (German) Translation:
Jellyfin/Jellyfin Web Translate-URL:
https://translate.jellyfin.org/projects/jellyfin/jellyfin-web/de/
---
src/strings/de.json | 4 +++-
1 file changed, 3 insertions(+), 1 deletion(-)
diff --git a/src/strings/de.json b/src/strings/de.json
index 02bdb4021..2e7caf8c6 100644
--- a/src/strings/de.json
+++ b/src/strings/de.json
@@ -2063,5 +2063,7 @@
"ConfirmDeleteRepository": "Repository löschen?",
"DeleteRepositoryConfirmation": "Sind Sie sicher, dass Sie dieses Repository löschen wollen?",
"LiveTVPageLoadError": "Aufzeichnungsseite konnte nicht geladen werden",
- "MessageServerMismatch": "Der Server mit dem Du dich verbindest, ist nicht der selbe, wie der, mit dem Du zuletzt unter dieser Adresse verbunden warst. Wenn das so sein soll, wähle \"Trotzdem verbinden\". Ansonsten könnte es sein, dass Deine Verbindung oder der Server kompromittiert wurde."
+ "MessageServerMismatch": "Der Server mit dem Du dich verbindest, ist nicht der selbe, wie der, mit dem Du zuletzt unter dieser Adresse verbunden warst. Wenn das so sein soll, wähle \"Trotzdem verbinden\". Ansonsten könnte es sein, dass Deine Verbindung oder der Server kompromittiert wurde.",
+ "ConnectAnyway": "Trotzdem verbinden",
+ "HeaderServerMismatch": "Server stimmen nicht überein"
}
From c6701e75b16a524470c4c7e5418f895846ba27b0 Mon Sep 17 00:00:00 2001
From: stanol
Date: Wed, 2 Jul 2025 05:56:39 -0400
Subject: [PATCH 606/645] Translated using Weblate (Ukrainian) Translation:
Jellyfin/Jellyfin Web Translate-URL:
https://translate.jellyfin.org/projects/jellyfin/jellyfin-web/uk/
---
src/strings/uk.json | 6 +++++-
1 file changed, 5 insertions(+), 1 deletion(-)
diff --git a/src/strings/uk.json b/src/strings/uk.json
index 30be018d8..8f5737497 100644
--- a/src/strings/uk.json
+++ b/src/strings/uk.json
@@ -2058,5 +2058,9 @@
"PluginsLoadError": "Виникла помилка під час завантаження плагінів.",
"RepositoriesPageLoadError": "Не вдалося завантажити репозиторії",
"TranscodingLoadError": "Не вдалося завантажити налаштування перекодування",
- "ButtonLearnMore": "Дізнатися більше"
+ "ButtonLearnMore": "Дізнатися більше",
+ "MessageServerMismatch": "Сервер, до якого ви підключаєтеся, не є тим самим сервером, до якого ви раніше підключалися за цією адресою. Якщо це очікувано, виберіть «Все одно підключитися». В іншому випадку ваше з'єднання або сервер може бути скомпрометовано.",
+ "HeaderServerMismatch": "Невідповідність сервера",
+ "LiveTVPageLoadError": "Не вдалося завантажити сторінку з записами",
+ "ConnectAnyway": "Все одно підключитися"
}
From 518c9c35f989a437a46758d490b7a2ae67747036 Mon Sep 17 00:00:00 2001
From: myrad2267
Date: Wed, 2 Jul 2025 08:08:17 -0400
Subject: [PATCH 607/645] Translated using Weblate (French (Canada))
Translation: Jellyfin/Jellyfin Web Translate-URL:
https://translate.jellyfin.org/projects/jellyfin/jellyfin-web/fr_CA/
---
src/strings/fr-ca.json | 5 ++++-
1 file changed, 4 insertions(+), 1 deletion(-)
diff --git a/src/strings/fr-ca.json b/src/strings/fr-ca.json
index f253ac038..41acd11fe 100644
--- a/src/strings/fr-ca.json
+++ b/src/strings/fr-ca.json
@@ -2006,5 +2006,8 @@
"TranscodingLoadError": "Échec du chargement des paramètres de transcodage",
"ConfirmDeleteRepository": "Supprimer le dépôt ?",
"RepositoriesPageLoadError": "Échec du chargement des dépôts",
- "LiveTVPageLoadError": "Échec du chargement de la page d'enregistrements"
+ "LiveTVPageLoadError": "Échec du chargement de la page d'enregistrements",
+ "ConnectAnyway": "Se connecter quand même",
+ "HeaderServerMismatch": "Incompatibilité du serveur",
+ "MessageServerMismatch": "Le serveur auquel vous vous connectez n'est pas le même que celui auquel vous vous êtes précédemment connecté à cette adresse. Si cela est normal, sélectionnez « Se connecter quand même ». Sinon, votre connexion ou le serveur pourrait être compromis."
}
From e704095f57d44a25f9dfbd36773b7cb8ce33e47c Mon Sep 17 00:00:00 2001
From: myrad2267
Date: Wed, 2 Jul 2025 08:07:46 -0400
Subject: [PATCH 608/645] Translated using Weblate (French) Translation:
Jellyfin/Jellyfin Web Translate-URL:
https://translate.jellyfin.org/projects/jellyfin/jellyfin-web/fr/
---
src/strings/fr.json | 5 ++++-
1 file changed, 4 insertions(+), 1 deletion(-)
diff --git a/src/strings/fr.json b/src/strings/fr.json
index 5a7669283..8de946447 100644
--- a/src/strings/fr.json
+++ b/src/strings/fr.json
@@ -2062,5 +2062,8 @@
"ConfirmDeleteRepository": "Supprimer le dépôt ?",
"DeleteRepositoryConfirmation": "Êtes-vous sûr de vouloir supprimer ce dépôt ?",
"RepositoriesPageLoadError": "Échec du chargement des dépôts",
- "LiveTVPageLoadError": "Échec du chargement de la page d'enregistrements"
+ "LiveTVPageLoadError": "Échec du chargement de la page d'enregistrements",
+ "ConnectAnyway": "Se connecter quand même",
+ "HeaderServerMismatch": "Incompatibilité du serveur",
+ "MessageServerMismatch": "Le serveur auquel vous vous connectez n'est pas le même que celui auquel vous vous êtes précédemment connecté à cette adresse. Si cela est normal, sélectionnez « Se connecter quand même ». Sinon, votre connexion ou le serveur pourrait être compromis."
}
From 9b5ae6ed50e267ddf9bf1fee49d6002774a4ebb1 Mon Sep 17 00:00:00 2001
From: Bill Thornton
Date: Wed, 2 Jul 2025 10:21:22 -0400
Subject: [PATCH 609/645] Revert "Translated using Weblate (Portuguese)"
This reverts commit fcc8c8c879a8055b20ba3838e4c009ec336048a7.
---
src/strings/pt.json | 2584 +++++++++++++++++++++----------------------
1 file changed, 1292 insertions(+), 1292 deletions(-)
diff --git a/src/strings/pt.json b/src/strings/pt.json
index 3c2e3ad00..5a1a791bd 100644
--- a/src/strings/pt.json
+++ b/src/strings/pt.json
@@ -1,155 +1,155 @@
{
- "HeaderTypeImageFetchers": "Buscadores de imagem ({0})",
- "HeaderSubtitleDownloads": "Downloads de Legendas",
- "HeaderKodiMetadataHelp": "Para ativar ou desativar os metadados NFO, edite uma biblioteca e encontre a seção 'Salvadores de metadados'.",
- "HeaderFetcherSettings": "Configurações do Fetcher",
- "HeaderCastAndCrew": "Elenco & Equipe",
- "HeaderAppearsOn": "Aparece Em",
+ "HeaderTypeImageFetchers": "Fornecedores de imagens ({0})",
+ "HeaderSubtitleDownloads": "Transferências de Legendas",
+ "HeaderKodiMetadataHelp": "Para ativar ou desativar os metadados NFO, edita uma biblioteca e localiza a secção dos metadados.",
+ "HeaderFetcherSettings": "Definições do Pesquisador",
+ "HeaderCastAndCrew": "Elenco e equipa técnica",
+ "HeaderAppearsOn": "Presente em",
"HeaderAdmin": "Administração",
- "GuideProviderLogin": "Login",
- "XmlTvPathHelp": "Um caminho para um arquivo XMLTV. O Jellyfin lerá este arquivo e verificará periodicamente se há atualizações. Você é responsável por criar e atualizar o arquivo.",
+ "GuideProviderLogin": "Iniciar sessão",
+ "XmlTvPathHelp": "Caminho para um ficheiro XMLTV. O Jellyfin vai ler o ficheiro periodicamente para atualizar a programação da TV. O utilizador é responsável pela criação e atualização do ficheiro.",
"XmlDocumentAttributeListHelp": "Estes atributos são aplicados ao elemento principal de cada resposta XML.",
- "Writer": "Escritor",
- "WizardCompleted": "Isso é tudo que precisamos por agora. O Jellyfin começou a coletar informações sobre sua biblioteca de mídia. Confira alguns de nossos aplicativos e, em seguida, clique em Concluir para ver o Painel.",
+ "Writer": "Argumento",
+ "WizardCompleted": "É tudo o que precisamos por agora. O Jellyfin começou a recolher informações sobre a tua biblioteca multimédia. Vê algumas das nossas aplicações e, em seguida, clica em Terminar para ver o Painel de Controlo.",
"WelcomeToProject": "Bem-vindo ao Jellyfin!",
- "Wednesday": "Quarta-feira",
+ "Wednesday": "Quarta",
"ValueVideoCodec": "Codec de Vídeo: {0}",
"ValueTimeLimitSingleHour": "Limite de tempo: 1 hora",
"ValueTimeLimitMultiHour": "Limite de tempo: {0} horas",
"ValueSpecialEpisodeName": "Especial - {0}",
"ValueConditions": "Condições: {0}",
"ValueAudioCodec": "Codec de Áudio: {0}",
- "UserProfilesIntro": "O Jellyfin inclui suporte para perfis de usuário com configurações de exibição granulares, estado de reprodução e controles dos pais.",
- "UserAgentHelp": "Fornecer um cabeçalho HTTP 'User-Agent' personalizado.",
- "Unplayed": "Não reproduzido",
+ "UserProfilesIntro": "O Jellyfin suporta perfis de utilizadores, permitindo que cada utilizador tenha as suas definições de visualização, estado de reprodução e controlos parentais.",
+ "UserAgentHelp": "Forneça um 'User-Agent' HTTP personalizado.",
+ "Unplayed": "Por reproduzir",
"Unmute": "Ativar som",
- "HeaderUninstallPlugin": "Desinstalar Plugin",
- "UninstallPluginConfirmation": "Tem certeza de que deseja desinstalar {0}?",
+ "HeaderUninstallPlugin": "Desinstalar extensão",
+ "UninstallPluginConfirmation": "Tem a certeza que deseja desinstalar {0}?",
"Uniform": "Uniforme",
- "Tuesday": "Terça-feira",
+ "Tuesday": "Terça",
"TrackCount": "{0} faixas",
"TitlePlayback": "Reprodução",
- "Thursday": "Quinta-feira",
- "ThisWizardWillGuideYou": "Este assistente ajudará você a passar pelo processo de configuração. Para começar, insira um nome de servidor e selecione seu idioma preferido.",
- "TellUsAboutYourself": "Conte-nos sobre você",
+ "Thursday": "Quinta",
+ "ThisWizardWillGuideYou": "Este assistente irá ajudar-te durante o processo de configuração. Para começar, introduz o nome do servidor e seleciona o teu idioma.",
+ "TellUsAboutYourself": "Fale-nos sobre si",
"TabUpcoming": "Próximos",
- "TabStreaming": "Streaming",
+ "TabStreaming": "Transmissão",
"TabServer": "Servidor",
- "TabScheduledTasks": "Tarefas Agendadas",
+ "TabScheduledTasks": "Tarefas agendadas",
"TabResponses": "Respostas",
"TabProfiles": "Perfis",
- "TabPlugins": "Plugins",
- "TabParentalControl": "Controle dos pais",
+ "TabPlugins": "Extensões",
+ "TabParentalControl": "Controlo parental",
"TabOther": "Outro",
"TabNotifications": "Notificações",
- "TabNfoSettings": "Configurações NFO",
- "TabNetworks": "Redes de TV",
- "TabMyPlugins": "Meus Plugins",
+ "TabNfoSettings": "Definições de ficheiros NFO",
+ "TabNetworks": "Canais de TV",
+ "TabMyPlugins": "As minhas extensões",
"TabMusic": "Música",
- "TabLatest": "Recentemente Adicionado",
+ "TabLatest": "Adicionado recentemente",
"TabDirectPlay": "Reprodução Directa",
- "TabDashboard": "Painel",
+ "TabDashboard": "Painel de controlo",
"TabContainers": "Contentores",
"TabCatalog": "Catálogo",
- "TabAdvanced": "Avançado",
+ "TabAdvanced": "Definições avançadas",
"TabAccess": "Acesso",
"TV": "TV",
"SystemDlnaProfilesHelp": "Os perfis de sistema são apenas de leitura. Mudanças a um perfil de sistema serão guardadas num novo perfil personalizado.",
"Sync": "Sincronização",
"Sunday": "Domingo",
"Subtitles": "Legendas",
- "Sports": "Esportes",
+ "Sports": "Desporto",
"SortChannelsBy": "Ordenar canais por",
"Songs": "Músicas",
- "SkipEpisodesAlreadyInMyLibraryHelp": "Os episódios serão comparados usando os números da temporada e do episódio, quando disponíveis.",
- "SkipEpisodesAlreadyInMyLibrary": "Não gravar episódios que já estão na minha biblioteca",
- "SimultaneousConnectionLimitHelp": "O número máximo de streams simultâneos permitidos. Digite 0 para sem limite.",
- "Shuffle": "Embaralhar",
- "Shows": "Programas",
- "ShowAdvancedSettings": "Mostrar configurações avançadas",
- "Share": "Compartilhar",
- "SettingsSaved": "Configurações salvas.",
- "Settings": "Configurações",
- "ServerUpdateNeeded": "Este servidor precisa ser atualizado. Para baixar a versão mais recente, visite {0}",
- "ServerRestartNeededAfterPluginInstall": "O Jellyfin precisará ser reiniciado após a instalação do plugin.",
- "SeriesDisplayOrderHelp": "Ordenar episódios por data de exibição, ordem do DVD ou numeração absoluta.",
- "Series": "Série",
+ "SkipEpisodesAlreadyInMyLibraryHelp": "Os episódios serão comparados utilizando os números de episódio e temporada, quando disponíveis.",
+ "SkipEpisodesAlreadyInMyLibrary": "Não gravar episódios que já estejam presentes na Biblioteca",
+ "SimultaneousConnectionLimitHelp": "O número máximo de transmissões simultâneas permitidas. Introduz 0 para não haver limite.",
+ "Shuffle": "Aleatório",
+ "Shows": "Séries",
+ "ShowAdvancedSettings": "Mostrar definições avançadas",
+ "Share": "Partilhar",
+ "SettingsSaved": "Definições guardadas.",
+ "Settings": "Definições",
+ "ServerUpdateNeeded": "Este servidor precisa de ser atualizado. Para transferir a versão mais recente, visite {0}",
+ "ServerRestartNeededAfterPluginInstall": "O Jellyfin terá que reiniciar após instalar a extensão.",
+ "SeriesDisplayOrderHelp": "Ordenar episódios por data de estreia, ordem no DVD ou numeração absoluta.",
+ "Series": "Séries",
"SendMessage": "Enviar mensagem",
"SearchResults": "Resultados da pesquisa",
- "SearchForSubtitles": "Pesquisar legendas",
- "SearchForCollectionInternetMetadata": "Pesquisar na internet por arte e metadados",
+ "SearchForSubtitles": "Procurar legendas",
+ "SearchForCollectionInternetMetadata": "Procurar na internet por imagens e metadados",
"Search": "Pesquisar",
"Screenshots": "Capturas de Ecrã",
"Screenshot": "Captura de Ecrã",
- "Schedule": "Agendar",
- "ScanForNewAndUpdatedFiles": "Verificar novos arquivos e arquivos atualizados",
- "SaveSubtitlesIntoMediaFoldersHelp": "Armazenar legendas ao lado de arquivos de vídeo permitirá que sejam gerenciadas mais facilmente.",
- "SaveSubtitlesIntoMediaFolders": "Salvar legendas nas pastas de mídia",
- "Save": "Salvar",
+ "Schedule": "Agendamentos",
+ "ScanForNewAndUpdatedFiles": "Procurar ficheiros novos ou atualizados",
+ "SaveSubtitlesIntoMediaFoldersHelp": "Guardar ficheiros de legendas junto aos ficheiros vídeo irá facilitar a sua gestão.",
+ "SaveSubtitlesIntoMediaFolders": "Guardar legendas em pastas multimédia",
+ "Save": "Guardar",
"Saturday": "Sábado",
- "Runtime": "Duração",
+ "Runtime": "Tempo de execução",
"Rewind": "Retroceder",
- "ResumeAt": "Retomar de {0}",
+ "ResumeAt": "Retomar a partir de {0}",
"ReplaceExistingImages": "Substituir imagens existentes",
"ReplaceAllMetadata": "Substituir todos os metadados",
- "RepeatOne": "Repetir um",
+ "RepeatOne": "Repetir uma vez",
"RepeatMode": "Modo de repetição",
"Repeat": "Repetir",
- "RemoveFromPlaylist": "Remover da playlist",
+ "RemoveFromPlaylist": "Remover da lista de reprodução",
"Refresh": "Atualizar",
"RecordingScheduled": "Gravação agendada.",
"RecordingCancelled": "Gravação cancelada.",
"RecordSeries": "Gravar série",
"Record": "Gravar",
- "RecommendationStarring": "Com {0}",
- "RecommendationDirectedBy": "Dirigido por {0}",
- "RecommendationBecauseYouWatched": "Porque você assistiu {0}",
- "RecommendationBecauseYouLike": "Porque você gosta de {0}",
- "Raised": "Levantado",
+ "RecommendationStarring": "{0} como protagonista",
+ "RecommendationDirectedBy": "Realizado por {0}",
+ "RecommendationBecauseYouWatched": "Porque viu {0}",
+ "RecommendationBecauseYouLike": "Porque gosta de {0}",
+ "Raised": "Elevado",
"Programs": "Programas",
"Producer": "Produtor",
- "MessagePluginInstalled": "O plugin foi instalado com sucesso. O servidor precisará ser reiniciado para que as alterações tenham efeito.",
- "PleaseSelectTwoItems": "Por favor, selecione pelo menos dois itens.",
- "PleaseRestartServerName": "Por favor, reinicie o Jellyfin em {0}.",
- "PleaseEnterNameOrId": "Por favor, insira um nome ou um ID externo.",
+ "MessagePluginInstalled": "A extensão foi instalada com sucesso. O servidor necessitará de ser reiniciado para aplicar as alterações.",
+ "PleaseSelectTwoItems": "Por favor selecione pelo menos dois itens.",
+ "PleaseRestartServerName": "Por favor, reinicia o Jellyfin no {0}.",
+ "PleaseEnterNameOrId": "Introduz um nome ou um ID externo.",
"PleaseConfirmPluginInstallation": "Por favor clique em OK para confirmar que leu o conteúdo acima e que deseja prosseguir com a instalação da extensão.",
- "PleaseAddAtLeastOneFolder": "Por favor, adicione pelo menos uma pasta a esta biblioteca clicando no botão '+' na seção 'Pastas'.",
+ "PleaseAddAtLeastOneFolder": "Adiciona pelo menos uma pasta a esta biblioteca, clicando no botão '+' na secção 'Pastas'.",
"Playlists": "Playlists",
"Played": "Reproduzido",
"PlayNextEpisodeAutomatically": "Reproduzir próximo episódio automaticamente",
- "PlayNext": "Reproduzir próximo",
- "PlayFromBeginning": "Reproduzir desde o início",
- "PlayCount": "Contagem de Reprodução",
- "PlaybackData": "Informações de Reprodução",
- "PlayAllFromHere": "Reproduzir tudo a partir daqui",
+ "PlayNext": "Reproduzir a seguir",
+ "PlayFromBeginning": "Reproduzir do início",
+ "PlayCount": "N.º de Reproduções",
+ "PlaybackData": "Dados de Reprodução",
+ "PlayAllFromHere": "Reproduzir todos a partir daqui",
"Play": "Reproduzir",
- "PlaceFavoriteChannelsAtBeginning": "Colocar canais favoritos no início",
+ "PlaceFavoriteChannelsAtBeginning": "Mover canais favoritos para o início",
"PinCodeResetConfirmation": "Tem a certeza de que devia repôr o código PIN?",
"PinCodeResetComplete": "O código PIN foi redefinido.",
- "Photos": "Fotos",
+ "Photos": "Fotografias",
"PerfectMatch": "Correspondência perfeita",
"People": "Pessoas",
- "PasswordSaved": "Senha salva.",
- "PasswordResetProviderHelp": "Escolha um provedor de redefinição de senha a ser usado quando este usuário solicitar uma redefinição de senha.",
- "PasswordResetConfirmation": "Tem certeza de que deseja redefinir a senha?",
- "PasswordResetComplete": "A senha foi redefinida.",
- "PasswordMatchError": "A senha e a confirmação da senha devem corresponder.",
- "ParentalRating": "Classificação parental",
- "PackageInstallFailed": "{0} (versão {1}) instalação falhou.",
- "PackageInstallCompleted": "{0} (versão {1}) instalação concluída.",
- "PackageInstallCancelled": "{0} (versão {1}) instalação cancelada.",
- "Overview": "Visão geral",
- "OriginalAirDateValue": "Data original de exibição: {0}",
+ "PasswordSaved": "Palavra passe guardada.",
+ "PasswordResetProviderHelp": "Selecione um fornecedor de redefinição de palavra-passe a ser utilizado quando um utilizador solicitar uma redefinição de palavra-passe.",
+ "PasswordResetConfirmation": "Tem a certeza de que deseja redefinir a palavra-passe?",
+ "PasswordResetComplete": "A palavra-passe foi redefinida.",
+ "PasswordMatchError": "A palavra passe e a palavra passe de confirmação devem ser iguais.",
+ "ParentalRating": "Classificação etária",
+ "PackageInstallFailed": "A instalação de {0} (versão{1}) falhou.",
+ "PackageInstallCompleted": "A instalação de {0} (versão {1}) foi concluída.",
+ "PackageInstallCancelled": "A instalação de {0} (versão {1}) foi cancelada.",
+ "Overview": "Resumo",
+ "OriginalAirDateValue": "Data de estreia original: {0}",
"OptionWeekly": "Semanalmente",
- "OptionWeekends": "Fins de semana",
+ "OptionWeekends": "Fins-de-semana",
"OptionWeekdays": "Dias da semana",
- "OptionWakeFromSleep": "Despertar do sono",
- "OptionUnairedEpisode": "Episódios Não Exibidos",
- "OptionTvdbRating": "Avaliação TheTVDB",
- "OptionTrackName": "Nome da Faixa",
+ "OptionWakeFromSleep": "Retomar da suspensão",
+ "OptionUnairedEpisode": "Episódios por Estrear",
+ "OptionTvdbRating": "Classificação no TVDB",
+ "OptionTrackName": "Nome da pista",
"OptionSubstring": "Subcadeia",
"OptionSpecialEpisode": "Especiais",
- "OptionSaveMetadataAsHidden": "Salvar metadados e imagens como arquivos ocultos",
+ "OptionSaveMetadataAsHidden": "Guardar metadados e imagens como ficheiros ocultos",
"OptionResumable": "Retomável",
"OptionResElement": "elemento res",
"OptionReportByteRangeSeekingWhenTranscodingHelp": "Isto é necessário para alguns dispositivos que não pesquisam o tempo muito bem.",
@@ -157,71 +157,71 @@
"OptionReleaseDate": "Data de Lançamento",
"OptionProtocolHttp": "HTTP",
"OptionProtocolHls": "Emissão HTTP em direto",
- "OptionPremiereDate": "Data da Estreia",
- "OptionPlayCount": "Contagem de Reprodução",
+ "OptionPremiereDate": "Data de Estreia",
+ "OptionPlayCount": "N.º de Visualizações",
"OptionPlainVideoItemsHelp": "Quando activado, todos os vídeos são representados no DIDL como \"object.item.videoItem\" ao invés de um tipo mais específico como, por exemplo, \"object.item.videoItem.movie\".",
"OptionPlainVideoItems": "Mostrar todos os vídeos como itens de vídeo simples",
"OptionPlainStorageFoldersHelp": "Quando activado, todas as pastas são representadas no DIDL como \"object.container.storageFolder\" ao invés de um tipo mais específico como, por exemplo, \"object.container.person.musicArtist\".",
"OptionPlainStorageFolders": "Mostrar todas as pastas como simples pastas de armazenamento",
- "OptionParentalRating": "Classificação Parental",
- "OptionOnInterval": "Em um intervalo",
- "OptionNew": "Novo…",
- "LabelSaveLocalMetadataHelp": "Salvar arte nas pastas de mídia as colocará em um local onde podem ser facilmente editadas.",
- "LabelSaveLocalMetadata": "Salvar arte nas pastas de mídia",
- "LabelRuntimeMinutes": "Duração",
- "LabelRemoteClientBitrateLimit": "Limite de taxa de bits para streaming pela Internet (Mbps)",
+ "OptionParentalRating": "Classificação etária",
+ "OptionOnInterval": "Num intervalo",
+ "OptionNew": "Nova…",
+ "LabelSaveLocalMetadataHelp": "Guardar imagens diretamente nas pastas multimédia facilita o acesso para a sua edição.",
+ "LabelSaveLocalMetadata": "Guardar imagens e metadados nas pastas multimédia",
+ "LabelRuntimeMinutes": "Tempo de execução",
+ "LabelRemoteClientBitrateLimit": "Taxa de bits máxima para transmissão para a Internet (Mbps)",
"LabelReleaseDate": "Data de lançamento",
- "LabelRecordingPathHelp": "Especifique o local padrão para salvar gravações. Se deixado em branco, a pasta de dados do programa do servidor será usada.",
- "LabelRecordingPath": "Caminho padrão de gravação",
+ "LabelRecordingPathHelp": "Especifica a localização predefinida para guardar as gravações. Se for deixada em branco, será utilizada a pasta de dados do programa do servidor.",
+ "LabelRecordingPath": "Localização predefinida das gravações",
"LabelReasonForTranscoding": "Razão para transcodificação",
- "LabelPublicHttpsPortHelp": "O número da porta pública que deve ser mapeado para a porta HTTPS local.",
+ "LabelPublicHttpsPortHelp": "Número da porta pública que deverá ser transferida para a porta HTTPS local.",
"LabelPublicHttpsPort": "Número da porta HTTPS pública",
- "LabelPublicHttpPortHelp": "O número da porta pública que deve ser mapeado para a porta HTTP local.",
+ "LabelPublicHttpPortHelp": "Número da porta pública que deverá ser transferida para a porta HTTP local.",
"LabelPublicHttpPort": "Número da porta HTTP pública",
"LabelProtocolInfoHelp": "O valor que será usado ao responder aos pedidos GetProtocolInfo do dispositivo.",
"LabelProtocolInfo": "Informação do protocolo",
"LabelProtocol": "Protocolo",
"LabelProfileVideoCodecs": "Codecs do vídeo",
"LabelProfileContainersHelp": "Separados por vírgula. Pode ser deixado em branco para usar com todos os contentores.",
- "LabelProfileContainer": "Contêiner",
+ "LabelProfileContainer": "Container",
"LabelProfileCodecsHelp": "Separados por vírgula. Pode ser deixado em branco para usar com todos os codecs.",
"LabelProfileCodecs": "Codificadores",
"LabelProfileAudioCodecs": "Codecs do áudio",
- "LabelPreferredSubtitleLanguage": "Idioma de legenda preferido",
- "LabelPreferredDisplayLanguage": "Idioma de exibição preferido",
- "LabelPostProcessorArgumentsHelp": "Use {path} como o caminho para o arquivo de gravação.",
- "LabelPostProcessorArguments": "Argumentos da linha de comando do pós-processador",
- "LabelPostProcessor": "Aplicativo de pós-processamento",
- "LabelPleaseRestart": "As alterações terão efeito após recarregar manualmente o cliente da web.",
+ "LabelPreferredSubtitleLanguage": "Idioma de legendas preferido",
+ "LabelPreferredDisplayLanguage": "Idioma de visualização preferido",
+ "LabelPostProcessorArgumentsHelp": "Utilizar {path} como caminho para o ficheiro de gravação.",
+ "LabelPostProcessorArguments": "Argumentos de linha de comandos para a aplicação de pós-processamento",
+ "LabelPostProcessor": "Aplicação de pós-processamento",
+ "LabelPleaseRestart": "As alterações produzirão efeito depois de recarregar a página web.",
"LabelPlayMethod": "Método de reprodução",
"LabelPlaylist": "Playlist",
- "LabelPlayer": "Reprodutor",
- "LabelPersonRoleHelp": "Exemplo: Motorista do caminhão de sorvete",
- "LabelPersonRole": "Papel",
- "LabelPath": "Caminho",
+ "LabelPlayer": "Leitor",
+ "LabelPersonRoleHelp": "Exemplo: motorista da carrinha de gelados",
+ "LabelPersonRole": "Personagem",
+ "LabelPath": "Localização",
"LabelPasswordRecoveryPinCode": "Código PIN",
- "LabelPasswordConfirm": "Senha (confirmação)",
- "LabelPassword": "Senha",
- "LabelParentalRating": "Classificação parental",
- "LabelOverview": "Visão geral",
+ "LabelPasswordConfirm": "Palavra-passe (confirmar)",
+ "LabelPassword": "Palavra-passe",
+ "LabelParentalRating": "Classificação etária",
+ "LabelOverview": "Sinopse",
"LabelOriginalTitle": "Título original",
"LabelOriginalAspectRatio": "Proporção original",
- "LabelOptionalNetworkPathHelp": "Se esta pasta estiver compartilhada na sua rede, fornecer o caminho do compartilhamento de rede pode permitir que clientes em outros dispositivos acessem os arquivos de mídia diretamente. Por exemplo, {0} ou {1}.",
+ "LabelOptionalNetworkPathHelp": "Caso a pasta esteja partilhada, fornecer o caminho de rede pode permitir aos clientes aceder diretamente aos ficheiros multimédia. Por exemplo, {0} ou {1}.",
"LabelOptionalNetworkPath": "Pasta de rede compartilhada",
- "LabelNumberOfGuideDaysHelp": "Baixar mais dias de dados do guia fornece a capacidade de agendar com mais antecedência e ver mais listagens, mas também levará mais tempo para baixar. O automático escolherá com base no número de canais.",
- "LabelNumberOfGuideDays": "Número de dias de dados do guia para baixar",
+ "LabelNumberOfGuideDaysHelp": "Transferir mais dias de Guia TV permite agendar com maior antecedência e ver mais listagens, no entanto, levará mais tempo a transferir. Se selecionares Automático, será escolhido o período baseado no número de canais.",
+ "LabelNumberOfGuideDays": "Número de dias de Guia TV a transferir",
"LabelNumber": "Número",
"LabelNotificationEnabled": "Activar esta notificação",
"LabelNewsCategories": "Categorias de notícias",
- "LabelNewPasswordConfirm": "Confirmação da nova senha",
- "LabelNewPassword": "Nova senha",
+ "LabelNewPasswordConfirm": "Confirmar nova palavra-passe",
+ "LabelNewPassword": "Nova palavra-passe",
"LabelNewName": "Novo nome",
"LabelName": "Nome",
"LabelMusicStreamingTranscodingBitrateHelp": "Especifique uma taxa de bits máxima ao fazer streaming de música.",
"LabelMusicStreamingTranscodingBitrate": "Taxa de transcodificação de música",
- "LabelMovieRecordingPath": "Caminho de gravação de filmes",
- "LabelMoviePrefixHelp": "Se um prefixo for aplicado aos títulos dos filmes, insira-o aqui para que o servidor possa lidar com isso corretamente.",
- "LabelMoviePrefix": "Prefixo do filme",
+ "LabelMovieRecordingPath": "Localização para gravação de filmes",
+ "LabelMoviePrefixHelp": "Se aplicares um prefixo aos títulos dos filmes, introduz aqui para que o servidor o possa tratar corretamente.",
+ "LabelMoviePrefix": "Prefixo para filmes",
"LabelMovieCategories": "Categorias de filmes",
"LabelMonitorUsers": "Monitorizar actividade de",
"LabelModelUrl": "URL do modelo",
@@ -229,89 +229,89 @@
"LabelModelName": "Nome do modelo",
"LabelModelDescription": "Descrição do modelo",
"LabelMinScreenshotDownloadWidth": "Transferir capturas de ecrã com este tamanho mínimo:",
- "LabelMinResumePercentageHelp": "Os títulos são considerados não reproduzidos se parados antes deste tempo.",
- "LabelMinResumePercentage": "Porcentagem mínima de retomar",
- "LabelMinResumeDurationHelp": "O menor comprimento de vídeo em segundos que salvará a localização da reprodução e permitirá que você retome.",
- "LabelMinResumeDuration": "Duração mínima para retomar",
- "LabelMinBackdropDownloadWidth": "Largura mínima para download de plano de fundo",
+ "LabelMinResumePercentageHelp": "Os títulos são considerados como não vistos se parados antes desta percentagem da duração.",
+ "LabelMinResumePercentage": "Percentagem mínima de visualização para permitir retomar",
+ "LabelMinResumeDurationHelp": "A duração mínima de um vídeo, em segundos, que te permite guardar o progresso e retomar a reprodução.",
+ "LabelMinResumeDuration": "Duração mínima para permitir retomar a reprodução",
+ "LabelMinBackdropDownloadWidth": "Transferir imagens de fundo com este tamanho mínimo",
"LabelMethod": "Método",
- "LabelEndDate": "Data de término",
+ "LabelEndDate": "Data de fim",
"HeaderXmlDocumentAttributes": "Atributos do Documento XML",
- "HeaderLoginFailure": "Falha no Login",
- "LabelMetadataPathHelp": "Especifique um local personalizado para a arte e metadados baixados.",
- "LabelMetadataPath": "Caminho dos metadados",
- "LabelMetadataDownloadLanguage": "Idioma de download preferido",
+ "HeaderLoginFailure": "Falha no início de sessão",
+ "LabelMetadataPathHelp": "Introduz a localização para guardar imagens e metadados transferidos da internet.",
+ "LabelMetadataPath": "Localização dos metadados",
+ "LabelMetadataDownloadLanguage": "Idioma preferido para transferência",
"LabelMetadata": "Metadados",
- "LabelMessageTitle": "Título da mensagem",
+ "LabelMessageTitle": "Titulo da mensagem",
"LabelMessageText": "Texto da mensagem",
"LabelMaxStreamingBitrateHelp": "Defina uma taxa máxima de transmissão.",
"LabelMaxStreamingBitrate": "Qualidade máxima de transmissão",
"LabelMaxScreenshotsPerItem": "Número máximo de capturas de ecrã por item:",
- "LabelMaxResumePercentageHelp": "Os títulos são considerados totalmente reproduzidos se parados após este tempo.",
- "LabelMaxResumePercentage": "Porcentagem máxima de retomar",
- "LabelMaxParentalRating": "Classificação parental máxima permitida",
- "LabelMaxChromecastBitrate": "Qualidade de streaming do Google Cast",
- "LabelMaxBackdropsPerItem": "Número máximo de planos de fundo por item",
+ "LabelMaxResumePercentageHelp": "Os títulos são considerados como vistos se parados após esta percentagem da duração.",
+ "LabelMaxResumePercentage": "Percentagem máxima de visualização para permitir retomar",
+ "LabelMaxParentalRating": "Classificação etária máxima permitida",
+ "LabelMaxChromecastBitrate": "Qualidade de transmissão para Chromecast",
+ "LabelMaxBackdropsPerItem": "Número máximo de imagens de fundo por item",
"LabelMatchType": "Tipo de correspondência",
"LabelManufacturerUrl": "URL do Fabricante",
"LabelManufacturer": "Fabricante",
- "LabelLoginDisclaimerHelp": "Uma mensagem que será exibida na parte inferior da página de login.",
- "LabelLoginDisclaimer": "Aviso de login",
- "LabelLockItemToPreventChanges": "Bloquear este item para evitar futuras alterações nos metadados",
+ "LabelLoginDisclaimerHelp": "Este aviso será mostrado na parte inferior da página de início de sessão.",
+ "LabelLoginDisclaimer": "Aviso legal de início de sessão",
+ "LabelLockItemToPreventChanges": "Bloquear este item para evitar futuras alterações de metadados",
"LabelLocalHttpServerPortNumberHelp": "O número da porta TCP para o servidor HTTP.",
"LabelLocalHttpServerPortNumber": "Número da porta HTTP local",
"LabelLineup": "Programação",
"LabelLanguage": "Idioma",
- "LabelLanNetworks": "Redes LAN",
- "LabelKodiMetadataSaveImagePathsHelp": "Isso é recomendado se você tiver nomes de arquivos de imagem que não estão em conformidade com as diretrizes do Kodi.",
- "LabelKodiMetadataSaveImagePaths": "Salvar caminhos de imagem dentro dos arquivos NFO",
- "LabelKodiMetadataEnablePathSubstitutionHelp": "Ativar a substituição de caminho das imagens usando as configurações de substituição de caminho do servidor.",
- "LabelKodiMetadataEnablePathSubstitution": "Ativar substituição de caminho",
- "LabelKodiMetadataEnableExtraThumbsHelp": "Ao baixar imagens, elas podem ser salvas tanto em extrafanart quanto em extrathumbs para máxima compatibilidade com skins do Kodi.",
- "LabelKodiMetadataEnableExtraThumbs": "Copiar extrafanart para o campo extrathumbs",
- "LabelKodiMetadataDateFormatHelp": "Todas as datas dentro dos arquivos NFO serão analisadas usando este formato.",
+ "LabelLanNetworks": "Redes locais (LAN)",
+ "LabelKodiMetadataSaveImagePathsHelp": "Esta opção é recomendada se existirem nomes de imagens que não estejam de acordo com as recomendações do Kodi.",
+ "LabelKodiMetadataSaveImagePaths": "Guardar a localização de imagens em ficheiros nfo",
+ "LabelKodiMetadataEnablePathSubstitutionHelp": "Ativa a substituição de caminhos de imagens usando as definições de substituição de caminhos do servidor.",
+ "LabelKodiMetadataEnablePathSubstitution": "Ativar a substituição de caminhos",
+ "LabelKodiMetadataEnableExtraThumbsHelp": "Ao transferir imagens, estas podem ser guardadas como extrafanart e extrathumbs para uma maior compatibilidade com os temas Kodi.",
+ "LabelKodiMetadataEnableExtraThumbs": "Copiar o parâmetro extrafanart para extrathumbs",
+ "LabelKodiMetadataDateFormatHelp": "Todas as datas presentes em ficheiros NFO serão analisadas utilizando este formato.",
"LabelKodiMetadataDateFormat": "Formato da data de lançamento",
- "LabelKidsCategories": "Categorias Infantis",
- "LabelKeepUpTo": "Manter até",
- "LabelInternetQuality": "Qualidade da Internet",
+ "LabelKidsCategories": "Categorias infantis",
+ "LabelKeepUpTo": "Manter, no máximo",
+ "LabelInternetQuality": "Qualidade para a Internet",
"LabelInNetworkSignInWithEasyPasswordHelp": "Utilizar um código PIN para entrar no Jellyfin dentro da rede. A palavra-passe só será necessária fora da rede. Se o código PIN for deixado em branco, não será necessária autenticação dentro da rede.",
"LabelInNetworkSignInWithEasyPassword": "Activar acesso dentro da rede com código PIN",
"LabelImportOnlyFavoriteChannels": "Restringir a canais marcados como favoritos",
- "LabelImageType": "Tipo de Imagem",
+ "LabelImageType": "Tipo de imagem",
"LabelIdentificationFieldHelp": "Uma subcadeia ou expressão regex que não diferencia maiúscula de minúsculas.",
"LabelIconMaxWidth": "Largura máxima do ícone",
"LabelIconMaxHeight": "Altura máxima do ícone",
"LabelHttpsPortHelp": "O número da porta TCP para o servidor HTTPS.",
"LabelHttpsPort": "Número da porta HTTPS local",
- "LabelHomeScreenSectionValue": "Seção da tela inicial {0}",
- "LabelHomeNetworkQuality": "Qualidade da rede local",
- "LabelHardwareAccelerationTypeHelp": "A aceleração por hardware requer configuração adicional.",
+ "LabelHomeScreenSectionValue": "Secção {0} do painel principal",
+ "LabelHomeNetworkQuality": "Qualidade da rede interna",
+ "LabelHardwareAccelerationTypeHelp": "A aceleração de hardware requer configuração adicional.",
"LabelHardwareAccelerationType": "Aceleração por hardware",
"LabelEncoderPreset": "Predefinição de codificação",
- "LabelH264Crf": "Codificação H.264 CRF",
- "LabelGroupMoviesIntoCollectionsHelp": "Filmes em uma coleção serão exibidos como um único item agrupado ao exibir listas de filmes.",
+ "LabelH264Crf": "CRF para codificação H.264",
+ "LabelGroupMoviesIntoCollectionsHelp": "Ao mostrar listas de filmes, aqueles que pertençam a uma coleção serão apresentados como um único item agrupado.",
"LabelGroupMoviesIntoCollections": "Agrupar filmes em coleções",
- "LabelServerNameHelp": "Este nome será usado para identificar o servidor e será definido como o nome do host do servidor.",
+ "LabelServerNameHelp": "Este nome será utilizado para identificar o servidor. Hostname do servidor usado por defeito.",
"LabelFriendlyName": "Nome amigável",
"LabelFormat": "Formato",
- "LabelForgotPasswordUsernameHelp": "Insira seu nome de usuário, se você se lembrar.",
- "LabelFont": "Fonte",
+ "LabelForgotPasswordUsernameHelp": "Introduz o teu nome de utilizador, se te lembrares dele.",
+ "LabelFont": "Tipo de Letra",
"LabelFolder": "Pasta",
- "LabelFinish": "Concluir",
- "LabelFileOrUrl": "Arquivo ou URL",
+ "LabelFinish": "Terminar",
+ "LabelFileOrUrl": "Ficheiro ou URL",
"LabelFailed": "Falhou",
- "LabelExtractChaptersDuringLibraryScanHelp": "Gerar imagens de capítulos ao importar vídeos durante a verificação da biblioteca. Caso contrário, elas serão extraídas durante a tarefa agendada de imagens de capítulos, permitindo que a verificação regular da biblioteca seja concluída mais rapidamente.",
- "LabelExtractChaptersDuringLibraryScan": "Extrair imagens de capítulos durante a verificação da biblioteca",
- "LabelBaseUrlHelp": "Adicione um subdiretório personalizado à URL do servidor. Por exemplo: http://example.com/<baseurl>",
- "LabelBaseUrl": "URL base",
+ "LabelExtractChaptersDuringLibraryScanHelp": "Gerar imagens dos capítulos ao importar vídeos durante a análise da biblioteca. Caso contrário, as imagens serão extraídas mais tarde, através da tarefa agendada de extração de imagens de capítulos, permitindo que a análise regular da biblioteca seja concluída mais rapidamente.",
+ "LabelExtractChaptersDuringLibraryScan": "Extrair imagens dos capítulos durante a análise da biblioteca",
+ "LabelBaseUrlHelp": "Adicione um subdiretório personalizado ao URL do servidor. Por exemplo: http://example.com/<baseurl>",
+ "LabelBaseUrl": "URL Base",
"LabelEveryXMinutes": "A cada",
"LabelEvent": "Evento",
"LabelEpisodeNumber": "Número do episódio",
"LabelEnableSingleImageInDidlLimitHelp": "Alguns dispositivos não interpretarão o ficheiro apropriadamente se múltiplas imagens forem incorporadas no DIDL.",
"LabelEnableSingleImageInDidlLimit": "Limitar a uma imagem incorporada",
- "LabelEnableRealtimeMonitorHelp": "Alterações nos arquivos serão processadas imediatamente em sistemas de arquivos suportados.",
- "LabelEnableRealtimeMonitor": "Ativar monitoramento em tempo real",
- "LabelEnableHardwareDecodingFor": "Ativar decodificação de hardware para",
+ "LabelEnableRealtimeMonitorHelp": "As alterações nos arquivos serão processadas imediatamente nos sistemas de arquivos suportados.",
+ "LabelEnableRealtimeMonitor": "Ativar monitorização em tempo real",
+ "LabelEnableHardwareDecodingFor": "Ativar descodificação por hardware para",
"LabelEnableDlnaServerHelp": "Permite que dispositivos UPnP na rede naveguem e reproduzam conteúdo.",
"LabelEnableDlnaServer": "Activar servidor DLNA",
"LabelEnableDlnaPlayToHelp": "Detecte dispositivos em sua rede e ofereça a capacidade de controlá-los remotamente.",
@@ -327,78 +327,78 @@
"LabelEmbedAlbumArtDidlHelp": "Alguns dispositivos preferem este método para obter a capa do álbum. Outros pode não ser capazes de reproduzir com esta opção activada.",
"LabelEmbedAlbumArtDidl": "Incorporar a capa do álbum no DIDL",
"LabelEasyPinCode": "Código PIN",
- "LabelDynamicExternalId": "{0} Id",
- "LabelDropShadow": "Sombra projetada",
- "LabelDropImageHere": "Solte a imagem aqui, ou clique para navegar.",
- "LabelDownloadLanguages": "Idiomas para download",
- "LabelDownMixAudioScaleHelp": "Aumenta o áudio ao fazer downmix. Um valor de um preserva o volume original.",
- "LabelDownMixAudioScale": "Aumento de áudio ao fazer downmix",
- "LabelDisplaySpecialsWithinSeasons": "Exibir especiais dentro das temporadas em que foram exibidos",
- "LabelDisplayOrder": "Ordem de exibição",
- "LabelDisplayName": "Nome de exibição",
- "LabelDisplayMode": "Modo de exibição",
- "LabelDisplayLanguageHelp": "Traduzir o Jellyfin é um projeto em andamento.",
- "LabelDisplayLanguage": "Idioma de exibição",
+ "LabelDynamicExternalId": "{0} ID",
+ "LabelDropShadow": "Realce",
+ "LabelDropImageHere": "Arraste a imagem para aqui, ou clique para procurar.",
+ "LabelDownloadLanguages": "Transferir os idiomas",
+ "LabelDownMixAudioScaleHelp": "Aumentar o volume de áudio durante o downmix. O valor 1 preserva o volume original.",
+ "LabelDownMixAudioScale": "Reforço de áudio durante o downmix",
+ "LabelDisplaySpecialsWithinSeasons": "Mostrar episódios especiais dentro das temporadas em que estrearam",
+ "LabelDisplayOrder": "Ordem de apresentação",
+ "LabelDisplayName": "Nome para apresentação",
+ "LabelDisplayMode": "Modo de apresentação",
+ "LabelDisplayLanguageHelp": "A tradução do Jellyfin é um projeto em desenvolvimento contínuo.",
+ "LabelDisplayLanguage": "Idioma",
"LabelDiscNumber": "Número do disco",
"LabelDidlMode": "Modo DIDL",
"LabelDeviceDescription": "Descrição do dispositivo",
"LabelDefaultUserHelp": "Determina que biblioteca será apresentada aos dispositivos ligados. Pode ser redefinido para cada dispositivo através de perfis.",
"LabelDefaultUser": "Utilizador por omissão",
- "LabelDefaultScreen": "Tela padrão",
+ "LabelDefaultScreen": "Ecrã por omissão",
"LabelDeathDate": "Data de falecimento",
"LabelRefreshMode": "Modo de atualização",
- "LabelRecord": "Gravar",
- "LabelPasswordResetProvider": "Provedor de Redefinição de Senha",
- "LabelMetadataSaversHelp": "Escolha os formatos de arquivo a serem usados ao salvar seus metadados.",
- "LabelMetadataReadersHelp": "Classifique suas fontes de metadados locais preferidas por ordem de prioridade. O primeiro arquivo encontrado será lido.",
- "LabelMetadataReaders": "Leitores de metadados",
- "LabelMetadataDownloadersHelp": "Ative e classifique seus downloaders de metadados preferidos por ordem de prioridade. Downloaders de prioridade mais baixa serão usados apenas para preencher informações ausentes.",
- "LabelLogs": "Logs",
- "LabelKodiMetadataUserHelp": "Salvar dados de visualização em arquivos NFO para outros aplicativos usarem.",
- "LabelKodiMetadataUser": "Salvar dados de visualização do usuário em arquivos NFO para",
- "LabelImageFetchersHelp": "Ative e classifique seus buscadores de imagem preferidos por ordem de prioridade.",
+ "LabelRecord": "Registo",
+ "LabelPasswordResetProvider": "Fornecedor de redefinição da palavra-passe",
+ "LabelMetadataSaversHelp": "Escolhe os formatos de ficheiro a utilizar para guardar os teus metadados.",
+ "LabelMetadataReadersHelp": "Ordene as fontes locais de metadados por ordem de prioridade. O primeiro ficheiro a ser encontrado será lido.",
+ "LabelMetadataReaders": "Fornecedores de metadados",
+ "LabelMetadataDownloadersHelp": "Ativa e ordena os teus fornecedores de metadados preferidos por ordem de prioridade. Os de menor prioridade só serão utilizados para preencher as informações em falta.",
+ "LabelLogs": "Registos (Logs)",
+ "LabelKodiMetadataUserHelp": "Guardar dados de utilização em NFO para que outras aplicações os utilizem.",
+ "LabelKodiMetadataUser": "Guardar dados de utilização em NFO para",
+ "LabelImageFetchersHelp": "Ativa e ordena os fornecedores de imagens por ordem de preferência.",
"Home": "Início",
"LabelDay": "Dia da semana",
- "LabelDateTimeLocale": "Localidade de data e hora",
- "LabelDateAddedBehaviorHelp": "Se um valor de metadado estiver presente, ele será sempre usado antes de qualquer uma dessas opções.",
- "LabelDateAddedBehavior": "Comportamento da data adicionada para novos conteúdos",
- "LabelDateAdded": "Data adicionada",
- "LabelDashboardTheme": "Tema do Painel do Servidor",
+ "LabelDateTimeLocale": "Formato da data/hora",
+ "LabelDateAddedBehaviorHelp": "Se um valor de metadados estiver presente, ele sempre será usado antes de qualquer uma dessas opções.",
+ "LabelDateAddedBehavior": "Comportamento da data de adição para novo conteúdo",
+ "LabelDateAdded": "Adicionado a",
+ "LabelDashboardTheme": "Tema do Painel de Controlo",
"LabelCustomRating": "Classificação personalizada",
- "LabelCustomDeviceDisplayNameHelp": "Forneça um nome de exibição personalizado ou deixe em branco para usar o nome informado pelo dispositivo.",
- "LabelCustomCssHelp": "Aplique seu código CSS personalizado para personalização/marcação na interface da web.",
- "LabelCustomCss": "Código CSS personalizado",
- "LabelCustomCertificatePathHelp": "Caminho para um arquivo PKCS #12 contendo um certificado e uma chave privada para ativar o suporte a TLS em um domínio personalizado.",
- "LabelCustomCertificatePath": "Caminho do certificado SSL personalizado",
- "LabelCurrentPassword": "Senha atual",
+ "LabelCustomDeviceDisplayNameHelp": "Forneça um nome a ser mostrado, ou deixe em branco para utilizar o nome reportado pelo dispositivo.",
+ "LabelCustomCssHelp": "Aplica o teu código CSS personalizado à interface web.",
+ "LabelCustomCss": "codigo CSS personalizado",
+ "LabelCustomCertificatePathHelp": "Localização do ficheiro PKCS #12 que contém um certificado e uma chave privada para ativar o suporte TLS num domínio personalizado.",
+ "LabelCustomCertificatePath": "Localização do certificado SSL personalizado",
+ "LabelCurrentPassword": "Palavra-passe atual",
"LabelCriticRating": "Avaliação da crítica",
"LabelCountry": "País/Região",
"LabelContentType": "Tipo de conteúdo",
- "LabelCommunityRating": "Avaliação da comunidade",
+ "LabelCommunityRating": "Classificação da comunidade",
"LabelCollection": "Coleção",
"LabelChannels": "Canais",
- "LabelCertificatePasswordHelp": "Se o seu certificado exigir uma senha, insira-a aqui.",
- "LabelCertificatePassword": "Senha do certificado",
+ "LabelCertificatePasswordHelp": "Se o certificado requer uma palavra-passe, escreva-a aqui.",
+ "LabelCertificatePassword": "Palavra-passe do certificado",
"LabelCancelled": "Cancelado",
- "LabelCachePathHelp": "Especifique um local personalizado para arquivos de cache do servidor, como imagens. Deixe em branco para usar o padrão do servidor.",
- "LabelCachePath": "Caminho do cache",
+ "LabelCachePathHelp": "Especifica uma localização personalizada para os ficheiros de cache do servidor, como imagens. Deixa em branco para usar a predefinição do servidor.",
+ "LabelCachePath": "Localização da cache",
"LabelCache": "Cache",
"LabelBirthDate": "Data de nascimento",
- "LabelBindToLocalNetworkAddressHelp": "Substitua o endereço IP local para o servidor HTTP. Se deixado em branco, o servidor será vinculado a todos os endereços disponíveis. Alterar este valor requer uma reinicialização.",
- "LabelBindToLocalNetworkAddress": "Vincular ao endereço de rede local",
- "LabelAutomaticallyRefreshInternetMetadataEvery": "Atualizar automaticamente metadados da internet a cada",
- "LabelAuthProvider": "Provedor de Autenticação",
+ "LabelBindToLocalNetworkAddressHelp": "Substitua o endereço IP local do servidor HTTP. Se deixado em branco, o servidor se vinculará a todos os endereços disponíveis. Alterar este valor requer um reinício.",
+ "LabelBindToLocalNetworkAddress": "Endereço local para colocar o servidor à escuta",
+ "LabelAutomaticallyRefreshInternetMetadataEvery": "Atualizar metadados automaticamente a partir da Internet",
+ "LabelAuthProvider": "Fornecedor de autenticação",
"LabelAudioSampleRate": "Taxa de amostragem de áudio",
"LabelAudioLanguagePreference": "Idioma de áudio preferido",
"LabelAudioCodec": "Codec de áudio",
"LabelAudioChannels": "Canais de áudio",
- "LabelAudioBitrate": "Taxa de bits do áudio",
- "LabelArtistsHelp": "Separe vários artistas com ponto e vírgula.",
+ "LabelAudioBitrate": "Taxa de bits de áudio",
+ "LabelArtistsHelp": "Separe artistas múltiplos com um ponto e vírgula.",
"LabelArtists": "Artistas",
- "LabelAppNameExample": "Um nome legível para identificar chaves de API. Esta configuração não afetará a funcionalidade.",
- "LabelAppName": "Nome do app",
- "LabelAllowedRemoteAddressesMode": "Modo de filtro de endereço IP remoto",
- "LabelAllowedRemoteAddresses": "Filtro de endereço IP remoto",
+ "LabelAppNameExample": "Um nome legível por humanos para identificar as chaves da API. Esta definição não afetará a funcionalidade.",
+ "LabelAppName": "Nome da aplicação",
+ "LabelAllowedRemoteAddressesMode": "Tipo de filtro de IP remoto",
+ "LabelAllowedRemoteAddresses": "Filtro de IP remoto",
"LabelAllowHWTranscoding": "Permitir transcodificação por hardware",
"LabelAlbumArtists": "Artistas do Álbum",
"LabelAlbumArtPN": "PN da capa do álbum",
@@ -406,27 +406,27 @@
"LabelAlbumArtMaxHeight": "Altura máxima da capa do álbum",
"LabelAlbumArtHelp": "PN utilizado para a capa do álbum no atributo dlna:profileID/upnp:albumArtURI. Alguns dispositivos requerem um valor específico, independentemente do tamanho da imagem.",
"LabelAlbum": "Álbum",
- "LabelAirsBeforeSeason": "Exibe antes da temporada",
- "LabelAirsBeforeEpisode": "Exibe antes do episódio",
- "LabelAirsAfterSeason": "Exibe após a temporada",
- "LabelAirTime": "Horário de exibição",
- "LabelAirDays": "Dias de exibição",
- "LabelAccessStart": "Hora de início",
- "LabelAccessEnd": "Hora de término",
+ "LabelAirsBeforeSeason": "Estreou antes da temporada",
+ "LabelAirsBeforeEpisode": "Estreou antes do episódio",
+ "LabelAirsAfterSeason": "Estreou depois da temporada",
+ "LabelAirTime": "Horário",
+ "LabelAirDays": "Dias da Exibição",
+ "LabelAccessStart": "Hora de Início",
+ "LabelAccessEnd": "Hora de Fim",
"LabelAccessDay": "Dia da semana",
- "LabelAbortedByServerShutdown": "(Abortado pelo desligamento do servidor)",
+ "LabelAbortedByServerShutdown": "(Abortado - Servidor encerrado)",
"Label3DFormat": "Formato 3D",
"Kids": "Crianças",
"Items": "Itens",
"ItemCount": "{0} itens",
- "InstantMix": "Mistura instantânea",
- "InstallingPackage": "Instalando {0} (versão {1})",
- "ImportFavoriteChannelsHelp": "Apenas os canais marcados como favoritos no dispositivo sintonizador serão importados.",
+ "InstantMix": "Mistura instântanea",
+ "InstallingPackage": "A instalar {0} (version {1})",
+ "ImportFavoriteChannelsHelp": "Apenas serão importados canais marcados como favoritos no sintonizador.",
"Images": "Imagens",
"Identify": "Identificar",
- "HttpsRequiresCert": "Para habilitar conexões seguras, você precisará fornecer um certificado SSL confiável, como o Let's Encrypt. Por favor, forneça um certificado ou desative as conexões seguras.",
+ "HttpsRequiresCert": "Para ativares as ligações seguras, terás de fornecer um certificado SSL fiável, como o Let's Encrypt. Caso contrário, desativa as ligações seguras.",
"Horizontal": "Horizontal",
- "HideWatchedContentFromLatestMedia": "Ocultar conteúdo assistido de 'Mídia Recentemente Adicionada'",
+ "HideWatchedContentFromLatestMedia": "Ocultar títulos já vistos da secção \"Conteúdo adicionado recentemente\"",
"Hide": "Ocultar",
"Help": "Ajuda",
"HeaderYears": "Anos",
@@ -436,1084 +436,1084 @@
"HeaderVideoTypes": "Tipos de Vídeo",
"HeaderVideoType": "Tipo de Vídeo",
"HeaderVideoQuality": "Qualidade do Vídeo",
- "HeaderUsers": "Usuários",
- "HeaderUser": "Usuário",
+ "HeaderUsers": "Utilizadores",
+ "HeaderUser": "Utilizador",
"HeaderUploadImage": "Enviar Imagem",
- "HeaderUpcomingOnTV": "Próximos na TV",
- "HeaderTypeText": "Inserir Texto",
+ "HeaderUpcomingOnTV": "A Seguir",
+ "HeaderTypeText": "Inserir texto",
"HeaderTuners": "Sintonizadores",
- "HeaderTunerDevices": "Dispositivos Sintonizadores",
+ "HeaderTunerDevices": "Sintonizadores",
"HeaderTranscodingProfileHelp": "Adicionar perfis de transcodificação que indiquem que formatos deverão ser usados quando a transcodificação é necessária.",
"HeaderTranscodingProfile": "Perfil da Transcodificação",
"HeaderTracks": "Faixas",
- "HeaderThisUserIsCurrentlyDisabled": "Este usuário está atualmente desativado",
- "HeaderTaskTriggers": "Gatilhos de Tarefa",
+ "HeaderThisUserIsCurrentlyDisabled": "Este utilizador está atualmente desativado",
+ "HeaderTaskTriggers": "Tarefas agendadas",
"HeaderSystemDlnaProfiles": "Perfis de Sistema",
"HeaderSubtitleProfilesHelp": "Os perfis da legenda descrevem os formatos da legenda suportados pelo dispositivo.",
"HeaderSubtitleProfiles": "Perfis da Legenda",
"HeaderSubtitleProfile": "Perfil da Legenda",
- "HeaderSubtitleAppearance": "Aparência da Legenda",
- "HeaderStopRecording": "Parar Gravação",
- "HeaderStatus": "Status",
- "HeaderStartNow": "Iniciar Agora",
- "HeaderSpecialEpisodeInfo": "Informações sobre Episódios Especiais",
- "HeaderSortOrder": "Ordem de Classificação",
- "HeaderSortBy": "Ordenar Por",
- "HeaderSetupLibrary": "Configurar suas bibliotecas de mídia",
+ "HeaderSubtitleAppearance": "Aparência das Legendas",
+ "HeaderStopRecording": "Parar gravação",
+ "HeaderStatus": "Estado",
+ "HeaderStartNow": "Iniciar",
+ "HeaderSpecialEpisodeInfo": "Informação sobre o episódio especial",
+ "HeaderSortOrder": "Sequência de ordenação",
+ "HeaderSortBy": "Ordenar por",
+ "HeaderSetupLibrary": "Configurar bibliotecas multimédia",
"HeaderServerSettings": "Configurações do Servidor",
- "HeaderSeriesStatus": "Status da Série",
+ "HeaderSeriesStatus": "Estado da Série",
"HeaderSeriesOptions": "Opções da Série",
- "HeaderSendMessage": "Enviar Mensagem",
- "HeaderSelectTranscodingPathHelp": "Navegue ou insira o caminho a ser usado para arquivos de transcodificação. A pasta deve ser gravável.",
- "HeaderSelectTranscodingPath": "Selecionar Caminho Temporário de Transcodificação",
- "HeaderSelectServerCachePathHelp": "Navegue ou insira o caminho a ser usado para arquivos de cache do servidor. A pasta deve ser gravável.",
- "HeaderSelectServerCachePath": "Selecionar Caminho do Cache do Servidor",
- "HeaderSelectPath": "Selecionar Caminho",
- "HeaderSelectMetadataPathHelp": "Navegue ou insira o caminho que deseja usar para os metadados. A pasta deve ser gravável.",
- "HeaderSelectMetadataPath": "Selecionar Caminho dos Metadados",
- "HeaderSelectCertificatePath": "Selecionar Caminho do Certificado",
- "HeaderSecondsValue": "{0} Segundos",
+ "HeaderSendMessage": "Enviar mensagem",
+ "HeaderSelectTranscodingPathHelp": "Pesquisa ou introduz a localização que pretendes utilizar para os ficheiros de transcodificação. O servidor requer permissões de escrita nesta pasta.",
+ "HeaderSelectTranscodingPath": "Seleccione o Local Temporário da Transcodificação",
+ "HeaderSelectServerCachePathHelp": "Pesquisa ou introduz a localização que pretendes utilizar para os ficheiros de cache do servidor. O servidor requer permissões de escrita nesta pasta.",
+ "HeaderSelectServerCachePath": "Seleciona a localização da cache do servidor",
+ "HeaderSelectPath": "Seleciona a localização",
+ "HeaderSelectMetadataPathHelp": "Pesquisa ou introduz a localização que pretendes utilizar para os metadados. O servidor requer permissões de escrita nesta pasta.",
+ "HeaderSelectMetadataPath": "Seleciona a localização dos metadados",
+ "HeaderSelectCertificatePath": "Seleciona a localização do certificado",
+ "HeaderSecondsValue": "{0} segundos",
"HeaderSeasons": "Temporadas",
"HeaderScenes": "Cenas",
"HeaderRunningTasks": "Tarefas em Execução",
- "HeaderRevisionHistory": "Histórico de Revisões",
+ "HeaderRevisionHistory": "Histórico de Versões",
"HeaderResponseProfileHelp": "Os perfis de resposta oferecem uma forma de individualizar a informação enviada para o dispositivo ao executar certos ficheiros multimédia.",
"HeaderResponseProfile": "Perfil de Resposta",
- "HeaderRemoveMediaLocation": "Remover Local de Mídia",
- "HeaderRemoveMediaFolder": "Remover Pasta de Mídia",
- "HeaderRemoteControl": "Controle Remoto",
- "HeaderRecordingPostProcessing": "Pós-processamento de Gravação",
- "HeaderRecordingOptions": "Opções de Gravação",
- "HeaderRecentlyPlayed": "Reproduzidos Recentemente",
+ "HeaderRemoveMediaLocation": "Remover Localização dos ficheiros multimédia",
+ "HeaderRemoveMediaFolder": "Excluir Pasta Multimédia",
+ "HeaderRemoteControl": "Telecomando",
+ "HeaderRecordingPostProcessing": "Pós-processamento de gravação",
+ "HeaderRecordingOptions": "Opções de gravação",
+ "HeaderRecentlyPlayed": "Reproduzido Recentemente",
"HeaderProfileServerSettingsHelp": "Estes campos controlam como o servidor se apresenta aos clientes.",
"HeaderProfileInformation": "Informação do Perfil",
- "HeaderPreferredMetadataLanguage": "Idioma de Metadados Preferido",
+ "HeaderPreferredMetadataLanguage": "Idioma Preferido dos Metadados",
"HeaderPluginInstallation": "Instalar Extensão",
- "HeaderPleaseSignIn": "Por favor, faça login",
- "HeaderPlaybackError": "Erro de Reprodução",
- "HeaderPlayback": "Reprodução de Mídia",
- "HeaderPlayOn": "Reproduzir Em",
- "HeaderPlayAll": "Reproduzir Tudo",
+ "HeaderPleaseSignIn": "Iniciar sessão",
+ "HeaderPlaybackError": "Erro na reprodução",
+ "HeaderPlayback": "Reprodução de multimédia",
+ "HeaderPlayOn": "Reproduzir em",
+ "HeaderPlayAll": "Reproduzir tudo",
"HeaderPinCodeReset": "Redefinir Código PIN",
- "HeaderPhotoAlbums": "Álbuns de Fotos",
- "HeaderPaths": "Caminhos",
- "HeaderPasswordReset": "Redefinição de Senha",
- "HeaderPassword": "Senha",
- "HeaderParentalRatings": "Classificações dos Pais",
- "HeaderOtherItems": "Outros Itens",
- "HeaderOnNow": "Agora",
- "HeaderNextVideoPlayingInValue": "Próximo Vídeo Tocando em {0}",
- "HeaderNextEpisodePlayingInValue": "Próximo Episódio Tocando em {0}",
- "HeaderNewDevices": "Novos Dispositivos",
- "HeaderNewApiKey": "Nova Chave da API",
- "HeaderMyMediaSmall": "Minha Mídia (pequeno)",
- "HeaderMyMedia": "Minha Mídia",
+ "HeaderPhotoAlbums": "Álbuns de fotografias",
+ "HeaderPaths": "Localizações",
+ "HeaderPasswordReset": "Redefinição de palavra-passe",
+ "HeaderPassword": "Palavra-passe",
+ "HeaderParentalRatings": "Classificações etárias",
+ "HeaderOtherItems": "Outros itens",
+ "HeaderOnNow": "No ar",
+ "HeaderNextVideoPlayingInValue": "O próximo vídeo começa dentro de {0}",
+ "HeaderNextEpisodePlayingInValue": "O próximo episódio começa dentro de {0}",
+ "HeaderNewDevices": "Novos dispositivos",
+ "HeaderNewApiKey": "Nova chave API",
+ "HeaderMyMediaSmall": "O meu conteúdo (pequeno)",
+ "HeaderMyMedia": "O meu conteúdo",
"HeaderMyDevice": "O meu dispositivo",
- "HeaderMusicQuality": "Qualidade da Música",
- "HeaderMoreLikeThis": "Mais Como Isso",
- "HeaderMetadataSettings": "Configurações de Metadados",
- "HeaderMediaFolders": "Pastas de Mídia",
- "HeaderMedia": "Mídia",
- "HeaderLiveTvTunerSetup": "Configuração do Sintonizador de TV Ao Vivo",
- "HeaderLibrarySettings": "Configurações da Biblioteca",
- "HeaderLibraryOrder": "Ordem da Biblioteca",
- "HeaderLibraryFolders": "Pastas da Biblioteca",
- "HeaderLibraryAccess": "Acesso à Biblioteca",
+ "HeaderMusicQuality": "Qualidade da música",
+ "HeaderMoreLikeThis": "Títulos semelhantes",
+ "HeaderMetadataSettings": "Definições de metadados",
+ "HeaderMediaFolders": "Pastas Multimédia",
+ "HeaderMedia": "Multimédia",
+ "HeaderLiveTvTunerSetup": "Configurar Sintonizador de TV",
+ "HeaderLibrarySettings": "Definições da biblioteca",
+ "HeaderLibraryOrder": "Ordenação da Biblioteca",
+ "HeaderLibraryFolders": "Pastas Multimédia",
+ "HeaderLibraryAccess": "Acesso à biblioteca",
"HeaderLibraries": "Bibliotecas",
- "HeaderLatestRecordings": "Gravações Recentemente Adicionadas",
- "HeaderLatestMusic": "Músicas Recentemente Adicionadas",
- "HeaderLatestMovies": "Filmes Recentemente Adicionados",
- "HeaderLatestMedia": "Mídia Recentemente Adicionada",
- "HeaderLatestEpisodes": "Episódios Recentemente Adicionados",
+ "HeaderLatestRecordings": "Gravações adicionadas recentemente",
+ "HeaderLatestMusic": "Músicas adicionadas recentemente",
+ "HeaderLatestMovies": "Filmes adicionados recentemente",
+ "HeaderLatestMedia": "Conteúdo adicionado recentemente",
+ "HeaderLatestEpisodes": "Episódios adicionados recentemente",
"HeaderKeepSeries": "Manter Série",
- "HeaderKeepRecording": "Manter Gravação",
- "HeaderInstantMix": "Mistura Instantânea",
+ "HeaderKeepRecording": "Continuar a gravar",
+ "HeaderInstantMix": "Mistura instantânea",
"HeaderInstall": "Instalar",
"HeaderImageSettings": "Configurações de Imagem",
"HeaderImageOptions": "Opções de Imagem",
- "HeaderIdentifyItemHelp": "Insira um ou mais critérios de pesquisa. Remova critérios para aumentar os resultados da pesquisa.",
+ "HeaderIdentifyItemHelp": "Introduz um ou mais critérios de pesquisa. Remove os critérios para aumentar os resultados da pesquisa.",
"HeaderIdentificationHeader": "Cabeçalho de Identificação",
"HeaderIdentificationCriteriaHelp": "Introduza, pelo menos, um critério de identificação.",
"HeaderIdentification": "Identificação",
"HeaderHttpHeaders": "Cabeçalhos HTTP",
- "HeaderGuideProviders": "Provedores de Dados da Guia de TV",
- "HeaderDeleteTaskTrigger": "Excluir Gatilho da Tarefa",
- "HeaderBranding": "Branding",
- "HeaderFrequentlyPlayed": "Reproduzidos com Frequência",
- "HeaderForKids": "Para Crianças",
- "HeaderFetchImages": "Buscar Imagens",
+ "HeaderGuideProviders": "Fornecedores de Guia TV",
+ "HeaderDeleteTaskTrigger": "Remover tarefa agendada",
+ "HeaderBranding": "Marca",
+ "HeaderFrequentlyPlayed": "Reproduzido Frequentemente",
+ "HeaderForKids": "Para crianças",
+ "HeaderFetchImages": "Procurar Imagens",
"OptionDownloadImagesInAdvanceHelp": "Por omissão, a maioria das imagens são transferidas apenas quando uma aplicação do Jellyfin as solicita. Active esta opção para descarregar todas as imagens antecipadamente, assim que novos ficheiros multimédia sejam importados. Isto pode aumentar significativamente a duração da análise da biblioteca.",
"OptionDownloadImagesInAdvance": "Transferir imagens antecipadamente",
"OptionDislikes": "Não gostos",
- "OptionDisableUserHelp": "O servidor não permitirá conexões deste usuário. Conexões existentes serão encerradas abruptamente.",
- "OptionDisableUser": "Desativar este usuário",
- "OptionDatePlayed": "Data Reproduzida",
- "OptionDateAddedImportTime": "Usar data escaneada na biblioteca",
- "OptionDateAddedFileTime": "Usar data de criação do arquivo",
- "OptionDateAdded": "Data Adicionada",
+ "OptionDisableUserHelp": "O servidor não permitirá nenhuma conexão deste usuário. As conexões existentes serão encerradas abruptamente.",
+ "OptionDisableUser": "Desativar este utilizador",
+ "OptionDatePlayed": "Data de reprodução",
+ "OptionDateAddedImportTime": "Utilizar a data da análise para a biblioteca",
+ "OptionDateAddedFileTime": "Usar a data de criação do ficheiro",
+ "OptionDateAdded": "Data de adição",
"OptionDaily": "Diariamente",
"OptionCustomUsers": "Personalizado",
- "OptionCriticRating": "Avaliação da Crítica",
- "OptionCommunityRating": "Avaliação da Comunidade",
- "OptionAllowVideoPlaybackTranscoding": "Permitir reprodução de vídeo que requer transcodificação",
- "OptionAllowUserToManageServer": "Permitir que este usuário gerencie o servidor",
- "OptionAllowRemoteSharedDevicesHelp": "Dispositivos DLNA são considerados compartilhados até que um usuário comece a controlá-los.",
- "OptionAllowRemoteSharedDevices": "Permitir controle remoto de dispositivos compartilhados",
- "MessageConfirmDeleteTunerDevice": "Tem certeza de que deseja excluir este dispositivo?",
- "MapChannels": "Mapear Canais",
- "ManageLibrary": "Gerenciar biblioteca",
+ "OptionCriticRating": "Classificação dos críticos",
+ "OptionCommunityRating": "Classificação da comunidade",
+ "OptionAllowVideoPlaybackTranscoding": "Permitir reprodução de vídeo que necessite de transcodificação",
+ "OptionAllowUserToManageServer": "Permitir a este utilizador gerir o servidor",
+ "OptionAllowRemoteSharedDevicesHelp": "Dispositivos DLNA são considerados partilhados até que um utilizador comece a controlá-lo.",
+ "OptionAllowRemoteSharedDevices": "Permitir controlo remoto de dispositivos partilhados",
+ "MessageConfirmDeleteTunerDevice": "Tem a certeza que deseja remover este dispositivo?",
+ "MapChannels": "Mapear canais",
+ "ManageLibrary": "Gerir biblioteca",
"LabelSize": "Tamanho",
- "LabelPlayDefaultAudioTrack": "Reproduzir faixa de áudio padrão, independentemente do idioma",
+ "LabelPlayDefaultAudioTrack": "Reproduzir a faixa de áudio predefinida independentemente do idioma",
"LabelPlaceOfBirth": "Local de nascimento",
- "OptionAllowRemoteControlOthers": "Permitir controle remoto de outros usuários",
- "OptionAllowMediaPlaybackTranscodingHelp": "Restringir o acesso à transcodificação pode causar falhas na reprodução em clientes devido a formatos de mídia não suportados.",
- "OptionAllowMediaPlayback": "Permitir reprodução de mídia",
- "OptionAllowManageLiveTv": "Permitir gerenciamento de gravações da TV Ao Vivo",
- "OptionAllowLinkSharing": "Permitir compartilhamento em redes sociais",
+ "OptionAllowRemoteControlOthers": "Permitir controlo remoto de outros utilizadores",
+ "OptionAllowMediaPlaybackTranscodingHelp": "Restringir o acesso à transcodificação pode causar falhas de reprodução em clientes devido a formatos de mídia não suportados.",
+ "OptionAllowMediaPlayback": "Permitir reprodução de multimédia",
+ "OptionAllowManageLiveTv": "Permitir gestão de gravações de TV em Direto",
+ "OptionAllowLinkSharing": "Permitir partilha nas redes sociais",
"OptionAllowContentDownloading": "Permitir download dos ficheiros multimédia",
- "OptionAllowBrowsingLiveTv": "Permitir acesso à TV Ao Vivo",
- "OptionAllowAudioPlaybackTranscoding": "Permitir transcodificação de reprodução de áudio",
+ "OptionAllowBrowsingLiveTv": "Permitir acesso a TV em Directo",
+ "OptionAllowAudioPlaybackTranscoding": "Permitir reprodução de áudio que necessite transcodificação",
"OptionAllUsers": "Todos os utilizadores",
"OptionAdminUsers": "Administradores",
"OneChannel": "Um canal",
- "MessageNoPluginConfiguration": "Este plugin não possui configurações para serem definidas.",
- "MessageNoNextUpItems": "Nenhum encontrado. Comece a assistir seus programas!",
+ "MessageNoPluginConfiguration": "Esta extensão não tem definições que possas alterar.",
+ "MessageNoNextUpItems": "Nenhum encontrado. Comece a ver os seus programas!",
"News": "Notícias",
- "NewCollectionNameExample": "Exemplo: Coleção Star Wars",
- "NewCollection": "Nova Coleção",
- "Mute": "Silenciar",
+ "NewCollectionNameExample": "Exemplo: Coleção Guerra das Estrelas",
+ "NewCollection": "Nova coleção",
+ "Mute": "Desativar som",
"Movies": "Filmes",
- "MoreUsersCanBeAddedLater": "Mais usuários podem ser adicionados depois, a partir do Painel.",
- "Monday": "Segunda-feira",
+ "MoreUsersCanBeAddedLater": "É possível adicionar utilizadores posteriormente através do Painel de Controlo.",
+ "Monday": "Segunda",
"MinutesBefore": "minutos antes",
- "MinutesAfter": "minutos após",
- "MessageUnableToConnectToServer": "Não conseguimos conectar ao servidor selecionado no momento. Por favor, certifique-se de que ele está em execução e tente novamente.",
- "MessageTheFollowingLocationWillBeRemovedFromLibrary": "A seguinte localização de mídia será removida da sua biblioteca",
- "MessageReenableUser": "Veja abaixo para reativar",
- "MessagePluginInstallDisclaimer": "ATENÇÃO: Instalar um plugin de terceiros envolve riscos. Ele pode conter código instável ou malicioso, e pode mudar a qualquer momento. Instale apenas plugins de autores confiáveis e esteja ciente dos efeitos potenciais, incluindo consultas a serviços externos, verificações de biblioteca mais longas ou processamento adicional em segundo plano.",
- "MessagePluginConfigurationRequiresLocalAccess": "Para configurar este plugin, faça login diretamente no seu servidor local.",
- "MessagePleaseEnsureInternetMetadata": "Por favor, assegure-se de que o download de metadados da internet está ativado.",
- "MessagePasswordResetForUsers": "Os seguintes usuários tiveram suas senhas redefinidas. Eles agora podem fazer login com os códigos PIN que foram usados para realizar a redefinição.",
+ "MinutesAfter": "minutos depois",
+ "MessageUnableToConnectToServer": "Não foi possível estabelecer ligação ao servidor. Por favor, certifique-se que o servidor está a correr e tente de novo.",
+ "MessageTheFollowingLocationWillBeRemovedFromLibrary": "As seguintes pastas multimédia serão removidas da tua biblioteca",
+ "MessageReenableUser": "Vê abaixo para reativar",
+ "MessagePluginInstallDisclaimer": "AVISO: Instalar uma extensão de terceiros implica riscos. Pode conter código instável ou malicioso e pode ser alterada a qualquer momento. Instala apenas extensões de autores em quem confies e está atento aos possíveis efeitos, incluindo consultas a serviços externos, análises da biblioteca mais longas ou processamento adicional em segundo plano.",
+ "MessagePluginConfigurationRequiresLocalAccess": "Para configurar esta extensão, inicia sessão localmente no servidor.",
+ "MessagePleaseEnsureInternetMetadata": "Certifique-se de que a transferência de metadados da Internet está ativada.",
+ "MessagePasswordResetForUsers": "Os seguintes utilizadores tiveram as suas palavras-passe redefinidas. Podem agora iniciar sessão com os códigos PIN que foram utilizados para efetuar a redefinição.",
"MessageNothingHere": "Nada aqui.",
"MessageNoTrailersFound": "Instale o canal de trailers para aprimorar sua experiência de cinema, adicionando uma biblioteca de trailers da Internet.",
- "MessageNoPluginsInstalled": "Você não tem plugins instalados.",
- "MessageNoMovieSuggestionsAvailable": "Nenhuma sugestão de filme disponível no momento. Comece a assistir e avaliar seus filmes, e então volte para ver suas recomendações.",
- "MessageNoAvailablePlugins": "Nenhum plugin disponível.",
- "MessageLeaveEmptyToInherit": "Deixe em branco para herdar as configurações de um item pai ou o valor padrão global.",
+ "MessageNoPluginsInstalled": "Não existe nenhuma extensão instalada.",
+ "MessageNoMovieSuggestionsAvailable": "De momento, não existem sugestões de filmes disponíveis. Veja filmes e avalie-os, e regresse para ver as suas recomendações.",
+ "MessageNoAvailablePlugins": "Não existem extensões disponíveis.",
+ "MessageLeaveEmptyToInherit": "Deixa em branco para herdar as definições de um item pai ou do valor predefinido global.",
"MessageItemsAdded": "Itens adicionados.",
- "MessageItemSaved": "Item salvo.",
- "MessageInvalidUser": "Nome de usuário ou senha inválidos. Por favor, tente novamente.",
- "MessageInvalidForgotPasswordPin": "Um código PIN inválido ou expirado foi inserido. Por favor, tente novamente.",
- "MessageImageTypeNotSelected": "Por favor, selecione um tipo de imagem no menu suspenso.",
- "MessageImageFileTypeAllowed": "Apenas arquivos JPEG e PNG são suportados.",
- "MessageForgotPasswordInNetworkRequired": "Por favor, tente novamente dentro da sua rede doméstica para iniciar o processo de redefinição de senha.",
- "MessageForgotPasswordFileCreated": "O seguinte arquivo foi criado em seu servidor e contém instruções sobre como proceder",
- "MessageFileReadError": "Ocorreu um erro ao ler o arquivo. Por favor, tente novamente.",
- "MessageEnablingOptionLongerScans": "Ativar esta opção pode resultar em verificações de biblioteca significativamente mais longas.",
- "MessageDownloadQueued": "Download na fila.",
- "MessageDirectoryPickerLinuxInstruction": "Para Linux em Arch Linux, CentOS, Debian, Fedora, openSUSE ou Ubuntu, você deve conceder ao usuário do serviço pelo menos acesso de leitura aos seus locais de armazenamento.",
- "MessageDirectoryPickerBSDInstruction": "Para BSD, pode ser necessário configurar o armazenamento dentro do 'FreeNAS Jail' para que o Jellyfin possa acessar sua mídia.",
- "MessageDeleteTaskTrigger": "Tem certeza de que deseja excluir este gatilho de tarefa?",
+ "MessageItemSaved": "Item guardado.",
+ "MessageInvalidUser": "Nome de utilizador ou palavra-passe inválidos. Por favor, tenta novamente.",
+ "MessageInvalidForgotPasswordPin": "Introduziste um código PIN inválido ou expirado. Tenta novamente.",
+ "MessageImageTypeNotSelected": "Por favor, seleccione um tipo de imagem da lista.",
+ "MessageImageFileTypeAllowed": "Apenas são suportados ficheiros JPEG ou PNG.",
+ "MessageForgotPasswordInNetworkRequired": "Por favor, volte a tentar o processo de redefinição de palavra-passe quando se encontrar dentro da sua rede local.",
+ "MessageForgotPasswordFileCreated": "Foi criado no servidor o ficheiro abaixo que contém instruções de como prosseguir",
+ "MessageFileReadError": "Ocorreu um erro ao ler este ficheiro.",
+ "MessageEnablingOptionLongerScans": "Ativar esta opção pode prolongar significativamente o tempo das análises da biblioteca.",
+ "MessageDownloadQueued": "Transferência pendente.",
+ "MessageDirectoryPickerLinuxInstruction": "Em sistemas operativos como Arch Linux, CentOS, Debian, Fedora, OpenSuse ou Ubuntu, é necessário dar permissão ao utilizador que executa o processo Jellyfin para ter, no mínimo, acesso de leitura à pasta.",
+ "MessageDirectoryPickerBSDInstruction": "Para BSD, você talvez precise configurar o armazenamento em seu FreeNAS Jail para que o Jellyfin possa acessar sua mídia.",
+ "MessageDeleteTaskTrigger": "Tem a certeza que deseja remover o agendamento desta tarefa?",
"MessageCreateAccountAt": "Criar uma conta em {0}",
- "MessageContactAdminToResetPassword": "Por favor, entre em contato com o administrador do sistema para redefinir sua senha.",
- "MessageConfirmShutdown": "Tem certeza de que deseja desligar o servidor?",
- "MessageConfirmRevokeApiKey": "Tem certeza de que deseja revogar esta chave da API? A conexão do aplicativo com este servidor será encerrada abruptamente.",
+ "MessageContactAdminToResetPassword": "Contacte o administrador do sistema para redefinir a sua palavra-passe.",
+ "MessageConfirmShutdown": "Tem a certeza que deseja encerrar o servidor?",
+ "MessageConfirmRevokeApiKey": "Tem certeza de que deseja revogar esta chave de API? A conexão do aplicativo com este servidor será encerrada abruptamente.",
"MessageConfirmRestart": "Tem certeza de que deseja reiniciar o Jellyfin?",
- "MessageConfirmRemoveMediaLocation": "Tem certeza de que deseja remover este local?",
- "MessageConfirmRecordingCancellation": "Cancelar gravação?",
+ "MessageConfirmRemoveMediaLocation": "Tem a certeza que deseja remover esta localização?",
+ "MessageConfirmRecordingCancellation": "Cancelar a gravação?",
"MessageConfirmProfileDeletion": "Tem a certeza de que deseja remover este perfil?",
- "MessageConfirmDeleteGuideProvider": "Tem certeza de que deseja excluir este provedor de guia?",
- "MessageAreYouSureYouWishToRemoveMediaFolder": "Tem certeza de que deseja remover esta pasta de mídia?",
- "MessageAreYouSureDeleteSubtitles": "Tem certeza de que deseja excluir este arquivo de legenda?",
+ "MessageConfirmDeleteGuideProvider": "Tem a certeza de que pretende eliminar este fornecedor de programação de TV?",
+ "MessageAreYouSureYouWishToRemoveMediaFolder": "Tem a certeza de que deseja remover esta pasta?",
+ "MessageAreYouSureDeleteSubtitles": "Tem a certeza que deseja remover este ficheiro de legendas?",
"MessageAlreadyInstalled": "Esta versão já se encontra instalada.",
"Menu": "Menu",
- "MediaIsBeingConverted": "A mídia está sendo convertida para um formato compatível com o dispositivo que está reproduzindo a mídia.",
- "MediaInfoTimestamp": "Timestamp",
+ "MediaIsBeingConverted": "O conteúdo está a ser convertido para um formato compatível com o dispositivo em que o está a reproduzir.",
+ "MediaInfoTimestamp": "Data e Hora",
"MediaInfoSize": "Tamanho",
"MediaInfoSampleRate": "Taxa de amostragem",
"MediaInfoResolution": "Resolução",
"MediaInfoProfile": "Perfil",
- "MediaInfoPixelFormat": "Formato de pixel",
+ "MediaInfoPixelFormat": "Formato dos píxeis",
"MediaInfoPath": "Caminho",
"MediaInfoLevel": "Nível",
"MediaInfoChannels": "Canais",
- "MaxParentalRatingHelp": "Conteúdo com uma classificação mais alta será ocultado deste usuário.",
- "MarkUnplayed": "Marcar como não reproduzido",
- "MarkPlayed": "Marcar como reproduzido",
- "LiveTV": "TV Ao Vivo",
- "LiveBroadcasts": "Transmissões ao vivo",
- "Live": "Ao Vivo",
- "LibraryAccessHelp": "Selecione as bibliotecas para compartilhar com este usuário. Administradores poderão editar todas as pastas usando o gerenciador de metadados.",
- "LatestFromLibrary": "Recentemente Adicionado em {0}",
+ "MaxParentalRatingHelp": "O conteúdo com uma classificação etária mais elevada será ocultado a este utilizador.",
+ "MarkUnplayed": "Marcar como não visto",
+ "MarkPlayed": "Marcar como visto",
+ "LiveTV": "TV em Directo",
+ "LiveBroadcasts": "Emissões em Directo",
+ "Live": "Em Directo",
+ "LibraryAccessHelp": "Seleciona as bibliotecas a partilhar com este utilizador. Os administradores poderão editar todas as pastas utilizando o gestor de metadados.",
+ "LatestFromLibrary": "Adicionado recentemente em {0}",
"LabelZipCode": "Código Postal",
- "LabelYoureDone": "Você Concluiu!",
+ "LabelYoureDone": "Concluiu!",
"LabelXDlnaDocHelp": "Determina o conteúdo do elemento X_DLNADOC no namespace urn:schemas-dlna-org:device-1-0.",
"LabelXDlnaCapHelp": "Determina o conteúdo do elemento X_DLNACAP no namespace urn:schemas-dlna-org:device-1-0.",
- "LabelVersionInstalled": "{0} instalada",
+ "LabelVersionInstalled": "{0} instalado",
"LabelValue": "Valor",
- "LabelUsername": "Nome de usuário",
- "LabelUserRemoteClientBitrateLimitHelp": "Substitua o valor global padrão definido nas configurações do servidor, veja Painel > Reprodução > Streaming.",
+ "LabelUsername": "Nome de utilizador",
+ "LabelUserRemoteClientBitrateLimitHelp": "Esta opção substituirá o valor predefinido do servidor, definido no Painel de Controlo > Reprodução > Transmissão.",
"LabelUserLibraryHelp": "Seleccione a biblioteca de utilizador a mostrar no dispositivo. Deixe em branco para herdar a definição padrão.",
"LabelUserLibrary": "Biblioteca do Utilizador",
- "LabelUser": "Usuário",
+ "LabelUser": "Utilizador",
"LabelUseNotificationServices": "Usar os seguintes serviços",
"LabelTypeText": "Texto",
"LabelType": "Tipo",
- "LabelTunerType": "Tipo de sintonizador",
- "LabelTunerIpAddress": "Endereço IP do Sintonizador",
- "LabelTriggerType": "Tipo de gatilho",
- "LabelTranscodingThreadCountHelp": "Selecione o número máximo de threads a serem usadas durante a transcodificação. Reduzir a contagem de threads diminuirá o uso da CPU, mas pode não converter rápido o suficiente para uma experiência de reprodução suave.",
- "LabelTranscodingThreadCount": "Contagem de threads da transcodificação",
- "LabelTranscodingTempPathHelp": "Especifique um caminho personalizado para os arquivos de transcodificação servidos aos clientes. Deixe em branco para usar o padrão do servidor.",
+ "LabelTunerType": "Tipo do sintonizador",
+ "LabelTunerIpAddress": "Endereço IP do sintonizador",
+ "LabelTriggerType": "Tipo do Accionador",
+ "LabelTranscodingThreadCountHelp": "Seleciona o número máximo de processos a utilizar durante a transcodificação. Reduzir o número de processos diminuirá a utilização do CPU, mas pode não converter com rapidez suficiente para uma experiência de reprodução suave.",
+ "LabelTranscodingThreadCount": "Número de processos de transcodificação",
+ "LabelTranscodingTempPathHelp": "Especifica um caminho personalizado para os ficheiros transcodificados enviados aos clientes, ou deixa em branco para utilizar o caminho predefinido do servidor.",
"LabelTimeLimitHours": "Limite de tempo (horas)",
- "LabelTime": "Hora",
- "LabelTextSize": "Tamanho do texto",
- "LabelTagline": "Tagline",
+ "LabelTime": "Tempo",
+ "LabelTextSize": "Tamanho do Texto",
+ "LabelTagline": "Slogan",
"LabelSupportedMediaTypes": "Tipos de Conteúdos Suportados",
- "LabelSubtitlePlaybackMode": "Modo de legenda",
+ "LabelSubtitlePlaybackMode": "Modo de legendas",
"LabelSubtitleFormatHelp": "Exemplo: srt",
- "LabelStopping": "Parando",
- "LabelStopWhenPossible": "Parar quando possível",
- "LabelStatus": "Status",
- "LabelStartWhenPossible": "Iniciar quando possível",
+ "LabelStopping": "A parar",
+ "LabelStopWhenPossible": "Parar, quando possível",
+ "LabelStatus": "Estado",
+ "LabelStartWhenPossible": "Começar, quando possível",
"LabelSource": "Fonte",
"LabelSonyAggregationFlagsHelp": "Determina o conteúdo do elemento aggregationFlags no namespace urn:schemas-sonycom:av.",
"LabelSonyAggregationFlags": "Marcas de agregação da Sony",
- "LabelSkipIfGraphicalSubsPresentHelp": "Manter versões de texto das legendas resultará em entrega mais eficiente e diminuirá a probabilidade de transcodificação de vídeo.",
- "LabelSkipIfGraphicalSubsPresent": "Pular se o vídeo já contiver legendas embutidas",
- "LabelSkipIfAudioTrackPresentHelp": "Desmarque isso para garantir que todos os vídeos tenham legendas, independentemente do idioma do áudio.",
- "LabelSkipIfAudioTrackPresent": "Pular se a faixa de áudio padrão corresponder ao idioma de download",
- "LabelSkipForwardLength": "Duração do avanço",
- "LabelSkipBackLength": "Duração do retrocesso",
- "LabelSimultaneousConnectionLimit": "Limite de streams simultâneos",
+ "LabelSkipIfGraphicalSubsPresentHelp": "Manter versões em texto das legendas resultará numa transmissão mais eficiente e diminuirá a necessidade de transcodificação de vídeo.",
+ "LabelSkipIfGraphicalSubsPresent": "Ignorar se o vídeo já possuir legendas integradas",
+ "LabelSkipIfAudioTrackPresentHelp": "Desmarque esta opção para garantir que todos os vídeos têm legendas, independentemente do idioma do áudio.",
+ "LabelSkipIfAudioTrackPresent": "Ignorar no caso de o idioma da faixa de áudio principal coincidir com o idioma de transferência",
+ "LabelSkipForwardLength": "Avançar reprodução (segundos)",
+ "LabelSkipBackLength": "Recuar reprodução (segundos)",
+ "LabelSimultaneousConnectionLimit": "Limite de transmissões simultâneas",
"LabelServerName": "Nome do servidor",
- "LabelServerHostHelp": "192.168.1.100:8096 ou https://meuservidor.com",
- "LabelServerHost": "Host",
- "LabelSeriesRecordingPath": "Caminho de gravação da série",
+ "LabelServerHostHelp": "192.168.1.100:8096 ou https://omeudominio.com",
+ "LabelServerHost": "Servidor",
+ "LabelSeriesRecordingPath": "Localização para gravação de séries",
"LabelSerialNumber": "Número de série",
"LabelSendNotificationToUsers": "Enviar notificação para",
- "LabelSelectVersionToInstall": "Selecionar versão para instalar",
+ "LabelSelectVersionToInstall": "Seleciona a versão a instalar",
"LabelSelectUsers": "Seleccionar utilizadores",
- "LabelSelectFolderGroupsHelp": "Pastas que não estão marcadas serão exibidas sozinhas em sua própria visualização.",
- "LabelSelectFolderGroups": "Agrupar automaticamente o conteúdo das seguintes pastas em visualizações como 'Filmes', 'Música' e 'TV'",
+ "LabelSelectFolderGroupsHelp": "Pastas não selecionadas serão apresentadas sozinhas, na sua própria vista.",
+ "LabelSelectFolderGroups": "Agrupar automaticamente o conteúdo das pastas seguintes em vistas como Filmes, Música e TV",
"LabelSeasonNumber": "Número da temporada",
- "LabelScreensaver": "Protetor de tela",
- "LabelScheduledTaskLastRan": "Última execução {0}, levando {1}.",
- "HeaderFeatureAccess": "Acesso a Recursos",
+ "LabelScreensaver": "Proteção de ecrã",
+ "LabelScheduledTaskLastRan": "Última execução {0}. Tempo de execução {1}.",
+ "HeaderFeatureAccess": "Acesso a funcionalidades",
"HeaderExternalIds": "IDs Externos",
"HeaderError": "Erro",
- "HeaderEnabledFieldsHelp": "Desmarque um campo para bloqueá-lo e impedir que seus dados sejam alterados.",
- "HeaderEnabledFields": "Campos Ativados",
- "HeaderEditImages": "Editar Imagens",
+ "HeaderEnabledFieldsHelp": "Desmarque um campo para bloqueá-lo e evitar que os seus dados sejam alterados.",
+ "HeaderEnabledFields": "Campos ativados",
+ "HeaderEditImages": "Editar imagens",
"HeaderEasyPinCode": "Código PIN",
- "HeaderDownloadSync": "Baixar & Sincronizar",
+ "HeaderDownloadSync": "Transferência e Sincronização",
"HeaderDirectPlayProfileHelp": "Adicionar perfis de reprodução directa que indiquem que formatos o dispositivo pode suportar nativamente.",
"HeaderDirectPlayProfile": "Perfil da Reprodução Directa",
"HeaderDevices": "Dispositivos",
"HeaderDeviceAccess": "Acesso ao Dispositivo",
- "HeaderDeveloperInfo": "Informações do Desenvolvedor",
- "HeaderDetectMyDevices": "Detectar Meus Dispositivos",
- "HeaderDeleteProvider": "Excluir Provedor",
- "HeaderDeleteItems": "Excluir Itens",
+ "HeaderDeveloperInfo": "Informação do programador",
+ "HeaderDetectMyDevices": "Detetar os meus dispositivos",
+ "HeaderDeleteProvider": "Eliminar fornecedor",
+ "HeaderDeleteItems": "Remover Itens",
"Filters": "Filtros",
- "FileReadError": "Ocorreu um erro ao ler o arquivo.",
- "FileReadCancelled": "A leitura do arquivo foi cancelada.",
- "FileNotFound": "Arquivo não encontrado.",
- "File": "Arquivo",
- "Features": "Recursos",
+ "FileReadError": "Ocorreu um erro ao ler o ficheiro.",
+ "FileReadCancelled": "A leitura do ficheiro foi cancelada.",
+ "FileNotFound": "Ficheiro não encontrado.",
+ "File": "Ficheiro",
+ "Features": "Funcionalidades",
"Favorites": "Favoritos",
"Favorite": "Favorito",
- "FastForward": "Avançar",
- "FFmpegSavePathNotFound": "Não conseguimos encontrar o FFmpeg usando o caminho informado. O FFprobe também é necessário e deve existir na mesma pasta. Esses componentes normalmente vêm juntos no mesmo download. Verifique o caminho e tente novamente.",
+ "FastForward": "Avanço rápido",
+ "FFmpegSavePathNotFound": "Não conseguimos encontrar o FFmpeg na localização que introduziste. O FFprobe também é necessário e deve estar na mesma pasta. Estes componentes são, por norma, instalados em conjunto. Por favor, verifica a localização e tenta novamente.",
"Extras": "Extras",
- "ExtractChapterImagesHelp": "Extrair imagens de capítulos permitirá que os clientes exibam menus gráficos de seleção de cenas. O processo pode ser lento, intensivo em recursos e pode exigir vários gigabytes de espaço. Ele é executado quando os vídeos são descobertos e também como uma tarefa agendada noturna. O agendamento é configurável na área de tarefas agendadas. Não é recomendável executar essa tarefa durante horários de pico.",
+ "ExtractChapterImagesHelp": "Extrair imagens dos capítulos permite aos clientes apresentar menus de seleção de cenas com gráficos. O processo poderá ser lento e exigente em recursos, bem como ocupar múltiplos gigabytes em disco. Este processo é executado quando novos vídeos são encontrados e também através de uma tarefa agendada noturna. É possível configurar a hora de execução para que, idealmente, não coincida com horas de maior utilização.",
"ExtraLarge": "Extra Grande",
- "ExitFullscreen": "Sair da tela cheia",
+ "ExitFullscreen": "Sair do ecrã inteiro",
"EveryNDays": "A cada {0} dias",
- "ErrorSavingTvProvider": "Ocorreu um erro ao salvar o provedor de TV. Verifique se ele está acessível e tente novamente.",
- "ErrorPleaseSelectLineup": "Por favor, selecione uma programação e tente novamente. Se nenhuma programação estiver disponível, verifique se seu nome de usuário, senha e código postal estão corretos.",
- "ErrorStartHourGreaterThanEnd": "A hora de término deve ser maior que a hora de início.",
- "ErrorGettingTvLineups": "Ocorreu um erro ao baixar as programações de TV. Verifique se suas informações estão corretas e tente novamente.",
- "ErrorDeletingItem": "Ocorreu um erro ao excluir o item do servidor. Verifique se o Jellyfin tem acesso de gravação à pasta de mídia e tente novamente.",
- "ErrorAddingXmlTvFile": "Ocorreu um erro ao acessar o arquivo XMLTV. Verifique se o arquivo existe e tente novamente.",
- "ErrorAddingTunerDevice": "Ocorreu um erro ao adicionar o dispositivo sintonizador. Verifique se ele está acessível e tente novamente.",
- "ErrorAddingMediaPathToVirtualFolder": "Ocorreu um erro ao adicionar o caminho da mídia. Verifique se o caminho é válido e se o Jellyfin tem acesso a esse local.",
+ "ErrorSavingTvProvider": "Ocorreu um erro ao guardar o fornecedor de televisão. Certifique-se de que está acessível e tente novamente.",
+ "ErrorPleaseSelectLineup": "Seleciona a programação e tenta novamente. Se não houver programações disponíveis, verifica se o teu nome de utilizador, palavra-passe e código postal estão corretos.",
+ "ErrorStartHourGreaterThanEnd": "A hora de fim deve ser superior à hora de início.",
+ "ErrorGettingTvLineups": "Ocorreu um erro ao transferir a programação de TV. Por favor, certifique-se que a sua informação está correcta e tente novamente.",
+ "ErrorDeletingItem": "Ocorreu um erro ao eliminar o item do servidor. Verifica se o Jellyfin tem acesso de escrita à pasta multimédia e tenta novamente.",
+ "ErrorAddingXmlTvFile": "Ocorreu um erro ao aceder ao ficheiro XmlTV. Por favor, garanta que o ficheiro está acessível e tente de novo.",
+ "ErrorAddingTunerDevice": "Ocorreu um erro ao adicionar o dispositivo de sintonização. Por favor, garanta que está acessível e tente de novo.",
+ "ErrorAddingMediaPathToVirtualFolder": "Ocorreu um erro ao adicionares a localização dos ficheiros. Certifica-te de que o caminho é valido e que o Jellyfin tem acesso ao mesmo.",
"Episodes": "Episódios",
- "EndsAtValue": "Termina em {0}",
- "EnableThemeVideosHelp": "Reproduzir vídeos tema em segundo plano enquanto navega pela biblioteca.",
- "EnableThemeSongsHelp": "Reproduzir as músicas tema em segundo plano enquanto navega pela biblioteca.",
- "EnableStreamLoopingHelp": "Ative isso se os streams ao vivo contiverem apenas alguns segundos de dados e precisarem ser solicitados continuamente. Ativar isso quando não necessário pode causar problemas.",
- "EnablePhotosHelp": "Imagens serão detectadas e exibidas junto com outros arquivos de mídia.",
- "EnablePhotos": "Exibir as fotos",
- "EnableNextVideoInfoOverlayHelp": "Ao final de um vídeo, exibir informações sobre o próximo vídeo na lista de reprodução atual.",
- "EnableNextVideoInfoOverlay": "Mostrar informações do próximo vídeo durante a reprodução",
+ "EndsAtValue": "Termina às {0}",
+ "EnableThemeVideosHelp": "Reproduzir vídeos do tema em plano de fundo durante a navegação pela Biblioteca.",
+ "EnableThemeSongsHelp": "Reproduz as bandas sonoras em segundo plano enquanto navegas na biblioteca.",
+ "EnableStreamLoopingHelp": "Ativa esta opção se as transmissões em direto contiverem apenas alguns segundos de dados e precisarem de ser solicitadas continuamente. Ativar esta opção quando não é necessária pode causar problemas.",
+ "EnablePhotosHelp": "Imagens serão detectadas e mostradas em conjunto com outros ficheiros multimédia.",
+ "EnablePhotos": "Mostrar fotografias",
+ "EnableNextVideoInfoOverlayHelp": "No final de um vídeo, mostrar informação sobre o próximo vídeo na lista de reprodução.",
+ "EnableNextVideoInfoOverlay": "Mostrar informação sobre o próximo vídeo durante a reprodução",
"EnableHardwareEncoding": "Ativar codificação por hardware",
- "EnableExternalVideoPlayersHelp": "Um menu de reprodutor externo será exibido ao iniciar a reprodução de vídeo.",
- "EnableExternalVideoPlayers": "Reprodutores de vídeo externos",
- "EnableDisplayMirroring": "Espelhamento de exibição",
- "EnableColorCodedBackgrounds": "Fundos com cores codificadas",
+ "EnableExternalVideoPlayersHelp": "O menu do leitor externo surgirá ao iniciar a reprodução de vídeo.",
+ "EnableExternalVideoPlayers": "Leitores de vídeo externos",
+ "EnableDisplayMirroring": "Duplicação de ecrã",
+ "EnableColorCodedBackgrounds": "Código de cores para o fundo",
"EnableCinemaMode": "Modo cinema",
- "EnableBackdropsHelp": "Exibir os planos de fundo em algumas páginas enquanto navega pela biblioteca.",
+ "EnableBackdropsHelp": "Mostrar imagens de fundo em algumas páginas durante a navegação pela Biblioteca.",
"EditSubtitles": "Editar legendas",
"EditMetadata": "Editar metadados",
"EditImages": "Editar imagens",
"Edit": "Editar",
"EasyPasswordHelp": "O código PIN é utilizado para acesso off-line em clientes suportados e pode ser usado para um acesso fácil dentro da rede.",
- "DropShadow": "Sombra projetada",
- "DrmChannelsNotImported": "Canais com DRM não serão importados.",
- "DownloadsValue": "{0} downloads",
- "Download": "Baixar",
+ "DropShadow": "sombra projetada",
+ "DrmChannelsNotImported": "Canais com proteção DRM não serão importados.",
+ "DownloadsValue": "{0} transferências",
+ "Download": "Transferir",
"DoNotRecord": "Não gravar",
- "DisplayModeHelp": "Selecione o estilo de layout que você deseja para a interface.",
- "DisplayMissingEpisodesWithinSeasonsHelp": "Isso também deve estar ativado para bibliotecas de TV na configuração do servidor.",
- "DisplayMissingEpisodesWithinSeasons": "Exibir episódios ausentes dentro das temporadas",
- "DisplayInOtherHomeScreenSections": "Exibir em seções da tela inicial como 'Mídia Recentemente Adicionada' e 'Continuar Assistindo'",
- "DisplayInMyMedia": "Exibir na tela inicial",
- "Display": "Exibição",
- "Disconnect": "Desconectar",
+ "DisplayModeHelp": "Seleciona o estilo de apresentação da interface.",
+ "DisplayMissingEpisodesWithinSeasonsHelp": "Deve também ser ativado para as bibliotecas de TV nas configurações do servidor.",
+ "DisplayMissingEpisodesWithinSeasons": "Mostrar episódios em falta numa série",
+ "DisplayInOtherHomeScreenSections": "Mostrar na página Início em secções como 'Conteúdo adicionado recentemente' e 'Continuar a ver'",
+ "DisplayInMyMedia": "Mostrar no ecrã principal",
+ "Display": "Visualização",
+ "Disconnect": "Desligar",
"Disc": "Disco",
- "Directors": "Diretores",
- "Director": "Diretor",
- "DirectStreaming": "Streaming direto",
- "DirectStreamHelp2": "O consumo de energia pelo streaming direto geralmente depende do perfil de áudio. Apenas o stream de vídeo é sem perdas.",
- "DirectStreamHelp1": "O stream de vídeo é compatível com o dispositivo, mas possui um formato de áudio incompatível (DTS, Dolby TrueHD, etc.) ou número de canais de áudio. O stream de vídeo será reembalado sem perdas em tempo real antes de ser enviado ao dispositivo. Apenas o stream de áudio será transcodificado.",
+ "Directors": "Realização",
+ "Director": "Realização",
+ "DirectStreaming": "Transmissão direta",
+ "DirectStreamHelp2": "A energia consumida pela transmissão direta depende normalmente do perfil de áudio. Apenas a transmissão do vídeo é feita sem perdas.",
+ "DirectStreamHelp1": "A transmissão de vídeo é compatível com o dispositivo, mas possui um formato de áudio (DTS, Dolby TrueHD, etc.) ou número de canais de áudio incompatível. A transmissão será reempacotada sem perda em tempo real antes de ser enviada para o dispositivo. Apenas a transmissão de áudio será transcodificada.",
"DirectPlaying": "Reprodução direta",
- "DeviceAccessHelp": "Isso se aplica apenas a dispositivos que podem ser identificados de forma única e não impedirá o acesso pelo navegador. Filtrar o acesso do dispositivo do usuário impedirá que eles usem novos dispositivos até que tenham sido aprovados aqui.",
- "DetectingDevices": "Detectando dispositivos",
- "Desktop": "Desktop",
+ "DeviceAccessHelp": "Apenas se aplica a dispositivos que podem ser identificados como únicos e que não impedem o acesso ao navegador. Filtrar o acesso a dispositivos a um utilizador, impede-o de utilizar novos dispositivos, até estes serem aprovados aqui.",
+ "DetectingDevices": "Procurando dispositivos",
+ "Desktop": "Área de Trabalho",
"Descending": "Descendente",
- "Depressed": "Depressivo",
- "DeleteUserConfirmation": "Tem certeza de que deseja excluir este usuário?",
- "DeleteUser": "Excluir usuário",
- "DeleteMedia": "Excluir mídia",
- "DeleteImageConfirmation": "Tem certeza de que deseja excluir esta imagem?",
- "DeleteImage": "Excluir imagem",
- "DeleteDeviceConfirmation": "Tem certeza de que deseja excluir este dispositivo? Ele reaparecerá na próxima vez que um usuário fizer login com ele.",
- "Delete": "Excluir",
- "DefaultSubtitlesHelp": "As legendas são carregadas com base nas flags padrão e forçadas nos metadados embutidos. As preferências de idioma são consideradas quando várias opções estão disponíveis.",
- "ErrorDefault": "Ocorreu um erro ao processar a solicitação. Por favor, tente novamente mais tarde.",
- "Default": "Padrão",
- "DeathDateValue": "Falecido: {0}",
- "DatePlayed": "Data de reprodução",
- "DateAdded": "Data adicionada",
+ "Depressed": "Baixo relevo",
+ "DeleteUserConfirmation": "Tens a certeza de que pretendes eliminar este utilizador?",
+ "DeleteUser": "Eliminar utilizador",
+ "DeleteMedia": "Remover multimédia",
+ "DeleteImageConfirmation": "Tens a certeza de que pretendes eliminar esta imagem?",
+ "DeleteImage": "Eliminar imagem",
+ "DeleteDeviceConfirmation": "Tem a certeza que deseja remover este dispositivo? Reaparecerá na próxima vez que o utilizador inicie sessão a partir dele.",
+ "Delete": "Eliminar",
+ "DefaultSubtitlesHelp": "As legendas são carregadas com base nas definições predefinidas e forçadas para os metadados incorporados. As preferências de idioma são consideradas quando existem múltiplas opções disponíveis.",
+ "ErrorDefault": "Ocorreu um erro ao processar o pedido. Por favor, tente novamente mais tarde.",
+ "Default": "Predefinição",
+ "DeathDateValue": "Faleceu: {0}",
+ "DatePlayed": "Reproduzido a",
+ "DateAdded": "Adicionado a",
"CustomDlnaProfilesHelp": "Crie um perfil personalizado para um novo dispositivo ou para sobrepor a um perfil de sistema.",
- "CriticRating": "Avaliação da crítica",
- "CopyStreamURLSuccess": "URL copiada com sucesso.",
- "CopyStreamURL": "Copiar URL do Stream",
- "Continuing": "Continuando",
- "ContinueWatching": "Continuar assistindo",
- "Connect": "Conectar",
- "ConfirmEndPlayerSession": "Você gostaria de desligar o Jellyfin em {0}?",
- "ConfirmDeletion": "Confirmar exclusão",
- "ConfirmDeleteItems": "Excluir estes itens irá removê-los do sistema de arquivos e da sua biblioteca de mídia. Tem certeza de que deseja continuar?",
- "ConfirmDeleteItem": "Excluir este item irá removê-lo do sistema de arquivos e da sua biblioteca de mídia. Tem certeza de que deseja continuar?",
- "ConfirmDeleteImage": "Excluir imagem?",
- "ConfigureDateAdded": "Configurar como os metadados de 'Data adicionada' são determinados em Painel > Bibliotecas > Exibição",
+ "CriticRating": "Classificação dos críticos",
+ "CopyStreamURLSuccess": "URL copiado com sucesso.",
+ "CopyStreamURL": "Copiar URL da corrente",
+ "Continuing": "A Continuar",
+ "ContinueWatching": "Continuar a ver",
+ "Connect": "Ligar",
+ "ConfirmEndPlayerSession": "Deseja encerrar o Servidor Jellyfin em {0}?",
+ "ConfirmDeletion": "Confirmar remoção",
+ "ConfirmDeleteItems": "A eliminação destes itens elimina-os do sistema de ficheiros e da tua biblioteca multimédia. Tens a certeza de que queres continuar?",
+ "ConfirmDeleteItem": "A eliminação deste item irá eliminá-lo do sistema de ficheiros e da tua biblioteca multimédia. Tens a certeza de que queres continuar?",
+ "ConfirmDeleteImage": "Eliminar a imagem?",
+ "ConfigureDateAdded": "Configura a forma como é atribuída a data de adição, no Painel de controlo > Bibliotecas > Visualização",
"Composer": "Compositor",
- "CommunityRating": "Avaliação da comunidade",
- "ColorTransfer": "Transferência de cor",
- "ColorSpace": "Espaço de cor",
- "ColorPrimaries": "Primárias de cor",
+ "CommunityRating": "Classificação da comunidade",
+ "ColorTransfer": "Transferência de cores",
+ "ColorSpace": "Espaço de cores",
+ "ColorPrimaries": "Cores primárias",
"Collections": "Coleções",
- "CinemaModeConfigurationHelp": "O modo cinema traz a experiência do cinema para sua casa, permitindo exibir trailers e introduções personalizadas antes do conteúdo principal.",
+ "CinemaModeConfigurationHelp": "O modo cinema traz a experiência do cinema diretamente para a tua sala de estar, com a possibilidade de reproduzir trailers e introduções personalizadas antes da longa-metragem.",
"Channels": "Canais",
"ChannelNumber": "Número do canal",
"ChannelNameOnly": "Apenas canal {0}",
- "ChannelAccessHelp": "Selecione os canais para compartilhar com este usuário. Administradores podem editar todos os canais usando o gerenciador de metadados.",
- "ChangingMetadataImageSettingsNewContent": "Alterações nas configurações de download de metadados ou imagens só se aplicam a novos conteúdos adicionados à sua biblioteca. Para aplicar em títulos existentes, atualize os metadados manualmente.",
+ "ChannelAccessHelp": "Seleciona os canais para partilhar com este utilizador. Os administradores poderão editar todos os canais utilizando o gestor de metadados.",
+ "ChangingMetadataImageSettingsNewContent": "As alterações às definições de transferência de metadados ou de imagens só se aplicam a novos conteúdos adicionados à tua biblioteca. Para aplicar as alterações aos títulos existentes, terás de atualizar os metadados manualmente.",
"Categories": "Categorias",
- "CancelSeries": "Cancelar série",
+ "CancelSeries": "Cancelar gravação de série",
"CancelRecording": "Cancelar gravação",
- "ButtonWebsite": "Site",
+ "ButtonWebsite": "Website",
"ButtonUninstall": "Desinstalar",
"ButtonTrailer": "Trailer",
"ButtonSubmit": "Enviar",
"ButtonStop": "Parar",
"ButtonStart": "Iniciar",
- "ButtonSignOut": "Sair",
- "ButtonSignIn": "Entrar",
- "ButtonShutdown": "Desligar",
+ "ButtonSignOut": "Terminar sessão",
+ "ButtonSignIn": "Iniciar sessão",
+ "ButtonShutdown": "Encerrar",
"ButtonSend": "Enviar",
"ButtonSelectView": "Selecionar visualização",
- "ButtonSelectDirectory": "Selecionar diretório",
- "ButtonScanAllLibraries": "Verificar todas as bibliotecas",
+ "ButtonSelectDirectory": "Seleccione a Pasta",
+ "ButtonScanAllLibraries": "Analisar todas as bibliotecas",
"ButtonRevoke": "Revogar",
"ButtonResume": "Retomar",
"ButtonResetEasyPassword": "Redefinir código PIN",
- "ButtonRename": "Renomear",
+ "ButtonRename": "Alterar o nome",
"ButtonRemove": "Remover",
- "ButtonRefreshGuideData": "Atualizar dados do guia",
- "ButtonQuickStartGuide": "Guia de configuração",
+ "ButtonRefreshGuideData": "Atualizar Guia TV",
+ "ButtonQuickStartGuide": "Guia de instalação",
"ButtonPreviousTrack": "Faixa anterior",
"ButtonPause": "Pausar",
- "ButtonParentalControl": "Controle dos pais",
+ "ButtonParentalControl": "Controlo parental",
"ButtonOpen": "Abrir",
- "ButtonOk": "Ok",
- "ButtonNextTrack": "Próxima faixa",
+ "ButtonOk": "OK",
+ "ButtonNextTrack": "Faixa seguinte",
"ButtonNetwork": "Rede",
"ButtonMore": "Mais",
- "ButtonManualLogin": "Login manual",
+ "ButtonManualLogin": "Início de sessão manual",
"ButtonLibraryAccess": "Acesso à biblioteca",
- "ButtonInfo": "Informações",
- "ButtonFullscreen": "Tela cheia",
- "ButtonForgotPassword": "Esqueci minha senha",
- "ButtonEditOtherUserPreferences": "Editar perfil, imagem e preferências deste usuário.",
+ "ButtonInfo": "Informação",
+ "ButtonFullscreen": "Ecrã inteiro",
+ "ButtonForgotPassword": "Esqueci-me da palavra-passe",
+ "ButtonEditOtherUserPreferences": "Editar este perfil de utilizador, imagem e preferências pessoais.",
"Auto": "Automático",
- "AlwaysPlaySubtitles": "Sempre exibir",
- "AllowMediaConversionHelp": "Conceder ou negar acesso ao recurso de conversão de mídia.",
- "AllowMediaConversion": "Permitir conversão de mídia",
- "ButtonGotIt": "Entendi",
- "ButtonChangeServer": "Trocar servidor",
+ "AlwaysPlaySubtitles": "Mostrar sempre legendas",
+ "AllowMediaConversionHelp": "Permitir ou negar acesso à funcionalidade de conversão multimédia.",
+ "AllowMediaConversion": "Permitir conversão multimédia",
+ "ButtonGotIt": "Entendido",
+ "ButtonChangeServer": "Alterar Servidor",
"ButtonCancel": "Cancelar",
"ButtonBack": "Voltar",
- "OptionMissingEpisode": "Episódios Ausentes",
- "OptionMax": "Máx",
+ "OptionMissingEpisode": "Episódios em Falta",
+ "OptionMax": "Máximo",
"OptionLikes": "Gostos",
"OptionImdbRating": "Classificação no IMDb",
"OptionIgnoreTranscodeByteRangeRequestsHelp": "Essas solicitações serão atendidas, mas irão ignorar o cabeçalho do intervalo de bytes.",
"OptionHlsSegmentedSubtitles": "Legendas segmentadas HLS",
- "OptionHideUserFromLoginHelp": "Útil para contas de administrador privadas ou ocultas. O usuário precisará fazer login manualmente inserindo seu nome de usuário e senha.",
- "OptionHideUser": "Ocultar este usuário das telas de login",
- "OptionHasThemeVideo": "Vídeo Tema",
- "OptionHasThemeSong": "Música Tema",
+ "OptionHideUserFromLoginHelp": "Útil para contas de administrador privadas ou ocultas. O utilizador terá de iniciar sessão manualmente, introduzindo o nome de utilizador e a palavra-passe.",
+ "OptionHideUser": "Ocultar este utilizador nos formulários de início de sessão",
+ "OptionHasThemeVideo": "Vídeo do tema",
+ "OptionHasThemeSong": "Banda sonora do tema",
"OptionExternallyDownloaded": "Download Externo",
"OptionEveryday": "Todos os dias",
"OptionEstimateContentLength": "Estimar o tamanho do conteúdo ao transcodificar",
"OptionEquals": "Igual a",
"OptionEnableM2tsModeHelp": "Activar o modo m2ts ao codificar para mpegts.",
"OptionEnableM2tsMode": "Activar modo M2ts",
- "OptionEnableExternalContentInSuggestionsHelp": "Permitir que trailers da internet e programas de TV ao vivo sejam incluídos dentro do conteúdo sugerido.",
- "OptionEnableAccessToAllLibraries": "Ativar acesso a todas as bibliotecas",
- "OptionEnableAccessFromAllDevices": "Ativar acesso de todos os dispositivos",
+ "OptionEnableExternalContentInSuggestionsHelp": "Permitir que trailers da Internet e programas de TV em Directo sejam incluídos no conteúdo sugerido.",
+ "OptionEnableAccessToAllLibraries": "Permitir acesso a todas as bibliotecas",
+ "OptionEnableAccessFromAllDevices": "Permitir o acesso a partir de todos os dispositivos",
"OptionEmbedSubtitles": "Incorporar no contentor",
"OptionDvd": "DVD",
- "LabelBurnSubtitles": "Queimar legendas",
- "LabelBlockContentWithTags": "Bloquear itens com tags",
- "LabelBlastMessageIntervalHelp": "Determine a duração em segundos entre as mensagens alive.",
- "LabelBlastMessageInterval": "Intervalo da mensagem Alive",
+ "LabelBurnSubtitles": "Integrar legendas",
+ "LabelBlockContentWithTags": "Bloquear itens com etiquetas",
+ "LabelBlastMessageIntervalHelp": "Determina a duração em segundos entre as mensagens de exploração enviadas pelo servidor.",
+ "LabelBlastMessageInterval": "Intervalo para envio de mensagens de reconhecimento",
"LabelBitrate": "Taxa de bits",
"LabelBirthYear": "Ano de nascimento",
- "ButtonAudioTracks": "Faixas de áudio",
+ "ButtonAudioTracks": "Faixas de Áudio",
"ButtonArrowRight": "Direita",
"ButtonArrowLeft": "Esquerda",
- "ButtonAddUser": "Adicionar usuário",
+ "ButtonAddUser": "Adicionar utilizador",
"ButtonAddServer": "Adicionar servidor",
- "ButtonAddScheduledTaskTrigger": "Adicionar gatilho",
- "ButtonAddMediaLibrary": "Adicionar biblioteca de mídia",
- "ButtonAddImage": "Adicionar imagem",
- "BurnSubtitlesHelp": "Define se o servidor deve embutir legendas. Evitar isso melhora o desempenho. Selecione Automático para embutir formatos baseados em imagem (VobSub, PGS, SUB, IDX, etc.) e certos ASS ou SSA.",
- "MessageBrowsePluginCatalog": "Navegue pelo nosso catálogo de plugins para ver os plugins disponíveis.",
+ "ButtonAddScheduledTaskTrigger": "Adicionar tarefa agendada",
+ "ButtonAddMediaLibrary": "Adicionar Biblioteca de Multimédia",
+ "ButtonAddImage": "Adicionar Imagem",
+ "BurnSubtitlesHelp": "Determina se o servidor deve integrar as legendas. Evitar a integração de legendas melhora o desempenho do servidor. Selecione Automático para que legendas baseadas em imagem (VOBSUB, PGS, SUB/IDX) e certos formatos ASS/SSA sejam integrados.",
+ "MessageBrowsePluginCatalog": "Explora as extensões disponíveis no nosso catálogo.",
"Browse": "Explorar",
- "BoxRear": "Caixa (traseira)",
+ "BoxRear": "Caixa (verso)",
"Box": "Caixa",
"Books": "Livros",
- "BookLibraryHelp": "Livros de áudio e texto são suportados. Veja o {0}guia de nomes de livros{1}.",
- "Blacklist": "Lista negra",
+ "BookLibraryHelp": "São suportados audiolivros e ebooks. Consulta o {0} guia de nomenclatura de livros {1}.",
+ "Blacklist": "Lista Negra",
"BirthPlaceValue": "Local de nascimento: {0}",
"BirthLocation": "Local de nascimento",
"BirthDateValue": "Nascimento: {0}",
- "Banner": "Banner",
- "Backdrops": "Planos de fundo",
- "Backdrop": "Plano de fundo",
- "AuthProviderHelp": "Selecione um provedor de autenticação para validar a senha deste usuário.",
+ "Banner": "Faixa",
+ "Backdrops": "Imagens de fundo",
+ "Backdrop": "Imagem de fundo",
+ "AuthProviderHelp": "Seleciona um mecanismo de autenticação a ser utilizado para validar as credenciais deste utilizador.",
"Audio": "Áudio",
- "AspectRatio": "Proporção",
- "Ascending": "Ascendente",
- "Art": "Clearart",
- "AroundTime": "Por volta de {0}",
- "Anytime": "Qualquer horário",
+ "AspectRatio": "Proporção da imagem",
+ "Ascending": "Crescente",
+ "Art": "ClearArt (imagem transparente)",
+ "AroundTime": "Por volta das {0}",
+ "Anytime": "Qualquer altura",
"AnyLanguage": "Qualquer idioma",
"Artists": "Artistas",
- "AsManyAsPossible": "O máximo possível",
- "AllowedRemoteAddressesHelp": "Lista separada por vírgulas de endereços IP ou entradas IP/máscara de redes que poderão se conectar remotamente. Se deixado em branco, todos os endereços remotos serão permitidos.",
- "AllowRemoteAccessHelp": "Se desmarcado, todas as conexões remotas serão bloqueadas.",
+ "AsManyAsPossible": "Tantos quanto possível",
+ "AllowedRemoteAddressesHelp": "Lista separada por vírgula de endereços IP ou entradas de máscara de IP/rede para redes que terão permissão para se conectar remotamente. Se deixado em branco, todos os endereços remotos serão permitidos.",
+ "AllowRemoteAccessHelp": "Se desmarcada, todas as conexões remotas serão bloqueadas.",
"AllowRemoteAccess": "Permitir conexões remotas a este servidor",
- "AllowOnTheFlySubtitleExtractionHelp": "Legendas embutidas podem ser extraídas dos vídeos e entregues em texto simples, evitando transcodificação de vídeo. Em alguns sistemas, pode ser demorado e travar a reprodução. Desative para embutir legendas na transcodificação quando não suportadas nativamente pelo dispositivo.",
- "AllowOnTheFlySubtitleExtraction": "Permitir extração de legendas em tempo real",
- "AllowHWTranscodingHelp": "Permite que o sintonizador transcodifique streams em tempo real. Pode ajudar a reduzir a transcodificação exigida pelo servidor.",
+ "AllowOnTheFlySubtitleExtractionHelp": "Legendas integradas podem ser extraídas do vídeo e enviadas como texto simples para os clientes para evitar transcodificação. Em certos dispositivos, esta poderá ser uma operação demorada e pode causar interrupções de reprodução durante o processo de extração. Desative esta opção para que as legendas sejam integradas no vídeo durante a conversão para um formato suportado pelo dispositivo de destino.",
+ "AllowOnTheFlySubtitleExtraction": "Permitir a extração de legendas em tempo real",
+ "AllowHWTranscodingHelp": "Permite ao sintonizador converter emissões em tempo real. Poderá reduzir a necessidade de conversão a fazer pelo servidor.",
"AllLibraries": "Todas as bibliotecas",
"AllLanguages": "Todos os idiomas",
"AllEpisodes": "Todos os episódios",
- "AllComplexFormats": "Todos os formatos complexos (ASS, SSA, VobSub, PGS, SUB, IDX, ...)",
+ "AllComplexFormats": "Todos os formatos complexos (ASS, SSA, VobSub, PGS, SUB, IDX, …)",
"AllChannels": "Todos os canais",
"All": "Todos",
"Alerts": "Alertas",
"Albums": "Álbuns",
- "Aired": "Exibido",
- "AirDate": "Data de exibição",
+ "Aired": "Estreou em",
+ "AirDate": "Data de estreia",
"AdditionalNotificationServices": "Explore o catálogo de extensões para instalar serviços adicionais de notificação.",
- "AddedOnValue": "Adicionado em {0}",
- "AddToPlaylist": "Adicionar à playlist",
+ "AddedOnValue": "{0} foi adicionado",
+ "AddToPlaylist": "Adicionar à lista de reprodução",
"AddToPlayQueue": "Adicionar à fila de reprodução",
"AddToCollection": "Adicionar à coleção",
"Add": "Adicionar",
"Actor": "Ator",
- "AccessRestrictedTryAgainLater": "O acesso está restrito no momento. Por favor, tente novamente mais tarde.",
+ "AccessRestrictedTryAgainLater": "O acesso está atualmente restrito. Por favor, tenta mais tarde.",
"Absolute": "Absoluto",
- "AlwaysPlaySubtitlesHelp": "Legendas que correspondam à preferência de idioma serão carregadas independentemente do idioma do áudio.",
- "SearchForMissingMetadata": "Pesquisar metadados ausentes",
- "ScanLibrary": "Verificar biblioteca",
- "HeaderDeleteItem": "Excluir Item",
- "HeaderDeleteDevice": "Excluir Dispositivo",
- "HeaderDefaultRecordingSettings": "Configurações Padrão de Gravação",
- "HeaderDateIssued": "Data de Emissão",
+ "AlwaysPlaySubtitlesHelp": "As legendas correspondentes à preferência de idioma serão carregadas, independentemente do idioma do áudio.",
+ "SearchForMissingMetadata": "Procurar metadados em falta",
+ "ScanLibrary": "Analisar biblioteca",
+ "HeaderDeleteItem": "Remover item",
+ "HeaderDeleteDevice": "Eliminar dispositivo",
+ "HeaderDefaultRecordingSettings": "Predefinições de gravação",
+ "HeaderDateIssued": "Data da emissão",
"HeaderCustomDlnaProfiles": "Perfis Personalizados",
- "HeaderContinueWatching": "Continuar Assistindo",
- "HeaderContinueListening": "Continuar Ouvindo",
+ "HeaderContinueWatching": "Continuar a ver",
+ "HeaderContinueListening": "Continuar a ouvir",
"HeaderContainerProfileHelp": "Os Perfis do Contentor indicam as limitações de um dispositivo ao reproduzir formatos específicos. Se hourver alguma limitação, o ficheiro multimédia será transcodificado, mesmo se o formato estiver configurado para reprodução directa.",
"HeaderContainerProfile": "Perfil do Contentor",
- "HeaderConnectionFailure": "Falha na Conexão",
- "HeaderConnectToServer": "Conectar ao Servidor",
+ "HeaderConnectionFailure": "Falha de Ligação",
+ "HeaderConnectToServer": "Ligar ao Servidor",
"HeaderConfirmRevokeApiKey": "Revogar Chave da API",
"HeaderConfirmProfileDeletion": "Confirmar Remoção do Perfil",
- "HeaderConfirmPluginInstallation": "Confirmar Instalação do Plugin",
+ "HeaderConfirmPluginInstallation": "Confirmar instalação da extensão",
"HeaderConfigureRemoteAccess": "Configurar Acesso Remoto",
"HeaderCodecProfileHelp": "Os perfis do Codec indicam as limitações de um dispositivo ao reproduzir codecs específicos. Se uma limitação ocorrer, o ficheiro multimédia será transcodificado, mesmo se o codec estiver configurado para reprodução direta.",
"HeaderCodecProfile": "Perfil do Codec",
- "HeaderChapterImages": "Imagens de Capítulo",
- "HeaderChannelAccess": "Acesso ao Canal",
- "HeaderCancelSeries": "Cancelar Série",
- "HeaderCancelRecording": "Cancelar Gravação",
- "HeaderBlockItemsWithNoRating": "Bloquear itens sem informações de classificação ou com classificação não reconhecida",
- "HeaderAudioSettings": "Configurações de Áudio",
- "HeaderAudioBooks": "Audiolivros",
- "HeaderApp": "App",
- "HeaderApiKeysHelp": "Aplicativos externos precisam de uma chave de API para se comunicar com o servidor. As chaves são emitidas ao fazer login com uma conta de usuário normal ou ao conceder manualmente uma chave ao aplicativo.",
+ "HeaderChapterImages": "Imagens dos capítulos",
+ "HeaderChannelAccess": "Acesso ao canal",
+ "HeaderCancelSeries": "Cancelar gravação de série",
+ "HeaderCancelRecording": "Cancelar gravação",
+ "HeaderBlockItemsWithNoRating": "Bloquear conteúdo sem informação de classificação etária ou com informação desconhecida",
+ "HeaderAudioSettings": "Definições de áudio",
+ "HeaderAudioBooks": "Livros de Áudio",
+ "HeaderApp": "Aplicação",
+ "HeaderApiKeysHelp": "As aplicações externas necessitam de uma chave de API para comunicar com o servidor. As chaves são emitidas ao iniciar sessão com uma conta de utilizador normal ou concedendo manualmente a chave à aplicação.",
"HeaderApiKeys": "Chaves da API",
"HeaderApiKey": "Chave da API",
- "HeaderAllowMediaDeletionFrom": "Permitir exclusão de mídia de",
+ "HeaderAllowMediaDeletionFrom": "Permitir remoção de multimédia a partir de",
"HeaderAlert": "Alerta",
"HeaderAlbumArtists": "Artistas do Álbum",
"HeaderAdditionalParts": "Partes Adicionais",
- "HeaderAddUpdateImage": "Adicionar/Atualizar Imagem",
- "HeaderAddToPlaylist": "Adicionar à Playlist",
- "HeaderAddToCollection": "Adicionar à Coleção",
+ "HeaderAddUpdateImage": "Adicionar/Atualizar imagem",
+ "HeaderAddToPlaylist": "Adicionar à playlist",
+ "HeaderAddToCollection": "Adicionar à coleção",
"HeaderActivity": "Atividade",
- "HeaderActiveRecordings": "Gravações Ativas",
- "HeaderActiveDevices": "Dispositivos Ativos",
- "HeaderAccessScheduleHelp": "Crie uma agenda de acesso para limitar o acesso a determinadas horas.",
- "HeaderAccessSchedule": "Agenda de Acesso",
- "HardwareAccelerationWarning": "Ativar a aceleração de hardware pode causar instabilidade em alguns ambientes. Certifique-se de que seu sistema operacional e drivers de vídeo estão totalmente atualizados. Se você tiver dificuldade em reproduzir vídeo após ativar isso, será necessário alterar a configuração de volta para Nenhum.",
- "HDPrograms": "Programas em HD",
- "EncoderPresetHelp": "Escolha um valor mais rápido para melhorar o desempenho ou um valor mais lento para melhorar a qualidade.",
- "H264CrfHelp": "O 'Constant Rate Factor' (CRF) é a configuração de qualidade padrão para os codificadores de software x264 e x265. Você pode definir valores entre 0 e 51, onde valores mais baixos resultam em melhor qualidade (à custa de tamanhos de arquivo maiores). Valores razoáveis estão entre 18 e 28. O padrão para x264 é 23, e para x265 é 28, então você pode usar isso como ponto de partida. Codificadores de hardware não usam essas configurações.",
- "GuideProviderSelectListings": "Selecionar listagens",
- "Guide": "Guia",
- "GuestStar": "Participação especial",
+ "HeaderActiveRecordings": "Gravações ativas",
+ "HeaderActiveDevices": "Dispositivos ativos",
+ "HeaderAccessScheduleHelp": "Crie uma restrição horária de acesso para limitar o acesso ao Jellyfin a determinadas horas.",
+ "HeaderAccessSchedule": "Restrição Horária de Acesso",
+ "HardwareAccelerationWarning": "Ativar a aceleração por hardware pode causar instabilidade em alguns ambientes. Certifica-te de que o teu sistema operativo e controladores de vídeo estão totalmente atualizados. Se tiveres dificuldades em reproduzir vídeo depois de ativares esta opção, terás de voltar a alterar a definição para \"Nenhum\".",
+ "HDPrograms": "Programas HD",
+ "EncoderPresetHelp": "Escolha um valor mais rápido para melhorar o desempenho, ou um valor mais lento para melhorar a qualidade.",
+ "H264CrfHelp": "O parâmetro \"Constant Rate Factor\" (CRF) define o nível de qualidade predefinido para os codificadores de software x264 e x265. Os valores possíveis vão de 0 a 51, sendo que valores mais baixos produzem melhor qualidade — à custa de ficheiros maiores. Os valores mais comuns situam-se entre 18 e 28. O valor predefinido para o x264 é 23, e para o x265 é 28, podendo servir como ponto de partida para afinares a qualidade conforme necessário. Codificadores por hardware não utilizam esta definição.",
+ "GuideProviderSelectListings": "Selecionar listas",
+ "Guide": "Programação",
+ "GuestStar": "Estrela convidada",
"GroupVersions": "Agrupar versões",
"GroupBySeries": "Agrupar por série",
- "ErrorAddingListingsToSchedulesDirect": "Ocorreu um erro ao adicionar a programação à sua conta do Schedules Direct. O Schedules Direct permite apenas um número limitado de programações por conta. Você pode precisar fazer login no site do Schedules Direct e remover outras listagens da sua conta antes de prosseguir.",
- "Ended": "Encerrado",
- "DefaultMetadataLangaugeDescription": "Estas são suas configurações padrão e podem ser personalizadas por biblioteca.",
- "Genres": "Gêneros",
- "Genre": "Gênero",
+ "ErrorAddingListingsToSchedulesDirect": "Ocorreu um erro ao adicionar o alinhamento à tua conta do Schedules Direct. O Schedules Direct só permite um número limitado de alinhamentos por conta. Poderás ter de iniciar sessão no site do Schedules Direct e remover outras listagens da tua conta antes de prosseguires.",
+ "Ended": "Terminado",
+ "DefaultMetadataLangaugeDescription": "Estes são os valores-predefinidos que podem ser personalizados para cada uma das bibliotecas.",
+ "Genres": "Géneros",
+ "Genre": "Género",
"General": "Geral",
- "Fullscreen": "Tela cheia",
- "Friday": "Sexta-feira",
+ "Fullscreen": "Ecrã inteiro",
+ "Friday": "Sexta",
"FormatValue": "Formato: {0}",
"Folders": "Pastas",
"OptionIgnoreTranscodeByteRangeRequests": "Ignorar solicitações de intervalo de bytes de transcodificação",
- "OptionEnableAccessToAllChannels": "Ativar acesso a todos os canais",
- "FetchingData": "Buscando dados adicionais",
- "EnableStreamLooping": "Repetir streams ao vivo automaticamente",
- "Down": "Para baixo",
+ "OptionEnableAccessToAllChannels": "Permitir acesso a todos os canais",
+ "FetchingData": "A transferir informação adicional",
+ "EnableStreamLooping": "Transmissões em direto em loop automático",
+ "Down": "Baixar",
"HeaderNavigation": "Navegação",
- "ButtonSplit": "Dividir",
+ "ButtonSplit": "Separar",
"AskAdminToCreateLibrary": "Peça a um administrador para criar uma biblioteca.",
- "AllowFfmpegThrottling": "Controlar transcodificações",
+ "AllowFfmpegThrottling": "Transcodificação do Acelerador",
"DashboardOperatingSystem": "Sistema Operativo",
- "LabelUserLoginAttemptsBeforeLockout": "Tentativas de login falhadas antes do bloqueio do usuário",
+ "LabelUserLoginAttemptsBeforeLockout": "Tentativas de início de sessão falhadas até o utilizador ser bloqueado",
"LabelTrackNumber": "Número da faixa",
- "LabelSportsCategories": "Categorias de esportes",
+ "LabelSportsCategories": "Categorias de desporto",
"Yesterday": "Ontem",
- "MusicVideo": "Vídeo Musical",
- "MusicLibraryHelp": "Veja o {0}guia de nomes de música{1}.",
- "MusicArtist": "Artista de Música",
- "MusicAlbum": "Álbum de Música",
- "MovieLibraryHelp": "Veja o {0}guia de nomes de filmes{1}.",
+ "MusicVideo": "Vídeo de música",
+ "MusicLibraryHelp": "Consulta o {0}guia de nomenclatura de músicas{1}.",
+ "MusicArtist": "Artista musical",
+ "MusicAlbum": "Álbum de música",
+ "MovieLibraryHelp": "Consulta o {0}guia de nomenclatura de filmes{1}.",
"MoveRight": "Mover para a direita",
- "MoveLeft": "Mover para a esquerda",
- "MoreMediaInfo": "Informações da Mídia",
+ "MoveLeft": "Mova à esquerda",
+ "MoreMediaInfo": "Informações sobre mídia",
"MoreFromValue": "Mais de {0}",
"MediaInfoRefFrames": "Quadros de referência",
- "MediaInfoContainer": "Contêiner",
+ "MediaInfoContainer": "Container",
"MediaInfoAnamorphic": "Anamórfico",
"LabelVideoResolution": "Resolução do vídeo",
- "LabelTypeMetadataDownloaders": "Downloaders de metadados ({0})",
- "LabelTranscodePath": "Caminho de transcodificação",
- "OnlyImageFormats": "Apenas Formatos de Imagem (VobSub, PGS, SUB)",
- "OnlyForcedSubtitlesHelp": "Apenas legendas marcadas como forçadas serão carregadas.",
- "OnlyForcedSubtitles": "Apenas Forçadas",
- "Off": "Desligado",
+ "LabelTypeMetadataDownloaders": "Fornecedores de metadados ({0})",
+ "LabelTranscodePath": "Caminho da transcodificação",
+ "OnlyImageFormats": "Somente formatos de imagem (VOBSUB, PGS, SUB)",
+ "OnlyForcedSubtitlesHelp": "Apenas as legendas marcadas como forçadas serão carregadas.",
+ "OnlyForcedSubtitles": "Apenas legendas forçadas",
+ "Off": "Desligadas",
"NumLocationsValue": "{0} pastas",
"Normal": "Normal",
"None": "Nenhum",
- "NoSubtitlesHelp": "As legendas não serão carregadas por padrão. Elas ainda podem ser ativadas manualmente durante a reprodução.",
- "NoSubtitleSearchResultsFound": "Nenhum resultado encontrado.",
- "NoNewDevicesFound": "Nenhum novo dispositivo encontrado. Para adicionar um novo sintonizador, feche este diálogo e insira as informações do dispositivo manualmente.",
- "NoCreatedLibraries": "Parece que você ainda não criou nenhuma biblioteca. {0>Você gostaria de criar uma agora?{1}",
+ "NoSubtitlesHelp": "As legendas não serão carregadas por padrão. Eles ainda podem ser ativados manualmente durante a reprodução.",
+ "NoSubtitleSearchResultsFound": "Sem resultados.",
+ "NoNewDevicesFound": "Não foram encontrados novos dispositivos. Para adicionares um novo sintonizador, fecha esta caixa de diálogo e introduz as informações do dispositivo manualmente.",
+ "NoCreatedLibraries": "Parece que você ainda não criou nenhuma biblioteca. {0} Deseja criar um agora? {1}",
"No": "Não",
- "Mobile": "Móvel",
- "MetadataSettingChangeHelp": "Alterar as configurações de metadados afetará o novo conteúdo adicionado a partir de agora. Para atualizar o conteúdo existente, abra a tela de detalhes e clique no botão 'Atualizar', ou faça atualizações em massa usando o 'Gerenciador de Metadados'.",
- "MetadataManager": "Gerenciador de Metadados",
+ "Mobile": "Telemóvel",
+ "MetadataSettingChangeHelp": "Alterar as definições de metadados irá afetar apenas conteúdo adicionado no futuro. Para atualizar conteúdo já existente, abre o painel de detalhes e clica no botão 'Recarregar metadados' ou executa uma atualização em massa utilizando o Gestor de metadados.",
+ "MetadataManager": "Gestor de metadados",
"Metadata": "Metadados",
"MessageYouHaveVersionInstalled": "Você possui a versão {0} atualmente instalada.",
- "MessageUnsetContentHelp": "O conteúdo será exibido como pastas simples. Para melhores resultados, use o gerenciador de metadados para definir os tipos de conteúdo das subpastas.",
- "MessagePleaseWait": "Por favor, aguarde. Isso pode levar um minuto.",
- "MessagePlayAccessRestricted": "A reprodução deste conteúdo está atualmente restrita. Por favor, entre em contato com o administrador do servidor para mais informações.",
- "MessageNoServersAvailable": "Nenhum servidor encontrado usando a descoberta automática de servidores.",
- "MessageNoCollectionsAvailable": "As coleções permitem que você desfrute de agrupamentos personalizados de Filmes, Séries e Álbuns. Clique no botão '+' para começar a criar coleções.",
- "MessageConfirmAppExit": "Você deseja sair?",
+ "MessageUnsetContentHelp": "O conteúdo será exibido como pastas simples. Para obter melhores resultados, use o gerenciador de metadados para definir os tipos de conteúdo das subpastas.",
+ "MessagePleaseWait": "Por favor, espere. Isso pode levar um minuto.",
+ "MessagePlayAccessRestricted": "A reprodução deste conteúdo está atualmente restrita. Entre em contato com o administrador do servidor para obter mais informações.",
+ "MessageNoServersAvailable": "Nenhum servidor foi encontrado usando a descoberta automática de servidores.",
+ "MessageNoCollectionsAvailable": "As coleções permitem-te desfrutar de agrupamentos personalizados de filmes, séries e álbuns. Clica no botão '+' para começares a criar coleções.",
+ "MessageConfirmAppExit": "Deseja sair?",
"MediaInfoLayout": "Layout",
"MediaInfoLanguage": "Idioma",
"MediaInfoInterlaced": "Entrelaçado",
- "MediaInfoFramerate": "Taxa de quadros",
+ "MediaInfoFramerate": "Taxa de fotogramas",
"MediaInfoForced": "Forçado",
"MediaInfoExternal": "Externo",
"MediaInfoDefault": "Padrão",
- "MediaInfoCodecTag": "Tag do codec",
+ "MediaInfoCodecTag": "Codec tag",
"MediaInfoCodec": "Codec",
"MediaInfoBitrate": "Taxa de bits",
"MediaInfoBitDepth": "Profundidade de bits",
- "MediaInfoAspectRatio": "Proporção",
- "ManageRecording": "Gerenciar gravação",
+ "MediaInfoAspectRatio": "Proporção da imagem",
+ "ManageRecording": "Gerir gravação",
"Logo": "Logo",
"List": "Lista",
- "LeaveBlankToNotSetAPassword": "Você pode deixar este campo em branco para não definir uma senha.",
- "LearnHowYouCanContribute": "Saiba como você pode contribuir.",
+ "LeaveBlankToNotSetAPassword": "Você pode deixar esse campo em branco para definir nenhuma senha.",
+ "LearnHowYouCanContribute": "Aprenda como você pode contribuir.",
"Large": "Grande",
- "LanNetworksHelp": "Lista separada por vírgulas de endereços IP ou IP/máscara de redes que serão consideradas na rede local ao aplicar restrições de largura de banda. Se definido, todos os outros endereços IP serão considerados na rede externa e estarão sujeitos às restrições de largura de banda externa. Se deixado em branco, apenas a sub-rede do servidor será considerada na rede local.",
- "LabelffmpegPathHelp": "O caminho para o arquivo ou pasta do aplicativo FFmpeg.",
- "LabelffmpegPath": "Caminho do FFmpeg",
+ "LanNetworksHelp": "Lista separada por vírgula de endereços IP ou entradas de máscara de rede/IP para redes que serão consideradas na rede local ao impor restrições de largura de banda. Se definido, todos os outros endereços IP serão considerados na rede externa e estarão sujeitos às restrições de largura de banda externa. Se deixado em branco, apenas a sub-rede do servidor é considerada na rede local.",
+ "LabelffmpegPathHelp": "Localização da aplicação ou pasta que contém o FFmpeg.",
+ "LabelffmpegPath": "Localização do FFmpeg",
"LabelYear": "Ano",
"LabelXDlnaDoc": "Documentação X-DLNA",
"LabelXDlnaCap": "Limite X-DLNA",
"LabelWeb": "Web",
- "LabelVideoCodec": "Codec de vídeo",
+ "LabelVideoCodec": "Codec do vídeo",
"LabelVideoBitrate": "Taxa de bits do vídeo",
"DashboardArchitecture": "Arquitetura: {0}",
"DashboardServerName": "Servidor: {0}",
"DashboardVersionNumber": "Versão: {0}",
"LabelVersion": "Versão",
- "LabelVaapiDeviceHelp": "Este é o nó de renderização usado para a aceleração de hardware.",
+ "LabelVaapiDeviceHelp": "Este é o nó de renderização usado para aceleração de hardware.",
"LabelVaapiDevice": "Dispositivo VA-API",
- "LabelUserAgent": "Agente do usuário",
- "LabelTranscodes": "Transcodificações",
- "LabelTranscodingFramerate": "Taxa de quadros da transcodificação",
+ "LabelUserAgent": "Agente do utilizador",
+ "LabelTranscodes": "Transcodificação",
+ "LabelTranscodingFramerate": "Transcodificação da taxa de fotogramas",
"LabelTranscodingProgress": "Progresso da transcodificação",
"LabelTitle": "Título",
"LabelTheme": "Tema",
"LabelTextColor": "Cor do texto",
- "LabelTextBackgroundColor": "Cor de fundo do texto",
+ "LabelTextBackgroundColor": "Cor do plano de fundo do texto",
"LabelTag": "Tag",
"LabelTVHomeScreen": "Tela inicial do modo TV",
- "LabelSubtitleDownloaders": "Baixadores de legendas",
- "LabelStreamType": "Tipo de stream",
+ "LabelSubtitleDownloaders": "Fornecedores de legendas",
+ "LabelStreamType": "Tipo de transmissão",
"LabelSpecialSeasonsDisplayName": "Nome de exibição da temporada especial",
- "LabelSortTitle": "Título da ordenação",
- "LabelSortOrder": "Ordem de classificação",
+ "LabelSortTitle": "Classificar título",
+ "LabelSortOrder": "Sequência de ordenação",
"LabelSortBy": "Ordenar por",
- "LabelRemoteClientBitrateLimitHelp": "Um limite opcional de taxa de bits por stream para todos os dispositivos fora da rede. Isso é útil para evitar que dispositivos solicitem uma taxa de bits mais alta do que sua conexão com a Internet pode suportar. Isso pode resultar em aumento da carga da CPU no servidor para transcodificar vídeos em tempo real para uma taxa de bits mais baixa.",
- "LabelPlayerDimensions": "Dimensões do reprodutor",
- "LabelParentNumber": "Número do pai",
- "LabelMetadataSavers": "Salvadores de metadados",
- "LabelDroppedFrames": "Quadros descartados",
+ "LabelRemoteClientBitrateLimitHelp": "Um limite opcional de taxa de bits por fluxo para todos os dispositivos fora da rede. Isso é útil para impedir que os dispositivos solicitem uma taxa de bits mais alta do que a sua conexão à Internet pode suportar. Isso pode resultar no aumento da carga da CPU no servidor para transcodificar vídeos em tempo real para uma taxa de bits mais baixa.",
+ "LabelPlayerDimensions": "Dimensões do leitor",
+ "LabelParentNumber": "Número pai",
+ "LabelMetadataSavers": "Formatos de gravação dos metadados",
+ "LabelDroppedFrames": "Quadros caídos",
"LabelCorruptedFrames": "Quadros corrompidos",
- "LabelAudioBitDepth": "Profundidade de bits do áudio",
- "ClientSettings": "Configurações do cliente",
- "AllowFfmpegThrottlingHelp": "Quando uma transcodificação ou remux estiver muito à frente da posição atual de reprodução, o processo será pausado para consumir menos recursos. Útil ao assistir sem avançar/retroceder muito. Desative se tiver problemas de reprodução.",
- "MySubtitles": "Minhas Legendas",
+ "LabelAudioBitDepth": "Profundidade do bit de áudio",
+ "ClientSettings": "Definições do cliente",
+ "AllowFfmpegThrottlingHelp": "Quando uma transcodificação ou remux se aproximar da posição atual de reprodução, pause o processo para que consuma menos recursos. Isso é mais útil ao assistir sem procurar com frequência. Desative isso se você tiver problemas de reprodução.",
+ "MySubtitles": "Minhas legendas",
"Name": "Nome",
"Never": "Nunca",
"Artist": "Artista",
"LabelDeinterlaceMethod": "Método de desentrelaçamento",
- "DeinterlaceMethodHelp": "Selecione o método de desentrelaçamento a ser usado ao transcodificar conteúdo entrelaçado. Quando a aceleração de hardware com desentrelaçamento de hardware é ativada, o desentrelaçador de hardware será usado em vez desta configuração.",
+ "DeinterlaceMethodHelp": "Seleciona o método de desentrelaçamento a utilizar quando o software transcodifica conteúdo entrelaçado. Caso esteja ativo, o desentrelaçamento através de aceleração por hardware terá prioridade sobre esta opção.",
"Movie": "Filme",
"LabelLibraryPageSize": "Tamanho da página da biblioteca",
"Album": "Álbum",
- "LabelLibraryPageSizeHelp": "Defina a quantidade de itens a serem exibidos em uma página da biblioteca. Defina como 0 para desativar a paginação.",
+ "LabelLibraryPageSizeHelp": "Define a quantidade de itens a apresentar na página de uma biblioteca. Para desativares a paginação, introduz o valor 0.",
"Episode": "Episódio",
- "OptionRequirePerfectSubtitleMatch": "Baixar apenas legendas que sejam uma correspondência perfeita para os arquivos de vídeo",
+ "OptionRequirePerfectSubtitleMatch": "Baixar apenas legendas que correspondem corretamente aos arquivos de vídeo",
"OptionRandom": "Aleatório",
- "OptionLoginAttemptsBeforeLockout": "Determinar quantas tentativas de login incorretas podem ser feitas antes que o bloqueio ocorra.",
+ "OptionLoginAttemptsBeforeLockout": "Determina quantas tentativas de início de sessão são admitidas antes de a conta ser bloqueada.",
"OptionIsSD": "SD",
"OptionIsHD": "HD",
- "OptionEnableExternalContentInSuggestions": "Ativar conteúdo externo nas sugestões",
- "OptionDisplayFolderViewHelp": "Exibir pastas junto com suas outras bibliotecas de mídia. Isso pode ser útil se você quiser ter uma visualização de pasta simples.",
- "OptionDisplayFolderView": "Exibir uma visualização de pasta para mostrar pastas de mídia simples",
- "OptionBluray": "BD",
- "OptionAllowVideoPlaybackRemuxing": "Permitir reprodução de vídeo que requer conversão sem reencodificação",
- "OptionAllowLinkSharingHelp": "Apenas páginas da web contendo informações da mídia são compartilhadas. Os arquivos de mídia nunca são compartilhados publicamente. Os compartilhamentos têm prazo limitado e expirarão após {0} dias.",
+ "OptionEnableExternalContentInSuggestions": "Habilitar sugestão de conteúdo externo",
+ "OptionDisplayFolderViewHelp": "Exiba pastas ao lado de outras bibliotecas de mídia. Isso pode ser útil se você quiser ter uma visualização simples de pastas.",
+ "OptionDisplayFolderView": "Exibir uma exibição de pasta para mostrar pastas de mídia simples",
+ "OptionBluray": "Blu-ray",
+ "OptionAllowVideoPlaybackRemuxing": "Permitir reprodução de vídeo que requer conversão sem recodificação",
+ "OptionAllowLinkSharingHelp": "Somente páginas da web que contêm informações sobre mídia são compartilhadas. Os arquivos de mídia nunca são compartilhados publicamente. As ações são limitadas no tempo e expiram após {0} dias.",
"Option3D": "3D",
- "NextUp": "Próximo",
+ "NextUp": "A seguir",
"Next": "Próximo",
"NewEpisodesOnly": "Apenas novos episódios",
"NewEpisodes": "Novos episódios",
- "NewCollectionHelp": "As coleções permitem que você crie agrupamentos personalizados de filmes e outros conteúdos da biblioteca.",
- "BoxSet": "Box",
- "AlbumArtist": "Artista do Álbum",
+ "NewCollectionHelp": "As coleções permitem-te criar agrupamentos personalizados de filmes e outros tipos de conteúdo.",
+ "BoxSet": "Coleção",
+ "AlbumArtist": "Artista do álbum",
"Quality": "Qualidade",
"Previous": "Anterior",
- "PictureInPicture": "Imagem na imagem",
- "OptionRequirePerfectSubtitleMatchHelp": "Exigir uma correspondência perfeita filtrará as legendas para incluir apenas aquelas que foram testadas e verificadas com seu arquivo de vídeo exato. Desmarcar isso aumentará a probabilidade de download de legendas, mas também aumentará as chances de legendas fora de sincronia ou incorretas.",
+ "PictureInPicture": "Imagem em imagem (vídeo flutuante)",
+ "OptionRequirePerfectSubtitleMatchHelp": "Solicitar a \"correspondência perfeita\" filtrará as legendas incluindo apenas aquelas que foram testadas com o arquivo de vídeo. Desmarcar isto aumentará a probabilidade de baixar legendas, mas poderá obter legendas incorretas ou não sincronizadas.",
"StopRecording": "Parar gravação",
- "ShowYear": "Mostrar o ano",
- "ShowTitle": "Mostrar o título",
- "SettingsWarning": "Alterar esses valores pode causar instabilidade ou falhas de conectividade. Se você experimentar algum problema, recomendamos alterá-los de volta para o padrão.",
- "ServerNameIsShuttingDown": "O servidor em {0} está desligando.",
- "ServerNameIsRestarting": "O servidor em {0} está reiniciando.",
- "SeriesYearToPresent": "{0} - Presente",
+ "ShowYear": "Exibir ano",
+ "ShowTitle": "Exibir título",
+ "SettingsWarning": "Alterar estes valores poderá causar instabilidade ou falhas de ligação. Se ocorrer algum problema, recomendamos que os voltes a alterar para os valores predefinidos.",
+ "ServerNameIsShuttingDown": "O servidor {0} está a desligar.",
+ "ServerNameIsRestarting": "O servidor {0} está a reiniciar.",
+ "SeriesYearToPresent": "{0} - Atualmente",
"SeriesCancelled": "Série cancelada.",
- "SelectAdminUsername": "Por favor, selecione um nome de usuário para a conta de administrador.",
+ "SelectAdminUsername": "Seleciona um nome de utilizador para a conta de administrador.",
"Season": "Temporada",
"RepeatEpisodes": "Repetir episódios",
- "RepeatAll": "Repetir tudo",
+ "RepeatAll": "Repetir todos",
"RemoveFromCollection": "Remover da coleção",
- "RememberMe": "Lembrar de mim",
- "ReleaseDate": "Data de Lançamento",
+ "RememberMe": "Lembrar-me",
+ "ReleaseDate": "Data do lançamento",
"RefreshMetadata": "Atualizar metadados",
- "RecentlyWatched": "Assistido Recentemente",
+ "RecentlyWatched": "Visto recentemente",
"OptionEnableForAllTuners": "Ativar para todos os dispositivos sintonizadores",
"OptionCaptionInfoExSamsung": "Informações da legenda (Samsung)",
- "OptionAutomaticallyGroupSeriesHelp": "Séries espalhadas por várias pastas dentro desta biblioteca serão mescladas automaticamente em uma única série.",
- "OptionAutomaticallyGroupSeries": "Mesclar automaticamente séries espalhadas por várias pastas",
- "OptionAllowSyncTranscoding": "Permitir downloads e sincronização de mídia que requerem transcodificação",
- "OptionForceRemoteSourceTranscoding": "Forçar transcodificação de fontes de mídia remotas, como TV Ao Vivo",
- "PreferEmbeddedTitlesOverFileNames": "Preferir títulos incorporados em vez de nomes de arquivos",
- "OptionSaveMetadataAsHiddenHelp": "Alterar isso se aplicará a novos metadados salvos a partir de agora. Os arquivos de metadados existentes serão atualizados na próxima vez que forem salvos pelo servidor.",
+ "OptionAutomaticallyGroupSeriesHelp": "As séries que estão espalhadas por várias pastas dentro desta biblioteca serão automaticamente mescladas em uma única série.",
+ "OptionAutomaticallyGroupSeries": "Mesclar automaticamente séries que estão espalhadas por várias pastas",
+ "OptionAllowSyncTranscoding": "Permitir a transferência e sincronização de multimédia que exija transcodificação",
+ "OptionForceRemoteSourceTranscoding": "Força a transcodificação de fontes multimédia remotas, como a TV em direto",
+ "PreferEmbeddedTitlesOverFileNames": "Preferir títulos incorporados ao invés dos nomes dos arquivos",
+ "OptionSaveMetadataAsHiddenHelp": "Alterar isso será aplicado aos novos metadados salvos daqui para frente. Os arquivos de metadados existentes serão atualizados na próxima vez em que forem salvos pelo Jellyfin Server.",
"OptionRegex": "Expressão Regular",
- "OptionLoginAttemptsBeforeLockoutHelp": "Um valor de zero significa herdar o padrão de três tentativas para usuários normais e cinco para administradores. Definir isso como -1 desativará o recurso.",
- "OptionExtractChapterImage": "Ativar extração de imagem de capítulo",
- "PreferEmbeddedEpisodeInfosOverFileNames": "Preferir informações de episódio incorporadas em vez de nomes de arquivos",
- "PreferEmbeddedEpisodeInfosOverFileNamesHelp": "Usar as informações do episódio dos metadados incorporados, se disponíveis.",
- "PreferEmbeddedTitlesOverFileNamesHelp": "Determinar o título a ser exibido quando nenhum metadado da internet ou metadado local estiver disponível.",
- "PlaybackErrorNoCompatibleStream": "Este cliente não é compatível com a mídia e o servidor não está enviando um formato de mídia compatível.",
+ "OptionLoginAttemptsBeforeLockoutHelp": "O valor zero significa herdar a definição por defeito de três tentativas para utilizadores comuns e cinco para administradores. Definir este campo como -1 desativa esta funcionalidade.",
+ "OptionExtractChapterImage": "Ativar extração de imagens dos capítulos",
+ "PreferEmbeddedEpisodeInfosOverFileNames": "Preferir informações de episódios incorporados ao invés de nomes de arquivos",
+ "PreferEmbeddedEpisodeInfosOverFileNamesHelp": "Usar os metadados incorporados para informações do episódio, se disponíveis.",
+ "PreferEmbeddedTitlesOverFileNamesHelp": "Determina o título a apresentar quando não é possível carregar metadados locais ou da Internet.",
+ "PlaybackErrorNoCompatibleStream": "Este cliente não é compatível com a mídia e o servidor não está a enviar um formato de mídia compatível.",
"Person": "Pessoa",
- "LabelRequireHttpsHelp": "Se marcado, o servidor redirecionará automaticamente todas as solicitações de HTTP para HTTPS. Isso não tem efeito se o servidor não estiver ouvindo em HTTPS.",
+ "LabelRequireHttpsHelp": "Se marcado, o servidor redirecionará automaticamente todas as solicitações por HTTP para HTTPS. Isso não terá efeito se o servidor não estiver escutando HTTPS.",
"LabelRequireHttps": "Requer HTTPS",
- "LabelChromecastVersion": "Versão do Google Cast",
- "LabelEnableHttpsHelp": "Ouça na porta HTTPS configurada. Um certificado válido também deve ser fornecido para que isso tenha efeito.",
+ "LabelChromecastVersion": "Versão do Chromecast",
+ "LabelEnableHttpsHelp": "Escutar na porta HTTPS configurada. Para que esta opção seja ativada, é necessário fornecer um certificado válido.",
"LabelEnableHttps": "Ativar HTTPS",
- "HeaderServerAddressSettings": "Configurações de Endereço do Servidor",
- "HeaderRemoteAccessSettings": "Configurações de Acesso Remoto",
- "HeaderHttpsSettings": "Configurações HTTPS",
+ "HeaderServerAddressSettings": "Definições de endereço do servidor",
+ "HeaderRemoteAccessSettings": "Definições de acesso remoto",
+ "HeaderHttpsSettings": "Definições de HTTPS",
"HeaderDVR": "DVR",
- "ApiKeysCaption": "Lista das chaves de API atualmente habilitadas",
- "ButtonTogglePlaylist": "Playlist",
+ "ApiKeysCaption": "Lista das chaves da API atualmente ativas",
+ "ButtonTogglePlaylist": "Lista de reprodução",
"ButtonSyncPlay": "SyncPlay",
"Data": "Dados",
- "ButtonUseQuickConnect": "Usar Conexão Rápida",
+ "ButtonUseQuickConnect": "Utilizar Ligação Rápida",
"ButtonActivate": "Ativar",
"Authorize": "Autorizar",
- "EnableDetailsBannerHelp": "Exibir uma imagem de banner na parte superior da página de detalhes do item.",
- "EnableDetailsBanner": "Banner de detalhes",
- "EnableQuickConnect": "Ativar Conexão Rápida neste servidor",
- "EnableDecodingColorDepth10Vp9": "Ativar decodificação de hardware de 10 bits para VP9",
- "EnableDecodingColorDepth10Hevc": "Ativar decodificação de hardware de 10 bits para HEVC",
- "EnableAutoCast": "Definir como padrão",
- "HeaderDeleteDevices": "Excluir Todos os Dispositivos",
- "Other": "Outro",
- "DeleteDevicesConfirmation": "Tem certeza de que deseja excluir todos os dispositivos? Todas as outras sessões serão desconectadas. Os dispositivos reaparecerão na próxima vez que um usuário fizer login.",
- "DeleteAll": "Excluir tudo",
- "DailyAt": "Diariamente às {0}",
+ "EnableDetailsBannerHelp": "Mostrar uma imagem no topo da página dos detalhes do item.",
+ "EnableDetailsBanner": "Faixa de detalhes",
+ "EnableQuickConnect": "Ativar Ligação Rápida neste servidor",
+ "EnableDecodingColorDepth10Vp9": "Ativar descodificação de hardware de 10-bits para VP9",
+ "EnableDecodingColorDepth10Hevc": "Ativar descodificação de hardware de 10-bits para HEVC",
+ "EnableAutoCast": "Definir como predefinição",
+ "HeaderDeleteDevices": "Eliminar todos os dispositivos",
+ "Other": "Outros",
+ "DeleteDevicesConfirmation": "Tens a certeza de que pretendes eliminar todos os dispositivos? Todas as outras sessões serão encerradas. Os dispositivos voltarão a aparecer da próxima vez que um utilizador iniciar sessão.",
+ "DeleteAll": "Eliminar tudo",
+ "DailyAt": "Diariamente, às {0}",
"ClearQueue": "Limpar fila",
- "Bwdif": "Filtro de Desentrelaçamento Bob Weaver (BWDIF)",
- "ButtonPlayer": "Reprodutor",
- "ButtonCast": "Transmitir para dispositivo",
- "AllowTonemappingHelp": "O tone-mapping transforma o alcance dinâmico de um vídeo de HDR para SDR mantendo detalhes e cores. Funciona apenas com vídeos HDR10, HLG e DoVi de 10 bits. Requer runtime GPGPU correspondente.",
- "MusicVideos": "Vídeos Musicais",
+ "Bwdif": "Filtro de Desentrelação Bob Weaver (BWDIF)",
+ "ButtonPlayer": "Leitor",
+ "ButtonCast": "Transmitir para o dispositivo",
+ "AllowTonemappingHelp": "O mapeamento de tons pode transformar a gama dinâmica de um vídeo de HDR para SDR, mantendo os detalhes e as cores da imagem, que são informações muito importantes para representar a cena original. Atualmente funciona apenas com vídeos HDR10 de 10 bits, HLG e DoVi. Isso requer o tempo de execução GPGPU correspondente.",
+ "MusicVideos": "Videoclipes",
"LabelTonemappingPeak": "Pico do mapeamento de tons",
- "LabelTonemappingParamHelp": "Ajuste o algoritmo de mapeamento de tons. Geralmente, deixe em branco.",
- "LabelTonemappingParam": "Parâmetro do mapeamento de tons",
- "LabelTonemappingDesatHelp": "Aplicar desaturação para realces que excedem este nível de brilho. O valor recomendado é 0 (desativar).",
- "LabelTonemappingDesat": "Desaturação do mapeamento de tons",
- "LabelTonemappingAlgorithm": "Selecione o algoritmo de mapeamento de tons a ser usado",
+ "LabelTonemappingParamHelp": "Afina o algoritmo de mapeamento de tons. É recomendado deixar este campo em branco.",
+ "LabelTonemappingParam": "Parâmetros do mapeamento de tons",
+ "LabelTonemappingDesatHelp": "Aplica a dessaturação aos realces que excedem este nível de brilho. O valor recomendado é 0 (desativar).",
+ "LabelTonemappingDesat": "Dessaturação do mapeamento de tons",
+ "LabelTonemappingAlgorithm": "Seleciona o algoritmo de mapeamento de tons a utilizar",
"LabelSyncPlayTimeSyncOffset": "Deslocamento de tempo",
- "LabelSyncPlayTimeSyncDevice": "Sincronização de tempo com",
+ "LabelSyncPlayTimeSyncDevice": "Sincronizando o tempo com",
"LabelSyncPlaySyncMethod": "Método de sincronização",
- "LabelSyncPlayResumePlaybackDescription": "Juntar-se novamente à reprodução em grupo",
- "LabelSyncPlayResumePlayback": "Retomar reprodução local",
+ "LabelSyncPlayResumePlaybackDescription": "Retomar a reprodução em grupo",
+ "LabelSyncPlayResumePlayback": "Retomar a reprodução local",
"LabelSyncPlayPlaybackDiff": "Diferença de tempo de reprodução",
- "LabelSyncPlayNewGroupDescription": "Criar um novo grupo",
+ "LabelSyncPlayNewGroupDescription": "Crie um novo grupo",
"LabelSyncPlayNewGroup": "Novo grupo",
"LabelSyncPlayLeaveGroupDescription": "Desativar SyncPlay",
- "LabelSyncPlayLeaveGroup": "Sair do grupo",
- "LabelSyncPlayHaltPlaybackDescription": "E ignorar atualizações atuais da lista de reprodução",
+ "LabelSyncPlayLeaveGroup": "Deixar o grupo",
+ "LabelSyncPlayHaltPlaybackDescription": "E ignorar as atualizações recentes da playlist",
"LabelSyncPlayHaltPlayback": "Parar reprodução local",
- "LabelSyncPlayAccessNone": "Desativado para este usuário",
- "LabelSyncPlayAccessJoinGroups": "Permitir que o usuário junte-se a grupos",
- "LabelSyncPlayAccessCreateAndJoinGroups": "Permitir que o usuário crie e junte-se a grupos",
- "LabelSyncPlayAccess": "Acesso ao SyncPlay",
+ "LabelSyncPlayAccessNone": "Desativado para este utilizador",
+ "LabelSyncPlayAccessJoinGroups": "Permitir ao utilizador aderir a grupos",
+ "LabelSyncPlayAccessCreateAndJoinGroups": "Permitir ao utilizador criar e aderir a grupos",
+ "LabelSyncPlayAccess": "Acesso SyncPlay",
"LabelSubtitleVerticalPosition": "Posição vertical",
"LabelStable": "Estável",
"LabelSSDPTracingFilterHelp": "Endereço IP opcional para filtrar o tráfego SSDP registrado.",
"LabelSSDPTracingFilter": "Filtro SSDP",
"LabelRepositoryUrlHelp": "A localização do manifesto do repositório que você deseja incluir.",
"LabelRepositoryUrl": "URL do Repositório",
- "LabelRepositoryNameHelp": "Um nome personalizado para distinguir este repositório de outros adicionados ao seu servidor.",
+ "LabelRepositoryNameHelp": "Nome personalizado para distinguir este repositório de outros presentes no servidor.",
"LabelRepositoryName": "Nome do Repositório",
- "LabelQuickConnectCode": "Código de Conexão Rápida",
- "LabelPublishedServerUriHelp": "Substitua a URI usada pelo Jellyfin, com base na interface ou no endereço IP do cliente. Por exemplo: internal=http://jellyfin.example.com, external=https://jellyfin.example.com, or all=https://jellyfin.example.com",
- "LabelPublishedServerUri": "URIs do Servidor Publicado",
- "LabelOpenclDeviceHelp": "Este é o dispositivo OpenCL usado para mapeamento de tons. O lado esquerdo do ponto é o número da plataforma e o lado direito é o número do dispositivo na plataforma. O valor padrão é 0.0. O arquivo do aplicativo FFmpeg contendo o método de aceleração de hardware OpenCL é necessário.",
+ "LabelQuickConnectCode": "Código de Ligação Rápida",
+ "LabelPublishedServerUriHelp": "Substituir o URI utilizado pelo Jellyfin, com base na interface, ou no endereço IP do cliente. Por exemplo: internal=http://jellyfin.example.com, external=https://jellyfin.example.com, ou all=https://jellyfin.example.com",
+ "LabelPublishedServerUri": "URIs de Servidor Publicado",
+ "LabelOpenclDeviceHelp": "Este é o dispositivo OpenCL utilizado para o mapeamento de tons. O número à esquerda do ponto representa a plataforma, e o da direita representa o número do dispositivo nessa plataforma. O valor predefinido é 0.0. É necessário o ficheiro da aplicação FFmpeg que contenha o método de aceleração por hardware via OpenCL.",
"LabelOpenclDevice": "Dispositivo OpenCL",
- "LabelMinAudiobookResumeHelp": "Os títulos são considerados não reproduzidos se parados antes deste tempo.",
- "LabelMinAudiobookResume": "Retomar mínimo do audiolivro em minutos",
- "LabelMaxAudiobookResume": "Minutos restantes do audiolivro para retomar",
- "LabelMaxMuxingQueueSizeHelp": "Número máximo de pacotes que podem ser armazenados em buffer enquanto aguardam a inicialização de todos os streams. Tente aumentá-lo se ainda encontrar o erro \"Muitos pacotes armazenados em buffer para o stream de saída\" nos logs do FFmpeg. O valor recomendado é 2048.",
+ "LabelMinAudiobookResumeHelp": "Os audiolivros são considerados como não ouvidos se parados antes do valor definido.",
+ "LabelMinAudiobookResume": "Duração mínima do audiolivro em minutos para permitir retomar",
+ "LabelMaxAudiobookResume": "Minutos restantes para retomar o audiolivro",
+ "LabelMaxMuxingQueueSizeHelp": "Número máximo de pacotes que podem ser armazenados em buffer enquanto espera que todas as transmissões sejam inicializadas. Tenta aumentá-lo se ainda encontrares o erro \"Demasiados pacotes armazenados em buffer para o fluxo de saída\" nos registos do FFmpeg. O valor recomendado é 2048.",
"LabelMaxMuxingQueueSize": "Tamanho máximo da fila de muxing",
- "LabelMaxAudiobookResumeHelp": "Os títulos são considerados totalmente reproduzidos se parados quando a duração restante é menor que este valor.",
+ "LabelMaxAudiobookResumeHelp": "Os audiolivros são considerados como ouvidos quando o valor em falta for menor que o valor definido.",
"LabelKnownProxies": "Proxies conhecidos",
"LabelIsForced": "Forçado",
"LabelIconMaxResHelp": "Resolução máxima dos ícones expostos por meio da propriedade upnp:icon.",
"LabelHDHomerunPortRangeHelp": "Restringe o intervalo de portas UDP HD Homerun a este valor. (O padrão é 1024 - 65535).",
"LabelHDHomerunPortRange": "Intervalo de portas HD Homerun",
- "LabelH265Crf": "Codificação H.265 CRF",
+ "LabelH265Crf": "CRF da codificação H.265",
"LabelEnableSSDPTracingHelp": "Habilite o registro dos detalhes do rastreamento de rede SSDP. AVISO: Isso causará uma grave degradação do desempenho.",
"LabelEnableSSDPTracing": "Habilitar Rastreamento de SSDP",
- "LabelEnableIP4Help": "Ativar funcionalidade IPv4.",
- "LabelEnableIP6Help": "Ativar funcionalidade IPv6.",
+ "LabelEnableIP4Help": "Ativar a funcionalidade IPv4.",
+ "LabelEnableIP6Help": "Ativar a funcionalidade IPv6.",
"LabelEnableIP6": "Ativar IPv6",
"LabelEnableIP4": "Ativar IPv4",
"LabelDropSubtitleHere": "Solte a legenda aqui, ou clique para navegar.",
- "LabelCurrentStatus": "Status atual",
- "LabelCreateHttpPortMapHelp": "Permitir mapeamento automático de porta para criar uma regra para tráfego HTTP além do tráfego HTTPS.",
- "LabelCreateHttpPortMap": "Ativar mapeamento automático de porta para tráfego HTTP e HTTPS.",
+ "LabelCurrentStatus": "Estado atual",
+ "LabelCreateHttpPortMapHelp": "Permita o mapeamento automático de portas para criar uma regra para o tráfego HTTP, além do tráfego HTTPS.",
+ "LabelCreateHttpPortMap": "Ativar o mapeamento automático de portas para tráfego HTTP e HTTPS.",
"LabelColorTransfer": "Transferência de cor",
"LabelColorSpace": "Espaço de cor",
- "LabelColorPrimaries": "Primárias de cor",
- "LabelAutomaticDiscoveryHelp": "Permitir que aplicativos detectem automaticamente o Jellyfin usando o UDP na porta 7359.",
- "LabelAutomaticDiscovery": "Ativar Descoberta Automática",
+ "LabelColorPrimaries": "Cores primárias",
+ "LabelAutomaticDiscoveryHelp": "Permitir que os aplicativos detectem automaticamente o Jellyfin usando a porta UDP 7359.",
+ "LabelAutomaticDiscovery": "Ativar deteção automática",
"LabelAutoDiscoveryTracingHelp": "Quando habilitado, os pacotes recebidos na porta de descoberta automática serão registrados.",
"LabelAutoDiscoveryTracing": "Ative o rastreamento de Descoberta Automática.",
"LabelAlbumArtMaxResHelp": "Resolução máxima da arte do álbum exposta por meio da propriedade upnp:albumArtURI.",
- "KnownProxiesHelp": "Lista separada por vírgulas de endereços IP ou nomes de hosts de proxies conhecidos usados ao conectar-se à sua instância Jellyfin. Isso é necessário para fazer uso adequado dos cabeçalhos 'X-Forwarded-For'. Requer uma reinicialização após a gravação.",
+ "KnownProxiesHelp": "Lista separada por vírgulas de endereços IP ou hostnames de proxies conhecidos usados ao se conectar à sua instância Jellyfin. Isso é necessário para fazer uso adequado dos cabeçalhos X-Forwarded-For. Requer uma reinicialização após salvar.",
"Image": "Imagem",
"HeaderUploadSubtitle": "Enviar Legenda",
- "HeaderSyncPlaySelectGroup": "Entrar em um grupo",
+ "HeaderSyncPlaySelectGroup": "Junta-te a um grupo",
"HeaderSyncPlayEnabled": "SyncPlay ativado",
- "HeaderPortRanges": "Configurações de Firewall e Proxy",
- "HeaderNewRepository": "Novo Repositório",
+ "HeaderPortRanges": "Definições de Firewall e Proxy",
+ "HeaderNewRepository": "Novo repositório",
"HeaderNetworking": "Protocolos IP",
"HeaderDebugging": "Depuração e Rastreamento",
- "HeaderContinueReading": "Continuar Lendo",
- "HeaderAutoDiscovery": "Descoberta Automática",
- "HeaderAddUser": "Adicionar Usuário",
- "HeaderAddUpdateSubtitle": "Adicionar/Atualizar Legenda",
- "Framerate": "Taxa de quadros",
+ "HeaderContinueReading": "Continuar a ler",
+ "HeaderAutoDiscovery": "Deteção de rede",
+ "HeaderAddUser": "Adicionar utilizador",
+ "HeaderAddUpdateSubtitle": "Adicionar/Atualizar legenda",
+ "Framerate": "Taxa de fotogramas",
"Filter": "Filtro",
"EveryXMinutes": "A cada {0} minutos",
"EveryXHours": "A cada {0} horas",
- "EveryHour": "A cada hora",
+ "EveryHour": "Toda hora",
"EnableTonemapping": "Ativar mapeamento de tons",
"EnableFasterAnimationsHelp": "Use animações e transições mais rápidas.",
"EnableFasterAnimations": "Animações mais rápidas",
- "EnableBlurHashHelp": "Imagens que ainda estão sendo carregadas serão exibidas com um placeholder exclusivo.",
- "EnableBlurHash": "Ativar placeholders desfocados para imagens",
+ "EnableBlurHashHelp": "As imagens que ainda estão sendo carregadas serão exibidas com um marcador único.",
+ "EnableBlurHash": "Ativar marcadores de posição desfocados para imagens",
"DisablePlugin": "Desativar",
"EnablePlugin": "Ativar",
"DirectPlayHelp": "O arquivo de origem é totalmente compatível com este cliente e a sessão está recebendo o arquivo sem modificações.",
"MessageSent": "Mensagem enviada.",
- "MessagePluginInstallError": "Ocorreu um erro ao instalar o plugin.",
- "MessageNoRepositories": "Nenhum repositório.",
- "MessageGetInstalledPluginsError": "Ocorreu um erro ao obter a lista de plugins atualmente instalados.",
- "MediaInfoColorPrimaries": "Primárias de cor",
+ "MessagePluginInstallError": "Ocorreu um erro durante a instalação da extensão.",
+ "MessageNoRepositories": "Sem repositórios.",
+ "MessageGetInstalledPluginsError": "Ocorreu um erro ao tentar obter a lista de extensões atualmente instaladas.",
+ "MediaInfoColorPrimaries": "Cores primárias",
"LastSeen": "Última atividade {0}",
- "LabelUserMaxActiveSessions": "Número máximo de sessões de usuário simultâneas",
+ "LabelUserMaxActiveSessions": "Número máximo de sessões em simultâneo",
"LabelUnstable": "Instável",
"LabelHardwareEncoding": "Codificação por hardware",
- "LabelSyncPlaySettingsExtraTimeOffset": "Deslocamento de tempo extra",
- "LabelSyncPlaySettingsDescription": "Alterar preferências do SyncPlay",
- "LabelSortName": "Nome da ordenação",
+ "LabelSyncPlaySettingsExtraTimeOffset": "Compensação do tempo extra",
+ "LabelSyncPlaySettingsDescription": "Alterar as preferências do SyncPlay",
+ "LabelSortName": "Ordenar nome",
"LabelSlowResponseTime": "Tempo em ms após o qual uma resposta é considerada lenta",
- "LabelSlowResponseEnabled": "Registrar uma mensagem de aviso se o servidor demorar para responder",
- "LabelOriginalName": "Nome original",
- "LabelLocalCustomCss": "Código CSS personalizado para estilização que se aplica apenas a este cliente. Você pode desativar o código CSS personalizado do servidor.",
- "LabelMaxDaysForNextUpHelp": "Defina a quantidade máxima de dias que um programa deve permanecer na lista 'Próximo' sem ser assistido.",
- "LabelMaxDaysForNextUp": "Máx. dias no 'Próximo'",
- "AgeValue": "({0} anos)",
- "LabelDisableCustomCss": "Desativar código CSS personalizado para personalização/marcação fornecido pelo servidor.",
- "LabelAutomaticallyAddToCollectionHelp": "Quando pelo menos 2 filmes tiverem o mesmo nome de coleção, eles serão adicionados automaticamente à coleção.",
+ "LabelSlowResponseEnabled": "Escrever aviso no registo se o servidor for muito lento a responder",
+ "LabelOriginalName": "Nome Original",
+ "LabelLocalCustomCss": "Estilo CSS personalizado que se aplica apenas a este cliente. Podes desativar o CSS personalizado do servidor.",
+ "LabelMaxDaysForNextUpHelp": "Defina a quantidade máxima de dias que um programa deve permanecer na lista 'Próximo' sem o assistir.",
+ "LabelMaxDaysForNextUp": "Máximo de dias em 'Próximo'",
+ "AgeValue": "Com {0} anos",
+ "LabelDisableCustomCss": "Desativar código CSS personalizado fornecido pelo servidor.",
+ "LabelAutomaticallyAddToCollectionHelp": "Quando pelo menos 2 filmes tiverem o mesmo nome de coleção, estes serão adicionados automaticamente.",
"LabelAutomaticallyAddToCollection": "Adicionar automaticamente à coleção",
"HeaderSyncPlayTimeSyncSettings": "Sincronização de tempo",
"HeaderSyncPlayPlaybackSettings": "Reprodução",
- "HeaderSyncPlaySettings": "Configurações do SyncPlay",
- "ErrorPlayerNotFound": "Nenhum reprodutor encontrado para a mídia solicitada.",
+ "HeaderSyncPlaySettings": "Definições de SyncPlay",
+ "ErrorPlayerNotFound": "Não foi possível identificar nenhum leitor compatível com o ficheiro solicitado.",
"Engineer": "Engenheiro de som",
"DisableCustomCss": "Desativar código CSS personalizado fornecido pelo servidor",
- "Console": "Console",
- "Conductor": "Condutor",
+ "Console": "Consola",
+ "Conductor": "Maestro",
"Casual": "Casual",
- "ButtonBackspace": "Backspace",
- "GoogleCastUnsupported": "Google Cast Não Suportado",
+ "ButtonBackspace": "Retrocesso",
+ "GoogleCastUnsupported": "Google Cast não compatível",
"Digital": "Digital",
- "CopyFailed": "Não foi possível copiar",
+ "CopyFailed": "Não podes copiar",
"Copy": "Copiar",
"Copied": "Copiado",
"ButtonSpace": "Espaço",
- "ButtonExitApp": "Sair do aplicativo",
+ "ButtonExitApp": "Sair da aplicação",
"ButtonClose": "Fechar",
"AddToFavorites": "Adicionar aos favoritos",
- "DownloadAll": "Baixar tudo",
+ "DownloadAll": "Transferir tudo",
"Experimental": "Experimental",
"HeaderPerformance": "Desempenho",
- "IgnoreDts": "Ignorar DTS (timestamp de decodificação)",
- "IgnoreDtsHelp": "Desativar esta opção pode resolver alguns problemas, por exemplo, áudio ausente em canais com streams de áudio e vídeo separados.",
- "LabelStereoDownmixAlgorithm": "Algoritmo de Downmix Estéreo",
+ "IgnoreDts": "Ignorar DTS (decodificação de timestamp)",
+ "IgnoreDtsHelp": "Desativar esta opção pode resolver alguns problemas, por exemplo, a falta de áudio em canais com fluxos de áudio e vídeo separados.",
+ "LabelStereoDownmixAlgorithm": "Algoritmo Stereo Downmix",
"ShowLess": "Mostrar menos",
- "SecondarySubtitles": "Legendas Secundárias",
- "ScreenResolution": "Resolução da Tela",
+ "SecondarySubtitles": "Legendas secundárias",
+ "ScreenResolution": "Resolução do ecrã",
"Restart": "Reiniciar",
- "EnableCardLayout": "Exibir Cartão visual",
- "EnableRewatchingNextUp": "Ativar Reassistir no Próximo",
- "Arranger": "Arranjador",
+ "EnableCardLayout": "Mostrar cartão visual",
+ "EnableRewatchingNextUp": "Ativar Rever em 'A Seguir'",
+ "Arranger": "Organizador",
"Print": "Imprimir",
- "Poster": "Pôster",
+ "Poster": "Cartaz",
"Small": "Pequeno",
- "QuickConnectActivationSuccessful": "Ativação bem-sucedida",
+ "QuickConnectActivationSuccessful": "Ativado com sucesso",
"SaveChanges": "Guardar alterações",
- "PreferEmbeddedExtrasTitlesOverFileNames": "Preferir títulos incorporados em vez de nomes de arquivos para extras",
- "AllowEmbeddedSubtitlesAllowAllOption": "Permitir Todas",
- "AllowEmbeddedSubtitlesAllowImageOption": "Permitir Imagem",
- "Preview": "Prévia",
+ "PreferEmbeddedExtrasTitlesOverFileNames": "Preferir títulos incorporados ao invés dos nomes dos arquivos para os extras",
+ "AllowEmbeddedSubtitlesAllowAllOption": "Permitir todos os tipos",
+ "AllowEmbeddedSubtitlesAllowImageOption": "Permitir imagens",
+ "Preview": "Amostra",
"Premieres": "Estreias",
"Production": "Produção",
"Profile": "Perfil",
- "PreviousTrack": "Pular para anterior",
+ "PreviousTrack": "Faixa anterior",
"PluginFromRepo": "{0} do repositório {1}",
"ShowMore": "Mostrar mais",
- "MediaInfoBlPresentFlag": "Sinalizador de preset BL do DV",
- "ReleaseGroup": "Grupo de Lançamento",
+ "MediaInfoBlPresentFlag": "Sinalizador predefinido DV BL",
+ "ReleaseGroup": "Grupo do lançamento",
"Primary": "Primário",
- "RefreshDialogHelp": "Os metadados são atualizados com base nas configurações e serviços da internet que estão ativados no Painel.",
+ "RefreshDialogHelp": "Os metadados são atualizados consoante as definições e serviços de internet ativos no Painel de controlo.",
"Cursive": "Cursivo",
- "ItemDetails": "Detalhes do Item",
- "HomeVideosPhotos": "Vídeos e Fotos Iniciais",
- "PreferSystemNativeHwDecoder": "Preferir decodificadores de hardware nativos do sistema operacional DXVA ou VA-API",
- "EnableRewatchingNextUpHelp": "Ativar exibição de episódios já assistidos nas seções 'Próximo'.",
- "AllowEmbeddedSubtitlesAllowNoneOption": "Permitir Nenhuma",
- "Rate": "Avaliar",
+ "ItemDetails": "Detalhe do item",
+ "HomeVideosPhotos": "Videos e Fotos",
+ "PreferSystemNativeHwDecoder": "Preferir os descodificadores DXVA nativos do SO ou os de hardware VA-API",
+ "EnableRewatchingNextUpHelp": "Mostrar episódios já vistos nas secções 'A Seguir'.",
+ "AllowEmbeddedSubtitlesAllowNoneOption": "Não permitir",
+ "Rate": "Classificar",
"Recordings": "Gravações",
"ShowIndicatorsFor": "Mostrar indicadores para",
- "SeriesSettings": "Configurações da Série",
+ "SeriesSettings": "Definições de séries",
"Trailer": "Trailer",
- "EnableIntelLowPowerH264HwEncoder": "Ativar codificador de hardware H.264 de baixo consumo Intel",
- "MediaInfoDvBlSignalCompatibilityId": "ID de compatibilidade de sinal BL do DV",
- "HeaderDummyChapter": "Imagens de Capítulo",
+ "EnableIntelLowPowerH264HwEncoder": "Ativar o codificador de hardware H.264 de baixo consumo da Intel",
+ "MediaInfoDvBlSignalCompatibilityId": "ID de compatibilidade BL",
+ "HeaderDummyChapter": "Imagens dos capítulos",
"LabelDummyChapterDuration": "Intervalo",
- "LabelChapterImageResolutionHelp": "A resolução das imagens de capítulo extraídas. Alterar isso não terá efeito sobre os capítulos fictícios existentes.",
+ "LabelChapterImageResolutionHelp": "A resolução das imagens dos capítulos extraídas. A alteração desta resolução não terá qualquer efeito nos capítulos fictícios existentes.",
"LabelChapterImageResolution": "Resolução",
"LabelDummyChapterCount": "Limite",
- "HeaderRecordingMetadataSaving": "Gravação de Metadados",
- "AllowEmbeddedSubtitlesAllowTextOption": "Permitir Texto",
+ "HeaderRecordingMetadataSaving": "Registo de metadados",
+ "AllowEmbeddedSubtitlesAllowTextOption": "Permitir texto",
"Premiere": "Estreia",
"PreviousChapter": "Capítulo anterior",
- "LabelDummyChapterDurationHelp": "O intervalo entre capítulos fictícios em segundos. Defina como 0 para desativar a geração de capítulos fictícios. Alterar isso não terá efeito sobre os capítulos fictícios existentes.",
- "AllowCollectionManagement": "Permitir que este usuário gerencie coleções",
+ "LabelDummyChapterDurationHelp": "Define o intervalo entre capítulos fictícios em segundos. Para desativar a criação de capítulos fictícios, define como 0. Alterar este valor não terá qualquer efeito sobre os capítulos fictícios existentes.",
+ "AllowCollectionManagement": "Permitir este utilizador gerir as coleções",
"LabelMaxVideoResolution": "Resolução máxima permitida para transcodificação de vídeo",
"EnableAudioNormalization": "Normalização de Áudio",
"GetThePlugin": "Obter o Plugin",
- "LabelSyncPlaySettingsExtraTimeOffsetHelp": "Ajuste manualmente o deslocamento de tempo (em ms) com o dispositivo selecionado para sincronização de tempo. Ajuste com cuidado.",
- "LabelSyncPlaySettingsSyncCorrection": "Correção de Sincronização",
- "LabelEnableAudioVbr": "Ativar codificação de áudio VBR",
- "LabelEnableAudioVbrHelp": "A codificação de taxa variável oferece melhor qualidade em relação à taxa de bits média, mas em alguns casos raros pode causar problemas de buffer e compatibilidade.",
+ "LabelSyncPlaySettingsExtraTimeOffsetHelp": "Ajuste manualmente o atraso de tempo (em ms) com o dispositivo selecionado para sincronismo de tempo. Ajuste com cuidado.",
+ "LabelSyncPlaySettingsSyncCorrection": "Correção de sincronismo",
+ "LabelEnableAudioVbr": "Habilitar codificação de áudio VBR",
+ "LabelEnableAudioVbrHelp": "A taxa de bits variavel oferece uma melhor que a taxa de bits médio, mas em alguns raros casos pode causar problemas relacionados a armazenamento e compatibilidade.",
"EnableAudioNormalizationHelp": "A normalização de áudio vai adicionar um ganho constante para manter a média em um nível desejável (-18db).",
- "LabelParallelImageEncodingLimit": "Limite de codificação de imagem paralela",
- "LabelEnableLUFSScan": "Ativar verificação LUFS",
- "LabelEnableLUFSScanHelp": "Os clientes podem normalizar a reprodução de áudio para obter um volume igual em todas as faixas. Isso tornará as verificações de biblioteca mais longas e consumirá mais recursos.",
- "LabelParallelImageEncodingLimitHelp": "Número máximo de codificações de imagem que podem ser executadas em paralelo. Deixá-lo vazio escolherá um limite com base na contagem de núcleos do seu sistema.",
- "GoHome": "Ir para a página inicial",
- "GridView": "Visualização em grade",
- "HeaderConfirmRepositoryInstallation": "Confirmar Instalação do Repositório do Plugin",
- "AllowSegmentDeletion": "Excluir segmentos",
- "AllowSegmentDeletionHelp": "Exclui segmentos antigos após serem baixados pelo cliente. Isso evita armazenar o arquivo transcodificado inteiro no disco. Desative se tiver problemas de reprodução.",
- "LabelSegmentKeepSeconds": "Tempo para manter segmentos",
- "LabelSegmentKeepSecondsHelp": "Tempo em segundos para manter os segmentos após serem baixados pelo cliente. Só funciona se a exclusão de segmentos estiver ativada.",
- "LabelThrottleDelaySeconds": "Controlar após",
- "HeaderAllRecordings": "Todas as Gravações",
- "PreferEmbeddedExtrasTitlesOverFileNamesHelp": "Extras geralmente têm o mesmo nome incorporado que o pai, marque isso para usar os títulos incorporados para eles mesmo assim.",
- "QuickConnectAuthorizeSuccess": "Você autenticou seu dispositivo com sucesso!",
- "QuickConnectNotActive": "A Conexão Rápida não está ativa neste servidor",
- "ResolutionMatchSource": "Correspondência com a Fonte",
+ "LabelParallelImageEncodingLimit": "Limite de codificação de imagens em paralelo",
+ "LabelEnableLUFSScan": "Ativar a verificação LUFS",
+ "LabelEnableLUFSScanHelp": "Os clientes podem normalizar a reprodução de áudio para obter um volume uniforme entre faixas. Isto tornará as análises da biblioteca mais lentas e exigirá mais recursos.",
+ "LabelParallelImageEncodingLimitHelp": "Número máximo de codificações de imagem permitidas para execução em paralelo. Se deixares este campo vazio, será escolhido um limite baseado na contagem de núcleos do teu sistema.",
+ "GoHome": "Ir ao início",
+ "GridView": "Vista em grelha",
+ "HeaderConfirmRepositoryInstallation": "Confirmar a instalação do repositório de extensões",
+ "AllowSegmentDeletion": "Eliminar segmentos",
+ "AllowSegmentDeletionHelp": "Elimina segmentos antigos depois de terem sido descarregados pelo cliente. Isto evita ter de armazenar todo o ficheiro transcodificado no disco. Desativa esta opção se tiveres problemas de reprodução.",
+ "LabelSegmentKeepSeconds": "Tempo em segundos para manter os segmentos",
+ "LabelSegmentKeepSecondsHelp": "Tempo em segundos durante o qual os segmentos devem ser mantidos depois de serem descarregados pelo cliente. Só funciona se a eliminação de segmentos estiver ativada.",
+ "LabelThrottleDelaySeconds": "acelerar depois",
+ "HeaderAllRecordings": "Todas as gravações",
+ "PreferEmbeddedExtrasTitlesOverFileNamesHelp": "Os extras geralmente têm o mesmo nome incorporado do parente, marque isto para usar títulos incorporados para eles de qualquer maneira.",
+ "QuickConnectAuthorizeSuccess": "Autenticaste o teu dispositivo com sucesso!",
+ "QuickConnectNotActive": "A Ligação Rápida não está ativa neste servidor",
+ "ResolutionMatchSource": "Mesma que a fonte",
"SeriesRecordingScheduled": "Gravação da série agendada.",
- "RememberSubtitleSelections": "Definir faixa de legenda com base no item anterior",
- "RememberAudioSelections": "Definir faixa de áudio com base no item anterior",
- "RememberAudioSelectionsHelp": "Tentar definir a faixa de áudio para a correspondência mais próxima com o último vídeo.",
- "RememberSubtitleSelectionsHelp": "Tentar definir a faixa de legenda para a correspondência mais próxima com o último vídeo.",
- "ResetPassword": "Redefinir Senha",
- "LabelSyncPlaySettingsMaxDelaySpeedToSyncHelp": "Atraso máximo de reprodução (em ms) após o qual o SkipToSync é usado em vez do SpeedToSync.",
- "LabelSyncPlaySettingsMinDelaySpeedToSyncHelp": "Atraso mínimo de reprodução (em ms) após o qual o SpeedToSync tenta corrigir a posição da reprodução.",
- "QuickConnectNotAvailable": "Peça ao administrador do servidor para ativar a Conexão Rápida",
- "Remixer": "Remixer",
- "QuickConnectAuthorizeCode": "Insira o código {0} para fazer login",
- "QuickConnect": "Conexão Rápida",
+ "RememberSubtitleSelections": "Definir faixa de legendas com base no item anterior",
+ "RememberAudioSelections": "Defina a faixa de áudio com base no item anterior",
+ "RememberAudioSelectionsHelp": "Tente definir a faixa de áudio para a correspondência mais próxima do último vídeo.",
+ "RememberSubtitleSelectionsHelp": "Tente definir a faixa de legendas para a correspondência mais próxima do último vídeo.",
+ "ResetPassword": "Redefinir palavra-passe",
+ "LabelSyncPlaySettingsMaxDelaySpeedToSyncHelp": "Atraso máximo de reprodução (em ms) após o qual SkipToSync é usado em vez de SpeedToSync.",
+ "LabelSyncPlaySettingsMinDelaySpeedToSyncHelp": "Atraso mínimo da reprodução (em ms) após o qual o SpeedToSync tenta corrigir a posição de reprodução.",
+ "QuickConnectNotAvailable": "Pede ao administrador do servidor para ativar a Ligação Rápida",
+ "Remixer": "'Remixer'",
+ "QuickConnectAuthorizeCode": "Introduz o código {0} para iniciar sessão",
+ "QuickConnect": "Ligação Rápida",
"SelectServer": "Selecionar Servidor",
- "PosterCard": "Cartão de Pôster",
+ "PosterCard": "Cartaz em forma de cartão",
"SortByValue": "Ordenar por {0}",
- "PathNotFound": "O caminho não pôde ser encontrado. Verifique se o caminho é válido e tente novamente.",
- "PlaybackErrorPlaceHolder": "Este é um placeholder para mídia física que o Jellyfin não pode reproduzir. Por favor, insira o disco para reproduzir.",
- "ProductionLocations": "Locais de Produção",
+ "PathNotFound": "Não foi possível encontrar a localização. Certifica-te de que o caminho é válido e tenta novamente.",
+ "PlaybackErrorPlaceHolder": "Este é um espaço reservado para mídia física que o Jellyfin não consegue reproduzir. Por favor insira o disco para reproduzir.",
+ "ProductionLocations": "Locais da produção",
"Photo": "Foto",
- "SearchResultsEmpty": "Desculpe! Nenhum resultado encontrado para \"{0}\"",
- "ShowParentImages": "Mostrar imagens da série",
- "SaveRecordingNFO": "Salvar metadados EPG da gravação em NFO",
+ "SearchResultsEmpty": "Desculpa! Não foram encontrados resultados para \"{0}\"",
+ "ShowParentImages": "Mostrar imagens das series",
+ "SaveRecordingNFO": "Guardar metadados EPG da gravação no NFO",
"PersonRole": "como {0}",
- "AllowEmbeddedSubtitles": "Desativar diferentes tipos de legendas embutidas",
- "QuickConnectDeactivated": "A Conexão Rápida foi desativada antes que a solicitação de login pudesse ser aprovada",
- "QuickConnectInvalidCode": "Código de Conexão Rápida inválido",
- "QuickConnectDescription": "Para fazer login com a Conexão Rápida, selecione o botão 'Conexão Rápida' no dispositivo que você está fazendo login e insira o código exibido abaixo.",
- "RefreshQueued": "Atualização na fila.",
+ "AllowEmbeddedSubtitles": "Desativar diferentes tipos de legendas incorporadas",
+ "QuickConnectDeactivated": "A Ligação Rápida foi desativada antes do pedido de início de sessão ser aprovado",
+ "QuickConnectInvalidCode": "Código de Ligação Rápida inválido",
+ "QuickConnectDescription": "Para iniciar sessão com a Ligação Rápida, clica no botão \"Ligação Rápida\" no dispositivo a partir do qual estás a iniciar sessão e introduz o código apresentado abaixo.",
+ "RefreshQueued": "Atualização em fila de espera.",
"PlaybackRate": "Velocidade de Reprodução",
- "AllowEmbeddedSubtitlesHelp": "Desativar legendas que estão embaladas dentro dos contêineres de mídia. Requer uma atualização completa da biblioteca.",
+ "AllowEmbeddedSubtitlesHelp": "Desativar as legendas que estão empacotadas em containers multimédia. Requer uma atualização completa da biblioteca.",
"LabelEnableGamepad": "Ativar Gamepad",
"LabelTonemappingThreshold": "Limite de mapeamento de tons",
"LabelTonemappingRange": "Intervalo do mapeamento de tons",
- "PasswordRequiredForAdmin": "Uma senha é necessária para contas de administrador.",
- "PleaseConfirmRepositoryInstallation": "Por favor, clique em OK para confirmar que você leu o acima e deseja prosseguir com a instalação do repositório do plugin.",
- "LabelThrottleDelaySecondsHelp": "Tempo em segundos após o qual o transcodificador será controlado. Deve ser suficiente para o cliente manter um buffer saudável. Só funciona se o controle estiver ativado.",
- "QuickConnectAuthorizeFail": "Código de Conexão Rápida desconhecido",
- "TonemappingAlgorithmHelp": "O mapeamento de tons pode ser ajustado. Se você não estiver familiarizado com essas opções, mantenha o padrão. O valor recomendado é 'BT.2390'.",
- "UseEpisodeImagesInNextUp": "Usar imagens de episódios nas seções 'Próximo' e 'Continuar Assistindo'",
- "UseEpisodeImagesInNextUpHelp": "'Próximo' e 'Continuar Assistindo' usarão imagens de episódios como miniaturas em vez da miniatura principal do programa.",
- "Yadif": "Yet Another DeInterlacing Filter (YADIF)",
- "IntelLowPowerEncHelp": "A codificação de baixo consumo pode manter a sincronização desnecessária entre CPU e GPU. No Linux, devem ser desativados se o firmware HuC i915 não estiver configurado.",
+ "PasswordRequiredForAdmin": "É necessária uma palavra passe para contas de administrador.",
+ "PleaseConfirmRepositoryInstallation": "Clique em OK para confirmar que leu o texto acima e deseja prosseguir com a instalação do repositório de plug-ins.",
+ "LabelThrottleDelaySecondsHelp": "Tempo em segundos após o qual o transcodificador será limitado. Deve ser grande o suficiente para que o cliente mantenha um buffer saudável. Só funciona se a limitação estiver ligada.",
+ "QuickConnectAuthorizeFail": "Código de Ligação Rápida desconhecido",
+ "TonemappingAlgorithmHelp": "O mapeamento de tons pode ser afinado. Se não estiveres familiarizado com estas opções, mantém o valor predefinido. O valor recomendado é 'BT.2390'.",
+ "UseEpisodeImagesInNextUp": "Utilizar imagens do episódio nas secções 'A seguir' e 'Continuar a ver'",
+ "UseEpisodeImagesInNextUpHelp": "As secções 'A seguir' e 'Continuar a ver' vão utilizar imagens dos episódios como miniatura em vez da imagem primária da série.",
+ "Yadif": "Mais um filtro de desentrelaçamento (YADIF)",
+ "IntelLowPowerEncHelp": "A codificação de baixo consumo pode manter uma sincronização CPU-GPU desnecessária. No Linux eles devem ser desativados se o firmware i915 HuC não estiver configurado.",
"LabelTonemappingThresholdHelp": "Os parâmetros do algoritmo de mapeamento de tom são ajustados para cada cena. Um limite é usado para detectar se a cena mudou ou não. Se a distância entre o brilho médio do quadro atual e a média atual exceder um valor limite, recalcularíamos a média da cena e o brilho máximo. Os valores recomendados e padrão são 0,8 e 0,2.",
"SyncPlayAccessHelp": "O recurso SyncPlay permite sincronizar a reprodução com outros dispositivos. Selecione o nível de acesso que este usuário tem ao SyncPlay.",
- "AllowVppTonemappingHelp": "Mapeamento de tons baseado em driver completo da Intel. Atualmente funciona apenas em determinados hardwares com vídeos HDR10. Esta opção tem prioridade mais alta em comparação com outra implementação OpenCL.",
- "LabelSyncPlaySettingsMinDelaySkipToSyncHelp": "Atraso mínimo de reprodução (em ms) após o qual o SkipToSync tenta corrigir a posição da reprodução.",
- "OptionMaxActiveSessions": "Defina o número máximo de sessões de usuário simultâneas.",
- "LabelSyncPlaySettingsSpeedToSyncDurationHelp": "Quantidade de milissegundos usados pelo SpeedToSync para corrigir a posição da reprodução.",
- "SubtitleAppearanceSettingsDisclaimer": "As configurações a seguir não se aplicam às legendas gráficas mencionadas acima ou às legendas ASS/SSA que incorporam seus próprios estilos.",
- "UnsupportedPlayback": "O Jellyfin não pode descriptografar conteúdo protegido por DRM, mas todo o conteúdo será tentado independentemente, incluindo títulos protegidos. Alguns arquivos podem aparecer completamente pretos devido à criptografia ou outros recursos não suportados, como títulos interativos.",
- "MessageSyncPlayGroupWait": "{0} está carregando…",
- "LabelSelectAudioNormalization": "Normalização de Áudio",
- "LabelBackdropScreensaverIntervalHelp": "O tempo em segundos entre diferentes planos de fundo ao usar o protetor de tela com plano de fundo.",
+ "AllowVppTonemappingHelp": "Mapeamento de tons totalmente baseado no driver Intel. Vídeos em HDR10 funcionam apenas em certas configurações de hardware. Tem maior prioridade quando comparado a outras implementações OpenCL.",
+ "LabelSyncPlaySettingsMinDelaySkipToSyncHelp": "Atraso mínimo de reprodução (em ms) após o qual SkipToSync tenta corrigir a posição de reprodução.",
+ "OptionMaxActiveSessions": "Definir o número máximo de sessões de usuário simultâneas.",
+ "LabelSyncPlaySettingsSpeedToSyncDurationHelp": "Quantidade de milissegundos usados pelo SpeedToSync para corrigir a posição de reprodução.",
+ "SubtitleAppearanceSettingsDisclaimer": "Estas definições não se aplicam a legendas gráficas mencionadas acima ou a legendas ASS/SSA com estilos próprios incorporados.",
+ "UnsupportedPlayback": "Jellyfin não pode desencriptar conteúdo protegido por DRM, mas todo o conteúdo será testado de qualquer maneira, incluindo títulos protegidos. Alguns arquivos podem aparecer completamente pretos devido à encriptação ou a outros recursos não suportados, como títulos interativos.",
+ "MessageSyncPlayGroupWait": "{0} está a armazenar em buffer…",
+ "LabelSelectAudioNormalization": "Normalização de áudio",
+ "LabelBackdropScreensaverIntervalHelp": "O tempo em segundos entre a mudança de diferentes imagens de fundo na proteção de ecrã.",
"LabelServerVersion": "Versão do servidor",
- "LabelTonemappingPeakHelp": "Substitua o valor de metadados incorporado para o sinal de entrada por este valor de pico. O valor padrão é 100 (1000nit).",
- "OptionDateShowAdded": "Data do Programa Adicionado",
+ "LabelTonemappingPeakHelp": "Substitui o valor de metadados incorporado para o sinal de entrada por este valor de pico. O valor predefinido é 100 (1000nit).",
+ "OptionDateShowAdded": "Data de exibição adicionada",
"Studios": "Estúdios",
- "WriteAccessRequired": "O Jellyfin requer acesso de gravação a esta pasta. Por favor, assegure-se de que o acesso de gravação está habilitado e tente novamente.",
- "LabelFallbackFontPathHelp": "Essas fontes são usadas por alguns clientes para renderizar legendas. Consulte a documentação para mais informações.",
- "EnableGamepadHelp": "Ouvir entrada de qualquer controle conectado. (Requer: 'Modo de Exibição TV')",
- "BackdropScreensaver": "Protetor de tela com plano de fundo",
+ "WriteAccessRequired": "Jellyfin requer acesso de gravação a esta pasta. Garanta o acesso de gravação e tente novamente.",
+ "LabelFallbackFontPathHelp": "Essas fontes são usadas por alguns clientes para renderizar legendas. Consulte a documentação para obter mais informações.",
+ "EnableGamepadHelp": "Detetar o sinal de entrada de qualquer comando ligado. (Requer: Modo de apresentação 'TV')",
+ "BackdropScreensaver": "Fundo do protetor de ecrã",
"LabelLevel": "Nível",
- "LabelSyncPlaySettingsMinDelaySpeedToSync": "Atraso mínimo do SpeedToSync",
- "OptionDateEpisodeAdded": "Data do Episódio Adicionado",
- "SubtitleDownloadersHelp": "Ative e classifique seus baixadores de legendas preferidos por ordem de prioridade.",
- "Sort": "Ordenar",
- "SmartSubtitlesHelp": "Legendas que correspondem à preferência de idioma serão carregadas quando o áudio estiver em um idioma estrangeiro.",
+ "LabelSyncPlaySettingsMinDelaySpeedToSync": "Atraso mínimo da velocidade de sincronização",
+ "OptionDateEpisodeAdded": "Data do episódio adicionado",
+ "SubtitleDownloadersHelp": "Ativa e ordena os teus fornecedores de legendas preferidos por ordem de prioridade.",
+ "Sort": "Organizar",
+ "SmartSubtitlesHelp": "As legendas que correspondem à preferência de idioma serão carregadas quando o áudio estiver em um idioma estrangeiro.",
"SubtitleMagenta": "Magenta",
"Smart": "Inteligente",
- "StopPlayback": "Parar reprodução",
- "MessageSyncPlayEnabled": "SyncPlay ativado.",
- "MessageSyncPlayGroupDoesNotExist": "Falha ao entrar no grupo porque ele não existe.",
+ "StopPlayback": "Parar a reprodução",
+ "MessageSyncPlayEnabled": "Sincronização ativada.",
+ "MessageSyncPlayGroupDoesNotExist": "Falha ao ingressar no grupo porque ele não existe.",
"Subtitle": "Legenda",
- "MixedMoviesShows": "Filmes e Programas Mistos",
- "MessageSyncPlayIsDisabled": "Permissão necessária para usar o SyncPlay.",
- "LabelMediaDetails": "Detalhes da mídia",
- "MessageSyncPlayErrorNoActivePlayer": "Nenhum reprodutor ativo encontrado. O SyncPlay foi desativado.",
- "SpecialFeatures": "Recursos Especiais",
- "MessageSyncPlayNoGroupsAvailable": "Sem grupos disponíveis. Comece a reproduzir algo primeiro.",
+ "MixedMoviesShows": "Filmes e séries misturados",
+ "MessageSyncPlayIsDisabled": "Requer permissão para utilizar SyncPlay.",
+ "LabelMediaDetails": "Detalhes do conteúdo multimédia",
+ "MessageSyncPlayErrorNoActivePlayer": "Não foi encontrado nenhum leitor ativo. O SyncPlay foi desativado.",
+ "SpecialFeatures": "Opções especiais",
+ "MessageSyncPlayNoGroupsAvailable": "Não há grupos disponíveis. Começa por reproduzir algo primeiro.",
"Smaller": "Menor",
"MessageSyncPlayErrorMedia": "Falha ao ativar o SyncPlay! Erro de mídia.",
"MessageSyncPlayErrorAccessingGroups": "Ocorreu um erro ao acessar a lista de grupos.",
@@ -1522,346 +1522,346 @@
"SubtitleVerticalPositionHelp": "Número da linha onde o texto aparece. Números positivos indicam de cima para baixo. Números negativos indicam de baixo para cima.",
"Remuxing": "Remuxing",
"OnApplicationStartup": "Na inicialização do aplicativo",
- "MessageSyncPlayLibraryAccessDenied": "Acesso a este conteúdo restrito.",
- "SortName": "Nome da ordenação",
+ "MessageSyncPlayLibraryAccessDenied": "O acesso a este conteúdo é restrito.",
+ "SortName": "Classificar nome",
"SubtitleAppearanceSettingsAlsoPassedToCastDevices": "Essas configurações também se aplicam a qualquer reprodução do Google Cast iniciada por este dispositivo.",
- "OnWakeFromSleep": "Ao sair do modo de suspensão",
- "OptionMaxActiveSessionsHelp": "Um valor de 0 desativará o recurso.",
+ "OnWakeFromSleep": "Ao acordar da suspensão",
+ "OptionMaxActiveSessionsHelp": "Um valor 0 desativará o recurso.",
"Watched": "Assistido",
- "SyncPlayGroupDefaultTitle": "Grupo de {0}",
+ "SyncPlayGroupDefaultTitle": "grupo de {0}",
"TabRepositories": "Repositórios",
- "TagsValue": "Tags: {0}",
+ "TagsValue": "Etiquetas: {0}",
"TextSent": "Texto enviado.",
- "ThemeSongs": "Músicas tema",
- "ThemeVideos": "Vídeos tema",
- "TheseSettingsAffectSubtitlesOnThisDevice": "Essas configurações afetam as legendas neste dispositivo",
+ "ThemeSongs": "Bandas sonoras do tema",
+ "ThemeVideos": "Vídeos do tema",
+ "TheseSettingsAffectSubtitlesOnThisDevice": "Estas definições afetam as legendas neste dispositivo",
"Thumb": "Miniatura",
- "ThumbCard": "Cartão de Miniatura",
- "TitleHardwareAcceleration": "Aceleração por Hardware",
+ "ThumbCard": "Miniatura em forma de cartão",
+ "TitleHardwareAcceleration": "Aceleraçao do hardware",
"Trailers": "Trailers",
"TypeOptionPluralAudio": "Áudios",
"TypeOptionPluralBook": "Livros",
"TypeOptionPluralMovie": "Filmes",
"Typewriter": "Máquina de escrever",
"UnknownError": "Ocorreu um erro desconhecido.",
- "Up": "Para cima",
- "Upload": "Enviar",
+ "Up": "Acima",
+ "Upload": "Carregar",
"ValueCodec": "Codec: {0}",
"ValueContainer": "Contêiner: {0}",
"ValueDiscNumber": "Disco {0}",
"ValueMovieCount": "{0} filmes",
"ValueEpisodeCount": "{0} episódios",
- "ValueMusicVideoCount": "{0} vídeos musicais",
+ "ValueMusicVideoCount": "{0} videoclipes",
"ValueOneEpisode": "1 episódio",
"ValueOneSong": "1 música",
"ValueSeconds": "{0} segundos",
"ViewAlbum": "Ver álbum",
"ViewAlbumArtist": "Ver artista do álbum",
"ViewPlaybackInfo": "Ver informações de reprodução",
- "WeeklyAt": "{0}s às {1}",
- "Whitelist": "Lista branca",
- "Writers": "Escritores",
- "XmlTvKidsCategoriesHelp": "Programas com essas categorias serão exibidos como programas para crianças. Separe várias com '|'.",
+ "WeeklyAt": "{0} às {1}",
+ "Whitelist": "Lista de permissões",
+ "Writers": "Argumento",
+ "XmlTvKidsCategoriesHelp": "Lista de categorias, separadas por '|', que correspondem a programas para crianças.",
"Yes": "Sim",
- "HeaderSelectFallbackFontPathHelp": "Navegue ou insira o caminho da pasta da fonte de recuo a ser usada para renderizar legendas ASS/SSA.",
- "RemuxHelp1": "A mídia está em um contêiner de arquivo incompatível (MKV, AVI, WMV, etc), mas tanto o stream de vídeo quanto o de áudio são compatíveis com o dispositivo. A mídia será reembalada sem perdas em tempo real antes de ser enviada ao dispositivo.",
- "PreferFmp4HlsContainer": "Preferir contêiner de mídia fMP4-HLS",
- "LabelSyncPlayInfo": "Informações do SyncPlay",
- "PreferFmp4HlsContainerHelp": "Preferir usar fMP4 como o contêiner padrão para HLS, tornando possível o streaming direto de conteúdos HEVC e AV1 em dispositivos suportados.",
+ "HeaderSelectFallbackFontPathHelp": "Navegue ou insira o caminho da pasta de fontes substitutas a ser usada para renderizar legendas ASS/SSA.",
+ "RemuxHelp1": "O ficheiro multimédia está num container de ficheiros incompatível (MKV, AVI, WMV, etc.), mas tanto o fluxo de vídeo como o fluxo de áudio são compatíveis com o dispositivo. O ficheiro multimédia será reempacotado sem perdas em tempo real antes de ser enviado para o dispositivo.",
+ "PreferFmp4HlsContainer": "Preferir o container multimédia fMP4-HLS",
+ "LabelSyncPlayInfo": "Informações de Sincronização",
+ "PreferFmp4HlsContainerHelp": "Utiliza o fMP4 como container predefinido para HLS, tornando possível a transmissão direta de conteúdos HEVC e AV1 em dispositivos suportados.",
"LabelSelectAudioChannels": "Canais",
"LabelSelectStereo": "Estéreo",
- "ContainerNotSupported": "O contêiner não é suportado",
- "LabelSyncPlayNoGroups": "Sem grupos disponíveis",
- "LabelSyncPlaySettingsMaxDelaySpeedToSync": "Atraso máximo do SpeedToSync",
- "LabelSyncPlaySettingsSkipToSync": "Ativar SkipToSync",
+ "ContainerNotSupported": "O container não é suportado",
+ "LabelSyncPlayNoGroups": "Não há grupos disponíveis",
+ "LabelSyncPlaySettingsMaxDelaySpeedToSync": "Atraso máximo da Velocidade de sincronização",
+ "LabelSyncPlaySettingsSkipToSync": "Ativar pulo de sincronização",
"LabelSyncPlaySettingsSpeedToSync": "Ativar SpeedToSync",
"NotificationsMovedMessage": "A funcionalidade de notificações foi movida para o plugin Webhook.",
- "AspectRatioCover": "Cobrir",
+ "AspectRatioCover": "Zoom",
"AspectRatioFill": "Esticar",
- "AudioCodecNotSupported": "O codec de áudio não é suportado",
- "HeaderGuestCast": "Participações Especiais",
- "LabelSyncPlaySettingsSpeedToSyncHelp": "Método de correção de sincronização que consiste em acelerar a reprodução. A correção de sincronização deve estar ativada.",
+ "AudioCodecNotSupported": "O codec de áudio não é compatível",
+ "HeaderGuestCast": "Estrelas convidadas",
+ "LabelSyncPlaySettingsSpeedToSyncHelp": "Método de correção de sincronização que consiste em acelerar a reprodução. A correção de sincronização deve estar habilitada.",
"MessageSyncPlayDisabled": "SyncPlay desativado.",
- "LabelVideoInfo": "Informações de Vídeo",
- "LabelRemuxingInfo": "Informações de Remuxing",
+ "LabelVideoInfo": "Informações do vídeo",
+ "LabelRemuxingInfo": "Informações sobre remixagem",
"LabelDate": "Data",
- "MessageRenameMediaFolder": "Renomear uma biblioteca de mídia fará com que todos os metadados sejam perdidos, prossiga com cautela.",
- "LabelSyncPlaySettingsMinDelaySkipToSync": "Atraso mínimo do SkipToSync",
+ "MessageRenameMediaFolder": "Mudar o nome de uma biblioteca multimédia fará com que todos os metadados se percam, por isso, procede com cuidado.",
+ "LabelSyncPlaySettingsMinDelaySkipToSync": "Atraso mínimo do pulo de sincronização",
"LogLevel.None": "Nenhum",
"LogLevel.Critical": "Crítico",
"New": "Novo",
"SubtitleWhite": "Branco",
- "SubtitleLightGray": "Cinza Claro",
+ "SubtitleLightGray": "Cinza claro",
"Track": "Faixa",
- "TypeOptionPluralMusicArtist": "Artistas de Música",
+ "TypeOptionPluralMusicArtist": "Artistas musicais",
"TypeOptionPluralSeason": "Temporadas",
"LabelSelectMono": "Mono",
- "HeaderEpisodesStatus": "Status dos Episódios",
- "LabelSyncPlaySettingsSkipToSyncHelp": "Método de correção de sincronização que consiste em buscar a posição estimada. A correção de sincronização deve estar ativada.",
- "LogLevel.Trace": "Rastrear",
- "LogLevel.Debug": "Depurar",
+ "HeaderEpisodesStatus": "Status dos episódios",
+ "LabelSyncPlaySettingsSkipToSyncHelp": "Método de correção de sincronismo que consiste em buscar a posição estimada. A correção de sincronização deve estar habilitada.",
+ "LogLevel.Trace": "Rastreio",
+ "LogLevel.Debug": "Depuração",
"LogLevel.Information": "Informação",
- "MessageRepositoryInstallDisclaimer": "ATENÇÃO: Instalar um repositório de plugin de terceiros envolve riscos. Ele pode conter código instável ou malicioso, e pode mudar a qualquer momento. Instale apenas repositórios de autores confiáveis.",
- "OptionAllowContentDownload": "Permitir downloads de mídia",
- "StoryArc": "Arco da História",
+ "MessageRepositoryInstallDisclaimer": "AVISO: A instalação de uma extensão de terceiros acarreta riscos. Ela pode conter código instável ou malicioso e pode ser alterado a qualquer momento. Instala apenas extensões de autores em quem confias.",
+ "OptionAllowContentDownload": "Permitir transferências de multimédia",
+ "StoryArc": "Arco da história",
"TabNetworking": "Rede",
"ValueOneMovie": "1 filme",
- "HeaderSelectFallbackFontPath": "Selecionar Caminho da Fonte de Recuo",
- "XmlTvMovieCategoriesHelp": "Programas com essas categorias serão exibidos como filmes. Separe várias com '|'.",
- "LabelVideoRange": "Faixa de vídeo",
- "Mixer": "Mixer",
+ "HeaderSelectFallbackFontPath": "Selecione o caminho da pasta de fontes substitutas",
+ "XmlTvMovieCategoriesHelp": "Lista de categorias, separadas por '|', que correspondem a filmes.",
+ "LabelVideoRange": "Gama de vídeo",
+ "Mixer": "Misturador",
"LabelSystem": "Sistema",
- "SaveRecordingImages": "Salvar imagens EPG da gravação",
- "SaveRecordingImagesHelp": "Salvar imagens do provedor de listagens EPG junto com a mídia.",
- "UseDoubleRateDeinterlacing": "Dobrar a taxa de quadros ao desentrelaçar",
+ "SaveRecordingImages": "Guardar imagens da gravação EPG",
+ "SaveRecordingImagesHelp": "Guardar imagens do fornecedor de listas EPG juntamente com os ficheiros multimédia.",
+ "UseDoubleRateDeinterlacing": "Duplicar a velocidade de fotogramas ao desentrelaçar",
"MessageSyncPlayUserJoined": "{0} entrou no grupo.",
"MessageSyncPlayUserLeft": "{0} saiu do grupo.",
"MillisecondsUnit": "ms",
"SubtitleGreen": "Verde",
"Notifications": "Notificações",
- "XmlTvNewsCategoriesHelp": "Programas com essas categorias serão exibidos como programas de notícias. Separe várias com '|'.",
- "LabelOriginalMediaInfo": "Informações da Mídia Original",
- "YoutubeBadRequest": "Solicitação inválida.",
- "YoutubeDenied": "O vídeo solicitado não pode ser reproduzido em players incorporados.",
- "TypeOptionPluralBoxSet": "Caixas",
- "LabelBackdropScreensaverInterval": "Intervalo do protetor de tela com plano de fundo",
- "UseDoubleRateDeinterlacingHelp": "Esta configuração usa a taxa de campo ao desentrelaçar, muitas vezes chamada de desentrelaçamento bob, que dobra a taxa de quadros do vídeo para fornecer movimento completo como o que você veria ao visualizar vídeo entrelaçado em uma TV.",
- "LabelDirectStreamingInfo": "Informações de Streaming Direto",
- "LabelAlbumGain": "Ganho do Álbum",
- "LogoScreensaver": "Protetor de tela com logo",
- "MediaInfoColorSpace": "Espaço de cor",
+ "XmlTvNewsCategoriesHelp": "Lista de categorias, separadas por '|', que correspondem a programas de informação.",
+ "LabelOriginalMediaInfo": "Informações da mídia original",
+ "YoutubeBadRequest": "Requisição ruim.",
+ "YoutubeDenied": "O vídeo solicitado não pode ser reproduzido em leitores incorporados.",
+ "TypeOptionPluralBoxSet": "Conjuntos de caixas",
+ "LabelBackdropScreensaverInterval": "Intervalo da imagem de fundo do protetor de ecrã",
+ "UseDoubleRateDeinterlacingHelp": "Esta definição utiliza a taxa de campo durante o desentrelaçamento, muitas vezes referido como desentrelaçamento bob, que duplica a taxa de fotogramas do vídeo para proporcionar movimento fluído, como o que verias ao ver vídeo entrelaçado numa televisão.",
+ "LabelDirectStreamingInfo": "Informações de transmissão direta",
+ "LabelAlbumGain": "Ganho do álbum",
+ "LogoScreensaver": "Logótipo da proteção de ecrã",
+ "MediaInfoColorSpace": "Espaço colorido",
"Studio": "Estúdio",
"SubtitleGray": "Cinza",
- "TabLogs": "Logs",
- "Tags": "Tags",
+ "TabLogs": "Registos (Logs)",
+ "Tags": "Etiquetas",
"Vertical": "Vertical",
"Video": "Vídeo",
- "VideoAudio": "Áudio de Vídeo",
- "MessageNoItemsAvailable": "Nenhum item disponível no momento.",
- "MessageNoFavoritesAvailable": "Nenhum favorito disponível no momento.",
- "SaveRecordingNFOHelp": "Salvar metadados do provedor de listagens EPG junto com a mídia.",
- "TonemappingRangeHelp": "Selecione a faixa de cor de saída. Automático é o mesmo que a faixa de entrada.",
+ "VideoAudio": "Vídeo Áudio",
+ "MessageNoItemsAvailable": "Nenhum item está disponível no momento.",
+ "MessageNoFavoritesAvailable": "Não existem favoritos atualmente disponíveis.",
+ "SaveRecordingNFOHelp": "Guardar metadados do fornecedor de listagens EPG juntamente com os ficheiros multimédia.",
+ "TonemappingRangeHelp": "Seleciona o intervalo de cores de saída. A opção 'Automático' mantém o intervalo de cores de entrada.",
"TypeOptionPluralEpisode": "Episódios",
- "MediaInfoColorTransfer": "Transferência de cor",
- "MediaInfoVideoRange": "Faixa de vídeo",
- "MessageNoGenresAvailable": "Ative alguns provedores de metadados para buscar gêneros da internet.",
- "ListView": "Visualização em lista",
+ "MediaInfoColorTransfer": "Transferência de cores",
+ "MediaInfoVideoRange": "Gama de vídeo",
+ "MessageNoGenresAvailable": "Ativa alguns fornecedores de metadados para obter géneros da internet.",
+ "ListView": "Lista de Exibição",
"LogLevel.Warning": "Aviso",
- "MessageChangeRecordingPath": "Alterar sua pasta de gravação não migrará gravações existentes da antiga localização para a nova. Você precisará movê-las manualmente, se desejado.",
+ "MessageChangeRecordingPath": "Alterar a localização das gravações não irá migrar as gravações existentes da localização atual para a nova. Os ficheiros deverão ser movidos manualmente, se necessário.",
"ListPaging": "{0}-{1} de {2}",
"Localization": "Localização",
"Lyricist": "Letrista",
"NextChapter": "Próximo capítulo",
- "TvLibraryHelp": "Veja o {0}guia de nomes de TV{1}.",
- "TypeOptionPluralSeries": "Programas de TV",
+ "TvLibraryHelp": "Revise o {0}guia de nomenclatura de TV{1}.",
+ "TypeOptionPluralSeries": "Séries",
"TypeOptionPluralVideo": "Vídeos",
- "ValueSeriesCount": "{0} séries",
- "LabelAudioInfo": "Informações de Áudio",
+ "ValueSeriesCount": "{0} série",
+ "LabelAudioInfo": "Informações de áudio",
"RemuxHelp2": "Remux usa muito pouco poder de processamento com qualidade de mídia completamente sem perdas.",
"MenuOpen": "Abrir Menu",
"MenuClose": "Fechar Menu",
- "OptionAllowContentDownloadHelp": "Os usuários podem baixar mídias e armazená-las em seus dispositivos. Isso não é o mesmo que um recurso de sincronização. Bibliotecas de livros exigem isso ativado para funcionar corretamente.",
- "SmallCaps": "Caps pequenas",
+ "OptionAllowContentDownloadHelp": "Os utilizadores podem transferir conteúdo multimédia e armazená-lo nos seus dispositivos. Isto não é o mesmo que uma funcionalidade de sincronização. As bibliotecas de livros necessitam de ter esta opção ativada para funcionarem corretamente.",
+ "SmallCaps": "Letras Minúsculas",
"StereoDownmixAlgorithmHelp": "Algoritmo usado para fazer downmix de áudio multicanal para estéreo.",
"Suggestions": "Sugestões",
"TabCodecs": "Codificadores",
"SubtitleRed": "Vermelho",
"SubtitleYellow": "Amarelo",
"Unrated": "Sem classificação",
- "TypeOptionPluralMusicAlbum": "Álbuns de Música",
- "TypeOptionPluralMusicVideo": "Vídeos Musicais",
+ "TypeOptionPluralMusicAlbum": "Álbuns de música",
+ "TypeOptionPluralMusicVideo": "Vídeos musicais",
"UserMenu": "Menu do Usuário",
"ValueAlbumCount": "{0} álbuns",
"ValueOneAlbum": "1 álbum",
"ValueSongCount": "{0} músicas",
- "Controls": "Controles",
- "LabelSyncPlaySettingsSpeedToSyncDuration": "Duração do SpeedToSync",
- "EnableFallbackFontHelp": "Ativar fontes alternativas personalizadas. Isso pode evitar o problema de renderização incorreta de legendas.",
- "MessagePlaybackError": "Ocorreu um erro ao reproduzir este arquivo em seu receptor Google Cast.",
+ "Controls": "Comandos",
+ "LabelSyncPlaySettingsSpeedToSyncDuration": "Duração da Velocidade de sincronização",
+ "EnableFallbackFontHelp": "Ative fontes alternativas personalizadas. Isso pode evitar o problema de renderização incorreta de legendas.",
+ "MessagePlaybackError": "Ocorreu um erro ao reproduzir este ficheiro no teu recetor Google Cast.",
"NextTrack": "Pular para o próximo",
- "TitleHostingSettings": "Configurações de Hospedagem",
+ "TitleHostingSettings": "Definições de hospedagem",
"LabelTextWeight": "Peso do texto",
"Bold": "Negrito",
- "MessageSyncPlayCreateGroupDenied": "Permissão necessária para criar um grupo.",
- "MessageUnauthorizedUser": "Você não está autorizado a acessar o servidor neste momento. Por favor, entre em contato com o administrador do servidor para mais informações.",
+ "MessageSyncPlayCreateGroupDenied": "Requer permissão para criar um grupo.",
+ "MessageUnauthorizedUser": "Você não está autorizado a acessar o servidor neste momento. Entre em contato com o administrador do servidor para obter mais informações.",
"OtherArtist": "Outro Artista",
"Transcoding": "Transcodificação",
"YoutubePlaybackError": "O vídeo solicitado não pode ser reproduzido.",
- "MessageChromecastConnectionError": "Seu receptor Google Cast não consegue contatar o servidor Jellyfin. Por favor, verifique a conexão e tente novamente.",
- "EnableFallbackFont": "Ativar fontes de recuo",
+ "MessageChromecastConnectionError": "O recetor Google Cast não consegue contactar o servidor Jellyfin. Verifica a ligação e tenta novamente.",
+ "EnableFallbackFont": "Ativar fontes substitutas",
"LabelDeveloper": "Desenvolvedor",
- "MessageSyncPlayErrorMissingSession": "Falha ao ativar o SyncPlay! Sessão ausente.",
- "MessageSyncPlayPlaybackPermissionRequired": "Permissão de reprodução necessária.",
- "OriginalAirDate": "Data Original de Exibição",
- "SelectAudioNormalizationHelp": "Track gain - ajusta o volume de cada faixa para que sejam reproduzidas com o mesmo nível de loudness. Album gain - ajusta o volume de todas as faixas de um álbum, mantendo a faixa dinâmica do álbum. Alternar entre \"Desligado\" e outras opções requer reiniciar a reprodução atual.",
- "LabelSyncPlaySettingsSyncCorrectionHelp": "Ativar sincronização ativa da reprodução, acelerando a mídia ou buscando a posição estimada. Desative isso em caso de gagueira intensa.",
+ "MessageSyncPlayErrorMissingSession": "Falha ao ativar o Sincronização! Sessão perdida.",
+ "MessageSyncPlayPlaybackPermissionRequired": "Requer permissão de reprodução.",
+ "OriginalAirDate": "Data de transmissão original",
+ "SelectAudioNormalizationHelp": "Ganho de faixa - ajusta o volume de cada faixa para que sejam reproduzidas com o mesmo volume. Ganho do álbum - ajusta o volume de todas as faixas apenas de um álbum, mantendo a faixa dinâmica do álbum. Alternar entre \"Desativado\" e outras opções requer o reinício da reprodução atual.",
+ "LabelSyncPlaySettingsSyncCorrectionHelp": "Permite que a reprodução seja acelerada ou que o leitor salte para a posição estimada. Desativa caso esteja com paragens de reprodução frequentes.",
"Larger": "Maior",
"LogLevel.Error": "Erro",
"MediaInfoTitle": "Título",
- "MessageAddRepository": "Se você deseja adicionar um repositório, clique no botão ao lado do cabeçalho e preencha as informações solicitadas.",
+ "MessageAddRepository": "Caso queira adicionar um repositório, clique no botão próximo ao cabeçalho e preencha as informações solicitadas.",
"MessageSyncPlayJoinGroupDenied": "Não é possível entrar no grupo.",
- "LabelTrackGain": "Ganho da Faixa",
- "ValueMinutes": "{0} min",
- "LabelBuildVersion": "Versão da compilação",
- "LabelWebVersion": "Versão da Web",
+ "LabelTrackGain": "Rastrear ganho",
+ "ValueMinutes": "{0} minutos",
+ "LabelBuildVersion": "Versão de compilação",
+ "LabelWebVersion": "Versão web",
"SubtitleCyan": "Ciano",
- "SubtitleOffset": "Deslocamento da Legenda",
- "ValueOneMusicVideo": "1 vídeo musical",
+ "SubtitleOffset": "Deslocamento de legenda",
+ "ValueOneMusicVideo": "1 videoclipe",
"ValueOneSeries": "1 série",
- "XmlTvSportsCategoriesHelp": "Programas com essas categorias serão exibidos como programas esportivos. Separe várias com '|'.",
- "LabelFallbackFontPath": "Caminho da pasta da fonte de recuo",
- "LabelPlaybackInfo": "Informações de Reprodução",
- "LabelTranscodingInfo": "Informações de Transcodificação",
- "AllowHevcEncoding": "Permitir codificação em formato HEVC",
- "LabelAllowedAudioChannels": "Máximo de Canais de Áudio Permitidos",
+ "XmlTvSportsCategoriesHelp": "Lista de categorias, separadas por '|', que correspondem a programas de desporto.",
+ "LabelFallbackFontPath": "Caminho da pasta de fontes substitutas",
+ "LabelPlaybackInfo": "Informações de reprodução",
+ "LabelTranscodingInfo": "Informações de transcodificação",
+ "AllowHevcEncoding": "Permitir codificação no formato HEVC",
+ "LabelAllowedAudioChannels": "Máximo de canais de áudio permitidos",
"YoutubeNotFound": "Vídeo não encontrado.",
- "EnableEnhancedNvdecDecoder": "Ativar decodificador NVDEC aprimorado",
- "EnableVppTonemapping": "Ativar mapeamento de tons VPP",
- "MediaInfoDvProfile": "Perfil do DV",
- "VideoCodecNotSupported": "O codec de vídeo não é suportado",
- "SubtitleCodecNotSupported": "O codec de legenda não é suportado",
+ "EnableEnhancedNvdecDecoder": "Habilitar decodificador NVDEC aprimorado",
+ "EnableVppTonemapping": "Ativar o mapeamento de tons VPP",
+ "MediaInfoDvProfile": "Perfil DV",
+ "VideoCodecNotSupported": "O codec de vídeo não é compatível",
+ "SubtitleCodecNotSupported": "O codec de legenda não é compatível",
"RefFramesNotSupported": "Quadros de referência não são suportados",
"SecondaryAudioNotSupported": "Faixas de áudio secundárias não são suportadas",
- "VideoLevelNotSupported": "O nível do codec de vídeo não é suportado",
+ "VideoLevelNotSupported": "O nível do codec de vídeo não é compatível",
"AudioBitDepthNotSupported": "A profundidade de bits do áudio não é suportada",
- "LabelHardwareEncodingOptions": "Opções de codificação por hardware",
- "UnknownAudioStreamInfo": "As informações do stream de áudio são desconhecidas",
+ "LabelHardwareEncodingOptions": "Opções de codificação de hardware",
+ "UnknownAudioStreamInfo": "As informações do fluxo de áudio são desconhecidas",
"DirectPlayError": "Ocorreu um erro ao iniciar a reprodução direta",
- "Short": "Curta",
+ "Short": "Curto",
"Clip": "Clipe",
- "BehindTheScenes": "Por trás das câmeras",
+ "BehindTheScenes": "Bastidores",
"DeletedScene": "Cena deletada",
"Interview": "Entrevista",
- "LabelVideoRangeType": "Tipo de faixa de vídeo",
- "MediaInfoVideoRangeType": "Tipo de faixa de vídeo",
- "MediaInfoDoViTitle": "Título DV",
- "MediaInfoDvVersionMajor": "Versão maior do DV",
- "MediaInfoDvLevel": "Nível do DV",
+ "LabelVideoRangeType": "Tipo de gama de vídeo",
+ "MediaInfoVideoRangeType": "Tipo de gama de vídeo",
+ "MediaInfoDoViTitle": "Título do DVD",
+ "MediaInfoDvVersionMajor": "Versão DV principal",
+ "MediaInfoDvLevel": "Nível DV",
"Unreleased": "Ainda não lançado",
- "AllowAv1Encoding": "Permitir codificação em formato AV1",
- "AiTranslated": "Traduzido por IA",
- "MachineTranslated": "Traduzido por Máquina",
- "AnamorphicVideoNotSupported": "Vídeo anamórfico não é suportado",
- "InterlacedVideoNotSupported": "Vídeo entrelaçado não é suportado",
- "EnableEnhancedNvdecDecoderHelp": "Implementação aprimorada do NVDEC, desative esta opção para usar o CUVID se você encontrar erros de decodificação.",
+ "AllowAv1Encoding": "Permitir codificação no formato AV1",
+ "AiTranslated": "IA traduzida",
+ "MachineTranslated": "Traduzido automaticamente",
+ "AnamorphicVideoNotSupported": "Vídeos anamórficos não são suportados",
+ "InterlacedVideoNotSupported": "Vídeo entrelaçado não é compatível",
+ "EnableEnhancedNvdecDecoderHelp": "Implementação NVDEC melhorada, desativa esta opção e utiliza CUVID no caso de encontrares erros de descodificação.",
"AudioChannelsNotSupported": "O número de canais de áudio não é suportado",
"ContainerBitrateExceedsLimit": "A taxa de bits do vídeo excede o limite",
"VideoBitrateNotSupported": "A taxa de bits do vídeo não é suportada",
- "LabelVppTonemappingBrightness": "Ganho de brilho do mapeamento de tons VPP",
- "LabelVppTonemappingBrightnessHelp": "Aplicar ganho de brilho no mapeamento de tons VPP. O valor recomendado é 16.",
- "ThemeSong": "Música Tema",
- "Featurette": "Featurette",
+ "LabelVppTonemappingBrightness": "Ganho de brilho para mapeamento de tons VPP",
+ "LabelVppTonemappingBrightnessHelp": "Aplica o ganho de brilho no mapeamento de tons VPP. O valor recomendado é 16.",
+ "ThemeSong": "Banda sonora do tema",
+ "Featurette": "Destaque",
"Scene": "Cena",
"Sample": "Amostra",
- "ThemeVideo": "Vídeo Tema",
- "EnableSplashScreen": "Ativar a imagem da tela de apresentação",
+ "ThemeVideo": "Vídeo do tema",
+ "EnableSplashScreen": "Ativar imagem do ecrã de apresentação",
"LabelVppTonemappingContrast": "Ganho de contraste do mapeamento de tons VPP",
- "LabelVppTonemappingContrastHelp": "Aplicar ganho de contraste no mapeamento de tons VPP. O valor recomendado é 1.",
+ "LabelVppTonemappingContrastHelp": "Aplica o ganho de contraste no mapeamento de tons VPP. O valor recomendado é 1.",
"Unknown": "Desconhecido",
- "EnableIntelLowPowerHevcHwEncoder": "Ativar codificador de hardware HEVC de baixo consumo Intel",
- "AudioIsExternal": "O stream de áudio é externo",
- "MediaInfoElPresentFlag": "Sinalizador de preset EL do DV",
- "AudioProfileNotSupported": "O perfil do codec de áudio não é suportado",
- "MediaInfoDvVersionMinor": "Versão menor do DV",
+ "EnableIntelLowPowerHevcHwEncoder": "Habilitar codificador de hardware HEVC Intel Baixa-Potência",
+ "AudioIsExternal": "O fluxo de áudio é externo",
+ "MediaInfoElPresentFlag": "Sinalizador predefinido DV EL",
+ "AudioProfileNotSupported": "O perfil do codec de áudio não é compatível",
+ "MediaInfoDvVersionMinor": "Versão DV menor",
"Select": "Selecionar",
- "VideoProfileNotSupported": "O perfil do codec de vídeo não é suportado",
- "MediaInfoRpuPresentFlag": "Sinalizador de preset RPU do DV",
- "HearingImpairedShort": "HI/SDH",
+ "VideoProfileNotSupported": "O perfil do codec de vídeo não é compatível",
+ "MediaInfoRpuPresentFlag": "Sinalizador predefinido DV RPU",
+ "HearingImpairedShort": "Alta Definição/SDH",
"ForeignPartsOnly": "Apenas partes forçadas/estrangeiras",
"LabelIsHearingImpaired": "Para deficientes auditivos (SDH)",
"AudioBitrateNotSupported": "A taxa de bits do áudio não é suportada",
"AudioSampleRateNotSupported": "A taxa de amostragem do áudio não é suportada",
"VideoResolutionNotSupported": "A resolução do vídeo não é suportada",
"VideoBitDepthNotSupported": "A profundidade de bits do vídeo não é suportada",
- "VideoFramerateNotSupported": "A taxa de quadros do vídeo não é suportada",
+ "VideoFramerateNotSupported": "A taxa de quadros do vídeo não é compatível",
"UnknownVideoStreamInfo": "As informações do stream de vídeo são desconhecidas",
- "SelectAll": "Selecionar Tudo",
- "LabelTonemappingMode": "Modo de mapeamento de tons",
- "TonemappingModeHelp": "Selecione o modo de mapeamento de tons. Se você experimentar realces estourados, tente mudar para o modo RGB.",
- "VideoRangeTypeNotSupported": "O tipo de faixa do vídeo não é suportado",
+ "SelectAll": "Selecionar tudo",
+ "LabelTonemappingMode": "Modo do mapeamento de tons",
+ "TonemappingModeHelp": "Seleciona o modo de mapeamento de tons. Se notares áreas muito claras ou estouradas, experimenta mudar para o modo RGB.",
+ "VideoRangeTypeNotSupported": "O tipo de gama deste vídeo não é suportado",
"ChannelResolutionHD": "HD",
"ChannelResolutionSD": "SD",
- "AllowVideoToolboxTonemappingHelp": "Mapeamento de tons acelerado por hardware fornecido pelo VideoToolbox. Funciona com a maioria dos formatos HDR, incluindo HDR10, HDR10+ e HLG, mas não funciona com Dolby Vision Profile 5. Esta opção tem prioridade mais alta em comparação com outra implementação Metal.",
- "EnableVideoToolboxTonemapping": "Ativar mapeamento de tons VideoToolbox",
+ "AllowVideoToolboxTonemappingHelp": "Mapeamento de tons acelerado por hardware fornecido pelo VideoToolbox. Funciona com a maioria dos formatos HDR, incluindo HDR10, HDR10+ e HLG, mas não funciona com Dolby Vision Profile 5. Tem uma prioridade mais alta em comparação com outra implementação Metal.",
+ "EnableVideoToolboxTonemapping": "Ativar o mapeamento de tons do VideoToolbox",
"LabelUseReplayGainTags": "Usar etiquetas ReplayGain",
"LabelUseReplayGainTagsHelp": "Procura etiquetas replaygain nos ficheiros áudio e utiliza-as em vez de calcular o valor LUFS. (Utiliza menos poder de computação. Substitui a opção 'Verificação LUFS')",
- "AllowSubtitleManagement": "Permitir que este usuário edite legendas",
- "DeleteName": "Excluir {0}",
+ "AllowSubtitleManagement": "Permitir a este utilizador editar legendas",
+ "DeleteName": "Eliminar {0}",
"Trickplay": "Trickplay",
"AllowMjpegEncoding": "Permitir a codificação no formato MJPEG (usado durante a criação de trickplay)",
- "PriorityIdle": "Ocioso",
- "LabelProcessPriority": "Prioridade do Processo",
+ "PriorityIdle": "Inativo",
+ "LabelProcessPriority": "Prioridade do processo",
"LabelTrickplayAccelHelp": "Certifica-te de que ativas a opção \"Permitir codificação MJPEG\" em Transcodificação, se o teu hardware o suportar.",
- "PriorityAboveNormal": "Acima do Normal",
+ "PriorityAboveNormal": "Acima do normal",
"PriorityNormal": "Normal",
- "PriorityBelowNormal": "Abaixo do Normal",
- "LabelTrickplayAccel": "Ativar decodificação por hardware",
+ "PriorityBelowNormal": "Abaixo do normal",
+ "LabelTrickplayAccel": "Ativar a descodificação por hardware",
"PriorityHigh": "Alta",
"LabelJpegQualityHelp": "A qualidade de compressão JPEG para imagens trickplay.",
- "LabelImageInterval": "Intervalo de Imagem",
- "LabelQscale": "Qscale",
+ "LabelImageInterval": "Intervalo de imagem",
+ "LabelQscale": "Fator de qualidade (Qscale)",
"LabelImageIntervalHelp": "Intervalo de tempo (ms) entre cada nova imagem trickplay.",
- "LabelScanBehaviorHelp": "O comportamento padrão é não bloqueante, o que adicionará mídia à biblioteca antes que a geração de trickplay seja concluída. O bloqueante garantirá que os arquivos trickplay sejam gerados antes que a mídia seja adicionada à biblioteca, mas tornará as verificações significativamente mais longas.",
- "LabelWidthResolutions": "Resoluções de Largura",
- "LabelTileWidth": "Largura do Tile",
- "LabelWidthResolutionsHelp": "Lista separada por vírgulas das larguras (px) que as imagens trickplay serão geradas. Todas as imagens devem ser geradas proporcionalmente à fonte, então uma largura de 320 em um vídeo 16:9 termina em cerca de 320x180.",
- "LabelTrickplayThreadsHelp": "O número de threads a serem passadas para o argumento '-threads' do ffmpeg.",
- "LabelQscaleHelp": "A escala de qualidade das imagens geradas pelo ffmpeg, sendo 2 a mais alta qualidade e 31 a mais baixa.",
- "OptionExtractTrickplayImage": "Ativar extração de imagem trickplay",
- "LabelProcessPriorityHelp": "Definir isso mais baixo ou mais alto determinará como a CPU prioriza o processo de geração de trickplay do ffmpeg em relação a outros processos. Se você notar lentidão ao gerar imagens trickplay, mas não quiser interromper completamente a geração, tente diminuir isso e também a contagem de threads.",
- "LabelTileHeight": "Altura do Tile",
+ "LabelScanBehaviorHelp": "O comportamento predefinido é não bloqueante, o que faz com que os ficheiros multimédia sejam adicionados à biblioteca antes da geração do trickplay estar concluída. O modo bloqueante assegura que os ficheiros trickplay são gerados antes dos ficheiros multimédia serem adicionados à biblioteca, mas tornará as análises significativamente mais demoradas.",
+ "LabelWidthResolutions": "Resoluções de largura",
+ "LabelTileWidth": "Largura do mosaico",
+ "LabelWidthResolutionsHelp": "Lista separada por vírgulas das larguras (px) em que serão geradas as imagens trickplay. Todas as imagens devem ser geradas proporcionalmente à fonte, por isso um vídeo 16:9 com uma largura de 320 acabará por ter cerca de 320x180.",
+ "LabelTrickplayThreadsHelp": "O número de threads a passar para o argumento '-threads' do ffmpeg.",
+ "LabelQscaleHelp": "A escala de qualidade das imagens produzidas pelo ffmpeg, sendo 2 a qualidade mais elevada e 31 a mais baixa.",
+ "OptionExtractTrickplayImage": "Ativar a extração de imagens trickplay",
+ "LabelProcessPriorityHelp": "Definir este valor mais baixo ou mais alto determinará como o CPU prioriza o processo de geração de trickplay do ffmpeg em relação a outros processos. Se notares lentidão enquanto geras imagens de trickplay mas não queres parar completamente a sua geração, tenta baixar este valor, bem como a contagem de threads.",
+ "LabelTileHeight": "Altura do mosaico",
"LabelJpegQuality": "Qualidade JPEG",
- "LabelTileHeightHelp": "Número máximo de imagens por tile na direção Y.",
- "LabelTileWidthHelp": "Número máximo de imagens por tile na direção X.",
- "ExtractTrickplayImagesHelp": "Imagens trickplay são semelhantes às imagens de capítulo, exceto que abrangem toda a extensão do conteúdo e são usadas para mostrar uma prévia ao passar rapidamente por vídeos.",
- "AllowContentWithTagsHelp": "Exibir apenas mídias com pelo menos uma das tags especificadas.",
- "BlockContentWithTagsHelp": "Ocultar mídias com pelo menos uma das tags especificadas.",
- "ButtonEditUser": "Editar usuário",
- "EncodingFormatHelp": "Selecione a codificação de vídeo que o Jellyfin deve transcodificar. O Jellyfin usará codificação por software quando a aceleração de hardware para o formato selecionado não estiver disponível. A codificação H264 será sempre ativada.",
+ "LabelTileHeightHelp": "Número máximo de imagens por mosaico na direção Y.",
+ "LabelTileWidthHelp": "Número máximo de imagens por mosaico na direção X.",
+ "ExtractTrickplayImagesHelp": "As imagens Trickplay são semelhantes às imagens dos capítulos, exceto pelo facto de abrangerem toda a extensão do conteúdo e serem utilizadas para mostrar uma pré-visualização ao percorrer os vídeos.",
+ "AllowContentWithTagsHelp": "Mostrar apenas os conteúdos multimédia com pelo menos uma das etiquetas especificadas.",
+ "BlockContentWithTagsHelp": "Ocultar os conteúdos multimédia com pelo menos uma das etiquetas especificadas.",
+ "ButtonEditUser": "Editar utilizador",
+ "EncodingFormatHelp": "Seleciona a codificação de vídeo para a qual o Jellyfin deve transcodificar. O Jellyfin usará a codificação de software quando a aceleração de hardware para o formato selecionado não estiver disponível. A codificação H264 será sempre ativada.",
"LabelEncodingFormatOptions": "Opções de formato de codificação",
"AirPlay": "AirPlay",
- "LimitSupportedVideoResolutionHelp": "Usar 'Resolução máxima permitida para transcodificação de vídeo' como resolução máxima de vídeo suportada.",
- "EnableLibraryHelp": "Desativar a biblioteca a ocultará de todas as visualizações de usuários.",
+ "LimitSupportedVideoResolutionHelp": "Utiliza 'Resolução máxima permitida para transcodificação de vídeo' como resolução máxima de vídeo suportada.",
+ "EnableLibraryHelp": "Se desativares a biblioteca, ela será ocultada de todas as visualizações do utilizador.",
"EnableLibrary": "Ativar a biblioteca",
- "LabelTrickplayAccelEncodingHelp": "Atualmente disponível apenas no QSV, VA-API, VideoToolbox e RKMPP, esta opção não tem efeito em outros métodos de aceleração de hardware.",
- "LabelTrickplayAccelEncoding": "Ativar codificação MJPEG acelerada por hardware",
- "ConfirmDeleteLyrics": "Excluir estas letras irá removê-las do sistema de arquivos e da sua biblioteca de mídia. Tem certeza de que deseja continuar?",
+ "LabelTrickplayAccelEncodingHelp": "Atualmente apenas disponível em QSV, VA-API, VideoToolbox e RKMPP, esta opção não tem efeito noutros métodos de aceleração de hardware.",
+ "LabelTrickplayAccelEncoding": "Ativar a codificação MJPEG acelerada por hardware",
+ "ConfirmDeleteLyrics": "A eliminação destas letras irá eliminá-las do sistema de ficheiros e da tua biblioteca multimédia. Tens a certeza de que queres continuar?",
"ChannelResolutionFullHD": "Full HD",
"ChannelResolutionUHD4K": "UHD (4K)",
"ChannelResolutionSDPAL": "SD (PAL)",
- "ConfirmDeleteSeries": "Excluir esta série irá remover TODOS os {0} episódios do sistema de arquivos e da sua biblioteca de mídia. Tem certeza de que deseja continuar?",
- "LabelScanBehavior": "Comportamento da Verificação",
- "LabelTrickplayThreads": "Threads do FFmpeg",
+ "ConfirmDeleteSeries": "A eliminação desta série elimina TODOS os {0} episódios do sistema de ficheiros e da tua biblioteca multimédia. Tens a certeza de que queres continuar?",
+ "LabelScanBehavior": "Comportamento de análise",
+ "LabelTrickplayThreads": "Threads FFmpeg",
"Lyric": "Letra",
- "PlaybackError.FATAL_HLS_ERROR": "Um erro fatal foi encontrado no stream HLS.",
- "PlaybackError.MEDIA_DECODE_ERROR": "A reprodução falhou devido a um erro na decodificação da mídia.",
- "PlaybackError.MEDIA_NOT_SUPPORTED": "A reprodução falhou porque a mídia não é suportada por este cliente.",
+ "PlaybackError.FATAL_HLS_ERROR": "Foi encontrado um erro fatal na transmissão HLS.",
+ "PlaybackError.MEDIA_DECODE_ERROR": "A reprodução falhou devido a um erro ao descodificar o conteúdo.",
+ "PlaybackError.MEDIA_NOT_SUPPORTED": "A reprodução falhou porque o conteúdo não é suportado por este cliente.",
"PlaybackError.NETWORK_ERROR": "A reprodução falhou devido a um erro de rede.",
- "PlaybackError.NO_MEDIA_ERROR": "Não foi possível encontrar uma fonte de mídia válida para reproduzir.",
- "PlaybackError.PLAYER_ERROR": "A reprodução falhou devido a um erro fatal no player.",
- "PlaybackError.RateLimitExceeded": "Esta mídia não pode ser reproduzida no momento devido a limites de taxa.",
- "DeleteSeries": "Excluir série",
- "PlaybackError.NotAllowed": "A reprodução desta mídia não é permitida.",
- "EnableSmoothScroll": "Ativar rolagem suave",
+ "PlaybackError.NO_MEDIA_ERROR": "Não foi possível encontrar uma fonte multimédia válida para reproduzir.",
+ "PlaybackError.PLAYER_ERROR": "A reprodução falhou devido a um erro fatal do leitor.",
+ "PlaybackError.RateLimitExceeded": "Este conteúdo não pode ser reproduzido neste momento devido aos limites de velocidade.",
+ "DeleteSeries": "Eliminar séries",
+ "PlaybackError.NotAllowed": "A reprodução deste conteúdo não é permitida.",
+ "EnableSmoothScroll": "Ativar deslocação suave",
"LimitSupportedVideoResolution": "Limitar a resolução máxima de vídeo suportada",
- "PlaybackError.SERVER_ERROR": "A reprodução falhou devido a um erro no servidor.",
- "DlnaMovedMessage": "A funcionalidade DLNA foi movida para um plugin.",
- "DeleteEntireSeries": "Excluir {0} episódios",
- "DeleteEpisode": "Excluir episódio",
- "HeaderDeleteSeries": "Excluir Série",
- "LabelAllowContentWithTags": "Permitir itens com tags",
+ "PlaybackError.SERVER_ERROR": "A reprodução falhou devido a um erro do servidor.",
+ "DlnaMovedMessage": "A funcionalidade DLNA foi transferida para uma extensão.",
+ "DeleteEntireSeries": "Eliminar {0} episódios",
+ "DeleteEpisode": "Eliminar episódio",
+ "HeaderDeleteSeries": "Eliminar séries",
+ "LabelAllowContentWithTags": "Permitir items com etiquetas",
"Lyrics": "Letras",
"ViewLyrics": "Ver letras",
- "DeleteLyrics": "Excluir letras",
- "ErrorDeletingLyrics": "Ocorreu um erro ao excluir as letras do servidor. Verifique se o Jellyfin tem acesso de gravação à pasta de mídia e tente novamente.",
- "HeaderDeleteLyrics": "Excluir Letras",
+ "DeleteLyrics": "Eliminar letras",
+ "ErrorDeletingLyrics": "Ocorreu um erro ao eliminar as letras do servidor. Verifica se o Jellyfin tem acesso de escrita à pasta multimédia e tenta novamente.",
+ "HeaderDeleteLyrics": "Eliminar letras",
"HeaderNoLyrics": "Nenhuma letra encontrada",
- "BlockingScan": "Bloqueante - gera fila, bloqueia verificação até completar",
- "NonBlockingScan": "Não Bloqueante - gera fila, depois retorna",
- "LabelExtractTrickplayDuringLibraryScan": "Extrair imagens trickplay durante a verificação da biblioteca",
- "LabelExtractTrickplayDuringLibraryScanHelp": "Gerar imagens trickplay ao importar vídeos durante a verificação da biblioteca. Caso contrário, elas serão extraídas durante a tarefa agendada de imagens trickplay. Se a geração estiver definida como não bloqueante, isso não afetará o tempo que uma verificação da biblioteca leva para ser concluída.",
- "PlaybackError.ASS_RENDER_ERROR": "Um erro foi encontrado no renderizador de legendas ASS/SSA.",
- "SavePassword": "Salvar Senha",
+ "BlockingScan": "Bloqueante - coloca a geração em fila de espera, bloqueia a análise até ser concluída",
+ "NonBlockingScan": "Não bloqueante - coloca a geração em fila de espera e depois regressa",
+ "LabelExtractTrickplayDuringLibraryScan": "Extrair imagens trickplay durante a análise da biblioteca",
+ "LabelExtractTrickplayDuringLibraryScanHelp": "Gerar imagens trickplay quando os vídeos são importados durante a análise da biblioteca. Caso contrário, as imagens serão extraídas durante a tarefa agendada de imagens trickplay. Se a geração estiver definida como não bloqueante, isto não afetará o tempo que a análise da biblioteca demora a concluir.",
+ "PlaybackError.ASS_RENDER_ERROR": "Foi encontrado um erro no renderizador de legendas ASS/SSA.",
+ "SavePassword": "Guardar palavra-passe",
"Author": "Autor",
"Colorist": "Colorista",
"CoverArtist": "Artista da capa",
@@ -1869,191 +1869,191 @@
"Editor": "Editor",
"Illustrator": "Ilustrador",
"EnableDts": "Ativar DTS (DCA)",
- "EnableDtsHelp": "Ative apenas se o seu dispositivo suportar DTS ou estiver conectado a um receptor de áudio compatível, caso contrário, pode causar falha na reprodução.",
+ "EnableDtsHelp": "Ativar apenas se o dispositivo suportar DTS ou estiver ligado a um recetor de áudio compatível; caso contrário, pode provocar falhas de reprodução.",
"EnableTrueHd": "Ativar TrueHD",
- "EnableTrueHdHelp": "Ative apenas se o seu dispositivo suportar TrueHD ou estiver conectado a um receptor de áudio compatível, caso contrário, pode causar falha na reprodução.",
- "HeaderVideoAdvanced": "Vídeo Avançado",
- "HeaderLyricDownloads": "Downloads de Letras",
- "Letterer": "Letterer",
+ "EnableTrueHdHelp": "Ativar apenas se o dispositivo suportar TrueHD ou estiver ligado a um recetor de áudio compatível; caso contrário, pode provocar falhas de reprodução.",
+ "HeaderVideoAdvanced": "Definições avançadas de vídeo",
+ "HeaderLyricDownloads": "Descarregar letras",
+ "Letterer": "Letrista",
"LabelSelectPreferredTranscodeVideoAudioCodec": "Codec de áudio de transcodificação preferido na reprodução de vídeo",
- "SelectPreferredTranscodeVideoAudioCodecHelp": "Selecione o codec de áudio preferido para transcodificar para conteúdo de vídeo. Se o codec preferido não for suportado, o servidor usará o próximo codec disponível.",
- "LibraryScanFanoutConcurrencyHelp": "Número máximo de tarefas em paralelo durante as verificações da biblioteca. Deixar isso vazio escolherá um limite com base na contagem de núcleos do seu sistema. AVISO: Definir esse número muito alto pode causar problemas com sistemas de arquivos de rede; se você encontrar problemas, diminua esse número.",
- "LibraryScanFanoutConcurrency": "Limite de tarefas de verificação de biblioteca em paralelo",
- "PlaylistPublicDescription": "Permitir que esta playlist seja vista por qualquer usuário logado.",
+ "SelectPreferredTranscodeVideoAudioCodecHelp": "Seleciona o codec de áudio preferido para transcodificar o conteúdo de vídeo. Se o codec preferido não for suportado, o servidor utilizará o próximo melhor codec disponível.",
+ "LibraryScanFanoutConcurrencyHelp": "Número máximo de tarefas paralelas durante as análises da biblioteca. Se deixares este campo vazio, será escolhido um limite com base no número de núcleos do teu sistema. AVISO: Definir um valor demasiado elevado pode causar problemas com sistemas de ficheiros em rede; se encontrares problemas, reduz este número.",
+ "LibraryScanFanoutConcurrency": "Limite de tarefas paralelas de análise da biblioteca",
+ "PlaylistPublicDescription": "Permitir que esta playlist seja vista por qualquer utilizador com sessão iniciada.",
"PlaylistPublic": "Permitir acesso público",
- "SaveLyricsIntoMediaFoldersHelp": "Armazenar letras ao lado de arquivos de áudio permitirá que sejam gerenciadas mais facilmente.",
+ "SaveLyricsIntoMediaFoldersHelp": "Guardar letras junto a ficheiros de áudio permiti-las-á ser mais facilmente geridas.",
"PlaylistError.AddFailed": "Erro ao adicionar à playlist",
- "PlaylistError.CreateFailed": "Erro ao criar playlist",
+ "PlaylistError.CreateFailed": "Erro ao criar a playlist",
"Translator": "Tradutor",
- "Inker": "Inker",
- "Alternate": "Alternativo",
- "AlternateDVD": "DVD Alternativo",
- "Penciller": "Penciler",
+ "Inker": "Tinteiro",
+ "Alternate": "Alternar",
+ "AlternateDVD": "DVD alternativo",
+ "Penciller": "Lapiseira",
"Regional": "Regional",
- "SaveLyricsIntoMediaFolders": "Salvar letras nas pastas de mídia",
- "LabelSelectPreferredTranscodeVideoCodec": "Codec de vídeo de transcodificação preferido",
- "SelectPreferredTranscodeVideoCodecHelp": "Selecione o codec de vídeo preferido para transcodificar. Se o codec preferido não for suportado, o servidor usará o próximo codec disponível.",
+ "SaveLyricsIntoMediaFolders": "Guardar letras em pastas multimédia",
+ "LabelSelectPreferredTranscodeVideoCodec": "Codec de vídeo transcodificado preferido",
+ "SelectPreferredTranscodeVideoCodecHelp": "Seleciona o codec de vídeo preferido para transcodificar. Se o codec preferido não for suportado, o servidor utilizará o próximo melhor codec disponível.",
"HeaderNextItem": "Seguinte {0}",
- "EditLyrics": "Editar letras",
- "HeaderAddLyrics": "Adicionar Letras",
- "HeaderPreviewLyrics": "Visualizar Letras",
- "LabelScreensaverTimeHelp": "A quantidade de tempo em segundos de inatividade necessária para iniciar o protetor de tela.",
+ "EditLyrics": "Editar letra",
+ "HeaderAddLyrics": "Adicionar letra",
+ "HeaderPreviewLyrics": "Pré-visualizar letra",
+ "LabelScreensaverTimeHelp": "A quantidade de tempo, em segundos, de inatividade necessária para iniciar a proteção de ecrã.",
"LabelDuration": "Duração",
- "LabelDisableVbrAudioEncoding": "Desativar codificação de áudio VBR",
- "LabelEnablePlugin": "Ativar plugin",
- "LabelDelimiterWhitelistHelp": "Itens a serem excluídos da divisão de tags. Um item por linha.",
- "LabelDropLyricsHere": "Solte as letras aqui, ou clique para navegar.",
- "MediaSegmentSkipPrompt": "Pular {0}",
- "MediaSegmentAction.Skip": "Pular",
- "MediaSegmentAction.AskToSkip": "Perguntar antes de pular",
- "MediaSegmentType.Commercial": "Comercial",
- "SearchForLyrics": "Pesquisar letras",
+ "LabelDisableVbrAudioEncoding": "Desativar a codificação de áudio VBR",
+ "LabelEnablePlugin": "Ativar extensão",
+ "LabelDelimiterWhitelistHelp": "Itens a ser excluídos da separação de etiquetas. Um item por linha.",
+ "LabelDropLyricsHere": "Arrasta e larga a letra aqui, ou clica para explorar.",
+ "MediaSegmentSkipPrompt": "Saltar {0}",
+ "MediaSegmentAction.Skip": "Saltar",
+ "MediaSegmentAction.AskToSkip": "Pedir para saltar",
+ "MediaSegmentType.Commercial": "Publicidade",
+ "SearchForLyrics": "Procurar letras",
"NoLyricsSearchResultsFound": "Nenhuma letra encontrada.",
"MediaSegmentType.Intro": "Introdução",
- "EnableHi10pHelp": "Ative para evitar a transcodificação de vídeos H.264 de 10 bits. Desative esta opção se o vídeo apresentar quadros em branco.",
- "LyricDownloadersHelp": "Ative e classifique seus baixadores de letras preferidos por ordem de prioridade.",
- "AlwaysRemuxMp3AudioFilesHelp": "Se arquivos MP3 apresentarem problemas de tempo no navegador, ative esta opção como solução temporária.",
- "AlwaysRemuxFlacAudioFilesHelp": "Se arquivos FLAC não tocarem no navegador ou apresentarem problemas de tempo, ative esta opção como solução temporária.",
+ "EnableHi10pHelp": "Ativa para evitar a transcodificação de vídeos H.264 de 10 bits. Desativa esta opção se o vídeo apresentar quadros em branco.",
+ "LyricDownloadersHelp": "Ativa e classifica os teus fornecedores de letras preferidos por ordem de prioridade.",
+ "AlwaysRemuxMp3AudioFilesHelp": "Se tiveres ficheiros que o teu navegador calcula de forma imprecisa os registos de data/hora, ativa esta opção como solução alternativa.",
+ "AlwaysRemuxFlacAudioFilesHelp": "Se tiveres ficheiros que o teu navegador recusar reproduzir ou em que calcula incorretamente os registos de data/hora, ativa esta opção como solução alternativa.",
"HeaderNextItemPlayingInValue": "{0} seguinte em {1}",
- "HeaderNewPlaylist": "Nova Playlist",
- "UseCustomTagDelimiters": "Usar delimitador de tag personalizado",
- "UseCustomTagDelimitersHelp": "Dividir tags de artista/gênero com caracteres personalizados.",
- "LabelTrickplayKeyFrameOnlyExtraction": "Gerar imagens apenas a partir de quadros-chave",
- "VideoCodecTagNotSupported": "O tag do codec de vídeo não é suportado",
+ "HeaderNewPlaylist": "Nova playlist",
+ "UseCustomTagDelimiters": "Utilizar delimitador de etiquetas personalizado",
+ "UseCustomTagDelimitersHelp": "Divide etiquetas de artistas/género com carateres personalizados.",
+ "LabelTrickplayKeyFrameOnlyExtraction": "Gerar imagens apenas de fotogramas-chave",
+ "VideoCodecTagNotSupported": "A etiqueta do codec de vídeo não é suportada",
"AndOtherArtists": "{0} e {1} outros artistas.",
- "MoviesAndShows": "Filmes e Programas",
- "Anime": "Anime",
- "AlwaysBurnInSubtitleWhenTranscodingHelp": "Embutir todas as legendas ao transcodificar. Garante sincronização das legendas, mas pode reduzir a velocidade da transcodificação.",
- "AllowTonemappingSoftwareHelp": "O tone-mapping transforma o alcance dinâmico de um vídeo de HDR para SDR mantendo detalhes e cores. Funciona apenas com vídeos HDR10, HLG e DoVi de 10 bits.",
- "AlwaysBurnInSubtitleWhenTranscoding": "Sempre embutir legendas ao transcodificar",
- "DateModified": "Data modificada",
- "AllowFmp4TranscodingContainerHelp": "Permite o uso do contêiner fMP4 para este sintonizador, habilitando conteúdos HEVC e HDR. Nem todos os sintonizadores são compatíveis. Desative se tiver problemas de reprodução.",
- "AllowStreamSharingHelp": "Permite que o Jellyfin duplique o fluxo mpegts do sintonizador e compartilhe com os clientes. Útil quando há limite de streams no sintonizador, mas pode causar problemas de reprodução.",
- "EnableHi10p": "Ativar H.264 High 10 Profile",
- "DisableVbrAudioEncodingHelp": "Impedir que o servidor codifique áudio com VBR para este cliente.",
- "LabelAllowFmp4TranscodingContainer": "Permitir contêiner de transcodificação fMP4",
- "HeaderAudioAdvanced": "Áudio Avançado",
- "HeaderNextEpisode": "Próximo Episódio",
- "HeaderNextVideo": "Próximo Vídeo",
- "HeaderEditPlaylist": "Editar Playlist",
- "HeaderUploadLyrics": "Enviar Letras",
- "LabelAlwaysRemuxFlacAudioFiles": "Sempre remuxar arquivos de áudio FLAC",
- "HeaderMediaSegmentActions": "Ações de Segmento de Mídia",
- "FallbackMaxStreamingBitrateHelp": "A taxa máxima de streaming é usada como um fallback quando o ffprobe não consegue determinar a taxa de bits do stream de origem. Isso ajuda a evitar que os clientes solicitem uma taxa de transcodificação excessivamente alta, o que pode fazer o player falhar e sobrecarregar o codificador.",
- "LabelAudioTagSettings": "Configurações de Tag de Áudio",
- "LabelSaveTrickplayLocally": "Salvar imagens trickplay ao lado da mídia",
- "LabelSaveTrickplayLocallyHelp": "Salvar imagens trickplay nas pastas de mídia as colocará ao lado da sua mídia para fácil migração e acesso.",
- "LabelAllowStreamSharing": "Permitir compartilhamento de stream",
- "LabelLyricDownloaders": "Baixadores de letras",
- "LabelNoChangelog": "Nenhum registro de alterações fornecido para este lançamento.",
+ "MoviesAndShows": "Filmes e séries",
+ "Anime": "Animé",
+ "AlwaysBurnInSubtitleWhenTranscodingHelp": "Incorpora todas as legendas quando a transcodificação é acionada. Isto assegura que as legendas são sincronizadas após a transcodificação, à custa de uma velocidade de transcodificação reduzida.",
+ "AllowTonemappingSoftwareHelp": "O mapeamento de tons pode transformar a gama dinâmica de um vídeo de HDR para SDR, mantendo os detalhes e cores da imagens, que são informações muito importantes para representar a cena original. De momento, funciona apenas com vídeos HDR10 de 10 bits, HLG e DoVi.",
+ "AlwaysBurnInSubtitleWhenTranscoding": "Incorporar sempre legendas durante a transcodificação",
+ "DateModified": "Data de modificação",
+ "AllowFmp4TranscodingContainerHelp": "Permite que o container de transcodificação fMP4 para este sintonizador permita conteúdos HEVC e HDR. Nem todos os sintonizadores são compatíveis com este container. Desativa-o se tiveres problemas de reprodução.",
+ "AllowStreamSharingHelp": "Permite que o Jellyfin duplique a transmissão mpegts do sintonizador e partilhe esta transmissão duplicada aos seus clientes. Isto é útil quando o sintonizador tem um limite de contagens de transmissões totais mas pode também causar problemas de reprodução.",
+ "EnableHi10p": "Ativar o perfil H.264 High 10",
+ "DisableVbrAudioEncodingHelp": "Impedir que o servidor codifique o áudio com VBR para este cliente.",
+ "LabelAllowFmp4TranscodingContainer": "Permitir o container de transcodificação fMP4",
+ "HeaderAudioAdvanced": "Definições avançadas de áudio",
+ "HeaderNextEpisode": "Próximo episódio",
+ "HeaderNextVideo": "Próximo vídeo",
+ "HeaderEditPlaylist": "Editar playlist",
+ "HeaderUploadLyrics": "Fazer upload da letra",
+ "LabelAlwaysRemuxFlacAudioFiles": "Fazer sempre remux de ficheiros de áudio FLAC",
+ "HeaderMediaSegmentActions": "Ações de segmentos de multimédia",
+ "FallbackMaxStreamingBitrateHelp": "A taxa de bits máxima de transmissão é usada como um recurso quando o ffprobe não consegue determinar a taxa de bits da transmissão de origem. Isso ajuda a evitar que os clientes solicitem uma taxa de bits de transcodificação excessivamente alta, o que poderia fazer com que o leitor falhasse e sobrecarregasse o codificador.",
+ "LabelAudioTagSettings": "Definições de etiquetas de áudio",
+ "LabelSaveTrickplayLocally": "Guardar miniaturas de pré-visualização (trickplay) junto aos ficheiros de multimédia",
+ "LabelSaveTrickplayLocallyHelp": "As miniaturas de pré-visualização (trickplay) serão guardadas junto aos ficheiros de multimédia, o que facilita a migração e o acesso.",
+ "LabelAllowStreamSharing": "Permitir partilha de transmissão",
+ "LabelLyricDownloaders": "Fornecedores de letras",
+ "LabelNoChangelog": "Nenhum registo de alterações foi disponibilizado para esta versão.",
"LabelNotInstalled": "Não instalado",
- "LabelCustomTagDelimiters": "Delimitador de Tag Personalizado",
- "LabelCustomTagDelimitersHelp": "Caracteres a serem tratados como delimitadores para separar tags.",
- "LabelDelimiterWhitelist": "Lista branca de delimitadores",
- "LabelFallbackMaxStreamingBitrate": "Taxa máxima de stream de fallback (Mbps)",
- "LabelIsSynced": "Está Sincronizado",
- "LabelAlwaysRemuxMp3AudioFiles": "Sempre remuxar arquivos de áudio MP3",
+ "LabelCustomTagDelimiters": "Delimitador de Etiqueta personalizado",
+ "LabelCustomTagDelimitersHelp": "Carateres considerados como delimitadores para separar etiquetas.",
+ "LabelDelimiterWhitelist": "Lista de delimitadores permitidos",
+ "LabelFallbackMaxStreamingBitrate": "Taxa de bits máxima por omissão (Mbps)",
+ "LabelIsSynced": "Está sincronizado",
+ "LabelAlwaysRemuxMp3AudioFiles": "Remuxar sempre ficheiros de áudio MP3",
"LabelInstalled": "Instalado",
- "LabelMediaSegmentsType": "{0} Segmentos",
+ "LabelMediaSegmentsType": "{0} segmentos",
"LabelRepository": "Repositório",
"LabelQsvDevice": "Dispositivo QSV",
- "LabelQsvDeviceHelp": "Especifique o dispositivo para Intel QSV em um sistema com múltiplas GPUs. No Linux, este é o nó de renderização, por exemplo, /dev/dri/renderD128. No Windows, este é o índice do dispositivo começando de 0. Deixe em branco, a menos que você saiba o que está fazendo.",
- "MessageCancelSeriesTimerError": "Ocorreu um erro ao cancelar o timer da série",
+ "LabelQsvDeviceHelp": "Especifica o dispositivo para Intel QSV num sistema multi-GPU. Em Linux, este é o nó de renderização, por exemplo, /dev/dri/renderD128. Em Windows, este é o índice do dispositivo, começando do 0. Deixa em branco a não ser que saibas o que está a fazer.",
+ "MessageCancelSeriesTimerError": "Ocorreu um erro ao cancelar o temporizador da série",
"MediaSegmentAction.None": "Nenhum",
- "PluginDisableError": "Ocorreu um erro ao desativar o plugin.",
- "PluginUninstallError": "Ocorreu um erro ao desinstalar o plugin.",
- "LibraryInvalidItemIdError": "A biblioteca está em um estado inválido e não pode ser editada. Você pode estar enfrentando um bug: o caminho no banco de dados não é o caminho correto no sistema de arquivos.",
- "PreferNonstandardArtistsTag": "Preferir tag ARTISTS se disponível",
- "LabelScreensaverTime": "Tempo do protetor de tela",
- "MessageSplitVersionsError": "Ocorreu um erro ao dividir versões",
- "PluginEnableError": "Ocorreu um erro ao ativar o plugin.",
+ "PluginDisableError": "Ocorreu um erro ao desativar a extensão.",
+ "PluginUninstallError": "Ocorreu um erro ao desinstalar a extensão.",
+ "LibraryInvalidItemIdError": "A biblioteca está num estado inválido e não pode ser editada. É possível que esteja a encontrar um erro: o caminho na base de dados não é o caminho correto no sistema de ficheiros.",
+ "PreferNonstandardArtistsTag": "Preferir a etiqueta ARTISTS se disponível",
+ "LabelScreensaverTime": "Tempo de proteção de ecrã",
+ "MessageSplitVersionsError": "Ocorreu um erro ao separar as versões",
+ "PluginEnableError": "Ocorreu um erro ao ativar a extensão.",
"MediaInfoRotation": "Rotação",
"MediaSegmentType.Recap": "Recapitulação",
- "MediaSegmentType.Preview": "Prévia",
- "MediaSegmentType.Outro": "Conclusão",
- "MoveToBottom": "Mover para baixo",
- "MoveToTop": "Mover para cima",
- "PasswordMissingSaveError": "A nova senha não pode estar vazia.",
- "PluginLoadConfigError": "Ocorreu um erro ao obter as páginas de configuração do plugin.",
- "PluginLoadRepoError": "Ocorreu um erro ao obter os detalhes do plugin do repositório.",
- "PlaylistError.UpdateFailed": "Erro ao atualizar playlist",
- "MessageCancelTimerError": "Ocorreu um erro ao cancelar o timer",
- "ReplaceTrickplayImages": "Substituir imagens trickplay existentes",
- "Reset": "Redefinir",
- "PreferNonstandardArtistsTagHelp": "Usar a tag ARTISTS não padrão em vez da tag ARTIST quando disponível.",
+ "MediaSegmentType.Preview": "Pré-visualização",
+ "MediaSegmentType.Outro": "Créditos",
+ "MoveToBottom": "Mover para o fundo",
+ "MoveToTop": "Mover para o início",
+ "PasswordMissingSaveError": "A nova palavra-passe não pode estar vazia.",
+ "PluginLoadConfigError": "Ocorreu um erro ao obter as páginas de configuração da extensão.",
+ "PluginLoadRepoError": "Ocorreu um erro ao obter os detalhes da extensão a partir do repositório.",
+ "PlaylistError.UpdateFailed": "Erro ao atualizar a playlist",
+ "MessageCancelTimerError": "Ocorreu um erro ao cancelar o temporizador",
+ "ReplaceTrickplayImages": "Substituir imagens de trickplay existentes",
+ "Reset": "Repor",
+ "PreferNonstandardArtistsTagHelp": "Utiliza a etiqueta não normalizada ARTISTS em vez da etiqueta ARTIST quando disponível.",
"RenderPgsSubtitle": "Renderização experimental de legendas PGS",
- "PreviewLyrics": "Visualizar Letras",
- "RenderPgsSubtitleHelp": "Determina se o cliente deve renderizar legendas PGS em vez de usar legendas embutidas. Isso pode evitar a transcodificação do lado do servidor em troca de desempenho de renderização do lado do cliente.",
- "LabelMediaSegmentProviders": "Provedores de segmento de mídia",
- "MediaSegmentProvidersHelp": "Ative e classifique seus provedores de segmento de mídia preferidos por ordem de prioridade.",
- "LabelTrickplayKeyFrameOnlyExtractionHelp": "Extrair apenas quadros-chave para processamento significativamente mais rápido com menor precisão de tempo. Se o decodificador de hardware configurado não suportar este modo, será usado o decodificador de software.",
- "AutoSubtitleStylingHelp": "Este modo alterna automaticamente entre os estilos nativos e personalizados de legendas, conforme o tipo do seu dispositivo.",
+ "PreviewLyrics": "Pré-visualizar letra",
+ "RenderPgsSubtitleHelp": "Determina se o cliente deve renderizar legendas PGS em vez de utilizar legendas embebidas. Isto pode evitar a transcodificação do lado do servidor em troca de desempenho de renderização do lado do cliente.",
+ "LabelMediaSegmentProviders": "Fornecedores de segmentos de multimédia",
+ "MediaSegmentProvidersHelp": "Ativa e classifica os teus fornecedores de segmentos de multimédia preferidos por ordem de prioridade.",
+ "LabelTrickplayKeyFrameOnlyExtractionHelp": "Extrai somente os fotogramas-chave para um processamento significativamente mais rápido com temporização menos precisa. Se o descodificador de hardware configurado não suportar esse modo, será utilizado o descodificador de software.",
+ "AutoSubtitleStylingHelp": "Este modo alterna automaticamente entre os mecanismos de estilo de legendas nativo e personalizado com base no teu tipo de dispositivo.",
"Custom": "Personalizado",
- "CustomSubtitleStylingHelp": "O estilo de legenda funcionará na maioria dos dispositivos, mas vem com uma sobrecarga de desempenho adicional.",
- "LabelSubtitleStyling": "Estilo da legenda",
+ "CustomSubtitleStylingHelp": "O estilo de legendas funciona na maioria dos dispositivos, mas tem uma sobrecarga de desempenho adicional.",
+ "LabelSubtitleStyling": "Estilo de legendas",
"Native": "Nativo",
- "NativeSubtitleStylingHelp": "O estilo de legenda não funcionará em alguns dispositivos. No entanto, não vem com nenhuma sobrecarga de desempenho.",
+ "NativeSubtitleStylingHelp": "O estilo de legenda não funcionará em alguns dispositivos. No entanto, não tem qualquer sobrecarga de desempenho.",
"LabelDevice": "Dispositivo",
"LastActive": "Última atividade",
- "DeleteServerConfirmation": "Tem certeza de que deseja excluir este servidor?",
+ "DeleteServerConfirmation": "Tens a certeza de que queres eliminar este servidor?",
"LibraryNameInvalid": "O nome da biblioteca não pode estar vazio.",
- "MetadataNfoLoadError": "Falha ao carregar as configurações de metadados NFO",
- "SettingsPageLoadError": "Falha ao carregar a página de configurações",
+ "MetadataNfoLoadError": "Falha ao carregar as definições de metadados NFO",
+ "SettingsPageLoadError": "Falha ao carregar a página de definições",
"RetryWithGlobalSearch": "Tentar novamente com uma pesquisa global",
- "StreamCountExceedsLimit": "O número de streams excede o limite",
- "ReadInputAtNativeFramerateHelp": "Ativar esta opção pode resolver alguns problemas, por exemplo, streams ao vivo parando prematuramente.",
- "ReadInputAtNativeFramerate": "Ler entrada na taxa de quadros nativa",
- "LogLoadFailure": "Falha ao carregar o arquivo de log. Ele pode ainda estar sendo escrito ativamente.",
- "CustomSplashScreenSize": "Imagens personalizadas devem ter uma proporção de 16x9 com tamanho mínimo de 1920x1080.",
- "DeleteCustomImage": "Excluir imagem personalizada",
- "ImageUploadCancelled": "Envio de imagem cancelado",
- "ImageUploadFailed": "Falha ao enviar imagem",
- "ImageDeleteFailed": "Falha ao excluir imagem",
- "PageNotFound": "Esta não é a página que você está procurando.",
- "UploadCustomImage": "Enviar Imagem Personalizada",
+ "StreamCountExceedsLimit": "O número de transmissões excede o limite",
+ "ReadInputAtNativeFramerateHelp": "Ativar esta opção pode resolver alguns problemas, por exemplo, transmissões ao vivo que param prematuramente.",
+ "ReadInputAtNativeFramerate": "Reproduzir a entrada à velocidade de fotogramas nativa",
+ "LogLoadFailure": "Falha ao carregar o ficheiro de registo de alterações. É possível que atualmente esteja a ser escrito.",
+ "CustomSplashScreenSize": "As imagens personalizadas devem ter uma proporção de 16x9 e um tamanho mínimo de 1920x1080.",
+ "DeleteCustomImage": "Eliminar imagem personalizada",
+ "ImageUploadCancelled": "Carregamento de imagens cancelado",
+ "ImageUploadFailed": "Falha no carregamento da imagem",
+ "ImageDeleteFailed": "Falha na eliminação da imagem",
+ "PageNotFound": "Esta não é a página que procuras.",
+ "UploadCustomImage": "Carregar imagem personalizada",
"HeaderPageNotFound": "Página não encontrada",
- "LabelGroupShowsIntoCollections": "Agrupar programas em coleções",
- "LabelGroupShowsIntoCollectionsHelp": "Programas em uma coleção serão exibidos como um único item agrupado ao exibir listas de programas.",
- "DisplayLoadError": "Ocorreu um erro ao carregar os dados de configuração de exibição.",
- "MetadataImagesLoadError": "Falha ao carregar as configurações de metadados",
- "CopyLogSuccess": "Conteúdo do log copiado com sucesso.",
- "LimitSegmentLength": "Usar segmentos HLS mais curtos",
- "LimitSegmentLengthHelp": "Ativar esta opção pode ajudar a evitar que o player HLS trave durante a busca em certos dispositivos, como TVs webOS.",
+ "LabelGroupShowsIntoCollections": "Agrupar séries em coleções",
+ "LabelGroupShowsIntoCollectionsHelp": "As séries de uma coleção serão apresentadas como um item agrupado quando forem apresentadas listas de séries.",
+ "DisplayLoadError": "Ocorreu um erro ao carregar os dados de configuração do ecrã.",
+ "MetadataImagesLoadError": "Falha ao carregar definições de metadados",
+ "CopyLogSuccess": "Conteúdo do registo copiado com sucesso.",
+ "LimitSegmentLength": "Utilizar segmentos HLS mais curtos",
+ "LimitSegmentLengthHelp": "Ativar esta opção pode ajudar a evitar que o leitor HLS bloqueie durante a pesquisa em determinados dispositivos, como as TVs webOS.",
"Retry": "Tentar novamente",
- "HeaderServerUnavailable": "Servidor Indisponível",
- "HeaderUpdateRequired": "Atualização Necessária",
- "ViewSettings": "Ver configurações",
- "MessageForgotPasswordPinReset": "Insira o PIN aqui para finalizar a redefinição da senha",
- "DownloadManager": "Downloads",
+ "HeaderServerUnavailable": "Servidor indisponível",
+ "HeaderUpdateRequired": "Atualização necessária",
+ "ViewSettings": "Ver definições",
+ "MessageForgotPasswordPinReset": "Introduz o PIN para concluir a redefinição da palavra-passe",
+ "DownloadManager": "Transferências",
"LiveTVPageLoadError": "Falha ao carregar a página de gravações",
- "ButtonLearnMore": "Saiba mais",
- "ButtonCreateBackup": "Criar backup",
- "BackupsPageLoadError": "Falha ao carregar a página de backups",
- "ConfirmDeleteRepository": "Excluir repositório?",
- "LabelRestore": "Restaurar",
- "MessageBackupDisclaimer": "Dependendo do tamanho da sua biblioteca, o processo de backup pode demorar um pouco.",
- "HeaderBackups": "Backups",
- "TranscodingLoadError": "Falha ao carregar as configurações de transcodificação",
+ "ButtonLearnMore": "Saber mais",
+ "ButtonCreateBackup": "Criar cópia de segurança",
+ "BackupsPageLoadError": "Falha ao carregar página de cópias de segurança",
+ "ConfirmDeleteRepository": "Apagar repositório?",
+ "LabelRestore": "Restauro",
+ "MessageBackupDisclaimer": "Dependendo do tamanho da mediateca, o processo de cópia de segurança poderá ser demorado.",
+ "HeaderBackups": "Cópias de segurança",
+ "TranscodingLoadError": "Falha ao carregar configurações de transcodificação",
"StorageType.Unknown": "Desconhecido",
"Success": "Sucesso",
- "MessageBackupInProgress": "Backup em andamento",
+ "MessageBackupInProgress": "Cópia de segurança em progresso",
"Create": "Criar",
- "DeleteRepositoryConfirmation": "Tem certeza de que deseja excluir este repositório?",
- "HeaderBackupsHelp": "Criar e restaurar instantâneas do seu servidor que podem incluir o banco de dados, metadados, legendas e trickplay.",
- "LabelBackupsUnavailable": "Nenhum backup disponível",
- "LabelDatabase": "Banco de dados",
- "LabelImageCache": "Cache de Imagem",
- "LabelProgramData": "Dados do Programa",
- "MessageRestoreDisclaimer": "ATENÇÃO: Você está prestes a restaurar a partir de um backup anterior. Seu servidor ficará indisponível durante o processo e qualquer dado novo criado desde o backup será perdido.",
+ "DeleteRepositoryConfirmation": "Tem a certeza que pretende apagar este repositório?",
+ "HeaderBackupsHelp": "Criar e restaurar cópias do servidor, incluindo metadados, legendas e miniaturas de pré-visualização.",
+ "LabelBackupsUnavailable": "Sem cópias de segurança disponíveis",
+ "LabelDatabase": "Base de dados",
+ "LabelImageCache": "Memória cache de imagens",
+ "LabelProgramData": "Dados da aplicação",
+ "MessageRestoreDisclaimer": "AVISO: Você está prestes a restaurar a partir de um backup anterior. Seu servidor ficará inutilizável durante o processo e todos os novos dados criados desde o backup serão perdidos.",
"RepositoriesPageLoadError": "Falha ao carregar repositórios",
- "PluginsLoadError": "Ocorreu um erro ao carregar plugins.",
+ "PluginsLoadError": "Ocorreu um erro ao carregar os plugins.",
"MessageRestoreInProgress": "Restauração em andamento",
"MessageRestoreSuccess": "Restauração concluída com sucesso",
"StorageType.CDRom": "CD-ROM",
- "StorageType.NoRootDirectory": "Sem Diretório Raiz",
+ "StorageType.NoRootDirectory": "Nenhum diretório raiz",
"StorageType.Ram": "RAM",
"StorageType.Removable": "Removível",
- "StorageType.Fixed": "Fixo",
- "StorageType.Network": "Rede",
- "MessageWaitingForServer": "Aguardando o servidor..."
+ "StorageType.Fixed": "Consertado",
+ "StorageType.Network": "Network",
+ "MessageWaitingForServer": "Aguardando servidor..."
}
From adc6430f395195814f1284c08ba892ad3620bdaf Mon Sep 17 00:00:00 2001
From: Bill Thornton
Date: Wed, 2 Jul 2025 10:21:45 -0400
Subject: [PATCH 610/645] Revert "Translated using Weblate (Portuguese)"
This reverts commit 6316bdb53bfd1548bf8742e5c48d1f009e3dcfa9.
---
src/strings/pt.json | 22 +++++-----------------
1 file changed, 5 insertions(+), 17 deletions(-)
diff --git a/src/strings/pt.json b/src/strings/pt.json
index 5a1a791bd..10a0e4052 100644
--- a/src/strings/pt.json
+++ b/src/strings/pt.json
@@ -1524,7 +1524,7 @@
"OnApplicationStartup": "Na inicialização do aplicativo",
"MessageSyncPlayLibraryAccessDenied": "O acesso a este conteúdo é restrito.",
"SortName": "Classificar nome",
- "SubtitleAppearanceSettingsAlsoPassedToCastDevices": "Essas configurações também se aplicam a qualquer reprodução do Google Cast iniciada por este dispositivo.",
+ "SubtitleAppearanceSettingsAlsoPassedToCastDevices": "Estas definições também se aplicam a qualquer reprodução do Google Cast iniciada por este dispositivo.",
"OnWakeFromSleep": "Ao acordar da suspensão",
"OptionMaxActiveSessionsHelp": "Um valor 0 desativará o recurso.",
"Watched": "Assistido",
@@ -1591,7 +1591,7 @@
"LogLevel.Critical": "Crítico",
"New": "Novo",
"SubtitleWhite": "Branco",
- "SubtitleLightGray": "Cinza claro",
+ "SubtitleLightGray": "Cinzento-claro",
"Track": "Faixa",
"TypeOptionPluralMusicArtist": "Artistas musicais",
"TypeOptionPluralSeason": "Temporadas",
@@ -1631,7 +1631,7 @@
"LogoScreensaver": "Logótipo da proteção de ecrã",
"MediaInfoColorSpace": "Espaço colorido",
"Studio": "Estúdio",
- "SubtitleGray": "Cinza",
+ "SubtitleGray": "Cinzento",
"TabLogs": "Registos (Logs)",
"Tags": "Etiquetas",
"Vertical": "Vertical",
@@ -1705,7 +1705,7 @@
"LabelBuildVersion": "Versão de compilação",
"LabelWebVersion": "Versão web",
"SubtitleCyan": "Ciano",
- "SubtitleOffset": "Deslocamento de legenda",
+ "SubtitleOffset": "Desvio das legendas",
"ValueOneMusicVideo": "1 videoclipe",
"ValueOneSeries": "1 série",
"XmlTvSportsCategoriesHelp": "Lista de categorias, separadas por '|', que correspondem a programas de desporto.",
@@ -2043,17 +2043,5 @@
"LabelBackupsUnavailable": "Sem cópias de segurança disponíveis",
"LabelDatabase": "Base de dados",
"LabelImageCache": "Memória cache de imagens",
- "LabelProgramData": "Dados da aplicação",
- "MessageRestoreDisclaimer": "AVISO: Você está prestes a restaurar a partir de um backup anterior. Seu servidor ficará inutilizável durante o processo e todos os novos dados criados desde o backup serão perdidos.",
- "RepositoriesPageLoadError": "Falha ao carregar repositórios",
- "PluginsLoadError": "Ocorreu um erro ao carregar os plugins.",
- "MessageRestoreInProgress": "Restauração em andamento",
- "MessageRestoreSuccess": "Restauração concluída com sucesso",
- "StorageType.CDRom": "CD-ROM",
- "StorageType.NoRootDirectory": "Nenhum diretório raiz",
- "StorageType.Ram": "RAM",
- "StorageType.Removable": "Removível",
- "StorageType.Fixed": "Consertado",
- "StorageType.Network": "Network",
- "MessageWaitingForServer": "Aguardando servidor..."
+ "LabelProgramData": "Dados da aplicação"
}
From c75d453f96cf8b300dc9d42f3c8e952acb483693 Mon Sep 17 00:00:00 2001
From: DyingSlacker <2391773977@outlook.com>
Date: Wed, 2 Jul 2025 09:58:36 -0400
Subject: [PATCH 611/645] Translated using Weblate (Chinese (Simplified Han
script)) Translation: Jellyfin/Jellyfin Web Translate-URL:
https://translate.jellyfin.org/projects/jellyfin/jellyfin-web/zh_Hans/
---
src/strings/zh-cn.json | 4 +++-
1 file changed, 3 insertions(+), 1 deletion(-)
diff --git a/src/strings/zh-cn.json b/src/strings/zh-cn.json
index fe95332c0..b2a99a495 100644
--- a/src/strings/zh-cn.json
+++ b/src/strings/zh-cn.json
@@ -2062,5 +2062,7 @@
"TranscodingLoadError": "加载转码设置失败",
"PluginsLoadError": "加载插件时发生错误。",
"ButtonLearnMore": "了解更多",
- "LiveTVPageLoadError": "无法加载录制页面"
+ "LiveTVPageLoadError": "无法加载录制页面",
+ "ConnectAnyway": "仍要连接",
+ "HeaderServerMismatch": "服务器不匹配"
}
From 3067ab874c4f694d51708447dee00a2d6b1e6a27 Mon Sep 17 00:00:00 2001
From: DyingSlacker <2391773977@outlook.com>
Date: Wed, 2 Jul 2025 11:26:00 -0400
Subject: [PATCH 612/645] Translated using Weblate (Chinese (Simplified Han
script)) Translation: Jellyfin/Jellyfin Web Translate-URL:
https://translate.jellyfin.org/projects/jellyfin/jellyfin-web/zh_Hans/
---
src/strings/zh-cn.json | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
diff --git a/src/strings/zh-cn.json b/src/strings/zh-cn.json
index b2a99a495..750f7256e 100644
--- a/src/strings/zh-cn.json
+++ b/src/strings/zh-cn.json
@@ -2064,5 +2064,6 @@
"ButtonLearnMore": "了解更多",
"LiveTVPageLoadError": "无法加载录制页面",
"ConnectAnyway": "仍要连接",
- "HeaderServerMismatch": "服务器不匹配"
+ "HeaderServerMismatch": "服务器不匹配",
+ "MessageServerMismatch": "您正在连接的服务器与之前在此地址连接的服务器不同。如果这是预期情况,请选择“仍要连接”。否则,您的连接或该服务器可能已被篡改。"
}
From 92fd96ad28b81e1c54664c5f6749b9c4f5da69d3 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Yago=20Ra=C3=B1a=20Gayoso?=
Date: Wed, 2 Jul 2025 13:41:30 -0400
Subject: [PATCH 613/645] Translated using Weblate (Galician) Translation:
Jellyfin/Jellyfin Web Translate-URL:
https://translate.jellyfin.org/projects/jellyfin/jellyfin-web/gl/
---
src/strings/gl.json | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
diff --git a/src/strings/gl.json b/src/strings/gl.json
index 41338a522..c37a3cef4 100644
--- a/src/strings/gl.json
+++ b/src/strings/gl.json
@@ -1055,5 +1055,6 @@
"HeaderNewPlaylist": "Nova lista de reprodución",
"HeaderNextVideo": "Seguinte vídeo",
"BackupsPageLoadError": "Fallou a carga da páxina de copias de seguridade",
- "ButtonCreateBackup": "Crear copia de seguridade"
+ "ButtonCreateBackup": "Crear copia de seguridade",
+ "ButtonLearnMore": "Saber máis"
}
From 83b8187575abd616072aeb1abc9c91563f72f043 Mon Sep 17 00:00:00 2001
From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com>
Date: Wed, 2 Jul 2025 22:35:50 +0000
Subject: [PATCH 614/645] Update dependency @stylistic/stylelint-plugin to
v3.1.3
---
package-lock.json | 22 +++++++++++-----------
package.json | 2 +-
2 files changed, 12 insertions(+), 12 deletions(-)
diff --git a/package-lock.json b/package-lock.json
index ae75a3565..b9e6a80ca 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -75,7 +75,7 @@
"@eslint-community/eslint-plugin-eslint-comments": "4.5.0",
"@eslint/js": "9.29.0",
"@stylistic/eslint-plugin": "4.4.1",
- "@stylistic/stylelint-plugin": "3.1.2",
+ "@stylistic/stylelint-plugin": "3.1.3",
"@types/dompurify": "3.0.5",
"@types/escape-html": "1.0.4",
"@types/loadable__component": "5.13.9",
@@ -5439,9 +5439,9 @@
}
},
"node_modules/@stylistic/stylelint-plugin": {
- "version": "3.1.2",
- "resolved": "https://registry.npmjs.org/@stylistic/stylelint-plugin/-/stylelint-plugin-3.1.2.tgz",
- "integrity": "sha512-tylFJGMQo62alGazK74MNxFjMagYOHmBZiePZFOJK2n13JZta0uVkB3Bh5qodUmOLtRH+uxH297EibK14UKm8g==",
+ "version": "3.1.3",
+ "resolved": "https://registry.npmjs.org/@stylistic/stylelint-plugin/-/stylelint-plugin-3.1.3.tgz",
+ "integrity": "sha512-85fsmzgsIVmyG3/GFrjuYj6Cz8rAM7IZiPiXCMiSMfoDOC1lOrzrXPDk24WqviAghnPqGpx8b0caK2PuewWGFg==",
"dev": true,
"license": "MIT",
"dependencies": {
@@ -5449,10 +5449,10 @@
"@csstools/css-tokenizer": "^3.0.1",
"@csstools/media-query-list-parser": "^3.0.1",
"is-plain-object": "^5.0.0",
+ "postcss": "^8.4.41",
"postcss-selector-parser": "^6.1.2",
"postcss-value-parser": "^4.2.0",
- "style-search": "^0.1.0",
- "stylelint": "^16.8.2"
+ "style-search": "^0.1.0"
},
"engines": {
"node": "^18.12 || >=20.9"
@@ -28107,19 +28107,19 @@
}
},
"@stylistic/stylelint-plugin": {
- "version": "3.1.2",
- "resolved": "https://registry.npmjs.org/@stylistic/stylelint-plugin/-/stylelint-plugin-3.1.2.tgz",
- "integrity": "sha512-tylFJGMQo62alGazK74MNxFjMagYOHmBZiePZFOJK2n13JZta0uVkB3Bh5qodUmOLtRH+uxH297EibK14UKm8g==",
+ "version": "3.1.3",
+ "resolved": "https://registry.npmjs.org/@stylistic/stylelint-plugin/-/stylelint-plugin-3.1.3.tgz",
+ "integrity": "sha512-85fsmzgsIVmyG3/GFrjuYj6Cz8rAM7IZiPiXCMiSMfoDOC1lOrzrXPDk24WqviAghnPqGpx8b0caK2PuewWGFg==",
"dev": true,
"requires": {
"@csstools/css-parser-algorithms": "^3.0.1",
"@csstools/css-tokenizer": "^3.0.1",
"@csstools/media-query-list-parser": "^3.0.1",
"is-plain-object": "^5.0.0",
+ "postcss": "^8.4.41",
"postcss-selector-parser": "^6.1.2",
"postcss-value-parser": "^4.2.0",
- "style-search": "^0.1.0",
- "stylelint": "^16.8.2"
+ "style-search": "^0.1.0"
},
"dependencies": {
"is-plain-object": {
diff --git a/package.json b/package.json
index 5ebfafc46..f64bd1121 100644
--- a/package.json
+++ b/package.json
@@ -12,7 +12,7 @@
"@eslint-community/eslint-plugin-eslint-comments": "4.5.0",
"@eslint/js": "9.29.0",
"@stylistic/eslint-plugin": "4.4.1",
- "@stylistic/stylelint-plugin": "3.1.2",
+ "@stylistic/stylelint-plugin": "3.1.3",
"@types/dompurify": "3.0.5",
"@types/escape-html": "1.0.4",
"@types/loadable__component": "5.13.9",
From 23223926e9fc2b040d4f78944cfaac094ce4572b Mon Sep 17 00:00:00 2001
From: zjad
Date: Thu, 3 Jul 2025 05:07:04 -0400
Subject: [PATCH 615/645] Translated using Weblate (Chinese (Simplified Han
script)) Translation: Jellyfin/Jellyfin Web Translate-URL:
https://translate.jellyfin.org/projects/jellyfin/jellyfin-web/zh_Hans/
---
src/strings/zh-cn.json | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/src/strings/zh-cn.json b/src/strings/zh-cn.json
index 750f7256e..596d1fd8b 100644
--- a/src/strings/zh-cn.json
+++ b/src/strings/zh-cn.json
@@ -806,7 +806,7 @@
"NewEpisodesOnly": "只新集",
"News": "新闻",
"Next": "下一个",
- "NextUp": "接下来",
+ "NextUp": "继续观看",
"No": "否",
"NoNewDevicesFound": "找不到新设备。要添加新调谐器, 请关闭此对话框并手动输入设备信息。",
"MessageNoNextUpItems": "没有发现。开始看你的节目!",
From 24108ab6fc0634449f85628d9bfb74c901f90544 Mon Sep 17 00:00:00 2001
From: queeup
Date: Thu, 3 Jul 2025 14:27:11 -0400
Subject: [PATCH 616/645] Translated using Weblate (Turkish) Translation:
Jellyfin/Jellyfin Web Translate-URL:
https://translate.jellyfin.org/projects/jellyfin/jellyfin-web/tr/
---
src/strings/tr.json | 6 +++++-
1 file changed, 5 insertions(+), 1 deletion(-)
diff --git a/src/strings/tr.json b/src/strings/tr.json
index 0fcca2371..efc81a24b 100644
--- a/src/strings/tr.json
+++ b/src/strings/tr.json
@@ -2053,5 +2053,9 @@
"Create": "Oluştur",
"LabelImageCache": "Görüntü Önbelleği",
"MessageRestoreSuccess": "Geri yükleme başarıyla tamamlandı",
- "MessageWaitingForServer": "Sunucu bekleniyor..."
+ "MessageWaitingForServer": "Sunucu bekleniyor...",
+ "MessageServerMismatch": "Bağlandığınız sunucu, daha önce bu adresten bağlandığınız sunucuyla aynı değil. Bu bekleniyorsa, lütfen \"Her Durumda Bağlan\" seçeneğini seçin. Aksi takdirde, bağlantınız veya sunucunuz risk altında olabilir.",
+ "HeaderServerMismatch": "Sunucu Uyuşmazlığı",
+ "LiveTVPageLoadError": "Kayıtlar sayfası yüklenemedi",
+ "ConnectAnyway": "Her Durumda Bağlan"
}
From 10e25c6660b71a92d75a525700b5dfc45d257c52 Mon Sep 17 00:00:00 2001
From: "Thadah D. Denyse"
Date: Thu, 3 Jul 2025 13:03:09 -0400
Subject: [PATCH 617/645] Translated using Weblate (Basque) Translation:
Jellyfin/Jellyfin Web Translate-URL:
https://translate.jellyfin.org/projects/jellyfin/jellyfin-web/eu/
---
src/strings/eu.json | 8 ++++++--
1 file changed, 6 insertions(+), 2 deletions(-)
diff --git a/src/strings/eu.json b/src/strings/eu.json
index 5f1fc7b23..9871e6a97 100644
--- a/src/strings/eu.json
+++ b/src/strings/eu.json
@@ -1442,7 +1442,7 @@
"ContinueWatching": "Ikusten jarraitu",
"Console": "Kontsola",
"Connect": "Konektatu",
- "ConfirmEndPlayerSession": "Jellyfin dispositiboan itxi nahi duzu?",
+ "ConfirmEndPlayerSession": "Jellyfin {0}-(e)n itxi nahi duzu?",
"ConfirmDeletion": "Baieztatu ezabatuta",
"ConfirmDeleteItems": "Elementu horiek ezabatzean, artxibo-sistematik zein multimedia-liburutegitik ezabatuko dira. Ziur zaude jarraitu nahi duzula?",
"ConfirmDeleteItem": "Elementu hori ezabatzean, artxibo-sistematik zein multimedia-liburutegitik ezabatuko da. Ziur zaude jarraitu nahi duzula?",
@@ -2042,5 +2042,9 @@
"PluginsLoadError": "Errore bat gertatu da pluginak kargatzean.",
"ConfirmDeleteRepository": "Ezabatu biltegia?",
"DeleteRepositoryConfirmation": "Ziur zaude biltegi hau ezabatu nahi duzula?",
- "RepositoriesPageLoadError": "Biltegiak kargatzeak huts egin du"
+ "RepositoriesPageLoadError": "Biltegiak kargatzeak huts egin du",
+ "MessageServerMismatch": "Konektatzen ari zaren zerbitzaria ez da helbide honetan lehenago konektatu zinen zerbitzari bera. Hori espero bada, hautatu \"Konektatu hala ere\". Bestela, zure konexioa edo zerbitzaria arriskuan egon daitezke.",
+ "LiveTVPageLoadError": "Grabaketen orria kargatzeak huts egin du",
+ "ConnectAnyway": "Konektatu hala ere",
+ "HeaderServerMismatch": "Zerbitzaria ez dator bat"
}
From 470bacaaff07316175ae35c4dadd5f8ed91361e7 Mon Sep 17 00:00:00 2001
From: Gargotaire
Date: Thu, 3 Jul 2025 17:07:23 -0400
Subject: [PATCH 618/645] Translated using Weblate (Catalan) Translation:
Jellyfin/Jellyfin Web Translate-URL:
https://translate.jellyfin.org/projects/jellyfin/jellyfin-web/ca/
---
src/strings/ca.json | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/src/strings/ca.json b/src/strings/ca.json
index b7ddc4b15..484f22ad8 100644
--- a/src/strings/ca.json
+++ b/src/strings/ca.json
@@ -953,7 +953,7 @@
"ServerNameIsRestarting": "El servidor en {0} s'està reiniciant.",
"SeriesYearToPresent": "{0} - Ara",
"SeriesDisplayOrderHelp": "Ordena els episodis per data d'emissió, ordre dels DVD o numeració absoluta.",
- "Series": "Sèrie",
+ "Series": "Sèries",
"SelectServer": "Seleccioneu un servidor",
"SelectAdminUsername": "Seleccioneu un nom d'usuari per al compte d'administrador.",
"Season": "Temporada",
From 4ca792b3e0f7fcf0446eecbf841751aff2566137 Mon Sep 17 00:00:00 2001
From: Gargotaire
Date: Thu, 3 Jul 2025 19:09:09 -0400
Subject: [PATCH 619/645] Translated using Weblate (Catalan) Translation:
Jellyfin/Jellyfin Web Translate-URL:
https://translate.jellyfin.org/projects/jellyfin/jellyfin-web/ca/
---
src/strings/ca.json | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/src/strings/ca.json b/src/strings/ca.json
index 484f22ad8..364c1aff0 100644
--- a/src/strings/ca.json
+++ b/src/strings/ca.json
@@ -1057,7 +1057,7 @@
"MediaInfoColorTransfer": "Transferència de color",
"MediaInfoColorSpace": "Espai de color",
"MediaInfoColorPrimaries": "Colors primaris",
- "MediaInfoCodecTag": "Etiqueta de còdec",
+ "MediaInfoCodecTag": "Etiqueta del còdec",
"MediaInfoCodec": "Còdec",
"MediaInfoBitrate": "Taxa de bits",
"MediaInfoBitDepth": "Profunditat de bits",
From 348823900815bf53d9f906fcd21ac0bb3ece9fac Mon Sep 17 00:00:00 2001
From: st7105
Date: Thu, 3 Jul 2025 19:29:38 -0400
Subject: [PATCH 620/645] Translated using Weblate (Russian) Translation:
Jellyfin/Jellyfin Web Translate-URL:
https://translate.jellyfin.org/projects/jellyfin/jellyfin-web/ru/
---
src/strings/ru.json | 5 ++++-
1 file changed, 4 insertions(+), 1 deletion(-)
diff --git a/src/strings/ru.json b/src/strings/ru.json
index 6b77519eb..f9814e626 100644
--- a/src/strings/ru.json
+++ b/src/strings/ru.json
@@ -2062,5 +2062,8 @@
"RepositoriesPageLoadError": "Не удалось загрузить репозитории",
"TranscodingLoadError": "Не удалось загрузить настройки транскодирования",
"ButtonLearnMore": "Узнать больше",
- "LiveTVPageLoadError": "Не удалось загрузить страницу с записями"
+ "LiveTVPageLoadError": "Не удалось загрузить страницу с записями",
+ "HeaderServerMismatch": "Несоответствие серверов",
+ "ConnectAnyway": "Подключиться в любом случае",
+ "MessageServerMismatch": "Сервер, к которому вы подключаетесь, не является тем же самым сервером, к которому вы ранее подключались по этому адресу. Если это ожидаемо, выберите \"Подключиться в любом случае\". В противном случае ваше соединение или сервер могут быть скомпрометированы."
}
From 0dea95070a9eb26b6a031155f98fd6217954cf73 Mon Sep 17 00:00:00 2001
From: Tal Sarid
Date: Fri, 4 Jul 2025 06:38:22 -0400
Subject: [PATCH 621/645] Translated using Weblate (Hebrew) Translation:
Jellyfin/Jellyfin Web Translate-URL:
https://translate.jellyfin.org/projects/jellyfin/jellyfin-web/he/
---
src/strings/he.json | 55 ++++++++++++++++++++++++---------------------
1 file changed, 29 insertions(+), 26 deletions(-)
diff --git a/src/strings/he.json b/src/strings/he.json
index 336668e8f..be8a61365 100644
--- a/src/strings/he.json
+++ b/src/strings/he.json
@@ -256,7 +256,7 @@
"MySubtitles": "הכתוביות שלי",
"Name": "שם",
"NewCollection": "אוספים חדשים",
- "NewCollectionHelp": "אוספים מאפשרים לך ליצור קיבוצים מותאמים אישית של סרטים ותוכן ספריה אחר.",
+ "NewCollectionHelp": "אוספים מאפשרים לך ליצור קיבוצים מותאמים אישית של סרטים ותוכן ספרייה אחר.",
"NewCollectionNameExample": "לדוגמא :אוסף מלחמת הכוכבים",
"NewEpisodes": "פרקים חדשים",
"NewEpisodesOnly": "פרקים חדשים בלבד",
@@ -312,7 +312,7 @@
"PlayAllFromHere": "נגן הכל מכאן",
"PlayFromBeginning": "נגן מהתחלה",
"PleaseEnterNameOrId": "הזן שם או מזהה חיצוני.",
- "PleaseRestartServerName": "נא להפעיל מחדש את ג'ליפין ב-{0}.",
+ "PleaseRestartServerName": "נא להפעיל מחדש את Jellyfin ב-{0}.",
"PleaseSelectTwoItems": "בחר לפחות שני פריטים.",
"Premiere": "הקרנת בכורה",
"Premieres": "בכורות",
@@ -404,7 +404,7 @@
"ValueSpecialEpisodeName": "מיוחד- {0}",
"ViewAlbum": "צפה באלבום",
"Wednesday": "רביעי",
- "WelcomeToProject": "ברוכים הבאים לג'ליפין!",
+ "WelcomeToProject": "ברוכים הבאים ל-Jellyfin!",
"Writer": "כותב",
"Albums": "אלבומים",
"Artists": "אומנים",
@@ -479,7 +479,7 @@
"Ascending": "בסדר עולה",
"Photos": "צילומים",
"MessageConfirmShutdown": "האם אתה בטוח שברצונך לכבות את השרת?",
- "MessageConfirmRestart": "האם אתה בטוח שברצונך לאתחל את ג'ליפין?",
+ "MessageConfirmRestart": "האם אתה בטוח שברצונך לאתחל את Jellyfin?",
"HeaderThisUserIsCurrentlyDisabled": "משתמש זה אינו פעיל כרגע",
"HeaderTaskTriggers": "טריגרים של המשימה",
"HeaderStopRecording": "עצור הקלטה",
@@ -637,7 +637,7 @@
"LabelDisplaySpecialsWithinSeasons": "הצג פרקים מיוחדים בתוך העונות שבמהלכן הם שודרו",
"LabelDisplayName": "שם תצוגה",
"LabelDisplayMode": "מצב תצוגה",
- "LabelDisplayLanguageHelp": "תרגום ג'ליפין הוא פרויקט מתמשך.",
+ "LabelDisplayLanguageHelp": "תרגום Jellyfin הוא פרויקט מתמשך.",
"LabelDisplayLanguage": "שפת תצוגה",
"LabelDidlMode": "מצב DIDL",
"LabelDeviceDescription": "תיאור מכשיר",
@@ -809,10 +809,10 @@
"ErrorSavingTvProvider": "אירעה שגיאה בשמירת ספק הטלוויזיה. אנא וודא שהוא נגיש ונסה שוב.",
"ErrorPleaseSelectLineup": "אנא בחר מערך ונסה שוב. אם אין מערכים זמינים, אנא בדוק ששם המשתמש, הסיסמה והמיקוד שלך נכונים.",
"ErrorGettingTvLineups": "אירעה שגיאה בהורדת מערכי הטלוויזיה. אנא ודא שהמידע שלך נכון ונסה שוב.",
- "ErrorDeletingItem": "אירעה שגיאה במחיקת הפריט מהשרת. נא לבדוק שיש לג'ליפין הרשאת כתיבה לתיקיית המדיה ולנסות שוב.",
+ "ErrorDeletingItem": "אירעה שגיאה במחיקת הפריט מהשרת. נא לבדוק שיש ל-Jellyfin הרשאת כתיבה לתיקיית המדיה ולנסות שוב.",
"ErrorAddingXmlTvFile": "אירעה שגיאה בגישה לקובץ XMLTV. אנא ודא שהקובץ קיים ונסה שוב.",
"ErrorAddingTunerDevice": "אירעה שגיאה בהוספת מכשיר המקלט. אנא וודא שהוא נגיש ונסה שוב.",
- "ErrorAddingMediaPathToVirtualFolder": "אירעה שגיאה בהוספת נתיב המדיה. אנא וודא שהנתיב תקף ולג'ליפין יש גישה למיקום זה.",
+ "ErrorAddingMediaPathToVirtualFolder": "אירעה שגיאה בהוספת נתיב המדיה. אנא וודא שהנתיב תקף ול-Jellyfin יש גישה למיקום זה.",
"Episode": "פרק",
"EnableDetailsBannerHelp": "הצג תמונת באנר בראש עמוד פרטי הפריט.",
"EnableDetailsBanner": "באנר פרטים",
@@ -866,7 +866,7 @@
"ShowLess": "הצג פחות",
"ShowAdvancedSettings": "הצג הגדרות מתקדמות",
"SettingsWarning": "שינוי ערכים אלו עלול לגרום לחוסר יציבות או בעיות חיבור. אם אתה נתקל בבעיות, אנו ממליצים להחזיר אותם לערכי ברירת המחדל.",
- "ServerRestartNeededAfterPluginInstall": "ג'ליפין יצטרך לאתחל לאחר התקנת התוסף.",
+ "ServerRestartNeededAfterPluginInstall": "יש צורך לאתחל את Jellyfin לאחר התקנת התוסף.",
"SeriesDisplayOrderHelp": "סדר פרקים על פי תאריך שידור, סדר DVD, או מספרים אבסולוטיים.",
"Series": "סדרה",
"SendMessage": "שלח הודעה",
@@ -909,7 +909,7 @@
"LabelAlbumArtMaxWidth": "רוחב מירבי של אומנות אלבום",
"LabelAlbumArtMaxHeight": "גובה מירבי של אומנות אלבום",
"LabelAbortedByServerShutdown": "(הופסק על ידי כיבוי השרת)",
- "KnownProxiesHelp": "רשימה מופרדת באמצעות פסיקים של כתובות IP או שמות מארחים של מתווכים ידועים המשמשים בעת חיבור לשרת ג'ליפין שלך. זה נדרש כדי לעשות שימוש נכון בכותרות X-Forwarded-For. דורש אתחול מחדש לאחר השמירה.",
+ "KnownProxiesHelp": "רשימה מופרדת באמצעות פסיקים של כתובות IP או שמות מארחים של מתווכים ידועים המשמשים בעת חיבור לשרת ה-Jellyfin שלך. זה נדרש כדי לעשות שימוש נכון בכותרות X-Forwarded-For. דורש אתחול מחדש לאחר השמירה.",
"ImportFavoriteChannelsHelp": "רק ערוצים המסומנים כחביבים במכשיר המקלט ייובאו .",
"HttpsRequiresCert": "כדי לאפשר חיבורים מאובטחים, יהיה עליך לספק אישור SSL מהימן, כגון Let's Encrypt. אנא ספק תעודה או השבת חיבורים מאובטחים.",
"HideWatchedContentFromLatestMedia": "הסתר תוכן שנצפה מ'מדיה שהתווספה לאחרונה'",
@@ -1034,7 +1034,7 @@
"IgnoreDtsHelp": "השבתת אפשרות זו עשויה לפתור בעיות מסוימות, למשל. אודיו חסר בערוצים עם זרמי אודיו ווידאו נפרדים.",
"HeaderContainerProfileHelp": "פרופילי קונטיינר מציינים את המגבלות של מכשיר בעת הפעלת קידודים ספציפיים. אם חלה מגבלה אז המדיה תקודד מחדש, גם אם הקידוד מוגדר להפעלה ישירה.",
"LabelAutoDiscoveryTracingHelp": "כאשר מופעל, חבילות רשת המתקבלות בפורט הגילוי האוטומטי יתועדו.",
- "LabelAutomaticDiscoveryHelp": "אפשר ליישומים לזהות באופן אוטומטי את ג'ליפין באמצעות שימוש ב-UDP דרך פורט 7359.",
+ "LabelAutomaticDiscoveryHelp": "אפשר ליישומים לזהות באופן אוטומטי את Jellyfin באמצעות שימוש ב-UDP דרך פורט 7359.",
"LabelBaseUrlHelp": "הוסף תת-תיקייה מותאמת אישית לכתובת ה-URL של השרת. לדוגמא:http://example.com/<baseurl>",
"LabelBindToLocalNetworkAddressHelp": "דרוס את כתובת ה-IP המקומית של שרת ה-HTTP. אם ריק, השרת ייצמד לכל הכתובות הזמינות. שינוי ערך זה דורש הפעלה מחדש.",
"LabelChromecastVersion": "גרסאת Google Cast",
@@ -1203,12 +1203,12 @@
"LabelKodiMetadataEnableExtraThumbs": "העתק extrafanart לשדה extrathumbs",
"LabelGroupMoviesIntoCollectionsHelp": "כל הסרטים באוסף יופיעו בתור פריט מקובץ אחד ברשימות סרטים.",
"LabelHomeScreenSectionValue": "איזור {0} בעמוד הבית",
- "LabelExtractChaptersDuringLibraryScan": "חלץ את תמונות הפרק תוך כדי סריקת הספריה",
+ "LabelExtractChaptersDuringLibraryScan": "חלץ את תמונות הפרק תוך כדי סריקת הספרייה",
"LabelBackdropScreensaverInterval": "interval שומר המסך של הרקע",
"LabelEnableLUFSScan": "הפעלת סריקת LUFS",
"LabelEnableAutomaticPortMapHelp": "בצע port forward בצורה אוטומטית מפורטים בראוטר אל פורטים לוקאליים על השרת באמצעות UPnP. ייתכן שזה לא יעבוד עם דגמי נתב מסוימים או עם קונפיגורציות רשת מסוימות. שינויים לא יחולו עד לאחר הפעלה מחדש של השרת.",
"BackdropScreensaver": "שומר המסך של הרקע",
- "LabelExtractChaptersDuringLibraryScanHelp": "צור תמונות פרקים כאשר סרטונים מיובאים תוך כדי סריקת הספריה. אחרת, הם יחולצו תוך כדי המשימה המתוזמנת העוסקת בתמונות הפרק, מה שיאפשר לסריקת הספריה הרגילה להסתיים מהר יותר.",
+ "LabelExtractChaptersDuringLibraryScanHelp": "צור תמונות פרקים כאשר סרטונים מיובאים תוך כדי סריקת הספרייה. אחרת, הם יחולצו תוך כדי המשימה המתוזמנת העוסקת בתמונות הפרק, מה שיאפשר לסריקת הספרייה הרגילה להסתיים מהר יותר.",
"LabelThrottleDelaySecondsHelp": "כמות הזמן בשניות שלאחריה המקודד יגיע ל-throttle. חייב להיות גדול מספיק כדי שהלקוח ישמור על buffer גדול מספיק. עובד רק אם throttling מופעל.",
"HeaderGuestCast": "כוכבים אורחים",
"LabelBackdropScreensaverIntervalHelp": "הזמן בשניות בין רקעים שונים כאשר משתמשים ברקעים כשומר מסך.",
@@ -1297,7 +1297,7 @@
"Creator": "יוצר",
"EnableHi10p": "הפעלת פרופיל H.264 High 10",
"AllowFmp4TranscodingContainerHelp": "אפשר המרת קידוד של fMP4 עבור מכוון זה כדי לאפשר תוכן HEVC ו-HDR. לא כל המכוונים תומכים בפורמט זה. בטל זאת אם יש בעיה בניגון.",
- "AllowStreamSharingHelp": "אפשר לג'ליפין לשכפל את זרם mpgets מהמכוון ולשתף ללקוחות. זה עוזר כשהמכוון מוגבל במספר הזרמים אך עלול לגרום לבעיות בניגון.",
+ "AllowStreamSharingHelp": "אפשר ל-Jellyfin לשכפל את זרם ה-MPEGTS מהמכוון ולשתף ללקוחותיו. זה עוזר כשהמכוון מוגבל במספר הזרמים הכולל אך עלול לגרום לבעיות בניגון.",
"AlwaysRemuxFlacAudioFilesHelp": "אם יש לך קבצים שהדפדפן מסרב להציג או מראה זמנים שגויים, ניתן להפעיל זאת כפתרון חלופי.",
"AlwaysRemuxMp3AudioFilesHelp": "אם יש לך קבצים שהדפדפן מראה עבורם זמנים שגויים, ניתן להפעיל זאת כפתרון חלופי.",
"AndOtherArtists": "{0} ו-{1} אומנים נוספים.",
@@ -1307,7 +1307,7 @@
"AlwaysBurnInSubtitleWhenTranscoding": "צרוב כתוביות תמיד בעת המרת קידוד",
"EnableDtsHelp": "יש להפעיל רק אם מכשירך תומך ב-DTS או מחובר למקלט שמע תואם, אחרת תיגרם שגיאת ניגון.",
"EnableHi10pHelp": "הפעל כדי להימנע מהמרת קידוד וידיאו מסוג H.264 10-bit. יש לבטל אפשרות זו אם הוידיאו מציג פריימים ריקים.",
- "ErrorDeletingLyrics": "אירעה שגיאה במחיקת המילים מהשרת. נא לבדוק שיש לג'ליפין הרשאת כתיבה לתיקיית המדיה ולנסות שוב.",
+ "ErrorDeletingLyrics": "אירעה שגיאה במחיקת המילים מהשרת. נא לבדוק שיש ל-Jellyfin הרשאת כתיבה לתיקיית המדיה ולנסות שוב.",
"AlwaysBurnInSubtitleWhenTranscodingHelp": "צרוב את כל הכתוביות בזמן המרת קידוד. זה מבטיח שהכתוביות יהיו מסונכרנות אך מאט את מהירות ההמרה.",
"EnableTrueHd": "הפעלת TrueHD",
"EnableTrueHdHelp": "יש להפעיל רק אם מכשירך תומך ב-TrueHD או מחובר למקלט שמע תואם, אחרת תהיה שגיאת ניגון.",
@@ -1364,7 +1364,7 @@
"LabelPublicHttpsPort": "מספר פורט HTTPS פומבי",
"LabelPublicHttpsPortHelp": "מספר הפורט הפומבי אשר ימופה לפורט HTTPS המקומי.",
"LabelPublishedServerUri": "כתובות URI של השרת שיפורסמו",
- "LabelPublishedServerUriHelp": "יש לדרוס את ה-URI שבשימוש ג'ליפין, בהתבסס על כרטיס הרשת, או כתובת IP של הלקוח. למשל: internal=http://jellyfin.example.com, external=https://jellyfin.example.com, או all=https://jellyfin.example.com",
+ "LabelPublishedServerUriHelp": "יש לדרוס את ה-URI שבשימוש Jellyfin, בהתבסס על כרטיס הרשת או כתובת IP של הלקוח. למשל: internal=http://jellyfin.example.com, external=https://jellyfin.example.com או all=https://jellyfin.example.com",
"LabelParallelImageEncodingLimit": "גבול קידוד תמונות במקביל",
"LabelParallelImageEncodingLimitHelp": "המספר המקסימלי של קידודי תמונות שירוצו במקביל. השארת ערך זה ריק תקבע מגבלה בהתאם למספר המעבדים במערכת שלך.",
"LabelPlayDefaultAudioTrack": "ניגון פס הקול הדיפולטי ללא תלות בשפה",
@@ -1466,7 +1466,7 @@
"LogLevel.Debug": "ניפוי שגיאות",
"LabelTVHomeScreen": "עמוד הבית במצב טלוויזיה",
"LearnHowYouCanContribute": "איך ניתן לתרום.",
- "LibraryInvalidItemIdError": "הספריה נמצאת במצב לא תקין ולא ניתן לערוך אותה. אולי נתקלת בשגיאה: המסלול במבנה-הנתונים שונה מהמסלול במערכת הקבצים.",
+ "LibraryInvalidItemIdError": "הספרייה נמצאת במצב לא תקין ולא ניתן לערוך אותה. אולי נתקלת בשגיאה: הנתיב במסד-הנתונים שונה מהנתיב במערכת הקבצים.",
"LimitSupportedVideoResolution": "הגבלת המספר המירבי של רזולוציות וידיאו נתמכות",
"LabelUnstable": "לא יציב",
"LeaveBlankToNotSetAPassword": "ניתן להשאיר ריק כדי להימנע מהגדרת סיסמה.",
@@ -1519,7 +1519,7 @@
"MessageConfirmAppExit": "האם ברצונך לצאת?",
"MessageConfirmRemoveMediaLocation": "למחוק את מיקום זה?",
"MessageConfirmRevokeApiKey": "לבטל את מפתח ה-API הזה? החיבור של אפליקציות לשרת זה יסתיימו באופן פתאומי.",
- "MessageDirectoryPickerBSDInstruction": "עבור BSD, עליך להגדיר אחסון בתוך 'FreeNAS Jail' שלך כדי שג'ליפין יוכל לגשת למדיה שלך.",
+ "MessageDirectoryPickerBSDInstruction": "עבור BSD, עליך להגדיר אחסון בתוך 'FreeNAS Jail' שלך כדי ש-Jellyfin יוכל לגשת למדיה שלך.",
"MessageDirectoryPickerLinuxInstruction": "עבור לינוקס על Arch Linux, CentOS, Debian, Fedora, openSUSE, או Ubuntu, יש לתת למשתמש השירות גישת קריאה למקומות האחסון לכל הפחות.",
"MessageForgotPasswordFileCreated": "הקובץ הבא נוצר בשרת שלך ומסביר כיצד להמשיך",
"MessageNoItemsAvailable": "אין פריטים זמינים כעת.",
@@ -1630,7 +1630,7 @@
"PlaybackError.ASS_RENDER_ERROR": "אירעה שגיאה בעיבוד כתוביות ASS/SSA.",
"PlayNext": "נגן את הבא",
"PlaybackErrorNoCompatibleStream": "הלקוח אינו תואם למדיה והשרת לא שולח מדיה בפורמט תואם.",
- "PlaybackErrorPlaceHolder": "זהו ממלא מקום עבור מדיה פיזית שג'ליפין לא יכול לנגן. יש להכניס את הדיסק כדי לנגן.",
+ "PlaybackErrorPlaceHolder": "זהו ממלא מקום עבור מדיה פיזית ש-Jellyfin לא יכול לנגן. יש להכניס את הדיסק כדי לנגן.",
"PlayNextEpisodeAutomatically": "נגן את הפרק הבא אוטומטית",
"PleaseAddAtLeastOneFolder": "נא להוסיף לפחות תיקייה אחת לספרייה זו על ידי לחיצה על הכפתור '+' באיזור 'תיקיות'.",
"PleaseConfirmRepositoryInstallation": "נא ללחוץ אוקיי כדי לאשר שקראת וברצונך להמשיך בהתקנת רפוזיטורי התוספים.",
@@ -1757,21 +1757,21 @@
"Up": "למעלה",
"UseCustomTagDelimitersHelp": "פיצול תגי אומן/ז'אנר באמצעות תווים מוגדרים אישית.",
"UseDoubleRateDeinterlacingHelp": "הגדרה זו משתמשת בקצב השדה בעת deinterlacing, לרוב נקראת גם bob deinterlacing, אשר מכפילה את קצב הפריימים של הוידיאו כדי לספק תנועה מלאה כמו בצפייה בוידיאו השזור בטלוויזיה.",
- "UnsupportedPlayback": "ג'ליפין לא יכול לפענח תוכן המוגן על ידי DRM אבל ינסה לפענח את כל התוכן למרות זאת, כולל כותרות מוגנות. חלק מהקבצים עלולים להיראות שחורים לגמרי בגלל ההצפנה או תכונות לא נתמכות אחרות, למשל כותרות אינטראקטיביות.",
+ "UnsupportedPlayback": "Jellyfin לא יכול לפענח תוכן המוגן על ידי DRM אבל ינסה לפענח את כל התוכן למרות זאת, כולל כותרות מוגנות. חלק מהקבצים עלולים להיראות שחורים לגמרי בגלל ההצפנה או תכונות לא נתמכות אחרות, למשל כותרות אינטראקטיביות.",
"UseCustomTagDelimiters": "שימוש במפריד תגים מוגדר אישית",
"Studio": "סטודיו",
"Print": "הדפסה",
"UserMenu": "תפריט משתמש",
"UserAgentHelp": "ניתן לספק שדה 'User-Agent' מוגדר אישית.",
- "UserProfilesIntro": "ג'ליפין כולל תמיכה בפרופילי משתמש עם הגדרות צפייה, מצב ניגון, ובקרת הורים לכל אחד.",
+ "UserProfilesIntro": "Jellyfin כולל תמיכה בפרופילי משתמש עם הגדרות צפייה, מצב ניגון ובקרת הורים לכל אחד.",
"ValueSeconds": "{0} שניות",
"ValueTimeLimitMultiHour": "הגבלת זמן: {0} שעות",
"ValueTimeLimitSingleHour": "הגבלת זמן: שעה אחת",
"VideoAudio": "שמע הוידיאו",
"WeeklyAt": "{0}ים ב-{1}",
- "WriteAccessRequired": "ג'ליפין דורש הרשאות כתיבה לתיקייה זו. נא לוודא הרשאת כתיבה ולנסות שוב.",
+ "WriteAccessRequired": "Jellyfin דורש הרשאות כתיבה לתיקייה זו. נא לוודא הרשאת כתיבה ולנסות שוב.",
"Whitelist": "מותרים",
- "WizardCompleted": "זה כל מה שצריך לעכשיו. ג'ליפין התחיל לאסוף מידע על ספריית המדיה שלך. מומלץ לבדוק את האפליקציות שלנו, ואז ללחוץ סיום כדי לראות את לוח המחוונים.",
+ "WizardCompleted": "זה כל מה שצריך לעכשיו. Jellyfin התחיל לאסוף מידע על ספריית המדיה שלך. מומלץ לבדוק את האפליקציות שלנו ואז ללחוץ סיום כדי לראות את לוח המחוונים.",
"XmlTvMovieCategoriesHelp": "תוכניות בקטגוריות אלה יוצגו כסרטים. יש להפריד ערכים עם '|'.",
"LabelFallbackFontPath": "נתיב תיקיית גופן לגיבוי",
"Watched": "נצפה",
@@ -1779,7 +1779,7 @@
"XmlTvKidsCategoriesHelp": "תוכניות בקטגוריות אלה יוצגו כתוכניות לילדים. יש להפריד ערכים עם '|'.",
"ViewAlbumArtist": "צפייה באומן האלבום",
"ViewLyrics": "צפייה במילות השיר",
- "XmlTvPathHelp": "נתיב לקובץ XMLTV. ג'ליפין יקרא קובץ זה ויבדוק עדכונים מדי פעם. באחריותך ליצור ולעדכן את הקובץ.",
+ "XmlTvPathHelp": "נתיב לקובץ XMLTV. שרת ה-Jellyfin יקרא קובץ זה ויבדוק עדכונים מדי פעם. באחריותך ליצור ולעדכן את הקובץ.",
"XmlTvNewsCategoriesHelp": "תוכניות בקטגוריות אלה יוצגו כתוכניות של חדשות. יש להפריד ערכים עם '|'.",
"HeaderSelectFallbackFontPath": "בחירת נתיב תיקיית גופן לגיבוי",
"HeaderSelectFallbackFontPathHelp": "חיפוש או הכנסת נתיב לתיקיית גופן גיבוי עבור רינדור כתוביות ASS/SSA.",
@@ -1791,7 +1791,7 @@
"AspectRatioFill": "מתיחה",
"Remuxing": "רימיקס",
"YoutubeDenied": "לא ניתן לנגן את הוידיאו המבוקש בנגנים מוטמעים.",
- "MessageChromecastConnectionError": "מתאם Google Cast שלך לא הצליח להתחבר לשרת ג'ליפין. נא לבדוק את החיבור ולנסות שוב.",
+ "MessageChromecastConnectionError": "מתאם ה-Google Cast שלך לא הצליח להתחבר לשרת ה-Jellyfin. נא לבדוק את החיבור ולנסות שוב.",
"MessagePlaybackError": "אירעה שגיאה בניגון הקובץ הזה דרך Google Cast.",
"EnableEnhancedNvdecDecoder": "הפעלת מפענח NVDEC משופר",
"RefFramesNotSupported": "מסגרות ייחוס אינן נתמכות",
@@ -1821,7 +1821,7 @@
"YoutubeBadRequest": "בקשה שגויה.",
"Featurette": "סרט קצר",
"Short": "סרטון",
- "EncodingFormatHelp": "בחירת קידוד הוידיאו שג'ליפין יקודד אליו. ג'ליפין ישתמש בקידוד תוכנה אם אין האצת חומרה לפורנט הנבחר. קידוד H264 תמיד מאופשר.",
+ "EncodingFormatHelp": "בחירת קידוד הוידאו ש-Jellyfin יקודד אליו. Jellyfin ישתמש בקידוד תוכנה אם אין האצת חומרה לפורמט הנבחר. קידוד H264 תמיד מאופשר.",
"AudioIsExternal": "זרם השמע הוא חיצוני",
"UnknownAudioStreamInfo": "מידע הזרמת השמע אינו ידוע",
"DirectPlayError": "אירעה שגיאה בהפעלת ניגון ישיר",
@@ -1994,5 +1994,8 @@
"Success": "הצלחה",
"MessageRestoreInProgress": "מתבצע שחזור",
"MessageRestoreSuccess": "השחזור הושלם בהצלחה",
- "LiveTVPageLoadError": "נכשל בטעינת דף ההקלטות"
+ "LiveTVPageLoadError": "נכשל בטעינת דף ההקלטות",
+ "HeaderServerMismatch": "שרת לא מתאים",
+ "ConnectAnyway": "התחבר בכל זאת",
+ "MessageServerMismatch": "השרת שאתה מתחבר אליו כעת אינו אותו השרת שהתחברת אליו בעבר באמצעות כתובת זו. אם הדבר צפוי לך, אנא בחר \"התחבר בכל זאת\". אחרת, החיבור שלך לשרת עשוי להיות מנוצל לרעה."
}
From d0bf67a5a5797f550fcd01a1622c153154a1993d Mon Sep 17 00:00:00 2001
From: Vittat
Date: Fri, 4 Jul 2025 09:19:02 -0400
Subject: [PATCH 622/645] Translated using Weblate (Spanish) Translation:
Jellyfin/Jellyfin Web Translate-URL:
https://translate.jellyfin.org/projects/jellyfin/jellyfin-web/es/
---
src/strings/es.json | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/src/strings/es.json b/src/strings/es.json
index e452cf109..b46158b3f 100644
--- a/src/strings/es.json
+++ b/src/strings/es.json
@@ -2037,7 +2037,7 @@
"HeaderBackupsHelp": "Crea y restaura instantáneas de tu servidor, que pueden incluir la base de datos, los metadatos, los subtítulos y el trickplay.",
"LabelBackupsUnavailable": "No hay respaldos disponibles",
"LabelDatabase": "Base de datos",
- "BackupsPageLoadError": "Fallo al cargar la página de respaldos de datos",
+ "BackupsPageLoadError": "Fallo al cargar la página de copia de seguridad",
"ButtonCreateBackup": "Crear respaldo de datos",
"LabelRestore": "Restaurar",
"ConfirmDeleteRepository": "Eliminar repositorio?",
From bc5f83b0f77315a295fe3ee18ec66de034a5940c Mon Sep 17 00:00:00 2001
From: Vittat
Date: Fri, 4 Jul 2025 17:25:10 -0400
Subject: [PATCH 623/645] Translated using Weblate (Spanish) Translation:
Jellyfin/Jellyfin Web Translate-URL:
https://translate.jellyfin.org/projects/jellyfin/jellyfin-web/es/
---
src/strings/es.json | 10 +++++-----
1 file changed, 5 insertions(+), 5 deletions(-)
diff --git a/src/strings/es.json b/src/strings/es.json
index b46158b3f..5b966b7cf 100644
--- a/src/strings/es.json
+++ b/src/strings/es.json
@@ -2034,11 +2034,11 @@
"MessageForgotPasswordPinReset": "Introducir PIN aquí para terminar el restablecimiento de contraseña",
"ButtonLearnMore": "Saber Más",
"Create": "Crear",
- "HeaderBackupsHelp": "Crea y restaura instantáneas de tu servidor, que pueden incluir la base de datos, los metadatos, los subtítulos y el trickplay.",
- "LabelBackupsUnavailable": "No hay respaldos disponibles",
+ "HeaderBackupsHelp": "Crea y restaura copias de seguridad de tu servidor, que pueden incluir la base de datos, los metadatos, los subtítulos y el trickplay.",
+ "LabelBackupsUnavailable": "No hay copias de seguridad disponibles",
"LabelDatabase": "Base de datos",
- "BackupsPageLoadError": "Fallo al cargar la página de copia de seguridad",
- "ButtonCreateBackup": "Crear respaldo de datos",
+ "BackupsPageLoadError": "Fallo al cargar la página de copias de seguridad",
+ "ButtonCreateBackup": "Crear copia de seguridad",
"LabelRestore": "Restaurar",
"ConfirmDeleteRepository": "Eliminar repositorio?",
"DeleteRepositoryConfirmation": "Estás seguro que quieres eliminar este repositorio?",
@@ -2057,7 +2057,7 @@
"StorageType.NoRootDirectory": "Directorio raíz no encontrado",
"StorageType.Unknown": "Desconocido",
"Success": "Operación exitosa",
- "HeaderBackups": "Respaldos de datos",
+ "HeaderBackups": "Copias de seguridad",
"TranscodingLoadError": "Error al cargar la configuración de transcodificación",
"MessageRestoreDisclaimer": "ADVERTENCIA: Estás a punto de restaurar un respaldo de datos anterior. Tu servidor quedará inoperativo durante el proceso y se perderán todos los datos nuevos creados desde la fecha de esa copia.",
"MessageRestoreInProgress": "Restauración en progreso",
From 848562716f43a96f27d25b48299293300549ae5d Mon Sep 17 00:00:00 2001
From: Akshat Shukla
Date: Fri, 4 Jul 2025 17:17:54 -0400
Subject: [PATCH 624/645] Translated using Weblate (Hindi) Translation:
Jellyfin/Jellyfin Web Translate-URL:
https://translate.jellyfin.org/projects/jellyfin/jellyfin-web/hi/
---
src/strings/hi-in.json | 6 +++++-
1 file changed, 5 insertions(+), 1 deletion(-)
diff --git a/src/strings/hi-in.json b/src/strings/hi-in.json
index 1c4082bcf..826a23114 100644
--- a/src/strings/hi-in.json
+++ b/src/strings/hi-in.json
@@ -215,5 +215,9 @@
"Conductor": "कंडक्टर",
"ConfigureDateAdded": "डैशबोर्ड > लाइब्रेरीज़ > डिस्प्ले में 'जोड़ी गई तिथि' के लिए मेटाडेटा निर्धारित करने का तरीका सेट करें",
"ConfirmDeleteImage": "छवि हटाएँ?",
- "CopyFailed": "कॉपी नहीं किया जा सका"
+ "CopyFailed": "कॉपी नहीं किया जा सका",
+ "BehindTheScenes": "पर्दे के पीछे",
+ "MachineTranslated": "मशीन द्वारा अनुवादित",
+ "Unknown": "अज्ञात",
+ "AiTranslated": "AI (ऐ. आई.) द्वारा अनुतवादि"
}
From 87d2274ce85f1c6003f281f901a258be5193f665 Mon Sep 17 00:00:00 2001
From: Vittat
Date: Sat, 5 Jul 2025 04:55:40 -0400
Subject: [PATCH 625/645] Translated using Weblate (Spanish) Translation:
Jellyfin/Jellyfin Web Translate-URL:
https://translate.jellyfin.org/projects/jellyfin/jellyfin-web/es/
---
src/strings/es.json | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/src/strings/es.json b/src/strings/es.json
index 5b966b7cf..776dc70ac 100644
--- a/src/strings/es.json
+++ b/src/strings/es.json
@@ -2056,10 +2056,10 @@
"StorageType.Ram": "RAM",
"StorageType.NoRootDirectory": "Directorio raíz no encontrado",
"StorageType.Unknown": "Desconocido",
- "Success": "Operación exitosa",
+ "Success": "Se ha completado correctamente",
"HeaderBackups": "Copias de seguridad",
"TranscodingLoadError": "Error al cargar la configuración de transcodificación",
- "MessageRestoreDisclaimer": "ADVERTENCIA: Estás a punto de restaurar un respaldo de datos anterior. Tu servidor quedará inoperativo durante el proceso y se perderán todos los datos nuevos creados desde la fecha de esa copia.",
+ "MessageRestoreDisclaimer": "ADVERTENCIA: Estás a punto de restaurar una copia de seguridad anterior. Tu servidor quedará inoperativo durante el proceso y se perderán todos los datos nuevos creados desde la fecha de esa copia.",
"MessageRestoreInProgress": "Restauración en progreso",
"MessageWaitingForServer": "Esperando al servidor..."
}
From 1fabd707118f803a9e072779a00a7324203fb921 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Arnau=20Galofr=C3=A9?=
Date: Sat, 5 Jul 2025 12:18:24 -0400
Subject: [PATCH 626/645] Translated using Weblate (Catalan) Translation:
Jellyfin/Jellyfin Web Translate-URL:
https://translate.jellyfin.org/projects/jellyfin/jellyfin-web/ca/
---
src/strings/ca.json | 8 ++++----
1 file changed, 4 insertions(+), 4 deletions(-)
diff --git a/src/strings/ca.json b/src/strings/ca.json
index 364c1aff0..0c45c114c 100644
--- a/src/strings/ca.json
+++ b/src/strings/ca.json
@@ -384,7 +384,7 @@
"MessageConfirmProfileDeletion": "N'estàs segur d'eliminar aquest perfil?",
"MessageConfirmRecordingCancellation": "N'esteu segur, que voleu cancel·lar l'enregistrament?",
"MessageConfirmRestart": "N'esteu segur, que voleu reiniciar Jellyfin?",
- "MessageContactAdminToResetPassword": "Contacteu amb l'administrador per a restablir la contrasenya.",
+ "MessageContactAdminToResetPassword": "Si us plau, contacta amb l'administrador del sistema per a reestablir la contrasenya.",
"MessageDownloadQueued": "Descàrrega posada a la cua.",
"MessageEnablingOptionLongerScans": "Habilitar aquesta opció pot resultar en escanejos significativament més lents de la mediateca.",
"MessageItemSaved": "Element desat.",
@@ -1028,9 +1028,9 @@
"MessageFileReadError": "S'ha produït un error en llegir el fitxer. Torneu-ho a provar.",
"MessageDirectoryPickerLinuxInstruction": "Per a Linux amb Arch Linux, CentOS, Debian, Fedora, openSUSE, o Ubuntu, heu de concedir a l'usuari del servei com a mínim l'accés de lectura als llocs d'emmagatzematge.",
"MessageDirectoryPickerBSDInstruction": "Per a BSD, caldrà tenir configurat l'emmagatzematge del \"FreeNAS Jail\" perquè permeti a Jellyfin accedir al contingut multimèdia.",
- "MessageDeleteTaskTrigger": "N'esteu segur, que voleu eliminar aquest detonador de tasca?",
- "MessageCreateAccountAt": "Crea un compte a {0}",
- "MessageConfirmShutdown": "N'esteu segur, que voleu tancar el servidor?",
+ "MessageDeleteTaskTrigger": "N'estàs segur que vols eliminar aquest llençador de tasques?",
+ "MessageCreateAccountAt": "Crear un compte a {0}",
+ "MessageConfirmShutdown": "Segur que vols apagar el servidor?",
"MessageConfirmRevokeApiKey": "N'esteu segur, de voler revocar aquesta clau d'API? La connexió de l'aplicació d'aquest servidor s'interromprà abruptament.",
"MessageConfirmRemoveMediaLocation": "N'esteu segur, que voleu suprimir aquesta ubicació?",
"MessageConfirmDeleteTunerDevice": "N'esteu segur, que voleu eliminar aquest dispositiu?",
From 682cfe4d68598296798bf1d693a1aee68e7dc177 Mon Sep 17 00:00:00 2001
From: nextlooper42
Date: Sun, 6 Jul 2025 06:33:19 -0400
Subject: [PATCH 627/645] Translated using Weblate (Slovak) Translation:
Jellyfin/Jellyfin Web Translate-URL:
https://translate.jellyfin.org/projects/jellyfin/jellyfin-web/sk/
---
src/strings/sk.json | 5 ++++-
1 file changed, 4 insertions(+), 1 deletion(-)
diff --git a/src/strings/sk.json b/src/strings/sk.json
index f2b8a462d..6f813c26b 100644
--- a/src/strings/sk.json
+++ b/src/strings/sk.json
@@ -2062,5 +2062,8 @@
"PluginsLoadError": "Pri načítavaní zásuvných modulov došlo k chybe.",
"RepositoriesPageLoadError": "Nepodarilo sa načítať repozitáre",
"TranscodingLoadError": "Nepodarilo sa načítať nastavenia prekódovania",
- "LiveTVPageLoadError": "Nepodarilo sa načítať stránku s nahrávkami"
+ "LiveTVPageLoadError": "Nepodarilo sa načítať stránku s nahrávkami",
+ "ConnectAnyway": "Napriek tomu pripojiť",
+ "HeaderServerMismatch": "Nesúlad so serverom",
+ "MessageServerMismatch": "Server, ku ktorému sa pripájate, nie je ten istý server, ku ktorému ste sa predtým pripojili na tejto adrese. Ak je to očakávané, vyberte možnosť „Napriek tomu pripojiť“. V opačnom prípade môže byť vaše pripojenie alebo server kompromitované."
}
From 7269f5af7d2242ccf9abccd8256db02c4ee03a8e Mon Sep 17 00:00:00 2001
From: MrPlow
Date: Mon, 7 Jul 2025 02:39:13 -0400
Subject: [PATCH 628/645] Translated using Weblate (German) Translation:
Jellyfin/Jellyfin Web Translate-URL:
https://translate.jellyfin.org/projects/jellyfin/jellyfin-web/de/
---
src/strings/de.json | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/src/strings/de.json b/src/strings/de.json
index 2e7caf8c6..427c2833b 100644
--- a/src/strings/de.json
+++ b/src/strings/de.json
@@ -2065,5 +2065,5 @@
"LiveTVPageLoadError": "Aufzeichnungsseite konnte nicht geladen werden",
"MessageServerMismatch": "Der Server mit dem Du dich verbindest, ist nicht der selbe, wie der, mit dem Du zuletzt unter dieser Adresse verbunden warst. Wenn das so sein soll, wähle \"Trotzdem verbinden\". Ansonsten könnte es sein, dass Deine Verbindung oder der Server kompromittiert wurde.",
"ConnectAnyway": "Trotzdem verbinden",
- "HeaderServerMismatch": "Server stimmen nicht überein"
+ "HeaderServerMismatch": "Server nicht übereinstimmend"
}
From e8f0211883aa7db8c7c561d0763235db7b67c18e Mon Sep 17 00:00:00 2001
From: Tal Sarid
Date: Mon, 7 Jul 2025 02:25:16 -0400
Subject: [PATCH 629/645] Translated using Weblate (Hebrew) Translation:
Jellyfin/Jellyfin Web Translate-URL:
https://translate.jellyfin.org/projects/jellyfin/jellyfin-web/he/
---
src/strings/he.json | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/src/strings/he.json b/src/strings/he.json
index be8a61365..4cf43afda 100644
--- a/src/strings/he.json
+++ b/src/strings/he.json
@@ -1538,7 +1538,7 @@
"MessagePluginInstalled": "התוסף הותקן בהצלחה. יש לרסט את השרת כדי שהשינויים ייכנסו לתוקף.",
"MessageSyncPlayIsDisabled": "צפייה מסונכרנת דורשת הרשאות.",
"MessageSent": "ההודעה נשלחה.",
- "MessageSplitVersionsError": "אירגע שגיאה במהלך פיצול גרסאות",
+ "MessageSplitVersionsError": "אירעה שגיאה במהלך פיצול גרסאות",
"MoreMediaInfo": "מידע המדיה",
"NoLyricsSearchResultsFound": "לא נמצאו מילים לשיר.",
"MessageSyncPlayErrorNoActivePlayer": "לא נמצא נגן פעיל. הצפייה המסונכרנת הושבתה.",
@@ -1997,5 +1997,5 @@
"LiveTVPageLoadError": "נכשל בטעינת דף ההקלטות",
"HeaderServerMismatch": "שרת לא מתאים",
"ConnectAnyway": "התחבר בכל זאת",
- "MessageServerMismatch": "השרת שאתה מתחבר אליו כעת אינו אותו השרת שהתחברת אליו בעבר באמצעות כתובת זו. אם הדבר צפוי לך, אנא בחר \"התחבר בכל זאת\". אחרת, החיבור שלך לשרת עשוי להיות מנוצל לרעה."
+ "MessageServerMismatch": "השרת שהתחברת אליו כעת אינו אותו השרת שהתחברת אליו בעבר באמצעות כתובת זו. אם הדבר צפוי לך, נא לבחור \"התחבר בכל זאת\". אחרת, החיבור שלך לשרת עשוי להיות מנוצל לרעה."
}
From 5662ca1c17de19b8ccbecdf4bc662c56702c3320 Mon Sep 17 00:00:00 2001
From: Francesco Lo Faro
Date: Mon, 7 Jul 2025 06:12:47 -0400
Subject: [PATCH 630/645] Translated using Weblate (Italian) Translation:
Jellyfin/Jellyfin Web Translate-URL:
https://translate.jellyfin.org/projects/jellyfin/jellyfin-web/it/
---
src/strings/it.json | 5 ++++-
1 file changed, 4 insertions(+), 1 deletion(-)
diff --git a/src/strings/it.json b/src/strings/it.json
index 581a78a0a..8ac4a95fd 100644
--- a/src/strings/it.json
+++ b/src/strings/it.json
@@ -2062,5 +2062,8 @@
"LabelRestore": "Ripristina",
"MessageRestoreInProgress": "Ripristino in corso",
"LabelImageCache": "Cache delle immagini",
- "LabelProgramData": "Dati del programma"
+ "LabelProgramData": "Dati del programma",
+ "ConnectAnyway": "Connetti Comunque",
+ "HeaderServerMismatch": "I Server Non Combaciano",
+ "MessageServerMismatch": "Il server al quale ti stai connettendo non è lo stesso server a cui ti sei connesso in precedenza a questo indirizzo. Se questo era previsto, per favore seleziona \"Connetti Comunque\". Altrimenti, la tua connessione o il server potrebbe essere compromesso."
}
From 58a6bbe01681327f25c7f8aa662536d986faa8a1 Mon Sep 17 00:00:00 2001
From: MrOscarvs
Date: Mon, 7 Jul 2025 08:38:24 -0400
Subject: [PATCH 631/645] Translated using Weblate (Catalan) Translation:
Jellyfin/Jellyfin Web Translate-URL:
https://translate.jellyfin.org/projects/jellyfin/jellyfin-web/ca/
---
src/strings/ca.json | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
diff --git a/src/strings/ca.json b/src/strings/ca.json
index 0c45c114c..7bafca558 100644
--- a/src/strings/ca.json
+++ b/src/strings/ca.json
@@ -2058,5 +2058,6 @@
"TranscodingLoadError": "No s'han pogut carregar els paràmetres de transcodificació",
"ConfirmDeleteRepository": "Desitgeu eliminar el repositori?",
"DeleteRepositoryConfirmation": "N'esteu segur, de voler esborrar aquest repositori?",
- "LiveTVPageLoadError": "La càrrega de la pàgina de gravacions ha fallat"
+ "LiveTVPageLoadError": "La càrrega de la pàgina de gravacions ha fallat",
+ "ConnectAnyway": "Connectar de totes maneres"
}
From 2986a4057565f2a8620326b5ad4d5df2f18b646a Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Aindri=C3=BA=20Mac=20Giolla=20Eoin?=
Date: Mon, 7 Jul 2025 10:11:46 -0400
Subject: [PATCH 632/645] Translated using Weblate (Irish) Translation:
Jellyfin/Jellyfin Web Translate-URL:
https://translate.jellyfin.org/projects/jellyfin/jellyfin-web/ga/
---
src/strings/ga.json | 12 ++++++++----
1 file changed, 8 insertions(+), 4 deletions(-)
diff --git a/src/strings/ga.json b/src/strings/ga.json
index 00b83ca66..f652c2a9a 100644
--- a/src/strings/ga.json
+++ b/src/strings/ga.json
@@ -599,7 +599,7 @@
"Rewind": "Athchasadh",
"MessageConfirmRestart": "An bhfuil tú cinnte gur mian leat Jellyfin a atosú?",
"MessageConfirmRevokeApiKey": "An bhfuil tú cinnte gur mian leat an eochair API seo a chúlghairm? Cuirfear deireadh tobann le nasc an fheidhmchláir leis an bhfreastalaí seo.",
- "MessageConfirmShutdown": "An bhfuil tú cinnte gur mian leat an freastalaí a mhúchadh?",
+ "MessageConfirmShutdown": "An bhfuil tú cinnte gur mian leat an freastalaí a dhúnadh?",
"MessageContactAdminToResetPassword": "Téigh i dteagmháil le do riarthóir córais chun do phasfhocal a athshocrú.",
"MessageCreateAccountAt": "Cruthaigh cuntas ag {0}",
"MessageDeleteTaskTrigger": "An bhfuil tú cinnte gur mian leat an truicear tasc seo a scriosadh?",
@@ -1376,7 +1376,7 @@
"HeaderEnabledFieldsHelp": "Díthiceáil réimse chun é a ghlasáil agus cosc a chur ar a chuid sonraí a athrú.",
"ConfirmDeleteSeries": "Má scriostar an tsraith seo, scriosfar GACH eipeasóid {0} ón gcóras comhad agus ó do leabharlann meán araon. An bhfuil tú cinnte gur mian leat leanúint ar aghaidh?",
"ConfirmDeleteItems": "Má scriostar na míreanna seo, scriosfar iad ón gcóras comhad agus ó do leabharlann meán araon. An bhfuil tú cinnte gur mian leat leanúint ar aghaidh?",
- "ConfirmEndPlayerSession": "Ar mhaith leat Jellyfin a mhúchadh ar {0}?",
+ "ConfirmEndPlayerSession": "Ar mhaith leat Jellyfin a dhúnadh síos ar {0}?",
"Console": "Consól",
"Continuing": "Ag leanúint ar aghaidh",
"HeaderError": "Earráid",
@@ -1832,7 +1832,7 @@
"LabelGroupShowsIntoCollections": "Taispeántais ghrúpa i mbailiúcháin",
"LimitSegmentLength": "Úsáid codanna HLS níos giorra",
"LimitSegmentLengthHelp": "D’fhéadfadh sé go gcuideodh cumasú an rogha seo le cosc a chur ar an seinnteoir HLS dul i bhfostú le linn cuardaigh ar ghléasanna áirithe, amhail teilifíseáin webOS.",
- "Retry": "Bain triail eile as",
+ "Retry": "Déan iarracht arís",
"RetryWithGlobalSearch": "Déan iarracht eile le cuardach domhanda",
"ViewSettings": "Féach ar shocruithe",
"CustomSplashScreenSize": "Ba chóir go mbeadh íomhánna saincheaptha i gcóimheas gné 16x9 agus méid íosta 1920x1080.",
@@ -1873,5 +1873,9 @@
"TranscodingLoadError": "Theip ar shocruithe traschódaithe a lódáil",
"BackupsPageLoadError": "Theip ar an leathanach cúltaca a lódáil",
"ButtonCreateBackup": "Cruthaigh Cúltaca",
- "ConfirmDeleteRepository": "Scrios an stórlann?"
+ "ConfirmDeleteRepository": "Scrios an stórlann?",
+ "LiveTVPageLoadError": "Theip ar an leathanach taifeadtaí a lódáil",
+ "ConnectAnyway": "Ceangail Ar Aon Slí",
+ "HeaderServerMismatch": "Mí-chomhoiriúnacht Freastalaí",
+ "MessageServerMismatch": "Ní hé an freastalaí atá tú ag ceangal leis an bhfreastalaí céanna a raibh tú ceangailte leis roimhe seo ag an seoladh seo. Más rud é go bhfuiltear ag súil leis seo, roghnaigh \"Ceangail ar aon nós\". Seachas sin, d'fhéadfadh do nasc nó an freastalaí a bheith i mbaol."
}
From 11c0ab768cb4a839abab744137659cf221ab3077 Mon Sep 17 00:00:00 2001
From: Milo Ivir
Date: Mon, 7 Jul 2025 15:42:43 -0400
Subject: [PATCH 633/645] Translated using Weblate (Croatian) Translation:
Jellyfin/Jellyfin Web Translate-URL:
https://translate.jellyfin.org/projects/jellyfin/jellyfin-web/hr/
---
src/strings/hr.json | 6 +++---
1 file changed, 3 insertions(+), 3 deletions(-)
diff --git a/src/strings/hr.json b/src/strings/hr.json
index 04e7bcef7..1f3693399 100644
--- a/src/strings/hr.json
+++ b/src/strings/hr.json
@@ -2,7 +2,7 @@
"Actor": "Glumac",
"Add": "Dodaj",
"AddToCollection": "Dodaj u kolekciju",
- "AddToPlaylist": "Dodaj popisu za reprodukciju",
+ "AddToPlaylist": "Dodaj u popis za reprodukciju",
"AdditionalNotificationServices": "Pretražite katalog dodataka kako bi instalirali dodatne servise za obavijesti.",
"AllChannels": "Svi kanali",
"AllEpisodes": "Sve epizode",
@@ -276,7 +276,7 @@
"LabelAlbumArtists": "Izvođači albuma",
"LabelAllowHWTranscoding": "Dopusti hardversko konvertiranje",
"LabelAppName": "Ime aplikacije",
- "LabelAppNameExample": "Primjer: Sickbeard, Sonarr",
+ "LabelAppNameExample": "Ime za identifikaciju API ključeva koje ljudi mogu pročitati. Ova postavka neće utjecati na funkcionalnost.",
"LabelArtists": "Izvođači",
"LabelArtistsHelp": "Odvoji višestruke izvođače sa ; (točka sa zarezom).",
"LabelAudioLanguagePreference": "Postavke audio jezika",
@@ -1458,7 +1458,7 @@
"LabelKodiMetadataUserHelp": "Spremite podatke o gledanju u NFO datoteke za potrebe drugih primjena.",
"LabelParentNumber": "Broj roditelja",
"LabelTonemappingPeak": "Vrh tonskog preslikavanja",
- "LabelPublishedServerUriHelp": "Zaobiđi URI koji koristi Jellyfin, na osnovu sučelja ili klijentske IP adrese.",
+ "LabelPublishedServerUriHelp": "Zaobiđi URI koji koristi Jellyfin, na osnovu sučelja ili klijentske IP adrese. Na primjer: internal=http://jellyfin.example.com, external=https://jellyfin.example.com ili all=https://jellyfin.example.com",
"UseEpisodeImagesInNextUpHelp": "Odjeljci 'Sljedeće' i 'Nastavi s gledanjem' koristit će slike epizoda kao minijature umjesto primarne minijature emisije.",
"PreferEmbeddedTitlesOverFileNamesHelp": "Odredite naslov prikaza koji će se koristiti kada nisu dostupni internetski metapodaci ili lokalni metapodaci.",
"SubtitleAppearanceSettingsDisclaimer": "Sljedeće postavke ne odnose se na gore navedene grafičke titlove ili ASS/SSA titlove koji imaju vlastite stilove.",
From 2afb355fd11ed5e2c39af7d5c6d9d609f6cd86d1 Mon Sep 17 00:00:00 2001
From: Acrotos
Date: Mon, 7 Jul 2025 14:43:57 -0400
Subject: [PATCH 634/645] Translated using Weblate (Romanian) Translation:
Jellyfin/Jellyfin Web Translate-URL:
https://translate.jellyfin.org/projects/jellyfin/jellyfin-web/ro/
---
src/strings/ro.json | 5 ++++-
1 file changed, 4 insertions(+), 1 deletion(-)
diff --git a/src/strings/ro.json b/src/strings/ro.json
index 9400d154a..29115ce5d 100644
--- a/src/strings/ro.json
+++ b/src/strings/ro.json
@@ -2062,5 +2062,8 @@
"BackupsPageLoadError": "A eșuat să încarce pagina de copii de rezervă",
"ButtonCreateBackup": "Crează copie de rezervă",
"LabelImageCache": "Cache imagine",
- "LiveTVPageLoadError": "Nu s-a putut incarca pagina de înregistrari"
+ "LiveTVPageLoadError": "Nu s-a putut incarca pagina de înregistrari",
+ "MessageServerMismatch": "Serverul la care va conectati nu este acelasi server la care v-ati conectat anterior la aceasta adresa. Daca acest lucru este de asteptat, va rugam sa selectati \"Conectati oricum\". In caz contrar, conexiunea sau serverul ar putea fi compromise.",
+ "ConnectAnyway": "Conecteaza Oricum",
+ "HeaderServerMismatch": "Serverul nu corespunde"
}
From 21e2339eb49d645b9cea476c5ba89ed32eb2266d Mon Sep 17 00:00:00 2001
From: Oatavandi
Date: Mon, 7 Jul 2025 22:02:16 -0400
Subject: [PATCH 635/645] Translated using Weblate (Tamil) Translation:
Jellyfin/Jellyfin Web Translate-URL:
https://translate.jellyfin.org/projects/jellyfin/jellyfin-web/ta/
---
src/strings/ta.json | 5 ++++-
1 file changed, 4 insertions(+), 1 deletion(-)
diff --git a/src/strings/ta.json b/src/strings/ta.json
index 52a898b42..fa1152cac 100644
--- a/src/strings/ta.json
+++ b/src/strings/ta.json
@@ -2071,5 +2071,8 @@
"LabelImageCache": "பட தற்காலிக சேமிப்பு",
"LabelInstalled": "நிறுவப்பட்டது",
"LabelNotInstalled": "நிறுவப்படவில்லை",
- "LastActive": "கடைசியாகச் செயல்பட்டது"
+ "LastActive": "கடைசியாகச் செயல்பட்டது",
+ "ConnectAnyway": "எப்படியும் இணை",
+ "HeaderServerMismatch": "சேவையகம் பொருந்தவில்லை",
+ "MessageServerMismatch": "நீங்கள் இணைக்கும் சேவையகம், இந்த முகவரியில் நீங்கள் முன்பு இணைத்த அதே சேவையகம் அல்ல. இது எதிர்பார்க்கப்பட்டால், தயவுசெய்து \"எப்படியும் இணை\" என்பதைத் தேர்ந்தெடுக்கவும். இல்லையெனில், உங்கள் இணைப்பு அல்லது சேவையகம் பாதிக்கப்படலாம்."
}
From a8bfe22534d2be5bc4069870c4aef4a4a2156220 Mon Sep 17 00:00:00 2001
From: Wregaan
Date: Tue, 8 Jul 2025 05:23:18 -0400
Subject: [PATCH 636/645] Translated using Weblate (Hungarian) Translation:
Jellyfin/Jellyfin Web Translate-URL:
https://translate.jellyfin.org/projects/jellyfin/jellyfin-web/hu/
---
src/strings/hu.json | 7 +++++--
1 file changed, 5 insertions(+), 2 deletions(-)
diff --git a/src/strings/hu.json b/src/strings/hu.json
index 30805ad47..2e17b9499 100644
--- a/src/strings/hu.json
+++ b/src/strings/hu.json
@@ -492,7 +492,7 @@
"ColorSpace": "Színtér",
"ColorTransfer": "Színátvitel",
"Composer": "Zeneszerző",
- "ConfigureDateAdded": "Állítsa be az Irányítópult > Médiatárak > Megjelenítés menüpontban, hogy a „Hozzáadás dátuma” metaadat hogyan legyen meghatározva.",
+ "ConfigureDateAdded": "Állítsa be az Irányítópult > Médiatárak > Megjelenítés menüpontban, hogy a „Hozzáadás dátuma” metaadat hogyan legyen meghatározva",
"ConfirmDeleteImage": "Kép törlése?",
"ConfirmDeleteItem": "Az elem törlésével az törlődni fog a fájlrendszerből és a médiakönyvtárból is. Biztosan folytatni akarod?",
"ConfirmDeleteItems": "Az elemek törlésével azok törlődni fognak a fájlrendszerből és a médiakönyvtárból is. Biztosan folytatni akarod?",
@@ -2057,5 +2057,8 @@
"MessageRestoreDisclaimer": "FIGYELEM: Ön egy korábbi mentés visszaállítására készül. A művelet alatt a szerver nem lesz használható, és a mentés óta létrehozott minden új adat elvész.",
"RepositoriesPageLoadError": "Tárolók betöltése sikertelen",
"LabelProgramData": "Alkalmazás adatai",
- "LabelImageCache": "Képgyorsítótár"
+ "LabelImageCache": "Képgyorsítótár",
+ "ConnectAnyway": "Kapcsolódás mindenképp",
+ "HeaderServerMismatch": "Szerver eltérés",
+ "MessageServerMismatch": "A szerver melyre most próbál csatlakozni, nem egyezik meg az előző szerverrel mely ezen a címen volt található. Ha ez várható volt, kattintson a \"Kapcsolódás mindenképp\" gombra. Ellenkező esetben a szerver elérése kompromittálódott."
}
From 6d70ec2af03c167a030f82de98e82b7c860f90ef Mon Sep 17 00:00:00 2001
From: Gargotaire
Date: Tue, 8 Jul 2025 14:44:22 -0400
Subject: [PATCH 637/645] Translated using Weblate (Catalan) Translation:
Jellyfin/Jellyfin Web Translate-URL:
https://translate.jellyfin.org/projects/jellyfin/jellyfin-web/ca/
---
src/strings/ca.json | 38 ++++++++++++++++++++------------------
1 file changed, 20 insertions(+), 18 deletions(-)
diff --git a/src/strings/ca.json b/src/strings/ca.json
index 7bafca558..2448bf84d 100644
--- a/src/strings/ca.json
+++ b/src/strings/ca.json
@@ -124,7 +124,7 @@
"HeaderEasyPinCode": "Codi PIN Senzill",
"HeaderEditImages": "Edició d'imatges",
"HeaderEnabledFields": "Camps habilitats",
- "HeaderExternalIds": "IDs externs",
+ "HeaderExternalIds": "ID externs",
"HeaderFeatureAccess": "Accés a funcions",
"HeaderFetchImages": "Explora imatges",
"HeaderFrequentlyPlayed": "Reproduït freqüentment",
@@ -227,7 +227,7 @@
"LabelCriticRating": "Valoració de la crítica",
"LabelCurrentPassword": "Contrasenya actual",
"LabelCustomCss": "Codi CSS propi",
- "LabelCustomCssHelp": "Apliqueu els vostres propi codi CSS personalitzat per al tema/marca a la interfície web.",
+ "LabelCustomCssHelp": "Apliqueu el vostre propi codi CSS personalitzat per al tema/marca a la interfície web.",
"LabelDashboardTheme": "Tema del tauler de control del servidor",
"LabelDateAdded": "Data afegit",
"LabelDay": "Dia de la setmana",
@@ -729,7 +729,7 @@
"DirectStreaming": "Transmissió directa",
"DirectStreamHelp2": "La potència consumida per la transmissió directa normalment depèn del perfil d'àudio. Només el flux de vídeo no té pèrdues.",
"DirectPlaying": "Reproducció directe",
- "DetectingDevices": "S'està detectant dispositius",
+ "DetectingDevices": "S'estan detectant dispositius",
"Descending": "Descendent",
"DeleteUserConfirmation": "N'esteu segur, que voleu eliminar aquest usuari?",
"DeleteDeviceConfirmation": "N'esteu segur, que voleu suprimir aquest dispositiu? Tornarà a aparèixer la pròxima vegada que un usuari iniciï la sessió amb aquest.",
@@ -900,7 +900,7 @@
"UseDoubleRateDeinterlacingHelp": "Aquesta configuració fa servir la velocitat de camp quan en desentrellaçar, sovint referit com el desentrellaçat bob, que duplica la taxa de fotogrames de vídeo per a proporcionar un moviment continu com el que es veu en mirar un vídeo entrellaçat en un televisor.",
"UseDoubleRateDeinterlacing": "El doble de fotogrames per segon en entrellaçar",
"Upload": "Puja",
- "UnsupportedPlayback": "Jellyfin no pot desxifrar el contingut protegit per DRM, però tot el contingut serà tractat independentment, incloent títols protegits. Alguns fitxers poden aparèixer completament negres degut al xifrat o altres característiques no compatibles, com ara títols interactius.",
+ "UnsupportedPlayback": "Jellyfin no pot desxifrar el contingut protegit per DRM, però tot el contingut serà tractat independentment, incloent-hi títols protegits. Alguns fitxers poden aparèixer completament negres degut al xifrat o altres característiques no compatibles, com ara títols interactius.",
"Unplayed": "No reproduït",
"Uniform": "Uniforme",
"TvLibraryHelp": "Revisa la {0}guia de noms de la programació de televisió{1}.",
@@ -983,7 +983,7 @@
"Movie": "Pel·lícula",
"MoreMediaInfo": "Informació multimèdia",
"MillisecondsUnit": "ms",
- "MetadataSettingChangeHelp": "Canviar la configuració de les metadades afectarà al nou contingut afegit a partir d'ara. Per s actualitzar el contingut existent, obriu la pantalla de detalls i feu clic al botó \"Actualitza\" o actualitzeu-lo utilitzant el \"Gestor de metadades\".",
+ "MetadataSettingChangeHelp": "Canviar la configuració de les metadades afectarà el nou contingut afegit a partir d'ara. Per s actualitzar el contingut existent, obriu la pantalla de detalls i feu clic al botó \"Actualitza\" o actualitzeu-lo utilitzant el \"Gestor de metadades\".",
"Metadata": "Metadades",
"MessageUnsetContentHelp": "El contingut es mostrarà com a directoris simples. Per a obtenir els millors resultats feu servir el gestor de metadades per a establir els tipus de contingut dels subdirectoris.",
"MessageUnableToConnectToServer": "No es pot connectar amb el servidor seleccionat en aquest moment. Assegureu-vos que estigui funcionant i torneu a intentar-ho.",
@@ -1071,7 +1071,7 @@
"ListPaging": "{0} - {1} de {2}",
"List": "Llista",
"LeaveBlankToNotSetAPassword": "Podeu deixar aquest camp en blanc per a no establir cap contrasenya.",
- "LearnHowYouCanContribute": "Aprengueu com hi podeu contribuir.",
+ "LearnHowYouCanContribute": "Apreneu com hi podeu contribuir.",
"LastSeen": "Última activitat {0}",
"Large": "Gran",
"LanNetworksHelp": "Llista separada per comes d'adreces IP o IP/netmask que seran considerades part de la xarxa local a l'hora de fer complir les restriccions d'amplada de banda. Si s'estableix, totes les altres adreces IP es consideraran part de la xarxa externa i estaran subjectes a les restriccions d'amplada de banda externs. Si es deixa en blanc, només la subxarxa del servidor es considerarà part a la xarxa local.",
@@ -1102,7 +1102,7 @@
"LabelTVHomeScreen": "Pantalla d'inici en mode televisió",
"LabelTunerType": "Tipus de sintonitzador",
"LabelTunerIpAddress": "Adreça IP del sintonitzador",
- "LabelTranscodingThreadCountHelp": "Seleccioneu el nombre màxim de fils que pot utilitzar la transcodificació. La reducció del nombre de fils disminuirà l'ús de la CPU, però es possible que no transcodifiqui prou ràpid per a una reproducció fluïda.",
+ "LabelTranscodingThreadCountHelp": "Seleccioneu el nombre màxim de fils que pot utilitzar la transcodificació. La reducció del nombre de fils disminuirà l'ús de la CPU, però és possible que no transcodifiqui prou de pressa per a una reproducció fluïda.",
"LabelTranscodingThreadCount": "Nombre de fils de la transcodificació",
"LabelTranscodingProgress": "Progrés de la transcodificació",
"LabelTranscodingFramerate": "Velocitat de transcodificació",
@@ -1194,7 +1194,7 @@
"LabelProfileContainersHelp": "Separats per comes. Es pot deixar buit per aplicar a tots els contenidors.",
"LabelProfileCodecsHelp": "Separats per comes. Es pot deixar buit per aplicar a tots els còdecs.",
"LabelPostProcessorArgumentsHelp": "Fes servir {path} com a la ruta del fitxer d'enregistrament.",
- "LabelPostProcessorArguments": "Arguments de la línia de comandes post-processador",
+ "LabelPostProcessorArguments": "Arguments de la línia d'ordres postprocessador",
"LabelPostProcessor": "Aplicació de post-processament",
"LabelPleaseRestart": "Els canvis tindran efecte després de tornar a carregar el client web manualment.",
"LabelPlayMethod": "Mètode de reproducció",
@@ -1206,7 +1206,7 @@
"LabelParentalRating": "Classificació parental",
"LabelOptionalNetworkPathHelp": "Si aquesta carpeta es comparteix a la xarxa, el subministrament de la ruta del recurs compartit de xarxa pot permetre als clients accedir directament als fitxers dels continguts multimèdia des d'altres dispositius. Per exemple, {0} o {1}.",
"LabelOptionalNetworkPath": "Directori de xarxa compartida",
- "LabelOpenclDeviceHelp": "Aquest és el dispositiu OpenCL que s'utilitza pel mapatge de tons. El costat esquerra del punt és el número de la plataforma, la dreta és el número de dispositiu a la plataforma. El valor per defecte és 0,0. Es requereix que el fitxer de l'aplicació FFmpeg que conté el mètode d'acceleració de maquinari OpenCL.",
+ "LabelOpenclDeviceHelp": "Aquest és el dispositiu OpenCL que s'utilitza per al mapatge de tons. El costat esquerra del punt és el número de la plataforma, la dreta és el número de dispositiu a la plataforma. El valor per defecte és 0,0. Es requereix que el fitxer de l'aplicació FFmpeg que conté el mètode d'acceleració de maquinari OpenCL.",
"LabelOpenclDevice": "Dispositiu OpenCL",
"LabelNumberOfGuideDaysHelp": "Descarregar les dades de més dies de la guia ofereix la possibilitat de programar amb més antelació i veure més llistats, però també trigarà més temps a l'hora de descarregar. \"Auto\" triarà en funció del nombre de canals.",
"LabelNewsCategories": "Categories de notícies",
@@ -1237,7 +1237,7 @@
"LabelLibraryPageSizeHelp": "Estableix la quantitat d'elements a mostrar en una pàgina de la mediateca. Es posa a 0 per tal de desactivar la paginació.",
"LabelLibraryPageSize": "Mida de la pàgina de la mediateca",
"LabelLanNetworks": "Xarxes LAN",
- "LabelKodiMetadataUserHelp": "Desa les dades de visionat en arxius NFO de manera que d'altres aplicacions les puguin fer servir.",
+ "LabelKodiMetadataUserHelp": "Desa les dades de visionament en arxius NFO de manera que d'altres aplicacions les puguin fer servir.",
"LabelKodiMetadataUser": "Desa les dades de visualització d'usuari en fitxers NFO per a",
"LabelKodiMetadataSaveImagePathsHelp": "Això està recomanat si teniu fitxers d'imatge que no s'ajusten a les directrius de Kodi.",
"LabelKodiMetadataEnableExtraThumbsHelp": "Quan es descarreguin imatges, es poden guardar tant a \"extrafanart\" com a \"extrathumbs\" per a assegurar la màxima compatibilitat amb les aparences de Kodi.",
@@ -1267,7 +1267,7 @@
"LabelFolder": "Directori",
"LabelFileOrUrl": "Fitxer o URL",
"LabelffmpegPath": "Ruta de FFmpeg",
- "LabelExtractChaptersDuringLibraryScanHelp": "Genera imatges de capítols quan els vídeos són importats durant l'escaneig de la mediateca. Desmarcant, les imatges es descarregaran quan s'executi la tasca programada, permetent un escaneig més ràpid de la mediateca.",
+ "LabelExtractChaptersDuringLibraryScanHelp": "Genera imatges de capítols quan els vídeos són importats durant l'escaneig de la mediateca. Desmarcant, les imatges es descarregaran quan s'executi la tasca programada, cosa que permet un escaneig més ràpid de la mediateca.",
"LabelEncoderPreset": "Codificació preestablert",
"LabelEnableSSDPTracing": "Habilitar rastreig SSDP",
"LabelEnableSingleImageInDidlLimitHelp": "Alguns dispositius no es mostri correctament si diverses imatges estan integrats dins de DIDL.",
@@ -1429,7 +1429,7 @@
"PersonRole": "com {0}",
"Person": "Persona",
"PerfectMatch": "Combinació perfecta",
- "PathNotFound": "La ruta no s'ha pogut trobat. Assegureu-vos que la ruta és vàlida i torneu-ho a intentar.",
+ "PathNotFound": "No s'ha pogut trobar el camí. Assegureu-vos que el camí és vàlid i torneu-ho a intentar.",
"PasswordResetProviderHelp": "Escollir un proveïdor de restabliment de contrasenya que s'utilitzarà quan l'usuari sol·liciti un restabliment de contrasenya.",
"PackageInstallFailed": "Ha fallat la instal·lació de {0} (versió {1}).",
"PackageInstallCompleted": "S'ha acabat la instal·lació de {0} (versió {1}).",
@@ -1510,7 +1510,7 @@
"HeaderRemoveMediaFolder": "Elimina el directori de continguts multimèdia",
"HeaderRemoteAccessSettings": "Configuració de l'accés remot",
"HeaderRecordingPostProcessing": "Post-processament de l'enregistrament",
- "HeaderPortRanges": "Firewall i configuració del proxy",
+ "HeaderPortRanges": "Configuració del tallafoc i el proxy",
"HeaderPluginInstallation": "Instal·lació de complements",
"HeaderPlayOn": "Reprodueix a",
"HeaderPlayback": "Reproducció dels continguts multimèdia",
@@ -1761,7 +1761,7 @@
"SearchResultsEmpty": "Ups! No s'han trobat cap resultat per \"{0}\"",
"Studio": "Estudi",
"UnknownError": "S'ha produït un error desconegut.",
- "PleaseConfirmRepositoryInstallation": "Si us plau, pitgeu OK per confirmar que heu llegit el text anterior i desitgeu continuar amb la instal·lació del repositori de complements.",
+ "PleaseConfirmRepositoryInstallation": "Si us plau, pitgeu D'acord per confirmar que heu llegit el text anterior i desitgeu continuar amb la instal·lació del repositori de complements.",
"Unknown": "Desconegut",
"SelectAudioNormalizationHelp": "Guany de pista - ajusta el volum de cada pista perquè la reproducció soni al mateix volum. Guany d'àlbum - ajusta el volum de totes les pistes d'un àlbum, mantenint el rang dinàmic de l'àlbum. Canviant entre “Apagat” i altres opcions requereix reiniciar la reproducció actual.",
"HeaderConfirmRepositoryInstallation": "Confirmeu la instal·lació del repositori de complements",
@@ -1938,7 +1938,7 @@
"HeaderNewPlaylist": "Llista de reproducció nova",
"AlwaysRemuxFlacAudioFilesHelp": "Si el vostre navegador rebutja reproduir certs arxius o calcula les marques de temps de manera imprecisa, activeu això com a solució alternativa.",
"AlwaysRemuxMp3AudioFilesHelp": "Si el teu navegador calcula les marques de temps de certs arxius de manera imprecisa, activa això com a solució alternativa.",
- "EnableHi10pHelp": "Habilita per a evitar ls transcodificació de vídeos en H.264 10-bits. Deshabiliteu-ho si la reproducció del vídeo mostra fotogrames buits.",
+ "EnableHi10pHelp": "Habilita per a evitar la transcodificació de vídeos en H.264 10-bits. Deshabiliteu-ho si la reproducció del vídeo mostra fotogrames buits.",
"DateModified": "Data de modificació",
"HeaderAudioAdvanced": "Àudio avançat",
"LabelAllowFmp4TranscodingContainer": "Permet el contenidor de transcodificació fMP4",
@@ -1956,7 +1956,7 @@
"MessageCancelTimerError": "S'ha produït un error cancel·lant el temporitzador",
"MoviesAndShows": "Pel·lícules i sèries",
"LabelLyricDownloaders": "Descarregador de lletres",
- "LabelQsvDeviceHelp": "Específica el dispositiu Intel QSV en els sistemes amb múltiples GPU. En sistemes Linux, això és un node de renderitzat, per exemple, /dev/dri/renderD128. En Windows, és un índex de dispositiu que comença al 0. Deixeu-ho en blanc a no ser que sapigueu què esteu fent.",
+ "LabelQsvDeviceHelp": "Específica el dispositiu Intel QSV en els sistemes amb múltiples GPU. En sistemes Linux, això és un node de renderitzat, per exemple, /dev/dri/renderD128. En Windows, és un índex de dispositiu que comença al 0. Deixeu-ho en blanc, llevat que sapigueu què esteu fent.",
"LabelScreensaverTime": "Temps de l'estalvi de pantalla",
"LabelScreensaverTimeHelp": "La quantitat de temps, en segons d'inactivitat, necessària per activar l'estalvi de pantalla.",
"MediaSegmentAction.AskToSkip": "Sol·licita saltar",
@@ -1984,7 +1984,7 @@
"UseCustomTagDelimitersHelp": "Separa les etiquetes d'artista/gènere amb caràcters personalitzats.",
"RenderPgsSubtitle": "Renderitzat experimental de subtítols PGS",
"VideoCodecTagNotSupported": "L'etiqueta del còdec de vídeo no és compatible",
- "RenderPgsSubtitleHelp": "Determina si el client ha de renderitzar els subtítols PGS enlloc de fer servir els subtítols incrustats. Això pot evitar la transcodificació de part del servidor a canvi del rendiment de renderitzat de part del client.",
+ "RenderPgsSubtitleHelp": "Determina si el client ha de renderitzar els subtítols PGS en lloc de fer servir els subtítols incrustats. Això pot evitar la transcodificació de part del servidor a canvi del rendiment de renderitzat de part del client.",
"FallbackMaxStreamingBitrateHelp": "La transmissió màxima de bits s'usa com a alternativa quan ffprobe no pot determinar el flux de l'origen. Això ajuda a prevenir que els clients sol·licitin un bitrate de transcodificació excessivament alt, el qual provocaria errors en el reproductor o sobrecarregaria el codificador.",
"HeaderNextEpisode": "Episodi següent",
"HeaderNextVideo": "Vídeo següent",
@@ -2059,5 +2059,7 @@
"ConfirmDeleteRepository": "Desitgeu eliminar el repositori?",
"DeleteRepositoryConfirmation": "N'esteu segur, de voler esborrar aquest repositori?",
"LiveTVPageLoadError": "La càrrega de la pàgina de gravacions ha fallat",
- "ConnectAnyway": "Connectar de totes maneres"
+ "ConnectAnyway": "Connecta de totes maneres",
+ "HeaderServerMismatch": "Discrepància amb el servidor",
+ "MessageServerMismatch": "El servidor al qual us esteu connectant no és el mateix servidor al qual us vau connectar anteriorment amb aquesta adreça. Si ja s'esperava això, seleccioneu \"Connecta igualment\". En cas contrari, la vostra connexió o el servidor podrien estar compromesos."
}
From c9920e6206cb09e85d7fc61431b9e8b030710ca3 Mon Sep 17 00:00:00 2001
From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com>
Date: Tue, 8 Jul 2025 21:54:41 +0000
Subject: [PATCH 638/645] Update Linters
---
package-lock.json | 765 ++++++++++++++++++++++++++++++++++------------
package.json | 10 +-
2 files changed, 575 insertions(+), 200 deletions(-)
diff --git a/package-lock.json b/package-lock.json
index ae75a3565..8535cf57a 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -73,7 +73,7 @@
"@babel/preset-env": "7.27.2",
"@babel/preset-react": "7.27.1",
"@eslint-community/eslint-plugin-eslint-comments": "4.5.0",
- "@eslint/js": "9.29.0",
+ "@eslint/js": "9.30.1",
"@stylistic/eslint-plugin": "4.4.1",
"@stylistic/stylelint-plugin": "3.1.2",
"@types/dompurify": "3.0.5",
@@ -85,7 +85,7 @@
"@types/react-dom": "18.3.7",
"@types/react-lazy-load-image-component": "1.6.4",
"@types/sortablejs": "1.15.8",
- "@typescript-eslint/parser": "8.34.1",
+ "@typescript-eslint/parser": "8.35.1",
"@uupaa/dynamic-import-polyfill": "1.0.2",
"@vitest/coverage-v8": "3.2.4",
"autoprefixer": "10.4.21",
@@ -97,13 +97,13 @@
"css-loader": "7.1.2",
"cssnano": "7.0.7",
"es-check": "9.1.4",
- "eslint": "9.29.0",
+ "eslint": "9.30.1",
"eslint-plugin-compat": "6.0.2",
- "eslint-plugin-import": "2.31.0",
+ "eslint-plugin-import": "2.32.0",
"eslint-plugin-jsx-a11y": "6.10.2",
"eslint-plugin-react": "7.37.5",
"eslint-plugin-react-hooks": "5.2.0",
- "eslint-plugin-sonarjs": "3.0.3",
+ "eslint-plugin-sonarjs": "3.0.4",
"expose-loader": "5.0.1",
"fast-glob": "3.3.3",
"fork-ts-checker-webpack-plugin": "9.1.0",
@@ -3746,9 +3746,9 @@
}
},
"node_modules/@eslint/config-array": {
- "version": "0.20.1",
- "resolved": "https://registry.npmjs.org/@eslint/config-array/-/config-array-0.20.1.tgz",
- "integrity": "sha512-OL0RJzC/CBzli0DrrR31qzj6d6i6Mm3HByuhflhl4LOBiWxN+3i6/t/ZQQNii4tjksXi8r2CRW1wMpWA2ULUEw==",
+ "version": "0.21.0",
+ "resolved": "https://registry.npmjs.org/@eslint/config-array/-/config-array-0.21.0.tgz",
+ "integrity": "sha512-ENIdc4iLu0d93HeYirvKmrzshzofPw6VkZRKQGe9Nv46ZnWUzcF1xV01dcvEg/1wXUR61OmmlSfyeyO7EvjLxQ==",
"dev": true,
"license": "Apache-2.0",
"dependencies": {
@@ -3761,9 +3761,9 @@
}
},
"node_modules/@eslint/config-helpers": {
- "version": "0.2.2",
- "resolved": "https://registry.npmjs.org/@eslint/config-helpers/-/config-helpers-0.2.2.tgz",
- "integrity": "sha512-+GPzk8PlG0sPpzdU5ZvIRMPidzAnZDl/s9L+y13iodqvb8leL53bTannOrQ/Im7UkpsmFU5Ily5U60LWixnmLg==",
+ "version": "0.3.0",
+ "resolved": "https://registry.npmjs.org/@eslint/config-helpers/-/config-helpers-0.3.0.tgz",
+ "integrity": "sha512-ViuymvFmcJi04qdZeDc2whTHryouGcDlaxPqarTD0ZE10ISpxGUVZGZDx4w01upyIynL3iu6IXH2bS1NhclQMw==",
"dev": true,
"license": "Apache-2.0",
"engines": {
@@ -3886,9 +3886,9 @@
}
},
"node_modules/@eslint/js": {
- "version": "9.29.0",
- "resolved": "https://registry.npmjs.org/@eslint/js/-/js-9.29.0.tgz",
- "integrity": "sha512-3PIF4cBw/y+1u2EazflInpV+lYsSG0aByVIQzAgb1m1MhHFSbqTyNqtBKHgWf/9Ykud+DhILS9EGkmekVhbKoQ==",
+ "version": "9.30.1",
+ "resolved": "https://registry.npmjs.org/@eslint/js/-/js-9.30.1.tgz",
+ "integrity": "sha512-zXhuECFlyep42KZUhWjfvsmXGX39W8K8LFb8AWXM9gSV9dQB+MrJGLKvW6Zw0Ggnbpw0VHTtrhFXYe3Gym18jg==",
"dev": true,
"license": "MIT",
"engines": {
@@ -6082,16 +6082,16 @@
}
},
"node_modules/@typescript-eslint/parser": {
- "version": "8.34.1",
- "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-8.34.1.tgz",
- "integrity": "sha512-4O3idHxhyzjClSMJ0a29AcoK0+YwnEqzI6oz3vlRf3xw0zbzt15MzXwItOlnr5nIth6zlY2RENLsOPvhyrKAQA==",
+ "version": "8.35.1",
+ "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-8.35.1.tgz",
+ "integrity": "sha512-3MyiDfrfLeK06bi/g9DqJxP5pV74LNv4rFTyvGDmT3x2p1yp1lOd+qYZfiRPIOf/oON+WRZR5wxxuF85qOar+w==",
"dev": true,
"license": "MIT",
"dependencies": {
- "@typescript-eslint/scope-manager": "8.34.1",
- "@typescript-eslint/types": "8.34.1",
- "@typescript-eslint/typescript-estree": "8.34.1",
- "@typescript-eslint/visitor-keys": "8.34.1",
+ "@typescript-eslint/scope-manager": "8.35.1",
+ "@typescript-eslint/types": "8.35.1",
+ "@typescript-eslint/typescript-estree": "8.35.1",
+ "@typescript-eslint/visitor-keys": "8.35.1",
"debug": "^4.3.4"
},
"engines": {
@@ -6106,6 +6106,176 @@
"typescript": ">=4.8.4 <5.9.0"
}
},
+ "node_modules/@typescript-eslint/parser/node_modules/@typescript-eslint/project-service": {
+ "version": "8.35.1",
+ "resolved": "https://registry.npmjs.org/@typescript-eslint/project-service/-/project-service-8.35.1.tgz",
+ "integrity": "sha512-VYxn/5LOpVxADAuP3NrnxxHYfzVtQzLKeldIhDhzC8UHaiQvYlXvKuVho1qLduFbJjjy5U5bkGwa3rUGUb1Q6Q==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@typescript-eslint/tsconfig-utils": "^8.35.1",
+ "@typescript-eslint/types": "^8.35.1",
+ "debug": "^4.3.4"
+ },
+ "engines": {
+ "node": "^18.18.0 || ^20.9.0 || >=21.1.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/typescript-eslint"
+ },
+ "peerDependencies": {
+ "typescript": ">=4.8.4 <5.9.0"
+ }
+ },
+ "node_modules/@typescript-eslint/parser/node_modules/@typescript-eslint/scope-manager": {
+ "version": "8.35.1",
+ "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-8.35.1.tgz",
+ "integrity": "sha512-s/Bpd4i7ht2934nG+UoSPlYXd08KYz3bmjLEb7Ye1UVob0d1ENiT3lY8bsCmik4RqfSbPw9xJJHbugpPpP5JUg==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@typescript-eslint/types": "8.35.1",
+ "@typescript-eslint/visitor-keys": "8.35.1"
+ },
+ "engines": {
+ "node": "^18.18.0 || ^20.9.0 || >=21.1.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/typescript-eslint"
+ }
+ },
+ "node_modules/@typescript-eslint/parser/node_modules/@typescript-eslint/tsconfig-utils": {
+ "version": "8.35.1",
+ "resolved": "https://registry.npmjs.org/@typescript-eslint/tsconfig-utils/-/tsconfig-utils-8.35.1.tgz",
+ "integrity": "sha512-K5/U9VmT9dTHoNowWZpz+/TObS3xqC5h0xAIjXPw+MNcKV9qg6eSatEnmeAwkjHijhACH0/N7bkhKvbt1+DXWQ==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": "^18.18.0 || ^20.9.0 || >=21.1.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/typescript-eslint"
+ },
+ "peerDependencies": {
+ "typescript": ">=4.8.4 <5.9.0"
+ }
+ },
+ "node_modules/@typescript-eslint/parser/node_modules/@typescript-eslint/types": {
+ "version": "8.35.1",
+ "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-8.35.1.tgz",
+ "integrity": "sha512-q/O04vVnKHfrrhNAscndAn1tuQhIkwqnaW+eu5waD5IPts2eX1dgJxgqcPx5BX109/qAz7IG6VrEPTOYKCNfRQ==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": "^18.18.0 || ^20.9.0 || >=21.1.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/typescript-eslint"
+ }
+ },
+ "node_modules/@typescript-eslint/parser/node_modules/@typescript-eslint/typescript-estree": {
+ "version": "8.35.1",
+ "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-8.35.1.tgz",
+ "integrity": "sha512-Vvpuvj4tBxIka7cPs6Y1uvM7gJgdF5Uu9F+mBJBPY4MhvjrjWGK4H0lVgLJd/8PWZ23FTqsaJaLEkBCFUk8Y9g==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@typescript-eslint/project-service": "8.35.1",
+ "@typescript-eslint/tsconfig-utils": "8.35.1",
+ "@typescript-eslint/types": "8.35.1",
+ "@typescript-eslint/visitor-keys": "8.35.1",
+ "debug": "^4.3.4",
+ "fast-glob": "^3.3.2",
+ "is-glob": "^4.0.3",
+ "minimatch": "^9.0.4",
+ "semver": "^7.6.0",
+ "ts-api-utils": "^2.1.0"
+ },
+ "engines": {
+ "node": "^18.18.0 || ^20.9.0 || >=21.1.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/typescript-eslint"
+ },
+ "peerDependencies": {
+ "typescript": ">=4.8.4 <5.9.0"
+ }
+ },
+ "node_modules/@typescript-eslint/parser/node_modules/@typescript-eslint/visitor-keys": {
+ "version": "8.35.1",
+ "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-8.35.1.tgz",
+ "integrity": "sha512-VRwixir4zBWCSTP/ljEo091lbpypz57PoeAQ9imjG+vbeof9LplljsL1mos4ccG6H9IjfrVGM359RozUnuFhpw==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@typescript-eslint/types": "8.35.1",
+ "eslint-visitor-keys": "^4.2.1"
+ },
+ "engines": {
+ "node": "^18.18.0 || ^20.9.0 || >=21.1.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/typescript-eslint"
+ }
+ },
+ "node_modules/@typescript-eslint/parser/node_modules/brace-expansion": {
+ "version": "2.0.2",
+ "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.2.tgz",
+ "integrity": "sha512-Jt0vHyM+jmUBqojB7E1NIYadt0vI0Qxjxd2TErW94wDz+E2LAm5vKMXXwg6ZZBTHPuUlDgQHKXvjGBdfcF1ZDQ==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "balanced-match": "^1.0.0"
+ }
+ },
+ "node_modules/@typescript-eslint/parser/node_modules/eslint-visitor-keys": {
+ "version": "4.2.1",
+ "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-4.2.1.tgz",
+ "integrity": "sha512-Uhdk5sfqcee/9H/rCOJikYz67o0a2Tw2hGRPOG2Y1R2dg7brRe1uG0yaNQDHu+TO/uQPF/5eCapvYSmHUjt7JQ==",
+ "dev": true,
+ "license": "Apache-2.0",
+ "engines": {
+ "node": "^18.18.0 || ^20.9.0 || >=21.1.0"
+ },
+ "funding": {
+ "url": "https://opencollective.com/eslint"
+ }
+ },
+ "node_modules/@typescript-eslint/parser/node_modules/minimatch": {
+ "version": "9.0.5",
+ "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.5.tgz",
+ "integrity": "sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==",
+ "dev": true,
+ "license": "ISC",
+ "dependencies": {
+ "brace-expansion": "^2.0.1"
+ },
+ "engines": {
+ "node": ">=16 || 14 >=14.17"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/isaacs"
+ }
+ },
+ "node_modules/@typescript-eslint/parser/node_modules/semver": {
+ "version": "7.7.2",
+ "resolved": "https://registry.npmjs.org/semver/-/semver-7.7.2.tgz",
+ "integrity": "sha512-RF0Fw+rO5AMf9MAyaRXI4AV0Ulj5lMHqVxxdSgiVbixSCXoEmmX/jk0CuJw4+3SqroYO9VoUh+HcuJivvtJemA==",
+ "dev": true,
+ "license": "ISC",
+ "bin": {
+ "semver": "bin/semver.js"
+ },
+ "engines": {
+ "node": ">=10"
+ }
+ },
"node_modules/@typescript-eslint/project-service": {
"version": "8.34.1",
"resolved": "https://registry.npmjs.org/@typescript-eslint/project-service/-/project-service-8.34.1.tgz",
@@ -6995,18 +7165,20 @@
}
},
"node_modules/array-includes": {
- "version": "3.1.8",
- "resolved": "https://registry.npmjs.org/array-includes/-/array-includes-3.1.8.tgz",
- "integrity": "sha512-itaWrbYbqpGXkGhZPGUulwnhVf5Hpy1xiCFsGqyIGglbBxmG5vSjxQen3/WGOjPpNEv1RtBLKxbmVXm8HpJStQ==",
+ "version": "3.1.9",
+ "resolved": "https://registry.npmjs.org/array-includes/-/array-includes-3.1.9.tgz",
+ "integrity": "sha512-FmeCCAenzH0KH381SPT5FZmiA/TmpndpcaShhfgEN9eCVjnFBqq3l1xrI42y8+PPLI6hypzou4GXw00WHmPBLQ==",
"dev": true,
"license": "MIT",
"dependencies": {
- "call-bind": "^1.0.7",
+ "call-bind": "^1.0.8",
+ "call-bound": "^1.0.4",
"define-properties": "^1.2.1",
- "es-abstract": "^1.23.2",
- "es-object-atoms": "^1.0.0",
- "get-intrinsic": "^1.2.4",
- "is-string": "^1.0.7"
+ "es-abstract": "^1.24.0",
+ "es-object-atoms": "^1.1.1",
+ "get-intrinsic": "^1.3.0",
+ "is-string": "^1.1.1",
+ "math-intrinsics": "^1.1.0"
},
"engines": {
"node": ">= 0.4"
@@ -7066,18 +7238,19 @@
}
},
"node_modules/array.prototype.findlastindex": {
- "version": "1.2.5",
- "resolved": "https://registry.npmjs.org/array.prototype.findlastindex/-/array.prototype.findlastindex-1.2.5.tgz",
- "integrity": "sha512-zfETvRFA8o7EiNn++N5f/kaCw221hrpGsDmcpndVupkPzEc1Wuf3VgC0qby1BbHs7f5DVYjgtEU2LLh5bqeGfQ==",
+ "version": "1.2.6",
+ "resolved": "https://registry.npmjs.org/array.prototype.findlastindex/-/array.prototype.findlastindex-1.2.6.tgz",
+ "integrity": "sha512-F/TKATkzseUExPlfvmwQKGITM3DGTK+vkAsCZoDc5daVygbJBnjEUCbgkAvVFsgfXfX4YIqZ/27G3k3tdXrTxQ==",
"dev": true,
"license": "MIT",
"dependencies": {
- "call-bind": "^1.0.7",
+ "call-bind": "^1.0.8",
+ "call-bound": "^1.0.4",
"define-properties": "^1.2.1",
- "es-abstract": "^1.23.2",
+ "es-abstract": "^1.23.9",
"es-errors": "^1.3.0",
- "es-object-atoms": "^1.0.0",
- "es-shim-unscopables": "^1.0.2"
+ "es-object-atoms": "^1.1.1",
+ "es-shim-unscopables": "^1.1.0"
},
"engines": {
"node": ">= 0.4"
@@ -7087,15 +7260,16 @@
}
},
"node_modules/array.prototype.flat": {
- "version": "1.3.2",
- "resolved": "https://registry.npmjs.org/array.prototype.flat/-/array.prototype.flat-1.3.2.tgz",
- "integrity": "sha512-djYB+Zx2vLewY8RWlNCUdHjDXs2XOgm602S9E7P/UpHgfeHL00cRiIF+IN/G/aUJ7kGPb6yO/ErDI5V2s8iycA==",
+ "version": "1.3.3",
+ "resolved": "https://registry.npmjs.org/array.prototype.flat/-/array.prototype.flat-1.3.3.tgz",
+ "integrity": "sha512-rwG/ja1neyLqCuGZ5YYrznA62D4mZXg0i1cIskIUKSiqF3Cje9/wXAls9B9s1Wa2fomMsIv8czB8jZcPmxCXFg==",
"dev": true,
+ "license": "MIT",
"dependencies": {
- "call-bind": "^1.0.2",
- "define-properties": "^1.2.0",
- "es-abstract": "^1.22.1",
- "es-shim-unscopables": "^1.0.0"
+ "call-bind": "^1.0.8",
+ "define-properties": "^1.2.1",
+ "es-abstract": "^1.23.5",
+ "es-shim-unscopables": "^1.0.2"
},
"engines": {
"node": ">= 0.4"
@@ -9976,9 +10150,9 @@
}
},
"node_modules/es-abstract": {
- "version": "1.23.9",
- "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.23.9.tgz",
- "integrity": "sha512-py07lI0wjxAC/DcfK1S6G7iANonniZwTISvdPzk9hzeH0IZIshbuuFxLIU96OyF89Yb9hiqWn8M/bY83KY5vzA==",
+ "version": "1.24.0",
+ "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.24.0.tgz",
+ "integrity": "sha512-WSzPgsdLtTcQwm4CROfS5ju2Wa1QQcVeT37jFjYzdFz1r9ahadC8B8/a4qxJxM+09F18iumCdRmlr96ZYkQvEg==",
"dev": true,
"license": "MIT",
"dependencies": {
@@ -9986,18 +10160,18 @@
"arraybuffer.prototype.slice": "^1.0.4",
"available-typed-arrays": "^1.0.7",
"call-bind": "^1.0.8",
- "call-bound": "^1.0.3",
+ "call-bound": "^1.0.4",
"data-view-buffer": "^1.0.2",
"data-view-byte-length": "^1.0.2",
"data-view-byte-offset": "^1.0.1",
"es-define-property": "^1.0.1",
"es-errors": "^1.3.0",
- "es-object-atoms": "^1.0.0",
+ "es-object-atoms": "^1.1.1",
"es-set-tostringtag": "^2.1.0",
"es-to-primitive": "^1.3.0",
"function.prototype.name": "^1.1.8",
- "get-intrinsic": "^1.2.7",
- "get-proto": "^1.0.0",
+ "get-intrinsic": "^1.3.0",
+ "get-proto": "^1.0.1",
"get-symbol-description": "^1.1.0",
"globalthis": "^1.0.4",
"gopd": "^1.2.0",
@@ -10009,21 +10183,24 @@
"is-array-buffer": "^3.0.5",
"is-callable": "^1.2.7",
"is-data-view": "^1.0.2",
+ "is-negative-zero": "^2.0.3",
"is-regex": "^1.2.1",
+ "is-set": "^2.0.3",
"is-shared-array-buffer": "^1.0.4",
"is-string": "^1.1.1",
"is-typed-array": "^1.1.15",
- "is-weakref": "^1.1.0",
+ "is-weakref": "^1.1.1",
"math-intrinsics": "^1.1.0",
- "object-inspect": "^1.13.3",
+ "object-inspect": "^1.13.4",
"object-keys": "^1.1.1",
"object.assign": "^4.1.7",
"own-keys": "^1.0.1",
- "regexp.prototype.flags": "^1.5.3",
+ "regexp.prototype.flags": "^1.5.4",
"safe-array-concat": "^1.1.3",
"safe-push-apply": "^1.0.0",
"safe-regex-test": "^1.1.0",
"set-proto": "^1.0.0",
+ "stop-iteration-iterator": "^1.1.0",
"string.prototype.trim": "^1.2.10",
"string.prototype.trimend": "^1.0.9",
"string.prototype.trimstart": "^1.0.8",
@@ -10032,7 +10209,7 @@
"typed-array-byte-offset": "^1.0.4",
"typed-array-length": "^1.0.7",
"unbox-primitive": "^1.1.0",
- "which-typed-array": "^1.1.18"
+ "which-typed-array": "^1.1.19"
},
"engines": {
"node": ">= 0.4"
@@ -10191,12 +10368,16 @@
}
},
"node_modules/es-shim-unscopables": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/es-shim-unscopables/-/es-shim-unscopables-1.0.2.tgz",
- "integrity": "sha512-J3yBRXCzDu4ULnQwxyToo/OjdMx6akgVC7K6few0a7F/0wLtmKKN7I73AH5T2836UuXRqN7Qg+IIUw/+YJksRw==",
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/es-shim-unscopables/-/es-shim-unscopables-1.1.0.tgz",
+ "integrity": "sha512-d9T8ucsEhh8Bi1woXCf+TIKDIROLG5WCkxg8geBCbvk22kzwC5G2OnXVMO6FUsvQlgUUXQ2itephWDLqDzbeCw==",
"dev": true,
+ "license": "MIT",
"dependencies": {
- "hasown": "^2.0.0"
+ "hasown": "^2.0.2"
+ },
+ "engines": {
+ "node": ">= 0.4"
}
},
"node_modules/es-to-primitive": {
@@ -10317,19 +10498,19 @@
}
},
"node_modules/eslint": {
- "version": "9.29.0",
- "resolved": "https://registry.npmjs.org/eslint/-/eslint-9.29.0.tgz",
- "integrity": "sha512-GsGizj2Y1rCWDu6XoEekL3RLilp0voSePurjZIkxL3wlm5o5EC9VpgaP7lrCvjnkuLvzFBQWB3vWB3K5KQTveQ==",
+ "version": "9.30.1",
+ "resolved": "https://registry.npmjs.org/eslint/-/eslint-9.30.1.tgz",
+ "integrity": "sha512-zmxXPNMOXmwm9E0yQLi5uqXHs7uq2UIiqEKo3Gq+3fwo1XrJ+hijAZImyF7hclW3E6oHz43Yk3RP8at6OTKflQ==",
"dev": true,
"license": "MIT",
"dependencies": {
"@eslint-community/eslint-utils": "^4.2.0",
"@eslint-community/regexpp": "^4.12.1",
- "@eslint/config-array": "^0.20.1",
- "@eslint/config-helpers": "^0.2.1",
+ "@eslint/config-array": "^0.21.0",
+ "@eslint/config-helpers": "^0.3.0",
"@eslint/core": "^0.14.0",
"@eslint/eslintrc": "^3.3.1",
- "@eslint/js": "9.29.0",
+ "@eslint/js": "9.30.1",
"@eslint/plugin-kit": "^0.3.1",
"@humanfs/node": "^0.16.6",
"@humanwhocodes/module-importer": "^1.0.1",
@@ -10415,9 +10596,9 @@
}
},
"node_modules/eslint-module-utils": {
- "version": "2.12.0",
- "resolved": "https://registry.npmjs.org/eslint-module-utils/-/eslint-module-utils-2.12.0.tgz",
- "integrity": "sha512-wALZ0HFoytlyh/1+4wuZ9FJCD/leWHQzzrxJ8+rebyReSLk7LApMyd3WJaLVoN+D5+WIdJyDK1c6JnE65V4Zyg==",
+ "version": "2.12.1",
+ "resolved": "https://registry.npmjs.org/eslint-module-utils/-/eslint-module-utils-2.12.1.tgz",
+ "integrity": "sha512-L8jSWTze7K2mTg0vos/RuLRS5soomksDPoJLXIslC7c8Wmut3bx7CPpJijDcBZtxQ5lrbUdM+s0OlNbz0DCDNw==",
"dev": true,
"license": "MIT",
"dependencies": {
@@ -10556,29 +10737,30 @@
}
},
"node_modules/eslint-plugin-import": {
- "version": "2.31.0",
- "resolved": "https://registry.npmjs.org/eslint-plugin-import/-/eslint-plugin-import-2.31.0.tgz",
- "integrity": "sha512-ixmkI62Rbc2/w8Vfxyh1jQRTdRTF52VxwRVHl/ykPAmqG+Nb7/kNn+byLP0LxPgI7zWA16Jt82SybJInmMia3A==",
+ "version": "2.32.0",
+ "resolved": "https://registry.npmjs.org/eslint-plugin-import/-/eslint-plugin-import-2.32.0.tgz",
+ "integrity": "sha512-whOE1HFo/qJDyX4SnXzP4N6zOWn79WhnCUY/iDR0mPfQZO8wcYE4JClzI2oZrhBnnMUCBCHZhO6VQyoBU95mZA==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"@rtsao/scc": "^1.1.0",
- "array-includes": "^3.1.8",
- "array.prototype.findlastindex": "^1.2.5",
- "array.prototype.flat": "^1.3.2",
- "array.prototype.flatmap": "^1.3.2",
+ "array-includes": "^3.1.9",
+ "array.prototype.findlastindex": "^1.2.6",
+ "array.prototype.flat": "^1.3.3",
+ "array.prototype.flatmap": "^1.3.3",
"debug": "^3.2.7",
"doctrine": "^2.1.0",
"eslint-import-resolver-node": "^0.3.9",
- "eslint-module-utils": "^2.12.0",
+ "eslint-module-utils": "^2.12.1",
"hasown": "^2.0.2",
- "is-core-module": "^2.15.1",
+ "is-core-module": "^2.16.1",
"is-glob": "^4.0.3",
"minimatch": "^3.1.2",
"object.fromentries": "^2.0.8",
"object.groupby": "^1.0.3",
- "object.values": "^1.2.0",
+ "object.values": "^1.2.1",
"semver": "^6.3.1",
- "string.prototype.trimend": "^1.0.8",
+ "string.prototype.trimend": "^1.0.9",
"tsconfig-paths": "^3.15.0"
},
"engines": {
@@ -10710,9 +10892,9 @@
}
},
"node_modules/eslint-plugin-sonarjs": {
- "version": "3.0.3",
- "resolved": "https://registry.npmjs.org/eslint-plugin-sonarjs/-/eslint-plugin-sonarjs-3.0.3.tgz",
- "integrity": "sha512-/UrTz8wyTW0MQVJKUF70vSjsMMf54+0cKHWAuYObuE82vNM8zrscm0wvZprolHNN0PIdnvVQ9Dm6MQkIzOKu4A==",
+ "version": "3.0.4",
+ "resolved": "https://registry.npmjs.org/eslint-plugin-sonarjs/-/eslint-plugin-sonarjs-3.0.4.tgz",
+ "integrity": "sha512-ftQcP811kRJNXapqpQXHErEoVOdTPfYPPYd7n3AExIPwv4qWKKHf4slFvXmodiOnfgy1Tl3waPZZLD7lcvJOtw==",
"dev": true,
"license": "LGPL-3.0-only",
"dependencies": {
@@ -10721,6 +10903,7 @@
"bytes": "3.1.2",
"functional-red-black-tree": "1.0.1",
"jsx-ast-utils": "3.3.5",
+ "lodash.merge": "4.6.2",
"minimatch": "9.0.5",
"scslre": "0.3.0",
"semver": "7.7.2",
@@ -11753,13 +11936,19 @@
}
},
"node_modules/for-each": {
- "version": "0.3.3",
- "resolved": "https://registry.npmjs.org/for-each/-/for-each-0.3.3.tgz",
- "integrity": "sha512-jqYfLp7mo9vIyQf8ykW2v7A+2N4QjeCeI5+Dz9XraiO1ign81wjiH7Fb9vSOWvQfNtmSa4H2RoQTrrXivdUZmw==",
+ "version": "0.3.5",
+ "resolved": "https://registry.npmjs.org/for-each/-/for-each-0.3.5.tgz",
+ "integrity": "sha512-dKx12eRCVIzqCxFGplyFKJMPvLEWgmNtUrpTiJIR5u97zEhRG8ySrtboPHZXx7daLxQVrl643cTzbab2tkQjxg==",
"dev": true,
"license": "MIT",
"dependencies": {
- "is-callable": "^1.1.3"
+ "is-callable": "^1.2.7"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
}
},
"node_modules/for-in": {
@@ -13526,9 +13715,9 @@
}
},
"node_modules/is-core-module": {
- "version": "2.15.1",
- "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.15.1.tgz",
- "integrity": "sha512-z0vtXSwucUJtANQWldhbtbt7BnL0vxiFjIdDLAatwhDYty2bad6s+rijD6Ri4YuYJubLzIJLUidCh09e1djEVQ==",
+ "version": "2.16.1",
+ "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.16.1.tgz",
+ "integrity": "sha512-UfoeMA6fIJ8wTYFEUjelnaGI67v6+N7qXJEvQuIGa99l4xsCruSYOVSQ0uPANn4dAzm8lkYPaKLrrijLq7x23w==",
"license": "MIT",
"dependencies": {
"hasown": "^2.0.2"
@@ -13779,6 +13968,19 @@
"url": "https://github.com/sponsors/ljharb"
}
},
+ "node_modules/is-negative-zero": {
+ "version": "2.0.3",
+ "resolved": "https://registry.npmjs.org/is-negative-zero/-/is-negative-zero-2.0.3.tgz",
+ "integrity": "sha512-5KoIu2Ngpyek75jXodFvnafB6DJgr3u8uuK0LEZJjrU19DrMD3EVERaR8sjz8CCGgpZvxPl9SuE1GMVPFHx1mw==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
"node_modules/is-network-error": {
"version": "1.1.0",
"resolved": "https://registry.npmjs.org/is-network-error/-/is-network-error-1.1.0.tgz",
@@ -14022,13 +14224,13 @@
}
},
"node_modules/is-weakref": {
- "version": "1.1.0",
- "resolved": "https://registry.npmjs.org/is-weakref/-/is-weakref-1.1.0.tgz",
- "integrity": "sha512-SXM8Nwyys6nT5WP6pltOwKytLV7FqQ4UiibxVmW+EIosHcmCqkkjViTb5SNssDlkCiEYRP1/pdWUKVvZBmsR2Q==",
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/is-weakref/-/is-weakref-1.1.1.tgz",
+ "integrity": "sha512-6i9mGWSlqzNMEqpCp93KwRS1uUOodk2OJ6b+sq7ZPDSy2WuI5NFIxp/254TytR8ftefexkWn5xNiHUNpPOfSew==",
"dev": true,
"license": "MIT",
"dependencies": {
- "call-bound": "^1.0.2"
+ "call-bound": "^1.0.3"
},
"engines": {
"node": ">= 0.4"
@@ -15567,9 +15769,9 @@
}
},
"node_modules/object-inspect": {
- "version": "1.13.3",
- "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.13.3.tgz",
- "integrity": "sha512-kDCGIbxkDSXE3euJZZXzc6to7fCrKHNI/hSRQnRuQ+BWjFNzZwiFF8fj/6o2t2G9/jTj8PSIYTfCLelLZEeRpA==",
+ "version": "1.13.4",
+ "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.13.4.tgz",
+ "integrity": "sha512-W67iLl4J2EXEGTbfeHCffrjDfitvLANg0UlX3wFUUSTx92KXRFegMHUVgSqE+wvhAbi4WqjGg9czysTV2Epbew==",
"dev": true,
"license": "MIT",
"engines": {
@@ -20805,6 +21007,20 @@
"dev": true,
"license": "MIT"
},
+ "node_modules/stop-iteration-iterator": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/stop-iteration-iterator/-/stop-iteration-iterator-1.1.0.tgz",
+ "integrity": "sha512-eLoXW/DHyl62zxY4SCaIgnRhuMr6ri4juEYARS8E6sCEqzKpOiE521Ucofdx+KnDZl5xmvGYaaKCk5FEOxJCoQ==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "es-errors": "^1.3.0",
+ "internal-slot": "^1.1.0"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ }
+ },
"node_modules/string_decoder": {
"version": "1.1.1",
"resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz",
@@ -23711,6 +23927,31 @@
"typescript": ">=4.8.4 <5.9.0"
}
},
+ "node_modules/typescript-eslint/node_modules/@typescript-eslint/parser": {
+ "version": "8.34.1",
+ "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-8.34.1.tgz",
+ "integrity": "sha512-4O3idHxhyzjClSMJ0a29AcoK0+YwnEqzI6oz3vlRf3xw0zbzt15MzXwItOlnr5nIth6zlY2RENLsOPvhyrKAQA==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@typescript-eslint/scope-manager": "8.34.1",
+ "@typescript-eslint/types": "8.34.1",
+ "@typescript-eslint/typescript-estree": "8.34.1",
+ "@typescript-eslint/visitor-keys": "8.34.1",
+ "debug": "^4.3.4"
+ },
+ "engines": {
+ "node": "^18.18.0 || ^20.9.0 || >=21.1.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/typescript-eslint"
+ },
+ "peerDependencies": {
+ "eslint": "^8.57.0 || ^9.0.0",
+ "typescript": ">=4.8.4 <5.9.0"
+ }
+ },
"node_modules/uc.micro": {
"version": "2.1.0",
"resolved": "https://registry.npmjs.org/uc.micro/-/uc.micro-2.1.0.tgz",
@@ -24842,16 +25083,17 @@
}
},
"node_modules/which-typed-array": {
- "version": "1.1.18",
- "resolved": "https://registry.npmjs.org/which-typed-array/-/which-typed-array-1.1.18.tgz",
- "integrity": "sha512-qEcY+KJYlWyLH9vNbsr6/5j59AXk5ni5aakf8ldzBvGde6Iz4sxZGkJyWSAueTG7QhOvNRYb1lDdFmL5Td0QKA==",
+ "version": "1.1.19",
+ "resolved": "https://registry.npmjs.org/which-typed-array/-/which-typed-array-1.1.19.tgz",
+ "integrity": "sha512-rEvr90Bck4WZt9HHFC4DJMsjvu7x+r6bImz0/BrbWb7A2djJ8hnZMrWnHo9F8ssv0OMErasDhftrfROTyqSDrw==",
"dev": true,
"license": "MIT",
"dependencies": {
"available-typed-arrays": "^1.0.7",
"call-bind": "^1.0.8",
- "call-bound": "^1.0.3",
- "for-each": "^0.3.3",
+ "call-bound": "^1.0.4",
+ "for-each": "^0.3.5",
+ "get-proto": "^1.0.1",
"gopd": "^1.2.0",
"has-tostringtag": "^1.0.2"
},
@@ -27202,9 +27444,9 @@
"dev": true
},
"@eslint/config-array": {
- "version": "0.20.1",
- "resolved": "https://registry.npmjs.org/@eslint/config-array/-/config-array-0.20.1.tgz",
- "integrity": "sha512-OL0RJzC/CBzli0DrrR31qzj6d6i6Mm3HByuhflhl4LOBiWxN+3i6/t/ZQQNii4tjksXi8r2CRW1wMpWA2ULUEw==",
+ "version": "0.21.0",
+ "resolved": "https://registry.npmjs.org/@eslint/config-array/-/config-array-0.21.0.tgz",
+ "integrity": "sha512-ENIdc4iLu0d93HeYirvKmrzshzofPw6VkZRKQGe9Nv46ZnWUzcF1xV01dcvEg/1wXUR61OmmlSfyeyO7EvjLxQ==",
"dev": true,
"requires": {
"@eslint/object-schema": "^2.1.6",
@@ -27213,9 +27455,9 @@
}
},
"@eslint/config-helpers": {
- "version": "0.2.2",
- "resolved": "https://registry.npmjs.org/@eslint/config-helpers/-/config-helpers-0.2.2.tgz",
- "integrity": "sha512-+GPzk8PlG0sPpzdU5ZvIRMPidzAnZDl/s9L+y13iodqvb8leL53bTannOrQ/Im7UkpsmFU5Ily5U60LWixnmLg==",
+ "version": "0.3.0",
+ "resolved": "https://registry.npmjs.org/@eslint/config-helpers/-/config-helpers-0.3.0.tgz",
+ "integrity": "sha512-ViuymvFmcJi04qdZeDc2whTHryouGcDlaxPqarTD0ZE10ISpxGUVZGZDx4w01upyIynL3iu6IXH2bS1NhclQMw==",
"dev": true
},
"@eslint/core": {
@@ -27302,9 +27544,9 @@
}
},
"@eslint/js": {
- "version": "9.29.0",
- "resolved": "https://registry.npmjs.org/@eslint/js/-/js-9.29.0.tgz",
- "integrity": "sha512-3PIF4cBw/y+1u2EazflInpV+lYsSG0aByVIQzAgb1m1MhHFSbqTyNqtBKHgWf/9Ykud+DhILS9EGkmekVhbKoQ==",
+ "version": "9.30.1",
+ "resolved": "https://registry.npmjs.org/@eslint/js/-/js-9.30.1.tgz",
+ "integrity": "sha512-zXhuECFlyep42KZUhWjfvsmXGX39W8K8LFb8AWXM9gSV9dQB+MrJGLKvW6Zw0Ggnbpw0VHTtrhFXYe3Gym18jg==",
"dev": true
},
"@eslint/object-schema": {
@@ -28619,16 +28861,110 @@
}
},
"@typescript-eslint/parser": {
- "version": "8.34.1",
- "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-8.34.1.tgz",
- "integrity": "sha512-4O3idHxhyzjClSMJ0a29AcoK0+YwnEqzI6oz3vlRf3xw0zbzt15MzXwItOlnr5nIth6zlY2RENLsOPvhyrKAQA==",
+ "version": "8.35.1",
+ "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-8.35.1.tgz",
+ "integrity": "sha512-3MyiDfrfLeK06bi/g9DqJxP5pV74LNv4rFTyvGDmT3x2p1yp1lOd+qYZfiRPIOf/oON+WRZR5wxxuF85qOar+w==",
"dev": true,
"requires": {
- "@typescript-eslint/scope-manager": "8.34.1",
- "@typescript-eslint/types": "8.34.1",
- "@typescript-eslint/typescript-estree": "8.34.1",
- "@typescript-eslint/visitor-keys": "8.34.1",
+ "@typescript-eslint/scope-manager": "8.35.1",
+ "@typescript-eslint/types": "8.35.1",
+ "@typescript-eslint/typescript-estree": "8.35.1",
+ "@typescript-eslint/visitor-keys": "8.35.1",
"debug": "^4.3.4"
+ },
+ "dependencies": {
+ "@typescript-eslint/project-service": {
+ "version": "8.35.1",
+ "resolved": "https://registry.npmjs.org/@typescript-eslint/project-service/-/project-service-8.35.1.tgz",
+ "integrity": "sha512-VYxn/5LOpVxADAuP3NrnxxHYfzVtQzLKeldIhDhzC8UHaiQvYlXvKuVho1qLduFbJjjy5U5bkGwa3rUGUb1Q6Q==",
+ "dev": true,
+ "requires": {
+ "@typescript-eslint/tsconfig-utils": "^8.35.1",
+ "@typescript-eslint/types": "^8.35.1",
+ "debug": "^4.3.4"
+ }
+ },
+ "@typescript-eslint/scope-manager": {
+ "version": "8.35.1",
+ "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-8.35.1.tgz",
+ "integrity": "sha512-s/Bpd4i7ht2934nG+UoSPlYXd08KYz3bmjLEb7Ye1UVob0d1ENiT3lY8bsCmik4RqfSbPw9xJJHbugpPpP5JUg==",
+ "dev": true,
+ "requires": {
+ "@typescript-eslint/types": "8.35.1",
+ "@typescript-eslint/visitor-keys": "8.35.1"
+ }
+ },
+ "@typescript-eslint/tsconfig-utils": {
+ "version": "8.35.1",
+ "resolved": "https://registry.npmjs.org/@typescript-eslint/tsconfig-utils/-/tsconfig-utils-8.35.1.tgz",
+ "integrity": "sha512-K5/U9VmT9dTHoNowWZpz+/TObS3xqC5h0xAIjXPw+MNcKV9qg6eSatEnmeAwkjHijhACH0/N7bkhKvbt1+DXWQ==",
+ "dev": true,
+ "requires": {}
+ },
+ "@typescript-eslint/types": {
+ "version": "8.35.1",
+ "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-8.35.1.tgz",
+ "integrity": "sha512-q/O04vVnKHfrrhNAscndAn1tuQhIkwqnaW+eu5waD5IPts2eX1dgJxgqcPx5BX109/qAz7IG6VrEPTOYKCNfRQ==",
+ "dev": true
+ },
+ "@typescript-eslint/typescript-estree": {
+ "version": "8.35.1",
+ "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-8.35.1.tgz",
+ "integrity": "sha512-Vvpuvj4tBxIka7cPs6Y1uvM7gJgdF5Uu9F+mBJBPY4MhvjrjWGK4H0lVgLJd/8PWZ23FTqsaJaLEkBCFUk8Y9g==",
+ "dev": true,
+ "requires": {
+ "@typescript-eslint/project-service": "8.35.1",
+ "@typescript-eslint/tsconfig-utils": "8.35.1",
+ "@typescript-eslint/types": "8.35.1",
+ "@typescript-eslint/visitor-keys": "8.35.1",
+ "debug": "^4.3.4",
+ "fast-glob": "^3.3.2",
+ "is-glob": "^4.0.3",
+ "minimatch": "^9.0.4",
+ "semver": "^7.6.0",
+ "ts-api-utils": "^2.1.0"
+ }
+ },
+ "@typescript-eslint/visitor-keys": {
+ "version": "8.35.1",
+ "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-8.35.1.tgz",
+ "integrity": "sha512-VRwixir4zBWCSTP/ljEo091lbpypz57PoeAQ9imjG+vbeof9LplljsL1mos4ccG6H9IjfrVGM359RozUnuFhpw==",
+ "dev": true,
+ "requires": {
+ "@typescript-eslint/types": "8.35.1",
+ "eslint-visitor-keys": "^4.2.1"
+ }
+ },
+ "brace-expansion": {
+ "version": "2.0.2",
+ "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.2.tgz",
+ "integrity": "sha512-Jt0vHyM+jmUBqojB7E1NIYadt0vI0Qxjxd2TErW94wDz+E2LAm5vKMXXwg6ZZBTHPuUlDgQHKXvjGBdfcF1ZDQ==",
+ "dev": true,
+ "requires": {
+ "balanced-match": "^1.0.0"
+ }
+ },
+ "eslint-visitor-keys": {
+ "version": "4.2.1",
+ "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-4.2.1.tgz",
+ "integrity": "sha512-Uhdk5sfqcee/9H/rCOJikYz67o0a2Tw2hGRPOG2Y1R2dg7brRe1uG0yaNQDHu+TO/uQPF/5eCapvYSmHUjt7JQ==",
+ "dev": true
+ },
+ "minimatch": {
+ "version": "9.0.5",
+ "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.5.tgz",
+ "integrity": "sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==",
+ "dev": true,
+ "requires": {
+ "brace-expansion": "^2.0.1"
+ }
+ },
+ "semver": {
+ "version": "7.7.2",
+ "resolved": "https://registry.npmjs.org/semver/-/semver-7.7.2.tgz",
+ "integrity": "sha512-RF0Fw+rO5AMf9MAyaRXI4AV0Ulj5lMHqVxxdSgiVbixSCXoEmmX/jk0CuJw4+3SqroYO9VoUh+HcuJivvtJemA==",
+ "dev": true
+ }
}
},
"@typescript-eslint/project-service": {
@@ -29234,17 +29570,19 @@
"dev": true
},
"array-includes": {
- "version": "3.1.8",
- "resolved": "https://registry.npmjs.org/array-includes/-/array-includes-3.1.8.tgz",
- "integrity": "sha512-itaWrbYbqpGXkGhZPGUulwnhVf5Hpy1xiCFsGqyIGglbBxmG5vSjxQen3/WGOjPpNEv1RtBLKxbmVXm8HpJStQ==",
+ "version": "3.1.9",
+ "resolved": "https://registry.npmjs.org/array-includes/-/array-includes-3.1.9.tgz",
+ "integrity": "sha512-FmeCCAenzH0KH381SPT5FZmiA/TmpndpcaShhfgEN9eCVjnFBqq3l1xrI42y8+PPLI6hypzou4GXw00WHmPBLQ==",
"dev": true,
"requires": {
- "call-bind": "^1.0.7",
+ "call-bind": "^1.0.8",
+ "call-bound": "^1.0.4",
"define-properties": "^1.2.1",
- "es-abstract": "^1.23.2",
- "es-object-atoms": "^1.0.0",
- "get-intrinsic": "^1.2.4",
- "is-string": "^1.0.7"
+ "es-abstract": "^1.24.0",
+ "es-object-atoms": "^1.1.1",
+ "get-intrinsic": "^1.3.0",
+ "is-string": "^1.1.1",
+ "math-intrinsics": "^1.1.0"
}
},
"array-union": {
@@ -29283,29 +29621,30 @@
}
},
"array.prototype.findlastindex": {
- "version": "1.2.5",
- "resolved": "https://registry.npmjs.org/array.prototype.findlastindex/-/array.prototype.findlastindex-1.2.5.tgz",
- "integrity": "sha512-zfETvRFA8o7EiNn++N5f/kaCw221hrpGsDmcpndVupkPzEc1Wuf3VgC0qby1BbHs7f5DVYjgtEU2LLh5bqeGfQ==",
+ "version": "1.2.6",
+ "resolved": "https://registry.npmjs.org/array.prototype.findlastindex/-/array.prototype.findlastindex-1.2.6.tgz",
+ "integrity": "sha512-F/TKATkzseUExPlfvmwQKGITM3DGTK+vkAsCZoDc5daVygbJBnjEUCbgkAvVFsgfXfX4YIqZ/27G3k3tdXrTxQ==",
"dev": true,
"requires": {
- "call-bind": "^1.0.7",
+ "call-bind": "^1.0.8",
+ "call-bound": "^1.0.4",
"define-properties": "^1.2.1",
- "es-abstract": "^1.23.2",
+ "es-abstract": "^1.23.9",
"es-errors": "^1.3.0",
- "es-object-atoms": "^1.0.0",
- "es-shim-unscopables": "^1.0.2"
+ "es-object-atoms": "^1.1.1",
+ "es-shim-unscopables": "^1.1.0"
}
},
"array.prototype.flat": {
- "version": "1.3.2",
- "resolved": "https://registry.npmjs.org/array.prototype.flat/-/array.prototype.flat-1.3.2.tgz",
- "integrity": "sha512-djYB+Zx2vLewY8RWlNCUdHjDXs2XOgm602S9E7P/UpHgfeHL00cRiIF+IN/G/aUJ7kGPb6yO/ErDI5V2s8iycA==",
+ "version": "1.3.3",
+ "resolved": "https://registry.npmjs.org/array.prototype.flat/-/array.prototype.flat-1.3.3.tgz",
+ "integrity": "sha512-rwG/ja1neyLqCuGZ5YYrznA62D4mZXg0i1cIskIUKSiqF3Cje9/wXAls9B9s1Wa2fomMsIv8czB8jZcPmxCXFg==",
"dev": true,
"requires": {
- "call-bind": "^1.0.2",
- "define-properties": "^1.2.0",
- "es-abstract": "^1.22.1",
- "es-shim-unscopables": "^1.0.0"
+ "call-bind": "^1.0.8",
+ "define-properties": "^1.2.1",
+ "es-abstract": "^1.23.5",
+ "es-shim-unscopables": "^1.0.2"
}
},
"array.prototype.flatmap": {
@@ -31315,27 +31654,27 @@
}
},
"es-abstract": {
- "version": "1.23.9",
- "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.23.9.tgz",
- "integrity": "sha512-py07lI0wjxAC/DcfK1S6G7iANonniZwTISvdPzk9hzeH0IZIshbuuFxLIU96OyF89Yb9hiqWn8M/bY83KY5vzA==",
+ "version": "1.24.0",
+ "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.24.0.tgz",
+ "integrity": "sha512-WSzPgsdLtTcQwm4CROfS5ju2Wa1QQcVeT37jFjYzdFz1r9ahadC8B8/a4qxJxM+09F18iumCdRmlr96ZYkQvEg==",
"dev": true,
"requires": {
"array-buffer-byte-length": "^1.0.2",
"arraybuffer.prototype.slice": "^1.0.4",
"available-typed-arrays": "^1.0.7",
"call-bind": "^1.0.8",
- "call-bound": "^1.0.3",
+ "call-bound": "^1.0.4",
"data-view-buffer": "^1.0.2",
"data-view-byte-length": "^1.0.2",
"data-view-byte-offset": "^1.0.1",
"es-define-property": "^1.0.1",
"es-errors": "^1.3.0",
- "es-object-atoms": "^1.0.0",
+ "es-object-atoms": "^1.1.1",
"es-set-tostringtag": "^2.1.0",
"es-to-primitive": "^1.3.0",
"function.prototype.name": "^1.1.8",
- "get-intrinsic": "^1.2.7",
- "get-proto": "^1.0.0",
+ "get-intrinsic": "^1.3.0",
+ "get-proto": "^1.0.1",
"get-symbol-description": "^1.1.0",
"globalthis": "^1.0.4",
"gopd": "^1.2.0",
@@ -31347,21 +31686,24 @@
"is-array-buffer": "^3.0.5",
"is-callable": "^1.2.7",
"is-data-view": "^1.0.2",
+ "is-negative-zero": "^2.0.3",
"is-regex": "^1.2.1",
+ "is-set": "^2.0.3",
"is-shared-array-buffer": "^1.0.4",
"is-string": "^1.1.1",
"is-typed-array": "^1.1.15",
- "is-weakref": "^1.1.0",
+ "is-weakref": "^1.1.1",
"math-intrinsics": "^1.1.0",
- "object-inspect": "^1.13.3",
+ "object-inspect": "^1.13.4",
"object-keys": "^1.1.1",
"object.assign": "^4.1.7",
"own-keys": "^1.0.1",
- "regexp.prototype.flags": "^1.5.3",
+ "regexp.prototype.flags": "^1.5.4",
"safe-array-concat": "^1.1.3",
"safe-push-apply": "^1.0.0",
"safe-regex-test": "^1.1.0",
"set-proto": "^1.0.0",
+ "stop-iteration-iterator": "^1.1.0",
"string.prototype.trim": "^1.2.10",
"string.prototype.trimend": "^1.0.9",
"string.prototype.trimstart": "^1.0.8",
@@ -31370,7 +31712,7 @@
"typed-array-byte-offset": "^1.0.4",
"typed-array-length": "^1.0.7",
"unbox-primitive": "^1.1.0",
- "which-typed-array": "^1.1.18"
+ "which-typed-array": "^1.1.19"
}
},
"es-check": {
@@ -31479,12 +31821,12 @@
}
},
"es-shim-unscopables": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/es-shim-unscopables/-/es-shim-unscopables-1.0.2.tgz",
- "integrity": "sha512-J3yBRXCzDu4ULnQwxyToo/OjdMx6akgVC7K6few0a7F/0wLtmKKN7I73AH5T2836UuXRqN7Qg+IIUw/+YJksRw==",
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/es-shim-unscopables/-/es-shim-unscopables-1.1.0.tgz",
+ "integrity": "sha512-d9T8ucsEhh8Bi1woXCf+TIKDIROLG5WCkxg8geBCbvk22kzwC5G2OnXVMO6FUsvQlgUUXQ2itephWDLqDzbeCw==",
"dev": true,
"requires": {
- "hasown": "^2.0.0"
+ "hasown": "^2.0.2"
}
},
"es-to-primitive": {
@@ -31583,18 +31925,18 @@
"dev": true
},
"eslint": {
- "version": "9.29.0",
- "resolved": "https://registry.npmjs.org/eslint/-/eslint-9.29.0.tgz",
- "integrity": "sha512-GsGizj2Y1rCWDu6XoEekL3RLilp0voSePurjZIkxL3wlm5o5EC9VpgaP7lrCvjnkuLvzFBQWB3vWB3K5KQTveQ==",
+ "version": "9.30.1",
+ "resolved": "https://registry.npmjs.org/eslint/-/eslint-9.30.1.tgz",
+ "integrity": "sha512-zmxXPNMOXmwm9E0yQLi5uqXHs7uq2UIiqEKo3Gq+3fwo1XrJ+hijAZImyF7hclW3E6oHz43Yk3RP8at6OTKflQ==",
"dev": true,
"requires": {
"@eslint-community/eslint-utils": "^4.2.0",
"@eslint-community/regexpp": "^4.12.1",
- "@eslint/config-array": "^0.20.1",
- "@eslint/config-helpers": "^0.2.1",
+ "@eslint/config-array": "^0.21.0",
+ "@eslint/config-helpers": "^0.3.0",
"@eslint/core": "^0.14.0",
"@eslint/eslintrc": "^3.3.1",
- "@eslint/js": "9.29.0",
+ "@eslint/js": "9.30.1",
"@eslint/plugin-kit": "^0.3.1",
"@humanfs/node": "^0.16.6",
"@humanwhocodes/module-importer": "^1.0.1",
@@ -31802,9 +32144,9 @@
}
},
"eslint-module-utils": {
- "version": "2.12.0",
- "resolved": "https://registry.npmjs.org/eslint-module-utils/-/eslint-module-utils-2.12.0.tgz",
- "integrity": "sha512-wALZ0HFoytlyh/1+4wuZ9FJCD/leWHQzzrxJ8+rebyReSLk7LApMyd3WJaLVoN+D5+WIdJyDK1c6JnE65V4Zyg==",
+ "version": "2.12.1",
+ "resolved": "https://registry.npmjs.org/eslint-module-utils/-/eslint-module-utils-2.12.1.tgz",
+ "integrity": "sha512-L8jSWTze7K2mTg0vos/RuLRS5soomksDPoJLXIslC7c8Wmut3bx7CPpJijDcBZtxQ5lrbUdM+s0OlNbz0DCDNw==",
"dev": true,
"requires": {
"debug": "^3.2.7"
@@ -31889,29 +32231,29 @@
}
},
"eslint-plugin-import": {
- "version": "2.31.0",
- "resolved": "https://registry.npmjs.org/eslint-plugin-import/-/eslint-plugin-import-2.31.0.tgz",
- "integrity": "sha512-ixmkI62Rbc2/w8Vfxyh1jQRTdRTF52VxwRVHl/ykPAmqG+Nb7/kNn+byLP0LxPgI7zWA16Jt82SybJInmMia3A==",
+ "version": "2.32.0",
+ "resolved": "https://registry.npmjs.org/eslint-plugin-import/-/eslint-plugin-import-2.32.0.tgz",
+ "integrity": "sha512-whOE1HFo/qJDyX4SnXzP4N6zOWn79WhnCUY/iDR0mPfQZO8wcYE4JClzI2oZrhBnnMUCBCHZhO6VQyoBU95mZA==",
"dev": true,
"requires": {
"@rtsao/scc": "^1.1.0",
- "array-includes": "^3.1.8",
- "array.prototype.findlastindex": "^1.2.5",
- "array.prototype.flat": "^1.3.2",
- "array.prototype.flatmap": "^1.3.2",
+ "array-includes": "^3.1.9",
+ "array.prototype.findlastindex": "^1.2.6",
+ "array.prototype.flat": "^1.3.3",
+ "array.prototype.flatmap": "^1.3.3",
"debug": "^3.2.7",
"doctrine": "^2.1.0",
"eslint-import-resolver-node": "^0.3.9",
- "eslint-module-utils": "^2.12.0",
+ "eslint-module-utils": "^2.12.1",
"hasown": "^2.0.2",
- "is-core-module": "^2.15.1",
+ "is-core-module": "^2.16.1",
"is-glob": "^4.0.3",
"minimatch": "^3.1.2",
"object.fromentries": "^2.0.8",
"object.groupby": "^1.0.3",
- "object.values": "^1.2.0",
+ "object.values": "^1.2.1",
"semver": "^6.3.1",
- "string.prototype.trimend": "^1.0.8",
+ "string.prototype.trimend": "^1.0.9",
"tsconfig-paths": "^3.15.0"
},
"dependencies": {
@@ -32010,9 +32352,9 @@
"requires": {}
},
"eslint-plugin-sonarjs": {
- "version": "3.0.3",
- "resolved": "https://registry.npmjs.org/eslint-plugin-sonarjs/-/eslint-plugin-sonarjs-3.0.3.tgz",
- "integrity": "sha512-/UrTz8wyTW0MQVJKUF70vSjsMMf54+0cKHWAuYObuE82vNM8zrscm0wvZprolHNN0PIdnvVQ9Dm6MQkIzOKu4A==",
+ "version": "3.0.4",
+ "resolved": "https://registry.npmjs.org/eslint-plugin-sonarjs/-/eslint-plugin-sonarjs-3.0.4.tgz",
+ "integrity": "sha512-ftQcP811kRJNXapqpQXHErEoVOdTPfYPPYd7n3AExIPwv4qWKKHf4slFvXmodiOnfgy1Tl3waPZZLD7lcvJOtw==",
"dev": true,
"requires": {
"@eslint-community/regexpp": "4.12.1",
@@ -32020,6 +32362,7 @@
"bytes": "3.1.2",
"functional-red-black-tree": "1.0.1",
"jsx-ast-utils": "3.3.5",
+ "lodash.merge": "4.6.2",
"minimatch": "9.0.5",
"scslre": "0.3.0",
"semver": "7.7.2",
@@ -32625,12 +32968,12 @@
"integrity": "sha512-wWN62YITEaOpSK584EZXJafH1AGpO8RVgElfkuXbTOrPX4fIfOyEpW/CsiNd8JdYrAoOvafRTOEnvsO++qCqFA=="
},
"for-each": {
- "version": "0.3.3",
- "resolved": "https://registry.npmjs.org/for-each/-/for-each-0.3.3.tgz",
- "integrity": "sha512-jqYfLp7mo9vIyQf8ykW2v7A+2N4QjeCeI5+Dz9XraiO1ign81wjiH7Fb9vSOWvQfNtmSa4H2RoQTrrXivdUZmw==",
+ "version": "0.3.5",
+ "resolved": "https://registry.npmjs.org/for-each/-/for-each-0.3.5.tgz",
+ "integrity": "sha512-dKx12eRCVIzqCxFGplyFKJMPvLEWgmNtUrpTiJIR5u97zEhRG8ySrtboPHZXx7daLxQVrl643cTzbab2tkQjxg==",
"dev": true,
"requires": {
- "is-callable": "^1.1.3"
+ "is-callable": "^1.2.7"
}
},
"for-in": {
@@ -33834,9 +34177,9 @@
"dev": true
},
"is-core-module": {
- "version": "2.15.1",
- "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.15.1.tgz",
- "integrity": "sha512-z0vtXSwucUJtANQWldhbtbt7BnL0vxiFjIdDLAatwhDYty2bad6s+rijD6Ri4YuYJubLzIJLUidCh09e1djEVQ==",
+ "version": "2.16.1",
+ "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.16.1.tgz",
+ "integrity": "sha512-UfoeMA6fIJ8wTYFEUjelnaGI67v6+N7qXJEvQuIGa99l4xsCruSYOVSQ0uPANn4dAzm8lkYPaKLrrijLq7x23w==",
"requires": {
"hasown": "^2.0.2"
}
@@ -33994,6 +34337,12 @@
"integrity": "sha512-1Qed0/Hr2m+YqxnM09CjA2d/i6YZNfF6R2oRAOj36eUdS6qIV/huPJNSEpKbupewFs+ZsJlxsjjPbc0/afW6Lw==",
"dev": true
},
+ "is-negative-zero": {
+ "version": "2.0.3",
+ "resolved": "https://registry.npmjs.org/is-negative-zero/-/is-negative-zero-2.0.3.tgz",
+ "integrity": "sha512-5KoIu2Ngpyek75jXodFvnafB6DJgr3u8uuK0LEZJjrU19DrMD3EVERaR8sjz8CCGgpZvxPl9SuE1GMVPFHx1mw==",
+ "dev": true
+ },
"is-network-error": {
"version": "1.1.0",
"resolved": "https://registry.npmjs.org/is-network-error/-/is-network-error-1.1.0.tgz",
@@ -34143,12 +34492,12 @@
"dev": true
},
"is-weakref": {
- "version": "1.1.0",
- "resolved": "https://registry.npmjs.org/is-weakref/-/is-weakref-1.1.0.tgz",
- "integrity": "sha512-SXM8Nwyys6nT5WP6pltOwKytLV7FqQ4UiibxVmW+EIosHcmCqkkjViTb5SNssDlkCiEYRP1/pdWUKVvZBmsR2Q==",
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/is-weakref/-/is-weakref-1.1.1.tgz",
+ "integrity": "sha512-6i9mGWSlqzNMEqpCp93KwRS1uUOodk2OJ6b+sq7ZPDSy2WuI5NFIxp/254TytR8ftefexkWn5xNiHUNpPOfSew==",
"dev": true,
"requires": {
- "call-bound": "^1.0.2"
+ "call-bound": "^1.0.3"
}
},
"is-weakset": {
@@ -35307,9 +35656,9 @@
}
},
"object-inspect": {
- "version": "1.13.3",
- "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.13.3.tgz",
- "integrity": "sha512-kDCGIbxkDSXE3euJZZXzc6to7fCrKHNI/hSRQnRuQ+BWjFNzZwiFF8fj/6o2t2G9/jTj8PSIYTfCLelLZEeRpA==",
+ "version": "1.13.4",
+ "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.13.4.tgz",
+ "integrity": "sha512-W67iLl4J2EXEGTbfeHCffrjDfitvLANg0UlX3wFUUSTx92KXRFegMHUVgSqE+wvhAbi4WqjGg9czysTV2Epbew==",
"dev": true
},
"object-keys": {
@@ -38777,6 +39126,16 @@
"integrity": "sha512-UGvjygr6F6tpH7o2qyqR6QYpwraIjKSdtzyBdyytFOHmPZY917kwdwLG0RbOjWOnKmnm3PeHjaoLLMie7kPLQw==",
"dev": true
},
+ "stop-iteration-iterator": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/stop-iteration-iterator/-/stop-iteration-iterator-1.1.0.tgz",
+ "integrity": "sha512-eLoXW/DHyl62zxY4SCaIgnRhuMr6ri4juEYARS8E6sCEqzKpOiE521Ucofdx+KnDZl5xmvGYaaKCk5FEOxJCoQ==",
+ "dev": true,
+ "requires": {
+ "es-errors": "^1.3.0",
+ "internal-slot": "^1.1.0"
+ }
+ },
"string_decoder": {
"version": "1.1.1",
"resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz",
@@ -40855,6 +41214,21 @@
"@typescript-eslint/eslint-plugin": "8.34.1",
"@typescript-eslint/parser": "8.34.1",
"@typescript-eslint/utils": "8.34.1"
+ },
+ "dependencies": {
+ "@typescript-eslint/parser": {
+ "version": "8.34.1",
+ "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-8.34.1.tgz",
+ "integrity": "sha512-4O3idHxhyzjClSMJ0a29AcoK0+YwnEqzI6oz3vlRf3xw0zbzt15MzXwItOlnr5nIth6zlY2RENLsOPvhyrKAQA==",
+ "dev": true,
+ "requires": {
+ "@typescript-eslint/scope-manager": "8.34.1",
+ "@typescript-eslint/types": "8.34.1",
+ "@typescript-eslint/typescript-estree": "8.34.1",
+ "@typescript-eslint/visitor-keys": "8.34.1",
+ "debug": "^4.3.4"
+ }
+ }
}
},
"uc.micro": {
@@ -41588,15 +41962,16 @@
}
},
"which-typed-array": {
- "version": "1.1.18",
- "resolved": "https://registry.npmjs.org/which-typed-array/-/which-typed-array-1.1.18.tgz",
- "integrity": "sha512-qEcY+KJYlWyLH9vNbsr6/5j59AXk5ni5aakf8ldzBvGde6Iz4sxZGkJyWSAueTG7QhOvNRYb1lDdFmL5Td0QKA==",
+ "version": "1.1.19",
+ "resolved": "https://registry.npmjs.org/which-typed-array/-/which-typed-array-1.1.19.tgz",
+ "integrity": "sha512-rEvr90Bck4WZt9HHFC4DJMsjvu7x+r6bImz0/BrbWb7A2djJ8hnZMrWnHo9F8ssv0OMErasDhftrfROTyqSDrw==",
"dev": true,
"requires": {
"available-typed-arrays": "^1.0.7",
"call-bind": "^1.0.8",
- "call-bound": "^1.0.3",
- "for-each": "^0.3.3",
+ "call-bound": "^1.0.4",
+ "for-each": "^0.3.5",
+ "get-proto": "^1.0.1",
"gopd": "^1.2.0",
"has-tostringtag": "^1.0.2"
}
diff --git a/package.json b/package.json
index 5ebfafc46..cc417f4c7 100644
--- a/package.json
+++ b/package.json
@@ -10,7 +10,7 @@
"@babel/preset-env": "7.27.2",
"@babel/preset-react": "7.27.1",
"@eslint-community/eslint-plugin-eslint-comments": "4.5.0",
- "@eslint/js": "9.29.0",
+ "@eslint/js": "9.30.1",
"@stylistic/eslint-plugin": "4.4.1",
"@stylistic/stylelint-plugin": "3.1.2",
"@types/dompurify": "3.0.5",
@@ -22,7 +22,7 @@
"@types/react-dom": "18.3.7",
"@types/react-lazy-load-image-component": "1.6.4",
"@types/sortablejs": "1.15.8",
- "@typescript-eslint/parser": "8.34.1",
+ "@typescript-eslint/parser": "8.35.1",
"@uupaa/dynamic-import-polyfill": "1.0.2",
"@vitest/coverage-v8": "3.2.4",
"autoprefixer": "10.4.21",
@@ -34,13 +34,13 @@
"css-loader": "7.1.2",
"cssnano": "7.0.7",
"es-check": "9.1.4",
- "eslint": "9.29.0",
+ "eslint": "9.30.1",
"eslint-plugin-compat": "6.0.2",
- "eslint-plugin-import": "2.31.0",
+ "eslint-plugin-import": "2.32.0",
"eslint-plugin-jsx-a11y": "6.10.2",
"eslint-plugin-react": "7.37.5",
"eslint-plugin-react-hooks": "5.2.0",
- "eslint-plugin-sonarjs": "3.0.3",
+ "eslint-plugin-sonarjs": "3.0.4",
"expose-loader": "5.0.1",
"fast-glob": "3.3.3",
"fork-ts-checker-webpack-plugin": "9.1.0",
From 0b6b1e5292fa470884ad378e59e2928491d1fe48 Mon Sep 17 00:00:00 2001
From: Anrijs Vitolins
Date: Wed, 9 Jul 2025 05:45:02 -0400
Subject: [PATCH 639/645] Translated using Weblate (Latvian) Translation:
Jellyfin/Jellyfin Web Translate-URL:
https://translate.jellyfin.org/projects/jellyfin/jellyfin-web/lv/
---
src/strings/lv.json | 6 ++++--
1 file changed, 4 insertions(+), 2 deletions(-)
diff --git a/src/strings/lv.json b/src/strings/lv.json
index 0e678f030..1c9dcaa26 100644
--- a/src/strings/lv.json
+++ b/src/strings/lv.json
@@ -1109,7 +1109,7 @@
"LabelTonemappingRange": "Toņu kartēšanas diapazons",
"LabelTonemappingPeakHelp": "Pārrakstīt iegulto metadatu vērtību ievadsignālam ar šo maksimālo vērtību. Noklusējuma vērtība ir 100 (1000nit).",
"LabelTonemappingPeak": "Toņu kartēšanas maksimums",
- "LabelTonemappingParamHelp": "Noregulējiet toņu kartēšanas algoritmu. Parasti atstājiet to tukšu.",
+ "LabelTonemappingParamHelp": "Toņu kartēšanas algoritma tūnings. Vispārēji atstājiet to tukšu.",
"LabelTonemappingParam": "Toņu kartēšanas parametrs",
"LabelTonemappingDesatHelp": "Izmantojiet piesātinājuma samazināšanu izgaismotajiem objektiem, kas pārsniedz šo spilgtuma līmeni. Ieteicamās vērtība ir 0 (atslēgts).",
"LabelTonemappingDesat": "Toņu kartēšanas piesātinājums \"desat\"",
@@ -2028,5 +2028,7 @@
"UseDoubleRateDeinterlacing": "Dubultot kadru nomaiņas ātrumu kad noņem rindpārleces izvērsi",
"UseCustomTagDelimitersHelp": "Sadalīt izpildītājus/žanru tegus ar pielāgotiem simboliem.",
"LabelSaveTrickplayLocallyHelp": "Saglabājot trickplay attēlus multivides mapēs novietos attēlus blakus tavai multividei vieglai migrācijai un piekļuvei.",
- "AllowTonemappingSoftwareHelp": "Toņu kartēšana var pārveidot video dinamisko diapazonu uz HDR no SDR (uz augstu diapazonu no zema) paturot attēla detaļas un krāsas, kas ir ļoti būtiska informāciju reprezentējot oriģinālo ainu. Šobrīd darbojas tikai ar 10bit HDR10, HLG un DoVi video."
+ "AllowTonemappingSoftwareHelp": "Toņu kartēšana var pārveidot video dinamisko diapazonu uz HDR no SDR (uz augstu diapazonu no zema) paturot attēla detaļas un krāsas, kas ir ļoti būtiska informāciju reprezentējot oriģinālo ainu. Šobrīd darbojas tikai ar 10bit HDR10, HLG un DoVi video.",
+ "LiveTVPageLoadError": "Neizdevās ielādēt lapu ar ierakstiem",
+ "HeaderServerMismatch": "Servera nesakritība"
}
From 785c5f6640ec5310dfae2bd3e514c5bf08ac5d3e Mon Sep 17 00:00:00 2001
From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com>
Date: Wed, 9 Jul 2025 14:54:50 +0000
Subject: [PATCH 640/645] Update dependency @jellyfin/sdk to
v0.0.0-unstable.202507090504
---
package-lock.json | 14 +++++++-------
package.json | 2 +-
2 files changed, 8 insertions(+), 8 deletions(-)
diff --git a/package-lock.json b/package-lock.json
index ae75a3565..72a4b3e8d 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -18,7 +18,7 @@
"@fontsource/noto-sans-sc": "5.2.6",
"@fontsource/noto-sans-tc": "5.2.6",
"@jellyfin/libass-wasm": "4.2.3",
- "@jellyfin/sdk": "0.0.0-unstable.202506280502",
+ "@jellyfin/sdk": "0.0.0-unstable.202507090504",
"@jellyfin/ux-web": "1.0.0",
"@mui/icons-material": "6.4.12",
"@mui/material": "6.4.12",
@@ -4129,9 +4129,9 @@
"license": "LGPL-2.1-or-later AND (FTL OR GPL-2.0-or-later) AND MIT AND MIT-Modern-Variant AND ISC AND NTP AND Zlib AND BSL-1.0"
},
"node_modules/@jellyfin/sdk": {
- "version": "0.0.0-unstable.202506280502",
- "resolved": "https://registry.npmjs.org/@jellyfin/sdk/-/sdk-0.0.0-unstable.202506280502.tgz",
- "integrity": "sha512-6aOrvBvPhIqBhw0FttJ6cMSXVoEJIOkg1Vb9MVgPDqcqDpftrYlbFyzVWJ7zHN4Fc1X/CO338j/U1zOc72Arow==",
+ "version": "0.0.0-unstable.202507090504",
+ "resolved": "https://registry.npmjs.org/@jellyfin/sdk/-/sdk-0.0.0-unstable.202507090504.tgz",
+ "integrity": "sha512-znwTsY9+gyJDPmwFOET+rtZQ1QryziG6LFhGXPXPF1ltJspV4Ixk70ST1t925vvtXdpqoGqMu92OZWOqkiNLbg==",
"license": "MPL-2.0",
"peerDependencies": {
"axios": "^1.3.4"
@@ -27449,9 +27449,9 @@
"integrity": "sha512-C0OlBxIr9NdeFESMTA/OVDqNSWtog6Mi7wwzwH12xbZpxsMD0RgCupUcIP7zZgcpTNecW3fZq5d6xVo7Q8HEJw=="
},
"@jellyfin/sdk": {
- "version": "0.0.0-unstable.202506280502",
- "resolved": "https://registry.npmjs.org/@jellyfin/sdk/-/sdk-0.0.0-unstable.202506280502.tgz",
- "integrity": "sha512-6aOrvBvPhIqBhw0FttJ6cMSXVoEJIOkg1Vb9MVgPDqcqDpftrYlbFyzVWJ7zHN4Fc1X/CO338j/U1zOc72Arow==",
+ "version": "0.0.0-unstable.202507090504",
+ "resolved": "https://registry.npmjs.org/@jellyfin/sdk/-/sdk-0.0.0-unstable.202507090504.tgz",
+ "integrity": "sha512-znwTsY9+gyJDPmwFOET+rtZQ1QryziG6LFhGXPXPF1ltJspV4Ixk70ST1t925vvtXdpqoGqMu92OZWOqkiNLbg==",
"requires": {}
},
"@jellyfin/ux-web": {
diff --git a/package.json b/package.json
index 5ebfafc46..0bdb21e68 100644
--- a/package.json
+++ b/package.json
@@ -84,7 +84,7 @@
"@fontsource/noto-sans-sc": "5.2.6",
"@fontsource/noto-sans-tc": "5.2.6",
"@jellyfin/libass-wasm": "4.2.3",
- "@jellyfin/sdk": "0.0.0-unstable.202506280502",
+ "@jellyfin/sdk": "0.0.0-unstable.202507090504",
"@jellyfin/ux-web": "1.0.0",
"@mui/icons-material": "6.4.12",
"@mui/material": "6.4.12",
From 038574adfc9e8e3f7cd3edd605ba3400ab54031f Mon Sep 17 00:00:00 2001
From: enter-a-random-username
<112093608+enter-a-random-username@users.noreply.github.com>
Date: Fri, 28 Mar 2025 19:00:34 +0100
Subject: [PATCH 641/645] Allow to scroll partial images in slider
---
src/elements/emby-scrollbuttons/utils.ts | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/src/elements/emby-scrollbuttons/utils.ts b/src/elements/emby-scrollbuttons/utils.ts
index 0d925957a..adb4c4183 100644
--- a/src/elements/emby-scrollbuttons/utils.ts
+++ b/src/elements/emby-scrollbuttons/utils.ts
@@ -76,7 +76,7 @@ function scrollToWindow({
let scrollToPosition: number;
if (direction === ScrollDirection.RIGHT) {
- const nextItem = items[lastVisibleIndex];
+ const nextItem = items[lastVisibleIndex] ? items[lastVisibleIndex] : items[lastVisibleIndex - 1];
// This will be the position to anchor the item at `lastVisibleIndex` to the start of the view window.
const nextItemScrollOffset = lastVisibleIndex * nextItem.offsetWidth;
From afe25ee596c8d013de8d0335d13e61f3a0fa7dac Mon Sep 17 00:00:00 2001
From: enter-a-random-username
<112093608+enter-a-random-username@users.noreply.github.com>
Date: Fri, 28 Mar 2025 22:27:58 +0100
Subject: [PATCH 642/645] Update src/elements/emby-scrollbuttons/utils.ts
Co-authored-by: viown <48097677+viown@users.noreply.github.com>
---
src/elements/emby-scrollbuttons/utils.ts | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/src/elements/emby-scrollbuttons/utils.ts b/src/elements/emby-scrollbuttons/utils.ts
index adb4c4183..d21a81004 100644
--- a/src/elements/emby-scrollbuttons/utils.ts
+++ b/src/elements/emby-scrollbuttons/utils.ts
@@ -76,7 +76,7 @@ function scrollToWindow({
let scrollToPosition: number;
if (direction === ScrollDirection.RIGHT) {
- const nextItem = items[lastVisibleIndex] ? items[lastVisibleIndex] : items[lastVisibleIndex - 1];
+ const nextItem = items[lastVisibleIndex] || items[lastVisibleIndex - 1];
// This will be the position to anchor the item at `lastVisibleIndex` to the start of the view window.
const nextItemScrollOffset = lastVisibleIndex * nextItem.offsetWidth;
From ce9d13a4ad08550eefe34471b0a19fb2f3e1fcce Mon Sep 17 00:00:00 2001
From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com>
Date: Wed, 9 Jul 2025 18:17:33 +0000
Subject: [PATCH 643/645] Update dependency typescript-eslint to v8.35.1
---
package-lock.json | 514 +++++++++-------------------------------------
package.json | 2 +-
2 files changed, 95 insertions(+), 421 deletions(-)
diff --git a/package-lock.json b/package-lock.json
index a77020d0b..e5766fc8e 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -128,7 +128,7 @@
"stylelint-scss": "6.12.1",
"ts-loader": "9.5.2",
"typescript": "5.8.3",
- "typescript-eslint": "8.34.1",
+ "typescript-eslint": "8.35.1",
"vitest": "3.2.4",
"webpack": "5.99.9",
"webpack-bundle-analyzer": "4.10.2",
@@ -6042,17 +6042,17 @@
}
},
"node_modules/@typescript-eslint/eslint-plugin": {
- "version": "8.34.1",
- "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-8.34.1.tgz",
- "integrity": "sha512-STXcN6ebF6li4PxwNeFnqF8/2BNDvBupf2OPx2yWNzr6mKNGF7q49VM00Pz5FaomJyqvbXpY6PhO+T9w139YEQ==",
+ "version": "8.35.1",
+ "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-8.35.1.tgz",
+ "integrity": "sha512-9XNTlo7P7RJxbVeICaIIIEipqxLKguyh+3UbXuT2XQuFp6d8VOeDEGuz5IiX0dgZo8CiI6aOFLg4e8cF71SFVg==",
"dev": true,
"license": "MIT",
"dependencies": {
"@eslint-community/regexpp": "^4.10.0",
- "@typescript-eslint/scope-manager": "8.34.1",
- "@typescript-eslint/type-utils": "8.34.1",
- "@typescript-eslint/utils": "8.34.1",
- "@typescript-eslint/visitor-keys": "8.34.1",
+ "@typescript-eslint/scope-manager": "8.35.1",
+ "@typescript-eslint/type-utils": "8.35.1",
+ "@typescript-eslint/utils": "8.35.1",
+ "@typescript-eslint/visitor-keys": "8.35.1",
"graphemer": "^1.4.0",
"ignore": "^7.0.0",
"natural-compare": "^1.4.0",
@@ -6066,7 +6066,7 @@
"url": "https://opencollective.com/typescript-eslint"
},
"peerDependencies": {
- "@typescript-eslint/parser": "^8.34.1",
+ "@typescript-eslint/parser": "^8.35.1",
"eslint": "^8.57.0 || ^9.0.0",
"typescript": ">=4.8.4 <5.9.0"
}
@@ -6106,7 +6106,7 @@
"typescript": ">=4.8.4 <5.9.0"
}
},
- "node_modules/@typescript-eslint/parser/node_modules/@typescript-eslint/project-service": {
+ "node_modules/@typescript-eslint/project-service": {
"version": "8.35.1",
"resolved": "https://registry.npmjs.org/@typescript-eslint/project-service/-/project-service-8.35.1.tgz",
"integrity": "sha512-VYxn/5LOpVxADAuP3NrnxxHYfzVtQzLKeldIhDhzC8UHaiQvYlXvKuVho1qLduFbJjjy5U5bkGwa3rUGUb1Q6Q==",
@@ -6128,7 +6128,7 @@
"typescript": ">=4.8.4 <5.9.0"
}
},
- "node_modules/@typescript-eslint/parser/node_modules/@typescript-eslint/scope-manager": {
+ "node_modules/@typescript-eslint/scope-manager": {
"version": "8.35.1",
"resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-8.35.1.tgz",
"integrity": "sha512-s/Bpd4i7ht2934nG+UoSPlYXd08KYz3bmjLEb7Ye1UVob0d1ENiT3lY8bsCmik4RqfSbPw9xJJHbugpPpP5JUg==",
@@ -6146,7 +6146,7 @@
"url": "https://opencollective.com/typescript-eslint"
}
},
- "node_modules/@typescript-eslint/parser/node_modules/@typescript-eslint/tsconfig-utils": {
+ "node_modules/@typescript-eslint/tsconfig-utils": {
"version": "8.35.1",
"resolved": "https://registry.npmjs.org/@typescript-eslint/tsconfig-utils/-/tsconfig-utils-8.35.1.tgz",
"integrity": "sha512-K5/U9VmT9dTHoNowWZpz+/TObS3xqC5h0xAIjXPw+MNcKV9qg6eSatEnmeAwkjHijhACH0/N7bkhKvbt1+DXWQ==",
@@ -6163,199 +6163,15 @@
"typescript": ">=4.8.4 <5.9.0"
}
},
- "node_modules/@typescript-eslint/parser/node_modules/@typescript-eslint/types": {
- "version": "8.35.1",
- "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-8.35.1.tgz",
- "integrity": "sha512-q/O04vVnKHfrrhNAscndAn1tuQhIkwqnaW+eu5waD5IPts2eX1dgJxgqcPx5BX109/qAz7IG6VrEPTOYKCNfRQ==",
- "dev": true,
- "license": "MIT",
- "engines": {
- "node": "^18.18.0 || ^20.9.0 || >=21.1.0"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/typescript-eslint"
- }
- },
- "node_modules/@typescript-eslint/parser/node_modules/@typescript-eslint/typescript-estree": {
- "version": "8.35.1",
- "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-8.35.1.tgz",
- "integrity": "sha512-Vvpuvj4tBxIka7cPs6Y1uvM7gJgdF5Uu9F+mBJBPY4MhvjrjWGK4H0lVgLJd/8PWZ23FTqsaJaLEkBCFUk8Y9g==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "@typescript-eslint/project-service": "8.35.1",
- "@typescript-eslint/tsconfig-utils": "8.35.1",
- "@typescript-eslint/types": "8.35.1",
- "@typescript-eslint/visitor-keys": "8.35.1",
- "debug": "^4.3.4",
- "fast-glob": "^3.3.2",
- "is-glob": "^4.0.3",
- "minimatch": "^9.0.4",
- "semver": "^7.6.0",
- "ts-api-utils": "^2.1.0"
- },
- "engines": {
- "node": "^18.18.0 || ^20.9.0 || >=21.1.0"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/typescript-eslint"
- },
- "peerDependencies": {
- "typescript": ">=4.8.4 <5.9.0"
- }
- },
- "node_modules/@typescript-eslint/parser/node_modules/@typescript-eslint/visitor-keys": {
- "version": "8.35.1",
- "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-8.35.1.tgz",
- "integrity": "sha512-VRwixir4zBWCSTP/ljEo091lbpypz57PoeAQ9imjG+vbeof9LplljsL1mos4ccG6H9IjfrVGM359RozUnuFhpw==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "@typescript-eslint/types": "8.35.1",
- "eslint-visitor-keys": "^4.2.1"
- },
- "engines": {
- "node": "^18.18.0 || ^20.9.0 || >=21.1.0"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/typescript-eslint"
- }
- },
- "node_modules/@typescript-eslint/parser/node_modules/brace-expansion": {
- "version": "2.0.2",
- "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.2.tgz",
- "integrity": "sha512-Jt0vHyM+jmUBqojB7E1NIYadt0vI0Qxjxd2TErW94wDz+E2LAm5vKMXXwg6ZZBTHPuUlDgQHKXvjGBdfcF1ZDQ==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "balanced-match": "^1.0.0"
- }
- },
- "node_modules/@typescript-eslint/parser/node_modules/eslint-visitor-keys": {
- "version": "4.2.1",
- "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-4.2.1.tgz",
- "integrity": "sha512-Uhdk5sfqcee/9H/rCOJikYz67o0a2Tw2hGRPOG2Y1R2dg7brRe1uG0yaNQDHu+TO/uQPF/5eCapvYSmHUjt7JQ==",
- "dev": true,
- "license": "Apache-2.0",
- "engines": {
- "node": "^18.18.0 || ^20.9.0 || >=21.1.0"
- },
- "funding": {
- "url": "https://opencollective.com/eslint"
- }
- },
- "node_modules/@typescript-eslint/parser/node_modules/minimatch": {
- "version": "9.0.5",
- "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.5.tgz",
- "integrity": "sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==",
- "dev": true,
- "license": "ISC",
- "dependencies": {
- "brace-expansion": "^2.0.1"
- },
- "engines": {
- "node": ">=16 || 14 >=14.17"
- },
- "funding": {
- "url": "https://github.com/sponsors/isaacs"
- }
- },
- "node_modules/@typescript-eslint/parser/node_modules/semver": {
- "version": "7.7.2",
- "resolved": "https://registry.npmjs.org/semver/-/semver-7.7.2.tgz",
- "integrity": "sha512-RF0Fw+rO5AMf9MAyaRXI4AV0Ulj5lMHqVxxdSgiVbixSCXoEmmX/jk0CuJw4+3SqroYO9VoUh+HcuJivvtJemA==",
- "dev": true,
- "license": "ISC",
- "bin": {
- "semver": "bin/semver.js"
- },
- "engines": {
- "node": ">=10"
- }
- },
- "node_modules/@typescript-eslint/project-service": {
- "version": "8.34.1",
- "resolved": "https://registry.npmjs.org/@typescript-eslint/project-service/-/project-service-8.34.1.tgz",
- "integrity": "sha512-nuHlOmFZfuRwLJKDGQOVc0xnQrAmuq1Mj/ISou5044y1ajGNp2BNliIqp7F2LPQ5sForz8lempMFCovfeS1XoA==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "@typescript-eslint/tsconfig-utils": "^8.34.1",
- "@typescript-eslint/types": "^8.34.1",
- "debug": "^4.3.4"
- },
- "engines": {
- "node": "^18.18.0 || ^20.9.0 || >=21.1.0"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/typescript-eslint"
- },
- "peerDependencies": {
- "typescript": ">=4.8.4 <5.9.0"
- }
- },
- "node_modules/@typescript-eslint/project-service/node_modules/@typescript-eslint/types": {
- "version": "8.35.0",
- "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-8.35.0.tgz",
- "integrity": "sha512-0mYH3emanku0vHw2aRLNGqe7EXh9WHEhi7kZzscrMDf6IIRUQ5Jk4wp1QrledE/36KtdZrVfKnE32eZCf/vaVQ==",
- "dev": true,
- "license": "MIT",
- "engines": {
- "node": "^18.18.0 || ^20.9.0 || >=21.1.0"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/typescript-eslint"
- }
- },
- "node_modules/@typescript-eslint/scope-manager": {
- "version": "8.34.1",
- "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-8.34.1.tgz",
- "integrity": "sha512-beu6o6QY4hJAgL1E8RaXNC071G4Kso2MGmJskCFQhRhg8VOH/FDbC8soP8NHN7e/Hdphwp8G8cE6OBzC8o41ZA==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "@typescript-eslint/types": "8.34.1",
- "@typescript-eslint/visitor-keys": "8.34.1"
- },
- "engines": {
- "node": "^18.18.0 || ^20.9.0 || >=21.1.0"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/typescript-eslint"
- }
- },
- "node_modules/@typescript-eslint/tsconfig-utils": {
- "version": "8.34.1",
- "resolved": "https://registry.npmjs.org/@typescript-eslint/tsconfig-utils/-/tsconfig-utils-8.34.1.tgz",
- "integrity": "sha512-K4Sjdo4/xF9NEeA2khOb7Y5nY6NSXBnod87uniVYW9kHP+hNlDV8trUSFeynA2uxWam4gIWgWoygPrv9VMWrYg==",
- "dev": true,
- "license": "MIT",
- "engines": {
- "node": "^18.18.0 || ^20.9.0 || >=21.1.0"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/typescript-eslint"
- },
- "peerDependencies": {
- "typescript": ">=4.8.4 <5.9.0"
- }
- },
"node_modules/@typescript-eslint/type-utils": {
- "version": "8.34.1",
- "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-8.34.1.tgz",
- "integrity": "sha512-Tv7tCCr6e5m8hP4+xFugcrwTOucB8lshffJ6zf1mF1TbU67R+ntCc6DzLNKM+s/uzDyv8gLq7tufaAhIBYeV8g==",
+ "version": "8.35.1",
+ "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-8.35.1.tgz",
+ "integrity": "sha512-HOrUBlfVRz5W2LIKpXzZoy6VTZzMu2n8q9C2V/cFngIC5U1nStJgv0tMV4sZPzdf4wQm9/ToWUFPMN9Vq9VJQQ==",
"dev": true,
"license": "MIT",
"dependencies": {
- "@typescript-eslint/typescript-estree": "8.34.1",
- "@typescript-eslint/utils": "8.34.1",
+ "@typescript-eslint/typescript-estree": "8.35.1",
+ "@typescript-eslint/utils": "8.35.1",
"debug": "^4.3.4",
"ts-api-utils": "^2.1.0"
},
@@ -6372,9 +6188,9 @@
}
},
"node_modules/@typescript-eslint/types": {
- "version": "8.34.1",
- "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-8.34.1.tgz",
- "integrity": "sha512-rjLVbmE7HR18kDsjNIZQHxmv9RZwlgzavryL5Lnj2ujIRTeXlKtILHgRNmQ3j4daw7zd+mQgy+uyt6Zo6I0IGA==",
+ "version": "8.35.1",
+ "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-8.35.1.tgz",
+ "integrity": "sha512-q/O04vVnKHfrrhNAscndAn1tuQhIkwqnaW+eu5waD5IPts2eX1dgJxgqcPx5BX109/qAz7IG6VrEPTOYKCNfRQ==",
"dev": true,
"license": "MIT",
"engines": {
@@ -6386,16 +6202,16 @@
}
},
"node_modules/@typescript-eslint/typescript-estree": {
- "version": "8.34.1",
- "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-8.34.1.tgz",
- "integrity": "sha512-rjCNqqYPuMUF5ODD+hWBNmOitjBWghkGKJg6hiCHzUvXRy6rK22Jd3rwbP2Xi+R7oYVvIKhokHVhH41BxPV5mA==",
+ "version": "8.35.1",
+ "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-8.35.1.tgz",
+ "integrity": "sha512-Vvpuvj4tBxIka7cPs6Y1uvM7gJgdF5Uu9F+mBJBPY4MhvjrjWGK4H0lVgLJd/8PWZ23FTqsaJaLEkBCFUk8Y9g==",
"dev": true,
"license": "MIT",
"dependencies": {
- "@typescript-eslint/project-service": "8.34.1",
- "@typescript-eslint/tsconfig-utils": "8.34.1",
- "@typescript-eslint/types": "8.34.1",
- "@typescript-eslint/visitor-keys": "8.34.1",
+ "@typescript-eslint/project-service": "8.35.1",
+ "@typescript-eslint/tsconfig-utils": "8.35.1",
+ "@typescript-eslint/types": "8.35.1",
+ "@typescript-eslint/visitor-keys": "8.35.1",
"debug": "^4.3.4",
"fast-glob": "^3.3.2",
"is-glob": "^4.0.3",
@@ -6454,16 +6270,16 @@
}
},
"node_modules/@typescript-eslint/utils": {
- "version": "8.34.1",
- "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-8.34.1.tgz",
- "integrity": "sha512-mqOwUdZ3KjtGk7xJJnLbHxTuWVn3GO2WZZuM+Slhkun4+qthLdXx32C8xIXbO1kfCECb3jIs3eoxK3eryk7aoQ==",
+ "version": "8.35.1",
+ "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-8.35.1.tgz",
+ "integrity": "sha512-lhnwatFmOFcazAsUm3ZnZFpXSxiwoa1Lj50HphnDe1Et01NF4+hrdXONSUHIcbVu2eFb1bAf+5yjXkGVkXBKAQ==",
"dev": true,
"license": "MIT",
"dependencies": {
"@eslint-community/eslint-utils": "^4.7.0",
- "@typescript-eslint/scope-manager": "8.34.1",
- "@typescript-eslint/types": "8.34.1",
- "@typescript-eslint/typescript-estree": "8.34.1"
+ "@typescript-eslint/scope-manager": "8.35.1",
+ "@typescript-eslint/types": "8.35.1",
+ "@typescript-eslint/typescript-estree": "8.35.1"
},
"engines": {
"node": "^18.18.0 || ^20.9.0 || >=21.1.0"
@@ -6478,13 +6294,13 @@
}
},
"node_modules/@typescript-eslint/visitor-keys": {
- "version": "8.34.1",
- "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-8.34.1.tgz",
- "integrity": "sha512-xoh5rJ+tgsRKoXnkBPFRLZ7rjKM0AfVbC68UZ/ECXoDbfggb9RbEySN359acY1vS3qZ0jVTVWzbtfapwm5ztxw==",
+ "version": "8.35.1",
+ "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-8.35.1.tgz",
+ "integrity": "sha512-VRwixir4zBWCSTP/ljEo091lbpypz57PoeAQ9imjG+vbeof9LplljsL1mos4ccG6H9IjfrVGM359RozUnuFhpw==",
"dev": true,
"license": "MIT",
"dependencies": {
- "@typescript-eslint/types": "8.34.1",
+ "@typescript-eslint/types": "8.35.1",
"eslint-visitor-keys": "^4.2.1"
},
"engines": {
@@ -23905,40 +23721,15 @@
}
},
"node_modules/typescript-eslint": {
- "version": "8.34.1",
- "resolved": "https://registry.npmjs.org/typescript-eslint/-/typescript-eslint-8.34.1.tgz",
- "integrity": "sha512-XjS+b6Vg9oT1BaIUfkW3M3LvqZE++rbzAMEHuccCfO/YkP43ha6w3jTEMilQxMF92nVOYCcdjv1ZUhAa1D/0ow==",
+ "version": "8.35.1",
+ "resolved": "https://registry.npmjs.org/typescript-eslint/-/typescript-eslint-8.35.1.tgz",
+ "integrity": "sha512-xslJjFzhOmHYQzSB/QTeASAHbjmxOGEP6Coh93TXmUBFQoJ1VU35UHIDmG06Jd6taf3wqqC1ntBnCMeymy5Ovw==",
"dev": true,
"license": "MIT",
"dependencies": {
- "@typescript-eslint/eslint-plugin": "8.34.1",
- "@typescript-eslint/parser": "8.34.1",
- "@typescript-eslint/utils": "8.34.1"
- },
- "engines": {
- "node": "^18.18.0 || ^20.9.0 || >=21.1.0"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/typescript-eslint"
- },
- "peerDependencies": {
- "eslint": "^8.57.0 || ^9.0.0",
- "typescript": ">=4.8.4 <5.9.0"
- }
- },
- "node_modules/typescript-eslint/node_modules/@typescript-eslint/parser": {
- "version": "8.34.1",
- "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-8.34.1.tgz",
- "integrity": "sha512-4O3idHxhyzjClSMJ0a29AcoK0+YwnEqzI6oz3vlRf3xw0zbzt15MzXwItOlnr5nIth6zlY2RENLsOPvhyrKAQA==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "@typescript-eslint/scope-manager": "8.34.1",
- "@typescript-eslint/types": "8.34.1",
- "@typescript-eslint/typescript-estree": "8.34.1",
- "@typescript-eslint/visitor-keys": "8.34.1",
- "debug": "^4.3.4"
+ "@typescript-eslint/eslint-plugin": "8.35.1",
+ "@typescript-eslint/parser": "8.35.1",
+ "@typescript-eslint/utils": "8.35.1"
},
"engines": {
"node": "^18.18.0 || ^20.9.0 || >=21.1.0"
@@ -28836,16 +28627,16 @@
}
},
"@typescript-eslint/eslint-plugin": {
- "version": "8.34.1",
- "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-8.34.1.tgz",
- "integrity": "sha512-STXcN6ebF6li4PxwNeFnqF8/2BNDvBupf2OPx2yWNzr6mKNGF7q49VM00Pz5FaomJyqvbXpY6PhO+T9w139YEQ==",
+ "version": "8.35.1",
+ "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-8.35.1.tgz",
+ "integrity": "sha512-9XNTlo7P7RJxbVeICaIIIEipqxLKguyh+3UbXuT2XQuFp6d8VOeDEGuz5IiX0dgZo8CiI6aOFLg4e8cF71SFVg==",
"dev": true,
"requires": {
"@eslint-community/regexpp": "^4.10.0",
- "@typescript-eslint/scope-manager": "8.34.1",
- "@typescript-eslint/type-utils": "8.34.1",
- "@typescript-eslint/utils": "8.34.1",
- "@typescript-eslint/visitor-keys": "8.34.1",
+ "@typescript-eslint/scope-manager": "8.35.1",
+ "@typescript-eslint/type-utils": "8.35.1",
+ "@typescript-eslint/utils": "8.35.1",
+ "@typescript-eslint/visitor-keys": "8.35.1",
"graphemer": "^1.4.0",
"ignore": "^7.0.0",
"natural-compare": "^1.4.0",
@@ -28871,166 +28662,64 @@
"@typescript-eslint/typescript-estree": "8.35.1",
"@typescript-eslint/visitor-keys": "8.35.1",
"debug": "^4.3.4"
- },
- "dependencies": {
- "@typescript-eslint/project-service": {
- "version": "8.35.1",
- "resolved": "https://registry.npmjs.org/@typescript-eslint/project-service/-/project-service-8.35.1.tgz",
- "integrity": "sha512-VYxn/5LOpVxADAuP3NrnxxHYfzVtQzLKeldIhDhzC8UHaiQvYlXvKuVho1qLduFbJjjy5U5bkGwa3rUGUb1Q6Q==",
- "dev": true,
- "requires": {
- "@typescript-eslint/tsconfig-utils": "^8.35.1",
- "@typescript-eslint/types": "^8.35.1",
- "debug": "^4.3.4"
- }
- },
- "@typescript-eslint/scope-manager": {
- "version": "8.35.1",
- "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-8.35.1.tgz",
- "integrity": "sha512-s/Bpd4i7ht2934nG+UoSPlYXd08KYz3bmjLEb7Ye1UVob0d1ENiT3lY8bsCmik4RqfSbPw9xJJHbugpPpP5JUg==",
- "dev": true,
- "requires": {
- "@typescript-eslint/types": "8.35.1",
- "@typescript-eslint/visitor-keys": "8.35.1"
- }
- },
- "@typescript-eslint/tsconfig-utils": {
- "version": "8.35.1",
- "resolved": "https://registry.npmjs.org/@typescript-eslint/tsconfig-utils/-/tsconfig-utils-8.35.1.tgz",
- "integrity": "sha512-K5/U9VmT9dTHoNowWZpz+/TObS3xqC5h0xAIjXPw+MNcKV9qg6eSatEnmeAwkjHijhACH0/N7bkhKvbt1+DXWQ==",
- "dev": true,
- "requires": {}
- },
- "@typescript-eslint/types": {
- "version": "8.35.1",
- "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-8.35.1.tgz",
- "integrity": "sha512-q/O04vVnKHfrrhNAscndAn1tuQhIkwqnaW+eu5waD5IPts2eX1dgJxgqcPx5BX109/qAz7IG6VrEPTOYKCNfRQ==",
- "dev": true
- },
- "@typescript-eslint/typescript-estree": {
- "version": "8.35.1",
- "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-8.35.1.tgz",
- "integrity": "sha512-Vvpuvj4tBxIka7cPs6Y1uvM7gJgdF5Uu9F+mBJBPY4MhvjrjWGK4H0lVgLJd/8PWZ23FTqsaJaLEkBCFUk8Y9g==",
- "dev": true,
- "requires": {
- "@typescript-eslint/project-service": "8.35.1",
- "@typescript-eslint/tsconfig-utils": "8.35.1",
- "@typescript-eslint/types": "8.35.1",
- "@typescript-eslint/visitor-keys": "8.35.1",
- "debug": "^4.3.4",
- "fast-glob": "^3.3.2",
- "is-glob": "^4.0.3",
- "minimatch": "^9.0.4",
- "semver": "^7.6.0",
- "ts-api-utils": "^2.1.0"
- }
- },
- "@typescript-eslint/visitor-keys": {
- "version": "8.35.1",
- "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-8.35.1.tgz",
- "integrity": "sha512-VRwixir4zBWCSTP/ljEo091lbpypz57PoeAQ9imjG+vbeof9LplljsL1mos4ccG6H9IjfrVGM359RozUnuFhpw==",
- "dev": true,
- "requires": {
- "@typescript-eslint/types": "8.35.1",
- "eslint-visitor-keys": "^4.2.1"
- }
- },
- "brace-expansion": {
- "version": "2.0.2",
- "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.2.tgz",
- "integrity": "sha512-Jt0vHyM+jmUBqojB7E1NIYadt0vI0Qxjxd2TErW94wDz+E2LAm5vKMXXwg6ZZBTHPuUlDgQHKXvjGBdfcF1ZDQ==",
- "dev": true,
- "requires": {
- "balanced-match": "^1.0.0"
- }
- },
- "eslint-visitor-keys": {
- "version": "4.2.1",
- "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-4.2.1.tgz",
- "integrity": "sha512-Uhdk5sfqcee/9H/rCOJikYz67o0a2Tw2hGRPOG2Y1R2dg7brRe1uG0yaNQDHu+TO/uQPF/5eCapvYSmHUjt7JQ==",
- "dev": true
- },
- "minimatch": {
- "version": "9.0.5",
- "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.5.tgz",
- "integrity": "sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==",
- "dev": true,
- "requires": {
- "brace-expansion": "^2.0.1"
- }
- },
- "semver": {
- "version": "7.7.2",
- "resolved": "https://registry.npmjs.org/semver/-/semver-7.7.2.tgz",
- "integrity": "sha512-RF0Fw+rO5AMf9MAyaRXI4AV0Ulj5lMHqVxxdSgiVbixSCXoEmmX/jk0CuJw4+3SqroYO9VoUh+HcuJivvtJemA==",
- "dev": true
- }
}
},
"@typescript-eslint/project-service": {
- "version": "8.34.1",
- "resolved": "https://registry.npmjs.org/@typescript-eslint/project-service/-/project-service-8.34.1.tgz",
- "integrity": "sha512-nuHlOmFZfuRwLJKDGQOVc0xnQrAmuq1Mj/ISou5044y1ajGNp2BNliIqp7F2LPQ5sForz8lempMFCovfeS1XoA==",
+ "version": "8.35.1",
+ "resolved": "https://registry.npmjs.org/@typescript-eslint/project-service/-/project-service-8.35.1.tgz",
+ "integrity": "sha512-VYxn/5LOpVxADAuP3NrnxxHYfzVtQzLKeldIhDhzC8UHaiQvYlXvKuVho1qLduFbJjjy5U5bkGwa3rUGUb1Q6Q==",
"dev": true,
"requires": {
- "@typescript-eslint/tsconfig-utils": "^8.34.1",
- "@typescript-eslint/types": "^8.34.1",
+ "@typescript-eslint/tsconfig-utils": "^8.35.1",
+ "@typescript-eslint/types": "^8.35.1",
"debug": "^4.3.4"
- },
- "dependencies": {
- "@typescript-eslint/types": {
- "version": "8.35.0",
- "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-8.35.0.tgz",
- "integrity": "sha512-0mYH3emanku0vHw2aRLNGqe7EXh9WHEhi7kZzscrMDf6IIRUQ5Jk4wp1QrledE/36KtdZrVfKnE32eZCf/vaVQ==",
- "dev": true
- }
}
},
"@typescript-eslint/scope-manager": {
- "version": "8.34.1",
- "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-8.34.1.tgz",
- "integrity": "sha512-beu6o6QY4hJAgL1E8RaXNC071G4Kso2MGmJskCFQhRhg8VOH/FDbC8soP8NHN7e/Hdphwp8G8cE6OBzC8o41ZA==",
+ "version": "8.35.1",
+ "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-8.35.1.tgz",
+ "integrity": "sha512-s/Bpd4i7ht2934nG+UoSPlYXd08KYz3bmjLEb7Ye1UVob0d1ENiT3lY8bsCmik4RqfSbPw9xJJHbugpPpP5JUg==",
"dev": true,
"requires": {
- "@typescript-eslint/types": "8.34.1",
- "@typescript-eslint/visitor-keys": "8.34.1"
+ "@typescript-eslint/types": "8.35.1",
+ "@typescript-eslint/visitor-keys": "8.35.1"
}
},
"@typescript-eslint/tsconfig-utils": {
- "version": "8.34.1",
- "resolved": "https://registry.npmjs.org/@typescript-eslint/tsconfig-utils/-/tsconfig-utils-8.34.1.tgz",
- "integrity": "sha512-K4Sjdo4/xF9NEeA2khOb7Y5nY6NSXBnod87uniVYW9kHP+hNlDV8trUSFeynA2uxWam4gIWgWoygPrv9VMWrYg==",
+ "version": "8.35.1",
+ "resolved": "https://registry.npmjs.org/@typescript-eslint/tsconfig-utils/-/tsconfig-utils-8.35.1.tgz",
+ "integrity": "sha512-K5/U9VmT9dTHoNowWZpz+/TObS3xqC5h0xAIjXPw+MNcKV9qg6eSatEnmeAwkjHijhACH0/N7bkhKvbt1+DXWQ==",
"dev": true,
"requires": {}
},
"@typescript-eslint/type-utils": {
- "version": "8.34.1",
- "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-8.34.1.tgz",
- "integrity": "sha512-Tv7tCCr6e5m8hP4+xFugcrwTOucB8lshffJ6zf1mF1TbU67R+ntCc6DzLNKM+s/uzDyv8gLq7tufaAhIBYeV8g==",
+ "version": "8.35.1",
+ "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-8.35.1.tgz",
+ "integrity": "sha512-HOrUBlfVRz5W2LIKpXzZoy6VTZzMu2n8q9C2V/cFngIC5U1nStJgv0tMV4sZPzdf4wQm9/ToWUFPMN9Vq9VJQQ==",
"dev": true,
"requires": {
- "@typescript-eslint/typescript-estree": "8.34.1",
- "@typescript-eslint/utils": "8.34.1",
+ "@typescript-eslint/typescript-estree": "8.35.1",
+ "@typescript-eslint/utils": "8.35.1",
"debug": "^4.3.4",
"ts-api-utils": "^2.1.0"
}
},
"@typescript-eslint/types": {
- "version": "8.34.1",
- "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-8.34.1.tgz",
- "integrity": "sha512-rjLVbmE7HR18kDsjNIZQHxmv9RZwlgzavryL5Lnj2ujIRTeXlKtILHgRNmQ3j4daw7zd+mQgy+uyt6Zo6I0IGA==",
+ "version": "8.35.1",
+ "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-8.35.1.tgz",
+ "integrity": "sha512-q/O04vVnKHfrrhNAscndAn1tuQhIkwqnaW+eu5waD5IPts2eX1dgJxgqcPx5BX109/qAz7IG6VrEPTOYKCNfRQ==",
"dev": true
},
"@typescript-eslint/typescript-estree": {
- "version": "8.34.1",
- "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-8.34.1.tgz",
- "integrity": "sha512-rjCNqqYPuMUF5ODD+hWBNmOitjBWghkGKJg6hiCHzUvXRy6rK22Jd3rwbP2Xi+R7oYVvIKhokHVhH41BxPV5mA==",
+ "version": "8.35.1",
+ "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-8.35.1.tgz",
+ "integrity": "sha512-Vvpuvj4tBxIka7cPs6Y1uvM7gJgdF5Uu9F+mBJBPY4MhvjrjWGK4H0lVgLJd/8PWZ23FTqsaJaLEkBCFUk8Y9g==",
"dev": true,
"requires": {
- "@typescript-eslint/project-service": "8.34.1",
- "@typescript-eslint/tsconfig-utils": "8.34.1",
- "@typescript-eslint/types": "8.34.1",
- "@typescript-eslint/visitor-keys": "8.34.1",
+ "@typescript-eslint/project-service": "8.35.1",
+ "@typescript-eslint/tsconfig-utils": "8.35.1",
+ "@typescript-eslint/types": "8.35.1",
+ "@typescript-eslint/visitor-keys": "8.35.1",
"debug": "^4.3.4",
"fast-glob": "^3.3.2",
"is-glob": "^4.0.3",
@@ -29066,24 +28755,24 @@
}
},
"@typescript-eslint/utils": {
- "version": "8.34.1",
- "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-8.34.1.tgz",
- "integrity": "sha512-mqOwUdZ3KjtGk7xJJnLbHxTuWVn3GO2WZZuM+Slhkun4+qthLdXx32C8xIXbO1kfCECb3jIs3eoxK3eryk7aoQ==",
+ "version": "8.35.1",
+ "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-8.35.1.tgz",
+ "integrity": "sha512-lhnwatFmOFcazAsUm3ZnZFpXSxiwoa1Lj50HphnDe1Et01NF4+hrdXONSUHIcbVu2eFb1bAf+5yjXkGVkXBKAQ==",
"dev": true,
"requires": {
"@eslint-community/eslint-utils": "^4.7.0",
- "@typescript-eslint/scope-manager": "8.34.1",
- "@typescript-eslint/types": "8.34.1",
- "@typescript-eslint/typescript-estree": "8.34.1"
+ "@typescript-eslint/scope-manager": "8.35.1",
+ "@typescript-eslint/types": "8.35.1",
+ "@typescript-eslint/typescript-estree": "8.35.1"
}
},
"@typescript-eslint/visitor-keys": {
- "version": "8.34.1",
- "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-8.34.1.tgz",
- "integrity": "sha512-xoh5rJ+tgsRKoXnkBPFRLZ7rjKM0AfVbC68UZ/ECXoDbfggb9RbEySN359acY1vS3qZ0jVTVWzbtfapwm5ztxw==",
+ "version": "8.35.1",
+ "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-8.35.1.tgz",
+ "integrity": "sha512-VRwixir4zBWCSTP/ljEo091lbpypz57PoeAQ9imjG+vbeof9LplljsL1mos4ccG6H9IjfrVGM359RozUnuFhpw==",
"dev": true,
"requires": {
- "@typescript-eslint/types": "8.34.1",
+ "@typescript-eslint/types": "8.35.1",
"eslint-visitor-keys": "^4.2.1"
},
"dependencies": {
@@ -41206,29 +40895,14 @@
"dev": true
},
"typescript-eslint": {
- "version": "8.34.1",
- "resolved": "https://registry.npmjs.org/typescript-eslint/-/typescript-eslint-8.34.1.tgz",
- "integrity": "sha512-XjS+b6Vg9oT1BaIUfkW3M3LvqZE++rbzAMEHuccCfO/YkP43ha6w3jTEMilQxMF92nVOYCcdjv1ZUhAa1D/0ow==",
+ "version": "8.35.1",
+ "resolved": "https://registry.npmjs.org/typescript-eslint/-/typescript-eslint-8.35.1.tgz",
+ "integrity": "sha512-xslJjFzhOmHYQzSB/QTeASAHbjmxOGEP6Coh93TXmUBFQoJ1VU35UHIDmG06Jd6taf3wqqC1ntBnCMeymy5Ovw==",
"dev": true,
"requires": {
- "@typescript-eslint/eslint-plugin": "8.34.1",
- "@typescript-eslint/parser": "8.34.1",
- "@typescript-eslint/utils": "8.34.1"
- },
- "dependencies": {
- "@typescript-eslint/parser": {
- "version": "8.34.1",
- "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-8.34.1.tgz",
- "integrity": "sha512-4O3idHxhyzjClSMJ0a29AcoK0+YwnEqzI6oz3vlRf3xw0zbzt15MzXwItOlnr5nIth6zlY2RENLsOPvhyrKAQA==",
- "dev": true,
- "requires": {
- "@typescript-eslint/scope-manager": "8.34.1",
- "@typescript-eslint/types": "8.34.1",
- "@typescript-eslint/typescript-estree": "8.34.1",
- "@typescript-eslint/visitor-keys": "8.34.1",
- "debug": "^4.3.4"
- }
- }
+ "@typescript-eslint/eslint-plugin": "8.35.1",
+ "@typescript-eslint/parser": "8.35.1",
+ "@typescript-eslint/utils": "8.35.1"
}
},
"uc.micro": {
diff --git a/package.json b/package.json
index 862da327f..65a24cc91 100644
--- a/package.json
+++ b/package.json
@@ -65,7 +65,7 @@
"stylelint-scss": "6.12.1",
"ts-loader": "9.5.2",
"typescript": "5.8.3",
- "typescript-eslint": "8.34.1",
+ "typescript-eslint": "8.35.1",
"vitest": "3.2.4",
"webpack": "5.99.9",
"webpack-bundle-analyzer": "4.10.2",
From 3327502fede7cc72476f1f3f7ef90dd1e52a1871 Mon Sep 17 00:00:00 2001
From: oofybruh9
Date: Wed, 9 Jul 2025 22:18:31 -0400
Subject: [PATCH 644/645] Translated using Weblate (Spanish) Translation:
Jellyfin/Jellyfin Web Translate-URL:
https://translate.jellyfin.org/projects/jellyfin/jellyfin-web/es/
---
src/strings/es.json | 4 +++-
1 file changed, 3 insertions(+), 1 deletion(-)
diff --git a/src/strings/es.json b/src/strings/es.json
index 776dc70ac..2f4a6bf5f 100644
--- a/src/strings/es.json
+++ b/src/strings/es.json
@@ -2061,5 +2061,7 @@
"TranscodingLoadError": "Error al cargar la configuración de transcodificación",
"MessageRestoreDisclaimer": "ADVERTENCIA: Estás a punto de restaurar una copia de seguridad anterior. Tu servidor quedará inoperativo durante el proceso y se perderán todos los datos nuevos creados desde la fecha de esa copia.",
"MessageRestoreInProgress": "Restauración en progreso",
- "MessageWaitingForServer": "Esperando al servidor..."
+ "MessageWaitingForServer": "Esperando al servidor...",
+ "LiveTVPageLoadError": "Falló la carga de la pagina de grabaciones",
+ "ConnectAnyway": "Conectar de todos modos"
}
From 7cabe79ac31e904b0c82f20d430944d62dcf78b9 Mon Sep 17 00:00:00 2001
From: HALKRON
Date: Thu, 10 Jul 2025 17:31:37 -0400
Subject: [PATCH 645/645] Translated using Weblate (Burmese) Translation:
Jellyfin/Jellyfin Web Translate-URL:
https://translate.jellyfin.org/projects/jellyfin/jellyfin-web/my/
---
src/strings/my.json | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/src/strings/my.json b/src/strings/my.json
index c22f50ead..2e282b78d 100644
--- a/src/strings/my.json
+++ b/src/strings/my.json
@@ -116,10 +116,10 @@
"AddToPlaylist": "အစီအစဉ်သို့ ထည့်ပါ",
"AddToCollection": "စုစည်းမှုထဲထည့်ပါ",
"AdditionalNotificationServices": "ထပ်ဆောင်း သတိပေးချက်ဝန်ဆောင်မှုများကို ထည့်သွင်းရန် ပလပ်အင်ကတ်တလောက်ကို ကြည့်ရှုပါ။",
- "AddedOnValue": "ထပ်ခဲ့သည်။{0}",
+ "AddedOnValue": "{0} ထပ်ခဲ့သည်",
"Add": "ထပ်မည်။",
"Actor": "သရုပ်ဆောင်",
- "AccessRestrictedTryAgainLater": "ဝင်ရောက်ခွင့်ကို လောလောဆယ် ကန့်သတ်ထားပါသည်။ နောက်တစ်ကြိမ် ထပ်မံကြိုးစားကြည့်ပါ။.",
+ "AccessRestrictedTryAgainLater": "ဝင်ရောက်ခွင့်ကို လတ်တလော ကန့်သတ်ထားပါသည်။ နောက်တစ်ကြိမ် ထပ်မံကြိုးစားကြည့်ပါ။.",
"Absolute": "ပကတိ",
"DirectPlayHelp": "အရင်းအမြစ်ဖိုင်သည် ဤကလိုင်းယင့်နှင့် လုံးဝသဟဇာတဖြစ်ပြီး စက်ရှင်သည် ပြုပြင်မွမ်းမံမှုမရှိဘဲ ဖိုင်ကို လက်ခံရရှိနေပါသည်။",
"DirectPlaying": "တိုက်ရိုက်ဖွင့်ခြင်း",