From ad7ef112fc56031db9b1a181a7f245cace03d1ab Mon Sep 17 00:00:00 2001 From: edde746 <86283021+edde746@users.noreply.github.com> Date: Fri, 24 Jul 2026 07:24:58 +0200 Subject: [PATCH] feat(i18n): add Hungarian and Traditional Chinese locales Complete and revise every shipped locale against the current English source, preserve locale-specific plurals, and map script-specific Chinese locales through device, Intl, duration, and Plex boundaries. Co-authored-by: emgeje Co-authored-by: junyou1998 --- lib/i18n/app_locale_utils.dart | 43 + lib/i18n/bg.i18n.json | 236 +- lib/i18n/da.i18n.json | 376 +- lib/i18n/de.i18n.json | 368 +- lib/i18n/en.i18n.json | 28 +- lib/i18n/es.i18n.json | 538 +-- lib/i18n/fr.i18n.json | 494 +-- lib/i18n/hu.i18n.json | 1585 ++++++++ lib/i18n/it.i18n.json | 700 ++-- lib/i18n/ja.i18n.json | 332 +- lib/i18n/ko.i18n.json | 228 +- lib/i18n/nb.i18n.json | 264 +- lib/i18n/nl.i18n.json | 528 +-- lib/i18n/pl.i18n.json | 270 +- lib/i18n/pt.i18n.json | 506 +-- lib/i18n/ru.i18n.json | 160 +- lib/i18n/strings.g.dart | 36 +- lib/i18n/strings_bg.g.dart | 472 +-- lib/i18n/strings_da.g.dart | 752 ++-- lib/i18n/strings_de.g.dart | 740 ++-- lib/i18n/strings_en.g.dart | 84 +- lib/i18n/strings_es.g.dart | 1076 ++--- lib/i18n/strings_fr.g.dart | 988 ++--- lib/i18n/strings_hu.g.dart | 3604 +++++++++++++++++ lib/i18n/strings_it.g.dart | 1396 +++---- lib/i18n/strings_ja.g.dart | 664 +-- lib/i18n/strings_ko.g.dart | 458 ++- lib/i18n/strings_nb.g.dart | 526 +-- lib/i18n/strings_nl.g.dart | 1056 ++--- lib/i18n/strings_pl.g.dart | 540 +-- lib/i18n/strings_pt.g.dart | 1012 ++--- lib/i18n/strings_ru.g.dart | 320 +- lib/i18n/strings_sv.g.dart | 1132 +++--- lib/i18n/strings_zh.g.dart | 1326 +++--- lib/i18n/strings_zh_Hant.g.dart | 3602 ++++++++++++++++ lib/i18n/sv.i18n.json | 566 +-- lib/i18n/zh-Hant.i18n.json | 1582 ++++++++ lib/i18n/zh.i18n.json | 470 +-- lib/main.dart | 3 +- lib/screens/catalog_item_detail_screen.dart | 3 +- lib/screens/livetv/tabs/guide_tab.dart | 3 +- .../settings/appearance_settings_screen.dart | 9 +- lib/services/multi_server_manager.dart | 4 +- lib/services/settings_service.dart | 9 +- lib/utils/formatters.dart | 12 +- test/i18n/app_locale_utils_test.dart | 65 + test/i18n/empty_string_fallback_test.dart | 73 +- test/services/settings_service_test.dart | 27 + test/utils/formatters_test.dart | 25 + test/widgets/video_settings_sheet_test.dart | 2 +- 50 files changed, 19973 insertions(+), 9320 deletions(-) create mode 100644 lib/i18n/app_locale_utils.dart create mode 100644 lib/i18n/hu.i18n.json create mode 100644 lib/i18n/strings_hu.g.dart create mode 100644 lib/i18n/strings_zh_Hant.g.dart create mode 100644 lib/i18n/zh-Hant.i18n.json create mode 100644 test/i18n/app_locale_utils_test.dart diff --git a/lib/i18n/app_locale_utils.dart b/lib/i18n/app_locale_utils.dart new file mode 100644 index 00000000..f9c90b82 --- /dev/null +++ b/lib/i18n/app_locale_utils.dart @@ -0,0 +1,43 @@ +import 'package:flutter/widgets.dart'; + +import 'strings.g.dart'; + +/// Resolves device locales in preference order while preserving Chinese script. +/// +/// Slang's generic resolver cannot disambiguate `zh` and `zh-Hant` after an +/// exact script-and-region miss, so common Traditional Chinese device tags need +/// an application-owned canonicalization step. +AppLocale resolvePreferredAppLocale(Iterable preferredLocales) { + for (final locale in preferredLocales) { + final resolved = _resolveChineseLocale(locale) ?? AppLocaleUtils.parse(locale.toLanguageTag()); + if (resolved != AppLocale.en || locale.languageCode == AppLocale.en.languageCode) return resolved; + } + return AppLocale.en; +} + +AppLocale? _resolveChineseLocale(Locale locale) { + if (locale.languageCode.toLowerCase() != 'zh') return null; + + switch (locale.scriptCode?.toLowerCase()) { + case 'hant': + return AppLocale.zhHant; + case 'hans': + return AppLocale.zh; + } + + return switch (locale.countryCode?.toUpperCase()) { + 'TW' || 'HK' || 'MO' => AppLocale.zhHant, + _ => AppLocale.zh, + }; +} + +extension AppLocaleExternalFormats on AppLocale { + /// Locale name accepted by `package:intl`. + String get intlLocaleName => this == AppLocale.zhHant ? 'zh_TW' : languageCode; + + /// Locale name accepted by `package:duration`. + String get durationLocaleName => this == AppLocale.zhHant ? 'zh_Hant' : languageCode; + + /// Locale identifier sent in Plex request headers. + String get plexLanguageCode => this == AppLocale.zhHant ? 'zh-TW' : languageCode; +} diff --git a/lib/i18n/bg.i18n.json b/lib/i18n/bg.i18n.json index 9bdcbd83..94d4ec4f 100644 --- a/lib/i18n/bg.i18n.json +++ b/lib/i18n/bg.i18n.json @@ -5,19 +5,19 @@ "auth": { "signInWithPlex": "Вход с Plex", "showQRCode": "Покажи QR код", - "authenticate": "Удостовери", + "authenticate": "Удостовери се", "authenticationTimeout": "Времето за удостоверяване изтече. Моля, опитайте отново.", "scanQRToSignIn": "Сканирайте този QR код, за да влезете", "waitingForAuth": "Изчакване на удостоверяване...\nВлезте от браузъра си.", "useBrowser": "Използвай браузър", "or": "или", - "connectToJellyfin": "Свързване с Jellyfin", + "connectToJellyfin": "Свържи се с Jellyfin", "useQuickConnect": "Използвай Quick Connect", "quickConnectInstructions": "Отворете Quick Connect в Jellyfin и въведете този код.", "quickConnectWaiting": "Изчакване на одобрение…", "quickConnectCancel": "Отказ", "quickConnectExpired": "Quick Connect изтече. Опитайте отново.", - "localDataRecoveryRequired": "Plezy could not safely recover local sign-in and pending playback data. Please sign in again." + "localDataRecoveryRequired": "Plezy не успя безопасно да възстанови локалните данни за вход и несинхронизираните данни за възпроизвеждане. Моля, влезте отново." }, "common": { "cancel": "Отказ", @@ -99,9 +99,9 @@ "showHeroSectionDescription": "Показване на карусел с избрано съдържание на началния екран", "secondsLabel": "Секунди", "minutesLabel": "Минути", - "secondsShort": "сек", - "minutesShort": "мин", - "durationHint": "Въведете продължителност (${min}-${max})", + "secondsShort": "сек.", + "minutesShort": "мин.", + "durationHint": "Въведете продължителност (${min}–${max})", "systemTheme": "Системна", "lightTheme": "Светла", "darkTheme": "Тъмна", @@ -109,8 +109,8 @@ "libraryDensity": "Плътност на библиотеката", "compact": "Компактна", "comfortable": "Удобна", - "tvCornerSpotlightBackdrop": "", - "tvCornerSpotlightBackdropDescription": "", + "tvCornerSpotlightBackdrop": "Фон с акцент в ъгъла", + "tvCornerSpotlightBackdropDescription": "Показвай акцентното изображение в горния десен ъгъл, вместо на целия екран", "viewMode": "Режим на изглед", "gridView": "Мрежа", "listView": "Списък", @@ -135,27 +135,27 @@ "showEpisodeNumberOnCardsDescription": "Показвай сезон и номер на епизод върху картите на епизодите", "showSeasonPostersOnTabs": "Показвай постери на сезоните в табовете", "showSeasonPostersOnTabsDescription": "Показвай постера на всеки сезон над неговия таб", - "tvFullCardLayout": "Пълни TV карти", - "tvFullCardLayoutDescription": "Използвай TV карти само с изображения, с насложени имена на актьорите", + "tvFullCardLayout": "Пълни телевизионни карти", + "tvFullCardLayoutDescription": "Използвай телевизионни карти само с изображения и насложени имена на актьорите", "focusGlow": "Сияние при фокус", "focusGlowDescription": "Показвай меко сияние около фокусираната карта", "visualEffects": "Визуални ефекти", "visualEffectsAuto": "Автоматично", "visualEffectsAutoDescription": "Автоматично намалявай ефектите на по-слаби устройства", - "visualEffectsFull": "Пълни", + "visualEffectsFull": "Всички", "visualEffectsReduced": "Намалени", "visualEffectsReducedDescription": "По-малко анимации и изображения с по-ниска резолюция", "hideSpoilers": "Скривай спойлери за негледани епизоди", "hideSpoilersDescription": "Замазвай миниатюри и описания за негледани епизоди", - "playerBackend": "Енджин на плеъра", + "playerBackend": "Система за възпроизвеждане", "exoPlayer": "ExoPlayer", "mpv": "mpv", "hardwareDecoding": "Хардуерно декодиране", "hardwareDecodingDescription": "Използвай хардуерно ускорение, когато е налично", "bufferSize": "Размер на буфера", - "bufferSizeMB": "${size}MB", + "bufferSizeMB": "${size} MB", "bufferSizeAuto": "Автоматично (препоръчително)", - "bufferSizeWarning": "Налична памет ${heap}MB. Буфер ${size}MB може да повлияе на възпроизвеждането.", + "bufferSizeWarning": "Налична памет: ${heap} MB. Буфер от ${size} MB може да повлияе на възпроизвеждането.", "defaultQualityTitle": "Качество по подразбиране", "musicQualityTitle": "Качество на музиката", "subtitleStyling": "Стил на субтитрите", @@ -166,8 +166,8 @@ "secondsUnit": "${seconds} секунди", "defaultSleepTimer": "Таймер за заспиване по подразбиране", "minutesUnit": "${minutes} минути", - "rememberTrackSelections": "Запомняй избора на аудио/субтитри за сериал/филм", - "rememberTrackSelectionsDescription": "Запомняй избора на аудио и субтитри за всяко заглавие", + "rememberTrackSelections": "Запомняй избора на аудио и субтитри за всеки сериал или филм", + "rememberTrackSelectionsDescription": "Запомняй избора на аудиопътечка и субтитри за всяко заглавие", "showChapterMarkersOnTimeline": "Показвай маркери на глави върху времевата линия", "showChapterMarkersOnTimelineDescription": "Разделяй времевата линия на сегменти по границите на главите", "clickVideoTogglesPlayback": "Клик върху видеото превключва възпроизвеждане/пауза", @@ -177,10 +177,10 @@ "keyboardShortcutsDescription": "Настройване на клавишните комбинации", "videoPlayerNavigation": "Навигация във видео плейъра", "videoPlayerNavigationDescription": "Използвай стрелките за навигация в контролите на видео плейъра", - "watchTogetherRelay": "Релей сървър за гледане заедно", - "watchTogetherRelayDescription": "Задай собствен релей сървър. Всички трябва да използват същия сървър.", + "watchTogetherRelay": "Релеен сървър за гледане заедно", + "watchTogetherRelayDescription": "Задай собствен релеен сървър. Всички трябва да използват един и същ сървър.", "watchTogetherRelayHint": "https://my-relay.example.com", - "watchTogetherRelayInvalid": "Enter a valid HTTP or HTTPS relay base URL.", + "watchTogetherRelayInvalid": "Въведете валиден основен HTTP или HTTPS URL адрес на релейния сървър.", "crashReporting": "Докладване на сривове", "crashReportingDescription": "Изпращай доклади за сривове, за да помогнеш за подобряване на приложението", "debugLogging": "Логове за отстраняване на грешки", @@ -215,7 +215,7 @@ "validationErrorDuration": "Продължителността трябва да е между ${min} и ${max} ${unit}", "shortcutAlreadyAssigned": "Клавишната комбинация вече е назначена за ${action}", "shortcutUpdated": "Клавишната комбинация е обновена за ${action}", - "saveFailed": "Could not save changes. Try again.", + "saveFailed": "Промените не можаха да бъдат запазени. Опитайте отново.", "autoSkip": "Автоматично прескачане", "autoSkipIntro": "Автоматично прескачане на интро", "autoSkipIntroDescription": "Автоматично прескачай интро маркери след няколко секунди", @@ -234,7 +234,7 @@ "downloads": "Изтегляния", "downloadLocationDescription": "Изберете къде да се съхранява изтегленото съдържание", "downloadLocationDefault": "По подразбиране (хранилище на приложението)", - "downloadLocationCustom": "Персонална локация", + "downloadLocationCustom": "Потребителско местоположение", "selectFolder": "Избери папка", "resetToDefault": "Върни по подразбиране", "currentPath": "Текущ: ${path}", @@ -242,11 +242,11 @@ "downloadLocationReset": "Местоположението за изтегляния е върнато по подразбиране", "downloadLocationInvalid": "Избраната папка не е записваема", "downloadLocationPickerUnavailable": "Изборът на папка не е наличен на това устройство", - "downloadOnWifiOnly": "Изтегляне само през WiFi", + "downloadOnWifiOnly": "Изтегляне само през Wi-Fi", "downloadOnWifiOnlyDescription": "Предотвратявай изтегляния през мобилни данни", "autoRemoveWatchedDownloads": "Автоматично премахвай изгледаните изтегляния", "autoRemoveWatchedDownloadsDescription": "Изтривай изгледаните изтегляния автоматично", - "cellularDownloadBlocked": "Изтеглянията са блокирани през мобилни данни. Използвайте WiFi или променете настройката.", + "cellularDownloadBlocked": "Изтеглянията през мобилни данни са блокирани. Използвайте Wi-Fi или променете настройката.", "maxVolume": "Максимална сила на звука", "maxVolumeDescription": "Позволи усилване на звука над 100% за тихи медии", "maxVolumePercent": "${percent}%", @@ -258,7 +258,7 @@ "companionRemoteServer": "Сървър за дистанционно управление", "companionRemoteServerDescription": "Позволи на мобилни устройства във вашата мрежа да управляват това приложение", "autoPip": "Автоматичен режим картина в картината", - "autoPipDescription": "Влизай в режим картина в картината при напускане по време на възпроизвеждане", + "autoPipDescription": "Автоматично включвай режима картина в картината при излизане от приложението по време на възпроизвеждане", "matchContentFrameRate": "Напасване към кадровата честота на съдържанието", "matchContentFrameRateDescription": "Напасни честотата на опресняване на дисплея към видео съдържанието", "matchRefreshRate": "Напасване на честотата на опресняване", @@ -268,9 +268,9 @@ "displaySwitchDelay": "Забавяне при смяна на дисплея", "tunneledPlayback": "Тунелно възпроизвеждане", "tunneledPlaybackDescription": "Използвай видео тунелиране. Изключете, ако HDR възпроизвеждането показва черен екран.", - "audioPassthrough": "Аудио passthrough", - "audioPassthroughDescription": "Изпращай Dolby/DTS звук към ресийвъра или телевизора без прекодиране, запазвайки съраунд звука. Изключете, ако няма звук.", - "audioPassthroughDescriptionAppleTv": "Предава Dolby Digital Plus (вкл. Atmos) на системата като битов поток. DTS и TrueHD продължават да се възпроизвеждат като многоканален PCM. При превъртане може да има кратки прекъсвания на звука.", + "audioPassthrough": "Директно предаване на аудио", + "audioPassthroughDescription": "Изпращай Dolby/DTS звук към приемника или телевизора без прекодиране, за да запазиш съраунд звука. Изключи настройката, ако няма звук.", + "audioPassthroughDescriptionAppleTv": "Използвай вградения декодер на Apple за Dolby Digital Plus, включително Atmos. DTS и TrueHD продължават да се възпроизвеждат като многоканален PCM. Изключи настройката, ако няма звук.", "audioDownmix": "Смесване до стерео", "audioDownmixDescription": "Смесва съраунд звука до два канала за стерео тонколони или слушалки", "downmixCenterBoost": "Усилване на централния канал", @@ -294,16 +294,16 @@ "atmosTestUrlDescription": "HTTP URL на суров .ec3 Dolby Atmos файл (напр. извлечен с ffmpeg)", "atmosTestUrlMissing": "Първо задайте URL на тестовия файл", "atmosTestStatus": "Състояние", - "dvConversionMode": "Dolby Vision конвертиране", - "dvConversionModeDescription": "Изберете как ExoPlayer обработва Dolby Vision Profile 7 файлове.", + "dvConversionMode": "Преобразуване на Dolby Vision", + "dvConversionModeDescription": "Изберете как ExoPlayer обработва файлове с Dolby Vision Profile 7.", "dvConversionAuto": "Автоматично", - "dvConversionNative": "Нативно / изключено", + "dvConversionNative": "Директно / изключено", "dvConversionDv81": "P7 → P8.1", "dvConversionHevcStrip": "P7 → HEVC", - "dvConversionAutoDescription": "Използва засичане на възможностите на устройството и нормално fallback поведение", - "dvConversionNativeDescription": "Принуждава нативен DV7 и спира повторния опит за DV конвертиране", - "dvConversionDv81Description": "Принуждава inline RPU конвертиране към Dolby Vision профил 8.1", - "dvConversionHevcStripDescription": "Премахва Dolby Vision RPU/EL слоевете и подава обикновен HEVC", + "dvConversionAutoDescription": "Засича възможностите на устройството и използва обичайното резервно поведение", + "dvConversionNativeDescription": "Принуждава директно възпроизвеждане на DV7 и изключва повторния опит за преобразуване", + "dvConversionDv81Description": "Принуждава директно преобразуване на RPU към Dolby Vision Profile 8.1", + "dvConversionHevcStripDescription": "Премахва слоевете Dolby Vision RPU/EL и подава обикновен HEVC поток", "requireProfileSelectionOnOpen": "Питай за профил при отваряне на приложението", "requireProfileSelectionOnOpenDescription": "Показвай избор на профил всеки път при отваряне на приложението", "forceTvMode": "Принуди TV режим", @@ -332,7 +332,7 @@ "search": { "hint": "Търсене на филми, сериали, музика...", "tryDifferentTerm": "Опитайте с различна дума за търсене", - "searchYourMedia": "Търсете във вашата медия", + "searchYourMedia": "Търсете в медийното си съдържание", "enterTitleActorOrKeyword": "Въведете заглавие, актьор или ключова дума" }, "hotkeys": { @@ -346,13 +346,13 @@ "playPause": "Пускане/пауза", "volumeUp": "Увеличи звука", "volumeDown": "Намали звука", - "seekForward": "Превърти напред (${seconds}сек)", - "seekBackward": "Превърти назад (${seconds}сек)", + "seekForward": "Превърти напред (${seconds} сек.)", + "seekBackward": "Превърти назад (${seconds} сек.)", "fullscreenToggle": "Превключи цял екран", "muteToggle": "Превключи заглушаване", "subtitleToggle": "Превключи субтитри", - "audioTrackNext": "Следващ аудио запис", - "subtitleTrackNext": "Следващ субтитърен запис", + "audioTrackNext": "Следваща аудиопътечка", + "subtitleTrackNext": "Следваща пътечка със субтитри", "chapterNext": "Следваща глава", "chapterPrevious": "Предишна глава", "episodeNext": "Следващ епизод", @@ -407,10 +407,10 @@ "shuffleNotAvailableOffline": "Разбърканото възпроизвеждане не е налично офлайн", "fileInfo": "Информация за файла", "deleteFromServer": "Изтрий от сървъра", - "confirmDelete": "Да се изтрие ли тази медия и файловете ѝ от вашия сървър?", + "confirmDelete": "Да се изтрият ли този елемент и файловете му от вашия сървър?", "deleteMultipleWarning": "Това включва всички епизоди и техните файлове.", - "mediaDeletedSuccessfully": "Медията е изтрита успешно", - "mediaFailedToDelete": "Неуспешно изтриване на медията", + "mediaDeletedSuccessfully": "Елементът е изтрит успешно", + "mediaFailedToDelete": "Неуспешно изтриване на елемента", "rate": "Оцени", "playFromBeginning": "Пусни от началото", "playVersion": "Пусни версия..." @@ -422,7 +422,7 @@ "favorited": "Добавено в любими", "saved": "Запазено", "notAvailable": "Няма намерено съвпадение", - "noConnectedServices": "Свържи услуга в Настройки, за да оценяваш там." + "noConnectedServices": "Свържи услуга от настройките, за да оценяваш и в нея." }, "accessibility": { "mediaCardMovie": "${title}, филм", @@ -432,7 +432,7 @@ "mediaCardWatched": "гледано", "mediaCardPartiallyWatched": "${percent} процента изгледано", "mediaCardUnwatched": "негледано", - "tapToPlay": "Докоснете за възпроизвеждане", + "tapToPlay": "Докосни за възпроизвеждане", "decrease": "Намали", "increase": "Увеличи", "decreaseValue": "Намали ${label}", @@ -444,7 +444,7 @@ "expandText": "Разгъни текста", "collapseText": "Свий текста", "alphabetNavigation": "Навигация по азбуката", - "alphabetScrollHint": "Плъзнете нагоре или надолу, за да преминете по буква", + "alphabetScrollHint": "Плъзни нагоре или надолу, за да преминеш към друга буква", "rowColumnPosition": "Ред ${row} от ${rowCount}, колона ${column} от ${columnCount}", "rowPosition": "Ред ${row} от ${rowCount}" }, @@ -455,7 +455,7 @@ "markAsUnwatched": "Маркирай като негледано" }, "audioTracks": { - "track": "Аудио пътечка ${n}" + "track": "Аудиопътечка ${n}" }, "videoControls": { "audioLabel": "Аудио", @@ -469,8 +469,8 @@ "letterbox": "Черни ленти", "fillScreen": "Запълни екрана", "stretch": "Разтегни", - "lockRotation": "Заключи ротацията", - "unlockRotation": "Отключи ротацията", + "lockRotation": "Заключи завъртането", + "unlockRotation": "Отключи завъртането", "timerActive": "Таймерът е активен", "playbackWillPauseIn": "Възпроизвеждането ще спре след ${duration}", "sleepTimerEndOfVideo": "Край на текущото видео", @@ -478,14 +478,14 @@ "sleepTimerDurationHeader": "Таймер", "playbackWillPauseAtEnd": "Възпроизвеждането ще спре в края на това видео", "stillWatching": "Още ли гледате?", - "pausingIn": "Пауза след ${seconds}сек", + "pausingIn": "Пауза след ${seconds} сек.", "continueWatching": "Продължи", "autoPlayNext": "Автоматично пусни следващото", "playNext": "Пусни следващото", "playButton": "Пусни", "pauseButton": "Пауза", - "showPlaybackControls": "", - "hidePlaybackControls": "", + "showPlaybackControls": "Покажи контролите за възпроизвеждане", + "hidePlaybackControls": "Скрий контролите за възпроизвеждане", "seekBackwardButton": "Превърти назад ${seconds} секунди", "seekForwardButton": "Превърти напред ${seconds} секунди", "previousButton": "Предишен епизод", @@ -510,10 +510,10 @@ "fullscreenButton": "Влез на цял екран", "exitFullscreenButton": "Излез от цял екран", "alwaysOnTopButton": "Винаги отгоре", - "rotationLockButton": "Заключване на ротацията", + "rotationLockButton": "Заключване на завъртането", "lockScreen": "Заключи екрана", "screenLockButton": "Заключване на екрана", - "longPressToUnlock": "Задръжте продължително за отключване", + "longPressToUnlock": "Задръж продължително за отключване", "timelineSlider": "Видео времева линия", "volumeSlider": "Ниво на звука", "endsAt": "Свършва в ${time}", @@ -524,7 +524,7 @@ "pipErrors": { "androidVersion": "Изисква Android 8.0 или по-нова версия", "iosVersion": "Изисква iOS 15.0 или по-нова версия", - "permissionDisabled": "Режимът картина в картината е изключен. Включете го в системните настройки.", + "permissionDisabled": "Режимът картина в картината е изключен. Включете го от системните настройки.", "notSupported": "Устройството не поддържа режим картина в картината", "voSwitchFailed": "Неуспешна смяна на видео изхода за режим картина в картината", "failed": "Режимът картина в картината не успя да стартира", @@ -538,8 +538,8 @@ "language": "Език", "noSubtitlesFound": "Не са намерени субтитри", "noSubtitlesAvailable": "Няма налични субтитри", - "noAudioTracksAvailable": "Няма налични аудио писти", - "noTracksAvailable": "Няма налични писти", + "noAudioTracksAvailable": "Няма налични аудиопътечки", + "noTracksAvailable": "Няма налични пътечки", "subtitleDownloaded": "Субтитърът е изтеглен", "subtitleDownloadedNotApplied": "Субтитрите са изтеглени, но не можаха да бъдат избрани", "subtitleDownloadFailed": "Неуспешно изтегляне на субтитър", @@ -561,11 +561,11 @@ "streamInterrupted": "Потокът прекъсна. Натиснете „Пусни“ или превъртете, за да опитате отново.", "liveStreamInterrupted": "Потокът на живо прекъсна. Натиснете „Пусни“, за да опитате отново.", "fileInfoNotAvailable": "Информацията за файла не е налична", - "playbackAuthenticationRequired": "Sign in to the media server again to play this item.", - "playbackServerUnavailable": "The media server is unavailable. Try again later.", - "playbackDataInvalid": "The server returned invalid playback information.", - "playbackCancelled": "Playback was cancelled.", - "playbackFailed": "Playback could not be started.", + "playbackAuthenticationRequired": "Влезте отново в медийния сървър, за да възпроизведете този елемент.", + "playbackServerUnavailable": "Медийният сървър не е достъпен. Опитайте отново по-късно.", + "playbackDataInvalid": "Сървърът върна невалидна информация за възпроизвеждането.", + "playbackCancelled": "Възпроизвеждането беше отменено.", + "playbackFailed": "Възпроизвеждането не можа да бъде стартирано.", "errorLoadingFileInfo": "Грешка при зареждане на информация за файла: ${error}", "errorLoadingSeries": "Грешка при зареждане на сериала", "musicNotSupported": "Възпроизвеждането на музика все още не се поддържа", @@ -602,16 +602,16 @@ }, "subtitlingStyling": { "text": "Текст", - "border": "Рамка", + "border": "Контур", "background": "Фон", "fontSize": "Размер на шрифта", "textColor": "Цвят на текста", - "borderSize": "Размер на рамката", - "borderColor": "Цвят на рамката", - "backgroundOpacity": "Прозрачност на фона", + "borderSize": "Дебелина на контура", + "borderColor": "Цвят на контура", + "backgroundOpacity": "Непрозрачност на фона", "backgroundColor": "Цвят на фона", "position": "Позиция", - "assOverride": "ASS презаписване", + "assOverride": "Промяна на ASS стиловете", "overrideScale": "Мащабиране", "overrideForce": "Принудително", "overrideStrip": "Премахване на стиловете", @@ -688,7 +688,7 @@ "borrowExplain": "Използвай връзка от друг профил. PIN-защитените профили изискват PIN.", "borrowEmpty": "Все още няма какво да се използва.", "borrowEmptySubtitle": "Първо свържете Plex или Jellyfin към друг профил.", - "borrowLoadFailed": "Available connections could not be loaded. Try again.", + "borrowLoadFailed": "Наличните връзки не можаха да бъдат заредени. Опитайте отново.", "borrowFromProfile": "От ${displayName}", "borrowConnectionBorrowed": "Връзката е използвана.", "borrowFailed": "Неуспешно използване на връзка.", @@ -848,7 +848,7 @@ "title": "Относно", "openSourceLicenses": "Лицензи с отворен код", "versionLabel": "Версия ${version}", - "appDescription": "Красив Plex и Jellyfin клиент за Flutter", + "appDescription": "Красив клиент за Plex и Jellyfin, създаден с Flutter", "viewLicensesDescription": "Виж лицензите на библиотеки на трети страни" }, "serverSelection": { @@ -886,15 +886,15 @@ "watchlist": "Списък за гледане", "recommendedMovies": "Препоръчани филми", "recommendedShows": "Препоръчани сериали", - "trendingMovies": "Актуални филми", - "trendingShows": "Актуални сериали", + "trendingMovies": "Набиращи популярност филми", + "trendingShows": "Набиращи популярност сериали", "popularMovies": "Популярни филми", "popularShows": "Популярни сериали", - "trendingAnime": "Актуални аниме", + "trendingAnime": "Набиращи популярност аниме", "suggestedAnime": "Препоръчани аниме", "airingAnime": "Топ излъчвани аниме", "popularAnime": "Най-популярни аниме", - "trending": "Актуални", + "trending": "Набиращи популярност", "upcomingMovies": "Предстоящи филми", "upcomingShows": "Предстоящи сериали" }, @@ -931,7 +931,7 @@ "serverUnavailable": "Сървърът за телевизия на живо не е наличен.", "serverNotConnected": "Сървърът за телевизия на живо не е свързан.", "noPrograms": "Няма налични програмни данни", - "liveStreamFailed": "Потокът на живо се провали", + "liveStreamFailed": "Потокът на живо не можа да бъде пуснат", "unknownProgram": "Неизвестна програма", "unknownHub": "Неизвестно", "unknownError": "Неизвестна грешка", @@ -953,7 +953,7 @@ "favorites": "Любими", "reorderFavorites": "Пренареди любимите", "favoritesLoadFailed": "Любимите не можаха да се заредят. Проверете връзката си и опитайте отново.", - "favoritesUpdateFailed": "Could not update favorites. Check your connection and try again.", + "favoritesUpdateFailed": "Любимите не можаха да бъдат обновени. Проверете връзката си и опитайте отново.", "joinSession": "Присъедини се към текуща сесия", "watchFromStart": "Гледай от началото (преди ${minutes} мин)", "watchLive": "Гледай на живо", @@ -1057,17 +1057,17 @@ "playingFrom": "Възпроизвеждане от ${title}", "queue": "Опашка", "clearQueue": "Изчисти опашката", - "lyrics": "Текст", - "noLyrics": "Няма наличен текст", + "lyrics": "Текст на песента", + "noLyrics": "Няма наличен текст на песента", "sleepTimer": "Таймер за заспиване", "sleepTimerEndOfTrack": "Край на песента", "sleepTimerMinutes": "${n} минути", "stopPlayback": "Спри възпроизвеждането", "previousTrack": "Предишна песен", "nextTrack": "Следваща песен", - "repeat": "Повтори", - "repeatAll": "Повтори всички", - "repeatOne": "Повтори една" + "repeat": "Повтаряне", + "repeatAll": "Повтаряне на всички", + "repeatOne": "Повтаряне на една" }, "watchTogether": { "title": "Гледане заедно", @@ -1078,21 +1078,21 @@ "joining": "Присъединяване...", "controlMode": "Режим на управление", "controlModeQuestion": "Кой може да управлява възпроизвеждането?", - "hostOnly": "Само домакинът", + "hostOnly": "Само организаторът", "anyone": "Всеки", - "hostingSession": "Сесия с домакин", + "hostingSession": "Организирана сесия", "inSession": "В сесия", "sessionCode": "Код на сесията", "openSessionControls": "Отвори контролите за сесията „Гледане заедно“", "copySessionCode": "Копирай кода на сесията", - "hostControlsPlayback": "Домакинът управлява възпроизвеждането", + "hostControlsPlayback": "Организаторът управлява възпроизвеждането", "anyoneCanControl": "Всеки може да управлява възпроизвеждането", - "hostControls": "Контроли на домакина", + "hostControls": "Контроли на организатора", "anyoneControls": "Всеки управлява", "participants": "Участници", - "host": "Домакин", - "hostBadge": "ДОМАКИН", - "youAreHost": "Вие сте домакин", + "host": "Организатор", + "hostBadge": "ОРГАНИЗАТОР", + "youAreHost": "Вие сте организаторът", "watchingWithOthers": "Гледате с други", "endSession": "Край на сесията", "leaveSession": "Напусни сесията", @@ -1110,21 +1110,21 @@ "pasteFromClipboard": "Постави от клипборда", "pleaseEnterCode": "Моля, въведете код на сесия", "codeMustBe5Chars": "Кодът на сесията трябва да е 5 символа", - "joinInstructions": "Въведете кода на сесията от домакина, за да се присъедините.", + "joinInstructions": "Въведете кода на сесията от организатора, за да се присъедините.", "failedToCreate": "Неуспешно създаване на сесия", "failedToJoin": "Неуспешно присъединяване към сесия", "sessionCodeCopied": "Кодът на сесията е копиран в клипборда", - "relayUnreachable": "Релей сървърът е недостъпен. Блокиране от доставчика може да пречи на гледането заедно.", - "reconnectingToHost": "Повторно свързване с домакина...", + "relayUnreachable": "Релейният сървър е недостъпен. Възможно е интернет доставчикът да блокира гледането заедно.", + "reconnectingToHost": "Повторно свързване с организатора...", "currentPlayback": "Текущо възпроизвеждане", "joinCurrentPlayback": "Присъедини се към текущото възпроизвеждане", - "joinCurrentPlaybackDescription": "Върнете се към това, което домакинът гледа в момента", + "joinCurrentPlaybackDescription": "Върнете се към това, което организаторът гледа в момента", "failedToOpenCurrentPlayback": "Неуспешно отваряне на текущото възпроизвеждане", "participantJoined": "${name} се присъедини", "participantLeft": "${name} напусна", "participantPaused": "${name} постави на пауза", "participantResumed": "${name} продължи", - "participantSeeked": "${name} превъртя", + "participantSeeked": "${name} промени позицията на възпроизвеждане", "participantBuffering": "${name} буферира", "participantNeedsUpdate": "${name} е с по-стара версия на приложението — синхронизирането не е налично", "resumingWithout": "Продължаване без ${name}", @@ -1160,8 +1160,8 @@ "resumeDownload": "Възобнови изтеглянето", "cancelledDownload": "Отменено изтегляне", "syncingFile": "${file} (синхронизира се ${status})", - "downloadedFileClickToComplete": "Изтеглен ${file} — щракнете за довършване", - "partialDownloadClickToComplete": "Частично изтеглено — щракнете за довършване", + "downloadedFileClickToComplete": "${file} е изтеглен — щракнете, за да завършите", + "partialDownloadClickToComplete": "Частично изтеглено — щракнете, за да завършите", "deleting": "Изтриване...", "deletingWithProgress": "Изтриване на ${title}... (${current} от ${total})", "queuedTooltip": "В опашката", @@ -1176,7 +1176,7 @@ "allEpisodes": "Всички епизоди", "unwatchedOnly": "Само негледани", "nextNUnwatched": "Следващите ${count} негледани", - "customAmount": "Персонален брой...", + "customAmount": "Друг брой...", "includeSpecials": "Включи специалните", "howManyEpisodes": "Колко епизода?", "invalidEpisodeCount": "Въведете валиден брой епизоди.", @@ -1224,7 +1224,7 @@ }, "companionRemote": { "title": "Дистанционно управление", - "connectedTo": "Свързан към ${name}", + "connectedTo": "Връзка с ${name}", "unknownDevice": "Непознато устройство", "session": { "startingServer": "Стартиране на сървър за дистанционно управление...", @@ -1245,7 +1245,7 @@ "connecting": "Свързване...", "searchingForDevices": "Търсене на устройства...", "noDevicesFound": "Не са намерени устройства във вашата мрежа", - "noDevicesHint": "Отворете Plezy на настолен компютър и използвайте същия WiFi", + "noDevicesHint": "Отворете Plezy на настолен компютър и използвайте същата Wi-Fi мрежа", "availableDevices": "Налични устройства", "manualConnection": "Ръчно свързване", "cryptoInitFailed": "Не може да се стартира защитена връзка. Първо влезте в Plex.", @@ -1288,8 +1288,8 @@ "errors": { "noNetworkInterface": "Не е намерен мрежов интерфейс", "authenticationFailed": "Неуспешно удостоверяване", - "serverStartFailed": "Неуспешно стартиране на отдалечения сървър: ${error}", - "commandFailed": "Неуспешно изпращане на отдалечена команда: ${error}", + "serverStartFailed": "Неуспешно стартиране на сървъра за дистанционно управление: ${error}", + "commandFailed": "Неуспешно изпращане на команда за дистанционно управление: ${error}", "joinTimedOut": "Времето за присъединяване към сесията изтече", "failedToConnectAnyAddress": "Неуспешно свързване към който и да е адрес", "connectionLostAfterAttempts": "Връзката е загубена след ${attempts} опита", @@ -1307,7 +1307,7 @@ "hdr": "HDR", "audioOutput": "Аудио изход", "performanceOverlay": "Оверлей за производителност", - "audioPassthrough": "Аудио passthrough", + "audioPassthrough": "Директно предаване на аудио", "audioNormalization": "Нормализиране на силата на звука", "audioDownmix": "Смесване до стерео" }, @@ -1330,10 +1330,10 @@ "matrix": "Матрица", "primaries": "Основни цветове", "transfer": "Трансфер", - "renderFps": "Render FPS", - "displayFps": "Display FPS", + "renderFps": "FPS при изобразяване", + "displayFps": "FPS на дисплея", "avSync": "A/V синхр.", - "dropped": "Изпуснати", + "dropped": "Пропуснати кадри", "dvRpus": "DV RPU", "dvRpuAverage": "Средно DV RPU", "dvSampleAverage": "Средно DV семпл", @@ -1346,16 +1346,16 @@ "speed": "Скорост", "player": "Плеър", "memory": "Памет", - "uiFps": "UI FPS" + "uiFps": "FPS на интерфейса" }, "externalPlayer": { "title": "Външен плеър", "useExternalPlayer": "Използвай външен плеър", "useExternalPlayerDescription": "Отваряй видеата в друго приложение", "selectPlayer": "Избери плейър", - "customPlayers": "Персонални плейъри", + "customPlayers": "Потребителски плейъри", "systemDefault": "Системен по подразбиране", - "addCustomPlayer": "Добави персонален плейър", + "addCustomPlayer": "Добави потребителски плейър", "playerName": "Име на плейъра", "playerNameHint": "Моят плеър", "playerCommand": "Команда", @@ -1406,7 +1406,7 @@ "episodeSorting": "Сортиране на епизоди", "oldestFirst": "Най-старите първо", "newestFirst": "Най-новите първо", - "keep": "Пази", + "keep": "Запазвай", "allEpisodes": "Всички епизоди", "latestEpisodes": "${count} последни епизода", "latestEpisode": "Последен епизод", @@ -1421,17 +1421,17 @@ "show": "Покажи", "hide": "Скрий", "episodeOrdering": "Подредба на епизодите", - "tmdbAiring": "The Movie Database (Aired)", - "tvdbAiring": "TheTVDB (Aired)", - "tvdbAbsolute": "TheTVDB (Absolute)", + "tmdbAiring": "The Movie Database (по излъчване)", + "tvdbAiring": "TheTVDB (по излъчване)", + "tvdbAbsolute": "TheTVDB (абсолютна подредба)", "metadataLanguage": "Език на метаданните", "useOriginalTitle": "Използвай оригиналното заглавие", "preferredAudioLanguage": "Предпочитан аудио език", "preferredSubtitleLanguage": "Предпочитан език за субтитри", "subtitleMode": "Режим за автоматичен избор на субтитри", - "manuallySelected": "Ръчно избрано", - "shownWithForeignAudio": "Показва се при чуждо аудио", - "alwaysEnabled": "Винаги включено", + "manuallySelected": "Ръчно избрани", + "shownWithForeignAudio": "Показване при чуждоезично аудио", + "alwaysEnabled": "Винаги включени", "tags": "Тагове", "addTag": "Добави таг", "genre": "Жанр", @@ -1472,7 +1472,7 @@ "scrobble": "Скроблиране в реално време", "scrobbleDescription": "Изпращай събития за пускане, пауза и спиране към Trakt по време на възпроизвеждане.", "watchedSync": "Синхронизирай статус гледано", - "watchedSyncDescription": "Когато маркирате елементи като гледани в Plezy, маркирай ги и в Trakt." + "watchedSyncDescription": "Когато маркирате елементи като гледани в Plezy, те се маркират и в Trakt." }, "seerr": { "title": "Seerr", @@ -1509,7 +1509,7 @@ "services": { "title": "Услуги", "hubSubtitle": "Синхронизирай прогреса на гледане и заявявай нови заглавия.", - "notConnected": "Не е свързан", + "notConnected": "Няма връзка", "connectedAs": "Свързан като @${username}", "scrobble": "Проследявай прогреса автоматично", "scrobbleDescription": "Обновявай списъка си, когато завършиш епизод или филм.", @@ -1544,9 +1544,9 @@ "subtitleBlocked": "${count} блокирани", "subtitleAllowed": "${count} разрешени", "mode": "Режим на филтъра", - "modeBlacklist": "Черен списък", - "modeWhitelist": "Бял списък", - "modeHintBlacklist": "Синхронизирай всяка библиотека, освен отметнатите по-долу.", + "modeBlacklist": "Списък за изключване", + "modeWhitelist": "Списък за включване", + "modeHintBlacklist": "Синхронизирай всички библиотеки освен отметнатите по-долу.", "modeHintWhitelist": "Синхронизирай само отметнатите по-долу библиотеки.", "libraries": "Библиотеки", "noLibraries": "Няма налични библиотеки" @@ -1566,7 +1566,7 @@ "required": "Задължително", "couldNotReachServer": "Сървърът не може да бъде достигнат: ${error}", "signInFailed": "Входът е неуспешен: ${error}", - "quickConnectFailed": "Quick Connect е неуспешен: ${error}", + "quickConnectFailed": "Quick Connect не бе успешно: ${error}", "addPlexTitle": "Вход с Plex", "pinExpired": "PIN-ът изтече преди вход. Моля, опитайте отново.", "failedToRegisterAccount": "Неуспешна регистрация на акаунт: ${error}", diff --git a/lib/i18n/da.i18n.json b/lib/i18n/da.i18n.json index 3480c8fc..42cd3a4a 100644 --- a/lib/i18n/da.i18n.json +++ b/lib/i18n/da.i18n.json @@ -6,18 +6,18 @@ "signInWithPlex": "Log ind med Plex", "showQRCode": "Vis QR-kode", "authenticate": "Godkend", - "authenticationTimeout": "Godkendelse fik timeout. Prøv igen.", + "authenticationTimeout": "Godkendelsen tog for lang tid. Prøv igen.", "scanQRToSignIn": "Scan denne QR-kode for at logge ind", "waitingForAuth": "Venter på godkendelse...\nLog ind fra din browser.", - "useBrowser": "Brug browser", + "useBrowser": "Brug browseren", "or": "eller", "connectToJellyfin": "Forbind til Jellyfin", "useQuickConnect": "Brug Quick Connect", "quickConnectInstructions": "Åbn Quick Connect i Jellyfin, og indtast denne kode.", "quickConnectWaiting": "Venter på godkendelse…", - "quickConnectCancel": "Annullér", + "quickConnectCancel": "Annuller", "quickConnectExpired": "Quick Connect er udløbet. Prøv igen.", - "localDataRecoveryRequired": "Plezy could not safely recover local sign-in and pending playback data. Please sign in again." + "localDataRecoveryRequired": "Plezy kunne ikke gendanne lokale loginoplysninger og ventende afspilningsdata på en sikker måde. Log ind igen." }, "common": { "cancel": "Annuller", @@ -53,7 +53,7 @@ "ok": "OK", "off": "Fra", "seasonNumber": "Sæson ${number}", - "episodeNumberTitle": "Episode ${number} - ${title}", + "episodeNumberTitle": "Episode ${number} – ${title}", "chapterNumber": "Kapitel ${number}", "reconnect": "Genopret forbindelse", "viewAll": "Vis alle", @@ -64,14 +64,14 @@ "loading": "Indlæser...", "fullscreen": "Fuldskærm", "exitFullscreen": "Forlad fuldskærm", - "pressBackAgainToExit": "Tryk tilbage igen for at afslutte" + "pressBackAgainToExit": "Tryk på tilbage igen for at afslutte" }, "screens": { "licenses": "Licenser", "switchProfile": "Skift profil", "subtitleStyling": "Undertekststil", "mpvConfig": "mpv.conf", - "logs": "Logs" + "logs": "Logfiler" }, "update": { "available": "Opdatering tilgængelig", @@ -109,13 +109,13 @@ "libraryDensity": "Bibliotekstæthed", "compact": "Kompakt", "comfortable": "Komfortabel", - "tvCornerSpotlightBackdrop": "", - "tvCornerSpotlightBackdropDescription": "", + "tvCornerSpotlightBackdrop": "Fremhævet baggrundsbillede i hjørnet", + "tvCornerSpotlightBackdropDescription": "Vis fremhævet grafik i øverste højre hjørne i stedet for at fylde skærmen", "viewMode": "Visningstilstand", "gridView": "Gitter", "listView": "Liste", - "showHeroSection": "Vis hero-sektion", - "continueWatchingAction": "Handling for Fortsæt med at se", + "showHeroSection": "Vis udvalgt indhold", + "continueWatchingAction": "Handling for \"Fortsæt med at se\"", "continueWatchingPlay": "Afspil", "continueWatchingDetails": "Åbn detaljer", "episodeAction": "Handling for afsnit", @@ -123,10 +123,10 @@ "episodeDetails": "Åbn detaljer", "useGlobalHubs": "Brug startlayout", "useGlobalHubsDescription": "Vis samlet startsideindhold. Brug ellers biblioteksanbefalinger.", - "showServerNameOnHubs": "Vis servernavn på hubbe", - "showServerNameOnHubsDescription": "Vis altid servernavne i hubtitler.", + "showServerNameOnHubs": "Vis servernavn på hubber", + "showServerNameOnHubsDescription": "Vis altid servernavne i titler på hubber.", "groupLibrariesByServer": "Grupper biblioteker efter server", - "groupLibrariesByServerDescription": "Gruppér sidebar-biblioteker under hver medieserver.", + "groupLibrariesByServerDescription": "Gruppér bibliotekerne i sidepanelet under hver medieserver.", "alwaysKeepSidebarOpen": "Hold altid sidepanelet åbent", "alwaysKeepSidebarOpenDescription": "Sidepanelet forbliver udvidet, og indholdsområdet tilpasser sig", "showUnwatchedCount": "Vis antal usete", @@ -135,8 +135,8 @@ "showEpisodeNumberOnCardsDescription": "Vis sæson- og episodenummer på episodekort", "showSeasonPostersOnTabs": "Vis sæsonplakater på faner", "showSeasonPostersOnTabsDescription": "Vis hver sæsons plakat over dens fane", - "tvFullCardLayout": "Fuldflade TV-kort", - "tvFullCardLayoutDescription": "Brug TV-kort kun med billeder og skuespillernavne ovenpå", + "tvFullCardLayout": "TV-kort med billeder over hele fladen", + "tvFullCardLayoutDescription": "Brug TV-kort, der kun viser billeder, med skuespillernavnene ovenpå", "focusGlow": "Fokusglød", "focusGlowDescription": "Vis en blød glød omkring det fokuserede kort", "visualEffects": "Visuelle effekter", @@ -147,46 +147,46 @@ "visualEffectsReducedDescription": "Færre animationer og illustrationer i lavere opløsning", "hideSpoilers": "Skjul spoilere for usete episoder", "hideSpoilersDescription": "Slør miniaturebilleder og beskrivelser for usete episoder", - "playerBackend": "Afspillerbackend", + "playerBackend": "Afspillermotor", "exoPlayer": "ExoPlayer", "mpv": "mpv", "hardwareDecoding": "Hardwaredekodning", - "hardwareDecodingDescription": "Brug hardwareacceleration når tilgængelig", + "hardwareDecodingDescription": "Brug hardwareacceleration, når den er tilgængelig", "bufferSize": "Bufferstørrelse", "bufferSizeMB": "${size}MB", - "bufferSizeAuto": "Auto (Anbefalet)", - "bufferSizeWarning": "${heap}MB hukommelse tilgængelig. En buffer på ${size}MB kan påvirke afspilning.", + "bufferSizeAuto": "Automatisk (anbefalet)", + "bufferSizeWarning": "${heap} MB hukommelse tilgængelig. En buffer på ${size} MB kan påvirke afspilningen.", "defaultQualityTitle": "Standardkvalitet", "musicQualityTitle": "Musikkvalitet", "subtitleStyling": "Undertekststil", "subtitleStylingDescription": "Tilpas underteksters udseende", - "smallSkipDuration": "Kort spring-varighed", - "largeSkipDuration": "Lang spring-varighed", + "smallSkipDuration": "Kort spring", + "largeSkipDuration": "Langt spring", "rewindOnResume": "Spol tilbage ved genoptagelse", "secondsUnit": "${seconds} sekunder", - "defaultSleepTimer": "Standard sove-timer", + "defaultSleepTimer": "Standard-sovetimer", "minutesUnit": "${minutes} minutter", - "rememberTrackSelections": "Husk sporvalg per serie/film", - "rememberTrackSelectionsDescription": "Husk lyd- og undertekstvalg pr. titel", + "rememberTrackSelections": "Husk sporvalg for hver serie/film", + "rememberTrackSelectionsDescription": "Husk valget af lyd og undertekster for hver titel", "showChapterMarkersOnTimeline": "Vis kapitelmarkører på tidslinjen", "showChapterMarkersOnTimelineDescription": "Opdel tidslinjen ved kapitelgrænser", - "clickVideoTogglesPlayback": "Klik på video skifter afspil/pause", - "clickVideoTogglesPlaybackDescription": "Klik på video for at afspille/pause i stedet for at vise kontroller.", + "clickVideoTogglesPlayback": "Klik på videoen for at skifte mellem afspilning og pause", + "clickVideoTogglesPlaybackDescription": "Klik på videoen for at afspille eller sætte på pause i stedet for at vise betjeningsknapperne.", "videoPlayerControls": "Videoafspillerkontroller", "keyboardShortcuts": "Tastaturgenveje", "keyboardShortcutsDescription": "Tilpas tastaturgenveje", "videoPlayerNavigation": "Videoafspillernavigation", "videoPlayerNavigationDescription": "Brug piletaster til at navigere videoafspillerkontroller", - "watchTogetherRelay": "Watch Together-relay", - "watchTogetherRelayDescription": "Angiv en brugerdefineret relay. Alle skal bruge samme server.", + "watchTogetherRelay": "Relayserver til Se sammen", + "watchTogetherRelayDescription": "Angiv en brugerdefineret relayserver. Alle skal bruge den samme server.", "watchTogetherRelayHint": "https://min-relay.eksempel.dk", - "watchTogetherRelayInvalid": "Enter a valid HTTP or HTTPS relay base URL.", + "watchTogetherRelayInvalid": "Angiv en gyldig basis-URL til en HTTP- eller HTTPS-relayserver.", "crashReporting": "Fejlrapportering", "crashReportingDescription": "Send fejlrapporter for at hjælpe med at forbedre appen", "debugLogging": "Fejlfindingslogning", "debugLoggingDescription": "Aktiver detaljeret logning til fejlfinding", - "viewLogs": "Vis logs", - "viewLogsDescription": "Vis applikationslogs", + "viewLogs": "Vis logfiler", + "viewLogsDescription": "Vis programmets logfiler", "clearCache": "Ryd cache", "clearCacheDescription": "Ryd cachelagrede billeder og data. Indhold kan indlæses langsommere.", "clearCacheSuccess": "Cache ryddet", @@ -201,7 +201,7 @@ "importSettingsDescription": "Gendan præferencer fra en fil", "importSettingsConfirm": "Dette vil erstatte dine nuværende indstillinger. Fortsæt?", "importSettingsSuccess": "Indstillinger importeret", - "importSettingsInvalidFile": "Denne fil er ikke en gyldig Plezy-indstillingseksport", + "importSettingsInvalidFile": "Denne fil er ikke en gyldig eksport af Plezy-indstillinger", "importSettingsNoUser": "Log ind før import af indstillinger", "shortcutsReset": "Genveje nulstillet til standard", "about": "Om", @@ -212,19 +212,19 @@ "autoCheckUpdatesOnStartup": "Søg automatisk efter opdateringer ved opstart", "autoCheckUpdatesOnStartupDescription": "Giv besked, når en opdatering er tilgængelig ved start", "validationErrorEnterNumber": "Indtast et gyldigt tal", - "validationErrorDuration": "Varighed skal være mellem ${min} og ${max} ${unit}", - "shortcutAlreadyAssigned": "Genvej allerede tildelt til ${action}", - "shortcutUpdated": "Genvej opdateret for ${action}", - "saveFailed": "Could not save changes. Try again.", - "autoSkip": "Auto-spring", - "autoSkipIntro": "Auto-spring intro", + "validationErrorDuration": "Varigheden skal være mellem ${min} og ${max} ${unit}", + "shortcutAlreadyAssigned": "Genvejen er allerede tildelt ${action}", + "shortcutUpdated": "Genvejen for ${action} er opdateret", + "saveFailed": "Ændringerne kunne ikke gemmes. Prøv igen.", + "autoSkip": "Automatisk spring", + "autoSkipIntro": "Spring intro over automatisk", "autoSkipIntroDescription": "Spring automatisk intromarkører over efter få sekunder", - "autoSkipCredits": "Auto-spring rulletekster", - "autoSkipCreditsDescription": "Spring automatisk rulletekster over og afspil næste episode", + "autoSkipCredits": "Spring rulletekster over automatisk", + "autoSkipCreditsDescription": "Spring automatisk rulleteksterne over, og afspil næste episode", "forceSkipMarkerFallback": "Tving reservemarkører", "forceSkipMarkerFallbackDescription": "Brug mønstre i kapiteltitler, selv når Plex har markører", - "autoSkipDelay": "Auto-spring forsinkelse", - "autoSkipDelayDescription": "Vent ${seconds} sekunder før automatisk spring", + "autoSkipDelay": "Forsinkelse ved automatisk spring", + "autoSkipDelayDescription": "Vent ${seconds} sekunder, før der springes automatisk", "introPattern": "Intromarkørmønster", "introPatternDescription": "Regulært udtryk til at genkende intromarkører i kapiteltitler", "creditsPattern": "Rulletekstmarkørmønster", @@ -232,8 +232,8 @@ "invalidRegex": "Ugyldigt regulært udtryk", "regex": "Regulært udtryk", "downloads": "Downloads", - "downloadLocationDescription": "Vælg hvor downloadet indhold skal gemmes", - "downloadLocationDefault": "Standard (App-lagring)", + "downloadLocationDescription": "Vælg, hvor downloadet indhold skal gemmes", + "downloadLocationDefault": "Standard (applager)", "downloadLocationCustom": "Brugerdefineret placering", "selectFolder": "Vælg mappe", "resetToDefault": "Nulstil til standard", @@ -242,43 +242,43 @@ "downloadLocationReset": "Downloadplacering nulstillet", "downloadLocationInvalid": "Valgt mappe er ikke skrivbar", "downloadLocationPickerUnavailable": "Mappevalg er ikke tilgængeligt på denne enhed", - "downloadOnWifiOnly": "Download kun på WiFi", - "downloadOnWifiOnlyDescription": "Forhindre downloads på mobildata", + "downloadOnWifiOnly": "Download kun via Wi-Fi", + "downloadOnWifiOnlyDescription": "Forhindr downloads via mobildata", "autoRemoveWatchedDownloads": "Fjern sete downloads automatisk", "autoRemoveWatchedDownloadsDescription": "Slet sete downloads automatisk", - "cellularDownloadBlocked": "Downloads er blokeret på mobilnetværk. Brug WiFi eller skift indstilling.", + "cellularDownloadBlocked": "Downloads er blokeret på mobilnettet. Brug Wi-Fi, eller skift indstillingen.", "maxVolume": "Maksimal lydstyrke", - "maxVolumeDescription": "Tillad lydstyrkeforstærkning over 100% for stille medier", + "maxVolumeDescription": "Tillad lydstyrkeforstærkning over 100 % for stille medier", "maxVolumePercent": "${percent}%", "discordRichPresence": "Discord Rich Presence", - "discordRichPresenceDescription": "Vis hvad du ser på Discord", + "discordRichPresenceDescription": "Vis på Discord, hvad du ser", "services": "Tjenester", "servicesDescription": "Forbind Trakt, MyAnimeList, Seerr og mere", "manageLibrariesDescription": "Omarranger og skjul biblioteker", - "companionRemoteServer": "Companion Remote Server", + "companionRemoteServer": "Fjernbetjeningsserver", "companionRemoteServerDescription": "Tillad mobilenheder på dit netværk at styre denne app", - "autoPip": "Auto billede-i-billede", - "autoPipDescription": "Gå i billede-i-billede, når du forlader under afspilning", - "matchContentFrameRate": "Match indholdets billedhastighed", + "autoPip": "Automatisk billede-i-billede", + "autoPipDescription": "Skift automatisk til billede-i-billede, når du forlader appen under afspilning", + "matchContentFrameRate": "Tilpas billedhastigheden til indholdet", "matchContentFrameRateDescription": "Tilpas skærmens opdateringsfrekvens til videoindhold", - "matchRefreshRate": "Match opdateringshastighed", + "matchRefreshRate": "Tilpas opdateringsfrekvensen", "matchRefreshRateDescription": "Tilpas skærmens opdateringsfrekvens i fuld skærm", - "matchDynamicRange": "Match dynamisk område", + "matchDynamicRange": "Tilpas dynamikområdet", "matchDynamicRangeDescription": "Slå HDR til for HDR-indhold og derefter tilbage til SDR", "displaySwitchDelay": "Forsinkelse ved skærmskift", "tunneledPlayback": "Tunneleret afspilning", "tunneledPlaybackDescription": "Brug videotunneling. Slå fra, hvis HDR-afspilning viser sort video.", "audioPassthrough": "Lyd-passthrough", "audioPassthroughDescription": "Send Dolby/DTS-lyd til din receiver eller dit TV uden genkodning, så surroundlyd bevares. Slå fra, hvis du ikke har lyd.", - "audioPassthroughDescriptionAppleTv": "Overlad Dolby Digital Plus (inkl. Atmos) til systemet som bitstream. DTS og TrueHD afspilles stadig som flerkanals PCM. Korte lydhuller kan forekomme ved søgning.", + "audioPassthroughDescriptionAppleTv": "Brug Apples indbyggede Dolby-dekoder til Dolby Digital Plus, inklusive Atmos. DTS og TrueHD afspilles stadig som flerkanals-PCM. Slå fra, hvis du ikke har lyd.", "audioDownmix": "Downmix til stereo", - "audioDownmixDescription": "Mikser surroundlyd ned til to kanaler til stereohøjttalere eller hovedtelefoner", + "audioDownmixDescription": "Mix surroundlyd ned til to kanaler til stereohøjttalere eller hovedtelefoner", "downmixCenterBoost": "Forstærkning af centerkanal", "downmixCenterBoostValue": "${db} dB", "downmixCenterBoostLabel": "Forstærkning (dB)", "downmixCenterBoostShort": "dB", - "audioDownmixNormalize": "Normalisér lydstyrke ved downmix", - "audioDownmixNormalizeDescription": "Sænker mixet for at undgå clipping. Slå fra for at bevare den oprindelige lydstyrke (høje scener kan forvrænges).", + "audioDownmixNormalize": "Normaliser lydstyrken ved downmix", + "audioDownmixNormalizeDescription": "Sænk mixets lydstyrke for at undgå clipping. Slå fra for at bevare den oprindelige lydstyrke (høje scener kan blive forvrænget).", "atmosDiagnostics": "Atmos-outputtest", "atmosDiagnosticsDescription": "Diagnosticér Dolby Atmos-output ved at afspille testsignaler gennem systemafspilleren", "atmosTestHlsAtmos": "Apple Atmos-stream", @@ -296,12 +296,12 @@ "atmosTestStatus": "Status", "dvConversionMode": "Dolby Vision-konvertering", "dvConversionModeDescription": "Vælg, hvordan ExoPlayer håndterer Dolby Vision Profile 7-filer.", - "dvConversionAuto": "Auto", - "dvConversionNative": "Native / deaktiveret", + "dvConversionAuto": "Automatisk", + "dvConversionNative": "Indbygget / deaktiveret", "dvConversionDv81": "P7 → P8.1", "dvConversionHevcStrip": "P7 → HEVC", - "dvConversionAutoDescription": "Brug enhedens kapabilitetsregistrering og normal fallbackadfærd", - "dvConversionNativeDescription": "Tving native DV7 og undertryk forsøg på DV-konvertering", + "dvConversionAutoDescription": "Brug registrering af enhedens funktioner og normal reserveadfærd", + "dvConversionNativeDescription": "Gennemtving indbygget DV7-understøttelse, og undlad at forsøge DV-konvertering igen", "dvConversionDv81Description": "Tving inline RPU-konvertering til Dolby Vision profil 8.1", "dvConversionHevcStripDescription": "Fjern Dolby Vision RPU/EL-lag og brug almindelig HEVC", "requireProfileSelectionOnOpen": "Spørg om profil ved åbning", @@ -312,12 +312,12 @@ "startInFullscreenDescription": "Åbn Plezy i fuldskærmstilstand ved opstart", "exitFullscreenOnPlayerClose": "Forlad fuldskærm ved lukning af afspiller", "exitFullscreenOnPlayerCloseDescription": "Afslut automatisk fuldskærm, når videoafspilleren lukkes", - "autoHidePerformanceOverlay": "Skjul ydelses-overlay automatisk", - "autoHidePerformanceOverlayDescription": "Fade ydelses-overlayet med afspilningskontrollerne", - "showNavBarLabels": "Vis navigationsbarlabels", - "showNavBarLabelsDescription": "Vis tekstlabels under navigationsbarikoner", + "autoHidePerformanceOverlay": "Skjul ydelsesoverlay automatisk", + "autoHidePerformanceOverlayDescription": "Lad ydelsesoverlayet tone ud sammen med afspilningsknapperne", + "showNavBarLabels": "Vis tekst på navigationslinjen", + "showNavBarLabelsDescription": "Vis tekst under ikonerne på navigationslinjen", "startupSection": "Startsektion", - "liveTvDefaultFavorites": "Standard til favoritkanaler", + "liveTvDefaultFavorites": "Vis favoritkanaler som standard", "liveTvDefaultFavoritesDescription": "Vis kun favoritkanaler ved åbning af Live TV", "display": "Skærm", "homeScreen": "Startskærm", @@ -348,9 +348,9 @@ "volumeDown": "Lydstyrke ned", "seekForward": "Spol frem (${seconds}s)", "seekBackward": "Spol tilbage (${seconds}s)", - "fullscreenToggle": "Skift fuldskærm", - "muteToggle": "Skift lydløs", - "subtitleToggle": "Skift undertekster", + "fullscreenToggle": "Slå fuldskærm til/fra", + "muteToggle": "Slå lyd til/fra", + "subtitleToggle": "Slå undertekster til/fra", "audioTrackNext": "Næste lydspor", "subtitleTrackNext": "Næste undertekstspor", "chapterNext": "Næste kapitel", @@ -365,7 +365,7 @@ "zoomReset": "Nulstil zoom", "subSeekNext": "Søg til næste undertekst", "subSeekPrev": "Søg til forrige undertekst", - "shaderToggle": "Skift shadere", + "shaderToggle": "Slå shadere til/fra", "skipMarker": "Spring intro/rulletekster over", "screenshot": "Tag skærmbillede" } @@ -395,7 +395,7 @@ "container": "Container", "duration": "Varighed", "optimizedForStreaming": "Optimeret til streaming", - "has64bitOffsets": "64-bit offsets" + "has64bitOffsets": "64-bit-forskydninger" }, "mediaMenu": { "markAsWatched": "Markér som set", @@ -404,13 +404,13 @@ "viewDetails": "Vis detaljer", "goToSeries": "Gå til serie", "shufflePlay": "Afspil tilfældigt", - "shuffleNotAvailableOffline": "Bland afspilning er ikke tilgængelig offline", + "shuffleNotAvailableOffline": "Tilfældig afspilning er ikke tilgængelig offline", "fileInfo": "Filinfo", "deleteFromServer": "Slet fra server", "confirmDelete": "Slet dette medie og dets filer fra din server?", "deleteMultipleWarning": "Dette inkluderer alle episoder og deres filer.", - "mediaDeletedSuccessfully": "Medieelement slettet", - "mediaFailedToDelete": "Kunne ikke slette medieelement", + "mediaDeletedSuccessfully": "Mediet blev slettet", + "mediaFailedToDelete": "Mediet kunne ikke slettes", "rate": "Bedøm", "playFromBeginning": "Afspil fra begyndelsen", "playVersion": "Afspil version..." @@ -422,7 +422,7 @@ "favorited": "Føjet til favoritter", "saved": "Gemt", "notAvailable": "Intet match fundet", - "noConnectedServices": "Forbind en tjeneste i Indstillinger for at bedømme der." + "noConnectedServices": "Forbind en tjeneste under Indstillinger for at bedømme via den." }, "accessibility": { "mediaCardMovie": "${title}, film", @@ -472,28 +472,28 @@ "lockRotation": "Lås rotation", "unlockRotation": "Lås rotation op", "timerActive": "Timer aktiv", - "playbackWillPauseIn": "Afspilning pauses om ${duration}", + "playbackWillPauseIn": "Afspilningen sættes på pause om ${duration}", "sleepTimerEndOfVideo": "Slutningen af aktuel video", "sleepTimerStopAtHeader": "Stop ved", - "sleepTimerDurationHeader": "Timer", - "playbackWillPauseAtEnd": "Afspilning pauses i slutningen af denne video", + "sleepTimerDurationHeader": "Varighed", + "playbackWillPauseAtEnd": "Afspilningen sættes på pause ved slutningen af denne video", "stillWatching": "Ser du stadig?", - "pausingIn": "Pauser om ${seconds}s", + "pausingIn": "Sætter på pause om ${seconds} s", "continueWatching": "Fortsæt", - "autoPlayNext": "Auto-afspil næste", + "autoPlayNext": "Afspil næste automatisk", "playNext": "Afspil næste", "playButton": "Afspil", "pauseButton": "Pause", - "showPlaybackControls": "", - "hidePlaybackControls": "", + "showPlaybackControls": "Vis afspilningsknapper", + "hidePlaybackControls": "Skjul afspilningsknapper", "seekBackwardButton": "Spol ${seconds} sekunder tilbage", "seekForwardButton": "Spol ${seconds} sekunder frem", "previousButton": "Forrige episode", "nextButton": "Næste episode", "previousChapterButton": "Forrige kapitel", "nextChapterButton": "Næste kapitel", - "muteButton": "Lydløs", - "unmuteButton": "Slå lyd til", + "muteButton": "Slå lyden fra", + "unmuteButton": "Slå lyden til", "settingsButton": "Afspilningsindstillinger", "tracksButton": "Lyd og undertekster", "chaptersButton": "Kapitler", @@ -513,7 +513,7 @@ "rotationLockButton": "Rotationslås", "lockScreen": "Lås skærm", "screenLockButton": "Skærmlås", - "longPressToUnlock": "Langt tryk for at låse op", + "longPressToUnlock": "Hold nede for at låse op", "timelineSlider": "Videotidslinje", "volumeSlider": "Lydstyrkeniveau", "endsAt": "Slutter kl. ${time}", @@ -561,21 +561,21 @@ "streamInterrupted": "Streamen blev afbrudt. Tryk på afspil, eller spol for at prøve igen.", "liveStreamInterrupted": "Livestreamen blev afbrudt. Tryk på afspil for at prøve igen.", "fileInfoNotAvailable": "Filinfo ikke tilgængelig", - "playbackAuthenticationRequired": "Sign in to the media server again to play this item.", - "playbackServerUnavailable": "The media server is unavailable. Try again later.", - "playbackDataInvalid": "The server returned invalid playback information.", - "playbackCancelled": "Playback was cancelled.", - "playbackFailed": "Playback could not be started.", + "playbackAuthenticationRequired": "Log ind på medieserveren igen for at afspille dette element.", + "playbackServerUnavailable": "Medieserveren er ikke tilgængelig. Prøv igen senere.", + "playbackDataInvalid": "Serveren returnerede ugyldige afspilningsoplysninger.", + "playbackCancelled": "Afspilningen blev annulleret.", + "playbackFailed": "Afspilningen kunne ikke startes.", "errorLoadingFileInfo": "Fejl ved indlæsning af filinfo: ${error}", "errorLoadingSeries": "Fejl ved indlæsning af serie", "musicNotSupported": "Musikafspilning understøttes endnu ikke", "noDescriptionAvailable": "Ingen beskrivelse tilgængelig", "noProfilesAvailable": "Ingen profiler tilgængelige", "contactAdminForProfiles": "Kontakt din serveradministrator for at tilføje profiler", - "unableToDetermineLibrarySection": "Kan ikke bestemme biblioteksafdeling for dette element", - "logsCleared": "Logs ryddet", - "logsCopied": "Logs kopieret til udklipsholder", - "noLogsAvailable": "Ingen logs tilgængelige", + "unableToDetermineLibrarySection": "Kunne ikke finde bibliotekssektionen for dette element", + "logsCleared": "Logfilerne blev ryddet", + "logsCopied": "Logfilerne blev kopieret til udklipsholderen", + "noLogsAvailable": "Ingen logfiler tilgængelige", "libraryScanning": "Scanner \"${title}\"...", "libraryScanStarted": "Biblioteksscanning startet for \"${title}\"", "libraryScanFailed": "Kunne ikke scanne bibliotek: ${error}", @@ -591,13 +591,13 @@ "noResultsFound": "Ingen resultater fundet", "sleepTimerSet": "Sove-timer indstillet til ${label}", "noItemsAvailable": "Ingen elementer tilgængelige", - "failedToCreatePlayQueueNoItems": "Kunne ikke oprette afspilningskø — ingen elementer", + "failedToCreatePlayQueueNoItems": "Kunne ikke oprette en afspilningskø — ingen elementer", "failedPlayback": "Kunne ikke ${action}: ${error}", "switchingToCompatiblePlayer": "Skifter til kompatibel afspiller...", "serverLimitTitle": "Afspilning mislykkedes", - "serverLimitBody": "Serverfejl (HTTP 500). En båndbredde-/transkodningsgrænse afviste nok sessionen. Bed ejeren om at justere den.", - "logsUploaded": "Logs uploadet", - "logsUploadFailed": "Kunne ikke uploade logs", + "serverLimitBody": "Serverfejl (HTTP 500). En båndbredde- eller transkodningsgrænse afviste sandsynligvis sessionen. Bed ejeren om at justere den.", + "logsUploaded": "Logfilerne blev uploadet", + "logsUploadFailed": "Logfilerne kunne ikke uploades", "logId": "Log-ID" }, "subtitlingStyling": { @@ -608,7 +608,7 @@ "textColor": "Tekstfarve", "borderSize": "Kantstørrelse", "borderColor": "Kantfarve", - "backgroundOpacity": "Baggrundsgennemsigtighed", + "backgroundOpacity": "Baggrundsopacitet", "backgroundColor": "Baggrundsfarve", "position": "Position", "assOverride": "ASS-tilsidesættelse", @@ -652,21 +652,21 @@ "delete": "Slet", "signOut": "Log ud", "signOutPlexTitle": "Log ud af Plex?", - "signOutPlexMessage": "Fjern ${displayName} og alle Plex Home-brugere? Log ind igen når som helst.", + "signOutPlexMessage": "Fjern ${displayName} og alle Plex Home-brugere? Du kan altid logge ind igen.", "signedOutPlex": "Logget ud af Plex.", - "signOutFailed": "Log ud mislykkedes.", + "signOutFailed": "Kunne ikke logge ud.", "sectionTitle": "Profiler", - "summarySingle": "Tilføj profiler for at blande administrerede brugere og lokale identiteter", + "summarySingle": "Tilføj profiler for at kombinere administrerede brugere med lokale identiteter", "summaryMultipleWithActive": "${count} profiler · aktiv: ${activeName}", "summaryMultiple": "${count} profiler", "removeConnectionTitle": "Fjern forbindelse?", - "removeConnectionMessage": "Fjern ${displayName}s adgang til ${connectionLabel}. Andre profiler beholder den.", + "removeConnectionMessage": "Fjern adgangen til ${connectionLabel} for ${displayName}. De andre profiler beholder den.", "deleteProfileTitle": "Slet profil?", "deleteProfileMessage": "Fjern ${displayName} og forbindelserne. Servere forbliver tilgængelige.", "profileNameLabel": "Profilnavn", "pinProtectionLabel": "PIN-beskyttelse", "pinManagedByPlex": "PIN administreres af Plex. Rediger på plex.tv.", - "noPinSetEditOnPlex": "Ingen PIN-kode angivet. For at kræve en, redigér Home-brugeren på plex.tv.", + "noPinSetEditOnPlex": "Ingen PIN-kode angivet. Hvis der skal kræves en, skal du redigere Plex Home-brugeren på plex.tv.", "setPin": "Angiv PIN", "setPinTitle": "Angiv PIN", "confirmPinTitle": "Bekræft PIN", @@ -688,7 +688,7 @@ "borrowExplain": "Lån en anden profils forbindelse. PIN-beskyttede profiler kræver en PIN.", "borrowEmpty": "Intet at låne endnu.", "borrowEmptySubtitle": "Forbind Plex eller Jellyfin til en anden profil først.", - "borrowLoadFailed": "Available connections could not be loaded. Try again.", + "borrowLoadFailed": "De tilgængelige forbindelser kunne ikke indlæses. Prøv igen.", "borrowFromProfile": "Fra ${displayName}", "borrowConnectionBorrowed": "Forbindelse lånt.", "borrowFailed": "Kunne ikke låne forbindelse.", @@ -698,11 +698,11 @@ "failedToLoadHomeUsers": "Kunne ikke indlæse dine Plex Home-brugere. Tjek din forbindelse, og prøv igen.", "failedToVerifyPin": "Kunne ikke bekræfte PIN.", "newProfile": "Ny profil", - "profileNameHint": "fx. Gæster, Børn, Familiens stue", + "profileNameHint": "f.eks. Gæster, Børn, Familiens stue", "pinProtectionOptional": "PIN-beskyttelse (valgfri)", - "pinExplain": "4-cifret PIN kræves for at skifte profiler.", + "pinExplain": "Der kræves en 4-cifret PIN-kode for at skifte profil.", "continueButton": "Fortsæt", - "pinsDontMatch": "PIN-koder matcher ikke" + "pinsDontMatch": "PIN-koderne matcher ikke" }, "connections": { "sectionTitle": "Forbindelser", @@ -710,7 +710,7 @@ "addConnectionSubtitleNoProfile": "Log ind med Plex eller forbind til en Jellyfin-server", "addConnectionSubtitleScoped": "Føj til ${displayName}: Plex, Jellyfin eller en anden profilforbindelse", "sessionExpiredOne": "Sessionen er udløbet for ${name}", - "sessionExpiredMany": "Sessionen er udløbet for ${count} servere", + "sessionExpiredMany": "Sessionerne er udløbet for ${count} servere", "signInAgain": "Log ind igen", "editJellyfinTitle": "Rediger Jellyfin-forbindelse", "editJellyfinIntro": "Tilføj eller fjern URL'er for ${serverName}. Plezy bruger den tilgængelige URL med lavest latenstid." @@ -721,8 +721,8 @@ "addMediaToLibraries": "Tilføj medier til dine biblioteker", "continueWatching": "Fortsæt med at se", "continueWatchingIn": "Fortsæt med at se i ${library}", - "nextUp": "Næste op", - "nextUpIn": "Næste op i ${library}", + "nextUp": "Næste afsnit", + "nextUpIn": "Næste afsnit i ${library}", "recentlyAdded": "Nyligt tilføjet", "recentlyAddedIn": "Nyligt tilføjet i ${library}", "latestAlbumsIn": "Nyeste album i ${library}", @@ -731,7 +731,7 @@ "playEpisode": "S${season}E${episode}", "overview": "Oversigt", "cast": "Rollebesætning", - "extras": "Trailere og ekstra", + "extras": "Trailere og ekstramateriale", "studio": "Studie", "rating": "Bedømmelse", "movie": "Film", @@ -741,7 +741,7 @@ }, "errors": { "searchFailed": "Søgning mislykkedes: ${error}", - "connectionTimeout": "Forbindelsestimeout ved indlæsning af ${context}", + "connectionTimeout": "Forbindelsen fik timeout under indlæsning af ${context}", "connectionFailed": "Kan ikke oprette forbindelse til medieserver", "unableToLoad": "Kunne ikke indlæse ${context}. Prøv igen.", "noClientAvailable": "Ingen klient tilgængelig", @@ -848,7 +848,7 @@ "title": "Om", "openSourceLicenses": "Open source-licenser", "versionLabel": "Version ${version}", - "appDescription": "En smuk Plex- og Jellyfin-klient til Flutter", + "appDescription": "En smuk Plex- og Jellyfin-klient bygget med Flutter", "viewLicensesDescription": "Se licenser for tredjepartsbiblioteker" }, "serverSelection": { @@ -863,9 +863,9 @@ "noItemsFound": "Ingen elementer fundet" }, "logs": { - "clearLogs": "Ryd logs", - "copyLogs": "Kopiér logs", - "uploadLogs": "Upload logs" + "clearLogs": "Ryd logfiler", + "copyLogs": "Kopiér logfiler", + "uploadLogs": "Upload logfiler" }, "licenses": { "relatedPackages": "Relaterede pakker", @@ -886,15 +886,15 @@ "watchlist": "Ønskeliste", "recommendedMovies": "Anbefalede film", "recommendedShows": "Anbefalede serier", - "trendingMovies": "Trending film", - "trendingShows": "Trending serier", + "trendingMovies": "Populære film lige nu", + "trendingShows": "Populære serier lige nu", "popularMovies": "Populære film", "popularShows": "Populære serier", - "trendingAnime": "Trending anime", - "suggestedAnime": "Foreslået anime", - "airingAnime": "Top igangværende anime", + "trendingAnime": "Populær anime lige nu", + "suggestedAnime": "Anbefalet anime", + "airingAnime": "Bedste aktuelle anime", "popularAnime": "Mest populære anime", - "trending": "Trending", + "trending": "Populært lige nu", "upcomingMovies": "Kommende film", "upcomingShows": "Kommende serier" }, @@ -917,7 +917,7 @@ "inTheseLibraries": "I disse biblioteker", "checkingLibrary": "Tjekker dit bibliotek...", "emptyTitle": "Der er ikke noget her endnu", - "emptyMessage": "Rækker fra ${source} vises her, når de har indhold.", + "emptyMessage": "Indholdsrækker fra ${source} vises her, når de har indhold.", "searchHint": "Søg i ${source}", "searchEmpty": "Ingen resultater for \"${query}\"", "searchPrompt": "Søg efter film og serier på ${source}.", @@ -927,10 +927,10 @@ "title": "Live TV", "guide": "Guide", "noChannels": "Ingen kanaler tilgængelige", - "noDvr": "Ingen DVR konfigureret på nogen server", + "noDvr": "Der er ikke konfigureret DVR på nogen server", "serverUnavailable": "Live-tv-serveren er ikke tilgængelig.", "serverNotConnected": "Live-tv-serveren er ikke forbundet.", - "noPrograms": "Ingen programdata tilgængelig", + "noPrograms": "Ingen programdata tilgængelige", "liveStreamFailed": "Livestream mislykkedes", "unknownProgram": "Ukendt program", "unknownHub": "Ukendt", @@ -948,12 +948,12 @@ "daytime": "Dagtid", "evening": "Aften", "lateNight": "Sen aften", - "whatsOn": "Hvad der kører", + "whatsOn": "Hvad vises der?", "watchChannel": "Se kanal", "favorites": "Favoritter", "reorderFavorites": "Omarranger favoritter", "favoritesLoadFailed": "Favoritter kunne ikke indlæses. Kontrollér forbindelsen, og prøv igen.", - "favoritesUpdateFailed": "Could not update favorites. Check your connection and try again.", + "favoritesUpdateFailed": "Favoritterne kunne ikke opdateres. Kontrollér forbindelsen, og prøv igen.", "joinSession": "Deltag i igangværende session", "watchFromStart": "Se fra start (${minutes} min siden)", "watchLive": "Se live", @@ -968,8 +968,8 @@ "recordingRules": "Optagelsesregler", "noScheduledRecordings": "Ingen optagelser planlagt", "manageRecording": "Administrer optagelse", - "cancelRecording": "Annullér optagelse", - "cancelRecordingTitle": "Annullér denne optagelse?", + "cancelRecording": "Annuller optagelse", + "cancelRecordingTitle": "Annuller denne optagelse?", "cancelRecordingMessage": "${title} bliver ikke længere optaget.", "deleteRule": "Slet regel", "deleteRuleTitle": "Slet optagelsesregel?", @@ -982,14 +982,14 @@ "recordNotAvailable": "Optagelse er ikke tilgængelig for dette program", "recordingCancelled": "Optagelse annulleret", "recordingRuleDeleted": "Optagelsesregel slettet", - "processRecordingRules": "Genberegn regler", + "processRecordingRules": "Evaluer regler igen", "recordingInProgress": "Optager nu", "recordingsCount": "${count} planlagt", "editRule": "Rediger regel", "editRuleAction": "Rediger", "recordingRuleUpdated": "Optagelsesregel opdateret", - "guideReloadRequested": "Guide-opdatering anmodet", - "rulesProcessRequested": "Regelevaluering anmodet", + "guideReloadRequested": "Der er anmodet om en opdatering af guiden", + "rulesProcessRequested": "Der er anmodet om en ny evaluering af reglerne", "recordShow": "Optag program" }, "collections": { @@ -1080,18 +1080,18 @@ "controlModeQuestion": "Hvem kan styre afspilning?", "hostOnly": "Kun vært", "anyone": "Alle", - "hostingSession": "Vært for session", - "inSession": "I session", + "hostingSession": "Er vært for sessionen", + "inSession": "Deltager i en session", "sessionCode": "Sessionskode", "openSessionControls": "Åbn sessionsstyring for Se sammen", "copySessionCode": "Kopiér sessionskode", - "hostControlsPlayback": "Vært styrer afspilning", - "anyoneCanControl": "Alle kan styre afspilning", - "hostControls": "Værtskontrol", + "hostControlsPlayback": "Værten styrer afspilningen", + "anyoneCanControl": "Alle kan styre afspilningen", + "hostControls": "Værten styrer", "anyoneControls": "Alle styrer", "participants": "Deltagere", "host": "Vært", - "hostBadge": "HOST", + "hostBadge": "VÆRT", "youAreHost": "Du er vært", "watchingWithOthers": "Ser med andre", "endSession": "Afslut session", @@ -1100,12 +1100,12 @@ "leaveSessionQuestion": "Forlad session?", "endSessionConfirm": "Dette afslutter sessionen for alle deltagere.", "leaveSessionConfirm": "Du vil blive fjernet fra sessionen.", - "endSessionConfirmOverlay": "Dette afslutter se-sessionen for alle deltagere.", - "leaveSessionConfirmOverlay": "Du vil blive afbrudt fra se-sessionen.", + "endSessionConfirmOverlay": "Dette afslutter fællesafspilningen for alle deltagere.", + "leaveSessionConfirmOverlay": "Din forbindelse til fællesafspilningen afbrydes.", "end": "Afslut", "leave": "Forlad", "syncing": "Synkroniserer...", - "joinWatchSession": "Deltag i se-session", + "joinWatchSession": "Deltag i fællesafspilning", "enterCodeHint": "Indtast 5-tegns kode", "pasteFromClipboard": "Indsæt fra udklipsholder", "pleaseEnterCode": "Indtast en sessionskode", @@ -1114,7 +1114,7 @@ "failedToCreate": "Kunne ikke oprette session", "failedToJoin": "Kunne ikke deltage i session", "sessionCodeCopied": "Sessionskode kopieret til udklipsholder", - "relayUnreachable": "Relay-serveren kan ikke nås. ISP-blokering kan forhindre Watch Together.", + "relayUnreachable": "Relayserveren kan ikke nås. Blokering hos internetudbyderen kan forhindre Se sammen.", "reconnectingToHost": "Genopretter forbindelse til vært...", "currentPlayback": "Nuværende afspilning", "joinCurrentPlayback": "Deltag i nuværende afspilning", @@ -1124,11 +1124,11 @@ "participantLeft": "${name} forlod", "participantPaused": "${name} satte på pause", "participantResumed": "${name} genoptog", - "participantSeeked": "${name} spoled", + "participantSeeked": "${name} ændrede afspilningspositionen", "participantBuffering": "${name} bufferer", "participantNeedsUpdate": "${name} bruger en ældre appversion — synkronisering er ikke tilgængelig", "resumingWithout": "Fortsætter uden ${name}", - "waitingForParticipants": "Venter på at andre indlæser...", + "waitingForParticipants": "Venter på, at de andre bliver klar...", "waitingForName": "Venter på ${name}...", "recentRooms": "Seneste rum", "renameRoom": "Omdøb rum", @@ -1169,7 +1169,7 @@ "downloadingTooltip": "Downloader...", "downloadingFilesTooltip": "Downloader ${files}", "noDownloadsTree": "Ingen downloads", - "pauseAll": "Pause alle", + "pauseAll": "Sæt alle på pause", "resumeAll": "Genoptag alle", "deleteAll": "Slet alle", "selectVersion": "Vælg version", @@ -1177,10 +1177,10 @@ "unwatchedOnly": "Kun usete", "nextNUnwatched": "Næste ${count} usete", "customAmount": "Angiv antal...", - "includeSpecials": "Inkludér specials", + "includeSpecials": "Medtag specialafsnit", "howManyEpisodes": "Hvor mange episoder?", "invalidEpisodeCount": "Indtast et gyldigt antal episoder.", - "keepSynced": "Hold synkroniseret", + "keepSynced": "Synkroniser løbende", "downloadOnce": "Download én gang", "keepNUnwatched": "Behold ${count} usete", "editSyncRule": "Rediger synkroniseringsregel", @@ -1200,7 +1200,7 @@ "syncRuleServerContext": "Server: ${server} • ${status}", "syncRuleAvailable": "Tilgængelig", "syncRuleOffline": "Offline", - "syncRuleSignInRequired": "Log ind påkrævet", + "syncRuleSignInRequired": "Login påkrævet", "syncRuleNotAvailableForProfile": "Ikke tilgængelig for nuværende profil", "syncRuleUnknownServer": "Ukendt server", "syncRuleListCreated": "Synkroniseringsregel oprettet" @@ -1227,16 +1227,16 @@ "connectedTo": "Forbundet til ${name}", "unknownDevice": "Ukendt enhed", "session": { - "startingServer": "Starter fjernserver...", + "startingServer": "Starter fjernbetjeningsserver...", "hostAddress": "Værtsadresse", "connected": "Forbundet", - "serverRunning": "Fjernserver aktiv", - "serverStopped": "Fjernserver stoppet", + "serverRunning": "Fjernbetjeningsserver aktiv", + "serverStopped": "Fjernbetjeningsserver stoppet", "serverRunningDescription": "Mobile enheder på dit netværk kan oprette forbindelse til denne app", "serverStoppedDescription": "Start serveren for at tillade mobilenheder at oprette forbindelse", "usePhoneToControl": "Brug din mobilenhed til at styre denne app", - "startServer": "Start server", - "stopServer": "Stop server", + "startServer": "Start serveren", + "stopServer": "Stop serveren", "minimize": "Minimér" }, "pairing": { @@ -1245,11 +1245,11 @@ "connecting": "Opretter forbindelse...", "searchingForDevices": "Søger efter enheder...", "noDevicesFound": "Ingen enheder fundet på dit netværk", - "noDevicesHint": "Åbn Plezy på desktop, og brug samme WiFi", + "noDevicesHint": "Åbn Plezy på din computer, og brug det samme Wi-Fi-netværk", "availableDevices": "Tilgængelige enheder", "manualConnection": "Manuel forbindelse", "cryptoInitFailed": "Kunne ikke starte sikker forbindelse. Log ind på Plex først.", - "validationHostRequired": "Angiv venligst værtsadresse", + "validationHostRequired": "Angiv en værtsadresse", "validationHostFormat": "Format skal være IP:port (f.eks. 192.168.1.100:48632)", "connectionTimedOut": "Forbindelsen fik timeout. Brug samme netværk på begge enheder.", "sessionNotFound": "Enhed ikke fundet. Sørg for, at Plezy kører på værten.", @@ -1257,7 +1257,7 @@ "failedToConnect": "Kunne ikke oprette forbindelse: ${error}" }, "remote": { - "disconnectConfirm": "Vil du afbryde fra fjernsessionen?", + "disconnectConfirm": "Vil du afbryde forbindelsen til fjernsessionen?", "reconnecting": "Genopretter forbindelse...", "attemptOf": "Forsøg ${current} af 5", "retryNow": "Prøv igen nu", @@ -1288,7 +1288,7 @@ "errors": { "noNetworkInterface": "Ingen netværksgrænseflade fundet", "authenticationFailed": "Godkendelse mislykkedes", - "serverStartFailed": "Kunne ikke starte fjernserveren: ${error}", + "serverStartFailed": "Fjernbetjeningsserveren kunne ikke startes: ${error}", "commandFailed": "Kunne ikke sende fjernkommando: ${error}", "joinTimedOut": "Tidsgrænse for deltagelse i session overskredet", "failedToConnectAnyAddress": "Kunne ikke oprette forbindelse til nogen adresse", @@ -1329,8 +1329,8 @@ "hwFormat": "HW-format", "matrix": "Matrix", "primaries": "Primærfarver", - "transfer": "Transfer", - "renderFps": "Render FPS", + "transfer": "Overførsel", + "renderFps": "Gengivelses-FPS", "displayFps": "Skærm-FPS", "avSync": "A/V-synk.", "dropped": "Tabte", @@ -1346,7 +1346,7 @@ "speed": "Hastighed", "player": "Afspiller", "memory": "Hukommelse", - "uiFps": "UI FPS" + "uiFps": "UI-FPS" }, "externalPlayer": { "title": "Ekstern afspiller", @@ -1367,9 +1367,9 @@ "playInExternalPlayer": "Afspil i ekstern afspiller" }, "metadataEdit": { - "editMetadata": "Redigér...", - "screenTitle": "Redigér metadata", - "basicInfo": "Grundlæggende info", + "editMetadata": "Rediger...", + "screenTitle": "Rediger metadata", + "basicInfo": "Grundlæggende oplysninger", "artwork": "Grafik", "advancedSettings": "Avancerede indstillinger", "title": "Titel", @@ -1378,7 +1378,7 @@ "releaseDate": "Udgivelsesdato", "contentRating": "Aldersgrænse", "studio": "Studie", - "tagline": "Tagline", + "tagline": "Slogan", "summary": "Resumé", "poster": "Plakat", "background": "Baggrund", @@ -1421,16 +1421,16 @@ "show": "Vis", "hide": "Skjul", "episodeOrdering": "Episoderækkefølge", - "tmdbAiring": "The Movie Database (Sendt)", - "tvdbAiring": "TheTVDB (Sendt)", + "tmdbAiring": "The Movie Database (udsendt)", + "tvdbAiring": "TheTVDB (udsendt)", "tvdbAbsolute": "TheTVDB (Absolut)", "metadataLanguage": "Metadatasprog", "useOriginalTitle": "Brug originaltitel", "preferredAudioLanguage": "Foretrukket lydsprog", "preferredSubtitleLanguage": "Foretrukket undertekstsprog", - "subtitleMode": "Auto-vælg underteksttilstand", + "subtitleMode": "Automatisk valg af undertekster", "manuallySelected": "Manuelt valgt", - "shownWithForeignAudio": "Vist med fremmedsproget lyd", + "shownWithForeignAudio": "Vis ved fremmedsproget lyd", "alwaysEnabled": "Altid aktiveret", "tags": "Tags", "addTag": "Tilføj tag", @@ -1471,8 +1471,8 @@ "disconnectConfirmBody": "Plezy stopper med at sende hændelser til Trakt. Du kan tilslutte igen når som helst.", "scrobble": "Realtids-scrobbling", "scrobbleDescription": "Send afspil-, pause- og stop-begivenheder til Trakt under afspilning.", - "watchedSync": "Synkroniser sét-status", - "watchedSyncDescription": "Når du markerer ting som sét i Plezy, markeres de også på Trakt." + "watchedSync": "Synkroniser set-status", + "watchedSyncDescription": "Når du markerer elementer som set i Plezy, markeres de også på Trakt." }, "seerr": { "title": "Seerr", @@ -1486,8 +1486,8 @@ "email": "E-mail", "noSignInMethods": "Denne Seerr-instans tilbyder ingen loginmetode, som Plezy understøtter.", "instance": "Instans", - "disconnectConfirm": "Afbryd Seerr?", - "disconnectConfirmBody": "Plezy glemmer denne Seerr-instans. Tilslut igen når som helst.", + "disconnectConfirm": "Afbryd forbindelsen til Seerr?", + "disconnectConfirmBody": "Plezy glemmer denne Seerr-instans. Du kan altid oprette forbindelse igen.", "request": "Anmod", "request4k": "Anmod i 4K", "seasons": "Sæsoner", @@ -1512,9 +1512,9 @@ "notConnected": "Ikke forbundet", "connectedAs": "Forbundet som @${username}", "scrobble": "Registrer fremgang automatisk", - "scrobbleDescription": "Opdater din liste når du er færdig med et afsnit eller en film.", - "disconnectConfirm": "Afbryd ${service}?", - "disconnectConfirmBody": "Plezy stopper med at opdatere ${service}. Tilslut igen når som helst.", + "scrobbleDescription": "Opdater din liste, når du er færdig med et afsnit eller en film.", + "disconnectConfirm": "Afbryd forbindelsen til ${service}?", + "disconnectConfirmBody": "Plezy stopper med at opdatere ${service}. Du kan altid oprette forbindelse igen.", "connectFailed": "Kunne ikke forbinde til ${service}. Prøv igen.", "names": { "mal": "MyAnimeList", @@ -1544,10 +1544,10 @@ "subtitleBlocked": "${count} blokeret", "subtitleAllowed": "${count} tilladt", "mode": "Filtertilstand", - "modeBlacklist": "Sortliste", - "modeWhitelist": "Hvidliste", - "modeHintBlacklist": "Synkroniser alle biblioteker undtagen dem du markerer nedenfor.", - "modeHintWhitelist": "Synkroniser kun de biblioteker du markerer nedenfor.", + "modeBlacklist": "Blokliste", + "modeWhitelist": "Tilladelsesliste", + "modeHintBlacklist": "Synkroniser alle biblioteker undtagen dem, du markerer nedenfor.", + "modeHintWhitelist": "Synkroniser kun de biblioteker, du markerer nedenfor.", "libraries": "Biblioteker", "noLibraries": "Ingen biblioteker tilgængelige" } @@ -1555,7 +1555,7 @@ "addServer": { "addJellyfinTitle": "Tilføj Jellyfin-server", "serverUrls": "Server-URL'er", - "serverUrlsHelper": "Flere URL'er er tilladt, adskilt med kommaer.", + "serverUrlsHelper": "Du kan angive flere URL'er adskilt med komma.", "findServer": "Find server", "searchingLocalServers": "Søger efter lokale Jellyfin-servere...", "localServers": "Lokale Jellyfin-servere", @@ -1565,20 +1565,20 @@ "change": "Ændr", "required": "Påkrævet", "couldNotReachServer": "Kunne ikke nå serveren: ${error}", - "signInFailed": "Login mislykkedes: ${error}", + "signInFailed": "Kunne ikke logge ind: ${error}", "quickConnectFailed": "Quick Connect mislykkedes: ${error}", "addPlexTitle": "Log ind med Plex", - "pinExpired": "PIN udløb før login. Prøv igen.", + "pinExpired": "PIN-koden udløb før login. Prøv igen.", "failedToRegisterAccount": "Kunne ikke registrere kontoen: ${error}", "enterJellyfinUrlError": "Angiv URL'en til din Jellyfin-server", "addConnectionTitle": "Tilføj forbindelse", "addConnectionTitleScoped": "Tilføj til ${name}", "signInWithPlexCard": "Log ind med Plex", "signInWithPlexCardSubtitle": "Godkend denne enhed. Delte servere tilføjes.", - "signInWithPlexCardSubtitleScoped": "Godkend en Plex-konto. Home-brugere bliver profiler.", + "signInWithPlexCardSubtitleScoped": "Godkend en Plex-konto. Plex Home-brugere bliver til profiler.", "connectToJellyfinCard": "Forbind til Jellyfin", "connectToJellyfinCardSubtitle": "Indtast din server-URL, dit brugernavn og din adgangskode.", - "connectToJellyfinCardSubtitleScoped": "Log ind på en Jellyfin-server. Tilknyttes ${name}.", + "connectToJellyfinCardSubtitleScoped": "Log ind på en Jellyfin-server. Serveren knyttes til ${name}.", "borrowFromAnotherProfile": "Lån fra en anden profil", "borrowFromAnotherProfileSubtitle": "Genbrug en anden profils forbindelse. PIN-beskyttede profiler kræver en PIN." } diff --git a/lib/i18n/de.i18n.json b/lib/i18n/de.i18n.json index 940745db..8398110b 100644 --- a/lib/i18n/de.i18n.json +++ b/lib/i18n/de.i18n.json @@ -7,8 +7,8 @@ "showQRCode": "QR-Code anzeigen", "authenticate": "Authentifizieren", "authenticationTimeout": "Authentifizierung abgelaufen. Bitte erneut versuchen.", - "scanQRToSignIn": "QR-Code scannen zum Anmelden", - "waitingForAuth": "Warte auf Authentifizierung...\nMelde dich im Browser an.", + "scanQRToSignIn": "Scanne diesen QR-Code, um dich anzumelden", + "waitingForAuth": "Warte auf die Authentifizierung …\nMelde dich über deinen Browser an.", "useBrowser": "Browser verwenden", "or": "oder", "connectToJellyfin": "Mit Jellyfin verbinden", @@ -17,7 +17,7 @@ "quickConnectWaiting": "Warte auf Bestätigung…", "quickConnectCancel": "Abbrechen", "quickConnectExpired": "Quick Connect ist abgelaufen. Versuche es erneut.", - "localDataRecoveryRequired": "Plezy could not safely recover local sign-in and pending playback data. Please sign in again." + "localDataRecoveryRequired": "Plezy konnte lokale Anmeldedaten und ausstehende Wiedergabedaten nicht sicher wiederherstellen. Bitte melde dich erneut an." }, "common": { "cancel": "Abbrechen", @@ -36,8 +36,8 @@ "no": "Nein", "delete": "Löschen", "edit": "Bearbeiten", - "shuffle": "Zufall", - "addTo": "Hinzufügen zu...", + "shuffle": "Zufallswiedergabe", + "addTo": "Hinzufügen zu …", "createNew": "Neu erstellen", "connect": "Verbinden", "disconnect": "Trennen", @@ -48,23 +48,23 @@ "search": "Suche", "home": "Start", "back": "Zurück", - "settings": "Optionen", + "settings": "Einstellungen", "mute": "Stumm", "ok": "OK", "off": "Aus", "seasonNumber": "Staffel ${number}", - "episodeNumberTitle": "Episode ${number} - ${title}", + "episodeNumberTitle": "Folge ${number} – ${title}", "chapterNumber": "Kapitel ${number}", "reconnect": "Erneut verbinden", "viewAll": "Alle anzeigen", "checkingNetwork": "Netzwerk wird geprüft...", "loadingServers": "Server werden geladen...", - "connectingToServers": "Verbindung zu Servern...", + "connectingToServers": "Verbindung zu Servern wird hergestellt …", "startingOfflineMode": "Offlinemodus wird gestartet...", - "loading": "Laden...", + "loading": "Wird geladen …", "fullscreen": "Vollbild", "exitFullscreen": "Vollbild verlassen", - "pressBackAgainToExit": "Erneut Zurück drücken zum Beenden" + "pressBackAgainToExit": "Zum Beenden erneut Zurück drücken" }, "screens": { "licenses": "Lizenzen", @@ -78,7 +78,7 @@ "versionAvailable": "Version ${version} ist verfügbar", "currentVersion": "Aktuell: ${version}", "skipVersion": "Diese Version überspringen", - "viewRelease": "Release anzeigen", + "viewRelease": "Versionshinweise anzeigen", "latestVersion": "Aktuellste Version installiert", "checkFailed": "Fehler bei der Updateprüfung" }, @@ -92,10 +92,10 @@ "videoPlayback": "Videowiedergabe", "videoPlaybackDescription": "Wiedergabeverhalten konfigurieren", "advanced": "Erweitert", - "episodePosterMode": "Episoden-Poster-Stil", + "episodePosterMode": "Episodenposter-Stil", "seriesPoster": "Serienposter", "seasonPoster": "Staffelposter", - "episodeThumbnail": "Miniatur", + "episodeThumbnail": "Vorschaubild", "showHeroSectionDescription": "Bereich mit empfohlenen Inhalten auf der Startseite anzeigen", "secondsLabel": "Sekunden", "minutesLabel": "Minuten", @@ -106,7 +106,7 @@ "lightTheme": "Hell", "darkTheme": "Dunkel", "oledTheme": "OLED", - "libraryDensity": "Mediathekdichte", + "libraryDensity": "Darstellungsdichte der Mediathek", "compact": "Kompakt", "comfortable": "Großzügig", "tvCornerSpotlightBackdrop": "Backdrop in der Ecke", @@ -114,7 +114,7 @@ "viewMode": "Ansichtsmodus", "gridView": "Raster", "listView": "Liste", - "showHeroSection": "Hero-Bereich anzeigen", + "showHeroSection": "Empfehlungsbereich anzeigen", "continueWatchingAction": "Aktion für Weiterschauen", "continueWatchingPlay": "Abspielen", "continueWatchingDetails": "Details öffnen", @@ -137,7 +137,7 @@ "showSeasonPostersOnTabsDescription": "Poster jeder Staffel über ihrem Tab anzeigen", "tvFullCardLayout": "Vollflächige TV-Karten", "tvFullCardLayoutDescription": "TV-Karten nur mit Bild verwenden und Darstellernamen einblenden", - "focusGlow": "Fokus-Leuchten", + "focusGlow": "Fokusleuchten", "focusGlowDescription": "Sanftes Leuchten um die fokussierte Karte anzeigen", "visualEffects": "Visuelle Effekte", "visualEffectsAuto": "Automatisch", @@ -147,40 +147,40 @@ "visualEffectsReducedDescription": "Weniger Animationen und Grafiken mit niedrigerer Auflösung", "hideSpoilers": "Spoiler für nicht gesehene Episoden verbergen", "hideSpoilersDescription": "Vorschaubilder und Beschreibungen ungesehener Episoden verwischen", - "playerBackend": "Player-Backend", + "playerBackend": "Wiedergabe-Engine", "exoPlayer": "ExoPlayer", "mpv": "mpv", - "hardwareDecoding": "Hardware-Decodierung", + "hardwareDecoding": "Hardwaredekodierung", "hardwareDecodingDescription": "Hardwarebeschleunigung verwenden, sofern verfügbar", "bufferSize": "Puffergröße", - "bufferSizeMB": "${size}MB", - "bufferSizeAuto": "Auto (Empfohlen)", - "bufferSizeWarning": "${heap}MB Speicher verfügbar. Ein ${size}MB-Puffer kann die Wiedergabe beeinträchtigen.", + "bufferSizeMB": "${size} MB", + "bufferSizeAuto": "Automatisch (empfohlen)", + "bufferSizeWarning": "${heap} MB Speicher verfügbar. Ein Puffer von ${size} MB kann die Wiedergabe beeinträchtigen.", "defaultQualityTitle": "Standardqualität", "musicQualityTitle": "Musikqualität", "subtitleStyling": "Untertitel-Stil", "subtitleStylingDescription": "Aussehen von Untertiteln anpassen", - "smallSkipDuration": "Kleine Sprungdauer", - "largeSkipDuration": "Große Sprungdauer", + "smallSkipDuration": "Kleines Sprungintervall", + "largeSkipDuration": "Großes Sprungintervall", "rewindOnResume": "Zurückspulen bei Fortsetzung", "secondsUnit": "${seconds} Sekunden", - "defaultSleepTimer": "Standard-Sleep-Timer", + "defaultSleepTimer": "Standard-Schlaftimer", "minutesUnit": "${minutes} Minuten", "rememberTrackSelections": "Spurauswahl pro Serie/Film merken", "rememberTrackSelectionsDescription": "Audio- und Untertitelauswahl je Titel merken", - "showChapterMarkersOnTimeline": "Kapitelmarkierungen auf der Zeitleiste anzeigen", - "showChapterMarkersOnTimelineDescription": "Die Zeitleiste an Kapitelgrenzen unterteilen", - "clickVideoTogglesPlayback": "Klicken Sie auf das Video, um die Wiedergabe zu starten oder zu pausieren.", - "clickVideoTogglesPlaybackDescription": "Video anklicken, um abzuspielen/zu pausieren, statt Steuerungen zu zeigen.", + "showChapterMarkersOnTimeline": "Kapitelmarkierungen auf der Suchleiste anzeigen", + "showChapterMarkersOnTimelineDescription": "Die Suchleiste an Kapitelgrenzen unterteilen", + "clickVideoTogglesPlayback": "Video zum Abspielen oder Pausieren anklicken", + "clickVideoTogglesPlaybackDescription": "Video zum Abspielen oder Pausieren anklicken, statt die Steuerung anzuzeigen.", "videoPlayerControls": "Videoplayer-Steuerung", "keyboardShortcuts": "Tastenkürzel", "keyboardShortcutsDescription": "Tastenkürzel anpassen", "videoPlayerNavigation": "Videoplayer-Navigation", - "videoPlayerNavigationDescription": "Pfeiltasten zur Navigation der Videoplayer-Steuerung verwenden", - "watchTogetherRelay": "Gemeinsam Schauen Relay", + "videoPlayerNavigationDescription": "Mit den Pfeiltasten durch die Videoplayer-Steuerung navigieren", + "watchTogetherRelay": "Relay für gemeinsames Schauen", "watchTogetherRelayDescription": "Eigenes Relay festlegen. Alle müssen denselben Server verwenden.", "watchTogetherRelayHint": "https://mein-relay.beispiel.de", - "watchTogetherRelayInvalid": "Enter a valid HTTP or HTTPS relay base URL.", + "watchTogetherRelayInvalid": "Gib eine gültige HTTP- oder HTTPS-Basis-URL für das Relay ein.", "crashReporting": "Absturzberichte", "crashReportingDescription": "Absturzberichte senden, um die App zu verbessern", "debugLogging": "Debug-Protokollierung", @@ -195,7 +195,7 @@ "resetSettingsSuccess": "Einstellungen erfolgreich zurückgesetzt", "backup": "Sicherung", "exportSettings": "Einstellungen exportieren", - "exportSettingsDescription": "Speichere deine Einstellungen in einer Datei", + "exportSettingsDescription": "Einstellungen in einer Datei speichern", "exportSettingsSuccess": "Einstellungen exportiert", "importSettings": "Einstellungen importieren", "importSettingsDescription": "Einstellungen aus einer Datei wiederherstellen", @@ -215,14 +215,14 @@ "validationErrorDuration": "Dauer muss zwischen ${min} und ${max} ${unit} liegen", "shortcutAlreadyAssigned": "Tastenkürzel bereits zugewiesen an ${action}", "shortcutUpdated": "Tastenkürzel aktualisiert für ${action}", - "saveFailed": "Could not save changes. Try again.", + "saveFailed": "Änderungen konnten nicht gespeichert werden. Versuche es erneut.", "autoSkip": "Automatisches Überspringen", "autoSkipIntro": "Intro automatisch überspringen", "autoSkipIntroDescription": "Intro-Marker nach wenigen Sekunden automatisch überspringen", "autoSkipCredits": "Abspann automatisch überspringen", "autoSkipCreditsDescription": "Abspann automatisch überspringen und nächste Episode abspielen", - "forceSkipMarkerFallback": "Fallback-Markierungen erzwingen", - "forceSkipMarkerFallbackDescription": "Kapitel-Titelmuster verwenden, auch wenn Plex Marker hat", + "forceSkipMarkerFallback": "Ersatzmarkierungen erzwingen", + "forceSkipMarkerFallbackDescription": "Kapitel-Titelmuster auch dann verwenden, wenn Plex über Markierungen verfügt", "autoSkipDelay": "Verzögerung für automatisches Überspringen", "autoSkipDelayDescription": "${seconds} Sekunden vor dem automatischen Überspringen warten", "introPattern": "Intro-Markierungsmuster", @@ -246,19 +246,19 @@ "downloadOnWifiOnlyDescription": "Downloads über mobile Daten verhindern", "autoRemoveWatchedDownloads": "Gesehene Downloads automatisch entfernen", "autoRemoveWatchedDownloadsDescription": "Angesehene Downloads automatisch löschen", - "cellularDownloadBlocked": "Downloads sind über Mobilfunk blockiert. Nutze WiFi oder ändere die Einstellung.", + "cellularDownloadBlocked": "Downloads über das Mobilfunknetz sind blockiert. Nutze WLAN oder ändere die Einstellung.", "maxVolume": "Maximale Lautstärke", - "maxVolumeDescription": "Lautstärke über 100% für leise Medien erlauben", - "maxVolumePercent": "${percent}%", + "maxVolumeDescription": "Lautstärkeanhebung über 100 % für leise Medien erlauben", + "maxVolumePercent": "${percent} %", "discordRichPresence": "Discord Rich Presence", - "discordRichPresenceDescription": "Zeige auf Discord, was du gerade schaust", + "discordRichPresenceDescription": "Auf Discord anzeigen, was du gerade schaust", "services": "Dienste", "servicesDescription": "Trakt, MyAnimeList, Seerr und mehr verbinden", "manageLibrariesDescription": "Mediatheken neu anordnen und ausblenden", - "companionRemoteServer": "Companion Remote Server", + "companionRemoteServer": "Companion-Fernbedienungsserver", "companionRemoteServerDescription": "Mobilgeräten in deinem Netzwerk erlauben, diese App zu steuern", "autoPip": "Automatisches Bild-in-Bild", - "autoPipDescription": "Beim Verlassen während der Wiedergabe Bild-in-Bild starten", + "autoPipDescription": "Beim Verlassen der App während der Wiedergabe automatisch Bild-in-Bild starten", "matchContentFrameRate": "Inhalts-Bildrate anpassen", "matchContentFrameRateDescription": "Bildwiederholrate des Displays an Videoinhalt anpassen", "matchRefreshRate": "Bildwiederholrate anpassen", @@ -270,10 +270,10 @@ "tunneledPlaybackDescription": "Video-Tunneling verwenden. Deaktivieren, wenn HDR-Wiedergabe schwarzes Video zeigt.", "audioPassthrough": "Audio-Durchleitung", "audioPassthroughDescription": "Dolby/DTS-Audio ohne Neukodierung an deinen Receiver oder Fernseher senden und Surround-Sound erhalten. Deaktivieren, wenn kein Ton zu hören ist.", - "audioPassthroughDescriptionAppleTv": "Übergibt Dolby Digital Plus (inkl. Atmos) als Bitstream an das System. DTS und TrueHD werden weiterhin als Mehrkanal-PCM wiedergegeben. Beim Spulen können kurze Tonaussetzer auftreten.", - "audioDownmix": "Downmix auf Stereo", - "audioDownmixDescription": "Mischt Surround-Ton für Stereo-Lautsprecher oder Kopfhörer auf zwei Kanäle herunter", - "downmixCenterBoost": "Center-Kanal-Verstärkung", + "audioPassthroughDescriptionAppleTv": "Apples nativen Dolby-Decoder für Dolby Digital Plus einschließlich Atmos verwenden. DTS und TrueHD werden weiterhin als Mehrkanal-PCM wiedergegeben. Deaktivieren, wenn kein Ton zu hören ist.", + "audioDownmix": "Auf Stereo heruntermischen", + "audioDownmixDescription": "Surround-Ton für Stereolautsprecher oder Kopfhörer auf zwei Kanäle heruntermischen", + "downmixCenterBoost": "Verstärkung des Center-Kanals", "downmixCenterBoostValue": "${db} dB", "downmixCenterBoostLabel": "Verstärkung (dB)", "downmixCenterBoostShort": "dB", @@ -295,14 +295,14 @@ "atmosTestUrlMissing": "Zuerst die URL der Testdatei festlegen", "atmosTestStatus": "Status", "dvConversionMode": "Dolby-Vision-Konvertierung", - "dvConversionModeDescription": "Wähle, wie ExoPlayer Dolby-Vision-Profil-7-Dateien behandelt.", + "dvConversionModeDescription": "Wähle, wie ExoPlayer Dateien mit Dolby-Vision-Profil 7 behandelt.", "dvConversionAuto": "Automatisch", "dvConversionNative": "Nativ / deaktiviert", "dvConversionDv81": "P7 → P8.1", "dvConversionHevcStrip": "P7 → HEVC", "dvConversionAutoDescription": "Gerätefähigkeiten erkennen und normales Fallback-Verhalten verwenden", - "dvConversionNativeDescription": "Natives DV7 erzwingen und DV-Konvertierungsversuch unterdrücken", - "dvConversionDv81Description": "Inline-RPU-Konvertierung zu Dolby Vision Profil 8.1 erzwingen", + "dvConversionNativeDescription": "Natives DV7 erzwingen und einen erneuten DV-Konvertierungsversuch unterdrücken", + "dvConversionDv81Description": "Inline-RPU-Konvertierung in Dolby-Vision-Profil 8.1 erzwingen", "dvConversionHevcStripDescription": "Dolby-Vision-RPU/EL-Schichten entfernen und reines HEVC ausgeben", "requireProfileSelectionOnOpen": "Profil beim Öffnen abfragen", "requireProfileSelectionOnOpenDescription": "Profilauswahl bei jedem Öffnen der App anzeigen", @@ -325,12 +325,12 @@ "window": "Fenster", "content": "Inhalt", "player": "Wiedergabe", - "subtitlesAndConfig": "Untertitel & Konfiguration", + "subtitlesAndConfig": "Untertitel und Konfiguration", "seekAndTiming": "Spulen & Timing", "behavior": "Verhalten" }, "search": { - "hint": "Filme, Serien, Musik suchen...", + "hint": "Filme, Serien und Musik suchen …", "tryDifferentTerm": "Anderen Suchbegriff versuchen", "searchYourMedia": "In den eigenen Medien suchen", "enterTitleActorOrKeyword": "Titel, Schauspieler oder Stichwort eingeben" @@ -338,7 +338,7 @@ "hotkeys": { "setShortcutFor": "Tastenkürzel festlegen für ${actionName}", "clearShortcut": "Kürzel löschen", - "noShortcutSet": "Keine Tastenkombination festgelegt", + "noShortcutSet": "Kein Tastenkürzel festgelegt", "currentShortcut": "Aktuelle Tastenkombination:", "pressToRecord": "Auswählen, um eine Tastenkombination aufzuzeichnen", "recordingShortcut": "Jetzt die Tastenkombination drücken", @@ -371,7 +371,7 @@ } }, "fileInfo": { - "title": "Dateiinfo", + "title": "Dateiinformationen", "video": "Video", "audio": "Audio", "file": "Datei", @@ -382,14 +382,14 @@ "frameRate": "Bildrate", "aspectRatio": "Seitenverhältnis", "profile": "Profil", - "bitDepth": "Farbtiefe", + "bitDepth": "Bittiefe", "colorSpace": "Farbraum", "colorRange": "Farbbereich", "colorPrimaries": "Primärfarben", "chromaSubsampling": "Chroma-Subsampling", "channels": "Kanäle", "subtitles": "Untertitel", - "overallBitrate": "Gesamt-Bitrate", + "overallBitrate": "Gesamtbitrate", "path": "Pfad", "size": "Größe", "container": "Container", @@ -409,11 +409,11 @@ "deleteFromServer": "Vom Server löschen", "confirmDelete": "Dieses Medium und seine Dateien von deinem Server löschen?", "deleteMultipleWarning": "Dies umfasst alle Episoden und deren Dateien.", - "mediaDeletedSuccessfully": "Medienelement erfolgreich gelöscht", - "mediaFailedToDelete": "Löschen des Medienelements fehlgeschlagen", + "mediaDeletedSuccessfully": "Medienelement gelöscht", + "mediaFailedToDelete": "Medienelement konnte nicht gelöscht werden", "rate": "Bewerten", "playFromBeginning": "Von Anfang an abspielen", - "playVersion": "Version abspielen..." + "playVersion": "Version abspielen …" }, "rateSheet": { "title": "Bewerten", @@ -429,9 +429,9 @@ "mediaCardShow": "${title}, Serie", "mediaCardEpisode": "${title}, ${episodeInfo}", "mediaCardSeason": "${title}, ${seasonInfo}", - "mediaCardWatched": "angesehen", - "mediaCardPartiallyWatched": "${percent} Prozent angesehen", - "mediaCardUnwatched": "ungeschaut", + "mediaCardWatched": "gesehen", + "mediaCardPartiallyWatched": "zu ${percent} Prozent gesehen", + "mediaCardUnwatched": "ungesehen", "tapToPlay": "Zum Abspielen tippen", "decrease": "Verringern", "increase": "Erhöhen", @@ -440,7 +440,7 @@ "hue": "Farbton", "saturation": "Sättigung", "brightness": "Helligkeit", - "hexColor": "Hex-Farbe", + "hexColor": "Hexadezimalfarbe", "expandText": "Text ausklappen", "collapseText": "Text einklappen", "alphabetNavigation": "Alphabetische Navigation", @@ -482,12 +482,12 @@ "continueWatching": "Weiter", "autoPlayNext": "Nächstes automatisch abspielen", "playNext": "Nächstes abspielen", - "playButton": "Wiedergeben", + "playButton": "Abspielen", "pauseButton": "Pause", - "showPlaybackControls": "", - "hidePlaybackControls": "", + "showPlaybackControls": "Wiedergabesteuerung anzeigen", + "hidePlaybackControls": "Wiedergabesteuerung ausblenden", "seekBackwardButton": "${seconds} Sekunden zurück", - "seekForwardButton": "${seconds} Sekunden vor", + "seekForwardButton": "${seconds} Sekunden vorwärts", "previousButton": "Vorherige Episode", "nextButton": "Nächste Episode", "previousChapterButton": "Vorheriges Kapitel", @@ -502,19 +502,19 @@ "qualityColumnHeader": "Qualität", "qualityOriginal": "Original", "qualityPresetLabel": "${resolution}p ${bitrate} Mbps", - "transcodeUnavailableFallback": "Transkodierung nicht verfügbar — Wiedergabe in Originalqualität", - "subtitleUnavailableFallback": "Die ausgewählten Untertitel konnten nicht geladen werden — Wiedergabe ohne Untertitel wird fortgesetzt", - "pipButton": "Bild-in-Bild Modus", + "transcodeUnavailableFallback": "Transkodierung nicht verfügbar – Wiedergabe in Originalqualität", + "subtitleUnavailableFallback": "Die ausgewählten Untertitel konnten nicht geladen werden – die Wiedergabe wird ohne Untertitel fortgesetzt", + "pipButton": "Bild-in-Bild-Modus", "aspectRatioButton": "Seitenverhältnis", "ambientLighting": "Umgebungsbeleuchtung", "fullscreenButton": "Vollbild aktivieren", "exitFullscreenButton": "Vollbild verlassen", "alwaysOnTopButton": "Immer im Vordergrund", - "rotationLockButton": "Dreh­sperre", + "rotationLockButton": "Drehsperre", "lockScreen": "Bildschirm sperren", "screenLockButton": "Bildschirmsperre", "longPressToUnlock": "Lange drücken zum Entsperren", - "timelineSlider": "Video-Zeitleiste", + "timelineSlider": "Videozeitleiste", "volumeSlider": "Lautstärkepegel", "endsAt": "Endet um ${time}", "pipActive": "Wiedergabe im Bild-in-Bild-Modus", @@ -556,30 +556,30 @@ "one": "Automatisch entfernt: ${n} angesehener Download", "other": "Automatisch entfernt: ${n} angesehene Downloads" }, - "removedFromContinueWatching": "Aus ‚Weiterschauen' entfernt", + "removedFromContinueWatching": "Aus „Weiterschauen“ entfernt", "errorLoading": "Fehler: ${error}", "streamInterrupted": "Der Stream wurde unterbrochen. Drücke auf Wiedergabe oder spule, um es erneut zu versuchen.", "liveStreamInterrupted": "Der Livestream wurde unterbrochen. Drücke auf Wiedergabe, um es erneut zu versuchen.", "fileInfoNotAvailable": "Dateiinfo nicht verfügbar", - "playbackAuthenticationRequired": "Sign in to the media server again to play this item.", - "playbackServerUnavailable": "The media server is unavailable. Try again later.", - "playbackDataInvalid": "The server returned invalid playback information.", - "playbackCancelled": "Playback was cancelled.", - "playbackFailed": "Playback could not be started.", + "playbackAuthenticationRequired": "Melde dich erneut beim Medienserver an, um dieses Element abzuspielen.", + "playbackServerUnavailable": "Der Medienserver ist nicht verfügbar. Versuche es später erneut.", + "playbackDataInvalid": "Der Server hat ungültige Wiedergabeinformationen zurückgegeben.", + "playbackCancelled": "Die Wiedergabe wurde abgebrochen.", + "playbackFailed": "Die Wiedergabe konnte nicht gestartet werden.", "errorLoadingFileInfo": "Fehler beim Laden der Dateiinfo: ${error}", "errorLoadingSeries": "Fehler beim Laden der Serie", "musicNotSupported": "Musikwiedergabe wird noch nicht unterstützt", "noDescriptionAvailable": "Keine Beschreibung verfügbar", "noProfilesAvailable": "Keine Profile verfügbar", - "contactAdminForProfiles": "Kontaktiere deinen Serveradministrator, um Profile hinzuzufügen", - "unableToDetermineLibrarySection": "Bibliotheksbereich für dieses Element kann nicht ermittelt werden", + "contactAdminForProfiles": "Wende dich an deinen Serveradministrator, um Profile hinzuzufügen", + "unableToDetermineLibrarySection": "Der Mediatheksbereich für dieses Element konnte nicht ermittelt werden", "logsCleared": "Protokolle gelöscht", "logsCopied": "Protokolle in Zwischenablage kopiert", "noLogsAvailable": "Keine Protokolle verfügbar", - "libraryScanning": "Scanne „${title}“...", + "libraryScanning": "„${title}“ wird gescannt …", "libraryScanStarted": "Mediathekscan gestartet für „${title}“", "libraryScanFailed": "Fehler beim Scannen der Mediathek: ${error}", - "metadataRefreshing": "Metadaten werden aktualisiert für „${title}“...", + "metadataRefreshing": "Metadaten für „${title}“ werden aktualisiert …", "metadataRefreshStarted": "Metadaten-Aktualisierung gestartet für „${title}“", "metadataRefreshFailed": "Metadaten konnten nicht aktualisiert werden: ${error}", "logoutConfirm": "Abmeldung wirklich durchführen?", @@ -589,13 +589,13 @@ "noEpisodesFoundGeneral": "Keine Episoden gefunden", "episodesLoadFailed": "Episoden konnten nicht geladen werden", "noResultsFound": "Keine Ergebnisse gefunden", - "sleepTimerSet": "Sleep-Timer gesetzt auf ${label}", + "sleepTimerSet": "Schlaftimer auf ${label} eingestellt", "noItemsAvailable": "Keine Elemente verfügbar", "failedToCreatePlayQueueNoItems": "Wiedergabewarteschlange konnte nicht erstellt werden – keine Elemente", "failedPlayback": "Wiedergabe für ${action} fehlgeschlagen: ${error}", - "switchingToCompatiblePlayer": "Wechsle zu kompatiblem Player...", + "switchingToCompatiblePlayer": "Wechsel zu einem kompatiblen Player …", "serverLimitTitle": "Wiedergabe fehlgeschlagen", - "serverLimitBody": "Serverfehler (HTTP 500). Ein Bandbreiten-/Transcoding-Limit lehnte diese Sitzung wohl ab. Bitte den Besitzer um Anpassung.", + "serverLimitBody": "Serverfehler (HTTP 500). Vermutlich hat ein Bandbreiten- oder Transkodierungslimit diese Sitzung abgelehnt. Bitte den Besitzer, das Limit anzupassen.", "logsUploaded": "Protokolle hochgeladen", "logsUploadFailed": "Protokolle konnten nicht hochgeladen werden", "logId": "Protokoll-ID" @@ -628,7 +628,7 @@ "description": "Erweiterte Videoplayer-Einstellungen", "presets": "Voreinstellungen", "noPresets": "Keine gespeicherten Voreinstellungen", - "saveAsPreset": "Als Voreinstellung speichern...", + "saveAsPreset": "Als Voreinstellung speichern …", "presetName": "Name der Voreinstellung", "presetNameHint": "Namen für diese Voreinstellung eingeben", "loadPreset": "Laden", @@ -636,7 +636,7 @@ "presetSaved": "Voreinstellung gespeichert", "presetLoaded": "Voreinstellung geladen", "presetDeleted": "Voreinstellung gelöscht", - "confirmDeletePreset": "Möchten Sie diese Voreinstellung wirklich löschen?", + "confirmDeletePreset": "Diese Voreinstellung wirklich löschen?", "configPlaceholder": "gpu-api=vulkan\nhwdec=auto\n# comment" }, "dialog": { @@ -656,7 +656,7 @@ "signedOutPlex": "Von Plex abgemeldet.", "signOutFailed": "Abmeldung fehlgeschlagen.", "sectionTitle": "Profile", - "summarySingle": "Profile hinzufügen, um verwaltete Benutzer und lokale Identitäten zu mischen", + "summarySingle": "Profile hinzufügen, um verwaltete Benutzer mit lokalen Identitäten zu kombinieren", "summaryMultipleWithActive": "${count} Profile · aktiv: ${activeName}", "summaryMultiple": "${count} Profile", "removeConnectionTitle": "Verbindung entfernen?", @@ -681,21 +681,21 @@ "plexHomeAccount": "Plex Home-Konto", "connectionDefault": "Standard", "connectionAs": "als ${displayName}", - "makeDefault": "Als Standard", + "makeDefault": "Als Standard festlegen", "removeConnection": "Entfernen", "profileRenamed": "Profil umbenannt.", "borrowAddTo": "Zu ${displayName} hinzufügen", - "borrowExplain": "Verbindung eines anderen Profils leihen. PIN-geschützte Profile erfordern eine PIN.", - "borrowEmpty": "Noch nichts zum Ausleihen.", + "borrowExplain": "Verbindung eines anderen Profils übernehmen. PIN-geschützte Profile erfordern eine PIN.", + "borrowEmpty": "Keine Verbindungen zum Übernehmen verfügbar.", "borrowEmptySubtitle": "Verbinde zuerst Plex oder Jellyfin mit einem anderen Profil.", - "borrowLoadFailed": "Available connections could not be loaded. Try again.", + "borrowLoadFailed": "Verfügbare Verbindungen konnten nicht geladen werden. Versuche es erneut.", "borrowFromProfile": "Von ${displayName}", - "borrowConnectionBorrowed": "Verbindung ausgeliehen.", - "borrowFailed": "Verbindung konnte nicht ausgeliehen werden.", + "borrowConnectionBorrowed": "Verbindung übernommen.", + "borrowFailed": "Verbindung konnte nicht übernommen werden.", "incorrectPin": "Falsche PIN.", "incorrectPinTryAgain": "Falsche PIN. Bitte erneut versuchen.", "sourceProfileMissingParentAccount": "Dem Quellprofil fehlt das übergeordnete Konto.", - "failedToLoadHomeUsers": "Deine Plex Home-Benutzer konnten nicht geladen werden. Prüfe deine Verbindung und versuche es erneut.", + "failedToLoadHomeUsers": "Deine Plex-Home-Benutzer konnten nicht geladen werden. Prüfe deine Verbindung und versuche es erneut.", "failedToVerifyPin": "PIN konnte nicht verifiziert werden.", "newProfile": "Neues Profil", "profileNameHint": "z. B. Gäste, Kinder, Wohnzimmer", @@ -707,7 +707,7 @@ "connections": { "sectionTitle": "Verbindungen", "addConnection": "Verbindung hinzufügen", - "addConnectionSubtitleNoProfile": "Mit Plex anmelden oder Jellyfin-Server verbinden", + "addConnectionSubtitleNoProfile": "Mit Plex anmelden oder mit einem Jellyfin-Server verbinden", "addConnectionSubtitleScoped": "Zu ${displayName} hinzufügen: Plex, Jellyfin oder eine andere Profilverbindung", "sessionExpiredOne": "Sitzung für ${name} abgelaufen", "sessionExpiredMany": "Sitzungen für ${count} Server abgelaufen", @@ -736,7 +736,7 @@ "rating": "Altersfreigabe", "movie": "Film", "tvShow": "Serie", - "minutesLeft": "${minutes} Min übrig", + "minutesLeft": "Noch ${minutes} Min.", "moreLikeThis": "Ähnliche Inhalte" }, "errors": { @@ -774,7 +774,7 @@ "noItemsMatchFilters": "Keine Elemente entsprechen den aktiven Filtern", "resetFilters": "Filter zurücksetzen", "all": "Alle", - "clearAll": "Alle löschen", + "clearAll": "Alle Filter entfernen", "scanLibraryConfirm": "„${title}“ wirklich scannen?", "analyzeLibraryConfirm": "„${title}“ wirklich analysieren?", "refreshMetadataConfirm": "Metadaten für „${title}“ wirklich aktualisieren?", @@ -787,8 +787,8 @@ "showLibrary": "Mediathek anzeigen", "hideLibrary": "Mediathek ausblenden", "libraryOptions": "Mediatheksoptionen", - "content": "Bibliotheksinhalt", - "selectLibrary": "Bibliothek auswählen", + "content": "Mediatheksinhalt", + "selectLibrary": "Mediathek auswählen", "filtersWithCount": "Filter (${count})", "noRecommendations": "Keine Empfehlungen verfügbar", "noCollections": "Keine Sammlungen in dieser Mediathek", @@ -826,7 +826,7 @@ "dateAdded": "Hinzugefügt am", "releaseDate": "Erscheinungsdatum", "rating": "Bewertung", - "communityRating": "Community-Bewertung", + "communityRating": "Communitybewertung", "criticRating": "Kritikerbewertung", "userRating": "Benutzerbewertung", "datePlayed": "Wiedergabedatum", @@ -840,15 +840,15 @@ "studio": "Studio", "random": "Zufällig", "dateShared": "Datum geteilt", - "latestEpisodeAirDate": "Letztes Folgenausstrahlungsdatum", - "lastEpisodeDateAdded": "Datum der zuletzt hinzugefügten Folge" + "latestEpisodeAirDate": "Ausstrahlungsdatum der neuesten Folge", + "lastEpisodeDateAdded": "Hinzugefügt am (neueste Folge)" } }, "about": { "title": "Über", "openSourceLicenses": "Open-Source-Lizenzen", "versionLabel": "Version ${version}", - "appDescription": "Ein schöner Plex- und Jellyfin-Client für Flutter", + "appDescription": "Ein schöner, mit Flutter entwickelter Plex- und Jellyfin-Client", "viewLicensesDescription": "Lizenzen von Drittanbieter-Bibliotheken anzeigen" }, "serverSelection": { @@ -874,7 +874,7 @@ "licensesCount": "${count} Lizenzen" }, "navigation": { - "libraries": "Medien", + "libraries": "Mediatheken", "downloads": "Downloads", "liveTv": "Live-TV", "explore": "Erkunden" @@ -891,8 +891,8 @@ "popularMovies": "Beliebte Filme", "popularShows": "Beliebte Serien", "trendingAnime": "Angesagte Anime", - "suggestedAnime": "Vorgeschlagene Anime", - "airingAnime": "Top laufende Anime", + "suggestedAnime": "Empfohlene Anime", + "airingAnime": "Beste derzeit laufende Anime", "popularAnime": "Beliebteste Anime", "trending": "Angesagt", "upcomingMovies": "Kommende Filme", @@ -915,19 +915,19 @@ "watchlistUpdateFailed": "Merkliste konnte nicht aktualisiert werden", "notInLibrary": "Nicht in deiner Mediathek", "inTheseLibraries": "In diesen Mediatheken", - "checkingLibrary": "Deine Mediathek wird überprüft...", + "checkingLibrary": "Deine Mediathek wird überprüft …", "emptyTitle": "Hier ist noch nichts", "emptyMessage": "Zeilen aus ${source} erscheinen hier, sobald sie Inhalte enthalten.", "searchHint": "${source} durchsuchen", - "searchEmpty": "Keine Ergebnisse für \"${query}\"", + "searchEmpty": "Keine Ergebnisse für „${query}“", "searchPrompt": "Suche nach Filmen und Serien auf ${source}.", "searchFailed": "Suche fehlgeschlagen. Prüfe deine Verbindung und versuche es erneut." }, "liveTv": { "title": "Live-TV", - "guide": "Programmführer", + "guide": "TV-Programm", "noChannels": "Keine Kanäle verfügbar", - "noDvr": "Kein DVR auf einem Server konfiguriert", + "noDvr": "Auf keinem Server ist ein DVR konfiguriert", "serverUnavailable": "Der Live-TV-Server ist nicht verfügbar.", "serverNotConnected": "Der Live-TV-Server ist nicht verbunden.", "noPrograms": "Keine Programmdaten verfügbar", @@ -938,7 +938,7 @@ "channelNumber": "Kanal ${number}", "unknownChannel": "Unbekannter Kanal", "live": "LIVE", - "reloadGuide": "Programmführer neu laden", + "reloadGuide": "TV-Programm neu laden", "now": "Jetzt", "today": "Heute", "tomorrow": "Morgen", @@ -953,8 +953,8 @@ "favorites": "Favoriten", "reorderFavorites": "Favoriten sortieren", "favoritesLoadFailed": "Favoriten konnten nicht geladen werden. Überprüfe deine Verbindung und versuche es erneut.", - "favoritesUpdateFailed": "Could not update favorites. Check your connection and try again.", - "joinSession": "Laufender Sitzung beitreten", + "favoritesUpdateFailed": "Favoriten konnten nicht aktualisiert werden. Prüfe deine Verbindung und versuche es erneut.", + "joinSession": "Aktueller Sitzung beitreten", "watchFromStart": "Von Anfang an ansehen (vor ${minutes} Min.)", "watchLive": "Live ansehen", "goToLive": "Zum Live-Bild", @@ -988,7 +988,7 @@ "editRule": "Regel bearbeiten", "editRuleAction": "Bearbeiten", "recordingRuleUpdated": "Aufnahmeregel aktualisiert", - "guideReloadRequested": "Guide-Aktualisierung angefordert", + "guideReloadRequested": "Aktualisierung des TV-Programms angefordert", "rulesProcessRequested": "Regelauswertung angefordert", "recordShow": "Sendung aufnehmen" }, @@ -997,7 +997,7 @@ "collection": "Sammlung", "empty": "Sammlung ist leer", "deleteCollection": "Sammlung löschen", - "deleteConfirm": "\"${title}\" löschen? Dies kann nicht rückgängig gemacht werden.", + "deleteConfirm": "„${title}“ löschen? Dies kann nicht rückgängig gemacht werden.", "deleted": "Sammlung gelöscht", "deleteFailed": "Sammlung konnte nicht gelöscht werden", "deleteFailedWithError": "Sammlung konnte nicht gelöscht werden: ${error}", @@ -1008,7 +1008,7 @@ "errorAddingToCollection": "Fehler beim Hinzufügen zur Sammlung", "created": "Sammlung erstellt", "removeFromCollection": "Aus Sammlung entfernen", - "removeFromCollectionConfirm": "\"${title}\" aus dieser Sammlung entfernen?", + "removeFromCollectionConfirm": "„${title}“ aus dieser Sammlung entfernen?", "removedFromCollection": "Aus Sammlung entfernt", "removeFromCollectionFailed": "Entfernen aus Sammlung fehlgeschlagen", "removeFromCollectionError": "Fehler beim Entfernen aus der Sammlung: ${error}", @@ -1028,7 +1028,7 @@ "oneItem": "1 Element", "emptyPlaylist": "Diese Wiedergabeliste ist leer", "deleteConfirm": "Wiedergabeliste löschen?", - "deleteMessage": "Soll \"${name}\" wirklich gelöscht werden?", + "deleteMessage": "„${name}“ wirklich löschen?", "created": "Wiedergabeliste erstellt", "deleted": "Wiedergabeliste gelöscht", "itemAdded": "Zur Wiedergabeliste hinzugefügt", @@ -1054,12 +1054,12 @@ "other": "${n} Titel" }, "nowPlaying": "Wird wiedergegeben", - "playingFrom": "Wiedergabe aus ${title}", + "playingFrom": "Wiedergabe von ${title}", "queue": "Warteschlange", "clearQueue": "Warteschlange leeren", "lyrics": "Songtext", "noLyrics": "Kein Songtext verfügbar", - "sleepTimer": "Einschlaf-Timer", + "sleepTimer": "Schlaftimer", "sleepTimerEndOfTrack": "Ende des Titels", "sleepTimerMinutes": "${n} Minuten", "stopPlayback": "Wiedergabe stoppen", @@ -1072,16 +1072,16 @@ "watchTogether": { "title": "Gemeinsam Schauen", "description": "Inhalte synchron mit Freunden und Familie schauen", - "createSession": "Sitzung Erstellen", - "creating": "Erstellen...", - "joinSession": "Sitzung Beitreten", - "joining": "Beitreten...", + "createSession": "Sitzung erstellen", + "creating": "Wird erstellt …", + "joinSession": "Sitzung beitreten", + "joining": "Beitritt läuft …", "controlMode": "Steuerungsmodus", "controlModeQuestion": "Wer kann die Wiedergabe steuern?", "hostOnly": "Nur Host", "anyone": "Alle", - "hostingSession": "Sitzung Hosten", - "inSession": "In Sitzung", + "hostingSession": "Sitzung wird gehostet", + "inSession": "In einer Sitzung", "sessionCode": "Sitzungscode", "openSessionControls": "Sitzungssteuerung für Gemeinsam Schauen öffnen", "copySessionCode": "Sitzungscode kopieren", @@ -1094,43 +1094,43 @@ "hostBadge": "HOST", "youAreHost": "Du bist der Host", "watchingWithOthers": "Mit anderen schauen", - "endSession": "Sitzung Beenden", - "leaveSession": "Sitzung Verlassen", - "endSessionQuestion": "Sitzung Beenden?", - "leaveSessionQuestion": "Sitzung Verlassen?", + "endSession": "Sitzung beenden", + "leaveSession": "Sitzung verlassen", + "endSessionQuestion": "Sitzung beenden?", + "leaveSessionQuestion": "Sitzung verlassen?", "endSessionConfirm": "Dies beendet die Sitzung für alle Teilnehmer.", "leaveSessionConfirm": "Du wirst aus der Sitzung entfernt.", "endSessionConfirmOverlay": "Dies beendet die Schausitzung für alle Teilnehmer.", "leaveSessionConfirmOverlay": "Du wirst von der Schausitzung getrennt.", "end": "Beenden", "leave": "Verlassen", - "syncing": "Synchronisieren...", - "joinWatchSession": "Schausitzung Beitreten", + "syncing": "Wird synchronisiert …", + "joinWatchSession": "Schausitzung beitreten", "enterCodeHint": "5-stelligen Code eingeben", "pasteFromClipboard": "Aus Zwischenablage einfügen", "pleaseEnterCode": "Bitte gib einen Sitzungscode ein", "codeMustBe5Chars": "Sitzungscode muss 5 Zeichen haben", "joinInstructions": "Gib den Sitzungscode des Hosts ein, um beizutreten.", "failedToCreate": "Sitzung konnte nicht erstellt werden", - "failedToJoin": "Sitzung konnte nicht beigetreten werden", + "failedToJoin": "Beitritt zur Sitzung fehlgeschlagen", "sessionCodeCopied": "Sitzungscode in Zwischenablage kopiert", - "relayUnreachable": "Relay-Server nicht erreichbar. ISP-Blockierung kann Watch Together verhindern.", - "reconnectingToHost": "Verbindung zum Host wird wiederhergestellt...", + "relayUnreachable": "Relay-Server nicht erreichbar. Eine Sperre durch den Internetanbieter kann gemeinsames Schauen verhindern.", + "reconnectingToHost": "Verbindung zum Host wird wiederhergestellt …", "currentPlayback": "Aktuelle Wiedergabe", - "joinCurrentPlayback": "Aktuelle Wiedergabe beitreten", - "joinCurrentPlaybackDescription": "Springe zurück zu dem, was der Host gerade ansieht", + "joinCurrentPlayback": "Aktueller Wiedergabe beitreten", + "joinCurrentPlaybackDescription": "Zu dem Inhalt wechseln, den der Host gerade ansieht", "failedToOpenCurrentPlayback": "Aktuelle Wiedergabe konnte nicht geöffnet werden", "participantJoined": "${name} ist beigetreten", "participantLeft": "${name} hat die Sitzung verlassen", "participantPaused": "${name} hat pausiert", "participantResumed": "${name} hat fortgesetzt", - "participantSeeked": "${name} hat gespult", + "participantSeeked": "${name} hat die Wiedergabeposition geändert", "participantBuffering": "${name} puffert", "participantNeedsUpdate": "${name} verwendet eine ältere Appversion — Synchronisierung nicht verfügbar", "resumingWithout": "Fortfahren ohne ${name}", - "waitingForParticipants": "Warte auf andere zum Laden...", - "waitingForName": "Warten auf ${name}...", - "recentRooms": "Letzte Räume", + "waitingForParticipants": "Warten, bis die anderen bereit sind …", + "waitingForName": "Warten auf ${name} …", + "recentRooms": "Zuletzt verwendete Räume", "renameRoom": "Raum umbenennen", "removeRoom": "Entfernen", "guestSwitchUnavailable": "Wechsel fehlgeschlagen — Server nicht für Synchronisierung verfügbar", @@ -1162,12 +1162,12 @@ "syncingFile": "${file} (${status} wird synchronisiert)", "downloadedFileClickToComplete": "${file} heruntergeladen — zum Abschließen klicken", "partialDownloadClickToComplete": "Teilweise heruntergeladen — zum Abschließen klicken", - "deleting": "Lösche...", - "deletingWithProgress": "Lösche ${title}... (${current} von ${total})", + "deleting": "Wird gelöscht …", + "deletingWithProgress": "${title} wird gelöscht … (${current} von ${total})", "queuedTooltip": "In Warteschlange", "queuedFilesTooltip": "In Warteschlange: ${files}", - "downloadingTooltip": "Lädt herunter...", - "downloadingFilesTooltip": "Lädt ${files} herunter", + "downloadingTooltip": "Wird heruntergeladen …", + "downloadingFilesTooltip": "${files} werden heruntergeladen", "noDownloadsTree": "Keine Downloads", "pauseAll": "Alle pausieren", "resumeAll": "Alle fortsetzen", @@ -1177,33 +1177,33 @@ "unwatchedOnly": "Nur ungesehene", "nextNUnwatched": "Nächste ${count} ungesehene", "customAmount": "Eigene Anzahl...", - "includeSpecials": "Specials einschließen", + "includeSpecials": "Sonderfolgen einschließen", "howManyEpisodes": "Wie viele Episoden?", "invalidEpisodeCount": "Gib eine gültige Episodenanzahl ein.", "keepSynced": "Synchronisiert halten", "downloadOnce": "Einmal herunterladen", "keepNUnwatched": "${count} ungesehene behalten", - "editSyncRule": "Sync-Regel bearbeiten", - "removeSyncRule": "Sync-Regel entfernen", - "removeSyncRuleConfirm": "Synchronisierung von \"${title}\" beenden? Heruntergeladene Episoden werden behalten.", - "syncRuleCreated": "Sync-Regel erstellt — ${count} ungesehene Episoden werden behalten", - "syncRuleUpdated": "Sync-Regel aktualisiert", - "syncRuleRemoved": "Sync-Regel entfernt", + "editSyncRule": "Synchronisierungsregel bearbeiten", + "removeSyncRule": "Synchronisierungsregel entfernen", + "removeSyncRuleConfirm": "Synchronisierung von „${title}“ beenden? Heruntergeladene Episoden werden behalten.", + "syncRuleCreated": "Synchronisierungsregel erstellt – ${count} ungesehene Episoden werden behalten", + "syncRuleUpdated": "Synchronisierungsregel aktualisiert", + "syncRuleRemoved": "Synchronisierungsregel entfernt", "syncedNewEpisodes": "${count} neue Episoden für ${title} synchronisiert", - "activeSyncRules": "Sync-Regeln", - "noSyncRules": "Keine Sync-Regeln", + "activeSyncRules": "Synchronisierungsregeln", + "noSyncRules": "Keine Synchronisierungsregeln", "manageSyncRule": "Synchronisierung verwalten", "editEpisodeCount": "Episodenanzahl", "editSyncFilter": "Synchronisierungsfilter", - "syncAllItems": "Alle Einträge synchronisieren", - "syncUnwatchedItems": "Ungesehene Einträge synchronisieren", + "syncAllItems": "Alle Elemente synchronisieren", + "syncUnwatchedItems": "Ungesehene Elemente synchronisieren", "syncRuleServerContext": "Server: ${server} • ${status}", "syncRuleAvailable": "Verfügbar", "syncRuleOffline": "Offline", "syncRuleSignInRequired": "Anmeldung erforderlich", - "syncRuleNotAvailableForProfile": "Für aktuelles Profil nicht verfügbar", + "syncRuleNotAvailableForProfile": "Für das aktuelle Profil nicht verfügbar", "syncRuleUnknownServer": "Unbekannter Server", - "syncRuleListCreated": "Sync-Regel erstellt" + "syncRuleListCreated": "Synchronisierungsregel erstellt" }, "shaders": { "title": "Shader", @@ -1245,13 +1245,13 @@ "connecting": "Verbinden...", "searchingForDevices": "Suche nach Geräten...", "noDevicesFound": "Keine Geräte in deinem Netzwerk gefunden", - "noDevicesHint": "Öffne Plezy auf dem Desktop und nutze dasselbe WiFi", + "noDevicesHint": "Öffne Plezy auf dem Desktop und nutze dasselbe WLAN", "availableDevices": "Verfügbare Geräte", "manualConnection": "Manuelle Verbindung", "cryptoInitFailed": "Sichere Verbindung konnte nicht gestartet werden. Melde dich zuerst bei Plex an.", "validationHostRequired": "Bitte Host-Adresse eingeben", - "validationHostFormat": "Format muss IP:Port sein (z.B. 192.168.1.100:48632)", - "connectionTimedOut": "Verbindung hat Zeitlimit überschritten. Nutze auf beiden Geräten dasselbe Netzwerk.", + "validationHostFormat": "Format muss IP:Port sein (z. B. 192.168.1.100:48632)", + "connectionTimedOut": "Zeitüberschreitung bei der Verbindung. Nutze auf beiden Geräten dasselbe Netzwerk.", "sessionNotFound": "Gerät nicht gefunden. Stelle sicher, dass Plezy auf dem Host läuft.", "authFailed": "Authentifizierung fehlgeschlagen. Beide Geräte benötigen dasselbe Plex-Konto.", "failedToConnect": "Verbindung fehlgeschlagen: ${error}" @@ -1283,7 +1283,7 @@ "fullscreen": "Vollbild", "subtitles": "Untertitel", "audio": "Audio", - "searchHint": "Auf Desktop suchen..." + "searchHint": "Auf dem Desktop suchen …" }, "errors": { "noNetworkInterface": "Keine Netzwerkschnittstelle gefunden", @@ -1369,8 +1369,8 @@ "metadataEdit": { "editMetadata": "Bearbeiten...", "screenTitle": "Metadaten bearbeiten", - "basicInfo": "Grundlegende Infos", - "artwork": "Artwork", + "basicInfo": "Grundinformationen", + "artwork": "Grafiken", "advancedSettings": "Erweiterte Einstellungen", "title": "Titel", "sortTitle": "Sortiertitel", @@ -1378,7 +1378,7 @@ "releaseDate": "Erscheinungsdatum", "contentRating": "Altersfreigabe", "studio": "Studio", - "tagline": "Tagline", + "tagline": "Slogan", "summary": "Zusammenfassung", "poster": "Poster", "background": "Hintergrund", @@ -1388,19 +1388,19 @@ "selectBackground": "Hintergrund auswählen", "selectLogo": "Logo auswählen", "selectSquareArt": "Quadratisches Bild auswählen", - "fromUrl": "Von URL", + "fromUrl": "Über URL", "uploadFile": "Datei hochladen", "enterImageUrl": "Bild-URL eingeben", "imageUrl": "Bild-URL", "metadataUpdated": "Metadaten aktualisiert", "metadataUpdateFailed": "Metadaten konnten nicht aktualisiert werden", - "artworkUpdated": "Artwork aktualisiert", - "artworkUpdateFailed": "Artwork konnte nicht aktualisiert werden", - "noArtworkAvailable": "Kein Artwork verfügbar", - "artworkOption": "Artwork-Option ${index}", - "selectedArtworkOption": "Artwork-Option ${index}, ausgewählt", + "artworkUpdated": "Grafiken aktualisiert", + "artworkUpdateFailed": "Grafiken konnten nicht aktualisiert werden", + "noArtworkAvailable": "Keine Grafiken verfügbar", + "artworkOption": "Grafikoption ${index}", + "selectedArtworkOption": "Grafikoption ${index}, ausgewählt", "notSet": "Nicht festgelegt", - "libraryDefault": "Bibliotheksstandard", + "libraryDefault": "Mediatheksstandard", "accountDefault": "Kontostandard", "seriesDefault": "Serienstandard", "episodeSorting": "Episodensortierung", @@ -1421,9 +1421,9 @@ "show": "Anzeigen", "hide": "Ausblenden", "episodeOrdering": "Episodenreihenfolge", - "tmdbAiring": "The Movie Database (Ausgestrahlt)", - "tvdbAiring": "TheTVDB (Ausgestrahlt)", - "tvdbAbsolute": "TheTVDB (Absolut)", + "tmdbAiring": "The Movie Database (Ausstrahlung)", + "tvdbAiring": "TheTVDB (Ausstrahlung)", + "tvdbAbsolute": "TheTVDB (absolut)", "metadataLanguage": "Metadaten-Sprache", "useOriginalTitle": "Originaltitel verwenden", "preferredAudioLanguage": "Bevorzugte Audiosprache", @@ -1538,18 +1538,18 @@ "urlCopied": "URL kopiert" }, "libraryFilter": { - "title": "Bibliothekfilter", - "subtitleAllSyncing": "Alle Bibliotheken werden synchronisiert", + "title": "Mediatheksfilter", + "subtitleAllSyncing": "Alle Mediatheken werden synchronisiert", "subtitleNoneSyncing": "Nichts wird synchronisiert", - "subtitleBlocked": "${count} blockiert", - "subtitleAllowed": "${count} erlaubt", + "subtitleBlocked": "${count} ausgeschlossen", + "subtitleAllowed": "${count} zugelassen", "mode": "Filtermodus", - "modeBlacklist": "Blacklist", - "modeWhitelist": "Whitelist", - "modeHintBlacklist": "Alle Bibliotheken außer den unten markierten synchronisieren.", - "modeHintWhitelist": "Nur die unten markierten Bibliotheken synchronisieren.", - "libraries": "Bibliotheken", - "noLibraries": "Keine Bibliotheken verfügbar" + "modeBlacklist": "Ausschlussliste", + "modeWhitelist": "Zulassungsliste", + "modeHintBlacklist": "Alle Mediatheken außer den unten markierten synchronisieren.", + "modeHintWhitelist": "Nur die unten markierten Mediatheken synchronisieren.", + "libraries": "Mediatheken", + "noLibraries": "Keine Mediatheken verfügbar" } }, "addServer": { @@ -1557,7 +1557,7 @@ "serverUrls": "Server-URLs", "serverUrlsHelper": "Mehrere URLs möglich, durch Kommas getrennt.", "findServer": "Server finden", - "searchingLocalServers": "Suche nach lokalen Jellyfin-Servern...", + "searchingLocalServers": "Suche nach lokalen Jellyfin-Servern …", "localServers": "Lokale Jellyfin-Server", "username": "Benutzername", "password": "Passwort", diff --git a/lib/i18n/en.i18n.json b/lib/i18n/en.i18n.json index 1cff67ed..6ccbb3b5 100644 --- a/lib/i18n/en.i18n.json +++ b/lib/i18n/en.i18n.json @@ -29,7 +29,7 @@ "submit": "Submit", "confirm": "Confirm", "retry": "Retry", - "logout": "Logout", + "logout": "Log out", "unknown": "Unknown", "refresh": "Refresh", "yes": "Yes", @@ -242,11 +242,11 @@ "downloadLocationReset": "Download location reset to default", "downloadLocationInvalid": "Selected folder is not writable", "downloadLocationPickerUnavailable": "Folder selection is not available on this device", - "downloadOnWifiOnly": "Download on WiFi only", + "downloadOnWifiOnly": "Download on Wi-Fi only", "downloadOnWifiOnlyDescription": "Prevent downloads when on cellular data", "autoRemoveWatchedDownloads": "Auto-remove watched downloads", "autoRemoveWatchedDownloadsDescription": "Delete watched downloads automatically", - "cellularDownloadBlocked": "Downloads are blocked on cellular. Use WiFi or change the setting.", + "cellularDownloadBlocked": "Downloads are blocked on cellular. Use Wi-Fi or change the setting.", "maxVolume": "Maximum Volume", "maxVolumeDescription": "Allow volume boost above 100% for quiet media", "maxVolumePercent": "${percent}%", @@ -258,7 +258,7 @@ "companionRemoteServer": "Companion Remote Server", "companionRemoteServerDescription": "Allow mobile devices on your network to control this app", "autoPip": "Auto Picture-in-Picture", - "autoPipDescription": "Enter picture-in-picture when leaving during playback", + "autoPipDescription": "Automatically enter picture-in-picture when you leave the app during playback", "matchContentFrameRate": "Match Content Frame Rate", "matchContentFrameRateDescription": "Match display refresh rate to video content", "matchRefreshRate": "Match Refresh Rate", @@ -564,7 +564,7 @@ "playbackAuthenticationRequired": "Sign in to the media server again to play this item.", "playbackServerUnavailable": "The media server is unavailable. Try again later.", "playbackDataInvalid": "The server returned invalid playback information.", - "playbackCancelled": "Playback was cancelled.", + "playbackCancelled": "Playback was canceled.", "playbackFailed": "Playback could not be started.", "errorLoadingFileInfo": "Error loading file info: ${error}", "errorLoadingSeries": "Error loading series", @@ -582,7 +582,7 @@ "metadataRefreshing": "Refreshing metadata for \"${title}\"...", "metadataRefreshStarted": "Metadata refresh started for \"${title}\"", "metadataRefreshFailed": "Failed to refresh metadata: ${error}", - "logoutConfirm": "Are you sure you want to logout?", + "logoutConfirm": "Are you sure you want to log out?", "noSeasonsFound": "No seasons found", "seasonsLoadFailed": "Couldn't load seasons", "noEpisodesFound": "No episodes found in first season", @@ -591,7 +591,7 @@ "noResultsFound": "No results found", "sleepTimerSet": "Sleep timer set for ${label}", "noItemsAvailable": "No items available", - "failedToCreatePlayQueueNoItems": "Failed to create play queue - no items", + "failedToCreatePlayQueueNoItems": "Failed to create a play queue — no items", "failedPlayback": "Failed to ${action}: ${error}", "switchingToCompatiblePlayer": "Switching to compatible player...", "serverLimitTitle": "Playback failed", @@ -980,7 +980,7 @@ "recordingFailed": "Couldn't schedule recording", "recordingTargetMissing": "Couldn't determine recording library", "recordNotAvailable": "Recording not available for this program", - "recordingCancelled": "Recording cancelled", + "recordingCancelled": "Recording canceled", "recordingRuleDeleted": "Recording rule deleted", "processRecordingRules": "Re-evaluate rules", "recordingInProgress": "Recording now", @@ -1124,7 +1124,7 @@ "participantLeft": "${name} left", "participantPaused": "${name} paused", "participantResumed": "${name} resumed", - "participantSeeked": "${name} seeked", + "participantSeeked": "${name} changed the playback position", "participantBuffering": "${name} is buffering", "participantNeedsUpdate": "${name} is on an older app version — sync unavailable", "resumingWithout": "Resuming without ${name}", @@ -1154,11 +1154,11 @@ "episodesQueued": "${count} episodes queued for download", "downloadDeleted": "Download deleted", "deleteConfirm": "Delete \"${title}\" from this device?", - "cancelledDownloadTitle": "Cancelled Download", - "cancelledDownloadMessage": "This download was cancelled. What would you like to do?", + "cancelledDownloadTitle": "Canceled Download", + "cancelledDownloadMessage": "This download was canceled. What would you like to do?", "allEpisodesAlreadyDownloaded": "All episodes already downloaded", "resumeDownload": "Resume download", - "cancelledDownload": "Cancelled download", + "cancelledDownload": "Canceled download", "syncingFile": "${file} (syncing ${status})", "downloadedFileClickToComplete": "Downloaded ${file} - Click to complete", "partialDownloadClickToComplete": "Partially downloaded - Click to complete", @@ -1245,7 +1245,7 @@ "connecting": "Connecting...", "searchingForDevices": "Looking for devices...", "noDevicesFound": "No devices found on your network", - "noDevicesHint": "Open Plezy on desktop and use the same WiFi", + "noDevicesHint": "Open Plezy on desktop and use the same Wi-Fi", "availableDevices": "Available Devices", "manualConnection": "Manual Connection", "cryptoInitFailed": "Couldn't start secure connection. Sign in to Plex first.", @@ -1472,7 +1472,7 @@ "scrobble": "Real-time scrobbling", "scrobbleDescription": "Send play, pause, and stop events to Trakt during playback.", "watchedSync": "Sync watched status", - "watchedSyncDescription": "When you mark items watched in Plezy, mark them on Trakt." + "watchedSyncDescription": "When you mark items as watched in Plezy, they are also marked as watched on Trakt." }, "seerr": { "title": "Seerr", diff --git a/lib/i18n/es.i18n.json b/lib/i18n/es.i18n.json index 37f35ffb..83601554 100644 --- a/lib/i18n/es.i18n.json +++ b/lib/i18n/es.i18n.json @@ -6,7 +6,7 @@ "signInWithPlex": "Inicia sesión con Plex", "showQRCode": "Mostrar código QR", "authenticate": "Autenticar", - "authenticationTimeout": "Tiempo de autenticación agotado. Por favor, intenta de nuevo.", + "authenticationTimeout": "Se agotó el tiempo de autenticación. Inténtalo de nuevo.", "scanQRToSignIn": "Escanea este código QR para iniciar sesión", "waitingForAuth": "Esperando autenticación...\nInicia sesión desde tu navegador.", "useBrowser": "Usar navegador", @@ -17,14 +17,14 @@ "quickConnectWaiting": "Esperando aprobación…", "quickConnectCancel": "Cancelar", "quickConnectExpired": "Quick Connect caducó. Inténtalo de nuevo.", - "localDataRecoveryRequired": "Plezy could not safely recover local sign-in and pending playback data. Please sign in again." + "localDataRecoveryRequired": "Plezy no pudo recuperar de forma segura los datos locales de inicio de sesión ni la reproducción pendiente. Vuelve a iniciar sesión." }, "common": { "cancel": "Cancelar", "save": "Guardar", "close": "Cerrar", "clear": "Borrar", - "reset": "Reiniciar", + "reset": "Restablecer", "later": "Más tarde", "submit": "Enviar", "confirm": "Confirmar", @@ -36,20 +36,20 @@ "no": "No", "delete": "Eliminar", "edit": "Editar", - "shuffle": "Aleatorio", + "shuffle": "Reproducción aleatoria", "addTo": "Añadir a...", "createNew": "Crear", "connect": "Conectar", "disconnect": "Desconectar", "play": "Reproducir", - "pause": "Pausa", + "pause": "Pausar", "resume": "Reanudar", "error": "Error", "search": "Buscar", "home": "Inicio", "back": "Atrás", "settings": "Ajustes", - "mute": "Silencio", + "mute": "Silenciar", "ok": "OK", "off": "Desactivado", "seasonNumber": "Temporada ${number}", @@ -64,14 +64,14 @@ "loading": "Cargando...", "fullscreen": "Pantalla completa", "exitFullscreen": "Salir de pantalla completa", - "pressBackAgainToExit": "Presiona atrás otra vez para salir" + "pressBackAgainToExit": "Pulsa Atrás de nuevo para salir" }, "screens": { "licenses": "Licencias", - "switchProfile": "Cambiar Perfil", - "subtitleStyling": "Estilo de Subtítulos", + "switchProfile": "Cambiar perfil", + "subtitleStyling": "Estilo de subtítulos", "mpvConfig": "mpv.conf", - "logs": "Logs" + "logs": "Registros" }, "update": { "available": "Actualización disponible", @@ -89,56 +89,56 @@ "language": "Idioma", "theme": "Tema", "appearance": "Apariencia", - "videoPlayback": "Reproducción de Video", + "videoPlayback": "Reproducción de video", "videoPlaybackDescription": "Configurar el comportamiento de reproducción", "advanced": "Avanzado", - "episodePosterMode": "Estilo de Póster de Episodio", - "seriesPoster": "Póster de Serie", - "seasonPoster": "Póster de Temporada", + "episodePosterMode": "Estilo del póster de episodio", + "seriesPoster": "Póster de la serie", + "seasonPoster": "Póster de la temporada", "episodeThumbnail": "Miniatura", "showHeroSectionDescription": "Mostrar carrusel de contenido destacado en la pantalla de inicio", "secondsLabel": "Segundos", "minutesLabel": "Minutos", "secondsShort": "s", "minutesShort": "m", - "durationHint": "Ingresa la duración (${min}-${max})", + "durationHint": "Introduce la duración (${min}-${max})", "systemTheme": "Sistema", "lightTheme": "Claro", "darkTheme": "Oscuro", "oledTheme": "OLED", - "libraryDensity": "Densidad de Biblioteca", + "libraryDensity": "Densidad de la biblioteca", "compact": "Compacto", "comfortable": "Cómodo", - "tvCornerSpotlightBackdrop": "", - "tvCornerSpotlightBackdropDescription": "", - "viewMode": "Modo de Vista", + "tvCornerSpotlightBackdrop": "Imagen destacada en la esquina", + "tvCornerSpotlightBackdropDescription": "Mostrar la imagen destacada en la esquina superior derecha en lugar de ocupar toda la pantalla", + "viewMode": "Modo de vista", "gridView": "Cuadrícula", "listView": "Lista", - "showHeroSection": "Mostrar Sección Destacada", - "continueWatchingAction": "Acción de Seguir viendo", + "showHeroSection": "Mostrar sección destacada", + "continueWatchingAction": "Acción de «Seguir viendo»", "continueWatchingPlay": "Reproducir", "continueWatchingDetails": "Abrir detalles", "episodeAction": "Acción de episodio", "episodePlay": "Reproducir", "episodeDetails": "Abrir detalles", - "useGlobalHubs": "Usar diseño de inicio", - "useGlobalHubsDescription": "Mostrar hubs de inicio unificados. Si no, usar recomendaciones de biblioteca.", - "showServerNameOnHubs": "Mostrar Nombre del Servidor en los Hubs", - "showServerNameOnHubsDescription": "Mostrar siempre nombres de servidor en títulos de hub.", + "useGlobalHubs": "Usar secciones de inicio", + "useGlobalHubsDescription": "Mostrar secciones de inicio unificadas. De lo contrario, usar las recomendaciones de cada biblioteca.", + "showServerNameOnHubs": "Mostrar el nombre del servidor en las secciones", + "showServerNameOnHubsDescription": "Mostrar siempre el nombre del servidor en los títulos de las secciones.", "groupLibrariesByServer": "Agrupar bibliotecas por servidor", "groupLibrariesByServerDescription": "Agrupar bibliotecas de la barra lateral por servidor multimedia.", "alwaysKeepSidebarOpen": "Mantener siempre la barra lateral abierta", "alwaysKeepSidebarOpenDescription": "La barra lateral permanece expandida y el área de contenido se ajusta para adaptarse", - "showUnwatchedCount": "Mostrar conteo de no vistos", - "showUnwatchedCountDescription": "Mostrar el conteo de episodios no vistos en series y temporadas", + "showUnwatchedCount": "Mostrar el número de elementos no vistos", + "showUnwatchedCountDescription": "Mostrar el número de episodios no vistos en series y temporadas", "showEpisodeNumberOnCards": "Mostrar número de episodio en las tarjetas", "showEpisodeNumberOnCardsDescription": "Mostrar temporada y episodio en tarjetas de episodio", "showSeasonPostersOnTabs": "Mostrar pósters de temporada en las pestañas", "showSeasonPostersOnTabsDescription": "Mostrar el póster de cada temporada sobre su pestaña", "tvFullCardLayout": "Tarjetas TV completas", "tvFullCardLayoutDescription": "Usar tarjetas TV solo con imagen y nombres de actores superpuestos", - "focusGlow": "Brillo de foco", - "focusGlowDescription": "Mostrar un brillo suave alrededor de la tarjeta con foco", + "focusGlow": "Resplandor de selección", + "focusGlowDescription": "Mostrar un resplandor suave alrededor de la tarjeta seleccionada", "visualEffects": "Efectos visuales", "visualEffectsAuto": "Automático", "visualEffectsAutoDescription": "Reduce automáticamente los efectos en dispositivos de bajo consumo", @@ -147,18 +147,18 @@ "visualEffectsReducedDescription": "Menos animaciones e ilustraciones de menor resolución", "hideSpoilers": "Ocultar spoilers de episodios no vistos", "hideSpoilersDescription": "Desenfocar miniaturas y descripciones de episodios no vistos", - "playerBackend": "Reproductor", + "playerBackend": "Motor de reproducción", "exoPlayer": "ExoPlayer", "mpv": "mpv", - "hardwareDecoding": "Decodificación por Hardware", + "hardwareDecoding": "Decodificación por hardware", "hardwareDecodingDescription": "Usar aceleración por hardware cuando esté disponible", - "bufferSize": "Tamaño del Buffer", - "bufferSizeMB": "${size}MB", - "bufferSizeAuto": "Auto (Recomendado)", - "bufferSizeWarning": "${heap}MB de memoria disponible. Un búfer de ${size}MB puede afectar la reproducción.", + "bufferSize": "Tamaño del búfer", + "bufferSizeMB": "${size} MB", + "bufferSizeAuto": "Automático (recomendado)", + "bufferSizeWarning": "${heap} MB de memoria disponible. Un búfer de ${size} MB puede afectar a la reproducción.", "defaultQualityTitle": "Calidad predeterminada", "musicQualityTitle": "Calidad de música", - "subtitleStyling": "Estilo de Subtítulos", + "subtitleStyling": "Estilo de subtítulos", "subtitleStylingDescription": "Personalizar la apariencia de los subtítulos", "smallSkipDuration": "Salto pequeño", "largeSkipDuration": "Salto grande", @@ -172,32 +172,32 @@ "showChapterMarkersOnTimelineDescription": "Dividir la barra de progreso en los límites de capítulos", "clickVideoTogglesPlayback": "Clic en el video para reproducir/pausar", "clickVideoTogglesPlaybackDescription": "Haz clic en el video para reproducir/pausar en vez de mostrar controles.", - "videoPlayerControls": "Controles del Reproductor de Video", - "keyboardShortcuts": "Atajos de Teclado", + "videoPlayerControls": "Controles del reproductor de video", + "keyboardShortcuts": "Atajos de teclado", "keyboardShortcutsDescription": "Personalizar los atajos de teclado", - "videoPlayerNavigation": "Navegación del Reproductor de Video", + "videoPlayerNavigation": "Navegación del reproductor de video", "videoPlayerNavigationDescription": "Usar las teclas de flecha para navegar por los controles del reproductor", - "watchTogetherRelay": "Relay de Ver Juntos", - "watchTogetherRelayDescription": "Define un relay personalizado. Todos deben usar el mismo servidor.", + "watchTogetherRelay": "Servidor de retransmisión de Ver juntos", + "watchTogetherRelayDescription": "Configura un servidor de retransmisión personalizado. Todos deben usar el mismo servidor.", "watchTogetherRelayHint": "https://mi-relay.ejemplo.com", - "watchTogetherRelayInvalid": "Enter a valid HTTP or HTTPS relay base URL.", - "crashReporting": "Informes de Errores", + "watchTogetherRelayInvalid": "Introduce una URL base HTTP o HTTPS válida para el servidor de retransmisión.", + "crashReporting": "Informes de errores", "crashReportingDescription": "Enviar informes de errores para mejorar la aplicación", - "debugLogging": "Registro de Depuración", - "debugLoggingDescription": "Habilitar registros detallados para resolución de problemas", - "viewLogs": "Ver Logs", + "debugLogging": "Registro de depuración", + "debugLoggingDescription": "Habilitar registros detallados para solucionar problemas", + "viewLogs": "Ver registros", "viewLogsDescription": "Ver los registros de la aplicación", - "clearCache": "Borrar Caché", + "clearCache": "Borrar caché", "clearCacheDescription": "Borrar imágenes y datos en caché. El contenido puede cargar más lento.", "clearCacheSuccess": "Caché borrada con éxito", - "resetSettings": "Restablecer Configuración", + "resetSettings": "Restablecer configuración", "resetSettingsDescription": "Restaurar ajustes predeterminados. No se puede deshacer.", "resetSettingsSuccess": "Configuración restablecida con éxito", "backup": "Copia de seguridad", - "exportSettings": "Exportar Configuración", + "exportSettings": "Exportar configuración", "exportSettingsDescription": "Guardar tus preferencias en un archivo", "exportSettingsSuccess": "Configuración exportada", - "importSettings": "Importar Configuración", + "importSettings": "Importar configuración", "importSettingsDescription": "Restaurar preferencias desde un archivo", "importSettingsConfirm": "Esto reemplazará tu configuración actual. ¿Continuar?", "importSettingsSuccess": "Configuración importada", @@ -211,29 +211,29 @@ "checkForUpdates": "Buscar actualizaciones", "autoCheckUpdatesOnStartup": "Buscar actualizaciones automáticamente al iniciar", "autoCheckUpdatesOnStartupDescription": "Avisar al iniciar si hay una actualización disponible", - "validationErrorEnterNumber": "Por favor, introduce un número válido", + "validationErrorEnterNumber": "Introduce un número válido", "validationErrorDuration": "La duración debe estar entre ${min} y ${max} ${unit}", "shortcutAlreadyAssigned": "El atajo ya está asignado a ${action}", "shortcutUpdated": "Atajo actualizado para ${action}", - "saveFailed": "Could not save changes. Try again.", + "saveFailed": "No se pudieron guardar los cambios. Inténtalo de nuevo.", "autoSkip": "Salto automático", - "autoSkipIntro": "Saltar Intro automáticamente", - "autoSkipIntroDescription": "Saltar automáticamente los marcadores de intro después de unos segundos", - "autoSkipCredits": "Saltar Créditos automáticamente", - "autoSkipCreditsDescription": "Saltar automáticamente los créditos y reproducir el siguiente episodio", + "autoSkipIntro": "Saltar introducción automáticamente", + "autoSkipIntroDescription": "Saltar automáticamente los marcadores de introducción después de unos segundos", + "autoSkipCredits": "Saltar créditos automáticamente", + "autoSkipCreditsDescription": "Saltar automáticamente los créditos y reproducir el episodio siguiente", "forceSkipMarkerFallback": "Forzar marcadores alternativos", "forceSkipMarkerFallbackDescription": "Usar patrones de títulos de capítulos aunque Plex tenga marcadores", - "autoSkipDelay": "Retraso de Salto automático", + "autoSkipDelay": "Retraso del salto automático", "autoSkipDelayDescription": "Esperar ${seconds} segundos antes de saltar automáticamente", - "introPattern": "Patrón de marcador de intro", - "introPatternDescription": "Expresión regular para reconocer marcadores de intro en los títulos de capítulos", + "introPattern": "Patrón de marcador de introducción", + "introPatternDescription": "Expresión regular para reconocer marcadores de introducción en los títulos de los capítulos", "creditsPattern": "Patrón de marcador de créditos", - "creditsPatternDescription": "Expresión regular para reconocer marcadores de créditos en los títulos de capítulos", + "creditsPatternDescription": "Expresión regular para reconocer marcadores de créditos en los títulos de los capítulos", "invalidRegex": "Expresión regular no válida", "regex": "Expresión regular", "downloads": "Descargas", "downloadLocationDescription": "Elegir dónde almacenar el contenido descargado", - "downloadLocationDefault": "Predeterminado (Almacenamiento de la App)", + "downloadLocationDefault": "Predeterminado (almacenamiento de la aplicación)", "downloadLocationCustom": "Ubicación personalizada", "selectFolder": "Seleccionar carpeta", "resetToDefault": "Restablecer al predeterminado", @@ -247,7 +247,7 @@ "autoRemoveWatchedDownloads": "Eliminar descargas vistas automáticamente", "autoRemoveWatchedDownloadsDescription": "Eliminar automáticamente descargas vistas", "cellularDownloadBlocked": "Las descargas están bloqueadas en red móvil. Usa WiFi o cambia el ajuste.", - "maxVolume": "Volumen Máximo", + "maxVolume": "Volumen máximo", "maxVolumeDescription": "Permitir aumento de volumen por encima del 100% para medios con sonido bajo", "maxVolumePercent": "${percent}%", "discordRichPresence": "Presencia de Discord", @@ -258,7 +258,7 @@ "companionRemoteServer": "Servidor de control remoto", "companionRemoteServerDescription": "Permitir que dispositivos móviles en tu red controlen esta aplicación", "autoPip": "Imagen en imagen automática", - "autoPipDescription": "Entrar en picture-in-picture al salir durante la reproducción", + "autoPipDescription": "Activar automáticamente el modo de imagen en imagen al salir de la aplicación durante la reproducción", "matchContentFrameRate": "Ajustar frecuencia de actualización", "matchContentFrameRateDescription": "Ajustar la frecuencia de pantalla al contenido de video", "matchRefreshRate": "Ajustar frecuencia de refresco", @@ -268,9 +268,9 @@ "displaySwitchDelay": "Retraso de cambio de pantalla", "tunneledPlayback": "Reproducción tunelizada", "tunneledPlaybackDescription": "Usar tunelización de video. Desactívala si HDR muestra video negro.", - "audioPassthrough": "Audio Passthrough", - "audioPassthroughDescription": "Envía el audio Dolby/DTS a tu receptor o TV sin recodificar, conservando el sonido envolvente. Desactívalo si no tienes sonido.", - "audioPassthroughDescriptionAppleTv": "Entrega Dolby Digital Plus (incluido Atmos) al sistema como bitstream. DTS y TrueHD se siguen reproduciendo como PCM multicanal. Pueden producirse breves cortes de audio al buscar.", + "audioPassthrough": "Transferencia directa de audio", + "audioPassthroughDescription": "Envía el audio Dolby/DTS a tu receptor o TV sin recodificar, conservando el sonido envolvente. Desactívala si no tienes sonido.", + "audioPassthroughDescriptionAppleTv": "Usa el decodificador Dolby nativo de Apple para Dolby Digital Plus, incluido Atmos. DTS y TrueHD se siguen reproduciendo como PCM multicanal. Desactívalo si no tienes sonido.", "audioDownmix": "Mezclar a estéreo", "audioDownmixDescription": "Mezcla el sonido envolvente a dos canales para altavoces estéreo o auriculares", "downmixCenterBoost": "Realce del canal central", @@ -281,12 +281,12 @@ "audioDownmixNormalizeDescription": "Reduce la mezcla para evitar saturación. Desactívalo para mantener el volumen original (puede distorsionar escenas fuertes).", "atmosDiagnostics": "Prueba de salida Atmos", "atmosDiagnosticsDescription": "Diagnostica la salida Dolby Atmos reproduciendo señales de prueba con el reproductor del sistema", - "atmosTestHlsAtmos": "Stream Atmos de Apple", - "atmosTestHlsAtmosDescription": "Stream Dolby Atmos de referencia. El receptor debería mostrar Dolby Atmos.", - "atmosTestHlsControl": "Stream surround de Apple", - "atmosTestHlsControlDescription": "Stream de control sin Atmos. El receptor debería mostrar surround sin Atmos.", - "atmosTestRawStream": "Stream EAC3 sin procesar", - "atmosTestRawStreamDescription": "Transmite el archivo de prueba igual que la reproducción Atmos del reproductor. Necesita la URL del archivo de prueba.", + "atmosTestHlsAtmos": "Flujo Atmos de Apple", + "atmosTestHlsAtmosDescription": "Flujo Dolby Atmos de referencia. El receptor debería mostrar Dolby Atmos.", + "atmosTestHlsControl": "Flujo envolvente de Apple", + "atmosTestHlsControlDescription": "Flujo de control sin Atmos. El receptor debería indicar sonido envolvente sin Atmos.", + "atmosTestRawStream": "Flujo EAC3 sin procesar", + "atmosTestRawStreamDescription": "Transmite el archivo de prueba igual que durante la reproducción de Atmos. Requiere la URL del archivo de prueba.", "atmosTestRawFile": "Archivo EAC3 sin procesar", "atmosTestRawFileDescription": "Reproduce el archivo de prueba con longitud conocida. Necesita la URL del archivo de prueba.", "atmosTestStop": "Detener prueba", @@ -295,23 +295,23 @@ "atmosTestUrlMissing": "Configura primero la URL del archivo de prueba", "atmosTestStatus": "Estado", "dvConversionMode": "Conversión de Dolby Vision", - "dvConversionModeDescription": "Elige cómo ExoPlayer gestiona archivos Dolby Vision Profile 7.", + "dvConversionModeDescription": "Elige cómo gestiona ExoPlayer los archivos Dolby Vision de perfil 7.", "dvConversionAuto": "Automático", "dvConversionNative": "Nativo / desactivado", "dvConversionDv81": "P7 → P8.1", "dvConversionHevcStrip": "P7 → HEVC", - "dvConversionAutoDescription": "Usar detección de capacidades del dispositivo y el comportamiento de respaldo normal", + "dvConversionAutoDescription": "Usar la detección de capacidades del dispositivo y el comportamiento alternativo normal", "dvConversionNativeDescription": "Forzar DV7 nativo y suprimir el reintento de conversión DV", - "dvConversionDv81Description": "Forzar conversión RPU en línea a Dolby Vision perfil 8.1", - "dvConversionHevcStripDescription": "Quitar capas RPU/EL de Dolby Vision y presentar HEVC normal", - "requireProfileSelectionOnOpen": "Pedir perfil al abrir la app", + "dvConversionDv81Description": "Forzar la conversión de RPU en línea al perfil 8.1 de Dolby Vision", + "dvConversionHevcStripDescription": "Eliminar las capas RPU/EL de Dolby Vision y presentar HEVC convencional", + "requireProfileSelectionOnOpen": "Pedir perfil al abrir la aplicación", "requireProfileSelectionOnOpenDescription": "Mostrar selección de perfil cada vez que se abre la aplicación", "forceTvMode": "Forzar modo TV", "forceTvModeDescription": "Forzar diseño TV. Para dispositivos que no lo detectan. Requiere reinicio.", "startInFullscreen": "Iniciar en pantalla completa", "startInFullscreenDescription": "Abrir Plezy en modo pantalla completa al iniciar", "exitFullscreenOnPlayerClose": "Salir de pantalla completa al cerrar el reproductor", - "exitFullscreenOnPlayerCloseDescription": "Salir automáticamente del modo de pantalla completa al cerrar el reproductor de vídeo", + "exitFullscreenOnPlayerCloseDescription": "Salir automáticamente del modo de pantalla completa al cerrar el reproductor de video", "autoHidePerformanceOverlay": "Ocultar superposición de rendimiento automáticamente", "autoHidePerformanceOverlayDescription": "Desvanecer la superposición de rendimiento con los controles de reproducción", "showNavBarLabels": "Mostrar etiquetas de la barra de navegación", @@ -326,7 +326,7 @@ "content": "Contenido", "player": "Reproductor", "subtitlesAndConfig": "Subtítulos y configuración", - "seekAndTiming": "Búsqueda y tiempo", + "seekAndTiming": "Desplazamiento y tiempos", "behavior": "Comportamiento" }, "search": { @@ -341,44 +341,44 @@ "noShortcutSet": "Sin atajo asignado", "currentShortcut": "Atajo actual:", "pressToRecord": "Seleccionar para grabar un atajo", - "recordingShortcut": "Presiona el atajo ahora", + "recordingShortcut": "Pulsa el atajo ahora", "actions": { - "playPause": "Reproducir/Pausar", - "volumeUp": "Subir Volumen", - "volumeDown": "Bajar Volumen", + "playPause": "Reproducir/pausar", + "volumeUp": "Subir volumen", + "volumeDown": "Bajar volumen", "seekForward": "Avanzar (${seconds}s)", "seekBackward": "Retroceder (${seconds}s)", - "fullscreenToggle": "Alternar Pantalla Completa", - "muteToggle": "Alternar Silencio", - "subtitleToggle": "Alternar Subtítulos", - "audioTrackNext": "Siguiente Pista de Audio", - "subtitleTrackNext": "Siguiente Pista de Subtítulos", - "chapterNext": "Siguiente Capítulo", - "chapterPrevious": "Anterior Capítulo", - "episodeNext": "Siguiente Episodio", - "episodePrevious": "Anterior Episodio", - "speedIncrease": "Aumentar Velocidad", - "speedDecrease": "Disminuir Velocidad", - "speedReset": "Restablecer Velocidad", + "fullscreenToggle": "Alternar pantalla completa", + "muteToggle": "Activar/desactivar silencio", + "subtitleToggle": "Activar/desactivar subtítulos", + "audioTrackNext": "Pista de audio siguiente", + "subtitleTrackNext": "Pista de subtítulos siguiente", + "chapterNext": "Capítulo siguiente", + "chapterPrevious": "Capítulo anterior", + "episodeNext": "Episodio siguiente", + "episodePrevious": "Episodio anterior", + "speedIncrease": "Aumentar velocidad", + "speedDecrease": "Disminuir velocidad", + "speedReset": "Restablecer velocidad", "zoomIn": "Acercar", "zoomOut": "Alejar", "zoomReset": "Restablecer zoom", - "subSeekNext": "Ir al Siguiente Subtítulo", - "subSeekPrev": "Ir al Anterior Subtítulo", - "shaderToggle": "Alternar Shaders", - "skipMarker": "Saltar Intro/Créditos", + "subSeekNext": "Ir al subtítulo siguiente", + "subSeekPrev": "Ir al subtítulo anterior", + "shaderToggle": "Activar/desactivar shaders", + "skipMarker": "Saltar introducción/créditos", "screenshot": "Tomar captura de pantalla" } }, "fileInfo": { - "title": "Información del Archivo", + "title": "Información del archivo", "video": "Video", "audio": "Audio", "file": "Archivo", "advanced": "Avanzado", "codec": "Códec", "resolution": "Resolución", - "bitrate": "Bitrate", + "bitrate": "Tasa de bits", "frameRate": "Frecuencia de fotogramas", "aspectRatio": "Relación de aspecto", "profile": "Perfil", @@ -389,23 +389,23 @@ "chromaSubsampling": "Submuestreo de croma", "channels": "Canales", "subtitles": "Subtítulos", - "overallBitrate": "Bitrate total", + "overallBitrate": "Tasa de bits total", "path": "Ruta", "size": "Tamaño", "container": "Contenedor", "duration": "Duración", - "optimizedForStreaming": "Optimizado para streaming", - "has64bitOffsets": "Offsets de 64 bits" + "optimizedForStreaming": "Optimizado para transmisión", + "has64bitOffsets": "Desplazamientos de 64 bits" }, "mediaMenu": { - "markAsWatched": "Marcar como Visto", - "markAsUnwatched": "Marcar como No Visto", - "removeFromContinueWatching": "Eliminar de Seguir Viendo", + "markAsWatched": "Marcar como visto", + "markAsUnwatched": "Marcar como no visto", + "removeFromContinueWatching": "Eliminar de Seguir viendo", "viewDetails": "Ver detalles", "goToSeries": "Ir a la serie", - "shufflePlay": "Reproducción Aleatoria", + "shufflePlay": "Reproducción aleatoria", "shuffleNotAvailableOffline": "La reproducción aleatoria no está disponible sin conexión", - "fileInfo": "Información del Archivo", + "fileInfo": "Información del archivo", "deleteFromServer": "Eliminar del servidor", "confirmDelete": "¿Eliminar este medio y sus archivos de tu servidor?", "deleteMultipleWarning": "Esto incluye todos los episodios y sus archivos.", @@ -422,7 +422,7 @@ "favorited": "Marcado como favorito", "saved": "Guardado", "notAvailable": "No se encontró coincidencia", - "noConnectedServices": "Conecta un servicio en Configuración para calificar ahí." + "noConnectedServices": "Conecta un servicio en Configuración para valorar el contenido en él." }, "accessibility": { "mediaCardMovie": "${title}, película", @@ -466,26 +466,26 @@ "playsLater": "${label} se reproduce más tarde", "playsEarlier": "${label} se reproduce antes", "noOffset": "Sin desfase", - "letterbox": "Letterbox", + "letterbox": "Con bandas negras", "fillScreen": "Llenar pantalla", "stretch": "Estirar", "lockRotation": "Bloquear rotación", "unlockRotation": "Desbloquear rotación", - "timerActive": "Temporizador Activo", + "timerActive": "Temporizador activo", "playbackWillPauseIn": "La reproducción se pausará en ${duration}", "sleepTimerEndOfVideo": "Fin del video actual", "sleepTimerStopAtHeader": "Detener en", "sleepTimerDurationHeader": "Temporizador", "playbackWillPauseAtEnd": "La reproducción se pausará al final de este video", "stillWatching": "¿Sigues viendo?", - "pausingIn": "Pausa en ${seconds}s", + "pausingIn": "Se pausará en ${seconds}s", "continueWatching": "Continuar", "autoPlayNext": "Reproducir siguiente automáticamente", "playNext": "Reproducir siguiente", "playButton": "Reproducir", - "pauseButton": "Pausa", - "showPlaybackControls": "", - "hidePlaybackControls": "", + "pauseButton": "Pausar", + "showPlaybackControls": "Mostrar controles de reproducción", + "hidePlaybackControls": "Ocultar controles de reproducción", "seekBackwardButton": "Retroceder ${seconds} segundos", "seekForwardButton": "Avanzar ${seconds} segundos", "previousButton": "Episodio anterior", @@ -504,7 +504,7 @@ "qualityPresetLabel": "${resolution}p ${bitrate} Mbps", "transcodeUnavailableFallback": "Transcodificación no disponible — reproduciendo calidad original", "subtitleUnavailableFallback": "No se pudieron cargar los subtítulos seleccionados — continuando sin subtítulos", - "pipButton": "Modo PiP (Imagen en Imagen)", + "pipButton": "Modo de imagen en imagen", "aspectRatioButton": "Relación de aspecto", "ambientLighting": "Iluminación ambiental", "fullscreenButton": "Entrar en pantalla completa", @@ -517,17 +517,17 @@ "timelineSlider": "Línea de tiempo del video", "volumeSlider": "Nivel de volumen", "endsAt": "Termina a las ${time}", - "pipActive": "Reproduciendo en Imagen en Imagen", - "pipFailed": "Error al iniciar Imagen en Imagen", + "pipActive": "Reproduciendo en modo de imagen en imagen", + "pipFailed": "No se pudo iniciar el modo de imagen en imagen", "screenshotSaved": "Captura de pantalla guardada", "zoomPercent": "Zoom ${percent}%", "pipErrors": { "androidVersion": "Requiere Android 8.0 o más reciente", "iosVersion": "Requiere iOS 15.0 o más reciente", - "permissionDisabled": "Picture-in-picture está desactivado. Actívalo en los ajustes del sistema.", - "notSupported": "El dispositivo no soporta el modo Imagen en Imagen", - "voSwitchFailed": "Error al cambiar la salida de video para Imagen en Imagen", - "failed": "Error al iniciar Imagen en Imagen", + "permissionDisabled": "El modo de imagen en imagen está desactivado. Actívalo en los ajustes del sistema.", + "notSupported": "El dispositivo no admite el modo de imagen en imagen", + "voSwitchFailed": "No se pudo cambiar la salida de video para el modo de imagen en imagen", + "failed": "No se pudo iniciar el modo de imagen en imagen", "unknown": "Ocurrió un error: ${error}" }, "chapters": "Capítulos", @@ -561,21 +561,21 @@ "streamInterrupted": "La reproducción se interrumpió. Pulsa reproducir o avanza para volver a intentarlo.", "liveStreamInterrupted": "La transmisión en vivo se interrumpió. Pulsa reproducir para volver a intentarlo.", "fileInfoNotAvailable": "Información de archivo no disponible", - "playbackAuthenticationRequired": "Sign in to the media server again to play this item.", - "playbackServerUnavailable": "The media server is unavailable. Try again later.", - "playbackDataInvalid": "The server returned invalid playback information.", - "playbackCancelled": "Playback was cancelled.", - "playbackFailed": "Playback could not be started.", - "errorLoadingFileInfo": "Error al cargar info de archivo: ${error}", + "playbackAuthenticationRequired": "Vuelve a iniciar sesión en el servidor multimedia para reproducir este elemento.", + "playbackServerUnavailable": "El servidor multimedia no está disponible. Inténtalo de nuevo más tarde.", + "playbackDataInvalid": "El servidor devolvió información de reproducción no válida.", + "playbackCancelled": "Se canceló la reproducción.", + "playbackFailed": "No se pudo iniciar la reproducción.", + "errorLoadingFileInfo": "Error al cargar la información del archivo: ${error}", "errorLoadingSeries": "Error al cargar la serie", - "musicNotSupported": "La reproducción de música aún no está soportada", + "musicNotSupported": "La reproducción de música aún no es compatible", "noDescriptionAvailable": "No hay descripción disponible", "noProfilesAvailable": "No hay perfiles disponibles", "contactAdminForProfiles": "Contacta a tu administrador del servidor para añadir perfiles", "unableToDetermineLibrarySection": "No se puede determinar la sección de biblioteca para este elemento", - "logsCleared": "Logs borrados", - "logsCopied": "Logs copiados al portapapeles", - "noLogsAvailable": "No hay logs disponibles", + "logsCleared": "Registros borrados", + "logsCopied": "Registros copiados al portapapeles", + "noLogsAvailable": "No hay registros disponibles", "libraryScanning": "Escaneando \"${title}\"...", "libraryScanStarted": "Escaneo de biblioteca iniciado para \"${title}\"", "libraryScanFailed": "Error al escanear biblioteca: ${error}", @@ -591,7 +591,7 @@ "noResultsFound": "No se encontraron resultados", "sleepTimerSet": "Temporizador establecido en ${label}", "noItemsAvailable": "No hay elementos disponibles", - "failedToCreatePlayQueueNoItems": "Error al crear la cola de reproducción - no hay elementos", + "failedToCreatePlayQueueNoItems": "No se pudo crear la cola de reproducción: no hay elementos", "failedPlayback": "Error al ${action}: ${error}", "switchingToCompatiblePlayer": "Cambiando a reproductor compatible...", "serverLimitTitle": "Error de reproducción", @@ -604,15 +604,15 @@ "text": "Texto", "border": "Borde", "background": "Fondo", - "fontSize": "Tamaño de Fuente", - "textColor": "Color de Texto", - "borderSize": "Tamaño de Borde", - "borderColor": "Color de Borde", - "backgroundOpacity": "Opacidad de Fondo", - "backgroundColor": "Color de Fondo", + "fontSize": "Tamaño de fuente", + "textColor": "Color del texto", + "borderSize": "Tamaño del borde", + "borderColor": "Color del borde", + "backgroundOpacity": "Opacidad del fondo", + "backgroundColor": "Color del fondo", "position": "Posición", "assOverride": "Sobreescritura ASS", - "overrideScale": "Escalar", + "overrideScale": "Escala", "overrideForce": "Forzar", "overrideStrip": "Quitar estilos", "positionTop": "Arriba", @@ -621,26 +621,26 @@ "italic": "Cursiva", "renderResolution": "Resolución de renderizado", "renderResolutionScreen": "Resolución de pantalla", - "renderResolutionVideo": "Resolución del vídeo" + "renderResolutionVideo": "Resolución del video" }, "mpvConfig": { "title": "Configuración de mpv", "description": "Ajustes avanzados del reproductor de video", - "presets": "Ajustes preestablecidos", - "noPresets": "No hay ajustes guardados", - "saveAsPreset": "Guardar como Ajuste...", - "presetName": "Nombre del Ajuste", - "presetNameHint": "Introduce un nombre para este ajuste", + "presets": "Preajustes", + "noPresets": "No hay preajustes guardados", + "saveAsPreset": "Guardar como preajuste...", + "presetName": "Nombre del preajuste", + "presetNameHint": "Introduce un nombre para este preajuste", "loadPreset": "Cargar", "deletePreset": "Eliminar", - "presetSaved": "Ajuste guardado", - "presetLoaded": "Ajuste cargado", - "presetDeleted": "Ajuste eliminado", - "confirmDeletePreset": "¿Estás seguro de que quieres eliminar este ajuste?", + "presetSaved": "Preajuste guardado", + "presetLoaded": "Preajuste cargado", + "presetDeleted": "Preajuste eliminado", + "confirmDeletePreset": "¿Estás seguro de que quieres eliminar este preajuste?", "configPlaceholder": "gpu-api=vulkan\nhwdec=auto\n# comment" }, "dialog": { - "confirmAction": "Confirmar Acción" + "confirmAction": "Confirmar acción" }, "profiles": { "addPlezyProfile": "Añadir perfil de Plezy", @@ -683,12 +683,12 @@ "connectionAs": "como ${displayName}", "makeDefault": "Establecer como predeterminada", "removeConnection": "Eliminar", - "profileRenamed": "Perfil renombrado.", + "profileRenamed": "Se cambió el nombre del perfil.", "borrowAddTo": "Añadir a ${displayName}", "borrowExplain": "Toma prestada la conexión de otro perfil. Los perfiles protegidos con PIN requieren un PIN.", - "borrowEmpty": "Nada para tomar prestado todavía.", - "borrowEmptySubtitle": "Conecta Plex o Jellyfin primero a otro perfil.", - "borrowLoadFailed": "Available connections could not be loaded. Try again.", + "borrowEmpty": "Todavía no hay ninguna conexión que tomar prestada.", + "borrowEmptySubtitle": "Conecta primero Plex o Jellyfin a otro perfil.", + "borrowLoadFailed": "No se pudieron cargar las conexiones disponibles. Inténtalo de nuevo.", "borrowFromProfile": "De ${displayName}", "borrowConnectionBorrowed": "Conexión tomada prestada.", "borrowFailed": "No se pudo tomar prestada la conexión.", @@ -698,7 +698,7 @@ "failedToLoadHomeUsers": "No se pudieron cargar tus usuarios de Plex Home. Comprueba tu conexión e inténtalo de nuevo.", "failedToVerifyPin": "No se pudo verificar el PIN.", "newProfile": "Nuevo perfil", - "profileNameHint": "p. ej. Invitados, Niños, Sala familiar", + "profileNameHint": "p. ej., Invitados, Niños, Sala familiar", "pinProtectionOptional": "Protección con PIN (opcional)", "pinExplain": "Se requiere PIN de 4 dígitos para cambiar de perfil.", "continueButton": "Continuar", @@ -713,13 +713,13 @@ "sessionExpiredMany": "Sesión caducada para ${count} servidores", "signInAgain": "Iniciar sesión de nuevo", "editJellyfinTitle": "Editar conexión de Jellyfin", - "editJellyfinIntro": "Añade o elimina URL para ${serverName}. Plezy usará la URL accesible con menor latencia." + "editJellyfinIntro": "Añade o elimina direcciones URL para ${serverName}. Plezy usará la dirección accesible con menor latencia." }, "discover": { "title": "Descubrir", "noContentAvailable": "No hay contenido disponible", "addMediaToLibraries": "Añade contenido a tus bibliotecas", - "continueWatching": "Seguir Viendo", + "continueWatching": "Seguir viendo", "continueWatchingIn": "Seguir viendo en ${library}", "nextUp": "A continuación", "nextUpIn": "A continuación en ${library}", @@ -731,13 +731,13 @@ "playEpisode": "T${season}E${episode}", "overview": "Resumen", "cast": "Reparto", - "extras": "Tráilers y Extras", + "extras": "Tráilers y extras", "studio": "Estudio", - "rating": "Calificación", + "rating": "Valoración", "movie": "Película", "tvShow": "Serie de TV", "minutesLeft": "quedan ${minutes} min", - "moreLikeThis": "Más como esto" + "moreLikeThis": "Más contenido similar" }, "errors": { "searchFailed": "Error en la búsqueda: ${error}", @@ -745,22 +745,22 @@ "connectionFailed": "No se puede conectar al servidor multimedia", "unableToLoad": "No se pudo cargar ${context}. Inténtalo de nuevo.", "noClientAvailable": "No hay cliente disponible", - "pleaseEnterToken": "Por favor, introduce un token", + "pleaseEnterToken": "Introduce un token", "invalidToken": "Token no válido", "failedToVerifyToken": "Error al verificar el token: ${error}", "failedToSwitchProfile": "Error al cambiar al perfil ${displayName}", "failedToDeleteProfile": "Error al eliminar ${displayName}", - "failedToRate": "No se pudo actualizar la calificación" + "failedToRate": "No se pudo actualizar la valoración" }, "libraries": { "title": "Bibliotecas", "fallbackTitle": "Biblioteca", - "scanLibraryFiles": "Escanear Archivos de la Biblioteca", - "scanLibrary": "Escanear Biblioteca", + "scanLibraryFiles": "Escanear archivos de la biblioteca", + "scanLibrary": "Escanear biblioteca", "analyze": "Analizar", - "analyzeLibrary": "Analizar Biblioteca", - "refreshMetadata": "Actualizar Metadatos", - "emptyTrash": "Vaciar Papelera", + "analyzeLibrary": "Analizar biblioteca", + "refreshMetadata": "Actualizar metadatos", + "emptyTrash": "Vaciar papelera", "emptyingTrash": "Vaciando papelera de \"${title}\"...", "trashEmptied": "Papelera vaciada para \"${title}\"", "failedToEmptyTrash": "Error al vaciar papelera: ${error}", @@ -774,12 +774,12 @@ "noItemsMatchFilters": "Ningún elemento coincide con los filtros activos", "resetFilters": "Restablecer filtros", "all": "Todos", - "clearAll": "Borrar Todo", + "clearAll": "Borrar todo", "scanLibraryConfirm": "¿Estás seguro de que quieres escanear \"${title}\"?", "analyzeLibraryConfirm": "¿Estás seguro de que quieres analizar \"${title}\"?", "refreshMetadataConfirm": "¿Estás seguro de que quieres actualizar los metadatos de \"${title}\"?", "emptyTrashConfirm": "¿Estás seguro de que quieres vaciar la papelera de \"${title}\"?", - "manageLibraries": "Gestionar Bibliotecas", + "manageLibraries": "Gestionar bibliotecas", "sort": "Ordenar", "sortBy": "Ordenar por", "filters": "Filtros", @@ -798,7 +798,7 @@ "recommended": "Recomendado", "browse": "Explorar", "collections": "Colecciones", - "playlists": "Listas" + "playlists": "Listas de reproducción" }, "groupings": { "title": "Agrupación", @@ -815,10 +815,10 @@ "filterCategories": { "genre": "Género", "year": "Año", - "contentRating": "Clasificación", + "contentRating": "Clasificación por edad", "tag": "Etiqueta", "unwatched": "No vistos", - "unplayed": "No reproducido", + "unplayed": "No reproducidos", "favorites": "Favoritos" }, "sortLabels": { @@ -826,30 +826,30 @@ "dateAdded": "Fecha de adición", "releaseDate": "Fecha de estreno", "rating": "Valoración", - "communityRating": "Calificación de comunidad", - "criticRating": "Calificación de crítica", - "userRating": "Calificación del usuario", + "communityRating": "Valoración de la comunidad", + "criticRating": "Valoración de la crítica", + "userRating": "Valoración del usuario", "datePlayed": "Fecha de reproducción", "playCount": "Reproducciones", "productionYear": "Año de producción", "runtime": "Duración", - "officialRating": "Calificación oficial", + "officialRating": "Clasificación oficial", "premiereDate": "Fecha de estreno", "startDate": "Fecha de inicio", "airTime": "Hora de emisión", "studio": "Estudio", "random": "Aleatorio", - "dateShared": "Fecha de compartición", - "latestEpisodeAirDate": "Última fecha de emisión del episodio", - "lastEpisodeDateAdded": "Fecha de adición del último episodio" + "dateShared": "Fecha en que se compartió", + "latestEpisodeAirDate": "Fecha de emisión del episodio más reciente", + "lastEpisodeDateAdded": "Fecha en que se añadió el último episodio" } }, "about": { "title": "Acerca de", - "openSourceLicenses": "Licencias de Código Abierto", + "openSourceLicenses": "Licencias de código abierto", "versionLabel": "Versión ${version}", "appDescription": "Un cliente de Plex y Jellyfin para Flutter", - "viewLicensesDescription": "Ver licencias de librerías de terceros" + "viewLicensesDescription": "Ver las licencias de bibliotecas de terceros" }, "serverSelection": { "noServersFoundForAccount": "No se encontraron servidores para ${username} (${email})", @@ -859,12 +859,12 @@ "title": "Título", "releaseYear": "Año de lanzamiento", "dateAdded": "Añadido el", - "rating": "Calificación", + "rating": "Valoración", "noItemsFound": "No se encontraron elementos" }, "logs": { - "clearLogs": "Borrar Logs", - "copyLogs": "Copiar Logs", + "clearLogs": "Borrar registros", + "copyLogs": "Copiar registros", "uploadLogs": "Subir registros" }, "licenses": { @@ -874,7 +874,7 @@ "licensesCount": "${count} licencias" }, "navigation": { - "libraries": "Medios", + "libraries": "Bibliotecas", "downloads": "Descargas", "liveTv": "TV en vivo", "explore": "Explorar" @@ -928,8 +928,8 @@ "guide": "Guía", "noChannels": "No hay canales disponibles", "noDvr": "No hay DVR configurado en ningún servidor", - "serverUnavailable": "El servidor de TV en directo no está disponible.", - "serverNotConnected": "El servidor de TV en directo no está conectado.", + "serverUnavailable": "El servidor de TV en vivo no está disponible.", + "serverNotConnected": "El servidor de TV en vivo no está conectado.", "noPrograms": "No hay datos de programación disponibles", "liveStreamFailed": "Falló la transmisión en vivo", "unknownProgram": "Programa desconocido", @@ -953,11 +953,11 @@ "favorites": "Favoritos", "reorderFavorites": "Reordenar favoritos", "favoritesLoadFailed": "No se pudieron cargar los favoritos. Comprueba tu conexión e inténtalo de nuevo.", - "favoritesUpdateFailed": "Could not update favorites. Check your connection and try again.", + "favoritesUpdateFailed": "No se pudieron actualizar los favoritos. Comprueba tu conexión e inténtalo de nuevo.", "joinSession": "Unirse a sesión en curso", "watchFromStart": "Ver desde el inicio (hace ${minutes} min)", "watchLive": "Ver en vivo", - "goToLive": "Ir a en vivo", + "goToLive": "Ir a la emisión en vivo", "record": "Grabar", "recordEpisode": "Grabar episodio", "recordSeries": "Grabar serie", @@ -996,13 +996,13 @@ "title": "Colecciones", "collection": "Colección", "empty": "La colección está vacía", - "deleteCollection": "Eliminar Colección", + "deleteCollection": "Eliminar colección", "deleteConfirm": "¿Eliminar \"${title}\"? No se puede deshacer.", "deleted": "Colección eliminada", "deleteFailed": "Error al eliminar la colección", "deleteFailedWithError": "Error al eliminar la colección: ${error}", - "selectCollection": "Seleccionar Colección", - "collectionName": "Nombre de la Colección", + "selectCollection": "Seleccionar colección", + "collectionName": "Nombre de la colección", "enterCollectionName": "Introduce el nombre de la colección", "addedToCollection": "Añadido a la colección", "errorAddingToCollection": "Error al añadir a la colección", @@ -1018,29 +1018,29 @@ "title": "Listas de reproducción", "playlist": "Lista de reproducción", "noPlaylists": "No se encontraron listas de reproducción", - "create": "Crear Lista de Reproducción", - "playlistName": "Nombre de la Lista", - "enterPlaylistName": "Introduce el nombre de la lista", - "delete": "Eliminar Lista", - "removeItem": "Eliminar de la Lista", - "smartPlaylist": "Lista Inteligente", + "create": "Crear lista de reproducción", + "playlistName": "Nombre de la lista de reproducción", + "enterPlaylistName": "Introduce el nombre de la lista de reproducción", + "delete": "Eliminar lista de reproducción", + "removeItem": "Eliminar de la lista de reproducción", + "smartPlaylist": "Lista de reproducción inteligente", "itemCount": "${count} elementos", "oneItem": "1 elemento", - "emptyPlaylist": "Esta lista está vacía", - "deleteConfirm": "¿Eliminar Lista de Reproducción?", + "emptyPlaylist": "Esta lista de reproducción está vacía", + "deleteConfirm": "¿Eliminar lista de reproducción?", "deleteMessage": "¿Estás seguro de que quieres eliminar \"${name}\"?", "created": "Lista de reproducción creada", "deleted": "Lista de reproducción eliminada", - "itemAdded": "Añadido a la lista", - "itemRemoved": "Eliminado de la lista", - "selectPlaylist": "Seleccionar Lista", - "searchPlaylists": "Buscar listas...", - "errorCreating": "Error al crear la lista", - "errorDeleting": "Error al eliminar la lista", - "errorLoading": "Error al cargar las listas", - "errorAdding": "Error al añadir a la lista", - "errorReordering": "Error al reordenar los elementos de la lista", - "errorRemoving": "Error al eliminar de la lista" + "itemAdded": "Añadido a la lista de reproducción", + "itemRemoved": "Eliminado de la lista de reproducción", + "selectPlaylist": "Seleccionar lista de reproducción", + "searchPlaylists": "Buscar listas de reproducción...", + "errorCreating": "Error al crear la lista de reproducción", + "errorDeleting": "Error al eliminar la lista de reproducción", + "errorLoading": "Error al cargar las listas de reproducción", + "errorAdding": "Error al añadir a la lista de reproducción", + "errorReordering": "Error al reordenar el elemento de la lista de reproducción", + "errorRemoving": "Error al eliminar de la lista de reproducción" }, "music": { "goToAlbum": "Ir al álbum", @@ -1070,20 +1070,20 @@ "repeatOne": "Repetir una" }, "watchTogether": { - "title": "Ver Juntos", - "description": "Mira contenido en sincronía con amigos y familiares", - "createSession": "Crear Sesión", + "title": "Ver juntos", + "description": "Mira contenido sincronizado con amigos y familiares", + "createSession": "Crear sesión", "creating": "Creando...", - "joinSession": "Unirse a Sesión", - "joining": "Uniendo...", - "controlMode": "Modo de Control", + "joinSession": "Unirse a una sesión", + "joining": "Conectando...", + "controlMode": "Modo de control", "controlModeQuestion": "¿Quién puede controlar la reproducción?", - "hostOnly": "Solo el Anfitrión", + "hostOnly": "Solo el anfitrión", "anyone": "Cualquiera", - "hostingSession": "Anfitrión de la Sesión", - "inSession": "En Sesión", - "sessionCode": "Código de Sesión", - "openSessionControls": "Abrir los controles de la sesión de Ver Juntos", + "hostingSession": "Sesión alojada", + "inSession": "En una sesión", + "sessionCode": "Código de sesión", + "openSessionControls": "Abrir los controles de la sesión de Ver juntos", "copySessionCode": "Copiar código de sesión", "hostControlsPlayback": "El anfitrión controla la reproducción", "anyoneCanControl": "Cualquiera puede controlar la reproducción", @@ -1093,28 +1093,28 @@ "host": "Anfitrión", "hostBadge": "ANFITRIÓN", "youAreHost": "Eres el anfitrión", - "watchingWithOthers": "Viendo con otros", - "endSession": "Finalizar Sesión", - "leaveSession": "Salir de la Sesión", - "endSessionQuestion": "¿Finalizar Sesión?", - "leaveSessionQuestion": "¿Salir de la Sesión?", + "watchingWithOthers": "Viendo contenido con otras personas", + "endSession": "Finalizar sesión", + "leaveSession": "Salir de la sesión", + "endSessionQuestion": "¿Finalizar la sesión?", + "leaveSessionQuestion": "¿Salir de la sesión?", "endSessionConfirm": "Esto finalizará la sesión para todos los participantes.", - "leaveSessionConfirm": "Serás eliminado de la sesión.", - "endSessionConfirmOverlay": "Esto finalizará la sesión de visualización para todos los participantes.", - "leaveSessionConfirmOverlay": "Serás desconectado de la sesión de visualización.", + "leaveSessionConfirm": "Saldrás de la sesión.", + "endSessionConfirmOverlay": "Esto finalizará la sesión de reproducción para todos los participantes.", + "leaveSessionConfirmOverlay": "Te desconectarás de la sesión de reproducción.", "end": "Finalizar", "leave": "Salir", "syncing": "Sincronizando...", - "joinWatchSession": "Unirse a Sesión de Visualización", + "joinWatchSession": "Unirse a una sesión de reproducción", "enterCodeHint": "Introduce el código de 5 caracteres", "pasteFromClipboard": "Pegar desde el portapapeles", - "pleaseEnterCode": "Por favor, introduce un código de sesión", + "pleaseEnterCode": "Introduce un código de sesión", "codeMustBe5Chars": "El código de sesión debe tener 5 caracteres", "joinInstructions": "Introduce el código de sesión del anfitrión para unirte.", "failedToCreate": "Error al crear la sesión", "failedToJoin": "Error al unirse a la sesión", "sessionCodeCopied": "Código de sesión copiado al portapapeles", - "relayUnreachable": "Servidor relay inaccesible. El bloqueo del ISP puede impedir Watch Together.", + "relayUnreachable": "No se puede acceder al servidor de retransmisión. Es posible que tu proveedor de internet esté bloqueando Ver juntos.", "reconnectingToHost": "Reconectando con el anfitrión...", "currentPlayback": "Reproducción actual", "joinCurrentPlayback": "Unirse a la reproducción actual", @@ -1124,11 +1124,11 @@ "participantLeft": "${name} se fue", "participantPaused": "${name} pausó", "participantResumed": "${name} reanudó", - "participantSeeked": "${name} avanzó", - "participantBuffering": "${name} está cargando", - "participantNeedsUpdate": "${name} usa una versión anterior de la app — sincronización no disponible", + "participantSeeked": "${name} cambió la posición de reproducción", + "participantBuffering": "${name} está almacenando en búfer", + "participantNeedsUpdate": "${name} usa una versión anterior de la aplicación — sincronización no disponible", "resumingWithout": "Reanudando sin ${name}", - "waitingForParticipants": "Esperando a que otros carguen...", + "waitingForParticipants": "Esperando a que los demás carguen el contenido...", "waitingForName": "Esperando a ${name}...", "recentRooms": "Salas recientes", "renameRoom": "Renombrar sala", @@ -1150,7 +1150,7 @@ "retryDownload": "Reintentar descarga", "downloadQueued": "Descarga en cola", "downloadResumed": "Descarga reanudada", - "serverErrorBitrate": "Error del servidor: el archivo puede superar el límite de bitrate remoto", + "serverErrorBitrate": "Error del servidor: el archivo puede superar el límite remoto de tasa de bits", "episodesQueued": "${count} episodios en cola para descargar", "downloadDeleted": "Descarga eliminada", "deleteConfirm": "¿Eliminar \"${title}\" de este dispositivo?", @@ -1182,11 +1182,11 @@ "invalidEpisodeCount": "Introduce un número de episodios válido.", "keepSynced": "Mantener sincronizado", "downloadOnce": "Descargar una vez", - "keepNUnwatched": "Mantener ${count} sin ver", + "keepNUnwatched": "Mantener ${count} no vistos", "editSyncRule": "Editar regla de sincronización", "removeSyncRule": "Eliminar regla de sincronización", "removeSyncRuleConfirm": "¿Dejar de sincronizar \"${title}\"? Los episodios descargados se conservarán.", - "syncRuleCreated": "Regla de sincronización creada — conservando ${count} episodios sin ver", + "syncRuleCreated": "Regla de sincronización creada — se conservarán ${count} episodios no vistos", "syncRuleUpdated": "Regla de sincronización actualizada", "syncRuleRemoved": "Regla de sincronización eliminada", "syncedNewEpisodes": "${count} nuevos episodios sincronizados para ${title}", @@ -1213,7 +1213,7 @@ "artcnnVariantDenoise": "Reducción de ruido", "artcnnVariantDenoiseSharpen": "Reducción de ruido + enfoque", "qualityFast": "Rápido", - "qualityHQ": "Alta Calidad", + "qualityHQ": "Alta calidad", "mode": "Modo", "importShader": "Importar shader", "customShaderDescription": "Shader GLSL personalizado", @@ -1232,7 +1232,7 @@ "connected": "Conectado", "serverRunning": "Servidor remoto activo", "serverStopped": "Servidor remoto detenido", - "serverRunningDescription": "Los dispositivos móviles de tu red pueden conectarse a esta app", + "serverRunningDescription": "Los dispositivos móviles de tu red pueden conectarse a esta aplicación", "serverStoppedDescription": "Inicia el servidor para permitir que los dispositivos móviles se conecten", "usePhoneToControl": "Usa tu dispositivo móvil para controlar esta aplicación", "startServer": "Iniciar servidor", @@ -1245,12 +1245,12 @@ "connecting": "Conectando...", "searchingForDevices": "Buscando dispositivos...", "noDevicesFound": "No se encontraron dispositivos en tu red", - "noDevicesHint": "Abre Plezy en escritorio y usa el mismo WiFi", + "noDevicesHint": "Abre Plezy en tu equipo y usa la misma red WiFi", "availableDevices": "Dispositivos disponibles", "manualConnection": "Conexión manual", "cryptoInitFailed": "No se pudo iniciar la conexión segura. Inicia sesión en Plex primero.", - "validationHostRequired": "Ingresa la dirección del host", - "validationHostFormat": "El formato debe ser IP:puerto (ej. 192.168.1.100:48632)", + "validationHostRequired": "Introduce la dirección del host", + "validationHostFormat": "El formato debe ser IP:puerto (p. ej., 192.168.1.100:48632)", "connectionTimedOut": "Tiempo de conexión agotado. Usa la misma red en ambos dispositivos.", "sessionNotFound": "Dispositivo no encontrado. Asegúrate de que Plezy esté en ejecución en el host.", "authFailed": "Autenticación fallida. Ambos dispositivos necesitan la misma cuenta Plex.", @@ -1307,7 +1307,7 @@ "hdr": "HDR", "audioOutput": "Salida de audio", "performanceOverlay": "Indicador de rendimiento", - "audioPassthrough": "Audio Passthrough", + "audioPassthrough": "Transferencia directa de audio", "audioNormalization": "Normalizar volumen", "audioDownmix": "Mezclar a estéreo" }, @@ -1317,7 +1317,7 @@ "buffer": "Búfer", "app": "App", "decoder": "Decodificador", - "rawDecoder": "Decodificador raw", + "rawDecoder": "Decodificador sin procesar", "tunneling": "Túnel", "aspect": "Aspecto", "rotation": "Rotación", @@ -1351,7 +1351,7 @@ "externalPlayer": { "title": "Reproductor externo", "useExternalPlayer": "Usar reproductor externo", - "useExternalPlayerDescription": "Abrir videos en otra app", + "useExternalPlayerDescription": "Abrir videos en otra aplicación", "selectPlayer": "Seleccionar reproductor", "customPlayers": "Reproductores personalizados", "systemDefault": "Predeterminado del sistema", @@ -1370,7 +1370,7 @@ "editMetadata": "Editar...", "screenTitle": "Editar metadatos", "basicInfo": "Información básica", - "artwork": "Artwork", + "artwork": "Imágenes", "advancedSettings": "Ajustes avanzados", "title": "Título", "sortTitle": "Título de ordenación", @@ -1394,9 +1394,9 @@ "imageUrl": "URL de imagen", "metadataUpdated": "Metadatos actualizados", "metadataUpdateFailed": "Error al actualizar los metadatos", - "artworkUpdated": "Artwork actualizado", - "artworkUpdateFailed": "Error al actualizar el artwork", - "noArtworkAvailable": "No hay artwork disponible", + "artworkUpdated": "Imágenes actualizadas", + "artworkUpdateFailed": "Error al actualizar las imágenes", + "noArtworkAvailable": "No hay imágenes disponibles", "artworkOption": "Opción de imagen ${index}", "selectedArtworkOption": "Opción de imagen ${index}, seleccionada", "notSet": "No establecido", @@ -1445,14 +1445,14 @@ "mood": "Estado de ánimo" }, "matchScreen": { - "match": "Emparejar...", - "fixMatch": "Corregir coincidencia...", - "unmatch": "Desvincular", - "unmatchConfirm": "¿Borrar esta coincidencia? Plex lo tratará como no coincidente hasta reasignarlo.", - "unmatchSuccess": "Elemento desvinculado", - "unmatchFailed": "No se pudo desvincular el elemento", - "matchApplied": "Coincidencia aplicada", - "matchFailed": "No se pudo aplicar la coincidencia", + "match": "Asociar...", + "fixMatch": "Corregir asociación...", + "unmatch": "Desasociar", + "unmatchConfirm": "¿Borrar esta asociación? Plex tratará el elemento como no asociado hasta que vuelvas a asociarlo.", + "unmatchSuccess": "Elemento desasociado", + "unmatchFailed": "No se pudo desasociar el elemento", + "matchApplied": "Asociación aplicada", + "matchFailed": "No se pudo aplicar la asociación", "titleHint": "Título", "yearHint": "Año", "search": "Buscar", @@ -1471,8 +1471,8 @@ "disconnectConfirmBody": "Plezy dejará de enviar eventos a Trakt. Puedes reconectar cuando quieras.", "scrobble": "Scrobbling en tiempo real", "scrobbleDescription": "Enviar eventos de reproducción, pausa y parada a Trakt durante la reproducción.", - "watchedSync": "Sincronizar estado de visto", - "watchedSyncDescription": "Cuando marques elementos como vistos en Plezy, también se marcarán en Trakt." + "watchedSync": "Sincronizar el estado de visualización", + "watchedSyncDescription": "Cuando marques contenido como visto en Plezy, también se marcará como visto en Trakt." }, "seerr": { "title": "Seerr", @@ -1540,21 +1540,21 @@ "libraryFilter": { "title": "Filtro de bibliotecas", "subtitleAllSyncing": "Sincronizando todas las bibliotecas", - "subtitleNoneSyncing": "Nada se sincroniza", + "subtitleNoneSyncing": "No se sincroniza ninguna biblioteca", "subtitleBlocked": "${count} bloqueadas", "subtitleAllowed": "${count} permitidas", "mode": "Modo de filtro", - "modeBlacklist": "Lista negra", - "modeWhitelist": "Lista blanca", - "modeHintBlacklist": "Sincronizar todas las bibliotecas excepto las marcadas abajo.", - "modeHintWhitelist": "Sincronizar solo las bibliotecas marcadas abajo.", + "modeBlacklist": "Lista de exclusión", + "modeWhitelist": "Lista de inclusión", + "modeHintBlacklist": "Sincronizar todas las bibliotecas excepto las seleccionadas abajo.", + "modeHintWhitelist": "Sincronizar solo las bibliotecas seleccionadas abajo.", "libraries": "Bibliotecas", "noLibraries": "No hay bibliotecas disponibles" } }, "addServer": { "addJellyfinTitle": "Añadir servidor Jellyfin", - "serverUrls": "URL del servidor", + "serverUrls": "Direcciones URL del servidor", "serverUrlsHelper": "Se permiten varias URL, separadas por comas.", "findServer": "Buscar servidor", "searchingLocalServers": "Buscando servidores Jellyfin locales...", diff --git a/lib/i18n/fr.i18n.json b/lib/i18n/fr.i18n.json index d2f97848..f9e2f855 100644 --- a/lib/i18n/fr.i18n.json +++ b/lib/i18n/fr.i18n.json @@ -3,8 +3,8 @@ "title": "Plezy" }, "auth": { - "signInWithPlex": "S'inscrire avec Plex", - "showQRCode": "Afficher le QR Code", + "signInWithPlex": "Se connecter avec Plex", + "showQRCode": "Afficher le code QR", "authenticate": "S'authentifier", "authenticationTimeout": "Délai d'authentification expiré. Veuillez réessayer.", "scanQRToSignIn": "Scannez ce QR code pour vous connecter", @@ -17,13 +17,13 @@ "quickConnectWaiting": "En attente d'approbation…", "quickConnectCancel": "Annuler", "quickConnectExpired": "Quick Connect a expiré. Réessayez.", - "localDataRecoveryRequired": "Plezy could not safely recover local sign-in and pending playback data. Please sign in again." + "localDataRecoveryRequired": "Plezy n’a pas pu récupérer en toute sécurité les données locales de connexion et de lecture en attente. Veuillez vous reconnecter." }, "common": { "cancel": "Annuler", - "save": "Sauvegarder", + "save": "Enregistrer", "close": "Fermer", - "clear": "Nettoyer", + "clear": "Effacer", "reset": "Réinitialiser", "later": "Plus tard", "submit": "Soumettre", @@ -31,36 +31,36 @@ "retry": "Réessayer", "logout": "Se déconnecter", "unknown": "Inconnu", - "refresh": "Rafraichir", + "refresh": "Rafraîchir", "yes": "Oui", "no": "Non", "delete": "Supprimer", "edit": "Modifier", "shuffle": "Mélanger", - "addTo": "Ajouter à...", + "addTo": "Ajouter à…", "createNew": "Créer", - "connect": "Connecter", - "disconnect": "Déconnecter", + "connect": "Se connecter", + "disconnect": "Se déconnecter", "play": "Lire", "pause": "Pause", "resume": "Reprendre", "error": "Erreur", - "search": "Recherche", + "search": "Rechercher", "home": "Accueil", "back": "Retour", - "settings": "Réglages", - "mute": "Muet", + "settings": "Paramètres", + "mute": "Couper le son", "ok": "OK", "off": "Désactivé", "seasonNumber": "Saison ${number}", - "episodeNumberTitle": "Épisode ${number} - ${title}", + "episodeNumberTitle": "Épisode ${number} – ${title}", "chapterNumber": "Chapitre ${number}", - "reconnect": "Reconnecter", + "reconnect": "Se reconnecter", "viewAll": "Tout afficher", "checkingNetwork": "Vérification du réseau...", "loadingServers": "Chargement des serveurs...", "connectingToServers": "Connexion aux serveurs...", - "startingOfflineMode": "Démarrage en mode hors-ligne...", + "startingOfflineMode": "Démarrage en mode hors ligne…", "loading": "Chargement...", "fullscreen": "Plein écran", "exitFullscreen": "Quitter le plein écran", @@ -71,14 +71,14 @@ "switchProfile": "Changer de profil", "subtitleStyling": "Configuration des sous-titres", "mpvConfig": "mpv.conf", - "logs": "Logs" + "logs": "Journaux" }, "update": { "available": "Mise à jour disponible", "versionAvailable": "Version ${version} disponible", - "currentVersion": "Installé: ${version}", + "currentVersion": "Actuelle : ${version}", "skipVersion": "Ignorer cette version", - "viewRelease": "Voir la Release", + "viewRelease": "Voir les notes de version", "latestVersion": "Vous utilisez la dernière version", "checkFailed": "Échec de la vérification des mises à jour" }, @@ -92,16 +92,16 @@ "videoPlayback": "Lecture vidéo", "videoPlaybackDescription": "Configurer le comportement de lecture", "advanced": "Avancé", - "episodePosterMode": "Style du Poster d'épisode", - "seriesPoster": "Poster de série", - "seasonPoster": "Poster de saison", + "episodePosterMode": "Style de l’affiche de l’épisode", + "seriesPoster": "Affiche de la série", + "seasonPoster": "Affiche de la saison", "episodeThumbnail": "Miniature", "showHeroSectionDescription": "Afficher le carrousel de contenu en vedette sur l'écran d'accueil", "secondsLabel": "Secondes", "minutesLabel": "Minutes", "secondsShort": "s", "minutesShort": "m", - "durationHint": "Entrez la durée (${min}-${max})", + "durationHint": "Saisissez la durée (${min}–${max})", "systemTheme": "Système", "lightTheme": "Clair", "darkTheme": "Sombre", @@ -109,13 +109,13 @@ "libraryDensity": "Densité des bibliothèques", "compact": "Compact", "comfortable": "Confortable", - "tvCornerSpotlightBackdrop": "", - "tvCornerSpotlightBackdropDescription": "", + "tvCornerSpotlightBackdrop": "Illustration en vedette dans le coin", + "tvCornerSpotlightBackdropDescription": "Afficher l’illustration en vedette dans le coin supérieur droit plutôt qu’en plein écran", "viewMode": "Mode d'affichage", "gridView": "Grille", "listView": "Liste", - "showHeroSection": "Afficher la section Hero", - "continueWatchingAction": "Action Continuer à regarder", + "showHeroSection": "Afficher la section à la une", + "continueWatchingAction": "Action de « Continuer à regarder »", "continueWatchingPlay": "Lire", "continueWatchingDetails": "Ouvrir les détails", "episodeAction": "Action des épisodes", @@ -129,14 +129,14 @@ "groupLibrariesByServerDescription": "Regrouper les bibliothèques de la barre latérale par serveur multimédia.", "alwaysKeepSidebarOpen": "Toujours garder la barre latérale ouverte", "alwaysKeepSidebarOpenDescription": "La barre latérale reste étendue et la zone de contenu s'adapte", - "showUnwatchedCount": "Afficher le nombre non visionné", - "showUnwatchedCountDescription": "Afficher le nombre d'épisodes non visionnés pour les séries et saisons", - "showEpisodeNumberOnCards": "Afficher le numéro d'épisode sur les cartes", - "showEpisodeNumberOnCardsDescription": "Afficher la saison et l'épisode sur les cartes d'épisode", - "showSeasonPostersOnTabs": "Afficher les posters de saison sur les onglets", - "showSeasonPostersOnTabsDescription": "Afficher l'affiche de chaque saison au-dessus de son onglet", - "tvFullCardLayout": "Cartes TV pleines", - "tvFullCardLayoutDescription": "Utiliser des cartes TV avec image seule et noms des acteurs superposés", + "showUnwatchedCount": "Afficher le nombre d’éléments non vus", + "showUnwatchedCountDescription": "Afficher le nombre d’épisodes non vus pour les séries et les saisons", + "showEpisodeNumberOnCards": "Afficher le numéro de l’épisode sur les cartes", + "showEpisodeNumberOnCardsDescription": "Afficher les numéros de saison et d’épisode sur les cartes d’épisode", + "showSeasonPostersOnTabs": "Afficher les affiches de saison sur les onglets", + "showSeasonPostersOnTabsDescription": "Afficher l’affiche de chaque saison au-dessus de son onglet", + "tvFullCardLayout": "Cartes TV plein format", + "tvFullCardLayoutDescription": "Utiliser des cartes TV composées uniquement d’une image, avec le nom des acteurs en surimpression", "focusGlow": "Halo de sélection", "focusGlowDescription": "Afficher un léger halo autour de la carte sélectionnée", "visualEffects": "Effets visuels", @@ -151,44 +151,44 @@ "exoPlayer": "ExoPlayer", "mpv": "mpv", "hardwareDecoding": "Décodage matériel", - "hardwareDecodingDescription": "Utilisez l'accélération matérielle lorsqu'elle est disponible.", - "bufferSize": "Taille du Buffer", - "bufferSizeMB": "${size}MB", - "bufferSizeAuto": "Auto (Recommandé)", - "bufferSizeWarning": "${heap}MB de mémoire disponible. Un tampon de ${size}MB peut affecter la lecture.", + "hardwareDecodingDescription": "Utiliser l’accélération matérielle lorsqu’elle est disponible", + "bufferSize": "Taille du tampon", + "bufferSizeMB": "${size} Mo", + "bufferSizeAuto": "Automatique (recommandé)", + "bufferSizeWarning": "${heap} Mo de mémoire disponible. Un tampon de ${size} Mo peut affecter la lecture.", "defaultQualityTitle": "Qualité par défaut", "musicQualityTitle": "Qualité de la musique", - "subtitleStyling": "Stylisation des sous-titres", - "subtitleStylingDescription": "Personnaliser l'apparence des sous-titres", - "smallSkipDuration": "Durée du petit saut", - "largeSkipDuration": "Durée du grand saut", + "subtitleStyling": "Style des sous-titres", + "subtitleStylingDescription": "Personnaliser l’apparence des sous-titres", + "smallSkipDuration": "Durée du saut court", + "largeSkipDuration": "Durée du saut long", "rewindOnResume": "Rembobiner à la reprise", "secondsUnit": "${seconds} secondes", "defaultSleepTimer": "Minuterie de mise en veille par défaut", "minutesUnit": "${minutes} minutes", - "rememberTrackSelections": "Mémoriser les sélections de pistes par émission/film", + "rememberTrackSelections": "Mémoriser les pistes choisies pour chaque série ou film", "rememberTrackSelectionsDescription": "Mémoriser les choix audio et sous-titres par titre", "showChapterMarkersOnTimeline": "Afficher les marqueurs de chapitres sur la barre de lecture", "showChapterMarkersOnTimelineDescription": "Segmenter la barre de lecture aux limites des chapitres", - "clickVideoTogglesPlayback": "Cliquez sur la vidéo pour basculer entre lecture et pause.", - "clickVideoTogglesPlaybackDescription": "Cliquer sur la vidéo pour lire/mettre en pause au lieu d'afficher les contrôles.", + "clickVideoTogglesPlayback": "Cliquer sur la vidéo pour alterner entre lecture et pause", + "clickVideoTogglesPlaybackDescription": "Cliquer sur la vidéo pour lire ou mettre en pause plutôt que d’afficher les commandes", "videoPlayerControls": "Commandes du lecteur vidéo", "keyboardShortcuts": "Raccourcis clavier", "keyboardShortcutsDescription": "Personnaliser les raccourcis clavier", "videoPlayerNavigation": "Navigation dans le lecteur vidéo", - "videoPlayerNavigationDescription": "Utilisez les touches fléchées pour naviguer dans les commandes du lecteur vidéo.", - "watchTogetherRelay": "Relais Regarder Ensemble", - "watchTogetherRelayDescription": "Définir un relay personnalisé. Tout le monde doit utiliser le même serveur.", + "videoPlayerNavigationDescription": "Utiliser les touches fléchées pour parcourir les commandes du lecteur vidéo", + "watchTogetherRelay": "Relais pour Regarder ensemble", + "watchTogetherRelayDescription": "Définir un relais personnalisé. Tous les participants doivent utiliser le même serveur.", "watchTogetherRelayHint": "https://mon-relais.exemple.fr", - "watchTogetherRelayInvalid": "Enter a valid HTTP or HTTPS relay base URL.", + "watchTogetherRelayInvalid": "Saisissez une URL de base HTTP ou HTTPS valide pour le relais.", "crashReporting": "Rapports de plantage", "crashReportingDescription": "Envoyer des rapports de plantage pour améliorer l'application", "debugLogging": "Journalisation de débogage", "debugLoggingDescription": "Activer la journalisation détaillée pour le dépannage", - "viewLogs": "Voir les logs", - "viewLogsDescription": "Voir les logs d'application", + "viewLogs": "Voir les journaux", + "viewLogsDescription": "Voir les journaux de l’application", "clearCache": "Vider le cache", - "clearCacheDescription": "Effacer les images et données en cache. Le contenu peut charger plus lentement.", + "clearCacheDescription": "Effacer les images et les données en cache. Le contenu peut se charger plus lentement.", "clearCacheSuccess": "Cache effacé avec succès", "resetSettings": "Réinitialiser les paramètres", "resetSettingsDescription": "Restaurer les paramètres par défaut. Action irréversible.", @@ -201,8 +201,8 @@ "importSettingsDescription": "Restaurer les préférences depuis un fichier", "importSettingsConfirm": "Cela remplacera vos paramètres actuels. Continuer ?", "importSettingsSuccess": "Paramètres importés", - "importSettingsInvalidFile": "Ce fichier n'est pas un export Plezy valide", - "importSettingsNoUser": "Connectez-vous avant d'importer les paramètres", + "importSettingsInvalidFile": "Ce fichier n’est pas une exportation valide des paramètres de Plezy", + "importSettingsNoUser": "Connectez-vous avant d’importer les paramètres", "shortcutsReset": "Raccourcis réinitialisés aux valeurs par défaut", "about": "À propos", "aboutDescription": "Informations sur l'application et licences", @@ -211,56 +211,56 @@ "checkForUpdates": "Vérifier les mises à jour", "autoCheckUpdatesOnStartup": "Vérifier automatiquement les mises à jour au démarrage", "autoCheckUpdatesOnStartupDescription": "Notifier au lancement quand une mise à jour est disponible", - "validationErrorEnterNumber": "Veuillez saisir un numéro valide", + "validationErrorEnterNumber": "Veuillez saisir un nombre valide", "validationErrorDuration": "La durée doit être comprise entre ${min} et ${max} ${unit}", "shortcutAlreadyAssigned": "Raccourci déjà attribué à ${action}", "shortcutUpdated": "Raccourci mis à jour pour ${action}", - "saveFailed": "Could not save changes. Try again.", - "autoSkip": "Skip automatique", - "autoSkipIntro": "Skip automatique de l'introduction", - "autoSkipIntroDescription": "Skipper automatiquement l'introduction après quelques secondes", - "autoSkipCredits": "Skip automatique des crédits", - "autoSkipCreditsDescription": "Passer les crédits et passer à l'épisode suivant automatiquement", - "forceSkipMarkerFallback": "Forcer les marqueurs de repli", - "forceSkipMarkerFallbackDescription": "Utiliser les motifs de titres de chapitres même si Plex a des marqueurs", - "autoSkipDelay": "Délai avant skip automatique", - "autoSkipDelayDescription": "Attendre ${seconds} secondes avant l'auto-skip", - "introPattern": "Modèle de marqueur d'intro", - "introPatternDescription": "Expression régulière pour reconnaître les marqueurs d'intro dans les titres de chapitres", - "creditsPattern": "Modèle de marqueur de générique", - "creditsPatternDescription": "Expression régulière pour reconnaître les marqueurs de générique dans les titres de chapitres", + "saveFailed": "Impossible d’enregistrer les modifications. Réessayez.", + "autoSkip": "Saut automatique", + "autoSkipIntro": "Passer automatiquement l’introduction", + "autoSkipIntroDescription": "Passer automatiquement les marqueurs d’introduction après quelques secondes", + "autoSkipCredits": "Passer automatiquement le générique", + "autoSkipCreditsDescription": "Passer automatiquement le générique et lire l’épisode suivant", + "forceSkipMarkerFallback": "Forcer les marqueurs de secours", + "forceSkipMarkerFallbackDescription": "Utiliser les motifs des titres de chapitre même lorsque Plex fournit des marqueurs", + "autoSkipDelay": "Délai avant le saut automatique", + "autoSkipDelayDescription": "Attendre ${seconds} secondes avant le saut automatique", + "introPattern": "Motif du marqueur d’introduction", + "introPatternDescription": "Expression régulière permettant de reconnaître les marqueurs d’introduction dans les titres de chapitre", + "creditsPattern": "Motif du marqueur de générique", + "creditsPatternDescription": "Expression régulière permettant de reconnaître les marqueurs de générique dans les titres de chapitre", "invalidRegex": "Expression régulière invalide", "regex": "Expression régulière", - "downloads": "Téléchargement", - "downloadLocationDescription": "Choisissez où stocker le contenu téléchargé", + "downloads": "Téléchargements", + "downloadLocationDescription": "Choisir où stocker le contenu téléchargé", "downloadLocationDefault": "Par défaut (stockage de l'application)", "downloadLocationCustom": "Emplacement personnalisé", "selectFolder": "Sélectionner un dossier", "resetToDefault": "Réinitialiser les paramètres par défaut", - "currentPath": "Actuel: ${path}", + "currentPath": "Actuel : ${path}", "downloadLocationChanged": "Emplacement de téléchargement modifié", "downloadLocationReset": "Emplacement de téléchargement réinitialisé à la valeur par défaut", "downloadLocationInvalid": "Le dossier sélectionné n'est pas accessible en écriture", "downloadLocationPickerUnavailable": "La sélection de dossier n’est pas disponible sur cet appareil", - "downloadOnWifiOnly": "Télécharger uniquement via WiFi", - "downloadOnWifiOnlyDescription": "Empêcher les téléchargements lorsque vous utilisez les données cellulaires", + "downloadOnWifiOnly": "Télécharger uniquement en Wi-Fi", + "downloadOnWifiOnlyDescription": "Empêcher les téléchargements via les données mobiles", "autoRemoveWatchedDownloads": "Supprimer automatiquement les téléchargements vus", "autoRemoveWatchedDownloadsDescription": "Supprimer automatiquement les téléchargements vus", - "cellularDownloadBlocked": "Les téléchargements sont bloqués sur réseau mobile. Utilisez le WiFi ou modifiez le réglage.", + "cellularDownloadBlocked": "Les téléchargements sont bloqués sur le réseau mobile. Utilisez le Wi-Fi ou modifiez ce paramètre.", "maxVolume": "Volume maximal", "maxVolumeDescription": "Autoriser l'augmentation du volume au-delà de 100 % pour les médias silencieux", "maxVolumePercent": "${percent}%", "discordRichPresence": "Discord Rich Presence", - "discordRichPresenceDescription": "Montrez ce que vous regardez sur Discord", + "discordRichPresenceDescription": "Afficher sur Discord ce que vous regardez", "services": "Services", - "servicesDescription": "Connectez Trakt, MyAnimeList, Seerr et plus", + "servicesDescription": "Connecter Trakt, MyAnimeList, Seerr et d’autres services", "manageLibrariesDescription": "Réorganiser et masquer les bibliothèques", "companionRemoteServer": "Serveur de télécommande", "companionRemoteServerDescription": "Autoriser les appareils mobiles de votre réseau à contrôler cette application", - "autoPip": "Image dans l'image automatique", - "autoPipDescription": "Passer en picture-in-picture en quittant pendant la lecture", - "matchContentFrameRate": "Fréquence d'images du contenu correspondant", - "matchContentFrameRateDescription": "Adapter la fréquence d'affichage au contenu vidéo", + "autoPip": "Mode image dans l’image automatique", + "autoPipDescription": "Passer en mode image dans l’image si vous quittez l’application pendant la lecture", + "matchContentFrameRate": "Adapter la fréquence d’images au contenu", + "matchContentFrameRateDescription": "Adapter la fréquence de rafraîchissement de l’écran au contenu vidéo", "matchRefreshRate": "Adapter la fréquence de rafraîchissement", "matchRefreshRateDescription": "Adapter la fréquence d'affichage en plein écran", "matchDynamicRange": "Adapter la plage dynamique", @@ -268,17 +268,17 @@ "displaySwitchDelay": "Délai de changement d'affichage", "tunneledPlayback": "Lecture tunnelée", "tunneledPlaybackDescription": "Utiliser le tunneling vidéo. Désactivez si la lecture HDR affiche un écran noir.", - "audioPassthrough": "Audio Pass-Through", - "audioPassthroughDescription": "Envoyez l'audio Dolby/DTS vers votre ampli ou téléviseur sans réencodage, en conservant le son surround. Désactivez si vous n'avez aucun son.", - "audioPassthroughDescriptionAppleTv": "Transmet le Dolby Digital Plus (y compris Atmos) au système en bitstream. Le DTS et le TrueHD restent lus en PCM multicanal. De brèves coupures audio peuvent survenir lors des sauts.", - "audioDownmix": "Downmix en stéréo", - "audioDownmixDescription": "Réduit le son surround à deux canaux pour les enceintes stéréo ou le casque", + "audioPassthrough": "Transmission audio directe", + "audioPassthroughDescription": "Envoyer l’audio Dolby/DTS à votre ampli ou téléviseur sans le réencoder afin de préserver le son surround. Désactivez cette option en l’absence de son.", + "audioPassthroughDescriptionAppleTv": "Utiliser le décodeur Dolby natif d’Apple pour le Dolby Digital Plus, y compris Atmos. Le DTS et le TrueHD sont toujours lus en PCM multicanal. Désactivez cette option en l’absence de son.", + "audioDownmix": "Conversion en stéréo", + "audioDownmixDescription": "Convertir le son surround en deux canaux pour les enceintes stéréo ou le casque", "downmixCenterBoost": "Renforcement du canal central", "downmixCenterBoostValue": "${db} dB", "downmixCenterBoostLabel": "Renforcement (dB)", "downmixCenterBoostShort": "dB", - "audioDownmixNormalize": "Normaliser le volume lors du downmix", - "audioDownmixNormalizeDescription": "Atténue le mixage pour éviter la saturation. Désactivez pour conserver le volume d'origine (risque de distorsion sur les scènes fortes).", + "audioDownmixNormalize": "Normaliser le volume lors de la conversion en stéréo", + "audioDownmixNormalizeDescription": "Atténuer le mixage pour éviter la saturation. Désactivez cette option pour conserver le volume d’origine, au risque de déformer les scènes bruyantes.", "atmosDiagnostics": "Test de sortie Atmos", "atmosDiagnosticsDescription": "Diagnostiquer la sortie Dolby Atmos en lisant des signaux de test via le lecteur système", "atmosTestHlsAtmos": "Flux Atmos d'Apple", @@ -295,25 +295,25 @@ "atmosTestUrlMissing": "Définissez d'abord l'URL du fichier de test", "atmosTestStatus": "État", "dvConversionMode": "Conversion Dolby Vision", - "dvConversionModeDescription": "Choisissez comment ExoPlayer gère les fichiers Dolby Vision Profile 7.", + "dvConversionModeDescription": "Choisir comment ExoPlayer gère les fichiers Dolby Vision de profil 7.", "dvConversionAuto": "Auto", "dvConversionNative": "Natif / désactivé", "dvConversionDv81": "P7 → P8.1", "dvConversionHevcStrip": "P7 → HEVC", "dvConversionAutoDescription": "Utiliser la détection des capacités de l’appareil et le comportement de repli normal", "dvConversionNativeDescription": "Forcer le DV7 natif et bloquer la nouvelle tentative de conversion DV", - "dvConversionDv81Description": "Forcer la conversion RPU intégrée vers Dolby Vision profil 8.1", + "dvConversionDv81Description": "Forcer la conversion RPU intégrée vers le profil 8.1 de Dolby Vision", "dvConversionHevcStripDescription": "Supprimer les couches RPU/EL Dolby Vision et présenter du HEVC simple", "requireProfileSelectionOnOpen": "Demander le profil à l'ouverture", "requireProfileSelectionOnOpenDescription": "Afficher la sélection de profil à chaque ouverture de l'application", "forceTvMode": "Forcer le mode TV", - "forceTvModeDescription": "Forcer l'interface TV. Pour appareils non détectés automatiquement. Redémarrage requis.", + "forceTvModeDescription": "Forcer l’interface TV sur les appareils qui ne sont pas détectés automatiquement. Redémarrage requis.", "startInFullscreen": "Démarrer en plein écran", "startInFullscreenDescription": "Ouvrir Plezy en mode plein écran au lancement", "exitFullscreenOnPlayerClose": "Quitter le plein écran à la fermeture du lecteur", "exitFullscreenOnPlayerCloseDescription": "Quitter automatiquement le plein écran lors de la fermeture du lecteur vidéo", - "autoHidePerformanceOverlay": "Masquer auto. superposition performances", - "autoHidePerformanceOverlayDescription": "Faire apparaître/disparaître la superposition avec les contrôles de lecture", + "autoHidePerformanceOverlay": "Masquer automatiquement les données de performance", + "autoHidePerformanceOverlayDescription": "Masquer progressivement les données de performance avec les commandes de lecture", "showNavBarLabels": "Afficher les libellés de la barre de navigation", "showNavBarLabelsDescription": "Afficher les libellés sous les icônes de la barre de navigation", "startupSection": "Section de démarrage", @@ -326,7 +326,7 @@ "content": "Contenu", "player": "Lecteur", "subtitlesAndConfig": "Sous-titres et configuration", - "seekAndTiming": "Recherche et minutage", + "seekAndTiming": "Déplacement et minutage", "behavior": "Comportement" }, "search": { @@ -378,7 +378,7 @@ "advanced": "Avancé", "codec": "Codec", "resolution": "Résolution", - "bitrate": "Bitrate", + "bitrate": "Débit", "frameRate": "Fréquence d'images", "aspectRatio": "Format d'image", "profile": "Profil", @@ -422,15 +422,15 @@ "favorited": "Ajouté aux favoris", "saved": "Enregistré", "notAvailable": "Aucune correspondance trouvée", - "noConnectedServices": "Connectez un service dans les Réglages pour noter ici." + "noConnectedServices": "Connectez un service dans les paramètres pour pouvoir y attribuer une note." }, "accessibility": { "mediaCardMovie": "${title}, film", - "mediaCardShow": "${title}, show TV", + "mediaCardShow": "${title}, série TV", "mediaCardEpisode": "${title}, ${episodeInfo}", "mediaCardSeason": "${title}, ${seasonInfo}", "mediaCardWatched": "visionné", - "mediaCardPartiallyWatched": "${percent} pourcentage visionné", + "mediaCardPartiallyWatched": "${percent} pour cent visionné", "mediaCardUnwatched": "non visionné", "tapToPlay": "Appuyez pour lire", "decrease": "Diminuer", @@ -451,8 +451,8 @@ "tooltips": { "shufflePlay": "Lecture aléatoire", "playTrailer": "Lire la bande-annonce", - "markAsWatched": "Marqué comme vu", - "markAsUnwatched": "Marqué comme non vu" + "markAsWatched": "Marquer comme vu", + "markAsUnwatched": "Marquer comme non vu" }, "audioTracks": { "track": "Piste audio ${n}" @@ -460,16 +460,16 @@ "videoControls": { "audioLabel": "Audio", "subtitlesLabel": "Sous-titres", - "resetToZero": "Réinitialiser à 0ms", + "resetToZero": "Réinitialiser à 0 ms", "addTime": "+${amount}${unit}", "minusTime": "-${amount}${unit}", - "playsLater": "${label} lire plus tard", - "playsEarlier": "${label} lire plus tôt", + "playsLater": "${label} : lecture retardée", + "playsEarlier": "${label} : lecture avancée", "noOffset": "Pas de décalage", - "letterbox": "Boîte aux lettres", - "fillScreen": "Remplir l'écran", - "stretch": "Etirer", - "lockRotation": "Verrouillage de la rotation", + "letterbox": "Format letterbox", + "fillScreen": "Remplir l’écran", + "stretch": "Étirer", + "lockRotation": "Verrouiller la rotation", "unlockRotation": "Déverrouiller la rotation", "timerActive": "Minuterie active", "playbackWillPauseIn": "La lecture sera mise en pause dans ${duration}", @@ -480,20 +480,20 @@ "stillWatching": "Toujours en train de regarder ?", "pausingIn": "Pause dans ${seconds}s", "continueWatching": "Continuer", - "autoPlayNext": "Lecture automatique suivante", + "autoPlayNext": "Lecture automatique de l’élément suivant", "playNext": "Lire l'épisode suivant", "playButton": "Lire", "pauseButton": "Pause", - "showPlaybackControls": "", - "hidePlaybackControls": "", + "showPlaybackControls": "Afficher les commandes de lecture", + "hidePlaybackControls": "Masquer les commandes de lecture", "seekBackwardButton": "Reculer de ${seconds} secondes", "seekForwardButton": "Avancer de ${seconds} secondes", "previousButton": "Épisode précédent", "nextButton": "Épisode suivant", "previousChapterButton": "Chapitre précédent", "nextChapterButton": "Chapitre suivant", - "muteButton": "Mute", - "unmuteButton": "Dé-mute", + "muteButton": "Couper le son", + "unmuteButton": "Rétablir le son", "settingsButton": "Paramètres de lecture", "tracksButton": "Audio et sous-titres", "chaptersButton": "Chapitres", @@ -504,7 +504,7 @@ "qualityPresetLabel": "${resolution}p ${bitrate} Mbps", "transcodeUnavailableFallback": "Transcodage indisponible — lecture en qualité originale", "subtitleUnavailableFallback": "Impossible de charger les sous-titres sélectionnés — poursuite de la lecture sans sous-titres", - "pipButton": "Mode PiP (Picture-in-Picture)", + "pipButton": "Mode image dans l’image", "aspectRatioButton": "Format d'image", "ambientLighting": "Éclairage ambiant", "fullscreenButton": "Passer en mode plein écran", @@ -514,9 +514,9 @@ "lockScreen": "Verrouiller l'écran", "screenLockButton": "Verrouillage de l'écran", "longPressToUnlock": "Appui long pour déverrouiller", - "timelineSlider": "Timeline vidéo", - "volumeSlider": "Niveau sonore", - "endsAt": "Fin à ${time}", + "timelineSlider": "Barre de progression vidéo", + "volumeSlider": "Niveau du volume", + "endsAt": "Se termine à ${time}", "pipActive": "Lecture en mode image dans l'image", "pipFailed": "Échec du démarrage du mode image dans l'image", "screenshotSaved": "Capture d'écran enregistrée", @@ -524,7 +524,7 @@ "pipErrors": { "androidVersion": "Nécessite Android 8.0 ou plus récent", "iosVersion": "Nécessite iOS 15.0 ou plus récent", - "permissionDisabled": "Picture-in-picture est désactivé. Activez-le dans les paramètres système.", + "permissionDisabled": "Le mode image dans l’image est désactivé. Activez-le dans les paramètres système.", "notSupported": "Cet appareil ne prend pas en charge le mode image dans l'image", "voSwitchFailed": "Échec du changement de sortie vidéo pour l'image dans l'image", "failed": "Échec du démarrage du mode image dans l'image", @@ -556,32 +556,32 @@ "one": "${n} téléchargement vu supprimé automatiquement", "other": "${n} téléchargements vus supprimés automatiquement" }, - "removedFromContinueWatching": "Supprimer de \"Continuer à regarder\"", - "errorLoading": "Erreur: ${error}", + "removedFromContinueWatching": "Supprimé de « Continuer à regarder »", + "errorLoading": "Erreur : ${error}", "streamInterrupted": "La lecture a été interrompue. Appuyez sur Lecture ou avancez pour réessayer.", "liveStreamInterrupted": "Le direct a été interrompu. Appuyez sur Lecture pour réessayer.", "fileInfoNotAvailable": "Informations sur le fichier non disponibles", - "playbackAuthenticationRequired": "Sign in to the media server again to play this item.", - "playbackServerUnavailable": "The media server is unavailable. Try again later.", - "playbackDataInvalid": "The server returned invalid playback information.", - "playbackCancelled": "Playback was cancelled.", - "playbackFailed": "Playback could not be started.", - "errorLoadingFileInfo": "Erreur lors du chargement des informations sur le fichier: ${error}", + "playbackAuthenticationRequired": "Reconnectez-vous au serveur multimédia pour lire cet élément.", + "playbackServerUnavailable": "Le serveur multimédia est indisponible. Réessayez plus tard.", + "playbackDataInvalid": "Le serveur a renvoyé des informations de lecture non valides.", + "playbackCancelled": "La lecture a été annulée.", + "playbackFailed": "Impossible de démarrer la lecture.", + "errorLoadingFileInfo": "Erreur lors du chargement des informations sur le fichier : ${error}", "errorLoadingSeries": "Erreur lors du chargement de la série", "musicNotSupported": "La lecture de musique n'est pas encore prise en charge", "noDescriptionAvailable": "Aucune description disponible", "noProfilesAvailable": "Aucun profil disponible", "contactAdminForProfiles": "Contactez votre administrateur serveur pour ajouter des profils", "unableToDetermineLibrarySection": "Impossible de déterminer la section de la bibliothèque pour cet élément", - "logsCleared": "Logs effacés", - "logsCopied": "Logs copiés dans le presse-papier", - "noLogsAvailable": "Aucun log disponible", - "libraryScanning": "Scan de \"${title}\"...", - "libraryScanStarted": "Scan de la bibliothèque démarrée pour \"${title}\"", - "libraryScanFailed": "Échec du scan de la bibliothèque: ${error}", - "metadataRefreshing": "Actualisation des métadonnées pour \"${title}\"...", - "metadataRefreshStarted": "Actualisation des métadonnées lancée pour \"${title}\"", - "metadataRefreshFailed": "Échec de l'actualisation des métadonnées: ${error}", + "logsCleared": "Journaux effacés", + "logsCopied": "Journaux copiés dans le presse-papiers", + "noLogsAvailable": "Aucun journal disponible", + "libraryScanning": "Analyse de « ${title} »…", + "libraryScanStarted": "Analyse de la bibliothèque lancée pour « ${title} »", + "libraryScanFailed": "Échec de l’analyse de la bibliothèque : ${error}", + "metadataRefreshing": "Actualisation des métadonnées de « ${title} »…", + "metadataRefreshStarted": "Actualisation des métadonnées lancée pour « ${title} »", + "metadataRefreshFailed": "Échec de l’actualisation des métadonnées : ${error}", "logoutConfirm": "Êtes-vous sûr de vouloir vous déconnecter ?", "noSeasonsFound": "Aucune saison trouvée", "seasonsLoadFailed": "Impossible de charger les saisons", @@ -591,14 +591,14 @@ "noResultsFound": "Aucun résultat trouvé", "sleepTimerSet": "Minuterie de mise en veille réglée sur ${label}", "noItemsAvailable": "Aucun élément disponible", - "failedToCreatePlayQueueNoItems": "Échec de la création de la file d'attente de lecture - aucun élément", - "failedPlayback": "Echec de ${action}: ${error}", + "failedToCreatePlayQueueNoItems": "Impossible de créer la file d’attente de lecture : aucun élément", + "failedPlayback": "Échec de ${action} : ${error}", "switchingToCompatiblePlayer": "Passage au lecteur compatible...", "serverLimitTitle": "Échec de la lecture", "serverLimitBody": "Erreur serveur (HTTP 500). Une limite de bande passante/transcodage a probablement rejeté cette session. Demandez au propriétaire de l'ajuster.", - "logsUploaded": "Logs envoyés", - "logsUploadFailed": "Échec de l'envoi des logs", - "logId": "ID du log" + "logsUploaded": "Journaux envoyés", + "logsUploadFailed": "Échec de l’envoi des journaux", + "logId": "Identifiant du journal" }, "subtitlingStyling": { "text": "Texte", @@ -688,13 +688,13 @@ "borrowExplain": "Emprunter la connexion d'un autre profil. Les profils protégés par PIN exigent un PIN.", "borrowEmpty": "Rien à emprunter pour le moment.", "borrowEmptySubtitle": "Connectez d'abord Plex ou Jellyfin à un autre profil.", - "borrowLoadFailed": "Available connections could not be loaded. Try again.", + "borrowLoadFailed": "Impossible de charger les connexions disponibles. Réessayez.", "borrowFromProfile": "De ${displayName}", "borrowConnectionBorrowed": "Connexion empruntée.", "borrowFailed": "Impossible d'emprunter la connexion.", "incorrectPin": "PIN incorrect.", "incorrectPinTryAgain": "PIN incorrect. Veuillez réessayer.", - "sourceProfileMissingParentAccount": "Le profil source n'a pas son compte parent.", + "sourceProfileMissingParentAccount": "Le profil source ne possède pas de compte parent.", "failedToLoadHomeUsers": "Impossible de charger vos utilisateurs Plex Home. Vérifiez votre connexion et réessayez.", "failedToVerifyPin": "Impossible de vérifier le PIN.", "newProfile": "Nouveau profil", @@ -716,9 +716,9 @@ "editJellyfinIntro": "Ajoutez ou supprimez des URL pour ${serverName}. Plezy utilisera l'URL joignable avec la latence la plus faible." }, "discover": { - "title": "Découvrez", + "title": "Découvrir", "noContentAvailable": "Aucun contenu disponible", - "addMediaToLibraries": "Ajoutez des médias à votre bibliothèque", + "addMediaToLibraries": "Ajoutez des médias à vos bibliothèques", "continueWatching": "Continuer à regarder", "continueWatchingIn": "Continuer à regarder dans ${library}", "nextUp": "À suivre", @@ -730,24 +730,24 @@ "mostPlayedIn": "Les plus lus dans ${library}", "playEpisode": "S${season}E${episode}", "overview": "Aperçu", - "cast": "Cast", - "extras": "Bandes-annonces et Extras", + "cast": "Distribution", + "extras": "Bandes-annonces et bonus", "studio": "Studio", "rating": "Évaluation", "movie": "Film", - "tvShow": "Show TV", + "tvShow": "Série TV", "minutesLeft": "${minutes} min restantes", "moreLikeThis": "Plus de contenus similaires" }, "errors": { - "searchFailed": "Recherche échouée: ${error}", + "searchFailed": "Échec de la recherche : ${error}", "connectionTimeout": "Délai d'attente de connexion dépassé pendant le chargement ${context}", "connectionFailed": "Impossible de se connecter au serveur multimédia", "unableToLoad": "Impossible de charger ${context}. Réessayez.", "noClientAvailable": "Aucun client disponible", - "pleaseEnterToken": "Veuillez saisir un token", - "invalidToken": "Token invalide", - "failedToVerifyToken": "Échec de la vérification du token: ${error}", + "pleaseEnterToken": "Veuillez saisir un jeton", + "invalidToken": "Jeton non valide", + "failedToVerifyToken": "Échec de la vérification du jeton : ${error}", "failedToSwitchProfile": "Impossible de changer de profil vers ${displayName}", "failedToDeleteProfile": "Impossible de supprimer ${displayName}", "failedToRate": "Impossible de mettre à jour la note" @@ -761,12 +761,12 @@ "analyzeLibrary": "Analyser la bibliothèque", "refreshMetadata": "Actualiser les métadonnées", "emptyTrash": "Vider la corbeille", - "emptyingTrash": "Vider les poubelles pour \"${title}\"...", - "trashEmptied": "Poubelles vidées pour \"${title}\"", - "failedToEmptyTrash": "Échec de la suppression des éléments supprimés: ${error}", - "analyzing": "Analyse de \"${title}\"...", - "analysisStarted": "L'analyse a commencé pour \"${title}\"", - "failedToAnalyze": "Échec de l'analyse de la bibliothèque: ${error}", + "emptyingTrash": "Vidage de la corbeille de « ${title} »…", + "trashEmptied": "Corbeille vidée pour « ${title} »", + "failedToEmptyTrash": "Échec du vidage de la corbeille : ${error}", + "analyzing": "Analyse de « ${title} »…", + "analysisStarted": "Analyse lancée pour « ${title} »", + "failedToAnalyze": "Échec de l’analyse de la bibliothèque : ${error}", "noLibrariesFound": "Aucune bibliothèque trouvée", "allLibrariesHidden": "Toutes les bibliothèques sont masquées", "hiddenLibrariesCount": "Bibliothèques masquées (${count})", @@ -775,10 +775,10 @@ "resetFilters": "Réinitialiser les filtres", "all": "Tout", "clearAll": "Tout effacer", - "scanLibraryConfirm": "Êtes-vous sûr de vouloir lancer le scan de \"${title}\"?", - "analyzeLibraryConfirm": "Êtes-vous sûr de vouloir analyser \"${title}\"?", - "refreshMetadataConfirm": "Êtes-vous sûr de vouloir actualiser les métadonnées pour \"${title}\"?", - "emptyTrashConfirm": "Êtes-vous sûr de vouloir vider la corbeille pour \"${title}\"?", + "scanLibraryConfirm": "Voulez-vous vraiment scanner « ${title} » ?", + "analyzeLibraryConfirm": "Voulez-vous vraiment analyser « ${title} » ?", + "refreshMetadataConfirm": "Voulez-vous vraiment actualiser les métadonnées de « ${title} » ?", + "emptyTrashConfirm": "Voulez-vous vraiment vider la corbeille de « ${title} » ?", "manageLibraries": "Gérer les bibliothèques", "sort": "Trier", "sortBy": "Trier par", @@ -804,7 +804,7 @@ "title": "Regroupement", "all": "Tous", "movies": "Films", - "shows": "Show TV", + "shows": "Séries TV", "seasons": "Saisons", "episodes": "Épisodes", "artists": "Artistes", @@ -816,9 +816,9 @@ "genre": "Genre", "year": "Année", "contentRating": "Classification", - "tag": "Tag", + "tag": "Étiquette", "unwatched": "Non vus", - "unplayed": "Non lu", + "unplayed": "Non lus", "favorites": "Favoris" }, "sortLabels": { @@ -846,14 +846,14 @@ }, "about": { "title": "À propos", - "openSourceLicenses": "Licences Open Source", + "openSourceLicenses": "Licences libres", "versionLabel": "Version ${version}", "appDescription": "Un magnifique client Plex et Jellyfin pour Flutter", "viewLicensesDescription": "Afficher les licences des bibliothèques tierces" }, "serverSelection": { "noServersFoundForAccount": "Aucun serveur trouvé pour ${username} (${email})", - "failedToLoadServers": "Échec du chargement des serveurs: ${error}" + "failedToLoadServers": "Échec du chargement des serveurs : ${error}" }, "hubDetail": { "title": "Titre", @@ -863,20 +863,20 @@ "noItemsFound": "Aucun élément trouvé" }, "logs": { - "clearLogs": "Effacer les logs", - "copyLogs": "Copier les logs", - "uploadLogs": "Envoyer les logs" + "clearLogs": "Effacer les journaux", + "copyLogs": "Copier les journaux", + "uploadLogs": "Envoyer les journaux" }, "licenses": { - "relatedPackages": "Package associés", + "relatedPackages": "Paquets associés", "license": "Licence", "licenseNumber": "Licence ${number}", "licensesCount": "${count} licences" }, "navigation": { - "libraries": "Medias", - "downloads": "Téléch.", - "liveTv": "TV direct", + "libraries": "Bibliothèques", + "downloads": "Téléchargements", + "liveTv": "TV en direct", "explore": "Explorer" }, "explore": { @@ -885,30 +885,30 @@ "rows": { "watchlist": "Liste de suivi", "recommendedMovies": "Films recommandés", - "recommendedShows": "Show TV recommandés", + "recommendedShows": "Séries recommandées", "trendingMovies": "Films tendance", - "trendingShows": "Show TV tendance", + "trendingShows": "Séries tendance", "popularMovies": "Films populaires", - "popularShows": "Show TV populaires", - "trendingAnime": "Anime tendance", - "suggestedAnime": "Anime suggérés", - "airingAnime": "Meilleurs anime en diffusion", - "popularAnime": "Anime les plus populaires", + "popularShows": "Séries populaires", + "trendingAnime": "Animes tendance", + "suggestedAnime": "Animes suggérés", + "airingAnime": "Meilleurs animes en diffusion", + "popularAnime": "Animes les plus populaires", "trending": "Tendances", "upcomingMovies": "Films à venir", - "upcomingShows": "Show TV à venir" + "upcomingShows": "Séries à venir" }, "status": { "airing": "En cours", - "ended": "Terminée", - "canceled": "Annulée", + "ended": "Terminé", + "canceled": "Annulé", "upcoming": "À venir" }, "episodeCount": { "one": "${n} épisode", "other": "${n} épisodes" }, - "cast": "Cast", + "cast": "Distribution", "characters": "Personnages", "addToWatchlist": "Ajouter à la liste de suivi", "removeFromWatchlist": "Retirer de la liste de suivi", @@ -917,7 +917,7 @@ "inTheseLibraries": "Dans ces bibliothèques", "checkingLibrary": "Vérification de votre bibliothèque...", "emptyTitle": "Rien ici pour l'instant", - "emptyMessage": "Les rangées de ${source} apparaîtront ici une fois qu'elles auront du contenu.", + "emptyMessage": "Les lignes de ${source} apparaîtront ici dès qu’elles contiendront des éléments.", "searchHint": "Rechercher dans ${source}", "searchEmpty": "Aucun résultat pour \"${query}\"", "searchPrompt": "Recherchez des films et des séries sur ${source}.", @@ -947,13 +947,13 @@ "morning": "Matin", "daytime": "Journée", "evening": "Soirée", - "lateNight": "Nuit tardive", + "lateNight": "Fin de soirée", "whatsOn": "En ce moment", "watchChannel": "Regarder la chaîne", "favorites": "Favoris", "reorderFavorites": "Réorganiser les favoris", "favoritesLoadFailed": "Impossible de charger les favoris. Vérifiez votre connexion et réessayez.", - "favoritesUpdateFailed": "Could not update favorites. Check your connection and try again.", + "favoritesUpdateFailed": "Impossible de mettre à jour les favoris. Vérifiez votre connexion et réessayez.", "joinSession": "Rejoindre la session en cours", "watchFromStart": "Regarder depuis le début (il y a ${minutes} min)", "watchLive": "Regarder en direct", @@ -1000,7 +1000,7 @@ "deleteConfirm": "Supprimer \"${title}\" ? Action irréversible.", "deleted": "Collection supprimée", "deleteFailed": "Échec de la suppression de la collection", - "deleteFailedWithError": "Échec de la suppression de la collection: ${error}", + "deleteFailedWithError": "Échec de la suppression de la collection : ${error}", "selectCollection": "Sélectionner une collection", "collectionName": "Nom de la collection", "enterCollectionName": "Entrez le nom de la collection", @@ -1011,7 +1011,7 @@ "removeFromCollectionConfirm": "Retirer \"${title}\" de cette collection ?", "removedFromCollection": "Retiré de la collection", "removeFromCollectionFailed": "Impossible de supprimer de la collection", - "removeFromCollectionError": "Erreur lors de la suppression de la collection: ${error}", + "removeFromCollectionError": "Erreur lors du retrait de la collection : ${error}", "searchCollections": "Rechercher des collections..." }, "playlists": { @@ -1020,27 +1020,27 @@ "noPlaylists": "Aucune playlist trouvée", "create": "Créer une playlist", "playlistName": "Nom de playlist", - "enterPlaylistName": "Entrer le nom de playlist", + "enterPlaylistName": "Saisissez le nom de la playlist", "delete": "Supprimer la playlist", "removeItem": "Retirer de la playlist", - "smartPlaylist": "Smart playlist", + "smartPlaylist": "Playlist intelligente", "itemCount": "${count} éléments", "oneItem": "1 élément", "emptyPlaylist": "Cette playlist est vide", "deleteConfirm": "Supprimer la playlist ?", - "deleteMessage": "Êtes-vous sûr de vouloir supprimer \"${name}\"?", + "deleteMessage": "Voulez-vous vraiment supprimer « ${name} » ?", "created": "Playlist créée", "deleted": "Playlist supprimée", "itemAdded": "Ajouté à la playlist", "itemRemoved": "Retiré de la playlist", "selectPlaylist": "Sélectionner une playlist", "searchPlaylists": "Rechercher des playlists...", - "errorCreating": "Échec de la création de playlist", - "errorDeleting": "Échec de suppression de playlist", - "errorLoading": "Échec de chargement de playlists", - "errorAdding": "Échec d'ajout dans la playlist", - "errorReordering": "Échec de réordonnacement d'élément de playlist", - "errorRemoving": "Échec de suppression depuis la playlist" + "errorCreating": "Échec de la création de la playlist", + "errorDeleting": "Échec de la suppression de la playlist", + "errorLoading": "Échec du chargement des playlists", + "errorAdding": "Échec de l’ajout à la playlist", + "errorReordering": "Échec de la réorganisation de l’élément de la playlist", + "errorRemoving": "Échec du retrait de l’élément de la playlist" }, "music": { "goToAlbum": "Aller à l'album", @@ -1071,17 +1071,17 @@ }, "watchTogether": { "title": "Regarder ensemble", - "description": "Regardez du contenu en synchronisation avec vos amis et votre famille", + "description": "Regarder du contenu en synchronisation avec vos proches", "createSession": "Créer une session", "creating": "Création...", "joinSession": "Rejoindre la session", - "joining": "Rejoindre...", + "joining": "Connexion…", "controlMode": "Mode de contrôle", "controlModeQuestion": "Qui peut contrôler la lecture ?", "hostOnly": "Hôte uniquement", "anyone": "N'importe qui", - "hostingSession": "Session d'hébergement", - "inSession": "En session", + "hostingSession": "Session hébergée", + "inSession": "Session en cours", "sessionCode": "Code de session", "openSessionControls": "Ouvrir les commandes de la session Regarder ensemble", "copySessionCode": "Copier le code de session", @@ -1091,10 +1091,10 @@ "anyoneControls": "Tout le monde contrôle", "participants": "Participants", "host": "Hôte", - "hostBadge": "HOST", + "hostBadge": "HÔTE", "youAreHost": "Vous êtes l'hôte", "watchingWithOthers": "Regarder avec d'autres personnes", - "endSession": "Fin de session", + "endSession": "Terminer la session", "leaveSession": "Quitter la session", "endSessionQuestion": "Terminer la session ?", "leaveSessionQuestion": "Quitter la session ?", @@ -1103,8 +1103,8 @@ "endSessionConfirmOverlay": "Cela mettra fin à la session de visionnage pour tous les participants.", "leaveSessionConfirmOverlay": "Vous serez déconnecté de la session de visionnage.", "end": "Terminer", - "leave": "Fin", - "syncing": "Synchronisation...", + "leave": "Quitter", + "syncing": "Synchronisation…", "joinWatchSession": "Rejoindre la session de visionnage", "enterCodeHint": "Entrez le code à 5 caractères", "pasteFromClipboard": "Coller depuis le presse-papiers", @@ -1114,18 +1114,18 @@ "failedToCreate": "Échec de la création de la session", "failedToJoin": "Échec de la connexion à la session", "sessionCodeCopied": "Code de session copié dans le presse-papiers", - "relayUnreachable": "Serveur relay inaccessible. Un blocage ISP peut empêcher Watch Together.", + "relayUnreachable": "Serveur relais inaccessible. Un blocage par le fournisseur d’accès peut empêcher le fonctionnement de Regarder ensemble.", "reconnectingToHost": "Reconnexion à l'hôte...", "currentPlayback": "Lecture en cours", "joinCurrentPlayback": "Rejoindre la lecture en cours", - "joinCurrentPlaybackDescription": "Revenez à ce que l'hôte regarde actuellement", + "joinCurrentPlaybackDescription": "Reprendre le contenu que l’hôte regarde actuellement", "failedToOpenCurrentPlayback": "Impossible d'ouvrir la lecture en cours", "participantJoined": "${name} a rejoint", "participantLeft": "${name} est parti", "participantPaused": "${name} a mis en pause", "participantResumed": "${name} a repris", - "participantSeeked": "${name} a avancé", - "participantBuffering": "${name} met en mémoire tampon", + "participantSeeked": "${name} a changé la position de lecture", + "participantBuffering": "La lecture de ${name} est en cours de mise en mémoire tampon", "participantNeedsUpdate": "${name} utilise une ancienne version de l’app — synchronisation indisponible", "resumingWithout": "Reprise sans ${name}", "waitingForParticipants": "En attente du chargement des autres...", @@ -1139,7 +1139,7 @@ "downloads": { "title": "Téléchargements", "manage": "Gérer", - "tvShows": "Show TV", + "tvShows": "Séries TV", "movies": "Films", "music": "Musique", "tracksQueued": "${count} titres en file d'attente de téléchargement", @@ -1150,10 +1150,10 @@ "retryDownload": "Réessayer le téléchargement", "downloadQueued": "Téléchargement en attente", "downloadResumed": "Téléchargement repris", - "serverErrorBitrate": "Erreur serveur : le fichier peut dépasser la limite de bitrate distant", + "serverErrorBitrate": "Erreur du serveur : le fichier peut dépasser la limite de débit distant", "episodesQueued": "${count} épisodes en attente de téléchargement", - "downloadDeleted": "Télécharger supprimé", - "deleteConfirm": "Supprimer \"${title}\" de cet appareil ?", + "downloadDeleted": "Téléchargement supprimé", + "deleteConfirm": "Supprimer « ${title} » de cet appareil ?", "cancelledDownloadTitle": "Téléchargement annulé", "cancelledDownloadMessage": "Ce téléchargement a été annulé. Que voulez-vous faire ?", "allEpisodesAlreadyDownloaded": "Tous les épisodes sont déjà téléchargés", @@ -1227,12 +1227,12 @@ "connectedTo": "Connecté à ${name}", "unknownDevice": "Appareil inconnu", "session": { - "startingServer": "Démarrage du serveur distant...", - "hostAddress": "Adresse de l'hôte", + "startingServer": "Démarrage du serveur de télécommande…", + "hostAddress": "Adresse de l’hôte", "connected": "Connecté", - "serverRunning": "Serveur distant actif", - "serverStopped": "Serveur distant arrêté", - "serverRunningDescription": "Les appareils mobiles de votre réseau peuvent se connecter à cette app", + "serverRunning": "Serveur de télécommande actif", + "serverStopped": "Serveur de télécommande arrêté", + "serverRunningDescription": "Les appareils mobiles de votre réseau peuvent se connecter à cette application", "serverStoppedDescription": "Démarrez le serveur pour permettre aux appareils mobiles de se connecter", "usePhoneToControl": "Utilisez votre appareil mobile pour contrôler cette application", "startServer": "Démarrer le serveur", @@ -1245,13 +1245,13 @@ "connecting": "Connexion...", "searchingForDevices": "Recherche d'appareils...", "noDevicesFound": "Aucun appareil trouvé sur votre réseau", - "noDevicesHint": "Ouvrez Plezy sur ordinateur et utilisez le même WiFi", + "noDevicesHint": "Ouvrez Plezy sur votre ordinateur et utilisez le même réseau Wi-Fi", "availableDevices": "Appareils disponibles", "manualConnection": "Connexion manuelle", "cryptoInitFailed": "Impossible de démarrer la connexion sécurisée. Connectez-vous d'abord à Plex.", - "validationHostRequired": "Veuillez entrer l'adresse de l'hôte", - "validationHostFormat": "Le format doit être IP:port (ex. 192.168.1.100:48632)", - "connectionTimedOut": "Connexion expirée. Utilisez le même réseau sur les deux appareils.", + "validationHostRequired": "Veuillez saisir l’adresse de l’hôte", + "validationHostFormat": "Le format doit être IP:port (p. ex. 192.168.1.100:48632)", + "connectionTimedOut": "Délai de connexion dépassé. Utilisez le même réseau sur les deux appareils.", "sessionNotFound": "Appareil introuvable. Assurez-vous que Plezy fonctionne sur l'hôte.", "authFailed": "Échec de l'authentification. Les deux appareils doivent utiliser le même compte Plex.", "failedToConnect": "Échec de la connexion : ${error}" @@ -1283,12 +1283,12 @@ "fullscreen": "Plein écran", "subtitles": "Sous-titres", "audio": "Audio", - "searchHint": "Rechercher sur le bureau..." + "searchHint": "Rechercher sur l’ordinateur…" }, "errors": { "noNetworkInterface": "Aucune interface réseau trouvée", "authenticationFailed": "Échec de l’authentification", - "serverStartFailed": "Impossible de démarrer le serveur distant : ${error}", + "serverStartFailed": "Impossible de démarrer le serveur de télécommande : ${error}", "commandFailed": "Impossible d’envoyer la commande à distance : ${error}", "joinTimedOut": "Délai dépassé lors de la connexion à la session", "failedToConnectAnyAddress": "Impossible de se connecter à une adresse", @@ -1306,25 +1306,25 @@ "subtitleSync": "Synchronisation des sous-titres", "hdr": "HDR", "audioOutput": "Sortie audio", - "performanceOverlay": "Superposition de performance", - "audioPassthrough": "Audio Pass-Through", + "performanceOverlay": "Données de performance", + "audioPassthrough": "Transmission audio directe", "audioNormalization": "Normaliser le volume", - "audioDownmix": "Downmix en stéréo" + "audioDownmix": "Conversion en stéréo" }, "performanceOverlay": { "color": "Couleur", "performance": "Performances", "buffer": "Tampon", - "app": "App", + "app": "Application", "decoder": "Décodeur", "rawDecoder": "Décodeur brut", - "tunneling": "Tunneling", + "tunneling": "Tunnel", "aspect": "Format", "rotation": "Rotation", "dvSource": "Source DV", "dvPath": "Chemin DV", "p7Conversion": "Conv. P7", - "sampleRate": "Fréquence", + "sampleRate": "Fréquence d’échantillonnage", "pixelFormat": "Fmt pixel", "hwFormat": "Fmt HW", "matrix": "Matrice", @@ -1351,7 +1351,7 @@ "externalPlayer": { "title": "Lecteur externe", "useExternalPlayer": "Utiliser un lecteur externe", - "useExternalPlayerDescription": "Ouvrir les vidéos dans une autre app", + "useExternalPlayerDescription": "Ouvrir les vidéos dans une autre application", "selectPlayer": "Sélectionner le lecteur", "customPlayers": "Lecteurs personnalisés", "systemDefault": "Par défaut du système", @@ -1370,7 +1370,7 @@ "editMetadata": "Modifier...", "screenTitle": "Modifier les métadonnées", "basicInfo": "Informations de base", - "artwork": "Artwork", + "artwork": "Illustrations", "advancedSettings": "Paramètres avancés", "title": "Titre", "sortTitle": "Titre de tri", @@ -1394,9 +1394,9 @@ "imageUrl": "URL de l'image", "metadataUpdated": "Métadonnées mises à jour", "metadataUpdateFailed": "Échec de la mise à jour des métadonnées", - "artworkUpdated": "Artwork mis à jour", - "artworkUpdateFailed": "Échec de la mise à jour de l'artwork", - "noArtworkAvailable": "Aucun artwork disponible", + "artworkUpdated": "Illustrations mises à jour", + "artworkUpdateFailed": "Échec de la mise à jour des illustrations", + "noArtworkAvailable": "Aucune illustration disponible", "artworkOption": "Option d'illustration ${index}", "selectedArtworkOption": "Option d'illustration ${index}, sélectionnée", "notSet": "Non défini", @@ -1430,10 +1430,10 @@ "preferredSubtitleLanguage": "Langue de sous-titres préférée", "subtitleMode": "Sélection automatique des sous-titres", "manuallySelected": "Sélectionné manuellement", - "shownWithForeignAudio": "Affichés avec audio étranger", + "shownWithForeignAudio": "Avec l’audio en langue étrangère", "alwaysEnabled": "Toujours activé", - "tags": "Tags", - "addTag": "Ajouter un tag", + "tags": "Étiquettes", + "addTag": "Ajouter une étiquette", "genre": "Genre", "director": "Réalisateur", "writer": "Scénariste", @@ -1468,15 +1468,15 @@ "connected": "Connecté", "connectedAs": "Connecté en tant que @${username}", "disconnectConfirm": "Déconnecter le compte Trakt ?", - "disconnectConfirmBody": "Plezy cessera d'envoyer des événements à Trakt. Vous pouvez reconnecter à tout moment.", + "disconnectConfirmBody": "Plezy cessera d’envoyer des événements à Trakt. Vous pourrez vous reconnecter à tout moment.", "scrobble": "Scrobbling en temps réel", "scrobbleDescription": "Envoyer les événements de lecture, pause et arrêt à Trakt pendant la lecture.", "watchedSync": "Synchroniser le statut « vu »", - "watchedSyncDescription": "Lorsque vous marquez un élément comme vu dans Plezy, il l'est aussi sur Trakt." + "watchedSyncDescription": "Lorsque vous marquez des éléments comme vus dans Plezy, ils sont également marqués comme vus sur Trakt." }, "seerr": { "title": "Seerr", - "connectTitle": "Connecter Seerr", + "connectTitle": "Se connecter à Seerr", "serverUrl": "URL du serveur", "serverUrlHelper": "L'adresse de votre instance Seerr", "checkServer": "Continuer", @@ -1487,7 +1487,7 @@ "noSignInMethods": "Cette instance Seerr ne propose aucune méthode de connexion prise en charge par Plezy.", "instance": "Instance", "disconnectConfirm": "Déconnecter Seerr ?", - "disconnectConfirmBody": "Plezy oubliera cette instance Seerr. Reconnectez à tout moment.", + "disconnectConfirmBody": "Plezy oubliera cette instance Seerr. Vous pourrez vous reconnecter à tout moment.", "request": "Demander", "request4k": "Demander en 4K", "seasons": "Saisons", @@ -1514,7 +1514,7 @@ "scrobble": "Suivre la progression automatiquement", "scrobbleDescription": "Mettre à jour votre liste lorsque vous terminez un épisode ou un film.", "disconnectConfirm": "Déconnecter ${service} ?", - "disconnectConfirmBody": "Plezy cessera de mettre à jour ${service}. Reconnectez à tout moment.", + "disconnectConfirmBody": "Plezy cessera de mettre à jour ${service}. Vous pourrez vous reconnecter à tout moment.", "connectFailed": "Échec de la connexion à ${service}. Réessayez.", "names": { "mal": "MyAnimeList", @@ -1544,8 +1544,8 @@ "subtitleBlocked": "${count} bloquées", "subtitleAllowed": "${count} autorisées", "mode": "Mode de filtrage", - "modeBlacklist": "Liste noire", - "modeWhitelist": "Liste blanche", + "modeBlacklist": "Liste d’exclusion", + "modeWhitelist": "Liste d’inclusion", "modeHintBlacklist": "Synchroniser toutes les bibliothèques sauf celles cochées ci-dessous.", "modeHintWhitelist": "Synchroniser uniquement les bibliothèques cochées ci-dessous.", "libraries": "Bibliothèques", @@ -1578,7 +1578,7 @@ "signInWithPlexCardSubtitleScoped": "Autorisez un compte Plex. Les utilisateurs Home deviennent des profils.", "connectToJellyfinCard": "Se connecter à Jellyfin", "connectToJellyfinCardSubtitle": "Saisissez l'URL du serveur, le nom d'utilisateur et le mot de passe.", - "connectToJellyfinCardSubtitleScoped": "Connectez-vous à un serveur Jellyfin. Lié à ${name}.", + "connectToJellyfinCardSubtitleScoped": "Connectez-vous à un serveur Jellyfin. Cette connexion sera liée à ${name}.", "borrowFromAnotherProfile": "Emprunter à un autre profil", "borrowFromAnotherProfileSubtitle": "Réutiliser la connexion d'un autre profil. Les profils protégés par PIN exigent un PIN." } diff --git a/lib/i18n/hu.i18n.json b/lib/i18n/hu.i18n.json new file mode 100644 index 00000000..0d9288ae --- /dev/null +++ b/lib/i18n/hu.i18n.json @@ -0,0 +1,1585 @@ +{ + "app": { + "title": "Plezy" + }, + "auth": { + "signInWithPlex": "Bejelentkezés Plexszel", + "showQRCode": "QR-kód megjelenítése", + "authenticate": "Hitelesítés", + "authenticationTimeout": "A hitelesítés időtúllépés miatt megszakadt. Próbáld újra.", + "scanQRToSignIn": "Olvasd be ezt a QR-kódot a bejelentkezéshez", + "waitingForAuth": "Várakozás a hitelesítésre...\nJelentkezz be a böngésződben.", + "useBrowser": "Böngésző használata", + "or": "vagy", + "connectToJellyfin": "Csatlakozás Jellyfinhez", + "useQuickConnect": "Quick Connect használata", + "quickConnectInstructions": "Nyisd meg a Quick Connect-et a Jellyfinben, és add meg ezt a kódot.", + "quickConnectWaiting": "Várakozás a jóváhagyásra…", + "quickConnectCancel": "Mégse", + "quickConnectExpired": "A Quick Connect kód lejárt. Próbáld újra.", + "localDataRecoveryRequired": "A Plezy nem tudta biztonságosan helyreállítani a helyi bejelentkezés és a függőben lévő lejátszás adatait. Jelentkezz be újra." + }, + "common": { + "cancel": "Mégse", + "save": "Mentés", + "close": "Bezárás", + "clear": "Törlés", + "reset": "Visszaállítás", + "later": "Később", + "submit": "Beküldés", + "confirm": "Megerősítés", + "retry": "Újra", + "logout": "Kijelentkezés", + "unknown": "Ismeretlen", + "refresh": "Frissítés", + "yes": "Igen", + "no": "Nem", + "delete": "Törlés", + "edit": "Szerkesztés", + "shuffle": "Véletlenszerű lejátszás", + "addTo": "Hozzáadás...", + "createNew": "Új létrehozása", + "connect": "Csatlakozás", + "disconnect": "Kapcsolat bontása", + "play": "Lejátszás", + "pause": "Szünet", + "resume": "Folytatás", + "error": "Hiba", + "search": "Keresés", + "home": "Kezdőlap", + "back": "Vissza", + "settings": "Beállítások", + "mute": "Némítás", + "ok": "OK", + "off": "Ki", + "seasonNumber": "${number}. évad", + "episodeNumberTitle": "${number}. epizód - ${title}", + "chapterNumber": "${number}. fejezet", + "reconnect": "Újracsatlakozás", + "viewAll": "Összes megtekintése", + "checkingNetwork": "Hálózat ellenőrzése...", + "loadingServers": "Szerverek betöltése...", + "connectingToServers": "Csatlakozás a szerverekhez...", + "startingOfflineMode": "Kapcsolat nélküli mód indítása...", + "loading": "Betöltés...", + "fullscreen": "Teljes képernyő", + "exitFullscreen": "Kilépés a teljes képernyőből", + "pressBackAgainToExit": "A kilépéshez nyomd meg újra a Vissza gombot" + }, + "screens": { + "licenses": "Licencek", + "switchProfile": "Profilváltás", + "subtitleStyling": "Feliratok stílusa", + "mpvConfig": "mpv.conf", + "logs": "Naplók" + }, + "update": { + "available": "Frissítés érhető el", + "versionAvailable": "A(z) ${version} verzió elérhető", + "currentVersion": "Jelenlegi: ${version}", + "skipVersion": "Verzió kihagyása", + "viewRelease": "Kiadási megjegyzések", + "latestVersion": "A legújabb verziót használod", + "checkFailed": "Nem sikerült az újabb frissítések ellenőrzése" + }, + "settings": { + "title": "Beállítások", + "supportDeveloper": "Plezy támogatása", + "supportDeveloperDescription": "A fejlesztés támogatása Liberapay-en keresztül", + "language": "Nyelv", + "theme": "Téma", + "appearance": "Megjelenés", + "videoPlayback": "Videólejátszás", + "videoPlaybackDescription": "Lejátszási viselkedés beállítása", + "advanced": "Haladó", + "episodePosterMode": "Epizódborító stílusa", + "seriesPoster": "Sorozatborító", + "seasonPoster": "Évadborító", + "episodeThumbnail": "Bélyegkép", + "showHeroSectionDescription": "Kiemelt tartalmak sávjának megjelenítése a kezdőlapon", + "secondsLabel": "Másodperc", + "minutesLabel": "Perc", + "secondsShort": "mp", + "minutesShort": "p", + "durationHint": "Add meg az időtartamot (${min}-${max})", + "systemTheme": "Rendszer", + "lightTheme": "Világos", + "darkTheme": "Sötét", + "oledTheme": "OLED", + "libraryDensity": "Könyvtársűrűség", + "compact": "Kompakt", + "comfortable": "Kényelmes", + "tvCornerSpotlightBackdrop": "Sarokban megjelenő kiemelt háttérkép", + "tvCornerSpotlightBackdropDescription": "A kiemelt háttérkép megjelenítése a jobb felső sarokban a teljes képernyő helyett", + "viewMode": "Nézetmód", + "gridView": "Rács", + "listView": "Lista", + "showHeroSection": "Kiemelt sáv megjelenítése", + "continueWatchingAction": "A „Folytatás” művelete", + "continueWatchingPlay": "Lejátszás", + "continueWatchingDetails": "Részletek megnyitása", + "episodeAction": "Az epizódkártya művelete", + "episodePlay": "Lejátszás", + "episodeDetails": "Részletek megnyitása", + "useGlobalHubs": "Kezdőlap elrendezés használata", + "useGlobalHubsDescription": "Egyesített kezdőlapi blokkok megjelenítése. Egyébként a könyvtári ajánlások jelennek meg.", + "showServerNameOnHubs": "Szervernév megjelenítése a blokkoknál", + "showServerNameOnHubsDescription": "Mindig jelenjen meg a szerver neve a blokkok címében.", + "groupLibrariesByServer": "Könyvtárak csoportosítása szerver szerint", + "groupLibrariesByServerDescription": "Az oldalsáv könyvtárainak csoportosítása a médiaszerverek alatt.", + "alwaysKeepSidebarOpen": "Oldalsáv mindig nyitva", + "alwaysKeepSidebarOpenDescription": "Az oldalsáv kibontva marad, a tartalom területe igazodik hozzá", + "showUnwatchedCount": "Nem látott elemek számának megjelenítése", + "showUnwatchedCountDescription": "Megjeleníti a még nem látott epizódok számát a sorozatoknál és évadoknál", + "showEpisodeNumberOnCards": "Epizódszám megjelenítése a kártyákon", + "showEpisodeNumberOnCardsDescription": "Megjeleníti az évad- és epizódszámot az epizódkártyákon", + "showSeasonPostersOnTabs": "Évadborítók megjelenítése a füleken", + "showSeasonPostersOnTabsDescription": "Megjeleníti az egyes évadok borítóját a fülük felett", + "tvFullCardLayout": "Teljes TV-kártyák", + "tvFullCardLayoutDescription": "Csak képet tartalmazó TV-kártyák használata, rájuk helyezett színésznevekkel", + "focusGlow": "Kijelölési ragyogás", + "focusGlowDescription": "Finom ragyogás rajzolása a kijelölt kártya köré", + "visualEffects": "Vizuális effektek", + "visualEffectsAuto": "Automatikus", + "visualEffectsAutoDescription": "Effektek automatikus csökkentése alacsony teljesítményű eszközökön", + "visualEffectsFull": "Teljes", + "visualEffectsReduced": "Csökkentett", + "visualEffectsReducedDescription": "Kevesebb animáció és alacsonyabb felbontású képek", + "hideSpoilers": "Spoilerek elrejtése a nem látott epizódoknál", + "hideSpoilersDescription": "Bélyegképek és leírások elhomályosítása a még meg nem nézett epizódoknál", + "playerBackend": "Lejátszómotor", + "exoPlayer": "ExoPlayer", + "mpv": "mpv", + "hardwareDecoding": "Hardveres dekódolás", + "hardwareDecodingDescription": "Hardveres gyorsítás használata, ha elérhető", + "bufferSize": "Puffer mérete", + "bufferSizeMB": "${size} MB", + "bufferSizeAuto": "Automatikus (ajánlott)", + "bufferSizeWarning": "${heap} MB memória érhető el. A(z) ${size} MB méretű puffer befolyásolhatja a lejátszást.", + "defaultQualityTitle": "Alapértelmezett minőség", + "musicQualityTitle": "Zene minősége", + "subtitleStyling": "Feliratok stílusa", + "subtitleStylingDescription": "Feliratok megjelenésének testreszabása", + "smallSkipDuration": "Kis ugrás időtartama", + "largeSkipDuration": "Nagy ugrás időtartama", + "rewindOnResume": "Visszatekerés folytatáskor", + "secondsUnit": "${seconds} másodperc", + "defaultSleepTimer": "Alapértelmezett elalvási időzítő", + "minutesUnit": "${minutes} perc", + "rememberTrackSelections": "Sávválasztások megjegyzése sorozatonként/filmenként", + "rememberTrackSelectionsDescription": "Hang- és feliratválasztások megjegyzése címenként", + "showChapterMarkersOnTimeline": "Fejezetjelölők megjelenítése az idősávon", + "showChapterMarkersOnTimelineDescription": "Az idősáv felosztása a fejezetek határainál", + "clickVideoTogglesPlayback": "Kattintás a videóra a lejátszás/szünet váltásához", + "clickVideoTogglesPlaybackDescription": "A videóra kattintva vált a lejátszás/szünet, a vezérlők megjelenítése helyett.", + "videoPlayerControls": "Videólejátszó vezérlői", + "keyboardShortcuts": "Billentyűparancsok", + "keyboardShortcutsDescription": "Billentyűparancsok testreszabása", + "videoPlayerNavigation": "Videólejátszó-navigáció", + "videoPlayerNavigationDescription": "A nyílbillentyűk használata a videólejátszó vezérlői közötti navigáláshoz", + "watchTogetherRelay": "Watch Together-relé", + "watchTogetherRelayDescription": "Egyéni relé beállítása. Mindenkinek ugyanazt a szervert kell használnia.", + "watchTogetherRelayHint": "https://my-relay.example.com", + "watchTogetherRelayInvalid": "Adj meg egy érvényes HTTP- vagy HTTPS-alapú relészerver-URL-t.", + "crashReporting": "Összeomlási jelentések", + "crashReportingDescription": "Összeomlási jelentések küldése az alkalmazás fejlesztésének elősegítéséhez", + "debugLogging": "Hibakeresési naplózás", + "debugLoggingDescription": "Részletes naplózás engedélyezése a hibaelhárításhoz", + "viewLogs": "Naplók megtekintése", + "viewLogsDescription": "Alkalmazásnaplók megtekintése", + "clearCache": "Gyorsítótár törlése", + "clearCacheDescription": "A gyorsítótárazott képek és adatok törlése. A tartalom lassabban töltődhet be.", + "clearCacheSuccess": "A gyorsítótár sikeresen törölve", + "resetSettings": "Beállítások visszaállítása", + "resetSettingsDescription": "Az alapértelmezett beállítások visszaállítása. Ez a művelet nem vonható vissza.", + "resetSettingsSuccess": "A beállítások sikeresen visszaállítva", + "backup": "Biztonsági mentés", + "exportSettings": "Beállítások exportálása", + "exportSettingsDescription": "Beállítások mentése fájlba", + "exportSettingsSuccess": "Beállítások exportálva", + "importSettings": "Beállítások importálása", + "importSettingsDescription": "Beállítások visszaállítása fájlból", + "importSettingsConfirm": "Ez felülírja a jelenlegi beállításaidat. Folytatod?", + "importSettingsSuccess": "Beállítások importálva", + "importSettingsInvalidFile": "Ez a fájl nem érvényes Plezy-beállításexport", + "importSettingsNoUser": "Jelentkezz be a beállítások importálása előtt", + "shortcutsReset": "A billentyűparancsok visszaálltak az alapértelmezettekre", + "about": "Névjegy", + "aboutDescription": "Alkalmazásadatok és licencek", + "updates": "Frissítések", + "updateAvailable": "Frissítés érhető el", + "checkForUpdates": "Frissítések keresése", + "autoCheckUpdatesOnStartup": "Frissítések automatikus keresése indításkor", + "autoCheckUpdatesOnStartupDescription": "Értesítés küldése indításkor, ha új frissítés érhető el", + "validationErrorEnterNumber": "Adj meg egy érvényes számot", + "validationErrorDuration": "Az időtartamnak ${min} és ${max} ${unit} között kell lennie", + "shortcutAlreadyAssigned": "A billentyűparancs már hozzá van rendelve a következőhöz: ${action}", + "shortcutUpdated": "Billentyűparancs frissítve a következőhöz: ${action}", + "saveFailed": "Nem sikerült menteni a módosításokat. Próbáld újra.", + "autoSkip": "Automatikus átugrás", + "autoSkipIntro": "Intró automatikus átugrása", + "autoSkipIntroDescription": "Az intrójelölők automatikus átugrása néhány másodperc után", + "autoSkipCredits": "Stáblista automatikus átugrása", + "autoSkipCreditsDescription": "A stáblista automatikus átugrása és a következő epizód lejátszása", + "forceSkipMarkerFallback": "Tartalék jelölők kényszerítése", + "forceSkipMarkerFallbackDescription": "Fejezetcím-minták használata akkor is, ha a Plex rendelkezik jelölőkkel", + "autoSkipDelay": "Automatikus átugrás késleltetése", + "autoSkipDelayDescription": "Várakozás ${seconds} másodpercig az automatikus átugrás előtt", + "introPattern": "Intrójelölő mintája", + "introPatternDescription": "Reguláris kifejezés az intrójelölők illesztéséhez a fejezetcímekben", + "creditsPattern": "Stáblistajelölő mintája", + "creditsPatternDescription": "Reguláris kifejezés a stáblistajelölők illesztéséhez a fejezetcímekben", + "invalidRegex": "Érvénytelen reguláris kifejezés", + "regex": "Reguláris kifejezés", + "downloads": "Letöltések", + "downloadLocationDescription": "Válaszd ki a letöltött tartalom tárolási helyét", + "downloadLocationDefault": "Alapértelmezett (alkalmazástárhely)", + "downloadLocationCustom": "Egyéni hely", + "selectFolder": "Mappa kiválasztása", + "resetToDefault": "Visszaállítás alapértelmezettre", + "currentPath": "Jelenlegi: ${path}", + "downloadLocationChanged": "A letöltési hely megváltozott", + "downloadLocationReset": "A letöltési hely visszaállt az alapértelmezettre", + "downloadLocationInvalid": "A kiválasztott mappa nem írható", + "downloadLocationPickerUnavailable": "A mappaválasztás ezen az eszközön nem érhető el", + "downloadOnWifiOnly": "Letöltés csak Wi-Fi-n", + "downloadOnWifiOnlyDescription": "Letöltések megakadályozása mobiladat-használat esetén", + "autoRemoveWatchedDownloads": "Megnézett letöltések automatikus eltávolítása", + "autoRemoveWatchedDownloadsDescription": "A megnézett letöltések automatikus törlése", + "cellularDownloadBlocked": "A letöltések mobilhálózaton le vannak tiltva. Használj Wi-Fi-t, vagy módosítsd a beállítást.", + "maxVolume": "Maximális hangerő", + "maxVolumeDescription": "A hangerő 100% fölé emelésének engedélyezése halk tartalmak esetén", + "maxVolumePercent": "${percent}%", + "discordRichPresence": "Discord Rich Presence", + "discordRichPresenceDescription": "Megjeleníti a Discordon, hogy éppen mit nézel", + "services": "Szolgáltatások", + "servicesDescription": "Trakt, MyAnimeList, Seerr és egyéb szolgáltatások csatlakoztatása", + "manageLibrariesDescription": "Könyvtárak sorrendjének módosítása és elrejtése", + "companionRemoteServer": "Kísérőtávirányító szervere", + "companionRemoteServerDescription": "Lehetővé teszi, hogy a hálózaton lévő mobileszközökről vezéreld az alkalmazást", + "autoPip": "Automatikus kép a képben (PiP)", + "autoPipDescription": "Lejátszás közben az alkalmazás elhagyásakor automatikusan kép a képben módra vált", + "matchContentFrameRate": "Képkockasebesség illesztése a tartalomhoz", + "matchContentFrameRateDescription": "A kijelző frissítési frekvenciájának igazítása a videóhoz", + "matchRefreshRate": "Frissítési frekvencia illesztése", + "matchRefreshRateDescription": "A kijelző frissítési frekvenciájának igazítása teljes képernyőn", + "matchDynamicRange": "Dinamikatartomány illesztése", + "matchDynamicRangeDescription": "HDR bekapcsolása HDR-tartalmak esetén, majd visszaváltás SDR-re", + "displaySwitchDelay": "Kijelzőváltási késleltetés", + "tunneledPlayback": "Alagutas lejátszás", + "tunneledPlaybackDescription": "Videóalagút használata. Tiltsd le, ha HDR-lejátszáskor fekete a kép.", + "audioPassthrough": "Hangtovábbítás (passthrough)", + "audioPassthroughDescription": "Dolby/DTS-hang továbbítása az erősítőre vagy a TV-re újrakódolás nélkül, a térhangzás megőrzésével. Kapcsold ki, ha nincs hang.", + "audioPassthroughDescriptionAppleTv": "Az Apple natív Dolby-dekóderének használata Dolby Digital Plushoz, az Atmost is beleértve. A DTS és a TrueHD továbbra is többcsatornás PCM-ként szól. Kapcsold ki, ha nincs hang.", + "audioDownmix": "Lekeverés sztereóra", + "audioDownmixDescription": "A térhangzás lekeverése két csatornára sztereó hangszórókhoz vagy fejhallgatókhoz", + "downmixCenterBoost": "Középső csatorna kiemelése", + "downmixCenterBoostValue": "${db} dB", + "downmixCenterBoostLabel": "Kiemelés (dB)", + "downmixCenterBoostShort": "dB", + "audioDownmixNormalize": "Hangerő normalizálása lekeveréskor", + "audioDownmixNormalizeDescription": "A keverés szintjének csökkentése a torzítás elkerülésére. Kapcsold ki az eredeti hangerő megőrzéséhez (a hangos jelenetek torzíthatnak).", + "atmosDiagnostics": "Atmos kimeneti teszt", + "atmosDiagnosticsDescription": "Dolby Atmos kimenet diagnosztizálása tesztjelek lejátszásával a rendszerlejátszón keresztül", + "atmosTestHlsAtmos": "Apple Atmos folyam", + "atmosTestHlsAtmosDescription": "Igazoltan működő Dolby Atmos-adatfolyam. Az erősítő kijelzőjén a Dolby Atmos formátumnak kell megjelennie.", + "atmosTestHlsControl": "Apple térhangzású folyam", + "atmosTestHlsControlDescription": "Atmos nélküli ellenőrző adatfolyam. Az erősítő kijelzőjén térhangzásnak kell megjelennie, Atmos nélkül.", + "atmosTestRawStream": "Nyers EAC3 folyam", + "atmosTestRawStreamDescription": "A tesztfájlt pontosan úgy közvetíti, mint a lejátszón belüli Atmos lejátszás. Szükséges a tesztfájl URL-je.", + "atmosTestRawFile": "Nyers EAC3 fájl", + "atmosTestRawFileDescription": "Ismert hosszúságú tesztfájlt játszik le. Szükséges a tesztfájl URL-je.", + "atmosTestStop": "Teszt leállítása", + "atmosTestUrl": "Tesztfájl URL-je", + "atmosTestUrlDescription": "Nyers .ec3 Dolby Atmos fájl HTTP URL-je (pl. ffmpeg-gel kinyerve)", + "atmosTestUrlMissing": "Először állítsd be a tesztfájl URL-jét", + "atmosTestStatus": "Állapot", + "dvConversionMode": "Dolby Vision-átalakítás", + "dvConversionModeDescription": "Válaszd ki, hogyan kezelje az ExoPlayer a Dolby Vision Profile 7 fájlokat.", + "dvConversionAuto": "Automatikus", + "dvConversionNative": "Natív / letiltva", + "dvConversionDv81": "P7 → P8.1", + "dvConversionHevcStrip": "P7 → HEVC", + "dvConversionAutoDescription": "Az eszköz képességeinek felismerése és szükség esetén a szokásos tartalék megoldás használata", + "dvConversionNativeDescription": "A natív DV7 kényszerítése és a DV-átalakítási újrapróbálkozás letiltása", + "dvConversionDv81Description": "A közvetlen RPU-átalakítás kényszerítése Dolby Vision Profile 8.1-re", + "dvConversionHevcStripDescription": "A Dolby Vision RPU/EL-rétegek eltávolítása és egyszerű HEVC-ként való megjelenítés", + "requireProfileSelectionOnOpen": "Profil kérése az alkalmazás megnyitásakor", + "requireProfileSelectionOnOpenDescription": "Profilválasztó megjelenítése minden alkalommal, amikor az alkalmazást megnyitod", + "forceTvMode": "TV-mód kényszerítése", + "forceTvModeDescription": "TV-elrendezés kényszerítése az automatikus felismeréssel nem rendelkező eszközökön. Újraindítást igényel.", + "startInFullscreen": "Indítás teljes képernyőn", + "startInFullscreenDescription": "A Plezy megnyitása teljes képernyős módban indításkor", + "exitFullscreenOnPlayerClose": "Kilépés a teljes képernyőből a lejátszó bezárásakor", + "exitFullscreenOnPlayerCloseDescription": "Automatikus kilépés a teljes képernyőből a videólejátszó bezárásakor", + "autoHidePerformanceOverlay": "Teljesítményadatok automatikus elrejtése", + "autoHidePerformanceOverlayDescription": "A teljesítményadatok elhalványítása a lejátszásvezérlőkkel együtt", + "showNavBarLabels": "Navigációs sáv címkéinek megjelenítése", + "showNavBarLabelsDescription": "Szöveges címkék megjelenítése a navigációs sáv ikonjai alatt", + "startupSection": "Indítási oldal", + "liveTvDefaultFavorites": "Kedvenc csatornák alapértelmezés szerint", + "liveTvDefaultFavoritesDescription": "Csak a kedvenc csatornák megjelenítése az Élő TV megnyitásakor", + "display": "Kijelző", + "homeScreen": "Kezdőképernyő", + "navigation": "Navigáció", + "window": "Ablak", + "content": "Tartalom", + "player": "Lejátszó", + "subtitlesAndConfig": "Feliratok és konfiguráció", + "seekAndTiming": "Tekerés és időzítés", + "behavior": "Viselkedés" + }, + "search": { + "hint": "Keresés filmek, sorozatok és zenék között...", + "tryDifferentTerm": "Próbálj másik keresési kifejezést", + "searchYourMedia": "Keresés a saját médiatartalmak között", + "enterTitleActorOrKeyword": "Adj meg egy címet, színészt vagy kulcsszót" + }, + "hotkeys": { + "setShortcutFor": "Billentyűparancs beállítása ehhez: ${actionName}", + "clearShortcut": "Billentyűparancs törlése", + "noShortcutSet": "Nincs billentyűparancs beállítva", + "currentShortcut": "Jelenlegi billentyűparancs:", + "pressToRecord": "Válaszd ki a billentyűparancs rögzítéséhez", + "recordingShortcut": "Nyomd meg most a billentyűparancsot", + "actions": { + "playPause": "Lejátszás/Szünet", + "volumeUp": "Hangerő fel", + "volumeDown": "Hangerő le", + "seekForward": "Tekerés előre (${seconds} mp)", + "seekBackward": "Tekerés hátra (${seconds} mp)", + "fullscreenToggle": "Teljes képernyős mód váltása", + "muteToggle": "Némítás be- és kikapcsolása", + "subtitleToggle": "Feliratok be- és kikapcsolása", + "audioTrackNext": "Következő hangsáv", + "subtitleTrackNext": "Következő feliratsáv", + "chapterNext": "Következő fejezet", + "chapterPrevious": "Előző fejezet", + "episodeNext": "Következő epizód", + "episodePrevious": "Előző epizód", + "speedIncrease": "Sebesség növelése", + "speedDecrease": "Sebesség csökkentése", + "speedReset": "Sebesség alaphelyzetbe állítása", + "zoomIn": "Nagyítás", + "zoomOut": "Kicsinyítés", + "zoomReset": "Nagyítás alaphelyzetbe állítása", + "subSeekNext": "Ugrás a következő feliratra", + "subSeekPrev": "Ugrás az előző feliratra", + "shaderToggle": "Shaderek be- és kikapcsolása", + "skipMarker": "Intró/stáblista átugrása", + "screenshot": "Képernyőkép készítése" + } + }, + "fileInfo": { + "title": "Fájlinformáció", + "video": "Videó", + "audio": "Hang", + "file": "Fájl", + "advanced": "Haladó", + "codec": "Kodek", + "resolution": "Felbontás", + "bitrate": "Bitráta", + "frameRate": "Képkockasebesség", + "aspectRatio": "Méretarány", + "profile": "Profil", + "bitDepth": "Bitmélység", + "colorSpace": "Színtér", + "colorRange": "Színtartomány", + "colorPrimaries": "Elsődleges színek", + "chromaSubsampling": "Krominancia-alulmintavételezés", + "channels": "Csatornák", + "subtitles": "Feliratok", + "overallBitrate": "Összesített bitráta", + "path": "Elérési út", + "size": "Méret", + "container": "Konténer", + "duration": "Időtartam", + "optimizedForStreaming": "Adatfolyam-továbbításra optimalizálva", + "has64bitOffsets": "64 bites eltolások" + }, + "mediaMenu": { + "markAsWatched": "Megjelölés megtekintettként", + "markAsUnwatched": "Megjelölés nem megtekintettként", + "removeFromContinueWatching": "Eltávolítás a folytatásból", + "viewDetails": "Részletek megtekintése", + "goToSeries": "Ugrás a sorozathoz", + "shufflePlay": "Véletlenszerű lejátszás", + "shuffleNotAvailableOffline": "A véletlenszerű lejátszás nem érhető el offline", + "fileInfo": "Fájlinformáció", + "deleteFromServer": "Törlés a szerverről", + "confirmDelete": "Törlöd ezt a médiát és a fájljait a szerveredről?", + "deleteMultipleWarning": "Ez magában foglalja az összes epizódot és azok fájljait.", + "mediaDeletedSuccessfully": "Médiaelem sikeresen törölve", + "mediaFailedToDelete": "Nem sikerült a médiaelem törlése", + "rate": "Értékelés", + "playFromBeginning": "Lejátszás az elejétől", + "playVersion": "Verzió lejátszása..." + }, + "rateSheet": { + "title": "Értékelés", + "server": "Szerver", + "favorite": "Kedvenc", + "favorited": "Kedvencekhez hozzáadva", + "saved": "Mentve", + "notAvailable": "Nincs találat", + "noConnectedServices": "Az értékeléshez csatlakoztass egy szolgáltatást a Beállításokban." + }, + "accessibility": { + "mediaCardMovie": "${title}, film", + "mediaCardShow": "${title}, TV-sorozat", + "mediaCardEpisode": "${title}, ${episodeInfo}", + "mediaCardSeason": "${title}, ${seasonInfo}", + "mediaCardWatched": "megtekintve", + "mediaCardPartiallyWatched": "${percent} százalék megtekintve", + "mediaCardUnwatched": "még nem láttad", + "tapToPlay": "Koppints a lejátszáshoz", + "decrease": "Csökkentés", + "increase": "Növelés", + "decreaseValue": "${label} csökkentése", + "increaseValue": "${label} növelése", + "hue": "Árnyalat", + "saturation": "Telítettség", + "brightness": "Fényerő", + "hexColor": "Hex színkód", + "expandText": "Szöveg kibontása", + "collapseText": "Szöveg összecsukása", + "alphabetNavigation": "Ábécé szerinti navigáció", + "alphabetScrollHint": "A betűnkénti léptetéshez pöccints felfelé vagy lefelé", + "rowColumnPosition": "${row}. sor a(z) ${rowCount} sorból, ${column}. oszlop a(z) ${columnCount} oszlopból", + "rowPosition": "${row}. sor a(z) ${rowCount} sorból" + }, + "tooltips": { + "shufflePlay": "Véletlenszerű lejátszás", + "playTrailer": "Előzetes lejátszása", + "markAsWatched": "Megjelölés megtekintettként", + "markAsUnwatched": "Megjelölés nem megtekintettként" + }, + "audioTracks": { + "track": "${n}. hangsáv" + }, + "videoControls": { + "audioLabel": "Hang", + "subtitlesLabel": "Feliratok", + "resetToZero": "Visszaállítás 0 ms-ra", + "addTime": "+${amount}${unit}", + "minusTime": "-${amount}${unit}", + "playsLater": "${label}: későbbre állítva", + "playsEarlier": "${label}: korábbra állítva", + "noOffset": "Nincs eltolás", + "letterbox": "Fekete sávok", + "fillScreen": "Képernyő kitöltése", + "stretch": "Nyújtás", + "lockRotation": "Forgatás zárolása", + "unlockRotation": "Forgatás feloldása", + "timerActive": "Időzítő aktív", + "playbackWillPauseIn": "A lejátszás ${duration} múlva szünetel", + "sleepTimerEndOfVideo": "Jelenlegi videó vége", + "sleepTimerStopAtHeader": "Leállítás ekkor", + "sleepTimerDurationHeader": "Időzítő", + "playbackWillPauseAtEnd": "A lejátszás szünetel a videó végén", + "stillWatching": "Még nézed?", + "pausingIn": "Szüneteltetés ${seconds} mp múlva", + "continueWatching": "Folytatás", + "autoPlayNext": "Következő automatikus lejátszása", + "playNext": "Következő lejátszása", + "playButton": "Lejátszás", + "pauseButton": "Szünet", + "showPlaybackControls": "Lejátszásvezérlők megjelenítése", + "hidePlaybackControls": "Lejátszásvezérlők elrejtése", + "seekBackwardButton": "Tekerés hátra ${seconds} másodperccel", + "seekForwardButton": "Tekerés előre ${seconds} másodperccel", + "previousButton": "Előző epizód", + "nextButton": "Következő epizód", + "previousChapterButton": "Előző fejezet", + "nextChapterButton": "Következő fejezet", + "muteButton": "Némítás", + "unmuteButton": "Hang visszakapcsolása", + "settingsButton": "Lejátszási beállítások", + "tracksButton": "Hang és feliratok", + "chaptersButton": "Fejezetek", + "versionQualityButton": "Verzió és minőség", + "versionColumnHeader": "Verzió", + "qualityColumnHeader": "Minőség", + "qualityOriginal": "Eredeti", + "qualityPresetLabel": "${resolution}p ${bitrate} Mbps", + "transcodeUnavailableFallback": "A transzkódolás nem érhető el — eredeti minőség lejátszása", + "subtitleUnavailableFallback": "A kiválasztott feliratot nem sikerült betölteni — folytatás felirat nélkül", + "pipButton": "Kép a képben mód", + "aspectRatioButton": "Méretarány", + "ambientLighting": "Környezeti megvilágítás", + "fullscreenButton": "Teljes képernyős mód bekapcsolása", + "exitFullscreenButton": "Teljes képernyős mód kikapcsolása", + "alwaysOnTopButton": "Mindig legfelül", + "rotationLockButton": "Elforgatás zárolása", + "lockScreen": "Képernyő zárolása", + "screenLockButton": "Képernyőzár", + "longPressToUnlock": "Nyomd hosszan a feloldáshoz", + "timelineSlider": "Videó idősáv", + "volumeSlider": "Hangerő", + "endsAt": "Vége: ${time}", + "pipActive": "Lejátszás kép a képben módban", + "pipFailed": "Nem sikerült elindítani a kép a képben módot", + "screenshotSaved": "Képernyőkép elmentve", + "zoomPercent": "Nagyítás ${percent}%", + "pipErrors": { + "androidVersion": "Android 8.0 vagy újabb szükséges", + "iosVersion": "iOS 15.0 vagy újabb szükséges", + "permissionDisabled": "A kép a képben mód le van tiltva. Engedélyezd a rendszerbeállításokban.", + "notSupported": "Az eszköz nem támogatja a kép a képben módot", + "voSwitchFailed": "Nem sikerült átváltani a videókimenetet a kép a képben módhoz", + "failed": "Nem sikerült elindítani a kép a képben módot", + "unknown": "Hiba történt: ${error}" + }, + "chapters": "Fejezetek", + "noChaptersAvailable": "Nincsenek elérhető fejezetek", + "queue": "Lejátszási sor", + "noQueueItems": "Nincsenek elemek a sorban", + "searchSubtitles": "Feliratok keresése", + "language": "Nyelv", + "noSubtitlesFound": "Nem találhatók feliratok", + "noSubtitlesAvailable": "Nincsenek elérhető feliratok", + "noAudioTracksAvailable": "Nincsenek elérhető hangsávok", + "noTracksAvailable": "Nincsenek elérhető sávok", + "subtitleDownloaded": "Felirat letöltve", + "subtitleDownloadedNotApplied": "Felirat letöltve, de nem sikerült kiválasztani", + "subtitleDownloadFailed": "Nem sikerült a felirat letöltése", + "searchLanguages": "Nyelvek keresése..." + }, + "userStatus": {}, + "messages": { + "markedAsWatched": "Megjelölve megtekintettként", + "markedAsUnwatched": "Megjelölve nem megtekintettként", + "markedAsWatchedOffline": "Megjelölve megtekintettként (szinkronizálás online állapotban)", + "markedAsUnwatchedOffline": "Megjelölve nem megtekintettként (szinkronizálás online állapotban)", + "autoRemovedWatchedDownload": "Automatikusan eltávolítva: ${title}", + "autoRemovedWatchedDownloads": { + "one": "${n} megtekintett letöltés automatikusan eltávolítva", + "other": "${n} megtekintett letöltés automatikusan eltávolítva" + }, + "removedFromContinueWatching": "Eltávolítva a folytatásból", + "errorLoading": "Hiba: ${error}", + "streamInterrupted": "Az adatfolyam megszakadt. Az újrapróbálkozáshoz indítsd el a lejátszást, vagy tekerj másik pozícióra.", + "liveStreamInterrupted": "Az élő adás megszakadt. Nyomd meg a lejátszást az újrapróbálkozáshoz.", + "fileInfoNotAvailable": "A fájlinformáció nem érhető el", + "playbackAuthenticationRequired": "Az elem lejátszásához jelentkezz be újra a médiaszerverre.", + "playbackServerUnavailable": "A médiaszerver nem érhető el. Próbáld újra később.", + "playbackDataInvalid": "A szerver érvénytelen lejátszási adatokat küldött.", + "playbackCancelled": "A lejátszás megszakítva.", + "playbackFailed": "Nem sikerült elindítani a lejátszást.", + "errorLoadingFileInfo": "Hiba a fájlinformációk betöltésekor: ${error}", + "errorLoadingSeries": "Hiba a sorozat betöltésekor", + "musicNotSupported": "A zenelejátszás még nem támogatott", + "noDescriptionAvailable": "Nincs elérhető leírás", + "noProfilesAvailable": "Nincsenek elérhető profilok", + "contactAdminForProfiles": "Lépj kapcsolatba a szerver adminisztrátorával profilok hozzáadásához", + "unableToDetermineLibrarySection": "Nem sikerült meghatározni az elem könyvtári részlegét", + "logsCleared": "Naplók törölve", + "logsCopied": "Naplók a vágólapra másolva", + "noLogsAvailable": "Nincsenek elérhető naplók", + "libraryScanning": "\"${title}\" beolvasása...", + "libraryScanStarted": "Könyvtár beolvasása elindítva a következőhöz: \"${title}\"", + "libraryScanFailed": "Nem sikerült a könyvtár beolvasása: ${error}", + "metadataRefreshing": "Metaadatok frissítése a következőhöz: \"${title}\"...", + "metadataRefreshStarted": "Metaadatok frissítése elindítva a következőhöz: \"${title}\"", + "metadataRefreshFailed": "Nem sikerült a metaadatok frissítése: ${error}", + "logoutConfirm": "Biztosan ki szeretnél jelentkezni?", + "noSeasonsFound": "Nem találhatók évadok", + "seasonsLoadFailed": "Nem sikerült az évadok betöltése", + "noEpisodesFound": "Nem találhatók epizódok az első évadban", + "noEpisodesFoundGeneral": "Nem találhatók epizódok", + "episodesLoadFailed": "Nem sikerült az epizódok betöltése", + "noResultsFound": "Nincs találat", + "sleepTimerSet": "Elalvási időzítő beállítva: ${label}", + "noItemsAvailable": "Nincsenek elérhető elemek", + "failedToCreatePlayQueueNoItems": "Nem sikerült létrehozni a lejátszási sort — nincsenek elemek", + "failedPlayback": "Nem sikerült a művelet (${action}): ${error}", + "switchingToCompatiblePlayer": "Váltás kompatibilis lejátszóra...", + "serverLimitTitle": "A lejátszás nem sikerült", + "serverLimitBody": "Szerverhiba (HTTP 500). A munkamenetet valószínűleg egy sávszélességi vagy átkódolási korlát utasította el. Kérd meg a tulajdonost a korlát módosítására.", + "logsUploaded": "Naplók feltöltve", + "logsUploadFailed": "Nem sikerült a naplók feltöltése", + "logId": "Naplóazonosító" + }, + "subtitlingStyling": { + "text": "Szöveg", + "border": "Keret", + "background": "Háttér", + "fontSize": "Betűméret", + "textColor": "Szövegszín", + "borderSize": "Keretméret", + "borderColor": "Keretszín", + "backgroundOpacity": "Háttér átlátszatlansága", + "backgroundColor": "Háttérszín", + "position": "Pozíció", + "assOverride": "ASS felülbírálása", + "overrideScale": "Skálázás", + "overrideForce": "Kényszerítés", + "overrideStrip": "Stílus eltávolítása", + "positionTop": "Fent", + "positionBottom": "Lent", + "bold": "Félkövér", + "italic": "Dőlt", + "renderResolution": "Renderelési felbontás", + "renderResolutionScreen": "Képernyőfelbontás", + "renderResolutionVideo": "Videófelbontás" + }, + "mpvConfig": { + "title": "mpv.conf", + "description": "Haladó videólejátszó beállítások", + "presets": "Előbeállítások", + "noPresets": "Nincsenek mentett előbeállítások", + "saveAsPreset": "Mentés előbeállításként...", + "presetName": "Előbeállítás neve", + "presetNameHint": "Add meg az előbeállítás nevét", + "loadPreset": "Betöltés", + "deletePreset": "Törlés", + "presetSaved": "Előbeállítás mentve", + "presetLoaded": "Előbeállítás betöltve", + "presetDeleted": "Előbeállítás törölve", + "confirmDeletePreset": "Biztosan törölni szeretnéd ezt az előbeállítást?", + "configPlaceholder": "gpu-api=vulkan\nhwdec=auto\n# megjegyzés" + }, + "dialog": { + "confirmAction": "Művelet megerősítése" + }, + "profiles": { + "addPlezyProfile": "Plezy profil hozzáadása", + "switchingProfile": "Profilváltás…", + "deleteThisProfileTitle": "Törlöd ezt a profilt?", + "deleteThisProfileMessage": "${displayName} eltávolítása. A kapcsolatokat nem érinti.", + "active": "Aktív", + "manage": "Kezelés", + "delete": "Törlés", + "signOut": "Kijelentkezés", + "signOutPlexTitle": "Kijelentkezel a Plexből?", + "signOutPlexMessage": "Eltávolítod a(z) ${displayName} profilt és az összes Plex Home-felhasználót? Bármikor visszajelentkezhetsz.", + "signedOutPlex": "Kijelentkezve a Plexből.", + "signOutFailed": "A kijelentkezés nem sikerült.", + "sectionTitle": "Profilok", + "summarySingle": "Adj hozzá profilokat a kezelt felhasználók és a helyi profilok együttes használatához", + "summaryMultipleWithActive": "${count} profil · aktív: ${activeName}", + "summaryMultiple": "${count} profil", + "removeConnectionTitle": "Eltávolítod a kapcsolatot?", + "removeConnectionMessage": "Eltávolítod ${displayName} hozzáférését a(z) ${connectionLabel} kapcsolathoz. Más profilok megtartják.", + "deleteProfileTitle": "Törlöd a profilt?", + "deleteProfileMessage": "Eltávolítod a(z) ${displayName} profilt és annak kapcsolatait. A szerverek elérhetőek maradnak.", + "profileNameLabel": "Profil neve", + "pinProtectionLabel": "PIN-kódos védelem", + "pinManagedByPlex": "A PIN-kódot a Plex kezeli. Szerkesztés a plex.tv oldalon.", + "noPinSetEditOnPlex": "Nincs PIN beállítva. PIN kéréséhez szerkeszd az otthoni felhasználót a plex.tv-n.", + "setPin": "PIN beállítása", + "setPinTitle": "PIN beállítása", + "confirmPinTitle": "PIN megerősítése", + "pinSet": "PIN beállítva", + "changePin": "Módosítás", + "removePin": "Eltávolítás", + "connectionsLabel": "Kapcsolatok", + "add": "Hozzáadás", + "deleteProfileButton": "Profil törlése", + "noConnectionsHint": "Nincsenek kapcsolatok — adj hozzá egyet a profil használatához.", + "noConnections": "Nincsenek kapcsolatok", + "plexHomeAccount": "Plex Home-fiók", + "connectionDefault": "Alapértelmezett", + "connectionAs": "mint ${displayName}", + "makeDefault": "Beállítás alapértelmezettként", + "removeConnection": "Eltávolítás", + "profileRenamed": "Profil átnevezve.", + "borrowAddTo": "Hozzáadás a következőhöz: ${displayName}", + "borrowExplain": "Használd egy másik profil kapcsolatát. A PIN-kóddal védett profilokhoz PIN-kód szükséges.", + "borrowEmpty": "Még nincs használható kapcsolat.", + "borrowEmptySubtitle": "Először csatlakoztasd a Plexet vagy a Jellyfint egy másik profilhoz.", + "borrowLoadFailed": "Nem sikerült betölteni az elérhető kapcsolatokat. Próbáld újra.", + "borrowFromProfile": "Innen: ${displayName}", + "borrowConnectionBorrowed": "Kapcsolat átvéve.", + "borrowFailed": "Nem sikerült átvenni a kapcsolatot.", + "incorrectPin": "Helytelen PIN-kód.", + "incorrectPinTryAgain": "Helytelen PIN-kód. Próbáld újra.", + "sourceProfileMissingParentAccount": "A forrásprofilból hiányzik a szülőfiók.", + "failedToLoadHomeUsers": "Nem sikerült betölteni a Plex Home-felhasználókat. Ellenőrizd a kapcsolatot, majd próbáld újra.", + "failedToVerifyPin": "Nem sikerült a PIN-kód ellenőrzése.", + "newProfile": "Új profil", + "profileNameHint": "pl. Vendégek, Gyerekek, Nappali", + "pinProtectionOptional": "PIN-védelem (opcionális)", + "pinExplain": "4 jegyű PIN-kód szükséges a profilváltáshoz.", + "continueButton": "Folytatás", + "pinsDontMatch": "A PIN-kódok nem egyeznek" + }, + "connections": { + "sectionTitle": "Kapcsolatok", + "addConnection": "Kapcsolat hozzáadása", + "addConnectionSubtitleNoProfile": "Jelentkezz be Plexszel, vagy csatlakoztass egy Jellyfin-szervert", + "addConnectionSubtitleScoped": "Hozzáadás a következőhöz (${displayName}): Plex, Jellyfin vagy más profilkapcsolat", + "sessionExpiredOne": "A(z) ${name} munkamenete lejárt", + "sessionExpiredMany": "${count} szerver munkamenete lejárt", + "signInAgain": "Bejelentkezés újra", + "editJellyfinTitle": "Jellyfin kapcsolat szerkesztése", + "editJellyfinIntro": "URL-ek hozzáadása vagy eltávolítása ehhez: ${serverName}. A Plezy a legalacsonyabb késleltetésű, elérhető URL-t fogja használni." + }, + "discover": { + "title": "Felfedezés", + "noContentAvailable": "Nincs elérhető tartalom", + "addMediaToLibraries": "Adj hozzá médiát a könyvtáraidhoz", + "continueWatching": "Folytatás", + "continueWatchingIn": "Folytatás itt: ${library}", + "nextUp": "Következik", + "nextUpIn": "Következik itt: ${library}", + "recentlyAdded": "Legutóbb hozzáadva", + "recentlyAddedIn": "Legutóbb hozzáadva itt: ${library}", + "latestAlbumsIn": "Legújabb albumok itt: ${library}", + "recentlyPlayedIn": "Legutóbb lejátszva itt: ${library}", + "mostPlayedIn": "Legtöbbször lejátszva itt: ${library}", + "playEpisode": "${season}. évad, ${episode}. epizód", + "overview": "Áttekintés", + "cast": "Szereplők", + "extras": "Előzetesek és extrák", + "studio": "Stúdió", + "rating": "Értékelés", + "movie": "Film", + "tvShow": "TV-sorozat", + "minutesLeft": "${minutes} perc van hátra", + "moreLikeThis": "Hasonló tartalmak" + }, + "errors": { + "searchFailed": "Keresés sikertelen: ${error}", + "connectionTimeout": "Hálózati időtúllépés a következő betöltésekor: ${context}", + "connectionFailed": "Nem sikerült csatlakozni a médiaszerverhez", + "unableToLoad": "Nem sikerült betölteni a következőt: ${context}. Próbáld újra.", + "noClientAvailable": "Nincs elérhető kliens", + "pleaseEnterToken": "Adj meg egy tokent", + "invalidToken": "Érvénytelen token", + "failedToVerifyToken": "Nem sikerült a token ellenőrzése: ${error}", + "failedToSwitchProfile": "Nem sikerült átváltani a következő profilra: ${displayName}", + "failedToDeleteProfile": "Nem sikerült törölni a következőt: ${displayName}", + "failedToRate": "Nem sikerült frissíteni az értékelést" + }, + "libraries": { + "title": "Könyvtárak", + "fallbackTitle": "Könyvtár", + "scanLibraryFiles": "Könyvtárfájlok beolvasása", + "scanLibrary": "Könyvtár beolvasása", + "analyze": "Elemzés", + "analyzeLibrary": "Könyvtár elemzése", + "refreshMetadata": "Metaadatok frissítése", + "emptyTrash": "Lomtár ürítése", + "emptyingTrash": "Lomtár ürítése a következőhöz: \"${title}\"...", + "trashEmptied": "Lomtár kiürítve a következőhöz: \"${title}\"", + "failedToEmptyTrash": "Nem sikerült a lomtár ürítése: ${error}", + "analyzing": "\"${title}\" elemzése...", + "analysisStarted": "Elemzés elindítva a következőhöz: \"${title}\"", + "failedToAnalyze": "Nem sikerült a könyvtár elemzése: ${error}", + "noLibrariesFound": "Nem találhatók könyvtárak", + "allLibrariesHidden": "Minden könyvtár el van rejtve", + "hiddenLibrariesCount": "Rejtett könyvtárak (${count})", + "thisLibraryIsEmpty": "Ez a könyvtár üres", + "noItemsMatchFilters": "Nincs az aktív szűrőknek megfelelő elem", + "resetFilters": "Szűrők visszaállítása", + "all": "Összes", + "clearAll": "Összes törlése", + "scanLibraryConfirm": "Biztosan be szeretnéd olvasni a következőt: \"${title}\"?", + "analyzeLibraryConfirm": "Biztosan elemezni szeretnéd a következőt: \"${title}\"?", + "refreshMetadataConfirm": "Biztosan frissíteni szeretnéd a metaadatokat a következőhöz: \"${title}\"?", + "emptyTrashConfirm": "Biztosan ki szeretnéd üríteni a lomtárat a következőnél: \"${title}\"?", + "manageLibraries": "Könyvtárak kezelése", + "sort": "Rendezés", + "sortBy": "Rendezés ez alapján", + "filters": "Szűrők", + "confirmActionMessage": "Biztosan végre szeretnéd hajtani ezt a műveletet?", + "showLibrary": "Könyvtár megjelenítése", + "hideLibrary": "Könyvtár elrejtése", + "libraryOptions": "Könyvtár beállításai", + "content": "könyvtár tartalma", + "selectLibrary": "Könyvtár kiválasztása", + "filtersWithCount": "Szűrők (${count})", + "noRecommendations": "Nincsenek elérhető ajánlások", + "noCollections": "Nincsenek gyűjtemények ebben a könyvtárban", + "noFoldersFound": "Nem találhatók mappák", + "folders": "mappák", + "tabs": { + "recommended": "Ajánlott", + "browse": "Böngészés", + "collections": "Gyűjtemények", + "playlists": "Lejátszási listák" + }, + "groupings": { + "title": "Csoportosítás", + "all": "Összes", + "movies": "Filmek", + "shows": "TV-sorozatok", + "seasons": "Évadok", + "episodes": "Epizódok", + "artists": "Előadók", + "albums": "Albumok", + "tracks": "Zeneszámok", + "folders": "Mappák" + }, + "filterCategories": { + "genre": "Műfaj", + "year": "Év", + "contentRating": "Korhatár-besorolás", + "tag": "Címke", + "unwatched": "Nem látott", + "unplayed": "Nem lejátszott", + "favorites": "Kedvencek" + }, + "sortLabels": { + "title": "Cím", + "dateAdded": "Hozzáadás dátuma", + "releaseDate": "Bemutató dátuma", + "rating": "Értékelés", + "communityRating": "Közösségi értékelés", + "criticRating": "Kritikusi értékelés", + "userRating": "Saját értékelés", + "datePlayed": "Lejátszás dátuma", + "playCount": "Lejátszások száma", + "productionYear": "Gyártási év", + "runtime": "Játékidő", + "officialRating": "Hivatalos besorolás", + "premiereDate": "Premier dátuma", + "startDate": "Kezdés dátuma", + "airTime": "Adásidő", + "studio": "Stúdió", + "random": "Véletlenszerű", + "dateShared": "Megosztás dátuma", + "latestEpisodeAirDate": "A legutóbbi epizód sugárzási dátuma", + "lastEpisodeDateAdded": "Utolsó epizód hozzáadásának dátuma" + } + }, + "about": { + "title": "Névjegy", + "openSourceLicenses": "Nyílt forráskódú licencek", + "versionLabel": "Verzió: ${version}", + "appDescription": "Gyönyörű Flutter-kliens a Plexhez és a Jellyfinhez", + "viewLicensesDescription": "Külső fejlesztésű programkönyvtárak licenceinek megtekintése" + }, + "serverSelection": { + "noServersFoundForAccount": "Nem találhatók szerverek ehhez a fiókhoz: ${username} (${email})", + "failedToLoadServers": "Nem sikerült a szerverek betöltése: ${error}" + }, + "hubDetail": { + "title": "Cím", + "releaseYear": "Kiadási év", + "dateAdded": "Hozzáadás dátuma", + "rating": "Értékelés", + "noItemsFound": "Nem találhatók elemek" + }, + "logs": { + "clearLogs": "Naplók törlése", + "copyLogs": "Naplók másolása", + "uploadLogs": "Naplók feltöltése" + }, + "licenses": { + "relatedPackages": "Kapcsolódó csomagok", + "license": "Licenc", + "licenseNumber": "${number}. licenc", + "licensesCount": "${count} licenc" + }, + "navigation": { + "libraries": "Könyvtárak", + "downloads": "Letöltések", + "liveTv": "Élő TV", + "explore": "Böngészés" + }, + "explore": { + "title": "Böngészés", + "selectSource": "Forrás kiválasztása", + "rows": { + "watchlist": "Néznivalók listája", + "recommendedMovies": "Ajánlott filmek", + "recommendedShows": "Ajánlott sorozatok", + "trendingMovies": "Felkapott filmek", + "trendingShows": "Felkapott sorozatok", + "popularMovies": "Népszerű filmek", + "popularShows": "Népszerű sorozatok", + "trendingAnime": "Felkapott animék", + "suggestedAnime": "Ajánlott animék", + "airingAnime": "Jelenleg futó top animék", + "popularAnime": "Legnépszerűbb animék", + "trending": "Felkapott", + "upcomingMovies": "Közelgő filmek", + "upcomingShows": "Közelgő sorozatok" + }, + "status": { + "airing": "Adásban", + "ended": "Befejeződött", + "canceled": "Törölve", + "upcoming": "Közelgő" + }, + "episodeCount": { + "one": "${n} epizód", + "other": "${n} epizód" + }, + "cast": "Szereplők", + "characters": "Karakterek", + "addToWatchlist": "Hozzáadás a Néznivalókhoz", + "removeFromWatchlist": "Eltávolítás a Néznivalókból", + "watchlistUpdateFailed": "Nem sikerült a Néznivalók frissítése", + "notInLibrary": "Nincs a könyvtáradban", + "inTheseLibraries": "Ezekben a könyvtárakban", + "checkingLibrary": "Könyvtár ellenőrzése...", + "emptyTitle": "Még nincs itt semmi", + "emptyMessage": "A(z) ${source} forrásból származó sorok itt fognak megjelenni, amint van tartalmuk.", + "searchHint": "Keresés itt: ${source}", + "searchEmpty": "Nincs találat a következőre: \"${query}\"", + "searchPrompt": "Filmek és sorozatok keresése a következőn: ${source}.", + "searchFailed": "A keresés nem sikerült. Ellenőrizd a kapcsolatot és próbáld újra." + }, + "liveTv": { + "title": "Élő TV", + "guide": "Műsorújság", + "noChannels": "Nincsenek elérhető csatornák", + "noDvr": "Egyik szerveren sincs beállítva DVR", + "serverUnavailable": "Az Élő TV szerver nem érhető el.", + "serverNotConnected": "Az Élő TV szerver nincs csatlakoztatva.", + "noPrograms": "Nincsenek elérhető műsoradatok", + "liveStreamFailed": "Nem sikerült elindítani az élő adást", + "unknownProgram": "Ismeretlen műsor", + "unknownHub": "Ismeretlen", + "unknownError": "Ismeretlen hiba", + "channelNumber": "${number}. csatorna", + "unknownChannel": "Ismeretlen csatorna", + "live": "ÉLŐ", + "reloadGuide": "Műsorújság újratöltése", + "now": "Most", + "today": "Ma", + "tomorrow": "Holnap", + "midnight": "Éjfél", + "overnight": "Késő éjszaka", + "morning": "Reggel", + "daytime": "Napközben", + "evening": "Este", + "lateNight": "Éjszaka", + "whatsOn": "Mi megy most?", + "watchChannel": "Csatorna nézése", + "favorites": "Kedvencek", + "reorderFavorites": "Kedvencek rendezése", + "favoritesLoadFailed": "Nem sikerült a kedvencek betöltése. Ellenőrizd a kapcsolatot és próbáld újra.", + "favoritesUpdateFailed": "Nem sikerült frissíteni a kedvenceket. Ellenőrizd a kapcsolatot, majd próbáld újra.", + "joinSession": "Csatlakozás a folyamatban lévő adáshoz", + "watchFromStart": "Nézés az elejétől (${minutes} perce megy)", + "watchLive": "Élő adás nézése", + "goToLive": "Ugrás az élő adásra", + "record": "Felvétel", + "recordEpisode": "Epizód rögzítése", + "recordSeries": "Sorozat rögzítése", + "recordOptions": "Felvételi beállítások", + "saveTo": "Mentés ide", + "recordings": "Felvételek", + "scheduledRecordings": "Ütemezve", + "recordingRules": "Felvételi szabályok", + "noScheduledRecordings": "Nincs semmi felvételre ütemezve", + "manageRecording": "Felvétel kezelése", + "cancelRecording": "Felvétel megszakítása", + "cancelRecordingTitle": "Megszakítod ezt a felvételt?", + "cancelRecordingMessage": "A(z) ${title} nem kerül rögzítésre.", + "deleteRule": "Szabály törlése", + "deleteRuleTitle": "Törlöd a felvételi szabályt?", + "deleteRuleMessage": "A(z) ${title} jövőbeli epizódjai nem kerülnek rögzítésre.", + "recordingScheduled": "Felvétel ütemezve", + "alreadyScheduled": "Ez a műsor már ütemezve van", + "dvrAdminRequired": "A DVR beállításokhoz adminisztrátori fiók szükséges", + "recordingFailed": "Nem sikerült a felvétel ütemezése", + "recordingTargetMissing": "Nem sikerült meghatározni a felvételi könyvtárat", + "recordNotAvailable": "A felvétel nem érhető el ehhez a műsorhoz", + "recordingCancelled": "Felvétel megszakítva", + "recordingRuleDeleted": "Felvételi szabály törölve", + "processRecordingRules": "Szabályok újraértékelése", + "recordingInProgress": "Rögzítés folyamatban", + "recordingsCount": "${count} ütemezve", + "editRule": "Szabály szerkesztése", + "editRuleAction": "Szerkesztés", + "recordingRuleUpdated": "Felvételi szabály frissítve", + "guideReloadRequested": "Műsorújság frissítése kérve", + "rulesProcessRequested": "Szabályok újraértékelése kérve", + "recordShow": "Műsor rögzítése" + }, + "collections": { + "title": "Gyűjtemények", + "collection": "Gyűjtemény", + "empty": "A gyűjtemény üres", + "deleteCollection": "Gyűjtemény törlése", + "deleteConfirm": "Törlöd a következőt: \"${title}\"? Ez nem vonható vissza.", + "deleted": "Gyűjtemény törölve", + "deleteFailed": "Nem sikerült a gyűjtemény törlése", + "deleteFailedWithError": "Nem sikerült a gyűjtemény törlése: ${error}", + "selectCollection": "Gyűjtemény kiválasztása", + "collectionName": "Gyűjtemény neve", + "enterCollectionName": "Add meg a gyűjtemény nevét", + "addedToCollection": "Hozzáadva a gyűjteményhez", + "errorAddingToCollection": "Nem sikerült a gyűjteményhez adni", + "created": "Gyűjtemény létrehozva", + "removeFromCollection": "Eltávolítás a gyűjteményből", + "removeFromCollectionConfirm": "Eltávolítod a következőt: \"${title}\" ebből a gyűjteményből?", + "removedFromCollection": "Eltávolítva a gyűjteményből", + "removeFromCollectionFailed": "Nem sikerült az eltávolítás a gyűjteményből", + "removeFromCollectionError": "Hiba a gyűjteményből való eltávolításkor: ${error}", + "searchCollections": "Gyűjtemények keresése..." + }, + "playlists": { + "title": "Lejátszási listák", + "playlist": "Lejátszási lista", + "noPlaylists": "Nem találhatók lejátszási listák", + "create": "Lejátszási lista létrehozása", + "playlistName": "Lejátszási lista neve", + "enterPlaylistName": "Add meg a lejátszási lista nevét", + "delete": "Lejátszási lista törlése", + "removeItem": "Eltávolítás a lejátszási listáról", + "smartPlaylist": "Okos lejátszási lista", + "itemCount": "${count} elem", + "oneItem": "1 elem", + "emptyPlaylist": "Ez a lejátszási lista üres", + "deleteConfirm": "Törlöd a lejátszási listát?", + "deleteMessage": "Biztosan törölni szeretnéd a következőt: \"${name}\"?", + "created": "Lejátszási lista létrehozva", + "deleted": "Lejátszási lista törölve", + "itemAdded": "Hozzáadva a lejátszási listához", + "itemRemoved": "Eltávolítva a lejátszási listáról", + "selectPlaylist": "Lejátszási lista kiválasztása", + "searchPlaylists": "Lejátszási listák keresése...", + "errorCreating": "Nem sikerült a lejátszási lista létrehozása", + "errorDeleting": "Nem sikerült a lejátszási lista törlése", + "errorLoading": "Nem sikerült a lejátszási listák betöltése", + "errorAdding": "Nem sikerült a lejátszási listához adni", + "errorReordering": "Nem sikerült átrendezni a lejátszási lista elemét", + "errorRemoving": "Nem sikerült az eltávolítás a lejátszási listáról" + }, + "music": { + "goToAlbum": "Ugrás az albumhoz", + "goToArtist": "Ugrás az előadóhoz", + "instantMix": "Azonnali keverés", + "playNext": "Következő lejátszása", + "addToQueue": "Hozzáadás a lejátszási sorhoz", + "discNumber": "${n}. lemez", + "trackCount": { + "one": "${n} zeneszám", + "other": "${n} zeneszám" + }, + "nowPlaying": "Most szól", + "playingFrom": "Lejátszás innen: ${title}", + "queue": "Lejátszási sor", + "clearQueue": "Sor törlése", + "lyrics": "Dalszöveg", + "noLyrics": "Nincs elérhető dalszöveg", + "sleepTimer": "Elalvási időzítő", + "sleepTimerEndOfTrack": "Zeneszám vége", + "sleepTimerMinutes": "${n} perc", + "stopPlayback": "Lejátszás leállítása", + "previousTrack": "Előző szám", + "nextTrack": "Következő szám", + "repeat": "Ismétlés", + "repeatAll": "Összes ismétlése", + "repeatOne": "Egy szám ismétlése" + }, + "watchTogether": { + "title": "Watch Together (Közös nézés)", + "description": "Nézz tartalmat szinkronban barátaiddal és családoddal", + "createSession": "Munkamenet létrehozása", + "creating": "Létrehozás...", + "joinSession": "Csatlakozás munkamenethez", + "joining": "Csatlakozás...", + "controlMode": "Vezérlési mód", + "controlModeQuestion": "Ki vezérelheti a lejátszást?", + "hostOnly": "Csak a házigazda", + "anyone": "Bárki", + "hostingSession": "Munkamenet indítása", + "inSession": "Munkamenetben", + "sessionCode": "Munkamenet kódja", + "openSessionControls": "Watch Together munkamenet-vezérlők megnyitása", + "copySessionCode": "Munkamenet-kód másolása", + "hostControlsPlayback": "A házigazda vezérli a lejátszást", + "anyoneCanControl": "Bárki vezérelheti a lejátszást", + "hostControls": "A házigazda vezérel", + "anyoneControls": "Bárki vezérelheti", + "participants": "Résztvevők", + "host": "Házigazda", + "hostBadge": "HÁZIGAZDA", + "youAreHost": "Te vagy a házigazda", + "watchingWithOthers": "Nézés másokkal", + "endSession": "Munkamenet befejezése", + "leaveSession": "Munkamenet elhagyása", + "endSessionQuestion": "Befejezed a munkamenetet?", + "leaveSessionQuestion": "Elhagyod a munkamenetet?", + "endSessionConfirm": "Ezzel minden résztvevő számára véget ér a munkamenet.", + "leaveSessionConfirm": "Eltávolításra kerülsz a munkamenetből.", + "endSessionConfirmOverlay": "Ezzel minden résztvevő számára véget ér a közös nézés.", + "leaveSessionConfirmOverlay": "Kilépsz a közös nézésből.", + "end": "Befejezés", + "leave": "Kilépés", + "syncing": "Szinkronizálás...", + "joinWatchSession": "Csatlakozás közös nézéshez", + "enterCodeHint": "Add meg az 5 karakteres kódot", + "pasteFromClipboard": "Beillesztés a vágólapról", + "pleaseEnterCode": "Adj meg egy munkamenetkódot", + "codeMustBe5Chars": "A munkamenetkódnak 5 karakterből kell állnia", + "joinInstructions": "Add meg a házigazda kódját a csatlakozáshoz.", + "failedToCreate": "Nem sikerült a munkamenet létrehozása", + "failedToJoin": "Nem sikerült csatlakozni a munkamenethez", + "sessionCodeCopied": "A munkamenetkód a vágólapra másolva", + "relayUnreachable": "A relészerver nem érhető el. Az internetszolgáltató blokkolása megakadályozhatja a közös nézést.", + "reconnectingToHost": "Újracsatlakozás a házigazdához...", + "currentPlayback": "Jelenlegi lejátszás", + "joinCurrentPlayback": "Csatlakozás a jelenlegi lejátszáshoz", + "joinCurrentPlaybackDescription": "Visszatérés ahhoz, amit a házigazda éppen néz", + "failedToOpenCurrentPlayback": "Nem sikerült megnyitni a jelenlegi lejátszást", + "participantJoined": "${name} csatlakozott", + "participantLeft": "${name} kilépett", + "participantPaused": "${name} szüneteltette a lejátszást", + "participantResumed": "${name} folytatta a lejátszást", + "participantSeeked": "${name} módosította a lejátszási pozíciót", + "participantBuffering": "${name} pufferel", + "participantNeedsUpdate": "${name} régebbi alkalmazásverziót használ — a szinkronizálás nem érhető el", + "resumingWithout": "Folytatás a következő nélkül: ${name}", + "waitingForParticipants": "Várakozás, amíg a többieknél betöltődik a tartalom...", + "waitingForName": "Várakozás: ${name}...", + "recentRooms": "Legutóbbi szobák", + "renameRoom": "Szoba átnevezése", + "removeRoom": "Eltávolítás", + "guestSwitchUnavailable": "Nem sikerült a váltás — a szerver nem érhető el szinkronizáláshoz", + "guestSwitchFailed": "Nem sikerült a váltás — a tartalom nem található ezen a szerveren" + }, + "downloads": { + "title": "Letöltések", + "manage": "Kezelés", + "tvShows": "TV-sorozatok", + "movies": "Filmek", + "music": "Zene", + "tracksQueued": "${count} zeneszám letöltésre sorba állítva", + "noDownloads": "Még nincsenek letöltések", + "noDownloadsDescription": "A letöltött tartalmak itt jelennek meg az offline megtekintéshez", + "downloadNow": "Letöltés", + "deleteDownload": "Letöltés törlése", + "retryDownload": "Letöltés újrapróbálása", + "downloadQueued": "Letöltés sorba állítva", + "downloadResumed": "Letöltés folytatva", + "serverErrorBitrate": "Szerverhiba: a fájl meghaladhatja a távoli bitrátakorlátot", + "episodesQueued": "${count} epizód letöltésre sorba állítva", + "downloadDeleted": "Letöltés törölve", + "deleteConfirm": "Törlöd a következőt: \"${title}\" erről az eszközről?", + "cancelledDownloadTitle": "Megszakított letöltés", + "cancelledDownloadMessage": "Ez a letöltés meg lett szakítva. Mit szeretnél tenni?", + "allEpisodesAlreadyDownloaded": "Minden epizód le van töltve", + "resumeDownload": "Letöltés folytatása", + "cancelledDownload": "Megszakított letöltés", + "syncingFile": "${file} (${status} szinkronizálása)", + "downloadedFileClickToComplete": "Letöltve: ${file} - Kattints a befejezéshez", + "partialDownloadClickToComplete": "Részben letöltve - Kattints a befejezéshez", + "deleting": "Törlés...", + "deletingWithProgress": "${title} törlése... (${current}/${total})", + "queuedTooltip": "Sorban áll", + "queuedFilesTooltip": "Sorba állítva: ${files}", + "downloadingTooltip": "Letöltés...", + "downloadingFilesTooltip": "Letöltés alatt: ${files}", + "noDownloadsTree": "Nincsenek letöltések", + "pauseAll": "Összes szüneteltetése", + "resumeAll": "Összes folytatása", + "deleteAll": "Összes törlése", + "selectVersion": "Verzió kiválasztása", + "allEpisodes": "Minden epizód", + "unwatchedOnly": "Csak a nem látottak", + "nextNUnwatched": "A következő ${count} nem látott epizód", + "customAmount": "Egyéni mennyiség...", + "includeSpecials": "Különkiadások is", + "howManyEpisodes": "Hány epizód?", + "invalidEpisodeCount": "Adj meg egy érvényes epizódszámot.", + "keepSynced": "Szinkronban tartás", + "downloadOnce": "Egyszeri letöltés", + "keepNUnwatched": "${count} nem látott epizód megtartása", + "editSyncRule": "Szinkronizálási szabály szerkesztése", + "removeSyncRule": "Szinkronizálási szabály eltávolítása", + "removeSyncRuleConfirm": "Leállítod a(z) \"${title}\" szinkronizálását? A letöltött epizódok megmaradnak.", + "syncRuleCreated": "Szinkronizálási szabály létrehozva — ${count} nem látott epizód megtartása", + "syncRuleUpdated": "Szinkronizálási szabály frissítve", + "syncRuleRemoved": "Szinkronizálási szabály eltávolítva", + "syncedNewEpisodes": "${count} új epizód szinkronizálva a következőhöz: ${title}", + "activeSyncRules": "Szinkronizálási szabályok", + "noSyncRules": "Nincsenek szinkronizálási szabályok", + "manageSyncRule": "Szinkronizálás kezelése", + "editEpisodeCount": "Epizódszám", + "editSyncFilter": "Szinkronizálási szűrő", + "syncAllItems": "Minden elem szinkronizálása", + "syncUnwatchedItems": "Nem látott elemek szinkronizálása", + "syncRuleServerContext": "Szerver: ${server} • ${status}", + "syncRuleAvailable": "Elérhető", + "syncRuleOffline": "Offline", + "syncRuleSignInRequired": "Bejelentkezés szükséges", + "syncRuleNotAvailableForProfile": "Nem érhető el a jelenlegi profilhoz", + "syncRuleUnknownServer": "Ismeretlen szerver", + "syncRuleListCreated": "Szinkronizálási szabály létrehozva" + }, + "shaders": { + "title": "Shaderek", + "noShaderDescription": "Nincs videójavítás", + "nvscalerDescription": "NVIDIA képskálázás az élesebb videóért", + "artcnnVariantNeutral": "Semleges", + "artcnnVariantDenoise": "Zajcsökkentés", + "artcnnVariantDenoiseSharpen": "Zajcsökkentés + Élesítés", + "qualityFast": "Gyors", + "qualityHQ": "Kiváló minőség", + "mode": "Mód", + "importShader": "Shader importálása", + "customShaderDescription": "Egyéni GLSL shader", + "shaderImported": "Shader importálva", + "shaderImportFailed": "Nem sikerült a shader importálása", + "deleteShader": "Shader törlése", + "deleteShaderConfirm": "Törlöd a következőt: \"${name}\"?" + }, + "companionRemote": { + "title": "Kísérőtávirányító", + "connectedTo": "Csatlakoztatva a következőhöz: ${name}", + "unknownDevice": "Ismeretlen eszköz", + "session": { + "startingServer": "Távirányító-szerver indítása...", + "hostAddress": "Gazdagép címe", + "connected": "Csatlakoztatva", + "serverRunning": "A távirányító-szerver aktív", + "serverStopped": "A távirányító-szerver leállítva", + "serverRunningDescription": "A hálózaton lévő mobileszközök csatlakozhatnak ehhez az alkalmazáshoz", + "serverStoppedDescription": "Indítsd el a szervert, hogy a mobileszközök csatlakozhassanak", + "usePhoneToControl": "Használd a mobileszközödet az alkalmazás vezérléséhez", + "startServer": "Szerver indítása", + "stopServer": "Szerver leállítása", + "minimize": "Kis méret" + }, + "pairing": { + "discoveryDescription": "Az azonos Plex-fiókot használó Plezy-eszközök itt jelennek meg", + "hostAddressHint": "192.168.1.100:48632", + "connecting": "Csatlakozás...", + "searchingForDevices": "Eszközök keresése...", + "noDevicesFound": "Nem találhatók eszközök a hálózaton", + "noDevicesHint": "Nyisd meg a Plezyt asztali gépen, és használd ugyanazt a Wi-Fi-hálózatot", + "availableDevices": "Elérhető eszközök", + "manualConnection": "Kézi csatlakozás", + "cryptoInitFailed": "Nem sikerült elindítani a biztonságos kapcsolatot. Először jelentkezz be a Plexbe.", + "validationHostRequired": "Add meg a gazdagép címét", + "validationHostFormat": "A formátumnak IP:port kell lennie (pl. 192.168.1.100:48632)", + "connectionTimedOut": "A csatlakozás túllépte az időkorlátot. Használd ugyanazt a hálózatot mindkét eszközön.", + "sessionNotFound": "Az eszköz nem található. Győződj meg arról, hogy a Plezy fut a gazdagépen.", + "authFailed": "A hitelesítés nem sikerült. Mindkét eszközön ugyanazt a Plex-fiókot kell használni.", + "failedToConnect": "Nem sikerült a csatlakozás: ${error}" + }, + "remote": { + "disconnectConfirm": "Bontod a kapcsolatot a távoli munkamenettel?", + "reconnecting": "Újracsatlakozás...", + "attemptOf": "${current} / 5 próbálkozás", + "retryNow": "Újrapróbálkozás most", + "tabRemote": "Távirányító", + "tabPlay": "Lejátszás", + "tabMore": "Egyebek", + "menu": "Menü", + "tabNavigation": "Navigációs lap", + "tabDiscover": "Felfedezés", + "tabLibraries": "Könyvtárak", + "tabSearch": "Keresés", + "tabDownloads": "Letöltések", + "tabSettings": "Beállítások", + "previous": "Előző", + "playPause": "Lejátszás/Szünet", + "next": "Következő", + "seekBack": "Visszatekerés", + "stop": "Leállítás", + "seekForward": "Előretekerés", + "volume": "Hangerő", + "volumeDown": "Hangerő le", + "volumeUp": "Hangerő fel", + "fullscreen": "Teljes képernyő", + "subtitles": "Feliratok", + "audio": "Hang", + "searchHint": "Keresés az asztali gépen..." + }, + "errors": { + "noNetworkInterface": "Nem található hálózati csatoló", + "authenticationFailed": "A hitelesítés nem sikerült", + "serverStartFailed": "Nem sikerült elindítani a távirányító-szervert: ${error}", + "commandFailed": "Nem sikerült elküldeni a távoli parancsot: ${error}", + "joinTimedOut": "Időtúllépés a munkamenethez való csatlakozáskor", + "failedToConnectAnyAddress": "Egyetlen címhez sem sikerült csatlakozni", + "connectionLostAfterAttempts": "A kapcsolat megszakadt ${attempts} próbálkozás után", + "connectionLost": "A kapcsolat megszakadt" + } + }, + "videoSettings": { + "playbackSpeed": "Lejátszási sebesség", + "normalSpeed": "Normál", + "sleepTimerActive": "Aktív (${duration})", + "zoom": "Nagyítás", + "sleepTimer": "Elalvási időzítő", + "audioSync": "Hang szinkronizálása", + "subtitleSync": "Felirat szinkronizálása", + "hdr": "HDR", + "audioOutput": "Hangkimenet", + "performanceOverlay": "Teljesítményadatok", + "audioPassthrough": "Hangtovábbítás (passthrough)", + "audioNormalization": "Hangerő normalizálása", + "audioDownmix": "Lekeverés sztereóra" + }, + "performanceOverlay": { + "color": "Szín", + "performance": "Teljesítmény", + "buffer": "Puffer", + "app": "Alkalmazás", + "decoder": "Dekóder", + "rawDecoder": "Nyers dekóder", + "tunneling": "Alagutazás", + "aspect": "Méretarány", + "rotation": "Forgatás", + "dvSource": "DV-forrás", + "dvPath": "DV-útvonal", + "p7Conversion": "P7-átalakítás", + "sampleRate": "Mintavételezési frekvencia", + "pixelFormat": "Képpontformátum", + "hwFormat": "Hardverformátum", + "matrix": "Mátrix", + "primaries": "Elsődleges színek", + "transfer": "Átvitel", + "renderFps": "Renderelési FPS", + "displayFps": "Kijelző-FPS", + "avSync": "A/V-szinkron", + "dropped": "Eldobva", + "dvRpus": "DV RPU-k", + "dvRpuAverage": "DV RPU-átlag", + "dvSampleAverage": "DV-mintaátlag", + "maxLuma": "Maximális luma", + "minLuma": "Minimális luma", + "maxCll": "MaxCLL", + "maxFall": "MaxFALL", + "cacheUsed": "Használt gyorsítótár", + "cacheLimit": "Gyorsítótár korlátja", + "speed": "Sebesség", + "player": "Lejátszó", + "memory": "Memória", + "uiFps": "Felület-FPS" + }, + "externalPlayer": { + "title": "Külső lejátszó", + "useExternalPlayer": "Külső lejátszó használata", + "useExternalPlayerDescription": "Videók megnyitása egy másik alkalmazásban", + "selectPlayer": "Lejátszó kiválasztása", + "customPlayers": "Egyéni lejátszók", + "systemDefault": "Rendszer alapértelmezése", + "addCustomPlayer": "Egyéni lejátszó hozzáadása", + "playerName": "Lejátszó neve", + "playerNameHint": "Saját lejátszó", + "playerCommand": "Parancs", + "playerPackage": "Csomagnév", + "playerUrlScheme": "URL-séma", + "off": "Ki", + "launchFailed": "Nem sikerült megnyitni a külső lejátszót", + "appNotInstalled": "A(z) ${name} nincs telepítve", + "playInExternalPlayer": "Lejátszás külső lejátszóban" + }, + "metadataEdit": { + "editMetadata": "Szerkesztés...", + "screenTitle": "Metaadatok szerkesztése", + "basicInfo": "Alapinformációk", + "artwork": "Borítók és képek", + "advancedSettings": "Haladó beállítások", + "title": "Cím", + "sortTitle": "Rendezési cím", + "originalTitle": "Eredeti cím", + "releaseDate": "Bemutató dátuma", + "contentRating": "Korhatár-besorolás", + "studio": "Stúdió", + "tagline": "Jelmondat", + "summary": "Összefoglaló", + "poster": "Poszter", + "background": "Háttér", + "logo": "Logó", + "squareArt": "Négyzetes kép", + "selectPoster": "Poszter kiválasztása", + "selectBackground": "Háttér kiválasztása", + "selectLogo": "Logó kiválasztása", + "selectSquareArt": "Négyzetes kép kiválasztása", + "fromUrl": "URL-ről", + "uploadFile": "Fájl feltöltése", + "enterImageUrl": "Add meg a kép URL-címét", + "imageUrl": "Kép URL-címe", + "metadataUpdated": "Metaadatok frissítve", + "metadataUpdateFailed": "Nem sikerült a metaadatok frissítése", + "artworkUpdated": "Képek frissítve", + "artworkUpdateFailed": "Nem sikerült a képek frissítése", + "noArtworkAvailable": "Nincsenek elérhető képek", + "artworkOption": "${index}. képváltozat", + "selectedArtworkOption": "${index}. képváltozat, kiválasztva", + "notSet": "Nincs beállítva", + "libraryDefault": "Könyvtári alapértelmezés", + "accountDefault": "Fiók alapértelmezése", + "seriesDefault": "Sorozat alapértelmezése", + "episodeSorting": "Epizódok rendezése", + "oldestFirst": "Legrégebbi elöl", + "newestFirst": "Legújabb elöl", + "keep": "Megtartás", + "allEpisodes": "Minden epizód", + "latestEpisodes": "Legutóbbi ${count} epizód", + "latestEpisode": "Legutóbbi epizód", + "episodesAddedPastDays": "Az elmúlt ${count} napban hozzáadott epizódok", + "deleteAfterPlaying": "Epizódok törlése lejátszás után", + "never": "Soha", + "afterADay": "Egy nap után", + "afterAWeek": "Egy hét után", + "afterAMonth": "Egy hónap után", + "onNextRefresh": "A következő frissítéskor", + "seasons": "Évadok", + "show": "Megjelenítés", + "hide": "Elrejtés", + "episodeOrdering": "Epizódok sorrendje", + "tmdbAiring": "The Movie Database (sugárzási sorrend)", + "tvdbAiring": "TheTVDB (sugárzási sorrend)", + "tvdbAbsolute": "TheTVDB (abszolút sorrend)", + "metadataLanguage": "Metaadatok nyelve", + "useOriginalTitle": "Eredeti cím használata", + "preferredAudioLanguage": "Elsődleges hangnyelv", + "preferredSubtitleLanguage": "Elsődleges feliratnyelv", + "subtitleMode": "Automatikus feliratválasztási mód", + "manuallySelected": "Kézzel kiválasztva", + "shownWithForeignAudio": "Idegen nyelvű hang esetén megjelenítve", + "alwaysEnabled": "Mindig engedélyezve", + "tags": "Címkék", + "addTag": "Címke hozzáadása", + "genre": "Műfaj", + "director": "Rendező", + "writer": "Író", + "producer": "Producer", + "country": "Ország", + "collection": "Gyűjtemény", + "label": "Kiadó", + "style": "Stílus", + "mood": "Hangulat" + }, + "matchScreen": { + "match": "Párosítás...", + "fixMatch": "Párosítás javítása...", + "unmatch": "Párosítás megszüntetése", + "unmatchConfirm": "Törlöd ezt a párosítást? A Plex párosítatlanként kezeli az újrapárosításig.", + "unmatchSuccess": "Párosítás megszüntetve", + "unmatchFailed": "Nem sikerült a párosítás megszüntetése", + "matchApplied": "Párosítás alkalmazva", + "matchFailed": "Nem sikerült a párosítás alkalmazása", + "titleHint": "Cím", + "yearHint": "Év", + "search": "Keresés", + "noMatchesFound": "Nincsenek egyezések" + }, + "serverTasks": { + "title": "Szerverfeladatok", + "failedToLoad": "Nem sikerült a feladatok betöltése", + "noTasks": "Nincsenek futó feladatok" + }, + "trakt": { + "title": "Trakt", + "connected": "Csatlakoztatva", + "connectedAs": "@${username} néven csatlakoztatva", + "disconnectConfirm": "Leválasztod a Trakt-fiókot?", + "disconnectConfirmBody": "A Plezy nem küld több eseményt a Traktnak. Bármikor újracsatlakozhatsz.", + "scrobble": "Valós idejű scrobbling", + "scrobbleDescription": "Lejátszási, szüneteltetési és leállítási események küldése a Traktnak lejátszás közben.", + "watchedSync": "Megtekintési állapot szinkronizálása", + "watchedSyncDescription": "Ha egy elemet megtekintettként jelölsz meg a Plezyben, a Trakt is megtekintettként jelöli." + }, + "seerr": { + "title": "Seerr", + "connectTitle": "Seerr csatlakoztatása", + "serverUrl": "Szerver URL-címe", + "serverUrlHelper": "A Seerr példányod címe", + "checkServer": "Folytatás", + "signInWithJellyfin": "Bejelentkezés Jellyfinnel", + "signInWithEmby": "Bejelentkezés Emby-vel", + "signInWithLocal": "Helyi fiók használata", + "email": "E-mail", + "noSignInMethods": "Ez a Seerr példány nem kínál olyan bejelentkezési módot, amit a Plezy támogat.", + "instance": "Példány", + "disconnectConfirm": "Leválasztod a Seerr-kapcsolatot?", + "disconnectConfirmBody": "A Plezy elfelejti ezt a Seerr példányt. Bármikor újracsatlakozhatsz.", + "request": "Igénylés", + "request4k": "Igénylés 4K-ban", + "seasons": "Évadok", + "allSeasons": "Minden évad", + "advancedOptions": "Haladó", + "destinationServer": "Célszerver", + "qualityProfile": "Minőségi profil", + "rootFolder": "Gyökérmappa", + "languageProfile": "Nyelvi profil", + "requestSubmitted": "Igénylés elküldve", + "requestFailed": "Az igénylés nem sikerült: ${error}", + "requestsLoadFailed": "Nem sikerült betölteni az igénylési opciókat", + "nothingToRequest": "Minden elem már elérhető vagy igényelve van.", + "statusAvailable": "Elérhető", + "statusPartiallyAvailable": "Részben elérhető", + "statusRequested": "Igényelve", + "statusProcessing": "Feldolgozás alatt" + }, + "services": { + "title": "Szolgáltatások", + "hubSubtitle": "Megtekintési haladás szinkronizálása és új tartalmak igénylése.", + "notConnected": "Nincs csatlakoztatva", + "connectedAs": "@${username} néven csatlakoztatva", + "scrobble": "Haladás automatikus követése", + "scrobbleDescription": "Lista frissítése, amikor befejezel egy epizódot vagy filmet.", + "disconnectConfirm": "Leválasztod a(z) ${service} szolgáltatást?", + "disconnectConfirmBody": "A Plezy nem frissíti többé a(z) ${service} adatait. Bármikor újracsatlakozhatsz.", + "connectFailed": "Nem sikerült csatlakozni a következőhöz: ${service}. Próbáld újra.", + "names": { + "mal": "MyAnimeList", + "anilist": "AniList", + "simkl": "Simkl", + "seerr": "Seerr" + }, + "deviceCode": { + "title": "Plezy aktiválása a következőn: ${service}", + "body": "Nyisd meg a(z) ${url} oldalt és add meg ezt a kódot:", + "openToActivate": "Nyisd meg a(z) ${service} oldalt az aktiváláshoz", + "copyCode": "Aktiválási kód másolása", + "waitingForAuthorization": "Várakozás az engedélyezésre…", + "codeCopied": "Kód másolva" + }, + "oauthProxy": { + "title": "Bejelentkezés ide: ${service}", + "body": "Olvasd be ezt a QR-kódot vagy nyisd meg az URL-t bármelyik eszközön.", + "openToSignIn": "Nyisd meg a(z) ${service} oldalt a bejelentkezéshez", + "copyUrl": "Bejelentkezési URL másolása", + "urlCopied": "URL másolva" + }, + "libraryFilter": { + "title": "Könyvtárszűrő", + "subtitleAllSyncing": "Minden könyvtár szinkronizálása", + "subtitleNoneSyncing": "Nincs szinkronizálás", + "subtitleBlocked": "${count} kizárva", + "subtitleAllowed": "${count} engedélyezve", + "mode": "Szűrési mód", + "modeBlacklist": "Tiltólista", + "modeWhitelist": "Engedélyezőlista", + "modeHintBlacklist": "Minden könyvtár szinkronizálása az alább bejelöltek kivételével.", + "modeHintWhitelist": "Csak az alább bejelölt könyvtárak szinkronizálása.", + "libraries": "Könyvtárak", + "noLibraries": "Nincsenek elérhető könyvtárak" + } + }, + "addServer": { + "addJellyfinTitle": "Jellyfin szerver hozzáadása", + "serverUrls": "Szerver URL-címei", + "serverUrlsHelper": "Több URL is megadható, vesszővel elválasztva.", + "findServer": "Szerver keresése", + "searchingLocalServers": "Helyi Jellyfin-szerverek keresése...", + "localServers": "Helyi Jellyfin-szerverek", + "username": "Felhasználónév", + "password": "Jelszó", + "signIn": "Bejelentkezés", + "change": "Módosítás", + "required": "Kötelező", + "couldNotReachServer": "Nem sikerült elérni a szervert: ${error}", + "signInFailed": "A bejelentkezés nem sikerült: ${error}", + "quickConnectFailed": "A Quick Connect használata nem sikerült: ${error}", + "addPlexTitle": "Bejelentkezés Plexszel", + "pinExpired": "A PIN-kód a bejelentkezés előtt lejárt. Próbáld újra.", + "failedToRegisterAccount": "Nem sikerült a fiók regisztrálása: ${error}", + "enterJellyfinUrlError": "Add meg a Jellyfin szervered URL-jét", + "addConnectionTitle": "Kapcsolat hozzáadása", + "addConnectionTitleScoped": "Hozzáadás a következőhöz: ${name}", + "signInWithPlexCard": "Bejelentkezés Plexszel", + "signInWithPlexCardSubtitle": "Eszköz engedélyezése. A megosztott szerverek hozzáadásra kerülnek.", + "signInWithPlexCardSubtitleScoped": "Plex-fiók engedélyezése. A Plex Home-felhasználókból profilok lesznek.", + "connectToJellyfinCard": "Csatlakozás Jellyfinhez", + "connectToJellyfinCardSubtitle": "Add meg a szerver URL-jét, felhasználónevedet és jelszavadat.", + "connectToJellyfinCardSubtitleScoped": "Bejelentkezés egy Jellyfin-szerverre. Hozzárendelés ehhez: ${name}.", + "borrowFromAnotherProfile": "Kapcsolat használata másik profilból", + "borrowFromAnotherProfileSubtitle": "Egy másik profil kapcsolatának használata. A PIN-kóddal védett profilokhoz PIN-kód szükséges." + } +} diff --git a/lib/i18n/it.i18n.json b/lib/i18n/it.i18n.json index 9d16c8ea..083ac044 100644 --- a/lib/i18n/it.i18n.json +++ b/lib/i18n/it.i18n.json @@ -4,41 +4,41 @@ }, "auth": { "signInWithPlex": "Accedi con Plex", - "showQRCode": "Mostra QR Code", - "authenticate": "Autenticazione", - "authenticationTimeout": "Autenticazione scaduta. Riprova.", - "scanQRToSignIn": "Scansiona il QR code per accedere", + "showQRCode": "Mostra codice QR", + "authenticate": "Autenticati", + "authenticationTimeout": "Tempo scaduto per l'autenticazione. Riprova.", + "scanQRToSignIn": "Scansiona questo codice QR per accedere", "waitingForAuth": "In attesa di autenticazione...\nAccedi dal browser.", - "useBrowser": "Usa browser", + "useBrowser": "Usa il browser", "or": "o", - "connectToJellyfin": "Connetti a Jellyfin", + "connectToJellyfin": "Connettiti a Jellyfin", "useQuickConnect": "Usa Quick Connect", "quickConnectInstructions": "Apri Quick Connect in Jellyfin e inserisci questo codice.", "quickConnectWaiting": "In attesa di approvazione…", "quickConnectCancel": "Annulla", "quickConnectExpired": "Quick Connect scaduto. Riprova.", - "localDataRecoveryRequired": "Plezy could not safely recover local sign-in and pending playback data. Please sign in again." + "localDataRecoveryRequired": "Plezy non è riuscito a recuperare in sicurezza i dati locali di accesso e delle riproduzioni in sospeso. Accedi di nuovo." }, "common": { - "cancel": "Cancella", + "cancel": "Annulla", "save": "Salva", "close": "Chiudi", - "clear": "Pulisci", + "clear": "Cancella", "reset": "Ripristina", "later": "Più tardi", "submit": "Invia", "confirm": "Conferma", "retry": "Riprova", - "logout": "Disconnetti", + "logout": "Esci", "unknown": "Sconosciuto", "refresh": "Aggiorna", "yes": "Sì", "no": "No", "delete": "Elimina", "edit": "Modifica", - "shuffle": "Casuale", + "shuffle": "Riproduzione casuale", "addTo": "Aggiungi a...", - "createNew": "Crea", + "createNew": "Crea nuovo", "connect": "Connetti", "disconnect": "Disconnetti", "play": "Riproduci", @@ -48,8 +48,8 @@ "search": "Cerca", "home": "Home", "back": "Indietro", - "settings": "Opzioni", - "mute": "Muto", + "settings": "Impostazioni", + "mute": "Disattiva audio", "ok": "OK", "off": "Disattivato", "seasonNumber": "Stagione ${number}", @@ -57,28 +57,28 @@ "chapterNumber": "Capitolo ${number}", "reconnect": "Riconnetti", "viewAll": "Mostra tutto", - "checkingNetwork": "Verifica rete...", + "checkingNetwork": "Controllo della rete...", "loadingServers": "Caricamento server...", "connectingToServers": "Connessione ai server...", "startingOfflineMode": "Avvio modalità offline...", "loading": "Caricamento...", "fullscreen": "Schermo intero", - "exitFullscreen": "Esci da schermo intero", - "pressBackAgainToExit": "Premi di nuovo indietro per uscire" + "exitFullscreen": "Esci dalla modalità a schermo intero", + "pressBackAgainToExit": "Premi di nuovo Indietro per uscire" }, "screens": { "licenses": "Licenze", "switchProfile": "Cambia profilo", "subtitleStyling": "Stile sottotitoli", "mpvConfig": "mpv.conf", - "logs": "Registro" + "logs": "Log" }, "update": { "available": "Aggiornamento disponibile", "versionAvailable": "Versione ${version} disponibile", - "currentVersion": "Corrente: ${version}", + "currentVersion": "Attuale: ${version}", "skipVersion": "Salta questa versione", - "viewRelease": "Visualizza dettagli release", + "viewRelease": "Visualizza note di rilascio", "latestVersion": "La versione installata è l'ultima disponibile", "checkFailed": "Impossibile controllare gli aggiornamenti" }, @@ -101,42 +101,42 @@ "minutesLabel": "Minuti", "secondsShort": "s", "minutesShort": "m", - "durationHint": "Inserisci durata (${min}-${max})", + "durationHint": "Inserisci una durata (${min}-${max})", "systemTheme": "Sistema", "lightTheme": "Chiaro", "darkTheme": "Scuro", "oledTheme": "OLED", - "libraryDensity": "Densità libreria", + "libraryDensity": "Densità della libreria", "compact": "Compatta", "comfortable": "Comoda", - "tvCornerSpotlightBackdrop": "", - "tvCornerSpotlightBackdropDescription": "", + "tvCornerSpotlightBackdrop": "Sfondo in evidenza nell'angolo", + "tvCornerSpotlightBackdropDescription": "Mostra l'immagine in evidenza nell'angolo in alto a destra anziché a schermo intero", "viewMode": "Modalità di visualizzazione", "gridView": "Griglia", "listView": "Elenco", - "showHeroSection": "Mostra sezione principale", - "continueWatchingAction": "Azione Continua a guardare", + "showHeroSection": "Mostra sezione in evidenza", + "continueWatchingAction": "Azione per Continua a guardare", "continueWatchingPlay": "Riproduci", "continueWatchingDetails": "Apri dettagli", "episodeAction": "Azione episodio", "episodePlay": "Riproduci", "episodeDetails": "Apri dettagli", - "useGlobalHubs": "Usa layout home", - "useGlobalHubsDescription": "Mostra hub Home unificati. Altrimenti usa i consigli della libreria.", - "showServerNameOnHubs": "Mostra nome server sugli hub", - "showServerNameOnHubsDescription": "Mostra sempre i nomi dei server nei titoli degli hub.", - "groupLibrariesByServer": "Raggruppa librerie per server", - "groupLibrariesByServerDescription": "Raggruppa le librerie laterali per server multimediale.", + "useGlobalHubs": "Usa il layout della Home", + "useGlobalHubsDescription": "Mostra sezioni Home unificate. In caso contrario, usa i consigli della libreria.", + "showServerNameOnHubs": "Mostra il nome del server nelle sezioni", + "showServerNameOnHubsDescription": "Mostra sempre i nomi dei server nei titoli delle sezioni.", + "groupLibrariesByServer": "Raggruppa le librerie per server", + "groupLibrariesByServerDescription": "Raggruppa le librerie della barra laterale sotto ciascun server multimediale.", "alwaysKeepSidebarOpen": "Mantieni sempre aperta la barra laterale", "alwaysKeepSidebarOpenDescription": "La barra laterale rimane espansa e l'area del contenuto si adatta", - "showUnwatchedCount": "Mostra conteggio non visti", + "showUnwatchedCount": "Mostra il numero di episodi non visti", "showUnwatchedCountDescription": "Mostra il numero di episodi non visti per serie e stagioni", - "showEpisodeNumberOnCards": "Mostra numero episodio sulle schede", - "showEpisodeNumberOnCardsDescription": "Mostra stagione ed episodio sulle schede episodio", - "showSeasonPostersOnTabs": "Mostra poster delle stagioni sulle schede", + "showEpisodeNumberOnCards": "Mostra il numero dell'episodio sulle schede", + "showEpisodeNumberOnCardsDescription": "Mostra il numero della stagione e dell'episodio sulle schede degli episodi", + "showSeasonPostersOnTabs": "Mostra i poster delle stagioni nelle schede", "showSeasonPostersOnTabsDescription": "Mostra il poster di ogni stagione sopra la sua scheda", - "tvFullCardLayout": "Schede TV piene", - "tvFullCardLayoutDescription": "Usa schede TV solo immagine con i nomi degli attori sovrapposti", + "tvFullCardLayout": "Schede TV a tutta immagine", + "tvFullCardLayoutDescription": "Usa schede TV con la sola immagine e i nomi degli attori sovrapposti", "focusGlow": "Bagliore di selezione", "focusGlowDescription": "Mostra un leggero bagliore attorno alla scheda selezionata", "visualEffects": "Effetti visivi", @@ -150,48 +150,48 @@ "playerBackend": "Motore di riproduzione", "exoPlayer": "ExoPlayer", "mpv": "mpv", - "hardwareDecoding": "Decodifica Hardware", + "hardwareDecoding": "Decodifica hardware", "hardwareDecodingDescription": "Utilizza l'accelerazione hardware quando disponibile", "bufferSize": "Dimensione buffer", "bufferSizeMB": "${size}MB", - "bufferSizeAuto": "Auto (Consigliato)", + "bufferSizeAuto": "Automatica (consigliata)", "bufferSizeWarning": "${heap}MB di memoria disponibile. Un buffer di ${size}MB può influire sulla riproduzione.", "defaultQualityTitle": "Qualità predefinita", "musicQualityTitle": "Qualità musicale", "subtitleStyling": "Stile sottotitoli", "subtitleStylingDescription": "Personalizza l'aspetto dei sottotitoli", - "smallSkipDuration": "Durata skip breve", - "largeSkipDuration": "Durata skip lungo", - "rewindOnResume": "Riavvolgi alla ripresa", + "smallSkipDuration": "Salto breve", + "largeSkipDuration": "Salto lungo", + "rewindOnResume": "Riavvolgimento alla ripresa", "secondsUnit": "${seconds} secondi", "defaultSleepTimer": "Timer spegnimento predefinito", "minutesUnit": "${minutes} minuti", - "rememberTrackSelections": "Ricorda selezioni tracce per serie/film", - "rememberTrackSelectionsDescription": "Ricorda scelte audio e sottotitoli per titolo", + "rememberTrackSelections": "Ricorda la selezione delle tracce per ogni serie o film", + "rememberTrackSelectionsDescription": "Ricorda le scelte di audio e sottotitoli per ogni titolo", "showChapterMarkersOnTimeline": "Mostra i marcatori dei capitoli sulla barra di avanzamento", "showChapterMarkersOnTimelineDescription": "Segmenta la barra di avanzamento ai confini dei capitoli", - "clickVideoTogglesPlayback": "Fai clic sul video per avviare o mettere in pausa la riproduzione.", - "clickVideoTogglesPlaybackDescription": "Clicca sul video per riprodurre/mettere in pausa invece di mostrare i controlli.", + "clickVideoTogglesPlayback": "Fai clic sul video per alternare riproduzione e pausa", + "clickVideoTogglesPlaybackDescription": "Fai clic sul video per riprodurre o mettere in pausa anziché mostrare i controlli.", "videoPlayerControls": "Controlli del lettore video", "keyboardShortcuts": "Scorciatoie da tastiera", "keyboardShortcutsDescription": "Personalizza le scorciatoie da tastiera", "videoPlayerNavigation": "Navigazione del lettore video", "videoPlayerNavigationDescription": "Usa i tasti freccia per navigare nei controlli del lettore video", - "watchTogetherRelay": "Relay Guarda Insieme", + "watchTogetherRelay": "Relay di Guarda insieme", "watchTogetherRelayDescription": "Imposta un relay personalizzato. Tutti devono usare lo stesso server.", "watchTogetherRelayHint": "https://mio-relay.esempio.it", - "watchTogetherRelayInvalid": "Enter a valid HTTP or HTTPS relay base URL.", - "crashReporting": "Segnalazione errori", - "crashReportingDescription": "Invia segnalazioni di errori per migliorare l'app", - "debugLogging": "Log di debug", - "debugLoggingDescription": "Abilita il logging dettagliato per la risoluzione dei problemi", - "viewLogs": "Visualizza log", + "watchTogetherRelayInvalid": "Inserisci un URL di base HTTP o HTTPS valido per il relay.", + "crashReporting": "Segnalazione degli arresti anomali", + "crashReportingDescription": "Invia segnalazioni sugli arresti anomali per contribuire a migliorare l'app", + "debugLogging": "Registrazione di debug", + "debugLoggingDescription": "Abilita una registrazione dettagliata per la risoluzione dei problemi", + "viewLogs": "Visualizza i log", "viewLogsDescription": "Visualizza i log dell'applicazione", - "clearCache": "Svuota cache", - "clearCacheDescription": "Cancella immagini e dati in cache. Il contenuto può caricarsi più lentamente.", + "clearCache": "Svuota la cache", + "clearCacheDescription": "Cancella le immagini e i dati memorizzati nella cache. I contenuti potrebbero caricarsi più lentamente.", "clearCacheSuccess": "Cache cancellata correttamente", "resetSettings": "Ripristina impostazioni", - "resetSettingsDescription": "Ripristina impostazioni predefinite. Non si può annullare.", + "resetSettingsDescription": "Ripristina le impostazioni predefinite. Questa operazione non può essere annullata.", "resetSettingsSuccess": "Impostazioni ripristinate correttamente", "backup": "Backup", "exportSettings": "Esporta impostazioni", @@ -212,73 +212,73 @@ "autoCheckUpdatesOnStartup": "Controlla automaticamente gli aggiornamenti all'avvio", "autoCheckUpdatesOnStartupDescription": "Avvisa all'avvio quando è disponibile un aggiornamento", "validationErrorEnterNumber": "Inserisci un numero valido", - "validationErrorDuration": "la durata deve essere compresa tra ${min} e ${max} ${unit}", + "validationErrorDuration": "La durata deve essere compresa tra ${min} e ${max} ${unit}", "shortcutAlreadyAssigned": "Scorciatoia già assegnata a ${action}", "shortcutUpdated": "Scorciatoia aggiornata per ${action}", - "saveFailed": "Could not save changes. Try again.", - "autoSkip": "Salto Automatico", - "autoSkipIntro": "Salta Intro Automaticamente", - "autoSkipIntroDescription": "Salta automaticamente i marcatori dell'intro dopo alcuni secondi", - "autoSkipCredits": "Salta Crediti Automaticamente", - "autoSkipCreditsDescription": "Salta automaticamente i crediti e riproduci l'episodio successivo", - "forceSkipMarkerFallback": "Forza marcatori fallback", - "forceSkipMarkerFallbackDescription": "Usa pattern dei titoli dei capitoli anche se Plex ha marcatori", - "autoSkipDelay": "Ritardo Salto Automatico", - "autoSkipDelayDescription": "Aspetta ${seconds} secondi prima del salto automatico", - "introPattern": "Pattern marcatore intro", - "introPatternDescription": "Espressione regolare per riconoscere i marcatori intro nei titoli dei capitoli", - "creditsPattern": "Pattern marcatore titoli di coda", - "creditsPatternDescription": "Espressione regolare per riconoscere i marcatori dei titoli di coda nei capitoli", + "saveFailed": "Impossibile salvare le modifiche. Riprova.", + "autoSkip": "Salto automatico", + "autoSkipIntro": "Salta automaticamente la sigla iniziale", + "autoSkipIntroDescription": "Salta automaticamente i marcatori della sigla iniziale dopo alcuni secondi", + "autoSkipCredits": "Salta automaticamente i titoli di coda", + "autoSkipCreditsDescription": "Salta automaticamente i titoli di coda e riproduce l'episodio successivo", + "forceSkipMarkerFallback": "Forza i marcatori di ripiego", + "forceSkipMarkerFallbackDescription": "Usa i modelli dei titoli dei capitoli anche quando Plex dispone di marcatori", + "autoSkipDelay": "Ritardo del salto automatico", + "autoSkipDelayDescription": "Attendi ${seconds} secondi prima del salto automatico", + "introPattern": "Modello del marcatore della sigla iniziale", + "introPatternDescription": "Espressione regolare per individuare i marcatori della sigla iniziale nei titoli dei capitoli", + "creditsPattern": "Modello del marcatore dei titoli di coda", + "creditsPatternDescription": "Espressione regolare per individuare i marcatori dei titoli di coda nei titoli dei capitoli", "invalidRegex": "Espressione regolare non valida", "regex": "Espressione regolare", "downloads": "Download", - "downloadLocationDescription": "Scegli dove salvare i contenuti scaricati", - "downloadLocationDefault": "Predefinita (Archiviazione App)", - "downloadLocationCustom": "Posizione Personalizzata", - "selectFolder": "Seleziona Cartella", - "resetToDefault": "Ripristina Predefinita", - "currentPath": "Corrente: ${path}", + "downloadLocationDescription": "Scegli dove archiviare i contenuti scaricati", + "downloadLocationDefault": "Predefinita (archivio dell'app)", + "downloadLocationCustom": "Posizione personalizzata", + "selectFolder": "Seleziona cartella", + "resetToDefault": "Ripristina posizione predefinita", + "currentPath": "Attuale: ${path}", "downloadLocationChanged": "Posizione di download modificata", "downloadLocationReset": "Posizione di download ripristinata a predefinita", "downloadLocationInvalid": "La cartella selezionata non è scrivibile", "downloadLocationPickerUnavailable": "La selezione della cartella non è disponibile su questo dispositivo", - "downloadOnWifiOnly": "Scarica solo con WiFi", + "downloadOnWifiOnly": "Scarica solo tramite Wi-Fi", "downloadOnWifiOnlyDescription": "Impedisci i download quando si utilizza la rete dati cellulare", "autoRemoveWatchedDownloads": "Rimuovi automaticamente i download visti", "autoRemoveWatchedDownloadsDescription": "Elimina automaticamente i download già visti", - "cellularDownloadBlocked": "I download sono bloccati su rete mobile. Usa WiFi o cambia impostazione.", - "maxVolume": "Volume massimo", - "maxVolumeDescription": "Consenti volume superiore al 100% per contenuti audio bassi", + "cellularDownloadBlocked": "I download sono bloccati sulla rete mobile. Usa il Wi-Fi o modifica l'impostazione.", + "maxVolume": "Volume massimo consentito", + "maxVolumeDescription": "Consenti di aumentare il volume oltre il 100% per i contenuti con audio basso", "maxVolumePercent": "${percent}%", "discordRichPresence": "Discord Rich Presence", "discordRichPresenceDescription": "Mostra su Discord cosa stai guardando", "services": "Servizi", "servicesDescription": "Connetti Trakt, MyAnimeList, Seerr e altro", "manageLibrariesDescription": "Riordina e nascondi le librerie", - "companionRemoteServer": "Server telecomando", - "companionRemoteServerDescription": "Consenti ai dispositivi mobili nella tua rete di controllare questa app", - "autoPip": "Picture-in-Picture automatico", - "autoPipDescription": "Entra in picture-in-picture uscendo durante la riproduzione", - "matchContentFrameRate": "Adatta frequenza fotogrammi", - "matchContentFrameRateDescription": "Adatta la frequenza del display al contenuto video", - "matchRefreshRate": "Adatta frequenza di aggiornamento", - "matchRefreshRateDescription": "Adatta la frequenza del display a schermo intero", - "matchDynamicRange": "Adatta gamma dinamica", - "matchDynamicRangeDescription": "Attiva HDR per contenuti HDR, poi torna a SDR", - "displaySwitchDelay": "Ritardo cambio display", - "tunneledPlayback": "Riproduzione tunnelizzata", - "tunneledPlaybackDescription": "Usa tunneling video. Disattiva se la riproduzione HDR mostra video nero.", - "audioPassthrough": "Audio Passthrough", - "audioPassthroughDescription": "Invia l'audio Dolby/DTS al ricevitore o alla TV senza ricodifica, mantenendo il suono surround. Disattiva se non senti audio.", - "audioPassthroughDescriptionAppleTv": "Consegna Dolby Digital Plus (incluso Atmos) al sistema come bitstream. DTS e TrueHD vengono comunque riprodotti come PCM multicanale. Durante i salti possono verificarsi brevi interruzioni audio.", + "companionRemoteServer": "Server del telecomando", + "companionRemoteServerDescription": "Consenti ai dispositivi mobili della tua rete di controllare questa app", + "autoPip": "Picture-in-Picture automatica", + "autoPipDescription": "Attiva automaticamente la modalità Picture-in-Picture quando esci dall'app durante la riproduzione", + "matchContentFrameRate": "Adatta la frequenza dei fotogrammi", + "matchContentFrameRateDescription": "Adatta la frequenza di aggiornamento dello schermo al contenuto video", + "matchRefreshRate": "Adatta la frequenza di aggiornamento", + "matchRefreshRateDescription": "Adatta la frequenza di aggiornamento dello schermo in modalità a schermo intero", + "matchDynamicRange": "Adatta la gamma dinamica", + "matchDynamicRangeDescription": "Attiva l'HDR per i contenuti HDR, quindi torna all'SDR", + "displaySwitchDelay": "Ritardo del cambio di modalità dello schermo", + "tunneledPlayback": "Riproduzione con tunneling", + "tunneledPlaybackDescription": "Usa il tunneling video. Disattivalo se durante la riproduzione HDR lo schermo rimane nero.", + "audioPassthrough": "Passthrough audio", + "audioPassthroughDescription": "Invia l'audio Dolby/DTS al ricevitore o al televisore senza ricodificarlo, preservando l'audio surround. Disattiva questa opzione se non senti alcun suono.", + "audioPassthroughDescriptionAppleTv": "Usa il decoder Dolby nativo di Apple per Dolby Digital Plus, incluso Atmos. DTS e TrueHD vengono comunque riprodotti come PCM multicanale. Disattiva questa opzione se non senti alcun suono.", "audioDownmix": "Downmix in stereo", "audioDownmixDescription": "Riduce l'audio surround a due canali per altoparlanti stereo o cuffie", "downmixCenterBoost": "Amplificazione canale centrale", "downmixCenterBoostValue": "${db} dB", "downmixCenterBoostLabel": "Amplificazione (dB)", "downmixCenterBoostShort": "dB", - "audioDownmixNormalize": "Normalizza volume nel downmix", - "audioDownmixNormalizeDescription": "Riduce il mix per evitare distorsioni. Disattiva per mantenere il volume originale (le scene ad alto volume possono distorcere).", + "audioDownmixNormalize": "Normalizza il volume durante il downmix", + "audioDownmixNormalizeDescription": "Riduce il volume del mix per evitare il clipping. Disattiva questa opzione per mantenere il volume originale (le scene più rumorose potrebbero risultare distorte).", "atmosDiagnostics": "Test uscita Atmos", "atmosDiagnosticsDescription": "Diagnostica l'uscita Dolby Atmos riproducendo segnali di prova con il lettore di sistema", "atmosTestHlsAtmos": "Stream Atmos di Apple", @@ -295,48 +295,48 @@ "atmosTestUrlMissing": "Imposta prima l'URL del file di prova", "atmosTestStatus": "Stato", "dvConversionMode": "Conversione Dolby Vision", - "dvConversionModeDescription": "Scegli come ExoPlayer gestisce i file Dolby Vision Profile 7.", + "dvConversionModeDescription": "Scegli come ExoPlayer gestisce i file Dolby Vision con profilo 7.", "dvConversionAuto": "Auto", - "dvConversionNative": "Nativo / disattivato", + "dvConversionNative": "Nativa / disattivata", "dvConversionDv81": "P7 → P8.1", "dvConversionHevcStrip": "P7 → HEVC", - "dvConversionAutoDescription": "Usa il rilevamento delle capacità del dispositivo e il normale comportamento di fallback", - "dvConversionNativeDescription": "Forza DV7 nativo e sopprime il nuovo tentativo di conversione DV", - "dvConversionDv81Description": "Forza la conversione RPU inline a Dolby Vision profilo 8.1", - "dvConversionHevcStripDescription": "Rimuove i livelli RPU/EL Dolby Vision e presenta HEVC semplice", - "requireProfileSelectionOnOpen": "Chiedi profilo all'apertura", + "dvConversionAutoDescription": "Rileva le capacità del dispositivo e usa il normale meccanismo di ripiego", + "dvConversionNativeDescription": "Forza il DV7 nativo e impedisce nuovi tentativi di conversione DV", + "dvConversionDv81Description": "Forza la conversione RPU diretta al profilo Dolby Vision 8.1", + "dvConversionHevcStripDescription": "Rimuove i livelli RPU/EL di Dolby Vision e riproduce il video come semplice HEVC", + "requireProfileSelectionOnOpen": "Chiedi di scegliere il profilo all'apertura", "requireProfileSelectionOnOpenDescription": "Mostra la selezione del profilo ogni volta che l'app viene aperta", "forceTvMode": "Forza modalità TV", - "forceTvModeDescription": "Forza layout TV. Per dispositivi non rilevati automaticamente. Richiede riavvio.", + "forceTvModeDescription": "Forza il layout TV sui dispositivi che non vengono rilevati automaticamente. Richiede il riavvio.", "startInFullscreen": "Avvia a schermo intero", "startInFullscreenDescription": "Apri Plezy a schermo intero all'avvio", - "exitFullscreenOnPlayerClose": "Esci dallo schermo intero alla chiusura del player", - "exitFullscreenOnPlayerCloseDescription": "Esci automaticamente dallo schermo intero quando il lettore video viene chiuso", - "autoHidePerformanceOverlay": "Nascondi automaticamente overlay prestazioni", - "autoHidePerformanceOverlayDescription": "Dissolvi l'overlay prestazioni con i controlli di riproduzione", - "showNavBarLabels": "Mostra etichette barra di navigazione", - "showNavBarLabelsDescription": "Mostra le etichette sotto le icone della barra di navigazione", + "exitFullscreenOnPlayerClose": "Esci dalla modalità a schermo intero alla chiusura del lettore", + "exitFullscreenOnPlayerCloseDescription": "Esce automaticamente dalla modalità a schermo intero quando chiudi il lettore video", + "autoHidePerformanceOverlay": "Nascondi automaticamente il riquadro delle prestazioni", + "autoHidePerformanceOverlayDescription": "Dissolvi il riquadro delle prestazioni insieme ai controlli di riproduzione", + "showNavBarLabels": "Mostra le etichette della barra di navigazione", + "showNavBarLabelsDescription": "Mostra le etichette di testo sotto le icone della barra di navigazione", "startupSection": "Sezione di avvio", - "liveTvDefaultFavorites": "Canali preferiti predefiniti", - "liveTvDefaultFavoritesDescription": "Mostra solo i canali preferiti all'apertura della TV dal vivo", + "liveTvDefaultFavorites": "Apri sui canali preferiti", + "liveTvDefaultFavoritesDescription": "Mostra solo i canali preferiti quando apri la TV in diretta", "display": "Schermo", - "homeScreen": "Schermata Home", + "homeScreen": "Schermata iniziale", "navigation": "Navigazione", "window": "Finestra", "content": "Contenuti", "player": "Lettore", - "subtitlesAndConfig": "Sottotitoli e configurazione", - "seekAndTiming": "Ricerca e tempistica", + "subtitlesAndConfig": "Sottotitoli e impostazioni", + "seekAndTiming": "Avanzamento e tempi", "behavior": "Comportamento" }, "search": { - "hint": "Cerca film. spettacoli, musica...", + "hint": "Cerca film, serie TV e musica...", "tryDifferentTerm": "Prova altri termini di ricerca", "searchYourMedia": "Cerca nei tuoi media", "enterTitleActorOrKeyword": "Inserisci un titolo, attore o parola chiave" }, "hotkeys": { - "setShortcutFor": "Imposta scorciatoia per ${actionName}", + "setShortcutFor": "Imposta una scorciatoia per ${actionName}", "clearShortcut": "Elimina scorciatoia", "noShortcutSet": "Nessuna scorciatoia impostata", "currentShortcut": "Scorciatoia attuale:", @@ -348,9 +348,9 @@ "volumeDown": "Abbassa volume", "seekForward": "Avanti (${seconds}s)", "seekBackward": "Indietro (${seconds}s)", - "fullscreenToggle": "Schermo intero", - "muteToggle": "Muto", - "subtitleToggle": "Sottotitoli", + "fullscreenToggle": "Attiva/disattiva schermo intero", + "muteToggle": "Attiva/disattiva audio", + "subtitleToggle": "Attiva/disattiva sottotitoli", "audioTrackNext": "Traccia audio successiva", "subtitleTrackNext": "Sottotitoli successivi", "chapterNext": "Capitolo successivo", @@ -379,10 +379,10 @@ "codec": "Codec", "resolution": "Risoluzione", "bitrate": "Bitrate", - "frameRate": "Frame Rate", - "aspectRatio": "Aspect Ratio", + "frameRate": "Frequenza fotogrammi", + "aspectRatio": "Proporzioni", "profile": "Profilo", - "bitDepth": "Profondità colore", + "bitDepth": "Profondità in bit", "colorSpace": "Spazio colore", "colorRange": "Gamma colori", "colorPrimaries": "Colori primari", @@ -395,21 +395,21 @@ "container": "Contenitore", "duration": "Durata", "optimizedForStreaming": "Ottimizzato per lo streaming", - "has64bitOffsets": "Offset a 64-bit" + "has64bitOffsets": "Offset a 64 bit" }, "mediaMenu": { "markAsWatched": "Segna come visto", "markAsUnwatched": "Segna come non visto", "removeFromContinueWatching": "Rimuovi da Continua a guardare", - "viewDetails": "Vedi dettagli", - "goToSeries": "Vai alle serie", + "viewDetails": "Visualizza dettagli", + "goToSeries": "Vai alla serie", "shufflePlay": "Riproduzione casuale", "shuffleNotAvailableOffline": "Riproduzione casuale non disponibile offline", "fileInfo": "Info sul file", "deleteFromServer": "Elimina dal server", "confirmDelete": "Eliminare questo media e i suoi file dal server?", - "deleteMultipleWarning": "Questo include tutti gli episodi e i loro file.", - "mediaDeletedSuccessfully": "Elemento multimediale eliminato con successo", + "deleteMultipleWarning": "Sono inclusi tutti gli episodi e i relativi file.", + "mediaDeletedSuccessfully": "Elemento multimediale eliminato correttamente", "mediaFailedToDelete": "Impossibile eliminare l'elemento multimediale", "rate": "Valuta", "playFromBeginning": "Riproduci dall'inizio", @@ -422,7 +422,7 @@ "favorited": "Aggiunto ai preferiti", "saved": "Salvato", "notAvailable": "Nessuna corrispondenza trovata", - "noConnectedServices": "Connetti un servizio nelle Impostazioni per valutare lì." + "noConnectedServices": "Collega un servizio nelle Impostazioni per assegnare valutazioni anche su quel servizio." }, "accessibility": { "mediaCardMovie": "${title}, film", @@ -430,7 +430,7 @@ "mediaCardEpisode": "${title}, ${episodeInfo}", "mediaCardSeason": "${title}, ${seasonInfo}", "mediaCardWatched": "visto", - "mediaCardPartiallyWatched": "${percent} percento visto", + "mediaCardPartiallyWatched": "visto al ${percent}%", "mediaCardUnwatched": "non visto", "tapToPlay": "Tocca per riprodurre", "decrease": "Diminuisci", @@ -460,32 +460,32 @@ "videoControls": { "audioLabel": "Audio", "subtitlesLabel": "Sottotitoli", - "resetToZero": "Riporta a 0ms", + "resetToZero": "Ripristina a 0 ms", "addTime": "+${amount}${unit}", "minusTime": "-${amount}${unit}", - "playsLater": "${label} riprodotto dopo", - "playsEarlier": "${label} riprodotto prima", - "noOffset": "Nessun offset", + "playsLater": "${label}: riproduzione ritardata", + "playsEarlier": "${label}: riproduzione anticipata", + "noOffset": "Nessun ritardo", "letterbox": "Letterbox", - "fillScreen": "Riempi schermo", + "fillScreen": "Riempi lo schermo", "stretch": "Allunga", "lockRotation": "Blocca rotazione", "unlockRotation": "Sblocca rotazione", "timerActive": "Timer attivo", - "playbackWillPauseIn": "La riproduzione si interromperà tra ${duration}", + "playbackWillPauseIn": "La riproduzione verrà messa in pausa tra ${duration}", "sleepTimerEndOfVideo": "Fine del video corrente", - "sleepTimerStopAtHeader": "Interrompi a", + "sleepTimerStopAtHeader": "Interrompi alle", "sleepTimerDurationHeader": "Timer", - "playbackWillPauseAtEnd": "La riproduzione si interromperà alla fine di questo video", + "playbackWillPauseAtEnd": "La riproduzione verrà messa in pausa alla fine di questo video", "stillWatching": "Stai ancora guardando?", "pausingIn": "Pausa tra ${seconds}s", "continueWatching": "Continua", - "autoPlayNext": "Riproduzione automatica successivo", - "playNext": "Riproduci successivo", + "autoPlayNext": "Riproduci automaticamente il successivo", + "playNext": "Riproduci il successivo", "playButton": "Riproduci", "pauseButton": "Pausa", - "showPlaybackControls": "", - "hidePlaybackControls": "", + "showPlaybackControls": "Mostra i controlli di riproduzione", + "hidePlaybackControls": "Nascondi i controlli di riproduzione", "seekBackwardButton": "Riavvolgi di ${seconds} secondi", "seekForwardButton": "Avanza di ${seconds} secondi", "previousButton": "Episodio precedente", @@ -516,7 +516,7 @@ "longPressToUnlock": "Premi a lungo per sbloccare", "timelineSlider": "Timeline video", "volumeSlider": "Livello volume", - "endsAt": "Finisce alle ${time}", + "endsAt": "Termina alle ${time}", "pipActive": "Riproduzione in Picture-in-Picture", "pipFailed": "Impossibile avviare la modalità Picture-in-Picture", "screenshotSaved": "Schermata salvata", @@ -524,7 +524,7 @@ "pipErrors": { "androidVersion": "Richiede Android 8.0 o versioni successive", "iosVersion": "Richiede iOS 15.0 o versioni successive", - "permissionDisabled": "Picture-in-picture è disattivato. Attivalo nelle impostazioni di sistema.", + "permissionDisabled": "La modalità Picture-in-Picture è disattivata. Attivala nelle impostazioni di sistema.", "notSupported": "Questo dispositivo non supporta la modalità Picture-in-Picture", "voSwitchFailed": "Impossibile cambiare l'uscita video per Picture-in-Picture", "failed": "Impossibile avviare la modalità Picture-in-Picture", @@ -547,10 +547,10 @@ }, "userStatus": {}, "messages": { - "markedAsWatched": "Segna come visto", - "markedAsUnwatched": "Segna come non visto", - "markedAsWatchedOffline": "Segnato come visto (sincronizzato online)", - "markedAsUnwatchedOffline": "Segnato come non visto (sincronizzato online)", + "markedAsWatched": "Segnato come visto", + "markedAsUnwatched": "Segnato come non visto", + "markedAsWatchedOffline": "Segnato come visto (verrà sincronizzato quando torni online)", + "markedAsUnwatchedOffline": "Segnato come non visto (verrà sincronizzato quando torni online)", "autoRemovedWatchedDownload": "Rimosso automaticamente: ${title}", "autoRemovedWatchedDownloads": { "one": "Rimosso automaticamente ${n} download già visto", @@ -558,16 +558,16 @@ }, "removedFromContinueWatching": "Rimosso da Continua a guardare", "errorLoading": "Errore: ${error}", - "streamInterrupted": "La riproduzione si è interrotta. Premi Riproduci o scorri per riprovare.", + "streamInterrupted": "La riproduzione si è interrotta. Premi Riproduci o vai a un altro punto per riprovare.", "liveStreamInterrupted": "La diretta si è interrotta. Premi Riproduci per riprovare.", "fileInfoNotAvailable": "Informazioni sul file non disponibili", - "playbackAuthenticationRequired": "Sign in to the media server again to play this item.", - "playbackServerUnavailable": "The media server is unavailable. Try again later.", - "playbackDataInvalid": "The server returned invalid playback information.", - "playbackCancelled": "Playback was cancelled.", - "playbackFailed": "Playback could not be started.", - "errorLoadingFileInfo": "Errore caricamento informazioni sul file: ${error}", - "errorLoadingSeries": "Errore caricamento serie", + "playbackAuthenticationRequired": "Accedi di nuovo al server multimediale per riprodurre questo elemento.", + "playbackServerUnavailable": "Il server multimediale non è disponibile. Riprova più tardi.", + "playbackDataInvalid": "Il server ha restituito informazioni di riproduzione non valide.", + "playbackCancelled": "Riproduzione annullata.", + "playbackFailed": "Impossibile avviare la riproduzione.", + "errorLoadingFileInfo": "Errore durante il caricamento delle informazioni sul file: ${error}", + "errorLoadingSeries": "Errore durante il caricamento della serie", "musicNotSupported": "La riproduzione musicale non è ancora supportata", "noDescriptionAvailable": "Nessuna descrizione disponibile", "noProfilesAvailable": "Nessun profilo disponibile", @@ -576,40 +576,40 @@ "logsCleared": "Log eliminati", "logsCopied": "Log copiati negli appunti", "noLogsAvailable": "Nessun log disponibile", - "libraryScanning": "Scansione \"${title}\"...", - "libraryScanStarted": "Scansione libreria iniziata per \"${title}\"", - "libraryScanFailed": "Impossibile eseguire scansione della libreria: ${error}", - "metadataRefreshing": "Aggiornamento metadati per \"${title}\"...", - "metadataRefreshStarted": "Aggiornamento metadati per \"${title}\"", - "metadataRefreshFailed": "Errore aggiornamento metadati: ${error}", - "logoutConfirm": "Sei sicuro di volerti disconnettere?", + "libraryScanning": "Scansione di \"${title}\"...", + "libraryScanStarted": "Scansione della libreria avviata per \"${title}\"", + "libraryScanFailed": "Impossibile eseguire la scansione della libreria: ${error}", + "metadataRefreshing": "Aggiornamento dei metadati di \"${title}\"...", + "metadataRefreshStarted": "Aggiornamento dei metadati avviato per \"${title}\"", + "metadataRefreshFailed": "Impossibile aggiornare i metadati: ${error}", + "logoutConfirm": "Vuoi uscire dall'account?", "noSeasonsFound": "Nessuna stagione trovata", "seasonsLoadFailed": "Impossibile caricare le stagioni", "noEpisodesFound": "Nessun episodio trovato nella prima stagione", "noEpisodesFoundGeneral": "Nessun episodio trovato", "episodesLoadFailed": "Impossibile caricare gli episodi", "noResultsFound": "Nessun risultato", - "sleepTimerSet": "Imposta timer spegnimento per ${label}", + "sleepTimerSet": "Timer di spegnimento impostato su ${label}", "noItemsAvailable": "Nessun elemento disponibile", - "failedToCreatePlayQueueNoItems": "Impossibile creare la coda di riproduzione - nessun elemento", - "failedPlayback": "Impossibile ${action}: ${error}", + "failedToCreatePlayQueueNoItems": "Impossibile creare una coda di riproduzione: nessun elemento", + "failedPlayback": "Impossibile eseguire l'azione «${action}»: ${error}", "switchingToCompatiblePlayer": "Passaggio al lettore compatibile...", "serverLimitTitle": "Riproduzione non riuscita", - "serverLimitBody": "Errore server (HTTP 500). Un limite di banda/transcodifica probabilmente ha rifiutato questa sessione. Chiedi al proprietario di modificarlo.", + "serverLimitBody": "Errore del server (HTTP 500). È probabile che un limite di banda o transcodifica abbia impedito questa sessione. Chiedi al proprietario di modificare il limite.", "logsUploaded": "Log caricati", - "logsUploadFailed": "Caricamento log fallito", + "logsUploadFailed": "Impossibile caricare i log", "logId": "ID log" }, "subtitlingStyling": { "text": "Testo", "border": "Bordo", "background": "Sfondo", - "fontSize": "Dimensione", - "textColor": "Colore testo", - "borderSize": "Dimensione bordo", - "borderColor": "Colore bordo", - "backgroundOpacity": "Opacità sfondo", - "backgroundColor": "Colore sfondo", + "fontSize": "Dimensione carattere", + "textColor": "Colore del testo", + "borderSize": "Dimensione del bordo", + "borderColor": "Colore del bordo", + "backgroundOpacity": "Opacità dello sfondo", + "backgroundColor": "Colore dello sfondo", "position": "Posizione", "assOverride": "Sovrascrittura ASS", "overrideScale": "Ridimensiona", @@ -624,7 +624,7 @@ "renderResolutionVideo": "Risoluzione del video" }, "mpvConfig": { - "title": "Configurazione mpv", + "title": "mpv.conf", "description": "Impostazioni avanzate del lettore video", "presets": "Preset", "noPresets": "Nessun preset salvato", @@ -646,23 +646,23 @@ "addPlezyProfile": "Aggiungi profilo Plezy", "switchingProfile": "Cambio profilo…", "deleteThisProfileTitle": "Eliminare questo profilo?", - "deleteThisProfileMessage": "Rimuovi ${displayName}. Le connessioni non sono interessate.", + "deleteThisProfileMessage": "Rimuovi ${displayName}. Le connessioni resteranno invariate.", "active": "Attivo", "manage": "Gestisci", "delete": "Elimina", "signOut": "Esci", "signOutPlexTitle": "Uscire da Plex?", - "signOutPlexMessage": "Rimuovere ${displayName} e tutti gli utenti Plex Home? Puoi accedere di nuovo quando vuoi.", - "signedOutPlex": "Uscito da Plex.", - "signOutFailed": "Uscita non riuscita.", + "signOutPlexMessage": "Verranno rimossi ${displayName} e tutti gli utenti Plex Home. Potrai accedere di nuovo in qualsiasi momento.", + "signedOutPlex": "Disconnessione da Plex completata.", + "signOutFailed": "Disconnessione non riuscita.", "sectionTitle": "Profili", "summarySingle": "Aggiungi profili per combinare utenti gestiti e identità locali", "summaryMultipleWithActive": "${count} profili · attivo: ${activeName}", "summaryMultiple": "${count} profili", "removeConnectionTitle": "Rimuovere la connessione?", - "removeConnectionMessage": "Rimuovi l'accesso di ${displayName} a ${connectionLabel}. Gli altri profili lo mantengono.", + "removeConnectionMessage": "Rimuovi da ${displayName} l'accesso a ${connectionLabel}. Gli altri profili continueranno ad avervi accesso.", "deleteProfileTitle": "Eliminare il profilo?", - "deleteProfileMessage": "Rimuovi ${displayName} e le sue connessioni. I server restano disponibili.", + "deleteProfileMessage": "Rimuovi ${displayName} e le relative connessioni. I server resteranno disponibili.", "profileNameLabel": "Nome profilo", "pinProtectionLabel": "Protezione PIN", "pinManagedByPlex": "PIN gestito da Plex. Modifica su plex.tv.", @@ -688,7 +688,7 @@ "borrowExplain": "Prendi in prestito la connessione di un altro profilo. I profili protetti da PIN richiedono un PIN.", "borrowEmpty": "Nulla da prendere in prestito al momento.", "borrowEmptySubtitle": "Collega prima Plex o Jellyfin a un altro profilo.", - "borrowLoadFailed": "Available connections could not be loaded. Try again.", + "borrowLoadFailed": "Impossibile caricare le connessioni disponibili. Riprova.", "borrowFromProfile": "Da ${displayName}", "borrowConnectionBorrowed": "Connessione presa in prestito.", "borrowFailed": "Impossibile prendere in prestito la connessione.", @@ -708,7 +708,7 @@ "sectionTitle": "Connessioni", "addConnection": "Aggiungi connessione", "addConnectionSubtitleNoProfile": "Accedi con Plex o collega un server Jellyfin", - "addConnectionSubtitleScoped": "Aggiungi a ${displayName}: Plex, Jellyfin o un'altra connessione profilo", + "addConnectionSubtitleScoped": "Aggiungi a ${displayName}: Plex, Jellyfin o la connessione di un altro profilo", "sessionExpiredOne": "Sessione scaduta per ${name}", "sessionExpiredMany": "Sessione scaduta per ${count} server", "signInAgain": "Accedi di nuovo", @@ -718,11 +718,11 @@ "discover": { "title": "Esplora", "noContentAvailable": "Nessun contenuto disponibile", - "addMediaToLibraries": "Aggiungi alcuni file multimediali alle tue librerie", + "addMediaToLibraries": "Aggiungi contenuti multimediali alle tue librerie", "continueWatching": "Continua a guardare", "continueWatchingIn": "Continua a guardare in ${library}", - "nextUp": "Prossimi", - "nextUpIn": "Prossimi in ${library}", + "nextUp": "Prossimi episodi", + "nextUpIn": "Prossimi episodi in ${library}", "recentlyAdded": "Aggiunti di recente", "recentlyAddedIn": "Aggiunti di recente in ${library}", "latestAlbumsIn": "Ultimi album in ${library}", @@ -731,23 +731,23 @@ "playEpisode": "S${season}E${episode}", "overview": "Panoramica", "cast": "Attori", - "extras": "Trailer ed Extra", + "extras": "Trailer ed extra", "studio": "Studio", - "rating": "Classificazione", + "rating": "Valutazione", "movie": "Film", "tvShow": "Serie TV", "minutesLeft": "${minutes} minuti rimanenti", "moreLikeThis": "Altri contenuti simili" }, "errors": { - "searchFailed": "Ricerca fallita: ${error}", - "connectionTimeout": "Timeout connessione durante caricamento di ${context}", + "searchFailed": "Ricerca non riuscita: ${error}", + "connectionTimeout": "Tempo scaduto per la connessione durante il caricamento di ${context}", "connectionFailed": "Impossibile connettersi al server multimediale", "unableToLoad": "Impossibile caricare ${context}. Riprova.", "noClientAvailable": "Nessun client disponibile", - "pleaseEnterToken": "Inserisci token", + "pleaseEnterToken": "Inserisci un token", "invalidToken": "Token non valido", - "failedToVerifyToken": "Verifica token fallita: ${error}", + "failedToVerifyToken": "Impossibile verificare il token: ${error}", "failedToSwitchProfile": "Impossibile passare a ${displayName}", "failedToDeleteProfile": "Impossibile eliminare ${displayName}", "failedToRate": "Impossibile aggiornare la valutazione" @@ -755,18 +755,18 @@ "libraries": { "title": "Librerie", "fallbackTitle": "Libreria", - "scanLibraryFiles": "Scansiona file libreria", + "scanLibraryFiles": "Scansiona i file della libreria", "scanLibrary": "Scansiona libreria", "analyze": "Analizza", "analyzeLibrary": "Analizza libreria", "refreshMetadata": "Aggiorna metadati", "emptyTrash": "Svuota cestino", - "emptyingTrash": "Svuotamento cestino per \"${title}\"...", - "trashEmptied": "Cestino svuotato per \"${title}\"", - "failedToEmptyTrash": "Impossibile svuotare cestino: ${error}", - "analyzing": "Analisi \"${title}\"...", - "analysisStarted": "Analisi iniziata per \"${title}\"", - "failedToAnalyze": "Impossibile analizzare libreria: ${error}", + "emptyingTrash": "Svuotamento del cestino di \"${title}\"...", + "trashEmptied": "Cestino di \"${title}\" svuotato", + "failedToEmptyTrash": "Impossibile svuotare il cestino: ${error}", + "analyzing": "Analisi di \"${title}\"...", + "analysisStarted": "Analisi avviata per \"${title}\"", + "failedToAnalyze": "Impossibile analizzare la libreria: ${error}", "noLibrariesFound": "Nessuna libreria trovata", "allLibrariesHidden": "Tutte le librerie sono nascoste", "hiddenLibrariesCount": "Librerie nascoste (${count})", @@ -774,11 +774,11 @@ "noItemsMatchFilters": "Nessun elemento corrisponde ai filtri attivi", "resetFilters": "Reimposta filtri", "all": "Tutto", - "clearAll": "Cancella tutto", - "scanLibraryConfirm": "Sei sicuro di voler scansionare \"${title}\"?", - "analyzeLibraryConfirm": "Sei sicuro di voler analizzare \"${title}\"?", - "refreshMetadataConfirm": "Sei sicuro di voler aggiornare i metadati per \"${title}\"?", - "emptyTrashConfirm": "Sei sicuro di voler svuotare il cestino per \"${title}\"?", + "clearAll": "Azzera tutto", + "scanLibraryConfirm": "Vuoi scansionare \"${title}\"?", + "analyzeLibraryConfirm": "Vuoi analizzare \"${title}\"?", + "refreshMetadataConfirm": "Vuoi aggiornare i metadati di \"${title}\"?", + "emptyTrashConfirm": "Vuoi svuotare il cestino di \"${title}\"?", "manageLibraries": "Gestisci librerie", "sort": "Ordina", "sortBy": "Ordina per", @@ -801,7 +801,7 @@ "playlists": "Playlist" }, "groupings": { - "title": "Raggruppamento", + "title": "Raggruppa per", "all": "Tutti", "movies": "Film", "shows": "Serie TV", @@ -815,10 +815,10 @@ "filterCategories": { "genre": "Genere", "year": "Anno", - "contentRating": "Classificazione", + "contentRating": "Classificazione per età", "tag": "Tag", "unwatched": "Non visti", - "unplayed": "Non riprodotto", + "unplayed": "Non riprodotti", "favorites": "Preferiti" }, "sortLabels": { @@ -826,7 +826,7 @@ "dateAdded": "Data di aggiunta", "releaseDate": "Data di uscita", "rating": "Valutazione", - "communityRating": "Valutazione della community", + "communityRating": "Valutazione della comunità", "criticRating": "Valutazione critica", "userRating": "Valutazione utente", "datePlayed": "Data di riproduzione", @@ -840,15 +840,15 @@ "studio": "Studio", "random": "Casuale", "dateShared": "Data di condivisione", - "latestEpisodeAirDate": "Data ultima messa in onda", - "lastEpisodeDateAdded": "Data aggiunta ultimo episodio" + "latestEpisodeAirDate": "Data di trasmissione dell'ultimo episodio", + "lastEpisodeDateAdded": "Data di aggiunta dell'ultimo episodio" } }, "about": { "title": "Informazioni", - "openSourceLicenses": "Licenze Open Source", + "openSourceLicenses": "Licenze open source", "versionLabel": "Versione ${version}", - "appDescription": "Un bellissimo client Plex e Jellyfin per Flutter", + "appDescription": "Un elegante client Plex e Jellyfin per Flutter", "viewLicensesDescription": "Visualizza le licenze delle librerie di terze parti" }, "serverSelection": { @@ -857,8 +857,8 @@ }, "hubDetail": { "title": "Titolo", - "releaseYear": "Anno rilascio", - "dateAdded": "Data aggiunta", + "releaseYear": "Anno di uscita", + "dateAdded": "Data di aggiunta", "rating": "Valutazione", "noItemsFound": "Nessun elemento trovato" }, @@ -876,14 +876,14 @@ "navigation": { "libraries": "Librerie", "downloads": "Download", - "liveTv": "TV Live", - "explore": "Scopri" + "liveTv": "TV in diretta", + "explore": "Esplora" }, "explore": { - "title": "Scopri", + "title": "Esplora", "selectSource": "Seleziona fonte", "rows": { - "watchlist": "Watchlist", + "watchlist": "Lista da guardare", "recommendedMovies": "Film consigliati", "recommendedShows": "Serie TV consigliate", "trendingMovies": "Film di tendenza", @@ -910,14 +910,14 @@ }, "cast": "Attori", "characters": "Personaggi", - "addToWatchlist": "Aggiungi alla Watchlist", - "removeFromWatchlist": "Rimuovi dalla Watchlist", - "watchlistUpdateFailed": "Impossibile aggiornare la Watchlist", + "addToWatchlist": "Aggiungi alla lista da guardare", + "removeFromWatchlist": "Rimuovi dalla lista da guardare", + "watchlistUpdateFailed": "Impossibile aggiornare la lista da guardare", "notInLibrary": "Non è nella tua libreria", "inTheseLibraries": "In queste librerie", - "checkingLibrary": "Controllo della tua libreria...", + "checkingLibrary": "Ricerca nella tua libreria...", "emptyTitle": "Ancora niente qui", - "emptyMessage": "Le righe da ${source} appariranno qui una volta che avranno dei contenuti.", + "emptyMessage": "Le sezioni di ${source} appariranno qui quando saranno disponibili dei contenuti.", "searchHint": "Cerca su ${source}", "searchEmpty": "Nessun risultato per \"${query}\"", "searchPrompt": "Cerca film e serie TV su ${source}.", @@ -927,37 +927,37 @@ "title": "TV in diretta", "guide": "Guida", "noChannels": "Nessun canale disponibile", - "noDvr": "Nessun DVR configurato su nessun server", + "noDvr": "Nessun DVR configurato su alcun server", "serverUnavailable": "Il server TV in diretta non è disponibile.", "serverNotConnected": "Il server TV in diretta non è connesso.", "noPrograms": "Nessun dato di programma disponibile", - "liveStreamFailed": "Streaming live non riuscito", + "liveStreamFailed": "Streaming in diretta non riuscito", "unknownProgram": "Programma sconosciuto", "unknownHub": "Sconosciuto", "unknownError": "Errore sconosciuto", "channelNumber": "Canale ${number}", "unknownChannel": "Canale sconosciuto", "live": "IN DIRETTA", - "reloadGuide": "Ricarica guida", + "reloadGuide": "Ricarica la guida", "now": "Ora", "today": "Oggi", "tomorrow": "Domani", "midnight": "Mezzanotte", - "overnight": "Notte", + "overnight": "Durante la notte", "morning": "Mattina", - "daytime": "Giorno", + "daytime": "Giornata", "evening": "Sera", - "lateNight": "Notte tarda", + "lateNight": "Tarda notte", "whatsOn": "In onda ora", - "watchChannel": "Guarda canale", + "watchChannel": "Guarda il canale", "favorites": "Preferiti", - "reorderFavorites": "Riordina preferiti", + "reorderFavorites": "Riordina i preferiti", "favoritesLoadFailed": "Impossibile caricare i preferiti. Controlla la connessione e riprova.", - "favoritesUpdateFailed": "Could not update favorites. Check your connection and try again.", + "favoritesUpdateFailed": "Impossibile aggiornare i preferiti. Controlla la connessione e riprova.", "joinSession": "Partecipa alla sessione in corso", "watchFromStart": "Guarda dall'inizio (${minutes} min fa)", "watchLive": "Guarda in diretta", - "goToLive": "Vai al live", + "goToLive": "Vai alla diretta", "record": "Registra", "recordEpisode": "Registra episodio", "recordSeries": "Registra serie", @@ -966,7 +966,7 @@ "recordings": "Registrazioni", "scheduledRecordings": "Programmate", "recordingRules": "Regole di registrazione", - "noScheduledRecordings": "Nessuna registrazione programmata", + "noScheduledRecordings": "Nessuna registrazione in programma", "manageRecording": "Gestisci registrazione", "cancelRecording": "Annulla registrazione", "cancelRecordingTitle": "Annullare questa registrazione?", @@ -975,21 +975,21 @@ "deleteRuleTitle": "Eliminare la regola di registrazione?", "deleteRuleMessage": "I prossimi episodi di ${title} non saranno registrati.", "recordingScheduled": "Registrazione programmata", - "alreadyScheduled": "Questo programma è già programmato", + "alreadyScheduled": "La registrazione di questo programma è già pianificata", "dvrAdminRequired": "Le impostazioni DVR richiedono un account amministratore", "recordingFailed": "Impossibile programmare la registrazione", "recordingTargetMissing": "Impossibile determinare la libreria di registrazione", "recordNotAvailable": "Registrazione non disponibile per questo programma", "recordingCancelled": "Registrazione annullata", "recordingRuleDeleted": "Regola di registrazione eliminata", - "processRecordingRules": "Rivaluta regole", + "processRecordingRules": "Rielabora le regole", "recordingInProgress": "Registrazione in corso", "recordingsCount": "${count} programmate", "editRule": "Modifica regola", "editRuleAction": "Modifica", "recordingRuleUpdated": "Regola di registrazione aggiornata", - "guideReloadRequested": "Aggiornamento guida richiesto", - "rulesProcessRequested": "Rivalutazione regole richiesta", + "guideReloadRequested": "Aggiornamento della guida richiesto", + "rulesProcessRequested": "Rielaborazione delle regole richiesta", "recordShow": "Registra programma" }, "collections": { @@ -1004,14 +1004,14 @@ "selectCollection": "Seleziona raccolta", "collectionName": "Nome raccolta", "enterCollectionName": "Inserisci nome raccolta", - "addedToCollection": "Aggiunto alla raccolta", - "errorAddingToCollection": "Errore nell'aggiunta alla raccolta", + "addedToCollection": "Elemento aggiunto alla raccolta", + "errorAddingToCollection": "Impossibile aggiungere l'elemento alla raccolta", "created": "Raccolta creata", "removeFromCollection": "Rimuovi dalla raccolta", "removeFromCollectionConfirm": "Rimuovere \"${title}\" da questa raccolta?", - "removedFromCollection": "Rimosso dalla raccolta", + "removedFromCollection": "Elemento rimosso dalla raccolta", "removeFromCollectionFailed": "Impossibile rimuovere dalla raccolta", - "removeFromCollectionError": "Errore durante la rimozione dalla raccolta: ${error}", + "removeFromCollectionError": "Errore durante la rimozione dell'elemento dalla raccolta: ${error}", "searchCollections": "Cerca raccolte..." }, "playlists": { @@ -1022,7 +1022,7 @@ "playlistName": "Nome playlist", "enterPlaylistName": "Inserisci nome playlist", "delete": "Elimina playlist", - "removeItem": "Rimuovi da playlist", + "removeItem": "Rimuovi dalla playlist", "smartPlaylist": "Playlist intelligente", "itemCount": "${count} elementi", "oneItem": "1 elemento", @@ -1035,18 +1035,18 @@ "itemRemoved": "Rimosso dalla playlist", "selectPlaylist": "Seleziona playlist", "searchPlaylists": "Cerca playlist...", - "errorCreating": "Errore durante la creazione della playlist", - "errorDeleting": "Errore durante l'eliminazione della playlist", - "errorLoading": "Errore durante il caricamento delle playlist", - "errorAdding": "Errore durante l'aggiunta alla playlist", - "errorReordering": "Errore durante il riordino dell'elemento della playlist", - "errorRemoving": "Errore durante la rimozione dalla playlist" + "errorCreating": "Impossibile creare la playlist", + "errorDeleting": "Impossibile eliminare la playlist", + "errorLoading": "Impossibile caricare le playlist", + "errorAdding": "Impossibile aggiungere l'elemento alla playlist", + "errorReordering": "Impossibile riordinare l'elemento della playlist", + "errorRemoving": "Impossibile rimuovere l'elemento dalla playlist" }, "music": { "goToAlbum": "Vai all'album", "goToArtist": "Vai all'artista", "instantMix": "Mix istantaneo", - "playNext": "Riproduci dopo", + "playNext": "Riproduci come prossimo", "addToQueue": "Aggiungi alla coda", "discNumber": "Disco ${n}", "trackCount": { @@ -1067,54 +1067,54 @@ "nextTrack": "Brano successivo", "repeat": "Ripeti", "repeatAll": "Ripeti tutto", - "repeatOne": "Ripeti uno" + "repeatOne": "Ripeti il brano" }, "watchTogether": { - "title": "Guarda Insieme", + "title": "Guarda insieme", "description": "Guarda contenuti in sincronia con amici e familiari", - "createSession": "Crea Sessione", + "createSession": "Crea sessione", "creating": "Creazione...", - "joinSession": "Unisciti alla Sessione", + "joinSession": "Partecipa a una sessione", "joining": "Connessione...", - "controlMode": "Modalità di Controllo", + "controlMode": "Modalità di controllo", "controlModeQuestion": "Chi può controllare la riproduzione?", - "hostOnly": "Solo Host", + "hostOnly": "Solo l'host", "anyone": "Tutti", - "hostingSession": "Hosting Sessione", - "inSession": "In Sessione", - "sessionCode": "Codice Sessione", - "openSessionControls": "Apri i controlli della sessione di Guarda Insieme", + "hostingSession": "Stai ospitando la sessione", + "inSession": "Sessione in corso", + "sessionCode": "Codice della sessione", + "openSessionControls": "Apri i controlli della sessione di Guarda insieme", "copySessionCode": "Copia il codice della sessione", "hostControlsPlayback": "L'host controlla la riproduzione", "anyoneCanControl": "Tutti possono controllare la riproduzione", - "hostControls": "Controllo host", - "anyoneControls": "Controllo di tutti", + "hostControls": "L'host controlla", + "anyoneControls": "Tutti possono controllare", "participants": "Partecipanti", "host": "Host", "hostBadge": "HOST", "youAreHost": "Sei l'host", - "watchingWithOthers": "Guardando con altri", - "endSession": "Termina Sessione", - "leaveSession": "Lascia Sessione", - "endSessionQuestion": "Terminare la Sessione?", - "leaveSessionQuestion": "Lasciare la Sessione?", + "watchingWithOthers": "In visione con altri partecipanti", + "endSession": "Termina la sessione", + "leaveSession": "Abbandona la sessione", + "endSessionQuestion": "Terminare la sessione?", + "leaveSessionQuestion": "Abbandonare la sessione?", "endSessionConfirm": "Questo terminerà la sessione per tutti i partecipanti.", "leaveSessionConfirm": "Sarai rimosso dalla sessione.", "endSessionConfirmOverlay": "Questo terminerà la sessione di visione per tutti i partecipanti.", "leaveSessionConfirmOverlay": "Sarai disconnesso dalla sessione di visione.", "end": "Termina", - "leave": "Lascia", + "leave": "Abbandona", "syncing": "Sincronizzazione...", - "joinWatchSession": "Unisciti alla Sessione di Visione", + "joinWatchSession": "Partecipa alla sessione di visione", "enterCodeHint": "Inserisci codice di 5 caratteri", "pasteFromClipboard": "Incolla dagli appunti", - "pleaseEnterCode": "Inserisci un codice sessione", - "codeMustBe5Chars": "Il codice sessione deve essere di 5 caratteri", - "joinInstructions": "Inserisci il codice sessione dell'host per partecipare.", + "pleaseEnterCode": "Inserisci un codice della sessione", + "codeMustBe5Chars": "Il codice della sessione deve contenere 5 caratteri", + "joinInstructions": "Inserisci il codice della sessione dell'host per partecipare.", "failedToCreate": "Impossibile creare la sessione", "failedToJoin": "Impossibile unirsi alla sessione", - "sessionCodeCopied": "Codice sessione copiato negli appunti", - "relayUnreachable": "Server relay non raggiungibile. Il blocco ISP può impedire Watch Together.", + "sessionCodeCopied": "Codice della sessione copiato negli appunti", + "relayUnreachable": "Il server relay non è raggiungibile. Eventuali blocchi dell'ISP potrebbero impedire l'uso di Guarda insieme.", "reconnectingToHost": "Riconnessione all'host...", "currentPlayback": "Riproduzione corrente", "joinCurrentPlayback": "Unisciti alla riproduzione corrente", @@ -1124,13 +1124,13 @@ "participantLeft": "${name} se ne è andato", "participantPaused": "${name} ha messo in pausa", "participantResumed": "${name} ha ripreso", - "participantSeeked": "${name} ha cercato", - "participantBuffering": "${name} sta caricando", + "participantSeeked": "${name} ha cambiato la posizione di riproduzione", + "participantBuffering": "${name} è in buffering", "participantNeedsUpdate": "${name} usa una versione precedente dell'app — sincronizzazione non disponibile", "resumingWithout": "Ripresa senza ${name}", "waitingForParticipants": "In attesa che gli altri carichino...", "waitingForName": "In attesa di ${name}...", - "recentRooms": "Stanze recenti", + "recentRooms": "Stanze usate di recente", "renameRoom": "Rinomina stanza", "removeRoom": "Rimuovi", "guestSwitchUnavailable": "Impossibile cambiare — server non disponibile per la sincronizzazione", @@ -1143,11 +1143,11 @@ "movies": "Film", "music": "Musica", "tracksQueued": "${count} brani in coda per il download", - "noDownloads": "Nessun download", + "noDownloads": "Ancora nessun download", "noDownloadsDescription": "I contenuti scaricati appariranno qui per la visualizzazione offline", "downloadNow": "Scarica", - "deleteDownload": "Elimina download", - "retryDownload": "Riprova download", + "deleteDownload": "Elimina il download", + "retryDownload": "Riprova il download", "downloadQueued": "Download in coda", "downloadResumed": "Download ripreso", "serverErrorBitrate": "Errore server: il file può superare il limite di bitrate remoto", @@ -1157,7 +1157,7 @@ "cancelledDownloadTitle": "Download annullato", "cancelledDownloadMessage": "Questo download è stato annullato. Cosa vuoi fare?", "allEpisodesAlreadyDownloaded": "Tutti gli episodi sono già stati scaricati", - "resumeDownload": "Riprendi download", + "resumeDownload": "Riprendi il download", "cancelledDownload": "Download annullato", "syncingFile": "${file} (sincronizzazione ${status})", "downloadedFileClickToComplete": "${file} scaricato — fai clic per completare", @@ -1172,17 +1172,17 @@ "pauseAll": "Metti tutto in pausa", "resumeAll": "Riprendi tutto", "deleteAll": "Elimina tutto", - "selectVersion": "Seleziona versione", + "selectVersion": "Seleziona la versione", "allEpisodes": "Tutti gli episodi", "unwatchedOnly": "Solo non visti", - "nextNUnwatched": "Prossimi ${count} non visti", + "nextNUnwatched": "Prossimi ${count} episodi non visti", "customAmount": "Quantità personalizzata...", "includeSpecials": "Includi gli speciali", "howManyEpisodes": "Quanti episodi?", "invalidEpisodeCount": "Inserisci un numero di episodi valido.", "keepSynced": "Mantieni sincronizzato", "downloadOnce": "Scarica una volta", - "keepNUnwatched": "Mantieni ${count} non visti", + "keepNUnwatched": "Mantieni ${count} episodi non visti", "editSyncRule": "Modifica regola di sincronizzazione", "removeSyncRule": "Rimuovi regola di sincronizzazione", "removeSyncRuleConfirm": "Interrompere la sincronizzazione di \"${title}\"? Gli episodi scaricati verranno mantenuti.", @@ -1218,7 +1218,7 @@ "importShader": "Importa shader", "customShaderDescription": "Shader GLSL personalizzato", "shaderImported": "Shader importato", - "shaderImportFailed": "Importazione shader fallita", + "shaderImportFailed": "Impossibile importare lo shader", "deleteShader": "Elimina shader", "deleteShaderConfirm": "Eliminare \"${name}\"?" }, @@ -1232,7 +1232,7 @@ "connected": "Connesso", "serverRunning": "Server remoto attivo", "serverStopped": "Server remoto arrestato", - "serverRunningDescription": "I dispositivi mobili sulla tua rete possono connettersi a questa app", + "serverRunningDescription": "I dispositivi mobili della tua rete possono connettersi a questa app", "serverStoppedDescription": "Avvia il server per consentire ai dispositivi mobili di connettersi", "usePhoneToControl": "Usa il tuo dispositivo mobile per controllare questa app", "startServer": "Avvia server", @@ -1245,16 +1245,16 @@ "connecting": "Connessione...", "searchingForDevices": "Ricerca dispositivi...", "noDevicesFound": "Nessun dispositivo trovato nella tua rete", - "noDevicesHint": "Apri Plezy su desktop e usa lo stesso WiFi", + "noDevicesHint": "Apri Plezy sul computer e usa la stessa rete Wi-Fi", "availableDevices": "Dispositivi disponibili", "manualConnection": "Connessione manuale", "cryptoInitFailed": "Impossibile avviare la connessione sicura. Accedi prima a Plex.", "validationHostRequired": "Inserisci l'indirizzo host", "validationHostFormat": "Il formato deve essere IP:porta (es. 192.168.1.100:48632)", - "connectionTimedOut": "Connessione scaduta. Usa la stessa rete su entrambi i dispositivi.", + "connectionTimedOut": "Tempo scaduto per la connessione. Usa la stessa rete su entrambi i dispositivi.", "sessionNotFound": "Dispositivo non trovato. Assicurati che Plezy sia in esecuzione sull'host.", "authFailed": "Autenticazione non riuscita. Entrambi i dispositivi devono usare lo stesso account Plex.", - "failedToConnect": "Connessione fallita: ${error}" + "failedToConnect": "Connessione non riuscita: ${error}" }, "remote": { "disconnectConfirm": "Vuoi disconnetterti dalla sessione remota?", @@ -1265,7 +1265,7 @@ "tabPlay": "Riproduci", "tabMore": "Altro", "menu": "Menu", - "tabNavigation": "Navigazione schede", + "tabNavigation": "Navigazione", "tabDiscover": "Esplora", "tabLibraries": "Librerie", "tabSearch": "Cerca", @@ -1274,8 +1274,8 @@ "previous": "Precedente", "playPause": "Riproduci/Pausa", "next": "Successivo", - "seekBack": "Riavvolgi", - "stop": "Ferma", + "seekBack": "Indietro", + "stop": "Interrompi", "seekForward": "Avanti", "volume": "Volume", "volumeDown": "Abbassa", @@ -1283,14 +1283,14 @@ "fullscreen": "Schermo intero", "subtitles": "Sottotitoli", "audio": "Audio", - "searchHint": "Cerca sul desktop..." + "searchHint": "Cerca sul computer..." }, "errors": { "noNetworkInterface": "Nessuna interfaccia di rete trovata", "authenticationFailed": "Autenticazione non riuscita", "serverStartFailed": "Impossibile avviare il server remoto: ${error}", "commandFailed": "Impossibile inviare il comando remoto: ${error}", - "joinTimedOut": "Tempo scaduto durante l’accesso alla sessione", + "joinTimedOut": "Tempo scaduto durante la partecipazione alla sessione", "failedToConnectAnyAddress": "Impossibile connettersi a qualsiasi indirizzo", "connectionLostAfterAttempts": "Connessione persa dopo ${attempts} tentativi", "connectionLost": "Connessione persa" @@ -1307,8 +1307,8 @@ "hdr": "HDR", "audioOutput": "Uscita audio", "performanceOverlay": "Overlay prestazioni", - "audioPassthrough": "Audio Passthrough", - "audioNormalization": "Normalizza volume", + "audioPassthrough": "Passthrough audio", + "audioNormalization": "Normalizza il volume", "audioDownmix": "Downmix in stereo" }, "performanceOverlay": { @@ -1319,7 +1319,7 @@ "decoder": "Decoder", "rawDecoder": "Decoder raw", "tunneling": "Tunneling", - "aspect": "Aspetto", + "aspect": "Proporzioni", "rotation": "Rotazione", "dvSource": "Sorgente DV", "dvPath": "Percorso DV", @@ -1328,9 +1328,9 @@ "pixelFormat": "Formato pixel", "hwFormat": "Formato HW", "matrix": "Matrice", - "primaries": "Primari", - "transfer": "Transfer", - "renderFps": "FPS render", + "primaries": "Colori primari", + "transfer": "Trasferimento", + "renderFps": "FPS rendering", "displayFps": "FPS display", "avSync": "Sync A/V", "dropped": "Scartati", @@ -1344,41 +1344,41 @@ "cacheUsed": "Cache usata", "cacheLimit": "Limite cache", "speed": "Velocità", - "player": "Player", + "player": "Lettore", "memory": "Memoria", "uiFps": "FPS UI" }, "externalPlayer": { "title": "Lettore esterno", - "useExternalPlayer": "Usa lettore esterno", - "useExternalPlayerDescription": "Apri video in un'altra app", - "selectPlayer": "Seleziona lettore", + "useExternalPlayer": "Usa un lettore esterno", + "useExternalPlayerDescription": "Apri i video in un'altra app", + "selectPlayer": "Seleziona il lettore", "customPlayers": "Lettori personalizzati", "systemDefault": "Predefinito di sistema", "addCustomPlayer": "Aggiungi lettore personalizzato", - "playerName": "Nome lettore", - "playerNameHint": "Il mio player", + "playerName": "Nome del lettore", + "playerNameHint": "Il mio lettore", "playerCommand": "Comando", "playerPackage": "Nome pacchetto", "playerUrlScheme": "Schema URL", "off": "Disattivato", "launchFailed": "Impossibile aprire il lettore esterno", "appNotInstalled": "${name} non è installato", - "playInExternalPlayer": "Riproduci in lettore esterno" + "playInExternalPlayer": "Riproduci nel lettore esterno" }, "metadataEdit": { "editMetadata": "Modifica...", "screenTitle": "Modifica metadati", "basicInfo": "Informazioni di base", - "artwork": "Artwork", + "artwork": "Immagini", "advancedSettings": "Impostazioni avanzate", "title": "Titolo", "sortTitle": "Titolo di ordinamento", "originalTitle": "Titolo originale", "releaseDate": "Data di uscita", - "contentRating": "Classificazione", + "contentRating": "Classificazione per età", "studio": "Studio", - "tagline": "Tagline", + "tagline": "Slogan", "summary": "Trama", "poster": "Poster", "background": "Sfondo", @@ -1392,17 +1392,17 @@ "uploadFile": "Carica file", "enterImageUrl": "Inserisci URL immagine", "imageUrl": "URL immagine", - "metadataUpdated": "Metadati aggiornati", - "metadataUpdateFailed": "Aggiornamento metadati non riuscito", - "artworkUpdated": "Artwork aggiornato", - "artworkUpdateFailed": "Aggiornamento artwork non riuscito", - "noArtworkAvailable": "Nessun artwork disponibile", - "artworkOption": "Opzione artwork ${index}", - "selectedArtworkOption": "Opzione artwork ${index}, selezionata", + "metadataUpdated": "Metadati aggiornati correttamente", + "metadataUpdateFailed": "Impossibile aggiornare i metadati", + "artworkUpdated": "Immagini aggiornate", + "artworkUpdateFailed": "Impossibile aggiornare le immagini", + "noArtworkAvailable": "Nessuna immagine disponibile", + "artworkOption": "Opzione immagine ${index}", + "selectedArtworkOption": "Opzione immagine ${index}, selezionata", "notSet": "Non impostato", - "libraryDefault": "Predefinito libreria", - "accountDefault": "Predefinito account", - "seriesDefault": "Predefinito serie", + "libraryDefault": "Predefinito della libreria", + "accountDefault": "Predefinito dell'account", + "seriesDefault": "Predefinito della serie", "episodeSorting": "Ordinamento episodi", "oldestFirst": "Più vecchi prima", "newestFirst": "Più recenti prima", @@ -1421,14 +1421,14 @@ "show": "Mostra", "hide": "Nascondi", "episodeOrdering": "Ordine episodi", - "tmdbAiring": "The Movie Database (In onda)", - "tvdbAiring": "TheTVDB (In onda)", - "tvdbAbsolute": "TheTVDB (Assoluto)", - "metadataLanguage": "Lingua metadati", - "useOriginalTitle": "Usa titolo originale", + "tmdbAiring": "The Movie Database (ordine di trasmissione)", + "tvdbAiring": "TheTVDB (ordine di trasmissione)", + "tvdbAbsolute": "TheTVDB (ordine assoluto)", + "metadataLanguage": "Lingua dei metadati", + "useOriginalTitle": "Usa il titolo originale", "preferredAudioLanguage": "Lingua audio preferita", - "preferredSubtitleLanguage": "Lingua sottotitoli preferita", - "subtitleMode": "Selezione automatica sottotitoli", + "preferredSubtitleLanguage": "Lingua dei sottotitoli preferita", + "subtitleMode": "Modalità di selezione automatica dei sottotitoli", "manuallySelected": "Selezionato manualmente", "shownWithForeignAudio": "Mostrati con audio straniero", "alwaysEnabled": "Sempre attivo", @@ -1439,7 +1439,7 @@ "writer": "Sceneggiatore", "producer": "Produttore", "country": "Paese", - "collection": "Collezione", + "collection": "Raccolta", "label": "Etichetta", "style": "Stile", "mood": "Atmosfera" @@ -1448,7 +1448,7 @@ "match": "Abbina...", "fixMatch": "Correggi abbinamento...", "unmatch": "Rimuovi abbinamento", - "unmatchConfirm": "Cancellare questa corrispondenza? Plex la tratterà come non abbinata finché non verrà riabbinata.", + "unmatchConfirm": "Rimuovere questo abbinamento? Plex considererà l'elemento non abbinato finché non verrà eseguito un nuovo abbinamento.", "unmatchSuccess": "Abbinamento rimosso", "unmatchFailed": "Rimozione dell'abbinamento non riuscita", "matchApplied": "Abbinamento applicato", @@ -1471,8 +1471,8 @@ "disconnectConfirmBody": "Plezy smetterà di inviare eventi a Trakt. Puoi riconnetterti quando vuoi.", "scrobble": "Scrobbling in tempo reale", "scrobbleDescription": "Invia eventi di riproduzione, pausa e arresto a Trakt durante la riproduzione.", - "watchedSync": "Sincronizza stato visualizzato", - "watchedSyncDescription": "Quando segni elementi come visti in Plezy, vengono segnati anche su Trakt." + "watchedSync": "Sincronizza lo stato di visione", + "watchedSyncDescription": "Quando contrassegni un elemento come visto in Plezy, viene contrassegnato come visto anche su Trakt." }, "seerr": { "title": "Seerr", @@ -1487,22 +1487,22 @@ "noSignInMethods": "Questa istanza Seerr non offre alcun metodo di accesso supportato da Plezy.", "instance": "Istanza", "disconnectConfirm": "Disconnettere Seerr?", - "disconnectConfirmBody": "Plezy dimenticherà questa istanza Seerr. Riconnetti quando vuoi.", + "disconnectConfirmBody": "Plezy rimuoverà questa istanza Seerr. Potrai riconnetterla in qualsiasi momento.", "request": "Richiedi", "request4k": "Richiedi in 4K", "seasons": "Stagioni", "allSeasons": "Tutte le stagioni", "advancedOptions": "Avanzate", "destinationServer": "Server di destinazione", - "qualityProfile": "Profilo qualità", + "qualityProfile": "Profilo di qualità", "rootFolder": "Cartella radice", - "languageProfile": "Profilo lingua", + "languageProfile": "Profilo della lingua", "requestSubmitted": "Richiesta inviata", "requestFailed": "Richiesta non riuscita: ${error}", "requestsLoadFailed": "Impossibile caricare le opzioni di richiesta", "nothingToRequest": "Tutto è già disponibile o richiesto.", "statusAvailable": "Disponibile", - "statusPartiallyAvailable": "Parzialmente disponibile", + "statusPartiallyAvailable": "Disponibile in parte", "statusRequested": "Richiesto", "statusProcessing": "In elaborazione" }, @@ -1511,8 +1511,8 @@ "hubSubtitle": "Sincronizza i progressi di visione e richiedi nuovi titoli.", "notConnected": "Non connesso", "connectedAs": "Connesso come @${username}", - "scrobble": "Traccia i progressi automaticamente", - "scrobbleDescription": "Aggiorna la tua lista quando finisci un episodio o un film.", + "scrobble": "Registra automaticamente i progressi", + "scrobbleDescription": "Aggiorna la tua lista quando termini un episodio o un film.", "disconnectConfirm": "Disconnettere ${service}?", "disconnectConfirmBody": "Plezy smetterà di aggiornare ${service}. Riconnetti quando vuoi.", "connectFailed": "Impossibile connettersi a ${service}. Riprova.", @@ -1538,16 +1538,16 @@ "urlCopied": "URL copiato" }, "libraryFilter": { - "title": "Filtro librerie", + "title": "Filtro delle librerie", "subtitleAllSyncing": "Sincronizzazione di tutte le librerie", - "subtitleNoneSyncing": "Nulla da sincronizzare", + "subtitleNoneSyncing": "Nessuna sincronizzazione", "subtitleBlocked": "${count} bloccate", "subtitleAllowed": "${count} consentite", "mode": "Modalità filtro", "modeBlacklist": "Lista nera", "modeWhitelist": "Lista bianca", - "modeHintBlacklist": "Sincronizza tutte le librerie tranne quelle selezionate sotto.", - "modeHintWhitelist": "Sincronizza solo le librerie selezionate sotto.", + "modeHintBlacklist": "Sincronizza tutte le librerie tranne quelle selezionate qui sotto.", + "modeHintWhitelist": "Sincronizza solo le librerie selezionate qui sotto.", "libraries": "Librerie", "noLibraries": "Nessuna libreria disponibile" } @@ -1556,8 +1556,8 @@ "addJellyfinTitle": "Aggiungi server Jellyfin", "serverUrls": "URL del server", "serverUrlsHelper": "Sono consentiti più URL, separati da virgole.", - "findServer": "Trova server", - "searchingLocalServers": "Ricerca server Jellyfin locali...", + "findServer": "Trova il server", + "searchingLocalServers": "Ricerca dei server Jellyfin locali...", "localServers": "Server Jellyfin locali", "username": "Nome utente", "password": "Password", @@ -1576,9 +1576,9 @@ "signInWithPlexCard": "Accedi con Plex", "signInWithPlexCardSubtitle": "Autorizza questo dispositivo. I server condivisi vengono aggiunti.", "signInWithPlexCardSubtitleScoped": "Autorizza un account Plex. Gli utenti Home diventano profili.", - "connectToJellyfinCard": "Connetti a Jellyfin", - "connectToJellyfinCardSubtitle": "Inserisci URL del server, nome utente e password.", - "connectToJellyfinCardSubtitleScoped": "Accedi a un server Jellyfin. Collegato a ${name}.", + "connectToJellyfinCard": "Connettiti a Jellyfin", + "connectToJellyfinCardSubtitle": "Inserisci l'URL del server, il nome utente e la password.", + "connectToJellyfinCardSubtitleScoped": "Accedi a un server Jellyfin. Verrà associato a ${name}.", "borrowFromAnotherProfile": "Prendi in prestito da un altro profilo", "borrowFromAnotherProfileSubtitle": "Riutilizza la connessione di un altro profilo. I profili protetti da PIN richiedono un PIN." } diff --git a/lib/i18n/ja.i18n.json b/lib/i18n/ja.i18n.json index 49f40905..798fb8e7 100644 --- a/lib/i18n/ja.i18n.json +++ b/lib/i18n/ja.i18n.json @@ -8,7 +8,7 @@ "authenticate": "認証", "authenticationTimeout": "認証がタイムアウトしました。もう一度お試しください。", "scanQRToSignIn": "このQRコードをスキャンしてサインイン", - "waitingForAuth": "認証待ち...\nブラウザでサインインしてください。", + "waitingForAuth": "認証を待っています…\nブラウザでサインインしてください。", "useBrowser": "ブラウザを使用", "or": "または", "connectToJellyfin": "Jellyfinに接続", @@ -17,7 +17,7 @@ "quickConnectWaiting": "承認を待っています…", "quickConnectCancel": "キャンセル", "quickConnectExpired": "Quick Connectの有効期限が切れました。もう一度お試しください。", - "localDataRecoveryRequired": "Plezy could not safely recover local sign-in and pending playback data. Please sign in again." + "localDataRecoveryRequired": "ローカルのサインイン情報と保留中の再生データを安全に復元できませんでした。もう一度サインインしてください。" }, "common": { "cancel": "キャンセル", @@ -37,7 +37,7 @@ "delete": "削除", "edit": "編集", "shuffle": "シャッフル", - "addTo": "追加...", + "addTo": "追加先…", "createNew": "新規作成", "connect": "接続", "disconnect": "切断", @@ -57,11 +57,11 @@ "chapterNumber": "チャプター${number}", "reconnect": "再接続", "viewAll": "すべて表示", - "checkingNetwork": "ネットワークを確認中...", - "loadingServers": "サーバーを読み込み中...", - "connectingToServers": "サーバーに接続中...", - "startingOfflineMode": "オフラインモードを開始中...", - "loading": "読み込み中...", + "checkingNetwork": "ネットワークを確認中…", + "loadingServers": "サーバーを読み込み中…", + "connectingToServers": "サーバーに接続中…", + "startingOfflineMode": "オフラインモードを開始中…", + "loading": "読み込み中…", "fullscreen": "フルスクリーン", "exitFullscreen": "フルスクリーンを終了", "pressBackAgainToExit": "もう一度押すと終了します" @@ -84,8 +84,8 @@ }, "settings": { "title": "設定", - "supportDeveloper": "Plezy を支援", - "supportDeveloperDescription": "Liberapay で寄付して開発を支援", + "supportDeveloper": "Plezyを支援", + "supportDeveloperDescription": "Liberapayで寄付して開発を支援", "language": "言語", "theme": "テーマ", "appearance": "外観", @@ -109,12 +109,12 @@ "libraryDensity": "ライブラリの密度", "compact": "コンパクト", "comfortable": "ゆったり", - "tvCornerSpotlightBackdrop": "", - "tvCornerSpotlightBackdropDescription": "", + "tvCornerSpotlightBackdrop": "画面隅の注目コンテンツ背景", + "tvCornerSpotlightBackdropDescription": "画面全体ではなく、右上隅に注目コンテンツのアートワークを表示します", "viewMode": "表示モード", "gridView": "グリッド", "listView": "リスト", - "showHeroSection": "ヒーローセクションを表示", + "showHeroSection": "注目コンテンツを表示", "continueWatchingAction": "視聴中の操作", "continueWatchingPlay": "再生", "continueWatchingDetails": "詳細を開く", @@ -128,7 +128,7 @@ "groupLibrariesByServer": "サーバーごとにライブラリをグループ化", "groupLibrariesByServerDescription": "サイドバーのライブラリをメディアサーバーごとにまとめます。", "alwaysKeepSidebarOpen": "サイドバーを常に開いておく", - "alwaysKeepSidebarOpenDescription": "サイドバーを展開したまま、コンテンツ領域が調整される", + "alwaysKeepSidebarOpenDescription": "サイドバーを展開したままにし、コンテンツ領域を幅に合わせて調整します", "showUnwatchedCount": "未視聴数を表示", "showUnwatchedCountDescription": "番組とシーズンに未視聴エピソード数を表示", "showEpisodeNumberOnCards": "カードにエピソード番号を表示", @@ -136,7 +136,7 @@ "showSeasonPostersOnTabs": "タブにシーズンポスターを表示", "showSeasonPostersOnTabsDescription": "各シーズンのポスターをタブの上に表示します", "tvFullCardLayout": "フルTVカード", - "tvFullCardLayoutDescription": "TVカードを画像のみで表示し、俳優名を重ねて表示します", + "tvFullCardLayoutDescription": "TVカードを画像のみで表示し、出演者名を重ねて表示します", "focusGlow": "フォーカス時の光彩", "focusGlowDescription": "フォーカス中のカードの周りに柔らかい光彩を表示します", "visualEffects": "視覚効果", @@ -180,7 +180,7 @@ "watchTogetherRelay": "一緒に視聴リレーサーバー", "watchTogetherRelayDescription": "カスタムリレーを設定します。全員が同じサーバーを使う必要があります。", "watchTogetherRelayHint": "https://my-relay.example.com", - "watchTogetherRelayInvalid": "Enter a valid HTTP or HTTPS relay base URL.", + "watchTogetherRelayInvalid": "有効なHTTPまたはHTTPSのリレーサーバーURLを入力してください。", "crashReporting": "クラッシュレポート", "crashReportingDescription": "アプリの改善に役立つクラッシュレポートを送信", "debugLogging": "デバッグログ", @@ -215,7 +215,7 @@ "validationErrorDuration": "時間は${min}から${max} ${unit}の間である必要があります", "shortcutAlreadyAssigned": "ショートカットは既に${action}に割り当てられています", "shortcutUpdated": "${action}のショートカットを更新しました", - "saveFailed": "Could not save changes. Try again.", + "saveFailed": "変更を保存できませんでした。もう一度お試しください。", "autoSkip": "自動スキップ", "autoSkipIntro": "イントロを自動スキップ", "autoSkipIntroDescription": "数秒後にイントロマーカーを自動的にスキップ", @@ -242,23 +242,23 @@ "downloadLocationReset": "ダウンロード場所をデフォルトにリセットしました", "downloadLocationInvalid": "選択したフォルダは書き込みできません", "downloadLocationPickerUnavailable": "このデバイスではフォルダを選択できません", - "downloadOnWifiOnly": "WiFiのみでダウンロード", - "downloadOnWifiOnlyDescription": "モバイルデータ通信時のダウンロードを防止", + "downloadOnWifiOnly": "Wi-Fi接続時のみダウンロード", + "downloadOnWifiOnlyDescription": "モバイルデータ通信中のダウンロードを防ぎます", "autoRemoveWatchedDownloads": "視聴済みダウンロードの自動削除", "autoRemoveWatchedDownloadsDescription": "視聴済みのダウンロードを自動削除します", - "cellularDownloadBlocked": "モバイル通信ではダウンロードがブロックされています。WiFiを使うか設定を変更してください。", + "cellularDownloadBlocked": "モバイルデータ通信中はダウンロードできません。Wi-Fiを使用するか、設定を変更してください。", "maxVolume": "最大音量", "maxVolumeDescription": "静かなメディアに対して100%以上の音量ブーストを許可", "maxVolumePercent": "${percent}%", "discordRichPresence": "Discord Rich Presence", "discordRichPresenceDescription": "Discordで視聴中の内容を表示", "services": "サービス", - "servicesDescription": "Trakt、MyAnimeList、Seerr などを接続", + "servicesDescription": "Trakt、MyAnimeList、Seerrなどを接続", "manageLibrariesDescription": "ライブラリを並べ替えたり非表示にしたりできます", "companionRemoteServer": "コンパニオンリモートサーバー", "companionRemoteServerDescription": "ネットワーク上のモバイルデバイスからこのアプリを操作できるようにする", "autoPip": "自動ピクチャーインピクチャー", - "autoPipDescription": "再生中に離れるとピクチャーインピクチャーに入ります", + "autoPipDescription": "再生中にアプリを離れると、自動的にピクチャーインピクチャーに切り替えます", "matchContentFrameRate": "コンテンツのフレームレートに合わせる", "matchContentFrameRateDescription": "表示のリフレッシュレートを動画コンテンツに合わせます", "matchRefreshRate": "リフレッシュレートを合わせる", @@ -270,7 +270,7 @@ "tunneledPlaybackDescription": "動画トンネリングを使用します。HDR再生で画面が黒くなる場合は無効にしてください。", "audioPassthrough": "オーディオパススルー", "audioPassthroughDescription": "Dolby/DTS音声を再エンコードせずにレシーバーやテレビに送り、サラウンドを維持します。音が出ない場合は無効にしてください。", - "audioPassthroughDescriptionAppleTv": "Dolby Digital Plus(Atmos含む)をビットストリームとしてシステムに渡します。DTSとTrueHDは引き続きマルチチャンネルPCMで再生されます。シーク時に短い音切れが発生することがあります。", + "audioPassthroughDescriptionAppleTv": "Dolby Atmosを含むDolby Digital PlusにはApple標準のDolbyデコーダーを使用します。DTSとTrueHDは引き続きマルチチャンネルPCMで再生されます。音が出ない場合は無効にしてください。", "audioDownmix": "ステレオにダウンミックス", "audioDownmixDescription": "サラウンド音声をステレオスピーカーやヘッドホン用に2チャンネルへミックスします", "downmixCenterBoost": "センターチャンネルブースト", @@ -314,11 +314,11 @@ "exitFullscreenOnPlayerCloseDescription": "ビデオプレイヤーを閉じたときに自動的に全画面モードを終了します", "autoHidePerformanceOverlay": "パフォーマンスオーバーレイを自動非表示", "autoHidePerformanceOverlayDescription": "再生コントロールと一緒にパフォーマンスオーバーレイをフェードする", - "showNavBarLabels": "ナビゲーションバーラベルを表示", - "showNavBarLabelsDescription": "ナビゲーションバーアイコンの下にテキストラベルを表示", + "showNavBarLabels": "ナビゲーションバーのラベルを表示", + "showNavBarLabelsDescription": "ナビゲーションバーのアイコンの下にテキストラベルを表示", "startupSection": "起動時のセクション", "liveTvDefaultFavorites": "お気に入りチャンネルをデフォルトに", - "liveTvDefaultFavoritesDescription": "ライブTV を開いたときにお気に入りチャンネルのみ表示", + "liveTvDefaultFavoritesDescription": "ライブTVを開いたときにお気に入りチャンネルのみ表示", "display": "ディスプレイ", "homeScreen": "ホーム画面", "navigation": "ナビゲーション", @@ -330,7 +330,7 @@ "behavior": "動作" }, "search": { - "hint": "映画、番組、音楽を検索...", + "hint": "映画、番組、音楽を検索…", "tryDifferentTerm": "別の検索語をお試しください", "searchYourMedia": "メディアを検索", "enterTitleActorOrKeyword": "タイトル、俳優、またはキーワードを入力" @@ -346,8 +346,8 @@ "playPause": "再生/一時停止", "volumeUp": "音量を上げる", "volumeDown": "音量を下げる", - "seekForward": "前方にシーク (${seconds}秒)", - "seekBackward": "後方にシーク (${seconds}秒)", + "seekForward": "早送り(${seconds}秒)", + "seekBackward": "巻き戻し(${seconds}秒)", "fullscreenToggle": "フルスクリーン切替", "muteToggle": "ミュート切替", "subtitleToggle": "字幕切替", @@ -413,7 +413,7 @@ "mediaFailedToDelete": "メディアアイテムの削除に失敗しました", "rate": "評価", "playFromBeginning": "最初から再生", - "playVersion": "バージョンを再生..." + "playVersion": "バージョンを選んで再生…" }, "rateSheet": { "title": "評価", @@ -463,8 +463,8 @@ "resetToZero": "0msにリセット", "addTime": "+${amount}${unit}", "minusTime": "-${amount}${unit}", - "playsLater": "${label}遅く再生", - "playsEarlier": "${label}早く再生", + "playsLater": "${label}を遅らせる", + "playsEarlier": "${label}を早める", "noOffset": "オフセットなし", "letterbox": "レターボックス", "fillScreen": "画面を埋める", @@ -484,8 +484,8 @@ "playNext": "次を再生", "playButton": "再生", "pauseButton": "一時停止", - "showPlaybackControls": "", - "hidePlaybackControls": "", + "showPlaybackControls": "再生コントロールを表示", + "hidePlaybackControls": "再生コントロールを非表示", "seekBackwardButton": "${seconds}秒戻る", "seekForwardButton": "${seconds}秒進む", "previousButton": "前のエピソード", @@ -543,7 +543,7 @@ "subtitleDownloaded": "字幕をダウンロードしました", "subtitleDownloadedNotApplied": "字幕はダウンロードされましたが、選択できませんでした", "subtitleDownloadFailed": "字幕のダウンロードに失敗しました", - "searchLanguages": "言語を検索..." + "searchLanguages": "言語を検索…" }, "userStatus": {}, "messages": { @@ -560,25 +560,25 @@ "streamInterrupted": "ストリームが中断されました。再生を押すかシークして再試行してください。", "liveStreamInterrupted": "ライブストリームが中断されました。再生を押して再試行してください。", "fileInfoNotAvailable": "ファイル情報が利用できません", - "playbackAuthenticationRequired": "Sign in to the media server again to play this item.", - "playbackServerUnavailable": "The media server is unavailable. Try again later.", - "playbackDataInvalid": "The server returned invalid playback information.", - "playbackCancelled": "Playback was cancelled.", - "playbackFailed": "Playback could not be started.", + "playbackAuthenticationRequired": "このアイテムを再生するには、メディアサーバーにもう一度サインインしてください。", + "playbackServerUnavailable": "メディアサーバーを利用できません。しばらくしてからもう一度お試しください。", + "playbackDataInvalid": "サーバーから無効な再生情報が返されました。", + "playbackCancelled": "再生がキャンセルされました。", + "playbackFailed": "再生を開始できませんでした。", "errorLoadingFileInfo": "ファイル情報の読み込みエラー: ${error}", "errorLoadingSeries": "シリーズの読み込みエラー", "musicNotSupported": "音楽の再生はまだサポートされていません", "noDescriptionAvailable": "説明はありません", "noProfilesAvailable": "利用可能なプロフィールがありません", - "contactAdminForProfiles": "プロファイルを追加するにはサーバー管理者に連絡してください", + "contactAdminForProfiles": "プロフィールを追加するには、サーバー管理者に連絡してください", "unableToDetermineLibrarySection": "このアイテムのライブラリセクションを判別できません", "logsCleared": "ログをクリアしました", "logsCopied": "ログをクリップボードにコピーしました", "noLogsAvailable": "ログがありません", - "libraryScanning": "\"${title}\"をスキャン中...", + "libraryScanning": "「${title}」をスキャン中…", "libraryScanStarted": "\"${title}\"のライブラリスキャンを開始しました", "libraryScanFailed": "ライブラリのスキャンに失敗しました: ${error}", - "metadataRefreshing": "\"${title}\"のメタデータを更新中...", + "metadataRefreshing": "「${title}」のメタデータを更新中…", "metadataRefreshStarted": "\"${title}\"のメタデータ更新を開始しました", "metadataRefreshFailed": "メタデータの更新に失敗しました: ${error}", "logoutConfirm": "ログアウトしてもよろしいですか?", @@ -590,9 +590,9 @@ "noResultsFound": "結果が見つかりません", "sleepTimerSet": "スリープタイマーを${label}に設定しました", "noItemsAvailable": "アイテムがありません", - "failedToCreatePlayQueueNoItems": "再生キューの作成に失敗しました - アイテムがありません", + "failedToCreatePlayQueueNoItems": "再生キューを作成できませんでした — アイテムがありません", "failedPlayback": "${action}に失敗しました: ${error}", - "switchingToCompatiblePlayer": "互換プレーヤーに切替中...", + "switchingToCompatiblePlayer": "互換性のあるプレーヤーに切り替え中…", "serverLimitTitle": "再生に失敗しました", "serverLimitBody": "サーバーエラー(HTTP 500)。帯域幅/トランスコード制限により拒否された可能性があります。所有者に調整を依頼してください。", "logsUploaded": "ログをアップロードしました", @@ -627,7 +627,7 @@ "description": "高度な動画プレーヤー設定", "presets": "プリセット", "noPresets": "保存済みプリセットがありません", - "saveAsPreset": "プリセットとして保存...", + "saveAsPreset": "プリセットとして保存…", "presetName": "プリセット名", "presetNameHint": "プリセットの名前を入力", "loadPreset": "読み込み", @@ -642,30 +642,30 @@ "confirmAction": "操作の確認" }, "profiles": { - "addPlezyProfile": "Plezyプロファイルを追加", - "switchingProfile": "プロファイルを切り替え中…", - "deleteThisProfileTitle": "このプロファイルを削除しますか?", + "addPlezyProfile": "Plezyプロフィールを追加", + "switchingProfile": "プロフィールを切り替え中…", + "deleteThisProfileTitle": "このプロフィールを削除しますか?", "deleteThisProfileMessage": "${displayName}を削除します。接続には影響しません。", "active": "アクティブ", "manage": "管理", "delete": "削除", "signOut": "サインアウト", - "signOutPlexTitle": "Plex からサインアウトしますか?", - "signOutPlexMessage": "${displayName}とすべてのPlex Homeユーザーを削除しますか?いつでも再サインインできます。", - "signedOutPlex": "Plex からサインアウトしました。", + "signOutPlexTitle": "Plexからサインアウトしますか?", + "signOutPlexMessage": "${displayName}とすべてのPlex Homeユーザーを削除しますか?いつでも再度サインインできます。", + "signedOutPlex": "Plexからサインアウトしました。", "signOutFailed": "サインアウトに失敗しました。", - "sectionTitle": "プロファイル", - "summarySingle": "プロファイルを追加して、管理対象ユーザーとローカルIDを混在させます", - "summaryMultipleWithActive": "${count}個のプロファイル · アクティブ: ${activeName}", - "summaryMultiple": "${count}個のプロファイル", + "sectionTitle": "プロフィール", + "summarySingle": "プロフィールを追加すると、管理対象ユーザーとローカルユーザーを併用できます", + "summaryMultipleWithActive": "${count}個のプロフィール · 使用中: ${activeName}", + "summaryMultiple": "${count}個のプロフィール", "removeConnectionTitle": "接続を削除しますか?", "removeConnectionMessage": "${displayName}の${connectionLabel}へのアクセスを削除します。他のプロフィールには残ります。", - "deleteProfileTitle": "プロファイルを削除しますか?", + "deleteProfileTitle": "プロフィールを削除しますか?", "deleteProfileMessage": "${displayName}とその接続を削除します。サーバーは引き続き利用できます。", - "profileNameLabel": "プロファイル名", + "profileNameLabel": "プロフィール名", "pinProtectionLabel": "PIN保護", "pinManagedByPlex": "PINはPlexで管理されています。plex.tvで編集してください。", - "noPinSetEditOnPlex": "PINが設定されていません。要求するには、plex.tvでHomeユーザーを編集してください。", + "noPinSetEditOnPlex": "PINが設定されていません。PINを必須にするには、plex.tvでHomeユーザーを編集してください。", "setPin": "PINを設定", "setPinTitle": "PINを設定", "confirmPinTitle": "PINを確認", @@ -674,8 +674,8 @@ "removePin": "削除", "connectionsLabel": "接続", "add": "追加", - "deleteProfileButton": "プロファイルを削除", - "noConnectionsHint": "接続がありません — このプロファイルを使うには1つ追加してください。", + "deleteProfileButton": "プロフィールを削除", + "noConnectionsHint": "接続がありません — このプロフィールを使うには接続を追加してください。", "noConnections": "接続がありません", "plexHomeAccount": "Plex Homeアカウント", "connectionDefault": "デフォルト", @@ -684,19 +684,19 @@ "removeConnection": "削除", "profileRenamed": "プロフィール名を変更しました。", "borrowAddTo": "${displayName}に追加", - "borrowExplain": "別のプロフィールの接続を借用します。PIN保護されたプロフィールにはPINが必要です。", - "borrowEmpty": "まだ借りるものがありません。", - "borrowEmptySubtitle": "まず別のプロフィールにPlexまたはJellyfinを接続してください。", - "borrowLoadFailed": "Available connections could not be loaded. Try again.", - "borrowFromProfile": "${displayName}から", - "borrowConnectionBorrowed": "接続を借用しました。", - "borrowFailed": "接続を借用できませんでした。", + "borrowExplain": "別のプロフィールの接続を利用します。PINで保護されたプロフィールにはPINが必要です。", + "borrowEmpty": "利用できる接続はまだありません。", + "borrowEmptySubtitle": "まず、別のプロフィールをPlexまたはJellyfinに接続してください。", + "borrowLoadFailed": "利用可能な接続を読み込めませんでした。もう一度お試しください。", + "borrowFromProfile": "${displayName}から利用", + "borrowConnectionBorrowed": "接続を追加しました。", + "borrowFailed": "接続を追加できませんでした。", "incorrectPin": "PINが正しくありません。", "incorrectPinTryAgain": "PINが正しくありません。もう一度お試しください。", - "sourceProfileMissingParentAccount": "ソースプロフィールに親アカウントがありません。", + "sourceProfileMissingParentAccount": "元のプロフィールに親アカウントがありません。", "failedToLoadHomeUsers": "Plex Homeユーザーを読み込めませんでした。接続を確認して、もう一度お試しください。", "failedToVerifyPin": "PINを確認できませんでした。", - "newProfile": "新しいプロファイル", + "newProfile": "新しいプロフィール", "profileNameHint": "例:ゲスト、キッズ、ファミリールーム", "pinProtectionOptional": "PIN保護(オプション)", "pinExplain": "プロフィール切り替えには4桁のPINが必要です。", @@ -707,12 +707,12 @@ "sectionTitle": "接続", "addConnection": "接続を追加", "addConnectionSubtitleNoProfile": "Plexでサインインするか、Jellyfinサーバーに接続", - "addConnectionSubtitleScoped": "${displayName}に追加: Plex、Jellyfin、または別プロフィールの接続", + "addConnectionSubtitleScoped": "${displayName}に追加:Plex、Jellyfin、または別のプロフィールの接続", "sessionExpiredOne": "${name} のセッションの有効期限が切れました", "sessionExpiredMany": "${count} 台のサーバーのセッションの有効期限が切れました", "signInAgain": "再度サインイン", "editJellyfinTitle": "Jellyfin接続を編集", - "editJellyfinIntro": "${serverName} のURLを追加または削除します。Plezyは到達可能なURLのうち最も低遅延のものを使用します。" + "editJellyfinIntro": "${serverName}のURLを追加または削除します。Plezyは接続可能なURLのうち遅延が最も少ないものを使用します。" }, "discover": { "title": "探す", @@ -722,11 +722,11 @@ "continueWatchingIn": "${library}の視聴を続ける", "nextUp": "次のエピソード", "nextUpIn": "${library}の次のエピソード", - "recentlyAdded": "最近追加", - "recentlyAddedIn": "${library}に最近追加", + "recentlyAdded": "最近追加されたコンテンツ", + "recentlyAddedIn": "${library}に最近追加されたコンテンツ", "latestAlbumsIn": "${library}の最新アルバム", - "recentlyPlayedIn": "${library}で最近再生", - "mostPlayedIn": "${library}で最も再生", + "recentlyPlayedIn": "${library}で最近再生したコンテンツ", + "mostPlayedIn": "${library}で最も再生したコンテンツ", "playEpisode": "S${season}E${episode}", "overview": "あらすじ", "cast": "キャスト", @@ -760,11 +760,11 @@ "analyzeLibrary": "ライブラリを解析", "refreshMetadata": "メタデータを更新", "emptyTrash": "ゴミ箱を空にする", - "emptyingTrash": "\"${title}\"のゴミ箱を空にしています...", - "trashEmptied": "\"${title}\"のゴミ箱を空にしました", + "emptyingTrash": "「${title}」のゴミ箱を空にしています…", + "trashEmptied": "「${title}」のゴミ箱を空にしました", "failedToEmptyTrash": "ゴミ箱を空にできませんでした: ${error}", - "analyzing": "\"${title}\"を解析中...", - "analysisStarted": "\"${title}\"の解析を開始しました", + "analyzing": "「${title}」を解析中…", + "analysisStarted": "「${title}」の解析を開始しました", "failedToAnalyze": "ライブラリの解析に失敗しました: ${error}", "noLibrariesFound": "ライブラリが見つかりません", "allLibrariesHidden": "すべてのライブラリが非表示です", @@ -833,7 +833,7 @@ "productionYear": "製作年", "runtime": "再生時間", "officialRating": "公式レーティング", - "premiereDate": "プレミア日", + "premiereDate": "初公開日", "startDate": "開始日", "airTime": "放送時刻", "studio": "スタジオ", @@ -876,10 +876,10 @@ "libraries": "ライブラリ", "downloads": "ダウンロード", "liveTv": "ライブTV", - "explore": "探索" + "explore": "見つける" }, "explore": { - "title": "探索", + "title": "見つける", "selectSource": "ソースを選択", "rows": { "watchlist": "ウォッチリスト", @@ -904,7 +904,7 @@ "upcoming": "放送予定" }, "episodeCount": { - "other": "${n} 話" + "other": "${n}話" }, "cast": "キャスト", "characters": "キャラクター", @@ -913,12 +913,12 @@ "watchlistUpdateFailed": "ウォッチリストを更新できませんでした", "notInLibrary": "ライブラリにありません", "inTheseLibraries": "これらのライブラリにあります", - "checkingLibrary": "ライブラリを確認中...", + "checkingLibrary": "ライブラリを確認中…", "emptyTitle": "まだ何もありません", "emptyMessage": "${source}にコンテンツが追加されると、ここに表示されます。", - "searchHint": "${source} で検索", + "searchHint": "${source}を検索", "searchEmpty": "「${query}」の結果が見つかりません", - "searchPrompt": "${source} で映画やテレビ番組を検索します。", + "searchPrompt": "${source}で映画やテレビ番組を検索します。", "searchFailed": "検索に失敗しました。接続を確認してもう一度お試しください。" }, "liveTv": { @@ -936,22 +936,22 @@ "channelNumber": "チャンネル ${number}", "unknownChannel": "不明なチャンネル", "live": "ライブ", - "reloadGuide": "番組表を再読込", + "reloadGuide": "番組表を再読み込み", "now": "現在", "today": "今日", "tomorrow": "明日", - "midnight": "深夜", + "midnight": "午前0時", "overnight": "深夜", "morning": "朝", - "daytime": "昼", + "daytime": "日中", "evening": "夕方", - "lateNight": "深夜", + "lateNight": "夜更け", "whatsOn": "放送中", "watchChannel": "チャンネルを視聴", "favorites": "お気に入り", "reorderFavorites": "お気に入りを並べ替え", "favoritesLoadFailed": "お気に入りを読み込めませんでした。接続を確認してもう一度お試しください。", - "favoritesUpdateFailed": "Could not update favorites. Check your connection and try again.", + "favoritesUpdateFailed": "お気に入りを更新できませんでした。接続を確認してもう一度お試しください。", "joinSession": "進行中のセッションに参加", "watchFromStart": "最初から視聴(${minutes}分前に開始)", "watchLive": "ライブで視聴", @@ -968,13 +968,13 @@ "manageRecording": "録画を管理", "cancelRecording": "録画をキャンセル", "cancelRecordingTitle": "この録画をキャンセルしますか?", - "cancelRecordingMessage": "${title} は録画されなくなります。", + "cancelRecordingMessage": "${title}は録画されなくなります。", "deleteRule": "ルールを削除", "deleteRuleTitle": "録画ルールを削除しますか?", - "deleteRuleMessage": "${title} の今後のエピソードは録画されません。", + "deleteRuleMessage": "${title}の今後のエピソードは録画されません。", "recordingScheduled": "録画を予約しました", "alreadyScheduled": "この番組はすでに予約されています", - "dvrAdminRequired": "DVR 設定には管理者アカウントが必要です", + "dvrAdminRequired": "DVR設定には管理者アカウントが必要です", "recordingFailed": "録画を予約できませんでした", "recordingTargetMissing": "録画ライブラリを特定できませんでした", "recordNotAvailable": "この番組は録画できません", @@ -982,12 +982,12 @@ "recordingRuleDeleted": "録画ルールを削除しました", "processRecordingRules": "ルールを再評価", "recordingInProgress": "録画中", - "recordingsCount": "${count} 件予約済み", + "recordingsCount": "${count}件予約済み", "editRule": "ルールを編集", "editRuleAction": "編集", "recordingRuleUpdated": "録画ルールを更新しました", - "guideReloadRequested": "ガイドの更新を要求しました", - "rulesProcessRequested": "ルールの再評価を要求しました", + "guideReloadRequested": "番組表の更新をリクエストしました", + "rulesProcessRequested": "録画ルールの再評価をリクエストしました", "recordShow": "番組を録画" }, "collections": { @@ -995,7 +995,7 @@ "collection": "コレクション", "empty": "コレクションは空です", "deleteCollection": "コレクションを削除", - "deleteConfirm": "「${title}」を削除しますか?元に戻せません。", + "deleteConfirm": "「${title}」を削除しますか?この操作は元に戻せません。", "deleted": "コレクションを削除しました", "deleteFailed": "コレクションの削除に失敗しました", "deleteFailedWithError": "コレクションの削除に失敗しました: ${error}", @@ -1006,11 +1006,11 @@ "errorAddingToCollection": "コレクションへの追加に失敗しました", "created": "コレクションを作成しました", "removeFromCollection": "コレクションから削除", - "removeFromCollectionConfirm": "\"${title}\"をこのコレクションから削除しますか?", + "removeFromCollectionConfirm": "「${title}」をこのコレクションから削除しますか?", "removedFromCollection": "コレクションから削除しました", "removeFromCollectionFailed": "コレクションからの削除に失敗しました", "removeFromCollectionError": "コレクションからの削除エラー: ${error}", - "searchCollections": "コレクションを検索..." + "searchCollections": "コレクションを検索…" }, "playlists": { "title": "プレイリスト", @@ -1022,17 +1022,17 @@ "delete": "プレイリストを削除", "removeItem": "プレイリストから削除", "smartPlaylist": "スマートプレイリスト", - "itemCount": "${count}アイテム", - "oneItem": "1アイテム", + "itemCount": "${count}件", + "oneItem": "1件", "emptyPlaylist": "このプレイリストは空です", "deleteConfirm": "プレイリストを削除しますか?", - "deleteMessage": "\"${name}\"を削除してもよろしいですか?", + "deleteMessage": "「${name}」を削除しますか?", "created": "プレイリストを作成しました", "deleted": "プレイリストを削除しました", "itemAdded": "プレイリストに追加しました", "itemRemoved": "プレイリストから削除しました", "selectPlaylist": "プレイリストを選択", - "searchPlaylists": "プレイリストを検索...", + "searchPlaylists": "プレイリストを検索…", "errorCreating": "プレイリストの作成に失敗しました", "errorDeleting": "プレイリストの削除に失敗しました", "errorLoading": "プレイリストの読み込みに失敗しました", @@ -1048,10 +1048,10 @@ "addToQueue": "キューに追加", "discNumber": "ディスク ${n}", "trackCount": { - "other": "${n} 曲" + "other": "${n}曲" }, "nowPlaying": "再生中", - "playingFrom": "${title} から再生", + "playingFrom": "${title}から再生", "queue": "再生キュー", "clearQueue": "キューをクリア", "lyrics": "歌詞", @@ -1070,9 +1070,9 @@ "title": "一緒に見る", "description": "友達や家族と同期してコンテンツを視聴", "createSession": "セッションを作成", - "creating": "作成中...", + "creating": "作成中…", "joinSession": "セッションに参加", - "joining": "参加中...", + "joining": "参加中…", "controlMode": "コントロールモード", "controlModeQuestion": "誰が再生を制御できますか?", "hostOnly": "ホストのみ", @@ -1088,7 +1088,7 @@ "anyoneControls": "全員が制御", "participants": "参加者", "host": "ホスト", - "hostBadge": "HOST", + "hostBadge": "ホスト", "youAreHost": "あなたはホストです", "watchingWithOthers": "他の人と視聴中", "endSession": "セッションを終了", @@ -1101,7 +1101,7 @@ "leaveSessionConfirmOverlay": "視聴セッションから切断されます。", "end": "終了", "leave": "退出", - "syncing": "同期中...", + "syncing": "同期中…", "joinWatchSession": "視聴セッションに参加", "enterCodeHint": "5文字のコードを入力", "pasteFromClipboard": "クリップボードから貼り付け", @@ -1111,8 +1111,8 @@ "failedToCreate": "セッションの作成に失敗しました", "failedToJoin": "セッションへの参加に失敗しました", "sessionCodeCopied": "セッションコードをクリップボードにコピーしました", - "relayUnreachable": "リレーサーバーに到達できません。ISPのブロックによりWatch Togetherが使えない可能性があります。", - "reconnectingToHost": "ホストに再接続中...", + "relayUnreachable": "リレーサーバーに接続できません。ISPによるブロックのため「一緒に見る」を利用できない可能性があります。", + "reconnectingToHost": "ホストに再接続中…", "currentPlayback": "現在の再生", "joinCurrentPlayback": "現在の再生に参加", "joinCurrentPlaybackDescription": "ホストが現在視聴中のコンテンツに戻る", @@ -1121,17 +1121,17 @@ "participantLeft": "${name}が退出しました", "participantPaused": "${name}が一時停止しました", "participantResumed": "${name}が再開しました", - "participantSeeked": "${name}がシークしました", + "participantSeeked": "${name}が再生位置を変更しました", "participantBuffering": "${name}がバッファリング中", - "participantNeedsUpdate": "${name} は古いバージョンのアプリを使用しているため、同期できません", - "resumingWithout": "${name} なしで再開", - "waitingForParticipants": "他の参加者の読み込みを待っています...", - "waitingForName": "${name}を待っています...", + "participantNeedsUpdate": "${name}は古いバージョンのアプリを使用しているため、同期できません", + "resumingWithout": "${name}抜きで再開", + "waitingForParticipants": "他の参加者の読み込みを待っています…", + "waitingForName": "${name}を待っています…", "recentRooms": "最近のルーム", "renameRoom": "ルーム名を変更", "removeRoom": "削除", - "guestSwitchUnavailable": "切り替えできません — サーバーが同期できません", - "guestSwitchFailed": "切り替えできません — このサーバーにコンテンツが見つかりません" + "guestSwitchUnavailable": "切り替えられません — 同期に必要なサーバーを利用できません", + "guestSwitchFailed": "切り替えられません — このサーバーにコンテンツが見つかりません" }, "downloads": { "title": "ダウンロード", @@ -1140,7 +1140,7 @@ "movies": "映画", "music": "音楽", "tracksQueued": "${count} 曲をダウンロード待機中", - "noDownloads": "ダウンロードなし", + "noDownloads": "ダウンロードはまだありません", "noDownloadsDescription": "ダウンロードしたコンテンツはここに表示され、オフラインで視聴できます", "downloadNow": "ダウンロード", "deleteDownload": "ダウンロードを削除", @@ -1151,20 +1151,20 @@ "episodesQueued": "${count}エピソードをダウンロードキューに追加しました", "downloadDeleted": "ダウンロードを削除しました", "deleteConfirm": "このデバイスから「${title}」を削除しますか?", - "cancelledDownloadTitle": "キャンセルされたダウンロード", + "cancelledDownloadTitle": "キャンセル済みのダウンロード", "cancelledDownloadMessage": "このダウンロードはキャンセルされました。どうしますか?", "allEpisodesAlreadyDownloaded": "すべてのエピソードはすでにダウンロード済みです", "resumeDownload": "ダウンロードを再開", - "cancelledDownload": "キャンセルされたダウンロード", + "cancelledDownload": "キャンセル済みのダウンロード", "syncingFile": "${file}(${status}を同期中)", - "downloadedFileClickToComplete": "${file} をダウンロード済み — クリックして完了", + "downloadedFileClickToComplete": "${file}をダウンロード済み — クリックして完了", "partialDownloadClickToComplete": "一部ダウンロード済み — クリックして完了", - "deleting": "削除中...", - "deletingWithProgress": "${title}を削除中... (${current}/${total})", + "deleting": "削除中…", + "deletingWithProgress": "${title}を削除中…(${current}/${total})", "queuedTooltip": "キュー", - "queuedFilesTooltip": "キュー: ${files}", - "downloadingTooltip": "ダウンロード中...", - "downloadingFilesTooltip": "${files} をダウンロード中", + "queuedFilesTooltip": "キュー:${files}", + "downloadingTooltip": "ダウンロード中…", + "downloadingFilesTooltip": "${files}をダウンロード中", "noDownloadsTree": "ダウンロードなし", "pauseAll": "すべて一時停止", "resumeAll": "すべて再開", @@ -1173,9 +1173,9 @@ "allEpisodes": "すべてのエピソード", "unwatchedOnly": "未視聴のみ", "nextNUnwatched": "次の${count}件の未視聴", - "customAmount": "数を指定...", + "customAmount": "数を指定…", "includeSpecials": "スペシャルを含める", - "howManyEpisodes": "何エピソード?", + "howManyEpisodes": "エピソード数", "invalidEpisodeCount": "有効なエピソード数を入力してください。", "keepSynced": "同期を維持", "downloadOnce": "一度だけダウンロード", @@ -1205,7 +1205,7 @@ "shaders": { "title": "シェーダー", "noShaderDescription": "映像補正なし", - "nvscalerDescription": "よりシャープな映像のためのNVIDIA画像スケーリング", + "nvscalerDescription": "NVIDIA画像スケーリングで映像をより鮮明にします", "artcnnVariantNeutral": "ニュートラル", "artcnnVariantDenoise": "ノイズ除去", "artcnnVariantDenoiseSharpen": "ノイズ除去 + シャープ", @@ -1217,18 +1217,18 @@ "shaderImported": "シェーダーをインポートしました", "shaderImportFailed": "シェーダーのインポートに失敗しました", "deleteShader": "シェーダーを削除", - "deleteShaderConfirm": "\"${name}\"を削除しますか?" + "deleteShaderConfirm": "「${name}」を削除しますか?" }, "companionRemote": { "title": "コンパニオンリモート", "connectedTo": "${name}に接続中", "unknownDevice": "不明なデバイス", "session": { - "startingServer": "リモートサーバーを起動中...", + "startingServer": "リモートサーバーを起動中…", "hostAddress": "ホストアドレス", "connected": "接続済み", "serverRunning": "リモートサーバー稼働中", - "serverStopped": "リモートサーバー停止中", + "serverStopped": "リモートサーバー停止", "serverRunningDescription": "ネットワーク上のモバイルデバイスがこのアプリに接続できます", "serverStoppedDescription": "モバイルデバイスの接続を許可するにはサーバーを起動してください", "usePhoneToControl": "モバイルデバイスでこのアプリを操作できます", @@ -1237,12 +1237,12 @@ "minimize": "最小化" }, "pairing": { - "discoveryDescription": "同じPlexアカウントのPlezyデバイスがここに表示されます", + "discoveryDescription": "同じPlexアカウントを使用しているPlezyデバイスがここに表示されます", "hostAddressHint": "192.168.1.100:48632", - "connecting": "接続中...", - "searchingForDevices": "デバイスを検索中...", + "connecting": "接続中…", + "searchingForDevices": "デバイスを検索中…", "noDevicesFound": "ネットワーク上にデバイスが見つかりません", - "noDevicesHint": "デスクトップでPlezyを開き、同じWiFiを使用してください", + "noDevicesHint": "デスクトップでPlezyを開き、同じWi-Fiネットワークに接続してください", "availableDevices": "利用可能なデバイス", "manualConnection": "手動接続", "cryptoInitFailed": "安全な接続を開始できませんでした。先にPlexにサインインしてください。", @@ -1254,11 +1254,11 @@ "failedToConnect": "接続に失敗しました: ${error}" }, "remote": { - "disconnectConfirm": "リモートセッションから切断しますか?", - "reconnecting": "再接続中...", + "disconnectConfirm": "リモートセッションを切断しますか?", + "reconnecting": "再接続中…", "attemptOf": "試行 ${current}/5", "retryNow": "今すぐ再試行", - "tabRemote": "リモート", + "tabRemote": "リモコン", "tabPlay": "再生", "tabMore": "その他", "menu": "メニュー", @@ -1280,7 +1280,7 @@ "fullscreen": "フルスクリーン", "subtitles": "字幕", "audio": "音声", - "searchHint": "デスクトップで検索..." + "searchHint": "デスクトップで検索…" }, "errors": { "noNetworkInterface": "ネットワークインターフェースが見つかりません", @@ -1326,7 +1326,7 @@ "hwFormat": "HW 形式", "matrix": "マトリクス", "primaries": "プライマリ", - "transfer": "転送", + "transfer": "伝達特性", "renderFps": "描画 FPS", "displayFps": "表示 FPS", "avSync": "A/V 同期", @@ -1351,7 +1351,7 @@ "useExternalPlayerDescription": "動画を別のアプリで開きます", "selectPlayer": "プレーヤーを選択", "customPlayers": "カスタムプレーヤー", - "systemDefault": "システムデフォルト", + "systemDefault": "システム既定", "addCustomPlayer": "カスタムプレーヤーを追加", "playerName": "プレーヤー名", "playerNameHint": "マイプレーヤー", @@ -1364,7 +1364,7 @@ "playInExternalPlayer": "外部プレーヤーで再生" }, "metadataEdit": { - "editMetadata": "編集...", + "editMetadata": "編集…", "screenTitle": "メタデータを編集", "basicInfo": "基本情報", "artwork": "アートワーク", @@ -1405,14 +1405,14 @@ "newestFirst": "新しい順", "keep": "保持", "allEpisodes": "すべてのエピソード", - "latestEpisodes": "最新${count}エピソード", + "latestEpisodes": "最新の${count}話", "latestEpisode": "最新エピソード", "episodesAddedPastDays": "過去${count}日間に追加されたエピソード", "deleteAfterPlaying": "再生後にエピソードを削除", "never": "しない", "afterADay": "1日後", "afterAWeek": "1週間後", - "afterAMonth": "1ヶ月後", + "afterAMonth": "1か月後", "onNextRefresh": "次回更新時", "seasons": "シーズン", "show": "表示", @@ -1442,14 +1442,14 @@ "mood": "ムード" }, "matchScreen": { - "match": "マッチ...", - "fixMatch": "マッチを修正...", - "unmatch": "マッチ解除", - "unmatchConfirm": "この一致をクリアしますか?再一致するまでPlexでは未一致として扱われます。", - "unmatchSuccess": "マッチを解除しました", - "unmatchFailed": "マッチの解除に失敗しました", - "matchApplied": "マッチを適用しました", - "matchFailed": "マッチの適用に失敗しました", + "match": "照合…", + "fixMatch": "照合を修正…", + "unmatch": "照合を解除", + "unmatchConfirm": "この照合を解除しますか?再照合するまで、Plexでは未照合として扱われます。", + "unmatchSuccess": "照合を解除しました", + "unmatchFailed": "照合を解除できませんでした", + "matchApplied": "照合結果を適用しました", + "matchFailed": "照合結果を適用できませんでした", "titleHint": "タイトル", "yearHint": "年", "search": "検索", @@ -1463,13 +1463,13 @@ "trakt": { "title": "Trakt", "connected": "接続済み", - "connectedAs": "@${username} として接続済み", - "disconnectConfirm": "Trakt アカウントを切断しますか?", + "connectedAs": "@${username}として接続済み", + "disconnectConfirm": "Traktアカウントとの接続を解除しますか?", "disconnectConfirmBody": "PlezyはTraktへのイベント送信を停止します。いつでも再接続できます。", "scrobble": "リアルタイムのスクロブル", - "scrobbleDescription": "再生中に再生・一時停止・停止イベントを Trakt に送信します。", + "scrobbleDescription": "再生中に再生・一時停止・停止の各イベントをTraktに送信します。", "watchedSync": "視聴済みステータスを同期", - "watchedSyncDescription": "Plezy で項目を視聴済みにすると、Trakt でも視聴済みになります。" + "watchedSyncDescription": "Plezyで項目を視聴済みにすると、Traktでも視聴済みになります。" }, "seerr": { "title": "Seerr", @@ -1521,7 +1521,7 @@ }, "deviceCode": { "title": "${service} で Plezy を有効化", - "body": "${url} にアクセスしてこのコードを入力:", + "body": "${url}にアクセスして、このコードを入力してください。", "openToActivate": "${service} を開いて有効化", "copyCode": "アクティベーションコードをコピー", "waitingForAuthorization": "認証を待っています…", @@ -1554,8 +1554,8 @@ "serverUrls": "サーバーURL", "serverUrlsHelper": "複数のURLをカンマ区切りで入力できます。", "findServer": "サーバーを検索", - "searchingLocalServers": "ローカル Jellyfin サーバーを検索中...", - "localServers": "ローカル Jellyfin サーバー", + "searchingLocalServers": "ローカルのJellyfinサーバーを検索中…", + "localServers": "ローカルのJellyfinサーバー", "username": "ユーザー名", "password": "パスワード", "signIn": "サインイン", @@ -1575,8 +1575,8 @@ "signInWithPlexCardSubtitleScoped": "Plexアカウントを承認します。Homeユーザーはプロフィールになります。", "connectToJellyfinCard": "Jellyfinに接続", "connectToJellyfinCardSubtitle": "サーバーURL、ユーザー名、パスワードを入力してください。", - "connectToJellyfinCardSubtitleScoped": "Jellyfinサーバーにサインインします。${name}に紐付けられます。", - "borrowFromAnotherProfile": "別のプロファイルから借りる", - "borrowFromAnotherProfileSubtitle": "別のプロフィールの接続を再利用します。PIN保護されたプロフィールにはPINが必要です。" + "connectToJellyfinCardSubtitleScoped": "Jellyfinサーバーにサインインします。${name}にひも付けられます。", + "borrowFromAnotherProfile": "別のプロフィールの接続を利用", + "borrowFromAnotherProfileSubtitle": "別のプロフィールの接続を再利用します。PINで保護されたプロフィールにはPINが必要です。" } } diff --git a/lib/i18n/ko.i18n.json b/lib/i18n/ko.i18n.json index 5c361658..087ab622 100644 --- a/lib/i18n/ko.i18n.json +++ b/lib/i18n/ko.i18n.json @@ -4,10 +4,10 @@ }, "auth": { "signInWithPlex": "Plex 계정으로 로그인", - "showQRCode": "QR 코드", + "showQRCode": "QR 코드 표시", "authenticate": "인증", "authenticationTimeout": "인증 시간이 초과되었습니다. 다시 시도해 주세요.", - "scanQRToSignIn": "QR 코드를 스캔하여 로그인", + "scanQRToSignIn": "로그인하려면 이 QR 코드를 스캔하세요", "waitingForAuth": "인증 대기 중...\n브라우저에서 로그인하세요.", "useBrowser": "브라우저 사용", "or": "또는", @@ -17,7 +17,7 @@ "quickConnectWaiting": "승인 대기 중…", "quickConnectCancel": "취소", "quickConnectExpired": "Quick Connect가 만료되었습니다. 다시 시도하세요.", - "localDataRecoveryRequired": "Plezy could not safely recover local sign-in and pending playback data. Please sign in again." + "localDataRecoveryRequired": "Plezy에서 로컬 로그인 정보와 대기 중인 재생 데이터를 안전하게 복구하지 못했습니다. 다시 로그인해 주세요." }, "common": { "cancel": "취소", @@ -26,7 +26,7 @@ "clear": "지우기", "reset": "초기화", "later": "나중에", - "submit": "보내기", + "submit": "제출", "confirm": "확인", "retry": "재시도", "logout": "로그아웃", @@ -51,7 +51,7 @@ "settings": "설정", "mute": "음소거", "ok": "확인", - "off": "끔", + "off": "꺼짐", "seasonNumber": "시즌 ${number}", "episodeNumberTitle": "${number}화 - ${title}", "chapterNumber": "챕터 ${number}", @@ -62,8 +62,8 @@ "connectingToServers": "서버 연결 중...", "startingOfflineMode": "오프라인 모드 시작 중...", "loading": "로딩 중...", - "fullscreen": "전체화면", - "exitFullscreen": "전체화면 종료", + "fullscreen": "전체 화면", + "exitFullscreen": "전체 화면 종료", "pressBackAgainToExit": "한 번 더 누르면 종료됩니다" }, "screens": { @@ -74,8 +74,8 @@ "logs": "로그" }, "update": { - "available": "사용 가능한 업데이트", - "versionAvailable": "버전 ${version} 출시됨", + "available": "업데이트 있음", + "versionAvailable": "${version} 버전을 사용할 수 있습니다", "currentVersion": "현재 버전: ${version}", "skipVersion": "이 버전 건너뛰기", "viewRelease": "릴리스 정보 보기", @@ -88,9 +88,9 @@ "supportDeveloperDescription": "Liberapay로 후원하여 개발 지원", "language": "언어", "theme": "테마", - "appearance": "외관", + "appearance": "디자인", "videoPlayback": "비디오 재생", - "videoPlaybackDescription": "재생 동작 구성", + "videoPlaybackDescription": "재생 동작 설정", "advanced": "고급", "episodePosterMode": "에피소드 포스터 스타일", "seriesPoster": "시리즈 포스터", @@ -102,15 +102,15 @@ "secondsShort": "초", "minutesShort": "분", "durationHint": "기간 입력 (${min}-${max})", - "systemTheme": "시스템 설정", - "lightTheme": "라이트 모드", - "darkTheme": "다크 모드", + "systemTheme": "시스템", + "lightTheme": "라이트", + "darkTheme": "다크", "oledTheme": "OLED", "libraryDensity": "라이브러리 표시 밀도", - "compact": "좁게", - "comfortable": "넓게", - "tvCornerSpotlightBackdrop": "", - "tvCornerSpotlightBackdropDescription": "", + "compact": "조밀하게", + "comfortable": "여유롭게", + "tvCornerSpotlightBackdrop": "모서리 스포트라이트 배경", + "tvCornerSpotlightBackdropDescription": "화면 전체를 채우는 대신 오른쪽 상단에 스포트라이트 아트워크를 표시합니다", "viewMode": "보기 모드", "gridView": "그리드 보기", "listView": "목록 보기", @@ -159,28 +159,28 @@ "defaultQualityTitle": "기본 화질", "musicQualityTitle": "음악 음질", "subtitleStyling": "자막 스타일", - "subtitleStylingDescription": "자막의 외형을 사용자 설정", + "subtitleStylingDescription": "자막 모양을 사용자 지정합니다", "smallSkipDuration": "짧은 건너뛰기 시간", "largeSkipDuration": "긴 건너뛰기 시간", "rewindOnResume": "재개 시 되감기", "secondsUnit": "${seconds}초", "defaultSleepTimer": "기본 취침 타이머", "minutesUnit": "${minutes}분", - "rememberTrackSelections": "에피소드/영화별 트랙 선택 기억", - "rememberTrackSelectionsDescription": "제목별 오디오 및 자막 선택 기억", + "rememberTrackSelections": "시리즈/영화별 트랙 선택 기억", + "rememberTrackSelectionsDescription": "작품별 오디오 및 자막 선택 기억", "showChapterMarkersOnTimeline": "탐색 막대에 챕터 마커 표시", "showChapterMarkersOnTimelineDescription": "챕터 경계에서 탐색 막대 구분", - "clickVideoTogglesPlayback": "비디오를 클릭하여 재생/일시정지를 전환하세요.", - "clickVideoTogglesPlaybackDescription": "컨트롤 표시 대신 동영상 클릭으로 재생/일시정지합니다.", + "clickVideoTogglesPlayback": "동영상 클릭으로 재생/일시정지 전환", + "clickVideoTogglesPlaybackDescription": "컨트롤을 표시하는 대신 동영상을 클릭하여 재생하거나 일시정지합니다.", "videoPlayerControls": "비디오 플레이어 컨트롤", "keyboardShortcuts": "키보드 단축키", - "keyboardShortcutsDescription": "사용자 정의 키보드 단축키", + "keyboardShortcutsDescription": "키보드 단축키를 사용자 지정합니다", "videoPlayerNavigation": "비디오 플레이어 탐색", - "videoPlayerNavigationDescription": "방향 키를 사용하여 비디오 플레이어 컨트롤 탐색", + "videoPlayerNavigationDescription": "방향 키로 비디오 플레이어 컨트롤을 탐색합니다", "watchTogetherRelay": "함께 보기 릴레이", "watchTogetherRelayDescription": "사용자 지정 릴레이를 설정합니다. 모두 같은 서버를 사용해야 합니다.", "watchTogetherRelayHint": "https://my-relay.example.com", - "watchTogetherRelayInvalid": "Enter a valid HTTP or HTTPS relay base URL.", + "watchTogetherRelayInvalid": "올바른 HTTP 또는 HTTPS 릴레이 기본 URL을 입력하세요.", "crashReporting": "충돌 보고", "crashReportingDescription": "앱 개선을 위해 충돌 보고서 전송", "debugLogging": "디버그 로깅", @@ -205,7 +205,7 @@ "importSettingsNoUser": "설정을 가져오기 전에 로그인하세요", "shortcutsReset": "단축키가 기본값으로 재설정되었습니다", "about": "정보", - "aboutDescription": "응용 프로그램 정보 및 라이선스", + "aboutDescription": "앱 정보 및 라이선스", "updates": "업데이트", "updateAvailable": "사용 가능한 업데이트 있음", "checkForUpdates": "업데이트 확인", @@ -213,9 +213,9 @@ "autoCheckUpdatesOnStartupDescription": "실행 시 업데이트가 있으면 알림", "validationErrorEnterNumber": "유효한 숫자를 입력하세요", "validationErrorDuration": "기간은 ${min}과 ${max} ${unit} 사이여야 합니다", - "shortcutAlreadyAssigned": "단축키가 이미 ${action}에 할당 되었습니다", - "shortcutUpdated": "단축키가 ${action}에 대해 업데이트 되었습니다", - "saveFailed": "Could not save changes. Try again.", + "shortcutAlreadyAssigned": "단축키가 이미 ${action}에 할당되었습니다", + "shortcutUpdated": "${action} 단축키가 업데이트되었습니다", + "saveFailed": "변경 사항을 저장하지 못했습니다. 다시 시도하세요.", "autoSkip": "자동 건너뛰기", "autoSkipIntro": "자동으로 오프닝 건너뛰기", "autoSkipIntroDescription": "몇 초 후 오프닝을 자동으로 건너뛰기", @@ -224,7 +224,7 @@ "forceSkipMarkerFallback": "대체 마커 강제 사용", "forceSkipMarkerFallbackDescription": "Plex에 마커가 있어도 챕터 제목 패턴 사용", "autoSkipDelay": "자동 건너뛰기 지연", - "autoSkipDelayDescription": "자동 건너뛰기 전 ${seconds} 초 대기", + "autoSkipDelayDescription": "자동으로 건너뛰기 전 ${seconds}초 대기", "introPattern": "인트로 마커 패턴", "introPatternDescription": "챕터 제목에서 인트로 마커를 인식하는 정규식 패턴", "creditsPattern": "크레딧 마커 패턴", @@ -238,17 +238,17 @@ "selectFolder": "폴더 선택", "resetToDefault": "기본값으로 재설정", "currentPath": "현재: ${path}", - "downloadLocationChanged": "다운로드 위치가 변경 되었습니다", - "downloadLocationReset": "다운로드 위치가 기본값으로 재설정 되었습니다", + "downloadLocationChanged": "다운로드 위치가 변경되었습니다", + "downloadLocationReset": "다운로드 위치가 기본값으로 재설정되었습니다", "downloadLocationInvalid": "선택한 폴더에 쓰기 권한이 없습니다", "downloadLocationPickerUnavailable": "이 기기에서는 폴더를 선택할 수 없습니다", - "downloadOnWifiOnly": "WiFi 연결 시에만 다운로드", - "downloadOnWifiOnlyDescription": "셀룰러 데이터 사용 시 다운로드 불가", - "autoRemoveWatchedDownloads": "시청한 다운로드 자동 삭제", - "autoRemoveWatchedDownloadsDescription": "시청한 다운로드 자동 삭제", - "cellularDownloadBlocked": "셀룰러에서는 다운로드가 차단됩니다. WiFi를 사용하거나 설정을 변경하세요.", + "downloadOnWifiOnly": "Wi-Fi 연결 시에만 다운로드", + "downloadOnWifiOnlyDescription": "셀룰러 데이터 사용 중에는 다운로드하지 않습니다", + "autoRemoveWatchedDownloads": "시청한 다운로드 항목 자동 삭제", + "autoRemoveWatchedDownloadsDescription": "시청한 다운로드 항목을 자동으로 삭제합니다", + "cellularDownloadBlocked": "셀룰러에서는 다운로드가 차단됩니다. Wi-Fi를 사용하거나 설정을 변경하세요.", "maxVolume": "최대 볼륨", - "maxVolumeDescription": "조용한 미디어를 위해 100% 이상의 볼륨 허용", + "maxVolumeDescription": "음량이 작은 콘텐츠를 위해 100% 이상의 볼륨을 허용합니다", "maxVolumePercent": "${percent}%", "discordRichPresence": "Discord Rich Presence", "discordRichPresenceDescription": "Discord에서 시청 중인 콘텐츠 표시", @@ -258,7 +258,7 @@ "companionRemoteServer": "컴패니언 리모트 서버", "companionRemoteServerDescription": "네트워크의 모바일 기기가 이 앱을 제어할 수 있도록 허용", "autoPip": "자동 PIP 모드", - "autoPipDescription": "재생 중 앱을 떠나면 화면 속 화면으로 전환", + "autoPipDescription": "재생 중 앱을 떠나면 자동으로 화면 속 화면 모드로 전환합니다", "matchContentFrameRate": "콘텐츠 프레임 레이트 맞춤", "matchContentFrameRateDescription": "디스플레이 새로 고침 빈도를 동영상 콘텐츠에 맞춤", "matchRefreshRate": "주사율 맞춤", @@ -270,7 +270,7 @@ "tunneledPlaybackDescription": "비디오 터널링을 사용합니다. HDR 재생 시 검은 화면이 보이면 비활성화하세요.", "audioPassthrough": "오디오 패스스루", "audioPassthroughDescription": "Dolby/DTS 오디오를 재인코딩 없이 리시버나 TV로 전송하여 서라운드 사운드를 유지합니다. 소리가 나지 않으면 비활성화하세요.", - "audioPassthroughDescriptionAppleTv": "Dolby Digital Plus(Atmos 포함)를 비트스트림으로 시스템에 전달합니다. DTS와 TrueHD는 계속 멀티채널 PCM으로 재생됩니다. 탐색 시 짧은 소리 끊김이 발생할 수 있습니다.", + "audioPassthroughDescriptionAppleTv": "Dolby Digital Plus(Atmos 포함)에 Apple의 기본 Dolby 디코더를 사용합니다. DTS와 TrueHD는 계속 멀티채널 PCM으로 재생됩니다. 소리가 나지 않으면 비활성화하세요.", "audioDownmix": "스테레오로 다운믹스", "audioDownmixDescription": "서라운드 오디오를 스테레오 스피커나 헤드폰용 2채널로 믹스합니다", "downmixCenterBoost": "센터 채널 부스트", @@ -308,10 +308,10 @@ "requireProfileSelectionOnOpenDescription": "앱을 열 때마다 프로필 선택 화면을 표시합니다", "forceTvMode": "TV 모드 강제 사용", "forceTvModeDescription": "TV 레이아웃을 강제합니다. 자동 감지되지 않는 기기용입니다. 재시작이 필요합니다.", - "startInFullscreen": "전체화면으로 시작", - "startInFullscreenDescription": "실행 시 Plezy를 전체화면 모드로 엽니다", - "exitFullscreenOnPlayerClose": "플레이어 닫을 때 전체화면 종료", - "exitFullscreenOnPlayerCloseDescription": "비디오 플레이어를 닫을 때 자동으로 전체화면을 종료합니다", + "startInFullscreen": "전체 화면으로 시작", + "startInFullscreenDescription": "실행 시 Plezy를 전체 화면 모드로 엽니다", + "exitFullscreenOnPlayerClose": "플레이어를 닫을 때 전체 화면 종료", + "exitFullscreenOnPlayerCloseDescription": "비디오 플레이어를 닫을 때 자동으로 전체 화면을 종료합니다", "autoHidePerformanceOverlay": "성능 오버레이 자동 숨기기", "autoHidePerformanceOverlayDescription": "재생 컨트롤과 함께 성능 오버레이를 페이드 처리", "showNavBarLabels": "내비게이션 바 라벨 표시", @@ -385,8 +385,8 @@ "bitDepth": "비트 심도", "colorSpace": "색 공간", "colorRange": "색 범위", - "colorPrimaries": "색상 원색", - "chromaSubsampling": "채도 서브샘플링", + "colorPrimaries": "색 원색", + "chromaSubsampling": "색차 서브샘플링", "channels": "채널", "subtitles": "자막", "overallBitrate": "전체 비트레이트", @@ -399,12 +399,12 @@ }, "mediaMenu": { "markAsWatched": "시청 완료로 표시", - "markAsUnwatched": "시청 안 함으로 표시", + "markAsUnwatched": "미시청으로 표시", "removeFromContinueWatching": "계속 보기에서 제거", "viewDetails": "상세 정보 보기", "goToSeries": "시리즈로 이동", "shufflePlay": "무작위 재생", - "shuffleNotAvailableOffline": "오프라인에서는 셔플을 사용할 수 없습니다", + "shuffleNotAvailableOffline": "오프라인에서는 무작위 재생을 사용할 수 없습니다", "fileInfo": "파일 정보", "deleteFromServer": "서버에서 삭제", "confirmDelete": "이 미디어와 해당 파일을 서버에서 삭제할까요?", @@ -430,9 +430,9 @@ "mediaCardEpisode": "${title}, ${episodeInfo}", "mediaCardSeason": "${title}, ${seasonInfo}", "mediaCardWatched": "시청 완료", - "mediaCardPartiallyWatched": "${percent} 퍼센트 시청 완료", + "mediaCardPartiallyWatched": "${percent}% 시청 완료", "mediaCardUnwatched": "미시청", - "tapToPlay": "터치 하여 재생", + "tapToPlay": "탭하여 재생", "decrease": "낮추기", "increase": "높이기", "decreaseValue": "${label} 낮추기", @@ -452,7 +452,7 @@ "shufflePlay": "무작위 재생", "playTrailer": "예고편 재생", "markAsWatched": "시청 완료로 표시", - "markAsUnwatched": "시청 안 함으로 표시" + "markAsUnwatched": "미시청으로 표시" }, "audioTracks": { "track": "오디오 트랙 ${n}" @@ -472,7 +472,7 @@ "lockRotation": "회전 잠금", "unlockRotation": "회전 잠금 해제", "timerActive": "타이머 활성화됨", - "playbackWillPauseIn": "재생이 ${duration} 후에 일시 중지 됩니다", + "playbackWillPauseIn": "${duration} 후 재생이 일시정지됩니다", "sleepTimerEndOfVideo": "현재 비디오의 끝", "sleepTimerStopAtHeader": "정지 시점", "sleepTimerDurationHeader": "타이머", @@ -484,10 +484,10 @@ "playNext": "다음 재생", "playButton": "재생", "pauseButton": "일시정지", - "showPlaybackControls": "", - "hidePlaybackControls": "", - "seekBackwardButton": "${seconds} 초 뒤로", - "seekForwardButton": "${seconds} 초 앞으로", + "showPlaybackControls": "재생 컨트롤 표시", + "hidePlaybackControls": "재생 컨트롤 숨기기", + "seekBackwardButton": "${seconds}초 뒤로 이동", + "seekForwardButton": "${seconds}초 앞으로 이동", "previousButton": "이전 에피소드", "nextButton": "다음 에피소드", "previousChapterButton": "이전 챕터", @@ -507,8 +507,8 @@ "pipButton": "픽처 인 픽처 모드", "aspectRatioButton": "화면비율", "ambientLighting": "주변 조명", - "fullscreenButton": "전체화면", - "exitFullscreenButton": "전체화면 종료", + "fullscreenButton": "전체 화면", + "exitFullscreenButton": "전체 화면 종료", "alwaysOnTopButton": "창 최상위 고정", "rotationLockButton": "회전 잠금", "lockScreen": "화면 잠금", @@ -548,7 +548,7 @@ "userStatus": {}, "messages": { "markedAsWatched": "시청 완료로 표시됨", - "markedAsUnwatched": "시청 안 함으로 표시됨", + "markedAsUnwatched": "미시청으로 표시됨", "markedAsWatchedOffline": "시청 완료로 표시됨 (연결 시 동기화됨)", "markedAsUnwatchedOffline": "미시청으로 표시됨 (연결 시 동기화됨)", "autoRemovedWatchedDownload": "자동 삭제됨: ${title}", @@ -560,11 +560,11 @@ "streamInterrupted": "스트림이 중단되었습니다. 재생을 누르거나 탐색하여 다시 시도하세요.", "liveStreamInterrupted": "라이브 스트림이 중단되었습니다. 재생을 눌러 다시 시도하세요.", "fileInfoNotAvailable": "파일 정보가 없습니다", - "playbackAuthenticationRequired": "Sign in to the media server again to play this item.", - "playbackServerUnavailable": "The media server is unavailable. Try again later.", - "playbackDataInvalid": "The server returned invalid playback information.", - "playbackCancelled": "Playback was cancelled.", - "playbackFailed": "Playback could not be started.", + "playbackAuthenticationRequired": "이 항목을 재생하려면 미디어 서버에 다시 로그인하세요.", + "playbackServerUnavailable": "미디어 서버를 사용할 수 없습니다. 나중에 다시 시도하세요.", + "playbackDataInvalid": "서버에서 잘못된 재생 정보를 반환했습니다.", + "playbackCancelled": "재생이 취소되었습니다.", + "playbackFailed": "재생을 시작할 수 없습니다.", "errorLoadingFileInfo": "파일 정보 로딩 중 오류: ${error}", "errorLoadingSeries": "시리즈 로딩 중 오류", "musicNotSupported": "음악 재생 미지원", @@ -572,8 +572,8 @@ "noProfilesAvailable": "사용 가능한 프로필이 없습니다", "contactAdminForProfiles": "프로필을 추가하려면 서버 관리자에게 문의하세요", "unableToDetermineLibrarySection": "이 항목의 라이브러리 섹션을 확인할 수 없습니다", - "logsCleared": "로그가 삭제 되었습니다", - "logsCopied": "로그가 클립보드에 복사 되었습니다", + "logsCleared": "로그가 삭제되었습니다", + "logsCopied": "로그가 클립보드에 복사되었습니다", "noLogsAvailable": "사용 가능한 로그가 없습니다", "libraryScanning": "\"${title}\"을(를) 스캔 중입니다...", "libraryScanStarted": "\"${title}\" 미디어 라이브러리 스캔 시작", @@ -581,16 +581,16 @@ "metadataRefreshing": "\"${title}\" 메타데이터 새로고침 중...", "metadataRefreshStarted": "\"${title}\" 메타데이터 새로고침 시작됨", "metadataRefreshFailed": "메타데이터 새로고침 실패: ${error}", - "logoutConfirm": "로그아웃 하시겠습니까?", + "logoutConfirm": "로그아웃하시겠습니까?", "noSeasonsFound": "시즌을 찾을 수 없음", "seasonsLoadFailed": "시즌을 불러오지 못했습니다", "noEpisodesFound": "시즌 1에서 에피소드를 찾을 수 없습니다", "noEpisodesFoundGeneral": "에피소드를 찾을 수 없습니다", "episodesLoadFailed": "에피소드를 불러오지 못했습니다", "noResultsFound": "결과를 찾을 수 없습니다", - "sleepTimerSet": "수면 타이머가 ${label}로 설정 되었습니다", + "sleepTimerSet": "취침 타이머가 ${label}(으)로 설정되었습니다", "noItemsAvailable": "사용 가능한 항목이 없습니다", - "failedToCreatePlayQueueNoItems": "재생 대기열 생성 실패 - 항목 없음", + "failedToCreatePlayQueueNoItems": "재생 대기열을 만들지 못했습니다 — 항목이 없습니다", "failedPlayback": "${action}을(를) 수행할 수 없습니다: ${error}", "switchingToCompatiblePlayer": "호환되는 플레이어로 전환 중...", "serverLimitTitle": "재생 실패", @@ -623,23 +623,23 @@ "renderResolutionVideo": "영상 해상도" }, "mpvConfig": { - "title": "mpv 설정", + "title": "mpv.conf", "description": "고급 비디오 플레이어 설정", - "presets": "사전 설정", - "noPresets": "저장된 사전 설정이 없습니다", + "presets": "프리셋", + "noPresets": "저장된 프리셋이 없습니다", "saveAsPreset": "프리셋으로 저장...", "presetName": "프리셋 이름", "presetNameHint": "이 프리셋의 이름을 입력하세요", - "loadPreset": "로드", + "loadPreset": "불러오기", "deletePreset": "삭제", - "presetSaved": "프리셋이 저장 되었습니다", - "presetLoaded": "프리셋이 로드 되었습니다", - "presetDeleted": "프리셋이 삭제 되었습니다", - "confirmDeletePreset": "이 프리셋을 삭제 하시겠습니까?", + "presetSaved": "프리셋이 저장되었습니다", + "presetLoaded": "프리셋을 불러왔습니다", + "presetDeleted": "프리셋이 삭제되었습니다", + "confirmDeletePreset": "이 프리셋을 삭제하시겠습니까?", "configPlaceholder": "gpu-api=vulkan\nhwdec=auto\n# comment" }, "dialog": { - "confirmAction": "확인" + "confirmAction": "작업 확인" }, "profiles": { "addPlezyProfile": "Plezy 프로필 추가", @@ -687,7 +687,7 @@ "borrowExplain": "다른 프로필의 연결을 빌립니다. PIN으로 보호된 프로필에는 PIN이 필요합니다.", "borrowEmpty": "아직 빌릴 것이 없습니다.", "borrowEmptySubtitle": "먼저 다른 프로필에 Plex 또는 Jellyfin을 연결하세요.", - "borrowLoadFailed": "Available connections could not be loaded. Try again.", + "borrowLoadFailed": "사용 가능한 연결을 불러오지 못했습니다. 다시 시도하세요.", "borrowFromProfile": "${displayName}에서", "borrowConnectionBorrowed": "연결을 빌렸습니다.", "borrowFailed": "연결을 빌리지 못했습니다.", @@ -708,14 +708,14 @@ "addConnection": "연결 추가", "addConnectionSubtitleNoProfile": "Plex로 로그인하거나 Jellyfin 서버에 연결", "addConnectionSubtitleScoped": "${displayName}에 추가: Plex, Jellyfin 또는 다른 프로필 연결", - "sessionExpiredOne": "${name} 의 세션이 만료되었습니다", - "sessionExpiredMany": "${count} 개의 서버에서 세션이 만료되었습니다", + "sessionExpiredOne": "${name}의 세션이 만료되었습니다", + "sessionExpiredMany": "${count}개 서버의 세션이 만료되었습니다", "signInAgain": "다시 로그인", "editJellyfinTitle": "Jellyfin 연결 편집", "editJellyfinIntro": "${serverName}의 URL을 추가하거나 제거하세요. Plezy는 연결 가능한 URL 중 지연 시간이 가장 낮은 URL을 사용합니다." }, "discover": { - "title": "발견", + "title": "둘러보기", "noContentAvailable": "사용 가능한 콘텐츠가 없습니다", "addMediaToLibraries": "미디어 라이브러리에 미디어를 추가해 주세요", "continueWatching": "계속 시청", @@ -774,15 +774,15 @@ "resetFilters": "필터 초기화", "all": "전체", "clearAll": "모두 삭제", - "scanLibraryConfirm": "「${title}」를 스캔 하시겠습니까?", - "analyzeLibraryConfirm": "「${title}」를 분석 하시겠습니까?", - "refreshMetadataConfirm": "「${title}」의 메타데이터를 새로고침 하시겠습니까?", + "scanLibraryConfirm": "「${title}」을(를) 스캔하시겠습니까?", + "analyzeLibraryConfirm": "「${title}」을(를) 분석하시겠습니까?", + "refreshMetadataConfirm": "「${title}」의 메타데이터를 새로고침하시겠습니까?", "emptyTrashConfirm": "${title}의 휴지통을 비우시겠습니까?", "manageLibraries": "미디어 라이브러리 관리", "sort": "정렬", "sortBy": "정렬 기준", "filters": "필터", - "confirmActionMessage": "이 작업을 실행 하시겠습니까?", + "confirmActionMessage": "이 작업을 실행하시겠습니까?", "showLibrary": "미디어 라이브러리 표시", "hideLibrary": "미디어 라이브러리 숨기기", "libraryOptions": "미디어 라이브러리 옵션", @@ -847,7 +847,7 @@ "title": "소개", "openSourceLicenses": "오픈소스 라이선스", "versionLabel": "버전 ${version}", - "appDescription": "아름다운 Flutter용 Plex 및 Jellyfin 클라이언트", + "appDescription": "Flutter로 만든 아름다운 Plex 및 Jellyfin 클라이언트", "viewLicensesDescription": "타사 라이브러리 라이선스 보기" }, "serverSelection": { @@ -870,7 +870,7 @@ "relatedPackages": "관련 소프트웨어 패키지", "license": "라이선스", "licenseNumber": "라이선스 ${number}", - "licensesCount": "${count} 개의 라이선스" + "licensesCount": "${count}개의 라이선스" }, "navigation": { "libraries": "미디어 라이브러리", @@ -951,7 +951,7 @@ "favorites": "즐겨찾기", "reorderFavorites": "즐겨찾기 순서 변경", "favoritesLoadFailed": "즐겨찾기를 불러올 수 없습니다. 연결을 확인하고 다시 시도하세요.", - "favoritesUpdateFailed": "Could not update favorites. Check your connection and try again.", + "favoritesUpdateFailed": "즐겨찾기를 업데이트할 수 없습니다. 연결을 확인하고 다시 시도하세요.", "joinSession": "진행 중인 세션 참여", "watchFromStart": "처음부터 시청 (${minutes}분 전 시작)", "watchLive": "실시간 시청", @@ -1006,7 +1006,7 @@ "errorAddingToCollection": "컬렉션에 추가 실패", "created": "컬렉션 생성됨", "removeFromCollection": "컬렉션에서 제거", - "removeFromCollectionConfirm": "${title}을/를 이 컬렉션에서 제거 하시겠습니까?", + "removeFromCollectionConfirm": "${title}을(를) 이 컬렉션에서 제거하시겠습니까?", "removedFromCollection": "컬렉션에서 제거됨", "removeFromCollectionFailed": "컬렉션에서 제거 실패", "removeFromCollectionError": "컬렉션에서 제거 중 오류 발생: ${error}", @@ -1025,11 +1025,11 @@ "itemCount": "${count}개 항목", "oneItem": "1개 항목", "emptyPlaylist": "이 재생 목록은 비어 있습니다", - "deleteConfirm": "재생 목록을 삭제 하시겠습니까?", - "deleteMessage": "\"${name}\"을(를) 삭제 하시겠습니까?", - "created": "재생 목록이 생성 되었습니다", - "deleted": "재생 목록이 삭제 되었습니다", - "itemAdded": "재생 목록에 추가 되었습니다", + "deleteConfirm": "재생 목록을 삭제하시겠습니까?", + "deleteMessage": "\"${name}\"을(를) 삭제하시겠습니까?", + "created": "재생 목록이 생성되었습니다", + "deleted": "재생 목록이 삭제되었습니다", + "itemAdded": "재생 목록에 추가되었습니다", "itemRemoved": "재생 목록에서 제거됨", "selectPlaylist": "재생 목록 선택", "searchPlaylists": "재생 목록 검색...", @@ -1077,7 +1077,7 @@ "controlModeQuestion": "누가 재생을 제어할 수 있나요?", "hostOnly": "호스트만", "anyone": "누구나", - "hostingSession": "세션 호스팅", + "hostingSession": "세션 호스팅 중", "inSession": "세션 중", "sessionCode": "세션 코드", "openSessionControls": "함께 보기 세션 제어 열기", @@ -1089,18 +1089,18 @@ "participants": "참가자", "host": "호스트", "hostBadge": "호스트", - "youAreHost": "당신은 호스트 입니다", + "youAreHost": "호스트입니다", "watchingWithOthers": "다른 사람과 함께 시청 중", "endSession": "세션 종료", - "leaveSession": "세션 탈퇴", - "endSessionQuestion": "세션을 종료 하시겠습니까?", - "leaveSessionQuestion": "세션을 탈퇴 하시겠습니까?", - "endSessionConfirm": "이 작업은 모든 참가자의 세션을 종료합니다.", - "leaveSessionConfirm": "당신은 세션에서 제거됩니다.", - "endSessionConfirmOverlay": "이것은 모든 참가자의 시청 세션을 종료합니다.", - "leaveSessionConfirmOverlay": "시청 세션 연결이 끊어집니다.", + "leaveSession": "세션 나가기", + "endSessionQuestion": "세션을 종료하시겠습니까?", + "leaveSessionQuestion": "세션에서 나가시겠습니까?", + "endSessionConfirm": "모든 참가자의 세션이 종료됩니다.", + "leaveSessionConfirm": "세션에서 나가게 됩니다.", + "endSessionConfirmOverlay": "모든 참가자의 함께 보기 세션이 종료됩니다.", + "leaveSessionConfirmOverlay": "함께 보기 세션의 연결이 끊어집니다.", "end": "종료", - "leave": "이탈", + "leave": "나가기", "syncing": "동기화 중...", "joinWatchSession": "시청 세션에 참여", "enterCodeHint": "5자리 코드 입력", @@ -1111,23 +1111,23 @@ "failedToCreate": "세션 생성 실패", "failedToJoin": "세션 참여 실패", "sessionCodeCopied": "세션 코드가 클립보드에 복사되었습니다", - "relayUnreachable": "릴레이 서버에 연결할 수 없습니다. ISP 차단으로 Watch Together가 작동하지 않을 수 있습니다.", + "relayUnreachable": "릴레이 서버에 연결할 수 없습니다. ISP 차단으로 함께 보기를 사용하지 못할 수 있습니다.", "reconnectingToHost": "호스트에 재연결 중...", "currentPlayback": "현재 재생", "joinCurrentPlayback": "현재 재생 참여", - "joinCurrentPlaybackDescription": "호스트가 현재 보고 있는 항목으로 돌아갑니다", + "joinCurrentPlaybackDescription": "호스트가 현재 시청 중인 콘텐츠로 이동합니다", "failedToOpenCurrentPlayback": "현재 재생을 열 수 없습니다", "participantJoined": "${name}님이 참여했습니다", "participantLeft": "${name}님이 나갔습니다", "participantPaused": "${name}님이 일시정지했습니다", "participantResumed": "${name}님이 재생했습니다", - "participantSeeked": "${name}님이 탐색했습니다", + "participantSeeked": "${name}님이 재생 위치를 변경했습니다", "participantBuffering": "${name}님이 버퍼링 중입니다", "participantNeedsUpdate": "${name}님이 이전 버전의 앱을 사용 중입니다 — 동기화를 사용할 수 없습니다", "resumingWithout": "${name}님 없이 재생을 재개합니다", "waitingForParticipants": "다른 참가자의 로딩을 기다리는 중...", "waitingForName": "${name}님을 기다리는 중...", - "recentRooms": "최근 방", + "recentRooms": "최근 참여한 방", "renameRoom": "방 이름 변경", "removeRoom": "제거", "guestSwitchUnavailable": "전환할 수 없음 — 동기화 서버를 사용할 수 없습니다", @@ -1148,7 +1148,7 @@ "downloadQueued": "다운로드 대기 중", "downloadResumed": "다운로드를 재개했습니다", "serverErrorBitrate": "서버 오류: 파일이 원격 비트레이트 제한을 초과할 수 있습니다", - "episodesQueued": "${count} 에피소드가 다운로드 대기열에 추가 되었습니다", + "episodesQueued": "에피소드 ${count}개가 다운로드 대기열에 추가되었습니다", "downloadDeleted": "다운로드 삭제됨", "deleteConfirm": "이 기기에서 \"${title}\"을(를) 삭제할까요?", "cancelledDownloadTitle": "취소된 다운로드", @@ -1242,7 +1242,7 @@ "connecting": "연결 중...", "searchingForDevices": "기기 검색 중...", "noDevicesFound": "네트워크에서 기기를 찾을 수 없습니다", - "noDevicesHint": "데스크톱에서 Plezy를 열고 같은 WiFi를 사용하세요", + "noDevicesHint": "데스크톱에서 Plezy를 열고 같은 Wi-Fi를 사용하세요", "availableDevices": "사용 가능한 기기", "manualConnection": "수동 연결", "cryptoInitFailed": "보안 연결을 시작할 수 없습니다. 먼저 Plex에 로그인하세요.", @@ -1263,7 +1263,7 @@ "tabMore": "더 보기", "menu": "메뉴", "tabNavigation": "탭 탐색", - "tabDiscover": "발견", + "tabDiscover": "둘러보기", "tabLibraries": "미디어 라이브러리", "tabSearch": "검색", "tabDownloads": "다운로드", @@ -1507,7 +1507,7 @@ "title": "서비스", "hubSubtitle": "시청 진행률을 동기화하고 새 작품을 요청하세요.", "notConnected": "연결되지 않음", - "connectedAs": "@${username} 로 연결됨", + "connectedAs": "@${username}(으)로 연결됨", "scrobble": "진행률 자동 추적", "scrobbleDescription": "에피소드나 영화를 시청하면 목록을 업데이트합니다.", "disconnectConfirm": "${service} 연결을 해제하시겠습니까?", diff --git a/lib/i18n/nb.i18n.json b/lib/i18n/nb.i18n.json index 532c8fc2..995f7626 100644 --- a/lib/i18n/nb.i18n.json +++ b/lib/i18n/nb.i18n.json @@ -6,7 +6,7 @@ "signInWithPlex": "Logg inn med Plex", "showQRCode": "Vis QR-kode", "authenticate": "Autentiser", - "authenticationTimeout": "Autentiseringen ble tidsavbrutt. Prøv igjen.", + "authenticationTimeout": "Autentiseringen tok for lang tid. Prøv igjen.", "scanQRToSignIn": "Skann denne QR-koden for å logge inn", "waitingForAuth": "Venter på autentisering...\nLogg inn fra nettleseren.", "useBrowser": "Bruk nettleser", @@ -17,7 +17,7 @@ "quickConnectWaiting": "Venter på godkjenning…", "quickConnectCancel": "Avbryt", "quickConnectExpired": "Quick Connect er utløpt. Prøv igjen.", - "localDataRecoveryRequired": "Plezy could not safely recover local sign-in and pending playback data. Please sign in again." + "localDataRecoveryRequired": "Plezy kunne ikke gjenopprette lokale innloggingsdata og ventende avspillingsdata på en sikker måte. Logg inn på nytt." }, "common": { "cancel": "Avbryt", @@ -64,7 +64,7 @@ "loading": "Laster...", "fullscreen": "Fullskjerm", "exitFullscreen": "Avslutt fullskjerm", - "pressBackAgainToExit": "Trykk tilbake igjen for å avslutte" + "pressBackAgainToExit": "Trykk på Tilbake en gang til for å avslutte" }, "screens": { "licenses": "Lisenser", @@ -90,13 +90,13 @@ "theme": "Tema", "appearance": "Utseende", "videoPlayback": "Videoavspilling", - "videoPlaybackDescription": "Konfigurer avspillingsatferd", + "videoPlaybackDescription": "Tilpass avspillingen", "advanced": "Avansert", - "episodePosterMode": "Episodeplakatstil", + "episodePosterMode": "Type episodeplakat", "seriesPoster": "Serieplakat", "seasonPoster": "Sesongplakat", "episodeThumbnail": "Miniatyrbilde", - "showHeroSectionDescription": "Vis fremhevet innholdskarusell på hjemmeskjermen", + "showHeroSectionDescription": "Vis en karusell med fremhevet innhold på startskjermen", "secondsLabel": "Sekunder", "minutesLabel": "Minutter", "secondsShort": "s", @@ -106,16 +106,16 @@ "lightTheme": "Lyst", "darkTheme": "Mørkt", "oledTheme": "OLED", - "libraryDensity": "Bibliotekets tetthet", + "libraryDensity": "Innholdstetthet i biblioteket", "compact": "Kompakt", "comfortable": "Komfortabel", - "tvCornerSpotlightBackdrop": "", - "tvCornerSpotlightBackdropDescription": "", + "tvCornerSpotlightBackdrop": "Fremhevet bakgrunn i hjørnet", + "tvCornerSpotlightBackdropDescription": "Vis fremhevet grafikk øverst til høyre i stedet for å fylle skjermen", "viewMode": "Visningsmodus", "gridView": "Rutenett", "listView": "Liste", "showHeroSection": "Vis fremhevet seksjon", - "continueWatchingAction": "Handling for Fortsett å se", + "continueWatchingAction": "Handling for «Fortsett å se»", "continueWatchingPlay": "Spill av", "continueWatchingDetails": "Åpne detaljer", "episodeAction": "Handling for episoder", @@ -135,8 +135,8 @@ "showEpisodeNumberOnCardsDescription": "Vis sesong- og episodenummer på episodekort", "showSeasonPostersOnTabs": "Vis sesongplakater på faner", "showSeasonPostersOnTabsDescription": "Vis hver sesongs plakat over fanen", - "tvFullCardLayout": "Fulle TV-kort", - "tvFullCardLayoutDescription": "Bruk bildebaserte TV-kort med skuespillernavn lagt over", + "tvFullCardLayout": "Heldekkende TV-kort", + "tvFullCardLayoutDescription": "Bruk TV-kort med bare bilder og skuespillernavn lagt over", "focusGlow": "Fokusglød", "focusGlowDescription": "Vis en myk glød rundt kortet i fokus", "visualEffects": "Visuelle effekter", @@ -147,15 +147,15 @@ "visualEffectsReducedDescription": "Færre animasjoner og grafikk med lavere oppløsning", "hideSpoilers": "Skjul spoilere for usette episoder", "hideSpoilersDescription": "Slør miniatyrbilder og beskrivelser for usette episoder", - "playerBackend": "Spillermotor", + "playerBackend": "Avspillingsmotor", "exoPlayer": "ExoPlayer", "mpv": "mpv", "hardwareDecoding": "Maskinvaredekoding", "hardwareDecodingDescription": "Bruk maskinvareakselerasjon når tilgjengelig", "bufferSize": "Bufferstørrelse", - "bufferSizeMB": "${size}MB", - "bufferSizeAuto": "Auto (Anbefalt)", - "bufferSizeWarning": "${heap}MB minne tilgjengelig. En buffer på ${size}MB kan påvirke avspilling.", + "bufferSizeMB": "${size} MB", + "bufferSizeAuto": "Automatisk (anbefalt)", + "bufferSizeWarning": "${heap} MB minne tilgjengelig. En buffer på ${size} MB kan påvirke avspillingen.", "defaultQualityTitle": "Standardkvalitet", "musicQualityTitle": "Musikkvalitet", "subtitleStyling": "Undertekststil", @@ -164,7 +164,7 @@ "largeSkipDuration": "Lang hoppvarighet", "rewindOnResume": "Spol tilbake ved gjenopptakelse", "secondsUnit": "${seconds} sekunder", - "defaultSleepTimer": "Standard søvntimer", + "defaultSleepTimer": "Standard innsovningstimer", "minutesUnit": "${minutes} minutter", "rememberTrackSelections": "Husk sporvalg per serie/film", "rememberTrackSelectionsDescription": "Husk lyd- og undertekstvalg per tittel", @@ -177,10 +177,10 @@ "keyboardShortcutsDescription": "Tilpass tastatursnarveier", "videoPlayerNavigation": "Videospillernavigering", "videoPlayerNavigationDescription": "Bruk piltaster for å navigere videospillerkontroller", - "watchTogetherRelay": "Se Sammen-relay", - "watchTogetherRelayDescription": "Angi en egendefinert relay. Alle må bruke samme server.", + "watchTogetherRelay": "Reléserver for Se sammen", + "watchTogetherRelayDescription": "Angi en egendefinert reléserver. Alle må bruke samme server.", "watchTogetherRelayHint": "https://min-relay.eksempel.no", - "watchTogetherRelayInvalid": "Enter a valid HTTP or HTTPS relay base URL.", + "watchTogetherRelayInvalid": "Angi en gyldig HTTP- eller HTTPS-adresse til reléserveren.", "crashReporting": "Krasjrapportering", "crashReportingDescription": "Send krasjrapporter for å hjelpe med å forbedre appen", "debugLogging": "Feilsøkingslogging", @@ -215,7 +215,7 @@ "validationErrorDuration": "Varigheten må være mellom ${min} og ${max} ${unit}", "shortcutAlreadyAssigned": "Snarvei allerede tilordnet til ${action}", "shortcutUpdated": "Snarvei oppdatert for ${action}", - "saveFailed": "Could not save changes. Try again.", + "saveFailed": "Kunne ikke lagre endringene. Prøv igjen.", "autoSkip": "Automatisk hopp", "autoSkipIntro": "Hopp over intro automatisk", "autoSkipIntroDescription": "Hopp automatisk over intromarkører etter noen sekunder", @@ -242,37 +242,37 @@ "downloadLocationReset": "Nedlastingsplassering tilbakestilt til standard", "downloadLocationInvalid": "Valgt mappe er ikke skrivbar", "downloadLocationPickerUnavailable": "Mappevalg er ikke tilgjengelig på denne enheten", - "downloadOnWifiOnly": "Last ned kun på WiFi", - "downloadOnWifiOnlyDescription": "Forhindre nedlastinger på mobildata", - "autoRemoveWatchedDownloads": "Fjern sette nedlastinger automatisk", - "autoRemoveWatchedDownloadsDescription": "Slett sette nedlastinger automatisk", - "cellularDownloadBlocked": "Nedlastinger er blokkert på mobilnett. Bruk WiFi eller endre innstillingen.", - "maxVolume": "Maks volum", - "maxVolumeDescription": "Tillat volumforsterkning over 100% for stille media", - "maxVolumePercent": "${percent}%", + "downloadOnWifiOnly": "Last bare ned via Wi-Fi", + "downloadOnWifiOnlyDescription": "Forhindre nedlasting via mobildata", + "autoRemoveWatchedDownloads": "Fjern avspilte nedlastinger automatisk", + "autoRemoveWatchedDownloadsDescription": "Slett avspilte nedlastinger automatisk", + "cellularDownloadBlocked": "Nedlastinger er blokkert på mobilnett. Bruk Wi-Fi eller endre innstillingen.", + "maxVolume": "Maksvolum", + "maxVolumeDescription": "Tillat volumforsterkning over 100 % for medier med lavt lydnivå", + "maxVolumePercent": "${percent} %", "discordRichPresence": "Discord Rich Presence", "discordRichPresenceDescription": "Vis hva du ser på Discord", "services": "Tjenester", "servicesDescription": "Koble til Trakt, MyAnimeList, Seerr og mer", "manageLibrariesDescription": "Omorganiser og skjul biblioteker", - "companionRemoteServer": "Companion Remote-server", - "companionRemoteServerDescription": "Tillat mobilenheter på nettverket ditt å styre denne appen", - "autoPip": "Auto bilde-i-bilde", - "autoPipDescription": "Gå til bilde-i-bilde når du forlater under avspilling", + "companionRemoteServer": "Fjernkontrollserver", + "companionRemoteServerDescription": "La mobilenheter på nettverket styre denne appen", + "autoPip": "Automatisk bilde-i-bilde", + "autoPipDescription": "Åpne bilde-i-bilde når du forlater appen under avspilling", "matchContentFrameRate": "Tilpass innholdets bildefrekvens", "matchContentFrameRateDescription": "Tilpass skjermens oppdateringsfrekvens til videoinnhold", "matchRefreshRate": "Tilpass oppdateringsfrekvens", "matchRefreshRateDescription": "Tilpass skjermens oppdateringsfrekvens i fullskjerm", - "matchDynamicRange": "Tilpass dynamisk område", + "matchDynamicRange": "Tilpass dynamikkområde", "matchDynamicRangeDescription": "Slå på HDR for HDR-innhold, og deretter tilbake til SDR", "displaySwitchDelay": "Forsinkelse ved skjermbytte", "tunneledPlayback": "Tunnelert avspilling", "tunneledPlaybackDescription": "Bruk videotunneling. Slå av hvis HDR-avspilling viser svart video.", - "audioPassthrough": "Lydgjennomgang", + "audioPassthrough": "Direkte lydutgang", "audioPassthroughDescription": "Send Dolby/DTS-lyd til mottakeren eller TV-en uten omkoding, slik at surroundlyd bevares. Slå av hvis du ikke har lyd.", - "audioPassthroughDescriptionAppleTv": "Overlater Dolby Digital Plus (inkl. Atmos) til systemet som bitstream. DTS og TrueHD spilles fortsatt av som flerkanals PCM. Korte lydbrudd kan forekomme ved søking.", + "audioPassthroughDescriptionAppleTv": "Bruk Apples innebygde Dolby-dekoder for Dolby Digital Plus, inkludert Atmos. DTS og TrueHD spilles fortsatt av som flerkanals PCM. Slå av hvis du ikke har lyd.", "audioDownmix": "Nedmiks til stereo", - "audioDownmixDescription": "Mikser surroundlyd ned til to kanaler for stereohøyttalere eller hodetelefoner", + "audioDownmixDescription": "Miks surroundlyd ned til to kanaler for stereohøyttalere eller hodetelefoner", "downmixCenterBoost": "Forsterkning av senterkanal", "downmixCenterBoostValue": "${db} dB", "downmixCenterBoostLabel": "Forsterkning (dB)", @@ -282,7 +282,7 @@ "atmosDiagnostics": "Atmos-utgangstest", "atmosDiagnosticsDescription": "Diagnostiser Dolby Atmos-utgangen ved å spille testsignaler gjennom systemspilleren", "atmosTestHlsAtmos": "Apple Atmos-strøm", - "atmosTestHlsAtmosDescription": "Kjent god Dolby Atmos-strøm. Mottakeren bør vise Dolby Atmos.", + "atmosTestHlsAtmosDescription": "Verifisert Dolby Atmos-strøm. Mottakeren bør vise Dolby Atmos.", "atmosTestHlsControl": "Apple surround-strøm", "atmosTestHlsControlDescription": "Kontrollstrøm uten Atmos. Mottakeren bør vise surround uten Atmos.", "atmosTestRawStream": "Rå EAC3-strøm", @@ -295,15 +295,15 @@ "atmosTestUrlMissing": "Angi testfilens URL først", "atmosTestStatus": "Status", "dvConversionMode": "Dolby Vision-konvertering", - "dvConversionModeDescription": "Velg hvordan ExoPlayer håndterer Dolby Vision Profile 7-filer.", - "dvConversionAuto": "Auto", - "dvConversionNative": "Innebygd / deaktivert", + "dvConversionModeDescription": "Velg hvordan ExoPlayer håndterer filer med Dolby Vision-profil 7.", + "dvConversionAuto": "Automatisk", + "dvConversionNative": "Nativ / deaktivert", "dvConversionDv81": "P7 → P8.1", "dvConversionHevcStrip": "P7 → HEVC", - "dvConversionAutoDescription": "Bruk enhetens kapabilitetsdeteksjon og normal reserveoppførsel", - "dvConversionNativeDescription": "Tving native DV7 og undertrykk forsøk på DV-konvertering", - "dvConversionDv81Description": "Tving inline RPU-konvertering til Dolby Vision profil 8.1", - "dvConversionHevcStripDescription": "Fjern Dolby Vision RPU/EL-lag og presenter vanlig HEVC", + "dvConversionAutoDescription": "Oppdag enhetens egenskaper og bruk vanlig reserveoppførsel", + "dvConversionNativeDescription": "Tving opprinnelig DV7-avspilling og ikke prøv DV-konvertering på nytt", + "dvConversionDv81Description": "Tving direkte RPU-konvertering til Dolby Vision-profil 8.1", + "dvConversionHevcStripDescription": "Fjern Dolby Vision RPU/EL-lag og lever som vanlig HEVC", "requireProfileSelectionOnOpen": "Spør om profil ved appåpning", "requireProfileSelectionOnOpenDescription": "Vis profilvalg hver gang appen åpnes", "forceTvMode": "Tving TV-modus", @@ -313,12 +313,12 @@ "exitFullscreenOnPlayerClose": "Avslutt fullskjerm ved lukking av avspiller", "exitFullscreenOnPlayerCloseDescription": "Avslutt fullskjerm automatisk når videospilleren lukkes", "autoHidePerformanceOverlay": "Skjul ytelsesoverlegg automatisk", - "autoHidePerformanceOverlayDescription": "Fade ytelsesoverlegget med avspillingskontrollene", - "showNavBarLabels": "Vis navigasjonsfeltlabeler", - "showNavBarLabelsDescription": "Vis tekstlabeler under navigasjonsfeltikoner", - "startupSection": "Oppstartsseksjon", - "liveTvDefaultFavorites": "Standard til favorittkanaler", - "liveTvDefaultFavoritesDescription": "Vis kun favorittkanaler når du åpner Live TV", + "autoHidePerformanceOverlayDescription": "Ton ytelsesoverlegget ut sammen med avspillingskontrollene", + "showNavBarLabels": "Vis etiketter i navigasjonsfeltet", + "showNavBarLabelsDescription": "Vis tekstetiketter under ikonene i navigasjonsfeltet", + "startupSection": "Startseksjon", + "liveTvDefaultFavorites": "Vis favorittkanaler som standard", + "liveTvDefaultFavoritesDescription": "Vis bare favorittkanaler når du åpner Direkte-TV", "display": "Skjerm", "homeScreen": "Hjemmeskjerm", "navigation": "Navigering", @@ -326,8 +326,8 @@ "content": "Innhold", "player": "Spiller", "subtitlesAndConfig": "Undertekster og konfigurasjon", - "seekAndTiming": "Søk og tidtaking", - "behavior": "Atferd" + "seekAndTiming": "Spoling og tidsinnstillinger", + "behavior": "Oppførsel" }, "search": { "hint": "Søk i filmer, serier, musikk...", @@ -348,9 +348,9 @@ "volumeDown": "Volum ned", "seekForward": "Spol fremover (${seconds}s)", "seekBackward": "Spol bakover (${seconds}s)", - "fullscreenToggle": "Veksle fullskjerm", - "muteToggle": "Veksle demping", - "subtitleToggle": "Veksle undertekster", + "fullscreenToggle": "Slå fullskjerm av/på", + "muteToggle": "Slå lyddemping av/på", + "subtitleToggle": "Slå undertekster av/på", "audioTrackNext": "Neste lydspor", "subtitleTrackNext": "Neste undertekstspor", "chapterNext": "Neste kapittel", @@ -365,7 +365,7 @@ "zoomReset": "Tilbakestill zoom", "subSeekNext": "Spol til neste undertekst", "subSeekPrev": "Spol til forrige undertekst", - "shaderToggle": "Veksle shadere", + "shaderToggle": "Slå shadere av/på", "skipMarker": "Hopp over intro/rulletekst", "screenshot": "Ta skjermbilde" } @@ -392,7 +392,7 @@ "overallBitrate": "Total bitrate", "path": "Sti", "size": "Størrelse", - "container": "Beholder", + "container": "Format", "duration": "Varighet", "optimizedForStreaming": "Optimalisert for strømming", "has64bitOffsets": "64-biters forskyvninger" @@ -404,7 +404,7 @@ "viewDetails": "Vis detaljer", "goToSeries": "Gå til serie", "shufflePlay": "Tilfeldig avspilling", - "shuffleNotAvailableOffline": "Tilfeldig avspilling er ikke tilgjengelig offline", + "shuffleNotAvailableOffline": "Tilfeldig avspilling er ikke tilgjengelig uten nett", "fileInfo": "Filinformasjon", "deleteFromServer": "Slett fra server", "confirmDelete": "Slette dette mediet og filene fra serveren?", @@ -444,7 +444,7 @@ "expandText": "Utvid tekst", "collapseText": "Fold sammen tekst", "alphabetNavigation": "Alfabetisk navigasjon", - "alphabetScrollHint": "Sveip opp eller ned for å flytte én bokstav", + "alphabetScrollHint": "Sveip opp eller ned for å gå én bokstav om gangen", "rowColumnPosition": "Rad ${row} av ${rowCount}, kolonne ${column} av ${columnCount}", "rowPosition": "Rad ${row} av ${rowCount}" }, @@ -472,7 +472,7 @@ "lockRotation": "Lås rotasjon", "unlockRotation": "Lås opp rotasjon", "timerActive": "Timer aktiv", - "playbackWillPauseIn": "Avspilling vil pause om ${duration}", + "playbackWillPauseIn": "Avspillingen settes på pause om ${duration}", "sleepTimerEndOfVideo": "Slutten av gjeldende video", "sleepTimerStopAtHeader": "Stopp ved", "sleepTimerDurationHeader": "Timer", @@ -480,12 +480,12 @@ "stillWatching": "Ser du fortsatt?", "pausingIn": "Pauser om ${seconds}s", "continueWatching": "Fortsett", - "autoPlayNext": "Spill neste automatisk", + "autoPlayNext": "Spill av neste automatisk", "playNext": "Spill neste", "playButton": "Spill av", "pauseButton": "Pause", - "showPlaybackControls": "", - "hidePlaybackControls": "", + "showPlaybackControls": "Vis avspillingskontroller", + "hidePlaybackControls": "Skjul avspillingskontroller", "seekBackwardButton": "Spol tilbake ${seconds} sekunder", "seekForwardButton": "Spol fremover ${seconds} sekunder", "previousButton": "Forrige episode", @@ -513,14 +513,14 @@ "rotationLockButton": "Rotasjonslås", "lockScreen": "Lås skjerm", "screenLockButton": "Skjermlås", - "longPressToUnlock": "Langt trykk for å låse opp", + "longPressToUnlock": "Trykk og hold for å låse opp", "timelineSlider": "Videotidslinje", "volumeSlider": "Volumnivå", "endsAt": "Slutter kl. ${time}", "pipActive": "Spiller i bilde-i-bilde", "pipFailed": "Bilde-i-bilde kunne ikke starte", "screenshotSaved": "Skjermbilde lagret", - "zoomPercent": "Zoom ${percent}%", + "zoomPercent": "Zoom ${percent} %", "pipErrors": { "androidVersion": "Krever Android 8.0 eller nyere", "iosVersion": "Krever iOS 15.0 eller nyere", @@ -553,19 +553,19 @@ "markedAsUnwatchedOffline": "Merket som usett (synkroniseres når tilkoblet)", "autoRemovedWatchedDownload": "Automatisk fjernet: ${title}", "autoRemovedWatchedDownloads": { - "one": "Fjernet automatisk ${n} sett nedlasting", - "other": "Fjernet automatisk ${n} sette nedlastinger" + "one": "Fjernet automatisk ${n} avspilt nedlasting", + "other": "Fjernet automatisk ${n} avspilte nedlastinger" }, "removedFromContinueWatching": "Fjernet fra Fortsett å se", "errorLoading": "Feil: ${error}", "streamInterrupted": "Avspillingen ble avbrutt. Trykk på Spill av eller spol for å prøve på nytt.", "liveStreamInterrupted": "Direktesendingen ble avbrutt. Trykk på Spill av for å prøve på nytt.", "fileInfoNotAvailable": "Filinformasjon ikke tilgjengelig", - "playbackAuthenticationRequired": "Sign in to the media server again to play this item.", - "playbackServerUnavailable": "The media server is unavailable. Try again later.", - "playbackDataInvalid": "The server returned invalid playback information.", - "playbackCancelled": "Playback was cancelled.", - "playbackFailed": "Playback could not be started.", + "playbackAuthenticationRequired": "Logg inn på medieserveren på nytt for å spille av dette elementet.", + "playbackServerUnavailable": "Medieserveren er utilgjengelig. Prøv igjen senere.", + "playbackDataInvalid": "Serveren returnerte ugyldig avspillingsinformasjon.", + "playbackCancelled": "Avspillingen ble avbrutt.", + "playbackFailed": "Kunne ikke starte avspillingen.", "errorLoadingFileInfo": "Feil ved lasting av filinformasjon: ${error}", "errorLoadingSeries": "Feil ved lasting av serie", "musicNotSupported": "Musikkavspilling støttes ikke ennå", @@ -589,7 +589,7 @@ "noEpisodesFoundGeneral": "Ingen episoder funnet", "episodesLoadFailed": "Kunne ikke laste episoder", "noResultsFound": "Ingen resultater funnet", - "sleepTimerSet": "Søvntimer satt til ${label}", + "sleepTimerSet": "Innsovningstimer satt til ${label}", "noItemsAvailable": "Ingen elementer tilgjengelig", "failedToCreatePlayQueueNoItems": "Kunne ikke opprette avspillingskø – ingen elementer", "failedPlayback": "Kunne ikke ${action}: ${error}", @@ -688,7 +688,7 @@ "borrowExplain": "Lån en annen profils tilkobling. PIN-beskyttede profiler krever PIN.", "borrowEmpty": "Ingenting å låne enda.", "borrowEmptySubtitle": "Koble Plex eller Jellyfin til en annen profil først.", - "borrowLoadFailed": "Available connections could not be loaded. Try again.", + "borrowLoadFailed": "Kunne ikke laste inn tilgjengelige tilkoblinger. Prøv igjen.", "borrowFromProfile": "Fra ${displayName}", "borrowConnectionBorrowed": "Tilkobling lånt.", "borrowFailed": "Kunne ikke låne tilkoblingen.", @@ -717,7 +717,7 @@ }, "discover": { "title": "Oppdag", - "noContentAvailable": "Ingen innhold tilgjengelig", + "noContentAvailable": "Ikke noe innhold tilgjengelig", "addMediaToLibraries": "Legg til medier i bibliotekene dine", "continueWatching": "Fortsett å se", "continueWatchingIn": "Fortsett å se i ${library}", @@ -731,7 +731,7 @@ "playEpisode": "S${season}E${episode}", "overview": "Oversikt", "cast": "Skuespillere", - "extras": "Trailere og ekstra", + "extras": "Trailere og ekstramateriale", "studio": "Studio", "rating": "Vurdering", "movie": "Film", @@ -823,7 +823,7 @@ }, "sortLabels": { "title": "Tittel", - "dateAdded": "Lagt til-dato", + "dateAdded": "Dato lagt til", "releaseDate": "Utgivelsesdato", "rating": "Vurdering", "communityRating": "Fellesskapsvurdering", @@ -846,7 +846,7 @@ }, "about": { "title": "Om", - "openSourceLicenses": "Åpen kildekode-lisenser", + "openSourceLicenses": "Lisenser for åpen kildekode", "versionLabel": "Versjon ${version}", "appDescription": "En vakker Plex- og Jellyfin-klient for Flutter", "viewLicensesDescription": "Vis lisenser for tredjepartsbiblioteker" @@ -886,15 +886,15 @@ "watchlist": "Ønskeliste", "recommendedMovies": "Anbefalte filmer", "recommendedShows": "Anbefalte serier", - "trendingMovies": "Trending filmer", - "trendingShows": "Trending serier", + "trendingMovies": "Populære filmer nå", + "trendingShows": "Populære serier nå", "popularMovies": "Populære filmer", "popularShows": "Populære serier", - "trendingAnime": "Anime som trender", + "trendingAnime": "Populær anime nå", "suggestedAnime": "Foreslått anime", "airingAnime": "Topp pågående anime", - "popularAnime": "Mest populære anime", - "trending": "Trending", + "popularAnime": "Mest populær anime", + "trending": "Populært nå", "upcomingMovies": "Kommende filmer", "upcomingShows": "Kommende serier" }, @@ -948,12 +948,12 @@ "daytime": "Dagtid", "evening": "Kveld", "lateNight": "Sen kveld", - "whatsOn": "Hva går nå", + "whatsOn": "På TV nå", "watchChannel": "Se kanal", "favorites": "Favoritter", "reorderFavorites": "Endre rekkefølge på favoritter", "favoritesLoadFailed": "Kunne ikke laste inn favoritter. Kontroller tilkoblingen og prøv på nytt.", - "favoritesUpdateFailed": "Could not update favorites. Check your connection and try again.", + "favoritesUpdateFailed": "Kunne ikke oppdatere favorittene. Kontroller tilkoblingen og prøv på nytt.", "joinSession": "Bli med i pågående økt", "watchFromStart": "Se fra starten (${minutes} min siden)", "watchLive": "Se direkte", @@ -988,8 +988,8 @@ "editRule": "Rediger regel", "editRuleAction": "Rediger", "recordingRuleUpdated": "Opptaksregel oppdatert", - "guideReloadRequested": "Forespurte guide-oppdatering", - "rulesProcessRequested": "Forespurte regelevaluering", + "guideReloadRequested": "Oppdatering av programguiden er forespurt", + "rulesProcessRequested": "Ny vurdering av reglene er forespurt", "recordShow": "Ta opp program" }, "collections": { @@ -1114,7 +1114,7 @@ "failedToCreate": "Kunne ikke opprette økt", "failedToJoin": "Kunne ikke bli med i økt", "sessionCodeCopied": "Øktkode kopiert til utklippstavle", - "relayUnreachable": "Relay-serveren kan ikke nås. ISP-blokkering kan hindre Watch Together.", + "relayUnreachable": "Reléserveren kan ikke nås. Blokkering hos internettleverandøren kan hindre Se sammen.", "reconnectingToHost": "Kobler til verten på nytt...", "currentPlayback": "Gjeldende avspilling", "joinCurrentPlayback": "Bli med i gjeldende avspilling", @@ -1122,13 +1122,13 @@ "failedToOpenCurrentPlayback": "Kunne ikke åpne gjeldende avspilling", "participantJoined": "${name} ble med", "participantLeft": "${name} forlot", - "participantPaused": "${name} pauset", - "participantResumed": "${name} gjenopptok", - "participantSeeked": "${name} spolet", + "participantPaused": "${name} satte avspillingen på pause", + "participantResumed": "${name} startet avspillingen igjen", + "participantSeeked": "${name} endret avspillingsposisjonen", "participantBuffering": "${name} buffrer", "participantNeedsUpdate": "${name} bruker en eldre appversjon — synkronisering er ikke tilgjengelig", "resumingWithout": "Fortsetter uten ${name}", - "waitingForParticipants": "Venter på at andre laster inn...", + "waitingForParticipants": "Venter på at de andre skal laste inn...", "waitingForName": "Venter på ${name}...", "recentRooms": "Nylige rom", "renameRoom": "Gi nytt navn til rom", @@ -1223,7 +1223,7 @@ "deleteShaderConfirm": "Slette \"${name}\"?" }, "companionRemote": { - "title": "Følgesvenn-fjernkontroll", + "title": "Fjernkontroll", "connectedTo": "Tilkoblet ${name}", "unknownDevice": "Ukjent enhet", "session": { @@ -1232,7 +1232,7 @@ "connected": "Tilkoblet", "serverRunning": "Fjernserver aktiv", "serverStopped": "Fjernserver stoppet", - "serverRunningDescription": "Mobile enheter på nettverket ditt kan koble til denne appen", + "serverRunningDescription": "Mobilenheter på nettverket ditt kan koble til denne appen", "serverStoppedDescription": "Start serveren for å la mobilenheter koble til", "usePhoneToControl": "Bruk mobilenheten din til å styre denne appen", "startServer": "Start server", @@ -1245,7 +1245,7 @@ "connecting": "Kobler til...", "searchingForDevices": "Søker etter enheter...", "noDevicesFound": "Ingen enheter funnet på nettverket ditt", - "noDevicesHint": "Åpne Plezy på desktop og bruk samme WiFi", + "noDevicesHint": "Åpne Plezy på datamaskinen, og bruk samme Wi-Fi", "availableDevices": "Tilgjengelige enheter", "manualConnection": "Manuell tilkobling", "cryptoInitFailed": "Kunne ikke starte sikker tilkobling. Logg inn på Plex først.", @@ -1283,7 +1283,7 @@ "fullscreen": "Fullskjerm", "subtitles": "Undertekster", "audio": "Lyd", - "searchHint": "Søk på stasjonær..." + "searchHint": "Søk på datamaskinen..." }, "errors": { "noNetworkInterface": "Fant ingen nettverksgrensesnitt", @@ -1301,13 +1301,13 @@ "normalSpeed": "Normal", "sleepTimerActive": "Aktiv (${duration})", "zoom": "Zoom", - "sleepTimer": "Søvntimer", + "sleepTimer": "Innsovningstimer", "audioSync": "Lydsynkronisering", "subtitleSync": "Undertekstsynkronisering", "hdr": "HDR", "audioOutput": "Lydutgang", "performanceOverlay": "Ytelsesoverlegg", - "audioPassthrough": "Lydgjennomgang", + "audioPassthrough": "Direkte lydutgang", "audioNormalization": "Normaliser lydstyrke", "audioDownmix": "Nedmiks til stereo" }, @@ -1330,10 +1330,10 @@ "matrix": "Matrise", "primaries": "Primærfarger", "transfer": "Overføring", - "renderFps": "Render-FPS", + "renderFps": "Gjengivelses-FPS", "displayFps": "Skjerm-FPS", "avSync": "A/V-synk", - "dropped": "Droppet", + "dropped": "Tapte", "dvRpus": "DV RPU-er", "dvRpuAverage": "DV RPU snitt", "dvSampleAverage": "DV-sample snitt", @@ -1341,8 +1341,8 @@ "minLuma": "Min luma", "maxCll": "MaxCLL", "maxFall": "MaxFALL", - "cacheUsed": "Cache brukt", - "cacheLimit": "Cachegrense", + "cacheUsed": "Brukt hurtigbuffer", + "cacheLimit": "Grense for hurtigbuffer", "speed": "Hastighet", "player": "Spiller", "memory": "Minne", @@ -1369,14 +1369,14 @@ "metadataEdit": { "editMetadata": "Rediger...", "screenTitle": "Rediger metadata", - "basicInfo": "Grunnleggende info", - "artwork": "Kunstverk", + "basicInfo": "Grunnleggende informasjon", + "artwork": "Grafikk", "advancedSettings": "Avanserte innstillinger", "title": "Tittel", - "sortTitle": "Sorteringsstittel", + "sortTitle": "Sorteringstittel", "originalTitle": "Originaltittel", "releaseDate": "Utgivelsesdato", - "contentRating": "Innholdsvurdering", + "contentRating": "Aldersgrense", "studio": "Studio", "tagline": "Slagord", "summary": "Sammendrag", @@ -1394,11 +1394,11 @@ "imageUrl": "Bilde-URL", "metadataUpdated": "Metadata oppdatert", "metadataUpdateFailed": "Kunne ikke oppdatere metadata", - "artworkUpdated": "Kunstverk oppdatert", - "artworkUpdateFailed": "Kunne ikke oppdatere kunstverk", - "noArtworkAvailable": "Ingen kunstverk tilgjengelig", - "artworkOption": "Alternativ for kunstverk ${index}", - "selectedArtworkOption": "Alternativ for kunstverk ${index}, valgt", + "artworkUpdated": "Grafikk oppdatert", + "artworkUpdateFailed": "Kunne ikke oppdatere grafikken", + "noArtworkAvailable": "Ingen grafikk tilgjengelig", + "artworkOption": "Grafikkalternativ ${index}", + "selectedArtworkOption": "Grafikkalternativ ${index}, valgt", "notSet": "Ikke angitt", "libraryDefault": "Bibliotekstandard", "accountDefault": "Kontostandard", @@ -1445,14 +1445,14 @@ "mood": "Stemning" }, "matchScreen": { - "match": "Match...", - "fixMatch": "Rett match...", - "unmatch": "Fjern match", - "unmatchConfirm": "Fjerne denne matchen? Plex behandler den som umatchet til den matches igjen.", - "unmatchSuccess": "Match fjernet", - "unmatchFailed": "Kunne ikke fjerne match", - "matchApplied": "Match anvendt", - "matchFailed": "Kunne ikke anvende match", + "match": "Finn treff...", + "fixMatch": "Korriger treff...", + "unmatch": "Fjern treff", + "unmatchConfirm": "Fjerne dette treffet? Plex behandler elementet som uten treff til det matches på nytt.", + "unmatchSuccess": "Treff fjernet", + "unmatchFailed": "Kunne ikke fjerne treff", + "matchApplied": "Treff valgt", + "matchFailed": "Kunne ikke velge treff", "titleHint": "Tittel", "yearHint": "År", "search": "Søk", @@ -1471,8 +1471,8 @@ "disconnectConfirmBody": "Plezy slutter å sende hendelser til Trakt. Du kan koble til igjen når som helst.", "scrobble": "Sanntids-scrobbling", "scrobbleDescription": "Send avspillings-, pause- og stopphendelser til Trakt under avspilling.", - "watchedSync": "Synkroniser sett-status", - "watchedSyncDescription": "Når du markerer noe som sett i Plezy, markeres det også på Trakt." + "watchedSync": "Synkroniser settstatus", + "watchedSyncDescription": "Når du markerer elementer som sett i Plezy, markeres de også som sett på Trakt." }, "seerr": { "title": "Seerr", @@ -1488,8 +1488,8 @@ "instance": "Instans", "disconnectConfirm": "Koble fra Seerr?", "disconnectConfirmBody": "Plezy glemmer denne Seerr-instansen. Koble til igjen når som helst.", - "request": "Forespør", - "request4k": "Forespør i 4K", + "request": "Be om", + "request4k": "Be om i 4K", "seasons": "Sesonger", "allSeasons": "Alle sesonger", "advancedOptions": "Avansert", @@ -1544,8 +1544,8 @@ "subtitleBlocked": "${count} blokkert", "subtitleAllowed": "${count} tillatt", "mode": "Filtermodus", - "modeBlacklist": "Svarteliste", - "modeWhitelist": "Hviteliste", + "modeBlacklist": "Blokkeringsliste", + "modeWhitelist": "Tillatelsesliste", "modeHintBlacklist": "Synkroniser alle biblioteker bortsett fra dem du markerer nedenfor.", "modeHintWhitelist": "Synkroniser kun bibliotekene du markerer nedenfor.", "libraries": "Biblioteker", @@ -1561,19 +1561,19 @@ "localServers": "Lokale Jellyfin-servere", "username": "Brukernavn", "password": "Passord", - "signIn": "Logg på", + "signIn": "Logg inn", "change": "Endre", "required": "Påkrevd", "couldNotReachServer": "Kunne ikke nå serveren: ${error}", - "signInFailed": "Pålogging mislyktes: ${error}", + "signInFailed": "Innlogging mislyktes: ${error}", "quickConnectFailed": "Quick Connect mislyktes: ${error}", - "addPlexTitle": "Logg på med Plex", - "pinExpired": "PIN-koden gikk ut før pålogging. Prøv igjen.", + "addPlexTitle": "Logg inn med Plex", + "pinExpired": "PIN-koden utløp før innloggingen var fullført. Prøv igjen.", "failedToRegisterAccount": "Kunne ikke registrere kontoen: ${error}", "enterJellyfinUrlError": "Oppgi URL-en til Jellyfin-serveren din", "addConnectionTitle": "Legg til tilkobling", - "addConnectionTitleScoped": "Legg til i ${name}", - "signInWithPlexCard": "Logg på med Plex", + "addConnectionTitleScoped": "Legg til for ${name}", + "signInWithPlexCard": "Logg inn med Plex", "signInWithPlexCardSubtitle": "Autoriser denne enheten. Delte servere legges til.", "signInWithPlexCardSubtitleScoped": "Autoriser en Plex-konto. Home-brukere blir profiler.", "connectToJellyfinCard": "Koble til Jellyfin", diff --git a/lib/i18n/nl.i18n.json b/lib/i18n/nl.i18n.json index 4c50e2b8..82061efb 100644 --- a/lib/i18n/nl.i18n.json +++ b/lib/i18n/nl.i18n.json @@ -17,7 +17,7 @@ "quickConnectWaiting": "Wachten op goedkeuring…", "quickConnectCancel": "Annuleren", "quickConnectExpired": "Quick Connect is verlopen. Probeer opnieuw.", - "localDataRecoveryRequired": "Plezy could not safely recover local sign-in and pending playback data. Please sign in again." + "localDataRecoveryRequired": "Plezy kon lokale aanmeldings- en openstaande afspeelgegevens niet veilig herstellen. Meld je opnieuw aan." }, "common": { "cancel": "Annuleren", @@ -48,7 +48,7 @@ "search": "Zoeken", "home": "Home", "back": "Terug", - "settings": "Opties", + "settings": "Instellingen", "mute": "Dempen", "ok": "OK", "off": "Uit", @@ -69,7 +69,7 @@ "screens": { "licenses": "Licenties", "switchProfile": "Wissel van profiel", - "subtitleStyling": "Ondertitel opmaak", + "subtitleStyling": "Ondertitelopmaak", "mpvConfig": "mpv.conf", "logs": "Logbestanden" }, @@ -92,11 +92,11 @@ "videoPlayback": "Video afspelen", "videoPlaybackDescription": "Afspeelgedrag configureren", "advanced": "Geavanceerd", - "episodePosterMode": "Aflevering poster stijl", - "seriesPoster": "Serie poster", - "seasonPoster": "Seizoen poster", + "episodePosterMode": "Stijl van afleveringsposter", + "seriesPoster": "Serieposter", + "seasonPoster": "Seizoensposter", "episodeThumbnail": "Miniatuur", - "showHeroSectionDescription": "Toon uitgelichte inhoud carrousel op startscherm", + "showHeroSectionDescription": "Toon de carrousel met uitgelichte inhoud op het startscherm", "secondsLabel": "Seconden", "minutesLabel": "Minuten", "secondsShort": "s", @@ -106,23 +106,23 @@ "lightTheme": "Licht", "darkTheme": "Donker", "oledTheme": "OLED", - "libraryDensity": "Bibliotheek dichtheid", + "libraryDensity": "Bibliotheekdichtheid", "compact": "Compact", "comfortable": "Comfortabel", - "tvCornerSpotlightBackdrop": "", - "tvCornerSpotlightBackdropDescription": "", + "tvCornerSpotlightBackdrop": "Uitgelichte achtergrond in de hoek", + "tvCornerSpotlightBackdropDescription": "Toon de uitgelichte afbeelding rechtsboven in plaats van schermvullend", "viewMode": "Weergavemodus", "gridView": "Raster", "listView": "Lijst", "showHeroSection": "Toon hoofdsectie", - "continueWatchingAction": "Actie voor Doorgaan met kijken", + "continueWatchingAction": "Actie voor 'Doorgaan met kijken'", "continueWatchingPlay": "Afspelen", "continueWatchingDetails": "Details openen", "episodeAction": "Afleveringsactie", "episodePlay": "Afspelen", "episodeDetails": "Details openen", "useGlobalHubs": "Startlayout gebruiken", - "useGlobalHubsDescription": "Toon gecombineerde home-hubs. Anders bibliotheekaanbevelingen gebruiken.", + "useGlobalHubsDescription": "Toon gecombineerde hubs op het startscherm. Gebruik anders bibliotheekaanbevelingen.", "showServerNameOnHubs": "Servernaam tonen bij hubs", "showServerNameOnHubsDescription": "Toon servernamen altijd in hubtitels.", "groupLibrariesByServer": "Bibliotheken groeperen per server", @@ -146,47 +146,47 @@ "visualEffectsReduced": "Verminderd", "visualEffectsReducedDescription": "Minder animaties en illustraties met lagere resolutie", "hideSpoilers": "Spoilers voor ongekeken afleveringen verbergen", - "hideSpoilersDescription": "Vervaag miniaturen en beschrijvingen voor niet-bekeken afleveringen", - "playerBackend": "Speler backend", + "hideSpoilersDescription": "Vervaag miniaturen en beschrijvingen van ongekeken afleveringen", + "playerBackend": "Afspeelbackend", "exoPlayer": "ExoPlayer", "mpv": "mpv", - "hardwareDecoding": "Hardware decodering", - "hardwareDecodingDescription": "Gebruik hardware versnelling indien beschikbaar", - "bufferSize": "Buffer grootte", + "hardwareDecoding": "Hardwaredecodering", + "hardwareDecodingDescription": "Gebruik hardwareversnelling indien beschikbaar", + "bufferSize": "Buffergrootte", "bufferSizeMB": "${size}MB", - "bufferSizeAuto": "Auto (Aanbevolen)", + "bufferSizeAuto": "Automatisch (aanbevolen)", "bufferSizeWarning": "${heap}MB geheugen beschikbaar. Een buffer van ${size}MB kan afspelen beïnvloeden.", "defaultQualityTitle": "Standaardkwaliteit", "musicQualityTitle": "Muziekkwaliteit", - "subtitleStyling": "Ondertitel opmaak", - "subtitleStylingDescription": "Pas ondertitel uiterlijk aan", - "smallSkipDuration": "Korte skip duur", - "largeSkipDuration": "Lange skip duur", + "subtitleStyling": "Ondertitelopmaak", + "subtitleStylingDescription": "Pas de weergave van ondertitels aan", + "smallSkipDuration": "Korte sprong", + "largeSkipDuration": "Lange sprong", "rewindOnResume": "Terugspoelen bij hervatten", "secondsUnit": "${seconds} seconden", - "defaultSleepTimer": "Standaard slaap timer", - "minutesUnit": "bij ${minutes} minuten", - "rememberTrackSelections": "Onthoud track selecties per serie/film", + "defaultSleepTimer": "Standaardslaaptimer", + "minutesUnit": "${minutes} minuten", + "rememberTrackSelections": "Trackselecties per serie of film onthouden", "rememberTrackSelectionsDescription": "Onthoud audio- en ondertitelkeuzes per titel", "showChapterMarkersOnTimeline": "Hoofdstukmarkeringen op tijdlijn tonen", "showChapterMarkersOnTimelineDescription": "Verdeel de tijdlijn bij hoofdstukgrenzen", - "clickVideoTogglesPlayback": "Klik op de video om afspelen/pauzeren te wisselen.", - "clickVideoTogglesPlaybackDescription": "Klik op video om af te spelen/pauzeren in plaats van bediening te tonen.", - "videoPlayerControls": "Videospeler bediening", - "keyboardShortcuts": "Toetsenbord sneltoetsen", - "keyboardShortcutsDescription": "Pas toetsenbord sneltoetsen aan", - "videoPlayerNavigation": "Videospeler navigatie", - "videoPlayerNavigationDescription": "Gebruik pijltjestoetsen om door de videospeler bediening te navigeren", - "watchTogetherRelay": "Samen Kijken Relay", + "clickVideoTogglesPlayback": "Klik op de video om afspelen of pauzeren te wisselen", + "clickVideoTogglesPlaybackDescription": "Klik op de video om af te spelen of te pauzeren in plaats van de bediening te tonen.", + "videoPlayerControls": "Videospelerbediening", + "keyboardShortcuts": "Toetsenbordsneltoetsen", + "keyboardShortcutsDescription": "Pas de toetsenbordsneltoetsen aan", + "videoPlayerNavigation": "Videospelernavigatie", + "videoPlayerNavigationDescription": "Gebruik de pijltjestoetsen om door de videospelerbediening te navigeren", + "watchTogetherRelay": "Relay voor Samen kijken", "watchTogetherRelayDescription": "Stel een aangepaste relay in. Iedereen moet dezelfde server gebruiken.", "watchTogetherRelayHint": "https://mijn-relay.voorbeeld.nl", - "watchTogetherRelayInvalid": "Enter a valid HTTP or HTTPS relay base URL.", + "watchTogetherRelayInvalid": "Voer een geldige HTTP- of HTTPS-basis-URL voor de relay in.", "crashReporting": "Crashrapportage", "crashReportingDescription": "Crashrapporten verzenden om de app te verbeteren", - "debugLogging": "Debug logging", - "debugLoggingDescription": "Schakel gedetailleerde logging in voor probleemoplossing", - "viewLogs": "Bekijk logs", - "viewLogsDescription": "Bekijk applicatie logs", + "debugLogging": "Debuglogboek", + "debugLoggingDescription": "Schakel gedetailleerde logboekregistratie in om problemen op te lossen", + "viewLogs": "Logbestanden bekijken", + "viewLogsDescription": "Logbestanden van de app bekijken", "clearCache": "Cache wissen", "clearCacheDescription": "Wis gecachete afbeeldingen en gegevens. Inhoud kan langzamer laden.", "clearCacheSuccess": "Cache succesvol gewist", @@ -205,7 +205,7 @@ "importSettingsNoUser": "Meld je aan voordat je instellingen importeert", "shortcutsReset": "Sneltoetsen gereset naar standaard", "about": "Over", - "aboutDescription": "App informatie en licenties", + "aboutDescription": "App-informatie en licenties", "updates": "Updates", "updateAvailable": "Update beschikbaar", "checkForUpdates": "Controleer op updates", @@ -215,15 +215,15 @@ "validationErrorDuration": "Duur moet tussen ${min} en ${max} ${unit} zijn", "shortcutAlreadyAssigned": "Sneltoets al toegewezen aan ${action}", "shortcutUpdated": "Sneltoets bijgewerkt voor ${action}", - "saveFailed": "Could not save changes. Try again.", - "autoSkip": "Automatisch Overslaan", - "autoSkipIntro": "Intro Automatisch Overslaan", - "autoSkipIntroDescription": "Intro-markeringen na enkele seconden automatisch overslaan", - "autoSkipCredits": "Credits Automatisch Overslaan", - "autoSkipCreditsDescription": "Credits automatisch overslaan en volgende aflevering afspelen", - "forceSkipMarkerFallback": "Fallbackmarkeringen afdwingen", - "forceSkipMarkerFallbackDescription": "Gebruik hoofdstuktitelpatronen, zelfs wanneer Plex markeringen heeft", - "autoSkipDelay": "Vertraging Automatisch Overslaan", + "saveFailed": "Wijzigingen konden niet worden opgeslagen. Probeer het opnieuw.", + "autoSkip": "Automatisch overslaan", + "autoSkipIntro": "Intro automatisch overslaan", + "autoSkipIntroDescription": "Intromarkeringen na enkele seconden automatisch overslaan", + "autoSkipCredits": "Aftiteling automatisch overslaan", + "autoSkipCreditsDescription": "Aftiteling automatisch overslaan en de volgende aflevering afspelen", + "forceSkipMarkerFallback": "Reservemarkeringen afdwingen", + "forceSkipMarkerFallbackDescription": "Gebruik patronen in hoofdstuktitels, zelfs wanneer Plex markeringen heeft", + "autoSkipDelay": "Vertraging voor automatisch overslaan", "autoSkipDelayDescription": "${seconds} seconden wachten voor automatisch overslaan", "introPattern": "Intromarkeringspatroon", "introPatternDescription": "Reguliere expressie om intromarkeringen in hoofdstuktitels te herkennen", @@ -232,33 +232,33 @@ "invalidRegex": "Ongeldige reguliere expressie", "regex": "Reguliere expressie", "downloads": "Downloads", - "downloadLocationDescription": "Kies waar gedownloade content wordt opgeslagen", - "downloadLocationDefault": "Standaard (App-opslag)", - "downloadLocationCustom": "Aangepaste Locatie", - "selectFolder": "Selecteer Map", - "resetToDefault": "Herstel naar Standaard", + "downloadLocationDescription": "Kies waar gedownloade inhoud wordt opgeslagen", + "downloadLocationDefault": "Standaard (app-opslag)", + "downloadLocationCustom": "Aangepaste locatie", + "selectFolder": "Map selecteren", + "resetToDefault": "Standaardinstelling herstellen", "currentPath": "Huidig: ${path}", "downloadLocationChanged": "Downloadlocatie gewijzigd", "downloadLocationReset": "Downloadlocatie hersteld naar standaard", "downloadLocationInvalid": "Geselecteerde map is niet beschrijfbaar", "downloadLocationPickerUnavailable": "Mapselectie is niet beschikbaar op dit apparaat", - "downloadOnWifiOnly": "Alleen via WiFi downloaden", + "downloadOnWifiOnly": "Alleen via wifi downloaden", "downloadOnWifiOnlyDescription": "Voorkom downloads bij gebruik van mobiele data", "autoRemoveWatchedDownloads": "Bekeken downloads automatisch verwijderen", "autoRemoveWatchedDownloadsDescription": "Bekeken downloads automatisch verwijderen", - "cellularDownloadBlocked": "Downloads zijn geblokkeerd via mobiel netwerk. Gebruik WiFi of wijzig de instelling.", + "cellularDownloadBlocked": "Downloads via een mobiel netwerk zijn geblokkeerd. Gebruik wifi of wijzig de instelling.", "maxVolume": "Maximaal volume", "maxVolumeDescription": "Volume boven 100% toestaan voor stille media", "maxVolumePercent": "${percent}%", "discordRichPresence": "Discord Rich Presence", "discordRichPresenceDescription": "Toon op Discord wat je aan het kijken bent", - "services": "Services", - "servicesDescription": "Verbind Trakt, MyAnimeList, Seerr en meer", + "services": "Diensten", + "servicesDescription": "Koppel Trakt, MyAnimeList, Seerr en meer", "manageLibrariesDescription": "Bibliotheken herordenen en verbergen", "companionRemoteServer": "Companion Remote-server", "companionRemoteServerDescription": "Sta mobiele apparaten op je netwerk toe om deze app te bedienen", "autoPip": "Automatische beeld-in-beeld", - "autoPipDescription": "Ga naar picture-in-picture bij verlaten tijdens afspelen", + "autoPipDescription": "Schakel over naar beeld-in-beeld als je tijdens het afspelen de app verlaat", "matchContentFrameRate": "Inhoudsframesnelheid afstemmen", "matchContentFrameRateDescription": "Stem schermverversing af op videocontent", "matchRefreshRate": "Verversingssnelheid afstemmen", @@ -270,9 +270,9 @@ "tunneledPlaybackDescription": "Gebruik videotunneling. Schakel uit als HDR-afspelen zwart beeld geeft.", "audioPassthrough": "Audio-doorvoer", "audioPassthroughDescription": "Stuur Dolby/DTS-audio zonder hercodering naar je receiver of tv en behoud surroundgeluid. Schakel uit als je geen geluid hebt.", - "audioPassthroughDescriptionAppleTv": "Geeft Dolby Digital Plus (incl. Atmos) als bitstream aan het systeem door. DTS en TrueHD worden nog steeds als meerkanaals PCM afgespeeld. Bij zoeken kunnen korte geluidsonderbrekingen optreden.", - "audioDownmix": "Downmix naar stereo", - "audioDownmixDescription": "Mixt surroundgeluid naar twee kanalen voor stereoluidsprekers of een koptelefoon", + "audioPassthroughDescriptionAppleTv": "Gebruik de ingebouwde Dolby-decoder van Apple voor Dolby Digital Plus, inclusief Atmos. DTS en TrueHD worden nog steeds als meerkanaals-PCM afgespeeld. Schakel dit uit als je geen geluid hoort.", + "audioDownmix": "Downmixen naar stereo", + "audioDownmixDescription": "Mix surroundgeluid terug naar twee kanalen voor stereoluidsprekers of een koptelefoon", "downmixCenterBoost": "Versterking middenkanaal", "downmixCenterBoostValue": "${db} dB", "downmixCenterBoostLabel": "Versterking (dB)", @@ -296,26 +296,26 @@ "atmosTestStatus": "Status", "dvConversionMode": "Dolby Vision-conversie", "dvConversionModeDescription": "Kies hoe ExoPlayer Dolby Vision Profile 7-bestanden verwerkt.", - "dvConversionAuto": "Auto", + "dvConversionAuto": "Automatisch", "dvConversionNative": "Native / uitgeschakeld", "dvConversionDv81": "P7 → P8.1", "dvConversionHevcStrip": "P7 → HEVC", - "dvConversionAutoDescription": "Gebruik apparaatdetectie en normaal fallbackgedrag", - "dvConversionNativeDescription": "Forceer native DV7 en onderdruk DV-conversie opnieuw proberen", - "dvConversionDv81Description": "Forceer inline RPU-conversie naar Dolby Vision-profiel 8.1", - "dvConversionHevcStripDescription": "Strip Dolby Vision RPU/EL-lagen en presenteer gewone HEVC", + "dvConversionAutoDescription": "Gebruik detectie van apparaatmogelijkheden en het normale terugvalgedrag", + "dvConversionNativeDescription": "Dwing native DV7 af en voorkom een nieuwe poging met DV-conversie", + "dvConversionDv81Description": "Dwing directe RPU-conversie naar Dolby Vision-profiel 8.1 af", + "dvConversionHevcStripDescription": "Verwijder Dolby Vision RPU/EL-lagen en bied gewone HEVC aan", "requireProfileSelectionOnOpen": "Vraag om profiel bij openen", "requireProfileSelectionOnOpenDescription": "Toon profielselectie telkens wanneer de app wordt geopend", - "forceTvMode": "TV-modus forceren", - "forceTvModeDescription": "Forceer TV-indeling. Voor apparaten zonder autodetectie. Herstart vereist.", + "forceTvMode": "Tv-modus afdwingen", + "forceTvModeDescription": "Dwing de tv-indeling af op apparaten zonder automatische detectie. Herstart vereist.", "startInFullscreen": "Starten in volledig scherm", "startInFullscreenDescription": "Open Plezy bij het starten in volledig scherm", - "exitFullscreenOnPlayerClose": "Volledig scherm verlaten bij sluiten speler", - "exitFullscreenOnPlayerCloseDescription": "Verlaat automatisch volledig scherm wanneer de videospeler wordt gesloten", + "exitFullscreenOnPlayerClose": "Volledig scherm verlaten bij sluiten van speler", + "exitFullscreenOnPlayerCloseDescription": "Verlaat automatisch de volledigschermmodus wanneer de videospeler wordt gesloten", "autoHidePerformanceOverlay": "Prestatie-overlay automatisch verbergen", - "autoHidePerformanceOverlayDescription": "Laat de prestatie-overlay meevervagen met de afspeelknoppen", - "showNavBarLabels": "Navigatiebalk labels tonen", - "showNavBarLabelsDescription": "Tekstlabels onder de pictogrammen van de navigatiebalk weergeven", + "autoHidePerformanceOverlayDescription": "Laat de prestatie-overlay samen met de afspeelknoppen vervagen", + "showNavBarLabels": "Labels op navigatiebalk tonen", + "showNavBarLabelsDescription": "Tekstlabels onder de pictogrammen op de navigatiebalk weergeven", "startupSection": "Opstartsectie", "liveTvDefaultFavorites": "Standaard favoriete zenders", "liveTvDefaultFavoritesDescription": "Toon alleen favoriete zenders bij het openen van Live TV", @@ -325,8 +325,8 @@ "window": "Venster", "content": "Inhoud", "player": "Speler", - "subtitlesAndConfig": "Ondertitels en configuratie", - "seekAndTiming": "Zoeken en timing", + "subtitlesAndConfig": "Ondertitels en instellingen", + "seekAndTiming": "Spoelen en timing", "behavior": "Gedrag" }, "search": { @@ -371,7 +371,7 @@ } }, "fileInfo": { - "title": "Bestand info", + "title": "Bestandsinformatie", "video": "Video", "audio": "Audio", "file": "Bestand", @@ -379,14 +379,14 @@ "codec": "Codec", "resolution": "Resolutie", "bitrate": "Bitrate", - "frameRate": "Frame rate", + "frameRate": "Framesnelheid", "aspectRatio": "Beeldverhouding", "profile": "Profiel", - "bitDepth": "Bit diepte", + "bitDepth": "Bitdiepte", "colorSpace": "Kleurruimte", "colorRange": "Kleurbereik", "colorPrimaries": "Kleurprimaires", - "chromaSubsampling": "Chroma subsampling", + "chromaSubsampling": "Chroma-subsampling", "channels": "Kanalen", "subtitles": "Ondertitels", "overallBitrate": "Totale bitrate", @@ -395,18 +395,18 @@ "container": "Container", "duration": "Duur", "optimizedForStreaming": "Geoptimaliseerd voor streaming", - "has64bitOffsets": "64-bit Offsets" + "has64bitOffsets": "64-bits offsets" }, "mediaMenu": { - "markAsWatched": "Markeer als gekeken", - "markAsUnwatched": "Markeer als ongekeken", - "removeFromContinueWatching": "Verwijder uit Doorgaan met kijken", + "markAsWatched": "Als bekeken markeren", + "markAsUnwatched": "Als ongekeken markeren", + "removeFromContinueWatching": "Uit 'Doorgaan met kijken' verwijderen", "viewDetails": "Details bekijken", "goToSeries": "Ga naar serie", "shufflePlay": "Willekeurig afspelen", - "shuffleNotAvailableOffline": "Shuffle is offline niet beschikbaar", - "fileInfo": "Bestand info", - "deleteFromServer": "Verwijderen van server", + "shuffleNotAvailableOffline": "Willekeurig afspelen is offline niet beschikbaar", + "fileInfo": "Bestandsinformatie", + "deleteFromServer": "Van server verwijderen", "confirmDelete": "Deze media en bestanden van je server verwijderen?", "deleteMultipleWarning": "Dit omvat alle afleveringen en hun bestanden.", "mediaDeletedSuccessfully": "Media-item succesvol verwijderd", @@ -421,12 +421,12 @@ "favorite": "Favoriet", "favorited": "Toegevoegd aan favorieten", "saved": "Opgeslagen", - "notAvailable": "Geen match gevonden", - "noConnectedServices": "Verbind een service in Instellingen om daar te beoordelen." + "notAvailable": "Geen overeenkomst gevonden", + "noConnectedServices": "Koppel een dienst in Instellingen om daar een beoordeling te geven." }, "accessibility": { "mediaCardMovie": "${title}, film", - "mediaCardShow": "${title}, TV-serie", + "mediaCardShow": "${title}, tv-serie", "mediaCardEpisode": "${title}, ${episodeInfo}", "mediaCardSeason": "${title}, ${seasonInfo}", "mediaCardWatched": "bekeken", @@ -451,8 +451,8 @@ "tooltips": { "shufflePlay": "Willekeurig afspelen", "playTrailer": "Trailer afspelen", - "markAsWatched": "Markeer als gekeken", - "markAsUnwatched": "Markeer als ongekeken" + "markAsWatched": "Als bekeken markeren", + "markAsUnwatched": "Als ongekeken markeren" }, "audioTracks": { "track": "Audiospoor ${n}" @@ -460,17 +460,17 @@ "videoControls": { "audioLabel": "Audio", "subtitlesLabel": "Ondertitels", - "resetToZero": "Reset naar 0ms", + "resetToZero": "Terugzetten naar 0 ms", "addTime": "+${amount}${unit}", "minusTime": "-${amount}${unit}", "playsLater": "${label} speelt later af", "playsEarlier": "${label} speelt eerder af", "noOffset": "Geen offset", "letterbox": "Letterbox", - "fillScreen": "Vul scherm", + "fillScreen": "Scherm vullen", "stretch": "Uitrekken", - "lockRotation": "Vergrendel rotatie", - "unlockRotation": "Ontgrendel rotatie", + "lockRotation": "Rotatie vergrendelen", + "unlockRotation": "Rotatie ontgrendelen", "timerActive": "Timer actief", "playbackWillPauseIn": "Afspelen wordt gepauzeerd over ${duration}", "sleepTimerEndOfVideo": "Einde van huidige video", @@ -480,14 +480,14 @@ "stillWatching": "Kijk je nog?", "pausingIn": "Pauze over ${seconds}s", "continueWatching": "Doorgaan", - "autoPlayNext": "Automatisch volgende afspelen", + "autoPlayNext": "Volgende automatisch afspelen", "playNext": "Volgende afspelen", "playButton": "Afspelen", "pauseButton": "Pauzeren", - "showPlaybackControls": "", - "hidePlaybackControls": "", - "seekBackwardButton": "Terugspoelen ${seconds} seconden", - "seekForwardButton": "Vooruitspoelen ${seconds} seconden", + "showPlaybackControls": "Afspeelbediening tonen", + "hidePlaybackControls": "Afspeelbediening verbergen", + "seekBackwardButton": "${seconds} seconden terugspoelen", + "seekForwardButton": "${seconds} seconden vooruitspoelen", "previousButton": "Vorige aflevering", "nextButton": "Volgende aflevering", "previousChapterButton": "Vorig hoofdstuk", @@ -504,14 +504,14 @@ "qualityPresetLabel": "${resolution}p ${bitrate} Mbps", "transcodeUnavailableFallback": "Transcoderen niet beschikbaar — originele kwaliteit wordt afgespeeld", "subtitleUnavailableFallback": "De geselecteerde ondertitels konden niet worden geladen — afspelen gaat door zonder ondertitels", - "pipButton": "Beeld-in-beeld modus", + "pipButton": "Beeld-in-beeldmodus", "aspectRatioButton": "Beeldverhouding", "ambientLighting": "Omgevingsverlichting", "fullscreenButton": "Volledig scherm activeren", "exitFullscreenButton": "Volledig scherm verlaten", "alwaysOnTopButton": "Altijd bovenop", "rotationLockButton": "Rotatievergrendeling", - "lockScreen": "Vergrendel scherm", + "lockScreen": "Scherm vergrendelen", "screenLockButton": "Schermvergrendeling", "longPressToUnlock": "Lang indrukken om te ontgrendelen", "timelineSlider": "Videotijdlijn", @@ -524,9 +524,9 @@ "pipErrors": { "androidVersion": "Vereist Android 8.0 of nieuwer", "iosVersion": "Vereist iOS 15.0 of nieuwer", - "permissionDisabled": "Picture-in-picture is uitgeschakeld. Schakel het in via systeeminstellingen.", - "notSupported": "Dit apparaat ondersteunt geen beeld-in-beeld modus", - "voSwitchFailed": "Kan video-uitvoer niet wisselen voor beeld-in-beeld", + "permissionDisabled": "Beeld-in-beeld is uitgeschakeld. Schakel het in via de systeeminstellingen.", + "notSupported": "Dit apparaat ondersteunt de beeld-in-beeldmodus niet", + "voSwitchFailed": "Omschakelen van de video-uitvoer voor beeld-in-beeld is mislukt", "failed": "Beeld-in-beeld kon niet worden gestart", "unknown": "Er is een fout opgetreden: ${error}" }, @@ -549,39 +549,39 @@ "messages": { "markedAsWatched": "Gemarkeerd als gekeken", "markedAsUnwatched": "Gemarkeerd als ongekeken", - "markedAsWatchedOffline": "Gemarkeerd als gekeken (sync wanneer online)", - "markedAsUnwatchedOffline": "Gemarkeerd als ongekeken (sync wanneer online)", + "markedAsWatchedOffline": "Gemarkeerd als bekeken (wordt gesynchroniseerd zodra je online bent)", + "markedAsUnwatchedOffline": "Gemarkeerd als ongekeken (wordt gesynchroniseerd zodra je online bent)", "autoRemovedWatchedDownload": "Automatisch verwijderd: ${title}", "autoRemovedWatchedDownloads": { "one": "Automatisch ${n} bekeken download verwijderd", "other": "Automatisch ${n} bekeken downloads verwijderd" }, - "removedFromContinueWatching": "Verwijderd uit Doorgaan met kijken", + "removedFromContinueWatching": "Verwijderd uit 'Doorgaan met kijken'", "errorLoading": "Fout: ${error}", "streamInterrupted": "De stream is onderbroken. Druk op afspelen of spoel om het opnieuw te proberen.", "liveStreamInterrupted": "De livestream is onderbroken. Druk op afspelen om het opnieuw te proberen.", - "fileInfoNotAvailable": "Bestand informatie niet beschikbaar", - "playbackAuthenticationRequired": "Sign in to the media server again to play this item.", - "playbackServerUnavailable": "The media server is unavailable. Try again later.", - "playbackDataInvalid": "The server returned invalid playback information.", - "playbackCancelled": "Playback was cancelled.", - "playbackFailed": "Playback could not be started.", - "errorLoadingFileInfo": "Fout bij laden bestand info: ${error}", - "errorLoadingSeries": "Fout bij laden serie", + "fileInfoNotAvailable": "Bestandsinformatie niet beschikbaar", + "playbackAuthenticationRequired": "Meld je opnieuw aan bij de mediaserver om dit item af te spelen.", + "playbackServerUnavailable": "De mediaserver is niet beschikbaar. Probeer het later opnieuw.", + "playbackDataInvalid": "De server heeft ongeldige afspeelinformatie geretourneerd.", + "playbackCancelled": "Het afspelen is geannuleerd.", + "playbackFailed": "Het afspelen kon niet worden gestart.", + "errorLoadingFileInfo": "Fout bij laden van bestandsinformatie: ${error}", + "errorLoadingSeries": "Fout bij laden van serie", "musicNotSupported": "Muziek afspelen wordt nog niet ondersteund", "noDescriptionAvailable": "Geen beschrijving beschikbaar", "noProfilesAvailable": "Geen profielen beschikbaar", "contactAdminForProfiles": "Neem contact op met je serverbeheerder om profielen toe te voegen", "unableToDetermineLibrarySection": "Kan bibliotheeksectie voor dit item niet bepalen", - "logsCleared": "Logs gewist", - "logsCopied": "Logs gekopieerd naar klembord", - "noLogsAvailable": "Geen logs beschikbaar", - "libraryScanning": "Scannen \"${title}\"...", - "libraryScanStarted": "Bibliotheek scan gestart voor \"${title}\"", - "libraryScanFailed": "Kon bibliotheek niet scannen: ${error}", - "metadataRefreshing": "Metadata vernieuwen voor \"${title}\"...", - "metadataRefreshStarted": "Metadata vernieuwen gestart voor \"${title}\"", - "metadataRefreshFailed": "Kon metadata niet vernieuwen: ${error}", + "logsCleared": "Logbestanden gewist", + "logsCopied": "Logbestanden naar het klembord gekopieerd", + "noLogsAvailable": "Geen logbestanden beschikbaar", + "libraryScanning": "\"${title}\" scannen...", + "libraryScanStarted": "Bibliotheekscan gestart voor \"${title}\"", + "libraryScanFailed": "Bibliotheek scannen mislukt: ${error}", + "metadataRefreshing": "Metadata voor \"${title}\" vernieuwen...", + "metadataRefreshStarted": "Vernieuwen van metadata gestart voor \"${title}\"", + "metadataRefreshFailed": "Metadata vernieuwen mislukt: ${error}", "logoutConfirm": "Weet je zeker dat je wilt uitloggen?", "noSeasonsFound": "Geen seizoenen gevonden", "seasonsLoadFailed": "Kan seizoenen niet laden", @@ -589,16 +589,16 @@ "noEpisodesFoundGeneral": "Geen afleveringen gevonden", "episodesLoadFailed": "Kan afleveringen niet laden", "noResultsFound": "Geen resultaten gevonden", - "sleepTimerSet": "Slaap timer ingesteld voor ${label}", + "sleepTimerSet": "Slaaptimer ingesteld op ${label}", "noItemsAvailable": "Geen items beschikbaar", - "failedToCreatePlayQueueNoItems": "Kan afspeelwachtrij niet maken - geen items", + "failedToCreatePlayQueueNoItems": "Afspeelwachtrij maken mislukt — geen items", "failedPlayback": "Afspelen van ${action} mislukt: ${error}", "switchingToCompatiblePlayer": "Overschakelen naar compatibele speler...", "serverLimitTitle": "Afspelen mislukt", "serverLimitBody": "Serverfout (HTTP 500). Waarschijnlijk weigerde een bandbreedte-/transcodeerlimiet deze sessie. Vraag de eigenaar dit aan te passen.", - "logsUploaded": "Logs geüpload", - "logsUploadFailed": "Uploaden van logs mislukt", - "logId": "Log-ID" + "logsUploaded": "Logbestanden geüpload", + "logsUploadFailed": "Uploaden van logbestanden mislukt", + "logId": "Logboek-ID" }, "subtitlingStyling": { "text": "Tekst", @@ -606,9 +606,9 @@ "background": "Achtergrond", "fontSize": "Lettergrootte", "textColor": "Tekstkleur", - "borderSize": "Rand grootte", + "borderSize": "Randdikte", "borderColor": "Randkleur", - "backgroundOpacity": "Achtergrond transparantie", + "backgroundOpacity": "Achtergronddekking", "backgroundColor": "Achtergrondkleur", "position": "Positie", "assOverride": "ASS-overschrijving", @@ -624,8 +624,8 @@ "renderResolutionVideo": "Videoresolutie" }, "mpvConfig": { - "title": "mpv-configuratie", - "description": "Geavanceerde videospeler-instellingen", + "title": "mpv.conf", + "description": "Geavanceerde videospelerinstellingen", "presets": "Voorinstellingen", "noPresets": "Geen opgeslagen voorinstellingen", "saveAsPreset": "Opslaan als voorinstelling...", @@ -660,17 +660,17 @@ "summaryMultipleWithActive": "${count} profielen · actief: ${activeName}", "summaryMultiple": "${count} profielen", "removeConnectionTitle": "Verbinding verwijderen?", - "removeConnectionMessage": "Verwijder ${displayName}s toegang tot ${connectionLabel}. Andere profielen behouden die.", + "removeConnectionMessage": "Verwijder de toegang van ${displayName} tot ${connectionLabel}. Andere profielen behouden deze toegang.", "deleteProfileTitle": "Profiel verwijderen?", "deleteProfileMessage": "Verwijder ${displayName} en de verbindingen. Servers blijven beschikbaar.", "profileNameLabel": "Profielnaam", - "pinProtectionLabel": "PIN-beveiliging", - "pinManagedByPlex": "PIN wordt beheerd door Plex. Bewerk op plex.tv.", - "noPinSetEditOnPlex": "Geen PIN ingesteld. Bewerk de Home-gebruiker op plex.tv om er één te vereisen.", - "setPin": "PIN instellen", - "setPinTitle": "PIN instellen", - "confirmPinTitle": "PIN bevestigen", - "pinSet": "PIN ingesteld", + "pinProtectionLabel": "Pincodebeveiliging", + "pinManagedByPlex": "De pincode wordt beheerd door Plex. Pas deze aan op plex.tv.", + "noPinSetEditOnPlex": "Geen pincode ingesteld. Bewerk de Plex Home-gebruiker op plex.tv om er een te vereisen.", + "setPin": "Pincode instellen", + "setPinTitle": "Pincode instellen", + "confirmPinTitle": "Pincode bevestigen", + "pinSet": "Pincode ingesteld", "changePin": "Wijzigen", "removePin": "Verwijderen", "connectionsLabel": "Verbindingen", @@ -685,24 +685,24 @@ "removeConnection": "Verwijderen", "profileRenamed": "Profiel hernoemd.", "borrowAddTo": "Toevoegen aan ${displayName}", - "borrowExplain": "Leen de verbinding van een ander profiel. PIN-beveiligde profielen vereisen een PIN.", + "borrowExplain": "Leen de verbinding van een ander profiel. Voor profielen met pincodebeveiliging is een pincode vereist.", "borrowEmpty": "Nog niets te lenen.", "borrowEmptySubtitle": "Verbind Plex of Jellyfin eerst met een ander profiel.", - "borrowLoadFailed": "Available connections could not be loaded. Try again.", + "borrowLoadFailed": "Beschikbare verbindingen konden niet worden geladen. Probeer het opnieuw.", "borrowFromProfile": "Van ${displayName}", "borrowConnectionBorrowed": "Verbinding geleend.", "borrowFailed": "Kan verbinding niet lenen.", - "incorrectPin": "Onjuiste PIN.", - "incorrectPinTryAgain": "Onjuiste PIN. Probeer het opnieuw.", - "sourceProfileMissingParentAccount": "Het bronprofiel mist het bovenliggende account.", - "failedToLoadHomeUsers": "Kan je Plex Home-gebruikers niet laden. Controleer je verbinding en probeer het opnieuw.", - "failedToVerifyPin": "Kan PIN niet verifiëren.", + "incorrectPin": "Onjuiste pincode.", + "incorrectPinTryAgain": "Onjuiste pincode. Probeer het opnieuw.", + "sourceProfileMissingParentAccount": "Het bovenliggende account van het bronprofiel ontbreekt.", + "failedToLoadHomeUsers": "Je Plex Home-gebruikers konden niet worden geladen. Controleer je verbinding en probeer het opnieuw.", + "failedToVerifyPin": "De pincode kon niet worden geverifieerd.", "newProfile": "Nieuw profiel", "profileNameHint": "bijv. Gasten, Kinderen, Woonkamer", - "pinProtectionOptional": "PIN-beveiliging (optioneel)", - "pinExplain": "4-cijferige PIN vereist om profielen te wisselen.", + "pinProtectionOptional": "Pincodebeveiliging (optioneel)", + "pinExplain": "Een viercijferige pincode is vereist om van profiel te wisselen.", "continueButton": "Doorgaan", - "pinsDontMatch": "PIN-codes komen niet overeen" + "pinsDontMatch": "De pincodes komen niet overeen" }, "connections": { "sectionTitle": "Verbindingen", @@ -731,17 +731,17 @@ "playEpisode": "S${season}E${episode}", "overview": "Overzicht", "cast": "Acteurs", - "extras": "Trailers & Extra's", + "extras": "Trailers en extra's", "studio": "Studio", - "rating": "Leeftijd", + "rating": "Beoordeling", "movie": "Film", - "tvShow": "TV Serie", - "minutesLeft": "${minutes} min over", + "tvShow": "Tv-serie", + "minutesLeft": "nog ${minutes} min", "moreLikeThis": "Meer zoals dit" }, "errors": { "searchFailed": "Zoeken mislukt: ${error}", - "connectionTimeout": "Verbinding time-out tijdens laden ${context}", + "connectionTimeout": "Time-out van verbinding tijdens het laden van ${context}", "connectionFailed": "Kan geen verbinding maken met mediaserver", "unableToLoad": "Kan ${context} niet laden. Probeer het opnieuw.", "noClientAvailable": "Geen client beschikbaar", @@ -755,11 +755,11 @@ "libraries": { "title": "Bibliotheken", "fallbackTitle": "Bibliotheek", - "scanLibraryFiles": "Scan bibliotheek bestanden", - "scanLibrary": "Scan bibliotheek", + "scanLibraryFiles": "Bibliotheekbestanden scannen", + "scanLibrary": "Bibliotheek scannen", "analyze": "Analyseren", - "analyzeLibrary": "Analyseer bibliotheek", - "refreshMetadata": "Vernieuw metadata", + "analyzeLibrary": "Bibliotheek analyseren", + "refreshMetadata": "Metadata vernieuwen", "emptyTrash": "Prullenbak legen", "emptyingTrash": "Prullenbak legen voor \"${title}\"...", "trashEmptied": "Prullenbak geleegd voor \"${title}\"", @@ -779,14 +779,14 @@ "analyzeLibraryConfirm": "Weet je zeker dat je \"${title}\" wilt analyseren?", "refreshMetadataConfirm": "Weet je zeker dat je metadata wilt vernieuwen voor \"${title}\"?", "emptyTrashConfirm": "Weet je zeker dat je de prullenbak wilt legen voor \"${title}\"?", - "manageLibraries": "Beheer bibliotheken", + "manageLibraries": "Bibliotheken beheren", "sort": "Sorteren", "sortBy": "Sorteer op", "filters": "Filters", "confirmActionMessage": "Weet je zeker dat je deze actie wilt uitvoeren?", - "showLibrary": "Toon bibliotheek", - "hideLibrary": "Verberg bibliotheek", - "libraryOptions": "Bibliotheek opties", + "showLibrary": "Bibliotheek tonen", + "hideLibrary": "Bibliotheek verbergen", + "libraryOptions": "Bibliotheekopties", "content": "bibliotheekinhoud", "selectLibrary": "Bibliotheek kiezen", "filtersWithCount": "Filters (${count})", @@ -826,8 +826,8 @@ "dateAdded": "Toegevoegd op", "releaseDate": "Uitgavedatum", "rating": "Beoordeling", - "communityRating": "Communitybeoordeling", - "criticRating": "Criticusbeoordeling", + "communityRating": "Beoordeling door community", + "criticRating": "Beoordeling door critici", "userRating": "Gebruikersbeoordeling", "datePlayed": "Afspeeldatum", "playCount": "Aantal afspelingen", @@ -846,10 +846,10 @@ }, "about": { "title": "Over", - "openSourceLicenses": "Open Source licenties", + "openSourceLicenses": "Opensourcelicenties", "versionLabel": "Versie ${version}", "appDescription": "Een mooie Plex- en Jellyfin-client voor Flutter", - "viewLicensesDescription": "Bekijk licenties van third-party bibliotheken" + "viewLicensesDescription": "Licenties van bibliotheken van derden bekijken" }, "serverSelection": { "noServersFoundForAccount": "Geen servers gevonden voor ${username} (${email})", @@ -863,9 +863,9 @@ "noItemsFound": "Geen items gevonden" }, "logs": { - "clearLogs": "Wis logs", - "copyLogs": "Kopieer logs", - "uploadLogs": "Logs uploaden" + "clearLogs": "Logbestanden wissen", + "copyLogs": "Logbestanden kopiëren", + "uploadLogs": "Logbestanden uploaden" }, "licenses": { "relatedPackages": "Gerelateerde pakketten", @@ -876,7 +876,7 @@ "navigation": { "libraries": "Media", "downloads": "Downloads", - "liveTv": "Live TV", + "liveTv": "Live-tv", "explore": "Verkennen" }, "explore": { @@ -891,8 +891,8 @@ "popularMovies": "Populaire films", "popularShows": "Populaire series", "trendingAnime": "Trending anime", - "suggestedAnime": "Voorgestelde anime", - "airingAnime": "Top lopende anime", + "suggestedAnime": "Aanbevolen anime", + "airingAnime": "Beste lopende anime", "popularAnime": "Populairste anime", "trending": "Trending", "upcomingMovies": "Aankomende films", @@ -924,7 +924,7 @@ "searchFailed": "Zoeken mislukt. Controleer je verbinding en probeer opnieuw." }, "liveTv": { - "title": "Live TV", + "title": "Live-tv", "guide": "Gids", "noChannels": "Geen zenders beschikbaar", "noDvr": "Geen DVR geconfigureerd op een server", @@ -948,16 +948,16 @@ "daytime": "Overdag", "evening": "Avond", "lateNight": "Late avond", - "whatsOn": "Nu op TV", + "whatsOn": "Nu op tv", "watchChannel": "Kanaal bekijken", "favorites": "Favorieten", "reorderFavorites": "Favorieten herordenen", "favoritesLoadFailed": "Favorieten konden niet worden geladen. Controleer je verbinding en probeer het opnieuw.", - "favoritesUpdateFailed": "Could not update favorites. Check your connection and try again.", + "favoritesUpdateFailed": "Favorieten konden niet worden bijgewerkt. Controleer je verbinding en probeer het opnieuw.", "joinSession": "Deelnemen aan lopende sessie", - "watchFromStart": "Kijk vanaf het begin (${minutes} min geleden)", + "watchFromStart": "Vanaf het begin kijken (${minutes} min geleden)", "watchLive": "Live kijken", - "goToLive": "Ga naar live", + "goToLive": "Naar live-uitzending", "record": "Opnemen", "recordEpisode": "Aflevering opnemen", "recordSeries": "Serie opnemen", @@ -988,8 +988,8 @@ "editRule": "Regel bewerken", "editRuleAction": "Bewerken", "recordingRuleUpdated": "Opnameregel bijgewerkt", - "guideReloadRequested": "Gids-vernieuwing aangevraagd", - "rulesProcessRequested": "Regel-herevaluatie aangevraagd", + "guideReloadRequested": "Vernieuwing van de gids aangevraagd", + "rulesProcessRequested": "Nieuwe evaluatie van regels aangevraagd", "recordShow": "Programma opnemen" }, "collections": { @@ -1001,9 +1001,9 @@ "deleted": "Collectie verwijderd", "deleteFailed": "Collectie verwijderen mislukt", "deleteFailedWithError": "Collectie verwijderen mislukt: ${error}", - "selectCollection": "Selecteer collectie", + "selectCollection": "Collectie selecteren", "collectionName": "Collectienaam", - "enterCollectionName": "Voer collectienaam in", + "enterCollectionName": "Voer een collectienaam in", "addedToCollection": "Toegevoegd aan collectie", "errorAddingToCollection": "Fout bij toevoegen aan collectie", "created": "Collectie gemaakt", @@ -1019,8 +1019,8 @@ "playlist": "Afspeellijst", "noPlaylists": "Geen afspeellijsten gevonden", "create": "Afspeellijst maken", - "playlistName": "Naam afspeellijst", - "enterPlaylistName": "Voer naam afspeellijst in", + "playlistName": "Naam van de afspeellijst", + "enterPlaylistName": "Voer een naam voor de afspeellijst in", "delete": "Afspeellijst verwijderen", "removeItem": "Verwijderen uit afspeellijst", "smartPlaylist": "Slimme afspeellijst", @@ -1033,19 +1033,19 @@ "deleted": "Afspeellijst verwijderd", "itemAdded": "Toegevoegd aan afspeellijst", "itemRemoved": "Verwijderd uit afspeellijst", - "selectPlaylist": "Selecteer afspeellijst", + "selectPlaylist": "Afspeellijst selecteren", "searchPlaylists": "Afspeellijsten zoeken...", - "errorCreating": "Fout bij maken afspeellijst", - "errorDeleting": "Fout bij verwijderen afspeellijst", - "errorLoading": "Fout bij laden afspeellijsten", - "errorAdding": "Fout bij toevoegen aan afspeellijst", - "errorReordering": "Fout bij herschikken van afspeellijstitem", - "errorRemoving": "Fout bij verwijderen uit afspeellijst" + "errorCreating": "Afspeellijst maken mislukt", + "errorDeleting": "Afspeellijst verwijderen mislukt", + "errorLoading": "Afspeellijsten laden mislukt", + "errorAdding": "Toevoegen aan afspeellijst mislukt", + "errorReordering": "Afspeellijstitem herschikken mislukt", + "errorRemoving": "Verwijderen uit afspeellijst mislukt" }, "music": { "goToAlbum": "Ga naar album", "goToArtist": "Ga naar artiest", - "instantMix": "Instant Mix", + "instantMix": "Instantmix", "playNext": "Hierna afspelen", "addToQueue": "Toevoegen aan wachtrij", "discNumber": "Schijf ${n}", @@ -1070,20 +1070,20 @@ "repeatOne": "Eén herhalen" }, "watchTogether": { - "title": "Samen Kijken", + "title": "Samen kijken", "description": "Kijk synchroon met vrienden en familie", - "createSession": "Sessie Maken", - "creating": "Maken...", - "joinSession": "Sessie Deelnemen", + "createSession": "Sessie maken", + "creating": "Sessie maken...", + "joinSession": "Deelnemen aan sessie", "joining": "Deelnemen...", - "controlMode": "Controlemodus", + "controlMode": "Bedieningsmodus", "controlModeQuestion": "Wie kan het afspelen bedienen?", - "hostOnly": "Alleen Host", + "hostOnly": "Alleen host", "anyone": "Iedereen", - "hostingSession": "Sessie Hosten", - "inSession": "In Sessie", + "hostingSession": "Sessie hosten", + "inSession": "In sessie", "sessionCode": "Sessiecode", - "openSessionControls": "Sessiebesturing voor Samen Kijken openen", + "openSessionControls": "Bediening voor Samen kijken openen", "copySessionCode": "Sessiecode kopiëren", "hostControlsPlayback": "Host bedient het afspelen", "anyoneCanControl": "Iedereen kan het afspelen bedienen", @@ -1094,10 +1094,10 @@ "hostBadge": "HOST", "youAreHost": "Jij bent de host", "watchingWithOthers": "Kijken met anderen", - "endSession": "Sessie Beëindigen", - "leaveSession": "Sessie Verlaten", - "endSessionQuestion": "Sessie Beëindigen?", - "leaveSessionQuestion": "Sessie Verlaten?", + "endSession": "Sessie beëindigen", + "leaveSession": "Sessie verlaten", + "endSessionQuestion": "Sessie beëindigen?", + "leaveSessionQuestion": "Sessie verlaten?", "endSessionConfirm": "Dit beëindigt de sessie voor alle deelnemers.", "leaveSessionConfirm": "Je wordt uit de sessie verwijderd.", "endSessionConfirmOverlay": "Dit beëindigt de kijksessie voor alle deelnemers.", @@ -1105,30 +1105,30 @@ "end": "Beëindigen", "leave": "Verlaten", "syncing": "Synchroniseren...", - "joinWatchSession": "Kijksessie Deelnemen", - "enterCodeHint": "Voer 5-teken code in", - "pasteFromClipboard": "Plakken van klembord", + "joinWatchSession": "Deelnemen aan kijksessie", + "enterCodeHint": "Voer de code van 5 tekens in", + "pasteFromClipboard": "Plakken vanaf klembord", "pleaseEnterCode": "Voer een sessiecode in", - "codeMustBe5Chars": "Sessiecode moet 5 tekens zijn", + "codeMustBe5Chars": "De sessiecode moet 5 tekens lang zijn", "joinInstructions": "Voer de sessiecode van de host in om deel te nemen.", "failedToCreate": "Sessie maken mislukt", - "failedToJoin": "Sessie deelnemen mislukt", - "sessionCodeCopied": "Sessiecode gekopieerd naar klembord", - "relayUnreachable": "Relay-server onbereikbaar. ISP-blokkering kan Watch Together verhinderen.", + "failedToJoin": "Deelnemen aan sessie mislukt", + "sessionCodeCopied": "Sessiecode naar het klembord gekopieerd", + "relayUnreachable": "De relayserver is onbereikbaar. Een blokkering door je internetprovider kan Samen kijken verhinderen.", "reconnectingToHost": "Opnieuw verbinden met host...", - "currentPlayback": "Huidige weergave", + "currentPlayback": "Wat nu wordt afgespeeld", "joinCurrentPlayback": "Deelnemen aan huidige weergave", "joinCurrentPlaybackDescription": "Ga terug naar wat de host nu kijkt", - "failedToOpenCurrentPlayback": "Huidige weergave kon niet worden geopend", + "failedToOpenCurrentPlayback": "Wat nu wordt afgespeeld kon niet worden geopend", "participantJoined": "${name} is toegetreden", "participantLeft": "${name} heeft de sessie verlaten", "participantPaused": "${name} heeft gepauzeerd", "participantResumed": "${name} heeft hervat", - "participantSeeked": "${name} heeft gespoeld", + "participantSeeked": "${name} heeft de afspeelpositie gewijzigd", "participantBuffering": "${name} is aan het bufferen", "participantNeedsUpdate": "${name} gebruikt een oudere appversie — synchronisatie niet beschikbaar", "resumingWithout": "Hervatten zonder ${name}", - "waitingForParticipants": "Wachten tot anderen geladen zijn...", + "waitingForParticipants": "Wachten tot anderen klaar zijn met laden...", "waitingForName": "Wachten op ${name}...", "recentRooms": "Recente kamers", "renameRoom": "Kamer hernoemen", @@ -1144,8 +1144,8 @@ "music": "Muziek", "tracksQueued": "${count} nummers in wachtrij voor download", "noDownloads": "Nog geen downloads", - "noDownloadsDescription": "Gedownloade content verschijnt hier voor offline weergave", - "downloadNow": "Download", + "noDownloadsDescription": "Gedownloade inhoud verschijnt hier om offline te bekijken", + "downloadNow": "Downloaden", "deleteDownload": "Download verwijderen", "retryDownload": "Download opnieuw proberen", "downloadQueued": "Download in wachtrij", @@ -1174,15 +1174,15 @@ "deleteAll": "Alles verwijderen", "selectVersion": "Versie selecteren", "allEpisodes": "Alle afleveringen", - "unwatchedOnly": "Alleen onbekeken", - "nextNUnwatched": "Volgende ${count} onbekeken", + "unwatchedOnly": "Alleen ongekeken afleveringen", + "nextNUnwatched": "Volgende ${count} ongekeken afleveringen", "customAmount": "Aangepast aantal...", - "includeSpecials": "Specials opnemen", + "includeSpecials": "Specials meenemen", "howManyEpisodes": "Hoeveel afleveringen?", "invalidEpisodeCount": "Voer een geldig aantal afleveringen in.", "keepSynced": "Gesynchroniseerd houden", "downloadOnce": "Eenmalig downloaden", - "keepNUnwatched": "${count} onbekeken behouden", + "keepNUnwatched": "${count} ongekeken afleveringen behouden", "editSyncRule": "Synchronisatieregel bewerken", "removeSyncRule": "Synchronisatieregel verwijderen", "removeSyncRuleConfirm": "Synchronisatie van \"${title}\" stoppen? Gedownloade afleveringen worden behouden.", @@ -1245,13 +1245,13 @@ "connecting": "Verbinden...", "searchingForDevices": "Apparaten zoeken...", "noDevicesFound": "Geen apparaten gevonden op je netwerk", - "noDevicesHint": "Open Plezy op desktop en gebruik dezelfde WiFi", + "noDevicesHint": "Open Plezy op je desktop en gebruik op beide apparaten dezelfde wifi", "availableDevices": "Beschikbare apparaten", "manualConnection": "Handmatige verbinding", "cryptoInitFailed": "Kon beveiligde verbinding niet starten. Log eerst in bij Plex.", "validationHostRequired": "Voer het hostadres in", "validationHostFormat": "Formaat moet IP:poort zijn (bijv. 192.168.1.100:48632)", - "connectionTimedOut": "Verbinding verlopen. Gebruik hetzelfde netwerk op beide apparaten.", + "connectionTimedOut": "Er is een time-out opgetreden. Gebruik op beide apparaten hetzelfde netwerk.", "sessionNotFound": "Apparaat niet gevonden. Zorg dat Plezy op de host draait.", "authFailed": "Authenticatie mislukt. Beide apparaten hebben hetzelfde Plex-account nodig.", "failedToConnect": "Kan niet verbinden: ${error}" @@ -1288,11 +1288,11 @@ "errors": { "noNetworkInterface": "Geen netwerkinterface gevonden", "authenticationFailed": "Authenticatie mislukt", - "serverStartFailed": "Kan de externe server niet starten: ${error}", - "commandFailed": "Kan de externe opdracht niet verzenden: ${error}", + "serverStartFailed": "Externe server starten mislukt: ${error}", + "commandFailed": "Externe opdracht verzenden mislukt: ${error}", "joinTimedOut": "Time-out bij deelnemen aan sessie", - "failedToConnectAnyAddress": "Kan met geen enkel adres verbinden", - "connectionLostAfterAttempts": "Verbinding verloren na ${attempts} pogingen", + "failedToConnectAnyAddress": "Er kon met geen enkel adres verbinding worden gemaakt", + "connectionLostAfterAttempts": "Verbinding verbroken na ${attempts} pogingen", "connectionLost": "Verbinding verloren" } }, @@ -1302,14 +1302,14 @@ "sleepTimerActive": "Actief (${duration})", "zoom": "Zoom", "sleepTimer": "Slaaptimer", - "audioSync": "Audio synchronisatie", - "subtitleSync": "Ondertitel synchronisatie", + "audioSync": "Audiosynchronisatie", + "subtitleSync": "Ondertitelsynchronisatie", "hdr": "HDR", "audioOutput": "Audio-uitvoer", "performanceOverlay": "Prestatie-overlay", "audioPassthrough": "Audio-doorvoer", "audioNormalization": "Volume normaliseren", - "audioDownmix": "Downmix naar stereo" + "audioDownmix": "Downmixen naar stereo" }, "performanceOverlay": { "color": "Kleur", @@ -1317,7 +1317,7 @@ "buffer": "Buffer", "app": "App", "decoder": "Decoder", - "rawDecoder": "Raw decoder", + "rawDecoder": "Raw-decoder", "tunneling": "Tunneling", "aspect": "Verhouding", "rotation": "Rotatie", @@ -1329,7 +1329,7 @@ "hwFormat": "HW-formaat", "matrix": "Matrix", "primaries": "Primaire kleuren", - "transfer": "Transfer", + "transfer": "Overdracht", "renderFps": "Render-FPS", "displayFps": "Scherm-FPS", "avSync": "A/V-sync", @@ -1370,7 +1370,7 @@ "editMetadata": "Bewerken...", "screenTitle": "Metadata bewerken", "basicInfo": "Basisinformatie", - "artwork": "Artwork", + "artwork": "Illustraties", "advancedSettings": "Geavanceerde instellingen", "title": "Titel", "sortTitle": "Sorteertitel", @@ -1378,7 +1378,7 @@ "releaseDate": "Releasedatum", "contentRating": "Leeftijdsclassificatie", "studio": "Studio", - "tagline": "Tagline", + "tagline": "Slogan", "summary": "Samenvatting", "poster": "Poster", "background": "Achtergrond", @@ -1390,19 +1390,19 @@ "selectSquareArt": "Vierkante afbeelding selecteren", "fromUrl": "Vanaf URL", "uploadFile": "Bestand uploaden", - "enterImageUrl": "Voer afbeeldings-URL in", + "enterImageUrl": "Voer de afbeeldings-URL in", "imageUrl": "Afbeeldings-URL", "metadataUpdated": "Metadata bijgewerkt", "metadataUpdateFailed": "Metadata bijwerken mislukt", - "artworkUpdated": "Artwork bijgewerkt", - "artworkUpdateFailed": "Artwork bijwerken mislukt", - "noArtworkAvailable": "Geen artwork beschikbaar", - "artworkOption": "Artworkoptie ${index}", - "selectedArtworkOption": "Artworkoptie ${index}, geselecteerd", + "artworkUpdated": "Illustraties bijgewerkt", + "artworkUpdateFailed": "Illustraties bijwerken mislukt", + "noArtworkAvailable": "Geen illustraties beschikbaar", + "artworkOption": "Illustratie ${index}", + "selectedArtworkOption": "Illustratie ${index}, geselecteerd", "notSet": "Niet ingesteld", - "libraryDefault": "Bibliotheekstandaard", - "accountDefault": "Accountstandaard", - "seriesDefault": "Seriestandaard", + "libraryDefault": "Standaard van de bibliotheek", + "accountDefault": "Standaard van het account", + "seriesDefault": "Standaard van de serie", "episodeSorting": "Afleveringen sorteren", "oldestFirst": "Oudste eerst", "newestFirst": "Nieuwste eerst", @@ -1426,8 +1426,8 @@ "tvdbAbsolute": "TheTVDB (Absoluut)", "metadataLanguage": "Metadatataal", "useOriginalTitle": "Oorspronkelijke titel gebruiken", - "preferredAudioLanguage": "Voorkeurstaal audio", - "preferredSubtitleLanguage": "Voorkeurstaal ondertiteling", + "preferredAudioLanguage": "Voorkeurstaal voor audio", + "preferredSubtitleLanguage": "Voorkeurstaal voor ondertitels", "subtitleMode": "Automatische ondertitelselectie", "manuallySelected": "Handmatig geselecteerd", "shownWithForeignAudio": "Weergeven bij anderstalig geluid", @@ -1448,7 +1448,7 @@ "match": "Koppelen...", "fixMatch": "Koppeling herstellen...", "unmatch": "Ontkoppelen", - "unmatchConfirm": "Deze match wissen? Plex behandelt dit als niet-gematcht tot het opnieuw gematcht is.", + "unmatchConfirm": "Deze koppeling wissen? Plex behandelt het item als niet-gekoppeld totdat het opnieuw wordt gekoppeld.", "unmatchSuccess": "Item ontkoppeld", "unmatchFailed": "Kon item niet ontkoppelen", "matchApplied": "Koppeling toegepast", @@ -1468,11 +1468,11 @@ "connected": "Verbonden", "connectedAs": "Verbonden als @${username}", "disconnectConfirm": "Trakt-account loskoppelen?", - "disconnectConfirmBody": "Plezy stopt met gebeurtenissen naar Trakt sturen. Je kunt altijd opnieuw verbinden.", - "scrobble": "Realtime scrobbling", - "scrobbleDescription": "Verstuur play-, pauze- en stopgebeurtenissen tijdens afspelen naar Trakt.", - "watchedSync": "Bekeken-status synchroniseren", - "watchedSyncDescription": "Wanneer je items als bekeken markeert in Plezy, worden ze ook op Trakt gemarkeerd." + "disconnectConfirmBody": "Plezy stuurt geen gebeurtenissen meer naar Trakt. Je kunt op elk moment opnieuw verbinding maken.", + "scrobble": "Realtime scrobblen", + "scrobbleDescription": "Stuur tijdens het afspelen gebeurtenissen voor afspelen, pauzeren en stoppen naar Trakt.", + "watchedSync": "Kijkstatus synchroniseren", + "watchedSyncDescription": "Wanneer je items in Plezy als bekeken markeert, worden ze op Trakt ook als bekeken gemarkeerd." }, "seerr": { "title": "Seerr", @@ -1499,7 +1499,7 @@ "languageProfile": "Taalprofiel", "requestSubmitted": "Aanvraag verzonden", "requestFailed": "Aanvraag mislukt: ${error}", - "requestsLoadFailed": "Kan aanvraagopties niet laden", + "requestsLoadFailed": "Aanvraagopties konden niet worden geladen", "nothingToRequest": "Alles is al beschikbaar of aangevraagd.", "statusAvailable": "Beschikbaar", "statusPartiallyAvailable": "Gedeeltelijk beschikbaar", @@ -1507,15 +1507,15 @@ "statusProcessing": "Verwerken" }, "services": { - "title": "Services", + "title": "Diensten", "hubSubtitle": "Synchroniseer kijkvoortgang en vraag nieuwe titels aan.", "notConnected": "Niet verbonden", "connectedAs": "Verbonden als @${username}", "scrobble": "Voortgang automatisch volgen", "scrobbleDescription": "Werk je lijst bij wanneer je een aflevering of film afrondt.", "disconnectConfirm": "${service} loskoppelen?", - "disconnectConfirmBody": "Plezy stopt met ${service} bijwerken. Je kunt altijd opnieuw verbinden.", - "connectFailed": "Kan niet verbinden met ${service}. Probeer opnieuw.", + "disconnectConfirmBody": "Plezy werkt ${service} niet meer bij. Je kunt op elk moment opnieuw verbinding maken.", + "connectFailed": "Verbinding maken met ${service} is mislukt. Probeer het opnieuw.", "names": { "mal": "MyAnimeList", "anilist": "AniList", @@ -1544,9 +1544,9 @@ "subtitleBlocked": "${count} geblokkeerd", "subtitleAllowed": "${count} toegestaan", "mode": "Filtermodus", - "modeBlacklist": "Zwarte lijst", - "modeWhitelist": "Witte lijst", - "modeHintBlacklist": "Synchroniseer alle bibliotheken behalve die hieronder aangevinkt zijn.", + "modeBlacklist": "Blokkeerlijst", + "modeWhitelist": "Toelatingslijst", + "modeHintBlacklist": "Synchroniseer alle bibliotheken behalve de hieronder aangevinkte.", "modeHintWhitelist": "Synchroniseer alleen de hieronder aangevinkte bibliotheken.", "libraries": "Bibliotheken", "noLibraries": "Geen bibliotheken beschikbaar" @@ -1568,7 +1568,7 @@ "signInFailed": "Inloggen mislukt: ${error}", "quickConnectFailed": "Quick Connect mislukt: ${error}", "addPlexTitle": "Inloggen met Plex", - "pinExpired": "PIN verlopen vóór inloggen. Probeer opnieuw.", + "pinExpired": "De pincode verliep voordat je kon inloggen. Probeer het opnieuw.", "failedToRegisterAccount": "Account registreren mislukt: ${error}", "enterJellyfinUrlError": "Voer de URL van je Jellyfin-server in", "addConnectionTitle": "Verbinding toevoegen", @@ -1579,7 +1579,7 @@ "connectToJellyfinCard": "Verbinden met Jellyfin", "connectToJellyfinCardSubtitle": "Voer je server-URL, gebruikersnaam en wachtwoord in.", "connectToJellyfinCardSubtitleScoped": "Log in op een Jellyfin-server. Wordt gekoppeld aan ${name}.", - "borrowFromAnotherProfile": "Lenen van een ander profiel", - "borrowFromAnotherProfileSubtitle": "Hergebruik de verbinding van een ander profiel. PIN-beveiligde profielen vereisen een PIN." + "borrowFromAnotherProfile": "Van een ander profiel lenen", + "borrowFromAnotherProfileSubtitle": "Hergebruik de verbinding van een ander profiel. Voor profielen met pincodebeveiliging is een pincode vereist." } } diff --git a/lib/i18n/pl.i18n.json b/lib/i18n/pl.i18n.json index 7b90de2c..33def8f2 100644 --- a/lib/i18n/pl.i18n.json +++ b/lib/i18n/pl.i18n.json @@ -5,7 +5,7 @@ "auth": { "signInWithPlex": "Zaloguj się przez Plex", "showQRCode": "Pokaż kod QR", - "authenticate": "Uwierzytelnienie", + "authenticate": "Uwierzytelnij", "authenticationTimeout": "Upłynął czas uwierzytelniania. Spróbuj ponownie.", "scanQRToSignIn": "Zeskanuj ten kod QR, aby się zalogować", "waitingForAuth": "Oczekiwanie na uwierzytelnienie...\nZaloguj się w przeglądarce.", @@ -17,7 +17,7 @@ "quickConnectWaiting": "Oczekiwanie na zatwierdzenie…", "quickConnectCancel": "Anuluj", "quickConnectExpired": "Quick Connect wygasł. Spróbuj ponownie.", - "localDataRecoveryRequired": "Plezy could not safely recover local sign-in and pending playback data. Please sign in again." + "localDataRecoveryRequired": "Plezy nie mogło bezpiecznie odzyskać lokalnych danych logowania ani oczekujących danych odtwarzania. Zaloguj się ponownie." }, "common": { "cancel": "Anuluj", @@ -38,7 +38,7 @@ "edit": "Edytuj", "shuffle": "Losowo", "addTo": "Dodaj do...", - "createNew": "Utwórz nowy", + "createNew": "Utwórz", "connect": "Połącz", "disconnect": "Rozłącz", "play": "Odtwórz", @@ -64,7 +64,7 @@ "loading": "Ładowanie...", "fullscreen": "Pełny ekran", "exitFullscreen": "Wyjdź z pełnego ekranu", - "pressBackAgainToExit": "Naciśnij wstecz ponownie, aby wyjść" + "pressBackAgainToExit": "Naciśnij ponownie przycisk Wstecz, aby wyjść" }, "screens": { "licenses": "Licencje", @@ -109,22 +109,22 @@ "libraryDensity": "Gęstość biblioteki", "compact": "Kompaktowy", "comfortable": "Wygodny", - "tvCornerSpotlightBackdrop": "", - "tvCornerSpotlightBackdropDescription": "", + "tvCornerSpotlightBackdrop": "Tło wyróżnionej pozycji w rogu", + "tvCornerSpotlightBackdropDescription": "Wyświetlaj grafikę wyróżnionej pozycji w prawym górnym rogu zamiast na całym ekranie", "viewMode": "Tryb widoku", "gridView": "Siatka", "listView": "Lista", "showHeroSection": "Pokaż sekcję wyróżnioną", - "continueWatchingAction": "Akcja Kontynuuj oglądanie", + "continueWatchingAction": "Działanie w sekcji „Kontynuuj oglądanie”", "continueWatchingPlay": "Odtwórz", "continueWatchingDetails": "Otwórz szczegóły", "episodeAction": "Akcja odcinka", "episodePlay": "Odtwórz", "episodeDetails": "Otwórz szczegóły", "useGlobalHubs": "Użyj układu strony głównej", - "useGlobalHubsDescription": "Pokaż ujednolicone huby ekranu głównego. W przeciwnym razie użyj rekomendacji bibliotek.", - "showServerNameOnHubs": "Pokaż nazwę serwera w hubach", - "showServerNameOnHubsDescription": "Zawsze pokazuj nazwy serwerów w tytułach hubów.", + "useGlobalHubsDescription": "Wyświetlaj ujednolicone sekcje ekranu głównego. W przeciwnym razie używaj rekomendacji bibliotek.", + "showServerNameOnHubs": "Pokaż nazwę serwera w sekcjach", + "showServerNameOnHubsDescription": "Zawsze pokazuj nazwy serwerów w tytułach sekcji.", "groupLibrariesByServer": "Grupuj biblioteki według serwera", "groupLibrariesByServerDescription": "Grupuj biblioteki paska bocznego pod każdym serwerem multimediów.", "alwaysKeepSidebarOpen": "Zawsze utrzymuj panel boczny otwarty", @@ -134,7 +134,7 @@ "showEpisodeNumberOnCards": "Pokaż numer odcinka na kartach", "showEpisodeNumberOnCardsDescription": "Pokazuj numer sezonu i odcinka na kartach odcinków", "showSeasonPostersOnTabs": "Pokaż plakaty sezonów na zakładkach", - "showSeasonPostersOnTabsDescription": "Pokazuj plakat każdego sezonu nad jego kartą", + "showSeasonPostersOnTabsDescription": "Pokazuj plakat każdego sezonu nad jego zakładką", "tvFullCardLayout": "Pełne karty TV", "tvFullCardLayoutDescription": "Używaj kart TV tylko z obrazem i nałożonymi nazwiskami aktorów", "focusGlow": "Poświata zaznaczenia", @@ -147,14 +147,14 @@ "visualEffectsReducedDescription": "Mniej animacji i grafiki o niższej rozdzielczości", "hideSpoilers": "Ukryj spoilery nieobejrzanych odcinków", "hideSpoilersDescription": "Rozmywaj miniatury i opisy nieobejrzanych odcinków", - "playerBackend": "Backend odtwarzacza", + "playerBackend": "Mechanizm odtwarzania", "exoPlayer": "ExoPlayer", "mpv": "mpv", "hardwareDecoding": "Dekodowanie sprzętowe", "hardwareDecodingDescription": "Użyj akceleracji sprzętowej, gdy dostępna", "bufferSize": "Rozmiar bufora", "bufferSizeMB": "${size}MB", - "bufferSizeAuto": "Automatyczny (Zalecany)", + "bufferSizeAuto": "Automatyczny (zalecany)", "bufferSizeWarning": "Dostępna pamięć: ${heap}MB. Bufor ${size}MB może wpłynąć na odtwarzanie.", "defaultQualityTitle": "Domyślna jakość", "musicQualityTitle": "Jakość muzyki", @@ -166,8 +166,8 @@ "secondsUnit": "${seconds} sekund", "defaultSleepTimer": "Domyślny wyłącznik czasowy", "minutesUnit": "${minutes} minut", - "rememberTrackSelections": "Zapamiętaj wybór ścieżek per serial/film", - "rememberTrackSelectionsDescription": "Zapamiętuj wybór audio i napisów dla tytułu", + "rememberTrackSelections": "Zapamiętuj wybór ścieżek dla każdego serialu i filmu", + "rememberTrackSelectionsDescription": "Zapamiętuj wybór ścieżki dźwiękowej i napisów dla każdego tytułu", "showChapterMarkersOnTimeline": "Pokaż znaczniki rozdziałów na pasku przewijania", "showChapterMarkersOnTimelineDescription": "Podziel pasek przewijania na granicach rozdziałów", "clickVideoTogglesPlayback": "Kliknięcie wideo przełącza odtwarzanie/pauzę", @@ -177,14 +177,14 @@ "keyboardShortcutsDescription": "Dostosuj skróty klawiszowe", "videoPlayerNavigation": "Nawigacja odtwarzacza wideo", "videoPlayerNavigationDescription": "Użyj klawiszy strzałek do nawigacji kontrolkami odtwarzacza", - "watchTogetherRelay": "Relay Oglądaj Razem", - "watchTogetherRelayDescription": "Ustaw własny relay. Wszyscy muszą używać tego samego serwera.", + "watchTogetherRelay": "Serwer pośredniczący funkcji „Oglądaj razem”", + "watchTogetherRelayDescription": "Ustaw własny serwer pośredniczący. Wszyscy muszą korzystać z tego samego serwera.", "watchTogetherRelayHint": "https://moj-relay.przyklad.pl", - "watchTogetherRelayInvalid": "Enter a valid HTTP or HTTPS relay base URL.", + "watchTogetherRelayInvalid": "Wprowadź prawidłowy bazowy adres URL serwera pośredniczącego HTTP lub HTTPS.", "crashReporting": "Raportowanie błędów", "crashReportingDescription": "Wysyłaj raporty o błędach, aby pomóc ulepszyć aplikację", - "debugLogging": "Logowanie debugowania", - "debugLoggingDescription": "Włącz szczegółowe logowanie do rozwiązywania problemów", + "debugLogging": "Rejestrowanie diagnostyczne", + "debugLoggingDescription": "Włącz szczegółowe rejestrowanie, aby ułatwić rozwiązywanie problemów", "viewLogs": "Pokaż logi", "viewLogsDescription": "Pokaż logi aplikacji", "clearCache": "Wyczyść pamięć podręczną", @@ -192,7 +192,7 @@ "clearCacheSuccess": "Pamięć podręczna wyczyszczona", "resetSettings": "Zresetuj ustawienia", "resetSettingsDescription": "Przywróć ustawienia domyślne. Tego nie można cofnąć.", - "resetSettingsSuccess": "Ustawienia zresetowane pomyślnie", + "resetSettingsSuccess": "Przywrócono ustawienia domyślne", "backup": "Kopia zapasowa", "exportSettings": "Eksportuj ustawienia", "exportSettingsDescription": "Zapisz swoje preferencje do pliku", @@ -215,7 +215,7 @@ "validationErrorDuration": "Czas musi być między ${min} a ${max} ${unit}", "shortcutAlreadyAssigned": "Skrót jest już przypisany do ${action}", "shortcutUpdated": "Skrót zaktualizowany dla ${action}", - "saveFailed": "Could not save changes. Try again.", + "saveFailed": "Nie udało się zapisać zmian. Spróbuj ponownie.", "autoSkip": "Automatyczne pomijanie", "autoSkipIntro": "Automatyczne pomijanie intro", "autoSkipIntroDescription": "Automatycznie pomijaj znaczniki intro po kilku sekundach", @@ -233,20 +233,20 @@ "regex": "Wyrażenie regularne", "downloads": "Pobrania", "downloadLocationDescription": "Wybierz miejsce przechowywania pobranych treści", - "downloadLocationDefault": "Domyślne (Pamięć aplikacji)", + "downloadLocationDefault": "Domyślne (pamięć aplikacji)", "downloadLocationCustom": "Niestandardowa lokalizacja", "selectFolder": "Wybierz folder", "resetToDefault": "Przywróć domyślne", "currentPath": "Bieżąca: ${path}", "downloadLocationChanged": "Lokalizacja pobierania zmieniona", "downloadLocationReset": "Lokalizacja pobierania przywrócona do domyślnej", - "downloadLocationInvalid": "Wybrany folder nie jest zapisywalny", + "downloadLocationInvalid": "Nie można zapisywać w wybranym folderze", "downloadLocationPickerUnavailable": "Wybór folderu nie jest dostępny na tym urządzeniu", - "downloadOnWifiOnly": "Pobieraj tylko przez WiFi", + "downloadOnWifiOnly": "Pobieraj tylko przez Wi-Fi", "downloadOnWifiOnlyDescription": "Blokuj pobieranie na danych komórkowych", "autoRemoveWatchedDownloads": "Automatycznie usuwaj obejrzane pobrania", "autoRemoveWatchedDownloadsDescription": "Automatycznie usuwaj obejrzane pobrania", - "cellularDownloadBlocked": "Pobieranie przez sieć komórkową jest zablokowane. Użyj WiFi lub zmień ustawienie.", + "cellularDownloadBlocked": "Pobieranie przez sieć komórkową jest zablokowane. Użyj Wi-Fi lub zmień ustawienie.", "maxVolume": "Maksymalna głośność", "maxVolumeDescription": "Pozwól na wzmocnienie głośności powyżej 100% dla cichych multimediów", "maxVolumePercent": "${percent}%", @@ -258,7 +258,7 @@ "companionRemoteServer": "Serwer zdalnego sterowania", "companionRemoteServerDescription": "Pozwól urządzeniom mobilnym w sieci sterować tą aplikacją", "autoPip": "Automatyczny obraz w obrazie", - "autoPipDescription": "Włącz obraz w obrazie po opuszczeniu aplikacji podczas odtwarzania", + "autoPipDescription": "Automatycznie włączaj tryb obrazu w obrazie po opuszczeniu aplikacji podczas odtwarzania", "matchContentFrameRate": "Dopasuj częstotliwość klatek do treści", "matchContentFrameRateDescription": "Dopasuj częstotliwość odświeżania ekranu do wideo", "matchRefreshRate": "Dopasuj częstotliwość odświeżania", @@ -268,9 +268,9 @@ "displaySwitchDelay": "Opóźnienie przełączania ekranu", "tunneledPlayback": "Tunelowane odtwarzanie", "tunneledPlaybackDescription": "Użyj tunelowania wideo. Wyłącz, jeśli HDR pokazuje czarny obraz.", - "audioPassthrough": "Bezpośrednie audio", - "audioPassthroughDescription": "Wysyłaj dźwięk Dolby/DTS do amplitunera lub telewizora bez ponownego kodowania, zachowując dźwięk przestrzenny. Wyłącz, jeśli nie ma dźwięku.", - "audioPassthroughDescriptionAppleTv": "Przekazuje Dolby Digital Plus (w tym Atmos) do systemu jako bitstream. DTS i TrueHD nadal odtwarzane są jako wielokanałowe PCM. Podczas przewijania mogą wystąpić krótkie przerwy w dźwięku.", + "audioPassthrough": "Przekazywanie dźwięku", + "audioPassthroughDescription": "Przesyłaj dźwięk Dolby/DTS do amplitunera lub telewizora bez ponownego kodowania, zachowując dźwięk przestrzenny. Wyłącz tę opcję, jeśli nie słychać dźwięku.", + "audioPassthroughDescriptionAppleTv": "Używaj natywnego dekodera Dolby firmy Apple dla Dolby Digital Plus, w tym Atmos. DTS i TrueHD nadal będą odtwarzane jako wielokanałowy dźwięk PCM. Wyłącz tę opcję, jeśli nie słychać dźwięku.", "audioDownmix": "Miksowanie do stereo", "audioDownmixDescription": "Miksuje dźwięk przestrzenny do dwóch kanałów dla głośników stereo lub słuchawek", "downmixCenterBoost": "Wzmocnienie kanału centralnego", @@ -283,16 +283,16 @@ "atmosDiagnosticsDescription": "Diagnozuj wyjście Dolby Atmos, odtwarzając sygnały testowe przez odtwarzacz systemowy", "atmosTestHlsAtmos": "Strumień Atmos Apple", "atmosTestHlsAtmosDescription": "Sprawdzony strumień Dolby Atmos. Amplituner powinien pokazać Dolby Atmos.", - "atmosTestHlsControl": "Strumień surround Apple", - "atmosTestHlsControlDescription": "Strumień kontrolny bez Atmos. Amplituner powinien pokazać surround bez Atmos.", + "atmosTestHlsControl": "Strumień dźwięku przestrzennego Apple", + "atmosTestHlsControlDescription": "Strumień kontrolny bez Atmos. Amplituner powinien wskazywać dźwięk przestrzenny bez Atmos.", "atmosTestRawStream": "Surowy strumień EAC3", - "atmosTestRawStreamDescription": "Strumieniuje plik testowy dokładnie jak odtwarzanie Atmos w odtwarzaczu. Wymaga URL pliku testowego.", + "atmosTestRawStreamDescription": "Przesyła strumieniowo plik testowy dokładnie tak jak podczas odtwarzania Atmos w odtwarzaczu. Wymaga adresu URL pliku testowego.", "atmosTestRawFile": "Surowy plik EAC3", "atmosTestRawFileDescription": "Odtwarza plik testowy o znanej długości. Wymaga URL pliku testowego.", "atmosTestStop": "Zatrzymaj test", - "atmosTestUrl": "URL pliku testowego", - "atmosTestUrlDescription": "HTTP URL surowego pliku .ec3 Dolby Atmos (np. wyodrębnionego przez ffmpeg)", - "atmosTestUrlMissing": "Najpierw ustaw URL pliku testowego", + "atmosTestUrl": "Adres URL pliku testowego", + "atmosTestUrlDescription": "Adres URL HTTP surowego pliku Dolby Atmos w formacie .ec3 (np. wyodrębnionego za pomocą ffmpeg)", + "atmosTestUrlMissing": "Najpierw ustaw adres URL pliku testowego", "atmosTestStatus": "Stan", "dvConversionMode": "Konwersja Dolby Vision", "dvConversionModeDescription": "Wybierz, jak ExoPlayer obsługuje pliki Dolby Vision Profile 7.", @@ -300,14 +300,14 @@ "dvConversionNative": "Natywnie / wyłączone", "dvConversionDv81": "P7 → P8.1", "dvConversionHevcStrip": "P7 → HEVC", - "dvConversionAutoDescription": "Użyj wykrywania możliwości urządzenia i normalnego zachowania awaryjnego", + "dvConversionAutoDescription": "Wykrywaj możliwości urządzenia i stosuj standardowy mechanizm awaryjny", "dvConversionNativeDescription": "Wymuś natywne DV7 i wyłącz ponowną próbę konwersji DV", "dvConversionDv81Description": "Wymuś wbudowaną konwersję RPU do profilu Dolby Vision 8.1", "dvConversionHevcStripDescription": "Usuń warstwy Dolby Vision RPU/EL i przedstaw zwykłe HEVC", "requireProfileSelectionOnOpen": "Pytaj o profil przy otwarciu aplikacji", "requireProfileSelectionOnOpenDescription": "Pokaż wybór profilu za każdym razem, gdy aplikacja jest otwierana", "forceTvMode": "Wymuś tryb TV", - "forceTvModeDescription": "Wymuś układ TV. Dla urządzeń bez autodetekcji. Wymaga restartu.", + "forceTvModeDescription": "Wymuś układ telewizyjny na urządzeniach, które nie wykrywają go automatycznie. Wymaga ponownego uruchomienia.", "startInFullscreen": "Uruchom na pełnym ekranie", "startInFullscreenDescription": "Otwiera Plezy w trybie pełnoekranowym przy uruchomieniu", "exitFullscreenOnPlayerClose": "Wyjdź z pełnego ekranu przy zamykaniu odtwarzacza", @@ -378,7 +378,7 @@ "advanced": "Zaawansowane", "codec": "Kodek", "resolution": "Rozdzielczość", - "bitrate": "Bitrate", + "bitrate": "Przepływność", "frameRate": "Klatki na sekundę", "aspectRatio": "Proporcje", "profile": "Profil", @@ -386,16 +386,16 @@ "colorSpace": "Przestrzeń kolorów", "colorRange": "Zakres kolorów", "colorPrimaries": "Kolory podstawowe", - "chromaSubsampling": "Subsampling chrominancji", + "chromaSubsampling": "Podpróbkowanie chrominancji", "channels": "Kanały", "subtitles": "Napisy", - "overallBitrate": "Całkowity bitrate", + "overallBitrate": "Całkowita przepływność", "path": "Ścieżka", "size": "Rozmiar", "container": "Kontener", "duration": "Czas trwania", "optimizedForStreaming": "Zoptymalizowane do strumieniowania", - "has64bitOffsets": "64-bitowe offsety" + "has64bitOffsets": "Przesunięcia 64-bitowe" }, "mediaMenu": { "markAsWatched": "Oznacz jako obejrzane", @@ -409,7 +409,7 @@ "deleteFromServer": "Usuń z serwera", "confirmDelete": "Usunąć to medium i jego pliki z serwera?", "deleteMultipleWarning": "Obejmuje to wszystkie odcinki i ich pliki.", - "mediaDeletedSuccessfully": "Element multimedialny usunięty pomyślnie", + "mediaDeletedSuccessfully": "Usunięto element multimedialny", "mediaFailedToDelete": "Nie udało się usunąć elementu multimedialnego", "rate": "Oceń", "playFromBeginning": "Odtwórz od początku", @@ -430,7 +430,7 @@ "mediaCardEpisode": "${title}, ${episodeInfo}", "mediaCardSeason": "${title}, ${seasonInfo}", "mediaCardWatched": "obejrzane", - "mediaCardPartiallyWatched": "${percent} procent obejrzane", + "mediaCardPartiallyWatched": "obejrzano w ${percent} procentach", "mediaCardUnwatched": "nieobejrzane", "tapToPlay": "Dotknij, aby odtworzyć", "decrease": "Zmniejsz", @@ -460,13 +460,13 @@ "videoControls": { "audioLabel": "Audio", "subtitlesLabel": "Napisy", - "resetToZero": "Zresetuj do 0ms", + "resetToZero": "Zresetuj do 0 ms", "addTime": "+${amount}${unit}", "minusTime": "-${amount}${unit}", - "playsLater": "${label} odtwarza później", - "playsEarlier": "${label} odtwarza wcześniej", + "playsLater": "${label}: później", + "playsEarlier": "${label}: wcześniej", "noOffset": "Bez przesunięcia", - "letterbox": "Letterbox", + "letterbox": "Pasy wokół obrazu", "fillScreen": "Wypełnij ekran", "stretch": "Rozciągnij", "lockRotation": "Zablokuj obrót", @@ -474,7 +474,7 @@ "timerActive": "Wyłącznik aktywny", "playbackWillPauseIn": "Odtwarzanie zatrzyma się za ${duration}", "sleepTimerEndOfVideo": "Koniec bieżącego wideo", - "sleepTimerStopAtHeader": "Zatrzymaj na", + "sleepTimerStopAtHeader": "Zatrzymaj o", "sleepTimerDurationHeader": "Minutnik", "playbackWillPauseAtEnd": "Odtwarzanie zatrzyma się na końcu tego wideo", "stillWatching": "Nadal oglądasz?", @@ -484,8 +484,8 @@ "playNext": "Odtwórz następny", "playButton": "Odtwórz", "pauseButton": "Pauza", - "showPlaybackControls": "", - "hidePlaybackControls": "", + "showPlaybackControls": "Pokaż elementy sterujące odtwarzaniem", + "hidePlaybackControls": "Ukryj elementy sterujące odtwarzaniem", "seekBackwardButton": "Przewiń do tyłu o ${seconds} sekund", "seekForwardButton": "Przewiń do przodu o ${seconds} sekund", "previousButton": "Poprzedni odcinek", @@ -520,7 +520,7 @@ "pipActive": "Odtwarzanie w trybie obraz w obrazie", "pipFailed": "Nie udało się uruchomić trybu obraz w obrazie", "screenshotSaved": "Zrzut ekranu zapisany", - "zoomPercent": "Zoom ${percent}%", + "zoomPercent": "Powiększenie ${percent}%", "pipErrors": { "androidVersion": "Wymaga Androida 8.0 lub nowszego", "iosVersion": "Wymaga iOS 15.0 lub nowszego", @@ -563,11 +563,11 @@ "streamInterrupted": "Strumień został przerwany. Naciśnij odtwarzanie lub przewiń, aby spróbować ponownie.", "liveStreamInterrupted": "Transmisja na żywo została przerwana. Naciśnij odtwarzanie, aby spróbować ponownie.", "fileInfoNotAvailable": "Informacje o pliku niedostępne", - "playbackAuthenticationRequired": "Sign in to the media server again to play this item.", - "playbackServerUnavailable": "The media server is unavailable. Try again later.", - "playbackDataInvalid": "The server returned invalid playback information.", - "playbackCancelled": "Playback was cancelled.", - "playbackFailed": "Playback could not be started.", + "playbackAuthenticationRequired": "Zaloguj się ponownie na serwerze multimediów, aby odtworzyć ten element.", + "playbackServerUnavailable": "Serwer multimediów jest niedostępny. Spróbuj ponownie później.", + "playbackDataInvalid": "Serwer zwrócił nieprawidłowe informacje o odtwarzaniu.", + "playbackCancelled": "Odtwarzanie zostało anulowane.", + "playbackFailed": "Nie udało się rozpocząć odtwarzania.", "errorLoadingFileInfo": "Błąd ładowania informacji o pliku: ${error}", "errorLoadingSeries": "Błąd ładowania serialu", "musicNotSupported": "Odtwarzanie muzyki nie jest jeszcze obsługiwane", @@ -628,17 +628,17 @@ "mpvConfig": { "title": "mpv.conf", "description": "Zaawansowane ustawienia odtwarzacza wideo", - "presets": "Presety", - "noPresets": "Brak zapisanych presetów", - "saveAsPreset": "Zapisz jako preset...", - "presetName": "Nazwa presetu", - "presetNameHint": "Wprowadź nazwę dla tego presetu", - "loadPreset": "Załaduj", + "presets": "Ustawienia wstępne", + "noPresets": "Brak zapisanych ustawień wstępnych", + "saveAsPreset": "Zapisz jako ustawienie wstępne...", + "presetName": "Nazwa ustawienia wstępnego", + "presetNameHint": "Wprowadź nazwę tego ustawienia wstępnego", + "loadPreset": "Wczytaj", "deletePreset": "Usuń", - "presetSaved": "Preset zapisany", - "presetLoaded": "Preset załadowany", - "presetDeleted": "Preset usunięty", - "confirmDeletePreset": "Czy na pewno chcesz usunąć ten preset?", + "presetSaved": "Zapisano ustawienie wstępne", + "presetLoaded": "Wczytano ustawienie wstępne", + "presetDeleted": "Usunięto ustawienie wstępne", + "confirmDeletePreset": "Czy na pewno chcesz usunąć to ustawienie wstępne?", "configPlaceholder": "gpu-api=vulkan\nhwdec=auto\n# comment" }, "dialog": { @@ -658,9 +658,9 @@ "signedOutPlex": "Wylogowano z Plex.", "signOutFailed": "Wylogowanie nie powiodło się.", "sectionTitle": "Profile", - "summarySingle": "Dodaj profile, aby łączyć zarządzanych użytkowników i tożsamości lokalne", - "summaryMultipleWithActive": "${count} profili · aktywny: ${activeName}", - "summaryMultiple": "${count} profili", + "summarySingle": "Dodaj profile, aby łączyć użytkowników zarządzanych z profilami lokalnymi", + "summaryMultipleWithActive": "Liczba profili: ${count} · aktywny: ${activeName}", + "summaryMultiple": "Liczba profili: ${count}", "removeConnectionTitle": "Usunąć połączenie?", "removeConnectionMessage": "Usuń dostęp ${displayName} do ${connectionLabel}. Inne profile go zachowają.", "deleteProfileTitle": "Usunąć profil?", @@ -687,13 +687,13 @@ "removeConnection": "Usuń", "profileRenamed": "Zmieniono nazwę profilu.", "borrowAddTo": "Dodaj do ${displayName}", - "borrowExplain": "Pożycz połączenie z innego profilu. Profile chronione PIN wymagają PIN-u.", - "borrowEmpty": "Nic do pożyczenia.", + "borrowExplain": "Skorzystaj z połączenia innego profilu. Profile chronione PIN-em wymagają podania PIN-u.", + "borrowEmpty": "Nie ma jeszcze żadnych dostępnych połączeń.", "borrowEmptySubtitle": "Najpierw połącz Plex lub Jellyfin z innym profilem.", - "borrowLoadFailed": "Available connections could not be loaded. Try again.", - "borrowFromProfile": "Od ${displayName}", - "borrowConnectionBorrowed": "Połączenie pożyczone.", - "borrowFailed": "Nie udało się pożyczyć połączenia.", + "borrowLoadFailed": "Nie udało się wczytać dostępnych połączeń. Spróbuj ponownie.", + "borrowFromProfile": "Z profilu ${displayName}", + "borrowConnectionBorrowed": "Dodano połączenie z innego profilu.", + "borrowFailed": "Nie udało się dodać połączenia z innego profilu.", "incorrectPin": "Nieprawidłowy PIN.", "incorrectPinTryAgain": "Nieprawidłowy PIN. Spróbuj ponownie.", "sourceProfileMissingParentAccount": "Profil źródłowy nie ma konta nadrzędnego.", @@ -738,7 +738,7 @@ "rating": "Ocena", "movie": "Film", "tvShow": "Serial TV", - "minutesLeft": "${minutes} min pozostało", + "minutesLeft": "Pozostało ${minutes} min", "moreLikeThis": "Więcej podobnych" }, "errors": { @@ -773,7 +773,7 @@ "allLibrariesHidden": "Wszystkie biblioteki są ukryte", "hiddenLibrariesCount": "Ukryte biblioteki (${count})", "thisLibraryIsEmpty": "Ta biblioteka jest pusta", - "noItemsMatchFilters": "Żadne elementy nie pasują do aktywnych filtrów", + "noItemsMatchFilters": "Żaden element nie pasuje do aktywnych filtrów", "resetFilters": "Resetuj filtry", "all": "Wszystkie", "clearAll": "Wyczyść wszystko", @@ -797,7 +797,7 @@ "noFoldersFound": "Nie znaleziono folderów", "folders": "foldery", "tabs": { - "recommended": "Rekomendowane", + "recommended": "Polecane", "browse": "Przeglądaj", "collections": "Kolekcje", "playlists": "Playlisty" @@ -848,10 +848,10 @@ }, "about": { "title": "O aplikacji", - "openSourceLicenses": "Licencje open source", + "openSourceLicenses": "Licencje oprogramowania open source", "versionLabel": "Wersja ${version}", - "appDescription": "Piękny klient Plex i Jellyfin na Flutter", - "viewLicensesDescription": "Zobacz licencje bibliotek zewnętrznych" + "appDescription": "Piękny klient Plex i Jellyfin stworzony we Flutterze", + "viewLicensesDescription": "Wyświetl licencje bibliotek innych firm" }, "serverSelection": { "noServersFoundForAccount": "Nie znaleziono serwerów dla ${username} (${email})", @@ -873,7 +873,7 @@ "relatedPackages": "Powiązane pakiety", "license": "Licencja", "licenseNumber": "Licencja ${number}", - "licensesCount": "${count} licencji" + "licensesCount": "Liczba licencji: ${count}" }, "navigation": { "libraries": "Biblioteki", @@ -894,7 +894,7 @@ "popularShows": "Popularne seriale", "trendingAnime": "Anime na czasie", "suggestedAnime": "Sugerowane anime", - "airingAnime": "Najlepsze emitowane anime", + "airingAnime": "Najpopularniejsze emitowane anime", "popularAnime": "Najpopularniejsze anime", "trending": "Na czasie", "upcomingMovies": "Nadchodzące filmy", @@ -957,11 +957,11 @@ "favorites": "Ulubione", "reorderFavorites": "Zmień kolejność ulubionych", "favoritesLoadFailed": "Nie udało się wczytać ulubionych. Sprawdź połączenie i spróbuj ponownie.", - "favoritesUpdateFailed": "Could not update favorites. Check your connection and try again.", + "favoritesUpdateFailed": "Nie udało się zaktualizować ulubionych. Sprawdź połączenie i spróbuj ponownie.", "joinSession": "Dołącz do trwającej sesji", "watchFromStart": "Oglądaj od początku (${minutes} min temu)", "watchLive": "Oglądaj na żywo", - "goToLive": "Przejdź do na żywo", + "goToLive": "Przejdź do transmisji na żywo", "record": "Nagraj", "recordEpisode": "Nagraj odcinek", "recordSeries": "Nagraj serial", @@ -1049,7 +1049,7 @@ "music": { "goToAlbum": "Przejdź do albumu", "goToArtist": "Przejdź do wykonawcy", - "instantMix": "Błyskawiczny miks", + "instantMix": "Miks błyskawiczny", "playNext": "Odtwórz następny", "addToQueue": "Dodaj do kolejki", "discNumber": "Płyta ${n}", @@ -1063,8 +1063,8 @@ "playingFrom": "Odtwarzanie z ${title}", "queue": "Kolejka", "clearQueue": "Wyczyść kolejkę", - "lyrics": "Tekst", - "noLyrics": "Brak dostępnego tekstu", + "lyrics": "Tekst utworu", + "noLyrics": "Brak tekstu utworu", "sleepTimer": "Wyłącznik czasowy", "sleepTimerEndOfTrack": "Koniec utworu", "sleepTimerMinutes": "${n} minut", @@ -1077,28 +1077,28 @@ }, "watchTogether": { "title": "Oglądaj razem", - "description": "Oglądaj treści zsynchronizowane z przyjaciółmi i rodziną", + "description": "Oglądaj treści wspólnie z rodziną i znajomymi dzięki synchronizacji odtwarzania", "createSession": "Utwórz sesję", "creating": "Tworzenie...", "joinSession": "Dołącz do sesji", "joining": "Dołączanie...", "controlMode": "Tryb kontroli", "controlModeQuestion": "Kto może kontrolować odtwarzanie?", - "hostOnly": "Tylko host", + "hostOnly": "Tylko gospodarz", "anyone": "Każdy", - "hostingSession": "Hostowanie sesji", + "hostingSession": "Prowadzenie sesji", "inSession": "W sesji", "sessionCode": "Kod sesji", "openSessionControls": "Otwórz sterowanie sesją „Oglądaj razem”", "copySessionCode": "Skopiuj kod sesji", - "hostControlsPlayback": "Host kontroluje odtwarzanie", - "anyoneCanControl": "Każdy może kontrolować odtwarzanie", - "hostControls": "Kontrola hosta", - "anyoneControls": "Kontrola każdego", + "hostControlsPlayback": "Gospodarz steruje odtwarzaniem", + "anyoneCanControl": "Każdy może sterować odtwarzaniem", + "hostControls": "Steruje gospodarz", + "anyoneControls": "Steruje każdy", "participants": "Uczestnicy", - "host": "Host", - "hostBadge": "HOST", - "youAreHost": "Jesteś hostem", + "host": "Gospodarz", + "hostBadge": "GOSPODARZ", + "youAreHost": "Jesteś gospodarzem", "watchingWithOthers": "Oglądasz z innymi", "endSession": "Zakończ sesję", "leaveSession": "Opuść sesję", @@ -1120,17 +1120,17 @@ "failedToCreate": "Nie udało się utworzyć sesji", "failedToJoin": "Nie udało się dołączyć do sesji", "sessionCodeCopied": "Kod sesji skopiowany do schowka", - "relayUnreachable": "Serwer relay jest nieosiągalny. Blokada ISP może uniemożliwiać Watch Together.", - "reconnectingToHost": "Ponowne łączenie z hostem...", + "relayUnreachable": "Serwer pośredniczący jest nieosiągalny. Blokada operatora internetowego może uniemożliwiać korzystanie z funkcji „Oglądaj razem”.", + "reconnectingToHost": "Ponowne łączenie z gospodarzem...", "currentPlayback": "Bieżące odtwarzanie", "joinCurrentPlayback": "Dołącz do bieżącego odtwarzania", - "joinCurrentPlaybackDescription": "Wróć do tego, co host aktualnie ogląda", + "joinCurrentPlaybackDescription": "Wróć do treści oglądanej obecnie przez gospodarza", "failedToOpenCurrentPlayback": "Nie udało się otworzyć bieżącego odtwarzania", "participantJoined": "${name} dołączył", "participantLeft": "${name} opuścił", "participantPaused": "${name} wstrzymał", "participantResumed": "${name} wznowił", - "participantSeeked": "${name} przewinął", + "participantSeeked": "${name} zmienił pozycję odtwarzania", "participantBuffering": "${name} buforuje", "participantNeedsUpdate": "${name} używa starszej wersji aplikacji — synchronizacja jest niedostępna", "resumingWithout": "Wznawianie bez ${name}", @@ -1182,7 +1182,7 @@ "allEpisodes": "Wszystkie odcinki", "unwatchedOnly": "Tylko nieobejrzane", "nextNUnwatched": "Następne ${count} nieobejrzanych", - "customAmount": "Własna ilość...", + "customAmount": "Własna liczba...", "includeSpecials": "Uwzględnij odcinki specjalne", "howManyEpisodes": "Ile odcinków?", "invalidEpisodeCount": "Wprowadź prawidłową liczbę odcinków.", @@ -1201,11 +1201,11 @@ "manageSyncRule": "Zarządzaj synchronizacją", "editEpisodeCount": "Liczba odcinków", "editSyncFilter": "Filtr synchronizacji", - "syncAllItems": "Synchronizuję wszystkie elementy", - "syncUnwatchedItems": "Synchronizuję nieobejrzane elementy", + "syncAllItems": "Synchronizacja wszystkich elementów", + "syncUnwatchedItems": "Synchronizacja nieobejrzanych elementów", "syncRuleServerContext": "Serwer: ${server} • ${status}", "syncRuleAvailable": "Dostępne", - "syncRuleOffline": "Offline", + "syncRuleOffline": "Brak połączenia", "syncRuleSignInRequired": "Wymagane logowanie", "syncRuleNotAvailableForProfile": "Niedostępne dla bieżącego profilu", "syncRuleUnknownServer": "Nieznany serwer", @@ -1229,7 +1229,7 @@ "deleteShaderConfirm": "Usunąć \"${name}\"?" }, "companionRemote": { - "title": "Pilot zdalny", + "title": "Pilot", "connectedTo": "Połączono z ${name}", "unknownDevice": "Nieznane urządzenie", "session": { @@ -1251,7 +1251,7 @@ "connecting": "Łączenie...", "searchingForDevices": "Szukanie urządzeń...", "noDevicesFound": "Nie znaleziono urządzeń w sieci", - "noDevicesHint": "Otwórz Plezy na komputerze i użyj tego samego WiFi", + "noDevicesHint": "Otwórz Plezy na komputerze i połącz oba urządzenia z tą samą siecią Wi-Fi", "availableDevices": "Dostępne urządzenia", "manualConnection": "Połączenie ręczne", "cryptoInitFailed": "Nie udało się uruchomić bezpiecznego połączenia. Najpierw zaloguj się do Plex.", @@ -1278,7 +1278,7 @@ "tabDownloads": "Pobrania", "tabSettings": "Ustawienia", "previous": "Poprzedni", - "playPause": "Odtwórz/Pauza", + "playPause": "Odtwórz/wstrzymaj", "next": "Następny", "seekBack": "Przewiń wstecz", "stop": "Stop", @@ -1306,14 +1306,14 @@ "playbackSpeed": "Prędkość odtwarzania", "normalSpeed": "Normalna", "sleepTimerActive": "Aktywny (${duration})", - "zoom": "Zoom", + "zoom": "Powiększenie", "sleepTimer": "Wyłącznik czasowy", "audioSync": "Synchronizacja audio", "subtitleSync": "Synchronizacja napisów", "hdr": "HDR", "audioOutput": "Wyjście audio", "performanceOverlay": "Nakładka wydajności", - "audioPassthrough": "Bezpośrednie audio", + "audioPassthrough": "Przekazywanie dźwięku", "audioNormalization": "Normalizacja głośności", "audioDownmix": "Miksowanie do stereo" }, @@ -1335,11 +1335,11 @@ "hwFormat": "Format HW", "matrix": "Macierz", "primaries": "Barwy podstawowe", - "transfer": "Transfer", + "transfer": "Charakterystyka przenoszenia", "renderFps": "FPS renderowania", "displayFps": "FPS ekranu", - "avSync": "Sync A/V", - "dropped": "Porzucone", + "avSync": "Synchronizacja A/V", + "dropped": "Pominięte", "dvRpus": "DV RPU", "dvRpuAverage": "Śr. DV RPU", "dvSampleAverage": "Śr. próbki DV", @@ -1347,8 +1347,8 @@ "minLuma": "Min. luma", "maxCll": "MaxCLL", "maxFall": "MaxFALL", - "cacheUsed": "Użyty cache", - "cacheLimit": "Limit cache'u", + "cacheUsed": "Użyta pamięć podręczna", + "cacheLimit": "Limit pamięci podręcznej", "speed": "Szybkość", "player": "Odtwarzacz", "memory": "Pamięć", @@ -1384,7 +1384,7 @@ "releaseDate": "Data premiery", "contentRating": "Klasyfikacja wiekowa", "studio": "Studio", - "tagline": "Tagline", + "tagline": "Slogan", "summary": "Opis", "poster": "Plakat", "background": "Tło", @@ -1406,9 +1406,9 @@ "artworkOption": "Opcja grafiki ${index}", "selectedArtworkOption": "Opcja grafiki ${index}, wybrana", "notSet": "Nie ustawiono", - "libraryDefault": "Domyślne biblioteki", - "accountDefault": "Domyślne konta", - "seriesDefault": "Domyślne serialu", + "libraryDefault": "Domyślne dla biblioteki", + "accountDefault": "Domyślne dla konta", + "seriesDefault": "Domyślne dla serialu", "episodeSorting": "Sortowanie odcinków", "oldestFirst": "Najstarsze najpierw", "newestFirst": "Najnowsze najpierw", @@ -1427,16 +1427,16 @@ "show": "Pokaż", "hide": "Ukryj", "episodeOrdering": "Kolejność odcinków", - "tmdbAiring": "The Movie Database (Emisja)", - "tvdbAiring": "TheTVDB (Emisja)", - "tvdbAbsolute": "TheTVDB (Absolutna)", + "tmdbAiring": "The Movie Database (kolejność emisji)", + "tvdbAiring": "TheTVDB (kolejność emisji)", + "tvdbAbsolute": "TheTVDB (numeracja bezwzględna)", "metadataLanguage": "Język metadanych", "useOriginalTitle": "Użyj oryginalnego tytułu", "preferredAudioLanguage": "Preferowany język audio", "preferredSubtitleLanguage": "Preferowany język napisów", "subtitleMode": "Tryb automatycznego wyboru napisów", "manuallySelected": "Wybrany ręcznie", - "shownWithForeignAudio": "Wyświetlane przy obcojęzycznym audio", + "shownWithForeignAudio": "Wyświetlane przy dźwięku w obcym języku", "alwaysEnabled": "Zawsze włączone", "tags": "Tagi", "addTag": "Dodaj tag", @@ -1454,7 +1454,7 @@ "match": "Dopasuj...", "fixMatch": "Popraw dopasowanie...", "unmatch": "Usuń dopasowanie", - "unmatchConfirm": "Wyczyścić to dopasowanie? Plex uzna je za niedopasowane do ponownego dopasowania.", + "unmatchConfirm": "Usunąć to dopasowanie? Plex będzie traktować element jako niedopasowany, dopóki nie zostanie dopasowany ponownie.", "unmatchSuccess": "Dopasowanie usunięte", "unmatchFailed": "Nie udało się usunąć dopasowania", "matchApplied": "Dopasowanie zastosowane", @@ -1474,11 +1474,11 @@ "connected": "Połączono", "connectedAs": "Połączono jako @${username}", "disconnectConfirm": "Rozłączyć konto Trakt?", - "disconnectConfirmBody": "Plezy przestanie wysyłać zdarzenia do Trakt. Możesz połączyć ponownie w dowolnym momencie.", - "scrobble": "Scrobbling w czasie rzeczywistym", - "scrobbleDescription": "Wysyłaj zdarzenia odtwarzania, pauzy i zatrzymania do Trakt podczas odtwarzania.", - "watchedSync": "Synchronizuj status obejrzane", - "watchedSyncDescription": "Gdy oznaczysz pozycje jako obejrzane w Plezy, zostaną też oznaczone w Trakt." + "disconnectConfirmBody": "Plezy przestanie wysyłać zdarzenia do serwisu Trakt. Połączenie można przywrócić w dowolnym momencie.", + "scrobble": "Śledzenie odtwarzania w czasie rzeczywistym", + "scrobbleDescription": "Wysyłaj do serwisu Trakt zdarzenia odtwarzania, wstrzymania i zatrzymania.", + "watchedSync": "Synchronizuj stan obejrzenia", + "watchedSyncDescription": "Gdy oznaczysz element jako obejrzany w Plezy, zostanie on również oznaczony jako obejrzany w serwisie Trakt." }, "seerr": { "title": "Seerr", @@ -1546,7 +1546,7 @@ "libraryFilter": { "title": "Filtr bibliotek", "subtitleAllSyncing": "Synchronizowanie wszystkich bibliotek", - "subtitleNoneSyncing": "Nic nie synchronizuje", + "subtitleNoneSyncing": "Brak synchronizowanych bibliotek", "subtitleBlocked": "${count} zablokowanych", "subtitleAllowed": "${count} dozwolonych", "mode": "Tryb filtra", @@ -1560,8 +1560,8 @@ }, "addServer": { "addJellyfinTitle": "Dodaj serwer Jellyfin", - "serverUrls": "URL-e serwera", - "serverUrlsHelper": "Można podać wiele adresów URL, rozdzielonych przecinkami.", + "serverUrls": "Adresy URL serwera", + "serverUrlsHelper": "Można podać wiele adresów URL rozdzielonych przecinkami.", "findServer": "Znajdź serwer", "searchingLocalServers": "Szukanie lokalnych serwerów Jellyfin...", "localServers": "Lokalne serwery Jellyfin", @@ -1586,6 +1586,6 @@ "connectToJellyfinCardSubtitle": "Wpisz URL serwera, nazwę użytkownika i hasło.", "connectToJellyfinCardSubtitleScoped": "Zaloguj się do serwera Jellyfin. Powiązane z ${name}.", "borrowFromAnotherProfile": "Pożycz z innego profilu", - "borrowFromAnotherProfileSubtitle": "Użyj połączenia z innego profilu. Profile chronione PIN wymagają PIN-u." + "borrowFromAnotherProfileSubtitle": "Użyj połączenia innego profilu. Profile chronione PIN-em wymagają podania PIN-u." } } diff --git a/lib/i18n/pt.i18n.json b/lib/i18n/pt.i18n.json index fc976110..5e0aaeac 100644 --- a/lib/i18n/pt.i18n.json +++ b/lib/i18n/pt.i18n.json @@ -4,20 +4,20 @@ }, "auth": { "signInWithPlex": "Entrar com Plex", - "showQRCode": "Mostrar QR Code", + "showQRCode": "Mostrar código QR", "authenticate": "Autenticar", "authenticationTimeout": "A autenticação expirou. Tente novamente.", - "scanQRToSignIn": "Escaneie este QR code para entrar", + "scanQRToSignIn": "Leia este código QR para entrar", "waitingForAuth": "Aguardando autenticação...\nEntre pelo navegador.", "useBrowser": "Usar navegador", "or": "ou", "connectToJellyfin": "Conectar ao Jellyfin", "useQuickConnect": "Usar Quick Connect", "quickConnectInstructions": "Abra o Quick Connect no Jellyfin e insira este código.", - "quickConnectWaiting": "A aguardar aprovação…", + "quickConnectWaiting": "Aguardando aprovação…", "quickConnectCancel": "Cancelar", "quickConnectExpired": "Quick Connect expirou. Tente novamente.", - "localDataRecoveryRequired": "Plezy could not safely recover local sign-in and pending playback data. Please sign in again." + "localDataRecoveryRequired": "O Plezy não conseguiu recuperar com segurança os dados locais de acesso e de reproduções pendentes. Entre novamente." }, "common": { "cancel": "Cancelar", @@ -56,7 +56,7 @@ "episodeNumberTitle": "Episódio ${number} - ${title}", "chapterNumber": "Capítulo ${number}", "reconnect": "Reconectar", - "viewAll": "Ver Tudo", + "viewAll": "Ver tudo", "checkingNetwork": "Verificando rede...", "loadingServers": "Carregando servidores...", "connectingToServers": "Conectando aos servidores...", @@ -74,10 +74,10 @@ "logs": "Logs" }, "update": { - "available": "Atualização Disponível", - "versionAvailable": "Versão ${version} está disponível", + "available": "Atualização disponível", + "versionAvailable": "A versão ${version} está disponível", "currentVersion": "Atual: ${version}", - "skipVersion": "Pular Esta Versão", + "skipVersion": "Pular esta versão", "viewRelease": "Ver Lançamento", "latestVersion": "Você está na versão mais recente", "checkFailed": "Falha ao verificar atualizações" @@ -92,9 +92,9 @@ "videoPlayback": "Reprodução de Vídeo", "videoPlaybackDescription": "Configurar comportamento de reprodução", "advanced": "Avançado", - "episodePosterMode": "Estilo do Poster de Episódio", - "seriesPoster": "Poster da Série", - "seasonPoster": "Poster da Temporada", + "episodePosterMode": "Estilo do pôster do episódio", + "seriesPoster": "Pôster da série", + "seasonPoster": "Pôster da temporada", "episodeThumbnail": "Miniatura", "showHeroSectionDescription": "Exibir carrossel de conteúdo em destaque na tela inicial", "secondsLabel": "Segundos", @@ -109,16 +109,16 @@ "libraryDensity": "Densidade da Biblioteca", "compact": "Compacto", "comfortable": "Confortável", - "tvCornerSpotlightBackdrop": "", - "tvCornerSpotlightBackdropDescription": "", + "tvCornerSpotlightBackdrop": "Imagem de destaque no canto", + "tvCornerSpotlightBackdropDescription": "Mostrar a imagem de destaque no canto superior direito em vez de preencher a tela", "viewMode": "Modo de Visualização", "gridView": "Grade", "listView": "Lista", "showHeroSection": "Mostrar Seção de Destaque", - "continueWatchingAction": "Ação de Continuar Assistindo", + "continueWatchingAction": "Ação da seção Continuar assistindo", "continueWatchingPlay": "Reproduzir", "continueWatchingDetails": "Abrir detalhes", - "episodeAction": "Ação de Episódio", + "episodeAction": "Ação do episódio", "episodePlay": "Reproduzir", "episodeDetails": "Abrir detalhes", "useGlobalHubs": "Usar layout inicial", @@ -138,16 +138,16 @@ "tvFullCardLayout": "Cartões TV completos", "tvFullCardLayoutDescription": "Usar cartões de TV só com imagem e nomes dos atores sobrepostos", "focusGlow": "Brilho de foco", - "focusGlowDescription": "Mostrar um brilho suave à volta do cartão em foco", + "focusGlowDescription": "Mostrar um brilho suave ao redor do cartão em foco", "visualEffects": "Efeitos visuais", "visualEffectsAuto": "Automático", - "visualEffectsAutoDescription": "Reduza automaticamente os efeitos em dispositivos de baixo consumo", + "visualEffectsAutoDescription": "Reduzir os efeitos automaticamente em dispositivos de baixo consumo", "visualEffectsFull": "Completos", "visualEffectsReduced": "Reduzidos", - "visualEffectsReducedDescription": "Menos animações e artes em menor resolução", - "hideSpoilers": "Ocultar Spoilers de Episódios Não Assistidos", - "hideSpoilersDescription": "Desfocar miniaturas e descrições de episódios não vistos", - "playerBackend": "Backend do Player", + "visualEffectsReducedDescription": "Menos animações e imagens em menor resolução", + "hideSpoilers": "Ocultar spoilers de episódios não assistidos", + "hideSpoilersDescription": "Desfocar miniaturas e descrições de episódios não assistidos", + "playerBackend": "Mecanismo de reprodução", "exoPlayer": "ExoPlayer", "mpv": "mpv", "hardwareDecoding": "Decodificação por Hardware", @@ -164,29 +164,29 @@ "largeSkipDuration": "Duração do Avanço Longo", "rewindOnResume": "Rebobinar ao retomar", "secondsUnit": "${seconds} segundos", - "defaultSleepTimer": "Timer de Sono Padrão", + "defaultSleepTimer": "Temporizador de suspensão padrão", "minutesUnit": "${minutes} minutos", "rememberTrackSelections": "Lembrar seleção de faixas por série/filme", "rememberTrackSelectionsDescription": "Lembrar escolhas de áudio e legendas por título", "showChapterMarkersOnTimeline": "Mostrar marcadores de capítulos na barra de reprodução", "showChapterMarkersOnTimelineDescription": "Segmentar a barra de reprodução nos limites dos capítulos", "clickVideoTogglesPlayback": "Clicar no vídeo para alternar reprodução/pausa", - "clickVideoTogglesPlaybackDescription": "Clique no vídeo para reproduzir/pausar em vez de mostrar controles.", - "videoPlayerControls": "Controles do Player de Vídeo", + "clickVideoTogglesPlaybackDescription": "Clicar no vídeo para reproduzir ou pausar em vez de mostrar os controles.", + "videoPlayerControls": "Controles do reprodutor de vídeo", "keyboardShortcuts": "Atalhos de Teclado", "keyboardShortcutsDescription": "Personalizar atalhos de teclado", - "videoPlayerNavigation": "Navegação do Player de Vídeo", - "videoPlayerNavigationDescription": "Usar teclas de seta para navegar nos controles do player", - "watchTogetherRelay": "Relay do Assistir Juntos", - "watchTogetherRelayDescription": "Defina um relay personalizado. Todos devem usar o mesmo servidor.", - "watchTogetherRelayHint": "https://meu-relay.exemplo.com.br", - "watchTogetherRelayInvalid": "Enter a valid HTTP or HTTPS relay base URL.", + "videoPlayerNavigation": "Navegação do reprodutor de vídeo", + "videoPlayerNavigationDescription": "Usar as teclas de seta para navegar pelos controles do reprodutor", + "watchTogetherRelay": "Servidor de retransmissão do Assistir Juntos", + "watchTogetherRelayDescription": "Definir um servidor de retransmissão personalizado. Todos devem usar o mesmo servidor.", + "watchTogetherRelayHint": "https://minha-retransmissao.exemplo.com.br", + "watchTogetherRelayInvalid": "Insira uma URL base de retransmissão HTTP ou HTTPS válida.", "crashReporting": "Relatório de Erros", "crashReportingDescription": "Enviar relatórios de erros para ajudar a melhorar o app", "debugLogging": "Log de Depuração", "debugLoggingDescription": "Ativar log detalhado para solução de problemas", "viewLogs": "Ver Logs", - "viewLogsDescription": "Ver logs do aplicativo", + "viewLogsDescription": "Ver logs do app", "clearCache": "Limpar Cache", "clearCacheDescription": "Limpar imagens e dados em cache. O conteúdo pode carregar mais devagar.", "clearCacheSuccess": "Cache limpo com sucesso", @@ -195,7 +195,7 @@ "resetSettingsSuccess": "Configurações redefinidas com sucesso", "backup": "Backup", "exportSettings": "Exportar Configurações", - "exportSettingsDescription": "Salve suas preferências em um arquivo", + "exportSettingsDescription": "Salvar suas preferências em um arquivo", "exportSettingsSuccess": "Configurações exportadas", "importSettings": "Importar Configurações", "importSettingsDescription": "Restaurar preferências a partir de um arquivo", @@ -212,23 +212,23 @@ "autoCheckUpdatesOnStartup": "Verificar atualizações automaticamente ao iniciar", "autoCheckUpdatesOnStartupDescription": "Notificar ao iniciar quando houver atualização disponível", "validationErrorEnterNumber": "Insira um número válido", - "validationErrorDuration": "A duração deve ser entre ${min} e ${max} ${unit}", + "validationErrorDuration": "A duração deve estar entre ${min} e ${max} ${unit}", "shortcutAlreadyAssigned": "Atalho já atribuído a ${action}", "shortcutUpdated": "Atalho atualizado para ${action}", - "saveFailed": "Could not save changes. Try again.", - "autoSkip": "Pular Automaticamente", - "autoSkipIntro": "Pular Intro Automaticamente", - "autoSkipIntroDescription": "Pular marcadores de intro automaticamente após alguns segundos", - "autoSkipCredits": "Pular Créditos Automaticamente", - "autoSkipCreditsDescription": "Pular créditos automaticamente e reproduzir próximo episódio", + "saveFailed": "Não foi possível salvar as alterações. Tente novamente.", + "autoSkip": "Pular automaticamente", + "autoSkipIntro": "Pular introdução automaticamente", + "autoSkipIntroDescription": "Pular marcadores de introdução automaticamente após alguns segundos", + "autoSkipCredits": "Pular créditos automaticamente", + "autoSkipCreditsDescription": "Pular os créditos automaticamente e reproduzir o próximo episódio", "forceSkipMarkerFallback": "Forçar marcadores alternativos", - "forceSkipMarkerFallbackDescription": "Usar padrões de títulos de capítulos mesmo quando Plex tiver marcadores", - "autoSkipDelay": "Atraso do Pulo Automático", + "forceSkipMarkerFallbackDescription": "Usar padrões de títulos de capítulos mesmo quando o Plex tiver marcadores", + "autoSkipDelay": "Atraso para pular automaticamente", "autoSkipDelayDescription": "Aguardar ${seconds} segundos antes de pular automaticamente", - "introPattern": "Padrão de marcador de intro", - "introPatternDescription": "Expressão regular para corresponder marcadores de intro nos títulos dos capítulos", - "creditsPattern": "Padrão de marcador de créditos", - "creditsPatternDescription": "Expressão regular para corresponder marcadores de créditos nos títulos dos capítulos", + "introPattern": "Padrão do marcador de introdução", + "introPatternDescription": "Expressão regular que identifica marcadores de introdução nos títulos dos capítulos", + "creditsPattern": "Padrão do marcador de créditos", + "creditsPatternDescription": "Expressão regular que identifica marcadores de créditos nos títulos dos capítulos", "invalidRegex": "Expressão regular inválida", "regex": "Expressão regular", "downloads": "Downloads", @@ -242,11 +242,11 @@ "downloadLocationReset": "Local de download redefinido para padrão", "downloadLocationInvalid": "A pasta selecionada não permite gravação", "downloadLocationPickerUnavailable": "A seleção de pasta não está disponível neste dispositivo", - "downloadOnWifiOnly": "Baixar apenas no WiFi", - "downloadOnWifiOnlyDescription": "Impedir downloads quando em dados móveis", - "autoRemoveWatchedDownloads": "Remover downloads assistidos automaticamente", - "autoRemoveWatchedDownloadsDescription": "Excluir downloads assistidos automaticamente", - "cellularDownloadBlocked": "Downloads estão bloqueados na rede móvel. Use WiFi ou altere a configuração.", + "downloadOnWifiOnly": "Baixar apenas por Wi-Fi", + "downloadOnWifiOnlyDescription": "Impedir downloads ao usar dados móveis", + "autoRemoveWatchedDownloads": "Remover automaticamente os downloads assistidos", + "autoRemoveWatchedDownloadsDescription": "Excluir automaticamente os downloads assistidos", + "cellularDownloadBlocked": "Os downloads estão bloqueados nos dados móveis. Use Wi-Fi ou altere a configuração.", "maxVolume": "Volume Máximo", "maxVolumeDescription": "Permitir aumento de volume acima de 100% para mídias silenciosas", "maxVolumePercent": "${percent}%", @@ -255,38 +255,38 @@ "services": "Serviços", "servicesDescription": "Conecte Trakt, MyAnimeList, Seerr e mais", "manageLibrariesDescription": "Reordene e oculte bibliotecas", - "companionRemoteServer": "Servidor de controlo remoto", - "companionRemoteServerDescription": "Permitir que dispositivos móveis na sua rede controlem esta aplicação", - "autoPip": "Picture-in-Picture Automático", - "autoPipDescription": "Entrar em picture-in-picture ao sair durante a reprodução", - "matchContentFrameRate": "Corresponder Taxa de Quadros do Conteúdo", + "companionRemoteServer": "Servidor de controle remoto", + "companionRemoteServerDescription": "Permitir que dispositivos móveis na sua rede controlem este app", + "autoPip": "Picture-in-picture automático", + "autoPipDescription": "Entrar automaticamente no modo picture-in-picture ao sair do app durante a reprodução", + "matchContentFrameRate": "Ajustar à taxa de quadros do conteúdo", "matchContentFrameRateDescription": "Ajustar a taxa de atualização da tela ao conteúdo de vídeo", - "matchRefreshRate": "Corresponder Taxa de Atualização", + "matchRefreshRate": "Ajustar à taxa de atualização", "matchRefreshRateDescription": "Ajustar a taxa de atualização da tela em tela cheia", - "matchDynamicRange": "Corresponder Faixa Dinâmica", + "matchDynamicRange": "Ajustar à faixa dinâmica", "matchDynamicRangeDescription": "Ativar HDR para conteúdo HDR e depois voltar para SDR", - "displaySwitchDelay": "Atraso na Troca de Tela", - "tunneledPlayback": "Reprodução Tunelizada", - "tunneledPlaybackDescription": "Usar tunelamento de vídeo. Desative se HDR mostrar vídeo preto.", - "audioPassthrough": "Passagem de Áudio", - "audioPassthroughDescription": "Envie áudio Dolby/DTS para o seu receptor ou TV sem recodificar, preservando o som surround. Desative se não tiver som.", - "audioPassthroughDescriptionAppleTv": "Entrega Dolby Digital Plus (incluindo Atmos) ao sistema como bitstream. DTS e TrueHD continuam sendo reproduzidos como PCM multicanal. Podem ocorrer breves cortes de áudio ao buscar.", - "audioDownmix": "Downmix para Estéreo", - "audioDownmixDescription": "Mistura o áudio surround em dois canais para alto-falantes estéreo ou fones de ouvido", - "downmixCenterBoost": "Reforço do Canal Central", + "displaySwitchDelay": "Atraso na troca do modo de exibição", + "tunneledPlayback": "Reprodução em túnel", + "tunneledPlaybackDescription": "Usar o tunelamento de vídeo. Desative se o vídeo ficar preto ao reproduzir em HDR.", + "audioPassthrough": "Passagem direta de áudio", + "audioPassthroughDescription": "Enviar o áudio Dolby/DTS ao receptor ou à TV sem recodificação, preservando o som surround. Desative se não houver som.", + "audioPassthroughDescriptionAppleTv": "Usar o decodificador Dolby nativo da Apple para Dolby Digital Plus, incluindo Atmos. DTS e TrueHD continuam sendo reproduzidos como PCM multicanal. Desative se não houver som.", + "audioDownmix": "Conversão para estéreo", + "audioDownmixDescription": "Converter o áudio surround em dois canais para alto-falantes estéreo ou fones de ouvido", + "downmixCenterBoost": "Reforço do canal central", "downmixCenterBoostValue": "${db} dB", "downmixCenterBoostLabel": "Reforço (dB)", "downmixCenterBoostShort": "dB", - "audioDownmixNormalize": "Normalizar Volume no Downmix", - "audioDownmixNormalizeDescription": "Reduz a mixagem para evitar saturação. Desative para manter o volume original (cenas altas podem distorcer).", + "audioDownmixNormalize": "Normalizar volume na conversão para estéreo", + "audioDownmixNormalizeDescription": "Reduzir o volume da mixagem para evitar saturação. Desative para manter o volume original, que pode distorcer em cenas muito altas.", "atmosDiagnostics": "Teste de saída Atmos", - "atmosDiagnosticsDescription": "Diagnostique a saída Dolby Atmos reproduzindo sinais de teste pelo player do sistema", - "atmosTestHlsAtmos": "Stream Atmos da Apple", - "atmosTestHlsAtmosDescription": "Stream Dolby Atmos comprovadamente bom. O receptor deve mostrar Dolby Atmos.", - "atmosTestHlsControl": "Stream surround da Apple", - "atmosTestHlsControlDescription": "Stream de controle sem Atmos. O receptor deve mostrar surround sem Atmos.", - "atmosTestRawStream": "Stream EAC3 bruto", - "atmosTestRawStreamDescription": "Transmite o arquivo de teste exatamente como a reprodução Atmos no player. Requer a URL do arquivo de teste.", + "atmosDiagnosticsDescription": "Diagnosticar a saída Dolby Atmos reproduzindo sinais de teste pelo reprodutor do sistema", + "atmosTestHlsAtmos": "Transmissão Atmos da Apple", + "atmosTestHlsAtmosDescription": "Transmissão Dolby Atmos comprovadamente compatível. O receptor deve indicar Dolby Atmos.", + "atmosTestHlsControl": "Transmissão surround da Apple", + "atmosTestHlsControlDescription": "Transmissão de controle sem Atmos. O receptor deve indicar surround sem Atmos.", + "atmosTestRawStream": "Transmissão EAC3 bruta", + "atmosTestRawStreamDescription": "Transmite o arquivo de teste exatamente como na reprodução Atmos pelo reprodutor. Requer a URL do arquivo de teste.", "atmosTestRawFile": "Arquivo EAC3 bruto", "atmosTestRawFileDescription": "Reproduz o arquivo de teste com duração conhecida. Requer a URL do arquivo de teste.", "atmosTestStop": "Parar teste", @@ -300,25 +300,25 @@ "dvConversionNative": "Nativo / desativado", "dvConversionDv81": "P7 → P8.1", "dvConversionHevcStrip": "P7 → HEVC", - "dvConversionAutoDescription": "Usar detecção de recursos do dispositivo e comportamento normal de fallback", - "dvConversionNativeDescription": "Forçar DV7 nativo e suprimir nova tentativa de conversão DV", - "dvConversionDv81Description": "Forçar conversão RPU inline para Dolby Vision perfil 8.1", - "dvConversionHevcStripDescription": "Remover camadas RPU/EL do Dolby Vision e apresentar HEVC simples", + "dvConversionAutoDescription": "Usar a detecção de recursos do dispositivo e o comportamento alternativo padrão", + "dvConversionNativeDescription": "Forçar DV7 nativo e impedir uma nova tentativa de conversão de DV", + "dvConversionDv81Description": "Forçar a conversão RPU integrada para Dolby Vision perfil 8.1", + "dvConversionHevcStripDescription": "Remover as camadas RPU/EL do Dolby Vision e apresentar HEVC sem Dolby Vision", "requireProfileSelectionOnOpen": "Pedir perfil ao abrir o app", - "requireProfileSelectionOnOpenDescription": "Mostrar seleção de perfil toda vez que o app for aberto", + "requireProfileSelectionOnOpenDescription": "Mostrar a seleção de perfil sempre que o app for aberto", "forceTvMode": "Forçar modo TV", - "forceTvModeDescription": "Forçar layout TV. Para dispositivos sem detecção automática. Requer reinício.", + "forceTvModeDescription": "Forçar o layout de TV em dispositivos sem detecção automática. Requer reiniciar o app.", "startInFullscreen": "Iniciar em tela cheia", "startInFullscreenDescription": "Abrir o Plezy em modo de tela cheia ao iniciar", - "exitFullscreenOnPlayerClose": "Sair do ecrã inteiro ao fechar o leitor", - "exitFullscreenOnPlayerCloseDescription": "Sair automaticamente do modo de ecrã inteiro ao fechar o leitor de vídeo", - "autoHidePerformanceOverlay": "Ocultar overlay de desempenho automaticamente", - "autoHidePerformanceOverlayDescription": "Desvanecer o overlay de desempenho com os controles de reprodução", + "exitFullscreenOnPlayerClose": "Sair da tela cheia ao fechar o reprodutor", + "exitFullscreenOnPlayerCloseDescription": "Sair automaticamente da tela cheia ao fechar o reprodutor de vídeo", + "autoHidePerformanceOverlay": "Ocultar automaticamente o painel de desempenho", + "autoHidePerformanceOverlayDescription": "Esmaecer o painel de desempenho junto com os controles de reprodução", "showNavBarLabels": "Mostrar Rótulos da Barra de Navegação", "showNavBarLabelsDescription": "Exibir rótulos de texto sob os ícones da barra de navegação", "startupSection": "Seção inicial", "liveTvDefaultFavorites": "Canais favoritos por padrão", - "liveTvDefaultFavoritesDescription": "Mostrar apenas canais favoritos ao abrir TV ao vivo", + "liveTvDefaultFavoritesDescription": "Mostrar apenas os canais favoritos ao abrir a TV ao vivo", "display": "Tela", "homeScreen": "Tela inicial", "navigation": "Navegação", @@ -366,23 +366,23 @@ "subSeekNext": "Ir para Próxima Legenda", "subSeekPrev": "Ir para Legenda Anterior", "shaderToggle": "Alternar Shaders", - "skipMarker": "Pular Intro/Créditos", + "skipMarker": "Pular introdução/créditos", "screenshot": "Capturar tela" } }, "fileInfo": { - "title": "Info do Arquivo", + "title": "Informações do arquivo", "video": "Vídeo", "audio": "Áudio", "file": "Arquivo", "advanced": "Avançado", "codec": "Codec", "resolution": "Resolução", - "bitrate": "Taxa de Bits", + "bitrate": "Taxa de bits", "frameRate": "Taxa de Quadros", "aspectRatio": "Proporção", "profile": "Perfil", - "bitDepth": "Profundidade de Bits", + "bitDepth": "Profundidade de bits", "colorSpace": "Espaço de Cor", "colorRange": "Faixa de Cor", "colorPrimaries": "Primárias de Cor", @@ -392,10 +392,10 @@ "overallBitrate": "Taxa de bits total", "path": "Caminho", "size": "Tamanho", - "container": "Container", + "container": "Contêiner", "duration": "Duração", - "optimizedForStreaming": "Otimizado para Streaming", - "has64bitOffsets": "Offsets de 64 bits" + "optimizedForStreaming": "Otimizado para transmissão", + "has64bitOffsets": "Deslocamentos de 64 bits" }, "mediaMenu": { "markAsWatched": "Marcar como Assistido", @@ -405,7 +405,7 @@ "goToSeries": "Ir para a série", "shufflePlay": "Reprodução Aleatória", "shuffleNotAvailableOffline": "Reprodução aleatória indisponível offline", - "fileInfo": "Info do Arquivo", + "fileInfo": "Informações do arquivo", "deleteFromServer": "Excluir do servidor", "confirmDelete": "Excluir esta mídia e seus arquivos do servidor?", "deleteMultipleWarning": "Isso inclui todos os episódios e seus arquivos.", @@ -471,11 +471,11 @@ "stretch": "Esticar", "lockRotation": "Travar rotação", "unlockRotation": "Destravar rotação", - "timerActive": "Timer Ativo", + "timerActive": "Temporizador ativo", "playbackWillPauseIn": "A reprodução pausará em ${duration}", "sleepTimerEndOfVideo": "Fim do vídeo atual", "sleepTimerStopAtHeader": "Parar em", - "sleepTimerDurationHeader": "Timer", + "sleepTimerDurationHeader": "Temporizador", "playbackWillPauseAtEnd": "A reprodução pausará no final deste vídeo", "stillWatching": "Ainda assistindo?", "pausingIn": "Pausando em ${seconds}s", @@ -484,8 +484,8 @@ "playNext": "Reproduzir Próximo", "playButton": "Reproduzir", "pauseButton": "Pausar", - "showPlaybackControls": "", - "hidePlaybackControls": "", + "showPlaybackControls": "Mostrar controles de reprodução", + "hidePlaybackControls": "Ocultar controles de reprodução", "seekBackwardButton": "Retroceder ${seconds} segundos", "seekForwardButton": "Avançar ${seconds} segundos", "previousButton": "Episódio anterior", @@ -494,8 +494,8 @@ "nextChapterButton": "Próximo capítulo", "muteButton": "Silenciar", "unmuteButton": "Ativar som", - "settingsButton": "Configurações de Reprodução", - "tracksButton": "Áudio e Legendas", + "settingsButton": "Configurações de reprodução", + "tracksButton": "Áudio e legendas", "chaptersButton": "Capítulos", "versionQualityButton": "Versão e qualidade", "versionColumnHeader": "Versão", @@ -541,7 +541,7 @@ "noAudioTracksAvailable": "Nenhuma faixa de áudio disponível", "noTracksAvailable": "Nenhuma faixa disponível", "subtitleDownloaded": "Legenda baixada", - "subtitleDownloadedNotApplied": "A legenda foi transferida, mas não foi possível selecioná-la", + "subtitleDownloadedNotApplied": "A legenda foi baixada, mas não foi possível selecioná-la", "subtitleDownloadFailed": "Falha ao baixar legenda", "searchLanguages": "Pesquisar idiomas..." }, @@ -556,23 +556,23 @@ "one": "Removido automaticamente ${n} download assistido", "other": "Removidos automaticamente ${n} downloads assistidos" }, - "removedFromContinueWatching": "Removido de Continuar Assistindo", + "removedFromContinueWatching": "Removido de Continuar assistindo", "errorLoading": "Erro: ${error}", - "streamInterrupted": "A transmissão foi interrompida. Toque em reproduzir ou avance para tentar novamente.", - "liveStreamInterrupted": "A transmissão ao vivo foi interrompida. Toque em reproduzir para tentar novamente.", + "streamInterrupted": "A transmissão foi interrompida. Pressione reproduzir ou avance para tentar novamente.", + "liveStreamInterrupted": "A transmissão ao vivo foi interrompida. Pressione reproduzir para tentar novamente.", "fileInfoNotAvailable": "Informações do arquivo não disponíveis", - "playbackAuthenticationRequired": "Sign in to the media server again to play this item.", - "playbackServerUnavailable": "The media server is unavailable. Try again later.", - "playbackDataInvalid": "The server returned invalid playback information.", - "playbackCancelled": "Playback was cancelled.", - "playbackFailed": "Playback could not be started.", - "errorLoadingFileInfo": "Erro ao carregar info do arquivo: ${error}", + "playbackAuthenticationRequired": "Entre novamente no servidor de mídia para reproduzir este item.", + "playbackServerUnavailable": "O servidor de mídia está indisponível. Tente novamente mais tarde.", + "playbackDataInvalid": "O servidor retornou informações de reprodução inválidas.", + "playbackCancelled": "A reprodução foi cancelada.", + "playbackFailed": "Não foi possível iniciar a reprodução.", + "errorLoadingFileInfo": "Erro ao carregar as informações do arquivo: ${error}", "errorLoadingSeries": "Erro ao carregar série", - "musicNotSupported": "Reprodução de música ainda não é suportada", + "musicNotSupported": "A reprodução de música ainda não é compatível", "noDescriptionAvailable": "Nenhuma descrição disponível", "noProfilesAvailable": "Nenhum perfil disponível", - "contactAdminForProfiles": "Contate o administrador do servidor para adicionar perfis", - "unableToDetermineLibrarySection": "Não é possível determinar a secção da biblioteca para este item", + "contactAdminForProfiles": "Entre em contato com o administrador do servidor para adicionar perfis", + "unableToDetermineLibrarySection": "Não foi possível determinar a seção da biblioteca deste item", "logsCleared": "Logs limpos", "logsCopied": "Logs copiados para a área de transferência", "noLogsAvailable": "Nenhum log disponível", @@ -582,23 +582,23 @@ "metadataRefreshing": "Atualizando metadados de \"${title}\"...", "metadataRefreshStarted": "Atualização de metadados iniciada para \"${title}\"", "metadataRefreshFailed": "Falha ao atualizar metadados: ${error}", - "logoutConfirm": "Tem certeza que deseja sair?", + "logoutConfirm": "Tem certeza de que deseja sair?", "noSeasonsFound": "Nenhuma temporada encontrada", "seasonsLoadFailed": "Não foi possível carregar as temporadas", "noEpisodesFound": "Nenhum episódio encontrado na primeira temporada", "noEpisodesFoundGeneral": "Nenhum episódio encontrado", "episodesLoadFailed": "Não foi possível carregar os episódios", "noResultsFound": "Nenhum resultado encontrado", - "sleepTimerSet": "Timer de sono definido para ${label}", + "sleepTimerSet": "Temporizador de suspensão definido como ${label}", "noItemsAvailable": "Nenhum item disponível", - "failedToCreatePlayQueueNoItems": "Falha ao criar fila de reprodução - sem itens", + "failedToCreatePlayQueueNoItems": "Falha ao criar a fila de reprodução — nenhum item", "failedPlayback": "Falha ao ${action}: ${error}", - "switchingToCompatiblePlayer": "Alternando para player compatível...", + "switchingToCompatiblePlayer": "Alternando para um reprodutor compatível...", "serverLimitTitle": "Falha na reprodução", - "serverLimitBody": "Erro do servidor (HTTP 500). Um limite de largura de banda/transcodificação provavelmente rejeitou esta sessão. Peça ao dono para ajustar.", + "serverLimitBody": "Erro do servidor (HTTP 500). Um limite de largura de banda ou transcodificação provavelmente rejeitou esta sessão. Peça ao proprietário do servidor para ajustá-lo.", "logsUploaded": "Logs enviados", "logsUploadFailed": "Falha ao enviar logs", - "logId": "ID do Log" + "logId": "ID do log" }, "subtitlingStyling": { "text": "Texto", @@ -625,7 +625,7 @@ }, "mpvConfig": { "title": "mpv.conf", - "description": "Configurações avançadas do player de vídeo", + "description": "Configurações avançadas do reprodutor de vídeo", "presets": "Predefinições", "noPresets": "Nenhuma predefinição salva", "saveAsPreset": "Salvar como Predefinição...", @@ -636,7 +636,7 @@ "presetSaved": "Predefinição salva", "presetLoaded": "Predefinição carregada", "presetDeleted": "Predefinição excluída", - "confirmDeletePreset": "Tem certeza que deseja excluir esta predefinição?", + "confirmDeletePreset": "Tem certeza de que deseja excluir esta predefinição?", "configPlaceholder": "gpu-api=vulkan\nhwdec=auto\n# comment" }, "dialog": { @@ -652,11 +652,11 @@ "delete": "Excluir", "signOut": "Sair", "signOutPlexTitle": "Sair do Plex?", - "signOutPlexMessage": "Remover ${displayName} e todos os usuários Plex Home? Você pode entrar novamente quando quiser.", + "signOutPlexMessage": "Remover ${displayName} e todos os usuários do Plex Home? Você pode entrar novamente quando quiser.", "signedOutPlex": "Saiu do Plex.", "signOutFailed": "Falha ao sair.", "sectionTitle": "Perfis", - "summarySingle": "Adicione perfis para mesclar usuários gerenciados e identidades locais", + "summarySingle": "Adicione perfis para combinar usuários gerenciados e identidades locais", "summaryMultipleWithActive": "${count} perfis · ativo: ${activeName}", "summaryMultiple": "${count} perfis", "removeConnectionTitle": "Remover conexão?", @@ -666,7 +666,7 @@ "profileNameLabel": "Nome do perfil", "pinProtectionLabel": "Proteção por PIN", "pinManagedByPlex": "PIN gerenciado pelo Plex. Edite em plex.tv.", - "noPinSetEditOnPlex": "Nenhum PIN definido. Para exigir um, edite o usuário Home em plex.tv.", + "noPinSetEditOnPlex": "Nenhum PIN definido. Para exigir um, edite o usuário do Plex Home em plex.tv.", "setPin": "Definir PIN", "setPinTitle": "Definir PIN", "confirmPinTitle": "Confirmar PIN", @@ -686,19 +686,19 @@ "profileRenamed": "Perfil renomeado.", "borrowAddTo": "Adicionar a ${displayName}", "borrowExplain": "Use a conexão de outro perfil. Perfis protegidos por PIN exigem PIN.", - "borrowEmpty": "Nada para emprestar ainda.", + "borrowEmpty": "Nenhuma conexão disponível ainda.", "borrowEmptySubtitle": "Conecte Plex ou Jellyfin a outro perfil primeiro.", - "borrowLoadFailed": "Available connections could not be loaded. Try again.", + "borrowLoadFailed": "Não foi possível carregar as conexões disponíveis. Tente novamente.", "borrowFromProfile": "De ${displayName}", - "borrowConnectionBorrowed": "Conexão tomada emprestada.", - "borrowFailed": "Não foi possível tomar a conexão emprestada.", + "borrowConnectionBorrowed": "Conexão adicionada ao perfil.", + "borrowFailed": "Não foi possível adicionar a conexão.", "incorrectPin": "PIN incorreto.", "incorrectPinTryAgain": "PIN incorreto. Tente novamente.", "sourceProfileMissingParentAccount": "O perfil de origem não tem a conta principal.", - "failedToLoadHomeUsers": "Não foi possível carregar seus usuários do Plex Home. Verifique sua conexão e tente novamente.", + "failedToLoadHomeUsers": "Não foi possível carregar os usuários do Plex Home. Verifique sua conexão e tente novamente.", "failedToVerifyPin": "Não foi possível verificar o PIN.", "newProfile": "Novo perfil", - "profileNameHint": "ex.: Visitantes, Crianças, Sala de família", + "profileNameHint": "Ex.: Visitantes, Crianças, Sala de família", "pinProtectionOptional": "Proteção por PIN (opcional)", "pinExplain": "PIN de 4 dígitos necessário para trocar perfis.", "continueButton": "Continuar", @@ -707,10 +707,10 @@ "connections": { "sectionTitle": "Conexões", "addConnection": "Adicionar conexão", - "addConnectionSubtitleNoProfile": "Faça login com Plex ou conecte um servidor Jellyfin", + "addConnectionSubtitleNoProfile": "Entre com Plex ou conecte um servidor Jellyfin", "addConnectionSubtitleScoped": "Adicionar a ${displayName}: Plex, Jellyfin ou outra conexão de perfil", - "sessionExpiredOne": "Sessão expirada para ${name}", - "sessionExpiredMany": "Sessão expirada para ${count} servidores", + "sessionExpiredOne": "Sessão de ${name} expirada", + "sessionExpiredMany": "Sessões expiradas em ${count} servidores", "signInAgain": "Entrar novamente", "editJellyfinTitle": "Editar conexão Jellyfin", "editJellyfinIntro": "Adicione ou remova URLs de ${serverName}. O Plezy usará a URL acessível com a menor latência." @@ -731,13 +731,13 @@ "playEpisode": "S${season}E${episode}", "overview": "Sinopse", "cast": "Elenco", - "extras": "Trailers e Extras", + "extras": "Trailers e extras", "studio": "Estúdio", "rating": "Avaliação", "movie": "Filme", "tvShow": "Série de TV", "minutesLeft": "${minutes} min restantes", - "moreLikeThis": "Mais como este" + "moreLikeThis": "Títulos semelhantes" }, "errors": { "searchFailed": "Falha na busca: ${error}", @@ -774,16 +774,16 @@ "noItemsMatchFilters": "Nenhum item corresponde aos filtros ativos", "resetFilters": "Redefinir filtros", "all": "Todos", - "clearAll": "Limpar Tudo", - "scanLibraryConfirm": "Tem certeza que deseja escanear \"${title}\"?", - "analyzeLibraryConfirm": "Tem certeza que deseja analisar \"${title}\"?", - "refreshMetadataConfirm": "Tem certeza que deseja atualizar os metadados de \"${title}\"?", - "emptyTrashConfirm": "Tem certeza que deseja esvaziar a lixeira de \"${title}\"?", + "clearAll": "Limpar tudo", + "scanLibraryConfirm": "Tem certeza de que deseja escanear \"${title}\"?", + "analyzeLibraryConfirm": "Tem certeza de que deseja analisar \"${title}\"?", + "refreshMetadataConfirm": "Tem certeza de que deseja atualizar os metadados de \"${title}\"?", + "emptyTrashConfirm": "Tem certeza de que deseja esvaziar a lixeira de \"${title}\"?", "manageLibraries": "Gerenciar Bibliotecas", "sort": "Ordenar", - "sortBy": "Ordenar Por", + "sortBy": "Ordenar por", "filters": "Filtros", - "confirmActionMessage": "Tem certeza que deseja realizar esta ação?", + "confirmActionMessage": "Tem certeza de que deseja realizar esta ação?", "showLibrary": "Mostrar biblioteca", "hideLibrary": "Ocultar biblioteca", "libraryOptions": "Opções da biblioteca", @@ -815,10 +815,10 @@ "filterCategories": { "genre": "Gênero", "year": "Ano", - "contentRating": "Classificação", + "contentRating": "Classificação indicativa", "tag": "Tag", "unwatched": "Não assistidos", - "unplayed": "Não reproduzido", + "unplayed": "Não reproduzidos", "favorites": "Favoritos" }, "sortLabels": { @@ -846,10 +846,10 @@ }, "about": { "title": "Sobre", - "openSourceLicenses": "Licenças Open Source", + "openSourceLicenses": "Licenças de código aberto", "versionLabel": "Versão ${version}", - "appDescription": "Um belo cliente Plex e Jellyfin para Flutter", - "viewLicensesDescription": "Ver licenças de bibliotecas de terceiros" + "appDescription": "Um belo cliente de Plex e Jellyfin feito com Flutter", + "viewLicensesDescription": "Ver as licenças de bibliotecas de terceiros" }, "serverSelection": { "noServersFoundForAccount": "Nenhum servidor encontrado para ${username} (${email})", @@ -883,7 +883,7 @@ "title": "Explorar", "selectSource": "Selecionar fonte", "rows": { - "watchlist": "Lista para ver", + "watchlist": "Lista para assistir", "recommendedMovies": "Filmes recomendados", "recommendedShows": "Séries recomendadas", "trendingMovies": "Filmes em alta", @@ -892,7 +892,7 @@ "popularShows": "Séries populares", "trendingAnime": "Anime em alta", "suggestedAnime": "Anime sugerido", - "airingAnime": "Melhor anime em exibição", + "airingAnime": "Melhores animes em exibição", "popularAnime": "Anime mais popular", "trending": "Em alta", "upcomingMovies": "Próximos filmes", @@ -910,12 +910,12 @@ }, "cast": "Elenco", "characters": "Personagens", - "addToWatchlist": "Adicionar à lista para ver", - "removeFromWatchlist": "Remover da lista para ver", - "watchlistUpdateFailed": "Não foi possível atualizar a lista para ver", + "addToWatchlist": "Adicionar à lista para assistir", + "removeFromWatchlist": "Remover da lista para assistir", + "watchlistUpdateFailed": "Não foi possível atualizar a lista para assistir", "notInLibrary": "Não está na sua biblioteca", "inTheseLibraries": "Nestas bibliotecas", - "checkingLibrary": "Verificando a sua biblioteca...", + "checkingLibrary": "Verificando sua biblioteca...", "emptyTitle": "Ainda não há nada aqui", "emptyMessage": "As linhas de ${source} aparecerão aqui quando tiverem conteúdo.", "searchHint": "Buscar em ${source}", @@ -928,10 +928,10 @@ "guide": "Guia", "noChannels": "Nenhum canal disponível", "noDvr": "Nenhum DVR configurado em nenhum servidor", - "serverUnavailable": "O servidor de TV em direto não está disponível.", - "serverNotConnected": "O servidor de TV em direto não está ligado.", + "serverUnavailable": "O servidor de TV ao vivo não está disponível.", + "serverNotConnected": "O servidor de TV ao vivo não está conectado.", "noPrograms": "Nenhum dado de programação disponível", - "liveStreamFailed": "Falha no stream ao vivo", + "liveStreamFailed": "Falha na transmissão ao vivo", "unknownProgram": "Programa desconhecido", "unknownHub": "Desconhecido", "unknownError": "Erro desconhecido", @@ -948,16 +948,16 @@ "daytime": "Dia", "evening": "Noite", "lateNight": "Madrugada", - "whatsOn": "O que Está Passando", - "watchChannel": "Assistir Canal", + "whatsOn": "O que está passando", + "watchChannel": "Assistir ao canal", "favorites": "Favoritos", "reorderFavorites": "Reordenar favoritos", "favoritesLoadFailed": "Não foi possível carregar os favoritos. Verifique sua conexão e tente novamente.", - "favoritesUpdateFailed": "Could not update favorites. Check your connection and try again.", + "favoritesUpdateFailed": "Não foi possível atualizar os favoritos. Verifique sua conexão e tente novamente.", "joinSession": "Entrar na sessão em andamento", "watchFromStart": "Assistir do início (${minutes} min atrás)", "watchLive": "Assistir ao vivo", - "goToLive": "Ir para o ao vivo", + "goToLive": "Ir para o ponto ao vivo", "record": "Gravar", "recordEpisode": "Gravar episódio", "recordSeries": "Gravar série", @@ -988,7 +988,7 @@ "editRule": "Editar regra", "editRuleAction": "Editar", "recordingRuleUpdated": "Regra de gravação atualizada", - "guideReloadRequested": "Atualização da guia solicitada", + "guideReloadRequested": "Atualização do guia solicitada", "rulesProcessRequested": "Reavaliação de regras solicitada", "recordShow": "Gravar programa" }, @@ -1028,7 +1028,7 @@ "oneItem": "1 item", "emptyPlaylist": "Esta playlist está vazia", "deleteConfirm": "Excluir Playlist?", - "deleteMessage": "Tem certeza que deseja excluir \"${name}\"?", + "deleteMessage": "Tem certeza de que deseja excluir \"${name}\"?", "created": "Playlist criada", "deleted": "Playlist excluída", "itemAdded": "Adicionado à playlist", @@ -1067,45 +1067,45 @@ "nextTrack": "Próxima faixa", "repeat": "Repetir", "repeatAll": "Repetir tudo", - "repeatOne": "Repetir uma" + "repeatOne": "Repetir uma faixa" }, "watchTogether": { "title": "Assistir Juntos", - "description": "Assista conteúdo sincronizado com amigos e família", - "createSession": "Criar Sessão", + "description": "Assista a conteúdos sincronizados com amigos e familiares", + "createSession": "Criar sessão", "creating": "Criando...", - "joinSession": "Entrar na Sessão", + "joinSession": "Entrar na sessão", "joining": "Entrando...", - "controlMode": "Modo de Controle", + "controlMode": "Modo de controle", "controlModeQuestion": "Quem pode controlar a reprodução?", - "hostOnly": "Apenas o Anfitrião", + "hostOnly": "Apenas o anfitrião", "anyone": "Qualquer pessoa", - "hostingSession": "Hospedando Sessão", - "inSession": "Em Sessão", - "sessionCode": "Código da Sessão", + "hostingSession": "Hospedando uma sessão", + "inSession": "Em uma sessão", + "sessionCode": "Código da sessão", "openSessionControls": "Abrir os controles da sessão Assistir Juntos", "copySessionCode": "Copiar código da sessão", - "hostControlsPlayback": "Anfitrião controla a reprodução", + "hostControlsPlayback": "O anfitrião controla a reprodução", "anyoneCanControl": "Qualquer pessoa pode controlar a reprodução", "hostControls": "Controle do anfitrião", - "anyoneControls": "Controle de todos", + "anyoneControls": "Controle por qualquer pessoa", "participants": "Participantes", "host": "Anfitrião", - "hostBadge": "HOST", + "hostBadge": "ANFITRIÃO", "youAreHost": "Você é o anfitrião", - "watchingWithOthers": "Assistindo com outros", - "endSession": "Encerrar Sessão", - "leaveSession": "Sair da Sessão", - "endSessionQuestion": "Encerrar Sessão?", - "leaveSessionQuestion": "Sair da Sessão?", + "watchingWithOthers": "Assistindo com outras pessoas", + "endSession": "Encerrar sessão", + "leaveSession": "Sair da sessão", + "endSessionQuestion": "Encerrar sessão?", + "leaveSessionQuestion": "Sair da sessão?", "endSessionConfirm": "Isso encerrará a sessão para todos os participantes.", "leaveSessionConfirm": "Você será removido da sessão.", - "endSessionConfirmOverlay": "Isso encerrará a sessão de visualização para todos os participantes.", - "leaveSessionConfirmOverlay": "Você será desconectado da sessão de visualização.", + "endSessionConfirmOverlay": "Isso encerrará a sessão do Assistir Juntos para todos os participantes.", + "leaveSessionConfirmOverlay": "Você será desconectado da sessão do Assistir Juntos.", "end": "Encerrar", "leave": "Sair", "syncing": "Sincronizando...", - "joinWatchSession": "Entrar na Sessão", + "joinWatchSession": "Entrar na sessão", "enterCodeHint": "Insira o código de 5 caracteres", "pasteFromClipboard": "Colar da área de transferência", "pleaseEnterCode": "Insira um código de sessão", @@ -1114,21 +1114,21 @@ "failedToCreate": "Falha ao criar sessão", "failedToJoin": "Falha ao entrar na sessão", "sessionCodeCopied": "Código da sessão copiado para a área de transferência", - "relayUnreachable": "Servidor relay inacessível. Bloqueio do ISP pode impedir Watch Together.", + "relayUnreachable": "Servidor de retransmissão inacessível. O bloqueio pelo provedor de internet pode impedir o uso do Assistir Juntos.", "reconnectingToHost": "Reconectando ao anfitrião...", - "currentPlayback": "Reprodução Atual", - "joinCurrentPlayback": "Entrar na Reprodução Atual", - "joinCurrentPlaybackDescription": "Voltar ao que o anfitrião está assistindo agora", - "failedToOpenCurrentPlayback": "Falha ao abrir reprodução atual", + "currentPlayback": "Reprodução atual", + "joinCurrentPlayback": "Entrar na reprodução atual", + "joinCurrentPlaybackDescription": "Voltar ao conteúdo que o anfitrião está assistindo agora", + "failedToOpenCurrentPlayback": "Falha ao abrir a reprodução atual", "participantJoined": "${name} entrou", "participantLeft": "${name} saiu", "participantPaused": "${name} pausou", "participantResumed": "${name} retomou", - "participantSeeked": "${name} avançou", - "participantBuffering": "${name} está carregando", - "participantNeedsUpdate": "${name} está em uma versão mais antiga do aplicativo — sincronização indisponível", + "participantSeeked": "${name} mudou a posição da reprodução", + "participantBuffering": "${name} está aguardando o carregamento", + "participantNeedsUpdate": "${name} está usando uma versão mais antiga do app — sincronização indisponível", "resumingWithout": "Retomando sem ${name}", - "waitingForParticipants": "Aguardando outros carregarem...", + "waitingForParticipants": "Aguardando o carregamento dos outros participantes...", "waitingForName": "Aguardando ${name}...", "recentRooms": "Salas recentes", "renameRoom": "Renomear sala", @@ -1144,13 +1144,13 @@ "music": "Música", "tracksQueued": "${count} faixas na fila para download", "noDownloads": "Nenhum download ainda", - "noDownloadsDescription": "Conteúdo baixado aparecerá aqui para visualização offline", + "noDownloadsDescription": "O conteúdo baixado aparecerá aqui para assistir offline", "downloadNow": "Baixar", "deleteDownload": "Excluir download", "retryDownload": "Tentar download novamente", "downloadQueued": "Download na fila", "downloadResumed": "Download retomado", - "serverErrorBitrate": "Erro do servidor: o arquivo pode exceder o limite remoto de bitrate", + "serverErrorBitrate": "Erro do servidor: o arquivo pode exceder o limite remoto de taxa de bits", "episodesQueued": "${count} episódios na fila de download", "downloadDeleted": "Download excluído", "deleteConfirm": "Excluir \"${title}\" deste dispositivo?", @@ -1175,14 +1175,14 @@ "selectVersion": "Selecionar versão", "allEpisodes": "Todos os episódios", "unwatchedOnly": "Apenas não assistidos", - "nextNUnwatched": "Próximos ${count} não assistidos", + "nextNUnwatched": "Próximos ${count} episódios não assistidos", "customAmount": "Quantidade personalizada...", "includeSpecials": "Incluir especiais", "howManyEpisodes": "Quantos episódios?", "invalidEpisodeCount": "Insira uma quantidade válida de episódios.", "keepSynced": "Manter sincronizado", "downloadOnce": "Baixar uma vez", - "keepNUnwatched": "Manter ${count} não assistidos", + "keepNUnwatched": "Manter ${count} episódios não assistidos", "editSyncRule": "Editar regra de sincronização", "removeSyncRule": "Remover regra de sincronização", "removeSyncRuleConfirm": "Parar de sincronizar \"${title}\"? Os episódios baixados serão mantidos.", @@ -1196,11 +1196,11 @@ "editEpisodeCount": "Número de episódios", "editSyncFilter": "Filtro de sincronização", "syncAllItems": "Sincronizando todos os itens", - "syncUnwatchedItems": "Sincronizando itens não vistos", + "syncUnwatchedItems": "Sincronizando itens não assistidos", "syncRuleServerContext": "Servidor: ${server} • ${status}", "syncRuleAvailable": "Disponível", "syncRuleOffline": "Offline", - "syncRuleSignInRequired": "Início de sessão necessário", + "syncRuleSignInRequired": "É necessário entrar", "syncRuleNotAvailableForProfile": "Indisponível para o perfil atual", "syncRuleUnknownServer": "Servidor desconhecido", "syncRuleListCreated": "Regra de sincronização criada" @@ -1208,7 +1208,7 @@ "shaders": { "title": "Shaders", "noShaderDescription": "Sem aprimoramento de vídeo", - "nvscalerDescription": "Escalonamento de imagem NVIDIA para vídeo mais nítido", + "nvscalerDescription": "Dimensionamento de imagem da NVIDIA para vídeos mais nítidos", "artcnnVariantNeutral": "Neutro", "artcnnVariantDenoise": "Redução de ruído", "artcnnVariantDenoiseSharpen": "Redução de ruído + nitidez", @@ -1223,18 +1223,18 @@ "deleteShaderConfirm": "Excluir \"${name}\"?" }, "companionRemote": { - "title": "Controle Remoto", + "title": "Controle remoto", "connectedTo": "Conectado a ${name}", "unknownDevice": "Dispositivo desconhecido", "session": { - "startingServer": "A iniciar servidor remoto...", + "startingServer": "Iniciando servidor remoto...", "hostAddress": "Endereço do host", "connected": "Conectado", "serverRunning": "Servidor remoto ativo", "serverStopped": "Servidor remoto parado", "serverRunningDescription": "Dispositivos móveis na sua rede podem se conectar a este app", "serverStoppedDescription": "Inicie o servidor para permitir que dispositivos móveis se conectem", - "usePhoneToControl": "Use o seu dispositivo móvel para controlar esta aplicação", + "usePhoneToControl": "Use seu dispositivo móvel para controlar este app", "startServer": "Iniciar servidor", "stopServer": "Parar servidor", "minimize": "Minimizar" @@ -1242,17 +1242,17 @@ "pairing": { "discoveryDescription": "Dispositivos Plezy com a mesma conta Plex aparecem aqui", "hostAddressHint": "192.168.1.100:48632", - "connecting": "A conectar...", - "searchingForDevices": "A procurar dispositivos...", + "connecting": "Conectando...", + "searchingForDevices": "Procurando dispositivos...", "noDevicesFound": "Nenhum dispositivo encontrado na sua rede", - "noDevicesHint": "Abra Plezy no desktop e use o mesmo WiFi", + "noDevicesHint": "Abra o Plezy no desktop e use a mesma rede Wi-Fi", "availableDevices": "Dispositivos disponíveis", "manualConnection": "Conexão manual", "cryptoInitFailed": "Não foi possível iniciar a conexão segura. Entre no Plex primeiro.", - "validationHostRequired": "Introduza o endereço do host", - "validationHostFormat": "O formato deve ser IP:porta (ex. 192.168.1.100:48632)", - "connectionTimedOut": "Conexão expirou. Use a mesma rede nos dois dispositivos.", - "sessionNotFound": "Dispositivo não encontrado. Verifique se Plezy está rodando no host.", + "validationHostRequired": "Insira o endereço do host", + "validationHostFormat": "O formato deve ser IP:porta (ex.: 192.168.1.100:48632)", + "connectionTimedOut": "A conexão atingiu o tempo limite. Use a mesma rede nos dois dispositivos.", + "sessionNotFound": "Dispositivo não encontrado. Verifique se o Plezy está em execução no host.", "authFailed": "Falha na autenticação. Ambos os dispositivos precisam da mesma conta Plex.", "failedToConnect": "Falha ao conectar: ${error}" }, @@ -1260,7 +1260,7 @@ "disconnectConfirm": "Deseja desconectar da sessão remota?", "reconnecting": "Reconectando...", "attemptOf": "Tentativa ${current} de 5", - "retryNow": "Tentar Agora", + "retryNow": "Tentar agora", "tabRemote": "Remoto", "tabPlay": "Reproduzir", "tabMore": "Mais", @@ -1280,7 +1280,7 @@ "volume": "Volume", "volumeDown": "Diminuir", "volumeUp": "Aumentar", - "fullscreen": "Tela Cheia", + "fullscreen": "Tela cheia", "subtitles": "Legendas", "audio": "Áudio", "searchHint": "Buscar no desktop..." @@ -1301,15 +1301,15 @@ "normalSpeed": "Normal", "sleepTimerActive": "Ativo (${duration})", "zoom": "Zoom", - "sleepTimer": "Timer de Sono", - "audioSync": "Sincronia de Áudio", - "subtitleSync": "Sincronia de Legendas", + "sleepTimer": "Temporizador de suspensão", + "audioSync": "Sincronia de áudio", + "subtitleSync": "Sincronia de legendas", "hdr": "HDR", - "audioOutput": "Saída de Áudio", - "performanceOverlay": "Overlay de Desempenho", - "audioPassthrough": "Passagem de Áudio", - "audioNormalization": "Normalizar Volume", - "audioDownmix": "Downmix para Estéreo" + "audioOutput": "Saída de áudio", + "performanceOverlay": "Painel de desempenho", + "audioPassthrough": "Passagem direta de áudio", + "audioNormalization": "Normalizar intensidade sonora", + "audioDownmix": "Conversão para estéreo" }, "performanceOverlay": { "color": "Cor", @@ -1330,9 +1330,9 @@ "matrix": "Matriz", "primaries": "Primárias", "transfer": "Transferência", - "renderFps": "FPS render", - "displayFps": "FPS tela", - "avSync": "Sync A/V", + "renderFps": "FPS de renderização", + "displayFps": "FPS da tela", + "avSync": "Sincronia A/V", "dropped": "Descartados", "dvRpus": "DV RPUs", "dvRpuAverage": "Média DV RPU", @@ -1344,27 +1344,27 @@ "cacheUsed": "Cache usado", "cacheLimit": "Limite do cache", "speed": "Velocidade", - "player": "Player", + "player": "Reprodutor", "memory": "Memória", "uiFps": "UI FPS" }, "externalPlayer": { - "title": "Player Externo", - "useExternalPlayer": "Usar Player Externo", + "title": "Reprodutor externo", + "useExternalPlayer": "Usar reprodutor externo", "useExternalPlayerDescription": "Abrir vídeos em outro app", - "selectPlayer": "Selecionar Player", - "customPlayers": "Players Personalizados", - "systemDefault": "Padrão do Sistema", - "addCustomPlayer": "Adicionar Player Personalizado", - "playerName": "Nome do Player", - "playerNameHint": "Meu player", + "selectPlayer": "Selecionar reprodutor", + "customPlayers": "Reprodutores personalizados", + "systemDefault": "Padrão do sistema", + "addCustomPlayer": "Adicionar reprodutor personalizado", + "playerName": "Nome do reprodutor", + "playerNameHint": "Meu reprodutor", "playerCommand": "Comando", - "playerPackage": "Nome do Pacote", + "playerPackage": "Nome do pacote", "playerUrlScheme": "Esquema de URL", "off": "Desativado", - "launchFailed": "Falha ao abrir player externo", + "launchFailed": "Falha ao abrir o reprodutor externo", "appNotInstalled": "${name} não está instalado", - "playInExternalPlayer": "Reproduzir no Player Externo" + "playInExternalPlayer": "Reproduzir no reprodutor externo" }, "metadataEdit": { "editMetadata": "Editar...", @@ -1378,13 +1378,13 @@ "releaseDate": "Data de Lançamento", "contentRating": "Classificação Indicativa", "studio": "Estúdio", - "tagline": "Tagline", + "tagline": "Slogan", "summary": "Sinopse", - "poster": "Poster", + "poster": "Pôster", "background": "Plano de Fundo", "logo": "Logo", "squareArt": "Imagem Quadrada", - "selectPoster": "Selecionar Poster", + "selectPoster": "Selecionar pôster", "selectBackground": "Selecionar Plano de Fundo", "selectLogo": "Selecionar Logo", "selectSquareArt": "Selecionar Imagem Quadrada", @@ -1467,8 +1467,8 @@ "title": "Trakt", "connected": "Conectado", "connectedAs": "Conectado como @${username}", - "disconnectConfirm": "Desconectar conta do Trakt?", - "disconnectConfirmBody": "Plezy deixará de enviar eventos ao Trakt. Você pode reconectar quando quiser.", + "disconnectConfirm": "Desconectar a conta do Trakt?", + "disconnectConfirmBody": "O Plezy deixará de enviar eventos ao Trakt. Você pode reconectar quando quiser.", "scrobble": "Scrobbling em tempo real", "scrobbleDescription": "Envia eventos de reprodução, pausa e parada ao Trakt durante a exibição.", "watchedSync": "Sincronizar status de assistido", @@ -1476,7 +1476,7 @@ }, "seerr": { "title": "Seerr", - "connectTitle": "Conectar Seerr", + "connectTitle": "Conectar ao Seerr", "serverUrl": "URL do servidor", "serverUrlHelper": "O endereço da sua instância do Seerr", "checkServer": "Continuar", @@ -1484,7 +1484,7 @@ "signInWithEmby": "Entrar com Emby", "signInWithLocal": "Usar uma conta local", "email": "E-mail", - "noSignInMethods": "Esta instância do Seerr não oferece nenhum método de login compatível com o Plezy.", + "noSignInMethods": "Esta instância do Seerr não oferece nenhum método de acesso compatível com o Plezy.", "instance": "Instância", "disconnectConfirm": "Desconectar Seerr?", "disconnectConfirmBody": "O Plezy esquecerá esta instância do Seerr. Reconecte quando quiser.", @@ -1514,7 +1514,7 @@ "scrobble": "Registrar progresso automaticamente", "scrobbleDescription": "Atualiza sua lista quando você termina um episódio ou filme.", "disconnectConfirm": "Desconectar ${service}?", - "disconnectConfirmBody": "Plezy deixará de atualizar ${service}. Reconecte quando quiser.", + "disconnectConfirmBody": "O Plezy deixará de atualizar ${service}. Reconecte quando quiser.", "connectFailed": "Não foi possível conectar ao ${service}. Tente novamente.", "names": { "mal": "MyAnimeList", @@ -1523,7 +1523,7 @@ "seerr": "Seerr" }, "deviceCode": { - "title": "Ativar Plezy no ${service}", + "title": "Ativar o Plezy no ${service}", "body": "Acesse ${url} e insira este código:", "openToActivate": "Abrir ${service} para ativar", "copyCode": "Copiar código de ativação", @@ -1532,10 +1532,10 @@ }, "oauthProxy": { "title": "Entrar no ${service}", - "body": "Escaneie este código QR ou abra a URL em qualquer dispositivo.", + "body": "Leia este código QR ou abra a URL em qualquer dispositivo.", "openToSignIn": "Abrir ${service} para entrar", - "copyUrl": "Copiar URL de login", - "urlCopied": "URL copiado" + "copyUrl": "Copiar URL de acesso", + "urlCopied": "URL copiada" }, "libraryFilter": { "title": "Filtro de bibliotecas", @@ -1544,9 +1544,9 @@ "subtitleBlocked": "${count} bloqueadas", "subtitleAllowed": "${count} permitidas", "mode": "Modo de filtro", - "modeBlacklist": "Lista negra", - "modeWhitelist": "Lista branca", - "modeHintBlacklist": "Sincronizar todas as bibliotecas exceto as marcadas abaixo.", + "modeBlacklist": "Lista de bloqueio", + "modeWhitelist": "Lista de permissões", + "modeHintBlacklist": "Sincronizar todas as bibliotecas, exceto as marcadas abaixo.", "modeHintWhitelist": "Sincronizar apenas as bibliotecas marcadas abaixo.", "libraries": "Bibliotecas", "noLibraries": "Nenhuma biblioteca disponível" @@ -1555,9 +1555,9 @@ "addServer": { "addJellyfinTitle": "Adicionar servidor Jellyfin", "serverUrls": "URLs do servidor", - "serverUrlsHelper": "Vários URLs permitidos, separados por vírgulas.", + "serverUrlsHelper": "Várias URLs são permitidas, separadas por vírgulas.", "findServer": "Encontrar servidor", - "searchingLocalServers": "A procurar servidores Jellyfin locais...", + "searchingLocalServers": "Procurando servidores Jellyfin locais...", "localServers": "Servidores Jellyfin locais", "username": "Usuário", "password": "Senha", @@ -1568,17 +1568,17 @@ "signInFailed": "Falha ao entrar: ${error}", "quickConnectFailed": "Quick Connect falhou: ${error}", "addPlexTitle": "Entrar com Plex", - "pinExpired": "O PIN expirou antes do login. Tente novamente.", + "pinExpired": "O PIN expirou antes de entrar. Tente novamente.", "failedToRegisterAccount": "Falha ao registrar a conta: ${error}", "enterJellyfinUrlError": "Insira a URL do seu servidor Jellyfin", "addConnectionTitle": "Adicionar conexão", "addConnectionTitleScoped": "Adicionar a ${name}", "signInWithPlexCard": "Entrar com Plex", "signInWithPlexCardSubtitle": "Autorize este dispositivo. Servidores compartilhados são adicionados.", - "signInWithPlexCardSubtitleScoped": "Autorize uma conta Plex. Usuários Home viram perfis.", + "signInWithPlexCardSubtitleScoped": "Autorize uma conta Plex. Os usuários do Plex Home se tornam perfis.", "connectToJellyfinCard": "Conectar ao Jellyfin", "connectToJellyfinCardSubtitle": "Insira URL do servidor, usuário e senha.", - "connectToJellyfinCardSubtitleScoped": "Entre em um servidor Jellyfin. Vinculado a ${name}.", + "connectToJellyfinCardSubtitleScoped": "Entre em um servidor Jellyfin. A conexão será vinculada a ${name}.", "borrowFromAnotherProfile": "Pegar emprestado de outro perfil", "borrowFromAnotherProfileSubtitle": "Reutilize a conexão de outro perfil. Perfis protegidos por PIN exigem PIN." } diff --git a/lib/i18n/ru.i18n.json b/lib/i18n/ru.i18n.json index a7d8743a..bbb8c243 100644 --- a/lib/i18n/ru.i18n.json +++ b/lib/i18n/ru.i18n.json @@ -5,10 +5,10 @@ "auth": { "signInWithPlex": "Войти через Plex", "showQRCode": "Показать QR-код", - "authenticate": "Аутентификация", + "authenticate": "Войти", "authenticationTimeout": "Время аутентификации истекло. Попробуйте снова.", "scanQRToSignIn": "Отсканируйте QR-код для входа", - "waitingForAuth": "Ожидание аутентификации...\nВойдите в браузере.", + "waitingForAuth": "Ожидание аутентификации...\nВыполните вход в браузере.", "useBrowser": "Использовать браузер", "or": "или", "connectToJellyfin": "Подключиться к Jellyfin", @@ -16,8 +16,8 @@ "quickConnectInstructions": "Откройте Quick Connect в Jellyfin и введите этот код.", "quickConnectWaiting": "Ожидание подтверждения…", "quickConnectCancel": "Отмена", - "quickConnectExpired": "Срок Quick Connect истек. Попробуйте снова.", - "localDataRecoveryRequired": "Plezy could not safely recover local sign-in and pending playback data. Please sign in again." + "quickConnectExpired": "Срок действия Quick Connect истёк. Попробуйте снова.", + "localDataRecoveryRequired": "Plezy не удалось безопасно восстановить данные локального входа и несинхронизированные данные о воспроизведении. Войдите снова." }, "common": { "cancel": "Отмена", @@ -109,8 +109,8 @@ "libraryDensity": "Плотность библиотеки", "compact": "Компактный", "comfortable": "Комфортный", - "tvCornerSpotlightBackdrop": "", - "tvCornerSpotlightBackdropDescription": "", + "tvCornerSpotlightBackdrop": "Фоновое изображение в углу", + "tvCornerSpotlightBackdropDescription": "Показывать изображение избранного материала в правом верхнем углу, а не на весь экран", "viewMode": "Режим просмотра", "gridView": "Сетка", "listView": "Список", @@ -135,8 +135,8 @@ "showEpisodeNumberOnCardsDescription": "Показывать номер сезона и серии на карточках серий", "showSeasonPostersOnTabs": "Показывать постеры сезонов на вкладках", "showSeasonPostersOnTabsDescription": "Показывать постер каждого сезона над его вкладкой", - "tvFullCardLayout": "Полные TV-карточки", - "tvFullCardLayoutDescription": "Использовать TV-карточки только с изображением и именами актёров поверх него", + "tvFullCardLayout": "Полноформатные ТВ-карточки", + "tvFullCardLayoutDescription": "Использовать ТВ-карточки только с изображением и наложенными именами актёров", "focusGlow": "Свечение при фокусе", "focusGlowDescription": "Показывать мягкое свечение вокруг карточки в фокусе", "visualEffects": "Визуальные эффекты", @@ -155,7 +155,7 @@ "bufferSize": "Размер буфера", "bufferSizeMB": "${size}МБ", "bufferSizeAuto": "Авто (Рекомендуется)", - "bufferSizeWarning": "Доступно памяти: ${heap}MB. Буфер ${size}MB может повлиять на воспроизведение.", + "bufferSizeWarning": "Доступно памяти: ${heap} МБ. Буфер размером ${size} МБ может повлиять на воспроизведение.", "defaultQualityTitle": "Качество по умолчанию", "musicQualityTitle": "Качество музыки", "subtitleStyling": "Стиль субтитров", @@ -163,24 +163,24 @@ "smallSkipDuration": "Малая перемотка", "largeSkipDuration": "Большая перемотка", "rewindOnResume": "Перемотка при возобновлении", - "secondsUnit": "${seconds} секунд", + "secondsUnit": "${seconds} с", "defaultSleepTimer": "Таймер сна по умолчанию", - "minutesUnit": "${minutes} минут", + "minutesUnit": "${minutes} мин", "rememberTrackSelections": "Запоминать выбор дорожек для каждого сериала/фильма", - "rememberTrackSelectionsDescription": "Запоминать выбор аудио и субтитров для тайтла", + "rememberTrackSelectionsDescription": "Запоминать выбор аудиодорожки и субтитров для каждого материала", "showChapterMarkersOnTimeline": "Показывать маркеры глав на шкале перемотки", "showChapterMarkersOnTimelineDescription": "Разделять шкалу перемотки по границам глав", - "clickVideoTogglesPlayback": "Клик по видео для переключения воспроизведения/паузы", - "clickVideoTogglesPlaybackDescription": "Клик по видео запускает/ставит на паузу вместо показа управления.", + "clickVideoTogglesPlayback": "Нажатие на видео запускает или приостанавливает воспроизведение", + "clickVideoTogglesPlaybackDescription": "Нажатие на видео запускает или приостанавливает воспроизведение вместо показа элементов управления.", "videoPlayerControls": "Элементы управления плеером", "keyboardShortcuts": "Горячие клавиши", "keyboardShortcutsDescription": "Настроить горячие клавиши", "videoPlayerNavigation": "Навигация видеоплеера", "videoPlayerNavigationDescription": "Использовать клавиши стрелок для навигации по элементам управления плеером", - "watchTogetherRelay": "Relay совместного просмотра", - "watchTogetherRelayDescription": "Задайте свой relay. Все должны использовать один сервер.", + "watchTogetherRelay": "Сервер ретрансляции для совместного просмотра", + "watchTogetherRelayDescription": "Задайте свой сервер ретрансляции. Все участники должны использовать один сервер.", "watchTogetherRelayHint": "https://my-relay.example.com", - "watchTogetherRelayInvalid": "Enter a valid HTTP or HTTPS relay base URL.", + "watchTogetherRelayInvalid": "Введите допустимый базовый HTTP- или HTTPS-адрес сервера ретрансляции.", "crashReporting": "Отчёты об ошибках", "crashReportingDescription": "Отправлять отчёты об ошибках для улучшения приложения", "debugLogging": "Журнал отладки", @@ -213,16 +213,16 @@ "autoCheckUpdatesOnStartupDescription": "Уведомлять о доступном обновлении при запуске", "validationErrorEnterNumber": "Введите корректное число", "validationErrorDuration": "Длительность должна быть от ${min} до ${max} ${unit}", - "shortcutAlreadyAssigned": "Клавиша уже назначена для ${action}", - "shortcutUpdated": "Клавиша обновлена для ${action}", - "saveFailed": "Could not save changes. Try again.", + "shortcutAlreadyAssigned": "Сочетание клавиш уже назначено действию «${action}»", + "shortcutUpdated": "Сочетание клавиш для действия «${action}» обновлено", + "saveFailed": "Не удалось сохранить изменения. Попробуйте снова.", "autoSkip": "Автопропуск", "autoSkipIntro": "Автопропуск вступления", "autoSkipIntroDescription": "Автоматически пропускать маркеры вступления через несколько секунд", "autoSkipCredits": "Автопропуск титров", "autoSkipCreditsDescription": "Автоматически пропускать титры и воспроизводить следующий эпизод", - "forceSkipMarkerFallback": "Принудительные резервные маркеры", - "forceSkipMarkerFallbackDescription": "Использовать шаблоны названий глав, даже если в Plex есть маркеры", + "forceSkipMarkerFallback": "Всегда использовать резервные маркеры", + "forceSkipMarkerFallbackDescription": "Использовать шаблоны названий глав, даже если в Plex есть собственные маркеры", "autoSkipDelay": "Задержка автопропуска", "autoSkipDelayDescription": "Подождать ${seconds} секунд перед автопропуском", "introPattern": "Шаблон маркера вступления", @@ -242,11 +242,11 @@ "downloadLocationReset": "Место загрузки сброшено по умолчанию", "downloadLocationInvalid": "Выбранная папка недоступна для записи", "downloadLocationPickerUnavailable": "Выбор папки недоступен на этом устройстве", - "downloadOnWifiOnly": "Загружать только по WiFi", + "downloadOnWifiOnly": "Загружать только по Wi-Fi", "downloadOnWifiOnlyDescription": "Запретить загрузку по мобильным данным", "autoRemoveWatchedDownloads": "Автоудаление просмотренных загрузок", "autoRemoveWatchedDownloadsDescription": "Автоматически удалять просмотренные загрузки", - "cellularDownloadBlocked": "Загрузки через мобильную сеть заблокированы. Используйте WiFi или измените настройку.", + "cellularDownloadBlocked": "Загрузки через мобильную сеть заблокированы. Используйте Wi-Fi или измените настройку.", "maxVolume": "Максимальная громкость", "maxVolumeDescription": "Разрешить усиление громкости выше 100% для тихих медиа", "maxVolumePercent": "${percent}%", @@ -257,8 +257,8 @@ "manageLibrariesDescription": "Изменять порядок и скрывать библиотеки", "companionRemoteServer": "Сервер удалённого управления", "companionRemoteServerDescription": "Разрешить мобильным устройствам в сети управлять этим приложением", - "autoPip": "Автоматический «картинка в картинке»", - "autoPipDescription": "Включать картинку-в-картинке при выходе во время воспроизведения", + "autoPip": "Автоматический режим «картинка в картинке»", + "autoPipDescription": "Автоматически включать режим «картинка в картинке» при выходе из приложения во время воспроизведения", "matchContentFrameRate": "Соответствие частоты кадров контента", "matchContentFrameRateDescription": "Подстраивать частоту обновления экрана под видео", "matchRefreshRate": "Соответствие частоты обновления", @@ -267,10 +267,10 @@ "matchDynamicRangeDescription": "Включать HDR для HDR-контента, затем возвращаться к SDR", "displaySwitchDelay": "Задержка переключения дисплея", "tunneledPlayback": "Туннельное воспроизведение", - "tunneledPlaybackDescription": "Использовать видеотуннелирование. Отключите, если HDR показывает черный экран.", + "tunneledPlaybackDescription": "Использовать видеотуннелирование. Отключите, если при воспроизведении HDR отображается чёрный экран.", "audioPassthrough": "Сквозной вывод аудио", "audioPassthroughDescription": "Передавать звук Dolby/DTS на ресивер или телевизор без перекодирования, сохраняя объёмный звук. Отключите, если нет звука.", - "audioPassthroughDescriptionAppleTv": "Передаёт Dolby Digital Plus (включая Atmos) системе в виде битового потока. DTS и TrueHD по-прежнему воспроизводятся как многоканальный PCM. При перемотке возможны короткие пропадания звука.", + "audioPassthroughDescriptionAppleTv": "Использовать встроенный декодер Dolby от Apple для Dolby Digital Plus, включая Atmos. DTS и TrueHD по-прежнему воспроизводятся как многоканальный PCM. Отключите, если звук отсутствует.", "audioDownmix": "Микширование в стерео", "audioDownmixDescription": "Микширует объёмный звук в два канала для стереодинамиков или наушников", "downmixCenterBoost": "Усиление центрального канала", @@ -385,7 +385,7 @@ "bitDepth": "Глубина цвета", "colorSpace": "Цветовое пространство", "colorRange": "Цветовой диапазон", - "colorPrimaries": "Цветовые первичные", + "colorPrimaries": "Основные цвета", "chromaSubsampling": "Субдискретизация цветности", "channels": "Каналы", "subtitles": "Субтитры", @@ -394,7 +394,7 @@ "size": "Размер", "container": "Контейнер", "duration": "Длительность", - "optimizedForStreaming": "Оптимизировано для стриминга", + "optimizedForStreaming": "Оптимизировано для потоковой передачи", "has64bitOffsets": "64-битные смещения" }, "mediaMenu": { @@ -422,7 +422,7 @@ "favorited": "Добавлено в избранное", "saved": "Сохранено", "notAvailable": "Совпадений не найдено", - "noConnectedServices": "Подключите сервис в настройках, чтобы оценивать здесь." + "noConnectedServices": "Подключите сервис в настройках, чтобы выставлять оценки в нём." }, "accessibility": { "mediaCardMovie": "${title}, фильм", @@ -466,7 +466,7 @@ "playsLater": "${label} воспроизводится позже", "playsEarlier": "${label} воспроизводится раньше", "noOffset": "Без смещения", - "letterbox": "Letterbox", + "letterbox": "Вписать в экран", "fillScreen": "Заполнить экран", "stretch": "Растянуть", "lockRotation": "Заблокировать поворот", @@ -484,10 +484,10 @@ "playNext": "Следующее", "playButton": "Воспроизвести", "pauseButton": "Пауза", - "showPlaybackControls": "", - "hidePlaybackControls": "", - "seekBackwardButton": "Перемотка назад на ${seconds} секунд", - "seekForwardButton": "Перемотка вперёд на ${seconds} секунд", + "showPlaybackControls": "Показать элементы управления воспроизведением", + "hidePlaybackControls": "Скрыть элементы управления воспроизведением", + "seekBackwardButton": "Перемотать назад на ${seconds} с", + "seekForwardButton": "Перемотать вперёд на ${seconds} с", "previousButton": "Предыдущий эпизод", "nextButton": "Следующий эпизод", "previousChapterButton": "Предыдущая глава", @@ -501,7 +501,7 @@ "versionColumnHeader": "Версия", "qualityColumnHeader": "Качество", "qualityOriginal": "Оригинал", - "qualityPresetLabel": "${resolution}p ${bitrate} Mbps", + "qualityPresetLabel": "${resolution}p ${bitrate} Мбит/с", "transcodeUnavailableFallback": "Транскодирование недоступно — воспроизведение в оригинальном качестве", "subtitleUnavailableFallback": "Не удалось загрузить выбранные субтитры — воспроизведение продолжится без субтитров", "pipButton": "Режим «картинка в картинке»", @@ -524,7 +524,7 @@ "pipErrors": { "androidVersion": "Требуется Android 8.0 или новее", "iosVersion": "Требуется iOS 15.0 или новее", - "permissionDisabled": "Картинка-в-картинке отключена. Включите ее в системных настройках.", + "permissionDisabled": "Режим «картинка в картинке» отключён. Включите его в системных настройках.", "notSupported": "Устройство не поддерживает режим «картинка в картинке»", "voSwitchFailed": "Не удалось переключить видеовыход для «картинки в картинке»", "failed": "Не удалось запустить режим «картинка в картинке»", @@ -563,11 +563,11 @@ "streamInterrupted": "Поток прервался. Нажмите «Воспроизвести» или перемотайте, чтобы повторить попытку.", "liveStreamInterrupted": "Прямая трансляция прервалась. Нажмите «Воспроизвести», чтобы повторить попытку.", "fileInfoNotAvailable": "Информация о файле недоступна", - "playbackAuthenticationRequired": "Sign in to the media server again to play this item.", - "playbackServerUnavailable": "The media server is unavailable. Try again later.", - "playbackDataInvalid": "The server returned invalid playback information.", - "playbackCancelled": "Playback was cancelled.", - "playbackFailed": "Playback could not be started.", + "playbackAuthenticationRequired": "Чтобы воспроизвести этот материал, снова войдите на медиасервер.", + "playbackServerUnavailable": "Медиасервер недоступен. Попробуйте позже.", + "playbackDataInvalid": "Сервер вернул некорректные сведения для воспроизведения.", + "playbackCancelled": "Воспроизведение отменено.", + "playbackFailed": "Не удалось начать воспроизведение.", "errorLoadingFileInfo": "Ошибка загрузки информации о файле: ${error}", "errorLoadingSeries": "Ошибка загрузки сериала", "musicNotSupported": "Воспроизведение музыки пока не поддерживается", @@ -614,7 +614,7 @@ "backgroundColor": "Цвет фона", "position": "Позиция", "assOverride": "Переопределение ASS", - "overrideScale": "Масштабировать", + "overrideScale": "Масштаб", "overrideForce": "Принудительно", "overrideStrip": "Удалить стили", "positionTop": "Сверху", @@ -658,7 +658,7 @@ "signedOutPlex": "Вы вышли из Plex.", "signOutFailed": "Не удалось выйти.", "sectionTitle": "Профили", - "summarySingle": "Добавьте профили, чтобы смешать управляемых пользователей и локальные идентификаторы", + "summarySingle": "Добавляйте профили, чтобы сочетать управляемых пользователей и локальные профили", "summaryMultipleWithActive": "${count} профилей · активный: ${activeName}", "summaryMultiple": "${count} профилей", "removeConnectionTitle": "Удалить соединение?", @@ -687,16 +687,16 @@ "removeConnection": "Удалить", "profileRenamed": "Профиль переименован.", "borrowAddTo": "Добавить в ${displayName}", - "borrowExplain": "Заимствуйте подключение другого профиля. Для профилей с PIN нужен PIN.", - "borrowEmpty": "Пока нечего заимствовать.", + "borrowExplain": "Используйте подключение другого профиля. Для защищённых профилей потребуется PIN.", + "borrowEmpty": "Пока нет доступных подключений.", "borrowEmptySubtitle": "Сначала подключите Plex или Jellyfin к другому профилю.", - "borrowLoadFailed": "Available connections could not be loaded. Try again.", - "borrowFromProfile": "Из ${displayName}", - "borrowConnectionBorrowed": "Подключение заимствовано.", - "borrowFailed": "Не удалось заимствовать подключение.", + "borrowLoadFailed": "Не удалось загрузить доступные подключения. Попробуйте снова.", + "borrowFromProfile": "От ${displayName}", + "borrowConnectionBorrowed": "Подключение добавлено.", + "borrowFailed": "Не удалось добавить подключение.", "incorrectPin": "Неверный PIN.", "incorrectPinTryAgain": "Неверный PIN. Попробуйте ещё раз.", - "sourceProfileMissingParentAccount": "У исходного профиля отсутствует родительская учетная запись.", + "sourceProfileMissingParentAccount": "У исходного профиля отсутствует родительская учётная запись.", "failedToLoadHomeUsers": "Не удалось загрузить пользователей Plex Home. Проверьте подключение и попробуйте ещё раз.", "failedToVerifyPin": "Не удалось проверить PIN.", "newProfile": "Новый профиль", @@ -879,10 +879,10 @@ "libraries": "Библиотеки", "downloads": "Загрузки", "liveTv": "ТВ в прямом эфире", - "explore": "Исследовать" + "explore": "Обзор" }, "explore": { - "title": "Исследовать", + "title": "Обзор", "selectSource": "Выбрать источник", "rows": { "watchlist": "Список для просмотра", @@ -921,7 +921,7 @@ "inTheseLibraries": "В этих библиотеках", "checkingLibrary": "Проверка вашей библиотеки...", "emptyTitle": "Здесь пока ничего нет", - "emptyMessage": "Строки из ${source} появятся здесь, когда в них будет контент.", + "emptyMessage": "Разделы из ${source} появятся здесь, когда в них появится контент.", "searchHint": "Поиск в ${source}", "searchEmpty": "Нет результатов по запросу \"${query}\"", "searchPrompt": "Ищите фильмы и сериалы в ${source}.", @@ -957,7 +957,7 @@ "favorites": "Избранное", "reorderFavorites": "Изменить порядок избранного", "favoritesLoadFailed": "Не удалось загрузить избранное. Проверьте подключение и повторите попытку.", - "favoritesUpdateFailed": "Could not update favorites. Check your connection and try again.", + "favoritesUpdateFailed": "Не удалось обновить избранное. Проверьте подключение и повторите попытку.", "joinSession": "Присоединиться к текущему сеансу", "watchFromStart": "Смотреть сначала (${minutes} мин. назад)", "watchLive": "Смотреть в прямом эфире", @@ -1084,22 +1084,22 @@ "joining": "Подключение...", "controlMode": "Режим управления", "controlModeQuestion": "Кто может управлять воспроизведением?", - "hostOnly": "Только хост", + "hostOnly": "Только организатор", "anyone": "Все", - "hostingSession": "Хостинг сессии", + "hostingSession": "Вы организатор", "inSession": "В сессии", "sessionCode": "Код сессии", "openSessionControls": "Открыть управление сессией «Смотреть вместе»", "copySessionCode": "Скопировать код сессии", - "hostControlsPlayback": "Хост управляет воспроизведением", + "hostControlsPlayback": "Организатор управляет воспроизведением", "anyoneCanControl": "Любой может управлять воспроизведением", - "hostControls": "Управление хоста", - "anyoneControls": "Управление для всех", + "hostControls": "Управляет организатор", + "anyoneControls": "Управляют все", "participants": "Участники", - "host": "Хост", - "hostBadge": "HOST", - "youAreHost": "Вы — хост", - "watchingWithOthers": "Смотрите с другими", + "host": "Организатор", + "hostBadge": "ОРГАНИЗАТОР", + "youAreHost": "Вы — организатор", + "watchingWithOthers": "Совместный просмотр", "endSession": "Завершить сессию", "leaveSession": "Покинуть сессию", "endSessionQuestion": "Завершить сессию?", @@ -1116,22 +1116,22 @@ "pasteFromClipboard": "Вставить из буфера обмена", "pleaseEnterCode": "Введите код сессии", "codeMustBe5Chars": "Код сессии должен содержать 5 символов", - "joinInstructions": "Введите код сессии хоста, чтобы присоединиться.", + "joinInstructions": "Введите код сессии организатора, чтобы присоединиться.", "failedToCreate": "Не удалось создать сессию", "failedToJoin": "Не удалось присоединиться к сессии", "sessionCodeCopied": "Код сессии скопирован в буфер обмена", - "relayUnreachable": "Сервер relay недоступен. Блокировка ISP может мешать Watch Together.", - "reconnectingToHost": "Переподключение к хосту...", + "relayUnreachable": "Сервер ретрансляции недоступен. Блокировка интернет-провайдером может помешать совместному просмотру.", + "reconnectingToHost": "Повторное подключение к организатору...", "currentPlayback": "Текущее воспроизведение", "joinCurrentPlayback": "Присоединиться к текущему воспроизведению", - "joinCurrentPlaybackDescription": "Вернуться к тому, что сейчас смотрит хост", + "joinCurrentPlaybackDescription": "Вернуться к материалу, который сейчас смотрит организатор", "failedToOpenCurrentPlayback": "Не удалось открыть текущее воспроизведение", "participantJoined": "${name} присоединился", "participantLeft": "${name} вышел", "participantPaused": "${name} поставил на паузу", "participantResumed": "${name} возобновил", "participantSeeked": "${name} перемотал", - "participantBuffering": "${name} буферизует", + "participantBuffering": "У ${name} идёт буферизация", "participantNeedsUpdate": "${name} использует старую версию приложения — синхронизация недоступна", "resumingWithout": "Возобновление без ${name}", "waitingForParticipants": "Ожидание загрузки у других...", @@ -1156,7 +1156,7 @@ "retryDownload": "Повторить загрузку", "downloadQueued": "Загрузка поставлена в очередь", "downloadResumed": "Загрузка возобновлена", - "serverErrorBitrate": "Ошибка сервера: файл может превышать удаленный лимит bitrate", + "serverErrorBitrate": "Ошибка сервера: файл может превышать установленное на сервере ограничение битрейта", "episodesQueued": "${count} эпизодов поставлено в очередь загрузки", "downloadDeleted": "Загрузка удалена", "deleteConfirm": "Удалить \"${title}\" с этого устройства?", @@ -1251,10 +1251,10 @@ "connecting": "Подключение...", "searchingForDevices": "Поиск устройств...", "noDevicesFound": "Устройства в вашей сети не найдены", - "noDevicesHint": "Откройте Plezy на компьютере и используйте тот же WiFi", + "noDevicesHint": "Откройте Plezy на компьютере и подключите оба устройства к одной сети Wi-Fi", "availableDevices": "Доступные устройства", "manualConnection": "Ручное подключение", - "cryptoInitFailed": "Не удалось запустить защищенное подключение. Сначала войдите в Plex.", + "cryptoInitFailed": "Не удалось установить защищённое соединение. Сначала войдите в Plex.", "validationHostRequired": "Введите адрес хоста", "validationHostFormat": "Формат должен быть IP:порт (например, 192.168.1.100:48632)", "connectionTimedOut": "Время подключения истекло. Используйте одну сеть на обоих устройствах.", @@ -1427,9 +1427,9 @@ "show": "Показать", "hide": "Скрыть", "episodeOrdering": "Порядок эпизодов", - "tmdbAiring": "The Movie Database (Эфирный)", - "tvdbAiring": "TheTVDB (Эфирный)", - "tvdbAbsolute": "TheTVDB (Абсолютный)", + "tmdbAiring": "The Movie Database (по дате выхода)", + "tvdbAiring": "TheTVDB (по дате выхода)", + "tvdbAbsolute": "TheTVDB (абсолютный порядок)", "metadataLanguage": "Язык метаданных", "useOriginalTitle": "Использовать оригинальное название", "preferredAudioLanguage": "Предпочитаемый язык аудио", @@ -1514,7 +1514,7 @@ }, "services": { "title": "Сервисы", - "hubSubtitle": "Синхронизируйте прогресс просмотра и запрашивайте новые тайтлы.", + "hubSubtitle": "Синхронизируйте прогресс просмотра и запрашивайте новые фильмы и сериалы.", "notConnected": "Не подключено", "connectedAs": "Подключено как @${username}", "scrobble": "Автоматически отслеживать прогресс", @@ -1560,7 +1560,7 @@ }, "addServer": { "addJellyfinTitle": "Добавить сервер Jellyfin", - "serverUrls": "URL сервера", + "serverUrls": "URL-адреса сервера", "serverUrlsHelper": "Можно указать несколько URL через запятую.", "findServer": "Найти сервер", "searchingLocalServers": "Поиск локальных серверов Jellyfin...", @@ -1585,7 +1585,7 @@ "connectToJellyfinCard": "Подключиться к Jellyfin", "connectToJellyfinCardSubtitle": "Введите URL сервера, имя пользователя и пароль.", "connectToJellyfinCardSubtitleScoped": "Войдите на сервер Jellyfin. Привязывается к ${name}.", - "borrowFromAnotherProfile": "Одолжить из другого профиля", - "borrowFromAnotherProfileSubtitle": "Используйте подключение другого профиля. Для профилей с PIN нужен PIN." + "borrowFromAnotherProfile": "Использовать подключение другого профиля", + "borrowFromAnotherProfileSubtitle": "Повторно используйте подключение другого профиля. Для защищённых профилей потребуется PIN." } } diff --git a/lib/i18n/strings.g.dart b/lib/i18n/strings.g.dart index a04f0f7d..d0e3d271 100644 --- a/lib/i18n/strings.g.dart +++ b/lib/i18n/strings.g.dart @@ -3,8 +3,8 @@ /// Source: lib/i18n /// To regenerate, run: `dart run slang` /// -/// Locales: 16 -/// Strings: 23081 (1442 per locale) +/// Locales: 18 +/// Strings: 26028 (1446 per locale) // coverage:ignore-file // ignore_for_file: type=lint, unused_import @@ -21,6 +21,7 @@ import 'strings_da.g.dart' deferred as l_da; import 'strings_de.g.dart' deferred as l_de; import 'strings_es.g.dart' deferred as l_es; import 'strings_fr.g.dart' deferred as l_fr; +import 'strings_hu.g.dart' deferred as l_hu; import 'strings_it.g.dart' deferred as l_it; import 'strings_ja.g.dart' deferred as l_ja; import 'strings_ko.g.dart' deferred as l_ko; @@ -31,6 +32,7 @@ import 'strings_pt.g.dart' deferred as l_pt; import 'strings_ru.g.dart' deferred as l_ru; import 'strings_sv.g.dart' deferred as l_sv; import 'strings_zh.g.dart' deferred as l_zh; +import 'strings_zh_Hant.g.dart' deferred as l_zh_Hant; part 'strings_en.g.dart'; /// Supported locales. @@ -46,6 +48,7 @@ enum AppLocale with BaseAppLocale { de(languageCode: 'de'), es(languageCode: 'es'), fr(languageCode: 'fr'), + hu(languageCode: 'hu'), it(languageCode: 'it'), ja(languageCode: 'ja'), ko(languageCode: 'ko'), @@ -55,7 +58,8 @@ enum AppLocale with BaseAppLocale { pt(languageCode: 'pt'), ru(languageCode: 'ru'), sv(languageCode: 'sv'), - zh(languageCode: 'zh'); + zh(languageCode: 'zh'), + zhHant(languageCode: 'zh', scriptCode: 'Hant'); const AppLocale({ required this.languageCode, @@ -115,6 +119,13 @@ enum AppLocale with BaseAppLocale { cardinalResolver: cardinalResolver, ordinalResolver: ordinalResolver, ); + case AppLocale.hu: + await l_hu.loadLibrary(); + return l_hu.TranslationsHu( + overrides: overrides, + cardinalResolver: cardinalResolver, + ordinalResolver: ordinalResolver, + ); case AppLocale.it: await l_it.loadLibrary(); return l_it.TranslationsIt( @@ -185,6 +196,13 @@ enum AppLocale with BaseAppLocale { cardinalResolver: cardinalResolver, ordinalResolver: ordinalResolver, ); + case AppLocale.zhHant: + await l_zh_Hant.loadLibrary(); + return l_zh_Hant.TranslationsZhHant( + overrides: overrides, + cardinalResolver: cardinalResolver, + ordinalResolver: ordinalResolver, + ); } } @@ -231,6 +249,12 @@ enum AppLocale with BaseAppLocale { cardinalResolver: cardinalResolver, ordinalResolver: ordinalResolver, ); + case AppLocale.hu: + return l_hu.TranslationsHu( + overrides: overrides, + cardinalResolver: cardinalResolver, + ordinalResolver: ordinalResolver, + ); case AppLocale.it: return l_it.TranslationsIt( overrides: overrides, @@ -291,6 +315,12 @@ enum AppLocale with BaseAppLocale { cardinalResolver: cardinalResolver, ordinalResolver: ordinalResolver, ); + case AppLocale.zhHant: + return l_zh_Hant.TranslationsZhHant( + overrides: overrides, + cardinalResolver: cardinalResolver, + ordinalResolver: ordinalResolver, + ); } } diff --git a/lib/i18n/strings_bg.g.dart b/lib/i18n/strings_bg.g.dart index d40bc1ab..c6bb4026 100644 --- a/lib/i18n/strings_bg.g.dart +++ b/lib/i18n/strings_bg.g.dart @@ -109,19 +109,19 @@ class _Translations$auth$bg extends Translations$auth$en { // Translations @override String get signInWithPlex => 'Вход с Plex'; @override String get showQRCode => 'Покажи QR код'; - @override String get authenticate => 'Удостовери'; + @override String get authenticate => 'Удостовери се'; @override String get authenticationTimeout => 'Времето за удостоверяване изтече. Моля, опитайте отново.'; @override String get scanQRToSignIn => 'Сканирайте този QR код, за да влезете'; @override String get waitingForAuth => 'Изчакване на удостоверяване...\nВлезте от браузъра си.'; @override String get useBrowser => 'Използвай браузър'; @override String get or => 'или'; - @override String get connectToJellyfin => 'Свързване с Jellyfin'; + @override String get connectToJellyfin => 'Свържи се с Jellyfin'; @override String get useQuickConnect => 'Използвай Quick Connect'; @override String get quickConnectInstructions => 'Отворете Quick Connect в Jellyfin и въведете този код.'; @override String get quickConnectWaiting => 'Изчакване на одобрение…'; @override String get quickConnectCancel => 'Отказ'; @override String get quickConnectExpired => 'Quick Connect изтече. Опитайте отново.'; - @override String get localDataRecoveryRequired => 'Plezy could not safely recover local sign-in and pending playback data. Please sign in again.'; + @override String get localDataRecoveryRequired => 'Plezy не успя безопасно да възстанови локалните данни за вход и несинхронизираните данни за възпроизвеждане. Моля, влезте отново.'; } // Path: common @@ -231,9 +231,9 @@ class _Translations$settings$bg extends Translations$settings$en { @override String get showHeroSectionDescription => 'Показване на карусел с избрано съдържание на началния екран'; @override String get secondsLabel => 'Секунди'; @override String get minutesLabel => 'Минути'; - @override String get secondsShort => 'сек'; - @override String get minutesShort => 'мин'; - @override String durationHint({required Object min, required Object max}) => 'Въведете продължителност (${min}-${max})'; + @override String get secondsShort => 'сек.'; + @override String get minutesShort => 'мин.'; + @override String durationHint({required Object min, required Object max}) => 'Въведете продължителност (${min}–${max})'; @override String get systemTheme => 'Системна'; @override String get lightTheme => 'Светла'; @override String get darkTheme => 'Тъмна'; @@ -241,6 +241,8 @@ class _Translations$settings$bg extends Translations$settings$en { @override String get libraryDensity => 'Плътност на библиотеката'; @override String get compact => 'Компактна'; @override String get comfortable => 'Удобна'; + @override String get tvCornerSpotlightBackdrop => 'Фон с акцент в ъгъла'; + @override String get tvCornerSpotlightBackdropDescription => 'Показвай акцентното изображение в горния десен ъгъл, вместо на целия екран'; @override String get viewMode => 'Режим на изглед'; @override String get gridView => 'Мрежа'; @override String get listView => 'Списък'; @@ -265,27 +267,27 @@ class _Translations$settings$bg extends Translations$settings$en { @override String get showEpisodeNumberOnCardsDescription => 'Показвай сезон и номер на епизод върху картите на епизодите'; @override String get showSeasonPostersOnTabs => 'Показвай постери на сезоните в табовете'; @override String get showSeasonPostersOnTabsDescription => 'Показвай постера на всеки сезон над неговия таб'; - @override String get tvFullCardLayout => 'Пълни TV карти'; - @override String get tvFullCardLayoutDescription => 'Използвай TV карти само с изображения, с насложени имена на актьорите'; + @override String get tvFullCardLayout => 'Пълни телевизионни карти'; + @override String get tvFullCardLayoutDescription => 'Използвай телевизионни карти само с изображения и насложени имена на актьорите'; @override String get focusGlow => 'Сияние при фокус'; @override String get focusGlowDescription => 'Показвай меко сияние около фокусираната карта'; @override String get visualEffects => 'Визуални ефекти'; @override String get visualEffectsAuto => 'Автоматично'; @override String get visualEffectsAutoDescription => 'Автоматично намалявай ефектите на по-слаби устройства'; - @override String get visualEffectsFull => 'Пълни'; + @override String get visualEffectsFull => 'Всички'; @override String get visualEffectsReduced => 'Намалени'; @override String get visualEffectsReducedDescription => 'По-малко анимации и изображения с по-ниска резолюция'; @override String get hideSpoilers => 'Скривай спойлери за негледани епизоди'; @override String get hideSpoilersDescription => 'Замазвай миниатюри и описания за негледани епизоди'; - @override String get playerBackend => 'Енджин на плеъра'; + @override String get playerBackend => 'Система за възпроизвеждане'; @override String get exoPlayer => 'ExoPlayer'; @override String get mpv => 'mpv'; @override String get hardwareDecoding => 'Хардуерно декодиране'; @override String get hardwareDecodingDescription => 'Използвай хардуерно ускорение, когато е налично'; @override String get bufferSize => 'Размер на буфера'; - @override String bufferSizeMB({required Object size}) => '${size}MB'; + @override String bufferSizeMB({required Object size}) => '${size} MB'; @override String get bufferSizeAuto => 'Автоматично (препоръчително)'; - @override String bufferSizeWarning({required Object heap, required Object size}) => 'Налична памет ${heap}MB. Буфер ${size}MB може да повлияе на възпроизвеждането.'; + @override String bufferSizeWarning({required Object heap, required Object size}) => 'Налична памет: ${heap} MB. Буфер от ${size} MB може да повлияе на възпроизвеждането.'; @override String get defaultQualityTitle => 'Качество по подразбиране'; @override String get musicQualityTitle => 'Качество на музиката'; @override String get subtitleStyling => 'Стил на субтитрите'; @@ -296,8 +298,8 @@ class _Translations$settings$bg extends Translations$settings$en { @override String secondsUnit({required Object seconds}) => '${seconds} секунди'; @override String get defaultSleepTimer => 'Таймер за заспиване по подразбиране'; @override String minutesUnit({required Object minutes}) => '${minutes} минути'; - @override String get rememberTrackSelections => 'Запомняй избора на аудио/субтитри за сериал/филм'; - @override String get rememberTrackSelectionsDescription => 'Запомняй избора на аудио и субтитри за всяко заглавие'; + @override String get rememberTrackSelections => 'Запомняй избора на аудио и субтитри за всеки сериал или филм'; + @override String get rememberTrackSelectionsDescription => 'Запомняй избора на аудиопътечка и субтитри за всяко заглавие'; @override String get showChapterMarkersOnTimeline => 'Показвай маркери на глави върху времевата линия'; @override String get showChapterMarkersOnTimelineDescription => 'Разделяй времевата линия на сегменти по границите на главите'; @override String get clickVideoTogglesPlayback => 'Клик върху видеото превключва възпроизвеждане/пауза'; @@ -307,10 +309,10 @@ class _Translations$settings$bg extends Translations$settings$en { @override String get keyboardShortcutsDescription => 'Настройване на клавишните комбинации'; @override String get videoPlayerNavigation => 'Навигация във видео плейъра'; @override String get videoPlayerNavigationDescription => 'Използвай стрелките за навигация в контролите на видео плейъра'; - @override String get watchTogetherRelay => 'Релей сървър за гледане заедно'; - @override String get watchTogetherRelayDescription => 'Задай собствен релей сървър. Всички трябва да използват същия сървър.'; + @override String get watchTogetherRelay => 'Релеен сървър за гледане заедно'; + @override String get watchTogetherRelayDescription => 'Задай собствен релеен сървър. Всички трябва да използват един и същ сървър.'; @override String get watchTogetherRelayHint => 'https://my-relay.example.com'; - @override String get watchTogetherRelayInvalid => 'Enter a valid HTTP or HTTPS relay base URL.'; + @override String get watchTogetherRelayInvalid => 'Въведете валиден основен HTTP или HTTPS URL адрес на релейния сървър.'; @override String get crashReporting => 'Докладване на сривове'; @override String get crashReportingDescription => 'Изпращай доклади за сривове, за да помогнеш за подобряване на приложението'; @override String get debugLogging => 'Логове за отстраняване на грешки'; @@ -345,7 +347,7 @@ class _Translations$settings$bg extends Translations$settings$en { @override String validationErrorDuration({required Object min, required Object max, required Object unit}) => 'Продължителността трябва да е между ${min} и ${max} ${unit}'; @override String shortcutAlreadyAssigned({required Object action}) => 'Клавишната комбинация вече е назначена за ${action}'; @override String shortcutUpdated({required Object action}) => 'Клавишната комбинация е обновена за ${action}'; - @override String get saveFailed => 'Could not save changes. Try again.'; + @override String get saveFailed => 'Промените не можаха да бъдат запазени. Опитайте отново.'; @override String get autoSkip => 'Автоматично прескачане'; @override String get autoSkipIntro => 'Автоматично прескачане на интро'; @override String get autoSkipIntroDescription => 'Автоматично прескачай интро маркери след няколко секунди'; @@ -364,7 +366,7 @@ class _Translations$settings$bg extends Translations$settings$en { @override String get downloads => 'Изтегляния'; @override String get downloadLocationDescription => 'Изберете къде да се съхранява изтегленото съдържание'; @override String get downloadLocationDefault => 'По подразбиране (хранилище на приложението)'; - @override String get downloadLocationCustom => 'Персонална локация'; + @override String get downloadLocationCustom => 'Потребителско местоположение'; @override String get selectFolder => 'Избери папка'; @override String get resetToDefault => 'Върни по подразбиране'; @override String currentPath({required Object path}) => 'Текущ: ${path}'; @@ -372,11 +374,11 @@ class _Translations$settings$bg extends Translations$settings$en { @override String get downloadLocationReset => 'Местоположението за изтегляния е върнато по подразбиране'; @override String get downloadLocationInvalid => 'Избраната папка не е записваема'; @override String get downloadLocationPickerUnavailable => 'Изборът на папка не е наличен на това устройство'; - @override String get downloadOnWifiOnly => 'Изтегляне само през WiFi'; + @override String get downloadOnWifiOnly => 'Изтегляне само през Wi-Fi'; @override String get downloadOnWifiOnlyDescription => 'Предотвратявай изтегляния през мобилни данни'; @override String get autoRemoveWatchedDownloads => 'Автоматично премахвай изгледаните изтегляния'; @override String get autoRemoveWatchedDownloadsDescription => 'Изтривай изгледаните изтегляния автоматично'; - @override String get cellularDownloadBlocked => 'Изтеглянията са блокирани през мобилни данни. Използвайте WiFi или променете настройката.'; + @override String get cellularDownloadBlocked => 'Изтеглянията през мобилни данни са блокирани. Използвайте Wi-Fi или променете настройката.'; @override String get maxVolume => 'Максимална сила на звука'; @override String get maxVolumeDescription => 'Позволи усилване на звука над 100% за тихи медии'; @override String maxVolumePercent({required Object percent}) => '${percent}%'; @@ -388,7 +390,7 @@ class _Translations$settings$bg extends Translations$settings$en { @override String get companionRemoteServer => 'Сървър за дистанционно управление'; @override String get companionRemoteServerDescription => 'Позволи на мобилни устройства във вашата мрежа да управляват това приложение'; @override String get autoPip => 'Автоматичен режим картина в картината'; - @override String get autoPipDescription => 'Влизай в режим картина в картината при напускане по време на възпроизвеждане'; + @override String get autoPipDescription => 'Автоматично включвай режима картина в картината при излизане от приложението по време на възпроизвеждане'; @override String get matchContentFrameRate => 'Напасване към кадровата честота на съдържанието'; @override String get matchContentFrameRateDescription => 'Напасни честотата на опресняване на дисплея към видео съдържанието'; @override String get matchRefreshRate => 'Напасване на честотата на опресняване'; @@ -398,9 +400,9 @@ class _Translations$settings$bg extends Translations$settings$en { @override String get displaySwitchDelay => 'Забавяне при смяна на дисплея'; @override String get tunneledPlayback => 'Тунелно възпроизвеждане'; @override String get tunneledPlaybackDescription => 'Използвай видео тунелиране. Изключете, ако HDR възпроизвеждането показва черен екран.'; - @override String get audioPassthrough => 'Аудио passthrough'; - @override String get audioPassthroughDescription => 'Изпращай Dolby/DTS звук към ресийвъра или телевизора без прекодиране, запазвайки съраунд звука. Изключете, ако няма звук.'; - @override String get audioPassthroughDescriptionAppleTv => 'Предава Dolby Digital Plus (вкл. Atmos) на системата като битов поток. DTS и TrueHD продължават да се възпроизвеждат като многоканален PCM. При превъртане може да има кратки прекъсвания на звука.'; + @override String get audioPassthrough => 'Директно предаване на аудио'; + @override String get audioPassthroughDescription => 'Изпращай Dolby/DTS звук към приемника или телевизора без прекодиране, за да запазиш съраунд звука. Изключи настройката, ако няма звук.'; + @override String get audioPassthroughDescriptionAppleTv => 'Използвай вградения декодер на Apple за Dolby Digital Plus, включително Atmos. DTS и TrueHD продължават да се възпроизвеждат като многоканален PCM. Изключи настройката, ако няма звук.'; @override String get audioDownmix => 'Смесване до стерео'; @override String get audioDownmixDescription => 'Смесва съраунд звука до два канала за стерео тонколони или слушалки'; @override String get downmixCenterBoost => 'Усилване на централния канал'; @@ -424,16 +426,16 @@ class _Translations$settings$bg extends Translations$settings$en { @override String get atmosTestUrlDescription => 'HTTP URL на суров .ec3 Dolby Atmos файл (напр. извлечен с ffmpeg)'; @override String get atmosTestUrlMissing => 'Първо задайте URL на тестовия файл'; @override String get atmosTestStatus => 'Състояние'; - @override String get dvConversionMode => 'Dolby Vision конвертиране'; - @override String get dvConversionModeDescription => 'Изберете как ExoPlayer обработва Dolby Vision Profile 7 файлове.'; + @override String get dvConversionMode => 'Преобразуване на Dolby Vision'; + @override String get dvConversionModeDescription => 'Изберете как ExoPlayer обработва файлове с Dolby Vision Profile 7.'; @override String get dvConversionAuto => 'Автоматично'; - @override String get dvConversionNative => 'Нативно / изключено'; + @override String get dvConversionNative => 'Директно / изключено'; @override String get dvConversionDv81 => 'P7 → P8.1'; @override String get dvConversionHevcStrip => 'P7 → HEVC'; - @override String get dvConversionAutoDescription => 'Използва засичане на възможностите на устройството и нормално fallback поведение'; - @override String get dvConversionNativeDescription => 'Принуждава нативен DV7 и спира повторния опит за DV конвертиране'; - @override String get dvConversionDv81Description => 'Принуждава inline RPU конвертиране към Dolby Vision профил 8.1'; - @override String get dvConversionHevcStripDescription => 'Премахва Dolby Vision RPU/EL слоевете и подава обикновен HEVC'; + @override String get dvConversionAutoDescription => 'Засича възможностите на устройството и използва обичайното резервно поведение'; + @override String get dvConversionNativeDescription => 'Принуждава директно възпроизвеждане на DV7 и изключва повторния опит за преобразуване'; + @override String get dvConversionDv81Description => 'Принуждава директно преобразуване на RPU към Dolby Vision Profile 8.1'; + @override String get dvConversionHevcStripDescription => 'Премахва слоевете Dolby Vision RPU/EL и подава обикновен HEVC поток'; @override String get requireProfileSelectionOnOpen => 'Питай за профил при отваряне на приложението'; @override String get requireProfileSelectionOnOpenDescription => 'Показвай избор на профил всеки път при отваряне на приложението'; @override String get forceTvMode => 'Принуди TV режим'; @@ -469,7 +471,7 @@ class _Translations$search$bg extends Translations$search$en { // Translations @override String get hint => 'Търсене на филми, сериали, музика...'; @override String get tryDifferentTerm => 'Опитайте с различна дума за търсене'; - @override String get searchYourMedia => 'Търсете във вашата медия'; + @override String get searchYourMedia => 'Търсете в медийното си съдържание'; @override String get enterTitleActorOrKeyword => 'Въведете заглавие, актьор или ключова дума'; } @@ -539,10 +541,10 @@ class _Translations$mediaMenu$bg extends Translations$mediaMenu$en { @override String get shuffleNotAvailableOffline => 'Разбърканото възпроизвеждане не е налично офлайн'; @override String get fileInfo => 'Информация за файла'; @override String get deleteFromServer => 'Изтрий от сървъра'; - @override String get confirmDelete => 'Да се изтрие ли тази медия и файловете ѝ от вашия сървър?'; + @override String get confirmDelete => 'Да се изтрият ли този елемент и файловете му от вашия сървър?'; @override String get deleteMultipleWarning => 'Това включва всички епизоди и техните файлове.'; - @override String get mediaDeletedSuccessfully => 'Медията е изтрита успешно'; - @override String get mediaFailedToDelete => 'Неуспешно изтриване на медията'; + @override String get mediaDeletedSuccessfully => 'Елементът е изтрит успешно'; + @override String get mediaFailedToDelete => 'Неуспешно изтриване на елемента'; @override String get rate => 'Оцени'; @override String get playFromBeginning => 'Пусни от началото'; @override String get playVersion => 'Пусни версия...'; @@ -561,7 +563,7 @@ class _Translations$rateSheet$bg extends Translations$rateSheet$en { @override String get favorited => 'Добавено в любими'; @override String get saved => 'Запазено'; @override String get notAvailable => 'Няма намерено съвпадение'; - @override String get noConnectedServices => 'Свържи услуга в Настройки, за да оценяваш там.'; + @override String get noConnectedServices => 'Свържи услуга от настройките, за да оценяваш и в нея.'; } // Path: accessibility @@ -578,7 +580,7 @@ class _Translations$accessibility$bg extends Translations$accessibility$en { @override String get mediaCardWatched => 'гледано'; @override String mediaCardPartiallyWatched({required Object percent}) => '${percent} процента изгледано'; @override String get mediaCardUnwatched => 'негледано'; - @override String get tapToPlay => 'Докоснете за възпроизвеждане'; + @override String get tapToPlay => 'Докосни за възпроизвеждане'; @override String get decrease => 'Намали'; @override String get increase => 'Увеличи'; @override String decreaseValue({required Object label}) => 'Намали ${label}'; @@ -590,7 +592,7 @@ class _Translations$accessibility$bg extends Translations$accessibility$en { @override String get expandText => 'Разгъни текста'; @override String get collapseText => 'Свий текста'; @override String get alphabetNavigation => 'Навигация по азбуката'; - @override String get alphabetScrollHint => 'Плъзнете нагоре или надолу, за да преминете по буква'; + @override String get alphabetScrollHint => 'Плъзни нагоре или надолу, за да преминеш към друга буква'; @override String rowColumnPosition({required Object row, required Object rowCount, required Object column, required Object columnCount}) => 'Ред ${row} от ${rowCount}, колона ${column} от ${columnCount}'; @override String rowPosition({required Object row, required Object rowCount}) => 'Ред ${row} от ${rowCount}'; } @@ -615,7 +617,7 @@ class _Translations$audioTracks$bg extends Translations$audioTracks$en { final TranslationsBg _root; // ignore: unused_field // Translations - @override String track({required Object n}) => 'Аудио пътечка ${n}'; + @override String track({required Object n}) => 'Аудиопътечка ${n}'; } // Path: videoControls @@ -636,8 +638,8 @@ class _Translations$videoControls$bg extends Translations$videoControls$en { @override String get letterbox => 'Черни ленти'; @override String get fillScreen => 'Запълни екрана'; @override String get stretch => 'Разтегни'; - @override String get lockRotation => 'Заключи ротацията'; - @override String get unlockRotation => 'Отключи ротацията'; + @override String get lockRotation => 'Заключи завъртането'; + @override String get unlockRotation => 'Отключи завъртането'; @override String get timerActive => 'Таймерът е активен'; @override String playbackWillPauseIn({required Object duration}) => 'Възпроизвеждането ще спре след ${duration}'; @override String get sleepTimerEndOfVideo => 'Край на текущото видео'; @@ -645,12 +647,14 @@ class _Translations$videoControls$bg extends Translations$videoControls$en { @override String get sleepTimerDurationHeader => 'Таймер'; @override String get playbackWillPauseAtEnd => 'Възпроизвеждането ще спре в края на това видео'; @override String get stillWatching => 'Още ли гледате?'; - @override String pausingIn({required Object seconds}) => 'Пауза след ${seconds}сек'; + @override String pausingIn({required Object seconds}) => 'Пауза след ${seconds} сек.'; @override String get continueWatching => 'Продължи'; @override String get autoPlayNext => 'Автоматично пусни следващото'; @override String get playNext => 'Пусни следващото'; @override String get playButton => 'Пусни'; @override String get pauseButton => 'Пауза'; + @override String get showPlaybackControls => 'Покажи контролите за възпроизвеждане'; + @override String get hidePlaybackControls => 'Скрий контролите за възпроизвеждане'; @override String seekBackwardButton({required Object seconds}) => 'Превърти назад ${seconds} секунди'; @override String seekForwardButton({required Object seconds}) => 'Превърти напред ${seconds} секунди'; @override String get previousButton => 'Предишен епизод'; @@ -675,10 +679,10 @@ class _Translations$videoControls$bg extends Translations$videoControls$en { @override String get fullscreenButton => 'Влез на цял екран'; @override String get exitFullscreenButton => 'Излез от цял екран'; @override String get alwaysOnTopButton => 'Винаги отгоре'; - @override String get rotationLockButton => 'Заключване на ротацията'; + @override String get rotationLockButton => 'Заключване на завъртането'; @override String get lockScreen => 'Заключи екрана'; @override String get screenLockButton => 'Заключване на екрана'; - @override String get longPressToUnlock => 'Задръжте продължително за отключване'; + @override String get longPressToUnlock => 'Задръж продължително за отключване'; @override String get timelineSlider => 'Видео времева линия'; @override String get volumeSlider => 'Ниво на звука'; @override String endsAt({required Object time}) => 'Свършва в ${time}'; @@ -695,8 +699,8 @@ class _Translations$videoControls$bg extends Translations$videoControls$en { @override String get language => 'Език'; @override String get noSubtitlesFound => 'Не са намерени субтитри'; @override String get noSubtitlesAvailable => 'Няма налични субтитри'; - @override String get noAudioTracksAvailable => 'Няма налични аудио писти'; - @override String get noTracksAvailable => 'Няма налични писти'; + @override String get noAudioTracksAvailable => 'Няма налични аудиопътечки'; + @override String get noTracksAvailable => 'Няма налични пътечки'; @override String get subtitleDownloaded => 'Субтитърът е изтеглен'; @override String get subtitleDownloadedNotApplied => 'Субтитрите са изтеглени, но не можаха да бъдат избрани'; @override String get subtitleDownloadFailed => 'Неуспешно изтегляне на субтитър'; @@ -724,11 +728,11 @@ class _Translations$messages$bg extends Translations$messages$en { @override String get streamInterrupted => 'Потокът прекъсна. Натиснете „Пусни“ или превъртете, за да опитате отново.'; @override String get liveStreamInterrupted => 'Потокът на живо прекъсна. Натиснете „Пусни“, за да опитате отново.'; @override String get fileInfoNotAvailable => 'Информацията за файла не е налична'; - @override String get playbackAuthenticationRequired => 'Sign in to the media server again to play this item.'; - @override String get playbackServerUnavailable => 'The media server is unavailable. Try again later.'; - @override String get playbackDataInvalid => 'The server returned invalid playback information.'; - @override String get playbackCancelled => 'Playback was cancelled.'; - @override String get playbackFailed => 'Playback could not be started.'; + @override String get playbackAuthenticationRequired => 'Влезте отново в медийния сървър, за да възпроизведете този елемент.'; + @override String get playbackServerUnavailable => 'Медийният сървър не е достъпен. Опитайте отново по-късно.'; + @override String get playbackDataInvalid => 'Сървърът върна невалидна информация за възпроизвеждането.'; + @override String get playbackCancelled => 'Възпроизвеждането беше отменено.'; + @override String get playbackFailed => 'Възпроизвеждането не можа да бъде стартирано.'; @override String errorLoadingFileInfo({required Object error}) => 'Грешка при зареждане на информация за файла: ${error}'; @override String get errorLoadingSeries => 'Грешка при зареждане на сериала'; @override String get musicNotSupported => 'Възпроизвеждането на музика все още не се поддържа'; @@ -772,16 +776,16 @@ class _Translations$subtitlingStyling$bg extends Translations$subtitlingStyling$ // Translations @override String get text => 'Текст'; - @override String get border => 'Рамка'; + @override String get border => 'Контур'; @override String get background => 'Фон'; @override String get fontSize => 'Размер на шрифта'; @override String get textColor => 'Цвят на текста'; - @override String get borderSize => 'Размер на рамката'; - @override String get borderColor => 'Цвят на рамката'; - @override String get backgroundOpacity => 'Прозрачност на фона'; + @override String get borderSize => 'Дебелина на контура'; + @override String get borderColor => 'Цвят на контура'; + @override String get backgroundOpacity => 'Непрозрачност на фона'; @override String get backgroundColor => 'Цвят на фона'; @override String get position => 'Позиция'; - @override String get assOverride => 'ASS презаписване'; + @override String get assOverride => 'Промяна на ASS стиловете'; @override String get overrideScale => 'Мащабиране'; @override String get overrideForce => 'Принудително'; @override String get overrideStrip => 'Премахване на стиловете'; @@ -879,7 +883,7 @@ class _Translations$profiles$bg extends Translations$profiles$en { @override String get borrowExplain => 'Използвай връзка от друг профил. PIN-защитените профили изискват PIN.'; @override String get borrowEmpty => 'Все още няма какво да се използва.'; @override String get borrowEmptySubtitle => 'Първо свържете Plex или Jellyfin към друг профил.'; - @override String get borrowLoadFailed => 'Available connections could not be loaded. Try again.'; + @override String get borrowLoadFailed => 'Наличните връзки не можаха да бъдат заредени. Опитайте отново.'; @override String borrowFromProfile({required Object displayName}) => 'От ${displayName}'; @override String get borrowConnectionBorrowed => 'Връзката е използвана.'; @override String get borrowFailed => 'Неуспешно използване на връзка.'; @@ -1029,7 +1033,7 @@ class _Translations$about$bg extends Translations$about$en { @override String get title => 'Относно'; @override String get openSourceLicenses => 'Лицензи с отворен код'; @override String versionLabel({required Object version}) => 'Версия ${version}'; - @override String get appDescription => 'Красив Plex и Jellyfin клиент за Flutter'; + @override String get appDescription => 'Красив клиент за Plex и Jellyfin, създаден с Flutter'; @override String get viewLicensesDescription => 'Виж лицензите на библиотеки на трети страни'; } @@ -1141,7 +1145,7 @@ class _Translations$liveTv$bg extends Translations$liveTv$en { @override String get serverUnavailable => 'Сървърът за телевизия на живо не е наличен.'; @override String get serverNotConnected => 'Сървърът за телевизия на живо не е свързан.'; @override String get noPrograms => 'Няма налични програмни данни'; - @override String get liveStreamFailed => 'Потокът на живо се провали'; + @override String get liveStreamFailed => 'Потокът на живо не можа да бъде пуснат'; @override String get unknownProgram => 'Неизвестна програма'; @override String get unknownHub => 'Неизвестно'; @override String get unknownError => 'Неизвестна грешка'; @@ -1163,7 +1167,7 @@ class _Translations$liveTv$bg extends Translations$liveTv$en { @override String get favorites => 'Любими'; @override String get reorderFavorites => 'Пренареди любимите'; @override String get favoritesLoadFailed => 'Любимите не можаха да се заредят. Проверете връзката си и опитайте отново.'; - @override String get favoritesUpdateFailed => 'Could not update favorites. Check your connection and try again.'; + @override String get favoritesUpdateFailed => 'Любимите не можаха да бъдат обновени. Проверете връзката си и опитайте отново.'; @override String get joinSession => 'Присъедини се към текуща сесия'; @override String watchFromStart({required Object minutes}) => 'Гледай от началото (преди ${minutes} мин)'; @override String get watchLive => 'Гледай на живо'; @@ -1288,17 +1292,17 @@ class _Translations$music$bg extends Translations$music$en { @override String playingFrom({required Object title}) => 'Възпроизвеждане от ${title}'; @override String get queue => 'Опашка'; @override String get clearQueue => 'Изчисти опашката'; - @override String get lyrics => 'Текст'; - @override String get noLyrics => 'Няма наличен текст'; + @override String get lyrics => 'Текст на песента'; + @override String get noLyrics => 'Няма наличен текст на песента'; @override String get sleepTimer => 'Таймер за заспиване'; @override String get sleepTimerEndOfTrack => 'Край на песента'; @override String sleepTimerMinutes({required Object n}) => '${n} минути'; @override String get stopPlayback => 'Спри възпроизвеждането'; @override String get previousTrack => 'Предишна песен'; @override String get nextTrack => 'Следваща песен'; - @override String get repeat => 'Повтори'; - @override String get repeatAll => 'Повтори всички'; - @override String get repeatOne => 'Повтори една'; + @override String get repeat => 'Повтаряне'; + @override String get repeatAll => 'Повтаряне на всички'; + @override String get repeatOne => 'Повтаряне на една'; } // Path: watchTogether @@ -1316,21 +1320,21 @@ class _Translations$watchTogether$bg extends Translations$watchTogether$en { @override String get joining => 'Присъединяване...'; @override String get controlMode => 'Режим на управление'; @override String get controlModeQuestion => 'Кой може да управлява възпроизвеждането?'; - @override String get hostOnly => 'Само домакинът'; + @override String get hostOnly => 'Само организаторът'; @override String get anyone => 'Всеки'; - @override String get hostingSession => 'Сесия с домакин'; + @override String get hostingSession => 'Организирана сесия'; @override String get inSession => 'В сесия'; @override String get sessionCode => 'Код на сесията'; @override String get openSessionControls => 'Отвори контролите за сесията „Гледане заедно“'; @override String get copySessionCode => 'Копирай кода на сесията'; - @override String get hostControlsPlayback => 'Домакинът управлява възпроизвеждането'; + @override String get hostControlsPlayback => 'Организаторът управлява възпроизвеждането'; @override String get anyoneCanControl => 'Всеки може да управлява възпроизвеждането'; - @override String get hostControls => 'Контроли на домакина'; + @override String get hostControls => 'Контроли на организатора'; @override String get anyoneControls => 'Всеки управлява'; @override String get participants => 'Участници'; - @override String get host => 'Домакин'; - @override String get hostBadge => 'ДОМАКИН'; - @override String get youAreHost => 'Вие сте домакин'; + @override String get host => 'Организатор'; + @override String get hostBadge => 'ОРГАНИЗАТОР'; + @override String get youAreHost => 'Вие сте организаторът'; @override String get watchingWithOthers => 'Гледате с други'; @override String get endSession => 'Край на сесията'; @override String get leaveSession => 'Напусни сесията'; @@ -1348,21 +1352,21 @@ class _Translations$watchTogether$bg extends Translations$watchTogether$en { @override String get pasteFromClipboard => 'Постави от клипборда'; @override String get pleaseEnterCode => 'Моля, въведете код на сесия'; @override String get codeMustBe5Chars => 'Кодът на сесията трябва да е 5 символа'; - @override String get joinInstructions => 'Въведете кода на сесията от домакина, за да се присъедините.'; + @override String get joinInstructions => 'Въведете кода на сесията от организатора, за да се присъедините.'; @override String get failedToCreate => 'Неуспешно създаване на сесия'; @override String get failedToJoin => 'Неуспешно присъединяване към сесия'; @override String get sessionCodeCopied => 'Кодът на сесията е копиран в клипборда'; - @override String get relayUnreachable => 'Релей сървърът е недостъпен. Блокиране от доставчика може да пречи на гледането заедно.'; - @override String get reconnectingToHost => 'Повторно свързване с домакина...'; + @override String get relayUnreachable => 'Релейният сървър е недостъпен. Възможно е интернет доставчикът да блокира гледането заедно.'; + @override String get reconnectingToHost => 'Повторно свързване с организатора...'; @override String get currentPlayback => 'Текущо възпроизвеждане'; @override String get joinCurrentPlayback => 'Присъедини се към текущото възпроизвеждане'; - @override String get joinCurrentPlaybackDescription => 'Върнете се към това, което домакинът гледа в момента'; + @override String get joinCurrentPlaybackDescription => 'Върнете се към това, което организаторът гледа в момента'; @override String get failedToOpenCurrentPlayback => 'Неуспешно отваряне на текущото възпроизвеждане'; @override String participantJoined({required Object name}) => '${name} се присъедини'; @override String participantLeft({required Object name}) => '${name} напусна'; @override String participantPaused({required Object name}) => '${name} постави на пауза'; @override String participantResumed({required Object name}) => '${name} продължи'; - @override String participantSeeked({required Object name}) => '${name} превъртя'; + @override String participantSeeked({required Object name}) => '${name} промени позицията на възпроизвеждане'; @override String participantBuffering({required Object name}) => '${name} буферира'; @override String participantNeedsUpdate({required Object name}) => '${name} е с по-стара версия на приложението — синхронизирането не е налично'; @override String resumingWithout({required Object name}) => 'Продължаване без ${name}'; @@ -1405,8 +1409,8 @@ class _Translations$downloads$bg extends Translations$downloads$en { @override String get resumeDownload => 'Възобнови изтеглянето'; @override String get cancelledDownload => 'Отменено изтегляне'; @override String syncingFile({required Object file, required Object status}) => '${file} (синхронизира се ${status})'; - @override String downloadedFileClickToComplete({required Object file}) => 'Изтеглен ${file} — щракнете за довършване'; - @override String get partialDownloadClickToComplete => 'Частично изтеглено — щракнете за довършване'; + @override String downloadedFileClickToComplete({required Object file}) => '${file} е изтеглен — щракнете, за да завършите'; + @override String get partialDownloadClickToComplete => 'Частично изтеглено — щракнете, за да завършите'; @override String get deleting => 'Изтриване...'; @override String deletingWithProgress({required Object title, required Object current, required Object total}) => 'Изтриване на ${title}... (${current} от ${total})'; @override String get queuedTooltip => 'В опашката'; @@ -1421,7 +1425,7 @@ class _Translations$downloads$bg extends Translations$downloads$en { @override String get allEpisodes => 'Всички епизоди'; @override String get unwatchedOnly => 'Само негледани'; @override String nextNUnwatched({required Object count}) => 'Следващите ${count} негледани'; - @override String get customAmount => 'Персонален брой...'; + @override String get customAmount => 'Друг брой...'; @override String get includeSpecials => 'Включи специалните'; @override String get howManyEpisodes => 'Колко епизода?'; @override String get invalidEpisodeCount => 'Въведете валиден брой епизоди.'; @@ -1483,7 +1487,7 @@ class _Translations$companionRemote$bg extends Translations$companionRemote$en { // Translations @override String get title => 'Дистанционно управление'; - @override String connectedTo({required Object name}) => 'Свързан към ${name}'; + @override String connectedTo({required Object name}) => 'Връзка с ${name}'; @override String get unknownDevice => 'Непознато устройство'; @override late final _Translations$companionRemote$session$bg session = _Translations$companionRemote$session$bg._(_root); @override late final _Translations$companionRemote$pairing$bg pairing = _Translations$companionRemote$pairing$bg._(_root); @@ -1508,7 +1512,7 @@ class _Translations$videoSettings$bg extends Translations$videoSettings$en { @override String get hdr => 'HDR'; @override String get audioOutput => 'Аудио изход'; @override String get performanceOverlay => 'Оверлей за производителност'; - @override String get audioPassthrough => 'Аудио passthrough'; + @override String get audioPassthrough => 'Директно предаване на аудио'; @override String get audioNormalization => 'Нормализиране на силата на звука'; @override String get audioDownmix => 'Смесване до стерео'; } @@ -1538,10 +1542,10 @@ class _Translations$performanceOverlay$bg extends Translations$performanceOverla @override String get matrix => 'Матрица'; @override String get primaries => 'Основни цветове'; @override String get transfer => 'Трансфер'; - @override String get renderFps => 'Render FPS'; - @override String get displayFps => 'Display FPS'; + @override String get renderFps => 'FPS при изобразяване'; + @override String get displayFps => 'FPS на дисплея'; @override String get avSync => 'A/V синхр.'; - @override String get dropped => 'Изпуснати'; + @override String get dropped => 'Пропуснати кадри'; @override String get dvRpus => 'DV RPU'; @override String get dvRpuAverage => 'Средно DV RPU'; @override String get dvSampleAverage => 'Средно DV семпл'; @@ -1554,7 +1558,7 @@ class _Translations$performanceOverlay$bg extends Translations$performanceOverla @override String get speed => 'Скорост'; @override String get player => 'Плеър'; @override String get memory => 'Памет'; - @override String get uiFps => 'UI FPS'; + @override String get uiFps => 'FPS на интерфейса'; } // Path: externalPlayer @@ -1568,9 +1572,9 @@ class _Translations$externalPlayer$bg extends Translations$externalPlayer$en { @override String get useExternalPlayer => 'Използвай външен плеър'; @override String get useExternalPlayerDescription => 'Отваряй видеата в друго приложение'; @override String get selectPlayer => 'Избери плейър'; - @override String get customPlayers => 'Персонални плейъри'; + @override String get customPlayers => 'Потребителски плейъри'; @override String get systemDefault => 'Системен по подразбиране'; - @override String get addCustomPlayer => 'Добави персонален плейър'; + @override String get addCustomPlayer => 'Добави потребителски плейър'; @override String get playerName => 'Име на плейъра'; @override String get playerNameHint => 'Моят плеър'; @override String get playerCommand => 'Команда'; @@ -1628,7 +1632,7 @@ class _Translations$metadataEdit$bg extends Translations$metadataEdit$en { @override String get episodeSorting => 'Сортиране на епизоди'; @override String get oldestFirst => 'Най-старите първо'; @override String get newestFirst => 'Най-новите първо'; - @override String get keep => 'Пази'; + @override String get keep => 'Запазвай'; @override String get allEpisodes => 'Всички епизоди'; @override String latestEpisodes({required Object count}) => '${count} последни епизода'; @override String get latestEpisode => 'Последен епизод'; @@ -1643,17 +1647,17 @@ class _Translations$metadataEdit$bg extends Translations$metadataEdit$en { @override String get show => 'Покажи'; @override String get hide => 'Скрий'; @override String get episodeOrdering => 'Подредба на епизодите'; - @override String get tmdbAiring => 'The Movie Database (Aired)'; - @override String get tvdbAiring => 'TheTVDB (Aired)'; - @override String get tvdbAbsolute => 'TheTVDB (Absolute)'; + @override String get tmdbAiring => 'The Movie Database (по излъчване)'; + @override String get tvdbAiring => 'TheTVDB (по излъчване)'; + @override String get tvdbAbsolute => 'TheTVDB (абсолютна подредба)'; @override String get metadataLanguage => 'Език на метаданните'; @override String get useOriginalTitle => 'Използвай оригиналното заглавие'; @override String get preferredAudioLanguage => 'Предпочитан аудио език'; @override String get preferredSubtitleLanguage => 'Предпочитан език за субтитри'; @override String get subtitleMode => 'Режим за автоматичен избор на субтитри'; - @override String get manuallySelected => 'Ръчно избрано'; - @override String get shownWithForeignAudio => 'Показва се при чуждо аудио'; - @override String get alwaysEnabled => 'Винаги включено'; + @override String get manuallySelected => 'Ръчно избрани'; + @override String get shownWithForeignAudio => 'Показване при чуждоезично аудио'; + @override String get alwaysEnabled => 'Винаги включени'; @override String get tags => 'Тагове'; @override String get addTag => 'Добави таг'; @override String get genre => 'Жанр'; @@ -1715,7 +1719,7 @@ class _Translations$trakt$bg extends Translations$trakt$en { @override String get scrobble => 'Скроблиране в реално време'; @override String get scrobbleDescription => 'Изпращай събития за пускане, пауза и спиране към Trakt по време на възпроизвеждане.'; @override String get watchedSync => 'Синхронизирай статус гледано'; - @override String get watchedSyncDescription => 'Когато маркирате елементи като гледани в Plezy, маркирай ги и в Trakt.'; + @override String get watchedSyncDescription => 'Когато маркирате елементи като гледани в Plezy, те се маркират и в Trakt.'; } // Path: seerr @@ -1766,7 +1770,7 @@ class _Translations$services$bg extends Translations$services$en { // Translations @override String get title => 'Услуги'; @override String get hubSubtitle => 'Синхронизирай прогреса на гледане и заявявай нови заглавия.'; - @override String get notConnected => 'Не е свързан'; + @override String get notConnected => 'Няма връзка'; @override String connectedAs({required Object username}) => 'Свързан като @${username}'; @override String get scrobble => 'Проследявай прогреса автоматично'; @override String get scrobbleDescription => 'Обновявай списъка си, когато завършиш епизод или филм.'; @@ -1799,7 +1803,7 @@ class _Translations$addServer$bg extends Translations$addServer$en { @override String get required => 'Задължително'; @override String couldNotReachServer({required Object error}) => 'Сървърът не може да бъде достигнат: ${error}'; @override String signInFailed({required Object error}) => 'Входът е неуспешен: ${error}'; - @override String quickConnectFailed({required Object error}) => 'Quick Connect е неуспешен: ${error}'; + @override String quickConnectFailed({required Object error}) => 'Quick Connect не бе успешно: ${error}'; @override String get addPlexTitle => 'Вход с Plex'; @override String get pinExpired => 'PIN-ът изтече преди вход. Моля, опитайте отново.'; @override String failedToRegisterAccount({required Object error}) => 'Неуспешна регистрация на акаунт: ${error}'; @@ -1826,13 +1830,13 @@ class _Translations$hotkeys$actions$bg extends Translations$hotkeys$actions$en { @override String get playPause => 'Пускане/пауза'; @override String get volumeUp => 'Увеличи звука'; @override String get volumeDown => 'Намали звука'; - @override String seekForward({required Object seconds}) => 'Превърти напред (${seconds}сек)'; - @override String seekBackward({required Object seconds}) => 'Превърти назад (${seconds}сек)'; + @override String seekForward({required Object seconds}) => 'Превърти напред (${seconds} сек.)'; + @override String seekBackward({required Object seconds}) => 'Превърти назад (${seconds} сек.)'; @override String get fullscreenToggle => 'Превключи цял екран'; @override String get muteToggle => 'Превключи заглушаване'; @override String get subtitleToggle => 'Превключи субтитри'; - @override String get audioTrackNext => 'Следващ аудио запис'; - @override String get subtitleTrackNext => 'Следващ субтитърен запис'; + @override String get audioTrackNext => 'Следваща аудиопътечка'; + @override String get subtitleTrackNext => 'Следваща пътечка със субтитри'; @override String get chapterNext => 'Следваща глава'; @override String get chapterPrevious => 'Предишна глава'; @override String get episodeNext => 'Следващ епизод'; @@ -1859,7 +1863,7 @@ class _Translations$videoControls$pipErrors$bg extends Translations$videoControl // Translations @override String get androidVersion => 'Изисква Android 8.0 или по-нова версия'; @override String get iosVersion => 'Изисква iOS 15.0 или по-нова версия'; - @override String get permissionDisabled => 'Режимът картина в картината е изключен. Включете го в системните настройки.'; + @override String get permissionDisabled => 'Режимът картина в картината е изключен. Включете го от системните настройки.'; @override String get notSupported => 'Устройството не поддържа режим картина в картината'; @override String get voSwitchFailed => 'Неуспешна смяна на видео изхода за режим картина в картината'; @override String get failed => 'Режимът картина в картината не успя да стартира'; @@ -1953,15 +1957,15 @@ class _Translations$explore$rows$bg extends Translations$explore$rows$en { @override String get watchlist => 'Списък за гледане'; @override String get recommendedMovies => 'Препоръчани филми'; @override String get recommendedShows => 'Препоръчани сериали'; - @override String get trendingMovies => 'Актуални филми'; - @override String get trendingShows => 'Актуални сериали'; + @override String get trendingMovies => 'Набиращи популярност филми'; + @override String get trendingShows => 'Набиращи популярност сериали'; @override String get popularMovies => 'Популярни филми'; @override String get popularShows => 'Популярни сериали'; - @override String get trendingAnime => 'Актуални аниме'; + @override String get trendingAnime => 'Набиращи популярност аниме'; @override String get suggestedAnime => 'Препоръчани аниме'; @override String get airingAnime => 'Топ излъчвани аниме'; @override String get popularAnime => 'Най-популярни аниме'; - @override String get trending => 'Актуални'; + @override String get trending => 'Набиращи популярност'; @override String get upcomingMovies => 'Предстоящи филми'; @override String get upcomingShows => 'Предстоящи сериали'; } @@ -2011,7 +2015,7 @@ class _Translations$companionRemote$pairing$bg extends Translations$companionRem @override String get connecting => 'Свързване...'; @override String get searchingForDevices => 'Търсене на устройства...'; @override String get noDevicesFound => 'Не са намерени устройства във вашата мрежа'; - @override String get noDevicesHint => 'Отворете Plezy на настолен компютър и използвайте същия WiFi'; + @override String get noDevicesHint => 'Отворете Plezy на настолен компютър и използвайте същата Wi-Fi мрежа'; @override String get availableDevices => 'Налични устройства'; @override String get manualConnection => 'Ръчно свързване'; @override String get cryptoInitFailed => 'Не може да се стартира защитена връзка. Първо влезте в Plex.'; @@ -2068,8 +2072,8 @@ class _Translations$companionRemote$errors$bg extends Translations$companionRemo // Translations @override String get noNetworkInterface => 'Не е намерен мрежов интерфейс'; @override String get authenticationFailed => 'Неуспешно удостоверяване'; - @override String serverStartFailed({required Object error}) => 'Неуспешно стартиране на отдалечения сървър: ${error}'; - @override String commandFailed({required Object error}) => 'Неуспешно изпращане на отдалечена команда: ${error}'; + @override String serverStartFailed({required Object error}) => 'Неуспешно стартиране на сървъра за дистанционно управление: ${error}'; + @override String commandFailed({required Object error}) => 'Неуспешно изпращане на команда за дистанционно управление: ${error}'; @override String get joinTimedOut => 'Времето за присъединяване към сесията изтече'; @override String get failedToConnectAnyAddress => 'Неуспешно свързване към който и да е адрес'; @override String connectionLostAfterAttempts({required Object attempts}) => 'Връзката е загубена след ${attempts} опита'; @@ -2131,9 +2135,9 @@ class _Translations$services$libraryFilter$bg extends Translations$services$libr @override String subtitleBlocked({required Object count}) => '${count} блокирани'; @override String subtitleAllowed({required Object count}) => '${count} разрешени'; @override String get mode => 'Режим на филтъра'; - @override String get modeBlacklist => 'Черен списък'; - @override String get modeWhitelist => 'Бял списък'; - @override String get modeHintBlacklist => 'Синхронизирай всяка библиотека, освен отметнатите по-долу.'; + @override String get modeBlacklist => 'Списък за изключване'; + @override String get modeWhitelist => 'Списък за включване'; + @override String get modeHintBlacklist => 'Синхронизирай всички библиотеки освен отметнатите по-долу.'; @override String get modeHintWhitelist => 'Синхронизирай само отметнатите по-долу библиотеки.'; @override String get libraries => 'Библиотеки'; @override String get noLibraries => 'Няма налични библиотеки'; @@ -2150,19 +2154,19 @@ extension on TranslationsBg { 'app.title' => 'Plezy', 'auth.signInWithPlex' => 'Вход с Plex', 'auth.showQRCode' => 'Покажи QR код', - 'auth.authenticate' => 'Удостовери', + 'auth.authenticate' => 'Удостовери се', 'auth.authenticationTimeout' => 'Времето за удостоверяване изтече. Моля, опитайте отново.', 'auth.scanQRToSignIn' => 'Сканирайте този QR код, за да влезете', 'auth.waitingForAuth' => 'Изчакване на удостоверяване...\nВлезте от браузъра си.', 'auth.useBrowser' => 'Използвай браузър', 'auth.or' => 'или', - 'auth.connectToJellyfin' => 'Свързване с Jellyfin', + 'auth.connectToJellyfin' => 'Свържи се с Jellyfin', 'auth.useQuickConnect' => 'Използвай Quick Connect', 'auth.quickConnectInstructions' => 'Отворете Quick Connect в Jellyfin и въведете този код.', 'auth.quickConnectWaiting' => 'Изчакване на одобрение…', 'auth.quickConnectCancel' => 'Отказ', 'auth.quickConnectExpired' => 'Quick Connect изтече. Опитайте отново.', - 'auth.localDataRecoveryRequired' => 'Plezy could not safely recover local sign-in and pending playback data. Please sign in again.', + 'auth.localDataRecoveryRequired' => 'Plezy не успя безопасно да възстанови локалните данни за вход и несинхронизираните данни за възпроизвеждане. Моля, влезте отново.', 'common.cancel' => 'Отказ', 'common.save' => 'Запази', 'common.close' => 'Затвори', @@ -2236,9 +2240,9 @@ extension on TranslationsBg { 'settings.showHeroSectionDescription' => 'Показване на карусел с избрано съдържание на началния екран', 'settings.secondsLabel' => 'Секунди', 'settings.minutesLabel' => 'Минути', - 'settings.secondsShort' => 'сек', - 'settings.minutesShort' => 'мин', - 'settings.durationHint' => ({required Object min, required Object max}) => 'Въведете продължителност (${min}-${max})', + 'settings.secondsShort' => 'сек.', + 'settings.minutesShort' => 'мин.', + 'settings.durationHint' => ({required Object min, required Object max}) => 'Въведете продължителност (${min}–${max})', 'settings.systemTheme' => 'Системна', 'settings.lightTheme' => 'Светла', 'settings.darkTheme' => 'Тъмна', @@ -2246,6 +2250,8 @@ extension on TranslationsBg { 'settings.libraryDensity' => 'Плътност на библиотеката', 'settings.compact' => 'Компактна', 'settings.comfortable' => 'Удобна', + 'settings.tvCornerSpotlightBackdrop' => 'Фон с акцент в ъгъла', + 'settings.tvCornerSpotlightBackdropDescription' => 'Показвай акцентното изображение в горния десен ъгъл, вместо на целия екран', 'settings.viewMode' => 'Режим на изглед', 'settings.gridView' => 'Мрежа', 'settings.listView' => 'Списък', @@ -2270,27 +2276,27 @@ extension on TranslationsBg { 'settings.showEpisodeNumberOnCardsDescription' => 'Показвай сезон и номер на епизод върху картите на епизодите', 'settings.showSeasonPostersOnTabs' => 'Показвай постери на сезоните в табовете', 'settings.showSeasonPostersOnTabsDescription' => 'Показвай постера на всеки сезон над неговия таб', - 'settings.tvFullCardLayout' => 'Пълни TV карти', - 'settings.tvFullCardLayoutDescription' => 'Използвай TV карти само с изображения, с насложени имена на актьорите', + 'settings.tvFullCardLayout' => 'Пълни телевизионни карти', + 'settings.tvFullCardLayoutDescription' => 'Използвай телевизионни карти само с изображения и насложени имена на актьорите', 'settings.focusGlow' => 'Сияние при фокус', 'settings.focusGlowDescription' => 'Показвай меко сияние около фокусираната карта', 'settings.visualEffects' => 'Визуални ефекти', 'settings.visualEffectsAuto' => 'Автоматично', 'settings.visualEffectsAutoDescription' => 'Автоматично намалявай ефектите на по-слаби устройства', - 'settings.visualEffectsFull' => 'Пълни', + 'settings.visualEffectsFull' => 'Всички', 'settings.visualEffectsReduced' => 'Намалени', 'settings.visualEffectsReducedDescription' => 'По-малко анимации и изображения с по-ниска резолюция', 'settings.hideSpoilers' => 'Скривай спойлери за негледани епизоди', 'settings.hideSpoilersDescription' => 'Замазвай миниатюри и описания за негледани епизоди', - 'settings.playerBackend' => 'Енджин на плеъра', + 'settings.playerBackend' => 'Система за възпроизвеждане', 'settings.exoPlayer' => 'ExoPlayer', 'settings.mpv' => 'mpv', 'settings.hardwareDecoding' => 'Хардуерно декодиране', 'settings.hardwareDecodingDescription' => 'Използвай хардуерно ускорение, когато е налично', 'settings.bufferSize' => 'Размер на буфера', - 'settings.bufferSizeMB' => ({required Object size}) => '${size}MB', + 'settings.bufferSizeMB' => ({required Object size}) => '${size} MB', 'settings.bufferSizeAuto' => 'Автоматично (препоръчително)', - 'settings.bufferSizeWarning' => ({required Object heap, required Object size}) => 'Налична памет ${heap}MB. Буфер ${size}MB може да повлияе на възпроизвеждането.', + 'settings.bufferSizeWarning' => ({required Object heap, required Object size}) => 'Налична памет: ${heap} MB. Буфер от ${size} MB може да повлияе на възпроизвеждането.', 'settings.defaultQualityTitle' => 'Качество по подразбиране', 'settings.musicQualityTitle' => 'Качество на музиката', 'settings.subtitleStyling' => 'Стил на субтитрите', @@ -2301,8 +2307,8 @@ extension on TranslationsBg { 'settings.secondsUnit' => ({required Object seconds}) => '${seconds} секунди', 'settings.defaultSleepTimer' => 'Таймер за заспиване по подразбиране', 'settings.minutesUnit' => ({required Object minutes}) => '${minutes} минути', - 'settings.rememberTrackSelections' => 'Запомняй избора на аудио/субтитри за сериал/филм', - 'settings.rememberTrackSelectionsDescription' => 'Запомняй избора на аудио и субтитри за всяко заглавие', + 'settings.rememberTrackSelections' => 'Запомняй избора на аудио и субтитри за всеки сериал или филм', + 'settings.rememberTrackSelectionsDescription' => 'Запомняй избора на аудиопътечка и субтитри за всяко заглавие', 'settings.showChapterMarkersOnTimeline' => 'Показвай маркери на глави върху времевата линия', 'settings.showChapterMarkersOnTimelineDescription' => 'Разделяй времевата линия на сегменти по границите на главите', 'settings.clickVideoTogglesPlayback' => 'Клик върху видеото превключва възпроизвеждане/пауза', @@ -2312,10 +2318,10 @@ extension on TranslationsBg { 'settings.keyboardShortcutsDescription' => 'Настройване на клавишните комбинации', 'settings.videoPlayerNavigation' => 'Навигация във видео плейъра', 'settings.videoPlayerNavigationDescription' => 'Използвай стрелките за навигация в контролите на видео плейъра', - 'settings.watchTogetherRelay' => 'Релей сървър за гледане заедно', - 'settings.watchTogetherRelayDescription' => 'Задай собствен релей сървър. Всички трябва да използват същия сървър.', + 'settings.watchTogetherRelay' => 'Релеен сървър за гледане заедно', + 'settings.watchTogetherRelayDescription' => 'Задай собствен релеен сървър. Всички трябва да използват един и същ сървър.', 'settings.watchTogetherRelayHint' => 'https://my-relay.example.com', - 'settings.watchTogetherRelayInvalid' => 'Enter a valid HTTP or HTTPS relay base URL.', + 'settings.watchTogetherRelayInvalid' => 'Въведете валиден основен HTTP или HTTPS URL адрес на релейния сървър.', 'settings.crashReporting' => 'Докладване на сривове', 'settings.crashReportingDescription' => 'Изпращай доклади за сривове, за да помогнеш за подобряване на приложението', 'settings.debugLogging' => 'Логове за отстраняване на грешки', @@ -2350,7 +2356,7 @@ extension on TranslationsBg { 'settings.validationErrorDuration' => ({required Object min, required Object max, required Object unit}) => 'Продължителността трябва да е между ${min} и ${max} ${unit}', 'settings.shortcutAlreadyAssigned' => ({required Object action}) => 'Клавишната комбинация вече е назначена за ${action}', 'settings.shortcutUpdated' => ({required Object action}) => 'Клавишната комбинация е обновена за ${action}', - 'settings.saveFailed' => 'Could not save changes. Try again.', + 'settings.saveFailed' => 'Промените не можаха да бъдат запазени. Опитайте отново.', 'settings.autoSkip' => 'Автоматично прескачане', 'settings.autoSkipIntro' => 'Автоматично прескачане на интро', 'settings.autoSkipIntroDescription' => 'Автоматично прескачай интро маркери след няколко секунди', @@ -2369,7 +2375,7 @@ extension on TranslationsBg { 'settings.downloads' => 'Изтегляния', 'settings.downloadLocationDescription' => 'Изберете къде да се съхранява изтегленото съдържание', 'settings.downloadLocationDefault' => 'По подразбиране (хранилище на приложението)', - 'settings.downloadLocationCustom' => 'Персонална локация', + 'settings.downloadLocationCustom' => 'Потребителско местоположение', 'settings.selectFolder' => 'Избери папка', 'settings.resetToDefault' => 'Върни по подразбиране', 'settings.currentPath' => ({required Object path}) => 'Текущ: ${path}', @@ -2377,11 +2383,11 @@ extension on TranslationsBg { 'settings.downloadLocationReset' => 'Местоположението за изтегляния е върнато по подразбиране', 'settings.downloadLocationInvalid' => 'Избраната папка не е записваема', 'settings.downloadLocationPickerUnavailable' => 'Изборът на папка не е наличен на това устройство', - 'settings.downloadOnWifiOnly' => 'Изтегляне само през WiFi', + 'settings.downloadOnWifiOnly' => 'Изтегляне само през Wi-Fi', 'settings.downloadOnWifiOnlyDescription' => 'Предотвратявай изтегляния през мобилни данни', 'settings.autoRemoveWatchedDownloads' => 'Автоматично премахвай изгледаните изтегляния', 'settings.autoRemoveWatchedDownloadsDescription' => 'Изтривай изгледаните изтегляния автоматично', - 'settings.cellularDownloadBlocked' => 'Изтеглянията са блокирани през мобилни данни. Използвайте WiFi или променете настройката.', + 'settings.cellularDownloadBlocked' => 'Изтеглянията през мобилни данни са блокирани. Използвайте Wi-Fi или променете настройката.', 'settings.maxVolume' => 'Максимална сила на звука', 'settings.maxVolumeDescription' => 'Позволи усилване на звука над 100% за тихи медии', 'settings.maxVolumePercent' => ({required Object percent}) => '${percent}%', @@ -2393,7 +2399,7 @@ extension on TranslationsBg { 'settings.companionRemoteServer' => 'Сървър за дистанционно управление', 'settings.companionRemoteServerDescription' => 'Позволи на мобилни устройства във вашата мрежа да управляват това приложение', 'settings.autoPip' => 'Автоматичен режим картина в картината', - 'settings.autoPipDescription' => 'Влизай в режим картина в картината при напускане по време на възпроизвеждане', + 'settings.autoPipDescription' => 'Автоматично включвай режима картина в картината при излизане от приложението по време на възпроизвеждане', 'settings.matchContentFrameRate' => 'Напасване към кадровата честота на съдържанието', 'settings.matchContentFrameRateDescription' => 'Напасни честотата на опресняване на дисплея към видео съдържанието', 'settings.matchRefreshRate' => 'Напасване на честотата на опресняване', @@ -2403,9 +2409,9 @@ extension on TranslationsBg { 'settings.displaySwitchDelay' => 'Забавяне при смяна на дисплея', 'settings.tunneledPlayback' => 'Тунелно възпроизвеждане', 'settings.tunneledPlaybackDescription' => 'Използвай видео тунелиране. Изключете, ако HDR възпроизвеждането показва черен екран.', - 'settings.audioPassthrough' => 'Аудио passthrough', - 'settings.audioPassthroughDescription' => 'Изпращай Dolby/DTS звук към ресийвъра или телевизора без прекодиране, запазвайки съраунд звука. Изключете, ако няма звук.', - 'settings.audioPassthroughDescriptionAppleTv' => 'Предава Dolby Digital Plus (вкл. Atmos) на системата като битов поток. DTS и TrueHD продължават да се възпроизвеждат като многоканален PCM. При превъртане може да има кратки прекъсвания на звука.', + 'settings.audioPassthrough' => 'Директно предаване на аудио', + 'settings.audioPassthroughDescription' => 'Изпращай Dolby/DTS звук към приемника или телевизора без прекодиране, за да запазиш съраунд звука. Изключи настройката, ако няма звук.', + 'settings.audioPassthroughDescriptionAppleTv' => 'Използвай вградения декодер на Apple за Dolby Digital Plus, включително Atmos. DTS и TrueHD продължават да се възпроизвеждат като многоканален PCM. Изключи настройката, ако няма звук.', 'settings.audioDownmix' => 'Смесване до стерео', 'settings.audioDownmixDescription' => 'Смесва съраунд звука до два канала за стерео тонколони или слушалки', 'settings.downmixCenterBoost' => 'Усилване на централния канал', @@ -2429,16 +2435,16 @@ extension on TranslationsBg { 'settings.atmosTestUrlDescription' => 'HTTP URL на суров .ec3 Dolby Atmos файл (напр. извлечен с ffmpeg)', 'settings.atmosTestUrlMissing' => 'Първо задайте URL на тестовия файл', 'settings.atmosTestStatus' => 'Състояние', - 'settings.dvConversionMode' => 'Dolby Vision конвертиране', - 'settings.dvConversionModeDescription' => 'Изберете как ExoPlayer обработва Dolby Vision Profile 7 файлове.', + 'settings.dvConversionMode' => 'Преобразуване на Dolby Vision', + 'settings.dvConversionModeDescription' => 'Изберете как ExoPlayer обработва файлове с Dolby Vision Profile 7.', 'settings.dvConversionAuto' => 'Автоматично', - 'settings.dvConversionNative' => 'Нативно / изключено', + 'settings.dvConversionNative' => 'Директно / изключено', 'settings.dvConversionDv81' => 'P7 → P8.1', 'settings.dvConversionHevcStrip' => 'P7 → HEVC', - 'settings.dvConversionAutoDescription' => 'Използва засичане на възможностите на устройството и нормално fallback поведение', - 'settings.dvConversionNativeDescription' => 'Принуждава нативен DV7 и спира повторния опит за DV конвертиране', - 'settings.dvConversionDv81Description' => 'Принуждава inline RPU конвертиране към Dolby Vision профил 8.1', - 'settings.dvConversionHevcStripDescription' => 'Премахва Dolby Vision RPU/EL слоевете и подава обикновен HEVC', + 'settings.dvConversionAutoDescription' => 'Засича възможностите на устройството и използва обичайното резервно поведение', + 'settings.dvConversionNativeDescription' => 'Принуждава директно възпроизвеждане на DV7 и изключва повторния опит за преобразуване', + 'settings.dvConversionDv81Description' => 'Принуждава директно преобразуване на RPU към Dolby Vision Profile 8.1', + 'settings.dvConversionHevcStripDescription' => 'Премахва слоевете Dolby Vision RPU/EL и подава обикновен HEVC поток', 'settings.requireProfileSelectionOnOpen' => 'Питай за профил при отваряне на приложението', 'settings.requireProfileSelectionOnOpenDescription' => 'Показвай избор на профил всеки път при отваряне на приложението', 'settings.forceTvMode' => 'Принуди TV режим', @@ -2465,7 +2471,7 @@ extension on TranslationsBg { 'settings.behavior' => 'Поведение', 'search.hint' => 'Търсене на филми, сериали, музика...', 'search.tryDifferentTerm' => 'Опитайте с различна дума за търсене', - 'search.searchYourMedia' => 'Търсете във вашата медия', + 'search.searchYourMedia' => 'Търсете в медийното си съдържание', 'search.enterTitleActorOrKeyword' => 'Въведете заглавие, актьор или ключова дума', 'hotkeys.setShortcutFor' => ({required Object actionName}) => 'Задай клавишна комбинация за ${actionName}', 'hotkeys.clearShortcut' => 'Изчисти клавишната комбинация', @@ -2476,13 +2482,13 @@ extension on TranslationsBg { 'hotkeys.actions.playPause' => 'Пускане/пауза', 'hotkeys.actions.volumeUp' => 'Увеличи звука', 'hotkeys.actions.volumeDown' => 'Намали звука', - 'hotkeys.actions.seekForward' => ({required Object seconds}) => 'Превърти напред (${seconds}сек)', - 'hotkeys.actions.seekBackward' => ({required Object seconds}) => 'Превърти назад (${seconds}сек)', + 'hotkeys.actions.seekForward' => ({required Object seconds}) => 'Превърти напред (${seconds} сек.)', + 'hotkeys.actions.seekBackward' => ({required Object seconds}) => 'Превърти назад (${seconds} сек.)', 'hotkeys.actions.fullscreenToggle' => 'Превключи цял екран', 'hotkeys.actions.muteToggle' => 'Превключи заглушаване', 'hotkeys.actions.subtitleToggle' => 'Превключи субтитри', - 'hotkeys.actions.audioTrackNext' => 'Следващ аудио запис', - 'hotkeys.actions.subtitleTrackNext' => 'Следващ субтитърен запис', + 'hotkeys.actions.audioTrackNext' => 'Следваща аудиопътечка', + 'hotkeys.actions.subtitleTrackNext' => 'Следваща пътечка със субтитри', 'hotkeys.actions.chapterNext' => 'Следваща глава', 'hotkeys.actions.chapterPrevious' => 'Предишна глава', 'hotkeys.actions.episodeNext' => 'Следващ епизод', @@ -2532,10 +2538,10 @@ extension on TranslationsBg { 'mediaMenu.shuffleNotAvailableOffline' => 'Разбърканото възпроизвеждане не е налично офлайн', 'mediaMenu.fileInfo' => 'Информация за файла', 'mediaMenu.deleteFromServer' => 'Изтрий от сървъра', - 'mediaMenu.confirmDelete' => 'Да се изтрие ли тази медия и файловете ѝ от вашия сървър?', + 'mediaMenu.confirmDelete' => 'Да се изтрият ли този елемент и файловете му от вашия сървър?', 'mediaMenu.deleteMultipleWarning' => 'Това включва всички епизоди и техните файлове.', - 'mediaMenu.mediaDeletedSuccessfully' => 'Медията е изтрита успешно', - 'mediaMenu.mediaFailedToDelete' => 'Неуспешно изтриване на медията', + 'mediaMenu.mediaDeletedSuccessfully' => 'Елементът е изтрит успешно', + 'mediaMenu.mediaFailedToDelete' => 'Неуспешно изтриване на елемента', 'mediaMenu.rate' => 'Оцени', 'mediaMenu.playFromBeginning' => 'Пусни от началото', 'mediaMenu.playVersion' => 'Пусни версия...', @@ -2545,7 +2551,7 @@ extension on TranslationsBg { 'rateSheet.favorited' => 'Добавено в любими', 'rateSheet.saved' => 'Запазено', 'rateSheet.notAvailable' => 'Няма намерено съвпадение', - 'rateSheet.noConnectedServices' => 'Свържи услуга в Настройки, за да оценяваш там.', + 'rateSheet.noConnectedServices' => 'Свържи услуга от настройките, за да оценяваш и в нея.', 'accessibility.mediaCardMovie' => ({required Object title}) => '${title}, филм', 'accessibility.mediaCardShow' => ({required Object title}) => '${title}, ТВ сериал', 'accessibility.mediaCardEpisode' => ({required Object title, required Object episodeInfo}) => '${title}, ${episodeInfo}', @@ -2553,7 +2559,7 @@ extension on TranslationsBg { 'accessibility.mediaCardWatched' => 'гледано', 'accessibility.mediaCardPartiallyWatched' => ({required Object percent}) => '${percent} процента изгледано', 'accessibility.mediaCardUnwatched' => 'негледано', - 'accessibility.tapToPlay' => 'Докоснете за възпроизвеждане', + 'accessibility.tapToPlay' => 'Докосни за възпроизвеждане', 'accessibility.decrease' => 'Намали', 'accessibility.increase' => 'Увеличи', 'accessibility.decreaseValue' => ({required Object label}) => 'Намали ${label}', @@ -2565,14 +2571,14 @@ extension on TranslationsBg { 'accessibility.expandText' => 'Разгъни текста', 'accessibility.collapseText' => 'Свий текста', 'accessibility.alphabetNavigation' => 'Навигация по азбуката', - 'accessibility.alphabetScrollHint' => 'Плъзнете нагоре или надолу, за да преминете по буква', + 'accessibility.alphabetScrollHint' => 'Плъзни нагоре или надолу, за да преминеш към друга буква', 'accessibility.rowColumnPosition' => ({required Object row, required Object rowCount, required Object column, required Object columnCount}) => 'Ред ${row} от ${rowCount}, колона ${column} от ${columnCount}', 'accessibility.rowPosition' => ({required Object row, required Object rowCount}) => 'Ред ${row} от ${rowCount}', 'tooltips.shufflePlay' => 'Разбъркано възпроизвеждане', 'tooltips.playTrailer' => 'Пусни трейлър', 'tooltips.markAsWatched' => 'Маркирай като гледано', 'tooltips.markAsUnwatched' => 'Маркирай като негледано', - 'audioTracks.track' => ({required Object n}) => 'Аудио пътечка ${n}', + 'audioTracks.track' => ({required Object n}) => 'Аудиопътечка ${n}', 'videoControls.audioLabel' => 'Аудио', 'videoControls.subtitlesLabel' => 'Субтитри', 'videoControls.resetToZero' => 'Нулирай до 0ms', @@ -2584,8 +2590,8 @@ extension on TranslationsBg { 'videoControls.letterbox' => 'Черни ленти', 'videoControls.fillScreen' => 'Запълни екрана', 'videoControls.stretch' => 'Разтегни', - 'videoControls.lockRotation' => 'Заключи ротацията', - 'videoControls.unlockRotation' => 'Отключи ротацията', + 'videoControls.lockRotation' => 'Заключи завъртането', + 'videoControls.unlockRotation' => 'Отключи завъртането', 'videoControls.timerActive' => 'Таймерът е активен', 'videoControls.playbackWillPauseIn' => ({required Object duration}) => 'Възпроизвеждането ще спре след ${duration}', 'videoControls.sleepTimerEndOfVideo' => 'Край на текущото видео', @@ -2593,12 +2599,14 @@ extension on TranslationsBg { 'videoControls.sleepTimerDurationHeader' => 'Таймер', 'videoControls.playbackWillPauseAtEnd' => 'Възпроизвеждането ще спре в края на това видео', 'videoControls.stillWatching' => 'Още ли гледате?', - 'videoControls.pausingIn' => ({required Object seconds}) => 'Пауза след ${seconds}сек', + 'videoControls.pausingIn' => ({required Object seconds}) => 'Пауза след ${seconds} сек.', 'videoControls.continueWatching' => 'Продължи', 'videoControls.autoPlayNext' => 'Автоматично пусни следващото', 'videoControls.playNext' => 'Пусни следващото', 'videoControls.playButton' => 'Пусни', 'videoControls.pauseButton' => 'Пауза', + 'videoControls.showPlaybackControls' => 'Покажи контролите за възпроизвеждане', + 'videoControls.hidePlaybackControls' => 'Скрий контролите за възпроизвеждане', 'videoControls.seekBackwardButton' => ({required Object seconds}) => 'Превърти назад ${seconds} секунди', 'videoControls.seekForwardButton' => ({required Object seconds}) => 'Превърти напред ${seconds} секунди', 'videoControls.previousButton' => 'Предишен епизод', @@ -2623,10 +2631,10 @@ extension on TranslationsBg { 'videoControls.fullscreenButton' => 'Влез на цял екран', 'videoControls.exitFullscreenButton' => 'Излез от цял екран', 'videoControls.alwaysOnTopButton' => 'Винаги отгоре', - 'videoControls.rotationLockButton' => 'Заключване на ротацията', + 'videoControls.rotationLockButton' => 'Заключване на завъртането', 'videoControls.lockScreen' => 'Заключи екрана', 'videoControls.screenLockButton' => 'Заключване на екрана', - 'videoControls.longPressToUnlock' => 'Задръжте продължително за отключване', + 'videoControls.longPressToUnlock' => 'Задръж продължително за отключване', 'videoControls.timelineSlider' => 'Видео времева линия', 'videoControls.volumeSlider' => 'Ниво на звука', 'videoControls.endsAt' => ({required Object time}) => 'Свършва в ${time}', @@ -2636,7 +2644,7 @@ extension on TranslationsBg { 'videoControls.zoomPercent' => ({required Object percent}) => 'Мащаб ${percent}%', 'videoControls.pipErrors.androidVersion' => 'Изисква Android 8.0 или по-нова версия', 'videoControls.pipErrors.iosVersion' => 'Изисква iOS 15.0 или по-нова версия', - 'videoControls.pipErrors.permissionDisabled' => 'Режимът картина в картината е изключен. Включете го в системните настройки.', + 'videoControls.pipErrors.permissionDisabled' => 'Режимът картина в картината е изключен. Включете го от системните настройки.', 'videoControls.pipErrors.notSupported' => 'Устройството не поддържа режим картина в картината', 'videoControls.pipErrors.voSwitchFailed' => 'Неуспешна смяна на видео изхода за режим картина в картината', 'videoControls.pipErrors.failed' => 'Режимът картина в картината не успя да стартира', @@ -2649,18 +2657,18 @@ extension on TranslationsBg { 'videoControls.language' => 'Език', 'videoControls.noSubtitlesFound' => 'Не са намерени субтитри', 'videoControls.noSubtitlesAvailable' => 'Няма налични субтитри', - 'videoControls.noAudioTracksAvailable' => 'Няма налични аудио писти', - 'videoControls.noTracksAvailable' => 'Няма налични писти', + 'videoControls.noAudioTracksAvailable' => 'Няма налични аудиопътечки', + 'videoControls.noTracksAvailable' => 'Няма налични пътечки', 'videoControls.subtitleDownloaded' => 'Субтитърът е изтеглен', 'videoControls.subtitleDownloadedNotApplied' => 'Субтитрите са изтеглени, но не можаха да бъдат избрани', 'videoControls.subtitleDownloadFailed' => 'Неуспешно изтегляне на субтитър', 'videoControls.searchLanguages' => 'Търсене на езици...', + _ => null, + } ?? switch (path) { 'messages.markedAsWatched' => 'Маркирано като гледано', 'messages.markedAsUnwatched' => 'Маркирано като негледано', 'messages.markedAsWatchedOffline' => 'Маркирано като гледано (ще се синхронизира, когато сте онлайн)', 'messages.markedAsUnwatchedOffline' => 'Маркирано като негледано (ще се синхронизира, когато сте онлайн)', - _ => null, - } ?? switch (path) { 'messages.autoRemovedWatchedDownload' => ({required Object title}) => 'Автоматично премахнато: ${title}', 'messages.autoRemovedWatchedDownloads' => ({required num n}) => (_root.$meta.cardinalResolver ?? PluralResolvers.cardinal('bg'))(n, one: 'Автоматично премахнато ${n} гледано изтегляне', other: 'Автоматично премахнати ${n} гледани изтегляния', ), 'messages.removedFromContinueWatching' => 'Премахнато от продължаване на гледането', @@ -2668,11 +2676,11 @@ extension on TranslationsBg { 'messages.streamInterrupted' => 'Потокът прекъсна. Натиснете „Пусни“ или превъртете, за да опитате отново.', 'messages.liveStreamInterrupted' => 'Потокът на живо прекъсна. Натиснете „Пусни“, за да опитате отново.', 'messages.fileInfoNotAvailable' => 'Информацията за файла не е налична', - 'messages.playbackAuthenticationRequired' => 'Sign in to the media server again to play this item.', - 'messages.playbackServerUnavailable' => 'The media server is unavailable. Try again later.', - 'messages.playbackDataInvalid' => 'The server returned invalid playback information.', - 'messages.playbackCancelled' => 'Playback was cancelled.', - 'messages.playbackFailed' => 'Playback could not be started.', + 'messages.playbackAuthenticationRequired' => 'Влезте отново в медийния сървър, за да възпроизведете този елемент.', + 'messages.playbackServerUnavailable' => 'Медийният сървър не е достъпен. Опитайте отново по-късно.', + 'messages.playbackDataInvalid' => 'Сървърът върна невалидна информация за възпроизвеждането.', + 'messages.playbackCancelled' => 'Възпроизвеждането беше отменено.', + 'messages.playbackFailed' => 'Възпроизвеждането не можа да бъде стартирано.', 'messages.errorLoadingFileInfo' => ({required Object error}) => 'Грешка при зареждане на информация за файла: ${error}', 'messages.errorLoadingSeries' => 'Грешка при зареждане на сериала', 'messages.musicNotSupported' => 'Възпроизвеждането на музика все още не се поддържа', @@ -2707,16 +2715,16 @@ extension on TranslationsBg { 'messages.logsUploadFailed' => 'Неуспешно качване на логовете', 'messages.logId' => 'ID на лога', 'subtitlingStyling.text' => 'Текст', - 'subtitlingStyling.border' => 'Рамка', + 'subtitlingStyling.border' => 'Контур', 'subtitlingStyling.background' => 'Фон', 'subtitlingStyling.fontSize' => 'Размер на шрифта', 'subtitlingStyling.textColor' => 'Цвят на текста', - 'subtitlingStyling.borderSize' => 'Размер на рамката', - 'subtitlingStyling.borderColor' => 'Цвят на рамката', - 'subtitlingStyling.backgroundOpacity' => 'Прозрачност на фона', + 'subtitlingStyling.borderSize' => 'Дебелина на контура', + 'subtitlingStyling.borderColor' => 'Цвят на контура', + 'subtitlingStyling.backgroundOpacity' => 'Непрозрачност на фона', 'subtitlingStyling.backgroundColor' => 'Цвят на фона', 'subtitlingStyling.position' => 'Позиция', - 'subtitlingStyling.assOverride' => 'ASS презаписване', + 'subtitlingStyling.assOverride' => 'Промяна на ASS стиловете', 'subtitlingStyling.overrideScale' => 'Мащабиране', 'subtitlingStyling.overrideForce' => 'Принудително', 'subtitlingStyling.overrideStrip' => 'Премахване на стиловете', @@ -2787,7 +2795,7 @@ extension on TranslationsBg { 'profiles.borrowExplain' => 'Използвай връзка от друг профил. PIN-защитените профили изискват PIN.', 'profiles.borrowEmpty' => 'Все още няма какво да се използва.', 'profiles.borrowEmptySubtitle' => 'Първо свържете Plex или Jellyfin към друг профил.', - 'profiles.borrowLoadFailed' => 'Available connections could not be loaded. Try again.', + 'profiles.borrowLoadFailed' => 'Наличните връзки не можаха да бъдат заредени. Опитайте отново.', 'profiles.borrowFromProfile' => ({required Object displayName}) => 'От ${displayName}', 'profiles.borrowConnectionBorrowed' => 'Връзката е използвана.', 'profiles.borrowFailed' => 'Неуспешно използване на връзка.', @@ -2929,7 +2937,7 @@ extension on TranslationsBg { 'about.title' => 'Относно', 'about.openSourceLicenses' => 'Лицензи с отворен код', 'about.versionLabel' => ({required Object version}) => 'Версия ${version}', - 'about.appDescription' => 'Красив Plex и Jellyfin клиент за Flutter', + 'about.appDescription' => 'Красив клиент за Plex и Jellyfin, създаден с Flutter', 'about.viewLicensesDescription' => 'Виж лицензите на библиотеки на трети страни', 'serverSelection.noServersFoundForAccount' => ({required Object username, required Object email}) => 'Не са намерени сървъри за ${username} (${email})', 'serverSelection.failedToLoadServers' => ({required Object error}) => 'Неуспешно зареждане на сървъри: ${error}', @@ -2954,15 +2962,15 @@ extension on TranslationsBg { 'explore.rows.watchlist' => 'Списък за гледане', 'explore.rows.recommendedMovies' => 'Препоръчани филми', 'explore.rows.recommendedShows' => 'Препоръчани сериали', - 'explore.rows.trendingMovies' => 'Актуални филми', - 'explore.rows.trendingShows' => 'Актуални сериали', + 'explore.rows.trendingMovies' => 'Набиращи популярност филми', + 'explore.rows.trendingShows' => 'Набиращи популярност сериали', 'explore.rows.popularMovies' => 'Популярни филми', 'explore.rows.popularShows' => 'Популярни сериали', - 'explore.rows.trendingAnime' => 'Актуални аниме', + 'explore.rows.trendingAnime' => 'Набиращи популярност аниме', 'explore.rows.suggestedAnime' => 'Препоръчани аниме', 'explore.rows.airingAnime' => 'Топ излъчвани аниме', 'explore.rows.popularAnime' => 'Най-популярни аниме', - 'explore.rows.trending' => 'Актуални', + 'explore.rows.trending' => 'Набиращи популярност', 'explore.rows.upcomingMovies' => 'Предстоящи филми', 'explore.rows.upcomingShows' => 'Предстоящи сериали', 'explore.status.airing' => 'Излъчва се', @@ -2991,7 +2999,7 @@ extension on TranslationsBg { 'liveTv.serverUnavailable' => 'Сървърът за телевизия на живо не е наличен.', 'liveTv.serverNotConnected' => 'Сървърът за телевизия на живо не е свързан.', 'liveTv.noPrograms' => 'Няма налични програмни данни', - 'liveTv.liveStreamFailed' => 'Потокът на живо се провали', + 'liveTv.liveStreamFailed' => 'Потокът на живо не можа да бъде пуснат', 'liveTv.unknownProgram' => 'Неизвестна програма', 'liveTv.unknownHub' => 'Неизвестно', 'liveTv.unknownError' => 'Неизвестна грешка', @@ -3013,7 +3021,7 @@ extension on TranslationsBg { 'liveTv.favorites' => 'Любими', 'liveTv.reorderFavorites' => 'Пренареди любимите', 'liveTv.favoritesLoadFailed' => 'Любимите не можаха да се заредят. Проверете връзката си и опитайте отново.', - 'liveTv.favoritesUpdateFailed' => 'Could not update favorites. Check your connection and try again.', + 'liveTv.favoritesUpdateFailed' => 'Любимите не можаха да бъдат обновени. Проверете връзката си и опитайте отново.', 'liveTv.joinSession' => 'Присъедини се към текуща сесия', 'liveTv.watchFromStart' => ({required Object minutes}) => 'Гледай от началото (преди ${minutes} мин)', 'liveTv.watchLive' => 'Гледай на живо', @@ -3108,17 +3116,17 @@ extension on TranslationsBg { 'music.playingFrom' => ({required Object title}) => 'Възпроизвеждане от ${title}', 'music.queue' => 'Опашка', 'music.clearQueue' => 'Изчисти опашката', - 'music.lyrics' => 'Текст', - 'music.noLyrics' => 'Няма наличен текст', + 'music.lyrics' => 'Текст на песента', + 'music.noLyrics' => 'Няма наличен текст на песента', 'music.sleepTimer' => 'Таймер за заспиване', 'music.sleepTimerEndOfTrack' => 'Край на песента', 'music.sleepTimerMinutes' => ({required Object n}) => '${n} минути', 'music.stopPlayback' => 'Спри възпроизвеждането', 'music.previousTrack' => 'Предишна песен', 'music.nextTrack' => 'Следваща песен', - 'music.repeat' => 'Повтори', - 'music.repeatAll' => 'Повтори всички', - 'music.repeatOne' => 'Повтори една', + 'music.repeat' => 'Повтаряне', + 'music.repeatAll' => 'Повтаряне на всички', + 'music.repeatOne' => 'Повтаряне на една', 'watchTogether.title' => 'Гледане заедно', 'watchTogether.description' => 'Гледайте съдържание синхронизирано с приятели и семейство', 'watchTogether.createSession' => 'Създай сесия', @@ -3127,21 +3135,21 @@ extension on TranslationsBg { 'watchTogether.joining' => 'Присъединяване...', 'watchTogether.controlMode' => 'Режим на управление', 'watchTogether.controlModeQuestion' => 'Кой може да управлява възпроизвеждането?', - 'watchTogether.hostOnly' => 'Само домакинът', + 'watchTogether.hostOnly' => 'Само организаторът', 'watchTogether.anyone' => 'Всеки', - 'watchTogether.hostingSession' => 'Сесия с домакин', + 'watchTogether.hostingSession' => 'Организирана сесия', 'watchTogether.inSession' => 'В сесия', 'watchTogether.sessionCode' => 'Код на сесията', 'watchTogether.openSessionControls' => 'Отвори контролите за сесията „Гледане заедно“', 'watchTogether.copySessionCode' => 'Копирай кода на сесията', - 'watchTogether.hostControlsPlayback' => 'Домакинът управлява възпроизвеждането', + 'watchTogether.hostControlsPlayback' => 'Организаторът управлява възпроизвеждането', 'watchTogether.anyoneCanControl' => 'Всеки може да управлява възпроизвеждането', - 'watchTogether.hostControls' => 'Контроли на домакина', + 'watchTogether.hostControls' => 'Контроли на организатора', 'watchTogether.anyoneControls' => 'Всеки управлява', 'watchTogether.participants' => 'Участници', - 'watchTogether.host' => 'Домакин', - 'watchTogether.hostBadge' => 'ДОМАКИН', - 'watchTogether.youAreHost' => 'Вие сте домакин', + 'watchTogether.host' => 'Организатор', + 'watchTogether.hostBadge' => 'ОРГАНИЗАТОР', + 'watchTogether.youAreHost' => 'Вие сте организаторът', 'watchTogether.watchingWithOthers' => 'Гледате с други', 'watchTogether.endSession' => 'Край на сесията', 'watchTogether.leaveSession' => 'Напусни сесията', @@ -3159,23 +3167,23 @@ extension on TranslationsBg { 'watchTogether.pasteFromClipboard' => 'Постави от клипборда', 'watchTogether.pleaseEnterCode' => 'Моля, въведете код на сесия', 'watchTogether.codeMustBe5Chars' => 'Кодът на сесията трябва да е 5 символа', - 'watchTogether.joinInstructions' => 'Въведете кода на сесията от домакина, за да се присъедините.', + 'watchTogether.joinInstructions' => 'Въведете кода на сесията от организатора, за да се присъедините.', 'watchTogether.failedToCreate' => 'Неуспешно създаване на сесия', 'watchTogether.failedToJoin' => 'Неуспешно присъединяване към сесия', 'watchTogether.sessionCodeCopied' => 'Кодът на сесията е копиран в клипборда', - 'watchTogether.relayUnreachable' => 'Релей сървърът е недостъпен. Блокиране от доставчика може да пречи на гледането заедно.', - 'watchTogether.reconnectingToHost' => 'Повторно свързване с домакина...', + 'watchTogether.relayUnreachable' => 'Релейният сървър е недостъпен. Възможно е интернет доставчикът да блокира гледането заедно.', + 'watchTogether.reconnectingToHost' => 'Повторно свързване с организатора...', 'watchTogether.currentPlayback' => 'Текущо възпроизвеждане', 'watchTogether.joinCurrentPlayback' => 'Присъедини се към текущото възпроизвеждане', - 'watchTogether.joinCurrentPlaybackDescription' => 'Върнете се към това, което домакинът гледа в момента', + 'watchTogether.joinCurrentPlaybackDescription' => 'Върнете се към това, което организаторът гледа в момента', 'watchTogether.failedToOpenCurrentPlayback' => 'Неуспешно отваряне на текущото възпроизвеждане', + _ => null, + } ?? switch (path) { 'watchTogether.participantJoined' => ({required Object name}) => '${name} се присъедини', 'watchTogether.participantLeft' => ({required Object name}) => '${name} напусна', 'watchTogether.participantPaused' => ({required Object name}) => '${name} постави на пауза', 'watchTogether.participantResumed' => ({required Object name}) => '${name} продължи', - _ => null, - } ?? switch (path) { - 'watchTogether.participantSeeked' => ({required Object name}) => '${name} превъртя', + 'watchTogether.participantSeeked' => ({required Object name}) => '${name} промени позицията на възпроизвеждане', 'watchTogether.participantBuffering' => ({required Object name}) => '${name} буферира', 'watchTogether.participantNeedsUpdate' => ({required Object name}) => '${name} е с по-стара версия на приложението — синхронизирането не е налично', 'watchTogether.resumingWithout' => ({required Object name}) => 'Продължаване без ${name}', @@ -3209,8 +3217,8 @@ extension on TranslationsBg { 'downloads.resumeDownload' => 'Възобнови изтеглянето', 'downloads.cancelledDownload' => 'Отменено изтегляне', 'downloads.syncingFile' => ({required Object file, required Object status}) => '${file} (синхронизира се ${status})', - 'downloads.downloadedFileClickToComplete' => ({required Object file}) => 'Изтеглен ${file} — щракнете за довършване', - 'downloads.partialDownloadClickToComplete' => 'Частично изтеглено — щракнете за довършване', + 'downloads.downloadedFileClickToComplete' => ({required Object file}) => '${file} е изтеглен — щракнете, за да завършите', + 'downloads.partialDownloadClickToComplete' => 'Частично изтеглено — щракнете, за да завършите', 'downloads.deleting' => 'Изтриване...', 'downloads.deletingWithProgress' => ({required Object title, required Object current, required Object total}) => 'Изтриване на ${title}... (${current} от ${total})', 'downloads.queuedTooltip' => 'В опашката', @@ -3225,7 +3233,7 @@ extension on TranslationsBg { 'downloads.allEpisodes' => 'Всички епизоди', 'downloads.unwatchedOnly' => 'Само негледани', 'downloads.nextNUnwatched' => ({required Object count}) => 'Следващите ${count} негледани', - 'downloads.customAmount' => 'Персонален брой...', + 'downloads.customAmount' => 'Друг брой...', 'downloads.includeSpecials' => 'Включи специалните', 'downloads.howManyEpisodes' => 'Колко епизода?', 'downloads.invalidEpisodeCount' => 'Въведете валиден брой епизоди.', @@ -3269,7 +3277,7 @@ extension on TranslationsBg { 'shaders.deleteShader' => 'Изтрий шейдър', 'shaders.deleteShaderConfirm' => ({required Object name}) => 'Да се изтрие ли "${name}"?', 'companionRemote.title' => 'Дистанционно управление', - 'companionRemote.connectedTo' => ({required Object name}) => 'Свързан към ${name}', + 'companionRemote.connectedTo' => ({required Object name}) => 'Връзка с ${name}', 'companionRemote.unknownDevice' => 'Непознато устройство', 'companionRemote.session.startingServer' => 'Стартиране на сървър за дистанционно управление...', 'companionRemote.session.hostAddress' => 'Адрес на хоста', @@ -3287,7 +3295,7 @@ extension on TranslationsBg { 'companionRemote.pairing.connecting' => 'Свързване...', 'companionRemote.pairing.searchingForDevices' => 'Търсене на устройства...', 'companionRemote.pairing.noDevicesFound' => 'Не са намерени устройства във вашата мрежа', - 'companionRemote.pairing.noDevicesHint' => 'Отворете Plezy на настолен компютър и използвайте същия WiFi', + 'companionRemote.pairing.noDevicesHint' => 'Отворете Plezy на настолен компютър и използвайте същата Wi-Fi мрежа', 'companionRemote.pairing.availableDevices' => 'Налични устройства', 'companionRemote.pairing.manualConnection' => 'Ръчно свързване', 'companionRemote.pairing.cryptoInitFailed' => 'Не може да се стартира защитена връзка. Първо влезте в Plex.', @@ -3326,8 +3334,8 @@ extension on TranslationsBg { 'companionRemote.remote.searchHint' => 'Търсене на настолен компютър...', 'companionRemote.errors.noNetworkInterface' => 'Не е намерен мрежов интерфейс', 'companionRemote.errors.authenticationFailed' => 'Неуспешно удостоверяване', - 'companionRemote.errors.serverStartFailed' => ({required Object error}) => 'Неуспешно стартиране на отдалечения сървър: ${error}', - 'companionRemote.errors.commandFailed' => ({required Object error}) => 'Неуспешно изпращане на отдалечена команда: ${error}', + 'companionRemote.errors.serverStartFailed' => ({required Object error}) => 'Неуспешно стартиране на сървъра за дистанционно управление: ${error}', + 'companionRemote.errors.commandFailed' => ({required Object error}) => 'Неуспешно изпращане на команда за дистанционно управление: ${error}', 'companionRemote.errors.joinTimedOut' => 'Времето за присъединяване към сесията изтече', 'companionRemote.errors.failedToConnectAnyAddress' => 'Неуспешно свързване към който и да е адрес', 'companionRemote.errors.connectionLostAfterAttempts' => ({required Object attempts}) => 'Връзката е загубена след ${attempts} опита', @@ -3342,7 +3350,7 @@ extension on TranslationsBg { 'videoSettings.hdr' => 'HDR', 'videoSettings.audioOutput' => 'Аудио изход', 'videoSettings.performanceOverlay' => 'Оверлей за производителност', - 'videoSettings.audioPassthrough' => 'Аудио passthrough', + 'videoSettings.audioPassthrough' => 'Директно предаване на аудио', 'videoSettings.audioNormalization' => 'Нормализиране на силата на звука', 'videoSettings.audioDownmix' => 'Смесване до стерео', 'performanceOverlay.color' => 'Цвят', @@ -3363,10 +3371,10 @@ extension on TranslationsBg { 'performanceOverlay.matrix' => 'Матрица', 'performanceOverlay.primaries' => 'Основни цветове', 'performanceOverlay.transfer' => 'Трансфер', - 'performanceOverlay.renderFps' => 'Render FPS', - 'performanceOverlay.displayFps' => 'Display FPS', + 'performanceOverlay.renderFps' => 'FPS при изобразяване', + 'performanceOverlay.displayFps' => 'FPS на дисплея', 'performanceOverlay.avSync' => 'A/V синхр.', - 'performanceOverlay.dropped' => 'Изпуснати', + 'performanceOverlay.dropped' => 'Пропуснати кадри', 'performanceOverlay.dvRpus' => 'DV RPU', 'performanceOverlay.dvRpuAverage' => 'Средно DV RPU', 'performanceOverlay.dvSampleAverage' => 'Средно DV семпл', @@ -3379,14 +3387,14 @@ extension on TranslationsBg { 'performanceOverlay.speed' => 'Скорост', 'performanceOverlay.player' => 'Плеър', 'performanceOverlay.memory' => 'Памет', - 'performanceOverlay.uiFps' => 'UI FPS', + 'performanceOverlay.uiFps' => 'FPS на интерфейса', 'externalPlayer.title' => 'Външен плеър', 'externalPlayer.useExternalPlayer' => 'Използвай външен плеър', 'externalPlayer.useExternalPlayerDescription' => 'Отваряй видеата в друго приложение', 'externalPlayer.selectPlayer' => 'Избери плейър', - 'externalPlayer.customPlayers' => 'Персонални плейъри', + 'externalPlayer.customPlayers' => 'Потребителски плейъри', 'externalPlayer.systemDefault' => 'Системен по подразбиране', - 'externalPlayer.addCustomPlayer' => 'Добави персонален плейър', + 'externalPlayer.addCustomPlayer' => 'Добави потребителски плейър', 'externalPlayer.playerName' => 'Име на плейъра', 'externalPlayer.playerNameHint' => 'Моят плеър', 'externalPlayer.playerCommand' => 'Команда', @@ -3435,7 +3443,7 @@ extension on TranslationsBg { 'metadataEdit.episodeSorting' => 'Сортиране на епизоди', 'metadataEdit.oldestFirst' => 'Най-старите първо', 'metadataEdit.newestFirst' => 'Най-новите първо', - 'metadataEdit.keep' => 'Пази', + 'metadataEdit.keep' => 'Запазвай', 'metadataEdit.allEpisodes' => 'Всички епизоди', 'metadataEdit.latestEpisodes' => ({required Object count}) => '${count} последни епизода', 'metadataEdit.latestEpisode' => 'Последен епизод', @@ -3450,17 +3458,17 @@ extension on TranslationsBg { 'metadataEdit.show' => 'Покажи', 'metadataEdit.hide' => 'Скрий', 'metadataEdit.episodeOrdering' => 'Подредба на епизодите', - 'metadataEdit.tmdbAiring' => 'The Movie Database (Aired)', - 'metadataEdit.tvdbAiring' => 'TheTVDB (Aired)', - 'metadataEdit.tvdbAbsolute' => 'TheTVDB (Absolute)', + 'metadataEdit.tmdbAiring' => 'The Movie Database (по излъчване)', + 'metadataEdit.tvdbAiring' => 'TheTVDB (по излъчване)', + 'metadataEdit.tvdbAbsolute' => 'TheTVDB (абсолютна подредба)', 'metadataEdit.metadataLanguage' => 'Език на метаданните', 'metadataEdit.useOriginalTitle' => 'Използвай оригиналното заглавие', 'metadataEdit.preferredAudioLanguage' => 'Предпочитан аудио език', 'metadataEdit.preferredSubtitleLanguage' => 'Предпочитан език за субтитри', 'metadataEdit.subtitleMode' => 'Режим за автоматичен избор на субтитри', - 'metadataEdit.manuallySelected' => 'Ръчно избрано', - 'metadataEdit.shownWithForeignAudio' => 'Показва се при чуждо аудио', - 'metadataEdit.alwaysEnabled' => 'Винаги включено', + 'metadataEdit.manuallySelected' => 'Ръчно избрани', + 'metadataEdit.shownWithForeignAudio' => 'Показване при чуждоезично аудио', + 'metadataEdit.alwaysEnabled' => 'Винаги включени', 'metadataEdit.tags' => 'Тагове', 'metadataEdit.addTag' => 'Добави таг', 'metadataEdit.genre' => 'Жанр', @@ -3495,7 +3503,7 @@ extension on TranslationsBg { 'trakt.scrobble' => 'Скроблиране в реално време', 'trakt.scrobbleDescription' => 'Изпращай събития за пускане, пауза и спиране към Trakt по време на възпроизвеждане.', 'trakt.watchedSync' => 'Синхронизирай статус гледано', - 'trakt.watchedSyncDescription' => 'Когато маркирате елементи като гледани в Plezy, маркирай ги и в Trakt.', + 'trakt.watchedSyncDescription' => 'Когато маркирате елементи като гледани в Plezy, те се маркират и в Trakt.', 'seerr.title' => 'Seerr', 'seerr.connectTitle' => 'Свързване със Seerr', 'seerr.serverUrl' => 'URL на сървъра', @@ -3528,7 +3536,7 @@ extension on TranslationsBg { 'seerr.statusProcessing' => 'Обработва се', 'services.title' => 'Услуги', 'services.hubSubtitle' => 'Синхронизирай прогреса на гледане и заявявай нови заглавия.', - 'services.notConnected' => 'Не е свързан', + 'services.notConnected' => 'Няма връзка', 'services.connectedAs' => ({required Object username}) => 'Свързан като @${username}', 'services.scrobble' => 'Проследявай прогреса автоматично', 'services.scrobbleDescription' => 'Обновявай списъка си, когато завършиш епизод или филм.', @@ -3556,9 +3564,9 @@ extension on TranslationsBg { 'services.libraryFilter.subtitleBlocked' => ({required Object count}) => '${count} блокирани', 'services.libraryFilter.subtitleAllowed' => ({required Object count}) => '${count} разрешени', 'services.libraryFilter.mode' => 'Режим на филтъра', - 'services.libraryFilter.modeBlacklist' => 'Черен списък', - 'services.libraryFilter.modeWhitelist' => 'Бял списък', - 'services.libraryFilter.modeHintBlacklist' => 'Синхронизирай всяка библиотека, освен отметнатите по-долу.', + 'services.libraryFilter.modeBlacklist' => 'Списък за изключване', + 'services.libraryFilter.modeWhitelist' => 'Списък за включване', + 'services.libraryFilter.modeHintBlacklist' => 'Синхронизирай всички библиотеки освен отметнатите по-долу.', 'services.libraryFilter.modeHintWhitelist' => 'Синхронизирай само отметнатите по-долу библиотеки.', 'services.libraryFilter.libraries' => 'Библиотеки', 'services.libraryFilter.noLibraries' => 'Няма налични библиотеки', @@ -3575,7 +3583,7 @@ extension on TranslationsBg { 'addServer.required' => 'Задължително', 'addServer.couldNotReachServer' => ({required Object error}) => 'Сървърът не може да бъде достигнат: ${error}', 'addServer.signInFailed' => ({required Object error}) => 'Входът е неуспешен: ${error}', - 'addServer.quickConnectFailed' => ({required Object error}) => 'Quick Connect е неуспешен: ${error}', + 'addServer.quickConnectFailed' => ({required Object error}) => 'Quick Connect не бе успешно: ${error}', 'addServer.addPlexTitle' => 'Вход с Plex', 'addServer.pinExpired' => 'PIN-ът изтече преди вход. Моля, опитайте отново.', 'addServer.failedToRegisterAccount' => ({required Object error}) => 'Неуспешна регистрация на акаунт: ${error}', diff --git a/lib/i18n/strings_da.g.dart b/lib/i18n/strings_da.g.dart index 0d48f834..f4e6d013 100644 --- a/lib/i18n/strings_da.g.dart +++ b/lib/i18n/strings_da.g.dart @@ -110,18 +110,18 @@ class _Translations$auth$da extends Translations$auth$en { @override String get signInWithPlex => 'Log ind med Plex'; @override String get showQRCode => 'Vis QR-kode'; @override String get authenticate => 'Godkend'; - @override String get authenticationTimeout => 'Godkendelse fik timeout. Prøv igen.'; + @override String get authenticationTimeout => 'Godkendelsen tog for lang tid. Prøv igen.'; @override String get scanQRToSignIn => 'Scan denne QR-kode for at logge ind'; @override String get waitingForAuth => 'Venter på godkendelse...\nLog ind fra din browser.'; - @override String get useBrowser => 'Brug browser'; + @override String get useBrowser => 'Brug browseren'; @override String get or => 'eller'; @override String get connectToJellyfin => 'Forbind til Jellyfin'; @override String get useQuickConnect => 'Brug Quick Connect'; @override String get quickConnectInstructions => 'Åbn Quick Connect i Jellyfin, og indtast denne kode.'; @override String get quickConnectWaiting => 'Venter på godkendelse…'; - @override String get quickConnectCancel => 'Annullér'; + @override String get quickConnectCancel => 'Annuller'; @override String get quickConnectExpired => 'Quick Connect er udløbet. Prøv igen.'; - @override String get localDataRecoveryRequired => 'Plezy could not safely recover local sign-in and pending playback data. Please sign in again.'; + @override String get localDataRecoveryRequired => 'Plezy kunne ikke gendanne lokale loginoplysninger og ventende afspilningsdata på en sikker måde. Log ind igen.'; } // Path: common @@ -164,7 +164,7 @@ class _Translations$common$da extends Translations$common$en { @override String get ok => 'OK'; @override String get off => 'Fra'; @override String seasonNumber({required Object number}) => 'Sæson ${number}'; - @override String episodeNumberTitle({required Object number, required Object title}) => 'Episode ${number} - ${title}'; + @override String episodeNumberTitle({required Object number, required Object title}) => 'Episode ${number} – ${title}'; @override String chapterNumber({required Object number}) => 'Kapitel ${number}'; @override String get reconnect => 'Genopret forbindelse'; @override String get viewAll => 'Vis alle'; @@ -175,7 +175,7 @@ class _Translations$common$da extends Translations$common$en { @override String get loading => 'Indlæser...'; @override String get fullscreen => 'Fuldskærm'; @override String get exitFullscreen => 'Forlad fuldskærm'; - @override String get pressBackAgainToExit => 'Tryk tilbage igen for at afslutte'; + @override String get pressBackAgainToExit => 'Tryk på tilbage igen for at afslutte'; } // Path: screens @@ -189,7 +189,7 @@ class _Translations$screens$da extends Translations$screens$en { @override String get switchProfile => 'Skift profil'; @override String get subtitleStyling => 'Undertekststil'; @override String get mpvConfig => 'mpv.conf'; - @override String get logs => 'Logs'; + @override String get logs => 'Logfiler'; } // Path: update @@ -241,11 +241,13 @@ class _Translations$settings$da extends Translations$settings$en { @override String get libraryDensity => 'Bibliotekstæthed'; @override String get compact => 'Kompakt'; @override String get comfortable => 'Komfortabel'; + @override String get tvCornerSpotlightBackdrop => 'Fremhævet baggrundsbillede i hjørnet'; + @override String get tvCornerSpotlightBackdropDescription => 'Vis fremhævet grafik i øverste højre hjørne i stedet for at fylde skærmen'; @override String get viewMode => 'Visningstilstand'; @override String get gridView => 'Gitter'; @override String get listView => 'Liste'; - @override String get showHeroSection => 'Vis hero-sektion'; - @override String get continueWatchingAction => 'Handling for Fortsæt med at se'; + @override String get showHeroSection => 'Vis udvalgt indhold'; + @override String get continueWatchingAction => 'Handling for "Fortsæt med at se"'; @override String get continueWatchingPlay => 'Afspil'; @override String get continueWatchingDetails => 'Åbn detaljer'; @override String get episodeAction => 'Handling for afsnit'; @@ -253,10 +255,10 @@ class _Translations$settings$da extends Translations$settings$en { @override String get episodeDetails => 'Åbn detaljer'; @override String get useGlobalHubs => 'Brug startlayout'; @override String get useGlobalHubsDescription => 'Vis samlet startsideindhold. Brug ellers biblioteksanbefalinger.'; - @override String get showServerNameOnHubs => 'Vis servernavn på hubbe'; - @override String get showServerNameOnHubsDescription => 'Vis altid servernavne i hubtitler.'; + @override String get showServerNameOnHubs => 'Vis servernavn på hubber'; + @override String get showServerNameOnHubsDescription => 'Vis altid servernavne i titler på hubber.'; @override String get groupLibrariesByServer => 'Grupper biblioteker efter server'; - @override String get groupLibrariesByServerDescription => 'Gruppér sidebar-biblioteker under hver medieserver.'; + @override String get groupLibrariesByServerDescription => 'Gruppér bibliotekerne i sidepanelet under hver medieserver.'; @override String get alwaysKeepSidebarOpen => 'Hold altid sidepanelet åbent'; @override String get alwaysKeepSidebarOpenDescription => 'Sidepanelet forbliver udvidet, og indholdsområdet tilpasser sig'; @override String get showUnwatchedCount => 'Vis antal usete'; @@ -265,8 +267,8 @@ class _Translations$settings$da extends Translations$settings$en { @override String get showEpisodeNumberOnCardsDescription => 'Vis sæson- og episodenummer på episodekort'; @override String get showSeasonPostersOnTabs => 'Vis sæsonplakater på faner'; @override String get showSeasonPostersOnTabsDescription => 'Vis hver sæsons plakat over dens fane'; - @override String get tvFullCardLayout => 'Fuldflade TV-kort'; - @override String get tvFullCardLayoutDescription => 'Brug TV-kort kun med billeder og skuespillernavne ovenpå'; + @override String get tvFullCardLayout => 'TV-kort med billeder over hele fladen'; + @override String get tvFullCardLayoutDescription => 'Brug TV-kort, der kun viser billeder, med skuespillernavnene ovenpå'; @override String get focusGlow => 'Fokusglød'; @override String get focusGlowDescription => 'Vis en blød glød omkring det fokuserede kort'; @override String get visualEffects => 'Visuelle effekter'; @@ -277,46 +279,46 @@ class _Translations$settings$da extends Translations$settings$en { @override String get visualEffectsReducedDescription => 'Færre animationer og illustrationer i lavere opløsning'; @override String get hideSpoilers => 'Skjul spoilere for usete episoder'; @override String get hideSpoilersDescription => 'Slør miniaturebilleder og beskrivelser for usete episoder'; - @override String get playerBackend => 'Afspillerbackend'; + @override String get playerBackend => 'Afspillermotor'; @override String get exoPlayer => 'ExoPlayer'; @override String get mpv => 'mpv'; @override String get hardwareDecoding => 'Hardwaredekodning'; - @override String get hardwareDecodingDescription => 'Brug hardwareacceleration når tilgængelig'; + @override String get hardwareDecodingDescription => 'Brug hardwareacceleration, når den er tilgængelig'; @override String get bufferSize => 'Bufferstørrelse'; @override String bufferSizeMB({required Object size}) => '${size}MB'; - @override String get bufferSizeAuto => 'Auto (Anbefalet)'; - @override String bufferSizeWarning({required Object heap, required Object size}) => '${heap}MB hukommelse tilgængelig. En buffer på ${size}MB kan påvirke afspilning.'; + @override String get bufferSizeAuto => 'Automatisk (anbefalet)'; + @override String bufferSizeWarning({required Object heap, required Object size}) => '${heap} MB hukommelse tilgængelig. En buffer på ${size} MB kan påvirke afspilningen.'; @override String get defaultQualityTitle => 'Standardkvalitet'; @override String get musicQualityTitle => 'Musikkvalitet'; @override String get subtitleStyling => 'Undertekststil'; @override String get subtitleStylingDescription => 'Tilpas underteksters udseende'; - @override String get smallSkipDuration => 'Kort spring-varighed'; - @override String get largeSkipDuration => 'Lang spring-varighed'; + @override String get smallSkipDuration => 'Kort spring'; + @override String get largeSkipDuration => 'Langt spring'; @override String get rewindOnResume => 'Spol tilbage ved genoptagelse'; @override String secondsUnit({required Object seconds}) => '${seconds} sekunder'; - @override String get defaultSleepTimer => 'Standard sove-timer'; + @override String get defaultSleepTimer => 'Standard-sovetimer'; @override String minutesUnit({required Object minutes}) => '${minutes} minutter'; - @override String get rememberTrackSelections => 'Husk sporvalg per serie/film'; - @override String get rememberTrackSelectionsDescription => 'Husk lyd- og undertekstvalg pr. titel'; + @override String get rememberTrackSelections => 'Husk sporvalg for hver serie/film'; + @override String get rememberTrackSelectionsDescription => 'Husk valget af lyd og undertekster for hver titel'; @override String get showChapterMarkersOnTimeline => 'Vis kapitelmarkører på tidslinjen'; @override String get showChapterMarkersOnTimelineDescription => 'Opdel tidslinjen ved kapitelgrænser'; - @override String get clickVideoTogglesPlayback => 'Klik på video skifter afspil/pause'; - @override String get clickVideoTogglesPlaybackDescription => 'Klik på video for at afspille/pause i stedet for at vise kontroller.'; + @override String get clickVideoTogglesPlayback => 'Klik på videoen for at skifte mellem afspilning og pause'; + @override String get clickVideoTogglesPlaybackDescription => 'Klik på videoen for at afspille eller sætte på pause i stedet for at vise betjeningsknapperne.'; @override String get videoPlayerControls => 'Videoafspillerkontroller'; @override String get keyboardShortcuts => 'Tastaturgenveje'; @override String get keyboardShortcutsDescription => 'Tilpas tastaturgenveje'; @override String get videoPlayerNavigation => 'Videoafspillernavigation'; @override String get videoPlayerNavigationDescription => 'Brug piletaster til at navigere videoafspillerkontroller'; - @override String get watchTogetherRelay => 'Watch Together-relay'; - @override String get watchTogetherRelayDescription => 'Angiv en brugerdefineret relay. Alle skal bruge samme server.'; + @override String get watchTogetherRelay => 'Relayserver til Se sammen'; + @override String get watchTogetherRelayDescription => 'Angiv en brugerdefineret relayserver. Alle skal bruge den samme server.'; @override String get watchTogetherRelayHint => 'https://min-relay.eksempel.dk'; - @override String get watchTogetherRelayInvalid => 'Enter a valid HTTP or HTTPS relay base URL.'; + @override String get watchTogetherRelayInvalid => 'Angiv en gyldig basis-URL til en HTTP- eller HTTPS-relayserver.'; @override String get crashReporting => 'Fejlrapportering'; @override String get crashReportingDescription => 'Send fejlrapporter for at hjælpe med at forbedre appen'; @override String get debugLogging => 'Fejlfindingslogning'; @override String get debugLoggingDescription => 'Aktiver detaljeret logning til fejlfinding'; - @override String get viewLogs => 'Vis logs'; - @override String get viewLogsDescription => 'Vis applikationslogs'; + @override String get viewLogs => 'Vis logfiler'; + @override String get viewLogsDescription => 'Vis programmets logfiler'; @override String get clearCache => 'Ryd cache'; @override String get clearCacheDescription => 'Ryd cachelagrede billeder og data. Indhold kan indlæses langsommere.'; @override String get clearCacheSuccess => 'Cache ryddet'; @@ -331,7 +333,7 @@ class _Translations$settings$da extends Translations$settings$en { @override String get importSettingsDescription => 'Gendan præferencer fra en fil'; @override String get importSettingsConfirm => 'Dette vil erstatte dine nuværende indstillinger. Fortsæt?'; @override String get importSettingsSuccess => 'Indstillinger importeret'; - @override String get importSettingsInvalidFile => 'Denne fil er ikke en gyldig Plezy-indstillingseksport'; + @override String get importSettingsInvalidFile => 'Denne fil er ikke en gyldig eksport af Plezy-indstillinger'; @override String get importSettingsNoUser => 'Log ind før import af indstillinger'; @override String get shortcutsReset => 'Genveje nulstillet til standard'; @override String get about => 'Om'; @@ -342,19 +344,19 @@ class _Translations$settings$da extends Translations$settings$en { @override String get autoCheckUpdatesOnStartup => 'Søg automatisk efter opdateringer ved opstart'; @override String get autoCheckUpdatesOnStartupDescription => 'Giv besked, når en opdatering er tilgængelig ved start'; @override String get validationErrorEnterNumber => 'Indtast et gyldigt tal'; - @override String validationErrorDuration({required Object min, required Object max, required Object unit}) => 'Varighed skal være mellem ${min} og ${max} ${unit}'; - @override String shortcutAlreadyAssigned({required Object action}) => 'Genvej allerede tildelt til ${action}'; - @override String shortcutUpdated({required Object action}) => 'Genvej opdateret for ${action}'; - @override String get saveFailed => 'Could not save changes. Try again.'; - @override String get autoSkip => 'Auto-spring'; - @override String get autoSkipIntro => 'Auto-spring intro'; + @override String validationErrorDuration({required Object min, required Object max, required Object unit}) => 'Varigheden skal være mellem ${min} og ${max} ${unit}'; + @override String shortcutAlreadyAssigned({required Object action}) => 'Genvejen er allerede tildelt ${action}'; + @override String shortcutUpdated({required Object action}) => 'Genvejen for ${action} er opdateret'; + @override String get saveFailed => 'Ændringerne kunne ikke gemmes. Prøv igen.'; + @override String get autoSkip => 'Automatisk spring'; + @override String get autoSkipIntro => 'Spring intro over automatisk'; @override String get autoSkipIntroDescription => 'Spring automatisk intromarkører over efter få sekunder'; - @override String get autoSkipCredits => 'Auto-spring rulletekster'; - @override String get autoSkipCreditsDescription => 'Spring automatisk rulletekster over og afspil næste episode'; + @override String get autoSkipCredits => 'Spring rulletekster over automatisk'; + @override String get autoSkipCreditsDescription => 'Spring automatisk rulleteksterne over, og afspil næste episode'; @override String get forceSkipMarkerFallback => 'Tving reservemarkører'; @override String get forceSkipMarkerFallbackDescription => 'Brug mønstre i kapiteltitler, selv når Plex har markører'; - @override String get autoSkipDelay => 'Auto-spring forsinkelse'; - @override String autoSkipDelayDescription({required Object seconds}) => 'Vent ${seconds} sekunder før automatisk spring'; + @override String get autoSkipDelay => 'Forsinkelse ved automatisk spring'; + @override String autoSkipDelayDescription({required Object seconds}) => 'Vent ${seconds} sekunder, før der springes automatisk'; @override String get introPattern => 'Intromarkørmønster'; @override String get introPatternDescription => 'Regulært udtryk til at genkende intromarkører i kapiteltitler'; @override String get creditsPattern => 'Rulletekstmarkørmønster'; @@ -362,8 +364,8 @@ class _Translations$settings$da extends Translations$settings$en { @override String get invalidRegex => 'Ugyldigt regulært udtryk'; @override String get regex => 'Regulært udtryk'; @override String get downloads => 'Downloads'; - @override String get downloadLocationDescription => 'Vælg hvor downloadet indhold skal gemmes'; - @override String get downloadLocationDefault => 'Standard (App-lagring)'; + @override String get downloadLocationDescription => 'Vælg, hvor downloadet indhold skal gemmes'; + @override String get downloadLocationDefault => 'Standard (applager)'; @override String get downloadLocationCustom => 'Brugerdefineret placering'; @override String get selectFolder => 'Vælg mappe'; @override String get resetToDefault => 'Nulstil til standard'; @@ -372,43 +374,43 @@ class _Translations$settings$da extends Translations$settings$en { @override String get downloadLocationReset => 'Downloadplacering nulstillet'; @override String get downloadLocationInvalid => 'Valgt mappe er ikke skrivbar'; @override String get downloadLocationPickerUnavailable => 'Mappevalg er ikke tilgængeligt på denne enhed'; - @override String get downloadOnWifiOnly => 'Download kun på WiFi'; - @override String get downloadOnWifiOnlyDescription => 'Forhindre downloads på mobildata'; + @override String get downloadOnWifiOnly => 'Download kun via Wi-Fi'; + @override String get downloadOnWifiOnlyDescription => 'Forhindr downloads via mobildata'; @override String get autoRemoveWatchedDownloads => 'Fjern sete downloads automatisk'; @override String get autoRemoveWatchedDownloadsDescription => 'Slet sete downloads automatisk'; - @override String get cellularDownloadBlocked => 'Downloads er blokeret på mobilnetværk. Brug WiFi eller skift indstilling.'; + @override String get cellularDownloadBlocked => 'Downloads er blokeret på mobilnettet. Brug Wi-Fi, eller skift indstillingen.'; @override String get maxVolume => 'Maksimal lydstyrke'; - @override String get maxVolumeDescription => 'Tillad lydstyrkeforstærkning over 100% for stille medier'; + @override String get maxVolumeDescription => 'Tillad lydstyrkeforstærkning over 100 % for stille medier'; @override String maxVolumePercent({required Object percent}) => '${percent}%'; @override String get discordRichPresence => 'Discord Rich Presence'; - @override String get discordRichPresenceDescription => 'Vis hvad du ser på Discord'; + @override String get discordRichPresenceDescription => 'Vis på Discord, hvad du ser'; @override String get services => 'Tjenester'; @override String get servicesDescription => 'Forbind Trakt, MyAnimeList, Seerr og mere'; @override String get manageLibrariesDescription => 'Omarranger og skjul biblioteker'; - @override String get companionRemoteServer => 'Companion Remote Server'; + @override String get companionRemoteServer => 'Fjernbetjeningsserver'; @override String get companionRemoteServerDescription => 'Tillad mobilenheder på dit netværk at styre denne app'; - @override String get autoPip => 'Auto billede-i-billede'; - @override String get autoPipDescription => 'Gå i billede-i-billede, når du forlader under afspilning'; - @override String get matchContentFrameRate => 'Match indholdets billedhastighed'; + @override String get autoPip => 'Automatisk billede-i-billede'; + @override String get autoPipDescription => 'Skift automatisk til billede-i-billede, når du forlader appen under afspilning'; + @override String get matchContentFrameRate => 'Tilpas billedhastigheden til indholdet'; @override String get matchContentFrameRateDescription => 'Tilpas skærmens opdateringsfrekvens til videoindhold'; - @override String get matchRefreshRate => 'Match opdateringshastighed'; + @override String get matchRefreshRate => 'Tilpas opdateringsfrekvensen'; @override String get matchRefreshRateDescription => 'Tilpas skærmens opdateringsfrekvens i fuld skærm'; - @override String get matchDynamicRange => 'Match dynamisk område'; + @override String get matchDynamicRange => 'Tilpas dynamikområdet'; @override String get matchDynamicRangeDescription => 'Slå HDR til for HDR-indhold og derefter tilbage til SDR'; @override String get displaySwitchDelay => 'Forsinkelse ved skærmskift'; @override String get tunneledPlayback => 'Tunneleret afspilning'; @override String get tunneledPlaybackDescription => 'Brug videotunneling. Slå fra, hvis HDR-afspilning viser sort video.'; @override String get audioPassthrough => 'Lyd-passthrough'; @override String get audioPassthroughDescription => 'Send Dolby/DTS-lyd til din receiver eller dit TV uden genkodning, så surroundlyd bevares. Slå fra, hvis du ikke har lyd.'; - @override String get audioPassthroughDescriptionAppleTv => 'Overlad Dolby Digital Plus (inkl. Atmos) til systemet som bitstream. DTS og TrueHD afspilles stadig som flerkanals PCM. Korte lydhuller kan forekomme ved søgning.'; + @override String get audioPassthroughDescriptionAppleTv => 'Brug Apples indbyggede Dolby-dekoder til Dolby Digital Plus, inklusive Atmos. DTS og TrueHD afspilles stadig som flerkanals-PCM. Slå fra, hvis du ikke har lyd.'; @override String get audioDownmix => 'Downmix til stereo'; - @override String get audioDownmixDescription => 'Mikser surroundlyd ned til to kanaler til stereohøjttalere eller hovedtelefoner'; + @override String get audioDownmixDescription => 'Mix surroundlyd ned til to kanaler til stereohøjttalere eller hovedtelefoner'; @override String get downmixCenterBoost => 'Forstærkning af centerkanal'; @override String downmixCenterBoostValue({required Object db}) => '${db} dB'; @override String get downmixCenterBoostLabel => 'Forstærkning (dB)'; @override String get downmixCenterBoostShort => 'dB'; - @override String get audioDownmixNormalize => 'Normalisér lydstyrke ved downmix'; - @override String get audioDownmixNormalizeDescription => 'Sænker mixet for at undgå clipping. Slå fra for at bevare den oprindelige lydstyrke (høje scener kan forvrænges).'; + @override String get audioDownmixNormalize => 'Normaliser lydstyrken ved downmix'; + @override String get audioDownmixNormalizeDescription => 'Sænk mixets lydstyrke for at undgå clipping. Slå fra for at bevare den oprindelige lydstyrke (høje scener kan blive forvrænget).'; @override String get atmosDiagnostics => 'Atmos-outputtest'; @override String get atmosDiagnosticsDescription => 'Diagnosticér Dolby Atmos-output ved at afspille testsignaler gennem systemafspilleren'; @override String get atmosTestHlsAtmos => 'Apple Atmos-stream'; @@ -426,12 +428,12 @@ class _Translations$settings$da extends Translations$settings$en { @override String get atmosTestStatus => 'Status'; @override String get dvConversionMode => 'Dolby Vision-konvertering'; @override String get dvConversionModeDescription => 'Vælg, hvordan ExoPlayer håndterer Dolby Vision Profile 7-filer.'; - @override String get dvConversionAuto => 'Auto'; - @override String get dvConversionNative => 'Native / deaktiveret'; + @override String get dvConversionAuto => 'Automatisk'; + @override String get dvConversionNative => 'Indbygget / deaktiveret'; @override String get dvConversionDv81 => 'P7 → P8.1'; @override String get dvConversionHevcStrip => 'P7 → HEVC'; - @override String get dvConversionAutoDescription => 'Brug enhedens kapabilitetsregistrering og normal fallbackadfærd'; - @override String get dvConversionNativeDescription => 'Tving native DV7 og undertryk forsøg på DV-konvertering'; + @override String get dvConversionAutoDescription => 'Brug registrering af enhedens funktioner og normal reserveadfærd'; + @override String get dvConversionNativeDescription => 'Gennemtving indbygget DV7-understøttelse, og undlad at forsøge DV-konvertering igen'; @override String get dvConversionDv81Description => 'Tving inline RPU-konvertering til Dolby Vision profil 8.1'; @override String get dvConversionHevcStripDescription => 'Fjern Dolby Vision RPU/EL-lag og brug almindelig HEVC'; @override String get requireProfileSelectionOnOpen => 'Spørg om profil ved åbning'; @@ -442,12 +444,12 @@ class _Translations$settings$da extends Translations$settings$en { @override String get startInFullscreenDescription => 'Åbn Plezy i fuldskærmstilstand ved opstart'; @override String get exitFullscreenOnPlayerClose => 'Forlad fuldskærm ved lukning af afspiller'; @override String get exitFullscreenOnPlayerCloseDescription => 'Afslut automatisk fuldskærm, når videoafspilleren lukkes'; - @override String get autoHidePerformanceOverlay => 'Skjul ydelses-overlay automatisk'; - @override String get autoHidePerformanceOverlayDescription => 'Fade ydelses-overlayet med afspilningskontrollerne'; - @override String get showNavBarLabels => 'Vis navigationsbarlabels'; - @override String get showNavBarLabelsDescription => 'Vis tekstlabels under navigationsbarikoner'; + @override String get autoHidePerformanceOverlay => 'Skjul ydelsesoverlay automatisk'; + @override String get autoHidePerformanceOverlayDescription => 'Lad ydelsesoverlayet tone ud sammen med afspilningsknapperne'; + @override String get showNavBarLabels => 'Vis tekst på navigationslinjen'; + @override String get showNavBarLabelsDescription => 'Vis tekst under ikonerne på navigationslinjen'; @override String get startupSection => 'Startsektion'; - @override String get liveTvDefaultFavorites => 'Standard til favoritkanaler'; + @override String get liveTvDefaultFavorites => 'Vis favoritkanaler som standard'; @override String get liveTvDefaultFavoritesDescription => 'Vis kun favoritkanaler ved åbning af Live TV'; @override String get display => 'Skærm'; @override String get homeScreen => 'Startskærm'; @@ -520,7 +522,7 @@ class _Translations$fileInfo$da extends Translations$fileInfo$en { @override String get container => 'Container'; @override String get duration => 'Varighed'; @override String get optimizedForStreaming => 'Optimeret til streaming'; - @override String get has64bitOffsets => '64-bit offsets'; + @override String get has64bitOffsets => '64-bit-forskydninger'; } // Path: mediaMenu @@ -536,13 +538,13 @@ class _Translations$mediaMenu$da extends Translations$mediaMenu$en { @override String get viewDetails => 'Vis detaljer'; @override String get goToSeries => 'Gå til serie'; @override String get shufflePlay => 'Afspil tilfældigt'; - @override String get shuffleNotAvailableOffline => 'Bland afspilning er ikke tilgængelig offline'; + @override String get shuffleNotAvailableOffline => 'Tilfældig afspilning er ikke tilgængelig offline'; @override String get fileInfo => 'Filinfo'; @override String get deleteFromServer => 'Slet fra server'; @override String get confirmDelete => 'Slet dette medie og dets filer fra din server?'; @override String get deleteMultipleWarning => 'Dette inkluderer alle episoder og deres filer.'; - @override String get mediaDeletedSuccessfully => 'Medieelement slettet'; - @override String get mediaFailedToDelete => 'Kunne ikke slette medieelement'; + @override String get mediaDeletedSuccessfully => 'Mediet blev slettet'; + @override String get mediaFailedToDelete => 'Mediet kunne ikke slettes'; @override String get rate => 'Bedøm'; @override String get playFromBeginning => 'Afspil fra begyndelsen'; @override String get playVersion => 'Afspil version...'; @@ -561,7 +563,7 @@ class _Translations$rateSheet$da extends Translations$rateSheet$en { @override String get favorited => 'Føjet til favoritter'; @override String get saved => 'Gemt'; @override String get notAvailable => 'Intet match fundet'; - @override String get noConnectedServices => 'Forbind en tjeneste i Indstillinger for at bedømme der.'; + @override String get noConnectedServices => 'Forbind en tjeneste under Indstillinger for at bedømme via den.'; } // Path: accessibility @@ -639,26 +641,28 @@ class _Translations$videoControls$da extends Translations$videoControls$en { @override String get lockRotation => 'Lås rotation'; @override String get unlockRotation => 'Lås rotation op'; @override String get timerActive => 'Timer aktiv'; - @override String playbackWillPauseIn({required Object duration}) => 'Afspilning pauses om ${duration}'; + @override String playbackWillPauseIn({required Object duration}) => 'Afspilningen sættes på pause om ${duration}'; @override String get sleepTimerEndOfVideo => 'Slutningen af aktuel video'; @override String get sleepTimerStopAtHeader => 'Stop ved'; - @override String get sleepTimerDurationHeader => 'Timer'; - @override String get playbackWillPauseAtEnd => 'Afspilning pauses i slutningen af denne video'; + @override String get sleepTimerDurationHeader => 'Varighed'; + @override String get playbackWillPauseAtEnd => 'Afspilningen sættes på pause ved slutningen af denne video'; @override String get stillWatching => 'Ser du stadig?'; - @override String pausingIn({required Object seconds}) => 'Pauser om ${seconds}s'; + @override String pausingIn({required Object seconds}) => 'Sætter på pause om ${seconds} s'; @override String get continueWatching => 'Fortsæt'; - @override String get autoPlayNext => 'Auto-afspil næste'; + @override String get autoPlayNext => 'Afspil næste automatisk'; @override String get playNext => 'Afspil næste'; @override String get playButton => 'Afspil'; @override String get pauseButton => 'Pause'; + @override String get showPlaybackControls => 'Vis afspilningsknapper'; + @override String get hidePlaybackControls => 'Skjul afspilningsknapper'; @override String seekBackwardButton({required Object seconds}) => 'Spol ${seconds} sekunder tilbage'; @override String seekForwardButton({required Object seconds}) => 'Spol ${seconds} sekunder frem'; @override String get previousButton => 'Forrige episode'; @override String get nextButton => 'Næste episode'; @override String get previousChapterButton => 'Forrige kapitel'; @override String get nextChapterButton => 'Næste kapitel'; - @override String get muteButton => 'Lydløs'; - @override String get unmuteButton => 'Slå lyd til'; + @override String get muteButton => 'Slå lyden fra'; + @override String get unmuteButton => 'Slå lyden til'; @override String get settingsButton => 'Afspilningsindstillinger'; @override String get tracksButton => 'Lyd og undertekster'; @override String get chaptersButton => 'Kapitler'; @@ -678,7 +682,7 @@ class _Translations$videoControls$da extends Translations$videoControls$en { @override String get rotationLockButton => 'Rotationslås'; @override String get lockScreen => 'Lås skærm'; @override String get screenLockButton => 'Skærmlås'; - @override String get longPressToUnlock => 'Langt tryk for at låse op'; + @override String get longPressToUnlock => 'Hold nede for at låse op'; @override String get timelineSlider => 'Videotidslinje'; @override String get volumeSlider => 'Lydstyrkeniveau'; @override String endsAt({required Object time}) => 'Slutter kl. ${time}'; @@ -724,21 +728,21 @@ class _Translations$messages$da extends Translations$messages$en { @override String get streamInterrupted => 'Streamen blev afbrudt. Tryk på afspil, eller spol for at prøve igen.'; @override String get liveStreamInterrupted => 'Livestreamen blev afbrudt. Tryk på afspil for at prøve igen.'; @override String get fileInfoNotAvailable => 'Filinfo ikke tilgængelig'; - @override String get playbackAuthenticationRequired => 'Sign in to the media server again to play this item.'; - @override String get playbackServerUnavailable => 'The media server is unavailable. Try again later.'; - @override String get playbackDataInvalid => 'The server returned invalid playback information.'; - @override String get playbackCancelled => 'Playback was cancelled.'; - @override String get playbackFailed => 'Playback could not be started.'; + @override String get playbackAuthenticationRequired => 'Log ind på medieserveren igen for at afspille dette element.'; + @override String get playbackServerUnavailable => 'Medieserveren er ikke tilgængelig. Prøv igen senere.'; + @override String get playbackDataInvalid => 'Serveren returnerede ugyldige afspilningsoplysninger.'; + @override String get playbackCancelled => 'Afspilningen blev annulleret.'; + @override String get playbackFailed => 'Afspilningen kunne ikke startes.'; @override String errorLoadingFileInfo({required Object error}) => 'Fejl ved indlæsning af filinfo: ${error}'; @override String get errorLoadingSeries => 'Fejl ved indlæsning af serie'; @override String get musicNotSupported => 'Musikafspilning understøttes endnu ikke'; @override String get noDescriptionAvailable => 'Ingen beskrivelse tilgængelig'; @override String get noProfilesAvailable => 'Ingen profiler tilgængelige'; @override String get contactAdminForProfiles => 'Kontakt din serveradministrator for at tilføje profiler'; - @override String get unableToDetermineLibrarySection => 'Kan ikke bestemme biblioteksafdeling for dette element'; - @override String get logsCleared => 'Logs ryddet'; - @override String get logsCopied => 'Logs kopieret til udklipsholder'; - @override String get noLogsAvailable => 'Ingen logs tilgængelige'; + @override String get unableToDetermineLibrarySection => 'Kunne ikke finde bibliotekssektionen for dette element'; + @override String get logsCleared => 'Logfilerne blev ryddet'; + @override String get logsCopied => 'Logfilerne blev kopieret til udklipsholderen'; + @override String get noLogsAvailable => 'Ingen logfiler tilgængelige'; @override String libraryScanning({required Object title}) => 'Scanner "${title}"...'; @override String libraryScanStarted({required Object title}) => 'Biblioteksscanning startet for "${title}"'; @override String libraryScanFailed({required Object error}) => 'Kunne ikke scanne bibliotek: ${error}'; @@ -754,13 +758,13 @@ class _Translations$messages$da extends Translations$messages$en { @override String get noResultsFound => 'Ingen resultater fundet'; @override String sleepTimerSet({required Object label}) => 'Sove-timer indstillet til ${label}'; @override String get noItemsAvailable => 'Ingen elementer tilgængelige'; - @override String get failedToCreatePlayQueueNoItems => 'Kunne ikke oprette afspilningskø — ingen elementer'; + @override String get failedToCreatePlayQueueNoItems => 'Kunne ikke oprette en afspilningskø — ingen elementer'; @override String failedPlayback({required Object action, required Object error}) => 'Kunne ikke ${action}: ${error}'; @override String get switchingToCompatiblePlayer => 'Skifter til kompatibel afspiller...'; @override String get serverLimitTitle => 'Afspilning mislykkedes'; - @override String get serverLimitBody => 'Serverfejl (HTTP 500). En båndbredde-/transkodningsgrænse afviste nok sessionen. Bed ejeren om at justere den.'; - @override String get logsUploaded => 'Logs uploadet'; - @override String get logsUploadFailed => 'Kunne ikke uploade logs'; + @override String get serverLimitBody => 'Serverfejl (HTTP 500). En båndbredde- eller transkodningsgrænse afviste sandsynligvis sessionen. Bed ejeren om at justere den.'; + @override String get logsUploaded => 'Logfilerne blev uploadet'; + @override String get logsUploadFailed => 'Logfilerne kunne ikke uploades'; @override String get logId => 'Log-ID'; } @@ -778,7 +782,7 @@ class _Translations$subtitlingStyling$da extends Translations$subtitlingStyling$ @override String get textColor => 'Tekstfarve'; @override String get borderSize => 'Kantstørrelse'; @override String get borderColor => 'Kantfarve'; - @override String get backgroundOpacity => 'Baggrundsgennemsigtighed'; + @override String get backgroundOpacity => 'Baggrundsopacitet'; @override String get backgroundColor => 'Baggrundsfarve'; @override String get position => 'Position'; @override String get assOverride => 'ASS-tilsidesættelse'; @@ -843,21 +847,21 @@ class _Translations$profiles$da extends Translations$profiles$en { @override String get delete => 'Slet'; @override String get signOut => 'Log ud'; @override String get signOutPlexTitle => 'Log ud af Plex?'; - @override String signOutPlexMessage({required Object displayName}) => 'Fjern ${displayName} og alle Plex Home-brugere? Log ind igen når som helst.'; + @override String signOutPlexMessage({required Object displayName}) => 'Fjern ${displayName} og alle Plex Home-brugere? Du kan altid logge ind igen.'; @override String get signedOutPlex => 'Logget ud af Plex.'; - @override String get signOutFailed => 'Log ud mislykkedes.'; + @override String get signOutFailed => 'Kunne ikke logge ud.'; @override String get sectionTitle => 'Profiler'; - @override String get summarySingle => 'Tilføj profiler for at blande administrerede brugere og lokale identiteter'; + @override String get summarySingle => 'Tilføj profiler for at kombinere administrerede brugere med lokale identiteter'; @override String summaryMultipleWithActive({required Object count, required Object activeName}) => '${count} profiler · aktiv: ${activeName}'; @override String summaryMultiple({required Object count}) => '${count} profiler'; @override String get removeConnectionTitle => 'Fjern forbindelse?'; - @override String removeConnectionMessage({required Object displayName, required Object connectionLabel}) => 'Fjern ${displayName}s adgang til ${connectionLabel}. Andre profiler beholder den.'; + @override String removeConnectionMessage({required Object connectionLabel, required Object displayName}) => 'Fjern adgangen til ${connectionLabel} for ${displayName}. De andre profiler beholder den.'; @override String get deleteProfileTitle => 'Slet profil?'; @override String deleteProfileMessage({required Object displayName}) => 'Fjern ${displayName} og forbindelserne. Servere forbliver tilgængelige.'; @override String get profileNameLabel => 'Profilnavn'; @override String get pinProtectionLabel => 'PIN-beskyttelse'; @override String get pinManagedByPlex => 'PIN administreres af Plex. Rediger på plex.tv.'; - @override String get noPinSetEditOnPlex => 'Ingen PIN-kode angivet. For at kræve en, redigér Home-brugeren på plex.tv.'; + @override String get noPinSetEditOnPlex => 'Ingen PIN-kode angivet. Hvis der skal kræves en, skal du redigere Plex Home-brugeren på plex.tv.'; @override String get setPin => 'Angiv PIN'; @override String get setPinTitle => 'Angiv PIN'; @override String get confirmPinTitle => 'Bekræft PIN'; @@ -879,7 +883,7 @@ class _Translations$profiles$da extends Translations$profiles$en { @override String get borrowExplain => 'Lån en anden profils forbindelse. PIN-beskyttede profiler kræver en PIN.'; @override String get borrowEmpty => 'Intet at låne endnu.'; @override String get borrowEmptySubtitle => 'Forbind Plex eller Jellyfin til en anden profil først.'; - @override String get borrowLoadFailed => 'Available connections could not be loaded. Try again.'; + @override String get borrowLoadFailed => 'De tilgængelige forbindelser kunne ikke indlæses. Prøv igen.'; @override String borrowFromProfile({required Object displayName}) => 'Fra ${displayName}'; @override String get borrowConnectionBorrowed => 'Forbindelse lånt.'; @override String get borrowFailed => 'Kunne ikke låne forbindelse.'; @@ -889,11 +893,11 @@ class _Translations$profiles$da extends Translations$profiles$en { @override String get failedToLoadHomeUsers => 'Kunne ikke indlæse dine Plex Home-brugere. Tjek din forbindelse, og prøv igen.'; @override String get failedToVerifyPin => 'Kunne ikke bekræfte PIN.'; @override String get newProfile => 'Ny profil'; - @override String get profileNameHint => 'fx. Gæster, Børn, Familiens stue'; + @override String get profileNameHint => 'f.eks. Gæster, Børn, Familiens stue'; @override String get pinProtectionOptional => 'PIN-beskyttelse (valgfri)'; - @override String get pinExplain => '4-cifret PIN kræves for at skifte profiler.'; + @override String get pinExplain => 'Der kræves en 4-cifret PIN-kode for at skifte profil.'; @override String get continueButton => 'Fortsæt'; - @override String get pinsDontMatch => 'PIN-koder matcher ikke'; + @override String get pinsDontMatch => 'PIN-koderne matcher ikke'; } // Path: connections @@ -908,7 +912,7 @@ class _Translations$connections$da extends Translations$connections$en { @override String get addConnectionSubtitleNoProfile => 'Log ind med Plex eller forbind til en Jellyfin-server'; @override String addConnectionSubtitleScoped({required Object displayName}) => 'Føj til ${displayName}: Plex, Jellyfin eller en anden profilforbindelse'; @override String sessionExpiredOne({required Object name}) => 'Sessionen er udløbet for ${name}'; - @override String sessionExpiredMany({required Object count}) => 'Sessionen er udløbet for ${count} servere'; + @override String sessionExpiredMany({required Object count}) => 'Sessionerne er udløbet for ${count} servere'; @override String get signInAgain => 'Log ind igen'; @override String get editJellyfinTitle => 'Rediger Jellyfin-forbindelse'; @override String editJellyfinIntro({required Object serverName}) => 'Tilføj eller fjern URL\'er for ${serverName}. Plezy bruger den tilgængelige URL med lavest latenstid.'; @@ -926,8 +930,8 @@ class _Translations$discover$da extends Translations$discover$en { @override String get addMediaToLibraries => 'Tilføj medier til dine biblioteker'; @override String get continueWatching => 'Fortsæt med at se'; @override String continueWatchingIn({required Object library}) => 'Fortsæt med at se i ${library}'; - @override String get nextUp => 'Næste op'; - @override String nextUpIn({required Object library}) => 'Næste op i ${library}'; + @override String get nextUp => 'Næste afsnit'; + @override String nextUpIn({required Object library}) => 'Næste afsnit i ${library}'; @override String get recentlyAdded => 'Nyligt tilføjet'; @override String recentlyAddedIn({required Object library}) => 'Nyligt tilføjet i ${library}'; @override String latestAlbumsIn({required Object library}) => 'Nyeste album i ${library}'; @@ -936,7 +940,7 @@ class _Translations$discover$da extends Translations$discover$en { @override String playEpisode({required Object season, required Object episode}) => 'S${season}E${episode}'; @override String get overview => 'Oversigt'; @override String get cast => 'Rollebesætning'; - @override String get extras => 'Trailere og ekstra'; + @override String get extras => 'Trailere og ekstramateriale'; @override String get studio => 'Studie'; @override String get rating => 'Bedømmelse'; @override String get movie => 'Film'; @@ -953,7 +957,7 @@ class _Translations$errors$da extends Translations$errors$en { // Translations @override String searchFailed({required Object error}) => 'Søgning mislykkedes: ${error}'; - @override String connectionTimeout({required Object context}) => 'Forbindelsestimeout ved indlæsning af ${context}'; + @override String connectionTimeout({required Object context}) => 'Forbindelsen fik timeout under indlæsning af ${context}'; @override String get connectionFailed => 'Kan ikke oprette forbindelse til medieserver'; @override String unableToLoad({required Object context}) => 'Kunne ikke indlæse ${context}. Prøv igen.'; @override String get noClientAvailable => 'Ingen klient tilgængelig'; @@ -1029,7 +1033,7 @@ class _Translations$about$da extends Translations$about$en { @override String get title => 'Om'; @override String get openSourceLicenses => 'Open source-licenser'; @override String versionLabel({required Object version}) => 'Version ${version}'; - @override String get appDescription => 'En smuk Plex- og Jellyfin-klient til Flutter'; + @override String get appDescription => 'En smuk Plex- og Jellyfin-klient bygget med Flutter'; @override String get viewLicensesDescription => 'Se licenser for tredjepartsbiblioteker'; } @@ -1065,9 +1069,9 @@ class _Translations$logs$da extends Translations$logs$en { final TranslationsDa _root; // ignore: unused_field // Translations - @override String get clearLogs => 'Ryd logs'; - @override String get copyLogs => 'Kopiér logs'; - @override String get uploadLogs => 'Upload logs'; + @override String get clearLogs => 'Ryd logfiler'; + @override String get copyLogs => 'Kopiér logfiler'; + @override String get uploadLogs => 'Upload logfiler'; } // Path: licenses @@ -1120,7 +1124,7 @@ class _Translations$explore$da extends Translations$explore$en { @override String get inTheseLibraries => 'I disse biblioteker'; @override String get checkingLibrary => 'Tjekker dit bibliotek...'; @override String get emptyTitle => 'Der er ikke noget her endnu'; - @override String emptyMessage({required Object source}) => 'Rækker fra ${source} vises her, når de har indhold.'; + @override String emptyMessage({required Object source}) => 'Indholdsrækker fra ${source} vises her, når de har indhold.'; @override String searchHint({required Object source}) => 'Søg i ${source}'; @override String searchEmpty({required Object query}) => 'Ingen resultater for "${query}"'; @override String searchPrompt({required Object source}) => 'Søg efter film og serier på ${source}.'; @@ -1137,10 +1141,10 @@ class _Translations$liveTv$da extends Translations$liveTv$en { @override String get title => 'Live TV'; @override String get guide => 'Guide'; @override String get noChannels => 'Ingen kanaler tilgængelige'; - @override String get noDvr => 'Ingen DVR konfigureret på nogen server'; + @override String get noDvr => 'Der er ikke konfigureret DVR på nogen server'; @override String get serverUnavailable => 'Live-tv-serveren er ikke tilgængelig.'; @override String get serverNotConnected => 'Live-tv-serveren er ikke forbundet.'; - @override String get noPrograms => 'Ingen programdata tilgængelig'; + @override String get noPrograms => 'Ingen programdata tilgængelige'; @override String get liveStreamFailed => 'Livestream mislykkedes'; @override String get unknownProgram => 'Ukendt program'; @override String get unknownHub => 'Ukendt'; @@ -1158,12 +1162,12 @@ class _Translations$liveTv$da extends Translations$liveTv$en { @override String get daytime => 'Dagtid'; @override String get evening => 'Aften'; @override String get lateNight => 'Sen aften'; - @override String get whatsOn => 'Hvad der kører'; + @override String get whatsOn => 'Hvad vises der?'; @override String get watchChannel => 'Se kanal'; @override String get favorites => 'Favoritter'; @override String get reorderFavorites => 'Omarranger favoritter'; @override String get favoritesLoadFailed => 'Favoritter kunne ikke indlæses. Kontrollér forbindelsen, og prøv igen.'; - @override String get favoritesUpdateFailed => 'Could not update favorites. Check your connection and try again.'; + @override String get favoritesUpdateFailed => 'Favoritterne kunne ikke opdateres. Kontrollér forbindelsen, og prøv igen.'; @override String get joinSession => 'Deltag i igangværende session'; @override String watchFromStart({required Object minutes}) => 'Se fra start (${minutes} min siden)'; @override String get watchLive => 'Se live'; @@ -1178,8 +1182,8 @@ class _Translations$liveTv$da extends Translations$liveTv$en { @override String get recordingRules => 'Optagelsesregler'; @override String get noScheduledRecordings => 'Ingen optagelser planlagt'; @override String get manageRecording => 'Administrer optagelse'; - @override String get cancelRecording => 'Annullér optagelse'; - @override String get cancelRecordingTitle => 'Annullér denne optagelse?'; + @override String get cancelRecording => 'Annuller optagelse'; + @override String get cancelRecordingTitle => 'Annuller denne optagelse?'; @override String cancelRecordingMessage({required Object title}) => '${title} bliver ikke længere optaget.'; @override String get deleteRule => 'Slet regel'; @override String get deleteRuleTitle => 'Slet optagelsesregel?'; @@ -1192,14 +1196,14 @@ class _Translations$liveTv$da extends Translations$liveTv$en { @override String get recordNotAvailable => 'Optagelse er ikke tilgængelig for dette program'; @override String get recordingCancelled => 'Optagelse annulleret'; @override String get recordingRuleDeleted => 'Optagelsesregel slettet'; - @override String get processRecordingRules => 'Genberegn regler'; + @override String get processRecordingRules => 'Evaluer regler igen'; @override String get recordingInProgress => 'Optager nu'; @override String recordingsCount({required Object count}) => '${count} planlagt'; @override String get editRule => 'Rediger regel'; @override String get editRuleAction => 'Rediger'; @override String get recordingRuleUpdated => 'Optagelsesregel opdateret'; - @override String get guideReloadRequested => 'Guide-opdatering anmodet'; - @override String get rulesProcessRequested => 'Regelevaluering anmodet'; + @override String get guideReloadRequested => 'Der er anmodet om en opdatering af guiden'; + @override String get rulesProcessRequested => 'Der er anmodet om en ny evaluering af reglerne'; @override String get recordShow => 'Optag program'; } @@ -1318,18 +1322,18 @@ class _Translations$watchTogether$da extends Translations$watchTogether$en { @override String get controlModeQuestion => 'Hvem kan styre afspilning?'; @override String get hostOnly => 'Kun vært'; @override String get anyone => 'Alle'; - @override String get hostingSession => 'Vært for session'; - @override String get inSession => 'I session'; + @override String get hostingSession => 'Er vært for sessionen'; + @override String get inSession => 'Deltager i en session'; @override String get sessionCode => 'Sessionskode'; @override String get openSessionControls => 'Åbn sessionsstyring for Se sammen'; @override String get copySessionCode => 'Kopiér sessionskode'; - @override String get hostControlsPlayback => 'Vært styrer afspilning'; - @override String get anyoneCanControl => 'Alle kan styre afspilning'; - @override String get hostControls => 'Værtskontrol'; + @override String get hostControlsPlayback => 'Værten styrer afspilningen'; + @override String get anyoneCanControl => 'Alle kan styre afspilningen'; + @override String get hostControls => 'Værten styrer'; @override String get anyoneControls => 'Alle styrer'; @override String get participants => 'Deltagere'; @override String get host => 'Vært'; - @override String get hostBadge => 'HOST'; + @override String get hostBadge => 'VÆRT'; @override String get youAreHost => 'Du er vært'; @override String get watchingWithOthers => 'Ser med andre'; @override String get endSession => 'Afslut session'; @@ -1338,12 +1342,12 @@ class _Translations$watchTogether$da extends Translations$watchTogether$en { @override String get leaveSessionQuestion => 'Forlad session?'; @override String get endSessionConfirm => 'Dette afslutter sessionen for alle deltagere.'; @override String get leaveSessionConfirm => 'Du vil blive fjernet fra sessionen.'; - @override String get endSessionConfirmOverlay => 'Dette afslutter se-sessionen for alle deltagere.'; - @override String get leaveSessionConfirmOverlay => 'Du vil blive afbrudt fra se-sessionen.'; + @override String get endSessionConfirmOverlay => 'Dette afslutter fællesafspilningen for alle deltagere.'; + @override String get leaveSessionConfirmOverlay => 'Din forbindelse til fællesafspilningen afbrydes.'; @override String get end => 'Afslut'; @override String get leave => 'Forlad'; @override String get syncing => 'Synkroniserer...'; - @override String get joinWatchSession => 'Deltag i se-session'; + @override String get joinWatchSession => 'Deltag i fællesafspilning'; @override String get enterCodeHint => 'Indtast 5-tegns kode'; @override String get pasteFromClipboard => 'Indsæt fra udklipsholder'; @override String get pleaseEnterCode => 'Indtast en sessionskode'; @@ -1352,7 +1356,7 @@ class _Translations$watchTogether$da extends Translations$watchTogether$en { @override String get failedToCreate => 'Kunne ikke oprette session'; @override String get failedToJoin => 'Kunne ikke deltage i session'; @override String get sessionCodeCopied => 'Sessionskode kopieret til udklipsholder'; - @override String get relayUnreachable => 'Relay-serveren kan ikke nås. ISP-blokering kan forhindre Watch Together.'; + @override String get relayUnreachable => 'Relayserveren kan ikke nås. Blokering hos internetudbyderen kan forhindre Se sammen.'; @override String get reconnectingToHost => 'Genopretter forbindelse til vært...'; @override String get currentPlayback => 'Nuværende afspilning'; @override String get joinCurrentPlayback => 'Deltag i nuværende afspilning'; @@ -1362,11 +1366,11 @@ class _Translations$watchTogether$da extends Translations$watchTogether$en { @override String participantLeft({required Object name}) => '${name} forlod'; @override String participantPaused({required Object name}) => '${name} satte på pause'; @override String participantResumed({required Object name}) => '${name} genoptog'; - @override String participantSeeked({required Object name}) => '${name} spoled'; + @override String participantSeeked({required Object name}) => '${name} ændrede afspilningspositionen'; @override String participantBuffering({required Object name}) => '${name} bufferer'; @override String participantNeedsUpdate({required Object name}) => '${name} bruger en ældre appversion — synkronisering er ikke tilgængelig'; @override String resumingWithout({required Object name}) => 'Fortsætter uden ${name}'; - @override String get waitingForParticipants => 'Venter på at andre indlæser...'; + @override String get waitingForParticipants => 'Venter på, at de andre bliver klar...'; @override String waitingForName({required Object name}) => 'Venter på ${name}...'; @override String get recentRooms => 'Seneste rum'; @override String get renameRoom => 'Omdøb rum'; @@ -1414,7 +1418,7 @@ class _Translations$downloads$da extends Translations$downloads$en { @override String get downloadingTooltip => 'Downloader...'; @override String downloadingFilesTooltip({required Object files}) => 'Downloader ${files}'; @override String get noDownloadsTree => 'Ingen downloads'; - @override String get pauseAll => 'Pause alle'; + @override String get pauseAll => 'Sæt alle på pause'; @override String get resumeAll => 'Genoptag alle'; @override String get deleteAll => 'Slet alle'; @override String get selectVersion => 'Vælg version'; @@ -1422,10 +1426,10 @@ class _Translations$downloads$da extends Translations$downloads$en { @override String get unwatchedOnly => 'Kun usete'; @override String nextNUnwatched({required Object count}) => 'Næste ${count} usete'; @override String get customAmount => 'Angiv antal...'; - @override String get includeSpecials => 'Inkludér specials'; + @override String get includeSpecials => 'Medtag specialafsnit'; @override String get howManyEpisodes => 'Hvor mange episoder?'; @override String get invalidEpisodeCount => 'Indtast et gyldigt antal episoder.'; - @override String get keepSynced => 'Hold synkroniseret'; + @override String get keepSynced => 'Synkroniser løbende'; @override String get downloadOnce => 'Download én gang'; @override String keepNUnwatched({required Object count}) => 'Behold ${count} usete'; @override String get editSyncRule => 'Rediger synkroniseringsregel'; @@ -1445,7 +1449,7 @@ class _Translations$downloads$da extends Translations$downloads$en { @override String syncRuleServerContext({required Object server, required Object status}) => 'Server: ${server} • ${status}'; @override String get syncRuleAvailable => 'Tilgængelig'; @override String get syncRuleOffline => 'Offline'; - @override String get syncRuleSignInRequired => 'Log ind påkrævet'; + @override String get syncRuleSignInRequired => 'Login påkrævet'; @override String get syncRuleNotAvailableForProfile => 'Ikke tilgængelig for nuværende profil'; @override String get syncRuleUnknownServer => 'Ukendt server'; @override String get syncRuleListCreated => 'Synkroniseringsregel oprettet'; @@ -1537,8 +1541,8 @@ class _Translations$performanceOverlay$da extends Translations$performanceOverla @override String get hwFormat => 'HW-format'; @override String get matrix => 'Matrix'; @override String get primaries => 'Primærfarver'; - @override String get transfer => 'Transfer'; - @override String get renderFps => 'Render FPS'; + @override String get transfer => 'Overførsel'; + @override String get renderFps => 'Gengivelses-FPS'; @override String get displayFps => 'Skærm-FPS'; @override String get avSync => 'A/V-synk.'; @override String get dropped => 'Tabte'; @@ -1554,7 +1558,7 @@ class _Translations$performanceOverlay$da extends Translations$performanceOverla @override String get speed => 'Hastighed'; @override String get player => 'Afspiller'; @override String get memory => 'Hukommelse'; - @override String get uiFps => 'UI FPS'; + @override String get uiFps => 'UI-FPS'; } // Path: externalPlayer @@ -1589,9 +1593,9 @@ class _Translations$metadataEdit$da extends Translations$metadataEdit$en { final TranslationsDa _root; // ignore: unused_field // Translations - @override String get editMetadata => 'Redigér...'; - @override String get screenTitle => 'Redigér metadata'; - @override String get basicInfo => 'Grundlæggende info'; + @override String get editMetadata => 'Rediger...'; + @override String get screenTitle => 'Rediger metadata'; + @override String get basicInfo => 'Grundlæggende oplysninger'; @override String get artwork => 'Grafik'; @override String get advancedSettings => 'Avancerede indstillinger'; @override String get title => 'Titel'; @@ -1600,7 +1604,7 @@ class _Translations$metadataEdit$da extends Translations$metadataEdit$en { @override String get releaseDate => 'Udgivelsesdato'; @override String get contentRating => 'Aldersgrænse'; @override String get studio => 'Studie'; - @override String get tagline => 'Tagline'; + @override String get tagline => 'Slogan'; @override String get summary => 'Resumé'; @override String get poster => 'Plakat'; @override String get background => 'Baggrund'; @@ -1643,16 +1647,16 @@ class _Translations$metadataEdit$da extends Translations$metadataEdit$en { @override String get show => 'Vis'; @override String get hide => 'Skjul'; @override String get episodeOrdering => 'Episoderækkefølge'; - @override String get tmdbAiring => 'The Movie Database (Sendt)'; - @override String get tvdbAiring => 'TheTVDB (Sendt)'; + @override String get tmdbAiring => 'The Movie Database (udsendt)'; + @override String get tvdbAiring => 'TheTVDB (udsendt)'; @override String get tvdbAbsolute => 'TheTVDB (Absolut)'; @override String get metadataLanguage => 'Metadatasprog'; @override String get useOriginalTitle => 'Brug originaltitel'; @override String get preferredAudioLanguage => 'Foretrukket lydsprog'; @override String get preferredSubtitleLanguage => 'Foretrukket undertekstsprog'; - @override String get subtitleMode => 'Auto-vælg underteksttilstand'; + @override String get subtitleMode => 'Automatisk valg af undertekster'; @override String get manuallySelected => 'Manuelt valgt'; - @override String get shownWithForeignAudio => 'Vist med fremmedsproget lyd'; + @override String get shownWithForeignAudio => 'Vis ved fremmedsproget lyd'; @override String get alwaysEnabled => 'Altid aktiveret'; @override String get tags => 'Tags'; @override String get addTag => 'Tilføj tag'; @@ -1714,8 +1718,8 @@ class _Translations$trakt$da extends Translations$trakt$en { @override String get disconnectConfirmBody => 'Plezy stopper med at sende hændelser til Trakt. Du kan tilslutte igen når som helst.'; @override String get scrobble => 'Realtids-scrobbling'; @override String get scrobbleDescription => 'Send afspil-, pause- og stop-begivenheder til Trakt under afspilning.'; - @override String get watchedSync => 'Synkroniser sét-status'; - @override String get watchedSyncDescription => 'Når du markerer ting som sét i Plezy, markeres de også på Trakt.'; + @override String get watchedSync => 'Synkroniser set-status'; + @override String get watchedSyncDescription => 'Når du markerer elementer som set i Plezy, markeres de også på Trakt.'; } // Path: seerr @@ -1736,8 +1740,8 @@ class _Translations$seerr$da extends Translations$seerr$en { @override String get email => 'E-mail'; @override String get noSignInMethods => 'Denne Seerr-instans tilbyder ingen loginmetode, som Plezy understøtter.'; @override String get instance => 'Instans'; - @override String get disconnectConfirm => 'Afbryd Seerr?'; - @override String get disconnectConfirmBody => 'Plezy glemmer denne Seerr-instans. Tilslut igen når som helst.'; + @override String get disconnectConfirm => 'Afbryd forbindelsen til Seerr?'; + @override String get disconnectConfirmBody => 'Plezy glemmer denne Seerr-instans. Du kan altid oprette forbindelse igen.'; @override String get request => 'Anmod'; @override String get request4k => 'Anmod i 4K'; @override String get seasons => 'Sæsoner'; @@ -1769,9 +1773,9 @@ class _Translations$services$da extends Translations$services$en { @override String get notConnected => 'Ikke forbundet'; @override String connectedAs({required Object username}) => 'Forbundet som @${username}'; @override String get scrobble => 'Registrer fremgang automatisk'; - @override String get scrobbleDescription => 'Opdater din liste når du er færdig med et afsnit eller en film.'; - @override String disconnectConfirm({required Object service}) => 'Afbryd ${service}?'; - @override String disconnectConfirmBody({required Object service}) => 'Plezy stopper med at opdatere ${service}. Tilslut igen når som helst.'; + @override String get scrobbleDescription => 'Opdater din liste, når du er færdig med et afsnit eller en film.'; + @override String disconnectConfirm({required Object service}) => 'Afbryd forbindelsen til ${service}?'; + @override String disconnectConfirmBody({required Object service}) => 'Plezy stopper med at opdatere ${service}. Du kan altid oprette forbindelse igen.'; @override String connectFailed({required Object service}) => 'Kunne ikke forbinde til ${service}. Prøv igen.'; @override late final _Translations$services$names$da names = _Translations$services$names$da._(_root); @override late final _Translations$services$deviceCode$da deviceCode = _Translations$services$deviceCode$da._(_root); @@ -1788,7 +1792,7 @@ class _Translations$addServer$da extends Translations$addServer$en { // Translations @override String get addJellyfinTitle => 'Tilføj Jellyfin-server'; @override String get serverUrls => 'Server-URL\'er'; - @override String get serverUrlsHelper => 'Flere URL\'er er tilladt, adskilt med kommaer.'; + @override String get serverUrlsHelper => 'Du kan angive flere URL\'er adskilt med komma.'; @override String get findServer => 'Find server'; @override String get searchingLocalServers => 'Søger efter lokale Jellyfin-servere...'; @override String get localServers => 'Lokale Jellyfin-servere'; @@ -1798,20 +1802,20 @@ class _Translations$addServer$da extends Translations$addServer$en { @override String get change => 'Ændr'; @override String get required => 'Påkrævet'; @override String couldNotReachServer({required Object error}) => 'Kunne ikke nå serveren: ${error}'; - @override String signInFailed({required Object error}) => 'Login mislykkedes: ${error}'; + @override String signInFailed({required Object error}) => 'Kunne ikke logge ind: ${error}'; @override String quickConnectFailed({required Object error}) => 'Quick Connect mislykkedes: ${error}'; @override String get addPlexTitle => 'Log ind med Plex'; - @override String get pinExpired => 'PIN udløb før login. Prøv igen.'; + @override String get pinExpired => 'PIN-koden udløb før login. Prøv igen.'; @override String failedToRegisterAccount({required Object error}) => 'Kunne ikke registrere kontoen: ${error}'; @override String get enterJellyfinUrlError => 'Angiv URL\'en til din Jellyfin-server'; @override String get addConnectionTitle => 'Tilføj forbindelse'; @override String addConnectionTitleScoped({required Object name}) => 'Tilføj til ${name}'; @override String get signInWithPlexCard => 'Log ind med Plex'; @override String get signInWithPlexCardSubtitle => 'Godkend denne enhed. Delte servere tilføjes.'; - @override String get signInWithPlexCardSubtitleScoped => 'Godkend en Plex-konto. Home-brugere bliver profiler.'; + @override String get signInWithPlexCardSubtitleScoped => 'Godkend en Plex-konto. Plex Home-brugere bliver til profiler.'; @override String get connectToJellyfinCard => 'Forbind til Jellyfin'; @override String get connectToJellyfinCardSubtitle => 'Indtast din server-URL, dit brugernavn og din adgangskode.'; - @override String connectToJellyfinCardSubtitleScoped({required Object name}) => 'Log ind på en Jellyfin-server. Tilknyttes ${name}.'; + @override String connectToJellyfinCardSubtitleScoped({required Object name}) => 'Log ind på en Jellyfin-server. Serveren knyttes til ${name}.'; @override String get borrowFromAnotherProfile => 'Lån fra en anden profil'; @override String get borrowFromAnotherProfileSubtitle => 'Genbrug en anden profils forbindelse. PIN-beskyttede profiler kræver en PIN.'; } @@ -1828,9 +1832,9 @@ class _Translations$hotkeys$actions$da extends Translations$hotkeys$actions$en { @override String get volumeDown => 'Lydstyrke ned'; @override String seekForward({required Object seconds}) => 'Spol frem (${seconds}s)'; @override String seekBackward({required Object seconds}) => 'Spol tilbage (${seconds}s)'; - @override String get fullscreenToggle => 'Skift fuldskærm'; - @override String get muteToggle => 'Skift lydløs'; - @override String get subtitleToggle => 'Skift undertekster'; + @override String get fullscreenToggle => 'Slå fuldskærm til/fra'; + @override String get muteToggle => 'Slå lyd til/fra'; + @override String get subtitleToggle => 'Slå undertekster til/fra'; @override String get audioTrackNext => 'Næste lydspor'; @override String get subtitleTrackNext => 'Næste undertekstspor'; @override String get chapterNext => 'Næste kapitel'; @@ -1845,7 +1849,7 @@ class _Translations$hotkeys$actions$da extends Translations$hotkeys$actions$en { @override String get zoomReset => 'Nulstil zoom'; @override String get subSeekNext => 'Søg til næste undertekst'; @override String get subSeekPrev => 'Søg til forrige undertekst'; - @override String get shaderToggle => 'Skift shadere'; + @override String get shaderToggle => 'Slå shadere til/fra'; @override String get skipMarker => 'Spring intro/rulletekster over'; @override String get screenshot => 'Tag skærmbillede'; } @@ -1953,15 +1957,15 @@ class _Translations$explore$rows$da extends Translations$explore$rows$en { @override String get watchlist => 'Ønskeliste'; @override String get recommendedMovies => 'Anbefalede film'; @override String get recommendedShows => 'Anbefalede serier'; - @override String get trendingMovies => 'Trending film'; - @override String get trendingShows => 'Trending serier'; + @override String get trendingMovies => 'Populære film lige nu'; + @override String get trendingShows => 'Populære serier lige nu'; @override String get popularMovies => 'Populære film'; @override String get popularShows => 'Populære serier'; - @override String get trendingAnime => 'Trending anime'; - @override String get suggestedAnime => 'Foreslået anime'; - @override String get airingAnime => 'Top igangværende anime'; + @override String get trendingAnime => 'Populær anime lige nu'; + @override String get suggestedAnime => 'Anbefalet anime'; + @override String get airingAnime => 'Bedste aktuelle anime'; @override String get popularAnime => 'Mest populære anime'; - @override String get trending => 'Trending'; + @override String get trending => 'Populært lige nu'; @override String get upcomingMovies => 'Kommende film'; @override String get upcomingShows => 'Kommende serier'; } @@ -1986,16 +1990,16 @@ class _Translations$companionRemote$session$da extends Translations$companionRem final TranslationsDa _root; // ignore: unused_field // Translations - @override String get startingServer => 'Starter fjernserver...'; + @override String get startingServer => 'Starter fjernbetjeningsserver...'; @override String get hostAddress => 'Værtsadresse'; @override String get connected => 'Forbundet'; - @override String get serverRunning => 'Fjernserver aktiv'; - @override String get serverStopped => 'Fjernserver stoppet'; + @override String get serverRunning => 'Fjernbetjeningsserver aktiv'; + @override String get serverStopped => 'Fjernbetjeningsserver stoppet'; @override String get serverRunningDescription => 'Mobile enheder på dit netværk kan oprette forbindelse til denne app'; @override String get serverStoppedDescription => 'Start serveren for at tillade mobilenheder at oprette forbindelse'; @override String get usePhoneToControl => 'Brug din mobilenhed til at styre denne app'; - @override String get startServer => 'Start server'; - @override String get stopServer => 'Stop server'; + @override String get startServer => 'Start serveren'; + @override String get stopServer => 'Stop serveren'; @override String get minimize => 'Minimér'; } @@ -2011,11 +2015,11 @@ class _Translations$companionRemote$pairing$da extends Translations$companionRem @override String get connecting => 'Opretter forbindelse...'; @override String get searchingForDevices => 'Søger efter enheder...'; @override String get noDevicesFound => 'Ingen enheder fundet på dit netværk'; - @override String get noDevicesHint => 'Åbn Plezy på desktop, og brug samme WiFi'; + @override String get noDevicesHint => 'Åbn Plezy på din computer, og brug det samme Wi-Fi-netværk'; @override String get availableDevices => 'Tilgængelige enheder'; @override String get manualConnection => 'Manuel forbindelse'; @override String get cryptoInitFailed => 'Kunne ikke starte sikker forbindelse. Log ind på Plex først.'; - @override String get validationHostRequired => 'Angiv venligst værtsadresse'; + @override String get validationHostRequired => 'Angiv en værtsadresse'; @override String get validationHostFormat => 'Format skal være IP:port (f.eks. 192.168.1.100:48632)'; @override String get connectionTimedOut => 'Forbindelsen fik timeout. Brug samme netværk på begge enheder.'; @override String get sessionNotFound => 'Enhed ikke fundet. Sørg for, at Plezy kører på værten.'; @@ -2030,7 +2034,7 @@ class _Translations$companionRemote$remote$da extends Translations$companionRemo final TranslationsDa _root; // ignore: unused_field // Translations - @override String get disconnectConfirm => 'Vil du afbryde fra fjernsessionen?'; + @override String get disconnectConfirm => 'Vil du afbryde forbindelsen til fjernsessionen?'; @override String get reconnecting => 'Genopretter forbindelse...'; @override String attemptOf({required Object current}) => 'Forsøg ${current} af 5'; @override String get retryNow => 'Prøv igen nu'; @@ -2068,7 +2072,7 @@ class _Translations$companionRemote$errors$da extends Translations$companionRemo // Translations @override String get noNetworkInterface => 'Ingen netværksgrænseflade fundet'; @override String get authenticationFailed => 'Godkendelse mislykkedes'; - @override String serverStartFailed({required Object error}) => 'Kunne ikke starte fjernserveren: ${error}'; + @override String serverStartFailed({required Object error}) => 'Fjernbetjeningsserveren kunne ikke startes: ${error}'; @override String commandFailed({required Object error}) => 'Kunne ikke sende fjernkommando: ${error}'; @override String get joinTimedOut => 'Tidsgrænse for deltagelse i session overskredet'; @override String get failedToConnectAnyAddress => 'Kunne ikke oprette forbindelse til nogen adresse'; @@ -2131,10 +2135,10 @@ class _Translations$services$libraryFilter$da extends Translations$services$libr @override String subtitleBlocked({required Object count}) => '${count} blokeret'; @override String subtitleAllowed({required Object count}) => '${count} tilladt'; @override String get mode => 'Filtertilstand'; - @override String get modeBlacklist => 'Sortliste'; - @override String get modeWhitelist => 'Hvidliste'; - @override String get modeHintBlacklist => 'Synkroniser alle biblioteker undtagen dem du markerer nedenfor.'; - @override String get modeHintWhitelist => 'Synkroniser kun de biblioteker du markerer nedenfor.'; + @override String get modeBlacklist => 'Blokliste'; + @override String get modeWhitelist => 'Tilladelsesliste'; + @override String get modeHintBlacklist => 'Synkroniser alle biblioteker undtagen dem, du markerer nedenfor.'; + @override String get modeHintWhitelist => 'Synkroniser kun de biblioteker, du markerer nedenfor.'; @override String get libraries => 'Biblioteker'; @override String get noLibraries => 'Ingen biblioteker tilgængelige'; } @@ -2151,18 +2155,18 @@ extension on TranslationsDa { 'auth.signInWithPlex' => 'Log ind med Plex', 'auth.showQRCode' => 'Vis QR-kode', 'auth.authenticate' => 'Godkend', - 'auth.authenticationTimeout' => 'Godkendelse fik timeout. Prøv igen.', + 'auth.authenticationTimeout' => 'Godkendelsen tog for lang tid. Prøv igen.', 'auth.scanQRToSignIn' => 'Scan denne QR-kode for at logge ind', 'auth.waitingForAuth' => 'Venter på godkendelse...\nLog ind fra din browser.', - 'auth.useBrowser' => 'Brug browser', + 'auth.useBrowser' => 'Brug browseren', 'auth.or' => 'eller', 'auth.connectToJellyfin' => 'Forbind til Jellyfin', 'auth.useQuickConnect' => 'Brug Quick Connect', 'auth.quickConnectInstructions' => 'Åbn Quick Connect i Jellyfin, og indtast denne kode.', 'auth.quickConnectWaiting' => 'Venter på godkendelse…', - 'auth.quickConnectCancel' => 'Annullér', + 'auth.quickConnectCancel' => 'Annuller', 'auth.quickConnectExpired' => 'Quick Connect er udløbet. Prøv igen.', - 'auth.localDataRecoveryRequired' => 'Plezy could not safely recover local sign-in and pending playback data. Please sign in again.', + 'auth.localDataRecoveryRequired' => 'Plezy kunne ikke gendanne lokale loginoplysninger og ventende afspilningsdata på en sikker måde. Log ind igen.', 'common.cancel' => 'Annuller', 'common.save' => 'Gem', 'common.close' => 'Luk', @@ -2196,7 +2200,7 @@ extension on TranslationsDa { 'common.ok' => 'OK', 'common.off' => 'Fra', 'common.seasonNumber' => ({required Object number}) => 'Sæson ${number}', - 'common.episodeNumberTitle' => ({required Object number, required Object title}) => 'Episode ${number} - ${title}', + 'common.episodeNumberTitle' => ({required Object number, required Object title}) => 'Episode ${number} – ${title}', 'common.chapterNumber' => ({required Object number}) => 'Kapitel ${number}', 'common.reconnect' => 'Genopret forbindelse', 'common.viewAll' => 'Vis alle', @@ -2207,12 +2211,12 @@ extension on TranslationsDa { 'common.loading' => 'Indlæser...', 'common.fullscreen' => 'Fuldskærm', 'common.exitFullscreen' => 'Forlad fuldskærm', - 'common.pressBackAgainToExit' => 'Tryk tilbage igen for at afslutte', + 'common.pressBackAgainToExit' => 'Tryk på tilbage igen for at afslutte', 'screens.licenses' => 'Licenser', 'screens.switchProfile' => 'Skift profil', 'screens.subtitleStyling' => 'Undertekststil', 'screens.mpvConfig' => 'mpv.conf', - 'screens.logs' => 'Logs', + 'screens.logs' => 'Logfiler', 'update.available' => 'Opdatering tilgængelig', 'update.versionAvailable' => ({required Object version}) => 'Version ${version} er tilgængelig', 'update.currentVersion' => ({required Object version}) => 'Nuværende: ${version}', @@ -2246,11 +2250,13 @@ extension on TranslationsDa { 'settings.libraryDensity' => 'Bibliotekstæthed', 'settings.compact' => 'Kompakt', 'settings.comfortable' => 'Komfortabel', + 'settings.tvCornerSpotlightBackdrop' => 'Fremhævet baggrundsbillede i hjørnet', + 'settings.tvCornerSpotlightBackdropDescription' => 'Vis fremhævet grafik i øverste højre hjørne i stedet for at fylde skærmen', 'settings.viewMode' => 'Visningstilstand', 'settings.gridView' => 'Gitter', 'settings.listView' => 'Liste', - 'settings.showHeroSection' => 'Vis hero-sektion', - 'settings.continueWatchingAction' => 'Handling for Fortsæt med at se', + 'settings.showHeroSection' => 'Vis udvalgt indhold', + 'settings.continueWatchingAction' => 'Handling for "Fortsæt med at se"', 'settings.continueWatchingPlay' => 'Afspil', 'settings.continueWatchingDetails' => 'Åbn detaljer', 'settings.episodeAction' => 'Handling for afsnit', @@ -2258,10 +2264,10 @@ extension on TranslationsDa { 'settings.episodeDetails' => 'Åbn detaljer', 'settings.useGlobalHubs' => 'Brug startlayout', 'settings.useGlobalHubsDescription' => 'Vis samlet startsideindhold. Brug ellers biblioteksanbefalinger.', - 'settings.showServerNameOnHubs' => 'Vis servernavn på hubbe', - 'settings.showServerNameOnHubsDescription' => 'Vis altid servernavne i hubtitler.', + 'settings.showServerNameOnHubs' => 'Vis servernavn på hubber', + 'settings.showServerNameOnHubsDescription' => 'Vis altid servernavne i titler på hubber.', 'settings.groupLibrariesByServer' => 'Grupper biblioteker efter server', - 'settings.groupLibrariesByServerDescription' => 'Gruppér sidebar-biblioteker under hver medieserver.', + 'settings.groupLibrariesByServerDescription' => 'Gruppér bibliotekerne i sidepanelet under hver medieserver.', 'settings.alwaysKeepSidebarOpen' => 'Hold altid sidepanelet åbent', 'settings.alwaysKeepSidebarOpenDescription' => 'Sidepanelet forbliver udvidet, og indholdsområdet tilpasser sig', 'settings.showUnwatchedCount' => 'Vis antal usete', @@ -2270,8 +2276,8 @@ extension on TranslationsDa { 'settings.showEpisodeNumberOnCardsDescription' => 'Vis sæson- og episodenummer på episodekort', 'settings.showSeasonPostersOnTabs' => 'Vis sæsonplakater på faner', 'settings.showSeasonPostersOnTabsDescription' => 'Vis hver sæsons plakat over dens fane', - 'settings.tvFullCardLayout' => 'Fuldflade TV-kort', - 'settings.tvFullCardLayoutDescription' => 'Brug TV-kort kun med billeder og skuespillernavne ovenpå', + 'settings.tvFullCardLayout' => 'TV-kort med billeder over hele fladen', + 'settings.tvFullCardLayoutDescription' => 'Brug TV-kort, der kun viser billeder, med skuespillernavnene ovenpå', 'settings.focusGlow' => 'Fokusglød', 'settings.focusGlowDescription' => 'Vis en blød glød omkring det fokuserede kort', 'settings.visualEffects' => 'Visuelle effekter', @@ -2282,46 +2288,46 @@ extension on TranslationsDa { 'settings.visualEffectsReducedDescription' => 'Færre animationer og illustrationer i lavere opløsning', 'settings.hideSpoilers' => 'Skjul spoilere for usete episoder', 'settings.hideSpoilersDescription' => 'Slør miniaturebilleder og beskrivelser for usete episoder', - 'settings.playerBackend' => 'Afspillerbackend', + 'settings.playerBackend' => 'Afspillermotor', 'settings.exoPlayer' => 'ExoPlayer', 'settings.mpv' => 'mpv', 'settings.hardwareDecoding' => 'Hardwaredekodning', - 'settings.hardwareDecodingDescription' => 'Brug hardwareacceleration når tilgængelig', + 'settings.hardwareDecodingDescription' => 'Brug hardwareacceleration, når den er tilgængelig', 'settings.bufferSize' => 'Bufferstørrelse', 'settings.bufferSizeMB' => ({required Object size}) => '${size}MB', - 'settings.bufferSizeAuto' => 'Auto (Anbefalet)', - 'settings.bufferSizeWarning' => ({required Object heap, required Object size}) => '${heap}MB hukommelse tilgængelig. En buffer på ${size}MB kan påvirke afspilning.', + 'settings.bufferSizeAuto' => 'Automatisk (anbefalet)', + 'settings.bufferSizeWarning' => ({required Object heap, required Object size}) => '${heap} MB hukommelse tilgængelig. En buffer på ${size} MB kan påvirke afspilningen.', 'settings.defaultQualityTitle' => 'Standardkvalitet', 'settings.musicQualityTitle' => 'Musikkvalitet', 'settings.subtitleStyling' => 'Undertekststil', 'settings.subtitleStylingDescription' => 'Tilpas underteksters udseende', - 'settings.smallSkipDuration' => 'Kort spring-varighed', - 'settings.largeSkipDuration' => 'Lang spring-varighed', + 'settings.smallSkipDuration' => 'Kort spring', + 'settings.largeSkipDuration' => 'Langt spring', 'settings.rewindOnResume' => 'Spol tilbage ved genoptagelse', 'settings.secondsUnit' => ({required Object seconds}) => '${seconds} sekunder', - 'settings.defaultSleepTimer' => 'Standard sove-timer', + 'settings.defaultSleepTimer' => 'Standard-sovetimer', 'settings.minutesUnit' => ({required Object minutes}) => '${minutes} minutter', - 'settings.rememberTrackSelections' => 'Husk sporvalg per serie/film', - 'settings.rememberTrackSelectionsDescription' => 'Husk lyd- og undertekstvalg pr. titel', + 'settings.rememberTrackSelections' => 'Husk sporvalg for hver serie/film', + 'settings.rememberTrackSelectionsDescription' => 'Husk valget af lyd og undertekster for hver titel', 'settings.showChapterMarkersOnTimeline' => 'Vis kapitelmarkører på tidslinjen', 'settings.showChapterMarkersOnTimelineDescription' => 'Opdel tidslinjen ved kapitelgrænser', - 'settings.clickVideoTogglesPlayback' => 'Klik på video skifter afspil/pause', - 'settings.clickVideoTogglesPlaybackDescription' => 'Klik på video for at afspille/pause i stedet for at vise kontroller.', + 'settings.clickVideoTogglesPlayback' => 'Klik på videoen for at skifte mellem afspilning og pause', + 'settings.clickVideoTogglesPlaybackDescription' => 'Klik på videoen for at afspille eller sætte på pause i stedet for at vise betjeningsknapperne.', 'settings.videoPlayerControls' => 'Videoafspillerkontroller', 'settings.keyboardShortcuts' => 'Tastaturgenveje', 'settings.keyboardShortcutsDescription' => 'Tilpas tastaturgenveje', 'settings.videoPlayerNavigation' => 'Videoafspillernavigation', 'settings.videoPlayerNavigationDescription' => 'Brug piletaster til at navigere videoafspillerkontroller', - 'settings.watchTogetherRelay' => 'Watch Together-relay', - 'settings.watchTogetherRelayDescription' => 'Angiv en brugerdefineret relay. Alle skal bruge samme server.', + 'settings.watchTogetherRelay' => 'Relayserver til Se sammen', + 'settings.watchTogetherRelayDescription' => 'Angiv en brugerdefineret relayserver. Alle skal bruge den samme server.', 'settings.watchTogetherRelayHint' => 'https://min-relay.eksempel.dk', - 'settings.watchTogetherRelayInvalid' => 'Enter a valid HTTP or HTTPS relay base URL.', + 'settings.watchTogetherRelayInvalid' => 'Angiv en gyldig basis-URL til en HTTP- eller HTTPS-relayserver.', 'settings.crashReporting' => 'Fejlrapportering', 'settings.crashReportingDescription' => 'Send fejlrapporter for at hjælpe med at forbedre appen', 'settings.debugLogging' => 'Fejlfindingslogning', 'settings.debugLoggingDescription' => 'Aktiver detaljeret logning til fejlfinding', - 'settings.viewLogs' => 'Vis logs', - 'settings.viewLogsDescription' => 'Vis applikationslogs', + 'settings.viewLogs' => 'Vis logfiler', + 'settings.viewLogsDescription' => 'Vis programmets logfiler', 'settings.clearCache' => 'Ryd cache', 'settings.clearCacheDescription' => 'Ryd cachelagrede billeder og data. Indhold kan indlæses langsommere.', 'settings.clearCacheSuccess' => 'Cache ryddet', @@ -2336,7 +2342,7 @@ extension on TranslationsDa { 'settings.importSettingsDescription' => 'Gendan præferencer fra en fil', 'settings.importSettingsConfirm' => 'Dette vil erstatte dine nuværende indstillinger. Fortsæt?', 'settings.importSettingsSuccess' => 'Indstillinger importeret', - 'settings.importSettingsInvalidFile' => 'Denne fil er ikke en gyldig Plezy-indstillingseksport', + 'settings.importSettingsInvalidFile' => 'Denne fil er ikke en gyldig eksport af Plezy-indstillinger', 'settings.importSettingsNoUser' => 'Log ind før import af indstillinger', 'settings.shortcutsReset' => 'Genveje nulstillet til standard', 'settings.about' => 'Om', @@ -2347,19 +2353,19 @@ extension on TranslationsDa { 'settings.autoCheckUpdatesOnStartup' => 'Søg automatisk efter opdateringer ved opstart', 'settings.autoCheckUpdatesOnStartupDescription' => 'Giv besked, når en opdatering er tilgængelig ved start', 'settings.validationErrorEnterNumber' => 'Indtast et gyldigt tal', - 'settings.validationErrorDuration' => ({required Object min, required Object max, required Object unit}) => 'Varighed skal være mellem ${min} og ${max} ${unit}', - 'settings.shortcutAlreadyAssigned' => ({required Object action}) => 'Genvej allerede tildelt til ${action}', - 'settings.shortcutUpdated' => ({required Object action}) => 'Genvej opdateret for ${action}', - 'settings.saveFailed' => 'Could not save changes. Try again.', - 'settings.autoSkip' => 'Auto-spring', - 'settings.autoSkipIntro' => 'Auto-spring intro', + 'settings.validationErrorDuration' => ({required Object min, required Object max, required Object unit}) => 'Varigheden skal være mellem ${min} og ${max} ${unit}', + 'settings.shortcutAlreadyAssigned' => ({required Object action}) => 'Genvejen er allerede tildelt ${action}', + 'settings.shortcutUpdated' => ({required Object action}) => 'Genvejen for ${action} er opdateret', + 'settings.saveFailed' => 'Ændringerne kunne ikke gemmes. Prøv igen.', + 'settings.autoSkip' => 'Automatisk spring', + 'settings.autoSkipIntro' => 'Spring intro over automatisk', 'settings.autoSkipIntroDescription' => 'Spring automatisk intromarkører over efter få sekunder', - 'settings.autoSkipCredits' => 'Auto-spring rulletekster', - 'settings.autoSkipCreditsDescription' => 'Spring automatisk rulletekster over og afspil næste episode', + 'settings.autoSkipCredits' => 'Spring rulletekster over automatisk', + 'settings.autoSkipCreditsDescription' => 'Spring automatisk rulleteksterne over, og afspil næste episode', 'settings.forceSkipMarkerFallback' => 'Tving reservemarkører', 'settings.forceSkipMarkerFallbackDescription' => 'Brug mønstre i kapiteltitler, selv når Plex har markører', - 'settings.autoSkipDelay' => 'Auto-spring forsinkelse', - 'settings.autoSkipDelayDescription' => ({required Object seconds}) => 'Vent ${seconds} sekunder før automatisk spring', + 'settings.autoSkipDelay' => 'Forsinkelse ved automatisk spring', + 'settings.autoSkipDelayDescription' => ({required Object seconds}) => 'Vent ${seconds} sekunder, før der springes automatisk', 'settings.introPattern' => 'Intromarkørmønster', 'settings.introPatternDescription' => 'Regulært udtryk til at genkende intromarkører i kapiteltitler', 'settings.creditsPattern' => 'Rulletekstmarkørmønster', @@ -2367,8 +2373,8 @@ extension on TranslationsDa { 'settings.invalidRegex' => 'Ugyldigt regulært udtryk', 'settings.regex' => 'Regulært udtryk', 'settings.downloads' => 'Downloads', - 'settings.downloadLocationDescription' => 'Vælg hvor downloadet indhold skal gemmes', - 'settings.downloadLocationDefault' => 'Standard (App-lagring)', + 'settings.downloadLocationDescription' => 'Vælg, hvor downloadet indhold skal gemmes', + 'settings.downloadLocationDefault' => 'Standard (applager)', 'settings.downloadLocationCustom' => 'Brugerdefineret placering', 'settings.selectFolder' => 'Vælg mappe', 'settings.resetToDefault' => 'Nulstil til standard', @@ -2377,43 +2383,43 @@ extension on TranslationsDa { 'settings.downloadLocationReset' => 'Downloadplacering nulstillet', 'settings.downloadLocationInvalid' => 'Valgt mappe er ikke skrivbar', 'settings.downloadLocationPickerUnavailable' => 'Mappevalg er ikke tilgængeligt på denne enhed', - 'settings.downloadOnWifiOnly' => 'Download kun på WiFi', - 'settings.downloadOnWifiOnlyDescription' => 'Forhindre downloads på mobildata', + 'settings.downloadOnWifiOnly' => 'Download kun via Wi-Fi', + 'settings.downloadOnWifiOnlyDescription' => 'Forhindr downloads via mobildata', 'settings.autoRemoveWatchedDownloads' => 'Fjern sete downloads automatisk', 'settings.autoRemoveWatchedDownloadsDescription' => 'Slet sete downloads automatisk', - 'settings.cellularDownloadBlocked' => 'Downloads er blokeret på mobilnetværk. Brug WiFi eller skift indstilling.', + 'settings.cellularDownloadBlocked' => 'Downloads er blokeret på mobilnettet. Brug Wi-Fi, eller skift indstillingen.', 'settings.maxVolume' => 'Maksimal lydstyrke', - 'settings.maxVolumeDescription' => 'Tillad lydstyrkeforstærkning over 100% for stille medier', + 'settings.maxVolumeDescription' => 'Tillad lydstyrkeforstærkning over 100 % for stille medier', 'settings.maxVolumePercent' => ({required Object percent}) => '${percent}%', 'settings.discordRichPresence' => 'Discord Rich Presence', - 'settings.discordRichPresenceDescription' => 'Vis hvad du ser på Discord', + 'settings.discordRichPresenceDescription' => 'Vis på Discord, hvad du ser', 'settings.services' => 'Tjenester', 'settings.servicesDescription' => 'Forbind Trakt, MyAnimeList, Seerr og mere', 'settings.manageLibrariesDescription' => 'Omarranger og skjul biblioteker', - 'settings.companionRemoteServer' => 'Companion Remote Server', + 'settings.companionRemoteServer' => 'Fjernbetjeningsserver', 'settings.companionRemoteServerDescription' => 'Tillad mobilenheder på dit netværk at styre denne app', - 'settings.autoPip' => 'Auto billede-i-billede', - 'settings.autoPipDescription' => 'Gå i billede-i-billede, når du forlader under afspilning', - 'settings.matchContentFrameRate' => 'Match indholdets billedhastighed', + 'settings.autoPip' => 'Automatisk billede-i-billede', + 'settings.autoPipDescription' => 'Skift automatisk til billede-i-billede, når du forlader appen under afspilning', + 'settings.matchContentFrameRate' => 'Tilpas billedhastigheden til indholdet', 'settings.matchContentFrameRateDescription' => 'Tilpas skærmens opdateringsfrekvens til videoindhold', - 'settings.matchRefreshRate' => 'Match opdateringshastighed', + 'settings.matchRefreshRate' => 'Tilpas opdateringsfrekvensen', 'settings.matchRefreshRateDescription' => 'Tilpas skærmens opdateringsfrekvens i fuld skærm', - 'settings.matchDynamicRange' => 'Match dynamisk område', + 'settings.matchDynamicRange' => 'Tilpas dynamikområdet', 'settings.matchDynamicRangeDescription' => 'Slå HDR til for HDR-indhold og derefter tilbage til SDR', 'settings.displaySwitchDelay' => 'Forsinkelse ved skærmskift', 'settings.tunneledPlayback' => 'Tunneleret afspilning', 'settings.tunneledPlaybackDescription' => 'Brug videotunneling. Slå fra, hvis HDR-afspilning viser sort video.', 'settings.audioPassthrough' => 'Lyd-passthrough', 'settings.audioPassthroughDescription' => 'Send Dolby/DTS-lyd til din receiver eller dit TV uden genkodning, så surroundlyd bevares. Slå fra, hvis du ikke har lyd.', - 'settings.audioPassthroughDescriptionAppleTv' => 'Overlad Dolby Digital Plus (inkl. Atmos) til systemet som bitstream. DTS og TrueHD afspilles stadig som flerkanals PCM. Korte lydhuller kan forekomme ved søgning.', + 'settings.audioPassthroughDescriptionAppleTv' => 'Brug Apples indbyggede Dolby-dekoder til Dolby Digital Plus, inklusive Atmos. DTS og TrueHD afspilles stadig som flerkanals-PCM. Slå fra, hvis du ikke har lyd.', 'settings.audioDownmix' => 'Downmix til stereo', - 'settings.audioDownmixDescription' => 'Mikser surroundlyd ned til to kanaler til stereohøjttalere eller hovedtelefoner', + 'settings.audioDownmixDescription' => 'Mix surroundlyd ned til to kanaler til stereohøjttalere eller hovedtelefoner', 'settings.downmixCenterBoost' => 'Forstærkning af centerkanal', 'settings.downmixCenterBoostValue' => ({required Object db}) => '${db} dB', 'settings.downmixCenterBoostLabel' => 'Forstærkning (dB)', 'settings.downmixCenterBoostShort' => 'dB', - 'settings.audioDownmixNormalize' => 'Normalisér lydstyrke ved downmix', - 'settings.audioDownmixNormalizeDescription' => 'Sænker mixet for at undgå clipping. Slå fra for at bevare den oprindelige lydstyrke (høje scener kan forvrænges).', + 'settings.audioDownmixNormalize' => 'Normaliser lydstyrken ved downmix', + 'settings.audioDownmixNormalizeDescription' => 'Sænk mixets lydstyrke for at undgå clipping. Slå fra for at bevare den oprindelige lydstyrke (høje scener kan blive forvrænget).', 'settings.atmosDiagnostics' => 'Atmos-outputtest', 'settings.atmosDiagnosticsDescription' => 'Diagnosticér Dolby Atmos-output ved at afspille testsignaler gennem systemafspilleren', 'settings.atmosTestHlsAtmos' => 'Apple Atmos-stream', @@ -2431,12 +2437,12 @@ extension on TranslationsDa { 'settings.atmosTestStatus' => 'Status', 'settings.dvConversionMode' => 'Dolby Vision-konvertering', 'settings.dvConversionModeDescription' => 'Vælg, hvordan ExoPlayer håndterer Dolby Vision Profile 7-filer.', - 'settings.dvConversionAuto' => 'Auto', - 'settings.dvConversionNative' => 'Native / deaktiveret', + 'settings.dvConversionAuto' => 'Automatisk', + 'settings.dvConversionNative' => 'Indbygget / deaktiveret', 'settings.dvConversionDv81' => 'P7 → P8.1', 'settings.dvConversionHevcStrip' => 'P7 → HEVC', - 'settings.dvConversionAutoDescription' => 'Brug enhedens kapabilitetsregistrering og normal fallbackadfærd', - 'settings.dvConversionNativeDescription' => 'Tving native DV7 og undertryk forsøg på DV-konvertering', + 'settings.dvConversionAutoDescription' => 'Brug registrering af enhedens funktioner og normal reserveadfærd', + 'settings.dvConversionNativeDescription' => 'Gennemtving indbygget DV7-understøttelse, og undlad at forsøge DV-konvertering igen', 'settings.dvConversionDv81Description' => 'Tving inline RPU-konvertering til Dolby Vision profil 8.1', 'settings.dvConversionHevcStripDescription' => 'Fjern Dolby Vision RPU/EL-lag og brug almindelig HEVC', 'settings.requireProfileSelectionOnOpen' => 'Spørg om profil ved åbning', @@ -2447,12 +2453,12 @@ extension on TranslationsDa { 'settings.startInFullscreenDescription' => 'Åbn Plezy i fuldskærmstilstand ved opstart', 'settings.exitFullscreenOnPlayerClose' => 'Forlad fuldskærm ved lukning af afspiller', 'settings.exitFullscreenOnPlayerCloseDescription' => 'Afslut automatisk fuldskærm, når videoafspilleren lukkes', - 'settings.autoHidePerformanceOverlay' => 'Skjul ydelses-overlay automatisk', - 'settings.autoHidePerformanceOverlayDescription' => 'Fade ydelses-overlayet med afspilningskontrollerne', - 'settings.showNavBarLabels' => 'Vis navigationsbarlabels', - 'settings.showNavBarLabelsDescription' => 'Vis tekstlabels under navigationsbarikoner', + 'settings.autoHidePerformanceOverlay' => 'Skjul ydelsesoverlay automatisk', + 'settings.autoHidePerformanceOverlayDescription' => 'Lad ydelsesoverlayet tone ud sammen med afspilningsknapperne', + 'settings.showNavBarLabels' => 'Vis tekst på navigationslinjen', + 'settings.showNavBarLabelsDescription' => 'Vis tekst under ikonerne på navigationslinjen', 'settings.startupSection' => 'Startsektion', - 'settings.liveTvDefaultFavorites' => 'Standard til favoritkanaler', + 'settings.liveTvDefaultFavorites' => 'Vis favoritkanaler som standard', 'settings.liveTvDefaultFavoritesDescription' => 'Vis kun favoritkanaler ved åbning af Live TV', 'settings.display' => 'Skærm', 'settings.homeScreen' => 'Startskærm', @@ -2478,9 +2484,9 @@ extension on TranslationsDa { 'hotkeys.actions.volumeDown' => 'Lydstyrke ned', 'hotkeys.actions.seekForward' => ({required Object seconds}) => 'Spol frem (${seconds}s)', 'hotkeys.actions.seekBackward' => ({required Object seconds}) => 'Spol tilbage (${seconds}s)', - 'hotkeys.actions.fullscreenToggle' => 'Skift fuldskærm', - 'hotkeys.actions.muteToggle' => 'Skift lydløs', - 'hotkeys.actions.subtitleToggle' => 'Skift undertekster', + 'hotkeys.actions.fullscreenToggle' => 'Slå fuldskærm til/fra', + 'hotkeys.actions.muteToggle' => 'Slå lyd til/fra', + 'hotkeys.actions.subtitleToggle' => 'Slå undertekster til/fra', 'hotkeys.actions.audioTrackNext' => 'Næste lydspor', 'hotkeys.actions.subtitleTrackNext' => 'Næste undertekstspor', 'hotkeys.actions.chapterNext' => 'Næste kapitel', @@ -2495,7 +2501,7 @@ extension on TranslationsDa { 'hotkeys.actions.zoomReset' => 'Nulstil zoom', 'hotkeys.actions.subSeekNext' => 'Søg til næste undertekst', 'hotkeys.actions.subSeekPrev' => 'Søg til forrige undertekst', - 'hotkeys.actions.shaderToggle' => 'Skift shadere', + 'hotkeys.actions.shaderToggle' => 'Slå shadere til/fra', 'hotkeys.actions.skipMarker' => 'Spring intro/rulletekster over', 'hotkeys.actions.screenshot' => 'Tag skærmbillede', 'fileInfo.title' => 'Filinfo', @@ -2522,20 +2528,20 @@ extension on TranslationsDa { 'fileInfo.container' => 'Container', 'fileInfo.duration' => 'Varighed', 'fileInfo.optimizedForStreaming' => 'Optimeret til streaming', - 'fileInfo.has64bitOffsets' => '64-bit offsets', + 'fileInfo.has64bitOffsets' => '64-bit-forskydninger', 'mediaMenu.markAsWatched' => 'Markér som set', 'mediaMenu.markAsUnwatched' => 'Markér som uset', 'mediaMenu.removeFromContinueWatching' => 'Fjern fra Fortsæt med at se', 'mediaMenu.viewDetails' => 'Vis detaljer', 'mediaMenu.goToSeries' => 'Gå til serie', 'mediaMenu.shufflePlay' => 'Afspil tilfældigt', - 'mediaMenu.shuffleNotAvailableOffline' => 'Bland afspilning er ikke tilgængelig offline', + 'mediaMenu.shuffleNotAvailableOffline' => 'Tilfældig afspilning er ikke tilgængelig offline', 'mediaMenu.fileInfo' => 'Filinfo', 'mediaMenu.deleteFromServer' => 'Slet fra server', 'mediaMenu.confirmDelete' => 'Slet dette medie og dets filer fra din server?', 'mediaMenu.deleteMultipleWarning' => 'Dette inkluderer alle episoder og deres filer.', - 'mediaMenu.mediaDeletedSuccessfully' => 'Medieelement slettet', - 'mediaMenu.mediaFailedToDelete' => 'Kunne ikke slette medieelement', + 'mediaMenu.mediaDeletedSuccessfully' => 'Mediet blev slettet', + 'mediaMenu.mediaFailedToDelete' => 'Mediet kunne ikke slettes', 'mediaMenu.rate' => 'Bedøm', 'mediaMenu.playFromBeginning' => 'Afspil fra begyndelsen', 'mediaMenu.playVersion' => 'Afspil version...', @@ -2545,7 +2551,7 @@ extension on TranslationsDa { 'rateSheet.favorited' => 'Føjet til favoritter', 'rateSheet.saved' => 'Gemt', 'rateSheet.notAvailable' => 'Intet match fundet', - 'rateSheet.noConnectedServices' => 'Forbind en tjeneste i Indstillinger for at bedømme der.', + 'rateSheet.noConnectedServices' => 'Forbind en tjeneste under Indstillinger for at bedømme via den.', 'accessibility.mediaCardMovie' => ({required Object title}) => '${title}, film', 'accessibility.mediaCardShow' => ({required Object title}) => '${title}, TV-serie', 'accessibility.mediaCardEpisode' => ({required Object title, required Object episodeInfo}) => '${title}, ${episodeInfo}', @@ -2587,26 +2593,28 @@ extension on TranslationsDa { 'videoControls.lockRotation' => 'Lås rotation', 'videoControls.unlockRotation' => 'Lås rotation op', 'videoControls.timerActive' => 'Timer aktiv', - 'videoControls.playbackWillPauseIn' => ({required Object duration}) => 'Afspilning pauses om ${duration}', + 'videoControls.playbackWillPauseIn' => ({required Object duration}) => 'Afspilningen sættes på pause om ${duration}', 'videoControls.sleepTimerEndOfVideo' => 'Slutningen af aktuel video', 'videoControls.sleepTimerStopAtHeader' => 'Stop ved', - 'videoControls.sleepTimerDurationHeader' => 'Timer', - 'videoControls.playbackWillPauseAtEnd' => 'Afspilning pauses i slutningen af denne video', + 'videoControls.sleepTimerDurationHeader' => 'Varighed', + 'videoControls.playbackWillPauseAtEnd' => 'Afspilningen sættes på pause ved slutningen af denne video', 'videoControls.stillWatching' => 'Ser du stadig?', - 'videoControls.pausingIn' => ({required Object seconds}) => 'Pauser om ${seconds}s', + 'videoControls.pausingIn' => ({required Object seconds}) => 'Sætter på pause om ${seconds} s', 'videoControls.continueWatching' => 'Fortsæt', - 'videoControls.autoPlayNext' => 'Auto-afspil næste', + 'videoControls.autoPlayNext' => 'Afspil næste automatisk', 'videoControls.playNext' => 'Afspil næste', 'videoControls.playButton' => 'Afspil', 'videoControls.pauseButton' => 'Pause', + 'videoControls.showPlaybackControls' => 'Vis afspilningsknapper', + 'videoControls.hidePlaybackControls' => 'Skjul afspilningsknapper', 'videoControls.seekBackwardButton' => ({required Object seconds}) => 'Spol ${seconds} sekunder tilbage', 'videoControls.seekForwardButton' => ({required Object seconds}) => 'Spol ${seconds} sekunder frem', 'videoControls.previousButton' => 'Forrige episode', 'videoControls.nextButton' => 'Næste episode', 'videoControls.previousChapterButton' => 'Forrige kapitel', 'videoControls.nextChapterButton' => 'Næste kapitel', - 'videoControls.muteButton' => 'Lydløs', - 'videoControls.unmuteButton' => 'Slå lyd til', + 'videoControls.muteButton' => 'Slå lyden fra', + 'videoControls.unmuteButton' => 'Slå lyden til', 'videoControls.settingsButton' => 'Afspilningsindstillinger', 'videoControls.tracksButton' => 'Lyd og undertekster', 'videoControls.chaptersButton' => 'Kapitler', @@ -2626,7 +2634,7 @@ extension on TranslationsDa { 'videoControls.rotationLockButton' => 'Rotationslås', 'videoControls.lockScreen' => 'Lås skærm', 'videoControls.screenLockButton' => 'Skærmlås', - 'videoControls.longPressToUnlock' => 'Langt tryk for at låse op', + 'videoControls.longPressToUnlock' => 'Hold nede for at låse op', 'videoControls.timelineSlider' => 'Videotidslinje', 'videoControls.volumeSlider' => 'Lydstyrkeniveau', 'videoControls.endsAt' => ({required Object time}) => 'Slutter kl. ${time}', @@ -2655,12 +2663,12 @@ extension on TranslationsDa { 'videoControls.subtitleDownloadedNotApplied' => 'Underteksten blev downloadet, men kunne ikke vælges', 'videoControls.subtitleDownloadFailed' => 'Kunne ikke downloade undertekst', 'videoControls.searchLanguages' => 'Søg sprog...', + _ => null, + } ?? switch (path) { 'messages.markedAsWatched' => 'Markeret som set', 'messages.markedAsUnwatched' => 'Markeret som uset', 'messages.markedAsWatchedOffline' => 'Markeret som set (synkroniseres online)', 'messages.markedAsUnwatchedOffline' => 'Markeret som uset (synkroniseres online)', - _ => null, - } ?? switch (path) { 'messages.autoRemovedWatchedDownload' => ({required Object title}) => 'Automatisk fjernet: ${title}', 'messages.autoRemovedWatchedDownloads' => ({required num n}) => (_root.$meta.cardinalResolver ?? PluralResolvers.cardinal('da'))(n, one: 'Fjernede automatisk ${n} set download', other: 'Fjernede automatisk ${n} sete downloads', ), 'messages.removedFromContinueWatching' => 'Fjernet fra Fortsæt med at se', @@ -2668,21 +2676,21 @@ extension on TranslationsDa { 'messages.streamInterrupted' => 'Streamen blev afbrudt. Tryk på afspil, eller spol for at prøve igen.', 'messages.liveStreamInterrupted' => 'Livestreamen blev afbrudt. Tryk på afspil for at prøve igen.', 'messages.fileInfoNotAvailable' => 'Filinfo ikke tilgængelig', - 'messages.playbackAuthenticationRequired' => 'Sign in to the media server again to play this item.', - 'messages.playbackServerUnavailable' => 'The media server is unavailable. Try again later.', - 'messages.playbackDataInvalid' => 'The server returned invalid playback information.', - 'messages.playbackCancelled' => 'Playback was cancelled.', - 'messages.playbackFailed' => 'Playback could not be started.', + 'messages.playbackAuthenticationRequired' => 'Log ind på medieserveren igen for at afspille dette element.', + 'messages.playbackServerUnavailable' => 'Medieserveren er ikke tilgængelig. Prøv igen senere.', + 'messages.playbackDataInvalid' => 'Serveren returnerede ugyldige afspilningsoplysninger.', + 'messages.playbackCancelled' => 'Afspilningen blev annulleret.', + 'messages.playbackFailed' => 'Afspilningen kunne ikke startes.', 'messages.errorLoadingFileInfo' => ({required Object error}) => 'Fejl ved indlæsning af filinfo: ${error}', 'messages.errorLoadingSeries' => 'Fejl ved indlæsning af serie', 'messages.musicNotSupported' => 'Musikafspilning understøttes endnu ikke', 'messages.noDescriptionAvailable' => 'Ingen beskrivelse tilgængelig', 'messages.noProfilesAvailable' => 'Ingen profiler tilgængelige', 'messages.contactAdminForProfiles' => 'Kontakt din serveradministrator for at tilføje profiler', - 'messages.unableToDetermineLibrarySection' => 'Kan ikke bestemme biblioteksafdeling for dette element', - 'messages.logsCleared' => 'Logs ryddet', - 'messages.logsCopied' => 'Logs kopieret til udklipsholder', - 'messages.noLogsAvailable' => 'Ingen logs tilgængelige', + 'messages.unableToDetermineLibrarySection' => 'Kunne ikke finde bibliotekssektionen for dette element', + 'messages.logsCleared' => 'Logfilerne blev ryddet', + 'messages.logsCopied' => 'Logfilerne blev kopieret til udklipsholderen', + 'messages.noLogsAvailable' => 'Ingen logfiler tilgængelige', 'messages.libraryScanning' => ({required Object title}) => 'Scanner "${title}"...', 'messages.libraryScanStarted' => ({required Object title}) => 'Biblioteksscanning startet for "${title}"', 'messages.libraryScanFailed' => ({required Object error}) => 'Kunne ikke scanne bibliotek: ${error}', @@ -2698,13 +2706,13 @@ extension on TranslationsDa { 'messages.noResultsFound' => 'Ingen resultater fundet', 'messages.sleepTimerSet' => ({required Object label}) => 'Sove-timer indstillet til ${label}', 'messages.noItemsAvailable' => 'Ingen elementer tilgængelige', - 'messages.failedToCreatePlayQueueNoItems' => 'Kunne ikke oprette afspilningskø — ingen elementer', + 'messages.failedToCreatePlayQueueNoItems' => 'Kunne ikke oprette en afspilningskø — ingen elementer', 'messages.failedPlayback' => ({required Object action, required Object error}) => 'Kunne ikke ${action}: ${error}', 'messages.switchingToCompatiblePlayer' => 'Skifter til kompatibel afspiller...', 'messages.serverLimitTitle' => 'Afspilning mislykkedes', - 'messages.serverLimitBody' => 'Serverfejl (HTTP 500). En båndbredde-/transkodningsgrænse afviste nok sessionen. Bed ejeren om at justere den.', - 'messages.logsUploaded' => 'Logs uploadet', - 'messages.logsUploadFailed' => 'Kunne ikke uploade logs', + 'messages.serverLimitBody' => 'Serverfejl (HTTP 500). En båndbredde- eller transkodningsgrænse afviste sandsynligvis sessionen. Bed ejeren om at justere den.', + 'messages.logsUploaded' => 'Logfilerne blev uploadet', + 'messages.logsUploadFailed' => 'Logfilerne kunne ikke uploades', 'messages.logId' => 'Log-ID', 'subtitlingStyling.text' => 'Tekst', 'subtitlingStyling.border' => 'Kant', @@ -2713,7 +2721,7 @@ extension on TranslationsDa { 'subtitlingStyling.textColor' => 'Tekstfarve', 'subtitlingStyling.borderSize' => 'Kantstørrelse', 'subtitlingStyling.borderColor' => 'Kantfarve', - 'subtitlingStyling.backgroundOpacity' => 'Baggrundsgennemsigtighed', + 'subtitlingStyling.backgroundOpacity' => 'Baggrundsopacitet', 'subtitlingStyling.backgroundColor' => 'Baggrundsfarve', 'subtitlingStyling.position' => 'Position', 'subtitlingStyling.assOverride' => 'ASS-tilsidesættelse', @@ -2751,21 +2759,21 @@ extension on TranslationsDa { 'profiles.delete' => 'Slet', 'profiles.signOut' => 'Log ud', 'profiles.signOutPlexTitle' => 'Log ud af Plex?', - 'profiles.signOutPlexMessage' => ({required Object displayName}) => 'Fjern ${displayName} og alle Plex Home-brugere? Log ind igen når som helst.', + 'profiles.signOutPlexMessage' => ({required Object displayName}) => 'Fjern ${displayName} og alle Plex Home-brugere? Du kan altid logge ind igen.', 'profiles.signedOutPlex' => 'Logget ud af Plex.', - 'profiles.signOutFailed' => 'Log ud mislykkedes.', + 'profiles.signOutFailed' => 'Kunne ikke logge ud.', 'profiles.sectionTitle' => 'Profiler', - 'profiles.summarySingle' => 'Tilføj profiler for at blande administrerede brugere og lokale identiteter', + 'profiles.summarySingle' => 'Tilføj profiler for at kombinere administrerede brugere med lokale identiteter', 'profiles.summaryMultipleWithActive' => ({required Object count, required Object activeName}) => '${count} profiler · aktiv: ${activeName}', 'profiles.summaryMultiple' => ({required Object count}) => '${count} profiler', 'profiles.removeConnectionTitle' => 'Fjern forbindelse?', - 'profiles.removeConnectionMessage' => ({required Object displayName, required Object connectionLabel}) => 'Fjern ${displayName}s adgang til ${connectionLabel}. Andre profiler beholder den.', + 'profiles.removeConnectionMessage' => ({required Object connectionLabel, required Object displayName}) => 'Fjern adgangen til ${connectionLabel} for ${displayName}. De andre profiler beholder den.', 'profiles.deleteProfileTitle' => 'Slet profil?', 'profiles.deleteProfileMessage' => ({required Object displayName}) => 'Fjern ${displayName} og forbindelserne. Servere forbliver tilgængelige.', 'profiles.profileNameLabel' => 'Profilnavn', 'profiles.pinProtectionLabel' => 'PIN-beskyttelse', 'profiles.pinManagedByPlex' => 'PIN administreres af Plex. Rediger på plex.tv.', - 'profiles.noPinSetEditOnPlex' => 'Ingen PIN-kode angivet. For at kræve en, redigér Home-brugeren på plex.tv.', + 'profiles.noPinSetEditOnPlex' => 'Ingen PIN-kode angivet. Hvis der skal kræves en, skal du redigere Plex Home-brugeren på plex.tv.', 'profiles.setPin' => 'Angiv PIN', 'profiles.setPinTitle' => 'Angiv PIN', 'profiles.confirmPinTitle' => 'Bekræft PIN', @@ -2787,7 +2795,7 @@ extension on TranslationsDa { 'profiles.borrowExplain' => 'Lån en anden profils forbindelse. PIN-beskyttede profiler kræver en PIN.', 'profiles.borrowEmpty' => 'Intet at låne endnu.', 'profiles.borrowEmptySubtitle' => 'Forbind Plex eller Jellyfin til en anden profil først.', - 'profiles.borrowLoadFailed' => 'Available connections could not be loaded. Try again.', + 'profiles.borrowLoadFailed' => 'De tilgængelige forbindelser kunne ikke indlæses. Prøv igen.', 'profiles.borrowFromProfile' => ({required Object displayName}) => 'Fra ${displayName}', 'profiles.borrowConnectionBorrowed' => 'Forbindelse lånt.', 'profiles.borrowFailed' => 'Kunne ikke låne forbindelse.', @@ -2797,17 +2805,17 @@ extension on TranslationsDa { 'profiles.failedToLoadHomeUsers' => 'Kunne ikke indlæse dine Plex Home-brugere. Tjek din forbindelse, og prøv igen.', 'profiles.failedToVerifyPin' => 'Kunne ikke bekræfte PIN.', 'profiles.newProfile' => 'Ny profil', - 'profiles.profileNameHint' => 'fx. Gæster, Børn, Familiens stue', + 'profiles.profileNameHint' => 'f.eks. Gæster, Børn, Familiens stue', 'profiles.pinProtectionOptional' => 'PIN-beskyttelse (valgfri)', - 'profiles.pinExplain' => '4-cifret PIN kræves for at skifte profiler.', + 'profiles.pinExplain' => 'Der kræves en 4-cifret PIN-kode for at skifte profil.', 'profiles.continueButton' => 'Fortsæt', - 'profiles.pinsDontMatch' => 'PIN-koder matcher ikke', + 'profiles.pinsDontMatch' => 'PIN-koderne matcher ikke', 'connections.sectionTitle' => 'Forbindelser', 'connections.addConnection' => 'Tilføj forbindelse', 'connections.addConnectionSubtitleNoProfile' => 'Log ind med Plex eller forbind til en Jellyfin-server', 'connections.addConnectionSubtitleScoped' => ({required Object displayName}) => 'Føj til ${displayName}: Plex, Jellyfin eller en anden profilforbindelse', 'connections.sessionExpiredOne' => ({required Object name}) => 'Sessionen er udløbet for ${name}', - 'connections.sessionExpiredMany' => ({required Object count}) => 'Sessionen er udløbet for ${count} servere', + 'connections.sessionExpiredMany' => ({required Object count}) => 'Sessionerne er udløbet for ${count} servere', 'connections.signInAgain' => 'Log ind igen', 'connections.editJellyfinTitle' => 'Rediger Jellyfin-forbindelse', 'connections.editJellyfinIntro' => ({required Object serverName}) => 'Tilføj eller fjern URL\'er for ${serverName}. Plezy bruger den tilgængelige URL med lavest latenstid.', @@ -2816,8 +2824,8 @@ extension on TranslationsDa { 'discover.addMediaToLibraries' => 'Tilføj medier til dine biblioteker', 'discover.continueWatching' => 'Fortsæt med at se', 'discover.continueWatchingIn' => ({required Object library}) => 'Fortsæt med at se i ${library}', - 'discover.nextUp' => 'Næste op', - 'discover.nextUpIn' => ({required Object library}) => 'Næste op i ${library}', + 'discover.nextUp' => 'Næste afsnit', + 'discover.nextUpIn' => ({required Object library}) => 'Næste afsnit i ${library}', 'discover.recentlyAdded' => 'Nyligt tilføjet', 'discover.recentlyAddedIn' => ({required Object library}) => 'Nyligt tilføjet i ${library}', 'discover.latestAlbumsIn' => ({required Object library}) => 'Nyeste album i ${library}', @@ -2826,7 +2834,7 @@ extension on TranslationsDa { 'discover.playEpisode' => ({required Object season, required Object episode}) => 'S${season}E${episode}', 'discover.overview' => 'Oversigt', 'discover.cast' => 'Rollebesætning', - 'discover.extras' => 'Trailere og ekstra', + 'discover.extras' => 'Trailere og ekstramateriale', 'discover.studio' => 'Studie', 'discover.rating' => 'Bedømmelse', 'discover.movie' => 'Film', @@ -2834,7 +2842,7 @@ extension on TranslationsDa { 'discover.minutesLeft' => ({required Object minutes}) => '${minutes} min tilbage', 'discover.moreLikeThis' => 'Mere som dette', 'errors.searchFailed' => ({required Object error}) => 'Søgning mislykkedes: ${error}', - 'errors.connectionTimeout' => ({required Object context}) => 'Forbindelsestimeout ved indlæsning af ${context}', + 'errors.connectionTimeout' => ({required Object context}) => 'Forbindelsen fik timeout under indlæsning af ${context}', 'errors.connectionFailed' => 'Kan ikke oprette forbindelse til medieserver', 'errors.unableToLoad' => ({required Object context}) => 'Kunne ikke indlæse ${context}. Prøv igen.', 'errors.noClientAvailable' => 'Ingen klient tilgængelig', @@ -2929,7 +2937,7 @@ extension on TranslationsDa { 'about.title' => 'Om', 'about.openSourceLicenses' => 'Open source-licenser', 'about.versionLabel' => ({required Object version}) => 'Version ${version}', - 'about.appDescription' => 'En smuk Plex- og Jellyfin-klient til Flutter', + 'about.appDescription' => 'En smuk Plex- og Jellyfin-klient bygget med Flutter', 'about.viewLicensesDescription' => 'Se licenser for tredjepartsbiblioteker', 'serverSelection.noServersFoundForAccount' => ({required Object username, required Object email}) => 'Ingen servere fundet for ${username} (${email})', 'serverSelection.failedToLoadServers' => ({required Object error}) => 'Kunne ikke indlæse servere: ${error}', @@ -2938,9 +2946,9 @@ extension on TranslationsDa { 'hubDetail.dateAdded' => 'Tilføjelsesdato', 'hubDetail.rating' => 'Bedømmelse', 'hubDetail.noItemsFound' => 'Ingen elementer fundet', - 'logs.clearLogs' => 'Ryd logs', - 'logs.copyLogs' => 'Kopiér logs', - 'logs.uploadLogs' => 'Upload logs', + 'logs.clearLogs' => 'Ryd logfiler', + 'logs.copyLogs' => 'Kopiér logfiler', + 'logs.uploadLogs' => 'Upload logfiler', 'licenses.relatedPackages' => 'Relaterede pakker', 'licenses.license' => 'Licens', 'licenses.licenseNumber' => ({required Object number}) => 'Licens ${number}', @@ -2954,15 +2962,15 @@ extension on TranslationsDa { 'explore.rows.watchlist' => 'Ønskeliste', 'explore.rows.recommendedMovies' => 'Anbefalede film', 'explore.rows.recommendedShows' => 'Anbefalede serier', - 'explore.rows.trendingMovies' => 'Trending film', - 'explore.rows.trendingShows' => 'Trending serier', + 'explore.rows.trendingMovies' => 'Populære film lige nu', + 'explore.rows.trendingShows' => 'Populære serier lige nu', 'explore.rows.popularMovies' => 'Populære film', 'explore.rows.popularShows' => 'Populære serier', - 'explore.rows.trendingAnime' => 'Trending anime', - 'explore.rows.suggestedAnime' => 'Foreslået anime', - 'explore.rows.airingAnime' => 'Top igangværende anime', + 'explore.rows.trendingAnime' => 'Populær anime lige nu', + 'explore.rows.suggestedAnime' => 'Anbefalet anime', + 'explore.rows.airingAnime' => 'Bedste aktuelle anime', 'explore.rows.popularAnime' => 'Mest populære anime', - 'explore.rows.trending' => 'Trending', + 'explore.rows.trending' => 'Populært lige nu', 'explore.rows.upcomingMovies' => 'Kommende film', 'explore.rows.upcomingShows' => 'Kommende serier', 'explore.status.airing' => 'Sendes', @@ -2979,7 +2987,7 @@ extension on TranslationsDa { 'explore.inTheseLibraries' => 'I disse biblioteker', 'explore.checkingLibrary' => 'Tjekker dit bibliotek...', 'explore.emptyTitle' => 'Der er ikke noget her endnu', - 'explore.emptyMessage' => ({required Object source}) => 'Rækker fra ${source} vises her, når de har indhold.', + 'explore.emptyMessage' => ({required Object source}) => 'Indholdsrækker fra ${source} vises her, når de har indhold.', 'explore.searchHint' => ({required Object source}) => 'Søg i ${source}', 'explore.searchEmpty' => ({required Object query}) => 'Ingen resultater for "${query}"', 'explore.searchPrompt' => ({required Object source}) => 'Søg efter film og serier på ${source}.', @@ -2987,10 +2995,10 @@ extension on TranslationsDa { 'liveTv.title' => 'Live TV', 'liveTv.guide' => 'Guide', 'liveTv.noChannels' => 'Ingen kanaler tilgængelige', - 'liveTv.noDvr' => 'Ingen DVR konfigureret på nogen server', + 'liveTv.noDvr' => 'Der er ikke konfigureret DVR på nogen server', 'liveTv.serverUnavailable' => 'Live-tv-serveren er ikke tilgængelig.', 'liveTv.serverNotConnected' => 'Live-tv-serveren er ikke forbundet.', - 'liveTv.noPrograms' => 'Ingen programdata tilgængelig', + 'liveTv.noPrograms' => 'Ingen programdata tilgængelige', 'liveTv.liveStreamFailed' => 'Livestream mislykkedes', 'liveTv.unknownProgram' => 'Ukendt program', 'liveTv.unknownHub' => 'Ukendt', @@ -3008,12 +3016,12 @@ extension on TranslationsDa { 'liveTv.daytime' => 'Dagtid', 'liveTv.evening' => 'Aften', 'liveTv.lateNight' => 'Sen aften', - 'liveTv.whatsOn' => 'Hvad der kører', + 'liveTv.whatsOn' => 'Hvad vises der?', 'liveTv.watchChannel' => 'Se kanal', 'liveTv.favorites' => 'Favoritter', 'liveTv.reorderFavorites' => 'Omarranger favoritter', 'liveTv.favoritesLoadFailed' => 'Favoritter kunne ikke indlæses. Kontrollér forbindelsen, og prøv igen.', - 'liveTv.favoritesUpdateFailed' => 'Could not update favorites. Check your connection and try again.', + 'liveTv.favoritesUpdateFailed' => 'Favoritterne kunne ikke opdateres. Kontrollér forbindelsen, og prøv igen.', 'liveTv.joinSession' => 'Deltag i igangværende session', 'liveTv.watchFromStart' => ({required Object minutes}) => 'Se fra start (${minutes} min siden)', 'liveTv.watchLive' => 'Se live', @@ -3028,8 +3036,8 @@ extension on TranslationsDa { 'liveTv.recordingRules' => 'Optagelsesregler', 'liveTv.noScheduledRecordings' => 'Ingen optagelser planlagt', 'liveTv.manageRecording' => 'Administrer optagelse', - 'liveTv.cancelRecording' => 'Annullér optagelse', - 'liveTv.cancelRecordingTitle' => 'Annullér denne optagelse?', + 'liveTv.cancelRecording' => 'Annuller optagelse', + 'liveTv.cancelRecordingTitle' => 'Annuller denne optagelse?', 'liveTv.cancelRecordingMessage' => ({required Object title}) => '${title} bliver ikke længere optaget.', 'liveTv.deleteRule' => 'Slet regel', 'liveTv.deleteRuleTitle' => 'Slet optagelsesregel?', @@ -3042,14 +3050,14 @@ extension on TranslationsDa { 'liveTv.recordNotAvailable' => 'Optagelse er ikke tilgængelig for dette program', 'liveTv.recordingCancelled' => 'Optagelse annulleret', 'liveTv.recordingRuleDeleted' => 'Optagelsesregel slettet', - 'liveTv.processRecordingRules' => 'Genberegn regler', + 'liveTv.processRecordingRules' => 'Evaluer regler igen', 'liveTv.recordingInProgress' => 'Optager nu', 'liveTv.recordingsCount' => ({required Object count}) => '${count} planlagt', 'liveTv.editRule' => 'Rediger regel', 'liveTv.editRuleAction' => 'Rediger', 'liveTv.recordingRuleUpdated' => 'Optagelsesregel opdateret', - 'liveTv.guideReloadRequested' => 'Guide-opdatering anmodet', - 'liveTv.rulesProcessRequested' => 'Regelevaluering anmodet', + 'liveTv.guideReloadRequested' => 'Der er anmodet om en opdatering af guiden', + 'liveTv.rulesProcessRequested' => 'Der er anmodet om en ny evaluering af reglerne', 'liveTv.recordShow' => 'Optag program', 'collections.title' => 'Samlinger', 'collections.collection' => 'Samling', @@ -3129,18 +3137,18 @@ extension on TranslationsDa { 'watchTogether.controlModeQuestion' => 'Hvem kan styre afspilning?', 'watchTogether.hostOnly' => 'Kun vært', 'watchTogether.anyone' => 'Alle', - 'watchTogether.hostingSession' => 'Vært for session', - 'watchTogether.inSession' => 'I session', + 'watchTogether.hostingSession' => 'Er vært for sessionen', + 'watchTogether.inSession' => 'Deltager i en session', 'watchTogether.sessionCode' => 'Sessionskode', 'watchTogether.openSessionControls' => 'Åbn sessionsstyring for Se sammen', 'watchTogether.copySessionCode' => 'Kopiér sessionskode', - 'watchTogether.hostControlsPlayback' => 'Vært styrer afspilning', - 'watchTogether.anyoneCanControl' => 'Alle kan styre afspilning', - 'watchTogether.hostControls' => 'Værtskontrol', + 'watchTogether.hostControlsPlayback' => 'Værten styrer afspilningen', + 'watchTogether.anyoneCanControl' => 'Alle kan styre afspilningen', + 'watchTogether.hostControls' => 'Værten styrer', 'watchTogether.anyoneControls' => 'Alle styrer', 'watchTogether.participants' => 'Deltagere', 'watchTogether.host' => 'Vært', - 'watchTogether.hostBadge' => 'HOST', + 'watchTogether.hostBadge' => 'VÆRT', 'watchTogether.youAreHost' => 'Du er vært', 'watchTogether.watchingWithOthers' => 'Ser med andre', 'watchTogether.endSession' => 'Afslut session', @@ -3149,12 +3157,12 @@ extension on TranslationsDa { 'watchTogether.leaveSessionQuestion' => 'Forlad session?', 'watchTogether.endSessionConfirm' => 'Dette afslutter sessionen for alle deltagere.', 'watchTogether.leaveSessionConfirm' => 'Du vil blive fjernet fra sessionen.', - 'watchTogether.endSessionConfirmOverlay' => 'Dette afslutter se-sessionen for alle deltagere.', - 'watchTogether.leaveSessionConfirmOverlay' => 'Du vil blive afbrudt fra se-sessionen.', + 'watchTogether.endSessionConfirmOverlay' => 'Dette afslutter fællesafspilningen for alle deltagere.', + 'watchTogether.leaveSessionConfirmOverlay' => 'Din forbindelse til fællesafspilningen afbrydes.', 'watchTogether.end' => 'Afslut', 'watchTogether.leave' => 'Forlad', 'watchTogether.syncing' => 'Synkroniserer...', - 'watchTogether.joinWatchSession' => 'Deltag i se-session', + 'watchTogether.joinWatchSession' => 'Deltag i fællesafspilning', 'watchTogether.enterCodeHint' => 'Indtast 5-tegns kode', 'watchTogether.pasteFromClipboard' => 'Indsæt fra udklipsholder', 'watchTogether.pleaseEnterCode' => 'Indtast en sessionskode', @@ -3163,23 +3171,23 @@ extension on TranslationsDa { 'watchTogether.failedToCreate' => 'Kunne ikke oprette session', 'watchTogether.failedToJoin' => 'Kunne ikke deltage i session', 'watchTogether.sessionCodeCopied' => 'Sessionskode kopieret til udklipsholder', - 'watchTogether.relayUnreachable' => 'Relay-serveren kan ikke nås. ISP-blokering kan forhindre Watch Together.', + 'watchTogether.relayUnreachable' => 'Relayserveren kan ikke nås. Blokering hos internetudbyderen kan forhindre Se sammen.', 'watchTogether.reconnectingToHost' => 'Genopretter forbindelse til vært...', 'watchTogether.currentPlayback' => 'Nuværende afspilning', 'watchTogether.joinCurrentPlayback' => 'Deltag i nuværende afspilning', 'watchTogether.joinCurrentPlaybackDescription' => 'Hop tilbage til det værten ser nu', 'watchTogether.failedToOpenCurrentPlayback' => 'Kunne ikke åbne nuværende afspilning', + _ => null, + } ?? switch (path) { 'watchTogether.participantJoined' => ({required Object name}) => '${name} deltog', 'watchTogether.participantLeft' => ({required Object name}) => '${name} forlod', 'watchTogether.participantPaused' => ({required Object name}) => '${name} satte på pause', 'watchTogether.participantResumed' => ({required Object name}) => '${name} genoptog', - _ => null, - } ?? switch (path) { - 'watchTogether.participantSeeked' => ({required Object name}) => '${name} spoled', + 'watchTogether.participantSeeked' => ({required Object name}) => '${name} ændrede afspilningspositionen', 'watchTogether.participantBuffering' => ({required Object name}) => '${name} bufferer', 'watchTogether.participantNeedsUpdate' => ({required Object name}) => '${name} bruger en ældre appversion — synkronisering er ikke tilgængelig', 'watchTogether.resumingWithout' => ({required Object name}) => 'Fortsætter uden ${name}', - 'watchTogether.waitingForParticipants' => 'Venter på at andre indlæser...', + 'watchTogether.waitingForParticipants' => 'Venter på, at de andre bliver klar...', 'watchTogether.waitingForName' => ({required Object name}) => 'Venter på ${name}...', 'watchTogether.recentRooms' => 'Seneste rum', 'watchTogether.renameRoom' => 'Omdøb rum', @@ -3218,7 +3226,7 @@ extension on TranslationsDa { 'downloads.downloadingTooltip' => 'Downloader...', 'downloads.downloadingFilesTooltip' => ({required Object files}) => 'Downloader ${files}', 'downloads.noDownloadsTree' => 'Ingen downloads', - 'downloads.pauseAll' => 'Pause alle', + 'downloads.pauseAll' => 'Sæt alle på pause', 'downloads.resumeAll' => 'Genoptag alle', 'downloads.deleteAll' => 'Slet alle', 'downloads.selectVersion' => 'Vælg version', @@ -3226,10 +3234,10 @@ extension on TranslationsDa { 'downloads.unwatchedOnly' => 'Kun usete', 'downloads.nextNUnwatched' => ({required Object count}) => 'Næste ${count} usete', 'downloads.customAmount' => 'Angiv antal...', - 'downloads.includeSpecials' => 'Inkludér specials', + 'downloads.includeSpecials' => 'Medtag specialafsnit', 'downloads.howManyEpisodes' => 'Hvor mange episoder?', 'downloads.invalidEpisodeCount' => 'Indtast et gyldigt antal episoder.', - 'downloads.keepSynced' => 'Hold synkroniseret', + 'downloads.keepSynced' => 'Synkroniser løbende', 'downloads.downloadOnce' => 'Download én gang', 'downloads.keepNUnwatched' => ({required Object count}) => 'Behold ${count} usete', 'downloads.editSyncRule' => 'Rediger synkroniseringsregel', @@ -3249,7 +3257,7 @@ extension on TranslationsDa { 'downloads.syncRuleServerContext' => ({required Object server, required Object status}) => 'Server: ${server} • ${status}', 'downloads.syncRuleAvailable' => 'Tilgængelig', 'downloads.syncRuleOffline' => 'Offline', - 'downloads.syncRuleSignInRequired' => 'Log ind påkrævet', + 'downloads.syncRuleSignInRequired' => 'Login påkrævet', 'downloads.syncRuleNotAvailableForProfile' => 'Ikke tilgængelig for nuværende profil', 'downloads.syncRuleUnknownServer' => 'Ukendt server', 'downloads.syncRuleListCreated' => 'Synkroniseringsregel oprettet', @@ -3271,33 +3279,33 @@ extension on TranslationsDa { 'companionRemote.title' => 'Fjernbetjening', 'companionRemote.connectedTo' => ({required Object name}) => 'Forbundet til ${name}', 'companionRemote.unknownDevice' => 'Ukendt enhed', - 'companionRemote.session.startingServer' => 'Starter fjernserver...', + 'companionRemote.session.startingServer' => 'Starter fjernbetjeningsserver...', 'companionRemote.session.hostAddress' => 'Værtsadresse', 'companionRemote.session.connected' => 'Forbundet', - 'companionRemote.session.serverRunning' => 'Fjernserver aktiv', - 'companionRemote.session.serverStopped' => 'Fjernserver stoppet', + 'companionRemote.session.serverRunning' => 'Fjernbetjeningsserver aktiv', + 'companionRemote.session.serverStopped' => 'Fjernbetjeningsserver stoppet', 'companionRemote.session.serverRunningDescription' => 'Mobile enheder på dit netværk kan oprette forbindelse til denne app', 'companionRemote.session.serverStoppedDescription' => 'Start serveren for at tillade mobilenheder at oprette forbindelse', 'companionRemote.session.usePhoneToControl' => 'Brug din mobilenhed til at styre denne app', - 'companionRemote.session.startServer' => 'Start server', - 'companionRemote.session.stopServer' => 'Stop server', + 'companionRemote.session.startServer' => 'Start serveren', + 'companionRemote.session.stopServer' => 'Stop serveren', 'companionRemote.session.minimize' => 'Minimér', 'companionRemote.pairing.discoveryDescription' => 'Plezy-enheder med samme Plex-konto vises her', 'companionRemote.pairing.hostAddressHint' => '192.168.1.100:48632', 'companionRemote.pairing.connecting' => 'Opretter forbindelse...', 'companionRemote.pairing.searchingForDevices' => 'Søger efter enheder...', 'companionRemote.pairing.noDevicesFound' => 'Ingen enheder fundet på dit netværk', - 'companionRemote.pairing.noDevicesHint' => 'Åbn Plezy på desktop, og brug samme WiFi', + 'companionRemote.pairing.noDevicesHint' => 'Åbn Plezy på din computer, og brug det samme Wi-Fi-netværk', 'companionRemote.pairing.availableDevices' => 'Tilgængelige enheder', 'companionRemote.pairing.manualConnection' => 'Manuel forbindelse', 'companionRemote.pairing.cryptoInitFailed' => 'Kunne ikke starte sikker forbindelse. Log ind på Plex først.', - 'companionRemote.pairing.validationHostRequired' => 'Angiv venligst værtsadresse', + 'companionRemote.pairing.validationHostRequired' => 'Angiv en værtsadresse', 'companionRemote.pairing.validationHostFormat' => 'Format skal være IP:port (f.eks. 192.168.1.100:48632)', 'companionRemote.pairing.connectionTimedOut' => 'Forbindelsen fik timeout. Brug samme netværk på begge enheder.', 'companionRemote.pairing.sessionNotFound' => 'Enhed ikke fundet. Sørg for, at Plezy kører på værten.', 'companionRemote.pairing.authFailed' => 'Godkendelse mislykkedes. Begge enheder skal bruge samme Plex-konto.', 'companionRemote.pairing.failedToConnect' => ({required Object error}) => 'Kunne ikke oprette forbindelse: ${error}', - 'companionRemote.remote.disconnectConfirm' => 'Vil du afbryde fra fjernsessionen?', + 'companionRemote.remote.disconnectConfirm' => 'Vil du afbryde forbindelsen til fjernsessionen?', 'companionRemote.remote.reconnecting' => 'Genopretter forbindelse...', 'companionRemote.remote.attemptOf' => ({required Object current}) => 'Forsøg ${current} af 5', 'companionRemote.remote.retryNow' => 'Prøv igen nu', @@ -3326,7 +3334,7 @@ extension on TranslationsDa { 'companionRemote.remote.searchHint' => 'Søg på desktop...', 'companionRemote.errors.noNetworkInterface' => 'Ingen netværksgrænseflade fundet', 'companionRemote.errors.authenticationFailed' => 'Godkendelse mislykkedes', - 'companionRemote.errors.serverStartFailed' => ({required Object error}) => 'Kunne ikke starte fjernserveren: ${error}', + 'companionRemote.errors.serverStartFailed' => ({required Object error}) => 'Fjernbetjeningsserveren kunne ikke startes: ${error}', 'companionRemote.errors.commandFailed' => ({required Object error}) => 'Kunne ikke sende fjernkommando: ${error}', 'companionRemote.errors.joinTimedOut' => 'Tidsgrænse for deltagelse i session overskredet', 'companionRemote.errors.failedToConnectAnyAddress' => 'Kunne ikke oprette forbindelse til nogen adresse', @@ -3362,8 +3370,8 @@ extension on TranslationsDa { 'performanceOverlay.hwFormat' => 'HW-format', 'performanceOverlay.matrix' => 'Matrix', 'performanceOverlay.primaries' => 'Primærfarver', - 'performanceOverlay.transfer' => 'Transfer', - 'performanceOverlay.renderFps' => 'Render FPS', + 'performanceOverlay.transfer' => 'Overførsel', + 'performanceOverlay.renderFps' => 'Gengivelses-FPS', 'performanceOverlay.displayFps' => 'Skærm-FPS', 'performanceOverlay.avSync' => 'A/V-synk.', 'performanceOverlay.dropped' => 'Tabte', @@ -3379,7 +3387,7 @@ extension on TranslationsDa { 'performanceOverlay.speed' => 'Hastighed', 'performanceOverlay.player' => 'Afspiller', 'performanceOverlay.memory' => 'Hukommelse', - 'performanceOverlay.uiFps' => 'UI FPS', + 'performanceOverlay.uiFps' => 'UI-FPS', 'externalPlayer.title' => 'Ekstern afspiller', 'externalPlayer.useExternalPlayer' => 'Brug ekstern afspiller', 'externalPlayer.useExternalPlayerDescription' => 'Åbn videoer i en anden app', @@ -3396,9 +3404,9 @@ extension on TranslationsDa { 'externalPlayer.launchFailed' => 'Kunne ikke åbne ekstern afspiller', 'externalPlayer.appNotInstalled' => ({required Object name}) => '${name} er ikke installeret', 'externalPlayer.playInExternalPlayer' => 'Afspil i ekstern afspiller', - 'metadataEdit.editMetadata' => 'Redigér...', - 'metadataEdit.screenTitle' => 'Redigér metadata', - 'metadataEdit.basicInfo' => 'Grundlæggende info', + 'metadataEdit.editMetadata' => 'Rediger...', + 'metadataEdit.screenTitle' => 'Rediger metadata', + 'metadataEdit.basicInfo' => 'Grundlæggende oplysninger', 'metadataEdit.artwork' => 'Grafik', 'metadataEdit.advancedSettings' => 'Avancerede indstillinger', 'metadataEdit.title' => 'Titel', @@ -3407,7 +3415,7 @@ extension on TranslationsDa { 'metadataEdit.releaseDate' => 'Udgivelsesdato', 'metadataEdit.contentRating' => 'Aldersgrænse', 'metadataEdit.studio' => 'Studie', - 'metadataEdit.tagline' => 'Tagline', + 'metadataEdit.tagline' => 'Slogan', 'metadataEdit.summary' => 'Resumé', 'metadataEdit.poster' => 'Plakat', 'metadataEdit.background' => 'Baggrund', @@ -3450,16 +3458,16 @@ extension on TranslationsDa { 'metadataEdit.show' => 'Vis', 'metadataEdit.hide' => 'Skjul', 'metadataEdit.episodeOrdering' => 'Episoderækkefølge', - 'metadataEdit.tmdbAiring' => 'The Movie Database (Sendt)', - 'metadataEdit.tvdbAiring' => 'TheTVDB (Sendt)', + 'metadataEdit.tmdbAiring' => 'The Movie Database (udsendt)', + 'metadataEdit.tvdbAiring' => 'TheTVDB (udsendt)', 'metadataEdit.tvdbAbsolute' => 'TheTVDB (Absolut)', 'metadataEdit.metadataLanguage' => 'Metadatasprog', 'metadataEdit.useOriginalTitle' => 'Brug originaltitel', 'metadataEdit.preferredAudioLanguage' => 'Foretrukket lydsprog', 'metadataEdit.preferredSubtitleLanguage' => 'Foretrukket undertekstsprog', - 'metadataEdit.subtitleMode' => 'Auto-vælg underteksttilstand', + 'metadataEdit.subtitleMode' => 'Automatisk valg af undertekster', 'metadataEdit.manuallySelected' => 'Manuelt valgt', - 'metadataEdit.shownWithForeignAudio' => 'Vist med fremmedsproget lyd', + 'metadataEdit.shownWithForeignAudio' => 'Vis ved fremmedsproget lyd', 'metadataEdit.alwaysEnabled' => 'Altid aktiveret', 'metadataEdit.tags' => 'Tags', 'metadataEdit.addTag' => 'Tilføj tag', @@ -3494,8 +3502,8 @@ extension on TranslationsDa { 'trakt.disconnectConfirmBody' => 'Plezy stopper med at sende hændelser til Trakt. Du kan tilslutte igen når som helst.', 'trakt.scrobble' => 'Realtids-scrobbling', 'trakt.scrobbleDescription' => 'Send afspil-, pause- og stop-begivenheder til Trakt under afspilning.', - 'trakt.watchedSync' => 'Synkroniser sét-status', - 'trakt.watchedSyncDescription' => 'Når du markerer ting som sét i Plezy, markeres de også på Trakt.', + 'trakt.watchedSync' => 'Synkroniser set-status', + 'trakt.watchedSyncDescription' => 'Når du markerer elementer som set i Plezy, markeres de også på Trakt.', 'seerr.title' => 'Seerr', 'seerr.connectTitle' => 'Forbind Seerr', 'seerr.serverUrl' => 'Server-URL', @@ -3507,8 +3515,8 @@ extension on TranslationsDa { 'seerr.email' => 'E-mail', 'seerr.noSignInMethods' => 'Denne Seerr-instans tilbyder ingen loginmetode, som Plezy understøtter.', 'seerr.instance' => 'Instans', - 'seerr.disconnectConfirm' => 'Afbryd Seerr?', - 'seerr.disconnectConfirmBody' => 'Plezy glemmer denne Seerr-instans. Tilslut igen når som helst.', + 'seerr.disconnectConfirm' => 'Afbryd forbindelsen til Seerr?', + 'seerr.disconnectConfirmBody' => 'Plezy glemmer denne Seerr-instans. Du kan altid oprette forbindelse igen.', 'seerr.request' => 'Anmod', 'seerr.request4k' => 'Anmod i 4K', 'seerr.seasons' => 'Sæsoner', @@ -3531,9 +3539,9 @@ extension on TranslationsDa { 'services.notConnected' => 'Ikke forbundet', 'services.connectedAs' => ({required Object username}) => 'Forbundet som @${username}', 'services.scrobble' => 'Registrer fremgang automatisk', - 'services.scrobbleDescription' => 'Opdater din liste når du er færdig med et afsnit eller en film.', - 'services.disconnectConfirm' => ({required Object service}) => 'Afbryd ${service}?', - 'services.disconnectConfirmBody' => ({required Object service}) => 'Plezy stopper med at opdatere ${service}. Tilslut igen når som helst.', + 'services.scrobbleDescription' => 'Opdater din liste, når du er færdig med et afsnit eller en film.', + 'services.disconnectConfirm' => ({required Object service}) => 'Afbryd forbindelsen til ${service}?', + 'services.disconnectConfirmBody' => ({required Object service}) => 'Plezy stopper med at opdatere ${service}. Du kan altid oprette forbindelse igen.', 'services.connectFailed' => ({required Object service}) => 'Kunne ikke forbinde til ${service}. Prøv igen.', 'services.names.mal' => 'MyAnimeList', 'services.names.anilist' => 'AniList', @@ -3556,15 +3564,15 @@ extension on TranslationsDa { 'services.libraryFilter.subtitleBlocked' => ({required Object count}) => '${count} blokeret', 'services.libraryFilter.subtitleAllowed' => ({required Object count}) => '${count} tilladt', 'services.libraryFilter.mode' => 'Filtertilstand', - 'services.libraryFilter.modeBlacklist' => 'Sortliste', - 'services.libraryFilter.modeWhitelist' => 'Hvidliste', - 'services.libraryFilter.modeHintBlacklist' => 'Synkroniser alle biblioteker undtagen dem du markerer nedenfor.', - 'services.libraryFilter.modeHintWhitelist' => 'Synkroniser kun de biblioteker du markerer nedenfor.', + 'services.libraryFilter.modeBlacklist' => 'Blokliste', + 'services.libraryFilter.modeWhitelist' => 'Tilladelsesliste', + 'services.libraryFilter.modeHintBlacklist' => 'Synkroniser alle biblioteker undtagen dem, du markerer nedenfor.', + 'services.libraryFilter.modeHintWhitelist' => 'Synkroniser kun de biblioteker, du markerer nedenfor.', 'services.libraryFilter.libraries' => 'Biblioteker', 'services.libraryFilter.noLibraries' => 'Ingen biblioteker tilgængelige', 'addServer.addJellyfinTitle' => 'Tilføj Jellyfin-server', 'addServer.serverUrls' => 'Server-URL\'er', - 'addServer.serverUrlsHelper' => 'Flere URL\'er er tilladt, adskilt med kommaer.', + 'addServer.serverUrlsHelper' => 'Du kan angive flere URL\'er adskilt med komma.', 'addServer.findServer' => 'Find server', 'addServer.searchingLocalServers' => 'Søger efter lokale Jellyfin-servere...', 'addServer.localServers' => 'Lokale Jellyfin-servere', @@ -3574,20 +3582,20 @@ extension on TranslationsDa { 'addServer.change' => 'Ændr', 'addServer.required' => 'Påkrævet', 'addServer.couldNotReachServer' => ({required Object error}) => 'Kunne ikke nå serveren: ${error}', - 'addServer.signInFailed' => ({required Object error}) => 'Login mislykkedes: ${error}', + 'addServer.signInFailed' => ({required Object error}) => 'Kunne ikke logge ind: ${error}', 'addServer.quickConnectFailed' => ({required Object error}) => 'Quick Connect mislykkedes: ${error}', 'addServer.addPlexTitle' => 'Log ind med Plex', - 'addServer.pinExpired' => 'PIN udløb før login. Prøv igen.', + 'addServer.pinExpired' => 'PIN-koden udløb før login. Prøv igen.', 'addServer.failedToRegisterAccount' => ({required Object error}) => 'Kunne ikke registrere kontoen: ${error}', 'addServer.enterJellyfinUrlError' => 'Angiv URL\'en til din Jellyfin-server', 'addServer.addConnectionTitle' => 'Tilføj forbindelse', 'addServer.addConnectionTitleScoped' => ({required Object name}) => 'Tilføj til ${name}', 'addServer.signInWithPlexCard' => 'Log ind med Plex', 'addServer.signInWithPlexCardSubtitle' => 'Godkend denne enhed. Delte servere tilføjes.', - 'addServer.signInWithPlexCardSubtitleScoped' => 'Godkend en Plex-konto. Home-brugere bliver profiler.', + 'addServer.signInWithPlexCardSubtitleScoped' => 'Godkend en Plex-konto. Plex Home-brugere bliver til profiler.', 'addServer.connectToJellyfinCard' => 'Forbind til Jellyfin', 'addServer.connectToJellyfinCardSubtitle' => 'Indtast din server-URL, dit brugernavn og din adgangskode.', - 'addServer.connectToJellyfinCardSubtitleScoped' => ({required Object name}) => 'Log ind på en Jellyfin-server. Tilknyttes ${name}.', + 'addServer.connectToJellyfinCardSubtitleScoped' => ({required Object name}) => 'Log ind på en Jellyfin-server. Serveren knyttes til ${name}.', 'addServer.borrowFromAnotherProfile' => 'Lån fra en anden profil', 'addServer.borrowFromAnotherProfileSubtitle' => 'Genbrug en anden profils forbindelse. PIN-beskyttede profiler kræver en PIN.', _ => null, diff --git a/lib/i18n/strings_de.g.dart b/lib/i18n/strings_de.g.dart index 897b44cb..83dde280 100644 --- a/lib/i18n/strings_de.g.dart +++ b/lib/i18n/strings_de.g.dart @@ -111,8 +111,8 @@ class _Translations$auth$de extends Translations$auth$en { @override String get showQRCode => 'QR-Code anzeigen'; @override String get authenticate => 'Authentifizieren'; @override String get authenticationTimeout => 'Authentifizierung abgelaufen. Bitte erneut versuchen.'; - @override String get scanQRToSignIn => 'QR-Code scannen zum Anmelden'; - @override String get waitingForAuth => 'Warte auf Authentifizierung...\nMelde dich im Browser an.'; + @override String get scanQRToSignIn => 'Scanne diesen QR-Code, um dich anzumelden'; + @override String get waitingForAuth => 'Warte auf die Authentifizierung …\nMelde dich über deinen Browser an.'; @override String get useBrowser => 'Browser verwenden'; @override String get or => 'oder'; @override String get connectToJellyfin => 'Mit Jellyfin verbinden'; @@ -121,7 +121,7 @@ class _Translations$auth$de extends Translations$auth$en { @override String get quickConnectWaiting => 'Warte auf Bestätigung…'; @override String get quickConnectCancel => 'Abbrechen'; @override String get quickConnectExpired => 'Quick Connect ist abgelaufen. Versuche es erneut.'; - @override String get localDataRecoveryRequired => 'Plezy could not safely recover local sign-in and pending playback data. Please sign in again.'; + @override String get localDataRecoveryRequired => 'Plezy konnte lokale Anmeldedaten und ausstehende Wiedergabedaten nicht sicher wiederherstellen. Bitte melde dich erneut an.'; } // Path: common @@ -147,8 +147,8 @@ class _Translations$common$de extends Translations$common$en { @override String get no => 'Nein'; @override String get delete => 'Löschen'; @override String get edit => 'Bearbeiten'; - @override String get shuffle => 'Zufall'; - @override String get addTo => 'Hinzufügen zu...'; + @override String get shuffle => 'Zufallswiedergabe'; + @override String get addTo => 'Hinzufügen zu …'; @override String get createNew => 'Neu erstellen'; @override String get connect => 'Verbinden'; @override String get disconnect => 'Trennen'; @@ -159,23 +159,23 @@ class _Translations$common$de extends Translations$common$en { @override String get search => 'Suche'; @override String get home => 'Start'; @override String get back => 'Zurück'; - @override String get settings => 'Optionen'; + @override String get settings => 'Einstellungen'; @override String get mute => 'Stumm'; @override String get ok => 'OK'; @override String get off => 'Aus'; @override String seasonNumber({required Object number}) => 'Staffel ${number}'; - @override String episodeNumberTitle({required Object number, required Object title}) => 'Episode ${number} - ${title}'; + @override String episodeNumberTitle({required Object number, required Object title}) => 'Folge ${number} – ${title}'; @override String chapterNumber({required Object number}) => 'Kapitel ${number}'; @override String get reconnect => 'Erneut verbinden'; @override String get viewAll => 'Alle anzeigen'; @override String get checkingNetwork => 'Netzwerk wird geprüft...'; @override String get loadingServers => 'Server werden geladen...'; - @override String get connectingToServers => 'Verbindung zu Servern...'; + @override String get connectingToServers => 'Verbindung zu Servern wird hergestellt …'; @override String get startingOfflineMode => 'Offlinemodus wird gestartet...'; - @override String get loading => 'Laden...'; + @override String get loading => 'Wird geladen …'; @override String get fullscreen => 'Vollbild'; @override String get exitFullscreen => 'Vollbild verlassen'; - @override String get pressBackAgainToExit => 'Erneut Zurück drücken zum Beenden'; + @override String get pressBackAgainToExit => 'Zum Beenden erneut Zurück drücken'; } // Path: screens @@ -203,7 +203,7 @@ class _Translations$update$de extends Translations$update$en { @override String versionAvailable({required Object version}) => 'Version ${version} ist verfügbar'; @override String currentVersion({required Object version}) => 'Aktuell: ${version}'; @override String get skipVersion => 'Diese Version überspringen'; - @override String get viewRelease => 'Release anzeigen'; + @override String get viewRelease => 'Versionshinweise anzeigen'; @override String get latestVersion => 'Aktuellste Version installiert'; @override String get checkFailed => 'Fehler bei der Updateprüfung'; } @@ -224,10 +224,10 @@ class _Translations$settings$de extends Translations$settings$en { @override String get videoPlayback => 'Videowiedergabe'; @override String get videoPlaybackDescription => 'Wiedergabeverhalten konfigurieren'; @override String get advanced => 'Erweitert'; - @override String get episodePosterMode => 'Episoden-Poster-Stil'; + @override String get episodePosterMode => 'Episodenposter-Stil'; @override String get seriesPoster => 'Serienposter'; @override String get seasonPoster => 'Staffelposter'; - @override String get episodeThumbnail => 'Miniatur'; + @override String get episodeThumbnail => 'Vorschaubild'; @override String get showHeroSectionDescription => 'Bereich mit empfohlenen Inhalten auf der Startseite anzeigen'; @override String get secondsLabel => 'Sekunden'; @override String get minutesLabel => 'Minuten'; @@ -238,7 +238,7 @@ class _Translations$settings$de extends Translations$settings$en { @override String get lightTheme => 'Hell'; @override String get darkTheme => 'Dunkel'; @override String get oledTheme => 'OLED'; - @override String get libraryDensity => 'Mediathekdichte'; + @override String get libraryDensity => 'Darstellungsdichte der Mediathek'; @override String get compact => 'Kompakt'; @override String get comfortable => 'Großzügig'; @override String get tvCornerSpotlightBackdrop => 'Backdrop in der Ecke'; @@ -246,7 +246,7 @@ class _Translations$settings$de extends Translations$settings$en { @override String get viewMode => 'Ansichtsmodus'; @override String get gridView => 'Raster'; @override String get listView => 'Liste'; - @override String get showHeroSection => 'Hero-Bereich anzeigen'; + @override String get showHeroSection => 'Empfehlungsbereich anzeigen'; @override String get continueWatchingAction => 'Aktion für Weiterschauen'; @override String get continueWatchingPlay => 'Abspielen'; @override String get continueWatchingDetails => 'Details öffnen'; @@ -269,7 +269,7 @@ class _Translations$settings$de extends Translations$settings$en { @override String get showSeasonPostersOnTabsDescription => 'Poster jeder Staffel über ihrem Tab anzeigen'; @override String get tvFullCardLayout => 'Vollflächige TV-Karten'; @override String get tvFullCardLayoutDescription => 'TV-Karten nur mit Bild verwenden und Darstellernamen einblenden'; - @override String get focusGlow => 'Fokus-Leuchten'; + @override String get focusGlow => 'Fokusleuchten'; @override String get focusGlowDescription => 'Sanftes Leuchten um die fokussierte Karte anzeigen'; @override String get visualEffects => 'Visuelle Effekte'; @override String get visualEffectsAuto => 'Automatisch'; @@ -279,40 +279,40 @@ class _Translations$settings$de extends Translations$settings$en { @override String get visualEffectsReducedDescription => 'Weniger Animationen und Grafiken mit niedrigerer Auflösung'; @override String get hideSpoilers => 'Spoiler für nicht gesehene Episoden verbergen'; @override String get hideSpoilersDescription => 'Vorschaubilder und Beschreibungen ungesehener Episoden verwischen'; - @override String get playerBackend => 'Player-Backend'; + @override String get playerBackend => 'Wiedergabe-Engine'; @override String get exoPlayer => 'ExoPlayer'; @override String get mpv => 'mpv'; - @override String get hardwareDecoding => 'Hardware-Decodierung'; + @override String get hardwareDecoding => 'Hardwaredekodierung'; @override String get hardwareDecodingDescription => 'Hardwarebeschleunigung verwenden, sofern verfügbar'; @override String get bufferSize => 'Puffergröße'; - @override String bufferSizeMB({required Object size}) => '${size}MB'; - @override String get bufferSizeAuto => 'Auto (Empfohlen)'; - @override String bufferSizeWarning({required Object heap, required Object size}) => '${heap}MB Speicher verfügbar. Ein ${size}MB-Puffer kann die Wiedergabe beeinträchtigen.'; + @override String bufferSizeMB({required Object size}) => '${size} MB'; + @override String get bufferSizeAuto => 'Automatisch (empfohlen)'; + @override String bufferSizeWarning({required Object heap, required Object size}) => '${heap} MB Speicher verfügbar. Ein Puffer von ${size} MB kann die Wiedergabe beeinträchtigen.'; @override String get defaultQualityTitle => 'Standardqualität'; @override String get musicQualityTitle => 'Musikqualität'; @override String get subtitleStyling => 'Untertitel-Stil'; @override String get subtitleStylingDescription => 'Aussehen von Untertiteln anpassen'; - @override String get smallSkipDuration => 'Kleine Sprungdauer'; - @override String get largeSkipDuration => 'Große Sprungdauer'; + @override String get smallSkipDuration => 'Kleines Sprungintervall'; + @override String get largeSkipDuration => 'Großes Sprungintervall'; @override String get rewindOnResume => 'Zurückspulen bei Fortsetzung'; @override String secondsUnit({required Object seconds}) => '${seconds} Sekunden'; - @override String get defaultSleepTimer => 'Standard-Sleep-Timer'; + @override String get defaultSleepTimer => 'Standard-Schlaftimer'; @override String minutesUnit({required Object minutes}) => '${minutes} Minuten'; @override String get rememberTrackSelections => 'Spurauswahl pro Serie/Film merken'; @override String get rememberTrackSelectionsDescription => 'Audio- und Untertitelauswahl je Titel merken'; - @override String get showChapterMarkersOnTimeline => 'Kapitelmarkierungen auf der Zeitleiste anzeigen'; - @override String get showChapterMarkersOnTimelineDescription => 'Die Zeitleiste an Kapitelgrenzen unterteilen'; - @override String get clickVideoTogglesPlayback => 'Klicken Sie auf das Video, um die Wiedergabe zu starten oder zu pausieren.'; - @override String get clickVideoTogglesPlaybackDescription => 'Video anklicken, um abzuspielen/zu pausieren, statt Steuerungen zu zeigen.'; + @override String get showChapterMarkersOnTimeline => 'Kapitelmarkierungen auf der Suchleiste anzeigen'; + @override String get showChapterMarkersOnTimelineDescription => 'Die Suchleiste an Kapitelgrenzen unterteilen'; + @override String get clickVideoTogglesPlayback => 'Video zum Abspielen oder Pausieren anklicken'; + @override String get clickVideoTogglesPlaybackDescription => 'Video zum Abspielen oder Pausieren anklicken, statt die Steuerung anzuzeigen.'; @override String get videoPlayerControls => 'Videoplayer-Steuerung'; @override String get keyboardShortcuts => 'Tastenkürzel'; @override String get keyboardShortcutsDescription => 'Tastenkürzel anpassen'; @override String get videoPlayerNavigation => 'Videoplayer-Navigation'; - @override String get videoPlayerNavigationDescription => 'Pfeiltasten zur Navigation der Videoplayer-Steuerung verwenden'; - @override String get watchTogetherRelay => 'Gemeinsam Schauen Relay'; + @override String get videoPlayerNavigationDescription => 'Mit den Pfeiltasten durch die Videoplayer-Steuerung navigieren'; + @override String get watchTogetherRelay => 'Relay für gemeinsames Schauen'; @override String get watchTogetherRelayDescription => 'Eigenes Relay festlegen. Alle müssen denselben Server verwenden.'; @override String get watchTogetherRelayHint => 'https://mein-relay.beispiel.de'; - @override String get watchTogetherRelayInvalid => 'Enter a valid HTTP or HTTPS relay base URL.'; + @override String get watchTogetherRelayInvalid => 'Gib eine gültige HTTP- oder HTTPS-Basis-URL für das Relay ein.'; @override String get crashReporting => 'Absturzberichte'; @override String get crashReportingDescription => 'Absturzberichte senden, um die App zu verbessern'; @override String get debugLogging => 'Debug-Protokollierung'; @@ -327,7 +327,7 @@ class _Translations$settings$de extends Translations$settings$en { @override String get resetSettingsSuccess => 'Einstellungen erfolgreich zurückgesetzt'; @override String get backup => 'Sicherung'; @override String get exportSettings => 'Einstellungen exportieren'; - @override String get exportSettingsDescription => 'Speichere deine Einstellungen in einer Datei'; + @override String get exportSettingsDescription => 'Einstellungen in einer Datei speichern'; @override String get exportSettingsSuccess => 'Einstellungen exportiert'; @override String get importSettings => 'Einstellungen importieren'; @override String get importSettingsDescription => 'Einstellungen aus einer Datei wiederherstellen'; @@ -347,14 +347,14 @@ class _Translations$settings$de extends Translations$settings$en { @override String validationErrorDuration({required Object min, required Object max, required Object unit}) => 'Dauer muss zwischen ${min} und ${max} ${unit} liegen'; @override String shortcutAlreadyAssigned({required Object action}) => 'Tastenkürzel bereits zugewiesen an ${action}'; @override String shortcutUpdated({required Object action}) => 'Tastenkürzel aktualisiert für ${action}'; - @override String get saveFailed => 'Could not save changes. Try again.'; + @override String get saveFailed => 'Änderungen konnten nicht gespeichert werden. Versuche es erneut.'; @override String get autoSkip => 'Automatisches Überspringen'; @override String get autoSkipIntro => 'Intro automatisch überspringen'; @override String get autoSkipIntroDescription => 'Intro-Marker nach wenigen Sekunden automatisch überspringen'; @override String get autoSkipCredits => 'Abspann automatisch überspringen'; @override String get autoSkipCreditsDescription => 'Abspann automatisch überspringen und nächste Episode abspielen'; - @override String get forceSkipMarkerFallback => 'Fallback-Markierungen erzwingen'; - @override String get forceSkipMarkerFallbackDescription => 'Kapitel-Titelmuster verwenden, auch wenn Plex Marker hat'; + @override String get forceSkipMarkerFallback => 'Ersatzmarkierungen erzwingen'; + @override String get forceSkipMarkerFallbackDescription => 'Kapitel-Titelmuster auch dann verwenden, wenn Plex über Markierungen verfügt'; @override String get autoSkipDelay => 'Verzögerung für automatisches Überspringen'; @override String autoSkipDelayDescription({required Object seconds}) => '${seconds} Sekunden vor dem automatischen Überspringen warten'; @override String get introPattern => 'Intro-Markierungsmuster'; @@ -378,19 +378,19 @@ class _Translations$settings$de extends Translations$settings$en { @override String get downloadOnWifiOnlyDescription => 'Downloads über mobile Daten verhindern'; @override String get autoRemoveWatchedDownloads => 'Gesehene Downloads automatisch entfernen'; @override String get autoRemoveWatchedDownloadsDescription => 'Angesehene Downloads automatisch löschen'; - @override String get cellularDownloadBlocked => 'Downloads sind über Mobilfunk blockiert. Nutze WiFi oder ändere die Einstellung.'; + @override String get cellularDownloadBlocked => 'Downloads über das Mobilfunknetz sind blockiert. Nutze WLAN oder ändere die Einstellung.'; @override String get maxVolume => 'Maximale Lautstärke'; - @override String get maxVolumeDescription => 'Lautstärke über 100% für leise Medien erlauben'; - @override String maxVolumePercent({required Object percent}) => '${percent}%'; + @override String get maxVolumeDescription => 'Lautstärkeanhebung über 100 % für leise Medien erlauben'; + @override String maxVolumePercent({required Object percent}) => '${percent} %'; @override String get discordRichPresence => 'Discord Rich Presence'; - @override String get discordRichPresenceDescription => 'Zeige auf Discord, was du gerade schaust'; + @override String get discordRichPresenceDescription => 'Auf Discord anzeigen, was du gerade schaust'; @override String get services => 'Dienste'; @override String get servicesDescription => 'Trakt, MyAnimeList, Seerr und mehr verbinden'; @override String get manageLibrariesDescription => 'Mediatheken neu anordnen und ausblenden'; - @override String get companionRemoteServer => 'Companion Remote Server'; + @override String get companionRemoteServer => 'Companion-Fernbedienungsserver'; @override String get companionRemoteServerDescription => 'Mobilgeräten in deinem Netzwerk erlauben, diese App zu steuern'; @override String get autoPip => 'Automatisches Bild-in-Bild'; - @override String get autoPipDescription => 'Beim Verlassen während der Wiedergabe Bild-in-Bild starten'; + @override String get autoPipDescription => 'Beim Verlassen der App während der Wiedergabe automatisch Bild-in-Bild starten'; @override String get matchContentFrameRate => 'Inhalts-Bildrate anpassen'; @override String get matchContentFrameRateDescription => 'Bildwiederholrate des Displays an Videoinhalt anpassen'; @override String get matchRefreshRate => 'Bildwiederholrate anpassen'; @@ -402,10 +402,10 @@ class _Translations$settings$de extends Translations$settings$en { @override String get tunneledPlaybackDescription => 'Video-Tunneling verwenden. Deaktivieren, wenn HDR-Wiedergabe schwarzes Video zeigt.'; @override String get audioPassthrough => 'Audio-Durchleitung'; @override String get audioPassthroughDescription => 'Dolby/DTS-Audio ohne Neukodierung an deinen Receiver oder Fernseher senden und Surround-Sound erhalten. Deaktivieren, wenn kein Ton zu hören ist.'; - @override String get audioPassthroughDescriptionAppleTv => 'Übergibt Dolby Digital Plus (inkl. Atmos) als Bitstream an das System. DTS und TrueHD werden weiterhin als Mehrkanal-PCM wiedergegeben. Beim Spulen können kurze Tonaussetzer auftreten.'; - @override String get audioDownmix => 'Downmix auf Stereo'; - @override String get audioDownmixDescription => 'Mischt Surround-Ton für Stereo-Lautsprecher oder Kopfhörer auf zwei Kanäle herunter'; - @override String get downmixCenterBoost => 'Center-Kanal-Verstärkung'; + @override String get audioPassthroughDescriptionAppleTv => 'Apples nativen Dolby-Decoder für Dolby Digital Plus einschließlich Atmos verwenden. DTS und TrueHD werden weiterhin als Mehrkanal-PCM wiedergegeben. Deaktivieren, wenn kein Ton zu hören ist.'; + @override String get audioDownmix => 'Auf Stereo heruntermischen'; + @override String get audioDownmixDescription => 'Surround-Ton für Stereolautsprecher oder Kopfhörer auf zwei Kanäle heruntermischen'; + @override String get downmixCenterBoost => 'Verstärkung des Center-Kanals'; @override String downmixCenterBoostValue({required Object db}) => '${db} dB'; @override String get downmixCenterBoostLabel => 'Verstärkung (dB)'; @override String get downmixCenterBoostShort => 'dB'; @@ -427,14 +427,14 @@ class _Translations$settings$de extends Translations$settings$en { @override String get atmosTestUrlMissing => 'Zuerst die URL der Testdatei festlegen'; @override String get atmosTestStatus => 'Status'; @override String get dvConversionMode => 'Dolby-Vision-Konvertierung'; - @override String get dvConversionModeDescription => 'Wähle, wie ExoPlayer Dolby-Vision-Profil-7-Dateien behandelt.'; + @override String get dvConversionModeDescription => 'Wähle, wie ExoPlayer Dateien mit Dolby-Vision-Profil 7 behandelt.'; @override String get dvConversionAuto => 'Automatisch'; @override String get dvConversionNative => 'Nativ / deaktiviert'; @override String get dvConversionDv81 => 'P7 → P8.1'; @override String get dvConversionHevcStrip => 'P7 → HEVC'; @override String get dvConversionAutoDescription => 'Gerätefähigkeiten erkennen und normales Fallback-Verhalten verwenden'; - @override String get dvConversionNativeDescription => 'Natives DV7 erzwingen und DV-Konvertierungsversuch unterdrücken'; - @override String get dvConversionDv81Description => 'Inline-RPU-Konvertierung zu Dolby Vision Profil 8.1 erzwingen'; + @override String get dvConversionNativeDescription => 'Natives DV7 erzwingen und einen erneuten DV-Konvertierungsversuch unterdrücken'; + @override String get dvConversionDv81Description => 'Inline-RPU-Konvertierung in Dolby-Vision-Profil 8.1 erzwingen'; @override String get dvConversionHevcStripDescription => 'Dolby-Vision-RPU/EL-Schichten entfernen und reines HEVC ausgeben'; @override String get requireProfileSelectionOnOpen => 'Profil beim Öffnen abfragen'; @override String get requireProfileSelectionOnOpenDescription => 'Profilauswahl bei jedem Öffnen der App anzeigen'; @@ -457,7 +457,7 @@ class _Translations$settings$de extends Translations$settings$en { @override String get window => 'Fenster'; @override String get content => 'Inhalt'; @override String get player => 'Wiedergabe'; - @override String get subtitlesAndConfig => 'Untertitel & Konfiguration'; + @override String get subtitlesAndConfig => 'Untertitel und Konfiguration'; @override String get seekAndTiming => 'Spulen & Timing'; @override String get behavior => 'Verhalten'; } @@ -469,7 +469,7 @@ class _Translations$search$de extends Translations$search$en { final TranslationsDe _root; // ignore: unused_field // Translations - @override String get hint => 'Filme, Serien, Musik suchen...'; + @override String get hint => 'Filme, Serien und Musik suchen …'; @override String get tryDifferentTerm => 'Anderen Suchbegriff versuchen'; @override String get searchYourMedia => 'In den eigenen Medien suchen'; @override String get enterTitleActorOrKeyword => 'Titel, Schauspieler oder Stichwort eingeben'; @@ -484,7 +484,7 @@ class _Translations$hotkeys$de extends Translations$hotkeys$en { // Translations @override String setShortcutFor({required Object actionName}) => 'Tastenkürzel festlegen für ${actionName}'; @override String get clearShortcut => 'Kürzel löschen'; - @override String get noShortcutSet => 'Keine Tastenkombination festgelegt'; + @override String get noShortcutSet => 'Kein Tastenkürzel festgelegt'; @override String get currentShortcut => 'Aktuelle Tastenkombination:'; @override String get pressToRecord => 'Auswählen, um eine Tastenkombination aufzuzeichnen'; @override String get recordingShortcut => 'Jetzt die Tastenkombination drücken'; @@ -498,7 +498,7 @@ class _Translations$fileInfo$de extends Translations$fileInfo$en { final TranslationsDe _root; // ignore: unused_field // Translations - @override String get title => 'Dateiinfo'; + @override String get title => 'Dateiinformationen'; @override String get video => 'Video'; @override String get audio => 'Audio'; @override String get file => 'Datei'; @@ -509,14 +509,14 @@ class _Translations$fileInfo$de extends Translations$fileInfo$en { @override String get frameRate => 'Bildrate'; @override String get aspectRatio => 'Seitenverhältnis'; @override String get profile => 'Profil'; - @override String get bitDepth => 'Farbtiefe'; + @override String get bitDepth => 'Bittiefe'; @override String get colorSpace => 'Farbraum'; @override String get colorRange => 'Farbbereich'; @override String get colorPrimaries => 'Primärfarben'; @override String get chromaSubsampling => 'Chroma-Subsampling'; @override String get channels => 'Kanäle'; @override String get subtitles => 'Untertitel'; - @override String get overallBitrate => 'Gesamt-Bitrate'; + @override String get overallBitrate => 'Gesamtbitrate'; @override String get path => 'Pfad'; @override String get size => 'Größe'; @override String get container => 'Container'; @@ -543,11 +543,11 @@ class _Translations$mediaMenu$de extends Translations$mediaMenu$en { @override String get deleteFromServer => 'Vom Server löschen'; @override String get confirmDelete => 'Dieses Medium und seine Dateien von deinem Server löschen?'; @override String get deleteMultipleWarning => 'Dies umfasst alle Episoden und deren Dateien.'; - @override String get mediaDeletedSuccessfully => 'Medienelement erfolgreich gelöscht'; - @override String get mediaFailedToDelete => 'Löschen des Medienelements fehlgeschlagen'; + @override String get mediaDeletedSuccessfully => 'Medienelement gelöscht'; + @override String get mediaFailedToDelete => 'Medienelement konnte nicht gelöscht werden'; @override String get rate => 'Bewerten'; @override String get playFromBeginning => 'Von Anfang an abspielen'; - @override String get playVersion => 'Version abspielen...'; + @override String get playVersion => 'Version abspielen …'; } // Path: rateSheet @@ -577,9 +577,9 @@ class _Translations$accessibility$de extends Translations$accessibility$en { @override String mediaCardShow({required Object title}) => '${title}, Serie'; @override String mediaCardEpisode({required Object title, required Object episodeInfo}) => '${title}, ${episodeInfo}'; @override String mediaCardSeason({required Object title, required Object seasonInfo}) => '${title}, ${seasonInfo}'; - @override String get mediaCardWatched => 'angesehen'; - @override String mediaCardPartiallyWatched({required Object percent}) => '${percent} Prozent angesehen'; - @override String get mediaCardUnwatched => 'ungeschaut'; + @override String get mediaCardWatched => 'gesehen'; + @override String mediaCardPartiallyWatched({required Object percent}) => 'zu ${percent} Prozent gesehen'; + @override String get mediaCardUnwatched => 'ungesehen'; @override String get tapToPlay => 'Zum Abspielen tippen'; @override String get decrease => 'Verringern'; @override String get increase => 'Erhöhen'; @@ -588,7 +588,7 @@ class _Translations$accessibility$de extends Translations$accessibility$en { @override String get hue => 'Farbton'; @override String get saturation => 'Sättigung'; @override String get brightness => 'Helligkeit'; - @override String get hexColor => 'Hex-Farbe'; + @override String get hexColor => 'Hexadezimalfarbe'; @override String get expandText => 'Text ausklappen'; @override String get collapseText => 'Text einklappen'; @override String get alphabetNavigation => 'Alphabetische Navigation'; @@ -651,10 +651,12 @@ class _Translations$videoControls$de extends Translations$videoControls$en { @override String get continueWatching => 'Weiter'; @override String get autoPlayNext => 'Nächstes automatisch abspielen'; @override String get playNext => 'Nächstes abspielen'; - @override String get playButton => 'Wiedergeben'; + @override String get playButton => 'Abspielen'; @override String get pauseButton => 'Pause'; + @override String get showPlaybackControls => 'Wiedergabesteuerung anzeigen'; + @override String get hidePlaybackControls => 'Wiedergabesteuerung ausblenden'; @override String seekBackwardButton({required Object seconds}) => '${seconds} Sekunden zurück'; - @override String seekForwardButton({required Object seconds}) => '${seconds} Sekunden vor'; + @override String seekForwardButton({required Object seconds}) => '${seconds} Sekunden vorwärts'; @override String get previousButton => 'Vorherige Episode'; @override String get nextButton => 'Nächste Episode'; @override String get previousChapterButton => 'Vorheriges Kapitel'; @@ -669,19 +671,19 @@ class _Translations$videoControls$de extends Translations$videoControls$en { @override String get qualityColumnHeader => 'Qualität'; @override String get qualityOriginal => 'Original'; @override String qualityPresetLabel({required Object resolution, required Object bitrate}) => '${resolution}p ${bitrate} Mbps'; - @override String get transcodeUnavailableFallback => 'Transkodierung nicht verfügbar — Wiedergabe in Originalqualität'; - @override String get subtitleUnavailableFallback => 'Die ausgewählten Untertitel konnten nicht geladen werden — Wiedergabe ohne Untertitel wird fortgesetzt'; - @override String get pipButton => 'Bild-in-Bild Modus'; + @override String get transcodeUnavailableFallback => 'Transkodierung nicht verfügbar – Wiedergabe in Originalqualität'; + @override String get subtitleUnavailableFallback => 'Die ausgewählten Untertitel konnten nicht geladen werden – die Wiedergabe wird ohne Untertitel fortgesetzt'; + @override String get pipButton => 'Bild-in-Bild-Modus'; @override String get aspectRatioButton => 'Seitenverhältnis'; @override String get ambientLighting => 'Umgebungsbeleuchtung'; @override String get fullscreenButton => 'Vollbild aktivieren'; @override String get exitFullscreenButton => 'Vollbild verlassen'; @override String get alwaysOnTopButton => 'Immer im Vordergrund'; - @override String get rotationLockButton => 'Dreh­sperre'; + @override String get rotationLockButton => 'Drehsperre'; @override String get lockScreen => 'Bildschirm sperren'; @override String get screenLockButton => 'Bildschirmsperre'; @override String get longPressToUnlock => 'Lange drücken zum Entsperren'; - @override String get timelineSlider => 'Video-Zeitleiste'; + @override String get timelineSlider => 'Videozeitleiste'; @override String get volumeSlider => 'Lautstärkepegel'; @override String endsAt({required Object time}) => 'Endet um ${time}'; @override String get pipActive => 'Wiedergabe im Bild-in-Bild-Modus'; @@ -721,30 +723,30 @@ class _Translations$messages$de extends Translations$messages$en { one: 'Automatisch entfernt: ${n} angesehener Download', other: 'Automatisch entfernt: ${n} angesehene Downloads', ); - @override String get removedFromContinueWatching => 'Aus ‚Weiterschauen\' entfernt'; + @override String get removedFromContinueWatching => 'Aus „Weiterschauen“ entfernt'; @override String errorLoading({required Object error}) => 'Fehler: ${error}'; @override String get streamInterrupted => 'Der Stream wurde unterbrochen. Drücke auf Wiedergabe oder spule, um es erneut zu versuchen.'; @override String get liveStreamInterrupted => 'Der Livestream wurde unterbrochen. Drücke auf Wiedergabe, um es erneut zu versuchen.'; @override String get fileInfoNotAvailable => 'Dateiinfo nicht verfügbar'; - @override String get playbackAuthenticationRequired => 'Sign in to the media server again to play this item.'; - @override String get playbackServerUnavailable => 'The media server is unavailable. Try again later.'; - @override String get playbackDataInvalid => 'The server returned invalid playback information.'; - @override String get playbackCancelled => 'Playback was cancelled.'; - @override String get playbackFailed => 'Playback could not be started.'; + @override String get playbackAuthenticationRequired => 'Melde dich erneut beim Medienserver an, um dieses Element abzuspielen.'; + @override String get playbackServerUnavailable => 'Der Medienserver ist nicht verfügbar. Versuche es später erneut.'; + @override String get playbackDataInvalid => 'Der Server hat ungültige Wiedergabeinformationen zurückgegeben.'; + @override String get playbackCancelled => 'Die Wiedergabe wurde abgebrochen.'; + @override String get playbackFailed => 'Die Wiedergabe konnte nicht gestartet werden.'; @override String errorLoadingFileInfo({required Object error}) => 'Fehler beim Laden der Dateiinfo: ${error}'; @override String get errorLoadingSeries => 'Fehler beim Laden der Serie'; @override String get musicNotSupported => 'Musikwiedergabe wird noch nicht unterstützt'; @override String get noDescriptionAvailable => 'Keine Beschreibung verfügbar'; @override String get noProfilesAvailable => 'Keine Profile verfügbar'; - @override String get contactAdminForProfiles => 'Kontaktiere deinen Serveradministrator, um Profile hinzuzufügen'; - @override String get unableToDetermineLibrarySection => 'Bibliotheksbereich für dieses Element kann nicht ermittelt werden'; + @override String get contactAdminForProfiles => 'Wende dich an deinen Serveradministrator, um Profile hinzuzufügen'; + @override String get unableToDetermineLibrarySection => 'Der Mediatheksbereich für dieses Element konnte nicht ermittelt werden'; @override String get logsCleared => 'Protokolle gelöscht'; @override String get logsCopied => 'Protokolle in Zwischenablage kopiert'; @override String get noLogsAvailable => 'Keine Protokolle verfügbar'; - @override String libraryScanning({required Object title}) => 'Scanne „${title}“...'; + @override String libraryScanning({required Object title}) => '„${title}“ wird gescannt …'; @override String libraryScanStarted({required Object title}) => 'Mediathekscan gestartet für „${title}“'; @override String libraryScanFailed({required Object error}) => 'Fehler beim Scannen der Mediathek: ${error}'; - @override String metadataRefreshing({required Object title}) => 'Metadaten werden aktualisiert für „${title}“...'; + @override String metadataRefreshing({required Object title}) => 'Metadaten für „${title}“ werden aktualisiert …'; @override String metadataRefreshStarted({required Object title}) => 'Metadaten-Aktualisierung gestartet für „${title}“'; @override String metadataRefreshFailed({required Object error}) => 'Metadaten konnten nicht aktualisiert werden: ${error}'; @override String get logoutConfirm => 'Abmeldung wirklich durchführen?'; @@ -754,13 +756,13 @@ class _Translations$messages$de extends Translations$messages$en { @override String get noEpisodesFoundGeneral => 'Keine Episoden gefunden'; @override String get episodesLoadFailed => 'Episoden konnten nicht geladen werden'; @override String get noResultsFound => 'Keine Ergebnisse gefunden'; - @override String sleepTimerSet({required Object label}) => 'Sleep-Timer gesetzt auf ${label}'; + @override String sleepTimerSet({required Object label}) => 'Schlaftimer auf ${label} eingestellt'; @override String get noItemsAvailable => 'Keine Elemente verfügbar'; @override String get failedToCreatePlayQueueNoItems => 'Wiedergabewarteschlange konnte nicht erstellt werden – keine Elemente'; @override String failedPlayback({required Object action, required Object error}) => 'Wiedergabe für ${action} fehlgeschlagen: ${error}'; - @override String get switchingToCompatiblePlayer => 'Wechsle zu kompatiblem Player...'; + @override String get switchingToCompatiblePlayer => 'Wechsel zu einem kompatiblen Player …'; @override String get serverLimitTitle => 'Wiedergabe fehlgeschlagen'; - @override String get serverLimitBody => 'Serverfehler (HTTP 500). Ein Bandbreiten-/Transcoding-Limit lehnte diese Sitzung wohl ab. Bitte den Besitzer um Anpassung.'; + @override String get serverLimitBody => 'Serverfehler (HTTP 500). Vermutlich hat ein Bandbreiten- oder Transkodierungslimit diese Sitzung abgelehnt. Bitte den Besitzer, das Limit anzupassen.'; @override String get logsUploaded => 'Protokolle hochgeladen'; @override String get logsUploadFailed => 'Protokolle konnten nicht hochgeladen werden'; @override String get logId => 'Protokoll-ID'; @@ -807,7 +809,7 @@ class _Translations$mpvConfig$de extends Translations$mpvConfig$en { @override String get description => 'Erweiterte Videoplayer-Einstellungen'; @override String get presets => 'Voreinstellungen'; @override String get noPresets => 'Keine gespeicherten Voreinstellungen'; - @override String get saveAsPreset => 'Als Voreinstellung speichern...'; + @override String get saveAsPreset => 'Als Voreinstellung speichern …'; @override String get presetName => 'Name der Voreinstellung'; @override String get presetNameHint => 'Namen für diese Voreinstellung eingeben'; @override String get loadPreset => 'Laden'; @@ -815,7 +817,7 @@ class _Translations$mpvConfig$de extends Translations$mpvConfig$en { @override String get presetSaved => 'Voreinstellung gespeichert'; @override String get presetLoaded => 'Voreinstellung geladen'; @override String get presetDeleted => 'Voreinstellung gelöscht'; - @override String get confirmDeletePreset => 'Möchten Sie diese Voreinstellung wirklich löschen?'; + @override String get confirmDeletePreset => 'Diese Voreinstellung wirklich löschen?'; @override String get configPlaceholder => 'gpu-api=vulkan\nhwdec=auto\n# comment'; } @@ -849,7 +851,7 @@ class _Translations$profiles$de extends Translations$profiles$en { @override String get signedOutPlex => 'Von Plex abgemeldet.'; @override String get signOutFailed => 'Abmeldung fehlgeschlagen.'; @override String get sectionTitle => 'Profile'; - @override String get summarySingle => 'Profile hinzufügen, um verwaltete Benutzer und lokale Identitäten zu mischen'; + @override String get summarySingle => 'Profile hinzufügen, um verwaltete Benutzer mit lokalen Identitäten zu kombinieren'; @override String summaryMultipleWithActive({required Object count, required Object activeName}) => '${count} Profile · aktiv: ${activeName}'; @override String summaryMultiple({required Object count}) => '${count} Profile'; @override String get removeConnectionTitle => 'Verbindung entfernen?'; @@ -874,21 +876,21 @@ class _Translations$profiles$de extends Translations$profiles$en { @override String get plexHomeAccount => 'Plex Home-Konto'; @override String get connectionDefault => 'Standard'; @override String connectionAs({required Object displayName}) => 'als ${displayName}'; - @override String get makeDefault => 'Als Standard'; + @override String get makeDefault => 'Als Standard festlegen'; @override String get removeConnection => 'Entfernen'; @override String get profileRenamed => 'Profil umbenannt.'; @override String borrowAddTo({required Object displayName}) => 'Zu ${displayName} hinzufügen'; - @override String get borrowExplain => 'Verbindung eines anderen Profils leihen. PIN-geschützte Profile erfordern eine PIN.'; - @override String get borrowEmpty => 'Noch nichts zum Ausleihen.'; + @override String get borrowExplain => 'Verbindung eines anderen Profils übernehmen. PIN-geschützte Profile erfordern eine PIN.'; + @override String get borrowEmpty => 'Keine Verbindungen zum Übernehmen verfügbar.'; @override String get borrowEmptySubtitle => 'Verbinde zuerst Plex oder Jellyfin mit einem anderen Profil.'; - @override String get borrowLoadFailed => 'Available connections could not be loaded. Try again.'; + @override String get borrowLoadFailed => 'Verfügbare Verbindungen konnten nicht geladen werden. Versuche es erneut.'; @override String borrowFromProfile({required Object displayName}) => 'Von ${displayName}'; - @override String get borrowConnectionBorrowed => 'Verbindung ausgeliehen.'; - @override String get borrowFailed => 'Verbindung konnte nicht ausgeliehen werden.'; + @override String get borrowConnectionBorrowed => 'Verbindung übernommen.'; + @override String get borrowFailed => 'Verbindung konnte nicht übernommen werden.'; @override String get incorrectPin => 'Falsche PIN.'; @override String get incorrectPinTryAgain => 'Falsche PIN. Bitte erneut versuchen.'; @override String get sourceProfileMissingParentAccount => 'Dem Quellprofil fehlt das übergeordnete Konto.'; - @override String get failedToLoadHomeUsers => 'Deine Plex Home-Benutzer konnten nicht geladen werden. Prüfe deine Verbindung und versuche es erneut.'; + @override String get failedToLoadHomeUsers => 'Deine Plex-Home-Benutzer konnten nicht geladen werden. Prüfe deine Verbindung und versuche es erneut.'; @override String get failedToVerifyPin => 'PIN konnte nicht verifiziert werden.'; @override String get newProfile => 'Neues Profil'; @override String get profileNameHint => 'z. B. Gäste, Kinder, Wohnzimmer'; @@ -907,7 +909,7 @@ class _Translations$connections$de extends Translations$connections$en { // Translations @override String get sectionTitle => 'Verbindungen'; @override String get addConnection => 'Verbindung hinzufügen'; - @override String get addConnectionSubtitleNoProfile => 'Mit Plex anmelden oder Jellyfin-Server verbinden'; + @override String get addConnectionSubtitleNoProfile => 'Mit Plex anmelden oder mit einem Jellyfin-Server verbinden'; @override String addConnectionSubtitleScoped({required Object displayName}) => 'Zu ${displayName} hinzufügen: Plex, Jellyfin oder eine andere Profilverbindung'; @override String sessionExpiredOne({required Object name}) => 'Sitzung für ${name} abgelaufen'; @override String sessionExpiredMany({required Object count}) => 'Sitzungen für ${count} Server abgelaufen'; @@ -943,7 +945,7 @@ class _Translations$discover$de extends Translations$discover$en { @override String get rating => 'Altersfreigabe'; @override String get movie => 'Film'; @override String get tvShow => 'Serie'; - @override String minutesLeft({required Object minutes}) => '${minutes} Min übrig'; + @override String minutesLeft({required Object minutes}) => 'Noch ${minutes} Min.'; @override String get moreLikeThis => 'Ähnliche Inhalte'; } @@ -995,7 +997,7 @@ class _Translations$libraries$de extends Translations$libraries$en { @override String get noItemsMatchFilters => 'Keine Elemente entsprechen den aktiven Filtern'; @override String get resetFilters => 'Filter zurücksetzen'; @override String get all => 'Alle'; - @override String get clearAll => 'Alle löschen'; + @override String get clearAll => 'Alle Filter entfernen'; @override String scanLibraryConfirm({required Object title}) => '„${title}“ wirklich scannen?'; @override String analyzeLibraryConfirm({required Object title}) => '„${title}“ wirklich analysieren?'; @override String refreshMetadataConfirm({required Object title}) => 'Metadaten für „${title}“ wirklich aktualisieren?'; @@ -1008,8 +1010,8 @@ class _Translations$libraries$de extends Translations$libraries$en { @override String get showLibrary => 'Mediathek anzeigen'; @override String get hideLibrary => 'Mediathek ausblenden'; @override String get libraryOptions => 'Mediatheksoptionen'; - @override String get content => 'Bibliotheksinhalt'; - @override String get selectLibrary => 'Bibliothek auswählen'; + @override String get content => 'Mediatheksinhalt'; + @override String get selectLibrary => 'Mediathek auswählen'; @override String filtersWithCount({required Object count}) => 'Filter (${count})'; @override String get noRecommendations => 'Keine Empfehlungen verfügbar'; @override String get noCollections => 'Keine Sammlungen in dieser Mediathek'; @@ -1031,7 +1033,7 @@ class _Translations$about$de extends Translations$about$en { @override String get title => 'Über'; @override String get openSourceLicenses => 'Open-Source-Lizenzen'; @override String versionLabel({required Object version}) => 'Version ${version}'; - @override String get appDescription => 'Ein schöner Plex- und Jellyfin-Client für Flutter'; + @override String get appDescription => 'Ein schöner, mit Flutter entwickelter Plex- und Jellyfin-Client'; @override String get viewLicensesDescription => 'Lizenzen von Drittanbieter-Bibliotheken anzeigen'; } @@ -1092,7 +1094,7 @@ class _Translations$navigation$de extends Translations$navigation$en { final TranslationsDe _root; // ignore: unused_field // Translations - @override String get libraries => 'Medien'; + @override String get libraries => 'Mediatheken'; @override String get downloads => 'Downloads'; @override String get liveTv => 'Live-TV'; @override String get explore => 'Erkunden'; @@ -1120,11 +1122,11 @@ class _Translations$explore$de extends Translations$explore$en { @override String get watchlistUpdateFailed => 'Merkliste konnte nicht aktualisiert werden'; @override String get notInLibrary => 'Nicht in deiner Mediathek'; @override String get inTheseLibraries => 'In diesen Mediatheken'; - @override String get checkingLibrary => 'Deine Mediathek wird überprüft...'; + @override String get checkingLibrary => 'Deine Mediathek wird überprüft …'; @override String get emptyTitle => 'Hier ist noch nichts'; @override String emptyMessage({required Object source}) => 'Zeilen aus ${source} erscheinen hier, sobald sie Inhalte enthalten.'; @override String searchHint({required Object source}) => '${source} durchsuchen'; - @override String searchEmpty({required Object query}) => 'Keine Ergebnisse für "${query}"'; + @override String searchEmpty({required Object query}) => 'Keine Ergebnisse für „${query}“'; @override String searchPrompt({required Object source}) => 'Suche nach Filmen und Serien auf ${source}.'; @override String get searchFailed => 'Suche fehlgeschlagen. Prüfe deine Verbindung und versuche es erneut.'; } @@ -1137,9 +1139,9 @@ class _Translations$liveTv$de extends Translations$liveTv$en { // Translations @override String get title => 'Live-TV'; - @override String get guide => 'Programmführer'; + @override String get guide => 'TV-Programm'; @override String get noChannels => 'Keine Kanäle verfügbar'; - @override String get noDvr => 'Kein DVR auf einem Server konfiguriert'; + @override String get noDvr => 'Auf keinem Server ist ein DVR konfiguriert'; @override String get serverUnavailable => 'Der Live-TV-Server ist nicht verfügbar.'; @override String get serverNotConnected => 'Der Live-TV-Server ist nicht verbunden.'; @override String get noPrograms => 'Keine Programmdaten verfügbar'; @@ -1150,7 +1152,7 @@ class _Translations$liveTv$de extends Translations$liveTv$en { @override String channelNumber({required Object number}) => 'Kanal ${number}'; @override String get unknownChannel => 'Unbekannter Kanal'; @override String get live => 'LIVE'; - @override String get reloadGuide => 'Programmführer neu laden'; + @override String get reloadGuide => 'TV-Programm neu laden'; @override String get now => 'Jetzt'; @override String get today => 'Heute'; @override String get tomorrow => 'Morgen'; @@ -1165,8 +1167,8 @@ class _Translations$liveTv$de extends Translations$liveTv$en { @override String get favorites => 'Favoriten'; @override String get reorderFavorites => 'Favoriten sortieren'; @override String get favoritesLoadFailed => 'Favoriten konnten nicht geladen werden. Überprüfe deine Verbindung und versuche es erneut.'; - @override String get favoritesUpdateFailed => 'Could not update favorites. Check your connection and try again.'; - @override String get joinSession => 'Laufender Sitzung beitreten'; + @override String get favoritesUpdateFailed => 'Favoriten konnten nicht aktualisiert werden. Prüfe deine Verbindung und versuche es erneut.'; + @override String get joinSession => 'Aktueller Sitzung beitreten'; @override String watchFromStart({required Object minutes}) => 'Von Anfang an ansehen (vor ${minutes} Min.)'; @override String get watchLive => 'Live ansehen'; @override String get goToLive => 'Zum Live-Bild'; @@ -1200,7 +1202,7 @@ class _Translations$liveTv$de extends Translations$liveTv$en { @override String get editRule => 'Regel bearbeiten'; @override String get editRuleAction => 'Bearbeiten'; @override String get recordingRuleUpdated => 'Aufnahmeregel aktualisiert'; - @override String get guideReloadRequested => 'Guide-Aktualisierung angefordert'; + @override String get guideReloadRequested => 'Aktualisierung des TV-Programms angefordert'; @override String get rulesProcessRequested => 'Regelauswertung angefordert'; @override String get recordShow => 'Sendung aufnehmen'; } @@ -1216,7 +1218,7 @@ class _Translations$collections$de extends Translations$collections$en { @override String get collection => 'Sammlung'; @override String get empty => 'Sammlung ist leer'; @override String get deleteCollection => 'Sammlung löschen'; - @override String deleteConfirm({required Object title}) => '"${title}" löschen? Dies kann nicht rückgängig gemacht werden.'; + @override String deleteConfirm({required Object title}) => '„${title}“ löschen? Dies kann nicht rückgängig gemacht werden.'; @override String get deleted => 'Sammlung gelöscht'; @override String get deleteFailed => 'Sammlung konnte nicht gelöscht werden'; @override String deleteFailedWithError({required Object error}) => 'Sammlung konnte nicht gelöscht werden: ${error}'; @@ -1227,7 +1229,7 @@ class _Translations$collections$de extends Translations$collections$en { @override String get errorAddingToCollection => 'Fehler beim Hinzufügen zur Sammlung'; @override String get created => 'Sammlung erstellt'; @override String get removeFromCollection => 'Aus Sammlung entfernen'; - @override String removeFromCollectionConfirm({required Object title}) => '"${title}" aus dieser Sammlung entfernen?'; + @override String removeFromCollectionConfirm({required Object title}) => '„${title}“ aus dieser Sammlung entfernen?'; @override String get removedFromCollection => 'Aus Sammlung entfernt'; @override String get removeFromCollectionFailed => 'Entfernen aus Sammlung fehlgeschlagen'; @override String removeFromCollectionError({required Object error}) => 'Fehler beim Entfernen aus der Sammlung: ${error}'; @@ -1254,7 +1256,7 @@ class _Translations$playlists$de extends Translations$playlists$en { @override String get oneItem => '1 Element'; @override String get emptyPlaylist => 'Diese Wiedergabeliste ist leer'; @override String get deleteConfirm => 'Wiedergabeliste löschen?'; - @override String deleteMessage({required Object name}) => 'Soll "${name}" wirklich gelöscht werden?'; + @override String deleteMessage({required Object name}) => '„${name}“ wirklich löschen?'; @override String get created => 'Wiedergabeliste erstellt'; @override String get deleted => 'Wiedergabeliste gelöscht'; @override String get itemAdded => 'Zur Wiedergabeliste hinzugefügt'; @@ -1287,12 +1289,12 @@ class _Translations$music$de extends Translations$music$en { other: '${n} Titel', ); @override String get nowPlaying => 'Wird wiedergegeben'; - @override String playingFrom({required Object title}) => 'Wiedergabe aus ${title}'; + @override String playingFrom({required Object title}) => 'Wiedergabe von ${title}'; @override String get queue => 'Warteschlange'; @override String get clearQueue => 'Warteschlange leeren'; @override String get lyrics => 'Songtext'; @override String get noLyrics => 'Kein Songtext verfügbar'; - @override String get sleepTimer => 'Einschlaf-Timer'; + @override String get sleepTimer => 'Schlaftimer'; @override String get sleepTimerEndOfTrack => 'Ende des Titels'; @override String sleepTimerMinutes({required Object n}) => '${n} Minuten'; @override String get stopPlayback => 'Wiedergabe stoppen'; @@ -1312,16 +1314,16 @@ class _Translations$watchTogether$de extends Translations$watchTogether$en { // Translations @override String get title => 'Gemeinsam Schauen'; @override String get description => 'Inhalte synchron mit Freunden und Familie schauen'; - @override String get createSession => 'Sitzung Erstellen'; - @override String get creating => 'Erstellen...'; - @override String get joinSession => 'Sitzung Beitreten'; - @override String get joining => 'Beitreten...'; + @override String get createSession => 'Sitzung erstellen'; + @override String get creating => 'Wird erstellt …'; + @override String get joinSession => 'Sitzung beitreten'; + @override String get joining => 'Beitritt läuft …'; @override String get controlMode => 'Steuerungsmodus'; @override String get controlModeQuestion => 'Wer kann die Wiedergabe steuern?'; @override String get hostOnly => 'Nur Host'; @override String get anyone => 'Alle'; - @override String get hostingSession => 'Sitzung Hosten'; - @override String get inSession => 'In Sitzung'; + @override String get hostingSession => 'Sitzung wird gehostet'; + @override String get inSession => 'In einer Sitzung'; @override String get sessionCode => 'Sitzungscode'; @override String get openSessionControls => 'Sitzungssteuerung für Gemeinsam Schauen öffnen'; @override String get copySessionCode => 'Sitzungscode kopieren'; @@ -1334,43 +1336,43 @@ class _Translations$watchTogether$de extends Translations$watchTogether$en { @override String get hostBadge => 'HOST'; @override String get youAreHost => 'Du bist der Host'; @override String get watchingWithOthers => 'Mit anderen schauen'; - @override String get endSession => 'Sitzung Beenden'; - @override String get leaveSession => 'Sitzung Verlassen'; - @override String get endSessionQuestion => 'Sitzung Beenden?'; - @override String get leaveSessionQuestion => 'Sitzung Verlassen?'; + @override String get endSession => 'Sitzung beenden'; + @override String get leaveSession => 'Sitzung verlassen'; + @override String get endSessionQuestion => 'Sitzung beenden?'; + @override String get leaveSessionQuestion => 'Sitzung verlassen?'; @override String get endSessionConfirm => 'Dies beendet die Sitzung für alle Teilnehmer.'; @override String get leaveSessionConfirm => 'Du wirst aus der Sitzung entfernt.'; @override String get endSessionConfirmOverlay => 'Dies beendet die Schausitzung für alle Teilnehmer.'; @override String get leaveSessionConfirmOverlay => 'Du wirst von der Schausitzung getrennt.'; @override String get end => 'Beenden'; @override String get leave => 'Verlassen'; - @override String get syncing => 'Synchronisieren...'; - @override String get joinWatchSession => 'Schausitzung Beitreten'; + @override String get syncing => 'Wird synchronisiert …'; + @override String get joinWatchSession => 'Schausitzung beitreten'; @override String get enterCodeHint => '5-stelligen Code eingeben'; @override String get pasteFromClipboard => 'Aus Zwischenablage einfügen'; @override String get pleaseEnterCode => 'Bitte gib einen Sitzungscode ein'; @override String get codeMustBe5Chars => 'Sitzungscode muss 5 Zeichen haben'; @override String get joinInstructions => 'Gib den Sitzungscode des Hosts ein, um beizutreten.'; @override String get failedToCreate => 'Sitzung konnte nicht erstellt werden'; - @override String get failedToJoin => 'Sitzung konnte nicht beigetreten werden'; + @override String get failedToJoin => 'Beitritt zur Sitzung fehlgeschlagen'; @override String get sessionCodeCopied => 'Sitzungscode in Zwischenablage kopiert'; - @override String get relayUnreachable => 'Relay-Server nicht erreichbar. ISP-Blockierung kann Watch Together verhindern.'; - @override String get reconnectingToHost => 'Verbindung zum Host wird wiederhergestellt...'; + @override String get relayUnreachable => 'Relay-Server nicht erreichbar. Eine Sperre durch den Internetanbieter kann gemeinsames Schauen verhindern.'; + @override String get reconnectingToHost => 'Verbindung zum Host wird wiederhergestellt …'; @override String get currentPlayback => 'Aktuelle Wiedergabe'; - @override String get joinCurrentPlayback => 'Aktuelle Wiedergabe beitreten'; - @override String get joinCurrentPlaybackDescription => 'Springe zurück zu dem, was der Host gerade ansieht'; + @override String get joinCurrentPlayback => 'Aktueller Wiedergabe beitreten'; + @override String get joinCurrentPlaybackDescription => 'Zu dem Inhalt wechseln, den der Host gerade ansieht'; @override String get failedToOpenCurrentPlayback => 'Aktuelle Wiedergabe konnte nicht geöffnet werden'; @override String participantJoined({required Object name}) => '${name} ist beigetreten'; @override String participantLeft({required Object name}) => '${name} hat die Sitzung verlassen'; @override String participantPaused({required Object name}) => '${name} hat pausiert'; @override String participantResumed({required Object name}) => '${name} hat fortgesetzt'; - @override String participantSeeked({required Object name}) => '${name} hat gespult'; + @override String participantSeeked({required Object name}) => '${name} hat die Wiedergabeposition geändert'; @override String participantBuffering({required Object name}) => '${name} puffert'; @override String participantNeedsUpdate({required Object name}) => '${name} verwendet eine ältere Appversion — Synchronisierung nicht verfügbar'; @override String resumingWithout({required Object name}) => 'Fortfahren ohne ${name}'; - @override String get waitingForParticipants => 'Warte auf andere zum Laden...'; - @override String waitingForName({required Object name}) => 'Warten auf ${name}...'; - @override String get recentRooms => 'Letzte Räume'; + @override String get waitingForParticipants => 'Warten, bis die anderen bereit sind …'; + @override String waitingForName({required Object name}) => 'Warten auf ${name} …'; + @override String get recentRooms => 'Zuletzt verwendete Räume'; @override String get renameRoom => 'Raum umbenennen'; @override String get removeRoom => 'Entfernen'; @override String get guestSwitchUnavailable => 'Wechsel fehlgeschlagen — Server nicht für Synchronisierung verfügbar'; @@ -1409,12 +1411,12 @@ class _Translations$downloads$de extends Translations$downloads$en { @override String syncingFile({required Object file, required Object status}) => '${file} (${status} wird synchronisiert)'; @override String downloadedFileClickToComplete({required Object file}) => '${file} heruntergeladen — zum Abschließen klicken'; @override String get partialDownloadClickToComplete => 'Teilweise heruntergeladen — zum Abschließen klicken'; - @override String get deleting => 'Lösche...'; - @override String deletingWithProgress({required Object title, required Object current, required Object total}) => 'Lösche ${title}... (${current} von ${total})'; + @override String get deleting => 'Wird gelöscht …'; + @override String deletingWithProgress({required Object title, required Object current, required Object total}) => '${title} wird gelöscht … (${current} von ${total})'; @override String get queuedTooltip => 'In Warteschlange'; @override String queuedFilesTooltip({required Object files}) => 'In Warteschlange: ${files}'; - @override String get downloadingTooltip => 'Lädt herunter...'; - @override String downloadingFilesTooltip({required Object files}) => 'Lädt ${files} herunter'; + @override String get downloadingTooltip => 'Wird heruntergeladen …'; + @override String downloadingFilesTooltip({required Object files}) => '${files} werden heruntergeladen'; @override String get noDownloadsTree => 'Keine Downloads'; @override String get pauseAll => 'Alle pausieren'; @override String get resumeAll => 'Alle fortsetzen'; @@ -1424,33 +1426,33 @@ class _Translations$downloads$de extends Translations$downloads$en { @override String get unwatchedOnly => 'Nur ungesehene'; @override String nextNUnwatched({required Object count}) => 'Nächste ${count} ungesehene'; @override String get customAmount => 'Eigene Anzahl...'; - @override String get includeSpecials => 'Specials einschließen'; + @override String get includeSpecials => 'Sonderfolgen einschließen'; @override String get howManyEpisodes => 'Wie viele Episoden?'; @override String get invalidEpisodeCount => 'Gib eine gültige Episodenanzahl ein.'; @override String get keepSynced => 'Synchronisiert halten'; @override String get downloadOnce => 'Einmal herunterladen'; @override String keepNUnwatched({required Object count}) => '${count} ungesehene behalten'; - @override String get editSyncRule => 'Sync-Regel bearbeiten'; - @override String get removeSyncRule => 'Sync-Regel entfernen'; - @override String removeSyncRuleConfirm({required Object title}) => 'Synchronisierung von "${title}" beenden? Heruntergeladene Episoden werden behalten.'; - @override String syncRuleCreated({required Object count}) => 'Sync-Regel erstellt — ${count} ungesehene Episoden werden behalten'; - @override String get syncRuleUpdated => 'Sync-Regel aktualisiert'; - @override String get syncRuleRemoved => 'Sync-Regel entfernt'; + @override String get editSyncRule => 'Synchronisierungsregel bearbeiten'; + @override String get removeSyncRule => 'Synchronisierungsregel entfernen'; + @override String removeSyncRuleConfirm({required Object title}) => 'Synchronisierung von „${title}“ beenden? Heruntergeladene Episoden werden behalten.'; + @override String syncRuleCreated({required Object count}) => 'Synchronisierungsregel erstellt – ${count} ungesehene Episoden werden behalten'; + @override String get syncRuleUpdated => 'Synchronisierungsregel aktualisiert'; + @override String get syncRuleRemoved => 'Synchronisierungsregel entfernt'; @override String syncedNewEpisodes({required Object count, required Object title}) => '${count} neue Episoden für ${title} synchronisiert'; - @override String get activeSyncRules => 'Sync-Regeln'; - @override String get noSyncRules => 'Keine Sync-Regeln'; + @override String get activeSyncRules => 'Synchronisierungsregeln'; + @override String get noSyncRules => 'Keine Synchronisierungsregeln'; @override String get manageSyncRule => 'Synchronisierung verwalten'; @override String get editEpisodeCount => 'Episodenanzahl'; @override String get editSyncFilter => 'Synchronisierungsfilter'; - @override String get syncAllItems => 'Alle Einträge synchronisieren'; - @override String get syncUnwatchedItems => 'Ungesehene Einträge synchronisieren'; + @override String get syncAllItems => 'Alle Elemente synchronisieren'; + @override String get syncUnwatchedItems => 'Ungesehene Elemente synchronisieren'; @override String syncRuleServerContext({required Object server, required Object status}) => 'Server: ${server} • ${status}'; @override String get syncRuleAvailable => 'Verfügbar'; @override String get syncRuleOffline => 'Offline'; @override String get syncRuleSignInRequired => 'Anmeldung erforderlich'; - @override String get syncRuleNotAvailableForProfile => 'Für aktuelles Profil nicht verfügbar'; + @override String get syncRuleNotAvailableForProfile => 'Für das aktuelle Profil nicht verfügbar'; @override String get syncRuleUnknownServer => 'Unbekannter Server'; - @override String get syncRuleListCreated => 'Sync-Regel erstellt'; + @override String get syncRuleListCreated => 'Synchronisierungsregel erstellt'; } // Path: shaders @@ -1593,8 +1595,8 @@ class _Translations$metadataEdit$de extends Translations$metadataEdit$en { // Translations @override String get editMetadata => 'Bearbeiten...'; @override String get screenTitle => 'Metadaten bearbeiten'; - @override String get basicInfo => 'Grundlegende Infos'; - @override String get artwork => 'Artwork'; + @override String get basicInfo => 'Grundinformationen'; + @override String get artwork => 'Grafiken'; @override String get advancedSettings => 'Erweiterte Einstellungen'; @override String get title => 'Titel'; @override String get sortTitle => 'Sortiertitel'; @@ -1602,7 +1604,7 @@ class _Translations$metadataEdit$de extends Translations$metadataEdit$en { @override String get releaseDate => 'Erscheinungsdatum'; @override String get contentRating => 'Altersfreigabe'; @override String get studio => 'Studio'; - @override String get tagline => 'Tagline'; + @override String get tagline => 'Slogan'; @override String get summary => 'Zusammenfassung'; @override String get poster => 'Poster'; @override String get background => 'Hintergrund'; @@ -1612,19 +1614,19 @@ class _Translations$metadataEdit$de extends Translations$metadataEdit$en { @override String get selectBackground => 'Hintergrund auswählen'; @override String get selectLogo => 'Logo auswählen'; @override String get selectSquareArt => 'Quadratisches Bild auswählen'; - @override String get fromUrl => 'Von URL'; + @override String get fromUrl => 'Über URL'; @override String get uploadFile => 'Datei hochladen'; @override String get enterImageUrl => 'Bild-URL eingeben'; @override String get imageUrl => 'Bild-URL'; @override String get metadataUpdated => 'Metadaten aktualisiert'; @override String get metadataUpdateFailed => 'Metadaten konnten nicht aktualisiert werden'; - @override String get artworkUpdated => 'Artwork aktualisiert'; - @override String get artworkUpdateFailed => 'Artwork konnte nicht aktualisiert werden'; - @override String get noArtworkAvailable => 'Kein Artwork verfügbar'; - @override String artworkOption({required Object index}) => 'Artwork-Option ${index}'; - @override String selectedArtworkOption({required Object index}) => 'Artwork-Option ${index}, ausgewählt'; + @override String get artworkUpdated => 'Grafiken aktualisiert'; + @override String get artworkUpdateFailed => 'Grafiken konnten nicht aktualisiert werden'; + @override String get noArtworkAvailable => 'Keine Grafiken verfügbar'; + @override String artworkOption({required Object index}) => 'Grafikoption ${index}'; + @override String selectedArtworkOption({required Object index}) => 'Grafikoption ${index}, ausgewählt'; @override String get notSet => 'Nicht festgelegt'; - @override String get libraryDefault => 'Bibliotheksstandard'; + @override String get libraryDefault => 'Mediatheksstandard'; @override String get accountDefault => 'Kontostandard'; @override String get seriesDefault => 'Serienstandard'; @override String get episodeSorting => 'Episodensortierung'; @@ -1645,9 +1647,9 @@ class _Translations$metadataEdit$de extends Translations$metadataEdit$en { @override String get show => 'Anzeigen'; @override String get hide => 'Ausblenden'; @override String get episodeOrdering => 'Episodenreihenfolge'; - @override String get tmdbAiring => 'The Movie Database (Ausgestrahlt)'; - @override String get tvdbAiring => 'TheTVDB (Ausgestrahlt)'; - @override String get tvdbAbsolute => 'TheTVDB (Absolut)'; + @override String get tmdbAiring => 'The Movie Database (Ausstrahlung)'; + @override String get tvdbAiring => 'TheTVDB (Ausstrahlung)'; + @override String get tvdbAbsolute => 'TheTVDB (absolut)'; @override String get metadataLanguage => 'Metadaten-Sprache'; @override String get useOriginalTitle => 'Originaltitel verwenden'; @override String get preferredAudioLanguage => 'Bevorzugte Audiosprache'; @@ -1792,7 +1794,7 @@ class _Translations$addServer$de extends Translations$addServer$en { @override String get serverUrls => 'Server-URLs'; @override String get serverUrlsHelper => 'Mehrere URLs möglich, durch Kommas getrennt.'; @override String get findServer => 'Server finden'; - @override String get searchingLocalServers => 'Suche nach lokalen Jellyfin-Servern...'; + @override String get searchingLocalServers => 'Suche nach lokalen Jellyfin-Servern …'; @override String get localServers => 'Lokale Jellyfin-Server'; @override String get username => 'Benutzername'; @override String get password => 'Passwort'; @@ -1927,7 +1929,7 @@ class _Translations$libraries$sortLabels$de extends Translations$libraries$sortL @override String get dateAdded => 'Hinzugefügt am'; @override String get releaseDate => 'Erscheinungsdatum'; @override String get rating => 'Bewertung'; - @override String get communityRating => 'Community-Bewertung'; + @override String get communityRating => 'Communitybewertung'; @override String get criticRating => 'Kritikerbewertung'; @override String get userRating => 'Benutzerbewertung'; @override String get datePlayed => 'Wiedergabedatum'; @@ -1941,8 +1943,8 @@ class _Translations$libraries$sortLabels$de extends Translations$libraries$sortL @override String get studio => 'Studio'; @override String get random => 'Zufällig'; @override String get dateShared => 'Datum geteilt'; - @override String get latestEpisodeAirDate => 'Letztes Folgenausstrahlungsdatum'; - @override String get lastEpisodeDateAdded => 'Datum der zuletzt hinzugefügten Folge'; + @override String get latestEpisodeAirDate => 'Ausstrahlungsdatum der neuesten Folge'; + @override String get lastEpisodeDateAdded => 'Hinzugefügt am (neueste Folge)'; } // Path: explore.rows @@ -1960,8 +1962,8 @@ class _Translations$explore$rows$de extends Translations$explore$rows$en { @override String get popularMovies => 'Beliebte Filme'; @override String get popularShows => 'Beliebte Serien'; @override String get trendingAnime => 'Angesagte Anime'; - @override String get suggestedAnime => 'Vorgeschlagene Anime'; - @override String get airingAnime => 'Top laufende Anime'; + @override String get suggestedAnime => 'Empfohlene Anime'; + @override String get airingAnime => 'Beste derzeit laufende Anime'; @override String get popularAnime => 'Beliebteste Anime'; @override String get trending => 'Angesagt'; @override String get upcomingMovies => 'Kommende Filme'; @@ -2013,13 +2015,13 @@ class _Translations$companionRemote$pairing$de extends Translations$companionRem @override String get connecting => 'Verbinden...'; @override String get searchingForDevices => 'Suche nach Geräten...'; @override String get noDevicesFound => 'Keine Geräte in deinem Netzwerk gefunden'; - @override String get noDevicesHint => 'Öffne Plezy auf dem Desktop und nutze dasselbe WiFi'; + @override String get noDevicesHint => 'Öffne Plezy auf dem Desktop und nutze dasselbe WLAN'; @override String get availableDevices => 'Verfügbare Geräte'; @override String get manualConnection => 'Manuelle Verbindung'; @override String get cryptoInitFailed => 'Sichere Verbindung konnte nicht gestartet werden. Melde dich zuerst bei Plex an.'; @override String get validationHostRequired => 'Bitte Host-Adresse eingeben'; - @override String get validationHostFormat => 'Format muss IP:Port sein (z.B. 192.168.1.100:48632)'; - @override String get connectionTimedOut => 'Verbindung hat Zeitlimit überschritten. Nutze auf beiden Geräten dasselbe Netzwerk.'; + @override String get validationHostFormat => 'Format muss IP:Port sein (z. B. 192.168.1.100:48632)'; + @override String get connectionTimedOut => 'Zeitüberschreitung bei der Verbindung. Nutze auf beiden Geräten dasselbe Netzwerk.'; @override String get sessionNotFound => 'Gerät nicht gefunden. Stelle sicher, dass Plezy auf dem Host läuft.'; @override String get authFailed => 'Authentifizierung fehlgeschlagen. Beide Geräte benötigen dasselbe Plex-Konto.'; @override String failedToConnect({required Object error}) => 'Verbindung fehlgeschlagen: ${error}'; @@ -2058,7 +2060,7 @@ class _Translations$companionRemote$remote$de extends Translations$companionRemo @override String get fullscreen => 'Vollbild'; @override String get subtitles => 'Untertitel'; @override String get audio => 'Audio'; - @override String get searchHint => 'Auf Desktop suchen...'; + @override String get searchHint => 'Auf dem Desktop suchen …'; } // Path: companionRemote.errors @@ -2127,18 +2129,18 @@ class _Translations$services$libraryFilter$de extends Translations$services$libr final TranslationsDe _root; // ignore: unused_field // Translations - @override String get title => 'Bibliothekfilter'; - @override String get subtitleAllSyncing => 'Alle Bibliotheken werden synchronisiert'; + @override String get title => 'Mediatheksfilter'; + @override String get subtitleAllSyncing => 'Alle Mediatheken werden synchronisiert'; @override String get subtitleNoneSyncing => 'Nichts wird synchronisiert'; - @override String subtitleBlocked({required Object count}) => '${count} blockiert'; - @override String subtitleAllowed({required Object count}) => '${count} erlaubt'; + @override String subtitleBlocked({required Object count}) => '${count} ausgeschlossen'; + @override String subtitleAllowed({required Object count}) => '${count} zugelassen'; @override String get mode => 'Filtermodus'; - @override String get modeBlacklist => 'Blacklist'; - @override String get modeWhitelist => 'Whitelist'; - @override String get modeHintBlacklist => 'Alle Bibliotheken außer den unten markierten synchronisieren.'; - @override String get modeHintWhitelist => 'Nur die unten markierten Bibliotheken synchronisieren.'; - @override String get libraries => 'Bibliotheken'; - @override String get noLibraries => 'Keine Bibliotheken verfügbar'; + @override String get modeBlacklist => 'Ausschlussliste'; + @override String get modeWhitelist => 'Zulassungsliste'; + @override String get modeHintBlacklist => 'Alle Mediatheken außer den unten markierten synchronisieren.'; + @override String get modeHintWhitelist => 'Nur die unten markierten Mediatheken synchronisieren.'; + @override String get libraries => 'Mediatheken'; + @override String get noLibraries => 'Keine Mediatheken verfügbar'; } /// The flat map containing all translations for locale . @@ -2154,8 +2156,8 @@ extension on TranslationsDe { 'auth.showQRCode' => 'QR-Code anzeigen', 'auth.authenticate' => 'Authentifizieren', 'auth.authenticationTimeout' => 'Authentifizierung abgelaufen. Bitte erneut versuchen.', - 'auth.scanQRToSignIn' => 'QR-Code scannen zum Anmelden', - 'auth.waitingForAuth' => 'Warte auf Authentifizierung...\nMelde dich im Browser an.', + 'auth.scanQRToSignIn' => 'Scanne diesen QR-Code, um dich anzumelden', + 'auth.waitingForAuth' => 'Warte auf die Authentifizierung …\nMelde dich über deinen Browser an.', 'auth.useBrowser' => 'Browser verwenden', 'auth.or' => 'oder', 'auth.connectToJellyfin' => 'Mit Jellyfin verbinden', @@ -2164,7 +2166,7 @@ extension on TranslationsDe { 'auth.quickConnectWaiting' => 'Warte auf Bestätigung…', 'auth.quickConnectCancel' => 'Abbrechen', 'auth.quickConnectExpired' => 'Quick Connect ist abgelaufen. Versuche es erneut.', - 'auth.localDataRecoveryRequired' => 'Plezy could not safely recover local sign-in and pending playback data. Please sign in again.', + 'auth.localDataRecoveryRequired' => 'Plezy konnte lokale Anmeldedaten und ausstehende Wiedergabedaten nicht sicher wiederherstellen. Bitte melde dich erneut an.', 'common.cancel' => 'Abbrechen', 'common.save' => 'Speichern', 'common.close' => 'Schließen', @@ -2181,8 +2183,8 @@ extension on TranslationsDe { 'common.no' => 'Nein', 'common.delete' => 'Löschen', 'common.edit' => 'Bearbeiten', - 'common.shuffle' => 'Zufall', - 'common.addTo' => 'Hinzufügen zu...', + 'common.shuffle' => 'Zufallswiedergabe', + 'common.addTo' => 'Hinzufügen zu …', 'common.createNew' => 'Neu erstellen', 'common.connect' => 'Verbinden', 'common.disconnect' => 'Trennen', @@ -2193,23 +2195,23 @@ extension on TranslationsDe { 'common.search' => 'Suche', 'common.home' => 'Start', 'common.back' => 'Zurück', - 'common.settings' => 'Optionen', + 'common.settings' => 'Einstellungen', 'common.mute' => 'Stumm', 'common.ok' => 'OK', 'common.off' => 'Aus', 'common.seasonNumber' => ({required Object number}) => 'Staffel ${number}', - 'common.episodeNumberTitle' => ({required Object number, required Object title}) => 'Episode ${number} - ${title}', + 'common.episodeNumberTitle' => ({required Object number, required Object title}) => 'Folge ${number} – ${title}', 'common.chapterNumber' => ({required Object number}) => 'Kapitel ${number}', 'common.reconnect' => 'Erneut verbinden', 'common.viewAll' => 'Alle anzeigen', 'common.checkingNetwork' => 'Netzwerk wird geprüft...', 'common.loadingServers' => 'Server werden geladen...', - 'common.connectingToServers' => 'Verbindung zu Servern...', + 'common.connectingToServers' => 'Verbindung zu Servern wird hergestellt …', 'common.startingOfflineMode' => 'Offlinemodus wird gestartet...', - 'common.loading' => 'Laden...', + 'common.loading' => 'Wird geladen …', 'common.fullscreen' => 'Vollbild', 'common.exitFullscreen' => 'Vollbild verlassen', - 'common.pressBackAgainToExit' => 'Erneut Zurück drücken zum Beenden', + 'common.pressBackAgainToExit' => 'Zum Beenden erneut Zurück drücken', 'screens.licenses' => 'Lizenzen', 'screens.switchProfile' => 'Profil wechseln', 'screens.subtitleStyling' => 'Untertitel-Stil', @@ -2219,7 +2221,7 @@ extension on TranslationsDe { 'update.versionAvailable' => ({required Object version}) => 'Version ${version} ist verfügbar', 'update.currentVersion' => ({required Object version}) => 'Aktuell: ${version}', 'update.skipVersion' => 'Diese Version überspringen', - 'update.viewRelease' => 'Release anzeigen', + 'update.viewRelease' => 'Versionshinweise anzeigen', 'update.latestVersion' => 'Aktuellste Version installiert', 'update.checkFailed' => 'Fehler bei der Updateprüfung', 'settings.title' => 'Einstellungen', @@ -2231,10 +2233,10 @@ extension on TranslationsDe { 'settings.videoPlayback' => 'Videowiedergabe', 'settings.videoPlaybackDescription' => 'Wiedergabeverhalten konfigurieren', 'settings.advanced' => 'Erweitert', - 'settings.episodePosterMode' => 'Episoden-Poster-Stil', + 'settings.episodePosterMode' => 'Episodenposter-Stil', 'settings.seriesPoster' => 'Serienposter', 'settings.seasonPoster' => 'Staffelposter', - 'settings.episodeThumbnail' => 'Miniatur', + 'settings.episodeThumbnail' => 'Vorschaubild', 'settings.showHeroSectionDescription' => 'Bereich mit empfohlenen Inhalten auf der Startseite anzeigen', 'settings.secondsLabel' => 'Sekunden', 'settings.minutesLabel' => 'Minuten', @@ -2245,7 +2247,7 @@ extension on TranslationsDe { 'settings.lightTheme' => 'Hell', 'settings.darkTheme' => 'Dunkel', 'settings.oledTheme' => 'OLED', - 'settings.libraryDensity' => 'Mediathekdichte', + 'settings.libraryDensity' => 'Darstellungsdichte der Mediathek', 'settings.compact' => 'Kompakt', 'settings.comfortable' => 'Großzügig', 'settings.tvCornerSpotlightBackdrop' => 'Backdrop in der Ecke', @@ -2253,7 +2255,7 @@ extension on TranslationsDe { 'settings.viewMode' => 'Ansichtsmodus', 'settings.gridView' => 'Raster', 'settings.listView' => 'Liste', - 'settings.showHeroSection' => 'Hero-Bereich anzeigen', + 'settings.showHeroSection' => 'Empfehlungsbereich anzeigen', 'settings.continueWatchingAction' => 'Aktion für Weiterschauen', 'settings.continueWatchingPlay' => 'Abspielen', 'settings.continueWatchingDetails' => 'Details öffnen', @@ -2276,7 +2278,7 @@ extension on TranslationsDe { 'settings.showSeasonPostersOnTabsDescription' => 'Poster jeder Staffel über ihrem Tab anzeigen', 'settings.tvFullCardLayout' => 'Vollflächige TV-Karten', 'settings.tvFullCardLayoutDescription' => 'TV-Karten nur mit Bild verwenden und Darstellernamen einblenden', - 'settings.focusGlow' => 'Fokus-Leuchten', + 'settings.focusGlow' => 'Fokusleuchten', 'settings.focusGlowDescription' => 'Sanftes Leuchten um die fokussierte Karte anzeigen', 'settings.visualEffects' => 'Visuelle Effekte', 'settings.visualEffectsAuto' => 'Automatisch', @@ -2286,40 +2288,40 @@ extension on TranslationsDe { 'settings.visualEffectsReducedDescription' => 'Weniger Animationen und Grafiken mit niedrigerer Auflösung', 'settings.hideSpoilers' => 'Spoiler für nicht gesehene Episoden verbergen', 'settings.hideSpoilersDescription' => 'Vorschaubilder und Beschreibungen ungesehener Episoden verwischen', - 'settings.playerBackend' => 'Player-Backend', + 'settings.playerBackend' => 'Wiedergabe-Engine', 'settings.exoPlayer' => 'ExoPlayer', 'settings.mpv' => 'mpv', - 'settings.hardwareDecoding' => 'Hardware-Decodierung', + 'settings.hardwareDecoding' => 'Hardwaredekodierung', 'settings.hardwareDecodingDescription' => 'Hardwarebeschleunigung verwenden, sofern verfügbar', 'settings.bufferSize' => 'Puffergröße', - 'settings.bufferSizeMB' => ({required Object size}) => '${size}MB', - 'settings.bufferSizeAuto' => 'Auto (Empfohlen)', - 'settings.bufferSizeWarning' => ({required Object heap, required Object size}) => '${heap}MB Speicher verfügbar. Ein ${size}MB-Puffer kann die Wiedergabe beeinträchtigen.', + 'settings.bufferSizeMB' => ({required Object size}) => '${size} MB', + 'settings.bufferSizeAuto' => 'Automatisch (empfohlen)', + 'settings.bufferSizeWarning' => ({required Object heap, required Object size}) => '${heap} MB Speicher verfügbar. Ein Puffer von ${size} MB kann die Wiedergabe beeinträchtigen.', 'settings.defaultQualityTitle' => 'Standardqualität', 'settings.musicQualityTitle' => 'Musikqualität', 'settings.subtitleStyling' => 'Untertitel-Stil', 'settings.subtitleStylingDescription' => 'Aussehen von Untertiteln anpassen', - 'settings.smallSkipDuration' => 'Kleine Sprungdauer', - 'settings.largeSkipDuration' => 'Große Sprungdauer', + 'settings.smallSkipDuration' => 'Kleines Sprungintervall', + 'settings.largeSkipDuration' => 'Großes Sprungintervall', 'settings.rewindOnResume' => 'Zurückspulen bei Fortsetzung', 'settings.secondsUnit' => ({required Object seconds}) => '${seconds} Sekunden', - 'settings.defaultSleepTimer' => 'Standard-Sleep-Timer', + 'settings.defaultSleepTimer' => 'Standard-Schlaftimer', 'settings.minutesUnit' => ({required Object minutes}) => '${minutes} Minuten', 'settings.rememberTrackSelections' => 'Spurauswahl pro Serie/Film merken', 'settings.rememberTrackSelectionsDescription' => 'Audio- und Untertitelauswahl je Titel merken', - 'settings.showChapterMarkersOnTimeline' => 'Kapitelmarkierungen auf der Zeitleiste anzeigen', - 'settings.showChapterMarkersOnTimelineDescription' => 'Die Zeitleiste an Kapitelgrenzen unterteilen', - 'settings.clickVideoTogglesPlayback' => 'Klicken Sie auf das Video, um die Wiedergabe zu starten oder zu pausieren.', - 'settings.clickVideoTogglesPlaybackDescription' => 'Video anklicken, um abzuspielen/zu pausieren, statt Steuerungen zu zeigen.', + 'settings.showChapterMarkersOnTimeline' => 'Kapitelmarkierungen auf der Suchleiste anzeigen', + 'settings.showChapterMarkersOnTimelineDescription' => 'Die Suchleiste an Kapitelgrenzen unterteilen', + 'settings.clickVideoTogglesPlayback' => 'Video zum Abspielen oder Pausieren anklicken', + 'settings.clickVideoTogglesPlaybackDescription' => 'Video zum Abspielen oder Pausieren anklicken, statt die Steuerung anzuzeigen.', 'settings.videoPlayerControls' => 'Videoplayer-Steuerung', 'settings.keyboardShortcuts' => 'Tastenkürzel', 'settings.keyboardShortcutsDescription' => 'Tastenkürzel anpassen', 'settings.videoPlayerNavigation' => 'Videoplayer-Navigation', - 'settings.videoPlayerNavigationDescription' => 'Pfeiltasten zur Navigation der Videoplayer-Steuerung verwenden', - 'settings.watchTogetherRelay' => 'Gemeinsam Schauen Relay', + 'settings.videoPlayerNavigationDescription' => 'Mit den Pfeiltasten durch die Videoplayer-Steuerung navigieren', + 'settings.watchTogetherRelay' => 'Relay für gemeinsames Schauen', 'settings.watchTogetherRelayDescription' => 'Eigenes Relay festlegen. Alle müssen denselben Server verwenden.', 'settings.watchTogetherRelayHint' => 'https://mein-relay.beispiel.de', - 'settings.watchTogetherRelayInvalid' => 'Enter a valid HTTP or HTTPS relay base URL.', + 'settings.watchTogetherRelayInvalid' => 'Gib eine gültige HTTP- oder HTTPS-Basis-URL für das Relay ein.', 'settings.crashReporting' => 'Absturzberichte', 'settings.crashReportingDescription' => 'Absturzberichte senden, um die App zu verbessern', 'settings.debugLogging' => 'Debug-Protokollierung', @@ -2334,7 +2336,7 @@ extension on TranslationsDe { 'settings.resetSettingsSuccess' => 'Einstellungen erfolgreich zurückgesetzt', 'settings.backup' => 'Sicherung', 'settings.exportSettings' => 'Einstellungen exportieren', - 'settings.exportSettingsDescription' => 'Speichere deine Einstellungen in einer Datei', + 'settings.exportSettingsDescription' => 'Einstellungen in einer Datei speichern', 'settings.exportSettingsSuccess' => 'Einstellungen exportiert', 'settings.importSettings' => 'Einstellungen importieren', 'settings.importSettingsDescription' => 'Einstellungen aus einer Datei wiederherstellen', @@ -2354,14 +2356,14 @@ extension on TranslationsDe { 'settings.validationErrorDuration' => ({required Object min, required Object max, required Object unit}) => 'Dauer muss zwischen ${min} und ${max} ${unit} liegen', 'settings.shortcutAlreadyAssigned' => ({required Object action}) => 'Tastenkürzel bereits zugewiesen an ${action}', 'settings.shortcutUpdated' => ({required Object action}) => 'Tastenkürzel aktualisiert für ${action}', - 'settings.saveFailed' => 'Could not save changes. Try again.', + 'settings.saveFailed' => 'Änderungen konnten nicht gespeichert werden. Versuche es erneut.', 'settings.autoSkip' => 'Automatisches Überspringen', 'settings.autoSkipIntro' => 'Intro automatisch überspringen', 'settings.autoSkipIntroDescription' => 'Intro-Marker nach wenigen Sekunden automatisch überspringen', 'settings.autoSkipCredits' => 'Abspann automatisch überspringen', 'settings.autoSkipCreditsDescription' => 'Abspann automatisch überspringen und nächste Episode abspielen', - 'settings.forceSkipMarkerFallback' => 'Fallback-Markierungen erzwingen', - 'settings.forceSkipMarkerFallbackDescription' => 'Kapitel-Titelmuster verwenden, auch wenn Plex Marker hat', + 'settings.forceSkipMarkerFallback' => 'Ersatzmarkierungen erzwingen', + 'settings.forceSkipMarkerFallbackDescription' => 'Kapitel-Titelmuster auch dann verwenden, wenn Plex über Markierungen verfügt', 'settings.autoSkipDelay' => 'Verzögerung für automatisches Überspringen', 'settings.autoSkipDelayDescription' => ({required Object seconds}) => '${seconds} Sekunden vor dem automatischen Überspringen warten', 'settings.introPattern' => 'Intro-Markierungsmuster', @@ -2385,19 +2387,19 @@ extension on TranslationsDe { 'settings.downloadOnWifiOnlyDescription' => 'Downloads über mobile Daten verhindern', 'settings.autoRemoveWatchedDownloads' => 'Gesehene Downloads automatisch entfernen', 'settings.autoRemoveWatchedDownloadsDescription' => 'Angesehene Downloads automatisch löschen', - 'settings.cellularDownloadBlocked' => 'Downloads sind über Mobilfunk blockiert. Nutze WiFi oder ändere die Einstellung.', + 'settings.cellularDownloadBlocked' => 'Downloads über das Mobilfunknetz sind blockiert. Nutze WLAN oder ändere die Einstellung.', 'settings.maxVolume' => 'Maximale Lautstärke', - 'settings.maxVolumeDescription' => 'Lautstärke über 100% für leise Medien erlauben', - 'settings.maxVolumePercent' => ({required Object percent}) => '${percent}%', + 'settings.maxVolumeDescription' => 'Lautstärkeanhebung über 100 % für leise Medien erlauben', + 'settings.maxVolumePercent' => ({required Object percent}) => '${percent} %', 'settings.discordRichPresence' => 'Discord Rich Presence', - 'settings.discordRichPresenceDescription' => 'Zeige auf Discord, was du gerade schaust', + 'settings.discordRichPresenceDescription' => 'Auf Discord anzeigen, was du gerade schaust', 'settings.services' => 'Dienste', 'settings.servicesDescription' => 'Trakt, MyAnimeList, Seerr und mehr verbinden', 'settings.manageLibrariesDescription' => 'Mediatheken neu anordnen und ausblenden', - 'settings.companionRemoteServer' => 'Companion Remote Server', + 'settings.companionRemoteServer' => 'Companion-Fernbedienungsserver', 'settings.companionRemoteServerDescription' => 'Mobilgeräten in deinem Netzwerk erlauben, diese App zu steuern', 'settings.autoPip' => 'Automatisches Bild-in-Bild', - 'settings.autoPipDescription' => 'Beim Verlassen während der Wiedergabe Bild-in-Bild starten', + 'settings.autoPipDescription' => 'Beim Verlassen der App während der Wiedergabe automatisch Bild-in-Bild starten', 'settings.matchContentFrameRate' => 'Inhalts-Bildrate anpassen', 'settings.matchContentFrameRateDescription' => 'Bildwiederholrate des Displays an Videoinhalt anpassen', 'settings.matchRefreshRate' => 'Bildwiederholrate anpassen', @@ -2409,10 +2411,10 @@ extension on TranslationsDe { 'settings.tunneledPlaybackDescription' => 'Video-Tunneling verwenden. Deaktivieren, wenn HDR-Wiedergabe schwarzes Video zeigt.', 'settings.audioPassthrough' => 'Audio-Durchleitung', 'settings.audioPassthroughDescription' => 'Dolby/DTS-Audio ohne Neukodierung an deinen Receiver oder Fernseher senden und Surround-Sound erhalten. Deaktivieren, wenn kein Ton zu hören ist.', - 'settings.audioPassthroughDescriptionAppleTv' => 'Übergibt Dolby Digital Plus (inkl. Atmos) als Bitstream an das System. DTS und TrueHD werden weiterhin als Mehrkanal-PCM wiedergegeben. Beim Spulen können kurze Tonaussetzer auftreten.', - 'settings.audioDownmix' => 'Downmix auf Stereo', - 'settings.audioDownmixDescription' => 'Mischt Surround-Ton für Stereo-Lautsprecher oder Kopfhörer auf zwei Kanäle herunter', - 'settings.downmixCenterBoost' => 'Center-Kanal-Verstärkung', + 'settings.audioPassthroughDescriptionAppleTv' => 'Apples nativen Dolby-Decoder für Dolby Digital Plus einschließlich Atmos verwenden. DTS und TrueHD werden weiterhin als Mehrkanal-PCM wiedergegeben. Deaktivieren, wenn kein Ton zu hören ist.', + 'settings.audioDownmix' => 'Auf Stereo heruntermischen', + 'settings.audioDownmixDescription' => 'Surround-Ton für Stereolautsprecher oder Kopfhörer auf zwei Kanäle heruntermischen', + 'settings.downmixCenterBoost' => 'Verstärkung des Center-Kanals', 'settings.downmixCenterBoostValue' => ({required Object db}) => '${db} dB', 'settings.downmixCenterBoostLabel' => 'Verstärkung (dB)', 'settings.downmixCenterBoostShort' => 'dB', @@ -2434,14 +2436,14 @@ extension on TranslationsDe { 'settings.atmosTestUrlMissing' => 'Zuerst die URL der Testdatei festlegen', 'settings.atmosTestStatus' => 'Status', 'settings.dvConversionMode' => 'Dolby-Vision-Konvertierung', - 'settings.dvConversionModeDescription' => 'Wähle, wie ExoPlayer Dolby-Vision-Profil-7-Dateien behandelt.', + 'settings.dvConversionModeDescription' => 'Wähle, wie ExoPlayer Dateien mit Dolby-Vision-Profil 7 behandelt.', 'settings.dvConversionAuto' => 'Automatisch', 'settings.dvConversionNative' => 'Nativ / deaktiviert', 'settings.dvConversionDv81' => 'P7 → P8.1', 'settings.dvConversionHevcStrip' => 'P7 → HEVC', 'settings.dvConversionAutoDescription' => 'Gerätefähigkeiten erkennen und normales Fallback-Verhalten verwenden', - 'settings.dvConversionNativeDescription' => 'Natives DV7 erzwingen und DV-Konvertierungsversuch unterdrücken', - 'settings.dvConversionDv81Description' => 'Inline-RPU-Konvertierung zu Dolby Vision Profil 8.1 erzwingen', + 'settings.dvConversionNativeDescription' => 'Natives DV7 erzwingen und einen erneuten DV-Konvertierungsversuch unterdrücken', + 'settings.dvConversionDv81Description' => 'Inline-RPU-Konvertierung in Dolby-Vision-Profil 8.1 erzwingen', 'settings.dvConversionHevcStripDescription' => 'Dolby-Vision-RPU/EL-Schichten entfernen und reines HEVC ausgeben', 'settings.requireProfileSelectionOnOpen' => 'Profil beim Öffnen abfragen', 'settings.requireProfileSelectionOnOpenDescription' => 'Profilauswahl bei jedem Öffnen der App anzeigen', @@ -2464,16 +2466,16 @@ extension on TranslationsDe { 'settings.window' => 'Fenster', 'settings.content' => 'Inhalt', 'settings.player' => 'Wiedergabe', - 'settings.subtitlesAndConfig' => 'Untertitel & Konfiguration', + 'settings.subtitlesAndConfig' => 'Untertitel und Konfiguration', 'settings.seekAndTiming' => 'Spulen & Timing', 'settings.behavior' => 'Verhalten', - 'search.hint' => 'Filme, Serien, Musik suchen...', + 'search.hint' => 'Filme, Serien und Musik suchen …', 'search.tryDifferentTerm' => 'Anderen Suchbegriff versuchen', 'search.searchYourMedia' => 'In den eigenen Medien suchen', 'search.enterTitleActorOrKeyword' => 'Titel, Schauspieler oder Stichwort eingeben', 'hotkeys.setShortcutFor' => ({required Object actionName}) => 'Tastenkürzel festlegen für ${actionName}', 'hotkeys.clearShortcut' => 'Kürzel löschen', - 'hotkeys.noShortcutSet' => 'Keine Tastenkombination festgelegt', + 'hotkeys.noShortcutSet' => 'Kein Tastenkürzel festgelegt', 'hotkeys.currentShortcut' => 'Aktuelle Tastenkombination:', 'hotkeys.pressToRecord' => 'Auswählen, um eine Tastenkombination aufzuzeichnen', 'hotkeys.recordingShortcut' => 'Jetzt die Tastenkombination drücken', @@ -2502,7 +2504,7 @@ extension on TranslationsDe { 'hotkeys.actions.shaderToggle' => 'Shader umschalten', 'hotkeys.actions.skipMarker' => 'Intro/Abspann überspringen', 'hotkeys.actions.screenshot' => 'Screenshot aufnehmen', - 'fileInfo.title' => 'Dateiinfo', + 'fileInfo.title' => 'Dateiinformationen', 'fileInfo.video' => 'Video', 'fileInfo.audio' => 'Audio', 'fileInfo.file' => 'Datei', @@ -2513,14 +2515,14 @@ extension on TranslationsDe { 'fileInfo.frameRate' => 'Bildrate', 'fileInfo.aspectRatio' => 'Seitenverhältnis', 'fileInfo.profile' => 'Profil', - 'fileInfo.bitDepth' => 'Farbtiefe', + 'fileInfo.bitDepth' => 'Bittiefe', 'fileInfo.colorSpace' => 'Farbraum', 'fileInfo.colorRange' => 'Farbbereich', 'fileInfo.colorPrimaries' => 'Primärfarben', 'fileInfo.chromaSubsampling' => 'Chroma-Subsampling', 'fileInfo.channels' => 'Kanäle', 'fileInfo.subtitles' => 'Untertitel', - 'fileInfo.overallBitrate' => 'Gesamt-Bitrate', + 'fileInfo.overallBitrate' => 'Gesamtbitrate', 'fileInfo.path' => 'Pfad', 'fileInfo.size' => 'Größe', 'fileInfo.container' => 'Container', @@ -2538,11 +2540,11 @@ extension on TranslationsDe { 'mediaMenu.deleteFromServer' => 'Vom Server löschen', 'mediaMenu.confirmDelete' => 'Dieses Medium und seine Dateien von deinem Server löschen?', 'mediaMenu.deleteMultipleWarning' => 'Dies umfasst alle Episoden und deren Dateien.', - 'mediaMenu.mediaDeletedSuccessfully' => 'Medienelement erfolgreich gelöscht', - 'mediaMenu.mediaFailedToDelete' => 'Löschen des Medienelements fehlgeschlagen', + 'mediaMenu.mediaDeletedSuccessfully' => 'Medienelement gelöscht', + 'mediaMenu.mediaFailedToDelete' => 'Medienelement konnte nicht gelöscht werden', 'mediaMenu.rate' => 'Bewerten', 'mediaMenu.playFromBeginning' => 'Von Anfang an abspielen', - 'mediaMenu.playVersion' => 'Version abspielen...', + 'mediaMenu.playVersion' => 'Version abspielen …', 'rateSheet.title' => 'Bewerten', 'rateSheet.server' => 'Server', 'rateSheet.favorite' => 'Favorit', @@ -2554,9 +2556,9 @@ extension on TranslationsDe { 'accessibility.mediaCardShow' => ({required Object title}) => '${title}, Serie', 'accessibility.mediaCardEpisode' => ({required Object title, required Object episodeInfo}) => '${title}, ${episodeInfo}', 'accessibility.mediaCardSeason' => ({required Object title, required Object seasonInfo}) => '${title}, ${seasonInfo}', - 'accessibility.mediaCardWatched' => 'angesehen', - 'accessibility.mediaCardPartiallyWatched' => ({required Object percent}) => '${percent} Prozent angesehen', - 'accessibility.mediaCardUnwatched' => 'ungeschaut', + 'accessibility.mediaCardWatched' => 'gesehen', + 'accessibility.mediaCardPartiallyWatched' => ({required Object percent}) => 'zu ${percent} Prozent gesehen', + 'accessibility.mediaCardUnwatched' => 'ungesehen', 'accessibility.tapToPlay' => 'Zum Abspielen tippen', 'accessibility.decrease' => 'Verringern', 'accessibility.increase' => 'Erhöhen', @@ -2565,7 +2567,7 @@ extension on TranslationsDe { 'accessibility.hue' => 'Farbton', 'accessibility.saturation' => 'Sättigung', 'accessibility.brightness' => 'Helligkeit', - 'accessibility.hexColor' => 'Hex-Farbe', + 'accessibility.hexColor' => 'Hexadezimalfarbe', 'accessibility.expandText' => 'Text ausklappen', 'accessibility.collapseText' => 'Text einklappen', 'accessibility.alphabetNavigation' => 'Alphabetische Navigation', @@ -2601,10 +2603,12 @@ extension on TranslationsDe { 'videoControls.continueWatching' => 'Weiter', 'videoControls.autoPlayNext' => 'Nächstes automatisch abspielen', 'videoControls.playNext' => 'Nächstes abspielen', - 'videoControls.playButton' => 'Wiedergeben', + 'videoControls.playButton' => 'Abspielen', 'videoControls.pauseButton' => 'Pause', + 'videoControls.showPlaybackControls' => 'Wiedergabesteuerung anzeigen', + 'videoControls.hidePlaybackControls' => 'Wiedergabesteuerung ausblenden', 'videoControls.seekBackwardButton' => ({required Object seconds}) => '${seconds} Sekunden zurück', - 'videoControls.seekForwardButton' => ({required Object seconds}) => '${seconds} Sekunden vor', + 'videoControls.seekForwardButton' => ({required Object seconds}) => '${seconds} Sekunden vorwärts', 'videoControls.previousButton' => 'Vorherige Episode', 'videoControls.nextButton' => 'Nächste Episode', 'videoControls.previousChapterButton' => 'Vorheriges Kapitel', @@ -2619,19 +2623,19 @@ extension on TranslationsDe { 'videoControls.qualityColumnHeader' => 'Qualität', 'videoControls.qualityOriginal' => 'Original', 'videoControls.qualityPresetLabel' => ({required Object resolution, required Object bitrate}) => '${resolution}p ${bitrate} Mbps', - 'videoControls.transcodeUnavailableFallback' => 'Transkodierung nicht verfügbar — Wiedergabe in Originalqualität', - 'videoControls.subtitleUnavailableFallback' => 'Die ausgewählten Untertitel konnten nicht geladen werden — Wiedergabe ohne Untertitel wird fortgesetzt', - 'videoControls.pipButton' => 'Bild-in-Bild Modus', + 'videoControls.transcodeUnavailableFallback' => 'Transkodierung nicht verfügbar – Wiedergabe in Originalqualität', + 'videoControls.subtitleUnavailableFallback' => 'Die ausgewählten Untertitel konnten nicht geladen werden – die Wiedergabe wird ohne Untertitel fortgesetzt', + 'videoControls.pipButton' => 'Bild-in-Bild-Modus', 'videoControls.aspectRatioButton' => 'Seitenverhältnis', 'videoControls.ambientLighting' => 'Umgebungsbeleuchtung', 'videoControls.fullscreenButton' => 'Vollbild aktivieren', 'videoControls.exitFullscreenButton' => 'Vollbild verlassen', 'videoControls.alwaysOnTopButton' => 'Immer im Vordergrund', - 'videoControls.rotationLockButton' => 'Dreh­sperre', + 'videoControls.rotationLockButton' => 'Drehsperre', 'videoControls.lockScreen' => 'Bildschirm sperren', 'videoControls.screenLockButton' => 'Bildschirmsperre', 'videoControls.longPressToUnlock' => 'Lange drücken zum Entsperren', - 'videoControls.timelineSlider' => 'Video-Zeitleiste', + 'videoControls.timelineSlider' => 'Videozeitleiste', 'videoControls.volumeSlider' => 'Lautstärkepegel', 'videoControls.endsAt' => ({required Object time}) => 'Endet um ${time}', 'videoControls.pipActive' => 'Wiedergabe im Bild-in-Bild-Modus', @@ -2659,38 +2663,38 @@ extension on TranslationsDe { 'videoControls.subtitleDownloadedNotApplied' => 'Der Untertitel wurde heruntergeladen, konnte aber nicht ausgewählt werden', 'videoControls.subtitleDownloadFailed' => 'Untertitel konnte nicht heruntergeladen werden', 'videoControls.searchLanguages' => 'Sprachen suchen...', - 'messages.markedAsWatched' => 'Als gesehen markiert', - 'messages.markedAsUnwatched' => 'Als ungesehen markiert', _ => null, } ?? switch (path) { + 'messages.markedAsWatched' => 'Als gesehen markiert', + 'messages.markedAsUnwatched' => 'Als ungesehen markiert', 'messages.markedAsWatchedOffline' => 'Als gesehen markiert (wird synchronisiert, wenn online)', 'messages.markedAsUnwatchedOffline' => 'Als ungesehen markiert (wird synchronisiert, wenn online)', 'messages.autoRemovedWatchedDownload' => ({required Object title}) => 'Automatisch entfernt: ${title}', 'messages.autoRemovedWatchedDownloads' => ({required num n}) => (_root.$meta.cardinalResolver ?? PluralResolvers.cardinal('de'))(n, one: 'Automatisch entfernt: ${n} angesehener Download', other: 'Automatisch entfernt: ${n} angesehene Downloads', ), - 'messages.removedFromContinueWatching' => 'Aus ‚Weiterschauen\' entfernt', + 'messages.removedFromContinueWatching' => 'Aus „Weiterschauen“ entfernt', 'messages.errorLoading' => ({required Object error}) => 'Fehler: ${error}', 'messages.streamInterrupted' => 'Der Stream wurde unterbrochen. Drücke auf Wiedergabe oder spule, um es erneut zu versuchen.', 'messages.liveStreamInterrupted' => 'Der Livestream wurde unterbrochen. Drücke auf Wiedergabe, um es erneut zu versuchen.', 'messages.fileInfoNotAvailable' => 'Dateiinfo nicht verfügbar', - 'messages.playbackAuthenticationRequired' => 'Sign in to the media server again to play this item.', - 'messages.playbackServerUnavailable' => 'The media server is unavailable. Try again later.', - 'messages.playbackDataInvalid' => 'The server returned invalid playback information.', - 'messages.playbackCancelled' => 'Playback was cancelled.', - 'messages.playbackFailed' => 'Playback could not be started.', + 'messages.playbackAuthenticationRequired' => 'Melde dich erneut beim Medienserver an, um dieses Element abzuspielen.', + 'messages.playbackServerUnavailable' => 'Der Medienserver ist nicht verfügbar. Versuche es später erneut.', + 'messages.playbackDataInvalid' => 'Der Server hat ungültige Wiedergabeinformationen zurückgegeben.', + 'messages.playbackCancelled' => 'Die Wiedergabe wurde abgebrochen.', + 'messages.playbackFailed' => 'Die Wiedergabe konnte nicht gestartet werden.', 'messages.errorLoadingFileInfo' => ({required Object error}) => 'Fehler beim Laden der Dateiinfo: ${error}', 'messages.errorLoadingSeries' => 'Fehler beim Laden der Serie', 'messages.musicNotSupported' => 'Musikwiedergabe wird noch nicht unterstützt', 'messages.noDescriptionAvailable' => 'Keine Beschreibung verfügbar', 'messages.noProfilesAvailable' => 'Keine Profile verfügbar', - 'messages.contactAdminForProfiles' => 'Kontaktiere deinen Serveradministrator, um Profile hinzuzufügen', - 'messages.unableToDetermineLibrarySection' => 'Bibliotheksbereich für dieses Element kann nicht ermittelt werden', + 'messages.contactAdminForProfiles' => 'Wende dich an deinen Serveradministrator, um Profile hinzuzufügen', + 'messages.unableToDetermineLibrarySection' => 'Der Mediatheksbereich für dieses Element konnte nicht ermittelt werden', 'messages.logsCleared' => 'Protokolle gelöscht', 'messages.logsCopied' => 'Protokolle in Zwischenablage kopiert', 'messages.noLogsAvailable' => 'Keine Protokolle verfügbar', - 'messages.libraryScanning' => ({required Object title}) => 'Scanne „${title}“...', + 'messages.libraryScanning' => ({required Object title}) => '„${title}“ wird gescannt …', 'messages.libraryScanStarted' => ({required Object title}) => 'Mediathekscan gestartet für „${title}“', 'messages.libraryScanFailed' => ({required Object error}) => 'Fehler beim Scannen der Mediathek: ${error}', - 'messages.metadataRefreshing' => ({required Object title}) => 'Metadaten werden aktualisiert für „${title}“...', + 'messages.metadataRefreshing' => ({required Object title}) => 'Metadaten für „${title}“ werden aktualisiert …', 'messages.metadataRefreshStarted' => ({required Object title}) => 'Metadaten-Aktualisierung gestartet für „${title}“', 'messages.metadataRefreshFailed' => ({required Object error}) => 'Metadaten konnten nicht aktualisiert werden: ${error}', 'messages.logoutConfirm' => 'Abmeldung wirklich durchführen?', @@ -2700,13 +2704,13 @@ extension on TranslationsDe { 'messages.noEpisodesFoundGeneral' => 'Keine Episoden gefunden', 'messages.episodesLoadFailed' => 'Episoden konnten nicht geladen werden', 'messages.noResultsFound' => 'Keine Ergebnisse gefunden', - 'messages.sleepTimerSet' => ({required Object label}) => 'Sleep-Timer gesetzt auf ${label}', + 'messages.sleepTimerSet' => ({required Object label}) => 'Schlaftimer auf ${label} eingestellt', 'messages.noItemsAvailable' => 'Keine Elemente verfügbar', 'messages.failedToCreatePlayQueueNoItems' => 'Wiedergabewarteschlange konnte nicht erstellt werden – keine Elemente', 'messages.failedPlayback' => ({required Object action, required Object error}) => 'Wiedergabe für ${action} fehlgeschlagen: ${error}', - 'messages.switchingToCompatiblePlayer' => 'Wechsle zu kompatiblem Player...', + 'messages.switchingToCompatiblePlayer' => 'Wechsel zu einem kompatiblen Player …', 'messages.serverLimitTitle' => 'Wiedergabe fehlgeschlagen', - 'messages.serverLimitBody' => 'Serverfehler (HTTP 500). Ein Bandbreiten-/Transcoding-Limit lehnte diese Sitzung wohl ab. Bitte den Besitzer um Anpassung.', + 'messages.serverLimitBody' => 'Serverfehler (HTTP 500). Vermutlich hat ein Bandbreiten- oder Transkodierungslimit diese Sitzung abgelehnt. Bitte den Besitzer, das Limit anzupassen.', 'messages.logsUploaded' => 'Protokolle hochgeladen', 'messages.logsUploadFailed' => 'Protokolle konnten nicht hochgeladen werden', 'messages.logId' => 'Protokoll-ID', @@ -2735,7 +2739,7 @@ extension on TranslationsDe { 'mpvConfig.description' => 'Erweiterte Videoplayer-Einstellungen', 'mpvConfig.presets' => 'Voreinstellungen', 'mpvConfig.noPresets' => 'Keine gespeicherten Voreinstellungen', - 'mpvConfig.saveAsPreset' => 'Als Voreinstellung speichern...', + 'mpvConfig.saveAsPreset' => 'Als Voreinstellung speichern …', 'mpvConfig.presetName' => 'Name der Voreinstellung', 'mpvConfig.presetNameHint' => 'Namen für diese Voreinstellung eingeben', 'mpvConfig.loadPreset' => 'Laden', @@ -2743,7 +2747,7 @@ extension on TranslationsDe { 'mpvConfig.presetSaved' => 'Voreinstellung gespeichert', 'mpvConfig.presetLoaded' => 'Voreinstellung geladen', 'mpvConfig.presetDeleted' => 'Voreinstellung gelöscht', - 'mpvConfig.confirmDeletePreset' => 'Möchten Sie diese Voreinstellung wirklich löschen?', + 'mpvConfig.confirmDeletePreset' => 'Diese Voreinstellung wirklich löschen?', 'mpvConfig.configPlaceholder' => 'gpu-api=vulkan\nhwdec=auto\n# comment', 'dialog.confirmAction' => 'Aktion bestätigen', 'profiles.addPlezyProfile' => 'Plezy-Profil hinzufügen', @@ -2759,7 +2763,7 @@ extension on TranslationsDe { 'profiles.signedOutPlex' => 'Von Plex abgemeldet.', 'profiles.signOutFailed' => 'Abmeldung fehlgeschlagen.', 'profiles.sectionTitle' => 'Profile', - 'profiles.summarySingle' => 'Profile hinzufügen, um verwaltete Benutzer und lokale Identitäten zu mischen', + 'profiles.summarySingle' => 'Profile hinzufügen, um verwaltete Benutzer mit lokalen Identitäten zu kombinieren', 'profiles.summaryMultipleWithActive' => ({required Object count, required Object activeName}) => '${count} Profile · aktiv: ${activeName}', 'profiles.summaryMultiple' => ({required Object count}) => '${count} Profile', 'profiles.removeConnectionTitle' => 'Verbindung entfernen?', @@ -2784,21 +2788,21 @@ extension on TranslationsDe { 'profiles.plexHomeAccount' => 'Plex Home-Konto', 'profiles.connectionDefault' => 'Standard', 'profiles.connectionAs' => ({required Object displayName}) => 'als ${displayName}', - 'profiles.makeDefault' => 'Als Standard', + 'profiles.makeDefault' => 'Als Standard festlegen', 'profiles.removeConnection' => 'Entfernen', 'profiles.profileRenamed' => 'Profil umbenannt.', 'profiles.borrowAddTo' => ({required Object displayName}) => 'Zu ${displayName} hinzufügen', - 'profiles.borrowExplain' => 'Verbindung eines anderen Profils leihen. PIN-geschützte Profile erfordern eine PIN.', - 'profiles.borrowEmpty' => 'Noch nichts zum Ausleihen.', + 'profiles.borrowExplain' => 'Verbindung eines anderen Profils übernehmen. PIN-geschützte Profile erfordern eine PIN.', + 'profiles.borrowEmpty' => 'Keine Verbindungen zum Übernehmen verfügbar.', 'profiles.borrowEmptySubtitle' => 'Verbinde zuerst Plex oder Jellyfin mit einem anderen Profil.', - 'profiles.borrowLoadFailed' => 'Available connections could not be loaded. Try again.', + 'profiles.borrowLoadFailed' => 'Verfügbare Verbindungen konnten nicht geladen werden. Versuche es erneut.', 'profiles.borrowFromProfile' => ({required Object displayName}) => 'Von ${displayName}', - 'profiles.borrowConnectionBorrowed' => 'Verbindung ausgeliehen.', - 'profiles.borrowFailed' => 'Verbindung konnte nicht ausgeliehen werden.', + 'profiles.borrowConnectionBorrowed' => 'Verbindung übernommen.', + 'profiles.borrowFailed' => 'Verbindung konnte nicht übernommen werden.', 'profiles.incorrectPin' => 'Falsche PIN.', 'profiles.incorrectPinTryAgain' => 'Falsche PIN. Bitte erneut versuchen.', 'profiles.sourceProfileMissingParentAccount' => 'Dem Quellprofil fehlt das übergeordnete Konto.', - 'profiles.failedToLoadHomeUsers' => 'Deine Plex Home-Benutzer konnten nicht geladen werden. Prüfe deine Verbindung und versuche es erneut.', + 'profiles.failedToLoadHomeUsers' => 'Deine Plex-Home-Benutzer konnten nicht geladen werden. Prüfe deine Verbindung und versuche es erneut.', 'profiles.failedToVerifyPin' => 'PIN konnte nicht verifiziert werden.', 'profiles.newProfile' => 'Neues Profil', 'profiles.profileNameHint' => 'z. B. Gäste, Kinder, Wohnzimmer', @@ -2808,7 +2812,7 @@ extension on TranslationsDe { 'profiles.pinsDontMatch' => 'PINs stimmen nicht überein', 'connections.sectionTitle' => 'Verbindungen', 'connections.addConnection' => 'Verbindung hinzufügen', - 'connections.addConnectionSubtitleNoProfile' => 'Mit Plex anmelden oder Jellyfin-Server verbinden', + 'connections.addConnectionSubtitleNoProfile' => 'Mit Plex anmelden oder mit einem Jellyfin-Server verbinden', 'connections.addConnectionSubtitleScoped' => ({required Object displayName}) => 'Zu ${displayName} hinzufügen: Plex, Jellyfin oder eine andere Profilverbindung', 'connections.sessionExpiredOne' => ({required Object name}) => 'Sitzung für ${name} abgelaufen', 'connections.sessionExpiredMany' => ({required Object count}) => 'Sitzungen für ${count} Server abgelaufen', @@ -2835,7 +2839,7 @@ extension on TranslationsDe { 'discover.rating' => 'Altersfreigabe', 'discover.movie' => 'Film', 'discover.tvShow' => 'Serie', - 'discover.minutesLeft' => ({required Object minutes}) => '${minutes} Min übrig', + 'discover.minutesLeft' => ({required Object minutes}) => 'Noch ${minutes} Min.', 'discover.moreLikeThis' => 'Ähnliche Inhalte', 'errors.searchFailed' => ({required Object error}) => 'Suche fehlgeschlagen: ${error}', 'errors.connectionTimeout' => ({required Object context}) => 'Zeitüberschreitung beim Laden von ${context}', @@ -2869,7 +2873,7 @@ extension on TranslationsDe { 'libraries.noItemsMatchFilters' => 'Keine Elemente entsprechen den aktiven Filtern', 'libraries.resetFilters' => 'Filter zurücksetzen', 'libraries.all' => 'Alle', - 'libraries.clearAll' => 'Alle löschen', + 'libraries.clearAll' => 'Alle Filter entfernen', 'libraries.scanLibraryConfirm' => ({required Object title}) => '„${title}“ wirklich scannen?', 'libraries.analyzeLibraryConfirm' => ({required Object title}) => '„${title}“ wirklich analysieren?', 'libraries.refreshMetadataConfirm' => ({required Object title}) => 'Metadaten für „${title}“ wirklich aktualisieren?', @@ -2882,8 +2886,8 @@ extension on TranslationsDe { 'libraries.showLibrary' => 'Mediathek anzeigen', 'libraries.hideLibrary' => 'Mediathek ausblenden', 'libraries.libraryOptions' => 'Mediatheksoptionen', - 'libraries.content' => 'Bibliotheksinhalt', - 'libraries.selectLibrary' => 'Bibliothek auswählen', + 'libraries.content' => 'Mediatheksinhalt', + 'libraries.selectLibrary' => 'Mediathek auswählen', 'libraries.filtersWithCount' => ({required Object count}) => 'Filter (${count})', 'libraries.noRecommendations' => 'Keine Empfehlungen verfügbar', 'libraries.noCollections' => 'Keine Sammlungen in dieser Mediathek', @@ -2914,7 +2918,7 @@ extension on TranslationsDe { 'libraries.sortLabels.dateAdded' => 'Hinzugefügt am', 'libraries.sortLabels.releaseDate' => 'Erscheinungsdatum', 'libraries.sortLabels.rating' => 'Bewertung', - 'libraries.sortLabels.communityRating' => 'Community-Bewertung', + 'libraries.sortLabels.communityRating' => 'Communitybewertung', 'libraries.sortLabels.criticRating' => 'Kritikerbewertung', 'libraries.sortLabels.userRating' => 'Benutzerbewertung', 'libraries.sortLabels.datePlayed' => 'Wiedergabedatum', @@ -2928,12 +2932,12 @@ extension on TranslationsDe { 'libraries.sortLabels.studio' => 'Studio', 'libraries.sortLabels.random' => 'Zufällig', 'libraries.sortLabels.dateShared' => 'Datum geteilt', - 'libraries.sortLabels.latestEpisodeAirDate' => 'Letztes Folgenausstrahlungsdatum', - 'libraries.sortLabels.lastEpisodeDateAdded' => 'Datum der zuletzt hinzugefügten Folge', + 'libraries.sortLabels.latestEpisodeAirDate' => 'Ausstrahlungsdatum der neuesten Folge', + 'libraries.sortLabels.lastEpisodeDateAdded' => 'Hinzugefügt am (neueste Folge)', 'about.title' => 'Über', 'about.openSourceLicenses' => 'Open-Source-Lizenzen', 'about.versionLabel' => ({required Object version}) => 'Version ${version}', - 'about.appDescription' => 'Ein schöner Plex- und Jellyfin-Client für Flutter', + 'about.appDescription' => 'Ein schöner, mit Flutter entwickelter Plex- und Jellyfin-Client', 'about.viewLicensesDescription' => 'Lizenzen von Drittanbieter-Bibliotheken anzeigen', 'serverSelection.noServersFoundForAccount' => ({required Object username, required Object email}) => 'Keine Server gefunden für ${username} (${email})', 'serverSelection.failedToLoadServers' => ({required Object error}) => 'Server konnten nicht geladen werden: ${error}', @@ -2949,7 +2953,7 @@ extension on TranslationsDe { 'licenses.license' => 'Lizenz', 'licenses.licenseNumber' => ({required Object number}) => 'Lizenz ${number}', 'licenses.licensesCount' => ({required Object count}) => '${count} Lizenzen', - 'navigation.libraries' => 'Medien', + 'navigation.libraries' => 'Mediatheken', 'navigation.downloads' => 'Downloads', 'navigation.liveTv' => 'Live-TV', 'navigation.explore' => 'Erkunden', @@ -2963,8 +2967,8 @@ extension on TranslationsDe { 'explore.rows.popularMovies' => 'Beliebte Filme', 'explore.rows.popularShows' => 'Beliebte Serien', 'explore.rows.trendingAnime' => 'Angesagte Anime', - 'explore.rows.suggestedAnime' => 'Vorgeschlagene Anime', - 'explore.rows.airingAnime' => 'Top laufende Anime', + 'explore.rows.suggestedAnime' => 'Empfohlene Anime', + 'explore.rows.airingAnime' => 'Beste derzeit laufende Anime', 'explore.rows.popularAnime' => 'Beliebteste Anime', 'explore.rows.trending' => 'Angesagt', 'explore.rows.upcomingMovies' => 'Kommende Filme', @@ -2981,17 +2985,17 @@ extension on TranslationsDe { 'explore.watchlistUpdateFailed' => 'Merkliste konnte nicht aktualisiert werden', 'explore.notInLibrary' => 'Nicht in deiner Mediathek', 'explore.inTheseLibraries' => 'In diesen Mediatheken', - 'explore.checkingLibrary' => 'Deine Mediathek wird überprüft...', + 'explore.checkingLibrary' => 'Deine Mediathek wird überprüft …', 'explore.emptyTitle' => 'Hier ist noch nichts', 'explore.emptyMessage' => ({required Object source}) => 'Zeilen aus ${source} erscheinen hier, sobald sie Inhalte enthalten.', 'explore.searchHint' => ({required Object source}) => '${source} durchsuchen', - 'explore.searchEmpty' => ({required Object query}) => 'Keine Ergebnisse für "${query}"', + 'explore.searchEmpty' => ({required Object query}) => 'Keine Ergebnisse für „${query}“', 'explore.searchPrompt' => ({required Object source}) => 'Suche nach Filmen und Serien auf ${source}.', 'explore.searchFailed' => 'Suche fehlgeschlagen. Prüfe deine Verbindung und versuche es erneut.', 'liveTv.title' => 'Live-TV', - 'liveTv.guide' => 'Programmführer', + 'liveTv.guide' => 'TV-Programm', 'liveTv.noChannels' => 'Keine Kanäle verfügbar', - 'liveTv.noDvr' => 'Kein DVR auf einem Server konfiguriert', + 'liveTv.noDvr' => 'Auf keinem Server ist ein DVR konfiguriert', 'liveTv.serverUnavailable' => 'Der Live-TV-Server ist nicht verfügbar.', 'liveTv.serverNotConnected' => 'Der Live-TV-Server ist nicht verbunden.', 'liveTv.noPrograms' => 'Keine Programmdaten verfügbar', @@ -3002,7 +3006,7 @@ extension on TranslationsDe { 'liveTv.channelNumber' => ({required Object number}) => 'Kanal ${number}', 'liveTv.unknownChannel' => 'Unbekannter Kanal', 'liveTv.live' => 'LIVE', - 'liveTv.reloadGuide' => 'Programmführer neu laden', + 'liveTv.reloadGuide' => 'TV-Programm neu laden', 'liveTv.now' => 'Jetzt', 'liveTv.today' => 'Heute', 'liveTv.tomorrow' => 'Morgen', @@ -3017,8 +3021,8 @@ extension on TranslationsDe { 'liveTv.favorites' => 'Favoriten', 'liveTv.reorderFavorites' => 'Favoriten sortieren', 'liveTv.favoritesLoadFailed' => 'Favoriten konnten nicht geladen werden. Überprüfe deine Verbindung und versuche es erneut.', - 'liveTv.favoritesUpdateFailed' => 'Could not update favorites. Check your connection and try again.', - 'liveTv.joinSession' => 'Laufender Sitzung beitreten', + 'liveTv.favoritesUpdateFailed' => 'Favoriten konnten nicht aktualisiert werden. Prüfe deine Verbindung und versuche es erneut.', + 'liveTv.joinSession' => 'Aktueller Sitzung beitreten', 'liveTv.watchFromStart' => ({required Object minutes}) => 'Von Anfang an ansehen (vor ${minutes} Min.)', 'liveTv.watchLive' => 'Live ansehen', 'liveTv.goToLive' => 'Zum Live-Bild', @@ -3052,14 +3056,14 @@ extension on TranslationsDe { 'liveTv.editRule' => 'Regel bearbeiten', 'liveTv.editRuleAction' => 'Bearbeiten', 'liveTv.recordingRuleUpdated' => 'Aufnahmeregel aktualisiert', - 'liveTv.guideReloadRequested' => 'Guide-Aktualisierung angefordert', + 'liveTv.guideReloadRequested' => 'Aktualisierung des TV-Programms angefordert', 'liveTv.rulesProcessRequested' => 'Regelauswertung angefordert', 'liveTv.recordShow' => 'Sendung aufnehmen', 'collections.title' => 'Sammlungen', 'collections.collection' => 'Sammlung', 'collections.empty' => 'Sammlung ist leer', 'collections.deleteCollection' => 'Sammlung löschen', - 'collections.deleteConfirm' => ({required Object title}) => '"${title}" löschen? Dies kann nicht rückgängig gemacht werden.', + 'collections.deleteConfirm' => ({required Object title}) => '„${title}“ löschen? Dies kann nicht rückgängig gemacht werden.', 'collections.deleted' => 'Sammlung gelöscht', 'collections.deleteFailed' => 'Sammlung konnte nicht gelöscht werden', 'collections.deleteFailedWithError' => ({required Object error}) => 'Sammlung konnte nicht gelöscht werden: ${error}', @@ -3070,7 +3074,7 @@ extension on TranslationsDe { 'collections.errorAddingToCollection' => 'Fehler beim Hinzufügen zur Sammlung', 'collections.created' => 'Sammlung erstellt', 'collections.removeFromCollection' => 'Aus Sammlung entfernen', - 'collections.removeFromCollectionConfirm' => ({required Object title}) => '"${title}" aus dieser Sammlung entfernen?', + 'collections.removeFromCollectionConfirm' => ({required Object title}) => '„${title}“ aus dieser Sammlung entfernen?', 'collections.removedFromCollection' => 'Aus Sammlung entfernt', 'collections.removeFromCollectionFailed' => 'Entfernen aus Sammlung fehlgeschlagen', 'collections.removeFromCollectionError' => ({required Object error}) => 'Fehler beim Entfernen aus der Sammlung: ${error}', @@ -3088,7 +3092,7 @@ extension on TranslationsDe { 'playlists.oneItem' => '1 Element', 'playlists.emptyPlaylist' => 'Diese Wiedergabeliste ist leer', 'playlists.deleteConfirm' => 'Wiedergabeliste löschen?', - 'playlists.deleteMessage' => ({required Object name}) => 'Soll "${name}" wirklich gelöscht werden?', + 'playlists.deleteMessage' => ({required Object name}) => '„${name}“ wirklich löschen?', 'playlists.created' => 'Wiedergabeliste erstellt', 'playlists.deleted' => 'Wiedergabeliste gelöscht', 'playlists.itemAdded' => 'Zur Wiedergabeliste hinzugefügt', @@ -3109,12 +3113,12 @@ extension on TranslationsDe { 'music.discNumber' => ({required Object n}) => 'Disc ${n}', 'music.trackCount' => ({required num n}) => (_root.$meta.cardinalResolver ?? PluralResolvers.cardinal('de'))(n, one: '${n} Titel', other: '${n} Titel', ), 'music.nowPlaying' => 'Wird wiedergegeben', - 'music.playingFrom' => ({required Object title}) => 'Wiedergabe aus ${title}', + 'music.playingFrom' => ({required Object title}) => 'Wiedergabe von ${title}', 'music.queue' => 'Warteschlange', 'music.clearQueue' => 'Warteschlange leeren', 'music.lyrics' => 'Songtext', 'music.noLyrics' => 'Kein Songtext verfügbar', - 'music.sleepTimer' => 'Einschlaf-Timer', + 'music.sleepTimer' => 'Schlaftimer', 'music.sleepTimerEndOfTrack' => 'Ende des Titels', 'music.sleepTimerMinutes' => ({required Object n}) => '${n} Minuten', 'music.stopPlayback' => 'Wiedergabe stoppen', @@ -3125,16 +3129,16 @@ extension on TranslationsDe { 'music.repeatOne' => 'Titel wiederholen', 'watchTogether.title' => 'Gemeinsam Schauen', 'watchTogether.description' => 'Inhalte synchron mit Freunden und Familie schauen', - 'watchTogether.createSession' => 'Sitzung Erstellen', - 'watchTogether.creating' => 'Erstellen...', - 'watchTogether.joinSession' => 'Sitzung Beitreten', - 'watchTogether.joining' => 'Beitreten...', + 'watchTogether.createSession' => 'Sitzung erstellen', + 'watchTogether.creating' => 'Wird erstellt …', + 'watchTogether.joinSession' => 'Sitzung beitreten', + 'watchTogether.joining' => 'Beitritt läuft …', 'watchTogether.controlMode' => 'Steuerungsmodus', 'watchTogether.controlModeQuestion' => 'Wer kann die Wiedergabe steuern?', 'watchTogether.hostOnly' => 'Nur Host', 'watchTogether.anyone' => 'Alle', - 'watchTogether.hostingSession' => 'Sitzung Hosten', - 'watchTogether.inSession' => 'In Sitzung', + 'watchTogether.hostingSession' => 'Sitzung wird gehostet', + 'watchTogether.inSession' => 'In einer Sitzung', 'watchTogether.sessionCode' => 'Sitzungscode', 'watchTogether.openSessionControls' => 'Sitzungssteuerung für Gemeinsam Schauen öffnen', 'watchTogether.copySessionCode' => 'Sitzungscode kopieren', @@ -3147,45 +3151,45 @@ extension on TranslationsDe { 'watchTogether.hostBadge' => 'HOST', 'watchTogether.youAreHost' => 'Du bist der Host', 'watchTogether.watchingWithOthers' => 'Mit anderen schauen', - 'watchTogether.endSession' => 'Sitzung Beenden', - 'watchTogether.leaveSession' => 'Sitzung Verlassen', - 'watchTogether.endSessionQuestion' => 'Sitzung Beenden?', - 'watchTogether.leaveSessionQuestion' => 'Sitzung Verlassen?', + 'watchTogether.endSession' => 'Sitzung beenden', + 'watchTogether.leaveSession' => 'Sitzung verlassen', + 'watchTogether.endSessionQuestion' => 'Sitzung beenden?', + 'watchTogether.leaveSessionQuestion' => 'Sitzung verlassen?', 'watchTogether.endSessionConfirm' => 'Dies beendet die Sitzung für alle Teilnehmer.', 'watchTogether.leaveSessionConfirm' => 'Du wirst aus der Sitzung entfernt.', 'watchTogether.endSessionConfirmOverlay' => 'Dies beendet die Schausitzung für alle Teilnehmer.', 'watchTogether.leaveSessionConfirmOverlay' => 'Du wirst von der Schausitzung getrennt.', 'watchTogether.end' => 'Beenden', 'watchTogether.leave' => 'Verlassen', - 'watchTogether.syncing' => 'Synchronisieren...', - 'watchTogether.joinWatchSession' => 'Schausitzung Beitreten', + 'watchTogether.syncing' => 'Wird synchronisiert …', + 'watchTogether.joinWatchSession' => 'Schausitzung beitreten', 'watchTogether.enterCodeHint' => '5-stelligen Code eingeben', 'watchTogether.pasteFromClipboard' => 'Aus Zwischenablage einfügen', 'watchTogether.pleaseEnterCode' => 'Bitte gib einen Sitzungscode ein', 'watchTogether.codeMustBe5Chars' => 'Sitzungscode muss 5 Zeichen haben', 'watchTogether.joinInstructions' => 'Gib den Sitzungscode des Hosts ein, um beizutreten.', 'watchTogether.failedToCreate' => 'Sitzung konnte nicht erstellt werden', - 'watchTogether.failedToJoin' => 'Sitzung konnte nicht beigetreten werden', + 'watchTogether.failedToJoin' => 'Beitritt zur Sitzung fehlgeschlagen', 'watchTogether.sessionCodeCopied' => 'Sitzungscode in Zwischenablage kopiert', - 'watchTogether.relayUnreachable' => 'Relay-Server nicht erreichbar. ISP-Blockierung kann Watch Together verhindern.', - 'watchTogether.reconnectingToHost' => 'Verbindung zum Host wird wiederhergestellt...', + 'watchTogether.relayUnreachable' => 'Relay-Server nicht erreichbar. Eine Sperre durch den Internetanbieter kann gemeinsames Schauen verhindern.', + 'watchTogether.reconnectingToHost' => 'Verbindung zum Host wird wiederhergestellt …', 'watchTogether.currentPlayback' => 'Aktuelle Wiedergabe', - 'watchTogether.joinCurrentPlayback' => 'Aktuelle Wiedergabe beitreten', - 'watchTogether.joinCurrentPlaybackDescription' => 'Springe zurück zu dem, was der Host gerade ansieht', + 'watchTogether.joinCurrentPlayback' => 'Aktueller Wiedergabe beitreten', + 'watchTogether.joinCurrentPlaybackDescription' => 'Zu dem Inhalt wechseln, den der Host gerade ansieht', 'watchTogether.failedToOpenCurrentPlayback' => 'Aktuelle Wiedergabe konnte nicht geöffnet werden', - 'watchTogether.participantJoined' => ({required Object name}) => '${name} ist beigetreten', - 'watchTogether.participantLeft' => ({required Object name}) => '${name} hat die Sitzung verlassen', _ => null, } ?? switch (path) { + 'watchTogether.participantJoined' => ({required Object name}) => '${name} ist beigetreten', + 'watchTogether.participantLeft' => ({required Object name}) => '${name} hat die Sitzung verlassen', 'watchTogether.participantPaused' => ({required Object name}) => '${name} hat pausiert', 'watchTogether.participantResumed' => ({required Object name}) => '${name} hat fortgesetzt', - 'watchTogether.participantSeeked' => ({required Object name}) => '${name} hat gespult', + 'watchTogether.participantSeeked' => ({required Object name}) => '${name} hat die Wiedergabeposition geändert', 'watchTogether.participantBuffering' => ({required Object name}) => '${name} puffert', 'watchTogether.participantNeedsUpdate' => ({required Object name}) => '${name} verwendet eine ältere Appversion — Synchronisierung nicht verfügbar', 'watchTogether.resumingWithout' => ({required Object name}) => 'Fortfahren ohne ${name}', - 'watchTogether.waitingForParticipants' => 'Warte auf andere zum Laden...', - 'watchTogether.waitingForName' => ({required Object name}) => 'Warten auf ${name}...', - 'watchTogether.recentRooms' => 'Letzte Räume', + 'watchTogether.waitingForParticipants' => 'Warten, bis die anderen bereit sind …', + 'watchTogether.waitingForName' => ({required Object name}) => 'Warten auf ${name} …', + 'watchTogether.recentRooms' => 'Zuletzt verwendete Räume', 'watchTogether.renameRoom' => 'Raum umbenennen', 'watchTogether.removeRoom' => 'Entfernen', 'watchTogether.guestSwitchUnavailable' => 'Wechsel fehlgeschlagen — Server nicht für Synchronisierung verfügbar', @@ -3215,12 +3219,12 @@ extension on TranslationsDe { 'downloads.syncingFile' => ({required Object file, required Object status}) => '${file} (${status} wird synchronisiert)', 'downloads.downloadedFileClickToComplete' => ({required Object file}) => '${file} heruntergeladen — zum Abschließen klicken', 'downloads.partialDownloadClickToComplete' => 'Teilweise heruntergeladen — zum Abschließen klicken', - 'downloads.deleting' => 'Lösche...', - 'downloads.deletingWithProgress' => ({required Object title, required Object current, required Object total}) => 'Lösche ${title}... (${current} von ${total})', + 'downloads.deleting' => 'Wird gelöscht …', + 'downloads.deletingWithProgress' => ({required Object title, required Object current, required Object total}) => '${title} wird gelöscht … (${current} von ${total})', 'downloads.queuedTooltip' => 'In Warteschlange', 'downloads.queuedFilesTooltip' => ({required Object files}) => 'In Warteschlange: ${files}', - 'downloads.downloadingTooltip' => 'Lädt herunter...', - 'downloads.downloadingFilesTooltip' => ({required Object files}) => 'Lädt ${files} herunter', + 'downloads.downloadingTooltip' => 'Wird heruntergeladen …', + 'downloads.downloadingFilesTooltip' => ({required Object files}) => '${files} werden heruntergeladen', 'downloads.noDownloadsTree' => 'Keine Downloads', 'downloads.pauseAll' => 'Alle pausieren', 'downloads.resumeAll' => 'Alle fortsetzen', @@ -3230,33 +3234,33 @@ extension on TranslationsDe { 'downloads.unwatchedOnly' => 'Nur ungesehene', 'downloads.nextNUnwatched' => ({required Object count}) => 'Nächste ${count} ungesehene', 'downloads.customAmount' => 'Eigene Anzahl...', - 'downloads.includeSpecials' => 'Specials einschließen', + 'downloads.includeSpecials' => 'Sonderfolgen einschließen', 'downloads.howManyEpisodes' => 'Wie viele Episoden?', 'downloads.invalidEpisodeCount' => 'Gib eine gültige Episodenanzahl ein.', 'downloads.keepSynced' => 'Synchronisiert halten', 'downloads.downloadOnce' => 'Einmal herunterladen', 'downloads.keepNUnwatched' => ({required Object count}) => '${count} ungesehene behalten', - 'downloads.editSyncRule' => 'Sync-Regel bearbeiten', - 'downloads.removeSyncRule' => 'Sync-Regel entfernen', - 'downloads.removeSyncRuleConfirm' => ({required Object title}) => 'Synchronisierung von "${title}" beenden? Heruntergeladene Episoden werden behalten.', - 'downloads.syncRuleCreated' => ({required Object count}) => 'Sync-Regel erstellt — ${count} ungesehene Episoden werden behalten', - 'downloads.syncRuleUpdated' => 'Sync-Regel aktualisiert', - 'downloads.syncRuleRemoved' => 'Sync-Regel entfernt', + 'downloads.editSyncRule' => 'Synchronisierungsregel bearbeiten', + 'downloads.removeSyncRule' => 'Synchronisierungsregel entfernen', + 'downloads.removeSyncRuleConfirm' => ({required Object title}) => 'Synchronisierung von „${title}“ beenden? Heruntergeladene Episoden werden behalten.', + 'downloads.syncRuleCreated' => ({required Object count}) => 'Synchronisierungsregel erstellt – ${count} ungesehene Episoden werden behalten', + 'downloads.syncRuleUpdated' => 'Synchronisierungsregel aktualisiert', + 'downloads.syncRuleRemoved' => 'Synchronisierungsregel entfernt', 'downloads.syncedNewEpisodes' => ({required Object count, required Object title}) => '${count} neue Episoden für ${title} synchronisiert', - 'downloads.activeSyncRules' => 'Sync-Regeln', - 'downloads.noSyncRules' => 'Keine Sync-Regeln', + 'downloads.activeSyncRules' => 'Synchronisierungsregeln', + 'downloads.noSyncRules' => 'Keine Synchronisierungsregeln', 'downloads.manageSyncRule' => 'Synchronisierung verwalten', 'downloads.editEpisodeCount' => 'Episodenanzahl', 'downloads.editSyncFilter' => 'Synchronisierungsfilter', - 'downloads.syncAllItems' => 'Alle Einträge synchronisieren', - 'downloads.syncUnwatchedItems' => 'Ungesehene Einträge synchronisieren', + 'downloads.syncAllItems' => 'Alle Elemente synchronisieren', + 'downloads.syncUnwatchedItems' => 'Ungesehene Elemente synchronisieren', 'downloads.syncRuleServerContext' => ({required Object server, required Object status}) => 'Server: ${server} • ${status}', 'downloads.syncRuleAvailable' => 'Verfügbar', 'downloads.syncRuleOffline' => 'Offline', 'downloads.syncRuleSignInRequired' => 'Anmeldung erforderlich', - 'downloads.syncRuleNotAvailableForProfile' => 'Für aktuelles Profil nicht verfügbar', + 'downloads.syncRuleNotAvailableForProfile' => 'Für das aktuelle Profil nicht verfügbar', 'downloads.syncRuleUnknownServer' => 'Unbekannter Server', - 'downloads.syncRuleListCreated' => 'Sync-Regel erstellt', + 'downloads.syncRuleListCreated' => 'Synchronisierungsregel erstellt', 'shaders.title' => 'Shader', 'shaders.noShaderDescription' => 'Keine Videoverbesserung', 'shaders.nvscalerDescription' => 'NVIDIA-Bildskalierung für schärferes Video', @@ -3291,13 +3295,13 @@ extension on TranslationsDe { 'companionRemote.pairing.connecting' => 'Verbinden...', 'companionRemote.pairing.searchingForDevices' => 'Suche nach Geräten...', 'companionRemote.pairing.noDevicesFound' => 'Keine Geräte in deinem Netzwerk gefunden', - 'companionRemote.pairing.noDevicesHint' => 'Öffne Plezy auf dem Desktop und nutze dasselbe WiFi', + 'companionRemote.pairing.noDevicesHint' => 'Öffne Plezy auf dem Desktop und nutze dasselbe WLAN', 'companionRemote.pairing.availableDevices' => 'Verfügbare Geräte', 'companionRemote.pairing.manualConnection' => 'Manuelle Verbindung', 'companionRemote.pairing.cryptoInitFailed' => 'Sichere Verbindung konnte nicht gestartet werden. Melde dich zuerst bei Plex an.', 'companionRemote.pairing.validationHostRequired' => 'Bitte Host-Adresse eingeben', - 'companionRemote.pairing.validationHostFormat' => 'Format muss IP:Port sein (z.B. 192.168.1.100:48632)', - 'companionRemote.pairing.connectionTimedOut' => 'Verbindung hat Zeitlimit überschritten. Nutze auf beiden Geräten dasselbe Netzwerk.', + 'companionRemote.pairing.validationHostFormat' => 'Format muss IP:Port sein (z. B. 192.168.1.100:48632)', + 'companionRemote.pairing.connectionTimedOut' => 'Zeitüberschreitung bei der Verbindung. Nutze auf beiden Geräten dasselbe Netzwerk.', 'companionRemote.pairing.sessionNotFound' => 'Gerät nicht gefunden. Stelle sicher, dass Plezy auf dem Host läuft.', 'companionRemote.pairing.authFailed' => 'Authentifizierung fehlgeschlagen. Beide Geräte benötigen dasselbe Plex-Konto.', 'companionRemote.pairing.failedToConnect' => ({required Object error}) => 'Verbindung fehlgeschlagen: ${error}', @@ -3327,7 +3331,7 @@ extension on TranslationsDe { 'companionRemote.remote.fullscreen' => 'Vollbild', 'companionRemote.remote.subtitles' => 'Untertitel', 'companionRemote.remote.audio' => 'Audio', - 'companionRemote.remote.searchHint' => 'Auf Desktop suchen...', + 'companionRemote.remote.searchHint' => 'Auf dem Desktop suchen …', 'companionRemote.errors.noNetworkInterface' => 'Keine Netzwerkschnittstelle gefunden', 'companionRemote.errors.authenticationFailed' => 'Authentifizierung fehlgeschlagen', 'companionRemote.errors.serverStartFailed' => ({required Object error}) => 'Remote-Server konnte nicht gestartet werden: ${error}', @@ -3402,8 +3406,8 @@ extension on TranslationsDe { 'externalPlayer.playInExternalPlayer' => 'In externem Player abspielen', 'metadataEdit.editMetadata' => 'Bearbeiten...', 'metadataEdit.screenTitle' => 'Metadaten bearbeiten', - 'metadataEdit.basicInfo' => 'Grundlegende Infos', - 'metadataEdit.artwork' => 'Artwork', + 'metadataEdit.basicInfo' => 'Grundinformationen', + 'metadataEdit.artwork' => 'Grafiken', 'metadataEdit.advancedSettings' => 'Erweiterte Einstellungen', 'metadataEdit.title' => 'Titel', 'metadataEdit.sortTitle' => 'Sortiertitel', @@ -3411,7 +3415,7 @@ extension on TranslationsDe { 'metadataEdit.releaseDate' => 'Erscheinungsdatum', 'metadataEdit.contentRating' => 'Altersfreigabe', 'metadataEdit.studio' => 'Studio', - 'metadataEdit.tagline' => 'Tagline', + 'metadataEdit.tagline' => 'Slogan', 'metadataEdit.summary' => 'Zusammenfassung', 'metadataEdit.poster' => 'Poster', 'metadataEdit.background' => 'Hintergrund', @@ -3421,19 +3425,19 @@ extension on TranslationsDe { 'metadataEdit.selectBackground' => 'Hintergrund auswählen', 'metadataEdit.selectLogo' => 'Logo auswählen', 'metadataEdit.selectSquareArt' => 'Quadratisches Bild auswählen', - 'metadataEdit.fromUrl' => 'Von URL', + 'metadataEdit.fromUrl' => 'Über URL', 'metadataEdit.uploadFile' => 'Datei hochladen', 'metadataEdit.enterImageUrl' => 'Bild-URL eingeben', 'metadataEdit.imageUrl' => 'Bild-URL', 'metadataEdit.metadataUpdated' => 'Metadaten aktualisiert', 'metadataEdit.metadataUpdateFailed' => 'Metadaten konnten nicht aktualisiert werden', - 'metadataEdit.artworkUpdated' => 'Artwork aktualisiert', - 'metadataEdit.artworkUpdateFailed' => 'Artwork konnte nicht aktualisiert werden', - 'metadataEdit.noArtworkAvailable' => 'Kein Artwork verfügbar', - 'metadataEdit.artworkOption' => ({required Object index}) => 'Artwork-Option ${index}', - 'metadataEdit.selectedArtworkOption' => ({required Object index}) => 'Artwork-Option ${index}, ausgewählt', + 'metadataEdit.artworkUpdated' => 'Grafiken aktualisiert', + 'metadataEdit.artworkUpdateFailed' => 'Grafiken konnten nicht aktualisiert werden', + 'metadataEdit.noArtworkAvailable' => 'Keine Grafiken verfügbar', + 'metadataEdit.artworkOption' => ({required Object index}) => 'Grafikoption ${index}', + 'metadataEdit.selectedArtworkOption' => ({required Object index}) => 'Grafikoption ${index}, ausgewählt', 'metadataEdit.notSet' => 'Nicht festgelegt', - 'metadataEdit.libraryDefault' => 'Bibliotheksstandard', + 'metadataEdit.libraryDefault' => 'Mediatheksstandard', 'metadataEdit.accountDefault' => 'Kontostandard', 'metadataEdit.seriesDefault' => 'Serienstandard', 'metadataEdit.episodeSorting' => 'Episodensortierung', @@ -3454,9 +3458,9 @@ extension on TranslationsDe { 'metadataEdit.show' => 'Anzeigen', 'metadataEdit.hide' => 'Ausblenden', 'metadataEdit.episodeOrdering' => 'Episodenreihenfolge', - 'metadataEdit.tmdbAiring' => 'The Movie Database (Ausgestrahlt)', - 'metadataEdit.tvdbAiring' => 'TheTVDB (Ausgestrahlt)', - 'metadataEdit.tvdbAbsolute' => 'TheTVDB (Absolut)', + 'metadataEdit.tmdbAiring' => 'The Movie Database (Ausstrahlung)', + 'metadataEdit.tvdbAiring' => 'TheTVDB (Ausstrahlung)', + 'metadataEdit.tvdbAbsolute' => 'TheTVDB (absolut)', 'metadataEdit.metadataLanguage' => 'Metadaten-Sprache', 'metadataEdit.useOriginalTitle' => 'Originaltitel verwenden', 'metadataEdit.preferredAudioLanguage' => 'Bevorzugte Audiosprache', @@ -3554,23 +3558,23 @@ extension on TranslationsDe { 'services.oauthProxy.openToSignIn' => ({required Object service}) => '${service} zum Anmelden öffnen', 'services.oauthProxy.copyUrl' => 'Anmelde-URL kopieren', 'services.oauthProxy.urlCopied' => 'URL kopiert', - 'services.libraryFilter.title' => 'Bibliothekfilter', - 'services.libraryFilter.subtitleAllSyncing' => 'Alle Bibliotheken werden synchronisiert', + 'services.libraryFilter.title' => 'Mediatheksfilter', + 'services.libraryFilter.subtitleAllSyncing' => 'Alle Mediatheken werden synchronisiert', 'services.libraryFilter.subtitleNoneSyncing' => 'Nichts wird synchronisiert', - 'services.libraryFilter.subtitleBlocked' => ({required Object count}) => '${count} blockiert', - 'services.libraryFilter.subtitleAllowed' => ({required Object count}) => '${count} erlaubt', + 'services.libraryFilter.subtitleBlocked' => ({required Object count}) => '${count} ausgeschlossen', + 'services.libraryFilter.subtitleAllowed' => ({required Object count}) => '${count} zugelassen', 'services.libraryFilter.mode' => 'Filtermodus', - 'services.libraryFilter.modeBlacklist' => 'Blacklist', - 'services.libraryFilter.modeWhitelist' => 'Whitelist', - 'services.libraryFilter.modeHintBlacklist' => 'Alle Bibliotheken außer den unten markierten synchronisieren.', - 'services.libraryFilter.modeHintWhitelist' => 'Nur die unten markierten Bibliotheken synchronisieren.', - 'services.libraryFilter.libraries' => 'Bibliotheken', - 'services.libraryFilter.noLibraries' => 'Keine Bibliotheken verfügbar', + 'services.libraryFilter.modeBlacklist' => 'Ausschlussliste', + 'services.libraryFilter.modeWhitelist' => 'Zulassungsliste', + 'services.libraryFilter.modeHintBlacklist' => 'Alle Mediatheken außer den unten markierten synchronisieren.', + 'services.libraryFilter.modeHintWhitelist' => 'Nur die unten markierten Mediatheken synchronisieren.', + 'services.libraryFilter.libraries' => 'Mediatheken', + 'services.libraryFilter.noLibraries' => 'Keine Mediatheken verfügbar', 'addServer.addJellyfinTitle' => 'Jellyfin-Server hinzufügen', 'addServer.serverUrls' => 'Server-URLs', 'addServer.serverUrlsHelper' => 'Mehrere URLs möglich, durch Kommas getrennt.', 'addServer.findServer' => 'Server finden', - 'addServer.searchingLocalServers' => 'Suche nach lokalen Jellyfin-Servern...', + 'addServer.searchingLocalServers' => 'Suche nach lokalen Jellyfin-Servern …', 'addServer.localServers' => 'Lokale Jellyfin-Server', 'addServer.username' => 'Benutzername', 'addServer.password' => 'Passwort', diff --git a/lib/i18n/strings_en.g.dart b/lib/i18n/strings_en.g.dart index 248ee321..db691140 100644 --- a/lib/i18n/strings_en.g.dart +++ b/lib/i18n/strings_en.g.dart @@ -192,8 +192,8 @@ class Translations$common$en { /// en: 'Retry' String get retry => 'Retry'; - /// en: 'Logout' - String get logout => 'Logout'; + /// en: 'Log out' + String get logout => 'Log out'; /// en: 'Unknown' String get unknown => 'Unknown'; @@ -840,8 +840,8 @@ class Translations$settings$en { /// en: 'Folder selection is not available on this device' String get downloadLocationPickerUnavailable => 'Folder selection is not available on this device'; - /// en: 'Download on WiFi only' - String get downloadOnWifiOnly => 'Download on WiFi only'; + /// en: 'Download on Wi-Fi only' + String get downloadOnWifiOnly => 'Download on Wi-Fi only'; /// en: 'Prevent downloads when on cellular data' String get downloadOnWifiOnlyDescription => 'Prevent downloads when on cellular data'; @@ -852,8 +852,8 @@ class Translations$settings$en { /// en: 'Delete watched downloads automatically' String get autoRemoveWatchedDownloadsDescription => 'Delete watched downloads automatically'; - /// en: 'Downloads are blocked on cellular. Use WiFi or change the setting.' - String get cellularDownloadBlocked => 'Downloads are blocked on cellular. Use WiFi or change the setting.'; + /// en: 'Downloads are blocked on cellular. Use Wi-Fi or change the setting.' + String get cellularDownloadBlocked => 'Downloads are blocked on cellular. Use Wi-Fi or change the setting.'; /// en: 'Maximum Volume' String get maxVolume => 'Maximum Volume'; @@ -888,8 +888,8 @@ class Translations$settings$en { /// en: 'Auto Picture-in-Picture' String get autoPip => 'Auto Picture-in-Picture'; - /// en: 'Enter picture-in-picture when leaving during playback' - String get autoPipDescription => 'Enter picture-in-picture when leaving during playback'; + /// en: 'Automatically enter picture-in-picture when you leave the app during playback' + String get autoPipDescription => 'Automatically enter picture-in-picture when you leave the app during playback'; /// en: 'Match Content Frame Rate' String get matchContentFrameRate => 'Match Content Frame Rate'; @@ -1723,8 +1723,8 @@ class Translations$messages$en { /// en: 'The server returned invalid playback information.' String get playbackDataInvalid => 'The server returned invalid playback information.'; - /// en: 'Playback was cancelled.' - String get playbackCancelled => 'Playback was cancelled.'; + /// en: 'Playback was canceled.' + String get playbackCancelled => 'Playback was canceled.'; /// en: 'Playback could not be started.' String get playbackFailed => 'Playback could not be started.'; @@ -1777,8 +1777,8 @@ class Translations$messages$en { /// en: 'Failed to refresh metadata: ${error}' String metadataRefreshFailed({required Object error}) => 'Failed to refresh metadata: ${error}'; - /// en: 'Are you sure you want to logout?' - String get logoutConfirm => 'Are you sure you want to logout?'; + /// en: 'Are you sure you want to log out?' + String get logoutConfirm => 'Are you sure you want to log out?'; /// en: 'No seasons found' String get noSeasonsFound => 'No seasons found'; @@ -1804,8 +1804,8 @@ class Translations$messages$en { /// en: 'No items available' String get noItemsAvailable => 'No items available'; - /// en: 'Failed to create play queue - no items' - String get failedToCreatePlayQueueNoItems => 'Failed to create play queue - no items'; + /// en: 'Failed to create a play queue — no items' + String get failedToCreatePlayQueueNoItems => 'Failed to create a play queue — no items'; /// en: 'Failed to ${action}: ${error}' String failedPlayback({required Object action, required Object error}) => 'Failed to ${action}: ${error}'; @@ -2808,8 +2808,8 @@ class Translations$liveTv$en { /// en: 'Recording not available for this program' String get recordNotAvailable => 'Recording not available for this program'; - /// en: 'Recording cancelled' - String get recordingCancelled => 'Recording cancelled'; + /// en: 'Recording canceled' + String get recordingCancelled => 'Recording canceled'; /// en: 'Recording rule deleted' String get recordingRuleDeleted => 'Recording rule deleted'; @@ -3246,8 +3246,8 @@ class Translations$watchTogether$en { /// en: '${name} resumed' String participantResumed({required Object name}) => '${name} resumed'; - /// en: '${name} seeked' - String participantSeeked({required Object name}) => '${name} seeked'; + /// en: '${name} changed the playback position' + String participantSeeked({required Object name}) => '${name} changed the playback position'; /// en: '${name} is buffering' String participantBuffering({required Object name}) => '${name} is buffering'; @@ -3339,11 +3339,11 @@ class Translations$downloads$en { /// en: 'Delete "${title}" from this device?' String deleteConfirm({required Object title}) => 'Delete "${title}" from this device?'; - /// en: 'Cancelled Download' - String get cancelledDownloadTitle => 'Cancelled Download'; + /// en: 'Canceled Download' + String get cancelledDownloadTitle => 'Canceled Download'; - /// en: 'This download was cancelled. What would you like to do?' - String get cancelledDownloadMessage => 'This download was cancelled. What would you like to do?'; + /// en: 'This download was canceled. What would you like to do?' + String get cancelledDownloadMessage => 'This download was canceled. What would you like to do?'; /// en: 'All episodes already downloaded' String get allEpisodesAlreadyDownloaded => 'All episodes already downloaded'; @@ -3351,8 +3351,8 @@ class Translations$downloads$en { /// en: 'Resume download' String get resumeDownload => 'Resume download'; - /// en: 'Cancelled download' - String get cancelledDownload => 'Cancelled download'; + /// en: 'Canceled download' + String get cancelledDownload => 'Canceled download'; /// en: '${file} (syncing ${status})' String syncingFile({required Object file, required Object status}) => '${file} (syncing ${status})'; @@ -4118,8 +4118,8 @@ class Translations$trakt$en { /// en: 'Sync watched status' String get watchedSync => 'Sync watched status'; - /// en: 'When you mark items watched in Plezy, mark them on Trakt.' - String get watchedSyncDescription => 'When you mark items watched in Plezy, mark them on Trakt.'; + /// en: 'When you mark items as watched in Plezy, they are also marked as watched on Trakt.' + String get watchedSyncDescription => 'When you mark items as watched in Plezy, they are also marked as watched on Trakt.'; } // Path: seerr @@ -4765,8 +4765,8 @@ class Translations$companionRemote$pairing$en { /// en: 'No devices found on your network' String get noDevicesFound => 'No devices found on your network'; - /// en: 'Open Plezy on desktop and use the same WiFi' - String get noDevicesHint => 'Open Plezy on desktop and use the same WiFi'; + /// en: 'Open Plezy on desktop and use the same Wi-Fi' + String get noDevicesHint => 'Open Plezy on desktop and use the same Wi-Fi'; /// en: 'Available Devices' String get availableDevices => 'Available Devices'; @@ -5069,7 +5069,7 @@ extension on Translations { 'common.submit' => 'Submit', 'common.confirm' => 'Confirm', 'common.retry' => 'Retry', - 'common.logout' => 'Logout', + 'common.logout' => 'Log out', 'common.unknown' => 'Unknown', 'common.refresh' => 'Refresh', 'common.yes' => 'Yes', @@ -5276,11 +5276,11 @@ extension on Translations { 'settings.downloadLocationReset' => 'Download location reset to default', 'settings.downloadLocationInvalid' => 'Selected folder is not writable', 'settings.downloadLocationPickerUnavailable' => 'Folder selection is not available on this device', - 'settings.downloadOnWifiOnly' => 'Download on WiFi only', + 'settings.downloadOnWifiOnly' => 'Download on Wi-Fi only', 'settings.downloadOnWifiOnlyDescription' => 'Prevent downloads when on cellular data', 'settings.autoRemoveWatchedDownloads' => 'Auto-remove watched downloads', 'settings.autoRemoveWatchedDownloadsDescription' => 'Delete watched downloads automatically', - 'settings.cellularDownloadBlocked' => 'Downloads are blocked on cellular. Use WiFi or change the setting.', + 'settings.cellularDownloadBlocked' => 'Downloads are blocked on cellular. Use Wi-Fi or change the setting.', 'settings.maxVolume' => 'Maximum Volume', 'settings.maxVolumeDescription' => 'Allow volume boost above 100% for quiet media', 'settings.maxVolumePercent' => ({required Object percent}) => '${percent}%', @@ -5292,7 +5292,7 @@ extension on Translations { 'settings.companionRemoteServer' => 'Companion Remote Server', 'settings.companionRemoteServerDescription' => 'Allow mobile devices on your network to control this app', 'settings.autoPip' => 'Auto Picture-in-Picture', - 'settings.autoPipDescription' => 'Enter picture-in-picture when leaving during playback', + 'settings.autoPipDescription' => 'Automatically enter picture-in-picture when you leave the app during playback', 'settings.matchContentFrameRate' => 'Match Content Frame Rate', 'settings.matchContentFrameRateDescription' => 'Match display refresh rate to video content', 'settings.matchRefreshRate' => 'Match Refresh Rate', @@ -5572,7 +5572,7 @@ extension on Translations { 'messages.playbackAuthenticationRequired' => 'Sign in to the media server again to play this item.', 'messages.playbackServerUnavailable' => 'The media server is unavailable. Try again later.', 'messages.playbackDataInvalid' => 'The server returned invalid playback information.', - 'messages.playbackCancelled' => 'Playback was cancelled.', + 'messages.playbackCancelled' => 'Playback was canceled.', 'messages.playbackFailed' => 'Playback could not be started.', 'messages.errorLoadingFileInfo' => ({required Object error}) => 'Error loading file info: ${error}', 'messages.errorLoadingSeries' => 'Error loading series', @@ -5590,7 +5590,7 @@ extension on Translations { 'messages.metadataRefreshing' => ({required Object title}) => 'Refreshing metadata for "${title}"...', 'messages.metadataRefreshStarted' => ({required Object title}) => 'Metadata refresh started for "${title}"', 'messages.metadataRefreshFailed' => ({required Object error}) => 'Failed to refresh metadata: ${error}', - 'messages.logoutConfirm' => 'Are you sure you want to logout?', + 'messages.logoutConfirm' => 'Are you sure you want to log out?', 'messages.noSeasonsFound' => 'No seasons found', 'messages.seasonsLoadFailed' => 'Couldn\'t load seasons', 'messages.noEpisodesFound' => 'No episodes found in first season', @@ -5599,7 +5599,7 @@ extension on Translations { 'messages.noResultsFound' => 'No results found', 'messages.sleepTimerSet' => ({required Object label}) => 'Sleep timer set for ${label}', 'messages.noItemsAvailable' => 'No items available', - 'messages.failedToCreatePlayQueueNoItems' => 'Failed to create play queue - no items', + 'messages.failedToCreatePlayQueueNoItems' => 'Failed to create a play queue — no items', 'messages.failedPlayback' => ({required Object action, required Object error}) => 'Failed to ${action}: ${error}', 'messages.switchingToCompatiblePlayer' => 'Switching to compatible player...', 'messages.serverLimitTitle' => 'Playback failed', @@ -5941,7 +5941,7 @@ extension on Translations { 'liveTv.recordingFailed' => 'Couldn\'t schedule recording', 'liveTv.recordingTargetMissing' => 'Couldn\'t determine recording library', 'liveTv.recordNotAvailable' => 'Recording not available for this program', - 'liveTv.recordingCancelled' => 'Recording cancelled', + 'liveTv.recordingCancelled' => 'Recording canceled', 'liveTv.recordingRuleDeleted' => 'Recording rule deleted', 'liveTv.processRecordingRules' => 'Re-evaluate rules', 'liveTv.recordingInProgress' => 'Recording now', @@ -6076,7 +6076,7 @@ extension on Translations { 'watchTogether.participantLeft' => ({required Object name}) => '${name} left', 'watchTogether.participantPaused' => ({required Object name}) => '${name} paused', 'watchTogether.participantResumed' => ({required Object name}) => '${name} resumed', - 'watchTogether.participantSeeked' => ({required Object name}) => '${name} seeked', + 'watchTogether.participantSeeked' => ({required Object name}) => '${name} changed the playback position', 'watchTogether.participantBuffering' => ({required Object name}) => '${name} is buffering', 'watchTogether.participantNeedsUpdate' => ({required Object name}) => '${name} is on an older app version — sync unavailable', 'watchTogether.resumingWithout' => ({required Object name}) => 'Resuming without ${name}', @@ -6104,11 +6104,11 @@ extension on Translations { 'downloads.episodesQueued' => ({required Object count}) => '${count} episodes queued for download', 'downloads.downloadDeleted' => 'Download deleted', 'downloads.deleteConfirm' => ({required Object title}) => 'Delete "${title}" from this device?', - 'downloads.cancelledDownloadTitle' => 'Cancelled Download', - 'downloads.cancelledDownloadMessage' => 'This download was cancelled. What would you like to do?', + 'downloads.cancelledDownloadTitle' => 'Canceled Download', + 'downloads.cancelledDownloadMessage' => 'This download was canceled. What would you like to do?', 'downloads.allEpisodesAlreadyDownloaded' => 'All episodes already downloaded', 'downloads.resumeDownload' => 'Resume download', - 'downloads.cancelledDownload' => 'Cancelled download', + 'downloads.cancelledDownload' => 'Canceled download', 'downloads.syncingFile' => ({required Object file, required Object status}) => '${file} (syncing ${status})', 'downloads.downloadedFileClickToComplete' => ({required Object file}) => 'Downloaded ${file} - Click to complete', 'downloads.partialDownloadClickToComplete' => 'Partially downloaded - Click to complete', @@ -6188,7 +6188,7 @@ extension on Translations { 'companionRemote.pairing.connecting' => 'Connecting...', 'companionRemote.pairing.searchingForDevices' => 'Looking for devices...', 'companionRemote.pairing.noDevicesFound' => 'No devices found on your network', - 'companionRemote.pairing.noDevicesHint' => 'Open Plezy on desktop and use the same WiFi', + 'companionRemote.pairing.noDevicesHint' => 'Open Plezy on desktop and use the same Wi-Fi', 'companionRemote.pairing.availableDevices' => 'Available Devices', 'companionRemote.pairing.manualConnection' => 'Manual Connection', 'companionRemote.pairing.cryptoInitFailed' => 'Couldn\'t start secure connection. Sign in to Plex first.', @@ -6396,7 +6396,7 @@ extension on Translations { 'trakt.scrobble' => 'Real-time scrobbling', 'trakt.scrobbleDescription' => 'Send play, pause, and stop events to Trakt during playback.', 'trakt.watchedSync' => 'Sync watched status', - 'trakt.watchedSyncDescription' => 'When you mark items watched in Plezy, mark them on Trakt.', + 'trakt.watchedSyncDescription' => 'When you mark items as watched in Plezy, they are also marked as watched on Trakt.', 'seerr.title' => 'Seerr', 'seerr.connectTitle' => 'Connect Seerr', 'seerr.serverUrl' => 'Server URL', diff --git a/lib/i18n/strings_es.g.dart b/lib/i18n/strings_es.g.dart index 54291326..1132c77b 100644 --- a/lib/i18n/strings_es.g.dart +++ b/lib/i18n/strings_es.g.dart @@ -110,7 +110,7 @@ class _Translations$auth$es extends Translations$auth$en { @override String get signInWithPlex => 'Inicia sesión con Plex'; @override String get showQRCode => 'Mostrar código QR'; @override String get authenticate => 'Autenticar'; - @override String get authenticationTimeout => 'Tiempo de autenticación agotado. Por favor, intenta de nuevo.'; + @override String get authenticationTimeout => 'Se agotó el tiempo de autenticación. Inténtalo de nuevo.'; @override String get scanQRToSignIn => 'Escanea este código QR para iniciar sesión'; @override String get waitingForAuth => 'Esperando autenticación...\nInicia sesión desde tu navegador.'; @override String get useBrowser => 'Usar navegador'; @@ -121,7 +121,7 @@ class _Translations$auth$es extends Translations$auth$en { @override String get quickConnectWaiting => 'Esperando aprobación…'; @override String get quickConnectCancel => 'Cancelar'; @override String get quickConnectExpired => 'Quick Connect caducó. Inténtalo de nuevo.'; - @override String get localDataRecoveryRequired => 'Plezy could not safely recover local sign-in and pending playback data. Please sign in again.'; + @override String get localDataRecoveryRequired => 'Plezy no pudo recuperar de forma segura los datos locales de inicio de sesión ni la reproducción pendiente. Vuelve a iniciar sesión.'; } // Path: common @@ -135,7 +135,7 @@ class _Translations$common$es extends Translations$common$en { @override String get save => 'Guardar'; @override String get close => 'Cerrar'; @override String get clear => 'Borrar'; - @override String get reset => 'Reiniciar'; + @override String get reset => 'Restablecer'; @override String get later => 'Más tarde'; @override String get submit => 'Enviar'; @override String get confirm => 'Confirmar'; @@ -147,20 +147,20 @@ class _Translations$common$es extends Translations$common$en { @override String get no => 'No'; @override String get delete => 'Eliminar'; @override String get edit => 'Editar'; - @override String get shuffle => 'Aleatorio'; + @override String get shuffle => 'Reproducción aleatoria'; @override String get addTo => 'Añadir a...'; @override String get createNew => 'Crear'; @override String get connect => 'Conectar'; @override String get disconnect => 'Desconectar'; @override String get play => 'Reproducir'; - @override String get pause => 'Pausa'; + @override String get pause => 'Pausar'; @override String get resume => 'Reanudar'; @override String get error => 'Error'; @override String get search => 'Buscar'; @override String get home => 'Inicio'; @override String get back => 'Atrás'; @override String get settings => 'Ajustes'; - @override String get mute => 'Silencio'; + @override String get mute => 'Silenciar'; @override String get ok => 'OK'; @override String get off => 'Desactivado'; @override String seasonNumber({required Object number}) => 'Temporada ${number}'; @@ -175,7 +175,7 @@ class _Translations$common$es extends Translations$common$en { @override String get loading => 'Cargando...'; @override String get fullscreen => 'Pantalla completa'; @override String get exitFullscreen => 'Salir de pantalla completa'; - @override String get pressBackAgainToExit => 'Presiona atrás otra vez para salir'; + @override String get pressBackAgainToExit => 'Pulsa Atrás de nuevo para salir'; } // Path: screens @@ -186,10 +186,10 @@ class _Translations$screens$es extends Translations$screens$en { // Translations @override String get licenses => 'Licencias'; - @override String get switchProfile => 'Cambiar Perfil'; - @override String get subtitleStyling => 'Estilo de Subtítulos'; + @override String get switchProfile => 'Cambiar perfil'; + @override String get subtitleStyling => 'Estilo de subtítulos'; @override String get mpvConfig => 'mpv.conf'; - @override String get logs => 'Logs'; + @override String get logs => 'Registros'; } // Path: update @@ -221,54 +221,56 @@ class _Translations$settings$es extends Translations$settings$en { @override String get language => 'Idioma'; @override String get theme => 'Tema'; @override String get appearance => 'Apariencia'; - @override String get videoPlayback => 'Reproducción de Video'; + @override String get videoPlayback => 'Reproducción de video'; @override String get videoPlaybackDescription => 'Configurar el comportamiento de reproducción'; @override String get advanced => 'Avanzado'; - @override String get episodePosterMode => 'Estilo de Póster de Episodio'; - @override String get seriesPoster => 'Póster de Serie'; - @override String get seasonPoster => 'Póster de Temporada'; + @override String get episodePosterMode => 'Estilo del póster de episodio'; + @override String get seriesPoster => 'Póster de la serie'; + @override String get seasonPoster => 'Póster de la temporada'; @override String get episodeThumbnail => 'Miniatura'; @override String get showHeroSectionDescription => 'Mostrar carrusel de contenido destacado en la pantalla de inicio'; @override String get secondsLabel => 'Segundos'; @override String get minutesLabel => 'Minutos'; @override String get secondsShort => 's'; @override String get minutesShort => 'm'; - @override String durationHint({required Object min, required Object max}) => 'Ingresa la duración (${min}-${max})'; + @override String durationHint({required Object min, required Object max}) => 'Introduce la duración (${min}-${max})'; @override String get systemTheme => 'Sistema'; @override String get lightTheme => 'Claro'; @override String get darkTheme => 'Oscuro'; @override String get oledTheme => 'OLED'; - @override String get libraryDensity => 'Densidad de Biblioteca'; + @override String get libraryDensity => 'Densidad de la biblioteca'; @override String get compact => 'Compacto'; @override String get comfortable => 'Cómodo'; - @override String get viewMode => 'Modo de Vista'; + @override String get tvCornerSpotlightBackdrop => 'Imagen destacada en la esquina'; + @override String get tvCornerSpotlightBackdropDescription => 'Mostrar la imagen destacada en la esquina superior derecha en lugar de ocupar toda la pantalla'; + @override String get viewMode => 'Modo de vista'; @override String get gridView => 'Cuadrícula'; @override String get listView => 'Lista'; - @override String get showHeroSection => 'Mostrar Sección Destacada'; - @override String get continueWatchingAction => 'Acción de Seguir viendo'; + @override String get showHeroSection => 'Mostrar sección destacada'; + @override String get continueWatchingAction => 'Acción de «Seguir viendo»'; @override String get continueWatchingPlay => 'Reproducir'; @override String get continueWatchingDetails => 'Abrir detalles'; @override String get episodeAction => 'Acción de episodio'; @override String get episodePlay => 'Reproducir'; @override String get episodeDetails => 'Abrir detalles'; - @override String get useGlobalHubs => 'Usar diseño de inicio'; - @override String get useGlobalHubsDescription => 'Mostrar hubs de inicio unificados. Si no, usar recomendaciones de biblioteca.'; - @override String get showServerNameOnHubs => 'Mostrar Nombre del Servidor en los Hubs'; - @override String get showServerNameOnHubsDescription => 'Mostrar siempre nombres de servidor en títulos de hub.'; + @override String get useGlobalHubs => 'Usar secciones de inicio'; + @override String get useGlobalHubsDescription => 'Mostrar secciones de inicio unificadas. De lo contrario, usar las recomendaciones de cada biblioteca.'; + @override String get showServerNameOnHubs => 'Mostrar el nombre del servidor en las secciones'; + @override String get showServerNameOnHubsDescription => 'Mostrar siempre el nombre del servidor en los títulos de las secciones.'; @override String get groupLibrariesByServer => 'Agrupar bibliotecas por servidor'; @override String get groupLibrariesByServerDescription => 'Agrupar bibliotecas de la barra lateral por servidor multimedia.'; @override String get alwaysKeepSidebarOpen => 'Mantener siempre la barra lateral abierta'; @override String get alwaysKeepSidebarOpenDescription => 'La barra lateral permanece expandida y el área de contenido se ajusta para adaptarse'; - @override String get showUnwatchedCount => 'Mostrar conteo de no vistos'; - @override String get showUnwatchedCountDescription => 'Mostrar el conteo de episodios no vistos en series y temporadas'; + @override String get showUnwatchedCount => 'Mostrar el número de elementos no vistos'; + @override String get showUnwatchedCountDescription => 'Mostrar el número de episodios no vistos en series y temporadas'; @override String get showEpisodeNumberOnCards => 'Mostrar número de episodio en las tarjetas'; @override String get showEpisodeNumberOnCardsDescription => 'Mostrar temporada y episodio en tarjetas de episodio'; @override String get showSeasonPostersOnTabs => 'Mostrar pósters de temporada en las pestañas'; @override String get showSeasonPostersOnTabsDescription => 'Mostrar el póster de cada temporada sobre su pestaña'; @override String get tvFullCardLayout => 'Tarjetas TV completas'; @override String get tvFullCardLayoutDescription => 'Usar tarjetas TV solo con imagen y nombres de actores superpuestos'; - @override String get focusGlow => 'Brillo de foco'; - @override String get focusGlowDescription => 'Mostrar un brillo suave alrededor de la tarjeta con foco'; + @override String get focusGlow => 'Resplandor de selección'; + @override String get focusGlowDescription => 'Mostrar un resplandor suave alrededor de la tarjeta seleccionada'; @override String get visualEffects => 'Efectos visuales'; @override String get visualEffectsAuto => 'Automático'; @override String get visualEffectsAutoDescription => 'Reduce automáticamente los efectos en dispositivos de bajo consumo'; @@ -277,18 +279,18 @@ class _Translations$settings$es extends Translations$settings$en { @override String get visualEffectsReducedDescription => 'Menos animaciones e ilustraciones de menor resolución'; @override String get hideSpoilers => 'Ocultar spoilers de episodios no vistos'; @override String get hideSpoilersDescription => 'Desenfocar miniaturas y descripciones de episodios no vistos'; - @override String get playerBackend => 'Reproductor'; + @override String get playerBackend => 'Motor de reproducción'; @override String get exoPlayer => 'ExoPlayer'; @override String get mpv => 'mpv'; - @override String get hardwareDecoding => 'Decodificación por Hardware'; + @override String get hardwareDecoding => 'Decodificación por hardware'; @override String get hardwareDecodingDescription => 'Usar aceleración por hardware cuando esté disponible'; - @override String get bufferSize => 'Tamaño del Buffer'; - @override String bufferSizeMB({required Object size}) => '${size}MB'; - @override String get bufferSizeAuto => 'Auto (Recomendado)'; - @override String bufferSizeWarning({required Object heap, required Object size}) => '${heap}MB de memoria disponible. Un búfer de ${size}MB puede afectar la reproducción.'; + @override String get bufferSize => 'Tamaño del búfer'; + @override String bufferSizeMB({required Object size}) => '${size} MB'; + @override String get bufferSizeAuto => 'Automático (recomendado)'; + @override String bufferSizeWarning({required Object heap, required Object size}) => '${heap} MB de memoria disponible. Un búfer de ${size} MB puede afectar a la reproducción.'; @override String get defaultQualityTitle => 'Calidad predeterminada'; @override String get musicQualityTitle => 'Calidad de música'; - @override String get subtitleStyling => 'Estilo de Subtítulos'; + @override String get subtitleStyling => 'Estilo de subtítulos'; @override String get subtitleStylingDescription => 'Personalizar la apariencia de los subtítulos'; @override String get smallSkipDuration => 'Salto pequeño'; @override String get largeSkipDuration => 'Salto grande'; @@ -302,32 +304,32 @@ class _Translations$settings$es extends Translations$settings$en { @override String get showChapterMarkersOnTimelineDescription => 'Dividir la barra de progreso en los límites de capítulos'; @override String get clickVideoTogglesPlayback => 'Clic en el video para reproducir/pausar'; @override String get clickVideoTogglesPlaybackDescription => 'Haz clic en el video para reproducir/pausar en vez de mostrar controles.'; - @override String get videoPlayerControls => 'Controles del Reproductor de Video'; - @override String get keyboardShortcuts => 'Atajos de Teclado'; + @override String get videoPlayerControls => 'Controles del reproductor de video'; + @override String get keyboardShortcuts => 'Atajos de teclado'; @override String get keyboardShortcutsDescription => 'Personalizar los atajos de teclado'; - @override String get videoPlayerNavigation => 'Navegación del Reproductor de Video'; + @override String get videoPlayerNavigation => 'Navegación del reproductor de video'; @override String get videoPlayerNavigationDescription => 'Usar las teclas de flecha para navegar por los controles del reproductor'; - @override String get watchTogetherRelay => 'Relay de Ver Juntos'; - @override String get watchTogetherRelayDescription => 'Define un relay personalizado. Todos deben usar el mismo servidor.'; + @override String get watchTogetherRelay => 'Servidor de retransmisión de Ver juntos'; + @override String get watchTogetherRelayDescription => 'Configura un servidor de retransmisión personalizado. Todos deben usar el mismo servidor.'; @override String get watchTogetherRelayHint => 'https://mi-relay.ejemplo.com'; - @override String get watchTogetherRelayInvalid => 'Enter a valid HTTP or HTTPS relay base URL.'; - @override String get crashReporting => 'Informes de Errores'; + @override String get watchTogetherRelayInvalid => 'Introduce una URL base HTTP o HTTPS válida para el servidor de retransmisión.'; + @override String get crashReporting => 'Informes de errores'; @override String get crashReportingDescription => 'Enviar informes de errores para mejorar la aplicación'; - @override String get debugLogging => 'Registro de Depuración'; - @override String get debugLoggingDescription => 'Habilitar registros detallados para resolución de problemas'; - @override String get viewLogs => 'Ver Logs'; + @override String get debugLogging => 'Registro de depuración'; + @override String get debugLoggingDescription => 'Habilitar registros detallados para solucionar problemas'; + @override String get viewLogs => 'Ver registros'; @override String get viewLogsDescription => 'Ver los registros de la aplicación'; - @override String get clearCache => 'Borrar Caché'; + @override String get clearCache => 'Borrar caché'; @override String get clearCacheDescription => 'Borrar imágenes y datos en caché. El contenido puede cargar más lento.'; @override String get clearCacheSuccess => 'Caché borrada con éxito'; - @override String get resetSettings => 'Restablecer Configuración'; + @override String get resetSettings => 'Restablecer configuración'; @override String get resetSettingsDescription => 'Restaurar ajustes predeterminados. No se puede deshacer.'; @override String get resetSettingsSuccess => 'Configuración restablecida con éxito'; @override String get backup => 'Copia de seguridad'; - @override String get exportSettings => 'Exportar Configuración'; + @override String get exportSettings => 'Exportar configuración'; @override String get exportSettingsDescription => 'Guardar tus preferencias en un archivo'; @override String get exportSettingsSuccess => 'Configuración exportada'; - @override String get importSettings => 'Importar Configuración'; + @override String get importSettings => 'Importar configuración'; @override String get importSettingsDescription => 'Restaurar preferencias desde un archivo'; @override String get importSettingsConfirm => 'Esto reemplazará tu configuración actual. ¿Continuar?'; @override String get importSettingsSuccess => 'Configuración importada'; @@ -341,29 +343,29 @@ class _Translations$settings$es extends Translations$settings$en { @override String get checkForUpdates => 'Buscar actualizaciones'; @override String get autoCheckUpdatesOnStartup => 'Buscar actualizaciones automáticamente al iniciar'; @override String get autoCheckUpdatesOnStartupDescription => 'Avisar al iniciar si hay una actualización disponible'; - @override String get validationErrorEnterNumber => 'Por favor, introduce un número válido'; + @override String get validationErrorEnterNumber => 'Introduce un número válido'; @override String validationErrorDuration({required Object min, required Object max, required Object unit}) => 'La duración debe estar entre ${min} y ${max} ${unit}'; @override String shortcutAlreadyAssigned({required Object action}) => 'El atajo ya está asignado a ${action}'; @override String shortcutUpdated({required Object action}) => 'Atajo actualizado para ${action}'; - @override String get saveFailed => 'Could not save changes. Try again.'; + @override String get saveFailed => 'No se pudieron guardar los cambios. Inténtalo de nuevo.'; @override String get autoSkip => 'Salto automático'; - @override String get autoSkipIntro => 'Saltar Intro automáticamente'; - @override String get autoSkipIntroDescription => 'Saltar automáticamente los marcadores de intro después de unos segundos'; - @override String get autoSkipCredits => 'Saltar Créditos automáticamente'; - @override String get autoSkipCreditsDescription => 'Saltar automáticamente los créditos y reproducir el siguiente episodio'; + @override String get autoSkipIntro => 'Saltar introducción automáticamente'; + @override String get autoSkipIntroDescription => 'Saltar automáticamente los marcadores de introducción después de unos segundos'; + @override String get autoSkipCredits => 'Saltar créditos automáticamente'; + @override String get autoSkipCreditsDescription => 'Saltar automáticamente los créditos y reproducir el episodio siguiente'; @override String get forceSkipMarkerFallback => 'Forzar marcadores alternativos'; @override String get forceSkipMarkerFallbackDescription => 'Usar patrones de títulos de capítulos aunque Plex tenga marcadores'; - @override String get autoSkipDelay => 'Retraso de Salto automático'; + @override String get autoSkipDelay => 'Retraso del salto automático'; @override String autoSkipDelayDescription({required Object seconds}) => 'Esperar ${seconds} segundos antes de saltar automáticamente'; - @override String get introPattern => 'Patrón de marcador de intro'; - @override String get introPatternDescription => 'Expresión regular para reconocer marcadores de intro en los títulos de capítulos'; + @override String get introPattern => 'Patrón de marcador de introducción'; + @override String get introPatternDescription => 'Expresión regular para reconocer marcadores de introducción en los títulos de los capítulos'; @override String get creditsPattern => 'Patrón de marcador de créditos'; - @override String get creditsPatternDescription => 'Expresión regular para reconocer marcadores de créditos en los títulos de capítulos'; + @override String get creditsPatternDescription => 'Expresión regular para reconocer marcadores de créditos en los títulos de los capítulos'; @override String get invalidRegex => 'Expresión regular no válida'; @override String get regex => 'Expresión regular'; @override String get downloads => 'Descargas'; @override String get downloadLocationDescription => 'Elegir dónde almacenar el contenido descargado'; - @override String get downloadLocationDefault => 'Predeterminado (Almacenamiento de la App)'; + @override String get downloadLocationDefault => 'Predeterminado (almacenamiento de la aplicación)'; @override String get downloadLocationCustom => 'Ubicación personalizada'; @override String get selectFolder => 'Seleccionar carpeta'; @override String get resetToDefault => 'Restablecer al predeterminado'; @@ -377,7 +379,7 @@ class _Translations$settings$es extends Translations$settings$en { @override String get autoRemoveWatchedDownloads => 'Eliminar descargas vistas automáticamente'; @override String get autoRemoveWatchedDownloadsDescription => 'Eliminar automáticamente descargas vistas'; @override String get cellularDownloadBlocked => 'Las descargas están bloqueadas en red móvil. Usa WiFi o cambia el ajuste.'; - @override String get maxVolume => 'Volumen Máximo'; + @override String get maxVolume => 'Volumen máximo'; @override String get maxVolumeDescription => 'Permitir aumento de volumen por encima del 100% para medios con sonido bajo'; @override String maxVolumePercent({required Object percent}) => '${percent}%'; @override String get discordRichPresence => 'Presencia de Discord'; @@ -388,7 +390,7 @@ class _Translations$settings$es extends Translations$settings$en { @override String get companionRemoteServer => 'Servidor de control remoto'; @override String get companionRemoteServerDescription => 'Permitir que dispositivos móviles en tu red controlen esta aplicación'; @override String get autoPip => 'Imagen en imagen automática'; - @override String get autoPipDescription => 'Entrar en picture-in-picture al salir durante la reproducción'; + @override String get autoPipDescription => 'Activar automáticamente el modo de imagen en imagen al salir de la aplicación durante la reproducción'; @override String get matchContentFrameRate => 'Ajustar frecuencia de actualización'; @override String get matchContentFrameRateDescription => 'Ajustar la frecuencia de pantalla al contenido de video'; @override String get matchRefreshRate => 'Ajustar frecuencia de refresco'; @@ -398,9 +400,9 @@ class _Translations$settings$es extends Translations$settings$en { @override String get displaySwitchDelay => 'Retraso de cambio de pantalla'; @override String get tunneledPlayback => 'Reproducción tunelizada'; @override String get tunneledPlaybackDescription => 'Usar tunelización de video. Desactívala si HDR muestra video negro.'; - @override String get audioPassthrough => 'Audio Passthrough'; - @override String get audioPassthroughDescription => 'Envía el audio Dolby/DTS a tu receptor o TV sin recodificar, conservando el sonido envolvente. Desactívalo si no tienes sonido.'; - @override String get audioPassthroughDescriptionAppleTv => 'Entrega Dolby Digital Plus (incluido Atmos) al sistema como bitstream. DTS y TrueHD se siguen reproduciendo como PCM multicanal. Pueden producirse breves cortes de audio al buscar.'; + @override String get audioPassthrough => 'Transferencia directa de audio'; + @override String get audioPassthroughDescription => 'Envía el audio Dolby/DTS a tu receptor o TV sin recodificar, conservando el sonido envolvente. Desactívala si no tienes sonido.'; + @override String get audioPassthroughDescriptionAppleTv => 'Usa el decodificador Dolby nativo de Apple para Dolby Digital Plus, incluido Atmos. DTS y TrueHD se siguen reproduciendo como PCM multicanal. Desactívalo si no tienes sonido.'; @override String get audioDownmix => 'Mezclar a estéreo'; @override String get audioDownmixDescription => 'Mezcla el sonido envolvente a dos canales para altavoces estéreo o auriculares'; @override String get downmixCenterBoost => 'Realce del canal central'; @@ -411,12 +413,12 @@ class _Translations$settings$es extends Translations$settings$en { @override String get audioDownmixNormalizeDescription => 'Reduce la mezcla para evitar saturación. Desactívalo para mantener el volumen original (puede distorsionar escenas fuertes).'; @override String get atmosDiagnostics => 'Prueba de salida Atmos'; @override String get atmosDiagnosticsDescription => 'Diagnostica la salida Dolby Atmos reproduciendo señales de prueba con el reproductor del sistema'; - @override String get atmosTestHlsAtmos => 'Stream Atmos de Apple'; - @override String get atmosTestHlsAtmosDescription => 'Stream Dolby Atmos de referencia. El receptor debería mostrar Dolby Atmos.'; - @override String get atmosTestHlsControl => 'Stream surround de Apple'; - @override String get atmosTestHlsControlDescription => 'Stream de control sin Atmos. El receptor debería mostrar surround sin Atmos.'; - @override String get atmosTestRawStream => 'Stream EAC3 sin procesar'; - @override String get atmosTestRawStreamDescription => 'Transmite el archivo de prueba igual que la reproducción Atmos del reproductor. Necesita la URL del archivo de prueba.'; + @override String get atmosTestHlsAtmos => 'Flujo Atmos de Apple'; + @override String get atmosTestHlsAtmosDescription => 'Flujo Dolby Atmos de referencia. El receptor debería mostrar Dolby Atmos.'; + @override String get atmosTestHlsControl => 'Flujo envolvente de Apple'; + @override String get atmosTestHlsControlDescription => 'Flujo de control sin Atmos. El receptor debería indicar sonido envolvente sin Atmos.'; + @override String get atmosTestRawStream => 'Flujo EAC3 sin procesar'; + @override String get atmosTestRawStreamDescription => 'Transmite el archivo de prueba igual que durante la reproducción de Atmos. Requiere la URL del archivo de prueba.'; @override String get atmosTestRawFile => 'Archivo EAC3 sin procesar'; @override String get atmosTestRawFileDescription => 'Reproduce el archivo de prueba con longitud conocida. Necesita la URL del archivo de prueba.'; @override String get atmosTestStop => 'Detener prueba'; @@ -425,23 +427,23 @@ class _Translations$settings$es extends Translations$settings$en { @override String get atmosTestUrlMissing => 'Configura primero la URL del archivo de prueba'; @override String get atmosTestStatus => 'Estado'; @override String get dvConversionMode => 'Conversión de Dolby Vision'; - @override String get dvConversionModeDescription => 'Elige cómo ExoPlayer gestiona archivos Dolby Vision Profile 7.'; + @override String get dvConversionModeDescription => 'Elige cómo gestiona ExoPlayer los archivos Dolby Vision de perfil 7.'; @override String get dvConversionAuto => 'Automático'; @override String get dvConversionNative => 'Nativo / desactivado'; @override String get dvConversionDv81 => 'P7 → P8.1'; @override String get dvConversionHevcStrip => 'P7 → HEVC'; - @override String get dvConversionAutoDescription => 'Usar detección de capacidades del dispositivo y el comportamiento de respaldo normal'; + @override String get dvConversionAutoDescription => 'Usar la detección de capacidades del dispositivo y el comportamiento alternativo normal'; @override String get dvConversionNativeDescription => 'Forzar DV7 nativo y suprimir el reintento de conversión DV'; - @override String get dvConversionDv81Description => 'Forzar conversión RPU en línea a Dolby Vision perfil 8.1'; - @override String get dvConversionHevcStripDescription => 'Quitar capas RPU/EL de Dolby Vision y presentar HEVC normal'; - @override String get requireProfileSelectionOnOpen => 'Pedir perfil al abrir la app'; + @override String get dvConversionDv81Description => 'Forzar la conversión de RPU en línea al perfil 8.1 de Dolby Vision'; + @override String get dvConversionHevcStripDescription => 'Eliminar las capas RPU/EL de Dolby Vision y presentar HEVC convencional'; + @override String get requireProfileSelectionOnOpen => 'Pedir perfil al abrir la aplicación'; @override String get requireProfileSelectionOnOpenDescription => 'Mostrar selección de perfil cada vez que se abre la aplicación'; @override String get forceTvMode => 'Forzar modo TV'; @override String get forceTvModeDescription => 'Forzar diseño TV. Para dispositivos que no lo detectan. Requiere reinicio.'; @override String get startInFullscreen => 'Iniciar en pantalla completa'; @override String get startInFullscreenDescription => 'Abrir Plezy en modo pantalla completa al iniciar'; @override String get exitFullscreenOnPlayerClose => 'Salir de pantalla completa al cerrar el reproductor'; - @override String get exitFullscreenOnPlayerCloseDescription => 'Salir automáticamente del modo de pantalla completa al cerrar el reproductor de vídeo'; + @override String get exitFullscreenOnPlayerCloseDescription => 'Salir automáticamente del modo de pantalla completa al cerrar el reproductor de video'; @override String get autoHidePerformanceOverlay => 'Ocultar superposición de rendimiento automáticamente'; @override String get autoHidePerformanceOverlayDescription => 'Desvanecer la superposición de rendimiento con los controles de reproducción'; @override String get showNavBarLabels => 'Mostrar etiquetas de la barra de navegación'; @@ -456,7 +458,7 @@ class _Translations$settings$es extends Translations$settings$en { @override String get content => 'Contenido'; @override String get player => 'Reproductor'; @override String get subtitlesAndConfig => 'Subtítulos y configuración'; - @override String get seekAndTiming => 'Búsqueda y tiempo'; + @override String get seekAndTiming => 'Desplazamiento y tiempos'; @override String get behavior => 'Comportamiento'; } @@ -485,7 +487,7 @@ class _Translations$hotkeys$es extends Translations$hotkeys$en { @override String get noShortcutSet => 'Sin atajo asignado'; @override String get currentShortcut => 'Atajo actual:'; @override String get pressToRecord => 'Seleccionar para grabar un atajo'; - @override String get recordingShortcut => 'Presiona el atajo ahora'; + @override String get recordingShortcut => 'Pulsa el atajo ahora'; @override late final _Translations$hotkeys$actions$es actions = _Translations$hotkeys$actions$es._(_root); } @@ -496,14 +498,14 @@ class _Translations$fileInfo$es extends Translations$fileInfo$en { final TranslationsEs _root; // ignore: unused_field // Translations - @override String get title => 'Información del Archivo'; + @override String get title => 'Información del archivo'; @override String get video => 'Video'; @override String get audio => 'Audio'; @override String get file => 'Archivo'; @override String get advanced => 'Avanzado'; @override String get codec => 'Códec'; @override String get resolution => 'Resolución'; - @override String get bitrate => 'Bitrate'; + @override String get bitrate => 'Tasa de bits'; @override String get frameRate => 'Frecuencia de fotogramas'; @override String get aspectRatio => 'Relación de aspecto'; @override String get profile => 'Perfil'; @@ -514,13 +516,13 @@ class _Translations$fileInfo$es extends Translations$fileInfo$en { @override String get chromaSubsampling => 'Submuestreo de croma'; @override String get channels => 'Canales'; @override String get subtitles => 'Subtítulos'; - @override String get overallBitrate => 'Bitrate total'; + @override String get overallBitrate => 'Tasa de bits total'; @override String get path => 'Ruta'; @override String get size => 'Tamaño'; @override String get container => 'Contenedor'; @override String get duration => 'Duración'; - @override String get optimizedForStreaming => 'Optimizado para streaming'; - @override String get has64bitOffsets => 'Offsets de 64 bits'; + @override String get optimizedForStreaming => 'Optimizado para transmisión'; + @override String get has64bitOffsets => 'Desplazamientos de 64 bits'; } // Path: mediaMenu @@ -530,14 +532,14 @@ class _Translations$mediaMenu$es extends Translations$mediaMenu$en { final TranslationsEs _root; // ignore: unused_field // Translations - @override String get markAsWatched => 'Marcar como Visto'; - @override String get markAsUnwatched => 'Marcar como No Visto'; - @override String get removeFromContinueWatching => 'Eliminar de Seguir Viendo'; + @override String get markAsWatched => 'Marcar como visto'; + @override String get markAsUnwatched => 'Marcar como no visto'; + @override String get removeFromContinueWatching => 'Eliminar de Seguir viendo'; @override String get viewDetails => 'Ver detalles'; @override String get goToSeries => 'Ir a la serie'; - @override String get shufflePlay => 'Reproducción Aleatoria'; + @override String get shufflePlay => 'Reproducción aleatoria'; @override String get shuffleNotAvailableOffline => 'La reproducción aleatoria no está disponible sin conexión'; - @override String get fileInfo => 'Información del Archivo'; + @override String get fileInfo => 'Información del archivo'; @override String get deleteFromServer => 'Eliminar del servidor'; @override String get confirmDelete => '¿Eliminar este medio y sus archivos de tu servidor?'; @override String get deleteMultipleWarning => 'Esto incluye todos los episodios y sus archivos.'; @@ -561,7 +563,7 @@ class _Translations$rateSheet$es extends Translations$rateSheet$en { @override String get favorited => 'Marcado como favorito'; @override String get saved => 'Guardado'; @override String get notAvailable => 'No se encontró coincidencia'; - @override String get noConnectedServices => 'Conecta un servicio en Configuración para calificar ahí.'; + @override String get noConnectedServices => 'Conecta un servicio en Configuración para valorar el contenido en él.'; } // Path: accessibility @@ -633,24 +635,26 @@ class _Translations$videoControls$es extends Translations$videoControls$en { @override String playsLater({required Object label}) => '${label} se reproduce más tarde'; @override String playsEarlier({required Object label}) => '${label} se reproduce antes'; @override String get noOffset => 'Sin desfase'; - @override String get letterbox => 'Letterbox'; + @override String get letterbox => 'Con bandas negras'; @override String get fillScreen => 'Llenar pantalla'; @override String get stretch => 'Estirar'; @override String get lockRotation => 'Bloquear rotación'; @override String get unlockRotation => 'Desbloquear rotación'; - @override String get timerActive => 'Temporizador Activo'; + @override String get timerActive => 'Temporizador activo'; @override String playbackWillPauseIn({required Object duration}) => 'La reproducción se pausará en ${duration}'; @override String get sleepTimerEndOfVideo => 'Fin del video actual'; @override String get sleepTimerStopAtHeader => 'Detener en'; @override String get sleepTimerDurationHeader => 'Temporizador'; @override String get playbackWillPauseAtEnd => 'La reproducción se pausará al final de este video'; @override String get stillWatching => '¿Sigues viendo?'; - @override String pausingIn({required Object seconds}) => 'Pausa en ${seconds}s'; + @override String pausingIn({required Object seconds}) => 'Se pausará en ${seconds}s'; @override String get continueWatching => 'Continuar'; @override String get autoPlayNext => 'Reproducir siguiente automáticamente'; @override String get playNext => 'Reproducir siguiente'; @override String get playButton => 'Reproducir'; - @override String get pauseButton => 'Pausa'; + @override String get pauseButton => 'Pausar'; + @override String get showPlaybackControls => 'Mostrar controles de reproducción'; + @override String get hidePlaybackControls => 'Ocultar controles de reproducción'; @override String seekBackwardButton({required Object seconds}) => 'Retroceder ${seconds} segundos'; @override String seekForwardButton({required Object seconds}) => 'Avanzar ${seconds} segundos'; @override String get previousButton => 'Episodio anterior'; @@ -669,7 +673,7 @@ class _Translations$videoControls$es extends Translations$videoControls$en { @override String qualityPresetLabel({required Object resolution, required Object bitrate}) => '${resolution}p ${bitrate} Mbps'; @override String get transcodeUnavailableFallback => 'Transcodificación no disponible — reproduciendo calidad original'; @override String get subtitleUnavailableFallback => 'No se pudieron cargar los subtítulos seleccionados — continuando sin subtítulos'; - @override String get pipButton => 'Modo PiP (Imagen en Imagen)'; + @override String get pipButton => 'Modo de imagen en imagen'; @override String get aspectRatioButton => 'Relación de aspecto'; @override String get ambientLighting => 'Iluminación ambiental'; @override String get fullscreenButton => 'Entrar en pantalla completa'; @@ -682,8 +686,8 @@ class _Translations$videoControls$es extends Translations$videoControls$en { @override String get timelineSlider => 'Línea de tiempo del video'; @override String get volumeSlider => 'Nivel de volumen'; @override String endsAt({required Object time}) => 'Termina a las ${time}'; - @override String get pipActive => 'Reproduciendo en Imagen en Imagen'; - @override String get pipFailed => 'Error al iniciar Imagen en Imagen'; + @override String get pipActive => 'Reproduciendo en modo de imagen en imagen'; + @override String get pipFailed => 'No se pudo iniciar el modo de imagen en imagen'; @override String get screenshotSaved => 'Captura de pantalla guardada'; @override String zoomPercent({required Object percent}) => 'Zoom ${percent}%'; @override late final _Translations$videoControls$pipErrors$es pipErrors = _Translations$videoControls$pipErrors$es._(_root); @@ -724,21 +728,21 @@ class _Translations$messages$es extends Translations$messages$en { @override String get streamInterrupted => 'La reproducción se interrumpió. Pulsa reproducir o avanza para volver a intentarlo.'; @override String get liveStreamInterrupted => 'La transmisión en vivo se interrumpió. Pulsa reproducir para volver a intentarlo.'; @override String get fileInfoNotAvailable => 'Información de archivo no disponible'; - @override String get playbackAuthenticationRequired => 'Sign in to the media server again to play this item.'; - @override String get playbackServerUnavailable => 'The media server is unavailable. Try again later.'; - @override String get playbackDataInvalid => 'The server returned invalid playback information.'; - @override String get playbackCancelled => 'Playback was cancelled.'; - @override String get playbackFailed => 'Playback could not be started.'; - @override String errorLoadingFileInfo({required Object error}) => 'Error al cargar info de archivo: ${error}'; + @override String get playbackAuthenticationRequired => 'Vuelve a iniciar sesión en el servidor multimedia para reproducir este elemento.'; + @override String get playbackServerUnavailable => 'El servidor multimedia no está disponible. Inténtalo de nuevo más tarde.'; + @override String get playbackDataInvalid => 'El servidor devolvió información de reproducción no válida.'; + @override String get playbackCancelled => 'Se canceló la reproducción.'; + @override String get playbackFailed => 'No se pudo iniciar la reproducción.'; + @override String errorLoadingFileInfo({required Object error}) => 'Error al cargar la información del archivo: ${error}'; @override String get errorLoadingSeries => 'Error al cargar la serie'; - @override String get musicNotSupported => 'La reproducción de música aún no está soportada'; + @override String get musicNotSupported => 'La reproducción de música aún no es compatible'; @override String get noDescriptionAvailable => 'No hay descripción disponible'; @override String get noProfilesAvailable => 'No hay perfiles disponibles'; @override String get contactAdminForProfiles => 'Contacta a tu administrador del servidor para añadir perfiles'; @override String get unableToDetermineLibrarySection => 'No se puede determinar la sección de biblioteca para este elemento'; - @override String get logsCleared => 'Logs borrados'; - @override String get logsCopied => 'Logs copiados al portapapeles'; - @override String get noLogsAvailable => 'No hay logs disponibles'; + @override String get logsCleared => 'Registros borrados'; + @override String get logsCopied => 'Registros copiados al portapapeles'; + @override String get noLogsAvailable => 'No hay registros disponibles'; @override String libraryScanning({required Object title}) => 'Escaneando "${title}"...'; @override String libraryScanStarted({required Object title}) => 'Escaneo de biblioteca iniciado para "${title}"'; @override String libraryScanFailed({required Object error}) => 'Error al escanear biblioteca: ${error}'; @@ -754,7 +758,7 @@ class _Translations$messages$es extends Translations$messages$en { @override String get noResultsFound => 'No se encontraron resultados'; @override String sleepTimerSet({required Object label}) => 'Temporizador establecido en ${label}'; @override String get noItemsAvailable => 'No hay elementos disponibles'; - @override String get failedToCreatePlayQueueNoItems => 'Error al crear la cola de reproducción - no hay elementos'; + @override String get failedToCreatePlayQueueNoItems => 'No se pudo crear la cola de reproducción: no hay elementos'; @override String failedPlayback({required Object action, required Object error}) => 'Error al ${action}: ${error}'; @override String get switchingToCompatiblePlayer => 'Cambiando a reproductor compatible...'; @override String get serverLimitTitle => 'Error de reproducción'; @@ -774,15 +778,15 @@ class _Translations$subtitlingStyling$es extends Translations$subtitlingStyling$ @override String get text => 'Texto'; @override String get border => 'Borde'; @override String get background => 'Fondo'; - @override String get fontSize => 'Tamaño de Fuente'; - @override String get textColor => 'Color de Texto'; - @override String get borderSize => 'Tamaño de Borde'; - @override String get borderColor => 'Color de Borde'; - @override String get backgroundOpacity => 'Opacidad de Fondo'; - @override String get backgroundColor => 'Color de Fondo'; + @override String get fontSize => 'Tamaño de fuente'; + @override String get textColor => 'Color del texto'; + @override String get borderSize => 'Tamaño del borde'; + @override String get borderColor => 'Color del borde'; + @override String get backgroundOpacity => 'Opacidad del fondo'; + @override String get backgroundColor => 'Color del fondo'; @override String get position => 'Posición'; @override String get assOverride => 'Sobreescritura ASS'; - @override String get overrideScale => 'Escalar'; + @override String get overrideScale => 'Escala'; @override String get overrideForce => 'Forzar'; @override String get overrideStrip => 'Quitar estilos'; @override String get positionTop => 'Arriba'; @@ -791,7 +795,7 @@ class _Translations$subtitlingStyling$es extends Translations$subtitlingStyling$ @override String get italic => 'Cursiva'; @override String get renderResolution => 'Resolución de renderizado'; @override String get renderResolutionScreen => 'Resolución de pantalla'; - @override String get renderResolutionVideo => 'Resolución del vídeo'; + @override String get renderResolutionVideo => 'Resolución del video'; } // Path: mpvConfig @@ -803,17 +807,17 @@ class _Translations$mpvConfig$es extends Translations$mpvConfig$en { // Translations @override String get title => 'Configuración de mpv'; @override String get description => 'Ajustes avanzados del reproductor de video'; - @override String get presets => 'Ajustes preestablecidos'; - @override String get noPresets => 'No hay ajustes guardados'; - @override String get saveAsPreset => 'Guardar como Ajuste...'; - @override String get presetName => 'Nombre del Ajuste'; - @override String get presetNameHint => 'Introduce un nombre para este ajuste'; + @override String get presets => 'Preajustes'; + @override String get noPresets => 'No hay preajustes guardados'; + @override String get saveAsPreset => 'Guardar como preajuste...'; + @override String get presetName => 'Nombre del preajuste'; + @override String get presetNameHint => 'Introduce un nombre para este preajuste'; @override String get loadPreset => 'Cargar'; @override String get deletePreset => 'Eliminar'; - @override String get presetSaved => 'Ajuste guardado'; - @override String get presetLoaded => 'Ajuste cargado'; - @override String get presetDeleted => 'Ajuste eliminado'; - @override String get confirmDeletePreset => '¿Estás seguro de que quieres eliminar este ajuste?'; + @override String get presetSaved => 'Preajuste guardado'; + @override String get presetLoaded => 'Preajuste cargado'; + @override String get presetDeleted => 'Preajuste eliminado'; + @override String get confirmDeletePreset => '¿Estás seguro de que quieres eliminar este preajuste?'; @override String get configPlaceholder => 'gpu-api=vulkan\nhwdec=auto\n# comment'; } @@ -824,7 +828,7 @@ class _Translations$dialog$es extends Translations$dialog$en { final TranslationsEs _root; // ignore: unused_field // Translations - @override String get confirmAction => 'Confirmar Acción'; + @override String get confirmAction => 'Confirmar acción'; } // Path: profiles @@ -874,12 +878,12 @@ class _Translations$profiles$es extends Translations$profiles$en { @override String connectionAs({required Object displayName}) => 'como ${displayName}'; @override String get makeDefault => 'Establecer como predeterminada'; @override String get removeConnection => 'Eliminar'; - @override String get profileRenamed => 'Perfil renombrado.'; + @override String get profileRenamed => 'Se cambió el nombre del perfil.'; @override String borrowAddTo({required Object displayName}) => 'Añadir a ${displayName}'; @override String get borrowExplain => 'Toma prestada la conexión de otro perfil. Los perfiles protegidos con PIN requieren un PIN.'; - @override String get borrowEmpty => 'Nada para tomar prestado todavía.'; - @override String get borrowEmptySubtitle => 'Conecta Plex o Jellyfin primero a otro perfil.'; - @override String get borrowLoadFailed => 'Available connections could not be loaded. Try again.'; + @override String get borrowEmpty => 'Todavía no hay ninguna conexión que tomar prestada.'; + @override String get borrowEmptySubtitle => 'Conecta primero Plex o Jellyfin a otro perfil.'; + @override String get borrowLoadFailed => 'No se pudieron cargar las conexiones disponibles. Inténtalo de nuevo.'; @override String borrowFromProfile({required Object displayName}) => 'De ${displayName}'; @override String get borrowConnectionBorrowed => 'Conexión tomada prestada.'; @override String get borrowFailed => 'No se pudo tomar prestada la conexión.'; @@ -889,7 +893,7 @@ class _Translations$profiles$es extends Translations$profiles$en { @override String get failedToLoadHomeUsers => 'No se pudieron cargar tus usuarios de Plex Home. Comprueba tu conexión e inténtalo de nuevo.'; @override String get failedToVerifyPin => 'No se pudo verificar el PIN.'; @override String get newProfile => 'Nuevo perfil'; - @override String get profileNameHint => 'p. ej. Invitados, Niños, Sala familiar'; + @override String get profileNameHint => 'p. ej., Invitados, Niños, Sala familiar'; @override String get pinProtectionOptional => 'Protección con PIN (opcional)'; @override String get pinExplain => 'Se requiere PIN de 4 dígitos para cambiar de perfil.'; @override String get continueButton => 'Continuar'; @@ -911,7 +915,7 @@ class _Translations$connections$es extends Translations$connections$en { @override String sessionExpiredMany({required Object count}) => 'Sesión caducada para ${count} servidores'; @override String get signInAgain => 'Iniciar sesión de nuevo'; @override String get editJellyfinTitle => 'Editar conexión de Jellyfin'; - @override String editJellyfinIntro({required Object serverName}) => 'Añade o elimina URL para ${serverName}. Plezy usará la URL accesible con menor latencia.'; + @override String editJellyfinIntro({required Object serverName}) => 'Añade o elimina direcciones URL para ${serverName}. Plezy usará la dirección accesible con menor latencia.'; } // Path: discover @@ -924,7 +928,7 @@ class _Translations$discover$es extends Translations$discover$en { @override String get title => 'Descubrir'; @override String get noContentAvailable => 'No hay contenido disponible'; @override String get addMediaToLibraries => 'Añade contenido a tus bibliotecas'; - @override String get continueWatching => 'Seguir Viendo'; + @override String get continueWatching => 'Seguir viendo'; @override String continueWatchingIn({required Object library}) => 'Seguir viendo en ${library}'; @override String get nextUp => 'A continuación'; @override String nextUpIn({required Object library}) => 'A continuación en ${library}'; @@ -936,13 +940,13 @@ class _Translations$discover$es extends Translations$discover$en { @override String playEpisode({required Object season, required Object episode}) => 'T${season}E${episode}'; @override String get overview => 'Resumen'; @override String get cast => 'Reparto'; - @override String get extras => 'Tráilers y Extras'; + @override String get extras => 'Tráilers y extras'; @override String get studio => 'Estudio'; - @override String get rating => 'Calificación'; + @override String get rating => 'Valoración'; @override String get movie => 'Película'; @override String get tvShow => 'Serie de TV'; @override String minutesLeft({required Object minutes}) => 'quedan ${minutes} min'; - @override String get moreLikeThis => 'Más como esto'; + @override String get moreLikeThis => 'Más contenido similar'; } // Path: errors @@ -957,12 +961,12 @@ class _Translations$errors$es extends Translations$errors$en { @override String get connectionFailed => 'No se puede conectar al servidor multimedia'; @override String unableToLoad({required Object context}) => 'No se pudo cargar ${context}. Inténtalo de nuevo.'; @override String get noClientAvailable => 'No hay cliente disponible'; - @override String get pleaseEnterToken => 'Por favor, introduce un token'; + @override String get pleaseEnterToken => 'Introduce un token'; @override String get invalidToken => 'Token no válido'; @override String failedToVerifyToken({required Object error}) => 'Error al verificar el token: ${error}'; @override String failedToSwitchProfile({required Object displayName}) => 'Error al cambiar al perfil ${displayName}'; @override String failedToDeleteProfile({required Object displayName}) => 'Error al eliminar ${displayName}'; - @override String get failedToRate => 'No se pudo actualizar la calificación'; + @override String get failedToRate => 'No se pudo actualizar la valoración'; } // Path: libraries @@ -974,12 +978,12 @@ class _Translations$libraries$es extends Translations$libraries$en { // Translations @override String get title => 'Bibliotecas'; @override String get fallbackTitle => 'Biblioteca'; - @override String get scanLibraryFiles => 'Escanear Archivos de la Biblioteca'; - @override String get scanLibrary => 'Escanear Biblioteca'; + @override String get scanLibraryFiles => 'Escanear archivos de la biblioteca'; + @override String get scanLibrary => 'Escanear biblioteca'; @override String get analyze => 'Analizar'; - @override String get analyzeLibrary => 'Analizar Biblioteca'; - @override String get refreshMetadata => 'Actualizar Metadatos'; - @override String get emptyTrash => 'Vaciar Papelera'; + @override String get analyzeLibrary => 'Analizar biblioteca'; + @override String get refreshMetadata => 'Actualizar metadatos'; + @override String get emptyTrash => 'Vaciar papelera'; @override String emptyingTrash({required Object title}) => 'Vaciando papelera de "${title}"...'; @override String trashEmptied({required Object title}) => 'Papelera vaciada para "${title}"'; @override String failedToEmptyTrash({required Object error}) => 'Error al vaciar papelera: ${error}'; @@ -993,12 +997,12 @@ class _Translations$libraries$es extends Translations$libraries$en { @override String get noItemsMatchFilters => 'Ningún elemento coincide con los filtros activos'; @override String get resetFilters => 'Restablecer filtros'; @override String get all => 'Todos'; - @override String get clearAll => 'Borrar Todo'; + @override String get clearAll => 'Borrar todo'; @override String scanLibraryConfirm({required Object title}) => '¿Estás seguro de que quieres escanear "${title}"?'; @override String analyzeLibraryConfirm({required Object title}) => '¿Estás seguro de que quieres analizar "${title}"?'; @override String refreshMetadataConfirm({required Object title}) => '¿Estás seguro de que quieres actualizar los metadatos de "${title}"?'; @override String emptyTrashConfirm({required Object title}) => '¿Estás seguro de que quieres vaciar la papelera de "${title}"?'; - @override String get manageLibraries => 'Gestionar Bibliotecas'; + @override String get manageLibraries => 'Gestionar bibliotecas'; @override String get sort => 'Ordenar'; @override String get sortBy => 'Ordenar por'; @override String get filters => 'Filtros'; @@ -1027,10 +1031,10 @@ class _Translations$about$es extends Translations$about$en { // Translations @override String get title => 'Acerca de'; - @override String get openSourceLicenses => 'Licencias de Código Abierto'; + @override String get openSourceLicenses => 'Licencias de código abierto'; @override String versionLabel({required Object version}) => 'Versión ${version}'; @override String get appDescription => 'Un cliente de Plex y Jellyfin para Flutter'; - @override String get viewLicensesDescription => 'Ver licencias de librerías de terceros'; + @override String get viewLicensesDescription => 'Ver las licencias de bibliotecas de terceros'; } // Path: serverSelection @@ -1054,7 +1058,7 @@ class _Translations$hubDetail$es extends Translations$hubDetail$en { @override String get title => 'Título'; @override String get releaseYear => 'Año de lanzamiento'; @override String get dateAdded => 'Añadido el'; - @override String get rating => 'Calificación'; + @override String get rating => 'Valoración'; @override String get noItemsFound => 'No se encontraron elementos'; } @@ -1065,8 +1069,8 @@ class _Translations$logs$es extends Translations$logs$en { final TranslationsEs _root; // ignore: unused_field // Translations - @override String get clearLogs => 'Borrar Logs'; - @override String get copyLogs => 'Copiar Logs'; + @override String get clearLogs => 'Borrar registros'; + @override String get copyLogs => 'Copiar registros'; @override String get uploadLogs => 'Subir registros'; } @@ -1090,7 +1094,7 @@ class _Translations$navigation$es extends Translations$navigation$en { final TranslationsEs _root; // ignore: unused_field // Translations - @override String get libraries => 'Medios'; + @override String get libraries => 'Bibliotecas'; @override String get downloads => 'Descargas'; @override String get liveTv => 'TV en vivo'; @override String get explore => 'Explorar'; @@ -1138,8 +1142,8 @@ class _Translations$liveTv$es extends Translations$liveTv$en { @override String get guide => 'Guía'; @override String get noChannels => 'No hay canales disponibles'; @override String get noDvr => 'No hay DVR configurado en ningún servidor'; - @override String get serverUnavailable => 'El servidor de TV en directo no está disponible.'; - @override String get serverNotConnected => 'El servidor de TV en directo no está conectado.'; + @override String get serverUnavailable => 'El servidor de TV en vivo no está disponible.'; + @override String get serverNotConnected => 'El servidor de TV en vivo no está conectado.'; @override String get noPrograms => 'No hay datos de programación disponibles'; @override String get liveStreamFailed => 'Falló la transmisión en vivo'; @override String get unknownProgram => 'Programa desconocido'; @@ -1163,11 +1167,11 @@ class _Translations$liveTv$es extends Translations$liveTv$en { @override String get favorites => 'Favoritos'; @override String get reorderFavorites => 'Reordenar favoritos'; @override String get favoritesLoadFailed => 'No se pudieron cargar los favoritos. Comprueba tu conexión e inténtalo de nuevo.'; - @override String get favoritesUpdateFailed => 'Could not update favorites. Check your connection and try again.'; + @override String get favoritesUpdateFailed => 'No se pudieron actualizar los favoritos. Comprueba tu conexión e inténtalo de nuevo.'; @override String get joinSession => 'Unirse a sesión en curso'; @override String watchFromStart({required Object minutes}) => 'Ver desde el inicio (hace ${minutes} min)'; @override String get watchLive => 'Ver en vivo'; - @override String get goToLive => 'Ir a en vivo'; + @override String get goToLive => 'Ir a la emisión en vivo'; @override String get record => 'Grabar'; @override String get recordEpisode => 'Grabar episodio'; @override String get recordSeries => 'Grabar serie'; @@ -1213,13 +1217,13 @@ class _Translations$collections$es extends Translations$collections$en { @override String get title => 'Colecciones'; @override String get collection => 'Colección'; @override String get empty => 'La colección está vacía'; - @override String get deleteCollection => 'Eliminar Colección'; + @override String get deleteCollection => 'Eliminar colección'; @override String deleteConfirm({required Object title}) => '¿Eliminar "${title}"? No se puede deshacer.'; @override String get deleted => 'Colección eliminada'; @override String get deleteFailed => 'Error al eliminar la colección'; @override String deleteFailedWithError({required Object error}) => 'Error al eliminar la colección: ${error}'; - @override String get selectCollection => 'Seleccionar Colección'; - @override String get collectionName => 'Nombre de la Colección'; + @override String get selectCollection => 'Seleccionar colección'; + @override String get collectionName => 'Nombre de la colección'; @override String get enterCollectionName => 'Introduce el nombre de la colección'; @override String get addedToCollection => 'Añadido a la colección'; @override String get errorAddingToCollection => 'Error al añadir a la colección'; @@ -1242,29 +1246,29 @@ class _Translations$playlists$es extends Translations$playlists$en { @override String get title => 'Listas de reproducción'; @override String get playlist => 'Lista de reproducción'; @override String get noPlaylists => 'No se encontraron listas de reproducción'; - @override String get create => 'Crear Lista de Reproducción'; - @override String get playlistName => 'Nombre de la Lista'; - @override String get enterPlaylistName => 'Introduce el nombre de la lista'; - @override String get delete => 'Eliminar Lista'; - @override String get removeItem => 'Eliminar de la Lista'; - @override String get smartPlaylist => 'Lista Inteligente'; + @override String get create => 'Crear lista de reproducción'; + @override String get playlistName => 'Nombre de la lista de reproducción'; + @override String get enterPlaylistName => 'Introduce el nombre de la lista de reproducción'; + @override String get delete => 'Eliminar lista de reproducción'; + @override String get removeItem => 'Eliminar de la lista de reproducción'; + @override String get smartPlaylist => 'Lista de reproducción inteligente'; @override String itemCount({required Object count}) => '${count} elementos'; @override String get oneItem => '1 elemento'; - @override String get emptyPlaylist => 'Esta lista está vacía'; - @override String get deleteConfirm => '¿Eliminar Lista de Reproducción?'; + @override String get emptyPlaylist => 'Esta lista de reproducción está vacía'; + @override String get deleteConfirm => '¿Eliminar lista de reproducción?'; @override String deleteMessage({required Object name}) => '¿Estás seguro de que quieres eliminar "${name}"?'; @override String get created => 'Lista de reproducción creada'; @override String get deleted => 'Lista de reproducción eliminada'; - @override String get itemAdded => 'Añadido a la lista'; - @override String get itemRemoved => 'Eliminado de la lista'; - @override String get selectPlaylist => 'Seleccionar Lista'; - @override String get searchPlaylists => 'Buscar listas...'; - @override String get errorCreating => 'Error al crear la lista'; - @override String get errorDeleting => 'Error al eliminar la lista'; - @override String get errorLoading => 'Error al cargar las listas'; - @override String get errorAdding => 'Error al añadir a la lista'; - @override String get errorReordering => 'Error al reordenar los elementos de la lista'; - @override String get errorRemoving => 'Error al eliminar de la lista'; + @override String get itemAdded => 'Añadido a la lista de reproducción'; + @override String get itemRemoved => 'Eliminado de la lista de reproducción'; + @override String get selectPlaylist => 'Seleccionar lista de reproducción'; + @override String get searchPlaylists => 'Buscar listas de reproducción...'; + @override String get errorCreating => 'Error al crear la lista de reproducción'; + @override String get errorDeleting => 'Error al eliminar la lista de reproducción'; + @override String get errorLoading => 'Error al cargar las listas de reproducción'; + @override String get errorAdding => 'Error al añadir a la lista de reproducción'; + @override String get errorReordering => 'Error al reordenar el elemento de la lista de reproducción'; + @override String get errorRemoving => 'Error al eliminar de la lista de reproducción'; } // Path: music @@ -1308,20 +1312,20 @@ class _Translations$watchTogether$es extends Translations$watchTogether$en { final TranslationsEs _root; // ignore: unused_field // Translations - @override String get title => 'Ver Juntos'; - @override String get description => 'Mira contenido en sincronía con amigos y familiares'; - @override String get createSession => 'Crear Sesión'; + @override String get title => 'Ver juntos'; + @override String get description => 'Mira contenido sincronizado con amigos y familiares'; + @override String get createSession => 'Crear sesión'; @override String get creating => 'Creando...'; - @override String get joinSession => 'Unirse a Sesión'; - @override String get joining => 'Uniendo...'; - @override String get controlMode => 'Modo de Control'; + @override String get joinSession => 'Unirse a una sesión'; + @override String get joining => 'Conectando...'; + @override String get controlMode => 'Modo de control'; @override String get controlModeQuestion => '¿Quién puede controlar la reproducción?'; - @override String get hostOnly => 'Solo el Anfitrión'; + @override String get hostOnly => 'Solo el anfitrión'; @override String get anyone => 'Cualquiera'; - @override String get hostingSession => 'Anfitrión de la Sesión'; - @override String get inSession => 'En Sesión'; - @override String get sessionCode => 'Código de Sesión'; - @override String get openSessionControls => 'Abrir los controles de la sesión de Ver Juntos'; + @override String get hostingSession => 'Sesión alojada'; + @override String get inSession => 'En una sesión'; + @override String get sessionCode => 'Código de sesión'; + @override String get openSessionControls => 'Abrir los controles de la sesión de Ver juntos'; @override String get copySessionCode => 'Copiar código de sesión'; @override String get hostControlsPlayback => 'El anfitrión controla la reproducción'; @override String get anyoneCanControl => 'Cualquiera puede controlar la reproducción'; @@ -1331,28 +1335,28 @@ class _Translations$watchTogether$es extends Translations$watchTogether$en { @override String get host => 'Anfitrión'; @override String get hostBadge => 'ANFITRIÓN'; @override String get youAreHost => 'Eres el anfitrión'; - @override String get watchingWithOthers => 'Viendo con otros'; - @override String get endSession => 'Finalizar Sesión'; - @override String get leaveSession => 'Salir de la Sesión'; - @override String get endSessionQuestion => '¿Finalizar Sesión?'; - @override String get leaveSessionQuestion => '¿Salir de la Sesión?'; + @override String get watchingWithOthers => 'Viendo contenido con otras personas'; + @override String get endSession => 'Finalizar sesión'; + @override String get leaveSession => 'Salir de la sesión'; + @override String get endSessionQuestion => '¿Finalizar la sesión?'; + @override String get leaveSessionQuestion => '¿Salir de la sesión?'; @override String get endSessionConfirm => 'Esto finalizará la sesión para todos los participantes.'; - @override String get leaveSessionConfirm => 'Serás eliminado de la sesión.'; - @override String get endSessionConfirmOverlay => 'Esto finalizará la sesión de visualización para todos los participantes.'; - @override String get leaveSessionConfirmOverlay => 'Serás desconectado de la sesión de visualización.'; + @override String get leaveSessionConfirm => 'Saldrás de la sesión.'; + @override String get endSessionConfirmOverlay => 'Esto finalizará la sesión de reproducción para todos los participantes.'; + @override String get leaveSessionConfirmOverlay => 'Te desconectarás de la sesión de reproducción.'; @override String get end => 'Finalizar'; @override String get leave => 'Salir'; @override String get syncing => 'Sincronizando...'; - @override String get joinWatchSession => 'Unirse a Sesión de Visualización'; + @override String get joinWatchSession => 'Unirse a una sesión de reproducción'; @override String get enterCodeHint => 'Introduce el código de 5 caracteres'; @override String get pasteFromClipboard => 'Pegar desde el portapapeles'; - @override String get pleaseEnterCode => 'Por favor, introduce un código de sesión'; + @override String get pleaseEnterCode => 'Introduce un código de sesión'; @override String get codeMustBe5Chars => 'El código de sesión debe tener 5 caracteres'; @override String get joinInstructions => 'Introduce el código de sesión del anfitrión para unirte.'; @override String get failedToCreate => 'Error al crear la sesión'; @override String get failedToJoin => 'Error al unirse a la sesión'; @override String get sessionCodeCopied => 'Código de sesión copiado al portapapeles'; - @override String get relayUnreachable => 'Servidor relay inaccesible. El bloqueo del ISP puede impedir Watch Together.'; + @override String get relayUnreachable => 'No se puede acceder al servidor de retransmisión. Es posible que tu proveedor de internet esté bloqueando Ver juntos.'; @override String get reconnectingToHost => 'Reconectando con el anfitrión...'; @override String get currentPlayback => 'Reproducción actual'; @override String get joinCurrentPlayback => 'Unirse a la reproducción actual'; @@ -1362,11 +1366,11 @@ class _Translations$watchTogether$es extends Translations$watchTogether$en { @override String participantLeft({required Object name}) => '${name} se fue'; @override String participantPaused({required Object name}) => '${name} pausó'; @override String participantResumed({required Object name}) => '${name} reanudó'; - @override String participantSeeked({required Object name}) => '${name} avanzó'; - @override String participantBuffering({required Object name}) => '${name} está cargando'; - @override String participantNeedsUpdate({required Object name}) => '${name} usa una versión anterior de la app — sincronización no disponible'; + @override String participantSeeked({required Object name}) => '${name} cambió la posición de reproducción'; + @override String participantBuffering({required Object name}) => '${name} está almacenando en búfer'; + @override String participantNeedsUpdate({required Object name}) => '${name} usa una versión anterior de la aplicación — sincronización no disponible'; @override String resumingWithout({required Object name}) => 'Reanudando sin ${name}'; - @override String get waitingForParticipants => 'Esperando a que otros carguen...'; + @override String get waitingForParticipants => 'Esperando a que los demás carguen el contenido...'; @override String waitingForName({required Object name}) => 'Esperando a ${name}...'; @override String get recentRooms => 'Salas recientes'; @override String get renameRoom => 'Renombrar sala'; @@ -1395,7 +1399,7 @@ class _Translations$downloads$es extends Translations$downloads$en { @override String get retryDownload => 'Reintentar descarga'; @override String get downloadQueued => 'Descarga en cola'; @override String get downloadResumed => 'Descarga reanudada'; - @override String get serverErrorBitrate => 'Error del servidor: el archivo puede superar el límite de bitrate remoto'; + @override String get serverErrorBitrate => 'Error del servidor: el archivo puede superar el límite remoto de tasa de bits'; @override String episodesQueued({required Object count}) => '${count} episodios en cola para descargar'; @override String get downloadDeleted => 'Descarga eliminada'; @override String deleteConfirm({required Object title}) => '¿Eliminar "${title}" de este dispositivo?'; @@ -1427,11 +1431,11 @@ class _Translations$downloads$es extends Translations$downloads$en { @override String get invalidEpisodeCount => 'Introduce un número de episodios válido.'; @override String get keepSynced => 'Mantener sincronizado'; @override String get downloadOnce => 'Descargar una vez'; - @override String keepNUnwatched({required Object count}) => 'Mantener ${count} sin ver'; + @override String keepNUnwatched({required Object count}) => 'Mantener ${count} no vistos'; @override String get editSyncRule => 'Editar regla de sincronización'; @override String get removeSyncRule => 'Eliminar regla de sincronización'; @override String removeSyncRuleConfirm({required Object title}) => '¿Dejar de sincronizar "${title}"? Los episodios descargados se conservarán.'; - @override String syncRuleCreated({required Object count}) => 'Regla de sincronización creada — conservando ${count} episodios sin ver'; + @override String syncRuleCreated({required Object count}) => 'Regla de sincronización creada — se conservarán ${count} episodios no vistos'; @override String get syncRuleUpdated => 'Regla de sincronización actualizada'; @override String get syncRuleRemoved => 'Regla de sincronización eliminada'; @override String syncedNewEpisodes({required Object count, required Object title}) => '${count} nuevos episodios sincronizados para ${title}'; @@ -1465,7 +1469,7 @@ class _Translations$shaders$es extends Translations$shaders$en { @override String get artcnnVariantDenoise => 'Reducción de ruido'; @override String get artcnnVariantDenoiseSharpen => 'Reducción de ruido + enfoque'; @override String get qualityFast => 'Rápido'; - @override String get qualityHQ => 'Alta Calidad'; + @override String get qualityHQ => 'Alta calidad'; @override String get mode => 'Modo'; @override String get importShader => 'Importar shader'; @override String get customShaderDescription => 'Shader GLSL personalizado'; @@ -1508,7 +1512,7 @@ class _Translations$videoSettings$es extends Translations$videoSettings$en { @override String get hdr => 'HDR'; @override String get audioOutput => 'Salida de audio'; @override String get performanceOverlay => 'Indicador de rendimiento'; - @override String get audioPassthrough => 'Audio Passthrough'; + @override String get audioPassthrough => 'Transferencia directa de audio'; @override String get audioNormalization => 'Normalizar volumen'; @override String get audioDownmix => 'Mezclar a estéreo'; } @@ -1525,7 +1529,7 @@ class _Translations$performanceOverlay$es extends Translations$performanceOverla @override String get buffer => 'Búfer'; @override String get app => 'App'; @override String get decoder => 'Decodificador'; - @override String get rawDecoder => 'Decodificador raw'; + @override String get rawDecoder => 'Decodificador sin procesar'; @override String get tunneling => 'Túnel'; @override String get aspect => 'Aspecto'; @override String get rotation => 'Rotación'; @@ -1566,7 +1570,7 @@ class _Translations$externalPlayer$es extends Translations$externalPlayer$en { // Translations @override String get title => 'Reproductor externo'; @override String get useExternalPlayer => 'Usar reproductor externo'; - @override String get useExternalPlayerDescription => 'Abrir videos en otra app'; + @override String get useExternalPlayerDescription => 'Abrir videos en otra aplicación'; @override String get selectPlayer => 'Seleccionar reproductor'; @override String get customPlayers => 'Reproductores personalizados'; @override String get systemDefault => 'Predeterminado del sistema'; @@ -1592,7 +1596,7 @@ class _Translations$metadataEdit$es extends Translations$metadataEdit$en { @override String get editMetadata => 'Editar...'; @override String get screenTitle => 'Editar metadatos'; @override String get basicInfo => 'Información básica'; - @override String get artwork => 'Artwork'; + @override String get artwork => 'Imágenes'; @override String get advancedSettings => 'Ajustes avanzados'; @override String get title => 'Título'; @override String get sortTitle => 'Título de ordenación'; @@ -1616,9 +1620,9 @@ class _Translations$metadataEdit$es extends Translations$metadataEdit$en { @override String get imageUrl => 'URL de imagen'; @override String get metadataUpdated => 'Metadatos actualizados'; @override String get metadataUpdateFailed => 'Error al actualizar los metadatos'; - @override String get artworkUpdated => 'Artwork actualizado'; - @override String get artworkUpdateFailed => 'Error al actualizar el artwork'; - @override String get noArtworkAvailable => 'No hay artwork disponible'; + @override String get artworkUpdated => 'Imágenes actualizadas'; + @override String get artworkUpdateFailed => 'Error al actualizar las imágenes'; + @override String get noArtworkAvailable => 'No hay imágenes disponibles'; @override String artworkOption({required Object index}) => 'Opción de imagen ${index}'; @override String selectedArtworkOption({required Object index}) => 'Opción de imagen ${index}, seleccionada'; @override String get notSet => 'No establecido'; @@ -1674,14 +1678,14 @@ class _Translations$matchScreen$es extends Translations$matchScreen$en { final TranslationsEs _root; // ignore: unused_field // Translations - @override String get match => 'Emparejar...'; - @override String get fixMatch => 'Corregir coincidencia...'; - @override String get unmatch => 'Desvincular'; - @override String get unmatchConfirm => '¿Borrar esta coincidencia? Plex lo tratará como no coincidente hasta reasignarlo.'; - @override String get unmatchSuccess => 'Elemento desvinculado'; - @override String get unmatchFailed => 'No se pudo desvincular el elemento'; - @override String get matchApplied => 'Coincidencia aplicada'; - @override String get matchFailed => 'No se pudo aplicar la coincidencia'; + @override String get match => 'Asociar...'; + @override String get fixMatch => 'Corregir asociación...'; + @override String get unmatch => 'Desasociar'; + @override String get unmatchConfirm => '¿Borrar esta asociación? Plex tratará el elemento como no asociado hasta que vuelvas a asociarlo.'; + @override String get unmatchSuccess => 'Elemento desasociado'; + @override String get unmatchFailed => 'No se pudo desasociar el elemento'; + @override String get matchApplied => 'Asociación aplicada'; + @override String get matchFailed => 'No se pudo aplicar la asociación'; @override String get titleHint => 'Título'; @override String get yearHint => 'Año'; @override String get search => 'Buscar'; @@ -1714,8 +1718,8 @@ class _Translations$trakt$es extends Translations$trakt$en { @override String get disconnectConfirmBody => 'Plezy dejará de enviar eventos a Trakt. Puedes reconectar cuando quieras.'; @override String get scrobble => 'Scrobbling en tiempo real'; @override String get scrobbleDescription => 'Enviar eventos de reproducción, pausa y parada a Trakt durante la reproducción.'; - @override String get watchedSync => 'Sincronizar estado de visto'; - @override String get watchedSyncDescription => 'Cuando marques elementos como vistos en Plezy, también se marcarán en Trakt.'; + @override String get watchedSync => 'Sincronizar el estado de visualización'; + @override String get watchedSyncDescription => 'Cuando marques contenido como visto en Plezy, también se marcará como visto en Trakt.'; } // Path: seerr @@ -1787,7 +1791,7 @@ class _Translations$addServer$es extends Translations$addServer$en { // Translations @override String get addJellyfinTitle => 'Añadir servidor Jellyfin'; - @override String get serverUrls => 'URL del servidor'; + @override String get serverUrls => 'Direcciones URL del servidor'; @override String get serverUrlsHelper => 'Se permiten varias URL, separadas por comas.'; @override String get findServer => 'Buscar servidor'; @override String get searchingLocalServers => 'Buscando servidores Jellyfin locales...'; @@ -1823,30 +1827,30 @@ class _Translations$hotkeys$actions$es extends Translations$hotkeys$actions$en { final TranslationsEs _root; // ignore: unused_field // Translations - @override String get playPause => 'Reproducir/Pausar'; - @override String get volumeUp => 'Subir Volumen'; - @override String get volumeDown => 'Bajar Volumen'; + @override String get playPause => 'Reproducir/pausar'; + @override String get volumeUp => 'Subir volumen'; + @override String get volumeDown => 'Bajar volumen'; @override String seekForward({required Object seconds}) => 'Avanzar (${seconds}s)'; @override String seekBackward({required Object seconds}) => 'Retroceder (${seconds}s)'; - @override String get fullscreenToggle => 'Alternar Pantalla Completa'; - @override String get muteToggle => 'Alternar Silencio'; - @override String get subtitleToggle => 'Alternar Subtítulos'; - @override String get audioTrackNext => 'Siguiente Pista de Audio'; - @override String get subtitleTrackNext => 'Siguiente Pista de Subtítulos'; - @override String get chapterNext => 'Siguiente Capítulo'; - @override String get chapterPrevious => 'Anterior Capítulo'; - @override String get episodeNext => 'Siguiente Episodio'; - @override String get episodePrevious => 'Anterior Episodio'; - @override String get speedIncrease => 'Aumentar Velocidad'; - @override String get speedDecrease => 'Disminuir Velocidad'; - @override String get speedReset => 'Restablecer Velocidad'; + @override String get fullscreenToggle => 'Alternar pantalla completa'; + @override String get muteToggle => 'Activar/desactivar silencio'; + @override String get subtitleToggle => 'Activar/desactivar subtítulos'; + @override String get audioTrackNext => 'Pista de audio siguiente'; + @override String get subtitleTrackNext => 'Pista de subtítulos siguiente'; + @override String get chapterNext => 'Capítulo siguiente'; + @override String get chapterPrevious => 'Capítulo anterior'; + @override String get episodeNext => 'Episodio siguiente'; + @override String get episodePrevious => 'Episodio anterior'; + @override String get speedIncrease => 'Aumentar velocidad'; + @override String get speedDecrease => 'Disminuir velocidad'; + @override String get speedReset => 'Restablecer velocidad'; @override String get zoomIn => 'Acercar'; @override String get zoomOut => 'Alejar'; @override String get zoomReset => 'Restablecer zoom'; - @override String get subSeekNext => 'Ir al Siguiente Subtítulo'; - @override String get subSeekPrev => 'Ir al Anterior Subtítulo'; - @override String get shaderToggle => 'Alternar Shaders'; - @override String get skipMarker => 'Saltar Intro/Créditos'; + @override String get subSeekNext => 'Ir al subtítulo siguiente'; + @override String get subSeekPrev => 'Ir al subtítulo anterior'; + @override String get shaderToggle => 'Activar/desactivar shaders'; + @override String get skipMarker => 'Saltar introducción/créditos'; @override String get screenshot => 'Tomar captura de pantalla'; } @@ -1859,10 +1863,10 @@ class _Translations$videoControls$pipErrors$es extends Translations$videoControl // Translations @override String get androidVersion => 'Requiere Android 8.0 o más reciente'; @override String get iosVersion => 'Requiere iOS 15.0 o más reciente'; - @override String get permissionDisabled => 'Picture-in-picture está desactivado. Actívalo en los ajustes del sistema.'; - @override String get notSupported => 'El dispositivo no soporta el modo Imagen en Imagen'; - @override String get voSwitchFailed => 'Error al cambiar la salida de video para Imagen en Imagen'; - @override String get failed => 'Error al iniciar Imagen en Imagen'; + @override String get permissionDisabled => 'El modo de imagen en imagen está desactivado. Actívalo en los ajustes del sistema.'; + @override String get notSupported => 'El dispositivo no admite el modo de imagen en imagen'; + @override String get voSwitchFailed => 'No se pudo cambiar la salida de video para el modo de imagen en imagen'; + @override String get failed => 'No se pudo iniciar el modo de imagen en imagen'; @override String unknown({required Object error}) => 'Ocurrió un error: ${error}'; } @@ -1876,7 +1880,7 @@ class _Translations$libraries$tabs$es extends Translations$libraries$tabs$en { @override String get recommended => 'Recomendado'; @override String get browse => 'Explorar'; @override String get collections => 'Colecciones'; - @override String get playlists => 'Listas'; + @override String get playlists => 'Listas de reproducción'; } // Path: libraries.groupings @@ -1907,10 +1911,10 @@ class _Translations$libraries$filterCategories$es extends Translations$libraries // Translations @override String get genre => 'Género'; @override String get year => 'Año'; - @override String get contentRating => 'Clasificación'; + @override String get contentRating => 'Clasificación por edad'; @override String get tag => 'Etiqueta'; @override String get unwatched => 'No vistos'; - @override String get unplayed => 'No reproducido'; + @override String get unplayed => 'No reproducidos'; @override String get favorites => 'Favoritos'; } @@ -1925,22 +1929,22 @@ class _Translations$libraries$sortLabels$es extends Translations$libraries$sortL @override String get dateAdded => 'Fecha de adición'; @override String get releaseDate => 'Fecha de estreno'; @override String get rating => 'Valoración'; - @override String get communityRating => 'Calificación de comunidad'; - @override String get criticRating => 'Calificación de crítica'; - @override String get userRating => 'Calificación del usuario'; + @override String get communityRating => 'Valoración de la comunidad'; + @override String get criticRating => 'Valoración de la crítica'; + @override String get userRating => 'Valoración del usuario'; @override String get datePlayed => 'Fecha de reproducción'; @override String get playCount => 'Reproducciones'; @override String get productionYear => 'Año de producción'; @override String get runtime => 'Duración'; - @override String get officialRating => 'Calificación oficial'; + @override String get officialRating => 'Clasificación oficial'; @override String get premiereDate => 'Fecha de estreno'; @override String get startDate => 'Fecha de inicio'; @override String get airTime => 'Hora de emisión'; @override String get studio => 'Estudio'; @override String get random => 'Aleatorio'; - @override String get dateShared => 'Fecha de compartición'; - @override String get latestEpisodeAirDate => 'Última fecha de emisión del episodio'; - @override String get lastEpisodeDateAdded => 'Fecha de adición del último episodio'; + @override String get dateShared => 'Fecha en que se compartió'; + @override String get latestEpisodeAirDate => 'Fecha de emisión del episodio más reciente'; + @override String get lastEpisodeDateAdded => 'Fecha en que se añadió el último episodio'; } // Path: explore.rows @@ -1991,7 +1995,7 @@ class _Translations$companionRemote$session$es extends Translations$companionRem @override String get connected => 'Conectado'; @override String get serverRunning => 'Servidor remoto activo'; @override String get serverStopped => 'Servidor remoto detenido'; - @override String get serverRunningDescription => 'Los dispositivos móviles de tu red pueden conectarse a esta app'; + @override String get serverRunningDescription => 'Los dispositivos móviles de tu red pueden conectarse a esta aplicación'; @override String get serverStoppedDescription => 'Inicia el servidor para permitir que los dispositivos móviles se conecten'; @override String get usePhoneToControl => 'Usa tu dispositivo móvil para controlar esta aplicación'; @override String get startServer => 'Iniciar servidor'; @@ -2011,12 +2015,12 @@ class _Translations$companionRemote$pairing$es extends Translations$companionRem @override String get connecting => 'Conectando...'; @override String get searchingForDevices => 'Buscando dispositivos...'; @override String get noDevicesFound => 'No se encontraron dispositivos en tu red'; - @override String get noDevicesHint => 'Abre Plezy en escritorio y usa el mismo WiFi'; + @override String get noDevicesHint => 'Abre Plezy en tu equipo y usa la misma red WiFi'; @override String get availableDevices => 'Dispositivos disponibles'; @override String get manualConnection => 'Conexión manual'; @override String get cryptoInitFailed => 'No se pudo iniciar la conexión segura. Inicia sesión en Plex primero.'; - @override String get validationHostRequired => 'Ingresa la dirección del host'; - @override String get validationHostFormat => 'El formato debe ser IP:puerto (ej. 192.168.1.100:48632)'; + @override String get validationHostRequired => 'Introduce la dirección del host'; + @override String get validationHostFormat => 'El formato debe ser IP:puerto (p. ej., 192.168.1.100:48632)'; @override String get connectionTimedOut => 'Tiempo de conexión agotado. Usa la misma red en ambos dispositivos.'; @override String get sessionNotFound => 'Dispositivo no encontrado. Asegúrate de que Plezy esté en ejecución en el host.'; @override String get authFailed => 'Autenticación fallida. Ambos dispositivos necesitan la misma cuenta Plex.'; @@ -2127,14 +2131,14 @@ class _Translations$services$libraryFilter$es extends Translations$services$libr // Translations @override String get title => 'Filtro de bibliotecas'; @override String get subtitleAllSyncing => 'Sincronizando todas las bibliotecas'; - @override String get subtitleNoneSyncing => 'Nada se sincroniza'; + @override String get subtitleNoneSyncing => 'No se sincroniza ninguna biblioteca'; @override String subtitleBlocked({required Object count}) => '${count} bloqueadas'; @override String subtitleAllowed({required Object count}) => '${count} permitidas'; @override String get mode => 'Modo de filtro'; - @override String get modeBlacklist => 'Lista negra'; - @override String get modeWhitelist => 'Lista blanca'; - @override String get modeHintBlacklist => 'Sincronizar todas las bibliotecas excepto las marcadas abajo.'; - @override String get modeHintWhitelist => 'Sincronizar solo las bibliotecas marcadas abajo.'; + @override String get modeBlacklist => 'Lista de exclusión'; + @override String get modeWhitelist => 'Lista de inclusión'; + @override String get modeHintBlacklist => 'Sincronizar todas las bibliotecas excepto las seleccionadas abajo.'; + @override String get modeHintWhitelist => 'Sincronizar solo las bibliotecas seleccionadas abajo.'; @override String get libraries => 'Bibliotecas'; @override String get noLibraries => 'No hay bibliotecas disponibles'; } @@ -2151,7 +2155,7 @@ extension on TranslationsEs { 'auth.signInWithPlex' => 'Inicia sesión con Plex', 'auth.showQRCode' => 'Mostrar código QR', 'auth.authenticate' => 'Autenticar', - 'auth.authenticationTimeout' => 'Tiempo de autenticación agotado. Por favor, intenta de nuevo.', + 'auth.authenticationTimeout' => 'Se agotó el tiempo de autenticación. Inténtalo de nuevo.', 'auth.scanQRToSignIn' => 'Escanea este código QR para iniciar sesión', 'auth.waitingForAuth' => 'Esperando autenticación...\nInicia sesión desde tu navegador.', 'auth.useBrowser' => 'Usar navegador', @@ -2162,12 +2166,12 @@ extension on TranslationsEs { 'auth.quickConnectWaiting' => 'Esperando aprobación…', 'auth.quickConnectCancel' => 'Cancelar', 'auth.quickConnectExpired' => 'Quick Connect caducó. Inténtalo de nuevo.', - 'auth.localDataRecoveryRequired' => 'Plezy could not safely recover local sign-in and pending playback data. Please sign in again.', + 'auth.localDataRecoveryRequired' => 'Plezy no pudo recuperar de forma segura los datos locales de inicio de sesión ni la reproducción pendiente. Vuelve a iniciar sesión.', 'common.cancel' => 'Cancelar', 'common.save' => 'Guardar', 'common.close' => 'Cerrar', 'common.clear' => 'Borrar', - 'common.reset' => 'Reiniciar', + 'common.reset' => 'Restablecer', 'common.later' => 'Más tarde', 'common.submit' => 'Enviar', 'common.confirm' => 'Confirmar', @@ -2179,20 +2183,20 @@ extension on TranslationsEs { 'common.no' => 'No', 'common.delete' => 'Eliminar', 'common.edit' => 'Editar', - 'common.shuffle' => 'Aleatorio', + 'common.shuffle' => 'Reproducción aleatoria', 'common.addTo' => 'Añadir a...', 'common.createNew' => 'Crear', 'common.connect' => 'Conectar', 'common.disconnect' => 'Desconectar', 'common.play' => 'Reproducir', - 'common.pause' => 'Pausa', + 'common.pause' => 'Pausar', 'common.resume' => 'Reanudar', 'common.error' => 'Error', 'common.search' => 'Buscar', 'common.home' => 'Inicio', 'common.back' => 'Atrás', 'common.settings' => 'Ajustes', - 'common.mute' => 'Silencio', + 'common.mute' => 'Silenciar', 'common.ok' => 'OK', 'common.off' => 'Desactivado', 'common.seasonNumber' => ({required Object number}) => 'Temporada ${number}', @@ -2207,12 +2211,12 @@ extension on TranslationsEs { 'common.loading' => 'Cargando...', 'common.fullscreen' => 'Pantalla completa', 'common.exitFullscreen' => 'Salir de pantalla completa', - 'common.pressBackAgainToExit' => 'Presiona atrás otra vez para salir', + 'common.pressBackAgainToExit' => 'Pulsa Atrás de nuevo para salir', 'screens.licenses' => 'Licencias', - 'screens.switchProfile' => 'Cambiar Perfil', - 'screens.subtitleStyling' => 'Estilo de Subtítulos', + 'screens.switchProfile' => 'Cambiar perfil', + 'screens.subtitleStyling' => 'Estilo de subtítulos', 'screens.mpvConfig' => 'mpv.conf', - 'screens.logs' => 'Logs', + 'screens.logs' => 'Registros', 'update.available' => 'Actualización disponible', 'update.versionAvailable' => ({required Object version}) => 'Versión ${version} disponible', 'update.currentVersion' => ({required Object version}) => 'Actual: ${version}', @@ -2226,54 +2230,56 @@ extension on TranslationsEs { 'settings.language' => 'Idioma', 'settings.theme' => 'Tema', 'settings.appearance' => 'Apariencia', - 'settings.videoPlayback' => 'Reproducción de Video', + 'settings.videoPlayback' => 'Reproducción de video', 'settings.videoPlaybackDescription' => 'Configurar el comportamiento de reproducción', 'settings.advanced' => 'Avanzado', - 'settings.episodePosterMode' => 'Estilo de Póster de Episodio', - 'settings.seriesPoster' => 'Póster de Serie', - 'settings.seasonPoster' => 'Póster de Temporada', + 'settings.episodePosterMode' => 'Estilo del póster de episodio', + 'settings.seriesPoster' => 'Póster de la serie', + 'settings.seasonPoster' => 'Póster de la temporada', 'settings.episodeThumbnail' => 'Miniatura', 'settings.showHeroSectionDescription' => 'Mostrar carrusel de contenido destacado en la pantalla de inicio', 'settings.secondsLabel' => 'Segundos', 'settings.minutesLabel' => 'Minutos', 'settings.secondsShort' => 's', 'settings.minutesShort' => 'm', - 'settings.durationHint' => ({required Object min, required Object max}) => 'Ingresa la duración (${min}-${max})', + 'settings.durationHint' => ({required Object min, required Object max}) => 'Introduce la duración (${min}-${max})', 'settings.systemTheme' => 'Sistema', 'settings.lightTheme' => 'Claro', 'settings.darkTheme' => 'Oscuro', 'settings.oledTheme' => 'OLED', - 'settings.libraryDensity' => 'Densidad de Biblioteca', + 'settings.libraryDensity' => 'Densidad de la biblioteca', 'settings.compact' => 'Compacto', 'settings.comfortable' => 'Cómodo', - 'settings.viewMode' => 'Modo de Vista', + 'settings.tvCornerSpotlightBackdrop' => 'Imagen destacada en la esquina', + 'settings.tvCornerSpotlightBackdropDescription' => 'Mostrar la imagen destacada en la esquina superior derecha en lugar de ocupar toda la pantalla', + 'settings.viewMode' => 'Modo de vista', 'settings.gridView' => 'Cuadrícula', 'settings.listView' => 'Lista', - 'settings.showHeroSection' => 'Mostrar Sección Destacada', - 'settings.continueWatchingAction' => 'Acción de Seguir viendo', + 'settings.showHeroSection' => 'Mostrar sección destacada', + 'settings.continueWatchingAction' => 'Acción de «Seguir viendo»', 'settings.continueWatchingPlay' => 'Reproducir', 'settings.continueWatchingDetails' => 'Abrir detalles', 'settings.episodeAction' => 'Acción de episodio', 'settings.episodePlay' => 'Reproducir', 'settings.episodeDetails' => 'Abrir detalles', - 'settings.useGlobalHubs' => 'Usar diseño de inicio', - 'settings.useGlobalHubsDescription' => 'Mostrar hubs de inicio unificados. Si no, usar recomendaciones de biblioteca.', - 'settings.showServerNameOnHubs' => 'Mostrar Nombre del Servidor en los Hubs', - 'settings.showServerNameOnHubsDescription' => 'Mostrar siempre nombres de servidor en títulos de hub.', + 'settings.useGlobalHubs' => 'Usar secciones de inicio', + 'settings.useGlobalHubsDescription' => 'Mostrar secciones de inicio unificadas. De lo contrario, usar las recomendaciones de cada biblioteca.', + 'settings.showServerNameOnHubs' => 'Mostrar el nombre del servidor en las secciones', + 'settings.showServerNameOnHubsDescription' => 'Mostrar siempre el nombre del servidor en los títulos de las secciones.', 'settings.groupLibrariesByServer' => 'Agrupar bibliotecas por servidor', 'settings.groupLibrariesByServerDescription' => 'Agrupar bibliotecas de la barra lateral por servidor multimedia.', 'settings.alwaysKeepSidebarOpen' => 'Mantener siempre la barra lateral abierta', 'settings.alwaysKeepSidebarOpenDescription' => 'La barra lateral permanece expandida y el área de contenido se ajusta para adaptarse', - 'settings.showUnwatchedCount' => 'Mostrar conteo de no vistos', - 'settings.showUnwatchedCountDescription' => 'Mostrar el conteo de episodios no vistos en series y temporadas', + 'settings.showUnwatchedCount' => 'Mostrar el número de elementos no vistos', + 'settings.showUnwatchedCountDescription' => 'Mostrar el número de episodios no vistos en series y temporadas', 'settings.showEpisodeNumberOnCards' => 'Mostrar número de episodio en las tarjetas', 'settings.showEpisodeNumberOnCardsDescription' => 'Mostrar temporada y episodio en tarjetas de episodio', 'settings.showSeasonPostersOnTabs' => 'Mostrar pósters de temporada en las pestañas', 'settings.showSeasonPostersOnTabsDescription' => 'Mostrar el póster de cada temporada sobre su pestaña', 'settings.tvFullCardLayout' => 'Tarjetas TV completas', 'settings.tvFullCardLayoutDescription' => 'Usar tarjetas TV solo con imagen y nombres de actores superpuestos', - 'settings.focusGlow' => 'Brillo de foco', - 'settings.focusGlowDescription' => 'Mostrar un brillo suave alrededor de la tarjeta con foco', + 'settings.focusGlow' => 'Resplandor de selección', + 'settings.focusGlowDescription' => 'Mostrar un resplandor suave alrededor de la tarjeta seleccionada', 'settings.visualEffects' => 'Efectos visuales', 'settings.visualEffectsAuto' => 'Automático', 'settings.visualEffectsAutoDescription' => 'Reduce automáticamente los efectos en dispositivos de bajo consumo', @@ -2282,18 +2288,18 @@ extension on TranslationsEs { 'settings.visualEffectsReducedDescription' => 'Menos animaciones e ilustraciones de menor resolución', 'settings.hideSpoilers' => 'Ocultar spoilers de episodios no vistos', 'settings.hideSpoilersDescription' => 'Desenfocar miniaturas y descripciones de episodios no vistos', - 'settings.playerBackend' => 'Reproductor', + 'settings.playerBackend' => 'Motor de reproducción', 'settings.exoPlayer' => 'ExoPlayer', 'settings.mpv' => 'mpv', - 'settings.hardwareDecoding' => 'Decodificación por Hardware', + 'settings.hardwareDecoding' => 'Decodificación por hardware', 'settings.hardwareDecodingDescription' => 'Usar aceleración por hardware cuando esté disponible', - 'settings.bufferSize' => 'Tamaño del Buffer', - 'settings.bufferSizeMB' => ({required Object size}) => '${size}MB', - 'settings.bufferSizeAuto' => 'Auto (Recomendado)', - 'settings.bufferSizeWarning' => ({required Object heap, required Object size}) => '${heap}MB de memoria disponible. Un búfer de ${size}MB puede afectar la reproducción.', + 'settings.bufferSize' => 'Tamaño del búfer', + 'settings.bufferSizeMB' => ({required Object size}) => '${size} MB', + 'settings.bufferSizeAuto' => 'Automático (recomendado)', + 'settings.bufferSizeWarning' => ({required Object heap, required Object size}) => '${heap} MB de memoria disponible. Un búfer de ${size} MB puede afectar a la reproducción.', 'settings.defaultQualityTitle' => 'Calidad predeterminada', 'settings.musicQualityTitle' => 'Calidad de música', - 'settings.subtitleStyling' => 'Estilo de Subtítulos', + 'settings.subtitleStyling' => 'Estilo de subtítulos', 'settings.subtitleStylingDescription' => 'Personalizar la apariencia de los subtítulos', 'settings.smallSkipDuration' => 'Salto pequeño', 'settings.largeSkipDuration' => 'Salto grande', @@ -2307,32 +2313,32 @@ extension on TranslationsEs { 'settings.showChapterMarkersOnTimelineDescription' => 'Dividir la barra de progreso en los límites de capítulos', 'settings.clickVideoTogglesPlayback' => 'Clic en el video para reproducir/pausar', 'settings.clickVideoTogglesPlaybackDescription' => 'Haz clic en el video para reproducir/pausar en vez de mostrar controles.', - 'settings.videoPlayerControls' => 'Controles del Reproductor de Video', - 'settings.keyboardShortcuts' => 'Atajos de Teclado', + 'settings.videoPlayerControls' => 'Controles del reproductor de video', + 'settings.keyboardShortcuts' => 'Atajos de teclado', 'settings.keyboardShortcutsDescription' => 'Personalizar los atajos de teclado', - 'settings.videoPlayerNavigation' => 'Navegación del Reproductor de Video', + 'settings.videoPlayerNavigation' => 'Navegación del reproductor de video', 'settings.videoPlayerNavigationDescription' => 'Usar las teclas de flecha para navegar por los controles del reproductor', - 'settings.watchTogetherRelay' => 'Relay de Ver Juntos', - 'settings.watchTogetherRelayDescription' => 'Define un relay personalizado. Todos deben usar el mismo servidor.', + 'settings.watchTogetherRelay' => 'Servidor de retransmisión de Ver juntos', + 'settings.watchTogetherRelayDescription' => 'Configura un servidor de retransmisión personalizado. Todos deben usar el mismo servidor.', 'settings.watchTogetherRelayHint' => 'https://mi-relay.ejemplo.com', - 'settings.watchTogetherRelayInvalid' => 'Enter a valid HTTP or HTTPS relay base URL.', - 'settings.crashReporting' => 'Informes de Errores', + 'settings.watchTogetherRelayInvalid' => 'Introduce una URL base HTTP o HTTPS válida para el servidor de retransmisión.', + 'settings.crashReporting' => 'Informes de errores', 'settings.crashReportingDescription' => 'Enviar informes de errores para mejorar la aplicación', - 'settings.debugLogging' => 'Registro de Depuración', - 'settings.debugLoggingDescription' => 'Habilitar registros detallados para resolución de problemas', - 'settings.viewLogs' => 'Ver Logs', + 'settings.debugLogging' => 'Registro de depuración', + 'settings.debugLoggingDescription' => 'Habilitar registros detallados para solucionar problemas', + 'settings.viewLogs' => 'Ver registros', 'settings.viewLogsDescription' => 'Ver los registros de la aplicación', - 'settings.clearCache' => 'Borrar Caché', + 'settings.clearCache' => 'Borrar caché', 'settings.clearCacheDescription' => 'Borrar imágenes y datos en caché. El contenido puede cargar más lento.', 'settings.clearCacheSuccess' => 'Caché borrada con éxito', - 'settings.resetSettings' => 'Restablecer Configuración', + 'settings.resetSettings' => 'Restablecer configuración', 'settings.resetSettingsDescription' => 'Restaurar ajustes predeterminados. No se puede deshacer.', 'settings.resetSettingsSuccess' => 'Configuración restablecida con éxito', 'settings.backup' => 'Copia de seguridad', - 'settings.exportSettings' => 'Exportar Configuración', + 'settings.exportSettings' => 'Exportar configuración', 'settings.exportSettingsDescription' => 'Guardar tus preferencias en un archivo', 'settings.exportSettingsSuccess' => 'Configuración exportada', - 'settings.importSettings' => 'Importar Configuración', + 'settings.importSettings' => 'Importar configuración', 'settings.importSettingsDescription' => 'Restaurar preferencias desde un archivo', 'settings.importSettingsConfirm' => 'Esto reemplazará tu configuración actual. ¿Continuar?', 'settings.importSettingsSuccess' => 'Configuración importada', @@ -2346,29 +2352,29 @@ extension on TranslationsEs { 'settings.checkForUpdates' => 'Buscar actualizaciones', 'settings.autoCheckUpdatesOnStartup' => 'Buscar actualizaciones automáticamente al iniciar', 'settings.autoCheckUpdatesOnStartupDescription' => 'Avisar al iniciar si hay una actualización disponible', - 'settings.validationErrorEnterNumber' => 'Por favor, introduce un número válido', + 'settings.validationErrorEnterNumber' => 'Introduce un número válido', 'settings.validationErrorDuration' => ({required Object min, required Object max, required Object unit}) => 'La duración debe estar entre ${min} y ${max} ${unit}', 'settings.shortcutAlreadyAssigned' => ({required Object action}) => 'El atajo ya está asignado a ${action}', 'settings.shortcutUpdated' => ({required Object action}) => 'Atajo actualizado para ${action}', - 'settings.saveFailed' => 'Could not save changes. Try again.', + 'settings.saveFailed' => 'No se pudieron guardar los cambios. Inténtalo de nuevo.', 'settings.autoSkip' => 'Salto automático', - 'settings.autoSkipIntro' => 'Saltar Intro automáticamente', - 'settings.autoSkipIntroDescription' => 'Saltar automáticamente los marcadores de intro después de unos segundos', - 'settings.autoSkipCredits' => 'Saltar Créditos automáticamente', - 'settings.autoSkipCreditsDescription' => 'Saltar automáticamente los créditos y reproducir el siguiente episodio', + 'settings.autoSkipIntro' => 'Saltar introducción automáticamente', + 'settings.autoSkipIntroDescription' => 'Saltar automáticamente los marcadores de introducción después de unos segundos', + 'settings.autoSkipCredits' => 'Saltar créditos automáticamente', + 'settings.autoSkipCreditsDescription' => 'Saltar automáticamente los créditos y reproducir el episodio siguiente', 'settings.forceSkipMarkerFallback' => 'Forzar marcadores alternativos', 'settings.forceSkipMarkerFallbackDescription' => 'Usar patrones de títulos de capítulos aunque Plex tenga marcadores', - 'settings.autoSkipDelay' => 'Retraso de Salto automático', + 'settings.autoSkipDelay' => 'Retraso del salto automático', 'settings.autoSkipDelayDescription' => ({required Object seconds}) => 'Esperar ${seconds} segundos antes de saltar automáticamente', - 'settings.introPattern' => 'Patrón de marcador de intro', - 'settings.introPatternDescription' => 'Expresión regular para reconocer marcadores de intro en los títulos de capítulos', + 'settings.introPattern' => 'Patrón de marcador de introducción', + 'settings.introPatternDescription' => 'Expresión regular para reconocer marcadores de introducción en los títulos de los capítulos', 'settings.creditsPattern' => 'Patrón de marcador de créditos', - 'settings.creditsPatternDescription' => 'Expresión regular para reconocer marcadores de créditos en los títulos de capítulos', + 'settings.creditsPatternDescription' => 'Expresión regular para reconocer marcadores de créditos en los títulos de los capítulos', 'settings.invalidRegex' => 'Expresión regular no válida', 'settings.regex' => 'Expresión regular', 'settings.downloads' => 'Descargas', 'settings.downloadLocationDescription' => 'Elegir dónde almacenar el contenido descargado', - 'settings.downloadLocationDefault' => 'Predeterminado (Almacenamiento de la App)', + 'settings.downloadLocationDefault' => 'Predeterminado (almacenamiento de la aplicación)', 'settings.downloadLocationCustom' => 'Ubicación personalizada', 'settings.selectFolder' => 'Seleccionar carpeta', 'settings.resetToDefault' => 'Restablecer al predeterminado', @@ -2382,7 +2388,7 @@ extension on TranslationsEs { 'settings.autoRemoveWatchedDownloads' => 'Eliminar descargas vistas automáticamente', 'settings.autoRemoveWatchedDownloadsDescription' => 'Eliminar automáticamente descargas vistas', 'settings.cellularDownloadBlocked' => 'Las descargas están bloqueadas en red móvil. Usa WiFi o cambia el ajuste.', - 'settings.maxVolume' => 'Volumen Máximo', + 'settings.maxVolume' => 'Volumen máximo', 'settings.maxVolumeDescription' => 'Permitir aumento de volumen por encima del 100% para medios con sonido bajo', 'settings.maxVolumePercent' => ({required Object percent}) => '${percent}%', 'settings.discordRichPresence' => 'Presencia de Discord', @@ -2393,7 +2399,7 @@ extension on TranslationsEs { 'settings.companionRemoteServer' => 'Servidor de control remoto', 'settings.companionRemoteServerDescription' => 'Permitir que dispositivos móviles en tu red controlen esta aplicación', 'settings.autoPip' => 'Imagen en imagen automática', - 'settings.autoPipDescription' => 'Entrar en picture-in-picture al salir durante la reproducción', + 'settings.autoPipDescription' => 'Activar automáticamente el modo de imagen en imagen al salir de la aplicación durante la reproducción', 'settings.matchContentFrameRate' => 'Ajustar frecuencia de actualización', 'settings.matchContentFrameRateDescription' => 'Ajustar la frecuencia de pantalla al contenido de video', 'settings.matchRefreshRate' => 'Ajustar frecuencia de refresco', @@ -2403,9 +2409,9 @@ extension on TranslationsEs { 'settings.displaySwitchDelay' => 'Retraso de cambio de pantalla', 'settings.tunneledPlayback' => 'Reproducción tunelizada', 'settings.tunneledPlaybackDescription' => 'Usar tunelización de video. Desactívala si HDR muestra video negro.', - 'settings.audioPassthrough' => 'Audio Passthrough', - 'settings.audioPassthroughDescription' => 'Envía el audio Dolby/DTS a tu receptor o TV sin recodificar, conservando el sonido envolvente. Desactívalo si no tienes sonido.', - 'settings.audioPassthroughDescriptionAppleTv' => 'Entrega Dolby Digital Plus (incluido Atmos) al sistema como bitstream. DTS y TrueHD se siguen reproduciendo como PCM multicanal. Pueden producirse breves cortes de audio al buscar.', + 'settings.audioPassthrough' => 'Transferencia directa de audio', + 'settings.audioPassthroughDescription' => 'Envía el audio Dolby/DTS a tu receptor o TV sin recodificar, conservando el sonido envolvente. Desactívala si no tienes sonido.', + 'settings.audioPassthroughDescriptionAppleTv' => 'Usa el decodificador Dolby nativo de Apple para Dolby Digital Plus, incluido Atmos. DTS y TrueHD se siguen reproduciendo como PCM multicanal. Desactívalo si no tienes sonido.', 'settings.audioDownmix' => 'Mezclar a estéreo', 'settings.audioDownmixDescription' => 'Mezcla el sonido envolvente a dos canales para altavoces estéreo o auriculares', 'settings.downmixCenterBoost' => 'Realce del canal central', @@ -2416,12 +2422,12 @@ extension on TranslationsEs { 'settings.audioDownmixNormalizeDescription' => 'Reduce la mezcla para evitar saturación. Desactívalo para mantener el volumen original (puede distorsionar escenas fuertes).', 'settings.atmosDiagnostics' => 'Prueba de salida Atmos', 'settings.atmosDiagnosticsDescription' => 'Diagnostica la salida Dolby Atmos reproduciendo señales de prueba con el reproductor del sistema', - 'settings.atmosTestHlsAtmos' => 'Stream Atmos de Apple', - 'settings.atmosTestHlsAtmosDescription' => 'Stream Dolby Atmos de referencia. El receptor debería mostrar Dolby Atmos.', - 'settings.atmosTestHlsControl' => 'Stream surround de Apple', - 'settings.atmosTestHlsControlDescription' => 'Stream de control sin Atmos. El receptor debería mostrar surround sin Atmos.', - 'settings.atmosTestRawStream' => 'Stream EAC3 sin procesar', - 'settings.atmosTestRawStreamDescription' => 'Transmite el archivo de prueba igual que la reproducción Atmos del reproductor. Necesita la URL del archivo de prueba.', + 'settings.atmosTestHlsAtmos' => 'Flujo Atmos de Apple', + 'settings.atmosTestHlsAtmosDescription' => 'Flujo Dolby Atmos de referencia. El receptor debería mostrar Dolby Atmos.', + 'settings.atmosTestHlsControl' => 'Flujo envolvente de Apple', + 'settings.atmosTestHlsControlDescription' => 'Flujo de control sin Atmos. El receptor debería indicar sonido envolvente sin Atmos.', + 'settings.atmosTestRawStream' => 'Flujo EAC3 sin procesar', + 'settings.atmosTestRawStreamDescription' => 'Transmite el archivo de prueba igual que durante la reproducción de Atmos. Requiere la URL del archivo de prueba.', 'settings.atmosTestRawFile' => 'Archivo EAC3 sin procesar', 'settings.atmosTestRawFileDescription' => 'Reproduce el archivo de prueba con longitud conocida. Necesita la URL del archivo de prueba.', 'settings.atmosTestStop' => 'Detener prueba', @@ -2430,23 +2436,23 @@ extension on TranslationsEs { 'settings.atmosTestUrlMissing' => 'Configura primero la URL del archivo de prueba', 'settings.atmosTestStatus' => 'Estado', 'settings.dvConversionMode' => 'Conversión de Dolby Vision', - 'settings.dvConversionModeDescription' => 'Elige cómo ExoPlayer gestiona archivos Dolby Vision Profile 7.', + 'settings.dvConversionModeDescription' => 'Elige cómo gestiona ExoPlayer los archivos Dolby Vision de perfil 7.', 'settings.dvConversionAuto' => 'Automático', 'settings.dvConversionNative' => 'Nativo / desactivado', 'settings.dvConversionDv81' => 'P7 → P8.1', 'settings.dvConversionHevcStrip' => 'P7 → HEVC', - 'settings.dvConversionAutoDescription' => 'Usar detección de capacidades del dispositivo y el comportamiento de respaldo normal', + 'settings.dvConversionAutoDescription' => 'Usar la detección de capacidades del dispositivo y el comportamiento alternativo normal', 'settings.dvConversionNativeDescription' => 'Forzar DV7 nativo y suprimir el reintento de conversión DV', - 'settings.dvConversionDv81Description' => 'Forzar conversión RPU en línea a Dolby Vision perfil 8.1', - 'settings.dvConversionHevcStripDescription' => 'Quitar capas RPU/EL de Dolby Vision y presentar HEVC normal', - 'settings.requireProfileSelectionOnOpen' => 'Pedir perfil al abrir la app', + 'settings.dvConversionDv81Description' => 'Forzar la conversión de RPU en línea al perfil 8.1 de Dolby Vision', + 'settings.dvConversionHevcStripDescription' => 'Eliminar las capas RPU/EL de Dolby Vision y presentar HEVC convencional', + 'settings.requireProfileSelectionOnOpen' => 'Pedir perfil al abrir la aplicación', 'settings.requireProfileSelectionOnOpenDescription' => 'Mostrar selección de perfil cada vez que se abre la aplicación', 'settings.forceTvMode' => 'Forzar modo TV', 'settings.forceTvModeDescription' => 'Forzar diseño TV. Para dispositivos que no lo detectan. Requiere reinicio.', 'settings.startInFullscreen' => 'Iniciar en pantalla completa', 'settings.startInFullscreenDescription' => 'Abrir Plezy en modo pantalla completa al iniciar', 'settings.exitFullscreenOnPlayerClose' => 'Salir de pantalla completa al cerrar el reproductor', - 'settings.exitFullscreenOnPlayerCloseDescription' => 'Salir automáticamente del modo de pantalla completa al cerrar el reproductor de vídeo', + 'settings.exitFullscreenOnPlayerCloseDescription' => 'Salir automáticamente del modo de pantalla completa al cerrar el reproductor de video', 'settings.autoHidePerformanceOverlay' => 'Ocultar superposición de rendimiento automáticamente', 'settings.autoHidePerformanceOverlayDescription' => 'Desvanecer la superposición de rendimiento con los controles de reproducción', 'settings.showNavBarLabels' => 'Mostrar etiquetas de la barra de navegación', @@ -2461,7 +2467,7 @@ extension on TranslationsEs { 'settings.content' => 'Contenido', 'settings.player' => 'Reproductor', 'settings.subtitlesAndConfig' => 'Subtítulos y configuración', - 'settings.seekAndTiming' => 'Búsqueda y tiempo', + 'settings.seekAndTiming' => 'Desplazamiento y tiempos', 'settings.behavior' => 'Comportamiento', 'search.hint' => 'Buscar películas, series, música...', 'search.tryDifferentTerm' => 'Prueba con un término de búsqueda diferente', @@ -2472,40 +2478,40 @@ extension on TranslationsEs { 'hotkeys.noShortcutSet' => 'Sin atajo asignado', 'hotkeys.currentShortcut' => 'Atajo actual:', 'hotkeys.pressToRecord' => 'Seleccionar para grabar un atajo', - 'hotkeys.recordingShortcut' => 'Presiona el atajo ahora', - 'hotkeys.actions.playPause' => 'Reproducir/Pausar', - 'hotkeys.actions.volumeUp' => 'Subir Volumen', - 'hotkeys.actions.volumeDown' => 'Bajar Volumen', + 'hotkeys.recordingShortcut' => 'Pulsa el atajo ahora', + 'hotkeys.actions.playPause' => 'Reproducir/pausar', + 'hotkeys.actions.volumeUp' => 'Subir volumen', + 'hotkeys.actions.volumeDown' => 'Bajar volumen', 'hotkeys.actions.seekForward' => ({required Object seconds}) => 'Avanzar (${seconds}s)', 'hotkeys.actions.seekBackward' => ({required Object seconds}) => 'Retroceder (${seconds}s)', - 'hotkeys.actions.fullscreenToggle' => 'Alternar Pantalla Completa', - 'hotkeys.actions.muteToggle' => 'Alternar Silencio', - 'hotkeys.actions.subtitleToggle' => 'Alternar Subtítulos', - 'hotkeys.actions.audioTrackNext' => 'Siguiente Pista de Audio', - 'hotkeys.actions.subtitleTrackNext' => 'Siguiente Pista de Subtítulos', - 'hotkeys.actions.chapterNext' => 'Siguiente Capítulo', - 'hotkeys.actions.chapterPrevious' => 'Anterior Capítulo', - 'hotkeys.actions.episodeNext' => 'Siguiente Episodio', - 'hotkeys.actions.episodePrevious' => 'Anterior Episodio', - 'hotkeys.actions.speedIncrease' => 'Aumentar Velocidad', - 'hotkeys.actions.speedDecrease' => 'Disminuir Velocidad', - 'hotkeys.actions.speedReset' => 'Restablecer Velocidad', + 'hotkeys.actions.fullscreenToggle' => 'Alternar pantalla completa', + 'hotkeys.actions.muteToggle' => 'Activar/desactivar silencio', + 'hotkeys.actions.subtitleToggle' => 'Activar/desactivar subtítulos', + 'hotkeys.actions.audioTrackNext' => 'Pista de audio siguiente', + 'hotkeys.actions.subtitleTrackNext' => 'Pista de subtítulos siguiente', + 'hotkeys.actions.chapterNext' => 'Capítulo siguiente', + 'hotkeys.actions.chapterPrevious' => 'Capítulo anterior', + 'hotkeys.actions.episodeNext' => 'Episodio siguiente', + 'hotkeys.actions.episodePrevious' => 'Episodio anterior', + 'hotkeys.actions.speedIncrease' => 'Aumentar velocidad', + 'hotkeys.actions.speedDecrease' => 'Disminuir velocidad', + 'hotkeys.actions.speedReset' => 'Restablecer velocidad', 'hotkeys.actions.zoomIn' => 'Acercar', 'hotkeys.actions.zoomOut' => 'Alejar', 'hotkeys.actions.zoomReset' => 'Restablecer zoom', - 'hotkeys.actions.subSeekNext' => 'Ir al Siguiente Subtítulo', - 'hotkeys.actions.subSeekPrev' => 'Ir al Anterior Subtítulo', - 'hotkeys.actions.shaderToggle' => 'Alternar Shaders', - 'hotkeys.actions.skipMarker' => 'Saltar Intro/Créditos', + 'hotkeys.actions.subSeekNext' => 'Ir al subtítulo siguiente', + 'hotkeys.actions.subSeekPrev' => 'Ir al subtítulo anterior', + 'hotkeys.actions.shaderToggle' => 'Activar/desactivar shaders', + 'hotkeys.actions.skipMarker' => 'Saltar introducción/créditos', 'hotkeys.actions.screenshot' => 'Tomar captura de pantalla', - 'fileInfo.title' => 'Información del Archivo', + 'fileInfo.title' => 'Información del archivo', 'fileInfo.video' => 'Video', 'fileInfo.audio' => 'Audio', 'fileInfo.file' => 'Archivo', 'fileInfo.advanced' => 'Avanzado', 'fileInfo.codec' => 'Códec', 'fileInfo.resolution' => 'Resolución', - 'fileInfo.bitrate' => 'Bitrate', + 'fileInfo.bitrate' => 'Tasa de bits', 'fileInfo.frameRate' => 'Frecuencia de fotogramas', 'fileInfo.aspectRatio' => 'Relación de aspecto', 'fileInfo.profile' => 'Perfil', @@ -2516,21 +2522,21 @@ extension on TranslationsEs { 'fileInfo.chromaSubsampling' => 'Submuestreo de croma', 'fileInfo.channels' => 'Canales', 'fileInfo.subtitles' => 'Subtítulos', - 'fileInfo.overallBitrate' => 'Bitrate total', + 'fileInfo.overallBitrate' => 'Tasa de bits total', 'fileInfo.path' => 'Ruta', 'fileInfo.size' => 'Tamaño', 'fileInfo.container' => 'Contenedor', 'fileInfo.duration' => 'Duración', - 'fileInfo.optimizedForStreaming' => 'Optimizado para streaming', - 'fileInfo.has64bitOffsets' => 'Offsets de 64 bits', - 'mediaMenu.markAsWatched' => 'Marcar como Visto', - 'mediaMenu.markAsUnwatched' => 'Marcar como No Visto', - 'mediaMenu.removeFromContinueWatching' => 'Eliminar de Seguir Viendo', + 'fileInfo.optimizedForStreaming' => 'Optimizado para transmisión', + 'fileInfo.has64bitOffsets' => 'Desplazamientos de 64 bits', + 'mediaMenu.markAsWatched' => 'Marcar como visto', + 'mediaMenu.markAsUnwatched' => 'Marcar como no visto', + 'mediaMenu.removeFromContinueWatching' => 'Eliminar de Seguir viendo', 'mediaMenu.viewDetails' => 'Ver detalles', 'mediaMenu.goToSeries' => 'Ir a la serie', - 'mediaMenu.shufflePlay' => 'Reproducción Aleatoria', + 'mediaMenu.shufflePlay' => 'Reproducción aleatoria', 'mediaMenu.shuffleNotAvailableOffline' => 'La reproducción aleatoria no está disponible sin conexión', - 'mediaMenu.fileInfo' => 'Información del Archivo', + 'mediaMenu.fileInfo' => 'Información del archivo', 'mediaMenu.deleteFromServer' => 'Eliminar del servidor', 'mediaMenu.confirmDelete' => '¿Eliminar este medio y sus archivos de tu servidor?', 'mediaMenu.deleteMultipleWarning' => 'Esto incluye todos los episodios y sus archivos.', @@ -2545,7 +2551,7 @@ extension on TranslationsEs { 'rateSheet.favorited' => 'Marcado como favorito', 'rateSheet.saved' => 'Guardado', 'rateSheet.notAvailable' => 'No se encontró coincidencia', - 'rateSheet.noConnectedServices' => 'Conecta un servicio en Configuración para calificar ahí.', + 'rateSheet.noConnectedServices' => 'Conecta un servicio en Configuración para valorar el contenido en él.', 'accessibility.mediaCardMovie' => ({required Object title}) => '${title}, película', 'accessibility.mediaCardShow' => ({required Object title}) => '${title}, serie de TV', 'accessibility.mediaCardEpisode' => ({required Object title, required Object episodeInfo}) => '${title}, ${episodeInfo}', @@ -2581,24 +2587,26 @@ extension on TranslationsEs { 'videoControls.playsLater' => ({required Object label}) => '${label} se reproduce más tarde', 'videoControls.playsEarlier' => ({required Object label}) => '${label} se reproduce antes', 'videoControls.noOffset' => 'Sin desfase', - 'videoControls.letterbox' => 'Letterbox', + 'videoControls.letterbox' => 'Con bandas negras', 'videoControls.fillScreen' => 'Llenar pantalla', 'videoControls.stretch' => 'Estirar', 'videoControls.lockRotation' => 'Bloquear rotación', 'videoControls.unlockRotation' => 'Desbloquear rotación', - 'videoControls.timerActive' => 'Temporizador Activo', + 'videoControls.timerActive' => 'Temporizador activo', 'videoControls.playbackWillPauseIn' => ({required Object duration}) => 'La reproducción se pausará en ${duration}', 'videoControls.sleepTimerEndOfVideo' => 'Fin del video actual', 'videoControls.sleepTimerStopAtHeader' => 'Detener en', 'videoControls.sleepTimerDurationHeader' => 'Temporizador', 'videoControls.playbackWillPauseAtEnd' => 'La reproducción se pausará al final de este video', 'videoControls.stillWatching' => '¿Sigues viendo?', - 'videoControls.pausingIn' => ({required Object seconds}) => 'Pausa en ${seconds}s', + 'videoControls.pausingIn' => ({required Object seconds}) => 'Se pausará en ${seconds}s', 'videoControls.continueWatching' => 'Continuar', 'videoControls.autoPlayNext' => 'Reproducir siguiente automáticamente', 'videoControls.playNext' => 'Reproducir siguiente', 'videoControls.playButton' => 'Reproducir', - 'videoControls.pauseButton' => 'Pausa', + 'videoControls.pauseButton' => 'Pausar', + 'videoControls.showPlaybackControls' => 'Mostrar controles de reproducción', + 'videoControls.hidePlaybackControls' => 'Ocultar controles de reproducción', 'videoControls.seekBackwardButton' => ({required Object seconds}) => 'Retroceder ${seconds} segundos', 'videoControls.seekForwardButton' => ({required Object seconds}) => 'Avanzar ${seconds} segundos', 'videoControls.previousButton' => 'Episodio anterior', @@ -2617,7 +2625,7 @@ extension on TranslationsEs { 'videoControls.qualityPresetLabel' => ({required Object resolution, required Object bitrate}) => '${resolution}p ${bitrate} Mbps', 'videoControls.transcodeUnavailableFallback' => 'Transcodificación no disponible — reproduciendo calidad original', 'videoControls.subtitleUnavailableFallback' => 'No se pudieron cargar los subtítulos seleccionados — continuando sin subtítulos', - 'videoControls.pipButton' => 'Modo PiP (Imagen en Imagen)', + 'videoControls.pipButton' => 'Modo de imagen en imagen', 'videoControls.aspectRatioButton' => 'Relación de aspecto', 'videoControls.ambientLighting' => 'Iluminación ambiental', 'videoControls.fullscreenButton' => 'Entrar en pantalla completa', @@ -2630,16 +2638,16 @@ extension on TranslationsEs { 'videoControls.timelineSlider' => 'Línea de tiempo del video', 'videoControls.volumeSlider' => 'Nivel de volumen', 'videoControls.endsAt' => ({required Object time}) => 'Termina a las ${time}', - 'videoControls.pipActive' => 'Reproduciendo en Imagen en Imagen', - 'videoControls.pipFailed' => 'Error al iniciar Imagen en Imagen', + 'videoControls.pipActive' => 'Reproduciendo en modo de imagen en imagen', + 'videoControls.pipFailed' => 'No se pudo iniciar el modo de imagen en imagen', 'videoControls.screenshotSaved' => 'Captura de pantalla guardada', 'videoControls.zoomPercent' => ({required Object percent}) => 'Zoom ${percent}%', 'videoControls.pipErrors.androidVersion' => 'Requiere Android 8.0 o más reciente', 'videoControls.pipErrors.iosVersion' => 'Requiere iOS 15.0 o más reciente', - 'videoControls.pipErrors.permissionDisabled' => 'Picture-in-picture está desactivado. Actívalo en los ajustes del sistema.', - 'videoControls.pipErrors.notSupported' => 'El dispositivo no soporta el modo Imagen en Imagen', - 'videoControls.pipErrors.voSwitchFailed' => 'Error al cambiar la salida de video para Imagen en Imagen', - 'videoControls.pipErrors.failed' => 'Error al iniciar Imagen en Imagen', + 'videoControls.pipErrors.permissionDisabled' => 'El modo de imagen en imagen está desactivado. Actívalo en los ajustes del sistema.', + 'videoControls.pipErrors.notSupported' => 'El dispositivo no admite el modo de imagen en imagen', + 'videoControls.pipErrors.voSwitchFailed' => 'No se pudo cambiar la salida de video para el modo de imagen en imagen', + 'videoControls.pipErrors.failed' => 'No se pudo iniciar el modo de imagen en imagen', 'videoControls.pipErrors.unknown' => ({required Object error}) => 'Ocurrió un error: ${error}', 'videoControls.chapters' => 'Capítulos', 'videoControls.noChaptersAvailable' => 'No hay capítulos disponibles', @@ -2655,12 +2663,12 @@ extension on TranslationsEs { 'videoControls.subtitleDownloadedNotApplied' => 'El subtítulo se descargó, pero no se pudo seleccionar', 'videoControls.subtitleDownloadFailed' => 'Error al descargar subtítulo', 'videoControls.searchLanguages' => 'Buscar idiomas...', + _ => null, + } ?? switch (path) { 'messages.markedAsWatched' => 'Marcado como visto', 'messages.markedAsUnwatched' => 'Marcado como no visto', 'messages.markedAsWatchedOffline' => 'Marcado como visto (se sincronizará al estar en línea)', 'messages.markedAsUnwatchedOffline' => 'Marcado como no visto (se sincronizará al estar en línea)', - _ => null, - } ?? switch (path) { 'messages.autoRemovedWatchedDownload' => ({required Object title}) => 'Eliminado automáticamente: ${title}', 'messages.autoRemovedWatchedDownloads' => ({required num n}) => (_root.$meta.cardinalResolver ?? PluralResolvers.cardinal('es'))(n, one: 'Se eliminó automáticamente ${n} descarga vista', other: 'Se eliminaron automáticamente ${n} descargas vistas', ), 'messages.removedFromContinueWatching' => 'Eliminado de Seguir Viendo', @@ -2668,21 +2676,21 @@ extension on TranslationsEs { 'messages.streamInterrupted' => 'La reproducción se interrumpió. Pulsa reproducir o avanza para volver a intentarlo.', 'messages.liveStreamInterrupted' => 'La transmisión en vivo se interrumpió. Pulsa reproducir para volver a intentarlo.', 'messages.fileInfoNotAvailable' => 'Información de archivo no disponible', - 'messages.playbackAuthenticationRequired' => 'Sign in to the media server again to play this item.', - 'messages.playbackServerUnavailable' => 'The media server is unavailable. Try again later.', - 'messages.playbackDataInvalid' => 'The server returned invalid playback information.', - 'messages.playbackCancelled' => 'Playback was cancelled.', - 'messages.playbackFailed' => 'Playback could not be started.', - 'messages.errorLoadingFileInfo' => ({required Object error}) => 'Error al cargar info de archivo: ${error}', + 'messages.playbackAuthenticationRequired' => 'Vuelve a iniciar sesión en el servidor multimedia para reproducir este elemento.', + 'messages.playbackServerUnavailable' => 'El servidor multimedia no está disponible. Inténtalo de nuevo más tarde.', + 'messages.playbackDataInvalid' => 'El servidor devolvió información de reproducción no válida.', + 'messages.playbackCancelled' => 'Se canceló la reproducción.', + 'messages.playbackFailed' => 'No se pudo iniciar la reproducción.', + 'messages.errorLoadingFileInfo' => ({required Object error}) => 'Error al cargar la información del archivo: ${error}', 'messages.errorLoadingSeries' => 'Error al cargar la serie', - 'messages.musicNotSupported' => 'La reproducción de música aún no está soportada', + 'messages.musicNotSupported' => 'La reproducción de música aún no es compatible', 'messages.noDescriptionAvailable' => 'No hay descripción disponible', 'messages.noProfilesAvailable' => 'No hay perfiles disponibles', 'messages.contactAdminForProfiles' => 'Contacta a tu administrador del servidor para añadir perfiles', 'messages.unableToDetermineLibrarySection' => 'No se puede determinar la sección de biblioteca para este elemento', - 'messages.logsCleared' => 'Logs borrados', - 'messages.logsCopied' => 'Logs copiados al portapapeles', - 'messages.noLogsAvailable' => 'No hay logs disponibles', + 'messages.logsCleared' => 'Registros borrados', + 'messages.logsCopied' => 'Registros copiados al portapapeles', + 'messages.noLogsAvailable' => 'No hay registros disponibles', 'messages.libraryScanning' => ({required Object title}) => 'Escaneando "${title}"...', 'messages.libraryScanStarted' => ({required Object title}) => 'Escaneo de biblioteca iniciado para "${title}"', 'messages.libraryScanFailed' => ({required Object error}) => 'Error al escanear biblioteca: ${error}', @@ -2698,7 +2706,7 @@ extension on TranslationsEs { 'messages.noResultsFound' => 'No se encontraron resultados', 'messages.sleepTimerSet' => ({required Object label}) => 'Temporizador establecido en ${label}', 'messages.noItemsAvailable' => 'No hay elementos disponibles', - 'messages.failedToCreatePlayQueueNoItems' => 'Error al crear la cola de reproducción - no hay elementos', + 'messages.failedToCreatePlayQueueNoItems' => 'No se pudo crear la cola de reproducción: no hay elementos', 'messages.failedPlayback' => ({required Object action, required Object error}) => 'Error al ${action}: ${error}', 'messages.switchingToCompatiblePlayer' => 'Cambiando a reproductor compatible...', 'messages.serverLimitTitle' => 'Error de reproducción', @@ -2709,15 +2717,15 @@ extension on TranslationsEs { 'subtitlingStyling.text' => 'Texto', 'subtitlingStyling.border' => 'Borde', 'subtitlingStyling.background' => 'Fondo', - 'subtitlingStyling.fontSize' => 'Tamaño de Fuente', - 'subtitlingStyling.textColor' => 'Color de Texto', - 'subtitlingStyling.borderSize' => 'Tamaño de Borde', - 'subtitlingStyling.borderColor' => 'Color de Borde', - 'subtitlingStyling.backgroundOpacity' => 'Opacidad de Fondo', - 'subtitlingStyling.backgroundColor' => 'Color de Fondo', + 'subtitlingStyling.fontSize' => 'Tamaño de fuente', + 'subtitlingStyling.textColor' => 'Color del texto', + 'subtitlingStyling.borderSize' => 'Tamaño del borde', + 'subtitlingStyling.borderColor' => 'Color del borde', + 'subtitlingStyling.backgroundOpacity' => 'Opacidad del fondo', + 'subtitlingStyling.backgroundColor' => 'Color del fondo', 'subtitlingStyling.position' => 'Posición', 'subtitlingStyling.assOverride' => 'Sobreescritura ASS', - 'subtitlingStyling.overrideScale' => 'Escalar', + 'subtitlingStyling.overrideScale' => 'Escala', 'subtitlingStyling.overrideForce' => 'Forzar', 'subtitlingStyling.overrideStrip' => 'Quitar estilos', 'subtitlingStyling.positionTop' => 'Arriba', @@ -2726,22 +2734,22 @@ extension on TranslationsEs { 'subtitlingStyling.italic' => 'Cursiva', 'subtitlingStyling.renderResolution' => 'Resolución de renderizado', 'subtitlingStyling.renderResolutionScreen' => 'Resolución de pantalla', - 'subtitlingStyling.renderResolutionVideo' => 'Resolución del vídeo', + 'subtitlingStyling.renderResolutionVideo' => 'Resolución del video', 'mpvConfig.title' => 'Configuración de mpv', 'mpvConfig.description' => 'Ajustes avanzados del reproductor de video', - 'mpvConfig.presets' => 'Ajustes preestablecidos', - 'mpvConfig.noPresets' => 'No hay ajustes guardados', - 'mpvConfig.saveAsPreset' => 'Guardar como Ajuste...', - 'mpvConfig.presetName' => 'Nombre del Ajuste', - 'mpvConfig.presetNameHint' => 'Introduce un nombre para este ajuste', + 'mpvConfig.presets' => 'Preajustes', + 'mpvConfig.noPresets' => 'No hay preajustes guardados', + 'mpvConfig.saveAsPreset' => 'Guardar como preajuste...', + 'mpvConfig.presetName' => 'Nombre del preajuste', + 'mpvConfig.presetNameHint' => 'Introduce un nombre para este preajuste', 'mpvConfig.loadPreset' => 'Cargar', 'mpvConfig.deletePreset' => 'Eliminar', - 'mpvConfig.presetSaved' => 'Ajuste guardado', - 'mpvConfig.presetLoaded' => 'Ajuste cargado', - 'mpvConfig.presetDeleted' => 'Ajuste eliminado', - 'mpvConfig.confirmDeletePreset' => '¿Estás seguro de que quieres eliminar este ajuste?', + 'mpvConfig.presetSaved' => 'Preajuste guardado', + 'mpvConfig.presetLoaded' => 'Preajuste cargado', + 'mpvConfig.presetDeleted' => 'Preajuste eliminado', + 'mpvConfig.confirmDeletePreset' => '¿Estás seguro de que quieres eliminar este preajuste?', 'mpvConfig.configPlaceholder' => 'gpu-api=vulkan\nhwdec=auto\n# comment', - 'dialog.confirmAction' => 'Confirmar Acción', + 'dialog.confirmAction' => 'Confirmar acción', 'profiles.addPlezyProfile' => 'Añadir perfil de Plezy', 'profiles.switchingProfile' => 'Cambiando de perfil…', 'profiles.deleteThisProfileTitle' => '¿Eliminar este perfil?', @@ -2782,12 +2790,12 @@ extension on TranslationsEs { 'profiles.connectionAs' => ({required Object displayName}) => 'como ${displayName}', 'profiles.makeDefault' => 'Establecer como predeterminada', 'profiles.removeConnection' => 'Eliminar', - 'profiles.profileRenamed' => 'Perfil renombrado.', + 'profiles.profileRenamed' => 'Se cambió el nombre del perfil.', 'profiles.borrowAddTo' => ({required Object displayName}) => 'Añadir a ${displayName}', 'profiles.borrowExplain' => 'Toma prestada la conexión de otro perfil. Los perfiles protegidos con PIN requieren un PIN.', - 'profiles.borrowEmpty' => 'Nada para tomar prestado todavía.', - 'profiles.borrowEmptySubtitle' => 'Conecta Plex o Jellyfin primero a otro perfil.', - 'profiles.borrowLoadFailed' => 'Available connections could not be loaded. Try again.', + 'profiles.borrowEmpty' => 'Todavía no hay ninguna conexión que tomar prestada.', + 'profiles.borrowEmptySubtitle' => 'Conecta primero Plex o Jellyfin a otro perfil.', + 'profiles.borrowLoadFailed' => 'No se pudieron cargar las conexiones disponibles. Inténtalo de nuevo.', 'profiles.borrowFromProfile' => ({required Object displayName}) => 'De ${displayName}', 'profiles.borrowConnectionBorrowed' => 'Conexión tomada prestada.', 'profiles.borrowFailed' => 'No se pudo tomar prestada la conexión.', @@ -2797,7 +2805,7 @@ extension on TranslationsEs { 'profiles.failedToLoadHomeUsers' => 'No se pudieron cargar tus usuarios de Plex Home. Comprueba tu conexión e inténtalo de nuevo.', 'profiles.failedToVerifyPin' => 'No se pudo verificar el PIN.', 'profiles.newProfile' => 'Nuevo perfil', - 'profiles.profileNameHint' => 'p. ej. Invitados, Niños, Sala familiar', + 'profiles.profileNameHint' => 'p. ej., Invitados, Niños, Sala familiar', 'profiles.pinProtectionOptional' => 'Protección con PIN (opcional)', 'profiles.pinExplain' => 'Se requiere PIN de 4 dígitos para cambiar de perfil.', 'profiles.continueButton' => 'Continuar', @@ -2810,11 +2818,11 @@ extension on TranslationsEs { 'connections.sessionExpiredMany' => ({required Object count}) => 'Sesión caducada para ${count} servidores', 'connections.signInAgain' => 'Iniciar sesión de nuevo', 'connections.editJellyfinTitle' => 'Editar conexión de Jellyfin', - 'connections.editJellyfinIntro' => ({required Object serverName}) => 'Añade o elimina URL para ${serverName}. Plezy usará la URL accesible con menor latencia.', + 'connections.editJellyfinIntro' => ({required Object serverName}) => 'Añade o elimina direcciones URL para ${serverName}. Plezy usará la dirección accesible con menor latencia.', 'discover.title' => 'Descubrir', 'discover.noContentAvailable' => 'No hay contenido disponible', 'discover.addMediaToLibraries' => 'Añade contenido a tus bibliotecas', - 'discover.continueWatching' => 'Seguir Viendo', + 'discover.continueWatching' => 'Seguir viendo', 'discover.continueWatchingIn' => ({required Object library}) => 'Seguir viendo en ${library}', 'discover.nextUp' => 'A continuación', 'discover.nextUpIn' => ({required Object library}) => 'A continuación en ${library}', @@ -2826,32 +2834,32 @@ extension on TranslationsEs { 'discover.playEpisode' => ({required Object season, required Object episode}) => 'T${season}E${episode}', 'discover.overview' => 'Resumen', 'discover.cast' => 'Reparto', - 'discover.extras' => 'Tráilers y Extras', + 'discover.extras' => 'Tráilers y extras', 'discover.studio' => 'Estudio', - 'discover.rating' => 'Calificación', + 'discover.rating' => 'Valoración', 'discover.movie' => 'Película', 'discover.tvShow' => 'Serie de TV', 'discover.minutesLeft' => ({required Object minutes}) => 'quedan ${minutes} min', - 'discover.moreLikeThis' => 'Más como esto', + 'discover.moreLikeThis' => 'Más contenido similar', 'errors.searchFailed' => ({required Object error}) => 'Error en la búsqueda: ${error}', 'errors.connectionTimeout' => ({required Object context}) => 'Tiempo de conexión agotado al cargar ${context}', 'errors.connectionFailed' => 'No se puede conectar al servidor multimedia', 'errors.unableToLoad' => ({required Object context}) => 'No se pudo cargar ${context}. Inténtalo de nuevo.', 'errors.noClientAvailable' => 'No hay cliente disponible', - 'errors.pleaseEnterToken' => 'Por favor, introduce un token', + 'errors.pleaseEnterToken' => 'Introduce un token', 'errors.invalidToken' => 'Token no válido', 'errors.failedToVerifyToken' => ({required Object error}) => 'Error al verificar el token: ${error}', 'errors.failedToSwitchProfile' => ({required Object displayName}) => 'Error al cambiar al perfil ${displayName}', 'errors.failedToDeleteProfile' => ({required Object displayName}) => 'Error al eliminar ${displayName}', - 'errors.failedToRate' => 'No se pudo actualizar la calificación', + 'errors.failedToRate' => 'No se pudo actualizar la valoración', 'libraries.title' => 'Bibliotecas', 'libraries.fallbackTitle' => 'Biblioteca', - 'libraries.scanLibraryFiles' => 'Escanear Archivos de la Biblioteca', - 'libraries.scanLibrary' => 'Escanear Biblioteca', + 'libraries.scanLibraryFiles' => 'Escanear archivos de la biblioteca', + 'libraries.scanLibrary' => 'Escanear biblioteca', 'libraries.analyze' => 'Analizar', - 'libraries.analyzeLibrary' => 'Analizar Biblioteca', - 'libraries.refreshMetadata' => 'Actualizar Metadatos', - 'libraries.emptyTrash' => 'Vaciar Papelera', + 'libraries.analyzeLibrary' => 'Analizar biblioteca', + 'libraries.refreshMetadata' => 'Actualizar metadatos', + 'libraries.emptyTrash' => 'Vaciar papelera', 'libraries.emptyingTrash' => ({required Object title}) => 'Vaciando papelera de "${title}"...', 'libraries.trashEmptied' => ({required Object title}) => 'Papelera vaciada para "${title}"', 'libraries.failedToEmptyTrash' => ({required Object error}) => 'Error al vaciar papelera: ${error}', @@ -2865,12 +2873,12 @@ extension on TranslationsEs { 'libraries.noItemsMatchFilters' => 'Ningún elemento coincide con los filtros activos', 'libraries.resetFilters' => 'Restablecer filtros', 'libraries.all' => 'Todos', - 'libraries.clearAll' => 'Borrar Todo', + 'libraries.clearAll' => 'Borrar todo', 'libraries.scanLibraryConfirm' => ({required Object title}) => '¿Estás seguro de que quieres escanear "${title}"?', 'libraries.analyzeLibraryConfirm' => ({required Object title}) => '¿Estás seguro de que quieres analizar "${title}"?', 'libraries.refreshMetadataConfirm' => ({required Object title}) => '¿Estás seguro de que quieres actualizar los metadatos de "${title}"?', 'libraries.emptyTrashConfirm' => ({required Object title}) => '¿Estás seguro de que quieres vaciar la papelera de "${title}"?', - 'libraries.manageLibraries' => 'Gestionar Bibliotecas', + 'libraries.manageLibraries' => 'Gestionar bibliotecas', 'libraries.sort' => 'Ordenar', 'libraries.sortBy' => 'Ordenar por', 'libraries.filters' => 'Filtros', @@ -2888,7 +2896,7 @@ extension on TranslationsEs { 'libraries.tabs.recommended' => 'Recomendado', 'libraries.tabs.browse' => 'Explorar', 'libraries.tabs.collections' => 'Colecciones', - 'libraries.tabs.playlists' => 'Listas', + 'libraries.tabs.playlists' => 'Listas de reproducción', 'libraries.groupings.title' => 'Agrupación', 'libraries.groupings.all' => 'Todo', 'libraries.groupings.movies' => 'Películas', @@ -2901,51 +2909,51 @@ extension on TranslationsEs { 'libraries.groupings.folders' => 'Carpetas', 'libraries.filterCategories.genre' => 'Género', 'libraries.filterCategories.year' => 'Año', - 'libraries.filterCategories.contentRating' => 'Clasificación', + 'libraries.filterCategories.contentRating' => 'Clasificación por edad', 'libraries.filterCategories.tag' => 'Etiqueta', 'libraries.filterCategories.unwatched' => 'No vistos', - 'libraries.filterCategories.unplayed' => 'No reproducido', + 'libraries.filterCategories.unplayed' => 'No reproducidos', 'libraries.filterCategories.favorites' => 'Favoritos', 'libraries.sortLabels.title' => 'Título', 'libraries.sortLabels.dateAdded' => 'Fecha de adición', 'libraries.sortLabels.releaseDate' => 'Fecha de estreno', 'libraries.sortLabels.rating' => 'Valoración', - 'libraries.sortLabels.communityRating' => 'Calificación de comunidad', - 'libraries.sortLabels.criticRating' => 'Calificación de crítica', - 'libraries.sortLabels.userRating' => 'Calificación del usuario', + 'libraries.sortLabels.communityRating' => 'Valoración de la comunidad', + 'libraries.sortLabels.criticRating' => 'Valoración de la crítica', + 'libraries.sortLabels.userRating' => 'Valoración del usuario', 'libraries.sortLabels.datePlayed' => 'Fecha de reproducción', 'libraries.sortLabels.playCount' => 'Reproducciones', 'libraries.sortLabels.productionYear' => 'Año de producción', 'libraries.sortLabels.runtime' => 'Duración', - 'libraries.sortLabels.officialRating' => 'Calificación oficial', + 'libraries.sortLabels.officialRating' => 'Clasificación oficial', 'libraries.sortLabels.premiereDate' => 'Fecha de estreno', 'libraries.sortLabels.startDate' => 'Fecha de inicio', 'libraries.sortLabels.airTime' => 'Hora de emisión', 'libraries.sortLabels.studio' => 'Estudio', 'libraries.sortLabels.random' => 'Aleatorio', - 'libraries.sortLabels.dateShared' => 'Fecha de compartición', - 'libraries.sortLabels.latestEpisodeAirDate' => 'Última fecha de emisión del episodio', - 'libraries.sortLabels.lastEpisodeDateAdded' => 'Fecha de adición del último episodio', + 'libraries.sortLabels.dateShared' => 'Fecha en que se compartió', + 'libraries.sortLabels.latestEpisodeAirDate' => 'Fecha de emisión del episodio más reciente', + 'libraries.sortLabels.lastEpisodeDateAdded' => 'Fecha en que se añadió el último episodio', 'about.title' => 'Acerca de', - 'about.openSourceLicenses' => 'Licencias de Código Abierto', + 'about.openSourceLicenses' => 'Licencias de código abierto', 'about.versionLabel' => ({required Object version}) => 'Versión ${version}', 'about.appDescription' => 'Un cliente de Plex y Jellyfin para Flutter', - 'about.viewLicensesDescription' => 'Ver licencias de librerías de terceros', + 'about.viewLicensesDescription' => 'Ver las licencias de bibliotecas de terceros', 'serverSelection.noServersFoundForAccount' => ({required Object username, required Object email}) => 'No se encontraron servidores para ${username} (${email})', 'serverSelection.failedToLoadServers' => ({required Object error}) => 'Error al cargar servidores: ${error}', 'hubDetail.title' => 'Título', 'hubDetail.releaseYear' => 'Año de lanzamiento', 'hubDetail.dateAdded' => 'Añadido el', - 'hubDetail.rating' => 'Calificación', + 'hubDetail.rating' => 'Valoración', 'hubDetail.noItemsFound' => 'No se encontraron elementos', - 'logs.clearLogs' => 'Borrar Logs', - 'logs.copyLogs' => 'Copiar Logs', + 'logs.clearLogs' => 'Borrar registros', + 'logs.copyLogs' => 'Copiar registros', 'logs.uploadLogs' => 'Subir registros', 'licenses.relatedPackages' => 'Paquetes relacionados', 'licenses.license' => 'Licencia', 'licenses.licenseNumber' => ({required Object number}) => 'Licencia ${number}', 'licenses.licensesCount' => ({required Object count}) => '${count} licencias', - 'navigation.libraries' => 'Medios', + 'navigation.libraries' => 'Bibliotecas', 'navigation.downloads' => 'Descargas', 'navigation.liveTv' => 'TV en vivo', 'navigation.explore' => 'Explorar', @@ -2988,8 +2996,8 @@ extension on TranslationsEs { 'liveTv.guide' => 'Guía', 'liveTv.noChannels' => 'No hay canales disponibles', 'liveTv.noDvr' => 'No hay DVR configurado en ningún servidor', - 'liveTv.serverUnavailable' => 'El servidor de TV en directo no está disponible.', - 'liveTv.serverNotConnected' => 'El servidor de TV en directo no está conectado.', + 'liveTv.serverUnavailable' => 'El servidor de TV en vivo no está disponible.', + 'liveTv.serverNotConnected' => 'El servidor de TV en vivo no está conectado.', 'liveTv.noPrograms' => 'No hay datos de programación disponibles', 'liveTv.liveStreamFailed' => 'Falló la transmisión en vivo', 'liveTv.unknownProgram' => 'Programa desconocido', @@ -3013,11 +3021,11 @@ extension on TranslationsEs { 'liveTv.favorites' => 'Favoritos', 'liveTv.reorderFavorites' => 'Reordenar favoritos', 'liveTv.favoritesLoadFailed' => 'No se pudieron cargar los favoritos. Comprueba tu conexión e inténtalo de nuevo.', - 'liveTv.favoritesUpdateFailed' => 'Could not update favorites. Check your connection and try again.', + 'liveTv.favoritesUpdateFailed' => 'No se pudieron actualizar los favoritos. Comprueba tu conexión e inténtalo de nuevo.', 'liveTv.joinSession' => 'Unirse a sesión en curso', 'liveTv.watchFromStart' => ({required Object minutes}) => 'Ver desde el inicio (hace ${minutes} min)', 'liveTv.watchLive' => 'Ver en vivo', - 'liveTv.goToLive' => 'Ir a en vivo', + 'liveTv.goToLive' => 'Ir a la emisión en vivo', 'liveTv.record' => 'Grabar', 'liveTv.recordEpisode' => 'Grabar episodio', 'liveTv.recordSeries' => 'Grabar serie', @@ -3054,13 +3062,13 @@ extension on TranslationsEs { 'collections.title' => 'Colecciones', 'collections.collection' => 'Colección', 'collections.empty' => 'La colección está vacía', - 'collections.deleteCollection' => 'Eliminar Colección', + 'collections.deleteCollection' => 'Eliminar colección', 'collections.deleteConfirm' => ({required Object title}) => '¿Eliminar "${title}"? No se puede deshacer.', 'collections.deleted' => 'Colección eliminada', 'collections.deleteFailed' => 'Error al eliminar la colección', 'collections.deleteFailedWithError' => ({required Object error}) => 'Error al eliminar la colección: ${error}', - 'collections.selectCollection' => 'Seleccionar Colección', - 'collections.collectionName' => 'Nombre de la Colección', + 'collections.selectCollection' => 'Seleccionar colección', + 'collections.collectionName' => 'Nombre de la colección', 'collections.enterCollectionName' => 'Introduce el nombre de la colección', 'collections.addedToCollection' => 'Añadido a la colección', 'collections.errorAddingToCollection' => 'Error al añadir a la colección', @@ -3074,29 +3082,29 @@ extension on TranslationsEs { 'playlists.title' => 'Listas de reproducción', 'playlists.playlist' => 'Lista de reproducción', 'playlists.noPlaylists' => 'No se encontraron listas de reproducción', - 'playlists.create' => 'Crear Lista de Reproducción', - 'playlists.playlistName' => 'Nombre de la Lista', - 'playlists.enterPlaylistName' => 'Introduce el nombre de la lista', - 'playlists.delete' => 'Eliminar Lista', - 'playlists.removeItem' => 'Eliminar de la Lista', - 'playlists.smartPlaylist' => 'Lista Inteligente', + 'playlists.create' => 'Crear lista de reproducción', + 'playlists.playlistName' => 'Nombre de la lista de reproducción', + 'playlists.enterPlaylistName' => 'Introduce el nombre de la lista de reproducción', + 'playlists.delete' => 'Eliminar lista de reproducción', + 'playlists.removeItem' => 'Eliminar de la lista de reproducción', + 'playlists.smartPlaylist' => 'Lista de reproducción inteligente', 'playlists.itemCount' => ({required Object count}) => '${count} elementos', 'playlists.oneItem' => '1 elemento', - 'playlists.emptyPlaylist' => 'Esta lista está vacía', - 'playlists.deleteConfirm' => '¿Eliminar Lista de Reproducción?', + 'playlists.emptyPlaylist' => 'Esta lista de reproducción está vacía', + 'playlists.deleteConfirm' => '¿Eliminar lista de reproducción?', 'playlists.deleteMessage' => ({required Object name}) => '¿Estás seguro de que quieres eliminar "${name}"?', 'playlists.created' => 'Lista de reproducción creada', 'playlists.deleted' => 'Lista de reproducción eliminada', - 'playlists.itemAdded' => 'Añadido a la lista', - 'playlists.itemRemoved' => 'Eliminado de la lista', - 'playlists.selectPlaylist' => 'Seleccionar Lista', - 'playlists.searchPlaylists' => 'Buscar listas...', - 'playlists.errorCreating' => 'Error al crear la lista', - 'playlists.errorDeleting' => 'Error al eliminar la lista', - 'playlists.errorLoading' => 'Error al cargar las listas', - 'playlists.errorAdding' => 'Error al añadir a la lista', - 'playlists.errorReordering' => 'Error al reordenar los elementos de la lista', - 'playlists.errorRemoving' => 'Error al eliminar de la lista', + 'playlists.itemAdded' => 'Añadido a la lista de reproducción', + 'playlists.itemRemoved' => 'Eliminado de la lista de reproducción', + 'playlists.selectPlaylist' => 'Seleccionar lista de reproducción', + 'playlists.searchPlaylists' => 'Buscar listas de reproducción...', + 'playlists.errorCreating' => 'Error al crear la lista de reproducción', + 'playlists.errorDeleting' => 'Error al eliminar la lista de reproducción', + 'playlists.errorLoading' => 'Error al cargar las listas de reproducción', + 'playlists.errorAdding' => 'Error al añadir a la lista de reproducción', + 'playlists.errorReordering' => 'Error al reordenar el elemento de la lista de reproducción', + 'playlists.errorRemoving' => 'Error al eliminar de la lista de reproducción', 'music.goToAlbum' => 'Ir al álbum', 'music.goToArtist' => 'Ir al artista', 'music.instantMix' => 'Mezcla instantánea', @@ -3119,20 +3127,20 @@ extension on TranslationsEs { 'music.repeat' => 'Repetir', 'music.repeatAll' => 'Repetir todo', 'music.repeatOne' => 'Repetir una', - 'watchTogether.title' => 'Ver Juntos', - 'watchTogether.description' => 'Mira contenido en sincronía con amigos y familiares', - 'watchTogether.createSession' => 'Crear Sesión', + 'watchTogether.title' => 'Ver juntos', + 'watchTogether.description' => 'Mira contenido sincronizado con amigos y familiares', + 'watchTogether.createSession' => 'Crear sesión', 'watchTogether.creating' => 'Creando...', - 'watchTogether.joinSession' => 'Unirse a Sesión', - 'watchTogether.joining' => 'Uniendo...', - 'watchTogether.controlMode' => 'Modo de Control', + 'watchTogether.joinSession' => 'Unirse a una sesión', + 'watchTogether.joining' => 'Conectando...', + 'watchTogether.controlMode' => 'Modo de control', 'watchTogether.controlModeQuestion' => '¿Quién puede controlar la reproducción?', - 'watchTogether.hostOnly' => 'Solo el Anfitrión', + 'watchTogether.hostOnly' => 'Solo el anfitrión', 'watchTogether.anyone' => 'Cualquiera', - 'watchTogether.hostingSession' => 'Anfitrión de la Sesión', - 'watchTogether.inSession' => 'En Sesión', - 'watchTogether.sessionCode' => 'Código de Sesión', - 'watchTogether.openSessionControls' => 'Abrir los controles de la sesión de Ver Juntos', + 'watchTogether.hostingSession' => 'Sesión alojada', + 'watchTogether.inSession' => 'En una sesión', + 'watchTogether.sessionCode' => 'Código de sesión', + 'watchTogether.openSessionControls' => 'Abrir los controles de la sesión de Ver juntos', 'watchTogether.copySessionCode' => 'Copiar código de sesión', 'watchTogether.hostControlsPlayback' => 'El anfitrión controla la reproducción', 'watchTogether.anyoneCanControl' => 'Cualquiera puede controlar la reproducción', @@ -3142,44 +3150,44 @@ extension on TranslationsEs { 'watchTogether.host' => 'Anfitrión', 'watchTogether.hostBadge' => 'ANFITRIÓN', 'watchTogether.youAreHost' => 'Eres el anfitrión', - 'watchTogether.watchingWithOthers' => 'Viendo con otros', - 'watchTogether.endSession' => 'Finalizar Sesión', - 'watchTogether.leaveSession' => 'Salir de la Sesión', - 'watchTogether.endSessionQuestion' => '¿Finalizar Sesión?', - 'watchTogether.leaveSessionQuestion' => '¿Salir de la Sesión?', + 'watchTogether.watchingWithOthers' => 'Viendo contenido con otras personas', + 'watchTogether.endSession' => 'Finalizar sesión', + 'watchTogether.leaveSession' => 'Salir de la sesión', + 'watchTogether.endSessionQuestion' => '¿Finalizar la sesión?', + 'watchTogether.leaveSessionQuestion' => '¿Salir de la sesión?', 'watchTogether.endSessionConfirm' => 'Esto finalizará la sesión para todos los participantes.', - 'watchTogether.leaveSessionConfirm' => 'Serás eliminado de la sesión.', - 'watchTogether.endSessionConfirmOverlay' => 'Esto finalizará la sesión de visualización para todos los participantes.', - 'watchTogether.leaveSessionConfirmOverlay' => 'Serás desconectado de la sesión de visualización.', + 'watchTogether.leaveSessionConfirm' => 'Saldrás de la sesión.', + 'watchTogether.endSessionConfirmOverlay' => 'Esto finalizará la sesión de reproducción para todos los participantes.', + 'watchTogether.leaveSessionConfirmOverlay' => 'Te desconectarás de la sesión de reproducción.', 'watchTogether.end' => 'Finalizar', 'watchTogether.leave' => 'Salir', 'watchTogether.syncing' => 'Sincronizando...', - 'watchTogether.joinWatchSession' => 'Unirse a Sesión de Visualización', + 'watchTogether.joinWatchSession' => 'Unirse a una sesión de reproducción', 'watchTogether.enterCodeHint' => 'Introduce el código de 5 caracteres', 'watchTogether.pasteFromClipboard' => 'Pegar desde el portapapeles', - 'watchTogether.pleaseEnterCode' => 'Por favor, introduce un código de sesión', + 'watchTogether.pleaseEnterCode' => 'Introduce un código de sesión', 'watchTogether.codeMustBe5Chars' => 'El código de sesión debe tener 5 caracteres', 'watchTogether.joinInstructions' => 'Introduce el código de sesión del anfitrión para unirte.', 'watchTogether.failedToCreate' => 'Error al crear la sesión', 'watchTogether.failedToJoin' => 'Error al unirse a la sesión', 'watchTogether.sessionCodeCopied' => 'Código de sesión copiado al portapapeles', - 'watchTogether.relayUnreachable' => 'Servidor relay inaccesible. El bloqueo del ISP puede impedir Watch Together.', + 'watchTogether.relayUnreachable' => 'No se puede acceder al servidor de retransmisión. Es posible que tu proveedor de internet esté bloqueando Ver juntos.', 'watchTogether.reconnectingToHost' => 'Reconectando con el anfitrión...', 'watchTogether.currentPlayback' => 'Reproducción actual', 'watchTogether.joinCurrentPlayback' => 'Unirse a la reproducción actual', 'watchTogether.joinCurrentPlaybackDescription' => 'Vuelve a lo que el anfitrión está viendo ahora mismo', 'watchTogether.failedToOpenCurrentPlayback' => 'No se pudo abrir la reproducción actual', + _ => null, + } ?? switch (path) { 'watchTogether.participantJoined' => ({required Object name}) => '${name} se unió', 'watchTogether.participantLeft' => ({required Object name}) => '${name} se fue', 'watchTogether.participantPaused' => ({required Object name}) => '${name} pausó', 'watchTogether.participantResumed' => ({required Object name}) => '${name} reanudó', - _ => null, - } ?? switch (path) { - 'watchTogether.participantSeeked' => ({required Object name}) => '${name} avanzó', - 'watchTogether.participantBuffering' => ({required Object name}) => '${name} está cargando', - 'watchTogether.participantNeedsUpdate' => ({required Object name}) => '${name} usa una versión anterior de la app — sincronización no disponible', + 'watchTogether.participantSeeked' => ({required Object name}) => '${name} cambió la posición de reproducción', + 'watchTogether.participantBuffering' => ({required Object name}) => '${name} está almacenando en búfer', + 'watchTogether.participantNeedsUpdate' => ({required Object name}) => '${name} usa una versión anterior de la aplicación — sincronización no disponible', 'watchTogether.resumingWithout' => ({required Object name}) => 'Reanudando sin ${name}', - 'watchTogether.waitingForParticipants' => 'Esperando a que otros carguen...', + 'watchTogether.waitingForParticipants' => 'Esperando a que los demás carguen el contenido...', 'watchTogether.waitingForName' => ({required Object name}) => 'Esperando a ${name}...', 'watchTogether.recentRooms' => 'Salas recientes', 'watchTogether.renameRoom' => 'Renombrar sala', @@ -3199,7 +3207,7 @@ extension on TranslationsEs { 'downloads.retryDownload' => 'Reintentar descarga', 'downloads.downloadQueued' => 'Descarga en cola', 'downloads.downloadResumed' => 'Descarga reanudada', - 'downloads.serverErrorBitrate' => 'Error del servidor: el archivo puede superar el límite de bitrate remoto', + 'downloads.serverErrorBitrate' => 'Error del servidor: el archivo puede superar el límite remoto de tasa de bits', 'downloads.episodesQueued' => ({required Object count}) => '${count} episodios en cola para descargar', 'downloads.downloadDeleted' => 'Descarga eliminada', 'downloads.deleteConfirm' => ({required Object title}) => '¿Eliminar "${title}" de este dispositivo?', @@ -3231,11 +3239,11 @@ extension on TranslationsEs { 'downloads.invalidEpisodeCount' => 'Introduce un número de episodios válido.', 'downloads.keepSynced' => 'Mantener sincronizado', 'downloads.downloadOnce' => 'Descargar una vez', - 'downloads.keepNUnwatched' => ({required Object count}) => 'Mantener ${count} sin ver', + 'downloads.keepNUnwatched' => ({required Object count}) => 'Mantener ${count} no vistos', 'downloads.editSyncRule' => 'Editar regla de sincronización', 'downloads.removeSyncRule' => 'Eliminar regla de sincronización', 'downloads.removeSyncRuleConfirm' => ({required Object title}) => '¿Dejar de sincronizar "${title}"? Los episodios descargados se conservarán.', - 'downloads.syncRuleCreated' => ({required Object count}) => 'Regla de sincronización creada — conservando ${count} episodios sin ver', + 'downloads.syncRuleCreated' => ({required Object count}) => 'Regla de sincronización creada — se conservarán ${count} episodios no vistos', 'downloads.syncRuleUpdated' => 'Regla de sincronización actualizada', 'downloads.syncRuleRemoved' => 'Regla de sincronización eliminada', 'downloads.syncedNewEpisodes' => ({required Object count, required Object title}) => '${count} nuevos episodios sincronizados para ${title}', @@ -3260,7 +3268,7 @@ extension on TranslationsEs { 'shaders.artcnnVariantDenoise' => 'Reducción de ruido', 'shaders.artcnnVariantDenoiseSharpen' => 'Reducción de ruido + enfoque', 'shaders.qualityFast' => 'Rápido', - 'shaders.qualityHQ' => 'Alta Calidad', + 'shaders.qualityHQ' => 'Alta calidad', 'shaders.mode' => 'Modo', 'shaders.importShader' => 'Importar shader', 'shaders.customShaderDescription' => 'Shader GLSL personalizado', @@ -3276,7 +3284,7 @@ extension on TranslationsEs { 'companionRemote.session.connected' => 'Conectado', 'companionRemote.session.serverRunning' => 'Servidor remoto activo', 'companionRemote.session.serverStopped' => 'Servidor remoto detenido', - 'companionRemote.session.serverRunningDescription' => 'Los dispositivos móviles de tu red pueden conectarse a esta app', + 'companionRemote.session.serverRunningDescription' => 'Los dispositivos móviles de tu red pueden conectarse a esta aplicación', 'companionRemote.session.serverStoppedDescription' => 'Inicia el servidor para permitir que los dispositivos móviles se conecten', 'companionRemote.session.usePhoneToControl' => 'Usa tu dispositivo móvil para controlar esta aplicación', 'companionRemote.session.startServer' => 'Iniciar servidor', @@ -3287,12 +3295,12 @@ extension on TranslationsEs { 'companionRemote.pairing.connecting' => 'Conectando...', 'companionRemote.pairing.searchingForDevices' => 'Buscando dispositivos...', 'companionRemote.pairing.noDevicesFound' => 'No se encontraron dispositivos en tu red', - 'companionRemote.pairing.noDevicesHint' => 'Abre Plezy en escritorio y usa el mismo WiFi', + 'companionRemote.pairing.noDevicesHint' => 'Abre Plezy en tu equipo y usa la misma red WiFi', 'companionRemote.pairing.availableDevices' => 'Dispositivos disponibles', 'companionRemote.pairing.manualConnection' => 'Conexión manual', 'companionRemote.pairing.cryptoInitFailed' => 'No se pudo iniciar la conexión segura. Inicia sesión en Plex primero.', - 'companionRemote.pairing.validationHostRequired' => 'Ingresa la dirección del host', - 'companionRemote.pairing.validationHostFormat' => 'El formato debe ser IP:puerto (ej. 192.168.1.100:48632)', + 'companionRemote.pairing.validationHostRequired' => 'Introduce la dirección del host', + 'companionRemote.pairing.validationHostFormat' => 'El formato debe ser IP:puerto (p. ej., 192.168.1.100:48632)', 'companionRemote.pairing.connectionTimedOut' => 'Tiempo de conexión agotado. Usa la misma red en ambos dispositivos.', 'companionRemote.pairing.sessionNotFound' => 'Dispositivo no encontrado. Asegúrate de que Plezy esté en ejecución en el host.', 'companionRemote.pairing.authFailed' => 'Autenticación fallida. Ambos dispositivos necesitan la misma cuenta Plex.', @@ -3342,7 +3350,7 @@ extension on TranslationsEs { 'videoSettings.hdr' => 'HDR', 'videoSettings.audioOutput' => 'Salida de audio', 'videoSettings.performanceOverlay' => 'Indicador de rendimiento', - 'videoSettings.audioPassthrough' => 'Audio Passthrough', + 'videoSettings.audioPassthrough' => 'Transferencia directa de audio', 'videoSettings.audioNormalization' => 'Normalizar volumen', 'videoSettings.audioDownmix' => 'Mezclar a estéreo', 'performanceOverlay.color' => 'Color', @@ -3350,7 +3358,7 @@ extension on TranslationsEs { 'performanceOverlay.buffer' => 'Búfer', 'performanceOverlay.app' => 'App', 'performanceOverlay.decoder' => 'Decodificador', - 'performanceOverlay.rawDecoder' => 'Decodificador raw', + 'performanceOverlay.rawDecoder' => 'Decodificador sin procesar', 'performanceOverlay.tunneling' => 'Túnel', 'performanceOverlay.aspect' => 'Aspecto', 'performanceOverlay.rotation' => 'Rotación', @@ -3382,7 +3390,7 @@ extension on TranslationsEs { 'performanceOverlay.uiFps' => 'FPS UI', 'externalPlayer.title' => 'Reproductor externo', 'externalPlayer.useExternalPlayer' => 'Usar reproductor externo', - 'externalPlayer.useExternalPlayerDescription' => 'Abrir videos en otra app', + 'externalPlayer.useExternalPlayerDescription' => 'Abrir videos en otra aplicación', 'externalPlayer.selectPlayer' => 'Seleccionar reproductor', 'externalPlayer.customPlayers' => 'Reproductores personalizados', 'externalPlayer.systemDefault' => 'Predeterminado del sistema', @@ -3399,7 +3407,7 @@ extension on TranslationsEs { 'metadataEdit.editMetadata' => 'Editar...', 'metadataEdit.screenTitle' => 'Editar metadatos', 'metadataEdit.basicInfo' => 'Información básica', - 'metadataEdit.artwork' => 'Artwork', + 'metadataEdit.artwork' => 'Imágenes', 'metadataEdit.advancedSettings' => 'Ajustes avanzados', 'metadataEdit.title' => 'Título', 'metadataEdit.sortTitle' => 'Título de ordenación', @@ -3423,9 +3431,9 @@ extension on TranslationsEs { 'metadataEdit.imageUrl' => 'URL de imagen', 'metadataEdit.metadataUpdated' => 'Metadatos actualizados', 'metadataEdit.metadataUpdateFailed' => 'Error al actualizar los metadatos', - 'metadataEdit.artworkUpdated' => 'Artwork actualizado', - 'metadataEdit.artworkUpdateFailed' => 'Error al actualizar el artwork', - 'metadataEdit.noArtworkAvailable' => 'No hay artwork disponible', + 'metadataEdit.artworkUpdated' => 'Imágenes actualizadas', + 'metadataEdit.artworkUpdateFailed' => 'Error al actualizar las imágenes', + 'metadataEdit.noArtworkAvailable' => 'No hay imágenes disponibles', 'metadataEdit.artworkOption' => ({required Object index}) => 'Opción de imagen ${index}', 'metadataEdit.selectedArtworkOption' => ({required Object index}) => 'Opción de imagen ${index}, seleccionada', 'metadataEdit.notSet' => 'No establecido', @@ -3472,14 +3480,14 @@ extension on TranslationsEs { 'metadataEdit.label' => 'Etiqueta', 'metadataEdit.style' => 'Estilo', 'metadataEdit.mood' => 'Estado de ánimo', - 'matchScreen.match' => 'Emparejar...', - 'matchScreen.fixMatch' => 'Corregir coincidencia...', - 'matchScreen.unmatch' => 'Desvincular', - 'matchScreen.unmatchConfirm' => '¿Borrar esta coincidencia? Plex lo tratará como no coincidente hasta reasignarlo.', - 'matchScreen.unmatchSuccess' => 'Elemento desvinculado', - 'matchScreen.unmatchFailed' => 'No se pudo desvincular el elemento', - 'matchScreen.matchApplied' => 'Coincidencia aplicada', - 'matchScreen.matchFailed' => 'No se pudo aplicar la coincidencia', + 'matchScreen.match' => 'Asociar...', + 'matchScreen.fixMatch' => 'Corregir asociación...', + 'matchScreen.unmatch' => 'Desasociar', + 'matchScreen.unmatchConfirm' => '¿Borrar esta asociación? Plex tratará el elemento como no asociado hasta que vuelvas a asociarlo.', + 'matchScreen.unmatchSuccess' => 'Elemento desasociado', + 'matchScreen.unmatchFailed' => 'No se pudo desasociar el elemento', + 'matchScreen.matchApplied' => 'Asociación aplicada', + 'matchScreen.matchFailed' => 'No se pudo aplicar la asociación', 'matchScreen.titleHint' => 'Título', 'matchScreen.yearHint' => 'Año', 'matchScreen.search' => 'Buscar', @@ -3494,8 +3502,8 @@ extension on TranslationsEs { 'trakt.disconnectConfirmBody' => 'Plezy dejará de enviar eventos a Trakt. Puedes reconectar cuando quieras.', 'trakt.scrobble' => 'Scrobbling en tiempo real', 'trakt.scrobbleDescription' => 'Enviar eventos de reproducción, pausa y parada a Trakt durante la reproducción.', - 'trakt.watchedSync' => 'Sincronizar estado de visto', - 'trakt.watchedSyncDescription' => 'Cuando marques elementos como vistos en Plezy, también se marcarán en Trakt.', + 'trakt.watchedSync' => 'Sincronizar el estado de visualización', + 'trakt.watchedSyncDescription' => 'Cuando marques contenido como visto en Plezy, también se marcará como visto en Trakt.', 'seerr.title' => 'Seerr', 'seerr.connectTitle' => 'Conectar Seerr', 'seerr.serverUrl' => 'URL del servidor', @@ -3552,18 +3560,18 @@ extension on TranslationsEs { 'services.oauthProxy.urlCopied' => 'URL copiada', 'services.libraryFilter.title' => 'Filtro de bibliotecas', 'services.libraryFilter.subtitleAllSyncing' => 'Sincronizando todas las bibliotecas', - 'services.libraryFilter.subtitleNoneSyncing' => 'Nada se sincroniza', + 'services.libraryFilter.subtitleNoneSyncing' => 'No se sincroniza ninguna biblioteca', 'services.libraryFilter.subtitleBlocked' => ({required Object count}) => '${count} bloqueadas', 'services.libraryFilter.subtitleAllowed' => ({required Object count}) => '${count} permitidas', 'services.libraryFilter.mode' => 'Modo de filtro', - 'services.libraryFilter.modeBlacklist' => 'Lista negra', - 'services.libraryFilter.modeWhitelist' => 'Lista blanca', - 'services.libraryFilter.modeHintBlacklist' => 'Sincronizar todas las bibliotecas excepto las marcadas abajo.', - 'services.libraryFilter.modeHintWhitelist' => 'Sincronizar solo las bibliotecas marcadas abajo.', + 'services.libraryFilter.modeBlacklist' => 'Lista de exclusión', + 'services.libraryFilter.modeWhitelist' => 'Lista de inclusión', + 'services.libraryFilter.modeHintBlacklist' => 'Sincronizar todas las bibliotecas excepto las seleccionadas abajo.', + 'services.libraryFilter.modeHintWhitelist' => 'Sincronizar solo las bibliotecas seleccionadas abajo.', 'services.libraryFilter.libraries' => 'Bibliotecas', 'services.libraryFilter.noLibraries' => 'No hay bibliotecas disponibles', 'addServer.addJellyfinTitle' => 'Añadir servidor Jellyfin', - 'addServer.serverUrls' => 'URL del servidor', + 'addServer.serverUrls' => 'Direcciones URL del servidor', 'addServer.serverUrlsHelper' => 'Se permiten varias URL, separadas por comas.', 'addServer.findServer' => 'Buscar servidor', 'addServer.searchingLocalServers' => 'Buscando servidores Jellyfin locales...', diff --git a/lib/i18n/strings_fr.g.dart b/lib/i18n/strings_fr.g.dart index 5a7115ba..8c5c2706 100644 --- a/lib/i18n/strings_fr.g.dart +++ b/lib/i18n/strings_fr.g.dart @@ -107,8 +107,8 @@ class _Translations$auth$fr extends Translations$auth$en { final TranslationsFr _root; // ignore: unused_field // Translations - @override String get signInWithPlex => 'S\'inscrire avec Plex'; - @override String get showQRCode => 'Afficher le QR Code'; + @override String get signInWithPlex => 'Se connecter avec Plex'; + @override String get showQRCode => 'Afficher le code QR'; @override String get authenticate => 'S\'authentifier'; @override String get authenticationTimeout => 'Délai d\'authentification expiré. Veuillez réessayer.'; @override String get scanQRToSignIn => 'Scannez ce QR code pour vous connecter'; @@ -121,7 +121,7 @@ class _Translations$auth$fr extends Translations$auth$en { @override String get quickConnectWaiting => 'En attente d\'approbation…'; @override String get quickConnectCancel => 'Annuler'; @override String get quickConnectExpired => 'Quick Connect a expiré. Réessayez.'; - @override String get localDataRecoveryRequired => 'Plezy could not safely recover local sign-in and pending playback data. Please sign in again.'; + @override String get localDataRecoveryRequired => 'Plezy n’a pas pu récupérer en toute sécurité les données locales de connexion et de lecture en attente. Veuillez vous reconnecter.'; } // Path: common @@ -132,9 +132,9 @@ class _Translations$common$fr extends Translations$common$en { // Translations @override String get cancel => 'Annuler'; - @override String get save => 'Sauvegarder'; + @override String get save => 'Enregistrer'; @override String get close => 'Fermer'; - @override String get clear => 'Nettoyer'; + @override String get clear => 'Effacer'; @override String get reset => 'Réinitialiser'; @override String get later => 'Plus tard'; @override String get submit => 'Soumettre'; @@ -142,36 +142,36 @@ class _Translations$common$fr extends Translations$common$en { @override String get retry => 'Réessayer'; @override String get logout => 'Se déconnecter'; @override String get unknown => 'Inconnu'; - @override String get refresh => 'Rafraichir'; + @override String get refresh => 'Rafraîchir'; @override String get yes => 'Oui'; @override String get no => 'Non'; @override String get delete => 'Supprimer'; @override String get edit => 'Modifier'; @override String get shuffle => 'Mélanger'; - @override String get addTo => 'Ajouter à...'; + @override String get addTo => 'Ajouter à…'; @override String get createNew => 'Créer'; - @override String get connect => 'Connecter'; - @override String get disconnect => 'Déconnecter'; + @override String get connect => 'Se connecter'; + @override String get disconnect => 'Se déconnecter'; @override String get play => 'Lire'; @override String get pause => 'Pause'; @override String get resume => 'Reprendre'; @override String get error => 'Erreur'; - @override String get search => 'Recherche'; + @override String get search => 'Rechercher'; @override String get home => 'Accueil'; @override String get back => 'Retour'; - @override String get settings => 'Réglages'; - @override String get mute => 'Muet'; + @override String get settings => 'Paramètres'; + @override String get mute => 'Couper le son'; @override String get ok => 'OK'; @override String get off => 'Désactivé'; @override String seasonNumber({required Object number}) => 'Saison ${number}'; - @override String episodeNumberTitle({required Object number, required Object title}) => 'Épisode ${number} - ${title}'; + @override String episodeNumberTitle({required Object number, required Object title}) => 'Épisode ${number} – ${title}'; @override String chapterNumber({required Object number}) => 'Chapitre ${number}'; - @override String get reconnect => 'Reconnecter'; + @override String get reconnect => 'Se reconnecter'; @override String get viewAll => 'Tout afficher'; @override String get checkingNetwork => 'Vérification du réseau...'; @override String get loadingServers => 'Chargement des serveurs...'; @override String get connectingToServers => 'Connexion aux serveurs...'; - @override String get startingOfflineMode => 'Démarrage en mode hors-ligne...'; + @override String get startingOfflineMode => 'Démarrage en mode hors ligne…'; @override String get loading => 'Chargement...'; @override String get fullscreen => 'Plein écran'; @override String get exitFullscreen => 'Quitter le plein écran'; @@ -189,7 +189,7 @@ class _Translations$screens$fr extends Translations$screens$en { @override String get switchProfile => 'Changer de profil'; @override String get subtitleStyling => 'Configuration des sous-titres'; @override String get mpvConfig => 'mpv.conf'; - @override String get logs => 'Logs'; + @override String get logs => 'Journaux'; } // Path: update @@ -201,9 +201,9 @@ class _Translations$update$fr extends Translations$update$en { // Translations @override String get available => 'Mise à jour disponible'; @override String versionAvailable({required Object version}) => 'Version ${version} disponible'; - @override String currentVersion({required Object version}) => 'Installé: ${version}'; + @override String currentVersion({required Object version}) => 'Actuelle : ${version}'; @override String get skipVersion => 'Ignorer cette version'; - @override String get viewRelease => 'Voir la Release'; + @override String get viewRelease => 'Voir les notes de version'; @override String get latestVersion => 'Vous utilisez la dernière version'; @override String get checkFailed => 'Échec de la vérification des mises à jour'; } @@ -224,16 +224,16 @@ class _Translations$settings$fr extends Translations$settings$en { @override String get videoPlayback => 'Lecture vidéo'; @override String get videoPlaybackDescription => 'Configurer le comportement de lecture'; @override String get advanced => 'Avancé'; - @override String get episodePosterMode => 'Style du Poster d\'épisode'; - @override String get seriesPoster => 'Poster de série'; - @override String get seasonPoster => 'Poster de saison'; + @override String get episodePosterMode => 'Style de l’affiche de l’épisode'; + @override String get seriesPoster => 'Affiche de la série'; + @override String get seasonPoster => 'Affiche de la saison'; @override String get episodeThumbnail => 'Miniature'; @override String get showHeroSectionDescription => 'Afficher le carrousel de contenu en vedette sur l\'écran d\'accueil'; @override String get secondsLabel => 'Secondes'; @override String get minutesLabel => 'Minutes'; @override String get secondsShort => 's'; @override String get minutesShort => 'm'; - @override String durationHint({required Object min, required Object max}) => 'Entrez la durée (${min}-${max})'; + @override String durationHint({required Object min, required Object max}) => 'Saisissez la durée (${min}–${max})'; @override String get systemTheme => 'Système'; @override String get lightTheme => 'Clair'; @override String get darkTheme => 'Sombre'; @@ -241,11 +241,13 @@ class _Translations$settings$fr extends Translations$settings$en { @override String get libraryDensity => 'Densité des bibliothèques'; @override String get compact => 'Compact'; @override String get comfortable => 'Confortable'; + @override String get tvCornerSpotlightBackdrop => 'Illustration en vedette dans le coin'; + @override String get tvCornerSpotlightBackdropDescription => 'Afficher l’illustration en vedette dans le coin supérieur droit plutôt qu’en plein écran'; @override String get viewMode => 'Mode d\'affichage'; @override String get gridView => 'Grille'; @override String get listView => 'Liste'; - @override String get showHeroSection => 'Afficher la section Hero'; - @override String get continueWatchingAction => 'Action Continuer à regarder'; + @override String get showHeroSection => 'Afficher la section à la une'; + @override String get continueWatchingAction => 'Action de « Continuer à regarder »'; @override String get continueWatchingPlay => 'Lire'; @override String get continueWatchingDetails => 'Ouvrir les détails'; @override String get episodeAction => 'Action des épisodes'; @@ -259,14 +261,14 @@ class _Translations$settings$fr extends Translations$settings$en { @override String get groupLibrariesByServerDescription => 'Regrouper les bibliothèques de la barre latérale par serveur multimédia.'; @override String get alwaysKeepSidebarOpen => 'Toujours garder la barre latérale ouverte'; @override String get alwaysKeepSidebarOpenDescription => 'La barre latérale reste étendue et la zone de contenu s\'adapte'; - @override String get showUnwatchedCount => 'Afficher le nombre non visionné'; - @override String get showUnwatchedCountDescription => 'Afficher le nombre d\'épisodes non visionnés pour les séries et saisons'; - @override String get showEpisodeNumberOnCards => 'Afficher le numéro d\'épisode sur les cartes'; - @override String get showEpisodeNumberOnCardsDescription => 'Afficher la saison et l\'épisode sur les cartes d\'épisode'; - @override String get showSeasonPostersOnTabs => 'Afficher les posters de saison sur les onglets'; - @override String get showSeasonPostersOnTabsDescription => 'Afficher l\'affiche de chaque saison au-dessus de son onglet'; - @override String get tvFullCardLayout => 'Cartes TV pleines'; - @override String get tvFullCardLayoutDescription => 'Utiliser des cartes TV avec image seule et noms des acteurs superposés'; + @override String get showUnwatchedCount => 'Afficher le nombre d’éléments non vus'; + @override String get showUnwatchedCountDescription => 'Afficher le nombre d’épisodes non vus pour les séries et les saisons'; + @override String get showEpisodeNumberOnCards => 'Afficher le numéro de l’épisode sur les cartes'; + @override String get showEpisodeNumberOnCardsDescription => 'Afficher les numéros de saison et d’épisode sur les cartes d’épisode'; + @override String get showSeasonPostersOnTabs => 'Afficher les affiches de saison sur les onglets'; + @override String get showSeasonPostersOnTabsDescription => 'Afficher l’affiche de chaque saison au-dessus de son onglet'; + @override String get tvFullCardLayout => 'Cartes TV plein format'; + @override String get tvFullCardLayoutDescription => 'Utiliser des cartes TV composées uniquement d’une image, avec le nom des acteurs en surimpression'; @override String get focusGlow => 'Halo de sélection'; @override String get focusGlowDescription => 'Afficher un léger halo autour de la carte sélectionnée'; @override String get visualEffects => 'Effets visuels'; @@ -281,44 +283,44 @@ class _Translations$settings$fr extends Translations$settings$en { @override String get exoPlayer => 'ExoPlayer'; @override String get mpv => 'mpv'; @override String get hardwareDecoding => 'Décodage matériel'; - @override String get hardwareDecodingDescription => 'Utilisez l\'accélération matérielle lorsqu\'elle est disponible.'; - @override String get bufferSize => 'Taille du Buffer'; - @override String bufferSizeMB({required Object size}) => '${size}MB'; - @override String get bufferSizeAuto => 'Auto (Recommandé)'; - @override String bufferSizeWarning({required Object heap, required Object size}) => '${heap}MB de mémoire disponible. Un tampon de ${size}MB peut affecter la lecture.'; + @override String get hardwareDecodingDescription => 'Utiliser l’accélération matérielle lorsqu’elle est disponible'; + @override String get bufferSize => 'Taille du tampon'; + @override String bufferSizeMB({required Object size}) => '${size} Mo'; + @override String get bufferSizeAuto => 'Automatique (recommandé)'; + @override String bufferSizeWarning({required Object heap, required Object size}) => '${heap} Mo de mémoire disponible. Un tampon de ${size} Mo peut affecter la lecture.'; @override String get defaultQualityTitle => 'Qualité par défaut'; @override String get musicQualityTitle => 'Qualité de la musique'; - @override String get subtitleStyling => 'Stylisation des sous-titres'; - @override String get subtitleStylingDescription => 'Personnaliser l\'apparence des sous-titres'; - @override String get smallSkipDuration => 'Durée du petit saut'; - @override String get largeSkipDuration => 'Durée du grand saut'; + @override String get subtitleStyling => 'Style des sous-titres'; + @override String get subtitleStylingDescription => 'Personnaliser l’apparence des sous-titres'; + @override String get smallSkipDuration => 'Durée du saut court'; + @override String get largeSkipDuration => 'Durée du saut long'; @override String get rewindOnResume => 'Rembobiner à la reprise'; @override String secondsUnit({required Object seconds}) => '${seconds} secondes'; @override String get defaultSleepTimer => 'Minuterie de mise en veille par défaut'; @override String minutesUnit({required Object minutes}) => '${minutes} minutes'; - @override String get rememberTrackSelections => 'Mémoriser les sélections de pistes par émission/film'; + @override String get rememberTrackSelections => 'Mémoriser les pistes choisies pour chaque série ou film'; @override String get rememberTrackSelectionsDescription => 'Mémoriser les choix audio et sous-titres par titre'; @override String get showChapterMarkersOnTimeline => 'Afficher les marqueurs de chapitres sur la barre de lecture'; @override String get showChapterMarkersOnTimelineDescription => 'Segmenter la barre de lecture aux limites des chapitres'; - @override String get clickVideoTogglesPlayback => 'Cliquez sur la vidéo pour basculer entre lecture et pause.'; - @override String get clickVideoTogglesPlaybackDescription => 'Cliquer sur la vidéo pour lire/mettre en pause au lieu d\'afficher les contrôles.'; + @override String get clickVideoTogglesPlayback => 'Cliquer sur la vidéo pour alterner entre lecture et pause'; + @override String get clickVideoTogglesPlaybackDescription => 'Cliquer sur la vidéo pour lire ou mettre en pause plutôt que d’afficher les commandes'; @override String get videoPlayerControls => 'Commandes du lecteur vidéo'; @override String get keyboardShortcuts => 'Raccourcis clavier'; @override String get keyboardShortcutsDescription => 'Personnaliser les raccourcis clavier'; @override String get videoPlayerNavigation => 'Navigation dans le lecteur vidéo'; - @override String get videoPlayerNavigationDescription => 'Utilisez les touches fléchées pour naviguer dans les commandes du lecteur vidéo.'; - @override String get watchTogetherRelay => 'Relais Regarder Ensemble'; - @override String get watchTogetherRelayDescription => 'Définir un relay personnalisé. Tout le monde doit utiliser le même serveur.'; + @override String get videoPlayerNavigationDescription => 'Utiliser les touches fléchées pour parcourir les commandes du lecteur vidéo'; + @override String get watchTogetherRelay => 'Relais pour Regarder ensemble'; + @override String get watchTogetherRelayDescription => 'Définir un relais personnalisé. Tous les participants doivent utiliser le même serveur.'; @override String get watchTogetherRelayHint => 'https://mon-relais.exemple.fr'; - @override String get watchTogetherRelayInvalid => 'Enter a valid HTTP or HTTPS relay base URL.'; + @override String get watchTogetherRelayInvalid => 'Saisissez une URL de base HTTP ou HTTPS valide pour le relais.'; @override String get crashReporting => 'Rapports de plantage'; @override String get crashReportingDescription => 'Envoyer des rapports de plantage pour améliorer l\'application'; @override String get debugLogging => 'Journalisation de débogage'; @override String get debugLoggingDescription => 'Activer la journalisation détaillée pour le dépannage'; - @override String get viewLogs => 'Voir les logs'; - @override String get viewLogsDescription => 'Voir les logs d\'application'; + @override String get viewLogs => 'Voir les journaux'; + @override String get viewLogsDescription => 'Voir les journaux de l’application'; @override String get clearCache => 'Vider le cache'; - @override String get clearCacheDescription => 'Effacer les images et données en cache. Le contenu peut charger plus lentement.'; + @override String get clearCacheDescription => 'Effacer les images et les données en cache. Le contenu peut se charger plus lentement.'; @override String get clearCacheSuccess => 'Cache effacé avec succès'; @override String get resetSettings => 'Réinitialiser les paramètres'; @override String get resetSettingsDescription => 'Restaurer les paramètres par défaut. Action irréversible.'; @@ -331,8 +333,8 @@ class _Translations$settings$fr extends Translations$settings$en { @override String get importSettingsDescription => 'Restaurer les préférences depuis un fichier'; @override String get importSettingsConfirm => 'Cela remplacera vos paramètres actuels. Continuer ?'; @override String get importSettingsSuccess => 'Paramètres importés'; - @override String get importSettingsInvalidFile => 'Ce fichier n\'est pas un export Plezy valide'; - @override String get importSettingsNoUser => 'Connectez-vous avant d\'importer les paramètres'; + @override String get importSettingsInvalidFile => 'Ce fichier n’est pas une exportation valide des paramètres de Plezy'; + @override String get importSettingsNoUser => 'Connectez-vous avant d’importer les paramètres'; @override String get shortcutsReset => 'Raccourcis réinitialisés aux valeurs par défaut'; @override String get about => 'À propos'; @override String get aboutDescription => 'Informations sur l\'application et licences'; @@ -341,56 +343,56 @@ class _Translations$settings$fr extends Translations$settings$en { @override String get checkForUpdates => 'Vérifier les mises à jour'; @override String get autoCheckUpdatesOnStartup => 'Vérifier automatiquement les mises à jour au démarrage'; @override String get autoCheckUpdatesOnStartupDescription => 'Notifier au lancement quand une mise à jour est disponible'; - @override String get validationErrorEnterNumber => 'Veuillez saisir un numéro valide'; + @override String get validationErrorEnterNumber => 'Veuillez saisir un nombre valide'; @override String validationErrorDuration({required Object min, required Object max, required Object unit}) => 'La durée doit être comprise entre ${min} et ${max} ${unit}'; @override String shortcutAlreadyAssigned({required Object action}) => 'Raccourci déjà attribué à ${action}'; @override String shortcutUpdated({required Object action}) => 'Raccourci mis à jour pour ${action}'; - @override String get saveFailed => 'Could not save changes. Try again.'; - @override String get autoSkip => 'Skip automatique'; - @override String get autoSkipIntro => 'Skip automatique de l\'introduction'; - @override String get autoSkipIntroDescription => 'Skipper automatiquement l\'introduction après quelques secondes'; - @override String get autoSkipCredits => 'Skip automatique des crédits'; - @override String get autoSkipCreditsDescription => 'Passer les crédits et passer à l\'épisode suivant automatiquement'; - @override String get forceSkipMarkerFallback => 'Forcer les marqueurs de repli'; - @override String get forceSkipMarkerFallbackDescription => 'Utiliser les motifs de titres de chapitres même si Plex a des marqueurs'; - @override String get autoSkipDelay => 'Délai avant skip automatique'; - @override String autoSkipDelayDescription({required Object seconds}) => 'Attendre ${seconds} secondes avant l\'auto-skip'; - @override String get introPattern => 'Modèle de marqueur d\'intro'; - @override String get introPatternDescription => 'Expression régulière pour reconnaître les marqueurs d\'intro dans les titres de chapitres'; - @override String get creditsPattern => 'Modèle de marqueur de générique'; - @override String get creditsPatternDescription => 'Expression régulière pour reconnaître les marqueurs de générique dans les titres de chapitres'; + @override String get saveFailed => 'Impossible d’enregistrer les modifications. Réessayez.'; + @override String get autoSkip => 'Saut automatique'; + @override String get autoSkipIntro => 'Passer automatiquement l’introduction'; + @override String get autoSkipIntroDescription => 'Passer automatiquement les marqueurs d’introduction après quelques secondes'; + @override String get autoSkipCredits => 'Passer automatiquement le générique'; + @override String get autoSkipCreditsDescription => 'Passer automatiquement le générique et lire l’épisode suivant'; + @override String get forceSkipMarkerFallback => 'Forcer les marqueurs de secours'; + @override String get forceSkipMarkerFallbackDescription => 'Utiliser les motifs des titres de chapitre même lorsque Plex fournit des marqueurs'; + @override String get autoSkipDelay => 'Délai avant le saut automatique'; + @override String autoSkipDelayDescription({required Object seconds}) => 'Attendre ${seconds} secondes avant le saut automatique'; + @override String get introPattern => 'Motif du marqueur d’introduction'; + @override String get introPatternDescription => 'Expression régulière permettant de reconnaître les marqueurs d’introduction dans les titres de chapitre'; + @override String get creditsPattern => 'Motif du marqueur de générique'; + @override String get creditsPatternDescription => 'Expression régulière permettant de reconnaître les marqueurs de générique dans les titres de chapitre'; @override String get invalidRegex => 'Expression régulière invalide'; @override String get regex => 'Expression régulière'; - @override String get downloads => 'Téléchargement'; - @override String get downloadLocationDescription => 'Choisissez où stocker le contenu téléchargé'; + @override String get downloads => 'Téléchargements'; + @override String get downloadLocationDescription => 'Choisir où stocker le contenu téléchargé'; @override String get downloadLocationDefault => 'Par défaut (stockage de l\'application)'; @override String get downloadLocationCustom => 'Emplacement personnalisé'; @override String get selectFolder => 'Sélectionner un dossier'; @override String get resetToDefault => 'Réinitialiser les paramètres par défaut'; - @override String currentPath({required Object path}) => 'Actuel: ${path}'; + @override String currentPath({required Object path}) => 'Actuel : ${path}'; @override String get downloadLocationChanged => 'Emplacement de téléchargement modifié'; @override String get downloadLocationReset => 'Emplacement de téléchargement réinitialisé à la valeur par défaut'; @override String get downloadLocationInvalid => 'Le dossier sélectionné n\'est pas accessible en écriture'; @override String get downloadLocationPickerUnavailable => 'La sélection de dossier n’est pas disponible sur cet appareil'; - @override String get downloadOnWifiOnly => 'Télécharger uniquement via WiFi'; - @override String get downloadOnWifiOnlyDescription => 'Empêcher les téléchargements lorsque vous utilisez les données cellulaires'; + @override String get downloadOnWifiOnly => 'Télécharger uniquement en Wi-Fi'; + @override String get downloadOnWifiOnlyDescription => 'Empêcher les téléchargements via les données mobiles'; @override String get autoRemoveWatchedDownloads => 'Supprimer automatiquement les téléchargements vus'; @override String get autoRemoveWatchedDownloadsDescription => 'Supprimer automatiquement les téléchargements vus'; - @override String get cellularDownloadBlocked => 'Les téléchargements sont bloqués sur réseau mobile. Utilisez le WiFi ou modifiez le réglage.'; + @override String get cellularDownloadBlocked => 'Les téléchargements sont bloqués sur le réseau mobile. Utilisez le Wi-Fi ou modifiez ce paramètre.'; @override String get maxVolume => 'Volume maximal'; @override String get maxVolumeDescription => 'Autoriser l\'augmentation du volume au-delà de 100 % pour les médias silencieux'; @override String maxVolumePercent({required Object percent}) => '${percent}%'; @override String get discordRichPresence => 'Discord Rich Presence'; - @override String get discordRichPresenceDescription => 'Montrez ce que vous regardez sur Discord'; + @override String get discordRichPresenceDescription => 'Afficher sur Discord ce que vous regardez'; @override String get services => 'Services'; - @override String get servicesDescription => 'Connectez Trakt, MyAnimeList, Seerr et plus'; + @override String get servicesDescription => 'Connecter Trakt, MyAnimeList, Seerr et d’autres services'; @override String get manageLibrariesDescription => 'Réorganiser et masquer les bibliothèques'; @override String get companionRemoteServer => 'Serveur de télécommande'; @override String get companionRemoteServerDescription => 'Autoriser les appareils mobiles de votre réseau à contrôler cette application'; - @override String get autoPip => 'Image dans l\'image automatique'; - @override String get autoPipDescription => 'Passer en picture-in-picture en quittant pendant la lecture'; - @override String get matchContentFrameRate => 'Fréquence d\'images du contenu correspondant'; - @override String get matchContentFrameRateDescription => 'Adapter la fréquence d\'affichage au contenu vidéo'; + @override String get autoPip => 'Mode image dans l’image automatique'; + @override String get autoPipDescription => 'Passer en mode image dans l’image si vous quittez l’application pendant la lecture'; + @override String get matchContentFrameRate => 'Adapter la fréquence d’images au contenu'; + @override String get matchContentFrameRateDescription => 'Adapter la fréquence de rafraîchissement de l’écran au contenu vidéo'; @override String get matchRefreshRate => 'Adapter la fréquence de rafraîchissement'; @override String get matchRefreshRateDescription => 'Adapter la fréquence d\'affichage en plein écran'; @override String get matchDynamicRange => 'Adapter la plage dynamique'; @@ -398,17 +400,17 @@ class _Translations$settings$fr extends Translations$settings$en { @override String get displaySwitchDelay => 'Délai de changement d\'affichage'; @override String get tunneledPlayback => 'Lecture tunnelée'; @override String get tunneledPlaybackDescription => 'Utiliser le tunneling vidéo. Désactivez si la lecture HDR affiche un écran noir.'; - @override String get audioPassthrough => 'Audio Pass-Through'; - @override String get audioPassthroughDescription => 'Envoyez l\'audio Dolby/DTS vers votre ampli ou téléviseur sans réencodage, en conservant le son surround. Désactivez si vous n\'avez aucun son.'; - @override String get audioPassthroughDescriptionAppleTv => 'Transmet le Dolby Digital Plus (y compris Atmos) au système en bitstream. Le DTS et le TrueHD restent lus en PCM multicanal. De brèves coupures audio peuvent survenir lors des sauts.'; - @override String get audioDownmix => 'Downmix en stéréo'; - @override String get audioDownmixDescription => 'Réduit le son surround à deux canaux pour les enceintes stéréo ou le casque'; + @override String get audioPassthrough => 'Transmission audio directe'; + @override String get audioPassthroughDescription => 'Envoyer l’audio Dolby/DTS à votre ampli ou téléviseur sans le réencoder afin de préserver le son surround. Désactivez cette option en l’absence de son.'; + @override String get audioPassthroughDescriptionAppleTv => 'Utiliser le décodeur Dolby natif d’Apple pour le Dolby Digital Plus, y compris Atmos. Le DTS et le TrueHD sont toujours lus en PCM multicanal. Désactivez cette option en l’absence de son.'; + @override String get audioDownmix => 'Conversion en stéréo'; + @override String get audioDownmixDescription => 'Convertir le son surround en deux canaux pour les enceintes stéréo ou le casque'; @override String get downmixCenterBoost => 'Renforcement du canal central'; @override String downmixCenterBoostValue({required Object db}) => '${db} dB'; @override String get downmixCenterBoostLabel => 'Renforcement (dB)'; @override String get downmixCenterBoostShort => 'dB'; - @override String get audioDownmixNormalize => 'Normaliser le volume lors du downmix'; - @override String get audioDownmixNormalizeDescription => 'Atténue le mixage pour éviter la saturation. Désactivez pour conserver le volume d\'origine (risque de distorsion sur les scènes fortes).'; + @override String get audioDownmixNormalize => 'Normaliser le volume lors de la conversion en stéréo'; + @override String get audioDownmixNormalizeDescription => 'Atténuer le mixage pour éviter la saturation. Désactivez cette option pour conserver le volume d’origine, au risque de déformer les scènes bruyantes.'; @override String get atmosDiagnostics => 'Test de sortie Atmos'; @override String get atmosDiagnosticsDescription => 'Diagnostiquer la sortie Dolby Atmos en lisant des signaux de test via le lecteur système'; @override String get atmosTestHlsAtmos => 'Flux Atmos d\'Apple'; @@ -425,25 +427,25 @@ class _Translations$settings$fr extends Translations$settings$en { @override String get atmosTestUrlMissing => 'Définissez d\'abord l\'URL du fichier de test'; @override String get atmosTestStatus => 'État'; @override String get dvConversionMode => 'Conversion Dolby Vision'; - @override String get dvConversionModeDescription => 'Choisissez comment ExoPlayer gère les fichiers Dolby Vision Profile 7.'; + @override String get dvConversionModeDescription => 'Choisir comment ExoPlayer gère les fichiers Dolby Vision de profil 7.'; @override String get dvConversionAuto => 'Auto'; @override String get dvConversionNative => 'Natif / désactivé'; @override String get dvConversionDv81 => 'P7 → P8.1'; @override String get dvConversionHevcStrip => 'P7 → HEVC'; @override String get dvConversionAutoDescription => 'Utiliser la détection des capacités de l’appareil et le comportement de repli normal'; @override String get dvConversionNativeDescription => 'Forcer le DV7 natif et bloquer la nouvelle tentative de conversion DV'; - @override String get dvConversionDv81Description => 'Forcer la conversion RPU intégrée vers Dolby Vision profil 8.1'; + @override String get dvConversionDv81Description => 'Forcer la conversion RPU intégrée vers le profil 8.1 de Dolby Vision'; @override String get dvConversionHevcStripDescription => 'Supprimer les couches RPU/EL Dolby Vision et présenter du HEVC simple'; @override String get requireProfileSelectionOnOpen => 'Demander le profil à l\'ouverture'; @override String get requireProfileSelectionOnOpenDescription => 'Afficher la sélection de profil à chaque ouverture de l\'application'; @override String get forceTvMode => 'Forcer le mode TV'; - @override String get forceTvModeDescription => 'Forcer l\'interface TV. Pour appareils non détectés automatiquement. Redémarrage requis.'; + @override String get forceTvModeDescription => 'Forcer l’interface TV sur les appareils qui ne sont pas détectés automatiquement. Redémarrage requis.'; @override String get startInFullscreen => 'Démarrer en plein écran'; @override String get startInFullscreenDescription => 'Ouvrir Plezy en mode plein écran au lancement'; @override String get exitFullscreenOnPlayerClose => 'Quitter le plein écran à la fermeture du lecteur'; @override String get exitFullscreenOnPlayerCloseDescription => 'Quitter automatiquement le plein écran lors de la fermeture du lecteur vidéo'; - @override String get autoHidePerformanceOverlay => 'Masquer auto. superposition performances'; - @override String get autoHidePerformanceOverlayDescription => 'Faire apparaître/disparaître la superposition avec les contrôles de lecture'; + @override String get autoHidePerformanceOverlay => 'Masquer automatiquement les données de performance'; + @override String get autoHidePerformanceOverlayDescription => 'Masquer progressivement les données de performance avec les commandes de lecture'; @override String get showNavBarLabels => 'Afficher les libellés de la barre de navigation'; @override String get showNavBarLabelsDescription => 'Afficher les libellés sous les icônes de la barre de navigation'; @override String get startupSection => 'Section de démarrage'; @@ -456,7 +458,7 @@ class _Translations$settings$fr extends Translations$settings$en { @override String get content => 'Contenu'; @override String get player => 'Lecteur'; @override String get subtitlesAndConfig => 'Sous-titres et configuration'; - @override String get seekAndTiming => 'Recherche et minutage'; + @override String get seekAndTiming => 'Déplacement et minutage'; @override String get behavior => 'Comportement'; } @@ -503,7 +505,7 @@ class _Translations$fileInfo$fr extends Translations$fileInfo$en { @override String get advanced => 'Avancé'; @override String get codec => 'Codec'; @override String get resolution => 'Résolution'; - @override String get bitrate => 'Bitrate'; + @override String get bitrate => 'Débit'; @override String get frameRate => 'Fréquence d\'images'; @override String get aspectRatio => 'Format d\'image'; @override String get profile => 'Profil'; @@ -561,7 +563,7 @@ class _Translations$rateSheet$fr extends Translations$rateSheet$en { @override String get favorited => 'Ajouté aux favoris'; @override String get saved => 'Enregistré'; @override String get notAvailable => 'Aucune correspondance trouvée'; - @override String get noConnectedServices => 'Connectez un service dans les Réglages pour noter ici.'; + @override String get noConnectedServices => 'Connectez un service dans les paramètres pour pouvoir y attribuer une note.'; } // Path: accessibility @@ -572,11 +574,11 @@ class _Translations$accessibility$fr extends Translations$accessibility$en { // Translations @override String mediaCardMovie({required Object title}) => '${title}, film'; - @override String mediaCardShow({required Object title}) => '${title}, show TV'; + @override String mediaCardShow({required Object title}) => '${title}, série TV'; @override String mediaCardEpisode({required Object title, required Object episodeInfo}) => '${title}, ${episodeInfo}'; @override String mediaCardSeason({required Object title, required Object seasonInfo}) => '${title}, ${seasonInfo}'; @override String get mediaCardWatched => 'visionné'; - @override String mediaCardPartiallyWatched({required Object percent}) => '${percent} pourcentage visionné'; + @override String mediaCardPartiallyWatched({required Object percent}) => '${percent} pour cent visionné'; @override String get mediaCardUnwatched => 'non visionné'; @override String get tapToPlay => 'Appuyez pour lire'; @override String get decrease => 'Diminuer'; @@ -604,8 +606,8 @@ class _Translations$tooltips$fr extends Translations$tooltips$en { // Translations @override String get shufflePlay => 'Lecture aléatoire'; @override String get playTrailer => 'Lire la bande-annonce'; - @override String get markAsWatched => 'Marqué comme vu'; - @override String get markAsUnwatched => 'Marqué comme non vu'; + @override String get markAsWatched => 'Marquer comme vu'; + @override String get markAsUnwatched => 'Marquer comme non vu'; } // Path: audioTracks @@ -627,16 +629,16 @@ class _Translations$videoControls$fr extends Translations$videoControls$en { // Translations @override String get audioLabel => 'Audio'; @override String get subtitlesLabel => 'Sous-titres'; - @override String get resetToZero => 'Réinitialiser à 0ms'; + @override String get resetToZero => 'Réinitialiser à 0 ms'; @override String addTime({required Object amount, required Object unit}) => '+${amount}${unit}'; @override String minusTime({required Object amount, required Object unit}) => '-${amount}${unit}'; - @override String playsLater({required Object label}) => '${label} lire plus tard'; - @override String playsEarlier({required Object label}) => '${label} lire plus tôt'; + @override String playsLater({required Object label}) => '${label} : lecture retardée'; + @override String playsEarlier({required Object label}) => '${label} : lecture avancée'; @override String get noOffset => 'Pas de décalage'; - @override String get letterbox => 'Boîte aux lettres'; - @override String get fillScreen => 'Remplir l\'écran'; - @override String get stretch => 'Etirer'; - @override String get lockRotation => 'Verrouillage de la rotation'; + @override String get letterbox => 'Format letterbox'; + @override String get fillScreen => 'Remplir l’écran'; + @override String get stretch => 'Étirer'; + @override String get lockRotation => 'Verrouiller la rotation'; @override String get unlockRotation => 'Déverrouiller la rotation'; @override String get timerActive => 'Minuterie active'; @override String playbackWillPauseIn({required Object duration}) => 'La lecture sera mise en pause dans ${duration}'; @@ -647,18 +649,20 @@ class _Translations$videoControls$fr extends Translations$videoControls$en { @override String get stillWatching => 'Toujours en train de regarder ?'; @override String pausingIn({required Object seconds}) => 'Pause dans ${seconds}s'; @override String get continueWatching => 'Continuer'; - @override String get autoPlayNext => 'Lecture automatique suivante'; + @override String get autoPlayNext => 'Lecture automatique de l’élément suivant'; @override String get playNext => 'Lire l\'épisode suivant'; @override String get playButton => 'Lire'; @override String get pauseButton => 'Pause'; + @override String get showPlaybackControls => 'Afficher les commandes de lecture'; + @override String get hidePlaybackControls => 'Masquer les commandes de lecture'; @override String seekBackwardButton({required Object seconds}) => 'Reculer de ${seconds} secondes'; @override String seekForwardButton({required Object seconds}) => 'Avancer de ${seconds} secondes'; @override String get previousButton => 'Épisode précédent'; @override String get nextButton => 'Épisode suivant'; @override String get previousChapterButton => 'Chapitre précédent'; @override String get nextChapterButton => 'Chapitre suivant'; - @override String get muteButton => 'Mute'; - @override String get unmuteButton => 'Dé-mute'; + @override String get muteButton => 'Couper le son'; + @override String get unmuteButton => 'Rétablir le son'; @override String get settingsButton => 'Paramètres de lecture'; @override String get tracksButton => 'Audio et sous-titres'; @override String get chaptersButton => 'Chapitres'; @@ -669,7 +673,7 @@ class _Translations$videoControls$fr extends Translations$videoControls$en { @override String qualityPresetLabel({required Object resolution, required Object bitrate}) => '${resolution}p ${bitrate} Mbps'; @override String get transcodeUnavailableFallback => 'Transcodage indisponible — lecture en qualité originale'; @override String get subtitleUnavailableFallback => 'Impossible de charger les sous-titres sélectionnés — poursuite de la lecture sans sous-titres'; - @override String get pipButton => 'Mode PiP (Picture-in-Picture)'; + @override String get pipButton => 'Mode image dans l’image'; @override String get aspectRatioButton => 'Format d\'image'; @override String get ambientLighting => 'Éclairage ambiant'; @override String get fullscreenButton => 'Passer en mode plein écran'; @@ -679,9 +683,9 @@ class _Translations$videoControls$fr extends Translations$videoControls$en { @override String get lockScreen => 'Verrouiller l\'écran'; @override String get screenLockButton => 'Verrouillage de l\'écran'; @override String get longPressToUnlock => 'Appui long pour déverrouiller'; - @override String get timelineSlider => 'Timeline vidéo'; - @override String get volumeSlider => 'Niveau sonore'; - @override String endsAt({required Object time}) => 'Fin à ${time}'; + @override String get timelineSlider => 'Barre de progression vidéo'; + @override String get volumeSlider => 'Niveau du volume'; + @override String endsAt({required Object time}) => 'Se termine à ${time}'; @override String get pipActive => 'Lecture en mode image dans l\'image'; @override String get pipFailed => 'Échec du démarrage du mode image dans l\'image'; @override String get screenshotSaved => 'Capture d\'écran enregistrée'; @@ -719,32 +723,32 @@ class _Translations$messages$fr extends Translations$messages$en { one: '${n} téléchargement vu supprimé automatiquement', other: '${n} téléchargements vus supprimés automatiquement', ); - @override String get removedFromContinueWatching => 'Supprimer de "Continuer à regarder"'; - @override String errorLoading({required Object error}) => 'Erreur: ${error}'; + @override String get removedFromContinueWatching => 'Supprimé de « Continuer à regarder »'; + @override String errorLoading({required Object error}) => 'Erreur : ${error}'; @override String get streamInterrupted => 'La lecture a été interrompue. Appuyez sur Lecture ou avancez pour réessayer.'; @override String get liveStreamInterrupted => 'Le direct a été interrompu. Appuyez sur Lecture pour réessayer.'; @override String get fileInfoNotAvailable => 'Informations sur le fichier non disponibles'; - @override String get playbackAuthenticationRequired => 'Sign in to the media server again to play this item.'; - @override String get playbackServerUnavailable => 'The media server is unavailable. Try again later.'; - @override String get playbackDataInvalid => 'The server returned invalid playback information.'; - @override String get playbackCancelled => 'Playback was cancelled.'; - @override String get playbackFailed => 'Playback could not be started.'; - @override String errorLoadingFileInfo({required Object error}) => 'Erreur lors du chargement des informations sur le fichier: ${error}'; + @override String get playbackAuthenticationRequired => 'Reconnectez-vous au serveur multimédia pour lire cet élément.'; + @override String get playbackServerUnavailable => 'Le serveur multimédia est indisponible. Réessayez plus tard.'; + @override String get playbackDataInvalid => 'Le serveur a renvoyé des informations de lecture non valides.'; + @override String get playbackCancelled => 'La lecture a été annulée.'; + @override String get playbackFailed => 'Impossible de démarrer la lecture.'; + @override String errorLoadingFileInfo({required Object error}) => 'Erreur lors du chargement des informations sur le fichier : ${error}'; @override String get errorLoadingSeries => 'Erreur lors du chargement de la série'; @override String get musicNotSupported => 'La lecture de musique n\'est pas encore prise en charge'; @override String get noDescriptionAvailable => 'Aucune description disponible'; @override String get noProfilesAvailable => 'Aucun profil disponible'; @override String get contactAdminForProfiles => 'Contactez votre administrateur serveur pour ajouter des profils'; @override String get unableToDetermineLibrarySection => 'Impossible de déterminer la section de la bibliothèque pour cet élément'; - @override String get logsCleared => 'Logs effacés'; - @override String get logsCopied => 'Logs copiés dans le presse-papier'; - @override String get noLogsAvailable => 'Aucun log disponible'; - @override String libraryScanning({required Object title}) => 'Scan de "${title}"...'; - @override String libraryScanStarted({required Object title}) => 'Scan de la bibliothèque démarrée pour "${title}"'; - @override String libraryScanFailed({required Object error}) => 'Échec du scan de la bibliothèque: ${error}'; - @override String metadataRefreshing({required Object title}) => 'Actualisation des métadonnées pour "${title}"...'; - @override String metadataRefreshStarted({required Object title}) => 'Actualisation des métadonnées lancée pour "${title}"'; - @override String metadataRefreshFailed({required Object error}) => 'Échec de l\'actualisation des métadonnées: ${error}'; + @override String get logsCleared => 'Journaux effacés'; + @override String get logsCopied => 'Journaux copiés dans le presse-papiers'; + @override String get noLogsAvailable => 'Aucun journal disponible'; + @override String libraryScanning({required Object title}) => 'Analyse de « ${title} »…'; + @override String libraryScanStarted({required Object title}) => 'Analyse de la bibliothèque lancée pour « ${title} »'; + @override String libraryScanFailed({required Object error}) => 'Échec de l’analyse de la bibliothèque : ${error}'; + @override String metadataRefreshing({required Object title}) => 'Actualisation des métadonnées de « ${title} »…'; + @override String metadataRefreshStarted({required Object title}) => 'Actualisation des métadonnées lancée pour « ${title} »'; + @override String metadataRefreshFailed({required Object error}) => 'Échec de l’actualisation des métadonnées : ${error}'; @override String get logoutConfirm => 'Êtes-vous sûr de vouloir vous déconnecter ?'; @override String get noSeasonsFound => 'Aucune saison trouvée'; @override String get seasonsLoadFailed => 'Impossible de charger les saisons'; @@ -754,14 +758,14 @@ class _Translations$messages$fr extends Translations$messages$en { @override String get noResultsFound => 'Aucun résultat trouvé'; @override String sleepTimerSet({required Object label}) => 'Minuterie de mise en veille réglée sur ${label}'; @override String get noItemsAvailable => 'Aucun élément disponible'; - @override String get failedToCreatePlayQueueNoItems => 'Échec de la création de la file d\'attente de lecture - aucun élément'; - @override String failedPlayback({required Object action, required Object error}) => 'Echec de ${action}: ${error}'; + @override String get failedToCreatePlayQueueNoItems => 'Impossible de créer la file d’attente de lecture : aucun élément'; + @override String failedPlayback({required Object action, required Object error}) => 'Échec de ${action} : ${error}'; @override String get switchingToCompatiblePlayer => 'Passage au lecteur compatible...'; @override String get serverLimitTitle => 'Échec de la lecture'; @override String get serverLimitBody => 'Erreur serveur (HTTP 500). Une limite de bande passante/transcodage a probablement rejeté cette session. Demandez au propriétaire de l\'ajuster.'; - @override String get logsUploaded => 'Logs envoyés'; - @override String get logsUploadFailed => 'Échec de l\'envoi des logs'; - @override String get logId => 'ID du log'; + @override String get logsUploaded => 'Journaux envoyés'; + @override String get logsUploadFailed => 'Échec de l’envoi des journaux'; + @override String get logId => 'Identifiant du journal'; } // Path: subtitlingStyling @@ -879,13 +883,13 @@ class _Translations$profiles$fr extends Translations$profiles$en { @override String get borrowExplain => 'Emprunter la connexion d\'un autre profil. Les profils protégés par PIN exigent un PIN.'; @override String get borrowEmpty => 'Rien à emprunter pour le moment.'; @override String get borrowEmptySubtitle => 'Connectez d\'abord Plex ou Jellyfin à un autre profil.'; - @override String get borrowLoadFailed => 'Available connections could not be loaded. Try again.'; + @override String get borrowLoadFailed => 'Impossible de charger les connexions disponibles. Réessayez.'; @override String borrowFromProfile({required Object displayName}) => 'De ${displayName}'; @override String get borrowConnectionBorrowed => 'Connexion empruntée.'; @override String get borrowFailed => 'Impossible d\'emprunter la connexion.'; @override String get incorrectPin => 'PIN incorrect.'; @override String get incorrectPinTryAgain => 'PIN incorrect. Veuillez réessayer.'; - @override String get sourceProfileMissingParentAccount => 'Le profil source n\'a pas son compte parent.'; + @override String get sourceProfileMissingParentAccount => 'Le profil source ne possède pas de compte parent.'; @override String get failedToLoadHomeUsers => 'Impossible de charger vos utilisateurs Plex Home. Vérifiez votre connexion et réessayez.'; @override String get failedToVerifyPin => 'Impossible de vérifier le PIN.'; @override String get newProfile => 'Nouveau profil'; @@ -921,9 +925,9 @@ class _Translations$discover$fr extends Translations$discover$en { final TranslationsFr _root; // ignore: unused_field // Translations - @override String get title => 'Découvrez'; + @override String get title => 'Découvrir'; @override String get noContentAvailable => 'Aucun contenu disponible'; - @override String get addMediaToLibraries => 'Ajoutez des médias à votre bibliothèque'; + @override String get addMediaToLibraries => 'Ajoutez des médias à vos bibliothèques'; @override String get continueWatching => 'Continuer à regarder'; @override String continueWatchingIn({required Object library}) => 'Continuer à regarder dans ${library}'; @override String get nextUp => 'À suivre'; @@ -935,12 +939,12 @@ class _Translations$discover$fr extends Translations$discover$en { @override String mostPlayedIn({required Object library}) => 'Les plus lus dans ${library}'; @override String playEpisode({required Object season, required Object episode}) => 'S${season}E${episode}'; @override String get overview => 'Aperçu'; - @override String get cast => 'Cast'; - @override String get extras => 'Bandes-annonces et Extras'; + @override String get cast => 'Distribution'; + @override String get extras => 'Bandes-annonces et bonus'; @override String get studio => 'Studio'; @override String get rating => 'Évaluation'; @override String get movie => 'Film'; - @override String get tvShow => 'Show TV'; + @override String get tvShow => 'Série TV'; @override String minutesLeft({required Object minutes}) => '${minutes} min restantes'; @override String get moreLikeThis => 'Plus de contenus similaires'; } @@ -952,14 +956,14 @@ class _Translations$errors$fr extends Translations$errors$en { final TranslationsFr _root; // ignore: unused_field // Translations - @override String searchFailed({required Object error}) => 'Recherche échouée: ${error}'; + @override String searchFailed({required Object error}) => 'Échec de la recherche : ${error}'; @override String connectionTimeout({required Object context}) => 'Délai d\'attente de connexion dépassé pendant le chargement ${context}'; @override String get connectionFailed => 'Impossible de se connecter au serveur multimédia'; @override String unableToLoad({required Object context}) => 'Impossible de charger ${context}. Réessayez.'; @override String get noClientAvailable => 'Aucun client disponible'; - @override String get pleaseEnterToken => 'Veuillez saisir un token'; - @override String get invalidToken => 'Token invalide'; - @override String failedToVerifyToken({required Object error}) => 'Échec de la vérification du token: ${error}'; + @override String get pleaseEnterToken => 'Veuillez saisir un jeton'; + @override String get invalidToken => 'Jeton non valide'; + @override String failedToVerifyToken({required Object error}) => 'Échec de la vérification du jeton : ${error}'; @override String failedToSwitchProfile({required Object displayName}) => 'Impossible de changer de profil vers ${displayName}'; @override String failedToDeleteProfile({required Object displayName}) => 'Impossible de supprimer ${displayName}'; @override String get failedToRate => 'Impossible de mettre à jour la note'; @@ -980,12 +984,12 @@ class _Translations$libraries$fr extends Translations$libraries$en { @override String get analyzeLibrary => 'Analyser la bibliothèque'; @override String get refreshMetadata => 'Actualiser les métadonnées'; @override String get emptyTrash => 'Vider la corbeille'; - @override String emptyingTrash({required Object title}) => 'Vider les poubelles pour "${title}"...'; - @override String trashEmptied({required Object title}) => 'Poubelles vidées pour "${title}"'; - @override String failedToEmptyTrash({required Object error}) => 'Échec de la suppression des éléments supprimés: ${error}'; - @override String analyzing({required Object title}) => 'Analyse de "${title}"...'; - @override String analysisStarted({required Object title}) => 'L\'analyse a commencé pour "${title}"'; - @override String failedToAnalyze({required Object error}) => 'Échec de l\'analyse de la bibliothèque: ${error}'; + @override String emptyingTrash({required Object title}) => 'Vidage de la corbeille de « ${title} »…'; + @override String trashEmptied({required Object title}) => 'Corbeille vidée pour « ${title} »'; + @override String failedToEmptyTrash({required Object error}) => 'Échec du vidage de la corbeille : ${error}'; + @override String analyzing({required Object title}) => 'Analyse de « ${title} »…'; + @override String analysisStarted({required Object title}) => 'Analyse lancée pour « ${title} »'; + @override String failedToAnalyze({required Object error}) => 'Échec de l’analyse de la bibliothèque : ${error}'; @override String get noLibrariesFound => 'Aucune bibliothèque trouvée'; @override String get allLibrariesHidden => 'Toutes les bibliothèques sont masquées'; @override String hiddenLibrariesCount({required Object count}) => 'Bibliothèques masquées (${count})'; @@ -994,10 +998,10 @@ class _Translations$libraries$fr extends Translations$libraries$en { @override String get resetFilters => 'Réinitialiser les filtres'; @override String get all => 'Tout'; @override String get clearAll => 'Tout effacer'; - @override String scanLibraryConfirm({required Object title}) => 'Êtes-vous sûr de vouloir lancer le scan de "${title}"?'; - @override String analyzeLibraryConfirm({required Object title}) => 'Êtes-vous sûr de vouloir analyser "${title}"?'; - @override String refreshMetadataConfirm({required Object title}) => 'Êtes-vous sûr de vouloir actualiser les métadonnées pour "${title}"?'; - @override String emptyTrashConfirm({required Object title}) => 'Êtes-vous sûr de vouloir vider la corbeille pour "${title}"?'; + @override String scanLibraryConfirm({required Object title}) => 'Voulez-vous vraiment scanner « ${title} » ?'; + @override String analyzeLibraryConfirm({required Object title}) => 'Voulez-vous vraiment analyser « ${title} » ?'; + @override String refreshMetadataConfirm({required Object title}) => 'Voulez-vous vraiment actualiser les métadonnées de « ${title} » ?'; + @override String emptyTrashConfirm({required Object title}) => 'Voulez-vous vraiment vider la corbeille de « ${title} » ?'; @override String get manageLibraries => 'Gérer les bibliothèques'; @override String get sort => 'Trier'; @override String get sortBy => 'Trier par'; @@ -1027,7 +1031,7 @@ class _Translations$about$fr extends Translations$about$en { // Translations @override String get title => 'À propos'; - @override String get openSourceLicenses => 'Licences Open Source'; + @override String get openSourceLicenses => 'Licences libres'; @override String versionLabel({required Object version}) => 'Version ${version}'; @override String get appDescription => 'Un magnifique client Plex et Jellyfin pour Flutter'; @override String get viewLicensesDescription => 'Afficher les licences des bibliothèques tierces'; @@ -1041,7 +1045,7 @@ class _Translations$serverSelection$fr extends Translations$serverSelection$en { // Translations @override String noServersFoundForAccount({required Object username, required Object email}) => 'Aucun serveur trouvé pour ${username} (${email})'; - @override String failedToLoadServers({required Object error}) => 'Échec du chargement des serveurs: ${error}'; + @override String failedToLoadServers({required Object error}) => 'Échec du chargement des serveurs : ${error}'; } // Path: hubDetail @@ -1065,9 +1069,9 @@ class _Translations$logs$fr extends Translations$logs$en { final TranslationsFr _root; // ignore: unused_field // Translations - @override String get clearLogs => 'Effacer les logs'; - @override String get copyLogs => 'Copier les logs'; - @override String get uploadLogs => 'Envoyer les logs'; + @override String get clearLogs => 'Effacer les journaux'; + @override String get copyLogs => 'Copier les journaux'; + @override String get uploadLogs => 'Envoyer les journaux'; } // Path: licenses @@ -1077,7 +1081,7 @@ class _Translations$licenses$fr extends Translations$licenses$en { final TranslationsFr _root; // ignore: unused_field // Translations - @override String get relatedPackages => 'Package associés'; + @override String get relatedPackages => 'Paquets associés'; @override String get license => 'Licence'; @override String licenseNumber({required Object number}) => 'Licence ${number}'; @override String licensesCount({required Object count}) => '${count} licences'; @@ -1090,9 +1094,9 @@ class _Translations$navigation$fr extends Translations$navigation$en { final TranslationsFr _root; // ignore: unused_field // Translations - @override String get libraries => 'Medias'; - @override String get downloads => 'Téléch.'; - @override String get liveTv => 'TV direct'; + @override String get libraries => 'Bibliothèques'; + @override String get downloads => 'Téléchargements'; + @override String get liveTv => 'TV en direct'; @override String get explore => 'Explorer'; } @@ -1111,7 +1115,7 @@ class _Translations$explore$fr extends Translations$explore$en { one: '${n} épisode', other: '${n} épisodes', ); - @override String get cast => 'Cast'; + @override String get cast => 'Distribution'; @override String get characters => 'Personnages'; @override String get addToWatchlist => 'Ajouter à la liste de suivi'; @override String get removeFromWatchlist => 'Retirer de la liste de suivi'; @@ -1120,7 +1124,7 @@ class _Translations$explore$fr extends Translations$explore$en { @override String get inTheseLibraries => 'Dans ces bibliothèques'; @override String get checkingLibrary => 'Vérification de votre bibliothèque...'; @override String get emptyTitle => 'Rien ici pour l\'instant'; - @override String emptyMessage({required Object source}) => 'Les rangées de ${source} apparaîtront ici une fois qu\'elles auront du contenu.'; + @override String emptyMessage({required Object source}) => 'Les lignes de ${source} apparaîtront ici dès qu’elles contiendront des éléments.'; @override String searchHint({required Object source}) => 'Rechercher dans ${source}'; @override String searchEmpty({required Object query}) => 'Aucun résultat pour "${query}"'; @override String searchPrompt({required Object source}) => 'Recherchez des films et des séries sur ${source}.'; @@ -1157,13 +1161,13 @@ class _Translations$liveTv$fr extends Translations$liveTv$en { @override String get morning => 'Matin'; @override String get daytime => 'Journée'; @override String get evening => 'Soirée'; - @override String get lateNight => 'Nuit tardive'; + @override String get lateNight => 'Fin de soirée'; @override String get whatsOn => 'En ce moment'; @override String get watchChannel => 'Regarder la chaîne'; @override String get favorites => 'Favoris'; @override String get reorderFavorites => 'Réorganiser les favoris'; @override String get favoritesLoadFailed => 'Impossible de charger les favoris. Vérifiez votre connexion et réessayez.'; - @override String get favoritesUpdateFailed => 'Could not update favorites. Check your connection and try again.'; + @override String get favoritesUpdateFailed => 'Impossible de mettre à jour les favoris. Vérifiez votre connexion et réessayez.'; @override String get joinSession => 'Rejoindre la session en cours'; @override String watchFromStart({required Object minutes}) => 'Regarder depuis le début (il y a ${minutes} min)'; @override String get watchLive => 'Regarder en direct'; @@ -1217,7 +1221,7 @@ class _Translations$collections$fr extends Translations$collections$en { @override String deleteConfirm({required Object title}) => 'Supprimer "${title}" ? Action irréversible.'; @override String get deleted => 'Collection supprimée'; @override String get deleteFailed => 'Échec de la suppression de la collection'; - @override String deleteFailedWithError({required Object error}) => 'Échec de la suppression de la collection: ${error}'; + @override String deleteFailedWithError({required Object error}) => 'Échec de la suppression de la collection : ${error}'; @override String get selectCollection => 'Sélectionner une collection'; @override String get collectionName => 'Nom de la collection'; @override String get enterCollectionName => 'Entrez le nom de la collection'; @@ -1228,7 +1232,7 @@ class _Translations$collections$fr extends Translations$collections$en { @override String removeFromCollectionConfirm({required Object title}) => 'Retirer "${title}" de cette collection ?'; @override String get removedFromCollection => 'Retiré de la collection'; @override String get removeFromCollectionFailed => 'Impossible de supprimer de la collection'; - @override String removeFromCollectionError({required Object error}) => 'Erreur lors de la suppression de la collection: ${error}'; + @override String removeFromCollectionError({required Object error}) => 'Erreur lors du retrait de la collection : ${error}'; @override String get searchCollections => 'Rechercher des collections...'; } @@ -1244,27 +1248,27 @@ class _Translations$playlists$fr extends Translations$playlists$en { @override String get noPlaylists => 'Aucune playlist trouvée'; @override String get create => 'Créer une playlist'; @override String get playlistName => 'Nom de playlist'; - @override String get enterPlaylistName => 'Entrer le nom de playlist'; + @override String get enterPlaylistName => 'Saisissez le nom de la playlist'; @override String get delete => 'Supprimer la playlist'; @override String get removeItem => 'Retirer de la playlist'; - @override String get smartPlaylist => 'Smart playlist'; + @override String get smartPlaylist => 'Playlist intelligente'; @override String itemCount({required Object count}) => '${count} éléments'; @override String get oneItem => '1 élément'; @override String get emptyPlaylist => 'Cette playlist est vide'; @override String get deleteConfirm => 'Supprimer la playlist ?'; - @override String deleteMessage({required Object name}) => 'Êtes-vous sûr de vouloir supprimer "${name}"?'; + @override String deleteMessage({required Object name}) => 'Voulez-vous vraiment supprimer « ${name} » ?'; @override String get created => 'Playlist créée'; @override String get deleted => 'Playlist supprimée'; @override String get itemAdded => 'Ajouté à la playlist'; @override String get itemRemoved => 'Retiré de la playlist'; @override String get selectPlaylist => 'Sélectionner une playlist'; @override String get searchPlaylists => 'Rechercher des playlists...'; - @override String get errorCreating => 'Échec de la création de playlist'; - @override String get errorDeleting => 'Échec de suppression de playlist'; - @override String get errorLoading => 'Échec de chargement de playlists'; - @override String get errorAdding => 'Échec d\'ajout dans la playlist'; - @override String get errorReordering => 'Échec de réordonnacement d\'élément de playlist'; - @override String get errorRemoving => 'Échec de suppression depuis la playlist'; + @override String get errorCreating => 'Échec de la création de la playlist'; + @override String get errorDeleting => 'Échec de la suppression de la playlist'; + @override String get errorLoading => 'Échec du chargement des playlists'; + @override String get errorAdding => 'Échec de l’ajout à la playlist'; + @override String get errorReordering => 'Échec de la réorganisation de l’élément de la playlist'; + @override String get errorRemoving => 'Échec du retrait de l’élément de la playlist'; } // Path: music @@ -1309,17 +1313,17 @@ class _Translations$watchTogether$fr extends Translations$watchTogether$en { // Translations @override String get title => 'Regarder ensemble'; - @override String get description => 'Regardez du contenu en synchronisation avec vos amis et votre famille'; + @override String get description => 'Regarder du contenu en synchronisation avec vos proches'; @override String get createSession => 'Créer une session'; @override String get creating => 'Création...'; @override String get joinSession => 'Rejoindre la session'; - @override String get joining => 'Rejoindre...'; + @override String get joining => 'Connexion…'; @override String get controlMode => 'Mode de contrôle'; @override String get controlModeQuestion => 'Qui peut contrôler la lecture ?'; @override String get hostOnly => 'Hôte uniquement'; @override String get anyone => 'N\'importe qui'; - @override String get hostingSession => 'Session d\'hébergement'; - @override String get inSession => 'En session'; + @override String get hostingSession => 'Session hébergée'; + @override String get inSession => 'Session en cours'; @override String get sessionCode => 'Code de session'; @override String get openSessionControls => 'Ouvrir les commandes de la session Regarder ensemble'; @override String get copySessionCode => 'Copier le code de session'; @@ -1329,10 +1333,10 @@ class _Translations$watchTogether$fr extends Translations$watchTogether$en { @override String get anyoneControls => 'Tout le monde contrôle'; @override String get participants => 'Participants'; @override String get host => 'Hôte'; - @override String get hostBadge => 'HOST'; + @override String get hostBadge => 'HÔTE'; @override String get youAreHost => 'Vous êtes l\'hôte'; @override String get watchingWithOthers => 'Regarder avec d\'autres personnes'; - @override String get endSession => 'Fin de session'; + @override String get endSession => 'Terminer la session'; @override String get leaveSession => 'Quitter la session'; @override String get endSessionQuestion => 'Terminer la session ?'; @override String get leaveSessionQuestion => 'Quitter la session ?'; @@ -1341,8 +1345,8 @@ class _Translations$watchTogether$fr extends Translations$watchTogether$en { @override String get endSessionConfirmOverlay => 'Cela mettra fin à la session de visionnage pour tous les participants.'; @override String get leaveSessionConfirmOverlay => 'Vous serez déconnecté de la session de visionnage.'; @override String get end => 'Terminer'; - @override String get leave => 'Fin'; - @override String get syncing => 'Synchronisation...'; + @override String get leave => 'Quitter'; + @override String get syncing => 'Synchronisation…'; @override String get joinWatchSession => 'Rejoindre la session de visionnage'; @override String get enterCodeHint => 'Entrez le code à 5 caractères'; @override String get pasteFromClipboard => 'Coller depuis le presse-papiers'; @@ -1352,18 +1356,18 @@ class _Translations$watchTogether$fr extends Translations$watchTogether$en { @override String get failedToCreate => 'Échec de la création de la session'; @override String get failedToJoin => 'Échec de la connexion à la session'; @override String get sessionCodeCopied => 'Code de session copié dans le presse-papiers'; - @override String get relayUnreachable => 'Serveur relay inaccessible. Un blocage ISP peut empêcher Watch Together.'; + @override String get relayUnreachable => 'Serveur relais inaccessible. Un blocage par le fournisseur d’accès peut empêcher le fonctionnement de Regarder ensemble.'; @override String get reconnectingToHost => 'Reconnexion à l\'hôte...'; @override String get currentPlayback => 'Lecture en cours'; @override String get joinCurrentPlayback => 'Rejoindre la lecture en cours'; - @override String get joinCurrentPlaybackDescription => 'Revenez à ce que l\'hôte regarde actuellement'; + @override String get joinCurrentPlaybackDescription => 'Reprendre le contenu que l’hôte regarde actuellement'; @override String get failedToOpenCurrentPlayback => 'Impossible d\'ouvrir la lecture en cours'; @override String participantJoined({required Object name}) => '${name} a rejoint'; @override String participantLeft({required Object name}) => '${name} est parti'; @override String participantPaused({required Object name}) => '${name} a mis en pause'; @override String participantResumed({required Object name}) => '${name} a repris'; - @override String participantSeeked({required Object name}) => '${name} a avancé'; - @override String participantBuffering({required Object name}) => '${name} met en mémoire tampon'; + @override String participantSeeked({required Object name}) => '${name} a changé la position de lecture'; + @override String participantBuffering({required Object name}) => 'La lecture de ${name} est en cours de mise en mémoire tampon'; @override String participantNeedsUpdate({required Object name}) => '${name} utilise une ancienne version de l’app — synchronisation indisponible'; @override String resumingWithout({required Object name}) => 'Reprise sans ${name}'; @override String get waitingForParticipants => 'En attente du chargement des autres...'; @@ -1384,7 +1388,7 @@ class _Translations$downloads$fr extends Translations$downloads$en { // Translations @override String get title => 'Téléchargements'; @override String get manage => 'Gérer'; - @override String get tvShows => 'Show TV'; + @override String get tvShows => 'Séries TV'; @override String get movies => 'Films'; @override String get music => 'Musique'; @override String tracksQueued({required Object count}) => '${count} titres en file d\'attente de téléchargement'; @@ -1395,10 +1399,10 @@ class _Translations$downloads$fr extends Translations$downloads$en { @override String get retryDownload => 'Réessayer le téléchargement'; @override String get downloadQueued => 'Téléchargement en attente'; @override String get downloadResumed => 'Téléchargement repris'; - @override String get serverErrorBitrate => 'Erreur serveur : le fichier peut dépasser la limite de bitrate distant'; + @override String get serverErrorBitrate => 'Erreur du serveur : le fichier peut dépasser la limite de débit distant'; @override String episodesQueued({required Object count}) => '${count} épisodes en attente de téléchargement'; - @override String get downloadDeleted => 'Télécharger supprimé'; - @override String deleteConfirm({required Object title}) => 'Supprimer "${title}" de cet appareil ?'; + @override String get downloadDeleted => 'Téléchargement supprimé'; + @override String deleteConfirm({required Object title}) => 'Supprimer « ${title} » de cet appareil ?'; @override String get cancelledDownloadTitle => 'Téléchargement annulé'; @override String get cancelledDownloadMessage => 'Ce téléchargement a été annulé. Que voulez-vous faire ?'; @override String get allEpisodesAlreadyDownloaded => 'Tous les épisodes sont déjà téléchargés'; @@ -1507,10 +1511,10 @@ class _Translations$videoSettings$fr extends Translations$videoSettings$en { @override String get subtitleSync => 'Synchronisation des sous-titres'; @override String get hdr => 'HDR'; @override String get audioOutput => 'Sortie audio'; - @override String get performanceOverlay => 'Superposition de performance'; - @override String get audioPassthrough => 'Audio Pass-Through'; + @override String get performanceOverlay => 'Données de performance'; + @override String get audioPassthrough => 'Transmission audio directe'; @override String get audioNormalization => 'Normaliser le volume'; - @override String get audioDownmix => 'Downmix en stéréo'; + @override String get audioDownmix => 'Conversion en stéréo'; } // Path: performanceOverlay @@ -1523,16 +1527,16 @@ class _Translations$performanceOverlay$fr extends Translations$performanceOverla @override String get color => 'Couleur'; @override String get performance => 'Performances'; @override String get buffer => 'Tampon'; - @override String get app => 'App'; + @override String get app => 'Application'; @override String get decoder => 'Décodeur'; @override String get rawDecoder => 'Décodeur brut'; - @override String get tunneling => 'Tunneling'; + @override String get tunneling => 'Tunnel'; @override String get aspect => 'Format'; @override String get rotation => 'Rotation'; @override String get dvSource => 'Source DV'; @override String get dvPath => 'Chemin DV'; @override String get p7Conversion => 'Conv. P7'; - @override String get sampleRate => 'Fréquence'; + @override String get sampleRate => 'Fréquence d’échantillonnage'; @override String get pixelFormat => 'Fmt pixel'; @override String get hwFormat => 'Fmt HW'; @override String get matrix => 'Matrice'; @@ -1566,7 +1570,7 @@ class _Translations$externalPlayer$fr extends Translations$externalPlayer$en { // Translations @override String get title => 'Lecteur externe'; @override String get useExternalPlayer => 'Utiliser un lecteur externe'; - @override String get useExternalPlayerDescription => 'Ouvrir les vidéos dans une autre app'; + @override String get useExternalPlayerDescription => 'Ouvrir les vidéos dans une autre application'; @override String get selectPlayer => 'Sélectionner le lecteur'; @override String get customPlayers => 'Lecteurs personnalisés'; @override String get systemDefault => 'Par défaut du système'; @@ -1592,7 +1596,7 @@ class _Translations$metadataEdit$fr extends Translations$metadataEdit$en { @override String get editMetadata => 'Modifier...'; @override String get screenTitle => 'Modifier les métadonnées'; @override String get basicInfo => 'Informations de base'; - @override String get artwork => 'Artwork'; + @override String get artwork => 'Illustrations'; @override String get advancedSettings => 'Paramètres avancés'; @override String get title => 'Titre'; @override String get sortTitle => 'Titre de tri'; @@ -1616,9 +1620,9 @@ class _Translations$metadataEdit$fr extends Translations$metadataEdit$en { @override String get imageUrl => 'URL de l\'image'; @override String get metadataUpdated => 'Métadonnées mises à jour'; @override String get metadataUpdateFailed => 'Échec de la mise à jour des métadonnées'; - @override String get artworkUpdated => 'Artwork mis à jour'; - @override String get artworkUpdateFailed => 'Échec de la mise à jour de l\'artwork'; - @override String get noArtworkAvailable => 'Aucun artwork disponible'; + @override String get artworkUpdated => 'Illustrations mises à jour'; + @override String get artworkUpdateFailed => 'Échec de la mise à jour des illustrations'; + @override String get noArtworkAvailable => 'Aucune illustration disponible'; @override String artworkOption({required Object index}) => 'Option d\'illustration ${index}'; @override String selectedArtworkOption({required Object index}) => 'Option d\'illustration ${index}, sélectionnée'; @override String get notSet => 'Non défini'; @@ -1652,10 +1656,10 @@ class _Translations$metadataEdit$fr extends Translations$metadataEdit$en { @override String get preferredSubtitleLanguage => 'Langue de sous-titres préférée'; @override String get subtitleMode => 'Sélection automatique des sous-titres'; @override String get manuallySelected => 'Sélectionné manuellement'; - @override String get shownWithForeignAudio => 'Affichés avec audio étranger'; + @override String get shownWithForeignAudio => 'Avec l’audio en langue étrangère'; @override String get alwaysEnabled => 'Toujours activé'; - @override String get tags => 'Tags'; - @override String get addTag => 'Ajouter un tag'; + @override String get tags => 'Étiquettes'; + @override String get addTag => 'Ajouter une étiquette'; @override String get genre => 'Genre'; @override String get director => 'Réalisateur'; @override String get writer => 'Scénariste'; @@ -1711,11 +1715,11 @@ class _Translations$trakt$fr extends Translations$trakt$en { @override String get connected => 'Connecté'; @override String connectedAs({required Object username}) => 'Connecté en tant que @${username}'; @override String get disconnectConfirm => 'Déconnecter le compte Trakt ?'; - @override String get disconnectConfirmBody => 'Plezy cessera d\'envoyer des événements à Trakt. Vous pouvez reconnecter à tout moment.'; + @override String get disconnectConfirmBody => 'Plezy cessera d’envoyer des événements à Trakt. Vous pourrez vous reconnecter à tout moment.'; @override String get scrobble => 'Scrobbling en temps réel'; @override String get scrobbleDescription => 'Envoyer les événements de lecture, pause et arrêt à Trakt pendant la lecture.'; @override String get watchedSync => 'Synchroniser le statut « vu »'; - @override String get watchedSyncDescription => 'Lorsque vous marquez un élément comme vu dans Plezy, il l\'est aussi sur Trakt.'; + @override String get watchedSyncDescription => 'Lorsque vous marquez des éléments comme vus dans Plezy, ils sont également marqués comme vus sur Trakt.'; } // Path: seerr @@ -1726,7 +1730,7 @@ class _Translations$seerr$fr extends Translations$seerr$en { // Translations @override String get title => 'Seerr'; - @override String get connectTitle => 'Connecter Seerr'; + @override String get connectTitle => 'Se connecter à Seerr'; @override String get serverUrl => 'URL du serveur'; @override String get serverUrlHelper => 'L\'adresse de votre instance Seerr'; @override String get checkServer => 'Continuer'; @@ -1737,7 +1741,7 @@ class _Translations$seerr$fr extends Translations$seerr$en { @override String get noSignInMethods => 'Cette instance Seerr ne propose aucune méthode de connexion prise en charge par Plezy.'; @override String get instance => 'Instance'; @override String get disconnectConfirm => 'Déconnecter Seerr ?'; - @override String get disconnectConfirmBody => 'Plezy oubliera cette instance Seerr. Reconnectez à tout moment.'; + @override String get disconnectConfirmBody => 'Plezy oubliera cette instance Seerr. Vous pourrez vous reconnecter à tout moment.'; @override String get request => 'Demander'; @override String get request4k => 'Demander en 4K'; @override String get seasons => 'Saisons'; @@ -1771,7 +1775,7 @@ class _Translations$services$fr extends Translations$services$en { @override String get scrobble => 'Suivre la progression automatiquement'; @override String get scrobbleDescription => 'Mettre à jour votre liste lorsque vous terminez un épisode ou un film.'; @override String disconnectConfirm({required Object service}) => 'Déconnecter ${service} ?'; - @override String disconnectConfirmBody({required Object service}) => 'Plezy cessera de mettre à jour ${service}. Reconnectez à tout moment.'; + @override String disconnectConfirmBody({required Object service}) => 'Plezy cessera de mettre à jour ${service}. Vous pourrez vous reconnecter à tout moment.'; @override String connectFailed({required Object service}) => 'Échec de la connexion à ${service}. Réessayez.'; @override late final _Translations$services$names$fr names = _Translations$services$names$fr._(_root); @override late final _Translations$services$deviceCode$fr deviceCode = _Translations$services$deviceCode$fr._(_root); @@ -1811,7 +1815,7 @@ class _Translations$addServer$fr extends Translations$addServer$en { @override String get signInWithPlexCardSubtitleScoped => 'Autorisez un compte Plex. Les utilisateurs Home deviennent des profils.'; @override String get connectToJellyfinCard => 'Se connecter à Jellyfin'; @override String get connectToJellyfinCardSubtitle => 'Saisissez l\'URL du serveur, le nom d\'utilisateur et le mot de passe.'; - @override String connectToJellyfinCardSubtitleScoped({required Object name}) => 'Connectez-vous à un serveur Jellyfin. Lié à ${name}.'; + @override String connectToJellyfinCardSubtitleScoped({required Object name}) => 'Connectez-vous à un serveur Jellyfin. Cette connexion sera liée à ${name}.'; @override String get borrowFromAnotherProfile => 'Emprunter à un autre profil'; @override String get borrowFromAnotherProfileSubtitle => 'Réutiliser la connexion d\'un autre profil. Les profils protégés par PIN exigent un PIN.'; } @@ -1859,7 +1863,7 @@ class _Translations$videoControls$pipErrors$fr extends Translations$videoControl // Translations @override String get androidVersion => 'Nécessite Android 8.0 ou plus récent'; @override String get iosVersion => 'Nécessite iOS 15.0 ou plus récent'; - @override String get permissionDisabled => 'Picture-in-picture est désactivé. Activez-le dans les paramètres système.'; + @override String get permissionDisabled => 'Le mode image dans l’image est désactivé. Activez-le dans les paramètres système.'; @override String get notSupported => 'Cet appareil ne prend pas en charge le mode image dans l\'image'; @override String get voSwitchFailed => 'Échec du changement de sortie vidéo pour l\'image dans l\'image'; @override String get failed => 'Échec du démarrage du mode image dans l\'image'; @@ -1889,7 +1893,7 @@ class _Translations$libraries$groupings$fr extends Translations$libraries$groupi @override String get title => 'Regroupement'; @override String get all => 'Tous'; @override String get movies => 'Films'; - @override String get shows => 'Show TV'; + @override String get shows => 'Séries TV'; @override String get seasons => 'Saisons'; @override String get episodes => 'Épisodes'; @override String get artists => 'Artistes'; @@ -1908,9 +1912,9 @@ class _Translations$libraries$filterCategories$fr extends Translations$libraries @override String get genre => 'Genre'; @override String get year => 'Année'; @override String get contentRating => 'Classification'; - @override String get tag => 'Tag'; + @override String get tag => 'Étiquette'; @override String get unwatched => 'Non vus'; - @override String get unplayed => 'Non lu'; + @override String get unplayed => 'Non lus'; @override String get favorites => 'Favoris'; } @@ -1952,18 +1956,18 @@ class _Translations$explore$rows$fr extends Translations$explore$rows$en { // Translations @override String get watchlist => 'Liste de suivi'; @override String get recommendedMovies => 'Films recommandés'; - @override String get recommendedShows => 'Show TV recommandés'; + @override String get recommendedShows => 'Séries recommandées'; @override String get trendingMovies => 'Films tendance'; - @override String get trendingShows => 'Show TV tendance'; + @override String get trendingShows => 'Séries tendance'; @override String get popularMovies => 'Films populaires'; - @override String get popularShows => 'Show TV populaires'; - @override String get trendingAnime => 'Anime tendance'; - @override String get suggestedAnime => 'Anime suggérés'; - @override String get airingAnime => 'Meilleurs anime en diffusion'; - @override String get popularAnime => 'Anime les plus populaires'; + @override String get popularShows => 'Séries populaires'; + @override String get trendingAnime => 'Animes tendance'; + @override String get suggestedAnime => 'Animes suggérés'; + @override String get airingAnime => 'Meilleurs animes en diffusion'; + @override String get popularAnime => 'Animes les plus populaires'; @override String get trending => 'Tendances'; @override String get upcomingMovies => 'Films à venir'; - @override String get upcomingShows => 'Show TV à venir'; + @override String get upcomingShows => 'Séries à venir'; } // Path: explore.status @@ -1974,8 +1978,8 @@ class _Translations$explore$status$fr extends Translations$explore$status$en { // Translations @override String get airing => 'En cours'; - @override String get ended => 'Terminée'; - @override String get canceled => 'Annulée'; + @override String get ended => 'Terminé'; + @override String get canceled => 'Annulé'; @override String get upcoming => 'À venir'; } @@ -1986,12 +1990,12 @@ class _Translations$companionRemote$session$fr extends Translations$companionRem final TranslationsFr _root; // ignore: unused_field // Translations - @override String get startingServer => 'Démarrage du serveur distant...'; - @override String get hostAddress => 'Adresse de l\'hôte'; + @override String get startingServer => 'Démarrage du serveur de télécommande…'; + @override String get hostAddress => 'Adresse de l’hôte'; @override String get connected => 'Connecté'; - @override String get serverRunning => 'Serveur distant actif'; - @override String get serverStopped => 'Serveur distant arrêté'; - @override String get serverRunningDescription => 'Les appareils mobiles de votre réseau peuvent se connecter à cette app'; + @override String get serverRunning => 'Serveur de télécommande actif'; + @override String get serverStopped => 'Serveur de télécommande arrêté'; + @override String get serverRunningDescription => 'Les appareils mobiles de votre réseau peuvent se connecter à cette application'; @override String get serverStoppedDescription => 'Démarrez le serveur pour permettre aux appareils mobiles de se connecter'; @override String get usePhoneToControl => 'Utilisez votre appareil mobile pour contrôler cette application'; @override String get startServer => 'Démarrer le serveur'; @@ -2011,13 +2015,13 @@ class _Translations$companionRemote$pairing$fr extends Translations$companionRem @override String get connecting => 'Connexion...'; @override String get searchingForDevices => 'Recherche d\'appareils...'; @override String get noDevicesFound => 'Aucun appareil trouvé sur votre réseau'; - @override String get noDevicesHint => 'Ouvrez Plezy sur ordinateur et utilisez le même WiFi'; + @override String get noDevicesHint => 'Ouvrez Plezy sur votre ordinateur et utilisez le même réseau Wi-Fi'; @override String get availableDevices => 'Appareils disponibles'; @override String get manualConnection => 'Connexion manuelle'; @override String get cryptoInitFailed => 'Impossible de démarrer la connexion sécurisée. Connectez-vous d\'abord à Plex.'; - @override String get validationHostRequired => 'Veuillez entrer l\'adresse de l\'hôte'; - @override String get validationHostFormat => 'Le format doit être IP:port (ex. 192.168.1.100:48632)'; - @override String get connectionTimedOut => 'Connexion expirée. Utilisez le même réseau sur les deux appareils.'; + @override String get validationHostRequired => 'Veuillez saisir l’adresse de l’hôte'; + @override String get validationHostFormat => 'Le format doit être IP:port (p. ex. 192.168.1.100:48632)'; + @override String get connectionTimedOut => 'Délai de connexion dépassé. Utilisez le même réseau sur les deux appareils.'; @override String get sessionNotFound => 'Appareil introuvable. Assurez-vous que Plezy fonctionne sur l\'hôte.'; @override String get authFailed => 'Échec de l\'authentification. Les deux appareils doivent utiliser le même compte Plex.'; @override String failedToConnect({required Object error}) => 'Échec de la connexion : ${error}'; @@ -2056,7 +2060,7 @@ class _Translations$companionRemote$remote$fr extends Translations$companionRemo @override String get fullscreen => 'Plein écran'; @override String get subtitles => 'Sous-titres'; @override String get audio => 'Audio'; - @override String get searchHint => 'Rechercher sur le bureau...'; + @override String get searchHint => 'Rechercher sur l’ordinateur…'; } // Path: companionRemote.errors @@ -2068,7 +2072,7 @@ class _Translations$companionRemote$errors$fr extends Translations$companionRemo // Translations @override String get noNetworkInterface => 'Aucune interface réseau trouvée'; @override String get authenticationFailed => 'Échec de l’authentification'; - @override String serverStartFailed({required Object error}) => 'Impossible de démarrer le serveur distant : ${error}'; + @override String serverStartFailed({required Object error}) => 'Impossible de démarrer le serveur de télécommande : ${error}'; @override String commandFailed({required Object error}) => 'Impossible d’envoyer la commande à distance : ${error}'; @override String get joinTimedOut => 'Délai dépassé lors de la connexion à la session'; @override String get failedToConnectAnyAddress => 'Impossible de se connecter à une adresse'; @@ -2131,8 +2135,8 @@ class _Translations$services$libraryFilter$fr extends Translations$services$libr @override String subtitleBlocked({required Object count}) => '${count} bloquées'; @override String subtitleAllowed({required Object count}) => '${count} autorisées'; @override String get mode => 'Mode de filtrage'; - @override String get modeBlacklist => 'Liste noire'; - @override String get modeWhitelist => 'Liste blanche'; + @override String get modeBlacklist => 'Liste d’exclusion'; + @override String get modeWhitelist => 'Liste d’inclusion'; @override String get modeHintBlacklist => 'Synchroniser toutes les bibliothèques sauf celles cochées ci-dessous.'; @override String get modeHintWhitelist => 'Synchroniser uniquement les bibliothèques cochées ci-dessous.'; @override String get libraries => 'Bibliothèques'; @@ -2148,8 +2152,8 @@ extension on TranslationsFr { dynamic _flatMapFunction(String path) { return switch (path) { 'app.title' => 'Plezy', - 'auth.signInWithPlex' => 'S\'inscrire avec Plex', - 'auth.showQRCode' => 'Afficher le QR Code', + 'auth.signInWithPlex' => 'Se connecter avec Plex', + 'auth.showQRCode' => 'Afficher le code QR', 'auth.authenticate' => 'S\'authentifier', 'auth.authenticationTimeout' => 'Délai d\'authentification expiré. Veuillez réessayer.', 'auth.scanQRToSignIn' => 'Scannez ce QR code pour vous connecter', @@ -2162,11 +2166,11 @@ extension on TranslationsFr { 'auth.quickConnectWaiting' => 'En attente d\'approbation…', 'auth.quickConnectCancel' => 'Annuler', 'auth.quickConnectExpired' => 'Quick Connect a expiré. Réessayez.', - 'auth.localDataRecoveryRequired' => 'Plezy could not safely recover local sign-in and pending playback data. Please sign in again.', + 'auth.localDataRecoveryRequired' => 'Plezy n’a pas pu récupérer en toute sécurité les données locales de connexion et de lecture en attente. Veuillez vous reconnecter.', 'common.cancel' => 'Annuler', - 'common.save' => 'Sauvegarder', + 'common.save' => 'Enregistrer', 'common.close' => 'Fermer', - 'common.clear' => 'Nettoyer', + 'common.clear' => 'Effacer', 'common.reset' => 'Réinitialiser', 'common.later' => 'Plus tard', 'common.submit' => 'Soumettre', @@ -2174,36 +2178,36 @@ extension on TranslationsFr { 'common.retry' => 'Réessayer', 'common.logout' => 'Se déconnecter', 'common.unknown' => 'Inconnu', - 'common.refresh' => 'Rafraichir', + 'common.refresh' => 'Rafraîchir', 'common.yes' => 'Oui', 'common.no' => 'Non', 'common.delete' => 'Supprimer', 'common.edit' => 'Modifier', 'common.shuffle' => 'Mélanger', - 'common.addTo' => 'Ajouter à...', + 'common.addTo' => 'Ajouter à…', 'common.createNew' => 'Créer', - 'common.connect' => 'Connecter', - 'common.disconnect' => 'Déconnecter', + 'common.connect' => 'Se connecter', + 'common.disconnect' => 'Se déconnecter', 'common.play' => 'Lire', 'common.pause' => 'Pause', 'common.resume' => 'Reprendre', 'common.error' => 'Erreur', - 'common.search' => 'Recherche', + 'common.search' => 'Rechercher', 'common.home' => 'Accueil', 'common.back' => 'Retour', - 'common.settings' => 'Réglages', - 'common.mute' => 'Muet', + 'common.settings' => 'Paramètres', + 'common.mute' => 'Couper le son', 'common.ok' => 'OK', 'common.off' => 'Désactivé', 'common.seasonNumber' => ({required Object number}) => 'Saison ${number}', - 'common.episodeNumberTitle' => ({required Object number, required Object title}) => 'Épisode ${number} - ${title}', + 'common.episodeNumberTitle' => ({required Object number, required Object title}) => 'Épisode ${number} – ${title}', 'common.chapterNumber' => ({required Object number}) => 'Chapitre ${number}', - 'common.reconnect' => 'Reconnecter', + 'common.reconnect' => 'Se reconnecter', 'common.viewAll' => 'Tout afficher', 'common.checkingNetwork' => 'Vérification du réseau...', 'common.loadingServers' => 'Chargement des serveurs...', 'common.connectingToServers' => 'Connexion aux serveurs...', - 'common.startingOfflineMode' => 'Démarrage en mode hors-ligne...', + 'common.startingOfflineMode' => 'Démarrage en mode hors ligne…', 'common.loading' => 'Chargement...', 'common.fullscreen' => 'Plein écran', 'common.exitFullscreen' => 'Quitter le plein écran', @@ -2212,12 +2216,12 @@ extension on TranslationsFr { 'screens.switchProfile' => 'Changer de profil', 'screens.subtitleStyling' => 'Configuration des sous-titres', 'screens.mpvConfig' => 'mpv.conf', - 'screens.logs' => 'Logs', + 'screens.logs' => 'Journaux', 'update.available' => 'Mise à jour disponible', 'update.versionAvailable' => ({required Object version}) => 'Version ${version} disponible', - 'update.currentVersion' => ({required Object version}) => 'Installé: ${version}', + 'update.currentVersion' => ({required Object version}) => 'Actuelle : ${version}', 'update.skipVersion' => 'Ignorer cette version', - 'update.viewRelease' => 'Voir la Release', + 'update.viewRelease' => 'Voir les notes de version', 'update.latestVersion' => 'Vous utilisez la dernière version', 'update.checkFailed' => 'Échec de la vérification des mises à jour', 'settings.title' => 'Paramètres', @@ -2229,16 +2233,16 @@ extension on TranslationsFr { 'settings.videoPlayback' => 'Lecture vidéo', 'settings.videoPlaybackDescription' => 'Configurer le comportement de lecture', 'settings.advanced' => 'Avancé', - 'settings.episodePosterMode' => 'Style du Poster d\'épisode', - 'settings.seriesPoster' => 'Poster de série', - 'settings.seasonPoster' => 'Poster de saison', + 'settings.episodePosterMode' => 'Style de l’affiche de l’épisode', + 'settings.seriesPoster' => 'Affiche de la série', + 'settings.seasonPoster' => 'Affiche de la saison', 'settings.episodeThumbnail' => 'Miniature', 'settings.showHeroSectionDescription' => 'Afficher le carrousel de contenu en vedette sur l\'écran d\'accueil', 'settings.secondsLabel' => 'Secondes', 'settings.minutesLabel' => 'Minutes', 'settings.secondsShort' => 's', 'settings.minutesShort' => 'm', - 'settings.durationHint' => ({required Object min, required Object max}) => 'Entrez la durée (${min}-${max})', + 'settings.durationHint' => ({required Object min, required Object max}) => 'Saisissez la durée (${min}–${max})', 'settings.systemTheme' => 'Système', 'settings.lightTheme' => 'Clair', 'settings.darkTheme' => 'Sombre', @@ -2246,11 +2250,13 @@ extension on TranslationsFr { 'settings.libraryDensity' => 'Densité des bibliothèques', 'settings.compact' => 'Compact', 'settings.comfortable' => 'Confortable', + 'settings.tvCornerSpotlightBackdrop' => 'Illustration en vedette dans le coin', + 'settings.tvCornerSpotlightBackdropDescription' => 'Afficher l’illustration en vedette dans le coin supérieur droit plutôt qu’en plein écran', 'settings.viewMode' => 'Mode d\'affichage', 'settings.gridView' => 'Grille', 'settings.listView' => 'Liste', - 'settings.showHeroSection' => 'Afficher la section Hero', - 'settings.continueWatchingAction' => 'Action Continuer à regarder', + 'settings.showHeroSection' => 'Afficher la section à la une', + 'settings.continueWatchingAction' => 'Action de « Continuer à regarder »', 'settings.continueWatchingPlay' => 'Lire', 'settings.continueWatchingDetails' => 'Ouvrir les détails', 'settings.episodeAction' => 'Action des épisodes', @@ -2264,14 +2270,14 @@ extension on TranslationsFr { 'settings.groupLibrariesByServerDescription' => 'Regrouper les bibliothèques de la barre latérale par serveur multimédia.', 'settings.alwaysKeepSidebarOpen' => 'Toujours garder la barre latérale ouverte', 'settings.alwaysKeepSidebarOpenDescription' => 'La barre latérale reste étendue et la zone de contenu s\'adapte', - 'settings.showUnwatchedCount' => 'Afficher le nombre non visionné', - 'settings.showUnwatchedCountDescription' => 'Afficher le nombre d\'épisodes non visionnés pour les séries et saisons', - 'settings.showEpisodeNumberOnCards' => 'Afficher le numéro d\'épisode sur les cartes', - 'settings.showEpisodeNumberOnCardsDescription' => 'Afficher la saison et l\'épisode sur les cartes d\'épisode', - 'settings.showSeasonPostersOnTabs' => 'Afficher les posters de saison sur les onglets', - 'settings.showSeasonPostersOnTabsDescription' => 'Afficher l\'affiche de chaque saison au-dessus de son onglet', - 'settings.tvFullCardLayout' => 'Cartes TV pleines', - 'settings.tvFullCardLayoutDescription' => 'Utiliser des cartes TV avec image seule et noms des acteurs superposés', + 'settings.showUnwatchedCount' => 'Afficher le nombre d’éléments non vus', + 'settings.showUnwatchedCountDescription' => 'Afficher le nombre d’épisodes non vus pour les séries et les saisons', + 'settings.showEpisodeNumberOnCards' => 'Afficher le numéro de l’épisode sur les cartes', + 'settings.showEpisodeNumberOnCardsDescription' => 'Afficher les numéros de saison et d’épisode sur les cartes d’épisode', + 'settings.showSeasonPostersOnTabs' => 'Afficher les affiches de saison sur les onglets', + 'settings.showSeasonPostersOnTabsDescription' => 'Afficher l’affiche de chaque saison au-dessus de son onglet', + 'settings.tvFullCardLayout' => 'Cartes TV plein format', + 'settings.tvFullCardLayoutDescription' => 'Utiliser des cartes TV composées uniquement d’une image, avec le nom des acteurs en surimpression', 'settings.focusGlow' => 'Halo de sélection', 'settings.focusGlowDescription' => 'Afficher un léger halo autour de la carte sélectionnée', 'settings.visualEffects' => 'Effets visuels', @@ -2286,44 +2292,44 @@ extension on TranslationsFr { 'settings.exoPlayer' => 'ExoPlayer', 'settings.mpv' => 'mpv', 'settings.hardwareDecoding' => 'Décodage matériel', - 'settings.hardwareDecodingDescription' => 'Utilisez l\'accélération matérielle lorsqu\'elle est disponible.', - 'settings.bufferSize' => 'Taille du Buffer', - 'settings.bufferSizeMB' => ({required Object size}) => '${size}MB', - 'settings.bufferSizeAuto' => 'Auto (Recommandé)', - 'settings.bufferSizeWarning' => ({required Object heap, required Object size}) => '${heap}MB de mémoire disponible. Un tampon de ${size}MB peut affecter la lecture.', + 'settings.hardwareDecodingDescription' => 'Utiliser l’accélération matérielle lorsqu’elle est disponible', + 'settings.bufferSize' => 'Taille du tampon', + 'settings.bufferSizeMB' => ({required Object size}) => '${size} Mo', + 'settings.bufferSizeAuto' => 'Automatique (recommandé)', + 'settings.bufferSizeWarning' => ({required Object heap, required Object size}) => '${heap} Mo de mémoire disponible. Un tampon de ${size} Mo peut affecter la lecture.', 'settings.defaultQualityTitle' => 'Qualité par défaut', 'settings.musicQualityTitle' => 'Qualité de la musique', - 'settings.subtitleStyling' => 'Stylisation des sous-titres', - 'settings.subtitleStylingDescription' => 'Personnaliser l\'apparence des sous-titres', - 'settings.smallSkipDuration' => 'Durée du petit saut', - 'settings.largeSkipDuration' => 'Durée du grand saut', + 'settings.subtitleStyling' => 'Style des sous-titres', + 'settings.subtitleStylingDescription' => 'Personnaliser l’apparence des sous-titres', + 'settings.smallSkipDuration' => 'Durée du saut court', + 'settings.largeSkipDuration' => 'Durée du saut long', 'settings.rewindOnResume' => 'Rembobiner à la reprise', 'settings.secondsUnit' => ({required Object seconds}) => '${seconds} secondes', 'settings.defaultSleepTimer' => 'Minuterie de mise en veille par défaut', 'settings.minutesUnit' => ({required Object minutes}) => '${minutes} minutes', - 'settings.rememberTrackSelections' => 'Mémoriser les sélections de pistes par émission/film', + 'settings.rememberTrackSelections' => 'Mémoriser les pistes choisies pour chaque série ou film', 'settings.rememberTrackSelectionsDescription' => 'Mémoriser les choix audio et sous-titres par titre', 'settings.showChapterMarkersOnTimeline' => 'Afficher les marqueurs de chapitres sur la barre de lecture', 'settings.showChapterMarkersOnTimelineDescription' => 'Segmenter la barre de lecture aux limites des chapitres', - 'settings.clickVideoTogglesPlayback' => 'Cliquez sur la vidéo pour basculer entre lecture et pause.', - 'settings.clickVideoTogglesPlaybackDescription' => 'Cliquer sur la vidéo pour lire/mettre en pause au lieu d\'afficher les contrôles.', + 'settings.clickVideoTogglesPlayback' => 'Cliquer sur la vidéo pour alterner entre lecture et pause', + 'settings.clickVideoTogglesPlaybackDescription' => 'Cliquer sur la vidéo pour lire ou mettre en pause plutôt que d’afficher les commandes', 'settings.videoPlayerControls' => 'Commandes du lecteur vidéo', 'settings.keyboardShortcuts' => 'Raccourcis clavier', 'settings.keyboardShortcutsDescription' => 'Personnaliser les raccourcis clavier', 'settings.videoPlayerNavigation' => 'Navigation dans le lecteur vidéo', - 'settings.videoPlayerNavigationDescription' => 'Utilisez les touches fléchées pour naviguer dans les commandes du lecteur vidéo.', - 'settings.watchTogetherRelay' => 'Relais Regarder Ensemble', - 'settings.watchTogetherRelayDescription' => 'Définir un relay personnalisé. Tout le monde doit utiliser le même serveur.', + 'settings.videoPlayerNavigationDescription' => 'Utiliser les touches fléchées pour parcourir les commandes du lecteur vidéo', + 'settings.watchTogetherRelay' => 'Relais pour Regarder ensemble', + 'settings.watchTogetherRelayDescription' => 'Définir un relais personnalisé. Tous les participants doivent utiliser le même serveur.', 'settings.watchTogetherRelayHint' => 'https://mon-relais.exemple.fr', - 'settings.watchTogetherRelayInvalid' => 'Enter a valid HTTP or HTTPS relay base URL.', + 'settings.watchTogetherRelayInvalid' => 'Saisissez une URL de base HTTP ou HTTPS valide pour le relais.', 'settings.crashReporting' => 'Rapports de plantage', 'settings.crashReportingDescription' => 'Envoyer des rapports de plantage pour améliorer l\'application', 'settings.debugLogging' => 'Journalisation de débogage', 'settings.debugLoggingDescription' => 'Activer la journalisation détaillée pour le dépannage', - 'settings.viewLogs' => 'Voir les logs', - 'settings.viewLogsDescription' => 'Voir les logs d\'application', + 'settings.viewLogs' => 'Voir les journaux', + 'settings.viewLogsDescription' => 'Voir les journaux de l’application', 'settings.clearCache' => 'Vider le cache', - 'settings.clearCacheDescription' => 'Effacer les images et données en cache. Le contenu peut charger plus lentement.', + 'settings.clearCacheDescription' => 'Effacer les images et les données en cache. Le contenu peut se charger plus lentement.', 'settings.clearCacheSuccess' => 'Cache effacé avec succès', 'settings.resetSettings' => 'Réinitialiser les paramètres', 'settings.resetSettingsDescription' => 'Restaurer les paramètres par défaut. Action irréversible.', @@ -2336,8 +2342,8 @@ extension on TranslationsFr { 'settings.importSettingsDescription' => 'Restaurer les préférences depuis un fichier', 'settings.importSettingsConfirm' => 'Cela remplacera vos paramètres actuels. Continuer ?', 'settings.importSettingsSuccess' => 'Paramètres importés', - 'settings.importSettingsInvalidFile' => 'Ce fichier n\'est pas un export Plezy valide', - 'settings.importSettingsNoUser' => 'Connectez-vous avant d\'importer les paramètres', + 'settings.importSettingsInvalidFile' => 'Ce fichier n’est pas une exportation valide des paramètres de Plezy', + 'settings.importSettingsNoUser' => 'Connectez-vous avant d’importer les paramètres', 'settings.shortcutsReset' => 'Raccourcis réinitialisés aux valeurs par défaut', 'settings.about' => 'À propos', 'settings.aboutDescription' => 'Informations sur l\'application et licences', @@ -2346,56 +2352,56 @@ extension on TranslationsFr { 'settings.checkForUpdates' => 'Vérifier les mises à jour', 'settings.autoCheckUpdatesOnStartup' => 'Vérifier automatiquement les mises à jour au démarrage', 'settings.autoCheckUpdatesOnStartupDescription' => 'Notifier au lancement quand une mise à jour est disponible', - 'settings.validationErrorEnterNumber' => 'Veuillez saisir un numéro valide', + 'settings.validationErrorEnterNumber' => 'Veuillez saisir un nombre valide', 'settings.validationErrorDuration' => ({required Object min, required Object max, required Object unit}) => 'La durée doit être comprise entre ${min} et ${max} ${unit}', 'settings.shortcutAlreadyAssigned' => ({required Object action}) => 'Raccourci déjà attribué à ${action}', 'settings.shortcutUpdated' => ({required Object action}) => 'Raccourci mis à jour pour ${action}', - 'settings.saveFailed' => 'Could not save changes. Try again.', - 'settings.autoSkip' => 'Skip automatique', - 'settings.autoSkipIntro' => 'Skip automatique de l\'introduction', - 'settings.autoSkipIntroDescription' => 'Skipper automatiquement l\'introduction après quelques secondes', - 'settings.autoSkipCredits' => 'Skip automatique des crédits', - 'settings.autoSkipCreditsDescription' => 'Passer les crédits et passer à l\'épisode suivant automatiquement', - 'settings.forceSkipMarkerFallback' => 'Forcer les marqueurs de repli', - 'settings.forceSkipMarkerFallbackDescription' => 'Utiliser les motifs de titres de chapitres même si Plex a des marqueurs', - 'settings.autoSkipDelay' => 'Délai avant skip automatique', - 'settings.autoSkipDelayDescription' => ({required Object seconds}) => 'Attendre ${seconds} secondes avant l\'auto-skip', - 'settings.introPattern' => 'Modèle de marqueur d\'intro', - 'settings.introPatternDescription' => 'Expression régulière pour reconnaître les marqueurs d\'intro dans les titres de chapitres', - 'settings.creditsPattern' => 'Modèle de marqueur de générique', - 'settings.creditsPatternDescription' => 'Expression régulière pour reconnaître les marqueurs de générique dans les titres de chapitres', + 'settings.saveFailed' => 'Impossible d’enregistrer les modifications. Réessayez.', + 'settings.autoSkip' => 'Saut automatique', + 'settings.autoSkipIntro' => 'Passer automatiquement l’introduction', + 'settings.autoSkipIntroDescription' => 'Passer automatiquement les marqueurs d’introduction après quelques secondes', + 'settings.autoSkipCredits' => 'Passer automatiquement le générique', + 'settings.autoSkipCreditsDescription' => 'Passer automatiquement le générique et lire l’épisode suivant', + 'settings.forceSkipMarkerFallback' => 'Forcer les marqueurs de secours', + 'settings.forceSkipMarkerFallbackDescription' => 'Utiliser les motifs des titres de chapitre même lorsque Plex fournit des marqueurs', + 'settings.autoSkipDelay' => 'Délai avant le saut automatique', + 'settings.autoSkipDelayDescription' => ({required Object seconds}) => 'Attendre ${seconds} secondes avant le saut automatique', + 'settings.introPattern' => 'Motif du marqueur d’introduction', + 'settings.introPatternDescription' => 'Expression régulière permettant de reconnaître les marqueurs d’introduction dans les titres de chapitre', + 'settings.creditsPattern' => 'Motif du marqueur de générique', + 'settings.creditsPatternDescription' => 'Expression régulière permettant de reconnaître les marqueurs de générique dans les titres de chapitre', 'settings.invalidRegex' => 'Expression régulière invalide', 'settings.regex' => 'Expression régulière', - 'settings.downloads' => 'Téléchargement', - 'settings.downloadLocationDescription' => 'Choisissez où stocker le contenu téléchargé', + 'settings.downloads' => 'Téléchargements', + 'settings.downloadLocationDescription' => 'Choisir où stocker le contenu téléchargé', 'settings.downloadLocationDefault' => 'Par défaut (stockage de l\'application)', 'settings.downloadLocationCustom' => 'Emplacement personnalisé', 'settings.selectFolder' => 'Sélectionner un dossier', 'settings.resetToDefault' => 'Réinitialiser les paramètres par défaut', - 'settings.currentPath' => ({required Object path}) => 'Actuel: ${path}', + 'settings.currentPath' => ({required Object path}) => 'Actuel : ${path}', 'settings.downloadLocationChanged' => 'Emplacement de téléchargement modifié', 'settings.downloadLocationReset' => 'Emplacement de téléchargement réinitialisé à la valeur par défaut', 'settings.downloadLocationInvalid' => 'Le dossier sélectionné n\'est pas accessible en écriture', 'settings.downloadLocationPickerUnavailable' => 'La sélection de dossier n’est pas disponible sur cet appareil', - 'settings.downloadOnWifiOnly' => 'Télécharger uniquement via WiFi', - 'settings.downloadOnWifiOnlyDescription' => 'Empêcher les téléchargements lorsque vous utilisez les données cellulaires', + 'settings.downloadOnWifiOnly' => 'Télécharger uniquement en Wi-Fi', + 'settings.downloadOnWifiOnlyDescription' => 'Empêcher les téléchargements via les données mobiles', 'settings.autoRemoveWatchedDownloads' => 'Supprimer automatiquement les téléchargements vus', 'settings.autoRemoveWatchedDownloadsDescription' => 'Supprimer automatiquement les téléchargements vus', - 'settings.cellularDownloadBlocked' => 'Les téléchargements sont bloqués sur réseau mobile. Utilisez le WiFi ou modifiez le réglage.', + 'settings.cellularDownloadBlocked' => 'Les téléchargements sont bloqués sur le réseau mobile. Utilisez le Wi-Fi ou modifiez ce paramètre.', 'settings.maxVolume' => 'Volume maximal', 'settings.maxVolumeDescription' => 'Autoriser l\'augmentation du volume au-delà de 100 % pour les médias silencieux', 'settings.maxVolumePercent' => ({required Object percent}) => '${percent}%', 'settings.discordRichPresence' => 'Discord Rich Presence', - 'settings.discordRichPresenceDescription' => 'Montrez ce que vous regardez sur Discord', + 'settings.discordRichPresenceDescription' => 'Afficher sur Discord ce que vous regardez', 'settings.services' => 'Services', - 'settings.servicesDescription' => 'Connectez Trakt, MyAnimeList, Seerr et plus', + 'settings.servicesDescription' => 'Connecter Trakt, MyAnimeList, Seerr et d’autres services', 'settings.manageLibrariesDescription' => 'Réorganiser et masquer les bibliothèques', 'settings.companionRemoteServer' => 'Serveur de télécommande', 'settings.companionRemoteServerDescription' => 'Autoriser les appareils mobiles de votre réseau à contrôler cette application', - 'settings.autoPip' => 'Image dans l\'image automatique', - 'settings.autoPipDescription' => 'Passer en picture-in-picture en quittant pendant la lecture', - 'settings.matchContentFrameRate' => 'Fréquence d\'images du contenu correspondant', - 'settings.matchContentFrameRateDescription' => 'Adapter la fréquence d\'affichage au contenu vidéo', + 'settings.autoPip' => 'Mode image dans l’image automatique', + 'settings.autoPipDescription' => 'Passer en mode image dans l’image si vous quittez l’application pendant la lecture', + 'settings.matchContentFrameRate' => 'Adapter la fréquence d’images au contenu', + 'settings.matchContentFrameRateDescription' => 'Adapter la fréquence de rafraîchissement de l’écran au contenu vidéo', 'settings.matchRefreshRate' => 'Adapter la fréquence de rafraîchissement', 'settings.matchRefreshRateDescription' => 'Adapter la fréquence d\'affichage en plein écran', 'settings.matchDynamicRange' => 'Adapter la plage dynamique', @@ -2403,17 +2409,17 @@ extension on TranslationsFr { 'settings.displaySwitchDelay' => 'Délai de changement d\'affichage', 'settings.tunneledPlayback' => 'Lecture tunnelée', 'settings.tunneledPlaybackDescription' => 'Utiliser le tunneling vidéo. Désactivez si la lecture HDR affiche un écran noir.', - 'settings.audioPassthrough' => 'Audio Pass-Through', - 'settings.audioPassthroughDescription' => 'Envoyez l\'audio Dolby/DTS vers votre ampli ou téléviseur sans réencodage, en conservant le son surround. Désactivez si vous n\'avez aucun son.', - 'settings.audioPassthroughDescriptionAppleTv' => 'Transmet le Dolby Digital Plus (y compris Atmos) au système en bitstream. Le DTS et le TrueHD restent lus en PCM multicanal. De brèves coupures audio peuvent survenir lors des sauts.', - 'settings.audioDownmix' => 'Downmix en stéréo', - 'settings.audioDownmixDescription' => 'Réduit le son surround à deux canaux pour les enceintes stéréo ou le casque', + 'settings.audioPassthrough' => 'Transmission audio directe', + 'settings.audioPassthroughDescription' => 'Envoyer l’audio Dolby/DTS à votre ampli ou téléviseur sans le réencoder afin de préserver le son surround. Désactivez cette option en l’absence de son.', + 'settings.audioPassthroughDescriptionAppleTv' => 'Utiliser le décodeur Dolby natif d’Apple pour le Dolby Digital Plus, y compris Atmos. Le DTS et le TrueHD sont toujours lus en PCM multicanal. Désactivez cette option en l’absence de son.', + 'settings.audioDownmix' => 'Conversion en stéréo', + 'settings.audioDownmixDescription' => 'Convertir le son surround en deux canaux pour les enceintes stéréo ou le casque', 'settings.downmixCenterBoost' => 'Renforcement du canal central', 'settings.downmixCenterBoostValue' => ({required Object db}) => '${db} dB', 'settings.downmixCenterBoostLabel' => 'Renforcement (dB)', 'settings.downmixCenterBoostShort' => 'dB', - 'settings.audioDownmixNormalize' => 'Normaliser le volume lors du downmix', - 'settings.audioDownmixNormalizeDescription' => 'Atténue le mixage pour éviter la saturation. Désactivez pour conserver le volume d\'origine (risque de distorsion sur les scènes fortes).', + 'settings.audioDownmixNormalize' => 'Normaliser le volume lors de la conversion en stéréo', + 'settings.audioDownmixNormalizeDescription' => 'Atténuer le mixage pour éviter la saturation. Désactivez cette option pour conserver le volume d’origine, au risque de déformer les scènes bruyantes.', 'settings.atmosDiagnostics' => 'Test de sortie Atmos', 'settings.atmosDiagnosticsDescription' => 'Diagnostiquer la sortie Dolby Atmos en lisant des signaux de test via le lecteur système', 'settings.atmosTestHlsAtmos' => 'Flux Atmos d\'Apple', @@ -2430,25 +2436,25 @@ extension on TranslationsFr { 'settings.atmosTestUrlMissing' => 'Définissez d\'abord l\'URL du fichier de test', 'settings.atmosTestStatus' => 'État', 'settings.dvConversionMode' => 'Conversion Dolby Vision', - 'settings.dvConversionModeDescription' => 'Choisissez comment ExoPlayer gère les fichiers Dolby Vision Profile 7.', + 'settings.dvConversionModeDescription' => 'Choisir comment ExoPlayer gère les fichiers Dolby Vision de profil 7.', 'settings.dvConversionAuto' => 'Auto', 'settings.dvConversionNative' => 'Natif / désactivé', 'settings.dvConversionDv81' => 'P7 → P8.1', 'settings.dvConversionHevcStrip' => 'P7 → HEVC', 'settings.dvConversionAutoDescription' => 'Utiliser la détection des capacités de l’appareil et le comportement de repli normal', 'settings.dvConversionNativeDescription' => 'Forcer le DV7 natif et bloquer la nouvelle tentative de conversion DV', - 'settings.dvConversionDv81Description' => 'Forcer la conversion RPU intégrée vers Dolby Vision profil 8.1', + 'settings.dvConversionDv81Description' => 'Forcer la conversion RPU intégrée vers le profil 8.1 de Dolby Vision', 'settings.dvConversionHevcStripDescription' => 'Supprimer les couches RPU/EL Dolby Vision et présenter du HEVC simple', 'settings.requireProfileSelectionOnOpen' => 'Demander le profil à l\'ouverture', 'settings.requireProfileSelectionOnOpenDescription' => 'Afficher la sélection de profil à chaque ouverture de l\'application', 'settings.forceTvMode' => 'Forcer le mode TV', - 'settings.forceTvModeDescription' => 'Forcer l\'interface TV. Pour appareils non détectés automatiquement. Redémarrage requis.', + 'settings.forceTvModeDescription' => 'Forcer l’interface TV sur les appareils qui ne sont pas détectés automatiquement. Redémarrage requis.', 'settings.startInFullscreen' => 'Démarrer en plein écran', 'settings.startInFullscreenDescription' => 'Ouvrir Plezy en mode plein écran au lancement', 'settings.exitFullscreenOnPlayerClose' => 'Quitter le plein écran à la fermeture du lecteur', 'settings.exitFullscreenOnPlayerCloseDescription' => 'Quitter automatiquement le plein écran lors de la fermeture du lecteur vidéo', - 'settings.autoHidePerformanceOverlay' => 'Masquer auto. superposition performances', - 'settings.autoHidePerformanceOverlayDescription' => 'Faire apparaître/disparaître la superposition avec les contrôles de lecture', + 'settings.autoHidePerformanceOverlay' => 'Masquer automatiquement les données de performance', + 'settings.autoHidePerformanceOverlayDescription' => 'Masquer progressivement les données de performance avec les commandes de lecture', 'settings.showNavBarLabels' => 'Afficher les libellés de la barre de navigation', 'settings.showNavBarLabelsDescription' => 'Afficher les libellés sous les icônes de la barre de navigation', 'settings.startupSection' => 'Section de démarrage', @@ -2461,7 +2467,7 @@ extension on TranslationsFr { 'settings.content' => 'Contenu', 'settings.player' => 'Lecteur', 'settings.subtitlesAndConfig' => 'Sous-titres et configuration', - 'settings.seekAndTiming' => 'Recherche et minutage', + 'settings.seekAndTiming' => 'Déplacement et minutage', 'settings.behavior' => 'Comportement', 'search.hint' => 'Rechercher des films, des séries, de la musique...', 'search.tryDifferentTerm' => 'Essayez un autre terme de recherche', @@ -2505,7 +2511,7 @@ extension on TranslationsFr { 'fileInfo.advanced' => 'Avancé', 'fileInfo.codec' => 'Codec', 'fileInfo.resolution' => 'Résolution', - 'fileInfo.bitrate' => 'Bitrate', + 'fileInfo.bitrate' => 'Débit', 'fileInfo.frameRate' => 'Fréquence d\'images', 'fileInfo.aspectRatio' => 'Format d\'image', 'fileInfo.profile' => 'Profil', @@ -2545,13 +2551,13 @@ extension on TranslationsFr { 'rateSheet.favorited' => 'Ajouté aux favoris', 'rateSheet.saved' => 'Enregistré', 'rateSheet.notAvailable' => 'Aucune correspondance trouvée', - 'rateSheet.noConnectedServices' => 'Connectez un service dans les Réglages pour noter ici.', + 'rateSheet.noConnectedServices' => 'Connectez un service dans les paramètres pour pouvoir y attribuer une note.', 'accessibility.mediaCardMovie' => ({required Object title}) => '${title}, film', - 'accessibility.mediaCardShow' => ({required Object title}) => '${title}, show TV', + 'accessibility.mediaCardShow' => ({required Object title}) => '${title}, série TV', 'accessibility.mediaCardEpisode' => ({required Object title, required Object episodeInfo}) => '${title}, ${episodeInfo}', 'accessibility.mediaCardSeason' => ({required Object title, required Object seasonInfo}) => '${title}, ${seasonInfo}', 'accessibility.mediaCardWatched' => 'visionné', - 'accessibility.mediaCardPartiallyWatched' => ({required Object percent}) => '${percent} pourcentage visionné', + 'accessibility.mediaCardPartiallyWatched' => ({required Object percent}) => '${percent} pour cent visionné', 'accessibility.mediaCardUnwatched' => 'non visionné', 'accessibility.tapToPlay' => 'Appuyez pour lire', 'accessibility.decrease' => 'Diminuer', @@ -2570,21 +2576,21 @@ extension on TranslationsFr { 'accessibility.rowPosition' => ({required Object row, required Object rowCount}) => 'Ligne ${row} sur ${rowCount}', 'tooltips.shufflePlay' => 'Lecture aléatoire', 'tooltips.playTrailer' => 'Lire la bande-annonce', - 'tooltips.markAsWatched' => 'Marqué comme vu', - 'tooltips.markAsUnwatched' => 'Marqué comme non vu', + 'tooltips.markAsWatched' => 'Marquer comme vu', + 'tooltips.markAsUnwatched' => 'Marquer comme non vu', 'audioTracks.track' => ({required Object n}) => 'Piste audio ${n}', 'videoControls.audioLabel' => 'Audio', 'videoControls.subtitlesLabel' => 'Sous-titres', - 'videoControls.resetToZero' => 'Réinitialiser à 0ms', + 'videoControls.resetToZero' => 'Réinitialiser à 0 ms', 'videoControls.addTime' => ({required Object amount, required Object unit}) => '+${amount}${unit}', 'videoControls.minusTime' => ({required Object amount, required Object unit}) => '-${amount}${unit}', - 'videoControls.playsLater' => ({required Object label}) => '${label} lire plus tard', - 'videoControls.playsEarlier' => ({required Object label}) => '${label} lire plus tôt', + 'videoControls.playsLater' => ({required Object label}) => '${label} : lecture retardée', + 'videoControls.playsEarlier' => ({required Object label}) => '${label} : lecture avancée', 'videoControls.noOffset' => 'Pas de décalage', - 'videoControls.letterbox' => 'Boîte aux lettres', - 'videoControls.fillScreen' => 'Remplir l\'écran', - 'videoControls.stretch' => 'Etirer', - 'videoControls.lockRotation' => 'Verrouillage de la rotation', + 'videoControls.letterbox' => 'Format letterbox', + 'videoControls.fillScreen' => 'Remplir l’écran', + 'videoControls.stretch' => 'Étirer', + 'videoControls.lockRotation' => 'Verrouiller la rotation', 'videoControls.unlockRotation' => 'Déverrouiller la rotation', 'videoControls.timerActive' => 'Minuterie active', 'videoControls.playbackWillPauseIn' => ({required Object duration}) => 'La lecture sera mise en pause dans ${duration}', @@ -2595,18 +2601,20 @@ extension on TranslationsFr { 'videoControls.stillWatching' => 'Toujours en train de regarder ?', 'videoControls.pausingIn' => ({required Object seconds}) => 'Pause dans ${seconds}s', 'videoControls.continueWatching' => 'Continuer', - 'videoControls.autoPlayNext' => 'Lecture automatique suivante', + 'videoControls.autoPlayNext' => 'Lecture automatique de l’élément suivant', 'videoControls.playNext' => 'Lire l\'épisode suivant', 'videoControls.playButton' => 'Lire', 'videoControls.pauseButton' => 'Pause', + 'videoControls.showPlaybackControls' => 'Afficher les commandes de lecture', + 'videoControls.hidePlaybackControls' => 'Masquer les commandes de lecture', 'videoControls.seekBackwardButton' => ({required Object seconds}) => 'Reculer de ${seconds} secondes', 'videoControls.seekForwardButton' => ({required Object seconds}) => 'Avancer de ${seconds} secondes', 'videoControls.previousButton' => 'Épisode précédent', 'videoControls.nextButton' => 'Épisode suivant', 'videoControls.previousChapterButton' => 'Chapitre précédent', 'videoControls.nextChapterButton' => 'Chapitre suivant', - 'videoControls.muteButton' => 'Mute', - 'videoControls.unmuteButton' => 'Dé-mute', + 'videoControls.muteButton' => 'Couper le son', + 'videoControls.unmuteButton' => 'Rétablir le son', 'videoControls.settingsButton' => 'Paramètres de lecture', 'videoControls.tracksButton' => 'Audio et sous-titres', 'videoControls.chaptersButton' => 'Chapitres', @@ -2617,7 +2625,7 @@ extension on TranslationsFr { 'videoControls.qualityPresetLabel' => ({required Object resolution, required Object bitrate}) => '${resolution}p ${bitrate} Mbps', 'videoControls.transcodeUnavailableFallback' => 'Transcodage indisponible — lecture en qualité originale', 'videoControls.subtitleUnavailableFallback' => 'Impossible de charger les sous-titres sélectionnés — poursuite de la lecture sans sous-titres', - 'videoControls.pipButton' => 'Mode PiP (Picture-in-Picture)', + 'videoControls.pipButton' => 'Mode image dans l’image', 'videoControls.aspectRatioButton' => 'Format d\'image', 'videoControls.ambientLighting' => 'Éclairage ambiant', 'videoControls.fullscreenButton' => 'Passer en mode plein écran', @@ -2627,16 +2635,16 @@ extension on TranslationsFr { 'videoControls.lockScreen' => 'Verrouiller l\'écran', 'videoControls.screenLockButton' => 'Verrouillage de l\'écran', 'videoControls.longPressToUnlock' => 'Appui long pour déverrouiller', - 'videoControls.timelineSlider' => 'Timeline vidéo', - 'videoControls.volumeSlider' => 'Niveau sonore', - 'videoControls.endsAt' => ({required Object time}) => 'Fin à ${time}', + 'videoControls.timelineSlider' => 'Barre de progression vidéo', + 'videoControls.volumeSlider' => 'Niveau du volume', + 'videoControls.endsAt' => ({required Object time}) => 'Se termine à ${time}', 'videoControls.pipActive' => 'Lecture en mode image dans l\'image', 'videoControls.pipFailed' => 'Échec du démarrage du mode image dans l\'image', 'videoControls.screenshotSaved' => 'Capture d\'écran enregistrée', 'videoControls.zoomPercent' => ({required Object percent}) => 'Zoom ${percent} %', 'videoControls.pipErrors.androidVersion' => 'Nécessite Android 8.0 ou plus récent', 'videoControls.pipErrors.iosVersion' => 'Nécessite iOS 15.0 ou plus récent', - 'videoControls.pipErrors.permissionDisabled' => 'Picture-in-picture est désactivé. Activez-le dans les paramètres système.', + 'videoControls.pipErrors.permissionDisabled' => 'Le mode image dans l’image est désactivé. Activez-le dans les paramètres système.', 'videoControls.pipErrors.notSupported' => 'Cet appareil ne prend pas en charge le mode image dans l\'image', 'videoControls.pipErrors.voSwitchFailed' => 'Échec du changement de sortie vidéo pour l\'image dans l\'image', 'videoControls.pipErrors.failed' => 'Échec du démarrage du mode image dans l\'image', @@ -2655,40 +2663,40 @@ extension on TranslationsFr { 'videoControls.subtitleDownloadedNotApplied' => 'Le sous-titre a été téléchargé, mais n’a pas pu être sélectionné', 'videoControls.subtitleDownloadFailed' => 'Échec du téléchargement du sous-titre', 'videoControls.searchLanguages' => 'Rechercher des langues...', + _ => null, + } ?? switch (path) { 'messages.markedAsWatched' => 'Marqué comme vu', 'messages.markedAsUnwatched' => 'Marqué comme non vu', 'messages.markedAsWatchedOffline' => 'Marqué comme vu (se synchronisera lorsque vous serez en ligne)', 'messages.markedAsUnwatchedOffline' => 'Marqué comme non vu (sera synchronisé lorsque vous serez en ligne)', - _ => null, - } ?? switch (path) { 'messages.autoRemovedWatchedDownload' => ({required Object title}) => 'Supprimé automatiquement : ${title}', 'messages.autoRemovedWatchedDownloads' => ({required num n}) => (_root.$meta.cardinalResolver ?? PluralResolvers.cardinal('fr'))(n, one: '${n} téléchargement vu supprimé automatiquement', other: '${n} téléchargements vus supprimés automatiquement', ), - 'messages.removedFromContinueWatching' => 'Supprimer de "Continuer à regarder"', - 'messages.errorLoading' => ({required Object error}) => 'Erreur: ${error}', + 'messages.removedFromContinueWatching' => 'Supprimé de « Continuer à regarder »', + 'messages.errorLoading' => ({required Object error}) => 'Erreur : ${error}', 'messages.streamInterrupted' => 'La lecture a été interrompue. Appuyez sur Lecture ou avancez pour réessayer.', 'messages.liveStreamInterrupted' => 'Le direct a été interrompu. Appuyez sur Lecture pour réessayer.', 'messages.fileInfoNotAvailable' => 'Informations sur le fichier non disponibles', - 'messages.playbackAuthenticationRequired' => 'Sign in to the media server again to play this item.', - 'messages.playbackServerUnavailable' => 'The media server is unavailable. Try again later.', - 'messages.playbackDataInvalid' => 'The server returned invalid playback information.', - 'messages.playbackCancelled' => 'Playback was cancelled.', - 'messages.playbackFailed' => 'Playback could not be started.', - 'messages.errorLoadingFileInfo' => ({required Object error}) => 'Erreur lors du chargement des informations sur le fichier: ${error}', + 'messages.playbackAuthenticationRequired' => 'Reconnectez-vous au serveur multimédia pour lire cet élément.', + 'messages.playbackServerUnavailable' => 'Le serveur multimédia est indisponible. Réessayez plus tard.', + 'messages.playbackDataInvalid' => 'Le serveur a renvoyé des informations de lecture non valides.', + 'messages.playbackCancelled' => 'La lecture a été annulée.', + 'messages.playbackFailed' => 'Impossible de démarrer la lecture.', + 'messages.errorLoadingFileInfo' => ({required Object error}) => 'Erreur lors du chargement des informations sur le fichier : ${error}', 'messages.errorLoadingSeries' => 'Erreur lors du chargement de la série', 'messages.musicNotSupported' => 'La lecture de musique n\'est pas encore prise en charge', 'messages.noDescriptionAvailable' => 'Aucune description disponible', 'messages.noProfilesAvailable' => 'Aucun profil disponible', 'messages.contactAdminForProfiles' => 'Contactez votre administrateur serveur pour ajouter des profils', 'messages.unableToDetermineLibrarySection' => 'Impossible de déterminer la section de la bibliothèque pour cet élément', - 'messages.logsCleared' => 'Logs effacés', - 'messages.logsCopied' => 'Logs copiés dans le presse-papier', - 'messages.noLogsAvailable' => 'Aucun log disponible', - 'messages.libraryScanning' => ({required Object title}) => 'Scan de "${title}"...', - 'messages.libraryScanStarted' => ({required Object title}) => 'Scan de la bibliothèque démarrée pour "${title}"', - 'messages.libraryScanFailed' => ({required Object error}) => 'Échec du scan de la bibliothèque: ${error}', - 'messages.metadataRefreshing' => ({required Object title}) => 'Actualisation des métadonnées pour "${title}"...', - 'messages.metadataRefreshStarted' => ({required Object title}) => 'Actualisation des métadonnées lancée pour "${title}"', - 'messages.metadataRefreshFailed' => ({required Object error}) => 'Échec de l\'actualisation des métadonnées: ${error}', + 'messages.logsCleared' => 'Journaux effacés', + 'messages.logsCopied' => 'Journaux copiés dans le presse-papiers', + 'messages.noLogsAvailable' => 'Aucun journal disponible', + 'messages.libraryScanning' => ({required Object title}) => 'Analyse de « ${title} »…', + 'messages.libraryScanStarted' => ({required Object title}) => 'Analyse de la bibliothèque lancée pour « ${title} »', + 'messages.libraryScanFailed' => ({required Object error}) => 'Échec de l’analyse de la bibliothèque : ${error}', + 'messages.metadataRefreshing' => ({required Object title}) => 'Actualisation des métadonnées de « ${title} »…', + 'messages.metadataRefreshStarted' => ({required Object title}) => 'Actualisation des métadonnées lancée pour « ${title} »', + 'messages.metadataRefreshFailed' => ({required Object error}) => 'Échec de l’actualisation des métadonnées : ${error}', 'messages.logoutConfirm' => 'Êtes-vous sûr de vouloir vous déconnecter ?', 'messages.noSeasonsFound' => 'Aucune saison trouvée', 'messages.seasonsLoadFailed' => 'Impossible de charger les saisons', @@ -2698,14 +2706,14 @@ extension on TranslationsFr { 'messages.noResultsFound' => 'Aucun résultat trouvé', 'messages.sleepTimerSet' => ({required Object label}) => 'Minuterie de mise en veille réglée sur ${label}', 'messages.noItemsAvailable' => 'Aucun élément disponible', - 'messages.failedToCreatePlayQueueNoItems' => 'Échec de la création de la file d\'attente de lecture - aucun élément', - 'messages.failedPlayback' => ({required Object action, required Object error}) => 'Echec de ${action}: ${error}', + 'messages.failedToCreatePlayQueueNoItems' => 'Impossible de créer la file d’attente de lecture : aucun élément', + 'messages.failedPlayback' => ({required Object action, required Object error}) => 'Échec de ${action} : ${error}', 'messages.switchingToCompatiblePlayer' => 'Passage au lecteur compatible...', 'messages.serverLimitTitle' => 'Échec de la lecture', 'messages.serverLimitBody' => 'Erreur serveur (HTTP 500). Une limite de bande passante/transcodage a probablement rejeté cette session. Demandez au propriétaire de l\'ajuster.', - 'messages.logsUploaded' => 'Logs envoyés', - 'messages.logsUploadFailed' => 'Échec de l\'envoi des logs', - 'messages.logId' => 'ID du log', + 'messages.logsUploaded' => 'Journaux envoyés', + 'messages.logsUploadFailed' => 'Échec de l’envoi des journaux', + 'messages.logId' => 'Identifiant du journal', 'subtitlingStyling.text' => 'Texte', 'subtitlingStyling.border' => 'Bordure', 'subtitlingStyling.background' => 'Arrière-plan', @@ -2787,13 +2795,13 @@ extension on TranslationsFr { 'profiles.borrowExplain' => 'Emprunter la connexion d\'un autre profil. Les profils protégés par PIN exigent un PIN.', 'profiles.borrowEmpty' => 'Rien à emprunter pour le moment.', 'profiles.borrowEmptySubtitle' => 'Connectez d\'abord Plex ou Jellyfin à un autre profil.', - 'profiles.borrowLoadFailed' => 'Available connections could not be loaded. Try again.', + 'profiles.borrowLoadFailed' => 'Impossible de charger les connexions disponibles. Réessayez.', 'profiles.borrowFromProfile' => ({required Object displayName}) => 'De ${displayName}', 'profiles.borrowConnectionBorrowed' => 'Connexion empruntée.', 'profiles.borrowFailed' => 'Impossible d\'emprunter la connexion.', 'profiles.incorrectPin' => 'PIN incorrect.', 'profiles.incorrectPinTryAgain' => 'PIN incorrect. Veuillez réessayer.', - 'profiles.sourceProfileMissingParentAccount' => 'Le profil source n\'a pas son compte parent.', + 'profiles.sourceProfileMissingParentAccount' => 'Le profil source ne possède pas de compte parent.', 'profiles.failedToLoadHomeUsers' => 'Impossible de charger vos utilisateurs Plex Home. Vérifiez votre connexion et réessayez.', 'profiles.failedToVerifyPin' => 'Impossible de vérifier le PIN.', 'profiles.newProfile' => 'Nouveau profil', @@ -2811,9 +2819,9 @@ extension on TranslationsFr { 'connections.signInAgain' => 'Se reconnecter', 'connections.editJellyfinTitle' => 'Modifier la connexion Jellyfin', 'connections.editJellyfinIntro' => ({required Object serverName}) => 'Ajoutez ou supprimez des URL pour ${serverName}. Plezy utilisera l\'URL joignable avec la latence la plus faible.', - 'discover.title' => 'Découvrez', + 'discover.title' => 'Découvrir', 'discover.noContentAvailable' => 'Aucun contenu disponible', - 'discover.addMediaToLibraries' => 'Ajoutez des médias à votre bibliothèque', + 'discover.addMediaToLibraries' => 'Ajoutez des médias à vos bibliothèques', 'discover.continueWatching' => 'Continuer à regarder', 'discover.continueWatchingIn' => ({required Object library}) => 'Continuer à regarder dans ${library}', 'discover.nextUp' => 'À suivre', @@ -2825,22 +2833,22 @@ extension on TranslationsFr { 'discover.mostPlayedIn' => ({required Object library}) => 'Les plus lus dans ${library}', 'discover.playEpisode' => ({required Object season, required Object episode}) => 'S${season}E${episode}', 'discover.overview' => 'Aperçu', - 'discover.cast' => 'Cast', - 'discover.extras' => 'Bandes-annonces et Extras', + 'discover.cast' => 'Distribution', + 'discover.extras' => 'Bandes-annonces et bonus', 'discover.studio' => 'Studio', 'discover.rating' => 'Évaluation', 'discover.movie' => 'Film', - 'discover.tvShow' => 'Show TV', + 'discover.tvShow' => 'Série TV', 'discover.minutesLeft' => ({required Object minutes}) => '${minutes} min restantes', 'discover.moreLikeThis' => 'Plus de contenus similaires', - 'errors.searchFailed' => ({required Object error}) => 'Recherche échouée: ${error}', + 'errors.searchFailed' => ({required Object error}) => 'Échec de la recherche : ${error}', 'errors.connectionTimeout' => ({required Object context}) => 'Délai d\'attente de connexion dépassé pendant le chargement ${context}', 'errors.connectionFailed' => 'Impossible de se connecter au serveur multimédia', 'errors.unableToLoad' => ({required Object context}) => 'Impossible de charger ${context}. Réessayez.', 'errors.noClientAvailable' => 'Aucun client disponible', - 'errors.pleaseEnterToken' => 'Veuillez saisir un token', - 'errors.invalidToken' => 'Token invalide', - 'errors.failedToVerifyToken' => ({required Object error}) => 'Échec de la vérification du token: ${error}', + 'errors.pleaseEnterToken' => 'Veuillez saisir un jeton', + 'errors.invalidToken' => 'Jeton non valide', + 'errors.failedToVerifyToken' => ({required Object error}) => 'Échec de la vérification du jeton : ${error}', 'errors.failedToSwitchProfile' => ({required Object displayName}) => 'Impossible de changer de profil vers ${displayName}', 'errors.failedToDeleteProfile' => ({required Object displayName}) => 'Impossible de supprimer ${displayName}', 'errors.failedToRate' => 'Impossible de mettre à jour la note', @@ -2852,12 +2860,12 @@ extension on TranslationsFr { 'libraries.analyzeLibrary' => 'Analyser la bibliothèque', 'libraries.refreshMetadata' => 'Actualiser les métadonnées', 'libraries.emptyTrash' => 'Vider la corbeille', - 'libraries.emptyingTrash' => ({required Object title}) => 'Vider les poubelles pour "${title}"...', - 'libraries.trashEmptied' => ({required Object title}) => 'Poubelles vidées pour "${title}"', - 'libraries.failedToEmptyTrash' => ({required Object error}) => 'Échec de la suppression des éléments supprimés: ${error}', - 'libraries.analyzing' => ({required Object title}) => 'Analyse de "${title}"...', - 'libraries.analysisStarted' => ({required Object title}) => 'L\'analyse a commencé pour "${title}"', - 'libraries.failedToAnalyze' => ({required Object error}) => 'Échec de l\'analyse de la bibliothèque: ${error}', + 'libraries.emptyingTrash' => ({required Object title}) => 'Vidage de la corbeille de « ${title} »…', + 'libraries.trashEmptied' => ({required Object title}) => 'Corbeille vidée pour « ${title} »', + 'libraries.failedToEmptyTrash' => ({required Object error}) => 'Échec du vidage de la corbeille : ${error}', + 'libraries.analyzing' => ({required Object title}) => 'Analyse de « ${title} »…', + 'libraries.analysisStarted' => ({required Object title}) => 'Analyse lancée pour « ${title} »', + 'libraries.failedToAnalyze' => ({required Object error}) => 'Échec de l’analyse de la bibliothèque : ${error}', 'libraries.noLibrariesFound' => 'Aucune bibliothèque trouvée', 'libraries.allLibrariesHidden' => 'Toutes les bibliothèques sont masquées', 'libraries.hiddenLibrariesCount' => ({required Object count}) => 'Bibliothèques masquées (${count})', @@ -2866,10 +2874,10 @@ extension on TranslationsFr { 'libraries.resetFilters' => 'Réinitialiser les filtres', 'libraries.all' => 'Tout', 'libraries.clearAll' => 'Tout effacer', - 'libraries.scanLibraryConfirm' => ({required Object title}) => 'Êtes-vous sûr de vouloir lancer le scan de "${title}"?', - 'libraries.analyzeLibraryConfirm' => ({required Object title}) => 'Êtes-vous sûr de vouloir analyser "${title}"?', - 'libraries.refreshMetadataConfirm' => ({required Object title}) => 'Êtes-vous sûr de vouloir actualiser les métadonnées pour "${title}"?', - 'libraries.emptyTrashConfirm' => ({required Object title}) => 'Êtes-vous sûr de vouloir vider la corbeille pour "${title}"?', + 'libraries.scanLibraryConfirm' => ({required Object title}) => 'Voulez-vous vraiment scanner « ${title} » ?', + 'libraries.analyzeLibraryConfirm' => ({required Object title}) => 'Voulez-vous vraiment analyser « ${title} » ?', + 'libraries.refreshMetadataConfirm' => ({required Object title}) => 'Voulez-vous vraiment actualiser les métadonnées de « ${title} » ?', + 'libraries.emptyTrashConfirm' => ({required Object title}) => 'Voulez-vous vraiment vider la corbeille de « ${title} » ?', 'libraries.manageLibraries' => 'Gérer les bibliothèques', 'libraries.sort' => 'Trier', 'libraries.sortBy' => 'Trier par', @@ -2892,7 +2900,7 @@ extension on TranslationsFr { 'libraries.groupings.title' => 'Regroupement', 'libraries.groupings.all' => 'Tous', 'libraries.groupings.movies' => 'Films', - 'libraries.groupings.shows' => 'Show TV', + 'libraries.groupings.shows' => 'Séries TV', 'libraries.groupings.seasons' => 'Saisons', 'libraries.groupings.episodes' => 'Épisodes', 'libraries.groupings.artists' => 'Artistes', @@ -2902,9 +2910,9 @@ extension on TranslationsFr { 'libraries.filterCategories.genre' => 'Genre', 'libraries.filterCategories.year' => 'Année', 'libraries.filterCategories.contentRating' => 'Classification', - 'libraries.filterCategories.tag' => 'Tag', + 'libraries.filterCategories.tag' => 'Étiquette', 'libraries.filterCategories.unwatched' => 'Non vus', - 'libraries.filterCategories.unplayed' => 'Non lu', + 'libraries.filterCategories.unplayed' => 'Non lus', 'libraries.filterCategories.favorites' => 'Favoris', 'libraries.sortLabels.title' => 'Titre', 'libraries.sortLabels.dateAdded' => 'Date d\'ajout', @@ -2927,50 +2935,50 @@ extension on TranslationsFr { 'libraries.sortLabels.latestEpisodeAirDate' => 'Dernière date de diffusion', 'libraries.sortLabels.lastEpisodeDateAdded' => 'Date d\'ajout du dernier épisode', 'about.title' => 'À propos', - 'about.openSourceLicenses' => 'Licences Open Source', + 'about.openSourceLicenses' => 'Licences libres', 'about.versionLabel' => ({required Object version}) => 'Version ${version}', 'about.appDescription' => 'Un magnifique client Plex et Jellyfin pour Flutter', 'about.viewLicensesDescription' => 'Afficher les licences des bibliothèques tierces', 'serverSelection.noServersFoundForAccount' => ({required Object username, required Object email}) => 'Aucun serveur trouvé pour ${username} (${email})', - 'serverSelection.failedToLoadServers' => ({required Object error}) => 'Échec du chargement des serveurs: ${error}', + 'serverSelection.failedToLoadServers' => ({required Object error}) => 'Échec du chargement des serveurs : ${error}', 'hubDetail.title' => 'Titre', 'hubDetail.releaseYear' => 'Année de sortie', 'hubDetail.dateAdded' => 'Date d\'ajout', 'hubDetail.rating' => 'Évaluation', 'hubDetail.noItemsFound' => 'Aucun élément trouvé', - 'logs.clearLogs' => 'Effacer les logs', - 'logs.copyLogs' => 'Copier les logs', - 'logs.uploadLogs' => 'Envoyer les logs', - 'licenses.relatedPackages' => 'Package associés', + 'logs.clearLogs' => 'Effacer les journaux', + 'logs.copyLogs' => 'Copier les journaux', + 'logs.uploadLogs' => 'Envoyer les journaux', + 'licenses.relatedPackages' => 'Paquets associés', 'licenses.license' => 'Licence', 'licenses.licenseNumber' => ({required Object number}) => 'Licence ${number}', 'licenses.licensesCount' => ({required Object count}) => '${count} licences', - 'navigation.libraries' => 'Medias', - 'navigation.downloads' => 'Téléch.', - 'navigation.liveTv' => 'TV direct', + 'navigation.libraries' => 'Bibliothèques', + 'navigation.downloads' => 'Téléchargements', + 'navigation.liveTv' => 'TV en direct', 'navigation.explore' => 'Explorer', 'explore.title' => 'Explorer', 'explore.selectSource' => 'Sélectionner la source', 'explore.rows.watchlist' => 'Liste de suivi', 'explore.rows.recommendedMovies' => 'Films recommandés', - 'explore.rows.recommendedShows' => 'Show TV recommandés', + 'explore.rows.recommendedShows' => 'Séries recommandées', 'explore.rows.trendingMovies' => 'Films tendance', - 'explore.rows.trendingShows' => 'Show TV tendance', + 'explore.rows.trendingShows' => 'Séries tendance', 'explore.rows.popularMovies' => 'Films populaires', - 'explore.rows.popularShows' => 'Show TV populaires', - 'explore.rows.trendingAnime' => 'Anime tendance', - 'explore.rows.suggestedAnime' => 'Anime suggérés', - 'explore.rows.airingAnime' => 'Meilleurs anime en diffusion', - 'explore.rows.popularAnime' => 'Anime les plus populaires', + 'explore.rows.popularShows' => 'Séries populaires', + 'explore.rows.trendingAnime' => 'Animes tendance', + 'explore.rows.suggestedAnime' => 'Animes suggérés', + 'explore.rows.airingAnime' => 'Meilleurs animes en diffusion', + 'explore.rows.popularAnime' => 'Animes les plus populaires', 'explore.rows.trending' => 'Tendances', 'explore.rows.upcomingMovies' => 'Films à venir', - 'explore.rows.upcomingShows' => 'Show TV à venir', + 'explore.rows.upcomingShows' => 'Séries à venir', 'explore.status.airing' => 'En cours', - 'explore.status.ended' => 'Terminée', - 'explore.status.canceled' => 'Annulée', + 'explore.status.ended' => 'Terminé', + 'explore.status.canceled' => 'Annulé', 'explore.status.upcoming' => 'À venir', 'explore.episodeCount' => ({required num n}) => (_root.$meta.cardinalResolver ?? PluralResolvers.cardinal('fr'))(n, one: '${n} épisode', other: '${n} épisodes', ), - 'explore.cast' => 'Cast', + 'explore.cast' => 'Distribution', 'explore.characters' => 'Personnages', 'explore.addToWatchlist' => 'Ajouter à la liste de suivi', 'explore.removeFromWatchlist' => 'Retirer de la liste de suivi', @@ -2979,7 +2987,7 @@ extension on TranslationsFr { 'explore.inTheseLibraries' => 'Dans ces bibliothèques', 'explore.checkingLibrary' => 'Vérification de votre bibliothèque...', 'explore.emptyTitle' => 'Rien ici pour l\'instant', - 'explore.emptyMessage' => ({required Object source}) => 'Les rangées de ${source} apparaîtront ici une fois qu\'elles auront du contenu.', + 'explore.emptyMessage' => ({required Object source}) => 'Les lignes de ${source} apparaîtront ici dès qu’elles contiendront des éléments.', 'explore.searchHint' => ({required Object source}) => 'Rechercher dans ${source}', 'explore.searchEmpty' => ({required Object query}) => 'Aucun résultat pour "${query}"', 'explore.searchPrompt' => ({required Object source}) => 'Recherchez des films et des séries sur ${source}.', @@ -3007,13 +3015,13 @@ extension on TranslationsFr { 'liveTv.morning' => 'Matin', 'liveTv.daytime' => 'Journée', 'liveTv.evening' => 'Soirée', - 'liveTv.lateNight' => 'Nuit tardive', + 'liveTv.lateNight' => 'Fin de soirée', 'liveTv.whatsOn' => 'En ce moment', 'liveTv.watchChannel' => 'Regarder la chaîne', 'liveTv.favorites' => 'Favoris', 'liveTv.reorderFavorites' => 'Réorganiser les favoris', 'liveTv.favoritesLoadFailed' => 'Impossible de charger les favoris. Vérifiez votre connexion et réessayez.', - 'liveTv.favoritesUpdateFailed' => 'Could not update favorites. Check your connection and try again.', + 'liveTv.favoritesUpdateFailed' => 'Impossible de mettre à jour les favoris. Vérifiez votre connexion et réessayez.', 'liveTv.joinSession' => 'Rejoindre la session en cours', 'liveTv.watchFromStart' => ({required Object minutes}) => 'Regarder depuis le début (il y a ${minutes} min)', 'liveTv.watchLive' => 'Regarder en direct', @@ -3058,7 +3066,7 @@ extension on TranslationsFr { 'collections.deleteConfirm' => ({required Object title}) => 'Supprimer "${title}" ? Action irréversible.', 'collections.deleted' => 'Collection supprimée', 'collections.deleteFailed' => 'Échec de la suppression de la collection', - 'collections.deleteFailedWithError' => ({required Object error}) => 'Échec de la suppression de la collection: ${error}', + 'collections.deleteFailedWithError' => ({required Object error}) => 'Échec de la suppression de la collection : ${error}', 'collections.selectCollection' => 'Sélectionner une collection', 'collections.collectionName' => 'Nom de la collection', 'collections.enterCollectionName' => 'Entrez le nom de la collection', @@ -3069,34 +3077,34 @@ extension on TranslationsFr { 'collections.removeFromCollectionConfirm' => ({required Object title}) => 'Retirer "${title}" de cette collection ?', 'collections.removedFromCollection' => 'Retiré de la collection', 'collections.removeFromCollectionFailed' => 'Impossible de supprimer de la collection', - 'collections.removeFromCollectionError' => ({required Object error}) => 'Erreur lors de la suppression de la collection: ${error}', + 'collections.removeFromCollectionError' => ({required Object error}) => 'Erreur lors du retrait de la collection : ${error}', 'collections.searchCollections' => 'Rechercher des collections...', 'playlists.title' => 'Playlists', 'playlists.playlist' => 'Playlist', 'playlists.noPlaylists' => 'Aucune playlist trouvée', 'playlists.create' => 'Créer une playlist', 'playlists.playlistName' => 'Nom de playlist', - 'playlists.enterPlaylistName' => 'Entrer le nom de playlist', + 'playlists.enterPlaylistName' => 'Saisissez le nom de la playlist', 'playlists.delete' => 'Supprimer la playlist', 'playlists.removeItem' => 'Retirer de la playlist', - 'playlists.smartPlaylist' => 'Smart playlist', + 'playlists.smartPlaylist' => 'Playlist intelligente', 'playlists.itemCount' => ({required Object count}) => '${count} éléments', 'playlists.oneItem' => '1 élément', 'playlists.emptyPlaylist' => 'Cette playlist est vide', 'playlists.deleteConfirm' => 'Supprimer la playlist ?', - 'playlists.deleteMessage' => ({required Object name}) => 'Êtes-vous sûr de vouloir supprimer "${name}"?', + 'playlists.deleteMessage' => ({required Object name}) => 'Voulez-vous vraiment supprimer « ${name} » ?', 'playlists.created' => 'Playlist créée', 'playlists.deleted' => 'Playlist supprimée', 'playlists.itemAdded' => 'Ajouté à la playlist', 'playlists.itemRemoved' => 'Retiré de la playlist', 'playlists.selectPlaylist' => 'Sélectionner une playlist', 'playlists.searchPlaylists' => 'Rechercher des playlists...', - 'playlists.errorCreating' => 'Échec de la création de playlist', - 'playlists.errorDeleting' => 'Échec de suppression de playlist', - 'playlists.errorLoading' => 'Échec de chargement de playlists', - 'playlists.errorAdding' => 'Échec d\'ajout dans la playlist', - 'playlists.errorReordering' => 'Échec de réordonnacement d\'élément de playlist', - 'playlists.errorRemoving' => 'Échec de suppression depuis la playlist', + 'playlists.errorCreating' => 'Échec de la création de la playlist', + 'playlists.errorDeleting' => 'Échec de la suppression de la playlist', + 'playlists.errorLoading' => 'Échec du chargement des playlists', + 'playlists.errorAdding' => 'Échec de l’ajout à la playlist', + 'playlists.errorReordering' => 'Échec de la réorganisation de l’élément de la playlist', + 'playlists.errorRemoving' => 'Échec du retrait de l’élément de la playlist', 'music.goToAlbum' => 'Aller à l\'album', 'music.goToArtist' => 'Aller à l\'artiste', 'music.instantMix' => 'Mix instantané', @@ -3120,17 +3128,17 @@ extension on TranslationsFr { 'music.repeatAll' => 'Tout répéter', 'music.repeatOne' => 'Répéter le titre', 'watchTogether.title' => 'Regarder ensemble', - 'watchTogether.description' => 'Regardez du contenu en synchronisation avec vos amis et votre famille', + 'watchTogether.description' => 'Regarder du contenu en synchronisation avec vos proches', 'watchTogether.createSession' => 'Créer une session', 'watchTogether.creating' => 'Création...', 'watchTogether.joinSession' => 'Rejoindre la session', - 'watchTogether.joining' => 'Rejoindre...', + 'watchTogether.joining' => 'Connexion…', 'watchTogether.controlMode' => 'Mode de contrôle', 'watchTogether.controlModeQuestion' => 'Qui peut contrôler la lecture ?', 'watchTogether.hostOnly' => 'Hôte uniquement', 'watchTogether.anyone' => 'N\'importe qui', - 'watchTogether.hostingSession' => 'Session d\'hébergement', - 'watchTogether.inSession' => 'En session', + 'watchTogether.hostingSession' => 'Session hébergée', + 'watchTogether.inSession' => 'Session en cours', 'watchTogether.sessionCode' => 'Code de session', 'watchTogether.openSessionControls' => 'Ouvrir les commandes de la session Regarder ensemble', 'watchTogether.copySessionCode' => 'Copier le code de session', @@ -3140,10 +3148,10 @@ extension on TranslationsFr { 'watchTogether.anyoneControls' => 'Tout le monde contrôle', 'watchTogether.participants' => 'Participants', 'watchTogether.host' => 'Hôte', - 'watchTogether.hostBadge' => 'HOST', + 'watchTogether.hostBadge' => 'HÔTE', 'watchTogether.youAreHost' => 'Vous êtes l\'hôte', 'watchTogether.watchingWithOthers' => 'Regarder avec d\'autres personnes', - 'watchTogether.endSession' => 'Fin de session', + 'watchTogether.endSession' => 'Terminer la session', 'watchTogether.leaveSession' => 'Quitter la session', 'watchTogether.endSessionQuestion' => 'Terminer la session ?', 'watchTogether.leaveSessionQuestion' => 'Quitter la session ?', @@ -3152,8 +3160,8 @@ extension on TranslationsFr { 'watchTogether.endSessionConfirmOverlay' => 'Cela mettra fin à la session de visionnage pour tous les participants.', 'watchTogether.leaveSessionConfirmOverlay' => 'Vous serez déconnecté de la session de visionnage.', 'watchTogether.end' => 'Terminer', - 'watchTogether.leave' => 'Fin', - 'watchTogether.syncing' => 'Synchronisation...', + 'watchTogether.leave' => 'Quitter', + 'watchTogether.syncing' => 'Synchronisation…', 'watchTogether.joinWatchSession' => 'Rejoindre la session de visionnage', 'watchTogether.enterCodeHint' => 'Entrez le code à 5 caractères', 'watchTogether.pasteFromClipboard' => 'Coller depuis le presse-papiers', @@ -3163,20 +3171,20 @@ extension on TranslationsFr { 'watchTogether.failedToCreate' => 'Échec de la création de la session', 'watchTogether.failedToJoin' => 'Échec de la connexion à la session', 'watchTogether.sessionCodeCopied' => 'Code de session copié dans le presse-papiers', - 'watchTogether.relayUnreachable' => 'Serveur relay inaccessible. Un blocage ISP peut empêcher Watch Together.', + 'watchTogether.relayUnreachable' => 'Serveur relais inaccessible. Un blocage par le fournisseur d’accès peut empêcher le fonctionnement de Regarder ensemble.', 'watchTogether.reconnectingToHost' => 'Reconnexion à l\'hôte...', 'watchTogether.currentPlayback' => 'Lecture en cours', 'watchTogether.joinCurrentPlayback' => 'Rejoindre la lecture en cours', - 'watchTogether.joinCurrentPlaybackDescription' => 'Revenez à ce que l\'hôte regarde actuellement', + 'watchTogether.joinCurrentPlaybackDescription' => 'Reprendre le contenu que l’hôte regarde actuellement', 'watchTogether.failedToOpenCurrentPlayback' => 'Impossible d\'ouvrir la lecture en cours', + _ => null, + } ?? switch (path) { 'watchTogether.participantJoined' => ({required Object name}) => '${name} a rejoint', 'watchTogether.participantLeft' => ({required Object name}) => '${name} est parti', 'watchTogether.participantPaused' => ({required Object name}) => '${name} a mis en pause', 'watchTogether.participantResumed' => ({required Object name}) => '${name} a repris', - _ => null, - } ?? switch (path) { - 'watchTogether.participantSeeked' => ({required Object name}) => '${name} a avancé', - 'watchTogether.participantBuffering' => ({required Object name}) => '${name} met en mémoire tampon', + 'watchTogether.participantSeeked' => ({required Object name}) => '${name} a changé la position de lecture', + 'watchTogether.participantBuffering' => ({required Object name}) => 'La lecture de ${name} est en cours de mise en mémoire tampon', 'watchTogether.participantNeedsUpdate' => ({required Object name}) => '${name} utilise une ancienne version de l’app — synchronisation indisponible', 'watchTogether.resumingWithout' => ({required Object name}) => 'Reprise sans ${name}', 'watchTogether.waitingForParticipants' => 'En attente du chargement des autres...', @@ -3188,7 +3196,7 @@ extension on TranslationsFr { 'watchTogether.guestSwitchFailed' => 'Impossible de changer — contenu introuvable sur ce serveur', 'downloads.title' => 'Téléchargements', 'downloads.manage' => 'Gérer', - 'downloads.tvShows' => 'Show TV', + 'downloads.tvShows' => 'Séries TV', 'downloads.movies' => 'Films', 'downloads.music' => 'Musique', 'downloads.tracksQueued' => ({required Object count}) => '${count} titres en file d\'attente de téléchargement', @@ -3199,10 +3207,10 @@ extension on TranslationsFr { 'downloads.retryDownload' => 'Réessayer le téléchargement', 'downloads.downloadQueued' => 'Téléchargement en attente', 'downloads.downloadResumed' => 'Téléchargement repris', - 'downloads.serverErrorBitrate' => 'Erreur serveur : le fichier peut dépasser la limite de bitrate distant', + 'downloads.serverErrorBitrate' => 'Erreur du serveur : le fichier peut dépasser la limite de débit distant', 'downloads.episodesQueued' => ({required Object count}) => '${count} épisodes en attente de téléchargement', - 'downloads.downloadDeleted' => 'Télécharger supprimé', - 'downloads.deleteConfirm' => ({required Object title}) => 'Supprimer "${title}" de cet appareil ?', + 'downloads.downloadDeleted' => 'Téléchargement supprimé', + 'downloads.deleteConfirm' => ({required Object title}) => 'Supprimer « ${title} » de cet appareil ?', 'downloads.cancelledDownloadTitle' => 'Téléchargement annulé', 'downloads.cancelledDownloadMessage' => 'Ce téléchargement a été annulé. Que voulez-vous faire ?', 'downloads.allEpisodesAlreadyDownloaded' => 'Tous les épisodes sont déjà téléchargés', @@ -3271,12 +3279,12 @@ extension on TranslationsFr { 'companionRemote.title' => 'Télécommande compagnon', 'companionRemote.connectedTo' => ({required Object name}) => 'Connecté à ${name}', 'companionRemote.unknownDevice' => 'Appareil inconnu', - 'companionRemote.session.startingServer' => 'Démarrage du serveur distant...', - 'companionRemote.session.hostAddress' => 'Adresse de l\'hôte', + 'companionRemote.session.startingServer' => 'Démarrage du serveur de télécommande…', + 'companionRemote.session.hostAddress' => 'Adresse de l’hôte', 'companionRemote.session.connected' => 'Connecté', - 'companionRemote.session.serverRunning' => 'Serveur distant actif', - 'companionRemote.session.serverStopped' => 'Serveur distant arrêté', - 'companionRemote.session.serverRunningDescription' => 'Les appareils mobiles de votre réseau peuvent se connecter à cette app', + 'companionRemote.session.serverRunning' => 'Serveur de télécommande actif', + 'companionRemote.session.serverStopped' => 'Serveur de télécommande arrêté', + 'companionRemote.session.serverRunningDescription' => 'Les appareils mobiles de votre réseau peuvent se connecter à cette application', 'companionRemote.session.serverStoppedDescription' => 'Démarrez le serveur pour permettre aux appareils mobiles de se connecter', 'companionRemote.session.usePhoneToControl' => 'Utilisez votre appareil mobile pour contrôler cette application', 'companionRemote.session.startServer' => 'Démarrer le serveur', @@ -3287,13 +3295,13 @@ extension on TranslationsFr { 'companionRemote.pairing.connecting' => 'Connexion...', 'companionRemote.pairing.searchingForDevices' => 'Recherche d\'appareils...', 'companionRemote.pairing.noDevicesFound' => 'Aucun appareil trouvé sur votre réseau', - 'companionRemote.pairing.noDevicesHint' => 'Ouvrez Plezy sur ordinateur et utilisez le même WiFi', + 'companionRemote.pairing.noDevicesHint' => 'Ouvrez Plezy sur votre ordinateur et utilisez le même réseau Wi-Fi', 'companionRemote.pairing.availableDevices' => 'Appareils disponibles', 'companionRemote.pairing.manualConnection' => 'Connexion manuelle', 'companionRemote.pairing.cryptoInitFailed' => 'Impossible de démarrer la connexion sécurisée. Connectez-vous d\'abord à Plex.', - 'companionRemote.pairing.validationHostRequired' => 'Veuillez entrer l\'adresse de l\'hôte', - 'companionRemote.pairing.validationHostFormat' => 'Le format doit être IP:port (ex. 192.168.1.100:48632)', - 'companionRemote.pairing.connectionTimedOut' => 'Connexion expirée. Utilisez le même réseau sur les deux appareils.', + 'companionRemote.pairing.validationHostRequired' => 'Veuillez saisir l’adresse de l’hôte', + 'companionRemote.pairing.validationHostFormat' => 'Le format doit être IP:port (p. ex. 192.168.1.100:48632)', + 'companionRemote.pairing.connectionTimedOut' => 'Délai de connexion dépassé. Utilisez le même réseau sur les deux appareils.', 'companionRemote.pairing.sessionNotFound' => 'Appareil introuvable. Assurez-vous que Plezy fonctionne sur l\'hôte.', 'companionRemote.pairing.authFailed' => 'Échec de l\'authentification. Les deux appareils doivent utiliser le même compte Plex.', 'companionRemote.pairing.failedToConnect' => ({required Object error}) => 'Échec de la connexion : ${error}', @@ -3323,10 +3331,10 @@ extension on TranslationsFr { 'companionRemote.remote.fullscreen' => 'Plein écran', 'companionRemote.remote.subtitles' => 'Sous-titres', 'companionRemote.remote.audio' => 'Audio', - 'companionRemote.remote.searchHint' => 'Rechercher sur le bureau...', + 'companionRemote.remote.searchHint' => 'Rechercher sur l’ordinateur…', 'companionRemote.errors.noNetworkInterface' => 'Aucune interface réseau trouvée', 'companionRemote.errors.authenticationFailed' => 'Échec de l’authentification', - 'companionRemote.errors.serverStartFailed' => ({required Object error}) => 'Impossible de démarrer le serveur distant : ${error}', + 'companionRemote.errors.serverStartFailed' => ({required Object error}) => 'Impossible de démarrer le serveur de télécommande : ${error}', 'companionRemote.errors.commandFailed' => ({required Object error}) => 'Impossible d’envoyer la commande à distance : ${error}', 'companionRemote.errors.joinTimedOut' => 'Délai dépassé lors de la connexion à la session', 'companionRemote.errors.failedToConnectAnyAddress' => 'Impossible de se connecter à une adresse', @@ -3341,23 +3349,23 @@ extension on TranslationsFr { 'videoSettings.subtitleSync' => 'Synchronisation des sous-titres', 'videoSettings.hdr' => 'HDR', 'videoSettings.audioOutput' => 'Sortie audio', - 'videoSettings.performanceOverlay' => 'Superposition de performance', - 'videoSettings.audioPassthrough' => 'Audio Pass-Through', + 'videoSettings.performanceOverlay' => 'Données de performance', + 'videoSettings.audioPassthrough' => 'Transmission audio directe', 'videoSettings.audioNormalization' => 'Normaliser le volume', - 'videoSettings.audioDownmix' => 'Downmix en stéréo', + 'videoSettings.audioDownmix' => 'Conversion en stéréo', 'performanceOverlay.color' => 'Couleur', 'performanceOverlay.performance' => 'Performances', 'performanceOverlay.buffer' => 'Tampon', - 'performanceOverlay.app' => 'App', + 'performanceOverlay.app' => 'Application', 'performanceOverlay.decoder' => 'Décodeur', 'performanceOverlay.rawDecoder' => 'Décodeur brut', - 'performanceOverlay.tunneling' => 'Tunneling', + 'performanceOverlay.tunneling' => 'Tunnel', 'performanceOverlay.aspect' => 'Format', 'performanceOverlay.rotation' => 'Rotation', 'performanceOverlay.dvSource' => 'Source DV', 'performanceOverlay.dvPath' => 'Chemin DV', 'performanceOverlay.p7Conversion' => 'Conv. P7', - 'performanceOverlay.sampleRate' => 'Fréquence', + 'performanceOverlay.sampleRate' => 'Fréquence d’échantillonnage', 'performanceOverlay.pixelFormat' => 'Fmt pixel', 'performanceOverlay.hwFormat' => 'Fmt HW', 'performanceOverlay.matrix' => 'Matrice', @@ -3382,7 +3390,7 @@ extension on TranslationsFr { 'performanceOverlay.uiFps' => 'FPS UI', 'externalPlayer.title' => 'Lecteur externe', 'externalPlayer.useExternalPlayer' => 'Utiliser un lecteur externe', - 'externalPlayer.useExternalPlayerDescription' => 'Ouvrir les vidéos dans une autre app', + 'externalPlayer.useExternalPlayerDescription' => 'Ouvrir les vidéos dans une autre application', 'externalPlayer.selectPlayer' => 'Sélectionner le lecteur', 'externalPlayer.customPlayers' => 'Lecteurs personnalisés', 'externalPlayer.systemDefault' => 'Par défaut du système', @@ -3399,7 +3407,7 @@ extension on TranslationsFr { 'metadataEdit.editMetadata' => 'Modifier...', 'metadataEdit.screenTitle' => 'Modifier les métadonnées', 'metadataEdit.basicInfo' => 'Informations de base', - 'metadataEdit.artwork' => 'Artwork', + 'metadataEdit.artwork' => 'Illustrations', 'metadataEdit.advancedSettings' => 'Paramètres avancés', 'metadataEdit.title' => 'Titre', 'metadataEdit.sortTitle' => 'Titre de tri', @@ -3423,9 +3431,9 @@ extension on TranslationsFr { 'metadataEdit.imageUrl' => 'URL de l\'image', 'metadataEdit.metadataUpdated' => 'Métadonnées mises à jour', 'metadataEdit.metadataUpdateFailed' => 'Échec de la mise à jour des métadonnées', - 'metadataEdit.artworkUpdated' => 'Artwork mis à jour', - 'metadataEdit.artworkUpdateFailed' => 'Échec de la mise à jour de l\'artwork', - 'metadataEdit.noArtworkAvailable' => 'Aucun artwork disponible', + 'metadataEdit.artworkUpdated' => 'Illustrations mises à jour', + 'metadataEdit.artworkUpdateFailed' => 'Échec de la mise à jour des illustrations', + 'metadataEdit.noArtworkAvailable' => 'Aucune illustration disponible', 'metadataEdit.artworkOption' => ({required Object index}) => 'Option d\'illustration ${index}', 'metadataEdit.selectedArtworkOption' => ({required Object index}) => 'Option d\'illustration ${index}, sélectionnée', 'metadataEdit.notSet' => 'Non défini', @@ -3459,10 +3467,10 @@ extension on TranslationsFr { 'metadataEdit.preferredSubtitleLanguage' => 'Langue de sous-titres préférée', 'metadataEdit.subtitleMode' => 'Sélection automatique des sous-titres', 'metadataEdit.manuallySelected' => 'Sélectionné manuellement', - 'metadataEdit.shownWithForeignAudio' => 'Affichés avec audio étranger', + 'metadataEdit.shownWithForeignAudio' => 'Avec l’audio en langue étrangère', 'metadataEdit.alwaysEnabled' => 'Toujours activé', - 'metadataEdit.tags' => 'Tags', - 'metadataEdit.addTag' => 'Ajouter un tag', + 'metadataEdit.tags' => 'Étiquettes', + 'metadataEdit.addTag' => 'Ajouter une étiquette', 'metadataEdit.genre' => 'Genre', 'metadataEdit.director' => 'Réalisateur', 'metadataEdit.writer' => 'Scénariste', @@ -3491,13 +3499,13 @@ extension on TranslationsFr { 'trakt.connected' => 'Connecté', 'trakt.connectedAs' => ({required Object username}) => 'Connecté en tant que @${username}', 'trakt.disconnectConfirm' => 'Déconnecter le compte Trakt ?', - 'trakt.disconnectConfirmBody' => 'Plezy cessera d\'envoyer des événements à Trakt. Vous pouvez reconnecter à tout moment.', + 'trakt.disconnectConfirmBody' => 'Plezy cessera d’envoyer des événements à Trakt. Vous pourrez vous reconnecter à tout moment.', 'trakt.scrobble' => 'Scrobbling en temps réel', 'trakt.scrobbleDescription' => 'Envoyer les événements de lecture, pause et arrêt à Trakt pendant la lecture.', 'trakt.watchedSync' => 'Synchroniser le statut « vu »', - 'trakt.watchedSyncDescription' => 'Lorsque vous marquez un élément comme vu dans Plezy, il l\'est aussi sur Trakt.', + 'trakt.watchedSyncDescription' => 'Lorsque vous marquez des éléments comme vus dans Plezy, ils sont également marqués comme vus sur Trakt.', 'seerr.title' => 'Seerr', - 'seerr.connectTitle' => 'Connecter Seerr', + 'seerr.connectTitle' => 'Se connecter à Seerr', 'seerr.serverUrl' => 'URL du serveur', 'seerr.serverUrlHelper' => 'L\'adresse de votre instance Seerr', 'seerr.checkServer' => 'Continuer', @@ -3508,7 +3516,7 @@ extension on TranslationsFr { 'seerr.noSignInMethods' => 'Cette instance Seerr ne propose aucune méthode de connexion prise en charge par Plezy.', 'seerr.instance' => 'Instance', 'seerr.disconnectConfirm' => 'Déconnecter Seerr ?', - 'seerr.disconnectConfirmBody' => 'Plezy oubliera cette instance Seerr. Reconnectez à tout moment.', + 'seerr.disconnectConfirmBody' => 'Plezy oubliera cette instance Seerr. Vous pourrez vous reconnecter à tout moment.', 'seerr.request' => 'Demander', 'seerr.request4k' => 'Demander en 4K', 'seerr.seasons' => 'Saisons', @@ -3533,7 +3541,7 @@ extension on TranslationsFr { 'services.scrobble' => 'Suivre la progression automatiquement', 'services.scrobbleDescription' => 'Mettre à jour votre liste lorsque vous terminez un épisode ou un film.', 'services.disconnectConfirm' => ({required Object service}) => 'Déconnecter ${service} ?', - 'services.disconnectConfirmBody' => ({required Object service}) => 'Plezy cessera de mettre à jour ${service}. Reconnectez à tout moment.', + 'services.disconnectConfirmBody' => ({required Object service}) => 'Plezy cessera de mettre à jour ${service}. Vous pourrez vous reconnecter à tout moment.', 'services.connectFailed' => ({required Object service}) => 'Échec de la connexion à ${service}. Réessayez.', 'services.names.mal' => 'MyAnimeList', 'services.names.anilist' => 'AniList', @@ -3556,8 +3564,8 @@ extension on TranslationsFr { 'services.libraryFilter.subtitleBlocked' => ({required Object count}) => '${count} bloquées', 'services.libraryFilter.subtitleAllowed' => ({required Object count}) => '${count} autorisées', 'services.libraryFilter.mode' => 'Mode de filtrage', - 'services.libraryFilter.modeBlacklist' => 'Liste noire', - 'services.libraryFilter.modeWhitelist' => 'Liste blanche', + 'services.libraryFilter.modeBlacklist' => 'Liste d’exclusion', + 'services.libraryFilter.modeWhitelist' => 'Liste d’inclusion', 'services.libraryFilter.modeHintBlacklist' => 'Synchroniser toutes les bibliothèques sauf celles cochées ci-dessous.', 'services.libraryFilter.modeHintWhitelist' => 'Synchroniser uniquement les bibliothèques cochées ci-dessous.', 'services.libraryFilter.libraries' => 'Bibliothèques', @@ -3587,7 +3595,7 @@ extension on TranslationsFr { 'addServer.signInWithPlexCardSubtitleScoped' => 'Autorisez un compte Plex. Les utilisateurs Home deviennent des profils.', 'addServer.connectToJellyfinCard' => 'Se connecter à Jellyfin', 'addServer.connectToJellyfinCardSubtitle' => 'Saisissez l\'URL du serveur, le nom d\'utilisateur et le mot de passe.', - 'addServer.connectToJellyfinCardSubtitleScoped' => ({required Object name}) => 'Connectez-vous à un serveur Jellyfin. Lié à ${name}.', + 'addServer.connectToJellyfinCardSubtitleScoped' => ({required Object name}) => 'Connectez-vous à un serveur Jellyfin. Cette connexion sera liée à ${name}.', 'addServer.borrowFromAnotherProfile' => 'Emprunter à un autre profil', 'addServer.borrowFromAnotherProfileSubtitle' => 'Réutiliser la connexion d\'un autre profil. Les profils protégés par PIN exigent un PIN.', _ => null, diff --git a/lib/i18n/strings_hu.g.dart b/lib/i18n/strings_hu.g.dart new file mode 100644 index 00000000..8fa59d36 --- /dev/null +++ b/lib/i18n/strings_hu.g.dart @@ -0,0 +1,3604 @@ +/// +/// Generated file. Do not edit. +/// +// coverage:ignore-file +// ignore_for_file: type=lint, unused_import +// dart format off + +import 'package:flutter/widgets.dart'; +import 'package:intl/intl.dart'; +import 'package:slang/generated.dart'; +import 'strings.g.dart'; + +// Path: +class TranslationsHu extends Translations with BaseTranslations { + /// You can call this constructor and build your own translation instance of this locale. + /// Constructing via the enum [AppLocale.build] is preferred. + TranslationsHu({Map? overrides, PluralResolver? cardinalResolver, PluralResolver? ordinalResolver, TranslationMetadata? meta}) + : assert(overrides == null, 'Set "translation_overrides: true" in order to enable this feature.'), + $meta = meta ?? TranslationMetadata( + locale: AppLocale.hu, + overrides: overrides ?? {}, + cardinalResolver: cardinalResolver, + ordinalResolver: ordinalResolver, + ), + super(cardinalResolver: cardinalResolver, ordinalResolver: ordinalResolver) { + super.$meta.setFlatMapFunction($meta.getTranslation); // copy base translations to super.$meta + $meta.setFlatMapFunction(_flatMapFunction); + } + + /// Metadata for the translations of . + @override final TranslationMetadata $meta; + + /// Access flat map + @override dynamic operator[](String key) => $meta.getTranslation(key) ?? super.$meta.getTranslation(key); + + late final TranslationsHu _root = this; // ignore: unused_field + + @override + TranslationsHu $copyWith({TranslationMetadata? meta}) => TranslationsHu(meta: meta ?? this.$meta); + + // Translations + @override late final _Translations$app$hu app = _Translations$app$hu._(_root); + @override late final _Translations$auth$hu auth = _Translations$auth$hu._(_root); + @override late final _Translations$common$hu common = _Translations$common$hu._(_root); + @override late final _Translations$screens$hu screens = _Translations$screens$hu._(_root); + @override late final _Translations$update$hu update = _Translations$update$hu._(_root); + @override late final _Translations$settings$hu settings = _Translations$settings$hu._(_root); + @override late final _Translations$search$hu search = _Translations$search$hu._(_root); + @override late final _Translations$hotkeys$hu hotkeys = _Translations$hotkeys$hu._(_root); + @override late final _Translations$fileInfo$hu fileInfo = _Translations$fileInfo$hu._(_root); + @override late final _Translations$mediaMenu$hu mediaMenu = _Translations$mediaMenu$hu._(_root); + @override late final _Translations$rateSheet$hu rateSheet = _Translations$rateSheet$hu._(_root); + @override late final _Translations$accessibility$hu accessibility = _Translations$accessibility$hu._(_root); + @override late final _Translations$tooltips$hu tooltips = _Translations$tooltips$hu._(_root); + @override late final _Translations$audioTracks$hu audioTracks = _Translations$audioTracks$hu._(_root); + @override late final _Translations$videoControls$hu videoControls = _Translations$videoControls$hu._(_root); + @override late final _Translations$messages$hu messages = _Translations$messages$hu._(_root); + @override late final _Translations$subtitlingStyling$hu subtitlingStyling = _Translations$subtitlingStyling$hu._(_root); + @override late final _Translations$mpvConfig$hu mpvConfig = _Translations$mpvConfig$hu._(_root); + @override late final _Translations$dialog$hu dialog = _Translations$dialog$hu._(_root); + @override late final _Translations$profiles$hu profiles = _Translations$profiles$hu._(_root); + @override late final _Translations$connections$hu connections = _Translations$connections$hu._(_root); + @override late final _Translations$discover$hu discover = _Translations$discover$hu._(_root); + @override late final _Translations$errors$hu errors = _Translations$errors$hu._(_root); + @override late final _Translations$libraries$hu libraries = _Translations$libraries$hu._(_root); + @override late final _Translations$about$hu about = _Translations$about$hu._(_root); + @override late final _Translations$serverSelection$hu serverSelection = _Translations$serverSelection$hu._(_root); + @override late final _Translations$hubDetail$hu hubDetail = _Translations$hubDetail$hu._(_root); + @override late final _Translations$logs$hu logs = _Translations$logs$hu._(_root); + @override late final _Translations$licenses$hu licenses = _Translations$licenses$hu._(_root); + @override late final _Translations$navigation$hu navigation = _Translations$navigation$hu._(_root); + @override late final _Translations$explore$hu explore = _Translations$explore$hu._(_root); + @override late final _Translations$liveTv$hu liveTv = _Translations$liveTv$hu._(_root); + @override late final _Translations$collections$hu collections = _Translations$collections$hu._(_root); + @override late final _Translations$playlists$hu playlists = _Translations$playlists$hu._(_root); + @override late final _Translations$music$hu music = _Translations$music$hu._(_root); + @override late final _Translations$watchTogether$hu watchTogether = _Translations$watchTogether$hu._(_root); + @override late final _Translations$downloads$hu downloads = _Translations$downloads$hu._(_root); + @override late final _Translations$shaders$hu shaders = _Translations$shaders$hu._(_root); + @override late final _Translations$companionRemote$hu companionRemote = _Translations$companionRemote$hu._(_root); + @override late final _Translations$videoSettings$hu videoSettings = _Translations$videoSettings$hu._(_root); + @override late final _Translations$performanceOverlay$hu performanceOverlay = _Translations$performanceOverlay$hu._(_root); + @override late final _Translations$externalPlayer$hu externalPlayer = _Translations$externalPlayer$hu._(_root); + @override late final _Translations$metadataEdit$hu metadataEdit = _Translations$metadataEdit$hu._(_root); + @override late final _Translations$matchScreen$hu matchScreen = _Translations$matchScreen$hu._(_root); + @override late final _Translations$serverTasks$hu serverTasks = _Translations$serverTasks$hu._(_root); + @override late final _Translations$trakt$hu trakt = _Translations$trakt$hu._(_root); + @override late final _Translations$seerr$hu seerr = _Translations$seerr$hu._(_root); + @override late final _Translations$services$hu services = _Translations$services$hu._(_root); + @override late final _Translations$addServer$hu addServer = _Translations$addServer$hu._(_root); +} + +// Path: app +class _Translations$app$hu extends Translations$app$en { + _Translations$app$hu._(TranslationsHu root) : this._root = root, super.internal(root); + + final TranslationsHu _root; // ignore: unused_field + + // Translations + @override String get title => 'Plezy'; +} + +// Path: auth +class _Translations$auth$hu extends Translations$auth$en { + _Translations$auth$hu._(TranslationsHu root) : this._root = root, super.internal(root); + + final TranslationsHu _root; // ignore: unused_field + + // Translations + @override String get signInWithPlex => 'Bejelentkezés Plexszel'; + @override String get showQRCode => 'QR-kód megjelenítése'; + @override String get authenticate => 'Hitelesítés'; + @override String get authenticationTimeout => 'A hitelesítés időtúllépés miatt megszakadt. Próbáld újra.'; + @override String get scanQRToSignIn => 'Olvasd be ezt a QR-kódot a bejelentkezéshez'; + @override String get waitingForAuth => 'Várakozás a hitelesítésre...\nJelentkezz be a böngésződben.'; + @override String get useBrowser => 'Böngésző használata'; + @override String get or => 'vagy'; + @override String get connectToJellyfin => 'Csatlakozás Jellyfinhez'; + @override String get useQuickConnect => 'Quick Connect használata'; + @override String get quickConnectInstructions => 'Nyisd meg a Quick Connect-et a Jellyfinben, és add meg ezt a kódot.'; + @override String get quickConnectWaiting => 'Várakozás a jóváhagyásra…'; + @override String get quickConnectCancel => 'Mégse'; + @override String get quickConnectExpired => 'A Quick Connect kód lejárt. Próbáld újra.'; + @override String get localDataRecoveryRequired => 'A Plezy nem tudta biztonságosan helyreállítani a helyi bejelentkezés és a függőben lévő lejátszás adatait. Jelentkezz be újra.'; +} + +// Path: common +class _Translations$common$hu extends Translations$common$en { + _Translations$common$hu._(TranslationsHu root) : this._root = root, super.internal(root); + + final TranslationsHu _root; // ignore: unused_field + + // Translations + @override String get cancel => 'Mégse'; + @override String get save => 'Mentés'; + @override String get close => 'Bezárás'; + @override String get clear => 'Törlés'; + @override String get reset => 'Visszaállítás'; + @override String get later => 'Később'; + @override String get submit => 'Beküldés'; + @override String get confirm => 'Megerősítés'; + @override String get retry => 'Újra'; + @override String get logout => 'Kijelentkezés'; + @override String get unknown => 'Ismeretlen'; + @override String get refresh => 'Frissítés'; + @override String get yes => 'Igen'; + @override String get no => 'Nem'; + @override String get delete => 'Törlés'; + @override String get edit => 'Szerkesztés'; + @override String get shuffle => 'Véletlenszerű lejátszás'; + @override String get addTo => 'Hozzáadás...'; + @override String get createNew => 'Új létrehozása'; + @override String get connect => 'Csatlakozás'; + @override String get disconnect => 'Kapcsolat bontása'; + @override String get play => 'Lejátszás'; + @override String get pause => 'Szünet'; + @override String get resume => 'Folytatás'; + @override String get error => 'Hiba'; + @override String get search => 'Keresés'; + @override String get home => 'Kezdőlap'; + @override String get back => 'Vissza'; + @override String get settings => 'Beállítások'; + @override String get mute => 'Némítás'; + @override String get ok => 'OK'; + @override String get off => 'Ki'; + @override String seasonNumber({required Object number}) => '${number}. évad'; + @override String episodeNumberTitle({required Object number, required Object title}) => '${number}. epizód - ${title}'; + @override String chapterNumber({required Object number}) => '${number}. fejezet'; + @override String get reconnect => 'Újracsatlakozás'; + @override String get viewAll => 'Összes megtekintése'; + @override String get checkingNetwork => 'Hálózat ellenőrzése...'; + @override String get loadingServers => 'Szerverek betöltése...'; + @override String get connectingToServers => 'Csatlakozás a szerverekhez...'; + @override String get startingOfflineMode => 'Kapcsolat nélküli mód indítása...'; + @override String get loading => 'Betöltés...'; + @override String get fullscreen => 'Teljes képernyő'; + @override String get exitFullscreen => 'Kilépés a teljes képernyőből'; + @override String get pressBackAgainToExit => 'A kilépéshez nyomd meg újra a Vissza gombot'; +} + +// Path: screens +class _Translations$screens$hu extends Translations$screens$en { + _Translations$screens$hu._(TranslationsHu root) : this._root = root, super.internal(root); + + final TranslationsHu _root; // ignore: unused_field + + // Translations + @override String get licenses => 'Licencek'; + @override String get switchProfile => 'Profilváltás'; + @override String get subtitleStyling => 'Feliratok stílusa'; + @override String get mpvConfig => 'mpv.conf'; + @override String get logs => 'Naplók'; +} + +// Path: update +class _Translations$update$hu extends Translations$update$en { + _Translations$update$hu._(TranslationsHu root) : this._root = root, super.internal(root); + + final TranslationsHu _root; // ignore: unused_field + + // Translations + @override String get available => 'Frissítés érhető el'; + @override String versionAvailable({required Object version}) => 'A(z) ${version} verzió elérhető'; + @override String currentVersion({required Object version}) => 'Jelenlegi: ${version}'; + @override String get skipVersion => 'Verzió kihagyása'; + @override String get viewRelease => 'Kiadási megjegyzések'; + @override String get latestVersion => 'A legújabb verziót használod'; + @override String get checkFailed => 'Nem sikerült az újabb frissítések ellenőrzése'; +} + +// Path: settings +class _Translations$settings$hu extends Translations$settings$en { + _Translations$settings$hu._(TranslationsHu root) : this._root = root, super.internal(root); + + final TranslationsHu _root; // ignore: unused_field + + // Translations + @override String get title => 'Beállítások'; + @override String get supportDeveloper => 'Plezy támogatása'; + @override String get supportDeveloperDescription => 'A fejlesztés támogatása Liberapay-en keresztül'; + @override String get language => 'Nyelv'; + @override String get theme => 'Téma'; + @override String get appearance => 'Megjelenés'; + @override String get videoPlayback => 'Videólejátszás'; + @override String get videoPlaybackDescription => 'Lejátszási viselkedés beállítása'; + @override String get advanced => 'Haladó'; + @override String get episodePosterMode => 'Epizódborító stílusa'; + @override String get seriesPoster => 'Sorozatborító'; + @override String get seasonPoster => 'Évadborító'; + @override String get episodeThumbnail => 'Bélyegkép'; + @override String get showHeroSectionDescription => 'Kiemelt tartalmak sávjának megjelenítése a kezdőlapon'; + @override String get secondsLabel => 'Másodperc'; + @override String get minutesLabel => 'Perc'; + @override String get secondsShort => 'mp'; + @override String get minutesShort => 'p'; + @override String durationHint({required Object min, required Object max}) => 'Add meg az időtartamot (${min}-${max})'; + @override String get systemTheme => 'Rendszer'; + @override String get lightTheme => 'Világos'; + @override String get darkTheme => 'Sötét'; + @override String get oledTheme => 'OLED'; + @override String get libraryDensity => 'Könyvtársűrűség'; + @override String get compact => 'Kompakt'; + @override String get comfortable => 'Kényelmes'; + @override String get tvCornerSpotlightBackdrop => 'Sarokban megjelenő kiemelt háttérkép'; + @override String get tvCornerSpotlightBackdropDescription => 'A kiemelt háttérkép megjelenítése a jobb felső sarokban a teljes képernyő helyett'; + @override String get viewMode => 'Nézetmód'; + @override String get gridView => 'Rács'; + @override String get listView => 'Lista'; + @override String get showHeroSection => 'Kiemelt sáv megjelenítése'; + @override String get continueWatchingAction => 'A „Folytatás” művelete'; + @override String get continueWatchingPlay => 'Lejátszás'; + @override String get continueWatchingDetails => 'Részletek megnyitása'; + @override String get episodeAction => 'Az epizódkártya művelete'; + @override String get episodePlay => 'Lejátszás'; + @override String get episodeDetails => 'Részletek megnyitása'; + @override String get useGlobalHubs => 'Kezdőlap elrendezés használata'; + @override String get useGlobalHubsDescription => 'Egyesített kezdőlapi blokkok megjelenítése. Egyébként a könyvtári ajánlások jelennek meg.'; + @override String get showServerNameOnHubs => 'Szervernév megjelenítése a blokkoknál'; + @override String get showServerNameOnHubsDescription => 'Mindig jelenjen meg a szerver neve a blokkok címében.'; + @override String get groupLibrariesByServer => 'Könyvtárak csoportosítása szerver szerint'; + @override String get groupLibrariesByServerDescription => 'Az oldalsáv könyvtárainak csoportosítása a médiaszerverek alatt.'; + @override String get alwaysKeepSidebarOpen => 'Oldalsáv mindig nyitva'; + @override String get alwaysKeepSidebarOpenDescription => 'Az oldalsáv kibontva marad, a tartalom területe igazodik hozzá'; + @override String get showUnwatchedCount => 'Nem látott elemek számának megjelenítése'; + @override String get showUnwatchedCountDescription => 'Megjeleníti a még nem látott epizódok számát a sorozatoknál és évadoknál'; + @override String get showEpisodeNumberOnCards => 'Epizódszám megjelenítése a kártyákon'; + @override String get showEpisodeNumberOnCardsDescription => 'Megjeleníti az évad- és epizódszámot az epizódkártyákon'; + @override String get showSeasonPostersOnTabs => 'Évadborítók megjelenítése a füleken'; + @override String get showSeasonPostersOnTabsDescription => 'Megjeleníti az egyes évadok borítóját a fülük felett'; + @override String get tvFullCardLayout => 'Teljes TV-kártyák'; + @override String get tvFullCardLayoutDescription => 'Csak képet tartalmazó TV-kártyák használata, rájuk helyezett színésznevekkel'; + @override String get focusGlow => 'Kijelölési ragyogás'; + @override String get focusGlowDescription => 'Finom ragyogás rajzolása a kijelölt kártya köré'; + @override String get visualEffects => 'Vizuális effektek'; + @override String get visualEffectsAuto => 'Automatikus'; + @override String get visualEffectsAutoDescription => 'Effektek automatikus csökkentése alacsony teljesítményű eszközökön'; + @override String get visualEffectsFull => 'Teljes'; + @override String get visualEffectsReduced => 'Csökkentett'; + @override String get visualEffectsReducedDescription => 'Kevesebb animáció és alacsonyabb felbontású képek'; + @override String get hideSpoilers => 'Spoilerek elrejtése a nem látott epizódoknál'; + @override String get hideSpoilersDescription => 'Bélyegképek és leírások elhomályosítása a még meg nem nézett epizódoknál'; + @override String get playerBackend => 'Lejátszómotor'; + @override String get exoPlayer => 'ExoPlayer'; + @override String get mpv => 'mpv'; + @override String get hardwareDecoding => 'Hardveres dekódolás'; + @override String get hardwareDecodingDescription => 'Hardveres gyorsítás használata, ha elérhető'; + @override String get bufferSize => 'Puffer mérete'; + @override String bufferSizeMB({required Object size}) => '${size} MB'; + @override String get bufferSizeAuto => 'Automatikus (ajánlott)'; + @override String bufferSizeWarning({required Object heap, required Object size}) => '${heap} MB memória érhető el. A(z) ${size} MB méretű puffer befolyásolhatja a lejátszást.'; + @override String get defaultQualityTitle => 'Alapértelmezett minőség'; + @override String get musicQualityTitle => 'Zene minősége'; + @override String get subtitleStyling => 'Feliratok stílusa'; + @override String get subtitleStylingDescription => 'Feliratok megjelenésének testreszabása'; + @override String get smallSkipDuration => 'Kis ugrás időtartama'; + @override String get largeSkipDuration => 'Nagy ugrás időtartama'; + @override String get rewindOnResume => 'Visszatekerés folytatáskor'; + @override String secondsUnit({required Object seconds}) => '${seconds} másodperc'; + @override String get defaultSleepTimer => 'Alapértelmezett elalvási időzítő'; + @override String minutesUnit({required Object minutes}) => '${minutes} perc'; + @override String get rememberTrackSelections => 'Sávválasztások megjegyzése sorozatonként/filmenként'; + @override String get rememberTrackSelectionsDescription => 'Hang- és feliratválasztások megjegyzése címenként'; + @override String get showChapterMarkersOnTimeline => 'Fejezetjelölők megjelenítése az idősávon'; + @override String get showChapterMarkersOnTimelineDescription => 'Az idősáv felosztása a fejezetek határainál'; + @override String get clickVideoTogglesPlayback => 'Kattintás a videóra a lejátszás/szünet váltásához'; + @override String get clickVideoTogglesPlaybackDescription => 'A videóra kattintva vált a lejátszás/szünet, a vezérlők megjelenítése helyett.'; + @override String get videoPlayerControls => 'Videólejátszó vezérlői'; + @override String get keyboardShortcuts => 'Billentyűparancsok'; + @override String get keyboardShortcutsDescription => 'Billentyűparancsok testreszabása'; + @override String get videoPlayerNavigation => 'Videólejátszó-navigáció'; + @override String get videoPlayerNavigationDescription => 'A nyílbillentyűk használata a videólejátszó vezérlői közötti navigáláshoz'; + @override String get watchTogetherRelay => 'Watch Together-relé'; + @override String get watchTogetherRelayDescription => 'Egyéni relé beállítása. Mindenkinek ugyanazt a szervert kell használnia.'; + @override String get watchTogetherRelayHint => 'https://my-relay.example.com'; + @override String get watchTogetherRelayInvalid => 'Adj meg egy érvényes HTTP- vagy HTTPS-alapú relészerver-URL-t.'; + @override String get crashReporting => 'Összeomlási jelentések'; + @override String get crashReportingDescription => 'Összeomlási jelentések küldése az alkalmazás fejlesztésének elősegítéséhez'; + @override String get debugLogging => 'Hibakeresési naplózás'; + @override String get debugLoggingDescription => 'Részletes naplózás engedélyezése a hibaelhárításhoz'; + @override String get viewLogs => 'Naplók megtekintése'; + @override String get viewLogsDescription => 'Alkalmazásnaplók megtekintése'; + @override String get clearCache => 'Gyorsítótár törlése'; + @override String get clearCacheDescription => 'A gyorsítótárazott képek és adatok törlése. A tartalom lassabban töltődhet be.'; + @override String get clearCacheSuccess => 'A gyorsítótár sikeresen törölve'; + @override String get resetSettings => 'Beállítások visszaállítása'; + @override String get resetSettingsDescription => 'Az alapértelmezett beállítások visszaállítása. Ez a művelet nem vonható vissza.'; + @override String get resetSettingsSuccess => 'A beállítások sikeresen visszaállítva'; + @override String get backup => 'Biztonsági mentés'; + @override String get exportSettings => 'Beállítások exportálása'; + @override String get exportSettingsDescription => 'Beállítások mentése fájlba'; + @override String get exportSettingsSuccess => 'Beállítások exportálva'; + @override String get importSettings => 'Beállítások importálása'; + @override String get importSettingsDescription => 'Beállítások visszaállítása fájlból'; + @override String get importSettingsConfirm => 'Ez felülírja a jelenlegi beállításaidat. Folytatod?'; + @override String get importSettingsSuccess => 'Beállítások importálva'; + @override String get importSettingsInvalidFile => 'Ez a fájl nem érvényes Plezy-beállításexport'; + @override String get importSettingsNoUser => 'Jelentkezz be a beállítások importálása előtt'; + @override String get shortcutsReset => 'A billentyűparancsok visszaálltak az alapértelmezettekre'; + @override String get about => 'Névjegy'; + @override String get aboutDescription => 'Alkalmazásadatok és licencek'; + @override String get updates => 'Frissítések'; + @override String get updateAvailable => 'Frissítés érhető el'; + @override String get checkForUpdates => 'Frissítések keresése'; + @override String get autoCheckUpdatesOnStartup => 'Frissítések automatikus keresése indításkor'; + @override String get autoCheckUpdatesOnStartupDescription => 'Értesítés küldése indításkor, ha új frissítés érhető el'; + @override String get validationErrorEnterNumber => 'Adj meg egy érvényes számot'; + @override String validationErrorDuration({required Object min, required Object max, required Object unit}) => 'Az időtartamnak ${min} és ${max} ${unit} között kell lennie'; + @override String shortcutAlreadyAssigned({required Object action}) => 'A billentyűparancs már hozzá van rendelve a következőhöz: ${action}'; + @override String shortcutUpdated({required Object action}) => 'Billentyűparancs frissítve a következőhöz: ${action}'; + @override String get saveFailed => 'Nem sikerült menteni a módosításokat. Próbáld újra.'; + @override String get autoSkip => 'Automatikus átugrás'; + @override String get autoSkipIntro => 'Intró automatikus átugrása'; + @override String get autoSkipIntroDescription => 'Az intrójelölők automatikus átugrása néhány másodperc után'; + @override String get autoSkipCredits => 'Stáblista automatikus átugrása'; + @override String get autoSkipCreditsDescription => 'A stáblista automatikus átugrása és a következő epizód lejátszása'; + @override String get forceSkipMarkerFallback => 'Tartalék jelölők kényszerítése'; + @override String get forceSkipMarkerFallbackDescription => 'Fejezetcím-minták használata akkor is, ha a Plex rendelkezik jelölőkkel'; + @override String get autoSkipDelay => 'Automatikus átugrás késleltetése'; + @override String autoSkipDelayDescription({required Object seconds}) => 'Várakozás ${seconds} másodpercig az automatikus átugrás előtt'; + @override String get introPattern => 'Intrójelölő mintája'; + @override String get introPatternDescription => 'Reguláris kifejezés az intrójelölők illesztéséhez a fejezetcímekben'; + @override String get creditsPattern => 'Stáblistajelölő mintája'; + @override String get creditsPatternDescription => 'Reguláris kifejezés a stáblistajelölők illesztéséhez a fejezetcímekben'; + @override String get invalidRegex => 'Érvénytelen reguláris kifejezés'; + @override String get regex => 'Reguláris kifejezés'; + @override String get downloads => 'Letöltések'; + @override String get downloadLocationDescription => 'Válaszd ki a letöltött tartalom tárolási helyét'; + @override String get downloadLocationDefault => 'Alapértelmezett (alkalmazástárhely)'; + @override String get downloadLocationCustom => 'Egyéni hely'; + @override String get selectFolder => 'Mappa kiválasztása'; + @override String get resetToDefault => 'Visszaállítás alapértelmezettre'; + @override String currentPath({required Object path}) => 'Jelenlegi: ${path}'; + @override String get downloadLocationChanged => 'A letöltési hely megváltozott'; + @override String get downloadLocationReset => 'A letöltési hely visszaállt az alapértelmezettre'; + @override String get downloadLocationInvalid => 'A kiválasztott mappa nem írható'; + @override String get downloadLocationPickerUnavailable => 'A mappaválasztás ezen az eszközön nem érhető el'; + @override String get downloadOnWifiOnly => 'Letöltés csak Wi-Fi-n'; + @override String get downloadOnWifiOnlyDescription => 'Letöltések megakadályozása mobiladat-használat esetén'; + @override String get autoRemoveWatchedDownloads => 'Megnézett letöltések automatikus eltávolítása'; + @override String get autoRemoveWatchedDownloadsDescription => 'A megnézett letöltések automatikus törlése'; + @override String get cellularDownloadBlocked => 'A letöltések mobilhálózaton le vannak tiltva. Használj Wi-Fi-t, vagy módosítsd a beállítást.'; + @override String get maxVolume => 'Maximális hangerő'; + @override String get maxVolumeDescription => 'A hangerő 100% fölé emelésének engedélyezése halk tartalmak esetén'; + @override String maxVolumePercent({required Object percent}) => '${percent}%'; + @override String get discordRichPresence => 'Discord Rich Presence'; + @override String get discordRichPresenceDescription => 'Megjeleníti a Discordon, hogy éppen mit nézel'; + @override String get services => 'Szolgáltatások'; + @override String get servicesDescription => 'Trakt, MyAnimeList, Seerr és egyéb szolgáltatások csatlakoztatása'; + @override String get manageLibrariesDescription => 'Könyvtárak sorrendjének módosítása és elrejtése'; + @override String get companionRemoteServer => 'Kísérőtávirányító szervere'; + @override String get companionRemoteServerDescription => 'Lehetővé teszi, hogy a hálózaton lévő mobileszközökről vezéreld az alkalmazást'; + @override String get autoPip => 'Automatikus kép a képben (PiP)'; + @override String get autoPipDescription => 'Lejátszás közben az alkalmazás elhagyásakor automatikusan kép a képben módra vált'; + @override String get matchContentFrameRate => 'Képkockasebesség illesztése a tartalomhoz'; + @override String get matchContentFrameRateDescription => 'A kijelző frissítési frekvenciájának igazítása a videóhoz'; + @override String get matchRefreshRate => 'Frissítési frekvencia illesztése'; + @override String get matchRefreshRateDescription => 'A kijelző frissítési frekvenciájának igazítása teljes képernyőn'; + @override String get matchDynamicRange => 'Dinamikatartomány illesztése'; + @override String get matchDynamicRangeDescription => 'HDR bekapcsolása HDR-tartalmak esetén, majd visszaváltás SDR-re'; + @override String get displaySwitchDelay => 'Kijelzőváltási késleltetés'; + @override String get tunneledPlayback => 'Alagutas lejátszás'; + @override String get tunneledPlaybackDescription => 'Videóalagút használata. Tiltsd le, ha HDR-lejátszáskor fekete a kép.'; + @override String get audioPassthrough => 'Hangtovábbítás (passthrough)'; + @override String get audioPassthroughDescription => 'Dolby/DTS-hang továbbítása az erősítőre vagy a TV-re újrakódolás nélkül, a térhangzás megőrzésével. Kapcsold ki, ha nincs hang.'; + @override String get audioPassthroughDescriptionAppleTv => 'Az Apple natív Dolby-dekóderének használata Dolby Digital Plushoz, az Atmost is beleértve. A DTS és a TrueHD továbbra is többcsatornás PCM-ként szól. Kapcsold ki, ha nincs hang.'; + @override String get audioDownmix => 'Lekeverés sztereóra'; + @override String get audioDownmixDescription => 'A térhangzás lekeverése két csatornára sztereó hangszórókhoz vagy fejhallgatókhoz'; + @override String get downmixCenterBoost => 'Középső csatorna kiemelése'; + @override String downmixCenterBoostValue({required Object db}) => '${db} dB'; + @override String get downmixCenterBoostLabel => 'Kiemelés (dB)'; + @override String get downmixCenterBoostShort => 'dB'; + @override String get audioDownmixNormalize => 'Hangerő normalizálása lekeveréskor'; + @override String get audioDownmixNormalizeDescription => 'A keverés szintjének csökkentése a torzítás elkerülésére. Kapcsold ki az eredeti hangerő megőrzéséhez (a hangos jelenetek torzíthatnak).'; + @override String get atmosDiagnostics => 'Atmos kimeneti teszt'; + @override String get atmosDiagnosticsDescription => 'Dolby Atmos kimenet diagnosztizálása tesztjelek lejátszásával a rendszerlejátszón keresztül'; + @override String get atmosTestHlsAtmos => 'Apple Atmos folyam'; + @override String get atmosTestHlsAtmosDescription => 'Igazoltan működő Dolby Atmos-adatfolyam. Az erősítő kijelzőjén a Dolby Atmos formátumnak kell megjelennie.'; + @override String get atmosTestHlsControl => 'Apple térhangzású folyam'; + @override String get atmosTestHlsControlDescription => 'Atmos nélküli ellenőrző adatfolyam. Az erősítő kijelzőjén térhangzásnak kell megjelennie, Atmos nélkül.'; + @override String get atmosTestRawStream => 'Nyers EAC3 folyam'; + @override String get atmosTestRawStreamDescription => 'A tesztfájlt pontosan úgy közvetíti, mint a lejátszón belüli Atmos lejátszás. Szükséges a tesztfájl URL-je.'; + @override String get atmosTestRawFile => 'Nyers EAC3 fájl'; + @override String get atmosTestRawFileDescription => 'Ismert hosszúságú tesztfájlt játszik le. Szükséges a tesztfájl URL-je.'; + @override String get atmosTestStop => 'Teszt leállítása'; + @override String get atmosTestUrl => 'Tesztfájl URL-je'; + @override String get atmosTestUrlDescription => 'Nyers .ec3 Dolby Atmos fájl HTTP URL-je (pl. ffmpeg-gel kinyerve)'; + @override String get atmosTestUrlMissing => 'Először állítsd be a tesztfájl URL-jét'; + @override String get atmosTestStatus => 'Állapot'; + @override String get dvConversionMode => 'Dolby Vision-átalakítás'; + @override String get dvConversionModeDescription => 'Válaszd ki, hogyan kezelje az ExoPlayer a Dolby Vision Profile 7 fájlokat.'; + @override String get dvConversionAuto => 'Automatikus'; + @override String get dvConversionNative => 'Natív / letiltva'; + @override String get dvConversionDv81 => 'P7 → P8.1'; + @override String get dvConversionHevcStrip => 'P7 → HEVC'; + @override String get dvConversionAutoDescription => 'Az eszköz képességeinek felismerése és szükség esetén a szokásos tartalék megoldás használata'; + @override String get dvConversionNativeDescription => 'A natív DV7 kényszerítése és a DV-átalakítási újrapróbálkozás letiltása'; + @override String get dvConversionDv81Description => 'A közvetlen RPU-átalakítás kényszerítése Dolby Vision Profile 8.1-re'; + @override String get dvConversionHevcStripDescription => 'A Dolby Vision RPU/EL-rétegek eltávolítása és egyszerű HEVC-ként való megjelenítés'; + @override String get requireProfileSelectionOnOpen => 'Profil kérése az alkalmazás megnyitásakor'; + @override String get requireProfileSelectionOnOpenDescription => 'Profilválasztó megjelenítése minden alkalommal, amikor az alkalmazást megnyitod'; + @override String get forceTvMode => 'TV-mód kényszerítése'; + @override String get forceTvModeDescription => 'TV-elrendezés kényszerítése az automatikus felismeréssel nem rendelkező eszközökön. Újraindítást igényel.'; + @override String get startInFullscreen => 'Indítás teljes képernyőn'; + @override String get startInFullscreenDescription => 'A Plezy megnyitása teljes képernyős módban indításkor'; + @override String get exitFullscreenOnPlayerClose => 'Kilépés a teljes képernyőből a lejátszó bezárásakor'; + @override String get exitFullscreenOnPlayerCloseDescription => 'Automatikus kilépés a teljes képernyőből a videólejátszó bezárásakor'; + @override String get autoHidePerformanceOverlay => 'Teljesítményadatok automatikus elrejtése'; + @override String get autoHidePerformanceOverlayDescription => 'A teljesítményadatok elhalványítása a lejátszásvezérlőkkel együtt'; + @override String get showNavBarLabels => 'Navigációs sáv címkéinek megjelenítése'; + @override String get showNavBarLabelsDescription => 'Szöveges címkék megjelenítése a navigációs sáv ikonjai alatt'; + @override String get startupSection => 'Indítási oldal'; + @override String get liveTvDefaultFavorites => 'Kedvenc csatornák alapértelmezés szerint'; + @override String get liveTvDefaultFavoritesDescription => 'Csak a kedvenc csatornák megjelenítése az Élő TV megnyitásakor'; + @override String get display => 'Kijelző'; + @override String get homeScreen => 'Kezdőképernyő'; + @override String get navigation => 'Navigáció'; + @override String get window => 'Ablak'; + @override String get content => 'Tartalom'; + @override String get player => 'Lejátszó'; + @override String get subtitlesAndConfig => 'Feliratok és konfiguráció'; + @override String get seekAndTiming => 'Tekerés és időzítés'; + @override String get behavior => 'Viselkedés'; +} + +// Path: search +class _Translations$search$hu extends Translations$search$en { + _Translations$search$hu._(TranslationsHu root) : this._root = root, super.internal(root); + + final TranslationsHu _root; // ignore: unused_field + + // Translations + @override String get hint => 'Keresés filmek, sorozatok és zenék között...'; + @override String get tryDifferentTerm => 'Próbálj másik keresési kifejezést'; + @override String get searchYourMedia => 'Keresés a saját médiatartalmak között'; + @override String get enterTitleActorOrKeyword => 'Adj meg egy címet, színészt vagy kulcsszót'; +} + +// Path: hotkeys +class _Translations$hotkeys$hu extends Translations$hotkeys$en { + _Translations$hotkeys$hu._(TranslationsHu root) : this._root = root, super.internal(root); + + final TranslationsHu _root; // ignore: unused_field + + // Translations + @override String setShortcutFor({required Object actionName}) => 'Billentyűparancs beállítása ehhez: ${actionName}'; + @override String get clearShortcut => 'Billentyűparancs törlése'; + @override String get noShortcutSet => 'Nincs billentyűparancs beállítva'; + @override String get currentShortcut => 'Jelenlegi billentyűparancs:'; + @override String get pressToRecord => 'Válaszd ki a billentyűparancs rögzítéséhez'; + @override String get recordingShortcut => 'Nyomd meg most a billentyűparancsot'; + @override late final _Translations$hotkeys$actions$hu actions = _Translations$hotkeys$actions$hu._(_root); +} + +// Path: fileInfo +class _Translations$fileInfo$hu extends Translations$fileInfo$en { + _Translations$fileInfo$hu._(TranslationsHu root) : this._root = root, super.internal(root); + + final TranslationsHu _root; // ignore: unused_field + + // Translations + @override String get title => 'Fájlinformáció'; + @override String get video => 'Videó'; + @override String get audio => 'Hang'; + @override String get file => 'Fájl'; + @override String get advanced => 'Haladó'; + @override String get codec => 'Kodek'; + @override String get resolution => 'Felbontás'; + @override String get bitrate => 'Bitráta'; + @override String get frameRate => 'Képkockasebesség'; + @override String get aspectRatio => 'Méretarány'; + @override String get profile => 'Profil'; + @override String get bitDepth => 'Bitmélység'; + @override String get colorSpace => 'Színtér'; + @override String get colorRange => 'Színtartomány'; + @override String get colorPrimaries => 'Elsődleges színek'; + @override String get chromaSubsampling => 'Krominancia-alulmintavételezés'; + @override String get channels => 'Csatornák'; + @override String get subtitles => 'Feliratok'; + @override String get overallBitrate => 'Összesített bitráta'; + @override String get path => 'Elérési út'; + @override String get size => 'Méret'; + @override String get container => 'Konténer'; + @override String get duration => 'Időtartam'; + @override String get optimizedForStreaming => 'Adatfolyam-továbbításra optimalizálva'; + @override String get has64bitOffsets => '64 bites eltolások'; +} + +// Path: mediaMenu +class _Translations$mediaMenu$hu extends Translations$mediaMenu$en { + _Translations$mediaMenu$hu._(TranslationsHu root) : this._root = root, super.internal(root); + + final TranslationsHu _root; // ignore: unused_field + + // Translations + @override String get markAsWatched => 'Megjelölés megtekintettként'; + @override String get markAsUnwatched => 'Megjelölés nem megtekintettként'; + @override String get removeFromContinueWatching => 'Eltávolítás a folytatásból'; + @override String get viewDetails => 'Részletek megtekintése'; + @override String get goToSeries => 'Ugrás a sorozathoz'; + @override String get shufflePlay => 'Véletlenszerű lejátszás'; + @override String get shuffleNotAvailableOffline => 'A véletlenszerű lejátszás nem érhető el offline'; + @override String get fileInfo => 'Fájlinformáció'; + @override String get deleteFromServer => 'Törlés a szerverről'; + @override String get confirmDelete => 'Törlöd ezt a médiát és a fájljait a szerveredről?'; + @override String get deleteMultipleWarning => 'Ez magában foglalja az összes epizódot és azok fájljait.'; + @override String get mediaDeletedSuccessfully => 'Médiaelem sikeresen törölve'; + @override String get mediaFailedToDelete => 'Nem sikerült a médiaelem törlése'; + @override String get rate => 'Értékelés'; + @override String get playFromBeginning => 'Lejátszás az elejétől'; + @override String get playVersion => 'Verzió lejátszása...'; +} + +// Path: rateSheet +class _Translations$rateSheet$hu extends Translations$rateSheet$en { + _Translations$rateSheet$hu._(TranslationsHu root) : this._root = root, super.internal(root); + + final TranslationsHu _root; // ignore: unused_field + + // Translations + @override String get title => 'Értékelés'; + @override String get server => 'Szerver'; + @override String get favorite => 'Kedvenc'; + @override String get favorited => 'Kedvencekhez hozzáadva'; + @override String get saved => 'Mentve'; + @override String get notAvailable => 'Nincs találat'; + @override String get noConnectedServices => 'Az értékeléshez csatlakoztass egy szolgáltatást a Beállításokban.'; +} + +// Path: accessibility +class _Translations$accessibility$hu extends Translations$accessibility$en { + _Translations$accessibility$hu._(TranslationsHu root) : this._root = root, super.internal(root); + + final TranslationsHu _root; // ignore: unused_field + + // Translations + @override String mediaCardMovie({required Object title}) => '${title}, film'; + @override String mediaCardShow({required Object title}) => '${title}, TV-sorozat'; + @override String mediaCardEpisode({required Object title, required Object episodeInfo}) => '${title}, ${episodeInfo}'; + @override String mediaCardSeason({required Object title, required Object seasonInfo}) => '${title}, ${seasonInfo}'; + @override String get mediaCardWatched => 'megtekintve'; + @override String mediaCardPartiallyWatched({required Object percent}) => '${percent} százalék megtekintve'; + @override String get mediaCardUnwatched => 'még nem láttad'; + @override String get tapToPlay => 'Koppints a lejátszáshoz'; + @override String get decrease => 'Csökkentés'; + @override String get increase => 'Növelés'; + @override String decreaseValue({required Object label}) => '${label} csökkentése'; + @override String increaseValue({required Object label}) => '${label} növelése'; + @override String get hue => 'Árnyalat'; + @override String get saturation => 'Telítettség'; + @override String get brightness => 'Fényerő'; + @override String get hexColor => 'Hex színkód'; + @override String get expandText => 'Szöveg kibontása'; + @override String get collapseText => 'Szöveg összecsukása'; + @override String get alphabetNavigation => 'Ábécé szerinti navigáció'; + @override String get alphabetScrollHint => 'A betűnkénti léptetéshez pöccints felfelé vagy lefelé'; + @override String rowColumnPosition({required Object row, required Object rowCount, required Object column, required Object columnCount}) => '${row}. sor a(z) ${rowCount} sorból, ${column}. oszlop a(z) ${columnCount} oszlopból'; + @override String rowPosition({required Object row, required Object rowCount}) => '${row}. sor a(z) ${rowCount} sorból'; +} + +// Path: tooltips +class _Translations$tooltips$hu extends Translations$tooltips$en { + _Translations$tooltips$hu._(TranslationsHu root) : this._root = root, super.internal(root); + + final TranslationsHu _root; // ignore: unused_field + + // Translations + @override String get shufflePlay => 'Véletlenszerű lejátszás'; + @override String get playTrailer => 'Előzetes lejátszása'; + @override String get markAsWatched => 'Megjelölés megtekintettként'; + @override String get markAsUnwatched => 'Megjelölés nem megtekintettként'; +} + +// Path: audioTracks +class _Translations$audioTracks$hu extends Translations$audioTracks$en { + _Translations$audioTracks$hu._(TranslationsHu root) : this._root = root, super.internal(root); + + final TranslationsHu _root; // ignore: unused_field + + // Translations + @override String track({required Object n}) => '${n}. hangsáv'; +} + +// Path: videoControls +class _Translations$videoControls$hu extends Translations$videoControls$en { + _Translations$videoControls$hu._(TranslationsHu root) : this._root = root, super.internal(root); + + final TranslationsHu _root; // ignore: unused_field + + // Translations + @override String get audioLabel => 'Hang'; + @override String get subtitlesLabel => 'Feliratok'; + @override String get resetToZero => 'Visszaállítás 0 ms-ra'; + @override String addTime({required Object amount, required Object unit}) => '+${amount}${unit}'; + @override String minusTime({required Object amount, required Object unit}) => '-${amount}${unit}'; + @override String playsLater({required Object label}) => '${label}: későbbre állítva'; + @override String playsEarlier({required Object label}) => '${label}: korábbra állítva'; + @override String get noOffset => 'Nincs eltolás'; + @override String get letterbox => 'Fekete sávok'; + @override String get fillScreen => 'Képernyő kitöltése'; + @override String get stretch => 'Nyújtás'; + @override String get lockRotation => 'Forgatás zárolása'; + @override String get unlockRotation => 'Forgatás feloldása'; + @override String get timerActive => 'Időzítő aktív'; + @override String playbackWillPauseIn({required Object duration}) => 'A lejátszás ${duration} múlva szünetel'; + @override String get sleepTimerEndOfVideo => 'Jelenlegi videó vége'; + @override String get sleepTimerStopAtHeader => 'Leállítás ekkor'; + @override String get sleepTimerDurationHeader => 'Időzítő'; + @override String get playbackWillPauseAtEnd => 'A lejátszás szünetel a videó végén'; + @override String get stillWatching => 'Még nézed?'; + @override String pausingIn({required Object seconds}) => 'Szüneteltetés ${seconds} mp múlva'; + @override String get continueWatching => 'Folytatás'; + @override String get autoPlayNext => 'Következő automatikus lejátszása'; + @override String get playNext => 'Következő lejátszása'; + @override String get playButton => 'Lejátszás'; + @override String get pauseButton => 'Szünet'; + @override String get showPlaybackControls => 'Lejátszásvezérlők megjelenítése'; + @override String get hidePlaybackControls => 'Lejátszásvezérlők elrejtése'; + @override String seekBackwardButton({required Object seconds}) => 'Tekerés hátra ${seconds} másodperccel'; + @override String seekForwardButton({required Object seconds}) => 'Tekerés előre ${seconds} másodperccel'; + @override String get previousButton => 'Előző epizód'; + @override String get nextButton => 'Következő epizód'; + @override String get previousChapterButton => 'Előző fejezet'; + @override String get nextChapterButton => 'Következő fejezet'; + @override String get muteButton => 'Némítás'; + @override String get unmuteButton => 'Hang visszakapcsolása'; + @override String get settingsButton => 'Lejátszási beállítások'; + @override String get tracksButton => 'Hang és feliratok'; + @override String get chaptersButton => 'Fejezetek'; + @override String get versionQualityButton => 'Verzió és minőség'; + @override String get versionColumnHeader => 'Verzió'; + @override String get qualityColumnHeader => 'Minőség'; + @override String get qualityOriginal => 'Eredeti'; + @override String qualityPresetLabel({required Object resolution, required Object bitrate}) => '${resolution}p ${bitrate} Mbps'; + @override String get transcodeUnavailableFallback => 'A transzkódolás nem érhető el — eredeti minőség lejátszása'; + @override String get subtitleUnavailableFallback => 'A kiválasztott feliratot nem sikerült betölteni — folytatás felirat nélkül'; + @override String get pipButton => 'Kép a képben mód'; + @override String get aspectRatioButton => 'Méretarány'; + @override String get ambientLighting => 'Környezeti megvilágítás'; + @override String get fullscreenButton => 'Teljes képernyős mód bekapcsolása'; + @override String get exitFullscreenButton => 'Teljes képernyős mód kikapcsolása'; + @override String get alwaysOnTopButton => 'Mindig legfelül'; + @override String get rotationLockButton => 'Elforgatás zárolása'; + @override String get lockScreen => 'Képernyő zárolása'; + @override String get screenLockButton => 'Képernyőzár'; + @override String get longPressToUnlock => 'Nyomd hosszan a feloldáshoz'; + @override String get timelineSlider => 'Videó idősáv'; + @override String get volumeSlider => 'Hangerő'; + @override String endsAt({required Object time}) => 'Vége: ${time}'; + @override String get pipActive => 'Lejátszás kép a képben módban'; + @override String get pipFailed => 'Nem sikerült elindítani a kép a képben módot'; + @override String get screenshotSaved => 'Képernyőkép elmentve'; + @override String zoomPercent({required Object percent}) => 'Nagyítás ${percent}%'; + @override late final _Translations$videoControls$pipErrors$hu pipErrors = _Translations$videoControls$pipErrors$hu._(_root); + @override String get chapters => 'Fejezetek'; + @override String get noChaptersAvailable => 'Nincsenek elérhető fejezetek'; + @override String get queue => 'Lejátszási sor'; + @override String get noQueueItems => 'Nincsenek elemek a sorban'; + @override String get searchSubtitles => 'Feliratok keresése'; + @override String get language => 'Nyelv'; + @override String get noSubtitlesFound => 'Nem találhatók feliratok'; + @override String get noSubtitlesAvailable => 'Nincsenek elérhető feliratok'; + @override String get noAudioTracksAvailable => 'Nincsenek elérhető hangsávok'; + @override String get noTracksAvailable => 'Nincsenek elérhető sávok'; + @override String get subtitleDownloaded => 'Felirat letöltve'; + @override String get subtitleDownloadedNotApplied => 'Felirat letöltve, de nem sikerült kiválasztani'; + @override String get subtitleDownloadFailed => 'Nem sikerült a felirat letöltése'; + @override String get searchLanguages => 'Nyelvek keresése...'; +} + +// Path: messages +class _Translations$messages$hu extends Translations$messages$en { + _Translations$messages$hu._(TranslationsHu root) : this._root = root, super.internal(root); + + final TranslationsHu _root; // ignore: unused_field + + // Translations + @override String get markedAsWatched => 'Megjelölve megtekintettként'; + @override String get markedAsUnwatched => 'Megjelölve nem megtekintettként'; + @override String get markedAsWatchedOffline => 'Megjelölve megtekintettként (szinkronizálás online állapotban)'; + @override String get markedAsUnwatchedOffline => 'Megjelölve nem megtekintettként (szinkronizálás online állapotban)'; + @override String autoRemovedWatchedDownload({required Object title}) => 'Automatikusan eltávolítva: ${title}'; + @override String autoRemovedWatchedDownloads({required num n}) => (_root.$meta.cardinalResolver ?? PluralResolvers.cardinal('hu'))(n, + one: '${n} megtekintett letöltés automatikusan eltávolítva', + other: '${n} megtekintett letöltés automatikusan eltávolítva', + ); + @override String get removedFromContinueWatching => 'Eltávolítva a folytatásból'; + @override String errorLoading({required Object error}) => 'Hiba: ${error}'; + @override String get streamInterrupted => 'Az adatfolyam megszakadt. Az újrapróbálkozáshoz indítsd el a lejátszást, vagy tekerj másik pozícióra.'; + @override String get liveStreamInterrupted => 'Az élő adás megszakadt. Nyomd meg a lejátszást az újrapróbálkozáshoz.'; + @override String get fileInfoNotAvailable => 'A fájlinformáció nem érhető el'; + @override String get playbackAuthenticationRequired => 'Az elem lejátszásához jelentkezz be újra a médiaszerverre.'; + @override String get playbackServerUnavailable => 'A médiaszerver nem érhető el. Próbáld újra később.'; + @override String get playbackDataInvalid => 'A szerver érvénytelen lejátszási adatokat küldött.'; + @override String get playbackCancelled => 'A lejátszás megszakítva.'; + @override String get playbackFailed => 'Nem sikerült elindítani a lejátszást.'; + @override String errorLoadingFileInfo({required Object error}) => 'Hiba a fájlinformációk betöltésekor: ${error}'; + @override String get errorLoadingSeries => 'Hiba a sorozat betöltésekor'; + @override String get musicNotSupported => 'A zenelejátszás még nem támogatott'; + @override String get noDescriptionAvailable => 'Nincs elérhető leírás'; + @override String get noProfilesAvailable => 'Nincsenek elérhető profilok'; + @override String get contactAdminForProfiles => 'Lépj kapcsolatba a szerver adminisztrátorával profilok hozzáadásához'; + @override String get unableToDetermineLibrarySection => 'Nem sikerült meghatározni az elem könyvtári részlegét'; + @override String get logsCleared => 'Naplók törölve'; + @override String get logsCopied => 'Naplók a vágólapra másolva'; + @override String get noLogsAvailable => 'Nincsenek elérhető naplók'; + @override String libraryScanning({required Object title}) => '"${title}" beolvasása...'; + @override String libraryScanStarted({required Object title}) => 'Könyvtár beolvasása elindítva a következőhöz: "${title}"'; + @override String libraryScanFailed({required Object error}) => 'Nem sikerült a könyvtár beolvasása: ${error}'; + @override String metadataRefreshing({required Object title}) => 'Metaadatok frissítése a következőhöz: "${title}"...'; + @override String metadataRefreshStarted({required Object title}) => 'Metaadatok frissítése elindítva a következőhöz: "${title}"'; + @override String metadataRefreshFailed({required Object error}) => 'Nem sikerült a metaadatok frissítése: ${error}'; + @override String get logoutConfirm => 'Biztosan ki szeretnél jelentkezni?'; + @override String get noSeasonsFound => 'Nem találhatók évadok'; + @override String get seasonsLoadFailed => 'Nem sikerült az évadok betöltése'; + @override String get noEpisodesFound => 'Nem találhatók epizódok az első évadban'; + @override String get noEpisodesFoundGeneral => 'Nem találhatók epizódok'; + @override String get episodesLoadFailed => 'Nem sikerült az epizódok betöltése'; + @override String get noResultsFound => 'Nincs találat'; + @override String sleepTimerSet({required Object label}) => 'Elalvási időzítő beállítva: ${label}'; + @override String get noItemsAvailable => 'Nincsenek elérhető elemek'; + @override String get failedToCreatePlayQueueNoItems => 'Nem sikerült létrehozni a lejátszási sort — nincsenek elemek'; + @override String failedPlayback({required Object action, required Object error}) => 'Nem sikerült a művelet (${action}): ${error}'; + @override String get switchingToCompatiblePlayer => 'Váltás kompatibilis lejátszóra...'; + @override String get serverLimitTitle => 'A lejátszás nem sikerült'; + @override String get serverLimitBody => 'Szerverhiba (HTTP 500). A munkamenetet valószínűleg egy sávszélességi vagy átkódolási korlát utasította el. Kérd meg a tulajdonost a korlát módosítására.'; + @override String get logsUploaded => 'Naplók feltöltve'; + @override String get logsUploadFailed => 'Nem sikerült a naplók feltöltése'; + @override String get logId => 'Naplóazonosító'; +} + +// Path: subtitlingStyling +class _Translations$subtitlingStyling$hu extends Translations$subtitlingStyling$en { + _Translations$subtitlingStyling$hu._(TranslationsHu root) : this._root = root, super.internal(root); + + final TranslationsHu _root; // ignore: unused_field + + // Translations + @override String get text => 'Szöveg'; + @override String get border => 'Keret'; + @override String get background => 'Háttér'; + @override String get fontSize => 'Betűméret'; + @override String get textColor => 'Szövegszín'; + @override String get borderSize => 'Keretméret'; + @override String get borderColor => 'Keretszín'; + @override String get backgroundOpacity => 'Háttér átlátszatlansága'; + @override String get backgroundColor => 'Háttérszín'; + @override String get position => 'Pozíció'; + @override String get assOverride => 'ASS felülbírálása'; + @override String get overrideScale => 'Skálázás'; + @override String get overrideForce => 'Kényszerítés'; + @override String get overrideStrip => 'Stílus eltávolítása'; + @override String get positionTop => 'Fent'; + @override String get positionBottom => 'Lent'; + @override String get bold => 'Félkövér'; + @override String get italic => 'Dőlt'; + @override String get renderResolution => 'Renderelési felbontás'; + @override String get renderResolutionScreen => 'Képernyőfelbontás'; + @override String get renderResolutionVideo => 'Videófelbontás'; +} + +// Path: mpvConfig +class _Translations$mpvConfig$hu extends Translations$mpvConfig$en { + _Translations$mpvConfig$hu._(TranslationsHu root) : this._root = root, super.internal(root); + + final TranslationsHu _root; // ignore: unused_field + + // Translations + @override String get title => 'mpv.conf'; + @override String get description => 'Haladó videólejátszó beállítások'; + @override String get presets => 'Előbeállítások'; + @override String get noPresets => 'Nincsenek mentett előbeállítások'; + @override String get saveAsPreset => 'Mentés előbeállításként...'; + @override String get presetName => 'Előbeállítás neve'; + @override String get presetNameHint => 'Add meg az előbeállítás nevét'; + @override String get loadPreset => 'Betöltés'; + @override String get deletePreset => 'Törlés'; + @override String get presetSaved => 'Előbeállítás mentve'; + @override String get presetLoaded => 'Előbeállítás betöltve'; + @override String get presetDeleted => 'Előbeállítás törölve'; + @override String get confirmDeletePreset => 'Biztosan törölni szeretnéd ezt az előbeállítást?'; + @override String get configPlaceholder => 'gpu-api=vulkan\nhwdec=auto\n# megjegyzés'; +} + +// Path: dialog +class _Translations$dialog$hu extends Translations$dialog$en { + _Translations$dialog$hu._(TranslationsHu root) : this._root = root, super.internal(root); + + final TranslationsHu _root; // ignore: unused_field + + // Translations + @override String get confirmAction => 'Művelet megerősítése'; +} + +// Path: profiles +class _Translations$profiles$hu extends Translations$profiles$en { + _Translations$profiles$hu._(TranslationsHu root) : this._root = root, super.internal(root); + + final TranslationsHu _root; // ignore: unused_field + + // Translations + @override String get addPlezyProfile => 'Plezy profil hozzáadása'; + @override String get switchingProfile => 'Profilváltás…'; + @override String get deleteThisProfileTitle => 'Törlöd ezt a profilt?'; + @override String deleteThisProfileMessage({required Object displayName}) => '${displayName} eltávolítása. A kapcsolatokat nem érinti.'; + @override String get active => 'Aktív'; + @override String get manage => 'Kezelés'; + @override String get delete => 'Törlés'; + @override String get signOut => 'Kijelentkezés'; + @override String get signOutPlexTitle => 'Kijelentkezel a Plexből?'; + @override String signOutPlexMessage({required Object displayName}) => 'Eltávolítod a(z) ${displayName} profilt és az összes Plex Home-felhasználót? Bármikor visszajelentkezhetsz.'; + @override String get signedOutPlex => 'Kijelentkezve a Plexből.'; + @override String get signOutFailed => 'A kijelentkezés nem sikerült.'; + @override String get sectionTitle => 'Profilok'; + @override String get summarySingle => 'Adj hozzá profilokat a kezelt felhasználók és a helyi profilok együttes használatához'; + @override String summaryMultipleWithActive({required Object count, required Object activeName}) => '${count} profil · aktív: ${activeName}'; + @override String summaryMultiple({required Object count}) => '${count} profil'; + @override String get removeConnectionTitle => 'Eltávolítod a kapcsolatot?'; + @override String removeConnectionMessage({required Object displayName, required Object connectionLabel}) => 'Eltávolítod ${displayName} hozzáférését a(z) ${connectionLabel} kapcsolathoz. Más profilok megtartják.'; + @override String get deleteProfileTitle => 'Törlöd a profilt?'; + @override String deleteProfileMessage({required Object displayName}) => 'Eltávolítod a(z) ${displayName} profilt és annak kapcsolatait. A szerverek elérhetőek maradnak.'; + @override String get profileNameLabel => 'Profil neve'; + @override String get pinProtectionLabel => 'PIN-kódos védelem'; + @override String get pinManagedByPlex => 'A PIN-kódot a Plex kezeli. Szerkesztés a plex.tv oldalon.'; + @override String get noPinSetEditOnPlex => 'Nincs PIN beállítva. PIN kéréséhez szerkeszd az otthoni felhasználót a plex.tv-n.'; + @override String get setPin => 'PIN beállítása'; + @override String get setPinTitle => 'PIN beállítása'; + @override String get confirmPinTitle => 'PIN megerősítése'; + @override String get pinSet => 'PIN beállítva'; + @override String get changePin => 'Módosítás'; + @override String get removePin => 'Eltávolítás'; + @override String get connectionsLabel => 'Kapcsolatok'; + @override String get add => 'Hozzáadás'; + @override String get deleteProfileButton => 'Profil törlése'; + @override String get noConnectionsHint => 'Nincsenek kapcsolatok — adj hozzá egyet a profil használatához.'; + @override String get noConnections => 'Nincsenek kapcsolatok'; + @override String get plexHomeAccount => 'Plex Home-fiók'; + @override String get connectionDefault => 'Alapértelmezett'; + @override String connectionAs({required Object displayName}) => 'mint ${displayName}'; + @override String get makeDefault => 'Beállítás alapértelmezettként'; + @override String get removeConnection => 'Eltávolítás'; + @override String get profileRenamed => 'Profil átnevezve.'; + @override String borrowAddTo({required Object displayName}) => 'Hozzáadás a következőhöz: ${displayName}'; + @override String get borrowExplain => 'Használd egy másik profil kapcsolatát. A PIN-kóddal védett profilokhoz PIN-kód szükséges.'; + @override String get borrowEmpty => 'Még nincs használható kapcsolat.'; + @override String get borrowEmptySubtitle => 'Először csatlakoztasd a Plexet vagy a Jellyfint egy másik profilhoz.'; + @override String get borrowLoadFailed => 'Nem sikerült betölteni az elérhető kapcsolatokat. Próbáld újra.'; + @override String borrowFromProfile({required Object displayName}) => 'Innen: ${displayName}'; + @override String get borrowConnectionBorrowed => 'Kapcsolat átvéve.'; + @override String get borrowFailed => 'Nem sikerült átvenni a kapcsolatot.'; + @override String get incorrectPin => 'Helytelen PIN-kód.'; + @override String get incorrectPinTryAgain => 'Helytelen PIN-kód. Próbáld újra.'; + @override String get sourceProfileMissingParentAccount => 'A forrásprofilból hiányzik a szülőfiók.'; + @override String get failedToLoadHomeUsers => 'Nem sikerült betölteni a Plex Home-felhasználókat. Ellenőrizd a kapcsolatot, majd próbáld újra.'; + @override String get failedToVerifyPin => 'Nem sikerült a PIN-kód ellenőrzése.'; + @override String get newProfile => 'Új profil'; + @override String get profileNameHint => 'pl. Vendégek, Gyerekek, Nappali'; + @override String get pinProtectionOptional => 'PIN-védelem (opcionális)'; + @override String get pinExplain => '4 jegyű PIN-kód szükséges a profilváltáshoz.'; + @override String get continueButton => 'Folytatás'; + @override String get pinsDontMatch => 'A PIN-kódok nem egyeznek'; +} + +// Path: connections +class _Translations$connections$hu extends Translations$connections$en { + _Translations$connections$hu._(TranslationsHu root) : this._root = root, super.internal(root); + + final TranslationsHu _root; // ignore: unused_field + + // Translations + @override String get sectionTitle => 'Kapcsolatok'; + @override String get addConnection => 'Kapcsolat hozzáadása'; + @override String get addConnectionSubtitleNoProfile => 'Jelentkezz be Plexszel, vagy csatlakoztass egy Jellyfin-szervert'; + @override String addConnectionSubtitleScoped({required Object displayName}) => 'Hozzáadás a következőhöz (${displayName}): Plex, Jellyfin vagy más profilkapcsolat'; + @override String sessionExpiredOne({required Object name}) => 'A(z) ${name} munkamenete lejárt'; + @override String sessionExpiredMany({required Object count}) => '${count} szerver munkamenete lejárt'; + @override String get signInAgain => 'Bejelentkezés újra'; + @override String get editJellyfinTitle => 'Jellyfin kapcsolat szerkesztése'; + @override String editJellyfinIntro({required Object serverName}) => 'URL-ek hozzáadása vagy eltávolítása ehhez: ${serverName}. A Plezy a legalacsonyabb késleltetésű, elérhető URL-t fogja használni.'; +} + +// Path: discover +class _Translations$discover$hu extends Translations$discover$en { + _Translations$discover$hu._(TranslationsHu root) : this._root = root, super.internal(root); + + final TranslationsHu _root; // ignore: unused_field + + // Translations + @override String get title => 'Felfedezés'; + @override String get noContentAvailable => 'Nincs elérhető tartalom'; + @override String get addMediaToLibraries => 'Adj hozzá médiát a könyvtáraidhoz'; + @override String get continueWatching => 'Folytatás'; + @override String continueWatchingIn({required Object library}) => 'Folytatás itt: ${library}'; + @override String get nextUp => 'Következik'; + @override String nextUpIn({required Object library}) => 'Következik itt: ${library}'; + @override String get recentlyAdded => 'Legutóbb hozzáadva'; + @override String recentlyAddedIn({required Object library}) => 'Legutóbb hozzáadva itt: ${library}'; + @override String latestAlbumsIn({required Object library}) => 'Legújabb albumok itt: ${library}'; + @override String recentlyPlayedIn({required Object library}) => 'Legutóbb lejátszva itt: ${library}'; + @override String mostPlayedIn({required Object library}) => 'Legtöbbször lejátszva itt: ${library}'; + @override String playEpisode({required Object season, required Object episode}) => '${season}. évad, ${episode}. epizód'; + @override String get overview => 'Áttekintés'; + @override String get cast => 'Szereplők'; + @override String get extras => 'Előzetesek és extrák'; + @override String get studio => 'Stúdió'; + @override String get rating => 'Értékelés'; + @override String get movie => 'Film'; + @override String get tvShow => 'TV-sorozat'; + @override String minutesLeft({required Object minutes}) => '${minutes} perc van hátra'; + @override String get moreLikeThis => 'Hasonló tartalmak'; +} + +// Path: errors +class _Translations$errors$hu extends Translations$errors$en { + _Translations$errors$hu._(TranslationsHu root) : this._root = root, super.internal(root); + + final TranslationsHu _root; // ignore: unused_field + + // Translations + @override String searchFailed({required Object error}) => 'Keresés sikertelen: ${error}'; + @override String connectionTimeout({required Object context}) => 'Hálózati időtúllépés a következő betöltésekor: ${context}'; + @override String get connectionFailed => 'Nem sikerült csatlakozni a médiaszerverhez'; + @override String unableToLoad({required Object context}) => 'Nem sikerült betölteni a következőt: ${context}. Próbáld újra.'; + @override String get noClientAvailable => 'Nincs elérhető kliens'; + @override String get pleaseEnterToken => 'Adj meg egy tokent'; + @override String get invalidToken => 'Érvénytelen token'; + @override String failedToVerifyToken({required Object error}) => 'Nem sikerült a token ellenőrzése: ${error}'; + @override String failedToSwitchProfile({required Object displayName}) => 'Nem sikerült átváltani a következő profilra: ${displayName}'; + @override String failedToDeleteProfile({required Object displayName}) => 'Nem sikerült törölni a következőt: ${displayName}'; + @override String get failedToRate => 'Nem sikerült frissíteni az értékelést'; +} + +// Path: libraries +class _Translations$libraries$hu extends Translations$libraries$en { + _Translations$libraries$hu._(TranslationsHu root) : this._root = root, super.internal(root); + + final TranslationsHu _root; // ignore: unused_field + + // Translations + @override String get title => 'Könyvtárak'; + @override String get fallbackTitle => 'Könyvtár'; + @override String get scanLibraryFiles => 'Könyvtárfájlok beolvasása'; + @override String get scanLibrary => 'Könyvtár beolvasása'; + @override String get analyze => 'Elemzés'; + @override String get analyzeLibrary => 'Könyvtár elemzése'; + @override String get refreshMetadata => 'Metaadatok frissítése'; + @override String get emptyTrash => 'Lomtár ürítése'; + @override String emptyingTrash({required Object title}) => 'Lomtár ürítése a következőhöz: "${title}"...'; + @override String trashEmptied({required Object title}) => 'Lomtár kiürítve a következőhöz: "${title}"'; + @override String failedToEmptyTrash({required Object error}) => 'Nem sikerült a lomtár ürítése: ${error}'; + @override String analyzing({required Object title}) => '"${title}" elemzése...'; + @override String analysisStarted({required Object title}) => 'Elemzés elindítva a következőhöz: "${title}"'; + @override String failedToAnalyze({required Object error}) => 'Nem sikerült a könyvtár elemzése: ${error}'; + @override String get noLibrariesFound => 'Nem találhatók könyvtárak'; + @override String get allLibrariesHidden => 'Minden könyvtár el van rejtve'; + @override String hiddenLibrariesCount({required Object count}) => 'Rejtett könyvtárak (${count})'; + @override String get thisLibraryIsEmpty => 'Ez a könyvtár üres'; + @override String get noItemsMatchFilters => 'Nincs az aktív szűrőknek megfelelő elem'; + @override String get resetFilters => 'Szűrők visszaállítása'; + @override String get all => 'Összes'; + @override String get clearAll => 'Összes törlése'; + @override String scanLibraryConfirm({required Object title}) => 'Biztosan be szeretnéd olvasni a következőt: "${title}"?'; + @override String analyzeLibraryConfirm({required Object title}) => 'Biztosan elemezni szeretnéd a következőt: "${title}"?'; + @override String refreshMetadataConfirm({required Object title}) => 'Biztosan frissíteni szeretnéd a metaadatokat a következőhöz: "${title}"?'; + @override String emptyTrashConfirm({required Object title}) => 'Biztosan ki szeretnéd üríteni a lomtárat a következőnél: "${title}"?'; + @override String get manageLibraries => 'Könyvtárak kezelése'; + @override String get sort => 'Rendezés'; + @override String get sortBy => 'Rendezés ez alapján'; + @override String get filters => 'Szűrők'; + @override String get confirmActionMessage => 'Biztosan végre szeretnéd hajtani ezt a műveletet?'; + @override String get showLibrary => 'Könyvtár megjelenítése'; + @override String get hideLibrary => 'Könyvtár elrejtése'; + @override String get libraryOptions => 'Könyvtár beállításai'; + @override String get content => 'könyvtár tartalma'; + @override String get selectLibrary => 'Könyvtár kiválasztása'; + @override String filtersWithCount({required Object count}) => 'Szűrők (${count})'; + @override String get noRecommendations => 'Nincsenek elérhető ajánlások'; + @override String get noCollections => 'Nincsenek gyűjtemények ebben a könyvtárban'; + @override String get noFoldersFound => 'Nem találhatók mappák'; + @override String get folders => 'mappák'; + @override late final _Translations$libraries$tabs$hu tabs = _Translations$libraries$tabs$hu._(_root); + @override late final _Translations$libraries$groupings$hu groupings = _Translations$libraries$groupings$hu._(_root); + @override late final _Translations$libraries$filterCategories$hu filterCategories = _Translations$libraries$filterCategories$hu._(_root); + @override late final _Translations$libraries$sortLabels$hu sortLabels = _Translations$libraries$sortLabels$hu._(_root); +} + +// Path: about +class _Translations$about$hu extends Translations$about$en { + _Translations$about$hu._(TranslationsHu root) : this._root = root, super.internal(root); + + final TranslationsHu _root; // ignore: unused_field + + // Translations + @override String get title => 'Névjegy'; + @override String get openSourceLicenses => 'Nyílt forráskódú licencek'; + @override String versionLabel({required Object version}) => 'Verzió: ${version}'; + @override String get appDescription => 'Gyönyörű Flutter-kliens a Plexhez és a Jellyfinhez'; + @override String get viewLicensesDescription => 'Külső fejlesztésű programkönyvtárak licenceinek megtekintése'; +} + +// Path: serverSelection +class _Translations$serverSelection$hu extends Translations$serverSelection$en { + _Translations$serverSelection$hu._(TranslationsHu root) : this._root = root, super.internal(root); + + final TranslationsHu _root; // ignore: unused_field + + // Translations + @override String noServersFoundForAccount({required Object username, required Object email}) => 'Nem találhatók szerverek ehhez a fiókhoz: ${username} (${email})'; + @override String failedToLoadServers({required Object error}) => 'Nem sikerült a szerverek betöltése: ${error}'; +} + +// Path: hubDetail +class _Translations$hubDetail$hu extends Translations$hubDetail$en { + _Translations$hubDetail$hu._(TranslationsHu root) : this._root = root, super.internal(root); + + final TranslationsHu _root; // ignore: unused_field + + // Translations + @override String get title => 'Cím'; + @override String get releaseYear => 'Kiadási év'; + @override String get dateAdded => 'Hozzáadás dátuma'; + @override String get rating => 'Értékelés'; + @override String get noItemsFound => 'Nem találhatók elemek'; +} + +// Path: logs +class _Translations$logs$hu extends Translations$logs$en { + _Translations$logs$hu._(TranslationsHu root) : this._root = root, super.internal(root); + + final TranslationsHu _root; // ignore: unused_field + + // Translations + @override String get clearLogs => 'Naplók törlése'; + @override String get copyLogs => 'Naplók másolása'; + @override String get uploadLogs => 'Naplók feltöltése'; +} + +// Path: licenses +class _Translations$licenses$hu extends Translations$licenses$en { + _Translations$licenses$hu._(TranslationsHu root) : this._root = root, super.internal(root); + + final TranslationsHu _root; // ignore: unused_field + + // Translations + @override String get relatedPackages => 'Kapcsolódó csomagok'; + @override String get license => 'Licenc'; + @override String licenseNumber({required Object number}) => '${number}. licenc'; + @override String licensesCount({required Object count}) => '${count} licenc'; +} + +// Path: navigation +class _Translations$navigation$hu extends Translations$navigation$en { + _Translations$navigation$hu._(TranslationsHu root) : this._root = root, super.internal(root); + + final TranslationsHu _root; // ignore: unused_field + + // Translations + @override String get libraries => 'Könyvtárak'; + @override String get downloads => 'Letöltések'; + @override String get liveTv => 'Élő TV'; + @override String get explore => 'Böngészés'; +} + +// Path: explore +class _Translations$explore$hu extends Translations$explore$en { + _Translations$explore$hu._(TranslationsHu root) : this._root = root, super.internal(root); + + final TranslationsHu _root; // ignore: unused_field + + // Translations + @override String get title => 'Böngészés'; + @override String get selectSource => 'Forrás kiválasztása'; + @override late final _Translations$explore$rows$hu rows = _Translations$explore$rows$hu._(_root); + @override late final _Translations$explore$status$hu status = _Translations$explore$status$hu._(_root); + @override String episodeCount({required num n}) => (_root.$meta.cardinalResolver ?? PluralResolvers.cardinal('hu'))(n, + one: '${n} epizód', + other: '${n} epizód', + ); + @override String get cast => 'Szereplők'; + @override String get characters => 'Karakterek'; + @override String get addToWatchlist => 'Hozzáadás a Néznivalókhoz'; + @override String get removeFromWatchlist => 'Eltávolítás a Néznivalókból'; + @override String get watchlistUpdateFailed => 'Nem sikerült a Néznivalók frissítése'; + @override String get notInLibrary => 'Nincs a könyvtáradban'; + @override String get inTheseLibraries => 'Ezekben a könyvtárakban'; + @override String get checkingLibrary => 'Könyvtár ellenőrzése...'; + @override String get emptyTitle => 'Még nincs itt semmi'; + @override String emptyMessage({required Object source}) => 'A(z) ${source} forrásból származó sorok itt fognak megjelenni, amint van tartalmuk.'; + @override String searchHint({required Object source}) => 'Keresés itt: ${source}'; + @override String searchEmpty({required Object query}) => 'Nincs találat a következőre: "${query}"'; + @override String searchPrompt({required Object source}) => 'Filmek és sorozatok keresése a következőn: ${source}.'; + @override String get searchFailed => 'A keresés nem sikerült. Ellenőrizd a kapcsolatot és próbáld újra.'; +} + +// Path: liveTv +class _Translations$liveTv$hu extends Translations$liveTv$en { + _Translations$liveTv$hu._(TranslationsHu root) : this._root = root, super.internal(root); + + final TranslationsHu _root; // ignore: unused_field + + // Translations + @override String get title => 'Élő TV'; + @override String get guide => 'Műsorújság'; + @override String get noChannels => 'Nincsenek elérhető csatornák'; + @override String get noDvr => 'Egyik szerveren sincs beállítva DVR'; + @override String get serverUnavailable => 'Az Élő TV szerver nem érhető el.'; + @override String get serverNotConnected => 'Az Élő TV szerver nincs csatlakoztatva.'; + @override String get noPrograms => 'Nincsenek elérhető műsoradatok'; + @override String get liveStreamFailed => 'Nem sikerült elindítani az élő adást'; + @override String get unknownProgram => 'Ismeretlen műsor'; + @override String get unknownHub => 'Ismeretlen'; + @override String get unknownError => 'Ismeretlen hiba'; + @override String channelNumber({required Object number}) => '${number}. csatorna'; + @override String get unknownChannel => 'Ismeretlen csatorna'; + @override String get live => 'ÉLŐ'; + @override String get reloadGuide => 'Műsorújság újratöltése'; + @override String get now => 'Most'; + @override String get today => 'Ma'; + @override String get tomorrow => 'Holnap'; + @override String get midnight => 'Éjfél'; + @override String get overnight => 'Késő éjszaka'; + @override String get morning => 'Reggel'; + @override String get daytime => 'Napközben'; + @override String get evening => 'Este'; + @override String get lateNight => 'Éjszaka'; + @override String get whatsOn => 'Mi megy most?'; + @override String get watchChannel => 'Csatorna nézése'; + @override String get favorites => 'Kedvencek'; + @override String get reorderFavorites => 'Kedvencek rendezése'; + @override String get favoritesLoadFailed => 'Nem sikerült a kedvencek betöltése. Ellenőrizd a kapcsolatot és próbáld újra.'; + @override String get favoritesUpdateFailed => 'Nem sikerült frissíteni a kedvenceket. Ellenőrizd a kapcsolatot, majd próbáld újra.'; + @override String get joinSession => 'Csatlakozás a folyamatban lévő adáshoz'; + @override String watchFromStart({required Object minutes}) => 'Nézés az elejétől (${minutes} perce megy)'; + @override String get watchLive => 'Élő adás nézése'; + @override String get goToLive => 'Ugrás az élő adásra'; + @override String get record => 'Felvétel'; + @override String get recordEpisode => 'Epizód rögzítése'; + @override String get recordSeries => 'Sorozat rögzítése'; + @override String get recordOptions => 'Felvételi beállítások'; + @override String get saveTo => 'Mentés ide'; + @override String get recordings => 'Felvételek'; + @override String get scheduledRecordings => 'Ütemezve'; + @override String get recordingRules => 'Felvételi szabályok'; + @override String get noScheduledRecordings => 'Nincs semmi felvételre ütemezve'; + @override String get manageRecording => 'Felvétel kezelése'; + @override String get cancelRecording => 'Felvétel megszakítása'; + @override String get cancelRecordingTitle => 'Megszakítod ezt a felvételt?'; + @override String cancelRecordingMessage({required Object title}) => 'A(z) ${title} nem kerül rögzítésre.'; + @override String get deleteRule => 'Szabály törlése'; + @override String get deleteRuleTitle => 'Törlöd a felvételi szabályt?'; + @override String deleteRuleMessage({required Object title}) => 'A(z) ${title} jövőbeli epizódjai nem kerülnek rögzítésre.'; + @override String get recordingScheduled => 'Felvétel ütemezve'; + @override String get alreadyScheduled => 'Ez a műsor már ütemezve van'; + @override String get dvrAdminRequired => 'A DVR beállításokhoz adminisztrátori fiók szükséges'; + @override String get recordingFailed => 'Nem sikerült a felvétel ütemezése'; + @override String get recordingTargetMissing => 'Nem sikerült meghatározni a felvételi könyvtárat'; + @override String get recordNotAvailable => 'A felvétel nem érhető el ehhez a műsorhoz'; + @override String get recordingCancelled => 'Felvétel megszakítva'; + @override String get recordingRuleDeleted => 'Felvételi szabály törölve'; + @override String get processRecordingRules => 'Szabályok újraértékelése'; + @override String get recordingInProgress => 'Rögzítés folyamatban'; + @override String recordingsCount({required Object count}) => '${count} ütemezve'; + @override String get editRule => 'Szabály szerkesztése'; + @override String get editRuleAction => 'Szerkesztés'; + @override String get recordingRuleUpdated => 'Felvételi szabály frissítve'; + @override String get guideReloadRequested => 'Műsorújság frissítése kérve'; + @override String get rulesProcessRequested => 'Szabályok újraértékelése kérve'; + @override String get recordShow => 'Műsor rögzítése'; +} + +// Path: collections +class _Translations$collections$hu extends Translations$collections$en { + _Translations$collections$hu._(TranslationsHu root) : this._root = root, super.internal(root); + + final TranslationsHu _root; // ignore: unused_field + + // Translations + @override String get title => 'Gyűjtemények'; + @override String get collection => 'Gyűjtemény'; + @override String get empty => 'A gyűjtemény üres'; + @override String get deleteCollection => 'Gyűjtemény törlése'; + @override String deleteConfirm({required Object title}) => 'Törlöd a következőt: "${title}"? Ez nem vonható vissza.'; + @override String get deleted => 'Gyűjtemény törölve'; + @override String get deleteFailed => 'Nem sikerült a gyűjtemény törlése'; + @override String deleteFailedWithError({required Object error}) => 'Nem sikerült a gyűjtemény törlése: ${error}'; + @override String get selectCollection => 'Gyűjtemény kiválasztása'; + @override String get collectionName => 'Gyűjtemény neve'; + @override String get enterCollectionName => 'Add meg a gyűjtemény nevét'; + @override String get addedToCollection => 'Hozzáadva a gyűjteményhez'; + @override String get errorAddingToCollection => 'Nem sikerült a gyűjteményhez adni'; + @override String get created => 'Gyűjtemény létrehozva'; + @override String get removeFromCollection => 'Eltávolítás a gyűjteményből'; + @override String removeFromCollectionConfirm({required Object title}) => 'Eltávolítod a következőt: "${title}" ebből a gyűjteményből?'; + @override String get removedFromCollection => 'Eltávolítva a gyűjteményből'; + @override String get removeFromCollectionFailed => 'Nem sikerült az eltávolítás a gyűjteményből'; + @override String removeFromCollectionError({required Object error}) => 'Hiba a gyűjteményből való eltávolításkor: ${error}'; + @override String get searchCollections => 'Gyűjtemények keresése...'; +} + +// Path: playlists +class _Translations$playlists$hu extends Translations$playlists$en { + _Translations$playlists$hu._(TranslationsHu root) : this._root = root, super.internal(root); + + final TranslationsHu _root; // ignore: unused_field + + // Translations + @override String get title => 'Lejátszási listák'; + @override String get playlist => 'Lejátszási lista'; + @override String get noPlaylists => 'Nem találhatók lejátszási listák'; + @override String get create => 'Lejátszási lista létrehozása'; + @override String get playlistName => 'Lejátszási lista neve'; + @override String get enterPlaylistName => 'Add meg a lejátszási lista nevét'; + @override String get delete => 'Lejátszási lista törlése'; + @override String get removeItem => 'Eltávolítás a lejátszási listáról'; + @override String get smartPlaylist => 'Okos lejátszási lista'; + @override String itemCount({required Object count}) => '${count} elem'; + @override String get oneItem => '1 elem'; + @override String get emptyPlaylist => 'Ez a lejátszási lista üres'; + @override String get deleteConfirm => 'Törlöd a lejátszási listát?'; + @override String deleteMessage({required Object name}) => 'Biztosan törölni szeretnéd a következőt: "${name}"?'; + @override String get created => 'Lejátszási lista létrehozva'; + @override String get deleted => 'Lejátszási lista törölve'; + @override String get itemAdded => 'Hozzáadva a lejátszási listához'; + @override String get itemRemoved => 'Eltávolítva a lejátszási listáról'; + @override String get selectPlaylist => 'Lejátszási lista kiválasztása'; + @override String get searchPlaylists => 'Lejátszási listák keresése...'; + @override String get errorCreating => 'Nem sikerült a lejátszási lista létrehozása'; + @override String get errorDeleting => 'Nem sikerült a lejátszási lista törlése'; + @override String get errorLoading => 'Nem sikerült a lejátszási listák betöltése'; + @override String get errorAdding => 'Nem sikerült a lejátszási listához adni'; + @override String get errorReordering => 'Nem sikerült átrendezni a lejátszási lista elemét'; + @override String get errorRemoving => 'Nem sikerült az eltávolítás a lejátszási listáról'; +} + +// Path: music +class _Translations$music$hu extends Translations$music$en { + _Translations$music$hu._(TranslationsHu root) : this._root = root, super.internal(root); + + final TranslationsHu _root; // ignore: unused_field + + // Translations + @override String get goToAlbum => 'Ugrás az albumhoz'; + @override String get goToArtist => 'Ugrás az előadóhoz'; + @override String get instantMix => 'Azonnali keverés'; + @override String get playNext => 'Következő lejátszása'; + @override String get addToQueue => 'Hozzáadás a lejátszási sorhoz'; + @override String discNumber({required Object n}) => '${n}. lemez'; + @override String trackCount({required num n}) => (_root.$meta.cardinalResolver ?? PluralResolvers.cardinal('hu'))(n, + one: '${n} zeneszám', + other: '${n} zeneszám', + ); + @override String get nowPlaying => 'Most szól'; + @override String playingFrom({required Object title}) => 'Lejátszás innen: ${title}'; + @override String get queue => 'Lejátszási sor'; + @override String get clearQueue => 'Sor törlése'; + @override String get lyrics => 'Dalszöveg'; + @override String get noLyrics => 'Nincs elérhető dalszöveg'; + @override String get sleepTimer => 'Elalvási időzítő'; + @override String get sleepTimerEndOfTrack => 'Zeneszám vége'; + @override String sleepTimerMinutes({required Object n}) => '${n} perc'; + @override String get stopPlayback => 'Lejátszás leállítása'; + @override String get previousTrack => 'Előző szám'; + @override String get nextTrack => 'Következő szám'; + @override String get repeat => 'Ismétlés'; + @override String get repeatAll => 'Összes ismétlése'; + @override String get repeatOne => 'Egy szám ismétlése'; +} + +// Path: watchTogether +class _Translations$watchTogether$hu extends Translations$watchTogether$en { + _Translations$watchTogether$hu._(TranslationsHu root) : this._root = root, super.internal(root); + + final TranslationsHu _root; // ignore: unused_field + + // Translations + @override String get title => 'Watch Together (Közös nézés)'; + @override String get description => 'Nézz tartalmat szinkronban barátaiddal és családoddal'; + @override String get createSession => 'Munkamenet létrehozása'; + @override String get creating => 'Létrehozás...'; + @override String get joinSession => 'Csatlakozás munkamenethez'; + @override String get joining => 'Csatlakozás...'; + @override String get controlMode => 'Vezérlési mód'; + @override String get controlModeQuestion => 'Ki vezérelheti a lejátszást?'; + @override String get hostOnly => 'Csak a házigazda'; + @override String get anyone => 'Bárki'; + @override String get hostingSession => 'Munkamenet indítása'; + @override String get inSession => 'Munkamenetben'; + @override String get sessionCode => 'Munkamenet kódja'; + @override String get openSessionControls => 'Watch Together munkamenet-vezérlők megnyitása'; + @override String get copySessionCode => 'Munkamenet-kód másolása'; + @override String get hostControlsPlayback => 'A házigazda vezérli a lejátszást'; + @override String get anyoneCanControl => 'Bárki vezérelheti a lejátszást'; + @override String get hostControls => 'A házigazda vezérel'; + @override String get anyoneControls => 'Bárki vezérelheti'; + @override String get participants => 'Résztvevők'; + @override String get host => 'Házigazda'; + @override String get hostBadge => 'HÁZIGAZDA'; + @override String get youAreHost => 'Te vagy a házigazda'; + @override String get watchingWithOthers => 'Nézés másokkal'; + @override String get endSession => 'Munkamenet befejezése'; + @override String get leaveSession => 'Munkamenet elhagyása'; + @override String get endSessionQuestion => 'Befejezed a munkamenetet?'; + @override String get leaveSessionQuestion => 'Elhagyod a munkamenetet?'; + @override String get endSessionConfirm => 'Ezzel minden résztvevő számára véget ér a munkamenet.'; + @override String get leaveSessionConfirm => 'Eltávolításra kerülsz a munkamenetből.'; + @override String get endSessionConfirmOverlay => 'Ezzel minden résztvevő számára véget ér a közös nézés.'; + @override String get leaveSessionConfirmOverlay => 'Kilépsz a közös nézésből.'; + @override String get end => 'Befejezés'; + @override String get leave => 'Kilépés'; + @override String get syncing => 'Szinkronizálás...'; + @override String get joinWatchSession => 'Csatlakozás közös nézéshez'; + @override String get enterCodeHint => 'Add meg az 5 karakteres kódot'; + @override String get pasteFromClipboard => 'Beillesztés a vágólapról'; + @override String get pleaseEnterCode => 'Adj meg egy munkamenetkódot'; + @override String get codeMustBe5Chars => 'A munkamenetkódnak 5 karakterből kell állnia'; + @override String get joinInstructions => 'Add meg a házigazda kódját a csatlakozáshoz.'; + @override String get failedToCreate => 'Nem sikerült a munkamenet létrehozása'; + @override String get failedToJoin => 'Nem sikerült csatlakozni a munkamenethez'; + @override String get sessionCodeCopied => 'A munkamenetkód a vágólapra másolva'; + @override String get relayUnreachable => 'A relészerver nem érhető el. Az internetszolgáltató blokkolása megakadályozhatja a közös nézést.'; + @override String get reconnectingToHost => 'Újracsatlakozás a házigazdához...'; + @override String get currentPlayback => 'Jelenlegi lejátszás'; + @override String get joinCurrentPlayback => 'Csatlakozás a jelenlegi lejátszáshoz'; + @override String get joinCurrentPlaybackDescription => 'Visszatérés ahhoz, amit a házigazda éppen néz'; + @override String get failedToOpenCurrentPlayback => 'Nem sikerült megnyitni a jelenlegi lejátszást'; + @override String participantJoined({required Object name}) => '${name} csatlakozott'; + @override String participantLeft({required Object name}) => '${name} kilépett'; + @override String participantPaused({required Object name}) => '${name} szüneteltette a lejátszást'; + @override String participantResumed({required Object name}) => '${name} folytatta a lejátszást'; + @override String participantSeeked({required Object name}) => '${name} módosította a lejátszási pozíciót'; + @override String participantBuffering({required Object name}) => '${name} pufferel'; + @override String participantNeedsUpdate({required Object name}) => '${name} régebbi alkalmazásverziót használ — a szinkronizálás nem érhető el'; + @override String resumingWithout({required Object name}) => 'Folytatás a következő nélkül: ${name}'; + @override String get waitingForParticipants => 'Várakozás, amíg a többieknél betöltődik a tartalom...'; + @override String waitingForName({required Object name}) => 'Várakozás: ${name}...'; + @override String get recentRooms => 'Legutóbbi szobák'; + @override String get renameRoom => 'Szoba átnevezése'; + @override String get removeRoom => 'Eltávolítás'; + @override String get guestSwitchUnavailable => 'Nem sikerült a váltás — a szerver nem érhető el szinkronizáláshoz'; + @override String get guestSwitchFailed => 'Nem sikerült a váltás — a tartalom nem található ezen a szerveren'; +} + +// Path: downloads +class _Translations$downloads$hu extends Translations$downloads$en { + _Translations$downloads$hu._(TranslationsHu root) : this._root = root, super.internal(root); + + final TranslationsHu _root; // ignore: unused_field + + // Translations + @override String get title => 'Letöltések'; + @override String get manage => 'Kezelés'; + @override String get tvShows => 'TV-sorozatok'; + @override String get movies => 'Filmek'; + @override String get music => 'Zene'; + @override String tracksQueued({required Object count}) => '${count} zeneszám letöltésre sorba állítva'; + @override String get noDownloads => 'Még nincsenek letöltések'; + @override String get noDownloadsDescription => 'A letöltött tartalmak itt jelennek meg az offline megtekintéshez'; + @override String get downloadNow => 'Letöltés'; + @override String get deleteDownload => 'Letöltés törlése'; + @override String get retryDownload => 'Letöltés újrapróbálása'; + @override String get downloadQueued => 'Letöltés sorba állítva'; + @override String get downloadResumed => 'Letöltés folytatva'; + @override String get serverErrorBitrate => 'Szerverhiba: a fájl meghaladhatja a távoli bitrátakorlátot'; + @override String episodesQueued({required Object count}) => '${count} epizód letöltésre sorba állítva'; + @override String get downloadDeleted => 'Letöltés törölve'; + @override String deleteConfirm({required Object title}) => 'Törlöd a következőt: "${title}" erről az eszközről?'; + @override String get cancelledDownloadTitle => 'Megszakított letöltés'; + @override String get cancelledDownloadMessage => 'Ez a letöltés meg lett szakítva. Mit szeretnél tenni?'; + @override String get allEpisodesAlreadyDownloaded => 'Minden epizód le van töltve'; + @override String get resumeDownload => 'Letöltés folytatása'; + @override String get cancelledDownload => 'Megszakított letöltés'; + @override String syncingFile({required Object file, required Object status}) => '${file} (${status} szinkronizálása)'; + @override String downloadedFileClickToComplete({required Object file}) => 'Letöltve: ${file} - Kattints a befejezéshez'; + @override String get partialDownloadClickToComplete => 'Részben letöltve - Kattints a befejezéshez'; + @override String get deleting => 'Törlés...'; + @override String deletingWithProgress({required Object title, required Object current, required Object total}) => '${title} törlése... (${current}/${total})'; + @override String get queuedTooltip => 'Sorban áll'; + @override String queuedFilesTooltip({required Object files}) => 'Sorba állítva: ${files}'; + @override String get downloadingTooltip => 'Letöltés...'; + @override String downloadingFilesTooltip({required Object files}) => 'Letöltés alatt: ${files}'; + @override String get noDownloadsTree => 'Nincsenek letöltések'; + @override String get pauseAll => 'Összes szüneteltetése'; + @override String get resumeAll => 'Összes folytatása'; + @override String get deleteAll => 'Összes törlése'; + @override String get selectVersion => 'Verzió kiválasztása'; + @override String get allEpisodes => 'Minden epizód'; + @override String get unwatchedOnly => 'Csak a nem látottak'; + @override String nextNUnwatched({required Object count}) => 'A következő ${count} nem látott epizód'; + @override String get customAmount => 'Egyéni mennyiség...'; + @override String get includeSpecials => 'Különkiadások is'; + @override String get howManyEpisodes => 'Hány epizód?'; + @override String get invalidEpisodeCount => 'Adj meg egy érvényes epizódszámot.'; + @override String get keepSynced => 'Szinkronban tartás'; + @override String get downloadOnce => 'Egyszeri letöltés'; + @override String keepNUnwatched({required Object count}) => '${count} nem látott epizód megtartása'; + @override String get editSyncRule => 'Szinkronizálási szabály szerkesztése'; + @override String get removeSyncRule => 'Szinkronizálási szabály eltávolítása'; + @override String removeSyncRuleConfirm({required Object title}) => 'Leállítod a(z) "${title}" szinkronizálását? A letöltött epizódok megmaradnak.'; + @override String syncRuleCreated({required Object count}) => 'Szinkronizálási szabály létrehozva — ${count} nem látott epizód megtartása'; + @override String get syncRuleUpdated => 'Szinkronizálási szabály frissítve'; + @override String get syncRuleRemoved => 'Szinkronizálási szabály eltávolítva'; + @override String syncedNewEpisodes({required Object count, required Object title}) => '${count} új epizód szinkronizálva a következőhöz: ${title}'; + @override String get activeSyncRules => 'Szinkronizálási szabályok'; + @override String get noSyncRules => 'Nincsenek szinkronizálási szabályok'; + @override String get manageSyncRule => 'Szinkronizálás kezelése'; + @override String get editEpisodeCount => 'Epizódszám'; + @override String get editSyncFilter => 'Szinkronizálási szűrő'; + @override String get syncAllItems => 'Minden elem szinkronizálása'; + @override String get syncUnwatchedItems => 'Nem látott elemek szinkronizálása'; + @override String syncRuleServerContext({required Object server, required Object status}) => 'Szerver: ${server} • ${status}'; + @override String get syncRuleAvailable => 'Elérhető'; + @override String get syncRuleOffline => 'Offline'; + @override String get syncRuleSignInRequired => 'Bejelentkezés szükséges'; + @override String get syncRuleNotAvailableForProfile => 'Nem érhető el a jelenlegi profilhoz'; + @override String get syncRuleUnknownServer => 'Ismeretlen szerver'; + @override String get syncRuleListCreated => 'Szinkronizálási szabály létrehozva'; +} + +// Path: shaders +class _Translations$shaders$hu extends Translations$shaders$en { + _Translations$shaders$hu._(TranslationsHu root) : this._root = root, super.internal(root); + + final TranslationsHu _root; // ignore: unused_field + + // Translations + @override String get title => 'Shaderek'; + @override String get noShaderDescription => 'Nincs videójavítás'; + @override String get nvscalerDescription => 'NVIDIA képskálázás az élesebb videóért'; + @override String get artcnnVariantNeutral => 'Semleges'; + @override String get artcnnVariantDenoise => 'Zajcsökkentés'; + @override String get artcnnVariantDenoiseSharpen => 'Zajcsökkentés + Élesítés'; + @override String get qualityFast => 'Gyors'; + @override String get qualityHQ => 'Kiváló minőség'; + @override String get mode => 'Mód'; + @override String get importShader => 'Shader importálása'; + @override String get customShaderDescription => 'Egyéni GLSL shader'; + @override String get shaderImported => 'Shader importálva'; + @override String get shaderImportFailed => 'Nem sikerült a shader importálása'; + @override String get deleteShader => 'Shader törlése'; + @override String deleteShaderConfirm({required Object name}) => 'Törlöd a következőt: "${name}"?'; +} + +// Path: companionRemote +class _Translations$companionRemote$hu extends Translations$companionRemote$en { + _Translations$companionRemote$hu._(TranslationsHu root) : this._root = root, super.internal(root); + + final TranslationsHu _root; // ignore: unused_field + + // Translations + @override String get title => 'Kísérőtávirányító'; + @override String connectedTo({required Object name}) => 'Csatlakoztatva a következőhöz: ${name}'; + @override String get unknownDevice => 'Ismeretlen eszköz'; + @override late final _Translations$companionRemote$session$hu session = _Translations$companionRemote$session$hu._(_root); + @override late final _Translations$companionRemote$pairing$hu pairing = _Translations$companionRemote$pairing$hu._(_root); + @override late final _Translations$companionRemote$remote$hu remote = _Translations$companionRemote$remote$hu._(_root); + @override late final _Translations$companionRemote$errors$hu errors = _Translations$companionRemote$errors$hu._(_root); +} + +// Path: videoSettings +class _Translations$videoSettings$hu extends Translations$videoSettings$en { + _Translations$videoSettings$hu._(TranslationsHu root) : this._root = root, super.internal(root); + + final TranslationsHu _root; // ignore: unused_field + + // Translations + @override String get playbackSpeed => 'Lejátszási sebesség'; + @override String get normalSpeed => 'Normál'; + @override String sleepTimerActive({required Object duration}) => 'Aktív (${duration})'; + @override String get zoom => 'Nagyítás'; + @override String get sleepTimer => 'Elalvási időzítő'; + @override String get audioSync => 'Hang szinkronizálása'; + @override String get subtitleSync => 'Felirat szinkronizálása'; + @override String get hdr => 'HDR'; + @override String get audioOutput => 'Hangkimenet'; + @override String get performanceOverlay => 'Teljesítményadatok'; + @override String get audioPassthrough => 'Hangtovábbítás (passthrough)'; + @override String get audioNormalization => 'Hangerő normalizálása'; + @override String get audioDownmix => 'Lekeverés sztereóra'; +} + +// Path: performanceOverlay +class _Translations$performanceOverlay$hu extends Translations$performanceOverlay$en { + _Translations$performanceOverlay$hu._(TranslationsHu root) : this._root = root, super.internal(root); + + final TranslationsHu _root; // ignore: unused_field + + // Translations + @override String get color => 'Szín'; + @override String get performance => 'Teljesítmény'; + @override String get buffer => 'Puffer'; + @override String get app => 'Alkalmazás'; + @override String get decoder => 'Dekóder'; + @override String get rawDecoder => 'Nyers dekóder'; + @override String get tunneling => 'Alagutazás'; + @override String get aspect => 'Méretarány'; + @override String get rotation => 'Forgatás'; + @override String get dvSource => 'DV-forrás'; + @override String get dvPath => 'DV-útvonal'; + @override String get p7Conversion => 'P7-átalakítás'; + @override String get sampleRate => 'Mintavételezési frekvencia'; + @override String get pixelFormat => 'Képpontformátum'; + @override String get hwFormat => 'Hardverformátum'; + @override String get matrix => 'Mátrix'; + @override String get primaries => 'Elsődleges színek'; + @override String get transfer => 'Átvitel'; + @override String get renderFps => 'Renderelési FPS'; + @override String get displayFps => 'Kijelző-FPS'; + @override String get avSync => 'A/V-szinkron'; + @override String get dropped => 'Eldobva'; + @override String get dvRpus => 'DV RPU-k'; + @override String get dvRpuAverage => 'DV RPU-átlag'; + @override String get dvSampleAverage => 'DV-mintaátlag'; + @override String get maxLuma => 'Maximális luma'; + @override String get minLuma => 'Minimális luma'; + @override String get maxCll => 'MaxCLL'; + @override String get maxFall => 'MaxFALL'; + @override String get cacheUsed => 'Használt gyorsítótár'; + @override String get cacheLimit => 'Gyorsítótár korlátja'; + @override String get speed => 'Sebesség'; + @override String get player => 'Lejátszó'; + @override String get memory => 'Memória'; + @override String get uiFps => 'Felület-FPS'; +} + +// Path: externalPlayer +class _Translations$externalPlayer$hu extends Translations$externalPlayer$en { + _Translations$externalPlayer$hu._(TranslationsHu root) : this._root = root, super.internal(root); + + final TranslationsHu _root; // ignore: unused_field + + // Translations + @override String get title => 'Külső lejátszó'; + @override String get useExternalPlayer => 'Külső lejátszó használata'; + @override String get useExternalPlayerDescription => 'Videók megnyitása egy másik alkalmazásban'; + @override String get selectPlayer => 'Lejátszó kiválasztása'; + @override String get customPlayers => 'Egyéni lejátszók'; + @override String get systemDefault => 'Rendszer alapértelmezése'; + @override String get addCustomPlayer => 'Egyéni lejátszó hozzáadása'; + @override String get playerName => 'Lejátszó neve'; + @override String get playerNameHint => 'Saját lejátszó'; + @override String get playerCommand => 'Parancs'; + @override String get playerPackage => 'Csomagnév'; + @override String get playerUrlScheme => 'URL-séma'; + @override String get off => 'Ki'; + @override String get launchFailed => 'Nem sikerült megnyitni a külső lejátszót'; + @override String appNotInstalled({required Object name}) => 'A(z) ${name} nincs telepítve'; + @override String get playInExternalPlayer => 'Lejátszás külső lejátszóban'; +} + +// Path: metadataEdit +class _Translations$metadataEdit$hu extends Translations$metadataEdit$en { + _Translations$metadataEdit$hu._(TranslationsHu root) : this._root = root, super.internal(root); + + final TranslationsHu _root; // ignore: unused_field + + // Translations + @override String get editMetadata => 'Szerkesztés...'; + @override String get screenTitle => 'Metaadatok szerkesztése'; + @override String get basicInfo => 'Alapinformációk'; + @override String get artwork => 'Borítók és képek'; + @override String get advancedSettings => 'Haladó beállítások'; + @override String get title => 'Cím'; + @override String get sortTitle => 'Rendezési cím'; + @override String get originalTitle => 'Eredeti cím'; + @override String get releaseDate => 'Bemutató dátuma'; + @override String get contentRating => 'Korhatár-besorolás'; + @override String get studio => 'Stúdió'; + @override String get tagline => 'Jelmondat'; + @override String get summary => 'Összefoglaló'; + @override String get poster => 'Poszter'; + @override String get background => 'Háttér'; + @override String get logo => 'Logó'; + @override String get squareArt => 'Négyzetes kép'; + @override String get selectPoster => 'Poszter kiválasztása'; + @override String get selectBackground => 'Háttér kiválasztása'; + @override String get selectLogo => 'Logó kiválasztása'; + @override String get selectSquareArt => 'Négyzetes kép kiválasztása'; + @override String get fromUrl => 'URL-ről'; + @override String get uploadFile => 'Fájl feltöltése'; + @override String get enterImageUrl => 'Add meg a kép URL-címét'; + @override String get imageUrl => 'Kép URL-címe'; + @override String get metadataUpdated => 'Metaadatok frissítve'; + @override String get metadataUpdateFailed => 'Nem sikerült a metaadatok frissítése'; + @override String get artworkUpdated => 'Képek frissítve'; + @override String get artworkUpdateFailed => 'Nem sikerült a képek frissítése'; + @override String get noArtworkAvailable => 'Nincsenek elérhető képek'; + @override String artworkOption({required Object index}) => '${index}. képváltozat'; + @override String selectedArtworkOption({required Object index}) => '${index}. képváltozat, kiválasztva'; + @override String get notSet => 'Nincs beállítva'; + @override String get libraryDefault => 'Könyvtári alapértelmezés'; + @override String get accountDefault => 'Fiók alapértelmezése'; + @override String get seriesDefault => 'Sorozat alapértelmezése'; + @override String get episodeSorting => 'Epizódok rendezése'; + @override String get oldestFirst => 'Legrégebbi elöl'; + @override String get newestFirst => 'Legújabb elöl'; + @override String get keep => 'Megtartás'; + @override String get allEpisodes => 'Minden epizód'; + @override String latestEpisodes({required Object count}) => 'Legutóbbi ${count} epizód'; + @override String get latestEpisode => 'Legutóbbi epizód'; + @override String episodesAddedPastDays({required Object count}) => 'Az elmúlt ${count} napban hozzáadott epizódok'; + @override String get deleteAfterPlaying => 'Epizódok törlése lejátszás után'; + @override String get never => 'Soha'; + @override String get afterADay => 'Egy nap után'; + @override String get afterAWeek => 'Egy hét után'; + @override String get afterAMonth => 'Egy hónap után'; + @override String get onNextRefresh => 'A következő frissítéskor'; + @override String get seasons => 'Évadok'; + @override String get show => 'Megjelenítés'; + @override String get hide => 'Elrejtés'; + @override String get episodeOrdering => 'Epizódok sorrendje'; + @override String get tmdbAiring => 'The Movie Database (sugárzási sorrend)'; + @override String get tvdbAiring => 'TheTVDB (sugárzási sorrend)'; + @override String get tvdbAbsolute => 'TheTVDB (abszolút sorrend)'; + @override String get metadataLanguage => 'Metaadatok nyelve'; + @override String get useOriginalTitle => 'Eredeti cím használata'; + @override String get preferredAudioLanguage => 'Elsődleges hangnyelv'; + @override String get preferredSubtitleLanguage => 'Elsődleges feliratnyelv'; + @override String get subtitleMode => 'Automatikus feliratválasztási mód'; + @override String get manuallySelected => 'Kézzel kiválasztva'; + @override String get shownWithForeignAudio => 'Idegen nyelvű hang esetén megjelenítve'; + @override String get alwaysEnabled => 'Mindig engedélyezve'; + @override String get tags => 'Címkék'; + @override String get addTag => 'Címke hozzáadása'; + @override String get genre => 'Műfaj'; + @override String get director => 'Rendező'; + @override String get writer => 'Író'; + @override String get producer => 'Producer'; + @override String get country => 'Ország'; + @override String get collection => 'Gyűjtemény'; + @override String get label => 'Kiadó'; + @override String get style => 'Stílus'; + @override String get mood => 'Hangulat'; +} + +// Path: matchScreen +class _Translations$matchScreen$hu extends Translations$matchScreen$en { + _Translations$matchScreen$hu._(TranslationsHu root) : this._root = root, super.internal(root); + + final TranslationsHu _root; // ignore: unused_field + + // Translations + @override String get match => 'Párosítás...'; + @override String get fixMatch => 'Párosítás javítása...'; + @override String get unmatch => 'Párosítás megszüntetése'; + @override String get unmatchConfirm => 'Törlöd ezt a párosítást? A Plex párosítatlanként kezeli az újrapárosításig.'; + @override String get unmatchSuccess => 'Párosítás megszüntetve'; + @override String get unmatchFailed => 'Nem sikerült a párosítás megszüntetése'; + @override String get matchApplied => 'Párosítás alkalmazva'; + @override String get matchFailed => 'Nem sikerült a párosítás alkalmazása'; + @override String get titleHint => 'Cím'; + @override String get yearHint => 'Év'; + @override String get search => 'Keresés'; + @override String get noMatchesFound => 'Nincsenek egyezések'; +} + +// Path: serverTasks +class _Translations$serverTasks$hu extends Translations$serverTasks$en { + _Translations$serverTasks$hu._(TranslationsHu root) : this._root = root, super.internal(root); + + final TranslationsHu _root; // ignore: unused_field + + // Translations + @override String get title => 'Szerverfeladatok'; + @override String get failedToLoad => 'Nem sikerült a feladatok betöltése'; + @override String get noTasks => 'Nincsenek futó feladatok'; +} + +// Path: trakt +class _Translations$trakt$hu extends Translations$trakt$en { + _Translations$trakt$hu._(TranslationsHu root) : this._root = root, super.internal(root); + + final TranslationsHu _root; // ignore: unused_field + + // Translations + @override String get title => 'Trakt'; + @override String get connected => 'Csatlakoztatva'; + @override String connectedAs({required Object username}) => '@${username} néven csatlakoztatva'; + @override String get disconnectConfirm => 'Leválasztod a Trakt-fiókot?'; + @override String get disconnectConfirmBody => 'A Plezy nem küld több eseményt a Traktnak. Bármikor újracsatlakozhatsz.'; + @override String get scrobble => 'Valós idejű scrobbling'; + @override String get scrobbleDescription => 'Lejátszási, szüneteltetési és leállítási események küldése a Traktnak lejátszás közben.'; + @override String get watchedSync => 'Megtekintési állapot szinkronizálása'; + @override String get watchedSyncDescription => 'Ha egy elemet megtekintettként jelölsz meg a Plezyben, a Trakt is megtekintettként jelöli.'; +} + +// Path: seerr +class _Translations$seerr$hu extends Translations$seerr$en { + _Translations$seerr$hu._(TranslationsHu root) : this._root = root, super.internal(root); + + final TranslationsHu _root; // ignore: unused_field + + // Translations + @override String get title => 'Seerr'; + @override String get connectTitle => 'Seerr csatlakoztatása'; + @override String get serverUrl => 'Szerver URL-címe'; + @override String get serverUrlHelper => 'A Seerr példányod címe'; + @override String get checkServer => 'Folytatás'; + @override String get signInWithJellyfin => 'Bejelentkezés Jellyfinnel'; + @override String get signInWithEmby => 'Bejelentkezés Emby-vel'; + @override String get signInWithLocal => 'Helyi fiók használata'; + @override String get email => 'E-mail'; + @override String get noSignInMethods => 'Ez a Seerr példány nem kínál olyan bejelentkezési módot, amit a Plezy támogat.'; + @override String get instance => 'Példány'; + @override String get disconnectConfirm => 'Leválasztod a Seerr-kapcsolatot?'; + @override String get disconnectConfirmBody => 'A Plezy elfelejti ezt a Seerr példányt. Bármikor újracsatlakozhatsz.'; + @override String get request => 'Igénylés'; + @override String get request4k => 'Igénylés 4K-ban'; + @override String get seasons => 'Évadok'; + @override String get allSeasons => 'Minden évad'; + @override String get advancedOptions => 'Haladó'; + @override String get destinationServer => 'Célszerver'; + @override String get qualityProfile => 'Minőségi profil'; + @override String get rootFolder => 'Gyökérmappa'; + @override String get languageProfile => 'Nyelvi profil'; + @override String get requestSubmitted => 'Igénylés elküldve'; + @override String requestFailed({required Object error}) => 'Az igénylés nem sikerült: ${error}'; + @override String get requestsLoadFailed => 'Nem sikerült betölteni az igénylési opciókat'; + @override String get nothingToRequest => 'Minden elem már elérhető vagy igényelve van.'; + @override String get statusAvailable => 'Elérhető'; + @override String get statusPartiallyAvailable => 'Részben elérhető'; + @override String get statusRequested => 'Igényelve'; + @override String get statusProcessing => 'Feldolgozás alatt'; +} + +// Path: services +class _Translations$services$hu extends Translations$services$en { + _Translations$services$hu._(TranslationsHu root) : this._root = root, super.internal(root); + + final TranslationsHu _root; // ignore: unused_field + + // Translations + @override String get title => 'Szolgáltatások'; + @override String get hubSubtitle => 'Megtekintési haladás szinkronizálása és új tartalmak igénylése.'; + @override String get notConnected => 'Nincs csatlakoztatva'; + @override String connectedAs({required Object username}) => '@${username} néven csatlakoztatva'; + @override String get scrobble => 'Haladás automatikus követése'; + @override String get scrobbleDescription => 'Lista frissítése, amikor befejezel egy epizódot vagy filmet.'; + @override String disconnectConfirm({required Object service}) => 'Leválasztod a(z) ${service} szolgáltatást?'; + @override String disconnectConfirmBody({required Object service}) => 'A Plezy nem frissíti többé a(z) ${service} adatait. Bármikor újracsatlakozhatsz.'; + @override String connectFailed({required Object service}) => 'Nem sikerült csatlakozni a következőhöz: ${service}. Próbáld újra.'; + @override late final _Translations$services$names$hu names = _Translations$services$names$hu._(_root); + @override late final _Translations$services$deviceCode$hu deviceCode = _Translations$services$deviceCode$hu._(_root); + @override late final _Translations$services$oauthProxy$hu oauthProxy = _Translations$services$oauthProxy$hu._(_root); + @override late final _Translations$services$libraryFilter$hu libraryFilter = _Translations$services$libraryFilter$hu._(_root); +} + +// Path: addServer +class _Translations$addServer$hu extends Translations$addServer$en { + _Translations$addServer$hu._(TranslationsHu root) : this._root = root, super.internal(root); + + final TranslationsHu _root; // ignore: unused_field + + // Translations + @override String get addJellyfinTitle => 'Jellyfin szerver hozzáadása'; + @override String get serverUrls => 'Szerver URL-címei'; + @override String get serverUrlsHelper => 'Több URL is megadható, vesszővel elválasztva.'; + @override String get findServer => 'Szerver keresése'; + @override String get searchingLocalServers => 'Helyi Jellyfin-szerverek keresése...'; + @override String get localServers => 'Helyi Jellyfin-szerverek'; + @override String get username => 'Felhasználónév'; + @override String get password => 'Jelszó'; + @override String get signIn => 'Bejelentkezés'; + @override String get change => 'Módosítás'; + @override String get required => 'Kötelező'; + @override String couldNotReachServer({required Object error}) => 'Nem sikerült elérni a szervert: ${error}'; + @override String signInFailed({required Object error}) => 'A bejelentkezés nem sikerült: ${error}'; + @override String quickConnectFailed({required Object error}) => 'A Quick Connect használata nem sikerült: ${error}'; + @override String get addPlexTitle => 'Bejelentkezés Plexszel'; + @override String get pinExpired => 'A PIN-kód a bejelentkezés előtt lejárt. Próbáld újra.'; + @override String failedToRegisterAccount({required Object error}) => 'Nem sikerült a fiók regisztrálása: ${error}'; + @override String get enterJellyfinUrlError => 'Add meg a Jellyfin szervered URL-jét'; + @override String get addConnectionTitle => 'Kapcsolat hozzáadása'; + @override String addConnectionTitleScoped({required Object name}) => 'Hozzáadás a következőhöz: ${name}'; + @override String get signInWithPlexCard => 'Bejelentkezés Plexszel'; + @override String get signInWithPlexCardSubtitle => 'Eszköz engedélyezése. A megosztott szerverek hozzáadásra kerülnek.'; + @override String get signInWithPlexCardSubtitleScoped => 'Plex-fiók engedélyezése. A Plex Home-felhasználókból profilok lesznek.'; + @override String get connectToJellyfinCard => 'Csatlakozás Jellyfinhez'; + @override String get connectToJellyfinCardSubtitle => 'Add meg a szerver URL-jét, felhasználónevedet és jelszavadat.'; + @override String connectToJellyfinCardSubtitleScoped({required Object name}) => 'Bejelentkezés egy Jellyfin-szerverre. Hozzárendelés ehhez: ${name}.'; + @override String get borrowFromAnotherProfile => 'Kapcsolat használata másik profilból'; + @override String get borrowFromAnotherProfileSubtitle => 'Egy másik profil kapcsolatának használata. A PIN-kóddal védett profilokhoz PIN-kód szükséges.'; +} + +// Path: hotkeys.actions +class _Translations$hotkeys$actions$hu extends Translations$hotkeys$actions$en { + _Translations$hotkeys$actions$hu._(TranslationsHu root) : this._root = root, super.internal(root); + + final TranslationsHu _root; // ignore: unused_field + + // Translations + @override String get playPause => 'Lejátszás/Szünet'; + @override String get volumeUp => 'Hangerő fel'; + @override String get volumeDown => 'Hangerő le'; + @override String seekForward({required Object seconds}) => 'Tekerés előre (${seconds} mp)'; + @override String seekBackward({required Object seconds}) => 'Tekerés hátra (${seconds} mp)'; + @override String get fullscreenToggle => 'Teljes képernyős mód váltása'; + @override String get muteToggle => 'Némítás be- és kikapcsolása'; + @override String get subtitleToggle => 'Feliratok be- és kikapcsolása'; + @override String get audioTrackNext => 'Következő hangsáv'; + @override String get subtitleTrackNext => 'Következő feliratsáv'; + @override String get chapterNext => 'Következő fejezet'; + @override String get chapterPrevious => 'Előző fejezet'; + @override String get episodeNext => 'Következő epizód'; + @override String get episodePrevious => 'Előző epizód'; + @override String get speedIncrease => 'Sebesség növelése'; + @override String get speedDecrease => 'Sebesség csökkentése'; + @override String get speedReset => 'Sebesség alaphelyzetbe állítása'; + @override String get zoomIn => 'Nagyítás'; + @override String get zoomOut => 'Kicsinyítés'; + @override String get zoomReset => 'Nagyítás alaphelyzetbe állítása'; + @override String get subSeekNext => 'Ugrás a következő feliratra'; + @override String get subSeekPrev => 'Ugrás az előző feliratra'; + @override String get shaderToggle => 'Shaderek be- és kikapcsolása'; + @override String get skipMarker => 'Intró/stáblista átugrása'; + @override String get screenshot => 'Képernyőkép készítése'; +} + +// Path: videoControls.pipErrors +class _Translations$videoControls$pipErrors$hu extends Translations$videoControls$pipErrors$en { + _Translations$videoControls$pipErrors$hu._(TranslationsHu root) : this._root = root, super.internal(root); + + final TranslationsHu _root; // ignore: unused_field + + // Translations + @override String get androidVersion => 'Android 8.0 vagy újabb szükséges'; + @override String get iosVersion => 'iOS 15.0 vagy újabb szükséges'; + @override String get permissionDisabled => 'A kép a képben mód le van tiltva. Engedélyezd a rendszerbeállításokban.'; + @override String get notSupported => 'Az eszköz nem támogatja a kép a képben módot'; + @override String get voSwitchFailed => 'Nem sikerült átváltani a videókimenetet a kép a képben módhoz'; + @override String get failed => 'Nem sikerült elindítani a kép a képben módot'; + @override String unknown({required Object error}) => 'Hiba történt: ${error}'; +} + +// Path: libraries.tabs +class _Translations$libraries$tabs$hu extends Translations$libraries$tabs$en { + _Translations$libraries$tabs$hu._(TranslationsHu root) : this._root = root, super.internal(root); + + final TranslationsHu _root; // ignore: unused_field + + // Translations + @override String get recommended => 'Ajánlott'; + @override String get browse => 'Böngészés'; + @override String get collections => 'Gyűjtemények'; + @override String get playlists => 'Lejátszási listák'; +} + +// Path: libraries.groupings +class _Translations$libraries$groupings$hu extends Translations$libraries$groupings$en { + _Translations$libraries$groupings$hu._(TranslationsHu root) : this._root = root, super.internal(root); + + final TranslationsHu _root; // ignore: unused_field + + // Translations + @override String get title => 'Csoportosítás'; + @override String get all => 'Összes'; + @override String get movies => 'Filmek'; + @override String get shows => 'TV-sorozatok'; + @override String get seasons => 'Évadok'; + @override String get episodes => 'Epizódok'; + @override String get artists => 'Előadók'; + @override String get albums => 'Albumok'; + @override String get tracks => 'Zeneszámok'; + @override String get folders => 'Mappák'; +} + +// Path: libraries.filterCategories +class _Translations$libraries$filterCategories$hu extends Translations$libraries$filterCategories$en { + _Translations$libraries$filterCategories$hu._(TranslationsHu root) : this._root = root, super.internal(root); + + final TranslationsHu _root; // ignore: unused_field + + // Translations + @override String get genre => 'Műfaj'; + @override String get year => 'Év'; + @override String get contentRating => 'Korhatár-besorolás'; + @override String get tag => 'Címke'; + @override String get unwatched => 'Nem látott'; + @override String get unplayed => 'Nem lejátszott'; + @override String get favorites => 'Kedvencek'; +} + +// Path: libraries.sortLabels +class _Translations$libraries$sortLabels$hu extends Translations$libraries$sortLabels$en { + _Translations$libraries$sortLabels$hu._(TranslationsHu root) : this._root = root, super.internal(root); + + final TranslationsHu _root; // ignore: unused_field + + // Translations + @override String get title => 'Cím'; + @override String get dateAdded => 'Hozzáadás dátuma'; + @override String get releaseDate => 'Bemutató dátuma'; + @override String get rating => 'Értékelés'; + @override String get communityRating => 'Közösségi értékelés'; + @override String get criticRating => 'Kritikusi értékelés'; + @override String get userRating => 'Saját értékelés'; + @override String get datePlayed => 'Lejátszás dátuma'; + @override String get playCount => 'Lejátszások száma'; + @override String get productionYear => 'Gyártási év'; + @override String get runtime => 'Játékidő'; + @override String get officialRating => 'Hivatalos besorolás'; + @override String get premiereDate => 'Premier dátuma'; + @override String get startDate => 'Kezdés dátuma'; + @override String get airTime => 'Adásidő'; + @override String get studio => 'Stúdió'; + @override String get random => 'Véletlenszerű'; + @override String get dateShared => 'Megosztás dátuma'; + @override String get latestEpisodeAirDate => 'A legutóbbi epizód sugárzási dátuma'; + @override String get lastEpisodeDateAdded => 'Utolsó epizód hozzáadásának dátuma'; +} + +// Path: explore.rows +class _Translations$explore$rows$hu extends Translations$explore$rows$en { + _Translations$explore$rows$hu._(TranslationsHu root) : this._root = root, super.internal(root); + + final TranslationsHu _root; // ignore: unused_field + + // Translations + @override String get watchlist => 'Néznivalók listája'; + @override String get recommendedMovies => 'Ajánlott filmek'; + @override String get recommendedShows => 'Ajánlott sorozatok'; + @override String get trendingMovies => 'Felkapott filmek'; + @override String get trendingShows => 'Felkapott sorozatok'; + @override String get popularMovies => 'Népszerű filmek'; + @override String get popularShows => 'Népszerű sorozatok'; + @override String get trendingAnime => 'Felkapott animék'; + @override String get suggestedAnime => 'Ajánlott animék'; + @override String get airingAnime => 'Jelenleg futó top animék'; + @override String get popularAnime => 'Legnépszerűbb animék'; + @override String get trending => 'Felkapott'; + @override String get upcomingMovies => 'Közelgő filmek'; + @override String get upcomingShows => 'Közelgő sorozatok'; +} + +// Path: explore.status +class _Translations$explore$status$hu extends Translations$explore$status$en { + _Translations$explore$status$hu._(TranslationsHu root) : this._root = root, super.internal(root); + + final TranslationsHu _root; // ignore: unused_field + + // Translations + @override String get airing => 'Adásban'; + @override String get ended => 'Befejeződött'; + @override String get canceled => 'Törölve'; + @override String get upcoming => 'Közelgő'; +} + +// Path: companionRemote.session +class _Translations$companionRemote$session$hu extends Translations$companionRemote$session$en { + _Translations$companionRemote$session$hu._(TranslationsHu root) : this._root = root, super.internal(root); + + final TranslationsHu _root; // ignore: unused_field + + // Translations + @override String get startingServer => 'Távirányító-szerver indítása...'; + @override String get hostAddress => 'Gazdagép címe'; + @override String get connected => 'Csatlakoztatva'; + @override String get serverRunning => 'A távirányító-szerver aktív'; + @override String get serverStopped => 'A távirányító-szerver leállítva'; + @override String get serverRunningDescription => 'A hálózaton lévő mobileszközök csatlakozhatnak ehhez az alkalmazáshoz'; + @override String get serverStoppedDescription => 'Indítsd el a szervert, hogy a mobileszközök csatlakozhassanak'; + @override String get usePhoneToControl => 'Használd a mobileszközödet az alkalmazás vezérléséhez'; + @override String get startServer => 'Szerver indítása'; + @override String get stopServer => 'Szerver leállítása'; + @override String get minimize => 'Kis méret'; +} + +// Path: companionRemote.pairing +class _Translations$companionRemote$pairing$hu extends Translations$companionRemote$pairing$en { + _Translations$companionRemote$pairing$hu._(TranslationsHu root) : this._root = root, super.internal(root); + + final TranslationsHu _root; // ignore: unused_field + + // Translations + @override String get discoveryDescription => 'Az azonos Plex-fiókot használó Plezy-eszközök itt jelennek meg'; + @override String get hostAddressHint => '192.168.1.100:48632'; + @override String get connecting => 'Csatlakozás...'; + @override String get searchingForDevices => 'Eszközök keresése...'; + @override String get noDevicesFound => 'Nem találhatók eszközök a hálózaton'; + @override String get noDevicesHint => 'Nyisd meg a Plezyt asztali gépen, és használd ugyanazt a Wi-Fi-hálózatot'; + @override String get availableDevices => 'Elérhető eszközök'; + @override String get manualConnection => 'Kézi csatlakozás'; + @override String get cryptoInitFailed => 'Nem sikerült elindítani a biztonságos kapcsolatot. Először jelentkezz be a Plexbe.'; + @override String get validationHostRequired => 'Add meg a gazdagép címét'; + @override String get validationHostFormat => 'A formátumnak IP:port kell lennie (pl. 192.168.1.100:48632)'; + @override String get connectionTimedOut => 'A csatlakozás túllépte az időkorlátot. Használd ugyanazt a hálózatot mindkét eszközön.'; + @override String get sessionNotFound => 'Az eszköz nem található. Győződj meg arról, hogy a Plezy fut a gazdagépen.'; + @override String get authFailed => 'A hitelesítés nem sikerült. Mindkét eszközön ugyanazt a Plex-fiókot kell használni.'; + @override String failedToConnect({required Object error}) => 'Nem sikerült a csatlakozás: ${error}'; +} + +// Path: companionRemote.remote +class _Translations$companionRemote$remote$hu extends Translations$companionRemote$remote$en { + _Translations$companionRemote$remote$hu._(TranslationsHu root) : this._root = root, super.internal(root); + + final TranslationsHu _root; // ignore: unused_field + + // Translations + @override String get disconnectConfirm => 'Bontod a kapcsolatot a távoli munkamenettel?'; + @override String get reconnecting => 'Újracsatlakozás...'; + @override String attemptOf({required Object current}) => '${current} / 5 próbálkozás'; + @override String get retryNow => 'Újrapróbálkozás most'; + @override String get tabRemote => 'Távirányító'; + @override String get tabPlay => 'Lejátszás'; + @override String get tabMore => 'Egyebek'; + @override String get menu => 'Menü'; + @override String get tabNavigation => 'Navigációs lap'; + @override String get tabDiscover => 'Felfedezés'; + @override String get tabLibraries => 'Könyvtárak'; + @override String get tabSearch => 'Keresés'; + @override String get tabDownloads => 'Letöltések'; + @override String get tabSettings => 'Beállítások'; + @override String get previous => 'Előző'; + @override String get playPause => 'Lejátszás/Szünet'; + @override String get next => 'Következő'; + @override String get seekBack => 'Visszatekerés'; + @override String get stop => 'Leállítás'; + @override String get seekForward => 'Előretekerés'; + @override String get volume => 'Hangerő'; + @override String get volumeDown => 'Hangerő le'; + @override String get volumeUp => 'Hangerő fel'; + @override String get fullscreen => 'Teljes képernyő'; + @override String get subtitles => 'Feliratok'; + @override String get audio => 'Hang'; + @override String get searchHint => 'Keresés az asztali gépen...'; +} + +// Path: companionRemote.errors +class _Translations$companionRemote$errors$hu extends Translations$companionRemote$errors$en { + _Translations$companionRemote$errors$hu._(TranslationsHu root) : this._root = root, super.internal(root); + + final TranslationsHu _root; // ignore: unused_field + + // Translations + @override String get noNetworkInterface => 'Nem található hálózati csatoló'; + @override String get authenticationFailed => 'A hitelesítés nem sikerült'; + @override String serverStartFailed({required Object error}) => 'Nem sikerült elindítani a távirányító-szervert: ${error}'; + @override String commandFailed({required Object error}) => 'Nem sikerült elküldeni a távoli parancsot: ${error}'; + @override String get joinTimedOut => 'Időtúllépés a munkamenethez való csatlakozáskor'; + @override String get failedToConnectAnyAddress => 'Egyetlen címhez sem sikerült csatlakozni'; + @override String connectionLostAfterAttempts({required Object attempts}) => 'A kapcsolat megszakadt ${attempts} próbálkozás után'; + @override String get connectionLost => 'A kapcsolat megszakadt'; +} + +// Path: services.names +class _Translations$services$names$hu extends Translations$services$names$en { + _Translations$services$names$hu._(TranslationsHu root) : this._root = root, super.internal(root); + + final TranslationsHu _root; // ignore: unused_field + + // Translations + @override String get mal => 'MyAnimeList'; + @override String get anilist => 'AniList'; + @override String get simkl => 'Simkl'; + @override String get seerr => 'Seerr'; +} + +// Path: services.deviceCode +class _Translations$services$deviceCode$hu extends Translations$services$deviceCode$en { + _Translations$services$deviceCode$hu._(TranslationsHu root) : this._root = root, super.internal(root); + + final TranslationsHu _root; // ignore: unused_field + + // Translations + @override String title({required Object service}) => 'Plezy aktiválása a következőn: ${service}'; + @override String body({required Object url}) => 'Nyisd meg a(z) ${url} oldalt és add meg ezt a kódot:'; + @override String openToActivate({required Object service}) => 'Nyisd meg a(z) ${service} oldalt az aktiváláshoz'; + @override String get copyCode => 'Aktiválási kód másolása'; + @override String get waitingForAuthorization => 'Várakozás az engedélyezésre…'; + @override String get codeCopied => 'Kód másolva'; +} + +// Path: services.oauthProxy +class _Translations$services$oauthProxy$hu extends Translations$services$oauthProxy$en { + _Translations$services$oauthProxy$hu._(TranslationsHu root) : this._root = root, super.internal(root); + + final TranslationsHu _root; // ignore: unused_field + + // Translations + @override String title({required Object service}) => 'Bejelentkezés ide: ${service}'; + @override String get body => 'Olvasd be ezt a QR-kódot vagy nyisd meg az URL-t bármelyik eszközön.'; + @override String openToSignIn({required Object service}) => 'Nyisd meg a(z) ${service} oldalt a bejelentkezéshez'; + @override String get copyUrl => 'Bejelentkezési URL másolása'; + @override String get urlCopied => 'URL másolva'; +} + +// Path: services.libraryFilter +class _Translations$services$libraryFilter$hu extends Translations$services$libraryFilter$en { + _Translations$services$libraryFilter$hu._(TranslationsHu root) : this._root = root, super.internal(root); + + final TranslationsHu _root; // ignore: unused_field + + // Translations + @override String get title => 'Könyvtárszűrő'; + @override String get subtitleAllSyncing => 'Minden könyvtár szinkronizálása'; + @override String get subtitleNoneSyncing => 'Nincs szinkronizálás'; + @override String subtitleBlocked({required Object count}) => '${count} kizárva'; + @override String subtitleAllowed({required Object count}) => '${count} engedélyezve'; + @override String get mode => 'Szűrési mód'; + @override String get modeBlacklist => 'Tiltólista'; + @override String get modeWhitelist => 'Engedélyezőlista'; + @override String get modeHintBlacklist => 'Minden könyvtár szinkronizálása az alább bejelöltek kivételével.'; + @override String get modeHintWhitelist => 'Csak az alább bejelölt könyvtárak szinkronizálása.'; + @override String get libraries => 'Könyvtárak'; + @override String get noLibraries => 'Nincsenek elérhető könyvtárak'; +} + +/// The flat map containing all translations for locale . +/// Only for edge cases! For simple maps, use the map function of this library. +/// +/// The Dart AOT compiler has issues with very large switch statements, +/// so the map is split into smaller functions (512 entries each). +extension on TranslationsHu { + dynamic _flatMapFunction(String path) { + return switch (path) { + 'app.title' => 'Plezy', + 'auth.signInWithPlex' => 'Bejelentkezés Plexszel', + 'auth.showQRCode' => 'QR-kód megjelenítése', + 'auth.authenticate' => 'Hitelesítés', + 'auth.authenticationTimeout' => 'A hitelesítés időtúllépés miatt megszakadt. Próbáld újra.', + 'auth.scanQRToSignIn' => 'Olvasd be ezt a QR-kódot a bejelentkezéshez', + 'auth.waitingForAuth' => 'Várakozás a hitelesítésre...\nJelentkezz be a böngésződben.', + 'auth.useBrowser' => 'Böngésző használata', + 'auth.or' => 'vagy', + 'auth.connectToJellyfin' => 'Csatlakozás Jellyfinhez', + 'auth.useQuickConnect' => 'Quick Connect használata', + 'auth.quickConnectInstructions' => 'Nyisd meg a Quick Connect-et a Jellyfinben, és add meg ezt a kódot.', + 'auth.quickConnectWaiting' => 'Várakozás a jóváhagyásra…', + 'auth.quickConnectCancel' => 'Mégse', + 'auth.quickConnectExpired' => 'A Quick Connect kód lejárt. Próbáld újra.', + 'auth.localDataRecoveryRequired' => 'A Plezy nem tudta biztonságosan helyreállítani a helyi bejelentkezés és a függőben lévő lejátszás adatait. Jelentkezz be újra.', + 'common.cancel' => 'Mégse', + 'common.save' => 'Mentés', + 'common.close' => 'Bezárás', + 'common.clear' => 'Törlés', + 'common.reset' => 'Visszaállítás', + 'common.later' => 'Később', + 'common.submit' => 'Beküldés', + 'common.confirm' => 'Megerősítés', + 'common.retry' => 'Újra', + 'common.logout' => 'Kijelentkezés', + 'common.unknown' => 'Ismeretlen', + 'common.refresh' => 'Frissítés', + 'common.yes' => 'Igen', + 'common.no' => 'Nem', + 'common.delete' => 'Törlés', + 'common.edit' => 'Szerkesztés', + 'common.shuffle' => 'Véletlenszerű lejátszás', + 'common.addTo' => 'Hozzáadás...', + 'common.createNew' => 'Új létrehozása', + 'common.connect' => 'Csatlakozás', + 'common.disconnect' => 'Kapcsolat bontása', + 'common.play' => 'Lejátszás', + 'common.pause' => 'Szünet', + 'common.resume' => 'Folytatás', + 'common.error' => 'Hiba', + 'common.search' => 'Keresés', + 'common.home' => 'Kezdőlap', + 'common.back' => 'Vissza', + 'common.settings' => 'Beállítások', + 'common.mute' => 'Némítás', + 'common.ok' => 'OK', + 'common.off' => 'Ki', + 'common.seasonNumber' => ({required Object number}) => '${number}. évad', + 'common.episodeNumberTitle' => ({required Object number, required Object title}) => '${number}. epizód - ${title}', + 'common.chapterNumber' => ({required Object number}) => '${number}. fejezet', + 'common.reconnect' => 'Újracsatlakozás', + 'common.viewAll' => 'Összes megtekintése', + 'common.checkingNetwork' => 'Hálózat ellenőrzése...', + 'common.loadingServers' => 'Szerverek betöltése...', + 'common.connectingToServers' => 'Csatlakozás a szerverekhez...', + 'common.startingOfflineMode' => 'Kapcsolat nélküli mód indítása...', + 'common.loading' => 'Betöltés...', + 'common.fullscreen' => 'Teljes képernyő', + 'common.exitFullscreen' => 'Kilépés a teljes képernyőből', + 'common.pressBackAgainToExit' => 'A kilépéshez nyomd meg újra a Vissza gombot', + 'screens.licenses' => 'Licencek', + 'screens.switchProfile' => 'Profilváltás', + 'screens.subtitleStyling' => 'Feliratok stílusa', + 'screens.mpvConfig' => 'mpv.conf', + 'screens.logs' => 'Naplók', + 'update.available' => 'Frissítés érhető el', + 'update.versionAvailable' => ({required Object version}) => 'A(z) ${version} verzió elérhető', + 'update.currentVersion' => ({required Object version}) => 'Jelenlegi: ${version}', + 'update.skipVersion' => 'Verzió kihagyása', + 'update.viewRelease' => 'Kiadási megjegyzések', + 'update.latestVersion' => 'A legújabb verziót használod', + 'update.checkFailed' => 'Nem sikerült az újabb frissítések ellenőrzése', + 'settings.title' => 'Beállítások', + 'settings.supportDeveloper' => 'Plezy támogatása', + 'settings.supportDeveloperDescription' => 'A fejlesztés támogatása Liberapay-en keresztül', + 'settings.language' => 'Nyelv', + 'settings.theme' => 'Téma', + 'settings.appearance' => 'Megjelenés', + 'settings.videoPlayback' => 'Videólejátszás', + 'settings.videoPlaybackDescription' => 'Lejátszási viselkedés beállítása', + 'settings.advanced' => 'Haladó', + 'settings.episodePosterMode' => 'Epizódborító stílusa', + 'settings.seriesPoster' => 'Sorozatborító', + 'settings.seasonPoster' => 'Évadborító', + 'settings.episodeThumbnail' => 'Bélyegkép', + 'settings.showHeroSectionDescription' => 'Kiemelt tartalmak sávjának megjelenítése a kezdőlapon', + 'settings.secondsLabel' => 'Másodperc', + 'settings.minutesLabel' => 'Perc', + 'settings.secondsShort' => 'mp', + 'settings.minutesShort' => 'p', + 'settings.durationHint' => ({required Object min, required Object max}) => 'Add meg az időtartamot (${min}-${max})', + 'settings.systemTheme' => 'Rendszer', + 'settings.lightTheme' => 'Világos', + 'settings.darkTheme' => 'Sötét', + 'settings.oledTheme' => 'OLED', + 'settings.libraryDensity' => 'Könyvtársűrűség', + 'settings.compact' => 'Kompakt', + 'settings.comfortable' => 'Kényelmes', + 'settings.tvCornerSpotlightBackdrop' => 'Sarokban megjelenő kiemelt háttérkép', + 'settings.tvCornerSpotlightBackdropDescription' => 'A kiemelt háttérkép megjelenítése a jobb felső sarokban a teljes képernyő helyett', + 'settings.viewMode' => 'Nézetmód', + 'settings.gridView' => 'Rács', + 'settings.listView' => 'Lista', + 'settings.showHeroSection' => 'Kiemelt sáv megjelenítése', + 'settings.continueWatchingAction' => 'A „Folytatás” művelete', + 'settings.continueWatchingPlay' => 'Lejátszás', + 'settings.continueWatchingDetails' => 'Részletek megnyitása', + 'settings.episodeAction' => 'Az epizódkártya művelete', + 'settings.episodePlay' => 'Lejátszás', + 'settings.episodeDetails' => 'Részletek megnyitása', + 'settings.useGlobalHubs' => 'Kezdőlap elrendezés használata', + 'settings.useGlobalHubsDescription' => 'Egyesített kezdőlapi blokkok megjelenítése. Egyébként a könyvtári ajánlások jelennek meg.', + 'settings.showServerNameOnHubs' => 'Szervernév megjelenítése a blokkoknál', + 'settings.showServerNameOnHubsDescription' => 'Mindig jelenjen meg a szerver neve a blokkok címében.', + 'settings.groupLibrariesByServer' => 'Könyvtárak csoportosítása szerver szerint', + 'settings.groupLibrariesByServerDescription' => 'Az oldalsáv könyvtárainak csoportosítása a médiaszerverek alatt.', + 'settings.alwaysKeepSidebarOpen' => 'Oldalsáv mindig nyitva', + 'settings.alwaysKeepSidebarOpenDescription' => 'Az oldalsáv kibontva marad, a tartalom területe igazodik hozzá', + 'settings.showUnwatchedCount' => 'Nem látott elemek számának megjelenítése', + 'settings.showUnwatchedCountDescription' => 'Megjeleníti a még nem látott epizódok számát a sorozatoknál és évadoknál', + 'settings.showEpisodeNumberOnCards' => 'Epizódszám megjelenítése a kártyákon', + 'settings.showEpisodeNumberOnCardsDescription' => 'Megjeleníti az évad- és epizódszámot az epizódkártyákon', + 'settings.showSeasonPostersOnTabs' => 'Évadborítók megjelenítése a füleken', + 'settings.showSeasonPostersOnTabsDescription' => 'Megjeleníti az egyes évadok borítóját a fülük felett', + 'settings.tvFullCardLayout' => 'Teljes TV-kártyák', + 'settings.tvFullCardLayoutDescription' => 'Csak képet tartalmazó TV-kártyák használata, rájuk helyezett színésznevekkel', + 'settings.focusGlow' => 'Kijelölési ragyogás', + 'settings.focusGlowDescription' => 'Finom ragyogás rajzolása a kijelölt kártya köré', + 'settings.visualEffects' => 'Vizuális effektek', + 'settings.visualEffectsAuto' => 'Automatikus', + 'settings.visualEffectsAutoDescription' => 'Effektek automatikus csökkentése alacsony teljesítményű eszközökön', + 'settings.visualEffectsFull' => 'Teljes', + 'settings.visualEffectsReduced' => 'Csökkentett', + 'settings.visualEffectsReducedDescription' => 'Kevesebb animáció és alacsonyabb felbontású képek', + 'settings.hideSpoilers' => 'Spoilerek elrejtése a nem látott epizódoknál', + 'settings.hideSpoilersDescription' => 'Bélyegképek és leírások elhomályosítása a még meg nem nézett epizódoknál', + 'settings.playerBackend' => 'Lejátszómotor', + 'settings.exoPlayer' => 'ExoPlayer', + 'settings.mpv' => 'mpv', + 'settings.hardwareDecoding' => 'Hardveres dekódolás', + 'settings.hardwareDecodingDescription' => 'Hardveres gyorsítás használata, ha elérhető', + 'settings.bufferSize' => 'Puffer mérete', + 'settings.bufferSizeMB' => ({required Object size}) => '${size} MB', + 'settings.bufferSizeAuto' => 'Automatikus (ajánlott)', + 'settings.bufferSizeWarning' => ({required Object heap, required Object size}) => '${heap} MB memória érhető el. A(z) ${size} MB méretű puffer befolyásolhatja a lejátszást.', + 'settings.defaultQualityTitle' => 'Alapértelmezett minőség', + 'settings.musicQualityTitle' => 'Zene minősége', + 'settings.subtitleStyling' => 'Feliratok stílusa', + 'settings.subtitleStylingDescription' => 'Feliratok megjelenésének testreszabása', + 'settings.smallSkipDuration' => 'Kis ugrás időtartama', + 'settings.largeSkipDuration' => 'Nagy ugrás időtartama', + 'settings.rewindOnResume' => 'Visszatekerés folytatáskor', + 'settings.secondsUnit' => ({required Object seconds}) => '${seconds} másodperc', + 'settings.defaultSleepTimer' => 'Alapértelmezett elalvási időzítő', + 'settings.minutesUnit' => ({required Object minutes}) => '${minutes} perc', + 'settings.rememberTrackSelections' => 'Sávválasztások megjegyzése sorozatonként/filmenként', + 'settings.rememberTrackSelectionsDescription' => 'Hang- és feliratválasztások megjegyzése címenként', + 'settings.showChapterMarkersOnTimeline' => 'Fejezetjelölők megjelenítése az idősávon', + 'settings.showChapterMarkersOnTimelineDescription' => 'Az idősáv felosztása a fejezetek határainál', + 'settings.clickVideoTogglesPlayback' => 'Kattintás a videóra a lejátszás/szünet váltásához', + 'settings.clickVideoTogglesPlaybackDescription' => 'A videóra kattintva vált a lejátszás/szünet, a vezérlők megjelenítése helyett.', + 'settings.videoPlayerControls' => 'Videólejátszó vezérlői', + 'settings.keyboardShortcuts' => 'Billentyűparancsok', + 'settings.keyboardShortcutsDescription' => 'Billentyűparancsok testreszabása', + 'settings.videoPlayerNavigation' => 'Videólejátszó-navigáció', + 'settings.videoPlayerNavigationDescription' => 'A nyílbillentyűk használata a videólejátszó vezérlői közötti navigáláshoz', + 'settings.watchTogetherRelay' => 'Watch Together-relé', + 'settings.watchTogetherRelayDescription' => 'Egyéni relé beállítása. Mindenkinek ugyanazt a szervert kell használnia.', + 'settings.watchTogetherRelayHint' => 'https://my-relay.example.com', + 'settings.watchTogetherRelayInvalid' => 'Adj meg egy érvényes HTTP- vagy HTTPS-alapú relészerver-URL-t.', + 'settings.crashReporting' => 'Összeomlási jelentések', + 'settings.crashReportingDescription' => 'Összeomlási jelentések küldése az alkalmazás fejlesztésének elősegítéséhez', + 'settings.debugLogging' => 'Hibakeresési naplózás', + 'settings.debugLoggingDescription' => 'Részletes naplózás engedélyezése a hibaelhárításhoz', + 'settings.viewLogs' => 'Naplók megtekintése', + 'settings.viewLogsDescription' => 'Alkalmazásnaplók megtekintése', + 'settings.clearCache' => 'Gyorsítótár törlése', + 'settings.clearCacheDescription' => 'A gyorsítótárazott képek és adatok törlése. A tartalom lassabban töltődhet be.', + 'settings.clearCacheSuccess' => 'A gyorsítótár sikeresen törölve', + 'settings.resetSettings' => 'Beállítások visszaállítása', + 'settings.resetSettingsDescription' => 'Az alapértelmezett beállítások visszaállítása. Ez a művelet nem vonható vissza.', + 'settings.resetSettingsSuccess' => 'A beállítások sikeresen visszaállítva', + 'settings.backup' => 'Biztonsági mentés', + 'settings.exportSettings' => 'Beállítások exportálása', + 'settings.exportSettingsDescription' => 'Beállítások mentése fájlba', + 'settings.exportSettingsSuccess' => 'Beállítások exportálva', + 'settings.importSettings' => 'Beállítások importálása', + 'settings.importSettingsDescription' => 'Beállítások visszaállítása fájlból', + 'settings.importSettingsConfirm' => 'Ez felülírja a jelenlegi beállításaidat. Folytatod?', + 'settings.importSettingsSuccess' => 'Beállítások importálva', + 'settings.importSettingsInvalidFile' => 'Ez a fájl nem érvényes Plezy-beállításexport', + 'settings.importSettingsNoUser' => 'Jelentkezz be a beállítások importálása előtt', + 'settings.shortcutsReset' => 'A billentyűparancsok visszaálltak az alapértelmezettekre', + 'settings.about' => 'Névjegy', + 'settings.aboutDescription' => 'Alkalmazásadatok és licencek', + 'settings.updates' => 'Frissítések', + 'settings.updateAvailable' => 'Frissítés érhető el', + 'settings.checkForUpdates' => 'Frissítések keresése', + 'settings.autoCheckUpdatesOnStartup' => 'Frissítések automatikus keresése indításkor', + 'settings.autoCheckUpdatesOnStartupDescription' => 'Értesítés küldése indításkor, ha új frissítés érhető el', + 'settings.validationErrorEnterNumber' => 'Adj meg egy érvényes számot', + 'settings.validationErrorDuration' => ({required Object min, required Object max, required Object unit}) => 'Az időtartamnak ${min} és ${max} ${unit} között kell lennie', + 'settings.shortcutAlreadyAssigned' => ({required Object action}) => 'A billentyűparancs már hozzá van rendelve a következőhöz: ${action}', + 'settings.shortcutUpdated' => ({required Object action}) => 'Billentyűparancs frissítve a következőhöz: ${action}', + 'settings.saveFailed' => 'Nem sikerült menteni a módosításokat. Próbáld újra.', + 'settings.autoSkip' => 'Automatikus átugrás', + 'settings.autoSkipIntro' => 'Intró automatikus átugrása', + 'settings.autoSkipIntroDescription' => 'Az intrójelölők automatikus átugrása néhány másodperc után', + 'settings.autoSkipCredits' => 'Stáblista automatikus átugrása', + 'settings.autoSkipCreditsDescription' => 'A stáblista automatikus átugrása és a következő epizód lejátszása', + 'settings.forceSkipMarkerFallback' => 'Tartalék jelölők kényszerítése', + 'settings.forceSkipMarkerFallbackDescription' => 'Fejezetcím-minták használata akkor is, ha a Plex rendelkezik jelölőkkel', + 'settings.autoSkipDelay' => 'Automatikus átugrás késleltetése', + 'settings.autoSkipDelayDescription' => ({required Object seconds}) => 'Várakozás ${seconds} másodpercig az automatikus átugrás előtt', + 'settings.introPattern' => 'Intrójelölő mintája', + 'settings.introPatternDescription' => 'Reguláris kifejezés az intrójelölők illesztéséhez a fejezetcímekben', + 'settings.creditsPattern' => 'Stáblistajelölő mintája', + 'settings.creditsPatternDescription' => 'Reguláris kifejezés a stáblistajelölők illesztéséhez a fejezetcímekben', + 'settings.invalidRegex' => 'Érvénytelen reguláris kifejezés', + 'settings.regex' => 'Reguláris kifejezés', + 'settings.downloads' => 'Letöltések', + 'settings.downloadLocationDescription' => 'Válaszd ki a letöltött tartalom tárolási helyét', + 'settings.downloadLocationDefault' => 'Alapértelmezett (alkalmazástárhely)', + 'settings.downloadLocationCustom' => 'Egyéni hely', + 'settings.selectFolder' => 'Mappa kiválasztása', + 'settings.resetToDefault' => 'Visszaállítás alapértelmezettre', + 'settings.currentPath' => ({required Object path}) => 'Jelenlegi: ${path}', + 'settings.downloadLocationChanged' => 'A letöltési hely megváltozott', + 'settings.downloadLocationReset' => 'A letöltési hely visszaállt az alapértelmezettre', + 'settings.downloadLocationInvalid' => 'A kiválasztott mappa nem írható', + 'settings.downloadLocationPickerUnavailable' => 'A mappaválasztás ezen az eszközön nem érhető el', + 'settings.downloadOnWifiOnly' => 'Letöltés csak Wi-Fi-n', + 'settings.downloadOnWifiOnlyDescription' => 'Letöltések megakadályozása mobiladat-használat esetén', + 'settings.autoRemoveWatchedDownloads' => 'Megnézett letöltések automatikus eltávolítása', + 'settings.autoRemoveWatchedDownloadsDescription' => 'A megnézett letöltések automatikus törlése', + 'settings.cellularDownloadBlocked' => 'A letöltések mobilhálózaton le vannak tiltva. Használj Wi-Fi-t, vagy módosítsd a beállítást.', + 'settings.maxVolume' => 'Maximális hangerő', + 'settings.maxVolumeDescription' => 'A hangerő 100% fölé emelésének engedélyezése halk tartalmak esetén', + 'settings.maxVolumePercent' => ({required Object percent}) => '${percent}%', + 'settings.discordRichPresence' => 'Discord Rich Presence', + 'settings.discordRichPresenceDescription' => 'Megjeleníti a Discordon, hogy éppen mit nézel', + 'settings.services' => 'Szolgáltatások', + 'settings.servicesDescription' => 'Trakt, MyAnimeList, Seerr és egyéb szolgáltatások csatlakoztatása', + 'settings.manageLibrariesDescription' => 'Könyvtárak sorrendjének módosítása és elrejtése', + 'settings.companionRemoteServer' => 'Kísérőtávirányító szervere', + 'settings.companionRemoteServerDescription' => 'Lehetővé teszi, hogy a hálózaton lévő mobileszközökről vezéreld az alkalmazást', + 'settings.autoPip' => 'Automatikus kép a képben (PiP)', + 'settings.autoPipDescription' => 'Lejátszás közben az alkalmazás elhagyásakor automatikusan kép a képben módra vált', + 'settings.matchContentFrameRate' => 'Képkockasebesség illesztése a tartalomhoz', + 'settings.matchContentFrameRateDescription' => 'A kijelző frissítési frekvenciájának igazítása a videóhoz', + 'settings.matchRefreshRate' => 'Frissítési frekvencia illesztése', + 'settings.matchRefreshRateDescription' => 'A kijelző frissítési frekvenciájának igazítása teljes képernyőn', + 'settings.matchDynamicRange' => 'Dinamikatartomány illesztése', + 'settings.matchDynamicRangeDescription' => 'HDR bekapcsolása HDR-tartalmak esetén, majd visszaváltás SDR-re', + 'settings.displaySwitchDelay' => 'Kijelzőváltási késleltetés', + 'settings.tunneledPlayback' => 'Alagutas lejátszás', + 'settings.tunneledPlaybackDescription' => 'Videóalagút használata. Tiltsd le, ha HDR-lejátszáskor fekete a kép.', + 'settings.audioPassthrough' => 'Hangtovábbítás (passthrough)', + 'settings.audioPassthroughDescription' => 'Dolby/DTS-hang továbbítása az erősítőre vagy a TV-re újrakódolás nélkül, a térhangzás megőrzésével. Kapcsold ki, ha nincs hang.', + 'settings.audioPassthroughDescriptionAppleTv' => 'Az Apple natív Dolby-dekóderének használata Dolby Digital Plushoz, az Atmost is beleértve. A DTS és a TrueHD továbbra is többcsatornás PCM-ként szól. Kapcsold ki, ha nincs hang.', + 'settings.audioDownmix' => 'Lekeverés sztereóra', + 'settings.audioDownmixDescription' => 'A térhangzás lekeverése két csatornára sztereó hangszórókhoz vagy fejhallgatókhoz', + 'settings.downmixCenterBoost' => 'Középső csatorna kiemelése', + 'settings.downmixCenterBoostValue' => ({required Object db}) => '${db} dB', + 'settings.downmixCenterBoostLabel' => 'Kiemelés (dB)', + 'settings.downmixCenterBoostShort' => 'dB', + 'settings.audioDownmixNormalize' => 'Hangerő normalizálása lekeveréskor', + 'settings.audioDownmixNormalizeDescription' => 'A keverés szintjének csökkentése a torzítás elkerülésére. Kapcsold ki az eredeti hangerő megőrzéséhez (a hangos jelenetek torzíthatnak).', + 'settings.atmosDiagnostics' => 'Atmos kimeneti teszt', + 'settings.atmosDiagnosticsDescription' => 'Dolby Atmos kimenet diagnosztizálása tesztjelek lejátszásával a rendszerlejátszón keresztül', + 'settings.atmosTestHlsAtmos' => 'Apple Atmos folyam', + 'settings.atmosTestHlsAtmosDescription' => 'Igazoltan működő Dolby Atmos-adatfolyam. Az erősítő kijelzőjén a Dolby Atmos formátumnak kell megjelennie.', + 'settings.atmosTestHlsControl' => 'Apple térhangzású folyam', + 'settings.atmosTestHlsControlDescription' => 'Atmos nélküli ellenőrző adatfolyam. Az erősítő kijelzőjén térhangzásnak kell megjelennie, Atmos nélkül.', + 'settings.atmosTestRawStream' => 'Nyers EAC3 folyam', + 'settings.atmosTestRawStreamDescription' => 'A tesztfájlt pontosan úgy közvetíti, mint a lejátszón belüli Atmos lejátszás. Szükséges a tesztfájl URL-je.', + 'settings.atmosTestRawFile' => 'Nyers EAC3 fájl', + 'settings.atmosTestRawFileDescription' => 'Ismert hosszúságú tesztfájlt játszik le. Szükséges a tesztfájl URL-je.', + 'settings.atmosTestStop' => 'Teszt leállítása', + 'settings.atmosTestUrl' => 'Tesztfájl URL-je', + 'settings.atmosTestUrlDescription' => 'Nyers .ec3 Dolby Atmos fájl HTTP URL-je (pl. ffmpeg-gel kinyerve)', + 'settings.atmosTestUrlMissing' => 'Először állítsd be a tesztfájl URL-jét', + 'settings.atmosTestStatus' => 'Állapot', + 'settings.dvConversionMode' => 'Dolby Vision-átalakítás', + 'settings.dvConversionModeDescription' => 'Válaszd ki, hogyan kezelje az ExoPlayer a Dolby Vision Profile 7 fájlokat.', + 'settings.dvConversionAuto' => 'Automatikus', + 'settings.dvConversionNative' => 'Natív / letiltva', + 'settings.dvConversionDv81' => 'P7 → P8.1', + 'settings.dvConversionHevcStrip' => 'P7 → HEVC', + 'settings.dvConversionAutoDescription' => 'Az eszköz képességeinek felismerése és szükség esetén a szokásos tartalék megoldás használata', + 'settings.dvConversionNativeDescription' => 'A natív DV7 kényszerítése és a DV-átalakítási újrapróbálkozás letiltása', + 'settings.dvConversionDv81Description' => 'A közvetlen RPU-átalakítás kényszerítése Dolby Vision Profile 8.1-re', + 'settings.dvConversionHevcStripDescription' => 'A Dolby Vision RPU/EL-rétegek eltávolítása és egyszerű HEVC-ként való megjelenítés', + 'settings.requireProfileSelectionOnOpen' => 'Profil kérése az alkalmazás megnyitásakor', + 'settings.requireProfileSelectionOnOpenDescription' => 'Profilválasztó megjelenítése minden alkalommal, amikor az alkalmazást megnyitod', + 'settings.forceTvMode' => 'TV-mód kényszerítése', + 'settings.forceTvModeDescription' => 'TV-elrendezés kényszerítése az automatikus felismeréssel nem rendelkező eszközökön. Újraindítást igényel.', + 'settings.startInFullscreen' => 'Indítás teljes képernyőn', + 'settings.startInFullscreenDescription' => 'A Plezy megnyitása teljes képernyős módban indításkor', + 'settings.exitFullscreenOnPlayerClose' => 'Kilépés a teljes képernyőből a lejátszó bezárásakor', + 'settings.exitFullscreenOnPlayerCloseDescription' => 'Automatikus kilépés a teljes képernyőből a videólejátszó bezárásakor', + 'settings.autoHidePerformanceOverlay' => 'Teljesítményadatok automatikus elrejtése', + 'settings.autoHidePerformanceOverlayDescription' => 'A teljesítményadatok elhalványítása a lejátszásvezérlőkkel együtt', + 'settings.showNavBarLabels' => 'Navigációs sáv címkéinek megjelenítése', + 'settings.showNavBarLabelsDescription' => 'Szöveges címkék megjelenítése a navigációs sáv ikonjai alatt', + 'settings.startupSection' => 'Indítási oldal', + 'settings.liveTvDefaultFavorites' => 'Kedvenc csatornák alapértelmezés szerint', + 'settings.liveTvDefaultFavoritesDescription' => 'Csak a kedvenc csatornák megjelenítése az Élő TV megnyitásakor', + 'settings.display' => 'Kijelző', + 'settings.homeScreen' => 'Kezdőképernyő', + 'settings.navigation' => 'Navigáció', + 'settings.window' => 'Ablak', + 'settings.content' => 'Tartalom', + 'settings.player' => 'Lejátszó', + 'settings.subtitlesAndConfig' => 'Feliratok és konfiguráció', + 'settings.seekAndTiming' => 'Tekerés és időzítés', + 'settings.behavior' => 'Viselkedés', + 'search.hint' => 'Keresés filmek, sorozatok és zenék között...', + 'search.tryDifferentTerm' => 'Próbálj másik keresési kifejezést', + 'search.searchYourMedia' => 'Keresés a saját médiatartalmak között', + 'search.enterTitleActorOrKeyword' => 'Adj meg egy címet, színészt vagy kulcsszót', + 'hotkeys.setShortcutFor' => ({required Object actionName}) => 'Billentyűparancs beállítása ehhez: ${actionName}', + 'hotkeys.clearShortcut' => 'Billentyűparancs törlése', + 'hotkeys.noShortcutSet' => 'Nincs billentyűparancs beállítva', + 'hotkeys.currentShortcut' => 'Jelenlegi billentyűparancs:', + 'hotkeys.pressToRecord' => 'Válaszd ki a billentyűparancs rögzítéséhez', + 'hotkeys.recordingShortcut' => 'Nyomd meg most a billentyűparancsot', + 'hotkeys.actions.playPause' => 'Lejátszás/Szünet', + 'hotkeys.actions.volumeUp' => 'Hangerő fel', + 'hotkeys.actions.volumeDown' => 'Hangerő le', + 'hotkeys.actions.seekForward' => ({required Object seconds}) => 'Tekerés előre (${seconds} mp)', + 'hotkeys.actions.seekBackward' => ({required Object seconds}) => 'Tekerés hátra (${seconds} mp)', + 'hotkeys.actions.fullscreenToggle' => 'Teljes képernyős mód váltása', + 'hotkeys.actions.muteToggle' => 'Némítás be- és kikapcsolása', + 'hotkeys.actions.subtitleToggle' => 'Feliratok be- és kikapcsolása', + 'hotkeys.actions.audioTrackNext' => 'Következő hangsáv', + 'hotkeys.actions.subtitleTrackNext' => 'Következő feliratsáv', + 'hotkeys.actions.chapterNext' => 'Következő fejezet', + 'hotkeys.actions.chapterPrevious' => 'Előző fejezet', + 'hotkeys.actions.episodeNext' => 'Következő epizód', + 'hotkeys.actions.episodePrevious' => 'Előző epizód', + 'hotkeys.actions.speedIncrease' => 'Sebesség növelése', + 'hotkeys.actions.speedDecrease' => 'Sebesség csökkentése', + 'hotkeys.actions.speedReset' => 'Sebesség alaphelyzetbe állítása', + 'hotkeys.actions.zoomIn' => 'Nagyítás', + 'hotkeys.actions.zoomOut' => 'Kicsinyítés', + 'hotkeys.actions.zoomReset' => 'Nagyítás alaphelyzetbe állítása', + 'hotkeys.actions.subSeekNext' => 'Ugrás a következő feliratra', + 'hotkeys.actions.subSeekPrev' => 'Ugrás az előző feliratra', + 'hotkeys.actions.shaderToggle' => 'Shaderek be- és kikapcsolása', + 'hotkeys.actions.skipMarker' => 'Intró/stáblista átugrása', + 'hotkeys.actions.screenshot' => 'Képernyőkép készítése', + 'fileInfo.title' => 'Fájlinformáció', + 'fileInfo.video' => 'Videó', + 'fileInfo.audio' => 'Hang', + 'fileInfo.file' => 'Fájl', + 'fileInfo.advanced' => 'Haladó', + 'fileInfo.codec' => 'Kodek', + 'fileInfo.resolution' => 'Felbontás', + 'fileInfo.bitrate' => 'Bitráta', + 'fileInfo.frameRate' => 'Képkockasebesség', + 'fileInfo.aspectRatio' => 'Méretarány', + 'fileInfo.profile' => 'Profil', + 'fileInfo.bitDepth' => 'Bitmélység', + 'fileInfo.colorSpace' => 'Színtér', + 'fileInfo.colorRange' => 'Színtartomány', + 'fileInfo.colorPrimaries' => 'Elsődleges színek', + 'fileInfo.chromaSubsampling' => 'Krominancia-alulmintavételezés', + 'fileInfo.channels' => 'Csatornák', + 'fileInfo.subtitles' => 'Feliratok', + 'fileInfo.overallBitrate' => 'Összesített bitráta', + 'fileInfo.path' => 'Elérési út', + 'fileInfo.size' => 'Méret', + 'fileInfo.container' => 'Konténer', + 'fileInfo.duration' => 'Időtartam', + 'fileInfo.optimizedForStreaming' => 'Adatfolyam-továbbításra optimalizálva', + 'fileInfo.has64bitOffsets' => '64 bites eltolások', + 'mediaMenu.markAsWatched' => 'Megjelölés megtekintettként', + 'mediaMenu.markAsUnwatched' => 'Megjelölés nem megtekintettként', + 'mediaMenu.removeFromContinueWatching' => 'Eltávolítás a folytatásból', + 'mediaMenu.viewDetails' => 'Részletek megtekintése', + 'mediaMenu.goToSeries' => 'Ugrás a sorozathoz', + 'mediaMenu.shufflePlay' => 'Véletlenszerű lejátszás', + 'mediaMenu.shuffleNotAvailableOffline' => 'A véletlenszerű lejátszás nem érhető el offline', + 'mediaMenu.fileInfo' => 'Fájlinformáció', + 'mediaMenu.deleteFromServer' => 'Törlés a szerverről', + 'mediaMenu.confirmDelete' => 'Törlöd ezt a médiát és a fájljait a szerveredről?', + 'mediaMenu.deleteMultipleWarning' => 'Ez magában foglalja az összes epizódot és azok fájljait.', + 'mediaMenu.mediaDeletedSuccessfully' => 'Médiaelem sikeresen törölve', + 'mediaMenu.mediaFailedToDelete' => 'Nem sikerült a médiaelem törlése', + 'mediaMenu.rate' => 'Értékelés', + 'mediaMenu.playFromBeginning' => 'Lejátszás az elejétől', + 'mediaMenu.playVersion' => 'Verzió lejátszása...', + 'rateSheet.title' => 'Értékelés', + 'rateSheet.server' => 'Szerver', + 'rateSheet.favorite' => 'Kedvenc', + 'rateSheet.favorited' => 'Kedvencekhez hozzáadva', + 'rateSheet.saved' => 'Mentve', + 'rateSheet.notAvailable' => 'Nincs találat', + 'rateSheet.noConnectedServices' => 'Az értékeléshez csatlakoztass egy szolgáltatást a Beállításokban.', + 'accessibility.mediaCardMovie' => ({required Object title}) => '${title}, film', + 'accessibility.mediaCardShow' => ({required Object title}) => '${title}, TV-sorozat', + 'accessibility.mediaCardEpisode' => ({required Object title, required Object episodeInfo}) => '${title}, ${episodeInfo}', + 'accessibility.mediaCardSeason' => ({required Object title, required Object seasonInfo}) => '${title}, ${seasonInfo}', + 'accessibility.mediaCardWatched' => 'megtekintve', + 'accessibility.mediaCardPartiallyWatched' => ({required Object percent}) => '${percent} százalék megtekintve', + 'accessibility.mediaCardUnwatched' => 'még nem láttad', + 'accessibility.tapToPlay' => 'Koppints a lejátszáshoz', + 'accessibility.decrease' => 'Csökkentés', + 'accessibility.increase' => 'Növelés', + 'accessibility.decreaseValue' => ({required Object label}) => '${label} csökkentése', + 'accessibility.increaseValue' => ({required Object label}) => '${label} növelése', + 'accessibility.hue' => 'Árnyalat', + 'accessibility.saturation' => 'Telítettség', + 'accessibility.brightness' => 'Fényerő', + 'accessibility.hexColor' => 'Hex színkód', + 'accessibility.expandText' => 'Szöveg kibontása', + 'accessibility.collapseText' => 'Szöveg összecsukása', + 'accessibility.alphabetNavigation' => 'Ábécé szerinti navigáció', + 'accessibility.alphabetScrollHint' => 'A betűnkénti léptetéshez pöccints felfelé vagy lefelé', + 'accessibility.rowColumnPosition' => ({required Object row, required Object rowCount, required Object column, required Object columnCount}) => '${row}. sor a(z) ${rowCount} sorból, ${column}. oszlop a(z) ${columnCount} oszlopból', + 'accessibility.rowPosition' => ({required Object row, required Object rowCount}) => '${row}. sor a(z) ${rowCount} sorból', + 'tooltips.shufflePlay' => 'Véletlenszerű lejátszás', + 'tooltips.playTrailer' => 'Előzetes lejátszása', + 'tooltips.markAsWatched' => 'Megjelölés megtekintettként', + 'tooltips.markAsUnwatched' => 'Megjelölés nem megtekintettként', + 'audioTracks.track' => ({required Object n}) => '${n}. hangsáv', + 'videoControls.audioLabel' => 'Hang', + 'videoControls.subtitlesLabel' => 'Feliratok', + 'videoControls.resetToZero' => 'Visszaállítás 0 ms-ra', + 'videoControls.addTime' => ({required Object amount, required Object unit}) => '+${amount}${unit}', + 'videoControls.minusTime' => ({required Object amount, required Object unit}) => '-${amount}${unit}', + 'videoControls.playsLater' => ({required Object label}) => '${label}: későbbre állítva', + 'videoControls.playsEarlier' => ({required Object label}) => '${label}: korábbra állítva', + 'videoControls.noOffset' => 'Nincs eltolás', + 'videoControls.letterbox' => 'Fekete sávok', + 'videoControls.fillScreen' => 'Képernyő kitöltése', + 'videoControls.stretch' => 'Nyújtás', + 'videoControls.lockRotation' => 'Forgatás zárolása', + 'videoControls.unlockRotation' => 'Forgatás feloldása', + 'videoControls.timerActive' => 'Időzítő aktív', + 'videoControls.playbackWillPauseIn' => ({required Object duration}) => 'A lejátszás ${duration} múlva szünetel', + 'videoControls.sleepTimerEndOfVideo' => 'Jelenlegi videó vége', + 'videoControls.sleepTimerStopAtHeader' => 'Leállítás ekkor', + 'videoControls.sleepTimerDurationHeader' => 'Időzítő', + 'videoControls.playbackWillPauseAtEnd' => 'A lejátszás szünetel a videó végén', + 'videoControls.stillWatching' => 'Még nézed?', + 'videoControls.pausingIn' => ({required Object seconds}) => 'Szüneteltetés ${seconds} mp múlva', + 'videoControls.continueWatching' => 'Folytatás', + 'videoControls.autoPlayNext' => 'Következő automatikus lejátszása', + 'videoControls.playNext' => 'Következő lejátszása', + 'videoControls.playButton' => 'Lejátszás', + 'videoControls.pauseButton' => 'Szünet', + 'videoControls.showPlaybackControls' => 'Lejátszásvezérlők megjelenítése', + 'videoControls.hidePlaybackControls' => 'Lejátszásvezérlők elrejtése', + 'videoControls.seekBackwardButton' => ({required Object seconds}) => 'Tekerés hátra ${seconds} másodperccel', + 'videoControls.seekForwardButton' => ({required Object seconds}) => 'Tekerés előre ${seconds} másodperccel', + 'videoControls.previousButton' => 'Előző epizód', + 'videoControls.nextButton' => 'Következő epizód', + 'videoControls.previousChapterButton' => 'Előző fejezet', + 'videoControls.nextChapterButton' => 'Következő fejezet', + 'videoControls.muteButton' => 'Némítás', + 'videoControls.unmuteButton' => 'Hang visszakapcsolása', + 'videoControls.settingsButton' => 'Lejátszási beállítások', + 'videoControls.tracksButton' => 'Hang és feliratok', + 'videoControls.chaptersButton' => 'Fejezetek', + 'videoControls.versionQualityButton' => 'Verzió és minőség', + 'videoControls.versionColumnHeader' => 'Verzió', + 'videoControls.qualityColumnHeader' => 'Minőség', + 'videoControls.qualityOriginal' => 'Eredeti', + 'videoControls.qualityPresetLabel' => ({required Object resolution, required Object bitrate}) => '${resolution}p ${bitrate} Mbps', + 'videoControls.transcodeUnavailableFallback' => 'A transzkódolás nem érhető el — eredeti minőség lejátszása', + 'videoControls.subtitleUnavailableFallback' => 'A kiválasztott feliratot nem sikerült betölteni — folytatás felirat nélkül', + 'videoControls.pipButton' => 'Kép a képben mód', + 'videoControls.aspectRatioButton' => 'Méretarány', + 'videoControls.ambientLighting' => 'Környezeti megvilágítás', + 'videoControls.fullscreenButton' => 'Teljes képernyős mód bekapcsolása', + 'videoControls.exitFullscreenButton' => 'Teljes képernyős mód kikapcsolása', + 'videoControls.alwaysOnTopButton' => 'Mindig legfelül', + 'videoControls.rotationLockButton' => 'Elforgatás zárolása', + 'videoControls.lockScreen' => 'Képernyő zárolása', + 'videoControls.screenLockButton' => 'Képernyőzár', + 'videoControls.longPressToUnlock' => 'Nyomd hosszan a feloldáshoz', + 'videoControls.timelineSlider' => 'Videó idősáv', + 'videoControls.volumeSlider' => 'Hangerő', + 'videoControls.endsAt' => ({required Object time}) => 'Vége: ${time}', + 'videoControls.pipActive' => 'Lejátszás kép a képben módban', + 'videoControls.pipFailed' => 'Nem sikerült elindítani a kép a képben módot', + 'videoControls.screenshotSaved' => 'Képernyőkép elmentve', + 'videoControls.zoomPercent' => ({required Object percent}) => 'Nagyítás ${percent}%', + 'videoControls.pipErrors.androidVersion' => 'Android 8.0 vagy újabb szükséges', + 'videoControls.pipErrors.iosVersion' => 'iOS 15.0 vagy újabb szükséges', + 'videoControls.pipErrors.permissionDisabled' => 'A kép a képben mód le van tiltva. Engedélyezd a rendszerbeállításokban.', + 'videoControls.pipErrors.notSupported' => 'Az eszköz nem támogatja a kép a képben módot', + 'videoControls.pipErrors.voSwitchFailed' => 'Nem sikerült átváltani a videókimenetet a kép a képben módhoz', + 'videoControls.pipErrors.failed' => 'Nem sikerült elindítani a kép a képben módot', + 'videoControls.pipErrors.unknown' => ({required Object error}) => 'Hiba történt: ${error}', + 'videoControls.chapters' => 'Fejezetek', + 'videoControls.noChaptersAvailable' => 'Nincsenek elérhető fejezetek', + 'videoControls.queue' => 'Lejátszási sor', + 'videoControls.noQueueItems' => 'Nincsenek elemek a sorban', + 'videoControls.searchSubtitles' => 'Feliratok keresése', + 'videoControls.language' => 'Nyelv', + 'videoControls.noSubtitlesFound' => 'Nem találhatók feliratok', + 'videoControls.noSubtitlesAvailable' => 'Nincsenek elérhető feliratok', + 'videoControls.noAudioTracksAvailable' => 'Nincsenek elérhető hangsávok', + 'videoControls.noTracksAvailable' => 'Nincsenek elérhető sávok', + 'videoControls.subtitleDownloaded' => 'Felirat letöltve', + 'videoControls.subtitleDownloadedNotApplied' => 'Felirat letöltve, de nem sikerült kiválasztani', + 'videoControls.subtitleDownloadFailed' => 'Nem sikerült a felirat letöltése', + 'videoControls.searchLanguages' => 'Nyelvek keresése...', + _ => null, + } ?? switch (path) { + 'messages.markedAsWatched' => 'Megjelölve megtekintettként', + 'messages.markedAsUnwatched' => 'Megjelölve nem megtekintettként', + 'messages.markedAsWatchedOffline' => 'Megjelölve megtekintettként (szinkronizálás online állapotban)', + 'messages.markedAsUnwatchedOffline' => 'Megjelölve nem megtekintettként (szinkronizálás online állapotban)', + 'messages.autoRemovedWatchedDownload' => ({required Object title}) => 'Automatikusan eltávolítva: ${title}', + 'messages.autoRemovedWatchedDownloads' => ({required num n}) => (_root.$meta.cardinalResolver ?? PluralResolvers.cardinal('hu'))(n, one: '${n} megtekintett letöltés automatikusan eltávolítva', other: '${n} megtekintett letöltés automatikusan eltávolítva', ), + 'messages.removedFromContinueWatching' => 'Eltávolítva a folytatásból', + 'messages.errorLoading' => ({required Object error}) => 'Hiba: ${error}', + 'messages.streamInterrupted' => 'Az adatfolyam megszakadt. Az újrapróbálkozáshoz indítsd el a lejátszást, vagy tekerj másik pozícióra.', + 'messages.liveStreamInterrupted' => 'Az élő adás megszakadt. Nyomd meg a lejátszást az újrapróbálkozáshoz.', + 'messages.fileInfoNotAvailable' => 'A fájlinformáció nem érhető el', + 'messages.playbackAuthenticationRequired' => 'Az elem lejátszásához jelentkezz be újra a médiaszerverre.', + 'messages.playbackServerUnavailable' => 'A médiaszerver nem érhető el. Próbáld újra később.', + 'messages.playbackDataInvalid' => 'A szerver érvénytelen lejátszási adatokat küldött.', + 'messages.playbackCancelled' => 'A lejátszás megszakítva.', + 'messages.playbackFailed' => 'Nem sikerült elindítani a lejátszást.', + 'messages.errorLoadingFileInfo' => ({required Object error}) => 'Hiba a fájlinformációk betöltésekor: ${error}', + 'messages.errorLoadingSeries' => 'Hiba a sorozat betöltésekor', + 'messages.musicNotSupported' => 'A zenelejátszás még nem támogatott', + 'messages.noDescriptionAvailable' => 'Nincs elérhető leírás', + 'messages.noProfilesAvailable' => 'Nincsenek elérhető profilok', + 'messages.contactAdminForProfiles' => 'Lépj kapcsolatba a szerver adminisztrátorával profilok hozzáadásához', + 'messages.unableToDetermineLibrarySection' => 'Nem sikerült meghatározni az elem könyvtári részlegét', + 'messages.logsCleared' => 'Naplók törölve', + 'messages.logsCopied' => 'Naplók a vágólapra másolva', + 'messages.noLogsAvailable' => 'Nincsenek elérhető naplók', + 'messages.libraryScanning' => ({required Object title}) => '"${title}" beolvasása...', + 'messages.libraryScanStarted' => ({required Object title}) => 'Könyvtár beolvasása elindítva a következőhöz: "${title}"', + 'messages.libraryScanFailed' => ({required Object error}) => 'Nem sikerült a könyvtár beolvasása: ${error}', + 'messages.metadataRefreshing' => ({required Object title}) => 'Metaadatok frissítése a következőhöz: "${title}"...', + 'messages.metadataRefreshStarted' => ({required Object title}) => 'Metaadatok frissítése elindítva a következőhöz: "${title}"', + 'messages.metadataRefreshFailed' => ({required Object error}) => 'Nem sikerült a metaadatok frissítése: ${error}', + 'messages.logoutConfirm' => 'Biztosan ki szeretnél jelentkezni?', + 'messages.noSeasonsFound' => 'Nem találhatók évadok', + 'messages.seasonsLoadFailed' => 'Nem sikerült az évadok betöltése', + 'messages.noEpisodesFound' => 'Nem találhatók epizódok az első évadban', + 'messages.noEpisodesFoundGeneral' => 'Nem találhatók epizódok', + 'messages.episodesLoadFailed' => 'Nem sikerült az epizódok betöltése', + 'messages.noResultsFound' => 'Nincs találat', + 'messages.sleepTimerSet' => ({required Object label}) => 'Elalvási időzítő beállítva: ${label}', + 'messages.noItemsAvailable' => 'Nincsenek elérhető elemek', + 'messages.failedToCreatePlayQueueNoItems' => 'Nem sikerült létrehozni a lejátszási sort — nincsenek elemek', + 'messages.failedPlayback' => ({required Object action, required Object error}) => 'Nem sikerült a művelet (${action}): ${error}', + 'messages.switchingToCompatiblePlayer' => 'Váltás kompatibilis lejátszóra...', + 'messages.serverLimitTitle' => 'A lejátszás nem sikerült', + 'messages.serverLimitBody' => 'Szerverhiba (HTTP 500). A munkamenetet valószínűleg egy sávszélességi vagy átkódolási korlát utasította el. Kérd meg a tulajdonost a korlát módosítására.', + 'messages.logsUploaded' => 'Naplók feltöltve', + 'messages.logsUploadFailed' => 'Nem sikerült a naplók feltöltése', + 'messages.logId' => 'Naplóazonosító', + 'subtitlingStyling.text' => 'Szöveg', + 'subtitlingStyling.border' => 'Keret', + 'subtitlingStyling.background' => 'Háttér', + 'subtitlingStyling.fontSize' => 'Betűméret', + 'subtitlingStyling.textColor' => 'Szövegszín', + 'subtitlingStyling.borderSize' => 'Keretméret', + 'subtitlingStyling.borderColor' => 'Keretszín', + 'subtitlingStyling.backgroundOpacity' => 'Háttér átlátszatlansága', + 'subtitlingStyling.backgroundColor' => 'Háttérszín', + 'subtitlingStyling.position' => 'Pozíció', + 'subtitlingStyling.assOverride' => 'ASS felülbírálása', + 'subtitlingStyling.overrideScale' => 'Skálázás', + 'subtitlingStyling.overrideForce' => 'Kényszerítés', + 'subtitlingStyling.overrideStrip' => 'Stílus eltávolítása', + 'subtitlingStyling.positionTop' => 'Fent', + 'subtitlingStyling.positionBottom' => 'Lent', + 'subtitlingStyling.bold' => 'Félkövér', + 'subtitlingStyling.italic' => 'Dőlt', + 'subtitlingStyling.renderResolution' => 'Renderelési felbontás', + 'subtitlingStyling.renderResolutionScreen' => 'Képernyőfelbontás', + 'subtitlingStyling.renderResolutionVideo' => 'Videófelbontás', + 'mpvConfig.title' => 'mpv.conf', + 'mpvConfig.description' => 'Haladó videólejátszó beállítások', + 'mpvConfig.presets' => 'Előbeállítások', + 'mpvConfig.noPresets' => 'Nincsenek mentett előbeállítások', + 'mpvConfig.saveAsPreset' => 'Mentés előbeállításként...', + 'mpvConfig.presetName' => 'Előbeállítás neve', + 'mpvConfig.presetNameHint' => 'Add meg az előbeállítás nevét', + 'mpvConfig.loadPreset' => 'Betöltés', + 'mpvConfig.deletePreset' => 'Törlés', + 'mpvConfig.presetSaved' => 'Előbeállítás mentve', + 'mpvConfig.presetLoaded' => 'Előbeállítás betöltve', + 'mpvConfig.presetDeleted' => 'Előbeállítás törölve', + 'mpvConfig.confirmDeletePreset' => 'Biztosan törölni szeretnéd ezt az előbeállítást?', + 'mpvConfig.configPlaceholder' => 'gpu-api=vulkan\nhwdec=auto\n# megjegyzés', + 'dialog.confirmAction' => 'Művelet megerősítése', + 'profiles.addPlezyProfile' => 'Plezy profil hozzáadása', + 'profiles.switchingProfile' => 'Profilváltás…', + 'profiles.deleteThisProfileTitle' => 'Törlöd ezt a profilt?', + 'profiles.deleteThisProfileMessage' => ({required Object displayName}) => '${displayName} eltávolítása. A kapcsolatokat nem érinti.', + 'profiles.active' => 'Aktív', + 'profiles.manage' => 'Kezelés', + 'profiles.delete' => 'Törlés', + 'profiles.signOut' => 'Kijelentkezés', + 'profiles.signOutPlexTitle' => 'Kijelentkezel a Plexből?', + 'profiles.signOutPlexMessage' => ({required Object displayName}) => 'Eltávolítod a(z) ${displayName} profilt és az összes Plex Home-felhasználót? Bármikor visszajelentkezhetsz.', + 'profiles.signedOutPlex' => 'Kijelentkezve a Plexből.', + 'profiles.signOutFailed' => 'A kijelentkezés nem sikerült.', + 'profiles.sectionTitle' => 'Profilok', + 'profiles.summarySingle' => 'Adj hozzá profilokat a kezelt felhasználók és a helyi profilok együttes használatához', + 'profiles.summaryMultipleWithActive' => ({required Object count, required Object activeName}) => '${count} profil · aktív: ${activeName}', + 'profiles.summaryMultiple' => ({required Object count}) => '${count} profil', + 'profiles.removeConnectionTitle' => 'Eltávolítod a kapcsolatot?', + 'profiles.removeConnectionMessage' => ({required Object displayName, required Object connectionLabel}) => 'Eltávolítod ${displayName} hozzáférését a(z) ${connectionLabel} kapcsolathoz. Más profilok megtartják.', + 'profiles.deleteProfileTitle' => 'Törlöd a profilt?', + 'profiles.deleteProfileMessage' => ({required Object displayName}) => 'Eltávolítod a(z) ${displayName} profilt és annak kapcsolatait. A szerverek elérhetőek maradnak.', + 'profiles.profileNameLabel' => 'Profil neve', + 'profiles.pinProtectionLabel' => 'PIN-kódos védelem', + 'profiles.pinManagedByPlex' => 'A PIN-kódot a Plex kezeli. Szerkesztés a plex.tv oldalon.', + 'profiles.noPinSetEditOnPlex' => 'Nincs PIN beállítva. PIN kéréséhez szerkeszd az otthoni felhasználót a plex.tv-n.', + 'profiles.setPin' => 'PIN beállítása', + 'profiles.setPinTitle' => 'PIN beállítása', + 'profiles.confirmPinTitle' => 'PIN megerősítése', + 'profiles.pinSet' => 'PIN beállítva', + 'profiles.changePin' => 'Módosítás', + 'profiles.removePin' => 'Eltávolítás', + 'profiles.connectionsLabel' => 'Kapcsolatok', + 'profiles.add' => 'Hozzáadás', + 'profiles.deleteProfileButton' => 'Profil törlése', + 'profiles.noConnectionsHint' => 'Nincsenek kapcsolatok — adj hozzá egyet a profil használatához.', + 'profiles.noConnections' => 'Nincsenek kapcsolatok', + 'profiles.plexHomeAccount' => 'Plex Home-fiók', + 'profiles.connectionDefault' => 'Alapértelmezett', + 'profiles.connectionAs' => ({required Object displayName}) => 'mint ${displayName}', + 'profiles.makeDefault' => 'Beállítás alapértelmezettként', + 'profiles.removeConnection' => 'Eltávolítás', + 'profiles.profileRenamed' => 'Profil átnevezve.', + 'profiles.borrowAddTo' => ({required Object displayName}) => 'Hozzáadás a következőhöz: ${displayName}', + 'profiles.borrowExplain' => 'Használd egy másik profil kapcsolatát. A PIN-kóddal védett profilokhoz PIN-kód szükséges.', + 'profiles.borrowEmpty' => 'Még nincs használható kapcsolat.', + 'profiles.borrowEmptySubtitle' => 'Először csatlakoztasd a Plexet vagy a Jellyfint egy másik profilhoz.', + 'profiles.borrowLoadFailed' => 'Nem sikerült betölteni az elérhető kapcsolatokat. Próbáld újra.', + 'profiles.borrowFromProfile' => ({required Object displayName}) => 'Innen: ${displayName}', + 'profiles.borrowConnectionBorrowed' => 'Kapcsolat átvéve.', + 'profiles.borrowFailed' => 'Nem sikerült átvenni a kapcsolatot.', + 'profiles.incorrectPin' => 'Helytelen PIN-kód.', + 'profiles.incorrectPinTryAgain' => 'Helytelen PIN-kód. Próbáld újra.', + 'profiles.sourceProfileMissingParentAccount' => 'A forrásprofilból hiányzik a szülőfiók.', + 'profiles.failedToLoadHomeUsers' => 'Nem sikerült betölteni a Plex Home-felhasználókat. Ellenőrizd a kapcsolatot, majd próbáld újra.', + 'profiles.failedToVerifyPin' => 'Nem sikerült a PIN-kód ellenőrzése.', + 'profiles.newProfile' => 'Új profil', + 'profiles.profileNameHint' => 'pl. Vendégek, Gyerekek, Nappali', + 'profiles.pinProtectionOptional' => 'PIN-védelem (opcionális)', + 'profiles.pinExplain' => '4 jegyű PIN-kód szükséges a profilváltáshoz.', + 'profiles.continueButton' => 'Folytatás', + 'profiles.pinsDontMatch' => 'A PIN-kódok nem egyeznek', + 'connections.sectionTitle' => 'Kapcsolatok', + 'connections.addConnection' => 'Kapcsolat hozzáadása', + 'connections.addConnectionSubtitleNoProfile' => 'Jelentkezz be Plexszel, vagy csatlakoztass egy Jellyfin-szervert', + 'connections.addConnectionSubtitleScoped' => ({required Object displayName}) => 'Hozzáadás a következőhöz (${displayName}): Plex, Jellyfin vagy más profilkapcsolat', + 'connections.sessionExpiredOne' => ({required Object name}) => 'A(z) ${name} munkamenete lejárt', + 'connections.sessionExpiredMany' => ({required Object count}) => '${count} szerver munkamenete lejárt', + 'connections.signInAgain' => 'Bejelentkezés újra', + 'connections.editJellyfinTitle' => 'Jellyfin kapcsolat szerkesztése', + 'connections.editJellyfinIntro' => ({required Object serverName}) => 'URL-ek hozzáadása vagy eltávolítása ehhez: ${serverName}. A Plezy a legalacsonyabb késleltetésű, elérhető URL-t fogja használni.', + 'discover.title' => 'Felfedezés', + 'discover.noContentAvailable' => 'Nincs elérhető tartalom', + 'discover.addMediaToLibraries' => 'Adj hozzá médiát a könyvtáraidhoz', + 'discover.continueWatching' => 'Folytatás', + 'discover.continueWatchingIn' => ({required Object library}) => 'Folytatás itt: ${library}', + 'discover.nextUp' => 'Következik', + 'discover.nextUpIn' => ({required Object library}) => 'Következik itt: ${library}', + 'discover.recentlyAdded' => 'Legutóbb hozzáadva', + 'discover.recentlyAddedIn' => ({required Object library}) => 'Legutóbb hozzáadva itt: ${library}', + 'discover.latestAlbumsIn' => ({required Object library}) => 'Legújabb albumok itt: ${library}', + 'discover.recentlyPlayedIn' => ({required Object library}) => 'Legutóbb lejátszva itt: ${library}', + 'discover.mostPlayedIn' => ({required Object library}) => 'Legtöbbször lejátszva itt: ${library}', + 'discover.playEpisode' => ({required Object season, required Object episode}) => '${season}. évad, ${episode}. epizód', + 'discover.overview' => 'Áttekintés', + 'discover.cast' => 'Szereplők', + 'discover.extras' => 'Előzetesek és extrák', + 'discover.studio' => 'Stúdió', + 'discover.rating' => 'Értékelés', + 'discover.movie' => 'Film', + 'discover.tvShow' => 'TV-sorozat', + 'discover.minutesLeft' => ({required Object minutes}) => '${minutes} perc van hátra', + 'discover.moreLikeThis' => 'Hasonló tartalmak', + 'errors.searchFailed' => ({required Object error}) => 'Keresés sikertelen: ${error}', + 'errors.connectionTimeout' => ({required Object context}) => 'Hálózati időtúllépés a következő betöltésekor: ${context}', + 'errors.connectionFailed' => 'Nem sikerült csatlakozni a médiaszerverhez', + 'errors.unableToLoad' => ({required Object context}) => 'Nem sikerült betölteni a következőt: ${context}. Próbáld újra.', + 'errors.noClientAvailable' => 'Nincs elérhető kliens', + 'errors.pleaseEnterToken' => 'Adj meg egy tokent', + 'errors.invalidToken' => 'Érvénytelen token', + 'errors.failedToVerifyToken' => ({required Object error}) => 'Nem sikerült a token ellenőrzése: ${error}', + 'errors.failedToSwitchProfile' => ({required Object displayName}) => 'Nem sikerült átváltani a következő profilra: ${displayName}', + 'errors.failedToDeleteProfile' => ({required Object displayName}) => 'Nem sikerült törölni a következőt: ${displayName}', + 'errors.failedToRate' => 'Nem sikerült frissíteni az értékelést', + 'libraries.title' => 'Könyvtárak', + 'libraries.fallbackTitle' => 'Könyvtár', + 'libraries.scanLibraryFiles' => 'Könyvtárfájlok beolvasása', + 'libraries.scanLibrary' => 'Könyvtár beolvasása', + 'libraries.analyze' => 'Elemzés', + 'libraries.analyzeLibrary' => 'Könyvtár elemzése', + 'libraries.refreshMetadata' => 'Metaadatok frissítése', + 'libraries.emptyTrash' => 'Lomtár ürítése', + 'libraries.emptyingTrash' => ({required Object title}) => 'Lomtár ürítése a következőhöz: "${title}"...', + 'libraries.trashEmptied' => ({required Object title}) => 'Lomtár kiürítve a következőhöz: "${title}"', + 'libraries.failedToEmptyTrash' => ({required Object error}) => 'Nem sikerült a lomtár ürítése: ${error}', + 'libraries.analyzing' => ({required Object title}) => '"${title}" elemzése...', + 'libraries.analysisStarted' => ({required Object title}) => 'Elemzés elindítva a következőhöz: "${title}"', + 'libraries.failedToAnalyze' => ({required Object error}) => 'Nem sikerült a könyvtár elemzése: ${error}', + 'libraries.noLibrariesFound' => 'Nem találhatók könyvtárak', + 'libraries.allLibrariesHidden' => 'Minden könyvtár el van rejtve', + 'libraries.hiddenLibrariesCount' => ({required Object count}) => 'Rejtett könyvtárak (${count})', + 'libraries.thisLibraryIsEmpty' => 'Ez a könyvtár üres', + 'libraries.noItemsMatchFilters' => 'Nincs az aktív szűrőknek megfelelő elem', + 'libraries.resetFilters' => 'Szűrők visszaállítása', + 'libraries.all' => 'Összes', + 'libraries.clearAll' => 'Összes törlése', + 'libraries.scanLibraryConfirm' => ({required Object title}) => 'Biztosan be szeretnéd olvasni a következőt: "${title}"?', + 'libraries.analyzeLibraryConfirm' => ({required Object title}) => 'Biztosan elemezni szeretnéd a következőt: "${title}"?', + 'libraries.refreshMetadataConfirm' => ({required Object title}) => 'Biztosan frissíteni szeretnéd a metaadatokat a következőhöz: "${title}"?', + 'libraries.emptyTrashConfirm' => ({required Object title}) => 'Biztosan ki szeretnéd üríteni a lomtárat a következőnél: "${title}"?', + 'libraries.manageLibraries' => 'Könyvtárak kezelése', + 'libraries.sort' => 'Rendezés', + 'libraries.sortBy' => 'Rendezés ez alapján', + 'libraries.filters' => 'Szűrők', + 'libraries.confirmActionMessage' => 'Biztosan végre szeretnéd hajtani ezt a műveletet?', + 'libraries.showLibrary' => 'Könyvtár megjelenítése', + 'libraries.hideLibrary' => 'Könyvtár elrejtése', + 'libraries.libraryOptions' => 'Könyvtár beállításai', + 'libraries.content' => 'könyvtár tartalma', + 'libraries.selectLibrary' => 'Könyvtár kiválasztása', + 'libraries.filtersWithCount' => ({required Object count}) => 'Szűrők (${count})', + 'libraries.noRecommendations' => 'Nincsenek elérhető ajánlások', + 'libraries.noCollections' => 'Nincsenek gyűjtemények ebben a könyvtárban', + 'libraries.noFoldersFound' => 'Nem találhatók mappák', + 'libraries.folders' => 'mappák', + 'libraries.tabs.recommended' => 'Ajánlott', + 'libraries.tabs.browse' => 'Böngészés', + 'libraries.tabs.collections' => 'Gyűjtemények', + 'libraries.tabs.playlists' => 'Lejátszási listák', + 'libraries.groupings.title' => 'Csoportosítás', + 'libraries.groupings.all' => 'Összes', + 'libraries.groupings.movies' => 'Filmek', + 'libraries.groupings.shows' => 'TV-sorozatok', + 'libraries.groupings.seasons' => 'Évadok', + 'libraries.groupings.episodes' => 'Epizódok', + 'libraries.groupings.artists' => 'Előadók', + 'libraries.groupings.albums' => 'Albumok', + 'libraries.groupings.tracks' => 'Zeneszámok', + 'libraries.groupings.folders' => 'Mappák', + 'libraries.filterCategories.genre' => 'Műfaj', + 'libraries.filterCategories.year' => 'Év', + 'libraries.filterCategories.contentRating' => 'Korhatár-besorolás', + 'libraries.filterCategories.tag' => 'Címke', + 'libraries.filterCategories.unwatched' => 'Nem látott', + 'libraries.filterCategories.unplayed' => 'Nem lejátszott', + 'libraries.filterCategories.favorites' => 'Kedvencek', + 'libraries.sortLabels.title' => 'Cím', + 'libraries.sortLabels.dateAdded' => 'Hozzáadás dátuma', + 'libraries.sortLabels.releaseDate' => 'Bemutató dátuma', + 'libraries.sortLabels.rating' => 'Értékelés', + 'libraries.sortLabels.communityRating' => 'Közösségi értékelés', + 'libraries.sortLabels.criticRating' => 'Kritikusi értékelés', + 'libraries.sortLabels.userRating' => 'Saját értékelés', + 'libraries.sortLabels.datePlayed' => 'Lejátszás dátuma', + 'libraries.sortLabels.playCount' => 'Lejátszások száma', + 'libraries.sortLabels.productionYear' => 'Gyártási év', + 'libraries.sortLabels.runtime' => 'Játékidő', + 'libraries.sortLabels.officialRating' => 'Hivatalos besorolás', + 'libraries.sortLabels.premiereDate' => 'Premier dátuma', + 'libraries.sortLabels.startDate' => 'Kezdés dátuma', + 'libraries.sortLabels.airTime' => 'Adásidő', + 'libraries.sortLabels.studio' => 'Stúdió', + 'libraries.sortLabels.random' => 'Véletlenszerű', + 'libraries.sortLabels.dateShared' => 'Megosztás dátuma', + 'libraries.sortLabels.latestEpisodeAirDate' => 'A legutóbbi epizód sugárzási dátuma', + 'libraries.sortLabels.lastEpisodeDateAdded' => 'Utolsó epizód hozzáadásának dátuma', + 'about.title' => 'Névjegy', + 'about.openSourceLicenses' => 'Nyílt forráskódú licencek', + 'about.versionLabel' => ({required Object version}) => 'Verzió: ${version}', + 'about.appDescription' => 'Gyönyörű Flutter-kliens a Plexhez és a Jellyfinhez', + 'about.viewLicensesDescription' => 'Külső fejlesztésű programkönyvtárak licenceinek megtekintése', + 'serverSelection.noServersFoundForAccount' => ({required Object username, required Object email}) => 'Nem találhatók szerverek ehhez a fiókhoz: ${username} (${email})', + 'serverSelection.failedToLoadServers' => ({required Object error}) => 'Nem sikerült a szerverek betöltése: ${error}', + 'hubDetail.title' => 'Cím', + 'hubDetail.releaseYear' => 'Kiadási év', + 'hubDetail.dateAdded' => 'Hozzáadás dátuma', + 'hubDetail.rating' => 'Értékelés', + 'hubDetail.noItemsFound' => 'Nem találhatók elemek', + 'logs.clearLogs' => 'Naplók törlése', + 'logs.copyLogs' => 'Naplók másolása', + 'logs.uploadLogs' => 'Naplók feltöltése', + 'licenses.relatedPackages' => 'Kapcsolódó csomagok', + 'licenses.license' => 'Licenc', + 'licenses.licenseNumber' => ({required Object number}) => '${number}. licenc', + 'licenses.licensesCount' => ({required Object count}) => '${count} licenc', + 'navigation.libraries' => 'Könyvtárak', + 'navigation.downloads' => 'Letöltések', + 'navigation.liveTv' => 'Élő TV', + 'navigation.explore' => 'Böngészés', + 'explore.title' => 'Böngészés', + 'explore.selectSource' => 'Forrás kiválasztása', + 'explore.rows.watchlist' => 'Néznivalók listája', + 'explore.rows.recommendedMovies' => 'Ajánlott filmek', + 'explore.rows.recommendedShows' => 'Ajánlott sorozatok', + 'explore.rows.trendingMovies' => 'Felkapott filmek', + 'explore.rows.trendingShows' => 'Felkapott sorozatok', + 'explore.rows.popularMovies' => 'Népszerű filmek', + 'explore.rows.popularShows' => 'Népszerű sorozatok', + 'explore.rows.trendingAnime' => 'Felkapott animék', + 'explore.rows.suggestedAnime' => 'Ajánlott animék', + 'explore.rows.airingAnime' => 'Jelenleg futó top animék', + 'explore.rows.popularAnime' => 'Legnépszerűbb animék', + 'explore.rows.trending' => 'Felkapott', + 'explore.rows.upcomingMovies' => 'Közelgő filmek', + 'explore.rows.upcomingShows' => 'Közelgő sorozatok', + 'explore.status.airing' => 'Adásban', + 'explore.status.ended' => 'Befejeződött', + 'explore.status.canceled' => 'Törölve', + 'explore.status.upcoming' => 'Közelgő', + 'explore.episodeCount' => ({required num n}) => (_root.$meta.cardinalResolver ?? PluralResolvers.cardinal('hu'))(n, one: '${n} epizód', other: '${n} epizód', ), + 'explore.cast' => 'Szereplők', + 'explore.characters' => 'Karakterek', + 'explore.addToWatchlist' => 'Hozzáadás a Néznivalókhoz', + 'explore.removeFromWatchlist' => 'Eltávolítás a Néznivalókból', + 'explore.watchlistUpdateFailed' => 'Nem sikerült a Néznivalók frissítése', + 'explore.notInLibrary' => 'Nincs a könyvtáradban', + 'explore.inTheseLibraries' => 'Ezekben a könyvtárakban', + 'explore.checkingLibrary' => 'Könyvtár ellenőrzése...', + 'explore.emptyTitle' => 'Még nincs itt semmi', + 'explore.emptyMessage' => ({required Object source}) => 'A(z) ${source} forrásból származó sorok itt fognak megjelenni, amint van tartalmuk.', + 'explore.searchHint' => ({required Object source}) => 'Keresés itt: ${source}', + 'explore.searchEmpty' => ({required Object query}) => 'Nincs találat a következőre: "${query}"', + 'explore.searchPrompt' => ({required Object source}) => 'Filmek és sorozatok keresése a következőn: ${source}.', + 'explore.searchFailed' => 'A keresés nem sikerült. Ellenőrizd a kapcsolatot és próbáld újra.', + 'liveTv.title' => 'Élő TV', + 'liveTv.guide' => 'Műsorújság', + 'liveTv.noChannels' => 'Nincsenek elérhető csatornák', + 'liveTv.noDvr' => 'Egyik szerveren sincs beállítva DVR', + 'liveTv.serverUnavailable' => 'Az Élő TV szerver nem érhető el.', + 'liveTv.serverNotConnected' => 'Az Élő TV szerver nincs csatlakoztatva.', + 'liveTv.noPrograms' => 'Nincsenek elérhető műsoradatok', + 'liveTv.liveStreamFailed' => 'Nem sikerült elindítani az élő adást', + 'liveTv.unknownProgram' => 'Ismeretlen műsor', + 'liveTv.unknownHub' => 'Ismeretlen', + 'liveTv.unknownError' => 'Ismeretlen hiba', + 'liveTv.channelNumber' => ({required Object number}) => '${number}. csatorna', + 'liveTv.unknownChannel' => 'Ismeretlen csatorna', + 'liveTv.live' => 'ÉLŐ', + 'liveTv.reloadGuide' => 'Műsorújság újratöltése', + 'liveTv.now' => 'Most', + 'liveTv.today' => 'Ma', + 'liveTv.tomorrow' => 'Holnap', + 'liveTv.midnight' => 'Éjfél', + 'liveTv.overnight' => 'Késő éjszaka', + 'liveTv.morning' => 'Reggel', + 'liveTv.daytime' => 'Napközben', + 'liveTv.evening' => 'Este', + 'liveTv.lateNight' => 'Éjszaka', + 'liveTv.whatsOn' => 'Mi megy most?', + 'liveTv.watchChannel' => 'Csatorna nézése', + 'liveTv.favorites' => 'Kedvencek', + 'liveTv.reorderFavorites' => 'Kedvencek rendezése', + 'liveTv.favoritesLoadFailed' => 'Nem sikerült a kedvencek betöltése. Ellenőrizd a kapcsolatot és próbáld újra.', + 'liveTv.favoritesUpdateFailed' => 'Nem sikerült frissíteni a kedvenceket. Ellenőrizd a kapcsolatot, majd próbáld újra.', + 'liveTv.joinSession' => 'Csatlakozás a folyamatban lévő adáshoz', + 'liveTv.watchFromStart' => ({required Object minutes}) => 'Nézés az elejétől (${minutes} perce megy)', + 'liveTv.watchLive' => 'Élő adás nézése', + 'liveTv.goToLive' => 'Ugrás az élő adásra', + 'liveTv.record' => 'Felvétel', + 'liveTv.recordEpisode' => 'Epizód rögzítése', + 'liveTv.recordSeries' => 'Sorozat rögzítése', + 'liveTv.recordOptions' => 'Felvételi beállítások', + 'liveTv.saveTo' => 'Mentés ide', + 'liveTv.recordings' => 'Felvételek', + 'liveTv.scheduledRecordings' => 'Ütemezve', + 'liveTv.recordingRules' => 'Felvételi szabályok', + 'liveTv.noScheduledRecordings' => 'Nincs semmi felvételre ütemezve', + 'liveTv.manageRecording' => 'Felvétel kezelése', + 'liveTv.cancelRecording' => 'Felvétel megszakítása', + 'liveTv.cancelRecordingTitle' => 'Megszakítod ezt a felvételt?', + 'liveTv.cancelRecordingMessage' => ({required Object title}) => 'A(z) ${title} nem kerül rögzítésre.', + 'liveTv.deleteRule' => 'Szabály törlése', + 'liveTv.deleteRuleTitle' => 'Törlöd a felvételi szabályt?', + 'liveTv.deleteRuleMessage' => ({required Object title}) => 'A(z) ${title} jövőbeli epizódjai nem kerülnek rögzítésre.', + 'liveTv.recordingScheduled' => 'Felvétel ütemezve', + 'liveTv.alreadyScheduled' => 'Ez a műsor már ütemezve van', + 'liveTv.dvrAdminRequired' => 'A DVR beállításokhoz adminisztrátori fiók szükséges', + 'liveTv.recordingFailed' => 'Nem sikerült a felvétel ütemezése', + 'liveTv.recordingTargetMissing' => 'Nem sikerült meghatározni a felvételi könyvtárat', + 'liveTv.recordNotAvailable' => 'A felvétel nem érhető el ehhez a műsorhoz', + 'liveTv.recordingCancelled' => 'Felvétel megszakítva', + 'liveTv.recordingRuleDeleted' => 'Felvételi szabály törölve', + 'liveTv.processRecordingRules' => 'Szabályok újraértékelése', + 'liveTv.recordingInProgress' => 'Rögzítés folyamatban', + 'liveTv.recordingsCount' => ({required Object count}) => '${count} ütemezve', + 'liveTv.editRule' => 'Szabály szerkesztése', + 'liveTv.editRuleAction' => 'Szerkesztés', + 'liveTv.recordingRuleUpdated' => 'Felvételi szabály frissítve', + 'liveTv.guideReloadRequested' => 'Műsorújság frissítése kérve', + 'liveTv.rulesProcessRequested' => 'Szabályok újraértékelése kérve', + 'liveTv.recordShow' => 'Műsor rögzítése', + 'collections.title' => 'Gyűjtemények', + 'collections.collection' => 'Gyűjtemény', + 'collections.empty' => 'A gyűjtemény üres', + 'collections.deleteCollection' => 'Gyűjtemény törlése', + 'collections.deleteConfirm' => ({required Object title}) => 'Törlöd a következőt: "${title}"? Ez nem vonható vissza.', + 'collections.deleted' => 'Gyűjtemény törölve', + 'collections.deleteFailed' => 'Nem sikerült a gyűjtemény törlése', + 'collections.deleteFailedWithError' => ({required Object error}) => 'Nem sikerült a gyűjtemény törlése: ${error}', + 'collections.selectCollection' => 'Gyűjtemény kiválasztása', + 'collections.collectionName' => 'Gyűjtemény neve', + 'collections.enterCollectionName' => 'Add meg a gyűjtemény nevét', + 'collections.addedToCollection' => 'Hozzáadva a gyűjteményhez', + 'collections.errorAddingToCollection' => 'Nem sikerült a gyűjteményhez adni', + 'collections.created' => 'Gyűjtemény létrehozva', + 'collections.removeFromCollection' => 'Eltávolítás a gyűjteményből', + 'collections.removeFromCollectionConfirm' => ({required Object title}) => 'Eltávolítod a következőt: "${title}" ebből a gyűjteményből?', + 'collections.removedFromCollection' => 'Eltávolítva a gyűjteményből', + 'collections.removeFromCollectionFailed' => 'Nem sikerült az eltávolítás a gyűjteményből', + 'collections.removeFromCollectionError' => ({required Object error}) => 'Hiba a gyűjteményből való eltávolításkor: ${error}', + 'collections.searchCollections' => 'Gyűjtemények keresése...', + 'playlists.title' => 'Lejátszási listák', + 'playlists.playlist' => 'Lejátszási lista', + 'playlists.noPlaylists' => 'Nem találhatók lejátszási listák', + 'playlists.create' => 'Lejátszási lista létrehozása', + 'playlists.playlistName' => 'Lejátszási lista neve', + 'playlists.enterPlaylistName' => 'Add meg a lejátszási lista nevét', + 'playlists.delete' => 'Lejátszási lista törlése', + 'playlists.removeItem' => 'Eltávolítás a lejátszási listáról', + 'playlists.smartPlaylist' => 'Okos lejátszási lista', + 'playlists.itemCount' => ({required Object count}) => '${count} elem', + 'playlists.oneItem' => '1 elem', + 'playlists.emptyPlaylist' => 'Ez a lejátszási lista üres', + 'playlists.deleteConfirm' => 'Törlöd a lejátszási listát?', + 'playlists.deleteMessage' => ({required Object name}) => 'Biztosan törölni szeretnéd a következőt: "${name}"?', + 'playlists.created' => 'Lejátszási lista létrehozva', + 'playlists.deleted' => 'Lejátszási lista törölve', + 'playlists.itemAdded' => 'Hozzáadva a lejátszási listához', + 'playlists.itemRemoved' => 'Eltávolítva a lejátszási listáról', + 'playlists.selectPlaylist' => 'Lejátszási lista kiválasztása', + 'playlists.searchPlaylists' => 'Lejátszási listák keresése...', + 'playlists.errorCreating' => 'Nem sikerült a lejátszási lista létrehozása', + 'playlists.errorDeleting' => 'Nem sikerült a lejátszási lista törlése', + 'playlists.errorLoading' => 'Nem sikerült a lejátszási listák betöltése', + 'playlists.errorAdding' => 'Nem sikerült a lejátszási listához adni', + 'playlists.errorReordering' => 'Nem sikerült átrendezni a lejátszási lista elemét', + 'playlists.errorRemoving' => 'Nem sikerült az eltávolítás a lejátszási listáról', + 'music.goToAlbum' => 'Ugrás az albumhoz', + 'music.goToArtist' => 'Ugrás az előadóhoz', + 'music.instantMix' => 'Azonnali keverés', + 'music.playNext' => 'Következő lejátszása', + 'music.addToQueue' => 'Hozzáadás a lejátszási sorhoz', + 'music.discNumber' => ({required Object n}) => '${n}. lemez', + 'music.trackCount' => ({required num n}) => (_root.$meta.cardinalResolver ?? PluralResolvers.cardinal('hu'))(n, one: '${n} zeneszám', other: '${n} zeneszám', ), + 'music.nowPlaying' => 'Most szól', + 'music.playingFrom' => ({required Object title}) => 'Lejátszás innen: ${title}', + 'music.queue' => 'Lejátszási sor', + 'music.clearQueue' => 'Sor törlése', + 'music.lyrics' => 'Dalszöveg', + 'music.noLyrics' => 'Nincs elérhető dalszöveg', + 'music.sleepTimer' => 'Elalvási időzítő', + 'music.sleepTimerEndOfTrack' => 'Zeneszám vége', + 'music.sleepTimerMinutes' => ({required Object n}) => '${n} perc', + 'music.stopPlayback' => 'Lejátszás leállítása', + 'music.previousTrack' => 'Előző szám', + 'music.nextTrack' => 'Következő szám', + 'music.repeat' => 'Ismétlés', + 'music.repeatAll' => 'Összes ismétlése', + 'music.repeatOne' => 'Egy szám ismétlése', + 'watchTogether.title' => 'Watch Together (Közös nézés)', + 'watchTogether.description' => 'Nézz tartalmat szinkronban barátaiddal és családoddal', + 'watchTogether.createSession' => 'Munkamenet létrehozása', + 'watchTogether.creating' => 'Létrehozás...', + 'watchTogether.joinSession' => 'Csatlakozás munkamenethez', + 'watchTogether.joining' => 'Csatlakozás...', + 'watchTogether.controlMode' => 'Vezérlési mód', + 'watchTogether.controlModeQuestion' => 'Ki vezérelheti a lejátszást?', + 'watchTogether.hostOnly' => 'Csak a házigazda', + 'watchTogether.anyone' => 'Bárki', + 'watchTogether.hostingSession' => 'Munkamenet indítása', + 'watchTogether.inSession' => 'Munkamenetben', + 'watchTogether.sessionCode' => 'Munkamenet kódja', + 'watchTogether.openSessionControls' => 'Watch Together munkamenet-vezérlők megnyitása', + 'watchTogether.copySessionCode' => 'Munkamenet-kód másolása', + 'watchTogether.hostControlsPlayback' => 'A házigazda vezérli a lejátszást', + 'watchTogether.anyoneCanControl' => 'Bárki vezérelheti a lejátszást', + 'watchTogether.hostControls' => 'A házigazda vezérel', + 'watchTogether.anyoneControls' => 'Bárki vezérelheti', + 'watchTogether.participants' => 'Résztvevők', + 'watchTogether.host' => 'Házigazda', + 'watchTogether.hostBadge' => 'HÁZIGAZDA', + 'watchTogether.youAreHost' => 'Te vagy a házigazda', + 'watchTogether.watchingWithOthers' => 'Nézés másokkal', + 'watchTogether.endSession' => 'Munkamenet befejezése', + 'watchTogether.leaveSession' => 'Munkamenet elhagyása', + 'watchTogether.endSessionQuestion' => 'Befejezed a munkamenetet?', + 'watchTogether.leaveSessionQuestion' => 'Elhagyod a munkamenetet?', + 'watchTogether.endSessionConfirm' => 'Ezzel minden résztvevő számára véget ér a munkamenet.', + 'watchTogether.leaveSessionConfirm' => 'Eltávolításra kerülsz a munkamenetből.', + 'watchTogether.endSessionConfirmOverlay' => 'Ezzel minden résztvevő számára véget ér a közös nézés.', + 'watchTogether.leaveSessionConfirmOverlay' => 'Kilépsz a közös nézésből.', + 'watchTogether.end' => 'Befejezés', + 'watchTogether.leave' => 'Kilépés', + 'watchTogether.syncing' => 'Szinkronizálás...', + 'watchTogether.joinWatchSession' => 'Csatlakozás közös nézéshez', + 'watchTogether.enterCodeHint' => 'Add meg az 5 karakteres kódot', + 'watchTogether.pasteFromClipboard' => 'Beillesztés a vágólapról', + 'watchTogether.pleaseEnterCode' => 'Adj meg egy munkamenetkódot', + 'watchTogether.codeMustBe5Chars' => 'A munkamenetkódnak 5 karakterből kell állnia', + 'watchTogether.joinInstructions' => 'Add meg a házigazda kódját a csatlakozáshoz.', + 'watchTogether.failedToCreate' => 'Nem sikerült a munkamenet létrehozása', + 'watchTogether.failedToJoin' => 'Nem sikerült csatlakozni a munkamenethez', + 'watchTogether.sessionCodeCopied' => 'A munkamenetkód a vágólapra másolva', + 'watchTogether.relayUnreachable' => 'A relészerver nem érhető el. Az internetszolgáltató blokkolása megakadályozhatja a közös nézést.', + 'watchTogether.reconnectingToHost' => 'Újracsatlakozás a házigazdához...', + 'watchTogether.currentPlayback' => 'Jelenlegi lejátszás', + 'watchTogether.joinCurrentPlayback' => 'Csatlakozás a jelenlegi lejátszáshoz', + 'watchTogether.joinCurrentPlaybackDescription' => 'Visszatérés ahhoz, amit a házigazda éppen néz', + 'watchTogether.failedToOpenCurrentPlayback' => 'Nem sikerült megnyitni a jelenlegi lejátszást', + _ => null, + } ?? switch (path) { + 'watchTogether.participantJoined' => ({required Object name}) => '${name} csatlakozott', + 'watchTogether.participantLeft' => ({required Object name}) => '${name} kilépett', + 'watchTogether.participantPaused' => ({required Object name}) => '${name} szüneteltette a lejátszást', + 'watchTogether.participantResumed' => ({required Object name}) => '${name} folytatta a lejátszást', + 'watchTogether.participantSeeked' => ({required Object name}) => '${name} módosította a lejátszási pozíciót', + 'watchTogether.participantBuffering' => ({required Object name}) => '${name} pufferel', + 'watchTogether.participantNeedsUpdate' => ({required Object name}) => '${name} régebbi alkalmazásverziót használ — a szinkronizálás nem érhető el', + 'watchTogether.resumingWithout' => ({required Object name}) => 'Folytatás a következő nélkül: ${name}', + 'watchTogether.waitingForParticipants' => 'Várakozás, amíg a többieknél betöltődik a tartalom...', + 'watchTogether.waitingForName' => ({required Object name}) => 'Várakozás: ${name}...', + 'watchTogether.recentRooms' => 'Legutóbbi szobák', + 'watchTogether.renameRoom' => 'Szoba átnevezése', + 'watchTogether.removeRoom' => 'Eltávolítás', + 'watchTogether.guestSwitchUnavailable' => 'Nem sikerült a váltás — a szerver nem érhető el szinkronizáláshoz', + 'watchTogether.guestSwitchFailed' => 'Nem sikerült a váltás — a tartalom nem található ezen a szerveren', + 'downloads.title' => 'Letöltések', + 'downloads.manage' => 'Kezelés', + 'downloads.tvShows' => 'TV-sorozatok', + 'downloads.movies' => 'Filmek', + 'downloads.music' => 'Zene', + 'downloads.tracksQueued' => ({required Object count}) => '${count} zeneszám letöltésre sorba állítva', + 'downloads.noDownloads' => 'Még nincsenek letöltések', + 'downloads.noDownloadsDescription' => 'A letöltött tartalmak itt jelennek meg az offline megtekintéshez', + 'downloads.downloadNow' => 'Letöltés', + 'downloads.deleteDownload' => 'Letöltés törlése', + 'downloads.retryDownload' => 'Letöltés újrapróbálása', + 'downloads.downloadQueued' => 'Letöltés sorba állítva', + 'downloads.downloadResumed' => 'Letöltés folytatva', + 'downloads.serverErrorBitrate' => 'Szerverhiba: a fájl meghaladhatja a távoli bitrátakorlátot', + 'downloads.episodesQueued' => ({required Object count}) => '${count} epizód letöltésre sorba állítva', + 'downloads.downloadDeleted' => 'Letöltés törölve', + 'downloads.deleteConfirm' => ({required Object title}) => 'Törlöd a következőt: "${title}" erről az eszközről?', + 'downloads.cancelledDownloadTitle' => 'Megszakított letöltés', + 'downloads.cancelledDownloadMessage' => 'Ez a letöltés meg lett szakítva. Mit szeretnél tenni?', + 'downloads.allEpisodesAlreadyDownloaded' => 'Minden epizód le van töltve', + 'downloads.resumeDownload' => 'Letöltés folytatása', + 'downloads.cancelledDownload' => 'Megszakított letöltés', + 'downloads.syncingFile' => ({required Object file, required Object status}) => '${file} (${status} szinkronizálása)', + 'downloads.downloadedFileClickToComplete' => ({required Object file}) => 'Letöltve: ${file} - Kattints a befejezéshez', + 'downloads.partialDownloadClickToComplete' => 'Részben letöltve - Kattints a befejezéshez', + 'downloads.deleting' => 'Törlés...', + 'downloads.deletingWithProgress' => ({required Object title, required Object current, required Object total}) => '${title} törlése... (${current}/${total})', + 'downloads.queuedTooltip' => 'Sorban áll', + 'downloads.queuedFilesTooltip' => ({required Object files}) => 'Sorba állítva: ${files}', + 'downloads.downloadingTooltip' => 'Letöltés...', + 'downloads.downloadingFilesTooltip' => ({required Object files}) => 'Letöltés alatt: ${files}', + 'downloads.noDownloadsTree' => 'Nincsenek letöltések', + 'downloads.pauseAll' => 'Összes szüneteltetése', + 'downloads.resumeAll' => 'Összes folytatása', + 'downloads.deleteAll' => 'Összes törlése', + 'downloads.selectVersion' => 'Verzió kiválasztása', + 'downloads.allEpisodes' => 'Minden epizód', + 'downloads.unwatchedOnly' => 'Csak a nem látottak', + 'downloads.nextNUnwatched' => ({required Object count}) => 'A következő ${count} nem látott epizód', + 'downloads.customAmount' => 'Egyéni mennyiség...', + 'downloads.includeSpecials' => 'Különkiadások is', + 'downloads.howManyEpisodes' => 'Hány epizód?', + 'downloads.invalidEpisodeCount' => 'Adj meg egy érvényes epizódszámot.', + 'downloads.keepSynced' => 'Szinkronban tartás', + 'downloads.downloadOnce' => 'Egyszeri letöltés', + 'downloads.keepNUnwatched' => ({required Object count}) => '${count} nem látott epizód megtartása', + 'downloads.editSyncRule' => 'Szinkronizálási szabály szerkesztése', + 'downloads.removeSyncRule' => 'Szinkronizálási szabály eltávolítása', + 'downloads.removeSyncRuleConfirm' => ({required Object title}) => 'Leállítod a(z) "${title}" szinkronizálását? A letöltött epizódok megmaradnak.', + 'downloads.syncRuleCreated' => ({required Object count}) => 'Szinkronizálási szabály létrehozva — ${count} nem látott epizód megtartása', + 'downloads.syncRuleUpdated' => 'Szinkronizálási szabály frissítve', + 'downloads.syncRuleRemoved' => 'Szinkronizálási szabály eltávolítva', + 'downloads.syncedNewEpisodes' => ({required Object count, required Object title}) => '${count} új epizód szinkronizálva a következőhöz: ${title}', + 'downloads.activeSyncRules' => 'Szinkronizálási szabályok', + 'downloads.noSyncRules' => 'Nincsenek szinkronizálási szabályok', + 'downloads.manageSyncRule' => 'Szinkronizálás kezelése', + 'downloads.editEpisodeCount' => 'Epizódszám', + 'downloads.editSyncFilter' => 'Szinkronizálási szűrő', + 'downloads.syncAllItems' => 'Minden elem szinkronizálása', + 'downloads.syncUnwatchedItems' => 'Nem látott elemek szinkronizálása', + 'downloads.syncRuleServerContext' => ({required Object server, required Object status}) => 'Szerver: ${server} • ${status}', + 'downloads.syncRuleAvailable' => 'Elérhető', + 'downloads.syncRuleOffline' => 'Offline', + 'downloads.syncRuleSignInRequired' => 'Bejelentkezés szükséges', + 'downloads.syncRuleNotAvailableForProfile' => 'Nem érhető el a jelenlegi profilhoz', + 'downloads.syncRuleUnknownServer' => 'Ismeretlen szerver', + 'downloads.syncRuleListCreated' => 'Szinkronizálási szabály létrehozva', + 'shaders.title' => 'Shaderek', + 'shaders.noShaderDescription' => 'Nincs videójavítás', + 'shaders.nvscalerDescription' => 'NVIDIA képskálázás az élesebb videóért', + 'shaders.artcnnVariantNeutral' => 'Semleges', + 'shaders.artcnnVariantDenoise' => 'Zajcsökkentés', + 'shaders.artcnnVariantDenoiseSharpen' => 'Zajcsökkentés + Élesítés', + 'shaders.qualityFast' => 'Gyors', + 'shaders.qualityHQ' => 'Kiváló minőség', + 'shaders.mode' => 'Mód', + 'shaders.importShader' => 'Shader importálása', + 'shaders.customShaderDescription' => 'Egyéni GLSL shader', + 'shaders.shaderImported' => 'Shader importálva', + 'shaders.shaderImportFailed' => 'Nem sikerült a shader importálása', + 'shaders.deleteShader' => 'Shader törlése', + 'shaders.deleteShaderConfirm' => ({required Object name}) => 'Törlöd a következőt: "${name}"?', + 'companionRemote.title' => 'Kísérőtávirányító', + 'companionRemote.connectedTo' => ({required Object name}) => 'Csatlakoztatva a következőhöz: ${name}', + 'companionRemote.unknownDevice' => 'Ismeretlen eszköz', + 'companionRemote.session.startingServer' => 'Távirányító-szerver indítása...', + 'companionRemote.session.hostAddress' => 'Gazdagép címe', + 'companionRemote.session.connected' => 'Csatlakoztatva', + 'companionRemote.session.serverRunning' => 'A távirányító-szerver aktív', + 'companionRemote.session.serverStopped' => 'A távirányító-szerver leállítva', + 'companionRemote.session.serverRunningDescription' => 'A hálózaton lévő mobileszközök csatlakozhatnak ehhez az alkalmazáshoz', + 'companionRemote.session.serverStoppedDescription' => 'Indítsd el a szervert, hogy a mobileszközök csatlakozhassanak', + 'companionRemote.session.usePhoneToControl' => 'Használd a mobileszközödet az alkalmazás vezérléséhez', + 'companionRemote.session.startServer' => 'Szerver indítása', + 'companionRemote.session.stopServer' => 'Szerver leállítása', + 'companionRemote.session.minimize' => 'Kis méret', + 'companionRemote.pairing.discoveryDescription' => 'Az azonos Plex-fiókot használó Plezy-eszközök itt jelennek meg', + 'companionRemote.pairing.hostAddressHint' => '192.168.1.100:48632', + 'companionRemote.pairing.connecting' => 'Csatlakozás...', + 'companionRemote.pairing.searchingForDevices' => 'Eszközök keresése...', + 'companionRemote.pairing.noDevicesFound' => 'Nem találhatók eszközök a hálózaton', + 'companionRemote.pairing.noDevicesHint' => 'Nyisd meg a Plezyt asztali gépen, és használd ugyanazt a Wi-Fi-hálózatot', + 'companionRemote.pairing.availableDevices' => 'Elérhető eszközök', + 'companionRemote.pairing.manualConnection' => 'Kézi csatlakozás', + 'companionRemote.pairing.cryptoInitFailed' => 'Nem sikerült elindítani a biztonságos kapcsolatot. Először jelentkezz be a Plexbe.', + 'companionRemote.pairing.validationHostRequired' => 'Add meg a gazdagép címét', + 'companionRemote.pairing.validationHostFormat' => 'A formátumnak IP:port kell lennie (pl. 192.168.1.100:48632)', + 'companionRemote.pairing.connectionTimedOut' => 'A csatlakozás túllépte az időkorlátot. Használd ugyanazt a hálózatot mindkét eszközön.', + 'companionRemote.pairing.sessionNotFound' => 'Az eszköz nem található. Győződj meg arról, hogy a Plezy fut a gazdagépen.', + 'companionRemote.pairing.authFailed' => 'A hitelesítés nem sikerült. Mindkét eszközön ugyanazt a Plex-fiókot kell használni.', + 'companionRemote.pairing.failedToConnect' => ({required Object error}) => 'Nem sikerült a csatlakozás: ${error}', + 'companionRemote.remote.disconnectConfirm' => 'Bontod a kapcsolatot a távoli munkamenettel?', + 'companionRemote.remote.reconnecting' => 'Újracsatlakozás...', + 'companionRemote.remote.attemptOf' => ({required Object current}) => '${current} / 5 próbálkozás', + 'companionRemote.remote.retryNow' => 'Újrapróbálkozás most', + 'companionRemote.remote.tabRemote' => 'Távirányító', + 'companionRemote.remote.tabPlay' => 'Lejátszás', + 'companionRemote.remote.tabMore' => 'Egyebek', + 'companionRemote.remote.menu' => 'Menü', + 'companionRemote.remote.tabNavigation' => 'Navigációs lap', + 'companionRemote.remote.tabDiscover' => 'Felfedezés', + 'companionRemote.remote.tabLibraries' => 'Könyvtárak', + 'companionRemote.remote.tabSearch' => 'Keresés', + 'companionRemote.remote.tabDownloads' => 'Letöltések', + 'companionRemote.remote.tabSettings' => 'Beállítások', + 'companionRemote.remote.previous' => 'Előző', + 'companionRemote.remote.playPause' => 'Lejátszás/Szünet', + 'companionRemote.remote.next' => 'Következő', + 'companionRemote.remote.seekBack' => 'Visszatekerés', + 'companionRemote.remote.stop' => 'Leállítás', + 'companionRemote.remote.seekForward' => 'Előretekerés', + 'companionRemote.remote.volume' => 'Hangerő', + 'companionRemote.remote.volumeDown' => 'Hangerő le', + 'companionRemote.remote.volumeUp' => 'Hangerő fel', + 'companionRemote.remote.fullscreen' => 'Teljes képernyő', + 'companionRemote.remote.subtitles' => 'Feliratok', + 'companionRemote.remote.audio' => 'Hang', + 'companionRemote.remote.searchHint' => 'Keresés az asztali gépen...', + 'companionRemote.errors.noNetworkInterface' => 'Nem található hálózati csatoló', + 'companionRemote.errors.authenticationFailed' => 'A hitelesítés nem sikerült', + 'companionRemote.errors.serverStartFailed' => ({required Object error}) => 'Nem sikerült elindítani a távirányító-szervert: ${error}', + 'companionRemote.errors.commandFailed' => ({required Object error}) => 'Nem sikerült elküldeni a távoli parancsot: ${error}', + 'companionRemote.errors.joinTimedOut' => 'Időtúllépés a munkamenethez való csatlakozáskor', + 'companionRemote.errors.failedToConnectAnyAddress' => 'Egyetlen címhez sem sikerült csatlakozni', + 'companionRemote.errors.connectionLostAfterAttempts' => ({required Object attempts}) => 'A kapcsolat megszakadt ${attempts} próbálkozás után', + 'companionRemote.errors.connectionLost' => 'A kapcsolat megszakadt', + 'videoSettings.playbackSpeed' => 'Lejátszási sebesség', + 'videoSettings.normalSpeed' => 'Normál', + 'videoSettings.sleepTimerActive' => ({required Object duration}) => 'Aktív (${duration})', + 'videoSettings.zoom' => 'Nagyítás', + 'videoSettings.sleepTimer' => 'Elalvási időzítő', + 'videoSettings.audioSync' => 'Hang szinkronizálása', + 'videoSettings.subtitleSync' => 'Felirat szinkronizálása', + 'videoSettings.hdr' => 'HDR', + 'videoSettings.audioOutput' => 'Hangkimenet', + 'videoSettings.performanceOverlay' => 'Teljesítményadatok', + 'videoSettings.audioPassthrough' => 'Hangtovábbítás (passthrough)', + 'videoSettings.audioNormalization' => 'Hangerő normalizálása', + 'videoSettings.audioDownmix' => 'Lekeverés sztereóra', + 'performanceOverlay.color' => 'Szín', + 'performanceOverlay.performance' => 'Teljesítmény', + 'performanceOverlay.buffer' => 'Puffer', + 'performanceOverlay.app' => 'Alkalmazás', + 'performanceOverlay.decoder' => 'Dekóder', + 'performanceOverlay.rawDecoder' => 'Nyers dekóder', + 'performanceOverlay.tunneling' => 'Alagutazás', + 'performanceOverlay.aspect' => 'Méretarány', + 'performanceOverlay.rotation' => 'Forgatás', + 'performanceOverlay.dvSource' => 'DV-forrás', + 'performanceOverlay.dvPath' => 'DV-útvonal', + 'performanceOverlay.p7Conversion' => 'P7-átalakítás', + 'performanceOverlay.sampleRate' => 'Mintavételezési frekvencia', + 'performanceOverlay.pixelFormat' => 'Képpontformátum', + 'performanceOverlay.hwFormat' => 'Hardverformátum', + 'performanceOverlay.matrix' => 'Mátrix', + 'performanceOverlay.primaries' => 'Elsődleges színek', + 'performanceOverlay.transfer' => 'Átvitel', + 'performanceOverlay.renderFps' => 'Renderelési FPS', + 'performanceOverlay.displayFps' => 'Kijelző-FPS', + 'performanceOverlay.avSync' => 'A/V-szinkron', + 'performanceOverlay.dropped' => 'Eldobva', + 'performanceOverlay.dvRpus' => 'DV RPU-k', + 'performanceOverlay.dvRpuAverage' => 'DV RPU-átlag', + 'performanceOverlay.dvSampleAverage' => 'DV-mintaátlag', + 'performanceOverlay.maxLuma' => 'Maximális luma', + 'performanceOverlay.minLuma' => 'Minimális luma', + 'performanceOverlay.maxCll' => 'MaxCLL', + 'performanceOverlay.maxFall' => 'MaxFALL', + 'performanceOverlay.cacheUsed' => 'Használt gyorsítótár', + 'performanceOverlay.cacheLimit' => 'Gyorsítótár korlátja', + 'performanceOverlay.speed' => 'Sebesség', + 'performanceOverlay.player' => 'Lejátszó', + 'performanceOverlay.memory' => 'Memória', + 'performanceOverlay.uiFps' => 'Felület-FPS', + 'externalPlayer.title' => 'Külső lejátszó', + 'externalPlayer.useExternalPlayer' => 'Külső lejátszó használata', + 'externalPlayer.useExternalPlayerDescription' => 'Videók megnyitása egy másik alkalmazásban', + 'externalPlayer.selectPlayer' => 'Lejátszó kiválasztása', + 'externalPlayer.customPlayers' => 'Egyéni lejátszók', + 'externalPlayer.systemDefault' => 'Rendszer alapértelmezése', + 'externalPlayer.addCustomPlayer' => 'Egyéni lejátszó hozzáadása', + 'externalPlayer.playerName' => 'Lejátszó neve', + 'externalPlayer.playerNameHint' => 'Saját lejátszó', + 'externalPlayer.playerCommand' => 'Parancs', + 'externalPlayer.playerPackage' => 'Csomagnév', + 'externalPlayer.playerUrlScheme' => 'URL-séma', + 'externalPlayer.off' => 'Ki', + 'externalPlayer.launchFailed' => 'Nem sikerült megnyitni a külső lejátszót', + 'externalPlayer.appNotInstalled' => ({required Object name}) => 'A(z) ${name} nincs telepítve', + 'externalPlayer.playInExternalPlayer' => 'Lejátszás külső lejátszóban', + 'metadataEdit.editMetadata' => 'Szerkesztés...', + 'metadataEdit.screenTitle' => 'Metaadatok szerkesztése', + 'metadataEdit.basicInfo' => 'Alapinformációk', + 'metadataEdit.artwork' => 'Borítók és képek', + 'metadataEdit.advancedSettings' => 'Haladó beállítások', + 'metadataEdit.title' => 'Cím', + 'metadataEdit.sortTitle' => 'Rendezési cím', + 'metadataEdit.originalTitle' => 'Eredeti cím', + 'metadataEdit.releaseDate' => 'Bemutató dátuma', + 'metadataEdit.contentRating' => 'Korhatár-besorolás', + 'metadataEdit.studio' => 'Stúdió', + 'metadataEdit.tagline' => 'Jelmondat', + 'metadataEdit.summary' => 'Összefoglaló', + 'metadataEdit.poster' => 'Poszter', + 'metadataEdit.background' => 'Háttér', + 'metadataEdit.logo' => 'Logó', + 'metadataEdit.squareArt' => 'Négyzetes kép', + 'metadataEdit.selectPoster' => 'Poszter kiválasztása', + 'metadataEdit.selectBackground' => 'Háttér kiválasztása', + 'metadataEdit.selectLogo' => 'Logó kiválasztása', + 'metadataEdit.selectSquareArt' => 'Négyzetes kép kiválasztása', + 'metadataEdit.fromUrl' => 'URL-ről', + 'metadataEdit.uploadFile' => 'Fájl feltöltése', + 'metadataEdit.enterImageUrl' => 'Add meg a kép URL-címét', + 'metadataEdit.imageUrl' => 'Kép URL-címe', + 'metadataEdit.metadataUpdated' => 'Metaadatok frissítve', + 'metadataEdit.metadataUpdateFailed' => 'Nem sikerült a metaadatok frissítése', + 'metadataEdit.artworkUpdated' => 'Képek frissítve', + 'metadataEdit.artworkUpdateFailed' => 'Nem sikerült a képek frissítése', + 'metadataEdit.noArtworkAvailable' => 'Nincsenek elérhető képek', + 'metadataEdit.artworkOption' => ({required Object index}) => '${index}. képváltozat', + 'metadataEdit.selectedArtworkOption' => ({required Object index}) => '${index}. képváltozat, kiválasztva', + 'metadataEdit.notSet' => 'Nincs beállítva', + 'metadataEdit.libraryDefault' => 'Könyvtári alapértelmezés', + 'metadataEdit.accountDefault' => 'Fiók alapértelmezése', + 'metadataEdit.seriesDefault' => 'Sorozat alapértelmezése', + 'metadataEdit.episodeSorting' => 'Epizódok rendezése', + 'metadataEdit.oldestFirst' => 'Legrégebbi elöl', + 'metadataEdit.newestFirst' => 'Legújabb elöl', + 'metadataEdit.keep' => 'Megtartás', + 'metadataEdit.allEpisodes' => 'Minden epizód', + 'metadataEdit.latestEpisodes' => ({required Object count}) => 'Legutóbbi ${count} epizód', + 'metadataEdit.latestEpisode' => 'Legutóbbi epizód', + 'metadataEdit.episodesAddedPastDays' => ({required Object count}) => 'Az elmúlt ${count} napban hozzáadott epizódok', + 'metadataEdit.deleteAfterPlaying' => 'Epizódok törlése lejátszás után', + 'metadataEdit.never' => 'Soha', + 'metadataEdit.afterADay' => 'Egy nap után', + 'metadataEdit.afterAWeek' => 'Egy hét után', + 'metadataEdit.afterAMonth' => 'Egy hónap után', + 'metadataEdit.onNextRefresh' => 'A következő frissítéskor', + 'metadataEdit.seasons' => 'Évadok', + 'metadataEdit.show' => 'Megjelenítés', + 'metadataEdit.hide' => 'Elrejtés', + 'metadataEdit.episodeOrdering' => 'Epizódok sorrendje', + 'metadataEdit.tmdbAiring' => 'The Movie Database (sugárzási sorrend)', + 'metadataEdit.tvdbAiring' => 'TheTVDB (sugárzási sorrend)', + 'metadataEdit.tvdbAbsolute' => 'TheTVDB (abszolút sorrend)', + 'metadataEdit.metadataLanguage' => 'Metaadatok nyelve', + 'metadataEdit.useOriginalTitle' => 'Eredeti cím használata', + 'metadataEdit.preferredAudioLanguage' => 'Elsődleges hangnyelv', + 'metadataEdit.preferredSubtitleLanguage' => 'Elsődleges feliratnyelv', + 'metadataEdit.subtitleMode' => 'Automatikus feliratválasztási mód', + 'metadataEdit.manuallySelected' => 'Kézzel kiválasztva', + 'metadataEdit.shownWithForeignAudio' => 'Idegen nyelvű hang esetén megjelenítve', + 'metadataEdit.alwaysEnabled' => 'Mindig engedélyezve', + 'metadataEdit.tags' => 'Címkék', + 'metadataEdit.addTag' => 'Címke hozzáadása', + 'metadataEdit.genre' => 'Műfaj', + 'metadataEdit.director' => 'Rendező', + 'metadataEdit.writer' => 'Író', + 'metadataEdit.producer' => 'Producer', + 'metadataEdit.country' => 'Ország', + 'metadataEdit.collection' => 'Gyűjtemény', + 'metadataEdit.label' => 'Kiadó', + 'metadataEdit.style' => 'Stílus', + 'metadataEdit.mood' => 'Hangulat', + 'matchScreen.match' => 'Párosítás...', + 'matchScreen.fixMatch' => 'Párosítás javítása...', + 'matchScreen.unmatch' => 'Párosítás megszüntetése', + 'matchScreen.unmatchConfirm' => 'Törlöd ezt a párosítást? A Plex párosítatlanként kezeli az újrapárosításig.', + 'matchScreen.unmatchSuccess' => 'Párosítás megszüntetve', + 'matchScreen.unmatchFailed' => 'Nem sikerült a párosítás megszüntetése', + 'matchScreen.matchApplied' => 'Párosítás alkalmazva', + 'matchScreen.matchFailed' => 'Nem sikerült a párosítás alkalmazása', + 'matchScreen.titleHint' => 'Cím', + 'matchScreen.yearHint' => 'Év', + 'matchScreen.search' => 'Keresés', + 'matchScreen.noMatchesFound' => 'Nincsenek egyezések', + 'serverTasks.title' => 'Szerverfeladatok', + 'serverTasks.failedToLoad' => 'Nem sikerült a feladatok betöltése', + 'serverTasks.noTasks' => 'Nincsenek futó feladatok', + 'trakt.title' => 'Trakt', + 'trakt.connected' => 'Csatlakoztatva', + 'trakt.connectedAs' => ({required Object username}) => '@${username} néven csatlakoztatva', + 'trakt.disconnectConfirm' => 'Leválasztod a Trakt-fiókot?', + 'trakt.disconnectConfirmBody' => 'A Plezy nem küld több eseményt a Traktnak. Bármikor újracsatlakozhatsz.', + 'trakt.scrobble' => 'Valós idejű scrobbling', + 'trakt.scrobbleDescription' => 'Lejátszási, szüneteltetési és leállítási események küldése a Traktnak lejátszás közben.', + 'trakt.watchedSync' => 'Megtekintési állapot szinkronizálása', + 'trakt.watchedSyncDescription' => 'Ha egy elemet megtekintettként jelölsz meg a Plezyben, a Trakt is megtekintettként jelöli.', + 'seerr.title' => 'Seerr', + 'seerr.connectTitle' => 'Seerr csatlakoztatása', + 'seerr.serverUrl' => 'Szerver URL-címe', + 'seerr.serverUrlHelper' => 'A Seerr példányod címe', + 'seerr.checkServer' => 'Folytatás', + 'seerr.signInWithJellyfin' => 'Bejelentkezés Jellyfinnel', + 'seerr.signInWithEmby' => 'Bejelentkezés Emby-vel', + 'seerr.signInWithLocal' => 'Helyi fiók használata', + 'seerr.email' => 'E-mail', + 'seerr.noSignInMethods' => 'Ez a Seerr példány nem kínál olyan bejelentkezési módot, amit a Plezy támogat.', + 'seerr.instance' => 'Példány', + 'seerr.disconnectConfirm' => 'Leválasztod a Seerr-kapcsolatot?', + 'seerr.disconnectConfirmBody' => 'A Plezy elfelejti ezt a Seerr példányt. Bármikor újracsatlakozhatsz.', + 'seerr.request' => 'Igénylés', + 'seerr.request4k' => 'Igénylés 4K-ban', + 'seerr.seasons' => 'Évadok', + 'seerr.allSeasons' => 'Minden évad', + 'seerr.advancedOptions' => 'Haladó', + 'seerr.destinationServer' => 'Célszerver', + 'seerr.qualityProfile' => 'Minőségi profil', + 'seerr.rootFolder' => 'Gyökérmappa', + 'seerr.languageProfile' => 'Nyelvi profil', + 'seerr.requestSubmitted' => 'Igénylés elküldve', + 'seerr.requestFailed' => ({required Object error}) => 'Az igénylés nem sikerült: ${error}', + 'seerr.requestsLoadFailed' => 'Nem sikerült betölteni az igénylési opciókat', + 'seerr.nothingToRequest' => 'Minden elem már elérhető vagy igényelve van.', + 'seerr.statusAvailable' => 'Elérhető', + 'seerr.statusPartiallyAvailable' => 'Részben elérhető', + 'seerr.statusRequested' => 'Igényelve', + 'seerr.statusProcessing' => 'Feldolgozás alatt', + 'services.title' => 'Szolgáltatások', + 'services.hubSubtitle' => 'Megtekintési haladás szinkronizálása és új tartalmak igénylése.', + 'services.notConnected' => 'Nincs csatlakoztatva', + 'services.connectedAs' => ({required Object username}) => '@${username} néven csatlakoztatva', + 'services.scrobble' => 'Haladás automatikus követése', + 'services.scrobbleDescription' => 'Lista frissítése, amikor befejezel egy epizódot vagy filmet.', + 'services.disconnectConfirm' => ({required Object service}) => 'Leválasztod a(z) ${service} szolgáltatást?', + 'services.disconnectConfirmBody' => ({required Object service}) => 'A Plezy nem frissíti többé a(z) ${service} adatait. Bármikor újracsatlakozhatsz.', + 'services.connectFailed' => ({required Object service}) => 'Nem sikerült csatlakozni a következőhöz: ${service}. Próbáld újra.', + 'services.names.mal' => 'MyAnimeList', + 'services.names.anilist' => 'AniList', + 'services.names.simkl' => 'Simkl', + 'services.names.seerr' => 'Seerr', + 'services.deviceCode.title' => ({required Object service}) => 'Plezy aktiválása a következőn: ${service}', + 'services.deviceCode.body' => ({required Object url}) => 'Nyisd meg a(z) ${url} oldalt és add meg ezt a kódot:', + 'services.deviceCode.openToActivate' => ({required Object service}) => 'Nyisd meg a(z) ${service} oldalt az aktiváláshoz', + 'services.deviceCode.copyCode' => 'Aktiválási kód másolása', + 'services.deviceCode.waitingForAuthorization' => 'Várakozás az engedélyezésre…', + 'services.deviceCode.codeCopied' => 'Kód másolva', + 'services.oauthProxy.title' => ({required Object service}) => 'Bejelentkezés ide: ${service}', + 'services.oauthProxy.body' => 'Olvasd be ezt a QR-kódot vagy nyisd meg az URL-t bármelyik eszközön.', + 'services.oauthProxy.openToSignIn' => ({required Object service}) => 'Nyisd meg a(z) ${service} oldalt a bejelentkezéshez', + 'services.oauthProxy.copyUrl' => 'Bejelentkezési URL másolása', + 'services.oauthProxy.urlCopied' => 'URL másolva', + 'services.libraryFilter.title' => 'Könyvtárszűrő', + 'services.libraryFilter.subtitleAllSyncing' => 'Minden könyvtár szinkronizálása', + 'services.libraryFilter.subtitleNoneSyncing' => 'Nincs szinkronizálás', + 'services.libraryFilter.subtitleBlocked' => ({required Object count}) => '${count} kizárva', + 'services.libraryFilter.subtitleAllowed' => ({required Object count}) => '${count} engedélyezve', + 'services.libraryFilter.mode' => 'Szűrési mód', + 'services.libraryFilter.modeBlacklist' => 'Tiltólista', + 'services.libraryFilter.modeWhitelist' => 'Engedélyezőlista', + 'services.libraryFilter.modeHintBlacklist' => 'Minden könyvtár szinkronizálása az alább bejelöltek kivételével.', + 'services.libraryFilter.modeHintWhitelist' => 'Csak az alább bejelölt könyvtárak szinkronizálása.', + 'services.libraryFilter.libraries' => 'Könyvtárak', + 'services.libraryFilter.noLibraries' => 'Nincsenek elérhető könyvtárak', + 'addServer.addJellyfinTitle' => 'Jellyfin szerver hozzáadása', + 'addServer.serverUrls' => 'Szerver URL-címei', + 'addServer.serverUrlsHelper' => 'Több URL is megadható, vesszővel elválasztva.', + 'addServer.findServer' => 'Szerver keresése', + 'addServer.searchingLocalServers' => 'Helyi Jellyfin-szerverek keresése...', + 'addServer.localServers' => 'Helyi Jellyfin-szerverek', + 'addServer.username' => 'Felhasználónév', + 'addServer.password' => 'Jelszó', + 'addServer.signIn' => 'Bejelentkezés', + 'addServer.change' => 'Módosítás', + 'addServer.required' => 'Kötelező', + 'addServer.couldNotReachServer' => ({required Object error}) => 'Nem sikerült elérni a szervert: ${error}', + 'addServer.signInFailed' => ({required Object error}) => 'A bejelentkezés nem sikerült: ${error}', + 'addServer.quickConnectFailed' => ({required Object error}) => 'A Quick Connect használata nem sikerült: ${error}', + 'addServer.addPlexTitle' => 'Bejelentkezés Plexszel', + 'addServer.pinExpired' => 'A PIN-kód a bejelentkezés előtt lejárt. Próbáld újra.', + 'addServer.failedToRegisterAccount' => ({required Object error}) => 'Nem sikerült a fiók regisztrálása: ${error}', + 'addServer.enterJellyfinUrlError' => 'Add meg a Jellyfin szervered URL-jét', + 'addServer.addConnectionTitle' => 'Kapcsolat hozzáadása', + 'addServer.addConnectionTitleScoped' => ({required Object name}) => 'Hozzáadás a következőhöz: ${name}', + 'addServer.signInWithPlexCard' => 'Bejelentkezés Plexszel', + 'addServer.signInWithPlexCardSubtitle' => 'Eszköz engedélyezése. A megosztott szerverek hozzáadásra kerülnek.', + 'addServer.signInWithPlexCardSubtitleScoped' => 'Plex-fiók engedélyezése. A Plex Home-felhasználókból profilok lesznek.', + 'addServer.connectToJellyfinCard' => 'Csatlakozás Jellyfinhez', + 'addServer.connectToJellyfinCardSubtitle' => 'Add meg a szerver URL-jét, felhasználónevedet és jelszavadat.', + 'addServer.connectToJellyfinCardSubtitleScoped' => ({required Object name}) => 'Bejelentkezés egy Jellyfin-szerverre. Hozzárendelés ehhez: ${name}.', + 'addServer.borrowFromAnotherProfile' => 'Kapcsolat használata másik profilból', + 'addServer.borrowFromAnotherProfileSubtitle' => 'Egy másik profil kapcsolatának használata. A PIN-kóddal védett profilokhoz PIN-kód szükséges.', + _ => null, + }; + } +} diff --git a/lib/i18n/strings_it.g.dart b/lib/i18n/strings_it.g.dart index 25137acb..7dd3bc7b 100644 --- a/lib/i18n/strings_it.g.dart +++ b/lib/i18n/strings_it.g.dart @@ -108,20 +108,20 @@ class _Translations$auth$it extends Translations$auth$en { // Translations @override String get signInWithPlex => 'Accedi con Plex'; - @override String get showQRCode => 'Mostra QR Code'; - @override String get authenticate => 'Autenticazione'; - @override String get authenticationTimeout => 'Autenticazione scaduta. Riprova.'; - @override String get scanQRToSignIn => 'Scansiona il QR code per accedere'; + @override String get showQRCode => 'Mostra codice QR'; + @override String get authenticate => 'Autenticati'; + @override String get authenticationTimeout => 'Tempo scaduto per l\'autenticazione. Riprova.'; + @override String get scanQRToSignIn => 'Scansiona questo codice QR per accedere'; @override String get waitingForAuth => 'In attesa di autenticazione...\nAccedi dal browser.'; - @override String get useBrowser => 'Usa browser'; + @override String get useBrowser => 'Usa il browser'; @override String get or => 'o'; - @override String get connectToJellyfin => 'Connetti a Jellyfin'; + @override String get connectToJellyfin => 'Connettiti a Jellyfin'; @override String get useQuickConnect => 'Usa Quick Connect'; @override String get quickConnectInstructions => 'Apri Quick Connect in Jellyfin e inserisci questo codice.'; @override String get quickConnectWaiting => 'In attesa di approvazione…'; @override String get quickConnectCancel => 'Annulla'; @override String get quickConnectExpired => 'Quick Connect scaduto. Riprova.'; - @override String get localDataRecoveryRequired => 'Plezy could not safely recover local sign-in and pending playback data. Please sign in again.'; + @override String get localDataRecoveryRequired => 'Plezy non è riuscito a recuperare in sicurezza i dati locali di accesso e delle riproduzioni in sospeso. Accedi di nuovo.'; } // Path: common @@ -131,25 +131,25 @@ class _Translations$common$it extends Translations$common$en { final TranslationsIt _root; // ignore: unused_field // Translations - @override String get cancel => 'Cancella'; + @override String get cancel => 'Annulla'; @override String get save => 'Salva'; @override String get close => 'Chiudi'; - @override String get clear => 'Pulisci'; + @override String get clear => 'Cancella'; @override String get reset => 'Ripristina'; @override String get later => 'Più tardi'; @override String get submit => 'Invia'; @override String get confirm => 'Conferma'; @override String get retry => 'Riprova'; - @override String get logout => 'Disconnetti'; + @override String get logout => 'Esci'; @override String get unknown => 'Sconosciuto'; @override String get refresh => 'Aggiorna'; @override String get yes => 'Sì'; @override String get no => 'No'; @override String get delete => 'Elimina'; @override String get edit => 'Modifica'; - @override String get shuffle => 'Casuale'; + @override String get shuffle => 'Riproduzione casuale'; @override String get addTo => 'Aggiungi a...'; - @override String get createNew => 'Crea'; + @override String get createNew => 'Crea nuovo'; @override String get connect => 'Connetti'; @override String get disconnect => 'Disconnetti'; @override String get play => 'Riproduci'; @@ -159,8 +159,8 @@ class _Translations$common$it extends Translations$common$en { @override String get search => 'Cerca'; @override String get home => 'Home'; @override String get back => 'Indietro'; - @override String get settings => 'Opzioni'; - @override String get mute => 'Muto'; + @override String get settings => 'Impostazioni'; + @override String get mute => 'Disattiva audio'; @override String get ok => 'OK'; @override String get off => 'Disattivato'; @override String seasonNumber({required Object number}) => 'Stagione ${number}'; @@ -168,14 +168,14 @@ class _Translations$common$it extends Translations$common$en { @override String chapterNumber({required Object number}) => 'Capitolo ${number}'; @override String get reconnect => 'Riconnetti'; @override String get viewAll => 'Mostra tutto'; - @override String get checkingNetwork => 'Verifica rete...'; + @override String get checkingNetwork => 'Controllo della rete...'; @override String get loadingServers => 'Caricamento server...'; @override String get connectingToServers => 'Connessione ai server...'; @override String get startingOfflineMode => 'Avvio modalità offline...'; @override String get loading => 'Caricamento...'; @override String get fullscreen => 'Schermo intero'; - @override String get exitFullscreen => 'Esci da schermo intero'; - @override String get pressBackAgainToExit => 'Premi di nuovo indietro per uscire'; + @override String get exitFullscreen => 'Esci dalla modalità a schermo intero'; + @override String get pressBackAgainToExit => 'Premi di nuovo Indietro per uscire'; } // Path: screens @@ -189,7 +189,7 @@ class _Translations$screens$it extends Translations$screens$en { @override String get switchProfile => 'Cambia profilo'; @override String get subtitleStyling => 'Stile sottotitoli'; @override String get mpvConfig => 'mpv.conf'; - @override String get logs => 'Registro'; + @override String get logs => 'Log'; } // Path: update @@ -201,9 +201,9 @@ class _Translations$update$it extends Translations$update$en { // Translations @override String get available => 'Aggiornamento disponibile'; @override String versionAvailable({required Object version}) => 'Versione ${version} disponibile'; - @override String currentVersion({required Object version}) => 'Corrente: ${version}'; + @override String currentVersion({required Object version}) => 'Attuale: ${version}'; @override String get skipVersion => 'Salta questa versione'; - @override String get viewRelease => 'Visualizza dettagli release'; + @override String get viewRelease => 'Visualizza note di rilascio'; @override String get latestVersion => 'La versione installata è l\'ultima disponibile'; @override String get checkFailed => 'Impossibile controllare gli aggiornamenti'; } @@ -233,40 +233,42 @@ class _Translations$settings$it extends Translations$settings$en { @override String get minutesLabel => 'Minuti'; @override String get secondsShort => 's'; @override String get minutesShort => 'm'; - @override String durationHint({required Object min, required Object max}) => 'Inserisci durata (${min}-${max})'; + @override String durationHint({required Object min, required Object max}) => 'Inserisci una durata (${min}-${max})'; @override String get systemTheme => 'Sistema'; @override String get lightTheme => 'Chiaro'; @override String get darkTheme => 'Scuro'; @override String get oledTheme => 'OLED'; - @override String get libraryDensity => 'Densità libreria'; + @override String get libraryDensity => 'Densità della libreria'; @override String get compact => 'Compatta'; @override String get comfortable => 'Comoda'; + @override String get tvCornerSpotlightBackdrop => 'Sfondo in evidenza nell\'angolo'; + @override String get tvCornerSpotlightBackdropDescription => 'Mostra l\'immagine in evidenza nell\'angolo in alto a destra anziché a schermo intero'; @override String get viewMode => 'Modalità di visualizzazione'; @override String get gridView => 'Griglia'; @override String get listView => 'Elenco'; - @override String get showHeroSection => 'Mostra sezione principale'; - @override String get continueWatchingAction => 'Azione Continua a guardare'; + @override String get showHeroSection => 'Mostra sezione in evidenza'; + @override String get continueWatchingAction => 'Azione per Continua a guardare'; @override String get continueWatchingPlay => 'Riproduci'; @override String get continueWatchingDetails => 'Apri dettagli'; @override String get episodeAction => 'Azione episodio'; @override String get episodePlay => 'Riproduci'; @override String get episodeDetails => 'Apri dettagli'; - @override String get useGlobalHubs => 'Usa layout home'; - @override String get useGlobalHubsDescription => 'Mostra hub Home unificati. Altrimenti usa i consigli della libreria.'; - @override String get showServerNameOnHubs => 'Mostra nome server sugli hub'; - @override String get showServerNameOnHubsDescription => 'Mostra sempre i nomi dei server nei titoli degli hub.'; - @override String get groupLibrariesByServer => 'Raggruppa librerie per server'; - @override String get groupLibrariesByServerDescription => 'Raggruppa le librerie laterali per server multimediale.'; + @override String get useGlobalHubs => 'Usa il layout della Home'; + @override String get useGlobalHubsDescription => 'Mostra sezioni Home unificate. In caso contrario, usa i consigli della libreria.'; + @override String get showServerNameOnHubs => 'Mostra il nome del server nelle sezioni'; + @override String get showServerNameOnHubsDescription => 'Mostra sempre i nomi dei server nei titoli delle sezioni.'; + @override String get groupLibrariesByServer => 'Raggruppa le librerie per server'; + @override String get groupLibrariesByServerDescription => 'Raggruppa le librerie della barra laterale sotto ciascun server multimediale.'; @override String get alwaysKeepSidebarOpen => 'Mantieni sempre aperta la barra laterale'; @override String get alwaysKeepSidebarOpenDescription => 'La barra laterale rimane espansa e l\'area del contenuto si adatta'; - @override String get showUnwatchedCount => 'Mostra conteggio non visti'; + @override String get showUnwatchedCount => 'Mostra il numero di episodi non visti'; @override String get showUnwatchedCountDescription => 'Mostra il numero di episodi non visti per serie e stagioni'; - @override String get showEpisodeNumberOnCards => 'Mostra numero episodio sulle schede'; - @override String get showEpisodeNumberOnCardsDescription => 'Mostra stagione ed episodio sulle schede episodio'; - @override String get showSeasonPostersOnTabs => 'Mostra poster delle stagioni sulle schede'; + @override String get showEpisodeNumberOnCards => 'Mostra il numero dell\'episodio sulle schede'; + @override String get showEpisodeNumberOnCardsDescription => 'Mostra il numero della stagione e dell\'episodio sulle schede degli episodi'; + @override String get showSeasonPostersOnTabs => 'Mostra i poster delle stagioni nelle schede'; @override String get showSeasonPostersOnTabsDescription => 'Mostra il poster di ogni stagione sopra la sua scheda'; - @override String get tvFullCardLayout => 'Schede TV piene'; - @override String get tvFullCardLayoutDescription => 'Usa schede TV solo immagine con i nomi degli attori sovrapposti'; + @override String get tvFullCardLayout => 'Schede TV a tutta immagine'; + @override String get tvFullCardLayoutDescription => 'Usa schede TV con la sola immagine e i nomi degli attori sovrapposti'; @override String get focusGlow => 'Bagliore di selezione'; @override String get focusGlowDescription => 'Mostra un leggero bagliore attorno alla scheda selezionata'; @override String get visualEffects => 'Effetti visivi'; @@ -280,48 +282,48 @@ class _Translations$settings$it extends Translations$settings$en { @override String get playerBackend => 'Motore di riproduzione'; @override String get exoPlayer => 'ExoPlayer'; @override String get mpv => 'mpv'; - @override String get hardwareDecoding => 'Decodifica Hardware'; + @override String get hardwareDecoding => 'Decodifica hardware'; @override String get hardwareDecodingDescription => 'Utilizza l\'accelerazione hardware quando disponibile'; @override String get bufferSize => 'Dimensione buffer'; @override String bufferSizeMB({required Object size}) => '${size}MB'; - @override String get bufferSizeAuto => 'Auto (Consigliato)'; + @override String get bufferSizeAuto => 'Automatica (consigliata)'; @override String bufferSizeWarning({required Object heap, required Object size}) => '${heap}MB di memoria disponibile. Un buffer di ${size}MB può influire sulla riproduzione.'; @override String get defaultQualityTitle => 'Qualità predefinita'; @override String get musicQualityTitle => 'Qualità musicale'; @override String get subtitleStyling => 'Stile sottotitoli'; @override String get subtitleStylingDescription => 'Personalizza l\'aspetto dei sottotitoli'; - @override String get smallSkipDuration => 'Durata skip breve'; - @override String get largeSkipDuration => 'Durata skip lungo'; - @override String get rewindOnResume => 'Riavvolgi alla ripresa'; + @override String get smallSkipDuration => 'Salto breve'; + @override String get largeSkipDuration => 'Salto lungo'; + @override String get rewindOnResume => 'Riavvolgimento alla ripresa'; @override String secondsUnit({required Object seconds}) => '${seconds} secondi'; @override String get defaultSleepTimer => 'Timer spegnimento predefinito'; @override String minutesUnit({required Object minutes}) => '${minutes} minuti'; - @override String get rememberTrackSelections => 'Ricorda selezioni tracce per serie/film'; - @override String get rememberTrackSelectionsDescription => 'Ricorda scelte audio e sottotitoli per titolo'; + @override String get rememberTrackSelections => 'Ricorda la selezione delle tracce per ogni serie o film'; + @override String get rememberTrackSelectionsDescription => 'Ricorda le scelte di audio e sottotitoli per ogni titolo'; @override String get showChapterMarkersOnTimeline => 'Mostra i marcatori dei capitoli sulla barra di avanzamento'; @override String get showChapterMarkersOnTimelineDescription => 'Segmenta la barra di avanzamento ai confini dei capitoli'; - @override String get clickVideoTogglesPlayback => 'Fai clic sul video per avviare o mettere in pausa la riproduzione.'; - @override String get clickVideoTogglesPlaybackDescription => 'Clicca sul video per riprodurre/mettere in pausa invece di mostrare i controlli.'; + @override String get clickVideoTogglesPlayback => 'Fai clic sul video per alternare riproduzione e pausa'; + @override String get clickVideoTogglesPlaybackDescription => 'Fai clic sul video per riprodurre o mettere in pausa anziché mostrare i controlli.'; @override String get videoPlayerControls => 'Controlli del lettore video'; @override String get keyboardShortcuts => 'Scorciatoie da tastiera'; @override String get keyboardShortcutsDescription => 'Personalizza le scorciatoie da tastiera'; @override String get videoPlayerNavigation => 'Navigazione del lettore video'; @override String get videoPlayerNavigationDescription => 'Usa i tasti freccia per navigare nei controlli del lettore video'; - @override String get watchTogetherRelay => 'Relay Guarda Insieme'; + @override String get watchTogetherRelay => 'Relay di Guarda insieme'; @override String get watchTogetherRelayDescription => 'Imposta un relay personalizzato. Tutti devono usare lo stesso server.'; @override String get watchTogetherRelayHint => 'https://mio-relay.esempio.it'; - @override String get watchTogetherRelayInvalid => 'Enter a valid HTTP or HTTPS relay base URL.'; - @override String get crashReporting => 'Segnalazione errori'; - @override String get crashReportingDescription => 'Invia segnalazioni di errori per migliorare l\'app'; - @override String get debugLogging => 'Log di debug'; - @override String get debugLoggingDescription => 'Abilita il logging dettagliato per la risoluzione dei problemi'; - @override String get viewLogs => 'Visualizza log'; + @override String get watchTogetherRelayInvalid => 'Inserisci un URL di base HTTP o HTTPS valido per il relay.'; + @override String get crashReporting => 'Segnalazione degli arresti anomali'; + @override String get crashReportingDescription => 'Invia segnalazioni sugli arresti anomali per contribuire a migliorare l\'app'; + @override String get debugLogging => 'Registrazione di debug'; + @override String get debugLoggingDescription => 'Abilita una registrazione dettagliata per la risoluzione dei problemi'; + @override String get viewLogs => 'Visualizza i log'; @override String get viewLogsDescription => 'Visualizza i log dell\'applicazione'; - @override String get clearCache => 'Svuota cache'; - @override String get clearCacheDescription => 'Cancella immagini e dati in cache. Il contenuto può caricarsi più lentamente.'; + @override String get clearCache => 'Svuota la cache'; + @override String get clearCacheDescription => 'Cancella le immagini e i dati memorizzati nella cache. I contenuti potrebbero caricarsi più lentamente.'; @override String get clearCacheSuccess => 'Cache cancellata correttamente'; @override String get resetSettings => 'Ripristina impostazioni'; - @override String get resetSettingsDescription => 'Ripristina impostazioni predefinite. Non si può annullare.'; + @override String get resetSettingsDescription => 'Ripristina le impostazioni predefinite. Questa operazione non può essere annullata.'; @override String get resetSettingsSuccess => 'Impostazioni ripristinate correttamente'; @override String get backup => 'Backup'; @override String get exportSettings => 'Esporta impostazioni'; @@ -342,73 +344,73 @@ class _Translations$settings$it extends Translations$settings$en { @override String get autoCheckUpdatesOnStartup => 'Controlla automaticamente gli aggiornamenti all\'avvio'; @override String get autoCheckUpdatesOnStartupDescription => 'Avvisa all\'avvio quando è disponibile un aggiornamento'; @override String get validationErrorEnterNumber => 'Inserisci un numero valido'; - @override String validationErrorDuration({required Object min, required Object max, required Object unit}) => 'la durata deve essere compresa tra ${min} e ${max} ${unit}'; + @override String validationErrorDuration({required Object min, required Object max, required Object unit}) => 'La durata deve essere compresa tra ${min} e ${max} ${unit}'; @override String shortcutAlreadyAssigned({required Object action}) => 'Scorciatoia già assegnata a ${action}'; @override String shortcutUpdated({required Object action}) => 'Scorciatoia aggiornata per ${action}'; - @override String get saveFailed => 'Could not save changes. Try again.'; - @override String get autoSkip => 'Salto Automatico'; - @override String get autoSkipIntro => 'Salta Intro Automaticamente'; - @override String get autoSkipIntroDescription => 'Salta automaticamente i marcatori dell\'intro dopo alcuni secondi'; - @override String get autoSkipCredits => 'Salta Crediti Automaticamente'; - @override String get autoSkipCreditsDescription => 'Salta automaticamente i crediti e riproduci l\'episodio successivo'; - @override String get forceSkipMarkerFallback => 'Forza marcatori fallback'; - @override String get forceSkipMarkerFallbackDescription => 'Usa pattern dei titoli dei capitoli anche se Plex ha marcatori'; - @override String get autoSkipDelay => 'Ritardo Salto Automatico'; - @override String autoSkipDelayDescription({required Object seconds}) => 'Aspetta ${seconds} secondi prima del salto automatico'; - @override String get introPattern => 'Pattern marcatore intro'; - @override String get introPatternDescription => 'Espressione regolare per riconoscere i marcatori intro nei titoli dei capitoli'; - @override String get creditsPattern => 'Pattern marcatore titoli di coda'; - @override String get creditsPatternDescription => 'Espressione regolare per riconoscere i marcatori dei titoli di coda nei capitoli'; + @override String get saveFailed => 'Impossibile salvare le modifiche. Riprova.'; + @override String get autoSkip => 'Salto automatico'; + @override String get autoSkipIntro => 'Salta automaticamente la sigla iniziale'; + @override String get autoSkipIntroDescription => 'Salta automaticamente i marcatori della sigla iniziale dopo alcuni secondi'; + @override String get autoSkipCredits => 'Salta automaticamente i titoli di coda'; + @override String get autoSkipCreditsDescription => 'Salta automaticamente i titoli di coda e riproduce l\'episodio successivo'; + @override String get forceSkipMarkerFallback => 'Forza i marcatori di ripiego'; + @override String get forceSkipMarkerFallbackDescription => 'Usa i modelli dei titoli dei capitoli anche quando Plex dispone di marcatori'; + @override String get autoSkipDelay => 'Ritardo del salto automatico'; + @override String autoSkipDelayDescription({required Object seconds}) => 'Attendi ${seconds} secondi prima del salto automatico'; + @override String get introPattern => 'Modello del marcatore della sigla iniziale'; + @override String get introPatternDescription => 'Espressione regolare per individuare i marcatori della sigla iniziale nei titoli dei capitoli'; + @override String get creditsPattern => 'Modello del marcatore dei titoli di coda'; + @override String get creditsPatternDescription => 'Espressione regolare per individuare i marcatori dei titoli di coda nei titoli dei capitoli'; @override String get invalidRegex => 'Espressione regolare non valida'; @override String get regex => 'Espressione regolare'; @override String get downloads => 'Download'; - @override String get downloadLocationDescription => 'Scegli dove salvare i contenuti scaricati'; - @override String get downloadLocationDefault => 'Predefinita (Archiviazione App)'; - @override String get downloadLocationCustom => 'Posizione Personalizzata'; - @override String get selectFolder => 'Seleziona Cartella'; - @override String get resetToDefault => 'Ripristina Predefinita'; - @override String currentPath({required Object path}) => 'Corrente: ${path}'; + @override String get downloadLocationDescription => 'Scegli dove archiviare i contenuti scaricati'; + @override String get downloadLocationDefault => 'Predefinita (archivio dell\'app)'; + @override String get downloadLocationCustom => 'Posizione personalizzata'; + @override String get selectFolder => 'Seleziona cartella'; + @override String get resetToDefault => 'Ripristina posizione predefinita'; + @override String currentPath({required Object path}) => 'Attuale: ${path}'; @override String get downloadLocationChanged => 'Posizione di download modificata'; @override String get downloadLocationReset => 'Posizione di download ripristinata a predefinita'; @override String get downloadLocationInvalid => 'La cartella selezionata non è scrivibile'; @override String get downloadLocationPickerUnavailable => 'La selezione della cartella non è disponibile su questo dispositivo'; - @override String get downloadOnWifiOnly => 'Scarica solo con WiFi'; + @override String get downloadOnWifiOnly => 'Scarica solo tramite Wi-Fi'; @override String get downloadOnWifiOnlyDescription => 'Impedisci i download quando si utilizza la rete dati cellulare'; @override String get autoRemoveWatchedDownloads => 'Rimuovi automaticamente i download visti'; @override String get autoRemoveWatchedDownloadsDescription => 'Elimina automaticamente i download già visti'; - @override String get cellularDownloadBlocked => 'I download sono bloccati su rete mobile. Usa WiFi o cambia impostazione.'; - @override String get maxVolume => 'Volume massimo'; - @override String get maxVolumeDescription => 'Consenti volume superiore al 100% per contenuti audio bassi'; + @override String get cellularDownloadBlocked => 'I download sono bloccati sulla rete mobile. Usa il Wi-Fi o modifica l\'impostazione.'; + @override String get maxVolume => 'Volume massimo consentito'; + @override String get maxVolumeDescription => 'Consenti di aumentare il volume oltre il 100% per i contenuti con audio basso'; @override String maxVolumePercent({required Object percent}) => '${percent}%'; @override String get discordRichPresence => 'Discord Rich Presence'; @override String get discordRichPresenceDescription => 'Mostra su Discord cosa stai guardando'; @override String get services => 'Servizi'; @override String get servicesDescription => 'Connetti Trakt, MyAnimeList, Seerr e altro'; @override String get manageLibrariesDescription => 'Riordina e nascondi le librerie'; - @override String get companionRemoteServer => 'Server telecomando'; - @override String get companionRemoteServerDescription => 'Consenti ai dispositivi mobili nella tua rete di controllare questa app'; - @override String get autoPip => 'Picture-in-Picture automatico'; - @override String get autoPipDescription => 'Entra in picture-in-picture uscendo durante la riproduzione'; - @override String get matchContentFrameRate => 'Adatta frequenza fotogrammi'; - @override String get matchContentFrameRateDescription => 'Adatta la frequenza del display al contenuto video'; - @override String get matchRefreshRate => 'Adatta frequenza di aggiornamento'; - @override String get matchRefreshRateDescription => 'Adatta la frequenza del display a schermo intero'; - @override String get matchDynamicRange => 'Adatta gamma dinamica'; - @override String get matchDynamicRangeDescription => 'Attiva HDR per contenuti HDR, poi torna a SDR'; - @override String get displaySwitchDelay => 'Ritardo cambio display'; - @override String get tunneledPlayback => 'Riproduzione tunnelizzata'; - @override String get tunneledPlaybackDescription => 'Usa tunneling video. Disattiva se la riproduzione HDR mostra video nero.'; - @override String get audioPassthrough => 'Audio Passthrough'; - @override String get audioPassthroughDescription => 'Invia l\'audio Dolby/DTS al ricevitore o alla TV senza ricodifica, mantenendo il suono surround. Disattiva se non senti audio.'; - @override String get audioPassthroughDescriptionAppleTv => 'Consegna Dolby Digital Plus (incluso Atmos) al sistema come bitstream. DTS e TrueHD vengono comunque riprodotti come PCM multicanale. Durante i salti possono verificarsi brevi interruzioni audio.'; + @override String get companionRemoteServer => 'Server del telecomando'; + @override String get companionRemoteServerDescription => 'Consenti ai dispositivi mobili della tua rete di controllare questa app'; + @override String get autoPip => 'Picture-in-Picture automatica'; + @override String get autoPipDescription => 'Attiva automaticamente la modalità Picture-in-Picture quando esci dall\'app durante la riproduzione'; + @override String get matchContentFrameRate => 'Adatta la frequenza dei fotogrammi'; + @override String get matchContentFrameRateDescription => 'Adatta la frequenza di aggiornamento dello schermo al contenuto video'; + @override String get matchRefreshRate => 'Adatta la frequenza di aggiornamento'; + @override String get matchRefreshRateDescription => 'Adatta la frequenza di aggiornamento dello schermo in modalità a schermo intero'; + @override String get matchDynamicRange => 'Adatta la gamma dinamica'; + @override String get matchDynamicRangeDescription => 'Attiva l\'HDR per i contenuti HDR, quindi torna all\'SDR'; + @override String get displaySwitchDelay => 'Ritardo del cambio di modalità dello schermo'; + @override String get tunneledPlayback => 'Riproduzione con tunneling'; + @override String get tunneledPlaybackDescription => 'Usa il tunneling video. Disattivalo se durante la riproduzione HDR lo schermo rimane nero.'; + @override String get audioPassthrough => 'Passthrough audio'; + @override String get audioPassthroughDescription => 'Invia l\'audio Dolby/DTS al ricevitore o al televisore senza ricodificarlo, preservando l\'audio surround. Disattiva questa opzione se non senti alcun suono.'; + @override String get audioPassthroughDescriptionAppleTv => 'Usa il decoder Dolby nativo di Apple per Dolby Digital Plus, incluso Atmos. DTS e TrueHD vengono comunque riprodotti come PCM multicanale. Disattiva questa opzione se non senti alcun suono.'; @override String get audioDownmix => 'Downmix in stereo'; @override String get audioDownmixDescription => 'Riduce l\'audio surround a due canali per altoparlanti stereo o cuffie'; @override String get downmixCenterBoost => 'Amplificazione canale centrale'; @override String downmixCenterBoostValue({required Object db}) => '${db} dB'; @override String get downmixCenterBoostLabel => 'Amplificazione (dB)'; @override String get downmixCenterBoostShort => 'dB'; - @override String get audioDownmixNormalize => 'Normalizza volume nel downmix'; - @override String get audioDownmixNormalizeDescription => 'Riduce il mix per evitare distorsioni. Disattiva per mantenere il volume originale (le scene ad alto volume possono distorcere).'; + @override String get audioDownmixNormalize => 'Normalizza il volume durante il downmix'; + @override String get audioDownmixNormalizeDescription => 'Riduce il volume del mix per evitare il clipping. Disattiva questa opzione per mantenere il volume originale (le scene più rumorose potrebbero risultare distorte).'; @override String get atmosDiagnostics => 'Test uscita Atmos'; @override String get atmosDiagnosticsDescription => 'Diagnostica l\'uscita Dolby Atmos riproducendo segnali di prova con il lettore di sistema'; @override String get atmosTestHlsAtmos => 'Stream Atmos di Apple'; @@ -425,38 +427,38 @@ class _Translations$settings$it extends Translations$settings$en { @override String get atmosTestUrlMissing => 'Imposta prima l\'URL del file di prova'; @override String get atmosTestStatus => 'Stato'; @override String get dvConversionMode => 'Conversione Dolby Vision'; - @override String get dvConversionModeDescription => 'Scegli come ExoPlayer gestisce i file Dolby Vision Profile 7.'; + @override String get dvConversionModeDescription => 'Scegli come ExoPlayer gestisce i file Dolby Vision con profilo 7.'; @override String get dvConversionAuto => 'Auto'; - @override String get dvConversionNative => 'Nativo / disattivato'; + @override String get dvConversionNative => 'Nativa / disattivata'; @override String get dvConversionDv81 => 'P7 → P8.1'; @override String get dvConversionHevcStrip => 'P7 → HEVC'; - @override String get dvConversionAutoDescription => 'Usa il rilevamento delle capacità del dispositivo e il normale comportamento di fallback'; - @override String get dvConversionNativeDescription => 'Forza DV7 nativo e sopprime il nuovo tentativo di conversione DV'; - @override String get dvConversionDv81Description => 'Forza la conversione RPU inline a Dolby Vision profilo 8.1'; - @override String get dvConversionHevcStripDescription => 'Rimuove i livelli RPU/EL Dolby Vision e presenta HEVC semplice'; - @override String get requireProfileSelectionOnOpen => 'Chiedi profilo all\'apertura'; + @override String get dvConversionAutoDescription => 'Rileva le capacità del dispositivo e usa il normale meccanismo di ripiego'; + @override String get dvConversionNativeDescription => 'Forza il DV7 nativo e impedisce nuovi tentativi di conversione DV'; + @override String get dvConversionDv81Description => 'Forza la conversione RPU diretta al profilo Dolby Vision 8.1'; + @override String get dvConversionHevcStripDescription => 'Rimuove i livelli RPU/EL di Dolby Vision e riproduce il video come semplice HEVC'; + @override String get requireProfileSelectionOnOpen => 'Chiedi di scegliere il profilo all\'apertura'; @override String get requireProfileSelectionOnOpenDescription => 'Mostra la selezione del profilo ogni volta che l\'app viene aperta'; @override String get forceTvMode => 'Forza modalità TV'; - @override String get forceTvModeDescription => 'Forza layout TV. Per dispositivi non rilevati automaticamente. Richiede riavvio.'; + @override String get forceTvModeDescription => 'Forza il layout TV sui dispositivi che non vengono rilevati automaticamente. Richiede il riavvio.'; @override String get startInFullscreen => 'Avvia a schermo intero'; @override String get startInFullscreenDescription => 'Apri Plezy a schermo intero all\'avvio'; - @override String get exitFullscreenOnPlayerClose => 'Esci dallo schermo intero alla chiusura del player'; - @override String get exitFullscreenOnPlayerCloseDescription => 'Esci automaticamente dallo schermo intero quando il lettore video viene chiuso'; - @override String get autoHidePerformanceOverlay => 'Nascondi automaticamente overlay prestazioni'; - @override String get autoHidePerformanceOverlayDescription => 'Dissolvi l\'overlay prestazioni con i controlli di riproduzione'; - @override String get showNavBarLabels => 'Mostra etichette barra di navigazione'; - @override String get showNavBarLabelsDescription => 'Mostra le etichette sotto le icone della barra di navigazione'; + @override String get exitFullscreenOnPlayerClose => 'Esci dalla modalità a schermo intero alla chiusura del lettore'; + @override String get exitFullscreenOnPlayerCloseDescription => 'Esce automaticamente dalla modalità a schermo intero quando chiudi il lettore video'; + @override String get autoHidePerformanceOverlay => 'Nascondi automaticamente il riquadro delle prestazioni'; + @override String get autoHidePerformanceOverlayDescription => 'Dissolvi il riquadro delle prestazioni insieme ai controlli di riproduzione'; + @override String get showNavBarLabels => 'Mostra le etichette della barra di navigazione'; + @override String get showNavBarLabelsDescription => 'Mostra le etichette di testo sotto le icone della barra di navigazione'; @override String get startupSection => 'Sezione di avvio'; - @override String get liveTvDefaultFavorites => 'Canali preferiti predefiniti'; - @override String get liveTvDefaultFavoritesDescription => 'Mostra solo i canali preferiti all\'apertura della TV dal vivo'; + @override String get liveTvDefaultFavorites => 'Apri sui canali preferiti'; + @override String get liveTvDefaultFavoritesDescription => 'Mostra solo i canali preferiti quando apri la TV in diretta'; @override String get display => 'Schermo'; - @override String get homeScreen => 'Schermata Home'; + @override String get homeScreen => 'Schermata iniziale'; @override String get navigation => 'Navigazione'; @override String get window => 'Finestra'; @override String get content => 'Contenuti'; @override String get player => 'Lettore'; - @override String get subtitlesAndConfig => 'Sottotitoli e configurazione'; - @override String get seekAndTiming => 'Ricerca e tempistica'; + @override String get subtitlesAndConfig => 'Sottotitoli e impostazioni'; + @override String get seekAndTiming => 'Avanzamento e tempi'; @override String get behavior => 'Comportamento'; } @@ -467,7 +469,7 @@ class _Translations$search$it extends Translations$search$en { final TranslationsIt _root; // ignore: unused_field // Translations - @override String get hint => 'Cerca film. spettacoli, musica...'; + @override String get hint => 'Cerca film, serie TV e musica...'; @override String get tryDifferentTerm => 'Prova altri termini di ricerca'; @override String get searchYourMedia => 'Cerca nei tuoi media'; @override String get enterTitleActorOrKeyword => 'Inserisci un titolo, attore o parola chiave'; @@ -480,7 +482,7 @@ class _Translations$hotkeys$it extends Translations$hotkeys$en { final TranslationsIt _root; // ignore: unused_field // Translations - @override String setShortcutFor({required Object actionName}) => 'Imposta scorciatoia per ${actionName}'; + @override String setShortcutFor({required Object actionName}) => 'Imposta una scorciatoia per ${actionName}'; @override String get clearShortcut => 'Elimina scorciatoia'; @override String get noShortcutSet => 'Nessuna scorciatoia impostata'; @override String get currentShortcut => 'Scorciatoia attuale:'; @@ -504,10 +506,10 @@ class _Translations$fileInfo$it extends Translations$fileInfo$en { @override String get codec => 'Codec'; @override String get resolution => 'Risoluzione'; @override String get bitrate => 'Bitrate'; - @override String get frameRate => 'Frame Rate'; - @override String get aspectRatio => 'Aspect Ratio'; + @override String get frameRate => 'Frequenza fotogrammi'; + @override String get aspectRatio => 'Proporzioni'; @override String get profile => 'Profilo'; - @override String get bitDepth => 'Profondità colore'; + @override String get bitDepth => 'Profondità in bit'; @override String get colorSpace => 'Spazio colore'; @override String get colorRange => 'Gamma colori'; @override String get colorPrimaries => 'Colori primari'; @@ -520,7 +522,7 @@ class _Translations$fileInfo$it extends Translations$fileInfo$en { @override String get container => 'Contenitore'; @override String get duration => 'Durata'; @override String get optimizedForStreaming => 'Ottimizzato per lo streaming'; - @override String get has64bitOffsets => 'Offset a 64-bit'; + @override String get has64bitOffsets => 'Offset a 64 bit'; } // Path: mediaMenu @@ -533,15 +535,15 @@ class _Translations$mediaMenu$it extends Translations$mediaMenu$en { @override String get markAsWatched => 'Segna come visto'; @override String get markAsUnwatched => 'Segna come non visto'; @override String get removeFromContinueWatching => 'Rimuovi da Continua a guardare'; - @override String get viewDetails => 'Vedi dettagli'; - @override String get goToSeries => 'Vai alle serie'; + @override String get viewDetails => 'Visualizza dettagli'; + @override String get goToSeries => 'Vai alla serie'; @override String get shufflePlay => 'Riproduzione casuale'; @override String get shuffleNotAvailableOffline => 'Riproduzione casuale non disponibile offline'; @override String get fileInfo => 'Info sul file'; @override String get deleteFromServer => 'Elimina dal server'; @override String get confirmDelete => 'Eliminare questo media e i suoi file dal server?'; - @override String get deleteMultipleWarning => 'Questo include tutti gli episodi e i loro file.'; - @override String get mediaDeletedSuccessfully => 'Elemento multimediale eliminato con successo'; + @override String get deleteMultipleWarning => 'Sono inclusi tutti gli episodi e i relativi file.'; + @override String get mediaDeletedSuccessfully => 'Elemento multimediale eliminato correttamente'; @override String get mediaFailedToDelete => 'Impossibile eliminare l\'elemento multimediale'; @override String get rate => 'Valuta'; @override String get playFromBeginning => 'Riproduci dall\'inizio'; @@ -561,7 +563,7 @@ class _Translations$rateSheet$it extends Translations$rateSheet$en { @override String get favorited => 'Aggiunto ai preferiti'; @override String get saved => 'Salvato'; @override String get notAvailable => 'Nessuna corrispondenza trovata'; - @override String get noConnectedServices => 'Connetti un servizio nelle Impostazioni per valutare lì.'; + @override String get noConnectedServices => 'Collega un servizio nelle Impostazioni per assegnare valutazioni anche su quel servizio.'; } // Path: accessibility @@ -576,7 +578,7 @@ class _Translations$accessibility$it extends Translations$accessibility$en { @override String mediaCardEpisode({required Object title, required Object episodeInfo}) => '${title}, ${episodeInfo}'; @override String mediaCardSeason({required Object title, required Object seasonInfo}) => '${title}, ${seasonInfo}'; @override String get mediaCardWatched => 'visto'; - @override String mediaCardPartiallyWatched({required Object percent}) => '${percent} percento visto'; + @override String mediaCardPartiallyWatched({required Object percent}) => 'visto al ${percent}%'; @override String get mediaCardUnwatched => 'non visto'; @override String get tapToPlay => 'Tocca per riprodurre'; @override String get decrease => 'Diminuisci'; @@ -627,30 +629,32 @@ class _Translations$videoControls$it extends Translations$videoControls$en { // Translations @override String get audioLabel => 'Audio'; @override String get subtitlesLabel => 'Sottotitoli'; - @override String get resetToZero => 'Riporta a 0ms'; + @override String get resetToZero => 'Ripristina a 0 ms'; @override String addTime({required Object amount, required Object unit}) => '+${amount}${unit}'; @override String minusTime({required Object amount, required Object unit}) => '-${amount}${unit}'; - @override String playsLater({required Object label}) => '${label} riprodotto dopo'; - @override String playsEarlier({required Object label}) => '${label} riprodotto prima'; - @override String get noOffset => 'Nessun offset'; + @override String playsLater({required Object label}) => '${label}: riproduzione ritardata'; + @override String playsEarlier({required Object label}) => '${label}: riproduzione anticipata'; + @override String get noOffset => 'Nessun ritardo'; @override String get letterbox => 'Letterbox'; - @override String get fillScreen => 'Riempi schermo'; + @override String get fillScreen => 'Riempi lo schermo'; @override String get stretch => 'Allunga'; @override String get lockRotation => 'Blocca rotazione'; @override String get unlockRotation => 'Sblocca rotazione'; @override String get timerActive => 'Timer attivo'; - @override String playbackWillPauseIn({required Object duration}) => 'La riproduzione si interromperà tra ${duration}'; + @override String playbackWillPauseIn({required Object duration}) => 'La riproduzione verrà messa in pausa tra ${duration}'; @override String get sleepTimerEndOfVideo => 'Fine del video corrente'; - @override String get sleepTimerStopAtHeader => 'Interrompi a'; + @override String get sleepTimerStopAtHeader => 'Interrompi alle'; @override String get sleepTimerDurationHeader => 'Timer'; - @override String get playbackWillPauseAtEnd => 'La riproduzione si interromperà alla fine di questo video'; + @override String get playbackWillPauseAtEnd => 'La riproduzione verrà messa in pausa alla fine di questo video'; @override String get stillWatching => 'Stai ancora guardando?'; @override String pausingIn({required Object seconds}) => 'Pausa tra ${seconds}s'; @override String get continueWatching => 'Continua'; - @override String get autoPlayNext => 'Riproduzione automatica successivo'; - @override String get playNext => 'Riproduci successivo'; + @override String get autoPlayNext => 'Riproduci automaticamente il successivo'; + @override String get playNext => 'Riproduci il successivo'; @override String get playButton => 'Riproduci'; @override String get pauseButton => 'Pausa'; + @override String get showPlaybackControls => 'Mostra i controlli di riproduzione'; + @override String get hidePlaybackControls => 'Nascondi i controlli di riproduzione'; @override String seekBackwardButton({required Object seconds}) => 'Riavvolgi di ${seconds} secondi'; @override String seekForwardButton({required Object seconds}) => 'Avanza di ${seconds} secondi'; @override String get previousButton => 'Episodio precedente'; @@ -681,7 +685,7 @@ class _Translations$videoControls$it extends Translations$videoControls$en { @override String get longPressToUnlock => 'Premi a lungo per sbloccare'; @override String get timelineSlider => 'Timeline video'; @override String get volumeSlider => 'Livello volume'; - @override String endsAt({required Object time}) => 'Finisce alle ${time}'; + @override String endsAt({required Object time}) => 'Termina alle ${time}'; @override String get pipActive => 'Riproduzione in Picture-in-Picture'; @override String get pipFailed => 'Impossibile avviare la modalità Picture-in-Picture'; @override String get screenshotSaved => 'Schermata salvata'; @@ -710,10 +714,10 @@ class _Translations$messages$it extends Translations$messages$en { final TranslationsIt _root; // ignore: unused_field // Translations - @override String get markedAsWatched => 'Segna come visto'; - @override String get markedAsUnwatched => 'Segna come non visto'; - @override String get markedAsWatchedOffline => 'Segnato come visto (sincronizzato online)'; - @override String get markedAsUnwatchedOffline => 'Segnato come non visto (sincronizzato online)'; + @override String get markedAsWatched => 'Segnato come visto'; + @override String get markedAsUnwatched => 'Segnato come non visto'; + @override String get markedAsWatchedOffline => 'Segnato come visto (verrà sincronizzato quando torni online)'; + @override String get markedAsUnwatchedOffline => 'Segnato come non visto (verrà sincronizzato quando torni online)'; @override String autoRemovedWatchedDownload({required Object title}) => 'Rimosso automaticamente: ${title}'; @override String autoRemovedWatchedDownloads({required num n}) => (_root.$meta.cardinalResolver ?? PluralResolvers.cardinal('it'))(n, one: 'Rimosso automaticamente ${n} download già visto', @@ -721,16 +725,16 @@ class _Translations$messages$it extends Translations$messages$en { ); @override String get removedFromContinueWatching => 'Rimosso da Continua a guardare'; @override String errorLoading({required Object error}) => 'Errore: ${error}'; - @override String get streamInterrupted => 'La riproduzione si è interrotta. Premi Riproduci o scorri per riprovare.'; + @override String get streamInterrupted => 'La riproduzione si è interrotta. Premi Riproduci o vai a un altro punto per riprovare.'; @override String get liveStreamInterrupted => 'La diretta si è interrotta. Premi Riproduci per riprovare.'; @override String get fileInfoNotAvailable => 'Informazioni sul file non disponibili'; - @override String get playbackAuthenticationRequired => 'Sign in to the media server again to play this item.'; - @override String get playbackServerUnavailable => 'The media server is unavailable. Try again later.'; - @override String get playbackDataInvalid => 'The server returned invalid playback information.'; - @override String get playbackCancelled => 'Playback was cancelled.'; - @override String get playbackFailed => 'Playback could not be started.'; - @override String errorLoadingFileInfo({required Object error}) => 'Errore caricamento informazioni sul file: ${error}'; - @override String get errorLoadingSeries => 'Errore caricamento serie'; + @override String get playbackAuthenticationRequired => 'Accedi di nuovo al server multimediale per riprodurre questo elemento.'; + @override String get playbackServerUnavailable => 'Il server multimediale non è disponibile. Riprova più tardi.'; + @override String get playbackDataInvalid => 'Il server ha restituito informazioni di riproduzione non valide.'; + @override String get playbackCancelled => 'Riproduzione annullata.'; + @override String get playbackFailed => 'Impossibile avviare la riproduzione.'; + @override String errorLoadingFileInfo({required Object error}) => 'Errore durante il caricamento delle informazioni sul file: ${error}'; + @override String get errorLoadingSeries => 'Errore durante il caricamento della serie'; @override String get musicNotSupported => 'La riproduzione musicale non è ancora supportata'; @override String get noDescriptionAvailable => 'Nessuna descrizione disponibile'; @override String get noProfilesAvailable => 'Nessun profilo disponibile'; @@ -739,28 +743,28 @@ class _Translations$messages$it extends Translations$messages$en { @override String get logsCleared => 'Log eliminati'; @override String get logsCopied => 'Log copiati negli appunti'; @override String get noLogsAvailable => 'Nessun log disponibile'; - @override String libraryScanning({required Object title}) => 'Scansione "${title}"...'; - @override String libraryScanStarted({required Object title}) => 'Scansione libreria iniziata per "${title}"'; - @override String libraryScanFailed({required Object error}) => 'Impossibile eseguire scansione della libreria: ${error}'; - @override String metadataRefreshing({required Object title}) => 'Aggiornamento metadati per "${title}"...'; - @override String metadataRefreshStarted({required Object title}) => 'Aggiornamento metadati per "${title}"'; - @override String metadataRefreshFailed({required Object error}) => 'Errore aggiornamento metadati: ${error}'; - @override String get logoutConfirm => 'Sei sicuro di volerti disconnettere?'; + @override String libraryScanning({required Object title}) => 'Scansione di "${title}"...'; + @override String libraryScanStarted({required Object title}) => 'Scansione della libreria avviata per "${title}"'; + @override String libraryScanFailed({required Object error}) => 'Impossibile eseguire la scansione della libreria: ${error}'; + @override String metadataRefreshing({required Object title}) => 'Aggiornamento dei metadati di "${title}"...'; + @override String metadataRefreshStarted({required Object title}) => 'Aggiornamento dei metadati avviato per "${title}"'; + @override String metadataRefreshFailed({required Object error}) => 'Impossibile aggiornare i metadati: ${error}'; + @override String get logoutConfirm => 'Vuoi uscire dall\'account?'; @override String get noSeasonsFound => 'Nessuna stagione trovata'; @override String get seasonsLoadFailed => 'Impossibile caricare le stagioni'; @override String get noEpisodesFound => 'Nessun episodio trovato nella prima stagione'; @override String get noEpisodesFoundGeneral => 'Nessun episodio trovato'; @override String get episodesLoadFailed => 'Impossibile caricare gli episodi'; @override String get noResultsFound => 'Nessun risultato'; - @override String sleepTimerSet({required Object label}) => 'Imposta timer spegnimento per ${label}'; + @override String sleepTimerSet({required Object label}) => 'Timer di spegnimento impostato su ${label}'; @override String get noItemsAvailable => 'Nessun elemento disponibile'; - @override String get failedToCreatePlayQueueNoItems => 'Impossibile creare la coda di riproduzione - nessun elemento'; - @override String failedPlayback({required Object action, required Object error}) => 'Impossibile ${action}: ${error}'; + @override String get failedToCreatePlayQueueNoItems => 'Impossibile creare una coda di riproduzione: nessun elemento'; + @override String failedPlayback({required Object action, required Object error}) => 'Impossibile eseguire l\'azione «${action}»: ${error}'; @override String get switchingToCompatiblePlayer => 'Passaggio al lettore compatibile...'; @override String get serverLimitTitle => 'Riproduzione non riuscita'; - @override String get serverLimitBody => 'Errore server (HTTP 500). Un limite di banda/transcodifica probabilmente ha rifiutato questa sessione. Chiedi al proprietario di modificarlo.'; + @override String get serverLimitBody => 'Errore del server (HTTP 500). È probabile che un limite di banda o transcodifica abbia impedito questa sessione. Chiedi al proprietario di modificare il limite.'; @override String get logsUploaded => 'Log caricati'; - @override String get logsUploadFailed => 'Caricamento log fallito'; + @override String get logsUploadFailed => 'Impossibile caricare i log'; @override String get logId => 'ID log'; } @@ -774,12 +778,12 @@ class _Translations$subtitlingStyling$it extends Translations$subtitlingStyling$ @override String get text => 'Testo'; @override String get border => 'Bordo'; @override String get background => 'Sfondo'; - @override String get fontSize => 'Dimensione'; - @override String get textColor => 'Colore testo'; - @override String get borderSize => 'Dimensione bordo'; - @override String get borderColor => 'Colore bordo'; - @override String get backgroundOpacity => 'Opacità sfondo'; - @override String get backgroundColor => 'Colore sfondo'; + @override String get fontSize => 'Dimensione carattere'; + @override String get textColor => 'Colore del testo'; + @override String get borderSize => 'Dimensione del bordo'; + @override String get borderColor => 'Colore del bordo'; + @override String get backgroundOpacity => 'Opacità dello sfondo'; + @override String get backgroundColor => 'Colore dello sfondo'; @override String get position => 'Posizione'; @override String get assOverride => 'Sovrascrittura ASS'; @override String get overrideScale => 'Ridimensiona'; @@ -801,7 +805,7 @@ class _Translations$mpvConfig$it extends Translations$mpvConfig$en { final TranslationsIt _root; // ignore: unused_field // Translations - @override String get title => 'Configurazione mpv'; + @override String get title => 'mpv.conf'; @override String get description => 'Impostazioni avanzate del lettore video'; @override String get presets => 'Preset'; @override String get noPresets => 'Nessun preset salvato'; @@ -837,23 +841,23 @@ class _Translations$profiles$it extends Translations$profiles$en { @override String get addPlezyProfile => 'Aggiungi profilo Plezy'; @override String get switchingProfile => 'Cambio profilo…'; @override String get deleteThisProfileTitle => 'Eliminare questo profilo?'; - @override String deleteThisProfileMessage({required Object displayName}) => 'Rimuovi ${displayName}. Le connessioni non sono interessate.'; + @override String deleteThisProfileMessage({required Object displayName}) => 'Rimuovi ${displayName}. Le connessioni resteranno invariate.'; @override String get active => 'Attivo'; @override String get manage => 'Gestisci'; @override String get delete => 'Elimina'; @override String get signOut => 'Esci'; @override String get signOutPlexTitle => 'Uscire da Plex?'; - @override String signOutPlexMessage({required Object displayName}) => 'Rimuovere ${displayName} e tutti gli utenti Plex Home? Puoi accedere di nuovo quando vuoi.'; - @override String get signedOutPlex => 'Uscito da Plex.'; - @override String get signOutFailed => 'Uscita non riuscita.'; + @override String signOutPlexMessage({required Object displayName}) => 'Verranno rimossi ${displayName} e tutti gli utenti Plex Home. Potrai accedere di nuovo in qualsiasi momento.'; + @override String get signedOutPlex => 'Disconnessione da Plex completata.'; + @override String get signOutFailed => 'Disconnessione non riuscita.'; @override String get sectionTitle => 'Profili'; @override String get summarySingle => 'Aggiungi profili per combinare utenti gestiti e identità locali'; @override String summaryMultipleWithActive({required Object count, required Object activeName}) => '${count} profili · attivo: ${activeName}'; @override String summaryMultiple({required Object count}) => '${count} profili'; @override String get removeConnectionTitle => 'Rimuovere la connessione?'; - @override String removeConnectionMessage({required Object displayName, required Object connectionLabel}) => 'Rimuovi l\'accesso di ${displayName} a ${connectionLabel}. Gli altri profili lo mantengono.'; + @override String removeConnectionMessage({required Object displayName, required Object connectionLabel}) => 'Rimuovi da ${displayName} l\'accesso a ${connectionLabel}. Gli altri profili continueranno ad avervi accesso.'; @override String get deleteProfileTitle => 'Eliminare il profilo?'; - @override String deleteProfileMessage({required Object displayName}) => 'Rimuovi ${displayName} e le sue connessioni. I server restano disponibili.'; + @override String deleteProfileMessage({required Object displayName}) => 'Rimuovi ${displayName} e le relative connessioni. I server resteranno disponibili.'; @override String get profileNameLabel => 'Nome profilo'; @override String get pinProtectionLabel => 'Protezione PIN'; @override String get pinManagedByPlex => 'PIN gestito da Plex. Modifica su plex.tv.'; @@ -879,7 +883,7 @@ class _Translations$profiles$it extends Translations$profiles$en { @override String get borrowExplain => 'Prendi in prestito la connessione di un altro profilo. I profili protetti da PIN richiedono un PIN.'; @override String get borrowEmpty => 'Nulla da prendere in prestito al momento.'; @override String get borrowEmptySubtitle => 'Collega prima Plex o Jellyfin a un altro profilo.'; - @override String get borrowLoadFailed => 'Available connections could not be loaded. Try again.'; + @override String get borrowLoadFailed => 'Impossibile caricare le connessioni disponibili. Riprova.'; @override String borrowFromProfile({required Object displayName}) => 'Da ${displayName}'; @override String get borrowConnectionBorrowed => 'Connessione presa in prestito.'; @override String get borrowFailed => 'Impossibile prendere in prestito la connessione.'; @@ -906,7 +910,7 @@ class _Translations$connections$it extends Translations$connections$en { @override String get sectionTitle => 'Connessioni'; @override String get addConnection => 'Aggiungi connessione'; @override String get addConnectionSubtitleNoProfile => 'Accedi con Plex o collega un server Jellyfin'; - @override String addConnectionSubtitleScoped({required Object displayName}) => 'Aggiungi a ${displayName}: Plex, Jellyfin o un\'altra connessione profilo'; + @override String addConnectionSubtitleScoped({required Object displayName}) => 'Aggiungi a ${displayName}: Plex, Jellyfin o la connessione di un altro profilo'; @override String sessionExpiredOne({required Object name}) => 'Sessione scaduta per ${name}'; @override String sessionExpiredMany({required Object count}) => 'Sessione scaduta per ${count} server'; @override String get signInAgain => 'Accedi di nuovo'; @@ -923,11 +927,11 @@ class _Translations$discover$it extends Translations$discover$en { // Translations @override String get title => 'Esplora'; @override String get noContentAvailable => 'Nessun contenuto disponibile'; - @override String get addMediaToLibraries => 'Aggiungi alcuni file multimediali alle tue librerie'; + @override String get addMediaToLibraries => 'Aggiungi contenuti multimediali alle tue librerie'; @override String get continueWatching => 'Continua a guardare'; @override String continueWatchingIn({required Object library}) => 'Continua a guardare in ${library}'; - @override String get nextUp => 'Prossimi'; - @override String nextUpIn({required Object library}) => 'Prossimi in ${library}'; + @override String get nextUp => 'Prossimi episodi'; + @override String nextUpIn({required Object library}) => 'Prossimi episodi in ${library}'; @override String get recentlyAdded => 'Aggiunti di recente'; @override String recentlyAddedIn({required Object library}) => 'Aggiunti di recente in ${library}'; @override String latestAlbumsIn({required Object library}) => 'Ultimi album in ${library}'; @@ -936,9 +940,9 @@ class _Translations$discover$it extends Translations$discover$en { @override String playEpisode({required Object season, required Object episode}) => 'S${season}E${episode}'; @override String get overview => 'Panoramica'; @override String get cast => 'Attori'; - @override String get extras => 'Trailer ed Extra'; + @override String get extras => 'Trailer ed extra'; @override String get studio => 'Studio'; - @override String get rating => 'Classificazione'; + @override String get rating => 'Valutazione'; @override String get movie => 'Film'; @override String get tvShow => 'Serie TV'; @override String minutesLeft({required Object minutes}) => '${minutes} minuti rimanenti'; @@ -952,14 +956,14 @@ class _Translations$errors$it extends Translations$errors$en { final TranslationsIt _root; // ignore: unused_field // Translations - @override String searchFailed({required Object error}) => 'Ricerca fallita: ${error}'; - @override String connectionTimeout({required Object context}) => 'Timeout connessione durante caricamento di ${context}'; + @override String searchFailed({required Object error}) => 'Ricerca non riuscita: ${error}'; + @override String connectionTimeout({required Object context}) => 'Tempo scaduto per la connessione durante il caricamento di ${context}'; @override String get connectionFailed => 'Impossibile connettersi al server multimediale'; @override String unableToLoad({required Object context}) => 'Impossibile caricare ${context}. Riprova.'; @override String get noClientAvailable => 'Nessun client disponibile'; - @override String get pleaseEnterToken => 'Inserisci token'; + @override String get pleaseEnterToken => 'Inserisci un token'; @override String get invalidToken => 'Token non valido'; - @override String failedToVerifyToken({required Object error}) => 'Verifica token fallita: ${error}'; + @override String failedToVerifyToken({required Object error}) => 'Impossibile verificare il token: ${error}'; @override String failedToSwitchProfile({required Object displayName}) => 'Impossibile passare a ${displayName}'; @override String failedToDeleteProfile({required Object displayName}) => 'Impossibile eliminare ${displayName}'; @override String get failedToRate => 'Impossibile aggiornare la valutazione'; @@ -974,18 +978,18 @@ class _Translations$libraries$it extends Translations$libraries$en { // Translations @override String get title => 'Librerie'; @override String get fallbackTitle => 'Libreria'; - @override String get scanLibraryFiles => 'Scansiona file libreria'; + @override String get scanLibraryFiles => 'Scansiona i file della libreria'; @override String get scanLibrary => 'Scansiona libreria'; @override String get analyze => 'Analizza'; @override String get analyzeLibrary => 'Analizza libreria'; @override String get refreshMetadata => 'Aggiorna metadati'; @override String get emptyTrash => 'Svuota cestino'; - @override String emptyingTrash({required Object title}) => 'Svuotamento cestino per "${title}"...'; - @override String trashEmptied({required Object title}) => 'Cestino svuotato per "${title}"'; - @override String failedToEmptyTrash({required Object error}) => 'Impossibile svuotare cestino: ${error}'; - @override String analyzing({required Object title}) => 'Analisi "${title}"...'; - @override String analysisStarted({required Object title}) => 'Analisi iniziata per "${title}"'; - @override String failedToAnalyze({required Object error}) => 'Impossibile analizzare libreria: ${error}'; + @override String emptyingTrash({required Object title}) => 'Svuotamento del cestino di "${title}"...'; + @override String trashEmptied({required Object title}) => 'Cestino di "${title}" svuotato'; + @override String failedToEmptyTrash({required Object error}) => 'Impossibile svuotare il cestino: ${error}'; + @override String analyzing({required Object title}) => 'Analisi di "${title}"...'; + @override String analysisStarted({required Object title}) => 'Analisi avviata per "${title}"'; + @override String failedToAnalyze({required Object error}) => 'Impossibile analizzare la libreria: ${error}'; @override String get noLibrariesFound => 'Nessuna libreria trovata'; @override String get allLibrariesHidden => 'Tutte le librerie sono nascoste'; @override String hiddenLibrariesCount({required Object count}) => 'Librerie nascoste (${count})'; @@ -993,11 +997,11 @@ class _Translations$libraries$it extends Translations$libraries$en { @override String get noItemsMatchFilters => 'Nessun elemento corrisponde ai filtri attivi'; @override String get resetFilters => 'Reimposta filtri'; @override String get all => 'Tutto'; - @override String get clearAll => 'Cancella tutto'; - @override String scanLibraryConfirm({required Object title}) => 'Sei sicuro di voler scansionare "${title}"?'; - @override String analyzeLibraryConfirm({required Object title}) => 'Sei sicuro di voler analizzare "${title}"?'; - @override String refreshMetadataConfirm({required Object title}) => 'Sei sicuro di voler aggiornare i metadati per "${title}"?'; - @override String emptyTrashConfirm({required Object title}) => 'Sei sicuro di voler svuotare il cestino per "${title}"?'; + @override String get clearAll => 'Azzera tutto'; + @override String scanLibraryConfirm({required Object title}) => 'Vuoi scansionare "${title}"?'; + @override String analyzeLibraryConfirm({required Object title}) => 'Vuoi analizzare "${title}"?'; + @override String refreshMetadataConfirm({required Object title}) => 'Vuoi aggiornare i metadati di "${title}"?'; + @override String emptyTrashConfirm({required Object title}) => 'Vuoi svuotare il cestino di "${title}"?'; @override String get manageLibraries => 'Gestisci librerie'; @override String get sort => 'Ordina'; @override String get sortBy => 'Ordina per'; @@ -1027,9 +1031,9 @@ class _Translations$about$it extends Translations$about$en { // Translations @override String get title => 'Informazioni'; - @override String get openSourceLicenses => 'Licenze Open Source'; + @override String get openSourceLicenses => 'Licenze open source'; @override String versionLabel({required Object version}) => 'Versione ${version}'; - @override String get appDescription => 'Un bellissimo client Plex e Jellyfin per Flutter'; + @override String get appDescription => 'Un elegante client Plex e Jellyfin per Flutter'; @override String get viewLicensesDescription => 'Visualizza le licenze delle librerie di terze parti'; } @@ -1052,8 +1056,8 @@ class _Translations$hubDetail$it extends Translations$hubDetail$en { // Translations @override String get title => 'Titolo'; - @override String get releaseYear => 'Anno rilascio'; - @override String get dateAdded => 'Data aggiunta'; + @override String get releaseYear => 'Anno di uscita'; + @override String get dateAdded => 'Data di aggiunta'; @override String get rating => 'Valutazione'; @override String get noItemsFound => 'Nessun elemento trovato'; } @@ -1092,8 +1096,8 @@ class _Translations$navigation$it extends Translations$navigation$en { // Translations @override String get libraries => 'Librerie'; @override String get downloads => 'Download'; - @override String get liveTv => 'TV Live'; - @override String get explore => 'Scopri'; + @override String get liveTv => 'TV in diretta'; + @override String get explore => 'Esplora'; } // Path: explore @@ -1103,7 +1107,7 @@ class _Translations$explore$it extends Translations$explore$en { final TranslationsIt _root; // ignore: unused_field // Translations - @override String get title => 'Scopri'; + @override String get title => 'Esplora'; @override String get selectSource => 'Seleziona fonte'; @override late final _Translations$explore$rows$it rows = _Translations$explore$rows$it._(_root); @override late final _Translations$explore$status$it status = _Translations$explore$status$it._(_root); @@ -1113,14 +1117,14 @@ class _Translations$explore$it extends Translations$explore$en { ); @override String get cast => 'Attori'; @override String get characters => 'Personaggi'; - @override String get addToWatchlist => 'Aggiungi alla Watchlist'; - @override String get removeFromWatchlist => 'Rimuovi dalla Watchlist'; - @override String get watchlistUpdateFailed => 'Impossibile aggiornare la Watchlist'; + @override String get addToWatchlist => 'Aggiungi alla lista da guardare'; + @override String get removeFromWatchlist => 'Rimuovi dalla lista da guardare'; + @override String get watchlistUpdateFailed => 'Impossibile aggiornare la lista da guardare'; @override String get notInLibrary => 'Non è nella tua libreria'; @override String get inTheseLibraries => 'In queste librerie'; - @override String get checkingLibrary => 'Controllo della tua libreria...'; + @override String get checkingLibrary => 'Ricerca nella tua libreria...'; @override String get emptyTitle => 'Ancora niente qui'; - @override String emptyMessage({required Object source}) => 'Le righe da ${source} appariranno qui una volta che avranno dei contenuti.'; + @override String emptyMessage({required Object source}) => 'Le sezioni di ${source} appariranno qui quando saranno disponibili dei contenuti.'; @override String searchHint({required Object source}) => 'Cerca su ${source}'; @override String searchEmpty({required Object query}) => 'Nessun risultato per "${query}"'; @override String searchPrompt({required Object source}) => 'Cerca film e serie TV su ${source}.'; @@ -1137,37 +1141,37 @@ class _Translations$liveTv$it extends Translations$liveTv$en { @override String get title => 'TV in diretta'; @override String get guide => 'Guida'; @override String get noChannels => 'Nessun canale disponibile'; - @override String get noDvr => 'Nessun DVR configurato su nessun server'; + @override String get noDvr => 'Nessun DVR configurato su alcun server'; @override String get serverUnavailable => 'Il server TV in diretta non è disponibile.'; @override String get serverNotConnected => 'Il server TV in diretta non è connesso.'; @override String get noPrograms => 'Nessun dato di programma disponibile'; - @override String get liveStreamFailed => 'Streaming live non riuscito'; + @override String get liveStreamFailed => 'Streaming in diretta non riuscito'; @override String get unknownProgram => 'Programma sconosciuto'; @override String get unknownHub => 'Sconosciuto'; @override String get unknownError => 'Errore sconosciuto'; @override String channelNumber({required Object number}) => 'Canale ${number}'; @override String get unknownChannel => 'Canale sconosciuto'; @override String get live => 'IN DIRETTA'; - @override String get reloadGuide => 'Ricarica guida'; + @override String get reloadGuide => 'Ricarica la guida'; @override String get now => 'Ora'; @override String get today => 'Oggi'; @override String get tomorrow => 'Domani'; @override String get midnight => 'Mezzanotte'; - @override String get overnight => 'Notte'; + @override String get overnight => 'Durante la notte'; @override String get morning => 'Mattina'; - @override String get daytime => 'Giorno'; + @override String get daytime => 'Giornata'; @override String get evening => 'Sera'; - @override String get lateNight => 'Notte tarda'; + @override String get lateNight => 'Tarda notte'; @override String get whatsOn => 'In onda ora'; - @override String get watchChannel => 'Guarda canale'; + @override String get watchChannel => 'Guarda il canale'; @override String get favorites => 'Preferiti'; - @override String get reorderFavorites => 'Riordina preferiti'; + @override String get reorderFavorites => 'Riordina i preferiti'; @override String get favoritesLoadFailed => 'Impossibile caricare i preferiti. Controlla la connessione e riprova.'; - @override String get favoritesUpdateFailed => 'Could not update favorites. Check your connection and try again.'; + @override String get favoritesUpdateFailed => 'Impossibile aggiornare i preferiti. Controlla la connessione e riprova.'; @override String get joinSession => 'Partecipa alla sessione in corso'; @override String watchFromStart({required Object minutes}) => 'Guarda dall\'inizio (${minutes} min fa)'; @override String get watchLive => 'Guarda in diretta'; - @override String get goToLive => 'Vai al live'; + @override String get goToLive => 'Vai alla diretta'; @override String get record => 'Registra'; @override String get recordEpisode => 'Registra episodio'; @override String get recordSeries => 'Registra serie'; @@ -1176,7 +1180,7 @@ class _Translations$liveTv$it extends Translations$liveTv$en { @override String get recordings => 'Registrazioni'; @override String get scheduledRecordings => 'Programmate'; @override String get recordingRules => 'Regole di registrazione'; - @override String get noScheduledRecordings => 'Nessuna registrazione programmata'; + @override String get noScheduledRecordings => 'Nessuna registrazione in programma'; @override String get manageRecording => 'Gestisci registrazione'; @override String get cancelRecording => 'Annulla registrazione'; @override String get cancelRecordingTitle => 'Annullare questa registrazione?'; @@ -1185,21 +1189,21 @@ class _Translations$liveTv$it extends Translations$liveTv$en { @override String get deleteRuleTitle => 'Eliminare la regola di registrazione?'; @override String deleteRuleMessage({required Object title}) => 'I prossimi episodi di ${title} non saranno registrati.'; @override String get recordingScheduled => 'Registrazione programmata'; - @override String get alreadyScheduled => 'Questo programma è già programmato'; + @override String get alreadyScheduled => 'La registrazione di questo programma è già pianificata'; @override String get dvrAdminRequired => 'Le impostazioni DVR richiedono un account amministratore'; @override String get recordingFailed => 'Impossibile programmare la registrazione'; @override String get recordingTargetMissing => 'Impossibile determinare la libreria di registrazione'; @override String get recordNotAvailable => 'Registrazione non disponibile per questo programma'; @override String get recordingCancelled => 'Registrazione annullata'; @override String get recordingRuleDeleted => 'Regola di registrazione eliminata'; - @override String get processRecordingRules => 'Rivaluta regole'; + @override String get processRecordingRules => 'Rielabora le regole'; @override String get recordingInProgress => 'Registrazione in corso'; @override String recordingsCount({required Object count}) => '${count} programmate'; @override String get editRule => 'Modifica regola'; @override String get editRuleAction => 'Modifica'; @override String get recordingRuleUpdated => 'Regola di registrazione aggiornata'; - @override String get guideReloadRequested => 'Aggiornamento guida richiesto'; - @override String get rulesProcessRequested => 'Rivalutazione regole richiesta'; + @override String get guideReloadRequested => 'Aggiornamento della guida richiesto'; + @override String get rulesProcessRequested => 'Rielaborazione delle regole richiesta'; @override String get recordShow => 'Registra programma'; } @@ -1221,14 +1225,14 @@ class _Translations$collections$it extends Translations$collections$en { @override String get selectCollection => 'Seleziona raccolta'; @override String get collectionName => 'Nome raccolta'; @override String get enterCollectionName => 'Inserisci nome raccolta'; - @override String get addedToCollection => 'Aggiunto alla raccolta'; - @override String get errorAddingToCollection => 'Errore nell\'aggiunta alla raccolta'; + @override String get addedToCollection => 'Elemento aggiunto alla raccolta'; + @override String get errorAddingToCollection => 'Impossibile aggiungere l\'elemento alla raccolta'; @override String get created => 'Raccolta creata'; @override String get removeFromCollection => 'Rimuovi dalla raccolta'; @override String removeFromCollectionConfirm({required Object title}) => 'Rimuovere "${title}" da questa raccolta?'; - @override String get removedFromCollection => 'Rimosso dalla raccolta'; + @override String get removedFromCollection => 'Elemento rimosso dalla raccolta'; @override String get removeFromCollectionFailed => 'Impossibile rimuovere dalla raccolta'; - @override String removeFromCollectionError({required Object error}) => 'Errore durante la rimozione dalla raccolta: ${error}'; + @override String removeFromCollectionError({required Object error}) => 'Errore durante la rimozione dell\'elemento dalla raccolta: ${error}'; @override String get searchCollections => 'Cerca raccolte...'; } @@ -1246,7 +1250,7 @@ class _Translations$playlists$it extends Translations$playlists$en { @override String get playlistName => 'Nome playlist'; @override String get enterPlaylistName => 'Inserisci nome playlist'; @override String get delete => 'Elimina playlist'; - @override String get removeItem => 'Rimuovi da playlist'; + @override String get removeItem => 'Rimuovi dalla playlist'; @override String get smartPlaylist => 'Playlist intelligente'; @override String itemCount({required Object count}) => '${count} elementi'; @override String get oneItem => '1 elemento'; @@ -1259,12 +1263,12 @@ class _Translations$playlists$it extends Translations$playlists$en { @override String get itemRemoved => 'Rimosso dalla playlist'; @override String get selectPlaylist => 'Seleziona playlist'; @override String get searchPlaylists => 'Cerca playlist...'; - @override String get errorCreating => 'Errore durante la creazione della playlist'; - @override String get errorDeleting => 'Errore durante l\'eliminazione della playlist'; - @override String get errorLoading => 'Errore durante il caricamento delle playlist'; - @override String get errorAdding => 'Errore durante l\'aggiunta alla playlist'; - @override String get errorReordering => 'Errore durante il riordino dell\'elemento della playlist'; - @override String get errorRemoving => 'Errore durante la rimozione dalla playlist'; + @override String get errorCreating => 'Impossibile creare la playlist'; + @override String get errorDeleting => 'Impossibile eliminare la playlist'; + @override String get errorLoading => 'Impossibile caricare le playlist'; + @override String get errorAdding => 'Impossibile aggiungere l\'elemento alla playlist'; + @override String get errorReordering => 'Impossibile riordinare l\'elemento della playlist'; + @override String get errorRemoving => 'Impossibile rimuovere l\'elemento dalla playlist'; } // Path: music @@ -1277,7 +1281,7 @@ class _Translations$music$it extends Translations$music$en { @override String get goToAlbum => 'Vai all\'album'; @override String get goToArtist => 'Vai all\'artista'; @override String get instantMix => 'Mix istantaneo'; - @override String get playNext => 'Riproduci dopo'; + @override String get playNext => 'Riproduci come prossimo'; @override String get addToQueue => 'Aggiungi alla coda'; @override String discNumber({required Object n}) => 'Disco ${n}'; @override String trackCount({required num n}) => (_root.$meta.cardinalResolver ?? PluralResolvers.cardinal('it'))(n, @@ -1298,7 +1302,7 @@ class _Translations$music$it extends Translations$music$en { @override String get nextTrack => 'Brano successivo'; @override String get repeat => 'Ripeti'; @override String get repeatAll => 'Ripeti tutto'; - @override String get repeatOne => 'Ripeti uno'; + @override String get repeatOne => 'Ripeti il brano'; } // Path: watchTogether @@ -1308,51 +1312,51 @@ class _Translations$watchTogether$it extends Translations$watchTogether$en { final TranslationsIt _root; // ignore: unused_field // Translations - @override String get title => 'Guarda Insieme'; + @override String get title => 'Guarda insieme'; @override String get description => 'Guarda contenuti in sincronia con amici e familiari'; - @override String get createSession => 'Crea Sessione'; + @override String get createSession => 'Crea sessione'; @override String get creating => 'Creazione...'; - @override String get joinSession => 'Unisciti alla Sessione'; + @override String get joinSession => 'Partecipa a una sessione'; @override String get joining => 'Connessione...'; - @override String get controlMode => 'Modalità di Controllo'; + @override String get controlMode => 'Modalità di controllo'; @override String get controlModeQuestion => 'Chi può controllare la riproduzione?'; - @override String get hostOnly => 'Solo Host'; + @override String get hostOnly => 'Solo l\'host'; @override String get anyone => 'Tutti'; - @override String get hostingSession => 'Hosting Sessione'; - @override String get inSession => 'In Sessione'; - @override String get sessionCode => 'Codice Sessione'; - @override String get openSessionControls => 'Apri i controlli della sessione di Guarda Insieme'; + @override String get hostingSession => 'Stai ospitando la sessione'; + @override String get inSession => 'Sessione in corso'; + @override String get sessionCode => 'Codice della sessione'; + @override String get openSessionControls => 'Apri i controlli della sessione di Guarda insieme'; @override String get copySessionCode => 'Copia il codice della sessione'; @override String get hostControlsPlayback => 'L\'host controlla la riproduzione'; @override String get anyoneCanControl => 'Tutti possono controllare la riproduzione'; - @override String get hostControls => 'Controllo host'; - @override String get anyoneControls => 'Controllo di tutti'; + @override String get hostControls => 'L\'host controlla'; + @override String get anyoneControls => 'Tutti possono controllare'; @override String get participants => 'Partecipanti'; @override String get host => 'Host'; @override String get hostBadge => 'HOST'; @override String get youAreHost => 'Sei l\'host'; - @override String get watchingWithOthers => 'Guardando con altri'; - @override String get endSession => 'Termina Sessione'; - @override String get leaveSession => 'Lascia Sessione'; - @override String get endSessionQuestion => 'Terminare la Sessione?'; - @override String get leaveSessionQuestion => 'Lasciare la Sessione?'; + @override String get watchingWithOthers => 'In visione con altri partecipanti'; + @override String get endSession => 'Termina la sessione'; + @override String get leaveSession => 'Abbandona la sessione'; + @override String get endSessionQuestion => 'Terminare la sessione?'; + @override String get leaveSessionQuestion => 'Abbandonare la sessione?'; @override String get endSessionConfirm => 'Questo terminerà la sessione per tutti i partecipanti.'; @override String get leaveSessionConfirm => 'Sarai rimosso dalla sessione.'; @override String get endSessionConfirmOverlay => 'Questo terminerà la sessione di visione per tutti i partecipanti.'; @override String get leaveSessionConfirmOverlay => 'Sarai disconnesso dalla sessione di visione.'; @override String get end => 'Termina'; - @override String get leave => 'Lascia'; + @override String get leave => 'Abbandona'; @override String get syncing => 'Sincronizzazione...'; - @override String get joinWatchSession => 'Unisciti alla Sessione di Visione'; + @override String get joinWatchSession => 'Partecipa alla sessione di visione'; @override String get enterCodeHint => 'Inserisci codice di 5 caratteri'; @override String get pasteFromClipboard => 'Incolla dagli appunti'; - @override String get pleaseEnterCode => 'Inserisci un codice sessione'; - @override String get codeMustBe5Chars => 'Il codice sessione deve essere di 5 caratteri'; - @override String get joinInstructions => 'Inserisci il codice sessione dell\'host per partecipare.'; + @override String get pleaseEnterCode => 'Inserisci un codice della sessione'; + @override String get codeMustBe5Chars => 'Il codice della sessione deve contenere 5 caratteri'; + @override String get joinInstructions => 'Inserisci il codice della sessione dell\'host per partecipare.'; @override String get failedToCreate => 'Impossibile creare la sessione'; @override String get failedToJoin => 'Impossibile unirsi alla sessione'; - @override String get sessionCodeCopied => 'Codice sessione copiato negli appunti'; - @override String get relayUnreachable => 'Server relay non raggiungibile. Il blocco ISP può impedire Watch Together.'; + @override String get sessionCodeCopied => 'Codice della sessione copiato negli appunti'; + @override String get relayUnreachable => 'Il server relay non è raggiungibile. Eventuali blocchi dell\'ISP potrebbero impedire l\'uso di Guarda insieme.'; @override String get reconnectingToHost => 'Riconnessione all\'host...'; @override String get currentPlayback => 'Riproduzione corrente'; @override String get joinCurrentPlayback => 'Unisciti alla riproduzione corrente'; @@ -1362,13 +1366,13 @@ class _Translations$watchTogether$it extends Translations$watchTogether$en { @override String participantLeft({required Object name}) => '${name} se ne è andato'; @override String participantPaused({required Object name}) => '${name} ha messo in pausa'; @override String participantResumed({required Object name}) => '${name} ha ripreso'; - @override String participantSeeked({required Object name}) => '${name} ha cercato'; - @override String participantBuffering({required Object name}) => '${name} sta caricando'; + @override String participantSeeked({required Object name}) => '${name} ha cambiato la posizione di riproduzione'; + @override String participantBuffering({required Object name}) => '${name} è in buffering'; @override String participantNeedsUpdate({required Object name}) => '${name} usa una versione precedente dell\'app — sincronizzazione non disponibile'; @override String resumingWithout({required Object name}) => 'Ripresa senza ${name}'; @override String get waitingForParticipants => 'In attesa che gli altri carichino...'; @override String waitingForName({required Object name}) => 'In attesa di ${name}...'; - @override String get recentRooms => 'Stanze recenti'; + @override String get recentRooms => 'Stanze usate di recente'; @override String get renameRoom => 'Rinomina stanza'; @override String get removeRoom => 'Rimuovi'; @override String get guestSwitchUnavailable => 'Impossibile cambiare — server non disponibile per la sincronizzazione'; @@ -1388,11 +1392,11 @@ class _Translations$downloads$it extends Translations$downloads$en { @override String get movies => 'Film'; @override String get music => 'Musica'; @override String tracksQueued({required Object count}) => '${count} brani in coda per il download'; - @override String get noDownloads => 'Nessun download'; + @override String get noDownloads => 'Ancora nessun download'; @override String get noDownloadsDescription => 'I contenuti scaricati appariranno qui per la visualizzazione offline'; @override String get downloadNow => 'Scarica'; - @override String get deleteDownload => 'Elimina download'; - @override String get retryDownload => 'Riprova download'; + @override String get deleteDownload => 'Elimina il download'; + @override String get retryDownload => 'Riprova il download'; @override String get downloadQueued => 'Download in coda'; @override String get downloadResumed => 'Download ripreso'; @override String get serverErrorBitrate => 'Errore server: il file può superare il limite di bitrate remoto'; @@ -1402,7 +1406,7 @@ class _Translations$downloads$it extends Translations$downloads$en { @override String get cancelledDownloadTitle => 'Download annullato'; @override String get cancelledDownloadMessage => 'Questo download è stato annullato. Cosa vuoi fare?'; @override String get allEpisodesAlreadyDownloaded => 'Tutti gli episodi sono già stati scaricati'; - @override String get resumeDownload => 'Riprendi download'; + @override String get resumeDownload => 'Riprendi il download'; @override String get cancelledDownload => 'Download annullato'; @override String syncingFile({required Object file, required Object status}) => '${file} (sincronizzazione ${status})'; @override String downloadedFileClickToComplete({required Object file}) => '${file} scaricato — fai clic per completare'; @@ -1417,17 +1421,17 @@ class _Translations$downloads$it extends Translations$downloads$en { @override String get pauseAll => 'Metti tutto in pausa'; @override String get resumeAll => 'Riprendi tutto'; @override String get deleteAll => 'Elimina tutto'; - @override String get selectVersion => 'Seleziona versione'; + @override String get selectVersion => 'Seleziona la versione'; @override String get allEpisodes => 'Tutti gli episodi'; @override String get unwatchedOnly => 'Solo non visti'; - @override String nextNUnwatched({required Object count}) => 'Prossimi ${count} non visti'; + @override String nextNUnwatched({required Object count}) => 'Prossimi ${count} episodi non visti'; @override String get customAmount => 'Quantità personalizzata...'; @override String get includeSpecials => 'Includi gli speciali'; @override String get howManyEpisodes => 'Quanti episodi?'; @override String get invalidEpisodeCount => 'Inserisci un numero di episodi valido.'; @override String get keepSynced => 'Mantieni sincronizzato'; @override String get downloadOnce => 'Scarica una volta'; - @override String keepNUnwatched({required Object count}) => 'Mantieni ${count} non visti'; + @override String keepNUnwatched({required Object count}) => 'Mantieni ${count} episodi non visti'; @override String get editSyncRule => 'Modifica regola di sincronizzazione'; @override String get removeSyncRule => 'Rimuovi regola di sincronizzazione'; @override String removeSyncRuleConfirm({required Object title}) => 'Interrompere la sincronizzazione di "${title}"? Gli episodi scaricati verranno mantenuti.'; @@ -1470,7 +1474,7 @@ class _Translations$shaders$it extends Translations$shaders$en { @override String get importShader => 'Importa shader'; @override String get customShaderDescription => 'Shader GLSL personalizzato'; @override String get shaderImported => 'Shader importato'; - @override String get shaderImportFailed => 'Importazione shader fallita'; + @override String get shaderImportFailed => 'Impossibile importare lo shader'; @override String get deleteShader => 'Elimina shader'; @override String deleteShaderConfirm({required Object name}) => 'Eliminare "${name}"?'; } @@ -1508,8 +1512,8 @@ class _Translations$videoSettings$it extends Translations$videoSettings$en { @override String get hdr => 'HDR'; @override String get audioOutput => 'Uscita audio'; @override String get performanceOverlay => 'Overlay prestazioni'; - @override String get audioPassthrough => 'Audio Passthrough'; - @override String get audioNormalization => 'Normalizza volume'; + @override String get audioPassthrough => 'Passthrough audio'; + @override String get audioNormalization => 'Normalizza il volume'; @override String get audioDownmix => 'Downmix in stereo'; } @@ -1527,7 +1531,7 @@ class _Translations$performanceOverlay$it extends Translations$performanceOverla @override String get decoder => 'Decoder'; @override String get rawDecoder => 'Decoder raw'; @override String get tunneling => 'Tunneling'; - @override String get aspect => 'Aspetto'; + @override String get aspect => 'Proporzioni'; @override String get rotation => 'Rotazione'; @override String get dvSource => 'Sorgente DV'; @override String get dvPath => 'Percorso DV'; @@ -1536,9 +1540,9 @@ class _Translations$performanceOverlay$it extends Translations$performanceOverla @override String get pixelFormat => 'Formato pixel'; @override String get hwFormat => 'Formato HW'; @override String get matrix => 'Matrice'; - @override String get primaries => 'Primari'; - @override String get transfer => 'Transfer'; - @override String get renderFps => 'FPS render'; + @override String get primaries => 'Colori primari'; + @override String get transfer => 'Trasferimento'; + @override String get renderFps => 'FPS rendering'; @override String get displayFps => 'FPS display'; @override String get avSync => 'Sync A/V'; @override String get dropped => 'Scartati'; @@ -1552,7 +1556,7 @@ class _Translations$performanceOverlay$it extends Translations$performanceOverla @override String get cacheUsed => 'Cache usata'; @override String get cacheLimit => 'Limite cache'; @override String get speed => 'Velocità'; - @override String get player => 'Player'; + @override String get player => 'Lettore'; @override String get memory => 'Memoria'; @override String get uiFps => 'FPS UI'; } @@ -1565,21 +1569,21 @@ class _Translations$externalPlayer$it extends Translations$externalPlayer$en { // Translations @override String get title => 'Lettore esterno'; - @override String get useExternalPlayer => 'Usa lettore esterno'; - @override String get useExternalPlayerDescription => 'Apri video in un\'altra app'; - @override String get selectPlayer => 'Seleziona lettore'; + @override String get useExternalPlayer => 'Usa un lettore esterno'; + @override String get useExternalPlayerDescription => 'Apri i video in un\'altra app'; + @override String get selectPlayer => 'Seleziona il lettore'; @override String get customPlayers => 'Lettori personalizzati'; @override String get systemDefault => 'Predefinito di sistema'; @override String get addCustomPlayer => 'Aggiungi lettore personalizzato'; - @override String get playerName => 'Nome lettore'; - @override String get playerNameHint => 'Il mio player'; + @override String get playerName => 'Nome del lettore'; + @override String get playerNameHint => 'Il mio lettore'; @override String get playerCommand => 'Comando'; @override String get playerPackage => 'Nome pacchetto'; @override String get playerUrlScheme => 'Schema URL'; @override String get off => 'Disattivato'; @override String get launchFailed => 'Impossibile aprire il lettore esterno'; @override String appNotInstalled({required Object name}) => '${name} non è installato'; - @override String get playInExternalPlayer => 'Riproduci in lettore esterno'; + @override String get playInExternalPlayer => 'Riproduci nel lettore esterno'; } // Path: metadataEdit @@ -1592,15 +1596,15 @@ class _Translations$metadataEdit$it extends Translations$metadataEdit$en { @override String get editMetadata => 'Modifica...'; @override String get screenTitle => 'Modifica metadati'; @override String get basicInfo => 'Informazioni di base'; - @override String get artwork => 'Artwork'; + @override String get artwork => 'Immagini'; @override String get advancedSettings => 'Impostazioni avanzate'; @override String get title => 'Titolo'; @override String get sortTitle => 'Titolo di ordinamento'; @override String get originalTitle => 'Titolo originale'; @override String get releaseDate => 'Data di uscita'; - @override String get contentRating => 'Classificazione'; + @override String get contentRating => 'Classificazione per età'; @override String get studio => 'Studio'; - @override String get tagline => 'Tagline'; + @override String get tagline => 'Slogan'; @override String get summary => 'Trama'; @override String get poster => 'Poster'; @override String get background => 'Sfondo'; @@ -1614,17 +1618,17 @@ class _Translations$metadataEdit$it extends Translations$metadataEdit$en { @override String get uploadFile => 'Carica file'; @override String get enterImageUrl => 'Inserisci URL immagine'; @override String get imageUrl => 'URL immagine'; - @override String get metadataUpdated => 'Metadati aggiornati'; - @override String get metadataUpdateFailed => 'Aggiornamento metadati non riuscito'; - @override String get artworkUpdated => 'Artwork aggiornato'; - @override String get artworkUpdateFailed => 'Aggiornamento artwork non riuscito'; - @override String get noArtworkAvailable => 'Nessun artwork disponibile'; - @override String artworkOption({required Object index}) => 'Opzione artwork ${index}'; - @override String selectedArtworkOption({required Object index}) => 'Opzione artwork ${index}, selezionata'; + @override String get metadataUpdated => 'Metadati aggiornati correttamente'; + @override String get metadataUpdateFailed => 'Impossibile aggiornare i metadati'; + @override String get artworkUpdated => 'Immagini aggiornate'; + @override String get artworkUpdateFailed => 'Impossibile aggiornare le immagini'; + @override String get noArtworkAvailable => 'Nessuna immagine disponibile'; + @override String artworkOption({required Object index}) => 'Opzione immagine ${index}'; + @override String selectedArtworkOption({required Object index}) => 'Opzione immagine ${index}, selezionata'; @override String get notSet => 'Non impostato'; - @override String get libraryDefault => 'Predefinito libreria'; - @override String get accountDefault => 'Predefinito account'; - @override String get seriesDefault => 'Predefinito serie'; + @override String get libraryDefault => 'Predefinito della libreria'; + @override String get accountDefault => 'Predefinito dell\'account'; + @override String get seriesDefault => 'Predefinito della serie'; @override String get episodeSorting => 'Ordinamento episodi'; @override String get oldestFirst => 'Più vecchi prima'; @override String get newestFirst => 'Più recenti prima'; @@ -1643,14 +1647,14 @@ class _Translations$metadataEdit$it extends Translations$metadataEdit$en { @override String get show => 'Mostra'; @override String get hide => 'Nascondi'; @override String get episodeOrdering => 'Ordine episodi'; - @override String get tmdbAiring => 'The Movie Database (In onda)'; - @override String get tvdbAiring => 'TheTVDB (In onda)'; - @override String get tvdbAbsolute => 'TheTVDB (Assoluto)'; - @override String get metadataLanguage => 'Lingua metadati'; - @override String get useOriginalTitle => 'Usa titolo originale'; + @override String get tmdbAiring => 'The Movie Database (ordine di trasmissione)'; + @override String get tvdbAiring => 'TheTVDB (ordine di trasmissione)'; + @override String get tvdbAbsolute => 'TheTVDB (ordine assoluto)'; + @override String get metadataLanguage => 'Lingua dei metadati'; + @override String get useOriginalTitle => 'Usa il titolo originale'; @override String get preferredAudioLanguage => 'Lingua audio preferita'; - @override String get preferredSubtitleLanguage => 'Lingua sottotitoli preferita'; - @override String get subtitleMode => 'Selezione automatica sottotitoli'; + @override String get preferredSubtitleLanguage => 'Lingua dei sottotitoli preferita'; + @override String get subtitleMode => 'Modalità di selezione automatica dei sottotitoli'; @override String get manuallySelected => 'Selezionato manualmente'; @override String get shownWithForeignAudio => 'Mostrati con audio straniero'; @override String get alwaysEnabled => 'Sempre attivo'; @@ -1661,7 +1665,7 @@ class _Translations$metadataEdit$it extends Translations$metadataEdit$en { @override String get writer => 'Sceneggiatore'; @override String get producer => 'Produttore'; @override String get country => 'Paese'; - @override String get collection => 'Collezione'; + @override String get collection => 'Raccolta'; @override String get label => 'Etichetta'; @override String get style => 'Stile'; @override String get mood => 'Atmosfera'; @@ -1677,7 +1681,7 @@ class _Translations$matchScreen$it extends Translations$matchScreen$en { @override String get match => 'Abbina...'; @override String get fixMatch => 'Correggi abbinamento...'; @override String get unmatch => 'Rimuovi abbinamento'; - @override String get unmatchConfirm => 'Cancellare questa corrispondenza? Plex la tratterà come non abbinata finché non verrà riabbinata.'; + @override String get unmatchConfirm => 'Rimuovere questo abbinamento? Plex considererà l\'elemento non abbinato finché non verrà eseguito un nuovo abbinamento.'; @override String get unmatchSuccess => 'Abbinamento rimosso'; @override String get unmatchFailed => 'Rimozione dell\'abbinamento non riuscita'; @override String get matchApplied => 'Abbinamento applicato'; @@ -1714,8 +1718,8 @@ class _Translations$trakt$it extends Translations$trakt$en { @override String get disconnectConfirmBody => 'Plezy smetterà di inviare eventi a Trakt. Puoi riconnetterti quando vuoi.'; @override String get scrobble => 'Scrobbling in tempo reale'; @override String get scrobbleDescription => 'Invia eventi di riproduzione, pausa e arresto a Trakt durante la riproduzione.'; - @override String get watchedSync => 'Sincronizza stato visualizzato'; - @override String get watchedSyncDescription => 'Quando segni elementi come visti in Plezy, vengono segnati anche su Trakt.'; + @override String get watchedSync => 'Sincronizza lo stato di visione'; + @override String get watchedSyncDescription => 'Quando contrassegni un elemento come visto in Plezy, viene contrassegnato come visto anche su Trakt.'; } // Path: seerr @@ -1737,22 +1741,22 @@ class _Translations$seerr$it extends Translations$seerr$en { @override String get noSignInMethods => 'Questa istanza Seerr non offre alcun metodo di accesso supportato da Plezy.'; @override String get instance => 'Istanza'; @override String get disconnectConfirm => 'Disconnettere Seerr?'; - @override String get disconnectConfirmBody => 'Plezy dimenticherà questa istanza Seerr. Riconnetti quando vuoi.'; + @override String get disconnectConfirmBody => 'Plezy rimuoverà questa istanza Seerr. Potrai riconnetterla in qualsiasi momento.'; @override String get request => 'Richiedi'; @override String get request4k => 'Richiedi in 4K'; @override String get seasons => 'Stagioni'; @override String get allSeasons => 'Tutte le stagioni'; @override String get advancedOptions => 'Avanzate'; @override String get destinationServer => 'Server di destinazione'; - @override String get qualityProfile => 'Profilo qualità'; + @override String get qualityProfile => 'Profilo di qualità'; @override String get rootFolder => 'Cartella radice'; - @override String get languageProfile => 'Profilo lingua'; + @override String get languageProfile => 'Profilo della lingua'; @override String get requestSubmitted => 'Richiesta inviata'; @override String requestFailed({required Object error}) => 'Richiesta non riuscita: ${error}'; @override String get requestsLoadFailed => 'Impossibile caricare le opzioni di richiesta'; @override String get nothingToRequest => 'Tutto è già disponibile o richiesto.'; @override String get statusAvailable => 'Disponibile'; - @override String get statusPartiallyAvailable => 'Parzialmente disponibile'; + @override String get statusPartiallyAvailable => 'Disponibile in parte'; @override String get statusRequested => 'Richiesto'; @override String get statusProcessing => 'In elaborazione'; } @@ -1768,8 +1772,8 @@ class _Translations$services$it extends Translations$services$en { @override String get hubSubtitle => 'Sincronizza i progressi di visione e richiedi nuovi titoli.'; @override String get notConnected => 'Non connesso'; @override String connectedAs({required Object username}) => 'Connesso come @${username}'; - @override String get scrobble => 'Traccia i progressi automaticamente'; - @override String get scrobbleDescription => 'Aggiorna la tua lista quando finisci un episodio o un film.'; + @override String get scrobble => 'Registra automaticamente i progressi'; + @override String get scrobbleDescription => 'Aggiorna la tua lista quando termini un episodio o un film.'; @override String disconnectConfirm({required Object service}) => 'Disconnettere ${service}?'; @override String disconnectConfirmBody({required Object service}) => 'Plezy smetterà di aggiornare ${service}. Riconnetti quando vuoi.'; @override String connectFailed({required Object service}) => 'Impossibile connettersi a ${service}. Riprova.'; @@ -1789,8 +1793,8 @@ class _Translations$addServer$it extends Translations$addServer$en { @override String get addJellyfinTitle => 'Aggiungi server Jellyfin'; @override String get serverUrls => 'URL del server'; @override String get serverUrlsHelper => 'Sono consentiti più URL, separati da virgole.'; - @override String get findServer => 'Trova server'; - @override String get searchingLocalServers => 'Ricerca server Jellyfin locali...'; + @override String get findServer => 'Trova il server'; + @override String get searchingLocalServers => 'Ricerca dei server Jellyfin locali...'; @override String get localServers => 'Server Jellyfin locali'; @override String get username => 'Nome utente'; @override String get password => 'Password'; @@ -1809,9 +1813,9 @@ class _Translations$addServer$it extends Translations$addServer$en { @override String get signInWithPlexCard => 'Accedi con Plex'; @override String get signInWithPlexCardSubtitle => 'Autorizza questo dispositivo. I server condivisi vengono aggiunti.'; @override String get signInWithPlexCardSubtitleScoped => 'Autorizza un account Plex. Gli utenti Home diventano profili.'; - @override String get connectToJellyfinCard => 'Connetti a Jellyfin'; - @override String get connectToJellyfinCardSubtitle => 'Inserisci URL del server, nome utente e password.'; - @override String connectToJellyfinCardSubtitleScoped({required Object name}) => 'Accedi a un server Jellyfin. Collegato a ${name}.'; + @override String get connectToJellyfinCard => 'Connettiti a Jellyfin'; + @override String get connectToJellyfinCardSubtitle => 'Inserisci l\'URL del server, il nome utente e la password.'; + @override String connectToJellyfinCardSubtitleScoped({required Object name}) => 'Accedi a un server Jellyfin. Verrà associato a ${name}.'; @override String get borrowFromAnotherProfile => 'Prendi in prestito da un altro profilo'; @override String get borrowFromAnotherProfileSubtitle => 'Riutilizza la connessione di un altro profilo. I profili protetti da PIN richiedono un PIN.'; } @@ -1828,9 +1832,9 @@ class _Translations$hotkeys$actions$it extends Translations$hotkeys$actions$en { @override String get volumeDown => 'Abbassa volume'; @override String seekForward({required Object seconds}) => 'Avanti (${seconds}s)'; @override String seekBackward({required Object seconds}) => 'Indietro (${seconds}s)'; - @override String get fullscreenToggle => 'Schermo intero'; - @override String get muteToggle => 'Muto'; - @override String get subtitleToggle => 'Sottotitoli'; + @override String get fullscreenToggle => 'Attiva/disattiva schermo intero'; + @override String get muteToggle => 'Attiva/disattiva audio'; + @override String get subtitleToggle => 'Attiva/disattiva sottotitoli'; @override String get audioTrackNext => 'Traccia audio successiva'; @override String get subtitleTrackNext => 'Sottotitoli successivi'; @override String get chapterNext => 'Capitolo successivo'; @@ -1859,7 +1863,7 @@ class _Translations$videoControls$pipErrors$it extends Translations$videoControl // Translations @override String get androidVersion => 'Richiede Android 8.0 o versioni successive'; @override String get iosVersion => 'Richiede iOS 15.0 o versioni successive'; - @override String get permissionDisabled => 'Picture-in-picture è disattivato. Attivalo nelle impostazioni di sistema.'; + @override String get permissionDisabled => 'La modalità Picture-in-Picture è disattivata. Attivala nelle impostazioni di sistema.'; @override String get notSupported => 'Questo dispositivo non supporta la modalità Picture-in-Picture'; @override String get voSwitchFailed => 'Impossibile cambiare l\'uscita video per Picture-in-Picture'; @override String get failed => 'Impossibile avviare la modalità Picture-in-Picture'; @@ -1886,7 +1890,7 @@ class _Translations$libraries$groupings$it extends Translations$libraries$groupi final TranslationsIt _root; // ignore: unused_field // Translations - @override String get title => 'Raggruppamento'; + @override String get title => 'Raggruppa per'; @override String get all => 'Tutti'; @override String get movies => 'Film'; @override String get shows => 'Serie TV'; @@ -1907,10 +1911,10 @@ class _Translations$libraries$filterCategories$it extends Translations$libraries // Translations @override String get genre => 'Genere'; @override String get year => 'Anno'; - @override String get contentRating => 'Classificazione'; + @override String get contentRating => 'Classificazione per età'; @override String get tag => 'Tag'; @override String get unwatched => 'Non visti'; - @override String get unplayed => 'Non riprodotto'; + @override String get unplayed => 'Non riprodotti'; @override String get favorites => 'Preferiti'; } @@ -1925,7 +1929,7 @@ class _Translations$libraries$sortLabels$it extends Translations$libraries$sortL @override String get dateAdded => 'Data di aggiunta'; @override String get releaseDate => 'Data di uscita'; @override String get rating => 'Valutazione'; - @override String get communityRating => 'Valutazione della community'; + @override String get communityRating => 'Valutazione della comunità'; @override String get criticRating => 'Valutazione critica'; @override String get userRating => 'Valutazione utente'; @override String get datePlayed => 'Data di riproduzione'; @@ -1939,8 +1943,8 @@ class _Translations$libraries$sortLabels$it extends Translations$libraries$sortL @override String get studio => 'Studio'; @override String get random => 'Casuale'; @override String get dateShared => 'Data di condivisione'; - @override String get latestEpisodeAirDate => 'Data ultima messa in onda'; - @override String get lastEpisodeDateAdded => 'Data aggiunta ultimo episodio'; + @override String get latestEpisodeAirDate => 'Data di trasmissione dell\'ultimo episodio'; + @override String get lastEpisodeDateAdded => 'Data di aggiunta dell\'ultimo episodio'; } // Path: explore.rows @@ -1950,7 +1954,7 @@ class _Translations$explore$rows$it extends Translations$explore$rows$en { final TranslationsIt _root; // ignore: unused_field // Translations - @override String get watchlist => 'Watchlist'; + @override String get watchlist => 'Lista da guardare'; @override String get recommendedMovies => 'Film consigliati'; @override String get recommendedShows => 'Serie TV consigliate'; @override String get trendingMovies => 'Film di tendenza'; @@ -1991,7 +1995,7 @@ class _Translations$companionRemote$session$it extends Translations$companionRem @override String get connected => 'Connesso'; @override String get serverRunning => 'Server remoto attivo'; @override String get serverStopped => 'Server remoto arrestato'; - @override String get serverRunningDescription => 'I dispositivi mobili sulla tua rete possono connettersi a questa app'; + @override String get serverRunningDescription => 'I dispositivi mobili della tua rete possono connettersi a questa app'; @override String get serverStoppedDescription => 'Avvia il server per consentire ai dispositivi mobili di connettersi'; @override String get usePhoneToControl => 'Usa il tuo dispositivo mobile per controllare questa app'; @override String get startServer => 'Avvia server'; @@ -2011,16 +2015,16 @@ class _Translations$companionRemote$pairing$it extends Translations$companionRem @override String get connecting => 'Connessione...'; @override String get searchingForDevices => 'Ricerca dispositivi...'; @override String get noDevicesFound => 'Nessun dispositivo trovato nella tua rete'; - @override String get noDevicesHint => 'Apri Plezy su desktop e usa lo stesso WiFi'; + @override String get noDevicesHint => 'Apri Plezy sul computer e usa la stessa rete Wi-Fi'; @override String get availableDevices => 'Dispositivi disponibili'; @override String get manualConnection => 'Connessione manuale'; @override String get cryptoInitFailed => 'Impossibile avviare la connessione sicura. Accedi prima a Plex.'; @override String get validationHostRequired => 'Inserisci l\'indirizzo host'; @override String get validationHostFormat => 'Il formato deve essere IP:porta (es. 192.168.1.100:48632)'; - @override String get connectionTimedOut => 'Connessione scaduta. Usa la stessa rete su entrambi i dispositivi.'; + @override String get connectionTimedOut => 'Tempo scaduto per la connessione. Usa la stessa rete su entrambi i dispositivi.'; @override String get sessionNotFound => 'Dispositivo non trovato. Assicurati che Plezy sia in esecuzione sull\'host.'; @override String get authFailed => 'Autenticazione non riuscita. Entrambi i dispositivi devono usare lo stesso account Plex.'; - @override String failedToConnect({required Object error}) => 'Connessione fallita: ${error}'; + @override String failedToConnect({required Object error}) => 'Connessione non riuscita: ${error}'; } // Path: companionRemote.remote @@ -2038,7 +2042,7 @@ class _Translations$companionRemote$remote$it extends Translations$companionRemo @override String get tabPlay => 'Riproduci'; @override String get tabMore => 'Altro'; @override String get menu => 'Menu'; - @override String get tabNavigation => 'Navigazione schede'; + @override String get tabNavigation => 'Navigazione'; @override String get tabDiscover => 'Esplora'; @override String get tabLibraries => 'Librerie'; @override String get tabSearch => 'Cerca'; @@ -2047,8 +2051,8 @@ class _Translations$companionRemote$remote$it extends Translations$companionRemo @override String get previous => 'Precedente'; @override String get playPause => 'Riproduci/Pausa'; @override String get next => 'Successivo'; - @override String get seekBack => 'Riavvolgi'; - @override String get stop => 'Ferma'; + @override String get seekBack => 'Indietro'; + @override String get stop => 'Interrompi'; @override String get seekForward => 'Avanti'; @override String get volume => 'Volume'; @override String get volumeDown => 'Abbassa'; @@ -2056,7 +2060,7 @@ class _Translations$companionRemote$remote$it extends Translations$companionRemo @override String get fullscreen => 'Schermo intero'; @override String get subtitles => 'Sottotitoli'; @override String get audio => 'Audio'; - @override String get searchHint => 'Cerca sul desktop...'; + @override String get searchHint => 'Cerca sul computer...'; } // Path: companionRemote.errors @@ -2070,7 +2074,7 @@ class _Translations$companionRemote$errors$it extends Translations$companionRemo @override String get authenticationFailed => 'Autenticazione non riuscita'; @override String serverStartFailed({required Object error}) => 'Impossibile avviare il server remoto: ${error}'; @override String commandFailed({required Object error}) => 'Impossibile inviare il comando remoto: ${error}'; - @override String get joinTimedOut => 'Tempo scaduto durante l’accesso alla sessione'; + @override String get joinTimedOut => 'Tempo scaduto durante la partecipazione alla sessione'; @override String get failedToConnectAnyAddress => 'Impossibile connettersi a qualsiasi indirizzo'; @override String connectionLostAfterAttempts({required Object attempts}) => 'Connessione persa dopo ${attempts} tentativi'; @override String get connectionLost => 'Connessione persa'; @@ -2125,16 +2129,16 @@ class _Translations$services$libraryFilter$it extends Translations$services$libr final TranslationsIt _root; // ignore: unused_field // Translations - @override String get title => 'Filtro librerie'; + @override String get title => 'Filtro delle librerie'; @override String get subtitleAllSyncing => 'Sincronizzazione di tutte le librerie'; - @override String get subtitleNoneSyncing => 'Nulla da sincronizzare'; + @override String get subtitleNoneSyncing => 'Nessuna sincronizzazione'; @override String subtitleBlocked({required Object count}) => '${count} bloccate'; @override String subtitleAllowed({required Object count}) => '${count} consentite'; @override String get mode => 'Modalità filtro'; @override String get modeBlacklist => 'Lista nera'; @override String get modeWhitelist => 'Lista bianca'; - @override String get modeHintBlacklist => 'Sincronizza tutte le librerie tranne quelle selezionate sotto.'; - @override String get modeHintWhitelist => 'Sincronizza solo le librerie selezionate sotto.'; + @override String get modeHintBlacklist => 'Sincronizza tutte le librerie tranne quelle selezionate qui sotto.'; + @override String get modeHintWhitelist => 'Sincronizza solo le librerie selezionate qui sotto.'; @override String get libraries => 'Librerie'; @override String get noLibraries => 'Nessuna libreria disponibile'; } @@ -2149,39 +2153,39 @@ extension on TranslationsIt { return switch (path) { 'app.title' => 'Plezy', 'auth.signInWithPlex' => 'Accedi con Plex', - 'auth.showQRCode' => 'Mostra QR Code', - 'auth.authenticate' => 'Autenticazione', - 'auth.authenticationTimeout' => 'Autenticazione scaduta. Riprova.', - 'auth.scanQRToSignIn' => 'Scansiona il QR code per accedere', + 'auth.showQRCode' => 'Mostra codice QR', + 'auth.authenticate' => 'Autenticati', + 'auth.authenticationTimeout' => 'Tempo scaduto per l\'autenticazione. Riprova.', + 'auth.scanQRToSignIn' => 'Scansiona questo codice QR per accedere', 'auth.waitingForAuth' => 'In attesa di autenticazione...\nAccedi dal browser.', - 'auth.useBrowser' => 'Usa browser', + 'auth.useBrowser' => 'Usa il browser', 'auth.or' => 'o', - 'auth.connectToJellyfin' => 'Connetti a Jellyfin', + 'auth.connectToJellyfin' => 'Connettiti a Jellyfin', 'auth.useQuickConnect' => 'Usa Quick Connect', 'auth.quickConnectInstructions' => 'Apri Quick Connect in Jellyfin e inserisci questo codice.', 'auth.quickConnectWaiting' => 'In attesa di approvazione…', 'auth.quickConnectCancel' => 'Annulla', 'auth.quickConnectExpired' => 'Quick Connect scaduto. Riprova.', - 'auth.localDataRecoveryRequired' => 'Plezy could not safely recover local sign-in and pending playback data. Please sign in again.', - 'common.cancel' => 'Cancella', + 'auth.localDataRecoveryRequired' => 'Plezy non è riuscito a recuperare in sicurezza i dati locali di accesso e delle riproduzioni in sospeso. Accedi di nuovo.', + 'common.cancel' => 'Annulla', 'common.save' => 'Salva', 'common.close' => 'Chiudi', - 'common.clear' => 'Pulisci', + 'common.clear' => 'Cancella', 'common.reset' => 'Ripristina', 'common.later' => 'Più tardi', 'common.submit' => 'Invia', 'common.confirm' => 'Conferma', 'common.retry' => 'Riprova', - 'common.logout' => 'Disconnetti', + 'common.logout' => 'Esci', 'common.unknown' => 'Sconosciuto', 'common.refresh' => 'Aggiorna', 'common.yes' => 'Sì', 'common.no' => 'No', 'common.delete' => 'Elimina', 'common.edit' => 'Modifica', - 'common.shuffle' => 'Casuale', + 'common.shuffle' => 'Riproduzione casuale', 'common.addTo' => 'Aggiungi a...', - 'common.createNew' => 'Crea', + 'common.createNew' => 'Crea nuovo', 'common.connect' => 'Connetti', 'common.disconnect' => 'Disconnetti', 'common.play' => 'Riproduci', @@ -2191,8 +2195,8 @@ extension on TranslationsIt { 'common.search' => 'Cerca', 'common.home' => 'Home', 'common.back' => 'Indietro', - 'common.settings' => 'Opzioni', - 'common.mute' => 'Muto', + 'common.settings' => 'Impostazioni', + 'common.mute' => 'Disattiva audio', 'common.ok' => 'OK', 'common.off' => 'Disattivato', 'common.seasonNumber' => ({required Object number}) => 'Stagione ${number}', @@ -2200,24 +2204,24 @@ extension on TranslationsIt { 'common.chapterNumber' => ({required Object number}) => 'Capitolo ${number}', 'common.reconnect' => 'Riconnetti', 'common.viewAll' => 'Mostra tutto', - 'common.checkingNetwork' => 'Verifica rete...', + 'common.checkingNetwork' => 'Controllo della rete...', 'common.loadingServers' => 'Caricamento server...', 'common.connectingToServers' => 'Connessione ai server...', 'common.startingOfflineMode' => 'Avvio modalità offline...', 'common.loading' => 'Caricamento...', 'common.fullscreen' => 'Schermo intero', - 'common.exitFullscreen' => 'Esci da schermo intero', - 'common.pressBackAgainToExit' => 'Premi di nuovo indietro per uscire', + 'common.exitFullscreen' => 'Esci dalla modalità a schermo intero', + 'common.pressBackAgainToExit' => 'Premi di nuovo Indietro per uscire', 'screens.licenses' => 'Licenze', 'screens.switchProfile' => 'Cambia profilo', 'screens.subtitleStyling' => 'Stile sottotitoli', 'screens.mpvConfig' => 'mpv.conf', - 'screens.logs' => 'Registro', + 'screens.logs' => 'Log', 'update.available' => 'Aggiornamento disponibile', 'update.versionAvailable' => ({required Object version}) => 'Versione ${version} disponibile', - 'update.currentVersion' => ({required Object version}) => 'Corrente: ${version}', + 'update.currentVersion' => ({required Object version}) => 'Attuale: ${version}', 'update.skipVersion' => 'Salta questa versione', - 'update.viewRelease' => 'Visualizza dettagli release', + 'update.viewRelease' => 'Visualizza note di rilascio', 'update.latestVersion' => 'La versione installata è l\'ultima disponibile', 'update.checkFailed' => 'Impossibile controllare gli aggiornamenti', 'settings.title' => 'Impostazioni', @@ -2238,40 +2242,42 @@ extension on TranslationsIt { 'settings.minutesLabel' => 'Minuti', 'settings.secondsShort' => 's', 'settings.minutesShort' => 'm', - 'settings.durationHint' => ({required Object min, required Object max}) => 'Inserisci durata (${min}-${max})', + 'settings.durationHint' => ({required Object min, required Object max}) => 'Inserisci una durata (${min}-${max})', 'settings.systemTheme' => 'Sistema', 'settings.lightTheme' => 'Chiaro', 'settings.darkTheme' => 'Scuro', 'settings.oledTheme' => 'OLED', - 'settings.libraryDensity' => 'Densità libreria', + 'settings.libraryDensity' => 'Densità della libreria', 'settings.compact' => 'Compatta', 'settings.comfortable' => 'Comoda', + 'settings.tvCornerSpotlightBackdrop' => 'Sfondo in evidenza nell\'angolo', + 'settings.tvCornerSpotlightBackdropDescription' => 'Mostra l\'immagine in evidenza nell\'angolo in alto a destra anziché a schermo intero', 'settings.viewMode' => 'Modalità di visualizzazione', 'settings.gridView' => 'Griglia', 'settings.listView' => 'Elenco', - 'settings.showHeroSection' => 'Mostra sezione principale', - 'settings.continueWatchingAction' => 'Azione Continua a guardare', + 'settings.showHeroSection' => 'Mostra sezione in evidenza', + 'settings.continueWatchingAction' => 'Azione per Continua a guardare', 'settings.continueWatchingPlay' => 'Riproduci', 'settings.continueWatchingDetails' => 'Apri dettagli', 'settings.episodeAction' => 'Azione episodio', 'settings.episodePlay' => 'Riproduci', 'settings.episodeDetails' => 'Apri dettagli', - 'settings.useGlobalHubs' => 'Usa layout home', - 'settings.useGlobalHubsDescription' => 'Mostra hub Home unificati. Altrimenti usa i consigli della libreria.', - 'settings.showServerNameOnHubs' => 'Mostra nome server sugli hub', - 'settings.showServerNameOnHubsDescription' => 'Mostra sempre i nomi dei server nei titoli degli hub.', - 'settings.groupLibrariesByServer' => 'Raggruppa librerie per server', - 'settings.groupLibrariesByServerDescription' => 'Raggruppa le librerie laterali per server multimediale.', + 'settings.useGlobalHubs' => 'Usa il layout della Home', + 'settings.useGlobalHubsDescription' => 'Mostra sezioni Home unificate. In caso contrario, usa i consigli della libreria.', + 'settings.showServerNameOnHubs' => 'Mostra il nome del server nelle sezioni', + 'settings.showServerNameOnHubsDescription' => 'Mostra sempre i nomi dei server nei titoli delle sezioni.', + 'settings.groupLibrariesByServer' => 'Raggruppa le librerie per server', + 'settings.groupLibrariesByServerDescription' => 'Raggruppa le librerie della barra laterale sotto ciascun server multimediale.', 'settings.alwaysKeepSidebarOpen' => 'Mantieni sempre aperta la barra laterale', 'settings.alwaysKeepSidebarOpenDescription' => 'La barra laterale rimane espansa e l\'area del contenuto si adatta', - 'settings.showUnwatchedCount' => 'Mostra conteggio non visti', + 'settings.showUnwatchedCount' => 'Mostra il numero di episodi non visti', 'settings.showUnwatchedCountDescription' => 'Mostra il numero di episodi non visti per serie e stagioni', - 'settings.showEpisodeNumberOnCards' => 'Mostra numero episodio sulle schede', - 'settings.showEpisodeNumberOnCardsDescription' => 'Mostra stagione ed episodio sulle schede episodio', - 'settings.showSeasonPostersOnTabs' => 'Mostra poster delle stagioni sulle schede', + 'settings.showEpisodeNumberOnCards' => 'Mostra il numero dell\'episodio sulle schede', + 'settings.showEpisodeNumberOnCardsDescription' => 'Mostra il numero della stagione e dell\'episodio sulle schede degli episodi', + 'settings.showSeasonPostersOnTabs' => 'Mostra i poster delle stagioni nelle schede', 'settings.showSeasonPostersOnTabsDescription' => 'Mostra il poster di ogni stagione sopra la sua scheda', - 'settings.tvFullCardLayout' => 'Schede TV piene', - 'settings.tvFullCardLayoutDescription' => 'Usa schede TV solo immagine con i nomi degli attori sovrapposti', + 'settings.tvFullCardLayout' => 'Schede TV a tutta immagine', + 'settings.tvFullCardLayoutDescription' => 'Usa schede TV con la sola immagine e i nomi degli attori sovrapposti', 'settings.focusGlow' => 'Bagliore di selezione', 'settings.focusGlowDescription' => 'Mostra un leggero bagliore attorno alla scheda selezionata', 'settings.visualEffects' => 'Effetti visivi', @@ -2285,48 +2291,48 @@ extension on TranslationsIt { 'settings.playerBackend' => 'Motore di riproduzione', 'settings.exoPlayer' => 'ExoPlayer', 'settings.mpv' => 'mpv', - 'settings.hardwareDecoding' => 'Decodifica Hardware', + 'settings.hardwareDecoding' => 'Decodifica hardware', 'settings.hardwareDecodingDescription' => 'Utilizza l\'accelerazione hardware quando disponibile', 'settings.bufferSize' => 'Dimensione buffer', 'settings.bufferSizeMB' => ({required Object size}) => '${size}MB', - 'settings.bufferSizeAuto' => 'Auto (Consigliato)', + 'settings.bufferSizeAuto' => 'Automatica (consigliata)', 'settings.bufferSizeWarning' => ({required Object heap, required Object size}) => '${heap}MB di memoria disponibile. Un buffer di ${size}MB può influire sulla riproduzione.', 'settings.defaultQualityTitle' => 'Qualità predefinita', 'settings.musicQualityTitle' => 'Qualità musicale', 'settings.subtitleStyling' => 'Stile sottotitoli', 'settings.subtitleStylingDescription' => 'Personalizza l\'aspetto dei sottotitoli', - 'settings.smallSkipDuration' => 'Durata skip breve', - 'settings.largeSkipDuration' => 'Durata skip lungo', - 'settings.rewindOnResume' => 'Riavvolgi alla ripresa', + 'settings.smallSkipDuration' => 'Salto breve', + 'settings.largeSkipDuration' => 'Salto lungo', + 'settings.rewindOnResume' => 'Riavvolgimento alla ripresa', 'settings.secondsUnit' => ({required Object seconds}) => '${seconds} secondi', 'settings.defaultSleepTimer' => 'Timer spegnimento predefinito', 'settings.minutesUnit' => ({required Object minutes}) => '${minutes} minuti', - 'settings.rememberTrackSelections' => 'Ricorda selezioni tracce per serie/film', - 'settings.rememberTrackSelectionsDescription' => 'Ricorda scelte audio e sottotitoli per titolo', + 'settings.rememberTrackSelections' => 'Ricorda la selezione delle tracce per ogni serie o film', + 'settings.rememberTrackSelectionsDescription' => 'Ricorda le scelte di audio e sottotitoli per ogni titolo', 'settings.showChapterMarkersOnTimeline' => 'Mostra i marcatori dei capitoli sulla barra di avanzamento', 'settings.showChapterMarkersOnTimelineDescription' => 'Segmenta la barra di avanzamento ai confini dei capitoli', - 'settings.clickVideoTogglesPlayback' => 'Fai clic sul video per avviare o mettere in pausa la riproduzione.', - 'settings.clickVideoTogglesPlaybackDescription' => 'Clicca sul video per riprodurre/mettere in pausa invece di mostrare i controlli.', + 'settings.clickVideoTogglesPlayback' => 'Fai clic sul video per alternare riproduzione e pausa', + 'settings.clickVideoTogglesPlaybackDescription' => 'Fai clic sul video per riprodurre o mettere in pausa anziché mostrare i controlli.', 'settings.videoPlayerControls' => 'Controlli del lettore video', 'settings.keyboardShortcuts' => 'Scorciatoie da tastiera', 'settings.keyboardShortcutsDescription' => 'Personalizza le scorciatoie da tastiera', 'settings.videoPlayerNavigation' => 'Navigazione del lettore video', 'settings.videoPlayerNavigationDescription' => 'Usa i tasti freccia per navigare nei controlli del lettore video', - 'settings.watchTogetherRelay' => 'Relay Guarda Insieme', + 'settings.watchTogetherRelay' => 'Relay di Guarda insieme', 'settings.watchTogetherRelayDescription' => 'Imposta un relay personalizzato. Tutti devono usare lo stesso server.', 'settings.watchTogetherRelayHint' => 'https://mio-relay.esempio.it', - 'settings.watchTogetherRelayInvalid' => 'Enter a valid HTTP or HTTPS relay base URL.', - 'settings.crashReporting' => 'Segnalazione errori', - 'settings.crashReportingDescription' => 'Invia segnalazioni di errori per migliorare l\'app', - 'settings.debugLogging' => 'Log di debug', - 'settings.debugLoggingDescription' => 'Abilita il logging dettagliato per la risoluzione dei problemi', - 'settings.viewLogs' => 'Visualizza log', + 'settings.watchTogetherRelayInvalid' => 'Inserisci un URL di base HTTP o HTTPS valido per il relay.', + 'settings.crashReporting' => 'Segnalazione degli arresti anomali', + 'settings.crashReportingDescription' => 'Invia segnalazioni sugli arresti anomali per contribuire a migliorare l\'app', + 'settings.debugLogging' => 'Registrazione di debug', + 'settings.debugLoggingDescription' => 'Abilita una registrazione dettagliata per la risoluzione dei problemi', + 'settings.viewLogs' => 'Visualizza i log', 'settings.viewLogsDescription' => 'Visualizza i log dell\'applicazione', - 'settings.clearCache' => 'Svuota cache', - 'settings.clearCacheDescription' => 'Cancella immagini e dati in cache. Il contenuto può caricarsi più lentamente.', + 'settings.clearCache' => 'Svuota la cache', + 'settings.clearCacheDescription' => 'Cancella le immagini e i dati memorizzati nella cache. I contenuti potrebbero caricarsi più lentamente.', 'settings.clearCacheSuccess' => 'Cache cancellata correttamente', 'settings.resetSettings' => 'Ripristina impostazioni', - 'settings.resetSettingsDescription' => 'Ripristina impostazioni predefinite. Non si può annullare.', + 'settings.resetSettingsDescription' => 'Ripristina le impostazioni predefinite. Questa operazione non può essere annullata.', 'settings.resetSettingsSuccess' => 'Impostazioni ripristinate correttamente', 'settings.backup' => 'Backup', 'settings.exportSettings' => 'Esporta impostazioni', @@ -2347,73 +2353,73 @@ extension on TranslationsIt { 'settings.autoCheckUpdatesOnStartup' => 'Controlla automaticamente gli aggiornamenti all\'avvio', 'settings.autoCheckUpdatesOnStartupDescription' => 'Avvisa all\'avvio quando è disponibile un aggiornamento', 'settings.validationErrorEnterNumber' => 'Inserisci un numero valido', - 'settings.validationErrorDuration' => ({required Object min, required Object max, required Object unit}) => 'la durata deve essere compresa tra ${min} e ${max} ${unit}', + 'settings.validationErrorDuration' => ({required Object min, required Object max, required Object unit}) => 'La durata deve essere compresa tra ${min} e ${max} ${unit}', 'settings.shortcutAlreadyAssigned' => ({required Object action}) => 'Scorciatoia già assegnata a ${action}', 'settings.shortcutUpdated' => ({required Object action}) => 'Scorciatoia aggiornata per ${action}', - 'settings.saveFailed' => 'Could not save changes. Try again.', - 'settings.autoSkip' => 'Salto Automatico', - 'settings.autoSkipIntro' => 'Salta Intro Automaticamente', - 'settings.autoSkipIntroDescription' => 'Salta automaticamente i marcatori dell\'intro dopo alcuni secondi', - 'settings.autoSkipCredits' => 'Salta Crediti Automaticamente', - 'settings.autoSkipCreditsDescription' => 'Salta automaticamente i crediti e riproduci l\'episodio successivo', - 'settings.forceSkipMarkerFallback' => 'Forza marcatori fallback', - 'settings.forceSkipMarkerFallbackDescription' => 'Usa pattern dei titoli dei capitoli anche se Plex ha marcatori', - 'settings.autoSkipDelay' => 'Ritardo Salto Automatico', - 'settings.autoSkipDelayDescription' => ({required Object seconds}) => 'Aspetta ${seconds} secondi prima del salto automatico', - 'settings.introPattern' => 'Pattern marcatore intro', - 'settings.introPatternDescription' => 'Espressione regolare per riconoscere i marcatori intro nei titoli dei capitoli', - 'settings.creditsPattern' => 'Pattern marcatore titoli di coda', - 'settings.creditsPatternDescription' => 'Espressione regolare per riconoscere i marcatori dei titoli di coda nei capitoli', + 'settings.saveFailed' => 'Impossibile salvare le modifiche. Riprova.', + 'settings.autoSkip' => 'Salto automatico', + 'settings.autoSkipIntro' => 'Salta automaticamente la sigla iniziale', + 'settings.autoSkipIntroDescription' => 'Salta automaticamente i marcatori della sigla iniziale dopo alcuni secondi', + 'settings.autoSkipCredits' => 'Salta automaticamente i titoli di coda', + 'settings.autoSkipCreditsDescription' => 'Salta automaticamente i titoli di coda e riproduce l\'episodio successivo', + 'settings.forceSkipMarkerFallback' => 'Forza i marcatori di ripiego', + 'settings.forceSkipMarkerFallbackDescription' => 'Usa i modelli dei titoli dei capitoli anche quando Plex dispone di marcatori', + 'settings.autoSkipDelay' => 'Ritardo del salto automatico', + 'settings.autoSkipDelayDescription' => ({required Object seconds}) => 'Attendi ${seconds} secondi prima del salto automatico', + 'settings.introPattern' => 'Modello del marcatore della sigla iniziale', + 'settings.introPatternDescription' => 'Espressione regolare per individuare i marcatori della sigla iniziale nei titoli dei capitoli', + 'settings.creditsPattern' => 'Modello del marcatore dei titoli di coda', + 'settings.creditsPatternDescription' => 'Espressione regolare per individuare i marcatori dei titoli di coda nei titoli dei capitoli', 'settings.invalidRegex' => 'Espressione regolare non valida', 'settings.regex' => 'Espressione regolare', 'settings.downloads' => 'Download', - 'settings.downloadLocationDescription' => 'Scegli dove salvare i contenuti scaricati', - 'settings.downloadLocationDefault' => 'Predefinita (Archiviazione App)', - 'settings.downloadLocationCustom' => 'Posizione Personalizzata', - 'settings.selectFolder' => 'Seleziona Cartella', - 'settings.resetToDefault' => 'Ripristina Predefinita', - 'settings.currentPath' => ({required Object path}) => 'Corrente: ${path}', + 'settings.downloadLocationDescription' => 'Scegli dove archiviare i contenuti scaricati', + 'settings.downloadLocationDefault' => 'Predefinita (archivio dell\'app)', + 'settings.downloadLocationCustom' => 'Posizione personalizzata', + 'settings.selectFolder' => 'Seleziona cartella', + 'settings.resetToDefault' => 'Ripristina posizione predefinita', + 'settings.currentPath' => ({required Object path}) => 'Attuale: ${path}', 'settings.downloadLocationChanged' => 'Posizione di download modificata', 'settings.downloadLocationReset' => 'Posizione di download ripristinata a predefinita', 'settings.downloadLocationInvalid' => 'La cartella selezionata non è scrivibile', 'settings.downloadLocationPickerUnavailable' => 'La selezione della cartella non è disponibile su questo dispositivo', - 'settings.downloadOnWifiOnly' => 'Scarica solo con WiFi', + 'settings.downloadOnWifiOnly' => 'Scarica solo tramite Wi-Fi', 'settings.downloadOnWifiOnlyDescription' => 'Impedisci i download quando si utilizza la rete dati cellulare', 'settings.autoRemoveWatchedDownloads' => 'Rimuovi automaticamente i download visti', 'settings.autoRemoveWatchedDownloadsDescription' => 'Elimina automaticamente i download già visti', - 'settings.cellularDownloadBlocked' => 'I download sono bloccati su rete mobile. Usa WiFi o cambia impostazione.', - 'settings.maxVolume' => 'Volume massimo', - 'settings.maxVolumeDescription' => 'Consenti volume superiore al 100% per contenuti audio bassi', + 'settings.cellularDownloadBlocked' => 'I download sono bloccati sulla rete mobile. Usa il Wi-Fi o modifica l\'impostazione.', + 'settings.maxVolume' => 'Volume massimo consentito', + 'settings.maxVolumeDescription' => 'Consenti di aumentare il volume oltre il 100% per i contenuti con audio basso', 'settings.maxVolumePercent' => ({required Object percent}) => '${percent}%', 'settings.discordRichPresence' => 'Discord Rich Presence', 'settings.discordRichPresenceDescription' => 'Mostra su Discord cosa stai guardando', 'settings.services' => 'Servizi', 'settings.servicesDescription' => 'Connetti Trakt, MyAnimeList, Seerr e altro', 'settings.manageLibrariesDescription' => 'Riordina e nascondi le librerie', - 'settings.companionRemoteServer' => 'Server telecomando', - 'settings.companionRemoteServerDescription' => 'Consenti ai dispositivi mobili nella tua rete di controllare questa app', - 'settings.autoPip' => 'Picture-in-Picture automatico', - 'settings.autoPipDescription' => 'Entra in picture-in-picture uscendo durante la riproduzione', - 'settings.matchContentFrameRate' => 'Adatta frequenza fotogrammi', - 'settings.matchContentFrameRateDescription' => 'Adatta la frequenza del display al contenuto video', - 'settings.matchRefreshRate' => 'Adatta frequenza di aggiornamento', - 'settings.matchRefreshRateDescription' => 'Adatta la frequenza del display a schermo intero', - 'settings.matchDynamicRange' => 'Adatta gamma dinamica', - 'settings.matchDynamicRangeDescription' => 'Attiva HDR per contenuti HDR, poi torna a SDR', - 'settings.displaySwitchDelay' => 'Ritardo cambio display', - 'settings.tunneledPlayback' => 'Riproduzione tunnelizzata', - 'settings.tunneledPlaybackDescription' => 'Usa tunneling video. Disattiva se la riproduzione HDR mostra video nero.', - 'settings.audioPassthrough' => 'Audio Passthrough', - 'settings.audioPassthroughDescription' => 'Invia l\'audio Dolby/DTS al ricevitore o alla TV senza ricodifica, mantenendo il suono surround. Disattiva se non senti audio.', - 'settings.audioPassthroughDescriptionAppleTv' => 'Consegna Dolby Digital Plus (incluso Atmos) al sistema come bitstream. DTS e TrueHD vengono comunque riprodotti come PCM multicanale. Durante i salti possono verificarsi brevi interruzioni audio.', + 'settings.companionRemoteServer' => 'Server del telecomando', + 'settings.companionRemoteServerDescription' => 'Consenti ai dispositivi mobili della tua rete di controllare questa app', + 'settings.autoPip' => 'Picture-in-Picture automatica', + 'settings.autoPipDescription' => 'Attiva automaticamente la modalità Picture-in-Picture quando esci dall\'app durante la riproduzione', + 'settings.matchContentFrameRate' => 'Adatta la frequenza dei fotogrammi', + 'settings.matchContentFrameRateDescription' => 'Adatta la frequenza di aggiornamento dello schermo al contenuto video', + 'settings.matchRefreshRate' => 'Adatta la frequenza di aggiornamento', + 'settings.matchRefreshRateDescription' => 'Adatta la frequenza di aggiornamento dello schermo in modalità a schermo intero', + 'settings.matchDynamicRange' => 'Adatta la gamma dinamica', + 'settings.matchDynamicRangeDescription' => 'Attiva l\'HDR per i contenuti HDR, quindi torna all\'SDR', + 'settings.displaySwitchDelay' => 'Ritardo del cambio di modalità dello schermo', + 'settings.tunneledPlayback' => 'Riproduzione con tunneling', + 'settings.tunneledPlaybackDescription' => 'Usa il tunneling video. Disattivalo se durante la riproduzione HDR lo schermo rimane nero.', + 'settings.audioPassthrough' => 'Passthrough audio', + 'settings.audioPassthroughDescription' => 'Invia l\'audio Dolby/DTS al ricevitore o al televisore senza ricodificarlo, preservando l\'audio surround. Disattiva questa opzione se non senti alcun suono.', + 'settings.audioPassthroughDescriptionAppleTv' => 'Usa il decoder Dolby nativo di Apple per Dolby Digital Plus, incluso Atmos. DTS e TrueHD vengono comunque riprodotti come PCM multicanale. Disattiva questa opzione se non senti alcun suono.', 'settings.audioDownmix' => 'Downmix in stereo', 'settings.audioDownmixDescription' => 'Riduce l\'audio surround a due canali per altoparlanti stereo o cuffie', 'settings.downmixCenterBoost' => 'Amplificazione canale centrale', 'settings.downmixCenterBoostValue' => ({required Object db}) => '${db} dB', 'settings.downmixCenterBoostLabel' => 'Amplificazione (dB)', 'settings.downmixCenterBoostShort' => 'dB', - 'settings.audioDownmixNormalize' => 'Normalizza volume nel downmix', - 'settings.audioDownmixNormalizeDescription' => 'Riduce il mix per evitare distorsioni. Disattiva per mantenere il volume originale (le scene ad alto volume possono distorcere).', + 'settings.audioDownmixNormalize' => 'Normalizza il volume durante il downmix', + 'settings.audioDownmixNormalizeDescription' => 'Riduce il volume del mix per evitare il clipping. Disattiva questa opzione per mantenere il volume originale (le scene più rumorose potrebbero risultare distorte).', 'settings.atmosDiagnostics' => 'Test uscita Atmos', 'settings.atmosDiagnosticsDescription' => 'Diagnostica l\'uscita Dolby Atmos riproducendo segnali di prova con il lettore di sistema', 'settings.atmosTestHlsAtmos' => 'Stream Atmos di Apple', @@ -2430,44 +2436,44 @@ extension on TranslationsIt { 'settings.atmosTestUrlMissing' => 'Imposta prima l\'URL del file di prova', 'settings.atmosTestStatus' => 'Stato', 'settings.dvConversionMode' => 'Conversione Dolby Vision', - 'settings.dvConversionModeDescription' => 'Scegli come ExoPlayer gestisce i file Dolby Vision Profile 7.', + 'settings.dvConversionModeDescription' => 'Scegli come ExoPlayer gestisce i file Dolby Vision con profilo 7.', 'settings.dvConversionAuto' => 'Auto', - 'settings.dvConversionNative' => 'Nativo / disattivato', + 'settings.dvConversionNative' => 'Nativa / disattivata', 'settings.dvConversionDv81' => 'P7 → P8.1', 'settings.dvConversionHevcStrip' => 'P7 → HEVC', - 'settings.dvConversionAutoDescription' => 'Usa il rilevamento delle capacità del dispositivo e il normale comportamento di fallback', - 'settings.dvConversionNativeDescription' => 'Forza DV7 nativo e sopprime il nuovo tentativo di conversione DV', - 'settings.dvConversionDv81Description' => 'Forza la conversione RPU inline a Dolby Vision profilo 8.1', - 'settings.dvConversionHevcStripDescription' => 'Rimuove i livelli RPU/EL Dolby Vision e presenta HEVC semplice', - 'settings.requireProfileSelectionOnOpen' => 'Chiedi profilo all\'apertura', + 'settings.dvConversionAutoDescription' => 'Rileva le capacità del dispositivo e usa il normale meccanismo di ripiego', + 'settings.dvConversionNativeDescription' => 'Forza il DV7 nativo e impedisce nuovi tentativi di conversione DV', + 'settings.dvConversionDv81Description' => 'Forza la conversione RPU diretta al profilo Dolby Vision 8.1', + 'settings.dvConversionHevcStripDescription' => 'Rimuove i livelli RPU/EL di Dolby Vision e riproduce il video come semplice HEVC', + 'settings.requireProfileSelectionOnOpen' => 'Chiedi di scegliere il profilo all\'apertura', 'settings.requireProfileSelectionOnOpenDescription' => 'Mostra la selezione del profilo ogni volta che l\'app viene aperta', 'settings.forceTvMode' => 'Forza modalità TV', - 'settings.forceTvModeDescription' => 'Forza layout TV. Per dispositivi non rilevati automaticamente. Richiede riavvio.', + 'settings.forceTvModeDescription' => 'Forza il layout TV sui dispositivi che non vengono rilevati automaticamente. Richiede il riavvio.', 'settings.startInFullscreen' => 'Avvia a schermo intero', 'settings.startInFullscreenDescription' => 'Apri Plezy a schermo intero all\'avvio', - 'settings.exitFullscreenOnPlayerClose' => 'Esci dallo schermo intero alla chiusura del player', - 'settings.exitFullscreenOnPlayerCloseDescription' => 'Esci automaticamente dallo schermo intero quando il lettore video viene chiuso', - 'settings.autoHidePerformanceOverlay' => 'Nascondi automaticamente overlay prestazioni', - 'settings.autoHidePerformanceOverlayDescription' => 'Dissolvi l\'overlay prestazioni con i controlli di riproduzione', - 'settings.showNavBarLabels' => 'Mostra etichette barra di navigazione', - 'settings.showNavBarLabelsDescription' => 'Mostra le etichette sotto le icone della barra di navigazione', + 'settings.exitFullscreenOnPlayerClose' => 'Esci dalla modalità a schermo intero alla chiusura del lettore', + 'settings.exitFullscreenOnPlayerCloseDescription' => 'Esce automaticamente dalla modalità a schermo intero quando chiudi il lettore video', + 'settings.autoHidePerformanceOverlay' => 'Nascondi automaticamente il riquadro delle prestazioni', + 'settings.autoHidePerformanceOverlayDescription' => 'Dissolvi il riquadro delle prestazioni insieme ai controlli di riproduzione', + 'settings.showNavBarLabels' => 'Mostra le etichette della barra di navigazione', + 'settings.showNavBarLabelsDescription' => 'Mostra le etichette di testo sotto le icone della barra di navigazione', 'settings.startupSection' => 'Sezione di avvio', - 'settings.liveTvDefaultFavorites' => 'Canali preferiti predefiniti', - 'settings.liveTvDefaultFavoritesDescription' => 'Mostra solo i canali preferiti all\'apertura della TV dal vivo', + 'settings.liveTvDefaultFavorites' => 'Apri sui canali preferiti', + 'settings.liveTvDefaultFavoritesDescription' => 'Mostra solo i canali preferiti quando apri la TV in diretta', 'settings.display' => 'Schermo', - 'settings.homeScreen' => 'Schermata Home', + 'settings.homeScreen' => 'Schermata iniziale', 'settings.navigation' => 'Navigazione', 'settings.window' => 'Finestra', 'settings.content' => 'Contenuti', 'settings.player' => 'Lettore', - 'settings.subtitlesAndConfig' => 'Sottotitoli e configurazione', - 'settings.seekAndTiming' => 'Ricerca e tempistica', + 'settings.subtitlesAndConfig' => 'Sottotitoli e impostazioni', + 'settings.seekAndTiming' => 'Avanzamento e tempi', 'settings.behavior' => 'Comportamento', - 'search.hint' => 'Cerca film. spettacoli, musica...', + 'search.hint' => 'Cerca film, serie TV e musica...', 'search.tryDifferentTerm' => 'Prova altri termini di ricerca', 'search.searchYourMedia' => 'Cerca nei tuoi media', 'search.enterTitleActorOrKeyword' => 'Inserisci un titolo, attore o parola chiave', - 'hotkeys.setShortcutFor' => ({required Object actionName}) => 'Imposta scorciatoia per ${actionName}', + 'hotkeys.setShortcutFor' => ({required Object actionName}) => 'Imposta una scorciatoia per ${actionName}', 'hotkeys.clearShortcut' => 'Elimina scorciatoia', 'hotkeys.noShortcutSet' => 'Nessuna scorciatoia impostata', 'hotkeys.currentShortcut' => 'Scorciatoia attuale:', @@ -2478,9 +2484,9 @@ extension on TranslationsIt { 'hotkeys.actions.volumeDown' => 'Abbassa volume', 'hotkeys.actions.seekForward' => ({required Object seconds}) => 'Avanti (${seconds}s)', 'hotkeys.actions.seekBackward' => ({required Object seconds}) => 'Indietro (${seconds}s)', - 'hotkeys.actions.fullscreenToggle' => 'Schermo intero', - 'hotkeys.actions.muteToggle' => 'Muto', - 'hotkeys.actions.subtitleToggle' => 'Sottotitoli', + 'hotkeys.actions.fullscreenToggle' => 'Attiva/disattiva schermo intero', + 'hotkeys.actions.muteToggle' => 'Attiva/disattiva audio', + 'hotkeys.actions.subtitleToggle' => 'Attiva/disattiva sottotitoli', 'hotkeys.actions.audioTrackNext' => 'Traccia audio successiva', 'hotkeys.actions.subtitleTrackNext' => 'Sottotitoli successivi', 'hotkeys.actions.chapterNext' => 'Capitolo successivo', @@ -2506,10 +2512,10 @@ extension on TranslationsIt { 'fileInfo.codec' => 'Codec', 'fileInfo.resolution' => 'Risoluzione', 'fileInfo.bitrate' => 'Bitrate', - 'fileInfo.frameRate' => 'Frame Rate', - 'fileInfo.aspectRatio' => 'Aspect Ratio', + 'fileInfo.frameRate' => 'Frequenza fotogrammi', + 'fileInfo.aspectRatio' => 'Proporzioni', 'fileInfo.profile' => 'Profilo', - 'fileInfo.bitDepth' => 'Profondità colore', + 'fileInfo.bitDepth' => 'Profondità in bit', 'fileInfo.colorSpace' => 'Spazio colore', 'fileInfo.colorRange' => 'Gamma colori', 'fileInfo.colorPrimaries' => 'Colori primari', @@ -2522,19 +2528,19 @@ extension on TranslationsIt { 'fileInfo.container' => 'Contenitore', 'fileInfo.duration' => 'Durata', 'fileInfo.optimizedForStreaming' => 'Ottimizzato per lo streaming', - 'fileInfo.has64bitOffsets' => 'Offset a 64-bit', + 'fileInfo.has64bitOffsets' => 'Offset a 64 bit', 'mediaMenu.markAsWatched' => 'Segna come visto', 'mediaMenu.markAsUnwatched' => 'Segna come non visto', 'mediaMenu.removeFromContinueWatching' => 'Rimuovi da Continua a guardare', - 'mediaMenu.viewDetails' => 'Vedi dettagli', - 'mediaMenu.goToSeries' => 'Vai alle serie', + 'mediaMenu.viewDetails' => 'Visualizza dettagli', + 'mediaMenu.goToSeries' => 'Vai alla serie', 'mediaMenu.shufflePlay' => 'Riproduzione casuale', 'mediaMenu.shuffleNotAvailableOffline' => 'Riproduzione casuale non disponibile offline', 'mediaMenu.fileInfo' => 'Info sul file', 'mediaMenu.deleteFromServer' => 'Elimina dal server', 'mediaMenu.confirmDelete' => 'Eliminare questo media e i suoi file dal server?', - 'mediaMenu.deleteMultipleWarning' => 'Questo include tutti gli episodi e i loro file.', - 'mediaMenu.mediaDeletedSuccessfully' => 'Elemento multimediale eliminato con successo', + 'mediaMenu.deleteMultipleWarning' => 'Sono inclusi tutti gli episodi e i relativi file.', + 'mediaMenu.mediaDeletedSuccessfully' => 'Elemento multimediale eliminato correttamente', 'mediaMenu.mediaFailedToDelete' => 'Impossibile eliminare l\'elemento multimediale', 'mediaMenu.rate' => 'Valuta', 'mediaMenu.playFromBeginning' => 'Riproduci dall\'inizio', @@ -2545,13 +2551,13 @@ extension on TranslationsIt { 'rateSheet.favorited' => 'Aggiunto ai preferiti', 'rateSheet.saved' => 'Salvato', 'rateSheet.notAvailable' => 'Nessuna corrispondenza trovata', - 'rateSheet.noConnectedServices' => 'Connetti un servizio nelle Impostazioni per valutare lì.', + 'rateSheet.noConnectedServices' => 'Collega un servizio nelle Impostazioni per assegnare valutazioni anche su quel servizio.', 'accessibility.mediaCardMovie' => ({required Object title}) => '${title}, film', 'accessibility.mediaCardShow' => ({required Object title}) => '${title}, serie TV', 'accessibility.mediaCardEpisode' => ({required Object title, required Object episodeInfo}) => '${title}, ${episodeInfo}', 'accessibility.mediaCardSeason' => ({required Object title, required Object seasonInfo}) => '${title}, ${seasonInfo}', 'accessibility.mediaCardWatched' => 'visto', - 'accessibility.mediaCardPartiallyWatched' => ({required Object percent}) => '${percent} percento visto', + 'accessibility.mediaCardPartiallyWatched' => ({required Object percent}) => 'visto al ${percent}%', 'accessibility.mediaCardUnwatched' => 'non visto', 'accessibility.tapToPlay' => 'Tocca per riprodurre', 'accessibility.decrease' => 'Diminuisci', @@ -2575,30 +2581,32 @@ extension on TranslationsIt { 'audioTracks.track' => ({required Object n}) => 'Traccia audio ${n}', 'videoControls.audioLabel' => 'Audio', 'videoControls.subtitlesLabel' => 'Sottotitoli', - 'videoControls.resetToZero' => 'Riporta a 0ms', + 'videoControls.resetToZero' => 'Ripristina a 0 ms', 'videoControls.addTime' => ({required Object amount, required Object unit}) => '+${amount}${unit}', 'videoControls.minusTime' => ({required Object amount, required Object unit}) => '-${amount}${unit}', - 'videoControls.playsLater' => ({required Object label}) => '${label} riprodotto dopo', - 'videoControls.playsEarlier' => ({required Object label}) => '${label} riprodotto prima', - 'videoControls.noOffset' => 'Nessun offset', + 'videoControls.playsLater' => ({required Object label}) => '${label}: riproduzione ritardata', + 'videoControls.playsEarlier' => ({required Object label}) => '${label}: riproduzione anticipata', + 'videoControls.noOffset' => 'Nessun ritardo', 'videoControls.letterbox' => 'Letterbox', - 'videoControls.fillScreen' => 'Riempi schermo', + 'videoControls.fillScreen' => 'Riempi lo schermo', 'videoControls.stretch' => 'Allunga', 'videoControls.lockRotation' => 'Blocca rotazione', 'videoControls.unlockRotation' => 'Sblocca rotazione', 'videoControls.timerActive' => 'Timer attivo', - 'videoControls.playbackWillPauseIn' => ({required Object duration}) => 'La riproduzione si interromperà tra ${duration}', + 'videoControls.playbackWillPauseIn' => ({required Object duration}) => 'La riproduzione verrà messa in pausa tra ${duration}', 'videoControls.sleepTimerEndOfVideo' => 'Fine del video corrente', - 'videoControls.sleepTimerStopAtHeader' => 'Interrompi a', + 'videoControls.sleepTimerStopAtHeader' => 'Interrompi alle', 'videoControls.sleepTimerDurationHeader' => 'Timer', - 'videoControls.playbackWillPauseAtEnd' => 'La riproduzione si interromperà alla fine di questo video', + 'videoControls.playbackWillPauseAtEnd' => 'La riproduzione verrà messa in pausa alla fine di questo video', 'videoControls.stillWatching' => 'Stai ancora guardando?', 'videoControls.pausingIn' => ({required Object seconds}) => 'Pausa tra ${seconds}s', 'videoControls.continueWatching' => 'Continua', - 'videoControls.autoPlayNext' => 'Riproduzione automatica successivo', - 'videoControls.playNext' => 'Riproduci successivo', + 'videoControls.autoPlayNext' => 'Riproduci automaticamente il successivo', + 'videoControls.playNext' => 'Riproduci il successivo', 'videoControls.playButton' => 'Riproduci', 'videoControls.pauseButton' => 'Pausa', + 'videoControls.showPlaybackControls' => 'Mostra i controlli di riproduzione', + 'videoControls.hidePlaybackControls' => 'Nascondi i controlli di riproduzione', 'videoControls.seekBackwardButton' => ({required Object seconds}) => 'Riavvolgi di ${seconds} secondi', 'videoControls.seekForwardButton' => ({required Object seconds}) => 'Avanza di ${seconds} secondi', 'videoControls.previousButton' => 'Episodio precedente', @@ -2629,14 +2637,14 @@ extension on TranslationsIt { 'videoControls.longPressToUnlock' => 'Premi a lungo per sbloccare', 'videoControls.timelineSlider' => 'Timeline video', 'videoControls.volumeSlider' => 'Livello volume', - 'videoControls.endsAt' => ({required Object time}) => 'Finisce alle ${time}', + 'videoControls.endsAt' => ({required Object time}) => 'Termina alle ${time}', 'videoControls.pipActive' => 'Riproduzione in Picture-in-Picture', 'videoControls.pipFailed' => 'Impossibile avviare la modalità Picture-in-Picture', 'videoControls.screenshotSaved' => 'Schermata salvata', 'videoControls.zoomPercent' => ({required Object percent}) => 'Zoom ${percent}%', 'videoControls.pipErrors.androidVersion' => 'Richiede Android 8.0 o versioni successive', 'videoControls.pipErrors.iosVersion' => 'Richiede iOS 15.0 o versioni successive', - 'videoControls.pipErrors.permissionDisabled' => 'Picture-in-picture è disattivato. Attivalo nelle impostazioni di sistema.', + 'videoControls.pipErrors.permissionDisabled' => 'La modalità Picture-in-Picture è disattivata. Attivala nelle impostazioni di sistema.', 'videoControls.pipErrors.notSupported' => 'Questo dispositivo non supporta la modalità Picture-in-Picture', 'videoControls.pipErrors.voSwitchFailed' => 'Impossibile cambiare l\'uscita video per Picture-in-Picture', 'videoControls.pipErrors.failed' => 'Impossibile avviare la modalità Picture-in-Picture', @@ -2655,26 +2663,26 @@ extension on TranslationsIt { 'videoControls.subtitleDownloadedNotApplied' => 'Il sottotitolo è stato scaricato, ma non è stato possibile selezionarlo', 'videoControls.subtitleDownloadFailed' => 'Impossibile scaricare il sottotitolo', 'videoControls.searchLanguages' => 'Cerca lingue...', - 'messages.markedAsWatched' => 'Segna come visto', - 'messages.markedAsUnwatched' => 'Segna come non visto', - 'messages.markedAsWatchedOffline' => 'Segnato come visto (sincronizzato online)', - 'messages.markedAsUnwatchedOffline' => 'Segnato come non visto (sincronizzato online)', _ => null, } ?? switch (path) { + 'messages.markedAsWatched' => 'Segnato come visto', + 'messages.markedAsUnwatched' => 'Segnato come non visto', + 'messages.markedAsWatchedOffline' => 'Segnato come visto (verrà sincronizzato quando torni online)', + 'messages.markedAsUnwatchedOffline' => 'Segnato come non visto (verrà sincronizzato quando torni online)', 'messages.autoRemovedWatchedDownload' => ({required Object title}) => 'Rimosso automaticamente: ${title}', 'messages.autoRemovedWatchedDownloads' => ({required num n}) => (_root.$meta.cardinalResolver ?? PluralResolvers.cardinal('it'))(n, one: 'Rimosso automaticamente ${n} download già visto', other: 'Rimossi automaticamente ${n} download già visti', ), 'messages.removedFromContinueWatching' => 'Rimosso da Continua a guardare', 'messages.errorLoading' => ({required Object error}) => 'Errore: ${error}', - 'messages.streamInterrupted' => 'La riproduzione si è interrotta. Premi Riproduci o scorri per riprovare.', + 'messages.streamInterrupted' => 'La riproduzione si è interrotta. Premi Riproduci o vai a un altro punto per riprovare.', 'messages.liveStreamInterrupted' => 'La diretta si è interrotta. Premi Riproduci per riprovare.', 'messages.fileInfoNotAvailable' => 'Informazioni sul file non disponibili', - 'messages.playbackAuthenticationRequired' => 'Sign in to the media server again to play this item.', - 'messages.playbackServerUnavailable' => 'The media server is unavailable. Try again later.', - 'messages.playbackDataInvalid' => 'The server returned invalid playback information.', - 'messages.playbackCancelled' => 'Playback was cancelled.', - 'messages.playbackFailed' => 'Playback could not be started.', - 'messages.errorLoadingFileInfo' => ({required Object error}) => 'Errore caricamento informazioni sul file: ${error}', - 'messages.errorLoadingSeries' => 'Errore caricamento serie', + 'messages.playbackAuthenticationRequired' => 'Accedi di nuovo al server multimediale per riprodurre questo elemento.', + 'messages.playbackServerUnavailable' => 'Il server multimediale non è disponibile. Riprova più tardi.', + 'messages.playbackDataInvalid' => 'Il server ha restituito informazioni di riproduzione non valide.', + 'messages.playbackCancelled' => 'Riproduzione annullata.', + 'messages.playbackFailed' => 'Impossibile avviare la riproduzione.', + 'messages.errorLoadingFileInfo' => ({required Object error}) => 'Errore durante il caricamento delle informazioni sul file: ${error}', + 'messages.errorLoadingSeries' => 'Errore durante il caricamento della serie', 'messages.musicNotSupported' => 'La riproduzione musicale non è ancora supportata', 'messages.noDescriptionAvailable' => 'Nessuna descrizione disponibile', 'messages.noProfilesAvailable' => 'Nessun profilo disponibile', @@ -2683,38 +2691,38 @@ extension on TranslationsIt { 'messages.logsCleared' => 'Log eliminati', 'messages.logsCopied' => 'Log copiati negli appunti', 'messages.noLogsAvailable' => 'Nessun log disponibile', - 'messages.libraryScanning' => ({required Object title}) => 'Scansione "${title}"...', - 'messages.libraryScanStarted' => ({required Object title}) => 'Scansione libreria iniziata per "${title}"', - 'messages.libraryScanFailed' => ({required Object error}) => 'Impossibile eseguire scansione della libreria: ${error}', - 'messages.metadataRefreshing' => ({required Object title}) => 'Aggiornamento metadati per "${title}"...', - 'messages.metadataRefreshStarted' => ({required Object title}) => 'Aggiornamento metadati per "${title}"', - 'messages.metadataRefreshFailed' => ({required Object error}) => 'Errore aggiornamento metadati: ${error}', - 'messages.logoutConfirm' => 'Sei sicuro di volerti disconnettere?', + 'messages.libraryScanning' => ({required Object title}) => 'Scansione di "${title}"...', + 'messages.libraryScanStarted' => ({required Object title}) => 'Scansione della libreria avviata per "${title}"', + 'messages.libraryScanFailed' => ({required Object error}) => 'Impossibile eseguire la scansione della libreria: ${error}', + 'messages.metadataRefreshing' => ({required Object title}) => 'Aggiornamento dei metadati di "${title}"...', + 'messages.metadataRefreshStarted' => ({required Object title}) => 'Aggiornamento dei metadati avviato per "${title}"', + 'messages.metadataRefreshFailed' => ({required Object error}) => 'Impossibile aggiornare i metadati: ${error}', + 'messages.logoutConfirm' => 'Vuoi uscire dall\'account?', 'messages.noSeasonsFound' => 'Nessuna stagione trovata', 'messages.seasonsLoadFailed' => 'Impossibile caricare le stagioni', 'messages.noEpisodesFound' => 'Nessun episodio trovato nella prima stagione', 'messages.noEpisodesFoundGeneral' => 'Nessun episodio trovato', 'messages.episodesLoadFailed' => 'Impossibile caricare gli episodi', 'messages.noResultsFound' => 'Nessun risultato', - 'messages.sleepTimerSet' => ({required Object label}) => 'Imposta timer spegnimento per ${label}', + 'messages.sleepTimerSet' => ({required Object label}) => 'Timer di spegnimento impostato su ${label}', 'messages.noItemsAvailable' => 'Nessun elemento disponibile', - 'messages.failedToCreatePlayQueueNoItems' => 'Impossibile creare la coda di riproduzione - nessun elemento', - 'messages.failedPlayback' => ({required Object action, required Object error}) => 'Impossibile ${action}: ${error}', + 'messages.failedToCreatePlayQueueNoItems' => 'Impossibile creare una coda di riproduzione: nessun elemento', + 'messages.failedPlayback' => ({required Object action, required Object error}) => 'Impossibile eseguire l\'azione «${action}»: ${error}', 'messages.switchingToCompatiblePlayer' => 'Passaggio al lettore compatibile...', 'messages.serverLimitTitle' => 'Riproduzione non riuscita', - 'messages.serverLimitBody' => 'Errore server (HTTP 500). Un limite di banda/transcodifica probabilmente ha rifiutato questa sessione. Chiedi al proprietario di modificarlo.', + 'messages.serverLimitBody' => 'Errore del server (HTTP 500). È probabile che un limite di banda o transcodifica abbia impedito questa sessione. Chiedi al proprietario di modificare il limite.', 'messages.logsUploaded' => 'Log caricati', - 'messages.logsUploadFailed' => 'Caricamento log fallito', + 'messages.logsUploadFailed' => 'Impossibile caricare i log', 'messages.logId' => 'ID log', 'subtitlingStyling.text' => 'Testo', 'subtitlingStyling.border' => 'Bordo', 'subtitlingStyling.background' => 'Sfondo', - 'subtitlingStyling.fontSize' => 'Dimensione', - 'subtitlingStyling.textColor' => 'Colore testo', - 'subtitlingStyling.borderSize' => 'Dimensione bordo', - 'subtitlingStyling.borderColor' => 'Colore bordo', - 'subtitlingStyling.backgroundOpacity' => 'Opacità sfondo', - 'subtitlingStyling.backgroundColor' => 'Colore sfondo', + 'subtitlingStyling.fontSize' => 'Dimensione carattere', + 'subtitlingStyling.textColor' => 'Colore del testo', + 'subtitlingStyling.borderSize' => 'Dimensione del bordo', + 'subtitlingStyling.borderColor' => 'Colore del bordo', + 'subtitlingStyling.backgroundOpacity' => 'Opacità dello sfondo', + 'subtitlingStyling.backgroundColor' => 'Colore dello sfondo', 'subtitlingStyling.position' => 'Posizione', 'subtitlingStyling.assOverride' => 'Sovrascrittura ASS', 'subtitlingStyling.overrideScale' => 'Ridimensiona', @@ -2727,7 +2735,7 @@ extension on TranslationsIt { 'subtitlingStyling.renderResolution' => 'Risoluzione di rendering', 'subtitlingStyling.renderResolutionScreen' => 'Risoluzione dello schermo', 'subtitlingStyling.renderResolutionVideo' => 'Risoluzione del video', - 'mpvConfig.title' => 'Configurazione mpv', + 'mpvConfig.title' => 'mpv.conf', 'mpvConfig.description' => 'Impostazioni avanzate del lettore video', 'mpvConfig.presets' => 'Preset', 'mpvConfig.noPresets' => 'Nessun preset salvato', @@ -2745,23 +2753,23 @@ extension on TranslationsIt { 'profiles.addPlezyProfile' => 'Aggiungi profilo Plezy', 'profiles.switchingProfile' => 'Cambio profilo…', 'profiles.deleteThisProfileTitle' => 'Eliminare questo profilo?', - 'profiles.deleteThisProfileMessage' => ({required Object displayName}) => 'Rimuovi ${displayName}. Le connessioni non sono interessate.', + 'profiles.deleteThisProfileMessage' => ({required Object displayName}) => 'Rimuovi ${displayName}. Le connessioni resteranno invariate.', 'profiles.active' => 'Attivo', 'profiles.manage' => 'Gestisci', 'profiles.delete' => 'Elimina', 'profiles.signOut' => 'Esci', 'profiles.signOutPlexTitle' => 'Uscire da Plex?', - 'profiles.signOutPlexMessage' => ({required Object displayName}) => 'Rimuovere ${displayName} e tutti gli utenti Plex Home? Puoi accedere di nuovo quando vuoi.', - 'profiles.signedOutPlex' => 'Uscito da Plex.', - 'profiles.signOutFailed' => 'Uscita non riuscita.', + 'profiles.signOutPlexMessage' => ({required Object displayName}) => 'Verranno rimossi ${displayName} e tutti gli utenti Plex Home. Potrai accedere di nuovo in qualsiasi momento.', + 'profiles.signedOutPlex' => 'Disconnessione da Plex completata.', + 'profiles.signOutFailed' => 'Disconnessione non riuscita.', 'profiles.sectionTitle' => 'Profili', 'profiles.summarySingle' => 'Aggiungi profili per combinare utenti gestiti e identità locali', 'profiles.summaryMultipleWithActive' => ({required Object count, required Object activeName}) => '${count} profili · attivo: ${activeName}', 'profiles.summaryMultiple' => ({required Object count}) => '${count} profili', 'profiles.removeConnectionTitle' => 'Rimuovere la connessione?', - 'profiles.removeConnectionMessage' => ({required Object displayName, required Object connectionLabel}) => 'Rimuovi l\'accesso di ${displayName} a ${connectionLabel}. Gli altri profili lo mantengono.', + 'profiles.removeConnectionMessage' => ({required Object displayName, required Object connectionLabel}) => 'Rimuovi da ${displayName} l\'accesso a ${connectionLabel}. Gli altri profili continueranno ad avervi accesso.', 'profiles.deleteProfileTitle' => 'Eliminare il profilo?', - 'profiles.deleteProfileMessage' => ({required Object displayName}) => 'Rimuovi ${displayName} e le sue connessioni. I server restano disponibili.', + 'profiles.deleteProfileMessage' => ({required Object displayName}) => 'Rimuovi ${displayName} e le relative connessioni. I server resteranno disponibili.', 'profiles.profileNameLabel' => 'Nome profilo', 'profiles.pinProtectionLabel' => 'Protezione PIN', 'profiles.pinManagedByPlex' => 'PIN gestito da Plex. Modifica su plex.tv.', @@ -2787,7 +2795,7 @@ extension on TranslationsIt { 'profiles.borrowExplain' => 'Prendi in prestito la connessione di un altro profilo. I profili protetti da PIN richiedono un PIN.', 'profiles.borrowEmpty' => 'Nulla da prendere in prestito al momento.', 'profiles.borrowEmptySubtitle' => 'Collega prima Plex o Jellyfin a un altro profilo.', - 'profiles.borrowLoadFailed' => 'Available connections could not be loaded. Try again.', + 'profiles.borrowLoadFailed' => 'Impossibile caricare le connessioni disponibili. Riprova.', 'profiles.borrowFromProfile' => ({required Object displayName}) => 'Da ${displayName}', 'profiles.borrowConnectionBorrowed' => 'Connessione presa in prestito.', 'profiles.borrowFailed' => 'Impossibile prendere in prestito la connessione.', @@ -2805,7 +2813,7 @@ extension on TranslationsIt { 'connections.sectionTitle' => 'Connessioni', 'connections.addConnection' => 'Aggiungi connessione', 'connections.addConnectionSubtitleNoProfile' => 'Accedi con Plex o collega un server Jellyfin', - 'connections.addConnectionSubtitleScoped' => ({required Object displayName}) => 'Aggiungi a ${displayName}: Plex, Jellyfin o un\'altra connessione profilo', + 'connections.addConnectionSubtitleScoped' => ({required Object displayName}) => 'Aggiungi a ${displayName}: Plex, Jellyfin o la connessione di un altro profilo', 'connections.sessionExpiredOne' => ({required Object name}) => 'Sessione scaduta per ${name}', 'connections.sessionExpiredMany' => ({required Object count}) => 'Sessione scaduta per ${count} server', 'connections.signInAgain' => 'Accedi di nuovo', @@ -2813,11 +2821,11 @@ extension on TranslationsIt { 'connections.editJellyfinIntro' => ({required Object serverName}) => 'Aggiungi o rimuovi URL per ${serverName}. Plezy userà l\'URL raggiungibile con la latenza più bassa.', 'discover.title' => 'Esplora', 'discover.noContentAvailable' => 'Nessun contenuto disponibile', - 'discover.addMediaToLibraries' => 'Aggiungi alcuni file multimediali alle tue librerie', + 'discover.addMediaToLibraries' => 'Aggiungi contenuti multimediali alle tue librerie', 'discover.continueWatching' => 'Continua a guardare', 'discover.continueWatchingIn' => ({required Object library}) => 'Continua a guardare in ${library}', - 'discover.nextUp' => 'Prossimi', - 'discover.nextUpIn' => ({required Object library}) => 'Prossimi in ${library}', + 'discover.nextUp' => 'Prossimi episodi', + 'discover.nextUpIn' => ({required Object library}) => 'Prossimi episodi in ${library}', 'discover.recentlyAdded' => 'Aggiunti di recente', 'discover.recentlyAddedIn' => ({required Object library}) => 'Aggiunti di recente in ${library}', 'discover.latestAlbumsIn' => ({required Object library}) => 'Ultimi album in ${library}', @@ -2826,38 +2834,38 @@ extension on TranslationsIt { 'discover.playEpisode' => ({required Object season, required Object episode}) => 'S${season}E${episode}', 'discover.overview' => 'Panoramica', 'discover.cast' => 'Attori', - 'discover.extras' => 'Trailer ed Extra', + 'discover.extras' => 'Trailer ed extra', 'discover.studio' => 'Studio', - 'discover.rating' => 'Classificazione', + 'discover.rating' => 'Valutazione', 'discover.movie' => 'Film', 'discover.tvShow' => 'Serie TV', 'discover.minutesLeft' => ({required Object minutes}) => '${minutes} minuti rimanenti', 'discover.moreLikeThis' => 'Altri contenuti simili', - 'errors.searchFailed' => ({required Object error}) => 'Ricerca fallita: ${error}', - 'errors.connectionTimeout' => ({required Object context}) => 'Timeout connessione durante caricamento di ${context}', + 'errors.searchFailed' => ({required Object error}) => 'Ricerca non riuscita: ${error}', + 'errors.connectionTimeout' => ({required Object context}) => 'Tempo scaduto per la connessione durante il caricamento di ${context}', 'errors.connectionFailed' => 'Impossibile connettersi al server multimediale', 'errors.unableToLoad' => ({required Object context}) => 'Impossibile caricare ${context}. Riprova.', 'errors.noClientAvailable' => 'Nessun client disponibile', - 'errors.pleaseEnterToken' => 'Inserisci token', + 'errors.pleaseEnterToken' => 'Inserisci un token', 'errors.invalidToken' => 'Token non valido', - 'errors.failedToVerifyToken' => ({required Object error}) => 'Verifica token fallita: ${error}', + 'errors.failedToVerifyToken' => ({required Object error}) => 'Impossibile verificare il token: ${error}', 'errors.failedToSwitchProfile' => ({required Object displayName}) => 'Impossibile passare a ${displayName}', 'errors.failedToDeleteProfile' => ({required Object displayName}) => 'Impossibile eliminare ${displayName}', 'errors.failedToRate' => 'Impossibile aggiornare la valutazione', 'libraries.title' => 'Librerie', 'libraries.fallbackTitle' => 'Libreria', - 'libraries.scanLibraryFiles' => 'Scansiona file libreria', + 'libraries.scanLibraryFiles' => 'Scansiona i file della libreria', 'libraries.scanLibrary' => 'Scansiona libreria', 'libraries.analyze' => 'Analizza', 'libraries.analyzeLibrary' => 'Analizza libreria', 'libraries.refreshMetadata' => 'Aggiorna metadati', 'libraries.emptyTrash' => 'Svuota cestino', - 'libraries.emptyingTrash' => ({required Object title}) => 'Svuotamento cestino per "${title}"...', - 'libraries.trashEmptied' => ({required Object title}) => 'Cestino svuotato per "${title}"', - 'libraries.failedToEmptyTrash' => ({required Object error}) => 'Impossibile svuotare cestino: ${error}', - 'libraries.analyzing' => ({required Object title}) => 'Analisi "${title}"...', - 'libraries.analysisStarted' => ({required Object title}) => 'Analisi iniziata per "${title}"', - 'libraries.failedToAnalyze' => ({required Object error}) => 'Impossibile analizzare libreria: ${error}', + 'libraries.emptyingTrash' => ({required Object title}) => 'Svuotamento del cestino di "${title}"...', + 'libraries.trashEmptied' => ({required Object title}) => 'Cestino di "${title}" svuotato', + 'libraries.failedToEmptyTrash' => ({required Object error}) => 'Impossibile svuotare il cestino: ${error}', + 'libraries.analyzing' => ({required Object title}) => 'Analisi di "${title}"...', + 'libraries.analysisStarted' => ({required Object title}) => 'Analisi avviata per "${title}"', + 'libraries.failedToAnalyze' => ({required Object error}) => 'Impossibile analizzare la libreria: ${error}', 'libraries.noLibrariesFound' => 'Nessuna libreria trovata', 'libraries.allLibrariesHidden' => 'Tutte le librerie sono nascoste', 'libraries.hiddenLibrariesCount' => ({required Object count}) => 'Librerie nascoste (${count})', @@ -2865,11 +2873,11 @@ extension on TranslationsIt { 'libraries.noItemsMatchFilters' => 'Nessun elemento corrisponde ai filtri attivi', 'libraries.resetFilters' => 'Reimposta filtri', 'libraries.all' => 'Tutto', - 'libraries.clearAll' => 'Cancella tutto', - 'libraries.scanLibraryConfirm' => ({required Object title}) => 'Sei sicuro di voler scansionare "${title}"?', - 'libraries.analyzeLibraryConfirm' => ({required Object title}) => 'Sei sicuro di voler analizzare "${title}"?', - 'libraries.refreshMetadataConfirm' => ({required Object title}) => 'Sei sicuro di voler aggiornare i metadati per "${title}"?', - 'libraries.emptyTrashConfirm' => ({required Object title}) => 'Sei sicuro di voler svuotare il cestino per "${title}"?', + 'libraries.clearAll' => 'Azzera tutto', + 'libraries.scanLibraryConfirm' => ({required Object title}) => 'Vuoi scansionare "${title}"?', + 'libraries.analyzeLibraryConfirm' => ({required Object title}) => 'Vuoi analizzare "${title}"?', + 'libraries.refreshMetadataConfirm' => ({required Object title}) => 'Vuoi aggiornare i metadati di "${title}"?', + 'libraries.emptyTrashConfirm' => ({required Object title}) => 'Vuoi svuotare il cestino di "${title}"?', 'libraries.manageLibraries' => 'Gestisci librerie', 'libraries.sort' => 'Ordina', 'libraries.sortBy' => 'Ordina per', @@ -2889,7 +2897,7 @@ extension on TranslationsIt { 'libraries.tabs.browse' => 'Esplora', 'libraries.tabs.collections' => 'Raccolte', 'libraries.tabs.playlists' => 'Playlist', - 'libraries.groupings.title' => 'Raggruppamento', + 'libraries.groupings.title' => 'Raggruppa per', 'libraries.groupings.all' => 'Tutti', 'libraries.groupings.movies' => 'Film', 'libraries.groupings.shows' => 'Serie TV', @@ -2901,16 +2909,16 @@ extension on TranslationsIt { 'libraries.groupings.folders' => 'Cartelle', 'libraries.filterCategories.genre' => 'Genere', 'libraries.filterCategories.year' => 'Anno', - 'libraries.filterCategories.contentRating' => 'Classificazione', + 'libraries.filterCategories.contentRating' => 'Classificazione per età', 'libraries.filterCategories.tag' => 'Tag', 'libraries.filterCategories.unwatched' => 'Non visti', - 'libraries.filterCategories.unplayed' => 'Non riprodotto', + 'libraries.filterCategories.unplayed' => 'Non riprodotti', 'libraries.filterCategories.favorites' => 'Preferiti', 'libraries.sortLabels.title' => 'Titolo', 'libraries.sortLabels.dateAdded' => 'Data di aggiunta', 'libraries.sortLabels.releaseDate' => 'Data di uscita', 'libraries.sortLabels.rating' => 'Valutazione', - 'libraries.sortLabels.communityRating' => 'Valutazione della community', + 'libraries.sortLabels.communityRating' => 'Valutazione della comunità', 'libraries.sortLabels.criticRating' => 'Valutazione critica', 'libraries.sortLabels.userRating' => 'Valutazione utente', 'libraries.sortLabels.datePlayed' => 'Data di riproduzione', @@ -2924,18 +2932,18 @@ extension on TranslationsIt { 'libraries.sortLabels.studio' => 'Studio', 'libraries.sortLabels.random' => 'Casuale', 'libraries.sortLabels.dateShared' => 'Data di condivisione', - 'libraries.sortLabels.latestEpisodeAirDate' => 'Data ultima messa in onda', - 'libraries.sortLabels.lastEpisodeDateAdded' => 'Data aggiunta ultimo episodio', + 'libraries.sortLabels.latestEpisodeAirDate' => 'Data di trasmissione dell\'ultimo episodio', + 'libraries.sortLabels.lastEpisodeDateAdded' => 'Data di aggiunta dell\'ultimo episodio', 'about.title' => 'Informazioni', - 'about.openSourceLicenses' => 'Licenze Open Source', + 'about.openSourceLicenses' => 'Licenze open source', 'about.versionLabel' => ({required Object version}) => 'Versione ${version}', - 'about.appDescription' => 'Un bellissimo client Plex e Jellyfin per Flutter', + 'about.appDescription' => 'Un elegante client Plex e Jellyfin per Flutter', 'about.viewLicensesDescription' => 'Visualizza le licenze delle librerie di terze parti', 'serverSelection.noServersFoundForAccount' => ({required Object username, required Object email}) => 'Nessun server trovato per ${username} (${email})', 'serverSelection.failedToLoadServers' => ({required Object error}) => 'Impossibile caricare i server: ${error}', 'hubDetail.title' => 'Titolo', - 'hubDetail.releaseYear' => 'Anno rilascio', - 'hubDetail.dateAdded' => 'Data aggiunta', + 'hubDetail.releaseYear' => 'Anno di uscita', + 'hubDetail.dateAdded' => 'Data di aggiunta', 'hubDetail.rating' => 'Valutazione', 'hubDetail.noItemsFound' => 'Nessun elemento trovato', 'logs.clearLogs' => 'Cancella log', @@ -2947,11 +2955,11 @@ extension on TranslationsIt { 'licenses.licensesCount' => ({required Object count}) => '${count} licenze', 'navigation.libraries' => 'Librerie', 'navigation.downloads' => 'Download', - 'navigation.liveTv' => 'TV Live', - 'navigation.explore' => 'Scopri', - 'explore.title' => 'Scopri', + 'navigation.liveTv' => 'TV in diretta', + 'navigation.explore' => 'Esplora', + 'explore.title' => 'Esplora', 'explore.selectSource' => 'Seleziona fonte', - 'explore.rows.watchlist' => 'Watchlist', + 'explore.rows.watchlist' => 'Lista da guardare', 'explore.rows.recommendedMovies' => 'Film consigliati', 'explore.rows.recommendedShows' => 'Serie TV consigliate', 'explore.rows.trendingMovies' => 'Film di tendenza', @@ -2972,14 +2980,14 @@ extension on TranslationsIt { 'explore.episodeCount' => ({required num n}) => (_root.$meta.cardinalResolver ?? PluralResolvers.cardinal('it'))(n, one: '${n} episodio', other: '${n} episodi', ), 'explore.cast' => 'Attori', 'explore.characters' => 'Personaggi', - 'explore.addToWatchlist' => 'Aggiungi alla Watchlist', - 'explore.removeFromWatchlist' => 'Rimuovi dalla Watchlist', - 'explore.watchlistUpdateFailed' => 'Impossibile aggiornare la Watchlist', + 'explore.addToWatchlist' => 'Aggiungi alla lista da guardare', + 'explore.removeFromWatchlist' => 'Rimuovi dalla lista da guardare', + 'explore.watchlistUpdateFailed' => 'Impossibile aggiornare la lista da guardare', 'explore.notInLibrary' => 'Non è nella tua libreria', 'explore.inTheseLibraries' => 'In queste librerie', - 'explore.checkingLibrary' => 'Controllo della tua libreria...', + 'explore.checkingLibrary' => 'Ricerca nella tua libreria...', 'explore.emptyTitle' => 'Ancora niente qui', - 'explore.emptyMessage' => ({required Object source}) => 'Le righe da ${source} appariranno qui una volta che avranno dei contenuti.', + 'explore.emptyMessage' => ({required Object source}) => 'Le sezioni di ${source} appariranno qui quando saranno disponibili dei contenuti.', 'explore.searchHint' => ({required Object source}) => 'Cerca su ${source}', 'explore.searchEmpty' => ({required Object query}) => 'Nessun risultato per "${query}"', 'explore.searchPrompt' => ({required Object source}) => 'Cerca film e serie TV su ${source}.', @@ -2987,37 +2995,37 @@ extension on TranslationsIt { 'liveTv.title' => 'TV in diretta', 'liveTv.guide' => 'Guida', 'liveTv.noChannels' => 'Nessun canale disponibile', - 'liveTv.noDvr' => 'Nessun DVR configurato su nessun server', + 'liveTv.noDvr' => 'Nessun DVR configurato su alcun server', 'liveTv.serverUnavailable' => 'Il server TV in diretta non è disponibile.', 'liveTv.serverNotConnected' => 'Il server TV in diretta non è connesso.', 'liveTv.noPrograms' => 'Nessun dato di programma disponibile', - 'liveTv.liveStreamFailed' => 'Streaming live non riuscito', + 'liveTv.liveStreamFailed' => 'Streaming in diretta non riuscito', 'liveTv.unknownProgram' => 'Programma sconosciuto', 'liveTv.unknownHub' => 'Sconosciuto', 'liveTv.unknownError' => 'Errore sconosciuto', 'liveTv.channelNumber' => ({required Object number}) => 'Canale ${number}', 'liveTv.unknownChannel' => 'Canale sconosciuto', 'liveTv.live' => 'IN DIRETTA', - 'liveTv.reloadGuide' => 'Ricarica guida', + 'liveTv.reloadGuide' => 'Ricarica la guida', 'liveTv.now' => 'Ora', 'liveTv.today' => 'Oggi', 'liveTv.tomorrow' => 'Domani', 'liveTv.midnight' => 'Mezzanotte', - 'liveTv.overnight' => 'Notte', + 'liveTv.overnight' => 'Durante la notte', 'liveTv.morning' => 'Mattina', - 'liveTv.daytime' => 'Giorno', + 'liveTv.daytime' => 'Giornata', 'liveTv.evening' => 'Sera', - 'liveTv.lateNight' => 'Notte tarda', + 'liveTv.lateNight' => 'Tarda notte', 'liveTv.whatsOn' => 'In onda ora', - 'liveTv.watchChannel' => 'Guarda canale', + 'liveTv.watchChannel' => 'Guarda il canale', 'liveTv.favorites' => 'Preferiti', - 'liveTv.reorderFavorites' => 'Riordina preferiti', + 'liveTv.reorderFavorites' => 'Riordina i preferiti', 'liveTv.favoritesLoadFailed' => 'Impossibile caricare i preferiti. Controlla la connessione e riprova.', - 'liveTv.favoritesUpdateFailed' => 'Could not update favorites. Check your connection and try again.', + 'liveTv.favoritesUpdateFailed' => 'Impossibile aggiornare i preferiti. Controlla la connessione e riprova.', 'liveTv.joinSession' => 'Partecipa alla sessione in corso', 'liveTv.watchFromStart' => ({required Object minutes}) => 'Guarda dall\'inizio (${minutes} min fa)', 'liveTv.watchLive' => 'Guarda in diretta', - 'liveTv.goToLive' => 'Vai al live', + 'liveTv.goToLive' => 'Vai alla diretta', 'liveTv.record' => 'Registra', 'liveTv.recordEpisode' => 'Registra episodio', 'liveTv.recordSeries' => 'Registra serie', @@ -3026,7 +3034,7 @@ extension on TranslationsIt { 'liveTv.recordings' => 'Registrazioni', 'liveTv.scheduledRecordings' => 'Programmate', 'liveTv.recordingRules' => 'Regole di registrazione', - 'liveTv.noScheduledRecordings' => 'Nessuna registrazione programmata', + 'liveTv.noScheduledRecordings' => 'Nessuna registrazione in programma', 'liveTv.manageRecording' => 'Gestisci registrazione', 'liveTv.cancelRecording' => 'Annulla registrazione', 'liveTv.cancelRecordingTitle' => 'Annullare questa registrazione?', @@ -3035,21 +3043,21 @@ extension on TranslationsIt { 'liveTv.deleteRuleTitle' => 'Eliminare la regola di registrazione?', 'liveTv.deleteRuleMessage' => ({required Object title}) => 'I prossimi episodi di ${title} non saranno registrati.', 'liveTv.recordingScheduled' => 'Registrazione programmata', - 'liveTv.alreadyScheduled' => 'Questo programma è già programmato', + 'liveTv.alreadyScheduled' => 'La registrazione di questo programma è già pianificata', 'liveTv.dvrAdminRequired' => 'Le impostazioni DVR richiedono un account amministratore', 'liveTv.recordingFailed' => 'Impossibile programmare la registrazione', 'liveTv.recordingTargetMissing' => 'Impossibile determinare la libreria di registrazione', 'liveTv.recordNotAvailable' => 'Registrazione non disponibile per questo programma', 'liveTv.recordingCancelled' => 'Registrazione annullata', 'liveTv.recordingRuleDeleted' => 'Regola di registrazione eliminata', - 'liveTv.processRecordingRules' => 'Rivaluta regole', + 'liveTv.processRecordingRules' => 'Rielabora le regole', 'liveTv.recordingInProgress' => 'Registrazione in corso', 'liveTv.recordingsCount' => ({required Object count}) => '${count} programmate', 'liveTv.editRule' => 'Modifica regola', 'liveTv.editRuleAction' => 'Modifica', 'liveTv.recordingRuleUpdated' => 'Regola di registrazione aggiornata', - 'liveTv.guideReloadRequested' => 'Aggiornamento guida richiesto', - 'liveTv.rulesProcessRequested' => 'Rivalutazione regole richiesta', + 'liveTv.guideReloadRequested' => 'Aggiornamento della guida richiesto', + 'liveTv.rulesProcessRequested' => 'Rielaborazione delle regole richiesta', 'liveTv.recordShow' => 'Registra programma', 'collections.title' => 'Raccolte', 'collections.collection' => 'Raccolta', @@ -3062,14 +3070,14 @@ extension on TranslationsIt { 'collections.selectCollection' => 'Seleziona raccolta', 'collections.collectionName' => 'Nome raccolta', 'collections.enterCollectionName' => 'Inserisci nome raccolta', - 'collections.addedToCollection' => 'Aggiunto alla raccolta', - 'collections.errorAddingToCollection' => 'Errore nell\'aggiunta alla raccolta', + 'collections.addedToCollection' => 'Elemento aggiunto alla raccolta', + 'collections.errorAddingToCollection' => 'Impossibile aggiungere l\'elemento alla raccolta', 'collections.created' => 'Raccolta creata', 'collections.removeFromCollection' => 'Rimuovi dalla raccolta', 'collections.removeFromCollectionConfirm' => ({required Object title}) => 'Rimuovere "${title}" da questa raccolta?', - 'collections.removedFromCollection' => 'Rimosso dalla raccolta', + 'collections.removedFromCollection' => 'Elemento rimosso dalla raccolta', 'collections.removeFromCollectionFailed' => 'Impossibile rimuovere dalla raccolta', - 'collections.removeFromCollectionError' => ({required Object error}) => 'Errore durante la rimozione dalla raccolta: ${error}', + 'collections.removeFromCollectionError' => ({required Object error}) => 'Errore durante la rimozione dell\'elemento dalla raccolta: ${error}', 'collections.searchCollections' => 'Cerca raccolte...', 'playlists.title' => 'Playlist', 'playlists.playlist' => 'Playlist', @@ -3078,7 +3086,7 @@ extension on TranslationsIt { 'playlists.playlistName' => 'Nome playlist', 'playlists.enterPlaylistName' => 'Inserisci nome playlist', 'playlists.delete' => 'Elimina playlist', - 'playlists.removeItem' => 'Rimuovi da playlist', + 'playlists.removeItem' => 'Rimuovi dalla playlist', 'playlists.smartPlaylist' => 'Playlist intelligente', 'playlists.itemCount' => ({required Object count}) => '${count} elementi', 'playlists.oneItem' => '1 elemento', @@ -3091,16 +3099,16 @@ extension on TranslationsIt { 'playlists.itemRemoved' => 'Rimosso dalla playlist', 'playlists.selectPlaylist' => 'Seleziona playlist', 'playlists.searchPlaylists' => 'Cerca playlist...', - 'playlists.errorCreating' => 'Errore durante la creazione della playlist', - 'playlists.errorDeleting' => 'Errore durante l\'eliminazione della playlist', - 'playlists.errorLoading' => 'Errore durante il caricamento delle playlist', - 'playlists.errorAdding' => 'Errore durante l\'aggiunta alla playlist', - 'playlists.errorReordering' => 'Errore durante il riordino dell\'elemento della playlist', - 'playlists.errorRemoving' => 'Errore durante la rimozione dalla playlist', + 'playlists.errorCreating' => 'Impossibile creare la playlist', + 'playlists.errorDeleting' => 'Impossibile eliminare la playlist', + 'playlists.errorLoading' => 'Impossibile caricare le playlist', + 'playlists.errorAdding' => 'Impossibile aggiungere l\'elemento alla playlist', + 'playlists.errorReordering' => 'Impossibile riordinare l\'elemento della playlist', + 'playlists.errorRemoving' => 'Impossibile rimuovere l\'elemento dalla playlist', 'music.goToAlbum' => 'Vai all\'album', 'music.goToArtist' => 'Vai all\'artista', 'music.instantMix' => 'Mix istantaneo', - 'music.playNext' => 'Riproduci dopo', + 'music.playNext' => 'Riproduci come prossimo', 'music.addToQueue' => 'Aggiungi alla coda', 'music.discNumber' => ({required Object n}) => 'Disco ${n}', 'music.trackCount' => ({required num n}) => (_root.$meta.cardinalResolver ?? PluralResolvers.cardinal('it'))(n, one: '${n} brano', other: '${n} brani', ), @@ -3118,70 +3126,70 @@ extension on TranslationsIt { 'music.nextTrack' => 'Brano successivo', 'music.repeat' => 'Ripeti', 'music.repeatAll' => 'Ripeti tutto', - 'music.repeatOne' => 'Ripeti uno', - 'watchTogether.title' => 'Guarda Insieme', + 'music.repeatOne' => 'Ripeti il brano', + 'watchTogether.title' => 'Guarda insieme', 'watchTogether.description' => 'Guarda contenuti in sincronia con amici e familiari', - 'watchTogether.createSession' => 'Crea Sessione', + 'watchTogether.createSession' => 'Crea sessione', 'watchTogether.creating' => 'Creazione...', - 'watchTogether.joinSession' => 'Unisciti alla Sessione', + 'watchTogether.joinSession' => 'Partecipa a una sessione', 'watchTogether.joining' => 'Connessione...', - 'watchTogether.controlMode' => 'Modalità di Controllo', + 'watchTogether.controlMode' => 'Modalità di controllo', 'watchTogether.controlModeQuestion' => 'Chi può controllare la riproduzione?', - 'watchTogether.hostOnly' => 'Solo Host', + 'watchTogether.hostOnly' => 'Solo l\'host', 'watchTogether.anyone' => 'Tutti', - 'watchTogether.hostingSession' => 'Hosting Sessione', - 'watchTogether.inSession' => 'In Sessione', - 'watchTogether.sessionCode' => 'Codice Sessione', - 'watchTogether.openSessionControls' => 'Apri i controlli della sessione di Guarda Insieme', + 'watchTogether.hostingSession' => 'Stai ospitando la sessione', + 'watchTogether.inSession' => 'Sessione in corso', + 'watchTogether.sessionCode' => 'Codice della sessione', + 'watchTogether.openSessionControls' => 'Apri i controlli della sessione di Guarda insieme', 'watchTogether.copySessionCode' => 'Copia il codice della sessione', 'watchTogether.hostControlsPlayback' => 'L\'host controlla la riproduzione', 'watchTogether.anyoneCanControl' => 'Tutti possono controllare la riproduzione', - 'watchTogether.hostControls' => 'Controllo host', - 'watchTogether.anyoneControls' => 'Controllo di tutti', + 'watchTogether.hostControls' => 'L\'host controlla', + 'watchTogether.anyoneControls' => 'Tutti possono controllare', 'watchTogether.participants' => 'Partecipanti', 'watchTogether.host' => 'Host', 'watchTogether.hostBadge' => 'HOST', 'watchTogether.youAreHost' => 'Sei l\'host', - 'watchTogether.watchingWithOthers' => 'Guardando con altri', - 'watchTogether.endSession' => 'Termina Sessione', - 'watchTogether.leaveSession' => 'Lascia Sessione', - 'watchTogether.endSessionQuestion' => 'Terminare la Sessione?', - 'watchTogether.leaveSessionQuestion' => 'Lasciare la Sessione?', + 'watchTogether.watchingWithOthers' => 'In visione con altri partecipanti', + 'watchTogether.endSession' => 'Termina la sessione', + 'watchTogether.leaveSession' => 'Abbandona la sessione', + 'watchTogether.endSessionQuestion' => 'Terminare la sessione?', + 'watchTogether.leaveSessionQuestion' => 'Abbandonare la sessione?', 'watchTogether.endSessionConfirm' => 'Questo terminerà la sessione per tutti i partecipanti.', 'watchTogether.leaveSessionConfirm' => 'Sarai rimosso dalla sessione.', 'watchTogether.endSessionConfirmOverlay' => 'Questo terminerà la sessione di visione per tutti i partecipanti.', 'watchTogether.leaveSessionConfirmOverlay' => 'Sarai disconnesso dalla sessione di visione.', 'watchTogether.end' => 'Termina', - 'watchTogether.leave' => 'Lascia', + 'watchTogether.leave' => 'Abbandona', 'watchTogether.syncing' => 'Sincronizzazione...', - 'watchTogether.joinWatchSession' => 'Unisciti alla Sessione di Visione', + 'watchTogether.joinWatchSession' => 'Partecipa alla sessione di visione', 'watchTogether.enterCodeHint' => 'Inserisci codice di 5 caratteri', 'watchTogether.pasteFromClipboard' => 'Incolla dagli appunti', - 'watchTogether.pleaseEnterCode' => 'Inserisci un codice sessione', - 'watchTogether.codeMustBe5Chars' => 'Il codice sessione deve essere di 5 caratteri', - 'watchTogether.joinInstructions' => 'Inserisci il codice sessione dell\'host per partecipare.', + 'watchTogether.pleaseEnterCode' => 'Inserisci un codice della sessione', + 'watchTogether.codeMustBe5Chars' => 'Il codice della sessione deve contenere 5 caratteri', + 'watchTogether.joinInstructions' => 'Inserisci il codice della sessione dell\'host per partecipare.', 'watchTogether.failedToCreate' => 'Impossibile creare la sessione', 'watchTogether.failedToJoin' => 'Impossibile unirsi alla sessione', - 'watchTogether.sessionCodeCopied' => 'Codice sessione copiato negli appunti', - 'watchTogether.relayUnreachable' => 'Server relay non raggiungibile. Il blocco ISP può impedire Watch Together.', + 'watchTogether.sessionCodeCopied' => 'Codice della sessione copiato negli appunti', + 'watchTogether.relayUnreachable' => 'Il server relay non è raggiungibile. Eventuali blocchi dell\'ISP potrebbero impedire l\'uso di Guarda insieme.', 'watchTogether.reconnectingToHost' => 'Riconnessione all\'host...', 'watchTogether.currentPlayback' => 'Riproduzione corrente', 'watchTogether.joinCurrentPlayback' => 'Unisciti alla riproduzione corrente', 'watchTogether.joinCurrentPlaybackDescription' => 'Torna a ciò che l\'host sta guardando in questo momento', 'watchTogether.failedToOpenCurrentPlayback' => 'Impossibile aprire la riproduzione corrente', + _ => null, + } ?? switch (path) { 'watchTogether.participantJoined' => ({required Object name}) => '${name} si è unito', 'watchTogether.participantLeft' => ({required Object name}) => '${name} se ne è andato', 'watchTogether.participantPaused' => ({required Object name}) => '${name} ha messo in pausa', 'watchTogether.participantResumed' => ({required Object name}) => '${name} ha ripreso', - _ => null, - } ?? switch (path) { - 'watchTogether.participantSeeked' => ({required Object name}) => '${name} ha cercato', - 'watchTogether.participantBuffering' => ({required Object name}) => '${name} sta caricando', + 'watchTogether.participantSeeked' => ({required Object name}) => '${name} ha cambiato la posizione di riproduzione', + 'watchTogether.participantBuffering' => ({required Object name}) => '${name} è in buffering', 'watchTogether.participantNeedsUpdate' => ({required Object name}) => '${name} usa una versione precedente dell\'app — sincronizzazione non disponibile', 'watchTogether.resumingWithout' => ({required Object name}) => 'Ripresa senza ${name}', 'watchTogether.waitingForParticipants' => 'In attesa che gli altri carichino...', 'watchTogether.waitingForName' => ({required Object name}) => 'In attesa di ${name}...', - 'watchTogether.recentRooms' => 'Stanze recenti', + 'watchTogether.recentRooms' => 'Stanze usate di recente', 'watchTogether.renameRoom' => 'Rinomina stanza', 'watchTogether.removeRoom' => 'Rimuovi', 'watchTogether.guestSwitchUnavailable' => 'Impossibile cambiare — server non disponibile per la sincronizzazione', @@ -3192,11 +3200,11 @@ extension on TranslationsIt { 'downloads.movies' => 'Film', 'downloads.music' => 'Musica', 'downloads.tracksQueued' => ({required Object count}) => '${count} brani in coda per il download', - 'downloads.noDownloads' => 'Nessun download', + 'downloads.noDownloads' => 'Ancora nessun download', 'downloads.noDownloadsDescription' => 'I contenuti scaricati appariranno qui per la visualizzazione offline', 'downloads.downloadNow' => 'Scarica', - 'downloads.deleteDownload' => 'Elimina download', - 'downloads.retryDownload' => 'Riprova download', + 'downloads.deleteDownload' => 'Elimina il download', + 'downloads.retryDownload' => 'Riprova il download', 'downloads.downloadQueued' => 'Download in coda', 'downloads.downloadResumed' => 'Download ripreso', 'downloads.serverErrorBitrate' => 'Errore server: il file può superare il limite di bitrate remoto', @@ -3206,7 +3214,7 @@ extension on TranslationsIt { 'downloads.cancelledDownloadTitle' => 'Download annullato', 'downloads.cancelledDownloadMessage' => 'Questo download è stato annullato. Cosa vuoi fare?', 'downloads.allEpisodesAlreadyDownloaded' => 'Tutti gli episodi sono già stati scaricati', - 'downloads.resumeDownload' => 'Riprendi download', + 'downloads.resumeDownload' => 'Riprendi il download', 'downloads.cancelledDownload' => 'Download annullato', 'downloads.syncingFile' => ({required Object file, required Object status}) => '${file} (sincronizzazione ${status})', 'downloads.downloadedFileClickToComplete' => ({required Object file}) => '${file} scaricato — fai clic per completare', @@ -3221,17 +3229,17 @@ extension on TranslationsIt { 'downloads.pauseAll' => 'Metti tutto in pausa', 'downloads.resumeAll' => 'Riprendi tutto', 'downloads.deleteAll' => 'Elimina tutto', - 'downloads.selectVersion' => 'Seleziona versione', + 'downloads.selectVersion' => 'Seleziona la versione', 'downloads.allEpisodes' => 'Tutti gli episodi', 'downloads.unwatchedOnly' => 'Solo non visti', - 'downloads.nextNUnwatched' => ({required Object count}) => 'Prossimi ${count} non visti', + 'downloads.nextNUnwatched' => ({required Object count}) => 'Prossimi ${count} episodi non visti', 'downloads.customAmount' => 'Quantità personalizzata...', 'downloads.includeSpecials' => 'Includi gli speciali', 'downloads.howManyEpisodes' => 'Quanti episodi?', 'downloads.invalidEpisodeCount' => 'Inserisci un numero di episodi valido.', 'downloads.keepSynced' => 'Mantieni sincronizzato', 'downloads.downloadOnce' => 'Scarica una volta', - 'downloads.keepNUnwatched' => ({required Object count}) => 'Mantieni ${count} non visti', + 'downloads.keepNUnwatched' => ({required Object count}) => 'Mantieni ${count} episodi non visti', 'downloads.editSyncRule' => 'Modifica regola di sincronizzazione', 'downloads.removeSyncRule' => 'Rimuovi regola di sincronizzazione', 'downloads.removeSyncRuleConfirm' => ({required Object title}) => 'Interrompere la sincronizzazione di "${title}"? Gli episodi scaricati verranno mantenuti.', @@ -3265,7 +3273,7 @@ extension on TranslationsIt { 'shaders.importShader' => 'Importa shader', 'shaders.customShaderDescription' => 'Shader GLSL personalizzato', 'shaders.shaderImported' => 'Shader importato', - 'shaders.shaderImportFailed' => 'Importazione shader fallita', + 'shaders.shaderImportFailed' => 'Impossibile importare lo shader', 'shaders.deleteShader' => 'Elimina shader', 'shaders.deleteShaderConfirm' => ({required Object name}) => 'Eliminare "${name}"?', 'companionRemote.title' => 'Telecomando', @@ -3276,7 +3284,7 @@ extension on TranslationsIt { 'companionRemote.session.connected' => 'Connesso', 'companionRemote.session.serverRunning' => 'Server remoto attivo', 'companionRemote.session.serverStopped' => 'Server remoto arrestato', - 'companionRemote.session.serverRunningDescription' => 'I dispositivi mobili sulla tua rete possono connettersi a questa app', + 'companionRemote.session.serverRunningDescription' => 'I dispositivi mobili della tua rete possono connettersi a questa app', 'companionRemote.session.serverStoppedDescription' => 'Avvia il server per consentire ai dispositivi mobili di connettersi', 'companionRemote.session.usePhoneToControl' => 'Usa il tuo dispositivo mobile per controllare questa app', 'companionRemote.session.startServer' => 'Avvia server', @@ -3287,16 +3295,16 @@ extension on TranslationsIt { 'companionRemote.pairing.connecting' => 'Connessione...', 'companionRemote.pairing.searchingForDevices' => 'Ricerca dispositivi...', 'companionRemote.pairing.noDevicesFound' => 'Nessun dispositivo trovato nella tua rete', - 'companionRemote.pairing.noDevicesHint' => 'Apri Plezy su desktop e usa lo stesso WiFi', + 'companionRemote.pairing.noDevicesHint' => 'Apri Plezy sul computer e usa la stessa rete Wi-Fi', 'companionRemote.pairing.availableDevices' => 'Dispositivi disponibili', 'companionRemote.pairing.manualConnection' => 'Connessione manuale', 'companionRemote.pairing.cryptoInitFailed' => 'Impossibile avviare la connessione sicura. Accedi prima a Plex.', 'companionRemote.pairing.validationHostRequired' => 'Inserisci l\'indirizzo host', 'companionRemote.pairing.validationHostFormat' => 'Il formato deve essere IP:porta (es. 192.168.1.100:48632)', - 'companionRemote.pairing.connectionTimedOut' => 'Connessione scaduta. Usa la stessa rete su entrambi i dispositivi.', + 'companionRemote.pairing.connectionTimedOut' => 'Tempo scaduto per la connessione. Usa la stessa rete su entrambi i dispositivi.', 'companionRemote.pairing.sessionNotFound' => 'Dispositivo non trovato. Assicurati che Plezy sia in esecuzione sull\'host.', 'companionRemote.pairing.authFailed' => 'Autenticazione non riuscita. Entrambi i dispositivi devono usare lo stesso account Plex.', - 'companionRemote.pairing.failedToConnect' => ({required Object error}) => 'Connessione fallita: ${error}', + 'companionRemote.pairing.failedToConnect' => ({required Object error}) => 'Connessione non riuscita: ${error}', 'companionRemote.remote.disconnectConfirm' => 'Vuoi disconnetterti dalla sessione remota?', 'companionRemote.remote.reconnecting' => 'Riconnessione...', 'companionRemote.remote.attemptOf' => ({required Object current}) => 'Tentativo ${current} di 5', @@ -3305,7 +3313,7 @@ extension on TranslationsIt { 'companionRemote.remote.tabPlay' => 'Riproduci', 'companionRemote.remote.tabMore' => 'Altro', 'companionRemote.remote.menu' => 'Menu', - 'companionRemote.remote.tabNavigation' => 'Navigazione schede', + 'companionRemote.remote.tabNavigation' => 'Navigazione', 'companionRemote.remote.tabDiscover' => 'Esplora', 'companionRemote.remote.tabLibraries' => 'Librerie', 'companionRemote.remote.tabSearch' => 'Cerca', @@ -3314,8 +3322,8 @@ extension on TranslationsIt { 'companionRemote.remote.previous' => 'Precedente', 'companionRemote.remote.playPause' => 'Riproduci/Pausa', 'companionRemote.remote.next' => 'Successivo', - 'companionRemote.remote.seekBack' => 'Riavvolgi', - 'companionRemote.remote.stop' => 'Ferma', + 'companionRemote.remote.seekBack' => 'Indietro', + 'companionRemote.remote.stop' => 'Interrompi', 'companionRemote.remote.seekForward' => 'Avanti', 'companionRemote.remote.volume' => 'Volume', 'companionRemote.remote.volumeDown' => 'Abbassa', @@ -3323,12 +3331,12 @@ extension on TranslationsIt { 'companionRemote.remote.fullscreen' => 'Schermo intero', 'companionRemote.remote.subtitles' => 'Sottotitoli', 'companionRemote.remote.audio' => 'Audio', - 'companionRemote.remote.searchHint' => 'Cerca sul desktop...', + 'companionRemote.remote.searchHint' => 'Cerca sul computer...', 'companionRemote.errors.noNetworkInterface' => 'Nessuna interfaccia di rete trovata', 'companionRemote.errors.authenticationFailed' => 'Autenticazione non riuscita', 'companionRemote.errors.serverStartFailed' => ({required Object error}) => 'Impossibile avviare il server remoto: ${error}', 'companionRemote.errors.commandFailed' => ({required Object error}) => 'Impossibile inviare il comando remoto: ${error}', - 'companionRemote.errors.joinTimedOut' => 'Tempo scaduto durante l’accesso alla sessione', + 'companionRemote.errors.joinTimedOut' => 'Tempo scaduto durante la partecipazione alla sessione', 'companionRemote.errors.failedToConnectAnyAddress' => 'Impossibile connettersi a qualsiasi indirizzo', 'companionRemote.errors.connectionLostAfterAttempts' => ({required Object attempts}) => 'Connessione persa dopo ${attempts} tentativi', 'companionRemote.errors.connectionLost' => 'Connessione persa', @@ -3342,8 +3350,8 @@ extension on TranslationsIt { 'videoSettings.hdr' => 'HDR', 'videoSettings.audioOutput' => 'Uscita audio', 'videoSettings.performanceOverlay' => 'Overlay prestazioni', - 'videoSettings.audioPassthrough' => 'Audio Passthrough', - 'videoSettings.audioNormalization' => 'Normalizza volume', + 'videoSettings.audioPassthrough' => 'Passthrough audio', + 'videoSettings.audioNormalization' => 'Normalizza il volume', 'videoSettings.audioDownmix' => 'Downmix in stereo', 'performanceOverlay.color' => 'Colore', 'performanceOverlay.performance' => 'Prestazioni', @@ -3352,7 +3360,7 @@ extension on TranslationsIt { 'performanceOverlay.decoder' => 'Decoder', 'performanceOverlay.rawDecoder' => 'Decoder raw', 'performanceOverlay.tunneling' => 'Tunneling', - 'performanceOverlay.aspect' => 'Aspetto', + 'performanceOverlay.aspect' => 'Proporzioni', 'performanceOverlay.rotation' => 'Rotazione', 'performanceOverlay.dvSource' => 'Sorgente DV', 'performanceOverlay.dvPath' => 'Percorso DV', @@ -3361,9 +3369,9 @@ extension on TranslationsIt { 'performanceOverlay.pixelFormat' => 'Formato pixel', 'performanceOverlay.hwFormat' => 'Formato HW', 'performanceOverlay.matrix' => 'Matrice', - 'performanceOverlay.primaries' => 'Primari', - 'performanceOverlay.transfer' => 'Transfer', - 'performanceOverlay.renderFps' => 'FPS render', + 'performanceOverlay.primaries' => 'Colori primari', + 'performanceOverlay.transfer' => 'Trasferimento', + 'performanceOverlay.renderFps' => 'FPS rendering', 'performanceOverlay.displayFps' => 'FPS display', 'performanceOverlay.avSync' => 'Sync A/V', 'performanceOverlay.dropped' => 'Scartati', @@ -3377,37 +3385,37 @@ extension on TranslationsIt { 'performanceOverlay.cacheUsed' => 'Cache usata', 'performanceOverlay.cacheLimit' => 'Limite cache', 'performanceOverlay.speed' => 'Velocità', - 'performanceOverlay.player' => 'Player', + 'performanceOverlay.player' => 'Lettore', 'performanceOverlay.memory' => 'Memoria', 'performanceOverlay.uiFps' => 'FPS UI', 'externalPlayer.title' => 'Lettore esterno', - 'externalPlayer.useExternalPlayer' => 'Usa lettore esterno', - 'externalPlayer.useExternalPlayerDescription' => 'Apri video in un\'altra app', - 'externalPlayer.selectPlayer' => 'Seleziona lettore', + 'externalPlayer.useExternalPlayer' => 'Usa un lettore esterno', + 'externalPlayer.useExternalPlayerDescription' => 'Apri i video in un\'altra app', + 'externalPlayer.selectPlayer' => 'Seleziona il lettore', 'externalPlayer.customPlayers' => 'Lettori personalizzati', 'externalPlayer.systemDefault' => 'Predefinito di sistema', 'externalPlayer.addCustomPlayer' => 'Aggiungi lettore personalizzato', - 'externalPlayer.playerName' => 'Nome lettore', - 'externalPlayer.playerNameHint' => 'Il mio player', + 'externalPlayer.playerName' => 'Nome del lettore', + 'externalPlayer.playerNameHint' => 'Il mio lettore', 'externalPlayer.playerCommand' => 'Comando', 'externalPlayer.playerPackage' => 'Nome pacchetto', 'externalPlayer.playerUrlScheme' => 'Schema URL', 'externalPlayer.off' => 'Disattivato', 'externalPlayer.launchFailed' => 'Impossibile aprire il lettore esterno', 'externalPlayer.appNotInstalled' => ({required Object name}) => '${name} non è installato', - 'externalPlayer.playInExternalPlayer' => 'Riproduci in lettore esterno', + 'externalPlayer.playInExternalPlayer' => 'Riproduci nel lettore esterno', 'metadataEdit.editMetadata' => 'Modifica...', 'metadataEdit.screenTitle' => 'Modifica metadati', 'metadataEdit.basicInfo' => 'Informazioni di base', - 'metadataEdit.artwork' => 'Artwork', + 'metadataEdit.artwork' => 'Immagini', 'metadataEdit.advancedSettings' => 'Impostazioni avanzate', 'metadataEdit.title' => 'Titolo', 'metadataEdit.sortTitle' => 'Titolo di ordinamento', 'metadataEdit.originalTitle' => 'Titolo originale', 'metadataEdit.releaseDate' => 'Data di uscita', - 'metadataEdit.contentRating' => 'Classificazione', + 'metadataEdit.contentRating' => 'Classificazione per età', 'metadataEdit.studio' => 'Studio', - 'metadataEdit.tagline' => 'Tagline', + 'metadataEdit.tagline' => 'Slogan', 'metadataEdit.summary' => 'Trama', 'metadataEdit.poster' => 'Poster', 'metadataEdit.background' => 'Sfondo', @@ -3421,17 +3429,17 @@ extension on TranslationsIt { 'metadataEdit.uploadFile' => 'Carica file', 'metadataEdit.enterImageUrl' => 'Inserisci URL immagine', 'metadataEdit.imageUrl' => 'URL immagine', - 'metadataEdit.metadataUpdated' => 'Metadati aggiornati', - 'metadataEdit.metadataUpdateFailed' => 'Aggiornamento metadati non riuscito', - 'metadataEdit.artworkUpdated' => 'Artwork aggiornato', - 'metadataEdit.artworkUpdateFailed' => 'Aggiornamento artwork non riuscito', - 'metadataEdit.noArtworkAvailable' => 'Nessun artwork disponibile', - 'metadataEdit.artworkOption' => ({required Object index}) => 'Opzione artwork ${index}', - 'metadataEdit.selectedArtworkOption' => ({required Object index}) => 'Opzione artwork ${index}, selezionata', + 'metadataEdit.metadataUpdated' => 'Metadati aggiornati correttamente', + 'metadataEdit.metadataUpdateFailed' => 'Impossibile aggiornare i metadati', + 'metadataEdit.artworkUpdated' => 'Immagini aggiornate', + 'metadataEdit.artworkUpdateFailed' => 'Impossibile aggiornare le immagini', + 'metadataEdit.noArtworkAvailable' => 'Nessuna immagine disponibile', + 'metadataEdit.artworkOption' => ({required Object index}) => 'Opzione immagine ${index}', + 'metadataEdit.selectedArtworkOption' => ({required Object index}) => 'Opzione immagine ${index}, selezionata', 'metadataEdit.notSet' => 'Non impostato', - 'metadataEdit.libraryDefault' => 'Predefinito libreria', - 'metadataEdit.accountDefault' => 'Predefinito account', - 'metadataEdit.seriesDefault' => 'Predefinito serie', + 'metadataEdit.libraryDefault' => 'Predefinito della libreria', + 'metadataEdit.accountDefault' => 'Predefinito dell\'account', + 'metadataEdit.seriesDefault' => 'Predefinito della serie', 'metadataEdit.episodeSorting' => 'Ordinamento episodi', 'metadataEdit.oldestFirst' => 'Più vecchi prima', 'metadataEdit.newestFirst' => 'Più recenti prima', @@ -3450,14 +3458,14 @@ extension on TranslationsIt { 'metadataEdit.show' => 'Mostra', 'metadataEdit.hide' => 'Nascondi', 'metadataEdit.episodeOrdering' => 'Ordine episodi', - 'metadataEdit.tmdbAiring' => 'The Movie Database (In onda)', - 'metadataEdit.tvdbAiring' => 'TheTVDB (In onda)', - 'metadataEdit.tvdbAbsolute' => 'TheTVDB (Assoluto)', - 'metadataEdit.metadataLanguage' => 'Lingua metadati', - 'metadataEdit.useOriginalTitle' => 'Usa titolo originale', + 'metadataEdit.tmdbAiring' => 'The Movie Database (ordine di trasmissione)', + 'metadataEdit.tvdbAiring' => 'TheTVDB (ordine di trasmissione)', + 'metadataEdit.tvdbAbsolute' => 'TheTVDB (ordine assoluto)', + 'metadataEdit.metadataLanguage' => 'Lingua dei metadati', + 'metadataEdit.useOriginalTitle' => 'Usa il titolo originale', 'metadataEdit.preferredAudioLanguage' => 'Lingua audio preferita', - 'metadataEdit.preferredSubtitleLanguage' => 'Lingua sottotitoli preferita', - 'metadataEdit.subtitleMode' => 'Selezione automatica sottotitoli', + 'metadataEdit.preferredSubtitleLanguage' => 'Lingua dei sottotitoli preferita', + 'metadataEdit.subtitleMode' => 'Modalità di selezione automatica dei sottotitoli', 'metadataEdit.manuallySelected' => 'Selezionato manualmente', 'metadataEdit.shownWithForeignAudio' => 'Mostrati con audio straniero', 'metadataEdit.alwaysEnabled' => 'Sempre attivo', @@ -3468,14 +3476,14 @@ extension on TranslationsIt { 'metadataEdit.writer' => 'Sceneggiatore', 'metadataEdit.producer' => 'Produttore', 'metadataEdit.country' => 'Paese', - 'metadataEdit.collection' => 'Collezione', + 'metadataEdit.collection' => 'Raccolta', 'metadataEdit.label' => 'Etichetta', 'metadataEdit.style' => 'Stile', 'metadataEdit.mood' => 'Atmosfera', 'matchScreen.match' => 'Abbina...', 'matchScreen.fixMatch' => 'Correggi abbinamento...', 'matchScreen.unmatch' => 'Rimuovi abbinamento', - 'matchScreen.unmatchConfirm' => 'Cancellare questa corrispondenza? Plex la tratterà come non abbinata finché non verrà riabbinata.', + 'matchScreen.unmatchConfirm' => 'Rimuovere questo abbinamento? Plex considererà l\'elemento non abbinato finché non verrà eseguito un nuovo abbinamento.', 'matchScreen.unmatchSuccess' => 'Abbinamento rimosso', 'matchScreen.unmatchFailed' => 'Rimozione dell\'abbinamento non riuscita', 'matchScreen.matchApplied' => 'Abbinamento applicato', @@ -3494,8 +3502,8 @@ extension on TranslationsIt { 'trakt.disconnectConfirmBody' => 'Plezy smetterà di inviare eventi a Trakt. Puoi riconnetterti quando vuoi.', 'trakt.scrobble' => 'Scrobbling in tempo reale', 'trakt.scrobbleDescription' => 'Invia eventi di riproduzione, pausa e arresto a Trakt durante la riproduzione.', - 'trakt.watchedSync' => 'Sincronizza stato visualizzato', - 'trakt.watchedSyncDescription' => 'Quando segni elementi come visti in Plezy, vengono segnati anche su Trakt.', + 'trakt.watchedSync' => 'Sincronizza lo stato di visione', + 'trakt.watchedSyncDescription' => 'Quando contrassegni un elemento come visto in Plezy, viene contrassegnato come visto anche su Trakt.', 'seerr.title' => 'Seerr', 'seerr.connectTitle' => 'Connetti Seerr', 'seerr.serverUrl' => 'URL del server', @@ -3508,30 +3516,30 @@ extension on TranslationsIt { 'seerr.noSignInMethods' => 'Questa istanza Seerr non offre alcun metodo di accesso supportato da Plezy.', 'seerr.instance' => 'Istanza', 'seerr.disconnectConfirm' => 'Disconnettere Seerr?', - 'seerr.disconnectConfirmBody' => 'Plezy dimenticherà questa istanza Seerr. Riconnetti quando vuoi.', + 'seerr.disconnectConfirmBody' => 'Plezy rimuoverà questa istanza Seerr. Potrai riconnetterla in qualsiasi momento.', 'seerr.request' => 'Richiedi', 'seerr.request4k' => 'Richiedi in 4K', 'seerr.seasons' => 'Stagioni', 'seerr.allSeasons' => 'Tutte le stagioni', 'seerr.advancedOptions' => 'Avanzate', 'seerr.destinationServer' => 'Server di destinazione', - 'seerr.qualityProfile' => 'Profilo qualità', + 'seerr.qualityProfile' => 'Profilo di qualità', 'seerr.rootFolder' => 'Cartella radice', - 'seerr.languageProfile' => 'Profilo lingua', + 'seerr.languageProfile' => 'Profilo della lingua', 'seerr.requestSubmitted' => 'Richiesta inviata', 'seerr.requestFailed' => ({required Object error}) => 'Richiesta non riuscita: ${error}', 'seerr.requestsLoadFailed' => 'Impossibile caricare le opzioni di richiesta', 'seerr.nothingToRequest' => 'Tutto è già disponibile o richiesto.', 'seerr.statusAvailable' => 'Disponibile', - 'seerr.statusPartiallyAvailable' => 'Parzialmente disponibile', + 'seerr.statusPartiallyAvailable' => 'Disponibile in parte', 'seerr.statusRequested' => 'Richiesto', 'seerr.statusProcessing' => 'In elaborazione', 'services.title' => 'Servizi', 'services.hubSubtitle' => 'Sincronizza i progressi di visione e richiedi nuovi titoli.', 'services.notConnected' => 'Non connesso', 'services.connectedAs' => ({required Object username}) => 'Connesso come @${username}', - 'services.scrobble' => 'Traccia i progressi automaticamente', - 'services.scrobbleDescription' => 'Aggiorna la tua lista quando finisci un episodio o un film.', + 'services.scrobble' => 'Registra automaticamente i progressi', + 'services.scrobbleDescription' => 'Aggiorna la tua lista quando termini un episodio o un film.', 'services.disconnectConfirm' => ({required Object service}) => 'Disconnettere ${service}?', 'services.disconnectConfirmBody' => ({required Object service}) => 'Plezy smetterà di aggiornare ${service}. Riconnetti quando vuoi.', 'services.connectFailed' => ({required Object service}) => 'Impossibile connettersi a ${service}. Riprova.', @@ -3550,23 +3558,23 @@ extension on TranslationsIt { 'services.oauthProxy.openToSignIn' => ({required Object service}) => 'Apri ${service} per accedere', 'services.oauthProxy.copyUrl' => 'Copia l\'URL di accesso', 'services.oauthProxy.urlCopied' => 'URL copiato', - 'services.libraryFilter.title' => 'Filtro librerie', + 'services.libraryFilter.title' => 'Filtro delle librerie', 'services.libraryFilter.subtitleAllSyncing' => 'Sincronizzazione di tutte le librerie', - 'services.libraryFilter.subtitleNoneSyncing' => 'Nulla da sincronizzare', + 'services.libraryFilter.subtitleNoneSyncing' => 'Nessuna sincronizzazione', 'services.libraryFilter.subtitleBlocked' => ({required Object count}) => '${count} bloccate', 'services.libraryFilter.subtitleAllowed' => ({required Object count}) => '${count} consentite', 'services.libraryFilter.mode' => 'Modalità filtro', 'services.libraryFilter.modeBlacklist' => 'Lista nera', 'services.libraryFilter.modeWhitelist' => 'Lista bianca', - 'services.libraryFilter.modeHintBlacklist' => 'Sincronizza tutte le librerie tranne quelle selezionate sotto.', - 'services.libraryFilter.modeHintWhitelist' => 'Sincronizza solo le librerie selezionate sotto.', + 'services.libraryFilter.modeHintBlacklist' => 'Sincronizza tutte le librerie tranne quelle selezionate qui sotto.', + 'services.libraryFilter.modeHintWhitelist' => 'Sincronizza solo le librerie selezionate qui sotto.', 'services.libraryFilter.libraries' => 'Librerie', 'services.libraryFilter.noLibraries' => 'Nessuna libreria disponibile', 'addServer.addJellyfinTitle' => 'Aggiungi server Jellyfin', 'addServer.serverUrls' => 'URL del server', 'addServer.serverUrlsHelper' => 'Sono consentiti più URL, separati da virgole.', - 'addServer.findServer' => 'Trova server', - 'addServer.searchingLocalServers' => 'Ricerca server Jellyfin locali...', + 'addServer.findServer' => 'Trova il server', + 'addServer.searchingLocalServers' => 'Ricerca dei server Jellyfin locali...', 'addServer.localServers' => 'Server Jellyfin locali', 'addServer.username' => 'Nome utente', 'addServer.password' => 'Password', @@ -3585,9 +3593,9 @@ extension on TranslationsIt { 'addServer.signInWithPlexCard' => 'Accedi con Plex', 'addServer.signInWithPlexCardSubtitle' => 'Autorizza questo dispositivo. I server condivisi vengono aggiunti.', 'addServer.signInWithPlexCardSubtitleScoped' => 'Autorizza un account Plex. Gli utenti Home diventano profili.', - 'addServer.connectToJellyfinCard' => 'Connetti a Jellyfin', - 'addServer.connectToJellyfinCardSubtitle' => 'Inserisci URL del server, nome utente e password.', - 'addServer.connectToJellyfinCardSubtitleScoped' => ({required Object name}) => 'Accedi a un server Jellyfin. Collegato a ${name}.', + 'addServer.connectToJellyfinCard' => 'Connettiti a Jellyfin', + 'addServer.connectToJellyfinCardSubtitle' => 'Inserisci l\'URL del server, il nome utente e la password.', + 'addServer.connectToJellyfinCardSubtitleScoped' => ({required Object name}) => 'Accedi a un server Jellyfin. Verrà associato a ${name}.', 'addServer.borrowFromAnotherProfile' => 'Prendi in prestito da un altro profilo', 'addServer.borrowFromAnotherProfileSubtitle' => 'Riutilizza la connessione di un altro profilo. I profili protetti da PIN richiedono un PIN.', _ => null, diff --git a/lib/i18n/strings_ja.g.dart b/lib/i18n/strings_ja.g.dart index 699073b3..6adae22f 100644 --- a/lib/i18n/strings_ja.g.dart +++ b/lib/i18n/strings_ja.g.dart @@ -112,7 +112,7 @@ class _Translations$auth$ja extends Translations$auth$en { @override String get authenticate => '認証'; @override String get authenticationTimeout => '認証がタイムアウトしました。もう一度お試しください。'; @override String get scanQRToSignIn => 'このQRコードをスキャンしてサインイン'; - @override String get waitingForAuth => '認証待ち...\nブラウザでサインインしてください。'; + @override String get waitingForAuth => '認証を待っています…\nブラウザでサインインしてください。'; @override String get useBrowser => 'ブラウザを使用'; @override String get or => 'または'; @override String get connectToJellyfin => 'Jellyfinに接続'; @@ -121,7 +121,7 @@ class _Translations$auth$ja extends Translations$auth$en { @override String get quickConnectWaiting => '承認を待っています…'; @override String get quickConnectCancel => 'キャンセル'; @override String get quickConnectExpired => 'Quick Connectの有効期限が切れました。もう一度お試しください。'; - @override String get localDataRecoveryRequired => 'Plezy could not safely recover local sign-in and pending playback data. Please sign in again.'; + @override String get localDataRecoveryRequired => 'ローカルのサインイン情報と保留中の再生データを安全に復元できませんでした。もう一度サインインしてください。'; } // Path: common @@ -148,7 +148,7 @@ class _Translations$common$ja extends Translations$common$en { @override String get delete => '削除'; @override String get edit => '編集'; @override String get shuffle => 'シャッフル'; - @override String get addTo => '追加...'; + @override String get addTo => '追加先…'; @override String get createNew => '新規作成'; @override String get connect => '接続'; @override String get disconnect => '切断'; @@ -168,11 +168,11 @@ class _Translations$common$ja extends Translations$common$en { @override String chapterNumber({required Object number}) => 'チャプター${number}'; @override String get reconnect => '再接続'; @override String get viewAll => 'すべて表示'; - @override String get checkingNetwork => 'ネットワークを確認中...'; - @override String get loadingServers => 'サーバーを読み込み中...'; - @override String get connectingToServers => 'サーバーに接続中...'; - @override String get startingOfflineMode => 'オフラインモードを開始中...'; - @override String get loading => '読み込み中...'; + @override String get checkingNetwork => 'ネットワークを確認中…'; + @override String get loadingServers => 'サーバーを読み込み中…'; + @override String get connectingToServers => 'サーバーに接続中…'; + @override String get startingOfflineMode => 'オフラインモードを開始中…'; + @override String get loading => '読み込み中…'; @override String get fullscreen => 'フルスクリーン'; @override String get exitFullscreen => 'フルスクリーンを終了'; @override String get pressBackAgainToExit => 'もう一度押すと終了します'; @@ -216,8 +216,8 @@ class _Translations$settings$ja extends Translations$settings$en { // Translations @override String get title => '設定'; - @override String get supportDeveloper => 'Plezy を支援'; - @override String get supportDeveloperDescription => 'Liberapay で寄付して開発を支援'; + @override String get supportDeveloper => 'Plezyを支援'; + @override String get supportDeveloperDescription => 'Liberapayで寄付して開発を支援'; @override String get language => '言語'; @override String get theme => 'テーマ'; @override String get appearance => '外観'; @@ -241,10 +241,12 @@ class _Translations$settings$ja extends Translations$settings$en { @override String get libraryDensity => 'ライブラリの密度'; @override String get compact => 'コンパクト'; @override String get comfortable => 'ゆったり'; + @override String get tvCornerSpotlightBackdrop => '画面隅の注目コンテンツ背景'; + @override String get tvCornerSpotlightBackdropDescription => '画面全体ではなく、右上隅に注目コンテンツのアートワークを表示します'; @override String get viewMode => '表示モード'; @override String get gridView => 'グリッド'; @override String get listView => 'リスト'; - @override String get showHeroSection => 'ヒーローセクションを表示'; + @override String get showHeroSection => '注目コンテンツを表示'; @override String get continueWatchingAction => '視聴中の操作'; @override String get continueWatchingPlay => '再生'; @override String get continueWatchingDetails => '詳細を開く'; @@ -258,7 +260,7 @@ class _Translations$settings$ja extends Translations$settings$en { @override String get groupLibrariesByServer => 'サーバーごとにライブラリをグループ化'; @override String get groupLibrariesByServerDescription => 'サイドバーのライブラリをメディアサーバーごとにまとめます。'; @override String get alwaysKeepSidebarOpen => 'サイドバーを常に開いておく'; - @override String get alwaysKeepSidebarOpenDescription => 'サイドバーを展開したまま、コンテンツ領域が調整される'; + @override String get alwaysKeepSidebarOpenDescription => 'サイドバーを展開したままにし、コンテンツ領域を幅に合わせて調整します'; @override String get showUnwatchedCount => '未視聴数を表示'; @override String get showUnwatchedCountDescription => '番組とシーズンに未視聴エピソード数を表示'; @override String get showEpisodeNumberOnCards => 'カードにエピソード番号を表示'; @@ -266,7 +268,7 @@ class _Translations$settings$ja extends Translations$settings$en { @override String get showSeasonPostersOnTabs => 'タブにシーズンポスターを表示'; @override String get showSeasonPostersOnTabsDescription => '各シーズンのポスターをタブの上に表示します'; @override String get tvFullCardLayout => 'フルTVカード'; - @override String get tvFullCardLayoutDescription => 'TVカードを画像のみで表示し、俳優名を重ねて表示します'; + @override String get tvFullCardLayoutDescription => 'TVカードを画像のみで表示し、出演者名を重ねて表示します'; @override String get focusGlow => 'フォーカス時の光彩'; @override String get focusGlowDescription => 'フォーカス中のカードの周りに柔らかい光彩を表示します'; @override String get visualEffects => '視覚効果'; @@ -310,7 +312,7 @@ class _Translations$settings$ja extends Translations$settings$en { @override String get watchTogetherRelay => '一緒に視聴リレーサーバー'; @override String get watchTogetherRelayDescription => 'カスタムリレーを設定します。全員が同じサーバーを使う必要があります。'; @override String get watchTogetherRelayHint => 'https://my-relay.example.com'; - @override String get watchTogetherRelayInvalid => 'Enter a valid HTTP or HTTPS relay base URL.'; + @override String get watchTogetherRelayInvalid => '有効なHTTPまたはHTTPSのリレーサーバーURLを入力してください。'; @override String get crashReporting => 'クラッシュレポート'; @override String get crashReportingDescription => 'アプリの改善に役立つクラッシュレポートを送信'; @override String get debugLogging => 'デバッグログ'; @@ -345,7 +347,7 @@ class _Translations$settings$ja extends Translations$settings$en { @override String validationErrorDuration({required Object min, required Object max, required Object unit}) => '時間は${min}から${max} ${unit}の間である必要があります'; @override String shortcutAlreadyAssigned({required Object action}) => 'ショートカットは既に${action}に割り当てられています'; @override String shortcutUpdated({required Object action}) => '${action}のショートカットを更新しました'; - @override String get saveFailed => 'Could not save changes. Try again.'; + @override String get saveFailed => '変更を保存できませんでした。もう一度お試しください。'; @override String get autoSkip => '自動スキップ'; @override String get autoSkipIntro => 'イントロを自動スキップ'; @override String get autoSkipIntroDescription => '数秒後にイントロマーカーを自動的にスキップ'; @@ -372,23 +374,23 @@ class _Translations$settings$ja extends Translations$settings$en { @override String get downloadLocationReset => 'ダウンロード場所をデフォルトにリセットしました'; @override String get downloadLocationInvalid => '選択したフォルダは書き込みできません'; @override String get downloadLocationPickerUnavailable => 'このデバイスではフォルダを選択できません'; - @override String get downloadOnWifiOnly => 'WiFiのみでダウンロード'; - @override String get downloadOnWifiOnlyDescription => 'モバイルデータ通信時のダウンロードを防止'; + @override String get downloadOnWifiOnly => 'Wi-Fi接続時のみダウンロード'; + @override String get downloadOnWifiOnlyDescription => 'モバイルデータ通信中のダウンロードを防ぎます'; @override String get autoRemoveWatchedDownloads => '視聴済みダウンロードの自動削除'; @override String get autoRemoveWatchedDownloadsDescription => '視聴済みのダウンロードを自動削除します'; - @override String get cellularDownloadBlocked => 'モバイル通信ではダウンロードがブロックされています。WiFiを使うか設定を変更してください。'; + @override String get cellularDownloadBlocked => 'モバイルデータ通信中はダウンロードできません。Wi-Fiを使用するか、設定を変更してください。'; @override String get maxVolume => '最大音量'; @override String get maxVolumeDescription => '静かなメディアに対して100%以上の音量ブーストを許可'; @override String maxVolumePercent({required Object percent}) => '${percent}%'; @override String get discordRichPresence => 'Discord Rich Presence'; @override String get discordRichPresenceDescription => 'Discordで視聴中の内容を表示'; @override String get services => 'サービス'; - @override String get servicesDescription => 'Trakt、MyAnimeList、Seerr などを接続'; + @override String get servicesDescription => 'Trakt、MyAnimeList、Seerrなどを接続'; @override String get manageLibrariesDescription => 'ライブラリを並べ替えたり非表示にしたりできます'; @override String get companionRemoteServer => 'コンパニオンリモートサーバー'; @override String get companionRemoteServerDescription => 'ネットワーク上のモバイルデバイスからこのアプリを操作できるようにする'; @override String get autoPip => '自動ピクチャーインピクチャー'; - @override String get autoPipDescription => '再生中に離れるとピクチャーインピクチャーに入ります'; + @override String get autoPipDescription => '再生中にアプリを離れると、自動的にピクチャーインピクチャーに切り替えます'; @override String get matchContentFrameRate => 'コンテンツのフレームレートに合わせる'; @override String get matchContentFrameRateDescription => '表示のリフレッシュレートを動画コンテンツに合わせます'; @override String get matchRefreshRate => 'リフレッシュレートを合わせる'; @@ -400,7 +402,7 @@ class _Translations$settings$ja extends Translations$settings$en { @override String get tunneledPlaybackDescription => '動画トンネリングを使用します。HDR再生で画面が黒くなる場合は無効にしてください。'; @override String get audioPassthrough => 'オーディオパススルー'; @override String get audioPassthroughDescription => 'Dolby/DTS音声を再エンコードせずにレシーバーやテレビに送り、サラウンドを維持します。音が出ない場合は無効にしてください。'; - @override String get audioPassthroughDescriptionAppleTv => 'Dolby Digital Plus(Atmos含む)をビットストリームとしてシステムに渡します。DTSとTrueHDは引き続きマルチチャンネルPCMで再生されます。シーク時に短い音切れが発生することがあります。'; + @override String get audioPassthroughDescriptionAppleTv => 'Dolby Atmosを含むDolby Digital PlusにはApple標準のDolbyデコーダーを使用します。DTSとTrueHDは引き続きマルチチャンネルPCMで再生されます。音が出ない場合は無効にしてください。'; @override String get audioDownmix => 'ステレオにダウンミックス'; @override String get audioDownmixDescription => 'サラウンド音声をステレオスピーカーやヘッドホン用に2チャンネルへミックスします'; @override String get downmixCenterBoost => 'センターチャンネルブースト'; @@ -444,11 +446,11 @@ class _Translations$settings$ja extends Translations$settings$en { @override String get exitFullscreenOnPlayerCloseDescription => 'ビデオプレイヤーを閉じたときに自動的に全画面モードを終了します'; @override String get autoHidePerformanceOverlay => 'パフォーマンスオーバーレイを自動非表示'; @override String get autoHidePerformanceOverlayDescription => '再生コントロールと一緒にパフォーマンスオーバーレイをフェードする'; - @override String get showNavBarLabels => 'ナビゲーションバーラベルを表示'; - @override String get showNavBarLabelsDescription => 'ナビゲーションバーアイコンの下にテキストラベルを表示'; + @override String get showNavBarLabels => 'ナビゲーションバーのラベルを表示'; + @override String get showNavBarLabelsDescription => 'ナビゲーションバーのアイコンの下にテキストラベルを表示'; @override String get startupSection => '起動時のセクション'; @override String get liveTvDefaultFavorites => 'お気に入りチャンネルをデフォルトに'; - @override String get liveTvDefaultFavoritesDescription => 'ライブTV を開いたときにお気に入りチャンネルのみ表示'; + @override String get liveTvDefaultFavoritesDescription => 'ライブTVを開いたときにお気に入りチャンネルのみ表示'; @override String get display => 'ディスプレイ'; @override String get homeScreen => 'ホーム画面'; @override String get navigation => 'ナビゲーション'; @@ -467,7 +469,7 @@ class _Translations$search$ja extends Translations$search$en { final TranslationsJa _root; // ignore: unused_field // Translations - @override String get hint => '映画、番組、音楽を検索...'; + @override String get hint => '映画、番組、音楽を検索…'; @override String get tryDifferentTerm => '別の検索語をお試しください'; @override String get searchYourMedia => 'メディアを検索'; @override String get enterTitleActorOrKeyword => 'タイトル、俳優、またはキーワードを入力'; @@ -545,7 +547,7 @@ class _Translations$mediaMenu$ja extends Translations$mediaMenu$en { @override String get mediaFailedToDelete => 'メディアアイテムの削除に失敗しました'; @override String get rate => '評価'; @override String get playFromBeginning => '最初から再生'; - @override String get playVersion => 'バージョンを再生...'; + @override String get playVersion => 'バージョンを選んで再生…'; } // Path: rateSheet @@ -630,8 +632,8 @@ class _Translations$videoControls$ja extends Translations$videoControls$en { @override String get resetToZero => '0msにリセット'; @override String addTime({required Object amount, required Object unit}) => '+${amount}${unit}'; @override String minusTime({required Object amount, required Object unit}) => '-${amount}${unit}'; - @override String playsLater({required Object label}) => '${label}遅く再生'; - @override String playsEarlier({required Object label}) => '${label}早く再生'; + @override String playsLater({required Object label}) => '${label}を遅らせる'; + @override String playsEarlier({required Object label}) => '${label}を早める'; @override String get noOffset => 'オフセットなし'; @override String get letterbox => 'レターボックス'; @override String get fillScreen => '画面を埋める'; @@ -651,6 +653,8 @@ class _Translations$videoControls$ja extends Translations$videoControls$en { @override String get playNext => '次を再生'; @override String get playButton => '再生'; @override String get pauseButton => '一時停止'; + @override String get showPlaybackControls => '再生コントロールを表示'; + @override String get hidePlaybackControls => '再生コントロールを非表示'; @override String seekBackwardButton({required Object seconds}) => '${seconds}秒戻る'; @override String seekForwardButton({required Object seconds}) => '${seconds}秒進む'; @override String get previousButton => '前のエピソード'; @@ -700,7 +704,7 @@ class _Translations$videoControls$ja extends Translations$videoControls$en { @override String get subtitleDownloaded => '字幕をダウンロードしました'; @override String get subtitleDownloadedNotApplied => '字幕はダウンロードされましたが、選択できませんでした'; @override String get subtitleDownloadFailed => '字幕のダウンロードに失敗しました'; - @override String get searchLanguages => '言語を検索...'; + @override String get searchLanguages => '言語を検索…'; } // Path: messages @@ -723,25 +727,25 @@ class _Translations$messages$ja extends Translations$messages$en { @override String get streamInterrupted => 'ストリームが中断されました。再生を押すかシークして再試行してください。'; @override String get liveStreamInterrupted => 'ライブストリームが中断されました。再生を押して再試行してください。'; @override String get fileInfoNotAvailable => 'ファイル情報が利用できません'; - @override String get playbackAuthenticationRequired => 'Sign in to the media server again to play this item.'; - @override String get playbackServerUnavailable => 'The media server is unavailable. Try again later.'; - @override String get playbackDataInvalid => 'The server returned invalid playback information.'; - @override String get playbackCancelled => 'Playback was cancelled.'; - @override String get playbackFailed => 'Playback could not be started.'; + @override String get playbackAuthenticationRequired => 'このアイテムを再生するには、メディアサーバーにもう一度サインインしてください。'; + @override String get playbackServerUnavailable => 'メディアサーバーを利用できません。しばらくしてからもう一度お試しください。'; + @override String get playbackDataInvalid => 'サーバーから無効な再生情報が返されました。'; + @override String get playbackCancelled => '再生がキャンセルされました。'; + @override String get playbackFailed => '再生を開始できませんでした。'; @override String errorLoadingFileInfo({required Object error}) => 'ファイル情報の読み込みエラー: ${error}'; @override String get errorLoadingSeries => 'シリーズの読み込みエラー'; @override String get musicNotSupported => '音楽の再生はまだサポートされていません'; @override String get noDescriptionAvailable => '説明はありません'; @override String get noProfilesAvailable => '利用可能なプロフィールがありません'; - @override String get contactAdminForProfiles => 'プロファイルを追加するにはサーバー管理者に連絡してください'; + @override String get contactAdminForProfiles => 'プロフィールを追加するには、サーバー管理者に連絡してください'; @override String get unableToDetermineLibrarySection => 'このアイテムのライブラリセクションを判別できません'; @override String get logsCleared => 'ログをクリアしました'; @override String get logsCopied => 'ログをクリップボードにコピーしました'; @override String get noLogsAvailable => 'ログがありません'; - @override String libraryScanning({required Object title}) => '"${title}"をスキャン中...'; + @override String libraryScanning({required Object title}) => '「${title}」をスキャン中…'; @override String libraryScanStarted({required Object title}) => '"${title}"のライブラリスキャンを開始しました'; @override String libraryScanFailed({required Object error}) => 'ライブラリのスキャンに失敗しました: ${error}'; - @override String metadataRefreshing({required Object title}) => '"${title}"のメタデータを更新中...'; + @override String metadataRefreshing({required Object title}) => '「${title}」のメタデータを更新中…'; @override String metadataRefreshStarted({required Object title}) => '"${title}"のメタデータ更新を開始しました'; @override String metadataRefreshFailed({required Object error}) => 'メタデータの更新に失敗しました: ${error}'; @override String get logoutConfirm => 'ログアウトしてもよろしいですか?'; @@ -753,9 +757,9 @@ class _Translations$messages$ja extends Translations$messages$en { @override String get noResultsFound => '結果が見つかりません'; @override String sleepTimerSet({required Object label}) => 'スリープタイマーを${label}に設定しました'; @override String get noItemsAvailable => 'アイテムがありません'; - @override String get failedToCreatePlayQueueNoItems => '再生キューの作成に失敗しました - アイテムがありません'; + @override String get failedToCreatePlayQueueNoItems => '再生キューを作成できませんでした — アイテムがありません'; @override String failedPlayback({required Object action, required Object error}) => '${action}に失敗しました: ${error}'; - @override String get switchingToCompatiblePlayer => '互換プレーヤーに切替中...'; + @override String get switchingToCompatiblePlayer => '互換性のあるプレーヤーに切り替え中…'; @override String get serverLimitTitle => '再生に失敗しました'; @override String get serverLimitBody => 'サーバーエラー(HTTP 500)。帯域幅/トランスコード制限により拒否された可能性があります。所有者に調整を依頼してください。'; @override String get logsUploaded => 'ログをアップロードしました'; @@ -804,7 +808,7 @@ class _Translations$mpvConfig$ja extends Translations$mpvConfig$en { @override String get description => '高度な動画プレーヤー設定'; @override String get presets => 'プリセット'; @override String get noPresets => '保存済みプリセットがありません'; - @override String get saveAsPreset => 'プリセットとして保存...'; + @override String get saveAsPreset => 'プリセットとして保存…'; @override String get presetName => 'プリセット名'; @override String get presetNameHint => 'プリセットの名前を入力'; @override String get loadPreset => '読み込み'; @@ -833,30 +837,30 @@ class _Translations$profiles$ja extends Translations$profiles$en { final TranslationsJa _root; // ignore: unused_field // Translations - @override String get addPlezyProfile => 'Plezyプロファイルを追加'; - @override String get switchingProfile => 'プロファイルを切り替え中…'; - @override String get deleteThisProfileTitle => 'このプロファイルを削除しますか?'; + @override String get addPlezyProfile => 'Plezyプロフィールを追加'; + @override String get switchingProfile => 'プロフィールを切り替え中…'; + @override String get deleteThisProfileTitle => 'このプロフィールを削除しますか?'; @override String deleteThisProfileMessage({required Object displayName}) => '${displayName}を削除します。接続には影響しません。'; @override String get active => 'アクティブ'; @override String get manage => '管理'; @override String get delete => '削除'; @override String get signOut => 'サインアウト'; - @override String get signOutPlexTitle => 'Plex からサインアウトしますか?'; - @override String signOutPlexMessage({required Object displayName}) => '${displayName}とすべてのPlex Homeユーザーを削除しますか?いつでも再サインインできます。'; - @override String get signedOutPlex => 'Plex からサインアウトしました。'; + @override String get signOutPlexTitle => 'Plexからサインアウトしますか?'; + @override String signOutPlexMessage({required Object displayName}) => '${displayName}とすべてのPlex Homeユーザーを削除しますか?いつでも再度サインインできます。'; + @override String get signedOutPlex => 'Plexからサインアウトしました。'; @override String get signOutFailed => 'サインアウトに失敗しました。'; - @override String get sectionTitle => 'プロファイル'; - @override String get summarySingle => 'プロファイルを追加して、管理対象ユーザーとローカルIDを混在させます'; - @override String summaryMultipleWithActive({required Object count, required Object activeName}) => '${count}個のプロファイル · アクティブ: ${activeName}'; - @override String summaryMultiple({required Object count}) => '${count}個のプロファイル'; + @override String get sectionTitle => 'プロフィール'; + @override String get summarySingle => 'プロフィールを追加すると、管理対象ユーザーとローカルユーザーを併用できます'; + @override String summaryMultipleWithActive({required Object count, required Object activeName}) => '${count}個のプロフィール · 使用中: ${activeName}'; + @override String summaryMultiple({required Object count}) => '${count}個のプロフィール'; @override String get removeConnectionTitle => '接続を削除しますか?'; @override String removeConnectionMessage({required Object displayName, required Object connectionLabel}) => '${displayName}の${connectionLabel}へのアクセスを削除します。他のプロフィールには残ります。'; - @override String get deleteProfileTitle => 'プロファイルを削除しますか?'; + @override String get deleteProfileTitle => 'プロフィールを削除しますか?'; @override String deleteProfileMessage({required Object displayName}) => '${displayName}とその接続を削除します。サーバーは引き続き利用できます。'; - @override String get profileNameLabel => 'プロファイル名'; + @override String get profileNameLabel => 'プロフィール名'; @override String get pinProtectionLabel => 'PIN保護'; @override String get pinManagedByPlex => 'PINはPlexで管理されています。plex.tvで編集してください。'; - @override String get noPinSetEditOnPlex => 'PINが設定されていません。要求するには、plex.tvでHomeユーザーを編集してください。'; + @override String get noPinSetEditOnPlex => 'PINが設定されていません。PINを必須にするには、plex.tvでHomeユーザーを編集してください。'; @override String get setPin => 'PINを設定'; @override String get setPinTitle => 'PINを設定'; @override String get confirmPinTitle => 'PINを確認'; @@ -865,8 +869,8 @@ class _Translations$profiles$ja extends Translations$profiles$en { @override String get removePin => '削除'; @override String get connectionsLabel => '接続'; @override String get add => '追加'; - @override String get deleteProfileButton => 'プロファイルを削除'; - @override String get noConnectionsHint => '接続がありません — このプロファイルを使うには1つ追加してください。'; + @override String get deleteProfileButton => 'プロフィールを削除'; + @override String get noConnectionsHint => '接続がありません — このプロフィールを使うには接続を追加してください。'; @override String get noConnections => '接続がありません'; @override String get plexHomeAccount => 'Plex Homeアカウント'; @override String get connectionDefault => 'デフォルト'; @@ -875,19 +879,19 @@ class _Translations$profiles$ja extends Translations$profiles$en { @override String get removeConnection => '削除'; @override String get profileRenamed => 'プロフィール名を変更しました。'; @override String borrowAddTo({required Object displayName}) => '${displayName}に追加'; - @override String get borrowExplain => '別のプロフィールの接続を借用します。PIN保護されたプロフィールにはPINが必要です。'; - @override String get borrowEmpty => 'まだ借りるものがありません。'; - @override String get borrowEmptySubtitle => 'まず別のプロフィールにPlexまたはJellyfinを接続してください。'; - @override String get borrowLoadFailed => 'Available connections could not be loaded. Try again.'; - @override String borrowFromProfile({required Object displayName}) => '${displayName}から'; - @override String get borrowConnectionBorrowed => '接続を借用しました。'; - @override String get borrowFailed => '接続を借用できませんでした。'; + @override String get borrowExplain => '別のプロフィールの接続を利用します。PINで保護されたプロフィールにはPINが必要です。'; + @override String get borrowEmpty => '利用できる接続はまだありません。'; + @override String get borrowEmptySubtitle => 'まず、別のプロフィールをPlexまたはJellyfinに接続してください。'; + @override String get borrowLoadFailed => '利用可能な接続を読み込めませんでした。もう一度お試しください。'; + @override String borrowFromProfile({required Object displayName}) => '${displayName}から利用'; + @override String get borrowConnectionBorrowed => '接続を追加しました。'; + @override String get borrowFailed => '接続を追加できませんでした。'; @override String get incorrectPin => 'PINが正しくありません。'; @override String get incorrectPinTryAgain => 'PINが正しくありません。もう一度お試しください。'; - @override String get sourceProfileMissingParentAccount => 'ソースプロフィールに親アカウントがありません。'; + @override String get sourceProfileMissingParentAccount => '元のプロフィールに親アカウントがありません。'; @override String get failedToLoadHomeUsers => 'Plex Homeユーザーを読み込めませんでした。接続を確認して、もう一度お試しください。'; @override String get failedToVerifyPin => 'PINを確認できませんでした。'; - @override String get newProfile => '新しいプロファイル'; + @override String get newProfile => '新しいプロフィール'; @override String get profileNameHint => '例:ゲスト、キッズ、ファミリールーム'; @override String get pinProtectionOptional => 'PIN保護(オプション)'; @override String get pinExplain => 'プロフィール切り替えには4桁のPINが必要です。'; @@ -905,12 +909,12 @@ class _Translations$connections$ja extends Translations$connections$en { @override String get sectionTitle => '接続'; @override String get addConnection => '接続を追加'; @override String get addConnectionSubtitleNoProfile => 'Plexでサインインするか、Jellyfinサーバーに接続'; - @override String addConnectionSubtitleScoped({required Object displayName}) => '${displayName}に追加: Plex、Jellyfin、または別プロフィールの接続'; + @override String addConnectionSubtitleScoped({required Object displayName}) => '${displayName}に追加:Plex、Jellyfin、または別のプロフィールの接続'; @override String sessionExpiredOne({required Object name}) => '${name} のセッションの有効期限が切れました'; @override String sessionExpiredMany({required Object count}) => '${count} 台のサーバーのセッションの有効期限が切れました'; @override String get signInAgain => '再度サインイン'; @override String get editJellyfinTitle => 'Jellyfin接続を編集'; - @override String editJellyfinIntro({required Object serverName}) => '${serverName} のURLを追加または削除します。Plezyは到達可能なURLのうち最も低遅延のものを使用します。'; + @override String editJellyfinIntro({required Object serverName}) => '${serverName}のURLを追加または削除します。Plezyは接続可能なURLのうち遅延が最も少ないものを使用します。'; } // Path: discover @@ -927,11 +931,11 @@ class _Translations$discover$ja extends Translations$discover$en { @override String continueWatchingIn({required Object library}) => '${library}の視聴を続ける'; @override String get nextUp => '次のエピソード'; @override String nextUpIn({required Object library}) => '${library}の次のエピソード'; - @override String get recentlyAdded => '最近追加'; - @override String recentlyAddedIn({required Object library}) => '${library}に最近追加'; + @override String get recentlyAdded => '最近追加されたコンテンツ'; + @override String recentlyAddedIn({required Object library}) => '${library}に最近追加されたコンテンツ'; @override String latestAlbumsIn({required Object library}) => '${library}の最新アルバム'; - @override String recentlyPlayedIn({required Object library}) => '${library}で最近再生'; - @override String mostPlayedIn({required Object library}) => '${library}で最も再生'; + @override String recentlyPlayedIn({required Object library}) => '${library}で最近再生したコンテンツ'; + @override String mostPlayedIn({required Object library}) => '${library}で最も再生したコンテンツ'; @override String playEpisode({required Object season, required Object episode}) => 'S${season}E${episode}'; @override String get overview => 'あらすじ'; @override String get cast => 'キャスト'; @@ -979,11 +983,11 @@ class _Translations$libraries$ja extends Translations$libraries$en { @override String get analyzeLibrary => 'ライブラリを解析'; @override String get refreshMetadata => 'メタデータを更新'; @override String get emptyTrash => 'ゴミ箱を空にする'; - @override String emptyingTrash({required Object title}) => '"${title}"のゴミ箱を空にしています...'; - @override String trashEmptied({required Object title}) => '"${title}"のゴミ箱を空にしました'; + @override String emptyingTrash({required Object title}) => '「${title}」のゴミ箱を空にしています…'; + @override String trashEmptied({required Object title}) => '「${title}」のゴミ箱を空にしました'; @override String failedToEmptyTrash({required Object error}) => 'ゴミ箱を空にできませんでした: ${error}'; - @override String analyzing({required Object title}) => '"${title}"を解析中...'; - @override String analysisStarted({required Object title}) => '"${title}"の解析を開始しました'; + @override String analyzing({required Object title}) => '「${title}」を解析中…'; + @override String analysisStarted({required Object title}) => '「${title}」の解析を開始しました'; @override String failedToAnalyze({required Object error}) => 'ライブラリの解析に失敗しました: ${error}'; @override String get noLibrariesFound => 'ライブラリが見つかりません'; @override String get allLibrariesHidden => 'すべてのライブラリが非表示です'; @@ -1092,7 +1096,7 @@ class _Translations$navigation$ja extends Translations$navigation$en { @override String get libraries => 'ライブラリ'; @override String get downloads => 'ダウンロード'; @override String get liveTv => 'ライブTV'; - @override String get explore => '探索'; + @override String get explore => '見つける'; } // Path: explore @@ -1102,12 +1106,12 @@ class _Translations$explore$ja extends Translations$explore$en { final TranslationsJa _root; // ignore: unused_field // Translations - @override String get title => '探索'; + @override String get title => '見つける'; @override String get selectSource => 'ソースを選択'; @override late final _Translations$explore$rows$ja rows = _Translations$explore$rows$ja._(_root); @override late final _Translations$explore$status$ja status = _Translations$explore$status$ja._(_root); @override String episodeCount({required num n}) => (_root.$meta.cardinalResolver ?? PluralResolvers.cardinal('ja'))(n, - other: '${n} 話', + other: '${n}話', ); @override String get cast => 'キャスト'; @override String get characters => 'キャラクター'; @@ -1116,12 +1120,12 @@ class _Translations$explore$ja extends Translations$explore$en { @override String get watchlistUpdateFailed => 'ウォッチリストを更新できませんでした'; @override String get notInLibrary => 'ライブラリにありません'; @override String get inTheseLibraries => 'これらのライブラリにあります'; - @override String get checkingLibrary => 'ライブラリを確認中...'; + @override String get checkingLibrary => 'ライブラリを確認中…'; @override String get emptyTitle => 'まだ何もありません'; @override String emptyMessage({required Object source}) => '${source}にコンテンツが追加されると、ここに表示されます。'; - @override String searchHint({required Object source}) => '${source} で検索'; + @override String searchHint({required Object source}) => '${source}を検索'; @override String searchEmpty({required Object query}) => '「${query}」の結果が見つかりません'; - @override String searchPrompt({required Object source}) => '${source} で映画やテレビ番組を検索します。'; + @override String searchPrompt({required Object source}) => '${source}で映画やテレビ番組を検索します。'; @override String get searchFailed => '検索に失敗しました。接続を確認してもう一度お試しください。'; } @@ -1146,22 +1150,22 @@ class _Translations$liveTv$ja extends Translations$liveTv$en { @override String channelNumber({required Object number}) => 'チャンネル ${number}'; @override String get unknownChannel => '不明なチャンネル'; @override String get live => 'ライブ'; - @override String get reloadGuide => '番組表を再読込'; + @override String get reloadGuide => '番組表を再読み込み'; @override String get now => '現在'; @override String get today => '今日'; @override String get tomorrow => '明日'; - @override String get midnight => '深夜'; + @override String get midnight => '午前0時'; @override String get overnight => '深夜'; @override String get morning => '朝'; - @override String get daytime => '昼'; + @override String get daytime => '日中'; @override String get evening => '夕方'; - @override String get lateNight => '深夜'; + @override String get lateNight => '夜更け'; @override String get whatsOn => '放送中'; @override String get watchChannel => 'チャンネルを視聴'; @override String get favorites => 'お気に入り'; @override String get reorderFavorites => 'お気に入りを並べ替え'; @override String get favoritesLoadFailed => 'お気に入りを読み込めませんでした。接続を確認してもう一度お試しください。'; - @override String get favoritesUpdateFailed => 'Could not update favorites. Check your connection and try again.'; + @override String get favoritesUpdateFailed => 'お気に入りを更新できませんでした。接続を確認してもう一度お試しください。'; @override String get joinSession => '進行中のセッションに参加'; @override String watchFromStart({required Object minutes}) => '最初から視聴(${minutes}分前に開始)'; @override String get watchLive => 'ライブで視聴'; @@ -1178,13 +1182,13 @@ class _Translations$liveTv$ja extends Translations$liveTv$en { @override String get manageRecording => '録画を管理'; @override String get cancelRecording => '録画をキャンセル'; @override String get cancelRecordingTitle => 'この録画をキャンセルしますか?'; - @override String cancelRecordingMessage({required Object title}) => '${title} は録画されなくなります。'; + @override String cancelRecordingMessage({required Object title}) => '${title}は録画されなくなります。'; @override String get deleteRule => 'ルールを削除'; @override String get deleteRuleTitle => '録画ルールを削除しますか?'; - @override String deleteRuleMessage({required Object title}) => '${title} の今後のエピソードは録画されません。'; + @override String deleteRuleMessage({required Object title}) => '${title}の今後のエピソードは録画されません。'; @override String get recordingScheduled => '録画を予約しました'; @override String get alreadyScheduled => 'この番組はすでに予約されています'; - @override String get dvrAdminRequired => 'DVR 設定には管理者アカウントが必要です'; + @override String get dvrAdminRequired => 'DVR設定には管理者アカウントが必要です'; @override String get recordingFailed => '録画を予約できませんでした'; @override String get recordingTargetMissing => '録画ライブラリを特定できませんでした'; @override String get recordNotAvailable => 'この番組は録画できません'; @@ -1192,12 +1196,12 @@ class _Translations$liveTv$ja extends Translations$liveTv$en { @override String get recordingRuleDeleted => '録画ルールを削除しました'; @override String get processRecordingRules => 'ルールを再評価'; @override String get recordingInProgress => '録画中'; - @override String recordingsCount({required Object count}) => '${count} 件予約済み'; + @override String recordingsCount({required Object count}) => '${count}件予約済み'; @override String get editRule => 'ルールを編集'; @override String get editRuleAction => '編集'; @override String get recordingRuleUpdated => '録画ルールを更新しました'; - @override String get guideReloadRequested => 'ガイドの更新を要求しました'; - @override String get rulesProcessRequested => 'ルールの再評価を要求しました'; + @override String get guideReloadRequested => '番組表の更新をリクエストしました'; + @override String get rulesProcessRequested => '録画ルールの再評価をリクエストしました'; @override String get recordShow => '番組を録画'; } @@ -1212,7 +1216,7 @@ class _Translations$collections$ja extends Translations$collections$en { @override String get collection => 'コレクション'; @override String get empty => 'コレクションは空です'; @override String get deleteCollection => 'コレクションを削除'; - @override String deleteConfirm({required Object title}) => '「${title}」を削除しますか?元に戻せません。'; + @override String deleteConfirm({required Object title}) => '「${title}」を削除しますか?この操作は元に戻せません。'; @override String get deleted => 'コレクションを削除しました'; @override String get deleteFailed => 'コレクションの削除に失敗しました'; @override String deleteFailedWithError({required Object error}) => 'コレクションの削除に失敗しました: ${error}'; @@ -1223,11 +1227,11 @@ class _Translations$collections$ja extends Translations$collections$en { @override String get errorAddingToCollection => 'コレクションへの追加に失敗しました'; @override String get created => 'コレクションを作成しました'; @override String get removeFromCollection => 'コレクションから削除'; - @override String removeFromCollectionConfirm({required Object title}) => '"${title}"をこのコレクションから削除しますか?'; + @override String removeFromCollectionConfirm({required Object title}) => '「${title}」をこのコレクションから削除しますか?'; @override String get removedFromCollection => 'コレクションから削除しました'; @override String get removeFromCollectionFailed => 'コレクションからの削除に失敗しました'; @override String removeFromCollectionError({required Object error}) => 'コレクションからの削除エラー: ${error}'; - @override String get searchCollections => 'コレクションを検索...'; + @override String get searchCollections => 'コレクションを検索…'; } // Path: playlists @@ -1246,17 +1250,17 @@ class _Translations$playlists$ja extends Translations$playlists$en { @override String get delete => 'プレイリストを削除'; @override String get removeItem => 'プレイリストから削除'; @override String get smartPlaylist => 'スマートプレイリスト'; - @override String itemCount({required Object count}) => '${count}アイテム'; - @override String get oneItem => '1アイテム'; + @override String itemCount({required Object count}) => '${count}件'; + @override String get oneItem => '1件'; @override String get emptyPlaylist => 'このプレイリストは空です'; @override String get deleteConfirm => 'プレイリストを削除しますか?'; - @override String deleteMessage({required Object name}) => '"${name}"を削除してもよろしいですか?'; + @override String deleteMessage({required Object name}) => '「${name}」を削除しますか?'; @override String get created => 'プレイリストを作成しました'; @override String get deleted => 'プレイリストを削除しました'; @override String get itemAdded => 'プレイリストに追加しました'; @override String get itemRemoved => 'プレイリストから削除しました'; @override String get selectPlaylist => 'プレイリストを選択'; - @override String get searchPlaylists => 'プレイリストを検索...'; + @override String get searchPlaylists => 'プレイリストを検索…'; @override String get errorCreating => 'プレイリストの作成に失敗しました'; @override String get errorDeleting => 'プレイリストの削除に失敗しました'; @override String get errorLoading => 'プレイリストの読み込みに失敗しました'; @@ -1279,10 +1283,10 @@ class _Translations$music$ja extends Translations$music$en { @override String get addToQueue => 'キューに追加'; @override String discNumber({required Object n}) => 'ディスク ${n}'; @override String trackCount({required num n}) => (_root.$meta.cardinalResolver ?? PluralResolvers.cardinal('ja'))(n, - other: '${n} 曲', + other: '${n}曲', ); @override String get nowPlaying => '再生中'; - @override String playingFrom({required Object title}) => '${title} から再生'; + @override String playingFrom({required Object title}) => '${title}から再生'; @override String get queue => '再生キュー'; @override String get clearQueue => 'キューをクリア'; @override String get lyrics => '歌詞'; @@ -1308,9 +1312,9 @@ class _Translations$watchTogether$ja extends Translations$watchTogether$en { @override String get title => '一緒に見る'; @override String get description => '友達や家族と同期してコンテンツを視聴'; @override String get createSession => 'セッションを作成'; - @override String get creating => '作成中...'; + @override String get creating => '作成中…'; @override String get joinSession => 'セッションに参加'; - @override String get joining => '参加中...'; + @override String get joining => '参加中…'; @override String get controlMode => 'コントロールモード'; @override String get controlModeQuestion => '誰が再生を制御できますか?'; @override String get hostOnly => 'ホストのみ'; @@ -1326,7 +1330,7 @@ class _Translations$watchTogether$ja extends Translations$watchTogether$en { @override String get anyoneControls => '全員が制御'; @override String get participants => '参加者'; @override String get host => 'ホスト'; - @override String get hostBadge => 'HOST'; + @override String get hostBadge => 'ホスト'; @override String get youAreHost => 'あなたはホストです'; @override String get watchingWithOthers => '他の人と視聴中'; @override String get endSession => 'セッションを終了'; @@ -1339,7 +1343,7 @@ class _Translations$watchTogether$ja extends Translations$watchTogether$en { @override String get leaveSessionConfirmOverlay => '視聴セッションから切断されます。'; @override String get end => '終了'; @override String get leave => '退出'; - @override String get syncing => '同期中...'; + @override String get syncing => '同期中…'; @override String get joinWatchSession => '視聴セッションに参加'; @override String get enterCodeHint => '5文字のコードを入力'; @override String get pasteFromClipboard => 'クリップボードから貼り付け'; @@ -1349,8 +1353,8 @@ class _Translations$watchTogether$ja extends Translations$watchTogether$en { @override String get failedToCreate => 'セッションの作成に失敗しました'; @override String get failedToJoin => 'セッションへの参加に失敗しました'; @override String get sessionCodeCopied => 'セッションコードをクリップボードにコピーしました'; - @override String get relayUnreachable => 'リレーサーバーに到達できません。ISPのブロックによりWatch Togetherが使えない可能性があります。'; - @override String get reconnectingToHost => 'ホストに再接続中...'; + @override String get relayUnreachable => 'リレーサーバーに接続できません。ISPによるブロックのため「一緒に見る」を利用できない可能性があります。'; + @override String get reconnectingToHost => 'ホストに再接続中…'; @override String get currentPlayback => '現在の再生'; @override String get joinCurrentPlayback => '現在の再生に参加'; @override String get joinCurrentPlaybackDescription => 'ホストが現在視聴中のコンテンツに戻る'; @@ -1359,17 +1363,17 @@ class _Translations$watchTogether$ja extends Translations$watchTogether$en { @override String participantLeft({required Object name}) => '${name}が退出しました'; @override String participantPaused({required Object name}) => '${name}が一時停止しました'; @override String participantResumed({required Object name}) => '${name}が再開しました'; - @override String participantSeeked({required Object name}) => '${name}がシークしました'; + @override String participantSeeked({required Object name}) => '${name}が再生位置を変更しました'; @override String participantBuffering({required Object name}) => '${name}がバッファリング中'; - @override String participantNeedsUpdate({required Object name}) => '${name} は古いバージョンのアプリを使用しているため、同期できません'; - @override String resumingWithout({required Object name}) => '${name} なしで再開'; - @override String get waitingForParticipants => '他の参加者の読み込みを待っています...'; - @override String waitingForName({required Object name}) => '${name}を待っています...'; + @override String participantNeedsUpdate({required Object name}) => '${name}は古いバージョンのアプリを使用しているため、同期できません'; + @override String resumingWithout({required Object name}) => '${name}抜きで再開'; + @override String get waitingForParticipants => '他の参加者の読み込みを待っています…'; + @override String waitingForName({required Object name}) => '${name}を待っています…'; @override String get recentRooms => '最近のルーム'; @override String get renameRoom => 'ルーム名を変更'; @override String get removeRoom => '削除'; - @override String get guestSwitchUnavailable => '切り替えできません — サーバーが同期できません'; - @override String get guestSwitchFailed => '切り替えできません — このサーバーにコンテンツが見つかりません'; + @override String get guestSwitchUnavailable => '切り替えられません — 同期に必要なサーバーを利用できません'; + @override String get guestSwitchFailed => '切り替えられません — このサーバーにコンテンツが見つかりません'; } // Path: downloads @@ -1385,7 +1389,7 @@ class _Translations$downloads$ja extends Translations$downloads$en { @override String get movies => '映画'; @override String get music => '音楽'; @override String tracksQueued({required Object count}) => '${count} 曲をダウンロード待機中'; - @override String get noDownloads => 'ダウンロードなし'; + @override String get noDownloads => 'ダウンロードはまだありません'; @override String get noDownloadsDescription => 'ダウンロードしたコンテンツはここに表示され、オフラインで視聴できます'; @override String get downloadNow => 'ダウンロード'; @override String get deleteDownload => 'ダウンロードを削除'; @@ -1396,20 +1400,20 @@ class _Translations$downloads$ja extends Translations$downloads$en { @override String episodesQueued({required Object count}) => '${count}エピソードをダウンロードキューに追加しました'; @override String get downloadDeleted => 'ダウンロードを削除しました'; @override String deleteConfirm({required Object title}) => 'このデバイスから「${title}」を削除しますか?'; - @override String get cancelledDownloadTitle => 'キャンセルされたダウンロード'; + @override String get cancelledDownloadTitle => 'キャンセル済みのダウンロード'; @override String get cancelledDownloadMessage => 'このダウンロードはキャンセルされました。どうしますか?'; @override String get allEpisodesAlreadyDownloaded => 'すべてのエピソードはすでにダウンロード済みです'; @override String get resumeDownload => 'ダウンロードを再開'; - @override String get cancelledDownload => 'キャンセルされたダウンロード'; + @override String get cancelledDownload => 'キャンセル済みのダウンロード'; @override String syncingFile({required Object file, required Object status}) => '${file}(${status}を同期中)'; - @override String downloadedFileClickToComplete({required Object file}) => '${file} をダウンロード済み — クリックして完了'; + @override String downloadedFileClickToComplete({required Object file}) => '${file}をダウンロード済み — クリックして完了'; @override String get partialDownloadClickToComplete => '一部ダウンロード済み — クリックして完了'; - @override String get deleting => '削除中...'; - @override String deletingWithProgress({required Object title, required Object current, required Object total}) => '${title}を削除中... (${current}/${total})'; + @override String get deleting => '削除中…'; + @override String deletingWithProgress({required Object title, required Object current, required Object total}) => '${title}を削除中…(${current}/${total})'; @override String get queuedTooltip => 'キュー'; - @override String queuedFilesTooltip({required Object files}) => 'キュー: ${files}'; - @override String get downloadingTooltip => 'ダウンロード中...'; - @override String downloadingFilesTooltip({required Object files}) => '${files} をダウンロード中'; + @override String queuedFilesTooltip({required Object files}) => 'キュー:${files}'; + @override String get downloadingTooltip => 'ダウンロード中…'; + @override String downloadingFilesTooltip({required Object files}) => '${files}をダウンロード中'; @override String get noDownloadsTree => 'ダウンロードなし'; @override String get pauseAll => 'すべて一時停止'; @override String get resumeAll => 'すべて再開'; @@ -1418,9 +1422,9 @@ class _Translations$downloads$ja extends Translations$downloads$en { @override String get allEpisodes => 'すべてのエピソード'; @override String get unwatchedOnly => '未視聴のみ'; @override String nextNUnwatched({required Object count}) => '次の${count}件の未視聴'; - @override String get customAmount => '数を指定...'; + @override String get customAmount => '数を指定…'; @override String get includeSpecials => 'スペシャルを含める'; - @override String get howManyEpisodes => '何エピソード?'; + @override String get howManyEpisodes => 'エピソード数'; @override String get invalidEpisodeCount => '有効なエピソード数を入力してください。'; @override String get keepSynced => '同期を維持'; @override String get downloadOnce => '一度だけダウンロード'; @@ -1457,7 +1461,7 @@ class _Translations$shaders$ja extends Translations$shaders$en { // Translations @override String get title => 'シェーダー'; @override String get noShaderDescription => '映像補正なし'; - @override String get nvscalerDescription => 'よりシャープな映像のためのNVIDIA画像スケーリング'; + @override String get nvscalerDescription => 'NVIDIA画像スケーリングで映像をより鮮明にします'; @override String get artcnnVariantNeutral => 'ニュートラル'; @override String get artcnnVariantDenoise => 'ノイズ除去'; @override String get artcnnVariantDenoiseSharpen => 'ノイズ除去 + シャープ'; @@ -1469,7 +1473,7 @@ class _Translations$shaders$ja extends Translations$shaders$en { @override String get shaderImported => 'シェーダーをインポートしました'; @override String get shaderImportFailed => 'シェーダーのインポートに失敗しました'; @override String get deleteShader => 'シェーダーを削除'; - @override String deleteShaderConfirm({required Object name}) => '"${name}"を削除しますか?'; + @override String deleteShaderConfirm({required Object name}) => '「${name}」を削除しますか?'; } // Path: companionRemote @@ -1534,7 +1538,7 @@ class _Translations$performanceOverlay$ja extends Translations$performanceOverla @override String get hwFormat => 'HW 形式'; @override String get matrix => 'マトリクス'; @override String get primaries => 'プライマリ'; - @override String get transfer => '転送'; + @override String get transfer => '伝達特性'; @override String get renderFps => '描画 FPS'; @override String get displayFps => '表示 FPS'; @override String get avSync => 'A/V 同期'; @@ -1566,7 +1570,7 @@ class _Translations$externalPlayer$ja extends Translations$externalPlayer$en { @override String get useExternalPlayerDescription => '動画を別のアプリで開きます'; @override String get selectPlayer => 'プレーヤーを選択'; @override String get customPlayers => 'カスタムプレーヤー'; - @override String get systemDefault => 'システムデフォルト'; + @override String get systemDefault => 'システム既定'; @override String get addCustomPlayer => 'カスタムプレーヤーを追加'; @override String get playerName => 'プレーヤー名'; @override String get playerNameHint => 'マイプレーヤー'; @@ -1586,7 +1590,7 @@ class _Translations$metadataEdit$ja extends Translations$metadataEdit$en { final TranslationsJa _root; // ignore: unused_field // Translations - @override String get editMetadata => '編集...'; + @override String get editMetadata => '編集…'; @override String get screenTitle => 'メタデータを編集'; @override String get basicInfo => '基本情報'; @override String get artwork => 'アートワーク'; @@ -1627,14 +1631,14 @@ class _Translations$metadataEdit$ja extends Translations$metadataEdit$en { @override String get newestFirst => '新しい順'; @override String get keep => '保持'; @override String get allEpisodes => 'すべてのエピソード'; - @override String latestEpisodes({required Object count}) => '最新${count}エピソード'; + @override String latestEpisodes({required Object count}) => '最新の${count}話'; @override String get latestEpisode => '最新エピソード'; @override String episodesAddedPastDays({required Object count}) => '過去${count}日間に追加されたエピソード'; @override String get deleteAfterPlaying => '再生後にエピソードを削除'; @override String get never => 'しない'; @override String get afterADay => '1日後'; @override String get afterAWeek => '1週間後'; - @override String get afterAMonth => '1ヶ月後'; + @override String get afterAMonth => '1か月後'; @override String get onNextRefresh => '次回更新時'; @override String get seasons => 'シーズン'; @override String get show => '表示'; @@ -1671,14 +1675,14 @@ class _Translations$matchScreen$ja extends Translations$matchScreen$en { final TranslationsJa _root; // ignore: unused_field // Translations - @override String get match => 'マッチ...'; - @override String get fixMatch => 'マッチを修正...'; - @override String get unmatch => 'マッチ解除'; - @override String get unmatchConfirm => 'この一致をクリアしますか?再一致するまでPlexでは未一致として扱われます。'; - @override String get unmatchSuccess => 'マッチを解除しました'; - @override String get unmatchFailed => 'マッチの解除に失敗しました'; - @override String get matchApplied => 'マッチを適用しました'; - @override String get matchFailed => 'マッチの適用に失敗しました'; + @override String get match => '照合…'; + @override String get fixMatch => '照合を修正…'; + @override String get unmatch => '照合を解除'; + @override String get unmatchConfirm => 'この照合を解除しますか?再照合するまで、Plexでは未照合として扱われます。'; + @override String get unmatchSuccess => '照合を解除しました'; + @override String get unmatchFailed => '照合を解除できませんでした'; + @override String get matchApplied => '照合結果を適用しました'; + @override String get matchFailed => '照合結果を適用できませんでした'; @override String get titleHint => 'タイトル'; @override String get yearHint => '年'; @override String get search => '検索'; @@ -1706,13 +1710,13 @@ class _Translations$trakt$ja extends Translations$trakt$en { // Translations @override String get title => 'Trakt'; @override String get connected => '接続済み'; - @override String connectedAs({required Object username}) => '@${username} として接続済み'; - @override String get disconnectConfirm => 'Trakt アカウントを切断しますか?'; + @override String connectedAs({required Object username}) => '@${username}として接続済み'; + @override String get disconnectConfirm => 'Traktアカウントとの接続を解除しますか?'; @override String get disconnectConfirmBody => 'PlezyはTraktへのイベント送信を停止します。いつでも再接続できます。'; @override String get scrobble => 'リアルタイムのスクロブル'; - @override String get scrobbleDescription => '再生中に再生・一時停止・停止イベントを Trakt に送信します。'; + @override String get scrobbleDescription => '再生中に再生・一時停止・停止の各イベントをTraktに送信します。'; @override String get watchedSync => '視聴済みステータスを同期'; - @override String get watchedSyncDescription => 'Plezy で項目を視聴済みにすると、Trakt でも視聴済みになります。'; + @override String get watchedSyncDescription => 'Plezyで項目を視聴済みにすると、Traktでも視聴済みになります。'; } // Path: seerr @@ -1787,8 +1791,8 @@ class _Translations$addServer$ja extends Translations$addServer$en { @override String get serverUrls => 'サーバーURL'; @override String get serverUrlsHelper => '複数のURLをカンマ区切りで入力できます。'; @override String get findServer => 'サーバーを検索'; - @override String get searchingLocalServers => 'ローカル Jellyfin サーバーを検索中...'; - @override String get localServers => 'ローカル Jellyfin サーバー'; + @override String get searchingLocalServers => 'ローカルのJellyfinサーバーを検索中…'; + @override String get localServers => 'ローカルのJellyfinサーバー'; @override String get username => 'ユーザー名'; @override String get password => 'パスワード'; @override String get signIn => 'サインイン'; @@ -1808,9 +1812,9 @@ class _Translations$addServer$ja extends Translations$addServer$en { @override String get signInWithPlexCardSubtitleScoped => 'Plexアカウントを承認します。Homeユーザーはプロフィールになります。'; @override String get connectToJellyfinCard => 'Jellyfinに接続'; @override String get connectToJellyfinCardSubtitle => 'サーバーURL、ユーザー名、パスワードを入力してください。'; - @override String connectToJellyfinCardSubtitleScoped({required Object name}) => 'Jellyfinサーバーにサインインします。${name}に紐付けられます。'; - @override String get borrowFromAnotherProfile => '別のプロファイルから借りる'; - @override String get borrowFromAnotherProfileSubtitle => '別のプロフィールの接続を再利用します。PIN保護されたプロフィールにはPINが必要です。'; + @override String connectToJellyfinCardSubtitleScoped({required Object name}) => 'Jellyfinサーバーにサインインします。${name}にひも付けられます。'; + @override String get borrowFromAnotherProfile => '別のプロフィールの接続を利用'; + @override String get borrowFromAnotherProfileSubtitle => '別のプロフィールの接続を再利用します。PINで保護されたプロフィールにはPINが必要です。'; } // Path: hotkeys.actions @@ -1823,8 +1827,8 @@ class _Translations$hotkeys$actions$ja extends Translations$hotkeys$actions$en { @override String get playPause => '再生/一時停止'; @override String get volumeUp => '音量を上げる'; @override String get volumeDown => '音量を下げる'; - @override String seekForward({required Object seconds}) => '前方にシーク (${seconds}秒)'; - @override String seekBackward({required Object seconds}) => '後方にシーク (${seconds}秒)'; + @override String seekForward({required Object seconds}) => '早送り(${seconds}秒)'; + @override String seekBackward({required Object seconds}) => '巻き戻し(${seconds}秒)'; @override String get fullscreenToggle => 'フルスクリーン切替'; @override String get muteToggle => 'ミュート切替'; @override String get subtitleToggle => '字幕切替'; @@ -1930,7 +1934,7 @@ class _Translations$libraries$sortLabels$ja extends Translations$libraries$sortL @override String get productionYear => '製作年'; @override String get runtime => '再生時間'; @override String get officialRating => '公式レーティング'; - @override String get premiereDate => 'プレミア日'; + @override String get premiereDate => '初公開日'; @override String get startDate => '開始日'; @override String get airTime => '放送時刻'; @override String get studio => 'スタジオ'; @@ -1983,11 +1987,11 @@ class _Translations$companionRemote$session$ja extends Translations$companionRem final TranslationsJa _root; // ignore: unused_field // Translations - @override String get startingServer => 'リモートサーバーを起動中...'; + @override String get startingServer => 'リモートサーバーを起動中…'; @override String get hostAddress => 'ホストアドレス'; @override String get connected => '接続済み'; @override String get serverRunning => 'リモートサーバー稼働中'; - @override String get serverStopped => 'リモートサーバー停止中'; + @override String get serverStopped => 'リモートサーバー停止'; @override String get serverRunningDescription => 'ネットワーク上のモバイルデバイスがこのアプリに接続できます'; @override String get serverStoppedDescription => 'モバイルデバイスの接続を許可するにはサーバーを起動してください'; @override String get usePhoneToControl => 'モバイルデバイスでこのアプリを操作できます'; @@ -2003,12 +2007,12 @@ class _Translations$companionRemote$pairing$ja extends Translations$companionRem final TranslationsJa _root; // ignore: unused_field // Translations - @override String get discoveryDescription => '同じPlexアカウントのPlezyデバイスがここに表示されます'; + @override String get discoveryDescription => '同じPlexアカウントを使用しているPlezyデバイスがここに表示されます'; @override String get hostAddressHint => '192.168.1.100:48632'; - @override String get connecting => '接続中...'; - @override String get searchingForDevices => 'デバイスを検索中...'; + @override String get connecting => '接続中…'; + @override String get searchingForDevices => 'デバイスを検索中…'; @override String get noDevicesFound => 'ネットワーク上にデバイスが見つかりません'; - @override String get noDevicesHint => 'デスクトップでPlezyを開き、同じWiFiを使用してください'; + @override String get noDevicesHint => 'デスクトップでPlezyを開き、同じWi-Fiネットワークに接続してください'; @override String get availableDevices => '利用可能なデバイス'; @override String get manualConnection => '手動接続'; @override String get cryptoInitFailed => '安全な接続を開始できませんでした。先にPlexにサインインしてください。'; @@ -2027,11 +2031,11 @@ class _Translations$companionRemote$remote$ja extends Translations$companionRemo final TranslationsJa _root; // ignore: unused_field // Translations - @override String get disconnectConfirm => 'リモートセッションから切断しますか?'; - @override String get reconnecting => '再接続中...'; + @override String get disconnectConfirm => 'リモートセッションを切断しますか?'; + @override String get reconnecting => '再接続中…'; @override String attemptOf({required Object current}) => '試行 ${current}/5'; @override String get retryNow => '今すぐ再試行'; - @override String get tabRemote => 'リモート'; + @override String get tabRemote => 'リモコン'; @override String get tabPlay => '再生'; @override String get tabMore => 'その他'; @override String get menu => 'メニュー'; @@ -2053,7 +2057,7 @@ class _Translations$companionRemote$remote$ja extends Translations$companionRemo @override String get fullscreen => 'フルスクリーン'; @override String get subtitles => '字幕'; @override String get audio => '音声'; - @override String get searchHint => 'デスクトップで検索...'; + @override String get searchHint => 'デスクトップで検索…'; } // Path: companionRemote.errors @@ -2094,7 +2098,7 @@ class _Translations$services$deviceCode$ja extends Translations$services$deviceC // Translations @override String title({required Object service}) => '${service} で Plezy を有効化'; - @override String body({required Object url}) => '${url} にアクセスしてこのコードを入力:'; + @override String body({required Object url}) => '${url}にアクセスして、このコードを入力してください。'; @override String openToActivate({required Object service}) => '${service} を開いて有効化'; @override String get copyCode => 'アクティベーションコードをコピー'; @override String get waitingForAuthorization => '認証を待っています…'; @@ -2150,7 +2154,7 @@ extension on TranslationsJa { 'auth.authenticate' => '認証', 'auth.authenticationTimeout' => '認証がタイムアウトしました。もう一度お試しください。', 'auth.scanQRToSignIn' => 'このQRコードをスキャンしてサインイン', - 'auth.waitingForAuth' => '認証待ち...\nブラウザでサインインしてください。', + 'auth.waitingForAuth' => '認証を待っています…\nブラウザでサインインしてください。', 'auth.useBrowser' => 'ブラウザを使用', 'auth.or' => 'または', 'auth.connectToJellyfin' => 'Jellyfinに接続', @@ -2159,7 +2163,7 @@ extension on TranslationsJa { 'auth.quickConnectWaiting' => '承認を待っています…', 'auth.quickConnectCancel' => 'キャンセル', 'auth.quickConnectExpired' => 'Quick Connectの有効期限が切れました。もう一度お試しください。', - 'auth.localDataRecoveryRequired' => 'Plezy could not safely recover local sign-in and pending playback data. Please sign in again.', + 'auth.localDataRecoveryRequired' => 'ローカルのサインイン情報と保留中の再生データを安全に復元できませんでした。もう一度サインインしてください。', 'common.cancel' => 'キャンセル', 'common.save' => '保存', 'common.close' => '閉じる', @@ -2177,7 +2181,7 @@ extension on TranslationsJa { 'common.delete' => '削除', 'common.edit' => '編集', 'common.shuffle' => 'シャッフル', - 'common.addTo' => '追加...', + 'common.addTo' => '追加先…', 'common.createNew' => '新規作成', 'common.connect' => '接続', 'common.disconnect' => '切断', @@ -2197,11 +2201,11 @@ extension on TranslationsJa { 'common.chapterNumber' => ({required Object number}) => 'チャプター${number}', 'common.reconnect' => '再接続', 'common.viewAll' => 'すべて表示', - 'common.checkingNetwork' => 'ネットワークを確認中...', - 'common.loadingServers' => 'サーバーを読み込み中...', - 'common.connectingToServers' => 'サーバーに接続中...', - 'common.startingOfflineMode' => 'オフラインモードを開始中...', - 'common.loading' => '読み込み中...', + 'common.checkingNetwork' => 'ネットワークを確認中…', + 'common.loadingServers' => 'サーバーを読み込み中…', + 'common.connectingToServers' => 'サーバーに接続中…', + 'common.startingOfflineMode' => 'オフラインモードを開始中…', + 'common.loading' => '読み込み中…', 'common.fullscreen' => 'フルスクリーン', 'common.exitFullscreen' => 'フルスクリーンを終了', 'common.pressBackAgainToExit' => 'もう一度押すと終了します', @@ -2218,8 +2222,8 @@ extension on TranslationsJa { 'update.latestVersion' => '最新バージョンです', 'update.checkFailed' => 'アップデートの確認に失敗しました', 'settings.title' => '設定', - 'settings.supportDeveloper' => 'Plezy を支援', - 'settings.supportDeveloperDescription' => 'Liberapay で寄付して開発を支援', + 'settings.supportDeveloper' => 'Plezyを支援', + 'settings.supportDeveloperDescription' => 'Liberapayで寄付して開発を支援', 'settings.language' => '言語', 'settings.theme' => 'テーマ', 'settings.appearance' => '外観', @@ -2243,10 +2247,12 @@ extension on TranslationsJa { 'settings.libraryDensity' => 'ライブラリの密度', 'settings.compact' => 'コンパクト', 'settings.comfortable' => 'ゆったり', + 'settings.tvCornerSpotlightBackdrop' => '画面隅の注目コンテンツ背景', + 'settings.tvCornerSpotlightBackdropDescription' => '画面全体ではなく、右上隅に注目コンテンツのアートワークを表示します', 'settings.viewMode' => '表示モード', 'settings.gridView' => 'グリッド', 'settings.listView' => 'リスト', - 'settings.showHeroSection' => 'ヒーローセクションを表示', + 'settings.showHeroSection' => '注目コンテンツを表示', 'settings.continueWatchingAction' => '視聴中の操作', 'settings.continueWatchingPlay' => '再生', 'settings.continueWatchingDetails' => '詳細を開く', @@ -2260,7 +2266,7 @@ extension on TranslationsJa { 'settings.groupLibrariesByServer' => 'サーバーごとにライブラリをグループ化', 'settings.groupLibrariesByServerDescription' => 'サイドバーのライブラリをメディアサーバーごとにまとめます。', 'settings.alwaysKeepSidebarOpen' => 'サイドバーを常に開いておく', - 'settings.alwaysKeepSidebarOpenDescription' => 'サイドバーを展開したまま、コンテンツ領域が調整される', + 'settings.alwaysKeepSidebarOpenDescription' => 'サイドバーを展開したままにし、コンテンツ領域を幅に合わせて調整します', 'settings.showUnwatchedCount' => '未視聴数を表示', 'settings.showUnwatchedCountDescription' => '番組とシーズンに未視聴エピソード数を表示', 'settings.showEpisodeNumberOnCards' => 'カードにエピソード番号を表示', @@ -2268,7 +2274,7 @@ extension on TranslationsJa { 'settings.showSeasonPostersOnTabs' => 'タブにシーズンポスターを表示', 'settings.showSeasonPostersOnTabsDescription' => '各シーズンのポスターをタブの上に表示します', 'settings.tvFullCardLayout' => 'フルTVカード', - 'settings.tvFullCardLayoutDescription' => 'TVカードを画像のみで表示し、俳優名を重ねて表示します', + 'settings.tvFullCardLayoutDescription' => 'TVカードを画像のみで表示し、出演者名を重ねて表示します', 'settings.focusGlow' => 'フォーカス時の光彩', 'settings.focusGlowDescription' => 'フォーカス中のカードの周りに柔らかい光彩を表示します', 'settings.visualEffects' => '視覚効果', @@ -2312,7 +2318,7 @@ extension on TranslationsJa { 'settings.watchTogetherRelay' => '一緒に視聴リレーサーバー', 'settings.watchTogetherRelayDescription' => 'カスタムリレーを設定します。全員が同じサーバーを使う必要があります。', 'settings.watchTogetherRelayHint' => 'https://my-relay.example.com', - 'settings.watchTogetherRelayInvalid' => 'Enter a valid HTTP or HTTPS relay base URL.', + 'settings.watchTogetherRelayInvalid' => '有効なHTTPまたはHTTPSのリレーサーバーURLを入力してください。', 'settings.crashReporting' => 'クラッシュレポート', 'settings.crashReportingDescription' => 'アプリの改善に役立つクラッシュレポートを送信', 'settings.debugLogging' => 'デバッグログ', @@ -2347,7 +2353,7 @@ extension on TranslationsJa { 'settings.validationErrorDuration' => ({required Object min, required Object max, required Object unit}) => '時間は${min}から${max} ${unit}の間である必要があります', 'settings.shortcutAlreadyAssigned' => ({required Object action}) => 'ショートカットは既に${action}に割り当てられています', 'settings.shortcutUpdated' => ({required Object action}) => '${action}のショートカットを更新しました', - 'settings.saveFailed' => 'Could not save changes. Try again.', + 'settings.saveFailed' => '変更を保存できませんでした。もう一度お試しください。', 'settings.autoSkip' => '自動スキップ', 'settings.autoSkipIntro' => 'イントロを自動スキップ', 'settings.autoSkipIntroDescription' => '数秒後にイントロマーカーを自動的にスキップ', @@ -2374,23 +2380,23 @@ extension on TranslationsJa { 'settings.downloadLocationReset' => 'ダウンロード場所をデフォルトにリセットしました', 'settings.downloadLocationInvalid' => '選択したフォルダは書き込みできません', 'settings.downloadLocationPickerUnavailable' => 'このデバイスではフォルダを選択できません', - 'settings.downloadOnWifiOnly' => 'WiFiのみでダウンロード', - 'settings.downloadOnWifiOnlyDescription' => 'モバイルデータ通信時のダウンロードを防止', + 'settings.downloadOnWifiOnly' => 'Wi-Fi接続時のみダウンロード', + 'settings.downloadOnWifiOnlyDescription' => 'モバイルデータ通信中のダウンロードを防ぎます', 'settings.autoRemoveWatchedDownloads' => '視聴済みダウンロードの自動削除', 'settings.autoRemoveWatchedDownloadsDescription' => '視聴済みのダウンロードを自動削除します', - 'settings.cellularDownloadBlocked' => 'モバイル通信ではダウンロードがブロックされています。WiFiを使うか設定を変更してください。', + 'settings.cellularDownloadBlocked' => 'モバイルデータ通信中はダウンロードできません。Wi-Fiを使用するか、設定を変更してください。', 'settings.maxVolume' => '最大音量', 'settings.maxVolumeDescription' => '静かなメディアに対して100%以上の音量ブーストを許可', 'settings.maxVolumePercent' => ({required Object percent}) => '${percent}%', 'settings.discordRichPresence' => 'Discord Rich Presence', 'settings.discordRichPresenceDescription' => 'Discordで視聴中の内容を表示', 'settings.services' => 'サービス', - 'settings.servicesDescription' => 'Trakt、MyAnimeList、Seerr などを接続', + 'settings.servicesDescription' => 'Trakt、MyAnimeList、Seerrなどを接続', 'settings.manageLibrariesDescription' => 'ライブラリを並べ替えたり非表示にしたりできます', 'settings.companionRemoteServer' => 'コンパニオンリモートサーバー', 'settings.companionRemoteServerDescription' => 'ネットワーク上のモバイルデバイスからこのアプリを操作できるようにする', 'settings.autoPip' => '自動ピクチャーインピクチャー', - 'settings.autoPipDescription' => '再生中に離れるとピクチャーインピクチャーに入ります', + 'settings.autoPipDescription' => '再生中にアプリを離れると、自動的にピクチャーインピクチャーに切り替えます', 'settings.matchContentFrameRate' => 'コンテンツのフレームレートに合わせる', 'settings.matchContentFrameRateDescription' => '表示のリフレッシュレートを動画コンテンツに合わせます', 'settings.matchRefreshRate' => 'リフレッシュレートを合わせる', @@ -2402,7 +2408,7 @@ extension on TranslationsJa { 'settings.tunneledPlaybackDescription' => '動画トンネリングを使用します。HDR再生で画面が黒くなる場合は無効にしてください。', 'settings.audioPassthrough' => 'オーディオパススルー', 'settings.audioPassthroughDescription' => 'Dolby/DTS音声を再エンコードせずにレシーバーやテレビに送り、サラウンドを維持します。音が出ない場合は無効にしてください。', - 'settings.audioPassthroughDescriptionAppleTv' => 'Dolby Digital Plus(Atmos含む)をビットストリームとしてシステムに渡します。DTSとTrueHDは引き続きマルチチャンネルPCMで再生されます。シーク時に短い音切れが発生することがあります。', + 'settings.audioPassthroughDescriptionAppleTv' => 'Dolby Atmosを含むDolby Digital PlusにはApple標準のDolbyデコーダーを使用します。DTSとTrueHDは引き続きマルチチャンネルPCMで再生されます。音が出ない場合は無効にしてください。', 'settings.audioDownmix' => 'ステレオにダウンミックス', 'settings.audioDownmixDescription' => 'サラウンド音声をステレオスピーカーやヘッドホン用に2チャンネルへミックスします', 'settings.downmixCenterBoost' => 'センターチャンネルブースト', @@ -2446,11 +2452,11 @@ extension on TranslationsJa { 'settings.exitFullscreenOnPlayerCloseDescription' => 'ビデオプレイヤーを閉じたときに自動的に全画面モードを終了します', 'settings.autoHidePerformanceOverlay' => 'パフォーマンスオーバーレイを自動非表示', 'settings.autoHidePerformanceOverlayDescription' => '再生コントロールと一緒にパフォーマンスオーバーレイをフェードする', - 'settings.showNavBarLabels' => 'ナビゲーションバーラベルを表示', - 'settings.showNavBarLabelsDescription' => 'ナビゲーションバーアイコンの下にテキストラベルを表示', + 'settings.showNavBarLabels' => 'ナビゲーションバーのラベルを表示', + 'settings.showNavBarLabelsDescription' => 'ナビゲーションバーのアイコンの下にテキストラベルを表示', 'settings.startupSection' => '起動時のセクション', 'settings.liveTvDefaultFavorites' => 'お気に入りチャンネルをデフォルトに', - 'settings.liveTvDefaultFavoritesDescription' => 'ライブTV を開いたときにお気に入りチャンネルのみ表示', + 'settings.liveTvDefaultFavoritesDescription' => 'ライブTVを開いたときにお気に入りチャンネルのみ表示', 'settings.display' => 'ディスプレイ', 'settings.homeScreen' => 'ホーム画面', 'settings.navigation' => 'ナビゲーション', @@ -2460,7 +2466,7 @@ extension on TranslationsJa { 'settings.subtitlesAndConfig' => '字幕と設定', 'settings.seekAndTiming' => 'シークとタイミング', 'settings.behavior' => '動作', - 'search.hint' => '映画、番組、音楽を検索...', + 'search.hint' => '映画、番組、音楽を検索…', 'search.tryDifferentTerm' => '別の検索語をお試しください', 'search.searchYourMedia' => 'メディアを検索', 'search.enterTitleActorOrKeyword' => 'タイトル、俳優、またはキーワードを入力', @@ -2473,8 +2479,8 @@ extension on TranslationsJa { 'hotkeys.actions.playPause' => '再生/一時停止', 'hotkeys.actions.volumeUp' => '音量を上げる', 'hotkeys.actions.volumeDown' => '音量を下げる', - 'hotkeys.actions.seekForward' => ({required Object seconds}) => '前方にシーク (${seconds}秒)', - 'hotkeys.actions.seekBackward' => ({required Object seconds}) => '後方にシーク (${seconds}秒)', + 'hotkeys.actions.seekForward' => ({required Object seconds}) => '早送り(${seconds}秒)', + 'hotkeys.actions.seekBackward' => ({required Object seconds}) => '巻き戻し(${seconds}秒)', 'hotkeys.actions.fullscreenToggle' => 'フルスクリーン切替', 'hotkeys.actions.muteToggle' => 'ミュート切替', 'hotkeys.actions.subtitleToggle' => '字幕切替', @@ -2535,7 +2541,7 @@ extension on TranslationsJa { 'mediaMenu.mediaFailedToDelete' => 'メディアアイテムの削除に失敗しました', 'mediaMenu.rate' => '評価', 'mediaMenu.playFromBeginning' => '最初から再生', - 'mediaMenu.playVersion' => 'バージョンを再生...', + 'mediaMenu.playVersion' => 'バージョンを選んで再生…', 'rateSheet.title' => '評価', 'rateSheet.server' => 'サーバー', 'rateSheet.favorite' => 'お気に入り', @@ -2575,8 +2581,8 @@ extension on TranslationsJa { 'videoControls.resetToZero' => '0msにリセット', 'videoControls.addTime' => ({required Object amount, required Object unit}) => '+${amount}${unit}', 'videoControls.minusTime' => ({required Object amount, required Object unit}) => '-${amount}${unit}', - 'videoControls.playsLater' => ({required Object label}) => '${label}遅く再生', - 'videoControls.playsEarlier' => ({required Object label}) => '${label}早く再生', + 'videoControls.playsLater' => ({required Object label}) => '${label}を遅らせる', + 'videoControls.playsEarlier' => ({required Object label}) => '${label}を早める', 'videoControls.noOffset' => 'オフセットなし', 'videoControls.letterbox' => 'レターボックス', 'videoControls.fillScreen' => '画面を埋める', @@ -2596,6 +2602,8 @@ extension on TranslationsJa { 'videoControls.playNext' => '次を再生', 'videoControls.playButton' => '再生', 'videoControls.pauseButton' => '一時停止', + 'videoControls.showPlaybackControls' => '再生コントロールを表示', + 'videoControls.hidePlaybackControls' => '再生コントロールを非表示', 'videoControls.seekBackwardButton' => ({required Object seconds}) => '${seconds}秒戻る', 'videoControls.seekForwardButton' => ({required Object seconds}) => '${seconds}秒進む', 'videoControls.previousButton' => '前のエピソード', @@ -2651,13 +2659,13 @@ extension on TranslationsJa { 'videoControls.subtitleDownloaded' => '字幕をダウンロードしました', 'videoControls.subtitleDownloadedNotApplied' => '字幕はダウンロードされましたが、選択できませんでした', 'videoControls.subtitleDownloadFailed' => '字幕のダウンロードに失敗しました', - 'videoControls.searchLanguages' => '言語を検索...', + 'videoControls.searchLanguages' => '言語を検索…', + _ => null, + } ?? switch (path) { 'messages.markedAsWatched' => '視聴済みにしました', 'messages.markedAsUnwatched' => '未視聴にしました', 'messages.markedAsWatchedOffline' => '視聴済みにしました(オンライン時に同期)', 'messages.markedAsUnwatchedOffline' => '未視聴にしました(オンライン時に同期)', - _ => null, - } ?? switch (path) { 'messages.autoRemovedWatchedDownload' => ({required Object title}) => '自動削除: ${title}', 'messages.autoRemovedWatchedDownloads' => ({required num n}) => (_root.$meta.cardinalResolver ?? PluralResolvers.cardinal('ja'))(n, other: '視聴済みダウンロードを${n}件自動削除しました', ), 'messages.removedFromContinueWatching' => '視聴中から削除しました', @@ -2665,25 +2673,25 @@ extension on TranslationsJa { 'messages.streamInterrupted' => 'ストリームが中断されました。再生を押すかシークして再試行してください。', 'messages.liveStreamInterrupted' => 'ライブストリームが中断されました。再生を押して再試行してください。', 'messages.fileInfoNotAvailable' => 'ファイル情報が利用できません', - 'messages.playbackAuthenticationRequired' => 'Sign in to the media server again to play this item.', - 'messages.playbackServerUnavailable' => 'The media server is unavailable. Try again later.', - 'messages.playbackDataInvalid' => 'The server returned invalid playback information.', - 'messages.playbackCancelled' => 'Playback was cancelled.', - 'messages.playbackFailed' => 'Playback could not be started.', + 'messages.playbackAuthenticationRequired' => 'このアイテムを再生するには、メディアサーバーにもう一度サインインしてください。', + 'messages.playbackServerUnavailable' => 'メディアサーバーを利用できません。しばらくしてからもう一度お試しください。', + 'messages.playbackDataInvalid' => 'サーバーから無効な再生情報が返されました。', + 'messages.playbackCancelled' => '再生がキャンセルされました。', + 'messages.playbackFailed' => '再生を開始できませんでした。', 'messages.errorLoadingFileInfo' => ({required Object error}) => 'ファイル情報の読み込みエラー: ${error}', 'messages.errorLoadingSeries' => 'シリーズの読み込みエラー', 'messages.musicNotSupported' => '音楽の再生はまだサポートされていません', 'messages.noDescriptionAvailable' => '説明はありません', 'messages.noProfilesAvailable' => '利用可能なプロフィールがありません', - 'messages.contactAdminForProfiles' => 'プロファイルを追加するにはサーバー管理者に連絡してください', + 'messages.contactAdminForProfiles' => 'プロフィールを追加するには、サーバー管理者に連絡してください', 'messages.unableToDetermineLibrarySection' => 'このアイテムのライブラリセクションを判別できません', 'messages.logsCleared' => 'ログをクリアしました', 'messages.logsCopied' => 'ログをクリップボードにコピーしました', 'messages.noLogsAvailable' => 'ログがありません', - 'messages.libraryScanning' => ({required Object title}) => '"${title}"をスキャン中...', + 'messages.libraryScanning' => ({required Object title}) => '「${title}」をスキャン中…', 'messages.libraryScanStarted' => ({required Object title}) => '"${title}"のライブラリスキャンを開始しました', 'messages.libraryScanFailed' => ({required Object error}) => 'ライブラリのスキャンに失敗しました: ${error}', - 'messages.metadataRefreshing' => ({required Object title}) => '"${title}"のメタデータを更新中...', + 'messages.metadataRefreshing' => ({required Object title}) => '「${title}」のメタデータを更新中…', 'messages.metadataRefreshStarted' => ({required Object title}) => '"${title}"のメタデータ更新を開始しました', 'messages.metadataRefreshFailed' => ({required Object error}) => 'メタデータの更新に失敗しました: ${error}', 'messages.logoutConfirm' => 'ログアウトしてもよろしいですか?', @@ -2695,9 +2703,9 @@ extension on TranslationsJa { 'messages.noResultsFound' => '結果が見つかりません', 'messages.sleepTimerSet' => ({required Object label}) => 'スリープタイマーを${label}に設定しました', 'messages.noItemsAvailable' => 'アイテムがありません', - 'messages.failedToCreatePlayQueueNoItems' => '再生キューの作成に失敗しました - アイテムがありません', + 'messages.failedToCreatePlayQueueNoItems' => '再生キューを作成できませんでした — アイテムがありません', 'messages.failedPlayback' => ({required Object action, required Object error}) => '${action}に失敗しました: ${error}', - 'messages.switchingToCompatiblePlayer' => '互換プレーヤーに切替中...', + 'messages.switchingToCompatiblePlayer' => '互換性のあるプレーヤーに切り替え中…', 'messages.serverLimitTitle' => '再生に失敗しました', 'messages.serverLimitBody' => 'サーバーエラー(HTTP 500)。帯域幅/トランスコード制限により拒否された可能性があります。所有者に調整を依頼してください。', 'messages.logsUploaded' => 'ログをアップロードしました', @@ -2728,7 +2736,7 @@ extension on TranslationsJa { 'mpvConfig.description' => '高度な動画プレーヤー設定', 'mpvConfig.presets' => 'プリセット', 'mpvConfig.noPresets' => '保存済みプリセットがありません', - 'mpvConfig.saveAsPreset' => 'プリセットとして保存...', + 'mpvConfig.saveAsPreset' => 'プリセットとして保存…', 'mpvConfig.presetName' => 'プリセット名', 'mpvConfig.presetNameHint' => 'プリセットの名前を入力', 'mpvConfig.loadPreset' => '読み込み', @@ -2739,30 +2747,30 @@ extension on TranslationsJa { 'mpvConfig.confirmDeletePreset' => 'このプリセットを削除してもよろしいですか?', 'mpvConfig.configPlaceholder' => 'gpu-api=vulkan\nhwdec=auto\n# comment', 'dialog.confirmAction' => '操作の確認', - 'profiles.addPlezyProfile' => 'Plezyプロファイルを追加', - 'profiles.switchingProfile' => 'プロファイルを切り替え中…', - 'profiles.deleteThisProfileTitle' => 'このプロファイルを削除しますか?', + 'profiles.addPlezyProfile' => 'Plezyプロフィールを追加', + 'profiles.switchingProfile' => 'プロフィールを切り替え中…', + 'profiles.deleteThisProfileTitle' => 'このプロフィールを削除しますか?', 'profiles.deleteThisProfileMessage' => ({required Object displayName}) => '${displayName}を削除します。接続には影響しません。', 'profiles.active' => 'アクティブ', 'profiles.manage' => '管理', 'profiles.delete' => '削除', 'profiles.signOut' => 'サインアウト', - 'profiles.signOutPlexTitle' => 'Plex からサインアウトしますか?', - 'profiles.signOutPlexMessage' => ({required Object displayName}) => '${displayName}とすべてのPlex Homeユーザーを削除しますか?いつでも再サインインできます。', - 'profiles.signedOutPlex' => 'Plex からサインアウトしました。', + 'profiles.signOutPlexTitle' => 'Plexからサインアウトしますか?', + 'profiles.signOutPlexMessage' => ({required Object displayName}) => '${displayName}とすべてのPlex Homeユーザーを削除しますか?いつでも再度サインインできます。', + 'profiles.signedOutPlex' => 'Plexからサインアウトしました。', 'profiles.signOutFailed' => 'サインアウトに失敗しました。', - 'profiles.sectionTitle' => 'プロファイル', - 'profiles.summarySingle' => 'プロファイルを追加して、管理対象ユーザーとローカルIDを混在させます', - 'profiles.summaryMultipleWithActive' => ({required Object count, required Object activeName}) => '${count}個のプロファイル · アクティブ: ${activeName}', - 'profiles.summaryMultiple' => ({required Object count}) => '${count}個のプロファイル', + 'profiles.sectionTitle' => 'プロフィール', + 'profiles.summarySingle' => 'プロフィールを追加すると、管理対象ユーザーとローカルユーザーを併用できます', + 'profiles.summaryMultipleWithActive' => ({required Object count, required Object activeName}) => '${count}個のプロフィール · 使用中: ${activeName}', + 'profiles.summaryMultiple' => ({required Object count}) => '${count}個のプロフィール', 'profiles.removeConnectionTitle' => '接続を削除しますか?', 'profiles.removeConnectionMessage' => ({required Object displayName, required Object connectionLabel}) => '${displayName}の${connectionLabel}へのアクセスを削除します。他のプロフィールには残ります。', - 'profiles.deleteProfileTitle' => 'プロファイルを削除しますか?', + 'profiles.deleteProfileTitle' => 'プロフィールを削除しますか?', 'profiles.deleteProfileMessage' => ({required Object displayName}) => '${displayName}とその接続を削除します。サーバーは引き続き利用できます。', - 'profiles.profileNameLabel' => 'プロファイル名', + 'profiles.profileNameLabel' => 'プロフィール名', 'profiles.pinProtectionLabel' => 'PIN保護', 'profiles.pinManagedByPlex' => 'PINはPlexで管理されています。plex.tvで編集してください。', - 'profiles.noPinSetEditOnPlex' => 'PINが設定されていません。要求するには、plex.tvでHomeユーザーを編集してください。', + 'profiles.noPinSetEditOnPlex' => 'PINが設定されていません。PINを必須にするには、plex.tvでHomeユーザーを編集してください。', 'profiles.setPin' => 'PINを設定', 'profiles.setPinTitle' => 'PINを設定', 'profiles.confirmPinTitle' => 'PINを確認', @@ -2771,8 +2779,8 @@ extension on TranslationsJa { 'profiles.removePin' => '削除', 'profiles.connectionsLabel' => '接続', 'profiles.add' => '追加', - 'profiles.deleteProfileButton' => 'プロファイルを削除', - 'profiles.noConnectionsHint' => '接続がありません — このプロファイルを使うには1つ追加してください。', + 'profiles.deleteProfileButton' => 'プロフィールを削除', + 'profiles.noConnectionsHint' => '接続がありません — このプロフィールを使うには接続を追加してください。', 'profiles.noConnections' => '接続がありません', 'profiles.plexHomeAccount' => 'Plex Homeアカウント', 'profiles.connectionDefault' => 'デフォルト', @@ -2781,19 +2789,19 @@ extension on TranslationsJa { 'profiles.removeConnection' => '削除', 'profiles.profileRenamed' => 'プロフィール名を変更しました。', 'profiles.borrowAddTo' => ({required Object displayName}) => '${displayName}に追加', - 'profiles.borrowExplain' => '別のプロフィールの接続を借用します。PIN保護されたプロフィールにはPINが必要です。', - 'profiles.borrowEmpty' => 'まだ借りるものがありません。', - 'profiles.borrowEmptySubtitle' => 'まず別のプロフィールにPlexまたはJellyfinを接続してください。', - 'profiles.borrowLoadFailed' => 'Available connections could not be loaded. Try again.', - 'profiles.borrowFromProfile' => ({required Object displayName}) => '${displayName}から', - 'profiles.borrowConnectionBorrowed' => '接続を借用しました。', - 'profiles.borrowFailed' => '接続を借用できませんでした。', + 'profiles.borrowExplain' => '別のプロフィールの接続を利用します。PINで保護されたプロフィールにはPINが必要です。', + 'profiles.borrowEmpty' => '利用できる接続はまだありません。', + 'profiles.borrowEmptySubtitle' => 'まず、別のプロフィールをPlexまたはJellyfinに接続してください。', + 'profiles.borrowLoadFailed' => '利用可能な接続を読み込めませんでした。もう一度お試しください。', + 'profiles.borrowFromProfile' => ({required Object displayName}) => '${displayName}から利用', + 'profiles.borrowConnectionBorrowed' => '接続を追加しました。', + 'profiles.borrowFailed' => '接続を追加できませんでした。', 'profiles.incorrectPin' => 'PINが正しくありません。', 'profiles.incorrectPinTryAgain' => 'PINが正しくありません。もう一度お試しください。', - 'profiles.sourceProfileMissingParentAccount' => 'ソースプロフィールに親アカウントがありません。', + 'profiles.sourceProfileMissingParentAccount' => '元のプロフィールに親アカウントがありません。', 'profiles.failedToLoadHomeUsers' => 'Plex Homeユーザーを読み込めませんでした。接続を確認して、もう一度お試しください。', 'profiles.failedToVerifyPin' => 'PINを確認できませんでした。', - 'profiles.newProfile' => '新しいプロファイル', + 'profiles.newProfile' => '新しいプロフィール', 'profiles.profileNameHint' => '例:ゲスト、キッズ、ファミリールーム', 'profiles.pinProtectionOptional' => 'PIN保護(オプション)', 'profiles.pinExplain' => 'プロフィール切り替えには4桁のPINが必要です。', @@ -2802,12 +2810,12 @@ extension on TranslationsJa { 'connections.sectionTitle' => '接続', 'connections.addConnection' => '接続を追加', 'connections.addConnectionSubtitleNoProfile' => 'Plexでサインインするか、Jellyfinサーバーに接続', - 'connections.addConnectionSubtitleScoped' => ({required Object displayName}) => '${displayName}に追加: Plex、Jellyfin、または別プロフィールの接続', + 'connections.addConnectionSubtitleScoped' => ({required Object displayName}) => '${displayName}に追加:Plex、Jellyfin、または別のプロフィールの接続', 'connections.sessionExpiredOne' => ({required Object name}) => '${name} のセッションの有効期限が切れました', 'connections.sessionExpiredMany' => ({required Object count}) => '${count} 台のサーバーのセッションの有効期限が切れました', 'connections.signInAgain' => '再度サインイン', 'connections.editJellyfinTitle' => 'Jellyfin接続を編集', - 'connections.editJellyfinIntro' => ({required Object serverName}) => '${serverName} のURLを追加または削除します。Plezyは到達可能なURLのうち最も低遅延のものを使用します。', + 'connections.editJellyfinIntro' => ({required Object serverName}) => '${serverName}のURLを追加または削除します。Plezyは接続可能なURLのうち遅延が最も少ないものを使用します。', 'discover.title' => '探す', 'discover.noContentAvailable' => 'コンテンツがありません', 'discover.addMediaToLibraries' => 'ライブラリにメディアを追加してください', @@ -2815,11 +2823,11 @@ extension on TranslationsJa { 'discover.continueWatchingIn' => ({required Object library}) => '${library}の視聴を続ける', 'discover.nextUp' => '次のエピソード', 'discover.nextUpIn' => ({required Object library}) => '${library}の次のエピソード', - 'discover.recentlyAdded' => '最近追加', - 'discover.recentlyAddedIn' => ({required Object library}) => '${library}に最近追加', + 'discover.recentlyAdded' => '最近追加されたコンテンツ', + 'discover.recentlyAddedIn' => ({required Object library}) => '${library}に最近追加されたコンテンツ', 'discover.latestAlbumsIn' => ({required Object library}) => '${library}の最新アルバム', - 'discover.recentlyPlayedIn' => ({required Object library}) => '${library}で最近再生', - 'discover.mostPlayedIn' => ({required Object library}) => '${library}で最も再生', + 'discover.recentlyPlayedIn' => ({required Object library}) => '${library}で最近再生したコンテンツ', + 'discover.mostPlayedIn' => ({required Object library}) => '${library}で最も再生したコンテンツ', 'discover.playEpisode' => ({required Object season, required Object episode}) => 'S${season}E${episode}', 'discover.overview' => 'あらすじ', 'discover.cast' => 'キャスト', @@ -2849,11 +2857,11 @@ extension on TranslationsJa { 'libraries.analyzeLibrary' => 'ライブラリを解析', 'libraries.refreshMetadata' => 'メタデータを更新', 'libraries.emptyTrash' => 'ゴミ箱を空にする', - 'libraries.emptyingTrash' => ({required Object title}) => '"${title}"のゴミ箱を空にしています...', - 'libraries.trashEmptied' => ({required Object title}) => '"${title}"のゴミ箱を空にしました', + 'libraries.emptyingTrash' => ({required Object title}) => '「${title}」のゴミ箱を空にしています…', + 'libraries.trashEmptied' => ({required Object title}) => '「${title}」のゴミ箱を空にしました', 'libraries.failedToEmptyTrash' => ({required Object error}) => 'ゴミ箱を空にできませんでした: ${error}', - 'libraries.analyzing' => ({required Object title}) => '"${title}"を解析中...', - 'libraries.analysisStarted' => ({required Object title}) => '"${title}"の解析を開始しました', + 'libraries.analyzing' => ({required Object title}) => '「${title}」を解析中…', + 'libraries.analysisStarted' => ({required Object title}) => '「${title}」の解析を開始しました', 'libraries.failedToAnalyze' => ({required Object error}) => 'ライブラリの解析に失敗しました: ${error}', 'libraries.noLibrariesFound' => 'ライブラリが見つかりません', 'libraries.allLibrariesHidden' => 'すべてのライブラリが非表示です', @@ -2915,7 +2923,7 @@ extension on TranslationsJa { 'libraries.sortLabels.productionYear' => '製作年', 'libraries.sortLabels.runtime' => '再生時間', 'libraries.sortLabels.officialRating' => '公式レーティング', - 'libraries.sortLabels.premiereDate' => 'プレミア日', + 'libraries.sortLabels.premiereDate' => '初公開日', 'libraries.sortLabels.startDate' => '開始日', 'libraries.sortLabels.airTime' => '放送時刻', 'libraries.sortLabels.studio' => 'スタジオ', @@ -2945,8 +2953,8 @@ extension on TranslationsJa { 'navigation.libraries' => 'ライブラリ', 'navigation.downloads' => 'ダウンロード', 'navigation.liveTv' => 'ライブTV', - 'navigation.explore' => '探索', - 'explore.title' => '探索', + 'navigation.explore' => '見つける', + 'explore.title' => '見つける', 'explore.selectSource' => 'ソースを選択', 'explore.rows.watchlist' => 'ウォッチリスト', 'explore.rows.recommendedMovies' => 'おすすめの映画', @@ -2966,7 +2974,7 @@ extension on TranslationsJa { 'explore.status.ended' => '放送終了', 'explore.status.canceled' => '打ち切り', 'explore.status.upcoming' => '放送予定', - 'explore.episodeCount' => ({required num n}) => (_root.$meta.cardinalResolver ?? PluralResolvers.cardinal('ja'))(n, other: '${n} 話', ), + 'explore.episodeCount' => ({required num n}) => (_root.$meta.cardinalResolver ?? PluralResolvers.cardinal('ja'))(n, other: '${n}話', ), 'explore.cast' => 'キャスト', 'explore.characters' => 'キャラクター', 'explore.addToWatchlist' => 'ウォッチリストに追加', @@ -2974,12 +2982,12 @@ extension on TranslationsJa { 'explore.watchlistUpdateFailed' => 'ウォッチリストを更新できませんでした', 'explore.notInLibrary' => 'ライブラリにありません', 'explore.inTheseLibraries' => 'これらのライブラリにあります', - 'explore.checkingLibrary' => 'ライブラリを確認中...', + 'explore.checkingLibrary' => 'ライブラリを確認中…', 'explore.emptyTitle' => 'まだ何もありません', 'explore.emptyMessage' => ({required Object source}) => '${source}にコンテンツが追加されると、ここに表示されます。', - 'explore.searchHint' => ({required Object source}) => '${source} で検索', + 'explore.searchHint' => ({required Object source}) => '${source}を検索', 'explore.searchEmpty' => ({required Object query}) => '「${query}」の結果が見つかりません', - 'explore.searchPrompt' => ({required Object source}) => '${source} で映画やテレビ番組を検索します。', + 'explore.searchPrompt' => ({required Object source}) => '${source}で映画やテレビ番組を検索します。', 'explore.searchFailed' => '検索に失敗しました。接続を確認してもう一度お試しください。', 'liveTv.title' => 'ライブTV', 'liveTv.guide' => '番組表', @@ -2995,22 +3003,22 @@ extension on TranslationsJa { 'liveTv.channelNumber' => ({required Object number}) => 'チャンネル ${number}', 'liveTv.unknownChannel' => '不明なチャンネル', 'liveTv.live' => 'ライブ', - 'liveTv.reloadGuide' => '番組表を再読込', + 'liveTv.reloadGuide' => '番組表を再読み込み', 'liveTv.now' => '現在', 'liveTv.today' => '今日', 'liveTv.tomorrow' => '明日', - 'liveTv.midnight' => '深夜', + 'liveTv.midnight' => '午前0時', 'liveTv.overnight' => '深夜', 'liveTv.morning' => '朝', - 'liveTv.daytime' => '昼', + 'liveTv.daytime' => '日中', 'liveTv.evening' => '夕方', - 'liveTv.lateNight' => '深夜', + 'liveTv.lateNight' => '夜更け', 'liveTv.whatsOn' => '放送中', 'liveTv.watchChannel' => 'チャンネルを視聴', 'liveTv.favorites' => 'お気に入り', 'liveTv.reorderFavorites' => 'お気に入りを並べ替え', 'liveTv.favoritesLoadFailed' => 'お気に入りを読み込めませんでした。接続を確認してもう一度お試しください。', - 'liveTv.favoritesUpdateFailed' => 'Could not update favorites. Check your connection and try again.', + 'liveTv.favoritesUpdateFailed' => 'お気に入りを更新できませんでした。接続を確認してもう一度お試しください。', 'liveTv.joinSession' => '進行中のセッションに参加', 'liveTv.watchFromStart' => ({required Object minutes}) => '最初から視聴(${minutes}分前に開始)', 'liveTv.watchLive' => 'ライブで視聴', @@ -3027,13 +3035,13 @@ extension on TranslationsJa { 'liveTv.manageRecording' => '録画を管理', 'liveTv.cancelRecording' => '録画をキャンセル', 'liveTv.cancelRecordingTitle' => 'この録画をキャンセルしますか?', - 'liveTv.cancelRecordingMessage' => ({required Object title}) => '${title} は録画されなくなります。', + 'liveTv.cancelRecordingMessage' => ({required Object title}) => '${title}は録画されなくなります。', 'liveTv.deleteRule' => 'ルールを削除', 'liveTv.deleteRuleTitle' => '録画ルールを削除しますか?', - 'liveTv.deleteRuleMessage' => ({required Object title}) => '${title} の今後のエピソードは録画されません。', + 'liveTv.deleteRuleMessage' => ({required Object title}) => '${title}の今後のエピソードは録画されません。', 'liveTv.recordingScheduled' => '録画を予約しました', 'liveTv.alreadyScheduled' => 'この番組はすでに予約されています', - 'liveTv.dvrAdminRequired' => 'DVR 設定には管理者アカウントが必要です', + 'liveTv.dvrAdminRequired' => 'DVR設定には管理者アカウントが必要です', 'liveTv.recordingFailed' => '録画を予約できませんでした', 'liveTv.recordingTargetMissing' => '録画ライブラリを特定できませんでした', 'liveTv.recordNotAvailable' => 'この番組は録画できません', @@ -3041,18 +3049,18 @@ extension on TranslationsJa { 'liveTv.recordingRuleDeleted' => '録画ルールを削除しました', 'liveTv.processRecordingRules' => 'ルールを再評価', 'liveTv.recordingInProgress' => '録画中', - 'liveTv.recordingsCount' => ({required Object count}) => '${count} 件予約済み', + 'liveTv.recordingsCount' => ({required Object count}) => '${count}件予約済み', 'liveTv.editRule' => 'ルールを編集', 'liveTv.editRuleAction' => '編集', 'liveTv.recordingRuleUpdated' => '録画ルールを更新しました', - 'liveTv.guideReloadRequested' => 'ガイドの更新を要求しました', - 'liveTv.rulesProcessRequested' => 'ルールの再評価を要求しました', + 'liveTv.guideReloadRequested' => '番組表の更新をリクエストしました', + 'liveTv.rulesProcessRequested' => '録画ルールの再評価をリクエストしました', 'liveTv.recordShow' => '番組を録画', 'collections.title' => 'コレクション', 'collections.collection' => 'コレクション', 'collections.empty' => 'コレクションは空です', 'collections.deleteCollection' => 'コレクションを削除', - 'collections.deleteConfirm' => ({required Object title}) => '「${title}」を削除しますか?元に戻せません。', + 'collections.deleteConfirm' => ({required Object title}) => '「${title}」を削除しますか?この操作は元に戻せません。', 'collections.deleted' => 'コレクションを削除しました', 'collections.deleteFailed' => 'コレクションの削除に失敗しました', 'collections.deleteFailedWithError' => ({required Object error}) => 'コレクションの削除に失敗しました: ${error}', @@ -3063,11 +3071,11 @@ extension on TranslationsJa { 'collections.errorAddingToCollection' => 'コレクションへの追加に失敗しました', 'collections.created' => 'コレクションを作成しました', 'collections.removeFromCollection' => 'コレクションから削除', - 'collections.removeFromCollectionConfirm' => ({required Object title}) => '"${title}"をこのコレクションから削除しますか?', + 'collections.removeFromCollectionConfirm' => ({required Object title}) => '「${title}」をこのコレクションから削除しますか?', 'collections.removedFromCollection' => 'コレクションから削除しました', 'collections.removeFromCollectionFailed' => 'コレクションからの削除に失敗しました', 'collections.removeFromCollectionError' => ({required Object error}) => 'コレクションからの削除エラー: ${error}', - 'collections.searchCollections' => 'コレクションを検索...', + 'collections.searchCollections' => 'コレクションを検索…', 'playlists.title' => 'プレイリスト', 'playlists.playlist' => 'プレイリスト', 'playlists.noPlaylists' => 'プレイリストが見つかりません', @@ -3077,17 +3085,17 @@ extension on TranslationsJa { 'playlists.delete' => 'プレイリストを削除', 'playlists.removeItem' => 'プレイリストから削除', 'playlists.smartPlaylist' => 'スマートプレイリスト', - 'playlists.itemCount' => ({required Object count}) => '${count}アイテム', - 'playlists.oneItem' => '1アイテム', + 'playlists.itemCount' => ({required Object count}) => '${count}件', + 'playlists.oneItem' => '1件', 'playlists.emptyPlaylist' => 'このプレイリストは空です', 'playlists.deleteConfirm' => 'プレイリストを削除しますか?', - 'playlists.deleteMessage' => ({required Object name}) => '"${name}"を削除してもよろしいですか?', + 'playlists.deleteMessage' => ({required Object name}) => '「${name}」を削除しますか?', 'playlists.created' => 'プレイリストを作成しました', 'playlists.deleted' => 'プレイリストを削除しました', 'playlists.itemAdded' => 'プレイリストに追加しました', 'playlists.itemRemoved' => 'プレイリストから削除しました', 'playlists.selectPlaylist' => 'プレイリストを選択', - 'playlists.searchPlaylists' => 'プレイリストを検索...', + 'playlists.searchPlaylists' => 'プレイリストを検索…', 'playlists.errorCreating' => 'プレイリストの作成に失敗しました', 'playlists.errorDeleting' => 'プレイリストの削除に失敗しました', 'playlists.errorLoading' => 'プレイリストの読み込みに失敗しました', @@ -3100,9 +3108,9 @@ extension on TranslationsJa { 'music.playNext' => '次に再生', 'music.addToQueue' => 'キューに追加', 'music.discNumber' => ({required Object n}) => 'ディスク ${n}', - 'music.trackCount' => ({required num n}) => (_root.$meta.cardinalResolver ?? PluralResolvers.cardinal('ja'))(n, other: '${n} 曲', ), + 'music.trackCount' => ({required num n}) => (_root.$meta.cardinalResolver ?? PluralResolvers.cardinal('ja'))(n, other: '${n}曲', ), 'music.nowPlaying' => '再生中', - 'music.playingFrom' => ({required Object title}) => '${title} から再生', + 'music.playingFrom' => ({required Object title}) => '${title}から再生', 'music.queue' => '再生キュー', 'music.clearQueue' => 'キューをクリア', 'music.lyrics' => '歌詞', @@ -3119,9 +3127,9 @@ extension on TranslationsJa { 'watchTogether.title' => '一緒に見る', 'watchTogether.description' => '友達や家族と同期してコンテンツを視聴', 'watchTogether.createSession' => 'セッションを作成', - 'watchTogether.creating' => '作成中...', + 'watchTogether.creating' => '作成中…', 'watchTogether.joinSession' => 'セッションに参加', - 'watchTogether.joining' => '参加中...', + 'watchTogether.joining' => '参加中…', 'watchTogether.controlMode' => 'コントロールモード', 'watchTogether.controlModeQuestion' => '誰が再生を制御できますか?', 'watchTogether.hostOnly' => 'ホストのみ', @@ -3137,7 +3145,7 @@ extension on TranslationsJa { 'watchTogether.anyoneControls' => '全員が制御', 'watchTogether.participants' => '参加者', 'watchTogether.host' => 'ホスト', - 'watchTogether.hostBadge' => 'HOST', + 'watchTogether.hostBadge' => 'ホスト', 'watchTogether.youAreHost' => 'あなたはホストです', 'watchTogether.watchingWithOthers' => '他の人と視聴中', 'watchTogether.endSession' => 'セッションを終了', @@ -3150,7 +3158,7 @@ extension on TranslationsJa { 'watchTogether.leaveSessionConfirmOverlay' => '視聴セッションから切断されます。', 'watchTogether.end' => '終了', 'watchTogether.leave' => '退出', - 'watchTogether.syncing' => '同期中...', + 'watchTogether.syncing' => '同期中…', 'watchTogether.joinWatchSession' => '視聴セッションに参加', 'watchTogether.enterCodeHint' => '5文字のコードを入力', 'watchTogether.pasteFromClipboard' => 'クリップボードから貼り付け', @@ -3160,36 +3168,36 @@ extension on TranslationsJa { 'watchTogether.failedToCreate' => 'セッションの作成に失敗しました', 'watchTogether.failedToJoin' => 'セッションへの参加に失敗しました', 'watchTogether.sessionCodeCopied' => 'セッションコードをクリップボードにコピーしました', - 'watchTogether.relayUnreachable' => 'リレーサーバーに到達できません。ISPのブロックによりWatch Togetherが使えない可能性があります。', - 'watchTogether.reconnectingToHost' => 'ホストに再接続中...', + 'watchTogether.relayUnreachable' => 'リレーサーバーに接続できません。ISPによるブロックのため「一緒に見る」を利用できない可能性があります。', + 'watchTogether.reconnectingToHost' => 'ホストに再接続中…', 'watchTogether.currentPlayback' => '現在の再生', 'watchTogether.joinCurrentPlayback' => '現在の再生に参加', 'watchTogether.joinCurrentPlaybackDescription' => 'ホストが現在視聴中のコンテンツに戻る', 'watchTogether.failedToOpenCurrentPlayback' => '現在の再生を開けませんでした', + _ => null, + } ?? switch (path) { 'watchTogether.participantJoined' => ({required Object name}) => '${name}が参加しました', 'watchTogether.participantLeft' => ({required Object name}) => '${name}が退出しました', 'watchTogether.participantPaused' => ({required Object name}) => '${name}が一時停止しました', 'watchTogether.participantResumed' => ({required Object name}) => '${name}が再開しました', - _ => null, - } ?? switch (path) { - 'watchTogether.participantSeeked' => ({required Object name}) => '${name}がシークしました', + 'watchTogether.participantSeeked' => ({required Object name}) => '${name}が再生位置を変更しました', 'watchTogether.participantBuffering' => ({required Object name}) => '${name}がバッファリング中', - 'watchTogether.participantNeedsUpdate' => ({required Object name}) => '${name} は古いバージョンのアプリを使用しているため、同期できません', - 'watchTogether.resumingWithout' => ({required Object name}) => '${name} なしで再開', - 'watchTogether.waitingForParticipants' => '他の参加者の読み込みを待っています...', - 'watchTogether.waitingForName' => ({required Object name}) => '${name}を待っています...', + 'watchTogether.participantNeedsUpdate' => ({required Object name}) => '${name}は古いバージョンのアプリを使用しているため、同期できません', + 'watchTogether.resumingWithout' => ({required Object name}) => '${name}抜きで再開', + 'watchTogether.waitingForParticipants' => '他の参加者の読み込みを待っています…', + 'watchTogether.waitingForName' => ({required Object name}) => '${name}を待っています…', 'watchTogether.recentRooms' => '最近のルーム', 'watchTogether.renameRoom' => 'ルーム名を変更', 'watchTogether.removeRoom' => '削除', - 'watchTogether.guestSwitchUnavailable' => '切り替えできません — サーバーが同期できません', - 'watchTogether.guestSwitchFailed' => '切り替えできません — このサーバーにコンテンツが見つかりません', + 'watchTogether.guestSwitchUnavailable' => '切り替えられません — 同期に必要なサーバーを利用できません', + 'watchTogether.guestSwitchFailed' => '切り替えられません — このサーバーにコンテンツが見つかりません', 'downloads.title' => 'ダウンロード', 'downloads.manage' => '管理', 'downloads.tvShows' => 'テレビ番組', 'downloads.movies' => '映画', 'downloads.music' => '音楽', 'downloads.tracksQueued' => ({required Object count}) => '${count} 曲をダウンロード待機中', - 'downloads.noDownloads' => 'ダウンロードなし', + 'downloads.noDownloads' => 'ダウンロードはまだありません', 'downloads.noDownloadsDescription' => 'ダウンロードしたコンテンツはここに表示され、オフラインで視聴できます', 'downloads.downloadNow' => 'ダウンロード', 'downloads.deleteDownload' => 'ダウンロードを削除', @@ -3200,20 +3208,20 @@ extension on TranslationsJa { 'downloads.episodesQueued' => ({required Object count}) => '${count}エピソードをダウンロードキューに追加しました', 'downloads.downloadDeleted' => 'ダウンロードを削除しました', 'downloads.deleteConfirm' => ({required Object title}) => 'このデバイスから「${title}」を削除しますか?', - 'downloads.cancelledDownloadTitle' => 'キャンセルされたダウンロード', + 'downloads.cancelledDownloadTitle' => 'キャンセル済みのダウンロード', 'downloads.cancelledDownloadMessage' => 'このダウンロードはキャンセルされました。どうしますか?', 'downloads.allEpisodesAlreadyDownloaded' => 'すべてのエピソードはすでにダウンロード済みです', 'downloads.resumeDownload' => 'ダウンロードを再開', - 'downloads.cancelledDownload' => 'キャンセルされたダウンロード', + 'downloads.cancelledDownload' => 'キャンセル済みのダウンロード', 'downloads.syncingFile' => ({required Object file, required Object status}) => '${file}(${status}を同期中)', - 'downloads.downloadedFileClickToComplete' => ({required Object file}) => '${file} をダウンロード済み — クリックして完了', + 'downloads.downloadedFileClickToComplete' => ({required Object file}) => '${file}をダウンロード済み — クリックして完了', 'downloads.partialDownloadClickToComplete' => '一部ダウンロード済み — クリックして完了', - 'downloads.deleting' => '削除中...', - 'downloads.deletingWithProgress' => ({required Object title, required Object current, required Object total}) => '${title}を削除中... (${current}/${total})', + 'downloads.deleting' => '削除中…', + 'downloads.deletingWithProgress' => ({required Object title, required Object current, required Object total}) => '${title}を削除中…(${current}/${total})', 'downloads.queuedTooltip' => 'キュー', - 'downloads.queuedFilesTooltip' => ({required Object files}) => 'キュー: ${files}', - 'downloads.downloadingTooltip' => 'ダウンロード中...', - 'downloads.downloadingFilesTooltip' => ({required Object files}) => '${files} をダウンロード中', + 'downloads.queuedFilesTooltip' => ({required Object files}) => 'キュー:${files}', + 'downloads.downloadingTooltip' => 'ダウンロード中…', + 'downloads.downloadingFilesTooltip' => ({required Object files}) => '${files}をダウンロード中', 'downloads.noDownloadsTree' => 'ダウンロードなし', 'downloads.pauseAll' => 'すべて一時停止', 'downloads.resumeAll' => 'すべて再開', @@ -3222,9 +3230,9 @@ extension on TranslationsJa { 'downloads.allEpisodes' => 'すべてのエピソード', 'downloads.unwatchedOnly' => '未視聴のみ', 'downloads.nextNUnwatched' => ({required Object count}) => '次の${count}件の未視聴', - 'downloads.customAmount' => '数を指定...', + 'downloads.customAmount' => '数を指定…', 'downloads.includeSpecials' => 'スペシャルを含める', - 'downloads.howManyEpisodes' => '何エピソード?', + 'downloads.howManyEpisodes' => 'エピソード数', 'downloads.invalidEpisodeCount' => '有効なエピソード数を入力してください。', 'downloads.keepSynced' => '同期を維持', 'downloads.downloadOnce' => '一度だけダウンロード', @@ -3252,7 +3260,7 @@ extension on TranslationsJa { 'downloads.syncRuleListCreated' => '同期ルールを作成しました', 'shaders.title' => 'シェーダー', 'shaders.noShaderDescription' => '映像補正なし', - 'shaders.nvscalerDescription' => 'よりシャープな映像のためのNVIDIA画像スケーリング', + 'shaders.nvscalerDescription' => 'NVIDIA画像スケーリングで映像をより鮮明にします', 'shaders.artcnnVariantNeutral' => 'ニュートラル', 'shaders.artcnnVariantDenoise' => 'ノイズ除去', 'shaders.artcnnVariantDenoiseSharpen' => 'ノイズ除去 + シャープ', @@ -3264,27 +3272,27 @@ extension on TranslationsJa { 'shaders.shaderImported' => 'シェーダーをインポートしました', 'shaders.shaderImportFailed' => 'シェーダーのインポートに失敗しました', 'shaders.deleteShader' => 'シェーダーを削除', - 'shaders.deleteShaderConfirm' => ({required Object name}) => '"${name}"を削除しますか?', + 'shaders.deleteShaderConfirm' => ({required Object name}) => '「${name}」を削除しますか?', 'companionRemote.title' => 'コンパニオンリモート', 'companionRemote.connectedTo' => ({required Object name}) => '${name}に接続中', 'companionRemote.unknownDevice' => '不明なデバイス', - 'companionRemote.session.startingServer' => 'リモートサーバーを起動中...', + 'companionRemote.session.startingServer' => 'リモートサーバーを起動中…', 'companionRemote.session.hostAddress' => 'ホストアドレス', 'companionRemote.session.connected' => '接続済み', 'companionRemote.session.serverRunning' => 'リモートサーバー稼働中', - 'companionRemote.session.serverStopped' => 'リモートサーバー停止中', + 'companionRemote.session.serverStopped' => 'リモートサーバー停止', 'companionRemote.session.serverRunningDescription' => 'ネットワーク上のモバイルデバイスがこのアプリに接続できます', 'companionRemote.session.serverStoppedDescription' => 'モバイルデバイスの接続を許可するにはサーバーを起動してください', 'companionRemote.session.usePhoneToControl' => 'モバイルデバイスでこのアプリを操作できます', 'companionRemote.session.startServer' => 'サーバーを起動', 'companionRemote.session.stopServer' => 'サーバーを停止', 'companionRemote.session.minimize' => '最小化', - 'companionRemote.pairing.discoveryDescription' => '同じPlexアカウントのPlezyデバイスがここに表示されます', + 'companionRemote.pairing.discoveryDescription' => '同じPlexアカウントを使用しているPlezyデバイスがここに表示されます', 'companionRemote.pairing.hostAddressHint' => '192.168.1.100:48632', - 'companionRemote.pairing.connecting' => '接続中...', - 'companionRemote.pairing.searchingForDevices' => 'デバイスを検索中...', + 'companionRemote.pairing.connecting' => '接続中…', + 'companionRemote.pairing.searchingForDevices' => 'デバイスを検索中…', 'companionRemote.pairing.noDevicesFound' => 'ネットワーク上にデバイスが見つかりません', - 'companionRemote.pairing.noDevicesHint' => 'デスクトップでPlezyを開き、同じWiFiを使用してください', + 'companionRemote.pairing.noDevicesHint' => 'デスクトップでPlezyを開き、同じWi-Fiネットワークに接続してください', 'companionRemote.pairing.availableDevices' => '利用可能なデバイス', 'companionRemote.pairing.manualConnection' => '手動接続', 'companionRemote.pairing.cryptoInitFailed' => '安全な接続を開始できませんでした。先にPlexにサインインしてください。', @@ -3294,11 +3302,11 @@ extension on TranslationsJa { 'companionRemote.pairing.sessionNotFound' => 'デバイスが見つかりません。ホストでPlezyが実行中か確認してください。', 'companionRemote.pairing.authFailed' => '認証に失敗しました。両方のデバイスで同じPlexアカウントが必要です。', 'companionRemote.pairing.failedToConnect' => ({required Object error}) => '接続に失敗しました: ${error}', - 'companionRemote.remote.disconnectConfirm' => 'リモートセッションから切断しますか?', - 'companionRemote.remote.reconnecting' => '再接続中...', + 'companionRemote.remote.disconnectConfirm' => 'リモートセッションを切断しますか?', + 'companionRemote.remote.reconnecting' => '再接続中…', 'companionRemote.remote.attemptOf' => ({required Object current}) => '試行 ${current}/5', 'companionRemote.remote.retryNow' => '今すぐ再試行', - 'companionRemote.remote.tabRemote' => 'リモート', + 'companionRemote.remote.tabRemote' => 'リモコン', 'companionRemote.remote.tabPlay' => '再生', 'companionRemote.remote.tabMore' => 'その他', 'companionRemote.remote.menu' => 'メニュー', @@ -3320,7 +3328,7 @@ extension on TranslationsJa { 'companionRemote.remote.fullscreen' => 'フルスクリーン', 'companionRemote.remote.subtitles' => '字幕', 'companionRemote.remote.audio' => '音声', - 'companionRemote.remote.searchHint' => 'デスクトップで検索...', + 'companionRemote.remote.searchHint' => 'デスクトップで検索…', 'companionRemote.errors.noNetworkInterface' => 'ネットワークインターフェースが見つかりません', 'companionRemote.errors.authenticationFailed' => '認証に失敗しました', 'companionRemote.errors.serverStartFailed' => ({required Object error}) => 'リモートサーバーを起動できませんでした: ${error}', @@ -3359,7 +3367,7 @@ extension on TranslationsJa { 'performanceOverlay.hwFormat' => 'HW 形式', 'performanceOverlay.matrix' => 'マトリクス', 'performanceOverlay.primaries' => 'プライマリ', - 'performanceOverlay.transfer' => '転送', + 'performanceOverlay.transfer' => '伝達特性', 'performanceOverlay.renderFps' => '描画 FPS', 'performanceOverlay.displayFps' => '表示 FPS', 'performanceOverlay.avSync' => 'A/V 同期', @@ -3382,7 +3390,7 @@ extension on TranslationsJa { 'externalPlayer.useExternalPlayerDescription' => '動画を別のアプリで開きます', 'externalPlayer.selectPlayer' => 'プレーヤーを選択', 'externalPlayer.customPlayers' => 'カスタムプレーヤー', - 'externalPlayer.systemDefault' => 'システムデフォルト', + 'externalPlayer.systemDefault' => 'システム既定', 'externalPlayer.addCustomPlayer' => 'カスタムプレーヤーを追加', 'externalPlayer.playerName' => 'プレーヤー名', 'externalPlayer.playerNameHint' => 'マイプレーヤー', @@ -3393,7 +3401,7 @@ extension on TranslationsJa { 'externalPlayer.launchFailed' => '外部プレーヤーの起動に失敗しました', 'externalPlayer.appNotInstalled' => ({required Object name}) => '${name}がインストールされていません', 'externalPlayer.playInExternalPlayer' => '外部プレーヤーで再生', - 'metadataEdit.editMetadata' => '編集...', + 'metadataEdit.editMetadata' => '編集…', 'metadataEdit.screenTitle' => 'メタデータを編集', 'metadataEdit.basicInfo' => '基本情報', 'metadataEdit.artwork' => 'アートワーク', @@ -3434,14 +3442,14 @@ extension on TranslationsJa { 'metadataEdit.newestFirst' => '新しい順', 'metadataEdit.keep' => '保持', 'metadataEdit.allEpisodes' => 'すべてのエピソード', - 'metadataEdit.latestEpisodes' => ({required Object count}) => '最新${count}エピソード', + 'metadataEdit.latestEpisodes' => ({required Object count}) => '最新の${count}話', 'metadataEdit.latestEpisode' => '最新エピソード', 'metadataEdit.episodesAddedPastDays' => ({required Object count}) => '過去${count}日間に追加されたエピソード', 'metadataEdit.deleteAfterPlaying' => '再生後にエピソードを削除', 'metadataEdit.never' => 'しない', 'metadataEdit.afterADay' => '1日後', 'metadataEdit.afterAWeek' => '1週間後', - 'metadataEdit.afterAMonth' => '1ヶ月後', + 'metadataEdit.afterAMonth' => '1か月後', 'metadataEdit.onNextRefresh' => '次回更新時', 'metadataEdit.seasons' => 'シーズン', 'metadataEdit.show' => '表示', @@ -3469,14 +3477,14 @@ extension on TranslationsJa { 'metadataEdit.label' => 'ラベル', 'metadataEdit.style' => 'スタイル', 'metadataEdit.mood' => 'ムード', - 'matchScreen.match' => 'マッチ...', - 'matchScreen.fixMatch' => 'マッチを修正...', - 'matchScreen.unmatch' => 'マッチ解除', - 'matchScreen.unmatchConfirm' => 'この一致をクリアしますか?再一致するまでPlexでは未一致として扱われます。', - 'matchScreen.unmatchSuccess' => 'マッチを解除しました', - 'matchScreen.unmatchFailed' => 'マッチの解除に失敗しました', - 'matchScreen.matchApplied' => 'マッチを適用しました', - 'matchScreen.matchFailed' => 'マッチの適用に失敗しました', + 'matchScreen.match' => '照合…', + 'matchScreen.fixMatch' => '照合を修正…', + 'matchScreen.unmatch' => '照合を解除', + 'matchScreen.unmatchConfirm' => 'この照合を解除しますか?再照合するまで、Plexでは未照合として扱われます。', + 'matchScreen.unmatchSuccess' => '照合を解除しました', + 'matchScreen.unmatchFailed' => '照合を解除できませんでした', + 'matchScreen.matchApplied' => '照合結果を適用しました', + 'matchScreen.matchFailed' => '照合結果を適用できませんでした', 'matchScreen.titleHint' => 'タイトル', 'matchScreen.yearHint' => '年', 'matchScreen.search' => '検索', @@ -3486,13 +3494,13 @@ extension on TranslationsJa { 'serverTasks.noTasks' => '実行中のタスクはありません', 'trakt.title' => 'Trakt', 'trakt.connected' => '接続済み', - 'trakt.connectedAs' => ({required Object username}) => '@${username} として接続済み', - 'trakt.disconnectConfirm' => 'Trakt アカウントを切断しますか?', + 'trakt.connectedAs' => ({required Object username}) => '@${username}として接続済み', + 'trakt.disconnectConfirm' => 'Traktアカウントとの接続を解除しますか?', 'trakt.disconnectConfirmBody' => 'PlezyはTraktへのイベント送信を停止します。いつでも再接続できます。', 'trakt.scrobble' => 'リアルタイムのスクロブル', - 'trakt.scrobbleDescription' => '再生中に再生・一時停止・停止イベントを Trakt に送信します。', + 'trakt.scrobbleDescription' => '再生中に再生・一時停止・停止の各イベントをTraktに送信します。', 'trakt.watchedSync' => '視聴済みステータスを同期', - 'trakt.watchedSyncDescription' => 'Plezy で項目を視聴済みにすると、Trakt でも視聴済みになります。', + 'trakt.watchedSyncDescription' => 'Plezyで項目を視聴済みにすると、Traktでも視聴済みになります。', 'seerr.title' => 'Seerr', 'seerr.connectTitle' => 'Seerrに接続', 'seerr.serverUrl' => 'サーバー URL', @@ -3537,7 +3545,7 @@ extension on TranslationsJa { 'services.names.simkl' => 'Simkl', 'services.names.seerr' => 'Seerr', 'services.deviceCode.title' => ({required Object service}) => '${service} で Plezy を有効化', - 'services.deviceCode.body' => ({required Object url}) => '${url} にアクセスしてこのコードを入力:', + 'services.deviceCode.body' => ({required Object url}) => '${url}にアクセスして、このコードを入力してください。', 'services.deviceCode.openToActivate' => ({required Object service}) => '${service} を開いて有効化', 'services.deviceCode.copyCode' => 'アクティベーションコードをコピー', 'services.deviceCode.waitingForAuthorization' => '認証を待っています…', @@ -3563,8 +3571,8 @@ extension on TranslationsJa { 'addServer.serverUrls' => 'サーバーURL', 'addServer.serverUrlsHelper' => '複数のURLをカンマ区切りで入力できます。', 'addServer.findServer' => 'サーバーを検索', - 'addServer.searchingLocalServers' => 'ローカル Jellyfin サーバーを検索中...', - 'addServer.localServers' => 'ローカル Jellyfin サーバー', + 'addServer.searchingLocalServers' => 'ローカルのJellyfinサーバーを検索中…', + 'addServer.localServers' => 'ローカルのJellyfinサーバー', 'addServer.username' => 'ユーザー名', 'addServer.password' => 'パスワード', 'addServer.signIn' => 'サインイン', @@ -3584,9 +3592,9 @@ extension on TranslationsJa { 'addServer.signInWithPlexCardSubtitleScoped' => 'Plexアカウントを承認します。Homeユーザーはプロフィールになります。', 'addServer.connectToJellyfinCard' => 'Jellyfinに接続', 'addServer.connectToJellyfinCardSubtitle' => 'サーバーURL、ユーザー名、パスワードを入力してください。', - 'addServer.connectToJellyfinCardSubtitleScoped' => ({required Object name}) => 'Jellyfinサーバーにサインインします。${name}に紐付けられます。', - 'addServer.borrowFromAnotherProfile' => '別のプロファイルから借りる', - 'addServer.borrowFromAnotherProfileSubtitle' => '別のプロフィールの接続を再利用します。PIN保護されたプロフィールにはPINが必要です。', + 'addServer.connectToJellyfinCardSubtitleScoped' => ({required Object name}) => 'Jellyfinサーバーにサインインします。${name}にひも付けられます。', + 'addServer.borrowFromAnotherProfile' => '別のプロフィールの接続を利用', + 'addServer.borrowFromAnotherProfileSubtitle' => '別のプロフィールの接続を再利用します。PINで保護されたプロフィールにはPINが必要です。', _ => null, }; } diff --git a/lib/i18n/strings_ko.g.dart b/lib/i18n/strings_ko.g.dart index c308e656..48690ee6 100644 --- a/lib/i18n/strings_ko.g.dart +++ b/lib/i18n/strings_ko.g.dart @@ -108,10 +108,10 @@ class _Translations$auth$ko extends Translations$auth$en { // Translations @override String get signInWithPlex => 'Plex 계정으로 로그인'; - @override String get showQRCode => 'QR 코드'; + @override String get showQRCode => 'QR 코드 표시'; @override String get authenticate => '인증'; @override String get authenticationTimeout => '인증 시간이 초과되었습니다. 다시 시도해 주세요.'; - @override String get scanQRToSignIn => 'QR 코드를 스캔하여 로그인'; + @override String get scanQRToSignIn => '로그인하려면 이 QR 코드를 스캔하세요'; @override String get waitingForAuth => '인증 대기 중...\n브라우저에서 로그인하세요.'; @override String get useBrowser => '브라우저 사용'; @override String get or => '또는'; @@ -121,7 +121,7 @@ class _Translations$auth$ko extends Translations$auth$en { @override String get quickConnectWaiting => '승인 대기 중…'; @override String get quickConnectCancel => '취소'; @override String get quickConnectExpired => 'Quick Connect가 만료되었습니다. 다시 시도하세요.'; - @override String get localDataRecoveryRequired => 'Plezy could not safely recover local sign-in and pending playback data. Please sign in again.'; + @override String get localDataRecoveryRequired => 'Plezy에서 로컬 로그인 정보와 대기 중인 재생 데이터를 안전하게 복구하지 못했습니다. 다시 로그인해 주세요.'; } // Path: common @@ -137,7 +137,7 @@ class _Translations$common$ko extends Translations$common$en { @override String get clear => '지우기'; @override String get reset => '초기화'; @override String get later => '나중에'; - @override String get submit => '보내기'; + @override String get submit => '제출'; @override String get confirm => '확인'; @override String get retry => '재시도'; @override String get logout => '로그아웃'; @@ -162,7 +162,7 @@ class _Translations$common$ko extends Translations$common$en { @override String get settings => '설정'; @override String get mute => '음소거'; @override String get ok => '확인'; - @override String get off => '끔'; + @override String get off => '꺼짐'; @override String seasonNumber({required Object number}) => '시즌 ${number}'; @override String episodeNumberTitle({required Object number, required Object title}) => '${number}화 - ${title}'; @override String chapterNumber({required Object number}) => '챕터 ${number}'; @@ -173,8 +173,8 @@ class _Translations$common$ko extends Translations$common$en { @override String get connectingToServers => '서버 연결 중...'; @override String get startingOfflineMode => '오프라인 모드 시작 중...'; @override String get loading => '로딩 중...'; - @override String get fullscreen => '전체화면'; - @override String get exitFullscreen => '전체화면 종료'; + @override String get fullscreen => '전체 화면'; + @override String get exitFullscreen => '전체 화면 종료'; @override String get pressBackAgainToExit => '한 번 더 누르면 종료됩니다'; } @@ -199,8 +199,8 @@ class _Translations$update$ko extends Translations$update$en { final TranslationsKo _root; // ignore: unused_field // Translations - @override String get available => '사용 가능한 업데이트'; - @override String versionAvailable({required Object version}) => '버전 ${version} 출시됨'; + @override String get available => '업데이트 있음'; + @override String versionAvailable({required Object version}) => '${version} 버전을 사용할 수 있습니다'; @override String currentVersion({required Object version}) => '현재 버전: ${version}'; @override String get skipVersion => '이 버전 건너뛰기'; @override String get viewRelease => '릴리스 정보 보기'; @@ -220,9 +220,9 @@ class _Translations$settings$ko extends Translations$settings$en { @override String get supportDeveloperDescription => 'Liberapay로 후원하여 개발 지원'; @override String get language => '언어'; @override String get theme => '테마'; - @override String get appearance => '외관'; + @override String get appearance => '디자인'; @override String get videoPlayback => '비디오 재생'; - @override String get videoPlaybackDescription => '재생 동작 구성'; + @override String get videoPlaybackDescription => '재생 동작 설정'; @override String get advanced => '고급'; @override String get episodePosterMode => '에피소드 포스터 스타일'; @override String get seriesPoster => '시리즈 포스터'; @@ -234,13 +234,15 @@ class _Translations$settings$ko extends Translations$settings$en { @override String get secondsShort => '초'; @override String get minutesShort => '분'; @override String durationHint({required Object min, required Object max}) => '기간 입력 (${min}-${max})'; - @override String get systemTheme => '시스템 설정'; - @override String get lightTheme => '라이트 모드'; - @override String get darkTheme => '다크 모드'; + @override String get systemTheme => '시스템'; + @override String get lightTheme => '라이트'; + @override String get darkTheme => '다크'; @override String get oledTheme => 'OLED'; @override String get libraryDensity => '라이브러리 표시 밀도'; - @override String get compact => '좁게'; - @override String get comfortable => '넓게'; + @override String get compact => '조밀하게'; + @override String get comfortable => '여유롭게'; + @override String get tvCornerSpotlightBackdrop => '모서리 스포트라이트 배경'; + @override String get tvCornerSpotlightBackdropDescription => '화면 전체를 채우는 대신 오른쪽 상단에 스포트라이트 아트워크를 표시합니다'; @override String get viewMode => '보기 모드'; @override String get gridView => '그리드 보기'; @override String get listView => '목록 보기'; @@ -289,28 +291,28 @@ class _Translations$settings$ko extends Translations$settings$en { @override String get defaultQualityTitle => '기본 화질'; @override String get musicQualityTitle => '음악 음질'; @override String get subtitleStyling => '자막 스타일'; - @override String get subtitleStylingDescription => '자막의 외형을 사용자 설정'; + @override String get subtitleStylingDescription => '자막 모양을 사용자 지정합니다'; @override String get smallSkipDuration => '짧은 건너뛰기 시간'; @override String get largeSkipDuration => '긴 건너뛰기 시간'; @override String get rewindOnResume => '재개 시 되감기'; @override String secondsUnit({required Object seconds}) => '${seconds}초'; @override String get defaultSleepTimer => '기본 취침 타이머'; @override String minutesUnit({required Object minutes}) => '${minutes}분'; - @override String get rememberTrackSelections => '에피소드/영화별 트랙 선택 기억'; - @override String get rememberTrackSelectionsDescription => '제목별 오디오 및 자막 선택 기억'; + @override String get rememberTrackSelections => '시리즈/영화별 트랙 선택 기억'; + @override String get rememberTrackSelectionsDescription => '작품별 오디오 및 자막 선택 기억'; @override String get showChapterMarkersOnTimeline => '탐색 막대에 챕터 마커 표시'; @override String get showChapterMarkersOnTimelineDescription => '챕터 경계에서 탐색 막대 구분'; - @override String get clickVideoTogglesPlayback => '비디오를 클릭하여 재생/일시정지를 전환하세요.'; - @override String get clickVideoTogglesPlaybackDescription => '컨트롤 표시 대신 동영상 클릭으로 재생/일시정지합니다.'; + @override String get clickVideoTogglesPlayback => '동영상 클릭으로 재생/일시정지 전환'; + @override String get clickVideoTogglesPlaybackDescription => '컨트롤을 표시하는 대신 동영상을 클릭하여 재생하거나 일시정지합니다.'; @override String get videoPlayerControls => '비디오 플레이어 컨트롤'; @override String get keyboardShortcuts => '키보드 단축키'; - @override String get keyboardShortcutsDescription => '사용자 정의 키보드 단축키'; + @override String get keyboardShortcutsDescription => '키보드 단축키를 사용자 지정합니다'; @override String get videoPlayerNavigation => '비디오 플레이어 탐색'; - @override String get videoPlayerNavigationDescription => '방향 키를 사용하여 비디오 플레이어 컨트롤 탐색'; + @override String get videoPlayerNavigationDescription => '방향 키로 비디오 플레이어 컨트롤을 탐색합니다'; @override String get watchTogetherRelay => '함께 보기 릴레이'; @override String get watchTogetherRelayDescription => '사용자 지정 릴레이를 설정합니다. 모두 같은 서버를 사용해야 합니다.'; @override String get watchTogetherRelayHint => 'https://my-relay.example.com'; - @override String get watchTogetherRelayInvalid => 'Enter a valid HTTP or HTTPS relay base URL.'; + @override String get watchTogetherRelayInvalid => '올바른 HTTP 또는 HTTPS 릴레이 기본 URL을 입력하세요.'; @override String get crashReporting => '충돌 보고'; @override String get crashReportingDescription => '앱 개선을 위해 충돌 보고서 전송'; @override String get debugLogging => '디버그 로깅'; @@ -335,7 +337,7 @@ class _Translations$settings$ko extends Translations$settings$en { @override String get importSettingsNoUser => '설정을 가져오기 전에 로그인하세요'; @override String get shortcutsReset => '단축키가 기본값으로 재설정되었습니다'; @override String get about => '정보'; - @override String get aboutDescription => '응용 프로그램 정보 및 라이선스'; + @override String get aboutDescription => '앱 정보 및 라이선스'; @override String get updates => '업데이트'; @override String get updateAvailable => '사용 가능한 업데이트 있음'; @override String get checkForUpdates => '업데이트 확인'; @@ -343,9 +345,9 @@ class _Translations$settings$ko extends Translations$settings$en { @override String get autoCheckUpdatesOnStartupDescription => '실행 시 업데이트가 있으면 알림'; @override String get validationErrorEnterNumber => '유효한 숫자를 입력하세요'; @override String validationErrorDuration({required Object min, required Object max, required Object unit}) => '기간은 ${min}과 ${max} ${unit} 사이여야 합니다'; - @override String shortcutAlreadyAssigned({required Object action}) => '단축키가 이미 ${action}에 할당 되었습니다'; - @override String shortcutUpdated({required Object action}) => '단축키가 ${action}에 대해 업데이트 되었습니다'; - @override String get saveFailed => 'Could not save changes. Try again.'; + @override String shortcutAlreadyAssigned({required Object action}) => '단축키가 이미 ${action}에 할당되었습니다'; + @override String shortcutUpdated({required Object action}) => '${action} 단축키가 업데이트되었습니다'; + @override String get saveFailed => '변경 사항을 저장하지 못했습니다. 다시 시도하세요.'; @override String get autoSkip => '자동 건너뛰기'; @override String get autoSkipIntro => '자동으로 오프닝 건너뛰기'; @override String get autoSkipIntroDescription => '몇 초 후 오프닝을 자동으로 건너뛰기'; @@ -354,7 +356,7 @@ class _Translations$settings$ko extends Translations$settings$en { @override String get forceSkipMarkerFallback => '대체 마커 강제 사용'; @override String get forceSkipMarkerFallbackDescription => 'Plex에 마커가 있어도 챕터 제목 패턴 사용'; @override String get autoSkipDelay => '자동 건너뛰기 지연'; - @override String autoSkipDelayDescription({required Object seconds}) => '자동 건너뛰기 전 ${seconds} 초 대기'; + @override String autoSkipDelayDescription({required Object seconds}) => '자동으로 건너뛰기 전 ${seconds}초 대기'; @override String get introPattern => '인트로 마커 패턴'; @override String get introPatternDescription => '챕터 제목에서 인트로 마커를 인식하는 정규식 패턴'; @override String get creditsPattern => '크레딧 마커 패턴'; @@ -368,17 +370,17 @@ class _Translations$settings$ko extends Translations$settings$en { @override String get selectFolder => '폴더 선택'; @override String get resetToDefault => '기본값으로 재설정'; @override String currentPath({required Object path}) => '현재: ${path}'; - @override String get downloadLocationChanged => '다운로드 위치가 변경 되었습니다'; - @override String get downloadLocationReset => '다운로드 위치가 기본값으로 재설정 되었습니다'; + @override String get downloadLocationChanged => '다운로드 위치가 변경되었습니다'; + @override String get downloadLocationReset => '다운로드 위치가 기본값으로 재설정되었습니다'; @override String get downloadLocationInvalid => '선택한 폴더에 쓰기 권한이 없습니다'; @override String get downloadLocationPickerUnavailable => '이 기기에서는 폴더를 선택할 수 없습니다'; - @override String get downloadOnWifiOnly => 'WiFi 연결 시에만 다운로드'; - @override String get downloadOnWifiOnlyDescription => '셀룰러 데이터 사용 시 다운로드 불가'; - @override String get autoRemoveWatchedDownloads => '시청한 다운로드 자동 삭제'; - @override String get autoRemoveWatchedDownloadsDescription => '시청한 다운로드 자동 삭제'; - @override String get cellularDownloadBlocked => '셀룰러에서는 다운로드가 차단됩니다. WiFi를 사용하거나 설정을 변경하세요.'; + @override String get downloadOnWifiOnly => 'Wi-Fi 연결 시에만 다운로드'; + @override String get downloadOnWifiOnlyDescription => '셀룰러 데이터 사용 중에는 다운로드하지 않습니다'; + @override String get autoRemoveWatchedDownloads => '시청한 다운로드 항목 자동 삭제'; + @override String get autoRemoveWatchedDownloadsDescription => '시청한 다운로드 항목을 자동으로 삭제합니다'; + @override String get cellularDownloadBlocked => '셀룰러에서는 다운로드가 차단됩니다. Wi-Fi를 사용하거나 설정을 변경하세요.'; @override String get maxVolume => '최대 볼륨'; - @override String get maxVolumeDescription => '조용한 미디어를 위해 100% 이상의 볼륨 허용'; + @override String get maxVolumeDescription => '음량이 작은 콘텐츠를 위해 100% 이상의 볼륨을 허용합니다'; @override String maxVolumePercent({required Object percent}) => '${percent}%'; @override String get discordRichPresence => 'Discord Rich Presence'; @override String get discordRichPresenceDescription => 'Discord에서 시청 중인 콘텐츠 표시'; @@ -388,7 +390,7 @@ class _Translations$settings$ko extends Translations$settings$en { @override String get companionRemoteServer => '컴패니언 리모트 서버'; @override String get companionRemoteServerDescription => '네트워크의 모바일 기기가 이 앱을 제어할 수 있도록 허용'; @override String get autoPip => '자동 PIP 모드'; - @override String get autoPipDescription => '재생 중 앱을 떠나면 화면 속 화면으로 전환'; + @override String get autoPipDescription => '재생 중 앱을 떠나면 자동으로 화면 속 화면 모드로 전환합니다'; @override String get matchContentFrameRate => '콘텐츠 프레임 레이트 맞춤'; @override String get matchContentFrameRateDescription => '디스플레이 새로 고침 빈도를 동영상 콘텐츠에 맞춤'; @override String get matchRefreshRate => '주사율 맞춤'; @@ -400,7 +402,7 @@ class _Translations$settings$ko extends Translations$settings$en { @override String get tunneledPlaybackDescription => '비디오 터널링을 사용합니다. HDR 재생 시 검은 화면이 보이면 비활성화하세요.'; @override String get audioPassthrough => '오디오 패스스루'; @override String get audioPassthroughDescription => 'Dolby/DTS 오디오를 재인코딩 없이 리시버나 TV로 전송하여 서라운드 사운드를 유지합니다. 소리가 나지 않으면 비활성화하세요.'; - @override String get audioPassthroughDescriptionAppleTv => 'Dolby Digital Plus(Atmos 포함)를 비트스트림으로 시스템에 전달합니다. DTS와 TrueHD는 계속 멀티채널 PCM으로 재생됩니다. 탐색 시 짧은 소리 끊김이 발생할 수 있습니다.'; + @override String get audioPassthroughDescriptionAppleTv => 'Dolby Digital Plus(Atmos 포함)에 Apple의 기본 Dolby 디코더를 사용합니다. DTS와 TrueHD는 계속 멀티채널 PCM으로 재생됩니다. 소리가 나지 않으면 비활성화하세요.'; @override String get audioDownmix => '스테레오로 다운믹스'; @override String get audioDownmixDescription => '서라운드 오디오를 스테레오 스피커나 헤드폰용 2채널로 믹스합니다'; @override String get downmixCenterBoost => '센터 채널 부스트'; @@ -438,10 +440,10 @@ class _Translations$settings$ko extends Translations$settings$en { @override String get requireProfileSelectionOnOpenDescription => '앱을 열 때마다 프로필 선택 화면을 표시합니다'; @override String get forceTvMode => 'TV 모드 강제 사용'; @override String get forceTvModeDescription => 'TV 레이아웃을 강제합니다. 자동 감지되지 않는 기기용입니다. 재시작이 필요합니다.'; - @override String get startInFullscreen => '전체화면으로 시작'; - @override String get startInFullscreenDescription => '실행 시 Plezy를 전체화면 모드로 엽니다'; - @override String get exitFullscreenOnPlayerClose => '플레이어 닫을 때 전체화면 종료'; - @override String get exitFullscreenOnPlayerCloseDescription => '비디오 플레이어를 닫을 때 자동으로 전체화면을 종료합니다'; + @override String get startInFullscreen => '전체 화면으로 시작'; + @override String get startInFullscreenDescription => '실행 시 Plezy를 전체 화면 모드로 엽니다'; + @override String get exitFullscreenOnPlayerClose => '플레이어를 닫을 때 전체 화면 종료'; + @override String get exitFullscreenOnPlayerCloseDescription => '비디오 플레이어를 닫을 때 자동으로 전체 화면을 종료합니다'; @override String get autoHidePerformanceOverlay => '성능 오버레이 자동 숨기기'; @override String get autoHidePerformanceOverlayDescription => '재생 컨트롤과 함께 성능 오버레이를 페이드 처리'; @override String get showNavBarLabels => '내비게이션 바 라벨 표시'; @@ -510,8 +512,8 @@ class _Translations$fileInfo$ko extends Translations$fileInfo$en { @override String get bitDepth => '비트 심도'; @override String get colorSpace => '색 공간'; @override String get colorRange => '색 범위'; - @override String get colorPrimaries => '색상 원색'; - @override String get chromaSubsampling => '채도 서브샘플링'; + @override String get colorPrimaries => '색 원색'; + @override String get chromaSubsampling => '색차 서브샘플링'; @override String get channels => '채널'; @override String get subtitles => '자막'; @override String get overallBitrate => '전체 비트레이트'; @@ -531,12 +533,12 @@ class _Translations$mediaMenu$ko extends Translations$mediaMenu$en { // Translations @override String get markAsWatched => '시청 완료로 표시'; - @override String get markAsUnwatched => '시청 안 함으로 표시'; + @override String get markAsUnwatched => '미시청으로 표시'; @override String get removeFromContinueWatching => '계속 보기에서 제거'; @override String get viewDetails => '상세 정보 보기'; @override String get goToSeries => '시리즈로 이동'; @override String get shufflePlay => '무작위 재생'; - @override String get shuffleNotAvailableOffline => '오프라인에서는 셔플을 사용할 수 없습니다'; + @override String get shuffleNotAvailableOffline => '오프라인에서는 무작위 재생을 사용할 수 없습니다'; @override String get fileInfo => '파일 정보'; @override String get deleteFromServer => '서버에서 삭제'; @override String get confirmDelete => '이 미디어와 해당 파일을 서버에서 삭제할까요?'; @@ -576,9 +578,9 @@ class _Translations$accessibility$ko extends Translations$accessibility$en { @override String mediaCardEpisode({required Object title, required Object episodeInfo}) => '${title}, ${episodeInfo}'; @override String mediaCardSeason({required Object title, required Object seasonInfo}) => '${title}, ${seasonInfo}'; @override String get mediaCardWatched => '시청 완료'; - @override String mediaCardPartiallyWatched({required Object percent}) => '${percent} 퍼센트 시청 완료'; + @override String mediaCardPartiallyWatched({required Object percent}) => '${percent}% 시청 완료'; @override String get mediaCardUnwatched => '미시청'; - @override String get tapToPlay => '터치 하여 재생'; + @override String get tapToPlay => '탭하여 재생'; @override String get decrease => '낮추기'; @override String get increase => '높이기'; @override String decreaseValue({required Object label}) => '${label} 낮추기'; @@ -605,7 +607,7 @@ class _Translations$tooltips$ko extends Translations$tooltips$en { @override String get shufflePlay => '무작위 재생'; @override String get playTrailer => '예고편 재생'; @override String get markAsWatched => '시청 완료로 표시'; - @override String get markAsUnwatched => '시청 안 함으로 표시'; + @override String get markAsUnwatched => '미시청으로 표시'; } // Path: audioTracks @@ -639,7 +641,7 @@ class _Translations$videoControls$ko extends Translations$videoControls$en { @override String get lockRotation => '회전 잠금'; @override String get unlockRotation => '회전 잠금 해제'; @override String get timerActive => '타이머 활성화됨'; - @override String playbackWillPauseIn({required Object duration}) => '재생이 ${duration} 후에 일시 중지 됩니다'; + @override String playbackWillPauseIn({required Object duration}) => '${duration} 후 재생이 일시정지됩니다'; @override String get sleepTimerEndOfVideo => '현재 비디오의 끝'; @override String get sleepTimerStopAtHeader => '정지 시점'; @override String get sleepTimerDurationHeader => '타이머'; @@ -651,8 +653,10 @@ class _Translations$videoControls$ko extends Translations$videoControls$en { @override String get playNext => '다음 재생'; @override String get playButton => '재생'; @override String get pauseButton => '일시정지'; - @override String seekBackwardButton({required Object seconds}) => '${seconds} 초 뒤로'; - @override String seekForwardButton({required Object seconds}) => '${seconds} 초 앞으로'; + @override String get showPlaybackControls => '재생 컨트롤 표시'; + @override String get hidePlaybackControls => '재생 컨트롤 숨기기'; + @override String seekBackwardButton({required Object seconds}) => '${seconds}초 뒤로 이동'; + @override String seekForwardButton({required Object seconds}) => '${seconds}초 앞으로 이동'; @override String get previousButton => '이전 에피소드'; @override String get nextButton => '다음 에피소드'; @override String get previousChapterButton => '이전 챕터'; @@ -672,8 +676,8 @@ class _Translations$videoControls$ko extends Translations$videoControls$en { @override String get pipButton => '픽처 인 픽처 모드'; @override String get aspectRatioButton => '화면비율'; @override String get ambientLighting => '주변 조명'; - @override String get fullscreenButton => '전체화면'; - @override String get exitFullscreenButton => '전체화면 종료'; + @override String get fullscreenButton => '전체 화면'; + @override String get exitFullscreenButton => '전체 화면 종료'; @override String get alwaysOnTopButton => '창 최상위 고정'; @override String get rotationLockButton => '회전 잠금'; @override String get lockScreen => '화면 잠금'; @@ -711,7 +715,7 @@ class _Translations$messages$ko extends Translations$messages$en { // Translations @override String get markedAsWatched => '시청 완료로 표시됨'; - @override String get markedAsUnwatched => '시청 안 함으로 표시됨'; + @override String get markedAsUnwatched => '미시청으로 표시됨'; @override String get markedAsWatchedOffline => '시청 완료로 표시됨 (연결 시 동기화됨)'; @override String get markedAsUnwatchedOffline => '미시청으로 표시됨 (연결 시 동기화됨)'; @override String autoRemovedWatchedDownload({required Object title}) => '자동 삭제됨: ${title}'; @@ -723,11 +727,11 @@ class _Translations$messages$ko extends Translations$messages$en { @override String get streamInterrupted => '스트림이 중단되었습니다. 재생을 누르거나 탐색하여 다시 시도하세요.'; @override String get liveStreamInterrupted => '라이브 스트림이 중단되었습니다. 재생을 눌러 다시 시도하세요.'; @override String get fileInfoNotAvailable => '파일 정보가 없습니다'; - @override String get playbackAuthenticationRequired => 'Sign in to the media server again to play this item.'; - @override String get playbackServerUnavailable => 'The media server is unavailable. Try again later.'; - @override String get playbackDataInvalid => 'The server returned invalid playback information.'; - @override String get playbackCancelled => 'Playback was cancelled.'; - @override String get playbackFailed => 'Playback could not be started.'; + @override String get playbackAuthenticationRequired => '이 항목을 재생하려면 미디어 서버에 다시 로그인하세요.'; + @override String get playbackServerUnavailable => '미디어 서버를 사용할 수 없습니다. 나중에 다시 시도하세요.'; + @override String get playbackDataInvalid => '서버에서 잘못된 재생 정보를 반환했습니다.'; + @override String get playbackCancelled => '재생이 취소되었습니다.'; + @override String get playbackFailed => '재생을 시작할 수 없습니다.'; @override String errorLoadingFileInfo({required Object error}) => '파일 정보 로딩 중 오류: ${error}'; @override String get errorLoadingSeries => '시리즈 로딩 중 오류'; @override String get musicNotSupported => '음악 재생 미지원'; @@ -735,8 +739,8 @@ class _Translations$messages$ko extends Translations$messages$en { @override String get noProfilesAvailable => '사용 가능한 프로필이 없습니다'; @override String get contactAdminForProfiles => '프로필을 추가하려면 서버 관리자에게 문의하세요'; @override String get unableToDetermineLibrarySection => '이 항목의 라이브러리 섹션을 확인할 수 없습니다'; - @override String get logsCleared => '로그가 삭제 되었습니다'; - @override String get logsCopied => '로그가 클립보드에 복사 되었습니다'; + @override String get logsCleared => '로그가 삭제되었습니다'; + @override String get logsCopied => '로그가 클립보드에 복사되었습니다'; @override String get noLogsAvailable => '사용 가능한 로그가 없습니다'; @override String libraryScanning({required Object title}) => '"${title}"을(를) 스캔 중입니다...'; @override String libraryScanStarted({required Object title}) => '"${title}" 미디어 라이브러리 스캔 시작'; @@ -744,16 +748,16 @@ class _Translations$messages$ko extends Translations$messages$en { @override String metadataRefreshing({required Object title}) => '"${title}" 메타데이터 새로고침 중...'; @override String metadataRefreshStarted({required Object title}) => '"${title}" 메타데이터 새로고침 시작됨'; @override String metadataRefreshFailed({required Object error}) => '메타데이터 새로고침 실패: ${error}'; - @override String get logoutConfirm => '로그아웃 하시겠습니까?'; + @override String get logoutConfirm => '로그아웃하시겠습니까?'; @override String get noSeasonsFound => '시즌을 찾을 수 없음'; @override String get seasonsLoadFailed => '시즌을 불러오지 못했습니다'; @override String get noEpisodesFound => '시즌 1에서 에피소드를 찾을 수 없습니다'; @override String get noEpisodesFoundGeneral => '에피소드를 찾을 수 없습니다'; @override String get episodesLoadFailed => '에피소드를 불러오지 못했습니다'; @override String get noResultsFound => '결과를 찾을 수 없습니다'; - @override String sleepTimerSet({required Object label}) => '수면 타이머가 ${label}로 설정 되었습니다'; + @override String sleepTimerSet({required Object label}) => '취침 타이머가 ${label}(으)로 설정되었습니다'; @override String get noItemsAvailable => '사용 가능한 항목이 없습니다'; - @override String get failedToCreatePlayQueueNoItems => '재생 대기열 생성 실패 - 항목 없음'; + @override String get failedToCreatePlayQueueNoItems => '재생 대기열을 만들지 못했습니다 — 항목이 없습니다'; @override String failedPlayback({required Object action, required Object error}) => '${action}을(를) 수행할 수 없습니다: ${error}'; @override String get switchingToCompatiblePlayer => '호환되는 플레이어로 전환 중...'; @override String get serverLimitTitle => '재생 실패'; @@ -800,19 +804,19 @@ class _Translations$mpvConfig$ko extends Translations$mpvConfig$en { final TranslationsKo _root; // ignore: unused_field // Translations - @override String get title => 'mpv 설정'; + @override String get title => 'mpv.conf'; @override String get description => '고급 비디오 플레이어 설정'; - @override String get presets => '사전 설정'; - @override String get noPresets => '저장된 사전 설정이 없습니다'; + @override String get presets => '프리셋'; + @override String get noPresets => '저장된 프리셋이 없습니다'; @override String get saveAsPreset => '프리셋으로 저장...'; @override String get presetName => '프리셋 이름'; @override String get presetNameHint => '이 프리셋의 이름을 입력하세요'; - @override String get loadPreset => '로드'; + @override String get loadPreset => '불러오기'; @override String get deletePreset => '삭제'; - @override String get presetSaved => '프리셋이 저장 되었습니다'; - @override String get presetLoaded => '프리셋이 로드 되었습니다'; - @override String get presetDeleted => '프리셋이 삭제 되었습니다'; - @override String get confirmDeletePreset => '이 프리셋을 삭제 하시겠습니까?'; + @override String get presetSaved => '프리셋이 저장되었습니다'; + @override String get presetLoaded => '프리셋을 불러왔습니다'; + @override String get presetDeleted => '프리셋이 삭제되었습니다'; + @override String get confirmDeletePreset => '이 프리셋을 삭제하시겠습니까?'; @override String get configPlaceholder => 'gpu-api=vulkan\nhwdec=auto\n# comment'; } @@ -823,7 +827,7 @@ class _Translations$dialog$ko extends Translations$dialog$en { final TranslationsKo _root; // ignore: unused_field // Translations - @override String get confirmAction => '확인'; + @override String get confirmAction => '작업 확인'; } // Path: profiles @@ -878,7 +882,7 @@ class _Translations$profiles$ko extends Translations$profiles$en { @override String get borrowExplain => '다른 프로필의 연결을 빌립니다. PIN으로 보호된 프로필에는 PIN이 필요합니다.'; @override String get borrowEmpty => '아직 빌릴 것이 없습니다.'; @override String get borrowEmptySubtitle => '먼저 다른 프로필에 Plex 또는 Jellyfin을 연결하세요.'; - @override String get borrowLoadFailed => 'Available connections could not be loaded. Try again.'; + @override String get borrowLoadFailed => '사용 가능한 연결을 불러오지 못했습니다. 다시 시도하세요.'; @override String borrowFromProfile({required Object displayName}) => '${displayName}에서'; @override String get borrowConnectionBorrowed => '연결을 빌렸습니다.'; @override String get borrowFailed => '연결을 빌리지 못했습니다.'; @@ -906,8 +910,8 @@ class _Translations$connections$ko extends Translations$connections$en { @override String get addConnection => '연결 추가'; @override String get addConnectionSubtitleNoProfile => 'Plex로 로그인하거나 Jellyfin 서버에 연결'; @override String addConnectionSubtitleScoped({required Object displayName}) => '${displayName}에 추가: Plex, Jellyfin 또는 다른 프로필 연결'; - @override String sessionExpiredOne({required Object name}) => '${name} 의 세션이 만료되었습니다'; - @override String sessionExpiredMany({required Object count}) => '${count} 개의 서버에서 세션이 만료되었습니다'; + @override String sessionExpiredOne({required Object name}) => '${name}의 세션이 만료되었습니다'; + @override String sessionExpiredMany({required Object count}) => '${count}개 서버의 세션이 만료되었습니다'; @override String get signInAgain => '다시 로그인'; @override String get editJellyfinTitle => 'Jellyfin 연결 편집'; @override String editJellyfinIntro({required Object serverName}) => '${serverName}의 URL을 추가하거나 제거하세요. Plezy는 연결 가능한 URL 중 지연 시간이 가장 낮은 URL을 사용합니다.'; @@ -920,7 +924,7 @@ class _Translations$discover$ko extends Translations$discover$en { final TranslationsKo _root; // ignore: unused_field // Translations - @override String get title => '발견'; + @override String get title => '둘러보기'; @override String get noContentAvailable => '사용 가능한 콘텐츠가 없습니다'; @override String get addMediaToLibraries => '미디어 라이브러리에 미디어를 추가해 주세요'; @override String get continueWatching => '계속 시청'; @@ -993,15 +997,15 @@ class _Translations$libraries$ko extends Translations$libraries$en { @override String get resetFilters => '필터 초기화'; @override String get all => '전체'; @override String get clearAll => '모두 삭제'; - @override String scanLibraryConfirm({required Object title}) => '「${title}」를 스캔 하시겠습니까?'; - @override String analyzeLibraryConfirm({required Object title}) => '「${title}」를 분석 하시겠습니까?'; - @override String refreshMetadataConfirm({required Object title}) => '「${title}」의 메타데이터를 새로고침 하시겠습니까?'; + @override String scanLibraryConfirm({required Object title}) => '「${title}」을(를) 스캔하시겠습니까?'; + @override String analyzeLibraryConfirm({required Object title}) => '「${title}」을(를) 분석하시겠습니까?'; + @override String refreshMetadataConfirm({required Object title}) => '「${title}」의 메타데이터를 새로고침하시겠습니까?'; @override String emptyTrashConfirm({required Object title}) => '${title}의 휴지통을 비우시겠습니까?'; @override String get manageLibraries => '미디어 라이브러리 관리'; @override String get sort => '정렬'; @override String get sortBy => '정렬 기준'; @override String get filters => '필터'; - @override String get confirmActionMessage => '이 작업을 실행 하시겠습니까?'; + @override String get confirmActionMessage => '이 작업을 실행하시겠습니까?'; @override String get showLibrary => '미디어 라이브러리 표시'; @override String get hideLibrary => '미디어 라이브러리 숨기기'; @override String get libraryOptions => '미디어 라이브러리 옵션'; @@ -1028,7 +1032,7 @@ class _Translations$about$ko extends Translations$about$en { @override String get title => '소개'; @override String get openSourceLicenses => '오픈소스 라이선스'; @override String versionLabel({required Object version}) => '버전 ${version}'; - @override String get appDescription => '아름다운 Flutter용 Plex 및 Jellyfin 클라이언트'; + @override String get appDescription => 'Flutter로 만든 아름다운 Plex 및 Jellyfin 클라이언트'; @override String get viewLicensesDescription => '타사 라이브러리 라이선스 보기'; } @@ -1079,7 +1083,7 @@ class _Translations$licenses$ko extends Translations$licenses$en { @override String get relatedPackages => '관련 소프트웨어 패키지'; @override String get license => '라이선스'; @override String licenseNumber({required Object number}) => '라이선스 ${number}'; - @override String licensesCount({required Object count}) => '${count} 개의 라이선스'; + @override String licensesCount({required Object count}) => '${count}개의 라이선스'; } // Path: navigation @@ -1161,7 +1165,7 @@ class _Translations$liveTv$ko extends Translations$liveTv$en { @override String get favorites => '즐겨찾기'; @override String get reorderFavorites => '즐겨찾기 순서 변경'; @override String get favoritesLoadFailed => '즐겨찾기를 불러올 수 없습니다. 연결을 확인하고 다시 시도하세요.'; - @override String get favoritesUpdateFailed => 'Could not update favorites. Check your connection and try again.'; + @override String get favoritesUpdateFailed => '즐겨찾기를 업데이트할 수 없습니다. 연결을 확인하고 다시 시도하세요.'; @override String get joinSession => '진행 중인 세션 참여'; @override String watchFromStart({required Object minutes}) => '처음부터 시청 (${minutes}분 전 시작)'; @override String get watchLive => '실시간 시청'; @@ -1223,7 +1227,7 @@ class _Translations$collections$ko extends Translations$collections$en { @override String get errorAddingToCollection => '컬렉션에 추가 실패'; @override String get created => '컬렉션 생성됨'; @override String get removeFromCollection => '컬렉션에서 제거'; - @override String removeFromCollectionConfirm({required Object title}) => '${title}을/를 이 컬렉션에서 제거 하시겠습니까?'; + @override String removeFromCollectionConfirm({required Object title}) => '${title}을(를) 이 컬렉션에서 제거하시겠습니까?'; @override String get removedFromCollection => '컬렉션에서 제거됨'; @override String get removeFromCollectionFailed => '컬렉션에서 제거 실패'; @override String removeFromCollectionError({required Object error}) => '컬렉션에서 제거 중 오류 발생: ${error}'; @@ -1249,11 +1253,11 @@ class _Translations$playlists$ko extends Translations$playlists$en { @override String itemCount({required Object count}) => '${count}개 항목'; @override String get oneItem => '1개 항목'; @override String get emptyPlaylist => '이 재생 목록은 비어 있습니다'; - @override String get deleteConfirm => '재생 목록을 삭제 하시겠습니까?'; - @override String deleteMessage({required Object name}) => '"${name}"을(를) 삭제 하시겠습니까?'; - @override String get created => '재생 목록이 생성 되었습니다'; - @override String get deleted => '재생 목록이 삭제 되었습니다'; - @override String get itemAdded => '재생 목록에 추가 되었습니다'; + @override String get deleteConfirm => '재생 목록을 삭제하시겠습니까?'; + @override String deleteMessage({required Object name}) => '"${name}"을(를) 삭제하시겠습니까?'; + @override String get created => '재생 목록이 생성되었습니다'; + @override String get deleted => '재생 목록이 삭제되었습니다'; + @override String get itemAdded => '재생 목록에 추가되었습니다'; @override String get itemRemoved => '재생 목록에서 제거됨'; @override String get selectPlaylist => '재생 목록 선택'; @override String get searchPlaylists => '재생 목록 검색...'; @@ -1315,7 +1319,7 @@ class _Translations$watchTogether$ko extends Translations$watchTogether$en { @override String get controlModeQuestion => '누가 재생을 제어할 수 있나요?'; @override String get hostOnly => '호스트만'; @override String get anyone => '누구나'; - @override String get hostingSession => '세션 호스팅'; + @override String get hostingSession => '세션 호스팅 중'; @override String get inSession => '세션 중'; @override String get sessionCode => '세션 코드'; @override String get openSessionControls => '함께 보기 세션 제어 열기'; @@ -1327,18 +1331,18 @@ class _Translations$watchTogether$ko extends Translations$watchTogether$en { @override String get participants => '참가자'; @override String get host => '호스트'; @override String get hostBadge => '호스트'; - @override String get youAreHost => '당신은 호스트 입니다'; + @override String get youAreHost => '호스트입니다'; @override String get watchingWithOthers => '다른 사람과 함께 시청 중'; @override String get endSession => '세션 종료'; - @override String get leaveSession => '세션 탈퇴'; - @override String get endSessionQuestion => '세션을 종료 하시겠습니까?'; - @override String get leaveSessionQuestion => '세션을 탈퇴 하시겠습니까?'; - @override String get endSessionConfirm => '이 작업은 모든 참가자의 세션을 종료합니다.'; - @override String get leaveSessionConfirm => '당신은 세션에서 제거됩니다.'; - @override String get endSessionConfirmOverlay => '이것은 모든 참가자의 시청 세션을 종료합니다.'; - @override String get leaveSessionConfirmOverlay => '시청 세션 연결이 끊어집니다.'; + @override String get leaveSession => '세션 나가기'; + @override String get endSessionQuestion => '세션을 종료하시겠습니까?'; + @override String get leaveSessionQuestion => '세션에서 나가시겠습니까?'; + @override String get endSessionConfirm => '모든 참가자의 세션이 종료됩니다.'; + @override String get leaveSessionConfirm => '세션에서 나가게 됩니다.'; + @override String get endSessionConfirmOverlay => '모든 참가자의 함께 보기 세션이 종료됩니다.'; + @override String get leaveSessionConfirmOverlay => '함께 보기 세션의 연결이 끊어집니다.'; @override String get end => '종료'; - @override String get leave => '이탈'; + @override String get leave => '나가기'; @override String get syncing => '동기화 중...'; @override String get joinWatchSession => '시청 세션에 참여'; @override String get enterCodeHint => '5자리 코드 입력'; @@ -1349,23 +1353,23 @@ class _Translations$watchTogether$ko extends Translations$watchTogether$en { @override String get failedToCreate => '세션 생성 실패'; @override String get failedToJoin => '세션 참여 실패'; @override String get sessionCodeCopied => '세션 코드가 클립보드에 복사되었습니다'; - @override String get relayUnreachable => '릴레이 서버에 연결할 수 없습니다. ISP 차단으로 Watch Together가 작동하지 않을 수 있습니다.'; + @override String get relayUnreachable => '릴레이 서버에 연결할 수 없습니다. ISP 차단으로 함께 보기를 사용하지 못할 수 있습니다.'; @override String get reconnectingToHost => '호스트에 재연결 중...'; @override String get currentPlayback => '현재 재생'; @override String get joinCurrentPlayback => '현재 재생 참여'; - @override String get joinCurrentPlaybackDescription => '호스트가 현재 보고 있는 항목으로 돌아갑니다'; + @override String get joinCurrentPlaybackDescription => '호스트가 현재 시청 중인 콘텐츠로 이동합니다'; @override String get failedToOpenCurrentPlayback => '현재 재생을 열 수 없습니다'; @override String participantJoined({required Object name}) => '${name}님이 참여했습니다'; @override String participantLeft({required Object name}) => '${name}님이 나갔습니다'; @override String participantPaused({required Object name}) => '${name}님이 일시정지했습니다'; @override String participantResumed({required Object name}) => '${name}님이 재생했습니다'; - @override String participantSeeked({required Object name}) => '${name}님이 탐색했습니다'; + @override String participantSeeked({required Object name}) => '${name}님이 재생 위치를 변경했습니다'; @override String participantBuffering({required Object name}) => '${name}님이 버퍼링 중입니다'; @override String participantNeedsUpdate({required Object name}) => '${name}님이 이전 버전의 앱을 사용 중입니다 — 동기화를 사용할 수 없습니다'; @override String resumingWithout({required Object name}) => '${name}님 없이 재생을 재개합니다'; @override String get waitingForParticipants => '다른 참가자의 로딩을 기다리는 중...'; @override String waitingForName({required Object name}) => '${name}님을 기다리는 중...'; - @override String get recentRooms => '최근 방'; + @override String get recentRooms => '최근 참여한 방'; @override String get renameRoom => '방 이름 변경'; @override String get removeRoom => '제거'; @override String get guestSwitchUnavailable => '전환할 수 없음 — 동기화 서버를 사용할 수 없습니다'; @@ -1393,7 +1397,7 @@ class _Translations$downloads$ko extends Translations$downloads$en { @override String get downloadQueued => '다운로드 대기 중'; @override String get downloadResumed => '다운로드를 재개했습니다'; @override String get serverErrorBitrate => '서버 오류: 파일이 원격 비트레이트 제한을 초과할 수 있습니다'; - @override String episodesQueued({required Object count}) => '${count} 에피소드가 다운로드 대기열에 추가 되었습니다'; + @override String episodesQueued({required Object count}) => '에피소드 ${count}개가 다운로드 대기열에 추가되었습니다'; @override String get downloadDeleted => '다운로드 삭제됨'; @override String deleteConfirm({required Object title}) => '이 기기에서 "${title}"을(를) 삭제할까요?'; @override String get cancelledDownloadTitle => '취소된 다운로드'; @@ -1764,7 +1768,7 @@ class _Translations$services$ko extends Translations$services$en { @override String get title => '서비스'; @override String get hubSubtitle => '시청 진행률을 동기화하고 새 작품을 요청하세요.'; @override String get notConnected => '연결되지 않음'; - @override String connectedAs({required Object username}) => '@${username} 로 연결됨'; + @override String connectedAs({required Object username}) => '@${username}(으)로 연결됨'; @override String get scrobble => '진행률 자동 추적'; @override String get scrobbleDescription => '에피소드나 영화를 시청하면 목록을 업데이트합니다.'; @override String disconnectConfirm({required Object service}) => '${service} 연결을 해제하시겠습니까?'; @@ -2008,7 +2012,7 @@ class _Translations$companionRemote$pairing$ko extends Translations$companionRem @override String get connecting => '연결 중...'; @override String get searchingForDevices => '기기 검색 중...'; @override String get noDevicesFound => '네트워크에서 기기를 찾을 수 없습니다'; - @override String get noDevicesHint => '데스크톱에서 Plezy를 열고 같은 WiFi를 사용하세요'; + @override String get noDevicesHint => '데스크톱에서 Plezy를 열고 같은 Wi-Fi를 사용하세요'; @override String get availableDevices => '사용 가능한 기기'; @override String get manualConnection => '수동 연결'; @override String get cryptoInitFailed => '보안 연결을 시작할 수 없습니다. 먼저 Plex에 로그인하세요.'; @@ -2036,7 +2040,7 @@ class _Translations$companionRemote$remote$ko extends Translations$companionRemo @override String get tabMore => '더 보기'; @override String get menu => '메뉴'; @override String get tabNavigation => '탭 탐색'; - @override String get tabDiscover => '발견'; + @override String get tabDiscover => '둘러보기'; @override String get tabLibraries => '미디어 라이브러리'; @override String get tabSearch => '검색'; @override String get tabDownloads => '다운로드'; @@ -2146,10 +2150,10 @@ extension on TranslationsKo { return switch (path) { 'app.title' => 'Plezy', 'auth.signInWithPlex' => 'Plex 계정으로 로그인', - 'auth.showQRCode' => 'QR 코드', + 'auth.showQRCode' => 'QR 코드 표시', 'auth.authenticate' => '인증', 'auth.authenticationTimeout' => '인증 시간이 초과되었습니다. 다시 시도해 주세요.', - 'auth.scanQRToSignIn' => 'QR 코드를 스캔하여 로그인', + 'auth.scanQRToSignIn' => '로그인하려면 이 QR 코드를 스캔하세요', 'auth.waitingForAuth' => '인증 대기 중...\n브라우저에서 로그인하세요.', 'auth.useBrowser' => '브라우저 사용', 'auth.or' => '또는', @@ -2159,14 +2163,14 @@ extension on TranslationsKo { 'auth.quickConnectWaiting' => '승인 대기 중…', 'auth.quickConnectCancel' => '취소', 'auth.quickConnectExpired' => 'Quick Connect가 만료되었습니다. 다시 시도하세요.', - 'auth.localDataRecoveryRequired' => 'Plezy could not safely recover local sign-in and pending playback data. Please sign in again.', + 'auth.localDataRecoveryRequired' => 'Plezy에서 로컬 로그인 정보와 대기 중인 재생 데이터를 안전하게 복구하지 못했습니다. 다시 로그인해 주세요.', 'common.cancel' => '취소', 'common.save' => '저장', 'common.close' => '닫기', 'common.clear' => '지우기', 'common.reset' => '초기화', 'common.later' => '나중에', - 'common.submit' => '보내기', + 'common.submit' => '제출', 'common.confirm' => '확인', 'common.retry' => '재시도', 'common.logout' => '로그아웃', @@ -2191,7 +2195,7 @@ extension on TranslationsKo { 'common.settings' => '설정', 'common.mute' => '음소거', 'common.ok' => '확인', - 'common.off' => '끔', + 'common.off' => '꺼짐', 'common.seasonNumber' => ({required Object number}) => '시즌 ${number}', 'common.episodeNumberTitle' => ({required Object number, required Object title}) => '${number}화 - ${title}', 'common.chapterNumber' => ({required Object number}) => '챕터 ${number}', @@ -2202,16 +2206,16 @@ extension on TranslationsKo { 'common.connectingToServers' => '서버 연결 중...', 'common.startingOfflineMode' => '오프라인 모드 시작 중...', 'common.loading' => '로딩 중...', - 'common.fullscreen' => '전체화면', - 'common.exitFullscreen' => '전체화면 종료', + 'common.fullscreen' => '전체 화면', + 'common.exitFullscreen' => '전체 화면 종료', 'common.pressBackAgainToExit' => '한 번 더 누르면 종료됩니다', 'screens.licenses' => '라이선스', 'screens.switchProfile' => '프로필 전환', 'screens.subtitleStyling' => '자막 스타일 설정', 'screens.mpvConfig' => 'mpv.conf', 'screens.logs' => '로그', - 'update.available' => '사용 가능한 업데이트', - 'update.versionAvailable' => ({required Object version}) => '버전 ${version} 출시됨', + 'update.available' => '업데이트 있음', + 'update.versionAvailable' => ({required Object version}) => '${version} 버전을 사용할 수 있습니다', 'update.currentVersion' => ({required Object version}) => '현재 버전: ${version}', 'update.skipVersion' => '이 버전 건너뛰기', 'update.viewRelease' => '릴리스 정보 보기', @@ -2222,9 +2226,9 @@ extension on TranslationsKo { 'settings.supportDeveloperDescription' => 'Liberapay로 후원하여 개발 지원', 'settings.language' => '언어', 'settings.theme' => '테마', - 'settings.appearance' => '외관', + 'settings.appearance' => '디자인', 'settings.videoPlayback' => '비디오 재생', - 'settings.videoPlaybackDescription' => '재생 동작 구성', + 'settings.videoPlaybackDescription' => '재생 동작 설정', 'settings.advanced' => '고급', 'settings.episodePosterMode' => '에피소드 포스터 스타일', 'settings.seriesPoster' => '시리즈 포스터', @@ -2236,13 +2240,15 @@ extension on TranslationsKo { 'settings.secondsShort' => '초', 'settings.minutesShort' => '분', 'settings.durationHint' => ({required Object min, required Object max}) => '기간 입력 (${min}-${max})', - 'settings.systemTheme' => '시스템 설정', - 'settings.lightTheme' => '라이트 모드', - 'settings.darkTheme' => '다크 모드', + 'settings.systemTheme' => '시스템', + 'settings.lightTheme' => '라이트', + 'settings.darkTheme' => '다크', 'settings.oledTheme' => 'OLED', 'settings.libraryDensity' => '라이브러리 표시 밀도', - 'settings.compact' => '좁게', - 'settings.comfortable' => '넓게', + 'settings.compact' => '조밀하게', + 'settings.comfortable' => '여유롭게', + 'settings.tvCornerSpotlightBackdrop' => '모서리 스포트라이트 배경', + 'settings.tvCornerSpotlightBackdropDescription' => '화면 전체를 채우는 대신 오른쪽 상단에 스포트라이트 아트워크를 표시합니다', 'settings.viewMode' => '보기 모드', 'settings.gridView' => '그리드 보기', 'settings.listView' => '목록 보기', @@ -2291,28 +2297,28 @@ extension on TranslationsKo { 'settings.defaultQualityTitle' => '기본 화질', 'settings.musicQualityTitle' => '음악 음질', 'settings.subtitleStyling' => '자막 스타일', - 'settings.subtitleStylingDescription' => '자막의 외형을 사용자 설정', + 'settings.subtitleStylingDescription' => '자막 모양을 사용자 지정합니다', 'settings.smallSkipDuration' => '짧은 건너뛰기 시간', 'settings.largeSkipDuration' => '긴 건너뛰기 시간', 'settings.rewindOnResume' => '재개 시 되감기', 'settings.secondsUnit' => ({required Object seconds}) => '${seconds}초', 'settings.defaultSleepTimer' => '기본 취침 타이머', 'settings.minutesUnit' => ({required Object minutes}) => '${minutes}분', - 'settings.rememberTrackSelections' => '에피소드/영화별 트랙 선택 기억', - 'settings.rememberTrackSelectionsDescription' => '제목별 오디오 및 자막 선택 기억', + 'settings.rememberTrackSelections' => '시리즈/영화별 트랙 선택 기억', + 'settings.rememberTrackSelectionsDescription' => '작품별 오디오 및 자막 선택 기억', 'settings.showChapterMarkersOnTimeline' => '탐색 막대에 챕터 마커 표시', 'settings.showChapterMarkersOnTimelineDescription' => '챕터 경계에서 탐색 막대 구분', - 'settings.clickVideoTogglesPlayback' => '비디오를 클릭하여 재생/일시정지를 전환하세요.', - 'settings.clickVideoTogglesPlaybackDescription' => '컨트롤 표시 대신 동영상 클릭으로 재생/일시정지합니다.', + 'settings.clickVideoTogglesPlayback' => '동영상 클릭으로 재생/일시정지 전환', + 'settings.clickVideoTogglesPlaybackDescription' => '컨트롤을 표시하는 대신 동영상을 클릭하여 재생하거나 일시정지합니다.', 'settings.videoPlayerControls' => '비디오 플레이어 컨트롤', 'settings.keyboardShortcuts' => '키보드 단축키', - 'settings.keyboardShortcutsDescription' => '사용자 정의 키보드 단축키', + 'settings.keyboardShortcutsDescription' => '키보드 단축키를 사용자 지정합니다', 'settings.videoPlayerNavigation' => '비디오 플레이어 탐색', - 'settings.videoPlayerNavigationDescription' => '방향 키를 사용하여 비디오 플레이어 컨트롤 탐색', + 'settings.videoPlayerNavigationDescription' => '방향 키로 비디오 플레이어 컨트롤을 탐색합니다', 'settings.watchTogetherRelay' => '함께 보기 릴레이', 'settings.watchTogetherRelayDescription' => '사용자 지정 릴레이를 설정합니다. 모두 같은 서버를 사용해야 합니다.', 'settings.watchTogetherRelayHint' => 'https://my-relay.example.com', - 'settings.watchTogetherRelayInvalid' => 'Enter a valid HTTP or HTTPS relay base URL.', + 'settings.watchTogetherRelayInvalid' => '올바른 HTTP 또는 HTTPS 릴레이 기본 URL을 입력하세요.', 'settings.crashReporting' => '충돌 보고', 'settings.crashReportingDescription' => '앱 개선을 위해 충돌 보고서 전송', 'settings.debugLogging' => '디버그 로깅', @@ -2337,7 +2343,7 @@ extension on TranslationsKo { 'settings.importSettingsNoUser' => '설정을 가져오기 전에 로그인하세요', 'settings.shortcutsReset' => '단축키가 기본값으로 재설정되었습니다', 'settings.about' => '정보', - 'settings.aboutDescription' => '응용 프로그램 정보 및 라이선스', + 'settings.aboutDescription' => '앱 정보 및 라이선스', 'settings.updates' => '업데이트', 'settings.updateAvailable' => '사용 가능한 업데이트 있음', 'settings.checkForUpdates' => '업데이트 확인', @@ -2345,9 +2351,9 @@ extension on TranslationsKo { 'settings.autoCheckUpdatesOnStartupDescription' => '실행 시 업데이트가 있으면 알림', 'settings.validationErrorEnterNumber' => '유효한 숫자를 입력하세요', 'settings.validationErrorDuration' => ({required Object min, required Object max, required Object unit}) => '기간은 ${min}과 ${max} ${unit} 사이여야 합니다', - 'settings.shortcutAlreadyAssigned' => ({required Object action}) => '단축키가 이미 ${action}에 할당 되었습니다', - 'settings.shortcutUpdated' => ({required Object action}) => '단축키가 ${action}에 대해 업데이트 되었습니다', - 'settings.saveFailed' => 'Could not save changes. Try again.', + 'settings.shortcutAlreadyAssigned' => ({required Object action}) => '단축키가 이미 ${action}에 할당되었습니다', + 'settings.shortcutUpdated' => ({required Object action}) => '${action} 단축키가 업데이트되었습니다', + 'settings.saveFailed' => '변경 사항을 저장하지 못했습니다. 다시 시도하세요.', 'settings.autoSkip' => '자동 건너뛰기', 'settings.autoSkipIntro' => '자동으로 오프닝 건너뛰기', 'settings.autoSkipIntroDescription' => '몇 초 후 오프닝을 자동으로 건너뛰기', @@ -2356,7 +2362,7 @@ extension on TranslationsKo { 'settings.forceSkipMarkerFallback' => '대체 마커 강제 사용', 'settings.forceSkipMarkerFallbackDescription' => 'Plex에 마커가 있어도 챕터 제목 패턴 사용', 'settings.autoSkipDelay' => '자동 건너뛰기 지연', - 'settings.autoSkipDelayDescription' => ({required Object seconds}) => '자동 건너뛰기 전 ${seconds} 초 대기', + 'settings.autoSkipDelayDescription' => ({required Object seconds}) => '자동으로 건너뛰기 전 ${seconds}초 대기', 'settings.introPattern' => '인트로 마커 패턴', 'settings.introPatternDescription' => '챕터 제목에서 인트로 마커를 인식하는 정규식 패턴', 'settings.creditsPattern' => '크레딧 마커 패턴', @@ -2370,17 +2376,17 @@ extension on TranslationsKo { 'settings.selectFolder' => '폴더 선택', 'settings.resetToDefault' => '기본값으로 재설정', 'settings.currentPath' => ({required Object path}) => '현재: ${path}', - 'settings.downloadLocationChanged' => '다운로드 위치가 변경 되었습니다', - 'settings.downloadLocationReset' => '다운로드 위치가 기본값으로 재설정 되었습니다', + 'settings.downloadLocationChanged' => '다운로드 위치가 변경되었습니다', + 'settings.downloadLocationReset' => '다운로드 위치가 기본값으로 재설정되었습니다', 'settings.downloadLocationInvalid' => '선택한 폴더에 쓰기 권한이 없습니다', 'settings.downloadLocationPickerUnavailable' => '이 기기에서는 폴더를 선택할 수 없습니다', - 'settings.downloadOnWifiOnly' => 'WiFi 연결 시에만 다운로드', - 'settings.downloadOnWifiOnlyDescription' => '셀룰러 데이터 사용 시 다운로드 불가', - 'settings.autoRemoveWatchedDownloads' => '시청한 다운로드 자동 삭제', - 'settings.autoRemoveWatchedDownloadsDescription' => '시청한 다운로드 자동 삭제', - 'settings.cellularDownloadBlocked' => '셀룰러에서는 다운로드가 차단됩니다. WiFi를 사용하거나 설정을 변경하세요.', + 'settings.downloadOnWifiOnly' => 'Wi-Fi 연결 시에만 다운로드', + 'settings.downloadOnWifiOnlyDescription' => '셀룰러 데이터 사용 중에는 다운로드하지 않습니다', + 'settings.autoRemoveWatchedDownloads' => '시청한 다운로드 항목 자동 삭제', + 'settings.autoRemoveWatchedDownloadsDescription' => '시청한 다운로드 항목을 자동으로 삭제합니다', + 'settings.cellularDownloadBlocked' => '셀룰러에서는 다운로드가 차단됩니다. Wi-Fi를 사용하거나 설정을 변경하세요.', 'settings.maxVolume' => '최대 볼륨', - 'settings.maxVolumeDescription' => '조용한 미디어를 위해 100% 이상의 볼륨 허용', + 'settings.maxVolumeDescription' => '음량이 작은 콘텐츠를 위해 100% 이상의 볼륨을 허용합니다', 'settings.maxVolumePercent' => ({required Object percent}) => '${percent}%', 'settings.discordRichPresence' => 'Discord Rich Presence', 'settings.discordRichPresenceDescription' => 'Discord에서 시청 중인 콘텐츠 표시', @@ -2390,7 +2396,7 @@ extension on TranslationsKo { 'settings.companionRemoteServer' => '컴패니언 리모트 서버', 'settings.companionRemoteServerDescription' => '네트워크의 모바일 기기가 이 앱을 제어할 수 있도록 허용', 'settings.autoPip' => '자동 PIP 모드', - 'settings.autoPipDescription' => '재생 중 앱을 떠나면 화면 속 화면으로 전환', + 'settings.autoPipDescription' => '재생 중 앱을 떠나면 자동으로 화면 속 화면 모드로 전환합니다', 'settings.matchContentFrameRate' => '콘텐츠 프레임 레이트 맞춤', 'settings.matchContentFrameRateDescription' => '디스플레이 새로 고침 빈도를 동영상 콘텐츠에 맞춤', 'settings.matchRefreshRate' => '주사율 맞춤', @@ -2402,7 +2408,7 @@ extension on TranslationsKo { 'settings.tunneledPlaybackDescription' => '비디오 터널링을 사용합니다. HDR 재생 시 검은 화면이 보이면 비활성화하세요.', 'settings.audioPassthrough' => '오디오 패스스루', 'settings.audioPassthroughDescription' => 'Dolby/DTS 오디오를 재인코딩 없이 리시버나 TV로 전송하여 서라운드 사운드를 유지합니다. 소리가 나지 않으면 비활성화하세요.', - 'settings.audioPassthroughDescriptionAppleTv' => 'Dolby Digital Plus(Atmos 포함)를 비트스트림으로 시스템에 전달합니다. DTS와 TrueHD는 계속 멀티채널 PCM으로 재생됩니다. 탐색 시 짧은 소리 끊김이 발생할 수 있습니다.', + 'settings.audioPassthroughDescriptionAppleTv' => 'Dolby Digital Plus(Atmos 포함)에 Apple의 기본 Dolby 디코더를 사용합니다. DTS와 TrueHD는 계속 멀티채널 PCM으로 재생됩니다. 소리가 나지 않으면 비활성화하세요.', 'settings.audioDownmix' => '스테레오로 다운믹스', 'settings.audioDownmixDescription' => '서라운드 오디오를 스테레오 스피커나 헤드폰용 2채널로 믹스합니다', 'settings.downmixCenterBoost' => '센터 채널 부스트', @@ -2440,10 +2446,10 @@ extension on TranslationsKo { 'settings.requireProfileSelectionOnOpenDescription' => '앱을 열 때마다 프로필 선택 화면을 표시합니다', 'settings.forceTvMode' => 'TV 모드 강제 사용', 'settings.forceTvModeDescription' => 'TV 레이아웃을 강제합니다. 자동 감지되지 않는 기기용입니다. 재시작이 필요합니다.', - 'settings.startInFullscreen' => '전체화면으로 시작', - 'settings.startInFullscreenDescription' => '실행 시 Plezy를 전체화면 모드로 엽니다', - 'settings.exitFullscreenOnPlayerClose' => '플레이어 닫을 때 전체화면 종료', - 'settings.exitFullscreenOnPlayerCloseDescription' => '비디오 플레이어를 닫을 때 자동으로 전체화면을 종료합니다', + 'settings.startInFullscreen' => '전체 화면으로 시작', + 'settings.startInFullscreenDescription' => '실행 시 Plezy를 전체 화면 모드로 엽니다', + 'settings.exitFullscreenOnPlayerClose' => '플레이어를 닫을 때 전체 화면 종료', + 'settings.exitFullscreenOnPlayerCloseDescription' => '비디오 플레이어를 닫을 때 자동으로 전체 화면을 종료합니다', 'settings.autoHidePerformanceOverlay' => '성능 오버레이 자동 숨기기', 'settings.autoHidePerformanceOverlayDescription' => '재생 컨트롤과 함께 성능 오버레이를 페이드 처리', 'settings.showNavBarLabels' => '내비게이션 바 라벨 표시', @@ -2509,8 +2515,8 @@ extension on TranslationsKo { 'fileInfo.bitDepth' => '비트 심도', 'fileInfo.colorSpace' => '색 공간', 'fileInfo.colorRange' => '색 범위', - 'fileInfo.colorPrimaries' => '색상 원색', - 'fileInfo.chromaSubsampling' => '채도 서브샘플링', + 'fileInfo.colorPrimaries' => '색 원색', + 'fileInfo.chromaSubsampling' => '색차 서브샘플링', 'fileInfo.channels' => '채널', 'fileInfo.subtitles' => '자막', 'fileInfo.overallBitrate' => '전체 비트레이트', @@ -2521,12 +2527,12 @@ extension on TranslationsKo { 'fileInfo.optimizedForStreaming' => '스트리밍 최적화', 'fileInfo.has64bitOffsets' => '64비트 오프셋', 'mediaMenu.markAsWatched' => '시청 완료로 표시', - 'mediaMenu.markAsUnwatched' => '시청 안 함으로 표시', + 'mediaMenu.markAsUnwatched' => '미시청으로 표시', 'mediaMenu.removeFromContinueWatching' => '계속 보기에서 제거', 'mediaMenu.viewDetails' => '상세 정보 보기', 'mediaMenu.goToSeries' => '시리즈로 이동', 'mediaMenu.shufflePlay' => '무작위 재생', - 'mediaMenu.shuffleNotAvailableOffline' => '오프라인에서는 셔플을 사용할 수 없습니다', + 'mediaMenu.shuffleNotAvailableOffline' => '오프라인에서는 무작위 재생을 사용할 수 없습니다', 'mediaMenu.fileInfo' => '파일 정보', 'mediaMenu.deleteFromServer' => '서버에서 삭제', 'mediaMenu.confirmDelete' => '이 미디어와 해당 파일을 서버에서 삭제할까요?', @@ -2548,9 +2554,9 @@ extension on TranslationsKo { 'accessibility.mediaCardEpisode' => ({required Object title, required Object episodeInfo}) => '${title}, ${episodeInfo}', 'accessibility.mediaCardSeason' => ({required Object title, required Object seasonInfo}) => '${title}, ${seasonInfo}', 'accessibility.mediaCardWatched' => '시청 완료', - 'accessibility.mediaCardPartiallyWatched' => ({required Object percent}) => '${percent} 퍼센트 시청 완료', + 'accessibility.mediaCardPartiallyWatched' => ({required Object percent}) => '${percent}% 시청 완료', 'accessibility.mediaCardUnwatched' => '미시청', - 'accessibility.tapToPlay' => '터치 하여 재생', + 'accessibility.tapToPlay' => '탭하여 재생', 'accessibility.decrease' => '낮추기', 'accessibility.increase' => '높이기', 'accessibility.decreaseValue' => ({required Object label}) => '${label} 낮추기', @@ -2568,7 +2574,7 @@ extension on TranslationsKo { 'tooltips.shufflePlay' => '무작위 재생', 'tooltips.playTrailer' => '예고편 재생', 'tooltips.markAsWatched' => '시청 완료로 표시', - 'tooltips.markAsUnwatched' => '시청 안 함으로 표시', + 'tooltips.markAsUnwatched' => '미시청으로 표시', 'audioTracks.track' => ({required Object n}) => '오디오 트랙 ${n}', 'videoControls.audioLabel' => '오디오', 'videoControls.subtitlesLabel' => '자막', @@ -2584,7 +2590,7 @@ extension on TranslationsKo { 'videoControls.lockRotation' => '회전 잠금', 'videoControls.unlockRotation' => '회전 잠금 해제', 'videoControls.timerActive' => '타이머 활성화됨', - 'videoControls.playbackWillPauseIn' => ({required Object duration}) => '재생이 ${duration} 후에 일시 중지 됩니다', + 'videoControls.playbackWillPauseIn' => ({required Object duration}) => '${duration} 후 재생이 일시정지됩니다', 'videoControls.sleepTimerEndOfVideo' => '현재 비디오의 끝', 'videoControls.sleepTimerStopAtHeader' => '정지 시점', 'videoControls.sleepTimerDurationHeader' => '타이머', @@ -2596,8 +2602,10 @@ extension on TranslationsKo { 'videoControls.playNext' => '다음 재생', 'videoControls.playButton' => '재생', 'videoControls.pauseButton' => '일시정지', - 'videoControls.seekBackwardButton' => ({required Object seconds}) => '${seconds} 초 뒤로', - 'videoControls.seekForwardButton' => ({required Object seconds}) => '${seconds} 초 앞으로', + 'videoControls.showPlaybackControls' => '재생 컨트롤 표시', + 'videoControls.hidePlaybackControls' => '재생 컨트롤 숨기기', + 'videoControls.seekBackwardButton' => ({required Object seconds}) => '${seconds}초 뒤로 이동', + 'videoControls.seekForwardButton' => ({required Object seconds}) => '${seconds}초 앞으로 이동', 'videoControls.previousButton' => '이전 에피소드', 'videoControls.nextButton' => '다음 에피소드', 'videoControls.previousChapterButton' => '이전 챕터', @@ -2617,8 +2625,8 @@ extension on TranslationsKo { 'videoControls.pipButton' => '픽처 인 픽처 모드', 'videoControls.aspectRatioButton' => '화면비율', 'videoControls.ambientLighting' => '주변 조명', - 'videoControls.fullscreenButton' => '전체화면', - 'videoControls.exitFullscreenButton' => '전체화면 종료', + 'videoControls.fullscreenButton' => '전체 화면', + 'videoControls.exitFullscreenButton' => '전체 화면 종료', 'videoControls.alwaysOnTopButton' => '창 최상위 고정', 'videoControls.rotationLockButton' => '회전 잠금', 'videoControls.lockScreen' => '화면 잠금', @@ -2652,12 +2660,12 @@ extension on TranslationsKo { 'videoControls.subtitleDownloadedNotApplied' => '자막을 다운로드했지만 선택할 수 없습니다', 'videoControls.subtitleDownloadFailed' => '자막 다운로드에 실패했습니다', 'videoControls.searchLanguages' => '언어 검색...', - 'messages.markedAsWatched' => '시청 완료로 표시됨', - 'messages.markedAsUnwatched' => '시청 안 함으로 표시됨', - 'messages.markedAsWatchedOffline' => '시청 완료로 표시됨 (연결 시 동기화됨)', - 'messages.markedAsUnwatchedOffline' => '미시청으로 표시됨 (연결 시 동기화됨)', _ => null, } ?? switch (path) { + 'messages.markedAsWatched' => '시청 완료로 표시됨', + 'messages.markedAsUnwatched' => '미시청으로 표시됨', + 'messages.markedAsWatchedOffline' => '시청 완료로 표시됨 (연결 시 동기화됨)', + 'messages.markedAsUnwatchedOffline' => '미시청으로 표시됨 (연결 시 동기화됨)', 'messages.autoRemovedWatchedDownload' => ({required Object title}) => '자동 삭제됨: ${title}', 'messages.autoRemovedWatchedDownloads' => ({required num n}) => (_root.$meta.cardinalResolver ?? PluralResolvers.cardinal('ko'))(n, other: '시청한 다운로드 ${n}개를 자동 삭제했습니다', ), 'messages.removedFromContinueWatching' => '계속 시청 목록에서 제거됨', @@ -2665,11 +2673,11 @@ extension on TranslationsKo { 'messages.streamInterrupted' => '스트림이 중단되었습니다. 재생을 누르거나 탐색하여 다시 시도하세요.', 'messages.liveStreamInterrupted' => '라이브 스트림이 중단되었습니다. 재생을 눌러 다시 시도하세요.', 'messages.fileInfoNotAvailable' => '파일 정보가 없습니다', - 'messages.playbackAuthenticationRequired' => 'Sign in to the media server again to play this item.', - 'messages.playbackServerUnavailable' => 'The media server is unavailable. Try again later.', - 'messages.playbackDataInvalid' => 'The server returned invalid playback information.', - 'messages.playbackCancelled' => 'Playback was cancelled.', - 'messages.playbackFailed' => 'Playback could not be started.', + 'messages.playbackAuthenticationRequired' => '이 항목을 재생하려면 미디어 서버에 다시 로그인하세요.', + 'messages.playbackServerUnavailable' => '미디어 서버를 사용할 수 없습니다. 나중에 다시 시도하세요.', + 'messages.playbackDataInvalid' => '서버에서 잘못된 재생 정보를 반환했습니다.', + 'messages.playbackCancelled' => '재생이 취소되었습니다.', + 'messages.playbackFailed' => '재생을 시작할 수 없습니다.', 'messages.errorLoadingFileInfo' => ({required Object error}) => '파일 정보 로딩 중 오류: ${error}', 'messages.errorLoadingSeries' => '시리즈 로딩 중 오류', 'messages.musicNotSupported' => '음악 재생 미지원', @@ -2677,8 +2685,8 @@ extension on TranslationsKo { 'messages.noProfilesAvailable' => '사용 가능한 프로필이 없습니다', 'messages.contactAdminForProfiles' => '프로필을 추가하려면 서버 관리자에게 문의하세요', 'messages.unableToDetermineLibrarySection' => '이 항목의 라이브러리 섹션을 확인할 수 없습니다', - 'messages.logsCleared' => '로그가 삭제 되었습니다', - 'messages.logsCopied' => '로그가 클립보드에 복사 되었습니다', + 'messages.logsCleared' => '로그가 삭제되었습니다', + 'messages.logsCopied' => '로그가 클립보드에 복사되었습니다', 'messages.noLogsAvailable' => '사용 가능한 로그가 없습니다', 'messages.libraryScanning' => ({required Object title}) => '"${title}"을(를) 스캔 중입니다...', 'messages.libraryScanStarted' => ({required Object title}) => '"${title}" 미디어 라이브러리 스캔 시작', @@ -2686,16 +2694,16 @@ extension on TranslationsKo { 'messages.metadataRefreshing' => ({required Object title}) => '"${title}" 메타데이터 새로고침 중...', 'messages.metadataRefreshStarted' => ({required Object title}) => '"${title}" 메타데이터 새로고침 시작됨', 'messages.metadataRefreshFailed' => ({required Object error}) => '메타데이터 새로고침 실패: ${error}', - 'messages.logoutConfirm' => '로그아웃 하시겠습니까?', + 'messages.logoutConfirm' => '로그아웃하시겠습니까?', 'messages.noSeasonsFound' => '시즌을 찾을 수 없음', 'messages.seasonsLoadFailed' => '시즌을 불러오지 못했습니다', 'messages.noEpisodesFound' => '시즌 1에서 에피소드를 찾을 수 없습니다', 'messages.noEpisodesFoundGeneral' => '에피소드를 찾을 수 없습니다', 'messages.episodesLoadFailed' => '에피소드를 불러오지 못했습니다', 'messages.noResultsFound' => '결과를 찾을 수 없습니다', - 'messages.sleepTimerSet' => ({required Object label}) => '수면 타이머가 ${label}로 설정 되었습니다', + 'messages.sleepTimerSet' => ({required Object label}) => '취침 타이머가 ${label}(으)로 설정되었습니다', 'messages.noItemsAvailable' => '사용 가능한 항목이 없습니다', - 'messages.failedToCreatePlayQueueNoItems' => '재생 대기열 생성 실패 - 항목 없음', + 'messages.failedToCreatePlayQueueNoItems' => '재생 대기열을 만들지 못했습니다 — 항목이 없습니다', 'messages.failedPlayback' => ({required Object action, required Object error}) => '${action}을(를) 수행할 수 없습니다: ${error}', 'messages.switchingToCompatiblePlayer' => '호환되는 플레이어로 전환 중...', 'messages.serverLimitTitle' => '재생 실패', @@ -2724,21 +2732,21 @@ extension on TranslationsKo { 'subtitlingStyling.renderResolution' => '렌더링 해상도', 'subtitlingStyling.renderResolutionScreen' => '화면 해상도', 'subtitlingStyling.renderResolutionVideo' => '영상 해상도', - 'mpvConfig.title' => 'mpv 설정', + 'mpvConfig.title' => 'mpv.conf', 'mpvConfig.description' => '고급 비디오 플레이어 설정', - 'mpvConfig.presets' => '사전 설정', - 'mpvConfig.noPresets' => '저장된 사전 설정이 없습니다', + 'mpvConfig.presets' => '프리셋', + 'mpvConfig.noPresets' => '저장된 프리셋이 없습니다', 'mpvConfig.saveAsPreset' => '프리셋으로 저장...', 'mpvConfig.presetName' => '프리셋 이름', 'mpvConfig.presetNameHint' => '이 프리셋의 이름을 입력하세요', - 'mpvConfig.loadPreset' => '로드', + 'mpvConfig.loadPreset' => '불러오기', 'mpvConfig.deletePreset' => '삭제', - 'mpvConfig.presetSaved' => '프리셋이 저장 되었습니다', - 'mpvConfig.presetLoaded' => '프리셋이 로드 되었습니다', - 'mpvConfig.presetDeleted' => '프리셋이 삭제 되었습니다', - 'mpvConfig.confirmDeletePreset' => '이 프리셋을 삭제 하시겠습니까?', + 'mpvConfig.presetSaved' => '프리셋이 저장되었습니다', + 'mpvConfig.presetLoaded' => '프리셋을 불러왔습니다', + 'mpvConfig.presetDeleted' => '프리셋이 삭제되었습니다', + 'mpvConfig.confirmDeletePreset' => '이 프리셋을 삭제하시겠습니까?', 'mpvConfig.configPlaceholder' => 'gpu-api=vulkan\nhwdec=auto\n# comment', - 'dialog.confirmAction' => '확인', + 'dialog.confirmAction' => '작업 확인', 'profiles.addPlezyProfile' => 'Plezy 프로필 추가', 'profiles.switchingProfile' => '프로필 전환 중…', 'profiles.deleteThisProfileTitle' => '이 프로필을 삭제하시겠습니까?', @@ -2784,7 +2792,7 @@ extension on TranslationsKo { 'profiles.borrowExplain' => '다른 프로필의 연결을 빌립니다. PIN으로 보호된 프로필에는 PIN이 필요합니다.', 'profiles.borrowEmpty' => '아직 빌릴 것이 없습니다.', 'profiles.borrowEmptySubtitle' => '먼저 다른 프로필에 Plex 또는 Jellyfin을 연결하세요.', - 'profiles.borrowLoadFailed' => 'Available connections could not be loaded. Try again.', + 'profiles.borrowLoadFailed' => '사용 가능한 연결을 불러오지 못했습니다. 다시 시도하세요.', 'profiles.borrowFromProfile' => ({required Object displayName}) => '${displayName}에서', 'profiles.borrowConnectionBorrowed' => '연결을 빌렸습니다.', 'profiles.borrowFailed' => '연결을 빌리지 못했습니다.', @@ -2803,12 +2811,12 @@ extension on TranslationsKo { 'connections.addConnection' => '연결 추가', 'connections.addConnectionSubtitleNoProfile' => 'Plex로 로그인하거나 Jellyfin 서버에 연결', 'connections.addConnectionSubtitleScoped' => ({required Object displayName}) => '${displayName}에 추가: Plex, Jellyfin 또는 다른 프로필 연결', - 'connections.sessionExpiredOne' => ({required Object name}) => '${name} 의 세션이 만료되었습니다', - 'connections.sessionExpiredMany' => ({required Object count}) => '${count} 개의 서버에서 세션이 만료되었습니다', + 'connections.sessionExpiredOne' => ({required Object name}) => '${name}의 세션이 만료되었습니다', + 'connections.sessionExpiredMany' => ({required Object count}) => '${count}개 서버의 세션이 만료되었습니다', 'connections.signInAgain' => '다시 로그인', 'connections.editJellyfinTitle' => 'Jellyfin 연결 편집', 'connections.editJellyfinIntro' => ({required Object serverName}) => '${serverName}의 URL을 추가하거나 제거하세요. Plezy는 연결 가능한 URL 중 지연 시간이 가장 낮은 URL을 사용합니다.', - 'discover.title' => '발견', + 'discover.title' => '둘러보기', 'discover.noContentAvailable' => '사용 가능한 콘텐츠가 없습니다', 'discover.addMediaToLibraries' => '미디어 라이브러리에 미디어를 추가해 주세요', 'discover.continueWatching' => '계속 시청', @@ -2863,15 +2871,15 @@ extension on TranslationsKo { 'libraries.resetFilters' => '필터 초기화', 'libraries.all' => '전체', 'libraries.clearAll' => '모두 삭제', - 'libraries.scanLibraryConfirm' => ({required Object title}) => '「${title}」를 스캔 하시겠습니까?', - 'libraries.analyzeLibraryConfirm' => ({required Object title}) => '「${title}」를 분석 하시겠습니까?', - 'libraries.refreshMetadataConfirm' => ({required Object title}) => '「${title}」의 메타데이터를 새로고침 하시겠습니까?', + 'libraries.scanLibraryConfirm' => ({required Object title}) => '「${title}」을(를) 스캔하시겠습니까?', + 'libraries.analyzeLibraryConfirm' => ({required Object title}) => '「${title}」을(를) 분석하시겠습니까?', + 'libraries.refreshMetadataConfirm' => ({required Object title}) => '「${title}」의 메타데이터를 새로고침하시겠습니까?', 'libraries.emptyTrashConfirm' => ({required Object title}) => '${title}의 휴지통을 비우시겠습니까?', 'libraries.manageLibraries' => '미디어 라이브러리 관리', 'libraries.sort' => '정렬', 'libraries.sortBy' => '정렬 기준', 'libraries.filters' => '필터', - 'libraries.confirmActionMessage' => '이 작업을 실행 하시겠습니까?', + 'libraries.confirmActionMessage' => '이 작업을 실행하시겠습니까?', 'libraries.showLibrary' => '미디어 라이브러리 표시', 'libraries.hideLibrary' => '미디어 라이브러리 숨기기', 'libraries.libraryOptions' => '미디어 라이브러리 옵션', @@ -2926,7 +2934,7 @@ extension on TranslationsKo { 'about.title' => '소개', 'about.openSourceLicenses' => '오픈소스 라이선스', 'about.versionLabel' => ({required Object version}) => '버전 ${version}', - 'about.appDescription' => '아름다운 Flutter용 Plex 및 Jellyfin 클라이언트', + 'about.appDescription' => 'Flutter로 만든 아름다운 Plex 및 Jellyfin 클라이언트', 'about.viewLicensesDescription' => '타사 라이브러리 라이선스 보기', 'serverSelection.noServersFoundForAccount' => ({required Object username, required Object email}) => '${username} (${email})의 서버를 찾을 수 없습니다.', 'serverSelection.failedToLoadServers' => ({required Object error}) => '서버를 로드할 수 없습니다: ${error}', @@ -2941,7 +2949,7 @@ extension on TranslationsKo { 'licenses.relatedPackages' => '관련 소프트웨어 패키지', 'licenses.license' => '라이선스', 'licenses.licenseNumber' => ({required Object number}) => '라이선스 ${number}', - 'licenses.licensesCount' => ({required Object count}) => '${count} 개의 라이선스', + 'licenses.licensesCount' => ({required Object count}) => '${count}개의 라이선스', 'navigation.libraries' => '미디어 라이브러리', 'navigation.downloads' => '다운로드', 'navigation.liveTv' => '실시간 TV', @@ -3010,7 +3018,7 @@ extension on TranslationsKo { 'liveTv.favorites' => '즐겨찾기', 'liveTv.reorderFavorites' => '즐겨찾기 순서 변경', 'liveTv.favoritesLoadFailed' => '즐겨찾기를 불러올 수 없습니다. 연결을 확인하고 다시 시도하세요.', - 'liveTv.favoritesUpdateFailed' => 'Could not update favorites. Check your connection and try again.', + 'liveTv.favoritesUpdateFailed' => '즐겨찾기를 업데이트할 수 없습니다. 연결을 확인하고 다시 시도하세요.', 'liveTv.joinSession' => '진행 중인 세션 참여', 'liveTv.watchFromStart' => ({required Object minutes}) => '처음부터 시청 (${minutes}분 전 시작)', 'liveTv.watchLive' => '실시간 시청', @@ -3063,7 +3071,7 @@ extension on TranslationsKo { 'collections.errorAddingToCollection' => '컬렉션에 추가 실패', 'collections.created' => '컬렉션 생성됨', 'collections.removeFromCollection' => '컬렉션에서 제거', - 'collections.removeFromCollectionConfirm' => ({required Object title}) => '${title}을/를 이 컬렉션에서 제거 하시겠습니까?', + 'collections.removeFromCollectionConfirm' => ({required Object title}) => '${title}을(를) 이 컬렉션에서 제거하시겠습니까?', 'collections.removedFromCollection' => '컬렉션에서 제거됨', 'collections.removeFromCollectionFailed' => '컬렉션에서 제거 실패', 'collections.removeFromCollectionError' => ({required Object error}) => '컬렉션에서 제거 중 오류 발생: ${error}', @@ -3080,11 +3088,11 @@ extension on TranslationsKo { 'playlists.itemCount' => ({required Object count}) => '${count}개 항목', 'playlists.oneItem' => '1개 항목', 'playlists.emptyPlaylist' => '이 재생 목록은 비어 있습니다', - 'playlists.deleteConfirm' => '재생 목록을 삭제 하시겠습니까?', - 'playlists.deleteMessage' => ({required Object name}) => '"${name}"을(를) 삭제 하시겠습니까?', - 'playlists.created' => '재생 목록이 생성 되었습니다', - 'playlists.deleted' => '재생 목록이 삭제 되었습니다', - 'playlists.itemAdded' => '재생 목록에 추가 되었습니다', + 'playlists.deleteConfirm' => '재생 목록을 삭제하시겠습니까?', + 'playlists.deleteMessage' => ({required Object name}) => '"${name}"을(를) 삭제하시겠습니까?', + 'playlists.created' => '재생 목록이 생성되었습니다', + 'playlists.deleted' => '재생 목록이 삭제되었습니다', + 'playlists.itemAdded' => '재생 목록에 추가되었습니다', 'playlists.itemRemoved' => '재생 목록에서 제거됨', 'playlists.selectPlaylist' => '재생 목록 선택', 'playlists.searchPlaylists' => '재생 목록 검색...', @@ -3126,7 +3134,7 @@ extension on TranslationsKo { 'watchTogether.controlModeQuestion' => '누가 재생을 제어할 수 있나요?', 'watchTogether.hostOnly' => '호스트만', 'watchTogether.anyone' => '누구나', - 'watchTogether.hostingSession' => '세션 호스팅', + 'watchTogether.hostingSession' => '세션 호스팅 중', 'watchTogether.inSession' => '세션 중', 'watchTogether.sessionCode' => '세션 코드', 'watchTogether.openSessionControls' => '함께 보기 세션 제어 열기', @@ -3138,18 +3146,18 @@ extension on TranslationsKo { 'watchTogether.participants' => '참가자', 'watchTogether.host' => '호스트', 'watchTogether.hostBadge' => '호스트', - 'watchTogether.youAreHost' => '당신은 호스트 입니다', + 'watchTogether.youAreHost' => '호스트입니다', 'watchTogether.watchingWithOthers' => '다른 사람과 함께 시청 중', 'watchTogether.endSession' => '세션 종료', - 'watchTogether.leaveSession' => '세션 탈퇴', - 'watchTogether.endSessionQuestion' => '세션을 종료 하시겠습니까?', - 'watchTogether.leaveSessionQuestion' => '세션을 탈퇴 하시겠습니까?', - 'watchTogether.endSessionConfirm' => '이 작업은 모든 참가자의 세션을 종료합니다.', - 'watchTogether.leaveSessionConfirm' => '당신은 세션에서 제거됩니다.', - 'watchTogether.endSessionConfirmOverlay' => '이것은 모든 참가자의 시청 세션을 종료합니다.', - 'watchTogether.leaveSessionConfirmOverlay' => '시청 세션 연결이 끊어집니다.', + 'watchTogether.leaveSession' => '세션 나가기', + 'watchTogether.endSessionQuestion' => '세션을 종료하시겠습니까?', + 'watchTogether.leaveSessionQuestion' => '세션에서 나가시겠습니까?', + 'watchTogether.endSessionConfirm' => '모든 참가자의 세션이 종료됩니다.', + 'watchTogether.leaveSessionConfirm' => '세션에서 나가게 됩니다.', + 'watchTogether.endSessionConfirmOverlay' => '모든 참가자의 함께 보기 세션이 종료됩니다.', + 'watchTogether.leaveSessionConfirmOverlay' => '함께 보기 세션의 연결이 끊어집니다.', 'watchTogether.end' => '종료', - 'watchTogether.leave' => '이탈', + 'watchTogether.leave' => '나가기', 'watchTogether.syncing' => '동기화 중...', 'watchTogether.joinWatchSession' => '시청 세션에 참여', 'watchTogether.enterCodeHint' => '5자리 코드 입력', @@ -3160,25 +3168,25 @@ extension on TranslationsKo { 'watchTogether.failedToCreate' => '세션 생성 실패', 'watchTogether.failedToJoin' => '세션 참여 실패', 'watchTogether.sessionCodeCopied' => '세션 코드가 클립보드에 복사되었습니다', - 'watchTogether.relayUnreachable' => '릴레이 서버에 연결할 수 없습니다. ISP 차단으로 Watch Together가 작동하지 않을 수 있습니다.', + 'watchTogether.relayUnreachable' => '릴레이 서버에 연결할 수 없습니다. ISP 차단으로 함께 보기를 사용하지 못할 수 있습니다.', 'watchTogether.reconnectingToHost' => '호스트에 재연결 중...', 'watchTogether.currentPlayback' => '현재 재생', 'watchTogether.joinCurrentPlayback' => '현재 재생 참여', - 'watchTogether.joinCurrentPlaybackDescription' => '호스트가 현재 보고 있는 항목으로 돌아갑니다', + 'watchTogether.joinCurrentPlaybackDescription' => '호스트가 현재 시청 중인 콘텐츠로 이동합니다', 'watchTogether.failedToOpenCurrentPlayback' => '현재 재생을 열 수 없습니다', + _ => null, + } ?? switch (path) { 'watchTogether.participantJoined' => ({required Object name}) => '${name}님이 참여했습니다', 'watchTogether.participantLeft' => ({required Object name}) => '${name}님이 나갔습니다', 'watchTogether.participantPaused' => ({required Object name}) => '${name}님이 일시정지했습니다', 'watchTogether.participantResumed' => ({required Object name}) => '${name}님이 재생했습니다', - _ => null, - } ?? switch (path) { - 'watchTogether.participantSeeked' => ({required Object name}) => '${name}님이 탐색했습니다', + 'watchTogether.participantSeeked' => ({required Object name}) => '${name}님이 재생 위치를 변경했습니다', 'watchTogether.participantBuffering' => ({required Object name}) => '${name}님이 버퍼링 중입니다', 'watchTogether.participantNeedsUpdate' => ({required Object name}) => '${name}님이 이전 버전의 앱을 사용 중입니다 — 동기화를 사용할 수 없습니다', 'watchTogether.resumingWithout' => ({required Object name}) => '${name}님 없이 재생을 재개합니다', 'watchTogether.waitingForParticipants' => '다른 참가자의 로딩을 기다리는 중...', 'watchTogether.waitingForName' => ({required Object name}) => '${name}님을 기다리는 중...', - 'watchTogether.recentRooms' => '최근 방', + 'watchTogether.recentRooms' => '최근 참여한 방', 'watchTogether.renameRoom' => '방 이름 변경', 'watchTogether.removeRoom' => '제거', 'watchTogether.guestSwitchUnavailable' => '전환할 수 없음 — 동기화 서버를 사용할 수 없습니다', @@ -3197,7 +3205,7 @@ extension on TranslationsKo { 'downloads.downloadQueued' => '다운로드 대기 중', 'downloads.downloadResumed' => '다운로드를 재개했습니다', 'downloads.serverErrorBitrate' => '서버 오류: 파일이 원격 비트레이트 제한을 초과할 수 있습니다', - 'downloads.episodesQueued' => ({required Object count}) => '${count} 에피소드가 다운로드 대기열에 추가 되었습니다', + 'downloads.episodesQueued' => ({required Object count}) => '에피소드 ${count}개가 다운로드 대기열에 추가되었습니다', 'downloads.downloadDeleted' => '다운로드 삭제됨', 'downloads.deleteConfirm' => ({required Object title}) => '이 기기에서 "${title}"을(를) 삭제할까요?', 'downloads.cancelledDownloadTitle' => '취소된 다운로드', @@ -3284,7 +3292,7 @@ extension on TranslationsKo { 'companionRemote.pairing.connecting' => '연결 중...', 'companionRemote.pairing.searchingForDevices' => '기기 검색 중...', 'companionRemote.pairing.noDevicesFound' => '네트워크에서 기기를 찾을 수 없습니다', - 'companionRemote.pairing.noDevicesHint' => '데스크톱에서 Plezy를 열고 같은 WiFi를 사용하세요', + 'companionRemote.pairing.noDevicesHint' => '데스크톱에서 Plezy를 열고 같은 Wi-Fi를 사용하세요', 'companionRemote.pairing.availableDevices' => '사용 가능한 기기', 'companionRemote.pairing.manualConnection' => '수동 연결', 'companionRemote.pairing.cryptoInitFailed' => '보안 연결을 시작할 수 없습니다. 먼저 Plex에 로그인하세요.', @@ -3303,7 +3311,7 @@ extension on TranslationsKo { 'companionRemote.remote.tabMore' => '더 보기', 'companionRemote.remote.menu' => '메뉴', 'companionRemote.remote.tabNavigation' => '탭 탐색', - 'companionRemote.remote.tabDiscover' => '발견', + 'companionRemote.remote.tabDiscover' => '둘러보기', 'companionRemote.remote.tabLibraries' => '미디어 라이브러리', 'companionRemote.remote.tabSearch' => '검색', 'companionRemote.remote.tabDownloads' => '다운로드', @@ -3526,7 +3534,7 @@ extension on TranslationsKo { 'services.title' => '서비스', 'services.hubSubtitle' => '시청 진행률을 동기화하고 새 작품을 요청하세요.', 'services.notConnected' => '연결되지 않음', - 'services.connectedAs' => ({required Object username}) => '@${username} 로 연결됨', + 'services.connectedAs' => ({required Object username}) => '@${username}(으)로 연결됨', 'services.scrobble' => '진행률 자동 추적', 'services.scrobbleDescription' => '에피소드나 영화를 시청하면 목록을 업데이트합니다.', 'services.disconnectConfirm' => ({required Object service}) => '${service} 연결을 해제하시겠습니까?', diff --git a/lib/i18n/strings_nb.g.dart b/lib/i18n/strings_nb.g.dart index 631e475b..86937a7e 100644 --- a/lib/i18n/strings_nb.g.dart +++ b/lib/i18n/strings_nb.g.dart @@ -110,7 +110,7 @@ class _Translations$auth$nb extends Translations$auth$en { @override String get signInWithPlex => 'Logg inn med Plex'; @override String get showQRCode => 'Vis QR-kode'; @override String get authenticate => 'Autentiser'; - @override String get authenticationTimeout => 'Autentiseringen ble tidsavbrutt. Prøv igjen.'; + @override String get authenticationTimeout => 'Autentiseringen tok for lang tid. Prøv igjen.'; @override String get scanQRToSignIn => 'Skann denne QR-koden for å logge inn'; @override String get waitingForAuth => 'Venter på autentisering...\nLogg inn fra nettleseren.'; @override String get useBrowser => 'Bruk nettleser'; @@ -121,7 +121,7 @@ class _Translations$auth$nb extends Translations$auth$en { @override String get quickConnectWaiting => 'Venter på godkjenning…'; @override String get quickConnectCancel => 'Avbryt'; @override String get quickConnectExpired => 'Quick Connect er utløpt. Prøv igjen.'; - @override String get localDataRecoveryRequired => 'Plezy could not safely recover local sign-in and pending playback data. Please sign in again.'; + @override String get localDataRecoveryRequired => 'Plezy kunne ikke gjenopprette lokale innloggingsdata og ventende avspillingsdata på en sikker måte. Logg inn på nytt.'; } // Path: common @@ -175,7 +175,7 @@ class _Translations$common$nb extends Translations$common$en { @override String get loading => 'Laster...'; @override String get fullscreen => 'Fullskjerm'; @override String get exitFullscreen => 'Avslutt fullskjerm'; - @override String get pressBackAgainToExit => 'Trykk tilbake igjen for å avslutte'; + @override String get pressBackAgainToExit => 'Trykk på Tilbake en gang til for å avslutte'; } // Path: screens @@ -222,13 +222,13 @@ class _Translations$settings$nb extends Translations$settings$en { @override String get theme => 'Tema'; @override String get appearance => 'Utseende'; @override String get videoPlayback => 'Videoavspilling'; - @override String get videoPlaybackDescription => 'Konfigurer avspillingsatferd'; + @override String get videoPlaybackDescription => 'Tilpass avspillingen'; @override String get advanced => 'Avansert'; - @override String get episodePosterMode => 'Episodeplakatstil'; + @override String get episodePosterMode => 'Type episodeplakat'; @override String get seriesPoster => 'Serieplakat'; @override String get seasonPoster => 'Sesongplakat'; @override String get episodeThumbnail => 'Miniatyrbilde'; - @override String get showHeroSectionDescription => 'Vis fremhevet innholdskarusell på hjemmeskjermen'; + @override String get showHeroSectionDescription => 'Vis en karusell med fremhevet innhold på startskjermen'; @override String get secondsLabel => 'Sekunder'; @override String get minutesLabel => 'Minutter'; @override String get secondsShort => 's'; @@ -238,14 +238,16 @@ class _Translations$settings$nb extends Translations$settings$en { @override String get lightTheme => 'Lyst'; @override String get darkTheme => 'Mørkt'; @override String get oledTheme => 'OLED'; - @override String get libraryDensity => 'Bibliotekets tetthet'; + @override String get libraryDensity => 'Innholdstetthet i biblioteket'; @override String get compact => 'Kompakt'; @override String get comfortable => 'Komfortabel'; + @override String get tvCornerSpotlightBackdrop => 'Fremhevet bakgrunn i hjørnet'; + @override String get tvCornerSpotlightBackdropDescription => 'Vis fremhevet grafikk øverst til høyre i stedet for å fylle skjermen'; @override String get viewMode => 'Visningsmodus'; @override String get gridView => 'Rutenett'; @override String get listView => 'Liste'; @override String get showHeroSection => 'Vis fremhevet seksjon'; - @override String get continueWatchingAction => 'Handling for Fortsett å se'; + @override String get continueWatchingAction => 'Handling for «Fortsett å se»'; @override String get continueWatchingPlay => 'Spill av'; @override String get continueWatchingDetails => 'Åpne detaljer'; @override String get episodeAction => 'Handling for episoder'; @@ -265,8 +267,8 @@ class _Translations$settings$nb extends Translations$settings$en { @override String get showEpisodeNumberOnCardsDescription => 'Vis sesong- og episodenummer på episodekort'; @override String get showSeasonPostersOnTabs => 'Vis sesongplakater på faner'; @override String get showSeasonPostersOnTabsDescription => 'Vis hver sesongs plakat over fanen'; - @override String get tvFullCardLayout => 'Fulle TV-kort'; - @override String get tvFullCardLayoutDescription => 'Bruk bildebaserte TV-kort med skuespillernavn lagt over'; + @override String get tvFullCardLayout => 'Heldekkende TV-kort'; + @override String get tvFullCardLayoutDescription => 'Bruk TV-kort med bare bilder og skuespillernavn lagt over'; @override String get focusGlow => 'Fokusglød'; @override String get focusGlowDescription => 'Vis en myk glød rundt kortet i fokus'; @override String get visualEffects => 'Visuelle effekter'; @@ -277,15 +279,15 @@ class _Translations$settings$nb extends Translations$settings$en { @override String get visualEffectsReducedDescription => 'Færre animasjoner og grafikk med lavere oppløsning'; @override String get hideSpoilers => 'Skjul spoilere for usette episoder'; @override String get hideSpoilersDescription => 'Slør miniatyrbilder og beskrivelser for usette episoder'; - @override String get playerBackend => 'Spillermotor'; + @override String get playerBackend => 'Avspillingsmotor'; @override String get exoPlayer => 'ExoPlayer'; @override String get mpv => 'mpv'; @override String get hardwareDecoding => 'Maskinvaredekoding'; @override String get hardwareDecodingDescription => 'Bruk maskinvareakselerasjon når tilgjengelig'; @override String get bufferSize => 'Bufferstørrelse'; - @override String bufferSizeMB({required Object size}) => '${size}MB'; - @override String get bufferSizeAuto => 'Auto (Anbefalt)'; - @override String bufferSizeWarning({required Object heap, required Object size}) => '${heap}MB minne tilgjengelig. En buffer på ${size}MB kan påvirke avspilling.'; + @override String bufferSizeMB({required Object size}) => '${size} MB'; + @override String get bufferSizeAuto => 'Automatisk (anbefalt)'; + @override String bufferSizeWarning({required Object heap, required Object size}) => '${heap} MB minne tilgjengelig. En buffer på ${size} MB kan påvirke avspillingen.'; @override String get defaultQualityTitle => 'Standardkvalitet'; @override String get musicQualityTitle => 'Musikkvalitet'; @override String get subtitleStyling => 'Undertekststil'; @@ -294,7 +296,7 @@ class _Translations$settings$nb extends Translations$settings$en { @override String get largeSkipDuration => 'Lang hoppvarighet'; @override String get rewindOnResume => 'Spol tilbake ved gjenopptakelse'; @override String secondsUnit({required Object seconds}) => '${seconds} sekunder'; - @override String get defaultSleepTimer => 'Standard søvntimer'; + @override String get defaultSleepTimer => 'Standard innsovningstimer'; @override String minutesUnit({required Object minutes}) => '${minutes} minutter'; @override String get rememberTrackSelections => 'Husk sporvalg per serie/film'; @override String get rememberTrackSelectionsDescription => 'Husk lyd- og undertekstvalg per tittel'; @@ -307,10 +309,10 @@ class _Translations$settings$nb extends Translations$settings$en { @override String get keyboardShortcutsDescription => 'Tilpass tastatursnarveier'; @override String get videoPlayerNavigation => 'Videospillernavigering'; @override String get videoPlayerNavigationDescription => 'Bruk piltaster for å navigere videospillerkontroller'; - @override String get watchTogetherRelay => 'Se Sammen-relay'; - @override String get watchTogetherRelayDescription => 'Angi en egendefinert relay. Alle må bruke samme server.'; + @override String get watchTogetherRelay => 'Reléserver for Se sammen'; + @override String get watchTogetherRelayDescription => 'Angi en egendefinert reléserver. Alle må bruke samme server.'; @override String get watchTogetherRelayHint => 'https://min-relay.eksempel.no'; - @override String get watchTogetherRelayInvalid => 'Enter a valid HTTP or HTTPS relay base URL.'; + @override String get watchTogetherRelayInvalid => 'Angi en gyldig HTTP- eller HTTPS-adresse til reléserveren.'; @override String get crashReporting => 'Krasjrapportering'; @override String get crashReportingDescription => 'Send krasjrapporter for å hjelpe med å forbedre appen'; @override String get debugLogging => 'Feilsøkingslogging'; @@ -345,7 +347,7 @@ class _Translations$settings$nb extends Translations$settings$en { @override String validationErrorDuration({required Object min, required Object max, required Object unit}) => 'Varigheten må være mellom ${min} og ${max} ${unit}'; @override String shortcutAlreadyAssigned({required Object action}) => 'Snarvei allerede tilordnet til ${action}'; @override String shortcutUpdated({required Object action}) => 'Snarvei oppdatert for ${action}'; - @override String get saveFailed => 'Could not save changes. Try again.'; + @override String get saveFailed => 'Kunne ikke lagre endringene. Prøv igjen.'; @override String get autoSkip => 'Automatisk hopp'; @override String get autoSkipIntro => 'Hopp over intro automatisk'; @override String get autoSkipIntroDescription => 'Hopp automatisk over intromarkører etter noen sekunder'; @@ -372,37 +374,37 @@ class _Translations$settings$nb extends Translations$settings$en { @override String get downloadLocationReset => 'Nedlastingsplassering tilbakestilt til standard'; @override String get downloadLocationInvalid => 'Valgt mappe er ikke skrivbar'; @override String get downloadLocationPickerUnavailable => 'Mappevalg er ikke tilgjengelig på denne enheten'; - @override String get downloadOnWifiOnly => 'Last ned kun på WiFi'; - @override String get downloadOnWifiOnlyDescription => 'Forhindre nedlastinger på mobildata'; - @override String get autoRemoveWatchedDownloads => 'Fjern sette nedlastinger automatisk'; - @override String get autoRemoveWatchedDownloadsDescription => 'Slett sette nedlastinger automatisk'; - @override String get cellularDownloadBlocked => 'Nedlastinger er blokkert på mobilnett. Bruk WiFi eller endre innstillingen.'; - @override String get maxVolume => 'Maks volum'; - @override String get maxVolumeDescription => 'Tillat volumforsterkning over 100% for stille media'; - @override String maxVolumePercent({required Object percent}) => '${percent}%'; + @override String get downloadOnWifiOnly => 'Last bare ned via Wi-Fi'; + @override String get downloadOnWifiOnlyDescription => 'Forhindre nedlasting via mobildata'; + @override String get autoRemoveWatchedDownloads => 'Fjern avspilte nedlastinger automatisk'; + @override String get autoRemoveWatchedDownloadsDescription => 'Slett avspilte nedlastinger automatisk'; + @override String get cellularDownloadBlocked => 'Nedlastinger er blokkert på mobilnett. Bruk Wi-Fi eller endre innstillingen.'; + @override String get maxVolume => 'Maksvolum'; + @override String get maxVolumeDescription => 'Tillat volumforsterkning over 100 % for medier med lavt lydnivå'; + @override String maxVolumePercent({required Object percent}) => '${percent} %'; @override String get discordRichPresence => 'Discord Rich Presence'; @override String get discordRichPresenceDescription => 'Vis hva du ser på Discord'; @override String get services => 'Tjenester'; @override String get servicesDescription => 'Koble til Trakt, MyAnimeList, Seerr og mer'; @override String get manageLibrariesDescription => 'Omorganiser og skjul biblioteker'; - @override String get companionRemoteServer => 'Companion Remote-server'; - @override String get companionRemoteServerDescription => 'Tillat mobilenheter på nettverket ditt å styre denne appen'; - @override String get autoPip => 'Auto bilde-i-bilde'; - @override String get autoPipDescription => 'Gå til bilde-i-bilde når du forlater under avspilling'; + @override String get companionRemoteServer => 'Fjernkontrollserver'; + @override String get companionRemoteServerDescription => 'La mobilenheter på nettverket styre denne appen'; + @override String get autoPip => 'Automatisk bilde-i-bilde'; + @override String get autoPipDescription => 'Åpne bilde-i-bilde når du forlater appen under avspilling'; @override String get matchContentFrameRate => 'Tilpass innholdets bildefrekvens'; @override String get matchContentFrameRateDescription => 'Tilpass skjermens oppdateringsfrekvens til videoinnhold'; @override String get matchRefreshRate => 'Tilpass oppdateringsfrekvens'; @override String get matchRefreshRateDescription => 'Tilpass skjermens oppdateringsfrekvens i fullskjerm'; - @override String get matchDynamicRange => 'Tilpass dynamisk område'; + @override String get matchDynamicRange => 'Tilpass dynamikkområde'; @override String get matchDynamicRangeDescription => 'Slå på HDR for HDR-innhold, og deretter tilbake til SDR'; @override String get displaySwitchDelay => 'Forsinkelse ved skjermbytte'; @override String get tunneledPlayback => 'Tunnelert avspilling'; @override String get tunneledPlaybackDescription => 'Bruk videotunneling. Slå av hvis HDR-avspilling viser svart video.'; - @override String get audioPassthrough => 'Lydgjennomgang'; + @override String get audioPassthrough => 'Direkte lydutgang'; @override String get audioPassthroughDescription => 'Send Dolby/DTS-lyd til mottakeren eller TV-en uten omkoding, slik at surroundlyd bevares. Slå av hvis du ikke har lyd.'; - @override String get audioPassthroughDescriptionAppleTv => 'Overlater Dolby Digital Plus (inkl. Atmos) til systemet som bitstream. DTS og TrueHD spilles fortsatt av som flerkanals PCM. Korte lydbrudd kan forekomme ved søking.'; + @override String get audioPassthroughDescriptionAppleTv => 'Bruk Apples innebygde Dolby-dekoder for Dolby Digital Plus, inkludert Atmos. DTS og TrueHD spilles fortsatt av som flerkanals PCM. Slå av hvis du ikke har lyd.'; @override String get audioDownmix => 'Nedmiks til stereo'; - @override String get audioDownmixDescription => 'Mikser surroundlyd ned til to kanaler for stereohøyttalere eller hodetelefoner'; + @override String get audioDownmixDescription => 'Miks surroundlyd ned til to kanaler for stereohøyttalere eller hodetelefoner'; @override String get downmixCenterBoost => 'Forsterkning av senterkanal'; @override String downmixCenterBoostValue({required Object db}) => '${db} dB'; @override String get downmixCenterBoostLabel => 'Forsterkning (dB)'; @@ -412,7 +414,7 @@ class _Translations$settings$nb extends Translations$settings$en { @override String get atmosDiagnostics => 'Atmos-utgangstest'; @override String get atmosDiagnosticsDescription => 'Diagnostiser Dolby Atmos-utgangen ved å spille testsignaler gjennom systemspilleren'; @override String get atmosTestHlsAtmos => 'Apple Atmos-strøm'; - @override String get atmosTestHlsAtmosDescription => 'Kjent god Dolby Atmos-strøm. Mottakeren bør vise Dolby Atmos.'; + @override String get atmosTestHlsAtmosDescription => 'Verifisert Dolby Atmos-strøm. Mottakeren bør vise Dolby Atmos.'; @override String get atmosTestHlsControl => 'Apple surround-strøm'; @override String get atmosTestHlsControlDescription => 'Kontrollstrøm uten Atmos. Mottakeren bør vise surround uten Atmos.'; @override String get atmosTestRawStream => 'Rå EAC3-strøm'; @@ -425,15 +427,15 @@ class _Translations$settings$nb extends Translations$settings$en { @override String get atmosTestUrlMissing => 'Angi testfilens URL først'; @override String get atmosTestStatus => 'Status'; @override String get dvConversionMode => 'Dolby Vision-konvertering'; - @override String get dvConversionModeDescription => 'Velg hvordan ExoPlayer håndterer Dolby Vision Profile 7-filer.'; - @override String get dvConversionAuto => 'Auto'; - @override String get dvConversionNative => 'Innebygd / deaktivert'; + @override String get dvConversionModeDescription => 'Velg hvordan ExoPlayer håndterer filer med Dolby Vision-profil 7.'; + @override String get dvConversionAuto => 'Automatisk'; + @override String get dvConversionNative => 'Nativ / deaktivert'; @override String get dvConversionDv81 => 'P7 → P8.1'; @override String get dvConversionHevcStrip => 'P7 → HEVC'; - @override String get dvConversionAutoDescription => 'Bruk enhetens kapabilitetsdeteksjon og normal reserveoppførsel'; - @override String get dvConversionNativeDescription => 'Tving native DV7 og undertrykk forsøk på DV-konvertering'; - @override String get dvConversionDv81Description => 'Tving inline RPU-konvertering til Dolby Vision profil 8.1'; - @override String get dvConversionHevcStripDescription => 'Fjern Dolby Vision RPU/EL-lag og presenter vanlig HEVC'; + @override String get dvConversionAutoDescription => 'Oppdag enhetens egenskaper og bruk vanlig reserveoppførsel'; + @override String get dvConversionNativeDescription => 'Tving opprinnelig DV7-avspilling og ikke prøv DV-konvertering på nytt'; + @override String get dvConversionDv81Description => 'Tving direkte RPU-konvertering til Dolby Vision-profil 8.1'; + @override String get dvConversionHevcStripDescription => 'Fjern Dolby Vision RPU/EL-lag og lever som vanlig HEVC'; @override String get requireProfileSelectionOnOpen => 'Spør om profil ved appåpning'; @override String get requireProfileSelectionOnOpenDescription => 'Vis profilvalg hver gang appen åpnes'; @override String get forceTvMode => 'Tving TV-modus'; @@ -443,12 +445,12 @@ class _Translations$settings$nb extends Translations$settings$en { @override String get exitFullscreenOnPlayerClose => 'Avslutt fullskjerm ved lukking av avspiller'; @override String get exitFullscreenOnPlayerCloseDescription => 'Avslutt fullskjerm automatisk når videospilleren lukkes'; @override String get autoHidePerformanceOverlay => 'Skjul ytelsesoverlegg automatisk'; - @override String get autoHidePerformanceOverlayDescription => 'Fade ytelsesoverlegget med avspillingskontrollene'; - @override String get showNavBarLabels => 'Vis navigasjonsfeltlabeler'; - @override String get showNavBarLabelsDescription => 'Vis tekstlabeler under navigasjonsfeltikoner'; - @override String get startupSection => 'Oppstartsseksjon'; - @override String get liveTvDefaultFavorites => 'Standard til favorittkanaler'; - @override String get liveTvDefaultFavoritesDescription => 'Vis kun favorittkanaler når du åpner Live TV'; + @override String get autoHidePerformanceOverlayDescription => 'Ton ytelsesoverlegget ut sammen med avspillingskontrollene'; + @override String get showNavBarLabels => 'Vis etiketter i navigasjonsfeltet'; + @override String get showNavBarLabelsDescription => 'Vis tekstetiketter under ikonene i navigasjonsfeltet'; + @override String get startupSection => 'Startseksjon'; + @override String get liveTvDefaultFavorites => 'Vis favorittkanaler som standard'; + @override String get liveTvDefaultFavoritesDescription => 'Vis bare favorittkanaler når du åpner Direkte-TV'; @override String get display => 'Skjerm'; @override String get homeScreen => 'Hjemmeskjerm'; @override String get navigation => 'Navigering'; @@ -456,8 +458,8 @@ class _Translations$settings$nb extends Translations$settings$en { @override String get content => 'Innhold'; @override String get player => 'Spiller'; @override String get subtitlesAndConfig => 'Undertekster og konfigurasjon'; - @override String get seekAndTiming => 'Søk og tidtaking'; - @override String get behavior => 'Atferd'; + @override String get seekAndTiming => 'Spoling og tidsinnstillinger'; + @override String get behavior => 'Oppførsel'; } // Path: search @@ -517,7 +519,7 @@ class _Translations$fileInfo$nb extends Translations$fileInfo$en { @override String get overallBitrate => 'Total bitrate'; @override String get path => 'Sti'; @override String get size => 'Størrelse'; - @override String get container => 'Beholder'; + @override String get container => 'Format'; @override String get duration => 'Varighet'; @override String get optimizedForStreaming => 'Optimalisert for strømming'; @override String get has64bitOffsets => '64-biters forskyvninger'; @@ -536,7 +538,7 @@ class _Translations$mediaMenu$nb extends Translations$mediaMenu$en { @override String get viewDetails => 'Vis detaljer'; @override String get goToSeries => 'Gå til serie'; @override String get shufflePlay => 'Tilfeldig avspilling'; - @override String get shuffleNotAvailableOffline => 'Tilfeldig avspilling er ikke tilgjengelig offline'; + @override String get shuffleNotAvailableOffline => 'Tilfeldig avspilling er ikke tilgjengelig uten nett'; @override String get fileInfo => 'Filinformasjon'; @override String get deleteFromServer => 'Slett fra server'; @override String get confirmDelete => 'Slette dette mediet og filene fra serveren?'; @@ -590,7 +592,7 @@ class _Translations$accessibility$nb extends Translations$accessibility$en { @override String get expandText => 'Utvid tekst'; @override String get collapseText => 'Fold sammen tekst'; @override String get alphabetNavigation => 'Alfabetisk navigasjon'; - @override String get alphabetScrollHint => 'Sveip opp eller ned for å flytte én bokstav'; + @override String get alphabetScrollHint => 'Sveip opp eller ned for å gå én bokstav om gangen'; @override String rowColumnPosition({required Object row, required Object rowCount, required Object column, required Object columnCount}) => 'Rad ${row} av ${rowCount}, kolonne ${column} av ${columnCount}'; @override String rowPosition({required Object row, required Object rowCount}) => 'Rad ${row} av ${rowCount}'; } @@ -639,7 +641,7 @@ class _Translations$videoControls$nb extends Translations$videoControls$en { @override String get lockRotation => 'Lås rotasjon'; @override String get unlockRotation => 'Lås opp rotasjon'; @override String get timerActive => 'Timer aktiv'; - @override String playbackWillPauseIn({required Object duration}) => 'Avspilling vil pause om ${duration}'; + @override String playbackWillPauseIn({required Object duration}) => 'Avspillingen settes på pause om ${duration}'; @override String get sleepTimerEndOfVideo => 'Slutten av gjeldende video'; @override String get sleepTimerStopAtHeader => 'Stopp ved'; @override String get sleepTimerDurationHeader => 'Timer'; @@ -647,10 +649,12 @@ class _Translations$videoControls$nb extends Translations$videoControls$en { @override String get stillWatching => 'Ser du fortsatt?'; @override String pausingIn({required Object seconds}) => 'Pauser om ${seconds}s'; @override String get continueWatching => 'Fortsett'; - @override String get autoPlayNext => 'Spill neste automatisk'; + @override String get autoPlayNext => 'Spill av neste automatisk'; @override String get playNext => 'Spill neste'; @override String get playButton => 'Spill av'; @override String get pauseButton => 'Pause'; + @override String get showPlaybackControls => 'Vis avspillingskontroller'; + @override String get hidePlaybackControls => 'Skjul avspillingskontroller'; @override String seekBackwardButton({required Object seconds}) => 'Spol tilbake ${seconds} sekunder'; @override String seekForwardButton({required Object seconds}) => 'Spol fremover ${seconds} sekunder'; @override String get previousButton => 'Forrige episode'; @@ -678,14 +682,14 @@ class _Translations$videoControls$nb extends Translations$videoControls$en { @override String get rotationLockButton => 'Rotasjonslås'; @override String get lockScreen => 'Lås skjerm'; @override String get screenLockButton => 'Skjermlås'; - @override String get longPressToUnlock => 'Langt trykk for å låse opp'; + @override String get longPressToUnlock => 'Trykk og hold for å låse opp'; @override String get timelineSlider => 'Videotidslinje'; @override String get volumeSlider => 'Volumnivå'; @override String endsAt({required Object time}) => 'Slutter kl. ${time}'; @override String get pipActive => 'Spiller i bilde-i-bilde'; @override String get pipFailed => 'Bilde-i-bilde kunne ikke starte'; @override String get screenshotSaved => 'Skjermbilde lagret'; - @override String zoomPercent({required Object percent}) => 'Zoom ${percent}%'; + @override String zoomPercent({required Object percent}) => 'Zoom ${percent} %'; @override late final _Translations$videoControls$pipErrors$nb pipErrors = _Translations$videoControls$pipErrors$nb._(_root); @override String get chapters => 'Kapitler'; @override String get noChaptersAvailable => 'Ingen kapitler tilgjengelig'; @@ -716,19 +720,19 @@ class _Translations$messages$nb extends Translations$messages$en { @override String get markedAsUnwatchedOffline => 'Merket som usett (synkroniseres når tilkoblet)'; @override String autoRemovedWatchedDownload({required Object title}) => 'Automatisk fjernet: ${title}'; @override String autoRemovedWatchedDownloads({required num n}) => (_root.$meta.cardinalResolver ?? PluralResolvers.cardinal('nb'))(n, - one: 'Fjernet automatisk ${n} sett nedlasting', - other: 'Fjernet automatisk ${n} sette nedlastinger', + one: 'Fjernet automatisk ${n} avspilt nedlasting', + other: 'Fjernet automatisk ${n} avspilte nedlastinger', ); @override String get removedFromContinueWatching => 'Fjernet fra Fortsett å se'; @override String errorLoading({required Object error}) => 'Feil: ${error}'; @override String get streamInterrupted => 'Avspillingen ble avbrutt. Trykk på Spill av eller spol for å prøve på nytt.'; @override String get liveStreamInterrupted => 'Direktesendingen ble avbrutt. Trykk på Spill av for å prøve på nytt.'; @override String get fileInfoNotAvailable => 'Filinformasjon ikke tilgjengelig'; - @override String get playbackAuthenticationRequired => 'Sign in to the media server again to play this item.'; - @override String get playbackServerUnavailable => 'The media server is unavailable. Try again later.'; - @override String get playbackDataInvalid => 'The server returned invalid playback information.'; - @override String get playbackCancelled => 'Playback was cancelled.'; - @override String get playbackFailed => 'Playback could not be started.'; + @override String get playbackAuthenticationRequired => 'Logg inn på medieserveren på nytt for å spille av dette elementet.'; + @override String get playbackServerUnavailable => 'Medieserveren er utilgjengelig. Prøv igjen senere.'; + @override String get playbackDataInvalid => 'Serveren returnerte ugyldig avspillingsinformasjon.'; + @override String get playbackCancelled => 'Avspillingen ble avbrutt.'; + @override String get playbackFailed => 'Kunne ikke starte avspillingen.'; @override String errorLoadingFileInfo({required Object error}) => 'Feil ved lasting av filinformasjon: ${error}'; @override String get errorLoadingSeries => 'Feil ved lasting av serie'; @override String get musicNotSupported => 'Musikkavspilling støttes ikke ennå'; @@ -752,7 +756,7 @@ class _Translations$messages$nb extends Translations$messages$en { @override String get noEpisodesFoundGeneral => 'Ingen episoder funnet'; @override String get episodesLoadFailed => 'Kunne ikke laste episoder'; @override String get noResultsFound => 'Ingen resultater funnet'; - @override String sleepTimerSet({required Object label}) => 'Søvntimer satt til ${label}'; + @override String sleepTimerSet({required Object label}) => 'Innsovningstimer satt til ${label}'; @override String get noItemsAvailable => 'Ingen elementer tilgjengelig'; @override String get failedToCreatePlayQueueNoItems => 'Kunne ikke opprette avspillingskø – ingen elementer'; @override String failedPlayback({required Object action, required Object error}) => 'Kunne ikke ${action}: ${error}'; @@ -879,7 +883,7 @@ class _Translations$profiles$nb extends Translations$profiles$en { @override String get borrowExplain => 'Lån en annen profils tilkobling. PIN-beskyttede profiler krever PIN.'; @override String get borrowEmpty => 'Ingenting å låne enda.'; @override String get borrowEmptySubtitle => 'Koble Plex eller Jellyfin til en annen profil først.'; - @override String get borrowLoadFailed => 'Available connections could not be loaded. Try again.'; + @override String get borrowLoadFailed => 'Kunne ikke laste inn tilgjengelige tilkoblinger. Prøv igjen.'; @override String borrowFromProfile({required Object displayName}) => 'Fra ${displayName}'; @override String get borrowConnectionBorrowed => 'Tilkobling lånt.'; @override String get borrowFailed => 'Kunne ikke låne tilkoblingen.'; @@ -922,7 +926,7 @@ class _Translations$discover$nb extends Translations$discover$en { // Translations @override String get title => 'Oppdag'; - @override String get noContentAvailable => 'Ingen innhold tilgjengelig'; + @override String get noContentAvailable => 'Ikke noe innhold tilgjengelig'; @override String get addMediaToLibraries => 'Legg til medier i bibliotekene dine'; @override String get continueWatching => 'Fortsett å se'; @override String continueWatchingIn({required Object library}) => 'Fortsett å se i ${library}'; @@ -936,7 +940,7 @@ class _Translations$discover$nb extends Translations$discover$en { @override String playEpisode({required Object season, required Object episode}) => 'S${season}E${episode}'; @override String get overview => 'Oversikt'; @override String get cast => 'Skuespillere'; - @override String get extras => 'Trailere og ekstra'; + @override String get extras => 'Trailere og ekstramateriale'; @override String get studio => 'Studio'; @override String get rating => 'Vurdering'; @override String get movie => 'Film'; @@ -1027,7 +1031,7 @@ class _Translations$about$nb extends Translations$about$en { // Translations @override String get title => 'Om'; - @override String get openSourceLicenses => 'Åpen kildekode-lisenser'; + @override String get openSourceLicenses => 'Lisenser for åpen kildekode'; @override String versionLabel({required Object version}) => 'Versjon ${version}'; @override String get appDescription => 'En vakker Plex- og Jellyfin-klient for Flutter'; @override String get viewLicensesDescription => 'Vis lisenser for tredjepartsbiblioteker'; @@ -1158,12 +1162,12 @@ class _Translations$liveTv$nb extends Translations$liveTv$en { @override String get daytime => 'Dagtid'; @override String get evening => 'Kveld'; @override String get lateNight => 'Sen kveld'; - @override String get whatsOn => 'Hva går nå'; + @override String get whatsOn => 'På TV nå'; @override String get watchChannel => 'Se kanal'; @override String get favorites => 'Favoritter'; @override String get reorderFavorites => 'Endre rekkefølge på favoritter'; @override String get favoritesLoadFailed => 'Kunne ikke laste inn favoritter. Kontroller tilkoblingen og prøv på nytt.'; - @override String get favoritesUpdateFailed => 'Could not update favorites. Check your connection and try again.'; + @override String get favoritesUpdateFailed => 'Kunne ikke oppdatere favorittene. Kontroller tilkoblingen og prøv på nytt.'; @override String get joinSession => 'Bli med i pågående økt'; @override String watchFromStart({required Object minutes}) => 'Se fra starten (${minutes} min siden)'; @override String get watchLive => 'Se direkte'; @@ -1198,8 +1202,8 @@ class _Translations$liveTv$nb extends Translations$liveTv$en { @override String get editRule => 'Rediger regel'; @override String get editRuleAction => 'Rediger'; @override String get recordingRuleUpdated => 'Opptaksregel oppdatert'; - @override String get guideReloadRequested => 'Forespurte guide-oppdatering'; - @override String get rulesProcessRequested => 'Forespurte regelevaluering'; + @override String get guideReloadRequested => 'Oppdatering av programguiden er forespurt'; + @override String get rulesProcessRequested => 'Ny vurdering av reglene er forespurt'; @override String get recordShow => 'Ta opp program'; } @@ -1352,7 +1356,7 @@ class _Translations$watchTogether$nb extends Translations$watchTogether$en { @override String get failedToCreate => 'Kunne ikke opprette økt'; @override String get failedToJoin => 'Kunne ikke bli med i økt'; @override String get sessionCodeCopied => 'Øktkode kopiert til utklippstavle'; - @override String get relayUnreachable => 'Relay-serveren kan ikke nås. ISP-blokkering kan hindre Watch Together.'; + @override String get relayUnreachable => 'Reléserveren kan ikke nås. Blokkering hos internettleverandøren kan hindre Se sammen.'; @override String get reconnectingToHost => 'Kobler til verten på nytt...'; @override String get currentPlayback => 'Gjeldende avspilling'; @override String get joinCurrentPlayback => 'Bli med i gjeldende avspilling'; @@ -1360,13 +1364,13 @@ class _Translations$watchTogether$nb extends Translations$watchTogether$en { @override String get failedToOpenCurrentPlayback => 'Kunne ikke åpne gjeldende avspilling'; @override String participantJoined({required Object name}) => '${name} ble med'; @override String participantLeft({required Object name}) => '${name} forlot'; - @override String participantPaused({required Object name}) => '${name} pauset'; - @override String participantResumed({required Object name}) => '${name} gjenopptok'; - @override String participantSeeked({required Object name}) => '${name} spolet'; + @override String participantPaused({required Object name}) => '${name} satte avspillingen på pause'; + @override String participantResumed({required Object name}) => '${name} startet avspillingen igjen'; + @override String participantSeeked({required Object name}) => '${name} endret avspillingsposisjonen'; @override String participantBuffering({required Object name}) => '${name} buffrer'; @override String participantNeedsUpdate({required Object name}) => '${name} bruker en eldre appversjon — synkronisering er ikke tilgjengelig'; @override String resumingWithout({required Object name}) => 'Fortsetter uten ${name}'; - @override String get waitingForParticipants => 'Venter på at andre laster inn...'; + @override String get waitingForParticipants => 'Venter på at de andre skal laste inn...'; @override String waitingForName({required Object name}) => 'Venter på ${name}...'; @override String get recentRooms => 'Nylige rom'; @override String get renameRoom => 'Gi nytt navn til rom'; @@ -1482,7 +1486,7 @@ class _Translations$companionRemote$nb extends Translations$companionRemote$en { final TranslationsNb _root; // ignore: unused_field // Translations - @override String get title => 'Følgesvenn-fjernkontroll'; + @override String get title => 'Fjernkontroll'; @override String connectedTo({required Object name}) => 'Tilkoblet ${name}'; @override String get unknownDevice => 'Ukjent enhet'; @override late final _Translations$companionRemote$session$nb session = _Translations$companionRemote$session$nb._(_root); @@ -1502,13 +1506,13 @@ class _Translations$videoSettings$nb extends Translations$videoSettings$en { @override String get normalSpeed => 'Normal'; @override String sleepTimerActive({required Object duration}) => 'Aktiv (${duration})'; @override String get zoom => 'Zoom'; - @override String get sleepTimer => 'Søvntimer'; + @override String get sleepTimer => 'Innsovningstimer'; @override String get audioSync => 'Lydsynkronisering'; @override String get subtitleSync => 'Undertekstsynkronisering'; @override String get hdr => 'HDR'; @override String get audioOutput => 'Lydutgang'; @override String get performanceOverlay => 'Ytelsesoverlegg'; - @override String get audioPassthrough => 'Lydgjennomgang'; + @override String get audioPassthrough => 'Direkte lydutgang'; @override String get audioNormalization => 'Normaliser lydstyrke'; @override String get audioDownmix => 'Nedmiks til stereo'; } @@ -1538,10 +1542,10 @@ class _Translations$performanceOverlay$nb extends Translations$performanceOverla @override String get matrix => 'Matrise'; @override String get primaries => 'Primærfarger'; @override String get transfer => 'Overføring'; - @override String get renderFps => 'Render-FPS'; + @override String get renderFps => 'Gjengivelses-FPS'; @override String get displayFps => 'Skjerm-FPS'; @override String get avSync => 'A/V-synk'; - @override String get dropped => 'Droppet'; + @override String get dropped => 'Tapte'; @override String get dvRpus => 'DV RPU-er'; @override String get dvRpuAverage => 'DV RPU snitt'; @override String get dvSampleAverage => 'DV-sample snitt'; @@ -1549,8 +1553,8 @@ class _Translations$performanceOverlay$nb extends Translations$performanceOverla @override String get minLuma => 'Min luma'; @override String get maxCll => 'MaxCLL'; @override String get maxFall => 'MaxFALL'; - @override String get cacheUsed => 'Cache brukt'; - @override String get cacheLimit => 'Cachegrense'; + @override String get cacheUsed => 'Brukt hurtigbuffer'; + @override String get cacheLimit => 'Grense for hurtigbuffer'; @override String get speed => 'Hastighet'; @override String get player => 'Spiller'; @override String get memory => 'Minne'; @@ -1591,14 +1595,14 @@ class _Translations$metadataEdit$nb extends Translations$metadataEdit$en { // Translations @override String get editMetadata => 'Rediger...'; @override String get screenTitle => 'Rediger metadata'; - @override String get basicInfo => 'Grunnleggende info'; - @override String get artwork => 'Kunstverk'; + @override String get basicInfo => 'Grunnleggende informasjon'; + @override String get artwork => 'Grafikk'; @override String get advancedSettings => 'Avanserte innstillinger'; @override String get title => 'Tittel'; - @override String get sortTitle => 'Sorteringsstittel'; + @override String get sortTitle => 'Sorteringstittel'; @override String get originalTitle => 'Originaltittel'; @override String get releaseDate => 'Utgivelsesdato'; - @override String get contentRating => 'Innholdsvurdering'; + @override String get contentRating => 'Aldersgrense'; @override String get studio => 'Studio'; @override String get tagline => 'Slagord'; @override String get summary => 'Sammendrag'; @@ -1616,11 +1620,11 @@ class _Translations$metadataEdit$nb extends Translations$metadataEdit$en { @override String get imageUrl => 'Bilde-URL'; @override String get metadataUpdated => 'Metadata oppdatert'; @override String get metadataUpdateFailed => 'Kunne ikke oppdatere metadata'; - @override String get artworkUpdated => 'Kunstverk oppdatert'; - @override String get artworkUpdateFailed => 'Kunne ikke oppdatere kunstverk'; - @override String get noArtworkAvailable => 'Ingen kunstverk tilgjengelig'; - @override String artworkOption({required Object index}) => 'Alternativ for kunstverk ${index}'; - @override String selectedArtworkOption({required Object index}) => 'Alternativ for kunstverk ${index}, valgt'; + @override String get artworkUpdated => 'Grafikk oppdatert'; + @override String get artworkUpdateFailed => 'Kunne ikke oppdatere grafikken'; + @override String get noArtworkAvailable => 'Ingen grafikk tilgjengelig'; + @override String artworkOption({required Object index}) => 'Grafikkalternativ ${index}'; + @override String selectedArtworkOption({required Object index}) => 'Grafikkalternativ ${index}, valgt'; @override String get notSet => 'Ikke angitt'; @override String get libraryDefault => 'Bibliotekstandard'; @override String get accountDefault => 'Kontostandard'; @@ -1674,14 +1678,14 @@ class _Translations$matchScreen$nb extends Translations$matchScreen$en { final TranslationsNb _root; // ignore: unused_field // Translations - @override String get match => 'Match...'; - @override String get fixMatch => 'Rett match...'; - @override String get unmatch => 'Fjern match'; - @override String get unmatchConfirm => 'Fjerne denne matchen? Plex behandler den som umatchet til den matches igjen.'; - @override String get unmatchSuccess => 'Match fjernet'; - @override String get unmatchFailed => 'Kunne ikke fjerne match'; - @override String get matchApplied => 'Match anvendt'; - @override String get matchFailed => 'Kunne ikke anvende match'; + @override String get match => 'Finn treff...'; + @override String get fixMatch => 'Korriger treff...'; + @override String get unmatch => 'Fjern treff'; + @override String get unmatchConfirm => 'Fjerne dette treffet? Plex behandler elementet som uten treff til det matches på nytt.'; + @override String get unmatchSuccess => 'Treff fjernet'; + @override String get unmatchFailed => 'Kunne ikke fjerne treff'; + @override String get matchApplied => 'Treff valgt'; + @override String get matchFailed => 'Kunne ikke velge treff'; @override String get titleHint => 'Tittel'; @override String get yearHint => 'År'; @override String get search => 'Søk'; @@ -1714,8 +1718,8 @@ class _Translations$trakt$nb extends Translations$trakt$en { @override String get disconnectConfirmBody => 'Plezy slutter å sende hendelser til Trakt. Du kan koble til igjen når som helst.'; @override String get scrobble => 'Sanntids-scrobbling'; @override String get scrobbleDescription => 'Send avspillings-, pause- og stopphendelser til Trakt under avspilling.'; - @override String get watchedSync => 'Synkroniser sett-status'; - @override String get watchedSyncDescription => 'Når du markerer noe som sett i Plezy, markeres det også på Trakt.'; + @override String get watchedSync => 'Synkroniser settstatus'; + @override String get watchedSyncDescription => 'Når du markerer elementer som sett i Plezy, markeres de også som sett på Trakt.'; } // Path: seerr @@ -1738,8 +1742,8 @@ class _Translations$seerr$nb extends Translations$seerr$en { @override String get instance => 'Instans'; @override String get disconnectConfirm => 'Koble fra Seerr?'; @override String get disconnectConfirmBody => 'Plezy glemmer denne Seerr-instansen. Koble til igjen når som helst.'; - @override String get request => 'Forespør'; - @override String get request4k => 'Forespør i 4K'; + @override String get request => 'Be om'; + @override String get request4k => 'Be om i 4K'; @override String get seasons => 'Sesonger'; @override String get allSeasons => 'Alle sesonger'; @override String get advancedOptions => 'Avansert'; @@ -1794,19 +1798,19 @@ class _Translations$addServer$nb extends Translations$addServer$en { @override String get localServers => 'Lokale Jellyfin-servere'; @override String get username => 'Brukernavn'; @override String get password => 'Passord'; - @override String get signIn => 'Logg på'; + @override String get signIn => 'Logg inn'; @override String get change => 'Endre'; @override String get required => 'Påkrevd'; @override String couldNotReachServer({required Object error}) => 'Kunne ikke nå serveren: ${error}'; - @override String signInFailed({required Object error}) => 'Pålogging mislyktes: ${error}'; + @override String signInFailed({required Object error}) => 'Innlogging mislyktes: ${error}'; @override String quickConnectFailed({required Object error}) => 'Quick Connect mislyktes: ${error}'; - @override String get addPlexTitle => 'Logg på med Plex'; - @override String get pinExpired => 'PIN-koden gikk ut før pålogging. Prøv igjen.'; + @override String get addPlexTitle => 'Logg inn med Plex'; + @override String get pinExpired => 'PIN-koden utløp før innloggingen var fullført. Prøv igjen.'; @override String failedToRegisterAccount({required Object error}) => 'Kunne ikke registrere kontoen: ${error}'; @override String get enterJellyfinUrlError => 'Oppgi URL-en til Jellyfin-serveren din'; @override String get addConnectionTitle => 'Legg til tilkobling'; - @override String addConnectionTitleScoped({required Object name}) => 'Legg til i ${name}'; - @override String get signInWithPlexCard => 'Logg på med Plex'; + @override String addConnectionTitleScoped({required Object name}) => 'Legg til for ${name}'; + @override String get signInWithPlexCard => 'Logg inn med Plex'; @override String get signInWithPlexCardSubtitle => 'Autoriser denne enheten. Delte servere legges til.'; @override String get signInWithPlexCardSubtitleScoped => 'Autoriser en Plex-konto. Home-brukere blir profiler.'; @override String get connectToJellyfinCard => 'Koble til Jellyfin'; @@ -1828,9 +1832,9 @@ class _Translations$hotkeys$actions$nb extends Translations$hotkeys$actions$en { @override String get volumeDown => 'Volum ned'; @override String seekForward({required Object seconds}) => 'Spol fremover (${seconds}s)'; @override String seekBackward({required Object seconds}) => 'Spol bakover (${seconds}s)'; - @override String get fullscreenToggle => 'Veksle fullskjerm'; - @override String get muteToggle => 'Veksle demping'; - @override String get subtitleToggle => 'Veksle undertekster'; + @override String get fullscreenToggle => 'Slå fullskjerm av/på'; + @override String get muteToggle => 'Slå lyddemping av/på'; + @override String get subtitleToggle => 'Slå undertekster av/på'; @override String get audioTrackNext => 'Neste lydspor'; @override String get subtitleTrackNext => 'Neste undertekstspor'; @override String get chapterNext => 'Neste kapittel'; @@ -1845,7 +1849,7 @@ class _Translations$hotkeys$actions$nb extends Translations$hotkeys$actions$en { @override String get zoomReset => 'Tilbakestill zoom'; @override String get subSeekNext => 'Spol til neste undertekst'; @override String get subSeekPrev => 'Spol til forrige undertekst'; - @override String get shaderToggle => 'Veksle shadere'; + @override String get shaderToggle => 'Slå shadere av/på'; @override String get skipMarker => 'Hopp over intro/rulletekst'; @override String get screenshot => 'Ta skjermbilde'; } @@ -1922,7 +1926,7 @@ class _Translations$libraries$sortLabels$nb extends Translations$libraries$sortL // Translations @override String get title => 'Tittel'; - @override String get dateAdded => 'Lagt til-dato'; + @override String get dateAdded => 'Dato lagt til'; @override String get releaseDate => 'Utgivelsesdato'; @override String get rating => 'Vurdering'; @override String get communityRating => 'Fellesskapsvurdering'; @@ -1953,15 +1957,15 @@ class _Translations$explore$rows$nb extends Translations$explore$rows$en { @override String get watchlist => 'Ønskeliste'; @override String get recommendedMovies => 'Anbefalte filmer'; @override String get recommendedShows => 'Anbefalte serier'; - @override String get trendingMovies => 'Trending filmer'; - @override String get trendingShows => 'Trending serier'; + @override String get trendingMovies => 'Populære filmer nå'; + @override String get trendingShows => 'Populære serier nå'; @override String get popularMovies => 'Populære filmer'; @override String get popularShows => 'Populære serier'; - @override String get trendingAnime => 'Anime som trender'; + @override String get trendingAnime => 'Populær anime nå'; @override String get suggestedAnime => 'Foreslått anime'; @override String get airingAnime => 'Topp pågående anime'; - @override String get popularAnime => 'Mest populære anime'; - @override String get trending => 'Trending'; + @override String get popularAnime => 'Mest populær anime'; + @override String get trending => 'Populært nå'; @override String get upcomingMovies => 'Kommende filmer'; @override String get upcomingShows => 'Kommende serier'; } @@ -1991,7 +1995,7 @@ class _Translations$companionRemote$session$nb extends Translations$companionRem @override String get connected => 'Tilkoblet'; @override String get serverRunning => 'Fjernserver aktiv'; @override String get serverStopped => 'Fjernserver stoppet'; - @override String get serverRunningDescription => 'Mobile enheter på nettverket ditt kan koble til denne appen'; + @override String get serverRunningDescription => 'Mobilenheter på nettverket ditt kan koble til denne appen'; @override String get serverStoppedDescription => 'Start serveren for å la mobilenheter koble til'; @override String get usePhoneToControl => 'Bruk mobilenheten din til å styre denne appen'; @override String get startServer => 'Start server'; @@ -2011,7 +2015,7 @@ class _Translations$companionRemote$pairing$nb extends Translations$companionRem @override String get connecting => 'Kobler til...'; @override String get searchingForDevices => 'Søker etter enheter...'; @override String get noDevicesFound => 'Ingen enheter funnet på nettverket ditt'; - @override String get noDevicesHint => 'Åpne Plezy på desktop og bruk samme WiFi'; + @override String get noDevicesHint => 'Åpne Plezy på datamaskinen, og bruk samme Wi-Fi'; @override String get availableDevices => 'Tilgjengelige enheter'; @override String get manualConnection => 'Manuell tilkobling'; @override String get cryptoInitFailed => 'Kunne ikke starte sikker tilkobling. Logg inn på Plex først.'; @@ -2056,7 +2060,7 @@ class _Translations$companionRemote$remote$nb extends Translations$companionRemo @override String get fullscreen => 'Fullskjerm'; @override String get subtitles => 'Undertekster'; @override String get audio => 'Lyd'; - @override String get searchHint => 'Søk på stasjonær...'; + @override String get searchHint => 'Søk på datamaskinen...'; } // Path: companionRemote.errors @@ -2131,8 +2135,8 @@ class _Translations$services$libraryFilter$nb extends Translations$services$libr @override String subtitleBlocked({required Object count}) => '${count} blokkert'; @override String subtitleAllowed({required Object count}) => '${count} tillatt'; @override String get mode => 'Filtermodus'; - @override String get modeBlacklist => 'Svarteliste'; - @override String get modeWhitelist => 'Hviteliste'; + @override String get modeBlacklist => 'Blokkeringsliste'; + @override String get modeWhitelist => 'Tillatelsesliste'; @override String get modeHintBlacklist => 'Synkroniser alle biblioteker bortsett fra dem du markerer nedenfor.'; @override String get modeHintWhitelist => 'Synkroniser kun bibliotekene du markerer nedenfor.'; @override String get libraries => 'Biblioteker'; @@ -2151,7 +2155,7 @@ extension on TranslationsNb { 'auth.signInWithPlex' => 'Logg inn med Plex', 'auth.showQRCode' => 'Vis QR-kode', 'auth.authenticate' => 'Autentiser', - 'auth.authenticationTimeout' => 'Autentiseringen ble tidsavbrutt. Prøv igjen.', + 'auth.authenticationTimeout' => 'Autentiseringen tok for lang tid. Prøv igjen.', 'auth.scanQRToSignIn' => 'Skann denne QR-koden for å logge inn', 'auth.waitingForAuth' => 'Venter på autentisering...\nLogg inn fra nettleseren.', 'auth.useBrowser' => 'Bruk nettleser', @@ -2162,7 +2166,7 @@ extension on TranslationsNb { 'auth.quickConnectWaiting' => 'Venter på godkjenning…', 'auth.quickConnectCancel' => 'Avbryt', 'auth.quickConnectExpired' => 'Quick Connect er utløpt. Prøv igjen.', - 'auth.localDataRecoveryRequired' => 'Plezy could not safely recover local sign-in and pending playback data. Please sign in again.', + 'auth.localDataRecoveryRequired' => 'Plezy kunne ikke gjenopprette lokale innloggingsdata og ventende avspillingsdata på en sikker måte. Logg inn på nytt.', 'common.cancel' => 'Avbryt', 'common.save' => 'Lagre', 'common.close' => 'Lukk', @@ -2207,7 +2211,7 @@ extension on TranslationsNb { 'common.loading' => 'Laster...', 'common.fullscreen' => 'Fullskjerm', 'common.exitFullscreen' => 'Avslutt fullskjerm', - 'common.pressBackAgainToExit' => 'Trykk tilbake igjen for å avslutte', + 'common.pressBackAgainToExit' => 'Trykk på Tilbake en gang til for å avslutte', 'screens.licenses' => 'Lisenser', 'screens.switchProfile' => 'Bytt profil', 'screens.subtitleStyling' => 'Undertekststil', @@ -2227,13 +2231,13 @@ extension on TranslationsNb { 'settings.theme' => 'Tema', 'settings.appearance' => 'Utseende', 'settings.videoPlayback' => 'Videoavspilling', - 'settings.videoPlaybackDescription' => 'Konfigurer avspillingsatferd', + 'settings.videoPlaybackDescription' => 'Tilpass avspillingen', 'settings.advanced' => 'Avansert', - 'settings.episodePosterMode' => 'Episodeplakatstil', + 'settings.episodePosterMode' => 'Type episodeplakat', 'settings.seriesPoster' => 'Serieplakat', 'settings.seasonPoster' => 'Sesongplakat', 'settings.episodeThumbnail' => 'Miniatyrbilde', - 'settings.showHeroSectionDescription' => 'Vis fremhevet innholdskarusell på hjemmeskjermen', + 'settings.showHeroSectionDescription' => 'Vis en karusell med fremhevet innhold på startskjermen', 'settings.secondsLabel' => 'Sekunder', 'settings.minutesLabel' => 'Minutter', 'settings.secondsShort' => 's', @@ -2243,14 +2247,16 @@ extension on TranslationsNb { 'settings.lightTheme' => 'Lyst', 'settings.darkTheme' => 'Mørkt', 'settings.oledTheme' => 'OLED', - 'settings.libraryDensity' => 'Bibliotekets tetthet', + 'settings.libraryDensity' => 'Innholdstetthet i biblioteket', 'settings.compact' => 'Kompakt', 'settings.comfortable' => 'Komfortabel', + 'settings.tvCornerSpotlightBackdrop' => 'Fremhevet bakgrunn i hjørnet', + 'settings.tvCornerSpotlightBackdropDescription' => 'Vis fremhevet grafikk øverst til høyre i stedet for å fylle skjermen', 'settings.viewMode' => 'Visningsmodus', 'settings.gridView' => 'Rutenett', 'settings.listView' => 'Liste', 'settings.showHeroSection' => 'Vis fremhevet seksjon', - 'settings.continueWatchingAction' => 'Handling for Fortsett å se', + 'settings.continueWatchingAction' => 'Handling for «Fortsett å se»', 'settings.continueWatchingPlay' => 'Spill av', 'settings.continueWatchingDetails' => 'Åpne detaljer', 'settings.episodeAction' => 'Handling for episoder', @@ -2270,8 +2276,8 @@ extension on TranslationsNb { 'settings.showEpisodeNumberOnCardsDescription' => 'Vis sesong- og episodenummer på episodekort', 'settings.showSeasonPostersOnTabs' => 'Vis sesongplakater på faner', 'settings.showSeasonPostersOnTabsDescription' => 'Vis hver sesongs plakat over fanen', - 'settings.tvFullCardLayout' => 'Fulle TV-kort', - 'settings.tvFullCardLayoutDescription' => 'Bruk bildebaserte TV-kort med skuespillernavn lagt over', + 'settings.tvFullCardLayout' => 'Heldekkende TV-kort', + 'settings.tvFullCardLayoutDescription' => 'Bruk TV-kort med bare bilder og skuespillernavn lagt over', 'settings.focusGlow' => 'Fokusglød', 'settings.focusGlowDescription' => 'Vis en myk glød rundt kortet i fokus', 'settings.visualEffects' => 'Visuelle effekter', @@ -2282,15 +2288,15 @@ extension on TranslationsNb { 'settings.visualEffectsReducedDescription' => 'Færre animasjoner og grafikk med lavere oppløsning', 'settings.hideSpoilers' => 'Skjul spoilere for usette episoder', 'settings.hideSpoilersDescription' => 'Slør miniatyrbilder og beskrivelser for usette episoder', - 'settings.playerBackend' => 'Spillermotor', + 'settings.playerBackend' => 'Avspillingsmotor', 'settings.exoPlayer' => 'ExoPlayer', 'settings.mpv' => 'mpv', 'settings.hardwareDecoding' => 'Maskinvaredekoding', 'settings.hardwareDecodingDescription' => 'Bruk maskinvareakselerasjon når tilgjengelig', 'settings.bufferSize' => 'Bufferstørrelse', - 'settings.bufferSizeMB' => ({required Object size}) => '${size}MB', - 'settings.bufferSizeAuto' => 'Auto (Anbefalt)', - 'settings.bufferSizeWarning' => ({required Object heap, required Object size}) => '${heap}MB minne tilgjengelig. En buffer på ${size}MB kan påvirke avspilling.', + 'settings.bufferSizeMB' => ({required Object size}) => '${size} MB', + 'settings.bufferSizeAuto' => 'Automatisk (anbefalt)', + 'settings.bufferSizeWarning' => ({required Object heap, required Object size}) => '${heap} MB minne tilgjengelig. En buffer på ${size} MB kan påvirke avspillingen.', 'settings.defaultQualityTitle' => 'Standardkvalitet', 'settings.musicQualityTitle' => 'Musikkvalitet', 'settings.subtitleStyling' => 'Undertekststil', @@ -2299,7 +2305,7 @@ extension on TranslationsNb { 'settings.largeSkipDuration' => 'Lang hoppvarighet', 'settings.rewindOnResume' => 'Spol tilbake ved gjenopptakelse', 'settings.secondsUnit' => ({required Object seconds}) => '${seconds} sekunder', - 'settings.defaultSleepTimer' => 'Standard søvntimer', + 'settings.defaultSleepTimer' => 'Standard innsovningstimer', 'settings.minutesUnit' => ({required Object minutes}) => '${minutes} minutter', 'settings.rememberTrackSelections' => 'Husk sporvalg per serie/film', 'settings.rememberTrackSelectionsDescription' => 'Husk lyd- og undertekstvalg per tittel', @@ -2312,10 +2318,10 @@ extension on TranslationsNb { 'settings.keyboardShortcutsDescription' => 'Tilpass tastatursnarveier', 'settings.videoPlayerNavigation' => 'Videospillernavigering', 'settings.videoPlayerNavigationDescription' => 'Bruk piltaster for å navigere videospillerkontroller', - 'settings.watchTogetherRelay' => 'Se Sammen-relay', - 'settings.watchTogetherRelayDescription' => 'Angi en egendefinert relay. Alle må bruke samme server.', + 'settings.watchTogetherRelay' => 'Reléserver for Se sammen', + 'settings.watchTogetherRelayDescription' => 'Angi en egendefinert reléserver. Alle må bruke samme server.', 'settings.watchTogetherRelayHint' => 'https://min-relay.eksempel.no', - 'settings.watchTogetherRelayInvalid' => 'Enter a valid HTTP or HTTPS relay base URL.', + 'settings.watchTogetherRelayInvalid' => 'Angi en gyldig HTTP- eller HTTPS-adresse til reléserveren.', 'settings.crashReporting' => 'Krasjrapportering', 'settings.crashReportingDescription' => 'Send krasjrapporter for å hjelpe med å forbedre appen', 'settings.debugLogging' => 'Feilsøkingslogging', @@ -2350,7 +2356,7 @@ extension on TranslationsNb { 'settings.validationErrorDuration' => ({required Object min, required Object max, required Object unit}) => 'Varigheten må være mellom ${min} og ${max} ${unit}', 'settings.shortcutAlreadyAssigned' => ({required Object action}) => 'Snarvei allerede tilordnet til ${action}', 'settings.shortcutUpdated' => ({required Object action}) => 'Snarvei oppdatert for ${action}', - 'settings.saveFailed' => 'Could not save changes. Try again.', + 'settings.saveFailed' => 'Kunne ikke lagre endringene. Prøv igjen.', 'settings.autoSkip' => 'Automatisk hopp', 'settings.autoSkipIntro' => 'Hopp over intro automatisk', 'settings.autoSkipIntroDescription' => 'Hopp automatisk over intromarkører etter noen sekunder', @@ -2377,37 +2383,37 @@ extension on TranslationsNb { 'settings.downloadLocationReset' => 'Nedlastingsplassering tilbakestilt til standard', 'settings.downloadLocationInvalid' => 'Valgt mappe er ikke skrivbar', 'settings.downloadLocationPickerUnavailable' => 'Mappevalg er ikke tilgjengelig på denne enheten', - 'settings.downloadOnWifiOnly' => 'Last ned kun på WiFi', - 'settings.downloadOnWifiOnlyDescription' => 'Forhindre nedlastinger på mobildata', - 'settings.autoRemoveWatchedDownloads' => 'Fjern sette nedlastinger automatisk', - 'settings.autoRemoveWatchedDownloadsDescription' => 'Slett sette nedlastinger automatisk', - 'settings.cellularDownloadBlocked' => 'Nedlastinger er blokkert på mobilnett. Bruk WiFi eller endre innstillingen.', - 'settings.maxVolume' => 'Maks volum', - 'settings.maxVolumeDescription' => 'Tillat volumforsterkning over 100% for stille media', - 'settings.maxVolumePercent' => ({required Object percent}) => '${percent}%', + 'settings.downloadOnWifiOnly' => 'Last bare ned via Wi-Fi', + 'settings.downloadOnWifiOnlyDescription' => 'Forhindre nedlasting via mobildata', + 'settings.autoRemoveWatchedDownloads' => 'Fjern avspilte nedlastinger automatisk', + 'settings.autoRemoveWatchedDownloadsDescription' => 'Slett avspilte nedlastinger automatisk', + 'settings.cellularDownloadBlocked' => 'Nedlastinger er blokkert på mobilnett. Bruk Wi-Fi eller endre innstillingen.', + 'settings.maxVolume' => 'Maksvolum', + 'settings.maxVolumeDescription' => 'Tillat volumforsterkning over 100 % for medier med lavt lydnivå', + 'settings.maxVolumePercent' => ({required Object percent}) => '${percent} %', 'settings.discordRichPresence' => 'Discord Rich Presence', 'settings.discordRichPresenceDescription' => 'Vis hva du ser på Discord', 'settings.services' => 'Tjenester', 'settings.servicesDescription' => 'Koble til Trakt, MyAnimeList, Seerr og mer', 'settings.manageLibrariesDescription' => 'Omorganiser og skjul biblioteker', - 'settings.companionRemoteServer' => 'Companion Remote-server', - 'settings.companionRemoteServerDescription' => 'Tillat mobilenheter på nettverket ditt å styre denne appen', - 'settings.autoPip' => 'Auto bilde-i-bilde', - 'settings.autoPipDescription' => 'Gå til bilde-i-bilde når du forlater under avspilling', + 'settings.companionRemoteServer' => 'Fjernkontrollserver', + 'settings.companionRemoteServerDescription' => 'La mobilenheter på nettverket styre denne appen', + 'settings.autoPip' => 'Automatisk bilde-i-bilde', + 'settings.autoPipDescription' => 'Åpne bilde-i-bilde når du forlater appen under avspilling', 'settings.matchContentFrameRate' => 'Tilpass innholdets bildefrekvens', 'settings.matchContentFrameRateDescription' => 'Tilpass skjermens oppdateringsfrekvens til videoinnhold', 'settings.matchRefreshRate' => 'Tilpass oppdateringsfrekvens', 'settings.matchRefreshRateDescription' => 'Tilpass skjermens oppdateringsfrekvens i fullskjerm', - 'settings.matchDynamicRange' => 'Tilpass dynamisk område', + 'settings.matchDynamicRange' => 'Tilpass dynamikkområde', 'settings.matchDynamicRangeDescription' => 'Slå på HDR for HDR-innhold, og deretter tilbake til SDR', 'settings.displaySwitchDelay' => 'Forsinkelse ved skjermbytte', 'settings.tunneledPlayback' => 'Tunnelert avspilling', 'settings.tunneledPlaybackDescription' => 'Bruk videotunneling. Slå av hvis HDR-avspilling viser svart video.', - 'settings.audioPassthrough' => 'Lydgjennomgang', + 'settings.audioPassthrough' => 'Direkte lydutgang', 'settings.audioPassthroughDescription' => 'Send Dolby/DTS-lyd til mottakeren eller TV-en uten omkoding, slik at surroundlyd bevares. Slå av hvis du ikke har lyd.', - 'settings.audioPassthroughDescriptionAppleTv' => 'Overlater Dolby Digital Plus (inkl. Atmos) til systemet som bitstream. DTS og TrueHD spilles fortsatt av som flerkanals PCM. Korte lydbrudd kan forekomme ved søking.', + 'settings.audioPassthroughDescriptionAppleTv' => 'Bruk Apples innebygde Dolby-dekoder for Dolby Digital Plus, inkludert Atmos. DTS og TrueHD spilles fortsatt av som flerkanals PCM. Slå av hvis du ikke har lyd.', 'settings.audioDownmix' => 'Nedmiks til stereo', - 'settings.audioDownmixDescription' => 'Mikser surroundlyd ned til to kanaler for stereohøyttalere eller hodetelefoner', + 'settings.audioDownmixDescription' => 'Miks surroundlyd ned til to kanaler for stereohøyttalere eller hodetelefoner', 'settings.downmixCenterBoost' => 'Forsterkning av senterkanal', 'settings.downmixCenterBoostValue' => ({required Object db}) => '${db} dB', 'settings.downmixCenterBoostLabel' => 'Forsterkning (dB)', @@ -2417,7 +2423,7 @@ extension on TranslationsNb { 'settings.atmosDiagnostics' => 'Atmos-utgangstest', 'settings.atmosDiagnosticsDescription' => 'Diagnostiser Dolby Atmos-utgangen ved å spille testsignaler gjennom systemspilleren', 'settings.atmosTestHlsAtmos' => 'Apple Atmos-strøm', - 'settings.atmosTestHlsAtmosDescription' => 'Kjent god Dolby Atmos-strøm. Mottakeren bør vise Dolby Atmos.', + 'settings.atmosTestHlsAtmosDescription' => 'Verifisert Dolby Atmos-strøm. Mottakeren bør vise Dolby Atmos.', 'settings.atmosTestHlsControl' => 'Apple surround-strøm', 'settings.atmosTestHlsControlDescription' => 'Kontrollstrøm uten Atmos. Mottakeren bør vise surround uten Atmos.', 'settings.atmosTestRawStream' => 'Rå EAC3-strøm', @@ -2430,15 +2436,15 @@ extension on TranslationsNb { 'settings.atmosTestUrlMissing' => 'Angi testfilens URL først', 'settings.atmosTestStatus' => 'Status', 'settings.dvConversionMode' => 'Dolby Vision-konvertering', - 'settings.dvConversionModeDescription' => 'Velg hvordan ExoPlayer håndterer Dolby Vision Profile 7-filer.', - 'settings.dvConversionAuto' => 'Auto', - 'settings.dvConversionNative' => 'Innebygd / deaktivert', + 'settings.dvConversionModeDescription' => 'Velg hvordan ExoPlayer håndterer filer med Dolby Vision-profil 7.', + 'settings.dvConversionAuto' => 'Automatisk', + 'settings.dvConversionNative' => 'Nativ / deaktivert', 'settings.dvConversionDv81' => 'P7 → P8.1', 'settings.dvConversionHevcStrip' => 'P7 → HEVC', - 'settings.dvConversionAutoDescription' => 'Bruk enhetens kapabilitetsdeteksjon og normal reserveoppførsel', - 'settings.dvConversionNativeDescription' => 'Tving native DV7 og undertrykk forsøk på DV-konvertering', - 'settings.dvConversionDv81Description' => 'Tving inline RPU-konvertering til Dolby Vision profil 8.1', - 'settings.dvConversionHevcStripDescription' => 'Fjern Dolby Vision RPU/EL-lag og presenter vanlig HEVC', + 'settings.dvConversionAutoDescription' => 'Oppdag enhetens egenskaper og bruk vanlig reserveoppførsel', + 'settings.dvConversionNativeDescription' => 'Tving opprinnelig DV7-avspilling og ikke prøv DV-konvertering på nytt', + 'settings.dvConversionDv81Description' => 'Tving direkte RPU-konvertering til Dolby Vision-profil 8.1', + 'settings.dvConversionHevcStripDescription' => 'Fjern Dolby Vision RPU/EL-lag og lever som vanlig HEVC', 'settings.requireProfileSelectionOnOpen' => 'Spør om profil ved appåpning', 'settings.requireProfileSelectionOnOpenDescription' => 'Vis profilvalg hver gang appen åpnes', 'settings.forceTvMode' => 'Tving TV-modus', @@ -2448,12 +2454,12 @@ extension on TranslationsNb { 'settings.exitFullscreenOnPlayerClose' => 'Avslutt fullskjerm ved lukking av avspiller', 'settings.exitFullscreenOnPlayerCloseDescription' => 'Avslutt fullskjerm automatisk når videospilleren lukkes', 'settings.autoHidePerformanceOverlay' => 'Skjul ytelsesoverlegg automatisk', - 'settings.autoHidePerformanceOverlayDescription' => 'Fade ytelsesoverlegget med avspillingskontrollene', - 'settings.showNavBarLabels' => 'Vis navigasjonsfeltlabeler', - 'settings.showNavBarLabelsDescription' => 'Vis tekstlabeler under navigasjonsfeltikoner', - 'settings.startupSection' => 'Oppstartsseksjon', - 'settings.liveTvDefaultFavorites' => 'Standard til favorittkanaler', - 'settings.liveTvDefaultFavoritesDescription' => 'Vis kun favorittkanaler når du åpner Live TV', + 'settings.autoHidePerformanceOverlayDescription' => 'Ton ytelsesoverlegget ut sammen med avspillingskontrollene', + 'settings.showNavBarLabels' => 'Vis etiketter i navigasjonsfeltet', + 'settings.showNavBarLabelsDescription' => 'Vis tekstetiketter under ikonene i navigasjonsfeltet', + 'settings.startupSection' => 'Startseksjon', + 'settings.liveTvDefaultFavorites' => 'Vis favorittkanaler som standard', + 'settings.liveTvDefaultFavoritesDescription' => 'Vis bare favorittkanaler når du åpner Direkte-TV', 'settings.display' => 'Skjerm', 'settings.homeScreen' => 'Hjemmeskjerm', 'settings.navigation' => 'Navigering', @@ -2461,8 +2467,8 @@ extension on TranslationsNb { 'settings.content' => 'Innhold', 'settings.player' => 'Spiller', 'settings.subtitlesAndConfig' => 'Undertekster og konfigurasjon', - 'settings.seekAndTiming' => 'Søk og tidtaking', - 'settings.behavior' => 'Atferd', + 'settings.seekAndTiming' => 'Spoling og tidsinnstillinger', + 'settings.behavior' => 'Oppførsel', 'search.hint' => 'Søk i filmer, serier, musikk...', 'search.tryDifferentTerm' => 'Prøv et annet søkeord', 'search.searchYourMedia' => 'Søk i mediene dine', @@ -2478,9 +2484,9 @@ extension on TranslationsNb { 'hotkeys.actions.volumeDown' => 'Volum ned', 'hotkeys.actions.seekForward' => ({required Object seconds}) => 'Spol fremover (${seconds}s)', 'hotkeys.actions.seekBackward' => ({required Object seconds}) => 'Spol bakover (${seconds}s)', - 'hotkeys.actions.fullscreenToggle' => 'Veksle fullskjerm', - 'hotkeys.actions.muteToggle' => 'Veksle demping', - 'hotkeys.actions.subtitleToggle' => 'Veksle undertekster', + 'hotkeys.actions.fullscreenToggle' => 'Slå fullskjerm av/på', + 'hotkeys.actions.muteToggle' => 'Slå lyddemping av/på', + 'hotkeys.actions.subtitleToggle' => 'Slå undertekster av/på', 'hotkeys.actions.audioTrackNext' => 'Neste lydspor', 'hotkeys.actions.subtitleTrackNext' => 'Neste undertekstspor', 'hotkeys.actions.chapterNext' => 'Neste kapittel', @@ -2495,7 +2501,7 @@ extension on TranslationsNb { 'hotkeys.actions.zoomReset' => 'Tilbakestill zoom', 'hotkeys.actions.subSeekNext' => 'Spol til neste undertekst', 'hotkeys.actions.subSeekPrev' => 'Spol til forrige undertekst', - 'hotkeys.actions.shaderToggle' => 'Veksle shadere', + 'hotkeys.actions.shaderToggle' => 'Slå shadere av/på', 'hotkeys.actions.skipMarker' => 'Hopp over intro/rulletekst', 'hotkeys.actions.screenshot' => 'Ta skjermbilde', 'fileInfo.title' => 'Filinformasjon', @@ -2519,7 +2525,7 @@ extension on TranslationsNb { 'fileInfo.overallBitrate' => 'Total bitrate', 'fileInfo.path' => 'Sti', 'fileInfo.size' => 'Størrelse', - 'fileInfo.container' => 'Beholder', + 'fileInfo.container' => 'Format', 'fileInfo.duration' => 'Varighet', 'fileInfo.optimizedForStreaming' => 'Optimalisert for strømming', 'fileInfo.has64bitOffsets' => '64-biters forskyvninger', @@ -2529,7 +2535,7 @@ extension on TranslationsNb { 'mediaMenu.viewDetails' => 'Vis detaljer', 'mediaMenu.goToSeries' => 'Gå til serie', 'mediaMenu.shufflePlay' => 'Tilfeldig avspilling', - 'mediaMenu.shuffleNotAvailableOffline' => 'Tilfeldig avspilling er ikke tilgjengelig offline', + 'mediaMenu.shuffleNotAvailableOffline' => 'Tilfeldig avspilling er ikke tilgjengelig uten nett', 'mediaMenu.fileInfo' => 'Filinformasjon', 'mediaMenu.deleteFromServer' => 'Slett fra server', 'mediaMenu.confirmDelete' => 'Slette dette mediet og filene fra serveren?', @@ -2565,7 +2571,7 @@ extension on TranslationsNb { 'accessibility.expandText' => 'Utvid tekst', 'accessibility.collapseText' => 'Fold sammen tekst', 'accessibility.alphabetNavigation' => 'Alfabetisk navigasjon', - 'accessibility.alphabetScrollHint' => 'Sveip opp eller ned for å flytte én bokstav', + 'accessibility.alphabetScrollHint' => 'Sveip opp eller ned for å gå én bokstav om gangen', 'accessibility.rowColumnPosition' => ({required Object row, required Object rowCount, required Object column, required Object columnCount}) => 'Rad ${row} av ${rowCount}, kolonne ${column} av ${columnCount}', 'accessibility.rowPosition' => ({required Object row, required Object rowCount}) => 'Rad ${row} av ${rowCount}', 'tooltips.shufflePlay' => 'Tilfeldig avspilling', @@ -2587,7 +2593,7 @@ extension on TranslationsNb { 'videoControls.lockRotation' => 'Lås rotasjon', 'videoControls.unlockRotation' => 'Lås opp rotasjon', 'videoControls.timerActive' => 'Timer aktiv', - 'videoControls.playbackWillPauseIn' => ({required Object duration}) => 'Avspilling vil pause om ${duration}', + 'videoControls.playbackWillPauseIn' => ({required Object duration}) => 'Avspillingen settes på pause om ${duration}', 'videoControls.sleepTimerEndOfVideo' => 'Slutten av gjeldende video', 'videoControls.sleepTimerStopAtHeader' => 'Stopp ved', 'videoControls.sleepTimerDurationHeader' => 'Timer', @@ -2595,10 +2601,12 @@ extension on TranslationsNb { 'videoControls.stillWatching' => 'Ser du fortsatt?', 'videoControls.pausingIn' => ({required Object seconds}) => 'Pauser om ${seconds}s', 'videoControls.continueWatching' => 'Fortsett', - 'videoControls.autoPlayNext' => 'Spill neste automatisk', + 'videoControls.autoPlayNext' => 'Spill av neste automatisk', 'videoControls.playNext' => 'Spill neste', 'videoControls.playButton' => 'Spill av', 'videoControls.pauseButton' => 'Pause', + 'videoControls.showPlaybackControls' => 'Vis avspillingskontroller', + 'videoControls.hidePlaybackControls' => 'Skjul avspillingskontroller', 'videoControls.seekBackwardButton' => ({required Object seconds}) => 'Spol tilbake ${seconds} sekunder', 'videoControls.seekForwardButton' => ({required Object seconds}) => 'Spol fremover ${seconds} sekunder', 'videoControls.previousButton' => 'Forrige episode', @@ -2626,14 +2634,14 @@ extension on TranslationsNb { 'videoControls.rotationLockButton' => 'Rotasjonslås', 'videoControls.lockScreen' => 'Lås skjerm', 'videoControls.screenLockButton' => 'Skjermlås', - 'videoControls.longPressToUnlock' => 'Langt trykk for å låse opp', + 'videoControls.longPressToUnlock' => 'Trykk og hold for å låse opp', 'videoControls.timelineSlider' => 'Videotidslinje', 'videoControls.volumeSlider' => 'Volumnivå', 'videoControls.endsAt' => ({required Object time}) => 'Slutter kl. ${time}', 'videoControls.pipActive' => 'Spiller i bilde-i-bilde', 'videoControls.pipFailed' => 'Bilde-i-bilde kunne ikke starte', 'videoControls.screenshotSaved' => 'Skjermbilde lagret', - 'videoControls.zoomPercent' => ({required Object percent}) => 'Zoom ${percent}%', + 'videoControls.zoomPercent' => ({required Object percent}) => 'Zoom ${percent} %', 'videoControls.pipErrors.androidVersion' => 'Krever Android 8.0 eller nyere', 'videoControls.pipErrors.iosVersion' => 'Krever iOS 15.0 eller nyere', 'videoControls.pipErrors.permissionDisabled' => 'Bilde-i-bilde er deaktivert. Slå det på i systeminnstillinger.', @@ -2655,24 +2663,24 @@ extension on TranslationsNb { 'videoControls.subtitleDownloadedNotApplied' => 'Underteksten ble lastet ned, men kunne ikke velges', 'videoControls.subtitleDownloadFailed' => 'Kunne ikke laste ned undertekst', 'videoControls.searchLanguages' => 'Søk etter språk...', + _ => null, + } ?? switch (path) { 'messages.markedAsWatched' => 'Merket som sett', 'messages.markedAsUnwatched' => 'Merket som usett', 'messages.markedAsWatchedOffline' => 'Merket som sett (synkroniseres når tilkoblet)', 'messages.markedAsUnwatchedOffline' => 'Merket som usett (synkroniseres når tilkoblet)', - _ => null, - } ?? switch (path) { 'messages.autoRemovedWatchedDownload' => ({required Object title}) => 'Automatisk fjernet: ${title}', - 'messages.autoRemovedWatchedDownloads' => ({required num n}) => (_root.$meta.cardinalResolver ?? PluralResolvers.cardinal('nb'))(n, one: 'Fjernet automatisk ${n} sett nedlasting', other: 'Fjernet automatisk ${n} sette nedlastinger', ), + 'messages.autoRemovedWatchedDownloads' => ({required num n}) => (_root.$meta.cardinalResolver ?? PluralResolvers.cardinal('nb'))(n, one: 'Fjernet automatisk ${n} avspilt nedlasting', other: 'Fjernet automatisk ${n} avspilte nedlastinger', ), 'messages.removedFromContinueWatching' => 'Fjernet fra Fortsett å se', 'messages.errorLoading' => ({required Object error}) => 'Feil: ${error}', 'messages.streamInterrupted' => 'Avspillingen ble avbrutt. Trykk på Spill av eller spol for å prøve på nytt.', 'messages.liveStreamInterrupted' => 'Direktesendingen ble avbrutt. Trykk på Spill av for å prøve på nytt.', 'messages.fileInfoNotAvailable' => 'Filinformasjon ikke tilgjengelig', - 'messages.playbackAuthenticationRequired' => 'Sign in to the media server again to play this item.', - 'messages.playbackServerUnavailable' => 'The media server is unavailable. Try again later.', - 'messages.playbackDataInvalid' => 'The server returned invalid playback information.', - 'messages.playbackCancelled' => 'Playback was cancelled.', - 'messages.playbackFailed' => 'Playback could not be started.', + 'messages.playbackAuthenticationRequired' => 'Logg inn på medieserveren på nytt for å spille av dette elementet.', + 'messages.playbackServerUnavailable' => 'Medieserveren er utilgjengelig. Prøv igjen senere.', + 'messages.playbackDataInvalid' => 'Serveren returnerte ugyldig avspillingsinformasjon.', + 'messages.playbackCancelled' => 'Avspillingen ble avbrutt.', + 'messages.playbackFailed' => 'Kunne ikke starte avspillingen.', 'messages.errorLoadingFileInfo' => ({required Object error}) => 'Feil ved lasting av filinformasjon: ${error}', 'messages.errorLoadingSeries' => 'Feil ved lasting av serie', 'messages.musicNotSupported' => 'Musikkavspilling støttes ikke ennå', @@ -2696,7 +2704,7 @@ extension on TranslationsNb { 'messages.noEpisodesFoundGeneral' => 'Ingen episoder funnet', 'messages.episodesLoadFailed' => 'Kunne ikke laste episoder', 'messages.noResultsFound' => 'Ingen resultater funnet', - 'messages.sleepTimerSet' => ({required Object label}) => 'Søvntimer satt til ${label}', + 'messages.sleepTimerSet' => ({required Object label}) => 'Innsovningstimer satt til ${label}', 'messages.noItemsAvailable' => 'Ingen elementer tilgjengelig', 'messages.failedToCreatePlayQueueNoItems' => 'Kunne ikke opprette avspillingskø – ingen elementer', 'messages.failedPlayback' => ({required Object action, required Object error}) => 'Kunne ikke ${action}: ${error}', @@ -2787,7 +2795,7 @@ extension on TranslationsNb { 'profiles.borrowExplain' => 'Lån en annen profils tilkobling. PIN-beskyttede profiler krever PIN.', 'profiles.borrowEmpty' => 'Ingenting å låne enda.', 'profiles.borrowEmptySubtitle' => 'Koble Plex eller Jellyfin til en annen profil først.', - 'profiles.borrowLoadFailed' => 'Available connections could not be loaded. Try again.', + 'profiles.borrowLoadFailed' => 'Kunne ikke laste inn tilgjengelige tilkoblinger. Prøv igjen.', 'profiles.borrowFromProfile' => ({required Object displayName}) => 'Fra ${displayName}', 'profiles.borrowConnectionBorrowed' => 'Tilkobling lånt.', 'profiles.borrowFailed' => 'Kunne ikke låne tilkoblingen.', @@ -2812,7 +2820,7 @@ extension on TranslationsNb { 'connections.editJellyfinTitle' => 'Rediger Jellyfin-tilkobling', 'connections.editJellyfinIntro' => ({required Object serverName}) => 'Legg til eller fjern URL-er for ${serverName}. Plezy bruker den tilgjengelige URL-en med lavest forsinkelse.', 'discover.title' => 'Oppdag', - 'discover.noContentAvailable' => 'Ingen innhold tilgjengelig', + 'discover.noContentAvailable' => 'Ikke noe innhold tilgjengelig', 'discover.addMediaToLibraries' => 'Legg til medier i bibliotekene dine', 'discover.continueWatching' => 'Fortsett å se', 'discover.continueWatchingIn' => ({required Object library}) => 'Fortsett å se i ${library}', @@ -2826,7 +2834,7 @@ extension on TranslationsNb { 'discover.playEpisode' => ({required Object season, required Object episode}) => 'S${season}E${episode}', 'discover.overview' => 'Oversikt', 'discover.cast' => 'Skuespillere', - 'discover.extras' => 'Trailere og ekstra', + 'discover.extras' => 'Trailere og ekstramateriale', 'discover.studio' => 'Studio', 'discover.rating' => 'Vurdering', 'discover.movie' => 'Film', @@ -2907,7 +2915,7 @@ extension on TranslationsNb { 'libraries.filterCategories.unplayed' => 'Ikke avspilt', 'libraries.filterCategories.favorites' => 'Favoritter', 'libraries.sortLabels.title' => 'Tittel', - 'libraries.sortLabels.dateAdded' => 'Lagt til-dato', + 'libraries.sortLabels.dateAdded' => 'Dato lagt til', 'libraries.sortLabels.releaseDate' => 'Utgivelsesdato', 'libraries.sortLabels.rating' => 'Vurdering', 'libraries.sortLabels.communityRating' => 'Fellesskapsvurdering', @@ -2927,7 +2935,7 @@ extension on TranslationsNb { 'libraries.sortLabels.latestEpisodeAirDate' => 'Siste episodes sendedato', 'libraries.sortLabels.lastEpisodeDateAdded' => 'Dato for sist lagt til episode', 'about.title' => 'Om', - 'about.openSourceLicenses' => 'Åpen kildekode-lisenser', + 'about.openSourceLicenses' => 'Lisenser for åpen kildekode', 'about.versionLabel' => ({required Object version}) => 'Versjon ${version}', 'about.appDescription' => 'En vakker Plex- og Jellyfin-klient for Flutter', 'about.viewLicensesDescription' => 'Vis lisenser for tredjepartsbiblioteker', @@ -2954,15 +2962,15 @@ extension on TranslationsNb { 'explore.rows.watchlist' => 'Ønskeliste', 'explore.rows.recommendedMovies' => 'Anbefalte filmer', 'explore.rows.recommendedShows' => 'Anbefalte serier', - 'explore.rows.trendingMovies' => 'Trending filmer', - 'explore.rows.trendingShows' => 'Trending serier', + 'explore.rows.trendingMovies' => 'Populære filmer nå', + 'explore.rows.trendingShows' => 'Populære serier nå', 'explore.rows.popularMovies' => 'Populære filmer', 'explore.rows.popularShows' => 'Populære serier', - 'explore.rows.trendingAnime' => 'Anime som trender', + 'explore.rows.trendingAnime' => 'Populær anime nå', 'explore.rows.suggestedAnime' => 'Foreslått anime', 'explore.rows.airingAnime' => 'Topp pågående anime', - 'explore.rows.popularAnime' => 'Mest populære anime', - 'explore.rows.trending' => 'Trending', + 'explore.rows.popularAnime' => 'Mest populær anime', + 'explore.rows.trending' => 'Populært nå', 'explore.rows.upcomingMovies' => 'Kommende filmer', 'explore.rows.upcomingShows' => 'Kommende serier', 'explore.status.airing' => 'Sendes', @@ -3008,12 +3016,12 @@ extension on TranslationsNb { 'liveTv.daytime' => 'Dagtid', 'liveTv.evening' => 'Kveld', 'liveTv.lateNight' => 'Sen kveld', - 'liveTv.whatsOn' => 'Hva går nå', + 'liveTv.whatsOn' => 'På TV nå', 'liveTv.watchChannel' => 'Se kanal', 'liveTv.favorites' => 'Favoritter', 'liveTv.reorderFavorites' => 'Endre rekkefølge på favoritter', 'liveTv.favoritesLoadFailed' => 'Kunne ikke laste inn favoritter. Kontroller tilkoblingen og prøv på nytt.', - 'liveTv.favoritesUpdateFailed' => 'Could not update favorites. Check your connection and try again.', + 'liveTv.favoritesUpdateFailed' => 'Kunne ikke oppdatere favorittene. Kontroller tilkoblingen og prøv på nytt.', 'liveTv.joinSession' => 'Bli med i pågående økt', 'liveTv.watchFromStart' => ({required Object minutes}) => 'Se fra starten (${minutes} min siden)', 'liveTv.watchLive' => 'Se direkte', @@ -3048,8 +3056,8 @@ extension on TranslationsNb { 'liveTv.editRule' => 'Rediger regel', 'liveTv.editRuleAction' => 'Rediger', 'liveTv.recordingRuleUpdated' => 'Opptaksregel oppdatert', - 'liveTv.guideReloadRequested' => 'Forespurte guide-oppdatering', - 'liveTv.rulesProcessRequested' => 'Forespurte regelevaluering', + 'liveTv.guideReloadRequested' => 'Oppdatering av programguiden er forespurt', + 'liveTv.rulesProcessRequested' => 'Ny vurdering av reglene er forespurt', 'liveTv.recordShow' => 'Ta opp program', 'collections.title' => 'Samlinger', 'collections.collection' => 'Samling', @@ -3163,23 +3171,23 @@ extension on TranslationsNb { 'watchTogether.failedToCreate' => 'Kunne ikke opprette økt', 'watchTogether.failedToJoin' => 'Kunne ikke bli med i økt', 'watchTogether.sessionCodeCopied' => 'Øktkode kopiert til utklippstavle', - 'watchTogether.relayUnreachable' => 'Relay-serveren kan ikke nås. ISP-blokkering kan hindre Watch Together.', + 'watchTogether.relayUnreachable' => 'Reléserveren kan ikke nås. Blokkering hos internettleverandøren kan hindre Se sammen.', 'watchTogether.reconnectingToHost' => 'Kobler til verten på nytt...', 'watchTogether.currentPlayback' => 'Gjeldende avspilling', 'watchTogether.joinCurrentPlayback' => 'Bli med i gjeldende avspilling', 'watchTogether.joinCurrentPlaybackDescription' => 'Hopp tilbake til det verten ser på nå', 'watchTogether.failedToOpenCurrentPlayback' => 'Kunne ikke åpne gjeldende avspilling', - 'watchTogether.participantJoined' => ({required Object name}) => '${name} ble med', - 'watchTogether.participantLeft' => ({required Object name}) => '${name} forlot', - 'watchTogether.participantPaused' => ({required Object name}) => '${name} pauset', - 'watchTogether.participantResumed' => ({required Object name}) => '${name} gjenopptok', _ => null, } ?? switch (path) { - 'watchTogether.participantSeeked' => ({required Object name}) => '${name} spolet', + 'watchTogether.participantJoined' => ({required Object name}) => '${name} ble med', + 'watchTogether.participantLeft' => ({required Object name}) => '${name} forlot', + 'watchTogether.participantPaused' => ({required Object name}) => '${name} satte avspillingen på pause', + 'watchTogether.participantResumed' => ({required Object name}) => '${name} startet avspillingen igjen', + 'watchTogether.participantSeeked' => ({required Object name}) => '${name} endret avspillingsposisjonen', 'watchTogether.participantBuffering' => ({required Object name}) => '${name} buffrer', 'watchTogether.participantNeedsUpdate' => ({required Object name}) => '${name} bruker en eldre appversjon — synkronisering er ikke tilgjengelig', 'watchTogether.resumingWithout' => ({required Object name}) => 'Fortsetter uten ${name}', - 'watchTogether.waitingForParticipants' => 'Venter på at andre laster inn...', + 'watchTogether.waitingForParticipants' => 'Venter på at de andre skal laste inn...', 'watchTogether.waitingForName' => ({required Object name}) => 'Venter på ${name}...', 'watchTogether.recentRooms' => 'Nylige rom', 'watchTogether.renameRoom' => 'Gi nytt navn til rom', @@ -3268,7 +3276,7 @@ extension on TranslationsNb { 'shaders.shaderImportFailed' => 'Kunne ikke importere shader', 'shaders.deleteShader' => 'Slett shader', 'shaders.deleteShaderConfirm' => ({required Object name}) => 'Slette "${name}"?', - 'companionRemote.title' => 'Følgesvenn-fjernkontroll', + 'companionRemote.title' => 'Fjernkontroll', 'companionRemote.connectedTo' => ({required Object name}) => 'Tilkoblet ${name}', 'companionRemote.unknownDevice' => 'Ukjent enhet', 'companionRemote.session.startingServer' => 'Starter fjernserver...', @@ -3276,7 +3284,7 @@ extension on TranslationsNb { 'companionRemote.session.connected' => 'Tilkoblet', 'companionRemote.session.serverRunning' => 'Fjernserver aktiv', 'companionRemote.session.serverStopped' => 'Fjernserver stoppet', - 'companionRemote.session.serverRunningDescription' => 'Mobile enheter på nettverket ditt kan koble til denne appen', + 'companionRemote.session.serverRunningDescription' => 'Mobilenheter på nettverket ditt kan koble til denne appen', 'companionRemote.session.serverStoppedDescription' => 'Start serveren for å la mobilenheter koble til', 'companionRemote.session.usePhoneToControl' => 'Bruk mobilenheten din til å styre denne appen', 'companionRemote.session.startServer' => 'Start server', @@ -3287,7 +3295,7 @@ extension on TranslationsNb { 'companionRemote.pairing.connecting' => 'Kobler til...', 'companionRemote.pairing.searchingForDevices' => 'Søker etter enheter...', 'companionRemote.pairing.noDevicesFound' => 'Ingen enheter funnet på nettverket ditt', - 'companionRemote.pairing.noDevicesHint' => 'Åpne Plezy på desktop og bruk samme WiFi', + 'companionRemote.pairing.noDevicesHint' => 'Åpne Plezy på datamaskinen, og bruk samme Wi-Fi', 'companionRemote.pairing.availableDevices' => 'Tilgjengelige enheter', 'companionRemote.pairing.manualConnection' => 'Manuell tilkobling', 'companionRemote.pairing.cryptoInitFailed' => 'Kunne ikke starte sikker tilkobling. Logg inn på Plex først.', @@ -3323,7 +3331,7 @@ extension on TranslationsNb { 'companionRemote.remote.fullscreen' => 'Fullskjerm', 'companionRemote.remote.subtitles' => 'Undertekster', 'companionRemote.remote.audio' => 'Lyd', - 'companionRemote.remote.searchHint' => 'Søk på stasjonær...', + 'companionRemote.remote.searchHint' => 'Søk på datamaskinen...', 'companionRemote.errors.noNetworkInterface' => 'Fant ingen nettverksgrensesnitt', 'companionRemote.errors.authenticationFailed' => 'Autentisering mislyktes', 'companionRemote.errors.serverStartFailed' => ({required Object error}) => 'Kunne ikke starte fjernserveren: ${error}', @@ -3336,13 +3344,13 @@ extension on TranslationsNb { 'videoSettings.normalSpeed' => 'Normal', 'videoSettings.sleepTimerActive' => ({required Object duration}) => 'Aktiv (${duration})', 'videoSettings.zoom' => 'Zoom', - 'videoSettings.sleepTimer' => 'Søvntimer', + 'videoSettings.sleepTimer' => 'Innsovningstimer', 'videoSettings.audioSync' => 'Lydsynkronisering', 'videoSettings.subtitleSync' => 'Undertekstsynkronisering', 'videoSettings.hdr' => 'HDR', 'videoSettings.audioOutput' => 'Lydutgang', 'videoSettings.performanceOverlay' => 'Ytelsesoverlegg', - 'videoSettings.audioPassthrough' => 'Lydgjennomgang', + 'videoSettings.audioPassthrough' => 'Direkte lydutgang', 'videoSettings.audioNormalization' => 'Normaliser lydstyrke', 'videoSettings.audioDownmix' => 'Nedmiks til stereo', 'performanceOverlay.color' => 'Farge', @@ -3363,10 +3371,10 @@ extension on TranslationsNb { 'performanceOverlay.matrix' => 'Matrise', 'performanceOverlay.primaries' => 'Primærfarger', 'performanceOverlay.transfer' => 'Overføring', - 'performanceOverlay.renderFps' => 'Render-FPS', + 'performanceOverlay.renderFps' => 'Gjengivelses-FPS', 'performanceOverlay.displayFps' => 'Skjerm-FPS', 'performanceOverlay.avSync' => 'A/V-synk', - 'performanceOverlay.dropped' => 'Droppet', + 'performanceOverlay.dropped' => 'Tapte', 'performanceOverlay.dvRpus' => 'DV RPU-er', 'performanceOverlay.dvRpuAverage' => 'DV RPU snitt', 'performanceOverlay.dvSampleAverage' => 'DV-sample snitt', @@ -3374,8 +3382,8 @@ extension on TranslationsNb { 'performanceOverlay.minLuma' => 'Min luma', 'performanceOverlay.maxCll' => 'MaxCLL', 'performanceOverlay.maxFall' => 'MaxFALL', - 'performanceOverlay.cacheUsed' => 'Cache brukt', - 'performanceOverlay.cacheLimit' => 'Cachegrense', + 'performanceOverlay.cacheUsed' => 'Brukt hurtigbuffer', + 'performanceOverlay.cacheLimit' => 'Grense for hurtigbuffer', 'performanceOverlay.speed' => 'Hastighet', 'performanceOverlay.player' => 'Spiller', 'performanceOverlay.memory' => 'Minne', @@ -3398,14 +3406,14 @@ extension on TranslationsNb { 'externalPlayer.playInExternalPlayer' => 'Spill av i ekstern spiller', 'metadataEdit.editMetadata' => 'Rediger...', 'metadataEdit.screenTitle' => 'Rediger metadata', - 'metadataEdit.basicInfo' => 'Grunnleggende info', - 'metadataEdit.artwork' => 'Kunstverk', + 'metadataEdit.basicInfo' => 'Grunnleggende informasjon', + 'metadataEdit.artwork' => 'Grafikk', 'metadataEdit.advancedSettings' => 'Avanserte innstillinger', 'metadataEdit.title' => 'Tittel', - 'metadataEdit.sortTitle' => 'Sorteringsstittel', + 'metadataEdit.sortTitle' => 'Sorteringstittel', 'metadataEdit.originalTitle' => 'Originaltittel', 'metadataEdit.releaseDate' => 'Utgivelsesdato', - 'metadataEdit.contentRating' => 'Innholdsvurdering', + 'metadataEdit.contentRating' => 'Aldersgrense', 'metadataEdit.studio' => 'Studio', 'metadataEdit.tagline' => 'Slagord', 'metadataEdit.summary' => 'Sammendrag', @@ -3423,11 +3431,11 @@ extension on TranslationsNb { 'metadataEdit.imageUrl' => 'Bilde-URL', 'metadataEdit.metadataUpdated' => 'Metadata oppdatert', 'metadataEdit.metadataUpdateFailed' => 'Kunne ikke oppdatere metadata', - 'metadataEdit.artworkUpdated' => 'Kunstverk oppdatert', - 'metadataEdit.artworkUpdateFailed' => 'Kunne ikke oppdatere kunstverk', - 'metadataEdit.noArtworkAvailable' => 'Ingen kunstverk tilgjengelig', - 'metadataEdit.artworkOption' => ({required Object index}) => 'Alternativ for kunstverk ${index}', - 'metadataEdit.selectedArtworkOption' => ({required Object index}) => 'Alternativ for kunstverk ${index}, valgt', + 'metadataEdit.artworkUpdated' => 'Grafikk oppdatert', + 'metadataEdit.artworkUpdateFailed' => 'Kunne ikke oppdatere grafikken', + 'metadataEdit.noArtworkAvailable' => 'Ingen grafikk tilgjengelig', + 'metadataEdit.artworkOption' => ({required Object index}) => 'Grafikkalternativ ${index}', + 'metadataEdit.selectedArtworkOption' => ({required Object index}) => 'Grafikkalternativ ${index}, valgt', 'metadataEdit.notSet' => 'Ikke angitt', 'metadataEdit.libraryDefault' => 'Bibliotekstandard', 'metadataEdit.accountDefault' => 'Kontostandard', @@ -3472,14 +3480,14 @@ extension on TranslationsNb { 'metadataEdit.label' => 'Etikett', 'metadataEdit.style' => 'Stil', 'metadataEdit.mood' => 'Stemning', - 'matchScreen.match' => 'Match...', - 'matchScreen.fixMatch' => 'Rett match...', - 'matchScreen.unmatch' => 'Fjern match', - 'matchScreen.unmatchConfirm' => 'Fjerne denne matchen? Plex behandler den som umatchet til den matches igjen.', - 'matchScreen.unmatchSuccess' => 'Match fjernet', - 'matchScreen.unmatchFailed' => 'Kunne ikke fjerne match', - 'matchScreen.matchApplied' => 'Match anvendt', - 'matchScreen.matchFailed' => 'Kunne ikke anvende match', + 'matchScreen.match' => 'Finn treff...', + 'matchScreen.fixMatch' => 'Korriger treff...', + 'matchScreen.unmatch' => 'Fjern treff', + 'matchScreen.unmatchConfirm' => 'Fjerne dette treffet? Plex behandler elementet som uten treff til det matches på nytt.', + 'matchScreen.unmatchSuccess' => 'Treff fjernet', + 'matchScreen.unmatchFailed' => 'Kunne ikke fjerne treff', + 'matchScreen.matchApplied' => 'Treff valgt', + 'matchScreen.matchFailed' => 'Kunne ikke velge treff', 'matchScreen.titleHint' => 'Tittel', 'matchScreen.yearHint' => 'År', 'matchScreen.search' => 'Søk', @@ -3494,8 +3502,8 @@ extension on TranslationsNb { 'trakt.disconnectConfirmBody' => 'Plezy slutter å sende hendelser til Trakt. Du kan koble til igjen når som helst.', 'trakt.scrobble' => 'Sanntids-scrobbling', 'trakt.scrobbleDescription' => 'Send avspillings-, pause- og stopphendelser til Trakt under avspilling.', - 'trakt.watchedSync' => 'Synkroniser sett-status', - 'trakt.watchedSyncDescription' => 'Når du markerer noe som sett i Plezy, markeres det også på Trakt.', + 'trakt.watchedSync' => 'Synkroniser settstatus', + 'trakt.watchedSyncDescription' => 'Når du markerer elementer som sett i Plezy, markeres de også som sett på Trakt.', 'seerr.title' => 'Seerr', 'seerr.connectTitle' => 'Koble til Seerr', 'seerr.serverUrl' => 'Server-URL', @@ -3509,8 +3517,8 @@ extension on TranslationsNb { 'seerr.instance' => 'Instans', 'seerr.disconnectConfirm' => 'Koble fra Seerr?', 'seerr.disconnectConfirmBody' => 'Plezy glemmer denne Seerr-instansen. Koble til igjen når som helst.', - 'seerr.request' => 'Forespør', - 'seerr.request4k' => 'Forespør i 4K', + 'seerr.request' => 'Be om', + 'seerr.request4k' => 'Be om i 4K', 'seerr.seasons' => 'Sesonger', 'seerr.allSeasons' => 'Alle sesonger', 'seerr.advancedOptions' => 'Avansert', @@ -3556,8 +3564,8 @@ extension on TranslationsNb { 'services.libraryFilter.subtitleBlocked' => ({required Object count}) => '${count} blokkert', 'services.libraryFilter.subtitleAllowed' => ({required Object count}) => '${count} tillatt', 'services.libraryFilter.mode' => 'Filtermodus', - 'services.libraryFilter.modeBlacklist' => 'Svarteliste', - 'services.libraryFilter.modeWhitelist' => 'Hviteliste', + 'services.libraryFilter.modeBlacklist' => 'Blokkeringsliste', + 'services.libraryFilter.modeWhitelist' => 'Tillatelsesliste', 'services.libraryFilter.modeHintBlacklist' => 'Synkroniser alle biblioteker bortsett fra dem du markerer nedenfor.', 'services.libraryFilter.modeHintWhitelist' => 'Synkroniser kun bibliotekene du markerer nedenfor.', 'services.libraryFilter.libraries' => 'Biblioteker', @@ -3570,19 +3578,19 @@ extension on TranslationsNb { 'addServer.localServers' => 'Lokale Jellyfin-servere', 'addServer.username' => 'Brukernavn', 'addServer.password' => 'Passord', - 'addServer.signIn' => 'Logg på', + 'addServer.signIn' => 'Logg inn', 'addServer.change' => 'Endre', 'addServer.required' => 'Påkrevd', 'addServer.couldNotReachServer' => ({required Object error}) => 'Kunne ikke nå serveren: ${error}', - 'addServer.signInFailed' => ({required Object error}) => 'Pålogging mislyktes: ${error}', + 'addServer.signInFailed' => ({required Object error}) => 'Innlogging mislyktes: ${error}', 'addServer.quickConnectFailed' => ({required Object error}) => 'Quick Connect mislyktes: ${error}', - 'addServer.addPlexTitle' => 'Logg på med Plex', - 'addServer.pinExpired' => 'PIN-koden gikk ut før pålogging. Prøv igjen.', + 'addServer.addPlexTitle' => 'Logg inn med Plex', + 'addServer.pinExpired' => 'PIN-koden utløp før innloggingen var fullført. Prøv igjen.', 'addServer.failedToRegisterAccount' => ({required Object error}) => 'Kunne ikke registrere kontoen: ${error}', 'addServer.enterJellyfinUrlError' => 'Oppgi URL-en til Jellyfin-serveren din', 'addServer.addConnectionTitle' => 'Legg til tilkobling', - 'addServer.addConnectionTitleScoped' => ({required Object name}) => 'Legg til i ${name}', - 'addServer.signInWithPlexCard' => 'Logg på med Plex', + 'addServer.addConnectionTitleScoped' => ({required Object name}) => 'Legg til for ${name}', + 'addServer.signInWithPlexCard' => 'Logg inn med Plex', 'addServer.signInWithPlexCardSubtitle' => 'Autoriser denne enheten. Delte servere legges til.', 'addServer.signInWithPlexCardSubtitleScoped' => 'Autoriser en Plex-konto. Home-brukere blir profiler.', 'addServer.connectToJellyfinCard' => 'Koble til Jellyfin', diff --git a/lib/i18n/strings_nl.g.dart b/lib/i18n/strings_nl.g.dart index 5d95c646..cb63eac8 100644 --- a/lib/i18n/strings_nl.g.dart +++ b/lib/i18n/strings_nl.g.dart @@ -121,7 +121,7 @@ class _Translations$auth$nl extends Translations$auth$en { @override String get quickConnectWaiting => 'Wachten op goedkeuring…'; @override String get quickConnectCancel => 'Annuleren'; @override String get quickConnectExpired => 'Quick Connect is verlopen. Probeer opnieuw.'; - @override String get localDataRecoveryRequired => 'Plezy could not safely recover local sign-in and pending playback data. Please sign in again.'; + @override String get localDataRecoveryRequired => 'Plezy kon lokale aanmeldings- en openstaande afspeelgegevens niet veilig herstellen. Meld je opnieuw aan.'; } // Path: common @@ -159,7 +159,7 @@ class _Translations$common$nl extends Translations$common$en { @override String get search => 'Zoeken'; @override String get home => 'Home'; @override String get back => 'Terug'; - @override String get settings => 'Opties'; + @override String get settings => 'Instellingen'; @override String get mute => 'Dempen'; @override String get ok => 'OK'; @override String get off => 'Uit'; @@ -187,7 +187,7 @@ class _Translations$screens$nl extends Translations$screens$en { // Translations @override String get licenses => 'Licenties'; @override String get switchProfile => 'Wissel van profiel'; - @override String get subtitleStyling => 'Ondertitel opmaak'; + @override String get subtitleStyling => 'Ondertitelopmaak'; @override String get mpvConfig => 'mpv.conf'; @override String get logs => 'Logbestanden'; } @@ -224,11 +224,11 @@ class _Translations$settings$nl extends Translations$settings$en { @override String get videoPlayback => 'Video afspelen'; @override String get videoPlaybackDescription => 'Afspeelgedrag configureren'; @override String get advanced => 'Geavanceerd'; - @override String get episodePosterMode => 'Aflevering poster stijl'; - @override String get seriesPoster => 'Serie poster'; - @override String get seasonPoster => 'Seizoen poster'; + @override String get episodePosterMode => 'Stijl van afleveringsposter'; + @override String get seriesPoster => 'Serieposter'; + @override String get seasonPoster => 'Seizoensposter'; @override String get episodeThumbnail => 'Miniatuur'; - @override String get showHeroSectionDescription => 'Toon uitgelichte inhoud carrousel op startscherm'; + @override String get showHeroSectionDescription => 'Toon de carrousel met uitgelichte inhoud op het startscherm'; @override String get secondsLabel => 'Seconden'; @override String get minutesLabel => 'Minuten'; @override String get secondsShort => 's'; @@ -238,21 +238,23 @@ class _Translations$settings$nl extends Translations$settings$en { @override String get lightTheme => 'Licht'; @override String get darkTheme => 'Donker'; @override String get oledTheme => 'OLED'; - @override String get libraryDensity => 'Bibliotheek dichtheid'; + @override String get libraryDensity => 'Bibliotheekdichtheid'; @override String get compact => 'Compact'; @override String get comfortable => 'Comfortabel'; + @override String get tvCornerSpotlightBackdrop => 'Uitgelichte achtergrond in de hoek'; + @override String get tvCornerSpotlightBackdropDescription => 'Toon de uitgelichte afbeelding rechtsboven in plaats van schermvullend'; @override String get viewMode => 'Weergavemodus'; @override String get gridView => 'Raster'; @override String get listView => 'Lijst'; @override String get showHeroSection => 'Toon hoofdsectie'; - @override String get continueWatchingAction => 'Actie voor Doorgaan met kijken'; + @override String get continueWatchingAction => 'Actie voor \'Doorgaan met kijken\''; @override String get continueWatchingPlay => 'Afspelen'; @override String get continueWatchingDetails => 'Details openen'; @override String get episodeAction => 'Afleveringsactie'; @override String get episodePlay => 'Afspelen'; @override String get episodeDetails => 'Details openen'; @override String get useGlobalHubs => 'Startlayout gebruiken'; - @override String get useGlobalHubsDescription => 'Toon gecombineerde home-hubs. Anders bibliotheekaanbevelingen gebruiken.'; + @override String get useGlobalHubsDescription => 'Toon gecombineerde hubs op het startscherm. Gebruik anders bibliotheekaanbevelingen.'; @override String get showServerNameOnHubs => 'Servernaam tonen bij hubs'; @override String get showServerNameOnHubsDescription => 'Toon servernamen altijd in hubtitels.'; @override String get groupLibrariesByServer => 'Bibliotheken groeperen per server'; @@ -276,47 +278,47 @@ class _Translations$settings$nl extends Translations$settings$en { @override String get visualEffectsReduced => 'Verminderd'; @override String get visualEffectsReducedDescription => 'Minder animaties en illustraties met lagere resolutie'; @override String get hideSpoilers => 'Spoilers voor ongekeken afleveringen verbergen'; - @override String get hideSpoilersDescription => 'Vervaag miniaturen en beschrijvingen voor niet-bekeken afleveringen'; - @override String get playerBackend => 'Speler backend'; + @override String get hideSpoilersDescription => 'Vervaag miniaturen en beschrijvingen van ongekeken afleveringen'; + @override String get playerBackend => 'Afspeelbackend'; @override String get exoPlayer => 'ExoPlayer'; @override String get mpv => 'mpv'; - @override String get hardwareDecoding => 'Hardware decodering'; - @override String get hardwareDecodingDescription => 'Gebruik hardware versnelling indien beschikbaar'; - @override String get bufferSize => 'Buffer grootte'; + @override String get hardwareDecoding => 'Hardwaredecodering'; + @override String get hardwareDecodingDescription => 'Gebruik hardwareversnelling indien beschikbaar'; + @override String get bufferSize => 'Buffergrootte'; @override String bufferSizeMB({required Object size}) => '${size}MB'; - @override String get bufferSizeAuto => 'Auto (Aanbevolen)'; + @override String get bufferSizeAuto => 'Automatisch (aanbevolen)'; @override String bufferSizeWarning({required Object heap, required Object size}) => '${heap}MB geheugen beschikbaar. Een buffer van ${size}MB kan afspelen beïnvloeden.'; @override String get defaultQualityTitle => 'Standaardkwaliteit'; @override String get musicQualityTitle => 'Muziekkwaliteit'; - @override String get subtitleStyling => 'Ondertitel opmaak'; - @override String get subtitleStylingDescription => 'Pas ondertitel uiterlijk aan'; - @override String get smallSkipDuration => 'Korte skip duur'; - @override String get largeSkipDuration => 'Lange skip duur'; + @override String get subtitleStyling => 'Ondertitelopmaak'; + @override String get subtitleStylingDescription => 'Pas de weergave van ondertitels aan'; + @override String get smallSkipDuration => 'Korte sprong'; + @override String get largeSkipDuration => 'Lange sprong'; @override String get rewindOnResume => 'Terugspoelen bij hervatten'; @override String secondsUnit({required Object seconds}) => '${seconds} seconden'; - @override String get defaultSleepTimer => 'Standaard slaap timer'; - @override String minutesUnit({required Object minutes}) => 'bij ${minutes} minuten'; - @override String get rememberTrackSelections => 'Onthoud track selecties per serie/film'; + @override String get defaultSleepTimer => 'Standaardslaaptimer'; + @override String minutesUnit({required Object minutes}) => '${minutes} minuten'; + @override String get rememberTrackSelections => 'Trackselecties per serie of film onthouden'; @override String get rememberTrackSelectionsDescription => 'Onthoud audio- en ondertitelkeuzes per titel'; @override String get showChapterMarkersOnTimeline => 'Hoofdstukmarkeringen op tijdlijn tonen'; @override String get showChapterMarkersOnTimelineDescription => 'Verdeel de tijdlijn bij hoofdstukgrenzen'; - @override String get clickVideoTogglesPlayback => 'Klik op de video om afspelen/pauzeren te wisselen.'; - @override String get clickVideoTogglesPlaybackDescription => 'Klik op video om af te spelen/pauzeren in plaats van bediening te tonen.'; - @override String get videoPlayerControls => 'Videospeler bediening'; - @override String get keyboardShortcuts => 'Toetsenbord sneltoetsen'; - @override String get keyboardShortcutsDescription => 'Pas toetsenbord sneltoetsen aan'; - @override String get videoPlayerNavigation => 'Videospeler navigatie'; - @override String get videoPlayerNavigationDescription => 'Gebruik pijltjestoetsen om door de videospeler bediening te navigeren'; - @override String get watchTogetherRelay => 'Samen Kijken Relay'; + @override String get clickVideoTogglesPlayback => 'Klik op de video om afspelen of pauzeren te wisselen'; + @override String get clickVideoTogglesPlaybackDescription => 'Klik op de video om af te spelen of te pauzeren in plaats van de bediening te tonen.'; + @override String get videoPlayerControls => 'Videospelerbediening'; + @override String get keyboardShortcuts => 'Toetsenbordsneltoetsen'; + @override String get keyboardShortcutsDescription => 'Pas de toetsenbordsneltoetsen aan'; + @override String get videoPlayerNavigation => 'Videospelernavigatie'; + @override String get videoPlayerNavigationDescription => 'Gebruik de pijltjestoetsen om door de videospelerbediening te navigeren'; + @override String get watchTogetherRelay => 'Relay voor Samen kijken'; @override String get watchTogetherRelayDescription => 'Stel een aangepaste relay in. Iedereen moet dezelfde server gebruiken.'; @override String get watchTogetherRelayHint => 'https://mijn-relay.voorbeeld.nl'; - @override String get watchTogetherRelayInvalid => 'Enter a valid HTTP or HTTPS relay base URL.'; + @override String get watchTogetherRelayInvalid => 'Voer een geldige HTTP- of HTTPS-basis-URL voor de relay in.'; @override String get crashReporting => 'Crashrapportage'; @override String get crashReportingDescription => 'Crashrapporten verzenden om de app te verbeteren'; - @override String get debugLogging => 'Debug logging'; - @override String get debugLoggingDescription => 'Schakel gedetailleerde logging in voor probleemoplossing'; - @override String get viewLogs => 'Bekijk logs'; - @override String get viewLogsDescription => 'Bekijk applicatie logs'; + @override String get debugLogging => 'Debuglogboek'; + @override String get debugLoggingDescription => 'Schakel gedetailleerde logboekregistratie in om problemen op te lossen'; + @override String get viewLogs => 'Logbestanden bekijken'; + @override String get viewLogsDescription => 'Logbestanden van de app bekijken'; @override String get clearCache => 'Cache wissen'; @override String get clearCacheDescription => 'Wis gecachete afbeeldingen en gegevens. Inhoud kan langzamer laden.'; @override String get clearCacheSuccess => 'Cache succesvol gewist'; @@ -335,7 +337,7 @@ class _Translations$settings$nl extends Translations$settings$en { @override String get importSettingsNoUser => 'Meld je aan voordat je instellingen importeert'; @override String get shortcutsReset => 'Sneltoetsen gereset naar standaard'; @override String get about => 'Over'; - @override String get aboutDescription => 'App informatie en licenties'; + @override String get aboutDescription => 'App-informatie en licenties'; @override String get updates => 'Updates'; @override String get updateAvailable => 'Update beschikbaar'; @override String get checkForUpdates => 'Controleer op updates'; @@ -345,15 +347,15 @@ class _Translations$settings$nl extends Translations$settings$en { @override String validationErrorDuration({required Object min, required Object max, required Object unit}) => 'Duur moet tussen ${min} en ${max} ${unit} zijn'; @override String shortcutAlreadyAssigned({required Object action}) => 'Sneltoets al toegewezen aan ${action}'; @override String shortcutUpdated({required Object action}) => 'Sneltoets bijgewerkt voor ${action}'; - @override String get saveFailed => 'Could not save changes. Try again.'; - @override String get autoSkip => 'Automatisch Overslaan'; - @override String get autoSkipIntro => 'Intro Automatisch Overslaan'; - @override String get autoSkipIntroDescription => 'Intro-markeringen na enkele seconden automatisch overslaan'; - @override String get autoSkipCredits => 'Credits Automatisch Overslaan'; - @override String get autoSkipCreditsDescription => 'Credits automatisch overslaan en volgende aflevering afspelen'; - @override String get forceSkipMarkerFallback => 'Fallbackmarkeringen afdwingen'; - @override String get forceSkipMarkerFallbackDescription => 'Gebruik hoofdstuktitelpatronen, zelfs wanneer Plex markeringen heeft'; - @override String get autoSkipDelay => 'Vertraging Automatisch Overslaan'; + @override String get saveFailed => 'Wijzigingen konden niet worden opgeslagen. Probeer het opnieuw.'; + @override String get autoSkip => 'Automatisch overslaan'; + @override String get autoSkipIntro => 'Intro automatisch overslaan'; + @override String get autoSkipIntroDescription => 'Intromarkeringen na enkele seconden automatisch overslaan'; + @override String get autoSkipCredits => 'Aftiteling automatisch overslaan'; + @override String get autoSkipCreditsDescription => 'Aftiteling automatisch overslaan en de volgende aflevering afspelen'; + @override String get forceSkipMarkerFallback => 'Reservemarkeringen afdwingen'; + @override String get forceSkipMarkerFallbackDescription => 'Gebruik patronen in hoofdstuktitels, zelfs wanneer Plex markeringen heeft'; + @override String get autoSkipDelay => 'Vertraging voor automatisch overslaan'; @override String autoSkipDelayDescription({required Object seconds}) => '${seconds} seconden wachten voor automatisch overslaan'; @override String get introPattern => 'Intromarkeringspatroon'; @override String get introPatternDescription => 'Reguliere expressie om intromarkeringen in hoofdstuktitels te herkennen'; @@ -362,33 +364,33 @@ class _Translations$settings$nl extends Translations$settings$en { @override String get invalidRegex => 'Ongeldige reguliere expressie'; @override String get regex => 'Reguliere expressie'; @override String get downloads => 'Downloads'; - @override String get downloadLocationDescription => 'Kies waar gedownloade content wordt opgeslagen'; - @override String get downloadLocationDefault => 'Standaard (App-opslag)'; - @override String get downloadLocationCustom => 'Aangepaste Locatie'; - @override String get selectFolder => 'Selecteer Map'; - @override String get resetToDefault => 'Herstel naar Standaard'; + @override String get downloadLocationDescription => 'Kies waar gedownloade inhoud wordt opgeslagen'; + @override String get downloadLocationDefault => 'Standaard (app-opslag)'; + @override String get downloadLocationCustom => 'Aangepaste locatie'; + @override String get selectFolder => 'Map selecteren'; + @override String get resetToDefault => 'Standaardinstelling herstellen'; @override String currentPath({required Object path}) => 'Huidig: ${path}'; @override String get downloadLocationChanged => 'Downloadlocatie gewijzigd'; @override String get downloadLocationReset => 'Downloadlocatie hersteld naar standaard'; @override String get downloadLocationInvalid => 'Geselecteerde map is niet beschrijfbaar'; @override String get downloadLocationPickerUnavailable => 'Mapselectie is niet beschikbaar op dit apparaat'; - @override String get downloadOnWifiOnly => 'Alleen via WiFi downloaden'; + @override String get downloadOnWifiOnly => 'Alleen via wifi downloaden'; @override String get downloadOnWifiOnlyDescription => 'Voorkom downloads bij gebruik van mobiele data'; @override String get autoRemoveWatchedDownloads => 'Bekeken downloads automatisch verwijderen'; @override String get autoRemoveWatchedDownloadsDescription => 'Bekeken downloads automatisch verwijderen'; - @override String get cellularDownloadBlocked => 'Downloads zijn geblokkeerd via mobiel netwerk. Gebruik WiFi of wijzig de instelling.'; + @override String get cellularDownloadBlocked => 'Downloads via een mobiel netwerk zijn geblokkeerd. Gebruik wifi of wijzig de instelling.'; @override String get maxVolume => 'Maximaal volume'; @override String get maxVolumeDescription => 'Volume boven 100% toestaan voor stille media'; @override String maxVolumePercent({required Object percent}) => '${percent}%'; @override String get discordRichPresence => 'Discord Rich Presence'; @override String get discordRichPresenceDescription => 'Toon op Discord wat je aan het kijken bent'; - @override String get services => 'Services'; - @override String get servicesDescription => 'Verbind Trakt, MyAnimeList, Seerr en meer'; + @override String get services => 'Diensten'; + @override String get servicesDescription => 'Koppel Trakt, MyAnimeList, Seerr en meer'; @override String get manageLibrariesDescription => 'Bibliotheken herordenen en verbergen'; @override String get companionRemoteServer => 'Companion Remote-server'; @override String get companionRemoteServerDescription => 'Sta mobiele apparaten op je netwerk toe om deze app te bedienen'; @override String get autoPip => 'Automatische beeld-in-beeld'; - @override String get autoPipDescription => 'Ga naar picture-in-picture bij verlaten tijdens afspelen'; + @override String get autoPipDescription => 'Schakel over naar beeld-in-beeld als je tijdens het afspelen de app verlaat'; @override String get matchContentFrameRate => 'Inhoudsframesnelheid afstemmen'; @override String get matchContentFrameRateDescription => 'Stem schermverversing af op videocontent'; @override String get matchRefreshRate => 'Verversingssnelheid afstemmen'; @@ -400,9 +402,9 @@ class _Translations$settings$nl extends Translations$settings$en { @override String get tunneledPlaybackDescription => 'Gebruik videotunneling. Schakel uit als HDR-afspelen zwart beeld geeft.'; @override String get audioPassthrough => 'Audio-doorvoer'; @override String get audioPassthroughDescription => 'Stuur Dolby/DTS-audio zonder hercodering naar je receiver of tv en behoud surroundgeluid. Schakel uit als je geen geluid hebt.'; - @override String get audioPassthroughDescriptionAppleTv => 'Geeft Dolby Digital Plus (incl. Atmos) als bitstream aan het systeem door. DTS en TrueHD worden nog steeds als meerkanaals PCM afgespeeld. Bij zoeken kunnen korte geluidsonderbrekingen optreden.'; - @override String get audioDownmix => 'Downmix naar stereo'; - @override String get audioDownmixDescription => 'Mixt surroundgeluid naar twee kanalen voor stereoluidsprekers of een koptelefoon'; + @override String get audioPassthroughDescriptionAppleTv => 'Gebruik de ingebouwde Dolby-decoder van Apple voor Dolby Digital Plus, inclusief Atmos. DTS en TrueHD worden nog steeds als meerkanaals-PCM afgespeeld. Schakel dit uit als je geen geluid hoort.'; + @override String get audioDownmix => 'Downmixen naar stereo'; + @override String get audioDownmixDescription => 'Mix surroundgeluid terug naar twee kanalen voor stereoluidsprekers of een koptelefoon'; @override String get downmixCenterBoost => 'Versterking middenkanaal'; @override String downmixCenterBoostValue({required Object db}) => '${db} dB'; @override String get downmixCenterBoostLabel => 'Versterking (dB)'; @@ -426,26 +428,26 @@ class _Translations$settings$nl extends Translations$settings$en { @override String get atmosTestStatus => 'Status'; @override String get dvConversionMode => 'Dolby Vision-conversie'; @override String get dvConversionModeDescription => 'Kies hoe ExoPlayer Dolby Vision Profile 7-bestanden verwerkt.'; - @override String get dvConversionAuto => 'Auto'; + @override String get dvConversionAuto => 'Automatisch'; @override String get dvConversionNative => 'Native / uitgeschakeld'; @override String get dvConversionDv81 => 'P7 → P8.1'; @override String get dvConversionHevcStrip => 'P7 → HEVC'; - @override String get dvConversionAutoDescription => 'Gebruik apparaatdetectie en normaal fallbackgedrag'; - @override String get dvConversionNativeDescription => 'Forceer native DV7 en onderdruk DV-conversie opnieuw proberen'; - @override String get dvConversionDv81Description => 'Forceer inline RPU-conversie naar Dolby Vision-profiel 8.1'; - @override String get dvConversionHevcStripDescription => 'Strip Dolby Vision RPU/EL-lagen en presenteer gewone HEVC'; + @override String get dvConversionAutoDescription => 'Gebruik detectie van apparaatmogelijkheden en het normale terugvalgedrag'; + @override String get dvConversionNativeDescription => 'Dwing native DV7 af en voorkom een nieuwe poging met DV-conversie'; + @override String get dvConversionDv81Description => 'Dwing directe RPU-conversie naar Dolby Vision-profiel 8.1 af'; + @override String get dvConversionHevcStripDescription => 'Verwijder Dolby Vision RPU/EL-lagen en bied gewone HEVC aan'; @override String get requireProfileSelectionOnOpen => 'Vraag om profiel bij openen'; @override String get requireProfileSelectionOnOpenDescription => 'Toon profielselectie telkens wanneer de app wordt geopend'; - @override String get forceTvMode => 'TV-modus forceren'; - @override String get forceTvModeDescription => 'Forceer TV-indeling. Voor apparaten zonder autodetectie. Herstart vereist.'; + @override String get forceTvMode => 'Tv-modus afdwingen'; + @override String get forceTvModeDescription => 'Dwing de tv-indeling af op apparaten zonder automatische detectie. Herstart vereist.'; @override String get startInFullscreen => 'Starten in volledig scherm'; @override String get startInFullscreenDescription => 'Open Plezy bij het starten in volledig scherm'; - @override String get exitFullscreenOnPlayerClose => 'Volledig scherm verlaten bij sluiten speler'; - @override String get exitFullscreenOnPlayerCloseDescription => 'Verlaat automatisch volledig scherm wanneer de videospeler wordt gesloten'; + @override String get exitFullscreenOnPlayerClose => 'Volledig scherm verlaten bij sluiten van speler'; + @override String get exitFullscreenOnPlayerCloseDescription => 'Verlaat automatisch de volledigschermmodus wanneer de videospeler wordt gesloten'; @override String get autoHidePerformanceOverlay => 'Prestatie-overlay automatisch verbergen'; - @override String get autoHidePerformanceOverlayDescription => 'Laat de prestatie-overlay meevervagen met de afspeelknoppen'; - @override String get showNavBarLabels => 'Navigatiebalk labels tonen'; - @override String get showNavBarLabelsDescription => 'Tekstlabels onder de pictogrammen van de navigatiebalk weergeven'; + @override String get autoHidePerformanceOverlayDescription => 'Laat de prestatie-overlay samen met de afspeelknoppen vervagen'; + @override String get showNavBarLabels => 'Labels op navigatiebalk tonen'; + @override String get showNavBarLabelsDescription => 'Tekstlabels onder de pictogrammen op de navigatiebalk weergeven'; @override String get startupSection => 'Opstartsectie'; @override String get liveTvDefaultFavorites => 'Standaard favoriete zenders'; @override String get liveTvDefaultFavoritesDescription => 'Toon alleen favoriete zenders bij het openen van Live TV'; @@ -455,8 +457,8 @@ class _Translations$settings$nl extends Translations$settings$en { @override String get window => 'Venster'; @override String get content => 'Inhoud'; @override String get player => 'Speler'; - @override String get subtitlesAndConfig => 'Ondertitels en configuratie'; - @override String get seekAndTiming => 'Zoeken en timing'; + @override String get subtitlesAndConfig => 'Ondertitels en instellingen'; + @override String get seekAndTiming => 'Spoelen en timing'; @override String get behavior => 'Gedrag'; } @@ -496,7 +498,7 @@ class _Translations$fileInfo$nl extends Translations$fileInfo$en { final TranslationsNl _root; // ignore: unused_field // Translations - @override String get title => 'Bestand info'; + @override String get title => 'Bestandsinformatie'; @override String get video => 'Video'; @override String get audio => 'Audio'; @override String get file => 'Bestand'; @@ -504,14 +506,14 @@ class _Translations$fileInfo$nl extends Translations$fileInfo$en { @override String get codec => 'Codec'; @override String get resolution => 'Resolutie'; @override String get bitrate => 'Bitrate'; - @override String get frameRate => 'Frame rate'; + @override String get frameRate => 'Framesnelheid'; @override String get aspectRatio => 'Beeldverhouding'; @override String get profile => 'Profiel'; - @override String get bitDepth => 'Bit diepte'; + @override String get bitDepth => 'Bitdiepte'; @override String get colorSpace => 'Kleurruimte'; @override String get colorRange => 'Kleurbereik'; @override String get colorPrimaries => 'Kleurprimaires'; - @override String get chromaSubsampling => 'Chroma subsampling'; + @override String get chromaSubsampling => 'Chroma-subsampling'; @override String get channels => 'Kanalen'; @override String get subtitles => 'Ondertitels'; @override String get overallBitrate => 'Totale bitrate'; @@ -520,7 +522,7 @@ class _Translations$fileInfo$nl extends Translations$fileInfo$en { @override String get container => 'Container'; @override String get duration => 'Duur'; @override String get optimizedForStreaming => 'Geoptimaliseerd voor streaming'; - @override String get has64bitOffsets => '64-bit Offsets'; + @override String get has64bitOffsets => '64-bits offsets'; } // Path: mediaMenu @@ -530,15 +532,15 @@ class _Translations$mediaMenu$nl extends Translations$mediaMenu$en { final TranslationsNl _root; // ignore: unused_field // Translations - @override String get markAsWatched => 'Markeer als gekeken'; - @override String get markAsUnwatched => 'Markeer als ongekeken'; - @override String get removeFromContinueWatching => 'Verwijder uit Doorgaan met kijken'; + @override String get markAsWatched => 'Als bekeken markeren'; + @override String get markAsUnwatched => 'Als ongekeken markeren'; + @override String get removeFromContinueWatching => 'Uit \'Doorgaan met kijken\' verwijderen'; @override String get viewDetails => 'Details bekijken'; @override String get goToSeries => 'Ga naar serie'; @override String get shufflePlay => 'Willekeurig afspelen'; - @override String get shuffleNotAvailableOffline => 'Shuffle is offline niet beschikbaar'; - @override String get fileInfo => 'Bestand info'; - @override String get deleteFromServer => 'Verwijderen van server'; + @override String get shuffleNotAvailableOffline => 'Willekeurig afspelen is offline niet beschikbaar'; + @override String get fileInfo => 'Bestandsinformatie'; + @override String get deleteFromServer => 'Van server verwijderen'; @override String get confirmDelete => 'Deze media en bestanden van je server verwijderen?'; @override String get deleteMultipleWarning => 'Dit omvat alle afleveringen en hun bestanden.'; @override String get mediaDeletedSuccessfully => 'Media-item succesvol verwijderd'; @@ -560,8 +562,8 @@ class _Translations$rateSheet$nl extends Translations$rateSheet$en { @override String get favorite => 'Favoriet'; @override String get favorited => 'Toegevoegd aan favorieten'; @override String get saved => 'Opgeslagen'; - @override String get notAvailable => 'Geen match gevonden'; - @override String get noConnectedServices => 'Verbind een service in Instellingen om daar te beoordelen.'; + @override String get notAvailable => 'Geen overeenkomst gevonden'; + @override String get noConnectedServices => 'Koppel een dienst in Instellingen om daar een beoordeling te geven.'; } // Path: accessibility @@ -572,7 +574,7 @@ class _Translations$accessibility$nl extends Translations$accessibility$en { // Translations @override String mediaCardMovie({required Object title}) => '${title}, film'; - @override String mediaCardShow({required Object title}) => '${title}, TV-serie'; + @override String mediaCardShow({required Object title}) => '${title}, tv-serie'; @override String mediaCardEpisode({required Object title, required Object episodeInfo}) => '${title}, ${episodeInfo}'; @override String mediaCardSeason({required Object title, required Object seasonInfo}) => '${title}, ${seasonInfo}'; @override String get mediaCardWatched => 'bekeken'; @@ -604,8 +606,8 @@ class _Translations$tooltips$nl extends Translations$tooltips$en { // Translations @override String get shufflePlay => 'Willekeurig afspelen'; @override String get playTrailer => 'Trailer afspelen'; - @override String get markAsWatched => 'Markeer als gekeken'; - @override String get markAsUnwatched => 'Markeer als ongekeken'; + @override String get markAsWatched => 'Als bekeken markeren'; + @override String get markAsUnwatched => 'Als ongekeken markeren'; } // Path: audioTracks @@ -627,17 +629,17 @@ class _Translations$videoControls$nl extends Translations$videoControls$en { // Translations @override String get audioLabel => 'Audio'; @override String get subtitlesLabel => 'Ondertitels'; - @override String get resetToZero => 'Reset naar 0ms'; + @override String get resetToZero => 'Terugzetten naar 0 ms'; @override String addTime({required Object amount, required Object unit}) => '+${amount}${unit}'; @override String minusTime({required Object amount, required Object unit}) => '-${amount}${unit}'; @override String playsLater({required Object label}) => '${label} speelt later af'; @override String playsEarlier({required Object label}) => '${label} speelt eerder af'; @override String get noOffset => 'Geen offset'; @override String get letterbox => 'Letterbox'; - @override String get fillScreen => 'Vul scherm'; + @override String get fillScreen => 'Scherm vullen'; @override String get stretch => 'Uitrekken'; - @override String get lockRotation => 'Vergrendel rotatie'; - @override String get unlockRotation => 'Ontgrendel rotatie'; + @override String get lockRotation => 'Rotatie vergrendelen'; + @override String get unlockRotation => 'Rotatie ontgrendelen'; @override String get timerActive => 'Timer actief'; @override String playbackWillPauseIn({required Object duration}) => 'Afspelen wordt gepauzeerd over ${duration}'; @override String get sleepTimerEndOfVideo => 'Einde van huidige video'; @@ -647,12 +649,14 @@ class _Translations$videoControls$nl extends Translations$videoControls$en { @override String get stillWatching => 'Kijk je nog?'; @override String pausingIn({required Object seconds}) => 'Pauze over ${seconds}s'; @override String get continueWatching => 'Doorgaan'; - @override String get autoPlayNext => 'Automatisch volgende afspelen'; + @override String get autoPlayNext => 'Volgende automatisch afspelen'; @override String get playNext => 'Volgende afspelen'; @override String get playButton => 'Afspelen'; @override String get pauseButton => 'Pauzeren'; - @override String seekBackwardButton({required Object seconds}) => 'Terugspoelen ${seconds} seconden'; - @override String seekForwardButton({required Object seconds}) => 'Vooruitspoelen ${seconds} seconden'; + @override String get showPlaybackControls => 'Afspeelbediening tonen'; + @override String get hidePlaybackControls => 'Afspeelbediening verbergen'; + @override String seekBackwardButton({required Object seconds}) => '${seconds} seconden terugspoelen'; + @override String seekForwardButton({required Object seconds}) => '${seconds} seconden vooruitspoelen'; @override String get previousButton => 'Vorige aflevering'; @override String get nextButton => 'Volgende aflevering'; @override String get previousChapterButton => 'Vorig hoofdstuk'; @@ -669,14 +673,14 @@ class _Translations$videoControls$nl extends Translations$videoControls$en { @override String qualityPresetLabel({required Object resolution, required Object bitrate}) => '${resolution}p ${bitrate} Mbps'; @override String get transcodeUnavailableFallback => 'Transcoderen niet beschikbaar — originele kwaliteit wordt afgespeeld'; @override String get subtitleUnavailableFallback => 'De geselecteerde ondertitels konden niet worden geladen — afspelen gaat door zonder ondertitels'; - @override String get pipButton => 'Beeld-in-beeld modus'; + @override String get pipButton => 'Beeld-in-beeldmodus'; @override String get aspectRatioButton => 'Beeldverhouding'; @override String get ambientLighting => 'Omgevingsverlichting'; @override String get fullscreenButton => 'Volledig scherm activeren'; @override String get exitFullscreenButton => 'Volledig scherm verlaten'; @override String get alwaysOnTopButton => 'Altijd bovenop'; @override String get rotationLockButton => 'Rotatievergrendeling'; - @override String get lockScreen => 'Vergrendel scherm'; + @override String get lockScreen => 'Scherm vergrendelen'; @override String get screenLockButton => 'Schermvergrendeling'; @override String get longPressToUnlock => 'Lang indrukken om te ontgrendelen'; @override String get timelineSlider => 'Videotijdlijn'; @@ -712,39 +716,39 @@ class _Translations$messages$nl extends Translations$messages$en { // Translations @override String get markedAsWatched => 'Gemarkeerd als gekeken'; @override String get markedAsUnwatched => 'Gemarkeerd als ongekeken'; - @override String get markedAsWatchedOffline => 'Gemarkeerd als gekeken (sync wanneer online)'; - @override String get markedAsUnwatchedOffline => 'Gemarkeerd als ongekeken (sync wanneer online)'; + @override String get markedAsWatchedOffline => 'Gemarkeerd als bekeken (wordt gesynchroniseerd zodra je online bent)'; + @override String get markedAsUnwatchedOffline => 'Gemarkeerd als ongekeken (wordt gesynchroniseerd zodra je online bent)'; @override String autoRemovedWatchedDownload({required Object title}) => 'Automatisch verwijderd: ${title}'; @override String autoRemovedWatchedDownloads({required num n}) => (_root.$meta.cardinalResolver ?? PluralResolvers.cardinal('nl'))(n, one: 'Automatisch ${n} bekeken download verwijderd', other: 'Automatisch ${n} bekeken downloads verwijderd', ); - @override String get removedFromContinueWatching => 'Verwijderd uit Doorgaan met kijken'; + @override String get removedFromContinueWatching => 'Verwijderd uit \'Doorgaan met kijken\''; @override String errorLoading({required Object error}) => 'Fout: ${error}'; @override String get streamInterrupted => 'De stream is onderbroken. Druk op afspelen of spoel om het opnieuw te proberen.'; @override String get liveStreamInterrupted => 'De livestream is onderbroken. Druk op afspelen om het opnieuw te proberen.'; - @override String get fileInfoNotAvailable => 'Bestand informatie niet beschikbaar'; - @override String get playbackAuthenticationRequired => 'Sign in to the media server again to play this item.'; - @override String get playbackServerUnavailable => 'The media server is unavailable. Try again later.'; - @override String get playbackDataInvalid => 'The server returned invalid playback information.'; - @override String get playbackCancelled => 'Playback was cancelled.'; - @override String get playbackFailed => 'Playback could not be started.'; - @override String errorLoadingFileInfo({required Object error}) => 'Fout bij laden bestand info: ${error}'; - @override String get errorLoadingSeries => 'Fout bij laden serie'; + @override String get fileInfoNotAvailable => 'Bestandsinformatie niet beschikbaar'; + @override String get playbackAuthenticationRequired => 'Meld je opnieuw aan bij de mediaserver om dit item af te spelen.'; + @override String get playbackServerUnavailable => 'De mediaserver is niet beschikbaar. Probeer het later opnieuw.'; + @override String get playbackDataInvalid => 'De server heeft ongeldige afspeelinformatie geretourneerd.'; + @override String get playbackCancelled => 'Het afspelen is geannuleerd.'; + @override String get playbackFailed => 'Het afspelen kon niet worden gestart.'; + @override String errorLoadingFileInfo({required Object error}) => 'Fout bij laden van bestandsinformatie: ${error}'; + @override String get errorLoadingSeries => 'Fout bij laden van serie'; @override String get musicNotSupported => 'Muziek afspelen wordt nog niet ondersteund'; @override String get noDescriptionAvailable => 'Geen beschrijving beschikbaar'; @override String get noProfilesAvailable => 'Geen profielen beschikbaar'; @override String get contactAdminForProfiles => 'Neem contact op met je serverbeheerder om profielen toe te voegen'; @override String get unableToDetermineLibrarySection => 'Kan bibliotheeksectie voor dit item niet bepalen'; - @override String get logsCleared => 'Logs gewist'; - @override String get logsCopied => 'Logs gekopieerd naar klembord'; - @override String get noLogsAvailable => 'Geen logs beschikbaar'; - @override String libraryScanning({required Object title}) => 'Scannen "${title}"...'; - @override String libraryScanStarted({required Object title}) => 'Bibliotheek scan gestart voor "${title}"'; - @override String libraryScanFailed({required Object error}) => 'Kon bibliotheek niet scannen: ${error}'; - @override String metadataRefreshing({required Object title}) => 'Metadata vernieuwen voor "${title}"...'; - @override String metadataRefreshStarted({required Object title}) => 'Metadata vernieuwen gestart voor "${title}"'; - @override String metadataRefreshFailed({required Object error}) => 'Kon metadata niet vernieuwen: ${error}'; + @override String get logsCleared => 'Logbestanden gewist'; + @override String get logsCopied => 'Logbestanden naar het klembord gekopieerd'; + @override String get noLogsAvailable => 'Geen logbestanden beschikbaar'; + @override String libraryScanning({required Object title}) => '"${title}" scannen...'; + @override String libraryScanStarted({required Object title}) => 'Bibliotheekscan gestart voor "${title}"'; + @override String libraryScanFailed({required Object error}) => 'Bibliotheek scannen mislukt: ${error}'; + @override String metadataRefreshing({required Object title}) => 'Metadata voor "${title}" vernieuwen...'; + @override String metadataRefreshStarted({required Object title}) => 'Vernieuwen van metadata gestart voor "${title}"'; + @override String metadataRefreshFailed({required Object error}) => 'Metadata vernieuwen mislukt: ${error}'; @override String get logoutConfirm => 'Weet je zeker dat je wilt uitloggen?'; @override String get noSeasonsFound => 'Geen seizoenen gevonden'; @override String get seasonsLoadFailed => 'Kan seizoenen niet laden'; @@ -752,16 +756,16 @@ class _Translations$messages$nl extends Translations$messages$en { @override String get noEpisodesFoundGeneral => 'Geen afleveringen gevonden'; @override String get episodesLoadFailed => 'Kan afleveringen niet laden'; @override String get noResultsFound => 'Geen resultaten gevonden'; - @override String sleepTimerSet({required Object label}) => 'Slaap timer ingesteld voor ${label}'; + @override String sleepTimerSet({required Object label}) => 'Slaaptimer ingesteld op ${label}'; @override String get noItemsAvailable => 'Geen items beschikbaar'; - @override String get failedToCreatePlayQueueNoItems => 'Kan afspeelwachtrij niet maken - geen items'; + @override String get failedToCreatePlayQueueNoItems => 'Afspeelwachtrij maken mislukt — geen items'; @override String failedPlayback({required Object action, required Object error}) => 'Afspelen van ${action} mislukt: ${error}'; @override String get switchingToCompatiblePlayer => 'Overschakelen naar compatibele speler...'; @override String get serverLimitTitle => 'Afspelen mislukt'; @override String get serverLimitBody => 'Serverfout (HTTP 500). Waarschijnlijk weigerde een bandbreedte-/transcodeerlimiet deze sessie. Vraag de eigenaar dit aan te passen.'; - @override String get logsUploaded => 'Logs geüpload'; - @override String get logsUploadFailed => 'Uploaden van logs mislukt'; - @override String get logId => 'Log-ID'; + @override String get logsUploaded => 'Logbestanden geüpload'; + @override String get logsUploadFailed => 'Uploaden van logbestanden mislukt'; + @override String get logId => 'Logboek-ID'; } // Path: subtitlingStyling @@ -776,9 +780,9 @@ class _Translations$subtitlingStyling$nl extends Translations$subtitlingStyling$ @override String get background => 'Achtergrond'; @override String get fontSize => 'Lettergrootte'; @override String get textColor => 'Tekstkleur'; - @override String get borderSize => 'Rand grootte'; + @override String get borderSize => 'Randdikte'; @override String get borderColor => 'Randkleur'; - @override String get backgroundOpacity => 'Achtergrond transparantie'; + @override String get backgroundOpacity => 'Achtergronddekking'; @override String get backgroundColor => 'Achtergrondkleur'; @override String get position => 'Positie'; @override String get assOverride => 'ASS-overschrijving'; @@ -801,8 +805,8 @@ class _Translations$mpvConfig$nl extends Translations$mpvConfig$en { final TranslationsNl _root; // ignore: unused_field // Translations - @override String get title => 'mpv-configuratie'; - @override String get description => 'Geavanceerde videospeler-instellingen'; + @override String get title => 'mpv.conf'; + @override String get description => 'Geavanceerde videospelerinstellingen'; @override String get presets => 'Voorinstellingen'; @override String get noPresets => 'Geen opgeslagen voorinstellingen'; @override String get saveAsPreset => 'Opslaan als voorinstelling...'; @@ -851,17 +855,17 @@ class _Translations$profiles$nl extends Translations$profiles$en { @override String summaryMultipleWithActive({required Object count, required Object activeName}) => '${count} profielen · actief: ${activeName}'; @override String summaryMultiple({required Object count}) => '${count} profielen'; @override String get removeConnectionTitle => 'Verbinding verwijderen?'; - @override String removeConnectionMessage({required Object displayName, required Object connectionLabel}) => 'Verwijder ${displayName}s toegang tot ${connectionLabel}. Andere profielen behouden die.'; + @override String removeConnectionMessage({required Object displayName, required Object connectionLabel}) => 'Verwijder de toegang van ${displayName} tot ${connectionLabel}. Andere profielen behouden deze toegang.'; @override String get deleteProfileTitle => 'Profiel verwijderen?'; @override String deleteProfileMessage({required Object displayName}) => 'Verwijder ${displayName} en de verbindingen. Servers blijven beschikbaar.'; @override String get profileNameLabel => 'Profielnaam'; - @override String get pinProtectionLabel => 'PIN-beveiliging'; - @override String get pinManagedByPlex => 'PIN wordt beheerd door Plex. Bewerk op plex.tv.'; - @override String get noPinSetEditOnPlex => 'Geen PIN ingesteld. Bewerk de Home-gebruiker op plex.tv om er één te vereisen.'; - @override String get setPin => 'PIN instellen'; - @override String get setPinTitle => 'PIN instellen'; - @override String get confirmPinTitle => 'PIN bevestigen'; - @override String get pinSet => 'PIN ingesteld'; + @override String get pinProtectionLabel => 'Pincodebeveiliging'; + @override String get pinManagedByPlex => 'De pincode wordt beheerd door Plex. Pas deze aan op plex.tv.'; + @override String get noPinSetEditOnPlex => 'Geen pincode ingesteld. Bewerk de Plex Home-gebruiker op plex.tv om er een te vereisen.'; + @override String get setPin => 'Pincode instellen'; + @override String get setPinTitle => 'Pincode instellen'; + @override String get confirmPinTitle => 'Pincode bevestigen'; + @override String get pinSet => 'Pincode ingesteld'; @override String get changePin => 'Wijzigen'; @override String get removePin => 'Verwijderen'; @override String get connectionsLabel => 'Verbindingen'; @@ -876,24 +880,24 @@ class _Translations$profiles$nl extends Translations$profiles$en { @override String get removeConnection => 'Verwijderen'; @override String get profileRenamed => 'Profiel hernoemd.'; @override String borrowAddTo({required Object displayName}) => 'Toevoegen aan ${displayName}'; - @override String get borrowExplain => 'Leen de verbinding van een ander profiel. PIN-beveiligde profielen vereisen een PIN.'; + @override String get borrowExplain => 'Leen de verbinding van een ander profiel. Voor profielen met pincodebeveiliging is een pincode vereist.'; @override String get borrowEmpty => 'Nog niets te lenen.'; @override String get borrowEmptySubtitle => 'Verbind Plex of Jellyfin eerst met een ander profiel.'; - @override String get borrowLoadFailed => 'Available connections could not be loaded. Try again.'; + @override String get borrowLoadFailed => 'Beschikbare verbindingen konden niet worden geladen. Probeer het opnieuw.'; @override String borrowFromProfile({required Object displayName}) => 'Van ${displayName}'; @override String get borrowConnectionBorrowed => 'Verbinding geleend.'; @override String get borrowFailed => 'Kan verbinding niet lenen.'; - @override String get incorrectPin => 'Onjuiste PIN.'; - @override String get incorrectPinTryAgain => 'Onjuiste PIN. Probeer het opnieuw.'; - @override String get sourceProfileMissingParentAccount => 'Het bronprofiel mist het bovenliggende account.'; - @override String get failedToLoadHomeUsers => 'Kan je Plex Home-gebruikers niet laden. Controleer je verbinding en probeer het opnieuw.'; - @override String get failedToVerifyPin => 'Kan PIN niet verifiëren.'; + @override String get incorrectPin => 'Onjuiste pincode.'; + @override String get incorrectPinTryAgain => 'Onjuiste pincode. Probeer het opnieuw.'; + @override String get sourceProfileMissingParentAccount => 'Het bovenliggende account van het bronprofiel ontbreekt.'; + @override String get failedToLoadHomeUsers => 'Je Plex Home-gebruikers konden niet worden geladen. Controleer je verbinding en probeer het opnieuw.'; + @override String get failedToVerifyPin => 'De pincode kon niet worden geverifieerd.'; @override String get newProfile => 'Nieuw profiel'; @override String get profileNameHint => 'bijv. Gasten, Kinderen, Woonkamer'; - @override String get pinProtectionOptional => 'PIN-beveiliging (optioneel)'; - @override String get pinExplain => '4-cijferige PIN vereist om profielen te wisselen.'; + @override String get pinProtectionOptional => 'Pincodebeveiliging (optioneel)'; + @override String get pinExplain => 'Een viercijferige pincode is vereist om van profiel te wisselen.'; @override String get continueButton => 'Doorgaan'; - @override String get pinsDontMatch => 'PIN-codes komen niet overeen'; + @override String get pinsDontMatch => 'De pincodes komen niet overeen'; } // Path: connections @@ -936,12 +940,12 @@ class _Translations$discover$nl extends Translations$discover$en { @override String playEpisode({required Object season, required Object episode}) => 'S${season}E${episode}'; @override String get overview => 'Overzicht'; @override String get cast => 'Acteurs'; - @override String get extras => 'Trailers & Extra\'s'; + @override String get extras => 'Trailers en extra\'s'; @override String get studio => 'Studio'; - @override String get rating => 'Leeftijd'; + @override String get rating => 'Beoordeling'; @override String get movie => 'Film'; - @override String get tvShow => 'TV Serie'; - @override String minutesLeft({required Object minutes}) => '${minutes} min over'; + @override String get tvShow => 'Tv-serie'; + @override String minutesLeft({required Object minutes}) => 'nog ${minutes} min'; @override String get moreLikeThis => 'Meer zoals dit'; } @@ -953,7 +957,7 @@ class _Translations$errors$nl extends Translations$errors$en { // Translations @override String searchFailed({required Object error}) => 'Zoeken mislukt: ${error}'; - @override String connectionTimeout({required Object context}) => 'Verbinding time-out tijdens laden ${context}'; + @override String connectionTimeout({required Object context}) => 'Time-out van verbinding tijdens het laden van ${context}'; @override String get connectionFailed => 'Kan geen verbinding maken met mediaserver'; @override String unableToLoad({required Object context}) => 'Kan ${context} niet laden. Probeer het opnieuw.'; @override String get noClientAvailable => 'Geen client beschikbaar'; @@ -974,11 +978,11 @@ class _Translations$libraries$nl extends Translations$libraries$en { // Translations @override String get title => 'Bibliotheken'; @override String get fallbackTitle => 'Bibliotheek'; - @override String get scanLibraryFiles => 'Scan bibliotheek bestanden'; - @override String get scanLibrary => 'Scan bibliotheek'; + @override String get scanLibraryFiles => 'Bibliotheekbestanden scannen'; + @override String get scanLibrary => 'Bibliotheek scannen'; @override String get analyze => 'Analyseren'; - @override String get analyzeLibrary => 'Analyseer bibliotheek'; - @override String get refreshMetadata => 'Vernieuw metadata'; + @override String get analyzeLibrary => 'Bibliotheek analyseren'; + @override String get refreshMetadata => 'Metadata vernieuwen'; @override String get emptyTrash => 'Prullenbak legen'; @override String emptyingTrash({required Object title}) => 'Prullenbak legen voor "${title}"...'; @override String trashEmptied({required Object title}) => 'Prullenbak geleegd voor "${title}"'; @@ -998,14 +1002,14 @@ class _Translations$libraries$nl extends Translations$libraries$en { @override String analyzeLibraryConfirm({required Object title}) => 'Weet je zeker dat je "${title}" wilt analyseren?'; @override String refreshMetadataConfirm({required Object title}) => 'Weet je zeker dat je metadata wilt vernieuwen voor "${title}"?'; @override String emptyTrashConfirm({required Object title}) => 'Weet je zeker dat je de prullenbak wilt legen voor "${title}"?'; - @override String get manageLibraries => 'Beheer bibliotheken'; + @override String get manageLibraries => 'Bibliotheken beheren'; @override String get sort => 'Sorteren'; @override String get sortBy => 'Sorteer op'; @override String get filters => 'Filters'; @override String get confirmActionMessage => 'Weet je zeker dat je deze actie wilt uitvoeren?'; - @override String get showLibrary => 'Toon bibliotheek'; - @override String get hideLibrary => 'Verberg bibliotheek'; - @override String get libraryOptions => 'Bibliotheek opties'; + @override String get showLibrary => 'Bibliotheek tonen'; + @override String get hideLibrary => 'Bibliotheek verbergen'; + @override String get libraryOptions => 'Bibliotheekopties'; @override String get content => 'bibliotheekinhoud'; @override String get selectLibrary => 'Bibliotheek kiezen'; @override String filtersWithCount({required Object count}) => 'Filters (${count})'; @@ -1027,10 +1031,10 @@ class _Translations$about$nl extends Translations$about$en { // Translations @override String get title => 'Over'; - @override String get openSourceLicenses => 'Open Source licenties'; + @override String get openSourceLicenses => 'Opensourcelicenties'; @override String versionLabel({required Object version}) => 'Versie ${version}'; @override String get appDescription => 'Een mooie Plex- en Jellyfin-client voor Flutter'; - @override String get viewLicensesDescription => 'Bekijk licenties van third-party bibliotheken'; + @override String get viewLicensesDescription => 'Licenties van bibliotheken van derden bekijken'; } // Path: serverSelection @@ -1065,9 +1069,9 @@ class _Translations$logs$nl extends Translations$logs$en { final TranslationsNl _root; // ignore: unused_field // Translations - @override String get clearLogs => 'Wis logs'; - @override String get copyLogs => 'Kopieer logs'; - @override String get uploadLogs => 'Logs uploaden'; + @override String get clearLogs => 'Logbestanden wissen'; + @override String get copyLogs => 'Logbestanden kopiëren'; + @override String get uploadLogs => 'Logbestanden uploaden'; } // Path: licenses @@ -1092,7 +1096,7 @@ class _Translations$navigation$nl extends Translations$navigation$en { // Translations @override String get libraries => 'Media'; @override String get downloads => 'Downloads'; - @override String get liveTv => 'Live TV'; + @override String get liveTv => 'Live-tv'; @override String get explore => 'Verkennen'; } @@ -1134,7 +1138,7 @@ class _Translations$liveTv$nl extends Translations$liveTv$en { final TranslationsNl _root; // ignore: unused_field // Translations - @override String get title => 'Live TV'; + @override String get title => 'Live-tv'; @override String get guide => 'Gids'; @override String get noChannels => 'Geen zenders beschikbaar'; @override String get noDvr => 'Geen DVR geconfigureerd op een server'; @@ -1158,16 +1162,16 @@ class _Translations$liveTv$nl extends Translations$liveTv$en { @override String get daytime => 'Overdag'; @override String get evening => 'Avond'; @override String get lateNight => 'Late avond'; - @override String get whatsOn => 'Nu op TV'; + @override String get whatsOn => 'Nu op tv'; @override String get watchChannel => 'Kanaal bekijken'; @override String get favorites => 'Favorieten'; @override String get reorderFavorites => 'Favorieten herordenen'; @override String get favoritesLoadFailed => 'Favorieten konden niet worden geladen. Controleer je verbinding en probeer het opnieuw.'; - @override String get favoritesUpdateFailed => 'Could not update favorites. Check your connection and try again.'; + @override String get favoritesUpdateFailed => 'Favorieten konden niet worden bijgewerkt. Controleer je verbinding en probeer het opnieuw.'; @override String get joinSession => 'Deelnemen aan lopende sessie'; - @override String watchFromStart({required Object minutes}) => 'Kijk vanaf het begin (${minutes} min geleden)'; + @override String watchFromStart({required Object minutes}) => 'Vanaf het begin kijken (${minutes} min geleden)'; @override String get watchLive => 'Live kijken'; - @override String get goToLive => 'Ga naar live'; + @override String get goToLive => 'Naar live-uitzending'; @override String get record => 'Opnemen'; @override String get recordEpisode => 'Aflevering opnemen'; @override String get recordSeries => 'Serie opnemen'; @@ -1198,8 +1202,8 @@ class _Translations$liveTv$nl extends Translations$liveTv$en { @override String get editRule => 'Regel bewerken'; @override String get editRuleAction => 'Bewerken'; @override String get recordingRuleUpdated => 'Opnameregel bijgewerkt'; - @override String get guideReloadRequested => 'Gids-vernieuwing aangevraagd'; - @override String get rulesProcessRequested => 'Regel-herevaluatie aangevraagd'; + @override String get guideReloadRequested => 'Vernieuwing van de gids aangevraagd'; + @override String get rulesProcessRequested => 'Nieuwe evaluatie van regels aangevraagd'; @override String get recordShow => 'Programma opnemen'; } @@ -1218,9 +1222,9 @@ class _Translations$collections$nl extends Translations$collections$en { @override String get deleted => 'Collectie verwijderd'; @override String get deleteFailed => 'Collectie verwijderen mislukt'; @override String deleteFailedWithError({required Object error}) => 'Collectie verwijderen mislukt: ${error}'; - @override String get selectCollection => 'Selecteer collectie'; + @override String get selectCollection => 'Collectie selecteren'; @override String get collectionName => 'Collectienaam'; - @override String get enterCollectionName => 'Voer collectienaam in'; + @override String get enterCollectionName => 'Voer een collectienaam in'; @override String get addedToCollection => 'Toegevoegd aan collectie'; @override String get errorAddingToCollection => 'Fout bij toevoegen aan collectie'; @override String get created => 'Collectie gemaakt'; @@ -1243,8 +1247,8 @@ class _Translations$playlists$nl extends Translations$playlists$en { @override String get playlist => 'Afspeellijst'; @override String get noPlaylists => 'Geen afspeellijsten gevonden'; @override String get create => 'Afspeellijst maken'; - @override String get playlistName => 'Naam afspeellijst'; - @override String get enterPlaylistName => 'Voer naam afspeellijst in'; + @override String get playlistName => 'Naam van de afspeellijst'; + @override String get enterPlaylistName => 'Voer een naam voor de afspeellijst in'; @override String get delete => 'Afspeellijst verwijderen'; @override String get removeItem => 'Verwijderen uit afspeellijst'; @override String get smartPlaylist => 'Slimme afspeellijst'; @@ -1257,14 +1261,14 @@ class _Translations$playlists$nl extends Translations$playlists$en { @override String get deleted => 'Afspeellijst verwijderd'; @override String get itemAdded => 'Toegevoegd aan afspeellijst'; @override String get itemRemoved => 'Verwijderd uit afspeellijst'; - @override String get selectPlaylist => 'Selecteer afspeellijst'; + @override String get selectPlaylist => 'Afspeellijst selecteren'; @override String get searchPlaylists => 'Afspeellijsten zoeken...'; - @override String get errorCreating => 'Fout bij maken afspeellijst'; - @override String get errorDeleting => 'Fout bij verwijderen afspeellijst'; - @override String get errorLoading => 'Fout bij laden afspeellijsten'; - @override String get errorAdding => 'Fout bij toevoegen aan afspeellijst'; - @override String get errorReordering => 'Fout bij herschikken van afspeellijstitem'; - @override String get errorRemoving => 'Fout bij verwijderen uit afspeellijst'; + @override String get errorCreating => 'Afspeellijst maken mislukt'; + @override String get errorDeleting => 'Afspeellijst verwijderen mislukt'; + @override String get errorLoading => 'Afspeellijsten laden mislukt'; + @override String get errorAdding => 'Toevoegen aan afspeellijst mislukt'; + @override String get errorReordering => 'Afspeellijstitem herschikken mislukt'; + @override String get errorRemoving => 'Verwijderen uit afspeellijst mislukt'; } // Path: music @@ -1276,7 +1280,7 @@ class _Translations$music$nl extends Translations$music$en { // Translations @override String get goToAlbum => 'Ga naar album'; @override String get goToArtist => 'Ga naar artiest'; - @override String get instantMix => 'Instant Mix'; + @override String get instantMix => 'Instantmix'; @override String get playNext => 'Hierna afspelen'; @override String get addToQueue => 'Toevoegen aan wachtrij'; @override String discNumber({required Object n}) => 'Schijf ${n}'; @@ -1308,20 +1312,20 @@ class _Translations$watchTogether$nl extends Translations$watchTogether$en { final TranslationsNl _root; // ignore: unused_field // Translations - @override String get title => 'Samen Kijken'; + @override String get title => 'Samen kijken'; @override String get description => 'Kijk synchroon met vrienden en familie'; - @override String get createSession => 'Sessie Maken'; - @override String get creating => 'Maken...'; - @override String get joinSession => 'Sessie Deelnemen'; + @override String get createSession => 'Sessie maken'; + @override String get creating => 'Sessie maken...'; + @override String get joinSession => 'Deelnemen aan sessie'; @override String get joining => 'Deelnemen...'; - @override String get controlMode => 'Controlemodus'; + @override String get controlMode => 'Bedieningsmodus'; @override String get controlModeQuestion => 'Wie kan het afspelen bedienen?'; - @override String get hostOnly => 'Alleen Host'; + @override String get hostOnly => 'Alleen host'; @override String get anyone => 'Iedereen'; - @override String get hostingSession => 'Sessie Hosten'; - @override String get inSession => 'In Sessie'; + @override String get hostingSession => 'Sessie hosten'; + @override String get inSession => 'In sessie'; @override String get sessionCode => 'Sessiecode'; - @override String get openSessionControls => 'Sessiebesturing voor Samen Kijken openen'; + @override String get openSessionControls => 'Bediening voor Samen kijken openen'; @override String get copySessionCode => 'Sessiecode kopiëren'; @override String get hostControlsPlayback => 'Host bedient het afspelen'; @override String get anyoneCanControl => 'Iedereen kan het afspelen bedienen'; @@ -1332,10 +1336,10 @@ class _Translations$watchTogether$nl extends Translations$watchTogether$en { @override String get hostBadge => 'HOST'; @override String get youAreHost => 'Jij bent de host'; @override String get watchingWithOthers => 'Kijken met anderen'; - @override String get endSession => 'Sessie Beëindigen'; - @override String get leaveSession => 'Sessie Verlaten'; - @override String get endSessionQuestion => 'Sessie Beëindigen?'; - @override String get leaveSessionQuestion => 'Sessie Verlaten?'; + @override String get endSession => 'Sessie beëindigen'; + @override String get leaveSession => 'Sessie verlaten'; + @override String get endSessionQuestion => 'Sessie beëindigen?'; + @override String get leaveSessionQuestion => 'Sessie verlaten?'; @override String get endSessionConfirm => 'Dit beëindigt de sessie voor alle deelnemers.'; @override String get leaveSessionConfirm => 'Je wordt uit de sessie verwijderd.'; @override String get endSessionConfirmOverlay => 'Dit beëindigt de kijksessie voor alle deelnemers.'; @@ -1343,30 +1347,30 @@ class _Translations$watchTogether$nl extends Translations$watchTogether$en { @override String get end => 'Beëindigen'; @override String get leave => 'Verlaten'; @override String get syncing => 'Synchroniseren...'; - @override String get joinWatchSession => 'Kijksessie Deelnemen'; - @override String get enterCodeHint => 'Voer 5-teken code in'; - @override String get pasteFromClipboard => 'Plakken van klembord'; + @override String get joinWatchSession => 'Deelnemen aan kijksessie'; + @override String get enterCodeHint => 'Voer de code van 5 tekens in'; + @override String get pasteFromClipboard => 'Plakken vanaf klembord'; @override String get pleaseEnterCode => 'Voer een sessiecode in'; - @override String get codeMustBe5Chars => 'Sessiecode moet 5 tekens zijn'; + @override String get codeMustBe5Chars => 'De sessiecode moet 5 tekens lang zijn'; @override String get joinInstructions => 'Voer de sessiecode van de host in om deel te nemen.'; @override String get failedToCreate => 'Sessie maken mislukt'; - @override String get failedToJoin => 'Sessie deelnemen mislukt'; - @override String get sessionCodeCopied => 'Sessiecode gekopieerd naar klembord'; - @override String get relayUnreachable => 'Relay-server onbereikbaar. ISP-blokkering kan Watch Together verhinderen.'; + @override String get failedToJoin => 'Deelnemen aan sessie mislukt'; + @override String get sessionCodeCopied => 'Sessiecode naar het klembord gekopieerd'; + @override String get relayUnreachable => 'De relayserver is onbereikbaar. Een blokkering door je internetprovider kan Samen kijken verhinderen.'; @override String get reconnectingToHost => 'Opnieuw verbinden met host...'; - @override String get currentPlayback => 'Huidige weergave'; + @override String get currentPlayback => 'Wat nu wordt afgespeeld'; @override String get joinCurrentPlayback => 'Deelnemen aan huidige weergave'; @override String get joinCurrentPlaybackDescription => 'Ga terug naar wat de host nu kijkt'; - @override String get failedToOpenCurrentPlayback => 'Huidige weergave kon niet worden geopend'; + @override String get failedToOpenCurrentPlayback => 'Wat nu wordt afgespeeld kon niet worden geopend'; @override String participantJoined({required Object name}) => '${name} is toegetreden'; @override String participantLeft({required Object name}) => '${name} heeft de sessie verlaten'; @override String participantPaused({required Object name}) => '${name} heeft gepauzeerd'; @override String participantResumed({required Object name}) => '${name} heeft hervat'; - @override String participantSeeked({required Object name}) => '${name} heeft gespoeld'; + @override String participantSeeked({required Object name}) => '${name} heeft de afspeelpositie gewijzigd'; @override String participantBuffering({required Object name}) => '${name} is aan het bufferen'; @override String participantNeedsUpdate({required Object name}) => '${name} gebruikt een oudere appversie — synchronisatie niet beschikbaar'; @override String resumingWithout({required Object name}) => 'Hervatten zonder ${name}'; - @override String get waitingForParticipants => 'Wachten tot anderen geladen zijn...'; + @override String get waitingForParticipants => 'Wachten tot anderen klaar zijn met laden...'; @override String waitingForName({required Object name}) => 'Wachten op ${name}...'; @override String get recentRooms => 'Recente kamers'; @override String get renameRoom => 'Kamer hernoemen'; @@ -1389,8 +1393,8 @@ class _Translations$downloads$nl extends Translations$downloads$en { @override String get music => 'Muziek'; @override String tracksQueued({required Object count}) => '${count} nummers in wachtrij voor download'; @override String get noDownloads => 'Nog geen downloads'; - @override String get noDownloadsDescription => 'Gedownloade content verschijnt hier voor offline weergave'; - @override String get downloadNow => 'Download'; + @override String get noDownloadsDescription => 'Gedownloade inhoud verschijnt hier om offline te bekijken'; + @override String get downloadNow => 'Downloaden'; @override String get deleteDownload => 'Download verwijderen'; @override String get retryDownload => 'Download opnieuw proberen'; @override String get downloadQueued => 'Download in wachtrij'; @@ -1419,15 +1423,15 @@ class _Translations$downloads$nl extends Translations$downloads$en { @override String get deleteAll => 'Alles verwijderen'; @override String get selectVersion => 'Versie selecteren'; @override String get allEpisodes => 'Alle afleveringen'; - @override String get unwatchedOnly => 'Alleen onbekeken'; - @override String nextNUnwatched({required Object count}) => 'Volgende ${count} onbekeken'; + @override String get unwatchedOnly => 'Alleen ongekeken afleveringen'; + @override String nextNUnwatched({required Object count}) => 'Volgende ${count} ongekeken afleveringen'; @override String get customAmount => 'Aangepast aantal...'; - @override String get includeSpecials => 'Specials opnemen'; + @override String get includeSpecials => 'Specials meenemen'; @override String get howManyEpisodes => 'Hoeveel afleveringen?'; @override String get invalidEpisodeCount => 'Voer een geldig aantal afleveringen in.'; @override String get keepSynced => 'Gesynchroniseerd houden'; @override String get downloadOnce => 'Eenmalig downloaden'; - @override String keepNUnwatched({required Object count}) => '${count} onbekeken behouden'; + @override String keepNUnwatched({required Object count}) => '${count} ongekeken afleveringen behouden'; @override String get editSyncRule => 'Synchronisatieregel bewerken'; @override String get removeSyncRule => 'Synchronisatieregel verwijderen'; @override String removeSyncRuleConfirm({required Object title}) => 'Synchronisatie van "${title}" stoppen? Gedownloade afleveringen worden behouden.'; @@ -1503,14 +1507,14 @@ class _Translations$videoSettings$nl extends Translations$videoSettings$en { @override String sleepTimerActive({required Object duration}) => 'Actief (${duration})'; @override String get zoom => 'Zoom'; @override String get sleepTimer => 'Slaaptimer'; - @override String get audioSync => 'Audio synchronisatie'; - @override String get subtitleSync => 'Ondertitel synchronisatie'; + @override String get audioSync => 'Audiosynchronisatie'; + @override String get subtitleSync => 'Ondertitelsynchronisatie'; @override String get hdr => 'HDR'; @override String get audioOutput => 'Audio-uitvoer'; @override String get performanceOverlay => 'Prestatie-overlay'; @override String get audioPassthrough => 'Audio-doorvoer'; @override String get audioNormalization => 'Volume normaliseren'; - @override String get audioDownmix => 'Downmix naar stereo'; + @override String get audioDownmix => 'Downmixen naar stereo'; } // Path: performanceOverlay @@ -1525,7 +1529,7 @@ class _Translations$performanceOverlay$nl extends Translations$performanceOverla @override String get buffer => 'Buffer'; @override String get app => 'App'; @override String get decoder => 'Decoder'; - @override String get rawDecoder => 'Raw decoder'; + @override String get rawDecoder => 'Raw-decoder'; @override String get tunneling => 'Tunneling'; @override String get aspect => 'Verhouding'; @override String get rotation => 'Rotatie'; @@ -1537,7 +1541,7 @@ class _Translations$performanceOverlay$nl extends Translations$performanceOverla @override String get hwFormat => 'HW-formaat'; @override String get matrix => 'Matrix'; @override String get primaries => 'Primaire kleuren'; - @override String get transfer => 'Transfer'; + @override String get transfer => 'Overdracht'; @override String get renderFps => 'Render-FPS'; @override String get displayFps => 'Scherm-FPS'; @override String get avSync => 'A/V-sync'; @@ -1592,7 +1596,7 @@ class _Translations$metadataEdit$nl extends Translations$metadataEdit$en { @override String get editMetadata => 'Bewerken...'; @override String get screenTitle => 'Metadata bewerken'; @override String get basicInfo => 'Basisinformatie'; - @override String get artwork => 'Artwork'; + @override String get artwork => 'Illustraties'; @override String get advancedSettings => 'Geavanceerde instellingen'; @override String get title => 'Titel'; @override String get sortTitle => 'Sorteertitel'; @@ -1600,7 +1604,7 @@ class _Translations$metadataEdit$nl extends Translations$metadataEdit$en { @override String get releaseDate => 'Releasedatum'; @override String get contentRating => 'Leeftijdsclassificatie'; @override String get studio => 'Studio'; - @override String get tagline => 'Tagline'; + @override String get tagline => 'Slogan'; @override String get summary => 'Samenvatting'; @override String get poster => 'Poster'; @override String get background => 'Achtergrond'; @@ -1612,19 +1616,19 @@ class _Translations$metadataEdit$nl extends Translations$metadataEdit$en { @override String get selectSquareArt => 'Vierkante afbeelding selecteren'; @override String get fromUrl => 'Vanaf URL'; @override String get uploadFile => 'Bestand uploaden'; - @override String get enterImageUrl => 'Voer afbeeldings-URL in'; + @override String get enterImageUrl => 'Voer de afbeeldings-URL in'; @override String get imageUrl => 'Afbeeldings-URL'; @override String get metadataUpdated => 'Metadata bijgewerkt'; @override String get metadataUpdateFailed => 'Metadata bijwerken mislukt'; - @override String get artworkUpdated => 'Artwork bijgewerkt'; - @override String get artworkUpdateFailed => 'Artwork bijwerken mislukt'; - @override String get noArtworkAvailable => 'Geen artwork beschikbaar'; - @override String artworkOption({required Object index}) => 'Artworkoptie ${index}'; - @override String selectedArtworkOption({required Object index}) => 'Artworkoptie ${index}, geselecteerd'; + @override String get artworkUpdated => 'Illustraties bijgewerkt'; + @override String get artworkUpdateFailed => 'Illustraties bijwerken mislukt'; + @override String get noArtworkAvailable => 'Geen illustraties beschikbaar'; + @override String artworkOption({required Object index}) => 'Illustratie ${index}'; + @override String selectedArtworkOption({required Object index}) => 'Illustratie ${index}, geselecteerd'; @override String get notSet => 'Niet ingesteld'; - @override String get libraryDefault => 'Bibliotheekstandaard'; - @override String get accountDefault => 'Accountstandaard'; - @override String get seriesDefault => 'Seriestandaard'; + @override String get libraryDefault => 'Standaard van de bibliotheek'; + @override String get accountDefault => 'Standaard van het account'; + @override String get seriesDefault => 'Standaard van de serie'; @override String get episodeSorting => 'Afleveringen sorteren'; @override String get oldestFirst => 'Oudste eerst'; @override String get newestFirst => 'Nieuwste eerst'; @@ -1648,8 +1652,8 @@ class _Translations$metadataEdit$nl extends Translations$metadataEdit$en { @override String get tvdbAbsolute => 'TheTVDB (Absoluut)'; @override String get metadataLanguage => 'Metadatataal'; @override String get useOriginalTitle => 'Oorspronkelijke titel gebruiken'; - @override String get preferredAudioLanguage => 'Voorkeurstaal audio'; - @override String get preferredSubtitleLanguage => 'Voorkeurstaal ondertiteling'; + @override String get preferredAudioLanguage => 'Voorkeurstaal voor audio'; + @override String get preferredSubtitleLanguage => 'Voorkeurstaal voor ondertitels'; @override String get subtitleMode => 'Automatische ondertitelselectie'; @override String get manuallySelected => 'Handmatig geselecteerd'; @override String get shownWithForeignAudio => 'Weergeven bij anderstalig geluid'; @@ -1677,7 +1681,7 @@ class _Translations$matchScreen$nl extends Translations$matchScreen$en { @override String get match => 'Koppelen...'; @override String get fixMatch => 'Koppeling herstellen...'; @override String get unmatch => 'Ontkoppelen'; - @override String get unmatchConfirm => 'Deze match wissen? Plex behandelt dit als niet-gematcht tot het opnieuw gematcht is.'; + @override String get unmatchConfirm => 'Deze koppeling wissen? Plex behandelt het item als niet-gekoppeld totdat het opnieuw wordt gekoppeld.'; @override String get unmatchSuccess => 'Item ontkoppeld'; @override String get unmatchFailed => 'Kon item niet ontkoppelen'; @override String get matchApplied => 'Koppeling toegepast'; @@ -1711,11 +1715,11 @@ class _Translations$trakt$nl extends Translations$trakt$en { @override String get connected => 'Verbonden'; @override String connectedAs({required Object username}) => 'Verbonden als @${username}'; @override String get disconnectConfirm => 'Trakt-account loskoppelen?'; - @override String get disconnectConfirmBody => 'Plezy stopt met gebeurtenissen naar Trakt sturen. Je kunt altijd opnieuw verbinden.'; - @override String get scrobble => 'Realtime scrobbling'; - @override String get scrobbleDescription => 'Verstuur play-, pauze- en stopgebeurtenissen tijdens afspelen naar Trakt.'; - @override String get watchedSync => 'Bekeken-status synchroniseren'; - @override String get watchedSyncDescription => 'Wanneer je items als bekeken markeert in Plezy, worden ze ook op Trakt gemarkeerd.'; + @override String get disconnectConfirmBody => 'Plezy stuurt geen gebeurtenissen meer naar Trakt. Je kunt op elk moment opnieuw verbinding maken.'; + @override String get scrobble => 'Realtime scrobblen'; + @override String get scrobbleDescription => 'Stuur tijdens het afspelen gebeurtenissen voor afspelen, pauzeren en stoppen naar Trakt.'; + @override String get watchedSync => 'Kijkstatus synchroniseren'; + @override String get watchedSyncDescription => 'Wanneer je items in Plezy als bekeken markeert, worden ze op Trakt ook als bekeken gemarkeerd.'; } // Path: seerr @@ -1749,7 +1753,7 @@ class _Translations$seerr$nl extends Translations$seerr$en { @override String get languageProfile => 'Taalprofiel'; @override String get requestSubmitted => 'Aanvraag verzonden'; @override String requestFailed({required Object error}) => 'Aanvraag mislukt: ${error}'; - @override String get requestsLoadFailed => 'Kan aanvraagopties niet laden'; + @override String get requestsLoadFailed => 'Aanvraagopties konden niet worden geladen'; @override String get nothingToRequest => 'Alles is al beschikbaar of aangevraagd.'; @override String get statusAvailable => 'Beschikbaar'; @override String get statusPartiallyAvailable => 'Gedeeltelijk beschikbaar'; @@ -1764,15 +1768,15 @@ class _Translations$services$nl extends Translations$services$en { final TranslationsNl _root; // ignore: unused_field // Translations - @override String get title => 'Services'; + @override String get title => 'Diensten'; @override String get hubSubtitle => 'Synchroniseer kijkvoortgang en vraag nieuwe titels aan.'; @override String get notConnected => 'Niet verbonden'; @override String connectedAs({required Object username}) => 'Verbonden als @${username}'; @override String get scrobble => 'Voortgang automatisch volgen'; @override String get scrobbleDescription => 'Werk je lijst bij wanneer je een aflevering of film afrondt.'; @override String disconnectConfirm({required Object service}) => '${service} loskoppelen?'; - @override String disconnectConfirmBody({required Object service}) => 'Plezy stopt met ${service} bijwerken. Je kunt altijd opnieuw verbinden.'; - @override String connectFailed({required Object service}) => 'Kan niet verbinden met ${service}. Probeer opnieuw.'; + @override String disconnectConfirmBody({required Object service}) => 'Plezy werkt ${service} niet meer bij. Je kunt op elk moment opnieuw verbinding maken.'; + @override String connectFailed({required Object service}) => 'Verbinding maken met ${service} is mislukt. Probeer het opnieuw.'; @override late final _Translations$services$names$nl names = _Translations$services$names$nl._(_root); @override late final _Translations$services$deviceCode$nl deviceCode = _Translations$services$deviceCode$nl._(_root); @override late final _Translations$services$oauthProxy$nl oauthProxy = _Translations$services$oauthProxy$nl._(_root); @@ -1801,7 +1805,7 @@ class _Translations$addServer$nl extends Translations$addServer$en { @override String signInFailed({required Object error}) => 'Inloggen mislukt: ${error}'; @override String quickConnectFailed({required Object error}) => 'Quick Connect mislukt: ${error}'; @override String get addPlexTitle => 'Inloggen met Plex'; - @override String get pinExpired => 'PIN verlopen vóór inloggen. Probeer opnieuw.'; + @override String get pinExpired => 'De pincode verliep voordat je kon inloggen. Probeer het opnieuw.'; @override String failedToRegisterAccount({required Object error}) => 'Account registreren mislukt: ${error}'; @override String get enterJellyfinUrlError => 'Voer de URL van je Jellyfin-server in'; @override String get addConnectionTitle => 'Verbinding toevoegen'; @@ -1812,8 +1816,8 @@ class _Translations$addServer$nl extends Translations$addServer$en { @override String get connectToJellyfinCard => 'Verbinden met Jellyfin'; @override String get connectToJellyfinCardSubtitle => 'Voer je server-URL, gebruikersnaam en wachtwoord in.'; @override String connectToJellyfinCardSubtitleScoped({required Object name}) => 'Log in op een Jellyfin-server. Wordt gekoppeld aan ${name}.'; - @override String get borrowFromAnotherProfile => 'Lenen van een ander profiel'; - @override String get borrowFromAnotherProfileSubtitle => 'Hergebruik de verbinding van een ander profiel. PIN-beveiligde profielen vereisen een PIN.'; + @override String get borrowFromAnotherProfile => 'Van een ander profiel lenen'; + @override String get borrowFromAnotherProfileSubtitle => 'Hergebruik de verbinding van een ander profiel. Voor profielen met pincodebeveiliging is een pincode vereist.'; } // Path: hotkeys.actions @@ -1859,9 +1863,9 @@ class _Translations$videoControls$pipErrors$nl extends Translations$videoControl // Translations @override String get androidVersion => 'Vereist Android 8.0 of nieuwer'; @override String get iosVersion => 'Vereist iOS 15.0 of nieuwer'; - @override String get permissionDisabled => 'Picture-in-picture is uitgeschakeld. Schakel het in via systeeminstellingen.'; - @override String get notSupported => 'Dit apparaat ondersteunt geen beeld-in-beeld modus'; - @override String get voSwitchFailed => 'Kan video-uitvoer niet wisselen voor beeld-in-beeld'; + @override String get permissionDisabled => 'Beeld-in-beeld is uitgeschakeld. Schakel het in via de systeeminstellingen.'; + @override String get notSupported => 'Dit apparaat ondersteunt de beeld-in-beeldmodus niet'; + @override String get voSwitchFailed => 'Omschakelen van de video-uitvoer voor beeld-in-beeld is mislukt'; @override String get failed => 'Beeld-in-beeld kon niet worden gestart'; @override String unknown({required Object error}) => 'Er is een fout opgetreden: ${error}'; } @@ -1925,8 +1929,8 @@ class _Translations$libraries$sortLabels$nl extends Translations$libraries$sortL @override String get dateAdded => 'Toegevoegd op'; @override String get releaseDate => 'Uitgavedatum'; @override String get rating => 'Beoordeling'; - @override String get communityRating => 'Communitybeoordeling'; - @override String get criticRating => 'Criticusbeoordeling'; + @override String get communityRating => 'Beoordeling door community'; + @override String get criticRating => 'Beoordeling door critici'; @override String get userRating => 'Gebruikersbeoordeling'; @override String get datePlayed => 'Afspeeldatum'; @override String get playCount => 'Aantal afspelingen'; @@ -1958,8 +1962,8 @@ class _Translations$explore$rows$nl extends Translations$explore$rows$en { @override String get popularMovies => 'Populaire films'; @override String get popularShows => 'Populaire series'; @override String get trendingAnime => 'Trending anime'; - @override String get suggestedAnime => 'Voorgestelde anime'; - @override String get airingAnime => 'Top lopende anime'; + @override String get suggestedAnime => 'Aanbevolen anime'; + @override String get airingAnime => 'Beste lopende anime'; @override String get popularAnime => 'Populairste anime'; @override String get trending => 'Trending'; @override String get upcomingMovies => 'Aankomende films'; @@ -2011,13 +2015,13 @@ class _Translations$companionRemote$pairing$nl extends Translations$companionRem @override String get connecting => 'Verbinden...'; @override String get searchingForDevices => 'Apparaten zoeken...'; @override String get noDevicesFound => 'Geen apparaten gevonden op je netwerk'; - @override String get noDevicesHint => 'Open Plezy op desktop en gebruik dezelfde WiFi'; + @override String get noDevicesHint => 'Open Plezy op je desktop en gebruik op beide apparaten dezelfde wifi'; @override String get availableDevices => 'Beschikbare apparaten'; @override String get manualConnection => 'Handmatige verbinding'; @override String get cryptoInitFailed => 'Kon beveiligde verbinding niet starten. Log eerst in bij Plex.'; @override String get validationHostRequired => 'Voer het hostadres in'; @override String get validationHostFormat => 'Formaat moet IP:poort zijn (bijv. 192.168.1.100:48632)'; - @override String get connectionTimedOut => 'Verbinding verlopen. Gebruik hetzelfde netwerk op beide apparaten.'; + @override String get connectionTimedOut => 'Er is een time-out opgetreden. Gebruik op beide apparaten hetzelfde netwerk.'; @override String get sessionNotFound => 'Apparaat niet gevonden. Zorg dat Plezy op de host draait.'; @override String get authFailed => 'Authenticatie mislukt. Beide apparaten hebben hetzelfde Plex-account nodig.'; @override String failedToConnect({required Object error}) => 'Kan niet verbinden: ${error}'; @@ -2068,11 +2072,11 @@ class _Translations$companionRemote$errors$nl extends Translations$companionRemo // Translations @override String get noNetworkInterface => 'Geen netwerkinterface gevonden'; @override String get authenticationFailed => 'Authenticatie mislukt'; - @override String serverStartFailed({required Object error}) => 'Kan de externe server niet starten: ${error}'; - @override String commandFailed({required Object error}) => 'Kan de externe opdracht niet verzenden: ${error}'; + @override String serverStartFailed({required Object error}) => 'Externe server starten mislukt: ${error}'; + @override String commandFailed({required Object error}) => 'Externe opdracht verzenden mislukt: ${error}'; @override String get joinTimedOut => 'Time-out bij deelnemen aan sessie'; - @override String get failedToConnectAnyAddress => 'Kan met geen enkel adres verbinden'; - @override String connectionLostAfterAttempts({required Object attempts}) => 'Verbinding verloren na ${attempts} pogingen'; + @override String get failedToConnectAnyAddress => 'Er kon met geen enkel adres verbinding worden gemaakt'; + @override String connectionLostAfterAttempts({required Object attempts}) => 'Verbinding verbroken na ${attempts} pogingen'; @override String get connectionLost => 'Verbinding verloren'; } @@ -2131,9 +2135,9 @@ class _Translations$services$libraryFilter$nl extends Translations$services$libr @override String subtitleBlocked({required Object count}) => '${count} geblokkeerd'; @override String subtitleAllowed({required Object count}) => '${count} toegestaan'; @override String get mode => 'Filtermodus'; - @override String get modeBlacklist => 'Zwarte lijst'; - @override String get modeWhitelist => 'Witte lijst'; - @override String get modeHintBlacklist => 'Synchroniseer alle bibliotheken behalve die hieronder aangevinkt zijn.'; + @override String get modeBlacklist => 'Blokkeerlijst'; + @override String get modeWhitelist => 'Toelatingslijst'; + @override String get modeHintBlacklist => 'Synchroniseer alle bibliotheken behalve de hieronder aangevinkte.'; @override String get modeHintWhitelist => 'Synchroniseer alleen de hieronder aangevinkte bibliotheken.'; @override String get libraries => 'Bibliotheken'; @override String get noLibraries => 'Geen bibliotheken beschikbaar'; @@ -2162,7 +2166,7 @@ extension on TranslationsNl { 'auth.quickConnectWaiting' => 'Wachten op goedkeuring…', 'auth.quickConnectCancel' => 'Annuleren', 'auth.quickConnectExpired' => 'Quick Connect is verlopen. Probeer opnieuw.', - 'auth.localDataRecoveryRequired' => 'Plezy could not safely recover local sign-in and pending playback data. Please sign in again.', + 'auth.localDataRecoveryRequired' => 'Plezy kon lokale aanmeldings- en openstaande afspeelgegevens niet veilig herstellen. Meld je opnieuw aan.', 'common.cancel' => 'Annuleren', 'common.save' => 'Opslaan', 'common.close' => 'Sluiten', @@ -2191,7 +2195,7 @@ extension on TranslationsNl { 'common.search' => 'Zoeken', 'common.home' => 'Home', 'common.back' => 'Terug', - 'common.settings' => 'Opties', + 'common.settings' => 'Instellingen', 'common.mute' => 'Dempen', 'common.ok' => 'OK', 'common.off' => 'Uit', @@ -2210,7 +2214,7 @@ extension on TranslationsNl { 'common.pressBackAgainToExit' => 'Druk nogmaals op terug om af te sluiten', 'screens.licenses' => 'Licenties', 'screens.switchProfile' => 'Wissel van profiel', - 'screens.subtitleStyling' => 'Ondertitel opmaak', + 'screens.subtitleStyling' => 'Ondertitelopmaak', 'screens.mpvConfig' => 'mpv.conf', 'screens.logs' => 'Logbestanden', 'update.available' => 'Update beschikbaar', @@ -2229,11 +2233,11 @@ extension on TranslationsNl { 'settings.videoPlayback' => 'Video afspelen', 'settings.videoPlaybackDescription' => 'Afspeelgedrag configureren', 'settings.advanced' => 'Geavanceerd', - 'settings.episodePosterMode' => 'Aflevering poster stijl', - 'settings.seriesPoster' => 'Serie poster', - 'settings.seasonPoster' => 'Seizoen poster', + 'settings.episodePosterMode' => 'Stijl van afleveringsposter', + 'settings.seriesPoster' => 'Serieposter', + 'settings.seasonPoster' => 'Seizoensposter', 'settings.episodeThumbnail' => 'Miniatuur', - 'settings.showHeroSectionDescription' => 'Toon uitgelichte inhoud carrousel op startscherm', + 'settings.showHeroSectionDescription' => 'Toon de carrousel met uitgelichte inhoud op het startscherm', 'settings.secondsLabel' => 'Seconden', 'settings.minutesLabel' => 'Minuten', 'settings.secondsShort' => 's', @@ -2243,21 +2247,23 @@ extension on TranslationsNl { 'settings.lightTheme' => 'Licht', 'settings.darkTheme' => 'Donker', 'settings.oledTheme' => 'OLED', - 'settings.libraryDensity' => 'Bibliotheek dichtheid', + 'settings.libraryDensity' => 'Bibliotheekdichtheid', 'settings.compact' => 'Compact', 'settings.comfortable' => 'Comfortabel', + 'settings.tvCornerSpotlightBackdrop' => 'Uitgelichte achtergrond in de hoek', + 'settings.tvCornerSpotlightBackdropDescription' => 'Toon de uitgelichte afbeelding rechtsboven in plaats van schermvullend', 'settings.viewMode' => 'Weergavemodus', 'settings.gridView' => 'Raster', 'settings.listView' => 'Lijst', 'settings.showHeroSection' => 'Toon hoofdsectie', - 'settings.continueWatchingAction' => 'Actie voor Doorgaan met kijken', + 'settings.continueWatchingAction' => 'Actie voor \'Doorgaan met kijken\'', 'settings.continueWatchingPlay' => 'Afspelen', 'settings.continueWatchingDetails' => 'Details openen', 'settings.episodeAction' => 'Afleveringsactie', 'settings.episodePlay' => 'Afspelen', 'settings.episodeDetails' => 'Details openen', 'settings.useGlobalHubs' => 'Startlayout gebruiken', - 'settings.useGlobalHubsDescription' => 'Toon gecombineerde home-hubs. Anders bibliotheekaanbevelingen gebruiken.', + 'settings.useGlobalHubsDescription' => 'Toon gecombineerde hubs op het startscherm. Gebruik anders bibliotheekaanbevelingen.', 'settings.showServerNameOnHubs' => 'Servernaam tonen bij hubs', 'settings.showServerNameOnHubsDescription' => 'Toon servernamen altijd in hubtitels.', 'settings.groupLibrariesByServer' => 'Bibliotheken groeperen per server', @@ -2281,47 +2287,47 @@ extension on TranslationsNl { 'settings.visualEffectsReduced' => 'Verminderd', 'settings.visualEffectsReducedDescription' => 'Minder animaties en illustraties met lagere resolutie', 'settings.hideSpoilers' => 'Spoilers voor ongekeken afleveringen verbergen', - 'settings.hideSpoilersDescription' => 'Vervaag miniaturen en beschrijvingen voor niet-bekeken afleveringen', - 'settings.playerBackend' => 'Speler backend', + 'settings.hideSpoilersDescription' => 'Vervaag miniaturen en beschrijvingen van ongekeken afleveringen', + 'settings.playerBackend' => 'Afspeelbackend', 'settings.exoPlayer' => 'ExoPlayer', 'settings.mpv' => 'mpv', - 'settings.hardwareDecoding' => 'Hardware decodering', - 'settings.hardwareDecodingDescription' => 'Gebruik hardware versnelling indien beschikbaar', - 'settings.bufferSize' => 'Buffer grootte', + 'settings.hardwareDecoding' => 'Hardwaredecodering', + 'settings.hardwareDecodingDescription' => 'Gebruik hardwareversnelling indien beschikbaar', + 'settings.bufferSize' => 'Buffergrootte', 'settings.bufferSizeMB' => ({required Object size}) => '${size}MB', - 'settings.bufferSizeAuto' => 'Auto (Aanbevolen)', + 'settings.bufferSizeAuto' => 'Automatisch (aanbevolen)', 'settings.bufferSizeWarning' => ({required Object heap, required Object size}) => '${heap}MB geheugen beschikbaar. Een buffer van ${size}MB kan afspelen beïnvloeden.', 'settings.defaultQualityTitle' => 'Standaardkwaliteit', 'settings.musicQualityTitle' => 'Muziekkwaliteit', - 'settings.subtitleStyling' => 'Ondertitel opmaak', - 'settings.subtitleStylingDescription' => 'Pas ondertitel uiterlijk aan', - 'settings.smallSkipDuration' => 'Korte skip duur', - 'settings.largeSkipDuration' => 'Lange skip duur', + 'settings.subtitleStyling' => 'Ondertitelopmaak', + 'settings.subtitleStylingDescription' => 'Pas de weergave van ondertitels aan', + 'settings.smallSkipDuration' => 'Korte sprong', + 'settings.largeSkipDuration' => 'Lange sprong', 'settings.rewindOnResume' => 'Terugspoelen bij hervatten', 'settings.secondsUnit' => ({required Object seconds}) => '${seconds} seconden', - 'settings.defaultSleepTimer' => 'Standaard slaap timer', - 'settings.minutesUnit' => ({required Object minutes}) => 'bij ${minutes} minuten', - 'settings.rememberTrackSelections' => 'Onthoud track selecties per serie/film', + 'settings.defaultSleepTimer' => 'Standaardslaaptimer', + 'settings.minutesUnit' => ({required Object minutes}) => '${minutes} minuten', + 'settings.rememberTrackSelections' => 'Trackselecties per serie of film onthouden', 'settings.rememberTrackSelectionsDescription' => 'Onthoud audio- en ondertitelkeuzes per titel', 'settings.showChapterMarkersOnTimeline' => 'Hoofdstukmarkeringen op tijdlijn tonen', 'settings.showChapterMarkersOnTimelineDescription' => 'Verdeel de tijdlijn bij hoofdstukgrenzen', - 'settings.clickVideoTogglesPlayback' => 'Klik op de video om afspelen/pauzeren te wisselen.', - 'settings.clickVideoTogglesPlaybackDescription' => 'Klik op video om af te spelen/pauzeren in plaats van bediening te tonen.', - 'settings.videoPlayerControls' => 'Videospeler bediening', - 'settings.keyboardShortcuts' => 'Toetsenbord sneltoetsen', - 'settings.keyboardShortcutsDescription' => 'Pas toetsenbord sneltoetsen aan', - 'settings.videoPlayerNavigation' => 'Videospeler navigatie', - 'settings.videoPlayerNavigationDescription' => 'Gebruik pijltjestoetsen om door de videospeler bediening te navigeren', - 'settings.watchTogetherRelay' => 'Samen Kijken Relay', + 'settings.clickVideoTogglesPlayback' => 'Klik op de video om afspelen of pauzeren te wisselen', + 'settings.clickVideoTogglesPlaybackDescription' => 'Klik op de video om af te spelen of te pauzeren in plaats van de bediening te tonen.', + 'settings.videoPlayerControls' => 'Videospelerbediening', + 'settings.keyboardShortcuts' => 'Toetsenbordsneltoetsen', + 'settings.keyboardShortcutsDescription' => 'Pas de toetsenbordsneltoetsen aan', + 'settings.videoPlayerNavigation' => 'Videospelernavigatie', + 'settings.videoPlayerNavigationDescription' => 'Gebruik de pijltjestoetsen om door de videospelerbediening te navigeren', + 'settings.watchTogetherRelay' => 'Relay voor Samen kijken', 'settings.watchTogetherRelayDescription' => 'Stel een aangepaste relay in. Iedereen moet dezelfde server gebruiken.', 'settings.watchTogetherRelayHint' => 'https://mijn-relay.voorbeeld.nl', - 'settings.watchTogetherRelayInvalid' => 'Enter a valid HTTP or HTTPS relay base URL.', + 'settings.watchTogetherRelayInvalid' => 'Voer een geldige HTTP- of HTTPS-basis-URL voor de relay in.', 'settings.crashReporting' => 'Crashrapportage', 'settings.crashReportingDescription' => 'Crashrapporten verzenden om de app te verbeteren', - 'settings.debugLogging' => 'Debug logging', - 'settings.debugLoggingDescription' => 'Schakel gedetailleerde logging in voor probleemoplossing', - 'settings.viewLogs' => 'Bekijk logs', - 'settings.viewLogsDescription' => 'Bekijk applicatie logs', + 'settings.debugLogging' => 'Debuglogboek', + 'settings.debugLoggingDescription' => 'Schakel gedetailleerde logboekregistratie in om problemen op te lossen', + 'settings.viewLogs' => 'Logbestanden bekijken', + 'settings.viewLogsDescription' => 'Logbestanden van de app bekijken', 'settings.clearCache' => 'Cache wissen', 'settings.clearCacheDescription' => 'Wis gecachete afbeeldingen en gegevens. Inhoud kan langzamer laden.', 'settings.clearCacheSuccess' => 'Cache succesvol gewist', @@ -2340,7 +2346,7 @@ extension on TranslationsNl { 'settings.importSettingsNoUser' => 'Meld je aan voordat je instellingen importeert', 'settings.shortcutsReset' => 'Sneltoetsen gereset naar standaard', 'settings.about' => 'Over', - 'settings.aboutDescription' => 'App informatie en licenties', + 'settings.aboutDescription' => 'App-informatie en licenties', 'settings.updates' => 'Updates', 'settings.updateAvailable' => 'Update beschikbaar', 'settings.checkForUpdates' => 'Controleer op updates', @@ -2350,15 +2356,15 @@ extension on TranslationsNl { 'settings.validationErrorDuration' => ({required Object min, required Object max, required Object unit}) => 'Duur moet tussen ${min} en ${max} ${unit} zijn', 'settings.shortcutAlreadyAssigned' => ({required Object action}) => 'Sneltoets al toegewezen aan ${action}', 'settings.shortcutUpdated' => ({required Object action}) => 'Sneltoets bijgewerkt voor ${action}', - 'settings.saveFailed' => 'Could not save changes. Try again.', - 'settings.autoSkip' => 'Automatisch Overslaan', - 'settings.autoSkipIntro' => 'Intro Automatisch Overslaan', - 'settings.autoSkipIntroDescription' => 'Intro-markeringen na enkele seconden automatisch overslaan', - 'settings.autoSkipCredits' => 'Credits Automatisch Overslaan', - 'settings.autoSkipCreditsDescription' => 'Credits automatisch overslaan en volgende aflevering afspelen', - 'settings.forceSkipMarkerFallback' => 'Fallbackmarkeringen afdwingen', - 'settings.forceSkipMarkerFallbackDescription' => 'Gebruik hoofdstuktitelpatronen, zelfs wanneer Plex markeringen heeft', - 'settings.autoSkipDelay' => 'Vertraging Automatisch Overslaan', + 'settings.saveFailed' => 'Wijzigingen konden niet worden opgeslagen. Probeer het opnieuw.', + 'settings.autoSkip' => 'Automatisch overslaan', + 'settings.autoSkipIntro' => 'Intro automatisch overslaan', + 'settings.autoSkipIntroDescription' => 'Intromarkeringen na enkele seconden automatisch overslaan', + 'settings.autoSkipCredits' => 'Aftiteling automatisch overslaan', + 'settings.autoSkipCreditsDescription' => 'Aftiteling automatisch overslaan en de volgende aflevering afspelen', + 'settings.forceSkipMarkerFallback' => 'Reservemarkeringen afdwingen', + 'settings.forceSkipMarkerFallbackDescription' => 'Gebruik patronen in hoofdstuktitels, zelfs wanneer Plex markeringen heeft', + 'settings.autoSkipDelay' => 'Vertraging voor automatisch overslaan', 'settings.autoSkipDelayDescription' => ({required Object seconds}) => '${seconds} seconden wachten voor automatisch overslaan', 'settings.introPattern' => 'Intromarkeringspatroon', 'settings.introPatternDescription' => 'Reguliere expressie om intromarkeringen in hoofdstuktitels te herkennen', @@ -2367,33 +2373,33 @@ extension on TranslationsNl { 'settings.invalidRegex' => 'Ongeldige reguliere expressie', 'settings.regex' => 'Reguliere expressie', 'settings.downloads' => 'Downloads', - 'settings.downloadLocationDescription' => 'Kies waar gedownloade content wordt opgeslagen', - 'settings.downloadLocationDefault' => 'Standaard (App-opslag)', - 'settings.downloadLocationCustom' => 'Aangepaste Locatie', - 'settings.selectFolder' => 'Selecteer Map', - 'settings.resetToDefault' => 'Herstel naar Standaard', + 'settings.downloadLocationDescription' => 'Kies waar gedownloade inhoud wordt opgeslagen', + 'settings.downloadLocationDefault' => 'Standaard (app-opslag)', + 'settings.downloadLocationCustom' => 'Aangepaste locatie', + 'settings.selectFolder' => 'Map selecteren', + 'settings.resetToDefault' => 'Standaardinstelling herstellen', 'settings.currentPath' => ({required Object path}) => 'Huidig: ${path}', 'settings.downloadLocationChanged' => 'Downloadlocatie gewijzigd', 'settings.downloadLocationReset' => 'Downloadlocatie hersteld naar standaard', 'settings.downloadLocationInvalid' => 'Geselecteerde map is niet beschrijfbaar', 'settings.downloadLocationPickerUnavailable' => 'Mapselectie is niet beschikbaar op dit apparaat', - 'settings.downloadOnWifiOnly' => 'Alleen via WiFi downloaden', + 'settings.downloadOnWifiOnly' => 'Alleen via wifi downloaden', 'settings.downloadOnWifiOnlyDescription' => 'Voorkom downloads bij gebruik van mobiele data', 'settings.autoRemoveWatchedDownloads' => 'Bekeken downloads automatisch verwijderen', 'settings.autoRemoveWatchedDownloadsDescription' => 'Bekeken downloads automatisch verwijderen', - 'settings.cellularDownloadBlocked' => 'Downloads zijn geblokkeerd via mobiel netwerk. Gebruik WiFi of wijzig de instelling.', + 'settings.cellularDownloadBlocked' => 'Downloads via een mobiel netwerk zijn geblokkeerd. Gebruik wifi of wijzig de instelling.', 'settings.maxVolume' => 'Maximaal volume', 'settings.maxVolumeDescription' => 'Volume boven 100% toestaan voor stille media', 'settings.maxVolumePercent' => ({required Object percent}) => '${percent}%', 'settings.discordRichPresence' => 'Discord Rich Presence', 'settings.discordRichPresenceDescription' => 'Toon op Discord wat je aan het kijken bent', - 'settings.services' => 'Services', - 'settings.servicesDescription' => 'Verbind Trakt, MyAnimeList, Seerr en meer', + 'settings.services' => 'Diensten', + 'settings.servicesDescription' => 'Koppel Trakt, MyAnimeList, Seerr en meer', 'settings.manageLibrariesDescription' => 'Bibliotheken herordenen en verbergen', 'settings.companionRemoteServer' => 'Companion Remote-server', 'settings.companionRemoteServerDescription' => 'Sta mobiele apparaten op je netwerk toe om deze app te bedienen', 'settings.autoPip' => 'Automatische beeld-in-beeld', - 'settings.autoPipDescription' => 'Ga naar picture-in-picture bij verlaten tijdens afspelen', + 'settings.autoPipDescription' => 'Schakel over naar beeld-in-beeld als je tijdens het afspelen de app verlaat', 'settings.matchContentFrameRate' => 'Inhoudsframesnelheid afstemmen', 'settings.matchContentFrameRateDescription' => 'Stem schermverversing af op videocontent', 'settings.matchRefreshRate' => 'Verversingssnelheid afstemmen', @@ -2405,9 +2411,9 @@ extension on TranslationsNl { 'settings.tunneledPlaybackDescription' => 'Gebruik videotunneling. Schakel uit als HDR-afspelen zwart beeld geeft.', 'settings.audioPassthrough' => 'Audio-doorvoer', 'settings.audioPassthroughDescription' => 'Stuur Dolby/DTS-audio zonder hercodering naar je receiver of tv en behoud surroundgeluid. Schakel uit als je geen geluid hebt.', - 'settings.audioPassthroughDescriptionAppleTv' => 'Geeft Dolby Digital Plus (incl. Atmos) als bitstream aan het systeem door. DTS en TrueHD worden nog steeds als meerkanaals PCM afgespeeld. Bij zoeken kunnen korte geluidsonderbrekingen optreden.', - 'settings.audioDownmix' => 'Downmix naar stereo', - 'settings.audioDownmixDescription' => 'Mixt surroundgeluid naar twee kanalen voor stereoluidsprekers of een koptelefoon', + 'settings.audioPassthroughDescriptionAppleTv' => 'Gebruik de ingebouwde Dolby-decoder van Apple voor Dolby Digital Plus, inclusief Atmos. DTS en TrueHD worden nog steeds als meerkanaals-PCM afgespeeld. Schakel dit uit als je geen geluid hoort.', + 'settings.audioDownmix' => 'Downmixen naar stereo', + 'settings.audioDownmixDescription' => 'Mix surroundgeluid terug naar twee kanalen voor stereoluidsprekers of een koptelefoon', 'settings.downmixCenterBoost' => 'Versterking middenkanaal', 'settings.downmixCenterBoostValue' => ({required Object db}) => '${db} dB', 'settings.downmixCenterBoostLabel' => 'Versterking (dB)', @@ -2431,26 +2437,26 @@ extension on TranslationsNl { 'settings.atmosTestStatus' => 'Status', 'settings.dvConversionMode' => 'Dolby Vision-conversie', 'settings.dvConversionModeDescription' => 'Kies hoe ExoPlayer Dolby Vision Profile 7-bestanden verwerkt.', - 'settings.dvConversionAuto' => 'Auto', + 'settings.dvConversionAuto' => 'Automatisch', 'settings.dvConversionNative' => 'Native / uitgeschakeld', 'settings.dvConversionDv81' => 'P7 → P8.1', 'settings.dvConversionHevcStrip' => 'P7 → HEVC', - 'settings.dvConversionAutoDescription' => 'Gebruik apparaatdetectie en normaal fallbackgedrag', - 'settings.dvConversionNativeDescription' => 'Forceer native DV7 en onderdruk DV-conversie opnieuw proberen', - 'settings.dvConversionDv81Description' => 'Forceer inline RPU-conversie naar Dolby Vision-profiel 8.1', - 'settings.dvConversionHevcStripDescription' => 'Strip Dolby Vision RPU/EL-lagen en presenteer gewone HEVC', + 'settings.dvConversionAutoDescription' => 'Gebruik detectie van apparaatmogelijkheden en het normale terugvalgedrag', + 'settings.dvConversionNativeDescription' => 'Dwing native DV7 af en voorkom een nieuwe poging met DV-conversie', + 'settings.dvConversionDv81Description' => 'Dwing directe RPU-conversie naar Dolby Vision-profiel 8.1 af', + 'settings.dvConversionHevcStripDescription' => 'Verwijder Dolby Vision RPU/EL-lagen en bied gewone HEVC aan', 'settings.requireProfileSelectionOnOpen' => 'Vraag om profiel bij openen', 'settings.requireProfileSelectionOnOpenDescription' => 'Toon profielselectie telkens wanneer de app wordt geopend', - 'settings.forceTvMode' => 'TV-modus forceren', - 'settings.forceTvModeDescription' => 'Forceer TV-indeling. Voor apparaten zonder autodetectie. Herstart vereist.', + 'settings.forceTvMode' => 'Tv-modus afdwingen', + 'settings.forceTvModeDescription' => 'Dwing de tv-indeling af op apparaten zonder automatische detectie. Herstart vereist.', 'settings.startInFullscreen' => 'Starten in volledig scherm', 'settings.startInFullscreenDescription' => 'Open Plezy bij het starten in volledig scherm', - 'settings.exitFullscreenOnPlayerClose' => 'Volledig scherm verlaten bij sluiten speler', - 'settings.exitFullscreenOnPlayerCloseDescription' => 'Verlaat automatisch volledig scherm wanneer de videospeler wordt gesloten', + 'settings.exitFullscreenOnPlayerClose' => 'Volledig scherm verlaten bij sluiten van speler', + 'settings.exitFullscreenOnPlayerCloseDescription' => 'Verlaat automatisch de volledigschermmodus wanneer de videospeler wordt gesloten', 'settings.autoHidePerformanceOverlay' => 'Prestatie-overlay automatisch verbergen', - 'settings.autoHidePerformanceOverlayDescription' => 'Laat de prestatie-overlay meevervagen met de afspeelknoppen', - 'settings.showNavBarLabels' => 'Navigatiebalk labels tonen', - 'settings.showNavBarLabelsDescription' => 'Tekstlabels onder de pictogrammen van de navigatiebalk weergeven', + 'settings.autoHidePerformanceOverlayDescription' => 'Laat de prestatie-overlay samen met de afspeelknoppen vervagen', + 'settings.showNavBarLabels' => 'Labels op navigatiebalk tonen', + 'settings.showNavBarLabelsDescription' => 'Tekstlabels onder de pictogrammen op de navigatiebalk weergeven', 'settings.startupSection' => 'Opstartsectie', 'settings.liveTvDefaultFavorites' => 'Standaard favoriete zenders', 'settings.liveTvDefaultFavoritesDescription' => 'Toon alleen favoriete zenders bij het openen van Live TV', @@ -2460,8 +2466,8 @@ extension on TranslationsNl { 'settings.window' => 'Venster', 'settings.content' => 'Inhoud', 'settings.player' => 'Speler', - 'settings.subtitlesAndConfig' => 'Ondertitels en configuratie', - 'settings.seekAndTiming' => 'Zoeken en timing', + 'settings.subtitlesAndConfig' => 'Ondertitels en instellingen', + 'settings.seekAndTiming' => 'Spoelen en timing', 'settings.behavior' => 'Gedrag', 'search.hint' => 'Zoek films, series, muziek...', 'search.tryDifferentTerm' => 'Probeer een andere zoekterm', @@ -2498,7 +2504,7 @@ extension on TranslationsNl { 'hotkeys.actions.shaderToggle' => 'Shaders aan/uit', 'hotkeys.actions.skipMarker' => 'Intro/aftiteling overslaan', 'hotkeys.actions.screenshot' => 'Schermafbeelding maken', - 'fileInfo.title' => 'Bestand info', + 'fileInfo.title' => 'Bestandsinformatie', 'fileInfo.video' => 'Video', 'fileInfo.audio' => 'Audio', 'fileInfo.file' => 'Bestand', @@ -2506,14 +2512,14 @@ extension on TranslationsNl { 'fileInfo.codec' => 'Codec', 'fileInfo.resolution' => 'Resolutie', 'fileInfo.bitrate' => 'Bitrate', - 'fileInfo.frameRate' => 'Frame rate', + 'fileInfo.frameRate' => 'Framesnelheid', 'fileInfo.aspectRatio' => 'Beeldverhouding', 'fileInfo.profile' => 'Profiel', - 'fileInfo.bitDepth' => 'Bit diepte', + 'fileInfo.bitDepth' => 'Bitdiepte', 'fileInfo.colorSpace' => 'Kleurruimte', 'fileInfo.colorRange' => 'Kleurbereik', 'fileInfo.colorPrimaries' => 'Kleurprimaires', - 'fileInfo.chromaSubsampling' => 'Chroma subsampling', + 'fileInfo.chromaSubsampling' => 'Chroma-subsampling', 'fileInfo.channels' => 'Kanalen', 'fileInfo.subtitles' => 'Ondertitels', 'fileInfo.overallBitrate' => 'Totale bitrate', @@ -2522,16 +2528,16 @@ extension on TranslationsNl { 'fileInfo.container' => 'Container', 'fileInfo.duration' => 'Duur', 'fileInfo.optimizedForStreaming' => 'Geoptimaliseerd voor streaming', - 'fileInfo.has64bitOffsets' => '64-bit Offsets', - 'mediaMenu.markAsWatched' => 'Markeer als gekeken', - 'mediaMenu.markAsUnwatched' => 'Markeer als ongekeken', - 'mediaMenu.removeFromContinueWatching' => 'Verwijder uit Doorgaan met kijken', + 'fileInfo.has64bitOffsets' => '64-bits offsets', + 'mediaMenu.markAsWatched' => 'Als bekeken markeren', + 'mediaMenu.markAsUnwatched' => 'Als ongekeken markeren', + 'mediaMenu.removeFromContinueWatching' => 'Uit \'Doorgaan met kijken\' verwijderen', 'mediaMenu.viewDetails' => 'Details bekijken', 'mediaMenu.goToSeries' => 'Ga naar serie', 'mediaMenu.shufflePlay' => 'Willekeurig afspelen', - 'mediaMenu.shuffleNotAvailableOffline' => 'Shuffle is offline niet beschikbaar', - 'mediaMenu.fileInfo' => 'Bestand info', - 'mediaMenu.deleteFromServer' => 'Verwijderen van server', + 'mediaMenu.shuffleNotAvailableOffline' => 'Willekeurig afspelen is offline niet beschikbaar', + 'mediaMenu.fileInfo' => 'Bestandsinformatie', + 'mediaMenu.deleteFromServer' => 'Van server verwijderen', 'mediaMenu.confirmDelete' => 'Deze media en bestanden van je server verwijderen?', 'mediaMenu.deleteMultipleWarning' => 'Dit omvat alle afleveringen en hun bestanden.', 'mediaMenu.mediaDeletedSuccessfully' => 'Media-item succesvol verwijderd', @@ -2544,10 +2550,10 @@ extension on TranslationsNl { 'rateSheet.favorite' => 'Favoriet', 'rateSheet.favorited' => 'Toegevoegd aan favorieten', 'rateSheet.saved' => 'Opgeslagen', - 'rateSheet.notAvailable' => 'Geen match gevonden', - 'rateSheet.noConnectedServices' => 'Verbind een service in Instellingen om daar te beoordelen.', + 'rateSheet.notAvailable' => 'Geen overeenkomst gevonden', + 'rateSheet.noConnectedServices' => 'Koppel een dienst in Instellingen om daar een beoordeling te geven.', 'accessibility.mediaCardMovie' => ({required Object title}) => '${title}, film', - 'accessibility.mediaCardShow' => ({required Object title}) => '${title}, TV-serie', + 'accessibility.mediaCardShow' => ({required Object title}) => '${title}, tv-serie', 'accessibility.mediaCardEpisode' => ({required Object title, required Object episodeInfo}) => '${title}, ${episodeInfo}', 'accessibility.mediaCardSeason' => ({required Object title, required Object seasonInfo}) => '${title}, ${seasonInfo}', 'accessibility.mediaCardWatched' => 'bekeken', @@ -2570,22 +2576,22 @@ extension on TranslationsNl { 'accessibility.rowPosition' => ({required Object row, required Object rowCount}) => 'Rij ${row} van ${rowCount}', 'tooltips.shufflePlay' => 'Willekeurig afspelen', 'tooltips.playTrailer' => 'Trailer afspelen', - 'tooltips.markAsWatched' => 'Markeer als gekeken', - 'tooltips.markAsUnwatched' => 'Markeer als ongekeken', + 'tooltips.markAsWatched' => 'Als bekeken markeren', + 'tooltips.markAsUnwatched' => 'Als ongekeken markeren', 'audioTracks.track' => ({required Object n}) => 'Audiospoor ${n}', 'videoControls.audioLabel' => 'Audio', 'videoControls.subtitlesLabel' => 'Ondertitels', - 'videoControls.resetToZero' => 'Reset naar 0ms', + 'videoControls.resetToZero' => 'Terugzetten naar 0 ms', 'videoControls.addTime' => ({required Object amount, required Object unit}) => '+${amount}${unit}', 'videoControls.minusTime' => ({required Object amount, required Object unit}) => '-${amount}${unit}', 'videoControls.playsLater' => ({required Object label}) => '${label} speelt later af', 'videoControls.playsEarlier' => ({required Object label}) => '${label} speelt eerder af', 'videoControls.noOffset' => 'Geen offset', 'videoControls.letterbox' => 'Letterbox', - 'videoControls.fillScreen' => 'Vul scherm', + 'videoControls.fillScreen' => 'Scherm vullen', 'videoControls.stretch' => 'Uitrekken', - 'videoControls.lockRotation' => 'Vergrendel rotatie', - 'videoControls.unlockRotation' => 'Ontgrendel rotatie', + 'videoControls.lockRotation' => 'Rotatie vergrendelen', + 'videoControls.unlockRotation' => 'Rotatie ontgrendelen', 'videoControls.timerActive' => 'Timer actief', 'videoControls.playbackWillPauseIn' => ({required Object duration}) => 'Afspelen wordt gepauzeerd over ${duration}', 'videoControls.sleepTimerEndOfVideo' => 'Einde van huidige video', @@ -2595,12 +2601,14 @@ extension on TranslationsNl { 'videoControls.stillWatching' => 'Kijk je nog?', 'videoControls.pausingIn' => ({required Object seconds}) => 'Pauze over ${seconds}s', 'videoControls.continueWatching' => 'Doorgaan', - 'videoControls.autoPlayNext' => 'Automatisch volgende afspelen', + 'videoControls.autoPlayNext' => 'Volgende automatisch afspelen', 'videoControls.playNext' => 'Volgende afspelen', 'videoControls.playButton' => 'Afspelen', 'videoControls.pauseButton' => 'Pauzeren', - 'videoControls.seekBackwardButton' => ({required Object seconds}) => 'Terugspoelen ${seconds} seconden', - 'videoControls.seekForwardButton' => ({required Object seconds}) => 'Vooruitspoelen ${seconds} seconden', + 'videoControls.showPlaybackControls' => 'Afspeelbediening tonen', + 'videoControls.hidePlaybackControls' => 'Afspeelbediening verbergen', + 'videoControls.seekBackwardButton' => ({required Object seconds}) => '${seconds} seconden terugspoelen', + 'videoControls.seekForwardButton' => ({required Object seconds}) => '${seconds} seconden vooruitspoelen', 'videoControls.previousButton' => 'Vorige aflevering', 'videoControls.nextButton' => 'Volgende aflevering', 'videoControls.previousChapterButton' => 'Vorig hoofdstuk', @@ -2617,14 +2625,14 @@ extension on TranslationsNl { 'videoControls.qualityPresetLabel' => ({required Object resolution, required Object bitrate}) => '${resolution}p ${bitrate} Mbps', 'videoControls.transcodeUnavailableFallback' => 'Transcoderen niet beschikbaar — originele kwaliteit wordt afgespeeld', 'videoControls.subtitleUnavailableFallback' => 'De geselecteerde ondertitels konden niet worden geladen — afspelen gaat door zonder ondertitels', - 'videoControls.pipButton' => 'Beeld-in-beeld modus', + 'videoControls.pipButton' => 'Beeld-in-beeldmodus', 'videoControls.aspectRatioButton' => 'Beeldverhouding', 'videoControls.ambientLighting' => 'Omgevingsverlichting', 'videoControls.fullscreenButton' => 'Volledig scherm activeren', 'videoControls.exitFullscreenButton' => 'Volledig scherm verlaten', 'videoControls.alwaysOnTopButton' => 'Altijd bovenop', 'videoControls.rotationLockButton' => 'Rotatievergrendeling', - 'videoControls.lockScreen' => 'Vergrendel scherm', + 'videoControls.lockScreen' => 'Scherm vergrendelen', 'videoControls.screenLockButton' => 'Schermvergrendeling', 'videoControls.longPressToUnlock' => 'Lang indrukken om te ontgrendelen', 'videoControls.timelineSlider' => 'Videotijdlijn', @@ -2636,9 +2644,9 @@ extension on TranslationsNl { 'videoControls.zoomPercent' => ({required Object percent}) => 'Zoom ${percent}%', 'videoControls.pipErrors.androidVersion' => 'Vereist Android 8.0 of nieuwer', 'videoControls.pipErrors.iosVersion' => 'Vereist iOS 15.0 of nieuwer', - 'videoControls.pipErrors.permissionDisabled' => 'Picture-in-picture is uitgeschakeld. Schakel het in via systeeminstellingen.', - 'videoControls.pipErrors.notSupported' => 'Dit apparaat ondersteunt geen beeld-in-beeld modus', - 'videoControls.pipErrors.voSwitchFailed' => 'Kan video-uitvoer niet wisselen voor beeld-in-beeld', + 'videoControls.pipErrors.permissionDisabled' => 'Beeld-in-beeld is uitgeschakeld. Schakel het in via de systeeminstellingen.', + 'videoControls.pipErrors.notSupported' => 'Dit apparaat ondersteunt de beeld-in-beeldmodus niet', + 'videoControls.pipErrors.voSwitchFailed' => 'Omschakelen van de video-uitvoer voor beeld-in-beeld is mislukt', 'videoControls.pipErrors.failed' => 'Beeld-in-beeld kon niet worden gestart', 'videoControls.pipErrors.unknown' => ({required Object error}) => 'Er is een fout opgetreden: ${error}', 'videoControls.chapters' => 'Hoofdstukken', @@ -2655,40 +2663,40 @@ extension on TranslationsNl { 'videoControls.subtitleDownloadedNotApplied' => 'De ondertiteling is gedownload, maar kon niet worden geselecteerd', 'videoControls.subtitleDownloadFailed' => 'Ondertitel downloaden mislukt', 'videoControls.searchLanguages' => 'Talen zoeken...', - 'messages.markedAsWatched' => 'Gemarkeerd als gekeken', - 'messages.markedAsUnwatched' => 'Gemarkeerd als ongekeken', - 'messages.markedAsWatchedOffline' => 'Gemarkeerd als gekeken (sync wanneer online)', - 'messages.markedAsUnwatchedOffline' => 'Gemarkeerd als ongekeken (sync wanneer online)', _ => null, } ?? switch (path) { + 'messages.markedAsWatched' => 'Gemarkeerd als gekeken', + 'messages.markedAsUnwatched' => 'Gemarkeerd als ongekeken', + 'messages.markedAsWatchedOffline' => 'Gemarkeerd als bekeken (wordt gesynchroniseerd zodra je online bent)', + 'messages.markedAsUnwatchedOffline' => 'Gemarkeerd als ongekeken (wordt gesynchroniseerd zodra je online bent)', 'messages.autoRemovedWatchedDownload' => ({required Object title}) => 'Automatisch verwijderd: ${title}', 'messages.autoRemovedWatchedDownloads' => ({required num n}) => (_root.$meta.cardinalResolver ?? PluralResolvers.cardinal('nl'))(n, one: 'Automatisch ${n} bekeken download verwijderd', other: 'Automatisch ${n} bekeken downloads verwijderd', ), - 'messages.removedFromContinueWatching' => 'Verwijderd uit Doorgaan met kijken', + 'messages.removedFromContinueWatching' => 'Verwijderd uit \'Doorgaan met kijken\'', 'messages.errorLoading' => ({required Object error}) => 'Fout: ${error}', 'messages.streamInterrupted' => 'De stream is onderbroken. Druk op afspelen of spoel om het opnieuw te proberen.', 'messages.liveStreamInterrupted' => 'De livestream is onderbroken. Druk op afspelen om het opnieuw te proberen.', - 'messages.fileInfoNotAvailable' => 'Bestand informatie niet beschikbaar', - 'messages.playbackAuthenticationRequired' => 'Sign in to the media server again to play this item.', - 'messages.playbackServerUnavailable' => 'The media server is unavailable. Try again later.', - 'messages.playbackDataInvalid' => 'The server returned invalid playback information.', - 'messages.playbackCancelled' => 'Playback was cancelled.', - 'messages.playbackFailed' => 'Playback could not be started.', - 'messages.errorLoadingFileInfo' => ({required Object error}) => 'Fout bij laden bestand info: ${error}', - 'messages.errorLoadingSeries' => 'Fout bij laden serie', + 'messages.fileInfoNotAvailable' => 'Bestandsinformatie niet beschikbaar', + 'messages.playbackAuthenticationRequired' => 'Meld je opnieuw aan bij de mediaserver om dit item af te spelen.', + 'messages.playbackServerUnavailable' => 'De mediaserver is niet beschikbaar. Probeer het later opnieuw.', + 'messages.playbackDataInvalid' => 'De server heeft ongeldige afspeelinformatie geretourneerd.', + 'messages.playbackCancelled' => 'Het afspelen is geannuleerd.', + 'messages.playbackFailed' => 'Het afspelen kon niet worden gestart.', + 'messages.errorLoadingFileInfo' => ({required Object error}) => 'Fout bij laden van bestandsinformatie: ${error}', + 'messages.errorLoadingSeries' => 'Fout bij laden van serie', 'messages.musicNotSupported' => 'Muziek afspelen wordt nog niet ondersteund', 'messages.noDescriptionAvailable' => 'Geen beschrijving beschikbaar', 'messages.noProfilesAvailable' => 'Geen profielen beschikbaar', 'messages.contactAdminForProfiles' => 'Neem contact op met je serverbeheerder om profielen toe te voegen', 'messages.unableToDetermineLibrarySection' => 'Kan bibliotheeksectie voor dit item niet bepalen', - 'messages.logsCleared' => 'Logs gewist', - 'messages.logsCopied' => 'Logs gekopieerd naar klembord', - 'messages.noLogsAvailable' => 'Geen logs beschikbaar', - 'messages.libraryScanning' => ({required Object title}) => 'Scannen "${title}"...', - 'messages.libraryScanStarted' => ({required Object title}) => 'Bibliotheek scan gestart voor "${title}"', - 'messages.libraryScanFailed' => ({required Object error}) => 'Kon bibliotheek niet scannen: ${error}', - 'messages.metadataRefreshing' => ({required Object title}) => 'Metadata vernieuwen voor "${title}"...', - 'messages.metadataRefreshStarted' => ({required Object title}) => 'Metadata vernieuwen gestart voor "${title}"', - 'messages.metadataRefreshFailed' => ({required Object error}) => 'Kon metadata niet vernieuwen: ${error}', + 'messages.logsCleared' => 'Logbestanden gewist', + 'messages.logsCopied' => 'Logbestanden naar het klembord gekopieerd', + 'messages.noLogsAvailable' => 'Geen logbestanden beschikbaar', + 'messages.libraryScanning' => ({required Object title}) => '"${title}" scannen...', + 'messages.libraryScanStarted' => ({required Object title}) => 'Bibliotheekscan gestart voor "${title}"', + 'messages.libraryScanFailed' => ({required Object error}) => 'Bibliotheek scannen mislukt: ${error}', + 'messages.metadataRefreshing' => ({required Object title}) => 'Metadata voor "${title}" vernieuwen...', + 'messages.metadataRefreshStarted' => ({required Object title}) => 'Vernieuwen van metadata gestart voor "${title}"', + 'messages.metadataRefreshFailed' => ({required Object error}) => 'Metadata vernieuwen mislukt: ${error}', 'messages.logoutConfirm' => 'Weet je zeker dat je wilt uitloggen?', 'messages.noSeasonsFound' => 'Geen seizoenen gevonden', 'messages.seasonsLoadFailed' => 'Kan seizoenen niet laden', @@ -2696,24 +2704,24 @@ extension on TranslationsNl { 'messages.noEpisodesFoundGeneral' => 'Geen afleveringen gevonden', 'messages.episodesLoadFailed' => 'Kan afleveringen niet laden', 'messages.noResultsFound' => 'Geen resultaten gevonden', - 'messages.sleepTimerSet' => ({required Object label}) => 'Slaap timer ingesteld voor ${label}', + 'messages.sleepTimerSet' => ({required Object label}) => 'Slaaptimer ingesteld op ${label}', 'messages.noItemsAvailable' => 'Geen items beschikbaar', - 'messages.failedToCreatePlayQueueNoItems' => 'Kan afspeelwachtrij niet maken - geen items', + 'messages.failedToCreatePlayQueueNoItems' => 'Afspeelwachtrij maken mislukt — geen items', 'messages.failedPlayback' => ({required Object action, required Object error}) => 'Afspelen van ${action} mislukt: ${error}', 'messages.switchingToCompatiblePlayer' => 'Overschakelen naar compatibele speler...', 'messages.serverLimitTitle' => 'Afspelen mislukt', 'messages.serverLimitBody' => 'Serverfout (HTTP 500). Waarschijnlijk weigerde een bandbreedte-/transcodeerlimiet deze sessie. Vraag de eigenaar dit aan te passen.', - 'messages.logsUploaded' => 'Logs geüpload', - 'messages.logsUploadFailed' => 'Uploaden van logs mislukt', - 'messages.logId' => 'Log-ID', + 'messages.logsUploaded' => 'Logbestanden geüpload', + 'messages.logsUploadFailed' => 'Uploaden van logbestanden mislukt', + 'messages.logId' => 'Logboek-ID', 'subtitlingStyling.text' => 'Tekst', 'subtitlingStyling.border' => 'Rand', 'subtitlingStyling.background' => 'Achtergrond', 'subtitlingStyling.fontSize' => 'Lettergrootte', 'subtitlingStyling.textColor' => 'Tekstkleur', - 'subtitlingStyling.borderSize' => 'Rand grootte', + 'subtitlingStyling.borderSize' => 'Randdikte', 'subtitlingStyling.borderColor' => 'Randkleur', - 'subtitlingStyling.backgroundOpacity' => 'Achtergrond transparantie', + 'subtitlingStyling.backgroundOpacity' => 'Achtergronddekking', 'subtitlingStyling.backgroundColor' => 'Achtergrondkleur', 'subtitlingStyling.position' => 'Positie', 'subtitlingStyling.assOverride' => 'ASS-overschrijving', @@ -2727,8 +2735,8 @@ extension on TranslationsNl { 'subtitlingStyling.renderResolution' => 'Renderresolutie', 'subtitlingStyling.renderResolutionScreen' => 'Schermresolutie', 'subtitlingStyling.renderResolutionVideo' => 'Videoresolutie', - 'mpvConfig.title' => 'mpv-configuratie', - 'mpvConfig.description' => 'Geavanceerde videospeler-instellingen', + 'mpvConfig.title' => 'mpv.conf', + 'mpvConfig.description' => 'Geavanceerde videospelerinstellingen', 'mpvConfig.presets' => 'Voorinstellingen', 'mpvConfig.noPresets' => 'Geen opgeslagen voorinstellingen', 'mpvConfig.saveAsPreset' => 'Opslaan als voorinstelling...', @@ -2759,17 +2767,17 @@ extension on TranslationsNl { 'profiles.summaryMultipleWithActive' => ({required Object count, required Object activeName}) => '${count} profielen · actief: ${activeName}', 'profiles.summaryMultiple' => ({required Object count}) => '${count} profielen', 'profiles.removeConnectionTitle' => 'Verbinding verwijderen?', - 'profiles.removeConnectionMessage' => ({required Object displayName, required Object connectionLabel}) => 'Verwijder ${displayName}s toegang tot ${connectionLabel}. Andere profielen behouden die.', + 'profiles.removeConnectionMessage' => ({required Object displayName, required Object connectionLabel}) => 'Verwijder de toegang van ${displayName} tot ${connectionLabel}. Andere profielen behouden deze toegang.', 'profiles.deleteProfileTitle' => 'Profiel verwijderen?', 'profiles.deleteProfileMessage' => ({required Object displayName}) => 'Verwijder ${displayName} en de verbindingen. Servers blijven beschikbaar.', 'profiles.profileNameLabel' => 'Profielnaam', - 'profiles.pinProtectionLabel' => 'PIN-beveiliging', - 'profiles.pinManagedByPlex' => 'PIN wordt beheerd door Plex. Bewerk op plex.tv.', - 'profiles.noPinSetEditOnPlex' => 'Geen PIN ingesteld. Bewerk de Home-gebruiker op plex.tv om er één te vereisen.', - 'profiles.setPin' => 'PIN instellen', - 'profiles.setPinTitle' => 'PIN instellen', - 'profiles.confirmPinTitle' => 'PIN bevestigen', - 'profiles.pinSet' => 'PIN ingesteld', + 'profiles.pinProtectionLabel' => 'Pincodebeveiliging', + 'profiles.pinManagedByPlex' => 'De pincode wordt beheerd door Plex. Pas deze aan op plex.tv.', + 'profiles.noPinSetEditOnPlex' => 'Geen pincode ingesteld. Bewerk de Plex Home-gebruiker op plex.tv om er een te vereisen.', + 'profiles.setPin' => 'Pincode instellen', + 'profiles.setPinTitle' => 'Pincode instellen', + 'profiles.confirmPinTitle' => 'Pincode bevestigen', + 'profiles.pinSet' => 'Pincode ingesteld', 'profiles.changePin' => 'Wijzigen', 'profiles.removePin' => 'Verwijderen', 'profiles.connectionsLabel' => 'Verbindingen', @@ -2784,24 +2792,24 @@ extension on TranslationsNl { 'profiles.removeConnection' => 'Verwijderen', 'profiles.profileRenamed' => 'Profiel hernoemd.', 'profiles.borrowAddTo' => ({required Object displayName}) => 'Toevoegen aan ${displayName}', - 'profiles.borrowExplain' => 'Leen de verbinding van een ander profiel. PIN-beveiligde profielen vereisen een PIN.', + 'profiles.borrowExplain' => 'Leen de verbinding van een ander profiel. Voor profielen met pincodebeveiliging is een pincode vereist.', 'profiles.borrowEmpty' => 'Nog niets te lenen.', 'profiles.borrowEmptySubtitle' => 'Verbind Plex of Jellyfin eerst met een ander profiel.', - 'profiles.borrowLoadFailed' => 'Available connections could not be loaded. Try again.', + 'profiles.borrowLoadFailed' => 'Beschikbare verbindingen konden niet worden geladen. Probeer het opnieuw.', 'profiles.borrowFromProfile' => ({required Object displayName}) => 'Van ${displayName}', 'profiles.borrowConnectionBorrowed' => 'Verbinding geleend.', 'profiles.borrowFailed' => 'Kan verbinding niet lenen.', - 'profiles.incorrectPin' => 'Onjuiste PIN.', - 'profiles.incorrectPinTryAgain' => 'Onjuiste PIN. Probeer het opnieuw.', - 'profiles.sourceProfileMissingParentAccount' => 'Het bronprofiel mist het bovenliggende account.', - 'profiles.failedToLoadHomeUsers' => 'Kan je Plex Home-gebruikers niet laden. Controleer je verbinding en probeer het opnieuw.', - 'profiles.failedToVerifyPin' => 'Kan PIN niet verifiëren.', + 'profiles.incorrectPin' => 'Onjuiste pincode.', + 'profiles.incorrectPinTryAgain' => 'Onjuiste pincode. Probeer het opnieuw.', + 'profiles.sourceProfileMissingParentAccount' => 'Het bovenliggende account van het bronprofiel ontbreekt.', + 'profiles.failedToLoadHomeUsers' => 'Je Plex Home-gebruikers konden niet worden geladen. Controleer je verbinding en probeer het opnieuw.', + 'profiles.failedToVerifyPin' => 'De pincode kon niet worden geverifieerd.', 'profiles.newProfile' => 'Nieuw profiel', 'profiles.profileNameHint' => 'bijv. Gasten, Kinderen, Woonkamer', - 'profiles.pinProtectionOptional' => 'PIN-beveiliging (optioneel)', - 'profiles.pinExplain' => '4-cijferige PIN vereist om profielen te wisselen.', + 'profiles.pinProtectionOptional' => 'Pincodebeveiliging (optioneel)', + 'profiles.pinExplain' => 'Een viercijferige pincode is vereist om van profiel te wisselen.', 'profiles.continueButton' => 'Doorgaan', - 'profiles.pinsDontMatch' => 'PIN-codes komen niet overeen', + 'profiles.pinsDontMatch' => 'De pincodes komen niet overeen', 'connections.sectionTitle' => 'Verbindingen', 'connections.addConnection' => 'Verbinding toevoegen', 'connections.addConnectionSubtitleNoProfile' => 'Meld je aan met Plex of verbind een Jellyfin-server', @@ -2826,15 +2834,15 @@ extension on TranslationsNl { 'discover.playEpisode' => ({required Object season, required Object episode}) => 'S${season}E${episode}', 'discover.overview' => 'Overzicht', 'discover.cast' => 'Acteurs', - 'discover.extras' => 'Trailers & Extra\'s', + 'discover.extras' => 'Trailers en extra\'s', 'discover.studio' => 'Studio', - 'discover.rating' => 'Leeftijd', + 'discover.rating' => 'Beoordeling', 'discover.movie' => 'Film', - 'discover.tvShow' => 'TV Serie', - 'discover.minutesLeft' => ({required Object minutes}) => '${minutes} min over', + 'discover.tvShow' => 'Tv-serie', + 'discover.minutesLeft' => ({required Object minutes}) => 'nog ${minutes} min', 'discover.moreLikeThis' => 'Meer zoals dit', 'errors.searchFailed' => ({required Object error}) => 'Zoeken mislukt: ${error}', - 'errors.connectionTimeout' => ({required Object context}) => 'Verbinding time-out tijdens laden ${context}', + 'errors.connectionTimeout' => ({required Object context}) => 'Time-out van verbinding tijdens het laden van ${context}', 'errors.connectionFailed' => 'Kan geen verbinding maken met mediaserver', 'errors.unableToLoad' => ({required Object context}) => 'Kan ${context} niet laden. Probeer het opnieuw.', 'errors.noClientAvailable' => 'Geen client beschikbaar', @@ -2846,11 +2854,11 @@ extension on TranslationsNl { 'errors.failedToRate' => 'Beoordeling kon niet worden bijgewerkt', 'libraries.title' => 'Bibliotheken', 'libraries.fallbackTitle' => 'Bibliotheek', - 'libraries.scanLibraryFiles' => 'Scan bibliotheek bestanden', - 'libraries.scanLibrary' => 'Scan bibliotheek', + 'libraries.scanLibraryFiles' => 'Bibliotheekbestanden scannen', + 'libraries.scanLibrary' => 'Bibliotheek scannen', 'libraries.analyze' => 'Analyseren', - 'libraries.analyzeLibrary' => 'Analyseer bibliotheek', - 'libraries.refreshMetadata' => 'Vernieuw metadata', + 'libraries.analyzeLibrary' => 'Bibliotheek analyseren', + 'libraries.refreshMetadata' => 'Metadata vernieuwen', 'libraries.emptyTrash' => 'Prullenbak legen', 'libraries.emptyingTrash' => ({required Object title}) => 'Prullenbak legen voor "${title}"...', 'libraries.trashEmptied' => ({required Object title}) => 'Prullenbak geleegd voor "${title}"', @@ -2870,14 +2878,14 @@ extension on TranslationsNl { 'libraries.analyzeLibraryConfirm' => ({required Object title}) => 'Weet je zeker dat je "${title}" wilt analyseren?', 'libraries.refreshMetadataConfirm' => ({required Object title}) => 'Weet je zeker dat je metadata wilt vernieuwen voor "${title}"?', 'libraries.emptyTrashConfirm' => ({required Object title}) => 'Weet je zeker dat je de prullenbak wilt legen voor "${title}"?', - 'libraries.manageLibraries' => 'Beheer bibliotheken', + 'libraries.manageLibraries' => 'Bibliotheken beheren', 'libraries.sort' => 'Sorteren', 'libraries.sortBy' => 'Sorteer op', 'libraries.filters' => 'Filters', 'libraries.confirmActionMessage' => 'Weet je zeker dat je deze actie wilt uitvoeren?', - 'libraries.showLibrary' => 'Toon bibliotheek', - 'libraries.hideLibrary' => 'Verberg bibliotheek', - 'libraries.libraryOptions' => 'Bibliotheek opties', + 'libraries.showLibrary' => 'Bibliotheek tonen', + 'libraries.hideLibrary' => 'Bibliotheek verbergen', + 'libraries.libraryOptions' => 'Bibliotheekopties', 'libraries.content' => 'bibliotheekinhoud', 'libraries.selectLibrary' => 'Bibliotheek kiezen', 'libraries.filtersWithCount' => ({required Object count}) => 'Filters (${count})', @@ -2910,8 +2918,8 @@ extension on TranslationsNl { 'libraries.sortLabels.dateAdded' => 'Toegevoegd op', 'libraries.sortLabels.releaseDate' => 'Uitgavedatum', 'libraries.sortLabels.rating' => 'Beoordeling', - 'libraries.sortLabels.communityRating' => 'Communitybeoordeling', - 'libraries.sortLabels.criticRating' => 'Criticusbeoordeling', + 'libraries.sortLabels.communityRating' => 'Beoordeling door community', + 'libraries.sortLabels.criticRating' => 'Beoordeling door critici', 'libraries.sortLabels.userRating' => 'Gebruikersbeoordeling', 'libraries.sortLabels.datePlayed' => 'Afspeeldatum', 'libraries.sortLabels.playCount' => 'Aantal afspelingen', @@ -2927,10 +2935,10 @@ extension on TranslationsNl { 'libraries.sortLabels.latestEpisodeAirDate' => 'Laatste afleveringsuitzending', 'libraries.sortLabels.lastEpisodeDateAdded' => 'Datum laatst toegevoegde aflevering', 'about.title' => 'Over', - 'about.openSourceLicenses' => 'Open Source licenties', + 'about.openSourceLicenses' => 'Opensourcelicenties', 'about.versionLabel' => ({required Object version}) => 'Versie ${version}', 'about.appDescription' => 'Een mooie Plex- en Jellyfin-client voor Flutter', - 'about.viewLicensesDescription' => 'Bekijk licenties van third-party bibliotheken', + 'about.viewLicensesDescription' => 'Licenties van bibliotheken van derden bekijken', 'serverSelection.noServersFoundForAccount' => ({required Object username, required Object email}) => 'Geen servers gevonden voor ${username} (${email})', 'serverSelection.failedToLoadServers' => ({required Object error}) => 'Kon servers niet laden: ${error}', 'hubDetail.title' => 'Titel', @@ -2938,16 +2946,16 @@ extension on TranslationsNl { 'hubDetail.dateAdded' => 'Datum toegevoegd', 'hubDetail.rating' => 'Beoordeling', 'hubDetail.noItemsFound' => 'Geen items gevonden', - 'logs.clearLogs' => 'Wis logs', - 'logs.copyLogs' => 'Kopieer logs', - 'logs.uploadLogs' => 'Logs uploaden', + 'logs.clearLogs' => 'Logbestanden wissen', + 'logs.copyLogs' => 'Logbestanden kopiëren', + 'logs.uploadLogs' => 'Logbestanden uploaden', 'licenses.relatedPackages' => 'Gerelateerde pakketten', 'licenses.license' => 'Licentie', 'licenses.licenseNumber' => ({required Object number}) => 'Licentie ${number}', 'licenses.licensesCount' => ({required Object count}) => '${count} licenties', 'navigation.libraries' => 'Media', 'navigation.downloads' => 'Downloads', - 'navigation.liveTv' => 'Live TV', + 'navigation.liveTv' => 'Live-tv', 'navigation.explore' => 'Verkennen', 'explore.title' => 'Verkennen', 'explore.selectSource' => 'Bron kiezen', @@ -2959,8 +2967,8 @@ extension on TranslationsNl { 'explore.rows.popularMovies' => 'Populaire films', 'explore.rows.popularShows' => 'Populaire series', 'explore.rows.trendingAnime' => 'Trending anime', - 'explore.rows.suggestedAnime' => 'Voorgestelde anime', - 'explore.rows.airingAnime' => 'Top lopende anime', + 'explore.rows.suggestedAnime' => 'Aanbevolen anime', + 'explore.rows.airingAnime' => 'Beste lopende anime', 'explore.rows.popularAnime' => 'Populairste anime', 'explore.rows.trending' => 'Trending', 'explore.rows.upcomingMovies' => 'Aankomende films', @@ -2984,7 +2992,7 @@ extension on TranslationsNl { 'explore.searchEmpty' => ({required Object query}) => 'Geen resultaten voor "${query}"', 'explore.searchPrompt' => ({required Object source}) => 'Zoek naar films en series op ${source}.', 'explore.searchFailed' => 'Zoeken mislukt. Controleer je verbinding en probeer opnieuw.', - 'liveTv.title' => 'Live TV', + 'liveTv.title' => 'Live-tv', 'liveTv.guide' => 'Gids', 'liveTv.noChannels' => 'Geen zenders beschikbaar', 'liveTv.noDvr' => 'Geen DVR geconfigureerd op een server', @@ -3008,16 +3016,16 @@ extension on TranslationsNl { 'liveTv.daytime' => 'Overdag', 'liveTv.evening' => 'Avond', 'liveTv.lateNight' => 'Late avond', - 'liveTv.whatsOn' => 'Nu op TV', + 'liveTv.whatsOn' => 'Nu op tv', 'liveTv.watchChannel' => 'Kanaal bekijken', 'liveTv.favorites' => 'Favorieten', 'liveTv.reorderFavorites' => 'Favorieten herordenen', 'liveTv.favoritesLoadFailed' => 'Favorieten konden niet worden geladen. Controleer je verbinding en probeer het opnieuw.', - 'liveTv.favoritesUpdateFailed' => 'Could not update favorites. Check your connection and try again.', + 'liveTv.favoritesUpdateFailed' => 'Favorieten konden niet worden bijgewerkt. Controleer je verbinding en probeer het opnieuw.', 'liveTv.joinSession' => 'Deelnemen aan lopende sessie', - 'liveTv.watchFromStart' => ({required Object minutes}) => 'Kijk vanaf het begin (${minutes} min geleden)', + 'liveTv.watchFromStart' => ({required Object minutes}) => 'Vanaf het begin kijken (${minutes} min geleden)', 'liveTv.watchLive' => 'Live kijken', - 'liveTv.goToLive' => 'Ga naar live', + 'liveTv.goToLive' => 'Naar live-uitzending', 'liveTv.record' => 'Opnemen', 'liveTv.recordEpisode' => 'Aflevering opnemen', 'liveTv.recordSeries' => 'Serie opnemen', @@ -3048,8 +3056,8 @@ extension on TranslationsNl { 'liveTv.editRule' => 'Regel bewerken', 'liveTv.editRuleAction' => 'Bewerken', 'liveTv.recordingRuleUpdated' => 'Opnameregel bijgewerkt', - 'liveTv.guideReloadRequested' => 'Gids-vernieuwing aangevraagd', - 'liveTv.rulesProcessRequested' => 'Regel-herevaluatie aangevraagd', + 'liveTv.guideReloadRequested' => 'Vernieuwing van de gids aangevraagd', + 'liveTv.rulesProcessRequested' => 'Nieuwe evaluatie van regels aangevraagd', 'liveTv.recordShow' => 'Programma opnemen', 'collections.title' => 'Collecties', 'collections.collection' => 'Collectie', @@ -3059,9 +3067,9 @@ extension on TranslationsNl { 'collections.deleted' => 'Collectie verwijderd', 'collections.deleteFailed' => 'Collectie verwijderen mislukt', 'collections.deleteFailedWithError' => ({required Object error}) => 'Collectie verwijderen mislukt: ${error}', - 'collections.selectCollection' => 'Selecteer collectie', + 'collections.selectCollection' => 'Collectie selecteren', 'collections.collectionName' => 'Collectienaam', - 'collections.enterCollectionName' => 'Voer collectienaam in', + 'collections.enterCollectionName' => 'Voer een collectienaam in', 'collections.addedToCollection' => 'Toegevoegd aan collectie', 'collections.errorAddingToCollection' => 'Fout bij toevoegen aan collectie', 'collections.created' => 'Collectie gemaakt', @@ -3075,8 +3083,8 @@ extension on TranslationsNl { 'playlists.playlist' => 'Afspeellijst', 'playlists.noPlaylists' => 'Geen afspeellijsten gevonden', 'playlists.create' => 'Afspeellijst maken', - 'playlists.playlistName' => 'Naam afspeellijst', - 'playlists.enterPlaylistName' => 'Voer naam afspeellijst in', + 'playlists.playlistName' => 'Naam van de afspeellijst', + 'playlists.enterPlaylistName' => 'Voer een naam voor de afspeellijst in', 'playlists.delete' => 'Afspeellijst verwijderen', 'playlists.removeItem' => 'Verwijderen uit afspeellijst', 'playlists.smartPlaylist' => 'Slimme afspeellijst', @@ -3089,17 +3097,17 @@ extension on TranslationsNl { 'playlists.deleted' => 'Afspeellijst verwijderd', 'playlists.itemAdded' => 'Toegevoegd aan afspeellijst', 'playlists.itemRemoved' => 'Verwijderd uit afspeellijst', - 'playlists.selectPlaylist' => 'Selecteer afspeellijst', + 'playlists.selectPlaylist' => 'Afspeellijst selecteren', 'playlists.searchPlaylists' => 'Afspeellijsten zoeken...', - 'playlists.errorCreating' => 'Fout bij maken afspeellijst', - 'playlists.errorDeleting' => 'Fout bij verwijderen afspeellijst', - 'playlists.errorLoading' => 'Fout bij laden afspeellijsten', - 'playlists.errorAdding' => 'Fout bij toevoegen aan afspeellijst', - 'playlists.errorReordering' => 'Fout bij herschikken van afspeellijstitem', - 'playlists.errorRemoving' => 'Fout bij verwijderen uit afspeellijst', + 'playlists.errorCreating' => 'Afspeellijst maken mislukt', + 'playlists.errorDeleting' => 'Afspeellijst verwijderen mislukt', + 'playlists.errorLoading' => 'Afspeellijsten laden mislukt', + 'playlists.errorAdding' => 'Toevoegen aan afspeellijst mislukt', + 'playlists.errorReordering' => 'Afspeellijstitem herschikken mislukt', + 'playlists.errorRemoving' => 'Verwijderen uit afspeellijst mislukt', 'music.goToAlbum' => 'Ga naar album', 'music.goToArtist' => 'Ga naar artiest', - 'music.instantMix' => 'Instant Mix', + 'music.instantMix' => 'Instantmix', 'music.playNext' => 'Hierna afspelen', 'music.addToQueue' => 'Toevoegen aan wachtrij', 'music.discNumber' => ({required Object n}) => 'Schijf ${n}', @@ -3119,20 +3127,20 @@ extension on TranslationsNl { 'music.repeat' => 'Herhalen', 'music.repeatAll' => 'Alles herhalen', 'music.repeatOne' => 'Eén herhalen', - 'watchTogether.title' => 'Samen Kijken', + 'watchTogether.title' => 'Samen kijken', 'watchTogether.description' => 'Kijk synchroon met vrienden en familie', - 'watchTogether.createSession' => 'Sessie Maken', - 'watchTogether.creating' => 'Maken...', - 'watchTogether.joinSession' => 'Sessie Deelnemen', + 'watchTogether.createSession' => 'Sessie maken', + 'watchTogether.creating' => 'Sessie maken...', + 'watchTogether.joinSession' => 'Deelnemen aan sessie', 'watchTogether.joining' => 'Deelnemen...', - 'watchTogether.controlMode' => 'Controlemodus', + 'watchTogether.controlMode' => 'Bedieningsmodus', 'watchTogether.controlModeQuestion' => 'Wie kan het afspelen bedienen?', - 'watchTogether.hostOnly' => 'Alleen Host', + 'watchTogether.hostOnly' => 'Alleen host', 'watchTogether.anyone' => 'Iedereen', - 'watchTogether.hostingSession' => 'Sessie Hosten', - 'watchTogether.inSession' => 'In Sessie', + 'watchTogether.hostingSession' => 'Sessie hosten', + 'watchTogether.inSession' => 'In sessie', 'watchTogether.sessionCode' => 'Sessiecode', - 'watchTogether.openSessionControls' => 'Sessiebesturing voor Samen Kijken openen', + 'watchTogether.openSessionControls' => 'Bediening voor Samen kijken openen', 'watchTogether.copySessionCode' => 'Sessiecode kopiëren', 'watchTogether.hostControlsPlayback' => 'Host bedient het afspelen', 'watchTogether.anyoneCanControl' => 'Iedereen kan het afspelen bedienen', @@ -3143,10 +3151,10 @@ extension on TranslationsNl { 'watchTogether.hostBadge' => 'HOST', 'watchTogether.youAreHost' => 'Jij bent de host', 'watchTogether.watchingWithOthers' => 'Kijken met anderen', - 'watchTogether.endSession' => 'Sessie Beëindigen', - 'watchTogether.leaveSession' => 'Sessie Verlaten', - 'watchTogether.endSessionQuestion' => 'Sessie Beëindigen?', - 'watchTogether.leaveSessionQuestion' => 'Sessie Verlaten?', + 'watchTogether.endSession' => 'Sessie beëindigen', + 'watchTogether.leaveSession' => 'Sessie verlaten', + 'watchTogether.endSessionQuestion' => 'Sessie beëindigen?', + 'watchTogether.leaveSessionQuestion' => 'Sessie verlaten?', 'watchTogether.endSessionConfirm' => 'Dit beëindigt de sessie voor alle deelnemers.', 'watchTogether.leaveSessionConfirm' => 'Je wordt uit de sessie verwijderd.', 'watchTogether.endSessionConfirmOverlay' => 'Dit beëindigt de kijksessie voor alle deelnemers.', @@ -3154,32 +3162,32 @@ extension on TranslationsNl { 'watchTogether.end' => 'Beëindigen', 'watchTogether.leave' => 'Verlaten', 'watchTogether.syncing' => 'Synchroniseren...', - 'watchTogether.joinWatchSession' => 'Kijksessie Deelnemen', - 'watchTogether.enterCodeHint' => 'Voer 5-teken code in', - 'watchTogether.pasteFromClipboard' => 'Plakken van klembord', + 'watchTogether.joinWatchSession' => 'Deelnemen aan kijksessie', + 'watchTogether.enterCodeHint' => 'Voer de code van 5 tekens in', + 'watchTogether.pasteFromClipboard' => 'Plakken vanaf klembord', 'watchTogether.pleaseEnterCode' => 'Voer een sessiecode in', - 'watchTogether.codeMustBe5Chars' => 'Sessiecode moet 5 tekens zijn', + 'watchTogether.codeMustBe5Chars' => 'De sessiecode moet 5 tekens lang zijn', 'watchTogether.joinInstructions' => 'Voer de sessiecode van de host in om deel te nemen.', 'watchTogether.failedToCreate' => 'Sessie maken mislukt', - 'watchTogether.failedToJoin' => 'Sessie deelnemen mislukt', - 'watchTogether.sessionCodeCopied' => 'Sessiecode gekopieerd naar klembord', - 'watchTogether.relayUnreachable' => 'Relay-server onbereikbaar. ISP-blokkering kan Watch Together verhinderen.', + 'watchTogether.failedToJoin' => 'Deelnemen aan sessie mislukt', + 'watchTogether.sessionCodeCopied' => 'Sessiecode naar het klembord gekopieerd', + 'watchTogether.relayUnreachable' => 'De relayserver is onbereikbaar. Een blokkering door je internetprovider kan Samen kijken verhinderen.', 'watchTogether.reconnectingToHost' => 'Opnieuw verbinden met host...', - 'watchTogether.currentPlayback' => 'Huidige weergave', + 'watchTogether.currentPlayback' => 'Wat nu wordt afgespeeld', 'watchTogether.joinCurrentPlayback' => 'Deelnemen aan huidige weergave', 'watchTogether.joinCurrentPlaybackDescription' => 'Ga terug naar wat de host nu kijkt', - 'watchTogether.failedToOpenCurrentPlayback' => 'Huidige weergave kon niet worden geopend', + 'watchTogether.failedToOpenCurrentPlayback' => 'Wat nu wordt afgespeeld kon niet worden geopend', + _ => null, + } ?? switch (path) { 'watchTogether.participantJoined' => ({required Object name}) => '${name} is toegetreden', 'watchTogether.participantLeft' => ({required Object name}) => '${name} heeft de sessie verlaten', 'watchTogether.participantPaused' => ({required Object name}) => '${name} heeft gepauzeerd', 'watchTogether.participantResumed' => ({required Object name}) => '${name} heeft hervat', - _ => null, - } ?? switch (path) { - 'watchTogether.participantSeeked' => ({required Object name}) => '${name} heeft gespoeld', + 'watchTogether.participantSeeked' => ({required Object name}) => '${name} heeft de afspeelpositie gewijzigd', 'watchTogether.participantBuffering' => ({required Object name}) => '${name} is aan het bufferen', 'watchTogether.participantNeedsUpdate' => ({required Object name}) => '${name} gebruikt een oudere appversie — synchronisatie niet beschikbaar', 'watchTogether.resumingWithout' => ({required Object name}) => 'Hervatten zonder ${name}', - 'watchTogether.waitingForParticipants' => 'Wachten tot anderen geladen zijn...', + 'watchTogether.waitingForParticipants' => 'Wachten tot anderen klaar zijn met laden...', 'watchTogether.waitingForName' => ({required Object name}) => 'Wachten op ${name}...', 'watchTogether.recentRooms' => 'Recente kamers', 'watchTogether.renameRoom' => 'Kamer hernoemen', @@ -3193,8 +3201,8 @@ extension on TranslationsNl { 'downloads.music' => 'Muziek', 'downloads.tracksQueued' => ({required Object count}) => '${count} nummers in wachtrij voor download', 'downloads.noDownloads' => 'Nog geen downloads', - 'downloads.noDownloadsDescription' => 'Gedownloade content verschijnt hier voor offline weergave', - 'downloads.downloadNow' => 'Download', + 'downloads.noDownloadsDescription' => 'Gedownloade inhoud verschijnt hier om offline te bekijken', + 'downloads.downloadNow' => 'Downloaden', 'downloads.deleteDownload' => 'Download verwijderen', 'downloads.retryDownload' => 'Download opnieuw proberen', 'downloads.downloadQueued' => 'Download in wachtrij', @@ -3223,15 +3231,15 @@ extension on TranslationsNl { 'downloads.deleteAll' => 'Alles verwijderen', 'downloads.selectVersion' => 'Versie selecteren', 'downloads.allEpisodes' => 'Alle afleveringen', - 'downloads.unwatchedOnly' => 'Alleen onbekeken', - 'downloads.nextNUnwatched' => ({required Object count}) => 'Volgende ${count} onbekeken', + 'downloads.unwatchedOnly' => 'Alleen ongekeken afleveringen', + 'downloads.nextNUnwatched' => ({required Object count}) => 'Volgende ${count} ongekeken afleveringen', 'downloads.customAmount' => 'Aangepast aantal...', - 'downloads.includeSpecials' => 'Specials opnemen', + 'downloads.includeSpecials' => 'Specials meenemen', 'downloads.howManyEpisodes' => 'Hoeveel afleveringen?', 'downloads.invalidEpisodeCount' => 'Voer een geldig aantal afleveringen in.', 'downloads.keepSynced' => 'Gesynchroniseerd houden', 'downloads.downloadOnce' => 'Eenmalig downloaden', - 'downloads.keepNUnwatched' => ({required Object count}) => '${count} onbekeken behouden', + 'downloads.keepNUnwatched' => ({required Object count}) => '${count} ongekeken afleveringen behouden', 'downloads.editSyncRule' => 'Synchronisatieregel bewerken', 'downloads.removeSyncRule' => 'Synchronisatieregel verwijderen', 'downloads.removeSyncRuleConfirm' => ({required Object title}) => 'Synchronisatie van "${title}" stoppen? Gedownloade afleveringen worden behouden.', @@ -3287,13 +3295,13 @@ extension on TranslationsNl { 'companionRemote.pairing.connecting' => 'Verbinden...', 'companionRemote.pairing.searchingForDevices' => 'Apparaten zoeken...', 'companionRemote.pairing.noDevicesFound' => 'Geen apparaten gevonden op je netwerk', - 'companionRemote.pairing.noDevicesHint' => 'Open Plezy op desktop en gebruik dezelfde WiFi', + 'companionRemote.pairing.noDevicesHint' => 'Open Plezy op je desktop en gebruik op beide apparaten dezelfde wifi', 'companionRemote.pairing.availableDevices' => 'Beschikbare apparaten', 'companionRemote.pairing.manualConnection' => 'Handmatige verbinding', 'companionRemote.pairing.cryptoInitFailed' => 'Kon beveiligde verbinding niet starten. Log eerst in bij Plex.', 'companionRemote.pairing.validationHostRequired' => 'Voer het hostadres in', 'companionRemote.pairing.validationHostFormat' => 'Formaat moet IP:poort zijn (bijv. 192.168.1.100:48632)', - 'companionRemote.pairing.connectionTimedOut' => 'Verbinding verlopen. Gebruik hetzelfde netwerk op beide apparaten.', + 'companionRemote.pairing.connectionTimedOut' => 'Er is een time-out opgetreden. Gebruik op beide apparaten hetzelfde netwerk.', 'companionRemote.pairing.sessionNotFound' => 'Apparaat niet gevonden. Zorg dat Plezy op de host draait.', 'companionRemote.pairing.authFailed' => 'Authenticatie mislukt. Beide apparaten hebben hetzelfde Plex-account nodig.', 'companionRemote.pairing.failedToConnect' => ({required Object error}) => 'Kan niet verbinden: ${error}', @@ -3326,31 +3334,31 @@ extension on TranslationsNl { 'companionRemote.remote.searchHint' => 'Zoeken op desktop...', 'companionRemote.errors.noNetworkInterface' => 'Geen netwerkinterface gevonden', 'companionRemote.errors.authenticationFailed' => 'Authenticatie mislukt', - 'companionRemote.errors.serverStartFailed' => ({required Object error}) => 'Kan de externe server niet starten: ${error}', - 'companionRemote.errors.commandFailed' => ({required Object error}) => 'Kan de externe opdracht niet verzenden: ${error}', + 'companionRemote.errors.serverStartFailed' => ({required Object error}) => 'Externe server starten mislukt: ${error}', + 'companionRemote.errors.commandFailed' => ({required Object error}) => 'Externe opdracht verzenden mislukt: ${error}', 'companionRemote.errors.joinTimedOut' => 'Time-out bij deelnemen aan sessie', - 'companionRemote.errors.failedToConnectAnyAddress' => 'Kan met geen enkel adres verbinden', - 'companionRemote.errors.connectionLostAfterAttempts' => ({required Object attempts}) => 'Verbinding verloren na ${attempts} pogingen', + 'companionRemote.errors.failedToConnectAnyAddress' => 'Er kon met geen enkel adres verbinding worden gemaakt', + 'companionRemote.errors.connectionLostAfterAttempts' => ({required Object attempts}) => 'Verbinding verbroken na ${attempts} pogingen', 'companionRemote.errors.connectionLost' => 'Verbinding verloren', 'videoSettings.playbackSpeed' => 'Afspeelsnelheid', 'videoSettings.normalSpeed' => 'Normaal', 'videoSettings.sleepTimerActive' => ({required Object duration}) => 'Actief (${duration})', 'videoSettings.zoom' => 'Zoom', 'videoSettings.sleepTimer' => 'Slaaptimer', - 'videoSettings.audioSync' => 'Audio synchronisatie', - 'videoSettings.subtitleSync' => 'Ondertitel synchronisatie', + 'videoSettings.audioSync' => 'Audiosynchronisatie', + 'videoSettings.subtitleSync' => 'Ondertitelsynchronisatie', 'videoSettings.hdr' => 'HDR', 'videoSettings.audioOutput' => 'Audio-uitvoer', 'videoSettings.performanceOverlay' => 'Prestatie-overlay', 'videoSettings.audioPassthrough' => 'Audio-doorvoer', 'videoSettings.audioNormalization' => 'Volume normaliseren', - 'videoSettings.audioDownmix' => 'Downmix naar stereo', + 'videoSettings.audioDownmix' => 'Downmixen naar stereo', 'performanceOverlay.color' => 'Kleur', 'performanceOverlay.performance' => 'Prestaties', 'performanceOverlay.buffer' => 'Buffer', 'performanceOverlay.app' => 'App', 'performanceOverlay.decoder' => 'Decoder', - 'performanceOverlay.rawDecoder' => 'Raw decoder', + 'performanceOverlay.rawDecoder' => 'Raw-decoder', 'performanceOverlay.tunneling' => 'Tunneling', 'performanceOverlay.aspect' => 'Verhouding', 'performanceOverlay.rotation' => 'Rotatie', @@ -3362,7 +3370,7 @@ extension on TranslationsNl { 'performanceOverlay.hwFormat' => 'HW-formaat', 'performanceOverlay.matrix' => 'Matrix', 'performanceOverlay.primaries' => 'Primaire kleuren', - 'performanceOverlay.transfer' => 'Transfer', + 'performanceOverlay.transfer' => 'Overdracht', 'performanceOverlay.renderFps' => 'Render-FPS', 'performanceOverlay.displayFps' => 'Scherm-FPS', 'performanceOverlay.avSync' => 'A/V-sync', @@ -3399,7 +3407,7 @@ extension on TranslationsNl { 'metadataEdit.editMetadata' => 'Bewerken...', 'metadataEdit.screenTitle' => 'Metadata bewerken', 'metadataEdit.basicInfo' => 'Basisinformatie', - 'metadataEdit.artwork' => 'Artwork', + 'metadataEdit.artwork' => 'Illustraties', 'metadataEdit.advancedSettings' => 'Geavanceerde instellingen', 'metadataEdit.title' => 'Titel', 'metadataEdit.sortTitle' => 'Sorteertitel', @@ -3407,7 +3415,7 @@ extension on TranslationsNl { 'metadataEdit.releaseDate' => 'Releasedatum', 'metadataEdit.contentRating' => 'Leeftijdsclassificatie', 'metadataEdit.studio' => 'Studio', - 'metadataEdit.tagline' => 'Tagline', + 'metadataEdit.tagline' => 'Slogan', 'metadataEdit.summary' => 'Samenvatting', 'metadataEdit.poster' => 'Poster', 'metadataEdit.background' => 'Achtergrond', @@ -3419,19 +3427,19 @@ extension on TranslationsNl { 'metadataEdit.selectSquareArt' => 'Vierkante afbeelding selecteren', 'metadataEdit.fromUrl' => 'Vanaf URL', 'metadataEdit.uploadFile' => 'Bestand uploaden', - 'metadataEdit.enterImageUrl' => 'Voer afbeeldings-URL in', + 'metadataEdit.enterImageUrl' => 'Voer de afbeeldings-URL in', 'metadataEdit.imageUrl' => 'Afbeeldings-URL', 'metadataEdit.metadataUpdated' => 'Metadata bijgewerkt', 'metadataEdit.metadataUpdateFailed' => 'Metadata bijwerken mislukt', - 'metadataEdit.artworkUpdated' => 'Artwork bijgewerkt', - 'metadataEdit.artworkUpdateFailed' => 'Artwork bijwerken mislukt', - 'metadataEdit.noArtworkAvailable' => 'Geen artwork beschikbaar', - 'metadataEdit.artworkOption' => ({required Object index}) => 'Artworkoptie ${index}', - 'metadataEdit.selectedArtworkOption' => ({required Object index}) => 'Artworkoptie ${index}, geselecteerd', + 'metadataEdit.artworkUpdated' => 'Illustraties bijgewerkt', + 'metadataEdit.artworkUpdateFailed' => 'Illustraties bijwerken mislukt', + 'metadataEdit.noArtworkAvailable' => 'Geen illustraties beschikbaar', + 'metadataEdit.artworkOption' => ({required Object index}) => 'Illustratie ${index}', + 'metadataEdit.selectedArtworkOption' => ({required Object index}) => 'Illustratie ${index}, geselecteerd', 'metadataEdit.notSet' => 'Niet ingesteld', - 'metadataEdit.libraryDefault' => 'Bibliotheekstandaard', - 'metadataEdit.accountDefault' => 'Accountstandaard', - 'metadataEdit.seriesDefault' => 'Seriestandaard', + 'metadataEdit.libraryDefault' => 'Standaard van de bibliotheek', + 'metadataEdit.accountDefault' => 'Standaard van het account', + 'metadataEdit.seriesDefault' => 'Standaard van de serie', 'metadataEdit.episodeSorting' => 'Afleveringen sorteren', 'metadataEdit.oldestFirst' => 'Oudste eerst', 'metadataEdit.newestFirst' => 'Nieuwste eerst', @@ -3455,8 +3463,8 @@ extension on TranslationsNl { 'metadataEdit.tvdbAbsolute' => 'TheTVDB (Absoluut)', 'metadataEdit.metadataLanguage' => 'Metadatataal', 'metadataEdit.useOriginalTitle' => 'Oorspronkelijke titel gebruiken', - 'metadataEdit.preferredAudioLanguage' => 'Voorkeurstaal audio', - 'metadataEdit.preferredSubtitleLanguage' => 'Voorkeurstaal ondertiteling', + 'metadataEdit.preferredAudioLanguage' => 'Voorkeurstaal voor audio', + 'metadataEdit.preferredSubtitleLanguage' => 'Voorkeurstaal voor ondertitels', 'metadataEdit.subtitleMode' => 'Automatische ondertitelselectie', 'metadataEdit.manuallySelected' => 'Handmatig geselecteerd', 'metadataEdit.shownWithForeignAudio' => 'Weergeven bij anderstalig geluid', @@ -3475,7 +3483,7 @@ extension on TranslationsNl { 'matchScreen.match' => 'Koppelen...', 'matchScreen.fixMatch' => 'Koppeling herstellen...', 'matchScreen.unmatch' => 'Ontkoppelen', - 'matchScreen.unmatchConfirm' => 'Deze match wissen? Plex behandelt dit als niet-gematcht tot het opnieuw gematcht is.', + 'matchScreen.unmatchConfirm' => 'Deze koppeling wissen? Plex behandelt het item als niet-gekoppeld totdat het opnieuw wordt gekoppeld.', 'matchScreen.unmatchSuccess' => 'Item ontkoppeld', 'matchScreen.unmatchFailed' => 'Kon item niet ontkoppelen', 'matchScreen.matchApplied' => 'Koppeling toegepast', @@ -3491,11 +3499,11 @@ extension on TranslationsNl { 'trakt.connected' => 'Verbonden', 'trakt.connectedAs' => ({required Object username}) => 'Verbonden als @${username}', 'trakt.disconnectConfirm' => 'Trakt-account loskoppelen?', - 'trakt.disconnectConfirmBody' => 'Plezy stopt met gebeurtenissen naar Trakt sturen. Je kunt altijd opnieuw verbinden.', - 'trakt.scrobble' => 'Realtime scrobbling', - 'trakt.scrobbleDescription' => 'Verstuur play-, pauze- en stopgebeurtenissen tijdens afspelen naar Trakt.', - 'trakt.watchedSync' => 'Bekeken-status synchroniseren', - 'trakt.watchedSyncDescription' => 'Wanneer je items als bekeken markeert in Plezy, worden ze ook op Trakt gemarkeerd.', + 'trakt.disconnectConfirmBody' => 'Plezy stuurt geen gebeurtenissen meer naar Trakt. Je kunt op elk moment opnieuw verbinding maken.', + 'trakt.scrobble' => 'Realtime scrobblen', + 'trakt.scrobbleDescription' => 'Stuur tijdens het afspelen gebeurtenissen voor afspelen, pauzeren en stoppen naar Trakt.', + 'trakt.watchedSync' => 'Kijkstatus synchroniseren', + 'trakt.watchedSyncDescription' => 'Wanneer je items in Plezy als bekeken markeert, worden ze op Trakt ook als bekeken gemarkeerd.', 'seerr.title' => 'Seerr', 'seerr.connectTitle' => 'Verbinden met Seerr', 'seerr.serverUrl' => 'Server-URL', @@ -3520,21 +3528,21 @@ extension on TranslationsNl { 'seerr.languageProfile' => 'Taalprofiel', 'seerr.requestSubmitted' => 'Aanvraag verzonden', 'seerr.requestFailed' => ({required Object error}) => 'Aanvraag mislukt: ${error}', - 'seerr.requestsLoadFailed' => 'Kan aanvraagopties niet laden', + 'seerr.requestsLoadFailed' => 'Aanvraagopties konden niet worden geladen', 'seerr.nothingToRequest' => 'Alles is al beschikbaar of aangevraagd.', 'seerr.statusAvailable' => 'Beschikbaar', 'seerr.statusPartiallyAvailable' => 'Gedeeltelijk beschikbaar', 'seerr.statusRequested' => 'Aangevraagd', 'seerr.statusProcessing' => 'Verwerken', - 'services.title' => 'Services', + 'services.title' => 'Diensten', 'services.hubSubtitle' => 'Synchroniseer kijkvoortgang en vraag nieuwe titels aan.', 'services.notConnected' => 'Niet verbonden', 'services.connectedAs' => ({required Object username}) => 'Verbonden als @${username}', 'services.scrobble' => 'Voortgang automatisch volgen', 'services.scrobbleDescription' => 'Werk je lijst bij wanneer je een aflevering of film afrondt.', 'services.disconnectConfirm' => ({required Object service}) => '${service} loskoppelen?', - 'services.disconnectConfirmBody' => ({required Object service}) => 'Plezy stopt met ${service} bijwerken. Je kunt altijd opnieuw verbinden.', - 'services.connectFailed' => ({required Object service}) => 'Kan niet verbinden met ${service}. Probeer opnieuw.', + 'services.disconnectConfirmBody' => ({required Object service}) => 'Plezy werkt ${service} niet meer bij. Je kunt op elk moment opnieuw verbinding maken.', + 'services.connectFailed' => ({required Object service}) => 'Verbinding maken met ${service} is mislukt. Probeer het opnieuw.', 'services.names.mal' => 'MyAnimeList', 'services.names.anilist' => 'AniList', 'services.names.simkl' => 'Simkl', @@ -3556,9 +3564,9 @@ extension on TranslationsNl { 'services.libraryFilter.subtitleBlocked' => ({required Object count}) => '${count} geblokkeerd', 'services.libraryFilter.subtitleAllowed' => ({required Object count}) => '${count} toegestaan', 'services.libraryFilter.mode' => 'Filtermodus', - 'services.libraryFilter.modeBlacklist' => 'Zwarte lijst', - 'services.libraryFilter.modeWhitelist' => 'Witte lijst', - 'services.libraryFilter.modeHintBlacklist' => 'Synchroniseer alle bibliotheken behalve die hieronder aangevinkt zijn.', + 'services.libraryFilter.modeBlacklist' => 'Blokkeerlijst', + 'services.libraryFilter.modeWhitelist' => 'Toelatingslijst', + 'services.libraryFilter.modeHintBlacklist' => 'Synchroniseer alle bibliotheken behalve de hieronder aangevinkte.', 'services.libraryFilter.modeHintWhitelist' => 'Synchroniseer alleen de hieronder aangevinkte bibliotheken.', 'services.libraryFilter.libraries' => 'Bibliotheken', 'services.libraryFilter.noLibraries' => 'Geen bibliotheken beschikbaar', @@ -3577,7 +3585,7 @@ extension on TranslationsNl { 'addServer.signInFailed' => ({required Object error}) => 'Inloggen mislukt: ${error}', 'addServer.quickConnectFailed' => ({required Object error}) => 'Quick Connect mislukt: ${error}', 'addServer.addPlexTitle' => 'Inloggen met Plex', - 'addServer.pinExpired' => 'PIN verlopen vóór inloggen. Probeer opnieuw.', + 'addServer.pinExpired' => 'De pincode verliep voordat je kon inloggen. Probeer het opnieuw.', 'addServer.failedToRegisterAccount' => ({required Object error}) => 'Account registreren mislukt: ${error}', 'addServer.enterJellyfinUrlError' => 'Voer de URL van je Jellyfin-server in', 'addServer.addConnectionTitle' => 'Verbinding toevoegen', @@ -3588,8 +3596,8 @@ extension on TranslationsNl { 'addServer.connectToJellyfinCard' => 'Verbinden met Jellyfin', 'addServer.connectToJellyfinCardSubtitle' => 'Voer je server-URL, gebruikersnaam en wachtwoord in.', 'addServer.connectToJellyfinCardSubtitleScoped' => ({required Object name}) => 'Log in op een Jellyfin-server. Wordt gekoppeld aan ${name}.', - 'addServer.borrowFromAnotherProfile' => 'Lenen van een ander profiel', - 'addServer.borrowFromAnotherProfileSubtitle' => 'Hergebruik de verbinding van een ander profiel. PIN-beveiligde profielen vereisen een PIN.', + 'addServer.borrowFromAnotherProfile' => 'Van een ander profiel lenen', + 'addServer.borrowFromAnotherProfileSubtitle' => 'Hergebruik de verbinding van een ander profiel. Voor profielen met pincodebeveiliging is een pincode vereist.', _ => null, }; } diff --git a/lib/i18n/strings_pl.g.dart b/lib/i18n/strings_pl.g.dart index 4bf70a0a..95609f0a 100644 --- a/lib/i18n/strings_pl.g.dart +++ b/lib/i18n/strings_pl.g.dart @@ -109,7 +109,7 @@ class _Translations$auth$pl extends Translations$auth$en { // Translations @override String get signInWithPlex => 'Zaloguj się przez Plex'; @override String get showQRCode => 'Pokaż kod QR'; - @override String get authenticate => 'Uwierzytelnienie'; + @override String get authenticate => 'Uwierzytelnij'; @override String get authenticationTimeout => 'Upłynął czas uwierzytelniania. Spróbuj ponownie.'; @override String get scanQRToSignIn => 'Zeskanuj ten kod QR, aby się zalogować'; @override String get waitingForAuth => 'Oczekiwanie na uwierzytelnienie...\nZaloguj się w przeglądarce.'; @@ -121,7 +121,7 @@ class _Translations$auth$pl extends Translations$auth$en { @override String get quickConnectWaiting => 'Oczekiwanie na zatwierdzenie…'; @override String get quickConnectCancel => 'Anuluj'; @override String get quickConnectExpired => 'Quick Connect wygasł. Spróbuj ponownie.'; - @override String get localDataRecoveryRequired => 'Plezy could not safely recover local sign-in and pending playback data. Please sign in again.'; + @override String get localDataRecoveryRequired => 'Plezy nie mogło bezpiecznie odzyskać lokalnych danych logowania ani oczekujących danych odtwarzania. Zaloguj się ponownie.'; } // Path: common @@ -149,7 +149,7 @@ class _Translations$common$pl extends Translations$common$en { @override String get edit => 'Edytuj'; @override String get shuffle => 'Losowo'; @override String get addTo => 'Dodaj do...'; - @override String get createNew => 'Utwórz nowy'; + @override String get createNew => 'Utwórz'; @override String get connect => 'Połącz'; @override String get disconnect => 'Rozłącz'; @override String get play => 'Odtwórz'; @@ -175,7 +175,7 @@ class _Translations$common$pl extends Translations$common$en { @override String get loading => 'Ładowanie...'; @override String get fullscreen => 'Pełny ekran'; @override String get exitFullscreen => 'Wyjdź z pełnego ekranu'; - @override String get pressBackAgainToExit => 'Naciśnij wstecz ponownie, aby wyjść'; + @override String get pressBackAgainToExit => 'Naciśnij ponownie przycisk Wstecz, aby wyjść'; } // Path: screens @@ -241,20 +241,22 @@ class _Translations$settings$pl extends Translations$settings$en { @override String get libraryDensity => 'Gęstość biblioteki'; @override String get compact => 'Kompaktowy'; @override String get comfortable => 'Wygodny'; + @override String get tvCornerSpotlightBackdrop => 'Tło wyróżnionej pozycji w rogu'; + @override String get tvCornerSpotlightBackdropDescription => 'Wyświetlaj grafikę wyróżnionej pozycji w prawym górnym rogu zamiast na całym ekranie'; @override String get viewMode => 'Tryb widoku'; @override String get gridView => 'Siatka'; @override String get listView => 'Lista'; @override String get showHeroSection => 'Pokaż sekcję wyróżnioną'; - @override String get continueWatchingAction => 'Akcja Kontynuuj oglądanie'; + @override String get continueWatchingAction => 'Działanie w sekcji „Kontynuuj oglądanie”'; @override String get continueWatchingPlay => 'Odtwórz'; @override String get continueWatchingDetails => 'Otwórz szczegóły'; @override String get episodeAction => 'Akcja odcinka'; @override String get episodePlay => 'Odtwórz'; @override String get episodeDetails => 'Otwórz szczegóły'; @override String get useGlobalHubs => 'Użyj układu strony głównej'; - @override String get useGlobalHubsDescription => 'Pokaż ujednolicone huby ekranu głównego. W przeciwnym razie użyj rekomendacji bibliotek.'; - @override String get showServerNameOnHubs => 'Pokaż nazwę serwera w hubach'; - @override String get showServerNameOnHubsDescription => 'Zawsze pokazuj nazwy serwerów w tytułach hubów.'; + @override String get useGlobalHubsDescription => 'Wyświetlaj ujednolicone sekcje ekranu głównego. W przeciwnym razie używaj rekomendacji bibliotek.'; + @override String get showServerNameOnHubs => 'Pokaż nazwę serwera w sekcjach'; + @override String get showServerNameOnHubsDescription => 'Zawsze pokazuj nazwy serwerów w tytułach sekcji.'; @override String get groupLibrariesByServer => 'Grupuj biblioteki według serwera'; @override String get groupLibrariesByServerDescription => 'Grupuj biblioteki paska bocznego pod każdym serwerem multimediów.'; @override String get alwaysKeepSidebarOpen => 'Zawsze utrzymuj panel boczny otwarty'; @@ -264,7 +266,7 @@ class _Translations$settings$pl extends Translations$settings$en { @override String get showEpisodeNumberOnCards => 'Pokaż numer odcinka na kartach'; @override String get showEpisodeNumberOnCardsDescription => 'Pokazuj numer sezonu i odcinka na kartach odcinków'; @override String get showSeasonPostersOnTabs => 'Pokaż plakaty sezonów na zakładkach'; - @override String get showSeasonPostersOnTabsDescription => 'Pokazuj plakat każdego sezonu nad jego kartą'; + @override String get showSeasonPostersOnTabsDescription => 'Pokazuj plakat każdego sezonu nad jego zakładką'; @override String get tvFullCardLayout => 'Pełne karty TV'; @override String get tvFullCardLayoutDescription => 'Używaj kart TV tylko z obrazem i nałożonymi nazwiskami aktorów'; @override String get focusGlow => 'Poświata zaznaczenia'; @@ -277,14 +279,14 @@ class _Translations$settings$pl extends Translations$settings$en { @override String get visualEffectsReducedDescription => 'Mniej animacji i grafiki o niższej rozdzielczości'; @override String get hideSpoilers => 'Ukryj spoilery nieobejrzanych odcinków'; @override String get hideSpoilersDescription => 'Rozmywaj miniatury i opisy nieobejrzanych odcinków'; - @override String get playerBackend => 'Backend odtwarzacza'; + @override String get playerBackend => 'Mechanizm odtwarzania'; @override String get exoPlayer => 'ExoPlayer'; @override String get mpv => 'mpv'; @override String get hardwareDecoding => 'Dekodowanie sprzętowe'; @override String get hardwareDecodingDescription => 'Użyj akceleracji sprzętowej, gdy dostępna'; @override String get bufferSize => 'Rozmiar bufora'; @override String bufferSizeMB({required Object size}) => '${size}MB'; - @override String get bufferSizeAuto => 'Automatyczny (Zalecany)'; + @override String get bufferSizeAuto => 'Automatyczny (zalecany)'; @override String bufferSizeWarning({required Object heap, required Object size}) => 'Dostępna pamięć: ${heap}MB. Bufor ${size}MB może wpłynąć na odtwarzanie.'; @override String get defaultQualityTitle => 'Domyślna jakość'; @override String get musicQualityTitle => 'Jakość muzyki'; @@ -296,8 +298,8 @@ class _Translations$settings$pl extends Translations$settings$en { @override String secondsUnit({required Object seconds}) => '${seconds} sekund'; @override String get defaultSleepTimer => 'Domyślny wyłącznik czasowy'; @override String minutesUnit({required Object minutes}) => '${minutes} minut'; - @override String get rememberTrackSelections => 'Zapamiętaj wybór ścieżek per serial/film'; - @override String get rememberTrackSelectionsDescription => 'Zapamiętuj wybór audio i napisów dla tytułu'; + @override String get rememberTrackSelections => 'Zapamiętuj wybór ścieżek dla każdego serialu i filmu'; + @override String get rememberTrackSelectionsDescription => 'Zapamiętuj wybór ścieżki dźwiękowej i napisów dla każdego tytułu'; @override String get showChapterMarkersOnTimeline => 'Pokaż znaczniki rozdziałów na pasku przewijania'; @override String get showChapterMarkersOnTimelineDescription => 'Podziel pasek przewijania na granicach rozdziałów'; @override String get clickVideoTogglesPlayback => 'Kliknięcie wideo przełącza odtwarzanie/pauzę'; @@ -307,14 +309,14 @@ class _Translations$settings$pl extends Translations$settings$en { @override String get keyboardShortcutsDescription => 'Dostosuj skróty klawiszowe'; @override String get videoPlayerNavigation => 'Nawigacja odtwarzacza wideo'; @override String get videoPlayerNavigationDescription => 'Użyj klawiszy strzałek do nawigacji kontrolkami odtwarzacza'; - @override String get watchTogetherRelay => 'Relay Oglądaj Razem'; - @override String get watchTogetherRelayDescription => 'Ustaw własny relay. Wszyscy muszą używać tego samego serwera.'; + @override String get watchTogetherRelay => 'Serwer pośredniczący funkcji „Oglądaj razem”'; + @override String get watchTogetherRelayDescription => 'Ustaw własny serwer pośredniczący. Wszyscy muszą korzystać z tego samego serwera.'; @override String get watchTogetherRelayHint => 'https://moj-relay.przyklad.pl'; - @override String get watchTogetherRelayInvalid => 'Enter a valid HTTP or HTTPS relay base URL.'; + @override String get watchTogetherRelayInvalid => 'Wprowadź prawidłowy bazowy adres URL serwera pośredniczącego HTTP lub HTTPS.'; @override String get crashReporting => 'Raportowanie błędów'; @override String get crashReportingDescription => 'Wysyłaj raporty o błędach, aby pomóc ulepszyć aplikację'; - @override String get debugLogging => 'Logowanie debugowania'; - @override String get debugLoggingDescription => 'Włącz szczegółowe logowanie do rozwiązywania problemów'; + @override String get debugLogging => 'Rejestrowanie diagnostyczne'; + @override String get debugLoggingDescription => 'Włącz szczegółowe rejestrowanie, aby ułatwić rozwiązywanie problemów'; @override String get viewLogs => 'Pokaż logi'; @override String get viewLogsDescription => 'Pokaż logi aplikacji'; @override String get clearCache => 'Wyczyść pamięć podręczną'; @@ -322,7 +324,7 @@ class _Translations$settings$pl extends Translations$settings$en { @override String get clearCacheSuccess => 'Pamięć podręczna wyczyszczona'; @override String get resetSettings => 'Zresetuj ustawienia'; @override String get resetSettingsDescription => 'Przywróć ustawienia domyślne. Tego nie można cofnąć.'; - @override String get resetSettingsSuccess => 'Ustawienia zresetowane pomyślnie'; + @override String get resetSettingsSuccess => 'Przywrócono ustawienia domyślne'; @override String get backup => 'Kopia zapasowa'; @override String get exportSettings => 'Eksportuj ustawienia'; @override String get exportSettingsDescription => 'Zapisz swoje preferencje do pliku'; @@ -345,7 +347,7 @@ class _Translations$settings$pl extends Translations$settings$en { @override String validationErrorDuration({required Object min, required Object max, required Object unit}) => 'Czas musi być między ${min} a ${max} ${unit}'; @override String shortcutAlreadyAssigned({required Object action}) => 'Skrót jest już przypisany do ${action}'; @override String shortcutUpdated({required Object action}) => 'Skrót zaktualizowany dla ${action}'; - @override String get saveFailed => 'Could not save changes. Try again.'; + @override String get saveFailed => 'Nie udało się zapisać zmian. Spróbuj ponownie.'; @override String get autoSkip => 'Automatyczne pomijanie'; @override String get autoSkipIntro => 'Automatyczne pomijanie intro'; @override String get autoSkipIntroDescription => 'Automatycznie pomijaj znaczniki intro po kilku sekundach'; @@ -363,20 +365,20 @@ class _Translations$settings$pl extends Translations$settings$en { @override String get regex => 'Wyrażenie regularne'; @override String get downloads => 'Pobrania'; @override String get downloadLocationDescription => 'Wybierz miejsce przechowywania pobranych treści'; - @override String get downloadLocationDefault => 'Domyślne (Pamięć aplikacji)'; + @override String get downloadLocationDefault => 'Domyślne (pamięć aplikacji)'; @override String get downloadLocationCustom => 'Niestandardowa lokalizacja'; @override String get selectFolder => 'Wybierz folder'; @override String get resetToDefault => 'Przywróć domyślne'; @override String currentPath({required Object path}) => 'Bieżąca: ${path}'; @override String get downloadLocationChanged => 'Lokalizacja pobierania zmieniona'; @override String get downloadLocationReset => 'Lokalizacja pobierania przywrócona do domyślnej'; - @override String get downloadLocationInvalid => 'Wybrany folder nie jest zapisywalny'; + @override String get downloadLocationInvalid => 'Nie można zapisywać w wybranym folderze'; @override String get downloadLocationPickerUnavailable => 'Wybór folderu nie jest dostępny na tym urządzeniu'; - @override String get downloadOnWifiOnly => 'Pobieraj tylko przez WiFi'; + @override String get downloadOnWifiOnly => 'Pobieraj tylko przez Wi-Fi'; @override String get downloadOnWifiOnlyDescription => 'Blokuj pobieranie na danych komórkowych'; @override String get autoRemoveWatchedDownloads => 'Automatycznie usuwaj obejrzane pobrania'; @override String get autoRemoveWatchedDownloadsDescription => 'Automatycznie usuwaj obejrzane pobrania'; - @override String get cellularDownloadBlocked => 'Pobieranie przez sieć komórkową jest zablokowane. Użyj WiFi lub zmień ustawienie.'; + @override String get cellularDownloadBlocked => 'Pobieranie przez sieć komórkową jest zablokowane. Użyj Wi-Fi lub zmień ustawienie.'; @override String get maxVolume => 'Maksymalna głośność'; @override String get maxVolumeDescription => 'Pozwól na wzmocnienie głośności powyżej 100% dla cichych multimediów'; @override String maxVolumePercent({required Object percent}) => '${percent}%'; @@ -388,7 +390,7 @@ class _Translations$settings$pl extends Translations$settings$en { @override String get companionRemoteServer => 'Serwer zdalnego sterowania'; @override String get companionRemoteServerDescription => 'Pozwól urządzeniom mobilnym w sieci sterować tą aplikacją'; @override String get autoPip => 'Automatyczny obraz w obrazie'; - @override String get autoPipDescription => 'Włącz obraz w obrazie po opuszczeniu aplikacji podczas odtwarzania'; + @override String get autoPipDescription => 'Automatycznie włączaj tryb obrazu w obrazie po opuszczeniu aplikacji podczas odtwarzania'; @override String get matchContentFrameRate => 'Dopasuj częstotliwość klatek do treści'; @override String get matchContentFrameRateDescription => 'Dopasuj częstotliwość odświeżania ekranu do wideo'; @override String get matchRefreshRate => 'Dopasuj częstotliwość odświeżania'; @@ -398,9 +400,9 @@ class _Translations$settings$pl extends Translations$settings$en { @override String get displaySwitchDelay => 'Opóźnienie przełączania ekranu'; @override String get tunneledPlayback => 'Tunelowane odtwarzanie'; @override String get tunneledPlaybackDescription => 'Użyj tunelowania wideo. Wyłącz, jeśli HDR pokazuje czarny obraz.'; - @override String get audioPassthrough => 'Bezpośrednie audio'; - @override String get audioPassthroughDescription => 'Wysyłaj dźwięk Dolby/DTS do amplitunera lub telewizora bez ponownego kodowania, zachowując dźwięk przestrzenny. Wyłącz, jeśli nie ma dźwięku.'; - @override String get audioPassthroughDescriptionAppleTv => 'Przekazuje Dolby Digital Plus (w tym Atmos) do systemu jako bitstream. DTS i TrueHD nadal odtwarzane są jako wielokanałowe PCM. Podczas przewijania mogą wystąpić krótkie przerwy w dźwięku.'; + @override String get audioPassthrough => 'Przekazywanie dźwięku'; + @override String get audioPassthroughDescription => 'Przesyłaj dźwięk Dolby/DTS do amplitunera lub telewizora bez ponownego kodowania, zachowując dźwięk przestrzenny. Wyłącz tę opcję, jeśli nie słychać dźwięku.'; + @override String get audioPassthroughDescriptionAppleTv => 'Używaj natywnego dekodera Dolby firmy Apple dla Dolby Digital Plus, w tym Atmos. DTS i TrueHD nadal będą odtwarzane jako wielokanałowy dźwięk PCM. Wyłącz tę opcję, jeśli nie słychać dźwięku.'; @override String get audioDownmix => 'Miksowanie do stereo'; @override String get audioDownmixDescription => 'Miksuje dźwięk przestrzenny do dwóch kanałów dla głośników stereo lub słuchawek'; @override String get downmixCenterBoost => 'Wzmocnienie kanału centralnego'; @@ -413,16 +415,16 @@ class _Translations$settings$pl extends Translations$settings$en { @override String get atmosDiagnosticsDescription => 'Diagnozuj wyjście Dolby Atmos, odtwarzając sygnały testowe przez odtwarzacz systemowy'; @override String get atmosTestHlsAtmos => 'Strumień Atmos Apple'; @override String get atmosTestHlsAtmosDescription => 'Sprawdzony strumień Dolby Atmos. Amplituner powinien pokazać Dolby Atmos.'; - @override String get atmosTestHlsControl => 'Strumień surround Apple'; - @override String get atmosTestHlsControlDescription => 'Strumień kontrolny bez Atmos. Amplituner powinien pokazać surround bez Atmos.'; + @override String get atmosTestHlsControl => 'Strumień dźwięku przestrzennego Apple'; + @override String get atmosTestHlsControlDescription => 'Strumień kontrolny bez Atmos. Amplituner powinien wskazywać dźwięk przestrzenny bez Atmos.'; @override String get atmosTestRawStream => 'Surowy strumień EAC3'; - @override String get atmosTestRawStreamDescription => 'Strumieniuje plik testowy dokładnie jak odtwarzanie Atmos w odtwarzaczu. Wymaga URL pliku testowego.'; + @override String get atmosTestRawStreamDescription => 'Przesyła strumieniowo plik testowy dokładnie tak jak podczas odtwarzania Atmos w odtwarzaczu. Wymaga adresu URL pliku testowego.'; @override String get atmosTestRawFile => 'Surowy plik EAC3'; @override String get atmosTestRawFileDescription => 'Odtwarza plik testowy o znanej długości. Wymaga URL pliku testowego.'; @override String get atmosTestStop => 'Zatrzymaj test'; - @override String get atmosTestUrl => 'URL pliku testowego'; - @override String get atmosTestUrlDescription => 'HTTP URL surowego pliku .ec3 Dolby Atmos (np. wyodrębnionego przez ffmpeg)'; - @override String get atmosTestUrlMissing => 'Najpierw ustaw URL pliku testowego'; + @override String get atmosTestUrl => 'Adres URL pliku testowego'; + @override String get atmosTestUrlDescription => 'Adres URL HTTP surowego pliku Dolby Atmos w formacie .ec3 (np. wyodrębnionego za pomocą ffmpeg)'; + @override String get atmosTestUrlMissing => 'Najpierw ustaw adres URL pliku testowego'; @override String get atmosTestStatus => 'Stan'; @override String get dvConversionMode => 'Konwersja Dolby Vision'; @override String get dvConversionModeDescription => 'Wybierz, jak ExoPlayer obsługuje pliki Dolby Vision Profile 7.'; @@ -430,14 +432,14 @@ class _Translations$settings$pl extends Translations$settings$en { @override String get dvConversionNative => 'Natywnie / wyłączone'; @override String get dvConversionDv81 => 'P7 → P8.1'; @override String get dvConversionHevcStrip => 'P7 → HEVC'; - @override String get dvConversionAutoDescription => 'Użyj wykrywania możliwości urządzenia i normalnego zachowania awaryjnego'; + @override String get dvConversionAutoDescription => 'Wykrywaj możliwości urządzenia i stosuj standardowy mechanizm awaryjny'; @override String get dvConversionNativeDescription => 'Wymuś natywne DV7 i wyłącz ponowną próbę konwersji DV'; @override String get dvConversionDv81Description => 'Wymuś wbudowaną konwersję RPU do profilu Dolby Vision 8.1'; @override String get dvConversionHevcStripDescription => 'Usuń warstwy Dolby Vision RPU/EL i przedstaw zwykłe HEVC'; @override String get requireProfileSelectionOnOpen => 'Pytaj o profil przy otwarciu aplikacji'; @override String get requireProfileSelectionOnOpenDescription => 'Pokaż wybór profilu za każdym razem, gdy aplikacja jest otwierana'; @override String get forceTvMode => 'Wymuś tryb TV'; - @override String get forceTvModeDescription => 'Wymuś układ TV. Dla urządzeń bez autodetekcji. Wymaga restartu.'; + @override String get forceTvModeDescription => 'Wymuś układ telewizyjny na urządzeniach, które nie wykrywają go automatycznie. Wymaga ponownego uruchomienia.'; @override String get startInFullscreen => 'Uruchom na pełnym ekranie'; @override String get startInFullscreenDescription => 'Otwiera Plezy w trybie pełnoekranowym przy uruchomieniu'; @override String get exitFullscreenOnPlayerClose => 'Wyjdź z pełnego ekranu przy zamykaniu odtwarzacza'; @@ -503,7 +505,7 @@ class _Translations$fileInfo$pl extends Translations$fileInfo$en { @override String get advanced => 'Zaawansowane'; @override String get codec => 'Kodek'; @override String get resolution => 'Rozdzielczość'; - @override String get bitrate => 'Bitrate'; + @override String get bitrate => 'Przepływność'; @override String get frameRate => 'Klatki na sekundę'; @override String get aspectRatio => 'Proporcje'; @override String get profile => 'Profil'; @@ -511,16 +513,16 @@ class _Translations$fileInfo$pl extends Translations$fileInfo$en { @override String get colorSpace => 'Przestrzeń kolorów'; @override String get colorRange => 'Zakres kolorów'; @override String get colorPrimaries => 'Kolory podstawowe'; - @override String get chromaSubsampling => 'Subsampling chrominancji'; + @override String get chromaSubsampling => 'Podpróbkowanie chrominancji'; @override String get channels => 'Kanały'; @override String get subtitles => 'Napisy'; - @override String get overallBitrate => 'Całkowity bitrate'; + @override String get overallBitrate => 'Całkowita przepływność'; @override String get path => 'Ścieżka'; @override String get size => 'Rozmiar'; @override String get container => 'Kontener'; @override String get duration => 'Czas trwania'; @override String get optimizedForStreaming => 'Zoptymalizowane do strumieniowania'; - @override String get has64bitOffsets => '64-bitowe offsety'; + @override String get has64bitOffsets => 'Przesunięcia 64-bitowe'; } // Path: mediaMenu @@ -541,7 +543,7 @@ class _Translations$mediaMenu$pl extends Translations$mediaMenu$en { @override String get deleteFromServer => 'Usuń z serwera'; @override String get confirmDelete => 'Usunąć to medium i jego pliki z serwera?'; @override String get deleteMultipleWarning => 'Obejmuje to wszystkie odcinki i ich pliki.'; - @override String get mediaDeletedSuccessfully => 'Element multimedialny usunięty pomyślnie'; + @override String get mediaDeletedSuccessfully => 'Usunięto element multimedialny'; @override String get mediaFailedToDelete => 'Nie udało się usunąć elementu multimedialnego'; @override String get rate => 'Oceń'; @override String get playFromBeginning => 'Odtwórz od początku'; @@ -576,7 +578,7 @@ class _Translations$accessibility$pl extends Translations$accessibility$en { @override String mediaCardEpisode({required Object title, required Object episodeInfo}) => '${title}, ${episodeInfo}'; @override String mediaCardSeason({required Object title, required Object seasonInfo}) => '${title}, ${seasonInfo}'; @override String get mediaCardWatched => 'obejrzane'; - @override String mediaCardPartiallyWatched({required Object percent}) => '${percent} procent obejrzane'; + @override String mediaCardPartiallyWatched({required Object percent}) => 'obejrzano w ${percent} procentach'; @override String get mediaCardUnwatched => 'nieobejrzane'; @override String get tapToPlay => 'Dotknij, aby odtworzyć'; @override String get decrease => 'Zmniejsz'; @@ -627,13 +629,13 @@ class _Translations$videoControls$pl extends Translations$videoControls$en { // Translations @override String get audioLabel => 'Audio'; @override String get subtitlesLabel => 'Napisy'; - @override String get resetToZero => 'Zresetuj do 0ms'; + @override String get resetToZero => 'Zresetuj do 0 ms'; @override String addTime({required Object amount, required Object unit}) => '+${amount}${unit}'; @override String minusTime({required Object amount, required Object unit}) => '-${amount}${unit}'; - @override String playsLater({required Object label}) => '${label} odtwarza później'; - @override String playsEarlier({required Object label}) => '${label} odtwarza wcześniej'; + @override String playsLater({required Object label}) => '${label}: później'; + @override String playsEarlier({required Object label}) => '${label}: wcześniej'; @override String get noOffset => 'Bez przesunięcia'; - @override String get letterbox => 'Letterbox'; + @override String get letterbox => 'Pasy wokół obrazu'; @override String get fillScreen => 'Wypełnij ekran'; @override String get stretch => 'Rozciągnij'; @override String get lockRotation => 'Zablokuj obrót'; @@ -641,7 +643,7 @@ class _Translations$videoControls$pl extends Translations$videoControls$en { @override String get timerActive => 'Wyłącznik aktywny'; @override String playbackWillPauseIn({required Object duration}) => 'Odtwarzanie zatrzyma się za ${duration}'; @override String get sleepTimerEndOfVideo => 'Koniec bieżącego wideo'; - @override String get sleepTimerStopAtHeader => 'Zatrzymaj na'; + @override String get sleepTimerStopAtHeader => 'Zatrzymaj o'; @override String get sleepTimerDurationHeader => 'Minutnik'; @override String get playbackWillPauseAtEnd => 'Odtwarzanie zatrzyma się na końcu tego wideo'; @override String get stillWatching => 'Nadal oglądasz?'; @@ -651,6 +653,8 @@ class _Translations$videoControls$pl extends Translations$videoControls$en { @override String get playNext => 'Odtwórz następny'; @override String get playButton => 'Odtwórz'; @override String get pauseButton => 'Pauza'; + @override String get showPlaybackControls => 'Pokaż elementy sterujące odtwarzaniem'; + @override String get hidePlaybackControls => 'Ukryj elementy sterujące odtwarzaniem'; @override String seekBackwardButton({required Object seconds}) => 'Przewiń do tyłu o ${seconds} sekund'; @override String seekForwardButton({required Object seconds}) => 'Przewiń do przodu o ${seconds} sekund'; @override String get previousButton => 'Poprzedni odcinek'; @@ -685,7 +689,7 @@ class _Translations$videoControls$pl extends Translations$videoControls$en { @override String get pipActive => 'Odtwarzanie w trybie obraz w obrazie'; @override String get pipFailed => 'Nie udało się uruchomić trybu obraz w obrazie'; @override String get screenshotSaved => 'Zrzut ekranu zapisany'; - @override String zoomPercent({required Object percent}) => 'Zoom ${percent}%'; + @override String zoomPercent({required Object percent}) => 'Powiększenie ${percent}%'; @override late final _Translations$videoControls$pipErrors$pl pipErrors = _Translations$videoControls$pipErrors$pl._(_root); @override String get chapters => 'Rozdziały'; @override String get noChaptersAvailable => 'Brak dostępnych rozdziałów'; @@ -726,11 +730,11 @@ class _Translations$messages$pl extends Translations$messages$en { @override String get streamInterrupted => 'Strumień został przerwany. Naciśnij odtwarzanie lub przewiń, aby spróbować ponownie.'; @override String get liveStreamInterrupted => 'Transmisja na żywo została przerwana. Naciśnij odtwarzanie, aby spróbować ponownie.'; @override String get fileInfoNotAvailable => 'Informacje o pliku niedostępne'; - @override String get playbackAuthenticationRequired => 'Sign in to the media server again to play this item.'; - @override String get playbackServerUnavailable => 'The media server is unavailable. Try again later.'; - @override String get playbackDataInvalid => 'The server returned invalid playback information.'; - @override String get playbackCancelled => 'Playback was cancelled.'; - @override String get playbackFailed => 'Playback could not be started.'; + @override String get playbackAuthenticationRequired => 'Zaloguj się ponownie na serwerze multimediów, aby odtworzyć ten element.'; + @override String get playbackServerUnavailable => 'Serwer multimediów jest niedostępny. Spróbuj ponownie później.'; + @override String get playbackDataInvalid => 'Serwer zwrócił nieprawidłowe informacje o odtwarzaniu.'; + @override String get playbackCancelled => 'Odtwarzanie zostało anulowane.'; + @override String get playbackFailed => 'Nie udało się rozpocząć odtwarzania.'; @override String errorLoadingFileInfo({required Object error}) => 'Błąd ładowania informacji o pliku: ${error}'; @override String get errorLoadingSeries => 'Błąd ładowania serialu'; @override String get musicNotSupported => 'Odtwarzanie muzyki nie jest jeszcze obsługiwane'; @@ -805,17 +809,17 @@ class _Translations$mpvConfig$pl extends Translations$mpvConfig$en { // Translations @override String get title => 'mpv.conf'; @override String get description => 'Zaawansowane ustawienia odtwarzacza wideo'; - @override String get presets => 'Presety'; - @override String get noPresets => 'Brak zapisanych presetów'; - @override String get saveAsPreset => 'Zapisz jako preset...'; - @override String get presetName => 'Nazwa presetu'; - @override String get presetNameHint => 'Wprowadź nazwę dla tego presetu'; - @override String get loadPreset => 'Załaduj'; + @override String get presets => 'Ustawienia wstępne'; + @override String get noPresets => 'Brak zapisanych ustawień wstępnych'; + @override String get saveAsPreset => 'Zapisz jako ustawienie wstępne...'; + @override String get presetName => 'Nazwa ustawienia wstępnego'; + @override String get presetNameHint => 'Wprowadź nazwę tego ustawienia wstępnego'; + @override String get loadPreset => 'Wczytaj'; @override String get deletePreset => 'Usuń'; - @override String get presetSaved => 'Preset zapisany'; - @override String get presetLoaded => 'Preset załadowany'; - @override String get presetDeleted => 'Preset usunięty'; - @override String get confirmDeletePreset => 'Czy na pewno chcesz usunąć ten preset?'; + @override String get presetSaved => 'Zapisano ustawienie wstępne'; + @override String get presetLoaded => 'Wczytano ustawienie wstępne'; + @override String get presetDeleted => 'Usunięto ustawienie wstępne'; + @override String get confirmDeletePreset => 'Czy na pewno chcesz usunąć to ustawienie wstępne?'; @override String get configPlaceholder => 'gpu-api=vulkan\nhwdec=auto\n# comment'; } @@ -849,9 +853,9 @@ class _Translations$profiles$pl extends Translations$profiles$en { @override String get signedOutPlex => 'Wylogowano z Plex.'; @override String get signOutFailed => 'Wylogowanie nie powiodło się.'; @override String get sectionTitle => 'Profile'; - @override String get summarySingle => 'Dodaj profile, aby łączyć zarządzanych użytkowników i tożsamości lokalne'; - @override String summaryMultipleWithActive({required Object count, required Object activeName}) => '${count} profili · aktywny: ${activeName}'; - @override String summaryMultiple({required Object count}) => '${count} profili'; + @override String get summarySingle => 'Dodaj profile, aby łączyć użytkowników zarządzanych z profilami lokalnymi'; + @override String summaryMultipleWithActive({required Object count, required Object activeName}) => 'Liczba profili: ${count} · aktywny: ${activeName}'; + @override String summaryMultiple({required Object count}) => 'Liczba profili: ${count}'; @override String get removeConnectionTitle => 'Usunąć połączenie?'; @override String removeConnectionMessage({required Object displayName, required Object connectionLabel}) => 'Usuń dostęp ${displayName} do ${connectionLabel}. Inne profile go zachowają.'; @override String get deleteProfileTitle => 'Usunąć profil?'; @@ -878,13 +882,13 @@ class _Translations$profiles$pl extends Translations$profiles$en { @override String get removeConnection => 'Usuń'; @override String get profileRenamed => 'Zmieniono nazwę profilu.'; @override String borrowAddTo({required Object displayName}) => 'Dodaj do ${displayName}'; - @override String get borrowExplain => 'Pożycz połączenie z innego profilu. Profile chronione PIN wymagają PIN-u.'; - @override String get borrowEmpty => 'Nic do pożyczenia.'; + @override String get borrowExplain => 'Skorzystaj z połączenia innego profilu. Profile chronione PIN-em wymagają podania PIN-u.'; + @override String get borrowEmpty => 'Nie ma jeszcze żadnych dostępnych połączeń.'; @override String get borrowEmptySubtitle => 'Najpierw połącz Plex lub Jellyfin z innym profilem.'; - @override String get borrowLoadFailed => 'Available connections could not be loaded. Try again.'; - @override String borrowFromProfile({required Object displayName}) => 'Od ${displayName}'; - @override String get borrowConnectionBorrowed => 'Połączenie pożyczone.'; - @override String get borrowFailed => 'Nie udało się pożyczyć połączenia.'; + @override String get borrowLoadFailed => 'Nie udało się wczytać dostępnych połączeń. Spróbuj ponownie.'; + @override String borrowFromProfile({required Object displayName}) => 'Z profilu ${displayName}'; + @override String get borrowConnectionBorrowed => 'Dodano połączenie z innego profilu.'; + @override String get borrowFailed => 'Nie udało się dodać połączenia z innego profilu.'; @override String get incorrectPin => 'Nieprawidłowy PIN.'; @override String get incorrectPinTryAgain => 'Nieprawidłowy PIN. Spróbuj ponownie.'; @override String get sourceProfileMissingParentAccount => 'Profil źródłowy nie ma konta nadrzędnego.'; @@ -943,7 +947,7 @@ class _Translations$discover$pl extends Translations$discover$en { @override String get rating => 'Ocena'; @override String get movie => 'Film'; @override String get tvShow => 'Serial TV'; - @override String minutesLeft({required Object minutes}) => '${minutes} min pozostało'; + @override String minutesLeft({required Object minutes}) => 'Pozostało ${minutes} min'; @override String get moreLikeThis => 'Więcej podobnych'; } @@ -992,7 +996,7 @@ class _Translations$libraries$pl extends Translations$libraries$en { @override String get allLibrariesHidden => 'Wszystkie biblioteki są ukryte'; @override String hiddenLibrariesCount({required Object count}) => 'Ukryte biblioteki (${count})'; @override String get thisLibraryIsEmpty => 'Ta biblioteka jest pusta'; - @override String get noItemsMatchFilters => 'Żadne elementy nie pasują do aktywnych filtrów'; + @override String get noItemsMatchFilters => 'Żaden element nie pasuje do aktywnych filtrów'; @override String get resetFilters => 'Resetuj filtry'; @override String get all => 'Wszystkie'; @override String get clearAll => 'Wyczyść wszystko'; @@ -1029,10 +1033,10 @@ class _Translations$about$pl extends Translations$about$en { // Translations @override String get title => 'O aplikacji'; - @override String get openSourceLicenses => 'Licencje open source'; + @override String get openSourceLicenses => 'Licencje oprogramowania open source'; @override String versionLabel({required Object version}) => 'Wersja ${version}'; - @override String get appDescription => 'Piękny klient Plex i Jellyfin na Flutter'; - @override String get viewLicensesDescription => 'Zobacz licencje bibliotek zewnętrznych'; + @override String get appDescription => 'Piękny klient Plex i Jellyfin stworzony we Flutterze'; + @override String get viewLicensesDescription => 'Wyświetl licencje bibliotek innych firm'; } // Path: serverSelection @@ -1082,7 +1086,7 @@ class _Translations$licenses$pl extends Translations$licenses$en { @override String get relatedPackages => 'Powiązane pakiety'; @override String get license => 'Licencja'; @override String licenseNumber({required Object number}) => 'Licencja ${number}'; - @override String licensesCount({required Object count}) => '${count} licencji'; + @override String licensesCount({required Object count}) => 'Liczba licencji: ${count}'; } // Path: navigation @@ -1167,11 +1171,11 @@ class _Translations$liveTv$pl extends Translations$liveTv$en { @override String get favorites => 'Ulubione'; @override String get reorderFavorites => 'Zmień kolejność ulubionych'; @override String get favoritesLoadFailed => 'Nie udało się wczytać ulubionych. Sprawdź połączenie i spróbuj ponownie.'; - @override String get favoritesUpdateFailed => 'Could not update favorites. Check your connection and try again.'; + @override String get favoritesUpdateFailed => 'Nie udało się zaktualizować ulubionych. Sprawdź połączenie i spróbuj ponownie.'; @override String get joinSession => 'Dołącz do trwającej sesji'; @override String watchFromStart({required Object minutes}) => 'Oglądaj od początku (${minutes} min temu)'; @override String get watchLive => 'Oglądaj na żywo'; - @override String get goToLive => 'Przejdź do na żywo'; + @override String get goToLive => 'Przejdź do transmisji na żywo'; @override String get record => 'Nagraj'; @override String get recordEpisode => 'Nagraj odcinek'; @override String get recordSeries => 'Nagraj serial'; @@ -1280,7 +1284,7 @@ class _Translations$music$pl extends Translations$music$en { // Translations @override String get goToAlbum => 'Przejdź do albumu'; @override String get goToArtist => 'Przejdź do wykonawcy'; - @override String get instantMix => 'Błyskawiczny miks'; + @override String get instantMix => 'Miks błyskawiczny'; @override String get playNext => 'Odtwórz następny'; @override String get addToQueue => 'Dodaj do kolejki'; @override String discNumber({required Object n}) => 'Płyta ${n}'; @@ -1294,8 +1298,8 @@ class _Translations$music$pl extends Translations$music$en { @override String playingFrom({required Object title}) => 'Odtwarzanie z ${title}'; @override String get queue => 'Kolejka'; @override String get clearQueue => 'Wyczyść kolejkę'; - @override String get lyrics => 'Tekst'; - @override String get noLyrics => 'Brak dostępnego tekstu'; + @override String get lyrics => 'Tekst utworu'; + @override String get noLyrics => 'Brak tekstu utworu'; @override String get sleepTimer => 'Wyłącznik czasowy'; @override String get sleepTimerEndOfTrack => 'Koniec utworu'; @override String sleepTimerMinutes({required Object n}) => '${n} minut'; @@ -1315,28 +1319,28 @@ class _Translations$watchTogether$pl extends Translations$watchTogether$en { // Translations @override String get title => 'Oglądaj razem'; - @override String get description => 'Oglądaj treści zsynchronizowane z przyjaciółmi i rodziną'; + @override String get description => 'Oglądaj treści wspólnie z rodziną i znajomymi dzięki synchronizacji odtwarzania'; @override String get createSession => 'Utwórz sesję'; @override String get creating => 'Tworzenie...'; @override String get joinSession => 'Dołącz do sesji'; @override String get joining => 'Dołączanie...'; @override String get controlMode => 'Tryb kontroli'; @override String get controlModeQuestion => 'Kto może kontrolować odtwarzanie?'; - @override String get hostOnly => 'Tylko host'; + @override String get hostOnly => 'Tylko gospodarz'; @override String get anyone => 'Każdy'; - @override String get hostingSession => 'Hostowanie sesji'; + @override String get hostingSession => 'Prowadzenie sesji'; @override String get inSession => 'W sesji'; @override String get sessionCode => 'Kod sesji'; @override String get openSessionControls => 'Otwórz sterowanie sesją „Oglądaj razem”'; @override String get copySessionCode => 'Skopiuj kod sesji'; - @override String get hostControlsPlayback => 'Host kontroluje odtwarzanie'; - @override String get anyoneCanControl => 'Każdy może kontrolować odtwarzanie'; - @override String get hostControls => 'Kontrola hosta'; - @override String get anyoneControls => 'Kontrola każdego'; + @override String get hostControlsPlayback => 'Gospodarz steruje odtwarzaniem'; + @override String get anyoneCanControl => 'Każdy może sterować odtwarzaniem'; + @override String get hostControls => 'Steruje gospodarz'; + @override String get anyoneControls => 'Steruje każdy'; @override String get participants => 'Uczestnicy'; - @override String get host => 'Host'; - @override String get hostBadge => 'HOST'; - @override String get youAreHost => 'Jesteś hostem'; + @override String get host => 'Gospodarz'; + @override String get hostBadge => 'GOSPODARZ'; + @override String get youAreHost => 'Jesteś gospodarzem'; @override String get watchingWithOthers => 'Oglądasz z innymi'; @override String get endSession => 'Zakończ sesję'; @override String get leaveSession => 'Opuść sesję'; @@ -1358,17 +1362,17 @@ class _Translations$watchTogether$pl extends Translations$watchTogether$en { @override String get failedToCreate => 'Nie udało się utworzyć sesji'; @override String get failedToJoin => 'Nie udało się dołączyć do sesji'; @override String get sessionCodeCopied => 'Kod sesji skopiowany do schowka'; - @override String get relayUnreachable => 'Serwer relay jest nieosiągalny. Blokada ISP może uniemożliwiać Watch Together.'; - @override String get reconnectingToHost => 'Ponowne łączenie z hostem...'; + @override String get relayUnreachable => 'Serwer pośredniczący jest nieosiągalny. Blokada operatora internetowego może uniemożliwiać korzystanie z funkcji „Oglądaj razem”.'; + @override String get reconnectingToHost => 'Ponowne łączenie z gospodarzem...'; @override String get currentPlayback => 'Bieżące odtwarzanie'; @override String get joinCurrentPlayback => 'Dołącz do bieżącego odtwarzania'; - @override String get joinCurrentPlaybackDescription => 'Wróć do tego, co host aktualnie ogląda'; + @override String get joinCurrentPlaybackDescription => 'Wróć do treści oglądanej obecnie przez gospodarza'; @override String get failedToOpenCurrentPlayback => 'Nie udało się otworzyć bieżącego odtwarzania'; @override String participantJoined({required Object name}) => '${name} dołączył'; @override String participantLeft({required Object name}) => '${name} opuścił'; @override String participantPaused({required Object name}) => '${name} wstrzymał'; @override String participantResumed({required Object name}) => '${name} wznowił'; - @override String participantSeeked({required Object name}) => '${name} przewinął'; + @override String participantSeeked({required Object name}) => '${name} zmienił pozycję odtwarzania'; @override String participantBuffering({required Object name}) => '${name} buforuje'; @override String participantNeedsUpdate({required Object name}) => '${name} używa starszej wersji aplikacji — synchronizacja jest niedostępna'; @override String resumingWithout({required Object name}) => 'Wznawianie bez ${name}'; @@ -1427,7 +1431,7 @@ class _Translations$downloads$pl extends Translations$downloads$en { @override String get allEpisodes => 'Wszystkie odcinki'; @override String get unwatchedOnly => 'Tylko nieobejrzane'; @override String nextNUnwatched({required Object count}) => 'Następne ${count} nieobejrzanych'; - @override String get customAmount => 'Własna ilość...'; + @override String get customAmount => 'Własna liczba...'; @override String get includeSpecials => 'Uwzględnij odcinki specjalne'; @override String get howManyEpisodes => 'Ile odcinków?'; @override String get invalidEpisodeCount => 'Wprowadź prawidłową liczbę odcinków.'; @@ -1446,11 +1450,11 @@ class _Translations$downloads$pl extends Translations$downloads$en { @override String get manageSyncRule => 'Zarządzaj synchronizacją'; @override String get editEpisodeCount => 'Liczba odcinków'; @override String get editSyncFilter => 'Filtr synchronizacji'; - @override String get syncAllItems => 'Synchronizuję wszystkie elementy'; - @override String get syncUnwatchedItems => 'Synchronizuję nieobejrzane elementy'; + @override String get syncAllItems => 'Synchronizacja wszystkich elementów'; + @override String get syncUnwatchedItems => 'Synchronizacja nieobejrzanych elementów'; @override String syncRuleServerContext({required Object server, required Object status}) => 'Serwer: ${server} • ${status}'; @override String get syncRuleAvailable => 'Dostępne'; - @override String get syncRuleOffline => 'Offline'; + @override String get syncRuleOffline => 'Brak połączenia'; @override String get syncRuleSignInRequired => 'Wymagane logowanie'; @override String get syncRuleNotAvailableForProfile => 'Niedostępne dla bieżącego profilu'; @override String get syncRuleUnknownServer => 'Nieznany serwer'; @@ -1488,7 +1492,7 @@ class _Translations$companionRemote$pl extends Translations$companionRemote$en { final TranslationsPl _root; // ignore: unused_field // Translations - @override String get title => 'Pilot zdalny'; + @override String get title => 'Pilot'; @override String connectedTo({required Object name}) => 'Połączono z ${name}'; @override String get unknownDevice => 'Nieznane urządzenie'; @override late final _Translations$companionRemote$session$pl session = _Translations$companionRemote$session$pl._(_root); @@ -1507,14 +1511,14 @@ class _Translations$videoSettings$pl extends Translations$videoSettings$en { @override String get playbackSpeed => 'Prędkość odtwarzania'; @override String get normalSpeed => 'Normalna'; @override String sleepTimerActive({required Object duration}) => 'Aktywny (${duration})'; - @override String get zoom => 'Zoom'; + @override String get zoom => 'Powiększenie'; @override String get sleepTimer => 'Wyłącznik czasowy'; @override String get audioSync => 'Synchronizacja audio'; @override String get subtitleSync => 'Synchronizacja napisów'; @override String get hdr => 'HDR'; @override String get audioOutput => 'Wyjście audio'; @override String get performanceOverlay => 'Nakładka wydajności'; - @override String get audioPassthrough => 'Bezpośrednie audio'; + @override String get audioPassthrough => 'Przekazywanie dźwięku'; @override String get audioNormalization => 'Normalizacja głośności'; @override String get audioDownmix => 'Miksowanie do stereo'; } @@ -1543,11 +1547,11 @@ class _Translations$performanceOverlay$pl extends Translations$performanceOverla @override String get hwFormat => 'Format HW'; @override String get matrix => 'Macierz'; @override String get primaries => 'Barwy podstawowe'; - @override String get transfer => 'Transfer'; + @override String get transfer => 'Charakterystyka przenoszenia'; @override String get renderFps => 'FPS renderowania'; @override String get displayFps => 'FPS ekranu'; - @override String get avSync => 'Sync A/V'; - @override String get dropped => 'Porzucone'; + @override String get avSync => 'Synchronizacja A/V'; + @override String get dropped => 'Pominięte'; @override String get dvRpus => 'DV RPU'; @override String get dvRpuAverage => 'Śr. DV RPU'; @override String get dvSampleAverage => 'Śr. próbki DV'; @@ -1555,8 +1559,8 @@ class _Translations$performanceOverlay$pl extends Translations$performanceOverla @override String get minLuma => 'Min. luma'; @override String get maxCll => 'MaxCLL'; @override String get maxFall => 'MaxFALL'; - @override String get cacheUsed => 'Użyty cache'; - @override String get cacheLimit => 'Limit cache\'u'; + @override String get cacheUsed => 'Użyta pamięć podręczna'; + @override String get cacheLimit => 'Limit pamięci podręcznej'; @override String get speed => 'Szybkość'; @override String get player => 'Odtwarzacz'; @override String get memory => 'Pamięć'; @@ -1606,7 +1610,7 @@ class _Translations$metadataEdit$pl extends Translations$metadataEdit$en { @override String get releaseDate => 'Data premiery'; @override String get contentRating => 'Klasyfikacja wiekowa'; @override String get studio => 'Studio'; - @override String get tagline => 'Tagline'; + @override String get tagline => 'Slogan'; @override String get summary => 'Opis'; @override String get poster => 'Plakat'; @override String get background => 'Tło'; @@ -1628,9 +1632,9 @@ class _Translations$metadataEdit$pl extends Translations$metadataEdit$en { @override String artworkOption({required Object index}) => 'Opcja grafiki ${index}'; @override String selectedArtworkOption({required Object index}) => 'Opcja grafiki ${index}, wybrana'; @override String get notSet => 'Nie ustawiono'; - @override String get libraryDefault => 'Domyślne biblioteki'; - @override String get accountDefault => 'Domyślne konta'; - @override String get seriesDefault => 'Domyślne serialu'; + @override String get libraryDefault => 'Domyślne dla biblioteki'; + @override String get accountDefault => 'Domyślne dla konta'; + @override String get seriesDefault => 'Domyślne dla serialu'; @override String get episodeSorting => 'Sortowanie odcinków'; @override String get oldestFirst => 'Najstarsze najpierw'; @override String get newestFirst => 'Najnowsze najpierw'; @@ -1649,16 +1653,16 @@ class _Translations$metadataEdit$pl extends Translations$metadataEdit$en { @override String get show => 'Pokaż'; @override String get hide => 'Ukryj'; @override String get episodeOrdering => 'Kolejność odcinków'; - @override String get tmdbAiring => 'The Movie Database (Emisja)'; - @override String get tvdbAiring => 'TheTVDB (Emisja)'; - @override String get tvdbAbsolute => 'TheTVDB (Absolutna)'; + @override String get tmdbAiring => 'The Movie Database (kolejność emisji)'; + @override String get tvdbAiring => 'TheTVDB (kolejność emisji)'; + @override String get tvdbAbsolute => 'TheTVDB (numeracja bezwzględna)'; @override String get metadataLanguage => 'Język metadanych'; @override String get useOriginalTitle => 'Użyj oryginalnego tytułu'; @override String get preferredAudioLanguage => 'Preferowany język audio'; @override String get preferredSubtitleLanguage => 'Preferowany język napisów'; @override String get subtitleMode => 'Tryb automatycznego wyboru napisów'; @override String get manuallySelected => 'Wybrany ręcznie'; - @override String get shownWithForeignAudio => 'Wyświetlane przy obcojęzycznym audio'; + @override String get shownWithForeignAudio => 'Wyświetlane przy dźwięku w obcym języku'; @override String get alwaysEnabled => 'Zawsze włączone'; @override String get tags => 'Tagi'; @override String get addTag => 'Dodaj tag'; @@ -1683,7 +1687,7 @@ class _Translations$matchScreen$pl extends Translations$matchScreen$en { @override String get match => 'Dopasuj...'; @override String get fixMatch => 'Popraw dopasowanie...'; @override String get unmatch => 'Usuń dopasowanie'; - @override String get unmatchConfirm => 'Wyczyścić to dopasowanie? Plex uzna je za niedopasowane do ponownego dopasowania.'; + @override String get unmatchConfirm => 'Usunąć to dopasowanie? Plex będzie traktować element jako niedopasowany, dopóki nie zostanie dopasowany ponownie.'; @override String get unmatchSuccess => 'Dopasowanie usunięte'; @override String get unmatchFailed => 'Nie udało się usunąć dopasowania'; @override String get matchApplied => 'Dopasowanie zastosowane'; @@ -1717,11 +1721,11 @@ class _Translations$trakt$pl extends Translations$trakt$en { @override String get connected => 'Połączono'; @override String connectedAs({required Object username}) => 'Połączono jako @${username}'; @override String get disconnectConfirm => 'Rozłączyć konto Trakt?'; - @override String get disconnectConfirmBody => 'Plezy przestanie wysyłać zdarzenia do Trakt. Możesz połączyć ponownie w dowolnym momencie.'; - @override String get scrobble => 'Scrobbling w czasie rzeczywistym'; - @override String get scrobbleDescription => 'Wysyłaj zdarzenia odtwarzania, pauzy i zatrzymania do Trakt podczas odtwarzania.'; - @override String get watchedSync => 'Synchronizuj status obejrzane'; - @override String get watchedSyncDescription => 'Gdy oznaczysz pozycje jako obejrzane w Plezy, zostaną też oznaczone w Trakt.'; + @override String get disconnectConfirmBody => 'Plezy przestanie wysyłać zdarzenia do serwisu Trakt. Połączenie można przywrócić w dowolnym momencie.'; + @override String get scrobble => 'Śledzenie odtwarzania w czasie rzeczywistym'; + @override String get scrobbleDescription => 'Wysyłaj do serwisu Trakt zdarzenia odtwarzania, wstrzymania i zatrzymania.'; + @override String get watchedSync => 'Synchronizuj stan obejrzenia'; + @override String get watchedSyncDescription => 'Gdy oznaczysz element jako obejrzany w Plezy, zostanie on również oznaczony jako obejrzany w serwisie Trakt.'; } // Path: seerr @@ -1793,8 +1797,8 @@ class _Translations$addServer$pl extends Translations$addServer$en { // Translations @override String get addJellyfinTitle => 'Dodaj serwer Jellyfin'; - @override String get serverUrls => 'URL-e serwera'; - @override String get serverUrlsHelper => 'Można podać wiele adresów URL, rozdzielonych przecinkami.'; + @override String get serverUrls => 'Adresy URL serwera'; + @override String get serverUrlsHelper => 'Można podać wiele adresów URL rozdzielonych przecinkami.'; @override String get findServer => 'Znajdź serwer'; @override String get searchingLocalServers => 'Szukanie lokalnych serwerów Jellyfin...'; @override String get localServers => 'Lokalne serwery Jellyfin'; @@ -1819,7 +1823,7 @@ class _Translations$addServer$pl extends Translations$addServer$en { @override String get connectToJellyfinCardSubtitle => 'Wpisz URL serwera, nazwę użytkownika i hasło.'; @override String connectToJellyfinCardSubtitleScoped({required Object name}) => 'Zaloguj się do serwera Jellyfin. Powiązane z ${name}.'; @override String get borrowFromAnotherProfile => 'Pożycz z innego profilu'; - @override String get borrowFromAnotherProfileSubtitle => 'Użyj połączenia z innego profilu. Profile chronione PIN wymagają PIN-u.'; + @override String get borrowFromAnotherProfileSubtitle => 'Użyj połączenia innego profilu. Profile chronione PIN-em wymagają podania PIN-u.'; } // Path: hotkeys.actions @@ -1879,7 +1883,7 @@ class _Translations$libraries$tabs$pl extends Translations$libraries$tabs$en { final TranslationsPl _root; // ignore: unused_field // Translations - @override String get recommended => 'Rekomendowane'; + @override String get recommended => 'Polecane'; @override String get browse => 'Przeglądaj'; @override String get collections => 'Kolekcje'; @override String get playlists => 'Playlisty'; @@ -1965,7 +1969,7 @@ class _Translations$explore$rows$pl extends Translations$explore$rows$en { @override String get popularShows => 'Popularne seriale'; @override String get trendingAnime => 'Anime na czasie'; @override String get suggestedAnime => 'Sugerowane anime'; - @override String get airingAnime => 'Najlepsze emitowane anime'; + @override String get airingAnime => 'Najpopularniejsze emitowane anime'; @override String get popularAnime => 'Najpopularniejsze anime'; @override String get trending => 'Na czasie'; @override String get upcomingMovies => 'Nadchodzące filmy'; @@ -2017,7 +2021,7 @@ class _Translations$companionRemote$pairing$pl extends Translations$companionRem @override String get connecting => 'Łączenie...'; @override String get searchingForDevices => 'Szukanie urządzeń...'; @override String get noDevicesFound => 'Nie znaleziono urządzeń w sieci'; - @override String get noDevicesHint => 'Otwórz Plezy na komputerze i użyj tego samego WiFi'; + @override String get noDevicesHint => 'Otwórz Plezy na komputerze i połącz oba urządzenia z tą samą siecią Wi-Fi'; @override String get availableDevices => 'Dostępne urządzenia'; @override String get manualConnection => 'Połączenie ręczne'; @override String get cryptoInitFailed => 'Nie udało się uruchomić bezpiecznego połączenia. Najpierw zaloguj się do Plex.'; @@ -2051,7 +2055,7 @@ class _Translations$companionRemote$remote$pl extends Translations$companionRemo @override String get tabDownloads => 'Pobrania'; @override String get tabSettings => 'Ustawienia'; @override String get previous => 'Poprzedni'; - @override String get playPause => 'Odtwórz/Pauza'; + @override String get playPause => 'Odtwórz/wstrzymaj'; @override String get next => 'Następny'; @override String get seekBack => 'Przewiń wstecz'; @override String get stop => 'Stop'; @@ -2133,7 +2137,7 @@ class _Translations$services$libraryFilter$pl extends Translations$services$libr // Translations @override String get title => 'Filtr bibliotek'; @override String get subtitleAllSyncing => 'Synchronizowanie wszystkich bibliotek'; - @override String get subtitleNoneSyncing => 'Nic nie synchronizuje'; + @override String get subtitleNoneSyncing => 'Brak synchronizowanych bibliotek'; @override String subtitleBlocked({required Object count}) => '${count} zablokowanych'; @override String subtitleAllowed({required Object count}) => '${count} dozwolonych'; @override String get mode => 'Tryb filtra'; @@ -2156,7 +2160,7 @@ extension on TranslationsPl { 'app.title' => 'Plezy', 'auth.signInWithPlex' => 'Zaloguj się przez Plex', 'auth.showQRCode' => 'Pokaż kod QR', - 'auth.authenticate' => 'Uwierzytelnienie', + 'auth.authenticate' => 'Uwierzytelnij', 'auth.authenticationTimeout' => 'Upłynął czas uwierzytelniania. Spróbuj ponownie.', 'auth.scanQRToSignIn' => 'Zeskanuj ten kod QR, aby się zalogować', 'auth.waitingForAuth' => 'Oczekiwanie na uwierzytelnienie...\nZaloguj się w przeglądarce.', @@ -2168,7 +2172,7 @@ extension on TranslationsPl { 'auth.quickConnectWaiting' => 'Oczekiwanie na zatwierdzenie…', 'auth.quickConnectCancel' => 'Anuluj', 'auth.quickConnectExpired' => 'Quick Connect wygasł. Spróbuj ponownie.', - 'auth.localDataRecoveryRequired' => 'Plezy could not safely recover local sign-in and pending playback data. Please sign in again.', + 'auth.localDataRecoveryRequired' => 'Plezy nie mogło bezpiecznie odzyskać lokalnych danych logowania ani oczekujących danych odtwarzania. Zaloguj się ponownie.', 'common.cancel' => 'Anuluj', 'common.save' => 'Zapisz', 'common.close' => 'Zamknij', @@ -2187,7 +2191,7 @@ extension on TranslationsPl { 'common.edit' => 'Edytuj', 'common.shuffle' => 'Losowo', 'common.addTo' => 'Dodaj do...', - 'common.createNew' => 'Utwórz nowy', + 'common.createNew' => 'Utwórz', 'common.connect' => 'Połącz', 'common.disconnect' => 'Rozłącz', 'common.play' => 'Odtwórz', @@ -2213,7 +2217,7 @@ extension on TranslationsPl { 'common.loading' => 'Ładowanie...', 'common.fullscreen' => 'Pełny ekran', 'common.exitFullscreen' => 'Wyjdź z pełnego ekranu', - 'common.pressBackAgainToExit' => 'Naciśnij wstecz ponownie, aby wyjść', + 'common.pressBackAgainToExit' => 'Naciśnij ponownie przycisk Wstecz, aby wyjść', 'screens.licenses' => 'Licencje', 'screens.switchProfile' => 'Zmień profil', 'screens.subtitleStyling' => 'Styl napisów', @@ -2252,20 +2256,22 @@ extension on TranslationsPl { 'settings.libraryDensity' => 'Gęstość biblioteki', 'settings.compact' => 'Kompaktowy', 'settings.comfortable' => 'Wygodny', + 'settings.tvCornerSpotlightBackdrop' => 'Tło wyróżnionej pozycji w rogu', + 'settings.tvCornerSpotlightBackdropDescription' => 'Wyświetlaj grafikę wyróżnionej pozycji w prawym górnym rogu zamiast na całym ekranie', 'settings.viewMode' => 'Tryb widoku', 'settings.gridView' => 'Siatka', 'settings.listView' => 'Lista', 'settings.showHeroSection' => 'Pokaż sekcję wyróżnioną', - 'settings.continueWatchingAction' => 'Akcja Kontynuuj oglądanie', + 'settings.continueWatchingAction' => 'Działanie w sekcji „Kontynuuj oglądanie”', 'settings.continueWatchingPlay' => 'Odtwórz', 'settings.continueWatchingDetails' => 'Otwórz szczegóły', 'settings.episodeAction' => 'Akcja odcinka', 'settings.episodePlay' => 'Odtwórz', 'settings.episodeDetails' => 'Otwórz szczegóły', 'settings.useGlobalHubs' => 'Użyj układu strony głównej', - 'settings.useGlobalHubsDescription' => 'Pokaż ujednolicone huby ekranu głównego. W przeciwnym razie użyj rekomendacji bibliotek.', - 'settings.showServerNameOnHubs' => 'Pokaż nazwę serwera w hubach', - 'settings.showServerNameOnHubsDescription' => 'Zawsze pokazuj nazwy serwerów w tytułach hubów.', + 'settings.useGlobalHubsDescription' => 'Wyświetlaj ujednolicone sekcje ekranu głównego. W przeciwnym razie używaj rekomendacji bibliotek.', + 'settings.showServerNameOnHubs' => 'Pokaż nazwę serwera w sekcjach', + 'settings.showServerNameOnHubsDescription' => 'Zawsze pokazuj nazwy serwerów w tytułach sekcji.', 'settings.groupLibrariesByServer' => 'Grupuj biblioteki według serwera', 'settings.groupLibrariesByServerDescription' => 'Grupuj biblioteki paska bocznego pod każdym serwerem multimediów.', 'settings.alwaysKeepSidebarOpen' => 'Zawsze utrzymuj panel boczny otwarty', @@ -2275,7 +2281,7 @@ extension on TranslationsPl { 'settings.showEpisodeNumberOnCards' => 'Pokaż numer odcinka na kartach', 'settings.showEpisodeNumberOnCardsDescription' => 'Pokazuj numer sezonu i odcinka na kartach odcinków', 'settings.showSeasonPostersOnTabs' => 'Pokaż plakaty sezonów na zakładkach', - 'settings.showSeasonPostersOnTabsDescription' => 'Pokazuj plakat każdego sezonu nad jego kartą', + 'settings.showSeasonPostersOnTabsDescription' => 'Pokazuj plakat każdego sezonu nad jego zakładką', 'settings.tvFullCardLayout' => 'Pełne karty TV', 'settings.tvFullCardLayoutDescription' => 'Używaj kart TV tylko z obrazem i nałożonymi nazwiskami aktorów', 'settings.focusGlow' => 'Poświata zaznaczenia', @@ -2288,14 +2294,14 @@ extension on TranslationsPl { 'settings.visualEffectsReducedDescription' => 'Mniej animacji i grafiki o niższej rozdzielczości', 'settings.hideSpoilers' => 'Ukryj spoilery nieobejrzanych odcinków', 'settings.hideSpoilersDescription' => 'Rozmywaj miniatury i opisy nieobejrzanych odcinków', - 'settings.playerBackend' => 'Backend odtwarzacza', + 'settings.playerBackend' => 'Mechanizm odtwarzania', 'settings.exoPlayer' => 'ExoPlayer', 'settings.mpv' => 'mpv', 'settings.hardwareDecoding' => 'Dekodowanie sprzętowe', 'settings.hardwareDecodingDescription' => 'Użyj akceleracji sprzętowej, gdy dostępna', 'settings.bufferSize' => 'Rozmiar bufora', 'settings.bufferSizeMB' => ({required Object size}) => '${size}MB', - 'settings.bufferSizeAuto' => 'Automatyczny (Zalecany)', + 'settings.bufferSizeAuto' => 'Automatyczny (zalecany)', 'settings.bufferSizeWarning' => ({required Object heap, required Object size}) => 'Dostępna pamięć: ${heap}MB. Bufor ${size}MB może wpłynąć na odtwarzanie.', 'settings.defaultQualityTitle' => 'Domyślna jakość', 'settings.musicQualityTitle' => 'Jakość muzyki', @@ -2307,8 +2313,8 @@ extension on TranslationsPl { 'settings.secondsUnit' => ({required Object seconds}) => '${seconds} sekund', 'settings.defaultSleepTimer' => 'Domyślny wyłącznik czasowy', 'settings.minutesUnit' => ({required Object minutes}) => '${minutes} minut', - 'settings.rememberTrackSelections' => 'Zapamiętaj wybór ścieżek per serial/film', - 'settings.rememberTrackSelectionsDescription' => 'Zapamiętuj wybór audio i napisów dla tytułu', + 'settings.rememberTrackSelections' => 'Zapamiętuj wybór ścieżek dla każdego serialu i filmu', + 'settings.rememberTrackSelectionsDescription' => 'Zapamiętuj wybór ścieżki dźwiękowej i napisów dla każdego tytułu', 'settings.showChapterMarkersOnTimeline' => 'Pokaż znaczniki rozdziałów na pasku przewijania', 'settings.showChapterMarkersOnTimelineDescription' => 'Podziel pasek przewijania na granicach rozdziałów', 'settings.clickVideoTogglesPlayback' => 'Kliknięcie wideo przełącza odtwarzanie/pauzę', @@ -2318,14 +2324,14 @@ extension on TranslationsPl { 'settings.keyboardShortcutsDescription' => 'Dostosuj skróty klawiszowe', 'settings.videoPlayerNavigation' => 'Nawigacja odtwarzacza wideo', 'settings.videoPlayerNavigationDescription' => 'Użyj klawiszy strzałek do nawigacji kontrolkami odtwarzacza', - 'settings.watchTogetherRelay' => 'Relay Oglądaj Razem', - 'settings.watchTogetherRelayDescription' => 'Ustaw własny relay. Wszyscy muszą używać tego samego serwera.', + 'settings.watchTogetherRelay' => 'Serwer pośredniczący funkcji „Oglądaj razem”', + 'settings.watchTogetherRelayDescription' => 'Ustaw własny serwer pośredniczący. Wszyscy muszą korzystać z tego samego serwera.', 'settings.watchTogetherRelayHint' => 'https://moj-relay.przyklad.pl', - 'settings.watchTogetherRelayInvalid' => 'Enter a valid HTTP or HTTPS relay base URL.', + 'settings.watchTogetherRelayInvalid' => 'Wprowadź prawidłowy bazowy adres URL serwera pośredniczącego HTTP lub HTTPS.', 'settings.crashReporting' => 'Raportowanie błędów', 'settings.crashReportingDescription' => 'Wysyłaj raporty o błędach, aby pomóc ulepszyć aplikację', - 'settings.debugLogging' => 'Logowanie debugowania', - 'settings.debugLoggingDescription' => 'Włącz szczegółowe logowanie do rozwiązywania problemów', + 'settings.debugLogging' => 'Rejestrowanie diagnostyczne', + 'settings.debugLoggingDescription' => 'Włącz szczegółowe rejestrowanie, aby ułatwić rozwiązywanie problemów', 'settings.viewLogs' => 'Pokaż logi', 'settings.viewLogsDescription' => 'Pokaż logi aplikacji', 'settings.clearCache' => 'Wyczyść pamięć podręczną', @@ -2333,7 +2339,7 @@ extension on TranslationsPl { 'settings.clearCacheSuccess' => 'Pamięć podręczna wyczyszczona', 'settings.resetSettings' => 'Zresetuj ustawienia', 'settings.resetSettingsDescription' => 'Przywróć ustawienia domyślne. Tego nie można cofnąć.', - 'settings.resetSettingsSuccess' => 'Ustawienia zresetowane pomyślnie', + 'settings.resetSettingsSuccess' => 'Przywrócono ustawienia domyślne', 'settings.backup' => 'Kopia zapasowa', 'settings.exportSettings' => 'Eksportuj ustawienia', 'settings.exportSettingsDescription' => 'Zapisz swoje preferencje do pliku', @@ -2356,7 +2362,7 @@ extension on TranslationsPl { 'settings.validationErrorDuration' => ({required Object min, required Object max, required Object unit}) => 'Czas musi być między ${min} a ${max} ${unit}', 'settings.shortcutAlreadyAssigned' => ({required Object action}) => 'Skrót jest już przypisany do ${action}', 'settings.shortcutUpdated' => ({required Object action}) => 'Skrót zaktualizowany dla ${action}', - 'settings.saveFailed' => 'Could not save changes. Try again.', + 'settings.saveFailed' => 'Nie udało się zapisać zmian. Spróbuj ponownie.', 'settings.autoSkip' => 'Automatyczne pomijanie', 'settings.autoSkipIntro' => 'Automatyczne pomijanie intro', 'settings.autoSkipIntroDescription' => 'Automatycznie pomijaj znaczniki intro po kilku sekundach', @@ -2374,20 +2380,20 @@ extension on TranslationsPl { 'settings.regex' => 'Wyrażenie regularne', 'settings.downloads' => 'Pobrania', 'settings.downloadLocationDescription' => 'Wybierz miejsce przechowywania pobranych treści', - 'settings.downloadLocationDefault' => 'Domyślne (Pamięć aplikacji)', + 'settings.downloadLocationDefault' => 'Domyślne (pamięć aplikacji)', 'settings.downloadLocationCustom' => 'Niestandardowa lokalizacja', 'settings.selectFolder' => 'Wybierz folder', 'settings.resetToDefault' => 'Przywróć domyślne', 'settings.currentPath' => ({required Object path}) => 'Bieżąca: ${path}', 'settings.downloadLocationChanged' => 'Lokalizacja pobierania zmieniona', 'settings.downloadLocationReset' => 'Lokalizacja pobierania przywrócona do domyślnej', - 'settings.downloadLocationInvalid' => 'Wybrany folder nie jest zapisywalny', + 'settings.downloadLocationInvalid' => 'Nie można zapisywać w wybranym folderze', 'settings.downloadLocationPickerUnavailable' => 'Wybór folderu nie jest dostępny na tym urządzeniu', - 'settings.downloadOnWifiOnly' => 'Pobieraj tylko przez WiFi', + 'settings.downloadOnWifiOnly' => 'Pobieraj tylko przez Wi-Fi', 'settings.downloadOnWifiOnlyDescription' => 'Blokuj pobieranie na danych komórkowych', 'settings.autoRemoveWatchedDownloads' => 'Automatycznie usuwaj obejrzane pobrania', 'settings.autoRemoveWatchedDownloadsDescription' => 'Automatycznie usuwaj obejrzane pobrania', - 'settings.cellularDownloadBlocked' => 'Pobieranie przez sieć komórkową jest zablokowane. Użyj WiFi lub zmień ustawienie.', + 'settings.cellularDownloadBlocked' => 'Pobieranie przez sieć komórkową jest zablokowane. Użyj Wi-Fi lub zmień ustawienie.', 'settings.maxVolume' => 'Maksymalna głośność', 'settings.maxVolumeDescription' => 'Pozwól na wzmocnienie głośności powyżej 100% dla cichych multimediów', 'settings.maxVolumePercent' => ({required Object percent}) => '${percent}%', @@ -2399,7 +2405,7 @@ extension on TranslationsPl { 'settings.companionRemoteServer' => 'Serwer zdalnego sterowania', 'settings.companionRemoteServerDescription' => 'Pozwól urządzeniom mobilnym w sieci sterować tą aplikacją', 'settings.autoPip' => 'Automatyczny obraz w obrazie', - 'settings.autoPipDescription' => 'Włącz obraz w obrazie po opuszczeniu aplikacji podczas odtwarzania', + 'settings.autoPipDescription' => 'Automatycznie włączaj tryb obrazu w obrazie po opuszczeniu aplikacji podczas odtwarzania', 'settings.matchContentFrameRate' => 'Dopasuj częstotliwość klatek do treści', 'settings.matchContentFrameRateDescription' => 'Dopasuj częstotliwość odświeżania ekranu do wideo', 'settings.matchRefreshRate' => 'Dopasuj częstotliwość odświeżania', @@ -2409,9 +2415,9 @@ extension on TranslationsPl { 'settings.displaySwitchDelay' => 'Opóźnienie przełączania ekranu', 'settings.tunneledPlayback' => 'Tunelowane odtwarzanie', 'settings.tunneledPlaybackDescription' => 'Użyj tunelowania wideo. Wyłącz, jeśli HDR pokazuje czarny obraz.', - 'settings.audioPassthrough' => 'Bezpośrednie audio', - 'settings.audioPassthroughDescription' => 'Wysyłaj dźwięk Dolby/DTS do amplitunera lub telewizora bez ponownego kodowania, zachowując dźwięk przestrzenny. Wyłącz, jeśli nie ma dźwięku.', - 'settings.audioPassthroughDescriptionAppleTv' => 'Przekazuje Dolby Digital Plus (w tym Atmos) do systemu jako bitstream. DTS i TrueHD nadal odtwarzane są jako wielokanałowe PCM. Podczas przewijania mogą wystąpić krótkie przerwy w dźwięku.', + 'settings.audioPassthrough' => 'Przekazywanie dźwięku', + 'settings.audioPassthroughDescription' => 'Przesyłaj dźwięk Dolby/DTS do amplitunera lub telewizora bez ponownego kodowania, zachowując dźwięk przestrzenny. Wyłącz tę opcję, jeśli nie słychać dźwięku.', + 'settings.audioPassthroughDescriptionAppleTv' => 'Używaj natywnego dekodera Dolby firmy Apple dla Dolby Digital Plus, w tym Atmos. DTS i TrueHD nadal będą odtwarzane jako wielokanałowy dźwięk PCM. Wyłącz tę opcję, jeśli nie słychać dźwięku.', 'settings.audioDownmix' => 'Miksowanie do stereo', 'settings.audioDownmixDescription' => 'Miksuje dźwięk przestrzenny do dwóch kanałów dla głośników stereo lub słuchawek', 'settings.downmixCenterBoost' => 'Wzmocnienie kanału centralnego', @@ -2424,16 +2430,16 @@ extension on TranslationsPl { 'settings.atmosDiagnosticsDescription' => 'Diagnozuj wyjście Dolby Atmos, odtwarzając sygnały testowe przez odtwarzacz systemowy', 'settings.atmosTestHlsAtmos' => 'Strumień Atmos Apple', 'settings.atmosTestHlsAtmosDescription' => 'Sprawdzony strumień Dolby Atmos. Amplituner powinien pokazać Dolby Atmos.', - 'settings.atmosTestHlsControl' => 'Strumień surround Apple', - 'settings.atmosTestHlsControlDescription' => 'Strumień kontrolny bez Atmos. Amplituner powinien pokazać surround bez Atmos.', + 'settings.atmosTestHlsControl' => 'Strumień dźwięku przestrzennego Apple', + 'settings.atmosTestHlsControlDescription' => 'Strumień kontrolny bez Atmos. Amplituner powinien wskazywać dźwięk przestrzenny bez Atmos.', 'settings.atmosTestRawStream' => 'Surowy strumień EAC3', - 'settings.atmosTestRawStreamDescription' => 'Strumieniuje plik testowy dokładnie jak odtwarzanie Atmos w odtwarzaczu. Wymaga URL pliku testowego.', + 'settings.atmosTestRawStreamDescription' => 'Przesyła strumieniowo plik testowy dokładnie tak jak podczas odtwarzania Atmos w odtwarzaczu. Wymaga adresu URL pliku testowego.', 'settings.atmosTestRawFile' => 'Surowy plik EAC3', 'settings.atmosTestRawFileDescription' => 'Odtwarza plik testowy o znanej długości. Wymaga URL pliku testowego.', 'settings.atmosTestStop' => 'Zatrzymaj test', - 'settings.atmosTestUrl' => 'URL pliku testowego', - 'settings.atmosTestUrlDescription' => 'HTTP URL surowego pliku .ec3 Dolby Atmos (np. wyodrębnionego przez ffmpeg)', - 'settings.atmosTestUrlMissing' => 'Najpierw ustaw URL pliku testowego', + 'settings.atmosTestUrl' => 'Adres URL pliku testowego', + 'settings.atmosTestUrlDescription' => 'Adres URL HTTP surowego pliku Dolby Atmos w formacie .ec3 (np. wyodrębnionego za pomocą ffmpeg)', + 'settings.atmosTestUrlMissing' => 'Najpierw ustaw adres URL pliku testowego', 'settings.atmosTestStatus' => 'Stan', 'settings.dvConversionMode' => 'Konwersja Dolby Vision', 'settings.dvConversionModeDescription' => 'Wybierz, jak ExoPlayer obsługuje pliki Dolby Vision Profile 7.', @@ -2441,14 +2447,14 @@ extension on TranslationsPl { 'settings.dvConversionNative' => 'Natywnie / wyłączone', 'settings.dvConversionDv81' => 'P7 → P8.1', 'settings.dvConversionHevcStrip' => 'P7 → HEVC', - 'settings.dvConversionAutoDescription' => 'Użyj wykrywania możliwości urządzenia i normalnego zachowania awaryjnego', + 'settings.dvConversionAutoDescription' => 'Wykrywaj możliwości urządzenia i stosuj standardowy mechanizm awaryjny', 'settings.dvConversionNativeDescription' => 'Wymuś natywne DV7 i wyłącz ponowną próbę konwersji DV', 'settings.dvConversionDv81Description' => 'Wymuś wbudowaną konwersję RPU do profilu Dolby Vision 8.1', 'settings.dvConversionHevcStripDescription' => 'Usuń warstwy Dolby Vision RPU/EL i przedstaw zwykłe HEVC', 'settings.requireProfileSelectionOnOpen' => 'Pytaj o profil przy otwarciu aplikacji', 'settings.requireProfileSelectionOnOpenDescription' => 'Pokaż wybór profilu za każdym razem, gdy aplikacja jest otwierana', 'settings.forceTvMode' => 'Wymuś tryb TV', - 'settings.forceTvModeDescription' => 'Wymuś układ TV. Dla urządzeń bez autodetekcji. Wymaga restartu.', + 'settings.forceTvModeDescription' => 'Wymuś układ telewizyjny na urządzeniach, które nie wykrywają go automatycznie. Wymaga ponownego uruchomienia.', 'settings.startInFullscreen' => 'Uruchom na pełnym ekranie', 'settings.startInFullscreenDescription' => 'Otwiera Plezy w trybie pełnoekranowym przy uruchomieniu', 'settings.exitFullscreenOnPlayerClose' => 'Wyjdź z pełnego ekranu przy zamykaniu odtwarzacza', @@ -2511,7 +2517,7 @@ extension on TranslationsPl { 'fileInfo.advanced' => 'Zaawansowane', 'fileInfo.codec' => 'Kodek', 'fileInfo.resolution' => 'Rozdzielczość', - 'fileInfo.bitrate' => 'Bitrate', + 'fileInfo.bitrate' => 'Przepływność', 'fileInfo.frameRate' => 'Klatki na sekundę', 'fileInfo.aspectRatio' => 'Proporcje', 'fileInfo.profile' => 'Profil', @@ -2519,16 +2525,16 @@ extension on TranslationsPl { 'fileInfo.colorSpace' => 'Przestrzeń kolorów', 'fileInfo.colorRange' => 'Zakres kolorów', 'fileInfo.colorPrimaries' => 'Kolory podstawowe', - 'fileInfo.chromaSubsampling' => 'Subsampling chrominancji', + 'fileInfo.chromaSubsampling' => 'Podpróbkowanie chrominancji', 'fileInfo.channels' => 'Kanały', 'fileInfo.subtitles' => 'Napisy', - 'fileInfo.overallBitrate' => 'Całkowity bitrate', + 'fileInfo.overallBitrate' => 'Całkowita przepływność', 'fileInfo.path' => 'Ścieżka', 'fileInfo.size' => 'Rozmiar', 'fileInfo.container' => 'Kontener', 'fileInfo.duration' => 'Czas trwania', 'fileInfo.optimizedForStreaming' => 'Zoptymalizowane do strumieniowania', - 'fileInfo.has64bitOffsets' => '64-bitowe offsety', + 'fileInfo.has64bitOffsets' => 'Przesunięcia 64-bitowe', 'mediaMenu.markAsWatched' => 'Oznacz jako obejrzane', 'mediaMenu.markAsUnwatched' => 'Oznacz jako nieobejrzane', 'mediaMenu.removeFromContinueWatching' => 'Usuń z kontynuowania oglądania', @@ -2540,7 +2546,7 @@ extension on TranslationsPl { 'mediaMenu.deleteFromServer' => 'Usuń z serwera', 'mediaMenu.confirmDelete' => 'Usunąć to medium i jego pliki z serwera?', 'mediaMenu.deleteMultipleWarning' => 'Obejmuje to wszystkie odcinki i ich pliki.', - 'mediaMenu.mediaDeletedSuccessfully' => 'Element multimedialny usunięty pomyślnie', + 'mediaMenu.mediaDeletedSuccessfully' => 'Usunięto element multimedialny', 'mediaMenu.mediaFailedToDelete' => 'Nie udało się usunąć elementu multimedialnego', 'mediaMenu.rate' => 'Oceń', 'mediaMenu.playFromBeginning' => 'Odtwórz od początku', @@ -2557,7 +2563,7 @@ extension on TranslationsPl { 'accessibility.mediaCardEpisode' => ({required Object title, required Object episodeInfo}) => '${title}, ${episodeInfo}', 'accessibility.mediaCardSeason' => ({required Object title, required Object seasonInfo}) => '${title}, ${seasonInfo}', 'accessibility.mediaCardWatched' => 'obejrzane', - 'accessibility.mediaCardPartiallyWatched' => ({required Object percent}) => '${percent} procent obejrzane', + 'accessibility.mediaCardPartiallyWatched' => ({required Object percent}) => 'obejrzano w ${percent} procentach', 'accessibility.mediaCardUnwatched' => 'nieobejrzane', 'accessibility.tapToPlay' => 'Dotknij, aby odtworzyć', 'accessibility.decrease' => 'Zmniejsz', @@ -2581,13 +2587,13 @@ extension on TranslationsPl { 'audioTracks.track' => ({required Object n}) => 'Ścieżka audio ${n}', 'videoControls.audioLabel' => 'Audio', 'videoControls.subtitlesLabel' => 'Napisy', - 'videoControls.resetToZero' => 'Zresetuj do 0ms', + 'videoControls.resetToZero' => 'Zresetuj do 0 ms', 'videoControls.addTime' => ({required Object amount, required Object unit}) => '+${amount}${unit}', 'videoControls.minusTime' => ({required Object amount, required Object unit}) => '-${amount}${unit}', - 'videoControls.playsLater' => ({required Object label}) => '${label} odtwarza później', - 'videoControls.playsEarlier' => ({required Object label}) => '${label} odtwarza wcześniej', + 'videoControls.playsLater' => ({required Object label}) => '${label}: później', + 'videoControls.playsEarlier' => ({required Object label}) => '${label}: wcześniej', 'videoControls.noOffset' => 'Bez przesunięcia', - 'videoControls.letterbox' => 'Letterbox', + 'videoControls.letterbox' => 'Pasy wokół obrazu', 'videoControls.fillScreen' => 'Wypełnij ekran', 'videoControls.stretch' => 'Rozciągnij', 'videoControls.lockRotation' => 'Zablokuj obrót', @@ -2595,7 +2601,7 @@ extension on TranslationsPl { 'videoControls.timerActive' => 'Wyłącznik aktywny', 'videoControls.playbackWillPauseIn' => ({required Object duration}) => 'Odtwarzanie zatrzyma się za ${duration}', 'videoControls.sleepTimerEndOfVideo' => 'Koniec bieżącego wideo', - 'videoControls.sleepTimerStopAtHeader' => 'Zatrzymaj na', + 'videoControls.sleepTimerStopAtHeader' => 'Zatrzymaj o', 'videoControls.sleepTimerDurationHeader' => 'Minutnik', 'videoControls.playbackWillPauseAtEnd' => 'Odtwarzanie zatrzyma się na końcu tego wideo', 'videoControls.stillWatching' => 'Nadal oglądasz?', @@ -2605,6 +2611,8 @@ extension on TranslationsPl { 'videoControls.playNext' => 'Odtwórz następny', 'videoControls.playButton' => 'Odtwórz', 'videoControls.pauseButton' => 'Pauza', + 'videoControls.showPlaybackControls' => 'Pokaż elementy sterujące odtwarzaniem', + 'videoControls.hidePlaybackControls' => 'Ukryj elementy sterujące odtwarzaniem', 'videoControls.seekBackwardButton' => ({required Object seconds}) => 'Przewiń do tyłu o ${seconds} sekund', 'videoControls.seekForwardButton' => ({required Object seconds}) => 'Przewiń do przodu o ${seconds} sekund', 'videoControls.previousButton' => 'Poprzedni odcinek', @@ -2639,7 +2647,7 @@ extension on TranslationsPl { 'videoControls.pipActive' => 'Odtwarzanie w trybie obraz w obrazie', 'videoControls.pipFailed' => 'Nie udało się uruchomić trybu obraz w obrazie', 'videoControls.screenshotSaved' => 'Zrzut ekranu zapisany', - 'videoControls.zoomPercent' => ({required Object percent}) => 'Zoom ${percent}%', + 'videoControls.zoomPercent' => ({required Object percent}) => 'Powiększenie ${percent}%', 'videoControls.pipErrors.androidVersion' => 'Wymaga Androida 8.0 lub nowszego', 'videoControls.pipErrors.iosVersion' => 'Wymaga iOS 15.0 lub nowszego', 'videoControls.pipErrors.permissionDisabled' => 'Obraz w obrazie jest wyłączony. Włącz go w ustawieniach systemu.', @@ -2661,12 +2669,12 @@ extension on TranslationsPl { 'videoControls.subtitleDownloadedNotApplied' => 'Napisy zostały pobrane, ale nie można ich było wybrać', 'videoControls.subtitleDownloadFailed' => 'Nie udało się pobrać napisów', 'videoControls.searchLanguages' => 'Szukaj języków...', + _ => null, + } ?? switch (path) { 'messages.markedAsWatched' => 'Oznaczono jako obejrzane', 'messages.markedAsUnwatched' => 'Oznaczono jako nieobejrzane', 'messages.markedAsWatchedOffline' => 'Oznaczono jako obejrzane (zsynchronizuje się po połączeniu)', 'messages.markedAsUnwatchedOffline' => 'Oznaczono jako nieobejrzane (zsynchronizuje się po połączeniu)', - _ => null, - } ?? switch (path) { 'messages.autoRemovedWatchedDownload' => ({required Object title}) => 'Automatycznie usunięto: ${title}', 'messages.autoRemovedWatchedDownloads' => ({required num n}) => (_root.$meta.cardinalResolver ?? PluralResolvers.cardinal('pl'))(n, one: 'Automatycznie usunięto ${n} obejrzane pobranie', few: 'Automatycznie usunięto ${n} obejrzane pobrania', many: 'Automatycznie usunięto ${n} obejrzanych pobrań', other: 'Automatycznie usunięto ${n} obejrzanego pobrania', ), 'messages.removedFromContinueWatching' => 'Usunięto z kontynuowania oglądania', @@ -2674,11 +2682,11 @@ extension on TranslationsPl { 'messages.streamInterrupted' => 'Strumień został przerwany. Naciśnij odtwarzanie lub przewiń, aby spróbować ponownie.', 'messages.liveStreamInterrupted' => 'Transmisja na żywo została przerwana. Naciśnij odtwarzanie, aby spróbować ponownie.', 'messages.fileInfoNotAvailable' => 'Informacje o pliku niedostępne', - 'messages.playbackAuthenticationRequired' => 'Sign in to the media server again to play this item.', - 'messages.playbackServerUnavailable' => 'The media server is unavailable. Try again later.', - 'messages.playbackDataInvalid' => 'The server returned invalid playback information.', - 'messages.playbackCancelled' => 'Playback was cancelled.', - 'messages.playbackFailed' => 'Playback could not be started.', + 'messages.playbackAuthenticationRequired' => 'Zaloguj się ponownie na serwerze multimediów, aby odtworzyć ten element.', + 'messages.playbackServerUnavailable' => 'Serwer multimediów jest niedostępny. Spróbuj ponownie później.', + 'messages.playbackDataInvalid' => 'Serwer zwrócił nieprawidłowe informacje o odtwarzaniu.', + 'messages.playbackCancelled' => 'Odtwarzanie zostało anulowane.', + 'messages.playbackFailed' => 'Nie udało się rozpocząć odtwarzania.', 'messages.errorLoadingFileInfo' => ({required Object error}) => 'Błąd ładowania informacji o pliku: ${error}', 'messages.errorLoadingSeries' => 'Błąd ładowania serialu', 'messages.musicNotSupported' => 'Odtwarzanie muzyki nie jest jeszcze obsługiwane', @@ -2735,17 +2743,17 @@ extension on TranslationsPl { 'subtitlingStyling.renderResolutionVideo' => 'Rozdzielczość wideo', 'mpvConfig.title' => 'mpv.conf', 'mpvConfig.description' => 'Zaawansowane ustawienia odtwarzacza wideo', - 'mpvConfig.presets' => 'Presety', - 'mpvConfig.noPresets' => 'Brak zapisanych presetów', - 'mpvConfig.saveAsPreset' => 'Zapisz jako preset...', - 'mpvConfig.presetName' => 'Nazwa presetu', - 'mpvConfig.presetNameHint' => 'Wprowadź nazwę dla tego presetu', - 'mpvConfig.loadPreset' => 'Załaduj', + 'mpvConfig.presets' => 'Ustawienia wstępne', + 'mpvConfig.noPresets' => 'Brak zapisanych ustawień wstępnych', + 'mpvConfig.saveAsPreset' => 'Zapisz jako ustawienie wstępne...', + 'mpvConfig.presetName' => 'Nazwa ustawienia wstępnego', + 'mpvConfig.presetNameHint' => 'Wprowadź nazwę tego ustawienia wstępnego', + 'mpvConfig.loadPreset' => 'Wczytaj', 'mpvConfig.deletePreset' => 'Usuń', - 'mpvConfig.presetSaved' => 'Preset zapisany', - 'mpvConfig.presetLoaded' => 'Preset załadowany', - 'mpvConfig.presetDeleted' => 'Preset usunięty', - 'mpvConfig.confirmDeletePreset' => 'Czy na pewno chcesz usunąć ten preset?', + 'mpvConfig.presetSaved' => 'Zapisano ustawienie wstępne', + 'mpvConfig.presetLoaded' => 'Wczytano ustawienie wstępne', + 'mpvConfig.presetDeleted' => 'Usunięto ustawienie wstępne', + 'mpvConfig.confirmDeletePreset' => 'Czy na pewno chcesz usunąć to ustawienie wstępne?', 'mpvConfig.configPlaceholder' => 'gpu-api=vulkan\nhwdec=auto\n# comment', 'dialog.confirmAction' => 'Potwierdź działanie', 'profiles.addPlezyProfile' => 'Dodaj profil Plezy', @@ -2761,9 +2769,9 @@ extension on TranslationsPl { 'profiles.signedOutPlex' => 'Wylogowano z Plex.', 'profiles.signOutFailed' => 'Wylogowanie nie powiodło się.', 'profiles.sectionTitle' => 'Profile', - 'profiles.summarySingle' => 'Dodaj profile, aby łączyć zarządzanych użytkowników i tożsamości lokalne', - 'profiles.summaryMultipleWithActive' => ({required Object count, required Object activeName}) => '${count} profili · aktywny: ${activeName}', - 'profiles.summaryMultiple' => ({required Object count}) => '${count} profili', + 'profiles.summarySingle' => 'Dodaj profile, aby łączyć użytkowników zarządzanych z profilami lokalnymi', + 'profiles.summaryMultipleWithActive' => ({required Object count, required Object activeName}) => 'Liczba profili: ${count} · aktywny: ${activeName}', + 'profiles.summaryMultiple' => ({required Object count}) => 'Liczba profili: ${count}', 'profiles.removeConnectionTitle' => 'Usunąć połączenie?', 'profiles.removeConnectionMessage' => ({required Object displayName, required Object connectionLabel}) => 'Usuń dostęp ${displayName} do ${connectionLabel}. Inne profile go zachowają.', 'profiles.deleteProfileTitle' => 'Usunąć profil?', @@ -2790,13 +2798,13 @@ extension on TranslationsPl { 'profiles.removeConnection' => 'Usuń', 'profiles.profileRenamed' => 'Zmieniono nazwę profilu.', 'profiles.borrowAddTo' => ({required Object displayName}) => 'Dodaj do ${displayName}', - 'profiles.borrowExplain' => 'Pożycz połączenie z innego profilu. Profile chronione PIN wymagają PIN-u.', - 'profiles.borrowEmpty' => 'Nic do pożyczenia.', + 'profiles.borrowExplain' => 'Skorzystaj z połączenia innego profilu. Profile chronione PIN-em wymagają podania PIN-u.', + 'profiles.borrowEmpty' => 'Nie ma jeszcze żadnych dostępnych połączeń.', 'profiles.borrowEmptySubtitle' => 'Najpierw połącz Plex lub Jellyfin z innym profilem.', - 'profiles.borrowLoadFailed' => 'Available connections could not be loaded. Try again.', - 'profiles.borrowFromProfile' => ({required Object displayName}) => 'Od ${displayName}', - 'profiles.borrowConnectionBorrowed' => 'Połączenie pożyczone.', - 'profiles.borrowFailed' => 'Nie udało się pożyczyć połączenia.', + 'profiles.borrowLoadFailed' => 'Nie udało się wczytać dostępnych połączeń. Spróbuj ponownie.', + 'profiles.borrowFromProfile' => ({required Object displayName}) => 'Z profilu ${displayName}', + 'profiles.borrowConnectionBorrowed' => 'Dodano połączenie z innego profilu.', + 'profiles.borrowFailed' => 'Nie udało się dodać połączenia z innego profilu.', 'profiles.incorrectPin' => 'Nieprawidłowy PIN.', 'profiles.incorrectPinTryAgain' => 'Nieprawidłowy PIN. Spróbuj ponownie.', 'profiles.sourceProfileMissingParentAccount' => 'Profil źródłowy nie ma konta nadrzędnego.', @@ -2837,7 +2845,7 @@ extension on TranslationsPl { 'discover.rating' => 'Ocena', 'discover.movie' => 'Film', 'discover.tvShow' => 'Serial TV', - 'discover.minutesLeft' => ({required Object minutes}) => '${minutes} min pozostało', + 'discover.minutesLeft' => ({required Object minutes}) => 'Pozostało ${minutes} min', 'discover.moreLikeThis' => 'Więcej podobnych', 'errors.searchFailed' => ({required Object error}) => 'Wyszukiwanie nie powiodło się: ${error}', 'errors.connectionTimeout' => ({required Object context}) => 'Limit czasu połączenia przy ładowaniu ${context}', @@ -2868,7 +2876,7 @@ extension on TranslationsPl { 'libraries.allLibrariesHidden' => 'Wszystkie biblioteki są ukryte', 'libraries.hiddenLibrariesCount' => ({required Object count}) => 'Ukryte biblioteki (${count})', 'libraries.thisLibraryIsEmpty' => 'Ta biblioteka jest pusta', - 'libraries.noItemsMatchFilters' => 'Żadne elementy nie pasują do aktywnych filtrów', + 'libraries.noItemsMatchFilters' => 'Żaden element nie pasuje do aktywnych filtrów', 'libraries.resetFilters' => 'Resetuj filtry', 'libraries.all' => 'Wszystkie', 'libraries.clearAll' => 'Wyczyść wszystko', @@ -2891,7 +2899,7 @@ extension on TranslationsPl { 'libraries.noCollections' => 'Brak kolekcji w tej bibliotece', 'libraries.noFoldersFound' => 'Nie znaleziono folderów', 'libraries.folders' => 'foldery', - 'libraries.tabs.recommended' => 'Rekomendowane', + 'libraries.tabs.recommended' => 'Polecane', 'libraries.tabs.browse' => 'Przeglądaj', 'libraries.tabs.collections' => 'Kolekcje', 'libraries.tabs.playlists' => 'Playlisty', @@ -2933,10 +2941,10 @@ extension on TranslationsPl { 'libraries.sortLabels.latestEpisodeAirDate' => 'Data emisji ostatniego odcinka', 'libraries.sortLabels.lastEpisodeDateAdded' => 'Data dodania ostatniego odcinka', 'about.title' => 'O aplikacji', - 'about.openSourceLicenses' => 'Licencje open source', + 'about.openSourceLicenses' => 'Licencje oprogramowania open source', 'about.versionLabel' => ({required Object version}) => 'Wersja ${version}', - 'about.appDescription' => 'Piękny klient Plex i Jellyfin na Flutter', - 'about.viewLicensesDescription' => 'Zobacz licencje bibliotek zewnętrznych', + 'about.appDescription' => 'Piękny klient Plex i Jellyfin stworzony we Flutterze', + 'about.viewLicensesDescription' => 'Wyświetl licencje bibliotek innych firm', 'serverSelection.noServersFoundForAccount' => ({required Object username, required Object email}) => 'Nie znaleziono serwerów dla ${username} (${email})', 'serverSelection.failedToLoadServers' => ({required Object error}) => 'Nie udało się załadować serwerów: ${error}', 'hubDetail.title' => 'Tytuł', @@ -2950,7 +2958,7 @@ extension on TranslationsPl { 'licenses.relatedPackages' => 'Powiązane pakiety', 'licenses.license' => 'Licencja', 'licenses.licenseNumber' => ({required Object number}) => 'Licencja ${number}', - 'licenses.licensesCount' => ({required Object count}) => '${count} licencji', + 'licenses.licensesCount' => ({required Object count}) => 'Liczba licencji: ${count}', 'navigation.libraries' => 'Biblioteki', 'navigation.downloads' => 'Pobrania', 'navigation.liveTv' => 'TV na żywo', @@ -2966,7 +2974,7 @@ extension on TranslationsPl { 'explore.rows.popularShows' => 'Popularne seriale', 'explore.rows.trendingAnime' => 'Anime na czasie', 'explore.rows.suggestedAnime' => 'Sugerowane anime', - 'explore.rows.airingAnime' => 'Najlepsze emitowane anime', + 'explore.rows.airingAnime' => 'Najpopularniejsze emitowane anime', 'explore.rows.popularAnime' => 'Najpopularniejsze anime', 'explore.rows.trending' => 'Na czasie', 'explore.rows.upcomingMovies' => 'Nadchodzące filmy', @@ -3019,11 +3027,11 @@ extension on TranslationsPl { 'liveTv.favorites' => 'Ulubione', 'liveTv.reorderFavorites' => 'Zmień kolejność ulubionych', 'liveTv.favoritesLoadFailed' => 'Nie udało się wczytać ulubionych. Sprawdź połączenie i spróbuj ponownie.', - 'liveTv.favoritesUpdateFailed' => 'Could not update favorites. Check your connection and try again.', + 'liveTv.favoritesUpdateFailed' => 'Nie udało się zaktualizować ulubionych. Sprawdź połączenie i spróbuj ponownie.', 'liveTv.joinSession' => 'Dołącz do trwającej sesji', 'liveTv.watchFromStart' => ({required Object minutes}) => 'Oglądaj od początku (${minutes} min temu)', 'liveTv.watchLive' => 'Oglądaj na żywo', - 'liveTv.goToLive' => 'Przejdź do na żywo', + 'liveTv.goToLive' => 'Przejdź do transmisji na żywo', 'liveTv.record' => 'Nagraj', 'liveTv.recordEpisode' => 'Nagraj odcinek', 'liveTv.recordSeries' => 'Nagraj serial', @@ -3105,7 +3113,7 @@ extension on TranslationsPl { 'playlists.errorRemoving' => 'Nie udało się usunąć z playlisty', 'music.goToAlbum' => 'Przejdź do albumu', 'music.goToArtist' => 'Przejdź do wykonawcy', - 'music.instantMix' => 'Błyskawiczny miks', + 'music.instantMix' => 'Miks błyskawiczny', 'music.playNext' => 'Odtwórz następny', 'music.addToQueue' => 'Dodaj do kolejki', 'music.discNumber' => ({required Object n}) => 'Płyta ${n}', @@ -3114,8 +3122,8 @@ extension on TranslationsPl { 'music.playingFrom' => ({required Object title}) => 'Odtwarzanie z ${title}', 'music.queue' => 'Kolejka', 'music.clearQueue' => 'Wyczyść kolejkę', - 'music.lyrics' => 'Tekst', - 'music.noLyrics' => 'Brak dostępnego tekstu', + 'music.lyrics' => 'Tekst utworu', + 'music.noLyrics' => 'Brak tekstu utworu', 'music.sleepTimer' => 'Wyłącznik czasowy', 'music.sleepTimerEndOfTrack' => 'Koniec utworu', 'music.sleepTimerMinutes' => ({required Object n}) => '${n} minut', @@ -3126,28 +3134,28 @@ extension on TranslationsPl { 'music.repeatAll' => 'Powtarzaj wszystko', 'music.repeatOne' => 'Powtarzaj jeden', 'watchTogether.title' => 'Oglądaj razem', - 'watchTogether.description' => 'Oglądaj treści zsynchronizowane z przyjaciółmi i rodziną', + 'watchTogether.description' => 'Oglądaj treści wspólnie z rodziną i znajomymi dzięki synchronizacji odtwarzania', 'watchTogether.createSession' => 'Utwórz sesję', 'watchTogether.creating' => 'Tworzenie...', 'watchTogether.joinSession' => 'Dołącz do sesji', 'watchTogether.joining' => 'Dołączanie...', 'watchTogether.controlMode' => 'Tryb kontroli', 'watchTogether.controlModeQuestion' => 'Kto może kontrolować odtwarzanie?', - 'watchTogether.hostOnly' => 'Tylko host', + 'watchTogether.hostOnly' => 'Tylko gospodarz', 'watchTogether.anyone' => 'Każdy', - 'watchTogether.hostingSession' => 'Hostowanie sesji', + 'watchTogether.hostingSession' => 'Prowadzenie sesji', 'watchTogether.inSession' => 'W sesji', 'watchTogether.sessionCode' => 'Kod sesji', 'watchTogether.openSessionControls' => 'Otwórz sterowanie sesją „Oglądaj razem”', 'watchTogether.copySessionCode' => 'Skopiuj kod sesji', - 'watchTogether.hostControlsPlayback' => 'Host kontroluje odtwarzanie', - 'watchTogether.anyoneCanControl' => 'Każdy może kontrolować odtwarzanie', - 'watchTogether.hostControls' => 'Kontrola hosta', - 'watchTogether.anyoneControls' => 'Kontrola każdego', + 'watchTogether.hostControlsPlayback' => 'Gospodarz steruje odtwarzaniem', + 'watchTogether.anyoneCanControl' => 'Każdy może sterować odtwarzaniem', + 'watchTogether.hostControls' => 'Steruje gospodarz', + 'watchTogether.anyoneControls' => 'Steruje każdy', 'watchTogether.participants' => 'Uczestnicy', - 'watchTogether.host' => 'Host', - 'watchTogether.hostBadge' => 'HOST', - 'watchTogether.youAreHost' => 'Jesteś hostem', + 'watchTogether.host' => 'Gospodarz', + 'watchTogether.hostBadge' => 'GOSPODARZ', + 'watchTogether.youAreHost' => 'Jesteś gospodarzem', 'watchTogether.watchingWithOthers' => 'Oglądasz z innymi', 'watchTogether.endSession' => 'Zakończ sesję', 'watchTogether.leaveSession' => 'Opuść sesję', @@ -3169,19 +3177,19 @@ extension on TranslationsPl { 'watchTogether.failedToCreate' => 'Nie udało się utworzyć sesji', 'watchTogether.failedToJoin' => 'Nie udało się dołączyć do sesji', 'watchTogether.sessionCodeCopied' => 'Kod sesji skopiowany do schowka', - 'watchTogether.relayUnreachable' => 'Serwer relay jest nieosiągalny. Blokada ISP może uniemożliwiać Watch Together.', - 'watchTogether.reconnectingToHost' => 'Ponowne łączenie z hostem...', + 'watchTogether.relayUnreachable' => 'Serwer pośredniczący jest nieosiągalny. Blokada operatora internetowego może uniemożliwiać korzystanie z funkcji „Oglądaj razem”.', + 'watchTogether.reconnectingToHost' => 'Ponowne łączenie z gospodarzem...', 'watchTogether.currentPlayback' => 'Bieżące odtwarzanie', 'watchTogether.joinCurrentPlayback' => 'Dołącz do bieżącego odtwarzania', - 'watchTogether.joinCurrentPlaybackDescription' => 'Wróć do tego, co host aktualnie ogląda', + 'watchTogether.joinCurrentPlaybackDescription' => 'Wróć do treści oglądanej obecnie przez gospodarza', 'watchTogether.failedToOpenCurrentPlayback' => 'Nie udało się otworzyć bieżącego odtwarzania', + _ => null, + } ?? switch (path) { 'watchTogether.participantJoined' => ({required Object name}) => '${name} dołączył', 'watchTogether.participantLeft' => ({required Object name}) => '${name} opuścił', 'watchTogether.participantPaused' => ({required Object name}) => '${name} wstrzymał', 'watchTogether.participantResumed' => ({required Object name}) => '${name} wznowił', - _ => null, - } ?? switch (path) { - 'watchTogether.participantSeeked' => ({required Object name}) => '${name} przewinął', + 'watchTogether.participantSeeked' => ({required Object name}) => '${name} zmienił pozycję odtwarzania', 'watchTogether.participantBuffering' => ({required Object name}) => '${name} buforuje', 'watchTogether.participantNeedsUpdate' => ({required Object name}) => '${name} używa starszej wersji aplikacji — synchronizacja jest niedostępna', 'watchTogether.resumingWithout' => ({required Object name}) => 'Wznawianie bez ${name}', @@ -3231,7 +3239,7 @@ extension on TranslationsPl { 'downloads.allEpisodes' => 'Wszystkie odcinki', 'downloads.unwatchedOnly' => 'Tylko nieobejrzane', 'downloads.nextNUnwatched' => ({required Object count}) => 'Następne ${count} nieobejrzanych', - 'downloads.customAmount' => 'Własna ilość...', + 'downloads.customAmount' => 'Własna liczba...', 'downloads.includeSpecials' => 'Uwzględnij odcinki specjalne', 'downloads.howManyEpisodes' => 'Ile odcinków?', 'downloads.invalidEpisodeCount' => 'Wprowadź prawidłową liczbę odcinków.', @@ -3250,11 +3258,11 @@ extension on TranslationsPl { 'downloads.manageSyncRule' => 'Zarządzaj synchronizacją', 'downloads.editEpisodeCount' => 'Liczba odcinków', 'downloads.editSyncFilter' => 'Filtr synchronizacji', - 'downloads.syncAllItems' => 'Synchronizuję wszystkie elementy', - 'downloads.syncUnwatchedItems' => 'Synchronizuję nieobejrzane elementy', + 'downloads.syncAllItems' => 'Synchronizacja wszystkich elementów', + 'downloads.syncUnwatchedItems' => 'Synchronizacja nieobejrzanych elementów', 'downloads.syncRuleServerContext' => ({required Object server, required Object status}) => 'Serwer: ${server} • ${status}', 'downloads.syncRuleAvailable' => 'Dostępne', - 'downloads.syncRuleOffline' => 'Offline', + 'downloads.syncRuleOffline' => 'Brak połączenia', 'downloads.syncRuleSignInRequired' => 'Wymagane logowanie', 'downloads.syncRuleNotAvailableForProfile' => 'Niedostępne dla bieżącego profilu', 'downloads.syncRuleUnknownServer' => 'Nieznany serwer', @@ -3274,7 +3282,7 @@ extension on TranslationsPl { 'shaders.shaderImportFailed' => 'Nie udało się zaimportować shadera', 'shaders.deleteShader' => 'Usuń shader', 'shaders.deleteShaderConfirm' => ({required Object name}) => 'Usunąć "${name}"?', - 'companionRemote.title' => 'Pilot zdalny', + 'companionRemote.title' => 'Pilot', 'companionRemote.connectedTo' => ({required Object name}) => 'Połączono z ${name}', 'companionRemote.unknownDevice' => 'Nieznane urządzenie', 'companionRemote.session.startingServer' => 'Uruchamianie serwera zdalnego...', @@ -3293,7 +3301,7 @@ extension on TranslationsPl { 'companionRemote.pairing.connecting' => 'Łączenie...', 'companionRemote.pairing.searchingForDevices' => 'Szukanie urządzeń...', 'companionRemote.pairing.noDevicesFound' => 'Nie znaleziono urządzeń w sieci', - 'companionRemote.pairing.noDevicesHint' => 'Otwórz Plezy na komputerze i użyj tego samego WiFi', + 'companionRemote.pairing.noDevicesHint' => 'Otwórz Plezy na komputerze i połącz oba urządzenia z tą samą siecią Wi-Fi', 'companionRemote.pairing.availableDevices' => 'Dostępne urządzenia', 'companionRemote.pairing.manualConnection' => 'Połączenie ręczne', 'companionRemote.pairing.cryptoInitFailed' => 'Nie udało się uruchomić bezpiecznego połączenia. Najpierw zaloguj się do Plex.', @@ -3318,7 +3326,7 @@ extension on TranslationsPl { 'companionRemote.remote.tabDownloads' => 'Pobrania', 'companionRemote.remote.tabSettings' => 'Ustawienia', 'companionRemote.remote.previous' => 'Poprzedni', - 'companionRemote.remote.playPause' => 'Odtwórz/Pauza', + 'companionRemote.remote.playPause' => 'Odtwórz/wstrzymaj', 'companionRemote.remote.next' => 'Następny', 'companionRemote.remote.seekBack' => 'Przewiń wstecz', 'companionRemote.remote.stop' => 'Stop', @@ -3341,14 +3349,14 @@ extension on TranslationsPl { 'videoSettings.playbackSpeed' => 'Prędkość odtwarzania', 'videoSettings.normalSpeed' => 'Normalna', 'videoSettings.sleepTimerActive' => ({required Object duration}) => 'Aktywny (${duration})', - 'videoSettings.zoom' => 'Zoom', + 'videoSettings.zoom' => 'Powiększenie', 'videoSettings.sleepTimer' => 'Wyłącznik czasowy', 'videoSettings.audioSync' => 'Synchronizacja audio', 'videoSettings.subtitleSync' => 'Synchronizacja napisów', 'videoSettings.hdr' => 'HDR', 'videoSettings.audioOutput' => 'Wyjście audio', 'videoSettings.performanceOverlay' => 'Nakładka wydajności', - 'videoSettings.audioPassthrough' => 'Bezpośrednie audio', + 'videoSettings.audioPassthrough' => 'Przekazywanie dźwięku', 'videoSettings.audioNormalization' => 'Normalizacja głośności', 'videoSettings.audioDownmix' => 'Miksowanie do stereo', 'performanceOverlay.color' => 'Kolor', @@ -3368,11 +3376,11 @@ extension on TranslationsPl { 'performanceOverlay.hwFormat' => 'Format HW', 'performanceOverlay.matrix' => 'Macierz', 'performanceOverlay.primaries' => 'Barwy podstawowe', - 'performanceOverlay.transfer' => 'Transfer', + 'performanceOverlay.transfer' => 'Charakterystyka przenoszenia', 'performanceOverlay.renderFps' => 'FPS renderowania', 'performanceOverlay.displayFps' => 'FPS ekranu', - 'performanceOverlay.avSync' => 'Sync A/V', - 'performanceOverlay.dropped' => 'Porzucone', + 'performanceOverlay.avSync' => 'Synchronizacja A/V', + 'performanceOverlay.dropped' => 'Pominięte', 'performanceOverlay.dvRpus' => 'DV RPU', 'performanceOverlay.dvRpuAverage' => 'Śr. DV RPU', 'performanceOverlay.dvSampleAverage' => 'Śr. próbki DV', @@ -3380,8 +3388,8 @@ extension on TranslationsPl { 'performanceOverlay.minLuma' => 'Min. luma', 'performanceOverlay.maxCll' => 'MaxCLL', 'performanceOverlay.maxFall' => 'MaxFALL', - 'performanceOverlay.cacheUsed' => 'Użyty cache', - 'performanceOverlay.cacheLimit' => 'Limit cache\'u', + 'performanceOverlay.cacheUsed' => 'Użyta pamięć podręczna', + 'performanceOverlay.cacheLimit' => 'Limit pamięci podręcznej', 'performanceOverlay.speed' => 'Szybkość', 'performanceOverlay.player' => 'Odtwarzacz', 'performanceOverlay.memory' => 'Pamięć', @@ -3413,7 +3421,7 @@ extension on TranslationsPl { 'metadataEdit.releaseDate' => 'Data premiery', 'metadataEdit.contentRating' => 'Klasyfikacja wiekowa', 'metadataEdit.studio' => 'Studio', - 'metadataEdit.tagline' => 'Tagline', + 'metadataEdit.tagline' => 'Slogan', 'metadataEdit.summary' => 'Opis', 'metadataEdit.poster' => 'Plakat', 'metadataEdit.background' => 'Tło', @@ -3435,9 +3443,9 @@ extension on TranslationsPl { 'metadataEdit.artworkOption' => ({required Object index}) => 'Opcja grafiki ${index}', 'metadataEdit.selectedArtworkOption' => ({required Object index}) => 'Opcja grafiki ${index}, wybrana', 'metadataEdit.notSet' => 'Nie ustawiono', - 'metadataEdit.libraryDefault' => 'Domyślne biblioteki', - 'metadataEdit.accountDefault' => 'Domyślne konta', - 'metadataEdit.seriesDefault' => 'Domyślne serialu', + 'metadataEdit.libraryDefault' => 'Domyślne dla biblioteki', + 'metadataEdit.accountDefault' => 'Domyślne dla konta', + 'metadataEdit.seriesDefault' => 'Domyślne dla serialu', 'metadataEdit.episodeSorting' => 'Sortowanie odcinków', 'metadataEdit.oldestFirst' => 'Najstarsze najpierw', 'metadataEdit.newestFirst' => 'Najnowsze najpierw', @@ -3456,16 +3464,16 @@ extension on TranslationsPl { 'metadataEdit.show' => 'Pokaż', 'metadataEdit.hide' => 'Ukryj', 'metadataEdit.episodeOrdering' => 'Kolejność odcinków', - 'metadataEdit.tmdbAiring' => 'The Movie Database (Emisja)', - 'metadataEdit.tvdbAiring' => 'TheTVDB (Emisja)', - 'metadataEdit.tvdbAbsolute' => 'TheTVDB (Absolutna)', + 'metadataEdit.tmdbAiring' => 'The Movie Database (kolejność emisji)', + 'metadataEdit.tvdbAiring' => 'TheTVDB (kolejność emisji)', + 'metadataEdit.tvdbAbsolute' => 'TheTVDB (numeracja bezwzględna)', 'metadataEdit.metadataLanguage' => 'Język metadanych', 'metadataEdit.useOriginalTitle' => 'Użyj oryginalnego tytułu', 'metadataEdit.preferredAudioLanguage' => 'Preferowany język audio', 'metadataEdit.preferredSubtitleLanguage' => 'Preferowany język napisów', 'metadataEdit.subtitleMode' => 'Tryb automatycznego wyboru napisów', 'metadataEdit.manuallySelected' => 'Wybrany ręcznie', - 'metadataEdit.shownWithForeignAudio' => 'Wyświetlane przy obcojęzycznym audio', + 'metadataEdit.shownWithForeignAudio' => 'Wyświetlane przy dźwięku w obcym języku', 'metadataEdit.alwaysEnabled' => 'Zawsze włączone', 'metadataEdit.tags' => 'Tagi', 'metadataEdit.addTag' => 'Dodaj tag', @@ -3481,7 +3489,7 @@ extension on TranslationsPl { 'matchScreen.match' => 'Dopasuj...', 'matchScreen.fixMatch' => 'Popraw dopasowanie...', 'matchScreen.unmatch' => 'Usuń dopasowanie', - 'matchScreen.unmatchConfirm' => 'Wyczyścić to dopasowanie? Plex uzna je za niedopasowane do ponownego dopasowania.', + 'matchScreen.unmatchConfirm' => 'Usunąć to dopasowanie? Plex będzie traktować element jako niedopasowany, dopóki nie zostanie dopasowany ponownie.', 'matchScreen.unmatchSuccess' => 'Dopasowanie usunięte', 'matchScreen.unmatchFailed' => 'Nie udało się usunąć dopasowania', 'matchScreen.matchApplied' => 'Dopasowanie zastosowane', @@ -3497,11 +3505,11 @@ extension on TranslationsPl { 'trakt.connected' => 'Połączono', 'trakt.connectedAs' => ({required Object username}) => 'Połączono jako @${username}', 'trakt.disconnectConfirm' => 'Rozłączyć konto Trakt?', - 'trakt.disconnectConfirmBody' => 'Plezy przestanie wysyłać zdarzenia do Trakt. Możesz połączyć ponownie w dowolnym momencie.', - 'trakt.scrobble' => 'Scrobbling w czasie rzeczywistym', - 'trakt.scrobbleDescription' => 'Wysyłaj zdarzenia odtwarzania, pauzy i zatrzymania do Trakt podczas odtwarzania.', - 'trakt.watchedSync' => 'Synchronizuj status obejrzane', - 'trakt.watchedSyncDescription' => 'Gdy oznaczysz pozycje jako obejrzane w Plezy, zostaną też oznaczone w Trakt.', + 'trakt.disconnectConfirmBody' => 'Plezy przestanie wysyłać zdarzenia do serwisu Trakt. Połączenie można przywrócić w dowolnym momencie.', + 'trakt.scrobble' => 'Śledzenie odtwarzania w czasie rzeczywistym', + 'trakt.scrobbleDescription' => 'Wysyłaj do serwisu Trakt zdarzenia odtwarzania, wstrzymania i zatrzymania.', + 'trakt.watchedSync' => 'Synchronizuj stan obejrzenia', + 'trakt.watchedSyncDescription' => 'Gdy oznaczysz element jako obejrzany w Plezy, zostanie on również oznaczony jako obejrzany w serwisie Trakt.', 'seerr.title' => 'Seerr', 'seerr.connectTitle' => 'Połącz Seerr', 'seerr.serverUrl' => 'Adres URL serwera', @@ -3558,7 +3566,7 @@ extension on TranslationsPl { 'services.oauthProxy.urlCopied' => 'URL skopiowany', 'services.libraryFilter.title' => 'Filtr bibliotek', 'services.libraryFilter.subtitleAllSyncing' => 'Synchronizowanie wszystkich bibliotek', - 'services.libraryFilter.subtitleNoneSyncing' => 'Nic nie synchronizuje', + 'services.libraryFilter.subtitleNoneSyncing' => 'Brak synchronizowanych bibliotek', 'services.libraryFilter.subtitleBlocked' => ({required Object count}) => '${count} zablokowanych', 'services.libraryFilter.subtitleAllowed' => ({required Object count}) => '${count} dozwolonych', 'services.libraryFilter.mode' => 'Tryb filtra', @@ -3569,8 +3577,8 @@ extension on TranslationsPl { 'services.libraryFilter.libraries' => 'Biblioteki', 'services.libraryFilter.noLibraries' => 'Brak dostępnych bibliotek', 'addServer.addJellyfinTitle' => 'Dodaj serwer Jellyfin', - 'addServer.serverUrls' => 'URL-e serwera', - 'addServer.serverUrlsHelper' => 'Można podać wiele adresów URL, rozdzielonych przecinkami.', + 'addServer.serverUrls' => 'Adresy URL serwera', + 'addServer.serverUrlsHelper' => 'Można podać wiele adresów URL rozdzielonych przecinkami.', 'addServer.findServer' => 'Znajdź serwer', 'addServer.searchingLocalServers' => 'Szukanie lokalnych serwerów Jellyfin...', 'addServer.localServers' => 'Lokalne serwery Jellyfin', @@ -3595,7 +3603,7 @@ extension on TranslationsPl { 'addServer.connectToJellyfinCardSubtitle' => 'Wpisz URL serwera, nazwę użytkownika i hasło.', 'addServer.connectToJellyfinCardSubtitleScoped' => ({required Object name}) => 'Zaloguj się do serwera Jellyfin. Powiązane z ${name}.', 'addServer.borrowFromAnotherProfile' => 'Pożycz z innego profilu', - 'addServer.borrowFromAnotherProfileSubtitle' => 'Użyj połączenia z innego profilu. Profile chronione PIN wymagają PIN-u.', + 'addServer.borrowFromAnotherProfileSubtitle' => 'Użyj połączenia innego profilu. Profile chronione PIN-em wymagają podania PIN-u.', _ => null, }; } diff --git a/lib/i18n/strings_pt.g.dart b/lib/i18n/strings_pt.g.dart index 2410b184..87df7234 100644 --- a/lib/i18n/strings_pt.g.dart +++ b/lib/i18n/strings_pt.g.dart @@ -108,20 +108,20 @@ class _Translations$auth$pt extends Translations$auth$en { // Translations @override String get signInWithPlex => 'Entrar com Plex'; - @override String get showQRCode => 'Mostrar QR Code'; + @override String get showQRCode => 'Mostrar código QR'; @override String get authenticate => 'Autenticar'; @override String get authenticationTimeout => 'A autenticação expirou. Tente novamente.'; - @override String get scanQRToSignIn => 'Escaneie este QR code para entrar'; + @override String get scanQRToSignIn => 'Leia este código QR para entrar'; @override String get waitingForAuth => 'Aguardando autenticação...\nEntre pelo navegador.'; @override String get useBrowser => 'Usar navegador'; @override String get or => 'ou'; @override String get connectToJellyfin => 'Conectar ao Jellyfin'; @override String get useQuickConnect => 'Usar Quick Connect'; @override String get quickConnectInstructions => 'Abra o Quick Connect no Jellyfin e insira este código.'; - @override String get quickConnectWaiting => 'A aguardar aprovação…'; + @override String get quickConnectWaiting => 'Aguardando aprovação…'; @override String get quickConnectCancel => 'Cancelar'; @override String get quickConnectExpired => 'Quick Connect expirou. Tente novamente.'; - @override String get localDataRecoveryRequired => 'Plezy could not safely recover local sign-in and pending playback data. Please sign in again.'; + @override String get localDataRecoveryRequired => 'O Plezy não conseguiu recuperar com segurança os dados locais de acesso e de reproduções pendentes. Entre novamente.'; } // Path: common @@ -167,7 +167,7 @@ class _Translations$common$pt extends Translations$common$en { @override String episodeNumberTitle({required Object number, required Object title}) => 'Episódio ${number} - ${title}'; @override String chapterNumber({required Object number}) => 'Capítulo ${number}'; @override String get reconnect => 'Reconectar'; - @override String get viewAll => 'Ver Tudo'; + @override String get viewAll => 'Ver tudo'; @override String get checkingNetwork => 'Verificando rede...'; @override String get loadingServers => 'Carregando servidores...'; @override String get connectingToServers => 'Conectando aos servidores...'; @@ -199,10 +199,10 @@ class _Translations$update$pt extends Translations$update$en { final TranslationsPt _root; // ignore: unused_field // Translations - @override String get available => 'Atualização Disponível'; - @override String versionAvailable({required Object version}) => 'Versão ${version} está disponível'; + @override String get available => 'Atualização disponível'; + @override String versionAvailable({required Object version}) => 'A versão ${version} está disponível'; @override String currentVersion({required Object version}) => 'Atual: ${version}'; - @override String get skipVersion => 'Pular Esta Versão'; + @override String get skipVersion => 'Pular esta versão'; @override String get viewRelease => 'Ver Lançamento'; @override String get latestVersion => 'Você está na versão mais recente'; @override String get checkFailed => 'Falha ao verificar atualizações'; @@ -224,9 +224,9 @@ class _Translations$settings$pt extends Translations$settings$en { @override String get videoPlayback => 'Reprodução de Vídeo'; @override String get videoPlaybackDescription => 'Configurar comportamento de reprodução'; @override String get advanced => 'Avançado'; - @override String get episodePosterMode => 'Estilo do Poster de Episódio'; - @override String get seriesPoster => 'Poster da Série'; - @override String get seasonPoster => 'Poster da Temporada'; + @override String get episodePosterMode => 'Estilo do pôster do episódio'; + @override String get seriesPoster => 'Pôster da série'; + @override String get seasonPoster => 'Pôster da temporada'; @override String get episodeThumbnail => 'Miniatura'; @override String get showHeroSectionDescription => 'Exibir carrossel de conteúdo em destaque na tela inicial'; @override String get secondsLabel => 'Segundos'; @@ -241,14 +241,16 @@ class _Translations$settings$pt extends Translations$settings$en { @override String get libraryDensity => 'Densidade da Biblioteca'; @override String get compact => 'Compacto'; @override String get comfortable => 'Confortável'; + @override String get tvCornerSpotlightBackdrop => 'Imagem de destaque no canto'; + @override String get tvCornerSpotlightBackdropDescription => 'Mostrar a imagem de destaque no canto superior direito em vez de preencher a tela'; @override String get viewMode => 'Modo de Visualização'; @override String get gridView => 'Grade'; @override String get listView => 'Lista'; @override String get showHeroSection => 'Mostrar Seção de Destaque'; - @override String get continueWatchingAction => 'Ação de Continuar Assistindo'; + @override String get continueWatchingAction => 'Ação da seção Continuar assistindo'; @override String get continueWatchingPlay => 'Reproduzir'; @override String get continueWatchingDetails => 'Abrir detalhes'; - @override String get episodeAction => 'Ação de Episódio'; + @override String get episodeAction => 'Ação do episódio'; @override String get episodePlay => 'Reproduzir'; @override String get episodeDetails => 'Abrir detalhes'; @override String get useGlobalHubs => 'Usar layout inicial'; @@ -268,16 +270,16 @@ class _Translations$settings$pt extends Translations$settings$en { @override String get tvFullCardLayout => 'Cartões TV completos'; @override String get tvFullCardLayoutDescription => 'Usar cartões de TV só com imagem e nomes dos atores sobrepostos'; @override String get focusGlow => 'Brilho de foco'; - @override String get focusGlowDescription => 'Mostrar um brilho suave à volta do cartão em foco'; + @override String get focusGlowDescription => 'Mostrar um brilho suave ao redor do cartão em foco'; @override String get visualEffects => 'Efeitos visuais'; @override String get visualEffectsAuto => 'Automático'; - @override String get visualEffectsAutoDescription => 'Reduza automaticamente os efeitos em dispositivos de baixo consumo'; + @override String get visualEffectsAutoDescription => 'Reduzir os efeitos automaticamente em dispositivos de baixo consumo'; @override String get visualEffectsFull => 'Completos'; @override String get visualEffectsReduced => 'Reduzidos'; - @override String get visualEffectsReducedDescription => 'Menos animações e artes em menor resolução'; - @override String get hideSpoilers => 'Ocultar Spoilers de Episódios Não Assistidos'; - @override String get hideSpoilersDescription => 'Desfocar miniaturas e descrições de episódios não vistos'; - @override String get playerBackend => 'Backend do Player'; + @override String get visualEffectsReducedDescription => 'Menos animações e imagens em menor resolução'; + @override String get hideSpoilers => 'Ocultar spoilers de episódios não assistidos'; + @override String get hideSpoilersDescription => 'Desfocar miniaturas e descrições de episódios não assistidos'; + @override String get playerBackend => 'Mecanismo de reprodução'; @override String get exoPlayer => 'ExoPlayer'; @override String get mpv => 'mpv'; @override String get hardwareDecoding => 'Decodificação por Hardware'; @@ -294,29 +296,29 @@ class _Translations$settings$pt extends Translations$settings$en { @override String get largeSkipDuration => 'Duração do Avanço Longo'; @override String get rewindOnResume => 'Rebobinar ao retomar'; @override String secondsUnit({required Object seconds}) => '${seconds} segundos'; - @override String get defaultSleepTimer => 'Timer de Sono Padrão'; + @override String get defaultSleepTimer => 'Temporizador de suspensão padrão'; @override String minutesUnit({required Object minutes}) => '${minutes} minutos'; @override String get rememberTrackSelections => 'Lembrar seleção de faixas por série/filme'; @override String get rememberTrackSelectionsDescription => 'Lembrar escolhas de áudio e legendas por título'; @override String get showChapterMarkersOnTimeline => 'Mostrar marcadores de capítulos na barra de reprodução'; @override String get showChapterMarkersOnTimelineDescription => 'Segmentar a barra de reprodução nos limites dos capítulos'; @override String get clickVideoTogglesPlayback => 'Clicar no vídeo para alternar reprodução/pausa'; - @override String get clickVideoTogglesPlaybackDescription => 'Clique no vídeo para reproduzir/pausar em vez de mostrar controles.'; - @override String get videoPlayerControls => 'Controles do Player de Vídeo'; + @override String get clickVideoTogglesPlaybackDescription => 'Clicar no vídeo para reproduzir ou pausar em vez de mostrar os controles.'; + @override String get videoPlayerControls => 'Controles do reprodutor de vídeo'; @override String get keyboardShortcuts => 'Atalhos de Teclado'; @override String get keyboardShortcutsDescription => 'Personalizar atalhos de teclado'; - @override String get videoPlayerNavigation => 'Navegação do Player de Vídeo'; - @override String get videoPlayerNavigationDescription => 'Usar teclas de seta para navegar nos controles do player'; - @override String get watchTogetherRelay => 'Relay do Assistir Juntos'; - @override String get watchTogetherRelayDescription => 'Defina um relay personalizado. Todos devem usar o mesmo servidor.'; - @override String get watchTogetherRelayHint => 'https://meu-relay.exemplo.com.br'; - @override String get watchTogetherRelayInvalid => 'Enter a valid HTTP or HTTPS relay base URL.'; + @override String get videoPlayerNavigation => 'Navegação do reprodutor de vídeo'; + @override String get videoPlayerNavigationDescription => 'Usar as teclas de seta para navegar pelos controles do reprodutor'; + @override String get watchTogetherRelay => 'Servidor de retransmissão do Assistir Juntos'; + @override String get watchTogetherRelayDescription => 'Definir um servidor de retransmissão personalizado. Todos devem usar o mesmo servidor.'; + @override String get watchTogetherRelayHint => 'https://minha-retransmissao.exemplo.com.br'; + @override String get watchTogetherRelayInvalid => 'Insira uma URL base de retransmissão HTTP ou HTTPS válida.'; @override String get crashReporting => 'Relatório de Erros'; @override String get crashReportingDescription => 'Enviar relatórios de erros para ajudar a melhorar o app'; @override String get debugLogging => 'Log de Depuração'; @override String get debugLoggingDescription => 'Ativar log detalhado para solução de problemas'; @override String get viewLogs => 'Ver Logs'; - @override String get viewLogsDescription => 'Ver logs do aplicativo'; + @override String get viewLogsDescription => 'Ver logs do app'; @override String get clearCache => 'Limpar Cache'; @override String get clearCacheDescription => 'Limpar imagens e dados em cache. O conteúdo pode carregar mais devagar.'; @override String get clearCacheSuccess => 'Cache limpo com sucesso'; @@ -325,7 +327,7 @@ class _Translations$settings$pt extends Translations$settings$en { @override String get resetSettingsSuccess => 'Configurações redefinidas com sucesso'; @override String get backup => 'Backup'; @override String get exportSettings => 'Exportar Configurações'; - @override String get exportSettingsDescription => 'Salve suas preferências em um arquivo'; + @override String get exportSettingsDescription => 'Salvar suas preferências em um arquivo'; @override String get exportSettingsSuccess => 'Configurações exportadas'; @override String get importSettings => 'Importar Configurações'; @override String get importSettingsDescription => 'Restaurar preferências a partir de um arquivo'; @@ -342,23 +344,23 @@ class _Translations$settings$pt extends Translations$settings$en { @override String get autoCheckUpdatesOnStartup => 'Verificar atualizações automaticamente ao iniciar'; @override String get autoCheckUpdatesOnStartupDescription => 'Notificar ao iniciar quando houver atualização disponível'; @override String get validationErrorEnterNumber => 'Insira um número válido'; - @override String validationErrorDuration({required Object min, required Object max, required Object unit}) => 'A duração deve ser entre ${min} e ${max} ${unit}'; + @override String validationErrorDuration({required Object min, required Object max, required Object unit}) => 'A duração deve estar entre ${min} e ${max} ${unit}'; @override String shortcutAlreadyAssigned({required Object action}) => 'Atalho já atribuído a ${action}'; @override String shortcutUpdated({required Object action}) => 'Atalho atualizado para ${action}'; - @override String get saveFailed => 'Could not save changes. Try again.'; - @override String get autoSkip => 'Pular Automaticamente'; - @override String get autoSkipIntro => 'Pular Intro Automaticamente'; - @override String get autoSkipIntroDescription => 'Pular marcadores de intro automaticamente após alguns segundos'; - @override String get autoSkipCredits => 'Pular Créditos Automaticamente'; - @override String get autoSkipCreditsDescription => 'Pular créditos automaticamente e reproduzir próximo episódio'; + @override String get saveFailed => 'Não foi possível salvar as alterações. Tente novamente.'; + @override String get autoSkip => 'Pular automaticamente'; + @override String get autoSkipIntro => 'Pular introdução automaticamente'; + @override String get autoSkipIntroDescription => 'Pular marcadores de introdução automaticamente após alguns segundos'; + @override String get autoSkipCredits => 'Pular créditos automaticamente'; + @override String get autoSkipCreditsDescription => 'Pular os créditos automaticamente e reproduzir o próximo episódio'; @override String get forceSkipMarkerFallback => 'Forçar marcadores alternativos'; - @override String get forceSkipMarkerFallbackDescription => 'Usar padrões de títulos de capítulos mesmo quando Plex tiver marcadores'; - @override String get autoSkipDelay => 'Atraso do Pulo Automático'; + @override String get forceSkipMarkerFallbackDescription => 'Usar padrões de títulos de capítulos mesmo quando o Plex tiver marcadores'; + @override String get autoSkipDelay => 'Atraso para pular automaticamente'; @override String autoSkipDelayDescription({required Object seconds}) => 'Aguardar ${seconds} segundos antes de pular automaticamente'; - @override String get introPattern => 'Padrão de marcador de intro'; - @override String get introPatternDescription => 'Expressão regular para corresponder marcadores de intro nos títulos dos capítulos'; - @override String get creditsPattern => 'Padrão de marcador de créditos'; - @override String get creditsPatternDescription => 'Expressão regular para corresponder marcadores de créditos nos títulos dos capítulos'; + @override String get introPattern => 'Padrão do marcador de introdução'; + @override String get introPatternDescription => 'Expressão regular que identifica marcadores de introdução nos títulos dos capítulos'; + @override String get creditsPattern => 'Padrão do marcador de créditos'; + @override String get creditsPatternDescription => 'Expressão regular que identifica marcadores de créditos nos títulos dos capítulos'; @override String get invalidRegex => 'Expressão regular inválida'; @override String get regex => 'Expressão regular'; @override String get downloads => 'Downloads'; @@ -372,11 +374,11 @@ class _Translations$settings$pt extends Translations$settings$en { @override String get downloadLocationReset => 'Local de download redefinido para padrão'; @override String get downloadLocationInvalid => 'A pasta selecionada não permite gravação'; @override String get downloadLocationPickerUnavailable => 'A seleção de pasta não está disponível neste dispositivo'; - @override String get downloadOnWifiOnly => 'Baixar apenas no WiFi'; - @override String get downloadOnWifiOnlyDescription => 'Impedir downloads quando em dados móveis'; - @override String get autoRemoveWatchedDownloads => 'Remover downloads assistidos automaticamente'; - @override String get autoRemoveWatchedDownloadsDescription => 'Excluir downloads assistidos automaticamente'; - @override String get cellularDownloadBlocked => 'Downloads estão bloqueados na rede móvel. Use WiFi ou altere a configuração.'; + @override String get downloadOnWifiOnly => 'Baixar apenas por Wi-Fi'; + @override String get downloadOnWifiOnlyDescription => 'Impedir downloads ao usar dados móveis'; + @override String get autoRemoveWatchedDownloads => 'Remover automaticamente os downloads assistidos'; + @override String get autoRemoveWatchedDownloadsDescription => 'Excluir automaticamente os downloads assistidos'; + @override String get cellularDownloadBlocked => 'Os downloads estão bloqueados nos dados móveis. Use Wi-Fi ou altere a configuração.'; @override String get maxVolume => 'Volume Máximo'; @override String get maxVolumeDescription => 'Permitir aumento de volume acima de 100% para mídias silenciosas'; @override String maxVolumePercent({required Object percent}) => '${percent}%'; @@ -385,38 +387,38 @@ class _Translations$settings$pt extends Translations$settings$en { @override String get services => 'Serviços'; @override String get servicesDescription => 'Conecte Trakt, MyAnimeList, Seerr e mais'; @override String get manageLibrariesDescription => 'Reordene e oculte bibliotecas'; - @override String get companionRemoteServer => 'Servidor de controlo remoto'; - @override String get companionRemoteServerDescription => 'Permitir que dispositivos móveis na sua rede controlem esta aplicação'; - @override String get autoPip => 'Picture-in-Picture Automático'; - @override String get autoPipDescription => 'Entrar em picture-in-picture ao sair durante a reprodução'; - @override String get matchContentFrameRate => 'Corresponder Taxa de Quadros do Conteúdo'; + @override String get companionRemoteServer => 'Servidor de controle remoto'; + @override String get companionRemoteServerDescription => 'Permitir que dispositivos móveis na sua rede controlem este app'; + @override String get autoPip => 'Picture-in-picture automático'; + @override String get autoPipDescription => 'Entrar automaticamente no modo picture-in-picture ao sair do app durante a reprodução'; + @override String get matchContentFrameRate => 'Ajustar à taxa de quadros do conteúdo'; @override String get matchContentFrameRateDescription => 'Ajustar a taxa de atualização da tela ao conteúdo de vídeo'; - @override String get matchRefreshRate => 'Corresponder Taxa de Atualização'; + @override String get matchRefreshRate => 'Ajustar à taxa de atualização'; @override String get matchRefreshRateDescription => 'Ajustar a taxa de atualização da tela em tela cheia'; - @override String get matchDynamicRange => 'Corresponder Faixa Dinâmica'; + @override String get matchDynamicRange => 'Ajustar à faixa dinâmica'; @override String get matchDynamicRangeDescription => 'Ativar HDR para conteúdo HDR e depois voltar para SDR'; - @override String get displaySwitchDelay => 'Atraso na Troca de Tela'; - @override String get tunneledPlayback => 'Reprodução Tunelizada'; - @override String get tunneledPlaybackDescription => 'Usar tunelamento de vídeo. Desative se HDR mostrar vídeo preto.'; - @override String get audioPassthrough => 'Passagem de Áudio'; - @override String get audioPassthroughDescription => 'Envie áudio Dolby/DTS para o seu receptor ou TV sem recodificar, preservando o som surround. Desative se não tiver som.'; - @override String get audioPassthroughDescriptionAppleTv => 'Entrega Dolby Digital Plus (incluindo Atmos) ao sistema como bitstream. DTS e TrueHD continuam sendo reproduzidos como PCM multicanal. Podem ocorrer breves cortes de áudio ao buscar.'; - @override String get audioDownmix => 'Downmix para Estéreo'; - @override String get audioDownmixDescription => 'Mistura o áudio surround em dois canais para alto-falantes estéreo ou fones de ouvido'; - @override String get downmixCenterBoost => 'Reforço do Canal Central'; + @override String get displaySwitchDelay => 'Atraso na troca do modo de exibição'; + @override String get tunneledPlayback => 'Reprodução em túnel'; + @override String get tunneledPlaybackDescription => 'Usar o tunelamento de vídeo. Desative se o vídeo ficar preto ao reproduzir em HDR.'; + @override String get audioPassthrough => 'Passagem direta de áudio'; + @override String get audioPassthroughDescription => 'Enviar o áudio Dolby/DTS ao receptor ou à TV sem recodificação, preservando o som surround. Desative se não houver som.'; + @override String get audioPassthroughDescriptionAppleTv => 'Usar o decodificador Dolby nativo da Apple para Dolby Digital Plus, incluindo Atmos. DTS e TrueHD continuam sendo reproduzidos como PCM multicanal. Desative se não houver som.'; + @override String get audioDownmix => 'Conversão para estéreo'; + @override String get audioDownmixDescription => 'Converter o áudio surround em dois canais para alto-falantes estéreo ou fones de ouvido'; + @override String get downmixCenterBoost => 'Reforço do canal central'; @override String downmixCenterBoostValue({required Object db}) => '${db} dB'; @override String get downmixCenterBoostLabel => 'Reforço (dB)'; @override String get downmixCenterBoostShort => 'dB'; - @override String get audioDownmixNormalize => 'Normalizar Volume no Downmix'; - @override String get audioDownmixNormalizeDescription => 'Reduz a mixagem para evitar saturação. Desative para manter o volume original (cenas altas podem distorcer).'; + @override String get audioDownmixNormalize => 'Normalizar volume na conversão para estéreo'; + @override String get audioDownmixNormalizeDescription => 'Reduzir o volume da mixagem para evitar saturação. Desative para manter o volume original, que pode distorcer em cenas muito altas.'; @override String get atmosDiagnostics => 'Teste de saída Atmos'; - @override String get atmosDiagnosticsDescription => 'Diagnostique a saída Dolby Atmos reproduzindo sinais de teste pelo player do sistema'; - @override String get atmosTestHlsAtmos => 'Stream Atmos da Apple'; - @override String get atmosTestHlsAtmosDescription => 'Stream Dolby Atmos comprovadamente bom. O receptor deve mostrar Dolby Atmos.'; - @override String get atmosTestHlsControl => 'Stream surround da Apple'; - @override String get atmosTestHlsControlDescription => 'Stream de controle sem Atmos. O receptor deve mostrar surround sem Atmos.'; - @override String get atmosTestRawStream => 'Stream EAC3 bruto'; - @override String get atmosTestRawStreamDescription => 'Transmite o arquivo de teste exatamente como a reprodução Atmos no player. Requer a URL do arquivo de teste.'; + @override String get atmosDiagnosticsDescription => 'Diagnosticar a saída Dolby Atmos reproduzindo sinais de teste pelo reprodutor do sistema'; + @override String get atmosTestHlsAtmos => 'Transmissão Atmos da Apple'; + @override String get atmosTestHlsAtmosDescription => 'Transmissão Dolby Atmos comprovadamente compatível. O receptor deve indicar Dolby Atmos.'; + @override String get atmosTestHlsControl => 'Transmissão surround da Apple'; + @override String get atmosTestHlsControlDescription => 'Transmissão de controle sem Atmos. O receptor deve indicar surround sem Atmos.'; + @override String get atmosTestRawStream => 'Transmissão EAC3 bruta'; + @override String get atmosTestRawStreamDescription => 'Transmite o arquivo de teste exatamente como na reprodução Atmos pelo reprodutor. Requer a URL do arquivo de teste.'; @override String get atmosTestRawFile => 'Arquivo EAC3 bruto'; @override String get atmosTestRawFileDescription => 'Reproduz o arquivo de teste com duração conhecida. Requer a URL do arquivo de teste.'; @override String get atmosTestStop => 'Parar teste'; @@ -430,25 +432,25 @@ class _Translations$settings$pt extends Translations$settings$en { @override String get dvConversionNative => 'Nativo / desativado'; @override String get dvConversionDv81 => 'P7 → P8.1'; @override String get dvConversionHevcStrip => 'P7 → HEVC'; - @override String get dvConversionAutoDescription => 'Usar detecção de recursos do dispositivo e comportamento normal de fallback'; - @override String get dvConversionNativeDescription => 'Forçar DV7 nativo e suprimir nova tentativa de conversão DV'; - @override String get dvConversionDv81Description => 'Forçar conversão RPU inline para Dolby Vision perfil 8.1'; - @override String get dvConversionHevcStripDescription => 'Remover camadas RPU/EL do Dolby Vision e apresentar HEVC simples'; + @override String get dvConversionAutoDescription => 'Usar a detecção de recursos do dispositivo e o comportamento alternativo padrão'; + @override String get dvConversionNativeDescription => 'Forçar DV7 nativo e impedir uma nova tentativa de conversão de DV'; + @override String get dvConversionDv81Description => 'Forçar a conversão RPU integrada para Dolby Vision perfil 8.1'; + @override String get dvConversionHevcStripDescription => 'Remover as camadas RPU/EL do Dolby Vision e apresentar HEVC sem Dolby Vision'; @override String get requireProfileSelectionOnOpen => 'Pedir perfil ao abrir o app'; - @override String get requireProfileSelectionOnOpenDescription => 'Mostrar seleção de perfil toda vez que o app for aberto'; + @override String get requireProfileSelectionOnOpenDescription => 'Mostrar a seleção de perfil sempre que o app for aberto'; @override String get forceTvMode => 'Forçar modo TV'; - @override String get forceTvModeDescription => 'Forçar layout TV. Para dispositivos sem detecção automática. Requer reinício.'; + @override String get forceTvModeDescription => 'Forçar o layout de TV em dispositivos sem detecção automática. Requer reiniciar o app.'; @override String get startInFullscreen => 'Iniciar em tela cheia'; @override String get startInFullscreenDescription => 'Abrir o Plezy em modo de tela cheia ao iniciar'; - @override String get exitFullscreenOnPlayerClose => 'Sair do ecrã inteiro ao fechar o leitor'; - @override String get exitFullscreenOnPlayerCloseDescription => 'Sair automaticamente do modo de ecrã inteiro ao fechar o leitor de vídeo'; - @override String get autoHidePerformanceOverlay => 'Ocultar overlay de desempenho automaticamente'; - @override String get autoHidePerformanceOverlayDescription => 'Desvanecer o overlay de desempenho com os controles de reprodução'; + @override String get exitFullscreenOnPlayerClose => 'Sair da tela cheia ao fechar o reprodutor'; + @override String get exitFullscreenOnPlayerCloseDescription => 'Sair automaticamente da tela cheia ao fechar o reprodutor de vídeo'; + @override String get autoHidePerformanceOverlay => 'Ocultar automaticamente o painel de desempenho'; + @override String get autoHidePerformanceOverlayDescription => 'Esmaecer o painel de desempenho junto com os controles de reprodução'; @override String get showNavBarLabels => 'Mostrar Rótulos da Barra de Navegação'; @override String get showNavBarLabelsDescription => 'Exibir rótulos de texto sob os ícones da barra de navegação'; @override String get startupSection => 'Seção inicial'; @override String get liveTvDefaultFavorites => 'Canais favoritos por padrão'; - @override String get liveTvDefaultFavoritesDescription => 'Mostrar apenas canais favoritos ao abrir TV ao vivo'; + @override String get liveTvDefaultFavoritesDescription => 'Mostrar apenas os canais favoritos ao abrir a TV ao vivo'; @override String get display => 'Tela'; @override String get homeScreen => 'Tela inicial'; @override String get navigation => 'Navegação'; @@ -496,18 +498,18 @@ class _Translations$fileInfo$pt extends Translations$fileInfo$en { final TranslationsPt _root; // ignore: unused_field // Translations - @override String get title => 'Info do Arquivo'; + @override String get title => 'Informações do arquivo'; @override String get video => 'Vídeo'; @override String get audio => 'Áudio'; @override String get file => 'Arquivo'; @override String get advanced => 'Avançado'; @override String get codec => 'Codec'; @override String get resolution => 'Resolução'; - @override String get bitrate => 'Taxa de Bits'; + @override String get bitrate => 'Taxa de bits'; @override String get frameRate => 'Taxa de Quadros'; @override String get aspectRatio => 'Proporção'; @override String get profile => 'Perfil'; - @override String get bitDepth => 'Profundidade de Bits'; + @override String get bitDepth => 'Profundidade de bits'; @override String get colorSpace => 'Espaço de Cor'; @override String get colorRange => 'Faixa de Cor'; @override String get colorPrimaries => 'Primárias de Cor'; @@ -517,10 +519,10 @@ class _Translations$fileInfo$pt extends Translations$fileInfo$en { @override String get overallBitrate => 'Taxa de bits total'; @override String get path => 'Caminho'; @override String get size => 'Tamanho'; - @override String get container => 'Container'; + @override String get container => 'Contêiner'; @override String get duration => 'Duração'; - @override String get optimizedForStreaming => 'Otimizado para Streaming'; - @override String get has64bitOffsets => 'Offsets de 64 bits'; + @override String get optimizedForStreaming => 'Otimizado para transmissão'; + @override String get has64bitOffsets => 'Deslocamentos de 64 bits'; } // Path: mediaMenu @@ -537,7 +539,7 @@ class _Translations$mediaMenu$pt extends Translations$mediaMenu$en { @override String get goToSeries => 'Ir para a série'; @override String get shufflePlay => 'Reprodução Aleatória'; @override String get shuffleNotAvailableOffline => 'Reprodução aleatória indisponível offline'; - @override String get fileInfo => 'Info do Arquivo'; + @override String get fileInfo => 'Informações do arquivo'; @override String get deleteFromServer => 'Excluir do servidor'; @override String get confirmDelete => 'Excluir esta mídia e seus arquivos do servidor?'; @override String get deleteMultipleWarning => 'Isso inclui todos os episódios e seus arquivos.'; @@ -638,11 +640,11 @@ class _Translations$videoControls$pt extends Translations$videoControls$en { @override String get stretch => 'Esticar'; @override String get lockRotation => 'Travar rotação'; @override String get unlockRotation => 'Destravar rotação'; - @override String get timerActive => 'Timer Ativo'; + @override String get timerActive => 'Temporizador ativo'; @override String playbackWillPauseIn({required Object duration}) => 'A reprodução pausará em ${duration}'; @override String get sleepTimerEndOfVideo => 'Fim do vídeo atual'; @override String get sleepTimerStopAtHeader => 'Parar em'; - @override String get sleepTimerDurationHeader => 'Timer'; + @override String get sleepTimerDurationHeader => 'Temporizador'; @override String get playbackWillPauseAtEnd => 'A reprodução pausará no final deste vídeo'; @override String get stillWatching => 'Ainda assistindo?'; @override String pausingIn({required Object seconds}) => 'Pausando em ${seconds}s'; @@ -651,6 +653,8 @@ class _Translations$videoControls$pt extends Translations$videoControls$en { @override String get playNext => 'Reproduzir Próximo'; @override String get playButton => 'Reproduzir'; @override String get pauseButton => 'Pausar'; + @override String get showPlaybackControls => 'Mostrar controles de reprodução'; + @override String get hidePlaybackControls => 'Ocultar controles de reprodução'; @override String seekBackwardButton({required Object seconds}) => 'Retroceder ${seconds} segundos'; @override String seekForwardButton({required Object seconds}) => 'Avançar ${seconds} segundos'; @override String get previousButton => 'Episódio anterior'; @@ -659,8 +663,8 @@ class _Translations$videoControls$pt extends Translations$videoControls$en { @override String get nextChapterButton => 'Próximo capítulo'; @override String get muteButton => 'Silenciar'; @override String get unmuteButton => 'Ativar som'; - @override String get settingsButton => 'Configurações de Reprodução'; - @override String get tracksButton => 'Áudio e Legendas'; + @override String get settingsButton => 'Configurações de reprodução'; + @override String get tracksButton => 'Áudio e legendas'; @override String get chaptersButton => 'Capítulos'; @override String get versionQualityButton => 'Versão e qualidade'; @override String get versionColumnHeader => 'Versão'; @@ -698,7 +702,7 @@ class _Translations$videoControls$pt extends Translations$videoControls$en { @override String get noAudioTracksAvailable => 'Nenhuma faixa de áudio disponível'; @override String get noTracksAvailable => 'Nenhuma faixa disponível'; @override String get subtitleDownloaded => 'Legenda baixada'; - @override String get subtitleDownloadedNotApplied => 'A legenda foi transferida, mas não foi possível selecioná-la'; + @override String get subtitleDownloadedNotApplied => 'A legenda foi baixada, mas não foi possível selecioná-la'; @override String get subtitleDownloadFailed => 'Falha ao baixar legenda'; @override String get searchLanguages => 'Pesquisar idiomas...'; } @@ -719,23 +723,23 @@ class _Translations$messages$pt extends Translations$messages$en { one: 'Removido automaticamente ${n} download assistido', other: 'Removidos automaticamente ${n} downloads assistidos', ); - @override String get removedFromContinueWatching => 'Removido de Continuar Assistindo'; + @override String get removedFromContinueWatching => 'Removido de Continuar assistindo'; @override String errorLoading({required Object error}) => 'Erro: ${error}'; - @override String get streamInterrupted => 'A transmissão foi interrompida. Toque em reproduzir ou avance para tentar novamente.'; - @override String get liveStreamInterrupted => 'A transmissão ao vivo foi interrompida. Toque em reproduzir para tentar novamente.'; + @override String get streamInterrupted => 'A transmissão foi interrompida. Pressione reproduzir ou avance para tentar novamente.'; + @override String get liveStreamInterrupted => 'A transmissão ao vivo foi interrompida. Pressione reproduzir para tentar novamente.'; @override String get fileInfoNotAvailable => 'Informações do arquivo não disponíveis'; - @override String get playbackAuthenticationRequired => 'Sign in to the media server again to play this item.'; - @override String get playbackServerUnavailable => 'The media server is unavailable. Try again later.'; - @override String get playbackDataInvalid => 'The server returned invalid playback information.'; - @override String get playbackCancelled => 'Playback was cancelled.'; - @override String get playbackFailed => 'Playback could not be started.'; - @override String errorLoadingFileInfo({required Object error}) => 'Erro ao carregar info do arquivo: ${error}'; + @override String get playbackAuthenticationRequired => 'Entre novamente no servidor de mídia para reproduzir este item.'; + @override String get playbackServerUnavailable => 'O servidor de mídia está indisponível. Tente novamente mais tarde.'; + @override String get playbackDataInvalid => 'O servidor retornou informações de reprodução inválidas.'; + @override String get playbackCancelled => 'A reprodução foi cancelada.'; + @override String get playbackFailed => 'Não foi possível iniciar a reprodução.'; + @override String errorLoadingFileInfo({required Object error}) => 'Erro ao carregar as informações do arquivo: ${error}'; @override String get errorLoadingSeries => 'Erro ao carregar série'; - @override String get musicNotSupported => 'Reprodução de música ainda não é suportada'; + @override String get musicNotSupported => 'A reprodução de música ainda não é compatível'; @override String get noDescriptionAvailable => 'Nenhuma descrição disponível'; @override String get noProfilesAvailable => 'Nenhum perfil disponível'; - @override String get contactAdminForProfiles => 'Contate o administrador do servidor para adicionar perfis'; - @override String get unableToDetermineLibrarySection => 'Não é possível determinar a secção da biblioteca para este item'; + @override String get contactAdminForProfiles => 'Entre em contato com o administrador do servidor para adicionar perfis'; + @override String get unableToDetermineLibrarySection => 'Não foi possível determinar a seção da biblioteca deste item'; @override String get logsCleared => 'Logs limpos'; @override String get logsCopied => 'Logs copiados para a área de transferência'; @override String get noLogsAvailable => 'Nenhum log disponível'; @@ -745,23 +749,23 @@ class _Translations$messages$pt extends Translations$messages$en { @override String metadataRefreshing({required Object title}) => 'Atualizando metadados de "${title}"...'; @override String metadataRefreshStarted({required Object title}) => 'Atualização de metadados iniciada para "${title}"'; @override String metadataRefreshFailed({required Object error}) => 'Falha ao atualizar metadados: ${error}'; - @override String get logoutConfirm => 'Tem certeza que deseja sair?'; + @override String get logoutConfirm => 'Tem certeza de que deseja sair?'; @override String get noSeasonsFound => 'Nenhuma temporada encontrada'; @override String get seasonsLoadFailed => 'Não foi possível carregar as temporadas'; @override String get noEpisodesFound => 'Nenhum episódio encontrado na primeira temporada'; @override String get noEpisodesFoundGeneral => 'Nenhum episódio encontrado'; @override String get episodesLoadFailed => 'Não foi possível carregar os episódios'; @override String get noResultsFound => 'Nenhum resultado encontrado'; - @override String sleepTimerSet({required Object label}) => 'Timer de sono definido para ${label}'; + @override String sleepTimerSet({required Object label}) => 'Temporizador de suspensão definido como ${label}'; @override String get noItemsAvailable => 'Nenhum item disponível'; - @override String get failedToCreatePlayQueueNoItems => 'Falha ao criar fila de reprodução - sem itens'; + @override String get failedToCreatePlayQueueNoItems => 'Falha ao criar a fila de reprodução — nenhum item'; @override String failedPlayback({required Object action, required Object error}) => 'Falha ao ${action}: ${error}'; - @override String get switchingToCompatiblePlayer => 'Alternando para player compatível...'; + @override String get switchingToCompatiblePlayer => 'Alternando para um reprodutor compatível...'; @override String get serverLimitTitle => 'Falha na reprodução'; - @override String get serverLimitBody => 'Erro do servidor (HTTP 500). Um limite de largura de banda/transcodificação provavelmente rejeitou esta sessão. Peça ao dono para ajustar.'; + @override String get serverLimitBody => 'Erro do servidor (HTTP 500). Um limite de largura de banda ou transcodificação provavelmente rejeitou esta sessão. Peça ao proprietário do servidor para ajustá-lo.'; @override String get logsUploaded => 'Logs enviados'; @override String get logsUploadFailed => 'Falha ao enviar logs'; - @override String get logId => 'ID do Log'; + @override String get logId => 'ID do log'; } // Path: subtitlingStyling @@ -802,7 +806,7 @@ class _Translations$mpvConfig$pt extends Translations$mpvConfig$en { // Translations @override String get title => 'mpv.conf'; - @override String get description => 'Configurações avançadas do player de vídeo'; + @override String get description => 'Configurações avançadas do reprodutor de vídeo'; @override String get presets => 'Predefinições'; @override String get noPresets => 'Nenhuma predefinição salva'; @override String get saveAsPreset => 'Salvar como Predefinição...'; @@ -813,7 +817,7 @@ class _Translations$mpvConfig$pt extends Translations$mpvConfig$en { @override String get presetSaved => 'Predefinição salva'; @override String get presetLoaded => 'Predefinição carregada'; @override String get presetDeleted => 'Predefinição excluída'; - @override String get confirmDeletePreset => 'Tem certeza que deseja excluir esta predefinição?'; + @override String get confirmDeletePreset => 'Tem certeza de que deseja excluir esta predefinição?'; @override String get configPlaceholder => 'gpu-api=vulkan\nhwdec=auto\n# comment'; } @@ -843,11 +847,11 @@ class _Translations$profiles$pt extends Translations$profiles$en { @override String get delete => 'Excluir'; @override String get signOut => 'Sair'; @override String get signOutPlexTitle => 'Sair do Plex?'; - @override String signOutPlexMessage({required Object displayName}) => 'Remover ${displayName} e todos os usuários Plex Home? Você pode entrar novamente quando quiser.'; + @override String signOutPlexMessage({required Object displayName}) => 'Remover ${displayName} e todos os usuários do Plex Home? Você pode entrar novamente quando quiser.'; @override String get signedOutPlex => 'Saiu do Plex.'; @override String get signOutFailed => 'Falha ao sair.'; @override String get sectionTitle => 'Perfis'; - @override String get summarySingle => 'Adicione perfis para mesclar usuários gerenciados e identidades locais'; + @override String get summarySingle => 'Adicione perfis para combinar usuários gerenciados e identidades locais'; @override String summaryMultipleWithActive({required Object count, required Object activeName}) => '${count} perfis · ativo: ${activeName}'; @override String summaryMultiple({required Object count}) => '${count} perfis'; @override String get removeConnectionTitle => 'Remover conexão?'; @@ -857,7 +861,7 @@ class _Translations$profiles$pt extends Translations$profiles$en { @override String get profileNameLabel => 'Nome do perfil'; @override String get pinProtectionLabel => 'Proteção por PIN'; @override String get pinManagedByPlex => 'PIN gerenciado pelo Plex. Edite em plex.tv.'; - @override String get noPinSetEditOnPlex => 'Nenhum PIN definido. Para exigir um, edite o usuário Home em plex.tv.'; + @override String get noPinSetEditOnPlex => 'Nenhum PIN definido. Para exigir um, edite o usuário do Plex Home em plex.tv.'; @override String get setPin => 'Definir PIN'; @override String get setPinTitle => 'Definir PIN'; @override String get confirmPinTitle => 'Confirmar PIN'; @@ -877,19 +881,19 @@ class _Translations$profiles$pt extends Translations$profiles$en { @override String get profileRenamed => 'Perfil renomeado.'; @override String borrowAddTo({required Object displayName}) => 'Adicionar a ${displayName}'; @override String get borrowExplain => 'Use a conexão de outro perfil. Perfis protegidos por PIN exigem PIN.'; - @override String get borrowEmpty => 'Nada para emprestar ainda.'; + @override String get borrowEmpty => 'Nenhuma conexão disponível ainda.'; @override String get borrowEmptySubtitle => 'Conecte Plex ou Jellyfin a outro perfil primeiro.'; - @override String get borrowLoadFailed => 'Available connections could not be loaded. Try again.'; + @override String get borrowLoadFailed => 'Não foi possível carregar as conexões disponíveis. Tente novamente.'; @override String borrowFromProfile({required Object displayName}) => 'De ${displayName}'; - @override String get borrowConnectionBorrowed => 'Conexão tomada emprestada.'; - @override String get borrowFailed => 'Não foi possível tomar a conexão emprestada.'; + @override String get borrowConnectionBorrowed => 'Conexão adicionada ao perfil.'; + @override String get borrowFailed => 'Não foi possível adicionar a conexão.'; @override String get incorrectPin => 'PIN incorreto.'; @override String get incorrectPinTryAgain => 'PIN incorreto. Tente novamente.'; @override String get sourceProfileMissingParentAccount => 'O perfil de origem não tem a conta principal.'; - @override String get failedToLoadHomeUsers => 'Não foi possível carregar seus usuários do Plex Home. Verifique sua conexão e tente novamente.'; + @override String get failedToLoadHomeUsers => 'Não foi possível carregar os usuários do Plex Home. Verifique sua conexão e tente novamente.'; @override String get failedToVerifyPin => 'Não foi possível verificar o PIN.'; @override String get newProfile => 'Novo perfil'; - @override String get profileNameHint => 'ex.: Visitantes, Crianças, Sala de família'; + @override String get profileNameHint => 'Ex.: Visitantes, Crianças, Sala de família'; @override String get pinProtectionOptional => 'Proteção por PIN (opcional)'; @override String get pinExplain => 'PIN de 4 dígitos necessário para trocar perfis.'; @override String get continueButton => 'Continuar'; @@ -905,10 +909,10 @@ class _Translations$connections$pt extends Translations$connections$en { // Translations @override String get sectionTitle => 'Conexões'; @override String get addConnection => 'Adicionar conexão'; - @override String get addConnectionSubtitleNoProfile => 'Faça login com Plex ou conecte um servidor Jellyfin'; + @override String get addConnectionSubtitleNoProfile => 'Entre com Plex ou conecte um servidor Jellyfin'; @override String addConnectionSubtitleScoped({required Object displayName}) => 'Adicionar a ${displayName}: Plex, Jellyfin ou outra conexão de perfil'; - @override String sessionExpiredOne({required Object name}) => 'Sessão expirada para ${name}'; - @override String sessionExpiredMany({required Object count}) => 'Sessão expirada para ${count} servidores'; + @override String sessionExpiredOne({required Object name}) => 'Sessão de ${name} expirada'; + @override String sessionExpiredMany({required Object count}) => 'Sessões expiradas em ${count} servidores'; @override String get signInAgain => 'Entrar novamente'; @override String get editJellyfinTitle => 'Editar conexão Jellyfin'; @override String editJellyfinIntro({required Object serverName}) => 'Adicione ou remova URLs de ${serverName}. O Plezy usará a URL acessível com a menor latência.'; @@ -936,13 +940,13 @@ class _Translations$discover$pt extends Translations$discover$en { @override String playEpisode({required Object season, required Object episode}) => 'S${season}E${episode}'; @override String get overview => 'Sinopse'; @override String get cast => 'Elenco'; - @override String get extras => 'Trailers e Extras'; + @override String get extras => 'Trailers e extras'; @override String get studio => 'Estúdio'; @override String get rating => 'Avaliação'; @override String get movie => 'Filme'; @override String get tvShow => 'Série de TV'; @override String minutesLeft({required Object minutes}) => '${minutes} min restantes'; - @override String get moreLikeThis => 'Mais como este'; + @override String get moreLikeThis => 'Títulos semelhantes'; } // Path: errors @@ -993,16 +997,16 @@ class _Translations$libraries$pt extends Translations$libraries$en { @override String get noItemsMatchFilters => 'Nenhum item corresponde aos filtros ativos'; @override String get resetFilters => 'Redefinir filtros'; @override String get all => 'Todos'; - @override String get clearAll => 'Limpar Tudo'; - @override String scanLibraryConfirm({required Object title}) => 'Tem certeza que deseja escanear "${title}"?'; - @override String analyzeLibraryConfirm({required Object title}) => 'Tem certeza que deseja analisar "${title}"?'; - @override String refreshMetadataConfirm({required Object title}) => 'Tem certeza que deseja atualizar os metadados de "${title}"?'; - @override String emptyTrashConfirm({required Object title}) => 'Tem certeza que deseja esvaziar a lixeira de "${title}"?'; + @override String get clearAll => 'Limpar tudo'; + @override String scanLibraryConfirm({required Object title}) => 'Tem certeza de que deseja escanear "${title}"?'; + @override String analyzeLibraryConfirm({required Object title}) => 'Tem certeza de que deseja analisar "${title}"?'; + @override String refreshMetadataConfirm({required Object title}) => 'Tem certeza de que deseja atualizar os metadados de "${title}"?'; + @override String emptyTrashConfirm({required Object title}) => 'Tem certeza de que deseja esvaziar a lixeira de "${title}"?'; @override String get manageLibraries => 'Gerenciar Bibliotecas'; @override String get sort => 'Ordenar'; - @override String get sortBy => 'Ordenar Por'; + @override String get sortBy => 'Ordenar por'; @override String get filters => 'Filtros'; - @override String get confirmActionMessage => 'Tem certeza que deseja realizar esta ação?'; + @override String get confirmActionMessage => 'Tem certeza de que deseja realizar esta ação?'; @override String get showLibrary => 'Mostrar biblioteca'; @override String get hideLibrary => 'Ocultar biblioteca'; @override String get libraryOptions => 'Opções da biblioteca'; @@ -1027,10 +1031,10 @@ class _Translations$about$pt extends Translations$about$en { // Translations @override String get title => 'Sobre'; - @override String get openSourceLicenses => 'Licenças Open Source'; + @override String get openSourceLicenses => 'Licenças de código aberto'; @override String versionLabel({required Object version}) => 'Versão ${version}'; - @override String get appDescription => 'Um belo cliente Plex e Jellyfin para Flutter'; - @override String get viewLicensesDescription => 'Ver licenças de bibliotecas de terceiros'; + @override String get appDescription => 'Um belo cliente de Plex e Jellyfin feito com Flutter'; + @override String get viewLicensesDescription => 'Ver as licenças de bibliotecas de terceiros'; } // Path: serverSelection @@ -1113,12 +1117,12 @@ class _Translations$explore$pt extends Translations$explore$en { ); @override String get cast => 'Elenco'; @override String get characters => 'Personagens'; - @override String get addToWatchlist => 'Adicionar à lista para ver'; - @override String get removeFromWatchlist => 'Remover da lista para ver'; - @override String get watchlistUpdateFailed => 'Não foi possível atualizar a lista para ver'; + @override String get addToWatchlist => 'Adicionar à lista para assistir'; + @override String get removeFromWatchlist => 'Remover da lista para assistir'; + @override String get watchlistUpdateFailed => 'Não foi possível atualizar a lista para assistir'; @override String get notInLibrary => 'Não está na sua biblioteca'; @override String get inTheseLibraries => 'Nestas bibliotecas'; - @override String get checkingLibrary => 'Verificando a sua biblioteca...'; + @override String get checkingLibrary => 'Verificando sua biblioteca...'; @override String get emptyTitle => 'Ainda não há nada aqui'; @override String emptyMessage({required Object source}) => 'As linhas de ${source} aparecerão aqui quando tiverem conteúdo.'; @override String searchHint({required Object source}) => 'Buscar em ${source}'; @@ -1138,10 +1142,10 @@ class _Translations$liveTv$pt extends Translations$liveTv$en { @override String get guide => 'Guia'; @override String get noChannels => 'Nenhum canal disponível'; @override String get noDvr => 'Nenhum DVR configurado em nenhum servidor'; - @override String get serverUnavailable => 'O servidor de TV em direto não está disponível.'; - @override String get serverNotConnected => 'O servidor de TV em direto não está ligado.'; + @override String get serverUnavailable => 'O servidor de TV ao vivo não está disponível.'; + @override String get serverNotConnected => 'O servidor de TV ao vivo não está conectado.'; @override String get noPrograms => 'Nenhum dado de programação disponível'; - @override String get liveStreamFailed => 'Falha no stream ao vivo'; + @override String get liveStreamFailed => 'Falha na transmissão ao vivo'; @override String get unknownProgram => 'Programa desconhecido'; @override String get unknownHub => 'Desconhecido'; @override String get unknownError => 'Erro desconhecido'; @@ -1158,16 +1162,16 @@ class _Translations$liveTv$pt extends Translations$liveTv$en { @override String get daytime => 'Dia'; @override String get evening => 'Noite'; @override String get lateNight => 'Madrugada'; - @override String get whatsOn => 'O que Está Passando'; - @override String get watchChannel => 'Assistir Canal'; + @override String get whatsOn => 'O que está passando'; + @override String get watchChannel => 'Assistir ao canal'; @override String get favorites => 'Favoritos'; @override String get reorderFavorites => 'Reordenar favoritos'; @override String get favoritesLoadFailed => 'Não foi possível carregar os favoritos. Verifique sua conexão e tente novamente.'; - @override String get favoritesUpdateFailed => 'Could not update favorites. Check your connection and try again.'; + @override String get favoritesUpdateFailed => 'Não foi possível atualizar os favoritos. Verifique sua conexão e tente novamente.'; @override String get joinSession => 'Entrar na sessão em andamento'; @override String watchFromStart({required Object minutes}) => 'Assistir do início (${minutes} min atrás)'; @override String get watchLive => 'Assistir ao vivo'; - @override String get goToLive => 'Ir para o ao vivo'; + @override String get goToLive => 'Ir para o ponto ao vivo'; @override String get record => 'Gravar'; @override String get recordEpisode => 'Gravar episódio'; @override String get recordSeries => 'Gravar série'; @@ -1198,7 +1202,7 @@ class _Translations$liveTv$pt extends Translations$liveTv$en { @override String get editRule => 'Editar regra'; @override String get editRuleAction => 'Editar'; @override String get recordingRuleUpdated => 'Regra de gravação atualizada'; - @override String get guideReloadRequested => 'Atualização da guia solicitada'; + @override String get guideReloadRequested => 'Atualização do guia solicitada'; @override String get rulesProcessRequested => 'Reavaliação de regras solicitada'; @override String get recordShow => 'Gravar programa'; } @@ -1252,7 +1256,7 @@ class _Translations$playlists$pt extends Translations$playlists$en { @override String get oneItem => '1 item'; @override String get emptyPlaylist => 'Esta playlist está vazia'; @override String get deleteConfirm => 'Excluir Playlist?'; - @override String deleteMessage({required Object name}) => 'Tem certeza que deseja excluir "${name}"?'; + @override String deleteMessage({required Object name}) => 'Tem certeza de que deseja excluir "${name}"?'; @override String get created => 'Playlist criada'; @override String get deleted => 'Playlist excluída'; @override String get itemAdded => 'Adicionado à playlist'; @@ -1298,7 +1302,7 @@ class _Translations$music$pt extends Translations$music$en { @override String get nextTrack => 'Próxima faixa'; @override String get repeat => 'Repetir'; @override String get repeatAll => 'Repetir tudo'; - @override String get repeatOne => 'Repetir uma'; + @override String get repeatOne => 'Repetir uma faixa'; } // Path: watchTogether @@ -1309,41 +1313,41 @@ class _Translations$watchTogether$pt extends Translations$watchTogether$en { // Translations @override String get title => 'Assistir Juntos'; - @override String get description => 'Assista conteúdo sincronizado com amigos e família'; - @override String get createSession => 'Criar Sessão'; + @override String get description => 'Assista a conteúdos sincronizados com amigos e familiares'; + @override String get createSession => 'Criar sessão'; @override String get creating => 'Criando...'; - @override String get joinSession => 'Entrar na Sessão'; + @override String get joinSession => 'Entrar na sessão'; @override String get joining => 'Entrando...'; - @override String get controlMode => 'Modo de Controle'; + @override String get controlMode => 'Modo de controle'; @override String get controlModeQuestion => 'Quem pode controlar a reprodução?'; - @override String get hostOnly => 'Apenas o Anfitrião'; + @override String get hostOnly => 'Apenas o anfitrião'; @override String get anyone => 'Qualquer pessoa'; - @override String get hostingSession => 'Hospedando Sessão'; - @override String get inSession => 'Em Sessão'; - @override String get sessionCode => 'Código da Sessão'; + @override String get hostingSession => 'Hospedando uma sessão'; + @override String get inSession => 'Em uma sessão'; + @override String get sessionCode => 'Código da sessão'; @override String get openSessionControls => 'Abrir os controles da sessão Assistir Juntos'; @override String get copySessionCode => 'Copiar código da sessão'; - @override String get hostControlsPlayback => 'Anfitrião controla a reprodução'; + @override String get hostControlsPlayback => 'O anfitrião controla a reprodução'; @override String get anyoneCanControl => 'Qualquer pessoa pode controlar a reprodução'; @override String get hostControls => 'Controle do anfitrião'; - @override String get anyoneControls => 'Controle de todos'; + @override String get anyoneControls => 'Controle por qualquer pessoa'; @override String get participants => 'Participantes'; @override String get host => 'Anfitrião'; - @override String get hostBadge => 'HOST'; + @override String get hostBadge => 'ANFITRIÃO'; @override String get youAreHost => 'Você é o anfitrião'; - @override String get watchingWithOthers => 'Assistindo com outros'; - @override String get endSession => 'Encerrar Sessão'; - @override String get leaveSession => 'Sair da Sessão'; - @override String get endSessionQuestion => 'Encerrar Sessão?'; - @override String get leaveSessionQuestion => 'Sair da Sessão?'; + @override String get watchingWithOthers => 'Assistindo com outras pessoas'; + @override String get endSession => 'Encerrar sessão'; + @override String get leaveSession => 'Sair da sessão'; + @override String get endSessionQuestion => 'Encerrar sessão?'; + @override String get leaveSessionQuestion => 'Sair da sessão?'; @override String get endSessionConfirm => 'Isso encerrará a sessão para todos os participantes.'; @override String get leaveSessionConfirm => 'Você será removido da sessão.'; - @override String get endSessionConfirmOverlay => 'Isso encerrará a sessão de visualização para todos os participantes.'; - @override String get leaveSessionConfirmOverlay => 'Você será desconectado da sessão de visualização.'; + @override String get endSessionConfirmOverlay => 'Isso encerrará a sessão do Assistir Juntos para todos os participantes.'; + @override String get leaveSessionConfirmOverlay => 'Você será desconectado da sessão do Assistir Juntos.'; @override String get end => 'Encerrar'; @override String get leave => 'Sair'; @override String get syncing => 'Sincronizando...'; - @override String get joinWatchSession => 'Entrar na Sessão'; + @override String get joinWatchSession => 'Entrar na sessão'; @override String get enterCodeHint => 'Insira o código de 5 caracteres'; @override String get pasteFromClipboard => 'Colar da área de transferência'; @override String get pleaseEnterCode => 'Insira um código de sessão'; @@ -1352,21 +1356,21 @@ class _Translations$watchTogether$pt extends Translations$watchTogether$en { @override String get failedToCreate => 'Falha ao criar sessão'; @override String get failedToJoin => 'Falha ao entrar na sessão'; @override String get sessionCodeCopied => 'Código da sessão copiado para a área de transferência'; - @override String get relayUnreachable => 'Servidor relay inacessível. Bloqueio do ISP pode impedir Watch Together.'; + @override String get relayUnreachable => 'Servidor de retransmissão inacessível. O bloqueio pelo provedor de internet pode impedir o uso do Assistir Juntos.'; @override String get reconnectingToHost => 'Reconectando ao anfitrião...'; - @override String get currentPlayback => 'Reprodução Atual'; - @override String get joinCurrentPlayback => 'Entrar na Reprodução Atual'; - @override String get joinCurrentPlaybackDescription => 'Voltar ao que o anfitrião está assistindo agora'; - @override String get failedToOpenCurrentPlayback => 'Falha ao abrir reprodução atual'; + @override String get currentPlayback => 'Reprodução atual'; + @override String get joinCurrentPlayback => 'Entrar na reprodução atual'; + @override String get joinCurrentPlaybackDescription => 'Voltar ao conteúdo que o anfitrião está assistindo agora'; + @override String get failedToOpenCurrentPlayback => 'Falha ao abrir a reprodução atual'; @override String participantJoined({required Object name}) => '${name} entrou'; @override String participantLeft({required Object name}) => '${name} saiu'; @override String participantPaused({required Object name}) => '${name} pausou'; @override String participantResumed({required Object name}) => '${name} retomou'; - @override String participantSeeked({required Object name}) => '${name} avançou'; - @override String participantBuffering({required Object name}) => '${name} está carregando'; - @override String participantNeedsUpdate({required Object name}) => '${name} está em uma versão mais antiga do aplicativo — sincronização indisponível'; + @override String participantSeeked({required Object name}) => '${name} mudou a posição da reprodução'; + @override String participantBuffering({required Object name}) => '${name} está aguardando o carregamento'; + @override String participantNeedsUpdate({required Object name}) => '${name} está usando uma versão mais antiga do app — sincronização indisponível'; @override String resumingWithout({required Object name}) => 'Retomando sem ${name}'; - @override String get waitingForParticipants => 'Aguardando outros carregarem...'; + @override String get waitingForParticipants => 'Aguardando o carregamento dos outros participantes...'; @override String waitingForName({required Object name}) => 'Aguardando ${name}...'; @override String get recentRooms => 'Salas recentes'; @override String get renameRoom => 'Renomear sala'; @@ -1389,13 +1393,13 @@ class _Translations$downloads$pt extends Translations$downloads$en { @override String get music => 'Música'; @override String tracksQueued({required Object count}) => '${count} faixas na fila para download'; @override String get noDownloads => 'Nenhum download ainda'; - @override String get noDownloadsDescription => 'Conteúdo baixado aparecerá aqui para visualização offline'; + @override String get noDownloadsDescription => 'O conteúdo baixado aparecerá aqui para assistir offline'; @override String get downloadNow => 'Baixar'; @override String get deleteDownload => 'Excluir download'; @override String get retryDownload => 'Tentar download novamente'; @override String get downloadQueued => 'Download na fila'; @override String get downloadResumed => 'Download retomado'; - @override String get serverErrorBitrate => 'Erro do servidor: o arquivo pode exceder o limite remoto de bitrate'; + @override String get serverErrorBitrate => 'Erro do servidor: o arquivo pode exceder o limite remoto de taxa de bits'; @override String episodesQueued({required Object count}) => '${count} episódios na fila de download'; @override String get downloadDeleted => 'Download excluído'; @override String deleteConfirm({required Object title}) => 'Excluir "${title}" deste dispositivo?'; @@ -1420,14 +1424,14 @@ class _Translations$downloads$pt extends Translations$downloads$en { @override String get selectVersion => 'Selecionar versão'; @override String get allEpisodes => 'Todos os episódios'; @override String get unwatchedOnly => 'Apenas não assistidos'; - @override String nextNUnwatched({required Object count}) => 'Próximos ${count} não assistidos'; + @override String nextNUnwatched({required Object count}) => 'Próximos ${count} episódios não assistidos'; @override String get customAmount => 'Quantidade personalizada...'; @override String get includeSpecials => 'Incluir especiais'; @override String get howManyEpisodes => 'Quantos episódios?'; @override String get invalidEpisodeCount => 'Insira uma quantidade válida de episódios.'; @override String get keepSynced => 'Manter sincronizado'; @override String get downloadOnce => 'Baixar uma vez'; - @override String keepNUnwatched({required Object count}) => 'Manter ${count} não assistidos'; + @override String keepNUnwatched({required Object count}) => 'Manter ${count} episódios não assistidos'; @override String get editSyncRule => 'Editar regra de sincronização'; @override String get removeSyncRule => 'Remover regra de sincronização'; @override String removeSyncRuleConfirm({required Object title}) => 'Parar de sincronizar "${title}"? Os episódios baixados serão mantidos.'; @@ -1441,11 +1445,11 @@ class _Translations$downloads$pt extends Translations$downloads$en { @override String get editEpisodeCount => 'Número de episódios'; @override String get editSyncFilter => 'Filtro de sincronização'; @override String get syncAllItems => 'Sincronizando todos os itens'; - @override String get syncUnwatchedItems => 'Sincronizando itens não vistos'; + @override String get syncUnwatchedItems => 'Sincronizando itens não assistidos'; @override String syncRuleServerContext({required Object server, required Object status}) => 'Servidor: ${server} • ${status}'; @override String get syncRuleAvailable => 'Disponível'; @override String get syncRuleOffline => 'Offline'; - @override String get syncRuleSignInRequired => 'Início de sessão necessário'; + @override String get syncRuleSignInRequired => 'É necessário entrar'; @override String get syncRuleNotAvailableForProfile => 'Indisponível para o perfil atual'; @override String get syncRuleUnknownServer => 'Servidor desconhecido'; @override String get syncRuleListCreated => 'Regra de sincronização criada'; @@ -1460,7 +1464,7 @@ class _Translations$shaders$pt extends Translations$shaders$en { // Translations @override String get title => 'Shaders'; @override String get noShaderDescription => 'Sem aprimoramento de vídeo'; - @override String get nvscalerDescription => 'Escalonamento de imagem NVIDIA para vídeo mais nítido'; + @override String get nvscalerDescription => 'Dimensionamento de imagem da NVIDIA para vídeos mais nítidos'; @override String get artcnnVariantNeutral => 'Neutro'; @override String get artcnnVariantDenoise => 'Redução de ruído'; @override String get artcnnVariantDenoiseSharpen => 'Redução de ruído + nitidez'; @@ -1482,7 +1486,7 @@ class _Translations$companionRemote$pt extends Translations$companionRemote$en { final TranslationsPt _root; // ignore: unused_field // Translations - @override String get title => 'Controle Remoto'; + @override String get title => 'Controle remoto'; @override String connectedTo({required Object name}) => 'Conectado a ${name}'; @override String get unknownDevice => 'Dispositivo desconhecido'; @override late final _Translations$companionRemote$session$pt session = _Translations$companionRemote$session$pt._(_root); @@ -1502,15 +1506,15 @@ class _Translations$videoSettings$pt extends Translations$videoSettings$en { @override String get normalSpeed => 'Normal'; @override String sleepTimerActive({required Object duration}) => 'Ativo (${duration})'; @override String get zoom => 'Zoom'; - @override String get sleepTimer => 'Timer de Sono'; - @override String get audioSync => 'Sincronia de Áudio'; - @override String get subtitleSync => 'Sincronia de Legendas'; + @override String get sleepTimer => 'Temporizador de suspensão'; + @override String get audioSync => 'Sincronia de áudio'; + @override String get subtitleSync => 'Sincronia de legendas'; @override String get hdr => 'HDR'; - @override String get audioOutput => 'Saída de Áudio'; - @override String get performanceOverlay => 'Overlay de Desempenho'; - @override String get audioPassthrough => 'Passagem de Áudio'; - @override String get audioNormalization => 'Normalizar Volume'; - @override String get audioDownmix => 'Downmix para Estéreo'; + @override String get audioOutput => 'Saída de áudio'; + @override String get performanceOverlay => 'Painel de desempenho'; + @override String get audioPassthrough => 'Passagem direta de áudio'; + @override String get audioNormalization => 'Normalizar intensidade sonora'; + @override String get audioDownmix => 'Conversão para estéreo'; } // Path: performanceOverlay @@ -1538,9 +1542,9 @@ class _Translations$performanceOverlay$pt extends Translations$performanceOverla @override String get matrix => 'Matriz'; @override String get primaries => 'Primárias'; @override String get transfer => 'Transferência'; - @override String get renderFps => 'FPS render'; - @override String get displayFps => 'FPS tela'; - @override String get avSync => 'Sync A/V'; + @override String get renderFps => 'FPS de renderização'; + @override String get displayFps => 'FPS da tela'; + @override String get avSync => 'Sincronia A/V'; @override String get dropped => 'Descartados'; @override String get dvRpus => 'DV RPUs'; @override String get dvRpuAverage => 'Média DV RPU'; @@ -1552,7 +1556,7 @@ class _Translations$performanceOverlay$pt extends Translations$performanceOverla @override String get cacheUsed => 'Cache usado'; @override String get cacheLimit => 'Limite do cache'; @override String get speed => 'Velocidade'; - @override String get player => 'Player'; + @override String get player => 'Reprodutor'; @override String get memory => 'Memória'; @override String get uiFps => 'UI FPS'; } @@ -1564,22 +1568,22 @@ class _Translations$externalPlayer$pt extends Translations$externalPlayer$en { final TranslationsPt _root; // ignore: unused_field // Translations - @override String get title => 'Player Externo'; - @override String get useExternalPlayer => 'Usar Player Externo'; + @override String get title => 'Reprodutor externo'; + @override String get useExternalPlayer => 'Usar reprodutor externo'; @override String get useExternalPlayerDescription => 'Abrir vídeos em outro app'; - @override String get selectPlayer => 'Selecionar Player'; - @override String get customPlayers => 'Players Personalizados'; - @override String get systemDefault => 'Padrão do Sistema'; - @override String get addCustomPlayer => 'Adicionar Player Personalizado'; - @override String get playerName => 'Nome do Player'; - @override String get playerNameHint => 'Meu player'; + @override String get selectPlayer => 'Selecionar reprodutor'; + @override String get customPlayers => 'Reprodutores personalizados'; + @override String get systemDefault => 'Padrão do sistema'; + @override String get addCustomPlayer => 'Adicionar reprodutor personalizado'; + @override String get playerName => 'Nome do reprodutor'; + @override String get playerNameHint => 'Meu reprodutor'; @override String get playerCommand => 'Comando'; - @override String get playerPackage => 'Nome do Pacote'; + @override String get playerPackage => 'Nome do pacote'; @override String get playerUrlScheme => 'Esquema de URL'; @override String get off => 'Desativado'; - @override String get launchFailed => 'Falha ao abrir player externo'; + @override String get launchFailed => 'Falha ao abrir o reprodutor externo'; @override String appNotInstalled({required Object name}) => '${name} não está instalado'; - @override String get playInExternalPlayer => 'Reproduzir no Player Externo'; + @override String get playInExternalPlayer => 'Reproduzir no reprodutor externo'; } // Path: metadataEdit @@ -1600,13 +1604,13 @@ class _Translations$metadataEdit$pt extends Translations$metadataEdit$en { @override String get releaseDate => 'Data de Lançamento'; @override String get contentRating => 'Classificação Indicativa'; @override String get studio => 'Estúdio'; - @override String get tagline => 'Tagline'; + @override String get tagline => 'Slogan'; @override String get summary => 'Sinopse'; - @override String get poster => 'Poster'; + @override String get poster => 'Pôster'; @override String get background => 'Plano de Fundo'; @override String get logo => 'Logo'; @override String get squareArt => 'Imagem Quadrada'; - @override String get selectPoster => 'Selecionar Poster'; + @override String get selectPoster => 'Selecionar pôster'; @override String get selectBackground => 'Selecionar Plano de Fundo'; @override String get selectLogo => 'Selecionar Logo'; @override String get selectSquareArt => 'Selecionar Imagem Quadrada'; @@ -1710,8 +1714,8 @@ class _Translations$trakt$pt extends Translations$trakt$en { @override String get title => 'Trakt'; @override String get connected => 'Conectado'; @override String connectedAs({required Object username}) => 'Conectado como @${username}'; - @override String get disconnectConfirm => 'Desconectar conta do Trakt?'; - @override String get disconnectConfirmBody => 'Plezy deixará de enviar eventos ao Trakt. Você pode reconectar quando quiser.'; + @override String get disconnectConfirm => 'Desconectar a conta do Trakt?'; + @override String get disconnectConfirmBody => 'O Plezy deixará de enviar eventos ao Trakt. Você pode reconectar quando quiser.'; @override String get scrobble => 'Scrobbling em tempo real'; @override String get scrobbleDescription => 'Envia eventos de reprodução, pausa e parada ao Trakt durante a exibição.'; @override String get watchedSync => 'Sincronizar status de assistido'; @@ -1726,7 +1730,7 @@ class _Translations$seerr$pt extends Translations$seerr$en { // Translations @override String get title => 'Seerr'; - @override String get connectTitle => 'Conectar Seerr'; + @override String get connectTitle => 'Conectar ao Seerr'; @override String get serverUrl => 'URL do servidor'; @override String get serverUrlHelper => 'O endereço da sua instância do Seerr'; @override String get checkServer => 'Continuar'; @@ -1734,7 +1738,7 @@ class _Translations$seerr$pt extends Translations$seerr$en { @override String get signInWithEmby => 'Entrar com Emby'; @override String get signInWithLocal => 'Usar uma conta local'; @override String get email => 'E-mail'; - @override String get noSignInMethods => 'Esta instância do Seerr não oferece nenhum método de login compatível com o Plezy.'; + @override String get noSignInMethods => 'Esta instância do Seerr não oferece nenhum método de acesso compatível com o Plezy.'; @override String get instance => 'Instância'; @override String get disconnectConfirm => 'Desconectar Seerr?'; @override String get disconnectConfirmBody => 'O Plezy esquecerá esta instância do Seerr. Reconecte quando quiser.'; @@ -1771,7 +1775,7 @@ class _Translations$services$pt extends Translations$services$en { @override String get scrobble => 'Registrar progresso automaticamente'; @override String get scrobbleDescription => 'Atualiza sua lista quando você termina um episódio ou filme.'; @override String disconnectConfirm({required Object service}) => 'Desconectar ${service}?'; - @override String disconnectConfirmBody({required Object service}) => 'Plezy deixará de atualizar ${service}. Reconecte quando quiser.'; + @override String disconnectConfirmBody({required Object service}) => 'O Plezy deixará de atualizar ${service}. Reconecte quando quiser.'; @override String connectFailed({required Object service}) => 'Não foi possível conectar ao ${service}. Tente novamente.'; @override late final _Translations$services$names$pt names = _Translations$services$names$pt._(_root); @override late final _Translations$services$deviceCode$pt deviceCode = _Translations$services$deviceCode$pt._(_root); @@ -1788,9 +1792,9 @@ class _Translations$addServer$pt extends Translations$addServer$en { // Translations @override String get addJellyfinTitle => 'Adicionar servidor Jellyfin'; @override String get serverUrls => 'URLs do servidor'; - @override String get serverUrlsHelper => 'Vários URLs permitidos, separados por vírgulas.'; + @override String get serverUrlsHelper => 'Várias URLs são permitidas, separadas por vírgulas.'; @override String get findServer => 'Encontrar servidor'; - @override String get searchingLocalServers => 'A procurar servidores Jellyfin locais...'; + @override String get searchingLocalServers => 'Procurando servidores Jellyfin locais...'; @override String get localServers => 'Servidores Jellyfin locais'; @override String get username => 'Usuário'; @override String get password => 'Senha'; @@ -1801,17 +1805,17 @@ class _Translations$addServer$pt extends Translations$addServer$en { @override String signInFailed({required Object error}) => 'Falha ao entrar: ${error}'; @override String quickConnectFailed({required Object error}) => 'Quick Connect falhou: ${error}'; @override String get addPlexTitle => 'Entrar com Plex'; - @override String get pinExpired => 'O PIN expirou antes do login. Tente novamente.'; + @override String get pinExpired => 'O PIN expirou antes de entrar. Tente novamente.'; @override String failedToRegisterAccount({required Object error}) => 'Falha ao registrar a conta: ${error}'; @override String get enterJellyfinUrlError => 'Insira a URL do seu servidor Jellyfin'; @override String get addConnectionTitle => 'Adicionar conexão'; @override String addConnectionTitleScoped({required Object name}) => 'Adicionar a ${name}'; @override String get signInWithPlexCard => 'Entrar com Plex'; @override String get signInWithPlexCardSubtitle => 'Autorize este dispositivo. Servidores compartilhados são adicionados.'; - @override String get signInWithPlexCardSubtitleScoped => 'Autorize uma conta Plex. Usuários Home viram perfis.'; + @override String get signInWithPlexCardSubtitleScoped => 'Autorize uma conta Plex. Os usuários do Plex Home se tornam perfis.'; @override String get connectToJellyfinCard => 'Conectar ao Jellyfin'; @override String get connectToJellyfinCardSubtitle => 'Insira URL do servidor, usuário e senha.'; - @override String connectToJellyfinCardSubtitleScoped({required Object name}) => 'Entre em um servidor Jellyfin. Vinculado a ${name}.'; + @override String connectToJellyfinCardSubtitleScoped({required Object name}) => 'Entre em um servidor Jellyfin. A conexão será vinculada a ${name}.'; @override String get borrowFromAnotherProfile => 'Pegar emprestado de outro perfil'; @override String get borrowFromAnotherProfileSubtitle => 'Reutilize a conexão de outro perfil. Perfis protegidos por PIN exigem PIN.'; } @@ -1846,7 +1850,7 @@ class _Translations$hotkeys$actions$pt extends Translations$hotkeys$actions$en { @override String get subSeekNext => 'Ir para Próxima Legenda'; @override String get subSeekPrev => 'Ir para Legenda Anterior'; @override String get shaderToggle => 'Alternar Shaders'; - @override String get skipMarker => 'Pular Intro/Créditos'; + @override String get skipMarker => 'Pular introdução/créditos'; @override String get screenshot => 'Capturar tela'; } @@ -1907,10 +1911,10 @@ class _Translations$libraries$filterCategories$pt extends Translations$libraries // Translations @override String get genre => 'Gênero'; @override String get year => 'Ano'; - @override String get contentRating => 'Classificação'; + @override String get contentRating => 'Classificação indicativa'; @override String get tag => 'Tag'; @override String get unwatched => 'Não assistidos'; - @override String get unplayed => 'Não reproduzido'; + @override String get unplayed => 'Não reproduzidos'; @override String get favorites => 'Favoritos'; } @@ -1950,7 +1954,7 @@ class _Translations$explore$rows$pt extends Translations$explore$rows$en { final TranslationsPt _root; // ignore: unused_field // Translations - @override String get watchlist => 'Lista para ver'; + @override String get watchlist => 'Lista para assistir'; @override String get recommendedMovies => 'Filmes recomendados'; @override String get recommendedShows => 'Séries recomendadas'; @override String get trendingMovies => 'Filmes em alta'; @@ -1959,7 +1963,7 @@ class _Translations$explore$rows$pt extends Translations$explore$rows$en { @override String get popularShows => 'Séries populares'; @override String get trendingAnime => 'Anime em alta'; @override String get suggestedAnime => 'Anime sugerido'; - @override String get airingAnime => 'Melhor anime em exibição'; + @override String get airingAnime => 'Melhores animes em exibição'; @override String get popularAnime => 'Anime mais popular'; @override String get trending => 'Em alta'; @override String get upcomingMovies => 'Próximos filmes'; @@ -1986,14 +1990,14 @@ class _Translations$companionRemote$session$pt extends Translations$companionRem final TranslationsPt _root; // ignore: unused_field // Translations - @override String get startingServer => 'A iniciar servidor remoto...'; + @override String get startingServer => 'Iniciando servidor remoto...'; @override String get hostAddress => 'Endereço do host'; @override String get connected => 'Conectado'; @override String get serverRunning => 'Servidor remoto ativo'; @override String get serverStopped => 'Servidor remoto parado'; @override String get serverRunningDescription => 'Dispositivos móveis na sua rede podem se conectar a este app'; @override String get serverStoppedDescription => 'Inicie o servidor para permitir que dispositivos móveis se conectem'; - @override String get usePhoneToControl => 'Use o seu dispositivo móvel para controlar esta aplicação'; + @override String get usePhoneToControl => 'Use seu dispositivo móvel para controlar este app'; @override String get startServer => 'Iniciar servidor'; @override String get stopServer => 'Parar servidor'; @override String get minimize => 'Minimizar'; @@ -2008,17 +2012,17 @@ class _Translations$companionRemote$pairing$pt extends Translations$companionRem // Translations @override String get discoveryDescription => 'Dispositivos Plezy com a mesma conta Plex aparecem aqui'; @override String get hostAddressHint => '192.168.1.100:48632'; - @override String get connecting => 'A conectar...'; - @override String get searchingForDevices => 'A procurar dispositivos...'; + @override String get connecting => 'Conectando...'; + @override String get searchingForDevices => 'Procurando dispositivos...'; @override String get noDevicesFound => 'Nenhum dispositivo encontrado na sua rede'; - @override String get noDevicesHint => 'Abra Plezy no desktop e use o mesmo WiFi'; + @override String get noDevicesHint => 'Abra o Plezy no desktop e use a mesma rede Wi-Fi'; @override String get availableDevices => 'Dispositivos disponíveis'; @override String get manualConnection => 'Conexão manual'; @override String get cryptoInitFailed => 'Não foi possível iniciar a conexão segura. Entre no Plex primeiro.'; - @override String get validationHostRequired => 'Introduza o endereço do host'; - @override String get validationHostFormat => 'O formato deve ser IP:porta (ex. 192.168.1.100:48632)'; - @override String get connectionTimedOut => 'Conexão expirou. Use a mesma rede nos dois dispositivos.'; - @override String get sessionNotFound => 'Dispositivo não encontrado. Verifique se Plezy está rodando no host.'; + @override String get validationHostRequired => 'Insira o endereço do host'; + @override String get validationHostFormat => 'O formato deve ser IP:porta (ex.: 192.168.1.100:48632)'; + @override String get connectionTimedOut => 'A conexão atingiu o tempo limite. Use a mesma rede nos dois dispositivos.'; + @override String get sessionNotFound => 'Dispositivo não encontrado. Verifique se o Plezy está em execução no host.'; @override String get authFailed => 'Falha na autenticação. Ambos os dispositivos precisam da mesma conta Plex.'; @override String failedToConnect({required Object error}) => 'Falha ao conectar: ${error}'; } @@ -2033,7 +2037,7 @@ class _Translations$companionRemote$remote$pt extends Translations$companionRemo @override String get disconnectConfirm => 'Deseja desconectar da sessão remota?'; @override String get reconnecting => 'Reconectando...'; @override String attemptOf({required Object current}) => 'Tentativa ${current} de 5'; - @override String get retryNow => 'Tentar Agora'; + @override String get retryNow => 'Tentar agora'; @override String get tabRemote => 'Remoto'; @override String get tabPlay => 'Reproduzir'; @override String get tabMore => 'Mais'; @@ -2053,7 +2057,7 @@ class _Translations$companionRemote$remote$pt extends Translations$companionRemo @override String get volume => 'Volume'; @override String get volumeDown => 'Diminuir'; @override String get volumeUp => 'Aumentar'; - @override String get fullscreen => 'Tela Cheia'; + @override String get fullscreen => 'Tela cheia'; @override String get subtitles => 'Legendas'; @override String get audio => 'Áudio'; @override String get searchHint => 'Buscar no desktop...'; @@ -2096,7 +2100,7 @@ class _Translations$services$deviceCode$pt extends Translations$services$deviceC final TranslationsPt _root; // ignore: unused_field // Translations - @override String title({required Object service}) => 'Ativar Plezy no ${service}'; + @override String title({required Object service}) => 'Ativar o Plezy no ${service}'; @override String body({required Object url}) => 'Acesse ${url} e insira este código:'; @override String openToActivate({required Object service}) => 'Abrir ${service} para ativar'; @override String get copyCode => 'Copiar código de ativação'; @@ -2112,10 +2116,10 @@ class _Translations$services$oauthProxy$pt extends Translations$services$oauthPr // Translations @override String title({required Object service}) => 'Entrar no ${service}'; - @override String get body => 'Escaneie este código QR ou abra a URL em qualquer dispositivo.'; + @override String get body => 'Leia este código QR ou abra a URL em qualquer dispositivo.'; @override String openToSignIn({required Object service}) => 'Abrir ${service} para entrar'; - @override String get copyUrl => 'Copiar URL de login'; - @override String get urlCopied => 'URL copiado'; + @override String get copyUrl => 'Copiar URL de acesso'; + @override String get urlCopied => 'URL copiada'; } // Path: services.libraryFilter @@ -2131,9 +2135,9 @@ class _Translations$services$libraryFilter$pt extends Translations$services$libr @override String subtitleBlocked({required Object count}) => '${count} bloqueadas'; @override String subtitleAllowed({required Object count}) => '${count} permitidas'; @override String get mode => 'Modo de filtro'; - @override String get modeBlacklist => 'Lista negra'; - @override String get modeWhitelist => 'Lista branca'; - @override String get modeHintBlacklist => 'Sincronizar todas as bibliotecas exceto as marcadas abaixo.'; + @override String get modeBlacklist => 'Lista de bloqueio'; + @override String get modeWhitelist => 'Lista de permissões'; + @override String get modeHintBlacklist => 'Sincronizar todas as bibliotecas, exceto as marcadas abaixo.'; @override String get modeHintWhitelist => 'Sincronizar apenas as bibliotecas marcadas abaixo.'; @override String get libraries => 'Bibliotecas'; @override String get noLibraries => 'Nenhuma biblioteca disponível'; @@ -2149,20 +2153,20 @@ extension on TranslationsPt { return switch (path) { 'app.title' => 'Plezy', 'auth.signInWithPlex' => 'Entrar com Plex', - 'auth.showQRCode' => 'Mostrar QR Code', + 'auth.showQRCode' => 'Mostrar código QR', 'auth.authenticate' => 'Autenticar', 'auth.authenticationTimeout' => 'A autenticação expirou. Tente novamente.', - 'auth.scanQRToSignIn' => 'Escaneie este QR code para entrar', + 'auth.scanQRToSignIn' => 'Leia este código QR para entrar', 'auth.waitingForAuth' => 'Aguardando autenticação...\nEntre pelo navegador.', 'auth.useBrowser' => 'Usar navegador', 'auth.or' => 'ou', 'auth.connectToJellyfin' => 'Conectar ao Jellyfin', 'auth.useQuickConnect' => 'Usar Quick Connect', 'auth.quickConnectInstructions' => 'Abra o Quick Connect no Jellyfin e insira este código.', - 'auth.quickConnectWaiting' => 'A aguardar aprovação…', + 'auth.quickConnectWaiting' => 'Aguardando aprovação…', 'auth.quickConnectCancel' => 'Cancelar', 'auth.quickConnectExpired' => 'Quick Connect expirou. Tente novamente.', - 'auth.localDataRecoveryRequired' => 'Plezy could not safely recover local sign-in and pending playback data. Please sign in again.', + 'auth.localDataRecoveryRequired' => 'O Plezy não conseguiu recuperar com segurança os dados locais de acesso e de reproduções pendentes. Entre novamente.', 'common.cancel' => 'Cancelar', 'common.save' => 'Salvar', 'common.close' => 'Fechar', @@ -2199,7 +2203,7 @@ extension on TranslationsPt { 'common.episodeNumberTitle' => ({required Object number, required Object title}) => 'Episódio ${number} - ${title}', 'common.chapterNumber' => ({required Object number}) => 'Capítulo ${number}', 'common.reconnect' => 'Reconectar', - 'common.viewAll' => 'Ver Tudo', + 'common.viewAll' => 'Ver tudo', 'common.checkingNetwork' => 'Verificando rede...', 'common.loadingServers' => 'Carregando servidores...', 'common.connectingToServers' => 'Conectando aos servidores...', @@ -2213,10 +2217,10 @@ extension on TranslationsPt { 'screens.subtitleStyling' => 'Estilo de Legendas', 'screens.mpvConfig' => 'mpv.conf', 'screens.logs' => 'Logs', - 'update.available' => 'Atualização Disponível', - 'update.versionAvailable' => ({required Object version}) => 'Versão ${version} está disponível', + 'update.available' => 'Atualização disponível', + 'update.versionAvailable' => ({required Object version}) => 'A versão ${version} está disponível', 'update.currentVersion' => ({required Object version}) => 'Atual: ${version}', - 'update.skipVersion' => 'Pular Esta Versão', + 'update.skipVersion' => 'Pular esta versão', 'update.viewRelease' => 'Ver Lançamento', 'update.latestVersion' => 'Você está na versão mais recente', 'update.checkFailed' => 'Falha ao verificar atualizações', @@ -2229,9 +2233,9 @@ extension on TranslationsPt { 'settings.videoPlayback' => 'Reprodução de Vídeo', 'settings.videoPlaybackDescription' => 'Configurar comportamento de reprodução', 'settings.advanced' => 'Avançado', - 'settings.episodePosterMode' => 'Estilo do Poster de Episódio', - 'settings.seriesPoster' => 'Poster da Série', - 'settings.seasonPoster' => 'Poster da Temporada', + 'settings.episodePosterMode' => 'Estilo do pôster do episódio', + 'settings.seriesPoster' => 'Pôster da série', + 'settings.seasonPoster' => 'Pôster da temporada', 'settings.episodeThumbnail' => 'Miniatura', 'settings.showHeroSectionDescription' => 'Exibir carrossel de conteúdo em destaque na tela inicial', 'settings.secondsLabel' => 'Segundos', @@ -2246,14 +2250,16 @@ extension on TranslationsPt { 'settings.libraryDensity' => 'Densidade da Biblioteca', 'settings.compact' => 'Compacto', 'settings.comfortable' => 'Confortável', + 'settings.tvCornerSpotlightBackdrop' => 'Imagem de destaque no canto', + 'settings.tvCornerSpotlightBackdropDescription' => 'Mostrar a imagem de destaque no canto superior direito em vez de preencher a tela', 'settings.viewMode' => 'Modo de Visualização', 'settings.gridView' => 'Grade', 'settings.listView' => 'Lista', 'settings.showHeroSection' => 'Mostrar Seção de Destaque', - 'settings.continueWatchingAction' => 'Ação de Continuar Assistindo', + 'settings.continueWatchingAction' => 'Ação da seção Continuar assistindo', 'settings.continueWatchingPlay' => 'Reproduzir', 'settings.continueWatchingDetails' => 'Abrir detalhes', - 'settings.episodeAction' => 'Ação de Episódio', + 'settings.episodeAction' => 'Ação do episódio', 'settings.episodePlay' => 'Reproduzir', 'settings.episodeDetails' => 'Abrir detalhes', 'settings.useGlobalHubs' => 'Usar layout inicial', @@ -2273,16 +2279,16 @@ extension on TranslationsPt { 'settings.tvFullCardLayout' => 'Cartões TV completos', 'settings.tvFullCardLayoutDescription' => 'Usar cartões de TV só com imagem e nomes dos atores sobrepostos', 'settings.focusGlow' => 'Brilho de foco', - 'settings.focusGlowDescription' => 'Mostrar um brilho suave à volta do cartão em foco', + 'settings.focusGlowDescription' => 'Mostrar um brilho suave ao redor do cartão em foco', 'settings.visualEffects' => 'Efeitos visuais', 'settings.visualEffectsAuto' => 'Automático', - 'settings.visualEffectsAutoDescription' => 'Reduza automaticamente os efeitos em dispositivos de baixo consumo', + 'settings.visualEffectsAutoDescription' => 'Reduzir os efeitos automaticamente em dispositivos de baixo consumo', 'settings.visualEffectsFull' => 'Completos', 'settings.visualEffectsReduced' => 'Reduzidos', - 'settings.visualEffectsReducedDescription' => 'Menos animações e artes em menor resolução', - 'settings.hideSpoilers' => 'Ocultar Spoilers de Episódios Não Assistidos', - 'settings.hideSpoilersDescription' => 'Desfocar miniaturas e descrições de episódios não vistos', - 'settings.playerBackend' => 'Backend do Player', + 'settings.visualEffectsReducedDescription' => 'Menos animações e imagens em menor resolução', + 'settings.hideSpoilers' => 'Ocultar spoilers de episódios não assistidos', + 'settings.hideSpoilersDescription' => 'Desfocar miniaturas e descrições de episódios não assistidos', + 'settings.playerBackend' => 'Mecanismo de reprodução', 'settings.exoPlayer' => 'ExoPlayer', 'settings.mpv' => 'mpv', 'settings.hardwareDecoding' => 'Decodificação por Hardware', @@ -2299,29 +2305,29 @@ extension on TranslationsPt { 'settings.largeSkipDuration' => 'Duração do Avanço Longo', 'settings.rewindOnResume' => 'Rebobinar ao retomar', 'settings.secondsUnit' => ({required Object seconds}) => '${seconds} segundos', - 'settings.defaultSleepTimer' => 'Timer de Sono Padrão', + 'settings.defaultSleepTimer' => 'Temporizador de suspensão padrão', 'settings.minutesUnit' => ({required Object minutes}) => '${minutes} minutos', 'settings.rememberTrackSelections' => 'Lembrar seleção de faixas por série/filme', 'settings.rememberTrackSelectionsDescription' => 'Lembrar escolhas de áudio e legendas por título', 'settings.showChapterMarkersOnTimeline' => 'Mostrar marcadores de capítulos na barra de reprodução', 'settings.showChapterMarkersOnTimelineDescription' => 'Segmentar a barra de reprodução nos limites dos capítulos', 'settings.clickVideoTogglesPlayback' => 'Clicar no vídeo para alternar reprodução/pausa', - 'settings.clickVideoTogglesPlaybackDescription' => 'Clique no vídeo para reproduzir/pausar em vez de mostrar controles.', - 'settings.videoPlayerControls' => 'Controles do Player de Vídeo', + 'settings.clickVideoTogglesPlaybackDescription' => 'Clicar no vídeo para reproduzir ou pausar em vez de mostrar os controles.', + 'settings.videoPlayerControls' => 'Controles do reprodutor de vídeo', 'settings.keyboardShortcuts' => 'Atalhos de Teclado', 'settings.keyboardShortcutsDescription' => 'Personalizar atalhos de teclado', - 'settings.videoPlayerNavigation' => 'Navegação do Player de Vídeo', - 'settings.videoPlayerNavigationDescription' => 'Usar teclas de seta para navegar nos controles do player', - 'settings.watchTogetherRelay' => 'Relay do Assistir Juntos', - 'settings.watchTogetherRelayDescription' => 'Defina um relay personalizado. Todos devem usar o mesmo servidor.', - 'settings.watchTogetherRelayHint' => 'https://meu-relay.exemplo.com.br', - 'settings.watchTogetherRelayInvalid' => 'Enter a valid HTTP or HTTPS relay base URL.', + 'settings.videoPlayerNavigation' => 'Navegação do reprodutor de vídeo', + 'settings.videoPlayerNavigationDescription' => 'Usar as teclas de seta para navegar pelos controles do reprodutor', + 'settings.watchTogetherRelay' => 'Servidor de retransmissão do Assistir Juntos', + 'settings.watchTogetherRelayDescription' => 'Definir um servidor de retransmissão personalizado. Todos devem usar o mesmo servidor.', + 'settings.watchTogetherRelayHint' => 'https://minha-retransmissao.exemplo.com.br', + 'settings.watchTogetherRelayInvalid' => 'Insira uma URL base de retransmissão HTTP ou HTTPS válida.', 'settings.crashReporting' => 'Relatório de Erros', 'settings.crashReportingDescription' => 'Enviar relatórios de erros para ajudar a melhorar o app', 'settings.debugLogging' => 'Log de Depuração', 'settings.debugLoggingDescription' => 'Ativar log detalhado para solução de problemas', 'settings.viewLogs' => 'Ver Logs', - 'settings.viewLogsDescription' => 'Ver logs do aplicativo', + 'settings.viewLogsDescription' => 'Ver logs do app', 'settings.clearCache' => 'Limpar Cache', 'settings.clearCacheDescription' => 'Limpar imagens e dados em cache. O conteúdo pode carregar mais devagar.', 'settings.clearCacheSuccess' => 'Cache limpo com sucesso', @@ -2330,7 +2336,7 @@ extension on TranslationsPt { 'settings.resetSettingsSuccess' => 'Configurações redefinidas com sucesso', 'settings.backup' => 'Backup', 'settings.exportSettings' => 'Exportar Configurações', - 'settings.exportSettingsDescription' => 'Salve suas preferências em um arquivo', + 'settings.exportSettingsDescription' => 'Salvar suas preferências em um arquivo', 'settings.exportSettingsSuccess' => 'Configurações exportadas', 'settings.importSettings' => 'Importar Configurações', 'settings.importSettingsDescription' => 'Restaurar preferências a partir de um arquivo', @@ -2347,23 +2353,23 @@ extension on TranslationsPt { 'settings.autoCheckUpdatesOnStartup' => 'Verificar atualizações automaticamente ao iniciar', 'settings.autoCheckUpdatesOnStartupDescription' => 'Notificar ao iniciar quando houver atualização disponível', 'settings.validationErrorEnterNumber' => 'Insira um número válido', - 'settings.validationErrorDuration' => ({required Object min, required Object max, required Object unit}) => 'A duração deve ser entre ${min} e ${max} ${unit}', + 'settings.validationErrorDuration' => ({required Object min, required Object max, required Object unit}) => 'A duração deve estar entre ${min} e ${max} ${unit}', 'settings.shortcutAlreadyAssigned' => ({required Object action}) => 'Atalho já atribuído a ${action}', 'settings.shortcutUpdated' => ({required Object action}) => 'Atalho atualizado para ${action}', - 'settings.saveFailed' => 'Could not save changes. Try again.', - 'settings.autoSkip' => 'Pular Automaticamente', - 'settings.autoSkipIntro' => 'Pular Intro Automaticamente', - 'settings.autoSkipIntroDescription' => 'Pular marcadores de intro automaticamente após alguns segundos', - 'settings.autoSkipCredits' => 'Pular Créditos Automaticamente', - 'settings.autoSkipCreditsDescription' => 'Pular créditos automaticamente e reproduzir próximo episódio', + 'settings.saveFailed' => 'Não foi possível salvar as alterações. Tente novamente.', + 'settings.autoSkip' => 'Pular automaticamente', + 'settings.autoSkipIntro' => 'Pular introdução automaticamente', + 'settings.autoSkipIntroDescription' => 'Pular marcadores de introdução automaticamente após alguns segundos', + 'settings.autoSkipCredits' => 'Pular créditos automaticamente', + 'settings.autoSkipCreditsDescription' => 'Pular os créditos automaticamente e reproduzir o próximo episódio', 'settings.forceSkipMarkerFallback' => 'Forçar marcadores alternativos', - 'settings.forceSkipMarkerFallbackDescription' => 'Usar padrões de títulos de capítulos mesmo quando Plex tiver marcadores', - 'settings.autoSkipDelay' => 'Atraso do Pulo Automático', + 'settings.forceSkipMarkerFallbackDescription' => 'Usar padrões de títulos de capítulos mesmo quando o Plex tiver marcadores', + 'settings.autoSkipDelay' => 'Atraso para pular automaticamente', 'settings.autoSkipDelayDescription' => ({required Object seconds}) => 'Aguardar ${seconds} segundos antes de pular automaticamente', - 'settings.introPattern' => 'Padrão de marcador de intro', - 'settings.introPatternDescription' => 'Expressão regular para corresponder marcadores de intro nos títulos dos capítulos', - 'settings.creditsPattern' => 'Padrão de marcador de créditos', - 'settings.creditsPatternDescription' => 'Expressão regular para corresponder marcadores de créditos nos títulos dos capítulos', + 'settings.introPattern' => 'Padrão do marcador de introdução', + 'settings.introPatternDescription' => 'Expressão regular que identifica marcadores de introdução nos títulos dos capítulos', + 'settings.creditsPattern' => 'Padrão do marcador de créditos', + 'settings.creditsPatternDescription' => 'Expressão regular que identifica marcadores de créditos nos títulos dos capítulos', 'settings.invalidRegex' => 'Expressão regular inválida', 'settings.regex' => 'Expressão regular', 'settings.downloads' => 'Downloads', @@ -2377,11 +2383,11 @@ extension on TranslationsPt { 'settings.downloadLocationReset' => 'Local de download redefinido para padrão', 'settings.downloadLocationInvalid' => 'A pasta selecionada não permite gravação', 'settings.downloadLocationPickerUnavailable' => 'A seleção de pasta não está disponível neste dispositivo', - 'settings.downloadOnWifiOnly' => 'Baixar apenas no WiFi', - 'settings.downloadOnWifiOnlyDescription' => 'Impedir downloads quando em dados móveis', - 'settings.autoRemoveWatchedDownloads' => 'Remover downloads assistidos automaticamente', - 'settings.autoRemoveWatchedDownloadsDescription' => 'Excluir downloads assistidos automaticamente', - 'settings.cellularDownloadBlocked' => 'Downloads estão bloqueados na rede móvel. Use WiFi ou altere a configuração.', + 'settings.downloadOnWifiOnly' => 'Baixar apenas por Wi-Fi', + 'settings.downloadOnWifiOnlyDescription' => 'Impedir downloads ao usar dados móveis', + 'settings.autoRemoveWatchedDownloads' => 'Remover automaticamente os downloads assistidos', + 'settings.autoRemoveWatchedDownloadsDescription' => 'Excluir automaticamente os downloads assistidos', + 'settings.cellularDownloadBlocked' => 'Os downloads estão bloqueados nos dados móveis. Use Wi-Fi ou altere a configuração.', 'settings.maxVolume' => 'Volume Máximo', 'settings.maxVolumeDescription' => 'Permitir aumento de volume acima de 100% para mídias silenciosas', 'settings.maxVolumePercent' => ({required Object percent}) => '${percent}%', @@ -2390,38 +2396,38 @@ extension on TranslationsPt { 'settings.services' => 'Serviços', 'settings.servicesDescription' => 'Conecte Trakt, MyAnimeList, Seerr e mais', 'settings.manageLibrariesDescription' => 'Reordene e oculte bibliotecas', - 'settings.companionRemoteServer' => 'Servidor de controlo remoto', - 'settings.companionRemoteServerDescription' => 'Permitir que dispositivos móveis na sua rede controlem esta aplicação', - 'settings.autoPip' => 'Picture-in-Picture Automático', - 'settings.autoPipDescription' => 'Entrar em picture-in-picture ao sair durante a reprodução', - 'settings.matchContentFrameRate' => 'Corresponder Taxa de Quadros do Conteúdo', + 'settings.companionRemoteServer' => 'Servidor de controle remoto', + 'settings.companionRemoteServerDescription' => 'Permitir que dispositivos móveis na sua rede controlem este app', + 'settings.autoPip' => 'Picture-in-picture automático', + 'settings.autoPipDescription' => 'Entrar automaticamente no modo picture-in-picture ao sair do app durante a reprodução', + 'settings.matchContentFrameRate' => 'Ajustar à taxa de quadros do conteúdo', 'settings.matchContentFrameRateDescription' => 'Ajustar a taxa de atualização da tela ao conteúdo de vídeo', - 'settings.matchRefreshRate' => 'Corresponder Taxa de Atualização', + 'settings.matchRefreshRate' => 'Ajustar à taxa de atualização', 'settings.matchRefreshRateDescription' => 'Ajustar a taxa de atualização da tela em tela cheia', - 'settings.matchDynamicRange' => 'Corresponder Faixa Dinâmica', + 'settings.matchDynamicRange' => 'Ajustar à faixa dinâmica', 'settings.matchDynamicRangeDescription' => 'Ativar HDR para conteúdo HDR e depois voltar para SDR', - 'settings.displaySwitchDelay' => 'Atraso na Troca de Tela', - 'settings.tunneledPlayback' => 'Reprodução Tunelizada', - 'settings.tunneledPlaybackDescription' => 'Usar tunelamento de vídeo. Desative se HDR mostrar vídeo preto.', - 'settings.audioPassthrough' => 'Passagem de Áudio', - 'settings.audioPassthroughDescription' => 'Envie áudio Dolby/DTS para o seu receptor ou TV sem recodificar, preservando o som surround. Desative se não tiver som.', - 'settings.audioPassthroughDescriptionAppleTv' => 'Entrega Dolby Digital Plus (incluindo Atmos) ao sistema como bitstream. DTS e TrueHD continuam sendo reproduzidos como PCM multicanal. Podem ocorrer breves cortes de áudio ao buscar.', - 'settings.audioDownmix' => 'Downmix para Estéreo', - 'settings.audioDownmixDescription' => 'Mistura o áudio surround em dois canais para alto-falantes estéreo ou fones de ouvido', - 'settings.downmixCenterBoost' => 'Reforço do Canal Central', + 'settings.displaySwitchDelay' => 'Atraso na troca do modo de exibição', + 'settings.tunneledPlayback' => 'Reprodução em túnel', + 'settings.tunneledPlaybackDescription' => 'Usar o tunelamento de vídeo. Desative se o vídeo ficar preto ao reproduzir em HDR.', + 'settings.audioPassthrough' => 'Passagem direta de áudio', + 'settings.audioPassthroughDescription' => 'Enviar o áudio Dolby/DTS ao receptor ou à TV sem recodificação, preservando o som surround. Desative se não houver som.', + 'settings.audioPassthroughDescriptionAppleTv' => 'Usar o decodificador Dolby nativo da Apple para Dolby Digital Plus, incluindo Atmos. DTS e TrueHD continuam sendo reproduzidos como PCM multicanal. Desative se não houver som.', + 'settings.audioDownmix' => 'Conversão para estéreo', + 'settings.audioDownmixDescription' => 'Converter o áudio surround em dois canais para alto-falantes estéreo ou fones de ouvido', + 'settings.downmixCenterBoost' => 'Reforço do canal central', 'settings.downmixCenterBoostValue' => ({required Object db}) => '${db} dB', 'settings.downmixCenterBoostLabel' => 'Reforço (dB)', 'settings.downmixCenterBoostShort' => 'dB', - 'settings.audioDownmixNormalize' => 'Normalizar Volume no Downmix', - 'settings.audioDownmixNormalizeDescription' => 'Reduz a mixagem para evitar saturação. Desative para manter o volume original (cenas altas podem distorcer).', + 'settings.audioDownmixNormalize' => 'Normalizar volume na conversão para estéreo', + 'settings.audioDownmixNormalizeDescription' => 'Reduzir o volume da mixagem para evitar saturação. Desative para manter o volume original, que pode distorcer em cenas muito altas.', 'settings.atmosDiagnostics' => 'Teste de saída Atmos', - 'settings.atmosDiagnosticsDescription' => 'Diagnostique a saída Dolby Atmos reproduzindo sinais de teste pelo player do sistema', - 'settings.atmosTestHlsAtmos' => 'Stream Atmos da Apple', - 'settings.atmosTestHlsAtmosDescription' => 'Stream Dolby Atmos comprovadamente bom. O receptor deve mostrar Dolby Atmos.', - 'settings.atmosTestHlsControl' => 'Stream surround da Apple', - 'settings.atmosTestHlsControlDescription' => 'Stream de controle sem Atmos. O receptor deve mostrar surround sem Atmos.', - 'settings.atmosTestRawStream' => 'Stream EAC3 bruto', - 'settings.atmosTestRawStreamDescription' => 'Transmite o arquivo de teste exatamente como a reprodução Atmos no player. Requer a URL do arquivo de teste.', + 'settings.atmosDiagnosticsDescription' => 'Diagnosticar a saída Dolby Atmos reproduzindo sinais de teste pelo reprodutor do sistema', + 'settings.atmosTestHlsAtmos' => 'Transmissão Atmos da Apple', + 'settings.atmosTestHlsAtmosDescription' => 'Transmissão Dolby Atmos comprovadamente compatível. O receptor deve indicar Dolby Atmos.', + 'settings.atmosTestHlsControl' => 'Transmissão surround da Apple', + 'settings.atmosTestHlsControlDescription' => 'Transmissão de controle sem Atmos. O receptor deve indicar surround sem Atmos.', + 'settings.atmosTestRawStream' => 'Transmissão EAC3 bruta', + 'settings.atmosTestRawStreamDescription' => 'Transmite o arquivo de teste exatamente como na reprodução Atmos pelo reprodutor. Requer a URL do arquivo de teste.', 'settings.atmosTestRawFile' => 'Arquivo EAC3 bruto', 'settings.atmosTestRawFileDescription' => 'Reproduz o arquivo de teste com duração conhecida. Requer a URL do arquivo de teste.', 'settings.atmosTestStop' => 'Parar teste', @@ -2435,25 +2441,25 @@ extension on TranslationsPt { 'settings.dvConversionNative' => 'Nativo / desativado', 'settings.dvConversionDv81' => 'P7 → P8.1', 'settings.dvConversionHevcStrip' => 'P7 → HEVC', - 'settings.dvConversionAutoDescription' => 'Usar detecção de recursos do dispositivo e comportamento normal de fallback', - 'settings.dvConversionNativeDescription' => 'Forçar DV7 nativo e suprimir nova tentativa de conversão DV', - 'settings.dvConversionDv81Description' => 'Forçar conversão RPU inline para Dolby Vision perfil 8.1', - 'settings.dvConversionHevcStripDescription' => 'Remover camadas RPU/EL do Dolby Vision e apresentar HEVC simples', + 'settings.dvConversionAutoDescription' => 'Usar a detecção de recursos do dispositivo e o comportamento alternativo padrão', + 'settings.dvConversionNativeDescription' => 'Forçar DV7 nativo e impedir uma nova tentativa de conversão de DV', + 'settings.dvConversionDv81Description' => 'Forçar a conversão RPU integrada para Dolby Vision perfil 8.1', + 'settings.dvConversionHevcStripDescription' => 'Remover as camadas RPU/EL do Dolby Vision e apresentar HEVC sem Dolby Vision', 'settings.requireProfileSelectionOnOpen' => 'Pedir perfil ao abrir o app', - 'settings.requireProfileSelectionOnOpenDescription' => 'Mostrar seleção de perfil toda vez que o app for aberto', + 'settings.requireProfileSelectionOnOpenDescription' => 'Mostrar a seleção de perfil sempre que o app for aberto', 'settings.forceTvMode' => 'Forçar modo TV', - 'settings.forceTvModeDescription' => 'Forçar layout TV. Para dispositivos sem detecção automática. Requer reinício.', + 'settings.forceTvModeDescription' => 'Forçar o layout de TV em dispositivos sem detecção automática. Requer reiniciar o app.', 'settings.startInFullscreen' => 'Iniciar em tela cheia', 'settings.startInFullscreenDescription' => 'Abrir o Plezy em modo de tela cheia ao iniciar', - 'settings.exitFullscreenOnPlayerClose' => 'Sair do ecrã inteiro ao fechar o leitor', - 'settings.exitFullscreenOnPlayerCloseDescription' => 'Sair automaticamente do modo de ecrã inteiro ao fechar o leitor de vídeo', - 'settings.autoHidePerformanceOverlay' => 'Ocultar overlay de desempenho automaticamente', - 'settings.autoHidePerformanceOverlayDescription' => 'Desvanecer o overlay de desempenho com os controles de reprodução', + 'settings.exitFullscreenOnPlayerClose' => 'Sair da tela cheia ao fechar o reprodutor', + 'settings.exitFullscreenOnPlayerCloseDescription' => 'Sair automaticamente da tela cheia ao fechar o reprodutor de vídeo', + 'settings.autoHidePerformanceOverlay' => 'Ocultar automaticamente o painel de desempenho', + 'settings.autoHidePerformanceOverlayDescription' => 'Esmaecer o painel de desempenho junto com os controles de reprodução', 'settings.showNavBarLabels' => 'Mostrar Rótulos da Barra de Navegação', 'settings.showNavBarLabelsDescription' => 'Exibir rótulos de texto sob os ícones da barra de navegação', 'settings.startupSection' => 'Seção inicial', 'settings.liveTvDefaultFavorites' => 'Canais favoritos por padrão', - 'settings.liveTvDefaultFavoritesDescription' => 'Mostrar apenas canais favoritos ao abrir TV ao vivo', + 'settings.liveTvDefaultFavoritesDescription' => 'Mostrar apenas os canais favoritos ao abrir a TV ao vivo', 'settings.display' => 'Tela', 'settings.homeScreen' => 'Tela inicial', 'settings.navigation' => 'Navegação', @@ -2496,20 +2502,20 @@ extension on TranslationsPt { 'hotkeys.actions.subSeekNext' => 'Ir para Próxima Legenda', 'hotkeys.actions.subSeekPrev' => 'Ir para Legenda Anterior', 'hotkeys.actions.shaderToggle' => 'Alternar Shaders', - 'hotkeys.actions.skipMarker' => 'Pular Intro/Créditos', + 'hotkeys.actions.skipMarker' => 'Pular introdução/créditos', 'hotkeys.actions.screenshot' => 'Capturar tela', - 'fileInfo.title' => 'Info do Arquivo', + 'fileInfo.title' => 'Informações do arquivo', 'fileInfo.video' => 'Vídeo', 'fileInfo.audio' => 'Áudio', 'fileInfo.file' => 'Arquivo', 'fileInfo.advanced' => 'Avançado', 'fileInfo.codec' => 'Codec', 'fileInfo.resolution' => 'Resolução', - 'fileInfo.bitrate' => 'Taxa de Bits', + 'fileInfo.bitrate' => 'Taxa de bits', 'fileInfo.frameRate' => 'Taxa de Quadros', 'fileInfo.aspectRatio' => 'Proporção', 'fileInfo.profile' => 'Perfil', - 'fileInfo.bitDepth' => 'Profundidade de Bits', + 'fileInfo.bitDepth' => 'Profundidade de bits', 'fileInfo.colorSpace' => 'Espaço de Cor', 'fileInfo.colorRange' => 'Faixa de Cor', 'fileInfo.colorPrimaries' => 'Primárias de Cor', @@ -2519,10 +2525,10 @@ extension on TranslationsPt { 'fileInfo.overallBitrate' => 'Taxa de bits total', 'fileInfo.path' => 'Caminho', 'fileInfo.size' => 'Tamanho', - 'fileInfo.container' => 'Container', + 'fileInfo.container' => 'Contêiner', 'fileInfo.duration' => 'Duração', - 'fileInfo.optimizedForStreaming' => 'Otimizado para Streaming', - 'fileInfo.has64bitOffsets' => 'Offsets de 64 bits', + 'fileInfo.optimizedForStreaming' => 'Otimizado para transmissão', + 'fileInfo.has64bitOffsets' => 'Deslocamentos de 64 bits', 'mediaMenu.markAsWatched' => 'Marcar como Assistido', 'mediaMenu.markAsUnwatched' => 'Marcar como Não Assistido', 'mediaMenu.removeFromContinueWatching' => 'Remover de Continuar Assistindo', @@ -2530,7 +2536,7 @@ extension on TranslationsPt { 'mediaMenu.goToSeries' => 'Ir para a série', 'mediaMenu.shufflePlay' => 'Reprodução Aleatória', 'mediaMenu.shuffleNotAvailableOffline' => 'Reprodução aleatória indisponível offline', - 'mediaMenu.fileInfo' => 'Info do Arquivo', + 'mediaMenu.fileInfo' => 'Informações do arquivo', 'mediaMenu.deleteFromServer' => 'Excluir do servidor', 'mediaMenu.confirmDelete' => 'Excluir esta mídia e seus arquivos do servidor?', 'mediaMenu.deleteMultipleWarning' => 'Isso inclui todos os episódios e seus arquivos.', @@ -2586,11 +2592,11 @@ extension on TranslationsPt { 'videoControls.stretch' => 'Esticar', 'videoControls.lockRotation' => 'Travar rotação', 'videoControls.unlockRotation' => 'Destravar rotação', - 'videoControls.timerActive' => 'Timer Ativo', + 'videoControls.timerActive' => 'Temporizador ativo', 'videoControls.playbackWillPauseIn' => ({required Object duration}) => 'A reprodução pausará em ${duration}', 'videoControls.sleepTimerEndOfVideo' => 'Fim do vídeo atual', 'videoControls.sleepTimerStopAtHeader' => 'Parar em', - 'videoControls.sleepTimerDurationHeader' => 'Timer', + 'videoControls.sleepTimerDurationHeader' => 'Temporizador', 'videoControls.playbackWillPauseAtEnd' => 'A reprodução pausará no final deste vídeo', 'videoControls.stillWatching' => 'Ainda assistindo?', 'videoControls.pausingIn' => ({required Object seconds}) => 'Pausando em ${seconds}s', @@ -2599,6 +2605,8 @@ extension on TranslationsPt { 'videoControls.playNext' => 'Reproduzir Próximo', 'videoControls.playButton' => 'Reproduzir', 'videoControls.pauseButton' => 'Pausar', + 'videoControls.showPlaybackControls' => 'Mostrar controles de reprodução', + 'videoControls.hidePlaybackControls' => 'Ocultar controles de reprodução', 'videoControls.seekBackwardButton' => ({required Object seconds}) => 'Retroceder ${seconds} segundos', 'videoControls.seekForwardButton' => ({required Object seconds}) => 'Avançar ${seconds} segundos', 'videoControls.previousButton' => 'Episódio anterior', @@ -2607,8 +2615,8 @@ extension on TranslationsPt { 'videoControls.nextChapterButton' => 'Próximo capítulo', 'videoControls.muteButton' => 'Silenciar', 'videoControls.unmuteButton' => 'Ativar som', - 'videoControls.settingsButton' => 'Configurações de Reprodução', - 'videoControls.tracksButton' => 'Áudio e Legendas', + 'videoControls.settingsButton' => 'Configurações de reprodução', + 'videoControls.tracksButton' => 'Áudio e legendas', 'videoControls.chaptersButton' => 'Capítulos', 'videoControls.versionQualityButton' => 'Versão e qualidade', 'videoControls.versionColumnHeader' => 'Versão', @@ -2652,34 +2660,34 @@ extension on TranslationsPt { 'videoControls.noAudioTracksAvailable' => 'Nenhuma faixa de áudio disponível', 'videoControls.noTracksAvailable' => 'Nenhuma faixa disponível', 'videoControls.subtitleDownloaded' => 'Legenda baixada', - 'videoControls.subtitleDownloadedNotApplied' => 'A legenda foi transferida, mas não foi possível selecioná-la', + 'videoControls.subtitleDownloadedNotApplied' => 'A legenda foi baixada, mas não foi possível selecioná-la', 'videoControls.subtitleDownloadFailed' => 'Falha ao baixar legenda', 'videoControls.searchLanguages' => 'Pesquisar idiomas...', + _ => null, + } ?? switch (path) { 'messages.markedAsWatched' => 'Marcado como assistido', 'messages.markedAsUnwatched' => 'Marcado como não assistido', 'messages.markedAsWatchedOffline' => 'Marcado como assistido (será sincronizado quando online)', 'messages.markedAsUnwatchedOffline' => 'Marcado como não assistido (será sincronizado quando online)', - _ => null, - } ?? switch (path) { 'messages.autoRemovedWatchedDownload' => ({required Object title}) => 'Removido automaticamente: ${title}', 'messages.autoRemovedWatchedDownloads' => ({required num n}) => (_root.$meta.cardinalResolver ?? PluralResolvers.cardinal('pt'))(n, one: 'Removido automaticamente ${n} download assistido', other: 'Removidos automaticamente ${n} downloads assistidos', ), - 'messages.removedFromContinueWatching' => 'Removido de Continuar Assistindo', + 'messages.removedFromContinueWatching' => 'Removido de Continuar assistindo', 'messages.errorLoading' => ({required Object error}) => 'Erro: ${error}', - 'messages.streamInterrupted' => 'A transmissão foi interrompida. Toque em reproduzir ou avance para tentar novamente.', - 'messages.liveStreamInterrupted' => 'A transmissão ao vivo foi interrompida. Toque em reproduzir para tentar novamente.', + 'messages.streamInterrupted' => 'A transmissão foi interrompida. Pressione reproduzir ou avance para tentar novamente.', + 'messages.liveStreamInterrupted' => 'A transmissão ao vivo foi interrompida. Pressione reproduzir para tentar novamente.', 'messages.fileInfoNotAvailable' => 'Informações do arquivo não disponíveis', - 'messages.playbackAuthenticationRequired' => 'Sign in to the media server again to play this item.', - 'messages.playbackServerUnavailable' => 'The media server is unavailable. Try again later.', - 'messages.playbackDataInvalid' => 'The server returned invalid playback information.', - 'messages.playbackCancelled' => 'Playback was cancelled.', - 'messages.playbackFailed' => 'Playback could not be started.', - 'messages.errorLoadingFileInfo' => ({required Object error}) => 'Erro ao carregar info do arquivo: ${error}', + 'messages.playbackAuthenticationRequired' => 'Entre novamente no servidor de mídia para reproduzir este item.', + 'messages.playbackServerUnavailable' => 'O servidor de mídia está indisponível. Tente novamente mais tarde.', + 'messages.playbackDataInvalid' => 'O servidor retornou informações de reprodução inválidas.', + 'messages.playbackCancelled' => 'A reprodução foi cancelada.', + 'messages.playbackFailed' => 'Não foi possível iniciar a reprodução.', + 'messages.errorLoadingFileInfo' => ({required Object error}) => 'Erro ao carregar as informações do arquivo: ${error}', 'messages.errorLoadingSeries' => 'Erro ao carregar série', - 'messages.musicNotSupported' => 'Reprodução de música ainda não é suportada', + 'messages.musicNotSupported' => 'A reprodução de música ainda não é compatível', 'messages.noDescriptionAvailable' => 'Nenhuma descrição disponível', 'messages.noProfilesAvailable' => 'Nenhum perfil disponível', - 'messages.contactAdminForProfiles' => 'Contate o administrador do servidor para adicionar perfis', - 'messages.unableToDetermineLibrarySection' => 'Não é possível determinar a secção da biblioteca para este item', + 'messages.contactAdminForProfiles' => 'Entre em contato com o administrador do servidor para adicionar perfis', + 'messages.unableToDetermineLibrarySection' => 'Não foi possível determinar a seção da biblioteca deste item', 'messages.logsCleared' => 'Logs limpos', 'messages.logsCopied' => 'Logs copiados para a área de transferência', 'messages.noLogsAvailable' => 'Nenhum log disponível', @@ -2689,23 +2697,23 @@ extension on TranslationsPt { 'messages.metadataRefreshing' => ({required Object title}) => 'Atualizando metadados de "${title}"...', 'messages.metadataRefreshStarted' => ({required Object title}) => 'Atualização de metadados iniciada para "${title}"', 'messages.metadataRefreshFailed' => ({required Object error}) => 'Falha ao atualizar metadados: ${error}', - 'messages.logoutConfirm' => 'Tem certeza que deseja sair?', + 'messages.logoutConfirm' => 'Tem certeza de que deseja sair?', 'messages.noSeasonsFound' => 'Nenhuma temporada encontrada', 'messages.seasonsLoadFailed' => 'Não foi possível carregar as temporadas', 'messages.noEpisodesFound' => 'Nenhum episódio encontrado na primeira temporada', 'messages.noEpisodesFoundGeneral' => 'Nenhum episódio encontrado', 'messages.episodesLoadFailed' => 'Não foi possível carregar os episódios', 'messages.noResultsFound' => 'Nenhum resultado encontrado', - 'messages.sleepTimerSet' => ({required Object label}) => 'Timer de sono definido para ${label}', + 'messages.sleepTimerSet' => ({required Object label}) => 'Temporizador de suspensão definido como ${label}', 'messages.noItemsAvailable' => 'Nenhum item disponível', - 'messages.failedToCreatePlayQueueNoItems' => 'Falha ao criar fila de reprodução - sem itens', + 'messages.failedToCreatePlayQueueNoItems' => 'Falha ao criar a fila de reprodução — nenhum item', 'messages.failedPlayback' => ({required Object action, required Object error}) => 'Falha ao ${action}: ${error}', - 'messages.switchingToCompatiblePlayer' => 'Alternando para player compatível...', + 'messages.switchingToCompatiblePlayer' => 'Alternando para um reprodutor compatível...', 'messages.serverLimitTitle' => 'Falha na reprodução', - 'messages.serverLimitBody' => 'Erro do servidor (HTTP 500). Um limite de largura de banda/transcodificação provavelmente rejeitou esta sessão. Peça ao dono para ajustar.', + 'messages.serverLimitBody' => 'Erro do servidor (HTTP 500). Um limite de largura de banda ou transcodificação provavelmente rejeitou esta sessão. Peça ao proprietário do servidor para ajustá-lo.', 'messages.logsUploaded' => 'Logs enviados', 'messages.logsUploadFailed' => 'Falha ao enviar logs', - 'messages.logId' => 'ID do Log', + 'messages.logId' => 'ID do log', 'subtitlingStyling.text' => 'Texto', 'subtitlingStyling.border' => 'Borda', 'subtitlingStyling.background' => 'Fundo', @@ -2728,7 +2736,7 @@ extension on TranslationsPt { 'subtitlingStyling.renderResolutionScreen' => 'Resolução da tela', 'subtitlingStyling.renderResolutionVideo' => 'Resolução do vídeo', 'mpvConfig.title' => 'mpv.conf', - 'mpvConfig.description' => 'Configurações avançadas do player de vídeo', + 'mpvConfig.description' => 'Configurações avançadas do reprodutor de vídeo', 'mpvConfig.presets' => 'Predefinições', 'mpvConfig.noPresets' => 'Nenhuma predefinição salva', 'mpvConfig.saveAsPreset' => 'Salvar como Predefinição...', @@ -2739,7 +2747,7 @@ extension on TranslationsPt { 'mpvConfig.presetSaved' => 'Predefinição salva', 'mpvConfig.presetLoaded' => 'Predefinição carregada', 'mpvConfig.presetDeleted' => 'Predefinição excluída', - 'mpvConfig.confirmDeletePreset' => 'Tem certeza que deseja excluir esta predefinição?', + 'mpvConfig.confirmDeletePreset' => 'Tem certeza de que deseja excluir esta predefinição?', 'mpvConfig.configPlaceholder' => 'gpu-api=vulkan\nhwdec=auto\n# comment', 'dialog.confirmAction' => 'Confirmar Ação', 'profiles.addPlezyProfile' => 'Adicionar perfil Plezy', @@ -2751,11 +2759,11 @@ extension on TranslationsPt { 'profiles.delete' => 'Excluir', 'profiles.signOut' => 'Sair', 'profiles.signOutPlexTitle' => 'Sair do Plex?', - 'profiles.signOutPlexMessage' => ({required Object displayName}) => 'Remover ${displayName} e todos os usuários Plex Home? Você pode entrar novamente quando quiser.', + 'profiles.signOutPlexMessage' => ({required Object displayName}) => 'Remover ${displayName} e todos os usuários do Plex Home? Você pode entrar novamente quando quiser.', 'profiles.signedOutPlex' => 'Saiu do Plex.', 'profiles.signOutFailed' => 'Falha ao sair.', 'profiles.sectionTitle' => 'Perfis', - 'profiles.summarySingle' => 'Adicione perfis para mesclar usuários gerenciados e identidades locais', + 'profiles.summarySingle' => 'Adicione perfis para combinar usuários gerenciados e identidades locais', 'profiles.summaryMultipleWithActive' => ({required Object count, required Object activeName}) => '${count} perfis · ativo: ${activeName}', 'profiles.summaryMultiple' => ({required Object count}) => '${count} perfis', 'profiles.removeConnectionTitle' => 'Remover conexão?', @@ -2765,7 +2773,7 @@ extension on TranslationsPt { 'profiles.profileNameLabel' => 'Nome do perfil', 'profiles.pinProtectionLabel' => 'Proteção por PIN', 'profiles.pinManagedByPlex' => 'PIN gerenciado pelo Plex. Edite em plex.tv.', - 'profiles.noPinSetEditOnPlex' => 'Nenhum PIN definido. Para exigir um, edite o usuário Home em plex.tv.', + 'profiles.noPinSetEditOnPlex' => 'Nenhum PIN definido. Para exigir um, edite o usuário do Plex Home em plex.tv.', 'profiles.setPin' => 'Definir PIN', 'profiles.setPinTitle' => 'Definir PIN', 'profiles.confirmPinTitle' => 'Confirmar PIN', @@ -2785,29 +2793,29 @@ extension on TranslationsPt { 'profiles.profileRenamed' => 'Perfil renomeado.', 'profiles.borrowAddTo' => ({required Object displayName}) => 'Adicionar a ${displayName}', 'profiles.borrowExplain' => 'Use a conexão de outro perfil. Perfis protegidos por PIN exigem PIN.', - 'profiles.borrowEmpty' => 'Nada para emprestar ainda.', + 'profiles.borrowEmpty' => 'Nenhuma conexão disponível ainda.', 'profiles.borrowEmptySubtitle' => 'Conecte Plex ou Jellyfin a outro perfil primeiro.', - 'profiles.borrowLoadFailed' => 'Available connections could not be loaded. Try again.', + 'profiles.borrowLoadFailed' => 'Não foi possível carregar as conexões disponíveis. Tente novamente.', 'profiles.borrowFromProfile' => ({required Object displayName}) => 'De ${displayName}', - 'profiles.borrowConnectionBorrowed' => 'Conexão tomada emprestada.', - 'profiles.borrowFailed' => 'Não foi possível tomar a conexão emprestada.', + 'profiles.borrowConnectionBorrowed' => 'Conexão adicionada ao perfil.', + 'profiles.borrowFailed' => 'Não foi possível adicionar a conexão.', 'profiles.incorrectPin' => 'PIN incorreto.', 'profiles.incorrectPinTryAgain' => 'PIN incorreto. Tente novamente.', 'profiles.sourceProfileMissingParentAccount' => 'O perfil de origem não tem a conta principal.', - 'profiles.failedToLoadHomeUsers' => 'Não foi possível carregar seus usuários do Plex Home. Verifique sua conexão e tente novamente.', + 'profiles.failedToLoadHomeUsers' => 'Não foi possível carregar os usuários do Plex Home. Verifique sua conexão e tente novamente.', 'profiles.failedToVerifyPin' => 'Não foi possível verificar o PIN.', 'profiles.newProfile' => 'Novo perfil', - 'profiles.profileNameHint' => 'ex.: Visitantes, Crianças, Sala de família', + 'profiles.profileNameHint' => 'Ex.: Visitantes, Crianças, Sala de família', 'profiles.pinProtectionOptional' => 'Proteção por PIN (opcional)', 'profiles.pinExplain' => 'PIN de 4 dígitos necessário para trocar perfis.', 'profiles.continueButton' => 'Continuar', 'profiles.pinsDontMatch' => 'Os PINs não correspondem', 'connections.sectionTitle' => 'Conexões', 'connections.addConnection' => 'Adicionar conexão', - 'connections.addConnectionSubtitleNoProfile' => 'Faça login com Plex ou conecte um servidor Jellyfin', + 'connections.addConnectionSubtitleNoProfile' => 'Entre com Plex ou conecte um servidor Jellyfin', 'connections.addConnectionSubtitleScoped' => ({required Object displayName}) => 'Adicionar a ${displayName}: Plex, Jellyfin ou outra conexão de perfil', - 'connections.sessionExpiredOne' => ({required Object name}) => 'Sessão expirada para ${name}', - 'connections.sessionExpiredMany' => ({required Object count}) => 'Sessão expirada para ${count} servidores', + 'connections.sessionExpiredOne' => ({required Object name}) => 'Sessão de ${name} expirada', + 'connections.sessionExpiredMany' => ({required Object count}) => 'Sessões expiradas em ${count} servidores', 'connections.signInAgain' => 'Entrar novamente', 'connections.editJellyfinTitle' => 'Editar conexão Jellyfin', 'connections.editJellyfinIntro' => ({required Object serverName}) => 'Adicione ou remova URLs de ${serverName}. O Plezy usará a URL acessível com a menor latência.', @@ -2826,13 +2834,13 @@ extension on TranslationsPt { 'discover.playEpisode' => ({required Object season, required Object episode}) => 'S${season}E${episode}', 'discover.overview' => 'Sinopse', 'discover.cast' => 'Elenco', - 'discover.extras' => 'Trailers e Extras', + 'discover.extras' => 'Trailers e extras', 'discover.studio' => 'Estúdio', 'discover.rating' => 'Avaliação', 'discover.movie' => 'Filme', 'discover.tvShow' => 'Série de TV', 'discover.minutesLeft' => ({required Object minutes}) => '${minutes} min restantes', - 'discover.moreLikeThis' => 'Mais como este', + 'discover.moreLikeThis' => 'Títulos semelhantes', 'errors.searchFailed' => ({required Object error}) => 'Falha na busca: ${error}', 'errors.connectionTimeout' => ({required Object context}) => 'Tempo de conexão esgotado ao carregar ${context}', 'errors.connectionFailed' => 'Não foi possível conectar ao servidor de mídia', @@ -2865,16 +2873,16 @@ extension on TranslationsPt { 'libraries.noItemsMatchFilters' => 'Nenhum item corresponde aos filtros ativos', 'libraries.resetFilters' => 'Redefinir filtros', 'libraries.all' => 'Todos', - 'libraries.clearAll' => 'Limpar Tudo', - 'libraries.scanLibraryConfirm' => ({required Object title}) => 'Tem certeza que deseja escanear "${title}"?', - 'libraries.analyzeLibraryConfirm' => ({required Object title}) => 'Tem certeza que deseja analisar "${title}"?', - 'libraries.refreshMetadataConfirm' => ({required Object title}) => 'Tem certeza que deseja atualizar os metadados de "${title}"?', - 'libraries.emptyTrashConfirm' => ({required Object title}) => 'Tem certeza que deseja esvaziar a lixeira de "${title}"?', + 'libraries.clearAll' => 'Limpar tudo', + 'libraries.scanLibraryConfirm' => ({required Object title}) => 'Tem certeza de que deseja escanear "${title}"?', + 'libraries.analyzeLibraryConfirm' => ({required Object title}) => 'Tem certeza de que deseja analisar "${title}"?', + 'libraries.refreshMetadataConfirm' => ({required Object title}) => 'Tem certeza de que deseja atualizar os metadados de "${title}"?', + 'libraries.emptyTrashConfirm' => ({required Object title}) => 'Tem certeza de que deseja esvaziar a lixeira de "${title}"?', 'libraries.manageLibraries' => 'Gerenciar Bibliotecas', 'libraries.sort' => 'Ordenar', - 'libraries.sortBy' => 'Ordenar Por', + 'libraries.sortBy' => 'Ordenar por', 'libraries.filters' => 'Filtros', - 'libraries.confirmActionMessage' => 'Tem certeza que deseja realizar esta ação?', + 'libraries.confirmActionMessage' => 'Tem certeza de que deseja realizar esta ação?', 'libraries.showLibrary' => 'Mostrar biblioteca', 'libraries.hideLibrary' => 'Ocultar biblioteca', 'libraries.libraryOptions' => 'Opções da biblioteca', @@ -2901,10 +2909,10 @@ extension on TranslationsPt { 'libraries.groupings.folders' => 'Pastas', 'libraries.filterCategories.genre' => 'Gênero', 'libraries.filterCategories.year' => 'Ano', - 'libraries.filterCategories.contentRating' => 'Classificação', + 'libraries.filterCategories.contentRating' => 'Classificação indicativa', 'libraries.filterCategories.tag' => 'Tag', 'libraries.filterCategories.unwatched' => 'Não assistidos', - 'libraries.filterCategories.unplayed' => 'Não reproduzido', + 'libraries.filterCategories.unplayed' => 'Não reproduzidos', 'libraries.filterCategories.favorites' => 'Favoritos', 'libraries.sortLabels.title' => 'Título', 'libraries.sortLabels.dateAdded' => 'Data de adição', @@ -2927,10 +2935,10 @@ extension on TranslationsPt { 'libraries.sortLabels.latestEpisodeAirDate' => 'Última data de exibição do episódio', 'libraries.sortLabels.lastEpisodeDateAdded' => 'Data de adição do último episódio', 'about.title' => 'Sobre', - 'about.openSourceLicenses' => 'Licenças Open Source', + 'about.openSourceLicenses' => 'Licenças de código aberto', 'about.versionLabel' => ({required Object version}) => 'Versão ${version}', - 'about.appDescription' => 'Um belo cliente Plex e Jellyfin para Flutter', - 'about.viewLicensesDescription' => 'Ver licenças de bibliotecas de terceiros', + 'about.appDescription' => 'Um belo cliente de Plex e Jellyfin feito com Flutter', + 'about.viewLicensesDescription' => 'Ver as licenças de bibliotecas de terceiros', 'serverSelection.noServersFoundForAccount' => ({required Object username, required Object email}) => 'Nenhum servidor encontrado para ${username} (${email})', 'serverSelection.failedToLoadServers' => ({required Object error}) => 'Falha ao carregar servidores: ${error}', 'hubDetail.title' => 'Título', @@ -2951,7 +2959,7 @@ extension on TranslationsPt { 'navigation.explore' => 'Explorar', 'explore.title' => 'Explorar', 'explore.selectSource' => 'Selecionar fonte', - 'explore.rows.watchlist' => 'Lista para ver', + 'explore.rows.watchlist' => 'Lista para assistir', 'explore.rows.recommendedMovies' => 'Filmes recomendados', 'explore.rows.recommendedShows' => 'Séries recomendadas', 'explore.rows.trendingMovies' => 'Filmes em alta', @@ -2960,7 +2968,7 @@ extension on TranslationsPt { 'explore.rows.popularShows' => 'Séries populares', 'explore.rows.trendingAnime' => 'Anime em alta', 'explore.rows.suggestedAnime' => 'Anime sugerido', - 'explore.rows.airingAnime' => 'Melhor anime em exibição', + 'explore.rows.airingAnime' => 'Melhores animes em exibição', 'explore.rows.popularAnime' => 'Anime mais popular', 'explore.rows.trending' => 'Em alta', 'explore.rows.upcomingMovies' => 'Próximos filmes', @@ -2972,12 +2980,12 @@ extension on TranslationsPt { 'explore.episodeCount' => ({required num n}) => (_root.$meta.cardinalResolver ?? PluralResolvers.cardinal('pt'))(n, one: '${n} episódio', other: '${n} episódios', ), 'explore.cast' => 'Elenco', 'explore.characters' => 'Personagens', - 'explore.addToWatchlist' => 'Adicionar à lista para ver', - 'explore.removeFromWatchlist' => 'Remover da lista para ver', - 'explore.watchlistUpdateFailed' => 'Não foi possível atualizar a lista para ver', + 'explore.addToWatchlist' => 'Adicionar à lista para assistir', + 'explore.removeFromWatchlist' => 'Remover da lista para assistir', + 'explore.watchlistUpdateFailed' => 'Não foi possível atualizar a lista para assistir', 'explore.notInLibrary' => 'Não está na sua biblioteca', 'explore.inTheseLibraries' => 'Nestas bibliotecas', - 'explore.checkingLibrary' => 'Verificando a sua biblioteca...', + 'explore.checkingLibrary' => 'Verificando sua biblioteca...', 'explore.emptyTitle' => 'Ainda não há nada aqui', 'explore.emptyMessage' => ({required Object source}) => 'As linhas de ${source} aparecerão aqui quando tiverem conteúdo.', 'explore.searchHint' => ({required Object source}) => 'Buscar em ${source}', @@ -2988,10 +2996,10 @@ extension on TranslationsPt { 'liveTv.guide' => 'Guia', 'liveTv.noChannels' => 'Nenhum canal disponível', 'liveTv.noDvr' => 'Nenhum DVR configurado em nenhum servidor', - 'liveTv.serverUnavailable' => 'O servidor de TV em direto não está disponível.', - 'liveTv.serverNotConnected' => 'O servidor de TV em direto não está ligado.', + 'liveTv.serverUnavailable' => 'O servidor de TV ao vivo não está disponível.', + 'liveTv.serverNotConnected' => 'O servidor de TV ao vivo não está conectado.', 'liveTv.noPrograms' => 'Nenhum dado de programação disponível', - 'liveTv.liveStreamFailed' => 'Falha no stream ao vivo', + 'liveTv.liveStreamFailed' => 'Falha na transmissão ao vivo', 'liveTv.unknownProgram' => 'Programa desconhecido', 'liveTv.unknownHub' => 'Desconhecido', 'liveTv.unknownError' => 'Erro desconhecido', @@ -3008,16 +3016,16 @@ extension on TranslationsPt { 'liveTv.daytime' => 'Dia', 'liveTv.evening' => 'Noite', 'liveTv.lateNight' => 'Madrugada', - 'liveTv.whatsOn' => 'O que Está Passando', - 'liveTv.watchChannel' => 'Assistir Canal', + 'liveTv.whatsOn' => 'O que está passando', + 'liveTv.watchChannel' => 'Assistir ao canal', 'liveTv.favorites' => 'Favoritos', 'liveTv.reorderFavorites' => 'Reordenar favoritos', 'liveTv.favoritesLoadFailed' => 'Não foi possível carregar os favoritos. Verifique sua conexão e tente novamente.', - 'liveTv.favoritesUpdateFailed' => 'Could not update favorites. Check your connection and try again.', + 'liveTv.favoritesUpdateFailed' => 'Não foi possível atualizar os favoritos. Verifique sua conexão e tente novamente.', 'liveTv.joinSession' => 'Entrar na sessão em andamento', 'liveTv.watchFromStart' => ({required Object minutes}) => 'Assistir do início (${minutes} min atrás)', 'liveTv.watchLive' => 'Assistir ao vivo', - 'liveTv.goToLive' => 'Ir para o ao vivo', + 'liveTv.goToLive' => 'Ir para o ponto ao vivo', 'liveTv.record' => 'Gravar', 'liveTv.recordEpisode' => 'Gravar episódio', 'liveTv.recordSeries' => 'Gravar série', @@ -3048,7 +3056,7 @@ extension on TranslationsPt { 'liveTv.editRule' => 'Editar regra', 'liveTv.editRuleAction' => 'Editar', 'liveTv.recordingRuleUpdated' => 'Regra de gravação atualizada', - 'liveTv.guideReloadRequested' => 'Atualização da guia solicitada', + 'liveTv.guideReloadRequested' => 'Atualização do guia solicitada', 'liveTv.rulesProcessRequested' => 'Reavaliação de regras solicitada', 'liveTv.recordShow' => 'Gravar programa', 'collections.title' => 'Coleções', @@ -3084,7 +3092,7 @@ extension on TranslationsPt { 'playlists.oneItem' => '1 item', 'playlists.emptyPlaylist' => 'Esta playlist está vazia', 'playlists.deleteConfirm' => 'Excluir Playlist?', - 'playlists.deleteMessage' => ({required Object name}) => 'Tem certeza que deseja excluir "${name}"?', + 'playlists.deleteMessage' => ({required Object name}) => 'Tem certeza de que deseja excluir "${name}"?', 'playlists.created' => 'Playlist criada', 'playlists.deleted' => 'Playlist excluída', 'playlists.itemAdded' => 'Adicionado à playlist', @@ -3118,43 +3126,43 @@ extension on TranslationsPt { 'music.nextTrack' => 'Próxima faixa', 'music.repeat' => 'Repetir', 'music.repeatAll' => 'Repetir tudo', - 'music.repeatOne' => 'Repetir uma', + 'music.repeatOne' => 'Repetir uma faixa', 'watchTogether.title' => 'Assistir Juntos', - 'watchTogether.description' => 'Assista conteúdo sincronizado com amigos e família', - 'watchTogether.createSession' => 'Criar Sessão', + 'watchTogether.description' => 'Assista a conteúdos sincronizados com amigos e familiares', + 'watchTogether.createSession' => 'Criar sessão', 'watchTogether.creating' => 'Criando...', - 'watchTogether.joinSession' => 'Entrar na Sessão', + 'watchTogether.joinSession' => 'Entrar na sessão', 'watchTogether.joining' => 'Entrando...', - 'watchTogether.controlMode' => 'Modo de Controle', + 'watchTogether.controlMode' => 'Modo de controle', 'watchTogether.controlModeQuestion' => 'Quem pode controlar a reprodução?', - 'watchTogether.hostOnly' => 'Apenas o Anfitrião', + 'watchTogether.hostOnly' => 'Apenas o anfitrião', 'watchTogether.anyone' => 'Qualquer pessoa', - 'watchTogether.hostingSession' => 'Hospedando Sessão', - 'watchTogether.inSession' => 'Em Sessão', - 'watchTogether.sessionCode' => 'Código da Sessão', + 'watchTogether.hostingSession' => 'Hospedando uma sessão', + 'watchTogether.inSession' => 'Em uma sessão', + 'watchTogether.sessionCode' => 'Código da sessão', 'watchTogether.openSessionControls' => 'Abrir os controles da sessão Assistir Juntos', 'watchTogether.copySessionCode' => 'Copiar código da sessão', - 'watchTogether.hostControlsPlayback' => 'Anfitrião controla a reprodução', + 'watchTogether.hostControlsPlayback' => 'O anfitrião controla a reprodução', 'watchTogether.anyoneCanControl' => 'Qualquer pessoa pode controlar a reprodução', 'watchTogether.hostControls' => 'Controle do anfitrião', - 'watchTogether.anyoneControls' => 'Controle de todos', + 'watchTogether.anyoneControls' => 'Controle por qualquer pessoa', 'watchTogether.participants' => 'Participantes', 'watchTogether.host' => 'Anfitrião', - 'watchTogether.hostBadge' => 'HOST', + 'watchTogether.hostBadge' => 'ANFITRIÃO', 'watchTogether.youAreHost' => 'Você é o anfitrião', - 'watchTogether.watchingWithOthers' => 'Assistindo com outros', - 'watchTogether.endSession' => 'Encerrar Sessão', - 'watchTogether.leaveSession' => 'Sair da Sessão', - 'watchTogether.endSessionQuestion' => 'Encerrar Sessão?', - 'watchTogether.leaveSessionQuestion' => 'Sair da Sessão?', + 'watchTogether.watchingWithOthers' => 'Assistindo com outras pessoas', + 'watchTogether.endSession' => 'Encerrar sessão', + 'watchTogether.leaveSession' => 'Sair da sessão', + 'watchTogether.endSessionQuestion' => 'Encerrar sessão?', + 'watchTogether.leaveSessionQuestion' => 'Sair da sessão?', 'watchTogether.endSessionConfirm' => 'Isso encerrará a sessão para todos os participantes.', 'watchTogether.leaveSessionConfirm' => 'Você será removido da sessão.', - 'watchTogether.endSessionConfirmOverlay' => 'Isso encerrará a sessão de visualização para todos os participantes.', - 'watchTogether.leaveSessionConfirmOverlay' => 'Você será desconectado da sessão de visualização.', + 'watchTogether.endSessionConfirmOverlay' => 'Isso encerrará a sessão do Assistir Juntos para todos os participantes.', + 'watchTogether.leaveSessionConfirmOverlay' => 'Você será desconectado da sessão do Assistir Juntos.', 'watchTogether.end' => 'Encerrar', 'watchTogether.leave' => 'Sair', 'watchTogether.syncing' => 'Sincronizando...', - 'watchTogether.joinWatchSession' => 'Entrar na Sessão', + 'watchTogether.joinWatchSession' => 'Entrar na sessão', 'watchTogether.enterCodeHint' => 'Insira o código de 5 caracteres', 'watchTogether.pasteFromClipboard' => 'Colar da área de transferência', 'watchTogether.pleaseEnterCode' => 'Insira um código de sessão', @@ -3163,23 +3171,23 @@ extension on TranslationsPt { 'watchTogether.failedToCreate' => 'Falha ao criar sessão', 'watchTogether.failedToJoin' => 'Falha ao entrar na sessão', 'watchTogether.sessionCodeCopied' => 'Código da sessão copiado para a área de transferência', - 'watchTogether.relayUnreachable' => 'Servidor relay inacessível. Bloqueio do ISP pode impedir Watch Together.', + 'watchTogether.relayUnreachable' => 'Servidor de retransmissão inacessível. O bloqueio pelo provedor de internet pode impedir o uso do Assistir Juntos.', 'watchTogether.reconnectingToHost' => 'Reconectando ao anfitrião...', - 'watchTogether.currentPlayback' => 'Reprodução Atual', - 'watchTogether.joinCurrentPlayback' => 'Entrar na Reprodução Atual', - 'watchTogether.joinCurrentPlaybackDescription' => 'Voltar ao que o anfitrião está assistindo agora', - 'watchTogether.failedToOpenCurrentPlayback' => 'Falha ao abrir reprodução atual', + 'watchTogether.currentPlayback' => 'Reprodução atual', + 'watchTogether.joinCurrentPlayback' => 'Entrar na reprodução atual', + 'watchTogether.joinCurrentPlaybackDescription' => 'Voltar ao conteúdo que o anfitrião está assistindo agora', + 'watchTogether.failedToOpenCurrentPlayback' => 'Falha ao abrir a reprodução atual', + _ => null, + } ?? switch (path) { 'watchTogether.participantJoined' => ({required Object name}) => '${name} entrou', 'watchTogether.participantLeft' => ({required Object name}) => '${name} saiu', 'watchTogether.participantPaused' => ({required Object name}) => '${name} pausou', 'watchTogether.participantResumed' => ({required Object name}) => '${name} retomou', - _ => null, - } ?? switch (path) { - 'watchTogether.participantSeeked' => ({required Object name}) => '${name} avançou', - 'watchTogether.participantBuffering' => ({required Object name}) => '${name} está carregando', - 'watchTogether.participantNeedsUpdate' => ({required Object name}) => '${name} está em uma versão mais antiga do aplicativo — sincronização indisponível', + 'watchTogether.participantSeeked' => ({required Object name}) => '${name} mudou a posição da reprodução', + 'watchTogether.participantBuffering' => ({required Object name}) => '${name} está aguardando o carregamento', + 'watchTogether.participantNeedsUpdate' => ({required Object name}) => '${name} está usando uma versão mais antiga do app — sincronização indisponível', 'watchTogether.resumingWithout' => ({required Object name}) => 'Retomando sem ${name}', - 'watchTogether.waitingForParticipants' => 'Aguardando outros carregarem...', + 'watchTogether.waitingForParticipants' => 'Aguardando o carregamento dos outros participantes...', 'watchTogether.waitingForName' => ({required Object name}) => 'Aguardando ${name}...', 'watchTogether.recentRooms' => 'Salas recentes', 'watchTogether.renameRoom' => 'Renomear sala', @@ -3193,13 +3201,13 @@ extension on TranslationsPt { 'downloads.music' => 'Música', 'downloads.tracksQueued' => ({required Object count}) => '${count} faixas na fila para download', 'downloads.noDownloads' => 'Nenhum download ainda', - 'downloads.noDownloadsDescription' => 'Conteúdo baixado aparecerá aqui para visualização offline', + 'downloads.noDownloadsDescription' => 'O conteúdo baixado aparecerá aqui para assistir offline', 'downloads.downloadNow' => 'Baixar', 'downloads.deleteDownload' => 'Excluir download', 'downloads.retryDownload' => 'Tentar download novamente', 'downloads.downloadQueued' => 'Download na fila', 'downloads.downloadResumed' => 'Download retomado', - 'downloads.serverErrorBitrate' => 'Erro do servidor: o arquivo pode exceder o limite remoto de bitrate', + 'downloads.serverErrorBitrate' => 'Erro do servidor: o arquivo pode exceder o limite remoto de taxa de bits', 'downloads.episodesQueued' => ({required Object count}) => '${count} episódios na fila de download', 'downloads.downloadDeleted' => 'Download excluído', 'downloads.deleteConfirm' => ({required Object title}) => 'Excluir "${title}" deste dispositivo?', @@ -3224,14 +3232,14 @@ extension on TranslationsPt { 'downloads.selectVersion' => 'Selecionar versão', 'downloads.allEpisodes' => 'Todos os episódios', 'downloads.unwatchedOnly' => 'Apenas não assistidos', - 'downloads.nextNUnwatched' => ({required Object count}) => 'Próximos ${count} não assistidos', + 'downloads.nextNUnwatched' => ({required Object count}) => 'Próximos ${count} episódios não assistidos', 'downloads.customAmount' => 'Quantidade personalizada...', 'downloads.includeSpecials' => 'Incluir especiais', 'downloads.howManyEpisodes' => 'Quantos episódios?', 'downloads.invalidEpisodeCount' => 'Insira uma quantidade válida de episódios.', 'downloads.keepSynced' => 'Manter sincronizado', 'downloads.downloadOnce' => 'Baixar uma vez', - 'downloads.keepNUnwatched' => ({required Object count}) => 'Manter ${count} não assistidos', + 'downloads.keepNUnwatched' => ({required Object count}) => 'Manter ${count} episódios não assistidos', 'downloads.editSyncRule' => 'Editar regra de sincronização', 'downloads.removeSyncRule' => 'Remover regra de sincronização', 'downloads.removeSyncRuleConfirm' => ({required Object title}) => 'Parar de sincronizar "${title}"? Os episódios baixados serão mantidos.', @@ -3245,17 +3253,17 @@ extension on TranslationsPt { 'downloads.editEpisodeCount' => 'Número de episódios', 'downloads.editSyncFilter' => 'Filtro de sincronização', 'downloads.syncAllItems' => 'Sincronizando todos os itens', - 'downloads.syncUnwatchedItems' => 'Sincronizando itens não vistos', + 'downloads.syncUnwatchedItems' => 'Sincronizando itens não assistidos', 'downloads.syncRuleServerContext' => ({required Object server, required Object status}) => 'Servidor: ${server} • ${status}', 'downloads.syncRuleAvailable' => 'Disponível', 'downloads.syncRuleOffline' => 'Offline', - 'downloads.syncRuleSignInRequired' => 'Início de sessão necessário', + 'downloads.syncRuleSignInRequired' => 'É necessário entrar', 'downloads.syncRuleNotAvailableForProfile' => 'Indisponível para o perfil atual', 'downloads.syncRuleUnknownServer' => 'Servidor desconhecido', 'downloads.syncRuleListCreated' => 'Regra de sincronização criada', 'shaders.title' => 'Shaders', 'shaders.noShaderDescription' => 'Sem aprimoramento de vídeo', - 'shaders.nvscalerDescription' => 'Escalonamento de imagem NVIDIA para vídeo mais nítido', + 'shaders.nvscalerDescription' => 'Dimensionamento de imagem da NVIDIA para vídeos mais nítidos', 'shaders.artcnnVariantNeutral' => 'Neutro', 'shaders.artcnnVariantDenoise' => 'Redução de ruído', 'shaders.artcnnVariantDenoiseSharpen' => 'Redução de ruído + nitidez', @@ -3268,39 +3276,39 @@ extension on TranslationsPt { 'shaders.shaderImportFailed' => 'Falha ao importar shader', 'shaders.deleteShader' => 'Excluir Shader', 'shaders.deleteShaderConfirm' => ({required Object name}) => 'Excluir "${name}"?', - 'companionRemote.title' => 'Controle Remoto', + 'companionRemote.title' => 'Controle remoto', 'companionRemote.connectedTo' => ({required Object name}) => 'Conectado a ${name}', 'companionRemote.unknownDevice' => 'Dispositivo desconhecido', - 'companionRemote.session.startingServer' => 'A iniciar servidor remoto...', + 'companionRemote.session.startingServer' => 'Iniciando servidor remoto...', 'companionRemote.session.hostAddress' => 'Endereço do host', 'companionRemote.session.connected' => 'Conectado', 'companionRemote.session.serverRunning' => 'Servidor remoto ativo', 'companionRemote.session.serverStopped' => 'Servidor remoto parado', 'companionRemote.session.serverRunningDescription' => 'Dispositivos móveis na sua rede podem se conectar a este app', 'companionRemote.session.serverStoppedDescription' => 'Inicie o servidor para permitir que dispositivos móveis se conectem', - 'companionRemote.session.usePhoneToControl' => 'Use o seu dispositivo móvel para controlar esta aplicação', + 'companionRemote.session.usePhoneToControl' => 'Use seu dispositivo móvel para controlar este app', 'companionRemote.session.startServer' => 'Iniciar servidor', 'companionRemote.session.stopServer' => 'Parar servidor', 'companionRemote.session.minimize' => 'Minimizar', 'companionRemote.pairing.discoveryDescription' => 'Dispositivos Plezy com a mesma conta Plex aparecem aqui', 'companionRemote.pairing.hostAddressHint' => '192.168.1.100:48632', - 'companionRemote.pairing.connecting' => 'A conectar...', - 'companionRemote.pairing.searchingForDevices' => 'A procurar dispositivos...', + 'companionRemote.pairing.connecting' => 'Conectando...', + 'companionRemote.pairing.searchingForDevices' => 'Procurando dispositivos...', 'companionRemote.pairing.noDevicesFound' => 'Nenhum dispositivo encontrado na sua rede', - 'companionRemote.pairing.noDevicesHint' => 'Abra Plezy no desktop e use o mesmo WiFi', + 'companionRemote.pairing.noDevicesHint' => 'Abra o Plezy no desktop e use a mesma rede Wi-Fi', 'companionRemote.pairing.availableDevices' => 'Dispositivos disponíveis', 'companionRemote.pairing.manualConnection' => 'Conexão manual', 'companionRemote.pairing.cryptoInitFailed' => 'Não foi possível iniciar a conexão segura. Entre no Plex primeiro.', - 'companionRemote.pairing.validationHostRequired' => 'Introduza o endereço do host', - 'companionRemote.pairing.validationHostFormat' => 'O formato deve ser IP:porta (ex. 192.168.1.100:48632)', - 'companionRemote.pairing.connectionTimedOut' => 'Conexão expirou. Use a mesma rede nos dois dispositivos.', - 'companionRemote.pairing.sessionNotFound' => 'Dispositivo não encontrado. Verifique se Plezy está rodando no host.', + 'companionRemote.pairing.validationHostRequired' => 'Insira o endereço do host', + 'companionRemote.pairing.validationHostFormat' => 'O formato deve ser IP:porta (ex.: 192.168.1.100:48632)', + 'companionRemote.pairing.connectionTimedOut' => 'A conexão atingiu o tempo limite. Use a mesma rede nos dois dispositivos.', + 'companionRemote.pairing.sessionNotFound' => 'Dispositivo não encontrado. Verifique se o Plezy está em execução no host.', 'companionRemote.pairing.authFailed' => 'Falha na autenticação. Ambos os dispositivos precisam da mesma conta Plex.', 'companionRemote.pairing.failedToConnect' => ({required Object error}) => 'Falha ao conectar: ${error}', 'companionRemote.remote.disconnectConfirm' => 'Deseja desconectar da sessão remota?', 'companionRemote.remote.reconnecting' => 'Reconectando...', 'companionRemote.remote.attemptOf' => ({required Object current}) => 'Tentativa ${current} de 5', - 'companionRemote.remote.retryNow' => 'Tentar Agora', + 'companionRemote.remote.retryNow' => 'Tentar agora', 'companionRemote.remote.tabRemote' => 'Remoto', 'companionRemote.remote.tabPlay' => 'Reproduzir', 'companionRemote.remote.tabMore' => 'Mais', @@ -3320,7 +3328,7 @@ extension on TranslationsPt { 'companionRemote.remote.volume' => 'Volume', 'companionRemote.remote.volumeDown' => 'Diminuir', 'companionRemote.remote.volumeUp' => 'Aumentar', - 'companionRemote.remote.fullscreen' => 'Tela Cheia', + 'companionRemote.remote.fullscreen' => 'Tela cheia', 'companionRemote.remote.subtitles' => 'Legendas', 'companionRemote.remote.audio' => 'Áudio', 'companionRemote.remote.searchHint' => 'Buscar no desktop...', @@ -3336,15 +3344,15 @@ extension on TranslationsPt { 'videoSettings.normalSpeed' => 'Normal', 'videoSettings.sleepTimerActive' => ({required Object duration}) => 'Ativo (${duration})', 'videoSettings.zoom' => 'Zoom', - 'videoSettings.sleepTimer' => 'Timer de Sono', - 'videoSettings.audioSync' => 'Sincronia de Áudio', - 'videoSettings.subtitleSync' => 'Sincronia de Legendas', + 'videoSettings.sleepTimer' => 'Temporizador de suspensão', + 'videoSettings.audioSync' => 'Sincronia de áudio', + 'videoSettings.subtitleSync' => 'Sincronia de legendas', 'videoSettings.hdr' => 'HDR', - 'videoSettings.audioOutput' => 'Saída de Áudio', - 'videoSettings.performanceOverlay' => 'Overlay de Desempenho', - 'videoSettings.audioPassthrough' => 'Passagem de Áudio', - 'videoSettings.audioNormalization' => 'Normalizar Volume', - 'videoSettings.audioDownmix' => 'Downmix para Estéreo', + 'videoSettings.audioOutput' => 'Saída de áudio', + 'videoSettings.performanceOverlay' => 'Painel de desempenho', + 'videoSettings.audioPassthrough' => 'Passagem direta de áudio', + 'videoSettings.audioNormalization' => 'Normalizar intensidade sonora', + 'videoSettings.audioDownmix' => 'Conversão para estéreo', 'performanceOverlay.color' => 'Cor', 'performanceOverlay.performance' => 'Desempenho', 'performanceOverlay.buffer' => 'Buffer', @@ -3363,9 +3371,9 @@ extension on TranslationsPt { 'performanceOverlay.matrix' => 'Matriz', 'performanceOverlay.primaries' => 'Primárias', 'performanceOverlay.transfer' => 'Transferência', - 'performanceOverlay.renderFps' => 'FPS render', - 'performanceOverlay.displayFps' => 'FPS tela', - 'performanceOverlay.avSync' => 'Sync A/V', + 'performanceOverlay.renderFps' => 'FPS de renderização', + 'performanceOverlay.displayFps' => 'FPS da tela', + 'performanceOverlay.avSync' => 'Sincronia A/V', 'performanceOverlay.dropped' => 'Descartados', 'performanceOverlay.dvRpus' => 'DV RPUs', 'performanceOverlay.dvRpuAverage' => 'Média DV RPU', @@ -3377,25 +3385,25 @@ extension on TranslationsPt { 'performanceOverlay.cacheUsed' => 'Cache usado', 'performanceOverlay.cacheLimit' => 'Limite do cache', 'performanceOverlay.speed' => 'Velocidade', - 'performanceOverlay.player' => 'Player', + 'performanceOverlay.player' => 'Reprodutor', 'performanceOverlay.memory' => 'Memória', 'performanceOverlay.uiFps' => 'UI FPS', - 'externalPlayer.title' => 'Player Externo', - 'externalPlayer.useExternalPlayer' => 'Usar Player Externo', + 'externalPlayer.title' => 'Reprodutor externo', + 'externalPlayer.useExternalPlayer' => 'Usar reprodutor externo', 'externalPlayer.useExternalPlayerDescription' => 'Abrir vídeos em outro app', - 'externalPlayer.selectPlayer' => 'Selecionar Player', - 'externalPlayer.customPlayers' => 'Players Personalizados', - 'externalPlayer.systemDefault' => 'Padrão do Sistema', - 'externalPlayer.addCustomPlayer' => 'Adicionar Player Personalizado', - 'externalPlayer.playerName' => 'Nome do Player', - 'externalPlayer.playerNameHint' => 'Meu player', + 'externalPlayer.selectPlayer' => 'Selecionar reprodutor', + 'externalPlayer.customPlayers' => 'Reprodutores personalizados', + 'externalPlayer.systemDefault' => 'Padrão do sistema', + 'externalPlayer.addCustomPlayer' => 'Adicionar reprodutor personalizado', + 'externalPlayer.playerName' => 'Nome do reprodutor', + 'externalPlayer.playerNameHint' => 'Meu reprodutor', 'externalPlayer.playerCommand' => 'Comando', - 'externalPlayer.playerPackage' => 'Nome do Pacote', + 'externalPlayer.playerPackage' => 'Nome do pacote', 'externalPlayer.playerUrlScheme' => 'Esquema de URL', 'externalPlayer.off' => 'Desativado', - 'externalPlayer.launchFailed' => 'Falha ao abrir player externo', + 'externalPlayer.launchFailed' => 'Falha ao abrir o reprodutor externo', 'externalPlayer.appNotInstalled' => ({required Object name}) => '${name} não está instalado', - 'externalPlayer.playInExternalPlayer' => 'Reproduzir no Player Externo', + 'externalPlayer.playInExternalPlayer' => 'Reproduzir no reprodutor externo', 'metadataEdit.editMetadata' => 'Editar...', 'metadataEdit.screenTitle' => 'Editar Metadados', 'metadataEdit.basicInfo' => 'Informações Básicas', @@ -3407,13 +3415,13 @@ extension on TranslationsPt { 'metadataEdit.releaseDate' => 'Data de Lançamento', 'metadataEdit.contentRating' => 'Classificação Indicativa', 'metadataEdit.studio' => 'Estúdio', - 'metadataEdit.tagline' => 'Tagline', + 'metadataEdit.tagline' => 'Slogan', 'metadataEdit.summary' => 'Sinopse', - 'metadataEdit.poster' => 'Poster', + 'metadataEdit.poster' => 'Pôster', 'metadataEdit.background' => 'Plano de Fundo', 'metadataEdit.logo' => 'Logo', 'metadataEdit.squareArt' => 'Imagem Quadrada', - 'metadataEdit.selectPoster' => 'Selecionar Poster', + 'metadataEdit.selectPoster' => 'Selecionar pôster', 'metadataEdit.selectBackground' => 'Selecionar Plano de Fundo', 'metadataEdit.selectLogo' => 'Selecionar Logo', 'metadataEdit.selectSquareArt' => 'Selecionar Imagem Quadrada', @@ -3490,14 +3498,14 @@ extension on TranslationsPt { 'trakt.title' => 'Trakt', 'trakt.connected' => 'Conectado', 'trakt.connectedAs' => ({required Object username}) => 'Conectado como @${username}', - 'trakt.disconnectConfirm' => 'Desconectar conta do Trakt?', - 'trakt.disconnectConfirmBody' => 'Plezy deixará de enviar eventos ao Trakt. Você pode reconectar quando quiser.', + 'trakt.disconnectConfirm' => 'Desconectar a conta do Trakt?', + 'trakt.disconnectConfirmBody' => 'O Plezy deixará de enviar eventos ao Trakt. Você pode reconectar quando quiser.', 'trakt.scrobble' => 'Scrobbling em tempo real', 'trakt.scrobbleDescription' => 'Envia eventos de reprodução, pausa e parada ao Trakt durante a exibição.', 'trakt.watchedSync' => 'Sincronizar status de assistido', 'trakt.watchedSyncDescription' => 'Ao marcar itens como assistidos no Plezy, eles também serão marcados no Trakt.', 'seerr.title' => 'Seerr', - 'seerr.connectTitle' => 'Conectar Seerr', + 'seerr.connectTitle' => 'Conectar ao Seerr', 'seerr.serverUrl' => 'URL do servidor', 'seerr.serverUrlHelper' => 'O endereço da sua instância do Seerr', 'seerr.checkServer' => 'Continuar', @@ -3505,7 +3513,7 @@ extension on TranslationsPt { 'seerr.signInWithEmby' => 'Entrar com Emby', 'seerr.signInWithLocal' => 'Usar uma conta local', 'seerr.email' => 'E-mail', - 'seerr.noSignInMethods' => 'Esta instância do Seerr não oferece nenhum método de login compatível com o Plezy.', + 'seerr.noSignInMethods' => 'Esta instância do Seerr não oferece nenhum método de acesso compatível com o Plezy.', 'seerr.instance' => 'Instância', 'seerr.disconnectConfirm' => 'Desconectar Seerr?', 'seerr.disconnectConfirmBody' => 'O Plezy esquecerá esta instância do Seerr. Reconecte quando quiser.', @@ -3533,40 +3541,40 @@ extension on TranslationsPt { 'services.scrobble' => 'Registrar progresso automaticamente', 'services.scrobbleDescription' => 'Atualiza sua lista quando você termina um episódio ou filme.', 'services.disconnectConfirm' => ({required Object service}) => 'Desconectar ${service}?', - 'services.disconnectConfirmBody' => ({required Object service}) => 'Plezy deixará de atualizar ${service}. Reconecte quando quiser.', + 'services.disconnectConfirmBody' => ({required Object service}) => 'O Plezy deixará de atualizar ${service}. Reconecte quando quiser.', 'services.connectFailed' => ({required Object service}) => 'Não foi possível conectar ao ${service}. Tente novamente.', 'services.names.mal' => 'MyAnimeList', 'services.names.anilist' => 'AniList', 'services.names.simkl' => 'Simkl', 'services.names.seerr' => 'Seerr', - 'services.deviceCode.title' => ({required Object service}) => 'Ativar Plezy no ${service}', + 'services.deviceCode.title' => ({required Object service}) => 'Ativar o Plezy no ${service}', 'services.deviceCode.body' => ({required Object url}) => 'Acesse ${url} e insira este código:', 'services.deviceCode.openToActivate' => ({required Object service}) => 'Abrir ${service} para ativar', 'services.deviceCode.copyCode' => 'Copiar código de ativação', 'services.deviceCode.waitingForAuthorization' => 'Aguardando autorização…', 'services.deviceCode.codeCopied' => 'Código copiado', 'services.oauthProxy.title' => ({required Object service}) => 'Entrar no ${service}', - 'services.oauthProxy.body' => 'Escaneie este código QR ou abra a URL em qualquer dispositivo.', + 'services.oauthProxy.body' => 'Leia este código QR ou abra a URL em qualquer dispositivo.', 'services.oauthProxy.openToSignIn' => ({required Object service}) => 'Abrir ${service} para entrar', - 'services.oauthProxy.copyUrl' => 'Copiar URL de login', - 'services.oauthProxy.urlCopied' => 'URL copiado', + 'services.oauthProxy.copyUrl' => 'Copiar URL de acesso', + 'services.oauthProxy.urlCopied' => 'URL copiada', 'services.libraryFilter.title' => 'Filtro de bibliotecas', 'services.libraryFilter.subtitleAllSyncing' => 'Sincronizando todas as bibliotecas', 'services.libraryFilter.subtitleNoneSyncing' => 'Nada a sincronizar', 'services.libraryFilter.subtitleBlocked' => ({required Object count}) => '${count} bloqueadas', 'services.libraryFilter.subtitleAllowed' => ({required Object count}) => '${count} permitidas', 'services.libraryFilter.mode' => 'Modo de filtro', - 'services.libraryFilter.modeBlacklist' => 'Lista negra', - 'services.libraryFilter.modeWhitelist' => 'Lista branca', - 'services.libraryFilter.modeHintBlacklist' => 'Sincronizar todas as bibliotecas exceto as marcadas abaixo.', + 'services.libraryFilter.modeBlacklist' => 'Lista de bloqueio', + 'services.libraryFilter.modeWhitelist' => 'Lista de permissões', + 'services.libraryFilter.modeHintBlacklist' => 'Sincronizar todas as bibliotecas, exceto as marcadas abaixo.', 'services.libraryFilter.modeHintWhitelist' => 'Sincronizar apenas as bibliotecas marcadas abaixo.', 'services.libraryFilter.libraries' => 'Bibliotecas', 'services.libraryFilter.noLibraries' => 'Nenhuma biblioteca disponível', 'addServer.addJellyfinTitle' => 'Adicionar servidor Jellyfin', 'addServer.serverUrls' => 'URLs do servidor', - 'addServer.serverUrlsHelper' => 'Vários URLs permitidos, separados por vírgulas.', + 'addServer.serverUrlsHelper' => 'Várias URLs são permitidas, separadas por vírgulas.', 'addServer.findServer' => 'Encontrar servidor', - 'addServer.searchingLocalServers' => 'A procurar servidores Jellyfin locais...', + 'addServer.searchingLocalServers' => 'Procurando servidores Jellyfin locais...', 'addServer.localServers' => 'Servidores Jellyfin locais', 'addServer.username' => 'Usuário', 'addServer.password' => 'Senha', @@ -3577,17 +3585,17 @@ extension on TranslationsPt { 'addServer.signInFailed' => ({required Object error}) => 'Falha ao entrar: ${error}', 'addServer.quickConnectFailed' => ({required Object error}) => 'Quick Connect falhou: ${error}', 'addServer.addPlexTitle' => 'Entrar com Plex', - 'addServer.pinExpired' => 'O PIN expirou antes do login. Tente novamente.', + 'addServer.pinExpired' => 'O PIN expirou antes de entrar. Tente novamente.', 'addServer.failedToRegisterAccount' => ({required Object error}) => 'Falha ao registrar a conta: ${error}', 'addServer.enterJellyfinUrlError' => 'Insira a URL do seu servidor Jellyfin', 'addServer.addConnectionTitle' => 'Adicionar conexão', 'addServer.addConnectionTitleScoped' => ({required Object name}) => 'Adicionar a ${name}', 'addServer.signInWithPlexCard' => 'Entrar com Plex', 'addServer.signInWithPlexCardSubtitle' => 'Autorize este dispositivo. Servidores compartilhados são adicionados.', - 'addServer.signInWithPlexCardSubtitleScoped' => 'Autorize uma conta Plex. Usuários Home viram perfis.', + 'addServer.signInWithPlexCardSubtitleScoped' => 'Autorize uma conta Plex. Os usuários do Plex Home se tornam perfis.', 'addServer.connectToJellyfinCard' => 'Conectar ao Jellyfin', 'addServer.connectToJellyfinCardSubtitle' => 'Insira URL do servidor, usuário e senha.', - 'addServer.connectToJellyfinCardSubtitleScoped' => ({required Object name}) => 'Entre em um servidor Jellyfin. Vinculado a ${name}.', + 'addServer.connectToJellyfinCardSubtitleScoped' => ({required Object name}) => 'Entre em um servidor Jellyfin. A conexão será vinculada a ${name}.', 'addServer.borrowFromAnotherProfile' => 'Pegar emprestado de outro perfil', 'addServer.borrowFromAnotherProfileSubtitle' => 'Reutilize a conexão de outro perfil. Perfis protegidos por PIN exigem PIN.', _ => null, diff --git a/lib/i18n/strings_ru.g.dart b/lib/i18n/strings_ru.g.dart index 6e29e6c0..8672b065 100644 --- a/lib/i18n/strings_ru.g.dart +++ b/lib/i18n/strings_ru.g.dart @@ -109,10 +109,10 @@ class _Translations$auth$ru extends Translations$auth$en { // Translations @override String get signInWithPlex => 'Войти через Plex'; @override String get showQRCode => 'Показать QR-код'; - @override String get authenticate => 'Аутентификация'; + @override String get authenticate => 'Войти'; @override String get authenticationTimeout => 'Время аутентификации истекло. Попробуйте снова.'; @override String get scanQRToSignIn => 'Отсканируйте QR-код для входа'; - @override String get waitingForAuth => 'Ожидание аутентификации...\nВойдите в браузере.'; + @override String get waitingForAuth => 'Ожидание аутентификации...\nВыполните вход в браузере.'; @override String get useBrowser => 'Использовать браузер'; @override String get or => 'или'; @override String get connectToJellyfin => 'Подключиться к Jellyfin'; @@ -120,8 +120,8 @@ class _Translations$auth$ru extends Translations$auth$en { @override String get quickConnectInstructions => 'Откройте Quick Connect в Jellyfin и введите этот код.'; @override String get quickConnectWaiting => 'Ожидание подтверждения…'; @override String get quickConnectCancel => 'Отмена'; - @override String get quickConnectExpired => 'Срок Quick Connect истек. Попробуйте снова.'; - @override String get localDataRecoveryRequired => 'Plezy could not safely recover local sign-in and pending playback data. Please sign in again.'; + @override String get quickConnectExpired => 'Срок действия Quick Connect истёк. Попробуйте снова.'; + @override String get localDataRecoveryRequired => 'Plezy не удалось безопасно восстановить данные локального входа и несинхронизированные данные о воспроизведении. Войдите снова.'; } // Path: common @@ -241,6 +241,8 @@ class _Translations$settings$ru extends Translations$settings$en { @override String get libraryDensity => 'Плотность библиотеки'; @override String get compact => 'Компактный'; @override String get comfortable => 'Комфортный'; + @override String get tvCornerSpotlightBackdrop => 'Фоновое изображение в углу'; + @override String get tvCornerSpotlightBackdropDescription => 'Показывать изображение избранного материала в правом верхнем углу, а не на весь экран'; @override String get viewMode => 'Режим просмотра'; @override String get gridView => 'Сетка'; @override String get listView => 'Список'; @@ -265,8 +267,8 @@ class _Translations$settings$ru extends Translations$settings$en { @override String get showEpisodeNumberOnCardsDescription => 'Показывать номер сезона и серии на карточках серий'; @override String get showSeasonPostersOnTabs => 'Показывать постеры сезонов на вкладках'; @override String get showSeasonPostersOnTabsDescription => 'Показывать постер каждого сезона над его вкладкой'; - @override String get tvFullCardLayout => 'Полные TV-карточки'; - @override String get tvFullCardLayoutDescription => 'Использовать TV-карточки только с изображением и именами актёров поверх него'; + @override String get tvFullCardLayout => 'Полноформатные ТВ-карточки'; + @override String get tvFullCardLayoutDescription => 'Использовать ТВ-карточки только с изображением и наложенными именами актёров'; @override String get focusGlow => 'Свечение при фокусе'; @override String get focusGlowDescription => 'Показывать мягкое свечение вокруг карточки в фокусе'; @override String get visualEffects => 'Визуальные эффекты'; @@ -285,7 +287,7 @@ class _Translations$settings$ru extends Translations$settings$en { @override String get bufferSize => 'Размер буфера'; @override String bufferSizeMB({required Object size}) => '${size}МБ'; @override String get bufferSizeAuto => 'Авто (Рекомендуется)'; - @override String bufferSizeWarning({required Object heap, required Object size}) => 'Доступно памяти: ${heap}MB. Буфер ${size}MB может повлиять на воспроизведение.'; + @override String bufferSizeWarning({required Object heap, required Object size}) => 'Доступно памяти: ${heap} МБ. Буфер размером ${size} МБ может повлиять на воспроизведение.'; @override String get defaultQualityTitle => 'Качество по умолчанию'; @override String get musicQualityTitle => 'Качество музыки'; @override String get subtitleStyling => 'Стиль субтитров'; @@ -293,24 +295,24 @@ class _Translations$settings$ru extends Translations$settings$en { @override String get smallSkipDuration => 'Малая перемотка'; @override String get largeSkipDuration => 'Большая перемотка'; @override String get rewindOnResume => 'Перемотка при возобновлении'; - @override String secondsUnit({required Object seconds}) => '${seconds} секунд'; + @override String secondsUnit({required Object seconds}) => '${seconds} с'; @override String get defaultSleepTimer => 'Таймер сна по умолчанию'; - @override String minutesUnit({required Object minutes}) => '${minutes} минут'; + @override String minutesUnit({required Object minutes}) => '${minutes} мин'; @override String get rememberTrackSelections => 'Запоминать выбор дорожек для каждого сериала/фильма'; - @override String get rememberTrackSelectionsDescription => 'Запоминать выбор аудио и субтитров для тайтла'; + @override String get rememberTrackSelectionsDescription => 'Запоминать выбор аудиодорожки и субтитров для каждого материала'; @override String get showChapterMarkersOnTimeline => 'Показывать маркеры глав на шкале перемотки'; @override String get showChapterMarkersOnTimelineDescription => 'Разделять шкалу перемотки по границам глав'; - @override String get clickVideoTogglesPlayback => 'Клик по видео для переключения воспроизведения/паузы'; - @override String get clickVideoTogglesPlaybackDescription => 'Клик по видео запускает/ставит на паузу вместо показа управления.'; + @override String get clickVideoTogglesPlayback => 'Нажатие на видео запускает или приостанавливает воспроизведение'; + @override String get clickVideoTogglesPlaybackDescription => 'Нажатие на видео запускает или приостанавливает воспроизведение вместо показа элементов управления.'; @override String get videoPlayerControls => 'Элементы управления плеером'; @override String get keyboardShortcuts => 'Горячие клавиши'; @override String get keyboardShortcutsDescription => 'Настроить горячие клавиши'; @override String get videoPlayerNavigation => 'Навигация видеоплеера'; @override String get videoPlayerNavigationDescription => 'Использовать клавиши стрелок для навигации по элементам управления плеером'; - @override String get watchTogetherRelay => 'Relay совместного просмотра'; - @override String get watchTogetherRelayDescription => 'Задайте свой relay. Все должны использовать один сервер.'; + @override String get watchTogetherRelay => 'Сервер ретрансляции для совместного просмотра'; + @override String get watchTogetherRelayDescription => 'Задайте свой сервер ретрансляции. Все участники должны использовать один сервер.'; @override String get watchTogetherRelayHint => 'https://my-relay.example.com'; - @override String get watchTogetherRelayInvalid => 'Enter a valid HTTP or HTTPS relay base URL.'; + @override String get watchTogetherRelayInvalid => 'Введите допустимый базовый HTTP- или HTTPS-адрес сервера ретрансляции.'; @override String get crashReporting => 'Отчёты об ошибках'; @override String get crashReportingDescription => 'Отправлять отчёты об ошибках для улучшения приложения'; @override String get debugLogging => 'Журнал отладки'; @@ -343,16 +345,16 @@ class _Translations$settings$ru extends Translations$settings$en { @override String get autoCheckUpdatesOnStartupDescription => 'Уведомлять о доступном обновлении при запуске'; @override String get validationErrorEnterNumber => 'Введите корректное число'; @override String validationErrorDuration({required Object min, required Object max, required Object unit}) => 'Длительность должна быть от ${min} до ${max} ${unit}'; - @override String shortcutAlreadyAssigned({required Object action}) => 'Клавиша уже назначена для ${action}'; - @override String shortcutUpdated({required Object action}) => 'Клавиша обновлена для ${action}'; - @override String get saveFailed => 'Could not save changes. Try again.'; + @override String shortcutAlreadyAssigned({required Object action}) => 'Сочетание клавиш уже назначено действию «${action}»'; + @override String shortcutUpdated({required Object action}) => 'Сочетание клавиш для действия «${action}» обновлено'; + @override String get saveFailed => 'Не удалось сохранить изменения. Попробуйте снова.'; @override String get autoSkip => 'Автопропуск'; @override String get autoSkipIntro => 'Автопропуск вступления'; @override String get autoSkipIntroDescription => 'Автоматически пропускать маркеры вступления через несколько секунд'; @override String get autoSkipCredits => 'Автопропуск титров'; @override String get autoSkipCreditsDescription => 'Автоматически пропускать титры и воспроизводить следующий эпизод'; - @override String get forceSkipMarkerFallback => 'Принудительные резервные маркеры'; - @override String get forceSkipMarkerFallbackDescription => 'Использовать шаблоны названий глав, даже если в Plex есть маркеры'; + @override String get forceSkipMarkerFallback => 'Всегда использовать резервные маркеры'; + @override String get forceSkipMarkerFallbackDescription => 'Использовать шаблоны названий глав, даже если в Plex есть собственные маркеры'; @override String get autoSkipDelay => 'Задержка автопропуска'; @override String autoSkipDelayDescription({required Object seconds}) => 'Подождать ${seconds} секунд перед автопропуском'; @override String get introPattern => 'Шаблон маркера вступления'; @@ -372,11 +374,11 @@ class _Translations$settings$ru extends Translations$settings$en { @override String get downloadLocationReset => 'Место загрузки сброшено по умолчанию'; @override String get downloadLocationInvalid => 'Выбранная папка недоступна для записи'; @override String get downloadLocationPickerUnavailable => 'Выбор папки недоступен на этом устройстве'; - @override String get downloadOnWifiOnly => 'Загружать только по WiFi'; + @override String get downloadOnWifiOnly => 'Загружать только по Wi-Fi'; @override String get downloadOnWifiOnlyDescription => 'Запретить загрузку по мобильным данным'; @override String get autoRemoveWatchedDownloads => 'Автоудаление просмотренных загрузок'; @override String get autoRemoveWatchedDownloadsDescription => 'Автоматически удалять просмотренные загрузки'; - @override String get cellularDownloadBlocked => 'Загрузки через мобильную сеть заблокированы. Используйте WiFi или измените настройку.'; + @override String get cellularDownloadBlocked => 'Загрузки через мобильную сеть заблокированы. Используйте Wi-Fi или измените настройку.'; @override String get maxVolume => 'Максимальная громкость'; @override String get maxVolumeDescription => 'Разрешить усиление громкости выше 100% для тихих медиа'; @override String maxVolumePercent({required Object percent}) => '${percent}%'; @@ -387,8 +389,8 @@ class _Translations$settings$ru extends Translations$settings$en { @override String get manageLibrariesDescription => 'Изменять порядок и скрывать библиотеки'; @override String get companionRemoteServer => 'Сервер удалённого управления'; @override String get companionRemoteServerDescription => 'Разрешить мобильным устройствам в сети управлять этим приложением'; - @override String get autoPip => 'Автоматический «картинка в картинке»'; - @override String get autoPipDescription => 'Включать картинку-в-картинке при выходе во время воспроизведения'; + @override String get autoPip => 'Автоматический режим «картинка в картинке»'; + @override String get autoPipDescription => 'Автоматически включать режим «картинка в картинке» при выходе из приложения во время воспроизведения'; @override String get matchContentFrameRate => 'Соответствие частоты кадров контента'; @override String get matchContentFrameRateDescription => 'Подстраивать частоту обновления экрана под видео'; @override String get matchRefreshRate => 'Соответствие частоты обновления'; @@ -397,10 +399,10 @@ class _Translations$settings$ru extends Translations$settings$en { @override String get matchDynamicRangeDescription => 'Включать HDR для HDR-контента, затем возвращаться к SDR'; @override String get displaySwitchDelay => 'Задержка переключения дисплея'; @override String get tunneledPlayback => 'Туннельное воспроизведение'; - @override String get tunneledPlaybackDescription => 'Использовать видеотуннелирование. Отключите, если HDR показывает черный экран.'; + @override String get tunneledPlaybackDescription => 'Использовать видеотуннелирование. Отключите, если при воспроизведении HDR отображается чёрный экран.'; @override String get audioPassthrough => 'Сквозной вывод аудио'; @override String get audioPassthroughDescription => 'Передавать звук Dolby/DTS на ресивер или телевизор без перекодирования, сохраняя объёмный звук. Отключите, если нет звука.'; - @override String get audioPassthroughDescriptionAppleTv => 'Передаёт Dolby Digital Plus (включая Atmos) системе в виде битового потока. DTS и TrueHD по-прежнему воспроизводятся как многоканальный PCM. При перемотке возможны короткие пропадания звука.'; + @override String get audioPassthroughDescriptionAppleTv => 'Использовать встроенный декодер Dolby от Apple для Dolby Digital Plus, включая Atmos. DTS и TrueHD по-прежнему воспроизводятся как многоканальный PCM. Отключите, если звук отсутствует.'; @override String get audioDownmix => 'Микширование в стерео'; @override String get audioDownmixDescription => 'Микширует объёмный звук в два канала для стереодинамиков или наушников'; @override String get downmixCenterBoost => 'Усиление центрального канала'; @@ -510,7 +512,7 @@ class _Translations$fileInfo$ru extends Translations$fileInfo$en { @override String get bitDepth => 'Глубина цвета'; @override String get colorSpace => 'Цветовое пространство'; @override String get colorRange => 'Цветовой диапазон'; - @override String get colorPrimaries => 'Цветовые первичные'; + @override String get colorPrimaries => 'Основные цвета'; @override String get chromaSubsampling => 'Субдискретизация цветности'; @override String get channels => 'Каналы'; @override String get subtitles => 'Субтитры'; @@ -519,7 +521,7 @@ class _Translations$fileInfo$ru extends Translations$fileInfo$en { @override String get size => 'Размер'; @override String get container => 'Контейнер'; @override String get duration => 'Длительность'; - @override String get optimizedForStreaming => 'Оптимизировано для стриминга'; + @override String get optimizedForStreaming => 'Оптимизировано для потоковой передачи'; @override String get has64bitOffsets => '64-битные смещения'; } @@ -561,7 +563,7 @@ class _Translations$rateSheet$ru extends Translations$rateSheet$en { @override String get favorited => 'Добавлено в избранное'; @override String get saved => 'Сохранено'; @override String get notAvailable => 'Совпадений не найдено'; - @override String get noConnectedServices => 'Подключите сервис в настройках, чтобы оценивать здесь.'; + @override String get noConnectedServices => 'Подключите сервис в настройках, чтобы выставлять оценки в нём.'; } // Path: accessibility @@ -633,7 +635,7 @@ class _Translations$videoControls$ru extends Translations$videoControls$en { @override String playsLater({required Object label}) => '${label} воспроизводится позже'; @override String playsEarlier({required Object label}) => '${label} воспроизводится раньше'; @override String get noOffset => 'Без смещения'; - @override String get letterbox => 'Letterbox'; + @override String get letterbox => 'Вписать в экран'; @override String get fillScreen => 'Заполнить экран'; @override String get stretch => 'Растянуть'; @override String get lockRotation => 'Заблокировать поворот'; @@ -651,8 +653,10 @@ class _Translations$videoControls$ru extends Translations$videoControls$en { @override String get playNext => 'Следующее'; @override String get playButton => 'Воспроизвести'; @override String get pauseButton => 'Пауза'; - @override String seekBackwardButton({required Object seconds}) => 'Перемотка назад на ${seconds} секунд'; - @override String seekForwardButton({required Object seconds}) => 'Перемотка вперёд на ${seconds} секунд'; + @override String get showPlaybackControls => 'Показать элементы управления воспроизведением'; + @override String get hidePlaybackControls => 'Скрыть элементы управления воспроизведением'; + @override String seekBackwardButton({required Object seconds}) => 'Перемотать назад на ${seconds} с'; + @override String seekForwardButton({required Object seconds}) => 'Перемотать вперёд на ${seconds} с'; @override String get previousButton => 'Предыдущий эпизод'; @override String get nextButton => 'Следующий эпизод'; @override String get previousChapterButton => 'Предыдущая глава'; @@ -666,7 +670,7 @@ class _Translations$videoControls$ru extends Translations$videoControls$en { @override String get versionColumnHeader => 'Версия'; @override String get qualityColumnHeader => 'Качество'; @override String get qualityOriginal => 'Оригинал'; - @override String qualityPresetLabel({required Object resolution, required Object bitrate}) => '${resolution}p ${bitrate} Mbps'; + @override String qualityPresetLabel({required Object resolution, required Object bitrate}) => '${resolution}p ${bitrate} Мбит/с'; @override String get transcodeUnavailableFallback => 'Транскодирование недоступно — воспроизведение в оригинальном качестве'; @override String get subtitleUnavailableFallback => 'Не удалось загрузить выбранные субтитры — воспроизведение продолжится без субтитров'; @override String get pipButton => 'Режим «картинка в картинке»'; @@ -726,11 +730,11 @@ class _Translations$messages$ru extends Translations$messages$en { @override String get streamInterrupted => 'Поток прервался. Нажмите «Воспроизвести» или перемотайте, чтобы повторить попытку.'; @override String get liveStreamInterrupted => 'Прямая трансляция прервалась. Нажмите «Воспроизвести», чтобы повторить попытку.'; @override String get fileInfoNotAvailable => 'Информация о файле недоступна'; - @override String get playbackAuthenticationRequired => 'Sign in to the media server again to play this item.'; - @override String get playbackServerUnavailable => 'The media server is unavailable. Try again later.'; - @override String get playbackDataInvalid => 'The server returned invalid playback information.'; - @override String get playbackCancelled => 'Playback was cancelled.'; - @override String get playbackFailed => 'Playback could not be started.'; + @override String get playbackAuthenticationRequired => 'Чтобы воспроизвести этот материал, снова войдите на медиасервер.'; + @override String get playbackServerUnavailable => 'Медиасервер недоступен. Попробуйте позже.'; + @override String get playbackDataInvalid => 'Сервер вернул некорректные сведения для воспроизведения.'; + @override String get playbackCancelled => 'Воспроизведение отменено.'; + @override String get playbackFailed => 'Не удалось начать воспроизведение.'; @override String errorLoadingFileInfo({required Object error}) => 'Ошибка загрузки информации о файле: ${error}'; @override String get errorLoadingSeries => 'Ошибка загрузки сериала'; @override String get musicNotSupported => 'Воспроизведение музыки пока не поддерживается'; @@ -784,7 +788,7 @@ class _Translations$subtitlingStyling$ru extends Translations$subtitlingStyling$ @override String get backgroundColor => 'Цвет фона'; @override String get position => 'Позиция'; @override String get assOverride => 'Переопределение ASS'; - @override String get overrideScale => 'Масштабировать'; + @override String get overrideScale => 'Масштаб'; @override String get overrideForce => 'Принудительно'; @override String get overrideStrip => 'Удалить стили'; @override String get positionTop => 'Сверху'; @@ -849,7 +853,7 @@ class _Translations$profiles$ru extends Translations$profiles$en { @override String get signedOutPlex => 'Вы вышли из Plex.'; @override String get signOutFailed => 'Не удалось выйти.'; @override String get sectionTitle => 'Профили'; - @override String get summarySingle => 'Добавьте профили, чтобы смешать управляемых пользователей и локальные идентификаторы'; + @override String get summarySingle => 'Добавляйте профили, чтобы сочетать управляемых пользователей и локальные профили'; @override String summaryMultipleWithActive({required Object count, required Object activeName}) => '${count} профилей · активный: ${activeName}'; @override String summaryMultiple({required Object count}) => '${count} профилей'; @override String get removeConnectionTitle => 'Удалить соединение?'; @@ -878,16 +882,16 @@ class _Translations$profiles$ru extends Translations$profiles$en { @override String get removeConnection => 'Удалить'; @override String get profileRenamed => 'Профиль переименован.'; @override String borrowAddTo({required Object displayName}) => 'Добавить в ${displayName}'; - @override String get borrowExplain => 'Заимствуйте подключение другого профиля. Для профилей с PIN нужен PIN.'; - @override String get borrowEmpty => 'Пока нечего заимствовать.'; + @override String get borrowExplain => 'Используйте подключение другого профиля. Для защищённых профилей потребуется PIN.'; + @override String get borrowEmpty => 'Пока нет доступных подключений.'; @override String get borrowEmptySubtitle => 'Сначала подключите Plex или Jellyfin к другому профилю.'; - @override String get borrowLoadFailed => 'Available connections could not be loaded. Try again.'; - @override String borrowFromProfile({required Object displayName}) => 'Из ${displayName}'; - @override String get borrowConnectionBorrowed => 'Подключение заимствовано.'; - @override String get borrowFailed => 'Не удалось заимствовать подключение.'; + @override String get borrowLoadFailed => 'Не удалось загрузить доступные подключения. Попробуйте снова.'; + @override String borrowFromProfile({required Object displayName}) => 'От ${displayName}'; + @override String get borrowConnectionBorrowed => 'Подключение добавлено.'; + @override String get borrowFailed => 'Не удалось добавить подключение.'; @override String get incorrectPin => 'Неверный PIN.'; @override String get incorrectPinTryAgain => 'Неверный PIN. Попробуйте ещё раз.'; - @override String get sourceProfileMissingParentAccount => 'У исходного профиля отсутствует родительская учетная запись.'; + @override String get sourceProfileMissingParentAccount => 'У исходного профиля отсутствует родительская учётная запись.'; @override String get failedToLoadHomeUsers => 'Не удалось загрузить пользователей Plex Home. Проверьте подключение и попробуйте ещё раз.'; @override String get failedToVerifyPin => 'Не удалось проверить PIN.'; @override String get newProfile => 'Новый профиль'; @@ -1095,7 +1099,7 @@ class _Translations$navigation$ru extends Translations$navigation$en { @override String get libraries => 'Библиотеки'; @override String get downloads => 'Загрузки'; @override String get liveTv => 'ТВ в прямом эфире'; - @override String get explore => 'Исследовать'; + @override String get explore => 'Обзор'; } // Path: explore @@ -1105,7 +1109,7 @@ class _Translations$explore$ru extends Translations$explore$en { final TranslationsRu _root; // ignore: unused_field // Translations - @override String get title => 'Исследовать'; + @override String get title => 'Обзор'; @override String get selectSource => 'Выбрать источник'; @override late final _Translations$explore$rows$ru rows = _Translations$explore$rows$ru._(_root); @override late final _Translations$explore$status$ru status = _Translations$explore$status$ru._(_root); @@ -1124,7 +1128,7 @@ class _Translations$explore$ru extends Translations$explore$en { @override String get inTheseLibraries => 'В этих библиотеках'; @override String get checkingLibrary => 'Проверка вашей библиотеки...'; @override String get emptyTitle => 'Здесь пока ничего нет'; - @override String emptyMessage({required Object source}) => 'Строки из ${source} появятся здесь, когда в них будет контент.'; + @override String emptyMessage({required Object source}) => 'Разделы из ${source} появятся здесь, когда в них появится контент.'; @override String searchHint({required Object source}) => 'Поиск в ${source}'; @override String searchEmpty({required Object query}) => 'Нет результатов по запросу "${query}"'; @override String searchPrompt({required Object source}) => 'Ищите фильмы и сериалы в ${source}.'; @@ -1167,7 +1171,7 @@ class _Translations$liveTv$ru extends Translations$liveTv$en { @override String get favorites => 'Избранное'; @override String get reorderFavorites => 'Изменить порядок избранного'; @override String get favoritesLoadFailed => 'Не удалось загрузить избранное. Проверьте подключение и повторите попытку.'; - @override String get favoritesUpdateFailed => 'Could not update favorites. Check your connection and try again.'; + @override String get favoritesUpdateFailed => 'Не удалось обновить избранное. Проверьте подключение и повторите попытку.'; @override String get joinSession => 'Присоединиться к текущему сеансу'; @override String watchFromStart({required Object minutes}) => 'Смотреть сначала (${minutes} мин. назад)'; @override String get watchLive => 'Смотреть в прямом эфире'; @@ -1322,22 +1326,22 @@ class _Translations$watchTogether$ru extends Translations$watchTogether$en { @override String get joining => 'Подключение...'; @override String get controlMode => 'Режим управления'; @override String get controlModeQuestion => 'Кто может управлять воспроизведением?'; - @override String get hostOnly => 'Только хост'; + @override String get hostOnly => 'Только организатор'; @override String get anyone => 'Все'; - @override String get hostingSession => 'Хостинг сессии'; + @override String get hostingSession => 'Вы организатор'; @override String get inSession => 'В сессии'; @override String get sessionCode => 'Код сессии'; @override String get openSessionControls => 'Открыть управление сессией «Смотреть вместе»'; @override String get copySessionCode => 'Скопировать код сессии'; - @override String get hostControlsPlayback => 'Хост управляет воспроизведением'; + @override String get hostControlsPlayback => 'Организатор управляет воспроизведением'; @override String get anyoneCanControl => 'Любой может управлять воспроизведением'; - @override String get hostControls => 'Управление хоста'; - @override String get anyoneControls => 'Управление для всех'; + @override String get hostControls => 'Управляет организатор'; + @override String get anyoneControls => 'Управляют все'; @override String get participants => 'Участники'; - @override String get host => 'Хост'; - @override String get hostBadge => 'HOST'; - @override String get youAreHost => 'Вы — хост'; - @override String get watchingWithOthers => 'Смотрите с другими'; + @override String get host => 'Организатор'; + @override String get hostBadge => 'ОРГАНИЗАТОР'; + @override String get youAreHost => 'Вы — организатор'; + @override String get watchingWithOthers => 'Совместный просмотр'; @override String get endSession => 'Завершить сессию'; @override String get leaveSession => 'Покинуть сессию'; @override String get endSessionQuestion => 'Завершить сессию?'; @@ -1354,22 +1358,22 @@ class _Translations$watchTogether$ru extends Translations$watchTogether$en { @override String get pasteFromClipboard => 'Вставить из буфера обмена'; @override String get pleaseEnterCode => 'Введите код сессии'; @override String get codeMustBe5Chars => 'Код сессии должен содержать 5 символов'; - @override String get joinInstructions => 'Введите код сессии хоста, чтобы присоединиться.'; + @override String get joinInstructions => 'Введите код сессии организатора, чтобы присоединиться.'; @override String get failedToCreate => 'Не удалось создать сессию'; @override String get failedToJoin => 'Не удалось присоединиться к сессии'; @override String get sessionCodeCopied => 'Код сессии скопирован в буфер обмена'; - @override String get relayUnreachable => 'Сервер relay недоступен. Блокировка ISP может мешать Watch Together.'; - @override String get reconnectingToHost => 'Переподключение к хосту...'; + @override String get relayUnreachable => 'Сервер ретрансляции недоступен. Блокировка интернет-провайдером может помешать совместному просмотру.'; + @override String get reconnectingToHost => 'Повторное подключение к организатору...'; @override String get currentPlayback => 'Текущее воспроизведение'; @override String get joinCurrentPlayback => 'Присоединиться к текущему воспроизведению'; - @override String get joinCurrentPlaybackDescription => 'Вернуться к тому, что сейчас смотрит хост'; + @override String get joinCurrentPlaybackDescription => 'Вернуться к материалу, который сейчас смотрит организатор'; @override String get failedToOpenCurrentPlayback => 'Не удалось открыть текущее воспроизведение'; @override String participantJoined({required Object name}) => '${name} присоединился'; @override String participantLeft({required Object name}) => '${name} вышел'; @override String participantPaused({required Object name}) => '${name} поставил на паузу'; @override String participantResumed({required Object name}) => '${name} возобновил'; @override String participantSeeked({required Object name}) => '${name} перемотал'; - @override String participantBuffering({required Object name}) => '${name} буферизует'; + @override String participantBuffering({required Object name}) => 'У ${name} идёт буферизация'; @override String participantNeedsUpdate({required Object name}) => '${name} использует старую версию приложения — синхронизация недоступна'; @override String resumingWithout({required Object name}) => 'Возобновление без ${name}'; @override String get waitingForParticipants => 'Ожидание загрузки у других...'; @@ -1401,7 +1405,7 @@ class _Translations$downloads$ru extends Translations$downloads$en { @override String get retryDownload => 'Повторить загрузку'; @override String get downloadQueued => 'Загрузка поставлена в очередь'; @override String get downloadResumed => 'Загрузка возобновлена'; - @override String get serverErrorBitrate => 'Ошибка сервера: файл может превышать удаленный лимит bitrate'; + @override String get serverErrorBitrate => 'Ошибка сервера: файл может превышать установленное на сервере ограничение битрейта'; @override String episodesQueued({required Object count}) => '${count} эпизодов поставлено в очередь загрузки'; @override String get downloadDeleted => 'Загрузка удалена'; @override String deleteConfirm({required Object title}) => 'Удалить "${title}" с этого устройства?'; @@ -1649,9 +1653,9 @@ class _Translations$metadataEdit$ru extends Translations$metadataEdit$en { @override String get show => 'Показать'; @override String get hide => 'Скрыть'; @override String get episodeOrdering => 'Порядок эпизодов'; - @override String get tmdbAiring => 'The Movie Database (Эфирный)'; - @override String get tvdbAiring => 'TheTVDB (Эфирный)'; - @override String get tvdbAbsolute => 'TheTVDB (Абсолютный)'; + @override String get tmdbAiring => 'The Movie Database (по дате выхода)'; + @override String get tvdbAiring => 'TheTVDB (по дате выхода)'; + @override String get tvdbAbsolute => 'TheTVDB (абсолютный порядок)'; @override String get metadataLanguage => 'Язык метаданных'; @override String get useOriginalTitle => 'Использовать оригинальное название'; @override String get preferredAudioLanguage => 'Предпочитаемый язык аудио'; @@ -1771,7 +1775,7 @@ class _Translations$services$ru extends Translations$services$en { // Translations @override String get title => 'Сервисы'; - @override String get hubSubtitle => 'Синхронизируйте прогресс просмотра и запрашивайте новые тайтлы.'; + @override String get hubSubtitle => 'Синхронизируйте прогресс просмотра и запрашивайте новые фильмы и сериалы.'; @override String get notConnected => 'Не подключено'; @override String connectedAs({required Object username}) => 'Подключено как @${username}'; @override String get scrobble => 'Автоматически отслеживать прогресс'; @@ -1793,7 +1797,7 @@ class _Translations$addServer$ru extends Translations$addServer$en { // Translations @override String get addJellyfinTitle => 'Добавить сервер Jellyfin'; - @override String get serverUrls => 'URL сервера'; + @override String get serverUrls => 'URL-адреса сервера'; @override String get serverUrlsHelper => 'Можно указать несколько URL через запятую.'; @override String get findServer => 'Найти сервер'; @override String get searchingLocalServers => 'Поиск локальных серверов Jellyfin...'; @@ -1818,8 +1822,8 @@ class _Translations$addServer$ru extends Translations$addServer$en { @override String get connectToJellyfinCard => 'Подключиться к Jellyfin'; @override String get connectToJellyfinCardSubtitle => 'Введите URL сервера, имя пользователя и пароль.'; @override String connectToJellyfinCardSubtitleScoped({required Object name}) => 'Войдите на сервер Jellyfin. Привязывается к ${name}.'; - @override String get borrowFromAnotherProfile => 'Одолжить из другого профиля'; - @override String get borrowFromAnotherProfileSubtitle => 'Используйте подключение другого профиля. Для профилей с PIN нужен PIN.'; + @override String get borrowFromAnotherProfile => 'Использовать подключение другого профиля'; + @override String get borrowFromAnotherProfileSubtitle => 'Повторно используйте подключение другого профиля. Для защищённых профилей потребуется PIN.'; } // Path: hotkeys.actions @@ -1865,7 +1869,7 @@ class _Translations$videoControls$pipErrors$ru extends Translations$videoControl // Translations @override String get androidVersion => 'Требуется Android 8.0 или новее'; @override String get iosVersion => 'Требуется iOS 15.0 или новее'; - @override String get permissionDisabled => 'Картинка-в-картинке отключена. Включите ее в системных настройках.'; + @override String get permissionDisabled => 'Режим «картинка в картинке» отключён. Включите его в системных настройках.'; @override String get notSupported => 'Устройство не поддерживает режим «картинка в картинке»'; @override String get voSwitchFailed => 'Не удалось переключить видеовыход для «картинки в картинке»'; @override String get failed => 'Не удалось запустить режим «картинка в картинке»'; @@ -2017,10 +2021,10 @@ class _Translations$companionRemote$pairing$ru extends Translations$companionRem @override String get connecting => 'Подключение...'; @override String get searchingForDevices => 'Поиск устройств...'; @override String get noDevicesFound => 'Устройства в вашей сети не найдены'; - @override String get noDevicesHint => 'Откройте Plezy на компьютере и используйте тот же WiFi'; + @override String get noDevicesHint => 'Откройте Plezy на компьютере и подключите оба устройства к одной сети Wi-Fi'; @override String get availableDevices => 'Доступные устройства'; @override String get manualConnection => 'Ручное подключение'; - @override String get cryptoInitFailed => 'Не удалось запустить защищенное подключение. Сначала войдите в Plex.'; + @override String get cryptoInitFailed => 'Не удалось установить защищённое соединение. Сначала войдите в Plex.'; @override String get validationHostRequired => 'Введите адрес хоста'; @override String get validationHostFormat => 'Формат должен быть IP:порт (например, 192.168.1.100:48632)'; @override String get connectionTimedOut => 'Время подключения истекло. Используйте одну сеть на обоих устройствах.'; @@ -2156,10 +2160,10 @@ extension on TranslationsRu { 'app.title' => 'Plezy', 'auth.signInWithPlex' => 'Войти через Plex', 'auth.showQRCode' => 'Показать QR-код', - 'auth.authenticate' => 'Аутентификация', + 'auth.authenticate' => 'Войти', 'auth.authenticationTimeout' => 'Время аутентификации истекло. Попробуйте снова.', 'auth.scanQRToSignIn' => 'Отсканируйте QR-код для входа', - 'auth.waitingForAuth' => 'Ожидание аутентификации...\nВойдите в браузере.', + 'auth.waitingForAuth' => 'Ожидание аутентификации...\nВыполните вход в браузере.', 'auth.useBrowser' => 'Использовать браузер', 'auth.or' => 'или', 'auth.connectToJellyfin' => 'Подключиться к Jellyfin', @@ -2167,8 +2171,8 @@ extension on TranslationsRu { 'auth.quickConnectInstructions' => 'Откройте Quick Connect в Jellyfin и введите этот код.', 'auth.quickConnectWaiting' => 'Ожидание подтверждения…', 'auth.quickConnectCancel' => 'Отмена', - 'auth.quickConnectExpired' => 'Срок Quick Connect истек. Попробуйте снова.', - 'auth.localDataRecoveryRequired' => 'Plezy could not safely recover local sign-in and pending playback data. Please sign in again.', + 'auth.quickConnectExpired' => 'Срок действия Quick Connect истёк. Попробуйте снова.', + 'auth.localDataRecoveryRequired' => 'Plezy не удалось безопасно восстановить данные локального входа и несинхронизированные данные о воспроизведении. Войдите снова.', 'common.cancel' => 'Отмена', 'common.save' => 'Сохранить', 'common.close' => 'Закрыть', @@ -2252,6 +2256,8 @@ extension on TranslationsRu { 'settings.libraryDensity' => 'Плотность библиотеки', 'settings.compact' => 'Компактный', 'settings.comfortable' => 'Комфортный', + 'settings.tvCornerSpotlightBackdrop' => 'Фоновое изображение в углу', + 'settings.tvCornerSpotlightBackdropDescription' => 'Показывать изображение избранного материала в правом верхнем углу, а не на весь экран', 'settings.viewMode' => 'Режим просмотра', 'settings.gridView' => 'Сетка', 'settings.listView' => 'Список', @@ -2276,8 +2282,8 @@ extension on TranslationsRu { 'settings.showEpisodeNumberOnCardsDescription' => 'Показывать номер сезона и серии на карточках серий', 'settings.showSeasonPostersOnTabs' => 'Показывать постеры сезонов на вкладках', 'settings.showSeasonPostersOnTabsDescription' => 'Показывать постер каждого сезона над его вкладкой', - 'settings.tvFullCardLayout' => 'Полные TV-карточки', - 'settings.tvFullCardLayoutDescription' => 'Использовать TV-карточки только с изображением и именами актёров поверх него', + 'settings.tvFullCardLayout' => 'Полноформатные ТВ-карточки', + 'settings.tvFullCardLayoutDescription' => 'Использовать ТВ-карточки только с изображением и наложенными именами актёров', 'settings.focusGlow' => 'Свечение при фокусе', 'settings.focusGlowDescription' => 'Показывать мягкое свечение вокруг карточки в фокусе', 'settings.visualEffects' => 'Визуальные эффекты', @@ -2296,7 +2302,7 @@ extension on TranslationsRu { 'settings.bufferSize' => 'Размер буфера', 'settings.bufferSizeMB' => ({required Object size}) => '${size}МБ', 'settings.bufferSizeAuto' => 'Авто (Рекомендуется)', - 'settings.bufferSizeWarning' => ({required Object heap, required Object size}) => 'Доступно памяти: ${heap}MB. Буфер ${size}MB может повлиять на воспроизведение.', + 'settings.bufferSizeWarning' => ({required Object heap, required Object size}) => 'Доступно памяти: ${heap} МБ. Буфер размером ${size} МБ может повлиять на воспроизведение.', 'settings.defaultQualityTitle' => 'Качество по умолчанию', 'settings.musicQualityTitle' => 'Качество музыки', 'settings.subtitleStyling' => 'Стиль субтитров', @@ -2304,24 +2310,24 @@ extension on TranslationsRu { 'settings.smallSkipDuration' => 'Малая перемотка', 'settings.largeSkipDuration' => 'Большая перемотка', 'settings.rewindOnResume' => 'Перемотка при возобновлении', - 'settings.secondsUnit' => ({required Object seconds}) => '${seconds} секунд', + 'settings.secondsUnit' => ({required Object seconds}) => '${seconds} с', 'settings.defaultSleepTimer' => 'Таймер сна по умолчанию', - 'settings.minutesUnit' => ({required Object minutes}) => '${minutes} минут', + 'settings.minutesUnit' => ({required Object minutes}) => '${minutes} мин', 'settings.rememberTrackSelections' => 'Запоминать выбор дорожек для каждого сериала/фильма', - 'settings.rememberTrackSelectionsDescription' => 'Запоминать выбор аудио и субтитров для тайтла', + 'settings.rememberTrackSelectionsDescription' => 'Запоминать выбор аудиодорожки и субтитров для каждого материала', 'settings.showChapterMarkersOnTimeline' => 'Показывать маркеры глав на шкале перемотки', 'settings.showChapterMarkersOnTimelineDescription' => 'Разделять шкалу перемотки по границам глав', - 'settings.clickVideoTogglesPlayback' => 'Клик по видео для переключения воспроизведения/паузы', - 'settings.clickVideoTogglesPlaybackDescription' => 'Клик по видео запускает/ставит на паузу вместо показа управления.', + 'settings.clickVideoTogglesPlayback' => 'Нажатие на видео запускает или приостанавливает воспроизведение', + 'settings.clickVideoTogglesPlaybackDescription' => 'Нажатие на видео запускает или приостанавливает воспроизведение вместо показа элементов управления.', 'settings.videoPlayerControls' => 'Элементы управления плеером', 'settings.keyboardShortcuts' => 'Горячие клавиши', 'settings.keyboardShortcutsDescription' => 'Настроить горячие клавиши', 'settings.videoPlayerNavigation' => 'Навигация видеоплеера', 'settings.videoPlayerNavigationDescription' => 'Использовать клавиши стрелок для навигации по элементам управления плеером', - 'settings.watchTogetherRelay' => 'Relay совместного просмотра', - 'settings.watchTogetherRelayDescription' => 'Задайте свой relay. Все должны использовать один сервер.', + 'settings.watchTogetherRelay' => 'Сервер ретрансляции для совместного просмотра', + 'settings.watchTogetherRelayDescription' => 'Задайте свой сервер ретрансляции. Все участники должны использовать один сервер.', 'settings.watchTogetherRelayHint' => 'https://my-relay.example.com', - 'settings.watchTogetherRelayInvalid' => 'Enter a valid HTTP or HTTPS relay base URL.', + 'settings.watchTogetherRelayInvalid' => 'Введите допустимый базовый HTTP- или HTTPS-адрес сервера ретрансляции.', 'settings.crashReporting' => 'Отчёты об ошибках', 'settings.crashReportingDescription' => 'Отправлять отчёты об ошибках для улучшения приложения', 'settings.debugLogging' => 'Журнал отладки', @@ -2354,16 +2360,16 @@ extension on TranslationsRu { 'settings.autoCheckUpdatesOnStartupDescription' => 'Уведомлять о доступном обновлении при запуске', 'settings.validationErrorEnterNumber' => 'Введите корректное число', 'settings.validationErrorDuration' => ({required Object min, required Object max, required Object unit}) => 'Длительность должна быть от ${min} до ${max} ${unit}', - 'settings.shortcutAlreadyAssigned' => ({required Object action}) => 'Клавиша уже назначена для ${action}', - 'settings.shortcutUpdated' => ({required Object action}) => 'Клавиша обновлена для ${action}', - 'settings.saveFailed' => 'Could not save changes. Try again.', + 'settings.shortcutAlreadyAssigned' => ({required Object action}) => 'Сочетание клавиш уже назначено действию «${action}»', + 'settings.shortcutUpdated' => ({required Object action}) => 'Сочетание клавиш для действия «${action}» обновлено', + 'settings.saveFailed' => 'Не удалось сохранить изменения. Попробуйте снова.', 'settings.autoSkip' => 'Автопропуск', 'settings.autoSkipIntro' => 'Автопропуск вступления', 'settings.autoSkipIntroDescription' => 'Автоматически пропускать маркеры вступления через несколько секунд', 'settings.autoSkipCredits' => 'Автопропуск титров', 'settings.autoSkipCreditsDescription' => 'Автоматически пропускать титры и воспроизводить следующий эпизод', - 'settings.forceSkipMarkerFallback' => 'Принудительные резервные маркеры', - 'settings.forceSkipMarkerFallbackDescription' => 'Использовать шаблоны названий глав, даже если в Plex есть маркеры', + 'settings.forceSkipMarkerFallback' => 'Всегда использовать резервные маркеры', + 'settings.forceSkipMarkerFallbackDescription' => 'Использовать шаблоны названий глав, даже если в Plex есть собственные маркеры', 'settings.autoSkipDelay' => 'Задержка автопропуска', 'settings.autoSkipDelayDescription' => ({required Object seconds}) => 'Подождать ${seconds} секунд перед автопропуском', 'settings.introPattern' => 'Шаблон маркера вступления', @@ -2383,11 +2389,11 @@ extension on TranslationsRu { 'settings.downloadLocationReset' => 'Место загрузки сброшено по умолчанию', 'settings.downloadLocationInvalid' => 'Выбранная папка недоступна для записи', 'settings.downloadLocationPickerUnavailable' => 'Выбор папки недоступен на этом устройстве', - 'settings.downloadOnWifiOnly' => 'Загружать только по WiFi', + 'settings.downloadOnWifiOnly' => 'Загружать только по Wi-Fi', 'settings.downloadOnWifiOnlyDescription' => 'Запретить загрузку по мобильным данным', 'settings.autoRemoveWatchedDownloads' => 'Автоудаление просмотренных загрузок', 'settings.autoRemoveWatchedDownloadsDescription' => 'Автоматически удалять просмотренные загрузки', - 'settings.cellularDownloadBlocked' => 'Загрузки через мобильную сеть заблокированы. Используйте WiFi или измените настройку.', + 'settings.cellularDownloadBlocked' => 'Загрузки через мобильную сеть заблокированы. Используйте Wi-Fi или измените настройку.', 'settings.maxVolume' => 'Максимальная громкость', 'settings.maxVolumeDescription' => 'Разрешить усиление громкости выше 100% для тихих медиа', 'settings.maxVolumePercent' => ({required Object percent}) => '${percent}%', @@ -2398,8 +2404,8 @@ extension on TranslationsRu { 'settings.manageLibrariesDescription' => 'Изменять порядок и скрывать библиотеки', 'settings.companionRemoteServer' => 'Сервер удалённого управления', 'settings.companionRemoteServerDescription' => 'Разрешить мобильным устройствам в сети управлять этим приложением', - 'settings.autoPip' => 'Автоматический «картинка в картинке»', - 'settings.autoPipDescription' => 'Включать картинку-в-картинке при выходе во время воспроизведения', + 'settings.autoPip' => 'Автоматический режим «картинка в картинке»', + 'settings.autoPipDescription' => 'Автоматически включать режим «картинка в картинке» при выходе из приложения во время воспроизведения', 'settings.matchContentFrameRate' => 'Соответствие частоты кадров контента', 'settings.matchContentFrameRateDescription' => 'Подстраивать частоту обновления экрана под видео', 'settings.matchRefreshRate' => 'Соответствие частоты обновления', @@ -2408,10 +2414,10 @@ extension on TranslationsRu { 'settings.matchDynamicRangeDescription' => 'Включать HDR для HDR-контента, затем возвращаться к SDR', 'settings.displaySwitchDelay' => 'Задержка переключения дисплея', 'settings.tunneledPlayback' => 'Туннельное воспроизведение', - 'settings.tunneledPlaybackDescription' => 'Использовать видеотуннелирование. Отключите, если HDR показывает черный экран.', + 'settings.tunneledPlaybackDescription' => 'Использовать видеотуннелирование. Отключите, если при воспроизведении HDR отображается чёрный экран.', 'settings.audioPassthrough' => 'Сквозной вывод аудио', 'settings.audioPassthroughDescription' => 'Передавать звук Dolby/DTS на ресивер или телевизор без перекодирования, сохраняя объёмный звук. Отключите, если нет звука.', - 'settings.audioPassthroughDescriptionAppleTv' => 'Передаёт Dolby Digital Plus (включая Atmos) системе в виде битового потока. DTS и TrueHD по-прежнему воспроизводятся как многоканальный PCM. При перемотке возможны короткие пропадания звука.', + 'settings.audioPassthroughDescriptionAppleTv' => 'Использовать встроенный декодер Dolby от Apple для Dolby Digital Plus, включая Atmos. DTS и TrueHD по-прежнему воспроизводятся как многоканальный PCM. Отключите, если звук отсутствует.', 'settings.audioDownmix' => 'Микширование в стерео', 'settings.audioDownmixDescription' => 'Микширует объёмный звук в два канала для стереодинамиков или наушников', 'settings.downmixCenterBoost' => 'Усиление центрального канала', @@ -2518,7 +2524,7 @@ extension on TranslationsRu { 'fileInfo.bitDepth' => 'Глубина цвета', 'fileInfo.colorSpace' => 'Цветовое пространство', 'fileInfo.colorRange' => 'Цветовой диапазон', - 'fileInfo.colorPrimaries' => 'Цветовые первичные', + 'fileInfo.colorPrimaries' => 'Основные цвета', 'fileInfo.chromaSubsampling' => 'Субдискретизация цветности', 'fileInfo.channels' => 'Каналы', 'fileInfo.subtitles' => 'Субтитры', @@ -2527,7 +2533,7 @@ extension on TranslationsRu { 'fileInfo.size' => 'Размер', 'fileInfo.container' => 'Контейнер', 'fileInfo.duration' => 'Длительность', - 'fileInfo.optimizedForStreaming' => 'Оптимизировано для стриминга', + 'fileInfo.optimizedForStreaming' => 'Оптимизировано для потоковой передачи', 'fileInfo.has64bitOffsets' => '64-битные смещения', 'mediaMenu.markAsWatched' => 'Отметить как просмотренное', 'mediaMenu.markAsUnwatched' => 'Отметить как непросмотренное', @@ -2551,7 +2557,7 @@ extension on TranslationsRu { 'rateSheet.favorited' => 'Добавлено в избранное', 'rateSheet.saved' => 'Сохранено', 'rateSheet.notAvailable' => 'Совпадений не найдено', - 'rateSheet.noConnectedServices' => 'Подключите сервис в настройках, чтобы оценивать здесь.', + 'rateSheet.noConnectedServices' => 'Подключите сервис в настройках, чтобы выставлять оценки в нём.', 'accessibility.mediaCardMovie' => ({required Object title}) => '${title}, фильм', 'accessibility.mediaCardShow' => ({required Object title}) => '${title}, сериал', 'accessibility.mediaCardEpisode' => ({required Object title, required Object episodeInfo}) => '${title}, ${episodeInfo}', @@ -2587,7 +2593,7 @@ extension on TranslationsRu { 'videoControls.playsLater' => ({required Object label}) => '${label} воспроизводится позже', 'videoControls.playsEarlier' => ({required Object label}) => '${label} воспроизводится раньше', 'videoControls.noOffset' => 'Без смещения', - 'videoControls.letterbox' => 'Letterbox', + 'videoControls.letterbox' => 'Вписать в экран', 'videoControls.fillScreen' => 'Заполнить экран', 'videoControls.stretch' => 'Растянуть', 'videoControls.lockRotation' => 'Заблокировать поворот', @@ -2605,8 +2611,10 @@ extension on TranslationsRu { 'videoControls.playNext' => 'Следующее', 'videoControls.playButton' => 'Воспроизвести', 'videoControls.pauseButton' => 'Пауза', - 'videoControls.seekBackwardButton' => ({required Object seconds}) => 'Перемотка назад на ${seconds} секунд', - 'videoControls.seekForwardButton' => ({required Object seconds}) => 'Перемотка вперёд на ${seconds} секунд', + 'videoControls.showPlaybackControls' => 'Показать элементы управления воспроизведением', + 'videoControls.hidePlaybackControls' => 'Скрыть элементы управления воспроизведением', + 'videoControls.seekBackwardButton' => ({required Object seconds}) => 'Перемотать назад на ${seconds} с', + 'videoControls.seekForwardButton' => ({required Object seconds}) => 'Перемотать вперёд на ${seconds} с', 'videoControls.previousButton' => 'Предыдущий эпизод', 'videoControls.nextButton' => 'Следующий эпизод', 'videoControls.previousChapterButton' => 'Предыдущая глава', @@ -2620,7 +2628,7 @@ extension on TranslationsRu { 'videoControls.versionColumnHeader' => 'Версия', 'videoControls.qualityColumnHeader' => 'Качество', 'videoControls.qualityOriginal' => 'Оригинал', - 'videoControls.qualityPresetLabel' => ({required Object resolution, required Object bitrate}) => '${resolution}p ${bitrate} Mbps', + 'videoControls.qualityPresetLabel' => ({required Object resolution, required Object bitrate}) => '${resolution}p ${bitrate} Мбит/с', 'videoControls.transcodeUnavailableFallback' => 'Транскодирование недоступно — воспроизведение в оригинальном качестве', 'videoControls.subtitleUnavailableFallback' => 'Не удалось загрузить выбранные субтитры — воспроизведение продолжится без субтитров', 'videoControls.pipButton' => 'Режим «картинка в картинке»', @@ -2642,7 +2650,7 @@ extension on TranslationsRu { 'videoControls.zoomPercent' => ({required Object percent}) => 'Масштаб ${percent}%', 'videoControls.pipErrors.androidVersion' => 'Требуется Android 8.0 или новее', 'videoControls.pipErrors.iosVersion' => 'Требуется iOS 15.0 или новее', - 'videoControls.pipErrors.permissionDisabled' => 'Картинка-в-картинке отключена. Включите ее в системных настройках.', + 'videoControls.pipErrors.permissionDisabled' => 'Режим «картинка в картинке» отключён. Включите его в системных настройках.', 'videoControls.pipErrors.notSupported' => 'Устройство не поддерживает режим «картинка в картинке»', 'videoControls.pipErrors.voSwitchFailed' => 'Не удалось переключить видеовыход для «картинки в картинке»', 'videoControls.pipErrors.failed' => 'Не удалось запустить режим «картинка в картинке»', @@ -2661,12 +2669,12 @@ extension on TranslationsRu { 'videoControls.subtitleDownloadedNotApplied' => 'Субтитры загружены, но их не удалось выбрать', 'videoControls.subtitleDownloadFailed' => 'Не удалось загрузить субтитры', 'videoControls.searchLanguages' => 'Поиск языков...', + _ => null, + } ?? switch (path) { 'messages.markedAsWatched' => 'Отмечено как просмотренное', 'messages.markedAsUnwatched' => 'Отмечено как непросмотренное', 'messages.markedAsWatchedOffline' => 'Отмечено как просмотренное (синхронизируется при подключении)', 'messages.markedAsUnwatchedOffline' => 'Отмечено как непросмотренное (синхронизируется при подключении)', - _ => null, - } ?? switch (path) { 'messages.autoRemovedWatchedDownload' => ({required Object title}) => 'Автоудалено: ${title}', 'messages.autoRemovedWatchedDownloads' => ({required num n}) => (_root.$meta.cardinalResolver ?? PluralResolvers.cardinal('ru'))(n, one: 'Автоматически удалена ${n} просмотренная загрузка', few: 'Автоматически удалены ${n} просмотренные загрузки', many: 'Автоматически удалено ${n} просмотренных загрузок', other: 'Автоматически удалено ${n} просмотренной загрузки', ), 'messages.removedFromContinueWatching' => 'Удалено из «Продолжить просмотр»', @@ -2674,11 +2682,11 @@ extension on TranslationsRu { 'messages.streamInterrupted' => 'Поток прервался. Нажмите «Воспроизвести» или перемотайте, чтобы повторить попытку.', 'messages.liveStreamInterrupted' => 'Прямая трансляция прервалась. Нажмите «Воспроизвести», чтобы повторить попытку.', 'messages.fileInfoNotAvailable' => 'Информация о файле недоступна', - 'messages.playbackAuthenticationRequired' => 'Sign in to the media server again to play this item.', - 'messages.playbackServerUnavailable' => 'The media server is unavailable. Try again later.', - 'messages.playbackDataInvalid' => 'The server returned invalid playback information.', - 'messages.playbackCancelled' => 'Playback was cancelled.', - 'messages.playbackFailed' => 'Playback could not be started.', + 'messages.playbackAuthenticationRequired' => 'Чтобы воспроизвести этот материал, снова войдите на медиасервер.', + 'messages.playbackServerUnavailable' => 'Медиасервер недоступен. Попробуйте позже.', + 'messages.playbackDataInvalid' => 'Сервер вернул некорректные сведения для воспроизведения.', + 'messages.playbackCancelled' => 'Воспроизведение отменено.', + 'messages.playbackFailed' => 'Не удалось начать воспроизведение.', 'messages.errorLoadingFileInfo' => ({required Object error}) => 'Ошибка загрузки информации о файле: ${error}', 'messages.errorLoadingSeries' => 'Ошибка загрузки сериала', 'messages.musicNotSupported' => 'Воспроизведение музыки пока не поддерживается', @@ -2723,7 +2731,7 @@ extension on TranslationsRu { 'subtitlingStyling.backgroundColor' => 'Цвет фона', 'subtitlingStyling.position' => 'Позиция', 'subtitlingStyling.assOverride' => 'Переопределение ASS', - 'subtitlingStyling.overrideScale' => 'Масштабировать', + 'subtitlingStyling.overrideScale' => 'Масштаб', 'subtitlingStyling.overrideForce' => 'Принудительно', 'subtitlingStyling.overrideStrip' => 'Удалить стили', 'subtitlingStyling.positionTop' => 'Сверху', @@ -2761,7 +2769,7 @@ extension on TranslationsRu { 'profiles.signedOutPlex' => 'Вы вышли из Plex.', 'profiles.signOutFailed' => 'Не удалось выйти.', 'profiles.sectionTitle' => 'Профили', - 'profiles.summarySingle' => 'Добавьте профили, чтобы смешать управляемых пользователей и локальные идентификаторы', + 'profiles.summarySingle' => 'Добавляйте профили, чтобы сочетать управляемых пользователей и локальные профили', 'profiles.summaryMultipleWithActive' => ({required Object count, required Object activeName}) => '${count} профилей · активный: ${activeName}', 'profiles.summaryMultiple' => ({required Object count}) => '${count} профилей', 'profiles.removeConnectionTitle' => 'Удалить соединение?', @@ -2790,16 +2798,16 @@ extension on TranslationsRu { 'profiles.removeConnection' => 'Удалить', 'profiles.profileRenamed' => 'Профиль переименован.', 'profiles.borrowAddTo' => ({required Object displayName}) => 'Добавить в ${displayName}', - 'profiles.borrowExplain' => 'Заимствуйте подключение другого профиля. Для профилей с PIN нужен PIN.', - 'profiles.borrowEmpty' => 'Пока нечего заимствовать.', + 'profiles.borrowExplain' => 'Используйте подключение другого профиля. Для защищённых профилей потребуется PIN.', + 'profiles.borrowEmpty' => 'Пока нет доступных подключений.', 'profiles.borrowEmptySubtitle' => 'Сначала подключите Plex или Jellyfin к другому профилю.', - 'profiles.borrowLoadFailed' => 'Available connections could not be loaded. Try again.', - 'profiles.borrowFromProfile' => ({required Object displayName}) => 'Из ${displayName}', - 'profiles.borrowConnectionBorrowed' => 'Подключение заимствовано.', - 'profiles.borrowFailed' => 'Не удалось заимствовать подключение.', + 'profiles.borrowLoadFailed' => 'Не удалось загрузить доступные подключения. Попробуйте снова.', + 'profiles.borrowFromProfile' => ({required Object displayName}) => 'От ${displayName}', + 'profiles.borrowConnectionBorrowed' => 'Подключение добавлено.', + 'profiles.borrowFailed' => 'Не удалось добавить подключение.', 'profiles.incorrectPin' => 'Неверный PIN.', 'profiles.incorrectPinTryAgain' => 'Неверный PIN. Попробуйте ещё раз.', - 'profiles.sourceProfileMissingParentAccount' => 'У исходного профиля отсутствует родительская учетная запись.', + 'profiles.sourceProfileMissingParentAccount' => 'У исходного профиля отсутствует родительская учётная запись.', 'profiles.failedToLoadHomeUsers' => 'Не удалось загрузить пользователей Plex Home. Проверьте подключение и попробуйте ещё раз.', 'profiles.failedToVerifyPin' => 'Не удалось проверить PIN.', 'profiles.newProfile' => 'Новый профиль', @@ -2954,8 +2962,8 @@ extension on TranslationsRu { 'navigation.libraries' => 'Библиотеки', 'navigation.downloads' => 'Загрузки', 'navigation.liveTv' => 'ТВ в прямом эфире', - 'navigation.explore' => 'Исследовать', - 'explore.title' => 'Исследовать', + 'navigation.explore' => 'Обзор', + 'explore.title' => 'Обзор', 'explore.selectSource' => 'Выбрать источник', 'explore.rows.watchlist' => 'Список для просмотра', 'explore.rows.recommendedMovies' => 'Рекомендуемые фильмы', @@ -2985,7 +2993,7 @@ extension on TranslationsRu { 'explore.inTheseLibraries' => 'В этих библиотеках', 'explore.checkingLibrary' => 'Проверка вашей библиотеки...', 'explore.emptyTitle' => 'Здесь пока ничего нет', - 'explore.emptyMessage' => ({required Object source}) => 'Строки из ${source} появятся здесь, когда в них будет контент.', + 'explore.emptyMessage' => ({required Object source}) => 'Разделы из ${source} появятся здесь, когда в них появится контент.', 'explore.searchHint' => ({required Object source}) => 'Поиск в ${source}', 'explore.searchEmpty' => ({required Object query}) => 'Нет результатов по запросу "${query}"', 'explore.searchPrompt' => ({required Object source}) => 'Ищите фильмы и сериалы в ${source}.', @@ -3019,7 +3027,7 @@ extension on TranslationsRu { 'liveTv.favorites' => 'Избранное', 'liveTv.reorderFavorites' => 'Изменить порядок избранного', 'liveTv.favoritesLoadFailed' => 'Не удалось загрузить избранное. Проверьте подключение и повторите попытку.', - 'liveTv.favoritesUpdateFailed' => 'Could not update favorites. Check your connection and try again.', + 'liveTv.favoritesUpdateFailed' => 'Не удалось обновить избранное. Проверьте подключение и повторите попытку.', 'liveTv.joinSession' => 'Присоединиться к текущему сеансу', 'liveTv.watchFromStart' => ({required Object minutes}) => 'Смотреть сначала (${minutes} мин. назад)', 'liveTv.watchLive' => 'Смотреть в прямом эфире', @@ -3133,22 +3141,22 @@ extension on TranslationsRu { 'watchTogether.joining' => 'Подключение...', 'watchTogether.controlMode' => 'Режим управления', 'watchTogether.controlModeQuestion' => 'Кто может управлять воспроизведением?', - 'watchTogether.hostOnly' => 'Только хост', + 'watchTogether.hostOnly' => 'Только организатор', 'watchTogether.anyone' => 'Все', - 'watchTogether.hostingSession' => 'Хостинг сессии', + 'watchTogether.hostingSession' => 'Вы организатор', 'watchTogether.inSession' => 'В сессии', 'watchTogether.sessionCode' => 'Код сессии', 'watchTogether.openSessionControls' => 'Открыть управление сессией «Смотреть вместе»', 'watchTogether.copySessionCode' => 'Скопировать код сессии', - 'watchTogether.hostControlsPlayback' => 'Хост управляет воспроизведением', + 'watchTogether.hostControlsPlayback' => 'Организатор управляет воспроизведением', 'watchTogether.anyoneCanControl' => 'Любой может управлять воспроизведением', - 'watchTogether.hostControls' => 'Управление хоста', - 'watchTogether.anyoneControls' => 'Управление для всех', + 'watchTogether.hostControls' => 'Управляет организатор', + 'watchTogether.anyoneControls' => 'Управляют все', 'watchTogether.participants' => 'Участники', - 'watchTogether.host' => 'Хост', - 'watchTogether.hostBadge' => 'HOST', - 'watchTogether.youAreHost' => 'Вы — хост', - 'watchTogether.watchingWithOthers' => 'Смотрите с другими', + 'watchTogether.host' => 'Организатор', + 'watchTogether.hostBadge' => 'ОРГАНИЗАТОР', + 'watchTogether.youAreHost' => 'Вы — организатор', + 'watchTogether.watchingWithOthers' => 'Совместный просмотр', 'watchTogether.endSession' => 'Завершить сессию', 'watchTogether.leaveSession' => 'Покинуть сессию', 'watchTogether.endSessionQuestion' => 'Завершить сессию?', @@ -3165,24 +3173,24 @@ extension on TranslationsRu { 'watchTogether.pasteFromClipboard' => 'Вставить из буфера обмена', 'watchTogether.pleaseEnterCode' => 'Введите код сессии', 'watchTogether.codeMustBe5Chars' => 'Код сессии должен содержать 5 символов', - 'watchTogether.joinInstructions' => 'Введите код сессии хоста, чтобы присоединиться.', + 'watchTogether.joinInstructions' => 'Введите код сессии организатора, чтобы присоединиться.', 'watchTogether.failedToCreate' => 'Не удалось создать сессию', 'watchTogether.failedToJoin' => 'Не удалось присоединиться к сессии', 'watchTogether.sessionCodeCopied' => 'Код сессии скопирован в буфер обмена', - 'watchTogether.relayUnreachable' => 'Сервер relay недоступен. Блокировка ISP может мешать Watch Together.', - 'watchTogether.reconnectingToHost' => 'Переподключение к хосту...', + 'watchTogether.relayUnreachable' => 'Сервер ретрансляции недоступен. Блокировка интернет-провайдером может помешать совместному просмотру.', + 'watchTogether.reconnectingToHost' => 'Повторное подключение к организатору...', 'watchTogether.currentPlayback' => 'Текущее воспроизведение', 'watchTogether.joinCurrentPlayback' => 'Присоединиться к текущему воспроизведению', - 'watchTogether.joinCurrentPlaybackDescription' => 'Вернуться к тому, что сейчас смотрит хост', + 'watchTogether.joinCurrentPlaybackDescription' => 'Вернуться к материалу, который сейчас смотрит организатор', 'watchTogether.failedToOpenCurrentPlayback' => 'Не удалось открыть текущее воспроизведение', + _ => null, + } ?? switch (path) { 'watchTogether.participantJoined' => ({required Object name}) => '${name} присоединился', 'watchTogether.participantLeft' => ({required Object name}) => '${name} вышел', 'watchTogether.participantPaused' => ({required Object name}) => '${name} поставил на паузу', 'watchTogether.participantResumed' => ({required Object name}) => '${name} возобновил', - _ => null, - } ?? switch (path) { 'watchTogether.participantSeeked' => ({required Object name}) => '${name} перемотал', - 'watchTogether.participantBuffering' => ({required Object name}) => '${name} буферизует', + 'watchTogether.participantBuffering' => ({required Object name}) => 'У ${name} идёт буферизация', 'watchTogether.participantNeedsUpdate' => ({required Object name}) => '${name} использует старую версию приложения — синхронизация недоступна', 'watchTogether.resumingWithout' => ({required Object name}) => 'Возобновление без ${name}', 'watchTogether.waitingForParticipants' => 'Ожидание загрузки у других...', @@ -3205,7 +3213,7 @@ extension on TranslationsRu { 'downloads.retryDownload' => 'Повторить загрузку', 'downloads.downloadQueued' => 'Загрузка поставлена в очередь', 'downloads.downloadResumed' => 'Загрузка возобновлена', - 'downloads.serverErrorBitrate' => 'Ошибка сервера: файл может превышать удаленный лимит bitrate', + 'downloads.serverErrorBitrate' => 'Ошибка сервера: файл может превышать установленное на сервере ограничение битрейта', 'downloads.episodesQueued' => ({required Object count}) => '${count} эпизодов поставлено в очередь загрузки', 'downloads.downloadDeleted' => 'Загрузка удалена', 'downloads.deleteConfirm' => ({required Object title}) => 'Удалить "${title}" с этого устройства?', @@ -3293,10 +3301,10 @@ extension on TranslationsRu { 'companionRemote.pairing.connecting' => 'Подключение...', 'companionRemote.pairing.searchingForDevices' => 'Поиск устройств...', 'companionRemote.pairing.noDevicesFound' => 'Устройства в вашей сети не найдены', - 'companionRemote.pairing.noDevicesHint' => 'Откройте Plezy на компьютере и используйте тот же WiFi', + 'companionRemote.pairing.noDevicesHint' => 'Откройте Plezy на компьютере и подключите оба устройства к одной сети Wi-Fi', 'companionRemote.pairing.availableDevices' => 'Доступные устройства', 'companionRemote.pairing.manualConnection' => 'Ручное подключение', - 'companionRemote.pairing.cryptoInitFailed' => 'Не удалось запустить защищенное подключение. Сначала войдите в Plex.', + 'companionRemote.pairing.cryptoInitFailed' => 'Не удалось установить защищённое соединение. Сначала войдите в Plex.', 'companionRemote.pairing.validationHostRequired' => 'Введите адрес хоста', 'companionRemote.pairing.validationHostFormat' => 'Формат должен быть IP:порт (например, 192.168.1.100:48632)', 'companionRemote.pairing.connectionTimedOut' => 'Время подключения истекло. Используйте одну сеть на обоих устройствах.', @@ -3456,9 +3464,9 @@ extension on TranslationsRu { 'metadataEdit.show' => 'Показать', 'metadataEdit.hide' => 'Скрыть', 'metadataEdit.episodeOrdering' => 'Порядок эпизодов', - 'metadataEdit.tmdbAiring' => 'The Movie Database (Эфирный)', - 'metadataEdit.tvdbAiring' => 'TheTVDB (Эфирный)', - 'metadataEdit.tvdbAbsolute' => 'TheTVDB (Абсолютный)', + 'metadataEdit.tmdbAiring' => 'The Movie Database (по дате выхода)', + 'metadataEdit.tvdbAiring' => 'TheTVDB (по дате выхода)', + 'metadataEdit.tvdbAbsolute' => 'TheTVDB (абсолютный порядок)', 'metadataEdit.metadataLanguage' => 'Язык метаданных', 'metadataEdit.useOriginalTitle' => 'Использовать оригинальное название', 'metadataEdit.preferredAudioLanguage' => 'Предпочитаемый язык аудио', @@ -3533,7 +3541,7 @@ extension on TranslationsRu { 'seerr.statusRequested' => 'Запрошено', 'seerr.statusProcessing' => 'Обработка', 'services.title' => 'Сервисы', - 'services.hubSubtitle' => 'Синхронизируйте прогресс просмотра и запрашивайте новые тайтлы.', + 'services.hubSubtitle' => 'Синхронизируйте прогресс просмотра и запрашивайте новые фильмы и сериалы.', 'services.notConnected' => 'Не подключено', 'services.connectedAs' => ({required Object username}) => 'Подключено как @${username}', 'services.scrobble' => 'Автоматически отслеживать прогресс', @@ -3569,7 +3577,7 @@ extension on TranslationsRu { 'services.libraryFilter.libraries' => 'Библиотеки', 'services.libraryFilter.noLibraries' => 'Библиотеки недоступны', 'addServer.addJellyfinTitle' => 'Добавить сервер Jellyfin', - 'addServer.serverUrls' => 'URL сервера', + 'addServer.serverUrls' => 'URL-адреса сервера', 'addServer.serverUrlsHelper' => 'Можно указать несколько URL через запятую.', 'addServer.findServer' => 'Найти сервер', 'addServer.searchingLocalServers' => 'Поиск локальных серверов Jellyfin...', @@ -3594,8 +3602,8 @@ extension on TranslationsRu { 'addServer.connectToJellyfinCard' => 'Подключиться к Jellyfin', 'addServer.connectToJellyfinCardSubtitle' => 'Введите URL сервера, имя пользователя и пароль.', 'addServer.connectToJellyfinCardSubtitleScoped' => ({required Object name}) => 'Войдите на сервер Jellyfin. Привязывается к ${name}.', - 'addServer.borrowFromAnotherProfile' => 'Одолжить из другого профиля', - 'addServer.borrowFromAnotherProfileSubtitle' => 'Используйте подключение другого профиля. Для профилей с PIN нужен PIN.', + 'addServer.borrowFromAnotherProfile' => 'Использовать подключение другого профиля', + 'addServer.borrowFromAnotherProfileSubtitle' => 'Повторно используйте подключение другого профиля. Для защищённых профилей потребуется PIN.', _ => null, }; } diff --git a/lib/i18n/strings_sv.g.dart b/lib/i18n/strings_sv.g.dart index 517e6e7e..83e5f464 100644 --- a/lib/i18n/strings_sv.g.dart +++ b/lib/i18n/strings_sv.g.dart @@ -109,8 +109,8 @@ class _Translations$auth$sv extends Translations$auth$en { // Translations @override String get signInWithPlex => 'Logga in med Plex'; @override String get showQRCode => 'Visa QR-kod'; - @override String get authenticate => 'Autentisera'; - @override String get authenticationTimeout => 'Autentisering tog för lång tid. Försök igen.'; + @override String get authenticate => 'Verifiera'; + @override String get authenticationTimeout => 'Autentiseringen tog för lång tid. Försök igen.'; @override String get scanQRToSignIn => 'Skanna QR-koden för att logga in'; @override String get waitingForAuth => 'Väntar på autentisering...\nLogga in från din webbläsare.'; @override String get useBrowser => 'Använd webbläsare'; @@ -121,7 +121,7 @@ class _Translations$auth$sv extends Translations$auth$en { @override String get quickConnectWaiting => 'Väntar på godkännande…'; @override String get quickConnectCancel => 'Avbryt'; @override String get quickConnectExpired => 'Quick Connect har gått ut. Försök igen.'; - @override String get localDataRecoveryRequired => 'Plezy could not safely recover local sign-in and pending playback data. Please sign in again.'; + @override String get localDataRecoveryRequired => 'Plezy kunde inte återställa lokala inloggningsuppgifter och väntande uppspelningsdata på ett säkert sätt. Logga in igen.'; } // Path: common @@ -159,8 +159,8 @@ class _Translations$common$sv extends Translations$common$en { @override String get search => 'Sök'; @override String get home => 'Hem'; @override String get back => 'Tillbaka'; - @override String get settings => 'Mer'; - @override String get mute => 'Ljud av'; + @override String get settings => 'Inställningar'; + @override String get mute => 'Stäng av ljudet'; @override String get ok => 'OK'; @override String get off => 'Av'; @override String seasonNumber({required Object number}) => 'Säsong ${number}'; @@ -187,7 +187,7 @@ class _Translations$screens$sv extends Translations$screens$en { // Translations @override String get licenses => 'Licenser'; @override String get switchProfile => 'Byt profil'; - @override String get subtitleStyling => 'Undertext-styling'; + @override String get subtitleStyling => 'Utseende för undertexter'; @override String get mpvConfig => 'mpv.conf'; @override String get logs => 'Loggar'; } @@ -203,9 +203,9 @@ class _Translations$update$sv extends Translations$update$en { @override String versionAvailable({required Object version}) => 'Version ${version} är tillgänglig'; @override String currentVersion({required Object version}) => 'Nuvarande: ${version}'; @override String get skipVersion => 'Hoppa över denna version'; - @override String get viewRelease => 'Visa release'; + @override String get viewRelease => 'Visa versionsinformation'; @override String get latestVersion => 'Du har den senaste versionen'; - @override String get checkFailed => 'Misslyckades att kontrollera uppdateringar'; + @override String get checkFailed => 'Det gick inte att söka efter uppdateringar'; } // Path: settings @@ -224,11 +224,11 @@ class _Translations$settings$sv extends Translations$settings$en { @override String get videoPlayback => 'Videouppspelning'; @override String get videoPlaybackDescription => 'Konfigurera uppspelningsbeteende'; @override String get advanced => 'Avancerat'; - @override String get episodePosterMode => 'Avsnittsaffisch-stil'; + @override String get episodePosterMode => 'Stil för avsnittsaffisch'; @override String get seriesPoster => 'Serieaffisch'; @override String get seasonPoster => 'Säsongsaffisch'; @override String get episodeThumbnail => 'Miniatyr'; - @override String get showHeroSectionDescription => 'Visa utvalda innehållskarusell på startsidan'; + @override String get showHeroSectionDescription => 'Visa en karusell med utvalt innehåll på startsidan'; @override String get secondsLabel => 'Sekunder'; @override String get minutesLabel => 'Minuter'; @override String get secondsShort => 's'; @@ -240,89 +240,91 @@ class _Translations$settings$sv extends Translations$settings$en { @override String get oledTheme => 'OLED'; @override String get libraryDensity => 'Biblioteksdensitet'; @override String get compact => 'Kompakt'; - @override String get comfortable => 'Bekväm'; + @override String get comfortable => 'Luftig'; + @override String get tvCornerSpotlightBackdrop => 'Bakgrundsbild för utvalt innehåll i hörnet'; + @override String get tvCornerSpotlightBackdropDescription => 'Visa bakgrundsbilden för utvalt innehåll i övre högra hörnet i stället för över hela skärmen'; @override String get viewMode => 'Visningsläge'; @override String get gridView => 'Rutnät'; @override String get listView => 'Lista'; - @override String get showHeroSection => 'Visa hjältesektion'; + @override String get showHeroSection => 'Visa utvalt innehåll'; @override String get continueWatchingAction => 'Åtgärd för Fortsätt titta'; @override String get continueWatchingPlay => 'Spela'; @override String get continueWatchingDetails => 'Öppna detaljer'; @override String get episodeAction => 'Åtgärd för avsnitt'; @override String get episodePlay => 'Spela'; @override String get episodeDetails => 'Öppna detaljer'; - @override String get useGlobalHubs => 'Använd startlayout'; - @override String get useGlobalHubsDescription => 'Visa enhetliga startsideshubbar. Annars används biblioteksrekommendationer.'; - @override String get showServerNameOnHubs => 'Visa servernamn på hubbar'; - @override String get showServerNameOnHubsDescription => 'Visa alltid servernamn i hubbtitlar.'; + @override String get useGlobalHubs => 'Använd startsidans layout'; + @override String get useGlobalHubsDescription => 'Visa en gemensam layout på startsidan. Annars används bibliotekens rekommendationer.'; + @override String get showServerNameOnHubs => 'Visa servernamn i innehållssektioner'; + @override String get showServerNameOnHubsDescription => 'Visa alltid servernamnet i innehållssektionernas rubriker.'; @override String get groupLibrariesByServer => 'Gruppera bibliotek efter server'; - @override String get groupLibrariesByServerDescription => 'Gruppera sidofältsbibliotek under varje medieserver.'; - @override String get alwaysKeepSidebarOpen => 'Håll sidofältet alltid öppet'; - @override String get alwaysKeepSidebarOpenDescription => 'Sidofältet förblir expanderat och innehållsytan anpassas'; + @override String get groupLibrariesByServerDescription => 'Gruppera biblioteken i sidofältet under respektive medieserver.'; + @override String get alwaysKeepSidebarOpen => 'Håll alltid sidofältet öppet'; + @override String get alwaysKeepSidebarOpenDescription => 'Sidofältet förblir utfällt och innehållsytan anpassas efter det'; @override String get showUnwatchedCount => 'Visa antal osedda'; @override String get showUnwatchedCountDescription => 'Visa antal osedda avsnitt för serier och säsonger'; @override String get showEpisodeNumberOnCards => 'Visa avsnittsnummer på kort'; @override String get showEpisodeNumberOnCardsDescription => 'Visa säsongs- och avsnittsnummer på avsnittskort'; @override String get showSeasonPostersOnTabs => 'Visa säsongsaffischer på flikar'; - @override String get showSeasonPostersOnTabsDescription => 'Visa varje säsongs affisch ovanför fliken'; + @override String get showSeasonPostersOnTabsDescription => 'Visa affischen för varje säsong ovanför dess flik'; @override String get tvFullCardLayout => 'Heltäckande TV-kort'; @override String get tvFullCardLayoutDescription => 'Använd TV-kort med enbart bild och skådespelarnamn ovanpå'; - @override String get focusGlow => 'Fokusglöd'; - @override String get focusGlowDescription => 'Visa en mjuk glöd runt kortet i fokus'; + @override String get focusGlow => 'Fokusmarkering'; + @override String get focusGlowDescription => 'Visa ett mjukt sken runt kortet som har fokus'; @override String get visualEffects => 'Visuella effekter'; @override String get visualEffectsAuto => 'Automatiskt'; - @override String get visualEffectsAutoDescription => 'Minska effekter automatiskt på enheter med låg effekt'; + @override String get visualEffectsAutoDescription => 'Minska effekterna automatiskt på enheter med begränsad prestanda'; @override String get visualEffectsFull => 'Fullständiga'; @override String get visualEffectsReduced => 'Minskade'; @override String get visualEffectsReducedDescription => 'Färre animationer och grafik med lägre upplösning'; @override String get hideSpoilers => 'Dölj spoilers för osedda avsnitt'; - @override String get hideSpoilersDescription => 'Sudda miniatyrbilder och beskrivningar för osedda avsnitt'; - @override String get playerBackend => 'Spelarmotor'; + @override String get hideSpoilersDescription => 'Gör miniatyrbilder och beskrivningar oskarpa för osedda avsnitt'; + @override String get playerBackend => 'Uppspelningsmotor'; @override String get exoPlayer => 'ExoPlayer'; @override String get mpv => 'mpv'; @override String get hardwareDecoding => 'Hårdvaruavkodning'; @override String get hardwareDecodingDescription => 'Använd hårdvaruacceleration när tillgängligt'; - @override String get bufferSize => 'Bufferstorlek'; - @override String bufferSizeMB({required Object size}) => '${size}MB'; - @override String get bufferSizeAuto => 'Auto (Rekommenderat)'; - @override String bufferSizeWarning({required Object heap, required Object size}) => '${heap}MB minne tillgängligt. En buffert på ${size}MB kan påverka uppspelningen.'; + @override String get bufferSize => 'Buffertstorlek'; + @override String bufferSizeMB({required Object size}) => '${size} MB'; + @override String get bufferSizeAuto => 'Automatiskt (rekommenderas)'; + @override String bufferSizeWarning({required Object heap, required Object size}) => '${heap} MB minne är tillgängligt. En buffert på ${size} MB kan påverka uppspelningen.'; @override String get defaultQualityTitle => 'Standardkvalitet'; @override String get musicQualityTitle => 'Musikkvalitet'; - @override String get subtitleStyling => 'Undertext-styling'; - @override String get subtitleStylingDescription => 'Anpassa undertextutseende'; - @override String get smallSkipDuration => 'Kort hoppvaraktighet'; - @override String get largeSkipDuration => 'Lång hoppvaraktighet'; + @override String get subtitleStyling => 'Utseende för undertexter'; + @override String get subtitleStylingDescription => 'Anpassa undertexternas utseende'; + @override String get smallSkipDuration => 'Litet hoppsteg'; + @override String get largeSkipDuration => 'Stort hoppsteg'; @override String get rewindOnResume => 'Spola tillbaka vid återupptagning'; @override String secondsUnit({required Object seconds}) => '${seconds} sekunder'; - @override String get defaultSleepTimer => 'Standard sovtimer'; + @override String get defaultSleepTimer => 'Förvald insomningstimer'; @override String minutesUnit({required Object minutes}) => '${minutes} minuter'; @override String get rememberTrackSelections => 'Kom ihåg spårval per serie/film'; @override String get rememberTrackSelectionsDescription => 'Kom ihåg ljud- och undertextval per titel'; @override String get showChapterMarkersOnTimeline => 'Visa kapitelmarkörer på tidslinjen'; @override String get showChapterMarkersOnTimelineDescription => 'Dela upp tidslinjen vid kapitelgränser'; - @override String get clickVideoTogglesPlayback => 'Klicka på videon för att växla mellan spela upp och pausa.'; - @override String get clickVideoTogglesPlaybackDescription => 'Klicka på video för att spela/pausa istället för att visa kontroller.'; - @override String get videoPlayerControls => 'Videospelar-kontroller'; + @override String get clickVideoTogglesPlayback => 'Klicka på videon för att spela upp eller pausa'; + @override String get clickVideoTogglesPlaybackDescription => 'Klicka på videon för att spela upp eller pausa i stället för att visa kontrollerna.'; + @override String get videoPlayerControls => 'Videospelarens kontroller'; @override String get keyboardShortcuts => 'Tangentbordsgenvägar'; @override String get keyboardShortcutsDescription => 'Anpassa tangentbordsgenvägar'; @override String get videoPlayerNavigation => 'Navigering i videospelaren'; @override String get videoPlayerNavigationDescription => 'Använd piltangenter för att navigera videospelarens kontroller'; - @override String get watchTogetherRelay => 'Titta Tillsammans-relay'; - @override String get watchTogetherRelayDescription => 'Ange en anpassad relay. Alla måste använda samma server.'; - @override String get watchTogetherRelayHint => 'https://min-relay.exempel.se'; - @override String get watchTogetherRelayInvalid => 'Enter a valid HTTP or HTTPS relay base URL.'; + @override String get watchTogetherRelay => 'Reläserver för Titta tillsammans'; + @override String get watchTogetherRelayDescription => 'Ange en egen reläserver. Alla måste använda samma server.'; + @override String get watchTogetherRelayHint => 'https://mitt-rela.exempel.se'; + @override String get watchTogetherRelayInvalid => 'Ange en giltig HTTP- eller HTTPS-bas-URL för reläservern.'; @override String get crashReporting => 'Kraschrapportering'; @override String get crashReportingDescription => 'Skicka kraschrapporter för att förbättra appen'; @override String get debugLogging => 'Felsökningsloggning'; @override String get debugLoggingDescription => 'Aktivera detaljerad loggning för felsökning'; @override String get viewLogs => 'Visa loggar'; - @override String get viewLogsDescription => 'Visa applikationsloggar'; - @override String get clearCache => 'Rensa cache'; - @override String get clearCacheDescription => 'Rensa cachade bilder och data. Innehåll kan laddas långsammare.'; - @override String get clearCacheSuccess => 'Cache rensad framgångsrikt'; - @override String get resetSettings => 'Återställ inställningar'; - @override String get resetSettingsDescription => 'Återställ standardinställningar. Detta kan inte ångras.'; - @override String get resetSettingsSuccess => 'Inställningar återställda framgångsrikt'; + @override String get viewLogsDescription => 'Visa appens loggar'; + @override String get clearCache => 'Rensa cachen'; + @override String get clearCacheDescription => 'Rensa cachade bilder och data. Innehåll kan läsas in långsammare.'; + @override String get clearCacheSuccess => 'Cachen har rensats'; + @override String get resetSettings => 'Återställ inställningarna'; + @override String get resetSettingsDescription => 'Återställ standardinställningarna. Det går inte att ångra.'; + @override String get resetSettingsSuccess => 'Inställningarna har återställts'; @override String get backup => 'Säkerhetskopia'; @override String get exportSettings => 'Exportera inställningar'; @override String get exportSettingsDescription => 'Spara dina inställningar till en fil'; @@ -331,9 +333,9 @@ class _Translations$settings$sv extends Translations$settings$en { @override String get importSettingsDescription => 'Återställ inställningar från en fil'; @override String get importSettingsConfirm => 'Detta ersätter dina nuvarande inställningar. Fortsätta?'; @override String get importSettingsSuccess => 'Inställningar importerade'; - @override String get importSettingsInvalidFile => 'Denna fil är inte en giltig Plezy-export'; + @override String get importSettingsInvalidFile => 'Filen är inte en giltig export av Plezy-inställningar'; @override String get importSettingsNoUser => 'Logga in innan du importerar inställningar'; - @override String get shortcutsReset => 'Genvägar återställda till standard'; + @override String get shortcutsReset => 'Genvägarna har återställts till standard'; @override String get about => 'Om'; @override String get aboutDescription => 'Appinformation och licenser'; @override String get updates => 'Uppdateringar'; @@ -341,20 +343,20 @@ class _Translations$settings$sv extends Translations$settings$en { @override String get checkForUpdates => 'Kontrollera uppdateringar'; @override String get autoCheckUpdatesOnStartup => 'Kontrollera uppdateringar automatiskt vid start'; @override String get autoCheckUpdatesOnStartupDescription => 'Meddela när en uppdatering finns vid start'; - @override String get validationErrorEnterNumber => 'Vänligen ange ett giltigt nummer'; + @override String get validationErrorEnterNumber => 'Ange ett giltigt tal'; @override String validationErrorDuration({required Object min, required Object max, required Object unit}) => 'Tiden måste vara mellan ${min} och ${max} ${unit}'; - @override String shortcutAlreadyAssigned({required Object action}) => 'Genväg redan tilldelad ${action}'; - @override String shortcutUpdated({required Object action}) => 'Genväg uppdaterad för ${action}'; - @override String get saveFailed => 'Could not save changes. Try again.'; - @override String get autoSkip => 'Auto Hoppa Över'; - @override String get autoSkipIntro => 'Hoppa Över Intro Automatiskt'; - @override String get autoSkipIntroDescription => 'Hoppa automatiskt över intro-markörer efter några sekunder'; - @override String get autoSkipCredits => 'Hoppa Över Credits Automatiskt'; - @override String get autoSkipCreditsDescription => 'Hoppa automatiskt över credits och spela nästa avsnitt'; + @override String shortcutAlreadyAssigned({required Object action}) => 'Genvägen används redan för ${action}'; + @override String shortcutUpdated({required Object action}) => 'Genvägen för ${action} har uppdaterats'; + @override String get saveFailed => 'Det gick inte att spara ändringarna. Försök igen.'; + @override String get autoSkip => 'Hoppa över automatiskt'; + @override String get autoSkipIntro => 'Hoppa över intro automatiskt'; + @override String get autoSkipIntroDescription => 'Hoppa automatiskt över intromarkörer efter några sekunder'; + @override String get autoSkipCredits => 'Hoppa över eftertexter automatiskt'; + @override String get autoSkipCreditsDescription => 'Hoppa automatiskt över eftertexterna och spela nästa avsnitt'; @override String get forceSkipMarkerFallback => 'Tvinga reservmarkörer'; @override String get forceSkipMarkerFallbackDescription => 'Använd mönster i kapiteltitlar även när Plex har markörer'; - @override String get autoSkipDelay => 'Fördröjning Auto Hoppa Över'; - @override String autoSkipDelayDescription({required Object seconds}) => 'Vänta ${seconds} sekunder innan automatisk överhoppning'; + @override String get autoSkipDelay => 'Fördröjning före automatiskt hopp'; + @override String autoSkipDelayDescription({required Object seconds}) => 'Vänta ${seconds} sekunder innan innehållet hoppas över automatiskt'; @override String get introPattern => 'Intromarkörsmönster'; @override String get introPatternDescription => 'Reguljärt uttryck för att matcha intromarkörer i kapiteltitlar'; @override String get creditsPattern => 'Eftertextmarkörsmönster'; @@ -363,32 +365,32 @@ class _Translations$settings$sv extends Translations$settings$en { @override String get regex => 'Reguljärt uttryck'; @override String get downloads => 'Nedladdningar'; @override String get downloadLocationDescription => 'Välj var nedladdat innehåll ska lagras'; - @override String get downloadLocationDefault => 'Standard (App-lagring)'; - @override String get downloadLocationCustom => 'Anpassad Plats'; - @override String get selectFolder => 'Välj Mapp'; - @override String get resetToDefault => 'Återställ till Standard'; - @override String currentPath({required Object path}) => 'Nuvarande: ${path}'; + @override String get downloadLocationDefault => 'Standard (appens lagring)'; + @override String get downloadLocationCustom => 'Anpassad plats'; + @override String get selectFolder => 'Välj mapp'; + @override String get resetToDefault => 'Återställ standard'; + @override String currentPath({required Object path}) => 'Aktuell: ${path}'; @override String get downloadLocationChanged => 'Nedladdningsplats ändrad'; @override String get downloadLocationReset => 'Nedladdningsplats återställd till standard'; @override String get downloadLocationInvalid => 'Vald mapp är inte skrivbar'; @override String get downloadLocationPickerUnavailable => 'Mappval är inte tillgängligt på den här enheten'; - @override String get downloadOnWifiOnly => 'Ladda ner endast på WiFi'; - @override String get downloadOnWifiOnlyDescription => 'Förhindra nedladdningar vid användning av mobildata'; - @override String get autoRemoveWatchedDownloads => 'Ta bort sedda nedladdningar automatiskt'; - @override String get autoRemoveWatchedDownloadsDescription => 'Ta bort sedda nedladdningar automatiskt'; - @override String get cellularDownloadBlocked => 'Nedladdningar är blockerade via mobilnät. Använd WiFi eller ändra inställningen.'; - @override String get maxVolume => 'Maximal volym'; - @override String get maxVolumeDescription => 'Tillåt volym över 100% för tyst media'; - @override String maxVolumePercent({required Object percent}) => '${percent}%'; + @override String get downloadOnWifiOnly => 'Ladda endast ned via wifi'; + @override String get downloadOnWifiOnlyDescription => 'Förhindra nedladdningar via mobildata'; + @override String get autoRemoveWatchedDownloads => 'Ta automatiskt bort sedda nedladdningar'; + @override String get autoRemoveWatchedDownloadsDescription => 'Ta automatiskt bort sedda nedladdningar'; + @override String get cellularDownloadBlocked => 'Nedladdningar blockeras via mobilnätet. Använd wifi eller ändra inställningen.'; + @override String get maxVolume => 'Maxvolym'; + @override String get maxVolumeDescription => 'Tillåt att volymen höjs över 100 % för innehåll med låg ljudnivå'; + @override String maxVolumePercent({required Object percent}) => '${percent} %'; @override String get discordRichPresence => 'Discord Rich Presence'; @override String get discordRichPresenceDescription => 'Visa vad du tittar på i Discord'; @override String get services => 'Tjänster'; @override String get servicesDescription => 'Anslut Trakt, MyAnimeList, Seerr med mera'; @override String get manageLibrariesDescription => 'Ordna om och dölj bibliotek'; - @override String get companionRemoteServer => 'Companion Remote-server'; - @override String get companionRemoteServerDescription => 'Tillåt mobila enheter i ditt nätverk att styra denna app'; + @override String get companionRemoteServer => 'Server för fjärrkontroll'; + @override String get companionRemoteServerDescription => 'Tillåt att mobila enheter i nätverket styr appen'; @override String get autoPip => 'Automatisk bild-i-bild'; - @override String get autoPipDescription => 'Gå till bild-i-bild när du lämnar under uppspelning'; + @override String get autoPipDescription => 'Aktivera bild-i-bild om du lämnar appen under uppspelning'; @override String get matchContentFrameRate => 'Matcha innehållets bildfrekvens'; @override String get matchContentFrameRateDescription => 'Matcha skärmens uppdateringsfrekvens med videoinnehållet'; @override String get matchRefreshRate => 'Matcha uppdateringsfrekvens'; @@ -398,17 +400,17 @@ class _Translations$settings$sv extends Translations$settings$en { @override String get displaySwitchDelay => 'Fördröjning vid skärmbyte'; @override String get tunneledPlayback => 'Tunneluppspelning'; @override String get tunneledPlaybackDescription => 'Använd videotunnling. Inaktivera om HDR-uppspelning visar svart video.'; - @override String get audioPassthrough => 'Ljudgenomkoppling'; - @override String get audioPassthroughDescription => 'Skicka Dolby/DTS-ljud till din receiver eller TV utan omkodning och bevara surroundljudet. Stäng av om du inte har något ljud.'; - @override String get audioPassthroughDescriptionAppleTv => 'Lämnar Dolby Digital Plus (inkl. Atmos) till systemet som bitstream. DTS och TrueHD spelas fortfarande upp som flerkanals-PCM. Korta ljudavbrott kan förekomma vid sökning.'; + @override String get audioPassthrough => 'Ljudgenomströmning'; + @override String get audioPassthroughDescription => 'Skicka Dolby-/DTS-ljud till receivern eller TV:n utan omkodning så att surroundljudet bevaras. Stäng av om inget ljud hörs.'; + @override String get audioPassthroughDescriptionAppleTv => 'Använd Apples inbyggda Dolby-avkodare för Dolby Digital Plus, inklusive Atmos. DTS och TrueHD spelas fortfarande upp som flerkanaligt PCM-ljud. Stäng av om inget ljud hörs.'; @override String get audioDownmix => 'Nedmixning till stereo'; - @override String get audioDownmixDescription => 'Mixar ner surroundljud till två kanaler för stereohögtalare eller hörlurar'; + @override String get audioDownmixDescription => 'Mixa ned surroundljud till två kanaler för stereohögtalare eller hörlurar'; @override String get downmixCenterBoost => 'Förstärkning av centerkanal'; @override String downmixCenterBoostValue({required Object db}) => '${db} dB'; @override String get downmixCenterBoostLabel => 'Förstärkning (dB)'; @override String get downmixCenterBoostShort => 'dB'; @override String get audioDownmixNormalize => 'Normalisera ljudstyrka vid nedmixning'; - @override String get audioDownmixNormalizeDescription => 'Sänker mixen för att undvika klippning. Stäng av för att behålla originalvolymen (höga scener kan förvrängas).'; + @override String get audioDownmixNormalizeDescription => 'Sänk ljudnivån för att förhindra klippning. Stäng av för att behålla originalvolymen (starka ljud kan då bli förvrängda).'; @override String get atmosDiagnostics => 'Atmos-utgångstest'; @override String get atmosDiagnosticsDescription => 'Diagnostisera Dolby Atmos-utgången genom att spela testsignaler via systemspelaren'; @override String get atmosTestHlsAtmos => 'Apple Atmos-ström'; @@ -430,10 +432,10 @@ class _Translations$settings$sv extends Translations$settings$en { @override String get dvConversionNative => 'Inbyggt / inaktiverat'; @override String get dvConversionDv81 => 'P7 → P8.1'; @override String get dvConversionHevcStrip => 'P7 → HEVC'; - @override String get dvConversionAutoDescription => 'Använd enhetens kapabilitetsdetektering och normalt reservbeteende'; - @override String get dvConversionNativeDescription => 'Tvinga native DV7 och undertryck försök till DV-konvertering'; - @override String get dvConversionDv81Description => 'Tvinga inline RPU-konvertering till Dolby Vision profil 8.1'; - @override String get dvConversionHevcStripDescription => 'Ta bort Dolby Vision RPU/EL-lager och presentera vanlig HEVC'; + @override String get dvConversionAutoDescription => 'Identifiera enhetens funktioner och använd det normala reservbeteendet'; + @override String get dvConversionNativeDescription => 'Tvinga inbyggd DV7 och förhindra nya försök med DV-konvertering'; + @override String get dvConversionDv81Description => 'Tvinga direkt RPU-konvertering till Dolby Vision-profil 8.1'; + @override String get dvConversionHevcStripDescription => 'Ta bort Dolby Visions RPU-/EL-lager och använd vanlig HEVC'; @override String get requireProfileSelectionOnOpen => 'Fråga efter profil vid appstart'; @override String get requireProfileSelectionOnOpenDescription => 'Visa profilval varje gång appen öppnas'; @override String get forceTvMode => 'Tvinga TV-läge'; @@ -442,13 +444,13 @@ class _Translations$settings$sv extends Translations$settings$en { @override String get startInFullscreenDescription => 'Öppna Plezy i helskärm vid start'; @override String get exitFullscreenOnPlayerClose => 'Avsluta helskärm vid stängning av spelare'; @override String get exitFullscreenOnPlayerCloseDescription => 'Avslutar automatiskt helskärmsläge när videospelaren stängs'; - @override String get autoHidePerformanceOverlay => 'Dölj prestandaöverlagring automatiskt'; - @override String get autoHidePerformanceOverlayDescription => 'Tona prestandaöverlagringen med uppspelningskontrollerna'; + @override String get autoHidePerformanceOverlay => 'Dölj prestandainformation automatiskt'; + @override String get autoHidePerformanceOverlayDescription => 'Tona bort prestandainformationen tillsammans med uppspelningskontrollerna'; @override String get showNavBarLabels => 'Visa navigeringsfältets etiketter'; @override String get showNavBarLabelsDescription => 'Visa textetiketter under navigeringsfältets ikoner'; - @override String get startupSection => 'Startsektion'; - @override String get liveTvDefaultFavorites => 'Standard till favoritkanaler'; - @override String get liveTvDefaultFavoritesDescription => 'Visa bara favoritkanaler när du öppnar Live TV'; + @override String get startupSection => 'Startsida'; + @override String get liveTvDefaultFavorites => 'Öppna med favoriter'; + @override String get liveTvDefaultFavoritesDescription => 'Visa endast favoritkanaler när Live-TV öppnas'; @override String get display => 'Skärm'; @override String get homeScreen => 'Hemskärm'; @override String get navigation => 'Navigering'; @@ -456,7 +458,7 @@ class _Translations$settings$sv extends Translations$settings$en { @override String get content => 'Innehåll'; @override String get player => 'Spelare'; @override String get subtitlesAndConfig => 'Undertexter och konfiguration'; - @override String get seekAndTiming => 'Sök och timing'; + @override String get seekAndTiming => 'Spolning och tidsinställningar'; @override String get behavior => 'Beteende'; } @@ -510,8 +512,8 @@ class _Translations$fileInfo$sv extends Translations$fileInfo$en { @override String get bitDepth => 'Bitdjup'; @override String get colorSpace => 'Färgrymd'; @override String get colorRange => 'Färgområde'; - @override String get colorPrimaries => 'Färggrunder'; - @override String get chromaSubsampling => 'Kroma-undersampling'; + @override String get colorPrimaries => 'Färgprimärer'; + @override String get chromaSubsampling => 'Krominansnedsampling'; @override String get channels => 'Kanaler'; @override String get subtitles => 'Undertexter'; @override String get overallBitrate => 'Total bithastighet'; @@ -520,7 +522,7 @@ class _Translations$fileInfo$sv extends Translations$fileInfo$en { @override String get container => 'Container'; @override String get duration => 'Varaktighet'; @override String get optimizedForStreaming => 'Optimerad för streaming'; - @override String get has64bitOffsets => '64-bit offset'; + @override String get has64bitOffsets => '64-bitars offsetvärden'; } // Path: mediaMenu @@ -539,10 +541,10 @@ class _Translations$mediaMenu$sv extends Translations$mediaMenu$en { @override String get shuffleNotAvailableOffline => 'Blandad uppspelning är inte tillgänglig offline'; @override String get fileInfo => 'Filinformation'; @override String get deleteFromServer => 'Ta bort från servern'; - @override String get confirmDelete => 'Ta bort detta media och dess filer från din server?'; - @override String get deleteMultipleWarning => 'Detta inkluderar alla avsnitt och deras filer.'; - @override String get mediaDeletedSuccessfully => 'Mediaobjekt borttaget'; - @override String get mediaFailedToDelete => 'Kunde inte ta bort mediaobjekt'; + @override String get confirmDelete => 'Ta bort det här medieobjektet och dess filer från servern?'; + @override String get deleteMultipleWarning => 'Detta omfattar alla avsnitt och deras filer.'; + @override String get mediaDeletedSuccessfully => 'Medieobjektet har tagits bort'; + @override String get mediaFailedToDelete => 'Det gick inte att ta bort medieobjektet'; @override String get rate => 'Betygsätt'; @override String get playFromBeginning => 'Spela från början'; @override String get playVersion => 'Spela version...'; @@ -576,9 +578,9 @@ class _Translations$accessibility$sv extends Translations$accessibility$en { @override String mediaCardEpisode({required Object title, required Object episodeInfo}) => '${title}, ${episodeInfo}'; @override String mediaCardSeason({required Object title, required Object seasonInfo}) => '${title}, ${seasonInfo}'; @override String get mediaCardWatched => 'sedd'; - @override String mediaCardPartiallyWatched({required Object percent}) => '${percent} procent sedd'; + @override String mediaCardPartiallyWatched({required Object percent}) => 'sett till ${percent} procent'; @override String get mediaCardUnwatched => 'osedd'; - @override String get tapToPlay => 'Tryck för att spela'; + @override String get tapToPlay => 'Tryck för att spela upp'; @override String get decrease => 'Minska'; @override String get increase => 'Öka'; @override String decreaseValue({required Object label}) => 'Minska ${label}'; @@ -590,7 +592,7 @@ class _Translations$accessibility$sv extends Translations$accessibility$en { @override String get expandText => 'Expandera text'; @override String get collapseText => 'Fäll ihop text'; @override String get alphabetNavigation => 'Alfabetisk navigering'; - @override String get alphabetScrollHint => 'Svep upp eller ned för att flytta en bokstav'; + @override String get alphabetScrollHint => 'Svep uppåt eller nedåt för att gå mellan bokstäver'; @override String rowColumnPosition({required Object row, required Object rowCount, required Object column, required Object columnCount}) => 'Rad ${row} av ${rowCount}, kolumn ${column} av ${columnCount}'; @override String rowPosition({required Object row, required Object rowCount}) => 'Rad ${row} av ${rowCount}'; } @@ -627,17 +629,17 @@ class _Translations$videoControls$sv extends Translations$videoControls$en { // Translations @override String get audioLabel => 'Ljud'; @override String get subtitlesLabel => 'Undertexter'; - @override String get resetToZero => 'Återställ till 0ms'; + @override String get resetToZero => 'Återställ till 0 ms'; @override String addTime({required Object amount, required Object unit}) => '+${amount}${unit}'; @override String minusTime({required Object amount, required Object unit}) => '-${amount}${unit}'; @override String playsLater({required Object label}) => '${label} spelas senare'; @override String playsEarlier({required Object label}) => '${label} spelas tidigare'; - @override String get noOffset => 'Ingen offset'; - @override String get letterbox => 'Letterbox'; - @override String get fillScreen => 'Fyll skärm'; - @override String get stretch => 'Sträck'; - @override String get lockRotation => 'Lås rotation'; - @override String get unlockRotation => 'Lås upp rotation'; + @override String get noOffset => 'Ingen förskjutning'; + @override String get letterbox => 'Brevlådeformat'; + @override String get fillScreen => 'Fyll skärmen'; + @override String get stretch => 'Sträck ut'; + @override String get lockRotation => 'Lås skärmrotationen'; + @override String get unlockRotation => 'Lås upp skärmrotationen'; @override String get timerActive => 'Timer aktiv'; @override String playbackWillPauseIn({required Object duration}) => 'Uppspelningen pausas om ${duration}'; @override String get sleepTimerEndOfVideo => 'Slutet av aktuell video'; @@ -651,14 +653,16 @@ class _Translations$videoControls$sv extends Translations$videoControls$en { @override String get playNext => 'Spela nästa'; @override String get playButton => 'Spela'; @override String get pauseButton => 'Pausa'; + @override String get showPlaybackControls => 'Visa uppspelningskontroller'; + @override String get hidePlaybackControls => 'Dölj uppspelningskontroller'; @override String seekBackwardButton({required Object seconds}) => 'Spola bakåt ${seconds} sekunder'; @override String seekForwardButton({required Object seconds}) => 'Spola framåt ${seconds} sekunder'; @override String get previousButton => 'Föregående avsnitt'; @override String get nextButton => 'Nästa avsnitt'; @override String get previousChapterButton => 'Föregående kapitel'; @override String get nextChapterButton => 'Nästa kapitel'; - @override String get muteButton => 'Tysta'; - @override String get unmuteButton => 'Slå på ljud'; + @override String get muteButton => 'Stäng av ljudet'; + @override String get unmuteButton => 'Slå på ljudet'; @override String get settingsButton => 'Uppspelningsinställningar'; @override String get tracksButton => 'Ljud och undertexter'; @override String get chaptersButton => 'Kapitel'; @@ -669,7 +673,7 @@ class _Translations$videoControls$sv extends Translations$videoControls$en { @override String qualityPresetLabel({required Object resolution, required Object bitrate}) => '${resolution}p ${bitrate} Mbps'; @override String get transcodeUnavailableFallback => 'Transkodning otillgänglig — spelar upp i originalkvalitet'; @override String get subtitleUnavailableFallback => 'De valda undertexterna kunde inte läsas in — uppspelningen fortsätter utan undertexter'; - @override String get pipButton => 'Bild-i-bild läge'; + @override String get pipButton => 'Bild-i-bild-läge'; @override String get aspectRatioButton => 'Bildförhållande'; @override String get ambientLighting => 'Ambientbelysning'; @override String get fullscreenButton => 'Aktivera helskärm'; @@ -681,8 +685,8 @@ class _Translations$videoControls$sv extends Translations$videoControls$en { @override String get longPressToUnlock => 'Tryck länge för att låsa upp'; @override String get timelineSlider => 'Videotidslinje'; @override String get volumeSlider => 'Volymnivå'; - @override String endsAt({required Object time}) => 'Slutar ${time}'; - @override String get pipActive => 'Spelar i bild-i-bild'; + @override String endsAt({required Object time}) => 'Slutar kl. ${time}'; + @override String get pipActive => 'Spelas upp i bild-i-bild'; @override String get pipFailed => 'Bild-i-bild kunde inte starta'; @override String get screenshotSaved => 'Skärmbild sparad'; @override String zoomPercent({required Object percent}) => 'Zoom ${percent}%'; @@ -697,9 +701,9 @@ class _Translations$videoControls$sv extends Translations$videoControls$en { @override String get noSubtitlesAvailable => 'Inga undertexter tillgängliga'; @override String get noAudioTracksAvailable => 'Inga ljudspår tillgängliga'; @override String get noTracksAvailable => 'Inga spår tillgängliga'; - @override String get subtitleDownloaded => 'Undertext nedladdad'; - @override String get subtitleDownloadedNotApplied => 'Undertexten hämtades, men kunde inte väljas'; - @override String get subtitleDownloadFailed => 'Kunde inte ladda ner undertext'; + @override String get subtitleDownloaded => 'Undertexten har laddats ned'; + @override String get subtitleDownloadedNotApplied => 'Undertexten laddades ned men kunde inte väljas'; + @override String get subtitleDownloadFailed => 'Det gick inte att ladda ned undertexten'; @override String get searchLanguages => 'Sök språk...'; } @@ -721,14 +725,14 @@ class _Translations$messages$sv extends Translations$messages$en { ); @override String get removedFromContinueWatching => 'Borttagen från Fortsätt titta'; @override String errorLoading({required Object error}) => 'Fel: ${error}'; - @override String get streamInterrupted => 'Uppspelningen avbröts. Tryck på play eller spola för att försöka igen.'; - @override String get liveStreamInterrupted => 'Livestreamen avbröts. Tryck på play för att försöka igen.'; - @override String get fileInfoNotAvailable => 'Filinformation inte tillgänglig'; - @override String get playbackAuthenticationRequired => 'Sign in to the media server again to play this item.'; - @override String get playbackServerUnavailable => 'The media server is unavailable. Try again later.'; - @override String get playbackDataInvalid => 'The server returned invalid playback information.'; - @override String get playbackCancelled => 'Playback was cancelled.'; - @override String get playbackFailed => 'Playback could not be started.'; + @override String get streamInterrupted => 'Strömmen avbröts. Tryck på uppspelning eller spola för att försöka igen.'; + @override String get liveStreamInterrupted => 'Liveströmmen avbröts. Tryck på uppspelning för att försöka igen.'; + @override String get fileInfoNotAvailable => 'Filinformation är inte tillgänglig'; + @override String get playbackAuthenticationRequired => 'Logga in på medieservern igen för att spela upp objektet.'; + @override String get playbackServerUnavailable => 'Medieservern är inte tillgänglig. Försök igen senare.'; + @override String get playbackDataInvalid => 'Servern returnerade ogiltig uppspelningsinformation.'; + @override String get playbackCancelled => 'Uppspelningen avbröts.'; + @override String get playbackFailed => 'Det gick inte att starta uppspelningen.'; @override String errorLoadingFileInfo({required Object error}) => 'Fel vid laddning av filinformation: ${error}'; @override String get errorLoadingSeries => 'Fel vid laddning av serie'; @override String get musicNotSupported => 'Musikuppspelning stöds inte ännu'; @@ -740,11 +744,11 @@ class _Translations$messages$sv extends Translations$messages$en { @override String get logsCopied => 'Loggar kopierade till urklipp'; @override String get noLogsAvailable => 'Inga loggar tillgängliga'; @override String libraryScanning({required Object title}) => 'Skannar "${title}"...'; - @override String libraryScanStarted({required Object title}) => 'Biblioteksskanning startad för "${title}"'; - @override String libraryScanFailed({required Object error}) => 'Misslyckades att skanna bibliotek: ${error}'; + @override String libraryScanStarted({required Object title}) => 'Biblioteksskanningen har startat för "${title}"'; + @override String libraryScanFailed({required Object error}) => 'Det gick inte att skanna biblioteket: ${error}'; @override String metadataRefreshing({required Object title}) => 'Uppdaterar metadata för "${title}"...'; - @override String metadataRefreshStarted({required Object title}) => 'Metadata-uppdatering startad för "${title}"'; - @override String metadataRefreshFailed({required Object error}) => 'Misslyckades att uppdatera metadata: ${error}'; + @override String metadataRefreshStarted({required Object title}) => 'Metadatauppdateringen har startat för "${title}"'; + @override String metadataRefreshFailed({required Object error}) => 'Det gick inte att uppdatera metadata: ${error}'; @override String get logoutConfirm => 'Är du säker på att du vill logga ut?'; @override String get noSeasonsFound => 'Inga säsonger hittades'; @override String get seasonsLoadFailed => 'Det gick inte att läsa in säsonger'; @@ -754,13 +758,13 @@ class _Translations$messages$sv extends Translations$messages$en { @override String get noResultsFound => 'Inga resultat hittades'; @override String sleepTimerSet({required Object label}) => 'Sovtimer inställd för ${label}'; @override String get noItemsAvailable => 'Inga objekt tillgängliga'; - @override String get failedToCreatePlayQueueNoItems => 'Det gick inte att skapa uppspelningskö – inga objekt'; - @override String failedPlayback({required Object action, required Object error}) => 'Kunde inte ${action}: ${error}'; + @override String get failedToCreatePlayQueueNoItems => 'Det gick inte att skapa en uppspelningskö – inga objekt'; + @override String failedPlayback({required Object action, required Object error}) => 'Det gick inte att ${action}: ${error}'; @override String get switchingToCompatiblePlayer => 'Byter till kompatibel spelare...'; @override String get serverLimitTitle => 'Uppspelningen misslyckades'; @override String get serverLimitBody => 'Serverfel (HTTP 500). En bandbredds-/transkodningsgräns avvisade troligen sessionen. Be ägaren justera den.'; - @override String get logsUploaded => 'Loggar uppladdade'; - @override String get logsUploadFailed => 'Uppladdning av loggar misslyckades'; + @override String get logsUploaded => 'Loggarna har laddats upp'; + @override String get logsUploadFailed => 'Det gick inte att ladda upp loggarna'; @override String get logId => 'Logg-ID'; } @@ -778,7 +782,7 @@ class _Translations$subtitlingStyling$sv extends Translations$subtitlingStyling$ @override String get textColor => 'Textfärg'; @override String get borderSize => 'Kantstorlek'; @override String get borderColor => 'Kantfärg'; - @override String get backgroundOpacity => 'Bakgrundsopacitet'; + @override String get backgroundOpacity => 'Bakgrundens opacitet'; @override String get backgroundColor => 'Bakgrundsfärg'; @override String get position => 'Position'; @override String get assOverride => 'ASS-åsidosättning'; @@ -801,8 +805,8 @@ class _Translations$mpvConfig$sv extends Translations$mpvConfig$en { final TranslationsSv _root; // ignore: unused_field // Translations - @override String get title => 'mpv-konfiguration'; - @override String get description => 'Avancerade videospelares inställningar'; + @override String get title => 'mpv.conf'; + @override String get description => 'Avancerade inställningar för videospelaren'; @override String get presets => 'Förval'; @override String get noPresets => 'Inga sparade förval'; @override String get saveAsPreset => 'Spara som förval...'; @@ -847,13 +851,13 @@ class _Translations$profiles$sv extends Translations$profiles$en { @override String get signedOutPlex => 'Utloggad från Plex.'; @override String get signOutFailed => 'Utloggningen misslyckades.'; @override String get sectionTitle => 'Profiler'; - @override String get summarySingle => 'Lägg till profiler för att blanda hanterade användare och lokala identiteter'; + @override String get summarySingle => 'Lägg till profiler för att kombinera hanterade användare och lokala identiteter'; @override String summaryMultipleWithActive({required Object count, required Object activeName}) => '${count} profiler · aktiv: ${activeName}'; @override String summaryMultiple({required Object count}) => '${count} profiler'; - @override String get removeConnectionTitle => 'Ta bort anslutning?'; - @override String removeConnectionMessage({required Object displayName, required Object connectionLabel}) => 'Ta bort ${displayName}s åtkomst till ${connectionLabel}. Andra profiler behåller den.'; - @override String get deleteProfileTitle => 'Ta bort profil?'; - @override String deleteProfileMessage({required Object displayName}) => 'Ta bort ${displayName} och dess anslutningar. Servrar förblir tillgängliga.'; + @override String get removeConnectionTitle => 'Ta bort anslutningen?'; + @override String removeConnectionMessage({required Object connectionLabel, required Object displayName}) => 'Ta bort åtkomsten till ${connectionLabel} för ${displayName}. Andra profiler behåller den.'; + @override String get deleteProfileTitle => 'Ta bort profilen?'; + @override String deleteProfileMessage({required Object displayName}) => 'Ta bort ${displayName} och profilens anslutningar. Servrarna förblir tillgängliga.'; @override String get profileNameLabel => 'Profilnamn'; @override String get pinProtectionLabel => 'PIN-skydd'; @override String get pinManagedByPlex => 'PIN hanteras av Plex. Redigera på plex.tv.'; @@ -879,7 +883,7 @@ class _Translations$profiles$sv extends Translations$profiles$en { @override String get borrowExplain => 'Låna en annan profils anslutning. PIN-skyddade profiler kräver en PIN.'; @override String get borrowEmpty => 'Inget att låna ännu.'; @override String get borrowEmptySubtitle => 'Anslut Plex eller Jellyfin till en annan profil först.'; - @override String get borrowLoadFailed => 'Available connections could not be loaded. Try again.'; + @override String get borrowLoadFailed => 'Det gick inte att läsa in tillgängliga anslutningar. Försök igen.'; @override String borrowFromProfile({required Object displayName}) => 'Från ${displayName}'; @override String get borrowConnectionBorrowed => 'Anslutning lånad.'; @override String get borrowFailed => 'Kunde inte låna anslutningen.'; @@ -889,9 +893,9 @@ class _Translations$profiles$sv extends Translations$profiles$en { @override String get failedToLoadHomeUsers => 'Kunde inte läsa in dina Plex Home-användare. Kontrollera anslutningen och försök igen.'; @override String get failedToVerifyPin => 'Kunde inte verifiera PIN.'; @override String get newProfile => 'Ny profil'; - @override String get profileNameHint => 't.ex. Gäster, Barn, Familjerum'; + @override String get profileNameHint => 't.ex. Gäster, Barn eller Familjerum'; @override String get pinProtectionOptional => 'PIN-skydd (valfritt)'; - @override String get pinExplain => '4-siffrig PIN krävs för att byta profiler.'; + @override String get pinExplain => 'En fyrsiffrig PIN-kod krävs för att byta profil.'; @override String get continueButton => 'Fortsätt'; @override String get pinsDontMatch => 'PIN-koderna stämmer inte överens'; } @@ -911,7 +915,7 @@ class _Translations$connections$sv extends Translations$connections$en { @override String sessionExpiredMany({required Object count}) => 'Sessionen har gått ut för ${count} servrar'; @override String get signInAgain => 'Logga in igen'; @override String get editJellyfinTitle => 'Redigera Jellyfin-anslutning'; - @override String editJellyfinIntro({required Object serverName}) => 'Lägg till eller ta bort URL:er för ${serverName}. Plezy använder den nåbara URL:en med lägst latens.'; + @override String editJellyfinIntro({required Object serverName}) => 'Lägg till eller ta bort URL:er för ${serverName}. Plezy använder den nåbara URL som har lägst latens.'; } // Path: discover @@ -923,7 +927,7 @@ class _Translations$discover$sv extends Translations$discover$en { // Translations @override String get title => 'Upptäck'; @override String get noContentAvailable => 'Inget innehåll tillgängligt'; - @override String get addMediaToLibraries => 'Lägg till media till dina bibliotek'; + @override String get addMediaToLibraries => 'Lägg till medieinnehåll i dina bibliotek'; @override String get continueWatching => 'Fortsätt titta'; @override String continueWatchingIn({required Object library}) => 'Fortsätt titta i ${library}'; @override String get nextUp => 'Nästa'; @@ -936,13 +940,13 @@ class _Translations$discover$sv extends Translations$discover$en { @override String playEpisode({required Object season, required Object episode}) => 'S${season}E${episode}'; @override String get overview => 'Översikt'; @override String get cast => 'Rollbesättning'; - @override String get extras => 'Trailers och Extra'; + @override String get extras => 'Trailrar och extramaterial'; @override String get studio => 'Studio'; - @override String get rating => 'Åldersgräns'; + @override String get rating => 'Betyg'; @override String get movie => 'Film'; @override String get tvShow => 'TV-serie'; @override String minutesLeft({required Object minutes}) => '${minutes} min kvar'; - @override String get moreLikeThis => 'Mer som detta'; + @override String get moreLikeThis => 'Mer liknande innehåll'; } // Path: errors @@ -952,16 +956,16 @@ class _Translations$errors$sv extends Translations$errors$en { final TranslationsSv _root; // ignore: unused_field // Translations - @override String searchFailed({required Object error}) => 'Sökning misslyckades: ${error}'; - @override String connectionTimeout({required Object context}) => 'Anslutnings-timeout vid laddning ${context}'; - @override String get connectionFailed => 'Kan inte ansluta till mediaserver'; + @override String searchFailed({required Object error}) => 'Sökningen misslyckades: ${error}'; + @override String connectionTimeout({required Object context}) => 'Anslutningen tog för lång tid när ${context} lästes in'; + @override String get connectionFailed => 'Det gick inte att ansluta till medieservern'; @override String unableToLoad({required Object context}) => 'Det gick inte att läsa in ${context}. Försök igen.'; - @override String get noClientAvailable => 'Ingen klient tillgänglig'; - @override String get pleaseEnterToken => 'Vänligen ange en token'; + @override String get noClientAvailable => 'Ingen klient är tillgänglig'; + @override String get pleaseEnterToken => 'Ange en token'; @override String get invalidToken => 'Ogiltig token'; - @override String failedToVerifyToken({required Object error}) => 'Misslyckades att verifiera token: ${error}'; - @override String failedToSwitchProfile({required Object displayName}) => 'Misslyckades att byta till ${displayName}'; - @override String failedToDeleteProfile({required Object displayName}) => 'Misslyckades att ta bort ${displayName}'; + @override String failedToVerifyToken({required Object error}) => 'Det gick inte att verifiera token: ${error}'; + @override String failedToSwitchProfile({required Object displayName}) => 'Det gick inte att byta till ${displayName}'; + @override String failedToDeleteProfile({required Object displayName}) => 'Det gick inte att ta bort ${displayName}'; @override String get failedToRate => 'Det gick inte att uppdatera betyget'; } @@ -980,12 +984,12 @@ class _Translations$libraries$sv extends Translations$libraries$en { @override String get analyzeLibrary => 'Analysera bibliotek'; @override String get refreshMetadata => 'Uppdatera metadata'; @override String get emptyTrash => 'Töm papperskorg'; - @override String emptyingTrash({required Object title}) => 'Tömmer papperskorg för "${title}"...'; - @override String trashEmptied({required Object title}) => 'Papperskorg tömd för "${title}"'; - @override String failedToEmptyTrash({required Object error}) => 'Misslyckades att tömma papperskorg: ${error}'; + @override String emptyingTrash({required Object title}) => 'Tömmer papperskorgen för "${title}"...'; + @override String trashEmptied({required Object title}) => 'Papperskorgen har tömts för "${title}"'; + @override String failedToEmptyTrash({required Object error}) => 'Det gick inte att tömma papperskorgen: ${error}'; @override String analyzing({required Object title}) => 'Analyserar "${title}"...'; - @override String analysisStarted({required Object title}) => 'Analys startad för "${title}"'; - @override String failedToAnalyze({required Object error}) => 'Misslyckades att analysera bibliotek: ${error}'; + @override String analysisStarted({required Object title}) => 'Analysen har startat för "${title}"'; + @override String failedToAnalyze({required Object error}) => 'Det gick inte att analysera biblioteket: ${error}'; @override String get noLibrariesFound => 'Inga bibliotek hittades'; @override String get allLibrariesHidden => 'Alla bibliotek är dolda'; @override String hiddenLibrariesCount({required Object count}) => 'Dolda bibliotek (${count})'; @@ -1027,7 +1031,7 @@ class _Translations$about$sv extends Translations$about$en { // Translations @override String get title => 'Om'; - @override String get openSourceLicenses => 'Öppen källkod-licenser'; + @override String get openSourceLicenses => 'Licenser för öppen källkod'; @override String versionLabel({required Object version}) => 'Version ${version}'; @override String get appDescription => 'En vacker Plex- och Jellyfin-klient för Flutter'; @override String get viewLicensesDescription => 'Visa licenser för tredjepartsbibliotek'; @@ -1041,7 +1045,7 @@ class _Translations$serverSelection$sv extends Translations$serverSelection$en { // Translations @override String noServersFoundForAccount({required Object username, required Object email}) => 'Inga servrar hittades för ${username} (${email})'; - @override String failedToLoadServers({required Object error}) => 'Misslyckades att ladda servrar: ${error}'; + @override String failedToLoadServers({required Object error}) => 'Det gick inte att läsa in servrar: ${error}'; } // Path: hubDetail @@ -1053,7 +1057,7 @@ class _Translations$hubDetail$sv extends Translations$hubDetail$en { // Translations @override String get title => 'Titel'; @override String get releaseYear => 'Utgivningsår'; - @override String get dateAdded => 'Datum tillagd'; + @override String get dateAdded => 'Tilläggsdatum'; @override String get rating => 'Betyg'; @override String get noItemsFound => 'Inga objekt hittades'; } @@ -1091,7 +1095,7 @@ class _Translations$navigation$sv extends Translations$navigation$en { // Translations @override String get libraries => 'Bibliotek'; - @override String get downloads => 'Nerladdat'; + @override String get downloads => 'Nedladdningar'; @override String get liveTv => 'Live-TV'; @override String get explore => 'Utforska'; } @@ -1137,11 +1141,11 @@ class _Translations$liveTv$sv extends Translations$liveTv$en { @override String get title => 'Live-TV'; @override String get guide => 'Programguide'; @override String get noChannels => 'Inga kanaler tillgängliga'; - @override String get noDvr => 'Ingen DVR konfigurerad på någon server'; - @override String get serverUnavailable => 'Live-tv-servern är inte tillgänglig.'; - @override String get serverNotConnected => 'Live-tv-servern är inte ansluten.'; - @override String get noPrograms => 'Ingen programdata tillgänglig'; - @override String get liveStreamFailed => 'Liveström misslyckades'; + @override String get noDvr => 'Ingen DVR har konfigurerats på någon server'; + @override String get serverUnavailable => 'Live-TV-servern är inte tillgänglig.'; + @override String get serverNotConnected => 'Live-TV-servern är inte ansluten.'; + @override String get noPrograms => 'Ingen programinformation är tillgänglig'; + @override String get liveStreamFailed => 'Liveströmmen kunde inte startas'; @override String get unknownProgram => 'Okänt program'; @override String get unknownHub => 'Okänt'; @override String get unknownError => 'Okänt fel'; @@ -1163,7 +1167,7 @@ class _Translations$liveTv$sv extends Translations$liveTv$en { @override String get favorites => 'Favoriter'; @override String get reorderFavorites => 'Ordna om favoriter'; @override String get favoritesLoadFailed => 'Det gick inte att läsa in favoriter. Kontrollera anslutningen och försök igen.'; - @override String get favoritesUpdateFailed => 'Could not update favorites. Check your connection and try again.'; + @override String get favoritesUpdateFailed => 'Det gick inte att uppdatera favoriterna. Kontrollera anslutningen och försök igen.'; @override String get joinSession => 'Gå med i pågående session'; @override String watchFromStart({required Object minutes}) => 'Titta från början (${minutes} min sedan)'; @override String get watchLive => 'Titta live'; @@ -1190,16 +1194,16 @@ class _Translations$liveTv$sv extends Translations$liveTv$en { @override String get recordingFailed => 'Det gick inte att schemalägga inspelning'; @override String get recordingTargetMissing => 'Det gick inte att hitta inspelningsbibliotek'; @override String get recordNotAvailable => 'Inspelning är inte tillgänglig för detta program'; - @override String get recordingCancelled => 'Inspelning avbruten'; - @override String get recordingRuleDeleted => 'Inspelningsregel borttagen'; + @override String get recordingCancelled => 'Inspelningen har avbrutits'; + @override String get recordingRuleDeleted => 'Inspelningsregeln har tagits bort'; @override String get processRecordingRules => 'Utvärdera regler igen'; @override String get recordingInProgress => 'Spelar in nu'; @override String recordingsCount({required Object count}) => '${count} schemalagda'; @override String get editRule => 'Redigera regel'; @override String get editRuleAction => 'Redigera'; @override String get recordingRuleUpdated => 'Inspelningsregel uppdaterad'; - @override String get guideReloadRequested => 'Begärde guidens uppdatering'; - @override String get rulesProcessRequested => 'Begärde regelutvärdering'; + @override String get guideReloadRequested => 'Uppdatering av programguiden har begärts'; + @override String get rulesProcessRequested => 'Ny regelutvärdering har begärts'; @override String get recordShow => 'Spela in program'; } @@ -1221,14 +1225,14 @@ class _Translations$collections$sv extends Translations$collections$en { @override String get selectCollection => 'Välj samling'; @override String get collectionName => 'Samlingsnamn'; @override String get enterCollectionName => 'Ange samlingsnamn'; - @override String get addedToCollection => 'Tillagd i samling'; - @override String get errorAddingToCollection => 'Fel vid tillägg i samling'; - @override String get created => 'Samling skapad'; - @override String get removeFromCollection => 'Ta bort från samling'; - @override String removeFromCollectionConfirm({required Object title}) => 'Ta bort "${title}" från denna samling?'; - @override String get removedFromCollection => 'Borttagen från samling'; - @override String get removeFromCollectionFailed => 'Misslyckades med att ta bort från samling'; - @override String removeFromCollectionError({required Object error}) => 'Fel vid borttagning från samling: ${error}'; + @override String get addedToCollection => 'Objektet har lagts till i samlingen'; + @override String get errorAddingToCollection => 'Det gick inte att lägga till objektet i samlingen'; + @override String get created => 'Samlingen har skapats'; + @override String get removeFromCollection => 'Ta bort från samlingen'; + @override String removeFromCollectionConfirm({required Object title}) => 'Ta bort "${title}" från den här samlingen?'; + @override String get removedFromCollection => 'Objektet har tagits bort från samlingen'; + @override String get removeFromCollectionFailed => 'Det gick inte att ta bort objektet från samlingen'; + @override String removeFromCollectionError({required Object error}) => 'Fel när objektet skulle tas bort från samlingen: ${error}'; @override String get searchCollections => 'Sök samlingar...'; } @@ -1253,18 +1257,18 @@ class _Translations$playlists$sv extends Translations$playlists$en { @override String get emptyPlaylist => 'Denna spellista är tom'; @override String get deleteConfirm => 'Ta bort spellista?'; @override String deleteMessage({required Object name}) => 'Är du säker på att du vill ta bort "${name}"?'; - @override String get created => 'Spellista skapad'; - @override String get deleted => 'Spellista borttagen'; - @override String get itemAdded => 'Tillagd i spellista'; - @override String get itemRemoved => 'Borttagen från spellista'; + @override String get created => 'Spellistan har skapats'; + @override String get deleted => 'Spellistan har tagits bort'; + @override String get itemAdded => 'Objektet har lagts till i spellistan'; + @override String get itemRemoved => 'Objektet har tagits bort från spellistan'; @override String get selectPlaylist => 'Välj spellista'; @override String get searchPlaylists => 'Sök i spellistor...'; - @override String get errorCreating => 'Det gick inte att skapa spellista'; - @override String get errorDeleting => 'Det gick inte att ta bort spellista'; - @override String get errorLoading => 'Det gick inte att ladda spellistor'; - @override String get errorAdding => 'Det gick inte att lägga till i spellista'; - @override String get errorReordering => 'Det gick inte att omordna spellisteobjekt'; - @override String get errorRemoving => 'Det gick inte att ta bort från spellista'; + @override String get errorCreating => 'Det gick inte att skapa spellistan'; + @override String get errorDeleting => 'Det gick inte att ta bort spellistan'; + @override String get errorLoading => 'Det gick inte att läsa in spellistor'; + @override String get errorAdding => 'Det gick inte att lägga till objektet i spellistan'; + @override String get errorReordering => 'Det gick inte att flytta objektet i spellistan'; + @override String get errorRemoving => 'Det gick inte att ta bort objektet från spellistan'; } // Path: music @@ -1308,21 +1312,21 @@ class _Translations$watchTogether$sv extends Translations$watchTogether$en { final TranslationsSv _root; // ignore: unused_field // Translations - @override String get title => 'Titta Tillsammans'; + @override String get title => 'Titta tillsammans'; @override String get description => 'Titta på innehåll synkroniserat med vänner och familj'; - @override String get createSession => 'Skapa Session'; + @override String get createSession => 'Skapa session'; @override String get creating => 'Skapar...'; - @override String get joinSession => 'Gå med i Session'; + @override String get joinSession => 'Gå med i session'; @override String get joining => 'Ansluter...'; - @override String get controlMode => 'Kontrollläge'; + @override String get controlMode => 'Kontrolläge'; @override String get controlModeQuestion => 'Vem kan styra uppspelningen?'; - @override String get hostOnly => 'Endast Värd'; + @override String get hostOnly => 'Endast värden'; @override String get anyone => 'Alla'; - @override String get hostingSession => 'Värd för Session'; - @override String get inSession => 'I Session'; + @override String get hostingSession => 'Värd för sessionen'; + @override String get inSession => 'I en session'; @override String get sessionCode => 'Sessionskod'; - @override String get openSessionControls => 'Öppna sessionskontroller för Titta Tillsammans'; - @override String get copySessionCode => 'Kopiera sessionskod'; + @override String get openSessionControls => 'Öppna sessionskontroller för Titta tillsammans'; + @override String get copySessionCode => 'Kopiera sessionskoden'; @override String get hostControlsPlayback => 'Värden styr uppspelningen'; @override String get anyoneCanControl => 'Alla kan styra uppspelningen'; @override String get hostControls => 'Värd styr'; @@ -1332,10 +1336,10 @@ class _Translations$watchTogether$sv extends Translations$watchTogether$en { @override String get hostBadge => 'VÄRD'; @override String get youAreHost => 'Du är värden'; @override String get watchingWithOthers => 'Tittar med andra'; - @override String get endSession => 'Avsluta Session'; - @override String get leaveSession => 'Lämna Session'; - @override String get endSessionQuestion => 'Avsluta Session?'; - @override String get leaveSessionQuestion => 'Lämna Session?'; + @override String get endSession => 'Avsluta session'; + @override String get leaveSession => 'Lämna session'; + @override String get endSessionQuestion => 'Avsluta sessionen?'; + @override String get leaveSessionQuestion => 'Lämna sessionen?'; @override String get endSessionConfirm => 'Detta avslutar sessionen för alla deltagare.'; @override String get leaveSessionConfirm => 'Du kommer att tas bort från sessionen.'; @override String get endSessionConfirmOverlay => 'Detta avslutar tittarsessionen för alla deltagare.'; @@ -1343,17 +1347,17 @@ class _Translations$watchTogether$sv extends Translations$watchTogether$en { @override String get end => 'Avsluta'; @override String get leave => 'Lämna'; @override String get syncing => 'Synkroniserar...'; - @override String get joinWatchSession => 'Gå med i Tittarsession'; - @override String get enterCodeHint => 'Ange 5-teckens kod'; + @override String get joinWatchSession => 'Gå med i tittarsession'; + @override String get enterCodeHint => 'Ange en kod med 5 tecken'; @override String get pasteFromClipboard => 'Klistra in från urklipp'; - @override String get pleaseEnterCode => 'Vänligen ange en sessionskod'; - @override String get codeMustBe5Chars => 'Sessionskod måste vara 5 tecken'; + @override String get pleaseEnterCode => 'Ange en sessionskod'; + @override String get codeMustBe5Chars => 'Sessionskoden måste bestå av 5 tecken'; @override String get joinInstructions => 'Ange värdens sessionskod för att gå med.'; - @override String get failedToCreate => 'Det gick inte att skapa session'; - @override String get failedToJoin => 'Det gick inte att gå med i session'; - @override String get sessionCodeCopied => 'Sessionskod kopierad till urklipp'; - @override String get relayUnreachable => 'Relay-servern kan inte nås. ISP-blockering kan hindra Watch Together.'; - @override String get reconnectingToHost => 'Återansluter till värd...'; + @override String get failedToCreate => 'Det gick inte att skapa sessionen'; + @override String get failedToJoin => 'Det gick inte att gå med i sessionen'; + @override String get sessionCodeCopied => 'Sessionskoden har kopierats till urklipp'; + @override String get relayUnreachable => 'Reläservern kan inte nås. Din internetleverantör kan blockera Titta tillsammans.'; + @override String get reconnectingToHost => 'Återansluter till värden...'; @override String get currentPlayback => 'Aktuell uppspelning'; @override String get joinCurrentPlayback => 'Gå med i aktuell uppspelning'; @override String get joinCurrentPlaybackDescription => 'Hoppa tillbaka till det värden tittar på just nu'; @@ -1362,14 +1366,14 @@ class _Translations$watchTogether$sv extends Translations$watchTogether$en { @override String participantLeft({required Object name}) => '${name} lämnade'; @override String participantPaused({required Object name}) => '${name} pausade'; @override String participantResumed({required Object name}) => '${name} återupptog'; - @override String participantSeeked({required Object name}) => '${name} spolade'; + @override String participantSeeked({required Object name}) => '${name} ändrade uppspelningspositionen'; @override String participantBuffering({required Object name}) => '${name} buffrar'; @override String participantNeedsUpdate({required Object name}) => '${name} använder en äldre appversion — synkronisering är inte tillgänglig'; @override String resumingWithout({required Object name}) => 'Återupptar utan ${name}'; - @override String get waitingForParticipants => 'Väntar på att andra laddar...'; + @override String get waitingForParticipants => 'Väntar på att de andra ska ladda klart...'; @override String waitingForName({required Object name}) => 'Väntar på ${name}...'; - @override String get recentRooms => 'Senaste rum'; - @override String get renameRoom => 'Byt namn på rum'; + @override String get recentRooms => 'Senaste rummen'; + @override String get renameRoom => 'Byt namn på rummet'; @override String get removeRoom => 'Ta bort'; @override String get guestSwitchUnavailable => 'Kunde inte byta — server inte tillgänglig för synkronisering'; @override String get guestSwitchFailed => 'Kunde inte byta — innehåll hittades inte på denna server'; @@ -1389,13 +1393,13 @@ class _Translations$downloads$sv extends Translations$downloads$en { @override String get music => 'Musik'; @override String tracksQueued({required Object count}) => '${count} låtar i nedladdningskö'; @override String get noDownloads => 'Inga nedladdningar ännu'; - @override String get noDownloadsDescription => 'Nedladdat innehåll visas här för offline-visning'; + @override String get noDownloadsDescription => 'Nedladdat innehåll visas här så att du kan titta offline'; @override String get downloadNow => 'Ladda ner'; @override String get deleteDownload => 'Ta bort nedladdning'; @override String get retryDownload => 'Försök igen'; @override String get downloadQueued => 'Nedladdning köad'; @override String get downloadResumed => 'Nedladdning återupptagen'; - @override String get serverErrorBitrate => 'Serverfel: filen kan överskrida gränsen för fjärrbitrate'; + @override String get serverErrorBitrate => 'Serverfel: filen kan överskrida serverns bithastighetsgräns'; @override String episodesQueued({required Object count}) => '${count} avsnitt köade för nedladdning'; @override String get downloadDeleted => 'Nedladdning borttagen'; @override String deleteConfirm({required Object title}) => 'Ta bort "${title}" från den här enheten?'; @@ -1469,8 +1473,8 @@ class _Translations$shaders$sv extends Translations$shaders$en { @override String get mode => 'Läge'; @override String get importShader => 'Importera shader'; @override String get customShaderDescription => 'Anpassad GLSL-shader'; - @override String get shaderImported => 'Shader importerad'; - @override String get shaderImportFailed => 'Kunde inte importera shader'; + @override String get shaderImported => 'Shadern har importerats'; + @override String get shaderImportFailed => 'Det gick inte att importera shadern'; @override String get deleteShader => 'Ta bort shader'; @override String deleteShaderConfirm({required Object name}) => 'Ta bort "${name}"?'; } @@ -1508,7 +1512,7 @@ class _Translations$videoSettings$sv extends Translations$videoSettings$en { @override String get hdr => 'HDR'; @override String get audioOutput => 'Ljudutgång'; @override String get performanceOverlay => 'Prestandaöverlägg'; - @override String get audioPassthrough => 'Ljudgenomkoppling'; + @override String get audioPassthrough => 'Ljudgenomströmning'; @override String get audioNormalization => 'Normalisera ljudstyrka'; @override String get audioDownmix => 'Nedmixning till stereo'; } @@ -1526,7 +1530,7 @@ class _Translations$performanceOverlay$sv extends Translations$performanceOverla @override String get app => 'App'; @override String get decoder => 'Dekoder'; @override String get rawDecoder => 'Rå dekoder'; - @override String get tunneling => 'Tunneling'; + @override String get tunneling => 'Tunnling'; @override String get aspect => 'Bildformat'; @override String get rotation => 'Rotation'; @override String get dvSource => 'DV-källa'; @@ -1537,19 +1541,19 @@ class _Translations$performanceOverlay$sv extends Translations$performanceOverla @override String get hwFormat => 'HW-format'; @override String get matrix => 'Matris'; @override String get primaries => 'Primärfärger'; - @override String get transfer => 'Transfer'; - @override String get renderFps => 'Render-FPS'; + @override String get transfer => 'Överföring'; + @override String get renderFps => 'Renderings-FPS'; @override String get displayFps => 'Skärm-FPS'; @override String get avSync => 'A/V-synk'; - @override String get dropped => 'Tappade'; - @override String get dvRpus => 'DV RPU:er'; - @override String get dvRpuAverage => 'DV RPU snitt'; - @override String get dvSampleAverage => 'DV-sample snitt'; + @override String get dropped => 'Tappade bildrutor'; + @override String get dvRpus => 'DV-RPU:er'; + @override String get dvRpuAverage => 'DV-RPU, genomsnitt'; + @override String get dvSampleAverage => 'DV-sampling, genomsnitt'; @override String get maxLuma => 'Max luma'; @override String get minLuma => 'Min luma'; @override String get maxCll => 'MaxCLL'; @override String get maxFall => 'MaxFALL'; - @override String get cacheUsed => 'Cache använd'; + @override String get cacheUsed => 'Använt cacheminne'; @override String get cacheLimit => 'Cachegräns'; @override String get speed => 'Hastighet'; @override String get player => 'Spelare'; @@ -1591,8 +1595,8 @@ class _Translations$metadataEdit$sv extends Translations$metadataEdit$en { // Translations @override String get editMetadata => 'Redigera...'; @override String get screenTitle => 'Redigera metadata'; - @override String get basicInfo => 'Grundläggande info'; - @override String get artwork => 'Artwork'; + @override String get basicInfo => 'Grundläggande information'; + @override String get artwork => 'Bildmaterial'; @override String get advancedSettings => 'Avancerade inställningar'; @override String get title => 'Titel'; @override String get sortTitle => 'Sorteringstitel'; @@ -1600,13 +1604,13 @@ class _Translations$metadataEdit$sv extends Translations$metadataEdit$en { @override String get releaseDate => 'Utgivningsdatum'; @override String get contentRating => 'Åldersgräns'; @override String get studio => 'Studio'; - @override String get tagline => 'Tagline'; + @override String get tagline => 'Slogan'; @override String get summary => 'Sammanfattning'; - @override String get poster => 'Poster'; + @override String get poster => 'Affisch'; @override String get background => 'Bakgrund'; @override String get logo => 'Logotyp'; @override String get squareArt => 'Kvadratisk bild'; - @override String get selectPoster => 'Välj poster'; + @override String get selectPoster => 'Välj affisch'; @override String get selectBackground => 'Välj bakgrund'; @override String get selectLogo => 'Välj logotyp'; @override String get selectSquareArt => 'Välj kvadratisk bild'; @@ -1614,11 +1618,11 @@ class _Translations$metadataEdit$sv extends Translations$metadataEdit$en { @override String get uploadFile => 'Ladda upp fil'; @override String get enterImageUrl => 'Ange bild-URL'; @override String get imageUrl => 'Bild-URL'; - @override String get metadataUpdated => 'Metadata uppdaterad'; - @override String get metadataUpdateFailed => 'Kunde inte uppdatera metadata'; - @override String get artworkUpdated => 'Artwork uppdaterad'; - @override String get artworkUpdateFailed => 'Kunde inte uppdatera artwork'; - @override String get noArtworkAvailable => 'Ingen artwork tillgänglig'; + @override String get metadataUpdated => 'Metadata har uppdaterats'; + @override String get metadataUpdateFailed => 'Det gick inte att uppdatera metadata'; + @override String get artworkUpdated => 'Bildmaterialet har uppdaterats'; + @override String get artworkUpdateFailed => 'Det gick inte att uppdatera bildmaterialet'; + @override String get noArtworkAvailable => 'Inget bildmaterial är tillgängligt'; @override String artworkOption({required Object index}) => 'Bildalternativ ${index}'; @override String selectedArtworkOption({required Object index}) => 'Bildalternativ ${index}, valt'; @override String get notSet => 'Inte angiven'; @@ -1650,15 +1654,15 @@ class _Translations$metadataEdit$sv extends Translations$metadataEdit$en { @override String get useOriginalTitle => 'Använd originaltitel'; @override String get preferredAudioLanguage => 'Föredraget ljudspråk'; @override String get preferredSubtitleLanguage => 'Föredraget undertextspråk'; - @override String get subtitleMode => 'Automatiskt val av undertexter'; + @override String get subtitleMode => 'Läge för automatiskt undertextval'; @override String get manuallySelected => 'Manuellt vald'; - @override String get shownWithForeignAudio => 'Visas vid främmande ljud'; + @override String get shownWithForeignAudio => 'Visas med ljud på främmande språk'; @override String get alwaysEnabled => 'Alltid aktiverad'; @override String get tags => 'Taggar'; @override String get addTag => 'Lägg till tagg'; @override String get genre => 'Genre'; @override String get director => 'Regissör'; - @override String get writer => 'Författare'; + @override String get writer => 'Manusförfattare'; @override String get producer => 'Producent'; @override String get country => 'Land'; @override String get collection => 'Samling'; @@ -1712,10 +1716,10 @@ class _Translations$trakt$sv extends Translations$trakt$en { @override String connectedAs({required Object username}) => 'Ansluten som @${username}'; @override String get disconnectConfirm => 'Koppla från Trakt-konto?'; @override String get disconnectConfirmBody => 'Plezy slutar skicka händelser till Trakt. Du kan återansluta när som helst.'; - @override String get scrobble => 'Realtids-scrobbling'; - @override String get scrobbleDescription => 'Skicka uppspelnings-, paus- och stopphändelser till Trakt under uppspelning.'; - @override String get watchedSync => 'Synkronisera tittad-status'; - @override String get watchedSyncDescription => 'När du markerar något som tittat i Plezy markeras det också på Trakt.'; + @override String get scrobble => 'Realtidsspårning'; + @override String get scrobbleDescription => 'Skicka händelser för uppspelning, paus och stopp till Trakt under uppspelningen.'; + @override String get watchedSync => 'Synkronisera seddstatus'; + @override String get watchedSyncDescription => 'När du markerar objekt som sedda i Plezy markeras de även som sedda på Trakt.'; } // Path: seerr @@ -1748,7 +1752,7 @@ class _Translations$seerr$sv extends Translations$seerr$en { @override String get rootFolder => 'Rotmapp'; @override String get languageProfile => 'Språkprofil'; @override String get requestSubmitted => 'Begäran skickad'; - @override String requestFailed({required Object error}) => 'Begäran misslyckades: ${error}'; + @override String requestFailed({required Object error}) => 'Begäran kunde inte genomföras: ${error}'; @override String get requestsLoadFailed => 'Det gick inte att läsa in alternativ för begäran'; @override String get nothingToRequest => 'Allt är redan tillgängligt eller begärt.'; @override String get statusAvailable => 'Tillgänglig'; @@ -1765,11 +1769,11 @@ class _Translations$services$sv extends Translations$services$en { // Translations @override String get title => 'Tjänster'; - @override String get hubSubtitle => 'Synkronisera dina framsteg och begär nya titlar.'; - @override String get notConnected => 'Ej ansluten'; + @override String get hubSubtitle => 'Synkronisera visningsstatus och begär nya titlar.'; + @override String get notConnected => 'Inte ansluten'; @override String connectedAs({required Object username}) => 'Ansluten som @${username}'; - @override String get scrobble => 'Spåra framsteg automatiskt'; - @override String get scrobbleDescription => 'Uppdaterar din lista när du är klar med ett avsnitt eller en film.'; + @override String get scrobble => 'Spåra uppspelningen automatiskt'; + @override String get scrobbleDescription => 'Uppdatera din lista när du har sett klart ett avsnitt eller en film.'; @override String disconnectConfirm({required Object service}) => 'Koppla från ${service}?'; @override String disconnectConfirmBody({required Object service}) => 'Plezy slutar uppdatera ${service}. Återanslut när som helst.'; @override String connectFailed({required Object service}) => 'Kunde inte ansluta till ${service}. Försök igen.'; @@ -1788,7 +1792,7 @@ class _Translations$addServer$sv extends Translations$addServer$en { // Translations @override String get addJellyfinTitle => 'Lägg till Jellyfin-server'; @override String get serverUrls => 'Server-URL:er'; - @override String get serverUrlsHelper => 'Flera URL:er tillåtna, separerade med kommatecken.'; + @override String get serverUrlsHelper => 'Du kan ange flera URL:er avgränsade med kommatecken.'; @override String get findServer => 'Hitta server'; @override String get searchingLocalServers => 'Söker efter lokala Jellyfin-servrar...'; @override String get localServers => 'Lokala Jellyfin-servrar'; @@ -1798,7 +1802,7 @@ class _Translations$addServer$sv extends Translations$addServer$en { @override String get change => 'Ändra'; @override String get required => 'Krävs'; @override String couldNotReachServer({required Object error}) => 'Kunde inte nå servern: ${error}'; - @override String signInFailed({required Object error}) => 'Inloggning misslyckades: ${error}'; + @override String signInFailed({required Object error}) => 'Det gick inte att logga in: ${error}'; @override String quickConnectFailed({required Object error}) => 'Quick Connect misslyckades: ${error}'; @override String get addPlexTitle => 'Logga in med Plex'; @override String get pinExpired => 'PIN-koden gick ut innan inloggning. Försök igen.'; @@ -1953,13 +1957,13 @@ class _Translations$explore$rows$sv extends Translations$explore$rows$en { @override String get watchlist => 'Bevakningslista'; @override String get recommendedMovies => 'Rekommenderade filmer'; @override String get recommendedShows => 'Rekommenderade serier'; - @override String get trendingMovies => 'Trendande filmer'; - @override String get trendingShows => 'Trendande serier'; + @override String get trendingMovies => 'Populära filmer just nu'; + @override String get trendingShows => 'Populära serier just nu'; @override String get popularMovies => 'Populära filmer'; @override String get popularShows => 'Populära serier'; - @override String get trendingAnime => 'Trendande anime'; - @override String get suggestedAnime => 'Föreslagna anime'; - @override String get airingAnime => 'Bästa pågående anime'; + @override String get trendingAnime => 'Populär anime just nu'; + @override String get suggestedAnime => 'Föreslagen anime'; + @override String get airingAnime => 'Bästa anime som sänds nu'; @override String get popularAnime => 'Mest populära anime'; @override String get trending => 'Trendar nu'; @override String get upcomingMovies => 'Kommande filmer'; @@ -1991,9 +1995,9 @@ class _Translations$companionRemote$session$sv extends Translations$companionRem @override String get connected => 'Ansluten'; @override String get serverRunning => 'Fjärrserver aktiv'; @override String get serverStopped => 'Fjärrserver stoppad'; - @override String get serverRunningDescription => 'Mobila enheter i ditt nätverk kan ansluta till den här appen'; - @override String get serverStoppedDescription => 'Starta servern för att tillåta mobila enheter att ansluta'; - @override String get usePhoneToControl => 'Använd din mobila enhet för att styra denna app'; + @override String get serverRunningDescription => 'Mobila enheter i nätverket kan ansluta till appen'; + @override String get serverStoppedDescription => 'Starta servern så att mobila enheter kan ansluta'; + @override String get usePhoneToControl => 'Använd din mobila enhet för att styra appen'; @override String get startServer => 'Starta server'; @override String get stopServer => 'Stoppa server'; @override String get minimize => 'Minimera'; @@ -2011,15 +2015,15 @@ class _Translations$companionRemote$pairing$sv extends Translations$companionRem @override String get connecting => 'Ansluter...'; @override String get searchingForDevices => 'Söker efter enheter...'; @override String get noDevicesFound => 'Inga enheter hittades i ditt nätverk'; - @override String get noDevicesHint => 'Öppna Plezy på desktop och använd samma WiFi'; + @override String get noDevicesHint => 'Öppna Plezy på datorn och använd samma wifi'; @override String get availableDevices => 'Tillgängliga enheter'; @override String get manualConnection => 'Manuell anslutning'; @override String get cryptoInitFailed => 'Kunde inte starta säker anslutning. Logga in på Plex först.'; @override String get validationHostRequired => 'Ange värdadress'; - @override String get validationHostFormat => 'Format måste vara IP:port (t.ex. 192.168.1.100:48632)'; - @override String get connectionTimedOut => 'Anslutningen tog för lång tid. Använd samma nätverk på båda enheter.'; - @override String get sessionNotFound => 'Enhet hittades inte. Kontrollera att Plezy körs på värden.'; - @override String get authFailed => 'Autentisering misslyckades. Båda enheter behöver samma Plex-konto.'; + @override String get validationHostFormat => 'Formatet måste vara IP:port (t.ex. 192.168.1.100:48632)'; + @override String get connectionTimedOut => 'Anslutningen tog för lång tid. Använd samma nätverk på båda enheterna.'; + @override String get sessionNotFound => 'Enheten hittades inte. Kontrollera att Plezy körs på värden.'; + @override String get authFailed => 'Autentiseringen misslyckades. Båda enheterna måste använda samma Plex-konto.'; @override String failedToConnect({required Object error}) => 'Kunde inte ansluta: ${error}'; } @@ -2067,13 +2071,13 @@ class _Translations$companionRemote$errors$sv extends Translations$companionRemo // Translations @override String get noNetworkInterface => 'Inget nätverksgränssnitt hittades'; - @override String get authenticationFailed => 'Autentisering misslyckades'; + @override String get authenticationFailed => 'Autentiseringen misslyckades'; @override String serverStartFailed({required Object error}) => 'Det gick inte att starta fjärrservern: ${error}'; @override String commandFailed({required Object error}) => 'Det gick inte att skicka fjärrkommandot: ${error}'; - @override String get joinTimedOut => 'Tidsgräns vid anslutning till session'; - @override String get failedToConnectAnyAddress => 'Kunde inte ansluta till någon adress'; - @override String connectionLostAfterAttempts({required Object attempts}) => 'Anslutning förlorad efter ${attempts} försök'; - @override String get connectionLost => 'Anslutning förlorad'; + @override String get joinTimedOut => 'Det tog för lång tid att ansluta till sessionen'; + @override String get failedToConnectAnyAddress => 'Det gick inte att ansluta till någon adress'; + @override String connectionLostAfterAttempts({required Object attempts}) => 'Anslutningen bröts efter ${attempts} försök'; + @override String get connectionLost => 'Anslutningen bröts'; } // Path: services.names @@ -2131,10 +2135,10 @@ class _Translations$services$libraryFilter$sv extends Translations$services$libr @override String subtitleBlocked({required Object count}) => '${count} blockerade'; @override String subtitleAllowed({required Object count}) => '${count} tillåtna'; @override String get mode => 'Filterläge'; - @override String get modeBlacklist => 'Svartlista'; - @override String get modeWhitelist => 'Vitlista'; - @override String get modeHintBlacklist => 'Synkronisera alla bibliotek utom de som markerats nedan.'; - @override String get modeHintWhitelist => 'Synkronisera endast de bibliotek som markerats nedan.'; + @override String get modeBlacklist => 'Blockeringslista'; + @override String get modeWhitelist => 'Tillåtelselista'; + @override String get modeHintBlacklist => 'Synkronisera alla bibliotek utom de som markeras nedan.'; + @override String get modeHintWhitelist => 'Synkronisera endast de bibliotek som markeras nedan.'; @override String get libraries => 'Bibliotek'; @override String get noLibraries => 'Inga bibliotek tillgängliga'; } @@ -2150,8 +2154,8 @@ extension on TranslationsSv { 'app.title' => 'Plezy', 'auth.signInWithPlex' => 'Logga in med Plex', 'auth.showQRCode' => 'Visa QR-kod', - 'auth.authenticate' => 'Autentisera', - 'auth.authenticationTimeout' => 'Autentisering tog för lång tid. Försök igen.', + 'auth.authenticate' => 'Verifiera', + 'auth.authenticationTimeout' => 'Autentiseringen tog för lång tid. Försök igen.', 'auth.scanQRToSignIn' => 'Skanna QR-koden för att logga in', 'auth.waitingForAuth' => 'Väntar på autentisering...\nLogga in från din webbläsare.', 'auth.useBrowser' => 'Använd webbläsare', @@ -2162,7 +2166,7 @@ extension on TranslationsSv { 'auth.quickConnectWaiting' => 'Väntar på godkännande…', 'auth.quickConnectCancel' => 'Avbryt', 'auth.quickConnectExpired' => 'Quick Connect har gått ut. Försök igen.', - 'auth.localDataRecoveryRequired' => 'Plezy could not safely recover local sign-in and pending playback data. Please sign in again.', + 'auth.localDataRecoveryRequired' => 'Plezy kunde inte återställa lokala inloggningsuppgifter och väntande uppspelningsdata på ett säkert sätt. Logga in igen.', 'common.cancel' => 'Avbryt', 'common.save' => 'Spara', 'common.close' => 'Stäng', @@ -2191,8 +2195,8 @@ extension on TranslationsSv { 'common.search' => 'Sök', 'common.home' => 'Hem', 'common.back' => 'Tillbaka', - 'common.settings' => 'Mer', - 'common.mute' => 'Ljud av', + 'common.settings' => 'Inställningar', + 'common.mute' => 'Stäng av ljudet', 'common.ok' => 'OK', 'common.off' => 'Av', 'common.seasonNumber' => ({required Object number}) => 'Säsong ${number}', @@ -2210,16 +2214,16 @@ extension on TranslationsSv { 'common.pressBackAgainToExit' => 'Tryck bakåt igen för att avsluta', 'screens.licenses' => 'Licenser', 'screens.switchProfile' => 'Byt profil', - 'screens.subtitleStyling' => 'Undertext-styling', + 'screens.subtitleStyling' => 'Utseende för undertexter', 'screens.mpvConfig' => 'mpv.conf', 'screens.logs' => 'Loggar', 'update.available' => 'Uppdatering tillgänglig', 'update.versionAvailable' => ({required Object version}) => 'Version ${version} är tillgänglig', 'update.currentVersion' => ({required Object version}) => 'Nuvarande: ${version}', 'update.skipVersion' => 'Hoppa över denna version', - 'update.viewRelease' => 'Visa release', + 'update.viewRelease' => 'Visa versionsinformation', 'update.latestVersion' => 'Du har den senaste versionen', - 'update.checkFailed' => 'Misslyckades att kontrollera uppdateringar', + 'update.checkFailed' => 'Det gick inte att söka efter uppdateringar', 'settings.title' => 'Inställningar', 'settings.supportDeveloper' => 'Stöd Plezy', 'settings.supportDeveloperDescription' => 'Donera via Liberapay för att finansiera utvecklingen', @@ -2229,11 +2233,11 @@ extension on TranslationsSv { 'settings.videoPlayback' => 'Videouppspelning', 'settings.videoPlaybackDescription' => 'Konfigurera uppspelningsbeteende', 'settings.advanced' => 'Avancerat', - 'settings.episodePosterMode' => 'Avsnittsaffisch-stil', + 'settings.episodePosterMode' => 'Stil för avsnittsaffisch', 'settings.seriesPoster' => 'Serieaffisch', 'settings.seasonPoster' => 'Säsongsaffisch', 'settings.episodeThumbnail' => 'Miniatyr', - 'settings.showHeroSectionDescription' => 'Visa utvalda innehållskarusell på startsidan', + 'settings.showHeroSectionDescription' => 'Visa en karusell med utvalt innehåll på startsidan', 'settings.secondsLabel' => 'Sekunder', 'settings.minutesLabel' => 'Minuter', 'settings.secondsShort' => 's', @@ -2245,89 +2249,91 @@ extension on TranslationsSv { 'settings.oledTheme' => 'OLED', 'settings.libraryDensity' => 'Biblioteksdensitet', 'settings.compact' => 'Kompakt', - 'settings.comfortable' => 'Bekväm', + 'settings.comfortable' => 'Luftig', + 'settings.tvCornerSpotlightBackdrop' => 'Bakgrundsbild för utvalt innehåll i hörnet', + 'settings.tvCornerSpotlightBackdropDescription' => 'Visa bakgrundsbilden för utvalt innehåll i övre högra hörnet i stället för över hela skärmen', 'settings.viewMode' => 'Visningsläge', 'settings.gridView' => 'Rutnät', 'settings.listView' => 'Lista', - 'settings.showHeroSection' => 'Visa hjältesektion', + 'settings.showHeroSection' => 'Visa utvalt innehåll', 'settings.continueWatchingAction' => 'Åtgärd för Fortsätt titta', 'settings.continueWatchingPlay' => 'Spela', 'settings.continueWatchingDetails' => 'Öppna detaljer', 'settings.episodeAction' => 'Åtgärd för avsnitt', 'settings.episodePlay' => 'Spela', 'settings.episodeDetails' => 'Öppna detaljer', - 'settings.useGlobalHubs' => 'Använd startlayout', - 'settings.useGlobalHubsDescription' => 'Visa enhetliga startsideshubbar. Annars används biblioteksrekommendationer.', - 'settings.showServerNameOnHubs' => 'Visa servernamn på hubbar', - 'settings.showServerNameOnHubsDescription' => 'Visa alltid servernamn i hubbtitlar.', + 'settings.useGlobalHubs' => 'Använd startsidans layout', + 'settings.useGlobalHubsDescription' => 'Visa en gemensam layout på startsidan. Annars används bibliotekens rekommendationer.', + 'settings.showServerNameOnHubs' => 'Visa servernamn i innehållssektioner', + 'settings.showServerNameOnHubsDescription' => 'Visa alltid servernamnet i innehållssektionernas rubriker.', 'settings.groupLibrariesByServer' => 'Gruppera bibliotek efter server', - 'settings.groupLibrariesByServerDescription' => 'Gruppera sidofältsbibliotek under varje medieserver.', - 'settings.alwaysKeepSidebarOpen' => 'Håll sidofältet alltid öppet', - 'settings.alwaysKeepSidebarOpenDescription' => 'Sidofältet förblir expanderat och innehållsytan anpassas', + 'settings.groupLibrariesByServerDescription' => 'Gruppera biblioteken i sidofältet under respektive medieserver.', + 'settings.alwaysKeepSidebarOpen' => 'Håll alltid sidofältet öppet', + 'settings.alwaysKeepSidebarOpenDescription' => 'Sidofältet förblir utfällt och innehållsytan anpassas efter det', 'settings.showUnwatchedCount' => 'Visa antal osedda', 'settings.showUnwatchedCountDescription' => 'Visa antal osedda avsnitt för serier och säsonger', 'settings.showEpisodeNumberOnCards' => 'Visa avsnittsnummer på kort', 'settings.showEpisodeNumberOnCardsDescription' => 'Visa säsongs- och avsnittsnummer på avsnittskort', 'settings.showSeasonPostersOnTabs' => 'Visa säsongsaffischer på flikar', - 'settings.showSeasonPostersOnTabsDescription' => 'Visa varje säsongs affisch ovanför fliken', + 'settings.showSeasonPostersOnTabsDescription' => 'Visa affischen för varje säsong ovanför dess flik', 'settings.tvFullCardLayout' => 'Heltäckande TV-kort', 'settings.tvFullCardLayoutDescription' => 'Använd TV-kort med enbart bild och skådespelarnamn ovanpå', - 'settings.focusGlow' => 'Fokusglöd', - 'settings.focusGlowDescription' => 'Visa en mjuk glöd runt kortet i fokus', + 'settings.focusGlow' => 'Fokusmarkering', + 'settings.focusGlowDescription' => 'Visa ett mjukt sken runt kortet som har fokus', 'settings.visualEffects' => 'Visuella effekter', 'settings.visualEffectsAuto' => 'Automatiskt', - 'settings.visualEffectsAutoDescription' => 'Minska effekter automatiskt på enheter med låg effekt', + 'settings.visualEffectsAutoDescription' => 'Minska effekterna automatiskt på enheter med begränsad prestanda', 'settings.visualEffectsFull' => 'Fullständiga', 'settings.visualEffectsReduced' => 'Minskade', 'settings.visualEffectsReducedDescription' => 'Färre animationer och grafik med lägre upplösning', 'settings.hideSpoilers' => 'Dölj spoilers för osedda avsnitt', - 'settings.hideSpoilersDescription' => 'Sudda miniatyrbilder och beskrivningar för osedda avsnitt', - 'settings.playerBackend' => 'Spelarmotor', + 'settings.hideSpoilersDescription' => 'Gör miniatyrbilder och beskrivningar oskarpa för osedda avsnitt', + 'settings.playerBackend' => 'Uppspelningsmotor', 'settings.exoPlayer' => 'ExoPlayer', 'settings.mpv' => 'mpv', 'settings.hardwareDecoding' => 'Hårdvaruavkodning', 'settings.hardwareDecodingDescription' => 'Använd hårdvaruacceleration när tillgängligt', - 'settings.bufferSize' => 'Bufferstorlek', - 'settings.bufferSizeMB' => ({required Object size}) => '${size}MB', - 'settings.bufferSizeAuto' => 'Auto (Rekommenderat)', - 'settings.bufferSizeWarning' => ({required Object heap, required Object size}) => '${heap}MB minne tillgängligt. En buffert på ${size}MB kan påverka uppspelningen.', + 'settings.bufferSize' => 'Buffertstorlek', + 'settings.bufferSizeMB' => ({required Object size}) => '${size} MB', + 'settings.bufferSizeAuto' => 'Automatiskt (rekommenderas)', + 'settings.bufferSizeWarning' => ({required Object heap, required Object size}) => '${heap} MB minne är tillgängligt. En buffert på ${size} MB kan påverka uppspelningen.', 'settings.defaultQualityTitle' => 'Standardkvalitet', 'settings.musicQualityTitle' => 'Musikkvalitet', - 'settings.subtitleStyling' => 'Undertext-styling', - 'settings.subtitleStylingDescription' => 'Anpassa undertextutseende', - 'settings.smallSkipDuration' => 'Kort hoppvaraktighet', - 'settings.largeSkipDuration' => 'Lång hoppvaraktighet', + 'settings.subtitleStyling' => 'Utseende för undertexter', + 'settings.subtitleStylingDescription' => 'Anpassa undertexternas utseende', + 'settings.smallSkipDuration' => 'Litet hoppsteg', + 'settings.largeSkipDuration' => 'Stort hoppsteg', 'settings.rewindOnResume' => 'Spola tillbaka vid återupptagning', 'settings.secondsUnit' => ({required Object seconds}) => '${seconds} sekunder', - 'settings.defaultSleepTimer' => 'Standard sovtimer', + 'settings.defaultSleepTimer' => 'Förvald insomningstimer', 'settings.minutesUnit' => ({required Object minutes}) => '${minutes} minuter', 'settings.rememberTrackSelections' => 'Kom ihåg spårval per serie/film', 'settings.rememberTrackSelectionsDescription' => 'Kom ihåg ljud- och undertextval per titel', 'settings.showChapterMarkersOnTimeline' => 'Visa kapitelmarkörer på tidslinjen', 'settings.showChapterMarkersOnTimelineDescription' => 'Dela upp tidslinjen vid kapitelgränser', - 'settings.clickVideoTogglesPlayback' => 'Klicka på videon för att växla mellan spela upp och pausa.', - 'settings.clickVideoTogglesPlaybackDescription' => 'Klicka på video för att spela/pausa istället för att visa kontroller.', - 'settings.videoPlayerControls' => 'Videospelar-kontroller', + 'settings.clickVideoTogglesPlayback' => 'Klicka på videon för att spela upp eller pausa', + 'settings.clickVideoTogglesPlaybackDescription' => 'Klicka på videon för att spela upp eller pausa i stället för att visa kontrollerna.', + 'settings.videoPlayerControls' => 'Videospelarens kontroller', 'settings.keyboardShortcuts' => 'Tangentbordsgenvägar', 'settings.keyboardShortcutsDescription' => 'Anpassa tangentbordsgenvägar', 'settings.videoPlayerNavigation' => 'Navigering i videospelaren', 'settings.videoPlayerNavigationDescription' => 'Använd piltangenter för att navigera videospelarens kontroller', - 'settings.watchTogetherRelay' => 'Titta Tillsammans-relay', - 'settings.watchTogetherRelayDescription' => 'Ange en anpassad relay. Alla måste använda samma server.', - 'settings.watchTogetherRelayHint' => 'https://min-relay.exempel.se', - 'settings.watchTogetherRelayInvalid' => 'Enter a valid HTTP or HTTPS relay base URL.', + 'settings.watchTogetherRelay' => 'Reläserver för Titta tillsammans', + 'settings.watchTogetherRelayDescription' => 'Ange en egen reläserver. Alla måste använda samma server.', + 'settings.watchTogetherRelayHint' => 'https://mitt-rela.exempel.se', + 'settings.watchTogetherRelayInvalid' => 'Ange en giltig HTTP- eller HTTPS-bas-URL för reläservern.', 'settings.crashReporting' => 'Kraschrapportering', 'settings.crashReportingDescription' => 'Skicka kraschrapporter för att förbättra appen', 'settings.debugLogging' => 'Felsökningsloggning', 'settings.debugLoggingDescription' => 'Aktivera detaljerad loggning för felsökning', 'settings.viewLogs' => 'Visa loggar', - 'settings.viewLogsDescription' => 'Visa applikationsloggar', - 'settings.clearCache' => 'Rensa cache', - 'settings.clearCacheDescription' => 'Rensa cachade bilder och data. Innehåll kan laddas långsammare.', - 'settings.clearCacheSuccess' => 'Cache rensad framgångsrikt', - 'settings.resetSettings' => 'Återställ inställningar', - 'settings.resetSettingsDescription' => 'Återställ standardinställningar. Detta kan inte ångras.', - 'settings.resetSettingsSuccess' => 'Inställningar återställda framgångsrikt', + 'settings.viewLogsDescription' => 'Visa appens loggar', + 'settings.clearCache' => 'Rensa cachen', + 'settings.clearCacheDescription' => 'Rensa cachade bilder och data. Innehåll kan läsas in långsammare.', + 'settings.clearCacheSuccess' => 'Cachen har rensats', + 'settings.resetSettings' => 'Återställ inställningarna', + 'settings.resetSettingsDescription' => 'Återställ standardinställningarna. Det går inte att ångra.', + 'settings.resetSettingsSuccess' => 'Inställningarna har återställts', 'settings.backup' => 'Säkerhetskopia', 'settings.exportSettings' => 'Exportera inställningar', 'settings.exportSettingsDescription' => 'Spara dina inställningar till en fil', @@ -2336,9 +2342,9 @@ extension on TranslationsSv { 'settings.importSettingsDescription' => 'Återställ inställningar från en fil', 'settings.importSettingsConfirm' => 'Detta ersätter dina nuvarande inställningar. Fortsätta?', 'settings.importSettingsSuccess' => 'Inställningar importerade', - 'settings.importSettingsInvalidFile' => 'Denna fil är inte en giltig Plezy-export', + 'settings.importSettingsInvalidFile' => 'Filen är inte en giltig export av Plezy-inställningar', 'settings.importSettingsNoUser' => 'Logga in innan du importerar inställningar', - 'settings.shortcutsReset' => 'Genvägar återställda till standard', + 'settings.shortcutsReset' => 'Genvägarna har återställts till standard', 'settings.about' => 'Om', 'settings.aboutDescription' => 'Appinformation och licenser', 'settings.updates' => 'Uppdateringar', @@ -2346,20 +2352,20 @@ extension on TranslationsSv { 'settings.checkForUpdates' => 'Kontrollera uppdateringar', 'settings.autoCheckUpdatesOnStartup' => 'Kontrollera uppdateringar automatiskt vid start', 'settings.autoCheckUpdatesOnStartupDescription' => 'Meddela när en uppdatering finns vid start', - 'settings.validationErrorEnterNumber' => 'Vänligen ange ett giltigt nummer', + 'settings.validationErrorEnterNumber' => 'Ange ett giltigt tal', 'settings.validationErrorDuration' => ({required Object min, required Object max, required Object unit}) => 'Tiden måste vara mellan ${min} och ${max} ${unit}', - 'settings.shortcutAlreadyAssigned' => ({required Object action}) => 'Genväg redan tilldelad ${action}', - 'settings.shortcutUpdated' => ({required Object action}) => 'Genväg uppdaterad för ${action}', - 'settings.saveFailed' => 'Could not save changes. Try again.', - 'settings.autoSkip' => 'Auto Hoppa Över', - 'settings.autoSkipIntro' => 'Hoppa Över Intro Automatiskt', - 'settings.autoSkipIntroDescription' => 'Hoppa automatiskt över intro-markörer efter några sekunder', - 'settings.autoSkipCredits' => 'Hoppa Över Credits Automatiskt', - 'settings.autoSkipCreditsDescription' => 'Hoppa automatiskt över credits och spela nästa avsnitt', + 'settings.shortcutAlreadyAssigned' => ({required Object action}) => 'Genvägen används redan för ${action}', + 'settings.shortcutUpdated' => ({required Object action}) => 'Genvägen för ${action} har uppdaterats', + 'settings.saveFailed' => 'Det gick inte att spara ändringarna. Försök igen.', + 'settings.autoSkip' => 'Hoppa över automatiskt', + 'settings.autoSkipIntro' => 'Hoppa över intro automatiskt', + 'settings.autoSkipIntroDescription' => 'Hoppa automatiskt över intromarkörer efter några sekunder', + 'settings.autoSkipCredits' => 'Hoppa över eftertexter automatiskt', + 'settings.autoSkipCreditsDescription' => 'Hoppa automatiskt över eftertexterna och spela nästa avsnitt', 'settings.forceSkipMarkerFallback' => 'Tvinga reservmarkörer', 'settings.forceSkipMarkerFallbackDescription' => 'Använd mönster i kapiteltitlar även när Plex har markörer', - 'settings.autoSkipDelay' => 'Fördröjning Auto Hoppa Över', - 'settings.autoSkipDelayDescription' => ({required Object seconds}) => 'Vänta ${seconds} sekunder innan automatisk överhoppning', + 'settings.autoSkipDelay' => 'Fördröjning före automatiskt hopp', + 'settings.autoSkipDelayDescription' => ({required Object seconds}) => 'Vänta ${seconds} sekunder innan innehållet hoppas över automatiskt', 'settings.introPattern' => 'Intromarkörsmönster', 'settings.introPatternDescription' => 'Reguljärt uttryck för att matcha intromarkörer i kapiteltitlar', 'settings.creditsPattern' => 'Eftertextmarkörsmönster', @@ -2368,32 +2374,32 @@ extension on TranslationsSv { 'settings.regex' => 'Reguljärt uttryck', 'settings.downloads' => 'Nedladdningar', 'settings.downloadLocationDescription' => 'Välj var nedladdat innehåll ska lagras', - 'settings.downloadLocationDefault' => 'Standard (App-lagring)', - 'settings.downloadLocationCustom' => 'Anpassad Plats', - 'settings.selectFolder' => 'Välj Mapp', - 'settings.resetToDefault' => 'Återställ till Standard', - 'settings.currentPath' => ({required Object path}) => 'Nuvarande: ${path}', + 'settings.downloadLocationDefault' => 'Standard (appens lagring)', + 'settings.downloadLocationCustom' => 'Anpassad plats', + 'settings.selectFolder' => 'Välj mapp', + 'settings.resetToDefault' => 'Återställ standard', + 'settings.currentPath' => ({required Object path}) => 'Aktuell: ${path}', 'settings.downloadLocationChanged' => 'Nedladdningsplats ändrad', 'settings.downloadLocationReset' => 'Nedladdningsplats återställd till standard', 'settings.downloadLocationInvalid' => 'Vald mapp är inte skrivbar', 'settings.downloadLocationPickerUnavailable' => 'Mappval är inte tillgängligt på den här enheten', - 'settings.downloadOnWifiOnly' => 'Ladda ner endast på WiFi', - 'settings.downloadOnWifiOnlyDescription' => 'Förhindra nedladdningar vid användning av mobildata', - 'settings.autoRemoveWatchedDownloads' => 'Ta bort sedda nedladdningar automatiskt', - 'settings.autoRemoveWatchedDownloadsDescription' => 'Ta bort sedda nedladdningar automatiskt', - 'settings.cellularDownloadBlocked' => 'Nedladdningar är blockerade via mobilnät. Använd WiFi eller ändra inställningen.', - 'settings.maxVolume' => 'Maximal volym', - 'settings.maxVolumeDescription' => 'Tillåt volym över 100% för tyst media', - 'settings.maxVolumePercent' => ({required Object percent}) => '${percent}%', + 'settings.downloadOnWifiOnly' => 'Ladda endast ned via wifi', + 'settings.downloadOnWifiOnlyDescription' => 'Förhindra nedladdningar via mobildata', + 'settings.autoRemoveWatchedDownloads' => 'Ta automatiskt bort sedda nedladdningar', + 'settings.autoRemoveWatchedDownloadsDescription' => 'Ta automatiskt bort sedda nedladdningar', + 'settings.cellularDownloadBlocked' => 'Nedladdningar blockeras via mobilnätet. Använd wifi eller ändra inställningen.', + 'settings.maxVolume' => 'Maxvolym', + 'settings.maxVolumeDescription' => 'Tillåt att volymen höjs över 100 % för innehåll med låg ljudnivå', + 'settings.maxVolumePercent' => ({required Object percent}) => '${percent} %', 'settings.discordRichPresence' => 'Discord Rich Presence', 'settings.discordRichPresenceDescription' => 'Visa vad du tittar på i Discord', 'settings.services' => 'Tjänster', 'settings.servicesDescription' => 'Anslut Trakt, MyAnimeList, Seerr med mera', 'settings.manageLibrariesDescription' => 'Ordna om och dölj bibliotek', - 'settings.companionRemoteServer' => 'Companion Remote-server', - 'settings.companionRemoteServerDescription' => 'Tillåt mobila enheter i ditt nätverk att styra denna app', + 'settings.companionRemoteServer' => 'Server för fjärrkontroll', + 'settings.companionRemoteServerDescription' => 'Tillåt att mobila enheter i nätverket styr appen', 'settings.autoPip' => 'Automatisk bild-i-bild', - 'settings.autoPipDescription' => 'Gå till bild-i-bild när du lämnar under uppspelning', + 'settings.autoPipDescription' => 'Aktivera bild-i-bild om du lämnar appen under uppspelning', 'settings.matchContentFrameRate' => 'Matcha innehållets bildfrekvens', 'settings.matchContentFrameRateDescription' => 'Matcha skärmens uppdateringsfrekvens med videoinnehållet', 'settings.matchRefreshRate' => 'Matcha uppdateringsfrekvens', @@ -2403,17 +2409,17 @@ extension on TranslationsSv { 'settings.displaySwitchDelay' => 'Fördröjning vid skärmbyte', 'settings.tunneledPlayback' => 'Tunneluppspelning', 'settings.tunneledPlaybackDescription' => 'Använd videotunnling. Inaktivera om HDR-uppspelning visar svart video.', - 'settings.audioPassthrough' => 'Ljudgenomkoppling', - 'settings.audioPassthroughDescription' => 'Skicka Dolby/DTS-ljud till din receiver eller TV utan omkodning och bevara surroundljudet. Stäng av om du inte har något ljud.', - 'settings.audioPassthroughDescriptionAppleTv' => 'Lämnar Dolby Digital Plus (inkl. Atmos) till systemet som bitstream. DTS och TrueHD spelas fortfarande upp som flerkanals-PCM. Korta ljudavbrott kan förekomma vid sökning.', + 'settings.audioPassthrough' => 'Ljudgenomströmning', + 'settings.audioPassthroughDescription' => 'Skicka Dolby-/DTS-ljud till receivern eller TV:n utan omkodning så att surroundljudet bevaras. Stäng av om inget ljud hörs.', + 'settings.audioPassthroughDescriptionAppleTv' => 'Använd Apples inbyggda Dolby-avkodare för Dolby Digital Plus, inklusive Atmos. DTS och TrueHD spelas fortfarande upp som flerkanaligt PCM-ljud. Stäng av om inget ljud hörs.', 'settings.audioDownmix' => 'Nedmixning till stereo', - 'settings.audioDownmixDescription' => 'Mixar ner surroundljud till två kanaler för stereohögtalare eller hörlurar', + 'settings.audioDownmixDescription' => 'Mixa ned surroundljud till två kanaler för stereohögtalare eller hörlurar', 'settings.downmixCenterBoost' => 'Förstärkning av centerkanal', 'settings.downmixCenterBoostValue' => ({required Object db}) => '${db} dB', 'settings.downmixCenterBoostLabel' => 'Förstärkning (dB)', 'settings.downmixCenterBoostShort' => 'dB', 'settings.audioDownmixNormalize' => 'Normalisera ljudstyrka vid nedmixning', - 'settings.audioDownmixNormalizeDescription' => 'Sänker mixen för att undvika klippning. Stäng av för att behålla originalvolymen (höga scener kan förvrängas).', + 'settings.audioDownmixNormalizeDescription' => 'Sänk ljudnivån för att förhindra klippning. Stäng av för att behålla originalvolymen (starka ljud kan då bli förvrängda).', 'settings.atmosDiagnostics' => 'Atmos-utgångstest', 'settings.atmosDiagnosticsDescription' => 'Diagnostisera Dolby Atmos-utgången genom att spela testsignaler via systemspelaren', 'settings.atmosTestHlsAtmos' => 'Apple Atmos-ström', @@ -2435,10 +2441,10 @@ extension on TranslationsSv { 'settings.dvConversionNative' => 'Inbyggt / inaktiverat', 'settings.dvConversionDv81' => 'P7 → P8.1', 'settings.dvConversionHevcStrip' => 'P7 → HEVC', - 'settings.dvConversionAutoDescription' => 'Använd enhetens kapabilitetsdetektering och normalt reservbeteende', - 'settings.dvConversionNativeDescription' => 'Tvinga native DV7 och undertryck försök till DV-konvertering', - 'settings.dvConversionDv81Description' => 'Tvinga inline RPU-konvertering till Dolby Vision profil 8.1', - 'settings.dvConversionHevcStripDescription' => 'Ta bort Dolby Vision RPU/EL-lager och presentera vanlig HEVC', + 'settings.dvConversionAutoDescription' => 'Identifiera enhetens funktioner och använd det normala reservbeteendet', + 'settings.dvConversionNativeDescription' => 'Tvinga inbyggd DV7 och förhindra nya försök med DV-konvertering', + 'settings.dvConversionDv81Description' => 'Tvinga direkt RPU-konvertering till Dolby Vision-profil 8.1', + 'settings.dvConversionHevcStripDescription' => 'Ta bort Dolby Visions RPU-/EL-lager och använd vanlig HEVC', 'settings.requireProfileSelectionOnOpen' => 'Fråga efter profil vid appstart', 'settings.requireProfileSelectionOnOpenDescription' => 'Visa profilval varje gång appen öppnas', 'settings.forceTvMode' => 'Tvinga TV-läge', @@ -2447,13 +2453,13 @@ extension on TranslationsSv { 'settings.startInFullscreenDescription' => 'Öppna Plezy i helskärm vid start', 'settings.exitFullscreenOnPlayerClose' => 'Avsluta helskärm vid stängning av spelare', 'settings.exitFullscreenOnPlayerCloseDescription' => 'Avslutar automatiskt helskärmsläge när videospelaren stängs', - 'settings.autoHidePerformanceOverlay' => 'Dölj prestandaöverlagring automatiskt', - 'settings.autoHidePerformanceOverlayDescription' => 'Tona prestandaöverlagringen med uppspelningskontrollerna', + 'settings.autoHidePerformanceOverlay' => 'Dölj prestandainformation automatiskt', + 'settings.autoHidePerformanceOverlayDescription' => 'Tona bort prestandainformationen tillsammans med uppspelningskontrollerna', 'settings.showNavBarLabels' => 'Visa navigeringsfältets etiketter', 'settings.showNavBarLabelsDescription' => 'Visa textetiketter under navigeringsfältets ikoner', - 'settings.startupSection' => 'Startsektion', - 'settings.liveTvDefaultFavorites' => 'Standard till favoritkanaler', - 'settings.liveTvDefaultFavoritesDescription' => 'Visa bara favoritkanaler när du öppnar Live TV', + 'settings.startupSection' => 'Startsida', + 'settings.liveTvDefaultFavorites' => 'Öppna med favoriter', + 'settings.liveTvDefaultFavoritesDescription' => 'Visa endast favoritkanaler när Live-TV öppnas', 'settings.display' => 'Skärm', 'settings.homeScreen' => 'Hemskärm', 'settings.navigation' => 'Navigering', @@ -2461,7 +2467,7 @@ extension on TranslationsSv { 'settings.content' => 'Innehåll', 'settings.player' => 'Spelare', 'settings.subtitlesAndConfig' => 'Undertexter och konfiguration', - 'settings.seekAndTiming' => 'Sök och timing', + 'settings.seekAndTiming' => 'Spolning och tidsinställningar', 'settings.behavior' => 'Beteende', 'search.hint' => 'Sök filmer, serier, musik...', 'search.tryDifferentTerm' => 'Prova en annan sökterm', @@ -2512,8 +2518,8 @@ extension on TranslationsSv { 'fileInfo.bitDepth' => 'Bitdjup', 'fileInfo.colorSpace' => 'Färgrymd', 'fileInfo.colorRange' => 'Färgområde', - 'fileInfo.colorPrimaries' => 'Färggrunder', - 'fileInfo.chromaSubsampling' => 'Kroma-undersampling', + 'fileInfo.colorPrimaries' => 'Färgprimärer', + 'fileInfo.chromaSubsampling' => 'Krominansnedsampling', 'fileInfo.channels' => 'Kanaler', 'fileInfo.subtitles' => 'Undertexter', 'fileInfo.overallBitrate' => 'Total bithastighet', @@ -2522,7 +2528,7 @@ extension on TranslationsSv { 'fileInfo.container' => 'Container', 'fileInfo.duration' => 'Varaktighet', 'fileInfo.optimizedForStreaming' => 'Optimerad för streaming', - 'fileInfo.has64bitOffsets' => '64-bit offset', + 'fileInfo.has64bitOffsets' => '64-bitars offsetvärden', 'mediaMenu.markAsWatched' => 'Markera som sedd', 'mediaMenu.markAsUnwatched' => 'Markera som osedd', 'mediaMenu.removeFromContinueWatching' => 'Ta bort från Fortsätt titta', @@ -2532,10 +2538,10 @@ extension on TranslationsSv { 'mediaMenu.shuffleNotAvailableOffline' => 'Blandad uppspelning är inte tillgänglig offline', 'mediaMenu.fileInfo' => 'Filinformation', 'mediaMenu.deleteFromServer' => 'Ta bort från servern', - 'mediaMenu.confirmDelete' => 'Ta bort detta media och dess filer från din server?', - 'mediaMenu.deleteMultipleWarning' => 'Detta inkluderar alla avsnitt och deras filer.', - 'mediaMenu.mediaDeletedSuccessfully' => 'Mediaobjekt borttaget', - 'mediaMenu.mediaFailedToDelete' => 'Kunde inte ta bort mediaobjekt', + 'mediaMenu.confirmDelete' => 'Ta bort det här medieobjektet och dess filer från servern?', + 'mediaMenu.deleteMultipleWarning' => 'Detta omfattar alla avsnitt och deras filer.', + 'mediaMenu.mediaDeletedSuccessfully' => 'Medieobjektet har tagits bort', + 'mediaMenu.mediaFailedToDelete' => 'Det gick inte att ta bort medieobjektet', 'mediaMenu.rate' => 'Betygsätt', 'mediaMenu.playFromBeginning' => 'Spela från början', 'mediaMenu.playVersion' => 'Spela version...', @@ -2551,9 +2557,9 @@ extension on TranslationsSv { 'accessibility.mediaCardEpisode' => ({required Object title, required Object episodeInfo}) => '${title}, ${episodeInfo}', 'accessibility.mediaCardSeason' => ({required Object title, required Object seasonInfo}) => '${title}, ${seasonInfo}', 'accessibility.mediaCardWatched' => 'sedd', - 'accessibility.mediaCardPartiallyWatched' => ({required Object percent}) => '${percent} procent sedd', + 'accessibility.mediaCardPartiallyWatched' => ({required Object percent}) => 'sett till ${percent} procent', 'accessibility.mediaCardUnwatched' => 'osedd', - 'accessibility.tapToPlay' => 'Tryck för att spela', + 'accessibility.tapToPlay' => 'Tryck för att spela upp', 'accessibility.decrease' => 'Minska', 'accessibility.increase' => 'Öka', 'accessibility.decreaseValue' => ({required Object label}) => 'Minska ${label}', @@ -2565,7 +2571,7 @@ extension on TranslationsSv { 'accessibility.expandText' => 'Expandera text', 'accessibility.collapseText' => 'Fäll ihop text', 'accessibility.alphabetNavigation' => 'Alfabetisk navigering', - 'accessibility.alphabetScrollHint' => 'Svep upp eller ned för att flytta en bokstav', + 'accessibility.alphabetScrollHint' => 'Svep uppåt eller nedåt för att gå mellan bokstäver', 'accessibility.rowColumnPosition' => ({required Object row, required Object rowCount, required Object column, required Object columnCount}) => 'Rad ${row} av ${rowCount}, kolumn ${column} av ${columnCount}', 'accessibility.rowPosition' => ({required Object row, required Object rowCount}) => 'Rad ${row} av ${rowCount}', 'tooltips.shufflePlay' => 'Blanda uppspelning', @@ -2575,17 +2581,17 @@ extension on TranslationsSv { 'audioTracks.track' => ({required Object n}) => 'Ljudspår ${n}', 'videoControls.audioLabel' => 'Ljud', 'videoControls.subtitlesLabel' => 'Undertexter', - 'videoControls.resetToZero' => 'Återställ till 0ms', + 'videoControls.resetToZero' => 'Återställ till 0 ms', 'videoControls.addTime' => ({required Object amount, required Object unit}) => '+${amount}${unit}', 'videoControls.minusTime' => ({required Object amount, required Object unit}) => '-${amount}${unit}', 'videoControls.playsLater' => ({required Object label}) => '${label} spelas senare', 'videoControls.playsEarlier' => ({required Object label}) => '${label} spelas tidigare', - 'videoControls.noOffset' => 'Ingen offset', - 'videoControls.letterbox' => 'Letterbox', - 'videoControls.fillScreen' => 'Fyll skärm', - 'videoControls.stretch' => 'Sträck', - 'videoControls.lockRotation' => 'Lås rotation', - 'videoControls.unlockRotation' => 'Lås upp rotation', + 'videoControls.noOffset' => 'Ingen förskjutning', + 'videoControls.letterbox' => 'Brevlådeformat', + 'videoControls.fillScreen' => 'Fyll skärmen', + 'videoControls.stretch' => 'Sträck ut', + 'videoControls.lockRotation' => 'Lås skärmrotationen', + 'videoControls.unlockRotation' => 'Lås upp skärmrotationen', 'videoControls.timerActive' => 'Timer aktiv', 'videoControls.playbackWillPauseIn' => ({required Object duration}) => 'Uppspelningen pausas om ${duration}', 'videoControls.sleepTimerEndOfVideo' => 'Slutet av aktuell video', @@ -2599,14 +2605,16 @@ extension on TranslationsSv { 'videoControls.playNext' => 'Spela nästa', 'videoControls.playButton' => 'Spela', 'videoControls.pauseButton' => 'Pausa', + 'videoControls.showPlaybackControls' => 'Visa uppspelningskontroller', + 'videoControls.hidePlaybackControls' => 'Dölj uppspelningskontroller', 'videoControls.seekBackwardButton' => ({required Object seconds}) => 'Spola bakåt ${seconds} sekunder', 'videoControls.seekForwardButton' => ({required Object seconds}) => 'Spola framåt ${seconds} sekunder', 'videoControls.previousButton' => 'Föregående avsnitt', 'videoControls.nextButton' => 'Nästa avsnitt', 'videoControls.previousChapterButton' => 'Föregående kapitel', 'videoControls.nextChapterButton' => 'Nästa kapitel', - 'videoControls.muteButton' => 'Tysta', - 'videoControls.unmuteButton' => 'Slå på ljud', + 'videoControls.muteButton' => 'Stäng av ljudet', + 'videoControls.unmuteButton' => 'Slå på ljudet', 'videoControls.settingsButton' => 'Uppspelningsinställningar', 'videoControls.tracksButton' => 'Ljud och undertexter', 'videoControls.chaptersButton' => 'Kapitel', @@ -2617,7 +2625,7 @@ extension on TranslationsSv { 'videoControls.qualityPresetLabel' => ({required Object resolution, required Object bitrate}) => '${resolution}p ${bitrate} Mbps', 'videoControls.transcodeUnavailableFallback' => 'Transkodning otillgänglig — spelar upp i originalkvalitet', 'videoControls.subtitleUnavailableFallback' => 'De valda undertexterna kunde inte läsas in — uppspelningen fortsätter utan undertexter', - 'videoControls.pipButton' => 'Bild-i-bild läge', + 'videoControls.pipButton' => 'Bild-i-bild-läge', 'videoControls.aspectRatioButton' => 'Bildförhållande', 'videoControls.ambientLighting' => 'Ambientbelysning', 'videoControls.fullscreenButton' => 'Aktivera helskärm', @@ -2629,8 +2637,8 @@ extension on TranslationsSv { 'videoControls.longPressToUnlock' => 'Tryck länge för att låsa upp', 'videoControls.timelineSlider' => 'Videotidslinje', 'videoControls.volumeSlider' => 'Volymnivå', - 'videoControls.endsAt' => ({required Object time}) => 'Slutar ${time}', - 'videoControls.pipActive' => 'Spelar i bild-i-bild', + 'videoControls.endsAt' => ({required Object time}) => 'Slutar kl. ${time}', + 'videoControls.pipActive' => 'Spelas upp i bild-i-bild', 'videoControls.pipFailed' => 'Bild-i-bild kunde inte starta', 'videoControls.screenshotSaved' => 'Skärmbild sparad', 'videoControls.zoomPercent' => ({required Object percent}) => 'Zoom ${percent}%', @@ -2651,28 +2659,28 @@ extension on TranslationsSv { 'videoControls.noSubtitlesAvailable' => 'Inga undertexter tillgängliga', 'videoControls.noAudioTracksAvailable' => 'Inga ljudspår tillgängliga', 'videoControls.noTracksAvailable' => 'Inga spår tillgängliga', - 'videoControls.subtitleDownloaded' => 'Undertext nedladdad', - 'videoControls.subtitleDownloadedNotApplied' => 'Undertexten hämtades, men kunde inte väljas', - 'videoControls.subtitleDownloadFailed' => 'Kunde inte ladda ner undertext', + 'videoControls.subtitleDownloaded' => 'Undertexten har laddats ned', + 'videoControls.subtitleDownloadedNotApplied' => 'Undertexten laddades ned men kunde inte väljas', + 'videoControls.subtitleDownloadFailed' => 'Det gick inte att ladda ned undertexten', 'videoControls.searchLanguages' => 'Sök språk...', + _ => null, + } ?? switch (path) { 'messages.markedAsWatched' => 'Markerad som sedd', 'messages.markedAsUnwatched' => 'Markerad som osedd', 'messages.markedAsWatchedOffline' => 'Markerad som sedd (synkroniseras när online)', 'messages.markedAsUnwatchedOffline' => 'Markerad som osedd (synkroniseras när online)', - _ => null, - } ?? switch (path) { 'messages.autoRemovedWatchedDownload' => ({required Object title}) => 'Automatiskt borttagen: ${title}', 'messages.autoRemovedWatchedDownloads' => ({required num n}) => (_root.$meta.cardinalResolver ?? PluralResolvers.cardinal('sv'))(n, one: 'Tog automatiskt bort ${n} sedd nedladdning', other: 'Tog automatiskt bort ${n} sedda nedladdningar', ), 'messages.removedFromContinueWatching' => 'Borttagen från Fortsätt titta', 'messages.errorLoading' => ({required Object error}) => 'Fel: ${error}', - 'messages.streamInterrupted' => 'Uppspelningen avbröts. Tryck på play eller spola för att försöka igen.', - 'messages.liveStreamInterrupted' => 'Livestreamen avbröts. Tryck på play för att försöka igen.', - 'messages.fileInfoNotAvailable' => 'Filinformation inte tillgänglig', - 'messages.playbackAuthenticationRequired' => 'Sign in to the media server again to play this item.', - 'messages.playbackServerUnavailable' => 'The media server is unavailable. Try again later.', - 'messages.playbackDataInvalid' => 'The server returned invalid playback information.', - 'messages.playbackCancelled' => 'Playback was cancelled.', - 'messages.playbackFailed' => 'Playback could not be started.', + 'messages.streamInterrupted' => 'Strömmen avbröts. Tryck på uppspelning eller spola för att försöka igen.', + 'messages.liveStreamInterrupted' => 'Liveströmmen avbröts. Tryck på uppspelning för att försöka igen.', + 'messages.fileInfoNotAvailable' => 'Filinformation är inte tillgänglig', + 'messages.playbackAuthenticationRequired' => 'Logga in på medieservern igen för att spela upp objektet.', + 'messages.playbackServerUnavailable' => 'Medieservern är inte tillgänglig. Försök igen senare.', + 'messages.playbackDataInvalid' => 'Servern returnerade ogiltig uppspelningsinformation.', + 'messages.playbackCancelled' => 'Uppspelningen avbröts.', + 'messages.playbackFailed' => 'Det gick inte att starta uppspelningen.', 'messages.errorLoadingFileInfo' => ({required Object error}) => 'Fel vid laddning av filinformation: ${error}', 'messages.errorLoadingSeries' => 'Fel vid laddning av serie', 'messages.musicNotSupported' => 'Musikuppspelning stöds inte ännu', @@ -2684,11 +2692,11 @@ extension on TranslationsSv { 'messages.logsCopied' => 'Loggar kopierade till urklipp', 'messages.noLogsAvailable' => 'Inga loggar tillgängliga', 'messages.libraryScanning' => ({required Object title}) => 'Skannar "${title}"...', - 'messages.libraryScanStarted' => ({required Object title}) => 'Biblioteksskanning startad för "${title}"', - 'messages.libraryScanFailed' => ({required Object error}) => 'Misslyckades att skanna bibliotek: ${error}', + 'messages.libraryScanStarted' => ({required Object title}) => 'Biblioteksskanningen har startat för "${title}"', + 'messages.libraryScanFailed' => ({required Object error}) => 'Det gick inte att skanna biblioteket: ${error}', 'messages.metadataRefreshing' => ({required Object title}) => 'Uppdaterar metadata för "${title}"...', - 'messages.metadataRefreshStarted' => ({required Object title}) => 'Metadata-uppdatering startad för "${title}"', - 'messages.metadataRefreshFailed' => ({required Object error}) => 'Misslyckades att uppdatera metadata: ${error}', + 'messages.metadataRefreshStarted' => ({required Object title}) => 'Metadatauppdateringen har startat för "${title}"', + 'messages.metadataRefreshFailed' => ({required Object error}) => 'Det gick inte att uppdatera metadata: ${error}', 'messages.logoutConfirm' => 'Är du säker på att du vill logga ut?', 'messages.noSeasonsFound' => 'Inga säsonger hittades', 'messages.seasonsLoadFailed' => 'Det gick inte att läsa in säsonger', @@ -2698,13 +2706,13 @@ extension on TranslationsSv { 'messages.noResultsFound' => 'Inga resultat hittades', 'messages.sleepTimerSet' => ({required Object label}) => 'Sovtimer inställd för ${label}', 'messages.noItemsAvailable' => 'Inga objekt tillgängliga', - 'messages.failedToCreatePlayQueueNoItems' => 'Det gick inte att skapa uppspelningskö – inga objekt', - 'messages.failedPlayback' => ({required Object action, required Object error}) => 'Kunde inte ${action}: ${error}', + 'messages.failedToCreatePlayQueueNoItems' => 'Det gick inte att skapa en uppspelningskö – inga objekt', + 'messages.failedPlayback' => ({required Object action, required Object error}) => 'Det gick inte att ${action}: ${error}', 'messages.switchingToCompatiblePlayer' => 'Byter till kompatibel spelare...', 'messages.serverLimitTitle' => 'Uppspelningen misslyckades', 'messages.serverLimitBody' => 'Serverfel (HTTP 500). En bandbredds-/transkodningsgräns avvisade troligen sessionen. Be ägaren justera den.', - 'messages.logsUploaded' => 'Loggar uppladdade', - 'messages.logsUploadFailed' => 'Uppladdning av loggar misslyckades', + 'messages.logsUploaded' => 'Loggarna har laddats upp', + 'messages.logsUploadFailed' => 'Det gick inte att ladda upp loggarna', 'messages.logId' => 'Logg-ID', 'subtitlingStyling.text' => 'Text', 'subtitlingStyling.border' => 'Kantlinje', @@ -2713,7 +2721,7 @@ extension on TranslationsSv { 'subtitlingStyling.textColor' => 'Textfärg', 'subtitlingStyling.borderSize' => 'Kantstorlek', 'subtitlingStyling.borderColor' => 'Kantfärg', - 'subtitlingStyling.backgroundOpacity' => 'Bakgrundsopacitet', + 'subtitlingStyling.backgroundOpacity' => 'Bakgrundens opacitet', 'subtitlingStyling.backgroundColor' => 'Bakgrundsfärg', 'subtitlingStyling.position' => 'Position', 'subtitlingStyling.assOverride' => 'ASS-åsidosättning', @@ -2727,8 +2735,8 @@ extension on TranslationsSv { 'subtitlingStyling.renderResolution' => 'Renderingsupplösning', 'subtitlingStyling.renderResolutionScreen' => 'Skärmupplösning', 'subtitlingStyling.renderResolutionVideo' => 'Videoupplösning', - 'mpvConfig.title' => 'mpv-konfiguration', - 'mpvConfig.description' => 'Avancerade videospelares inställningar', + 'mpvConfig.title' => 'mpv.conf', + 'mpvConfig.description' => 'Avancerade inställningar för videospelaren', 'mpvConfig.presets' => 'Förval', 'mpvConfig.noPresets' => 'Inga sparade förval', 'mpvConfig.saveAsPreset' => 'Spara som förval...', @@ -2755,13 +2763,13 @@ extension on TranslationsSv { 'profiles.signedOutPlex' => 'Utloggad från Plex.', 'profiles.signOutFailed' => 'Utloggningen misslyckades.', 'profiles.sectionTitle' => 'Profiler', - 'profiles.summarySingle' => 'Lägg till profiler för att blanda hanterade användare och lokala identiteter', + 'profiles.summarySingle' => 'Lägg till profiler för att kombinera hanterade användare och lokala identiteter', 'profiles.summaryMultipleWithActive' => ({required Object count, required Object activeName}) => '${count} profiler · aktiv: ${activeName}', 'profiles.summaryMultiple' => ({required Object count}) => '${count} profiler', - 'profiles.removeConnectionTitle' => 'Ta bort anslutning?', - 'profiles.removeConnectionMessage' => ({required Object displayName, required Object connectionLabel}) => 'Ta bort ${displayName}s åtkomst till ${connectionLabel}. Andra profiler behåller den.', - 'profiles.deleteProfileTitle' => 'Ta bort profil?', - 'profiles.deleteProfileMessage' => ({required Object displayName}) => 'Ta bort ${displayName} och dess anslutningar. Servrar förblir tillgängliga.', + 'profiles.removeConnectionTitle' => 'Ta bort anslutningen?', + 'profiles.removeConnectionMessage' => ({required Object connectionLabel, required Object displayName}) => 'Ta bort åtkomsten till ${connectionLabel} för ${displayName}. Andra profiler behåller den.', + 'profiles.deleteProfileTitle' => 'Ta bort profilen?', + 'profiles.deleteProfileMessage' => ({required Object displayName}) => 'Ta bort ${displayName} och profilens anslutningar. Servrarna förblir tillgängliga.', 'profiles.profileNameLabel' => 'Profilnamn', 'profiles.pinProtectionLabel' => 'PIN-skydd', 'profiles.pinManagedByPlex' => 'PIN hanteras av Plex. Redigera på plex.tv.', @@ -2787,7 +2795,7 @@ extension on TranslationsSv { 'profiles.borrowExplain' => 'Låna en annan profils anslutning. PIN-skyddade profiler kräver en PIN.', 'profiles.borrowEmpty' => 'Inget att låna ännu.', 'profiles.borrowEmptySubtitle' => 'Anslut Plex eller Jellyfin till en annan profil först.', - 'profiles.borrowLoadFailed' => 'Available connections could not be loaded. Try again.', + 'profiles.borrowLoadFailed' => 'Det gick inte att läsa in tillgängliga anslutningar. Försök igen.', 'profiles.borrowFromProfile' => ({required Object displayName}) => 'Från ${displayName}', 'profiles.borrowConnectionBorrowed' => 'Anslutning lånad.', 'profiles.borrowFailed' => 'Kunde inte låna anslutningen.', @@ -2797,9 +2805,9 @@ extension on TranslationsSv { 'profiles.failedToLoadHomeUsers' => 'Kunde inte läsa in dina Plex Home-användare. Kontrollera anslutningen och försök igen.', 'profiles.failedToVerifyPin' => 'Kunde inte verifiera PIN.', 'profiles.newProfile' => 'Ny profil', - 'profiles.profileNameHint' => 't.ex. Gäster, Barn, Familjerum', + 'profiles.profileNameHint' => 't.ex. Gäster, Barn eller Familjerum', 'profiles.pinProtectionOptional' => 'PIN-skydd (valfritt)', - 'profiles.pinExplain' => '4-siffrig PIN krävs för att byta profiler.', + 'profiles.pinExplain' => 'En fyrsiffrig PIN-kod krävs för att byta profil.', 'profiles.continueButton' => 'Fortsätt', 'profiles.pinsDontMatch' => 'PIN-koderna stämmer inte överens', 'connections.sectionTitle' => 'Anslutningar', @@ -2810,10 +2818,10 @@ extension on TranslationsSv { 'connections.sessionExpiredMany' => ({required Object count}) => 'Sessionen har gått ut för ${count} servrar', 'connections.signInAgain' => 'Logga in igen', 'connections.editJellyfinTitle' => 'Redigera Jellyfin-anslutning', - 'connections.editJellyfinIntro' => ({required Object serverName}) => 'Lägg till eller ta bort URL:er för ${serverName}. Plezy använder den nåbara URL:en med lägst latens.', + 'connections.editJellyfinIntro' => ({required Object serverName}) => 'Lägg till eller ta bort URL:er för ${serverName}. Plezy använder den nåbara URL som har lägst latens.', 'discover.title' => 'Upptäck', 'discover.noContentAvailable' => 'Inget innehåll tillgängligt', - 'discover.addMediaToLibraries' => 'Lägg till media till dina bibliotek', + 'discover.addMediaToLibraries' => 'Lägg till medieinnehåll i dina bibliotek', 'discover.continueWatching' => 'Fortsätt titta', 'discover.continueWatchingIn' => ({required Object library}) => 'Fortsätt titta i ${library}', 'discover.nextUp' => 'Nästa', @@ -2826,23 +2834,23 @@ extension on TranslationsSv { 'discover.playEpisode' => ({required Object season, required Object episode}) => 'S${season}E${episode}', 'discover.overview' => 'Översikt', 'discover.cast' => 'Rollbesättning', - 'discover.extras' => 'Trailers och Extra', + 'discover.extras' => 'Trailrar och extramaterial', 'discover.studio' => 'Studio', - 'discover.rating' => 'Åldersgräns', + 'discover.rating' => 'Betyg', 'discover.movie' => 'Film', 'discover.tvShow' => 'TV-serie', 'discover.minutesLeft' => ({required Object minutes}) => '${minutes} min kvar', - 'discover.moreLikeThis' => 'Mer som detta', - 'errors.searchFailed' => ({required Object error}) => 'Sökning misslyckades: ${error}', - 'errors.connectionTimeout' => ({required Object context}) => 'Anslutnings-timeout vid laddning ${context}', - 'errors.connectionFailed' => 'Kan inte ansluta till mediaserver', + 'discover.moreLikeThis' => 'Mer liknande innehåll', + 'errors.searchFailed' => ({required Object error}) => 'Sökningen misslyckades: ${error}', + 'errors.connectionTimeout' => ({required Object context}) => 'Anslutningen tog för lång tid när ${context} lästes in', + 'errors.connectionFailed' => 'Det gick inte att ansluta till medieservern', 'errors.unableToLoad' => ({required Object context}) => 'Det gick inte att läsa in ${context}. Försök igen.', - 'errors.noClientAvailable' => 'Ingen klient tillgänglig', - 'errors.pleaseEnterToken' => 'Vänligen ange en token', + 'errors.noClientAvailable' => 'Ingen klient är tillgänglig', + 'errors.pleaseEnterToken' => 'Ange en token', 'errors.invalidToken' => 'Ogiltig token', - 'errors.failedToVerifyToken' => ({required Object error}) => 'Misslyckades att verifiera token: ${error}', - 'errors.failedToSwitchProfile' => ({required Object displayName}) => 'Misslyckades att byta till ${displayName}', - 'errors.failedToDeleteProfile' => ({required Object displayName}) => 'Misslyckades att ta bort ${displayName}', + 'errors.failedToVerifyToken' => ({required Object error}) => 'Det gick inte att verifiera token: ${error}', + 'errors.failedToSwitchProfile' => ({required Object displayName}) => 'Det gick inte att byta till ${displayName}', + 'errors.failedToDeleteProfile' => ({required Object displayName}) => 'Det gick inte att ta bort ${displayName}', 'errors.failedToRate' => 'Det gick inte att uppdatera betyget', 'libraries.title' => 'Bibliotek', 'libraries.fallbackTitle' => 'Bibliotek', @@ -2852,12 +2860,12 @@ extension on TranslationsSv { 'libraries.analyzeLibrary' => 'Analysera bibliotek', 'libraries.refreshMetadata' => 'Uppdatera metadata', 'libraries.emptyTrash' => 'Töm papperskorg', - 'libraries.emptyingTrash' => ({required Object title}) => 'Tömmer papperskorg för "${title}"...', - 'libraries.trashEmptied' => ({required Object title}) => 'Papperskorg tömd för "${title}"', - 'libraries.failedToEmptyTrash' => ({required Object error}) => 'Misslyckades att tömma papperskorg: ${error}', + 'libraries.emptyingTrash' => ({required Object title}) => 'Tömmer papperskorgen för "${title}"...', + 'libraries.trashEmptied' => ({required Object title}) => 'Papperskorgen har tömts för "${title}"', + 'libraries.failedToEmptyTrash' => ({required Object error}) => 'Det gick inte att tömma papperskorgen: ${error}', 'libraries.analyzing' => ({required Object title}) => 'Analyserar "${title}"...', - 'libraries.analysisStarted' => ({required Object title}) => 'Analys startad för "${title}"', - 'libraries.failedToAnalyze' => ({required Object error}) => 'Misslyckades att analysera bibliotek: ${error}', + 'libraries.analysisStarted' => ({required Object title}) => 'Analysen har startat för "${title}"', + 'libraries.failedToAnalyze' => ({required Object error}) => 'Det gick inte att analysera biblioteket: ${error}', 'libraries.noLibrariesFound' => 'Inga bibliotek hittades', 'libraries.allLibrariesHidden' => 'Alla bibliotek är dolda', 'libraries.hiddenLibrariesCount' => ({required Object count}) => 'Dolda bibliotek (${count})', @@ -2927,15 +2935,15 @@ extension on TranslationsSv { 'libraries.sortLabels.latestEpisodeAirDate' => 'Senaste avsnittets sändningsdatum', 'libraries.sortLabels.lastEpisodeDateAdded' => 'Datum då senaste avsnittet lades till', 'about.title' => 'Om', - 'about.openSourceLicenses' => 'Öppen källkod-licenser', + 'about.openSourceLicenses' => 'Licenser för öppen källkod', 'about.versionLabel' => ({required Object version}) => 'Version ${version}', 'about.appDescription' => 'En vacker Plex- och Jellyfin-klient för Flutter', 'about.viewLicensesDescription' => 'Visa licenser för tredjepartsbibliotek', 'serverSelection.noServersFoundForAccount' => ({required Object username, required Object email}) => 'Inga servrar hittades för ${username} (${email})', - 'serverSelection.failedToLoadServers' => ({required Object error}) => 'Misslyckades att ladda servrar: ${error}', + 'serverSelection.failedToLoadServers' => ({required Object error}) => 'Det gick inte att läsa in servrar: ${error}', 'hubDetail.title' => 'Titel', 'hubDetail.releaseYear' => 'Utgivningsår', - 'hubDetail.dateAdded' => 'Datum tillagd', + 'hubDetail.dateAdded' => 'Tilläggsdatum', 'hubDetail.rating' => 'Betyg', 'hubDetail.noItemsFound' => 'Inga objekt hittades', 'logs.clearLogs' => 'Rensa loggar', @@ -2946,7 +2954,7 @@ extension on TranslationsSv { 'licenses.licenseNumber' => ({required Object number}) => 'Licens ${number}', 'licenses.licensesCount' => ({required Object count}) => '${count} licenser', 'navigation.libraries' => 'Bibliotek', - 'navigation.downloads' => 'Nerladdat', + 'navigation.downloads' => 'Nedladdningar', 'navigation.liveTv' => 'Live-TV', 'navigation.explore' => 'Utforska', 'explore.title' => 'Utforska', @@ -2954,13 +2962,13 @@ extension on TranslationsSv { 'explore.rows.watchlist' => 'Bevakningslista', 'explore.rows.recommendedMovies' => 'Rekommenderade filmer', 'explore.rows.recommendedShows' => 'Rekommenderade serier', - 'explore.rows.trendingMovies' => 'Trendande filmer', - 'explore.rows.trendingShows' => 'Trendande serier', + 'explore.rows.trendingMovies' => 'Populära filmer just nu', + 'explore.rows.trendingShows' => 'Populära serier just nu', 'explore.rows.popularMovies' => 'Populära filmer', 'explore.rows.popularShows' => 'Populära serier', - 'explore.rows.trendingAnime' => 'Trendande anime', - 'explore.rows.suggestedAnime' => 'Föreslagna anime', - 'explore.rows.airingAnime' => 'Bästa pågående anime', + 'explore.rows.trendingAnime' => 'Populär anime just nu', + 'explore.rows.suggestedAnime' => 'Föreslagen anime', + 'explore.rows.airingAnime' => 'Bästa anime som sänds nu', 'explore.rows.popularAnime' => 'Mest populära anime', 'explore.rows.trending' => 'Trendar nu', 'explore.rows.upcomingMovies' => 'Kommande filmer', @@ -2987,11 +2995,11 @@ extension on TranslationsSv { 'liveTv.title' => 'Live-TV', 'liveTv.guide' => 'Programguide', 'liveTv.noChannels' => 'Inga kanaler tillgängliga', - 'liveTv.noDvr' => 'Ingen DVR konfigurerad på någon server', - 'liveTv.serverUnavailable' => 'Live-tv-servern är inte tillgänglig.', - 'liveTv.serverNotConnected' => 'Live-tv-servern är inte ansluten.', - 'liveTv.noPrograms' => 'Ingen programdata tillgänglig', - 'liveTv.liveStreamFailed' => 'Liveström misslyckades', + 'liveTv.noDvr' => 'Ingen DVR har konfigurerats på någon server', + 'liveTv.serverUnavailable' => 'Live-TV-servern är inte tillgänglig.', + 'liveTv.serverNotConnected' => 'Live-TV-servern är inte ansluten.', + 'liveTv.noPrograms' => 'Ingen programinformation är tillgänglig', + 'liveTv.liveStreamFailed' => 'Liveströmmen kunde inte startas', 'liveTv.unknownProgram' => 'Okänt program', 'liveTv.unknownHub' => 'Okänt', 'liveTv.unknownError' => 'Okänt fel', @@ -3013,7 +3021,7 @@ extension on TranslationsSv { 'liveTv.favorites' => 'Favoriter', 'liveTv.reorderFavorites' => 'Ordna om favoriter', 'liveTv.favoritesLoadFailed' => 'Det gick inte att läsa in favoriter. Kontrollera anslutningen och försök igen.', - 'liveTv.favoritesUpdateFailed' => 'Could not update favorites. Check your connection and try again.', + 'liveTv.favoritesUpdateFailed' => 'Det gick inte att uppdatera favoriterna. Kontrollera anslutningen och försök igen.', 'liveTv.joinSession' => 'Gå med i pågående session', 'liveTv.watchFromStart' => ({required Object minutes}) => 'Titta från början (${minutes} min sedan)', 'liveTv.watchLive' => 'Titta live', @@ -3040,16 +3048,16 @@ extension on TranslationsSv { 'liveTv.recordingFailed' => 'Det gick inte att schemalägga inspelning', 'liveTv.recordingTargetMissing' => 'Det gick inte att hitta inspelningsbibliotek', 'liveTv.recordNotAvailable' => 'Inspelning är inte tillgänglig för detta program', - 'liveTv.recordingCancelled' => 'Inspelning avbruten', - 'liveTv.recordingRuleDeleted' => 'Inspelningsregel borttagen', + 'liveTv.recordingCancelled' => 'Inspelningen har avbrutits', + 'liveTv.recordingRuleDeleted' => 'Inspelningsregeln har tagits bort', 'liveTv.processRecordingRules' => 'Utvärdera regler igen', 'liveTv.recordingInProgress' => 'Spelar in nu', 'liveTv.recordingsCount' => ({required Object count}) => '${count} schemalagda', 'liveTv.editRule' => 'Redigera regel', 'liveTv.editRuleAction' => 'Redigera', 'liveTv.recordingRuleUpdated' => 'Inspelningsregel uppdaterad', - 'liveTv.guideReloadRequested' => 'Begärde guidens uppdatering', - 'liveTv.rulesProcessRequested' => 'Begärde regelutvärdering', + 'liveTv.guideReloadRequested' => 'Uppdatering av programguiden har begärts', + 'liveTv.rulesProcessRequested' => 'Ny regelutvärdering har begärts', 'liveTv.recordShow' => 'Spela in program', 'collections.title' => 'Samlingar', 'collections.collection' => 'Samling', @@ -3062,14 +3070,14 @@ extension on TranslationsSv { 'collections.selectCollection' => 'Välj samling', 'collections.collectionName' => 'Samlingsnamn', 'collections.enterCollectionName' => 'Ange samlingsnamn', - 'collections.addedToCollection' => 'Tillagd i samling', - 'collections.errorAddingToCollection' => 'Fel vid tillägg i samling', - 'collections.created' => 'Samling skapad', - 'collections.removeFromCollection' => 'Ta bort från samling', - 'collections.removeFromCollectionConfirm' => ({required Object title}) => 'Ta bort "${title}" från denna samling?', - 'collections.removedFromCollection' => 'Borttagen från samling', - 'collections.removeFromCollectionFailed' => 'Misslyckades med att ta bort från samling', - 'collections.removeFromCollectionError' => ({required Object error}) => 'Fel vid borttagning från samling: ${error}', + 'collections.addedToCollection' => 'Objektet har lagts till i samlingen', + 'collections.errorAddingToCollection' => 'Det gick inte att lägga till objektet i samlingen', + 'collections.created' => 'Samlingen har skapats', + 'collections.removeFromCollection' => 'Ta bort från samlingen', + 'collections.removeFromCollectionConfirm' => ({required Object title}) => 'Ta bort "${title}" från den här samlingen?', + 'collections.removedFromCollection' => 'Objektet har tagits bort från samlingen', + 'collections.removeFromCollectionFailed' => 'Det gick inte att ta bort objektet från samlingen', + 'collections.removeFromCollectionError' => ({required Object error}) => 'Fel när objektet skulle tas bort från samlingen: ${error}', 'collections.searchCollections' => 'Sök samlingar...', 'playlists.title' => 'Spellistor', 'playlists.playlist' => 'Spellista', @@ -3085,18 +3093,18 @@ extension on TranslationsSv { 'playlists.emptyPlaylist' => 'Denna spellista är tom', 'playlists.deleteConfirm' => 'Ta bort spellista?', 'playlists.deleteMessage' => ({required Object name}) => 'Är du säker på att du vill ta bort "${name}"?', - 'playlists.created' => 'Spellista skapad', - 'playlists.deleted' => 'Spellista borttagen', - 'playlists.itemAdded' => 'Tillagd i spellista', - 'playlists.itemRemoved' => 'Borttagen från spellista', + 'playlists.created' => 'Spellistan har skapats', + 'playlists.deleted' => 'Spellistan har tagits bort', + 'playlists.itemAdded' => 'Objektet har lagts till i spellistan', + 'playlists.itemRemoved' => 'Objektet har tagits bort från spellistan', 'playlists.selectPlaylist' => 'Välj spellista', 'playlists.searchPlaylists' => 'Sök i spellistor...', - 'playlists.errorCreating' => 'Det gick inte att skapa spellista', - 'playlists.errorDeleting' => 'Det gick inte att ta bort spellista', - 'playlists.errorLoading' => 'Det gick inte att ladda spellistor', - 'playlists.errorAdding' => 'Det gick inte att lägga till i spellista', - 'playlists.errorReordering' => 'Det gick inte att omordna spellisteobjekt', - 'playlists.errorRemoving' => 'Det gick inte att ta bort från spellista', + 'playlists.errorCreating' => 'Det gick inte att skapa spellistan', + 'playlists.errorDeleting' => 'Det gick inte att ta bort spellistan', + 'playlists.errorLoading' => 'Det gick inte att läsa in spellistor', + 'playlists.errorAdding' => 'Det gick inte att lägga till objektet i spellistan', + 'playlists.errorReordering' => 'Det gick inte att flytta objektet i spellistan', + 'playlists.errorRemoving' => 'Det gick inte att ta bort objektet från spellistan', 'music.goToAlbum' => 'Gå till album', 'music.goToArtist' => 'Gå till artist', 'music.instantMix' => 'Snabbmix', @@ -3119,21 +3127,21 @@ extension on TranslationsSv { 'music.repeat' => 'Upprepa', 'music.repeatAll' => 'Upprepa alla', 'music.repeatOne' => 'Upprepa en låt', - 'watchTogether.title' => 'Titta Tillsammans', + 'watchTogether.title' => 'Titta tillsammans', 'watchTogether.description' => 'Titta på innehåll synkroniserat med vänner och familj', - 'watchTogether.createSession' => 'Skapa Session', + 'watchTogether.createSession' => 'Skapa session', 'watchTogether.creating' => 'Skapar...', - 'watchTogether.joinSession' => 'Gå med i Session', + 'watchTogether.joinSession' => 'Gå med i session', 'watchTogether.joining' => 'Ansluter...', - 'watchTogether.controlMode' => 'Kontrollläge', + 'watchTogether.controlMode' => 'Kontrolläge', 'watchTogether.controlModeQuestion' => 'Vem kan styra uppspelningen?', - 'watchTogether.hostOnly' => 'Endast Värd', + 'watchTogether.hostOnly' => 'Endast värden', 'watchTogether.anyone' => 'Alla', - 'watchTogether.hostingSession' => 'Värd för Session', - 'watchTogether.inSession' => 'I Session', + 'watchTogether.hostingSession' => 'Värd för sessionen', + 'watchTogether.inSession' => 'I en session', 'watchTogether.sessionCode' => 'Sessionskod', - 'watchTogether.openSessionControls' => 'Öppna sessionskontroller för Titta Tillsammans', - 'watchTogether.copySessionCode' => 'Kopiera sessionskod', + 'watchTogether.openSessionControls' => 'Öppna sessionskontroller för Titta tillsammans', + 'watchTogether.copySessionCode' => 'Kopiera sessionskoden', 'watchTogether.hostControlsPlayback' => 'Värden styr uppspelningen', 'watchTogether.anyoneCanControl' => 'Alla kan styra uppspelningen', 'watchTogether.hostControls' => 'Värd styr', @@ -3143,10 +3151,10 @@ extension on TranslationsSv { 'watchTogether.hostBadge' => 'VÄRD', 'watchTogether.youAreHost' => 'Du är värden', 'watchTogether.watchingWithOthers' => 'Tittar med andra', - 'watchTogether.endSession' => 'Avsluta Session', - 'watchTogether.leaveSession' => 'Lämna Session', - 'watchTogether.endSessionQuestion' => 'Avsluta Session?', - 'watchTogether.leaveSessionQuestion' => 'Lämna Session?', + 'watchTogether.endSession' => 'Avsluta session', + 'watchTogether.leaveSession' => 'Lämna session', + 'watchTogether.endSessionQuestion' => 'Avsluta sessionen?', + 'watchTogether.leaveSessionQuestion' => 'Lämna sessionen?', 'watchTogether.endSessionConfirm' => 'Detta avslutar sessionen för alla deltagare.', 'watchTogether.leaveSessionConfirm' => 'Du kommer att tas bort från sessionen.', 'watchTogether.endSessionConfirmOverlay' => 'Detta avslutar tittarsessionen för alla deltagare.', @@ -3154,35 +3162,35 @@ extension on TranslationsSv { 'watchTogether.end' => 'Avsluta', 'watchTogether.leave' => 'Lämna', 'watchTogether.syncing' => 'Synkroniserar...', - 'watchTogether.joinWatchSession' => 'Gå med i Tittarsession', - 'watchTogether.enterCodeHint' => 'Ange 5-teckens kod', + 'watchTogether.joinWatchSession' => 'Gå med i tittarsession', + 'watchTogether.enterCodeHint' => 'Ange en kod med 5 tecken', 'watchTogether.pasteFromClipboard' => 'Klistra in från urklipp', - 'watchTogether.pleaseEnterCode' => 'Vänligen ange en sessionskod', - 'watchTogether.codeMustBe5Chars' => 'Sessionskod måste vara 5 tecken', + 'watchTogether.pleaseEnterCode' => 'Ange en sessionskod', + 'watchTogether.codeMustBe5Chars' => 'Sessionskoden måste bestå av 5 tecken', 'watchTogether.joinInstructions' => 'Ange värdens sessionskod för att gå med.', - 'watchTogether.failedToCreate' => 'Det gick inte att skapa session', - 'watchTogether.failedToJoin' => 'Det gick inte att gå med i session', - 'watchTogether.sessionCodeCopied' => 'Sessionskod kopierad till urklipp', - 'watchTogether.relayUnreachable' => 'Relay-servern kan inte nås. ISP-blockering kan hindra Watch Together.', - 'watchTogether.reconnectingToHost' => 'Återansluter till värd...', + 'watchTogether.failedToCreate' => 'Det gick inte att skapa sessionen', + 'watchTogether.failedToJoin' => 'Det gick inte att gå med i sessionen', + 'watchTogether.sessionCodeCopied' => 'Sessionskoden har kopierats till urklipp', + 'watchTogether.relayUnreachable' => 'Reläservern kan inte nås. Din internetleverantör kan blockera Titta tillsammans.', + 'watchTogether.reconnectingToHost' => 'Återansluter till värden...', 'watchTogether.currentPlayback' => 'Aktuell uppspelning', 'watchTogether.joinCurrentPlayback' => 'Gå med i aktuell uppspelning', 'watchTogether.joinCurrentPlaybackDescription' => 'Hoppa tillbaka till det värden tittar på just nu', 'watchTogether.failedToOpenCurrentPlayback' => 'Kunde inte öppna aktuell uppspelning', + _ => null, + } ?? switch (path) { 'watchTogether.participantJoined' => ({required Object name}) => '${name} gick med', 'watchTogether.participantLeft' => ({required Object name}) => '${name} lämnade', 'watchTogether.participantPaused' => ({required Object name}) => '${name} pausade', 'watchTogether.participantResumed' => ({required Object name}) => '${name} återupptog', - _ => null, - } ?? switch (path) { - 'watchTogether.participantSeeked' => ({required Object name}) => '${name} spolade', + 'watchTogether.participantSeeked' => ({required Object name}) => '${name} ändrade uppspelningspositionen', 'watchTogether.participantBuffering' => ({required Object name}) => '${name} buffrar', 'watchTogether.participantNeedsUpdate' => ({required Object name}) => '${name} använder en äldre appversion — synkronisering är inte tillgänglig', 'watchTogether.resumingWithout' => ({required Object name}) => 'Återupptar utan ${name}', - 'watchTogether.waitingForParticipants' => 'Väntar på att andra laddar...', + 'watchTogether.waitingForParticipants' => 'Väntar på att de andra ska ladda klart...', 'watchTogether.waitingForName' => ({required Object name}) => 'Väntar på ${name}...', - 'watchTogether.recentRooms' => 'Senaste rum', - 'watchTogether.renameRoom' => 'Byt namn på rum', + 'watchTogether.recentRooms' => 'Senaste rummen', + 'watchTogether.renameRoom' => 'Byt namn på rummet', 'watchTogether.removeRoom' => 'Ta bort', 'watchTogether.guestSwitchUnavailable' => 'Kunde inte byta — server inte tillgänglig för synkronisering', 'watchTogether.guestSwitchFailed' => 'Kunde inte byta — innehåll hittades inte på denna server', @@ -3193,13 +3201,13 @@ extension on TranslationsSv { 'downloads.music' => 'Musik', 'downloads.tracksQueued' => ({required Object count}) => '${count} låtar i nedladdningskö', 'downloads.noDownloads' => 'Inga nedladdningar ännu', - 'downloads.noDownloadsDescription' => 'Nedladdat innehåll visas här för offline-visning', + 'downloads.noDownloadsDescription' => 'Nedladdat innehåll visas här så att du kan titta offline', 'downloads.downloadNow' => 'Ladda ner', 'downloads.deleteDownload' => 'Ta bort nedladdning', 'downloads.retryDownload' => 'Försök igen', 'downloads.downloadQueued' => 'Nedladdning köad', 'downloads.downloadResumed' => 'Nedladdning återupptagen', - 'downloads.serverErrorBitrate' => 'Serverfel: filen kan överskrida gränsen för fjärrbitrate', + 'downloads.serverErrorBitrate' => 'Serverfel: filen kan överskrida serverns bithastighetsgräns', 'downloads.episodesQueued' => ({required Object count}) => '${count} avsnitt köade för nedladdning', 'downloads.downloadDeleted' => 'Nedladdning borttagen', 'downloads.deleteConfirm' => ({required Object title}) => 'Ta bort "${title}" från den här enheten?', @@ -3264,8 +3272,8 @@ extension on TranslationsSv { 'shaders.mode' => 'Läge', 'shaders.importShader' => 'Importera shader', 'shaders.customShaderDescription' => 'Anpassad GLSL-shader', - 'shaders.shaderImported' => 'Shader importerad', - 'shaders.shaderImportFailed' => 'Kunde inte importera shader', + 'shaders.shaderImported' => 'Shadern har importerats', + 'shaders.shaderImportFailed' => 'Det gick inte att importera shadern', 'shaders.deleteShader' => 'Ta bort shader', 'shaders.deleteShaderConfirm' => ({required Object name}) => 'Ta bort "${name}"?', 'companionRemote.title' => 'Fjärrkontroll', @@ -3276,9 +3284,9 @@ extension on TranslationsSv { 'companionRemote.session.connected' => 'Ansluten', 'companionRemote.session.serverRunning' => 'Fjärrserver aktiv', 'companionRemote.session.serverStopped' => 'Fjärrserver stoppad', - 'companionRemote.session.serverRunningDescription' => 'Mobila enheter i ditt nätverk kan ansluta till den här appen', - 'companionRemote.session.serverStoppedDescription' => 'Starta servern för att tillåta mobila enheter att ansluta', - 'companionRemote.session.usePhoneToControl' => 'Använd din mobila enhet för att styra denna app', + 'companionRemote.session.serverRunningDescription' => 'Mobila enheter i nätverket kan ansluta till appen', + 'companionRemote.session.serverStoppedDescription' => 'Starta servern så att mobila enheter kan ansluta', + 'companionRemote.session.usePhoneToControl' => 'Använd din mobila enhet för att styra appen', 'companionRemote.session.startServer' => 'Starta server', 'companionRemote.session.stopServer' => 'Stoppa server', 'companionRemote.session.minimize' => 'Minimera', @@ -3287,15 +3295,15 @@ extension on TranslationsSv { 'companionRemote.pairing.connecting' => 'Ansluter...', 'companionRemote.pairing.searchingForDevices' => 'Söker efter enheter...', 'companionRemote.pairing.noDevicesFound' => 'Inga enheter hittades i ditt nätverk', - 'companionRemote.pairing.noDevicesHint' => 'Öppna Plezy på desktop och använd samma WiFi', + 'companionRemote.pairing.noDevicesHint' => 'Öppna Plezy på datorn och använd samma wifi', 'companionRemote.pairing.availableDevices' => 'Tillgängliga enheter', 'companionRemote.pairing.manualConnection' => 'Manuell anslutning', 'companionRemote.pairing.cryptoInitFailed' => 'Kunde inte starta säker anslutning. Logga in på Plex först.', 'companionRemote.pairing.validationHostRequired' => 'Ange värdadress', - 'companionRemote.pairing.validationHostFormat' => 'Format måste vara IP:port (t.ex. 192.168.1.100:48632)', - 'companionRemote.pairing.connectionTimedOut' => 'Anslutningen tog för lång tid. Använd samma nätverk på båda enheter.', - 'companionRemote.pairing.sessionNotFound' => 'Enhet hittades inte. Kontrollera att Plezy körs på värden.', - 'companionRemote.pairing.authFailed' => 'Autentisering misslyckades. Båda enheter behöver samma Plex-konto.', + 'companionRemote.pairing.validationHostFormat' => 'Formatet måste vara IP:port (t.ex. 192.168.1.100:48632)', + 'companionRemote.pairing.connectionTimedOut' => 'Anslutningen tog för lång tid. Använd samma nätverk på båda enheterna.', + 'companionRemote.pairing.sessionNotFound' => 'Enheten hittades inte. Kontrollera att Plezy körs på värden.', + 'companionRemote.pairing.authFailed' => 'Autentiseringen misslyckades. Båda enheterna måste använda samma Plex-konto.', 'companionRemote.pairing.failedToConnect' => ({required Object error}) => 'Kunde inte ansluta: ${error}', 'companionRemote.remote.disconnectConfirm' => 'Vill du koppla från fjärrsessionen?', 'companionRemote.remote.reconnecting' => 'Återansluter...', @@ -3325,13 +3333,13 @@ extension on TranslationsSv { 'companionRemote.remote.audio' => 'Ljud', 'companionRemote.remote.searchHint' => 'Sök på datorn...', 'companionRemote.errors.noNetworkInterface' => 'Inget nätverksgränssnitt hittades', - 'companionRemote.errors.authenticationFailed' => 'Autentisering misslyckades', + 'companionRemote.errors.authenticationFailed' => 'Autentiseringen misslyckades', 'companionRemote.errors.serverStartFailed' => ({required Object error}) => 'Det gick inte att starta fjärrservern: ${error}', 'companionRemote.errors.commandFailed' => ({required Object error}) => 'Det gick inte att skicka fjärrkommandot: ${error}', - 'companionRemote.errors.joinTimedOut' => 'Tidsgräns vid anslutning till session', - 'companionRemote.errors.failedToConnectAnyAddress' => 'Kunde inte ansluta till någon adress', - 'companionRemote.errors.connectionLostAfterAttempts' => ({required Object attempts}) => 'Anslutning förlorad efter ${attempts} försök', - 'companionRemote.errors.connectionLost' => 'Anslutning förlorad', + 'companionRemote.errors.joinTimedOut' => 'Det tog för lång tid att ansluta till sessionen', + 'companionRemote.errors.failedToConnectAnyAddress' => 'Det gick inte att ansluta till någon adress', + 'companionRemote.errors.connectionLostAfterAttempts' => ({required Object attempts}) => 'Anslutningen bröts efter ${attempts} försök', + 'companionRemote.errors.connectionLost' => 'Anslutningen bröts', 'videoSettings.playbackSpeed' => 'Uppspelningshastighet', 'videoSettings.normalSpeed' => 'Normal', 'videoSettings.sleepTimerActive' => ({required Object duration}) => 'Aktiv (${duration})', @@ -3342,7 +3350,7 @@ extension on TranslationsSv { 'videoSettings.hdr' => 'HDR', 'videoSettings.audioOutput' => 'Ljudutgång', 'videoSettings.performanceOverlay' => 'Prestandaöverlägg', - 'videoSettings.audioPassthrough' => 'Ljudgenomkoppling', + 'videoSettings.audioPassthrough' => 'Ljudgenomströmning', 'videoSettings.audioNormalization' => 'Normalisera ljudstyrka', 'videoSettings.audioDownmix' => 'Nedmixning till stereo', 'performanceOverlay.color' => 'Färg', @@ -3351,7 +3359,7 @@ extension on TranslationsSv { 'performanceOverlay.app' => 'App', 'performanceOverlay.decoder' => 'Dekoder', 'performanceOverlay.rawDecoder' => 'Rå dekoder', - 'performanceOverlay.tunneling' => 'Tunneling', + 'performanceOverlay.tunneling' => 'Tunnling', 'performanceOverlay.aspect' => 'Bildformat', 'performanceOverlay.rotation' => 'Rotation', 'performanceOverlay.dvSource' => 'DV-källa', @@ -3362,19 +3370,19 @@ extension on TranslationsSv { 'performanceOverlay.hwFormat' => 'HW-format', 'performanceOverlay.matrix' => 'Matris', 'performanceOverlay.primaries' => 'Primärfärger', - 'performanceOverlay.transfer' => 'Transfer', - 'performanceOverlay.renderFps' => 'Render-FPS', + 'performanceOverlay.transfer' => 'Överföring', + 'performanceOverlay.renderFps' => 'Renderings-FPS', 'performanceOverlay.displayFps' => 'Skärm-FPS', 'performanceOverlay.avSync' => 'A/V-synk', - 'performanceOverlay.dropped' => 'Tappade', - 'performanceOverlay.dvRpus' => 'DV RPU:er', - 'performanceOverlay.dvRpuAverage' => 'DV RPU snitt', - 'performanceOverlay.dvSampleAverage' => 'DV-sample snitt', + 'performanceOverlay.dropped' => 'Tappade bildrutor', + 'performanceOverlay.dvRpus' => 'DV-RPU:er', + 'performanceOverlay.dvRpuAverage' => 'DV-RPU, genomsnitt', + 'performanceOverlay.dvSampleAverage' => 'DV-sampling, genomsnitt', 'performanceOverlay.maxLuma' => 'Max luma', 'performanceOverlay.minLuma' => 'Min luma', 'performanceOverlay.maxCll' => 'MaxCLL', 'performanceOverlay.maxFall' => 'MaxFALL', - 'performanceOverlay.cacheUsed' => 'Cache använd', + 'performanceOverlay.cacheUsed' => 'Använt cacheminne', 'performanceOverlay.cacheLimit' => 'Cachegräns', 'performanceOverlay.speed' => 'Hastighet', 'performanceOverlay.player' => 'Spelare', @@ -3398,8 +3406,8 @@ extension on TranslationsSv { 'externalPlayer.playInExternalPlayer' => 'Spela i extern spelare', 'metadataEdit.editMetadata' => 'Redigera...', 'metadataEdit.screenTitle' => 'Redigera metadata', - 'metadataEdit.basicInfo' => 'Grundläggande info', - 'metadataEdit.artwork' => 'Artwork', + 'metadataEdit.basicInfo' => 'Grundläggande information', + 'metadataEdit.artwork' => 'Bildmaterial', 'metadataEdit.advancedSettings' => 'Avancerade inställningar', 'metadataEdit.title' => 'Titel', 'metadataEdit.sortTitle' => 'Sorteringstitel', @@ -3407,13 +3415,13 @@ extension on TranslationsSv { 'metadataEdit.releaseDate' => 'Utgivningsdatum', 'metadataEdit.contentRating' => 'Åldersgräns', 'metadataEdit.studio' => 'Studio', - 'metadataEdit.tagline' => 'Tagline', + 'metadataEdit.tagline' => 'Slogan', 'metadataEdit.summary' => 'Sammanfattning', - 'metadataEdit.poster' => 'Poster', + 'metadataEdit.poster' => 'Affisch', 'metadataEdit.background' => 'Bakgrund', 'metadataEdit.logo' => 'Logotyp', 'metadataEdit.squareArt' => 'Kvadratisk bild', - 'metadataEdit.selectPoster' => 'Välj poster', + 'metadataEdit.selectPoster' => 'Välj affisch', 'metadataEdit.selectBackground' => 'Välj bakgrund', 'metadataEdit.selectLogo' => 'Välj logotyp', 'metadataEdit.selectSquareArt' => 'Välj kvadratisk bild', @@ -3421,11 +3429,11 @@ extension on TranslationsSv { 'metadataEdit.uploadFile' => 'Ladda upp fil', 'metadataEdit.enterImageUrl' => 'Ange bild-URL', 'metadataEdit.imageUrl' => 'Bild-URL', - 'metadataEdit.metadataUpdated' => 'Metadata uppdaterad', - 'metadataEdit.metadataUpdateFailed' => 'Kunde inte uppdatera metadata', - 'metadataEdit.artworkUpdated' => 'Artwork uppdaterad', - 'metadataEdit.artworkUpdateFailed' => 'Kunde inte uppdatera artwork', - 'metadataEdit.noArtworkAvailable' => 'Ingen artwork tillgänglig', + 'metadataEdit.metadataUpdated' => 'Metadata har uppdaterats', + 'metadataEdit.metadataUpdateFailed' => 'Det gick inte att uppdatera metadata', + 'metadataEdit.artworkUpdated' => 'Bildmaterialet har uppdaterats', + 'metadataEdit.artworkUpdateFailed' => 'Det gick inte att uppdatera bildmaterialet', + 'metadataEdit.noArtworkAvailable' => 'Inget bildmaterial är tillgängligt', 'metadataEdit.artworkOption' => ({required Object index}) => 'Bildalternativ ${index}', 'metadataEdit.selectedArtworkOption' => ({required Object index}) => 'Bildalternativ ${index}, valt', 'metadataEdit.notSet' => 'Inte angiven', @@ -3457,15 +3465,15 @@ extension on TranslationsSv { 'metadataEdit.useOriginalTitle' => 'Använd originaltitel', 'metadataEdit.preferredAudioLanguage' => 'Föredraget ljudspråk', 'metadataEdit.preferredSubtitleLanguage' => 'Föredraget undertextspråk', - 'metadataEdit.subtitleMode' => 'Automatiskt val av undertexter', + 'metadataEdit.subtitleMode' => 'Läge för automatiskt undertextval', 'metadataEdit.manuallySelected' => 'Manuellt vald', - 'metadataEdit.shownWithForeignAudio' => 'Visas vid främmande ljud', + 'metadataEdit.shownWithForeignAudio' => 'Visas med ljud på främmande språk', 'metadataEdit.alwaysEnabled' => 'Alltid aktiverad', 'metadataEdit.tags' => 'Taggar', 'metadataEdit.addTag' => 'Lägg till tagg', 'metadataEdit.genre' => 'Genre', 'metadataEdit.director' => 'Regissör', - 'metadataEdit.writer' => 'Författare', + 'metadataEdit.writer' => 'Manusförfattare', 'metadataEdit.producer' => 'Producent', 'metadataEdit.country' => 'Land', 'metadataEdit.collection' => 'Samling', @@ -3492,10 +3500,10 @@ extension on TranslationsSv { 'trakt.connectedAs' => ({required Object username}) => 'Ansluten som @${username}', 'trakt.disconnectConfirm' => 'Koppla från Trakt-konto?', 'trakt.disconnectConfirmBody' => 'Plezy slutar skicka händelser till Trakt. Du kan återansluta när som helst.', - 'trakt.scrobble' => 'Realtids-scrobbling', - 'trakt.scrobbleDescription' => 'Skicka uppspelnings-, paus- och stopphändelser till Trakt under uppspelning.', - 'trakt.watchedSync' => 'Synkronisera tittad-status', - 'trakt.watchedSyncDescription' => 'När du markerar något som tittat i Plezy markeras det också på Trakt.', + 'trakt.scrobble' => 'Realtidsspårning', + 'trakt.scrobbleDescription' => 'Skicka händelser för uppspelning, paus och stopp till Trakt under uppspelningen.', + 'trakt.watchedSync' => 'Synkronisera seddstatus', + 'trakt.watchedSyncDescription' => 'När du markerar objekt som sedda i Plezy markeras de även som sedda på Trakt.', 'seerr.title' => 'Seerr', 'seerr.connectTitle' => 'Anslut Seerr', 'seerr.serverUrl' => 'Server-URL', @@ -3519,7 +3527,7 @@ extension on TranslationsSv { 'seerr.rootFolder' => 'Rotmapp', 'seerr.languageProfile' => 'Språkprofil', 'seerr.requestSubmitted' => 'Begäran skickad', - 'seerr.requestFailed' => ({required Object error}) => 'Begäran misslyckades: ${error}', + 'seerr.requestFailed' => ({required Object error}) => 'Begäran kunde inte genomföras: ${error}', 'seerr.requestsLoadFailed' => 'Det gick inte att läsa in alternativ för begäran', 'seerr.nothingToRequest' => 'Allt är redan tillgängligt eller begärt.', 'seerr.statusAvailable' => 'Tillgänglig', @@ -3527,11 +3535,11 @@ extension on TranslationsSv { 'seerr.statusRequested' => 'Begärd', 'seerr.statusProcessing' => 'Bearbetas', 'services.title' => 'Tjänster', - 'services.hubSubtitle' => 'Synkronisera dina framsteg och begär nya titlar.', - 'services.notConnected' => 'Ej ansluten', + 'services.hubSubtitle' => 'Synkronisera visningsstatus och begär nya titlar.', + 'services.notConnected' => 'Inte ansluten', 'services.connectedAs' => ({required Object username}) => 'Ansluten som @${username}', - 'services.scrobble' => 'Spåra framsteg automatiskt', - 'services.scrobbleDescription' => 'Uppdaterar din lista när du är klar med ett avsnitt eller en film.', + 'services.scrobble' => 'Spåra uppspelningen automatiskt', + 'services.scrobbleDescription' => 'Uppdatera din lista när du har sett klart ett avsnitt eller en film.', 'services.disconnectConfirm' => ({required Object service}) => 'Koppla från ${service}?', 'services.disconnectConfirmBody' => ({required Object service}) => 'Plezy slutar uppdatera ${service}. Återanslut när som helst.', 'services.connectFailed' => ({required Object service}) => 'Kunde inte ansluta till ${service}. Försök igen.', @@ -3556,15 +3564,15 @@ extension on TranslationsSv { 'services.libraryFilter.subtitleBlocked' => ({required Object count}) => '${count} blockerade', 'services.libraryFilter.subtitleAllowed' => ({required Object count}) => '${count} tillåtna', 'services.libraryFilter.mode' => 'Filterläge', - 'services.libraryFilter.modeBlacklist' => 'Svartlista', - 'services.libraryFilter.modeWhitelist' => 'Vitlista', - 'services.libraryFilter.modeHintBlacklist' => 'Synkronisera alla bibliotek utom de som markerats nedan.', - 'services.libraryFilter.modeHintWhitelist' => 'Synkronisera endast de bibliotek som markerats nedan.', + 'services.libraryFilter.modeBlacklist' => 'Blockeringslista', + 'services.libraryFilter.modeWhitelist' => 'Tillåtelselista', + 'services.libraryFilter.modeHintBlacklist' => 'Synkronisera alla bibliotek utom de som markeras nedan.', + 'services.libraryFilter.modeHintWhitelist' => 'Synkronisera endast de bibliotek som markeras nedan.', 'services.libraryFilter.libraries' => 'Bibliotek', 'services.libraryFilter.noLibraries' => 'Inga bibliotek tillgängliga', 'addServer.addJellyfinTitle' => 'Lägg till Jellyfin-server', 'addServer.serverUrls' => 'Server-URL:er', - 'addServer.serverUrlsHelper' => 'Flera URL:er tillåtna, separerade med kommatecken.', + 'addServer.serverUrlsHelper' => 'Du kan ange flera URL:er avgränsade med kommatecken.', 'addServer.findServer' => 'Hitta server', 'addServer.searchingLocalServers' => 'Söker efter lokala Jellyfin-servrar...', 'addServer.localServers' => 'Lokala Jellyfin-servrar', @@ -3574,7 +3582,7 @@ extension on TranslationsSv { 'addServer.change' => 'Ändra', 'addServer.required' => 'Krävs', 'addServer.couldNotReachServer' => ({required Object error}) => 'Kunde inte nå servern: ${error}', - 'addServer.signInFailed' => ({required Object error}) => 'Inloggning misslyckades: ${error}', + 'addServer.signInFailed' => ({required Object error}) => 'Det gick inte att logga in: ${error}', 'addServer.quickConnectFailed' => ({required Object error}) => 'Quick Connect misslyckades: ${error}', 'addServer.addPlexTitle' => 'Logga in med Plex', 'addServer.pinExpired' => 'PIN-koden gick ut innan inloggning. Försök igen.', diff --git a/lib/i18n/strings_zh.g.dart b/lib/i18n/strings_zh.g.dart index 8ebe143e..2fe792ea 100644 --- a/lib/i18n/strings_zh.g.dart +++ b/lib/i18n/strings_zh.g.dart @@ -39,60 +39,60 @@ class TranslationsZh extends Translations with BaseTranslations? meta}) => TranslationsZh(meta: meta ?? this.$meta); // Translations - @override late final _Translations$app$zh app = _Translations$app$zh._(_root); - @override late final _Translations$auth$zh auth = _Translations$auth$zh._(_root); - @override late final _Translations$common$zh common = _Translations$common$zh._(_root); - @override late final _Translations$screens$zh screens = _Translations$screens$zh._(_root); - @override late final _Translations$update$zh update = _Translations$update$zh._(_root); - @override late final _Translations$settings$zh settings = _Translations$settings$zh._(_root); - @override late final _Translations$search$zh search = _Translations$search$zh._(_root); - @override late final _Translations$hotkeys$zh hotkeys = _Translations$hotkeys$zh._(_root); - @override late final _Translations$fileInfo$zh fileInfo = _Translations$fileInfo$zh._(_root); - @override late final _Translations$mediaMenu$zh mediaMenu = _Translations$mediaMenu$zh._(_root); - @override late final _Translations$rateSheet$zh rateSheet = _Translations$rateSheet$zh._(_root); - @override late final _Translations$accessibility$zh accessibility = _Translations$accessibility$zh._(_root); - @override late final _Translations$tooltips$zh tooltips = _Translations$tooltips$zh._(_root); - @override late final _Translations$audioTracks$zh audioTracks = _Translations$audioTracks$zh._(_root); - @override late final _Translations$videoControls$zh videoControls = _Translations$videoControls$zh._(_root); - @override late final _Translations$messages$zh messages = _Translations$messages$zh._(_root); - @override late final _Translations$subtitlingStyling$zh subtitlingStyling = _Translations$subtitlingStyling$zh._(_root); - @override late final _Translations$mpvConfig$zh mpvConfig = _Translations$mpvConfig$zh._(_root); - @override late final _Translations$dialog$zh dialog = _Translations$dialog$zh._(_root); - @override late final _Translations$profiles$zh profiles = _Translations$profiles$zh._(_root); - @override late final _Translations$connections$zh connections = _Translations$connections$zh._(_root); - @override late final _Translations$discover$zh discover = _Translations$discover$zh._(_root); - @override late final _Translations$errors$zh errors = _Translations$errors$zh._(_root); - @override late final _Translations$libraries$zh libraries = _Translations$libraries$zh._(_root); - @override late final _Translations$about$zh about = _Translations$about$zh._(_root); - @override late final _Translations$serverSelection$zh serverSelection = _Translations$serverSelection$zh._(_root); - @override late final _Translations$hubDetail$zh hubDetail = _Translations$hubDetail$zh._(_root); - @override late final _Translations$logs$zh logs = _Translations$logs$zh._(_root); - @override late final _Translations$licenses$zh licenses = _Translations$licenses$zh._(_root); - @override late final _Translations$navigation$zh navigation = _Translations$navigation$zh._(_root); - @override late final _Translations$explore$zh explore = _Translations$explore$zh._(_root); - @override late final _Translations$liveTv$zh liveTv = _Translations$liveTv$zh._(_root); - @override late final _Translations$collections$zh collections = _Translations$collections$zh._(_root); - @override late final _Translations$playlists$zh playlists = _Translations$playlists$zh._(_root); - @override late final _Translations$music$zh music = _Translations$music$zh._(_root); - @override late final _Translations$watchTogether$zh watchTogether = _Translations$watchTogether$zh._(_root); - @override late final _Translations$downloads$zh downloads = _Translations$downloads$zh._(_root); - @override late final _Translations$shaders$zh shaders = _Translations$shaders$zh._(_root); - @override late final _Translations$companionRemote$zh companionRemote = _Translations$companionRemote$zh._(_root); - @override late final _Translations$videoSettings$zh videoSettings = _Translations$videoSettings$zh._(_root); - @override late final _Translations$performanceOverlay$zh performanceOverlay = _Translations$performanceOverlay$zh._(_root); - @override late final _Translations$externalPlayer$zh externalPlayer = _Translations$externalPlayer$zh._(_root); - @override late final _Translations$metadataEdit$zh metadataEdit = _Translations$metadataEdit$zh._(_root); - @override late final _Translations$matchScreen$zh matchScreen = _Translations$matchScreen$zh._(_root); - @override late final _Translations$serverTasks$zh serverTasks = _Translations$serverTasks$zh._(_root); - @override late final _Translations$trakt$zh trakt = _Translations$trakt$zh._(_root); - @override late final _Translations$seerr$zh seerr = _Translations$seerr$zh._(_root); - @override late final _Translations$services$zh services = _Translations$services$zh._(_root); - @override late final _Translations$addServer$zh addServer = _Translations$addServer$zh._(_root); + @override late final Translations$app$zh app = Translations$app$zh.internal(_root); + @override late final Translations$auth$zh auth = Translations$auth$zh.internal(_root); + @override late final Translations$common$zh common = Translations$common$zh.internal(_root); + @override late final Translations$screens$zh screens = Translations$screens$zh.internal(_root); + @override late final Translations$update$zh update = Translations$update$zh.internal(_root); + @override late final Translations$settings$zh settings = Translations$settings$zh.internal(_root); + @override late final Translations$search$zh search = Translations$search$zh.internal(_root); + @override late final Translations$hotkeys$zh hotkeys = Translations$hotkeys$zh.internal(_root); + @override late final Translations$fileInfo$zh fileInfo = Translations$fileInfo$zh.internal(_root); + @override late final Translations$mediaMenu$zh mediaMenu = Translations$mediaMenu$zh.internal(_root); + @override late final Translations$rateSheet$zh rateSheet = Translations$rateSheet$zh.internal(_root); + @override late final Translations$accessibility$zh accessibility = Translations$accessibility$zh.internal(_root); + @override late final Translations$tooltips$zh tooltips = Translations$tooltips$zh.internal(_root); + @override late final Translations$audioTracks$zh audioTracks = Translations$audioTracks$zh.internal(_root); + @override late final Translations$videoControls$zh videoControls = Translations$videoControls$zh.internal(_root); + @override late final Translations$messages$zh messages = Translations$messages$zh.internal(_root); + @override late final Translations$subtitlingStyling$zh subtitlingStyling = Translations$subtitlingStyling$zh.internal(_root); + @override late final Translations$mpvConfig$zh mpvConfig = Translations$mpvConfig$zh.internal(_root); + @override late final Translations$dialog$zh dialog = Translations$dialog$zh.internal(_root); + @override late final Translations$profiles$zh profiles = Translations$profiles$zh.internal(_root); + @override late final Translations$connections$zh connections = Translations$connections$zh.internal(_root); + @override late final Translations$discover$zh discover = Translations$discover$zh.internal(_root); + @override late final Translations$errors$zh errors = Translations$errors$zh.internal(_root); + @override late final Translations$libraries$zh libraries = Translations$libraries$zh.internal(_root); + @override late final Translations$about$zh about = Translations$about$zh.internal(_root); + @override late final Translations$serverSelection$zh serverSelection = Translations$serverSelection$zh.internal(_root); + @override late final Translations$hubDetail$zh hubDetail = Translations$hubDetail$zh.internal(_root); + @override late final Translations$logs$zh logs = Translations$logs$zh.internal(_root); + @override late final Translations$licenses$zh licenses = Translations$licenses$zh.internal(_root); + @override late final Translations$navigation$zh navigation = Translations$navigation$zh.internal(_root); + @override late final Translations$explore$zh explore = Translations$explore$zh.internal(_root); + @override late final Translations$liveTv$zh liveTv = Translations$liveTv$zh.internal(_root); + @override late final Translations$collections$zh collections = Translations$collections$zh.internal(_root); + @override late final Translations$playlists$zh playlists = Translations$playlists$zh.internal(_root); + @override late final Translations$music$zh music = Translations$music$zh.internal(_root); + @override late final Translations$watchTogether$zh watchTogether = Translations$watchTogether$zh.internal(_root); + @override late final Translations$downloads$zh downloads = Translations$downloads$zh.internal(_root); + @override late final Translations$shaders$zh shaders = Translations$shaders$zh.internal(_root); + @override late final Translations$companionRemote$zh companionRemote = Translations$companionRemote$zh.internal(_root); + @override late final Translations$videoSettings$zh videoSettings = Translations$videoSettings$zh.internal(_root); + @override late final Translations$performanceOverlay$zh performanceOverlay = Translations$performanceOverlay$zh.internal(_root); + @override late final Translations$externalPlayer$zh externalPlayer = Translations$externalPlayer$zh.internal(_root); + @override late final Translations$metadataEdit$zh metadataEdit = Translations$metadataEdit$zh.internal(_root); + @override late final Translations$matchScreen$zh matchScreen = Translations$matchScreen$zh.internal(_root); + @override late final Translations$serverTasks$zh serverTasks = Translations$serverTasks$zh.internal(_root); + @override late final Translations$trakt$zh trakt = Translations$trakt$zh.internal(_root); + @override late final Translations$seerr$zh seerr = Translations$seerr$zh.internal(_root); + @override late final Translations$services$zh services = Translations$services$zh.internal(_root); + @override late final Translations$addServer$zh addServer = Translations$addServer$zh.internal(_root); } // Path: app -class _Translations$app$zh extends Translations$app$en { - _Translations$app$zh._(TranslationsZh root) : this._root = root, super.internal(root); +class Translations$app$zh extends Translations$app$en { + Translations$app$zh.internal(TranslationsZh root) : this._root = root, super.internal(root); final TranslationsZh _root; // ignore: unused_field @@ -101,8 +101,8 @@ class _Translations$app$zh extends Translations$app$en { } // Path: auth -class _Translations$auth$zh extends Translations$auth$en { - _Translations$auth$zh._(TranslationsZh root) : this._root = root, super.internal(root); +class Translations$auth$zh extends Translations$auth$en { + Translations$auth$zh.internal(TranslationsZh root) : this._root = root, super.internal(root); final TranslationsZh _root; // ignore: unused_field @@ -112,7 +112,7 @@ class _Translations$auth$zh extends Translations$auth$en { @override String get authenticate => '验证'; @override String get authenticationTimeout => '验证超时。请重试。'; @override String get scanQRToSignIn => '扫描二维码登录'; - @override String get waitingForAuth => '正在等待认证...\n请在浏览器中登录。'; + @override String get waitingForAuth => '正在等待身份验证…\n请在浏览器中登录。'; @override String get useBrowser => '使用浏览器'; @override String get or => '或'; @override String get connectToJellyfin => '连接到 Jellyfin'; @@ -121,12 +121,12 @@ class _Translations$auth$zh extends Translations$auth$en { @override String get quickConnectWaiting => '等待批准…'; @override String get quickConnectCancel => '取消'; @override String get quickConnectExpired => 'Quick Connect 已过期。请重试。'; - @override String get localDataRecoveryRequired => 'Plezy could not safely recover local sign-in and pending playback data. Please sign in again.'; + @override String get localDataRecoveryRequired => 'Plezy 无法安全恢复本地登录状态和待处理的播放数据。请重新登录。'; } // Path: common -class _Translations$common$zh extends Translations$common$en { - _Translations$common$zh._(TranslationsZh root) : this._root = root, super.internal(root); +class Translations$common$zh extends Translations$common$en { + Translations$common$zh.internal(TranslationsZh root) : this._root = root, super.internal(root); final TranslationsZh _root; // ignore: unused_field @@ -140,7 +140,7 @@ class _Translations$common$zh extends Translations$common$en { @override String get submit => '提交'; @override String get confirm => '确认'; @override String get retry => '重试'; - @override String get logout => '登出'; + @override String get logout => '退出登录'; @override String get unknown => '未知'; @override String get refresh => '刷新'; @override String get yes => '是'; @@ -148,7 +148,7 @@ class _Translations$common$zh extends Translations$common$en { @override String get delete => '删除'; @override String get edit => '编辑'; @override String get shuffle => '随机播放'; - @override String get addTo => '添加到...'; + @override String get addTo => '添加到…'; @override String get createNew => '新建'; @override String get connect => '连接'; @override String get disconnect => '断开连接'; @@ -164,23 +164,23 @@ class _Translations$common$zh extends Translations$common$en { @override String get ok => '确定'; @override String get off => '关闭'; @override String seasonNumber({required Object number}) => '第${number}季'; - @override String episodeNumberTitle({required Object number, required Object title}) => '第${number}集 - ${title}'; - @override String chapterNumber({required Object number}) => '章节 ${number}'; + @override String episodeNumberTitle({required Object number, required Object title}) => '第${number}集 — ${title}'; + @override String chapterNumber({required Object number}) => '第${number}章'; @override String get reconnect => '重新连接'; @override String get viewAll => '查看全部'; - @override String get checkingNetwork => '正在检查网络...'; - @override String get loadingServers => '正在加载服务器...'; - @override String get connectingToServers => '正在连接服务器...'; - @override String get startingOfflineMode => '正在启动离线模式...'; - @override String get loading => '加载中...'; + @override String get checkingNetwork => '正在检查网络…'; + @override String get loadingServers => '正在加载服务器…'; + @override String get connectingToServers => '正在连接服务器…'; + @override String get startingOfflineMode => '正在启动离线模式…'; + @override String get loading => '加载中…'; @override String get fullscreen => '全屏'; @override String get exitFullscreen => '退出全屏'; - @override String get pressBackAgainToExit => '再按一次返回退出'; + @override String get pressBackAgainToExit => '再按一次返回键退出'; } // Path: screens -class _Translations$screens$zh extends Translations$screens$en { - _Translations$screens$zh._(TranslationsZh root) : this._root = root, super.internal(root); +class Translations$screens$zh extends Translations$screens$en { + Translations$screens$zh.internal(TranslationsZh root) : this._root = root, super.internal(root); final TranslationsZh _root; // ignore: unused_field @@ -193,24 +193,24 @@ class _Translations$screens$zh extends Translations$screens$en { } // Path: update -class _Translations$update$zh extends Translations$update$en { - _Translations$update$zh._(TranslationsZh root) : this._root = root, super.internal(root); +class Translations$update$zh extends Translations$update$en { + Translations$update$zh.internal(TranslationsZh root) : this._root = root, super.internal(root); final TranslationsZh _root; // ignore: unused_field // Translations @override String get available => '有可用更新'; @override String versionAvailable({required Object version}) => '版本 ${version} 已发布'; - @override String currentVersion({required Object version}) => '当前版本: ${version}'; + @override String currentVersion({required Object version}) => '当前版本:${version}'; @override String get skipVersion => '跳过此版本'; @override String get viewRelease => '查看发布详情'; - @override String get latestVersion => '已安装的版本是可用的最新版本'; + @override String get latestVersion => '当前已是最新版本'; @override String get checkFailed => '无法检查更新'; } // Path: settings -class _Translations$settings$zh extends Translations$settings$en { - _Translations$settings$zh._(TranslationsZh root) : this._root = root, super.internal(root); +class Translations$settings$zh extends Translations$settings$en { + Translations$settings$zh.internal(TranslationsZh root) : this._root = root, super.internal(root); final TranslationsZh _root; // ignore: unused_field @@ -233,7 +233,7 @@ class _Translations$settings$zh extends Translations$settings$en { @override String get minutesLabel => '分钟'; @override String get secondsShort => 's'; @override String get minutesShort => 'm'; - @override String durationHint({required Object min, required Object max}) => '输入时长 (${min}-${max})'; + @override String durationHint({required Object min, required Object max}) => '输入时长(${min}–${max})'; @override String get systemTheme => '系统'; @override String get lightTheme => '浅色'; @override String get darkTheme => '深色'; @@ -241,10 +241,12 @@ class _Translations$settings$zh extends Translations$settings$en { @override String get libraryDensity => '媒体库密度'; @override String get compact => '紧凑'; @override String get comfortable => '舒适'; + @override String get tvCornerSpotlightBackdrop => '右上角聚焦背景图'; + @override String get tvCornerSpotlightBackdropDescription => '在右上角显示精选内容图片,而不是铺满整个屏幕'; @override String get viewMode => '视图模式'; @override String get gridView => '网格视图'; @override String get listView => '列表视图'; - @override String get showHeroSection => '显示主要精选区'; + @override String get showHeroSection => '显示精选内容区'; @override String get continueWatchingAction => '继续观看操作'; @override String get continueWatchingPlay => '播放'; @override String get continueWatchingDetails => '打开详情'; @@ -252,27 +254,27 @@ class _Translations$settings$zh extends Translations$settings$en { @override String get episodePlay => '播放'; @override String get episodeDetails => '打开详情'; @override String get useGlobalHubs => '使用主页布局'; - @override String get useGlobalHubsDescription => '显示统一主页中心。否则使用资料库推荐。'; + @override String get useGlobalHubsDescription => '显示统一主页内容;否则使用各媒体库的推荐内容。'; @override String get showServerNameOnHubs => '在推荐栏显示服务器名称'; - @override String get showServerNameOnHubsDescription => '始终在中心标题中显示服务器名称。'; + @override String get showServerNameOnHubsDescription => '始终在推荐栏标题中显示服务器名称。'; @override String get groupLibrariesByServer => '按服务器分组媒体库'; - @override String get groupLibrariesByServerDescription => '按媒体服务器分组侧边栏资料库。'; + @override String get groupLibrariesByServerDescription => '在侧边栏中按媒体服务器分组媒体库。'; @override String get alwaysKeepSidebarOpen => '始终保持侧边栏展开'; @override String get alwaysKeepSidebarOpenDescription => '侧边栏保持展开状态,内容区域自动调整'; @override String get showUnwatchedCount => '显示未观看数量'; - @override String get showUnwatchedCountDescription => '在剧集和季上显示未观看的集数'; + @override String get showUnwatchedCountDescription => '在剧集和季上显示未观看集数'; @override String get showEpisodeNumberOnCards => '在卡片上显示集数'; @override String get showEpisodeNumberOnCardsDescription => '在剧集卡片上显示季和集编号'; @override String get showSeasonPostersOnTabs => '在选项卡上显示季海报'; @override String get showSeasonPostersOnTabsDescription => '在每季标签上方显示该季海报'; - @override String get tvFullCardLayout => '完整 TV 卡片'; - @override String get tvFullCardLayoutDescription => '使用仅显示图片的 TV 卡片,并叠加演员姓名'; + @override String get tvFullCardLayout => '完整电视卡片'; + @override String get tvFullCardLayoutDescription => '使用仅显示图片的电视卡片,并在图片上叠加演员姓名'; @override String get focusGlow => '焦点光晕'; @override String get focusGlowDescription => '在获得焦点的卡片周围显示柔和的光晕'; @override String get visualEffects => '视觉效果'; @override String get visualEffectsAuto => '自动'; @override String get visualEffectsAutoDescription => '在性能较低的设备上自动减少效果'; - @override String get visualEffectsFull => '完整'; + @override String get visualEffectsFull => '完整效果'; @override String get visualEffectsReduced => '简化'; @override String get visualEffectsReducedDescription => '减少动画并使用较低分辨率的封面图片'; @override String get hideSpoilers => '隐藏未看剧集的剧透内容'; @@ -287,7 +289,7 @@ class _Translations$settings$zh extends Translations$settings$en { @override String get bufferSizeAuto => '自动(推荐)'; @override String bufferSizeWarning({required Object heap, required Object size}) => '可用内存 ${heap}MB。${size}MB 缓冲可能影响播放。'; @override String get defaultQualityTitle => '默认画质'; - @override String get musicQualityTitle => '音乐质量'; + @override String get musicQualityTitle => '音乐音质'; @override String get subtitleStyling => '字幕样式'; @override String get subtitleStylingDescription => '调整字幕外观'; @override String get smallSkipDuration => '短跳过时长'; @@ -296,12 +298,12 @@ class _Translations$settings$zh extends Translations$settings$en { @override String secondsUnit({required Object seconds}) => '${seconds} 秒'; @override String get defaultSleepTimer => '默认睡眠定时器'; @override String minutesUnit({required Object minutes}) => '${minutes} 分钟'; - @override String get rememberTrackSelections => '记住每个剧集/电影的音轨选择'; - @override String get rememberTrackSelectionsDescription => '记住每个标题的音频和字幕选择'; + @override String get rememberTrackSelections => '记住每部剧集或电影的音轨选择'; + @override String get rememberTrackSelectionsDescription => '分别记住每部内容的音频和字幕选择'; @override String get showChapterMarkersOnTimeline => '在进度条上显示章节标记'; @override String get showChapterMarkersOnTimelineDescription => '按章节边界分段显示进度条'; @override String get clickVideoTogglesPlayback => '点击视频可切换播放/暂停'; - @override String get clickVideoTogglesPlaybackDescription => '点击视频进行播放/暂停,而不是显示控制项。'; + @override String get clickVideoTogglesPlaybackDescription => '点击视频即可播放或暂停,而不是显示控制项。'; @override String get videoPlayerControls => '视频播放器控制'; @override String get keyboardShortcuts => '键盘快捷键'; @override String get keyboardShortcutsDescription => '自定义键盘快捷键'; @@ -310,25 +312,25 @@ class _Translations$settings$zh extends Translations$settings$en { @override String get watchTogetherRelay => '一起看中继服务器'; @override String get watchTogetherRelayDescription => '设置自定义中继。所有人必须使用同一服务器。'; @override String get watchTogetherRelayHint => 'https://my-relay.example.com'; - @override String get watchTogetherRelayInvalid => 'Enter a valid HTTP or HTTPS relay base URL.'; + @override String get watchTogetherRelayInvalid => '请输入有效的 HTTP 或 HTTPS 中继服务器基础 URL。'; @override String get crashReporting => '崩溃报告'; @override String get crashReportingDescription => '发送崩溃报告以帮助改进应用'; @override String get debugLogging => '调试日志'; @override String get debugLoggingDescription => '启用详细日志记录以便故障排除'; @override String get viewLogs => '查看日志'; - @override String get viewLogsDescription => '查看应用程序日志'; + @override String get viewLogsDescription => '查看应用日志'; @override String get clearCache => '清除缓存'; @override String get clearCacheDescription => '清除缓存的图片和数据。内容加载可能变慢。'; - @override String get clearCacheSuccess => '缓存清除成功'; + @override String get clearCacheSuccess => '缓存已清除'; @override String get resetSettings => '重置设置'; @override String get resetSettingsDescription => '恢复默认设置。此操作无法撤销。'; @override String get resetSettingsSuccess => '设置重置成功'; @override String get backup => '备份'; @override String get exportSettings => '导出设置'; - @override String get exportSettingsDescription => '将您的偏好保存到文件'; + @override String get exportSettingsDescription => '将偏好设置保存到文件'; @override String get exportSettingsSuccess => '设置已导出'; @override String get importSettings => '导入设置'; - @override String get importSettingsDescription => '从文件恢复偏好'; + @override String get importSettingsDescription => '从文件恢复偏好设置'; @override String get importSettingsConfirm => '这将替换您当前的设置。继续吗?'; @override String get importSettingsSuccess => '设置已导入'; @override String get importSettingsInvalidFile => '此文件不是有效的 Plezy 设置导出'; @@ -341,11 +343,11 @@ class _Translations$settings$zh extends Translations$settings$en { @override String get checkForUpdates => '检查更新'; @override String get autoCheckUpdatesOnStartup => '启动时自动检查更新'; @override String get autoCheckUpdatesOnStartupDescription => '启动时有可用更新则通知'; - @override String get validationErrorEnterNumber => '请输入一个有效的数字'; + @override String get validationErrorEnterNumber => '请输入有效数字'; @override String validationErrorDuration({required Object min, required Object max, required Object unit}) => '时长必须介于 ${min} 和 ${max} ${unit} 之间'; @override String shortcutAlreadyAssigned({required Object action}) => '快捷键已被分配给 ${action}'; @override String shortcutUpdated({required Object action}) => '快捷键已为 ${action} 更新'; - @override String get saveFailed => 'Could not save changes. Try again.'; + @override String get saveFailed => '无法保存更改。请重试。'; @override String get autoSkip => '自动跳过'; @override String get autoSkipIntro => '自动跳过片头'; @override String get autoSkipIntroDescription => '几秒钟后自动跳过片头标记'; @@ -367,37 +369,37 @@ class _Translations$settings$zh extends Translations$settings$en { @override String get downloadLocationCustom => '自定义位置'; @override String get selectFolder => '选择文件夹'; @override String get resetToDefault => '重置为默认'; - @override String currentPath({required Object path}) => '当前: ${path}'; + @override String currentPath({required Object path}) => '当前路径:${path}'; @override String get downloadLocationChanged => '下载位置已更改'; @override String get downloadLocationReset => '下载位置已重置为默认'; @override String get downloadLocationInvalid => '所选文件夹不可写入'; @override String get downloadLocationPickerUnavailable => '此设备不支持选择文件夹'; - @override String get downloadOnWifiOnly => '仅在 WiFi 时下载'; - @override String get downloadOnWifiOnlyDescription => '使用蜂窝数据时禁止下载'; + @override String get downloadOnWifiOnly => '仅通过 Wi-Fi 下载'; + @override String get downloadOnWifiOnlyDescription => '使用移动数据时不允许下载'; @override String get autoRemoveWatchedDownloads => '自动移除已观看的下载'; @override String get autoRemoveWatchedDownloadsDescription => '自动删除已观看的下载'; - @override String get cellularDownloadBlocked => '蜂窝网络下已阻止下载。请使用 WiFi 或更改设置。'; + @override String get cellularDownloadBlocked => '已阻止通过移动网络下载。请连接 Wi-Fi 或更改设置。'; @override String get maxVolume => '最大音量'; - @override String get maxVolumeDescription => '允许音量超过 100% 以适应安静的媒体'; + @override String get maxVolumeDescription => '允许音量超过 100%,以便播放音量较低的内容'; @override String maxVolumePercent({required Object percent}) => '${percent}%'; @override String get discordRichPresence => 'Discord 动态状态'; @override String get discordRichPresenceDescription => '在 Discord 上显示您正在观看的内容'; @override String get services => '服务'; @override String get servicesDescription => '连接 Trakt、MyAnimeList、Seerr 等'; @override String get manageLibrariesDescription => '重新排序和隐藏媒体库'; - @override String get companionRemoteServer => '配套遥控服务器'; - @override String get companionRemoteServerDescription => '允许网络上的移动设备控制此应用'; + @override String get companionRemoteServer => '远程控制服务器'; + @override String get companionRemoteServerDescription => '允许同一网络中的移动设备控制此应用'; @override String get autoPip => '自动画中画'; - @override String get autoPipDescription => '播放时离开会进入画中画'; + @override String get autoPipDescription => '播放期间离开应用时自动进入画中画模式'; @override String get matchContentFrameRate => '匹配内容帧率'; - @override String get matchContentFrameRateDescription => '将显示刷新率匹配到视频内容'; + @override String get matchContentFrameRateDescription => '使显示器刷新率与视频帧率匹配'; @override String get matchRefreshRate => '匹配刷新率'; @override String get matchRefreshRateDescription => '全屏时匹配显示刷新率'; @override String get matchDynamicRange => '匹配动态范围'; @override String get matchDynamicRangeDescription => 'HDR 内容切换到 HDR,随后切回 SDR'; @override String get displaySwitchDelay => '显示切换延迟'; - @override String get tunneledPlayback => '通道化播放'; - @override String get tunneledPlaybackDescription => '使用视频隧道。若 HDR 播放出现黑屏,请禁用。'; + @override String get tunneledPlayback => '隧道播放'; + @override String get tunneledPlaybackDescription => '使用视频隧道模式。若播放 HDR 内容时出现黑屏,请将其关闭。'; @override String get audioPassthrough => '音频直通'; @override String get audioPassthroughDescription => '将 Dolby/DTS 音频不经重新编码直接发送到功放或电视,保留环绕声。如果没有声音,请关闭。'; @override String get audioPassthroughDescriptionAppleTv => '将 Dolby Digital Plus(含 Atmos)以比特流方式交给系统输出。DTS 和 TrueHD 仍以多声道 PCM 播放。快进快退时可能出现短暂声音中断。'; @@ -405,7 +407,7 @@ class _Translations$settings$zh extends Translations$settings$en { @override String get audioDownmixDescription => '将环绕声混合为双声道,适用于立体声音箱或耳机'; @override String get downmixCenterBoost => '中置声道增强'; @override String downmixCenterBoostValue({required Object db}) => '${db} dB'; - @override String get downmixCenterBoostLabel => '增强 (dB)'; + @override String get downmixCenterBoostLabel => '增强(dB)'; @override String get downmixCenterBoostShort => 'dB'; @override String get audioDownmixNormalize => '下混时音量标准化'; @override String get audioDownmixNormalizeDescription => '降低混音电平以防止削波。关闭可保持原始音量(大音量场景可能失真)。'; @@ -416,7 +418,7 @@ class _Translations$settings$zh extends Translations$settings$en { @override String get atmosTestHlsControl => 'Apple 环绕声流'; @override String get atmosTestHlsControlDescription => '不含 Atmos 的对照流。功放应显示不带 Atmos 的环绕声。'; @override String get atmosTestRawStream => '原始 EAC3 流'; - @override String get atmosTestRawStreamDescription => '以与播放器内 Atmos 播放完全相同的方式串流测试文件。需要测试文件 URL。'; + @override String get atmosTestRawStreamDescription => '以与播放器内 Atmos 播放完全相同的方式流式传输测试文件。需要测试文件 URL。'; @override String get atmosTestRawFile => '原始 EAC3 文件'; @override String get atmosTestRawFileDescription => '以已知长度播放测试文件。需要测试文件 URL。'; @override String get atmosTestStop => '停止测试'; @@ -430,12 +432,12 @@ class _Translations$settings$zh extends Translations$settings$en { @override String get dvConversionNative => '原生 / 禁用'; @override String get dvConversionDv81 => 'P7 → P8.1'; @override String get dvConversionHevcStrip => 'P7 → HEVC'; - @override String get dvConversionAutoDescription => '使用设备能力检测和正常回退行为'; - @override String get dvConversionNativeDescription => '强制原生 DV7 并抑制 DV 转换重试'; + @override String get dvConversionAutoDescription => '使用设备能力检测和常规回退机制'; + @override String get dvConversionNativeDescription => '强制原生 DV7 并禁止重试 DV 转换'; @override String get dvConversionDv81Description => '强制内联 RPU 转换为 Dolby Vision Profile 8.1'; @override String get dvConversionHevcStripDescription => '移除 Dolby Vision RPU/EL 层并呈现普通 HEVC'; - @override String get requireProfileSelectionOnOpen => '打开应用时询问配置文件'; - @override String get requireProfileSelectionOnOpenDescription => '每次打开应用时显示配置文件选择'; + @override String get requireProfileSelectionOnOpen => '打开应用时选择用户资料'; + @override String get requireProfileSelectionOnOpenDescription => '每次打开应用时都显示用户资料选择界面'; @override String get forceTvMode => '强制 TV 模式'; @override String get forceTvModeDescription => '强制 TV 布局。适用于无法自动检测的设备。需要重启。'; @override String get startInFullscreen => '以全屏模式启动'; @@ -461,21 +463,21 @@ class _Translations$settings$zh extends Translations$settings$en { } // Path: search -class _Translations$search$zh extends Translations$search$en { - _Translations$search$zh._(TranslationsZh root) : this._root = root, super.internal(root); +class Translations$search$zh extends Translations$search$en { + Translations$search$zh.internal(TranslationsZh root) : this._root = root, super.internal(root); final TranslationsZh _root; // ignore: unused_field // Translations - @override String get hint => '搜索电影、系列、音乐...'; + @override String get hint => '搜索电影、剧集、音乐…'; @override String get tryDifferentTerm => '尝试不同的搜索词'; @override String get searchYourMedia => '搜索媒体'; @override String get enterTitleActorOrKeyword => '输入标题、演员或关键词'; } // Path: hotkeys -class _Translations$hotkeys$zh extends Translations$hotkeys$en { - _Translations$hotkeys$zh._(TranslationsZh root) : this._root = root, super.internal(root); +class Translations$hotkeys$zh extends Translations$hotkeys$en { + Translations$hotkeys$zh.internal(TranslationsZh root) : this._root = root, super.internal(root); final TranslationsZh _root; // ignore: unused_field @@ -483,15 +485,15 @@ class _Translations$hotkeys$zh extends Translations$hotkeys$en { @override String setShortcutFor({required Object actionName}) => '为 ${actionName} 设置快捷键'; @override String get clearShortcut => '清除快捷键'; @override String get noShortcutSet => '未设置快捷键'; - @override String get currentShortcut => '当前快捷键:'; - @override String get pressToRecord => '选择以录制快捷键'; - @override String get recordingShortcut => '现在请按下快捷键'; - @override late final _Translations$hotkeys$actions$zh actions = _Translations$hotkeys$actions$zh._(_root); + @override String get currentShortcut => '当前快捷键:'; + @override String get pressToRecord => '点击后录入快捷键'; + @override String get recordingShortcut => '请按下快捷键'; + @override late final Translations$hotkeys$actions$zh actions = Translations$hotkeys$actions$zh.internal(_root); } // Path: fileInfo -class _Translations$fileInfo$zh extends Translations$fileInfo$en { - _Translations$fileInfo$zh._(TranslationsZh root) : this._root = root, super.internal(root); +class Translations$fileInfo$zh extends Translations$fileInfo$en { + Translations$fileInfo$zh.internal(TranslationsZh root) : this._root = root, super.internal(root); final TranslationsZh _root; // ignore: unused_field @@ -506,11 +508,11 @@ class _Translations$fileInfo$zh extends Translations$fileInfo$en { @override String get bitrate => '比特率'; @override String get frameRate => '帧率'; @override String get aspectRatio => '宽高比'; - @override String get profile => '配置文件'; + @override String get profile => '编码配置'; @override String get bitDepth => '位深度'; @override String get colorSpace => '色彩空间'; @override String get colorRange => '色彩范围'; - @override String get colorPrimaries => '颜色原色'; + @override String get colorPrimaries => '色彩基色'; @override String get chromaSubsampling => '色度子采样'; @override String get channels => '声道'; @override String get subtitles => '字幕'; @@ -519,13 +521,13 @@ class _Translations$fileInfo$zh extends Translations$fileInfo$en { @override String get size => '大小'; @override String get container => '容器'; @override String get duration => '时长'; - @override String get optimizedForStreaming => '已优化用于流媒体'; - @override String get has64bitOffsets => '64位偏移量'; + @override String get optimizedForStreaming => '已针对流式传输优化'; + @override String get has64bitOffsets => '64 位偏移量'; } // Path: mediaMenu -class _Translations$mediaMenu$zh extends Translations$mediaMenu$en { - _Translations$mediaMenu$zh._(TranslationsZh root) : this._root = root, super.internal(root); +class Translations$mediaMenu$zh extends Translations$mediaMenu$en { + Translations$mediaMenu$zh.internal(TranslationsZh root) : this._root = root, super.internal(root); final TranslationsZh _root; // ignore: unused_field @@ -534,7 +536,7 @@ class _Translations$mediaMenu$zh extends Translations$mediaMenu$en { @override String get markAsUnwatched => '标记为未观看'; @override String get removeFromContinueWatching => '从继续观看中移除'; @override String get viewDetails => '查看详情'; - @override String get goToSeries => '转到系列'; + @override String get goToSeries => '前往剧集'; @override String get shufflePlay => '随机播放'; @override String get shuffleNotAvailableOffline => '离线时无法随机播放'; @override String get fileInfo => '文件信息'; @@ -545,12 +547,12 @@ class _Translations$mediaMenu$zh extends Translations$mediaMenu$en { @override String get mediaFailedToDelete => '删除媒体项失败'; @override String get rate => '评分'; @override String get playFromBeginning => '从头播放'; - @override String get playVersion => '播放版本...'; + @override String get playVersion => '播放版本…'; } // Path: rateSheet -class _Translations$rateSheet$zh extends Translations$rateSheet$en { - _Translations$rateSheet$zh._(TranslationsZh root) : this._root = root, super.internal(root); +class Translations$rateSheet$zh extends Translations$rateSheet$en { + Translations$rateSheet$zh.internal(TranslationsZh root) : this._root = root, super.internal(root); final TranslationsZh _root; // ignore: unused_field @@ -565,8 +567,8 @@ class _Translations$rateSheet$zh extends Translations$rateSheet$en { } // Path: accessibility -class _Translations$accessibility$zh extends Translations$accessibility$en { - _Translations$accessibility$zh._(TranslationsZh root) : this._root = root, super.internal(root); +class Translations$accessibility$zh extends Translations$accessibility$en { + Translations$accessibility$zh.internal(TranslationsZh root) : this._root = root, super.internal(root); final TranslationsZh _root; // ignore: unused_field @@ -576,7 +578,7 @@ class _Translations$accessibility$zh extends Translations$accessibility$en { @override String mediaCardEpisode({required Object title, required Object episodeInfo}) => '${title}, ${episodeInfo}'; @override String mediaCardSeason({required Object title, required Object seasonInfo}) => '${title}, ${seasonInfo}'; @override String get mediaCardWatched => '已观看'; - @override String mediaCardPartiallyWatched({required Object percent}) => '已观看 ${percent} 百分比'; + @override String mediaCardPartiallyWatched({required Object percent}) => '已观看 ${percent}%'; @override String get mediaCardUnwatched => '未观看'; @override String get tapToPlay => '点击播放'; @override String get decrease => '减小'; @@ -596,8 +598,8 @@ class _Translations$accessibility$zh extends Translations$accessibility$en { } // Path: tooltips -class _Translations$tooltips$zh extends Translations$tooltips$en { - _Translations$tooltips$zh._(TranslationsZh root) : this._root = root, super.internal(root); +class Translations$tooltips$zh extends Translations$tooltips$en { + Translations$tooltips$zh.internal(TranslationsZh root) : this._root = root, super.internal(root); final TranslationsZh _root; // ignore: unused_field @@ -609,8 +611,8 @@ class _Translations$tooltips$zh extends Translations$tooltips$en { } // Path: audioTracks -class _Translations$audioTracks$zh extends Translations$audioTracks$en { - _Translations$audioTracks$zh._(TranslationsZh root) : this._root = root, super.internal(root); +class Translations$audioTracks$zh extends Translations$audioTracks$en { + Translations$audioTracks$zh.internal(TranslationsZh root) : this._root = root, super.internal(root); final TranslationsZh _root; // ignore: unused_field @@ -619,8 +621,8 @@ class _Translations$audioTracks$zh extends Translations$audioTracks$en { } // Path: videoControls -class _Translations$videoControls$zh extends Translations$videoControls$en { - _Translations$videoControls$zh._(TranslationsZh root) : this._root = root, super.internal(root); +class Translations$videoControls$zh extends Translations$videoControls$en { + Translations$videoControls$zh.internal(TranslationsZh root) : this._root = root, super.internal(root); final TranslationsZh _root; // ignore: unused_field @@ -630,10 +632,10 @@ class _Translations$videoControls$zh extends Translations$videoControls$en { @override String get resetToZero => '重置为 0ms'; @override String addTime({required Object amount, required Object unit}) => '+${amount}${unit}'; @override String minusTime({required Object amount, required Object unit}) => '-${amount}${unit}'; - @override String playsLater({required Object label}) => '${label} 播放较晚'; - @override String playsEarlier({required Object label}) => '${label} 播放较早'; + @override String playsLater({required Object label}) => '${label}延后播放'; + @override String playsEarlier({required Object label}) => '${label}提前播放'; @override String get noOffset => '无偏移'; - @override String get letterbox => '信箱模式(Letterbox)'; + @override String get letterbox => '黑边模式'; @override String get fillScreen => '填充屏幕'; @override String get stretch => '拉伸'; @override String get lockRotation => '锁定旋转'; @@ -645,14 +647,16 @@ class _Translations$videoControls$zh extends Translations$videoControls$en { @override String get sleepTimerDurationHeader => '定时器'; @override String get playbackWillPauseAtEnd => '播放将在此视频结束时暂停'; @override String get stillWatching => '还在看吗?'; - @override String pausingIn({required Object seconds}) => '${seconds}秒后暂停'; + @override String pausingIn({required Object seconds}) => '${seconds} 秒后暂停'; @override String get continueWatching => '继续'; @override String get autoPlayNext => '自动播放下一集'; @override String get playNext => '播放下一集'; @override String get playButton => '播放'; @override String get pauseButton => '暂停'; - @override String seekBackwardButton({required Object seconds}) => '后退 ${seconds} 秒'; - @override String seekForwardButton({required Object seconds}) => '前进 ${seconds} 秒'; + @override String get showPlaybackControls => '显示播放控制项'; + @override String get hidePlaybackControls => '隐藏播放控制项'; + @override String seekBackwardButton({required Object seconds}) => '快退 ${seconds} 秒'; + @override String seekForwardButton({required Object seconds}) => '快进 ${seconds} 秒'; @override String get previousButton => '上一集'; @override String get nextButton => '下一集'; @override String get previousChapterButton => '上一章节'; @@ -669,24 +673,24 @@ class _Translations$videoControls$zh extends Translations$videoControls$en { @override String qualityPresetLabel({required Object resolution, required Object bitrate}) => '${resolution}p ${bitrate} Mbps'; @override String get transcodeUnavailableFallback => '转码不可用 — 以原始画质播放'; @override String get subtitleUnavailableFallback => '无法加载所选字幕 — 将继续无字幕播放'; - @override String get pipButton => '画中画模式'; + @override String get pipButton => '画中画'; @override String get aspectRatioButton => '宽高比'; @override String get ambientLighting => '氛围灯光'; @override String get fullscreenButton => '进入全屏'; @override String get exitFullscreenButton => '退出全屏'; - @override String get alwaysOnTopButton => '置顶窗口'; + @override String get alwaysOnTopButton => '窗口置顶'; @override String get rotationLockButton => '旋转锁定'; @override String get lockScreen => '锁定屏幕'; @override String get screenLockButton => '屏幕锁定'; @override String get longPressToUnlock => '长按解锁'; @override String get timelineSlider => '视频时间轴'; - @override String get volumeSlider => '音量调节'; - @override String endsAt({required Object time}) => '${time} 结束'; - @override String get pipActive => '正在画中画模式中播放'; + @override String get volumeSlider => '音量滑块'; + @override String endsAt({required Object time}) => '结束时间:${time}'; + @override String get pipActive => '正在以画中画模式播放'; @override String get pipFailed => '画中画启动失败'; @override String get screenshotSaved => '截图已保存'; @override String zoomPercent({required Object percent}) => '缩放 ${percent}%'; - @override late final _Translations$videoControls$pipErrors$zh pipErrors = _Translations$videoControls$pipErrors$zh._(_root); + @override late final Translations$videoControls$pipErrors$zh pipErrors = Translations$videoControls$pipErrors$zh.internal(_root); @override String get chapters => '章节'; @override String get noChaptersAvailable => '没有可用的章节'; @override String get queue => '播放队列'; @@ -696,55 +700,55 @@ class _Translations$videoControls$zh extends Translations$videoControls$en { @override String get noSubtitlesFound => '未找到字幕'; @override String get noSubtitlesAvailable => '没有可用字幕'; @override String get noAudioTracksAvailable => '没有可用音轨'; - @override String get noTracksAvailable => '没有可用轨道'; + @override String get noTracksAvailable => '没有可用音轨'; @override String get subtitleDownloaded => '字幕已下载'; @override String get subtitleDownloadedNotApplied => '字幕已下载,但无法选择'; @override String get subtitleDownloadFailed => '字幕下载失败'; - @override String get searchLanguages => '搜索语言...'; + @override String get searchLanguages => '搜索语言…'; } // Path: messages -class _Translations$messages$zh extends Translations$messages$en { - _Translations$messages$zh._(TranslationsZh root) : this._root = root, super.internal(root); +class Translations$messages$zh extends Translations$messages$en { + Translations$messages$zh.internal(TranslationsZh root) : this._root = root, super.internal(root); final TranslationsZh _root; // ignore: unused_field // Translations @override String get markedAsWatched => '已标记为已观看'; @override String get markedAsUnwatched => '已标记为未观看'; - @override String get markedAsWatchedOffline => '已标记为已观看 (将在联网时同步)'; - @override String get markedAsUnwatchedOffline => '已标记为未观看 (将在联网时同步)'; - @override String autoRemovedWatchedDownload({required Object title}) => '已自动移除: ${title}'; + @override String get markedAsWatchedOffline => '已标记为已观看(将在联网时同步)'; + @override String get markedAsUnwatchedOffline => '已标记为未观看(将在联网时同步)'; + @override String autoRemovedWatchedDownload({required Object title}) => '已自动移除:${title}'; @override String autoRemovedWatchedDownloads({required num n}) => (_root.$meta.cardinalResolver ?? PluralResolvers.cardinal('zh'))(n, other: '已自动移除 ${n} 个看过的下载', ); @override String get removedFromContinueWatching => '已从继续观看中移除'; - @override String errorLoading({required Object error}) => '错误: ${error}'; + @override String errorLoading({required Object error}) => '出错:${error}'; @override String get streamInterrupted => '视频流已中断。按播放键或拖动进度条重试。'; @override String get liveStreamInterrupted => '直播流已中断。按播放键重试。'; @override String get fileInfoNotAvailable => '文件信息不可用'; - @override String get playbackAuthenticationRequired => 'Sign in to the media server again to play this item.'; - @override String get playbackServerUnavailable => 'The media server is unavailable. Try again later.'; - @override String get playbackDataInvalid => 'The server returned invalid playback information.'; - @override String get playbackCancelled => 'Playback was cancelled.'; - @override String get playbackFailed => 'Playback could not be started.'; - @override String errorLoadingFileInfo({required Object error}) => '加载文件信息时出错: ${error}'; - @override String get errorLoadingSeries => '加载系列时出错'; + @override String get playbackAuthenticationRequired => '请重新登录媒体服务器以播放此项目。'; + @override String get playbackServerUnavailable => '媒体服务器不可用。请稍后重试。'; + @override String get playbackDataInvalid => '服务器返回了无效的播放信息。'; + @override String get playbackCancelled => '播放已取消。'; + @override String get playbackFailed => '无法开始播放。'; + @override String errorLoadingFileInfo({required Object error}) => '加载文件信息时出错:${error}'; + @override String get errorLoadingSeries => '加载剧集时出错'; @override String get musicNotSupported => '尚不支持播放音乐'; @override String get noDescriptionAvailable => '暂无描述'; - @override String get noProfilesAvailable => '没有可用的用户'; - @override String get contactAdminForProfiles => '请联系服务器管理员添加用户配置'; - @override String get unableToDetermineLibrarySection => '无法确定此项目的库分区'; + @override String get noProfilesAvailable => '没有可用的用户资料'; + @override String get contactAdminForProfiles => '请联系服务器管理员添加用户资料'; + @override String get unableToDetermineLibrarySection => '无法确定此项目所属的媒体库'; @override String get logsCleared => '日志已清除'; @override String get logsCopied => '日志已复制到剪贴板'; @override String get noLogsAvailable => '没有可用日志'; - @override String libraryScanning({required Object title}) => '正在扫描 “${title}”...'; - @override String libraryScanStarted({required Object title}) => '已开始扫描 “${title}” 媒体库'; - @override String libraryScanFailed({required Object error}) => '无法扫描媒体库: ${error}'; - @override String metadataRefreshing({required Object title}) => '正在刷新 “${title}” 的元数据...'; - @override String metadataRefreshStarted({required Object title}) => '已开始刷新 “${title}” 的元数据'; - @override String metadataRefreshFailed({required Object error}) => '无法刷新元数据: ${error}'; - @override String get logoutConfirm => '你确定要登出吗?'; + @override String libraryScanning({required Object title}) => '正在扫描“${title}”…'; + @override String libraryScanStarted({required Object title}) => '已开始扫描“${title}”媒体库'; + @override String libraryScanFailed({required Object error}) => '无法扫描媒体库:${error}'; + @override String metadataRefreshing({required Object title}) => '正在刷新“${title}”的元数据…'; + @override String metadataRefreshStarted({required Object title}) => '已开始刷新“${title}”的元数据'; + @override String metadataRefreshFailed({required Object error}) => '无法刷新元数据:${error}'; + @override String get logoutConfirm => '确定要退出登录吗?'; @override String get noSeasonsFound => '未找到季'; @override String get seasonsLoadFailed => '无法加载季'; @override String get noEpisodesFound => '在第一季中未找到剧集'; @@ -753,19 +757,19 @@ class _Translations$messages$zh extends Translations$messages$en { @override String get noResultsFound => '未找到结果'; @override String sleepTimerSet({required Object label}) => '睡眠定时器已设置为 ${label}'; @override String get noItemsAvailable => '没有可用的项目'; - @override String get failedToCreatePlayQueueNoItems => '创建播放队列失败 - 没有项目'; - @override String failedPlayback({required Object action, required Object error}) => '无法${action}: ${error}'; - @override String get switchingToCompatiblePlayer => '正在切换到兼容的播放器...'; + @override String get failedToCreatePlayQueueNoItems => '创建播放队列失败:没有可用项目'; + @override String failedPlayback({required Object action, required Object error}) => '无法执行“${action}”:${error}'; + @override String get switchingToCompatiblePlayer => '正在切换到兼容的播放器…'; @override String get serverLimitTitle => '播放失败'; - @override String get serverLimitBody => '服务器错误 (HTTP 500)。带宽/转码限制可能拒绝了此会话。请让所有者调整。'; + @override String get serverLimitBody => '服务器错误(HTTP 500)。此次会话可能因带宽或转码限制而被拒绝。请联系服务器所有者调整限制。'; @override String get logsUploaded => '日志已上传'; @override String get logsUploadFailed => '上传日志失败'; @override String get logId => '日志 ID'; } // Path: subtitlingStyling -class _Translations$subtitlingStyling$zh extends Translations$subtitlingStyling$en { - _Translations$subtitlingStyling$zh._(TranslationsZh root) : this._root = root, super.internal(root); +class Translations$subtitlingStyling$zh extends Translations$subtitlingStyling$en { + Translations$subtitlingStyling$zh.internal(TranslationsZh root) : this._root = root, super.internal(root); final TranslationsZh _root; // ignore: unused_field @@ -794,8 +798,8 @@ class _Translations$subtitlingStyling$zh extends Translations$subtitlingStyling$ } // Path: mpvConfig -class _Translations$mpvConfig$zh extends Translations$mpvConfig$en { - _Translations$mpvConfig$zh._(TranslationsZh root) : this._root = root, super.internal(root); +class Translations$mpvConfig$zh extends Translations$mpvConfig$en { + Translations$mpvConfig$zh.internal(TranslationsZh root) : this._root = root, super.internal(root); final TranslationsZh _root; // ignore: unused_field @@ -804,7 +808,7 @@ class _Translations$mpvConfig$zh extends Translations$mpvConfig$en { @override String get description => '高级视频播放器设置'; @override String get presets => '预设'; @override String get noPresets => '没有保存的预设'; - @override String get saveAsPreset => '保存为预设...'; + @override String get saveAsPreset => '保存为预设…'; @override String get presetName => '预设名称'; @override String get presetNameHint => '输入此预设的名称'; @override String get loadPreset => '加载'; @@ -817,8 +821,8 @@ class _Translations$mpvConfig$zh extends Translations$mpvConfig$en { } // Path: dialog -class _Translations$dialog$zh extends Translations$dialog$en { - _Translations$dialog$zh._(TranslationsZh root) : this._root = root, super.internal(root); +class Translations$dialog$zh extends Translations$dialog$en { + Translations$dialog$zh.internal(TranslationsZh root) : this._root = root, super.internal(root); final TranslationsZh _root; // ignore: unused_field @@ -827,17 +831,17 @@ class _Translations$dialog$zh extends Translations$dialog$en { } // Path: profiles -class _Translations$profiles$zh extends Translations$profiles$en { - _Translations$profiles$zh._(TranslationsZh root) : this._root = root, super.internal(root); +class Translations$profiles$zh extends Translations$profiles$en { + Translations$profiles$zh.internal(TranslationsZh root) : this._root = root, super.internal(root); final TranslationsZh _root; // ignore: unused_field // Translations - @override String get addPlezyProfile => '添加 Plezy 配置文件'; - @override String get switchingProfile => '切换配置文件中…'; - @override String get deleteThisProfileTitle => '删除此配置文件?'; + @override String get addPlezyProfile => '添加 Plezy 用户资料'; + @override String get switchingProfile => '正在切换用户资料…'; + @override String get deleteThisProfileTitle => '删除此用户资料?'; @override String deleteThisProfileMessage({required Object displayName}) => '移除 ${displayName}。连接不会受影响。'; - @override String get active => '活跃'; + @override String get active => '当前使用'; @override String get manage => '管理'; @override String get delete => '删除'; @override String get signOut => '退出登录'; @@ -845,18 +849,18 @@ class _Translations$profiles$zh extends Translations$profiles$en { @override String signOutPlexMessage({required Object displayName}) => '要移除 ${displayName} 和所有 Plex Home 用户吗?可随时重新登录。'; @override String get signedOutPlex => '已退出 Plex 登录。'; @override String get signOutFailed => '退出登录失败。'; - @override String get sectionTitle => '配置文件'; - @override String get summarySingle => '添加配置文件以混合托管用户和本地身份'; - @override String summaryMultipleWithActive({required Object count, required Object activeName}) => '${count} 个配置文件 · 活跃:${activeName}'; - @override String summaryMultiple({required Object count}) => '${count} 个配置文件'; + @override String get sectionTitle => '用户资料'; + @override String get summarySingle => '添加用户资料,以便同时使用受管理用户和本地用户身份'; + @override String summaryMultipleWithActive({required Object count, required Object activeName}) => '${count} 个用户资料 · 当前:${activeName}'; + @override String summaryMultiple({required Object count}) => '${count} 个用户资料'; @override String get removeConnectionTitle => '移除连接?'; - @override String removeConnectionMessage({required Object displayName, required Object connectionLabel}) => '移除 ${displayName} 对 ${connectionLabel} 的访问。其他个人资料仍保留。'; - @override String get deleteProfileTitle => '删除配置文件?'; - @override String deleteProfileMessage({required Object displayName}) => '移除 ${displayName} 及其连接。服务器仍可用。'; - @override String get profileNameLabel => '配置文件名称'; + @override String removeConnectionMessage({required Object displayName, required Object connectionLabel}) => '移除 ${displayName} 对 ${connectionLabel} 的访问权限。其他用户资料仍可使用此连接。'; + @override String get deleteProfileTitle => '删除用户资料?'; + @override String deleteProfileMessage({required Object displayName}) => '移除 ${displayName} 及其连接。服务器仍可供其他用户资料使用。'; + @override String get profileNameLabel => '用户资料名称'; @override String get pinProtectionLabel => 'PIN 保护'; @override String get pinManagedByPlex => 'PIN 由 Plex 管理。在 plex.tv 上编辑。'; - @override String get noPinSetEditOnPlex => '未设置 PIN。如需要求 PIN,请在 plex.tv 上编辑 Home 用户。'; + @override String get noPinSetEditOnPlex => '未设置 PIN。如需设置,请在 plex.tv 上编辑 Plex Home 用户。'; @override String get setPin => '设置 PIN'; @override String get setPinTitle => '设置 PIN'; @override String get confirmPinTitle => '确认 PIN'; @@ -865,39 +869,39 @@ class _Translations$profiles$zh extends Translations$profiles$en { @override String get removePin => '移除'; @override String get connectionsLabel => '连接'; @override String get add => '添加'; - @override String get deleteProfileButton => '删除配置文件'; - @override String get noConnectionsHint => '没有连接 — 添加一个以使用此配置文件。'; + @override String get deleteProfileButton => '删除用户资料'; + @override String get noConnectionsHint => '没有连接 — 请添加连接以使用此用户资料。'; @override String get noConnections => '没有连接'; @override String get plexHomeAccount => 'Plex Home 账户'; @override String get connectionDefault => '默认'; @override String connectionAs({required Object displayName}) => '以 ${displayName} 身份'; @override String get makeDefault => '设为默认'; @override String get removeConnection => '移除'; - @override String get profileRenamed => '个人资料已重命名。'; + @override String get profileRenamed => '用户资料已重命名。'; @override String borrowAddTo({required Object displayName}) => '添加到 ${displayName}'; - @override String get borrowExplain => '借用另一个个人资料的连接。受 PIN 保护的个人资料需要 PIN。'; - @override String get borrowEmpty => '暂无可借用的内容。'; - @override String get borrowEmptySubtitle => '请先将 Plex 或 Jellyfin 连接到另一个个人资料。'; - @override String get borrowLoadFailed => 'Available connections could not be loaded. Try again.'; + @override String get borrowExplain => '使用另一个用户资料的连接。受 PIN 保护的用户资料需要输入 PIN。'; + @override String get borrowEmpty => '暂无可用连接。'; + @override String get borrowEmptySubtitle => '请先将 Plex 或 Jellyfin 连接到另一个用户资料。'; + @override String get borrowLoadFailed => '无法加载可用连接。请重试。'; @override String borrowFromProfile({required Object displayName}) => '来自 ${displayName}'; - @override String get borrowConnectionBorrowed => '已借用连接。'; - @override String get borrowFailed => '无法借用连接。'; + @override String get borrowConnectionBorrowed => '连接已添加。'; + @override String get borrowFailed => '无法添加连接。'; @override String get incorrectPin => 'PIN 不正确。'; @override String get incorrectPinTryAgain => 'PIN 不正确。请重试。'; - @override String get sourceProfileMissingParentAccount => '源个人资料缺少其父账号。'; + @override String get sourceProfileMissingParentAccount => '源用户资料缺少关联的主账户。'; @override String get failedToLoadHomeUsers => '无法加载您的 Plex Home 用户。请检查网络连接后重试。'; @override String get failedToVerifyPin => '无法验证 PIN。'; - @override String get newProfile => '新建配置文件'; - @override String get profileNameHint => '例如:访客、儿童、家庭房'; + @override String get newProfile => '新建用户资料'; + @override String get profileNameHint => '例如:访客、儿童、客厅'; @override String get pinProtectionOptional => 'PIN 保护(可选)'; - @override String get pinExplain => '切换个人资料需要 4 位 PIN。'; + @override String get pinExplain => '切换用户资料时需要输入 4 位 PIN。'; @override String get continueButton => '继续'; @override String get pinsDontMatch => 'PIN 不匹配'; } // Path: connections -class _Translations$connections$zh extends Translations$connections$en { - _Translations$connections$zh._(TranslationsZh root) : this._root = root, super.internal(root); +class Translations$connections$zh extends Translations$connections$en { + Translations$connections$zh.internal(TranslationsZh root) : this._root = root, super.internal(root); final TranslationsZh _root; // ignore: unused_field @@ -905,17 +909,17 @@ class _Translations$connections$zh extends Translations$connections$en { @override String get sectionTitle => '连接'; @override String get addConnection => '添加连接'; @override String get addConnectionSubtitleNoProfile => '使用 Plex 登录或连接 Jellyfin 服务器'; - @override String addConnectionSubtitleScoped({required Object displayName}) => '添加到 ${displayName}: Plex、Jellyfin 或其他个人资料连接'; + @override String addConnectionSubtitleScoped({required Object displayName}) => '添加到 ${displayName}:Plex、Jellyfin,或其他用户资料的连接'; @override String sessionExpiredOne({required Object name}) => '${name} 的会话已过期'; @override String sessionExpiredMany({required Object count}) => '${count} 个服务器的会话已过期'; @override String get signInAgain => '重新登录'; @override String get editJellyfinTitle => '编辑 Jellyfin 连接'; - @override String editJellyfinIntro({required Object serverName}) => '添加或移除 ${serverName} 的 URL。Plezy 会使用可访问且延迟最低的 URL。'; + @override String editJellyfinIntro({required Object serverName}) => '添加或移除 ${serverName} 的 URL。Plezy 会使用可访问且延迟最低的地址。'; } // Path: discover -class _Translations$discover$zh extends Translations$discover$en { - _Translations$discover$zh._(TranslationsZh root) : this._root = root, super.internal(root); +class Translations$discover$zh extends Translations$discover$en { + Translations$discover$zh.internal(TranslationsZh root) : this._root = root, super.internal(root); final TranslationsZh _root; // ignore: unused_field @@ -945,28 +949,28 @@ class _Translations$discover$zh extends Translations$discover$en { } // Path: errors -class _Translations$errors$zh extends Translations$errors$en { - _Translations$errors$zh._(TranslationsZh root) : this._root = root, super.internal(root); +class Translations$errors$zh extends Translations$errors$en { + Translations$errors$zh.internal(TranslationsZh root) : this._root = root, super.internal(root); final TranslationsZh _root; // ignore: unused_field // Translations - @override String searchFailed({required Object error}) => '搜索失败: ${error}'; + @override String searchFailed({required Object error}) => '搜索失败:${error}'; @override String connectionTimeout({required Object context}) => '加载 ${context} 时连接超时'; @override String get connectionFailed => '无法连接到媒体服务器'; @override String unableToLoad({required Object context}) => '无法加载${context}。请重试。'; @override String get noClientAvailable => '没有可用客户端'; @override String get pleaseEnterToken => '请输入一个令牌'; @override String get invalidToken => '令牌无效'; - @override String failedToVerifyToken({required Object error}) => '无法验证令牌: ${error}'; + @override String failedToVerifyToken({required Object error}) => '无法验证令牌:${error}'; @override String failedToSwitchProfile({required Object displayName}) => '无法切换到 ${displayName}'; @override String failedToDeleteProfile({required Object displayName}) => '无法删除 ${displayName}'; @override String get failedToRate => '无法更新评分'; } // Path: libraries -class _Translations$libraries$zh extends Translations$libraries$en { - _Translations$libraries$zh._(TranslationsZh root) : this._root = root, super.internal(root); +class Translations$libraries$zh extends Translations$libraries$en { + Translations$libraries$zh.internal(TranslationsZh root) : this._root = root, super.internal(root); final TranslationsZh _root; // ignore: unused_field @@ -979,12 +983,12 @@ class _Translations$libraries$zh extends Translations$libraries$en { @override String get analyzeLibrary => '分析媒体库'; @override String get refreshMetadata => '刷新元数据'; @override String get emptyTrash => '清空回收站'; - @override String emptyingTrash({required Object title}) => '正在清空 “${title}” 的回收站...'; - @override String trashEmptied({required Object title}) => '已清空 “${title}” 的回收站'; - @override String failedToEmptyTrash({required Object error}) => '无法清空回收站: ${error}'; - @override String analyzing({required Object title}) => '正在分析 “${title}”...'; - @override String analysisStarted({required Object title}) => '已开始分析 “${title}”'; - @override String failedToAnalyze({required Object error}) => '无法分析媒体库: ${error}'; + @override String emptyingTrash({required Object title}) => '正在清空“${title}”的回收站…'; + @override String trashEmptied({required Object title}) => '已清空“${title}”的回收站'; + @override String failedToEmptyTrash({required Object error}) => '无法清空回收站:${error}'; + @override String analyzing({required Object title}) => '正在分析“${title}”…'; + @override String analysisStarted({required Object title}) => '已开始分析“${title}”'; + @override String failedToAnalyze({required Object error}) => '无法分析媒体库:${error}'; @override String get noLibrariesFound => '未找到媒体库'; @override String get allLibrariesHidden => '所有媒体库已隐藏'; @override String hiddenLibrariesCount({required Object count}) => '已隐藏的媒体库 (${count})'; @@ -993,14 +997,14 @@ class _Translations$libraries$zh extends Translations$libraries$en { @override String get resetFilters => '重置筛选条件'; @override String get all => '全部'; @override String get clearAll => '全部清除'; - @override String scanLibraryConfirm({required Object title}) => '确定要扫描 “${title}” 吗?'; - @override String analyzeLibraryConfirm({required Object title}) => '确定要分析 “${title}” 吗?'; - @override String refreshMetadataConfirm({required Object title}) => '确定要刷新 “${title}” 的元数据吗?'; - @override String emptyTrashConfirm({required Object title}) => '确定要清空 “${title}” 的回收站吗?'; + @override String scanLibraryConfirm({required Object title}) => '确定要扫描“${title}”吗?'; + @override String analyzeLibraryConfirm({required Object title}) => '确定要分析“${title}”吗?'; + @override String refreshMetadataConfirm({required Object title}) => '确定要刷新“${title}”的元数据吗?'; + @override String emptyTrashConfirm({required Object title}) => '确定要清空“${title}”的回收站吗?'; @override String get manageLibraries => '管理媒体库'; @override String get sort => '排序'; @override String get sortBy => '排序依据'; - @override String get filters => '筛选器'; + @override String get filters => '筛选'; @override String get confirmActionMessage => '确定要执行此操作吗?'; @override String get showLibrary => '显示媒体库'; @override String get hideLibrary => '隐藏媒体库'; @@ -1012,15 +1016,15 @@ class _Translations$libraries$zh extends Translations$libraries$en { @override String get noCollections => '此媒体库中没有合集'; @override String get noFoldersFound => '未找到文件夹'; @override String get folders => '文件夹'; - @override late final _Translations$libraries$tabs$zh tabs = _Translations$libraries$tabs$zh._(_root); - @override late final _Translations$libraries$groupings$zh groupings = _Translations$libraries$groupings$zh._(_root); - @override late final _Translations$libraries$filterCategories$zh filterCategories = _Translations$libraries$filterCategories$zh._(_root); - @override late final _Translations$libraries$sortLabels$zh sortLabels = _Translations$libraries$sortLabels$zh._(_root); + @override late final Translations$libraries$tabs$zh tabs = Translations$libraries$tabs$zh.internal(_root); + @override late final Translations$libraries$groupings$zh groupings = Translations$libraries$groupings$zh.internal(_root); + @override late final Translations$libraries$filterCategories$zh filterCategories = Translations$libraries$filterCategories$zh.internal(_root); + @override late final Translations$libraries$sortLabels$zh sortLabels = Translations$libraries$sortLabels$zh.internal(_root); } // Path: about -class _Translations$about$zh extends Translations$about$en { - _Translations$about$zh._(TranslationsZh root) : this._root = root, super.internal(root); +class Translations$about$zh extends Translations$about$en { + Translations$about$zh.internal(TranslationsZh root) : this._root = root, super.internal(root); final TranslationsZh _root; // ignore: unused_field @@ -1033,19 +1037,19 @@ class _Translations$about$zh extends Translations$about$en { } // Path: serverSelection -class _Translations$serverSelection$zh extends Translations$serverSelection$en { - _Translations$serverSelection$zh._(TranslationsZh root) : this._root = root, super.internal(root); +class Translations$serverSelection$zh extends Translations$serverSelection$en { + Translations$serverSelection$zh.internal(TranslationsZh root) : this._root = root, super.internal(root); final TranslationsZh _root; // ignore: unused_field // Translations - @override String noServersFoundForAccount({required Object username, required Object email}) => '未找到 ${username} (${email}) 的服务器'; - @override String failedToLoadServers({required Object error}) => '无法加载服务器: ${error}'; + @override String noServersFoundForAccount({required Object username, required Object email}) => '未找到 ${username}(${email})的服务器'; + @override String failedToLoadServers({required Object error}) => '无法加载服务器:${error}'; } // Path: hubDetail -class _Translations$hubDetail$zh extends Translations$hubDetail$en { - _Translations$hubDetail$zh._(TranslationsZh root) : this._root = root, super.internal(root); +class Translations$hubDetail$zh extends Translations$hubDetail$en { + Translations$hubDetail$zh.internal(TranslationsZh root) : this._root = root, super.internal(root); final TranslationsZh _root; // ignore: unused_field @@ -1058,8 +1062,8 @@ class _Translations$hubDetail$zh extends Translations$hubDetail$en { } // Path: logs -class _Translations$logs$zh extends Translations$logs$en { - _Translations$logs$zh._(TranslationsZh root) : this._root = root, super.internal(root); +class Translations$logs$zh extends Translations$logs$en { + Translations$logs$zh.internal(TranslationsZh root) : this._root = root, super.internal(root); final TranslationsZh _root; // ignore: unused_field @@ -1070,8 +1074,8 @@ class _Translations$logs$zh extends Translations$logs$en { } // Path: licenses -class _Translations$licenses$zh extends Translations$licenses$en { - _Translations$licenses$zh._(TranslationsZh root) : this._root = root, super.internal(root); +class Translations$licenses$zh extends Translations$licenses$en { + Translations$licenses$zh.internal(TranslationsZh root) : this._root = root, super.internal(root); final TranslationsZh _root; // ignore: unused_field @@ -1083,29 +1087,29 @@ class _Translations$licenses$zh extends Translations$licenses$en { } // Path: navigation -class _Translations$navigation$zh extends Translations$navigation$en { - _Translations$navigation$zh._(TranslationsZh root) : this._root = root, super.internal(root); +class Translations$navigation$zh extends Translations$navigation$en { + Translations$navigation$zh.internal(TranslationsZh root) : this._root = root, super.internal(root); final TranslationsZh _root; // ignore: unused_field // Translations @override String get libraries => '媒体库'; @override String get downloads => '下载'; - @override String get liveTv => '电视直播'; + @override String get liveTv => '直播电视'; @override String get explore => '探索'; } // Path: explore -class _Translations$explore$zh extends Translations$explore$en { - _Translations$explore$zh._(TranslationsZh root) : this._root = root, super.internal(root); +class Translations$explore$zh extends Translations$explore$en { + Translations$explore$zh.internal(TranslationsZh root) : this._root = root, super.internal(root); final TranslationsZh _root; // ignore: unused_field // Translations @override String get title => '探索'; @override String get selectSource => '选择来源'; - @override late final _Translations$explore$rows$zh rows = _Translations$explore$rows$zh._(_root); - @override late final _Translations$explore$status$zh status = _Translations$explore$status$zh._(_root); + @override late final Translations$explore$rows$zh rows = Translations$explore$rows$zh.internal(_root); + @override late final Translations$explore$status$zh status = Translations$explore$status$zh.internal(_root); @override String episodeCount({required num n}) => (_root.$meta.cardinalResolver ?? PluralResolvers.cardinal('zh'))(n, other: '${n} 集', ); @@ -1116,7 +1120,7 @@ class _Translations$explore$zh extends Translations$explore$en { @override String get watchlistUpdateFailed => '无法更新想看列表'; @override String get notInLibrary => '不在你的媒体库中'; @override String get inTheseLibraries => '在这些媒体库中'; - @override String get checkingLibrary => '正在检查你的媒体库...'; + @override String get checkingLibrary => '正在检查你的媒体库…'; @override String get emptyTitle => '这里还什么都没有'; @override String emptyMessage({required Object source}) => '当 ${source} 有内容时,相关内容将显示在这里。'; @override String searchHint({required Object source}) => '搜索 ${source}'; @@ -1126,16 +1130,16 @@ class _Translations$explore$zh extends Translations$explore$en { } // Path: liveTv -class _Translations$liveTv$zh extends Translations$liveTv$en { - _Translations$liveTv$zh._(TranslationsZh root) : this._root = root, super.internal(root); +class Translations$liveTv$zh extends Translations$liveTv$en { + Translations$liveTv$zh.internal(TranslationsZh root) : this._root = root, super.internal(root); final TranslationsZh _root; // ignore: unused_field // Translations - @override String get title => '电视直播'; + @override String get title => '直播电视'; @override String get guide => '节目指南'; @override String get noChannels => '没有可用的频道'; - @override String get noDvr => '没有服务器配置了DVR'; + @override String get noDvr => '没有服务器配置 DVR'; @override String get serverUnavailable => '直播电视服务器不可用。'; @override String get serverNotConnected => '直播电视服务器未连接。'; @override String get noPrograms => '没有可用的节目数据'; @@ -1161,18 +1165,18 @@ class _Translations$liveTv$zh extends Translations$liveTv$en { @override String get favorites => '收藏'; @override String get reorderFavorites => '重新排序收藏'; @override String get favoritesLoadFailed => '无法加载收藏。请检查网络连接后重试。'; - @override String get favoritesUpdateFailed => 'Could not update favorites. Check your connection and try again.'; + @override String get favoritesUpdateFailed => '无法更新收藏。请检查网络连接后重试。'; @override String get joinSession => '加入正在进行的会话'; @override String watchFromStart({required Object minutes}) => '从头观看(${minutes}分钟前开始)'; @override String get watchLive => '观看直播'; @override String get goToLive => '跳至直播'; @override String get record => '录制'; @override String get recordEpisode => '录制单集'; - @override String get recordSeries => '录制整部剧集'; + @override String get recordSeries => '录制系列节目'; @override String get recordOptions => '录制选项'; @override String get saveTo => '保存到'; @override String get recordings => '录制内容'; - @override String get scheduledRecordings => '已安排'; + @override String get scheduledRecordings => '计划录制'; @override String get recordingRules => '录制规则'; @override String get noScheduledRecordings => '没有安排的录制'; @override String get manageRecording => '管理录制'; @@ -1181,7 +1185,7 @@ class _Translations$liveTv$zh extends Translations$liveTv$en { @override String cancelRecordingMessage({required Object title}) => '将不再录制 ${title}。'; @override String get deleteRule => '删除规则'; @override String get deleteRuleTitle => '删除录制规则?'; - @override String deleteRuleMessage({required Object title}) => '未来的 ${title} 剧集将不会被录制。'; + @override String deleteRuleMessage({required Object title}) => '今后将不再录制 ${title} 的剧集。'; @override String get recordingScheduled => '录制已安排'; @override String get alreadyScheduled => '此节目已安排录制'; @override String get dvrAdminRequired => 'DVR 设置需要管理员账户'; @@ -1192,7 +1196,7 @@ class _Translations$liveTv$zh extends Translations$liveTv$en { @override String get recordingRuleDeleted => '录制规则已删除'; @override String get processRecordingRules => '重新评估规则'; @override String get recordingInProgress => '正在录制'; - @override String recordingsCount({required Object count}) => '已安排 ${count} 个'; + @override String recordingsCount({required Object count}) => '已安排 ${count} 项录制'; @override String get editRule => '编辑规则'; @override String get editRuleAction => '编辑'; @override String get recordingRuleUpdated => '录制规则已更新'; @@ -1202,8 +1206,8 @@ class _Translations$liveTv$zh extends Translations$liveTv$en { } // Path: collections -class _Translations$collections$zh extends Translations$collections$en { - _Translations$collections$zh._(TranslationsZh root) : this._root = root, super.internal(root); +class Translations$collections$zh extends Translations$collections$en { + Translations$collections$zh.internal(TranslationsZh root) : this._root = root, super.internal(root); final TranslationsZh _root; // ignore: unused_field @@ -1227,12 +1231,12 @@ class _Translations$collections$zh extends Translations$collections$en { @override String get removedFromCollection => '已从合集移除'; @override String get removeFromCollectionFailed => '从合集移除失败'; @override String removeFromCollectionError({required Object error}) => '从合集移除时出错:${error}'; - @override String get searchCollections => '搜索合集...'; + @override String get searchCollections => '搜索合集…'; } // Path: playlists -class _Translations$playlists$zh extends Translations$playlists$en { - _Translations$playlists$zh._(TranslationsZh root) : this._root = root, super.internal(root); +class Translations$playlists$zh extends Translations$playlists$en { + Translations$playlists$zh.internal(TranslationsZh root) : this._root = root, super.internal(root); final TranslationsZh _root; // ignore: unused_field @@ -1250,13 +1254,13 @@ class _Translations$playlists$zh extends Translations$playlists$en { @override String get oneItem => '1 个项目'; @override String get emptyPlaylist => '此播放列表为空'; @override String get deleteConfirm => '删除播放列表?'; - @override String deleteMessage({required Object name}) => '确定要删除 "${name}" 吗?'; + @override String deleteMessage({required Object name}) => '确定要删除“${name}”吗?'; @override String get created => '播放列表已创建'; @override String get deleted => '播放列表已删除'; @override String get itemAdded => '已添加到播放列表'; @override String get itemRemoved => '已从播放列表中移除'; @override String get selectPlaylist => '选择播放列表'; - @override String get searchPlaylists => '搜索播放列表...'; + @override String get searchPlaylists => '搜索播放列表…'; @override String get errorCreating => '创建播放列表失败'; @override String get errorDeleting => '删除播放列表失败'; @override String get errorLoading => '加载播放列表失败'; @@ -1266,15 +1270,15 @@ class _Translations$playlists$zh extends Translations$playlists$en { } // Path: music -class _Translations$music$zh extends Translations$music$en { - _Translations$music$zh._(TranslationsZh root) : this._root = root, super.internal(root); +class Translations$music$zh extends Translations$music$en { + Translations$music$zh.internal(TranslationsZh root) : this._root = root, super.internal(root); final TranslationsZh _root; // ignore: unused_field // Translations @override String get goToAlbum => '前往专辑'; @override String get goToArtist => '前往艺术家'; - @override String get instantMix => '即时混音'; + @override String get instantMix => '即时混合播放'; @override String get playNext => '下一首播放'; @override String get addToQueue => '添加到队列'; @override String discNumber({required Object n}) => '碟片 ${n}'; @@ -1282,13 +1286,13 @@ class _Translations$music$zh extends Translations$music$en { other: '${n} 首', ); @override String get nowPlaying => '正在播放'; - @override String playingFrom({required Object title}) => '来自 ${title}'; + @override String playingFrom({required Object title}) => '播放来源:${title}'; @override String get queue => '播放队列'; @override String get clearQueue => '清空队列'; @override String get lyrics => '歌词'; @override String get noLyrics => '暂无歌词'; @override String get sleepTimer => '睡眠定时器'; - @override String get sleepTimerEndOfTrack => '曲目结束时'; + @override String get sleepTimerEndOfTrack => '当前曲目结束时'; @override String sleepTimerMinutes({required Object n}) => '${n} 分钟'; @override String get stopPlayback => '停止播放'; @override String get previousTrack => '上一首'; @@ -1299,8 +1303,8 @@ class _Translations$music$zh extends Translations$music$en { } // Path: watchTogether -class _Translations$watchTogether$zh extends Translations$watchTogether$en { - _Translations$watchTogether$zh._(TranslationsZh root) : this._root = root, super.internal(root); +class Translations$watchTogether$zh extends Translations$watchTogether$en { + Translations$watchTogether$zh.internal(TranslationsZh root) : this._root = root, super.internal(root); final TranslationsZh _root; // ignore: unused_field @@ -1308,9 +1312,9 @@ class _Translations$watchTogether$zh extends Translations$watchTogether$en { @override String get title => '一起看'; @override String get description => '与朋友和家人同步观看内容'; @override String get createSession => '创建会话'; - @override String get creating => '创建中...'; + @override String get creating => '正在创建…'; @override String get joinSession => '加入会话'; - @override String get joining => '加入中...'; + @override String get joining => '正在加入…'; @override String get controlMode => '控制模式'; @override String get controlModeQuestion => '谁可以控制播放?'; @override String get hostOnly => '仅主持人'; @@ -1339,42 +1343,42 @@ class _Translations$watchTogether$zh extends Translations$watchTogether$en { @override String get leaveSessionConfirmOverlay => '你将断开与观看会话的连接。'; @override String get end => '结束'; @override String get leave => '离开'; - @override String get syncing => '同步中...'; + @override String get syncing => '正在同步…'; @override String get joinWatchSession => '加入观看会话'; - @override String get enterCodeHint => '输入5位代码'; + @override String get enterCodeHint => '输入 5 位代码'; @override String get pasteFromClipboard => '从剪贴板粘贴'; @override String get pleaseEnterCode => '请输入会话代码'; - @override String get codeMustBe5Chars => '会话代码必须是5个字符'; + @override String get codeMustBe5Chars => '会话代码必须是 5 个字符'; @override String get joinInstructions => '输入主持人的会话代码以加入。'; @override String get failedToCreate => '创建会话失败'; @override String get failedToJoin => '加入会话失败'; @override String get sessionCodeCopied => '会话代码已复制到剪贴板'; - @override String get relayUnreachable => '无法访问中继服务器。ISP 阻止可能导致 Watch Together 不可用。'; - @override String get reconnectingToHost => '正在重新连接到主持人...'; + @override String get relayUnreachable => '无法访问中继服务器。网络运营商的屏蔽可能导致“一起看”不可用。'; + @override String get reconnectingToHost => '正在重新连接到主持人…'; @override String get currentPlayback => '当前播放'; @override String get joinCurrentPlayback => '加入当前播放'; - @override String get joinCurrentPlaybackDescription => '回到房主当前正在观看的内容'; + @override String get joinCurrentPlaybackDescription => '加入主持人当前正在观看的内容'; @override String get failedToOpenCurrentPlayback => '无法打开当前播放'; - @override String participantJoined({required Object name}) => '${name} 加入了'; - @override String participantLeft({required Object name}) => '${name} 离开了'; - @override String participantPaused({required Object name}) => '${name} 暂停了'; - @override String participantResumed({required Object name}) => '${name} 继续播放了'; - @override String participantSeeked({required Object name}) => '${name} 跳转了'; + @override String participantJoined({required Object name}) => '${name} 已加入'; + @override String participantLeft({required Object name}) => '${name} 已离开'; + @override String participantPaused({required Object name}) => '${name} 暂停了播放'; + @override String participantResumed({required Object name}) => '${name} 恢复了播放'; + @override String participantSeeked({required Object name}) => '${name} 更改了播放位置'; @override String participantBuffering({required Object name}) => '${name} 正在缓冲'; @override String participantNeedsUpdate({required Object name}) => '${name} 正在使用较旧版本的应用,无法同步'; - @override String resumingWithout({required Object name}) => '不等待 ${name},继续播放'; - @override String get waitingForParticipants => '等待其他人加载...'; - @override String waitingForName({required Object name}) => '正在等待 ${name}...'; + @override String resumingWithout({required Object name}) => '不再等待 ${name},继续播放'; + @override String get waitingForParticipants => '正在等待其他人加载…'; + @override String waitingForName({required Object name}) => '正在等待 ${name}…'; @override String get recentRooms => '最近的房间'; @override String get renameRoom => '重命名房间'; @override String get removeRoom => '移除'; - @override String get guestSwitchUnavailable => '无法切换 — 服务器无法同步'; + @override String get guestSwitchUnavailable => '无法切换 — 服务器不可用于同步'; @override String get guestSwitchFailed => '无法切换 — 在此服务器上未找到内容'; } // Path: downloads -class _Translations$downloads$zh extends Translations$downloads$en { - _Translations$downloads$zh._(TranslationsZh root) : this._root = root, super.internal(root); +class Translations$downloads$zh extends Translations$downloads$en { + Translations$downloads$zh.internal(TranslationsZh root) : this._root = root, super.internal(root); final TranslationsZh _root; // ignore: unused_field @@ -1402,13 +1406,13 @@ class _Translations$downloads$zh extends Translations$downloads$en { @override String get resumeDownload => '继续下载'; @override String get cancelledDownload => '已取消的下载'; @override String syncingFile({required Object file, required Object status}) => '${file}(正在同步 ${status})'; - @override String downloadedFileClickToComplete({required Object file}) => '已下载 ${file} — 点击完成'; - @override String get partialDownloadClickToComplete => '已部分下载 — 点击完成'; - @override String get deleting => '正在删除...'; - @override String deletingWithProgress({required Object title, required Object current, required Object total}) => '正在删除 ${title}... (${current}/${total})'; + @override String downloadedFileClickToComplete({required Object file}) => '已下载 ${file} — 点击以完成'; + @override String get partialDownloadClickToComplete => '已部分下载 — 点击以完成'; + @override String get deleting => '正在删除…'; + @override String deletingWithProgress({required Object title, required Object current, required Object total}) => '正在删除 ${title}…(${current}/${total})'; @override String get queuedTooltip => '已排队'; @override String queuedFilesTooltip({required Object files}) => '已排队:${files}'; - @override String get downloadingTooltip => '正在下载...'; + @override String get downloadingTooltip => '正在下载…'; @override String downloadingFilesTooltip({required Object files}) => '正在下载 ${files}'; @override String get noDownloadsTree => '暂无下载'; @override String get pauseAll => '全部暂停'; @@ -1418,20 +1422,20 @@ class _Translations$downloads$zh extends Translations$downloads$en { @override String get allEpisodes => '所有剧集'; @override String get unwatchedOnly => '仅未观看'; @override String nextNUnwatched({required Object count}) => '接下来 ${count} 集未观看'; - @override String get customAmount => '自定义数量...'; + @override String get customAmount => '自定义数量…'; @override String get includeSpecials => '包含特别篇'; @override String get howManyEpisodes => '下载几集?'; @override String get invalidEpisodeCount => '请输入有效的集数。'; @override String get keepSynced => '保持同步'; @override String get downloadOnce => '下载一次'; - @override String keepNUnwatched({required Object count}) => '保留${count}个未观看'; + @override String keepNUnwatched({required Object count}) => '保留 ${count} 集未观看内容'; @override String get editSyncRule => '编辑同步规则'; @override String get removeSyncRule => '删除同步规则'; @override String removeSyncRuleConfirm({required Object title}) => '停止同步“${title}”?已下载的剧集将被保留。'; - @override String syncRuleCreated({required Object count}) => '同步规则已创建 — 保留${count}个未观看的剧集'; + @override String syncRuleCreated({required Object count}) => '同步规则已创建 — 保留 ${count} 集未观看内容'; @override String get syncRuleUpdated => '同步规则已更新'; @override String get syncRuleRemoved => '同步规则已删除'; - @override String syncedNewEpisodes({required Object title, required Object count}) => '已为${title}同步${count}个新剧集'; + @override String syncedNewEpisodes({required Object title, required Object count}) => '已为 ${title} 同步 ${count} 个新剧集'; @override String get activeSyncRules => '同步规则'; @override String get noSyncRules => '没有同步规则'; @override String get manageSyncRule => '管理同步'; @@ -1439,18 +1443,18 @@ class _Translations$downloads$zh extends Translations$downloads$en { @override String get editSyncFilter => '同步筛选'; @override String get syncAllItems => '同步所有项目'; @override String get syncUnwatchedItems => '同步未观看项目'; - @override String syncRuleServerContext({required Object server, required Object status}) => '服务器: ${server} • ${status}'; + @override String syncRuleServerContext({required Object server, required Object status}) => '服务器:${server} • ${status}'; @override String get syncRuleAvailable => '可用'; @override String get syncRuleOffline => '离线'; @override String get syncRuleSignInRequired => '需要登录'; - @override String get syncRuleNotAvailableForProfile => '当前个人资料不可用'; + @override String get syncRuleNotAvailableForProfile => '当前用户资料不可用'; @override String get syncRuleUnknownServer => '未知服务器'; @override String get syncRuleListCreated => '同步规则已创建'; } // Path: shaders -class _Translations$shaders$zh extends Translations$shaders$en { - _Translations$shaders$zh._(TranslationsZh root) : this._root = root, super.internal(root); +class Translations$shaders$zh extends Translations$shaders$en { + Translations$shaders$zh.internal(TranslationsZh root) : this._root = root, super.internal(root); final TranslationsZh _root; // ignore: unused_field @@ -1469,28 +1473,28 @@ class _Translations$shaders$zh extends Translations$shaders$en { @override String get shaderImported => '着色器已导入'; @override String get shaderImportFailed => '导入着色器失败'; @override String get deleteShader => '删除着色器'; - @override String deleteShaderConfirm({required Object name}) => '删除"${name}"?'; + @override String deleteShaderConfirm({required Object name}) => '删除“${name}”?'; } // Path: companionRemote -class _Translations$companionRemote$zh extends Translations$companionRemote$en { - _Translations$companionRemote$zh._(TranslationsZh root) : this._root = root, super.internal(root); +class Translations$companionRemote$zh extends Translations$companionRemote$en { + Translations$companionRemote$zh.internal(TranslationsZh root) : this._root = root, super.internal(root); final TranslationsZh _root; // ignore: unused_field // Translations - @override String get title => '伴侣遥控'; + @override String get title => '遥控器'; @override String connectedTo({required Object name}) => '已连接到 ${name}'; @override String get unknownDevice => '未知设备'; - @override late final _Translations$companionRemote$session$zh session = _Translations$companionRemote$session$zh._(_root); - @override late final _Translations$companionRemote$pairing$zh pairing = _Translations$companionRemote$pairing$zh._(_root); - @override late final _Translations$companionRemote$remote$zh remote = _Translations$companionRemote$remote$zh._(_root); - @override late final _Translations$companionRemote$errors$zh errors = _Translations$companionRemote$errors$zh._(_root); + @override late final Translations$companionRemote$session$zh session = Translations$companionRemote$session$zh.internal(_root); + @override late final Translations$companionRemote$pairing$zh pairing = Translations$companionRemote$pairing$zh.internal(_root); + @override late final Translations$companionRemote$remote$zh remote = Translations$companionRemote$remote$zh.internal(_root); + @override late final Translations$companionRemote$errors$zh errors = Translations$companionRemote$errors$zh.internal(_root); } // Path: videoSettings -class _Translations$videoSettings$zh extends Translations$videoSettings$en { - _Translations$videoSettings$zh._(TranslationsZh root) : this._root = root, super.internal(root); +class Translations$videoSettings$zh extends Translations$videoSettings$en { + Translations$videoSettings$zh.internal(TranslationsZh root) : this._root = root, super.internal(root); final TranslationsZh _root; // ignore: unused_field @@ -1511,8 +1515,8 @@ class _Translations$videoSettings$zh extends Translations$videoSettings$en { } // Path: performanceOverlay -class _Translations$performanceOverlay$zh extends Translations$performanceOverlay$en { - _Translations$performanceOverlay$zh._(TranslationsZh root) : this._root = root, super.internal(root); +class Translations$performanceOverlay$zh extends Translations$performanceOverlay$en { + Translations$performanceOverlay$zh.internal(TranslationsZh root) : this._root = root, super.internal(root); final TranslationsZh _root; // ignore: unused_field @@ -1534,7 +1538,7 @@ class _Translations$performanceOverlay$zh extends Translations$performanceOverla @override String get hwFormat => '硬件格式'; @override String get matrix => '矩阵'; @override String get primaries => '基色'; - @override String get transfer => '传输'; + @override String get transfer => '传递特性'; @override String get renderFps => '渲染 FPS'; @override String get displayFps => '显示 FPS'; @override String get avSync => 'A/V 同步'; @@ -1555,8 +1559,8 @@ class _Translations$performanceOverlay$zh extends Translations$performanceOverla } // Path: externalPlayer -class _Translations$externalPlayer$zh extends Translations$externalPlayer$en { - _Translations$externalPlayer$zh._(TranslationsZh root) : this._root = root, super.internal(root); +class Translations$externalPlayer$zh extends Translations$externalPlayer$en { + Translations$externalPlayer$zh.internal(TranslationsZh root) : this._root = root, super.internal(root); final TranslationsZh _root; // ignore: unused_field @@ -1580,13 +1584,13 @@ class _Translations$externalPlayer$zh extends Translations$externalPlayer$en { } // Path: metadataEdit -class _Translations$metadataEdit$zh extends Translations$metadataEdit$en { - _Translations$metadataEdit$zh._(TranslationsZh root) : this._root = root, super.internal(root); +class Translations$metadataEdit$zh extends Translations$metadataEdit$en { + Translations$metadataEdit$zh.internal(TranslationsZh root) : this._root = root, super.internal(root); final TranslationsZh _root; // ignore: unused_field // Translations - @override String get editMetadata => '编辑...'; + @override String get editMetadata => '编辑…'; @override String get screenTitle => '编辑元数据'; @override String get basicInfo => '基本信息'; @override String get artwork => '封面图片'; @@ -1607,7 +1611,7 @@ class _Translations$metadataEdit$zh extends Translations$metadataEdit$en { @override String get selectBackground => '选择背景'; @override String get selectLogo => '选择标志'; @override String get selectSquareArt => '选择方形图片'; - @override String get fromUrl => '从 URL'; + @override String get fromUrl => '通过 URL'; @override String get uploadFile => '上传文件'; @override String get enterImageUrl => '输入图片 URL'; @override String get imageUrl => '图片 URL'; @@ -1665,14 +1669,14 @@ class _Translations$metadataEdit$zh extends Translations$metadataEdit$en { } // Path: matchScreen -class _Translations$matchScreen$zh extends Translations$matchScreen$en { - _Translations$matchScreen$zh._(TranslationsZh root) : this._root = root, super.internal(root); +class Translations$matchScreen$zh extends Translations$matchScreen$en { + Translations$matchScreen$zh.internal(TranslationsZh root) : this._root = root, super.internal(root); final TranslationsZh _root; // ignore: unused_field // Translations - @override String get match => '匹配...'; - @override String get fixMatch => '修正匹配...'; + @override String get match => '匹配…'; + @override String get fixMatch => '修正匹配…'; @override String get unmatch => '取消匹配'; @override String get unmatchConfirm => '清除此匹配?在重新匹配前,Plex 会将其视为未匹配。'; @override String get unmatchSuccess => '已取消匹配'; @@ -1686,8 +1690,8 @@ class _Translations$matchScreen$zh extends Translations$matchScreen$en { } // Path: serverTasks -class _Translations$serverTasks$zh extends Translations$serverTasks$en { - _Translations$serverTasks$zh._(TranslationsZh root) : this._root = root, super.internal(root); +class Translations$serverTasks$zh extends Translations$serverTasks$en { + Translations$serverTasks$zh.internal(TranslationsZh root) : this._root = root, super.internal(root); final TranslationsZh _root; // ignore: unused_field @@ -1698,8 +1702,8 @@ class _Translations$serverTasks$zh extends Translations$serverTasks$en { } // Path: trakt -class _Translations$trakt$zh extends Translations$trakt$en { - _Translations$trakt$zh._(TranslationsZh root) : this._root = root, super.internal(root); +class Translations$trakt$zh extends Translations$trakt$en { + Translations$trakt$zh.internal(TranslationsZh root) : this._root = root, super.internal(root); final TranslationsZh _root; // ignore: unused_field @@ -1709,15 +1713,15 @@ class _Translations$trakt$zh extends Translations$trakt$en { @override String connectedAs({required Object username}) => '已以 @${username} 身份连接'; @override String get disconnectConfirm => '断开 Trakt 账户?'; @override String get disconnectConfirmBody => 'Plezy 将停止向 Trakt 发送事件。你可随时重新连接。'; - @override String get scrobble => '实时 Scrobble'; - @override String get scrobbleDescription => '在播放时向 Trakt 发送播放、暂停和停止事件。'; + @override String get scrobble => '实时同步播放状态'; + @override String get scrobbleDescription => '播放期间将播放、暂停和停止事件发送到 Trakt。'; @override String get watchedSync => '同步已观看状态'; @override String get watchedSyncDescription => '在 Plezy 中将内容标记为已观看时,也会在 Trakt 上标记为已观看。'; } // Path: seerr -class _Translations$seerr$zh extends Translations$seerr$en { - _Translations$seerr$zh._(TranslationsZh root) : this._root = root, super.internal(root); +class Translations$seerr$zh extends Translations$seerr$en { + Translations$seerr$zh.internal(TranslationsZh root) : this._root = root, super.internal(root); final TranslationsZh _root; // ignore: unused_field @@ -1741,11 +1745,11 @@ class _Translations$seerr$zh extends Translations$seerr$en { @override String get allSeasons => '全部季'; @override String get advancedOptions => '高级'; @override String get destinationServer => '目标服务器'; - @override String get qualityProfile => '质量配置文件'; + @override String get qualityProfile => '画质配置'; @override String get rootFolder => '根目录'; - @override String get languageProfile => '语言配置文件'; + @override String get languageProfile => '语言配置'; @override String get requestSubmitted => '请求已提交'; - @override String requestFailed({required Object error}) => '请求失败: ${error}'; + @override String requestFailed({required Object error}) => '请求失败:${error}'; @override String get requestsLoadFailed => '无法加载请求选项'; @override String get nothingToRequest => '所有内容都已可用或已请求。'; @override String get statusAvailable => '可用'; @@ -1755,8 +1759,8 @@ class _Translations$seerr$zh extends Translations$seerr$en { } // Path: services -class _Translations$services$zh extends Translations$services$en { - _Translations$services$zh._(TranslationsZh root) : this._root = root, super.internal(root); +class Translations$services$zh extends Translations$services$en { + Translations$services$zh.internal(TranslationsZh root) : this._root = root, super.internal(root); final TranslationsZh _root; // ignore: unused_field @@ -1770,52 +1774,52 @@ class _Translations$services$zh extends Translations$services$en { @override String disconnectConfirm({required Object service}) => '断开 ${service} 连接?'; @override String disconnectConfirmBody({required Object service}) => 'Plezy 将停止更新 ${service}。可随时重新连接。'; @override String connectFailed({required Object service}) => '无法连接到 ${service}。请重试。'; - @override late final _Translations$services$names$zh names = _Translations$services$names$zh._(_root); - @override late final _Translations$services$deviceCode$zh deviceCode = _Translations$services$deviceCode$zh._(_root); - @override late final _Translations$services$oauthProxy$zh oauthProxy = _Translations$services$oauthProxy$zh._(_root); - @override late final _Translations$services$libraryFilter$zh libraryFilter = _Translations$services$libraryFilter$zh._(_root); + @override late final Translations$services$names$zh names = Translations$services$names$zh.internal(_root); + @override late final Translations$services$deviceCode$zh deviceCode = Translations$services$deviceCode$zh.internal(_root); + @override late final Translations$services$oauthProxy$zh oauthProxy = Translations$services$oauthProxy$zh.internal(_root); + @override late final Translations$services$libraryFilter$zh libraryFilter = Translations$services$libraryFilter$zh.internal(_root); } // Path: addServer -class _Translations$addServer$zh extends Translations$addServer$en { - _Translations$addServer$zh._(TranslationsZh root) : this._root = root, super.internal(root); +class Translations$addServer$zh extends Translations$addServer$en { + Translations$addServer$zh.internal(TranslationsZh root) : this._root = root, super.internal(root); final TranslationsZh _root; // ignore: unused_field // Translations @override String get addJellyfinTitle => '添加 Jellyfin 服务器'; @override String get serverUrls => '服务器 URL'; - @override String get serverUrlsHelper => '可输入多个 URL,以逗号分隔。'; + @override String get serverUrlsHelper => '可输入多个 URL,并用逗号分隔。'; @override String get findServer => '查找服务器'; - @override String get searchingLocalServers => '正在查找本地 Jellyfin 服务器...'; + @override String get searchingLocalServers => '正在查找本地 Jellyfin 服务器…'; @override String get localServers => '本地 Jellyfin 服务器'; @override String get username => '用户名'; @override String get password => '密码'; @override String get signIn => '登录'; @override String get change => '更改'; @override String get required => '必填'; - @override String couldNotReachServer({required Object error}) => '无法连接到服务器: ${error}'; - @override String signInFailed({required Object error}) => '登录失败: ${error}'; - @override String quickConnectFailed({required Object error}) => 'Quick Connect 失败: ${error}'; + @override String couldNotReachServer({required Object error}) => '无法连接到服务器:${error}'; + @override String signInFailed({required Object error}) => '登录失败:${error}'; + @override String quickConnectFailed({required Object error}) => 'Quick Connect 失败:${error}'; @override String get addPlexTitle => '使用 Plex 登录'; @override String get pinExpired => 'PIN 在登录前已过期。请重试。'; - @override String failedToRegisterAccount({required Object error}) => '注册帐户失败: ${error}'; - @override String get enterJellyfinUrlError => '输入你的 Jellyfin 服务器 URL'; + @override String failedToRegisterAccount({required Object error}) => '注册账户失败:${error}'; + @override String get enterJellyfinUrlError => '请输入 Jellyfin 服务器 URL'; @override String get addConnectionTitle => '添加连接'; @override String addConnectionTitleScoped({required Object name}) => '添加到 ${name}'; @override String get signInWithPlexCard => '使用 Plex 登录'; @override String get signInWithPlexCardSubtitle => '授权此设备。共享服务器会被添加。'; - @override String get signInWithPlexCardSubtitleScoped => '授权一个 Plex 账号。Home 用户会成为个人资料。'; + @override String get signInWithPlexCardSubtitleScoped => '授权一个 Plex 账户。Plex Home 用户将成为 Plezy 用户资料。'; @override String get connectToJellyfinCard => '连接到 Jellyfin'; @override String get connectToJellyfinCardSubtitle => '输入服务器 URL、用户名和密码。'; @override String connectToJellyfinCardSubtitleScoped({required Object name}) => '登录到 Jellyfin 服务器。绑定到 ${name}。'; - @override String get borrowFromAnotherProfile => '从另一个配置文件借用'; - @override String get borrowFromAnotherProfileSubtitle => '复用另一个个人资料的连接。受 PIN 保护的个人资料需要 PIN。'; + @override String get borrowFromAnotherProfile => '使用其他用户资料的连接'; + @override String get borrowFromAnotherProfileSubtitle => '复用另一个用户资料的连接。受 PIN 保护的用户资料需要输入 PIN。'; } // Path: hotkeys.actions -class _Translations$hotkeys$actions$zh extends Translations$hotkeys$actions$en { - _Translations$hotkeys$actions$zh._(TranslationsZh root) : this._root = root, super.internal(root); +class Translations$hotkeys$actions$zh extends Translations$hotkeys$actions$en { + Translations$hotkeys$actions$zh.internal(TranslationsZh root) : this._root = root, super.internal(root); final TranslationsZh _root; // ignore: unused_field @@ -1840,16 +1844,16 @@ class _Translations$hotkeys$actions$zh extends Translations$hotkeys$actions$en { @override String get zoomIn => '放大'; @override String get zoomOut => '缩小'; @override String get zoomReset => '重置缩放'; - @override String get subSeekNext => '跳转到下一字幕'; - @override String get subSeekPrev => '跳转到上一字幕'; + @override String get subSeekNext => '跳转到下一条字幕'; + @override String get subSeekPrev => '跳转到上一条字幕'; @override String get shaderToggle => '切换着色器'; @override String get skipMarker => '跳过片头/片尾'; @override String get screenshot => '截图'; } // Path: videoControls.pipErrors -class _Translations$videoControls$pipErrors$zh extends Translations$videoControls$pipErrors$en { - _Translations$videoControls$pipErrors$zh._(TranslationsZh root) : this._root = root, super.internal(root); +class Translations$videoControls$pipErrors$zh extends Translations$videoControls$pipErrors$en { + Translations$videoControls$pipErrors$zh.internal(TranslationsZh root) : this._root = root, super.internal(root); final TranslationsZh _root; // ignore: unused_field @@ -1864,8 +1868,8 @@ class _Translations$videoControls$pipErrors$zh extends Translations$videoControl } // Path: libraries.tabs -class _Translations$libraries$tabs$zh extends Translations$libraries$tabs$en { - _Translations$libraries$tabs$zh._(TranslationsZh root) : this._root = root, super.internal(root); +class Translations$libraries$tabs$zh extends Translations$libraries$tabs$en { + Translations$libraries$tabs$zh.internal(TranslationsZh root) : this._root = root, super.internal(root); final TranslationsZh _root; // ignore: unused_field @@ -1877,8 +1881,8 @@ class _Translations$libraries$tabs$zh extends Translations$libraries$tabs$en { } // Path: libraries.groupings -class _Translations$libraries$groupings$zh extends Translations$libraries$groupings$en { - _Translations$libraries$groupings$zh._(TranslationsZh root) : this._root = root, super.internal(root); +class Translations$libraries$groupings$zh extends Translations$libraries$groupings$en { + Translations$libraries$groupings$zh.internal(TranslationsZh root) : this._root = root, super.internal(root); final TranslationsZh _root; // ignore: unused_field @@ -1896,8 +1900,8 @@ class _Translations$libraries$groupings$zh extends Translations$libraries$groupi } // Path: libraries.filterCategories -class _Translations$libraries$filterCategories$zh extends Translations$libraries$filterCategories$en { - _Translations$libraries$filterCategories$zh._(TranslationsZh root) : this._root = root, super.internal(root); +class Translations$libraries$filterCategories$zh extends Translations$libraries$filterCategories$en { + Translations$libraries$filterCategories$zh.internal(TranslationsZh root) : this._root = root, super.internal(root); final TranslationsZh _root; // ignore: unused_field @@ -1912,8 +1916,8 @@ class _Translations$libraries$filterCategories$zh extends Translations$libraries } // Path: libraries.sortLabels -class _Translations$libraries$sortLabels$zh extends Translations$libraries$sortLabels$en { - _Translations$libraries$sortLabels$zh._(TranslationsZh root) : this._root = root, super.internal(root); +class Translations$libraries$sortLabels$zh extends Translations$libraries$sortLabels$en { + Translations$libraries$sortLabels$zh.internal(TranslationsZh root) : this._root = root, super.internal(root); final TranslationsZh _root; // ignore: unused_field @@ -1933,7 +1937,7 @@ class _Translations$libraries$sortLabels$zh extends Translations$libraries$sortL @override String get premiereDate => '首映日期'; @override String get startDate => '开始日期'; @override String get airTime => '播出时间'; - @override String get studio => '工作室'; + @override String get studio => '制片公司'; @override String get random => '随机'; @override String get dateShared => '共享日期'; @override String get latestEpisodeAirDate => '最新一集播出日期'; @@ -1941,8 +1945,8 @@ class _Translations$libraries$sortLabels$zh extends Translations$libraries$sortL } // Path: explore.rows -class _Translations$explore$rows$zh extends Translations$explore$rows$en { - _Translations$explore$rows$zh._(TranslationsZh root) : this._root = root, super.internal(root); +class Translations$explore$rows$zh extends Translations$explore$rows$en { + Translations$explore$rows$zh.internal(TranslationsZh root) : this._root = root, super.internal(root); final TranslationsZh _root; // ignore: unused_field @@ -1950,22 +1954,22 @@ class _Translations$explore$rows$zh extends Translations$explore$rows$en { @override String get watchlist => '想看列表'; @override String get recommendedMovies => '推荐电影'; @override String get recommendedShows => '推荐剧集'; - @override String get trendingMovies => '趋势电影'; - @override String get trendingShows => '趋势剧集'; - @override String get popularMovies => '热门电影'; - @override String get popularShows => '热门剧集'; + @override String get trendingMovies => '近期热门电影'; + @override String get trendingShows => '近期热门剧集'; + @override String get popularMovies => '人气电影'; + @override String get popularShows => '人气剧集'; @override String get trendingAnime => '热门动画'; @override String get suggestedAnime => '推荐动画'; @override String get airingAnime => '热门连载动画'; @override String get popularAnime => '最受欢迎动画'; - @override String get trending => '趋势'; + @override String get trending => '近期热门'; @override String get upcomingMovies => '即将上映的电影'; @override String get upcomingShows => '即将播出的剧集'; } // Path: explore.status -class _Translations$explore$status$zh extends Translations$explore$status$en { - _Translations$explore$status$zh._(TranslationsZh root) : this._root = root, super.internal(root); +class Translations$explore$status$zh extends Translations$explore$status$en { + Translations$explore$status$zh.internal(TranslationsZh root) : this._root = root, super.internal(root); final TranslationsZh _root; // ignore: unused_field @@ -1977,13 +1981,13 @@ class _Translations$explore$status$zh extends Translations$explore$status$en { } // Path: companionRemote.session -class _Translations$companionRemote$session$zh extends Translations$companionRemote$session$en { - _Translations$companionRemote$session$zh._(TranslationsZh root) : this._root = root, super.internal(root); +class Translations$companionRemote$session$zh extends Translations$companionRemote$session$en { + Translations$companionRemote$session$zh.internal(TranslationsZh root) : this._root = root, super.internal(root); final TranslationsZh _root; // ignore: unused_field // Translations - @override String get startingServer => '正在启动远程服务器...'; + @override String get startingServer => '正在启动远程服务器…'; @override String get hostAddress => '主机地址'; @override String get connected => '已连接'; @override String get serverRunning => '远程服务器已启动'; @@ -1997,23 +2001,23 @@ class _Translations$companionRemote$session$zh extends Translations$companionRem } // Path: companionRemote.pairing -class _Translations$companionRemote$pairing$zh extends Translations$companionRemote$pairing$en { - _Translations$companionRemote$pairing$zh._(TranslationsZh root) : this._root = root, super.internal(root); +class Translations$companionRemote$pairing$zh extends Translations$companionRemote$pairing$en { + Translations$companionRemote$pairing$zh.internal(TranslationsZh root) : this._root = root, super.internal(root); final TranslationsZh _root; // ignore: unused_field // Translations @override String get discoveryDescription => '使用同一 Plex 账号的 Plezy 设备会显示在这里'; @override String get hostAddressHint => '192.168.1.100:48632'; - @override String get connecting => '正在连接...'; - @override String get searchingForDevices => '正在搜索设备...'; - @override String get noDevicesFound => '未在网络上找到设备'; - @override String get noDevicesHint => '在桌面端打开 Plezy 并使用同一 WiFi'; + @override String get connecting => '正在连接…'; + @override String get searchingForDevices => '正在搜索设备…'; + @override String get noDevicesFound => '未在网络中找到设备'; + @override String get noDevicesHint => '请在桌面端打开 Plezy,并确保设备连接到同一 Wi-Fi 网络'; @override String get availableDevices => '可用设备'; @override String get manualConnection => '手动连接'; @override String get cryptoInitFailed => '无法启动安全连接。请先登录 Plex。'; @override String get validationHostRequired => '请输入主机地址'; - @override String get validationHostFormat => '格式必须为IP:端口(例如 192.168.1.100:48632)'; + @override String get validationHostFormat => '格式必须为 IP:端口(例如 192.168.1.100:48632)'; @override String get connectionTimedOut => '连接超时。请在两台设备上使用同一网络。'; @override String get sessionNotFound => '未找到设备。请确认 Plezy 正在主机上运行。'; @override String get authFailed => '认证失败。两台设备需要使用同一 Plex 账号。'; @@ -2021,21 +2025,21 @@ class _Translations$companionRemote$pairing$zh extends Translations$companionRem } // Path: companionRemote.remote -class _Translations$companionRemote$remote$zh extends Translations$companionRemote$remote$en { - _Translations$companionRemote$remote$zh._(TranslationsZh root) : this._root = root, super.internal(root); +class Translations$companionRemote$remote$zh extends Translations$companionRemote$remote$en { + Translations$companionRemote$remote$zh.internal(TranslationsZh root) : this._root = root, super.internal(root); final TranslationsZh _root; // ignore: unused_field // Translations - @override String get disconnectConfirm => '是否要断开远程会话的连接?'; - @override String get reconnecting => '重新连接中...'; + @override String get disconnectConfirm => '确定要断开遥控会话吗?'; + @override String get reconnecting => '正在重新连接…'; @override String attemptOf({required Object current}) => '第 ${current} 次尝试,共 5 次'; @override String get retryNow => '立即重试'; - @override String get tabRemote => '遥控'; + @override String get tabRemote => '遥控器'; @override String get tabPlay => '播放'; @override String get tabMore => '更多'; @override String get menu => '菜单'; - @override String get tabNavigation => '标签导航'; + @override String get tabNavigation => '导航'; @override String get tabDiscover => '发现'; @override String get tabLibraries => '媒体库'; @override String get tabSearch => '搜索'; @@ -2044,21 +2048,21 @@ class _Translations$companionRemote$remote$zh extends Translations$companionRemo @override String get previous => '上一个'; @override String get playPause => '播放/暂停'; @override String get next => '下一个'; - @override String get seekBack => '后退'; + @override String get seekBack => '快退'; @override String get stop => '停止'; @override String get seekForward => '快进'; @override String get volume => '音量'; - @override String get volumeDown => '减小'; - @override String get volumeUp => '增大'; + @override String get volumeDown => '降低音量'; + @override String get volumeUp => '提高音量'; @override String get fullscreen => '全屏'; @override String get subtitles => '字幕'; @override String get audio => '音频'; - @override String get searchHint => '在桌面上搜索...'; + @override String get searchHint => '在桌面端搜索…'; } // Path: companionRemote.errors -class _Translations$companionRemote$errors$zh extends Translations$companionRemote$errors$en { - _Translations$companionRemote$errors$zh._(TranslationsZh root) : this._root = root, super.internal(root); +class Translations$companionRemote$errors$zh extends Translations$companionRemote$errors$en { + Translations$companionRemote$errors$zh.internal(TranslationsZh root) : this._root = root, super.internal(root); final TranslationsZh _root; // ignore: unused_field @@ -2074,8 +2078,8 @@ class _Translations$companionRemote$errors$zh extends Translations$companionRemo } // Path: services.names -class _Translations$services$names$zh extends Translations$services$names$en { - _Translations$services$names$zh._(TranslationsZh root) : this._root = root, super.internal(root); +class Translations$services$names$zh extends Translations$services$names$en { + Translations$services$names$zh.internal(TranslationsZh root) : this._root = root, super.internal(root); final TranslationsZh _root; // ignore: unused_field @@ -2087,8 +2091,8 @@ class _Translations$services$names$zh extends Translations$services$names$en { } // Path: services.deviceCode -class _Translations$services$deviceCode$zh extends Translations$services$deviceCode$en { - _Translations$services$deviceCode$zh._(TranslationsZh root) : this._root = root, super.internal(root); +class Translations$services$deviceCode$zh extends Translations$services$deviceCode$en { + Translations$services$deviceCode$zh.internal(TranslationsZh root) : this._root = root, super.internal(root); final TranslationsZh _root; // ignore: unused_field @@ -2102,8 +2106,8 @@ class _Translations$services$deviceCode$zh extends Translations$services$deviceC } // Path: services.oauthProxy -class _Translations$services$oauthProxy$zh extends Translations$services$oauthProxy$en { - _Translations$services$oauthProxy$zh._(TranslationsZh root) : this._root = root, super.internal(root); +class Translations$services$oauthProxy$zh extends Translations$services$oauthProxy$en { + Translations$services$oauthProxy$zh.internal(TranslationsZh root) : this._root = root, super.internal(root); final TranslationsZh _root; // ignore: unused_field @@ -2116,8 +2120,8 @@ class _Translations$services$oauthProxy$zh extends Translations$services$oauthPr } // Path: services.libraryFilter -class _Translations$services$libraryFilter$zh extends Translations$services$libraryFilter$en { - _Translations$services$libraryFilter$zh._(TranslationsZh root) : this._root = root, super.internal(root); +class Translations$services$libraryFilter$zh extends Translations$services$libraryFilter$en { + Translations$services$libraryFilter$zh.internal(TranslationsZh root) : this._root = root, super.internal(root); final TranslationsZh _root; // ignore: unused_field @@ -2150,7 +2154,7 @@ extension on TranslationsZh { 'auth.authenticate' => '验证', 'auth.authenticationTimeout' => '验证超时。请重试。', 'auth.scanQRToSignIn' => '扫描二维码登录', - 'auth.waitingForAuth' => '正在等待认证...\n请在浏览器中登录。', + 'auth.waitingForAuth' => '正在等待身份验证…\n请在浏览器中登录。', 'auth.useBrowser' => '使用浏览器', 'auth.or' => '或', 'auth.connectToJellyfin' => '连接到 Jellyfin', @@ -2159,7 +2163,7 @@ extension on TranslationsZh { 'auth.quickConnectWaiting' => '等待批准…', 'auth.quickConnectCancel' => '取消', 'auth.quickConnectExpired' => 'Quick Connect 已过期。请重试。', - 'auth.localDataRecoveryRequired' => 'Plezy could not safely recover local sign-in and pending playback data. Please sign in again.', + 'auth.localDataRecoveryRequired' => 'Plezy 无法安全恢复本地登录状态和待处理的播放数据。请重新登录。', 'common.cancel' => '取消', 'common.save' => '保存', 'common.close' => '关闭', @@ -2169,7 +2173,7 @@ extension on TranslationsZh { 'common.submit' => '提交', 'common.confirm' => '确认', 'common.retry' => '重试', - 'common.logout' => '登出', + 'common.logout' => '退出登录', 'common.unknown' => '未知', 'common.refresh' => '刷新', 'common.yes' => '是', @@ -2177,7 +2181,7 @@ extension on TranslationsZh { 'common.delete' => '删除', 'common.edit' => '编辑', 'common.shuffle' => '随机播放', - 'common.addTo' => '添加到...', + 'common.addTo' => '添加到…', 'common.createNew' => '新建', 'common.connect' => '连接', 'common.disconnect' => '断开连接', @@ -2193,18 +2197,18 @@ extension on TranslationsZh { 'common.ok' => '确定', 'common.off' => '关闭', 'common.seasonNumber' => ({required Object number}) => '第${number}季', - 'common.episodeNumberTitle' => ({required Object number, required Object title}) => '第${number}集 - ${title}', - 'common.chapterNumber' => ({required Object number}) => '章节 ${number}', + 'common.episodeNumberTitle' => ({required Object number, required Object title}) => '第${number}集 — ${title}', + 'common.chapterNumber' => ({required Object number}) => '第${number}章', 'common.reconnect' => '重新连接', 'common.viewAll' => '查看全部', - 'common.checkingNetwork' => '正在检查网络...', - 'common.loadingServers' => '正在加载服务器...', - 'common.connectingToServers' => '正在连接服务器...', - 'common.startingOfflineMode' => '正在启动离线模式...', - 'common.loading' => '加载中...', + 'common.checkingNetwork' => '正在检查网络…', + 'common.loadingServers' => '正在加载服务器…', + 'common.connectingToServers' => '正在连接服务器…', + 'common.startingOfflineMode' => '正在启动离线模式…', + 'common.loading' => '加载中…', 'common.fullscreen' => '全屏', 'common.exitFullscreen' => '退出全屏', - 'common.pressBackAgainToExit' => '再按一次返回退出', + 'common.pressBackAgainToExit' => '再按一次返回键退出', 'screens.licenses' => '许可证', 'screens.switchProfile' => '切换用户', 'screens.subtitleStyling' => '字幕样式', @@ -2212,10 +2216,10 @@ extension on TranslationsZh { 'screens.logs' => '日志', 'update.available' => '有可用更新', 'update.versionAvailable' => ({required Object version}) => '版本 ${version} 已发布', - 'update.currentVersion' => ({required Object version}) => '当前版本: ${version}', + 'update.currentVersion' => ({required Object version}) => '当前版本:${version}', 'update.skipVersion' => '跳过此版本', 'update.viewRelease' => '查看发布详情', - 'update.latestVersion' => '已安装的版本是可用的最新版本', + 'update.latestVersion' => '当前已是最新版本', 'update.checkFailed' => '无法检查更新', 'settings.title' => '设置', 'settings.supportDeveloper' => '支持 Plezy', @@ -2235,7 +2239,7 @@ extension on TranslationsZh { 'settings.minutesLabel' => '分钟', 'settings.secondsShort' => 's', 'settings.minutesShort' => 'm', - 'settings.durationHint' => ({required Object min, required Object max}) => '输入时长 (${min}-${max})', + 'settings.durationHint' => ({required Object min, required Object max}) => '输入时长(${min}–${max})', 'settings.systemTheme' => '系统', 'settings.lightTheme' => '浅色', 'settings.darkTheme' => '深色', @@ -2243,10 +2247,12 @@ extension on TranslationsZh { 'settings.libraryDensity' => '媒体库密度', 'settings.compact' => '紧凑', 'settings.comfortable' => '舒适', + 'settings.tvCornerSpotlightBackdrop' => '右上角聚焦背景图', + 'settings.tvCornerSpotlightBackdropDescription' => '在右上角显示精选内容图片,而不是铺满整个屏幕', 'settings.viewMode' => '视图模式', 'settings.gridView' => '网格视图', 'settings.listView' => '列表视图', - 'settings.showHeroSection' => '显示主要精选区', + 'settings.showHeroSection' => '显示精选内容区', 'settings.continueWatchingAction' => '继续观看操作', 'settings.continueWatchingPlay' => '播放', 'settings.continueWatchingDetails' => '打开详情', @@ -2254,27 +2260,27 @@ extension on TranslationsZh { 'settings.episodePlay' => '播放', 'settings.episodeDetails' => '打开详情', 'settings.useGlobalHubs' => '使用主页布局', - 'settings.useGlobalHubsDescription' => '显示统一主页中心。否则使用资料库推荐。', + 'settings.useGlobalHubsDescription' => '显示统一主页内容;否则使用各媒体库的推荐内容。', 'settings.showServerNameOnHubs' => '在推荐栏显示服务器名称', - 'settings.showServerNameOnHubsDescription' => '始终在中心标题中显示服务器名称。', + 'settings.showServerNameOnHubsDescription' => '始终在推荐栏标题中显示服务器名称。', 'settings.groupLibrariesByServer' => '按服务器分组媒体库', - 'settings.groupLibrariesByServerDescription' => '按媒体服务器分组侧边栏资料库。', + 'settings.groupLibrariesByServerDescription' => '在侧边栏中按媒体服务器分组媒体库。', 'settings.alwaysKeepSidebarOpen' => '始终保持侧边栏展开', 'settings.alwaysKeepSidebarOpenDescription' => '侧边栏保持展开状态,内容区域自动调整', 'settings.showUnwatchedCount' => '显示未观看数量', - 'settings.showUnwatchedCountDescription' => '在剧集和季上显示未观看的集数', + 'settings.showUnwatchedCountDescription' => '在剧集和季上显示未观看集数', 'settings.showEpisodeNumberOnCards' => '在卡片上显示集数', 'settings.showEpisodeNumberOnCardsDescription' => '在剧集卡片上显示季和集编号', 'settings.showSeasonPostersOnTabs' => '在选项卡上显示季海报', 'settings.showSeasonPostersOnTabsDescription' => '在每季标签上方显示该季海报', - 'settings.tvFullCardLayout' => '完整 TV 卡片', - 'settings.tvFullCardLayoutDescription' => '使用仅显示图片的 TV 卡片,并叠加演员姓名', + 'settings.tvFullCardLayout' => '完整电视卡片', + 'settings.tvFullCardLayoutDescription' => '使用仅显示图片的电视卡片,并在图片上叠加演员姓名', 'settings.focusGlow' => '焦点光晕', 'settings.focusGlowDescription' => '在获得焦点的卡片周围显示柔和的光晕', 'settings.visualEffects' => '视觉效果', 'settings.visualEffectsAuto' => '自动', 'settings.visualEffectsAutoDescription' => '在性能较低的设备上自动减少效果', - 'settings.visualEffectsFull' => '完整', + 'settings.visualEffectsFull' => '完整效果', 'settings.visualEffectsReduced' => '简化', 'settings.visualEffectsReducedDescription' => '减少动画并使用较低分辨率的封面图片', 'settings.hideSpoilers' => '隐藏未看剧集的剧透内容', @@ -2289,7 +2295,7 @@ extension on TranslationsZh { 'settings.bufferSizeAuto' => '自动(推荐)', 'settings.bufferSizeWarning' => ({required Object heap, required Object size}) => '可用内存 ${heap}MB。${size}MB 缓冲可能影响播放。', 'settings.defaultQualityTitle' => '默认画质', - 'settings.musicQualityTitle' => '音乐质量', + 'settings.musicQualityTitle' => '音乐音质', 'settings.subtitleStyling' => '字幕样式', 'settings.subtitleStylingDescription' => '调整字幕外观', 'settings.smallSkipDuration' => '短跳过时长', @@ -2298,12 +2304,12 @@ extension on TranslationsZh { 'settings.secondsUnit' => ({required Object seconds}) => '${seconds} 秒', 'settings.defaultSleepTimer' => '默认睡眠定时器', 'settings.minutesUnit' => ({required Object minutes}) => '${minutes} 分钟', - 'settings.rememberTrackSelections' => '记住每个剧集/电影的音轨选择', - 'settings.rememberTrackSelectionsDescription' => '记住每个标题的音频和字幕选择', + 'settings.rememberTrackSelections' => '记住每部剧集或电影的音轨选择', + 'settings.rememberTrackSelectionsDescription' => '分别记住每部内容的音频和字幕选择', 'settings.showChapterMarkersOnTimeline' => '在进度条上显示章节标记', 'settings.showChapterMarkersOnTimelineDescription' => '按章节边界分段显示进度条', 'settings.clickVideoTogglesPlayback' => '点击视频可切换播放/暂停', - 'settings.clickVideoTogglesPlaybackDescription' => '点击视频进行播放/暂停,而不是显示控制项。', + 'settings.clickVideoTogglesPlaybackDescription' => '点击视频即可播放或暂停,而不是显示控制项。', 'settings.videoPlayerControls' => '视频播放器控制', 'settings.keyboardShortcuts' => '键盘快捷键', 'settings.keyboardShortcutsDescription' => '自定义键盘快捷键', @@ -2312,25 +2318,25 @@ extension on TranslationsZh { 'settings.watchTogetherRelay' => '一起看中继服务器', 'settings.watchTogetherRelayDescription' => '设置自定义中继。所有人必须使用同一服务器。', 'settings.watchTogetherRelayHint' => 'https://my-relay.example.com', - 'settings.watchTogetherRelayInvalid' => 'Enter a valid HTTP or HTTPS relay base URL.', + 'settings.watchTogetherRelayInvalid' => '请输入有效的 HTTP 或 HTTPS 中继服务器基础 URL。', 'settings.crashReporting' => '崩溃报告', 'settings.crashReportingDescription' => '发送崩溃报告以帮助改进应用', 'settings.debugLogging' => '调试日志', 'settings.debugLoggingDescription' => '启用详细日志记录以便故障排除', 'settings.viewLogs' => '查看日志', - 'settings.viewLogsDescription' => '查看应用程序日志', + 'settings.viewLogsDescription' => '查看应用日志', 'settings.clearCache' => '清除缓存', 'settings.clearCacheDescription' => '清除缓存的图片和数据。内容加载可能变慢。', - 'settings.clearCacheSuccess' => '缓存清除成功', + 'settings.clearCacheSuccess' => '缓存已清除', 'settings.resetSettings' => '重置设置', 'settings.resetSettingsDescription' => '恢复默认设置。此操作无法撤销。', 'settings.resetSettingsSuccess' => '设置重置成功', 'settings.backup' => '备份', 'settings.exportSettings' => '导出设置', - 'settings.exportSettingsDescription' => '将您的偏好保存到文件', + 'settings.exportSettingsDescription' => '将偏好设置保存到文件', 'settings.exportSettingsSuccess' => '设置已导出', 'settings.importSettings' => '导入设置', - 'settings.importSettingsDescription' => '从文件恢复偏好', + 'settings.importSettingsDescription' => '从文件恢复偏好设置', 'settings.importSettingsConfirm' => '这将替换您当前的设置。继续吗?', 'settings.importSettingsSuccess' => '设置已导入', 'settings.importSettingsInvalidFile' => '此文件不是有效的 Plezy 设置导出', @@ -2343,11 +2349,11 @@ extension on TranslationsZh { 'settings.checkForUpdates' => '检查更新', 'settings.autoCheckUpdatesOnStartup' => '启动时自动检查更新', 'settings.autoCheckUpdatesOnStartupDescription' => '启动时有可用更新则通知', - 'settings.validationErrorEnterNumber' => '请输入一个有效的数字', + 'settings.validationErrorEnterNumber' => '请输入有效数字', 'settings.validationErrorDuration' => ({required Object min, required Object max, required Object unit}) => '时长必须介于 ${min} 和 ${max} ${unit} 之间', 'settings.shortcutAlreadyAssigned' => ({required Object action}) => '快捷键已被分配给 ${action}', 'settings.shortcutUpdated' => ({required Object action}) => '快捷键已为 ${action} 更新', - 'settings.saveFailed' => 'Could not save changes. Try again.', + 'settings.saveFailed' => '无法保存更改。请重试。', 'settings.autoSkip' => '自动跳过', 'settings.autoSkipIntro' => '自动跳过片头', 'settings.autoSkipIntroDescription' => '几秒钟后自动跳过片头标记', @@ -2369,37 +2375,37 @@ extension on TranslationsZh { 'settings.downloadLocationCustom' => '自定义位置', 'settings.selectFolder' => '选择文件夹', 'settings.resetToDefault' => '重置为默认', - 'settings.currentPath' => ({required Object path}) => '当前: ${path}', + 'settings.currentPath' => ({required Object path}) => '当前路径:${path}', 'settings.downloadLocationChanged' => '下载位置已更改', 'settings.downloadLocationReset' => '下载位置已重置为默认', 'settings.downloadLocationInvalid' => '所选文件夹不可写入', 'settings.downloadLocationPickerUnavailable' => '此设备不支持选择文件夹', - 'settings.downloadOnWifiOnly' => '仅在 WiFi 时下载', - 'settings.downloadOnWifiOnlyDescription' => '使用蜂窝数据时禁止下载', + 'settings.downloadOnWifiOnly' => '仅通过 Wi-Fi 下载', + 'settings.downloadOnWifiOnlyDescription' => '使用移动数据时不允许下载', 'settings.autoRemoveWatchedDownloads' => '自动移除已观看的下载', 'settings.autoRemoveWatchedDownloadsDescription' => '自动删除已观看的下载', - 'settings.cellularDownloadBlocked' => '蜂窝网络下已阻止下载。请使用 WiFi 或更改设置。', + 'settings.cellularDownloadBlocked' => '已阻止通过移动网络下载。请连接 Wi-Fi 或更改设置。', 'settings.maxVolume' => '最大音量', - 'settings.maxVolumeDescription' => '允许音量超过 100% 以适应安静的媒体', + 'settings.maxVolumeDescription' => '允许音量超过 100%,以便播放音量较低的内容', 'settings.maxVolumePercent' => ({required Object percent}) => '${percent}%', 'settings.discordRichPresence' => 'Discord 动态状态', 'settings.discordRichPresenceDescription' => '在 Discord 上显示您正在观看的内容', 'settings.services' => '服务', 'settings.servicesDescription' => '连接 Trakt、MyAnimeList、Seerr 等', 'settings.manageLibrariesDescription' => '重新排序和隐藏媒体库', - 'settings.companionRemoteServer' => '配套遥控服务器', - 'settings.companionRemoteServerDescription' => '允许网络上的移动设备控制此应用', + 'settings.companionRemoteServer' => '远程控制服务器', + 'settings.companionRemoteServerDescription' => '允许同一网络中的移动设备控制此应用', 'settings.autoPip' => '自动画中画', - 'settings.autoPipDescription' => '播放时离开会进入画中画', + 'settings.autoPipDescription' => '播放期间离开应用时自动进入画中画模式', 'settings.matchContentFrameRate' => '匹配内容帧率', - 'settings.matchContentFrameRateDescription' => '将显示刷新率匹配到视频内容', + 'settings.matchContentFrameRateDescription' => '使显示器刷新率与视频帧率匹配', 'settings.matchRefreshRate' => '匹配刷新率', 'settings.matchRefreshRateDescription' => '全屏时匹配显示刷新率', 'settings.matchDynamicRange' => '匹配动态范围', 'settings.matchDynamicRangeDescription' => 'HDR 内容切换到 HDR,随后切回 SDR', 'settings.displaySwitchDelay' => '显示切换延迟', - 'settings.tunneledPlayback' => '通道化播放', - 'settings.tunneledPlaybackDescription' => '使用视频隧道。若 HDR 播放出现黑屏,请禁用。', + 'settings.tunneledPlayback' => '隧道播放', + 'settings.tunneledPlaybackDescription' => '使用视频隧道模式。若播放 HDR 内容时出现黑屏,请将其关闭。', 'settings.audioPassthrough' => '音频直通', 'settings.audioPassthroughDescription' => '将 Dolby/DTS 音频不经重新编码直接发送到功放或电视,保留环绕声。如果没有声音,请关闭。', 'settings.audioPassthroughDescriptionAppleTv' => '将 Dolby Digital Plus(含 Atmos)以比特流方式交给系统输出。DTS 和 TrueHD 仍以多声道 PCM 播放。快进快退时可能出现短暂声音中断。', @@ -2407,7 +2413,7 @@ extension on TranslationsZh { 'settings.audioDownmixDescription' => '将环绕声混合为双声道,适用于立体声音箱或耳机', 'settings.downmixCenterBoost' => '中置声道增强', 'settings.downmixCenterBoostValue' => ({required Object db}) => '${db} dB', - 'settings.downmixCenterBoostLabel' => '增强 (dB)', + 'settings.downmixCenterBoostLabel' => '增强(dB)', 'settings.downmixCenterBoostShort' => 'dB', 'settings.audioDownmixNormalize' => '下混时音量标准化', 'settings.audioDownmixNormalizeDescription' => '降低混音电平以防止削波。关闭可保持原始音量(大音量场景可能失真)。', @@ -2418,7 +2424,7 @@ extension on TranslationsZh { 'settings.atmosTestHlsControl' => 'Apple 环绕声流', 'settings.atmosTestHlsControlDescription' => '不含 Atmos 的对照流。功放应显示不带 Atmos 的环绕声。', 'settings.atmosTestRawStream' => '原始 EAC3 流', - 'settings.atmosTestRawStreamDescription' => '以与播放器内 Atmos 播放完全相同的方式串流测试文件。需要测试文件 URL。', + 'settings.atmosTestRawStreamDescription' => '以与播放器内 Atmos 播放完全相同的方式流式传输测试文件。需要测试文件 URL。', 'settings.atmosTestRawFile' => '原始 EAC3 文件', 'settings.atmosTestRawFileDescription' => '以已知长度播放测试文件。需要测试文件 URL。', 'settings.atmosTestStop' => '停止测试', @@ -2432,12 +2438,12 @@ extension on TranslationsZh { 'settings.dvConversionNative' => '原生 / 禁用', 'settings.dvConversionDv81' => 'P7 → P8.1', 'settings.dvConversionHevcStrip' => 'P7 → HEVC', - 'settings.dvConversionAutoDescription' => '使用设备能力检测和正常回退行为', - 'settings.dvConversionNativeDescription' => '强制原生 DV7 并抑制 DV 转换重试', + 'settings.dvConversionAutoDescription' => '使用设备能力检测和常规回退机制', + 'settings.dvConversionNativeDescription' => '强制原生 DV7 并禁止重试 DV 转换', 'settings.dvConversionDv81Description' => '强制内联 RPU 转换为 Dolby Vision Profile 8.1', 'settings.dvConversionHevcStripDescription' => '移除 Dolby Vision RPU/EL 层并呈现普通 HEVC', - 'settings.requireProfileSelectionOnOpen' => '打开应用时询问配置文件', - 'settings.requireProfileSelectionOnOpenDescription' => '每次打开应用时显示配置文件选择', + 'settings.requireProfileSelectionOnOpen' => '打开应用时选择用户资料', + 'settings.requireProfileSelectionOnOpenDescription' => '每次打开应用时都显示用户资料选择界面', 'settings.forceTvMode' => '强制 TV 模式', 'settings.forceTvModeDescription' => '强制 TV 布局。适用于无法自动检测的设备。需要重启。', 'settings.startInFullscreen' => '以全屏模式启动', @@ -2460,16 +2466,16 @@ extension on TranslationsZh { 'settings.subtitlesAndConfig' => '字幕与配置', 'settings.seekAndTiming' => '跳转与计时', 'settings.behavior' => '行为', - 'search.hint' => '搜索电影、系列、音乐...', + 'search.hint' => '搜索电影、剧集、音乐…', 'search.tryDifferentTerm' => '尝试不同的搜索词', 'search.searchYourMedia' => '搜索媒体', 'search.enterTitleActorOrKeyword' => '输入标题、演员或关键词', 'hotkeys.setShortcutFor' => ({required Object actionName}) => '为 ${actionName} 设置快捷键', 'hotkeys.clearShortcut' => '清除快捷键', 'hotkeys.noShortcutSet' => '未设置快捷键', - 'hotkeys.currentShortcut' => '当前快捷键:', - 'hotkeys.pressToRecord' => '选择以录制快捷键', - 'hotkeys.recordingShortcut' => '现在请按下快捷键', + 'hotkeys.currentShortcut' => '当前快捷键:', + 'hotkeys.pressToRecord' => '点击后录入快捷键', + 'hotkeys.recordingShortcut' => '请按下快捷键', 'hotkeys.actions.playPause' => '播放/暂停', 'hotkeys.actions.volumeUp' => '增大音量', 'hotkeys.actions.volumeDown' => '减小音量', @@ -2490,8 +2496,8 @@ extension on TranslationsZh { 'hotkeys.actions.zoomIn' => '放大', 'hotkeys.actions.zoomOut' => '缩小', 'hotkeys.actions.zoomReset' => '重置缩放', - 'hotkeys.actions.subSeekNext' => '跳转到下一字幕', - 'hotkeys.actions.subSeekPrev' => '跳转到上一字幕', + 'hotkeys.actions.subSeekNext' => '跳转到下一条字幕', + 'hotkeys.actions.subSeekPrev' => '跳转到上一条字幕', 'hotkeys.actions.shaderToggle' => '切换着色器', 'hotkeys.actions.skipMarker' => '跳过片头/片尾', 'hotkeys.actions.screenshot' => '截图', @@ -2505,11 +2511,11 @@ extension on TranslationsZh { 'fileInfo.bitrate' => '比特率', 'fileInfo.frameRate' => '帧率', 'fileInfo.aspectRatio' => '宽高比', - 'fileInfo.profile' => '配置文件', + 'fileInfo.profile' => '编码配置', 'fileInfo.bitDepth' => '位深度', 'fileInfo.colorSpace' => '色彩空间', 'fileInfo.colorRange' => '色彩范围', - 'fileInfo.colorPrimaries' => '颜色原色', + 'fileInfo.colorPrimaries' => '色彩基色', 'fileInfo.chromaSubsampling' => '色度子采样', 'fileInfo.channels' => '声道', 'fileInfo.subtitles' => '字幕', @@ -2518,13 +2524,13 @@ extension on TranslationsZh { 'fileInfo.size' => '大小', 'fileInfo.container' => '容器', 'fileInfo.duration' => '时长', - 'fileInfo.optimizedForStreaming' => '已优化用于流媒体', - 'fileInfo.has64bitOffsets' => '64位偏移量', + 'fileInfo.optimizedForStreaming' => '已针对流式传输优化', + 'fileInfo.has64bitOffsets' => '64 位偏移量', 'mediaMenu.markAsWatched' => '标记为已观看', 'mediaMenu.markAsUnwatched' => '标记为未观看', 'mediaMenu.removeFromContinueWatching' => '从继续观看中移除', 'mediaMenu.viewDetails' => '查看详情', - 'mediaMenu.goToSeries' => '转到系列', + 'mediaMenu.goToSeries' => '前往剧集', 'mediaMenu.shufflePlay' => '随机播放', 'mediaMenu.shuffleNotAvailableOffline' => '离线时无法随机播放', 'mediaMenu.fileInfo' => '文件信息', @@ -2535,7 +2541,7 @@ extension on TranslationsZh { 'mediaMenu.mediaFailedToDelete' => '删除媒体项失败', 'mediaMenu.rate' => '评分', 'mediaMenu.playFromBeginning' => '从头播放', - 'mediaMenu.playVersion' => '播放版本...', + 'mediaMenu.playVersion' => '播放版本…', 'rateSheet.title' => '评分', 'rateSheet.server' => '服务器', 'rateSheet.favorite' => '收藏', @@ -2548,7 +2554,7 @@ extension on TranslationsZh { 'accessibility.mediaCardEpisode' => ({required Object title, required Object episodeInfo}) => '${title}, ${episodeInfo}', 'accessibility.mediaCardSeason' => ({required Object title, required Object seasonInfo}) => '${title}, ${seasonInfo}', 'accessibility.mediaCardWatched' => '已观看', - 'accessibility.mediaCardPartiallyWatched' => ({required Object percent}) => '已观看 ${percent} 百分比', + 'accessibility.mediaCardPartiallyWatched' => ({required Object percent}) => '已观看 ${percent}%', 'accessibility.mediaCardUnwatched' => '未观看', 'accessibility.tapToPlay' => '点击播放', 'accessibility.decrease' => '减小', @@ -2575,10 +2581,10 @@ extension on TranslationsZh { 'videoControls.resetToZero' => '重置为 0ms', 'videoControls.addTime' => ({required Object amount, required Object unit}) => '+${amount}${unit}', 'videoControls.minusTime' => ({required Object amount, required Object unit}) => '-${amount}${unit}', - 'videoControls.playsLater' => ({required Object label}) => '${label} 播放较晚', - 'videoControls.playsEarlier' => ({required Object label}) => '${label} 播放较早', + 'videoControls.playsLater' => ({required Object label}) => '${label}延后播放', + 'videoControls.playsEarlier' => ({required Object label}) => '${label}提前播放', 'videoControls.noOffset' => '无偏移', - 'videoControls.letterbox' => '信箱模式(Letterbox)', + 'videoControls.letterbox' => '黑边模式', 'videoControls.fillScreen' => '填充屏幕', 'videoControls.stretch' => '拉伸', 'videoControls.lockRotation' => '锁定旋转', @@ -2590,14 +2596,16 @@ extension on TranslationsZh { 'videoControls.sleepTimerDurationHeader' => '定时器', 'videoControls.playbackWillPauseAtEnd' => '播放将在此视频结束时暂停', 'videoControls.stillWatching' => '还在看吗?', - 'videoControls.pausingIn' => ({required Object seconds}) => '${seconds}秒后暂停', + 'videoControls.pausingIn' => ({required Object seconds}) => '${seconds} 秒后暂停', 'videoControls.continueWatching' => '继续', 'videoControls.autoPlayNext' => '自动播放下一集', 'videoControls.playNext' => '播放下一集', 'videoControls.playButton' => '播放', 'videoControls.pauseButton' => '暂停', - 'videoControls.seekBackwardButton' => ({required Object seconds}) => '后退 ${seconds} 秒', - 'videoControls.seekForwardButton' => ({required Object seconds}) => '前进 ${seconds} 秒', + 'videoControls.showPlaybackControls' => '显示播放控制项', + 'videoControls.hidePlaybackControls' => '隐藏播放控制项', + 'videoControls.seekBackwardButton' => ({required Object seconds}) => '快退 ${seconds} 秒', + 'videoControls.seekForwardButton' => ({required Object seconds}) => '快进 ${seconds} 秒', 'videoControls.previousButton' => '上一集', 'videoControls.nextButton' => '下一集', 'videoControls.previousChapterButton' => '上一章节', @@ -2614,20 +2622,20 @@ extension on TranslationsZh { 'videoControls.qualityPresetLabel' => ({required Object resolution, required Object bitrate}) => '${resolution}p ${bitrate} Mbps', 'videoControls.transcodeUnavailableFallback' => '转码不可用 — 以原始画质播放', 'videoControls.subtitleUnavailableFallback' => '无法加载所选字幕 — 将继续无字幕播放', - 'videoControls.pipButton' => '画中画模式', + 'videoControls.pipButton' => '画中画', 'videoControls.aspectRatioButton' => '宽高比', 'videoControls.ambientLighting' => '氛围灯光', 'videoControls.fullscreenButton' => '进入全屏', 'videoControls.exitFullscreenButton' => '退出全屏', - 'videoControls.alwaysOnTopButton' => '置顶窗口', + 'videoControls.alwaysOnTopButton' => '窗口置顶', 'videoControls.rotationLockButton' => '旋转锁定', 'videoControls.lockScreen' => '锁定屏幕', 'videoControls.screenLockButton' => '屏幕锁定', 'videoControls.longPressToUnlock' => '长按解锁', 'videoControls.timelineSlider' => '视频时间轴', - 'videoControls.volumeSlider' => '音量调节', - 'videoControls.endsAt' => ({required Object time}) => '${time} 结束', - 'videoControls.pipActive' => '正在画中画模式中播放', + 'videoControls.volumeSlider' => '音量滑块', + 'videoControls.endsAt' => ({required Object time}) => '结束时间:${time}', + 'videoControls.pipActive' => '正在以画中画模式播放', 'videoControls.pipFailed' => '画中画启动失败', 'videoControls.screenshotSaved' => '截图已保存', 'videoControls.zoomPercent' => ({required Object percent}) => '缩放 ${percent}%', @@ -2647,46 +2655,46 @@ extension on TranslationsZh { 'videoControls.noSubtitlesFound' => '未找到字幕', 'videoControls.noSubtitlesAvailable' => '没有可用字幕', 'videoControls.noAudioTracksAvailable' => '没有可用音轨', - 'videoControls.noTracksAvailable' => '没有可用轨道', + 'videoControls.noTracksAvailable' => '没有可用音轨', 'videoControls.subtitleDownloaded' => '字幕已下载', 'videoControls.subtitleDownloadedNotApplied' => '字幕已下载,但无法选择', 'videoControls.subtitleDownloadFailed' => '字幕下载失败', - 'videoControls.searchLanguages' => '搜索语言...', - 'messages.markedAsWatched' => '已标记为已观看', - 'messages.markedAsUnwatched' => '已标记为未观看', - 'messages.markedAsWatchedOffline' => '已标记为已观看 (将在联网时同步)', - 'messages.markedAsUnwatchedOffline' => '已标记为未观看 (将在联网时同步)', + 'videoControls.searchLanguages' => '搜索语言…', _ => null, } ?? switch (path) { - 'messages.autoRemovedWatchedDownload' => ({required Object title}) => '已自动移除: ${title}', + 'messages.markedAsWatched' => '已标记为已观看', + 'messages.markedAsUnwatched' => '已标记为未观看', + 'messages.markedAsWatchedOffline' => '已标记为已观看(将在联网时同步)', + 'messages.markedAsUnwatchedOffline' => '已标记为未观看(将在联网时同步)', + 'messages.autoRemovedWatchedDownload' => ({required Object title}) => '已自动移除:${title}', 'messages.autoRemovedWatchedDownloads' => ({required num n}) => (_root.$meta.cardinalResolver ?? PluralResolvers.cardinal('zh'))(n, other: '已自动移除 ${n} 个看过的下载', ), 'messages.removedFromContinueWatching' => '已从继续观看中移除', - 'messages.errorLoading' => ({required Object error}) => '错误: ${error}', + 'messages.errorLoading' => ({required Object error}) => '出错:${error}', 'messages.streamInterrupted' => '视频流已中断。按播放键或拖动进度条重试。', 'messages.liveStreamInterrupted' => '直播流已中断。按播放键重试。', 'messages.fileInfoNotAvailable' => '文件信息不可用', - 'messages.playbackAuthenticationRequired' => 'Sign in to the media server again to play this item.', - 'messages.playbackServerUnavailable' => 'The media server is unavailable. Try again later.', - 'messages.playbackDataInvalid' => 'The server returned invalid playback information.', - 'messages.playbackCancelled' => 'Playback was cancelled.', - 'messages.playbackFailed' => 'Playback could not be started.', - 'messages.errorLoadingFileInfo' => ({required Object error}) => '加载文件信息时出错: ${error}', - 'messages.errorLoadingSeries' => '加载系列时出错', + 'messages.playbackAuthenticationRequired' => '请重新登录媒体服务器以播放此项目。', + 'messages.playbackServerUnavailable' => '媒体服务器不可用。请稍后重试。', + 'messages.playbackDataInvalid' => '服务器返回了无效的播放信息。', + 'messages.playbackCancelled' => '播放已取消。', + 'messages.playbackFailed' => '无法开始播放。', + 'messages.errorLoadingFileInfo' => ({required Object error}) => '加载文件信息时出错:${error}', + 'messages.errorLoadingSeries' => '加载剧集时出错', 'messages.musicNotSupported' => '尚不支持播放音乐', 'messages.noDescriptionAvailable' => '暂无描述', - 'messages.noProfilesAvailable' => '没有可用的用户', - 'messages.contactAdminForProfiles' => '请联系服务器管理员添加用户配置', - 'messages.unableToDetermineLibrarySection' => '无法确定此项目的库分区', + 'messages.noProfilesAvailable' => '没有可用的用户资料', + 'messages.contactAdminForProfiles' => '请联系服务器管理员添加用户资料', + 'messages.unableToDetermineLibrarySection' => '无法确定此项目所属的媒体库', 'messages.logsCleared' => '日志已清除', 'messages.logsCopied' => '日志已复制到剪贴板', 'messages.noLogsAvailable' => '没有可用日志', - 'messages.libraryScanning' => ({required Object title}) => '正在扫描 “${title}”...', - 'messages.libraryScanStarted' => ({required Object title}) => '已开始扫描 “${title}” 媒体库', - 'messages.libraryScanFailed' => ({required Object error}) => '无法扫描媒体库: ${error}', - 'messages.metadataRefreshing' => ({required Object title}) => '正在刷新 “${title}” 的元数据...', - 'messages.metadataRefreshStarted' => ({required Object title}) => '已开始刷新 “${title}” 的元数据', - 'messages.metadataRefreshFailed' => ({required Object error}) => '无法刷新元数据: ${error}', - 'messages.logoutConfirm' => '你确定要登出吗?', + 'messages.libraryScanning' => ({required Object title}) => '正在扫描“${title}”…', + 'messages.libraryScanStarted' => ({required Object title}) => '已开始扫描“${title}”媒体库', + 'messages.libraryScanFailed' => ({required Object error}) => '无法扫描媒体库:${error}', + 'messages.metadataRefreshing' => ({required Object title}) => '正在刷新“${title}”的元数据…', + 'messages.metadataRefreshStarted' => ({required Object title}) => '已开始刷新“${title}”的元数据', + 'messages.metadataRefreshFailed' => ({required Object error}) => '无法刷新元数据:${error}', + 'messages.logoutConfirm' => '确定要退出登录吗?', 'messages.noSeasonsFound' => '未找到季', 'messages.seasonsLoadFailed' => '无法加载季', 'messages.noEpisodesFound' => '在第一季中未找到剧集', @@ -2695,11 +2703,11 @@ extension on TranslationsZh { 'messages.noResultsFound' => '未找到结果', 'messages.sleepTimerSet' => ({required Object label}) => '睡眠定时器已设置为 ${label}', 'messages.noItemsAvailable' => '没有可用的项目', - 'messages.failedToCreatePlayQueueNoItems' => '创建播放队列失败 - 没有项目', - 'messages.failedPlayback' => ({required Object action, required Object error}) => '无法${action}: ${error}', - 'messages.switchingToCompatiblePlayer' => '正在切换到兼容的播放器...', + 'messages.failedToCreatePlayQueueNoItems' => '创建播放队列失败:没有可用项目', + 'messages.failedPlayback' => ({required Object action, required Object error}) => '无法执行“${action}”:${error}', + 'messages.switchingToCompatiblePlayer' => '正在切换到兼容的播放器…', 'messages.serverLimitTitle' => '播放失败', - 'messages.serverLimitBody' => '服务器错误 (HTTP 500)。带宽/转码限制可能拒绝了此会话。请让所有者调整。', + 'messages.serverLimitBody' => '服务器错误(HTTP 500)。此次会话可能因带宽或转码限制而被拒绝。请联系服务器所有者调整限制。', 'messages.logsUploaded' => '日志已上传', 'messages.logsUploadFailed' => '上传日志失败', 'messages.logId' => '日志 ID', @@ -2728,7 +2736,7 @@ extension on TranslationsZh { 'mpvConfig.description' => '高级视频播放器设置', 'mpvConfig.presets' => '预设', 'mpvConfig.noPresets' => '没有保存的预设', - 'mpvConfig.saveAsPreset' => '保存为预设...', + 'mpvConfig.saveAsPreset' => '保存为预设…', 'mpvConfig.presetName' => '预设名称', 'mpvConfig.presetNameHint' => '输入此预设的名称', 'mpvConfig.loadPreset' => '加载', @@ -2739,11 +2747,11 @@ extension on TranslationsZh { 'mpvConfig.confirmDeletePreset' => '确定要删除此预设吗?', 'mpvConfig.configPlaceholder' => 'gpu-api=vulkan\nhwdec=auto\n# comment', 'dialog.confirmAction' => '确认操作', - 'profiles.addPlezyProfile' => '添加 Plezy 配置文件', - 'profiles.switchingProfile' => '切换配置文件中…', - 'profiles.deleteThisProfileTitle' => '删除此配置文件?', + 'profiles.addPlezyProfile' => '添加 Plezy 用户资料', + 'profiles.switchingProfile' => '正在切换用户资料…', + 'profiles.deleteThisProfileTitle' => '删除此用户资料?', 'profiles.deleteThisProfileMessage' => ({required Object displayName}) => '移除 ${displayName}。连接不会受影响。', - 'profiles.active' => '活跃', + 'profiles.active' => '当前使用', 'profiles.manage' => '管理', 'profiles.delete' => '删除', 'profiles.signOut' => '退出登录', @@ -2751,18 +2759,18 @@ extension on TranslationsZh { 'profiles.signOutPlexMessage' => ({required Object displayName}) => '要移除 ${displayName} 和所有 Plex Home 用户吗?可随时重新登录。', 'profiles.signedOutPlex' => '已退出 Plex 登录。', 'profiles.signOutFailed' => '退出登录失败。', - 'profiles.sectionTitle' => '配置文件', - 'profiles.summarySingle' => '添加配置文件以混合托管用户和本地身份', - 'profiles.summaryMultipleWithActive' => ({required Object count, required Object activeName}) => '${count} 个配置文件 · 活跃:${activeName}', - 'profiles.summaryMultiple' => ({required Object count}) => '${count} 个配置文件', + 'profiles.sectionTitle' => '用户资料', + 'profiles.summarySingle' => '添加用户资料,以便同时使用受管理用户和本地用户身份', + 'profiles.summaryMultipleWithActive' => ({required Object count, required Object activeName}) => '${count} 个用户资料 · 当前:${activeName}', + 'profiles.summaryMultiple' => ({required Object count}) => '${count} 个用户资料', 'profiles.removeConnectionTitle' => '移除连接?', - 'profiles.removeConnectionMessage' => ({required Object displayName, required Object connectionLabel}) => '移除 ${displayName} 对 ${connectionLabel} 的访问。其他个人资料仍保留。', - 'profiles.deleteProfileTitle' => '删除配置文件?', - 'profiles.deleteProfileMessage' => ({required Object displayName}) => '移除 ${displayName} 及其连接。服务器仍可用。', - 'profiles.profileNameLabel' => '配置文件名称', + 'profiles.removeConnectionMessage' => ({required Object displayName, required Object connectionLabel}) => '移除 ${displayName} 对 ${connectionLabel} 的访问权限。其他用户资料仍可使用此连接。', + 'profiles.deleteProfileTitle' => '删除用户资料?', + 'profiles.deleteProfileMessage' => ({required Object displayName}) => '移除 ${displayName} 及其连接。服务器仍可供其他用户资料使用。', + 'profiles.profileNameLabel' => '用户资料名称', 'profiles.pinProtectionLabel' => 'PIN 保护', 'profiles.pinManagedByPlex' => 'PIN 由 Plex 管理。在 plex.tv 上编辑。', - 'profiles.noPinSetEditOnPlex' => '未设置 PIN。如需要求 PIN,请在 plex.tv 上编辑 Home 用户。', + 'profiles.noPinSetEditOnPlex' => '未设置 PIN。如需设置,请在 plex.tv 上编辑 Plex Home 用户。', 'profiles.setPin' => '设置 PIN', 'profiles.setPinTitle' => '设置 PIN', 'profiles.confirmPinTitle' => '确认 PIN', @@ -2771,43 +2779,43 @@ extension on TranslationsZh { 'profiles.removePin' => '移除', 'profiles.connectionsLabel' => '连接', 'profiles.add' => '添加', - 'profiles.deleteProfileButton' => '删除配置文件', - 'profiles.noConnectionsHint' => '没有连接 — 添加一个以使用此配置文件。', + 'profiles.deleteProfileButton' => '删除用户资料', + 'profiles.noConnectionsHint' => '没有连接 — 请添加连接以使用此用户资料。', 'profiles.noConnections' => '没有连接', 'profiles.plexHomeAccount' => 'Plex Home 账户', 'profiles.connectionDefault' => '默认', 'profiles.connectionAs' => ({required Object displayName}) => '以 ${displayName} 身份', 'profiles.makeDefault' => '设为默认', 'profiles.removeConnection' => '移除', - 'profiles.profileRenamed' => '个人资料已重命名。', + 'profiles.profileRenamed' => '用户资料已重命名。', 'profiles.borrowAddTo' => ({required Object displayName}) => '添加到 ${displayName}', - 'profiles.borrowExplain' => '借用另一个个人资料的连接。受 PIN 保护的个人资料需要 PIN。', - 'profiles.borrowEmpty' => '暂无可借用的内容。', - 'profiles.borrowEmptySubtitle' => '请先将 Plex 或 Jellyfin 连接到另一个个人资料。', - 'profiles.borrowLoadFailed' => 'Available connections could not be loaded. Try again.', + 'profiles.borrowExplain' => '使用另一个用户资料的连接。受 PIN 保护的用户资料需要输入 PIN。', + 'profiles.borrowEmpty' => '暂无可用连接。', + 'profiles.borrowEmptySubtitle' => '请先将 Plex 或 Jellyfin 连接到另一个用户资料。', + 'profiles.borrowLoadFailed' => '无法加载可用连接。请重试。', 'profiles.borrowFromProfile' => ({required Object displayName}) => '来自 ${displayName}', - 'profiles.borrowConnectionBorrowed' => '已借用连接。', - 'profiles.borrowFailed' => '无法借用连接。', + 'profiles.borrowConnectionBorrowed' => '连接已添加。', + 'profiles.borrowFailed' => '无法添加连接。', 'profiles.incorrectPin' => 'PIN 不正确。', 'profiles.incorrectPinTryAgain' => 'PIN 不正确。请重试。', - 'profiles.sourceProfileMissingParentAccount' => '源个人资料缺少其父账号。', + 'profiles.sourceProfileMissingParentAccount' => '源用户资料缺少关联的主账户。', 'profiles.failedToLoadHomeUsers' => '无法加载您的 Plex Home 用户。请检查网络连接后重试。', 'profiles.failedToVerifyPin' => '无法验证 PIN。', - 'profiles.newProfile' => '新建配置文件', - 'profiles.profileNameHint' => '例如:访客、儿童、家庭房', + 'profiles.newProfile' => '新建用户资料', + 'profiles.profileNameHint' => '例如:访客、儿童、客厅', 'profiles.pinProtectionOptional' => 'PIN 保护(可选)', - 'profiles.pinExplain' => '切换个人资料需要 4 位 PIN。', + 'profiles.pinExplain' => '切换用户资料时需要输入 4 位 PIN。', 'profiles.continueButton' => '继续', 'profiles.pinsDontMatch' => 'PIN 不匹配', 'connections.sectionTitle' => '连接', 'connections.addConnection' => '添加连接', 'connections.addConnectionSubtitleNoProfile' => '使用 Plex 登录或连接 Jellyfin 服务器', - 'connections.addConnectionSubtitleScoped' => ({required Object displayName}) => '添加到 ${displayName}: Plex、Jellyfin 或其他个人资料连接', + 'connections.addConnectionSubtitleScoped' => ({required Object displayName}) => '添加到 ${displayName}:Plex、Jellyfin,或其他用户资料的连接', 'connections.sessionExpiredOne' => ({required Object name}) => '${name} 的会话已过期', 'connections.sessionExpiredMany' => ({required Object count}) => '${count} 个服务器的会话已过期', 'connections.signInAgain' => '重新登录', 'connections.editJellyfinTitle' => '编辑 Jellyfin 连接', - 'connections.editJellyfinIntro' => ({required Object serverName}) => '添加或移除 ${serverName} 的 URL。Plezy 会使用可访问且延迟最低的 URL。', + 'connections.editJellyfinIntro' => ({required Object serverName}) => '添加或移除 ${serverName} 的 URL。Plezy 会使用可访问且延迟最低的地址。', 'discover.title' => '发现', 'discover.noContentAvailable' => '没有可用内容', 'discover.addMediaToLibraries' => '请向你的媒体库添加一些媒体', @@ -2830,14 +2838,14 @@ extension on TranslationsZh { 'discover.tvShow' => '电视剧', 'discover.minutesLeft' => ({required Object minutes}) => '剩余 ${minutes} 分钟', 'discover.moreLikeThis' => '更多类似内容', - 'errors.searchFailed' => ({required Object error}) => '搜索失败: ${error}', + 'errors.searchFailed' => ({required Object error}) => '搜索失败:${error}', 'errors.connectionTimeout' => ({required Object context}) => '加载 ${context} 时连接超时', 'errors.connectionFailed' => '无法连接到媒体服务器', 'errors.unableToLoad' => ({required Object context}) => '无法加载${context}。请重试。', 'errors.noClientAvailable' => '没有可用客户端', 'errors.pleaseEnterToken' => '请输入一个令牌', 'errors.invalidToken' => '令牌无效', - 'errors.failedToVerifyToken' => ({required Object error}) => '无法验证令牌: ${error}', + 'errors.failedToVerifyToken' => ({required Object error}) => '无法验证令牌:${error}', 'errors.failedToSwitchProfile' => ({required Object displayName}) => '无法切换到 ${displayName}', 'errors.failedToDeleteProfile' => ({required Object displayName}) => '无法删除 ${displayName}', 'errors.failedToRate' => '无法更新评分', @@ -2849,12 +2857,12 @@ extension on TranslationsZh { 'libraries.analyzeLibrary' => '分析媒体库', 'libraries.refreshMetadata' => '刷新元数据', 'libraries.emptyTrash' => '清空回收站', - 'libraries.emptyingTrash' => ({required Object title}) => '正在清空 “${title}” 的回收站...', - 'libraries.trashEmptied' => ({required Object title}) => '已清空 “${title}” 的回收站', - 'libraries.failedToEmptyTrash' => ({required Object error}) => '无法清空回收站: ${error}', - 'libraries.analyzing' => ({required Object title}) => '正在分析 “${title}”...', - 'libraries.analysisStarted' => ({required Object title}) => '已开始分析 “${title}”', - 'libraries.failedToAnalyze' => ({required Object error}) => '无法分析媒体库: ${error}', + 'libraries.emptyingTrash' => ({required Object title}) => '正在清空“${title}”的回收站…', + 'libraries.trashEmptied' => ({required Object title}) => '已清空“${title}”的回收站', + 'libraries.failedToEmptyTrash' => ({required Object error}) => '无法清空回收站:${error}', + 'libraries.analyzing' => ({required Object title}) => '正在分析“${title}”…', + 'libraries.analysisStarted' => ({required Object title}) => '已开始分析“${title}”', + 'libraries.failedToAnalyze' => ({required Object error}) => '无法分析媒体库:${error}', 'libraries.noLibrariesFound' => '未找到媒体库', 'libraries.allLibrariesHidden' => '所有媒体库已隐藏', 'libraries.hiddenLibrariesCount' => ({required Object count}) => '已隐藏的媒体库 (${count})', @@ -2863,14 +2871,14 @@ extension on TranslationsZh { 'libraries.resetFilters' => '重置筛选条件', 'libraries.all' => '全部', 'libraries.clearAll' => '全部清除', - 'libraries.scanLibraryConfirm' => ({required Object title}) => '确定要扫描 “${title}” 吗?', - 'libraries.analyzeLibraryConfirm' => ({required Object title}) => '确定要分析 “${title}” 吗?', - 'libraries.refreshMetadataConfirm' => ({required Object title}) => '确定要刷新 “${title}” 的元数据吗?', - 'libraries.emptyTrashConfirm' => ({required Object title}) => '确定要清空 “${title}” 的回收站吗?', + 'libraries.scanLibraryConfirm' => ({required Object title}) => '确定要扫描“${title}”吗?', + 'libraries.analyzeLibraryConfirm' => ({required Object title}) => '确定要分析“${title}”吗?', + 'libraries.refreshMetadataConfirm' => ({required Object title}) => '确定要刷新“${title}”的元数据吗?', + 'libraries.emptyTrashConfirm' => ({required Object title}) => '确定要清空“${title}”的回收站吗?', 'libraries.manageLibraries' => '管理媒体库', 'libraries.sort' => '排序', 'libraries.sortBy' => '排序依据', - 'libraries.filters' => '筛选器', + 'libraries.filters' => '筛选', 'libraries.confirmActionMessage' => '确定要执行此操作吗?', 'libraries.showLibrary' => '显示媒体库', 'libraries.hideLibrary' => '隐藏媒体库', @@ -2918,7 +2926,7 @@ extension on TranslationsZh { 'libraries.sortLabels.premiereDate' => '首映日期', 'libraries.sortLabels.startDate' => '开始日期', 'libraries.sortLabels.airTime' => '播出时间', - 'libraries.sortLabels.studio' => '工作室', + 'libraries.sortLabels.studio' => '制片公司', 'libraries.sortLabels.random' => '随机', 'libraries.sortLabels.dateShared' => '共享日期', 'libraries.sortLabels.latestEpisodeAirDate' => '最新一集播出日期', @@ -2928,8 +2936,8 @@ extension on TranslationsZh { 'about.versionLabel' => ({required Object version}) => '版本 ${version}', 'about.appDescription' => '一款精美的 Flutter Plex 和 Jellyfin 客户端', 'about.viewLicensesDescription' => '查看第三方库的许可证', - 'serverSelection.noServersFoundForAccount' => ({required Object username, required Object email}) => '未找到 ${username} (${email}) 的服务器', - 'serverSelection.failedToLoadServers' => ({required Object error}) => '无法加载服务器: ${error}', + 'serverSelection.noServersFoundForAccount' => ({required Object username, required Object email}) => '未找到 ${username}(${email})的服务器', + 'serverSelection.failedToLoadServers' => ({required Object error}) => '无法加载服务器:${error}', 'hubDetail.title' => '标题', 'hubDetail.releaseYear' => '发行年份', 'hubDetail.dateAdded' => '添加日期', @@ -2944,22 +2952,22 @@ extension on TranslationsZh { 'licenses.licensesCount' => ({required Object count}) => '${count} 个许可证', 'navigation.libraries' => '媒体库', 'navigation.downloads' => '下载', - 'navigation.liveTv' => '电视直播', + 'navigation.liveTv' => '直播电视', 'navigation.explore' => '探索', 'explore.title' => '探索', 'explore.selectSource' => '选择来源', 'explore.rows.watchlist' => '想看列表', 'explore.rows.recommendedMovies' => '推荐电影', 'explore.rows.recommendedShows' => '推荐剧集', - 'explore.rows.trendingMovies' => '趋势电影', - 'explore.rows.trendingShows' => '趋势剧集', - 'explore.rows.popularMovies' => '热门电影', - 'explore.rows.popularShows' => '热门剧集', + 'explore.rows.trendingMovies' => '近期热门电影', + 'explore.rows.trendingShows' => '近期热门剧集', + 'explore.rows.popularMovies' => '人气电影', + 'explore.rows.popularShows' => '人气剧集', 'explore.rows.trendingAnime' => '热门动画', 'explore.rows.suggestedAnime' => '推荐动画', 'explore.rows.airingAnime' => '热门连载动画', 'explore.rows.popularAnime' => '最受欢迎动画', - 'explore.rows.trending' => '趋势', + 'explore.rows.trending' => '近期热门', 'explore.rows.upcomingMovies' => '即将上映的电影', 'explore.rows.upcomingShows' => '即将播出的剧集', 'explore.status.airing' => '连载中', @@ -2974,17 +2982,17 @@ extension on TranslationsZh { 'explore.watchlistUpdateFailed' => '无法更新想看列表', 'explore.notInLibrary' => '不在你的媒体库中', 'explore.inTheseLibraries' => '在这些媒体库中', - 'explore.checkingLibrary' => '正在检查你的媒体库...', + 'explore.checkingLibrary' => '正在检查你的媒体库…', 'explore.emptyTitle' => '这里还什么都没有', 'explore.emptyMessage' => ({required Object source}) => '当 ${source} 有内容时,相关内容将显示在这里。', 'explore.searchHint' => ({required Object source}) => '搜索 ${source}', 'explore.searchEmpty' => ({required Object query}) => '没有“${query}”的结果', 'explore.searchPrompt' => ({required Object source}) => '在 ${source} 上搜索电影和剧集。', 'explore.searchFailed' => '搜索失败。请检查网络连接后重试。', - 'liveTv.title' => '电视直播', + 'liveTv.title' => '直播电视', 'liveTv.guide' => '节目指南', 'liveTv.noChannels' => '没有可用的频道', - 'liveTv.noDvr' => '没有服务器配置了DVR', + 'liveTv.noDvr' => '没有服务器配置 DVR', 'liveTv.serverUnavailable' => '直播电视服务器不可用。', 'liveTv.serverNotConnected' => '直播电视服务器未连接。', 'liveTv.noPrograms' => '没有可用的节目数据', @@ -3010,18 +3018,18 @@ extension on TranslationsZh { 'liveTv.favorites' => '收藏', 'liveTv.reorderFavorites' => '重新排序收藏', 'liveTv.favoritesLoadFailed' => '无法加载收藏。请检查网络连接后重试。', - 'liveTv.favoritesUpdateFailed' => 'Could not update favorites. Check your connection and try again.', + 'liveTv.favoritesUpdateFailed' => '无法更新收藏。请检查网络连接后重试。', 'liveTv.joinSession' => '加入正在进行的会话', 'liveTv.watchFromStart' => ({required Object minutes}) => '从头观看(${minutes}分钟前开始)', 'liveTv.watchLive' => '观看直播', 'liveTv.goToLive' => '跳至直播', 'liveTv.record' => '录制', 'liveTv.recordEpisode' => '录制单集', - 'liveTv.recordSeries' => '录制整部剧集', + 'liveTv.recordSeries' => '录制系列节目', 'liveTv.recordOptions' => '录制选项', 'liveTv.saveTo' => '保存到', 'liveTv.recordings' => '录制内容', - 'liveTv.scheduledRecordings' => '已安排', + 'liveTv.scheduledRecordings' => '计划录制', 'liveTv.recordingRules' => '录制规则', 'liveTv.noScheduledRecordings' => '没有安排的录制', 'liveTv.manageRecording' => '管理录制', @@ -3030,7 +3038,7 @@ extension on TranslationsZh { 'liveTv.cancelRecordingMessage' => ({required Object title}) => '将不再录制 ${title}。', 'liveTv.deleteRule' => '删除规则', 'liveTv.deleteRuleTitle' => '删除录制规则?', - 'liveTv.deleteRuleMessage' => ({required Object title}) => '未来的 ${title} 剧集将不会被录制。', + 'liveTv.deleteRuleMessage' => ({required Object title}) => '今后将不再录制 ${title} 的剧集。', 'liveTv.recordingScheduled' => '录制已安排', 'liveTv.alreadyScheduled' => '此节目已安排录制', 'liveTv.dvrAdminRequired' => 'DVR 设置需要管理员账户', @@ -3041,7 +3049,7 @@ extension on TranslationsZh { 'liveTv.recordingRuleDeleted' => '录制规则已删除', 'liveTv.processRecordingRules' => '重新评估规则', 'liveTv.recordingInProgress' => '正在录制', - 'liveTv.recordingsCount' => ({required Object count}) => '已安排 ${count} 个', + 'liveTv.recordingsCount' => ({required Object count}) => '已安排 ${count} 项录制', 'liveTv.editRule' => '编辑规则', 'liveTv.editRuleAction' => '编辑', 'liveTv.recordingRuleUpdated' => '录制规则已更新', @@ -3067,7 +3075,7 @@ extension on TranslationsZh { 'collections.removedFromCollection' => '已从合集移除', 'collections.removeFromCollectionFailed' => '从合集移除失败', 'collections.removeFromCollectionError' => ({required Object error}) => '从合集移除时出错:${error}', - 'collections.searchCollections' => '搜索合集...', + 'collections.searchCollections' => '搜索合集…', 'playlists.title' => '播放列表', 'playlists.playlist' => '播放列表', 'playlists.noPlaylists' => '未找到播放列表', @@ -3081,13 +3089,13 @@ extension on TranslationsZh { 'playlists.oneItem' => '1 个项目', 'playlists.emptyPlaylist' => '此播放列表为空', 'playlists.deleteConfirm' => '删除播放列表?', - 'playlists.deleteMessage' => ({required Object name}) => '确定要删除 "${name}" 吗?', + 'playlists.deleteMessage' => ({required Object name}) => '确定要删除“${name}”吗?', 'playlists.created' => '播放列表已创建', 'playlists.deleted' => '播放列表已删除', 'playlists.itemAdded' => '已添加到播放列表', 'playlists.itemRemoved' => '已从播放列表中移除', 'playlists.selectPlaylist' => '选择播放列表', - 'playlists.searchPlaylists' => '搜索播放列表...', + 'playlists.searchPlaylists' => '搜索播放列表…', 'playlists.errorCreating' => '创建播放列表失败', 'playlists.errorDeleting' => '删除播放列表失败', 'playlists.errorLoading' => '加载播放列表失败', @@ -3096,19 +3104,19 @@ extension on TranslationsZh { 'playlists.errorRemoving' => '从播放列表中移除失败', 'music.goToAlbum' => '前往专辑', 'music.goToArtist' => '前往艺术家', - 'music.instantMix' => '即时混音', + 'music.instantMix' => '即时混合播放', 'music.playNext' => '下一首播放', 'music.addToQueue' => '添加到队列', 'music.discNumber' => ({required Object n}) => '碟片 ${n}', 'music.trackCount' => ({required num n}) => (_root.$meta.cardinalResolver ?? PluralResolvers.cardinal('zh'))(n, other: '${n} 首', ), 'music.nowPlaying' => '正在播放', - 'music.playingFrom' => ({required Object title}) => '来自 ${title}', + 'music.playingFrom' => ({required Object title}) => '播放来源:${title}', 'music.queue' => '播放队列', 'music.clearQueue' => '清空队列', 'music.lyrics' => '歌词', 'music.noLyrics' => '暂无歌词', 'music.sleepTimer' => '睡眠定时器', - 'music.sleepTimerEndOfTrack' => '曲目结束时', + 'music.sleepTimerEndOfTrack' => '当前曲目结束时', 'music.sleepTimerMinutes' => ({required Object n}) => '${n} 分钟', 'music.stopPlayback' => '停止播放', 'music.previousTrack' => '上一首', @@ -3119,9 +3127,9 @@ extension on TranslationsZh { 'watchTogether.title' => '一起看', 'watchTogether.description' => '与朋友和家人同步观看内容', 'watchTogether.createSession' => '创建会话', - 'watchTogether.creating' => '创建中...', + 'watchTogether.creating' => '正在创建…', 'watchTogether.joinSession' => '加入会话', - 'watchTogether.joining' => '加入中...', + 'watchTogether.joining' => '正在加入…', 'watchTogether.controlMode' => '控制模式', 'watchTogether.controlModeQuestion' => '谁可以控制播放?', 'watchTogether.hostOnly' => '仅主持人', @@ -3150,38 +3158,38 @@ extension on TranslationsZh { 'watchTogether.leaveSessionConfirmOverlay' => '你将断开与观看会话的连接。', 'watchTogether.end' => '结束', 'watchTogether.leave' => '离开', - 'watchTogether.syncing' => '同步中...', + 'watchTogether.syncing' => '正在同步…', 'watchTogether.joinWatchSession' => '加入观看会话', - 'watchTogether.enterCodeHint' => '输入5位代码', + 'watchTogether.enterCodeHint' => '输入 5 位代码', 'watchTogether.pasteFromClipboard' => '从剪贴板粘贴', 'watchTogether.pleaseEnterCode' => '请输入会话代码', - 'watchTogether.codeMustBe5Chars' => '会话代码必须是5个字符', + 'watchTogether.codeMustBe5Chars' => '会话代码必须是 5 个字符', 'watchTogether.joinInstructions' => '输入主持人的会话代码以加入。', 'watchTogether.failedToCreate' => '创建会话失败', 'watchTogether.failedToJoin' => '加入会话失败', 'watchTogether.sessionCodeCopied' => '会话代码已复制到剪贴板', - 'watchTogether.relayUnreachable' => '无法访问中继服务器。ISP 阻止可能导致 Watch Together 不可用。', - 'watchTogether.reconnectingToHost' => '正在重新连接到主持人...', + 'watchTogether.relayUnreachable' => '无法访问中继服务器。网络运营商的屏蔽可能导致“一起看”不可用。', + 'watchTogether.reconnectingToHost' => '正在重新连接到主持人…', 'watchTogether.currentPlayback' => '当前播放', 'watchTogether.joinCurrentPlayback' => '加入当前播放', - 'watchTogether.joinCurrentPlaybackDescription' => '回到房主当前正在观看的内容', + 'watchTogether.joinCurrentPlaybackDescription' => '加入主持人当前正在观看的内容', 'watchTogether.failedToOpenCurrentPlayback' => '无法打开当前播放', - 'watchTogether.participantJoined' => ({required Object name}) => '${name} 加入了', - 'watchTogether.participantLeft' => ({required Object name}) => '${name} 离开了', - 'watchTogether.participantPaused' => ({required Object name}) => '${name} 暂停了', - 'watchTogether.participantResumed' => ({required Object name}) => '${name} 继续播放了', _ => null, } ?? switch (path) { - 'watchTogether.participantSeeked' => ({required Object name}) => '${name} 跳转了', + 'watchTogether.participantJoined' => ({required Object name}) => '${name} 已加入', + 'watchTogether.participantLeft' => ({required Object name}) => '${name} 已离开', + 'watchTogether.participantPaused' => ({required Object name}) => '${name} 暂停了播放', + 'watchTogether.participantResumed' => ({required Object name}) => '${name} 恢复了播放', + 'watchTogether.participantSeeked' => ({required Object name}) => '${name} 更改了播放位置', 'watchTogether.participantBuffering' => ({required Object name}) => '${name} 正在缓冲', 'watchTogether.participantNeedsUpdate' => ({required Object name}) => '${name} 正在使用较旧版本的应用,无法同步', - 'watchTogether.resumingWithout' => ({required Object name}) => '不等待 ${name},继续播放', - 'watchTogether.waitingForParticipants' => '等待其他人加载...', - 'watchTogether.waitingForName' => ({required Object name}) => '正在等待 ${name}...', + 'watchTogether.resumingWithout' => ({required Object name}) => '不再等待 ${name},继续播放', + 'watchTogether.waitingForParticipants' => '正在等待其他人加载…', + 'watchTogether.waitingForName' => ({required Object name}) => '正在等待 ${name}…', 'watchTogether.recentRooms' => '最近的房间', 'watchTogether.renameRoom' => '重命名房间', 'watchTogether.removeRoom' => '移除', - 'watchTogether.guestSwitchUnavailable' => '无法切换 — 服务器无法同步', + 'watchTogether.guestSwitchUnavailable' => '无法切换 — 服务器不可用于同步', 'watchTogether.guestSwitchFailed' => '无法切换 — 在此服务器上未找到内容', 'downloads.title' => '下载', 'downloads.manage' => '管理', @@ -3206,13 +3214,13 @@ extension on TranslationsZh { 'downloads.resumeDownload' => '继续下载', 'downloads.cancelledDownload' => '已取消的下载', 'downloads.syncingFile' => ({required Object file, required Object status}) => '${file}(正在同步 ${status})', - 'downloads.downloadedFileClickToComplete' => ({required Object file}) => '已下载 ${file} — 点击完成', - 'downloads.partialDownloadClickToComplete' => '已部分下载 — 点击完成', - 'downloads.deleting' => '正在删除...', - 'downloads.deletingWithProgress' => ({required Object title, required Object current, required Object total}) => '正在删除 ${title}... (${current}/${total})', + 'downloads.downloadedFileClickToComplete' => ({required Object file}) => '已下载 ${file} — 点击以完成', + 'downloads.partialDownloadClickToComplete' => '已部分下载 — 点击以完成', + 'downloads.deleting' => '正在删除…', + 'downloads.deletingWithProgress' => ({required Object title, required Object current, required Object total}) => '正在删除 ${title}…(${current}/${total})', 'downloads.queuedTooltip' => '已排队', 'downloads.queuedFilesTooltip' => ({required Object files}) => '已排队:${files}', - 'downloads.downloadingTooltip' => '正在下载...', + 'downloads.downloadingTooltip' => '正在下载…', 'downloads.downloadingFilesTooltip' => ({required Object files}) => '正在下载 ${files}', 'downloads.noDownloadsTree' => '暂无下载', 'downloads.pauseAll' => '全部暂停', @@ -3222,20 +3230,20 @@ extension on TranslationsZh { 'downloads.allEpisodes' => '所有剧集', 'downloads.unwatchedOnly' => '仅未观看', 'downloads.nextNUnwatched' => ({required Object count}) => '接下来 ${count} 集未观看', - 'downloads.customAmount' => '自定义数量...', + 'downloads.customAmount' => '自定义数量…', 'downloads.includeSpecials' => '包含特别篇', 'downloads.howManyEpisodes' => '下载几集?', 'downloads.invalidEpisodeCount' => '请输入有效的集数。', 'downloads.keepSynced' => '保持同步', 'downloads.downloadOnce' => '下载一次', - 'downloads.keepNUnwatched' => ({required Object count}) => '保留${count}个未观看', + 'downloads.keepNUnwatched' => ({required Object count}) => '保留 ${count} 集未观看内容', 'downloads.editSyncRule' => '编辑同步规则', 'downloads.removeSyncRule' => '删除同步规则', 'downloads.removeSyncRuleConfirm' => ({required Object title}) => '停止同步“${title}”?已下载的剧集将被保留。', - 'downloads.syncRuleCreated' => ({required Object count}) => '同步规则已创建 — 保留${count}个未观看的剧集', + 'downloads.syncRuleCreated' => ({required Object count}) => '同步规则已创建 — 保留 ${count} 集未观看内容', 'downloads.syncRuleUpdated' => '同步规则已更新', 'downloads.syncRuleRemoved' => '同步规则已删除', - 'downloads.syncedNewEpisodes' => ({required Object title, required Object count}) => '已为${title}同步${count}个新剧集', + 'downloads.syncedNewEpisodes' => ({required Object title, required Object count}) => '已为 ${title} 同步 ${count} 个新剧集', 'downloads.activeSyncRules' => '同步规则', 'downloads.noSyncRules' => '没有同步规则', 'downloads.manageSyncRule' => '管理同步', @@ -3243,11 +3251,11 @@ extension on TranslationsZh { 'downloads.editSyncFilter' => '同步筛选', 'downloads.syncAllItems' => '同步所有项目', 'downloads.syncUnwatchedItems' => '同步未观看项目', - 'downloads.syncRuleServerContext' => ({required Object server, required Object status}) => '服务器: ${server} • ${status}', + 'downloads.syncRuleServerContext' => ({required Object server, required Object status}) => '服务器:${server} • ${status}', 'downloads.syncRuleAvailable' => '可用', 'downloads.syncRuleOffline' => '离线', 'downloads.syncRuleSignInRequired' => '需要登录', - 'downloads.syncRuleNotAvailableForProfile' => '当前个人资料不可用', + 'downloads.syncRuleNotAvailableForProfile' => '当前用户资料不可用', 'downloads.syncRuleUnknownServer' => '未知服务器', 'downloads.syncRuleListCreated' => '同步规则已创建', 'shaders.title' => '着色器', @@ -3264,11 +3272,11 @@ extension on TranslationsZh { 'shaders.shaderImported' => '着色器已导入', 'shaders.shaderImportFailed' => '导入着色器失败', 'shaders.deleteShader' => '删除着色器', - 'shaders.deleteShaderConfirm' => ({required Object name}) => '删除"${name}"?', - 'companionRemote.title' => '伴侣遥控', + 'shaders.deleteShaderConfirm' => ({required Object name}) => '删除“${name}”?', + 'companionRemote.title' => '遥控器', 'companionRemote.connectedTo' => ({required Object name}) => '已连接到 ${name}', 'companionRemote.unknownDevice' => '未知设备', - 'companionRemote.session.startingServer' => '正在启动远程服务器...', + 'companionRemote.session.startingServer' => '正在启动远程服务器…', 'companionRemote.session.hostAddress' => '主机地址', 'companionRemote.session.connected' => '已连接', 'companionRemote.session.serverRunning' => '远程服务器已启动', @@ -3281,28 +3289,28 @@ extension on TranslationsZh { 'companionRemote.session.minimize' => '最小化', 'companionRemote.pairing.discoveryDescription' => '使用同一 Plex 账号的 Plezy 设备会显示在这里', 'companionRemote.pairing.hostAddressHint' => '192.168.1.100:48632', - 'companionRemote.pairing.connecting' => '正在连接...', - 'companionRemote.pairing.searchingForDevices' => '正在搜索设备...', - 'companionRemote.pairing.noDevicesFound' => '未在网络上找到设备', - 'companionRemote.pairing.noDevicesHint' => '在桌面端打开 Plezy 并使用同一 WiFi', + 'companionRemote.pairing.connecting' => '正在连接…', + 'companionRemote.pairing.searchingForDevices' => '正在搜索设备…', + 'companionRemote.pairing.noDevicesFound' => '未在网络中找到设备', + 'companionRemote.pairing.noDevicesHint' => '请在桌面端打开 Plezy,并确保设备连接到同一 Wi-Fi 网络', 'companionRemote.pairing.availableDevices' => '可用设备', 'companionRemote.pairing.manualConnection' => '手动连接', 'companionRemote.pairing.cryptoInitFailed' => '无法启动安全连接。请先登录 Plex。', 'companionRemote.pairing.validationHostRequired' => '请输入主机地址', - 'companionRemote.pairing.validationHostFormat' => '格式必须为IP:端口(例如 192.168.1.100:48632)', + 'companionRemote.pairing.validationHostFormat' => '格式必须为 IP:端口(例如 192.168.1.100:48632)', 'companionRemote.pairing.connectionTimedOut' => '连接超时。请在两台设备上使用同一网络。', 'companionRemote.pairing.sessionNotFound' => '未找到设备。请确认 Plezy 正在主机上运行。', 'companionRemote.pairing.authFailed' => '认证失败。两台设备需要使用同一 Plex 账号。', 'companionRemote.pairing.failedToConnect' => ({required Object error}) => '连接失败:${error}', - 'companionRemote.remote.disconnectConfirm' => '是否要断开远程会话的连接?', - 'companionRemote.remote.reconnecting' => '重新连接中...', + 'companionRemote.remote.disconnectConfirm' => '确定要断开遥控会话吗?', + 'companionRemote.remote.reconnecting' => '正在重新连接…', 'companionRemote.remote.attemptOf' => ({required Object current}) => '第 ${current} 次尝试,共 5 次', 'companionRemote.remote.retryNow' => '立即重试', - 'companionRemote.remote.tabRemote' => '遥控', + 'companionRemote.remote.tabRemote' => '遥控器', 'companionRemote.remote.tabPlay' => '播放', 'companionRemote.remote.tabMore' => '更多', 'companionRemote.remote.menu' => '菜单', - 'companionRemote.remote.tabNavigation' => '标签导航', + 'companionRemote.remote.tabNavigation' => '导航', 'companionRemote.remote.tabDiscover' => '发现', 'companionRemote.remote.tabLibraries' => '媒体库', 'companionRemote.remote.tabSearch' => '搜索', @@ -3311,16 +3319,16 @@ extension on TranslationsZh { 'companionRemote.remote.previous' => '上一个', 'companionRemote.remote.playPause' => '播放/暂停', 'companionRemote.remote.next' => '下一个', - 'companionRemote.remote.seekBack' => '后退', + 'companionRemote.remote.seekBack' => '快退', 'companionRemote.remote.stop' => '停止', 'companionRemote.remote.seekForward' => '快进', 'companionRemote.remote.volume' => '音量', - 'companionRemote.remote.volumeDown' => '减小', - 'companionRemote.remote.volumeUp' => '增大', + 'companionRemote.remote.volumeDown' => '降低音量', + 'companionRemote.remote.volumeUp' => '提高音量', 'companionRemote.remote.fullscreen' => '全屏', 'companionRemote.remote.subtitles' => '字幕', 'companionRemote.remote.audio' => '音频', - 'companionRemote.remote.searchHint' => '在桌面上搜索...', + 'companionRemote.remote.searchHint' => '在桌面端搜索…', 'companionRemote.errors.noNetworkInterface' => '未找到网络接口', 'companionRemote.errors.authenticationFailed' => '身份验证失败', 'companionRemote.errors.serverStartFailed' => ({required Object error}) => '无法启动远程服务器:${error}', @@ -3359,7 +3367,7 @@ extension on TranslationsZh { 'performanceOverlay.hwFormat' => '硬件格式', 'performanceOverlay.matrix' => '矩阵', 'performanceOverlay.primaries' => '基色', - 'performanceOverlay.transfer' => '传输', + 'performanceOverlay.transfer' => '传递特性', 'performanceOverlay.renderFps' => '渲染 FPS', 'performanceOverlay.displayFps' => '显示 FPS', 'performanceOverlay.avSync' => 'A/V 同步', @@ -3393,7 +3401,7 @@ extension on TranslationsZh { 'externalPlayer.launchFailed' => '无法打开外部播放器', 'externalPlayer.appNotInstalled' => ({required Object name}) => '${name} 未安装', 'externalPlayer.playInExternalPlayer' => '在外部播放器中播放', - 'metadataEdit.editMetadata' => '编辑...', + 'metadataEdit.editMetadata' => '编辑…', 'metadataEdit.screenTitle' => '编辑元数据', 'metadataEdit.basicInfo' => '基本信息', 'metadataEdit.artwork' => '封面图片', @@ -3414,7 +3422,7 @@ extension on TranslationsZh { 'metadataEdit.selectBackground' => '选择背景', 'metadataEdit.selectLogo' => '选择标志', 'metadataEdit.selectSquareArt' => '选择方形图片', - 'metadataEdit.fromUrl' => '从 URL', + 'metadataEdit.fromUrl' => '通过 URL', 'metadataEdit.uploadFile' => '上传文件', 'metadataEdit.enterImageUrl' => '输入图片 URL', 'metadataEdit.imageUrl' => '图片 URL', @@ -3469,8 +3477,8 @@ extension on TranslationsZh { 'metadataEdit.label' => '标记', 'metadataEdit.style' => '风格', 'metadataEdit.mood' => '氛围', - 'matchScreen.match' => '匹配...', - 'matchScreen.fixMatch' => '修正匹配...', + 'matchScreen.match' => '匹配…', + 'matchScreen.fixMatch' => '修正匹配…', 'matchScreen.unmatch' => '取消匹配', 'matchScreen.unmatchConfirm' => '清除此匹配?在重新匹配前,Plex 会将其视为未匹配。', 'matchScreen.unmatchSuccess' => '已取消匹配', @@ -3489,8 +3497,8 @@ extension on TranslationsZh { 'trakt.connectedAs' => ({required Object username}) => '已以 @${username} 身份连接', 'trakt.disconnectConfirm' => '断开 Trakt 账户?', 'trakt.disconnectConfirmBody' => 'Plezy 将停止向 Trakt 发送事件。你可随时重新连接。', - 'trakt.scrobble' => '实时 Scrobble', - 'trakt.scrobbleDescription' => '在播放时向 Trakt 发送播放、暂停和停止事件。', + 'trakt.scrobble' => '实时同步播放状态', + 'trakt.scrobbleDescription' => '播放期间将播放、暂停和停止事件发送到 Trakt。', 'trakt.watchedSync' => '同步已观看状态', 'trakt.watchedSyncDescription' => '在 Plezy 中将内容标记为已观看时,也会在 Trakt 上标记为已观看。', 'seerr.title' => 'Seerr', @@ -3512,11 +3520,11 @@ extension on TranslationsZh { 'seerr.allSeasons' => '全部季', 'seerr.advancedOptions' => '高级', 'seerr.destinationServer' => '目标服务器', - 'seerr.qualityProfile' => '质量配置文件', + 'seerr.qualityProfile' => '画质配置', 'seerr.rootFolder' => '根目录', - 'seerr.languageProfile' => '语言配置文件', + 'seerr.languageProfile' => '语言配置', 'seerr.requestSubmitted' => '请求已提交', - 'seerr.requestFailed' => ({required Object error}) => '请求失败: ${error}', + 'seerr.requestFailed' => ({required Object error}) => '请求失败:${error}', 'seerr.requestsLoadFailed' => '无法加载请求选项', 'seerr.nothingToRequest' => '所有内容都已可用或已请求。', 'seerr.statusAvailable' => '可用', @@ -3561,32 +3569,32 @@ extension on TranslationsZh { 'services.libraryFilter.noLibraries' => '没有可用的媒体库', 'addServer.addJellyfinTitle' => '添加 Jellyfin 服务器', 'addServer.serverUrls' => '服务器 URL', - 'addServer.serverUrlsHelper' => '可输入多个 URL,以逗号分隔。', + 'addServer.serverUrlsHelper' => '可输入多个 URL,并用逗号分隔。', 'addServer.findServer' => '查找服务器', - 'addServer.searchingLocalServers' => '正在查找本地 Jellyfin 服务器...', + 'addServer.searchingLocalServers' => '正在查找本地 Jellyfin 服务器…', 'addServer.localServers' => '本地 Jellyfin 服务器', 'addServer.username' => '用户名', 'addServer.password' => '密码', 'addServer.signIn' => '登录', 'addServer.change' => '更改', 'addServer.required' => '必填', - 'addServer.couldNotReachServer' => ({required Object error}) => '无法连接到服务器: ${error}', - 'addServer.signInFailed' => ({required Object error}) => '登录失败: ${error}', - 'addServer.quickConnectFailed' => ({required Object error}) => 'Quick Connect 失败: ${error}', + 'addServer.couldNotReachServer' => ({required Object error}) => '无法连接到服务器:${error}', + 'addServer.signInFailed' => ({required Object error}) => '登录失败:${error}', + 'addServer.quickConnectFailed' => ({required Object error}) => 'Quick Connect 失败:${error}', 'addServer.addPlexTitle' => '使用 Plex 登录', 'addServer.pinExpired' => 'PIN 在登录前已过期。请重试。', - 'addServer.failedToRegisterAccount' => ({required Object error}) => '注册帐户失败: ${error}', - 'addServer.enterJellyfinUrlError' => '输入你的 Jellyfin 服务器 URL', + 'addServer.failedToRegisterAccount' => ({required Object error}) => '注册账户失败:${error}', + 'addServer.enterJellyfinUrlError' => '请输入 Jellyfin 服务器 URL', 'addServer.addConnectionTitle' => '添加连接', 'addServer.addConnectionTitleScoped' => ({required Object name}) => '添加到 ${name}', 'addServer.signInWithPlexCard' => '使用 Plex 登录', 'addServer.signInWithPlexCardSubtitle' => '授权此设备。共享服务器会被添加。', - 'addServer.signInWithPlexCardSubtitleScoped' => '授权一个 Plex 账号。Home 用户会成为个人资料。', + 'addServer.signInWithPlexCardSubtitleScoped' => '授权一个 Plex 账户。Plex Home 用户将成为 Plezy 用户资料。', 'addServer.connectToJellyfinCard' => '连接到 Jellyfin', 'addServer.connectToJellyfinCardSubtitle' => '输入服务器 URL、用户名和密码。', 'addServer.connectToJellyfinCardSubtitleScoped' => ({required Object name}) => '登录到 Jellyfin 服务器。绑定到 ${name}。', - 'addServer.borrowFromAnotherProfile' => '从另一个配置文件借用', - 'addServer.borrowFromAnotherProfileSubtitle' => '复用另一个个人资料的连接。受 PIN 保护的个人资料需要 PIN。', + 'addServer.borrowFromAnotherProfile' => '使用其他用户资料的连接', + 'addServer.borrowFromAnotherProfileSubtitle' => '复用另一个用户资料的连接。受 PIN 保护的用户资料需要输入 PIN。', _ => null, }; } diff --git a/lib/i18n/strings_zh_Hant.g.dart b/lib/i18n/strings_zh_Hant.g.dart new file mode 100644 index 00000000..0c91dac1 --- /dev/null +++ b/lib/i18n/strings_zh_Hant.g.dart @@ -0,0 +1,3602 @@ +/// +/// Generated file. Do not edit. +/// +// coverage:ignore-file +// ignore_for_file: type=lint, unused_import +// dart format off + +import 'package:flutter/widgets.dart'; +import 'package:intl/intl.dart'; +import 'package:slang/generated.dart'; +import 'strings.g.dart'; +import 'strings_zh.g.dart'; + +// Path: +class TranslationsZhHant extends TranslationsZh with BaseTranslations { + /// You can call this constructor and build your own translation instance of this locale. + /// Constructing via the enum [AppLocale.build] is preferred. + TranslationsZhHant({Map? overrides, PluralResolver? cardinalResolver, PluralResolver? ordinalResolver, TranslationMetadata? meta}) + : assert(overrides == null, 'Set "translation_overrides: true" in order to enable this feature.'), + $meta = meta ?? TranslationMetadata( + locale: AppLocale.zhHant, + overrides: overrides ?? {}, + cardinalResolver: cardinalResolver, + ordinalResolver: ordinalResolver, + ), + super(cardinalResolver: cardinalResolver, ordinalResolver: ordinalResolver) { + super.$meta.setFlatMapFunction($meta.getTranslation); // copy base translations to super.$meta + $meta.setFlatMapFunction(_flatMapFunction); + } + + /// Metadata for the translations of . + @override final TranslationMetadata $meta; + + /// Access flat map + @override dynamic operator[](String key) => $meta.getTranslation(key) ?? super.$meta.getTranslation(key); + + late final TranslationsZhHant _root = this; // ignore: unused_field + + @override + TranslationsZhHant $copyWith({TranslationMetadata? meta}) => TranslationsZhHant(meta: meta ?? this.$meta); + + // Translations + @override late final _Translations$app$zh_Hant app = _Translations$app$zh_Hant._(_root); + @override late final _Translations$auth$zh_Hant auth = _Translations$auth$zh_Hant._(_root); + @override late final _Translations$common$zh_Hant common = _Translations$common$zh_Hant._(_root); + @override late final _Translations$screens$zh_Hant screens = _Translations$screens$zh_Hant._(_root); + @override late final _Translations$update$zh_Hant update = _Translations$update$zh_Hant._(_root); + @override late final _Translations$settings$zh_Hant settings = _Translations$settings$zh_Hant._(_root); + @override late final _Translations$search$zh_Hant search = _Translations$search$zh_Hant._(_root); + @override late final _Translations$hotkeys$zh_Hant hotkeys = _Translations$hotkeys$zh_Hant._(_root); + @override late final _Translations$fileInfo$zh_Hant fileInfo = _Translations$fileInfo$zh_Hant._(_root); + @override late final _Translations$mediaMenu$zh_Hant mediaMenu = _Translations$mediaMenu$zh_Hant._(_root); + @override late final _Translations$rateSheet$zh_Hant rateSheet = _Translations$rateSheet$zh_Hant._(_root); + @override late final _Translations$accessibility$zh_Hant accessibility = _Translations$accessibility$zh_Hant._(_root); + @override late final _Translations$tooltips$zh_Hant tooltips = _Translations$tooltips$zh_Hant._(_root); + @override late final _Translations$audioTracks$zh_Hant audioTracks = _Translations$audioTracks$zh_Hant._(_root); + @override late final _Translations$videoControls$zh_Hant videoControls = _Translations$videoControls$zh_Hant._(_root); + @override late final _Translations$messages$zh_Hant messages = _Translations$messages$zh_Hant._(_root); + @override late final _Translations$subtitlingStyling$zh_Hant subtitlingStyling = _Translations$subtitlingStyling$zh_Hant._(_root); + @override late final _Translations$mpvConfig$zh_Hant mpvConfig = _Translations$mpvConfig$zh_Hant._(_root); + @override late final _Translations$dialog$zh_Hant dialog = _Translations$dialog$zh_Hant._(_root); + @override late final _Translations$profiles$zh_Hant profiles = _Translations$profiles$zh_Hant._(_root); + @override late final _Translations$connections$zh_Hant connections = _Translations$connections$zh_Hant._(_root); + @override late final _Translations$discover$zh_Hant discover = _Translations$discover$zh_Hant._(_root); + @override late final _Translations$errors$zh_Hant errors = _Translations$errors$zh_Hant._(_root); + @override late final _Translations$libraries$zh_Hant libraries = _Translations$libraries$zh_Hant._(_root); + @override late final _Translations$about$zh_Hant about = _Translations$about$zh_Hant._(_root); + @override late final _Translations$serverSelection$zh_Hant serverSelection = _Translations$serverSelection$zh_Hant._(_root); + @override late final _Translations$hubDetail$zh_Hant hubDetail = _Translations$hubDetail$zh_Hant._(_root); + @override late final _Translations$logs$zh_Hant logs = _Translations$logs$zh_Hant._(_root); + @override late final _Translations$licenses$zh_Hant licenses = _Translations$licenses$zh_Hant._(_root); + @override late final _Translations$navigation$zh_Hant navigation = _Translations$navigation$zh_Hant._(_root); + @override late final _Translations$explore$zh_Hant explore = _Translations$explore$zh_Hant._(_root); + @override late final _Translations$liveTv$zh_Hant liveTv = _Translations$liveTv$zh_Hant._(_root); + @override late final _Translations$collections$zh_Hant collections = _Translations$collections$zh_Hant._(_root); + @override late final _Translations$playlists$zh_Hant playlists = _Translations$playlists$zh_Hant._(_root); + @override late final _Translations$music$zh_Hant music = _Translations$music$zh_Hant._(_root); + @override late final _Translations$watchTogether$zh_Hant watchTogether = _Translations$watchTogether$zh_Hant._(_root); + @override late final _Translations$downloads$zh_Hant downloads = _Translations$downloads$zh_Hant._(_root); + @override late final _Translations$shaders$zh_Hant shaders = _Translations$shaders$zh_Hant._(_root); + @override late final _Translations$companionRemote$zh_Hant companionRemote = _Translations$companionRemote$zh_Hant._(_root); + @override late final _Translations$videoSettings$zh_Hant videoSettings = _Translations$videoSettings$zh_Hant._(_root); + @override late final _Translations$performanceOverlay$zh_Hant performanceOverlay = _Translations$performanceOverlay$zh_Hant._(_root); + @override late final _Translations$externalPlayer$zh_Hant externalPlayer = _Translations$externalPlayer$zh_Hant._(_root); + @override late final _Translations$metadataEdit$zh_Hant metadataEdit = _Translations$metadataEdit$zh_Hant._(_root); + @override late final _Translations$matchScreen$zh_Hant matchScreen = _Translations$matchScreen$zh_Hant._(_root); + @override late final _Translations$serverTasks$zh_Hant serverTasks = _Translations$serverTasks$zh_Hant._(_root); + @override late final _Translations$trakt$zh_Hant trakt = _Translations$trakt$zh_Hant._(_root); + @override late final _Translations$seerr$zh_Hant seerr = _Translations$seerr$zh_Hant._(_root); + @override late final _Translations$services$zh_Hant services = _Translations$services$zh_Hant._(_root); + @override late final _Translations$addServer$zh_Hant addServer = _Translations$addServer$zh_Hant._(_root); +} + +// Path: app +class _Translations$app$zh_Hant extends Translations$app$zh { + _Translations$app$zh_Hant._(TranslationsZhHant root) : this._root = root, super.internal(root); + + final TranslationsZhHant _root; // ignore: unused_field + + // Translations + @override String get title => 'Plezy'; +} + +// Path: auth +class _Translations$auth$zh_Hant extends Translations$auth$zh { + _Translations$auth$zh_Hant._(TranslationsZhHant root) : this._root = root, super.internal(root); + + final TranslationsZhHant _root; // ignore: unused_field + + // Translations + @override String get signInWithPlex => '使用 Plex 登入'; + @override String get showQRCode => '顯示 QR 碼'; + @override String get authenticate => '驗證'; + @override String get authenticationTimeout => '驗證逾時。請重試。'; + @override String get scanQRToSignIn => '掃描此 QR 碼以登入'; + @override String get waitingForAuth => '正在等待驗證…\n請在瀏覽器中登入。'; + @override String get useBrowser => '使用瀏覽器'; + @override String get or => '或'; + @override String get connectToJellyfin => '連線至 Jellyfin'; + @override String get useQuickConnect => '使用快速連線(Quick Connect)'; + @override String get quickConnectInstructions => '在 Jellyfin 中開啟快速連線並輸入此代碼。'; + @override String get quickConnectWaiting => '等待核准…'; + @override String get quickConnectCancel => '取消'; + @override String get quickConnectExpired => '快速連線代碼已過期。請重試。'; + @override String get localDataRecoveryRequired => 'Plezy 無法安全地復原本機登入資料與待處理的播放資料。請重新登入。'; +} + +// Path: common +class _Translations$common$zh_Hant extends Translations$common$zh { + _Translations$common$zh_Hant._(TranslationsZhHant root) : this._root = root, super.internal(root); + + final TranslationsZhHant _root; // ignore: unused_field + + // Translations + @override String get cancel => '取消'; + @override String get save => '儲存'; + @override String get close => '關閉'; + @override String get clear => '清除'; + @override String get reset => '重設'; + @override String get later => '稍後'; + @override String get submit => '送出'; + @override String get confirm => '確認'; + @override String get retry => '重試'; + @override String get logout => '登出'; + @override String get unknown => '未知'; + @override String get refresh => '重新整理'; + @override String get yes => '是'; + @override String get no => '否'; + @override String get delete => '刪除'; + @override String get edit => '編輯'; + @override String get shuffle => '隨機播放'; + @override String get addTo => '新增至…'; + @override String get createNew => '新增'; + @override String get connect => '連線'; + @override String get disconnect => '中斷連線'; + @override String get play => '播放'; + @override String get pause => '暫停'; + @override String get resume => '繼續'; + @override String get error => '錯誤'; + @override String get search => '搜尋'; + @override String get home => '首頁'; + @override String get back => '返回'; + @override String get settings => '設定'; + @override String get mute => '靜音'; + @override String get ok => '確定'; + @override String get off => '關閉'; + @override String seasonNumber({required Object number}) => '第 ${number} 季'; + @override String episodeNumberTitle({required Object number, required Object title}) => '第 ${number} 集 — ${title}'; + @override String chapterNumber({required Object number}) => '第 ${number} 章'; + @override String get reconnect => '重新連線'; + @override String get viewAll => '查看全部'; + @override String get checkingNetwork => '正在檢查網路…'; + @override String get loadingServers => '正在載入伺服器…'; + @override String get connectingToServers => '正在連線伺服器…'; + @override String get startingOfflineMode => '正在啟動離線模式…'; + @override String get loading => '載入中…'; + @override String get fullscreen => '全螢幕'; + @override String get exitFullscreen => '退出全螢幕'; + @override String get pressBackAgainToExit => '再按一次返回以退出'; +} + +// Path: screens +class _Translations$screens$zh_Hant extends Translations$screens$zh { + _Translations$screens$zh_Hant._(TranslationsZhHant root) : this._root = root, super.internal(root); + + final TranslationsZhHant _root; // ignore: unused_field + + // Translations + @override String get licenses => '授權條款'; + @override String get switchProfile => '切換使用者'; + @override String get subtitleStyling => '字幕樣式'; + @override String get mpvConfig => 'mpv.conf 設定'; + @override String get logs => '日誌'; +} + +// Path: update +class _Translations$update$zh_Hant extends Translations$update$zh { + _Translations$update$zh_Hant._(TranslationsZhHant root) : this._root = root, super.internal(root); + + final TranslationsZhHant _root; // ignore: unused_field + + // Translations + @override String get available => '有可用更新'; + @override String versionAvailable({required Object version}) => '版本 ${version} 已發佈'; + @override String currentVersion({required Object version}) => '目前版本:${version}'; + @override String get skipVersion => '跳過此版本'; + @override String get viewRelease => '查看版本詳情'; + @override String get latestVersion => '已安裝的版本為最新版本'; + @override String get checkFailed => '無法檢查更新'; +} + +// Path: settings +class _Translations$settings$zh_Hant extends Translations$settings$zh { + _Translations$settings$zh_Hant._(TranslationsZhHant root) : this._root = root, super.internal(root); + + final TranslationsZhHant _root; // ignore: unused_field + + // Translations + @override String get title => '設定'; + @override String get supportDeveloper => '贊助 Plezy'; + @override String get supportDeveloperDescription => '透過 Liberapay 捐款支持開發者'; + @override String get language => '語言'; + @override String get theme => '主題'; + @override String get appearance => '外觀'; + @override String get videoPlayback => '影片播放'; + @override String get videoPlaybackDescription => '設定播放行為'; + @override String get advanced => '進階'; + @override String get episodePosterMode => '單集海報樣式'; + @override String get seriesPoster => '影集海報'; + @override String get seasonPoster => '單季海報'; + @override String get episodeThumbnail => '縮圖'; + @override String get showHeroSectionDescription => '在主畫面上顯示精選內容輪播區'; + @override String get secondsLabel => '秒'; + @override String get minutesLabel => '分鐘'; + @override String get secondsShort => '秒'; + @override String get minutesShort => '分'; + @override String durationHint({required Object min, required Object max}) => '輸入長度(${min}-${max})'; + @override String get systemTheme => '系統預設'; + @override String get lightTheme => '淺色'; + @override String get darkTheme => '深色'; + @override String get oledTheme => 'OLED 純黑'; + @override String get libraryDensity => '媒體庫版面配置密度'; + @override String get compact => '緊湊'; + @override String get comfortable => '舒適'; + @override String get tvCornerSpotlightBackdrop => '右上角焦點背景圖'; + @override String get tvCornerSpotlightBackdropDescription => '在右上角顯示焦點內容圖片,而非填滿整個畫面'; + @override String get viewMode => '檢視模式'; + @override String get gridView => '網格檢視'; + @override String get listView => '清單檢視'; + @override String get showHeroSection => '顯示精選內容區'; + @override String get continueWatchingAction => '繼續觀看操作'; + @override String get continueWatchingPlay => '播放影片'; + @override String get continueWatchingDetails => '開啟詳情頁'; + @override String get episodeAction => '單集操作'; + @override String get episodePlay => '播放'; + @override String get episodeDetails => '開啟詳情頁'; + @override String get useGlobalHubs => '使用首頁版面配置'; + @override String get useGlobalHubsDescription => '顯示統一的首頁推薦欄,否則使用各媒體庫的推薦內容。'; + @override String get showServerNameOnHubs => '在推薦欄顯示伺服器名稱'; + @override String get showServerNameOnHubsDescription => '一律在推薦區標題中顯示伺服器名稱。'; + @override String get groupLibrariesByServer => '依伺服器將媒體庫分組'; + @override String get groupLibrariesByServerDescription => '將側邊欄中的媒體庫依伺服器進行分組。'; + @override String get alwaysKeepSidebarOpen => '一律保持側邊欄展開'; + @override String get alwaysKeepSidebarOpenDescription => '側邊欄保持展開狀態,內容區域自動調整'; + @override String get showUnwatchedCount => '顯示未觀看數量'; + @override String get showUnwatchedCountDescription => '在影集和單季上顯示未觀看的集數'; + @override String get showEpisodeNumberOnCards => '在卡片上顯示集數'; + @override String get showEpisodeNumberOnCardsDescription => '在單集卡片上顯示季和集編號'; + @override String get showSeasonPostersOnTabs => '在索引標籤上顯示單季海報'; + @override String get showSeasonPostersOnTabsDescription => '在每季標籤上方顯示該季海報'; + @override String get tvFullCardLayout => '完整 TV 卡片版面配置'; + @override String get tvFullCardLayoutDescription => '使用僅顯示圖片的 TV 卡片,並在圖片上疊加演員姓名'; + @override String get focusGlow => '焦點光暈'; + @override String get focusGlowDescription => '在獲得焦點的卡片周圍顯示柔和的光暈'; + @override String get visualEffects => '視覺效果'; + @override String get visualEffectsAuto => '自動'; + @override String get visualEffectsAutoDescription => '在效能較低的裝置上自動減少效果'; + @override String get visualEffectsFull => '完整效果'; + @override String get visualEffectsReduced => '簡化效果'; + @override String get visualEffectsReducedDescription => '減少動畫並使用較低解析度的封面圖片'; + @override String get hideSpoilers => '隱藏未觀看單集的劇透內容'; + @override String get hideSpoilersDescription => '模糊未觀看單集的縮圖與描述'; + @override String get playerBackend => '播放器引擎'; + @override String get exoPlayer => 'ExoPlayer'; + @override String get mpv => 'mpv'; + @override String get hardwareDecoding => '硬體解碼'; + @override String get hardwareDecodingDescription => '如果支援,使用硬體加速'; + @override String get bufferSize => '緩衝區大小'; + @override String bufferSizeMB({required Object size}) => '${size} MB'; + @override String get bufferSizeAuto => '自動(推薦)'; + @override String bufferSizeWarning({required Object heap, required Object size}) => '可用記憶體為 ${heap} MB。設定 ${size} MB 緩衝可能影響播放穩定性。'; + @override String get defaultQualityTitle => '預設畫質'; + @override String get musicQualityTitle => '音樂品質'; + @override String get subtitleStyling => '字幕樣式'; + @override String get subtitleStylingDescription => '調整字幕外觀'; + @override String get smallSkipDuration => '短跳過時間'; + @override String get largeSkipDuration => '長跳過時間'; + @override String get rewindOnResume => '繼續播放時稍微倒轉'; + @override String secondsUnit({required Object seconds}) => '${seconds} 秒'; + @override String get defaultSleepTimer => '預設睡眠計時器'; + @override String minutesUnit({required Object minutes}) => '${minutes} 分鐘'; + @override String get rememberTrackSelections => '記住每部影集或電影的音訊與字幕選擇'; + @override String get rememberTrackSelectionsDescription => '記住每部影片的音軌與字幕選擇'; + @override String get showChapterMarkersOnTimeline => '在進度條上顯示章節標記'; + @override String get showChapterMarkersOnTimelineDescription => '依章節分段顯示進度條'; + @override String get clickVideoTogglesPlayback => '點選影片可切換播放或暫停'; + @override String get clickVideoTogglesPlaybackDescription => '點選影片即可播放或暫停,而不顯示控制面板。'; + @override String get videoPlayerControls => '影片播放器控制'; + @override String get keyboardShortcuts => '鍵盤快速鍵'; + @override String get keyboardShortcutsDescription => '自訂鍵盤快速鍵'; + @override String get videoPlayerNavigation => '影片播放器導覽'; + @override String get videoPlayerNavigationDescription => '使用方向鍵導覽影片播放器控制項'; + @override String get watchTogetherRelay => '一起看中繼伺服器'; + @override String get watchTogetherRelayDescription => '設定自訂中繼。所有人必須使用相同的伺服器。'; + @override String get watchTogetherRelayHint => 'https://my-relay.example.com'; + @override String get watchTogetherRelayInvalid => '請輸入有效的 HTTP 或 HTTPS 中繼伺服器根網址。'; + @override String get crashReporting => '當機報告'; + @override String get crashReportingDescription => '傳送當機報告以協助改善應用程式'; + @override String get debugLogging => '偵錯日誌'; + @override String get debugLoggingDescription => '啟用詳細日誌記錄以便進行疑難排解'; + @override String get viewLogs => '查看日誌'; + @override String get viewLogsDescription => '查看應用程式日誌記錄'; + @override String get clearCache => '清除快取'; + @override String get clearCacheDescription => '清除快取的圖片與資料。再次載入內容時速度可能會變慢。'; + @override String get clearCacheSuccess => '快取清除成功'; + @override String get resetSettings => '重設設定'; + @override String get resetSettingsDescription => '恢復預設設定。此操作無法復原。'; + @override String get resetSettingsSuccess => '設定重設成功'; + @override String get backup => '備份'; + @override String get exportSettings => '匯出設定'; + @override String get exportSettingsDescription => '將您的偏好設定儲存至檔案'; + @override String get exportSettingsSuccess => '設定已匯出'; + @override String get importSettings => '匯入設定'; + @override String get importSettingsDescription => '從檔案還原偏好設定'; + @override String get importSettingsConfirm => '這將覆蓋您目前的設定。要繼續嗎?'; + @override String get importSettingsSuccess => '設定已匯入'; + @override String get importSettingsInvalidFile => '此檔案不是有效的 Plezy 設定匯出檔'; + @override String get importSettingsNoUser => '匯入設定前請先登入'; + @override String get shortcutsReset => '快速鍵已重設為預設值'; + @override String get about => '關於'; + @override String get aboutDescription => '應用程式資訊與授權條款'; + @override String get updates => '更新'; + @override String get updateAvailable => '有可用更新'; + @override String get checkForUpdates => '檢查更新'; + @override String get autoCheckUpdatesOnStartup => '啟動時自動檢查更新'; + @override String get autoCheckUpdatesOnStartupDescription => '啟動時若有可用更新便顯示通知'; + @override String get validationErrorEnterNumber => '請輸入有效的數字'; + @override String validationErrorDuration({required Object min, required Object max, required Object unit}) => '長度必須介於 ${min} 與 ${max} ${unit} 之間'; + @override String shortcutAlreadyAssigned({required Object action}) => '該快速鍵已指派給 ${action}'; + @override String shortcutUpdated({required Object action}) => '已更新 ${action} 的快速鍵'; + @override String get saveFailed => '無法儲存變更。請重試。'; + @override String get autoSkip => '自動跳過'; + @override String get autoSkipIntro => '自動跳過片頭'; + @override String get autoSkipIntroDescription => '幾秒鐘後自動跳過片頭標記'; + @override String get autoSkipCredits => '自動跳過片尾'; + @override String get autoSkipCreditsDescription => '自動跳過片尾並播放下一集'; + @override String get forceSkipMarkerFallback => '強制使用備用標記'; + @override String get forceSkipMarkerFallbackDescription => '即使 Plex 有標記,也強制使用章節標題模式'; + @override String get autoSkipDelay => '自動跳過延遲'; + @override String autoSkipDelayDescription({required Object seconds}) => '自動跳過前等待 ${seconds} 秒'; + @override String get introPattern => '片頭標記模式'; + @override String get introPatternDescription => '用於比對章節標題中片頭標記的正規表示式'; + @override String get creditsPattern => '片尾標記模式'; + @override String get creditsPatternDescription => '用於比對章節標題中片尾標記的正規表示式'; + @override String get invalidRegex => '無效的正規表示式'; + @override String get regex => '正規表示式'; + @override String get downloads => '下載'; + @override String get downloadLocationDescription => '選擇下載內容的儲存位置'; + @override String get downloadLocationDefault => '預設(應用程式專屬儲存空間)'; + @override String get downloadLocationCustom => '自訂位置'; + @override String get selectFolder => '選擇資料夾'; + @override String get resetToDefault => '重設為預設值'; + @override String currentPath({required Object path}) => '目前路徑:${path}'; + @override String get downloadLocationChanged => '下載位置已變更'; + @override String get downloadLocationReset => '下載位置已重設為預設值'; + @override String get downloadLocationInvalid => '所選資料夾不具寫入權限'; + @override String get downloadLocationPickerUnavailable => '此裝置無法選擇資料夾'; + @override String get downloadOnWifiOnly => '僅在 Wi-Fi 連線時下載'; + @override String get downloadOnWifiOnlyDescription => '使用行動網路時不會下載'; + @override String get autoRemoveWatchedDownloads => '自動移除已觀看的下載內容'; + @override String get autoRemoveWatchedDownloadsDescription => '自動刪除已觀看的下載影片'; + @override String get cellularDownloadBlocked => '使用行動網路時無法下載。請改用 Wi-Fi 或變更設定。'; + @override String get maxVolume => '最大音量'; + @override String get maxVolumeDescription => '允許音量調大至 100% 以上,以適應聲音過小的媒體'; + @override String maxVolumePercent({required Object percent}) => '${percent}%'; + @override String get discordRichPresence => 'Discord 狀態整合(Rich Presence)'; + @override String get discordRichPresenceDescription => '在 Discord 上顯示您正在觀看的內容'; + @override String get services => '外部服務'; + @override String get servicesDescription => '連結 Trakt、MyAnimeList、Seerr 等服務'; + @override String get manageLibrariesDescription => '重新排序與隱藏媒體庫'; + @override String get companionRemoteServer => '隨身遙控器伺服器'; + @override String get companionRemoteServerDescription => '允許區域網路中的行動裝置控制此應用程式'; + @override String get autoPip => '自動進入子母畫面'; + @override String get autoPipDescription => '播放影片時離開應用程式將自動進入子母畫面模式'; + @override String get matchContentFrameRate => '符合影片影格率'; + @override String get matchContentFrameRateDescription => '將顯示器更新率同步至影片影格率'; + @override String get matchRefreshRate => '同步螢幕更新率'; + @override String get matchRefreshRateDescription => '全螢幕時同步顯示器更新率'; + @override String get matchDynamicRange => '同步動態範圍'; + @override String get matchDynamicRangeDescription => 'HDR 內容切換至 HDR,播放結束切回 SDR'; + @override String get displaySwitchDelay => '顯示器切換延遲時間'; + @override String get tunneledPlayback => '通道化播放(Tunneled Playback)'; + @override String get tunneledPlaybackDescription => '使用影片通道模式。若 HDR 播放出現黑畫面,請停用此項。'; + @override String get audioPassthrough => '音訊直通'; + @override String get audioPassthroughDescription => '將 Dolby/DTS 音訊不經重新編碼,直接傳送至擴大機或電視以保留環繞音效。若播放無聲,請關閉此設定。'; + @override String get audioPassthroughDescriptionAppleTv => '使用 Apple 原生 Dolby 解碼器處理 Dolby Digital Plus(包括 Atmos)。DTS 與 TrueHD 仍以多聲道 PCM 播放。若沒有聲音,請關閉此設定。'; + @override String get audioDownmix => '下混為立體聲'; + @override String get audioDownmixDescription => '將環繞音效混合為雙聲道,適用於立體聲喇叭或耳機'; + @override String get downmixCenterBoost => '中置聲道增強'; + @override String downmixCenterBoostValue({required Object db}) => '${db} dB'; + @override String get downmixCenterBoostLabel => '增強(dB)'; + @override String get downmixCenterBoostShort => 'dB'; + @override String get audioDownmixNormalize => '下混時音量標準化'; + @override String get audioDownmixNormalizeDescription => '降低混音電平以防止破音。關閉以保持原始音量(大音量場景可能會失真)。'; + @override String get atmosDiagnostics => 'Atmos 輸出測試'; + @override String get atmosDiagnosticsDescription => '透過系統播放器播放測試訊號,診斷 Dolby Atmos 輸出狀態'; + @override String get atmosTestHlsAtmos => 'Apple Atmos 串流'; + @override String get atmosTestHlsAtmosDescription => '已知正常的 Dolby Atmos 串流。擴大機應顯示 Dolby Atmos。'; + @override String get atmosTestHlsControl => 'Apple 環繞音效串流'; + @override String get atmosTestHlsControlDescription => '不含 Atmos 的對照組串流。擴大機應顯示一般環繞音效(非 Atmos)。'; + @override String get atmosTestRawStream => '原始 EAC3 串流'; + @override String get atmosTestRawStreamDescription => '以與播放器播放 Atmos 完全相同的方式串流測試檔案。需要測試檔案的 URL。'; + @override String get atmosTestRawFile => '原始 EAC3 檔案'; + @override String get atmosTestRawFileDescription => '以已知長度播放測試檔案。需要測試檔案的 URL。'; + @override String get atmosTestStop => '停止測試'; + @override String get atmosTestUrl => '測試檔案 URL'; + @override String get atmosTestUrlDescription => '原始 .ec3 Dolby Atmos 檔案的 HTTP URL(例如使用 ffmpeg 提取的檔案)'; + @override String get atmosTestUrlMissing => '請先設定測試檔案的 URL'; + @override String get atmosTestStatus => '狀態'; + @override String get dvConversionMode => 'Dolby Vision 轉換模式'; + @override String get dvConversionModeDescription => '選擇 ExoPlayer 如何處理 Dolby Vision Profile 7 檔案。'; + @override String get dvConversionAuto => '自動'; + @override String get dvConversionNative => '原生 / 停用'; + @override String get dvConversionDv81 => 'P7 → P8.1'; + @override String get dvConversionHevcStrip => 'P7 → HEVC'; + @override String get dvConversionAutoDescription => '自動偵測裝置相容性並使用一般備援機制'; + @override String get dvConversionNativeDescription => '強制使用原生 DV7 並停用 DV 轉換重試'; + @override String get dvConversionDv81Description => '強制將內嵌的 RPU 轉換為 Dolby Vision Profile 8.1'; + @override String get dvConversionHevcStripDescription => '移除 Dolby Vision RPU/EL 層,並以一般 HEVC 呈現'; + @override String get requireProfileSelectionOnOpen => '開啟應用程式時要求選擇使用者'; + @override String get requireProfileSelectionOnOpenDescription => '每次開啟應用程式時顯示使用者設定檔選擇畫面'; + @override String get forceTvMode => '強制 TV 模式'; + @override String get forceTvModeDescription => '強制使用 TV 介面版面。適用於無法自動辨識 TV 的裝置。需要重新啟動。'; + @override String get startInFullscreen => '以全螢幕模式啟動'; + @override String get startInFullscreenDescription => '啟動時直接以全螢幕開啟 Plezy'; + @override String get exitFullscreenOnPlayerClose => '關閉播放器時退出全螢幕'; + @override String get exitFullscreenOnPlayerCloseDescription => '關閉影片播放器時自動退出全螢幕模式'; + @override String get autoHidePerformanceOverlay => '自動隱藏效能疊加層'; + @override String get autoHidePerformanceOverlayDescription => '效能疊加層隨播放控制面板一起淡入或淡出'; + @override String get showNavBarLabels => '顯示導覽列標籤'; + @override String get showNavBarLabelsDescription => '在導覽列圖示下方顯示文字標籤'; + @override String get startupSection => '啟動頁面'; + @override String get liveTvDefaultFavorites => '預設顯示最愛頻道'; + @override String get liveTvDefaultFavoritesDescription => '開啟直播電視時僅顯示最愛頻道'; + @override String get display => '顯示器'; + @override String get homeScreen => '主畫面'; + @override String get navigation => '導覽'; + @override String get window => '視窗'; + @override String get content => '內容'; + @override String get player => '播放器'; + @override String get subtitlesAndConfig => '字幕與設定'; + @override String get seekAndTiming => '跳轉與計時'; + @override String get behavior => '行為'; +} + +// Path: search +class _Translations$search$zh_Hant extends Translations$search$zh { + _Translations$search$zh_Hant._(TranslationsZhHant root) : this._root = root, super.internal(root); + + final TranslationsZhHant _root; // ignore: unused_field + + // Translations + @override String get hint => '搜尋電影、影集、音樂…'; + @override String get tryDifferentTerm => '嘗試不同的關鍵字'; + @override String get searchYourMedia => '搜尋媒體庫'; + @override String get enterTitleActorOrKeyword => '輸入標題、演員或關鍵字'; +} + +// Path: hotkeys +class _Translations$hotkeys$zh_Hant extends Translations$hotkeys$zh { + _Translations$hotkeys$zh_Hant._(TranslationsZhHant root) : this._root = root, super.internal(root); + + final TranslationsZhHant _root; // ignore: unused_field + + // Translations + @override String setShortcutFor({required Object actionName}) => '為 ${actionName} 設定快速鍵'; + @override String get clearShortcut => '清除快速鍵'; + @override String get noShortcutSet => '未設定快速鍵'; + @override String get currentShortcut => '目前快速鍵:'; + @override String get pressToRecord => '選擇以錄製快速鍵'; + @override String get recordingShortcut => '現在請按下快速鍵組合'; + @override late final _Translations$hotkeys$actions$zh_Hant actions = _Translations$hotkeys$actions$zh_Hant._(_root); +} + +// Path: fileInfo +class _Translations$fileInfo$zh_Hant extends Translations$fileInfo$zh { + _Translations$fileInfo$zh_Hant._(TranslationsZhHant root) : this._root = root, super.internal(root); + + final TranslationsZhHant _root; // ignore: unused_field + + // Translations + @override String get title => '檔案資訊'; + @override String get video => '影片'; + @override String get audio => '音訊'; + @override String get file => '檔案'; + @override String get advanced => '進階'; + @override String get codec => '編解碼器'; + @override String get resolution => '解析度'; + @override String get bitrate => '位元率'; + @override String get frameRate => '影格率'; + @override String get aspectRatio => '寬高比'; + @override String get profile => '規格檔(Profile)'; + @override String get bitDepth => '位元深度'; + @override String get colorSpace => '色彩空間'; + @override String get colorRange => '色彩範圍'; + @override String get colorPrimaries => '色彩基色'; + @override String get chromaSubsampling => '色度抽樣'; + @override String get channels => '聲道數'; + @override String get subtitles => '字幕'; + @override String get overallBitrate => '總位元率'; + @override String get path => '路徑'; + @override String get size => '大小'; + @override String get container => '封裝格式'; + @override String get duration => '長度'; + @override String get optimizedForStreaming => '已最佳化串流播放'; + @override String get has64bitOffsets => '具 64 位元偏移量'; +} + +// Path: mediaMenu +class _Translations$mediaMenu$zh_Hant extends Translations$mediaMenu$zh { + _Translations$mediaMenu$zh_Hant._(TranslationsZhHant root) : this._root = root, super.internal(root); + + final TranslationsZhHant _root; // ignore: unused_field + + // Translations + @override String get markAsWatched => '標記為已觀看'; + @override String get markAsUnwatched => '標記為未觀看'; + @override String get removeFromContinueWatching => '從「繼續觀看」中移除'; + @override String get viewDetails => '查看詳情'; + @override String get goToSeries => '前往影集'; + @override String get shufflePlay => '隨機播放'; + @override String get shuffleNotAvailableOffline => '離線時無法隨機播放'; + @override String get fileInfo => '檔案資訊'; + @override String get deleteFromServer => '從伺服器刪除'; + @override String get confirmDelete => '確定要從伺服器刪除此媒體及其檔案嗎?'; + @override String get deleteMultipleWarning => '這將會刪除所有單集及其檔案。'; + @override String get mediaDeletedSuccessfully => '媒體已成功刪除'; + @override String get mediaFailedToDelete => '刪除媒體失敗'; + @override String get rate => '評分'; + @override String get playFromBeginning => '從頭播放'; + @override String get playVersion => '播放版本…'; +} + +// Path: rateSheet +class _Translations$rateSheet$zh_Hant extends Translations$rateSheet$zh { + _Translations$rateSheet$zh_Hant._(TranslationsZhHant root) : this._root = root, super.internal(root); + + final TranslationsZhHant _root; // ignore: unused_field + + // Translations + @override String get title => '評分'; + @override String get server => '伺服器'; + @override String get favorite => '最愛'; + @override String get favorited => '已加入最愛'; + @override String get saved => '已儲存'; + @override String get notAvailable => '找不到相符項目'; + @override String get noConnectedServices => '在設定中連結外部服務後,即可在此評分。'; +} + +// Path: accessibility +class _Translations$accessibility$zh_Hant extends Translations$accessibility$zh { + _Translations$accessibility$zh_Hant._(TranslationsZhHant root) : this._root = root, super.internal(root); + + final TranslationsZhHant _root; // ignore: unused_field + + // Translations + @override String mediaCardMovie({required Object title}) => '${title}, 電影'; + @override String mediaCardShow({required Object title}) => '${title}, 影集'; + @override String mediaCardEpisode({required Object title, required Object episodeInfo}) => '${title}, ${episodeInfo}'; + @override String mediaCardSeason({required Object title, required Object seasonInfo}) => '${title}, ${seasonInfo}'; + @override String get mediaCardWatched => '已觀看'; + @override String mediaCardPartiallyWatched({required Object percent}) => '已觀看 ${percent}%'; + @override String get mediaCardUnwatched => '未觀看'; + @override String get tapToPlay => '輕觸即可播放'; + @override String get decrease => '減小'; + @override String get increase => '增大'; + @override String decreaseValue({required Object label}) => '減小 ${label}'; + @override String increaseValue({required Object label}) => '增大 ${label}'; + @override String get hue => '色相'; + @override String get saturation => '飽和度'; + @override String get brightness => '亮度'; + @override String get hexColor => 'Hex 顏色值'; + @override String get expandText => '展開文字'; + @override String get collapseText => '收合文字'; + @override String get alphabetNavigation => '字母導覽'; + @override String get alphabetScrollHint => '向上或向下滑動以按字母移動'; + @override String rowColumnPosition({required Object row, required Object rowCount, required Object column, required Object columnCount}) => '第 ${row} 列,共 ${rowCount} 列;第 ${column} 欄,共 ${columnCount} 欄'; + @override String rowPosition({required Object row, required Object rowCount}) => '第 ${row} 列,共 ${rowCount} 列'; +} + +// Path: tooltips +class _Translations$tooltips$zh_Hant extends Translations$tooltips$zh { + _Translations$tooltips$zh_Hant._(TranslationsZhHant root) : this._root = root, super.internal(root); + + final TranslationsZhHant _root; // ignore: unused_field + + // Translations + @override String get shufflePlay => '隨機播放'; + @override String get playTrailer => '播放預告片'; + @override String get markAsWatched => '標記為已觀看'; + @override String get markAsUnwatched => '標記為未觀看'; +} + +// Path: audioTracks +class _Translations$audioTracks$zh_Hant extends Translations$audioTracks$zh { + _Translations$audioTracks$zh_Hant._(TranslationsZhHant root) : this._root = root, super.internal(root); + + final TranslationsZhHant _root; // ignore: unused_field + + // Translations + @override String track({required Object n}) => '音軌 ${n}'; +} + +// Path: videoControls +class _Translations$videoControls$zh_Hant extends Translations$videoControls$zh { + _Translations$videoControls$zh_Hant._(TranslationsZhHant root) : this._root = root, super.internal(root); + + final TranslationsZhHant _root; // ignore: unused_field + + // Translations + @override String get audioLabel => '音訊'; + @override String get subtitlesLabel => '字幕'; + @override String get resetToZero => '重設為 0 ms'; + @override String addTime({required Object amount, required Object unit}) => '+${amount} ${unit}'; + @override String minusTime({required Object amount, required Object unit}) => '-${amount} ${unit}'; + @override String playsLater({required Object label}) => '${label} 延後播放'; + @override String playsEarlier({required Object label}) => '${label} 提前播放'; + @override String get noOffset => '無偏移'; + @override String get letterbox => '信箱模式(Letterbox)'; + @override String get fillScreen => '填滿螢幕'; + @override String get stretch => '拉伸'; + @override String get lockRotation => '鎖定旋轉'; + @override String get unlockRotation => '解除鎖定旋轉'; + @override String get timerActive => '計時器已啟動'; + @override String playbackWillPauseIn({required Object duration}) => '播放將在 ${duration} 後暫停'; + @override String get sleepTimerEndOfVideo => '目前影片結束時'; + @override String get sleepTimerStopAtHeader => '停止於'; + @override String get sleepTimerDurationHeader => '計時器'; + @override String get playbackWillPauseAtEnd => '播放將在此影片結束時暫停'; + @override String get stillWatching => '您還在觀看嗎?'; + @override String pausingIn({required Object seconds}) => '${seconds} 秒後暫停'; + @override String get continueWatching => '繼續播放'; + @override String get autoPlayNext => '自動播放下一集'; + @override String get playNext => '播放下一集'; + @override String get playButton => '播放'; + @override String get pauseButton => '暫停'; + @override String get showPlaybackControls => '顯示播放控制項'; + @override String get hidePlaybackControls => '隱藏播放控制項'; + @override String seekBackwardButton({required Object seconds}) => '後退 ${seconds} 秒'; + @override String seekForwardButton({required Object seconds}) => '前進 ${seconds} 秒'; + @override String get previousButton => '上一集'; + @override String get nextButton => '下一集'; + @override String get previousChapterButton => '上一個章節'; + @override String get nextChapterButton => '下一個章節'; + @override String get muteButton => '靜音'; + @override String get unmuteButton => '取消靜音'; + @override String get settingsButton => '播放設定'; + @override String get tracksButton => '音訊與字幕'; + @override String get chaptersButton => '章節'; + @override String get versionQualityButton => '版本與畫質'; + @override String get versionColumnHeader => '版本'; + @override String get qualityColumnHeader => '畫質'; + @override String get qualityOriginal => '原始畫質'; + @override String qualityPresetLabel({required Object resolution, required Object bitrate}) => '${resolution}p ${bitrate} Mbps'; + @override String get transcodeUnavailableFallback => '無法使用轉碼 — 將以原始畫質播放'; + @override String get subtitleUnavailableFallback => '無法載入所選字幕 — 將繼續無字幕播放'; + @override String get pipButton => '子母畫面模式'; + @override String get aspectRatioButton => '寬高比'; + @override String get ambientLighting => '氛圍燈光'; + @override String get fullscreenButton => '進入全螢幕'; + @override String get exitFullscreenButton => '退出全螢幕'; + @override String get alwaysOnTopButton => '視窗置頂'; + @override String get rotationLockButton => '旋轉鎖定'; + @override String get lockScreen => '鎖定螢幕'; + @override String get screenLockButton => '螢幕鎖定'; + @override String get longPressToUnlock => '長按解鎖'; + @override String get timelineSlider => '影片時間軸'; + @override String get volumeSlider => '音量調整'; + @override String endsAt({required Object time}) => '預計 ${time} 結束'; + @override String get pipActive => '正在以子母畫面模式播放'; + @override String get pipFailed => '啟動子母畫面失敗'; + @override String get screenshotSaved => '螢幕截圖已儲存'; + @override String zoomPercent({required Object percent}) => '縮放 ${percent}%'; + @override late final _Translations$videoControls$pipErrors$zh_Hant pipErrors = _Translations$videoControls$pipErrors$zh_Hant._(_root); + @override String get chapters => '章節'; + @override String get noChaptersAvailable => '沒有可用的章節'; + @override String get queue => '播放佇列'; + @override String get noQueueItems => '佇列中沒有項目'; + @override String get searchSubtitles => '搜尋字幕'; + @override String get language => '語言'; + @override String get noSubtitlesFound => '找不到字幕'; + @override String get noSubtitlesAvailable => '沒有可用的字幕'; + @override String get noAudioTracksAvailable => '沒有可用的音軌'; + @override String get noTracksAvailable => '沒有可用的音訊或字幕'; + @override String get subtitleDownloaded => '字幕下載成功'; + @override String get subtitleDownloadedNotApplied => '字幕已下載,但無法套用'; + @override String get subtitleDownloadFailed => '字幕下載失敗'; + @override String get searchLanguages => '搜尋語言…'; +} + +// Path: messages +class _Translations$messages$zh_Hant extends Translations$messages$zh { + _Translations$messages$zh_Hant._(TranslationsZhHant root) : this._root = root, super.internal(root); + + final TranslationsZhHant _root; // ignore: unused_field + + // Translations + @override String get markedAsWatched => '已標記為已觀看'; + @override String get markedAsUnwatched => '已標記為未觀看'; + @override String get markedAsWatchedOffline => '已標記為已觀看(將在連線時同步)'; + @override String get markedAsUnwatchedOffline => '已標記為未觀看(將在連線時同步)'; + @override String autoRemovedWatchedDownload({required Object title}) => '已自動移除:${title}'; + @override String autoRemovedWatchedDownloads({required num n}) => (_root.$meta.cardinalResolver ?? PluralResolvers.cardinal('zh'))(n, + other: '已自動移除 ${n} 個已觀看的下載內容', + ); + @override String get removedFromContinueWatching => '已從「繼續觀看」中移除'; + @override String errorLoading({required Object error}) => '錯誤:${error}'; + @override String get streamInterrupted => '影片串流中斷。請按播放鍵或拖動進度條重試。'; + @override String get liveStreamInterrupted => '直播串流中斷。請按播放鍵重試。'; + @override String get fileInfoNotAvailable => '無法取得檔案資訊'; + @override String get playbackAuthenticationRequired => '若要播放此項目,請重新登入媒體伺服器。'; + @override String get playbackServerUnavailable => '媒體伺服器目前無法使用。請稍後再試。'; + @override String get playbackDataInvalid => '伺服器傳回的播放資訊無效。'; + @override String get playbackCancelled => '播放已取消。'; + @override String get playbackFailed => '無法開始播放。'; + @override String errorLoadingFileInfo({required Object error}) => '載入檔案資訊時發生錯誤:${error}'; + @override String get errorLoadingSeries => '載入影集時發生錯誤'; + @override String get musicNotSupported => '目前不支援播放音樂'; + @override String get noDescriptionAvailable => '目前沒有描述'; + @override String get noProfilesAvailable => '沒有可用的使用者設定檔'; + @override String get contactAdminForProfiles => '請聯絡伺服器管理員新增使用者設定檔'; + @override String get unableToDetermineLibrarySection => '無法確定此項目的媒體庫分區'; + @override String get logsCleared => '日誌已清除'; + @override String get logsCopied => '日誌已複製到剪貼簿'; + @override String get noLogsAvailable => '沒有可用的日誌'; + @override String libraryScanning({required Object title}) => '正在掃描「${title}」…'; + @override String libraryScanStarted({required Object title}) => '已開始掃描「${title}」媒體庫'; + @override String libraryScanFailed({required Object error}) => '無法掃描媒體庫:${error}'; + @override String metadataRefreshing({required Object title}) => '正在重新整理「${title}」的中繼資料…'; + @override String metadataRefreshStarted({required Object title}) => '已開始重新整理「${title}」的中繼資料'; + @override String metadataRefreshFailed({required Object error}) => '無法重新整理中繼資料:${error}'; + @override String get logoutConfirm => '您確定要登出嗎?'; + @override String get noSeasonsFound => '找不到季數'; + @override String get seasonsLoadFailed => '無法載入季數'; + @override String get noEpisodesFound => '在第一季中找不到單集'; + @override String get noEpisodesFoundGeneral => '找不到單集'; + @override String get episodesLoadFailed => '無法載入單集'; + @override String get noResultsFound => '找不到結果'; + @override String sleepTimerSet({required Object label}) => '睡眠計時器已設定為 ${label}'; + @override String get noItemsAvailable => '沒有可用的項目'; + @override String get failedToCreatePlayQueueNoItems => '無法建立播放佇列 — 沒有項目'; + @override String failedPlayback({required Object action, required Object error}) => '無法${action}:${error}'; + @override String get switchingToCompatiblePlayer => '正在切換至相容的播放器…'; + @override String get serverLimitTitle => '播放失敗'; + @override String get serverLimitBody => '伺服器錯誤(HTTP 500)。伺服器的頻寬或轉碼限制可能拒絕此播放要求。請聯絡伺服器擁有者調整設定。'; + @override String get logsUploaded => '日誌已上傳'; + @override String get logsUploadFailed => '上傳日誌失敗'; + @override String get logId => '日誌 ID'; +} + +// Path: subtitlingStyling +class _Translations$subtitlingStyling$zh_Hant extends Translations$subtitlingStyling$zh { + _Translations$subtitlingStyling$zh_Hant._(TranslationsZhHant root) : this._root = root, super.internal(root); + + final TranslationsZhHant _root; // ignore: unused_field + + // Translations + @override String get text => '文字'; + @override String get border => '邊框'; + @override String get background => '背景'; + @override String get fontSize => '字型大小'; + @override String get textColor => '文字顏色'; + @override String get borderSize => '邊框大小'; + @override String get borderColor => '邊框顏色'; + @override String get backgroundOpacity => '背景不透明度'; + @override String get backgroundColor => '背景顏色'; + @override String get position => '位置'; + @override String get assOverride => '覆蓋 ASS 樣式'; + @override String get overrideScale => '縮放'; + @override String get overrideForce => '強制套用'; + @override String get overrideStrip => '移除樣式'; + @override String get positionTop => '頂部'; + @override String get positionBottom => '底部'; + @override String get bold => '粗體'; + @override String get italic => '斜體'; + @override String get renderResolution => '渲染解析度'; + @override String get renderResolutionScreen => '螢幕解析度'; + @override String get renderResolutionVideo => '影片解析度'; +} + +// Path: mpvConfig +class _Translations$mpvConfig$zh_Hant extends Translations$mpvConfig$zh { + _Translations$mpvConfig$zh_Hant._(TranslationsZhHant root) : this._root = root, super.internal(root); + + final TranslationsZhHant _root; // ignore: unused_field + + // Translations + @override String get title => 'mpv 設定'; + @override String get description => '進階影片播放器設定'; + @override String get presets => '預設組'; + @override String get noPresets => '沒有儲存的預設組'; + @override String get saveAsPreset => '儲存為預設組…'; + @override String get presetName => '預設組名稱'; + @override String get presetNameHint => '輸入此預設組的名稱'; + @override String get loadPreset => '載入'; + @override String get deletePreset => '刪除'; + @override String get presetSaved => '預設組已儲存'; + @override String get presetLoaded => '預設組已載入'; + @override String get presetDeleted => '預設組已刪除'; + @override String get confirmDeletePreset => '確定要刪除此預設組嗎?'; + @override String get configPlaceholder => 'gpu-api=vulkan\nhwdec=auto\n# 註解'; +} + +// Path: dialog +class _Translations$dialog$zh_Hant extends Translations$dialog$zh { + _Translations$dialog$zh_Hant._(TranslationsZhHant root) : this._root = root, super.internal(root); + + final TranslationsZhHant _root; // ignore: unused_field + + // Translations + @override String get confirmAction => '確認操作'; +} + +// Path: profiles +class _Translations$profiles$zh_Hant extends Translations$profiles$zh { + _Translations$profiles$zh_Hant._(TranslationsZhHant root) : this._root = root, super.internal(root); + + final TranslationsZhHant _root; // ignore: unused_field + + // Translations + @override String get addPlezyProfile => '新增 Plezy 使用者設定檔'; + @override String get switchingProfile => '正在切換使用者設定檔…'; + @override String get deleteThisProfileTitle => '刪除此使用者設定檔?'; + @override String deleteThisProfileMessage({required Object displayName}) => '將移除 ${displayName}。連線資訊將不受影響。'; + @override String get active => '使用中'; + @override String get manage => '管理'; + @override String get delete => '刪除'; + @override String get signOut => '登出'; + @override String get signOutPlexTitle => '登出 Plex?'; + @override String signOutPlexMessage({required Object displayName}) => '確定要移除 ${displayName} 與所有 Plex Home 使用者嗎?您可以隨時重新登入。'; + @override String get signedOutPlex => '已登出 Plex。'; + @override String get signOutFailed => '登出失敗。'; + @override String get sectionTitle => '使用者設定檔'; + @override String get summarySingle => '新增使用者設定檔,以同時管理託管使用者與本地身分'; + @override String summaryMultipleWithActive({required Object count, required Object activeName}) => '${count} 個設定檔 · 使用中:${activeName}'; + @override String summaryMultiple({required Object count}) => '${count} 個設定檔'; + @override String get removeConnectionTitle => '移除連線?'; + @override String removeConnectionMessage({required Object displayName, required Object connectionLabel}) => '將移除 ${displayName} 對 ${connectionLabel} 的存取權限。其他使用者設定檔仍可使用此連線。'; + @override String get deleteProfileTitle => '刪除使用者設定檔?'; + @override String deleteProfileMessage({required Object displayName}) => '將移除 ${displayName} 及其連線資訊。伺服器仍維持可用狀態。'; + @override String get profileNameLabel => '使用者設定檔名稱'; + @override String get pinProtectionLabel => 'PIN 碼保護'; + @override String get pinManagedByPlex => 'PIN 碼由 Plex 管理。請至 plex.tv 進行編輯。'; + @override String get noPinSetEditOnPlex => '未設定 PIN 碼。如需啟用 PIN 碼限制,請在 plex.tv 編輯 Home 使用者設定。'; + @override String get setPin => '設定 PIN 碼'; + @override String get setPinTitle => '設定 PIN 碼'; + @override String get confirmPinTitle => '確認 PIN 碼'; + @override String get pinSet => 'PIN 碼已設定'; + @override String get changePin => '變更'; + @override String get removePin => '移除'; + @override String get connectionsLabel => '連線'; + @override String get add => '新增'; + @override String get deleteProfileButton => '刪除使用者設定檔'; + @override String get noConnectionsHint => '無連線 — 請新增一個連線以啟用此設定檔。'; + @override String get noConnections => '無連線資訊'; + @override String get plexHomeAccount => 'Plex Home 帳戶'; + @override String get connectionDefault => '預設'; + @override String connectionAs({required Object displayName}) => '以 ${displayName} 身分'; + @override String get makeDefault => '設為預設值'; + @override String get removeConnection => '移除'; + @override String get profileRenamed => '使用者設定檔已重新命名。'; + @override String borrowAddTo({required Object displayName}) => '新增至 ${displayName}'; + @override String get borrowExplain => '共用另一個使用者設定檔的連線資訊。受 PIN 碼保護的設定檔需輸入 PIN 碼。'; + @override String get borrowEmpty => '目前沒有可共用的連線。'; + @override String get borrowEmptySubtitle => '請先將 Plex 或 Jellyfin 連線至另一個使用者設定檔。'; + @override String get borrowLoadFailed => '無法載入可用的連線。請重試。'; + @override String borrowFromProfile({required Object displayName}) => '來自 ${displayName}'; + @override String get borrowConnectionBorrowed => '已共用連線。'; + @override String get borrowFailed => '無法共用連線。'; + @override String get incorrectPin => 'PIN 碼不正確。'; + @override String get incorrectPinTryAgain => 'PIN 碼不正確。請重試。'; + @override String get sourceProfileMissingParentAccount => '來源使用者設定檔缺少其父帳戶資訊。'; + @override String get failedToLoadHomeUsers => '無法載入您的 Plex Home 使用者。請檢查網路連線後重試。'; + @override String get failedToVerifyPin => '無法驗證 PIN 碼。'; + @override String get newProfile => '建立使用者設定檔'; + @override String get profileNameHint => '例如:訪客、兒童、客廳'; + @override String get pinProtectionOptional => 'PIN 碼保護(選填)'; + @override String get pinExplain => '切換至此使用者設定檔時需要 4 位數 PIN 碼。'; + @override String get continueButton => '繼續'; + @override String get pinsDontMatch => 'PIN 碼不符合'; +} + +// Path: connections +class _Translations$connections$zh_Hant extends Translations$connections$zh { + _Translations$connections$zh_Hant._(TranslationsZhHant root) : this._root = root, super.internal(root); + + final TranslationsZhHant _root; // ignore: unused_field + + // Translations + @override String get sectionTitle => '連線'; + @override String get addConnection => '新增連線'; + @override String get addConnectionSubtitleNoProfile => '使用 Plex 登入或連線至 Jellyfin 伺服器'; + @override String addConnectionSubtitleScoped({required Object displayName}) => '新增至 ${displayName}:Plex、Jellyfin 或其他設定檔連線'; + @override String sessionExpiredOne({required Object name}) => '${name} 的工作階段已過期'; + @override String sessionExpiredMany({required Object count}) => '${count} 個伺服器的工作階段已過期'; + @override String get signInAgain => '重新登入'; + @override String get editJellyfinTitle => '編輯 Jellyfin 連線'; + @override String editJellyfinIntro({required Object serverName}) => '新增或移除 ${serverName} 的 URL。Plezy 會自動選擇可連線且延遲最低的網址。'; +} + +// Path: discover +class _Translations$discover$zh_Hant extends Translations$discover$zh { + _Translations$discover$zh_Hant._(TranslationsZhHant root) : this._root = root, super.internal(root); + + final TranslationsZhHant _root; // ignore: unused_field + + // Translations + @override String get title => '發現'; + @override String get noContentAvailable => '沒有可用內容'; + @override String get addMediaToLibraries => '請向您的媒體庫新增一些媒體內容'; + @override String get continueWatching => '繼續觀看'; + @override String continueWatchingIn({required Object library}) => '繼續在 ${library} 觀看'; + @override String get nextUp => '接下來播放'; + @override String nextUpIn({required Object library}) => '接下來在 ${library} 播放'; + @override String get recentlyAdded => '最近新增'; + @override String recentlyAddedIn({required Object library}) => '最近新增至 ${library}'; + @override String latestAlbumsIn({required Object library}) => '${library} 中的最新專輯'; + @override String recentlyPlayedIn({required Object library}) => '最近在 ${library} 播放'; + @override String mostPlayedIn({required Object library}) => '在 ${library} 最常播放'; + @override String playEpisode({required Object season, required Object episode}) => '第 ${season} 季 第 ${episode} 集'; + @override String get overview => '概述'; + @override String get cast => '演員陣容'; + @override String get extras => '預告片與花絮'; + @override String get studio => '製作商'; + @override String get rating => '分級'; + @override String get movie => '電影'; + @override String get tvShow => '影集'; + @override String minutesLeft({required Object minutes}) => '剩餘 ${minutes} 分鐘'; + @override String get moreLikeThis => '更多類似內容'; +} + +// Path: errors +class _Translations$errors$zh_Hant extends Translations$errors$zh { + _Translations$errors$zh_Hant._(TranslationsZhHant root) : this._root = root, super.internal(root); + + final TranslationsZhHant _root; // ignore: unused_field + + // Translations + @override String searchFailed({required Object error}) => '搜尋失敗:${error}'; + @override String connectionTimeout({required Object context}) => '載入 ${context} 時連線逾時'; + @override String get connectionFailed => '無法連線至媒體伺服器'; + @override String unableToLoad({required Object context}) => '無法載入 ${context}。請重試。'; + @override String get noClientAvailable => '沒有可用用戶端'; + @override String get pleaseEnterToken => '請輸入 Token'; + @override String get invalidToken => 'Token 無效'; + @override String failedToVerifyToken({required Object error}) => '無法驗證 Token:${error}'; + @override String failedToSwitchProfile({required Object displayName}) => '無法切換至 ${displayName}'; + @override String failedToDeleteProfile({required Object displayName}) => '無法刪除 ${displayName}'; + @override String get failedToRate => '無法更新評分'; +} + +// Path: libraries +class _Translations$libraries$zh_Hant extends Translations$libraries$zh { + _Translations$libraries$zh_Hant._(TranslationsZhHant root) : this._root = root, super.internal(root); + + final TranslationsZhHant _root; // ignore: unused_field + + // Translations + @override String get title => '媒體庫'; + @override String get fallbackTitle => '媒體庫'; + @override String get scanLibraryFiles => '掃描媒體庫檔案'; + @override String get scanLibrary => '掃描媒體庫'; + @override String get analyze => '分析'; + @override String get analyzeLibrary => '分析媒體庫'; + @override String get refreshMetadata => '重新整理中繼資料'; + @override String get emptyTrash => '清空垃圾桶'; + @override String emptyingTrash({required Object title}) => '正在清空「${title}」的垃圾桶…'; + @override String trashEmptied({required Object title}) => '已清空「${title}」的垃圾桶'; + @override String failedToEmptyTrash({required Object error}) => '無法清空垃圾桶:${error}'; + @override String analyzing({required Object title}) => '正在分析「${title}」…'; + @override String analysisStarted({required Object title}) => '已開始分析「${title}」'; + @override String failedToAnalyze({required Object error}) => '無法分析媒體庫:${error}'; + @override String get noLibrariesFound => '找不到媒體庫'; + @override String get allLibrariesHidden => '所有媒體庫都已隱藏'; + @override String hiddenLibrariesCount({required Object count}) => '已隱藏的媒體庫(${count})'; + @override String get thisLibraryIsEmpty => '此媒體庫為空'; + @override String get noItemsMatchFilters => '沒有符合目前篩選條件的項目'; + @override String get resetFilters => '重設篩選條件'; + @override String get all => '全部'; + @override String get clearAll => '全部清除'; + @override String scanLibraryConfirm({required Object title}) => '確定要掃描「${title}」嗎?'; + @override String analyzeLibraryConfirm({required Object title}) => '確定要分析「${title}」嗎?'; + @override String refreshMetadataConfirm({required Object title}) => '確定要重新整理「${title}」的中繼資料嗎?'; + @override String emptyTrashConfirm({required Object title}) => '確定要清空「${title}」的垃圾桶嗎?'; + @override String get manageLibraries => '管理媒體庫'; + @override String get sort => '排序'; + @override String get sortBy => '排序依據'; + @override String get filters => '篩選器'; + @override String get confirmActionMessage => '確定要執行此操作嗎?'; + @override String get showLibrary => '顯示媒體庫'; + @override String get hideLibrary => '隱藏媒體庫'; + @override String get libraryOptions => '媒體庫選項'; + @override String get content => '媒體庫內容'; + @override String get selectLibrary => '選擇媒體庫'; + @override String filtersWithCount({required Object count}) => '篩選器(${count})'; + @override String get noRecommendations => '目前沒有推薦'; + @override String get noCollections => '此媒體庫中沒有收藏集'; + @override String get noFoldersFound => '找不到資料夾'; + @override String get folders => '資料夾'; + @override late final _Translations$libraries$tabs$zh_Hant tabs = _Translations$libraries$tabs$zh_Hant._(_root); + @override late final _Translations$libraries$groupings$zh_Hant groupings = _Translations$libraries$groupings$zh_Hant._(_root); + @override late final _Translations$libraries$filterCategories$zh_Hant filterCategories = _Translations$libraries$filterCategories$zh_Hant._(_root); + @override late final _Translations$libraries$sortLabels$zh_Hant sortLabels = _Translations$libraries$sortLabels$zh_Hant._(_root); +} + +// Path: about +class _Translations$about$zh_Hant extends Translations$about$zh { + _Translations$about$zh_Hant._(TranslationsZhHant root) : this._root = root, super.internal(root); + + final TranslationsZhHant _root; // ignore: unused_field + + // Translations + @override String get title => '關於'; + @override String get openSourceLicenses => '開源授權條款'; + @override String versionLabel({required Object version}) => '版本 ${version}'; + @override String get appDescription => '一款精美的 Plex 與 Jellyfin Flutter 用戶端'; + @override String get viewLicensesDescription => '查看第三方套件的授權條款'; +} + +// Path: serverSelection +class _Translations$serverSelection$zh_Hant extends Translations$serverSelection$zh { + _Translations$serverSelection$zh_Hant._(TranslationsZhHant root) : this._root = root, super.internal(root); + + final TranslationsZhHant _root; // ignore: unused_field + + // Translations + @override String noServersFoundForAccount({required Object username, required Object email}) => '找不到 ${username}(${email}) 的伺服器'; + @override String failedToLoadServers({required Object error}) => '無法載入伺服器:${error}'; +} + +// Path: hubDetail +class _Translations$hubDetail$zh_Hant extends Translations$hubDetail$zh { + _Translations$hubDetail$zh_Hant._(TranslationsZhHant root) : this._root = root, super.internal(root); + + final TranslationsZhHant _root; // ignore: unused_field + + // Translations + @override String get title => '標題'; + @override String get releaseYear => '發行年份'; + @override String get dateAdded => '新增日期'; + @override String get rating => '評分'; + @override String get noItemsFound => '找不到項目'; +} + +// Path: logs +class _Translations$logs$zh_Hant extends Translations$logs$zh { + _Translations$logs$zh_Hant._(TranslationsZhHant root) : this._root = root, super.internal(root); + + final TranslationsZhHant _root; // ignore: unused_field + + // Translations + @override String get clearLogs => '清除日誌'; + @override String get copyLogs => '複製日誌'; + @override String get uploadLogs => '上傳日誌'; +} + +// Path: licenses +class _Translations$licenses$zh_Hant extends Translations$licenses$zh { + _Translations$licenses$zh_Hant._(TranslationsZhHant root) : this._root = root, super.internal(root); + + final TranslationsZhHant _root; // ignore: unused_field + + // Translations + @override String get relatedPackages => '相關套件'; + @override String get license => '授權'; + @override String licenseNumber({required Object number}) => '授權條款 ${number}'; + @override String licensesCount({required Object count}) => '${count} 個授權條款'; +} + +// Path: navigation +class _Translations$navigation$zh_Hant extends Translations$navigation$zh { + _Translations$navigation$zh_Hant._(TranslationsZhHant root) : this._root = root, super.internal(root); + + final TranslationsZhHant _root; // ignore: unused_field + + // Translations + @override String get libraries => '媒體庫'; + @override String get downloads => '下載'; + @override String get liveTv => '直播電視'; + @override String get explore => '探索'; +} + +// Path: explore +class _Translations$explore$zh_Hant extends Translations$explore$zh { + _Translations$explore$zh_Hant._(TranslationsZhHant root) : this._root = root, super.internal(root); + + final TranslationsZhHant _root; // ignore: unused_field + + // Translations + @override String get title => '探索'; + @override String get selectSource => '選擇來源'; + @override late final _Translations$explore$rows$zh_Hant rows = _Translations$explore$rows$zh_Hant._(_root); + @override late final _Translations$explore$status$zh_Hant status = _Translations$explore$status$zh_Hant._(_root); + @override String episodeCount({required num n}) => (_root.$meta.cardinalResolver ?? PluralResolvers.cardinal('zh'))(n, + other: '${n} 集', + ); + @override String get cast => '演員陣容'; + @override String get characters => '角色'; + @override String get addToWatchlist => '新增至待看清單'; + @override String get removeFromWatchlist => '從待看清單移除'; + @override String get watchlistUpdateFailed => '無法更新待看清單'; + @override String get notInLibrary => '不在您的媒體庫中'; + @override String get inTheseLibraries => '在這些媒體庫中'; + @override String get checkingLibrary => '正在檢查您的媒體庫…'; + @override String get emptyTitle => '這裡還沒有任何內容'; + @override String emptyMessage({required Object source}) => '當 ${source} 有內容時,相關資訊將顯示在此處。'; + @override String searchHint({required Object source}) => '搜尋 ${source}'; + @override String searchEmpty({required Object query}) => '沒有「${query}」的結果'; + @override String searchPrompt({required Object source}) => '在 ${source} 搜尋電影與影集。'; + @override String get searchFailed => '搜尋失敗。請檢查網路連線後重試。'; +} + +// Path: liveTv +class _Translations$liveTv$zh_Hant extends Translations$liveTv$zh { + _Translations$liveTv$zh_Hant._(TranslationsZhHant root) : this._root = root, super.internal(root); + + final TranslationsZhHant _root; // ignore: unused_field + + // Translations + @override String get title => '直播電視'; + @override String get guide => '節目表指南'; + @override String get noChannels => '沒有可用的頻道'; + @override String get noDvr => '沒有伺服器設定 DVR 錄影機'; + @override String get serverUnavailable => '直播電視伺服器無法使用。'; + @override String get serverNotConnected => '直播電視伺服器未連線。'; + @override String get noPrograms => '沒有可用的節目資料'; + @override String get liveStreamFailed => '即時串流失敗'; + @override String get unknownProgram => '未知節目'; + @override String get unknownHub => '未知'; + @override String get unknownError => '未知錯誤'; + @override String channelNumber({required Object number}) => '頻道 ${number}'; + @override String get unknownChannel => '未知頻道'; + @override String get live => '直播'; + @override String get reloadGuide => '重新載入節目表指南'; + @override String get now => '現在'; + @override String get today => '今天'; + @override String get tomorrow => '明天'; + @override String get midnight => '午夜'; + @override String get overnight => '凌晨'; + @override String get morning => '上午'; + @override String get daytime => '白天'; + @override String get evening => '晚上'; + @override String get lateNight => '深夜'; + @override String get whatsOn => '正在播出'; + @override String get watchChannel => '觀看頻道'; + @override String get favorites => '最愛'; + @override String get reorderFavorites => '重新排序最愛頻道'; + @override String get favoritesLoadFailed => '無法載入最愛頻道。請檢查網路連線後重試。'; + @override String get favoritesUpdateFailed => '無法更新最愛頻道。請檢查網路連線後重試。'; + @override String get joinSession => '加入進行中的「一起看」'; + @override String watchFromStart({required Object minutes}) => '從頭觀看(自 ${minutes} 分鐘前開始)'; + @override String get watchLive => '觀看直播'; + @override String get goToLive => '跳至直播點'; + @override String get record => '錄製'; + @override String get recordEpisode => '錄製單集'; + @override String get recordSeries => '錄製整部影集'; + @override String get recordOptions => '錄製選項'; + @override String get saveTo => '儲存至'; + @override String get recordings => '已錄製內容'; + @override String get scheduledRecordings => '已排程錄製'; + @override String get recordingRules => '錄製規則'; + @override String get noScheduledRecordings => '沒有排程的錄製任務'; + @override String get manageRecording => '管理錄製'; + @override String get cancelRecording => '取消錄製'; + @override String get cancelRecordingTitle => '取消此次錄製?'; + @override String cancelRecordingMessage({required Object title}) => '將不再錄製 ${title}。'; + @override String get deleteRule => '刪除規則'; + @override String get deleteRuleTitle => '刪除錄製規則?'; + @override String deleteRuleMessage({required Object title}) => '將不再錄製 ${title} 的後續單集。'; + @override String get recordingScheduled => '錄製已排程'; + @override String get alreadyScheduled => '此節目已安排排程錄製'; + @override String get dvrAdminRequired => 'DVR 設定需要管理員帳戶'; + @override String get recordingFailed => '無法安排錄製任務'; + @override String get recordingTargetMissing => '無法確定錄製媒體庫'; + @override String get recordNotAvailable => '此節目無法錄製'; + @override String get recordingCancelled => '錄製已取消'; + @override String get recordingRuleDeleted => '錄製規則已刪除'; + @override String get processRecordingRules => '重新評估規則'; + @override String get recordingInProgress => '正在錄製'; + @override String recordingsCount({required Object count}) => '已排程 ${count} 個'; + @override String get editRule => '編輯規則'; + @override String get editRuleAction => '編輯'; + @override String get recordingRuleUpdated => '錄製規則已更新'; + @override String get guideReloadRequested => '已要求更新節目表指南'; + @override String get rulesProcessRequested => '已要求重新評估規則'; + @override String get recordShow => '錄製節目'; +} + +// Path: collections +class _Translations$collections$zh_Hant extends Translations$collections$zh { + _Translations$collections$zh_Hant._(TranslationsZhHant root) : this._root = root, super.internal(root); + + final TranslationsZhHant _root; // ignore: unused_field + + // Translations + @override String get title => '收藏集'; + @override String get collection => '收藏集'; + @override String get empty => '收藏集為空'; + @override String get deleteCollection => '刪除收藏集'; + @override String deleteConfirm({required Object title}) => '確定要刪除「${title}」嗎?此操作無法復原。'; + @override String get deleted => '已刪除收藏集'; + @override String get deleteFailed => '刪除收藏集失敗'; + @override String deleteFailedWithError({required Object error}) => '刪除收藏集失敗:${error}'; + @override String get selectCollection => '選擇收藏集'; + @override String get collectionName => '收藏集名稱'; + @override String get enterCollectionName => '輸入收藏集名稱'; + @override String get addedToCollection => '已新增至收藏集'; + @override String get errorAddingToCollection => '新增至收藏集失敗'; + @override String get created => '已建立收藏集'; + @override String get removeFromCollection => '從收藏集移除'; + @override String removeFromCollectionConfirm({required Object title}) => '將「${title}」從此收藏集移除?'; + @override String get removedFromCollection => '已從收藏集移除'; + @override String get removeFromCollectionFailed => '從收藏集移除失敗'; + @override String removeFromCollectionError({required Object error}) => '從收藏集移除時發生錯誤:${error}'; + @override String get searchCollections => '搜尋收藏集…'; +} + +// Path: playlists +class _Translations$playlists$zh_Hant extends Translations$playlists$zh { + _Translations$playlists$zh_Hant._(TranslationsZhHant root) : this._root = root, super.internal(root); + + final TranslationsZhHant _root; // ignore: unused_field + + // Translations + @override String get title => '播放清單'; + @override String get playlist => '播放清單'; + @override String get noPlaylists => '找不到播放清單'; + @override String get create => '建立播放清單'; + @override String get playlistName => '播放清單名稱'; + @override String get enterPlaylistName => '輸入播放清單名稱'; + @override String get delete => '刪除播放清單'; + @override String get removeItem => '從播放清單中移除'; + @override String get smartPlaylist => '智慧播放清單'; + @override String itemCount({required Object count}) => '${count} 個項目'; + @override String get oneItem => '1 個項目'; + @override String get emptyPlaylist => '此播放清單為空'; + @override String get deleteConfirm => '刪除播放清單?'; + @override String deleteMessage({required Object name}) => '確定要刪除「${name}」嗎?'; + @override String get created => '播放清單已建立'; + @override String get deleted => '播放清單已刪除'; + @override String get itemAdded => '已新增至播放清單'; + @override String get itemRemoved => '已從播放清單移除'; + @override String get selectPlaylist => '選擇播放清單'; + @override String get searchPlaylists => '搜尋播放清單…'; + @override String get errorCreating => '建立播放清單失敗'; + @override String get errorDeleting => '刪除播放清單失敗'; + @override String get errorLoading => '載入播放清單失敗'; + @override String get errorAdding => '新增至播放清單失敗'; + @override String get errorReordering => '重新排序播放清單項目失敗'; + @override String get errorRemoving => '從播放清單移除失敗'; +} + +// Path: music +class _Translations$music$zh_Hant extends Translations$music$zh { + _Translations$music$zh_Hant._(TranslationsZhHant root) : this._root = root, super.internal(root); + + final TranslationsZhHant _root; // ignore: unused_field + + // Translations + @override String get goToAlbum => '前往專輯'; + @override String get goToArtist => '前往演出者'; + @override String get instantMix => '即時混音'; + @override String get playNext => '下一首播放'; + @override String get addToQueue => '新增至佇列'; + @override String discNumber({required Object n}) => 'CD ${n}'; + @override String trackCount({required num n}) => (_root.$meta.cardinalResolver ?? PluralResolvers.cardinal('zh'))(n, + other: '${n} 首', + ); + @override String get nowPlaying => '正在播放'; + @override String playingFrom({required Object title}) => '來自 ${title}'; + @override String get queue => '播放佇列'; + @override String get clearQueue => '清空佇列'; + @override String get lyrics => '歌詞'; + @override String get noLyrics => '目前沒有歌詞'; + @override String get sleepTimer => '睡眠計時器'; + @override String get sleepTimerEndOfTrack => '曲目結束時'; + @override String sleepTimerMinutes({required Object n}) => '${n} 分鐘'; + @override String get stopPlayback => '停止播放'; + @override String get previousTrack => '上一首'; + @override String get nextTrack => '下一首'; + @override String get repeat => '重複播放'; + @override String get repeatAll => '全部重複播放'; + @override String get repeatOne => '單曲重複播放'; +} + +// Path: watchTogether +class _Translations$watchTogether$zh_Hant extends Translations$watchTogether$zh { + _Translations$watchTogether$zh_Hant._(TranslationsZhHant root) : this._root = root, super.internal(root); + + final TranslationsZhHant _root; // ignore: unused_field + + // Translations + @override String get title => '一起看'; + @override String get description => '與親友同步觀看內容'; + @override String get createSession => '建立「一起看」工作階段'; + @override String get creating => '正在建立…'; + @override String get joinSession => '加入工作階段'; + @override String get joining => '正在加入…'; + @override String get controlMode => '控制模式'; + @override String get controlModeQuestion => '誰可以控制播放?'; + @override String get hostOnly => '僅限主持人'; + @override String get anyone => '任何人'; + @override String get hostingSession => '主持「一起看」'; + @override String get inSession => '在工作階段中'; + @override String get sessionCode => '工作階段代碼'; + @override String get openSessionControls => '開啟「一起看」工作階段控制面板'; + @override String get copySessionCode => '複製工作階段代碼'; + @override String get hostControlsPlayback => '主持人控制播放'; + @override String get anyoneCanControl => '任何人都能控制播放'; + @override String get hostControls => '主持人控制'; + @override String get anyoneControls => '任何人控制'; + @override String get participants => '參與者'; + @override String get host => '主持人'; + @override String get hostBadge => '主持人'; + @override String get youAreHost => '您是主持人'; + @override String get watchingWithOthers => '與他人一起觀看'; + @override String get endSession => '結束工作階段'; + @override String get leaveSession => '離開工作階段'; + @override String get endSessionQuestion => '結束工作階段?'; + @override String get leaveSessionQuestion => '離開工作階段?'; + @override String get endSessionConfirm => '這將為所有參與者結束此「一起看」工作階段。'; + @override String get leaveSessionConfirm => '您將退出此「一起看」工作階段。'; + @override String get endSessionConfirmOverlay => '這將為所有參與者結束觀看工作階段。'; + @override String get leaveSessionConfirmOverlay => '您將中斷與「一起看」工作階段的連線。'; + @override String get end => '結束'; + @override String get leave => '離開'; + @override String get syncing => '同步中…'; + @override String get joinWatchSession => '加入「一起看」工作階段'; + @override String get enterCodeHint => '輸入 5 個英數字元的代碼'; + @override String get pasteFromClipboard => '從剪貼簿貼上'; + @override String get pleaseEnterCode => '請輸入工作階段代碼'; + @override String get codeMustBe5Chars => '工作階段代碼必須為 5 個字元'; + @override String get joinInstructions => '輸入主持人的工作階段代碼以加入「一起看」。'; + @override String get failedToCreate => '建立工作階段失敗'; + @override String get failedToJoin => '加入工作階段失敗'; + @override String get sessionCodeCopied => '工作階段代碼已複製到剪貼簿'; + @override String get relayUnreachable => '無法連線至中繼伺服器。ISP 封鎖可能會導致「一起看」無法使用。'; + @override String get reconnectingToHost => '正在重新連線至主持人…'; + @override String get currentPlayback => '目前播放內容'; + @override String get joinCurrentPlayback => '加入目前播放點'; + @override String get joinCurrentPlaybackDescription => '同步至主持人目前的觀看進度'; + @override String get failedToOpenCurrentPlayback => '無法開啟目前播放點'; + @override String participantJoined({required Object name}) => '${name} 已加入'; + @override String participantLeft({required Object name}) => '${name} 已離開'; + @override String participantPaused({required Object name}) => '${name} 暫停了播放'; + @override String participantResumed({required Object name}) => '${name} 恢復了播放'; + @override String participantSeeked({required Object name}) => '${name} 變更了播放位置'; + @override String participantBuffering({required Object name}) => '${name} 正在緩衝'; + @override String participantNeedsUpdate({required Object name}) => '${name} 正在使用舊版應用程式,無法進行同步'; + @override String resumingWithout({required Object name}) => '不等待 ${name},繼續播放'; + @override String get waitingForParticipants => '正在等待其他人載入…'; + @override String waitingForName({required Object name}) => '正在等待 ${name}…'; + @override String get recentRooms => '最近的房間'; + @override String get renameRoom => '重新命名房間'; + @override String get removeRoom => '移除'; + @override String get guestSwitchUnavailable => '無法切換 — 伺服器無法進行同步'; + @override String get guestSwitchFailed => '無法切換 — 在此伺服器上找不到內容'; +} + +// Path: downloads +class _Translations$downloads$zh_Hant extends Translations$downloads$zh { + _Translations$downloads$zh_Hant._(TranslationsZhHant root) : this._root = root, super.internal(root); + + final TranslationsZhHant _root; // ignore: unused_field + + // Translations + @override String get title => '下載'; + @override String get manage => '管理'; + @override String get tvShows => '影集'; + @override String get movies => '電影'; + @override String get music => '音樂'; + @override String tracksQueued({required Object count}) => '已將 ${count} 首曲目加入下載佇列'; + @override String get noDownloads => '目前沒有下載內容'; + @override String get noDownloadsDescription => '下載的內容將顯示在此處,供您離線觀看'; + @override String get downloadNow => '下載'; + @override String get deleteDownload => '刪除下載內容'; + @override String get retryDownload => '重試下載'; + @override String get downloadQueued => '下載已排隊'; + @override String get downloadResumed => '下載已繼續'; + @override String get serverErrorBitrate => '伺服器錯誤:檔案位元率可能超過遠端位元率限制'; + @override String episodesQueued({required Object count}) => '已將 ${count} 集影片加入下載佇列'; + @override String get downloadDeleted => '下載內容已刪除'; + @override String deleteConfirm({required Object title}) => '確定要從此裝置刪除「${title}」嗎?'; + @override String get cancelledDownloadTitle => '已取消的下載'; + @override String get cancelledDownloadMessage => '此下載已取消。您想要如何處理?'; + @override String get allEpisodesAlreadyDownloaded => '所有單集都已下載完成'; + @override String get resumeDownload => '繼續下載'; + @override String get cancelledDownload => '已取消的下載'; + @override String syncingFile({required Object file, required Object status}) => '${file}(正在同步 ${status})'; + @override String downloadedFileClickToComplete({required Object file}) => '已下載 ${file} — 點選以完成'; + @override String get partialDownloadClickToComplete => '已部分下載 — 點選以完成'; + @override String get deleting => '正在刪除…'; + @override String deletingWithProgress({required Object title, required Object current, required Object total}) => '正在刪除 ${title}…(${current}/${total})'; + @override String get queuedTooltip => '已排隊'; + @override String queuedFilesTooltip({required Object files}) => '已排隊:${files}'; + @override String get downloadingTooltip => '正在下載…'; + @override String downloadingFilesTooltip({required Object files}) => '正在下載 ${files}'; + @override String get noDownloadsTree => '目前沒有下載內容'; + @override String get pauseAll => '全部暫停'; + @override String get resumeAll => '全部繼續'; + @override String get deleteAll => '全部刪除'; + @override String get selectVersion => '選擇版本'; + @override String get allEpisodes => '所有單集'; + @override String get unwatchedOnly => '僅未觀看'; + @override String nextNUnwatched({required Object count}) => '接下來 ${count} 集未觀看'; + @override String get customAmount => '自訂數量…'; + @override String get includeSpecials => '包含特別篇'; + @override String get howManyEpisodes => '要下載多少集?'; + @override String get invalidEpisodeCount => '請輸入有效的集數。'; + @override String get keepSynced => '保持同步'; + @override String get downloadOnce => '下載一次'; + @override String keepNUnwatched({required Object count}) => '保留 ${count} 個未觀看項目'; + @override String get editSyncRule => '編輯同步規則'; + @override String get removeSyncRule => '刪除同步規則'; + @override String removeSyncRuleConfirm({required Object title}) => '停止同步「${title}」?已下載的單集將會保留。'; + @override String syncRuleCreated({required Object count}) => '同步規則已建立 — 將保留 ${count} 個未觀看單集'; + @override String get syncRuleUpdated => '同步規則已更新'; + @override String get syncRuleRemoved => '同步規則已刪除'; + @override String syncedNewEpisodes({required Object title, required Object count}) => '已為 ${title} 同步 ${count} 個新單集'; + @override String get activeSyncRules => '同步規則'; + @override String get noSyncRules => '沒有同步規則'; + @override String get manageSyncRule => '管理同步'; + @override String get editEpisodeCount => '單集數量'; + @override String get editSyncFilter => '同步篩選器'; + @override String get syncAllItems => '同步所有項目'; + @override String get syncUnwatchedItems => '同步未觀看項目'; + @override String syncRuleServerContext({required Object server, required Object status}) => '伺服器:${server} • ${status}'; + @override String get syncRuleAvailable => '可用'; + @override String get syncRuleOffline => '離線'; + @override String get syncRuleSignInRequired => '需要登入'; + @override String get syncRuleNotAvailableForProfile => '目前使用者設定檔無法使用'; + @override String get syncRuleUnknownServer => '未知伺服器'; + @override String get syncRuleListCreated => '同步規則已建立'; +} + +// Path: shaders +class _Translations$shaders$zh_Hant extends Translations$shaders$zh { + _Translations$shaders$zh_Hant._(TranslationsZhHant root) : this._root = root, super.internal(root); + + final TranslationsZhHant _root; // ignore: unused_field + + // Translations + @override String get title => '著色器'; + @override String get noShaderDescription => '無影片增強效果'; + @override String get nvscalerDescription => 'NVIDIA 圖像縮放技術,使影片邊緣更清晰'; + @override String get artcnnVariantNeutral => '中性'; + @override String get artcnnVariantDenoise => '降噪'; + @override String get artcnnVariantDenoiseSharpen => '降噪 + 銳化'; + @override String get qualityFast => '快速'; + @override String get qualityHQ => '高品質'; + @override String get mode => '模式'; + @override String get importShader => '匯入著色器'; + @override String get customShaderDescription => '自訂 GLSL 著色器檔案'; + @override String get shaderImported => '著色器已匯入'; + @override String get shaderImportFailed => '匯入著色器失敗'; + @override String get deleteShader => '刪除著色器'; + @override String deleteShaderConfirm({required Object name}) => '刪除「${name}」?'; +} + +// Path: companionRemote +class _Translations$companionRemote$zh_Hant extends Translations$companionRemote$zh { + _Translations$companionRemote$zh_Hant._(TranslationsZhHant root) : this._root = root, super.internal(root); + + final TranslationsZhHant _root; // ignore: unused_field + + // Translations + @override String get title => '隨身遙控器'; + @override String connectedTo({required Object name}) => '已連線至 ${name}'; + @override String get unknownDevice => '未知裝置'; + @override late final _Translations$companionRemote$session$zh_Hant session = _Translations$companionRemote$session$zh_Hant._(_root); + @override late final _Translations$companionRemote$pairing$zh_Hant pairing = _Translations$companionRemote$pairing$zh_Hant._(_root); + @override late final _Translations$companionRemote$remote$zh_Hant remote = _Translations$companionRemote$remote$zh_Hant._(_root); + @override late final _Translations$companionRemote$errors$zh_Hant errors = _Translations$companionRemote$errors$zh_Hant._(_root); +} + +// Path: videoSettings +class _Translations$videoSettings$zh_Hant extends Translations$videoSettings$zh { + _Translations$videoSettings$zh_Hant._(TranslationsZhHant root) : this._root = root, super.internal(root); + + final TranslationsZhHant _root; // ignore: unused_field + + // Translations + @override String get playbackSpeed => '播放速度'; + @override String get normalSpeed => '正常速度'; + @override String sleepTimerActive({required Object duration}) => '執行中(${duration})'; + @override String get zoom => '縮放'; + @override String get sleepTimer => '睡眠計時器'; + @override String get audioSync => '音訊同步調整'; + @override String get subtitleSync => '字幕同步調整'; + @override String get hdr => 'HDR'; + @override String get audioOutput => '音訊輸出'; + @override String get performanceOverlay => '效能監控'; + @override String get audioPassthrough => '音訊直通'; + @override String get audioNormalization => '音量標準化'; + @override String get audioDownmix => '下混為立體聲'; +} + +// Path: performanceOverlay +class _Translations$performanceOverlay$zh_Hant extends Translations$performanceOverlay$zh { + _Translations$performanceOverlay$zh_Hant._(TranslationsZhHant root) : this._root = root, super.internal(root); + + final TranslationsZhHant _root; // ignore: unused_field + + // Translations + @override String get color => '色彩'; + @override String get performance => '效能'; + @override String get buffer => '緩衝'; + @override String get app => '應用程式'; + @override String get decoder => '解碼器'; + @override String get rawDecoder => '原始解碼器'; + @override String get tunneling => '通道模式'; + @override String get aspect => '寬高比'; + @override String get rotation => '旋轉角度'; + @override String get dvSource => 'DV 來源'; + @override String get dvPath => 'DV 路徑'; + @override String get p7Conversion => 'P7 轉換'; + @override String get sampleRate => '取樣率'; + @override String get pixelFormat => '像素格式'; + @override String get hwFormat => '硬體格式'; + @override String get matrix => '矩陣'; + @override String get primaries => '基色'; + @override String get transfer => '傳輸特性'; + @override String get renderFps => '渲染 FPS'; + @override String get displayFps => '螢幕 FPS'; + @override String get avSync => '影音同步(A/V Sync)'; + @override String get dropped => '丟格數(Dropped)'; + @override String get dvRpus => 'DV RPU 數'; + @override String get dvRpuAverage => 'DV RPU 平均'; + @override String get dvSampleAverage => 'DV 取樣平均'; + @override String get maxLuma => '最大亮度'; + @override String get minLuma => '最小亮度'; + @override String get maxCll => 'MaxCLL'; + @override String get maxFall => 'MaxFALL'; + @override String get cacheUsed => '已用快取'; + @override String get cacheLimit => '快取上限'; + @override String get speed => '速度'; + @override String get player => '播放器'; + @override String get memory => '記憶體'; + @override String get uiFps => 'UI FPS'; +} + +// Path: externalPlayer +class _Translations$externalPlayer$zh_Hant extends Translations$externalPlayer$zh { + _Translations$externalPlayer$zh_Hant._(TranslationsZhHant root) : this._root = root, super.internal(root); + + final TranslationsZhHant _root; // ignore: unused_field + + // Translations + @override String get title => '外部播放器'; + @override String get useExternalPlayer => '使用外部播放器'; + @override String get useExternalPlayerDescription => '在其他應用程式中開啟影片'; + @override String get selectPlayer => '選擇播放器'; + @override String get customPlayers => '自訂播放器'; + @override String get systemDefault => '系統預設'; + @override String get addCustomPlayer => '新增自訂播放器'; + @override String get playerName => '播放器名稱'; + @override String get playerNameHint => '我的播放器'; + @override String get playerCommand => '執行命令'; + @override String get playerPackage => '套件名稱'; + @override String get playerUrlScheme => 'URL 協定架構(Scheme)'; + @override String get off => '關閉'; + @override String get launchFailed => '無法啟動外部播放器'; + @override String appNotInstalled({required Object name}) => '${name} 未安裝'; + @override String get playInExternalPlayer => '在外部播放器播放'; +} + +// Path: metadataEdit +class _Translations$metadataEdit$zh_Hant extends Translations$metadataEdit$zh { + _Translations$metadataEdit$zh_Hant._(TranslationsZhHant root) : this._root = root, super.internal(root); + + final TranslationsZhHant _root; // ignore: unused_field + + // Translations + @override String get editMetadata => '編輯…'; + @override String get screenTitle => '編輯中繼資料'; + @override String get basicInfo => '基本資訊'; + @override String get artwork => '海報與背景'; + @override String get advancedSettings => '進階設定'; + @override String get title => '標題'; + @override String get sortTitle => '排序標題'; + @override String get originalTitle => '原始標題'; + @override String get releaseDate => '上映日期'; + @override String get contentRating => '內容分級'; + @override String get studio => '製片商'; + @override String get tagline => '宣傳標語'; + @override String get summary => '大綱簡介'; + @override String get poster => '海報'; + @override String get background => '背景圖'; + @override String get logo => '標誌(Logo)'; + @override String get squareArt => '方形圖片'; + @override String get selectPoster => '選擇海報'; + @override String get selectBackground => '選擇背景圖'; + @override String get selectLogo => '選擇標誌'; + @override String get selectSquareArt => '選擇方形圖片'; + @override String get fromUrl => '自訂網址'; + @override String get uploadFile => '上傳檔案'; + @override String get enterImageUrl => '輸入圖片 URL'; + @override String get imageUrl => '圖片 URL'; + @override String get metadataUpdated => '中繼資料已更新'; + @override String get metadataUpdateFailed => '中繼資料更新失敗'; + @override String get artworkUpdated => '封面圖片已更新'; + @override String get artworkUpdateFailed => '封面圖片更新失敗'; + @override String get noArtworkAvailable => '沒有可用的封面圖片'; + @override String artworkOption({required Object index}) => '封面圖片選項 ${index}'; + @override String selectedArtworkOption({required Object index}) => '封面圖片選項 ${index},已選擇'; + @override String get notSet => '未設定'; + @override String get libraryDefault => '媒體庫預設'; + @override String get accountDefault => '帳戶預設'; + @override String get seriesDefault => '影集預設'; + @override String get episodeSorting => '單集排序方式'; + @override String get oldestFirst => '由舊到新'; + @override String get newestFirst => '由新到舊'; + @override String get keep => '保留集數'; + @override String get allEpisodes => '所有單集'; + @override String latestEpisodes({required Object count}) => '最新 ${count} 集'; + @override String get latestEpisode => '最新一集'; + @override String episodesAddedPastDays({required Object count}) => '過去 ${count} 天內新增的單集'; + @override String get deleteAfterPlaying => '播放後刪除單集'; + @override String get never => '從不'; + @override String get afterADay => '一天後'; + @override String get afterAWeek => '一週後'; + @override String get afterAMonth => '一個月後'; + @override String get onNextRefresh => '下次重新整理時'; + @override String get seasons => '季'; + @override String get show => '顯示'; + @override String get hide => '隱藏'; + @override String get episodeOrdering => '單集排序資料源'; + @override String get tmdbAiring => 'The Movie Database(播出順序)'; + @override String get tvdbAiring => 'TheTVDB(播出順序)'; + @override String get tvdbAbsolute => 'TheTVDB(絕對集數順序)'; + @override String get metadataLanguage => '中繼資料語言'; + @override String get useOriginalTitle => '使用原始標題'; + @override String get preferredAudioLanguage => '偏好音訊語言'; + @override String get preferredSubtitleLanguage => '偏好字幕語言'; + @override String get subtitleMode => '自動選擇字幕模式'; + @override String get manuallySelected => '手動選擇'; + @override String get shownWithForeignAudio => '外語配音時顯示'; + @override String get alwaysEnabled => '一律啟用'; + @override String get tags => '標籤'; + @override String get addTag => '新增標籤'; + @override String get genre => '類型'; + @override String get director => '導演'; + @override String get writer => '編劇'; + @override String get producer => '製片'; + @override String get country => '國家/地區'; + @override String get collection => '收藏集'; + @override String get label => '標記'; + @override String get style => '風格'; + @override String get mood => '氛圍'; +} + +// Path: matchScreen +class _Translations$matchScreen$zh_Hant extends Translations$matchScreen$zh { + _Translations$matchScreen$zh_Hant._(TranslationsZhHant root) : this._root = root, super.internal(root); + + final TranslationsZhHant _root; // ignore: unused_field + + // Translations + @override String get match => '配對…'; + @override String get fixMatch => '修正配對…'; + @override String get unmatch => '取消配對'; + @override String get unmatchConfirm => '清除此配對資訊?在重新配對前,Plex 會將其視為未配對媒體。'; + @override String get unmatchSuccess => '已取消配對'; + @override String get unmatchFailed => '無法取消配對'; + @override String get matchApplied => '配對已套用'; + @override String get matchFailed => '套用配對失敗'; + @override String get titleHint => '標題'; + @override String get yearHint => '年份'; + @override String get search => '搜尋'; + @override String get noMatchesFound => '找不到符合的配對'; +} + +// Path: serverTasks +class _Translations$serverTasks$zh_Hant extends Translations$serverTasks$zh { + _Translations$serverTasks$zh_Hant._(TranslationsZhHant root) : this._root = root, super.internal(root); + + final TranslationsZhHant _root; // ignore: unused_field + + // Translations + @override String get title => '伺服器工作'; + @override String get failedToLoad => '載入工作失敗'; + @override String get noTasks => '目前沒有執行中的工作'; +} + +// Path: trakt +class _Translations$trakt$zh_Hant extends Translations$trakt$zh { + _Translations$trakt$zh_Hant._(TranslationsZhHant root) : this._root = root, super.internal(root); + + final TranslationsZhHant _root; // ignore: unused_field + + // Translations + @override String get title => 'Trakt'; + @override String get connected => '已連線'; + @override String connectedAs({required Object username}) => '已以 @${username} 身分連線'; + @override String get disconnectConfirm => '中斷與 Trakt 帳戶的連結?'; + @override String get disconnectConfirmBody => 'Plezy 將停止向 Trakt 傳送事件。您可以隨時重新連線。'; + @override String get scrobble => '即時同步記錄(Scrobble)'; + @override String get scrobbleDescription => '在播放時向 Trakt 傳送播放、暫停和停止等狀態。'; + @override String get watchedSync => '同步已觀看狀態'; + @override String get watchedSyncDescription => '在 Plezy 中將項目標記為已觀看時,也會在 Trakt 上標記為已觀看。'; +} + +// Path: seerr +class _Translations$seerr$zh_Hant extends Translations$seerr$zh { + _Translations$seerr$zh_Hant._(TranslationsZhHant root) : this._root = root, super.internal(root); + + final TranslationsZhHant _root; // ignore: unused_field + + // Translations + @override String get title => 'Seerr'; + @override String get connectTitle => '連線至 Seerr'; + @override String get serverUrl => '伺服器 URL'; + @override String get serverUrlHelper => '您的 Seerr 執行個體的連線位址'; + @override String get checkServer => '繼續'; + @override String get signInWithJellyfin => '使用 Jellyfin 登入'; + @override String get signInWithEmby => '使用 Emby 登入'; + @override String get signInWithLocal => '使用本地帳戶'; + @override String get email => '電子郵件'; + @override String get noSignInMethods => '此 Seerr 執行個體未提供 Plezy 支援的登入方式。'; + @override String get instance => '執行個體'; + @override String get disconnectConfirm => '中斷與 Seerr 的連線?'; + @override String get disconnectConfirmBody => 'Plezy 將忘記此 Seerr 連線資訊。您可以隨時重新連線。'; + @override String get request => '請求'; + @override String get request4k => '請求 4K 版本'; + @override String get seasons => '季'; + @override String get allSeasons => '所有季數'; + @override String get advancedOptions => '進階設定'; + @override String get destinationServer => '目標伺服器'; + @override String get qualityProfile => '畫質設定檔(Quality Profile)'; + @override String get rootFolder => '根目錄資料夾'; + @override String get languageProfile => '語言設定檔(Language Profile)'; + @override String get requestSubmitted => '請求已送出'; + @override String requestFailed({required Object error}) => '請求失敗:${error}'; + @override String get requestsLoadFailed => '無法載入請求選項'; + @override String get nothingToRequest => '所有內容皆已可用或已提出請求。'; + @override String get statusAvailable => '可用'; + @override String get statusPartiallyAvailable => '部分可用'; + @override String get statusRequested => '已請求'; + @override String get statusProcessing => '處理中'; +} + +// Path: services +class _Translations$services$zh_Hant extends Translations$services$zh { + _Translations$services$zh_Hant._(TranslationsZhHant root) : this._root = root, super.internal(root); + + final TranslationsZhHant _root; // ignore: unused_field + + // Translations + @override String get title => '外部服務'; + @override String get hubSubtitle => '同步觀看進度並請求新內容。'; + @override String get notConnected => '未連線'; + @override String connectedAs({required Object username}) => '已以 @${username} 身分連線'; + @override String get scrobble => '自動同步播放進度'; + @override String get scrobbleDescription => '觀賞完一集或一部電影後自動更新您的外部列表。'; + @override String disconnectConfirm({required Object service}) => '中斷與 ${service} 的連線?'; + @override String disconnectConfirmBody({required Object service}) => 'Plezy 將停止更新 ${service}。您可以隨時重新連線。'; + @override String connectFailed({required Object service}) => '無法連線至 ${service}。請重試。'; + @override late final _Translations$services$names$zh_Hant names = _Translations$services$names$zh_Hant._(_root); + @override late final _Translations$services$deviceCode$zh_Hant deviceCode = _Translations$services$deviceCode$zh_Hant._(_root); + @override late final _Translations$services$oauthProxy$zh_Hant oauthProxy = _Translations$services$oauthProxy$zh_Hant._(_root); + @override late final _Translations$services$libraryFilter$zh_Hant libraryFilter = _Translations$services$libraryFilter$zh_Hant._(_root); +} + +// Path: addServer +class _Translations$addServer$zh_Hant extends Translations$addServer$zh { + _Translations$addServer$zh_Hant._(TranslationsZhHant root) : this._root = root, super.internal(root); + + final TranslationsZhHant _root; // ignore: unused_field + + // Translations + @override String get addJellyfinTitle => '新增 Jellyfin 伺服器'; + @override String get serverUrls => '伺服器 URL'; + @override String get serverUrlsHelper => '可輸入多個連線網址,以逗號區隔。'; + @override String get findServer => '尋找伺服器'; + @override String get searchingLocalServers => '正在尋找本地 Jellyfin 伺服器…'; + @override String get localServers => '本地 Jellyfin 伺服器'; + @override String get username => '使用者名稱'; + @override String get password => '密碼'; + @override String get signIn => '登入'; + @override String get change => '變更'; + @override String get required => '必填'; + @override String couldNotReachServer({required Object error}) => '無法連線至伺服器:${error}'; + @override String signInFailed({required Object error}) => '登入失敗:${error}'; + @override String quickConnectFailed({required Object error}) => '快速連線失敗:${error}'; + @override String get addPlexTitle => '使用 Plex 登入'; + @override String get pinExpired => 'PIN 碼在登入前已過期。請重試。'; + @override String failedToRegisterAccount({required Object error}) => '註冊帳戶失敗:${error}'; + @override String get enterJellyfinUrlError => '請輸入您的 Jellyfin 伺服器 URL'; + @override String get addConnectionTitle => '新增連線'; + @override String addConnectionTitleScoped({required Object name}) => '新增連線至 ${name}'; + @override String get signInWithPlexCard => '使用 Plex 登入'; + @override String get signInWithPlexCardSubtitle => '授權此裝置。將會新增共享的伺服器連線。'; + @override String get signInWithPlexCardSubtitleScoped => '授權 Plex 帳戶。Home 使用者會建立為個別的使用者設定檔。'; + @override String get connectToJellyfinCard => '連線至 Jellyfin'; + @override String get connectToJellyfinCardSubtitle => '輸入伺服器 URL、使用者名稱與密碼。'; + @override String connectToJellyfinCardSubtitleScoped({required Object name}) => '登入 Jellyfin 伺服器,並綁定至 ${name} 使用者設定檔。'; + @override String get borrowFromAnotherProfile => '從另一個使用者設定檔共用'; + @override String get borrowFromAnotherProfileSubtitle => '重複使用另一個使用者設定檔的連線資訊。受 PIN 碼保護的使用者設定檔需輸入 PIN 碼。'; +} + +// Path: hotkeys.actions +class _Translations$hotkeys$actions$zh_Hant extends Translations$hotkeys$actions$zh { + _Translations$hotkeys$actions$zh_Hant._(TranslationsZhHant root) : this._root = root, super.internal(root); + + final TranslationsZhHant _root; // ignore: unused_field + + // Translations + @override String get playPause => '播放/暫停'; + @override String get volumeUp => '調大音量'; + @override String get volumeDown => '調小音量'; + @override String seekForward({required Object seconds}) => '快進(${seconds} 秒)'; + @override String seekBackward({required Object seconds}) => '快退(${seconds} 秒)'; + @override String get fullscreenToggle => '切換全螢幕'; + @override String get muteToggle => '切換靜音'; + @override String get subtitleToggle => '切換字幕'; + @override String get audioTrackNext => '下一個音軌'; + @override String get subtitleTrackNext => '下一個字幕軌'; + @override String get chapterNext => '下一個章節'; + @override String get chapterPrevious => '上一個章節'; + @override String get episodeNext => '下一集'; + @override String get episodePrevious => '上一集'; + @override String get speedIncrease => '加速播放'; + @override String get speedDecrease => '減速播放'; + @override String get speedReset => '重設速度'; + @override String get zoomIn => '放大'; + @override String get zoomOut => '縮小'; + @override String get zoomReset => '重設縮放'; + @override String get subSeekNext => '跳轉至下一句字幕'; + @override String get subSeekPrev => '跳轉至上一句字幕'; + @override String get shaderToggle => '切換著色器'; + @override String get skipMarker => '跳過片頭/片尾'; + @override String get screenshot => '螢幕截圖'; +} + +// Path: videoControls.pipErrors +class _Translations$videoControls$pipErrors$zh_Hant extends Translations$videoControls$pipErrors$zh { + _Translations$videoControls$pipErrors$zh_Hant._(TranslationsZhHant root) : this._root = root, super.internal(root); + + final TranslationsZhHant _root; // ignore: unused_field + + // Translations + @override String get androidVersion => '需要 Android 8.0 或更高版本'; + @override String get iosVersion => '需要 iOS 15.0 或更高版本'; + @override String get permissionDisabled => '子母畫面權限已停用。請在系統設定中啟用。'; + @override String get notSupported => '此裝置不支援子母畫面模式'; + @override String get voSwitchFailed => '無法切換子母畫面的影片輸出'; + @override String get failed => '啟動子母畫面失敗'; + @override String unknown({required Object error}) => '發生錯誤:${error}'; +} + +// Path: libraries.tabs +class _Translations$libraries$tabs$zh_Hant extends Translations$libraries$tabs$zh { + _Translations$libraries$tabs$zh_Hant._(TranslationsZhHant root) : this._root = root, super.internal(root); + + final TranslationsZhHant _root; // ignore: unused_field + + // Translations + @override String get recommended => '推薦'; + @override String get browse => '瀏覽'; + @override String get collections => '收藏集'; + @override String get playlists => '播放清單'; +} + +// Path: libraries.groupings +class _Translations$libraries$groupings$zh_Hant extends Translations$libraries$groupings$zh { + _Translations$libraries$groupings$zh_Hant._(TranslationsZhHant root) : this._root = root, super.internal(root); + + final TranslationsZhHant _root; // ignore: unused_field + + // Translations + @override String get title => '分組'; + @override String get all => '全部'; + @override String get movies => '電影'; + @override String get shows => '影集'; + @override String get seasons => '季'; + @override String get episodes => '集'; + @override String get artists => '演出者'; + @override String get albums => '專輯'; + @override String get tracks => '曲目'; + @override String get folders => '資料夾'; +} + +// Path: libraries.filterCategories +class _Translations$libraries$filterCategories$zh_Hant extends Translations$libraries$filterCategories$zh { + _Translations$libraries$filterCategories$zh_Hant._(TranslationsZhHant root) : this._root = root, super.internal(root); + + final TranslationsZhHant _root; // ignore: unused_field + + // Translations + @override String get genre => '類型'; + @override String get year => '年份'; + @override String get contentRating => '分級'; + @override String get tag => '標籤'; + @override String get unwatched => '未觀看'; + @override String get unplayed => '未播放'; + @override String get favorites => '我的最愛'; +} + +// Path: libraries.sortLabels +class _Translations$libraries$sortLabels$zh_Hant extends Translations$libraries$sortLabels$zh { + _Translations$libraries$sortLabels$zh_Hant._(TranslationsZhHant root) : this._root = root, super.internal(root); + + final TranslationsZhHant _root; // ignore: unused_field + + // Translations + @override String get title => '標題'; + @override String get dateAdded => '新增日期'; + @override String get releaseDate => '發行日期'; + @override String get rating => '評分'; + @override String get communityRating => '社群評分'; + @override String get criticRating => '影評人評分'; + @override String get userRating => '使用者評分'; + @override String get datePlayed => '播放日期'; + @override String get playCount => '播放次數'; + @override String get productionYear => '製作年份'; + @override String get runtime => '片長'; + @override String get officialRating => '官方分級'; + @override String get premiereDate => '首映日期'; + @override String get startDate => '開始日期'; + @override String get airTime => '播出時間'; + @override String get studio => '工作室'; + @override String get random => '隨機'; + @override String get dateShared => '分享日期'; + @override String get latestEpisodeAirDate => '最新一集播出日期'; + @override String get lastEpisodeDateAdded => '最新一集新增日期'; +} + +// Path: explore.rows +class _Translations$explore$rows$zh_Hant extends Translations$explore$rows$zh { + _Translations$explore$rows$zh_Hant._(TranslationsZhHant root) : this._root = root, super.internal(root); + + final TranslationsZhHant _root; // ignore: unused_field + + // Translations + @override String get watchlist => '待看清單'; + @override String get recommendedMovies => '推薦電影'; + @override String get recommendedShows => '推薦影集'; + @override String get trendingMovies => '近期熱門電影'; + @override String get trendingShows => '近期熱門影集'; + @override String get popularMovies => '熱門電影'; + @override String get popularShows => '熱門影集'; + @override String get trendingAnime => '近期熱門動畫'; + @override String get suggestedAnime => '推薦動畫'; + @override String get airingAnime => '熱門連載動畫'; + @override String get popularAnime => '最受歡迎的動畫'; + @override String get trending => '趨勢'; + @override String get upcomingMovies => '即將上映的電影'; + @override String get upcomingShows => '即將播出的影集'; +} + +// Path: explore.status +class _Translations$explore$status$zh_Hant extends Translations$explore$status$zh { + _Translations$explore$status$zh_Hant._(TranslationsZhHant root) : this._root = root, super.internal(root); + + final TranslationsZhHant _root; // ignore: unused_field + + // Translations + @override String get airing => '播出中'; + @override String get ended => '已完結'; + @override String get canceled => '已取消'; + @override String get upcoming => '即將上線'; +} + +// Path: companionRemote.session +class _Translations$companionRemote$session$zh_Hant extends Translations$companionRemote$session$zh { + _Translations$companionRemote$session$zh_Hant._(TranslationsZhHant root) : this._root = root, super.internal(root); + + final TranslationsZhHant _root; // ignore: unused_field + + // Translations + @override String get startingServer => '正在啟動遠端伺服器…'; + @override String get hostAddress => '主機位址'; + @override String get connected => '已連線'; + @override String get serverRunning => '遠端伺服器已啟動'; + @override String get serverStopped => '遠端伺服器已停止'; + @override String get serverRunningDescription => '區域網路中的行動裝置可以連線至此應用程式'; + @override String get serverStoppedDescription => '啟動伺服器以允許行動裝置連線'; + @override String get usePhoneToControl => '使用行動裝置控制此應用程式'; + @override String get startServer => '啟動伺服器'; + @override String get stopServer => '停止伺服器'; + @override String get minimize => '最小化'; +} + +// Path: companionRemote.pairing +class _Translations$companionRemote$pairing$zh_Hant extends Translations$companionRemote$pairing$zh { + _Translations$companionRemote$pairing$zh_Hant._(TranslationsZhHant root) : this._root = root, super.internal(root); + + final TranslationsZhHant _root; // ignore: unused_field + + // Translations + @override String get discoveryDescription => '使用相同 Plex 帳戶的 Plezy 裝置會顯示在此處'; + @override String get hostAddressHint => '192.168.1.100:48632'; + @override String get connecting => '正在連線…'; + @override String get searchingForDevices => '正在搜尋裝置…'; + @override String get noDevicesFound => '在區域網路上找不到裝置'; + @override String get noDevicesHint => '請在電腦上開啟 Plezy,並確認兩台裝置使用相同的 Wi-Fi 網路'; + @override String get availableDevices => '可用裝置'; + @override String get manualConnection => '手動連線'; + @override String get cryptoInitFailed => '無法啟動安全連線。請先登入 Plex。'; + @override String get validationHostRequired => '請輸入主機位址'; + @override String get validationHostFormat => '格式必須為 IP 位址:連接埠(例如 192.168.1.100:48632)'; + @override String get connectionTimedOut => '連線逾時。請確認兩台裝置都使用相同網路。'; + @override String get sessionNotFound => '找不到裝置。請確認主機上已啟動 Plezy。'; + @override String get authFailed => '驗證失敗。兩台裝置需要登入相同的 Plex 帳戶。'; + @override String failedToConnect({required Object error}) => '連線失敗:${error}'; +} + +// Path: companionRemote.remote +class _Translations$companionRemote$remote$zh_Hant extends Translations$companionRemote$remote$zh { + _Translations$companionRemote$remote$zh_Hant._(TranslationsZhHant root) : this._root = root, super.internal(root); + + final TranslationsZhHant _root; // ignore: unused_field + + // Translations + @override String get disconnectConfirm => '是否要中斷遠端連線工作階段?'; + @override String get reconnecting => '重新連線中…'; + @override String attemptOf({required Object current}) => '第 ${current} 次嘗試,共 5 次'; + @override String get retryNow => '立即重試'; + @override String get tabRemote => '遙控'; + @override String get tabPlay => '播放'; + @override String get tabMore => '更多'; + @override String get menu => '選單'; + @override String get tabNavigation => '分頁導覽'; + @override String get tabDiscover => '發現'; + @override String get tabLibraries => '媒體庫'; + @override String get tabSearch => '搜尋'; + @override String get tabDownloads => '下載'; + @override String get tabSettings => '設定'; + @override String get previous => '上一個'; + @override String get playPause => '播放/暫停'; + @override String get next => '下一個'; + @override String get seekBack => '後退'; + @override String get stop => '停止'; + @override String get seekForward => '前進'; + @override String get volume => '音量'; + @override String get volumeDown => '調小'; + @override String get volumeUp => '調大'; + @override String get fullscreen => '全螢幕'; + @override String get subtitles => '字幕'; + @override String get audio => '音訊'; + @override String get searchHint => '在電腦版上搜尋…'; +} + +// Path: companionRemote.errors +class _Translations$companionRemote$errors$zh_Hant extends Translations$companionRemote$errors$zh { + _Translations$companionRemote$errors$zh_Hant._(TranslationsZhHant root) : this._root = root, super.internal(root); + + final TranslationsZhHant _root; // ignore: unused_field + + // Translations + @override String get noNetworkInterface => '找不到網路介面'; + @override String get authenticationFailed => '身分驗證失敗'; + @override String serverStartFailed({required Object error}) => '無法啟動遠端伺服器:${error}'; + @override String commandFailed({required Object error}) => '無法傳送遠端指令:${error}'; + @override String get joinTimedOut => '加入工作階段逾時'; + @override String get failedToConnectAnyAddress => '無法連線至任何位址'; + @override String connectionLostAfterAttempts({required Object attempts}) => '嘗試 ${attempts} 次後連線中斷'; + @override String get connectionLost => '連線已中斷'; +} + +// Path: services.names +class _Translations$services$names$zh_Hant extends Translations$services$names$zh { + _Translations$services$names$zh_Hant._(TranslationsZhHant root) : this._root = root, super.internal(root); + + final TranslationsZhHant _root; // ignore: unused_field + + // Translations + @override String get mal => 'MyAnimeList'; + @override String get anilist => 'AniList'; + @override String get simkl => 'Simkl'; + @override String get seerr => 'Seerr'; +} + +// Path: services.deviceCode +class _Translations$services$deviceCode$zh_Hant extends Translations$services$deviceCode$zh { + _Translations$services$deviceCode$zh_Hant._(TranslationsZhHant root) : this._root = root, super.internal(root); + + final TranslationsZhHant _root; // ignore: unused_field + + // Translations + @override String title({required Object service}) => '在 ${service} 啟用 Plezy'; + @override String body({required Object url}) => '請前往 ${url} 並輸入此代碼:'; + @override String openToActivate({required Object service}) => '開啟 ${service} 進行啟用'; + @override String get copyCode => '複製啟用代碼'; + @override String get waitingForAuthorization => '等待授權中…'; + @override String get codeCopied => '代碼已複製'; +} + +// Path: services.oauthProxy +class _Translations$services$oauthProxy$zh_Hant extends Translations$services$oauthProxy$zh { + _Translations$services$oauthProxy$zh_Hant._(TranslationsZhHant root) : this._root = root, super.internal(root); + + final TranslationsZhHant _root; // ignore: unused_field + + // Translations + @override String title({required Object service}) => '登入 ${service}'; + @override String get body => '掃描 QR 碼,或在任何裝置上開啟該網址。'; + @override String openToSignIn({required Object service}) => '開啟 ${service} 進行登入'; + @override String get copyUrl => '複製登入 URL'; + @override String get urlCopied => 'URL 已複製'; +} + +// Path: services.libraryFilter +class _Translations$services$libraryFilter$zh_Hant extends Translations$services$libraryFilter$zh { + _Translations$services$libraryFilter$zh_Hant._(TranslationsZhHant root) : this._root = root, super.internal(root); + + final TranslationsZhHant _root; // ignore: unused_field + + // Translations + @override String get title => '媒體庫篩選'; + @override String get subtitleAllSyncing => '同步所有媒體庫'; + @override String get subtitleNoneSyncing => '不同步任何內容'; + @override String subtitleBlocked({required Object count}) => '已封鎖 ${count} 個'; + @override String subtitleAllowed({required Object count}) => '已允許 ${count} 個'; + @override String get mode => '篩選模式'; + @override String get modeBlacklist => '黑名單(排除)'; + @override String get modeWhitelist => '白名單(僅限)'; + @override String get modeHintBlacklist => '同步下方未勾選的所有媒體庫。'; + @override String get modeHintWhitelist => '僅同步下方已勾選的媒體庫。'; + @override String get libraries => '媒體庫'; + @override String get noLibraries => '沒有可用的媒體庫'; +} + +/// The flat map containing all translations for locale . +/// Only for edge cases! For simple maps, use the map function of this library. +/// +/// The Dart AOT compiler has issues with very large switch statements, +/// so the map is split into smaller functions (512 entries each). +extension on TranslationsZhHant { + dynamic _flatMapFunction(String path) { + return switch (path) { + 'app.title' => 'Plezy', + 'auth.signInWithPlex' => '使用 Plex 登入', + 'auth.showQRCode' => '顯示 QR 碼', + 'auth.authenticate' => '驗證', + 'auth.authenticationTimeout' => '驗證逾時。請重試。', + 'auth.scanQRToSignIn' => '掃描此 QR 碼以登入', + 'auth.waitingForAuth' => '正在等待驗證…\n請在瀏覽器中登入。', + 'auth.useBrowser' => '使用瀏覽器', + 'auth.or' => '或', + 'auth.connectToJellyfin' => '連線至 Jellyfin', + 'auth.useQuickConnect' => '使用快速連線(Quick Connect)', + 'auth.quickConnectInstructions' => '在 Jellyfin 中開啟快速連線並輸入此代碼。', + 'auth.quickConnectWaiting' => '等待核准…', + 'auth.quickConnectCancel' => '取消', + 'auth.quickConnectExpired' => '快速連線代碼已過期。請重試。', + 'auth.localDataRecoveryRequired' => 'Plezy 無法安全地復原本機登入資料與待處理的播放資料。請重新登入。', + 'common.cancel' => '取消', + 'common.save' => '儲存', + 'common.close' => '關閉', + 'common.clear' => '清除', + 'common.reset' => '重設', + 'common.later' => '稍後', + 'common.submit' => '送出', + 'common.confirm' => '確認', + 'common.retry' => '重試', + 'common.logout' => '登出', + 'common.unknown' => '未知', + 'common.refresh' => '重新整理', + 'common.yes' => '是', + 'common.no' => '否', + 'common.delete' => '刪除', + 'common.edit' => '編輯', + 'common.shuffle' => '隨機播放', + 'common.addTo' => '新增至…', + 'common.createNew' => '新增', + 'common.connect' => '連線', + 'common.disconnect' => '中斷連線', + 'common.play' => '播放', + 'common.pause' => '暫停', + 'common.resume' => '繼續', + 'common.error' => '錯誤', + 'common.search' => '搜尋', + 'common.home' => '首頁', + 'common.back' => '返回', + 'common.settings' => '設定', + 'common.mute' => '靜音', + 'common.ok' => '確定', + 'common.off' => '關閉', + 'common.seasonNumber' => ({required Object number}) => '第 ${number} 季', + 'common.episodeNumberTitle' => ({required Object number, required Object title}) => '第 ${number} 集 — ${title}', + 'common.chapterNumber' => ({required Object number}) => '第 ${number} 章', + 'common.reconnect' => '重新連線', + 'common.viewAll' => '查看全部', + 'common.checkingNetwork' => '正在檢查網路…', + 'common.loadingServers' => '正在載入伺服器…', + 'common.connectingToServers' => '正在連線伺服器…', + 'common.startingOfflineMode' => '正在啟動離線模式…', + 'common.loading' => '載入中…', + 'common.fullscreen' => '全螢幕', + 'common.exitFullscreen' => '退出全螢幕', + 'common.pressBackAgainToExit' => '再按一次返回以退出', + 'screens.licenses' => '授權條款', + 'screens.switchProfile' => '切換使用者', + 'screens.subtitleStyling' => '字幕樣式', + 'screens.mpvConfig' => 'mpv.conf 設定', + 'screens.logs' => '日誌', + 'update.available' => '有可用更新', + 'update.versionAvailable' => ({required Object version}) => '版本 ${version} 已發佈', + 'update.currentVersion' => ({required Object version}) => '目前版本:${version}', + 'update.skipVersion' => '跳過此版本', + 'update.viewRelease' => '查看版本詳情', + 'update.latestVersion' => '已安裝的版本為最新版本', + 'update.checkFailed' => '無法檢查更新', + 'settings.title' => '設定', + 'settings.supportDeveloper' => '贊助 Plezy', + 'settings.supportDeveloperDescription' => '透過 Liberapay 捐款支持開發者', + 'settings.language' => '語言', + 'settings.theme' => '主題', + 'settings.appearance' => '外觀', + 'settings.videoPlayback' => '影片播放', + 'settings.videoPlaybackDescription' => '設定播放行為', + 'settings.advanced' => '進階', + 'settings.episodePosterMode' => '單集海報樣式', + 'settings.seriesPoster' => '影集海報', + 'settings.seasonPoster' => '單季海報', + 'settings.episodeThumbnail' => '縮圖', + 'settings.showHeroSectionDescription' => '在主畫面上顯示精選內容輪播區', + 'settings.secondsLabel' => '秒', + 'settings.minutesLabel' => '分鐘', + 'settings.secondsShort' => '秒', + 'settings.minutesShort' => '分', + 'settings.durationHint' => ({required Object min, required Object max}) => '輸入長度(${min}-${max})', + 'settings.systemTheme' => '系統預設', + 'settings.lightTheme' => '淺色', + 'settings.darkTheme' => '深色', + 'settings.oledTheme' => 'OLED 純黑', + 'settings.libraryDensity' => '媒體庫版面配置密度', + 'settings.compact' => '緊湊', + 'settings.comfortable' => '舒適', + 'settings.tvCornerSpotlightBackdrop' => '右上角焦點背景圖', + 'settings.tvCornerSpotlightBackdropDescription' => '在右上角顯示焦點內容圖片,而非填滿整個畫面', + 'settings.viewMode' => '檢視模式', + 'settings.gridView' => '網格檢視', + 'settings.listView' => '清單檢視', + 'settings.showHeroSection' => '顯示精選內容區', + 'settings.continueWatchingAction' => '繼續觀看操作', + 'settings.continueWatchingPlay' => '播放影片', + 'settings.continueWatchingDetails' => '開啟詳情頁', + 'settings.episodeAction' => '單集操作', + 'settings.episodePlay' => '播放', + 'settings.episodeDetails' => '開啟詳情頁', + 'settings.useGlobalHubs' => '使用首頁版面配置', + 'settings.useGlobalHubsDescription' => '顯示統一的首頁推薦欄,否則使用各媒體庫的推薦內容。', + 'settings.showServerNameOnHubs' => '在推薦欄顯示伺服器名稱', + 'settings.showServerNameOnHubsDescription' => '一律在推薦區標題中顯示伺服器名稱。', + 'settings.groupLibrariesByServer' => '依伺服器將媒體庫分組', + 'settings.groupLibrariesByServerDescription' => '將側邊欄中的媒體庫依伺服器進行分組。', + 'settings.alwaysKeepSidebarOpen' => '一律保持側邊欄展開', + 'settings.alwaysKeepSidebarOpenDescription' => '側邊欄保持展開狀態,內容區域自動調整', + 'settings.showUnwatchedCount' => '顯示未觀看數量', + 'settings.showUnwatchedCountDescription' => '在影集和單季上顯示未觀看的集數', + 'settings.showEpisodeNumberOnCards' => '在卡片上顯示集數', + 'settings.showEpisodeNumberOnCardsDescription' => '在單集卡片上顯示季和集編號', + 'settings.showSeasonPostersOnTabs' => '在索引標籤上顯示單季海報', + 'settings.showSeasonPostersOnTabsDescription' => '在每季標籤上方顯示該季海報', + 'settings.tvFullCardLayout' => '完整 TV 卡片版面配置', + 'settings.tvFullCardLayoutDescription' => '使用僅顯示圖片的 TV 卡片,並在圖片上疊加演員姓名', + 'settings.focusGlow' => '焦點光暈', + 'settings.focusGlowDescription' => '在獲得焦點的卡片周圍顯示柔和的光暈', + 'settings.visualEffects' => '視覺效果', + 'settings.visualEffectsAuto' => '自動', + 'settings.visualEffectsAutoDescription' => '在效能較低的裝置上自動減少效果', + 'settings.visualEffectsFull' => '完整效果', + 'settings.visualEffectsReduced' => '簡化效果', + 'settings.visualEffectsReducedDescription' => '減少動畫並使用較低解析度的封面圖片', + 'settings.hideSpoilers' => '隱藏未觀看單集的劇透內容', + 'settings.hideSpoilersDescription' => '模糊未觀看單集的縮圖與描述', + 'settings.playerBackend' => '播放器引擎', + 'settings.exoPlayer' => 'ExoPlayer', + 'settings.mpv' => 'mpv', + 'settings.hardwareDecoding' => '硬體解碼', + 'settings.hardwareDecodingDescription' => '如果支援,使用硬體加速', + 'settings.bufferSize' => '緩衝區大小', + 'settings.bufferSizeMB' => ({required Object size}) => '${size} MB', + 'settings.bufferSizeAuto' => '自動(推薦)', + 'settings.bufferSizeWarning' => ({required Object heap, required Object size}) => '可用記憶體為 ${heap} MB。設定 ${size} MB 緩衝可能影響播放穩定性。', + 'settings.defaultQualityTitle' => '預設畫質', + 'settings.musicQualityTitle' => '音樂品質', + 'settings.subtitleStyling' => '字幕樣式', + 'settings.subtitleStylingDescription' => '調整字幕外觀', + 'settings.smallSkipDuration' => '短跳過時間', + 'settings.largeSkipDuration' => '長跳過時間', + 'settings.rewindOnResume' => '繼續播放時稍微倒轉', + 'settings.secondsUnit' => ({required Object seconds}) => '${seconds} 秒', + 'settings.defaultSleepTimer' => '預設睡眠計時器', + 'settings.minutesUnit' => ({required Object minutes}) => '${minutes} 分鐘', + 'settings.rememberTrackSelections' => '記住每部影集或電影的音訊與字幕選擇', + 'settings.rememberTrackSelectionsDescription' => '記住每部影片的音軌與字幕選擇', + 'settings.showChapterMarkersOnTimeline' => '在進度條上顯示章節標記', + 'settings.showChapterMarkersOnTimelineDescription' => '依章節分段顯示進度條', + 'settings.clickVideoTogglesPlayback' => '點選影片可切換播放或暫停', + 'settings.clickVideoTogglesPlaybackDescription' => '點選影片即可播放或暫停,而不顯示控制面板。', + 'settings.videoPlayerControls' => '影片播放器控制', + 'settings.keyboardShortcuts' => '鍵盤快速鍵', + 'settings.keyboardShortcutsDescription' => '自訂鍵盤快速鍵', + 'settings.videoPlayerNavigation' => '影片播放器導覽', + 'settings.videoPlayerNavigationDescription' => '使用方向鍵導覽影片播放器控制項', + 'settings.watchTogetherRelay' => '一起看中繼伺服器', + 'settings.watchTogetherRelayDescription' => '設定自訂中繼。所有人必須使用相同的伺服器。', + 'settings.watchTogetherRelayHint' => 'https://my-relay.example.com', + 'settings.watchTogetherRelayInvalid' => '請輸入有效的 HTTP 或 HTTPS 中繼伺服器根網址。', + 'settings.crashReporting' => '當機報告', + 'settings.crashReportingDescription' => '傳送當機報告以協助改善應用程式', + 'settings.debugLogging' => '偵錯日誌', + 'settings.debugLoggingDescription' => '啟用詳細日誌記錄以便進行疑難排解', + 'settings.viewLogs' => '查看日誌', + 'settings.viewLogsDescription' => '查看應用程式日誌記錄', + 'settings.clearCache' => '清除快取', + 'settings.clearCacheDescription' => '清除快取的圖片與資料。再次載入內容時速度可能會變慢。', + 'settings.clearCacheSuccess' => '快取清除成功', + 'settings.resetSettings' => '重設設定', + 'settings.resetSettingsDescription' => '恢復預設設定。此操作無法復原。', + 'settings.resetSettingsSuccess' => '設定重設成功', + 'settings.backup' => '備份', + 'settings.exportSettings' => '匯出設定', + 'settings.exportSettingsDescription' => '將您的偏好設定儲存至檔案', + 'settings.exportSettingsSuccess' => '設定已匯出', + 'settings.importSettings' => '匯入設定', + 'settings.importSettingsDescription' => '從檔案還原偏好設定', + 'settings.importSettingsConfirm' => '這將覆蓋您目前的設定。要繼續嗎?', + 'settings.importSettingsSuccess' => '設定已匯入', + 'settings.importSettingsInvalidFile' => '此檔案不是有效的 Plezy 設定匯出檔', + 'settings.importSettingsNoUser' => '匯入設定前請先登入', + 'settings.shortcutsReset' => '快速鍵已重設為預設值', + 'settings.about' => '關於', + 'settings.aboutDescription' => '應用程式資訊與授權條款', + 'settings.updates' => '更新', + 'settings.updateAvailable' => '有可用更新', + 'settings.checkForUpdates' => '檢查更新', + 'settings.autoCheckUpdatesOnStartup' => '啟動時自動檢查更新', + 'settings.autoCheckUpdatesOnStartupDescription' => '啟動時若有可用更新便顯示通知', + 'settings.validationErrorEnterNumber' => '請輸入有效的數字', + 'settings.validationErrorDuration' => ({required Object min, required Object max, required Object unit}) => '長度必須介於 ${min} 與 ${max} ${unit} 之間', + 'settings.shortcutAlreadyAssigned' => ({required Object action}) => '該快速鍵已指派給 ${action}', + 'settings.shortcutUpdated' => ({required Object action}) => '已更新 ${action} 的快速鍵', + 'settings.saveFailed' => '無法儲存變更。請重試。', + 'settings.autoSkip' => '自動跳過', + 'settings.autoSkipIntro' => '自動跳過片頭', + 'settings.autoSkipIntroDescription' => '幾秒鐘後自動跳過片頭標記', + 'settings.autoSkipCredits' => '自動跳過片尾', + 'settings.autoSkipCreditsDescription' => '自動跳過片尾並播放下一集', + 'settings.forceSkipMarkerFallback' => '強制使用備用標記', + 'settings.forceSkipMarkerFallbackDescription' => '即使 Plex 有標記,也強制使用章節標題模式', + 'settings.autoSkipDelay' => '自動跳過延遲', + 'settings.autoSkipDelayDescription' => ({required Object seconds}) => '自動跳過前等待 ${seconds} 秒', + 'settings.introPattern' => '片頭標記模式', + 'settings.introPatternDescription' => '用於比對章節標題中片頭標記的正規表示式', + 'settings.creditsPattern' => '片尾標記模式', + 'settings.creditsPatternDescription' => '用於比對章節標題中片尾標記的正規表示式', + 'settings.invalidRegex' => '無效的正規表示式', + 'settings.regex' => '正規表示式', + 'settings.downloads' => '下載', + 'settings.downloadLocationDescription' => '選擇下載內容的儲存位置', + 'settings.downloadLocationDefault' => '預設(應用程式專屬儲存空間)', + 'settings.downloadLocationCustom' => '自訂位置', + 'settings.selectFolder' => '選擇資料夾', + 'settings.resetToDefault' => '重設為預設值', + 'settings.currentPath' => ({required Object path}) => '目前路徑:${path}', + 'settings.downloadLocationChanged' => '下載位置已變更', + 'settings.downloadLocationReset' => '下載位置已重設為預設值', + 'settings.downloadLocationInvalid' => '所選資料夾不具寫入權限', + 'settings.downloadLocationPickerUnavailable' => '此裝置無法選擇資料夾', + 'settings.downloadOnWifiOnly' => '僅在 Wi-Fi 連線時下載', + 'settings.downloadOnWifiOnlyDescription' => '使用行動網路時不會下載', + 'settings.autoRemoveWatchedDownloads' => '自動移除已觀看的下載內容', + 'settings.autoRemoveWatchedDownloadsDescription' => '自動刪除已觀看的下載影片', + 'settings.cellularDownloadBlocked' => '使用行動網路時無法下載。請改用 Wi-Fi 或變更設定。', + 'settings.maxVolume' => '最大音量', + 'settings.maxVolumeDescription' => '允許音量調大至 100% 以上,以適應聲音過小的媒體', + 'settings.maxVolumePercent' => ({required Object percent}) => '${percent}%', + 'settings.discordRichPresence' => 'Discord 狀態整合(Rich Presence)', + 'settings.discordRichPresenceDescription' => '在 Discord 上顯示您正在觀看的內容', + 'settings.services' => '外部服務', + 'settings.servicesDescription' => '連結 Trakt、MyAnimeList、Seerr 等服務', + 'settings.manageLibrariesDescription' => '重新排序與隱藏媒體庫', + 'settings.companionRemoteServer' => '隨身遙控器伺服器', + 'settings.companionRemoteServerDescription' => '允許區域網路中的行動裝置控制此應用程式', + 'settings.autoPip' => '自動進入子母畫面', + 'settings.autoPipDescription' => '播放影片時離開應用程式將自動進入子母畫面模式', + 'settings.matchContentFrameRate' => '符合影片影格率', + 'settings.matchContentFrameRateDescription' => '將顯示器更新率同步至影片影格率', + 'settings.matchRefreshRate' => '同步螢幕更新率', + 'settings.matchRefreshRateDescription' => '全螢幕時同步顯示器更新率', + 'settings.matchDynamicRange' => '同步動態範圍', + 'settings.matchDynamicRangeDescription' => 'HDR 內容切換至 HDR,播放結束切回 SDR', + 'settings.displaySwitchDelay' => '顯示器切換延遲時間', + 'settings.tunneledPlayback' => '通道化播放(Tunneled Playback)', + 'settings.tunneledPlaybackDescription' => '使用影片通道模式。若 HDR 播放出現黑畫面,請停用此項。', + 'settings.audioPassthrough' => '音訊直通', + 'settings.audioPassthroughDescription' => '將 Dolby/DTS 音訊不經重新編碼,直接傳送至擴大機或電視以保留環繞音效。若播放無聲,請關閉此設定。', + 'settings.audioPassthroughDescriptionAppleTv' => '使用 Apple 原生 Dolby 解碼器處理 Dolby Digital Plus(包括 Atmos)。DTS 與 TrueHD 仍以多聲道 PCM 播放。若沒有聲音,請關閉此設定。', + 'settings.audioDownmix' => '下混為立體聲', + 'settings.audioDownmixDescription' => '將環繞音效混合為雙聲道,適用於立體聲喇叭或耳機', + 'settings.downmixCenterBoost' => '中置聲道增強', + 'settings.downmixCenterBoostValue' => ({required Object db}) => '${db} dB', + 'settings.downmixCenterBoostLabel' => '增強(dB)', + 'settings.downmixCenterBoostShort' => 'dB', + 'settings.audioDownmixNormalize' => '下混時音量標準化', + 'settings.audioDownmixNormalizeDescription' => '降低混音電平以防止破音。關閉以保持原始音量(大音量場景可能會失真)。', + 'settings.atmosDiagnostics' => 'Atmos 輸出測試', + 'settings.atmosDiagnosticsDescription' => '透過系統播放器播放測試訊號,診斷 Dolby Atmos 輸出狀態', + 'settings.atmosTestHlsAtmos' => 'Apple Atmos 串流', + 'settings.atmosTestHlsAtmosDescription' => '已知正常的 Dolby Atmos 串流。擴大機應顯示 Dolby Atmos。', + 'settings.atmosTestHlsControl' => 'Apple 環繞音效串流', + 'settings.atmosTestHlsControlDescription' => '不含 Atmos 的對照組串流。擴大機應顯示一般環繞音效(非 Atmos)。', + 'settings.atmosTestRawStream' => '原始 EAC3 串流', + 'settings.atmosTestRawStreamDescription' => '以與播放器播放 Atmos 完全相同的方式串流測試檔案。需要測試檔案的 URL。', + 'settings.atmosTestRawFile' => '原始 EAC3 檔案', + 'settings.atmosTestRawFileDescription' => '以已知長度播放測試檔案。需要測試檔案的 URL。', + 'settings.atmosTestStop' => '停止測試', + 'settings.atmosTestUrl' => '測試檔案 URL', + 'settings.atmosTestUrlDescription' => '原始 .ec3 Dolby Atmos 檔案的 HTTP URL(例如使用 ffmpeg 提取的檔案)', + 'settings.atmosTestUrlMissing' => '請先設定測試檔案的 URL', + 'settings.atmosTestStatus' => '狀態', + 'settings.dvConversionMode' => 'Dolby Vision 轉換模式', + 'settings.dvConversionModeDescription' => '選擇 ExoPlayer 如何處理 Dolby Vision Profile 7 檔案。', + 'settings.dvConversionAuto' => '自動', + 'settings.dvConversionNative' => '原生 / 停用', + 'settings.dvConversionDv81' => 'P7 → P8.1', + 'settings.dvConversionHevcStrip' => 'P7 → HEVC', + 'settings.dvConversionAutoDescription' => '自動偵測裝置相容性並使用一般備援機制', + 'settings.dvConversionNativeDescription' => '強制使用原生 DV7 並停用 DV 轉換重試', + 'settings.dvConversionDv81Description' => '強制將內嵌的 RPU 轉換為 Dolby Vision Profile 8.1', + 'settings.dvConversionHevcStripDescription' => '移除 Dolby Vision RPU/EL 層,並以一般 HEVC 呈現', + 'settings.requireProfileSelectionOnOpen' => '開啟應用程式時要求選擇使用者', + 'settings.requireProfileSelectionOnOpenDescription' => '每次開啟應用程式時顯示使用者設定檔選擇畫面', + 'settings.forceTvMode' => '強制 TV 模式', + 'settings.forceTvModeDescription' => '強制使用 TV 介面版面。適用於無法自動辨識 TV 的裝置。需要重新啟動。', + 'settings.startInFullscreen' => '以全螢幕模式啟動', + 'settings.startInFullscreenDescription' => '啟動時直接以全螢幕開啟 Plezy', + 'settings.exitFullscreenOnPlayerClose' => '關閉播放器時退出全螢幕', + 'settings.exitFullscreenOnPlayerCloseDescription' => '關閉影片播放器時自動退出全螢幕模式', + 'settings.autoHidePerformanceOverlay' => '自動隱藏效能疊加層', + 'settings.autoHidePerformanceOverlayDescription' => '效能疊加層隨播放控制面板一起淡入或淡出', + 'settings.showNavBarLabels' => '顯示導覽列標籤', + 'settings.showNavBarLabelsDescription' => '在導覽列圖示下方顯示文字標籤', + 'settings.startupSection' => '啟動頁面', + 'settings.liveTvDefaultFavorites' => '預設顯示最愛頻道', + 'settings.liveTvDefaultFavoritesDescription' => '開啟直播電視時僅顯示最愛頻道', + 'settings.display' => '顯示器', + 'settings.homeScreen' => '主畫面', + 'settings.navigation' => '導覽', + 'settings.window' => '視窗', + 'settings.content' => '內容', + 'settings.player' => '播放器', + 'settings.subtitlesAndConfig' => '字幕與設定', + 'settings.seekAndTiming' => '跳轉與計時', + 'settings.behavior' => '行為', + 'search.hint' => '搜尋電影、影集、音樂…', + 'search.tryDifferentTerm' => '嘗試不同的關鍵字', + 'search.searchYourMedia' => '搜尋媒體庫', + 'search.enterTitleActorOrKeyword' => '輸入標題、演員或關鍵字', + 'hotkeys.setShortcutFor' => ({required Object actionName}) => '為 ${actionName} 設定快速鍵', + 'hotkeys.clearShortcut' => '清除快速鍵', + 'hotkeys.noShortcutSet' => '未設定快速鍵', + 'hotkeys.currentShortcut' => '目前快速鍵:', + 'hotkeys.pressToRecord' => '選擇以錄製快速鍵', + 'hotkeys.recordingShortcut' => '現在請按下快速鍵組合', + 'hotkeys.actions.playPause' => '播放/暫停', + 'hotkeys.actions.volumeUp' => '調大音量', + 'hotkeys.actions.volumeDown' => '調小音量', + 'hotkeys.actions.seekForward' => ({required Object seconds}) => '快進(${seconds} 秒)', + 'hotkeys.actions.seekBackward' => ({required Object seconds}) => '快退(${seconds} 秒)', + 'hotkeys.actions.fullscreenToggle' => '切換全螢幕', + 'hotkeys.actions.muteToggle' => '切換靜音', + 'hotkeys.actions.subtitleToggle' => '切換字幕', + 'hotkeys.actions.audioTrackNext' => '下一個音軌', + 'hotkeys.actions.subtitleTrackNext' => '下一個字幕軌', + 'hotkeys.actions.chapterNext' => '下一個章節', + 'hotkeys.actions.chapterPrevious' => '上一個章節', + 'hotkeys.actions.episodeNext' => '下一集', + 'hotkeys.actions.episodePrevious' => '上一集', + 'hotkeys.actions.speedIncrease' => '加速播放', + 'hotkeys.actions.speedDecrease' => '減速播放', + 'hotkeys.actions.speedReset' => '重設速度', + 'hotkeys.actions.zoomIn' => '放大', + 'hotkeys.actions.zoomOut' => '縮小', + 'hotkeys.actions.zoomReset' => '重設縮放', + 'hotkeys.actions.subSeekNext' => '跳轉至下一句字幕', + 'hotkeys.actions.subSeekPrev' => '跳轉至上一句字幕', + 'hotkeys.actions.shaderToggle' => '切換著色器', + 'hotkeys.actions.skipMarker' => '跳過片頭/片尾', + 'hotkeys.actions.screenshot' => '螢幕截圖', + 'fileInfo.title' => '檔案資訊', + 'fileInfo.video' => '影片', + 'fileInfo.audio' => '音訊', + 'fileInfo.file' => '檔案', + 'fileInfo.advanced' => '進階', + 'fileInfo.codec' => '編解碼器', + 'fileInfo.resolution' => '解析度', + 'fileInfo.bitrate' => '位元率', + 'fileInfo.frameRate' => '影格率', + 'fileInfo.aspectRatio' => '寬高比', + 'fileInfo.profile' => '規格檔(Profile)', + 'fileInfo.bitDepth' => '位元深度', + 'fileInfo.colorSpace' => '色彩空間', + 'fileInfo.colorRange' => '色彩範圍', + 'fileInfo.colorPrimaries' => '色彩基色', + 'fileInfo.chromaSubsampling' => '色度抽樣', + 'fileInfo.channels' => '聲道數', + 'fileInfo.subtitles' => '字幕', + 'fileInfo.overallBitrate' => '總位元率', + 'fileInfo.path' => '路徑', + 'fileInfo.size' => '大小', + 'fileInfo.container' => '封裝格式', + 'fileInfo.duration' => '長度', + 'fileInfo.optimizedForStreaming' => '已最佳化串流播放', + 'fileInfo.has64bitOffsets' => '具 64 位元偏移量', + 'mediaMenu.markAsWatched' => '標記為已觀看', + 'mediaMenu.markAsUnwatched' => '標記為未觀看', + 'mediaMenu.removeFromContinueWatching' => '從「繼續觀看」中移除', + 'mediaMenu.viewDetails' => '查看詳情', + 'mediaMenu.goToSeries' => '前往影集', + 'mediaMenu.shufflePlay' => '隨機播放', + 'mediaMenu.shuffleNotAvailableOffline' => '離線時無法隨機播放', + 'mediaMenu.fileInfo' => '檔案資訊', + 'mediaMenu.deleteFromServer' => '從伺服器刪除', + 'mediaMenu.confirmDelete' => '確定要從伺服器刪除此媒體及其檔案嗎?', + 'mediaMenu.deleteMultipleWarning' => '這將會刪除所有單集及其檔案。', + 'mediaMenu.mediaDeletedSuccessfully' => '媒體已成功刪除', + 'mediaMenu.mediaFailedToDelete' => '刪除媒體失敗', + 'mediaMenu.rate' => '評分', + 'mediaMenu.playFromBeginning' => '從頭播放', + 'mediaMenu.playVersion' => '播放版本…', + 'rateSheet.title' => '評分', + 'rateSheet.server' => '伺服器', + 'rateSheet.favorite' => '最愛', + 'rateSheet.favorited' => '已加入最愛', + 'rateSheet.saved' => '已儲存', + 'rateSheet.notAvailable' => '找不到相符項目', + 'rateSheet.noConnectedServices' => '在設定中連結外部服務後,即可在此評分。', + 'accessibility.mediaCardMovie' => ({required Object title}) => '${title}, 電影', + 'accessibility.mediaCardShow' => ({required Object title}) => '${title}, 影集', + 'accessibility.mediaCardEpisode' => ({required Object title, required Object episodeInfo}) => '${title}, ${episodeInfo}', + 'accessibility.mediaCardSeason' => ({required Object title, required Object seasonInfo}) => '${title}, ${seasonInfo}', + 'accessibility.mediaCardWatched' => '已觀看', + 'accessibility.mediaCardPartiallyWatched' => ({required Object percent}) => '已觀看 ${percent}%', + 'accessibility.mediaCardUnwatched' => '未觀看', + 'accessibility.tapToPlay' => '輕觸即可播放', + 'accessibility.decrease' => '減小', + 'accessibility.increase' => '增大', + 'accessibility.decreaseValue' => ({required Object label}) => '減小 ${label}', + 'accessibility.increaseValue' => ({required Object label}) => '增大 ${label}', + 'accessibility.hue' => '色相', + 'accessibility.saturation' => '飽和度', + 'accessibility.brightness' => '亮度', + 'accessibility.hexColor' => 'Hex 顏色值', + 'accessibility.expandText' => '展開文字', + 'accessibility.collapseText' => '收合文字', + 'accessibility.alphabetNavigation' => '字母導覽', + 'accessibility.alphabetScrollHint' => '向上或向下滑動以按字母移動', + 'accessibility.rowColumnPosition' => ({required Object row, required Object rowCount, required Object column, required Object columnCount}) => '第 ${row} 列,共 ${rowCount} 列;第 ${column} 欄,共 ${columnCount} 欄', + 'accessibility.rowPosition' => ({required Object row, required Object rowCount}) => '第 ${row} 列,共 ${rowCount} 列', + 'tooltips.shufflePlay' => '隨機播放', + 'tooltips.playTrailer' => '播放預告片', + 'tooltips.markAsWatched' => '標記為已觀看', + 'tooltips.markAsUnwatched' => '標記為未觀看', + 'audioTracks.track' => ({required Object n}) => '音軌 ${n}', + 'videoControls.audioLabel' => '音訊', + 'videoControls.subtitlesLabel' => '字幕', + 'videoControls.resetToZero' => '重設為 0 ms', + 'videoControls.addTime' => ({required Object amount, required Object unit}) => '+${amount} ${unit}', + 'videoControls.minusTime' => ({required Object amount, required Object unit}) => '-${amount} ${unit}', + 'videoControls.playsLater' => ({required Object label}) => '${label} 延後播放', + 'videoControls.playsEarlier' => ({required Object label}) => '${label} 提前播放', + 'videoControls.noOffset' => '無偏移', + 'videoControls.letterbox' => '信箱模式(Letterbox)', + 'videoControls.fillScreen' => '填滿螢幕', + 'videoControls.stretch' => '拉伸', + 'videoControls.lockRotation' => '鎖定旋轉', + 'videoControls.unlockRotation' => '解除鎖定旋轉', + 'videoControls.timerActive' => '計時器已啟動', + 'videoControls.playbackWillPauseIn' => ({required Object duration}) => '播放將在 ${duration} 後暫停', + 'videoControls.sleepTimerEndOfVideo' => '目前影片結束時', + 'videoControls.sleepTimerStopAtHeader' => '停止於', + 'videoControls.sleepTimerDurationHeader' => '計時器', + 'videoControls.playbackWillPauseAtEnd' => '播放將在此影片結束時暫停', + 'videoControls.stillWatching' => '您還在觀看嗎?', + 'videoControls.pausingIn' => ({required Object seconds}) => '${seconds} 秒後暫停', + 'videoControls.continueWatching' => '繼續播放', + 'videoControls.autoPlayNext' => '自動播放下一集', + 'videoControls.playNext' => '播放下一集', + 'videoControls.playButton' => '播放', + 'videoControls.pauseButton' => '暫停', + 'videoControls.showPlaybackControls' => '顯示播放控制項', + 'videoControls.hidePlaybackControls' => '隱藏播放控制項', + 'videoControls.seekBackwardButton' => ({required Object seconds}) => '後退 ${seconds} 秒', + 'videoControls.seekForwardButton' => ({required Object seconds}) => '前進 ${seconds} 秒', + 'videoControls.previousButton' => '上一集', + 'videoControls.nextButton' => '下一集', + 'videoControls.previousChapterButton' => '上一個章節', + 'videoControls.nextChapterButton' => '下一個章節', + 'videoControls.muteButton' => '靜音', + 'videoControls.unmuteButton' => '取消靜音', + 'videoControls.settingsButton' => '播放設定', + 'videoControls.tracksButton' => '音訊與字幕', + 'videoControls.chaptersButton' => '章節', + 'videoControls.versionQualityButton' => '版本與畫質', + 'videoControls.versionColumnHeader' => '版本', + 'videoControls.qualityColumnHeader' => '畫質', + 'videoControls.qualityOriginal' => '原始畫質', + 'videoControls.qualityPresetLabel' => ({required Object resolution, required Object bitrate}) => '${resolution}p ${bitrate} Mbps', + 'videoControls.transcodeUnavailableFallback' => '無法使用轉碼 — 將以原始畫質播放', + 'videoControls.subtitleUnavailableFallback' => '無法載入所選字幕 — 將繼續無字幕播放', + 'videoControls.pipButton' => '子母畫面模式', + 'videoControls.aspectRatioButton' => '寬高比', + 'videoControls.ambientLighting' => '氛圍燈光', + 'videoControls.fullscreenButton' => '進入全螢幕', + 'videoControls.exitFullscreenButton' => '退出全螢幕', + 'videoControls.alwaysOnTopButton' => '視窗置頂', + 'videoControls.rotationLockButton' => '旋轉鎖定', + 'videoControls.lockScreen' => '鎖定螢幕', + 'videoControls.screenLockButton' => '螢幕鎖定', + 'videoControls.longPressToUnlock' => '長按解鎖', + 'videoControls.timelineSlider' => '影片時間軸', + 'videoControls.volumeSlider' => '音量調整', + 'videoControls.endsAt' => ({required Object time}) => '預計 ${time} 結束', + 'videoControls.pipActive' => '正在以子母畫面模式播放', + 'videoControls.pipFailed' => '啟動子母畫面失敗', + 'videoControls.screenshotSaved' => '螢幕截圖已儲存', + 'videoControls.zoomPercent' => ({required Object percent}) => '縮放 ${percent}%', + 'videoControls.pipErrors.androidVersion' => '需要 Android 8.0 或更高版本', + 'videoControls.pipErrors.iosVersion' => '需要 iOS 15.0 或更高版本', + 'videoControls.pipErrors.permissionDisabled' => '子母畫面權限已停用。請在系統設定中啟用。', + 'videoControls.pipErrors.notSupported' => '此裝置不支援子母畫面模式', + 'videoControls.pipErrors.voSwitchFailed' => '無法切換子母畫面的影片輸出', + 'videoControls.pipErrors.failed' => '啟動子母畫面失敗', + 'videoControls.pipErrors.unknown' => ({required Object error}) => '發生錯誤:${error}', + 'videoControls.chapters' => '章節', + 'videoControls.noChaptersAvailable' => '沒有可用的章節', + 'videoControls.queue' => '播放佇列', + 'videoControls.noQueueItems' => '佇列中沒有項目', + 'videoControls.searchSubtitles' => '搜尋字幕', + 'videoControls.language' => '語言', + 'videoControls.noSubtitlesFound' => '找不到字幕', + 'videoControls.noSubtitlesAvailable' => '沒有可用的字幕', + 'videoControls.noAudioTracksAvailable' => '沒有可用的音軌', + 'videoControls.noTracksAvailable' => '沒有可用的音訊或字幕', + 'videoControls.subtitleDownloaded' => '字幕下載成功', + 'videoControls.subtitleDownloadedNotApplied' => '字幕已下載,但無法套用', + 'videoControls.subtitleDownloadFailed' => '字幕下載失敗', + 'videoControls.searchLanguages' => '搜尋語言…', + _ => null, + } ?? switch (path) { + 'messages.markedAsWatched' => '已標記為已觀看', + 'messages.markedAsUnwatched' => '已標記為未觀看', + 'messages.markedAsWatchedOffline' => '已標記為已觀看(將在連線時同步)', + 'messages.markedAsUnwatchedOffline' => '已標記為未觀看(將在連線時同步)', + 'messages.autoRemovedWatchedDownload' => ({required Object title}) => '已自動移除:${title}', + 'messages.autoRemovedWatchedDownloads' => ({required num n}) => (_root.$meta.cardinalResolver ?? PluralResolvers.cardinal('zh'))(n, other: '已自動移除 ${n} 個已觀看的下載內容', ), + 'messages.removedFromContinueWatching' => '已從「繼續觀看」中移除', + 'messages.errorLoading' => ({required Object error}) => '錯誤:${error}', + 'messages.streamInterrupted' => '影片串流中斷。請按播放鍵或拖動進度條重試。', + 'messages.liveStreamInterrupted' => '直播串流中斷。請按播放鍵重試。', + 'messages.fileInfoNotAvailable' => '無法取得檔案資訊', + 'messages.playbackAuthenticationRequired' => '若要播放此項目,請重新登入媒體伺服器。', + 'messages.playbackServerUnavailable' => '媒體伺服器目前無法使用。請稍後再試。', + 'messages.playbackDataInvalid' => '伺服器傳回的播放資訊無效。', + 'messages.playbackCancelled' => '播放已取消。', + 'messages.playbackFailed' => '無法開始播放。', + 'messages.errorLoadingFileInfo' => ({required Object error}) => '載入檔案資訊時發生錯誤:${error}', + 'messages.errorLoadingSeries' => '載入影集時發生錯誤', + 'messages.musicNotSupported' => '目前不支援播放音樂', + 'messages.noDescriptionAvailable' => '目前沒有描述', + 'messages.noProfilesAvailable' => '沒有可用的使用者設定檔', + 'messages.contactAdminForProfiles' => '請聯絡伺服器管理員新增使用者設定檔', + 'messages.unableToDetermineLibrarySection' => '無法確定此項目的媒體庫分區', + 'messages.logsCleared' => '日誌已清除', + 'messages.logsCopied' => '日誌已複製到剪貼簿', + 'messages.noLogsAvailable' => '沒有可用的日誌', + 'messages.libraryScanning' => ({required Object title}) => '正在掃描「${title}」…', + 'messages.libraryScanStarted' => ({required Object title}) => '已開始掃描「${title}」媒體庫', + 'messages.libraryScanFailed' => ({required Object error}) => '無法掃描媒體庫:${error}', + 'messages.metadataRefreshing' => ({required Object title}) => '正在重新整理「${title}」的中繼資料…', + 'messages.metadataRefreshStarted' => ({required Object title}) => '已開始重新整理「${title}」的中繼資料', + 'messages.metadataRefreshFailed' => ({required Object error}) => '無法重新整理中繼資料:${error}', + 'messages.logoutConfirm' => '您確定要登出嗎?', + 'messages.noSeasonsFound' => '找不到季數', + 'messages.seasonsLoadFailed' => '無法載入季數', + 'messages.noEpisodesFound' => '在第一季中找不到單集', + 'messages.noEpisodesFoundGeneral' => '找不到單集', + 'messages.episodesLoadFailed' => '無法載入單集', + 'messages.noResultsFound' => '找不到結果', + 'messages.sleepTimerSet' => ({required Object label}) => '睡眠計時器已設定為 ${label}', + 'messages.noItemsAvailable' => '沒有可用的項目', + 'messages.failedToCreatePlayQueueNoItems' => '無法建立播放佇列 — 沒有項目', + 'messages.failedPlayback' => ({required Object action, required Object error}) => '無法${action}:${error}', + 'messages.switchingToCompatiblePlayer' => '正在切換至相容的播放器…', + 'messages.serverLimitTitle' => '播放失敗', + 'messages.serverLimitBody' => '伺服器錯誤(HTTP 500)。伺服器的頻寬或轉碼限制可能拒絕此播放要求。請聯絡伺服器擁有者調整設定。', + 'messages.logsUploaded' => '日誌已上傳', + 'messages.logsUploadFailed' => '上傳日誌失敗', + 'messages.logId' => '日誌 ID', + 'subtitlingStyling.text' => '文字', + 'subtitlingStyling.border' => '邊框', + 'subtitlingStyling.background' => '背景', + 'subtitlingStyling.fontSize' => '字型大小', + 'subtitlingStyling.textColor' => '文字顏色', + 'subtitlingStyling.borderSize' => '邊框大小', + 'subtitlingStyling.borderColor' => '邊框顏色', + 'subtitlingStyling.backgroundOpacity' => '背景不透明度', + 'subtitlingStyling.backgroundColor' => '背景顏色', + 'subtitlingStyling.position' => '位置', + 'subtitlingStyling.assOverride' => '覆蓋 ASS 樣式', + 'subtitlingStyling.overrideScale' => '縮放', + 'subtitlingStyling.overrideForce' => '強制套用', + 'subtitlingStyling.overrideStrip' => '移除樣式', + 'subtitlingStyling.positionTop' => '頂部', + 'subtitlingStyling.positionBottom' => '底部', + 'subtitlingStyling.bold' => '粗體', + 'subtitlingStyling.italic' => '斜體', + 'subtitlingStyling.renderResolution' => '渲染解析度', + 'subtitlingStyling.renderResolutionScreen' => '螢幕解析度', + 'subtitlingStyling.renderResolutionVideo' => '影片解析度', + 'mpvConfig.title' => 'mpv 設定', + 'mpvConfig.description' => '進階影片播放器設定', + 'mpvConfig.presets' => '預設組', + 'mpvConfig.noPresets' => '沒有儲存的預設組', + 'mpvConfig.saveAsPreset' => '儲存為預設組…', + 'mpvConfig.presetName' => '預設組名稱', + 'mpvConfig.presetNameHint' => '輸入此預設組的名稱', + 'mpvConfig.loadPreset' => '載入', + 'mpvConfig.deletePreset' => '刪除', + 'mpvConfig.presetSaved' => '預設組已儲存', + 'mpvConfig.presetLoaded' => '預設組已載入', + 'mpvConfig.presetDeleted' => '預設組已刪除', + 'mpvConfig.confirmDeletePreset' => '確定要刪除此預設組嗎?', + 'mpvConfig.configPlaceholder' => 'gpu-api=vulkan\nhwdec=auto\n# 註解', + 'dialog.confirmAction' => '確認操作', + 'profiles.addPlezyProfile' => '新增 Plezy 使用者設定檔', + 'profiles.switchingProfile' => '正在切換使用者設定檔…', + 'profiles.deleteThisProfileTitle' => '刪除此使用者設定檔?', + 'profiles.deleteThisProfileMessage' => ({required Object displayName}) => '將移除 ${displayName}。連線資訊將不受影響。', + 'profiles.active' => '使用中', + 'profiles.manage' => '管理', + 'profiles.delete' => '刪除', + 'profiles.signOut' => '登出', + 'profiles.signOutPlexTitle' => '登出 Plex?', + 'profiles.signOutPlexMessage' => ({required Object displayName}) => '確定要移除 ${displayName} 與所有 Plex Home 使用者嗎?您可以隨時重新登入。', + 'profiles.signedOutPlex' => '已登出 Plex。', + 'profiles.signOutFailed' => '登出失敗。', + 'profiles.sectionTitle' => '使用者設定檔', + 'profiles.summarySingle' => '新增使用者設定檔,以同時管理託管使用者與本地身分', + 'profiles.summaryMultipleWithActive' => ({required Object count, required Object activeName}) => '${count} 個設定檔 · 使用中:${activeName}', + 'profiles.summaryMultiple' => ({required Object count}) => '${count} 個設定檔', + 'profiles.removeConnectionTitle' => '移除連線?', + 'profiles.removeConnectionMessage' => ({required Object displayName, required Object connectionLabel}) => '將移除 ${displayName} 對 ${connectionLabel} 的存取權限。其他使用者設定檔仍可使用此連線。', + 'profiles.deleteProfileTitle' => '刪除使用者設定檔?', + 'profiles.deleteProfileMessage' => ({required Object displayName}) => '將移除 ${displayName} 及其連線資訊。伺服器仍維持可用狀態。', + 'profiles.profileNameLabel' => '使用者設定檔名稱', + 'profiles.pinProtectionLabel' => 'PIN 碼保護', + 'profiles.pinManagedByPlex' => 'PIN 碼由 Plex 管理。請至 plex.tv 進行編輯。', + 'profiles.noPinSetEditOnPlex' => '未設定 PIN 碼。如需啟用 PIN 碼限制,請在 plex.tv 編輯 Home 使用者設定。', + 'profiles.setPin' => '設定 PIN 碼', + 'profiles.setPinTitle' => '設定 PIN 碼', + 'profiles.confirmPinTitle' => '確認 PIN 碼', + 'profiles.pinSet' => 'PIN 碼已設定', + 'profiles.changePin' => '變更', + 'profiles.removePin' => '移除', + 'profiles.connectionsLabel' => '連線', + 'profiles.add' => '新增', + 'profiles.deleteProfileButton' => '刪除使用者設定檔', + 'profiles.noConnectionsHint' => '無連線 — 請新增一個連線以啟用此設定檔。', + 'profiles.noConnections' => '無連線資訊', + 'profiles.plexHomeAccount' => 'Plex Home 帳戶', + 'profiles.connectionDefault' => '預設', + 'profiles.connectionAs' => ({required Object displayName}) => '以 ${displayName} 身分', + 'profiles.makeDefault' => '設為預設值', + 'profiles.removeConnection' => '移除', + 'profiles.profileRenamed' => '使用者設定檔已重新命名。', + 'profiles.borrowAddTo' => ({required Object displayName}) => '新增至 ${displayName}', + 'profiles.borrowExplain' => '共用另一個使用者設定檔的連線資訊。受 PIN 碼保護的設定檔需輸入 PIN 碼。', + 'profiles.borrowEmpty' => '目前沒有可共用的連線。', + 'profiles.borrowEmptySubtitle' => '請先將 Plex 或 Jellyfin 連線至另一個使用者設定檔。', + 'profiles.borrowLoadFailed' => '無法載入可用的連線。請重試。', + 'profiles.borrowFromProfile' => ({required Object displayName}) => '來自 ${displayName}', + 'profiles.borrowConnectionBorrowed' => '已共用連線。', + 'profiles.borrowFailed' => '無法共用連線。', + 'profiles.incorrectPin' => 'PIN 碼不正確。', + 'profiles.incorrectPinTryAgain' => 'PIN 碼不正確。請重試。', + 'profiles.sourceProfileMissingParentAccount' => '來源使用者設定檔缺少其父帳戶資訊。', + 'profiles.failedToLoadHomeUsers' => '無法載入您的 Plex Home 使用者。請檢查網路連線後重試。', + 'profiles.failedToVerifyPin' => '無法驗證 PIN 碼。', + 'profiles.newProfile' => '建立使用者設定檔', + 'profiles.profileNameHint' => '例如:訪客、兒童、客廳', + 'profiles.pinProtectionOptional' => 'PIN 碼保護(選填)', + 'profiles.pinExplain' => '切換至此使用者設定檔時需要 4 位數 PIN 碼。', + 'profiles.continueButton' => '繼續', + 'profiles.pinsDontMatch' => 'PIN 碼不符合', + 'connections.sectionTitle' => '連線', + 'connections.addConnection' => '新增連線', + 'connections.addConnectionSubtitleNoProfile' => '使用 Plex 登入或連線至 Jellyfin 伺服器', + 'connections.addConnectionSubtitleScoped' => ({required Object displayName}) => '新增至 ${displayName}:Plex、Jellyfin 或其他設定檔連線', + 'connections.sessionExpiredOne' => ({required Object name}) => '${name} 的工作階段已過期', + 'connections.sessionExpiredMany' => ({required Object count}) => '${count} 個伺服器的工作階段已過期', + 'connections.signInAgain' => '重新登入', + 'connections.editJellyfinTitle' => '編輯 Jellyfin 連線', + 'connections.editJellyfinIntro' => ({required Object serverName}) => '新增或移除 ${serverName} 的 URL。Plezy 會自動選擇可連線且延遲最低的網址。', + 'discover.title' => '發現', + 'discover.noContentAvailable' => '沒有可用內容', + 'discover.addMediaToLibraries' => '請向您的媒體庫新增一些媒體內容', + 'discover.continueWatching' => '繼續觀看', + 'discover.continueWatchingIn' => ({required Object library}) => '繼續在 ${library} 觀看', + 'discover.nextUp' => '接下來播放', + 'discover.nextUpIn' => ({required Object library}) => '接下來在 ${library} 播放', + 'discover.recentlyAdded' => '最近新增', + 'discover.recentlyAddedIn' => ({required Object library}) => '最近新增至 ${library}', + 'discover.latestAlbumsIn' => ({required Object library}) => '${library} 中的最新專輯', + 'discover.recentlyPlayedIn' => ({required Object library}) => '最近在 ${library} 播放', + 'discover.mostPlayedIn' => ({required Object library}) => '在 ${library} 最常播放', + 'discover.playEpisode' => ({required Object season, required Object episode}) => '第 ${season} 季 第 ${episode} 集', + 'discover.overview' => '概述', + 'discover.cast' => '演員陣容', + 'discover.extras' => '預告片與花絮', + 'discover.studio' => '製作商', + 'discover.rating' => '分級', + 'discover.movie' => '電影', + 'discover.tvShow' => '影集', + 'discover.minutesLeft' => ({required Object minutes}) => '剩餘 ${minutes} 分鐘', + 'discover.moreLikeThis' => '更多類似內容', + 'errors.searchFailed' => ({required Object error}) => '搜尋失敗:${error}', + 'errors.connectionTimeout' => ({required Object context}) => '載入 ${context} 時連線逾時', + 'errors.connectionFailed' => '無法連線至媒體伺服器', + 'errors.unableToLoad' => ({required Object context}) => '無法載入 ${context}。請重試。', + 'errors.noClientAvailable' => '沒有可用用戶端', + 'errors.pleaseEnterToken' => '請輸入 Token', + 'errors.invalidToken' => 'Token 無效', + 'errors.failedToVerifyToken' => ({required Object error}) => '無法驗證 Token:${error}', + 'errors.failedToSwitchProfile' => ({required Object displayName}) => '無法切換至 ${displayName}', + 'errors.failedToDeleteProfile' => ({required Object displayName}) => '無法刪除 ${displayName}', + 'errors.failedToRate' => '無法更新評分', + 'libraries.title' => '媒體庫', + 'libraries.fallbackTitle' => '媒體庫', + 'libraries.scanLibraryFiles' => '掃描媒體庫檔案', + 'libraries.scanLibrary' => '掃描媒體庫', + 'libraries.analyze' => '分析', + 'libraries.analyzeLibrary' => '分析媒體庫', + 'libraries.refreshMetadata' => '重新整理中繼資料', + 'libraries.emptyTrash' => '清空垃圾桶', + 'libraries.emptyingTrash' => ({required Object title}) => '正在清空「${title}」的垃圾桶…', + 'libraries.trashEmptied' => ({required Object title}) => '已清空「${title}」的垃圾桶', + 'libraries.failedToEmptyTrash' => ({required Object error}) => '無法清空垃圾桶:${error}', + 'libraries.analyzing' => ({required Object title}) => '正在分析「${title}」…', + 'libraries.analysisStarted' => ({required Object title}) => '已開始分析「${title}」', + 'libraries.failedToAnalyze' => ({required Object error}) => '無法分析媒體庫:${error}', + 'libraries.noLibrariesFound' => '找不到媒體庫', + 'libraries.allLibrariesHidden' => '所有媒體庫都已隱藏', + 'libraries.hiddenLibrariesCount' => ({required Object count}) => '已隱藏的媒體庫(${count})', + 'libraries.thisLibraryIsEmpty' => '此媒體庫為空', + 'libraries.noItemsMatchFilters' => '沒有符合目前篩選條件的項目', + 'libraries.resetFilters' => '重設篩選條件', + 'libraries.all' => '全部', + 'libraries.clearAll' => '全部清除', + 'libraries.scanLibraryConfirm' => ({required Object title}) => '確定要掃描「${title}」嗎?', + 'libraries.analyzeLibraryConfirm' => ({required Object title}) => '確定要分析「${title}」嗎?', + 'libraries.refreshMetadataConfirm' => ({required Object title}) => '確定要重新整理「${title}」的中繼資料嗎?', + 'libraries.emptyTrashConfirm' => ({required Object title}) => '確定要清空「${title}」的垃圾桶嗎?', + 'libraries.manageLibraries' => '管理媒體庫', + 'libraries.sort' => '排序', + 'libraries.sortBy' => '排序依據', + 'libraries.filters' => '篩選器', + 'libraries.confirmActionMessage' => '確定要執行此操作嗎?', + 'libraries.showLibrary' => '顯示媒體庫', + 'libraries.hideLibrary' => '隱藏媒體庫', + 'libraries.libraryOptions' => '媒體庫選項', + 'libraries.content' => '媒體庫內容', + 'libraries.selectLibrary' => '選擇媒體庫', + 'libraries.filtersWithCount' => ({required Object count}) => '篩選器(${count})', + 'libraries.noRecommendations' => '目前沒有推薦', + 'libraries.noCollections' => '此媒體庫中沒有收藏集', + 'libraries.noFoldersFound' => '找不到資料夾', + 'libraries.folders' => '資料夾', + 'libraries.tabs.recommended' => '推薦', + 'libraries.tabs.browse' => '瀏覽', + 'libraries.tabs.collections' => '收藏集', + 'libraries.tabs.playlists' => '播放清單', + 'libraries.groupings.title' => '分組', + 'libraries.groupings.all' => '全部', + 'libraries.groupings.movies' => '電影', + 'libraries.groupings.shows' => '影集', + 'libraries.groupings.seasons' => '季', + 'libraries.groupings.episodes' => '集', + 'libraries.groupings.artists' => '演出者', + 'libraries.groupings.albums' => '專輯', + 'libraries.groupings.tracks' => '曲目', + 'libraries.groupings.folders' => '資料夾', + 'libraries.filterCategories.genre' => '類型', + 'libraries.filterCategories.year' => '年份', + 'libraries.filterCategories.contentRating' => '分級', + 'libraries.filterCategories.tag' => '標籤', + 'libraries.filterCategories.unwatched' => '未觀看', + 'libraries.filterCategories.unplayed' => '未播放', + 'libraries.filterCategories.favorites' => '我的最愛', + 'libraries.sortLabels.title' => '標題', + 'libraries.sortLabels.dateAdded' => '新增日期', + 'libraries.sortLabels.releaseDate' => '發行日期', + 'libraries.sortLabels.rating' => '評分', + 'libraries.sortLabels.communityRating' => '社群評分', + 'libraries.sortLabels.criticRating' => '影評人評分', + 'libraries.sortLabels.userRating' => '使用者評分', + 'libraries.sortLabels.datePlayed' => '播放日期', + 'libraries.sortLabels.playCount' => '播放次數', + 'libraries.sortLabels.productionYear' => '製作年份', + 'libraries.sortLabels.runtime' => '片長', + 'libraries.sortLabels.officialRating' => '官方分級', + 'libraries.sortLabels.premiereDate' => '首映日期', + 'libraries.sortLabels.startDate' => '開始日期', + 'libraries.sortLabels.airTime' => '播出時間', + 'libraries.sortLabels.studio' => '工作室', + 'libraries.sortLabels.random' => '隨機', + 'libraries.sortLabels.dateShared' => '分享日期', + 'libraries.sortLabels.latestEpisodeAirDate' => '最新一集播出日期', + 'libraries.sortLabels.lastEpisodeDateAdded' => '最新一集新增日期', + 'about.title' => '關於', + 'about.openSourceLicenses' => '開源授權條款', + 'about.versionLabel' => ({required Object version}) => '版本 ${version}', + 'about.appDescription' => '一款精美的 Plex 與 Jellyfin Flutter 用戶端', + 'about.viewLicensesDescription' => '查看第三方套件的授權條款', + 'serverSelection.noServersFoundForAccount' => ({required Object username, required Object email}) => '找不到 ${username}(${email}) 的伺服器', + 'serverSelection.failedToLoadServers' => ({required Object error}) => '無法載入伺服器:${error}', + 'hubDetail.title' => '標題', + 'hubDetail.releaseYear' => '發行年份', + 'hubDetail.dateAdded' => '新增日期', + 'hubDetail.rating' => '評分', + 'hubDetail.noItemsFound' => '找不到項目', + 'logs.clearLogs' => '清除日誌', + 'logs.copyLogs' => '複製日誌', + 'logs.uploadLogs' => '上傳日誌', + 'licenses.relatedPackages' => '相關套件', + 'licenses.license' => '授權', + 'licenses.licenseNumber' => ({required Object number}) => '授權條款 ${number}', + 'licenses.licensesCount' => ({required Object count}) => '${count} 個授權條款', + 'navigation.libraries' => '媒體庫', + 'navigation.downloads' => '下載', + 'navigation.liveTv' => '直播電視', + 'navigation.explore' => '探索', + 'explore.title' => '探索', + 'explore.selectSource' => '選擇來源', + 'explore.rows.watchlist' => '待看清單', + 'explore.rows.recommendedMovies' => '推薦電影', + 'explore.rows.recommendedShows' => '推薦影集', + 'explore.rows.trendingMovies' => '近期熱門電影', + 'explore.rows.trendingShows' => '近期熱門影集', + 'explore.rows.popularMovies' => '熱門電影', + 'explore.rows.popularShows' => '熱門影集', + 'explore.rows.trendingAnime' => '近期熱門動畫', + 'explore.rows.suggestedAnime' => '推薦動畫', + 'explore.rows.airingAnime' => '熱門連載動畫', + 'explore.rows.popularAnime' => '最受歡迎的動畫', + 'explore.rows.trending' => '趨勢', + 'explore.rows.upcomingMovies' => '即將上映的電影', + 'explore.rows.upcomingShows' => '即將播出的影集', + 'explore.status.airing' => '播出中', + 'explore.status.ended' => '已完結', + 'explore.status.canceled' => '已取消', + 'explore.status.upcoming' => '即將上線', + 'explore.episodeCount' => ({required num n}) => (_root.$meta.cardinalResolver ?? PluralResolvers.cardinal('zh'))(n, other: '${n} 集', ), + 'explore.cast' => '演員陣容', + 'explore.characters' => '角色', + 'explore.addToWatchlist' => '新增至待看清單', + 'explore.removeFromWatchlist' => '從待看清單移除', + 'explore.watchlistUpdateFailed' => '無法更新待看清單', + 'explore.notInLibrary' => '不在您的媒體庫中', + 'explore.inTheseLibraries' => '在這些媒體庫中', + 'explore.checkingLibrary' => '正在檢查您的媒體庫…', + 'explore.emptyTitle' => '這裡還沒有任何內容', + 'explore.emptyMessage' => ({required Object source}) => '當 ${source} 有內容時,相關資訊將顯示在此處。', + 'explore.searchHint' => ({required Object source}) => '搜尋 ${source}', + 'explore.searchEmpty' => ({required Object query}) => '沒有「${query}」的結果', + 'explore.searchPrompt' => ({required Object source}) => '在 ${source} 搜尋電影與影集。', + 'explore.searchFailed' => '搜尋失敗。請檢查網路連線後重試。', + 'liveTv.title' => '直播電視', + 'liveTv.guide' => '節目表指南', + 'liveTv.noChannels' => '沒有可用的頻道', + 'liveTv.noDvr' => '沒有伺服器設定 DVR 錄影機', + 'liveTv.serverUnavailable' => '直播電視伺服器無法使用。', + 'liveTv.serverNotConnected' => '直播電視伺服器未連線。', + 'liveTv.noPrograms' => '沒有可用的節目資料', + 'liveTv.liveStreamFailed' => '即時串流失敗', + 'liveTv.unknownProgram' => '未知節目', + 'liveTv.unknownHub' => '未知', + 'liveTv.unknownError' => '未知錯誤', + 'liveTv.channelNumber' => ({required Object number}) => '頻道 ${number}', + 'liveTv.unknownChannel' => '未知頻道', + 'liveTv.live' => '直播', + 'liveTv.reloadGuide' => '重新載入節目表指南', + 'liveTv.now' => '現在', + 'liveTv.today' => '今天', + 'liveTv.tomorrow' => '明天', + 'liveTv.midnight' => '午夜', + 'liveTv.overnight' => '凌晨', + 'liveTv.morning' => '上午', + 'liveTv.daytime' => '白天', + 'liveTv.evening' => '晚上', + 'liveTv.lateNight' => '深夜', + 'liveTv.whatsOn' => '正在播出', + 'liveTv.watchChannel' => '觀看頻道', + 'liveTv.favorites' => '最愛', + 'liveTv.reorderFavorites' => '重新排序最愛頻道', + 'liveTv.favoritesLoadFailed' => '無法載入最愛頻道。請檢查網路連線後重試。', + 'liveTv.favoritesUpdateFailed' => '無法更新最愛頻道。請檢查網路連線後重試。', + 'liveTv.joinSession' => '加入進行中的「一起看」', + 'liveTv.watchFromStart' => ({required Object minutes}) => '從頭觀看(自 ${minutes} 分鐘前開始)', + 'liveTv.watchLive' => '觀看直播', + 'liveTv.goToLive' => '跳至直播點', + 'liveTv.record' => '錄製', + 'liveTv.recordEpisode' => '錄製單集', + 'liveTv.recordSeries' => '錄製整部影集', + 'liveTv.recordOptions' => '錄製選項', + 'liveTv.saveTo' => '儲存至', + 'liveTv.recordings' => '已錄製內容', + 'liveTv.scheduledRecordings' => '已排程錄製', + 'liveTv.recordingRules' => '錄製規則', + 'liveTv.noScheduledRecordings' => '沒有排程的錄製任務', + 'liveTv.manageRecording' => '管理錄製', + 'liveTv.cancelRecording' => '取消錄製', + 'liveTv.cancelRecordingTitle' => '取消此次錄製?', + 'liveTv.cancelRecordingMessage' => ({required Object title}) => '將不再錄製 ${title}。', + 'liveTv.deleteRule' => '刪除規則', + 'liveTv.deleteRuleTitle' => '刪除錄製規則?', + 'liveTv.deleteRuleMessage' => ({required Object title}) => '將不再錄製 ${title} 的後續單集。', + 'liveTv.recordingScheduled' => '錄製已排程', + 'liveTv.alreadyScheduled' => '此節目已安排排程錄製', + 'liveTv.dvrAdminRequired' => 'DVR 設定需要管理員帳戶', + 'liveTv.recordingFailed' => '無法安排錄製任務', + 'liveTv.recordingTargetMissing' => '無法確定錄製媒體庫', + 'liveTv.recordNotAvailable' => '此節目無法錄製', + 'liveTv.recordingCancelled' => '錄製已取消', + 'liveTv.recordingRuleDeleted' => '錄製規則已刪除', + 'liveTv.processRecordingRules' => '重新評估規則', + 'liveTv.recordingInProgress' => '正在錄製', + 'liveTv.recordingsCount' => ({required Object count}) => '已排程 ${count} 個', + 'liveTv.editRule' => '編輯規則', + 'liveTv.editRuleAction' => '編輯', + 'liveTv.recordingRuleUpdated' => '錄製規則已更新', + 'liveTv.guideReloadRequested' => '已要求更新節目表指南', + 'liveTv.rulesProcessRequested' => '已要求重新評估規則', + 'liveTv.recordShow' => '錄製節目', + 'collections.title' => '收藏集', + 'collections.collection' => '收藏集', + 'collections.empty' => '收藏集為空', + 'collections.deleteCollection' => '刪除收藏集', + 'collections.deleteConfirm' => ({required Object title}) => '確定要刪除「${title}」嗎?此操作無法復原。', + 'collections.deleted' => '已刪除收藏集', + 'collections.deleteFailed' => '刪除收藏集失敗', + 'collections.deleteFailedWithError' => ({required Object error}) => '刪除收藏集失敗:${error}', + 'collections.selectCollection' => '選擇收藏集', + 'collections.collectionName' => '收藏集名稱', + 'collections.enterCollectionName' => '輸入收藏集名稱', + 'collections.addedToCollection' => '已新增至收藏集', + 'collections.errorAddingToCollection' => '新增至收藏集失敗', + 'collections.created' => '已建立收藏集', + 'collections.removeFromCollection' => '從收藏集移除', + 'collections.removeFromCollectionConfirm' => ({required Object title}) => '將「${title}」從此收藏集移除?', + 'collections.removedFromCollection' => '已從收藏集移除', + 'collections.removeFromCollectionFailed' => '從收藏集移除失敗', + 'collections.removeFromCollectionError' => ({required Object error}) => '從收藏集移除時發生錯誤:${error}', + 'collections.searchCollections' => '搜尋收藏集…', + 'playlists.title' => '播放清單', + 'playlists.playlist' => '播放清單', + 'playlists.noPlaylists' => '找不到播放清單', + 'playlists.create' => '建立播放清單', + 'playlists.playlistName' => '播放清單名稱', + 'playlists.enterPlaylistName' => '輸入播放清單名稱', + 'playlists.delete' => '刪除播放清單', + 'playlists.removeItem' => '從播放清單中移除', + 'playlists.smartPlaylist' => '智慧播放清單', + 'playlists.itemCount' => ({required Object count}) => '${count} 個項目', + 'playlists.oneItem' => '1 個項目', + 'playlists.emptyPlaylist' => '此播放清單為空', + 'playlists.deleteConfirm' => '刪除播放清單?', + 'playlists.deleteMessage' => ({required Object name}) => '確定要刪除「${name}」嗎?', + 'playlists.created' => '播放清單已建立', + 'playlists.deleted' => '播放清單已刪除', + 'playlists.itemAdded' => '已新增至播放清單', + 'playlists.itemRemoved' => '已從播放清單移除', + 'playlists.selectPlaylist' => '選擇播放清單', + 'playlists.searchPlaylists' => '搜尋播放清單…', + 'playlists.errorCreating' => '建立播放清單失敗', + 'playlists.errorDeleting' => '刪除播放清單失敗', + 'playlists.errorLoading' => '載入播放清單失敗', + 'playlists.errorAdding' => '新增至播放清單失敗', + 'playlists.errorReordering' => '重新排序播放清單項目失敗', + 'playlists.errorRemoving' => '從播放清單移除失敗', + 'music.goToAlbum' => '前往專輯', + 'music.goToArtist' => '前往演出者', + 'music.instantMix' => '即時混音', + 'music.playNext' => '下一首播放', + 'music.addToQueue' => '新增至佇列', + 'music.discNumber' => ({required Object n}) => 'CD ${n}', + 'music.trackCount' => ({required num n}) => (_root.$meta.cardinalResolver ?? PluralResolvers.cardinal('zh'))(n, other: '${n} 首', ), + 'music.nowPlaying' => '正在播放', + 'music.playingFrom' => ({required Object title}) => '來自 ${title}', + 'music.queue' => '播放佇列', + 'music.clearQueue' => '清空佇列', + 'music.lyrics' => '歌詞', + 'music.noLyrics' => '目前沒有歌詞', + 'music.sleepTimer' => '睡眠計時器', + 'music.sleepTimerEndOfTrack' => '曲目結束時', + 'music.sleepTimerMinutes' => ({required Object n}) => '${n} 分鐘', + 'music.stopPlayback' => '停止播放', + 'music.previousTrack' => '上一首', + 'music.nextTrack' => '下一首', + 'music.repeat' => '重複播放', + 'music.repeatAll' => '全部重複播放', + 'music.repeatOne' => '單曲重複播放', + 'watchTogether.title' => '一起看', + 'watchTogether.description' => '與親友同步觀看內容', + 'watchTogether.createSession' => '建立「一起看」工作階段', + 'watchTogether.creating' => '正在建立…', + 'watchTogether.joinSession' => '加入工作階段', + 'watchTogether.joining' => '正在加入…', + 'watchTogether.controlMode' => '控制模式', + 'watchTogether.controlModeQuestion' => '誰可以控制播放?', + 'watchTogether.hostOnly' => '僅限主持人', + 'watchTogether.anyone' => '任何人', + 'watchTogether.hostingSession' => '主持「一起看」', + 'watchTogether.inSession' => '在工作階段中', + 'watchTogether.sessionCode' => '工作階段代碼', + 'watchTogether.openSessionControls' => '開啟「一起看」工作階段控制面板', + 'watchTogether.copySessionCode' => '複製工作階段代碼', + 'watchTogether.hostControlsPlayback' => '主持人控制播放', + 'watchTogether.anyoneCanControl' => '任何人都能控制播放', + 'watchTogether.hostControls' => '主持人控制', + 'watchTogether.anyoneControls' => '任何人控制', + 'watchTogether.participants' => '參與者', + 'watchTogether.host' => '主持人', + 'watchTogether.hostBadge' => '主持人', + 'watchTogether.youAreHost' => '您是主持人', + 'watchTogether.watchingWithOthers' => '與他人一起觀看', + 'watchTogether.endSession' => '結束工作階段', + 'watchTogether.leaveSession' => '離開工作階段', + 'watchTogether.endSessionQuestion' => '結束工作階段?', + 'watchTogether.leaveSessionQuestion' => '離開工作階段?', + 'watchTogether.endSessionConfirm' => '這將為所有參與者結束此「一起看」工作階段。', + 'watchTogether.leaveSessionConfirm' => '您將退出此「一起看」工作階段。', + 'watchTogether.endSessionConfirmOverlay' => '這將為所有參與者結束觀看工作階段。', + 'watchTogether.leaveSessionConfirmOverlay' => '您將中斷與「一起看」工作階段的連線。', + 'watchTogether.end' => '結束', + 'watchTogether.leave' => '離開', + 'watchTogether.syncing' => '同步中…', + 'watchTogether.joinWatchSession' => '加入「一起看」工作階段', + 'watchTogether.enterCodeHint' => '輸入 5 個英數字元的代碼', + 'watchTogether.pasteFromClipboard' => '從剪貼簿貼上', + 'watchTogether.pleaseEnterCode' => '請輸入工作階段代碼', + 'watchTogether.codeMustBe5Chars' => '工作階段代碼必須為 5 個字元', + 'watchTogether.joinInstructions' => '輸入主持人的工作階段代碼以加入「一起看」。', + 'watchTogether.failedToCreate' => '建立工作階段失敗', + 'watchTogether.failedToJoin' => '加入工作階段失敗', + 'watchTogether.sessionCodeCopied' => '工作階段代碼已複製到剪貼簿', + 'watchTogether.relayUnreachable' => '無法連線至中繼伺服器。ISP 封鎖可能會導致「一起看」無法使用。', + 'watchTogether.reconnectingToHost' => '正在重新連線至主持人…', + 'watchTogether.currentPlayback' => '目前播放內容', + 'watchTogether.joinCurrentPlayback' => '加入目前播放點', + 'watchTogether.joinCurrentPlaybackDescription' => '同步至主持人目前的觀看進度', + 'watchTogether.failedToOpenCurrentPlayback' => '無法開啟目前播放點', + _ => null, + } ?? switch (path) { + 'watchTogether.participantJoined' => ({required Object name}) => '${name} 已加入', + 'watchTogether.participantLeft' => ({required Object name}) => '${name} 已離開', + 'watchTogether.participantPaused' => ({required Object name}) => '${name} 暫停了播放', + 'watchTogether.participantResumed' => ({required Object name}) => '${name} 恢復了播放', + 'watchTogether.participantSeeked' => ({required Object name}) => '${name} 變更了播放位置', + 'watchTogether.participantBuffering' => ({required Object name}) => '${name} 正在緩衝', + 'watchTogether.participantNeedsUpdate' => ({required Object name}) => '${name} 正在使用舊版應用程式,無法進行同步', + 'watchTogether.resumingWithout' => ({required Object name}) => '不等待 ${name},繼續播放', + 'watchTogether.waitingForParticipants' => '正在等待其他人載入…', + 'watchTogether.waitingForName' => ({required Object name}) => '正在等待 ${name}…', + 'watchTogether.recentRooms' => '最近的房間', + 'watchTogether.renameRoom' => '重新命名房間', + 'watchTogether.removeRoom' => '移除', + 'watchTogether.guestSwitchUnavailable' => '無法切換 — 伺服器無法進行同步', + 'watchTogether.guestSwitchFailed' => '無法切換 — 在此伺服器上找不到內容', + 'downloads.title' => '下載', + 'downloads.manage' => '管理', + 'downloads.tvShows' => '影集', + 'downloads.movies' => '電影', + 'downloads.music' => '音樂', + 'downloads.tracksQueued' => ({required Object count}) => '已將 ${count} 首曲目加入下載佇列', + 'downloads.noDownloads' => '目前沒有下載內容', + 'downloads.noDownloadsDescription' => '下載的內容將顯示在此處,供您離線觀看', + 'downloads.downloadNow' => '下載', + 'downloads.deleteDownload' => '刪除下載內容', + 'downloads.retryDownload' => '重試下載', + 'downloads.downloadQueued' => '下載已排隊', + 'downloads.downloadResumed' => '下載已繼續', + 'downloads.serverErrorBitrate' => '伺服器錯誤:檔案位元率可能超過遠端位元率限制', + 'downloads.episodesQueued' => ({required Object count}) => '已將 ${count} 集影片加入下載佇列', + 'downloads.downloadDeleted' => '下載內容已刪除', + 'downloads.deleteConfirm' => ({required Object title}) => '確定要從此裝置刪除「${title}」嗎?', + 'downloads.cancelledDownloadTitle' => '已取消的下載', + 'downloads.cancelledDownloadMessage' => '此下載已取消。您想要如何處理?', + 'downloads.allEpisodesAlreadyDownloaded' => '所有單集都已下載完成', + 'downloads.resumeDownload' => '繼續下載', + 'downloads.cancelledDownload' => '已取消的下載', + 'downloads.syncingFile' => ({required Object file, required Object status}) => '${file}(正在同步 ${status})', + 'downloads.downloadedFileClickToComplete' => ({required Object file}) => '已下載 ${file} — 點選以完成', + 'downloads.partialDownloadClickToComplete' => '已部分下載 — 點選以完成', + 'downloads.deleting' => '正在刪除…', + 'downloads.deletingWithProgress' => ({required Object title, required Object current, required Object total}) => '正在刪除 ${title}…(${current}/${total})', + 'downloads.queuedTooltip' => '已排隊', + 'downloads.queuedFilesTooltip' => ({required Object files}) => '已排隊:${files}', + 'downloads.downloadingTooltip' => '正在下載…', + 'downloads.downloadingFilesTooltip' => ({required Object files}) => '正在下載 ${files}', + 'downloads.noDownloadsTree' => '目前沒有下載內容', + 'downloads.pauseAll' => '全部暫停', + 'downloads.resumeAll' => '全部繼續', + 'downloads.deleteAll' => '全部刪除', + 'downloads.selectVersion' => '選擇版本', + 'downloads.allEpisodes' => '所有單集', + 'downloads.unwatchedOnly' => '僅未觀看', + 'downloads.nextNUnwatched' => ({required Object count}) => '接下來 ${count} 集未觀看', + 'downloads.customAmount' => '自訂數量…', + 'downloads.includeSpecials' => '包含特別篇', + 'downloads.howManyEpisodes' => '要下載多少集?', + 'downloads.invalidEpisodeCount' => '請輸入有效的集數。', + 'downloads.keepSynced' => '保持同步', + 'downloads.downloadOnce' => '下載一次', + 'downloads.keepNUnwatched' => ({required Object count}) => '保留 ${count} 個未觀看項目', + 'downloads.editSyncRule' => '編輯同步規則', + 'downloads.removeSyncRule' => '刪除同步規則', + 'downloads.removeSyncRuleConfirm' => ({required Object title}) => '停止同步「${title}」?已下載的單集將會保留。', + 'downloads.syncRuleCreated' => ({required Object count}) => '同步規則已建立 — 將保留 ${count} 個未觀看單集', + 'downloads.syncRuleUpdated' => '同步規則已更新', + 'downloads.syncRuleRemoved' => '同步規則已刪除', + 'downloads.syncedNewEpisodes' => ({required Object title, required Object count}) => '已為 ${title} 同步 ${count} 個新單集', + 'downloads.activeSyncRules' => '同步規則', + 'downloads.noSyncRules' => '沒有同步規則', + 'downloads.manageSyncRule' => '管理同步', + 'downloads.editEpisodeCount' => '單集數量', + 'downloads.editSyncFilter' => '同步篩選器', + 'downloads.syncAllItems' => '同步所有項目', + 'downloads.syncUnwatchedItems' => '同步未觀看項目', + 'downloads.syncRuleServerContext' => ({required Object server, required Object status}) => '伺服器:${server} • ${status}', + 'downloads.syncRuleAvailable' => '可用', + 'downloads.syncRuleOffline' => '離線', + 'downloads.syncRuleSignInRequired' => '需要登入', + 'downloads.syncRuleNotAvailableForProfile' => '目前使用者設定檔無法使用', + 'downloads.syncRuleUnknownServer' => '未知伺服器', + 'downloads.syncRuleListCreated' => '同步規則已建立', + 'shaders.title' => '著色器', + 'shaders.noShaderDescription' => '無影片增強效果', + 'shaders.nvscalerDescription' => 'NVIDIA 圖像縮放技術,使影片邊緣更清晰', + 'shaders.artcnnVariantNeutral' => '中性', + 'shaders.artcnnVariantDenoise' => '降噪', + 'shaders.artcnnVariantDenoiseSharpen' => '降噪 + 銳化', + 'shaders.qualityFast' => '快速', + 'shaders.qualityHQ' => '高品質', + 'shaders.mode' => '模式', + 'shaders.importShader' => '匯入著色器', + 'shaders.customShaderDescription' => '自訂 GLSL 著色器檔案', + 'shaders.shaderImported' => '著色器已匯入', + 'shaders.shaderImportFailed' => '匯入著色器失敗', + 'shaders.deleteShader' => '刪除著色器', + 'shaders.deleteShaderConfirm' => ({required Object name}) => '刪除「${name}」?', + 'companionRemote.title' => '隨身遙控器', + 'companionRemote.connectedTo' => ({required Object name}) => '已連線至 ${name}', + 'companionRemote.unknownDevice' => '未知裝置', + 'companionRemote.session.startingServer' => '正在啟動遠端伺服器…', + 'companionRemote.session.hostAddress' => '主機位址', + 'companionRemote.session.connected' => '已連線', + 'companionRemote.session.serverRunning' => '遠端伺服器已啟動', + 'companionRemote.session.serverStopped' => '遠端伺服器已停止', + 'companionRemote.session.serverRunningDescription' => '區域網路中的行動裝置可以連線至此應用程式', + 'companionRemote.session.serverStoppedDescription' => '啟動伺服器以允許行動裝置連線', + 'companionRemote.session.usePhoneToControl' => '使用行動裝置控制此應用程式', + 'companionRemote.session.startServer' => '啟動伺服器', + 'companionRemote.session.stopServer' => '停止伺服器', + 'companionRemote.session.minimize' => '最小化', + 'companionRemote.pairing.discoveryDescription' => '使用相同 Plex 帳戶的 Plezy 裝置會顯示在此處', + 'companionRemote.pairing.hostAddressHint' => '192.168.1.100:48632', + 'companionRemote.pairing.connecting' => '正在連線…', + 'companionRemote.pairing.searchingForDevices' => '正在搜尋裝置…', + 'companionRemote.pairing.noDevicesFound' => '在區域網路上找不到裝置', + 'companionRemote.pairing.noDevicesHint' => '請在電腦上開啟 Plezy,並確認兩台裝置使用相同的 Wi-Fi 網路', + 'companionRemote.pairing.availableDevices' => '可用裝置', + 'companionRemote.pairing.manualConnection' => '手動連線', + 'companionRemote.pairing.cryptoInitFailed' => '無法啟動安全連線。請先登入 Plex。', + 'companionRemote.pairing.validationHostRequired' => '請輸入主機位址', + 'companionRemote.pairing.validationHostFormat' => '格式必須為 IP 位址:連接埠(例如 192.168.1.100:48632)', + 'companionRemote.pairing.connectionTimedOut' => '連線逾時。請確認兩台裝置都使用相同網路。', + 'companionRemote.pairing.sessionNotFound' => '找不到裝置。請確認主機上已啟動 Plezy。', + 'companionRemote.pairing.authFailed' => '驗證失敗。兩台裝置需要登入相同的 Plex 帳戶。', + 'companionRemote.pairing.failedToConnect' => ({required Object error}) => '連線失敗:${error}', + 'companionRemote.remote.disconnectConfirm' => '是否要中斷遠端連線工作階段?', + 'companionRemote.remote.reconnecting' => '重新連線中…', + 'companionRemote.remote.attemptOf' => ({required Object current}) => '第 ${current} 次嘗試,共 5 次', + 'companionRemote.remote.retryNow' => '立即重試', + 'companionRemote.remote.tabRemote' => '遙控', + 'companionRemote.remote.tabPlay' => '播放', + 'companionRemote.remote.tabMore' => '更多', + 'companionRemote.remote.menu' => '選單', + 'companionRemote.remote.tabNavigation' => '分頁導覽', + 'companionRemote.remote.tabDiscover' => '發現', + 'companionRemote.remote.tabLibraries' => '媒體庫', + 'companionRemote.remote.tabSearch' => '搜尋', + 'companionRemote.remote.tabDownloads' => '下載', + 'companionRemote.remote.tabSettings' => '設定', + 'companionRemote.remote.previous' => '上一個', + 'companionRemote.remote.playPause' => '播放/暫停', + 'companionRemote.remote.next' => '下一個', + 'companionRemote.remote.seekBack' => '後退', + 'companionRemote.remote.stop' => '停止', + 'companionRemote.remote.seekForward' => '前進', + 'companionRemote.remote.volume' => '音量', + 'companionRemote.remote.volumeDown' => '調小', + 'companionRemote.remote.volumeUp' => '調大', + 'companionRemote.remote.fullscreen' => '全螢幕', + 'companionRemote.remote.subtitles' => '字幕', + 'companionRemote.remote.audio' => '音訊', + 'companionRemote.remote.searchHint' => '在電腦版上搜尋…', + 'companionRemote.errors.noNetworkInterface' => '找不到網路介面', + 'companionRemote.errors.authenticationFailed' => '身分驗證失敗', + 'companionRemote.errors.serverStartFailed' => ({required Object error}) => '無法啟動遠端伺服器:${error}', + 'companionRemote.errors.commandFailed' => ({required Object error}) => '無法傳送遠端指令:${error}', + 'companionRemote.errors.joinTimedOut' => '加入工作階段逾時', + 'companionRemote.errors.failedToConnectAnyAddress' => '無法連線至任何位址', + 'companionRemote.errors.connectionLostAfterAttempts' => ({required Object attempts}) => '嘗試 ${attempts} 次後連線中斷', + 'companionRemote.errors.connectionLost' => '連線已中斷', + 'videoSettings.playbackSpeed' => '播放速度', + 'videoSettings.normalSpeed' => '正常速度', + 'videoSettings.sleepTimerActive' => ({required Object duration}) => '執行中(${duration})', + 'videoSettings.zoom' => '縮放', + 'videoSettings.sleepTimer' => '睡眠計時器', + 'videoSettings.audioSync' => '音訊同步調整', + 'videoSettings.subtitleSync' => '字幕同步調整', + 'videoSettings.hdr' => 'HDR', + 'videoSettings.audioOutput' => '音訊輸出', + 'videoSettings.performanceOverlay' => '效能監控', + 'videoSettings.audioPassthrough' => '音訊直通', + 'videoSettings.audioNormalization' => '音量標準化', + 'videoSettings.audioDownmix' => '下混為立體聲', + 'performanceOverlay.color' => '色彩', + 'performanceOverlay.performance' => '效能', + 'performanceOverlay.buffer' => '緩衝', + 'performanceOverlay.app' => '應用程式', + 'performanceOverlay.decoder' => '解碼器', + 'performanceOverlay.rawDecoder' => '原始解碼器', + 'performanceOverlay.tunneling' => '通道模式', + 'performanceOverlay.aspect' => '寬高比', + 'performanceOverlay.rotation' => '旋轉角度', + 'performanceOverlay.dvSource' => 'DV 來源', + 'performanceOverlay.dvPath' => 'DV 路徑', + 'performanceOverlay.p7Conversion' => 'P7 轉換', + 'performanceOverlay.sampleRate' => '取樣率', + 'performanceOverlay.pixelFormat' => '像素格式', + 'performanceOverlay.hwFormat' => '硬體格式', + 'performanceOverlay.matrix' => '矩陣', + 'performanceOverlay.primaries' => '基色', + 'performanceOverlay.transfer' => '傳輸特性', + 'performanceOverlay.renderFps' => '渲染 FPS', + 'performanceOverlay.displayFps' => '螢幕 FPS', + 'performanceOverlay.avSync' => '影音同步(A/V Sync)', + 'performanceOverlay.dropped' => '丟格數(Dropped)', + 'performanceOverlay.dvRpus' => 'DV RPU 數', + 'performanceOverlay.dvRpuAverage' => 'DV RPU 平均', + 'performanceOverlay.dvSampleAverage' => 'DV 取樣平均', + 'performanceOverlay.maxLuma' => '最大亮度', + 'performanceOverlay.minLuma' => '最小亮度', + 'performanceOverlay.maxCll' => 'MaxCLL', + 'performanceOverlay.maxFall' => 'MaxFALL', + 'performanceOverlay.cacheUsed' => '已用快取', + 'performanceOverlay.cacheLimit' => '快取上限', + 'performanceOverlay.speed' => '速度', + 'performanceOverlay.player' => '播放器', + 'performanceOverlay.memory' => '記憶體', + 'performanceOverlay.uiFps' => 'UI FPS', + 'externalPlayer.title' => '外部播放器', + 'externalPlayer.useExternalPlayer' => '使用外部播放器', + 'externalPlayer.useExternalPlayerDescription' => '在其他應用程式中開啟影片', + 'externalPlayer.selectPlayer' => '選擇播放器', + 'externalPlayer.customPlayers' => '自訂播放器', + 'externalPlayer.systemDefault' => '系統預設', + 'externalPlayer.addCustomPlayer' => '新增自訂播放器', + 'externalPlayer.playerName' => '播放器名稱', + 'externalPlayer.playerNameHint' => '我的播放器', + 'externalPlayer.playerCommand' => '執行命令', + 'externalPlayer.playerPackage' => '套件名稱', + 'externalPlayer.playerUrlScheme' => 'URL 協定架構(Scheme)', + 'externalPlayer.off' => '關閉', + 'externalPlayer.launchFailed' => '無法啟動外部播放器', + 'externalPlayer.appNotInstalled' => ({required Object name}) => '${name} 未安裝', + 'externalPlayer.playInExternalPlayer' => '在外部播放器播放', + 'metadataEdit.editMetadata' => '編輯…', + 'metadataEdit.screenTitle' => '編輯中繼資料', + 'metadataEdit.basicInfo' => '基本資訊', + 'metadataEdit.artwork' => '海報與背景', + 'metadataEdit.advancedSettings' => '進階設定', + 'metadataEdit.title' => '標題', + 'metadataEdit.sortTitle' => '排序標題', + 'metadataEdit.originalTitle' => '原始標題', + 'metadataEdit.releaseDate' => '上映日期', + 'metadataEdit.contentRating' => '內容分級', + 'metadataEdit.studio' => '製片商', + 'metadataEdit.tagline' => '宣傳標語', + 'metadataEdit.summary' => '大綱簡介', + 'metadataEdit.poster' => '海報', + 'metadataEdit.background' => '背景圖', + 'metadataEdit.logo' => '標誌(Logo)', + 'metadataEdit.squareArt' => '方形圖片', + 'metadataEdit.selectPoster' => '選擇海報', + 'metadataEdit.selectBackground' => '選擇背景圖', + 'metadataEdit.selectLogo' => '選擇標誌', + 'metadataEdit.selectSquareArt' => '選擇方形圖片', + 'metadataEdit.fromUrl' => '自訂網址', + 'metadataEdit.uploadFile' => '上傳檔案', + 'metadataEdit.enterImageUrl' => '輸入圖片 URL', + 'metadataEdit.imageUrl' => '圖片 URL', + 'metadataEdit.metadataUpdated' => '中繼資料已更新', + 'metadataEdit.metadataUpdateFailed' => '中繼資料更新失敗', + 'metadataEdit.artworkUpdated' => '封面圖片已更新', + 'metadataEdit.artworkUpdateFailed' => '封面圖片更新失敗', + 'metadataEdit.noArtworkAvailable' => '沒有可用的封面圖片', + 'metadataEdit.artworkOption' => ({required Object index}) => '封面圖片選項 ${index}', + 'metadataEdit.selectedArtworkOption' => ({required Object index}) => '封面圖片選項 ${index},已選擇', + 'metadataEdit.notSet' => '未設定', + 'metadataEdit.libraryDefault' => '媒體庫預設', + 'metadataEdit.accountDefault' => '帳戶預設', + 'metadataEdit.seriesDefault' => '影集預設', + 'metadataEdit.episodeSorting' => '單集排序方式', + 'metadataEdit.oldestFirst' => '由舊到新', + 'metadataEdit.newestFirst' => '由新到舊', + 'metadataEdit.keep' => '保留集數', + 'metadataEdit.allEpisodes' => '所有單集', + 'metadataEdit.latestEpisodes' => ({required Object count}) => '最新 ${count} 集', + 'metadataEdit.latestEpisode' => '最新一集', + 'metadataEdit.episodesAddedPastDays' => ({required Object count}) => '過去 ${count} 天內新增的單集', + 'metadataEdit.deleteAfterPlaying' => '播放後刪除單集', + 'metadataEdit.never' => '從不', + 'metadataEdit.afterADay' => '一天後', + 'metadataEdit.afterAWeek' => '一週後', + 'metadataEdit.afterAMonth' => '一個月後', + 'metadataEdit.onNextRefresh' => '下次重新整理時', + 'metadataEdit.seasons' => '季', + 'metadataEdit.show' => '顯示', + 'metadataEdit.hide' => '隱藏', + 'metadataEdit.episodeOrdering' => '單集排序資料源', + 'metadataEdit.tmdbAiring' => 'The Movie Database(播出順序)', + 'metadataEdit.tvdbAiring' => 'TheTVDB(播出順序)', + 'metadataEdit.tvdbAbsolute' => 'TheTVDB(絕對集數順序)', + 'metadataEdit.metadataLanguage' => '中繼資料語言', + 'metadataEdit.useOriginalTitle' => '使用原始標題', + 'metadataEdit.preferredAudioLanguage' => '偏好音訊語言', + 'metadataEdit.preferredSubtitleLanguage' => '偏好字幕語言', + 'metadataEdit.subtitleMode' => '自動選擇字幕模式', + 'metadataEdit.manuallySelected' => '手動選擇', + 'metadataEdit.shownWithForeignAudio' => '外語配音時顯示', + 'metadataEdit.alwaysEnabled' => '一律啟用', + 'metadataEdit.tags' => '標籤', + 'metadataEdit.addTag' => '新增標籤', + 'metadataEdit.genre' => '類型', + 'metadataEdit.director' => '導演', + 'metadataEdit.writer' => '編劇', + 'metadataEdit.producer' => '製片', + 'metadataEdit.country' => '國家/地區', + 'metadataEdit.collection' => '收藏集', + 'metadataEdit.label' => '標記', + 'metadataEdit.style' => '風格', + 'metadataEdit.mood' => '氛圍', + 'matchScreen.match' => '配對…', + 'matchScreen.fixMatch' => '修正配對…', + 'matchScreen.unmatch' => '取消配對', + 'matchScreen.unmatchConfirm' => '清除此配對資訊?在重新配對前,Plex 會將其視為未配對媒體。', + 'matchScreen.unmatchSuccess' => '已取消配對', + 'matchScreen.unmatchFailed' => '無法取消配對', + 'matchScreen.matchApplied' => '配對已套用', + 'matchScreen.matchFailed' => '套用配對失敗', + 'matchScreen.titleHint' => '標題', + 'matchScreen.yearHint' => '年份', + 'matchScreen.search' => '搜尋', + 'matchScreen.noMatchesFound' => '找不到符合的配對', + 'serverTasks.title' => '伺服器工作', + 'serverTasks.failedToLoad' => '載入工作失敗', + 'serverTasks.noTasks' => '目前沒有執行中的工作', + 'trakt.title' => 'Trakt', + 'trakt.connected' => '已連線', + 'trakt.connectedAs' => ({required Object username}) => '已以 @${username} 身分連線', + 'trakt.disconnectConfirm' => '中斷與 Trakt 帳戶的連結?', + 'trakt.disconnectConfirmBody' => 'Plezy 將停止向 Trakt 傳送事件。您可以隨時重新連線。', + 'trakt.scrobble' => '即時同步記錄(Scrobble)', + 'trakt.scrobbleDescription' => '在播放時向 Trakt 傳送播放、暫停和停止等狀態。', + 'trakt.watchedSync' => '同步已觀看狀態', + 'trakt.watchedSyncDescription' => '在 Plezy 中將項目標記為已觀看時,也會在 Trakt 上標記為已觀看。', + 'seerr.title' => 'Seerr', + 'seerr.connectTitle' => '連線至 Seerr', + 'seerr.serverUrl' => '伺服器 URL', + 'seerr.serverUrlHelper' => '您的 Seerr 執行個體的連線位址', + 'seerr.checkServer' => '繼續', + 'seerr.signInWithJellyfin' => '使用 Jellyfin 登入', + 'seerr.signInWithEmby' => '使用 Emby 登入', + 'seerr.signInWithLocal' => '使用本地帳戶', + 'seerr.email' => '電子郵件', + 'seerr.noSignInMethods' => '此 Seerr 執行個體未提供 Plezy 支援的登入方式。', + 'seerr.instance' => '執行個體', + 'seerr.disconnectConfirm' => '中斷與 Seerr 的連線?', + 'seerr.disconnectConfirmBody' => 'Plezy 將忘記此 Seerr 連線資訊。您可以隨時重新連線。', + 'seerr.request' => '請求', + 'seerr.request4k' => '請求 4K 版本', + 'seerr.seasons' => '季', + 'seerr.allSeasons' => '所有季數', + 'seerr.advancedOptions' => '進階設定', + 'seerr.destinationServer' => '目標伺服器', + 'seerr.qualityProfile' => '畫質設定檔(Quality Profile)', + 'seerr.rootFolder' => '根目錄資料夾', + 'seerr.languageProfile' => '語言設定檔(Language Profile)', + 'seerr.requestSubmitted' => '請求已送出', + 'seerr.requestFailed' => ({required Object error}) => '請求失敗:${error}', + 'seerr.requestsLoadFailed' => '無法載入請求選項', + 'seerr.nothingToRequest' => '所有內容皆已可用或已提出請求。', + 'seerr.statusAvailable' => '可用', + 'seerr.statusPartiallyAvailable' => '部分可用', + 'seerr.statusRequested' => '已請求', + 'seerr.statusProcessing' => '處理中', + 'services.title' => '外部服務', + 'services.hubSubtitle' => '同步觀看進度並請求新內容。', + 'services.notConnected' => '未連線', + 'services.connectedAs' => ({required Object username}) => '已以 @${username} 身分連線', + 'services.scrobble' => '自動同步播放進度', + 'services.scrobbleDescription' => '觀賞完一集或一部電影後自動更新您的外部列表。', + 'services.disconnectConfirm' => ({required Object service}) => '中斷與 ${service} 的連線?', + 'services.disconnectConfirmBody' => ({required Object service}) => 'Plezy 將停止更新 ${service}。您可以隨時重新連線。', + 'services.connectFailed' => ({required Object service}) => '無法連線至 ${service}。請重試。', + 'services.names.mal' => 'MyAnimeList', + 'services.names.anilist' => 'AniList', + 'services.names.simkl' => 'Simkl', + 'services.names.seerr' => 'Seerr', + 'services.deviceCode.title' => ({required Object service}) => '在 ${service} 啟用 Plezy', + 'services.deviceCode.body' => ({required Object url}) => '請前往 ${url} 並輸入此代碼:', + 'services.deviceCode.openToActivate' => ({required Object service}) => '開啟 ${service} 進行啟用', + 'services.deviceCode.copyCode' => '複製啟用代碼', + 'services.deviceCode.waitingForAuthorization' => '等待授權中…', + 'services.deviceCode.codeCopied' => '代碼已複製', + 'services.oauthProxy.title' => ({required Object service}) => '登入 ${service}', + 'services.oauthProxy.body' => '掃描 QR 碼,或在任何裝置上開啟該網址。', + 'services.oauthProxy.openToSignIn' => ({required Object service}) => '開啟 ${service} 進行登入', + 'services.oauthProxy.copyUrl' => '複製登入 URL', + 'services.oauthProxy.urlCopied' => 'URL 已複製', + 'services.libraryFilter.title' => '媒體庫篩選', + 'services.libraryFilter.subtitleAllSyncing' => '同步所有媒體庫', + 'services.libraryFilter.subtitleNoneSyncing' => '不同步任何內容', + 'services.libraryFilter.subtitleBlocked' => ({required Object count}) => '已封鎖 ${count} 個', + 'services.libraryFilter.subtitleAllowed' => ({required Object count}) => '已允許 ${count} 個', + 'services.libraryFilter.mode' => '篩選模式', + 'services.libraryFilter.modeBlacklist' => '黑名單(排除)', + 'services.libraryFilter.modeWhitelist' => '白名單(僅限)', + 'services.libraryFilter.modeHintBlacklist' => '同步下方未勾選的所有媒體庫。', + 'services.libraryFilter.modeHintWhitelist' => '僅同步下方已勾選的媒體庫。', + 'services.libraryFilter.libraries' => '媒體庫', + 'services.libraryFilter.noLibraries' => '沒有可用的媒體庫', + 'addServer.addJellyfinTitle' => '新增 Jellyfin 伺服器', + 'addServer.serverUrls' => '伺服器 URL', + 'addServer.serverUrlsHelper' => '可輸入多個連線網址,以逗號區隔。', + 'addServer.findServer' => '尋找伺服器', + 'addServer.searchingLocalServers' => '正在尋找本地 Jellyfin 伺服器…', + 'addServer.localServers' => '本地 Jellyfin 伺服器', + 'addServer.username' => '使用者名稱', + 'addServer.password' => '密碼', + 'addServer.signIn' => '登入', + 'addServer.change' => '變更', + 'addServer.required' => '必填', + 'addServer.couldNotReachServer' => ({required Object error}) => '無法連線至伺服器:${error}', + 'addServer.signInFailed' => ({required Object error}) => '登入失敗:${error}', + 'addServer.quickConnectFailed' => ({required Object error}) => '快速連線失敗:${error}', + 'addServer.addPlexTitle' => '使用 Plex 登入', + 'addServer.pinExpired' => 'PIN 碼在登入前已過期。請重試。', + 'addServer.failedToRegisterAccount' => ({required Object error}) => '註冊帳戶失敗:${error}', + 'addServer.enterJellyfinUrlError' => '請輸入您的 Jellyfin 伺服器 URL', + 'addServer.addConnectionTitle' => '新增連線', + 'addServer.addConnectionTitleScoped' => ({required Object name}) => '新增連線至 ${name}', + 'addServer.signInWithPlexCard' => '使用 Plex 登入', + 'addServer.signInWithPlexCardSubtitle' => '授權此裝置。將會新增共享的伺服器連線。', + 'addServer.signInWithPlexCardSubtitleScoped' => '授權 Plex 帳戶。Home 使用者會建立為個別的使用者設定檔。', + 'addServer.connectToJellyfinCard' => '連線至 Jellyfin', + 'addServer.connectToJellyfinCardSubtitle' => '輸入伺服器 URL、使用者名稱與密碼。', + 'addServer.connectToJellyfinCardSubtitleScoped' => ({required Object name}) => '登入 Jellyfin 伺服器,並綁定至 ${name} 使用者設定檔。', + 'addServer.borrowFromAnotherProfile' => '從另一個使用者設定檔共用', + 'addServer.borrowFromAnotherProfileSubtitle' => '重複使用另一個使用者設定檔的連線資訊。受 PIN 碼保護的使用者設定檔需輸入 PIN 碼。', + _ => null, + }; + } +} diff --git a/lib/i18n/sv.i18n.json b/lib/i18n/sv.i18n.json index 6489f48c..73dc1e34 100644 --- a/lib/i18n/sv.i18n.json +++ b/lib/i18n/sv.i18n.json @@ -5,8 +5,8 @@ "auth": { "signInWithPlex": "Logga in med Plex", "showQRCode": "Visa QR-kod", - "authenticate": "Autentisera", - "authenticationTimeout": "Autentisering tog för lång tid. Försök igen.", + "authenticate": "Verifiera", + "authenticationTimeout": "Autentiseringen tog för lång tid. Försök igen.", "scanQRToSignIn": "Skanna QR-koden för att logga in", "waitingForAuth": "Väntar på autentisering...\nLogga in från din webbläsare.", "useBrowser": "Använd webbläsare", @@ -17,7 +17,7 @@ "quickConnectWaiting": "Väntar på godkännande…", "quickConnectCancel": "Avbryt", "quickConnectExpired": "Quick Connect har gått ut. Försök igen.", - "localDataRecoveryRequired": "Plezy could not safely recover local sign-in and pending playback data. Please sign in again." + "localDataRecoveryRequired": "Plezy kunde inte återställa lokala inloggningsuppgifter och väntande uppspelningsdata på ett säkert sätt. Logga in igen." }, "common": { "cancel": "Avbryt", @@ -48,8 +48,8 @@ "search": "Sök", "home": "Hem", "back": "Tillbaka", - "settings": "Mer", - "mute": "Ljud av", + "settings": "Inställningar", + "mute": "Stäng av ljudet", "ok": "OK", "off": "Av", "seasonNumber": "Säsong ${number}", @@ -69,7 +69,7 @@ "screens": { "licenses": "Licenser", "switchProfile": "Byt profil", - "subtitleStyling": "Undertext-styling", + "subtitleStyling": "Utseende för undertexter", "mpvConfig": "mpv.conf", "logs": "Loggar" }, @@ -78,9 +78,9 @@ "versionAvailable": "Version ${version} är tillgänglig", "currentVersion": "Nuvarande: ${version}", "skipVersion": "Hoppa över denna version", - "viewRelease": "Visa release", + "viewRelease": "Visa versionsinformation", "latestVersion": "Du har den senaste versionen", - "checkFailed": "Misslyckades att kontrollera uppdateringar" + "checkFailed": "Det gick inte att söka efter uppdateringar" }, "settings": { "title": "Inställningar", @@ -92,11 +92,11 @@ "videoPlayback": "Videouppspelning", "videoPlaybackDescription": "Konfigurera uppspelningsbeteende", "advanced": "Avancerat", - "episodePosterMode": "Avsnittsaffisch-stil", + "episodePosterMode": "Stil för avsnittsaffisch", "seriesPoster": "Serieaffisch", "seasonPoster": "Säsongsaffisch", "episodeThumbnail": "Miniatyr", - "showHeroSectionDescription": "Visa utvalda innehållskarusell på startsidan", + "showHeroSectionDescription": "Visa en karusell med utvalt innehåll på startsidan", "secondsLabel": "Sekunder", "minutesLabel": "Minuter", "secondsShort": "s", @@ -108,91 +108,91 @@ "oledTheme": "OLED", "libraryDensity": "Biblioteksdensitet", "compact": "Kompakt", - "comfortable": "Bekväm", - "tvCornerSpotlightBackdrop": "", - "tvCornerSpotlightBackdropDescription": "", + "comfortable": "Luftig", + "tvCornerSpotlightBackdrop": "Bakgrundsbild för utvalt innehåll i hörnet", + "tvCornerSpotlightBackdropDescription": "Visa bakgrundsbilden för utvalt innehåll i övre högra hörnet i stället för över hela skärmen", "viewMode": "Visningsläge", "gridView": "Rutnät", "listView": "Lista", - "showHeroSection": "Visa hjältesektion", + "showHeroSection": "Visa utvalt innehåll", "continueWatchingAction": "Åtgärd för Fortsätt titta", "continueWatchingPlay": "Spela", "continueWatchingDetails": "Öppna detaljer", "episodeAction": "Åtgärd för avsnitt", "episodePlay": "Spela", "episodeDetails": "Öppna detaljer", - "useGlobalHubs": "Använd startlayout", - "useGlobalHubsDescription": "Visa enhetliga startsideshubbar. Annars används biblioteksrekommendationer.", - "showServerNameOnHubs": "Visa servernamn på hubbar", - "showServerNameOnHubsDescription": "Visa alltid servernamn i hubbtitlar.", + "useGlobalHubs": "Använd startsidans layout", + "useGlobalHubsDescription": "Visa en gemensam layout på startsidan. Annars används bibliotekens rekommendationer.", + "showServerNameOnHubs": "Visa servernamn i innehållssektioner", + "showServerNameOnHubsDescription": "Visa alltid servernamnet i innehållssektionernas rubriker.", "groupLibrariesByServer": "Gruppera bibliotek efter server", - "groupLibrariesByServerDescription": "Gruppera sidofältsbibliotek under varje medieserver.", - "alwaysKeepSidebarOpen": "Håll sidofältet alltid öppet", - "alwaysKeepSidebarOpenDescription": "Sidofältet förblir expanderat och innehållsytan anpassas", + "groupLibrariesByServerDescription": "Gruppera biblioteken i sidofältet under respektive medieserver.", + "alwaysKeepSidebarOpen": "Håll alltid sidofältet öppet", + "alwaysKeepSidebarOpenDescription": "Sidofältet förblir utfällt och innehållsytan anpassas efter det", "showUnwatchedCount": "Visa antal osedda", "showUnwatchedCountDescription": "Visa antal osedda avsnitt för serier och säsonger", "showEpisodeNumberOnCards": "Visa avsnittsnummer på kort", "showEpisodeNumberOnCardsDescription": "Visa säsongs- och avsnittsnummer på avsnittskort", "showSeasonPostersOnTabs": "Visa säsongsaffischer på flikar", - "showSeasonPostersOnTabsDescription": "Visa varje säsongs affisch ovanför fliken", + "showSeasonPostersOnTabsDescription": "Visa affischen för varje säsong ovanför dess flik", "tvFullCardLayout": "Heltäckande TV-kort", "tvFullCardLayoutDescription": "Använd TV-kort med enbart bild och skådespelarnamn ovanpå", - "focusGlow": "Fokusglöd", - "focusGlowDescription": "Visa en mjuk glöd runt kortet i fokus", + "focusGlow": "Fokusmarkering", + "focusGlowDescription": "Visa ett mjukt sken runt kortet som har fokus", "visualEffects": "Visuella effekter", "visualEffectsAuto": "Automatiskt", - "visualEffectsAutoDescription": "Minska effekter automatiskt på enheter med låg effekt", + "visualEffectsAutoDescription": "Minska effekterna automatiskt på enheter med begränsad prestanda", "visualEffectsFull": "Fullständiga", "visualEffectsReduced": "Minskade", "visualEffectsReducedDescription": "Färre animationer och grafik med lägre upplösning", "hideSpoilers": "Dölj spoilers för osedda avsnitt", - "hideSpoilersDescription": "Sudda miniatyrbilder och beskrivningar för osedda avsnitt", - "playerBackend": "Spelarmotor", + "hideSpoilersDescription": "Gör miniatyrbilder och beskrivningar oskarpa för osedda avsnitt", + "playerBackend": "Uppspelningsmotor", "exoPlayer": "ExoPlayer", "mpv": "mpv", "hardwareDecoding": "Hårdvaruavkodning", "hardwareDecodingDescription": "Använd hårdvaruacceleration när tillgängligt", - "bufferSize": "Bufferstorlek", - "bufferSizeMB": "${size}MB", - "bufferSizeAuto": "Auto (Rekommenderat)", - "bufferSizeWarning": "${heap}MB minne tillgängligt. En buffert på ${size}MB kan påverka uppspelningen.", + "bufferSize": "Buffertstorlek", + "bufferSizeMB": "${size} MB", + "bufferSizeAuto": "Automatiskt (rekommenderas)", + "bufferSizeWarning": "${heap} MB minne är tillgängligt. En buffert på ${size} MB kan påverka uppspelningen.", "defaultQualityTitle": "Standardkvalitet", "musicQualityTitle": "Musikkvalitet", - "subtitleStyling": "Undertext-styling", - "subtitleStylingDescription": "Anpassa undertextutseende", - "smallSkipDuration": "Kort hoppvaraktighet", - "largeSkipDuration": "Lång hoppvaraktighet", + "subtitleStyling": "Utseende för undertexter", + "subtitleStylingDescription": "Anpassa undertexternas utseende", + "smallSkipDuration": "Litet hoppsteg", + "largeSkipDuration": "Stort hoppsteg", "rewindOnResume": "Spola tillbaka vid återupptagning", "secondsUnit": "${seconds} sekunder", - "defaultSleepTimer": "Standard sovtimer", + "defaultSleepTimer": "Förvald insomningstimer", "minutesUnit": "${minutes} minuter", "rememberTrackSelections": "Kom ihåg spårval per serie/film", "rememberTrackSelectionsDescription": "Kom ihåg ljud- och undertextval per titel", "showChapterMarkersOnTimeline": "Visa kapitelmarkörer på tidslinjen", "showChapterMarkersOnTimelineDescription": "Dela upp tidslinjen vid kapitelgränser", - "clickVideoTogglesPlayback": "Klicka på videon för att växla mellan spela upp och pausa.", - "clickVideoTogglesPlaybackDescription": "Klicka på video för att spela/pausa istället för att visa kontroller.", - "videoPlayerControls": "Videospelar-kontroller", + "clickVideoTogglesPlayback": "Klicka på videon för att spela upp eller pausa", + "clickVideoTogglesPlaybackDescription": "Klicka på videon för att spela upp eller pausa i stället för att visa kontrollerna.", + "videoPlayerControls": "Videospelarens kontroller", "keyboardShortcuts": "Tangentbordsgenvägar", "keyboardShortcutsDescription": "Anpassa tangentbordsgenvägar", "videoPlayerNavigation": "Navigering i videospelaren", "videoPlayerNavigationDescription": "Använd piltangenter för att navigera videospelarens kontroller", - "watchTogetherRelay": "Titta Tillsammans-relay", - "watchTogetherRelayDescription": "Ange en anpassad relay. Alla måste använda samma server.", - "watchTogetherRelayHint": "https://min-relay.exempel.se", - "watchTogetherRelayInvalid": "Enter a valid HTTP or HTTPS relay base URL.", + "watchTogetherRelay": "Reläserver för Titta tillsammans", + "watchTogetherRelayDescription": "Ange en egen reläserver. Alla måste använda samma server.", + "watchTogetherRelayHint": "https://mitt-rela.exempel.se", + "watchTogetherRelayInvalid": "Ange en giltig HTTP- eller HTTPS-bas-URL för reläservern.", "crashReporting": "Kraschrapportering", "crashReportingDescription": "Skicka kraschrapporter för att förbättra appen", "debugLogging": "Felsökningsloggning", "debugLoggingDescription": "Aktivera detaljerad loggning för felsökning", "viewLogs": "Visa loggar", - "viewLogsDescription": "Visa applikationsloggar", - "clearCache": "Rensa cache", - "clearCacheDescription": "Rensa cachade bilder och data. Innehåll kan laddas långsammare.", - "clearCacheSuccess": "Cache rensad framgångsrikt", - "resetSettings": "Återställ inställningar", - "resetSettingsDescription": "Återställ standardinställningar. Detta kan inte ångras.", - "resetSettingsSuccess": "Inställningar återställda framgångsrikt", + "viewLogsDescription": "Visa appens loggar", + "clearCache": "Rensa cachen", + "clearCacheDescription": "Rensa cachade bilder och data. Innehåll kan läsas in långsammare.", + "clearCacheSuccess": "Cachen har rensats", + "resetSettings": "Återställ inställningarna", + "resetSettingsDescription": "Återställ standardinställningarna. Det går inte att ångra.", + "resetSettingsSuccess": "Inställningarna har återställts", "backup": "Säkerhetskopia", "exportSettings": "Exportera inställningar", "exportSettingsDescription": "Spara dina inställningar till en fil", @@ -201,9 +201,9 @@ "importSettingsDescription": "Återställ inställningar från en fil", "importSettingsConfirm": "Detta ersätter dina nuvarande inställningar. Fortsätta?", "importSettingsSuccess": "Inställningar importerade", - "importSettingsInvalidFile": "Denna fil är inte en giltig Plezy-export", + "importSettingsInvalidFile": "Filen är inte en giltig export av Plezy-inställningar", "importSettingsNoUser": "Logga in innan du importerar inställningar", - "shortcutsReset": "Genvägar återställda till standard", + "shortcutsReset": "Genvägarna har återställts till standard", "about": "Om", "aboutDescription": "Appinformation och licenser", "updates": "Uppdateringar", @@ -211,20 +211,20 @@ "checkForUpdates": "Kontrollera uppdateringar", "autoCheckUpdatesOnStartup": "Kontrollera uppdateringar automatiskt vid start", "autoCheckUpdatesOnStartupDescription": "Meddela när en uppdatering finns vid start", - "validationErrorEnterNumber": "Vänligen ange ett giltigt nummer", + "validationErrorEnterNumber": "Ange ett giltigt tal", "validationErrorDuration": "Tiden måste vara mellan ${min} och ${max} ${unit}", - "shortcutAlreadyAssigned": "Genväg redan tilldelad ${action}", - "shortcutUpdated": "Genväg uppdaterad för ${action}", - "saveFailed": "Could not save changes. Try again.", - "autoSkip": "Auto Hoppa Över", - "autoSkipIntro": "Hoppa Över Intro Automatiskt", - "autoSkipIntroDescription": "Hoppa automatiskt över intro-markörer efter några sekunder", - "autoSkipCredits": "Hoppa Över Credits Automatiskt", - "autoSkipCreditsDescription": "Hoppa automatiskt över credits och spela nästa avsnitt", + "shortcutAlreadyAssigned": "Genvägen används redan för ${action}", + "shortcutUpdated": "Genvägen för ${action} har uppdaterats", + "saveFailed": "Det gick inte att spara ändringarna. Försök igen.", + "autoSkip": "Hoppa över automatiskt", + "autoSkipIntro": "Hoppa över intro automatiskt", + "autoSkipIntroDescription": "Hoppa automatiskt över intromarkörer efter några sekunder", + "autoSkipCredits": "Hoppa över eftertexter automatiskt", + "autoSkipCreditsDescription": "Hoppa automatiskt över eftertexterna och spela nästa avsnitt", "forceSkipMarkerFallback": "Tvinga reservmarkörer", "forceSkipMarkerFallbackDescription": "Använd mönster i kapiteltitlar även när Plex har markörer", - "autoSkipDelay": "Fördröjning Auto Hoppa Över", - "autoSkipDelayDescription": "Vänta ${seconds} sekunder innan automatisk överhoppning", + "autoSkipDelay": "Fördröjning före automatiskt hopp", + "autoSkipDelayDescription": "Vänta ${seconds} sekunder innan innehållet hoppas över automatiskt", "introPattern": "Intromarkörsmönster", "introPatternDescription": "Reguljärt uttryck för att matcha intromarkörer i kapiteltitlar", "creditsPattern": "Eftertextmarkörsmönster", @@ -233,32 +233,32 @@ "regex": "Reguljärt uttryck", "downloads": "Nedladdningar", "downloadLocationDescription": "Välj var nedladdat innehåll ska lagras", - "downloadLocationDefault": "Standard (App-lagring)", - "downloadLocationCustom": "Anpassad Plats", - "selectFolder": "Välj Mapp", - "resetToDefault": "Återställ till Standard", - "currentPath": "Nuvarande: ${path}", + "downloadLocationDefault": "Standard (appens lagring)", + "downloadLocationCustom": "Anpassad plats", + "selectFolder": "Välj mapp", + "resetToDefault": "Återställ standard", + "currentPath": "Aktuell: ${path}", "downloadLocationChanged": "Nedladdningsplats ändrad", "downloadLocationReset": "Nedladdningsplats återställd till standard", "downloadLocationInvalid": "Vald mapp är inte skrivbar", "downloadLocationPickerUnavailable": "Mappval är inte tillgängligt på den här enheten", - "downloadOnWifiOnly": "Ladda ner endast på WiFi", - "downloadOnWifiOnlyDescription": "Förhindra nedladdningar vid användning av mobildata", - "autoRemoveWatchedDownloads": "Ta bort sedda nedladdningar automatiskt", - "autoRemoveWatchedDownloadsDescription": "Ta bort sedda nedladdningar automatiskt", - "cellularDownloadBlocked": "Nedladdningar är blockerade via mobilnät. Använd WiFi eller ändra inställningen.", - "maxVolume": "Maximal volym", - "maxVolumeDescription": "Tillåt volym över 100% för tyst media", - "maxVolumePercent": "${percent}%", + "downloadOnWifiOnly": "Ladda endast ned via wifi", + "downloadOnWifiOnlyDescription": "Förhindra nedladdningar via mobildata", + "autoRemoveWatchedDownloads": "Ta automatiskt bort sedda nedladdningar", + "autoRemoveWatchedDownloadsDescription": "Ta automatiskt bort sedda nedladdningar", + "cellularDownloadBlocked": "Nedladdningar blockeras via mobilnätet. Använd wifi eller ändra inställningen.", + "maxVolume": "Maxvolym", + "maxVolumeDescription": "Tillåt att volymen höjs över 100 % för innehåll med låg ljudnivå", + "maxVolumePercent": "${percent} %", "discordRichPresence": "Discord Rich Presence", "discordRichPresenceDescription": "Visa vad du tittar på i Discord", "services": "Tjänster", "servicesDescription": "Anslut Trakt, MyAnimeList, Seerr med mera", "manageLibrariesDescription": "Ordna om och dölj bibliotek", - "companionRemoteServer": "Companion Remote-server", - "companionRemoteServerDescription": "Tillåt mobila enheter i ditt nätverk att styra denna app", + "companionRemoteServer": "Server för fjärrkontroll", + "companionRemoteServerDescription": "Tillåt att mobila enheter i nätverket styr appen", "autoPip": "Automatisk bild-i-bild", - "autoPipDescription": "Gå till bild-i-bild när du lämnar under uppspelning", + "autoPipDescription": "Aktivera bild-i-bild om du lämnar appen under uppspelning", "matchContentFrameRate": "Matcha innehållets bildfrekvens", "matchContentFrameRateDescription": "Matcha skärmens uppdateringsfrekvens med videoinnehållet", "matchRefreshRate": "Matcha uppdateringsfrekvens", @@ -268,17 +268,17 @@ "displaySwitchDelay": "Fördröjning vid skärmbyte", "tunneledPlayback": "Tunneluppspelning", "tunneledPlaybackDescription": "Använd videotunnling. Inaktivera om HDR-uppspelning visar svart video.", - "audioPassthrough": "Ljudgenomkoppling", - "audioPassthroughDescription": "Skicka Dolby/DTS-ljud till din receiver eller TV utan omkodning och bevara surroundljudet. Stäng av om du inte har något ljud.", - "audioPassthroughDescriptionAppleTv": "Lämnar Dolby Digital Plus (inkl. Atmos) till systemet som bitstream. DTS och TrueHD spelas fortfarande upp som flerkanals-PCM. Korta ljudavbrott kan förekomma vid sökning.", + "audioPassthrough": "Ljudgenomströmning", + "audioPassthroughDescription": "Skicka Dolby-/DTS-ljud till receivern eller TV:n utan omkodning så att surroundljudet bevaras. Stäng av om inget ljud hörs.", + "audioPassthroughDescriptionAppleTv": "Använd Apples inbyggda Dolby-avkodare för Dolby Digital Plus, inklusive Atmos. DTS och TrueHD spelas fortfarande upp som flerkanaligt PCM-ljud. Stäng av om inget ljud hörs.", "audioDownmix": "Nedmixning till stereo", - "audioDownmixDescription": "Mixar ner surroundljud till två kanaler för stereohögtalare eller hörlurar", + "audioDownmixDescription": "Mixa ned surroundljud till två kanaler för stereohögtalare eller hörlurar", "downmixCenterBoost": "Förstärkning av centerkanal", "downmixCenterBoostValue": "${db} dB", "downmixCenterBoostLabel": "Förstärkning (dB)", "downmixCenterBoostShort": "dB", "audioDownmixNormalize": "Normalisera ljudstyrka vid nedmixning", - "audioDownmixNormalizeDescription": "Sänker mixen för att undvika klippning. Stäng av för att behålla originalvolymen (höga scener kan förvrängas).", + "audioDownmixNormalizeDescription": "Sänk ljudnivån för att förhindra klippning. Stäng av för att behålla originalvolymen (starka ljud kan då bli förvrängda).", "atmosDiagnostics": "Atmos-utgångstest", "atmosDiagnosticsDescription": "Diagnostisera Dolby Atmos-utgången genom att spela testsignaler via systemspelaren", "atmosTestHlsAtmos": "Apple Atmos-ström", @@ -300,10 +300,10 @@ "dvConversionNative": "Inbyggt / inaktiverat", "dvConversionDv81": "P7 → P8.1", "dvConversionHevcStrip": "P7 → HEVC", - "dvConversionAutoDescription": "Använd enhetens kapabilitetsdetektering och normalt reservbeteende", - "dvConversionNativeDescription": "Tvinga native DV7 och undertryck försök till DV-konvertering", - "dvConversionDv81Description": "Tvinga inline RPU-konvertering till Dolby Vision profil 8.1", - "dvConversionHevcStripDescription": "Ta bort Dolby Vision RPU/EL-lager och presentera vanlig HEVC", + "dvConversionAutoDescription": "Identifiera enhetens funktioner och använd det normala reservbeteendet", + "dvConversionNativeDescription": "Tvinga inbyggd DV7 och förhindra nya försök med DV-konvertering", + "dvConversionDv81Description": "Tvinga direkt RPU-konvertering till Dolby Vision-profil 8.1", + "dvConversionHevcStripDescription": "Ta bort Dolby Visions RPU-/EL-lager och använd vanlig HEVC", "requireProfileSelectionOnOpen": "Fråga efter profil vid appstart", "requireProfileSelectionOnOpenDescription": "Visa profilval varje gång appen öppnas", "forceTvMode": "Tvinga TV-läge", @@ -312,13 +312,13 @@ "startInFullscreenDescription": "Öppna Plezy i helskärm vid start", "exitFullscreenOnPlayerClose": "Avsluta helskärm vid stängning av spelare", "exitFullscreenOnPlayerCloseDescription": "Avslutar automatiskt helskärmsläge när videospelaren stängs", - "autoHidePerformanceOverlay": "Dölj prestandaöverlagring automatiskt", - "autoHidePerformanceOverlayDescription": "Tona prestandaöverlagringen med uppspelningskontrollerna", + "autoHidePerformanceOverlay": "Dölj prestandainformation automatiskt", + "autoHidePerformanceOverlayDescription": "Tona bort prestandainformationen tillsammans med uppspelningskontrollerna", "showNavBarLabels": "Visa navigeringsfältets etiketter", "showNavBarLabelsDescription": "Visa textetiketter under navigeringsfältets ikoner", - "startupSection": "Startsektion", - "liveTvDefaultFavorites": "Standard till favoritkanaler", - "liveTvDefaultFavoritesDescription": "Visa bara favoritkanaler när du öppnar Live TV", + "startupSection": "Startsida", + "liveTvDefaultFavorites": "Öppna med favoriter", + "liveTvDefaultFavoritesDescription": "Visa endast favoritkanaler när Live-TV öppnas", "display": "Skärm", "homeScreen": "Hemskärm", "navigation": "Navigering", @@ -326,7 +326,7 @@ "content": "Innehåll", "player": "Spelare", "subtitlesAndConfig": "Undertexter och konfiguration", - "seekAndTiming": "Sök och timing", + "seekAndTiming": "Spolning och tidsinställningar", "behavior": "Beteende" }, "search": { @@ -385,8 +385,8 @@ "bitDepth": "Bitdjup", "colorSpace": "Färgrymd", "colorRange": "Färgområde", - "colorPrimaries": "Färggrunder", - "chromaSubsampling": "Kroma-undersampling", + "colorPrimaries": "Färgprimärer", + "chromaSubsampling": "Krominansnedsampling", "channels": "Kanaler", "subtitles": "Undertexter", "overallBitrate": "Total bithastighet", @@ -395,7 +395,7 @@ "container": "Container", "duration": "Varaktighet", "optimizedForStreaming": "Optimerad för streaming", - "has64bitOffsets": "64-bit offset" + "has64bitOffsets": "64-bitars offsetvärden" }, "mediaMenu": { "markAsWatched": "Markera som sedd", @@ -407,10 +407,10 @@ "shuffleNotAvailableOffline": "Blandad uppspelning är inte tillgänglig offline", "fileInfo": "Filinformation", "deleteFromServer": "Ta bort från servern", - "confirmDelete": "Ta bort detta media och dess filer från din server?", - "deleteMultipleWarning": "Detta inkluderar alla avsnitt och deras filer.", - "mediaDeletedSuccessfully": "Mediaobjekt borttaget", - "mediaFailedToDelete": "Kunde inte ta bort mediaobjekt", + "confirmDelete": "Ta bort det här medieobjektet och dess filer från servern?", + "deleteMultipleWarning": "Detta omfattar alla avsnitt och deras filer.", + "mediaDeletedSuccessfully": "Medieobjektet har tagits bort", + "mediaFailedToDelete": "Det gick inte att ta bort medieobjektet", "rate": "Betygsätt", "playFromBeginning": "Spela från början", "playVersion": "Spela version..." @@ -430,9 +430,9 @@ "mediaCardEpisode": "${title}, ${episodeInfo}", "mediaCardSeason": "${title}, ${seasonInfo}", "mediaCardWatched": "sedd", - "mediaCardPartiallyWatched": "${percent} procent sedd", + "mediaCardPartiallyWatched": "sett till ${percent} procent", "mediaCardUnwatched": "osedd", - "tapToPlay": "Tryck för att spela", + "tapToPlay": "Tryck för att spela upp", "decrease": "Minska", "increase": "Öka", "decreaseValue": "Minska ${label}", @@ -444,7 +444,7 @@ "expandText": "Expandera text", "collapseText": "Fäll ihop text", "alphabetNavigation": "Alfabetisk navigering", - "alphabetScrollHint": "Svep upp eller ned för att flytta en bokstav", + "alphabetScrollHint": "Svep uppåt eller nedåt för att gå mellan bokstäver", "rowColumnPosition": "Rad ${row} av ${rowCount}, kolumn ${column} av ${columnCount}", "rowPosition": "Rad ${row} av ${rowCount}" }, @@ -460,17 +460,17 @@ "videoControls": { "audioLabel": "Ljud", "subtitlesLabel": "Undertexter", - "resetToZero": "Återställ till 0ms", + "resetToZero": "Återställ till 0 ms", "addTime": "+${amount}${unit}", "minusTime": "-${amount}${unit}", "playsLater": "${label} spelas senare", "playsEarlier": "${label} spelas tidigare", - "noOffset": "Ingen offset", - "letterbox": "Letterbox", - "fillScreen": "Fyll skärm", - "stretch": "Sträck", - "lockRotation": "Lås rotation", - "unlockRotation": "Lås upp rotation", + "noOffset": "Ingen förskjutning", + "letterbox": "Brevlådeformat", + "fillScreen": "Fyll skärmen", + "stretch": "Sträck ut", + "lockRotation": "Lås skärmrotationen", + "unlockRotation": "Lås upp skärmrotationen", "timerActive": "Timer aktiv", "playbackWillPauseIn": "Uppspelningen pausas om ${duration}", "sleepTimerEndOfVideo": "Slutet av aktuell video", @@ -484,16 +484,16 @@ "playNext": "Spela nästa", "playButton": "Spela", "pauseButton": "Pausa", - "showPlaybackControls": "", - "hidePlaybackControls": "", + "showPlaybackControls": "Visa uppspelningskontroller", + "hidePlaybackControls": "Dölj uppspelningskontroller", "seekBackwardButton": "Spola bakåt ${seconds} sekunder", "seekForwardButton": "Spola framåt ${seconds} sekunder", "previousButton": "Föregående avsnitt", "nextButton": "Nästa avsnitt", "previousChapterButton": "Föregående kapitel", "nextChapterButton": "Nästa kapitel", - "muteButton": "Tysta", - "unmuteButton": "Slå på ljud", + "muteButton": "Stäng av ljudet", + "unmuteButton": "Slå på ljudet", "settingsButton": "Uppspelningsinställningar", "tracksButton": "Ljud och undertexter", "chaptersButton": "Kapitel", @@ -504,7 +504,7 @@ "qualityPresetLabel": "${resolution}p ${bitrate} Mbps", "transcodeUnavailableFallback": "Transkodning otillgänglig — spelar upp i originalkvalitet", "subtitleUnavailableFallback": "De valda undertexterna kunde inte läsas in — uppspelningen fortsätter utan undertexter", - "pipButton": "Bild-i-bild läge", + "pipButton": "Bild-i-bild-läge", "aspectRatioButton": "Bildförhållande", "ambientLighting": "Ambientbelysning", "fullscreenButton": "Aktivera helskärm", @@ -516,8 +516,8 @@ "longPressToUnlock": "Tryck länge för att låsa upp", "timelineSlider": "Videotidslinje", "volumeSlider": "Volymnivå", - "endsAt": "Slutar ${time}", - "pipActive": "Spelar i bild-i-bild", + "endsAt": "Slutar kl. ${time}", + "pipActive": "Spelas upp i bild-i-bild", "pipFailed": "Bild-i-bild kunde inte starta", "screenshotSaved": "Skärmbild sparad", "zoomPercent": "Zoom ${percent}%", @@ -540,9 +540,9 @@ "noSubtitlesAvailable": "Inga undertexter tillgängliga", "noAudioTracksAvailable": "Inga ljudspår tillgängliga", "noTracksAvailable": "Inga spår tillgängliga", - "subtitleDownloaded": "Undertext nedladdad", - "subtitleDownloadedNotApplied": "Undertexten hämtades, men kunde inte väljas", - "subtitleDownloadFailed": "Kunde inte ladda ner undertext", + "subtitleDownloaded": "Undertexten har laddats ned", + "subtitleDownloadedNotApplied": "Undertexten laddades ned men kunde inte väljas", + "subtitleDownloadFailed": "Det gick inte att ladda ned undertexten", "searchLanguages": "Sök språk..." }, "userStatus": {}, @@ -558,14 +558,14 @@ }, "removedFromContinueWatching": "Borttagen från Fortsätt titta", "errorLoading": "Fel: ${error}", - "streamInterrupted": "Uppspelningen avbröts. Tryck på play eller spola för att försöka igen.", - "liveStreamInterrupted": "Livestreamen avbröts. Tryck på play för att försöka igen.", - "fileInfoNotAvailable": "Filinformation inte tillgänglig", - "playbackAuthenticationRequired": "Sign in to the media server again to play this item.", - "playbackServerUnavailable": "The media server is unavailable. Try again later.", - "playbackDataInvalid": "The server returned invalid playback information.", - "playbackCancelled": "Playback was cancelled.", - "playbackFailed": "Playback could not be started.", + "streamInterrupted": "Strömmen avbröts. Tryck på uppspelning eller spola för att försöka igen.", + "liveStreamInterrupted": "Liveströmmen avbröts. Tryck på uppspelning för att försöka igen.", + "fileInfoNotAvailable": "Filinformation är inte tillgänglig", + "playbackAuthenticationRequired": "Logga in på medieservern igen för att spela upp objektet.", + "playbackServerUnavailable": "Medieservern är inte tillgänglig. Försök igen senare.", + "playbackDataInvalid": "Servern returnerade ogiltig uppspelningsinformation.", + "playbackCancelled": "Uppspelningen avbröts.", + "playbackFailed": "Det gick inte att starta uppspelningen.", "errorLoadingFileInfo": "Fel vid laddning av filinformation: ${error}", "errorLoadingSeries": "Fel vid laddning av serie", "musicNotSupported": "Musikuppspelning stöds inte ännu", @@ -577,11 +577,11 @@ "logsCopied": "Loggar kopierade till urklipp", "noLogsAvailable": "Inga loggar tillgängliga", "libraryScanning": "Skannar \"${title}\"...", - "libraryScanStarted": "Biblioteksskanning startad för \"${title}\"", - "libraryScanFailed": "Misslyckades att skanna bibliotek: ${error}", + "libraryScanStarted": "Biblioteksskanningen har startat för \"${title}\"", + "libraryScanFailed": "Det gick inte att skanna biblioteket: ${error}", "metadataRefreshing": "Uppdaterar metadata för \"${title}\"...", - "metadataRefreshStarted": "Metadata-uppdatering startad för \"${title}\"", - "metadataRefreshFailed": "Misslyckades att uppdatera metadata: ${error}", + "metadataRefreshStarted": "Metadatauppdateringen har startat för \"${title}\"", + "metadataRefreshFailed": "Det gick inte att uppdatera metadata: ${error}", "logoutConfirm": "Är du säker på att du vill logga ut?", "noSeasonsFound": "Inga säsonger hittades", "seasonsLoadFailed": "Det gick inte att läsa in säsonger", @@ -591,13 +591,13 @@ "noResultsFound": "Inga resultat hittades", "sleepTimerSet": "Sovtimer inställd för ${label}", "noItemsAvailable": "Inga objekt tillgängliga", - "failedToCreatePlayQueueNoItems": "Det gick inte att skapa uppspelningskö – inga objekt", - "failedPlayback": "Kunde inte ${action}: ${error}", + "failedToCreatePlayQueueNoItems": "Det gick inte att skapa en uppspelningskö – inga objekt", + "failedPlayback": "Det gick inte att ${action}: ${error}", "switchingToCompatiblePlayer": "Byter till kompatibel spelare...", "serverLimitTitle": "Uppspelningen misslyckades", "serverLimitBody": "Serverfel (HTTP 500). En bandbredds-/transkodningsgräns avvisade troligen sessionen. Be ägaren justera den.", - "logsUploaded": "Loggar uppladdade", - "logsUploadFailed": "Uppladdning av loggar misslyckades", + "logsUploaded": "Loggarna har laddats upp", + "logsUploadFailed": "Det gick inte att ladda upp loggarna", "logId": "Logg-ID" }, "subtitlingStyling": { @@ -608,7 +608,7 @@ "textColor": "Textfärg", "borderSize": "Kantstorlek", "borderColor": "Kantfärg", - "backgroundOpacity": "Bakgrundsopacitet", + "backgroundOpacity": "Bakgrundens opacitet", "backgroundColor": "Bakgrundsfärg", "position": "Position", "assOverride": "ASS-åsidosättning", @@ -624,8 +624,8 @@ "renderResolutionVideo": "Videoupplösning" }, "mpvConfig": { - "title": "mpv-konfiguration", - "description": "Avancerade videospelares inställningar", + "title": "mpv.conf", + "description": "Avancerade inställningar för videospelaren", "presets": "Förval", "noPresets": "Inga sparade förval", "saveAsPreset": "Spara som förval...", @@ -656,13 +656,13 @@ "signedOutPlex": "Utloggad från Plex.", "signOutFailed": "Utloggningen misslyckades.", "sectionTitle": "Profiler", - "summarySingle": "Lägg till profiler för att blanda hanterade användare och lokala identiteter", + "summarySingle": "Lägg till profiler för att kombinera hanterade användare och lokala identiteter", "summaryMultipleWithActive": "${count} profiler · aktiv: ${activeName}", "summaryMultiple": "${count} profiler", - "removeConnectionTitle": "Ta bort anslutning?", - "removeConnectionMessage": "Ta bort ${displayName}s åtkomst till ${connectionLabel}. Andra profiler behåller den.", - "deleteProfileTitle": "Ta bort profil?", - "deleteProfileMessage": "Ta bort ${displayName} och dess anslutningar. Servrar förblir tillgängliga.", + "removeConnectionTitle": "Ta bort anslutningen?", + "removeConnectionMessage": "Ta bort åtkomsten till ${connectionLabel} för ${displayName}. Andra profiler behåller den.", + "deleteProfileTitle": "Ta bort profilen?", + "deleteProfileMessage": "Ta bort ${displayName} och profilens anslutningar. Servrarna förblir tillgängliga.", "profileNameLabel": "Profilnamn", "pinProtectionLabel": "PIN-skydd", "pinManagedByPlex": "PIN hanteras av Plex. Redigera på plex.tv.", @@ -688,7 +688,7 @@ "borrowExplain": "Låna en annan profils anslutning. PIN-skyddade profiler kräver en PIN.", "borrowEmpty": "Inget att låna ännu.", "borrowEmptySubtitle": "Anslut Plex eller Jellyfin till en annan profil först.", - "borrowLoadFailed": "Available connections could not be loaded. Try again.", + "borrowLoadFailed": "Det gick inte att läsa in tillgängliga anslutningar. Försök igen.", "borrowFromProfile": "Från ${displayName}", "borrowConnectionBorrowed": "Anslutning lånad.", "borrowFailed": "Kunde inte låna anslutningen.", @@ -698,9 +698,9 @@ "failedToLoadHomeUsers": "Kunde inte läsa in dina Plex Home-användare. Kontrollera anslutningen och försök igen.", "failedToVerifyPin": "Kunde inte verifiera PIN.", "newProfile": "Ny profil", - "profileNameHint": "t.ex. Gäster, Barn, Familjerum", + "profileNameHint": "t.ex. Gäster, Barn eller Familjerum", "pinProtectionOptional": "PIN-skydd (valfritt)", - "pinExplain": "4-siffrig PIN krävs för att byta profiler.", + "pinExplain": "En fyrsiffrig PIN-kod krävs för att byta profil.", "continueButton": "Fortsätt", "pinsDontMatch": "PIN-koderna stämmer inte överens" }, @@ -713,12 +713,12 @@ "sessionExpiredMany": "Sessionen har gått ut för ${count} servrar", "signInAgain": "Logga in igen", "editJellyfinTitle": "Redigera Jellyfin-anslutning", - "editJellyfinIntro": "Lägg till eller ta bort URL:er för ${serverName}. Plezy använder den nåbara URL:en med lägst latens." + "editJellyfinIntro": "Lägg till eller ta bort URL:er för ${serverName}. Plezy använder den nåbara URL som har lägst latens." }, "discover": { "title": "Upptäck", "noContentAvailable": "Inget innehåll tillgängligt", - "addMediaToLibraries": "Lägg till media till dina bibliotek", + "addMediaToLibraries": "Lägg till medieinnehåll i dina bibliotek", "continueWatching": "Fortsätt titta", "continueWatchingIn": "Fortsätt titta i ${library}", "nextUp": "Nästa", @@ -731,25 +731,25 @@ "playEpisode": "S${season}E${episode}", "overview": "Översikt", "cast": "Rollbesättning", - "extras": "Trailers och Extra", + "extras": "Trailrar och extramaterial", "studio": "Studio", - "rating": "Åldersgräns", + "rating": "Betyg", "movie": "Film", "tvShow": "TV-serie", "minutesLeft": "${minutes} min kvar", - "moreLikeThis": "Mer som detta" + "moreLikeThis": "Mer liknande innehåll" }, "errors": { - "searchFailed": "Sökning misslyckades: ${error}", - "connectionTimeout": "Anslutnings-timeout vid laddning ${context}", - "connectionFailed": "Kan inte ansluta till mediaserver", + "searchFailed": "Sökningen misslyckades: ${error}", + "connectionTimeout": "Anslutningen tog för lång tid när ${context} lästes in", + "connectionFailed": "Det gick inte att ansluta till medieservern", "unableToLoad": "Det gick inte att läsa in ${context}. Försök igen.", - "noClientAvailable": "Ingen klient tillgänglig", - "pleaseEnterToken": "Vänligen ange en token", + "noClientAvailable": "Ingen klient är tillgänglig", + "pleaseEnterToken": "Ange en token", "invalidToken": "Ogiltig token", - "failedToVerifyToken": "Misslyckades att verifiera token: ${error}", - "failedToSwitchProfile": "Misslyckades att byta till ${displayName}", - "failedToDeleteProfile": "Misslyckades att ta bort ${displayName}", + "failedToVerifyToken": "Det gick inte att verifiera token: ${error}", + "failedToSwitchProfile": "Det gick inte att byta till ${displayName}", + "failedToDeleteProfile": "Det gick inte att ta bort ${displayName}", "failedToRate": "Det gick inte att uppdatera betyget" }, "libraries": { @@ -761,12 +761,12 @@ "analyzeLibrary": "Analysera bibliotek", "refreshMetadata": "Uppdatera metadata", "emptyTrash": "Töm papperskorg", - "emptyingTrash": "Tömmer papperskorg för \"${title}\"...", - "trashEmptied": "Papperskorg tömd för \"${title}\"", - "failedToEmptyTrash": "Misslyckades att tömma papperskorg: ${error}", + "emptyingTrash": "Tömmer papperskorgen för \"${title}\"...", + "trashEmptied": "Papperskorgen har tömts för \"${title}\"", + "failedToEmptyTrash": "Det gick inte att tömma papperskorgen: ${error}", "analyzing": "Analyserar \"${title}\"...", - "analysisStarted": "Analys startad för \"${title}\"", - "failedToAnalyze": "Misslyckades att analysera bibliotek: ${error}", + "analysisStarted": "Analysen har startat för \"${title}\"", + "failedToAnalyze": "Det gick inte att analysera biblioteket: ${error}", "noLibrariesFound": "Inga bibliotek hittades", "allLibrariesHidden": "Alla bibliotek är dolda", "hiddenLibrariesCount": "Dolda bibliotek (${count})", @@ -846,19 +846,19 @@ }, "about": { "title": "Om", - "openSourceLicenses": "Öppen källkod-licenser", + "openSourceLicenses": "Licenser för öppen källkod", "versionLabel": "Version ${version}", "appDescription": "En vacker Plex- och Jellyfin-klient för Flutter", "viewLicensesDescription": "Visa licenser för tredjepartsbibliotek" }, "serverSelection": { "noServersFoundForAccount": "Inga servrar hittades för ${username} (${email})", - "failedToLoadServers": "Misslyckades att ladda servrar: ${error}" + "failedToLoadServers": "Det gick inte att läsa in servrar: ${error}" }, "hubDetail": { "title": "Titel", "releaseYear": "Utgivningsår", - "dateAdded": "Datum tillagd", + "dateAdded": "Tilläggsdatum", "rating": "Betyg", "noItemsFound": "Inga objekt hittades" }, @@ -875,7 +875,7 @@ }, "navigation": { "libraries": "Bibliotek", - "downloads": "Nerladdat", + "downloads": "Nedladdningar", "liveTv": "Live-TV", "explore": "Utforska" }, @@ -886,13 +886,13 @@ "watchlist": "Bevakningslista", "recommendedMovies": "Rekommenderade filmer", "recommendedShows": "Rekommenderade serier", - "trendingMovies": "Trendande filmer", - "trendingShows": "Trendande serier", + "trendingMovies": "Populära filmer just nu", + "trendingShows": "Populära serier just nu", "popularMovies": "Populära filmer", "popularShows": "Populära serier", - "trendingAnime": "Trendande anime", - "suggestedAnime": "Föreslagna anime", - "airingAnime": "Bästa pågående anime", + "trendingAnime": "Populär anime just nu", + "suggestedAnime": "Föreslagen anime", + "airingAnime": "Bästa anime som sänds nu", "popularAnime": "Mest populära anime", "trending": "Trendar nu", "upcomingMovies": "Kommande filmer", @@ -927,11 +927,11 @@ "title": "Live-TV", "guide": "Programguide", "noChannels": "Inga kanaler tillgängliga", - "noDvr": "Ingen DVR konfigurerad på någon server", - "serverUnavailable": "Live-tv-servern är inte tillgänglig.", - "serverNotConnected": "Live-tv-servern är inte ansluten.", - "noPrograms": "Ingen programdata tillgänglig", - "liveStreamFailed": "Liveström misslyckades", + "noDvr": "Ingen DVR har konfigurerats på någon server", + "serverUnavailable": "Live-TV-servern är inte tillgänglig.", + "serverNotConnected": "Live-TV-servern är inte ansluten.", + "noPrograms": "Ingen programinformation är tillgänglig", + "liveStreamFailed": "Liveströmmen kunde inte startas", "unknownProgram": "Okänt program", "unknownHub": "Okänt", "unknownError": "Okänt fel", @@ -953,7 +953,7 @@ "favorites": "Favoriter", "reorderFavorites": "Ordna om favoriter", "favoritesLoadFailed": "Det gick inte att läsa in favoriter. Kontrollera anslutningen och försök igen.", - "favoritesUpdateFailed": "Could not update favorites. Check your connection and try again.", + "favoritesUpdateFailed": "Det gick inte att uppdatera favoriterna. Kontrollera anslutningen och försök igen.", "joinSession": "Gå med i pågående session", "watchFromStart": "Titta från början (${minutes} min sedan)", "watchLive": "Titta live", @@ -980,16 +980,16 @@ "recordingFailed": "Det gick inte att schemalägga inspelning", "recordingTargetMissing": "Det gick inte att hitta inspelningsbibliotek", "recordNotAvailable": "Inspelning är inte tillgänglig för detta program", - "recordingCancelled": "Inspelning avbruten", - "recordingRuleDeleted": "Inspelningsregel borttagen", + "recordingCancelled": "Inspelningen har avbrutits", + "recordingRuleDeleted": "Inspelningsregeln har tagits bort", "processRecordingRules": "Utvärdera regler igen", "recordingInProgress": "Spelar in nu", "recordingsCount": "${count} schemalagda", "editRule": "Redigera regel", "editRuleAction": "Redigera", "recordingRuleUpdated": "Inspelningsregel uppdaterad", - "guideReloadRequested": "Begärde guidens uppdatering", - "rulesProcessRequested": "Begärde regelutvärdering", + "guideReloadRequested": "Uppdatering av programguiden har begärts", + "rulesProcessRequested": "Ny regelutvärdering har begärts", "recordShow": "Spela in program" }, "collections": { @@ -1004,14 +1004,14 @@ "selectCollection": "Välj samling", "collectionName": "Samlingsnamn", "enterCollectionName": "Ange samlingsnamn", - "addedToCollection": "Tillagd i samling", - "errorAddingToCollection": "Fel vid tillägg i samling", - "created": "Samling skapad", - "removeFromCollection": "Ta bort från samling", - "removeFromCollectionConfirm": "Ta bort \"${title}\" från denna samling?", - "removedFromCollection": "Borttagen från samling", - "removeFromCollectionFailed": "Misslyckades med att ta bort från samling", - "removeFromCollectionError": "Fel vid borttagning från samling: ${error}", + "addedToCollection": "Objektet har lagts till i samlingen", + "errorAddingToCollection": "Det gick inte att lägga till objektet i samlingen", + "created": "Samlingen har skapats", + "removeFromCollection": "Ta bort från samlingen", + "removeFromCollectionConfirm": "Ta bort \"${title}\" från den här samlingen?", + "removedFromCollection": "Objektet har tagits bort från samlingen", + "removeFromCollectionFailed": "Det gick inte att ta bort objektet från samlingen", + "removeFromCollectionError": "Fel när objektet skulle tas bort från samlingen: ${error}", "searchCollections": "Sök samlingar..." }, "playlists": { @@ -1029,18 +1029,18 @@ "emptyPlaylist": "Denna spellista är tom", "deleteConfirm": "Ta bort spellista?", "deleteMessage": "Är du säker på att du vill ta bort \"${name}\"?", - "created": "Spellista skapad", - "deleted": "Spellista borttagen", - "itemAdded": "Tillagd i spellista", - "itemRemoved": "Borttagen från spellista", + "created": "Spellistan har skapats", + "deleted": "Spellistan har tagits bort", + "itemAdded": "Objektet har lagts till i spellistan", + "itemRemoved": "Objektet har tagits bort från spellistan", "selectPlaylist": "Välj spellista", "searchPlaylists": "Sök i spellistor...", - "errorCreating": "Det gick inte att skapa spellista", - "errorDeleting": "Det gick inte att ta bort spellista", - "errorLoading": "Det gick inte att ladda spellistor", - "errorAdding": "Det gick inte att lägga till i spellista", - "errorReordering": "Det gick inte att omordna spellisteobjekt", - "errorRemoving": "Det gick inte att ta bort från spellista" + "errorCreating": "Det gick inte att skapa spellistan", + "errorDeleting": "Det gick inte att ta bort spellistan", + "errorLoading": "Det gick inte att läsa in spellistor", + "errorAdding": "Det gick inte att lägga till objektet i spellistan", + "errorReordering": "Det gick inte att flytta objektet i spellistan", + "errorRemoving": "Det gick inte att ta bort objektet från spellistan" }, "music": { "goToAlbum": "Gå till album", @@ -1070,21 +1070,21 @@ "repeatOne": "Upprepa en låt" }, "watchTogether": { - "title": "Titta Tillsammans", + "title": "Titta tillsammans", "description": "Titta på innehåll synkroniserat med vänner och familj", - "createSession": "Skapa Session", + "createSession": "Skapa session", "creating": "Skapar...", - "joinSession": "Gå med i Session", + "joinSession": "Gå med i session", "joining": "Ansluter...", - "controlMode": "Kontrollläge", + "controlMode": "Kontrolläge", "controlModeQuestion": "Vem kan styra uppspelningen?", - "hostOnly": "Endast Värd", + "hostOnly": "Endast värden", "anyone": "Alla", - "hostingSession": "Värd för Session", - "inSession": "I Session", + "hostingSession": "Värd för sessionen", + "inSession": "I en session", "sessionCode": "Sessionskod", - "openSessionControls": "Öppna sessionskontroller för Titta Tillsammans", - "copySessionCode": "Kopiera sessionskod", + "openSessionControls": "Öppna sessionskontroller för Titta tillsammans", + "copySessionCode": "Kopiera sessionskoden", "hostControlsPlayback": "Värden styr uppspelningen", "anyoneCanControl": "Alla kan styra uppspelningen", "hostControls": "Värd styr", @@ -1094,10 +1094,10 @@ "hostBadge": "VÄRD", "youAreHost": "Du är värden", "watchingWithOthers": "Tittar med andra", - "endSession": "Avsluta Session", - "leaveSession": "Lämna Session", - "endSessionQuestion": "Avsluta Session?", - "leaveSessionQuestion": "Lämna Session?", + "endSession": "Avsluta session", + "leaveSession": "Lämna session", + "endSessionQuestion": "Avsluta sessionen?", + "leaveSessionQuestion": "Lämna sessionen?", "endSessionConfirm": "Detta avslutar sessionen för alla deltagare.", "leaveSessionConfirm": "Du kommer att tas bort från sessionen.", "endSessionConfirmOverlay": "Detta avslutar tittarsessionen för alla deltagare.", @@ -1105,17 +1105,17 @@ "end": "Avsluta", "leave": "Lämna", "syncing": "Synkroniserar...", - "joinWatchSession": "Gå med i Tittarsession", - "enterCodeHint": "Ange 5-teckens kod", + "joinWatchSession": "Gå med i tittarsession", + "enterCodeHint": "Ange en kod med 5 tecken", "pasteFromClipboard": "Klistra in från urklipp", - "pleaseEnterCode": "Vänligen ange en sessionskod", - "codeMustBe5Chars": "Sessionskod måste vara 5 tecken", + "pleaseEnterCode": "Ange en sessionskod", + "codeMustBe5Chars": "Sessionskoden måste bestå av 5 tecken", "joinInstructions": "Ange värdens sessionskod för att gå med.", - "failedToCreate": "Det gick inte att skapa session", - "failedToJoin": "Det gick inte att gå med i session", - "sessionCodeCopied": "Sessionskod kopierad till urklipp", - "relayUnreachable": "Relay-servern kan inte nås. ISP-blockering kan hindra Watch Together.", - "reconnectingToHost": "Återansluter till värd...", + "failedToCreate": "Det gick inte att skapa sessionen", + "failedToJoin": "Det gick inte att gå med i sessionen", + "sessionCodeCopied": "Sessionskoden har kopierats till urklipp", + "relayUnreachable": "Reläservern kan inte nås. Din internetleverantör kan blockera Titta tillsammans.", + "reconnectingToHost": "Återansluter till värden...", "currentPlayback": "Aktuell uppspelning", "joinCurrentPlayback": "Gå med i aktuell uppspelning", "joinCurrentPlaybackDescription": "Hoppa tillbaka till det värden tittar på just nu", @@ -1124,14 +1124,14 @@ "participantLeft": "${name} lämnade", "participantPaused": "${name} pausade", "participantResumed": "${name} återupptog", - "participantSeeked": "${name} spolade", + "participantSeeked": "${name} ändrade uppspelningspositionen", "participantBuffering": "${name} buffrar", "participantNeedsUpdate": "${name} använder en äldre appversion — synkronisering är inte tillgänglig", "resumingWithout": "Återupptar utan ${name}", - "waitingForParticipants": "Väntar på att andra laddar...", + "waitingForParticipants": "Väntar på att de andra ska ladda klart...", "waitingForName": "Väntar på ${name}...", - "recentRooms": "Senaste rum", - "renameRoom": "Byt namn på rum", + "recentRooms": "Senaste rummen", + "renameRoom": "Byt namn på rummet", "removeRoom": "Ta bort", "guestSwitchUnavailable": "Kunde inte byta — server inte tillgänglig för synkronisering", "guestSwitchFailed": "Kunde inte byta — innehåll hittades inte på denna server" @@ -1144,13 +1144,13 @@ "music": "Musik", "tracksQueued": "${count} låtar i nedladdningskö", "noDownloads": "Inga nedladdningar ännu", - "noDownloadsDescription": "Nedladdat innehåll visas här för offline-visning", + "noDownloadsDescription": "Nedladdat innehåll visas här så att du kan titta offline", "downloadNow": "Ladda ner", "deleteDownload": "Ta bort nedladdning", "retryDownload": "Försök igen", "downloadQueued": "Nedladdning köad", "downloadResumed": "Nedladdning återupptagen", - "serverErrorBitrate": "Serverfel: filen kan överskrida gränsen för fjärrbitrate", + "serverErrorBitrate": "Serverfel: filen kan överskrida serverns bithastighetsgräns", "episodesQueued": "${count} avsnitt köade för nedladdning", "downloadDeleted": "Nedladdning borttagen", "deleteConfirm": "Ta bort \"${title}\" från den här enheten?", @@ -1217,8 +1217,8 @@ "mode": "Läge", "importShader": "Importera shader", "customShaderDescription": "Anpassad GLSL-shader", - "shaderImported": "Shader importerad", - "shaderImportFailed": "Kunde inte importera shader", + "shaderImported": "Shadern har importerats", + "shaderImportFailed": "Det gick inte att importera shadern", "deleteShader": "Ta bort shader", "deleteShaderConfirm": "Ta bort \"${name}\"?" }, @@ -1232,9 +1232,9 @@ "connected": "Ansluten", "serverRunning": "Fjärrserver aktiv", "serverStopped": "Fjärrserver stoppad", - "serverRunningDescription": "Mobila enheter i ditt nätverk kan ansluta till den här appen", - "serverStoppedDescription": "Starta servern för att tillåta mobila enheter att ansluta", - "usePhoneToControl": "Använd din mobila enhet för att styra denna app", + "serverRunningDescription": "Mobila enheter i nätverket kan ansluta till appen", + "serverStoppedDescription": "Starta servern så att mobila enheter kan ansluta", + "usePhoneToControl": "Använd din mobila enhet för att styra appen", "startServer": "Starta server", "stopServer": "Stoppa server", "minimize": "Minimera" @@ -1245,15 +1245,15 @@ "connecting": "Ansluter...", "searchingForDevices": "Söker efter enheter...", "noDevicesFound": "Inga enheter hittades i ditt nätverk", - "noDevicesHint": "Öppna Plezy på desktop och använd samma WiFi", + "noDevicesHint": "Öppna Plezy på datorn och använd samma wifi", "availableDevices": "Tillgängliga enheter", "manualConnection": "Manuell anslutning", "cryptoInitFailed": "Kunde inte starta säker anslutning. Logga in på Plex först.", "validationHostRequired": "Ange värdadress", - "validationHostFormat": "Format måste vara IP:port (t.ex. 192.168.1.100:48632)", - "connectionTimedOut": "Anslutningen tog för lång tid. Använd samma nätverk på båda enheter.", - "sessionNotFound": "Enhet hittades inte. Kontrollera att Plezy körs på värden.", - "authFailed": "Autentisering misslyckades. Båda enheter behöver samma Plex-konto.", + "validationHostFormat": "Formatet måste vara IP:port (t.ex. 192.168.1.100:48632)", + "connectionTimedOut": "Anslutningen tog för lång tid. Använd samma nätverk på båda enheterna.", + "sessionNotFound": "Enheten hittades inte. Kontrollera att Plezy körs på värden.", + "authFailed": "Autentiseringen misslyckades. Båda enheterna måste använda samma Plex-konto.", "failedToConnect": "Kunde inte ansluta: ${error}" }, "remote": { @@ -1287,13 +1287,13 @@ }, "errors": { "noNetworkInterface": "Inget nätverksgränssnitt hittades", - "authenticationFailed": "Autentisering misslyckades", + "authenticationFailed": "Autentiseringen misslyckades", "serverStartFailed": "Det gick inte att starta fjärrservern: ${error}", "commandFailed": "Det gick inte att skicka fjärrkommandot: ${error}", - "joinTimedOut": "Tidsgräns vid anslutning till session", - "failedToConnectAnyAddress": "Kunde inte ansluta till någon adress", - "connectionLostAfterAttempts": "Anslutning förlorad efter ${attempts} försök", - "connectionLost": "Anslutning förlorad" + "joinTimedOut": "Det tog för lång tid att ansluta till sessionen", + "failedToConnectAnyAddress": "Det gick inte att ansluta till någon adress", + "connectionLostAfterAttempts": "Anslutningen bröts efter ${attempts} försök", + "connectionLost": "Anslutningen bröts" } }, "videoSettings": { @@ -1307,7 +1307,7 @@ "hdr": "HDR", "audioOutput": "Ljudutgång", "performanceOverlay": "Prestandaöverlägg", - "audioPassthrough": "Ljudgenomkoppling", + "audioPassthrough": "Ljudgenomströmning", "audioNormalization": "Normalisera ljudstyrka", "audioDownmix": "Nedmixning till stereo" }, @@ -1318,7 +1318,7 @@ "app": "App", "decoder": "Dekoder", "rawDecoder": "Rå dekoder", - "tunneling": "Tunneling", + "tunneling": "Tunnling", "aspect": "Bildformat", "rotation": "Rotation", "dvSource": "DV-källa", @@ -1329,19 +1329,19 @@ "hwFormat": "HW-format", "matrix": "Matris", "primaries": "Primärfärger", - "transfer": "Transfer", - "renderFps": "Render-FPS", + "transfer": "Överföring", + "renderFps": "Renderings-FPS", "displayFps": "Skärm-FPS", "avSync": "A/V-synk", - "dropped": "Tappade", - "dvRpus": "DV RPU:er", - "dvRpuAverage": "DV RPU snitt", - "dvSampleAverage": "DV-sample snitt", + "dropped": "Tappade bildrutor", + "dvRpus": "DV-RPU:er", + "dvRpuAverage": "DV-RPU, genomsnitt", + "dvSampleAverage": "DV-sampling, genomsnitt", "maxLuma": "Max luma", "minLuma": "Min luma", "maxCll": "MaxCLL", "maxFall": "MaxFALL", - "cacheUsed": "Cache använd", + "cacheUsed": "Använt cacheminne", "cacheLimit": "Cachegräns", "speed": "Hastighet", "player": "Spelare", @@ -1369,8 +1369,8 @@ "metadataEdit": { "editMetadata": "Redigera...", "screenTitle": "Redigera metadata", - "basicInfo": "Grundläggande info", - "artwork": "Artwork", + "basicInfo": "Grundläggande information", + "artwork": "Bildmaterial", "advancedSettings": "Avancerade inställningar", "title": "Titel", "sortTitle": "Sorteringstitel", @@ -1378,13 +1378,13 @@ "releaseDate": "Utgivningsdatum", "contentRating": "Åldersgräns", "studio": "Studio", - "tagline": "Tagline", + "tagline": "Slogan", "summary": "Sammanfattning", - "poster": "Poster", + "poster": "Affisch", "background": "Bakgrund", "logo": "Logotyp", "squareArt": "Kvadratisk bild", - "selectPoster": "Välj poster", + "selectPoster": "Välj affisch", "selectBackground": "Välj bakgrund", "selectLogo": "Välj logotyp", "selectSquareArt": "Välj kvadratisk bild", @@ -1392,11 +1392,11 @@ "uploadFile": "Ladda upp fil", "enterImageUrl": "Ange bild-URL", "imageUrl": "Bild-URL", - "metadataUpdated": "Metadata uppdaterad", - "metadataUpdateFailed": "Kunde inte uppdatera metadata", - "artworkUpdated": "Artwork uppdaterad", - "artworkUpdateFailed": "Kunde inte uppdatera artwork", - "noArtworkAvailable": "Ingen artwork tillgänglig", + "metadataUpdated": "Metadata har uppdaterats", + "metadataUpdateFailed": "Det gick inte att uppdatera metadata", + "artworkUpdated": "Bildmaterialet har uppdaterats", + "artworkUpdateFailed": "Det gick inte att uppdatera bildmaterialet", + "noArtworkAvailable": "Inget bildmaterial är tillgängligt", "artworkOption": "Bildalternativ ${index}", "selectedArtworkOption": "Bildalternativ ${index}, valt", "notSet": "Inte angiven", @@ -1428,15 +1428,15 @@ "useOriginalTitle": "Använd originaltitel", "preferredAudioLanguage": "Föredraget ljudspråk", "preferredSubtitleLanguage": "Föredraget undertextspråk", - "subtitleMode": "Automatiskt val av undertexter", + "subtitleMode": "Läge för automatiskt undertextval", "manuallySelected": "Manuellt vald", - "shownWithForeignAudio": "Visas vid främmande ljud", + "shownWithForeignAudio": "Visas med ljud på främmande språk", "alwaysEnabled": "Alltid aktiverad", "tags": "Taggar", "addTag": "Lägg till tagg", "genre": "Genre", "director": "Regissör", - "writer": "Författare", + "writer": "Manusförfattare", "producer": "Producent", "country": "Land", "collection": "Samling", @@ -1469,10 +1469,10 @@ "connectedAs": "Ansluten som @${username}", "disconnectConfirm": "Koppla från Trakt-konto?", "disconnectConfirmBody": "Plezy slutar skicka händelser till Trakt. Du kan återansluta när som helst.", - "scrobble": "Realtids-scrobbling", - "scrobbleDescription": "Skicka uppspelnings-, paus- och stopphändelser till Trakt under uppspelning.", - "watchedSync": "Synkronisera tittad-status", - "watchedSyncDescription": "När du markerar något som tittat i Plezy markeras det också på Trakt." + "scrobble": "Realtidsspårning", + "scrobbleDescription": "Skicka händelser för uppspelning, paus och stopp till Trakt under uppspelningen.", + "watchedSync": "Synkronisera seddstatus", + "watchedSyncDescription": "När du markerar objekt som sedda i Plezy markeras de även som sedda på Trakt." }, "seerr": { "title": "Seerr", @@ -1498,7 +1498,7 @@ "rootFolder": "Rotmapp", "languageProfile": "Språkprofil", "requestSubmitted": "Begäran skickad", - "requestFailed": "Begäran misslyckades: ${error}", + "requestFailed": "Begäran kunde inte genomföras: ${error}", "requestsLoadFailed": "Det gick inte att läsa in alternativ för begäran", "nothingToRequest": "Allt är redan tillgängligt eller begärt.", "statusAvailable": "Tillgänglig", @@ -1508,11 +1508,11 @@ }, "services": { "title": "Tjänster", - "hubSubtitle": "Synkronisera dina framsteg och begär nya titlar.", - "notConnected": "Ej ansluten", + "hubSubtitle": "Synkronisera visningsstatus och begär nya titlar.", + "notConnected": "Inte ansluten", "connectedAs": "Ansluten som @${username}", - "scrobble": "Spåra framsteg automatiskt", - "scrobbleDescription": "Uppdaterar din lista när du är klar med ett avsnitt eller en film.", + "scrobble": "Spåra uppspelningen automatiskt", + "scrobbleDescription": "Uppdatera din lista när du har sett klart ett avsnitt eller en film.", "disconnectConfirm": "Koppla från ${service}?", "disconnectConfirmBody": "Plezy slutar uppdatera ${service}. Återanslut när som helst.", "connectFailed": "Kunde inte ansluta till ${service}. Försök igen.", @@ -1544,10 +1544,10 @@ "subtitleBlocked": "${count} blockerade", "subtitleAllowed": "${count} tillåtna", "mode": "Filterläge", - "modeBlacklist": "Svartlista", - "modeWhitelist": "Vitlista", - "modeHintBlacklist": "Synkronisera alla bibliotek utom de som markerats nedan.", - "modeHintWhitelist": "Synkronisera endast de bibliotek som markerats nedan.", + "modeBlacklist": "Blockeringslista", + "modeWhitelist": "Tillåtelselista", + "modeHintBlacklist": "Synkronisera alla bibliotek utom de som markeras nedan.", + "modeHintWhitelist": "Synkronisera endast de bibliotek som markeras nedan.", "libraries": "Bibliotek", "noLibraries": "Inga bibliotek tillgängliga" } @@ -1555,7 +1555,7 @@ "addServer": { "addJellyfinTitle": "Lägg till Jellyfin-server", "serverUrls": "Server-URL:er", - "serverUrlsHelper": "Flera URL:er tillåtna, separerade med kommatecken.", + "serverUrlsHelper": "Du kan ange flera URL:er avgränsade med kommatecken.", "findServer": "Hitta server", "searchingLocalServers": "Söker efter lokala Jellyfin-servrar...", "localServers": "Lokala Jellyfin-servrar", @@ -1565,7 +1565,7 @@ "change": "Ändra", "required": "Krävs", "couldNotReachServer": "Kunde inte nå servern: ${error}", - "signInFailed": "Inloggning misslyckades: ${error}", + "signInFailed": "Det gick inte att logga in: ${error}", "quickConnectFailed": "Quick Connect misslyckades: ${error}", "addPlexTitle": "Logga in med Plex", "pinExpired": "PIN-koden gick ut innan inloggning. Försök igen.", diff --git a/lib/i18n/zh-Hant.i18n.json b/lib/i18n/zh-Hant.i18n.json new file mode 100644 index 00000000..95791572 --- /dev/null +++ b/lib/i18n/zh-Hant.i18n.json @@ -0,0 +1,1582 @@ +{ + "app": { + "title": "Plezy" + }, + "auth": { + "signInWithPlex": "使用 Plex 登入", + "showQRCode": "顯示 QR 碼", + "authenticate": "驗證", + "authenticationTimeout": "驗證逾時。請重試。", + "scanQRToSignIn": "掃描此 QR 碼以登入", + "waitingForAuth": "正在等待驗證…\n請在瀏覽器中登入。", + "useBrowser": "使用瀏覽器", + "or": "或", + "connectToJellyfin": "連線至 Jellyfin", + "useQuickConnect": "使用快速連線(Quick Connect)", + "quickConnectInstructions": "在 Jellyfin 中開啟快速連線並輸入此代碼。", + "quickConnectWaiting": "等待核准…", + "quickConnectCancel": "取消", + "quickConnectExpired": "快速連線代碼已過期。請重試。", + "localDataRecoveryRequired": "Plezy 無法安全地復原本機登入資料與待處理的播放資料。請重新登入。" + }, + "common": { + "cancel": "取消", + "save": "儲存", + "close": "關閉", + "clear": "清除", + "reset": "重設", + "later": "稍後", + "submit": "送出", + "confirm": "確認", + "retry": "重試", + "logout": "登出", + "unknown": "未知", + "refresh": "重新整理", + "yes": "是", + "no": "否", + "delete": "刪除", + "edit": "編輯", + "shuffle": "隨機播放", + "addTo": "新增至…", + "createNew": "新增", + "connect": "連線", + "disconnect": "中斷連線", + "play": "播放", + "pause": "暫停", + "resume": "繼續", + "error": "錯誤", + "search": "搜尋", + "home": "首頁", + "back": "返回", + "settings": "設定", + "mute": "靜音", + "ok": "確定", + "off": "關閉", + "seasonNumber": "第 ${number} 季", + "episodeNumberTitle": "第 ${number} 集 — ${title}", + "chapterNumber": "第 ${number} 章", + "reconnect": "重新連線", + "viewAll": "查看全部", + "checkingNetwork": "正在檢查網路…", + "loadingServers": "正在載入伺服器…", + "connectingToServers": "正在連線伺服器…", + "startingOfflineMode": "正在啟動離線模式…", + "loading": "載入中…", + "fullscreen": "全螢幕", + "exitFullscreen": "退出全螢幕", + "pressBackAgainToExit": "再按一次返回以退出" + }, + "screens": { + "licenses": "授權條款", + "switchProfile": "切換使用者", + "subtitleStyling": "字幕樣式", + "mpvConfig": "mpv.conf 設定", + "logs": "日誌" + }, + "update": { + "available": "有可用更新", + "versionAvailable": "版本 ${version} 已發佈", + "currentVersion": "目前版本:${version}", + "skipVersion": "跳過此版本", + "viewRelease": "查看版本詳情", + "latestVersion": "已安裝的版本為最新版本", + "checkFailed": "無法檢查更新" + }, + "settings": { + "title": "設定", + "supportDeveloper": "贊助 Plezy", + "supportDeveloperDescription": "透過 Liberapay 捐款支持開發者", + "language": "語言", + "theme": "主題", + "appearance": "外觀", + "videoPlayback": "影片播放", + "videoPlaybackDescription": "設定播放行為", + "advanced": "進階", + "episodePosterMode": "單集海報樣式", + "seriesPoster": "影集海報", + "seasonPoster": "單季海報", + "episodeThumbnail": "縮圖", + "showHeroSectionDescription": "在主畫面上顯示精選內容輪播區", + "secondsLabel": "秒", + "minutesLabel": "分鐘", + "secondsShort": "秒", + "minutesShort": "分", + "durationHint": "輸入長度(${min}-${max})", + "systemTheme": "系統預設", + "lightTheme": "淺色", + "darkTheme": "深色", + "oledTheme": "OLED 純黑", + "libraryDensity": "媒體庫版面配置密度", + "compact": "緊湊", + "comfortable": "舒適", + "tvCornerSpotlightBackdrop": "右上角焦點背景圖", + "tvCornerSpotlightBackdropDescription": "在右上角顯示焦點內容圖片,而非填滿整個畫面", + "viewMode": "檢視模式", + "gridView": "網格檢視", + "listView": "清單檢視", + "showHeroSection": "顯示精選內容區", + "continueWatchingAction": "繼續觀看操作", + "continueWatchingPlay": "播放影片", + "continueWatchingDetails": "開啟詳情頁", + "episodeAction": "單集操作", + "episodePlay": "播放", + "episodeDetails": "開啟詳情頁", + "useGlobalHubs": "使用首頁版面配置", + "useGlobalHubsDescription": "顯示統一的首頁推薦欄,否則使用各媒體庫的推薦內容。", + "showServerNameOnHubs": "在推薦欄顯示伺服器名稱", + "showServerNameOnHubsDescription": "一律在推薦區標題中顯示伺服器名稱。", + "groupLibrariesByServer": "依伺服器將媒體庫分組", + "groupLibrariesByServerDescription": "將側邊欄中的媒體庫依伺服器進行分組。", + "alwaysKeepSidebarOpen": "一律保持側邊欄展開", + "alwaysKeepSidebarOpenDescription": "側邊欄保持展開狀態,內容區域自動調整", + "showUnwatchedCount": "顯示未觀看數量", + "showUnwatchedCountDescription": "在影集和單季上顯示未觀看的集數", + "showEpisodeNumberOnCards": "在卡片上顯示集數", + "showEpisodeNumberOnCardsDescription": "在單集卡片上顯示季和集編號", + "showSeasonPostersOnTabs": "在索引標籤上顯示單季海報", + "showSeasonPostersOnTabsDescription": "在每季標籤上方顯示該季海報", + "tvFullCardLayout": "完整 TV 卡片版面配置", + "tvFullCardLayoutDescription": "使用僅顯示圖片的 TV 卡片,並在圖片上疊加演員姓名", + "focusGlow": "焦點光暈", + "focusGlowDescription": "在獲得焦點的卡片周圍顯示柔和的光暈", + "visualEffects": "視覺效果", + "visualEffectsAuto": "自動", + "visualEffectsAutoDescription": "在效能較低的裝置上自動減少效果", + "visualEffectsFull": "完整效果", + "visualEffectsReduced": "簡化效果", + "visualEffectsReducedDescription": "減少動畫並使用較低解析度的封面圖片", + "hideSpoilers": "隱藏未觀看單集的劇透內容", + "hideSpoilersDescription": "模糊未觀看單集的縮圖與描述", + "playerBackend": "播放器引擎", + "exoPlayer": "ExoPlayer", + "mpv": "mpv", + "hardwareDecoding": "硬體解碼", + "hardwareDecodingDescription": "如果支援,使用硬體加速", + "bufferSize": "緩衝區大小", + "bufferSizeMB": "${size} MB", + "bufferSizeAuto": "自動(推薦)", + "bufferSizeWarning": "可用記憶體為 ${heap} MB。設定 ${size} MB 緩衝可能影響播放穩定性。", + "defaultQualityTitle": "預設畫質", + "musicQualityTitle": "音樂品質", + "subtitleStyling": "字幕樣式", + "subtitleStylingDescription": "調整字幕外觀", + "smallSkipDuration": "短跳過時間", + "largeSkipDuration": "長跳過時間", + "rewindOnResume": "繼續播放時稍微倒轉", + "secondsUnit": "${seconds} 秒", + "defaultSleepTimer": "預設睡眠計時器", + "minutesUnit": "${minutes} 分鐘", + "rememberTrackSelections": "記住每部影集或電影的音訊與字幕選擇", + "rememberTrackSelectionsDescription": "記住每部影片的音軌與字幕選擇", + "showChapterMarkersOnTimeline": "在進度條上顯示章節標記", + "showChapterMarkersOnTimelineDescription": "依章節分段顯示進度條", + "clickVideoTogglesPlayback": "點選影片可切換播放或暫停", + "clickVideoTogglesPlaybackDescription": "點選影片即可播放或暫停,而不顯示控制面板。", + "videoPlayerControls": "影片播放器控制", + "keyboardShortcuts": "鍵盤快速鍵", + "keyboardShortcutsDescription": "自訂鍵盤快速鍵", + "videoPlayerNavigation": "影片播放器導覽", + "videoPlayerNavigationDescription": "使用方向鍵導覽影片播放器控制項", + "watchTogetherRelay": "一起看中繼伺服器", + "watchTogetherRelayDescription": "設定自訂中繼。所有人必須使用相同的伺服器。", + "watchTogetherRelayHint": "https://my-relay.example.com", + "watchTogetherRelayInvalid": "請輸入有效的 HTTP 或 HTTPS 中繼伺服器根網址。", + "crashReporting": "當機報告", + "crashReportingDescription": "傳送當機報告以協助改善應用程式", + "debugLogging": "偵錯日誌", + "debugLoggingDescription": "啟用詳細日誌記錄以便進行疑難排解", + "viewLogs": "查看日誌", + "viewLogsDescription": "查看應用程式日誌記錄", + "clearCache": "清除快取", + "clearCacheDescription": "清除快取的圖片與資料。再次載入內容時速度可能會變慢。", + "clearCacheSuccess": "快取清除成功", + "resetSettings": "重設設定", + "resetSettingsDescription": "恢復預設設定。此操作無法復原。", + "resetSettingsSuccess": "設定重設成功", + "backup": "備份", + "exportSettings": "匯出設定", + "exportSettingsDescription": "將您的偏好設定儲存至檔案", + "exportSettingsSuccess": "設定已匯出", + "importSettings": "匯入設定", + "importSettingsDescription": "從檔案還原偏好設定", + "importSettingsConfirm": "這將覆蓋您目前的設定。要繼續嗎?", + "importSettingsSuccess": "設定已匯入", + "importSettingsInvalidFile": "此檔案不是有效的 Plezy 設定匯出檔", + "importSettingsNoUser": "匯入設定前請先登入", + "shortcutsReset": "快速鍵已重設為預設值", + "about": "關於", + "aboutDescription": "應用程式資訊與授權條款", + "updates": "更新", + "updateAvailable": "有可用更新", + "checkForUpdates": "檢查更新", + "autoCheckUpdatesOnStartup": "啟動時自動檢查更新", + "autoCheckUpdatesOnStartupDescription": "啟動時若有可用更新便顯示通知", + "validationErrorEnterNumber": "請輸入有效的數字", + "validationErrorDuration": "長度必須介於 ${min} 與 ${max} ${unit} 之間", + "shortcutAlreadyAssigned": "該快速鍵已指派給 ${action}", + "shortcutUpdated": "已更新 ${action} 的快速鍵", + "saveFailed": "無法儲存變更。請重試。", + "autoSkip": "自動跳過", + "autoSkipIntro": "自動跳過片頭", + "autoSkipIntroDescription": "幾秒鐘後自動跳過片頭標記", + "autoSkipCredits": "自動跳過片尾", + "autoSkipCreditsDescription": "自動跳過片尾並播放下一集", + "forceSkipMarkerFallback": "強制使用備用標記", + "forceSkipMarkerFallbackDescription": "即使 Plex 有標記,也強制使用章節標題模式", + "autoSkipDelay": "自動跳過延遲", + "autoSkipDelayDescription": "自動跳過前等待 ${seconds} 秒", + "introPattern": "片頭標記模式", + "introPatternDescription": "用於比對章節標題中片頭標記的正規表示式", + "creditsPattern": "片尾標記模式", + "creditsPatternDescription": "用於比對章節標題中片尾標記的正規表示式", + "invalidRegex": "無效的正規表示式", + "regex": "正規表示式", + "downloads": "下載", + "downloadLocationDescription": "選擇下載內容的儲存位置", + "downloadLocationDefault": "預設(應用程式專屬儲存空間)", + "downloadLocationCustom": "自訂位置", + "selectFolder": "選擇資料夾", + "resetToDefault": "重設為預設值", + "currentPath": "目前路徑:${path}", + "downloadLocationChanged": "下載位置已變更", + "downloadLocationReset": "下載位置已重設為預設值", + "downloadLocationInvalid": "所選資料夾不具寫入權限", + "downloadLocationPickerUnavailable": "此裝置無法選擇資料夾", + "downloadOnWifiOnly": "僅在 Wi-Fi 連線時下載", + "downloadOnWifiOnlyDescription": "使用行動網路時不會下載", + "autoRemoveWatchedDownloads": "自動移除已觀看的下載內容", + "autoRemoveWatchedDownloadsDescription": "自動刪除已觀看的下載影片", + "cellularDownloadBlocked": "使用行動網路時無法下載。請改用 Wi-Fi 或變更設定。", + "maxVolume": "最大音量", + "maxVolumeDescription": "允許音量調大至 100% 以上,以適應聲音過小的媒體", + "maxVolumePercent": "${percent}%", + "discordRichPresence": "Discord 狀態整合(Rich Presence)", + "discordRichPresenceDescription": "在 Discord 上顯示您正在觀看的內容", + "services": "外部服務", + "servicesDescription": "連結 Trakt、MyAnimeList、Seerr 等服務", + "manageLibrariesDescription": "重新排序與隱藏媒體庫", + "companionRemoteServer": "隨身遙控器伺服器", + "companionRemoteServerDescription": "允許區域網路中的行動裝置控制此應用程式", + "autoPip": "自動進入子母畫面", + "autoPipDescription": "播放影片時離開應用程式將自動進入子母畫面模式", + "matchContentFrameRate": "符合影片影格率", + "matchContentFrameRateDescription": "將顯示器更新率同步至影片影格率", + "matchRefreshRate": "同步螢幕更新率", + "matchRefreshRateDescription": "全螢幕時同步顯示器更新率", + "matchDynamicRange": "同步動態範圍", + "matchDynamicRangeDescription": "HDR 內容切換至 HDR,播放結束切回 SDR", + "displaySwitchDelay": "顯示器切換延遲時間", + "tunneledPlayback": "通道化播放(Tunneled Playback)", + "tunneledPlaybackDescription": "使用影片通道模式。若 HDR 播放出現黑畫面,請停用此項。", + "audioPassthrough": "音訊直通", + "audioPassthroughDescription": "將 Dolby/DTS 音訊不經重新編碼,直接傳送至擴大機或電視以保留環繞音效。若播放無聲,請關閉此設定。", + "audioPassthroughDescriptionAppleTv": "使用 Apple 原生 Dolby 解碼器處理 Dolby Digital Plus(包括 Atmos)。DTS 與 TrueHD 仍以多聲道 PCM 播放。若沒有聲音,請關閉此設定。", + "audioDownmix": "下混為立體聲", + "audioDownmixDescription": "將環繞音效混合為雙聲道,適用於立體聲喇叭或耳機", + "downmixCenterBoost": "中置聲道增強", + "downmixCenterBoostValue": "${db} dB", + "downmixCenterBoostLabel": "增強(dB)", + "downmixCenterBoostShort": "dB", + "audioDownmixNormalize": "下混時音量標準化", + "audioDownmixNormalizeDescription": "降低混音電平以防止破音。關閉以保持原始音量(大音量場景可能會失真)。", + "atmosDiagnostics": "Atmos 輸出測試", + "atmosDiagnosticsDescription": "透過系統播放器播放測試訊號,診斷 Dolby Atmos 輸出狀態", + "atmosTestHlsAtmos": "Apple Atmos 串流", + "atmosTestHlsAtmosDescription": "已知正常的 Dolby Atmos 串流。擴大機應顯示 Dolby Atmos。", + "atmosTestHlsControl": "Apple 環繞音效串流", + "atmosTestHlsControlDescription": "不含 Atmos 的對照組串流。擴大機應顯示一般環繞音效(非 Atmos)。", + "atmosTestRawStream": "原始 EAC3 串流", + "atmosTestRawStreamDescription": "以與播放器播放 Atmos 完全相同的方式串流測試檔案。需要測試檔案的 URL。", + "atmosTestRawFile": "原始 EAC3 檔案", + "atmosTestRawFileDescription": "以已知長度播放測試檔案。需要測試檔案的 URL。", + "atmosTestStop": "停止測試", + "atmosTestUrl": "測試檔案 URL", + "atmosTestUrlDescription": "原始 .ec3 Dolby Atmos 檔案的 HTTP URL(例如使用 ffmpeg 提取的檔案)", + "atmosTestUrlMissing": "請先設定測試檔案的 URL", + "atmosTestStatus": "狀態", + "dvConversionMode": "Dolby Vision 轉換模式", + "dvConversionModeDescription": "選擇 ExoPlayer 如何處理 Dolby Vision Profile 7 檔案。", + "dvConversionAuto": "自動", + "dvConversionNative": "原生 / 停用", + "dvConversionDv81": "P7 → P8.1", + "dvConversionHevcStrip": "P7 → HEVC", + "dvConversionAutoDescription": "自動偵測裝置相容性並使用一般備援機制", + "dvConversionNativeDescription": "強制使用原生 DV7 並停用 DV 轉換重試", + "dvConversionDv81Description": "強制將內嵌的 RPU 轉換為 Dolby Vision Profile 8.1", + "dvConversionHevcStripDescription": "移除 Dolby Vision RPU/EL 層,並以一般 HEVC 呈現", + "requireProfileSelectionOnOpen": "開啟應用程式時要求選擇使用者", + "requireProfileSelectionOnOpenDescription": "每次開啟應用程式時顯示使用者設定檔選擇畫面", + "forceTvMode": "強制 TV 模式", + "forceTvModeDescription": "強制使用 TV 介面版面。適用於無法自動辨識 TV 的裝置。需要重新啟動。", + "startInFullscreen": "以全螢幕模式啟動", + "startInFullscreenDescription": "啟動時直接以全螢幕開啟 Plezy", + "exitFullscreenOnPlayerClose": "關閉播放器時退出全螢幕", + "exitFullscreenOnPlayerCloseDescription": "關閉影片播放器時自動退出全螢幕模式", + "autoHidePerformanceOverlay": "自動隱藏效能疊加層", + "autoHidePerformanceOverlayDescription": "效能疊加層隨播放控制面板一起淡入或淡出", + "showNavBarLabels": "顯示導覽列標籤", + "showNavBarLabelsDescription": "在導覽列圖示下方顯示文字標籤", + "startupSection": "啟動頁面", + "liveTvDefaultFavorites": "預設顯示最愛頻道", + "liveTvDefaultFavoritesDescription": "開啟直播電視時僅顯示最愛頻道", + "display": "顯示器", + "homeScreen": "主畫面", + "navigation": "導覽", + "window": "視窗", + "content": "內容", + "player": "播放器", + "subtitlesAndConfig": "字幕與設定", + "seekAndTiming": "跳轉與計時", + "behavior": "行為" + }, + "search": { + "hint": "搜尋電影、影集、音樂…", + "tryDifferentTerm": "嘗試不同的關鍵字", + "searchYourMedia": "搜尋媒體庫", + "enterTitleActorOrKeyword": "輸入標題、演員或關鍵字" + }, + "hotkeys": { + "setShortcutFor": "為 ${actionName} 設定快速鍵", + "clearShortcut": "清除快速鍵", + "noShortcutSet": "未設定快速鍵", + "currentShortcut": "目前快速鍵:", + "pressToRecord": "選擇以錄製快速鍵", + "recordingShortcut": "現在請按下快速鍵組合", + "actions": { + "playPause": "播放/暫停", + "volumeUp": "調大音量", + "volumeDown": "調小音量", + "seekForward": "快進(${seconds} 秒)", + "seekBackward": "快退(${seconds} 秒)", + "fullscreenToggle": "切換全螢幕", + "muteToggle": "切換靜音", + "subtitleToggle": "切換字幕", + "audioTrackNext": "下一個音軌", + "subtitleTrackNext": "下一個字幕軌", + "chapterNext": "下一個章節", + "chapterPrevious": "上一個章節", + "episodeNext": "下一集", + "episodePrevious": "上一集", + "speedIncrease": "加速播放", + "speedDecrease": "減速播放", + "speedReset": "重設速度", + "zoomIn": "放大", + "zoomOut": "縮小", + "zoomReset": "重設縮放", + "subSeekNext": "跳轉至下一句字幕", + "subSeekPrev": "跳轉至上一句字幕", + "shaderToggle": "切換著色器", + "skipMarker": "跳過片頭/片尾", + "screenshot": "螢幕截圖" + } + }, + "fileInfo": { + "title": "檔案資訊", + "video": "影片", + "audio": "音訊", + "file": "檔案", + "advanced": "進階", + "codec": "編解碼器", + "resolution": "解析度", + "bitrate": "位元率", + "frameRate": "影格率", + "aspectRatio": "寬高比", + "profile": "規格檔(Profile)", + "bitDepth": "位元深度", + "colorSpace": "色彩空間", + "colorRange": "色彩範圍", + "colorPrimaries": "色彩基色", + "chromaSubsampling": "色度抽樣", + "channels": "聲道數", + "subtitles": "字幕", + "overallBitrate": "總位元率", + "path": "路徑", + "size": "大小", + "container": "封裝格式", + "duration": "長度", + "optimizedForStreaming": "已最佳化串流播放", + "has64bitOffsets": "具 64 位元偏移量" + }, + "mediaMenu": { + "markAsWatched": "標記為已觀看", + "markAsUnwatched": "標記為未觀看", + "removeFromContinueWatching": "從「繼續觀看」中移除", + "viewDetails": "查看詳情", + "goToSeries": "前往影集", + "shufflePlay": "隨機播放", + "shuffleNotAvailableOffline": "離線時無法隨機播放", + "fileInfo": "檔案資訊", + "deleteFromServer": "從伺服器刪除", + "confirmDelete": "確定要從伺服器刪除此媒體及其檔案嗎?", + "deleteMultipleWarning": "這將會刪除所有單集及其檔案。", + "mediaDeletedSuccessfully": "媒體已成功刪除", + "mediaFailedToDelete": "刪除媒體失敗", + "rate": "評分", + "playFromBeginning": "從頭播放", + "playVersion": "播放版本…" + }, + "rateSheet": { + "title": "評分", + "server": "伺服器", + "favorite": "最愛", + "favorited": "已加入最愛", + "saved": "已儲存", + "notAvailable": "找不到相符項目", + "noConnectedServices": "在設定中連結外部服務後,即可在此評分。" + }, + "accessibility": { + "mediaCardMovie": "${title}, 電影", + "mediaCardShow": "${title}, 影集", + "mediaCardEpisode": "${title}, ${episodeInfo}", + "mediaCardSeason": "${title}, ${seasonInfo}", + "mediaCardWatched": "已觀看", + "mediaCardPartiallyWatched": "已觀看 ${percent}%", + "mediaCardUnwatched": "未觀看", + "tapToPlay": "輕觸即可播放", + "decrease": "減小", + "increase": "增大", + "decreaseValue": "減小 ${label}", + "increaseValue": "增大 ${label}", + "hue": "色相", + "saturation": "飽和度", + "brightness": "亮度", + "hexColor": "Hex 顏色值", + "expandText": "展開文字", + "collapseText": "收合文字", + "alphabetNavigation": "字母導覽", + "alphabetScrollHint": "向上或向下滑動以按字母移動", + "rowColumnPosition": "第 ${row} 列,共 ${rowCount} 列;第 ${column} 欄,共 ${columnCount} 欄", + "rowPosition": "第 ${row} 列,共 ${rowCount} 列" + }, + "tooltips": { + "shufflePlay": "隨機播放", + "playTrailer": "播放預告片", + "markAsWatched": "標記為已觀看", + "markAsUnwatched": "標記為未觀看" + }, + "audioTracks": { + "track": "音軌 ${n}" + }, + "videoControls": { + "audioLabel": "音訊", + "subtitlesLabel": "字幕", + "resetToZero": "重設為 0 ms", + "addTime": "+${amount} ${unit}", + "minusTime": "-${amount} ${unit}", + "playsLater": "${label} 延後播放", + "playsEarlier": "${label} 提前播放", + "noOffset": "無偏移", + "letterbox": "信箱模式(Letterbox)", + "fillScreen": "填滿螢幕", + "stretch": "拉伸", + "lockRotation": "鎖定旋轉", + "unlockRotation": "解除鎖定旋轉", + "timerActive": "計時器已啟動", + "playbackWillPauseIn": "播放將在 ${duration} 後暫停", + "sleepTimerEndOfVideo": "目前影片結束時", + "sleepTimerStopAtHeader": "停止於", + "sleepTimerDurationHeader": "計時器", + "playbackWillPauseAtEnd": "播放將在此影片結束時暫停", + "stillWatching": "您還在觀看嗎?", + "pausingIn": "${seconds} 秒後暫停", + "continueWatching": "繼續播放", + "autoPlayNext": "自動播放下一集", + "playNext": "播放下一集", + "playButton": "播放", + "pauseButton": "暫停", + "showPlaybackControls": "顯示播放控制項", + "hidePlaybackControls": "隱藏播放控制項", + "seekBackwardButton": "後退 ${seconds} 秒", + "seekForwardButton": "前進 ${seconds} 秒", + "previousButton": "上一集", + "nextButton": "下一集", + "previousChapterButton": "上一個章節", + "nextChapterButton": "下一個章節", + "muteButton": "靜音", + "unmuteButton": "取消靜音", + "settingsButton": "播放設定", + "tracksButton": "音訊與字幕", + "chaptersButton": "章節", + "versionQualityButton": "版本與畫質", + "versionColumnHeader": "版本", + "qualityColumnHeader": "畫質", + "qualityOriginal": "原始畫質", + "qualityPresetLabel": "${resolution}p ${bitrate} Mbps", + "transcodeUnavailableFallback": "無法使用轉碼 — 將以原始畫質播放", + "subtitleUnavailableFallback": "無法載入所選字幕 — 將繼續無字幕播放", + "pipButton": "子母畫面模式", + "aspectRatioButton": "寬高比", + "ambientLighting": "氛圍燈光", + "fullscreenButton": "進入全螢幕", + "exitFullscreenButton": "退出全螢幕", + "alwaysOnTopButton": "視窗置頂", + "rotationLockButton": "旋轉鎖定", + "lockScreen": "鎖定螢幕", + "screenLockButton": "螢幕鎖定", + "longPressToUnlock": "長按解鎖", + "timelineSlider": "影片時間軸", + "volumeSlider": "音量調整", + "endsAt": "預計 ${time} 結束", + "pipActive": "正在以子母畫面模式播放", + "pipFailed": "啟動子母畫面失敗", + "screenshotSaved": "螢幕截圖已儲存", + "zoomPercent": "縮放 ${percent}%", + "pipErrors": { + "androidVersion": "需要 Android 8.0 或更高版本", + "iosVersion": "需要 iOS 15.0 或更高版本", + "permissionDisabled": "子母畫面權限已停用。請在系統設定中啟用。", + "notSupported": "此裝置不支援子母畫面模式", + "voSwitchFailed": "無法切換子母畫面的影片輸出", + "failed": "啟動子母畫面失敗", + "unknown": "發生錯誤:${error}" + }, + "chapters": "章節", + "noChaptersAvailable": "沒有可用的章節", + "queue": "播放佇列", + "noQueueItems": "佇列中沒有項目", + "searchSubtitles": "搜尋字幕", + "language": "語言", + "noSubtitlesFound": "找不到字幕", + "noSubtitlesAvailable": "沒有可用的字幕", + "noAudioTracksAvailable": "沒有可用的音軌", + "noTracksAvailable": "沒有可用的音訊或字幕", + "subtitleDownloaded": "字幕下載成功", + "subtitleDownloadedNotApplied": "字幕已下載,但無法套用", + "subtitleDownloadFailed": "字幕下載失敗", + "searchLanguages": "搜尋語言…" + }, + "userStatus": {}, + "messages": { + "markedAsWatched": "已標記為已觀看", + "markedAsUnwatched": "已標記為未觀看", + "markedAsWatchedOffline": "已標記為已觀看(將在連線時同步)", + "markedAsUnwatchedOffline": "已標記為未觀看(將在連線時同步)", + "autoRemovedWatchedDownload": "已自動移除:${title}", + "autoRemovedWatchedDownloads": { + "other": "已自動移除 ${n} 個已觀看的下載內容" + }, + "removedFromContinueWatching": "已從「繼續觀看」中移除", + "errorLoading": "錯誤:${error}", + "streamInterrupted": "影片串流中斷。請按播放鍵或拖動進度條重試。", + "liveStreamInterrupted": "直播串流中斷。請按播放鍵重試。", + "fileInfoNotAvailable": "無法取得檔案資訊", + "playbackAuthenticationRequired": "若要播放此項目,請重新登入媒體伺服器。", + "playbackServerUnavailable": "媒體伺服器目前無法使用。請稍後再試。", + "playbackDataInvalid": "伺服器傳回的播放資訊無效。", + "playbackCancelled": "播放已取消。", + "playbackFailed": "無法開始播放。", + "errorLoadingFileInfo": "載入檔案資訊時發生錯誤:${error}", + "errorLoadingSeries": "載入影集時發生錯誤", + "musicNotSupported": "目前不支援播放音樂", + "noDescriptionAvailable": "目前沒有描述", + "noProfilesAvailable": "沒有可用的使用者設定檔", + "contactAdminForProfiles": "請聯絡伺服器管理員新增使用者設定檔", + "unableToDetermineLibrarySection": "無法確定此項目的媒體庫分區", + "logsCleared": "日誌已清除", + "logsCopied": "日誌已複製到剪貼簿", + "noLogsAvailable": "沒有可用的日誌", + "libraryScanning": "正在掃描「${title}」…", + "libraryScanStarted": "已開始掃描「${title}」媒體庫", + "libraryScanFailed": "無法掃描媒體庫:${error}", + "metadataRefreshing": "正在重新整理「${title}」的中繼資料…", + "metadataRefreshStarted": "已開始重新整理「${title}」的中繼資料", + "metadataRefreshFailed": "無法重新整理中繼資料:${error}", + "logoutConfirm": "您確定要登出嗎?", + "noSeasonsFound": "找不到季數", + "seasonsLoadFailed": "無法載入季數", + "noEpisodesFound": "在第一季中找不到單集", + "noEpisodesFoundGeneral": "找不到單集", + "episodesLoadFailed": "無法載入單集", + "noResultsFound": "找不到結果", + "sleepTimerSet": "睡眠計時器已設定為 ${label}", + "noItemsAvailable": "沒有可用的項目", + "failedToCreatePlayQueueNoItems": "無法建立播放佇列 — 沒有項目", + "failedPlayback": "無法${action}:${error}", + "switchingToCompatiblePlayer": "正在切換至相容的播放器…", + "serverLimitTitle": "播放失敗", + "serverLimitBody": "伺服器錯誤(HTTP 500)。伺服器的頻寬或轉碼限制可能拒絕此播放要求。請聯絡伺服器擁有者調整設定。", + "logsUploaded": "日誌已上傳", + "logsUploadFailed": "上傳日誌失敗", + "logId": "日誌 ID" + }, + "subtitlingStyling": { + "text": "文字", + "border": "邊框", + "background": "背景", + "fontSize": "字型大小", + "textColor": "文字顏色", + "borderSize": "邊框大小", + "borderColor": "邊框顏色", + "backgroundOpacity": "背景不透明度", + "backgroundColor": "背景顏色", + "position": "位置", + "assOverride": "覆蓋 ASS 樣式", + "overrideScale": "縮放", + "overrideForce": "強制套用", + "overrideStrip": "移除樣式", + "positionTop": "頂部", + "positionBottom": "底部", + "bold": "粗體", + "italic": "斜體", + "renderResolution": "渲染解析度", + "renderResolutionScreen": "螢幕解析度", + "renderResolutionVideo": "影片解析度" + }, + "mpvConfig": { + "title": "mpv 設定", + "description": "進階影片播放器設定", + "presets": "預設組", + "noPresets": "沒有儲存的預設組", + "saveAsPreset": "儲存為預設組…", + "presetName": "預設組名稱", + "presetNameHint": "輸入此預設組的名稱", + "loadPreset": "載入", + "deletePreset": "刪除", + "presetSaved": "預設組已儲存", + "presetLoaded": "預設組已載入", + "presetDeleted": "預設組已刪除", + "confirmDeletePreset": "確定要刪除此預設組嗎?", + "configPlaceholder": "gpu-api=vulkan\nhwdec=auto\n# 註解" + }, + "dialog": { + "confirmAction": "確認操作" + }, + "profiles": { + "addPlezyProfile": "新增 Plezy 使用者設定檔", + "switchingProfile": "正在切換使用者設定檔…", + "deleteThisProfileTitle": "刪除此使用者設定檔?", + "deleteThisProfileMessage": "將移除 ${displayName}。連線資訊將不受影響。", + "active": "使用中", + "manage": "管理", + "delete": "刪除", + "signOut": "登出", + "signOutPlexTitle": "登出 Plex?", + "signOutPlexMessage": "確定要移除 ${displayName} 與所有 Plex Home 使用者嗎?您可以隨時重新登入。", + "signedOutPlex": "已登出 Plex。", + "signOutFailed": "登出失敗。", + "sectionTitle": "使用者設定檔", + "summarySingle": "新增使用者設定檔,以同時管理託管使用者與本地身分", + "summaryMultipleWithActive": "${count} 個設定檔 · 使用中:${activeName}", + "summaryMultiple": "${count} 個設定檔", + "removeConnectionTitle": "移除連線?", + "removeConnectionMessage": "將移除 ${displayName} 對 ${connectionLabel} 的存取權限。其他使用者設定檔仍可使用此連線。", + "deleteProfileTitle": "刪除使用者設定檔?", + "deleteProfileMessage": "將移除 ${displayName} 及其連線資訊。伺服器仍維持可用狀態。", + "profileNameLabel": "使用者設定檔名稱", + "pinProtectionLabel": "PIN 碼保護", + "pinManagedByPlex": "PIN 碼由 Plex 管理。請至 plex.tv 進行編輯。", + "noPinSetEditOnPlex": "未設定 PIN 碼。如需啟用 PIN 碼限制,請在 plex.tv 編輯 Home 使用者設定。", + "setPin": "設定 PIN 碼", + "setPinTitle": "設定 PIN 碼", + "confirmPinTitle": "確認 PIN 碼", + "pinSet": "PIN 碼已設定", + "changePin": "變更", + "removePin": "移除", + "connectionsLabel": "連線", + "add": "新增", + "deleteProfileButton": "刪除使用者設定檔", + "noConnectionsHint": "無連線 — 請新增一個連線以啟用此設定檔。", + "noConnections": "無連線資訊", + "plexHomeAccount": "Plex Home 帳戶", + "connectionDefault": "預設", + "connectionAs": "以 ${displayName} 身分", + "makeDefault": "設為預設值", + "removeConnection": "移除", + "profileRenamed": "使用者設定檔已重新命名。", + "borrowAddTo": "新增至 ${displayName}", + "borrowExplain": "共用另一個使用者設定檔的連線資訊。受 PIN 碼保護的設定檔需輸入 PIN 碼。", + "borrowEmpty": "目前沒有可共用的連線。", + "borrowEmptySubtitle": "請先將 Plex 或 Jellyfin 連線至另一個使用者設定檔。", + "borrowLoadFailed": "無法載入可用的連線。請重試。", + "borrowFromProfile": "來自 ${displayName}", + "borrowConnectionBorrowed": "已共用連線。", + "borrowFailed": "無法共用連線。", + "incorrectPin": "PIN 碼不正確。", + "incorrectPinTryAgain": "PIN 碼不正確。請重試。", + "sourceProfileMissingParentAccount": "來源使用者設定檔缺少其父帳戶資訊。", + "failedToLoadHomeUsers": "無法載入您的 Plex Home 使用者。請檢查網路連線後重試。", + "failedToVerifyPin": "無法驗證 PIN 碼。", + "newProfile": "建立使用者設定檔", + "profileNameHint": "例如:訪客、兒童、客廳", + "pinProtectionOptional": "PIN 碼保護(選填)", + "pinExplain": "切換至此使用者設定檔時需要 4 位數 PIN 碼。", + "continueButton": "繼續", + "pinsDontMatch": "PIN 碼不符合" + }, + "connections": { + "sectionTitle": "連線", + "addConnection": "新增連線", + "addConnectionSubtitleNoProfile": "使用 Plex 登入或連線至 Jellyfin 伺服器", + "addConnectionSubtitleScoped": "新增至 ${displayName}:Plex、Jellyfin 或其他設定檔連線", + "sessionExpiredOne": "${name} 的工作階段已過期", + "sessionExpiredMany": "${count} 個伺服器的工作階段已過期", + "signInAgain": "重新登入", + "editJellyfinTitle": "編輯 Jellyfin 連線", + "editJellyfinIntro": "新增或移除 ${serverName} 的 URL。Plezy 會自動選擇可連線且延遲最低的網址。" + }, + "discover": { + "title": "發現", + "noContentAvailable": "沒有可用內容", + "addMediaToLibraries": "請向您的媒體庫新增一些媒體內容", + "continueWatching": "繼續觀看", + "continueWatchingIn": "繼續在 ${library} 觀看", + "nextUp": "接下來播放", + "nextUpIn": "接下來在 ${library} 播放", + "recentlyAdded": "最近新增", + "recentlyAddedIn": "最近新增至 ${library}", + "latestAlbumsIn": "${library} 中的最新專輯", + "recentlyPlayedIn": "最近在 ${library} 播放", + "mostPlayedIn": "在 ${library} 最常播放", + "playEpisode": "第 ${season} 季 第 ${episode} 集", + "overview": "概述", + "cast": "演員陣容", + "extras": "預告片與花絮", + "studio": "製作商", + "rating": "分級", + "movie": "電影", + "tvShow": "影集", + "minutesLeft": "剩餘 ${minutes} 分鐘", + "moreLikeThis": "更多類似內容" + }, + "errors": { + "searchFailed": "搜尋失敗:${error}", + "connectionTimeout": "載入 ${context} 時連線逾時", + "connectionFailed": "無法連線至媒體伺服器", + "unableToLoad": "無法載入 ${context}。請重試。", + "noClientAvailable": "沒有可用用戶端", + "pleaseEnterToken": "請輸入 Token", + "invalidToken": "Token 無效", + "failedToVerifyToken": "無法驗證 Token:${error}", + "failedToSwitchProfile": "無法切換至 ${displayName}", + "failedToDeleteProfile": "無法刪除 ${displayName}", + "failedToRate": "無法更新評分" + }, + "libraries": { + "title": "媒體庫", + "fallbackTitle": "媒體庫", + "scanLibraryFiles": "掃描媒體庫檔案", + "scanLibrary": "掃描媒體庫", + "analyze": "分析", + "analyzeLibrary": "分析媒體庫", + "refreshMetadata": "重新整理中繼資料", + "emptyTrash": "清空垃圾桶", + "emptyingTrash": "正在清空「${title}」的垃圾桶…", + "trashEmptied": "已清空「${title}」的垃圾桶", + "failedToEmptyTrash": "無法清空垃圾桶:${error}", + "analyzing": "正在分析「${title}」…", + "analysisStarted": "已開始分析「${title}」", + "failedToAnalyze": "無法分析媒體庫:${error}", + "noLibrariesFound": "找不到媒體庫", + "allLibrariesHidden": "所有媒體庫都已隱藏", + "hiddenLibrariesCount": "已隱藏的媒體庫(${count})", + "thisLibraryIsEmpty": "此媒體庫為空", + "noItemsMatchFilters": "沒有符合目前篩選條件的項目", + "resetFilters": "重設篩選條件", + "all": "全部", + "clearAll": "全部清除", + "scanLibraryConfirm": "確定要掃描「${title}」嗎?", + "analyzeLibraryConfirm": "確定要分析「${title}」嗎?", + "refreshMetadataConfirm": "確定要重新整理「${title}」的中繼資料嗎?", + "emptyTrashConfirm": "確定要清空「${title}」的垃圾桶嗎?", + "manageLibraries": "管理媒體庫", + "sort": "排序", + "sortBy": "排序依據", + "filters": "篩選器", + "confirmActionMessage": "確定要執行此操作嗎?", + "showLibrary": "顯示媒體庫", + "hideLibrary": "隱藏媒體庫", + "libraryOptions": "媒體庫選項", + "content": "媒體庫內容", + "selectLibrary": "選擇媒體庫", + "filtersWithCount": "篩選器(${count})", + "noRecommendations": "目前沒有推薦", + "noCollections": "此媒體庫中沒有收藏集", + "noFoldersFound": "找不到資料夾", + "folders": "資料夾", + "tabs": { + "recommended": "推薦", + "browse": "瀏覽", + "collections": "收藏集", + "playlists": "播放清單" + }, + "groupings": { + "title": "分組", + "all": "全部", + "movies": "電影", + "shows": "影集", + "seasons": "季", + "episodes": "集", + "artists": "演出者", + "albums": "專輯", + "tracks": "曲目", + "folders": "資料夾" + }, + "filterCategories": { + "genre": "類型", + "year": "年份", + "contentRating": "分級", + "tag": "標籤", + "unwatched": "未觀看", + "unplayed": "未播放", + "favorites": "我的最愛" + }, + "sortLabels": { + "title": "標題", + "dateAdded": "新增日期", + "releaseDate": "發行日期", + "rating": "評分", + "communityRating": "社群評分", + "criticRating": "影評人評分", + "userRating": "使用者評分", + "datePlayed": "播放日期", + "playCount": "播放次數", + "productionYear": "製作年份", + "runtime": "片長", + "officialRating": "官方分級", + "premiereDate": "首映日期", + "startDate": "開始日期", + "airTime": "播出時間", + "studio": "工作室", + "random": "隨機", + "dateShared": "分享日期", + "latestEpisodeAirDate": "最新一集播出日期", + "lastEpisodeDateAdded": "最新一集新增日期" + } + }, + "about": { + "title": "關於", + "openSourceLicenses": "開源授權條款", + "versionLabel": "版本 ${version}", + "appDescription": "一款精美的 Plex 與 Jellyfin Flutter 用戶端", + "viewLicensesDescription": "查看第三方套件的授權條款" + }, + "serverSelection": { + "noServersFoundForAccount": "找不到 ${username}(${email}) 的伺服器", + "failedToLoadServers": "無法載入伺服器:${error}" + }, + "hubDetail": { + "title": "標題", + "releaseYear": "發行年份", + "dateAdded": "新增日期", + "rating": "評分", + "noItemsFound": "找不到項目" + }, + "logs": { + "clearLogs": "清除日誌", + "copyLogs": "複製日誌", + "uploadLogs": "上傳日誌" + }, + "licenses": { + "relatedPackages": "相關套件", + "license": "授權", + "licenseNumber": "授權條款 ${number}", + "licensesCount": "${count} 個授權條款" + }, + "navigation": { + "libraries": "媒體庫", + "downloads": "下載", + "liveTv": "直播電視", + "explore": "探索" + }, + "explore": { + "title": "探索", + "selectSource": "選擇來源", + "rows": { + "watchlist": "待看清單", + "recommendedMovies": "推薦電影", + "recommendedShows": "推薦影集", + "trendingMovies": "近期熱門電影", + "trendingShows": "近期熱門影集", + "popularMovies": "熱門電影", + "popularShows": "熱門影集", + "trendingAnime": "近期熱門動畫", + "suggestedAnime": "推薦動畫", + "airingAnime": "熱門連載動畫", + "popularAnime": "最受歡迎的動畫", + "trending": "趨勢", + "upcomingMovies": "即將上映的電影", + "upcomingShows": "即將播出的影集" + }, + "status": { + "airing": "播出中", + "ended": "已完結", + "canceled": "已取消", + "upcoming": "即將上線" + }, + "episodeCount": { + "other": "${n} 集" + }, + "cast": "演員陣容", + "characters": "角色", + "addToWatchlist": "新增至待看清單", + "removeFromWatchlist": "從待看清單移除", + "watchlistUpdateFailed": "無法更新待看清單", + "notInLibrary": "不在您的媒體庫中", + "inTheseLibraries": "在這些媒體庫中", + "checkingLibrary": "正在檢查您的媒體庫…", + "emptyTitle": "這裡還沒有任何內容", + "emptyMessage": "當 ${source} 有內容時,相關資訊將顯示在此處。", + "searchHint": "搜尋 ${source}", + "searchEmpty": "沒有「${query}」的結果", + "searchPrompt": "在 ${source} 搜尋電影與影集。", + "searchFailed": "搜尋失敗。請檢查網路連線後重試。" + }, + "liveTv": { + "title": "直播電視", + "guide": "節目表指南", + "noChannels": "沒有可用的頻道", + "noDvr": "沒有伺服器設定 DVR 錄影機", + "serverUnavailable": "直播電視伺服器無法使用。", + "serverNotConnected": "直播電視伺服器未連線。", + "noPrograms": "沒有可用的節目資料", + "liveStreamFailed": "即時串流失敗", + "unknownProgram": "未知節目", + "unknownHub": "未知", + "unknownError": "未知錯誤", + "channelNumber": "頻道 ${number}", + "unknownChannel": "未知頻道", + "live": "直播", + "reloadGuide": "重新載入節目表指南", + "now": "現在", + "today": "今天", + "tomorrow": "明天", + "midnight": "午夜", + "overnight": "凌晨", + "morning": "上午", + "daytime": "白天", + "evening": "晚上", + "lateNight": "深夜", + "whatsOn": "正在播出", + "watchChannel": "觀看頻道", + "favorites": "最愛", + "reorderFavorites": "重新排序最愛頻道", + "favoritesLoadFailed": "無法載入最愛頻道。請檢查網路連線後重試。", + "favoritesUpdateFailed": "無法更新最愛頻道。請檢查網路連線後重試。", + "joinSession": "加入進行中的「一起看」", + "watchFromStart": "從頭觀看(自 ${minutes} 分鐘前開始)", + "watchLive": "觀看直播", + "goToLive": "跳至直播點", + "record": "錄製", + "recordEpisode": "錄製單集", + "recordSeries": "錄製整部影集", + "recordOptions": "錄製選項", + "saveTo": "儲存至", + "recordings": "已錄製內容", + "scheduledRecordings": "已排程錄製", + "recordingRules": "錄製規則", + "noScheduledRecordings": "沒有排程的錄製任務", + "manageRecording": "管理錄製", + "cancelRecording": "取消錄製", + "cancelRecordingTitle": "取消此次錄製?", + "cancelRecordingMessage": "將不再錄製 ${title}。", + "deleteRule": "刪除規則", + "deleteRuleTitle": "刪除錄製規則?", + "deleteRuleMessage": "將不再錄製 ${title} 的後續單集。", + "recordingScheduled": "錄製已排程", + "alreadyScheduled": "此節目已安排排程錄製", + "dvrAdminRequired": "DVR 設定需要管理員帳戶", + "recordingFailed": "無法安排錄製任務", + "recordingTargetMissing": "無法確定錄製媒體庫", + "recordNotAvailable": "此節目無法錄製", + "recordingCancelled": "錄製已取消", + "recordingRuleDeleted": "錄製規則已刪除", + "processRecordingRules": "重新評估規則", + "recordingInProgress": "正在錄製", + "recordingsCount": "已排程 ${count} 個", + "editRule": "編輯規則", + "editRuleAction": "編輯", + "recordingRuleUpdated": "錄製規則已更新", + "guideReloadRequested": "已要求更新節目表指南", + "rulesProcessRequested": "已要求重新評估規則", + "recordShow": "錄製節目" + }, + "collections": { + "title": "收藏集", + "collection": "收藏集", + "empty": "收藏集為空", + "deleteCollection": "刪除收藏集", + "deleteConfirm": "確定要刪除「${title}」嗎?此操作無法復原。", + "deleted": "已刪除收藏集", + "deleteFailed": "刪除收藏集失敗", + "deleteFailedWithError": "刪除收藏集失敗:${error}", + "selectCollection": "選擇收藏集", + "collectionName": "收藏集名稱", + "enterCollectionName": "輸入收藏集名稱", + "addedToCollection": "已新增至收藏集", + "errorAddingToCollection": "新增至收藏集失敗", + "created": "已建立收藏集", + "removeFromCollection": "從收藏集移除", + "removeFromCollectionConfirm": "將「${title}」從此收藏集移除?", + "removedFromCollection": "已從收藏集移除", + "removeFromCollectionFailed": "從收藏集移除失敗", + "removeFromCollectionError": "從收藏集移除時發生錯誤:${error}", + "searchCollections": "搜尋收藏集…" + }, + "playlists": { + "title": "播放清單", + "playlist": "播放清單", + "noPlaylists": "找不到播放清單", + "create": "建立播放清單", + "playlistName": "播放清單名稱", + "enterPlaylistName": "輸入播放清單名稱", + "delete": "刪除播放清單", + "removeItem": "從播放清單中移除", + "smartPlaylist": "智慧播放清單", + "itemCount": "${count} 個項目", + "oneItem": "1 個項目", + "emptyPlaylist": "此播放清單為空", + "deleteConfirm": "刪除播放清單?", + "deleteMessage": "確定要刪除「${name}」嗎?", + "created": "播放清單已建立", + "deleted": "播放清單已刪除", + "itemAdded": "已新增至播放清單", + "itemRemoved": "已從播放清單移除", + "selectPlaylist": "選擇播放清單", + "searchPlaylists": "搜尋播放清單…", + "errorCreating": "建立播放清單失敗", + "errorDeleting": "刪除播放清單失敗", + "errorLoading": "載入播放清單失敗", + "errorAdding": "新增至播放清單失敗", + "errorReordering": "重新排序播放清單項目失敗", + "errorRemoving": "從播放清單移除失敗" + }, + "music": { + "goToAlbum": "前往專輯", + "goToArtist": "前往演出者", + "instantMix": "即時混音", + "playNext": "下一首播放", + "addToQueue": "新增至佇列", + "discNumber": "CD ${n}", + "trackCount": { + "other": "${n} 首" + }, + "nowPlaying": "正在播放", + "playingFrom": "來自 ${title}", + "queue": "播放佇列", + "clearQueue": "清空佇列", + "lyrics": "歌詞", + "noLyrics": "目前沒有歌詞", + "sleepTimer": "睡眠計時器", + "sleepTimerEndOfTrack": "曲目結束時", + "sleepTimerMinutes": "${n} 分鐘", + "stopPlayback": "停止播放", + "previousTrack": "上一首", + "nextTrack": "下一首", + "repeat": "重複播放", + "repeatAll": "全部重複播放", + "repeatOne": "單曲重複播放" + }, + "watchTogether": { + "title": "一起看", + "description": "與親友同步觀看內容", + "createSession": "建立「一起看」工作階段", + "creating": "正在建立…", + "joinSession": "加入工作階段", + "joining": "正在加入…", + "controlMode": "控制模式", + "controlModeQuestion": "誰可以控制播放?", + "hostOnly": "僅限主持人", + "anyone": "任何人", + "hostingSession": "主持「一起看」", + "inSession": "在工作階段中", + "sessionCode": "工作階段代碼", + "openSessionControls": "開啟「一起看」工作階段控制面板", + "copySessionCode": "複製工作階段代碼", + "hostControlsPlayback": "主持人控制播放", + "anyoneCanControl": "任何人都能控制播放", + "hostControls": "主持人控制", + "anyoneControls": "任何人控制", + "participants": "參與者", + "host": "主持人", + "hostBadge": "主持人", + "youAreHost": "您是主持人", + "watchingWithOthers": "與他人一起觀看", + "endSession": "結束工作階段", + "leaveSession": "離開工作階段", + "endSessionQuestion": "結束工作階段?", + "leaveSessionQuestion": "離開工作階段?", + "endSessionConfirm": "這將為所有參與者結束此「一起看」工作階段。", + "leaveSessionConfirm": "您將退出此「一起看」工作階段。", + "endSessionConfirmOverlay": "這將為所有參與者結束觀看工作階段。", + "leaveSessionConfirmOverlay": "您將中斷與「一起看」工作階段的連線。", + "end": "結束", + "leave": "離開", + "syncing": "同步中…", + "joinWatchSession": "加入「一起看」工作階段", + "enterCodeHint": "輸入 5 個英數字元的代碼", + "pasteFromClipboard": "從剪貼簿貼上", + "pleaseEnterCode": "請輸入工作階段代碼", + "codeMustBe5Chars": "工作階段代碼必須為 5 個字元", + "joinInstructions": "輸入主持人的工作階段代碼以加入「一起看」。", + "failedToCreate": "建立工作階段失敗", + "failedToJoin": "加入工作階段失敗", + "sessionCodeCopied": "工作階段代碼已複製到剪貼簿", + "relayUnreachable": "無法連線至中繼伺服器。ISP 封鎖可能會導致「一起看」無法使用。", + "reconnectingToHost": "正在重新連線至主持人…", + "currentPlayback": "目前播放內容", + "joinCurrentPlayback": "加入目前播放點", + "joinCurrentPlaybackDescription": "同步至主持人目前的觀看進度", + "failedToOpenCurrentPlayback": "無法開啟目前播放點", + "participantJoined": "${name} 已加入", + "participantLeft": "${name} 已離開", + "participantPaused": "${name} 暫停了播放", + "participantResumed": "${name} 恢復了播放", + "participantSeeked": "${name} 變更了播放位置", + "participantBuffering": "${name} 正在緩衝", + "participantNeedsUpdate": "${name} 正在使用舊版應用程式,無法進行同步", + "resumingWithout": "不等待 ${name},繼續播放", + "waitingForParticipants": "正在等待其他人載入…", + "waitingForName": "正在等待 ${name}…", + "recentRooms": "最近的房間", + "renameRoom": "重新命名房間", + "removeRoom": "移除", + "guestSwitchUnavailable": "無法切換 — 伺服器無法進行同步", + "guestSwitchFailed": "無法切換 — 在此伺服器上找不到內容" + }, + "downloads": { + "title": "下載", + "manage": "管理", + "tvShows": "影集", + "movies": "電影", + "music": "音樂", + "tracksQueued": "已將 ${count} 首曲目加入下載佇列", + "noDownloads": "目前沒有下載內容", + "noDownloadsDescription": "下載的內容將顯示在此處,供您離線觀看", + "downloadNow": "下載", + "deleteDownload": "刪除下載內容", + "retryDownload": "重試下載", + "downloadQueued": "下載已排隊", + "downloadResumed": "下載已繼續", + "serverErrorBitrate": "伺服器錯誤:檔案位元率可能超過遠端位元率限制", + "episodesQueued": "已將 ${count} 集影片加入下載佇列", + "downloadDeleted": "下載內容已刪除", + "deleteConfirm": "確定要從此裝置刪除「${title}」嗎?", + "cancelledDownloadTitle": "已取消的下載", + "cancelledDownloadMessage": "此下載已取消。您想要如何處理?", + "allEpisodesAlreadyDownloaded": "所有單集都已下載完成", + "resumeDownload": "繼續下載", + "cancelledDownload": "已取消的下載", + "syncingFile": "${file}(正在同步 ${status})", + "downloadedFileClickToComplete": "已下載 ${file} — 點選以完成", + "partialDownloadClickToComplete": "已部分下載 — 點選以完成", + "deleting": "正在刪除…", + "deletingWithProgress": "正在刪除 ${title}…(${current}/${total})", + "queuedTooltip": "已排隊", + "queuedFilesTooltip": "已排隊:${files}", + "downloadingTooltip": "正在下載…", + "downloadingFilesTooltip": "正在下載 ${files}", + "noDownloadsTree": "目前沒有下載內容", + "pauseAll": "全部暫停", + "resumeAll": "全部繼續", + "deleteAll": "全部刪除", + "selectVersion": "選擇版本", + "allEpisodes": "所有單集", + "unwatchedOnly": "僅未觀看", + "nextNUnwatched": "接下來 ${count} 集未觀看", + "customAmount": "自訂數量…", + "includeSpecials": "包含特別篇", + "howManyEpisodes": "要下載多少集?", + "invalidEpisodeCount": "請輸入有效的集數。", + "keepSynced": "保持同步", + "downloadOnce": "下載一次", + "keepNUnwatched": "保留 ${count} 個未觀看項目", + "editSyncRule": "編輯同步規則", + "removeSyncRule": "刪除同步規則", + "removeSyncRuleConfirm": "停止同步「${title}」?已下載的單集將會保留。", + "syncRuleCreated": "同步規則已建立 — 將保留 ${count} 個未觀看單集", + "syncRuleUpdated": "同步規則已更新", + "syncRuleRemoved": "同步規則已刪除", + "syncedNewEpisodes": "已為 ${title} 同步 ${count} 個新單集", + "activeSyncRules": "同步規則", + "noSyncRules": "沒有同步規則", + "manageSyncRule": "管理同步", + "editEpisodeCount": "單集數量", + "editSyncFilter": "同步篩選器", + "syncAllItems": "同步所有項目", + "syncUnwatchedItems": "同步未觀看項目", + "syncRuleServerContext": "伺服器:${server} • ${status}", + "syncRuleAvailable": "可用", + "syncRuleOffline": "離線", + "syncRuleSignInRequired": "需要登入", + "syncRuleNotAvailableForProfile": "目前使用者設定檔無法使用", + "syncRuleUnknownServer": "未知伺服器", + "syncRuleListCreated": "同步規則已建立" + }, + "shaders": { + "title": "著色器", + "noShaderDescription": "無影片增強效果", + "nvscalerDescription": "NVIDIA 圖像縮放技術,使影片邊緣更清晰", + "artcnnVariantNeutral": "中性", + "artcnnVariantDenoise": "降噪", + "artcnnVariantDenoiseSharpen": "降噪 + 銳化", + "qualityFast": "快速", + "qualityHQ": "高品質", + "mode": "模式", + "importShader": "匯入著色器", + "customShaderDescription": "自訂 GLSL 著色器檔案", + "shaderImported": "著色器已匯入", + "shaderImportFailed": "匯入著色器失敗", + "deleteShader": "刪除著色器", + "deleteShaderConfirm": "刪除「${name}」?" + }, + "companionRemote": { + "title": "隨身遙控器", + "connectedTo": "已連線至 ${name}", + "unknownDevice": "未知裝置", + "session": { + "startingServer": "正在啟動遠端伺服器…", + "hostAddress": "主機位址", + "connected": "已連線", + "serverRunning": "遠端伺服器已啟動", + "serverStopped": "遠端伺服器已停止", + "serverRunningDescription": "區域網路中的行動裝置可以連線至此應用程式", + "serverStoppedDescription": "啟動伺服器以允許行動裝置連線", + "usePhoneToControl": "使用行動裝置控制此應用程式", + "startServer": "啟動伺服器", + "stopServer": "停止伺服器", + "minimize": "最小化" + }, + "pairing": { + "discoveryDescription": "使用相同 Plex 帳戶的 Plezy 裝置會顯示在此處", + "hostAddressHint": "192.168.1.100:48632", + "connecting": "正在連線…", + "searchingForDevices": "正在搜尋裝置…", + "noDevicesFound": "在區域網路上找不到裝置", + "noDevicesHint": "請在電腦上開啟 Plezy,並確認兩台裝置使用相同的 Wi-Fi 網路", + "availableDevices": "可用裝置", + "manualConnection": "手動連線", + "cryptoInitFailed": "無法啟動安全連線。請先登入 Plex。", + "validationHostRequired": "請輸入主機位址", + "validationHostFormat": "格式必須為 IP 位址:連接埠(例如 192.168.1.100:48632)", + "connectionTimedOut": "連線逾時。請確認兩台裝置都使用相同網路。", + "sessionNotFound": "找不到裝置。請確認主機上已啟動 Plezy。", + "authFailed": "驗證失敗。兩台裝置需要登入相同的 Plex 帳戶。", + "failedToConnect": "連線失敗:${error}" + }, + "remote": { + "disconnectConfirm": "是否要中斷遠端連線工作階段?", + "reconnecting": "重新連線中…", + "attemptOf": "第 ${current} 次嘗試,共 5 次", + "retryNow": "立即重試", + "tabRemote": "遙控", + "tabPlay": "播放", + "tabMore": "更多", + "menu": "選單", + "tabNavigation": "分頁導覽", + "tabDiscover": "發現", + "tabLibraries": "媒體庫", + "tabSearch": "搜尋", + "tabDownloads": "下載", + "tabSettings": "設定", + "previous": "上一個", + "playPause": "播放/暫停", + "next": "下一個", + "seekBack": "後退", + "stop": "停止", + "seekForward": "前進", + "volume": "音量", + "volumeDown": "調小", + "volumeUp": "調大", + "fullscreen": "全螢幕", + "subtitles": "字幕", + "audio": "音訊", + "searchHint": "在電腦版上搜尋…" + }, + "errors": { + "noNetworkInterface": "找不到網路介面", + "authenticationFailed": "身分驗證失敗", + "serverStartFailed": "無法啟動遠端伺服器:${error}", + "commandFailed": "無法傳送遠端指令:${error}", + "joinTimedOut": "加入工作階段逾時", + "failedToConnectAnyAddress": "無法連線至任何位址", + "connectionLostAfterAttempts": "嘗試 ${attempts} 次後連線中斷", + "connectionLost": "連線已中斷" + } + }, + "videoSettings": { + "playbackSpeed": "播放速度", + "normalSpeed": "正常速度", + "sleepTimerActive": "執行中(${duration})", + "zoom": "縮放", + "sleepTimer": "睡眠計時器", + "audioSync": "音訊同步調整", + "subtitleSync": "字幕同步調整", + "hdr": "HDR", + "audioOutput": "音訊輸出", + "performanceOverlay": "效能監控", + "audioPassthrough": "音訊直通", + "audioNormalization": "音量標準化", + "audioDownmix": "下混為立體聲" + }, + "performanceOverlay": { + "color": "色彩", + "performance": "效能", + "buffer": "緩衝", + "app": "應用程式", + "decoder": "解碼器", + "rawDecoder": "原始解碼器", + "tunneling": "通道模式", + "aspect": "寬高比", + "rotation": "旋轉角度", + "dvSource": "DV 來源", + "dvPath": "DV 路徑", + "p7Conversion": "P7 轉換", + "sampleRate": "取樣率", + "pixelFormat": "像素格式", + "hwFormat": "硬體格式", + "matrix": "矩陣", + "primaries": "基色", + "transfer": "傳輸特性", + "renderFps": "渲染 FPS", + "displayFps": "螢幕 FPS", + "avSync": "影音同步(A/V Sync)", + "dropped": "丟格數(Dropped)", + "dvRpus": "DV RPU 數", + "dvRpuAverage": "DV RPU 平均", + "dvSampleAverage": "DV 取樣平均", + "maxLuma": "最大亮度", + "minLuma": "最小亮度", + "maxCll": "MaxCLL", + "maxFall": "MaxFALL", + "cacheUsed": "已用快取", + "cacheLimit": "快取上限", + "speed": "速度", + "player": "播放器", + "memory": "記憶體", + "uiFps": "UI FPS" + }, + "externalPlayer": { + "title": "外部播放器", + "useExternalPlayer": "使用外部播放器", + "useExternalPlayerDescription": "在其他應用程式中開啟影片", + "selectPlayer": "選擇播放器", + "customPlayers": "自訂播放器", + "systemDefault": "系統預設", + "addCustomPlayer": "新增自訂播放器", + "playerName": "播放器名稱", + "playerNameHint": "我的播放器", + "playerCommand": "執行命令", + "playerPackage": "套件名稱", + "playerUrlScheme": "URL 協定架構(Scheme)", + "off": "關閉", + "launchFailed": "無法啟動外部播放器", + "appNotInstalled": "${name} 未安裝", + "playInExternalPlayer": "在外部播放器播放" + }, + "metadataEdit": { + "editMetadata": "編輯…", + "screenTitle": "編輯中繼資料", + "basicInfo": "基本資訊", + "artwork": "海報與背景", + "advancedSettings": "進階設定", + "title": "標題", + "sortTitle": "排序標題", + "originalTitle": "原始標題", + "releaseDate": "上映日期", + "contentRating": "內容分級", + "studio": "製片商", + "tagline": "宣傳標語", + "summary": "大綱簡介", + "poster": "海報", + "background": "背景圖", + "logo": "標誌(Logo)", + "squareArt": "方形圖片", + "selectPoster": "選擇海報", + "selectBackground": "選擇背景圖", + "selectLogo": "選擇標誌", + "selectSquareArt": "選擇方形圖片", + "fromUrl": "自訂網址", + "uploadFile": "上傳檔案", + "enterImageUrl": "輸入圖片 URL", + "imageUrl": "圖片 URL", + "metadataUpdated": "中繼資料已更新", + "metadataUpdateFailed": "中繼資料更新失敗", + "artworkUpdated": "封面圖片已更新", + "artworkUpdateFailed": "封面圖片更新失敗", + "noArtworkAvailable": "沒有可用的封面圖片", + "artworkOption": "封面圖片選項 ${index}", + "selectedArtworkOption": "封面圖片選項 ${index},已選擇", + "notSet": "未設定", + "libraryDefault": "媒體庫預設", + "accountDefault": "帳戶預設", + "seriesDefault": "影集預設", + "episodeSorting": "單集排序方式", + "oldestFirst": "由舊到新", + "newestFirst": "由新到舊", + "keep": "保留集數", + "allEpisodes": "所有單集", + "latestEpisodes": "最新 ${count} 集", + "latestEpisode": "最新一集", + "episodesAddedPastDays": "過去 ${count} 天內新增的單集", + "deleteAfterPlaying": "播放後刪除單集", + "never": "從不", + "afterADay": "一天後", + "afterAWeek": "一週後", + "afterAMonth": "一個月後", + "onNextRefresh": "下次重新整理時", + "seasons": "季", + "show": "顯示", + "hide": "隱藏", + "episodeOrdering": "單集排序資料源", + "tmdbAiring": "The Movie Database(播出順序)", + "tvdbAiring": "TheTVDB(播出順序)", + "tvdbAbsolute": "TheTVDB(絕對集數順序)", + "metadataLanguage": "中繼資料語言", + "useOriginalTitle": "使用原始標題", + "preferredAudioLanguage": "偏好音訊語言", + "preferredSubtitleLanguage": "偏好字幕語言", + "subtitleMode": "自動選擇字幕模式", + "manuallySelected": "手動選擇", + "shownWithForeignAudio": "外語配音時顯示", + "alwaysEnabled": "一律啟用", + "tags": "標籤", + "addTag": "新增標籤", + "genre": "類型", + "director": "導演", + "writer": "編劇", + "producer": "製片", + "country": "國家/地區", + "collection": "收藏集", + "label": "標記", + "style": "風格", + "mood": "氛圍" + }, + "matchScreen": { + "match": "配對…", + "fixMatch": "修正配對…", + "unmatch": "取消配對", + "unmatchConfirm": "清除此配對資訊?在重新配對前,Plex 會將其視為未配對媒體。", + "unmatchSuccess": "已取消配對", + "unmatchFailed": "無法取消配對", + "matchApplied": "配對已套用", + "matchFailed": "套用配對失敗", + "titleHint": "標題", + "yearHint": "年份", + "search": "搜尋", + "noMatchesFound": "找不到符合的配對" + }, + "serverTasks": { + "title": "伺服器工作", + "failedToLoad": "載入工作失敗", + "noTasks": "目前沒有執行中的工作" + }, + "trakt": { + "title": "Trakt", + "connected": "已連線", + "connectedAs": "已以 @${username} 身分連線", + "disconnectConfirm": "中斷與 Trakt 帳戶的連結?", + "disconnectConfirmBody": "Plezy 將停止向 Trakt 傳送事件。您可以隨時重新連線。", + "scrobble": "即時同步記錄(Scrobble)", + "scrobbleDescription": "在播放時向 Trakt 傳送播放、暫停和停止等狀態。", + "watchedSync": "同步已觀看狀態", + "watchedSyncDescription": "在 Plezy 中將項目標記為已觀看時,也會在 Trakt 上標記為已觀看。" + }, + "seerr": { + "title": "Seerr", + "connectTitle": "連線至 Seerr", + "serverUrl": "伺服器 URL", + "serverUrlHelper": "您的 Seerr 執行個體的連線位址", + "checkServer": "繼續", + "signInWithJellyfin": "使用 Jellyfin 登入", + "signInWithEmby": "使用 Emby 登入", + "signInWithLocal": "使用本地帳戶", + "email": "電子郵件", + "noSignInMethods": "此 Seerr 執行個體未提供 Plezy 支援的登入方式。", + "instance": "執行個體", + "disconnectConfirm": "中斷與 Seerr 的連線?", + "disconnectConfirmBody": "Plezy 將忘記此 Seerr 連線資訊。您可以隨時重新連線。", + "request": "請求", + "request4k": "請求 4K 版本", + "seasons": "季", + "allSeasons": "所有季數", + "advancedOptions": "進階設定", + "destinationServer": "目標伺服器", + "qualityProfile": "畫質設定檔(Quality Profile)", + "rootFolder": "根目錄資料夾", + "languageProfile": "語言設定檔(Language Profile)", + "requestSubmitted": "請求已送出", + "requestFailed": "請求失敗:${error}", + "requestsLoadFailed": "無法載入請求選項", + "nothingToRequest": "所有內容皆已可用或已提出請求。", + "statusAvailable": "可用", + "statusPartiallyAvailable": "部分可用", + "statusRequested": "已請求", + "statusProcessing": "處理中" + }, + "services": { + "title": "外部服務", + "hubSubtitle": "同步觀看進度並請求新內容。", + "notConnected": "未連線", + "connectedAs": "已以 @${username} 身分連線", + "scrobble": "自動同步播放進度", + "scrobbleDescription": "觀賞完一集或一部電影後自動更新您的外部列表。", + "disconnectConfirm": "中斷與 ${service} 的連線?", + "disconnectConfirmBody": "Plezy 將停止更新 ${service}。您可以隨時重新連線。", + "connectFailed": "無法連線至 ${service}。請重試。", + "names": { + "mal": "MyAnimeList", + "anilist": "AniList", + "simkl": "Simkl", + "seerr": "Seerr" + }, + "deviceCode": { + "title": "在 ${service} 啟用 Plezy", + "body": "請前往 ${url} 並輸入此代碼:", + "openToActivate": "開啟 ${service} 進行啟用", + "copyCode": "複製啟用代碼", + "waitingForAuthorization": "等待授權中…", + "codeCopied": "代碼已複製" + }, + "oauthProxy": { + "title": "登入 ${service}", + "body": "掃描 QR 碼,或在任何裝置上開啟該網址。", + "openToSignIn": "開啟 ${service} 進行登入", + "copyUrl": "複製登入 URL", + "urlCopied": "URL 已複製" + }, + "libraryFilter": { + "title": "媒體庫篩選", + "subtitleAllSyncing": "同步所有媒體庫", + "subtitleNoneSyncing": "不同步任何內容", + "subtitleBlocked": "已封鎖 ${count} 個", + "subtitleAllowed": "已允許 ${count} 個", + "mode": "篩選模式", + "modeBlacklist": "黑名單(排除)", + "modeWhitelist": "白名單(僅限)", + "modeHintBlacklist": "同步下方未勾選的所有媒體庫。", + "modeHintWhitelist": "僅同步下方已勾選的媒體庫。", + "libraries": "媒體庫", + "noLibraries": "沒有可用的媒體庫" + } + }, + "addServer": { + "addJellyfinTitle": "新增 Jellyfin 伺服器", + "serverUrls": "伺服器 URL", + "serverUrlsHelper": "可輸入多個連線網址,以逗號區隔。", + "findServer": "尋找伺服器", + "searchingLocalServers": "正在尋找本地 Jellyfin 伺服器…", + "localServers": "本地 Jellyfin 伺服器", + "username": "使用者名稱", + "password": "密碼", + "signIn": "登入", + "change": "變更", + "required": "必填", + "couldNotReachServer": "無法連線至伺服器:${error}", + "signInFailed": "登入失敗:${error}", + "quickConnectFailed": "快速連線失敗:${error}", + "addPlexTitle": "使用 Plex 登入", + "pinExpired": "PIN 碼在登入前已過期。請重試。", + "failedToRegisterAccount": "註冊帳戶失敗:${error}", + "enterJellyfinUrlError": "請輸入您的 Jellyfin 伺服器 URL", + "addConnectionTitle": "新增連線", + "addConnectionTitleScoped": "新增連線至 ${name}", + "signInWithPlexCard": "使用 Plex 登入", + "signInWithPlexCardSubtitle": "授權此裝置。將會新增共享的伺服器連線。", + "signInWithPlexCardSubtitleScoped": "授權 Plex 帳戶。Home 使用者會建立為個別的使用者設定檔。", + "connectToJellyfinCard": "連線至 Jellyfin", + "connectToJellyfinCardSubtitle": "輸入伺服器 URL、使用者名稱與密碼。", + "connectToJellyfinCardSubtitleScoped": "登入 Jellyfin 伺服器,並綁定至 ${name} 使用者設定檔。", + "borrowFromAnotherProfile": "從另一個使用者設定檔共用", + "borrowFromAnotherProfileSubtitle": "重複使用另一個使用者設定檔的連線資訊。受 PIN 碼保護的使用者設定檔需輸入 PIN 碼。" + } +} diff --git a/lib/i18n/zh.i18n.json b/lib/i18n/zh.i18n.json index 69bf8431..95d1c880 100644 --- a/lib/i18n/zh.i18n.json +++ b/lib/i18n/zh.i18n.json @@ -8,7 +8,7 @@ "authenticate": "验证", "authenticationTimeout": "验证超时。请重试。", "scanQRToSignIn": "扫描二维码登录", - "waitingForAuth": "正在等待认证...\n请在浏览器中登录。", + "waitingForAuth": "正在等待身份验证…\n请在浏览器中登录。", "useBrowser": "使用浏览器", "or": "或", "connectToJellyfin": "连接到 Jellyfin", @@ -17,7 +17,7 @@ "quickConnectWaiting": "等待批准…", "quickConnectCancel": "取消", "quickConnectExpired": "Quick Connect 已过期。请重试。", - "localDataRecoveryRequired": "Plezy could not safely recover local sign-in and pending playback data. Please sign in again." + "localDataRecoveryRequired": "Plezy 无法安全恢复本地登录状态和待处理的播放数据。请重新登录。" }, "common": { "cancel": "取消", @@ -29,7 +29,7 @@ "submit": "提交", "confirm": "确认", "retry": "重试", - "logout": "登出", + "logout": "退出登录", "unknown": "未知", "refresh": "刷新", "yes": "是", @@ -37,7 +37,7 @@ "delete": "删除", "edit": "编辑", "shuffle": "随机播放", - "addTo": "添加到...", + "addTo": "添加到…", "createNew": "新建", "connect": "连接", "disconnect": "断开连接", @@ -53,18 +53,18 @@ "ok": "确定", "off": "关闭", "seasonNumber": "第${number}季", - "episodeNumberTitle": "第${number}集 - ${title}", - "chapterNumber": "章节 ${number}", + "episodeNumberTitle": "第${number}集 — ${title}", + "chapterNumber": "第${number}章", "reconnect": "重新连接", "viewAll": "查看全部", - "checkingNetwork": "正在检查网络...", - "loadingServers": "正在加载服务器...", - "connectingToServers": "正在连接服务器...", - "startingOfflineMode": "正在启动离线模式...", - "loading": "加载中...", + "checkingNetwork": "正在检查网络…", + "loadingServers": "正在加载服务器…", + "connectingToServers": "正在连接服务器…", + "startingOfflineMode": "正在启动离线模式…", + "loading": "加载中…", "fullscreen": "全屏", "exitFullscreen": "退出全屏", - "pressBackAgainToExit": "再按一次返回退出" + "pressBackAgainToExit": "再按一次返回键退出" }, "screens": { "licenses": "许可证", @@ -76,10 +76,10 @@ "update": { "available": "有可用更新", "versionAvailable": "版本 ${version} 已发布", - "currentVersion": "当前版本: ${version}", + "currentVersion": "当前版本:${version}", "skipVersion": "跳过此版本", "viewRelease": "查看发布详情", - "latestVersion": "已安装的版本是可用的最新版本", + "latestVersion": "当前已是最新版本", "checkFailed": "无法检查更新" }, "settings": { @@ -101,7 +101,7 @@ "minutesLabel": "分钟", "secondsShort": "s", "minutesShort": "m", - "durationHint": "输入时长 (${min}-${max})", + "durationHint": "输入时长(${min}–${max})", "systemTheme": "系统", "lightTheme": "浅色", "darkTheme": "深色", @@ -109,12 +109,12 @@ "libraryDensity": "媒体库密度", "compact": "紧凑", "comfortable": "舒适", - "tvCornerSpotlightBackdrop": "", - "tvCornerSpotlightBackdropDescription": "", + "tvCornerSpotlightBackdrop": "右上角聚焦背景图", + "tvCornerSpotlightBackdropDescription": "在右上角显示精选内容图片,而不是铺满整个屏幕", "viewMode": "视图模式", "gridView": "网格视图", "listView": "列表视图", - "showHeroSection": "显示主要精选区", + "showHeroSection": "显示精选内容区", "continueWatchingAction": "继续观看操作", "continueWatchingPlay": "播放", "continueWatchingDetails": "打开详情", @@ -122,27 +122,27 @@ "episodePlay": "播放", "episodeDetails": "打开详情", "useGlobalHubs": "使用主页布局", - "useGlobalHubsDescription": "显示统一主页中心。否则使用资料库推荐。", + "useGlobalHubsDescription": "显示统一主页内容;否则使用各媒体库的推荐内容。", "showServerNameOnHubs": "在推荐栏显示服务器名称", - "showServerNameOnHubsDescription": "始终在中心标题中显示服务器名称。", + "showServerNameOnHubsDescription": "始终在推荐栏标题中显示服务器名称。", "groupLibrariesByServer": "按服务器分组媒体库", - "groupLibrariesByServerDescription": "按媒体服务器分组侧边栏资料库。", + "groupLibrariesByServerDescription": "在侧边栏中按媒体服务器分组媒体库。", "alwaysKeepSidebarOpen": "始终保持侧边栏展开", "alwaysKeepSidebarOpenDescription": "侧边栏保持展开状态,内容区域自动调整", "showUnwatchedCount": "显示未观看数量", - "showUnwatchedCountDescription": "在剧集和季上显示未观看的集数", + "showUnwatchedCountDescription": "在剧集和季上显示未观看集数", "showEpisodeNumberOnCards": "在卡片上显示集数", "showEpisodeNumberOnCardsDescription": "在剧集卡片上显示季和集编号", "showSeasonPostersOnTabs": "在选项卡上显示季海报", "showSeasonPostersOnTabsDescription": "在每季标签上方显示该季海报", - "tvFullCardLayout": "完整 TV 卡片", - "tvFullCardLayoutDescription": "使用仅显示图片的 TV 卡片,并叠加演员姓名", + "tvFullCardLayout": "完整电视卡片", + "tvFullCardLayoutDescription": "使用仅显示图片的电视卡片,并在图片上叠加演员姓名", "focusGlow": "焦点光晕", "focusGlowDescription": "在获得焦点的卡片周围显示柔和的光晕", "visualEffects": "视觉效果", "visualEffectsAuto": "自动", "visualEffectsAutoDescription": "在性能较低的设备上自动减少效果", - "visualEffectsFull": "完整", + "visualEffectsFull": "完整效果", "visualEffectsReduced": "简化", "visualEffectsReducedDescription": "减少动画并使用较低分辨率的封面图片", "hideSpoilers": "隐藏未看剧集的剧透内容", @@ -157,7 +157,7 @@ "bufferSizeAuto": "自动(推荐)", "bufferSizeWarning": "可用内存 ${heap}MB。${size}MB 缓冲可能影响播放。", "defaultQualityTitle": "默认画质", - "musicQualityTitle": "音乐质量", + "musicQualityTitle": "音乐音质", "subtitleStyling": "字幕样式", "subtitleStylingDescription": "调整字幕外观", "smallSkipDuration": "短跳过时长", @@ -166,12 +166,12 @@ "secondsUnit": "${seconds} 秒", "defaultSleepTimer": "默认睡眠定时器", "minutesUnit": "${minutes} 分钟", - "rememberTrackSelections": "记住每个剧集/电影的音轨选择", - "rememberTrackSelectionsDescription": "记住每个标题的音频和字幕选择", + "rememberTrackSelections": "记住每部剧集或电影的音轨选择", + "rememberTrackSelectionsDescription": "分别记住每部内容的音频和字幕选择", "showChapterMarkersOnTimeline": "在进度条上显示章节标记", "showChapterMarkersOnTimelineDescription": "按章节边界分段显示进度条", "clickVideoTogglesPlayback": "点击视频可切换播放/暂停", - "clickVideoTogglesPlaybackDescription": "点击视频进行播放/暂停,而不是显示控制项。", + "clickVideoTogglesPlaybackDescription": "点击视频即可播放或暂停,而不是显示控制项。", "videoPlayerControls": "视频播放器控制", "keyboardShortcuts": "键盘快捷键", "keyboardShortcutsDescription": "自定义键盘快捷键", @@ -180,25 +180,25 @@ "watchTogetherRelay": "一起看中继服务器", "watchTogetherRelayDescription": "设置自定义中继。所有人必须使用同一服务器。", "watchTogetherRelayHint": "https://my-relay.example.com", - "watchTogetherRelayInvalid": "Enter a valid HTTP or HTTPS relay base URL.", + "watchTogetherRelayInvalid": "请输入有效的 HTTP 或 HTTPS 中继服务器基础 URL。", "crashReporting": "崩溃报告", "crashReportingDescription": "发送崩溃报告以帮助改进应用", "debugLogging": "调试日志", "debugLoggingDescription": "启用详细日志记录以便故障排除", "viewLogs": "查看日志", - "viewLogsDescription": "查看应用程序日志", + "viewLogsDescription": "查看应用日志", "clearCache": "清除缓存", "clearCacheDescription": "清除缓存的图片和数据。内容加载可能变慢。", - "clearCacheSuccess": "缓存清除成功", + "clearCacheSuccess": "缓存已清除", "resetSettings": "重置设置", "resetSettingsDescription": "恢复默认设置。此操作无法撤销。", "resetSettingsSuccess": "设置重置成功", "backup": "备份", "exportSettings": "导出设置", - "exportSettingsDescription": "将您的偏好保存到文件", + "exportSettingsDescription": "将偏好设置保存到文件", "exportSettingsSuccess": "设置已导出", "importSettings": "导入设置", - "importSettingsDescription": "从文件恢复偏好", + "importSettingsDescription": "从文件恢复偏好设置", "importSettingsConfirm": "这将替换您当前的设置。继续吗?", "importSettingsSuccess": "设置已导入", "importSettingsInvalidFile": "此文件不是有效的 Plezy 设置导出", @@ -211,11 +211,11 @@ "checkForUpdates": "检查更新", "autoCheckUpdatesOnStartup": "启动时自动检查更新", "autoCheckUpdatesOnStartupDescription": "启动时有可用更新则通知", - "validationErrorEnterNumber": "请输入一个有效的数字", + "validationErrorEnterNumber": "请输入有效数字", "validationErrorDuration": "时长必须介于 ${min} 和 ${max} ${unit} 之间", "shortcutAlreadyAssigned": "快捷键已被分配给 ${action}", "shortcutUpdated": "快捷键已为 ${action} 更新", - "saveFailed": "Could not save changes. Try again.", + "saveFailed": "无法保存更改。请重试。", "autoSkip": "自动跳过", "autoSkipIntro": "自动跳过片头", "autoSkipIntroDescription": "几秒钟后自动跳过片头标记", @@ -237,37 +237,37 @@ "downloadLocationCustom": "自定义位置", "selectFolder": "选择文件夹", "resetToDefault": "重置为默认", - "currentPath": "当前: ${path}", + "currentPath": "当前路径:${path}", "downloadLocationChanged": "下载位置已更改", "downloadLocationReset": "下载位置已重置为默认", "downloadLocationInvalid": "所选文件夹不可写入", "downloadLocationPickerUnavailable": "此设备不支持选择文件夹", - "downloadOnWifiOnly": "仅在 WiFi 时下载", - "downloadOnWifiOnlyDescription": "使用蜂窝数据时禁止下载", + "downloadOnWifiOnly": "仅通过 Wi-Fi 下载", + "downloadOnWifiOnlyDescription": "使用移动数据时不允许下载", "autoRemoveWatchedDownloads": "自动移除已观看的下载", "autoRemoveWatchedDownloadsDescription": "自动删除已观看的下载", - "cellularDownloadBlocked": "蜂窝网络下已阻止下载。请使用 WiFi 或更改设置。", + "cellularDownloadBlocked": "已阻止通过移动网络下载。请连接 Wi-Fi 或更改设置。", "maxVolume": "最大音量", - "maxVolumeDescription": "允许音量超过 100% 以适应安静的媒体", + "maxVolumeDescription": "允许音量超过 100%,以便播放音量较低的内容", "maxVolumePercent": "${percent}%", "discordRichPresence": "Discord 动态状态", "discordRichPresenceDescription": "在 Discord 上显示您正在观看的内容", "services": "服务", "servicesDescription": "连接 Trakt、MyAnimeList、Seerr 等", "manageLibrariesDescription": "重新排序和隐藏媒体库", - "companionRemoteServer": "配套遥控服务器", - "companionRemoteServerDescription": "允许网络上的移动设备控制此应用", + "companionRemoteServer": "远程控制服务器", + "companionRemoteServerDescription": "允许同一网络中的移动设备控制此应用", "autoPip": "自动画中画", - "autoPipDescription": "播放时离开会进入画中画", + "autoPipDescription": "播放期间离开应用时自动进入画中画模式", "matchContentFrameRate": "匹配内容帧率", - "matchContentFrameRateDescription": "将显示刷新率匹配到视频内容", + "matchContentFrameRateDescription": "使显示器刷新率与视频帧率匹配", "matchRefreshRate": "匹配刷新率", "matchRefreshRateDescription": "全屏时匹配显示刷新率", "matchDynamicRange": "匹配动态范围", "matchDynamicRangeDescription": "HDR 内容切换到 HDR,随后切回 SDR", "displaySwitchDelay": "显示切换延迟", - "tunneledPlayback": "通道化播放", - "tunneledPlaybackDescription": "使用视频隧道。若 HDR 播放出现黑屏,请禁用。", + "tunneledPlayback": "隧道播放", + "tunneledPlaybackDescription": "使用视频隧道模式。若播放 HDR 内容时出现黑屏,请将其关闭。", "audioPassthrough": "音频直通", "audioPassthroughDescription": "将 Dolby/DTS 音频不经重新编码直接发送到功放或电视,保留环绕声。如果没有声音,请关闭。", "audioPassthroughDescriptionAppleTv": "将 Dolby Digital Plus(含 Atmos)以比特流方式交给系统输出。DTS 和 TrueHD 仍以多声道 PCM 播放。快进快退时可能出现短暂声音中断。", @@ -275,7 +275,7 @@ "audioDownmixDescription": "将环绕声混合为双声道,适用于立体声音箱或耳机", "downmixCenterBoost": "中置声道增强", "downmixCenterBoostValue": "${db} dB", - "downmixCenterBoostLabel": "增强 (dB)", + "downmixCenterBoostLabel": "增强(dB)", "downmixCenterBoostShort": "dB", "audioDownmixNormalize": "下混时音量标准化", "audioDownmixNormalizeDescription": "降低混音电平以防止削波。关闭可保持原始音量(大音量场景可能失真)。", @@ -286,7 +286,7 @@ "atmosTestHlsControl": "Apple 环绕声流", "atmosTestHlsControlDescription": "不含 Atmos 的对照流。功放应显示不带 Atmos 的环绕声。", "atmosTestRawStream": "原始 EAC3 流", - "atmosTestRawStreamDescription": "以与播放器内 Atmos 播放完全相同的方式串流测试文件。需要测试文件 URL。", + "atmosTestRawStreamDescription": "以与播放器内 Atmos 播放完全相同的方式流式传输测试文件。需要测试文件 URL。", "atmosTestRawFile": "原始 EAC3 文件", "atmosTestRawFileDescription": "以已知长度播放测试文件。需要测试文件 URL。", "atmosTestStop": "停止测试", @@ -300,12 +300,12 @@ "dvConversionNative": "原生 / 禁用", "dvConversionDv81": "P7 → P8.1", "dvConversionHevcStrip": "P7 → HEVC", - "dvConversionAutoDescription": "使用设备能力检测和正常回退行为", - "dvConversionNativeDescription": "强制原生 DV7 并抑制 DV 转换重试", + "dvConversionAutoDescription": "使用设备能力检测和常规回退机制", + "dvConversionNativeDescription": "强制原生 DV7 并禁止重试 DV 转换", "dvConversionDv81Description": "强制内联 RPU 转换为 Dolby Vision Profile 8.1", "dvConversionHevcStripDescription": "移除 Dolby Vision RPU/EL 层并呈现普通 HEVC", - "requireProfileSelectionOnOpen": "打开应用时询问配置文件", - "requireProfileSelectionOnOpenDescription": "每次打开应用时显示配置文件选择", + "requireProfileSelectionOnOpen": "打开应用时选择用户资料", + "requireProfileSelectionOnOpenDescription": "每次打开应用时都显示用户资料选择界面", "forceTvMode": "强制 TV 模式", "forceTvModeDescription": "强制 TV 布局。适用于无法自动检测的设备。需要重启。", "startInFullscreen": "以全屏模式启动", @@ -330,7 +330,7 @@ "behavior": "行为" }, "search": { - "hint": "搜索电影、系列、音乐...", + "hint": "搜索电影、剧集、音乐…", "tryDifferentTerm": "尝试不同的搜索词", "searchYourMedia": "搜索媒体", "enterTitleActorOrKeyword": "输入标题、演员或关键词" @@ -339,9 +339,9 @@ "setShortcutFor": "为 ${actionName} 设置快捷键", "clearShortcut": "清除快捷键", "noShortcutSet": "未设置快捷键", - "currentShortcut": "当前快捷键:", - "pressToRecord": "选择以录制快捷键", - "recordingShortcut": "现在请按下快捷键", + "currentShortcut": "当前快捷键:", + "pressToRecord": "点击后录入快捷键", + "recordingShortcut": "请按下快捷键", "actions": { "playPause": "播放/暂停", "volumeUp": "增大音量", @@ -363,8 +363,8 @@ "zoomIn": "放大", "zoomOut": "缩小", "zoomReset": "重置缩放", - "subSeekNext": "跳转到下一字幕", - "subSeekPrev": "跳转到上一字幕", + "subSeekNext": "跳转到下一条字幕", + "subSeekPrev": "跳转到上一条字幕", "shaderToggle": "切换着色器", "skipMarker": "跳过片头/片尾", "screenshot": "截图" @@ -381,11 +381,11 @@ "bitrate": "比特率", "frameRate": "帧率", "aspectRatio": "宽高比", - "profile": "配置文件", + "profile": "编码配置", "bitDepth": "位深度", "colorSpace": "色彩空间", "colorRange": "色彩范围", - "colorPrimaries": "颜色原色", + "colorPrimaries": "色彩基色", "chromaSubsampling": "色度子采样", "channels": "声道", "subtitles": "字幕", @@ -394,15 +394,15 @@ "size": "大小", "container": "容器", "duration": "时长", - "optimizedForStreaming": "已优化用于流媒体", - "has64bitOffsets": "64位偏移量" + "optimizedForStreaming": "已针对流式传输优化", + "has64bitOffsets": "64 位偏移量" }, "mediaMenu": { "markAsWatched": "标记为已观看", "markAsUnwatched": "标记为未观看", "removeFromContinueWatching": "从继续观看中移除", "viewDetails": "查看详情", - "goToSeries": "转到系列", + "goToSeries": "前往剧集", "shufflePlay": "随机播放", "shuffleNotAvailableOffline": "离线时无法随机播放", "fileInfo": "文件信息", @@ -413,7 +413,7 @@ "mediaFailedToDelete": "删除媒体项失败", "rate": "评分", "playFromBeginning": "从头播放", - "playVersion": "播放版本..." + "playVersion": "播放版本…" }, "rateSheet": { "title": "评分", @@ -430,7 +430,7 @@ "mediaCardEpisode": "${title}, ${episodeInfo}", "mediaCardSeason": "${title}, ${seasonInfo}", "mediaCardWatched": "已观看", - "mediaCardPartiallyWatched": "已观看 ${percent} 百分比", + "mediaCardPartiallyWatched": "已观看 ${percent}%", "mediaCardUnwatched": "未观看", "tapToPlay": "点击播放", "decrease": "减小", @@ -463,10 +463,10 @@ "resetToZero": "重置为 0ms", "addTime": "+${amount}${unit}", "minusTime": "-${amount}${unit}", - "playsLater": "${label} 播放较晚", - "playsEarlier": "${label} 播放较早", + "playsLater": "${label}延后播放", + "playsEarlier": "${label}提前播放", "noOffset": "无偏移", - "letterbox": "信箱模式(Letterbox)", + "letterbox": "黑边模式", "fillScreen": "填充屏幕", "stretch": "拉伸", "lockRotation": "锁定旋转", @@ -478,16 +478,16 @@ "sleepTimerDurationHeader": "定时器", "playbackWillPauseAtEnd": "播放将在此视频结束时暂停", "stillWatching": "还在看吗?", - "pausingIn": "${seconds}秒后暂停", + "pausingIn": "${seconds} 秒后暂停", "continueWatching": "继续", "autoPlayNext": "自动播放下一集", "playNext": "播放下一集", "playButton": "播放", "pauseButton": "暂停", - "showPlaybackControls": "", - "hidePlaybackControls": "", - "seekBackwardButton": "后退 ${seconds} 秒", - "seekForwardButton": "前进 ${seconds} 秒", + "showPlaybackControls": "显示播放控制项", + "hidePlaybackControls": "隐藏播放控制项", + "seekBackwardButton": "快退 ${seconds} 秒", + "seekForwardButton": "快进 ${seconds} 秒", "previousButton": "上一集", "nextButton": "下一集", "previousChapterButton": "上一章节", @@ -504,20 +504,20 @@ "qualityPresetLabel": "${resolution}p ${bitrate} Mbps", "transcodeUnavailableFallback": "转码不可用 — 以原始画质播放", "subtitleUnavailableFallback": "无法加载所选字幕 — 将继续无字幕播放", - "pipButton": "画中画模式", + "pipButton": "画中画", "aspectRatioButton": "宽高比", "ambientLighting": "氛围灯光", "fullscreenButton": "进入全屏", "exitFullscreenButton": "退出全屏", - "alwaysOnTopButton": "置顶窗口", + "alwaysOnTopButton": "窗口置顶", "rotationLockButton": "旋转锁定", "lockScreen": "锁定屏幕", "screenLockButton": "屏幕锁定", "longPressToUnlock": "长按解锁", "timelineSlider": "视频时间轴", - "volumeSlider": "音量调节", - "endsAt": "${time} 结束", - "pipActive": "正在画中画模式中播放", + "volumeSlider": "音量滑块", + "endsAt": "结束时间:${time}", + "pipActive": "正在以画中画模式播放", "pipFailed": "画中画启动失败", "screenshotSaved": "截图已保存", "zoomPercent": "缩放 ${percent}%", @@ -539,49 +539,49 @@ "noSubtitlesFound": "未找到字幕", "noSubtitlesAvailable": "没有可用字幕", "noAudioTracksAvailable": "没有可用音轨", - "noTracksAvailable": "没有可用轨道", + "noTracksAvailable": "没有可用音轨", "subtitleDownloaded": "字幕已下载", "subtitleDownloadedNotApplied": "字幕已下载,但无法选择", "subtitleDownloadFailed": "字幕下载失败", - "searchLanguages": "搜索语言..." + "searchLanguages": "搜索语言…" }, "userStatus": {}, "messages": { "markedAsWatched": "已标记为已观看", "markedAsUnwatched": "已标记为未观看", - "markedAsWatchedOffline": "已标记为已观看 (将在联网时同步)", - "markedAsUnwatchedOffline": "已标记为未观看 (将在联网时同步)", - "autoRemovedWatchedDownload": "已自动移除: ${title}", + "markedAsWatchedOffline": "已标记为已观看(将在联网时同步)", + "markedAsUnwatchedOffline": "已标记为未观看(将在联网时同步)", + "autoRemovedWatchedDownload": "已自动移除:${title}", "autoRemovedWatchedDownloads": { "other": "已自动移除 ${n} 个看过的下载" }, "removedFromContinueWatching": "已从继续观看中移除", - "errorLoading": "错误: ${error}", + "errorLoading": "出错:${error}", "streamInterrupted": "视频流已中断。按播放键或拖动进度条重试。", "liveStreamInterrupted": "直播流已中断。按播放键重试。", "fileInfoNotAvailable": "文件信息不可用", - "playbackAuthenticationRequired": "Sign in to the media server again to play this item.", - "playbackServerUnavailable": "The media server is unavailable. Try again later.", - "playbackDataInvalid": "The server returned invalid playback information.", - "playbackCancelled": "Playback was cancelled.", - "playbackFailed": "Playback could not be started.", - "errorLoadingFileInfo": "加载文件信息时出错: ${error}", - "errorLoadingSeries": "加载系列时出错", + "playbackAuthenticationRequired": "请重新登录媒体服务器以播放此项目。", + "playbackServerUnavailable": "媒体服务器不可用。请稍后重试。", + "playbackDataInvalid": "服务器返回了无效的播放信息。", + "playbackCancelled": "播放已取消。", + "playbackFailed": "无法开始播放。", + "errorLoadingFileInfo": "加载文件信息时出错:${error}", + "errorLoadingSeries": "加载剧集时出错", "musicNotSupported": "尚不支持播放音乐", "noDescriptionAvailable": "暂无描述", - "noProfilesAvailable": "没有可用的用户", - "contactAdminForProfiles": "请联系服务器管理员添加用户配置", - "unableToDetermineLibrarySection": "无法确定此项目的库分区", + "noProfilesAvailable": "没有可用的用户资料", + "contactAdminForProfiles": "请联系服务器管理员添加用户资料", + "unableToDetermineLibrarySection": "无法确定此项目所属的媒体库", "logsCleared": "日志已清除", "logsCopied": "日志已复制到剪贴板", "noLogsAvailable": "没有可用日志", - "libraryScanning": "正在扫描 “${title}”...", - "libraryScanStarted": "已开始扫描 “${title}” 媒体库", - "libraryScanFailed": "无法扫描媒体库: ${error}", - "metadataRefreshing": "正在刷新 “${title}” 的元数据...", - "metadataRefreshStarted": "已开始刷新 “${title}” 的元数据", - "metadataRefreshFailed": "无法刷新元数据: ${error}", - "logoutConfirm": "你确定要登出吗?", + "libraryScanning": "正在扫描“${title}”…", + "libraryScanStarted": "已开始扫描“${title}”媒体库", + "libraryScanFailed": "无法扫描媒体库:${error}", + "metadataRefreshing": "正在刷新“${title}”的元数据…", + "metadataRefreshStarted": "已开始刷新“${title}”的元数据", + "metadataRefreshFailed": "无法刷新元数据:${error}", + "logoutConfirm": "确定要退出登录吗?", "noSeasonsFound": "未找到季", "seasonsLoadFailed": "无法加载季", "noEpisodesFound": "在第一季中未找到剧集", @@ -590,11 +590,11 @@ "noResultsFound": "未找到结果", "sleepTimerSet": "睡眠定时器已设置为 ${label}", "noItemsAvailable": "没有可用的项目", - "failedToCreatePlayQueueNoItems": "创建播放队列失败 - 没有项目", - "failedPlayback": "无法${action}: ${error}", - "switchingToCompatiblePlayer": "正在切换到兼容的播放器...", + "failedToCreatePlayQueueNoItems": "创建播放队列失败:没有可用项目", + "failedPlayback": "无法执行“${action}”:${error}", + "switchingToCompatiblePlayer": "正在切换到兼容的播放器…", "serverLimitTitle": "播放失败", - "serverLimitBody": "服务器错误 (HTTP 500)。带宽/转码限制可能拒绝了此会话。请让所有者调整。", + "serverLimitBody": "服务器错误(HTTP 500)。此次会话可能因带宽或转码限制而被拒绝。请联系服务器所有者调整限制。", "logsUploaded": "日志已上传", "logsUploadFailed": "上传日志失败", "logId": "日志 ID" @@ -627,7 +627,7 @@ "description": "高级视频播放器设置", "presets": "预设", "noPresets": "没有保存的预设", - "saveAsPreset": "保存为预设...", + "saveAsPreset": "保存为预设…", "presetName": "预设名称", "presetNameHint": "输入此预设的名称", "loadPreset": "加载", @@ -642,11 +642,11 @@ "confirmAction": "确认操作" }, "profiles": { - "addPlezyProfile": "添加 Plezy 配置文件", - "switchingProfile": "切换配置文件中…", - "deleteThisProfileTitle": "删除此配置文件?", + "addPlezyProfile": "添加 Plezy 用户资料", + "switchingProfile": "正在切换用户资料…", + "deleteThisProfileTitle": "删除此用户资料?", "deleteThisProfileMessage": "移除 ${displayName}。连接不会受影响。", - "active": "活跃", + "active": "当前使用", "manage": "管理", "delete": "删除", "signOut": "退出登录", @@ -654,18 +654,18 @@ "signOutPlexMessage": "要移除 ${displayName} 和所有 Plex Home 用户吗?可随时重新登录。", "signedOutPlex": "已退出 Plex 登录。", "signOutFailed": "退出登录失败。", - "sectionTitle": "配置文件", - "summarySingle": "添加配置文件以混合托管用户和本地身份", - "summaryMultipleWithActive": "${count} 个配置文件 · 活跃:${activeName}", - "summaryMultiple": "${count} 个配置文件", + "sectionTitle": "用户资料", + "summarySingle": "添加用户资料,以便同时使用受管理用户和本地用户身份", + "summaryMultipleWithActive": "${count} 个用户资料 · 当前:${activeName}", + "summaryMultiple": "${count} 个用户资料", "removeConnectionTitle": "移除连接?", - "removeConnectionMessage": "移除 ${displayName} 对 ${connectionLabel} 的访问。其他个人资料仍保留。", - "deleteProfileTitle": "删除配置文件?", - "deleteProfileMessage": "移除 ${displayName} 及其连接。服务器仍可用。", - "profileNameLabel": "配置文件名称", + "removeConnectionMessage": "移除 ${displayName} 对 ${connectionLabel} 的访问权限。其他用户资料仍可使用此连接。", + "deleteProfileTitle": "删除用户资料?", + "deleteProfileMessage": "移除 ${displayName} 及其连接。服务器仍可供其他用户资料使用。", + "profileNameLabel": "用户资料名称", "pinProtectionLabel": "PIN 保护", "pinManagedByPlex": "PIN 由 Plex 管理。在 plex.tv 上编辑。", - "noPinSetEditOnPlex": "未设置 PIN。如需要求 PIN,请在 plex.tv 上编辑 Home 用户。", + "noPinSetEditOnPlex": "未设置 PIN。如需设置,请在 plex.tv 上编辑 Plex Home 用户。", "setPin": "设置 PIN", "setPinTitle": "设置 PIN", "confirmPinTitle": "确认 PIN", @@ -674,32 +674,32 @@ "removePin": "移除", "connectionsLabel": "连接", "add": "添加", - "deleteProfileButton": "删除配置文件", - "noConnectionsHint": "没有连接 — 添加一个以使用此配置文件。", + "deleteProfileButton": "删除用户资料", + "noConnectionsHint": "没有连接 — 请添加连接以使用此用户资料。", "noConnections": "没有连接", "plexHomeAccount": "Plex Home 账户", "connectionDefault": "默认", "connectionAs": "以 ${displayName} 身份", "makeDefault": "设为默认", "removeConnection": "移除", - "profileRenamed": "个人资料已重命名。", + "profileRenamed": "用户资料已重命名。", "borrowAddTo": "添加到 ${displayName}", - "borrowExplain": "借用另一个个人资料的连接。受 PIN 保护的个人资料需要 PIN。", - "borrowEmpty": "暂无可借用的内容。", - "borrowEmptySubtitle": "请先将 Plex 或 Jellyfin 连接到另一个个人资料。", - "borrowLoadFailed": "Available connections could not be loaded. Try again.", + "borrowExplain": "使用另一个用户资料的连接。受 PIN 保护的用户资料需要输入 PIN。", + "borrowEmpty": "暂无可用连接。", + "borrowEmptySubtitle": "请先将 Plex 或 Jellyfin 连接到另一个用户资料。", + "borrowLoadFailed": "无法加载可用连接。请重试。", "borrowFromProfile": "来自 ${displayName}", - "borrowConnectionBorrowed": "已借用连接。", - "borrowFailed": "无法借用连接。", + "borrowConnectionBorrowed": "连接已添加。", + "borrowFailed": "无法添加连接。", "incorrectPin": "PIN 不正确。", "incorrectPinTryAgain": "PIN 不正确。请重试。", - "sourceProfileMissingParentAccount": "源个人资料缺少其父账号。", + "sourceProfileMissingParentAccount": "源用户资料缺少关联的主账户。", "failedToLoadHomeUsers": "无法加载您的 Plex Home 用户。请检查网络连接后重试。", "failedToVerifyPin": "无法验证 PIN。", - "newProfile": "新建配置文件", - "profileNameHint": "例如:访客、儿童、家庭房", + "newProfile": "新建用户资料", + "profileNameHint": "例如:访客、儿童、客厅", "pinProtectionOptional": "PIN 保护(可选)", - "pinExplain": "切换个人资料需要 4 位 PIN。", + "pinExplain": "切换用户资料时需要输入 4 位 PIN。", "continueButton": "继续", "pinsDontMatch": "PIN 不匹配" }, @@ -707,12 +707,12 @@ "sectionTitle": "连接", "addConnection": "添加连接", "addConnectionSubtitleNoProfile": "使用 Plex 登录或连接 Jellyfin 服务器", - "addConnectionSubtitleScoped": "添加到 ${displayName}: Plex、Jellyfin 或其他个人资料连接", + "addConnectionSubtitleScoped": "添加到 ${displayName}:Plex、Jellyfin,或其他用户资料的连接", "sessionExpiredOne": "${name} 的会话已过期", "sessionExpiredMany": "${count} 个服务器的会话已过期", "signInAgain": "重新登录", "editJellyfinTitle": "编辑 Jellyfin 连接", - "editJellyfinIntro": "添加或移除 ${serverName} 的 URL。Plezy 会使用可访问且延迟最低的 URL。" + "editJellyfinIntro": "添加或移除 ${serverName} 的 URL。Plezy 会使用可访问且延迟最低的地址。" }, "discover": { "title": "发现", @@ -739,14 +739,14 @@ "moreLikeThis": "更多类似内容" }, "errors": { - "searchFailed": "搜索失败: ${error}", + "searchFailed": "搜索失败:${error}", "connectionTimeout": "加载 ${context} 时连接超时", "connectionFailed": "无法连接到媒体服务器", "unableToLoad": "无法加载${context}。请重试。", "noClientAvailable": "没有可用客户端", "pleaseEnterToken": "请输入一个令牌", "invalidToken": "令牌无效", - "failedToVerifyToken": "无法验证令牌: ${error}", + "failedToVerifyToken": "无法验证令牌:${error}", "failedToSwitchProfile": "无法切换到 ${displayName}", "failedToDeleteProfile": "无法删除 ${displayName}", "failedToRate": "无法更新评分" @@ -760,12 +760,12 @@ "analyzeLibrary": "分析媒体库", "refreshMetadata": "刷新元数据", "emptyTrash": "清空回收站", - "emptyingTrash": "正在清空 “${title}” 的回收站...", - "trashEmptied": "已清空 “${title}” 的回收站", - "failedToEmptyTrash": "无法清空回收站: ${error}", - "analyzing": "正在分析 “${title}”...", - "analysisStarted": "已开始分析 “${title}”", - "failedToAnalyze": "无法分析媒体库: ${error}", + "emptyingTrash": "正在清空“${title}”的回收站…", + "trashEmptied": "已清空“${title}”的回收站", + "failedToEmptyTrash": "无法清空回收站:${error}", + "analyzing": "正在分析“${title}”…", + "analysisStarted": "已开始分析“${title}”", + "failedToAnalyze": "无法分析媒体库:${error}", "noLibrariesFound": "未找到媒体库", "allLibrariesHidden": "所有媒体库已隐藏", "hiddenLibrariesCount": "已隐藏的媒体库 (${count})", @@ -774,14 +774,14 @@ "resetFilters": "重置筛选条件", "all": "全部", "clearAll": "全部清除", - "scanLibraryConfirm": "确定要扫描 “${title}” 吗?", - "analyzeLibraryConfirm": "确定要分析 “${title}” 吗?", - "refreshMetadataConfirm": "确定要刷新 “${title}” 的元数据吗?", - "emptyTrashConfirm": "确定要清空 “${title}” 的回收站吗?", + "scanLibraryConfirm": "确定要扫描“${title}”吗?", + "analyzeLibraryConfirm": "确定要分析“${title}”吗?", + "refreshMetadataConfirm": "确定要刷新“${title}”的元数据吗?", + "emptyTrashConfirm": "确定要清空“${title}”的回收站吗?", "manageLibraries": "管理媒体库", "sort": "排序", "sortBy": "排序依据", - "filters": "筛选器", + "filters": "筛选", "confirmActionMessage": "确定要执行此操作吗?", "showLibrary": "显示媒体库", "hideLibrary": "隐藏媒体库", @@ -836,7 +836,7 @@ "premiereDate": "首映日期", "startDate": "开始日期", "airTime": "播出时间", - "studio": "工作室", + "studio": "制片公司", "random": "随机", "dateShared": "共享日期", "latestEpisodeAirDate": "最新一集播出日期", @@ -851,8 +851,8 @@ "viewLicensesDescription": "查看第三方库的许可证" }, "serverSelection": { - "noServersFoundForAccount": "未找到 ${username} (${email}) 的服务器", - "failedToLoadServers": "无法加载服务器: ${error}" + "noServersFoundForAccount": "未找到 ${username}(${email})的服务器", + "failedToLoadServers": "无法加载服务器:${error}" }, "hubDetail": { "title": "标题", @@ -875,7 +875,7 @@ "navigation": { "libraries": "媒体库", "downloads": "下载", - "liveTv": "电视直播", + "liveTv": "直播电视", "explore": "探索" }, "explore": { @@ -885,15 +885,15 @@ "watchlist": "想看列表", "recommendedMovies": "推荐电影", "recommendedShows": "推荐剧集", - "trendingMovies": "趋势电影", - "trendingShows": "趋势剧集", - "popularMovies": "热门电影", - "popularShows": "热门剧集", + "trendingMovies": "近期热门电影", + "trendingShows": "近期热门剧集", + "popularMovies": "人气电影", + "popularShows": "人气剧集", "trendingAnime": "热门动画", "suggestedAnime": "推荐动画", "airingAnime": "热门连载动画", "popularAnime": "最受欢迎动画", - "trending": "趋势", + "trending": "近期热门", "upcomingMovies": "即将上映的电影", "upcomingShows": "即将播出的剧集" }, @@ -913,7 +913,7 @@ "watchlistUpdateFailed": "无法更新想看列表", "notInLibrary": "不在你的媒体库中", "inTheseLibraries": "在这些媒体库中", - "checkingLibrary": "正在检查你的媒体库...", + "checkingLibrary": "正在检查你的媒体库…", "emptyTitle": "这里还什么都没有", "emptyMessage": "当 ${source} 有内容时,相关内容将显示在这里。", "searchHint": "搜索 ${source}", @@ -922,10 +922,10 @@ "searchFailed": "搜索失败。请检查网络连接后重试。" }, "liveTv": { - "title": "电视直播", + "title": "直播电视", "guide": "节目指南", "noChannels": "没有可用的频道", - "noDvr": "没有服务器配置了DVR", + "noDvr": "没有服务器配置 DVR", "serverUnavailable": "直播电视服务器不可用。", "serverNotConnected": "直播电视服务器未连接。", "noPrograms": "没有可用的节目数据", @@ -951,18 +951,18 @@ "favorites": "收藏", "reorderFavorites": "重新排序收藏", "favoritesLoadFailed": "无法加载收藏。请检查网络连接后重试。", - "favoritesUpdateFailed": "Could not update favorites. Check your connection and try again.", + "favoritesUpdateFailed": "无法更新收藏。请检查网络连接后重试。", "joinSession": "加入正在进行的会话", "watchFromStart": "从头观看(${minutes}分钟前开始)", "watchLive": "观看直播", "goToLive": "跳至直播", "record": "录制", "recordEpisode": "录制单集", - "recordSeries": "录制整部剧集", + "recordSeries": "录制系列节目", "recordOptions": "录制选项", "saveTo": "保存到", "recordings": "录制内容", - "scheduledRecordings": "已安排", + "scheduledRecordings": "计划录制", "recordingRules": "录制规则", "noScheduledRecordings": "没有安排的录制", "manageRecording": "管理录制", @@ -971,7 +971,7 @@ "cancelRecordingMessage": "将不再录制 ${title}。", "deleteRule": "删除规则", "deleteRuleTitle": "删除录制规则?", - "deleteRuleMessage": "未来的 ${title} 剧集将不会被录制。", + "deleteRuleMessage": "今后将不再录制 ${title} 的剧集。", "recordingScheduled": "录制已安排", "alreadyScheduled": "此节目已安排录制", "dvrAdminRequired": "DVR 设置需要管理员账户", @@ -982,7 +982,7 @@ "recordingRuleDeleted": "录制规则已删除", "processRecordingRules": "重新评估规则", "recordingInProgress": "正在录制", - "recordingsCount": "已安排 ${count} 个", + "recordingsCount": "已安排 ${count} 项录制", "editRule": "编辑规则", "editRuleAction": "编辑", "recordingRuleUpdated": "录制规则已更新", @@ -1010,7 +1010,7 @@ "removedFromCollection": "已从合集移除", "removeFromCollectionFailed": "从合集移除失败", "removeFromCollectionError": "从合集移除时出错:${error}", - "searchCollections": "搜索合集..." + "searchCollections": "搜索合集…" }, "playlists": { "title": "播放列表", @@ -1026,13 +1026,13 @@ "oneItem": "1 个项目", "emptyPlaylist": "此播放列表为空", "deleteConfirm": "删除播放列表?", - "deleteMessage": "确定要删除 \"${name}\" 吗?", + "deleteMessage": "确定要删除“${name}”吗?", "created": "播放列表已创建", "deleted": "播放列表已删除", "itemAdded": "已添加到播放列表", "itemRemoved": "已从播放列表中移除", "selectPlaylist": "选择播放列表", - "searchPlaylists": "搜索播放列表...", + "searchPlaylists": "搜索播放列表…", "errorCreating": "创建播放列表失败", "errorDeleting": "删除播放列表失败", "errorLoading": "加载播放列表失败", @@ -1043,7 +1043,7 @@ "music": { "goToAlbum": "前往专辑", "goToArtist": "前往艺术家", - "instantMix": "即时混音", + "instantMix": "即时混合播放", "playNext": "下一首播放", "addToQueue": "添加到队列", "discNumber": "碟片 ${n}", @@ -1051,13 +1051,13 @@ "other": "${n} 首" }, "nowPlaying": "正在播放", - "playingFrom": "来自 ${title}", + "playingFrom": "播放来源:${title}", "queue": "播放队列", "clearQueue": "清空队列", "lyrics": "歌词", "noLyrics": "暂无歌词", "sleepTimer": "睡眠定时器", - "sleepTimerEndOfTrack": "曲目结束时", + "sleepTimerEndOfTrack": "当前曲目结束时", "sleepTimerMinutes": "${n} 分钟", "stopPlayback": "停止播放", "previousTrack": "上一首", @@ -1070,9 +1070,9 @@ "title": "一起看", "description": "与朋友和家人同步观看内容", "createSession": "创建会话", - "creating": "创建中...", + "creating": "正在创建…", "joinSession": "加入会话", - "joining": "加入中...", + "joining": "正在加入…", "controlMode": "控制模式", "controlModeQuestion": "谁可以控制播放?", "hostOnly": "仅主持人", @@ -1101,36 +1101,36 @@ "leaveSessionConfirmOverlay": "你将断开与观看会话的连接。", "end": "结束", "leave": "离开", - "syncing": "同步中...", + "syncing": "正在同步…", "joinWatchSession": "加入观看会话", - "enterCodeHint": "输入5位代码", + "enterCodeHint": "输入 5 位代码", "pasteFromClipboard": "从剪贴板粘贴", "pleaseEnterCode": "请输入会话代码", - "codeMustBe5Chars": "会话代码必须是5个字符", + "codeMustBe5Chars": "会话代码必须是 5 个字符", "joinInstructions": "输入主持人的会话代码以加入。", "failedToCreate": "创建会话失败", "failedToJoin": "加入会话失败", "sessionCodeCopied": "会话代码已复制到剪贴板", - "relayUnreachable": "无法访问中继服务器。ISP 阻止可能导致 Watch Together 不可用。", - "reconnectingToHost": "正在重新连接到主持人...", + "relayUnreachable": "无法访问中继服务器。网络运营商的屏蔽可能导致“一起看”不可用。", + "reconnectingToHost": "正在重新连接到主持人…", "currentPlayback": "当前播放", "joinCurrentPlayback": "加入当前播放", - "joinCurrentPlaybackDescription": "回到房主当前正在观看的内容", + "joinCurrentPlaybackDescription": "加入主持人当前正在观看的内容", "failedToOpenCurrentPlayback": "无法打开当前播放", - "participantJoined": "${name} 加入了", - "participantLeft": "${name} 离开了", - "participantPaused": "${name} 暂停了", - "participantResumed": "${name} 继续播放了", - "participantSeeked": "${name} 跳转了", + "participantJoined": "${name} 已加入", + "participantLeft": "${name} 已离开", + "participantPaused": "${name} 暂停了播放", + "participantResumed": "${name} 恢复了播放", + "participantSeeked": "${name} 更改了播放位置", "participantBuffering": "${name} 正在缓冲", "participantNeedsUpdate": "${name} 正在使用较旧版本的应用,无法同步", - "resumingWithout": "不等待 ${name},继续播放", - "waitingForParticipants": "等待其他人加载...", - "waitingForName": "正在等待 ${name}...", + "resumingWithout": "不再等待 ${name},继续播放", + "waitingForParticipants": "正在等待其他人加载…", + "waitingForName": "正在等待 ${name}…", "recentRooms": "最近的房间", "renameRoom": "重命名房间", "removeRoom": "移除", - "guestSwitchUnavailable": "无法切换 — 服务器无法同步", + "guestSwitchUnavailable": "无法切换 — 服务器不可用于同步", "guestSwitchFailed": "无法切换 — 在此服务器上未找到内容" }, "downloads": { @@ -1157,13 +1157,13 @@ "resumeDownload": "继续下载", "cancelledDownload": "已取消的下载", "syncingFile": "${file}(正在同步 ${status})", - "downloadedFileClickToComplete": "已下载 ${file} — 点击完成", - "partialDownloadClickToComplete": "已部分下载 — 点击完成", - "deleting": "正在删除...", - "deletingWithProgress": "正在删除 ${title}... (${current}/${total})", + "downloadedFileClickToComplete": "已下载 ${file} — 点击以完成", + "partialDownloadClickToComplete": "已部分下载 — 点击以完成", + "deleting": "正在删除…", + "deletingWithProgress": "正在删除 ${title}…(${current}/${total})", "queuedTooltip": "已排队", "queuedFilesTooltip": "已排队:${files}", - "downloadingTooltip": "正在下载...", + "downloadingTooltip": "正在下载…", "downloadingFilesTooltip": "正在下载 ${files}", "noDownloadsTree": "暂无下载", "pauseAll": "全部暂停", @@ -1173,20 +1173,20 @@ "allEpisodes": "所有剧集", "unwatchedOnly": "仅未观看", "nextNUnwatched": "接下来 ${count} 集未观看", - "customAmount": "自定义数量...", + "customAmount": "自定义数量…", "includeSpecials": "包含特别篇", "howManyEpisodes": "下载几集?", "invalidEpisodeCount": "请输入有效的集数。", "keepSynced": "保持同步", "downloadOnce": "下载一次", - "keepNUnwatched": "保留${count}个未观看", + "keepNUnwatched": "保留 ${count} 集未观看内容", "editSyncRule": "编辑同步规则", "removeSyncRule": "删除同步规则", "removeSyncRuleConfirm": "停止同步“${title}”?已下载的剧集将被保留。", - "syncRuleCreated": "同步规则已创建 — 保留${count}个未观看的剧集", + "syncRuleCreated": "同步规则已创建 — 保留 ${count} 集未观看内容", "syncRuleUpdated": "同步规则已更新", "syncRuleRemoved": "同步规则已删除", - "syncedNewEpisodes": "已为${title}同步${count}个新剧集", + "syncedNewEpisodes": "已为 ${title} 同步 ${count} 个新剧集", "activeSyncRules": "同步规则", "noSyncRules": "没有同步规则", "manageSyncRule": "管理同步", @@ -1194,11 +1194,11 @@ "editSyncFilter": "同步筛选", "syncAllItems": "同步所有项目", "syncUnwatchedItems": "同步未观看项目", - "syncRuleServerContext": "服务器: ${server} • ${status}", + "syncRuleServerContext": "服务器:${server} • ${status}", "syncRuleAvailable": "可用", "syncRuleOffline": "离线", "syncRuleSignInRequired": "需要登录", - "syncRuleNotAvailableForProfile": "当前个人资料不可用", + "syncRuleNotAvailableForProfile": "当前用户资料不可用", "syncRuleUnknownServer": "未知服务器", "syncRuleListCreated": "同步规则已创建" }, @@ -1217,14 +1217,14 @@ "shaderImported": "着色器已导入", "shaderImportFailed": "导入着色器失败", "deleteShader": "删除着色器", - "deleteShaderConfirm": "删除\"${name}\"?" + "deleteShaderConfirm": "删除“${name}”?" }, "companionRemote": { - "title": "伴侣遥控", + "title": "遥控器", "connectedTo": "已连接到 ${name}", "unknownDevice": "未知设备", "session": { - "startingServer": "正在启动远程服务器...", + "startingServer": "正在启动远程服务器…", "hostAddress": "主机地址", "connected": "已连接", "serverRunning": "远程服务器已启动", @@ -1239,30 +1239,30 @@ "pairing": { "discoveryDescription": "使用同一 Plex 账号的 Plezy 设备会显示在这里", "hostAddressHint": "192.168.1.100:48632", - "connecting": "正在连接...", - "searchingForDevices": "正在搜索设备...", - "noDevicesFound": "未在网络上找到设备", - "noDevicesHint": "在桌面端打开 Plezy 并使用同一 WiFi", + "connecting": "正在连接…", + "searchingForDevices": "正在搜索设备…", + "noDevicesFound": "未在网络中找到设备", + "noDevicesHint": "请在桌面端打开 Plezy,并确保设备连接到同一 Wi-Fi 网络", "availableDevices": "可用设备", "manualConnection": "手动连接", "cryptoInitFailed": "无法启动安全连接。请先登录 Plex。", "validationHostRequired": "请输入主机地址", - "validationHostFormat": "格式必须为IP:端口(例如 192.168.1.100:48632)", + "validationHostFormat": "格式必须为 IP:端口(例如 192.168.1.100:48632)", "connectionTimedOut": "连接超时。请在两台设备上使用同一网络。", "sessionNotFound": "未找到设备。请确认 Plezy 正在主机上运行。", "authFailed": "认证失败。两台设备需要使用同一 Plex 账号。", "failedToConnect": "连接失败:${error}" }, "remote": { - "disconnectConfirm": "是否要断开远程会话的连接?", - "reconnecting": "重新连接中...", + "disconnectConfirm": "确定要断开遥控会话吗?", + "reconnecting": "正在重新连接…", "attemptOf": "第 ${current} 次尝试,共 5 次", "retryNow": "立即重试", - "tabRemote": "遥控", + "tabRemote": "遥控器", "tabPlay": "播放", "tabMore": "更多", "menu": "菜单", - "tabNavigation": "标签导航", + "tabNavigation": "导航", "tabDiscover": "发现", "tabLibraries": "媒体库", "tabSearch": "搜索", @@ -1271,16 +1271,16 @@ "previous": "上一个", "playPause": "播放/暂停", "next": "下一个", - "seekBack": "后退", + "seekBack": "快退", "stop": "停止", "seekForward": "快进", "volume": "音量", - "volumeDown": "减小", - "volumeUp": "增大", + "volumeDown": "降低音量", + "volumeUp": "提高音量", "fullscreen": "全屏", "subtitles": "字幕", "audio": "音频", - "searchHint": "在桌面上搜索..." + "searchHint": "在桌面端搜索…" }, "errors": { "noNetworkInterface": "未找到网络接口", @@ -1326,7 +1326,7 @@ "hwFormat": "硬件格式", "matrix": "矩阵", "primaries": "基色", - "transfer": "传输", + "transfer": "传递特性", "renderFps": "渲染 FPS", "displayFps": "显示 FPS", "avSync": "A/V 同步", @@ -1364,7 +1364,7 @@ "playInExternalPlayer": "在外部播放器中播放" }, "metadataEdit": { - "editMetadata": "编辑...", + "editMetadata": "编辑…", "screenTitle": "编辑元数据", "basicInfo": "基本信息", "artwork": "封面图片", @@ -1385,7 +1385,7 @@ "selectBackground": "选择背景", "selectLogo": "选择标志", "selectSquareArt": "选择方形图片", - "fromUrl": "从 URL", + "fromUrl": "通过 URL", "uploadFile": "上传文件", "enterImageUrl": "输入图片 URL", "imageUrl": "图片 URL", @@ -1442,8 +1442,8 @@ "mood": "氛围" }, "matchScreen": { - "match": "匹配...", - "fixMatch": "修正匹配...", + "match": "匹配…", + "fixMatch": "修正匹配…", "unmatch": "取消匹配", "unmatchConfirm": "清除此匹配?在重新匹配前,Plex 会将其视为未匹配。", "unmatchSuccess": "已取消匹配", @@ -1466,8 +1466,8 @@ "connectedAs": "已以 @${username} 身份连接", "disconnectConfirm": "断开 Trakt 账户?", "disconnectConfirmBody": "Plezy 将停止向 Trakt 发送事件。你可随时重新连接。", - "scrobble": "实时 Scrobble", - "scrobbleDescription": "在播放时向 Trakt 发送播放、暂停和停止事件。", + "scrobble": "实时同步播放状态", + "scrobbleDescription": "播放期间将播放、暂停和停止事件发送到 Trakt。", "watchedSync": "同步已观看状态", "watchedSyncDescription": "在 Plezy 中将内容标记为已观看时,也会在 Trakt 上标记为已观看。" }, @@ -1491,11 +1491,11 @@ "allSeasons": "全部季", "advancedOptions": "高级", "destinationServer": "目标服务器", - "qualityProfile": "质量配置文件", + "qualityProfile": "画质配置", "rootFolder": "根目录", - "languageProfile": "语言配置文件", + "languageProfile": "语言配置", "requestSubmitted": "请求已提交", - "requestFailed": "请求失败: ${error}", + "requestFailed": "请求失败:${error}", "requestsLoadFailed": "无法加载请求选项", "nothingToRequest": "所有内容都已可用或已请求。", "statusAvailable": "可用", @@ -1552,31 +1552,31 @@ "addServer": { "addJellyfinTitle": "添加 Jellyfin 服务器", "serverUrls": "服务器 URL", - "serverUrlsHelper": "可输入多个 URL,以逗号分隔。", + "serverUrlsHelper": "可输入多个 URL,并用逗号分隔。", "findServer": "查找服务器", - "searchingLocalServers": "正在查找本地 Jellyfin 服务器...", + "searchingLocalServers": "正在查找本地 Jellyfin 服务器…", "localServers": "本地 Jellyfin 服务器", "username": "用户名", "password": "密码", "signIn": "登录", "change": "更改", "required": "必填", - "couldNotReachServer": "无法连接到服务器: ${error}", - "signInFailed": "登录失败: ${error}", - "quickConnectFailed": "Quick Connect 失败: ${error}", + "couldNotReachServer": "无法连接到服务器:${error}", + "signInFailed": "登录失败:${error}", + "quickConnectFailed": "Quick Connect 失败:${error}", "addPlexTitle": "使用 Plex 登录", "pinExpired": "PIN 在登录前已过期。请重试。", - "failedToRegisterAccount": "注册帐户失败: ${error}", - "enterJellyfinUrlError": "输入你的 Jellyfin 服务器 URL", + "failedToRegisterAccount": "注册账户失败:${error}", + "enterJellyfinUrlError": "请输入 Jellyfin 服务器 URL", "addConnectionTitle": "添加连接", "addConnectionTitleScoped": "添加到 ${name}", "signInWithPlexCard": "使用 Plex 登录", "signInWithPlexCardSubtitle": "授权此设备。共享服务器会被添加。", - "signInWithPlexCardSubtitleScoped": "授权一个 Plex 账号。Home 用户会成为个人资料。", + "signInWithPlexCardSubtitleScoped": "授权一个 Plex 账户。Plex Home 用户将成为 Plezy 用户资料。", "connectToJellyfinCard": "连接到 Jellyfin", "connectToJellyfinCardSubtitle": "输入服务器 URL、用户名和密码。", "connectToJellyfinCardSubtitleScoped": "登录到 Jellyfin 服务器。绑定到 ${name}。", - "borrowFromAnotherProfile": "从另一个配置文件借用", - "borrowFromAnotherProfileSubtitle": "复用另一个个人资料的连接。受 PIN 保护的个人资料需要 PIN。" + "borrowFromAnotherProfile": "使用其他用户资料的连接", + "borrowFromAnotherProfileSubtitle": "复用另一个用户资料的连接。受 PIN 保护的用户资料需要输入 PIN。" } } diff --git a/lib/main.dart b/lib/main.dart index 160d7d07..e8962aa5 100644 --- a/lib/main.dart +++ b/lib/main.dart @@ -71,6 +71,7 @@ import 'utils/managed_http_client.dart'; import 'utils/media_server_http_client.dart'; import 'utils/orientation_helper.dart'; import 'utils/watch_state_notifier.dart'; +import 'i18n/app_locale_utils.dart'; import 'i18n/strings.g.dart'; import 'widgets/app_icon.dart'; import 'focus/input_mode_tracker.dart'; @@ -362,7 +363,7 @@ Future<_StartupDependencies> _initializeStartup(SettingsService settings) async try { final savedLocale = settings.read(SettingsService.appLocale); await LocaleSettings.setLocale(savedLocale); - await initializeDateFormatting(savedLocale.languageCode, null); + await initializeDateFormatting(savedLocale.intlLocaleName, null); markStartupPhase('locale'); final futures = >[]; diff --git a/lib/screens/catalog_item_detail_screen.dart b/lib/screens/catalog_item_detail_screen.dart index 143a5104..b3f5dc3c 100644 --- a/lib/screens/catalog_item_detail_screen.dart +++ b/lib/screens/catalog_item_detail_screen.dart @@ -11,6 +11,7 @@ import '../focus/dpad_navigator.dart'; import '../focus/input_mode_tracker.dart'; import '../focus/key_event_utils.dart'; import '../focus/locked_hub_controller.dart'; +import '../i18n/app_locale_utils.dart'; import '../i18n/strings.g.dart'; import '../media/media_hub.dart'; import '../media/media_item.dart'; @@ -389,7 +390,7 @@ class _CatalogItemDetailScreenState extends State { if (item.rating != null) { score = item.rating!.toStringAsFixed(1); if (item.votes != null && item.votes! > 0) { - final compactVotes = NumberFormat.compact(locale: LocaleSettings.currentLocale.languageCode); + final compactVotes = NumberFormat.compact(locale: LocaleSettings.currentLocale.intlLocaleName); score = '$score (${compactVotes.format(item.votes)})'; } } diff --git a/lib/screens/livetv/tabs/guide_tab.dart b/lib/screens/livetv/tabs/guide_tab.dart index 66477778..66045c14 100644 --- a/lib/screens/livetv/tabs/guide_tab.dart +++ b/lib/screens/livetv/tabs/guide_tab.dart @@ -12,6 +12,7 @@ import '../../../focus/dpad_select_long_press_controller.dart'; import '../../../focus/focus_theme.dart'; import '../../../focus/input_mode_tracker.dart'; import '../../../focus/key_event_utils.dart'; +import '../../../i18n/app_locale_utils.dart'; import '../../../i18n/strings.g.dart'; import '../../../mixins/mounted_set_state_mixin.dart'; import '../../../models/livetv_channel.dart'; @@ -1040,7 +1041,7 @@ class GuideTabState extends State with MountedSetStateMixin, WidgetsBi if (target == today) return t.liveTv.today; - return DateFormat('EEEE', LocaleSettings.currentLocale.languageCode).format(target); + return DateFormat('EEEE', LocaleSettings.currentLocale.intlLocaleName).format(target); } List<(String, int)> get _timeSlots => [ diff --git a/lib/screens/settings/appearance_settings_screen.dart b/lib/screens/settings/appearance_settings_screen.dart index 17f85e16..95d7723b 100644 --- a/lib/screens/settings/appearance_settings_screen.dart +++ b/lib/screens/settings/appearance_settings_screen.dart @@ -5,6 +5,7 @@ import 'package:flutter/material.dart'; import 'package:material_symbols_icons/symbols.dart'; import 'package:provider/provider.dart'; +import '../../i18n/app_locale_utils.dart'; import '../../i18n/strings.g.dart'; import '../../providers/multi_server_provider.dart'; import '../../providers/theme_provider.dart'; @@ -243,7 +244,7 @@ class AppearanceSettingsScreen extends StatelessWidget { await SettingsService.instance.write(SettingsService.appLocale, value); unawaited(LocaleSettings.setLocale(value)); if (context.mounted) { - context.read().serverManager.updatePlexLanguage(value.languageCode); + context.read().serverManager.updatePlexLanguage(value.plexLanguageCode); } if (context.mounted) _restartApp(context); } @@ -409,8 +410,12 @@ class AppearanceSettingsScreen extends StatelessWidget { return 'Nederlands'; case AppLocale.de: return 'Deutsch'; + case AppLocale.hu: + return 'Magyar'; case AppLocale.zh: - return '中文'; + return '简体中文'; + case AppLocale.zhHant: + return '繁體中文'; case AppLocale.ko: return '한국어'; case AppLocale.es: diff --git a/lib/services/multi_server_manager.dart b/lib/services/multi_server_manager.dart index c99cf27d..5714618d 100644 --- a/lib/services/multi_server_manager.dart +++ b/lib/services/multi_server_manager.dart @@ -5,6 +5,7 @@ import 'package:connectivity_plus/connectivity_plus.dart'; import 'package:flutter/foundation.dart'; import '../connection/connection.dart'; +import '../i18n/app_locale_utils.dart'; import '../media/media_server_client.dart'; import '../exceptions/media_server_exceptions.dart'; @@ -204,7 +205,8 @@ class MultiServerManager { } } - String? get _currentPlexLanguageCode => SettingsService.instanceOrNull?.read(SettingsService.appLocale).languageCode; + String? get _currentPlexLanguageCode => + SettingsService.instanceOrNull?.read(SettingsService.appLocale).plexLanguageCode; @visibleForTesting void debugRegisterJellyfinClientForTesting(JellyfinClient client, {bool online = true}) { diff --git a/lib/services/settings_service.dart b/lib/services/settings_service.dart index 0ec70026..4f319593 100644 --- a/lib/services/settings_service.dart +++ b/lib/services/settings_service.dart @@ -8,6 +8,7 @@ import 'package:flutter/services.dart'; import '../models/hotkey_model.dart'; import 'image_cache_service.dart'; import 'package:plezy/utils/app_logger.dart'; +import '../i18n/app_locale_utils.dart'; import '../i18n/strings.g.dart'; import '../models/mpv_config_models.dart'; import '../models/external_player_models.dart'; @@ -149,19 +150,21 @@ class _EpisodePosterModePref extends EnumPref { } } -/// Stored as the language code; null/empty falls back to the device locale. +/// Stored as the locale enum name; null/empty falls back to the device locale. class _AppLocalePref extends Pref { const _AppLocalePref() : super('app_locale'); @override AppLocale readFrom(BaseSharedPreferencesService svc) { final code = svc.prefs.getString(key); - if (code == null || code.isEmpty) return AppLocaleUtils.findDeviceLocale(); + if (code == null || code.isEmpty) { + return resolvePreferredAppLocale(PlatformDispatcher.instance.locales); + } return AppLocale.values.asNameMap()[code] ?? AppLocale.en; } @override - Future writeTo(BaseSharedPreferencesService svc, AppLocale value) => svc.writeString(key, value.languageCode); + Future writeTo(BaseSharedPreferencesService svc, AppLocale value) => svc.writeString(key, value.name); } /// Mobile-only with a macOS-disabled-by-default rule; forced off on TV and non-mobile platforms. diff --git a/lib/utils/formatters.dart b/lib/utils/formatters.dart index 38ed7f28..da68ca42 100644 --- a/lib/utils/formatters.dart +++ b/lib/utils/formatters.dart @@ -1,6 +1,7 @@ import 'package:duration/duration.dart'; import 'package:duration/locale.dart'; import 'package:intl/intl.dart'; +import '../i18n/app_locale_utils.dart'; import '../i18n/strings.g.dart'; /// Formats a number with a minimum number of digits using leading zeros. @@ -128,13 +129,12 @@ String formatSyncOffset(double offsetMs) { /// Falls back to English if the locale is not supported by the duration package. DurationLocale _getDurationLocale() { final appLocale = LocaleSettings.currentLocale; - final languageCode = appLocale.languageCode; // Map supported locales to duration package locales // The duration package supports many languages, but we'll focus on the ones // that our app supports: en, de, it, nl, sv, zh try { - return DurationLocale.fromLanguageCode(languageCode) ?? const EnglishDurationLocale(); + return DurationLocale.fromLanguageCode(appLocale.durationLocaleName) ?? const EnglishDurationLocale(); } catch (e) { return const EnglishDurationLocale(); } @@ -143,7 +143,7 @@ DurationLocale _getDurationLocale() { /// Formats a [DateTime] as a clock time string, respecting the system 24-hour preference. /// Uses `DateFormat.Hm` for 24-hour format and `DateFormat.jm` for 12-hour format. String formatClockTime(DateTime time, {required bool is24Hour}) { - final locale = LocaleSettings.currentLocale.languageCode; + final locale = LocaleSettings.currentLocale.intlLocaleName; final formatter = is24Hour ? DateFormat.Hm(locale) : DateFormat.jm(locale); return formatter.format(time); } @@ -157,7 +157,7 @@ String formatRelativeDayLabel(DateTime date, {DateTime? now}) { return switch (diff) { 0 => t.liveTv.today, 1 => t.liveTv.tomorrow, - _ => DateFormat.E(LocaleSettings.currentLocale.languageCode).format(date), + _ => DateFormat.E(LocaleSettings.currentLocale.intlLocaleName).format(date), }; } @@ -197,7 +197,7 @@ String formatFullDate(String dateString) { try { final date = DateTime.parse(dateString); - final formatter = DateFormat.yMMMMd(LocaleSettings.currentLocale.languageCode); + final formatter = DateFormat.yMMMMd(LocaleSettings.currentLocale.intlLocaleName); return formatter.format(date); } catch (e) { @@ -212,7 +212,7 @@ String formatAbbreviatedDate(String dateString) { try { final date = DateTime.parse(dateString); - final formatter = DateFormat.yMMMd(LocaleSettings.currentLocale.languageCode); + final formatter = DateFormat.yMMMd(LocaleSettings.currentLocale.intlLocaleName); return formatter.format(date); } catch (e) { diff --git a/test/i18n/app_locale_utils_test.dart b/test/i18n/app_locale_utils_test.dart new file mode 100644 index 00000000..a4104e67 --- /dev/null +++ b/test/i18n/app_locale_utils_test.dart @@ -0,0 +1,65 @@ +import 'package:flutter/widgets.dart'; +import 'package:flutter_test/flutter_test.dart'; +import 'package:plezy/i18n/app_locale_utils.dart'; +import 'package:plezy/i18n/strings.g.dart'; + +void main() { + group('resolvePreferredAppLocale', () { + test('uses explicit Chinese scripts before regions', () { + expect( + resolvePreferredAppLocale([ + const Locale.fromSubtags(languageCode: 'zh', scriptCode: 'Hant', countryCode: 'TW'), + ]), + AppLocale.zhHant, + ); + expect( + resolvePreferredAppLocale([ + const Locale.fromSubtags(languageCode: 'zh', scriptCode: 'Hans', countryCode: 'TW'), + ]), + AppLocale.zh, + ); + }); + + test('maps region-only Chinese locales to the expected script', () { + for (final region in const ['TW', 'HK', 'MO']) { + expect(resolvePreferredAppLocale([Locale('zh', region)]), AppLocale.zhHant, reason: region); + } + for (final region in const ['CN', 'SG']) { + expect(resolvePreferredAppLocale([Locale('zh', region)]), AppLocale.zh, reason: region); + } + }); + + test('preserves device preference order', () { + expect( + resolvePreferredAppLocale(const [ + Locale('fr', 'FR'), + Locale.fromSubtags(languageCode: 'zh', scriptCode: 'Hant'), + ]), + AppLocale.fr, + ); + expect( + resolvePreferredAppLocale(const [Locale('xx'), Locale.fromSubtags(languageCode: 'zh', scriptCode: 'Hant')]), + AppLocale.zhHant, + ); + expect( + resolvePreferredAppLocale(const [Locale('zh'), Locale.fromSubtags(languageCode: 'zh', scriptCode: 'Hant')]), + AppLocale.zh, + ); + }); + }); + + group('AppLocaleExternalFormats', () { + test('preserves Traditional Chinese for downstream formatters and Plex', () { + expect(AppLocale.zhHant.intlLocaleName, 'zh_TW'); + expect(AppLocale.zhHant.durationLocaleName, 'zh_Hant'); + expect(AppLocale.zhHant.plexLanguageCode, 'zh-TW'); + }); + + test('keeps existing locales on their language code', () { + expect(AppLocale.hu.intlLocaleName, 'hu'); + expect(AppLocale.hu.durationLocaleName, 'hu'); + expect(AppLocale.hu.plexLanguageCode, 'hu'); + expect(AppLocale.zh.plexLanguageCode, 'zh'); + }); + }); +} diff --git a/test/i18n/empty_string_fallback_test.dart b/test/i18n/empty_string_fallback_test.dart index d20aa4a5..266d3b5f 100644 --- a/test/i18n/empty_string_fallback_test.dart +++ b/test/i18n/empty_string_fallback_test.dart @@ -2,72 +2,33 @@ import 'package:flutter_test/flutter_test.dart'; import 'package:plezy/i18n/strings.g.dart'; void main() { - test('empty overrides fall back in every affected locale', () async { + test('completed locale entries override the English fallback', () async { final english = await AppLocale.en.build(); - final commonEnglishValues = [ + final englishValues = [ english.videoControls.showPlaybackControls, english.videoControls.hidePlaybackControls, - ]; - final spotlightEnglishValues = [ english.settings.tvCornerSpotlightBackdrop, english.settings.tvCornerSpotlightBackdropDescription, ]; - expect([...commonEnglishValues, ...spotlightEnglishValues], everyElement(isNotEmpty)); + expect(englishValues, everyElement(isNotEmpty)); - const commonFallbackLocales = [ - AppLocale.bg, - AppLocale.da, - AppLocale.de, - AppLocale.es, - AppLocale.fr, - AppLocale.it, - AppLocale.ja, - AppLocale.ko, - AppLocale.nb, - AppLocale.nl, - AppLocale.pl, - AppLocale.pt, - AppLocale.ru, - AppLocale.sv, - AppLocale.zh, - ]; - const spotlightFallbackLocales = [ - AppLocale.bg, - AppLocale.da, - AppLocale.es, - AppLocale.fr, - AppLocale.it, - AppLocale.ja, - AppLocale.ko, - AppLocale.nb, - AppLocale.nl, - AppLocale.pl, - AppLocale.pt, - AppLocale.ru, - AppLocale.sv, - AppLocale.zh, - ]; - - for (final locale in commonFallbackLocales) { + for (final locale in AppLocale.values.where((locale) => locale != AppLocale.en)) { final translations = await locale.build(); - expect( - [translations.videoControls.showPlaybackControls, translations.videoControls.hidePlaybackControls], - commonEnglishValues, - reason: '${locale.languageCode} must inherit the common English values', - ); - } + final localizedValues = [ + translations.videoControls.showPlaybackControls, + translations.videoControls.hidePlaybackControls, + translations.settings.tvCornerSpotlightBackdrop, + translations.settings.tvCornerSpotlightBackdropDescription, + ]; - for (final locale in spotlightFallbackLocales) { - final translations = await locale.build(); - expect( - [ - translations.settings.tvCornerSpotlightBackdrop, - translations.settings.tvCornerSpotlightBackdropDescription, - ], - spotlightEnglishValues, - reason: '${locale.languageCode} must inherit the English spotlight values', - ); + for (var index = 0; index < localizedValues.length; index++) { + expect( + localizedValues[index], + isNot(englishValues[index]), + reason: '${locale.name} must provide its own completed translation at index $index', + ); + } } }); } diff --git a/test/services/settings_service_test.dart b/test/services/settings_service_test.dart index 5c0e9385..891ff708 100644 --- a/test/services/settings_service_test.dart +++ b/test/services/settings_service_test.dart @@ -2,6 +2,7 @@ import 'dart:async'; import 'package:flutter/services.dart'; import 'package:flutter_test/flutter_test.dart'; +import 'package:plezy/i18n/strings.g.dart'; import 'package:plezy/models/audio_quality_preset.dart'; import 'package:plezy/models/hotkey_model.dart'; import 'package:plezy/services/base_shared_preferences_service.dart'; @@ -164,6 +165,32 @@ void main() { }); }); + group('SettingsService app locale', () { + test('persists script-specific locales by enum name', () async { + var settings = await SettingsService.getInstance(); + + await settings.write(SettingsService.appLocale, AppLocale.zhHant); + expect(settings.prefs.getString(SettingsService.appLocale.key), 'zhHant'); + + BaseSharedPreferencesService.resetForTesting(); + SettingsService.resetForTesting(); + settings = await SettingsService.getInstance(); + + expect(settings.read(SettingsService.appLocale), AppLocale.zhHant); + }); + + test('continues to read legacy language-code values', () async { + var settings = await SettingsService.getInstance(); + await settings.prefs.setString(SettingsService.appLocale.key, 'zh'); + + BaseSharedPreferencesService.resetForTesting(); + SettingsService.resetForTesting(); + settings = await SettingsService.getInstance(); + + expect(settings.read(SettingsService.appLocale), AppLocale.zh); + }); + }); + group('SettingsService platform gates', () { test('audio passthrough stays available on desktop and Apple TV', () { expect(PlatformDetector.supportsAudioPassthrough(), isTrue); diff --git a/test/utils/formatters_test.dart b/test/utils/formatters_test.dart index 3e2292c4..36259bec 100644 --- a/test/utils/formatters_test.dart +++ b/test/utils/formatters_test.dart @@ -1,7 +1,12 @@ +import 'package:intl/intl.dart'; import 'package:flutter_test/flutter_test.dart'; +import 'package:plezy/i18n/app_locale_utils.dart'; +import 'package:plezy/i18n/strings.g.dart'; import 'package:plezy/utils/formatters.dart'; void main() { + setUp(() => LocaleSettings.setLocaleSync(AppLocale.en)); + group('padNumber', () { test('pads with leading zeros to given width', () { expect(padNumber(5, 3), '005'); @@ -100,6 +105,26 @@ void main() { }); }); + group('Traditional Chinese formatting', () { + test('uses script-specific compact-number symbols', () async { + await LocaleSettings.setLocale(AppLocale.zh); + expect(NumberFormat.compact(locale: LocaleSettings.currentLocale.intlLocaleName).format(10000), '1万'); + + await LocaleSettings.setLocale(AppLocale.zhHant); + expect(NumberFormat.compact(locale: LocaleSettings.currentLocale.intlLocaleName).format(10000), '1萬'); + }); + + test('uses script-specific textual duration units', () async { + const duration = Duration(hours: 1, minutes: 2); + + await LocaleSettings.setLocale(AppLocale.zh); + expect(formatDurationTextual(duration.inMilliseconds), '1小时 2分'); + + await LocaleSettings.setLocale(AppLocale.zhHant); + expect(formatDurationTextual(duration.inMilliseconds), '1小時 2分鐘'); + }); + }); + group('toBulletedString', () { test('joins with " · " separator', () { expect(toBulletedString(['a', 'b', 'c']), 'a · b · c'); diff --git a/test/widgets/video_settings_sheet_test.dart b/test/widgets/video_settings_sheet_test.dart index 859d76fa..e45e9965 100644 --- a/test/widgets/video_settings_sheet_test.dart +++ b/test/widgets/video_settings_sheet_test.dart @@ -92,7 +92,7 @@ void main() { await tester.pumpAndSettle(); final dialog = find.byType(AlertDialog); - for (final label in ['Нет', 'Да', 'Масштабировать', 'Принудительно', 'Удалить стили']) { + for (final label in ['Нет', 'Да', 'Масштаб', 'Принудительно', 'Удалить стили']) { expect(find.descendant(of: dialog, matching: find.text(label)), findsOneWidget); } });