From 1a765e85649cc902c36b99a07695bad6a3add6b5 Mon Sep 17 00:00:00 2001 From: grafixeyehero Date: Fri, 26 Apr 2024 05:17:38 +0300 Subject: [PATCH 01/33] Add PlaybackStopInfo Interface --- .../emby-itemscontainer/ItemsContainer.tsx | 17 ++++--- src/types/playbackStopInfo.ts | 46 +++++++++++++++++++ 2 files changed, 56 insertions(+), 7 deletions(-) create mode 100644 src/types/playbackStopInfo.ts diff --git a/src/elements/emby-itemscontainer/ItemsContainer.tsx b/src/elements/emby-itemscontainer/ItemsContainer.tsx index 44dc0c35d6..9d30c2b868 100644 --- a/src/elements/emby-itemscontainer/ItemsContainer.tsx +++ b/src/elements/emby-itemscontainer/ItemsContainer.tsx @@ -1,6 +1,8 @@ -import type { - LibraryUpdateInfo +import { + MediaType, + type LibraryUpdateInfo } from '@jellyfin/sdk/lib/generated-client'; +import { ApiClient } from 'jellyfin-apiclient'; import React, { type FC, useCallback, useEffect, useRef } from 'react'; import classNames from 'classnames'; import Box from '@mui/material/Box'; @@ -20,6 +22,7 @@ import MultiSelect from 'components/multiSelect/multiSelect'; import loading from 'components/loading/loading'; import focusManager from 'components/focusManager'; import type { ParentId } from 'types/library'; +import type { PlaybackStopInfo } from 'types/playbackStopInfo'; function disableEvent(e: MouseEvent) { e.preventDefault(); @@ -221,7 +224,7 @@ const ItemsContainer: FC = ({ ); const onLibraryChanged = useCallback( - (_e: Event, apiClient, data: LibraryUpdateInfo) => { + (_e: Event, _apiClient: ApiClient, data: LibraryUpdateInfo) => { if (eventsToMonitor.includes('seriestimers') || eventsToMonitor.includes('timers')) { // yes this is an assumption return; @@ -253,12 +256,12 @@ const ItemsContainer: FC = ({ ); const onPlaybackStopped = useCallback( - (_e: Event, stopInfo) => { + ( _e: Event, stopInfo: PlaybackStopInfo ) => { const state = stopInfo.state; if ( state.NowPlayingItem - && state.NowPlayingItem.MediaType === 'Video' + && state.NowPlayingItem.MediaType === MediaType.Video ) { if (eventsToMonitor.includes('videoplayback')) { notifyRefreshNeeded(true); @@ -266,8 +269,8 @@ const ItemsContainer: FC = ({ } } else if ( state.NowPlayingItem - && state.NowPlayingItem.MediaType === 'Audio' - && eventsToMonitor.includes('videoplayback') + && state.NowPlayingItem.MediaType === MediaType.Audio + && eventsToMonitor.includes('audioplayback') ) { notifyRefreshNeeded(true); return; diff --git a/src/types/playbackStopInfo.ts b/src/types/playbackStopInfo.ts new file mode 100644 index 0000000000..04c7950cb4 --- /dev/null +++ b/src/types/playbackStopInfo.ts @@ -0,0 +1,46 @@ +import type { + BaseItemDto, + GroupShuffleMode, + MediaSourceInfo, + MediaType, + PlayerStateInfo +} from '@jellyfin/sdk/lib/generated-client'; + +export interface BufferedRange { + start?: number; + end?: number; +} + +export interface PlayState extends PlayerStateInfo { + ShuffleMode?: GroupShuffleMode; + MaxStreamingBitrate?: number | null; + PlaybackStartTimeTicks?: number | null; + PlaybackRate?: number | null; + SecondarySubtitleStreamIndex?: number | null; + BufferedRanges?: BufferedRange[]; + PlaySessionId?: string | null; + PlaylistItemId?: string | null; +} + +export interface MediaSource extends MediaSourceInfo { + enableDirectPlay?: boolean; + DefaultSecondarySubtitleStreamIndex?: number | null; + StreamUrl?: string | null; + albumLUFS?: number | null; +} + +export interface PlayerState { + PlayState: PlayState; + NowPlayingItem: BaseItemDto | null; + NextItem: BaseItemDto | null; + NextMediaType: MediaType | null; + MediaSource: MediaSource | null; +} + +export interface PlaybackStopInfo { + player: unknown; // FIXME: add a proper interface + state: PlayerState; + nextItem: BaseItemDto | null; + nextMediaType: MediaType | null; +} + From c85db57b38b54d43971413b954e24a4dd790c19d Mon Sep 17 00:00:00 2001 From: Bill Thornton Date: Wed, 1 May 2024 01:56:22 -0400 Subject: [PATCH 02/33] Update album normalization value --- src/types/playbackStopInfo.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/types/playbackStopInfo.ts b/src/types/playbackStopInfo.ts index 04c7950cb4..b2fff761f3 100644 --- a/src/types/playbackStopInfo.ts +++ b/src/types/playbackStopInfo.ts @@ -26,7 +26,7 @@ export interface MediaSource extends MediaSourceInfo { enableDirectPlay?: boolean; DefaultSecondarySubtitleStreamIndex?: number | null; StreamUrl?: string | null; - albumLUFS?: number | null; + albumNormalizationGain?: number | null; } export interface PlayerState { From 0a4237c0463e46621806c94453b8a479683e4489 Mon Sep 17 00:00:00 2001 From: db1234719 Date: Thu, 2 May 2024 06:59:40 +0000 Subject: [PATCH 03/33] Translated using Weblate (Persian) Translation: Jellyfin/Jellyfin Web Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-web/fa/ --- src/strings/fa.json | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/src/strings/fa.json b/src/strings/fa.json index 11fa9eab51..551be4c5c2 100644 --- a/src/strings/fa.json +++ b/src/strings/fa.json @@ -1605,7 +1605,7 @@ "EnableAudioNormalization": "معمول سازی صوت", "AllowCollectionManagement": "به این کاربر اجازه مدیریت مجموعه را بده", "AllowSegmentDeletion": "تکه ها را پاک کن", - "AllowSegmentDeletionHelp": "پاک کردن تکه های قدیمی را بعد از فرستادن به کلاینت. این کار از ذخیره کل فایل transcode شده بر روی هارد جلوگیری می‌ کند. این تنها زمانی کار می کند که throttling فعال باشد. درصورت مشکل در هنگام پخش این ویژگی را غیرفعال کنید.", + "AllowSegmentDeletionHelp": "پاک کردن تکه های قدیمی بعد از دریافت کلاینت. این کار از ذخیره کل فایل transcode شده بر روی هارد جلوگیری می‌ کند. این تنها زمانی کار می کند که throttling فعال باشد. درصورت مشکل در هنگام پخش این ویژگی را غیرفعال کنید.", "LogLevel.Error": "خطا", "LogLevel.Critical": "بحرانی", "LogLevel.None": "هیچکدام", @@ -1625,5 +1625,8 @@ "LogLevel.Information": "اطلاعات", "LogoScreensaver": "محافظ صفحه لوگو", "Localization": "محلی‌سازی", - "HeaderGuestCast": "بازیگران مهمان" + "HeaderGuestCast": "بازیگران مهمان", + "AirPlay": "پخش هوا", + "AllowContentWithTagsHelp": "فقط رسانه های دارای حداقل یکی از برچسب های مشخص شده را نشان بده.", + "AllowSubtitleManagement": "به این کاربر اجازه ویرایش زیرنویس بده" } From 1711664e51e8908ad148f719036cc24ac539fdfb Mon Sep 17 00:00:00 2001 From: Paul Dee Date: Thu, 2 May 2024 13:34:59 +0000 Subject: [PATCH 04/33] 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 9a5271ed35..aa889e8669 100644 --- a/src/strings/en-gb.json +++ b/src/strings/en-gb.json @@ -1249,7 +1249,7 @@ "NoCreatedLibraries": "Seems like you haven't created any libraries yet. {0}Would you like to create one now?{1}", "AskAdminToCreateLibrary": "Ask an administrator to create a library.", "PlaybackErrorNoCompatibleStream": "This client isn't compatible with the media and the server isn't sending a compatible media format.", - "AllowFfmpegThrottlingHelp": "When a transcode or remux gets far enough ahead from the current playback position, pause the process so it will consume less resources. This is most useful when watching without seeking often. Turn this off if you experience playback issues.", + "AllowFfmpegThrottlingHelp": "When a transcode or remux gets far enough ahead from the current playback position, pause the process so it will consume fewer resources. This is most useful when watching without seeking often. Turn this off if you experience playback issues.", "AllowFfmpegThrottling": "Throttle Transcodes", "OnApplicationStartup": "On application startup", "EveryXHours": "Every {0} hours", From b1add6f48d27dea792ea26c65d4169ffaf2104f4 Mon Sep 17 00:00:00 2001 From: stanol Date: Thu, 2 May 2024 15:48:41 +0000 Subject: [PATCH 05/33] Translated using Weblate (Ukrainian) Translation: Jellyfin/Jellyfin Web Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-web/uk/ --- src/strings/uk.json | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/strings/uk.json b/src/strings/uk.json index 6d9ab023c6..132bf4fb67 100644 --- a/src/strings/uk.json +++ b/src/strings/uk.json @@ -1864,5 +1864,6 @@ "HeaderDeleteLyrics": "Видалити текст пісні", "HeaderNoLyrics": "Текст пісні не знайдено", "Lyrics": "Текст пісні", - "ViewLyrics": "Переглянути текст пісні" + "ViewLyrics": "Переглянути текст пісні", + "SavePassword": "Зберегти пароль" } From 0f785c98c284a7cb72c572b6d59d2d08dea341d2 Mon Sep 17 00:00:00 2001 From: grafixeyehero Date: Thu, 2 May 2024 19:34:45 +0300 Subject: [PATCH 06/33] remove white space --- src/elements/emby-itemscontainer/ItemsContainer.tsx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/elements/emby-itemscontainer/ItemsContainer.tsx b/src/elements/emby-itemscontainer/ItemsContainer.tsx index 9d30c2b868..abde788a5c 100644 --- a/src/elements/emby-itemscontainer/ItemsContainer.tsx +++ b/src/elements/emby-itemscontainer/ItemsContainer.tsx @@ -256,7 +256,7 @@ const ItemsContainer: FC = ({ ); const onPlaybackStopped = useCallback( - ( _e: Event, stopInfo: PlaybackStopInfo ) => { + (_e: Event, stopInfo: PlaybackStopInfo) => { const state = stopInfo.state; if ( From 10198f9056bc4de700dd8031f6267749cc775144 Mon Sep 17 00:00:00 2001 From: Andrew Rabert Date: Wed, 1 May 2024 18:03:20 -0400 Subject: [PATCH 07/33] Show "99+" in unplayed indicator when more 100 or more new items --- src/components/indicators/indicators.js | 8 ++++++-- src/components/indicators/useIndicator.tsx | 8 ++++++-- 2 files changed, 12 insertions(+), 4 deletions(-) diff --git a/src/components/indicators/indicators.js b/src/components/indicators/indicators.js index ec21ae3e7f..8a6d53f012 100644 --- a/src/components/indicators/indicators.js +++ b/src/components/indicators/indicators.js @@ -78,7 +78,7 @@ export function getPlayedIndicatorHtml(item) { if (enablePlayedIndicator(item)) { const userData = item.UserData || {}; if (userData.UnplayedItemCount) { - return '
' + datetime.toLocaleString(userData.UnplayedItemCount) + '
'; + return '
' + formatCountIndicator(userData.UnplayedItemCount) + '
'; } if (userData.PlayedPercentage && userData.PlayedPercentage >= 100 || (userData.Played)) { @@ -93,12 +93,16 @@ export function getChildCountIndicatorHtml(item, options) { const minCount = options?.minCount ? options.minCount : 0; if (item.ChildCount && item.ChildCount > minCount) { - return '
' + datetime.toLocaleString(item.ChildCount) + '
'; + return '
' + formatCountIndicator(item.ChildCount) + '
'; } return ''; } +function formatCountIndicator(count) { + return count >= 100 ? '99+' : count.toString(); +} + export function getTimerIndicator(item) { let status; diff --git a/src/components/indicators/useIndicator.tsx b/src/components/indicators/useIndicator.tsx index a9ecc12bc8..7f16606359 100644 --- a/src/components/indicators/useIndicator.tsx +++ b/src/components/indicators/useIndicator.tsx @@ -60,6 +60,10 @@ const enablePlayedIndicator = (item: ItemDto) => { return itemHelper.canMarkPlayed(item); }; +const formatCountIndicator = (count: number) => { + return count >= 100 ? '99+' : count.toString(); +}; + const useIndicator = (item: ItemDto) => { const getMediaSourceIndicator = () => { const mediaSourceCount = item.MediaSourceCount ?? 0; @@ -135,7 +139,7 @@ const useIndicator = (item: ItemDto) => { if (childCount > 1) { return ( - {datetime.toLocaleString(item.ChildCount)} + {formatCountIndicator(childCount)} ); } @@ -149,7 +153,7 @@ const useIndicator = (item: ItemDto) => { if (userData.UnplayedItemCount) { return ( - {datetime.toLocaleString(userData.UnplayedItemCount)} + {formatCountIndicator(userData.UnplayedItemCount)} ); } From 91d6d33b450056779f5bc58c1e30596a00a00fe8 Mon Sep 17 00:00:00 2001 From: Blackspirits Date: Thu, 2 May 2024 21:21:53 +0000 Subject: [PATCH 08/33] 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 | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/strings/pt-pt.json b/src/strings/pt-pt.json index d2fad957b5..f68a40a5e5 100644 --- a/src/strings/pt-pt.json +++ b/src/strings/pt-pt.json @@ -1862,5 +1862,6 @@ "PlaybackError.NO_MEDIA_ERROR": "Não foi possível encontrar uma fonte multimédia válida para reproduzir.", "LabelServerVersion": "Versão do servidor", "LabelWebVersion": "Versão web", - "LabelBuildVersion": "Versão de compilação" + "LabelBuildVersion": "Versão de compilação", + "SavePassword": "Guardar palavra-passe" } From 3fc3d64664c2c3fa36e62aa59d8e6b17f335635b Mon Sep 17 00:00:00 2001 From: Blackspirits Date: Thu, 2 May 2024 21:24:19 +0000 Subject: [PATCH 09/33] 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 99816bfa0e..eae82de368 100644 --- a/src/strings/pt.json +++ b/src/strings/pt.json @@ -1495,7 +1495,7 @@ "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": "Ouça a entrada de qualquer controlador conectado. (Requer: Modo de exibição 'TV')", - "BackdropScreensaver": "Protetor de tela de fundo", + "BackdropScreensaver": "Fundo do protetor de ecrã", "LabelLevel": "Nível", "LabelSyncPlaySettingsMinDelaySpeedToSync": "Atraso mínimo da velocidade de sincronização", "OptionDateEpisodeAdded": "Data do episódio adicionado", @@ -1611,7 +1611,7 @@ "LabelVideoRange": "Alcance de vídeo", "Mixer": "Misturador", "LabelSystem": "Sistema", - "SaveRecordingImages": "Salvar gravação de imagens EPG", + "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.", @@ -1624,7 +1624,7 @@ "YoutubeBadRequest": "Requisição ruim.", "YoutubeDenied": "O vídeo solicitado não pode ser reproduzido em players incorporados.", "TypeOptionPluralBoxSet": "Conjuntos de caixas", - "LabelBackdropScreensaverInterval": "Intervalo do protetor de tela de fundo", + "LabelBackdropScreensaverInterval": "Intervalo do 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", @@ -1860,5 +1860,6 @@ "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.", - "PlaybackError.ASS_RENDER_ERROR": "Foi encontrado um erro no renderizador de legendas ASS/SSA." + "PlaybackError.ASS_RENDER_ERROR": "Foi encontrado um erro no renderizador de legendas ASS/SSA.", + "SavePassword": "Guardar palavra-passe" } From 8db635e2aedd53ec60cf457c8e9707b630145cf4 Mon Sep 17 00:00:00 2001 From: grafixeyehero Date: Fri, 3 May 2024 02:49:19 +0300 Subject: [PATCH 10/33] update suggestion --- src/types/playbackStopInfo.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/types/playbackStopInfo.ts b/src/types/playbackStopInfo.ts index b2fff761f3..4826d98449 100644 --- a/src/types/playbackStopInfo.ts +++ b/src/types/playbackStopInfo.ts @@ -38,7 +38,7 @@ export interface PlayerState { } export interface PlaybackStopInfo { - player: unknown; // FIXME: add a proper interface + player: unknown; // TODO: add a proper interface state: PlayerState; nextItem: BaseItemDto | null; nextMediaType: MediaType | null; From 404c2880a25b52dc5f3352c3dbde3ca2d324412c Mon Sep 17 00:00:00 2001 From: Mikhail Arkhipov Date: Fri, 3 May 2024 16:32:53 +0000 Subject: [PATCH 11/33] Translated using Weblate (Russian) Translation: Jellyfin/Jellyfin Web Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-web/ru/ --- src/strings/ru.json | 16 +++++++++++++--- 1 file changed, 13 insertions(+), 3 deletions(-) diff --git a/src/strings/ru.json b/src/strings/ru.json index ff1597d15d..adf6f5c237 100644 --- a/src/strings/ru.json +++ b/src/strings/ru.json @@ -760,7 +760,7 @@ "MediaInfoAnamorphic": "Анаморфность", "MediaInfoAspectRatio": "Соотношение сторон", "MediaInfoBitDepth": "Разрядность", - "MediaInfoBitrate": "Битрейт", + "MediaInfoBitrate": "Потоковая скорость", "MediaInfoChannels": "Каналы", "MediaInfoCodec": "Кодек", "MediaInfoCodecTag": "Тег кодека", @@ -1816,7 +1816,7 @@ "AllowMjpegEncoding": "Разрешить кодирование в формате MJPEG (используется при создании трюковой игры)", "LabelProcessPriorityHelp": "Установив это значение ниже или выше, вы определите, как процессор расставит приоритеты для процесса генерации trickplay в формате ffmpeg по отношению к другим процессам. Если вы заметили замедление при создании изображений trickplay, но не хотите полностью останавливать их генерацию, попробуйте уменьшить это значение, а также количество потоков.", "LabelEncodingFormatOptions": "Параметры формата кодирования", - "LabelTrickplayAccel": "Включить аппаратное ускорение", + "LabelTrickplayAccel": "Включить аппаратное декодирование", "LabelTrickplayAccelHelp": "Обязательно включите \"Разрешить кодировку MJPEG\" в режиме транскодирования, если ваше оборудование поддерживает это.", "PriorityAboveNormal": "Выше нормы", "LabelTileWidth": "Ширина плитки", @@ -1858,5 +1858,15 @@ "PriorityHigh": "Высокий", "PriorityNormal": "Нормальный", "LabelJpegQualityHelp": "Уровень сжатия JPEG для кадров trickplay.", - "NonBlockingScan": "Асинхронное - ставит генерацию в очередь и продолжает" + "NonBlockingScan": "Асинхронное - ставит генерацию в очередь и продолжает", + "Lyrics": "Текст песни", + "SavePassword": "Сохранить пароль", + "ViewLyrics": "Просмотр текста песни", + "LabelTrickplayAccelEncoding": "Включить аппаратное ускорение кодирования MJPEG", + "LabelTrickplayAccelEncodingHelp": "Эта опция доступна только для QSV и VAAPI, она не влияет на другие методы аппаратного ускорения.", + "ConfirmDeleteLyrics": "Удаление этих текстов песен приведет к удалению их как из файловой системы, так и из вашей медиатеки. Вы уверены, что хотите продолжить?", + "DeleteLyrics": "Удалить тексты песен", + "ErrorDeletingLyrics": "Возникла ошибка при удалении текста песни с сервера. Пожалуйста, проверьте, имеет ли Jellyfin доступ на запись в папку с медиа, и попробуйте ещё раз.", + "HeaderDeleteLyrics": "Удалить Текст песни", + "HeaderNoLyrics": "Текст песни не найден" } From 157257ef730fdbb18dc9c7244e2bc46c436c0735 Mon Sep 17 00:00:00 2001 From: felix920506 Date: Fri, 3 May 2024 18:34:10 +0000 Subject: [PATCH 12/33] Translated using Weblate (Chinese (Traditional)) Translation: Jellyfin/Jellyfin Web Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-web/zh_Hant/ --- src/strings/zh-tw.json | 64 +++++++++++++++++++++--------------------- 1 file changed, 32 insertions(+), 32 deletions(-) diff --git a/src/strings/zh-tw.json b/src/strings/zh-tw.json index 3e5b5ab2ae..8f7dfcdc5f 100644 --- a/src/strings/zh-tw.json +++ b/src/strings/zh-tw.json @@ -63,12 +63,12 @@ "HeaderUsers": "使用者", "Help": "說明", "ItemCount": "{0}個項目", - "LabelAudioLanguagePreference": "音訊語言偏好選項", + "LabelAudioLanguagePreference": "偏好的音軌語言", "LabelCachePath": "快取路徑", - "LabelCollection": "收藏櫃", + "LabelCollection": "系列", "LabelContentType": "內容類型", "LabelCountry": "國家/地區", - "LabelCurrentPassword": "當前的密碼", + "LabelCurrentPassword": "目前密碼", "LabelDay": "星期", "LabelEnableDlnaClientDiscoveryInterval": "尋找用戶端時間間隔", "LabelEnableDlnaDebugLogging": "記錄 DLNA 除錯資料到日誌", @@ -578,53 +578,53 @@ "LabelAlbumArtMaxHeight": "專輯封面最大高度", "LabelAlbumArtMaxWidth": "專輯封面最大寬度", "LabelAlbumArtPN": "專輯封面 PN", - "LabelAlbumArtists": "專輯作家", + "LabelAlbumArtists": "專輯藝人", "LabelAllowHWTranscoding": "允許硬體轉檔", "LabelAllowedRemoteAddresses": "遠端 IP 位址過濾", "LabelAllowedRemoteAddressesMode": "遠端 IP 位址過濾模式", "LabelAppName": "APP 名稱", "LabelAppNameExample": "例如:可愛蹦蹦主機、小安的 Jellyfin", "LabelArtists": "藝人", - "LabelArtistsHelp": "將多位演出者以「;」分隔。", + "LabelArtistsHelp": "將多位演出者以分號(;)分隔。", "LabelAuthProvider": "身份驗證提供者", - "LabelAutomaticallyRefreshInternetMetadataEvery": "從網路自動更新媒體資訊", + "LabelAutomaticallyRefreshInternetMetadataEvery": "自動從網路更新媒體資訊", "LabelBindToLocalNetworkAddress": "綁定本地網路地址", - "LabelBindToLocalNetworkAddressHelp": "(選用)覆蓋 HTTP 伺服器綁定的本地 IP 位址。留空則將監聽所有可用的位址。更改此欄位需重啟伺服器。", + "LabelBindToLocalNetworkAddressHelp": "覆蓋 HTTP 伺服器綁定的本地 IP 位址。留空則將監聽所有可用的位址。更改此欄位需重啟伺服器。", "LabelBirthDate": "出生日期", "LabelBirthYear": "出生年", "LabelBlastMessageInterval": "活動信號的時間間隔", "LabelBlastMessageIntervalHelp": "確定伺服器活動消息之間的持續時間(秒)。", - "LabelBlockContentWithTags": "阻止帶有標籤的項目", + "LabelBlockContentWithTags": "阻擋帶有標籤的項目", "LabelBurnSubtitles": "燒錄字幕", "LabelCache": "快取", - "LabelCachePathHelp": "選擇指定所需的快取檔案(像是圖片)路徑。保留空白以使用預設設定。", + "LabelCachePathHelp": "選擇快取檔案(如圖片)的路徑。保留空白以使用預設設定。", "LabelCancelled": "已取消", - "LabelCertificatePassword": "證書密碼", - "LabelCertificatePasswordHelp": "如果你的證書需要密碼,請在此輸入它。", + "LabelCertificatePassword": "憑證密碼", + "LabelCertificatePasswordHelp": "如果你的憑證需要密碼,請在此輸入它。", "LabelChannels": "頻道", - "LabelCommunityRating": "討論區評分", + "LabelCommunityRating": "社群評分", "LabelCriticRating": "影評評分", - "LabelCustomCertificatePath": "自訂 SSL 證書路徑", - "LabelCustomCertificatePathHelp": "提供包含證書和金鑰的 PKCS #12 文件的路徑以在自訂域名上啟用 TLS。", + "LabelCustomCertificatePath": "自訂 SSL 憑證路徑", + "LabelCustomCertificatePathHelp": "提供包含憑證和金鑰的 PKCS #12 文件的路徑以在自訂域名上啟用 TLS。", "LabelCustomCss": "自訂 CSS", "LabelCustomCssHelp": "於網頁介面套用您自訂的標籤或品牌樣式。", "Depressed": "凹陷", "HeaderSelectMetadataPathHelp": "瀏覽或者輸入儲存媒體資訊的資料夾,請確保資料夾可以寫入。", "HeaderSelectServerCachePathHelp": "瀏覽或者輸入路徑以用於伺服器快取檔案。請確保此資料夾可以被寫入。", - "LabelCustomDeviceDisplayNameHelp": "指定自訂的顯示名稱,或者留空以使用設備自己報告的名稱。", + "LabelCustomDeviceDisplayNameHelp": "指定自訂的顯示名稱,或者留空以使用設備回報的名稱。", "LabelCustomRating": "自定義評級", "LabelDashboardTheme": "控制台佈景主題", "LabelDateAdded": "新增日期", - "LabelDateAddedBehavior": "新增內容的添加日期行", + "LabelDateAddedBehavior": "新增內容的添加日期行為", "LabelDateTimeLocale": "設定時區", - "LabelDeathDate": "死亡時間", + "LabelDeathDate": "死亡日期", "LabelDefaultScreen": "預設分頁", "LabelDefaultUser": "預設使用者", "LabelDeviceDescription": "裝置說明", "LabelDidlMode": "DIDL 模式", "LabelDiscNumber": "光碟編號", "LabelDisplayLanguage": "顯示語言", - "LabelDisplayLanguageHelp": "翻譯 Jellyfin 是個進行中的專案。", + "LabelDisplayLanguageHelp": "翻譯 Jellyfin 是個持續的工作。", "LabelDisplayMode": "顯示模式", "LabelDisplayName": "顯示名稱", "MessageNoPluginsInstalled": "您尚未安裝任何擴充功能。", @@ -690,7 +690,7 @@ "LabelAudioBitrate": "音訊位元率", "LabelAudioCodec": "音訊編碼", "LabelBitrate": "位元率", - "LabelAudioChannels": "音訊聲道", + "LabelAudioChannels": "音訊聲道數", "LabelAudioSampleRate": "音訊取樣率", "LabelFont": "字體", "LabelFolder": "資料夾", @@ -700,7 +700,7 @@ "LabelEnableDlnaServerHelp": "允許網路上的 UPnP 設備瀏覽和播放內容。", "LabelEnableHardwareDecodingFor": "啟用硬體解碼", "LabelEpisodeNumber": "集數", - "LabelBaseUrlHelp": "您可以在此處自訂伺服器 URL 路徑的子目錄,如:http://example.com/<baseurl>", + "LabelBaseUrlHelp": "您可以在此處自訂伺服器網址的子目錄,如:http://example.com/<baseurl>", "LabelExtractChaptersDuringLibraryScan": "於媒體庫掃描時擷取章節圖片", "LabelHttpsPort": "本地 HTTPS 埠", "LabelFailed": "失敗", @@ -787,8 +787,8 @@ "TV": "電視", "Trailers": "預告", "LabelImageFetchersHelp": "啟用並按優先順序排序您的首選圖片擷取器。", - "LabelDownMixAudioScale": "縮混時音訊增強", - "LabelDownMixAudioScaleHelp": "縮混時增強音訊。其中一個音軌將保持原始音量。", + "LabelDownMixAudioScale": "向下混時的音訊增強", + "LabelDownMixAudioScaleHelp": "向下混音時增強音訊。設定為 1 將保持原始音量。", "LabelDownloadLanguages": "下載語言", "LabelDynamicExternalId": "{0} Id", "LabelEasyPinCode": "簡易 PIN 碼", @@ -1237,7 +1237,7 @@ "LabelStreamType": "串流類型", "LabelPlayerDimensions": "播放器尺寸", "LabelDroppedFrames": "丟棄的幀", - "LabelCorruptedFrames": "損壞的幀", + "LabelCorruptedFrames": "損壞的影格", "ButtonSplit": "分割", "AskAdminToCreateLibrary": "如要建立媒體庫,請聯絡管理員。", "NoCreatedLibraries": "看來您還未創任何媒體庫。{0}立刻創一個新的嗎?{1}", @@ -1268,7 +1268,7 @@ "Movie": "電影", "LabelLibraryPageSizeHelp": "設定媒體庫頁面每頁要顯示的最多媒體個數。設定為 0 來停用分頁。", "LabelLibraryPageSize": "媒體庫分頁大小", - "LabelDeinterlaceMethod": "反交錯方法", + "LabelDeinterlaceMethod": "去交錯方法", "Episode": "劇集", "DeinterlaceMethodHelp": "選擇對隔行掃描內容進行軟體轉檔時所用的反交錯方法。當硬體加速支援的硬體反交錯選項啟用時,硬體方式將取代此設定。", "BoxSet": "套裝", @@ -1416,7 +1416,7 @@ "AllowTonemappingHelp": "色調轉換可以將影片從 HDR 轉換成 SDR,同時保持影像細節與顏色等對於表現場景非常重要的資訊。目前僅支援 HDR10、HLG 和 Dolby Vision 影片。此一選項需要對應的 GPU 運算環境。", "EnableTonemapping": "啟用色調轉換", "LabelOpenclDeviceHelp": "此 OpenCL 設備將用於色調轉換。點的左側為平台號碼,右側為此平台上的設備號碼。預設值為 0.0。需要有 OpenCL 硬體加速功能的 FFmpeg 應用程式。", - "LabelColorPrimaries": "三原色", + "LabelColorPrimaries": "原色", "MediaInfoColorPrimaries": "三原色", "UseDoubleRateDeinterlacingHelp": "此設定使用去交錯時的刷新頻率,通常稱為 Bob 去交錯。它將影片的幀率加倍,以提供完整的運動效果,就類似在電視上觀看隔行掃描的影片看到的那樣。", "LabelMaxMuxingQueueSizeHelp": "等待所有流初始化時可緩衝的最大封包數。如果在 FFmpeg 日誌中仍然遇到 \"Too many packets buffered for output stream\" 錯誤,請嘗試增加此設定值。建議值為 2048。", @@ -1535,8 +1535,8 @@ "LabelMinAudiobookResume": "繼續播放有聲書的最短時間", "LabelMaxAudiobookResume": "繼續播放有聲書的剩餘時間", "LabelLocalCustomCss": "自訂CSS樣式僅使用於此客戶端。你可能會想要停用伺服器自訂CSS。", - "LabelDisableCustomCss": "停用由伺服器提供的自訂CSS標籤或品牌。", - "LabelCreateHttpPortMapHelp": "允許自動通訊埠轉發在 HTTPS 以外為 HTTP 流量建立規則。", + "LabelDisableCustomCss": "停用由伺服器提供的自訂CSS主題或品牌。", + "LabelCreateHttpPortMapHelp": "允許自動通訊埠轉發除了 HTTPS 以外同時為 HTTP 流量建立規則。", "HeaderContinueReading": "繼續閱讀", "DisableCustomCss": "停用伺服器提供的自訂CSS樣式", "DirectPlayHelp": "原始檔完全相容於此用戶端,並正在直接接收原始檔案。", @@ -1587,7 +1587,7 @@ "Copied": "已複製", "Casual": "休閒", "AddToFavorites": "添加到收藏", - "LabelAutomaticallyAddToCollection": "自動加入合輯", + "LabelAutomaticallyAddToCollection": "自動加入系列", "GoogleCastUnsupported": "不支援 Google Cast", "EnableRewatchingNextUpHelp": "在「接下來」中顯示已觀看的集數。", "EnableRewatchingNextUp": "在「接下來」顯示重看影片", @@ -1629,7 +1629,7 @@ "MessageUnauthorizedUser": "您目前無權訪問伺服器。 請聯繫您的伺服器管理員以獲取更多資訊。", "ItemDetails": "詳情", "EnableCardLayout": "顯示可視化 CardBox", - "LabelAutomaticallyAddToCollectionHelp": "當至少有 2 部電影具有相同的收藏名稱時,它們將被自動添加到收藏中。", + "LabelAutomaticallyAddToCollectionHelp": "當至少有 2 部電影具有相同的系列名稱時,它們將被自動添加到系列中。", "LabelTextWeight": "字體粗細", "Bold": "粗體", "Localization": "本土化", @@ -1684,7 +1684,7 @@ "MediaInfoElPresentFlag": "杜比視界 el 存在標記", "MediaInfoBlPresentFlag": "杜比視界 bl 存在標記", "MediaInfoDvBlSignalCompatibilityId": "杜比視界 bl 訊號相容性 id", - "LabelStereoDownmixAlgorithm": "立體聲混縮算法 (Stereo Downmix Algorithm)", + "LabelStereoDownmixAlgorithm": "立體聲向下混音演算法", "StereoDownmixAlgorithmHelp": "會將多聲道的音訊混縮為雙聲道的演算法。", "DownloadAll": "全部下載", "Experimental": "實驗性", @@ -1740,8 +1740,8 @@ "LogLevel.Debug": "除錯", "LogLevel.None": "沒有", "Notifications": "通知", - "LabelBackdropScreensaverInterval": "螢幕保護程式間隔", - "LabelBackdropScreensaverIntervalHelp": "螢幕保護裝置切換背景的間隔。", + "LabelBackdropScreensaverInterval": "背景螢幕保護程式間隔", + "LabelBackdropScreensaverIntervalHelp": "螢幕保護程式切換背景的間隔。", "LabelSystem": "系統", "LogLevel.Information": "資訊", "LogLevel.Warning": "警告", From 2be46968251bd918b78d87c28a838dec85733b77 Mon Sep 17 00:00:00 2001 From: Andi Chandler Date: Fri, 3 May 2024 20:40:45 +0000 Subject: [PATCH 13/33] 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 | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/src/strings/en-gb.json b/src/strings/en-gb.json index aa889e8669..fc8d253ed2 100644 --- a/src/strings/en-gb.json +++ b/src/strings/en-gb.json @@ -1860,5 +1860,13 @@ "PlaybackError.SERVER_ERROR": "Playback failed due to a server error.", "PlaybackError.NotAllowed": "Playback of this media is not allowed.", "PlaybackError.RateLimitExceeded": "This media cannot be played at this time due to rate limits.", - "Lyric": "Lyric" + "Lyric": "Lyric", + "SavePassword": "Save Password", + "ViewLyrics": "View lyrics", + "ConfirmDeleteLyrics": "Deleting these lyrics will delete them from both the file system and your media library. Are you sure you wish to continue?", + "DeleteLyrics": "Delete lyrics", + "ErrorDeletingLyrics": "There was an error deleting the lyrics from the server. Please check that Jellyfin has write access to the media folder and try again.", + "HeaderDeleteLyrics": "Delete Lyrics", + "HeaderNoLyrics": "No lyrics found", + "Lyrics": "Lyrics" } From 8d7ece41612309575a6fdea4faff1fdcc91a2477 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Szil=C3=A1gyi=20Krist=C3=B3f?= Date: Sat, 4 May 2024 07:35:18 +0000 Subject: [PATCH 14/33] Translated using Weblate (Hungarian) Translation: Jellyfin/Jellyfin Web Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-web/hu/ --- src/strings/hu.json | 66 +++++++++++++++++++++++++++++++++++++++------ 1 file changed, 58 insertions(+), 8 deletions(-) diff --git a/src/strings/hu.json b/src/strings/hu.json index 49b416302f..8356068404 100644 --- a/src/strings/hu.json +++ b/src/strings/hu.json @@ -482,7 +482,7 @@ "ButtonSelectView": "Válassz nézetet", "ButtonStart": "Indítás", "CancelRecording": "Felvétel törlése", - "CancelSeries": "Sorozat törlése", + "CancelSeries": "Sorozat visszavonása", "Categories": "Kategóriák", "ChangingMetadataImageSettingsNewContent": "A metaadatok vagy az artwork fileok letöltési beállításainak módosítása csak a könyvtárhoz hozzáadott új tartalomra vonatkozik. A meglévő címek módosításainak alkalmazásához manuálisan kell frissíteni a metaadatokat.", "ChannelAccessHelp": "Válaszd ki a megosztani kívánt csatornákat a felhasználóval. A rendszergazdák a metaadatkezelő segítségével szerkeszthetik az összes csatornát.", @@ -494,8 +494,8 @@ "Composer": "Zeneszerző", "ConfigureDateAdded": "Állítsa be, hogy a „Hozzáadás Dátuma” metaadatok hogyan legyenek meghatározva az Irányítópult > Könyvtárak > NFO-beállítások menüpontban", "ConfirmDeleteImage": "Kép törlése?", - "ConfirmDeleteItem": "Az elem törlése mind a fájlrendszerből, mind a médiakönyvtárból törlődik. Biztosan folytatni akarod?", - "ConfirmDeleteItems": "Az elem törlése mind a fájlrendszerből, mind a médiakönyvtárból törlődik. Biztosan folytatni akarod?", + "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?", "ConfirmDeletion": "Törlés megerősítése", "ConfirmEndPlayerSession": "Szeretnéd leállítani a Jellyfin-t {0}?", "ContinueWatching": "Megtekintés folytatása", @@ -563,7 +563,7 @@ "HeaderActivity": "Tevékenységek", "HeaderAdditionalParts": "További részek", "HeaderAdmin": "Felügyelet", - "HeaderAlbumArtists": "Albumelőadók", + "HeaderAlbumArtists": "Album előadók", "HeaderAlert": "Figyelem", "HeaderAllowMediaDeletionFrom": "Médiatörlés engedélyezése innen", "HeaderApiKey": "API kulcs", @@ -1114,7 +1114,7 @@ "EnableStreamLooping": "Élő műsorfolyamok automatikus újrajátszása", "EnableStreamLoopingHelp": "Kapcsold be, ha az élő stream csak néhány másodpercnyi adatot tartalmaz és folyamatosan újra kell kérni. Ennek szükségtelen bekapcsolása problémát okozhat.", "Guide": "Műsorújság", - "H264CrfHelp": "A 'Constant Rate Factor' (CRF) az alapértelmezett minőségi beállítás az x264 és x265 enkóderhez. Az értékek 0 és 51 között állíthatók, ahol az alacsonyabb érték jobb minőséget eredményez (nagyobb fájl méret mellett). Az ajánlott érték 18 és 28 között van. Az x264 alapértelmezett beállítása 23, x265-é 28, ez lehet kiindulási alap.", + "H264CrfHelp": "A 'Constant Rate Factor' (CRF) az alapértelmezett minőségi beállítás az x264 és x265 enkóderekhez. Az értékek 0 és 51 között állíthatók, ahol az alacsonyabb érték jobb minőséget eredményez (nagyobb fájl méret mellett). Az ajánlott érték 18 és 28 között van. Az x264 alapértelmezett beállítása 23, x265-é 28, ez lehet kiindulási alap. A hardveresen gyorsított enkóderek nem használják ezt a beállítást.", "HeaderApiKeysHelp": "A külső alkalmazásoknak egy API kulcsra van szüksége, hogy kommunikáljanak a szerverrel. A kulcsokat egy fiókkal történő belépéssel lehet megkapni, vagy kézileg felvenni egy alkalmazáshoz tartozó kulcsot.", "HeaderBranding": "Személyes arculat", "HeaderContinueListening": "Folyamatban lévő zenék", @@ -1397,7 +1397,7 @@ "LabelTonemappingRange": "Tónusleképezés tartomány", "TonemappingAlgorithmHelp": "A tónusleképezés finomhangolható. Ha még nem ismered ezeket az opciókat, tartsd meg az alapértelmezett értéket. Az ajánlott érték 'BT.2390'.", "LabelTonemappingAlgorithm": "Válaszd ki a használni kívánt tónusleképezési algoritmust", - "AllowTonemappingHelp": "", + "AllowTonemappingHelp": "A tónusleképzés képes a HDR videók dinamika tartományát SDR tartományba átalakítani, miközben megtartja a kép színét és részleteit, ami elengedhetetlen az eredeti látvány megőrzéséhez. Jelenleg csak 10 bites HDR10, HLG és DoVi tartalmakon működik. Használatához szükséges a vonatkozó GPGPU szolgáltatás.", "EnableTonemapping": "Tónusleképezés engedélyezése", "LabelOpenclDeviceHelp": "Ez az OpenCL eszköz, amelyet a tónusleképezéshez használnak. A pont bal oldala a platform száma, a jobb oldala pedig a platformon található eszköz száma. Az alapértelmezett érték 0.0. Az OpenCL hardveres gyorsítási módszert tartalmazó FFmpeg alkalmazásfájl szükséges.", "LabelOpenclDevice": "OpenCL eszköz", @@ -1649,7 +1649,7 @@ "OriginalAirDate": "Eredeti megjelenési dátum", "MessageUnauthorizedUser": "Jelenleg nincs jogosultsága a szerver elérésére. További információért fordulj a szerver rendszergazdájához.", "Digital": "Digitális", - "EnableEnhancedNvdecDecoderHelp": "Kísérleti NVDEC implementáció, csak akkor engedélyezze ezt a lehetőséget, ha dekódolási hibákat észlel.", + "EnableEnhancedNvdecDecoderHelp": "Bővített NVDEC implementáció, csak akkor engedélyezze, ha dekódolási hibákat észlel.", "HomeVideosPhotos": "Otthoni videók és fotók", "Bold": "Félkövér", "LabelTextWeight": "Betűvastagság", @@ -1795,5 +1795,55 @@ "LabelServerVersion": "Szerver verzió", "AllowSubtitleManagement": "Feliratok szerkesztésének engedélyezése ennél a felhasználónál", "AllowContentWithTagsHelp": "Csak a megadott címkék legalább egyikével rendelkező médiát jeleníti meg.", - "AirPlay": "AirPlay" + "AirPlay": "AirPlay", + "LabelScanBehaviorHelp": "A kiindulási magatartás nem blokkoló, tehát a tartalom a könyvtárba kerül a lejátszástrükk generálás befejezése előtt. A blokkoló magatartás meggátolja könyvtárba kerülést a generálás befejeződéséig, de lényegesen hosszabbá teszi a könyvtárak beolvasását.", + "PlaybackError.SERVER_ERROR": "A lejátszás meghiúsult kiszolgáló hiba miatt.", + "PlaybackError.NO_MEDIA_ERROR": "Nem található lejátszható tartalom.", + "BlockContentWithTagsHelp": "Rejtse el a legalább egy megadott címkével ellátott tartalmakat.", + "PlaybackError.NETWORK_ERROR": "A lejátszás meghiúsult hálózati hiba miatt.", + "PlaybackError.PLAYER_ERROR": "A lejátszás meghiúsult végzetes lejátszó hiba miatt.", + "SavePassword": "Jelszó mentése", + "LabelEncodingFormatOptions": "Enkóder formátum beállítások", + "EncodingFormatHelp": "Válaszd ki, hogy a Jellyfin melyik enkódert használja. Ha hardveres gyorsítás nem elérhető a választott enkóderhez, a Jellyfin szoftver enkódert fog helyette használni. A H264 enkóder mindig engedélyezve lesz.", + "Trickplay": "Lejátszótrükk", + "PlaybackError.MEDIA_DECODE_ERROR": "A lejátszás meghiúsult tartalom dekódolási hiba miatt.", + "PlaybackError.MEDIA_NOT_SUPPORTED": "A lejátszás meghiúsult, mert a tartalmat a kliens nem támogatja.", + "PlaybackError.NotAllowed": "Ennek a tartalomnak a lejátszása nem engedélyezett.", + "BlockingScan": "Blokkoló - beütemezi a generációt és blokkolja a tartalom keresést ameddig elkészül", + "LabelTrickplayAccelEncodingHelp": "Jelenleg csak QSV és VAAPI gyorsítókon elérhető, más hardveres gyorsítókat nem befolyásol.", + "PriorityHigh": "Magas", + "LabelTrickplayAccelEncoding": "Hardveresen gyorsított MJPEG enkódolás engedélyezése", + "ConfirmDeleteLyrics": "A dalszövegek törlésével azok törlődni fognak a fájlrendszerből és a médiakönyvtárból is. Biztosan folytatni akarod?", + "DeleteEntireSeries": "{0} Epizód törlése", + "DeleteEpisode": "Epizód törlése", + "DeleteLyrics": "Dalszövegek törlése", + "DeleteSeries": "Sorozat törlése", + "DeleteName": "{0} Törlése", + "ErrorDeletingLyrics": "A dalszövegek törlése közben hiba lépett fel. Kérlek ellenőrizd, hogy a Jellyfin rendelkezik e írási jogosultsággal a könyvtárhoz, majd próbáld újra.", + "HeaderDeleteSeries": "Sorozat törlése", + "HeaderDeleteLyrics": "Dalszövegek Törlése", + "HeaderNoLyrics": "Nem található dalszöveg", + "LimitSupportedVideoResolutionHelp": "Használja a maximum engedélyezett videó átkódolási felbontást a maximum támogatott videó felbontásként.", + "Lyric": "Dalszöveg", + "Lyrics": "Dalszövegek", + "PlaybackError.RateLimitExceeded": "Ez a tartalom jelenleg nem játszható adatkorlát miatt.", + "ViewLyrics": "Dalszövegek megtekintése", + "EnableVideoToolboxTonemapping": "VideoToolbox tónusleképzés engedélyezése", + "AllowVideoToolboxTonemappingHelp": "Hardveresen gyorsított tónusleképzés a VideoToolbox-tól. Képes a HDR10, HDR10+ és HLG formátumok dekódolására, de nem támogatja a Dolby Vision Profile 5-öt. Ez magasabb prioritású más Metal implementációkhoz képest.", + "PriorityAboveNormal": "Normális feletti", + "PriorityNormal": "Normális", + "PriorityBelowNormal": "Normális alatti", + "PriorityIdle": "Üresjárat", + "EnableLibrary": "Könyvtár engedélyezése", + "EnableLibraryHelp": "Könyvtár tiltása, miközben rejtve marad az összes felhasználó elől.", + "LabelProcessPriority": "Folyamat prioritása", + "EnableSmoothScroll": "Folyékony görgetés engedélyezése", + "LabelAllowContentWithTags": "Engedje a címkézett elemeket", + "LimitSupportedVideoResolution": "Korlátozza a maximális támogatott videó felbontást", + "PlaybackError.ASS_RENDER_ERROR": "Hiba történt az ASS/SSA feliratok renderelésekor.", + "PlaybackError.FATAL_HLS_ERROR": "Végzetes hiba jelentkezett a HLS stream-ben.", + "LabelTrickplayAccel": "Hardveres dekódolás engedélyezése", + "NonBlockingScan": "Nem blokkoló - beütemezi a generálást, majd visszatér", + "LabelScanBehavior": "Tartalom keresési magatartás", + "ConfirmDeleteSeries": "A sorozat törlésével törlődni fog az ÖSSZES {0} epizód a fájlrendszerből és a médiakönyvtárból is. Biztosan folytatni akarod?" } From 686808560293a08a82ba208b717dcdbb6a94b4cb Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Szil=C3=A1gyi=20Krist=C3=B3f?= Date: Sat, 4 May 2024 08:03:11 +0000 Subject: [PATCH 15/33] Translated using Weblate (Hungarian) Translation: Jellyfin/Jellyfin Web Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-web/hu/ --- src/strings/hu.json | 23 +++++++++++++++++++++-- 1 file changed, 21 insertions(+), 2 deletions(-) diff --git a/src/strings/hu.json b/src/strings/hu.json index 8356068404..534ba445c2 100644 --- a/src/strings/hu.json +++ b/src/strings/hu.json @@ -142,7 +142,7 @@ "HeaderSeasons": "Évadok", "HeaderSelectMetadataPath": "Válaszd ki a metaadat útvonalat", "HeaderSendMessage": "Üzenet küldése", - "HeaderSetupLibrary": "Média könyvtárak beállítása", + "HeaderSetupLibrary": "Állítsd be a média könyvtáraidat", "HeaderSortBy": "Megjelenítés", "HeaderSortOrder": "Sorrend", "HeaderStatus": "Állapot", @@ -1845,5 +1845,24 @@ "LabelTrickplayAccel": "Hardveres dekódolás engedélyezése", "NonBlockingScan": "Nem blokkoló - beütemezi a generálást, majd visszatér", "LabelScanBehavior": "Tartalom keresési magatartás", - "ConfirmDeleteSeries": "A sorozat törlésével törlődni fog az ÖSSZES {0} epizód a fájlrendszerből és a médiakönyvtárból is. Biztosan folytatni akarod?" + "ConfirmDeleteSeries": "A sorozat törlésével törlődni fog az ÖSSZES {0} epizód a fájlrendszerből és a médiakönyvtárból is. Biztosan folytatni akarod?", + "LabelQscaleHelp": "Az ffmpeg kimeneti képkockák minőségskálája, melyen 2 a legmagasabb és 31 a legalacsonyabb minőségi érték.", + "LabelTrickplayThreads": "FFmpeg szálak", + "LabelWidthResolutions": "Horizontális felbontás", + "ExtractTrickplayImagesHelp": "A lejátszástrükk képkockák hasonlóak a fejezetképekhez, de a tartalom teljes hosszában generálódnak hogy aztán a videó tekerésekor megjelenjenek az idővonalon előnézeteként.", + "LabelProcessPriorityHelp": "Ennek az alacsonyabbra vagy magasabbra állításával szabályozható, hogy a processzoron az ffmpeg lejátszástrükk generálás folyamata milyen prioritással fusson más folyamatokhoz képest. Ha lassulást tapasztal lejátszástrükk generálás közben, de nem akarja leállítani a folyamatot, próbálja meg csökkenteni a prioritást és a használt processzor szálak számát.", + "LabelImageInterval": "Kép intervallum", + "LabelTileWidth": "Csempe szélesség", + "LabelTileHeight": "Csempe magasság", + "LabelTileWidthHelp": "Csempén elhelyezkedő képek maximális száma vízszintesen.", + "LabelImageIntervalHelp": "Időintervallum (ms) lejátszástrükk képkockák között.", + "LabelJpegQuality": "JPEG minőség", + "LabelWidthResolutionsHelp": "A generálandó lejátszástrükk képkockák szélességének (px) vesszővel elválasztott listája. Minden képkocka a forrás képarányával arányos, így egy 320 széles 16:9 arányú képkocka felbontása körülbelül 320x180 lesz.", + "LabelJpegQualityHelp": "Lejátszástrükk képkockák JPEG tömörítési minősége.", + "LabelQscale": "Qskála", + "LabelTileHeightHelp": "Csempén elhelyezkedő képek maximális száma függőlegesen.", + "LabelTrickplayThreadsHelp": "Az ffmpeg '-threads' argumentumának átadandó szálak száma.", + "OptionExtractTrickplayImage": "Lejátszástrükk képkockák kinyerésének engedélyezése", + "LabelExtractTrickplayDuringLibraryScan": "Lejátszástrükk képkockák kinyerése a könyvtár beolvasásakor", + "LabelExtractTrickplayDuringLibraryScanHelp": "Lejátszástrükk képkockák generálása könyvtár beolvasáskor a frissen importált videóknál. Ha nincs bekapcsolva, a lejátszástrükk képkockákat az erre ütemezett feladat fogja kinyerni. Nem blokkoló magatartás esetén ez nem befolyásolja a könyvtár beolvasás idejét." } From e7fde76106e475edee6302ee609f419b67451b48 Mon Sep 17 00:00:00 2001 From: Nyanmisaka <799610810@qq.com> Date: Sat, 4 May 2024 09:31:56 +0000 Subject: [PATCH 16/33] Translated using Weblate (Chinese (Simplified)) 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 f78bb196a9..bbdab600e6 100644 --- a/src/strings/zh-cn.json +++ b/src/strings/zh-cn.json @@ -1867,5 +1867,6 @@ "DeleteLyrics": "删除歌词", "HeaderDeleteLyrics": "删除歌词", "HeaderNoLyrics": "未找到歌词", - "ViewLyrics": "查看歌词" + "ViewLyrics": "查看歌词", + "SavePassword": "保存密码" } From 056ee4da77978fd938f16219b9166633c34e19c7 Mon Sep 17 00:00:00 2001 From: HiPotionQ8 Date: Sat, 4 May 2024 10:30:28 +0000 Subject: [PATCH 17/33] Translated using Weblate (Arabic) Translation: Jellyfin/Jellyfin Web Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-web/ar/ --- src/strings/ar.json | 30 +++++++++++++++++++++--------- 1 file changed, 21 insertions(+), 9 deletions(-) diff --git a/src/strings/ar.json b/src/strings/ar.json index 96ef73e722..af2e6aba15 100644 --- a/src/strings/ar.json +++ b/src/strings/ar.json @@ -197,7 +197,7 @@ "HeaderSelectTranscodingPathHelp": "تصفح أو أدخل المسار الذي ترغب أن يُستخدم لملفات التشفير البيني. يجب أن يكون هذا المجلد قابل للكتابة فيه.", "HeaderSendMessage": "أرسل رسالة", "HeaderServerSettings": "إعدادات الخادم", - "HeaderSetupLibrary": "ضبط مكتبة المحتوى الخاصة بك", + "HeaderSetupLibrary": "ضبط مكاتب المحتوى الخاصة بك", "HeaderSortBy": "ترتيب حسب", "HeaderSortOrder": "تسلسل الترتيب", "HeaderSpecialEpisodeInfo": "معلومات الحلقة الخاصة", @@ -255,7 +255,7 @@ "LabelCollection": "المجموعة", "LabelCommunityRating": "تقييم الجمهور", "LabelContentType": "نوع المحتوى", - "LabelCountry": "البلد", + "LabelCountry": "البلد/المنطقة", "LabelCurrentPassword": "كلمة السر الحالية", "LabelCustomCertificatePath": "مسار شهادة SSL المخصص", "LabelCustomCertificatePathHelp": "مسار ملف PKCS # 12 يحتوي على شهادة ومفتاح خاص لتمكين دعم TLS على مجال مخصص.", @@ -527,7 +527,7 @@ "MessagePasswordResetForUsers": "تم إعادة تعيين كلمات المرور للمستخدمين التاليين. يمكنهم الآن تسجيل الدخول باستخدام رموز الـPIN التي تم استخدامها لإعادة الضبط.", "MessagePleaseEnsureInternetMetadata": "الرجاء التأكد من أن إمكانية إنزال واصفات البيانات من الإنترنت ممكنة.", "MessagePluginConfigurationRequiresLocalAccess": "لضبط هذا البرنامج المساعد ، يرجى تسجيل الدخول إلى الخادم المحلي الخاص بك مباشرة.", - "MessagePluginInstallDisclaimer": "تحذير: تنصيب الملحقات التي بناها أعضاء مجتمع Jellyfin هي طريقة رائعة لتحسين متعة استخدام Jellyfin عن طريق أضافة مزايا وخدمات الجديدة. ولكن تنصيب ملحقات من مصادر ثالثة تحمل بعظ الخطورة.\nقبل تثبيت الملحقات، نرجو أخذ العلم بالآثار التي قد تلحقها بخادم Jellyfin الخاص بك، مثل أوقات أطولة لتمشيط مكتبتك، والعمليات الخلفية الإضافية وتقليل استقرار نظامك.", + "MessagePluginInstallDisclaimer": "تحذير: تنصيب مكونات إضافية من مصادر طرف ثالث تحمل بعض المخاطر. قد تتضمن بعض البرمجيات الضارة، وقد تتغير في أي وقت. فقط قم بتنصيب المكونات الإضافية من مصدر تثق به، يرجى أخذ العلم بالآثار المحتملة التي قد تلحقها، مثل أوقات أطول لتمشيط مكتبتك، والعمليات الخلفية الإضافية.", "MessageReenableUser": "أنظر أدناه لإعادة التفعيل", "MessageTheFollowingLocationWillBeRemovedFromLibrary": "مكان الوسائط التالي سيزال من مكتبة Jellyfin الخاصة بك", "MessageUnableToConnectToServer": "لم نستطع الاتصال إلى الخادم المختار في الوقت الحالي. الرجاء التأكد من أنه يعمل ثم المحاولة مرة أخرى.", @@ -1085,7 +1085,7 @@ "Record": "سجل", "RecentlyWatched": "شاهدت مؤخرا", "Rate": "معدل", - "QuickConnectAuthorizeSuccess": "تمت الموافقة على الطلب", + "QuickConnectAuthorizeSuccess": "تمت المصادقة على الجهاز بنجاح!", "QuickConnectAuthorizeCode": "أدخل الرمز {0} لتسجيل الدخول", "QuickConnectActivationSuccessful": "تم التفعيل بنجاح", "Quality": "الجودة", @@ -1553,7 +1553,7 @@ "LabelColorPrimaries": "الألوان الأساسية", "HeaderSyncPlayPlaybackSettings": "التشغيل", "HeaderNewRepository": "مستودع جديد", - "DirectPlayHelp": "الملف المصدر متوافق تمامًا مع هذا العميل ، وتستقبل الجلسة الملف بدون تعديلات.", + "DirectPlayHelp": "الملف المصدر متوافق تمامًا مع هذا العميل والجلسة تستقبل الملف بدون تعديلات.", "LabelDashboardTheme": "قالب لوحة تحكم الخادم", "LabelTonemappingParamHelp": "ضبط خوارزمية تعيين النغمة.‌ القيم الموصى بها والافتراضية هي NaN. اتركه فارغًا بشكل عام.", "LabelTonemappingParam": "معلمة تعيين النغمة", @@ -1564,7 +1564,7 @@ "LabelAutomaticallyAddToCollection": "إضافة إلى المجموعة تلقائيا", "Console": "وحدة التحكم", "Casual": "غير رسمي", - "AllowTonemappingHelp": "يمكن أن يؤدي تعيين النغمة إلى تحويل النطاق الديناميكي لمقاطع الفيديو من HDR إلى SDR مع الحفاظ على تفاصيل الصورة والألوان. هذه بينات مهمة جدًا لتمثيل المشهد الأصلي بشكل وفي للمقطع ألأصلي. حاليًا يعمل هذا ألاعداد فقط مع مقاطع فيديو HDR10 أو HLG. يتطلب هذا ألأعداد وقت تشغيل OpenCL أو CUDA.", + "AllowTonemappingHelp": "يمكن أن يؤدي تعيين النغمة إلى تحويل النطاق الديناميكي لمقاطع الفيديو من HDR إلى SDR مع الحفاظ على تفاصيل الصورة والألوان. هذه بينات مهمة جدًا لتمثيل المشهد الأصلي بشكل وفي للمقطع ألأصلي. حاليًا يعمل هذا ألاعداد فقط مع مقاطع فيديو HDR10 أو HLG. يتطلب هذا ألأعداد وقت تشغيل GPGPU.", "RefFramesNotSupported": "الإطارات المرجعية غير مدعومة", "InterlacedVideoNotSupported": "الفيديو المتشابك غير مدعوم", "AnamorphicVideoNotSupported": "لا يتم دعم الفيديو ذي الصورة المشوهة", @@ -1715,14 +1715,26 @@ "LogLevel.None": "لا شيئ", "MenuOpen": "أفتح القائمة", "AllowSegmentDeletion": "ألغاء القسم", - "AllowSegmentDeletionHelp": "ألغي الأقسام القديمة بعد أن يتم أرسالها للعميل. هذا يساهم بمنع أن يتم تخزين الملف ألذي تم أعادة ترميزه. ستعمل هذه الميزة فقط عندما يتم كبح الترميز. قم بأيقاف هذا الأعداد في حال واجهت مشاكل بتشغيل ألصوت أو ألفديو.", + "AllowSegmentDeletionHelp": "ألغي الأقسام القديمة بعد أن يتم تحميلها من قبل العميل. هذا يساهم بمنع أن يتم تخزين الملف ألذي تم أعادة ترميزه بالكامل. قم بأيقاف هذا الأعداد في حال واجهت مشاكل بتشغيل الصوت أو الفيديو.", "LabelThrottleDelaySeconds": "أكبح بعد", "LabelThrottleDelaySecondsHelp": "ألزمن بالثواني الذي سيتم بعده كبح أعادة الترميز. يجب أن يكون الزمن طويلاً بكفاية ليحافظ العميل على مخزون صحي. يجب أن يكون كفح أعادة الترميز مفعلاً ليعمل هذا ألاعاداد.", "LabelSegmentKeepSeconds": "الممدة للأحتفاظ على الشرائح", "LabelEnableAudioVbrHelp": "معدل البِت المتغير ينتج على جودة أفضل مقارنة بمعدل البت المتوسط، ولكن في بعض الحالات النادرة قد يسبب مشاكل في التخزين المؤقت والتوافق.", - "LabelSegmentKeepSecondsHelp": "الزمن بالثواني الذي يجب الاحتفاظ به للشرائح قبل أن يتم الكتابة فوقها. يجب أن يكون أكبر من \"بعد الخنق\". يعمل هذا ألأعداد فقط إذا كان حذف الشرائح مفعلًا.", + "LabelSegmentKeepSecondsHelp": "الزمن بالثواني الذي يجب الاحتفاظ به للشرائح بعد أن يتم تحميلها من قبل العميل. يعمل هذا ألأعداد فقط إذا كان حذف الشرائح مفعلًا.", "AiTranslated": "مترجمة من قبل ذكاء اسطناعي", "SelectAudioNormalizationHelp": "كسب الالبوم-تعديل الصوت لكل مسار لكي يعملون بنفس مستوى- كسب الالبوم- تعديل مستوى الصوت لكل المسارات في البوم واحد مع ابقاء على النطاق الديناميكي للألبوم.", "ButtonEditUser": "تعديل مستخدم", - "AllowSubtitleManagement": "اسمح لهذا المستخدم تعديل الترجمات" + "AllowSubtitleManagement": "اسمح لهذا المستخدم تعديل الترجمات", + "HeaderDeleteSeries": "حذف مسلسل", + "DeleteEntireSeries": "حذف {0} حلقات", + "DeleteSeries": "حذف المسلسل", + "HeaderEpisodesStatus": "حالة الحلقات", + "LabelSelectAudioNormalization": "تطبيع الصوت", + "DeleteEpisode": "حذف الحلقة", + "EnableLibrary": "إتاحة المكتبة", + "LabelSyncPlayNoGroups": "لا توجد مجموعات متاحة", + "DeleteName": "حذف {0}", + "LabelServerVersion": "نسخة الخادم", + "LabelWebVersion": "نسخة الويب", + "LabelBuildVersion": "نسخة الإصدار" } From c5983c54917f00b548e19d3736a741c8c8b8ca23 Mon Sep 17 00:00:00 2001 From: musenq Date: Sat, 4 May 2024 13:03:29 +0000 Subject: [PATCH 18/33] Translated using Weblate (Japanese) Translation: Jellyfin/Jellyfin Web Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-web/ja/ --- src/strings/ja.json | 44 +++++++++++++++++++++++++++++++++++++++++++- 1 file changed, 43 insertions(+), 1 deletion(-) diff --git a/src/strings/ja.json b/src/strings/ja.json index 344633bb2d..c2e97acb78 100644 --- a/src/strings/ja.json +++ b/src/strings/ja.json @@ -1784,5 +1784,47 @@ "LabelTrackGain": "トラックゲイン", "ForeignPartsOnly": "強制/外国語パートのみ", "HeaderGuestCast": "ゲストスター", - "AirPlay": "AirPlay" + "AirPlay": "AirPlay", + "ChannelResolutionSD": "SD", + "LabelEncodingFormatOptions": "エンコーディングフォーマットのオプション", + "AllowSubtitleManagement": "このユーザーに字幕の編集を許可する", + "AllowContentWithTagsHelp": "指定したタグのうち、少なくとも1つが付けられているメディアのみ表示します。", + "EncodingFormatHelp": "Jellyfinがトランスコードする際の動画エンコーディングを選択してください。選択したフォーマットのハードウェアアクセラレーションが利用できない場合、Jellyfinはソフトウェアエンコーディングを使用します。H264エンコーディングは常に有効になります。", + "LabelTrickplayAccelEncoding": "ハードウェアアクセラレーションを使用したMJPEGエンコーディングを有効にする", + "LimitSupportedVideoResolution": "最大対応動画解像度を制限する", + "SavePassword": "パスワードを保存", + "LabelJpegQuality": "JPEGの品質", + "LabelAllowContentWithTags": "タグ付きのアイテムを許可する", + "PlaybackError.FATAL_HLS_ERROR": "HLSストリームで致命的なエラーが発生しました。", + "PlaybackError.PLAYER_ERROR": "プレーヤーの致命的なエラーにより、再生に失敗しました。", + "PlaybackError.SERVER_ERROR": "サーバーエラーにより、再生に失敗しました。", + "PlaybackError.NotAllowed": "このメディアの再生は許可されていません。", + "LabelScanBehavior": "スキャンの動作", + "OptionExtractTrickplayImage": "トリックプレイ画像の抽出を有効にする", + "EnableLibrary": "ライブラリーを有効にする", + "EnableSmoothScroll": "スムーズスクロールを有効にする", + "PlaybackError.ASS_RENDER_ERROR": "ASS/SSA字幕レンダラーでエラーが発生しました。", + "AllowVideoToolboxTonemappingHelp": "VideoToolboxによるハードウェアアクセラレーションを使用したトーンマッピングです。これは、HDR10、HDR10+、HLGなどのほとんどのHDRフォーマットで動作しますが、Dolby Vision Profile 5では動作しません。これは、他のMetal実装と比較して優先度が高くなっています。", + "LabelImageIntervalHelp": "新しいトリックプレイ画像が生成される時間間隔(ミリ秒)です。", + "ConfirmDeleteLyrics": "これらの歌詞を削除すると、ファイルシステムとメディアライブラリーの両方から削除されます。本当に続行しますか?", + "DeleteEntireSeries": "{0} つのエピソードを削除", + "DeleteLyrics": "歌詞を削除", + "DeleteEpisode": "エピソードを削除", + "DlnaMovedMessage": "DLNA機能がプラグインに移行されました。", + "ErrorDeletingLyrics": "サーバーから歌詞を削除する際にエラーが発生しました。Jellyfinがメディアフォルダへの書き込み権限を持っていることを確認して、もう一度お試しください。", + "HeaderNoLyrics": "歌詞が見つかりません", + "LimitSupportedVideoResolutionHelp": "「許可された最大動画トランスコード解像度」を最大対応動画解像度として使用します。", + "Lyrics": "歌詞", + "PlaybackError.MEDIA_DECODE_ERROR": "メディアのデコード中にエラーが発生したため、再生に失敗しました。", + "PlaybackError.MEDIA_NOT_SUPPORTED": "クライアントがこのメディアをサポートしていないため、再生に失敗しました。", + "PlaybackError.NETWORK_ERROR": "ネットワークエラーのため、再生に失敗しました。", + "PlaybackError.NO_MEDIA_ERROR": "再生できる有効なメディアソースが見つかりません。", + "ViewLyrics": "歌詞を表示", + "LabelTrickplayAccel": "ハードウェアデコーディングを有効にする", + "LabelTrickplayAccelEncodingHelp": "現在、QSVとVAAPIでのみ利用可能です。このオプションは、他のハードウェアアクセラレーション方式には影響しません。", + "LabelQscaleHelp": "ffmpegで出力される画像のクオリティスケールで、2が最高品質、31が最低品質となります。", + "LabelTrickplayThreads": "FFmpegのスレッド数", + "ExtractTrickplayImagesHelp": "トリックプレイ画像は、チャプター画像に似ていますが、コンテンツの全体にわたって使用され、ビデオをスクラブしているときにプレビューを表示するために使用されます。", + "LabelExtractTrickplayDuringLibraryScan": "ライブラリスキャン中にトリックプレイ画像を抽出する", + "Lyric": "歌詞" } From 42224611be5327a7832ad0fb6e2988be48d06130 Mon Sep 17 00:00:00 2001 From: queeup Date: Sat, 4 May 2024 14:43:19 +0000 Subject: [PATCH 19/33] Translated using Weblate (Turkish) Translation: Jellyfin/Jellyfin Web Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-web/tr/ --- src/strings/tr.json | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/strings/tr.json b/src/strings/tr.json index 08633aebb0..ba7bca0644 100644 --- a/src/strings/tr.json +++ b/src/strings/tr.json @@ -1859,5 +1859,6 @@ "ErrorDeletingLyrics": "Şarkı sözlerini sunucudan silerken bir hata oluştu. Lütfen Jellyfin'in medya klasörüne yazma erişimi olup olmadığını kontrol edin ve tekrar deneyin.", "DeleteLyrics": "Şarkı sözünü sil", "HeaderNoLyrics": "Şarkı sözü bulunamadı", - "Lyrics": "Şarkı sözü" + "Lyrics": "Şarkı sözü", + "SavePassword": "Parolayı Kaydet" } From 9bda84ed8301f028130d8c460928a32f5e22679d Mon Sep 17 00:00:00 2001 From: HiPotionQ8 Date: Sat, 4 May 2024 18:04:35 +0000 Subject: [PATCH 20/33] Translated using Weblate (Arabic) Translation: Jellyfin/Jellyfin Web Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-web/ar/ --- src/strings/ar.json | 37 ++++++++++++++++++++++++++++++++++--- 1 file changed, 34 insertions(+), 3 deletions(-) diff --git a/src/strings/ar.json b/src/strings/ar.json index af2e6aba15..d544130dd5 100644 --- a/src/strings/ar.json +++ b/src/strings/ar.json @@ -1663,9 +1663,9 @@ "MediaInfoVideoRangeType": "نوع نطاق الفيديو", "LabelVideoRangeType": "نوع نطاق الفيديو", "VideoRangeTypeNotSupported": "نوع نطاق الفيديو غير مدعوم", - "LabelVppTonemappingContrastHelp": "تطبيق كسب التباين في تعيين نغمة VPP. القيم الموصى بها والافتراضية هي 1.2 و 1.", + "LabelVppTonemappingContrastHelp": "تطبيق كسب التباين في تعيين نغمة VPP. القيم الموصى بها والافتراضية هي 1.", "LabelVppTonemappingContrast": "كسب تباين تعيين نغمة VPP", - "LabelVppTonemappingBrightnessHelp": "تطبيق كسب السطوع في تعيين نغمة VPP. كل من القيم الموصى بها والافتراضية هي 0.", + "LabelVppTonemappingBrightnessHelp": "تطبيق كسب السطوع في تعيين نغمة VPP. القيم الموصى بها والافتراضية هي 0.", "LabelVppTonemappingBrightness": "كسب سطوع رسم الخرائط VPP نغمة", "ScreenResolution": "تعيين مسار الترجمة على أساس البند السابق", "RememberSubtitleSelectionsHelp": "تعيين مسار الترجمة على أساس البند السابق.", @@ -1736,5 +1736,36 @@ "DeleteName": "حذف {0}", "LabelServerVersion": "نسخة الخادم", "LabelWebVersion": "نسخة الويب", - "LabelBuildVersion": "نسخة الإصدار" + "LabelBuildVersion": "نسخة الإصدار", + "SavePassword": "حفظ كلمة المرور", + "SubtitleBlack": "أسود", + "SubtitleWhite": "أبيض", + "UserMenu": "قائمة المستخدم", + "LabelScanBehavior": "سلوك المسح", + "PriorityHigh": "عالي", + "PriorityBelowNormal": "تحت الطبيعي", + "PriorityNormal": "طبيعي", + "PriorityAboveNormal": "فوق الطبيعي", + "LabelProcessPriority": "أولوية المعالجة", + "PriorityIdle": "خامل", + "PlaybackError.PLAYER_ERROR": "التشغيل فشل لخطأ في مشغل الوسائط.", + "Studio": "الأستيديو", + "SubtitleYellow": "أصفر", + "PlaybackError.NETWORK_ERROR": "التشغيل فشل لخطأ في الشبكة.", + "UnknownError": "حدث خطأ غير معلوم.", + "Select": "اختيار", + "SubtitleRed": "أحمر", + "PasswordRequiredForAdmin": "يجب توفر كلمة مرور لحسابات المسؤول.", + "SecondarySubtitles": "الترجمات الثانوية", + "PlaybackError.NO_MEDIA_ERROR": "غير قايل لإيجاد مصدر موثق للوسائط لللتشغيل.", + "PlaybackError.SERVER_ERROR": "التشغيل فشل لخطأ في الخادم.", + "PlaybackError.MEDIA_NOT_SUPPORTED": "التشغيل فشل لأن الوسائط غير مدعومة من هذا العميل.", + "PlaybackError.NotAllowed": "تشغيل هذه الوسائط غير مسموح.", + "LabelJpegQuality": "جودة JPEG", + "SubtitleGreen": "أخضر", + "SearchResultsEmpty": "نأسف! لا يوجد نتاج لـ \"{0}\"", + "SubtitleLightGray": "رمادي فاتح", + "Short": "قصير", + "SubtitleGray": "رمادي", + "SubtitleBlue": "أزرق" } From 58051dcd8019780e9c8e6d6b1b937c9142d41b4a Mon Sep 17 00:00:00 2001 From: Dmitry Lyzo Date: Mon, 15 Apr 2024 21:01:44 +0300 Subject: [PATCH 21/33] Extract canPlayDts function --- src/scripts/browserDeviceProfile.js | 26 ++++++++++++++++++++------ 1 file changed, 20 insertions(+), 6 deletions(-) diff --git a/src/scripts/browserDeviceProfile.js b/src/scripts/browserDeviceProfile.js index dce9a02cb4..8bc3b21644 100644 --- a/src/scripts/browserDeviceProfile.js +++ b/src/scripts/browserDeviceProfile.js @@ -94,6 +94,25 @@ function supportsAc3(videoTestElement) { return videoTestElement.canPlayType('audio/mp4; codecs="ac-3"').replace(/no/, ''); } +/** + * Checks if the device supports DTS (DCA). + * @param {HTMLVideoElement} videoTestElement The video test element + * @returns {boolean|null} _true_ if the device supports DTS (DCA). _false_ if the device doesn't support DTS (DCA). _null_ if support status is unknown. + */ +function canPlayDts(videoTestElement) { + // DTS audio is not supported by Samsung TV 2018+ (Tizen 4.0+) and LG TV 2020-2022 (webOS 5.0, 6.0 and 22) models + if (browser.tizenVersion >= 4 || (browser.web0sVersion >= 5 && browser.web0sVersion < 23)) { + return false; + } + + if (videoTestElement.canPlayType('video/mp4; codecs="dts-"').replace(/no/, '') + || videoTestElement.canPlayType('video/mp4; codecs="dts+"').replace(/no/, '')) { + return true; + } + + return null; +} + function supportsEac3(videoTestElement) { if (browser.tizen || browser.web0s) { return true; @@ -530,12 +549,7 @@ export default function (options) { let supportsDts = options.supportsDts; if (supportsDts == null) { - supportsDts = browser.tizen || browser.web0sVersion || videoTestElement.canPlayType('video/mp4; codecs="dts-"').replace(/no/, '') || videoTestElement.canPlayType('video/mp4; codecs="dts+"').replace(/no/, ''); - - // DTS audio is not supported by Samsung TV 2018+ (Tizen 4.0+) and LG TV 2020-2022 (webOS 5.0, 6.0 and 22) models - if (browser.tizenVersion >= 4 || (browser.web0sVersion >= 5 && browser.web0sVersion < 23)) { - supportsDts = false; - } + supportsDts = canPlayDts(videoTestElement); } if (supportsDts) { From ce15adba6900e70f61bf4a19db318c15ec39d363 Mon Sep 17 00:00:00 2001 From: Dmitry Lyzo Date: Mon, 15 Apr 2024 20:26:12 +0300 Subject: [PATCH 22/33] Add DTS enabling option --- src/components/playbackSettings/playbackSettings.js | 3 +++ .../playbackSettings/playbackSettings.template.html | 8 ++++++++ src/scripts/browserDeviceProfile.js | 2 +- src/scripts/settings/appSettings.js | 13 +++++++++++++ src/strings/en-us.json | 2 ++ 5 files changed, 27 insertions(+), 1 deletion(-) diff --git a/src/components/playbackSettings/playbackSettings.js b/src/components/playbackSettings/playbackSettings.js index 254389a9f6..c1106ec244 100644 --- a/src/components/playbackSettings/playbackSettings.js +++ b/src/components/playbackSettings/playbackSettings.js @@ -173,6 +173,7 @@ function loadForm(context, user, userSettings, systemInfo, apiClient) { context.querySelector('.chkPlayDefaultAudioTrack').checked = user.Configuration.PlayDefaultAudioTrack || false; context.querySelector('.chkPreferFmp4HlsContainer').checked = userSettings.preferFmp4HlsContainer(); + context.querySelector('.chkEnableDts').checked = appSettings.enableDts(); context.querySelector('.chkEnableCinemaMode').checked = userSettings.enableCinemaMode(); context.querySelector('#selectAudioNormalization').value = userSettings.selectAudioNormalization(); context.querySelector('.chkEnableNextVideoOverlay').checked = userSettings.enableNextVideoInfoOverlay(); @@ -216,6 +217,8 @@ function saveUser(context, user, userSettingsInstance, apiClient) { appSettings.maxVideoWidth(context.querySelector('.selectMaxVideoWidth').value); appSettings.limitSupportedVideoResolution(context.querySelector('.chkLimitSupportedVideoResolution').checked); + appSettings.enableDts(context.querySelector('.chkEnableDts').checked); + setMaxBitrateFromField(context.querySelector('.selectVideoInNetworkQuality'), true, 'Video'); setMaxBitrateFromField(context.querySelector('.selectVideoInternetQuality'), false, 'Video'); setMaxBitrateFromField(context.querySelector('.selectMusicInternetQuality'), false, 'Audio'); diff --git a/src/components/playbackSettings/playbackSettings.template.html b/src/components/playbackSettings/playbackSettings.template.html index 6dc860260f..ef9b5ab4da 100644 --- a/src/components/playbackSettings/playbackSettings.template.html +++ b/src/components/playbackSettings/playbackSettings.template.html @@ -157,6 +157,14 @@
+ +
+ +
${EnableDtsHelp}
+