From 66628e1bca3e2d017830938391b964f1f7885374 Mon Sep 17 00:00:00 2001 From: edde746 <86283021+edde746@users.noreply.github.com> Date: Fri, 6 Mar 2026 22:34:45 +0100 Subject: [PATCH] feat: add pt, ja, ru, pl, da, nb translations --- lib/i18n/da.i18n.json | 500 +++++ lib/i18n/ja.i18n.json | 902 +++++++++ lib/i18n/nb.i18n.json | 902 +++++++++ lib/i18n/pl.i18n.json | 902 +++++++++ lib/i18n/pt.i18n.json | 902 +++++++++ lib/i18n/ru.i18n.json | 902 +++++++++ lib/i18n/strings.g.dart | 96 +- lib/i18n/strings_da.g.dart | 2125 +++++++++++++++++++++ lib/i18n/strings_ja.g.dart | 2125 +++++++++++++++++++++ lib/i18n/strings_nb.g.dart | 2125 +++++++++++++++++++++ lib/i18n/strings_pl.g.dart | 2125 +++++++++++++++++++++ lib/i18n/strings_pt.g.dart | 2125 +++++++++++++++++++++ lib/i18n/strings_ru.g.dart | 2125 +++++++++++++++++++++ lib/screens/settings/settings_screen.dart | 12 + 14 files changed, 17865 insertions(+), 3 deletions(-) create mode 100644 lib/i18n/da.i18n.json create mode 100644 lib/i18n/ja.i18n.json create mode 100644 lib/i18n/nb.i18n.json create mode 100644 lib/i18n/pl.i18n.json create mode 100644 lib/i18n/pt.i18n.json create mode 100644 lib/i18n/ru.i18n.json create mode 100644 lib/i18n/strings_da.g.dart create mode 100644 lib/i18n/strings_ja.g.dart create mode 100644 lib/i18n/strings_nb.g.dart create mode 100644 lib/i18n/strings_pl.g.dart create mode 100644 lib/i18n/strings_pt.g.dart create mode 100644 lib/i18n/strings_ru.g.dart diff --git a/lib/i18n/da.i18n.json b/lib/i18n/da.i18n.json new file mode 100644 index 00000000..0bb440e1 --- /dev/null +++ b/lib/i18n/da.i18n.json @@ -0,0 +1,500 @@ +{ + "app": { "title": "Plezy" }, + "auth": { + "signInWithPlex": "Log ind med Plex", + "showQRCode": "Vis QR-kode", + "authenticate": "Godkend", + "debugEnterToken": "Debug: Indtast Plex-token", + "plexTokenLabel": "Plex-godkendelsestoken", + "plexTokenHint": "Indtast dit Plex.tv-token", + "authenticationTimeout": "Godkendelse fik timeout. Prøv igen.", + "scanQRToSignIn": "Scan denne QR-kode for at logge ind", + "waitingForAuth": "Venter på godkendelse...\nFærdiggør login i din browser.", + "useBrowser": "Brug browser" + }, + "common": { + "cancel": "Annuller", "save": "Gem", "close": "Luk", "clear": "Ryd", "reset": "Nulstil", + "later": "Senere", "submit": "Indsend", "confirm": "Bekræft", "retry": "Prøv igen", + "logout": "Log ud", "unknown": "Ukendt", "refresh": "Opdater", "yes": "Ja", "no": "Nej", + "delete": "Slet", "shuffle": "Bland", "addTo": "Tilføj til...", "createNew": "Opret ny", + "remove": "Fjern", "paste": "Indsæt", "connect": "Forbind", "disconnect": "Afbryd", + "play": "Afspil", "pause": "Pause", "resume": "Genoptag", "error": "Fejl", + "search": "Søg", "home": "Hjem", "back": "Tilbage", "settings": "Indstillinger", + "mute": "Lydløs", "ok": "OK", "loading": "Indlæser...", "reconnect": "Genopret forbindelse", + "exitConfirmTitle": "Luk app?", "exitConfirmMessage": "Er du sikker på, at du vil afslutte?", + "dontAskAgain": "Spørg ikke igen", "exit": "Afslut", "viewAll": "Vis alle", + "checkingNetwork": "Tjekker netværk...", "refreshingServers": "Opdaterer servere...", + "loadingServers": "Indlæser servere...", "connectingToServers": "Forbinder til servere...", + "startingOfflineMode": "Starter offlinetilstand..." + }, + "screens": { "licenses": "Licenser", "switchProfile": "Skift profil", "subtitleStyling": "Undertekststil", "mpvConfig": "mpv.conf", "logs": "Logs" }, + "update": { + "available": "Opdatering tilgængelig", "versionAvailable": "Version ${version} er tilgængelig", + "currentVersion": "Nuværende: ${version}", "skipVersion": "Spring denne version over", + "viewRelease": "Vis udgivelse", "latestVersion": "Du har den nyeste version", + "checkFailed": "Kunne ikke søge efter opdateringer" + }, + "settings": { + "title": "Indstillinger", "language": "Sprog", "theme": "Tema", "appearance": "Udseende", + "videoPlayback": "Videoafspilning", "advanced": "Avanceret", + "episodePosterMode": "Episodeplakatstil", "seriesPoster": "Serieplakat", + "seriesPosterDescription": "Vis seriens plakat for alle episoder", + "seasonPoster": "Sæsonplakat", "seasonPosterDescription": "Vis sæsonspecifik plakat for episoder", + "episodeThumbnail": "Episodeminiature", "episodeThumbnailDescription": "Vis 16:9 episodeskærmbilledeminiaturer", + "showHeroSectionDescription": "Vis karrusel med udvalgt indhold på startskærmen", + "secondsLabel": "Sekunder", "minutesLabel": "Minutter", "secondsShort": "s", "minutesShort": "m", + "durationHint": "Indtast varighed (${min}-${max})", + "systemTheme": "System", "systemThemeDescription": "Følg systemindstillinger", + "lightTheme": "Lys", "darkTheme": "Mørk", "oledTheme": "OLED", "oledThemeDescription": "Ren sort for OLED-skærme", + "libraryDensity": "Bibliotekstæthed", "compact": "Kompakt", "compactDescription": "Mindre kort, flere synlige elementer", + "normal": "Normal", "normalDescription": "Standardstørrelse", + "comfortable": "Komfortabel", "comfortableDescription": "Større kort, færre synlige elementer", + "viewMode": "Visningstilstand", "gridView": "Gitter", "gridViewDescription": "Vis elementer i gitterlayout", + "listView": "Liste", "listViewDescription": "Vis elementer i listelayout", + "showHeroSection": "Vis hero-sektion", "useGlobalHubs": "Brug Plex Home-layout", + "useGlobalHubsDescription": "Vis startsidehubbe som den officielle Plex-klient. Når slået fra, vises anbefalinger per bibliotek.", + "showServerNameOnHubs": "Vis servernavn på hubbe", + "showServerNameOnHubsDescription": "Vis altid servernavnet i hubtitler. Når slået fra, vises kun ved duplikerede navne.", + "alwaysKeepSidebarOpen": "Hold altid sidepanelet åbent", + "alwaysKeepSidebarOpenDescription": "Sidepanelet forbliver udvidet, og indholdsområdet tilpasser sig", + "showUnwatchedCount": "Vis antal usete", + "showUnwatchedCountDescription": "Vis antal usete episoder på serier og sæsoner", + "hideSpoilers": "Skjul spoilere for usete episoder", + "hideSpoilersDescription": "Slør miniaturebilleder og skjul beskrivelser for episoder, du ikke har set endnu", + "playerBackend": "Afspillerbackend", "exoPlayer": "ExoPlayer (Anbefalet)", + "exoPlayerDescription": "Android-native afspiller med bedre hardwareunderstøttelse", + "mpv": "mpv", "mpvDescription": "Avanceret afspiller med flere funktioner og ASS-undertekstunderstøttelse", + "hardwareDecoding": "Hardwaredekodning", "hardwareDecodingDescription": "Brug hardwareacceleration når tilgængelig", + "bufferSize": "Bufferstørrelse", "bufferSizeMB": "${size}MB", "bufferSizeAuto": "Auto (Anbefalet)", + "bufferSizeWarning": "Din enhed har ${heap}MB hukommelse. En buffer på ${size}MB kan forårsage afspilningsproblemer.", + "subtitleStyling": "Undertekststil", "subtitleStylingDescription": "Tilpas underteksters udseende", + "smallSkipDuration": "Kort spring-varighed", "largeSkipDuration": "Lang spring-varighed", + "secondsUnit": "${seconds} sekunder", "defaultSleepTimer": "Standard sove-timer", + "minutesUnit": "${minutes} minutter", + "rememberTrackSelections": "Husk sporvalg per serie/film", + "rememberTrackSelectionsDescription": "Gem automatisk lyd- og undertekstsprogpræferencer når du skifter spor under afspilning", + "clickVideoTogglesPlayback": "Klik på video skifter afspil/pause", + "clickVideoTogglesPlaybackDescription": "Når aktiveret, afspiller/pauser klik på videoen. Ellers vises/skjules betjeningselementer.", + "videoPlayerControls": "Videoafspillerkontroller", "keyboardShortcuts": "Tastaturgenveje", + "keyboardShortcutsDescription": "Tilpas tastaturgenveje", + "videoPlayerNavigation": "Videoafspillernavigation", + "videoPlayerNavigationDescription": "Brug piletaster til at navigere videoafspillerkontroller", + "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", + "clearCache": "Ryd cache", + "clearCacheDescription": "Dette rydder alle cachelagrede billeder og data. Appen kan tage længere tid om at indlæse indhold efter rydning.", + "clearCacheSuccess": "Cache ryddet", "resetSettings": "Nulstil indstillinger", + "resetSettingsDescription": "Alle indstillinger nulstilles til standardværdier. Denne handling kan ikke fortrydes.", + "resetSettingsSuccess": "Indstillinger nulstillet", "shortcutsReset": "Genveje nulstillet til standard", + "about": "Om", "aboutDescription": "App-information og licenser", + "updates": "Opdateringer", "updateAvailable": "Opdatering tilgængelig", + "checkForUpdates": "Søg efter opdateringer", + "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}", + "autoSkip": "Auto-spring", "autoSkipIntro": "Auto-spring intro", + "autoSkipIntroDescription": "Spring automatisk intromarkører over efter få sekunder", + "autoSkipCredits": "Auto-spring rulletekster", + "autoSkipCreditsDescription": "Spring automatisk rulletekster over og afspil næste episode", + "autoSkipDelay": "Auto-spring forsinkelse", + "autoSkipDelayDescription": "Vent ${seconds} sekunder før automatisk spring", + "downloads": "Downloads", "downloadLocationDescription": "Vælg hvor downloadet indhold skal gemmes", + "downloadLocationDefault": "Standard (App-lagring)", "downloadLocationCustom": "Brugerdefineret placering", + "selectFolder": "Vælg mappe", "resetToDefault": "Nulstil til standard", + "currentPath": "Nuværende: ${path}", "downloadLocationChanged": "Downloadplacering ændret", + "downloadLocationReset": "Downloadplacering nulstillet", + "downloadLocationInvalid": "Valgt mappe er ikke skrivbar", + "downloadLocationSelectError": "Kunne ikke vælge mappe", + "downloadOnWifiOnly": "Download kun på WiFi", + "downloadOnWifiOnlyDescription": "Forhindre downloads på mobildata", + "cellularDownloadBlocked": "Downloads er deaktiveret på mobildata. Opret forbindelse til WiFi eller ændr indstillingen.", + "maxVolume": "Maksimal lydstyrke", + "maxVolumeDescription": "Tillad lydstyrkeforstærkning over 100% for stille medier", + "maxVolumePercent": "${percent}%", + "discordRichPresence": "Discord Rich Presence", + "discordRichPresenceDescription": "Vis hvad du ser på Discord", + "autoPip": "Auto billede-i-billede", + "autoPipDescription": "Gå automatisk til billede-i-billede når du forlader appen under afspilning", + "matchContentFrameRate": "Match indholdets billedhastighed", + "matchContentFrameRateDescription": "Juster skærmens opdateringshastighed til videoindhold for at reducere hakken og spare batteri", + "tunneledPlayback": "Tunneleret afspilning", + "tunneledPlaybackDescription": "Brug hardwareaccelereret videotunneling. Deaktiver hvis du ser sort skærm med lyd på HDR-indhold", + "requireProfileSelectionOnOpen": "Spørg om profil ved åbning", + "requireProfileSelectionOnOpenDescription": "Vis profilvalg hver gang appen åbnes", + "confirmExitOnBack": "Bekræft før lukning", + "confirmExitOnBackDescription": "Vis bekræftelsesdialog ved tryk på tilbage for at lukke appen", + "showNavBarLabels": "Vis navigationsbarlabels", + "showNavBarLabelsDescription": "Vis tekstlabels under navigationsbarikoner" + }, + "search": { + "hint": "Søg film, serier, musik...", "tryDifferentTerm": "Prøv en anden søgning", + "searchYourMedia": "Søg i dine medier", "enterTitleActorOrKeyword": "Indtast titel, skuespiller eller nøgleord" + }, + "hotkeys": { + "setShortcutFor": "Indstil genvej for ${actionName}", "clearShortcut": "Ryd genvej", + "actions": { + "playPause": "Afspil/Pause", "volumeUp": "Lydstyrke op", "volumeDown": "Lydstyrke ned", + "seekForward": "Spol frem (${seconds}s)", "seekBackward": "Spol tilbage (${seconds}s)", + "fullscreenToggle": "Skift fuldskærm", "muteToggle": "Skift lydløs", + "subtitleToggle": "Skift undertekster", "audioTrackNext": "Næste lydspor", + "subtitleTrackNext": "Næste undertekstspor", "chapterNext": "Næste kapitel", + "chapterPrevious": "Forrige kapitel", "speedIncrease": "Øg hastighed", + "speedDecrease": "Sænk hastighed", "speedReset": "Nulstil hastighed", + "subSeekNext": "Søg til næste undertekst", "subSeekPrev": "Søg til forrige undertekst", + "shaderToggle": "Skift shadere", "skipMarker": "Spring intro/rulletekster over" + } + }, + "pinEntry": { "enterPin": "Indtast PIN", "showPin": "Vis PIN", "hidePin": "Skjul PIN" }, + "fileInfo": { + "title": "Filinfo", "video": "Video", "audio": "Lyd", "file": "Fil", "advanced": "Avanceret", + "codec": "Codec", "resolution": "Opløsning", "bitrate": "Bitrate", "frameRate": "Billedhastighed", + "aspectRatio": "Billedformat", "profile": "Profil", "bitDepth": "Bitdybde", + "colorSpace": "Farverum", "colorRange": "Farveområde", "colorPrimaries": "Farveprimærer", + "chromaSubsampling": "Chroma-subsampling", "channels": "Kanaler", "path": "Sti", + "size": "Størrelse", "container": "Container", "duration": "Varighed", + "optimizedForStreaming": "Optimeret til streaming", "has64bitOffsets": "64-bit offsets" + }, + "mediaMenu": { + "markAsWatched": "Markér som set", "markAsUnwatched": "Markér som uset", + "removeFromContinueWatching": "Fjern fra Fortsæt med at se", + "goToSeries": "Gå til serie", "goToSeason": "Gå til sæson", + "shufflePlay": "Afspil tilfældigt", "fileInfo": "Filinfo", + "deleteFromServer": "Slet fra server", + "confirmDelete": "Dette sletter permanent disse medier og filer fra din server. Dette kan ikke fortrydes.", + "deleteMultipleWarning": "Dette inkluderer alle episoder og deres filer.", + "mediaDeletedSuccessfully": "Medieelement slettet", "mediaFailedToDelete": "Kunne ikke slette medieelement", + "rate": "Bedøm" + }, + "accessibility": { + "mediaCardMovie": "${title}, film", "mediaCardShow": "${title}, TV-serie", + "mediaCardEpisode": "${title}, ${episodeInfo}", "mediaCardSeason": "${title}, ${seasonInfo}", + "mediaCardWatched": "set", "mediaCardPartiallyWatched": "${percent} procent set", + "mediaCardUnwatched": "uset", "tapToPlay": "Tryk for at afspille" + }, + "tooltips": { + "shufflePlay": "Afspil tilfældigt", "playTrailer": "Afspil trailer", + "markAsWatched": "Markér som set", "markAsUnwatched": "Markér som uset" + }, + "videoControls": { + "audioLabel": "Lyd", "subtitlesLabel": "Undertekster", "resetToZero": "Nulstil til 0ms", + "addTime": "+${amount}${unit}", "minusTime": "-${amount}${unit}", + "playsLater": "${label} afspilles senere", "playsEarlier": "${label} afspilles tidligere", + "noOffset": "Ingen forskydning", "letterbox": "Letterbox", "fillScreen": "Fyld skærm", + "stretch": "Stræk", "lockRotation": "Lås rotation", "unlockRotation": "Lås rotation op", + "timerActive": "Timer aktiv", "playbackWillPauseIn": "Afspilning pauses om ${duration}", + "sleepTimerCompleted": "Sove-timer fuldført — afspilning sat på pause", + "stillWatching": "Ser du stadig?", "pausingIn": "Pauser om ${seconds}s", + "continueWatching": "Fortsæt", "autoPlayNext": "Auto-afspil næste", "playNext": "Afspil næste", + "playButton": "Afspil", "pauseButton": "Pause", + "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", "settingsButton": "Videoindstillinger", + "audioTrackButton": "Lydspor", "subtitlesButton": "Undertekster", + "tracksButton": "Lyd og undertekster", "chaptersButton": "Kapitler", + "versionsButton": "Videoversioner", "pipButton": "Billede-i-billede-tilstand", + "aspectRatioButton": "Billedformat", "ambientLighting": "Omgivelsesbelysning", + "ambientLightingOn": "Aktivér omgivelsesbelysning", "ambientLightingOff": "Deaktivér omgivelsesbelysning", + "fullscreenButton": "Fuldskærm", "exitFullscreenButton": "Forlad fuldskærm", + "alwaysOnTopButton": "Altid øverst", "rotationLockButton": "Rotationslås", + "timelineSlider": "Videotidslinje", "volumeSlider": "Lydstyrkeniveau", + "endsAt": "Slutter kl. ${time}", "pipActive": "Afspiller i billede-i-billede", + "pipFailed": "Billede-i-billede kunne ikke starte", + "pipErrors": { + "androidVersion": "Kræver Android 8.0 eller nyere", "iosVersion": "Kræver iOS 15.0 eller nyere", + "permissionDisabled": "Billede-i-billede-tilladelse er deaktiveret. Aktivér i Indstillinger > Apps > Plezy > Billede-i-billede", + "notSupported": "Enheden understøtter ikke billede-i-billede", + "voSwitchFailed": "Kunne ikke skifte videooutput til billede-i-billede", + "failed": "Billede-i-billede kunne ikke starte", "unknown": "Der opstod en fejl: ${error}" + }, + "chapters": "Kapitler", "noChaptersAvailable": "Ingen kapitler tilgængelige", + "queue": "Kø", "noQueueItems": "Ingen elementer i køen" + }, + "userStatus": { "admin": "Administrator", "restricted": "Begrænset", "protected": "Beskyttet", "current": "NUVÆRENDE" }, + "messages": { + "markedAsWatched": "Markeret som set", "markedAsUnwatched": "Markeret som uset", + "markedAsWatchedOffline": "Markeret som set (synkroniseres online)", + "markedAsUnwatchedOffline": "Markeret som uset (synkroniseres online)", + "removedFromContinueWatching": "Fjernet fra Fortsæt med at se", + "errorLoading": "Fejl: ${error}", "fileInfoNotAvailable": "Filinfo ikke tilgængelig", + "errorLoadingFileInfo": "Fejl ved indlæsning af filinfo: ${error}", + "errorLoadingSeries": "Fejl ved indlæsning af serie", "errorLoadingSeason": "Fejl ved indlæsning af sæson", + "musicNotSupported": "Musikafspilning understøttes endnu ikke", + "logsCleared": "Logs ryddet", "logsCopied": "Logs kopieret til udklipsholder", + "noLogsAvailable": "Ingen logs tilgængelige", + "libraryScanning": "Scanner \"${title}\"...", + "libraryScanStarted": "Biblioteksscanning startet for \"${title}\"", + "libraryScanFailed": "Kunne ikke scanne bibliotek: ${error}", + "metadataRefreshing": "Opdaterer metadata for \"${title}\"...", + "metadataRefreshStarted": "Metadataopdatering startet for \"${title}\"", + "metadataRefreshFailed": "Kunne ikke opdatere metadata: ${error}", + "logoutConfirm": "Er du sikker på, at du vil logge ud?", + "noSeasonsFound": "Ingen sæsoner fundet", "noEpisodesFound": "Ingen episoder fundet i første sæson", + "noEpisodesFoundGeneral": "Ingen episoder fundet", "noResultsFound": "Ingen resultater fundet", + "sleepTimerSet": "Sove-timer indstillet til ${label}", "noItemsAvailable": "Ingen elementer tilgængelige", + "failedToCreatePlayQueueNoItems": "Kunne ikke oprette afspilningskø — ingen elementer", + "failedPlayback": "Kunne ikke ${action}: ${error}", + "switchingToCompatiblePlayer": "Skifter til kompatibel afspiller...", + "logsUploaded": "Logs uploadet", "logsUploadFailed": "Kunne ikke uploade logs", "logId": "Log-ID" + }, + "subtitlingStyling": { + "stylingOptions": "Stilindstillinger", "fontSize": "Skriftstørrelse", "textColor": "Tekstfarve", + "borderSize": "Kantstørrelse", "borderColor": "Kantfarve", + "backgroundOpacity": "Baggrundsgennemsigtighed", "backgroundColor": "Baggrundsfarve", "position": "Position" + }, + "mpvConfig": { + "title": "mpv.conf", "description": "Avancerede videoafspillerindstillinger", + "presets": "Forudindstillinger", "noPresets": "Ingen gemte forudindstillinger", + "saveAsPreset": "Gem som forudindstilling...", "presetName": "Forudindstillingsnavn", + "presetNameHint": "Indtast et navn for denne forudindstilling", + "loadPreset": "Indlæs", "deletePreset": "Slet", + "presetSaved": "Forudindstilling gemt", "presetLoaded": "Forudindstilling indlæst", + "presetDeleted": "Forudindstilling slettet", + "confirmDeletePreset": "Er du sikker på, at du vil slette denne forudindstilling?", + "configPlaceholder": "gpu-api=vulkan\nhwdec=auto\n# comment" + }, + "dialog": { "confirmAction": "Bekræft handling" }, + "discover": { + "title": "Opdag", "switchProfile": "Skift profil", "noContentAvailable": "Intet indhold tilgængeligt", + "addMediaToLibraries": "Tilføj medier til dine biblioteker", "continueWatching": "Fortsæt med at se", + "playEpisode": "S${season}E${episode}", "overview": "Oversigt", "cast": "Rollebesætning", + "extras": "Trailere og ekstra", "seasons": "Sæsoner", "studio": "Studie", "rating": "Bedømmelse", + "episodeCount": "${count} episoder", "watchedProgress": "${watched}/${total} set", + "movie": "Film", "tvShow": "TV-serie", "minutesLeft": "${minutes} min tilbage" + }, + "errors": { + "searchFailed": "Søgning mislykkedes: ${error}", + "connectionTimeout": "Forbindelsestimeout ved indlæsning af ${context}", + "connectionFailed": "Kunne ikke forbinde til Plex-server", + "failedToLoad": "Kunne ikke indlæse ${context}: ${error}", "noClientAvailable": "Ingen klient tilgængelig", + "authenticationFailed": "Godkendelse mislykkedes: ${error}", + "couldNotLaunchUrl": "Kunne ikke åbne godkendelses-URL", "pleaseEnterToken": "Indtast et token", + "invalidToken": "Ugyldigt token", "failedToVerifyToken": "Kunne ikke verificere token: ${error}", + "failedToSwitchProfile": "Kunne ikke skifte til ${displayName}" + }, + "libraries": { + "title": "Biblioteker", "scanLibraryFiles": "Scan biblioteksfiler", "scanLibrary": "Scan bibliotek", + "analyze": "Analysér", "analyzeLibrary": "Analysér bibliotek", "refreshMetadata": "Opdater metadata", + "emptyTrash": "Tøm papirkurv", "emptyingTrash": "Tømmer papirkurv for \"${title}\"...", + "trashEmptied": "Papirkurv tømt for \"${title}\"", + "failedToEmptyTrash": "Kunne ikke tømme papirkurv: ${error}", + "analyzing": "Analyserer \"${title}\"...", "analysisStarted": "Analyse startet for \"${title}\"", + "failedToAnalyze": "Kunne ikke analysere bibliotek: ${error}", + "noLibrariesFound": "Ingen biblioteker fundet", "thisLibraryIsEmpty": "Dette bibliotek er tomt", + "all": "Alle", "clearAll": "Ryd alle", + "scanLibraryConfirm": "Er du sikker på, at du vil scanne \"${title}\"?", + "analyzeLibraryConfirm": "Er du sikker på, at du vil analysere \"${title}\"?", + "refreshMetadataConfirm": "Er du sikker på, at du vil opdatere metadata for \"${title}\"?", + "emptyTrashConfirm": "Er du sikker på, at du vil tømme papirkurven for \"${title}\"?", + "manageLibraries": "Administrer biblioteker", "sort": "Sortér", "sortBy": "Sortér efter", + "filters": "Filtre", "confirmActionMessage": "Er du sikker på, at du vil udføre denne handling?", + "showLibrary": "Vis bibliotek", "hideLibrary": "Skjul bibliotek", + "libraryOptions": "Biblioteksindstillinger", "content": "biblioteksindhold", + "selectLibrary": "Vælg bibliotek", "filtersWithCount": "Filtre (${count})", + "noRecommendations": "Ingen anbefalinger tilgængelige", + "noCollections": "Ingen samlinger i dette bibliotek", + "noFoldersFound": "Ingen mapper fundet", "folders": "mapper", + "tabs": { "recommended": "Anbefalet", "browse": "Gennemse", "collections": "Samlinger", "playlists": "Playlister" }, + "groupings": { "all": "Alle", "movies": "Film", "shows": "TV-serier", "seasons": "Sæsoner", "episodes": "Episoder", "folders": "Mapper" } + }, + "about": { + "title": "Om", "openSourceLicenses": "Open source-licenser", "versionLabel": "Version ${version}", + "appDescription": "En smuk Plex-klient til Flutter", + "viewLicensesDescription": "Se licenser for tredjepartsbiblioteker" + }, + "serverSelection": { + "allServerConnectionsFailed": "Kunne ikke forbinde til nogen servere. Tjek dit netværk og prøv igen.", + "noServersFoundForAccount": "Ingen servere fundet for ${username} (${email})", + "failedToLoadServers": "Kunne ikke indlæse servere: ${error}" + }, + "hubDetail": { "title": "Titel", "releaseYear": "Udgivelsesår", "dateAdded": "Tilføjelsesdato", "rating": "Bedømmelse", "noItemsFound": "Ingen elementer fundet" }, + "logs": { "clearLogs": "Ryd logs", "copyLogs": "Kopiér logs", "uploadLogs": "Upload logs", "error": "Fejl:", "stackTrace": "Staksporing:" }, + "licenses": { "relatedPackages": "Relaterede pakker", "license": "Licens", "licenseNumber": "Licens ${number}", "licensesCount": "${count} licenser" }, + "navigation": { "libraries": "Biblioteker", "downloads": "Downloads", "liveTv": "Live TV" }, + "liveTv": { + "title": "Live TV", "channels": "Kanaler", "guide": "Guide", "noChannels": "Ingen kanaler tilgængelige", + "noDvr": "Ingen DVR konfigureret på nogen server", "tuneFailed": "Kunne ikke tune kanal", + "loading": "Indlæser kanaler...", "nowPlaying": "Afspiller nu", "noPrograms": "Ingen programdata tilgængelig", + "channelNumber": "Kn. ${number}", "live": "LIVE", "hd": "HD", "premiere": "NY", + "reloadGuide": "Genindlæs guide", "allChannels": "Alle kanaler", "now": "Nu", "today": "I dag", + "midnight": "Midnat", "overnight": "Nat", "morning": "Morgen", "daytime": "Dagtid", + "evening": "Aften", "lateNight": "Sen aften", "whatsOn": "Hvad der kører", "watchChannel": "Se kanal" + }, + "collections": { + "title": "Samlinger", "collection": "Samling", "empty": "Samlingen er tom", + "unknownLibrarySection": "Kan ikke slette: Ukendt bibliotekssektion", + "deleteCollection": "Slet samling", + "deleteConfirm": "Er du sikker på, at du vil slette \"${title}\"? Denne handling kan ikke fortrydes.", + "deleted": "Samling slettet", "deleteFailed": "Kunne ikke slette samling", + "deleteFailedWithError": "Kunne ikke slette samling: ${error}", + "failedToLoadItems": "Kunne ikke indlæse samlingselementer: ${error}", + "selectCollection": "Vælg samling", "collectionName": "Samlingsnavn", + "enterCollectionName": "Indtast samlingsnavn", "addedToCollection": "Tilføjet til samling", + "errorAddingToCollection": "Kunne ikke tilføje til samling", "created": "Samling oprettet", + "removeFromCollection": "Fjern fra samling", + "removeFromCollectionConfirm": "Fjern \"${title}\" fra denne samling?", + "removedFromCollection": "Fjernet fra samling", + "removeFromCollectionFailed": "Kunne ikke fjerne fra samling", + "removeFromCollectionError": "Fejl ved fjernelse fra samling: ${error}" + }, + "playlists": { + "title": "Playlister", "playlist": "Playliste", "noPlaylists": "Ingen playlister fundet", + "create": "Opret playliste", "playlistName": "Playlistenavn", "enterPlaylistName": "Indtast playlistenavn", + "delete": "Slet playliste", "removeItem": "Fjern fra playliste", "smartPlaylist": "Smart playliste", + "itemCount": "${count} elementer", "oneItem": "1 element", "emptyPlaylist": "Denne playliste er tom", + "deleteConfirm": "Slet playliste?", "deleteMessage": "Er du sikker på, at du vil slette \"${name}\"?", + "created": "Playliste oprettet", "deleted": "Playliste slettet", + "itemAdded": "Tilføjet til playliste", "itemRemoved": "Fjernet fra playliste", + "selectPlaylist": "Vælg playliste", "errorCreating": "Kunne ikke oprette playliste", + "errorDeleting": "Kunne ikke slette playliste", "errorLoading": "Kunne ikke indlæse playlister", + "errorAdding": "Kunne ikke tilføje til playliste", + "errorReordering": "Kunne ikke ændre rækkefølge på playlisteelement", + "errorRemoving": "Kunne ikke fjerne fra playliste" + }, + "watchTogether": { + "title": "Se sammen", "description": "Se indhold synkroniseret med venner og familie", + "createSession": "Opret session", "creating": "Opretter...", + "joinSession": "Deltag i session", "joining": "Deltager...", + "controlMode": "Kontroltilstand", "controlModeQuestion": "Hvem kan styre afspilning?", + "hostOnly": "Kun vært", "anyone": "Alle", "hostingSession": "Vært for session", + "inSession": "I session", "sessionCode": "Sessionskode", + "hostControlsPlayback": "Vært styrer afspilning", "anyoneCanControl": "Alle kan styre afspilning", + "hostControls": "Værtskontrol", "anyoneControls": "Alle styrer", + "participants": "Deltagere", "host": "Vært", "hostBadge": "HOST", + "youAreHost": "Du er vært", "watchingWithOthers": "Ser med andre", + "endSession": "Afslut session", "leaveSession": "Forlad session", + "endSessionQuestion": "Afslut session?", "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.", + "end": "Afslut", "leave": "Forlad", "syncing": "Synkroniserer...", + "joinWatchSession": "Deltag i se-session", "enterCodeHint": "Indtast 8-tegns kode", + "pasteFromClipboard": "Indsæt fra udklipsholder", "pleaseEnterCode": "Indtast en sessionskode", + "codeMustBe8Chars": "Sessionskode skal være 8 tegn", + "joinInstructions": "Indtast sessionskoden delt af værten for at deltage i se-sessionen.", + "failedToCreate": "Kunne ikke oprette session", "failedToJoin": "Kunne ikke deltage i session", + "sessionCodeCopied": "Sessionskode kopieret til udklipsholder", + "relayUnreachable": "Relay-serveren kan ikke nås. Dette kan skyldes, at din udbyder blokerer forbindelsen. Du kan stadig prøve, men Se sammen virker muligvis ikke.", + "reconnectingToHost": "Genopretter forbindelse til vært...", + "currentPlayback": "Nuværende afspilning", "joinCurrentPlayback": "Deltag i nuværende afspilning", + "joinCurrentPlaybackDescription": "Hop tilbage til det værten ser nu", + "failedToOpenCurrentPlayback": "Kunne ikke åbne nuværende afspilning", + "participantJoined": "${name} deltog", "participantLeft": "${name} forlod" + }, + "downloads": { + "title": "Downloads", "manage": "Administrer", "tvShows": "TV-serier", "movies": "Film", + "noDownloads": "Ingen downloads endnu", + "noDownloadsDescription": "Downloadet indhold vises her til offlinevisning", + "downloadNow": "Download", "deleteDownload": "Slet download", "retryDownload": "Prøv download igen", + "downloadQueued": "Download i kø", "episodesQueued": "${count} episoder i downloadkø", + "downloadDeleted": "Download slettet", + "deleteConfirm": "Er du sikker på, at du vil slette \"${title}\"? Den downloadede fil fjernes fra din enhed.", + "deletingWithProgress": "Sletter ${title}... (${current} af ${total})", + "noDownloadsTree": "Ingen downloads", "pauseAll": "Pause alle", "resumeAll": "Genoptag alle", "deleteAll": "Slet alle" + }, + "shaders": { + "title": "Shadere", "noShaderDescription": "Ingen videoforbedring", + "nvscalerDescription": "NVIDIA-billedskalering for skarpere video", + "qualityFast": "Hurtig", "qualityHQ": "Høj kvalitet", "mode": "Tilstand", + "importShader": "Importér shader", "customShaderDescription": "Brugerdefineret GLSL-shader", + "shaderImported": "Shader importeret", "shaderImportFailed": "Kunne ikke importere shader", + "deleteShader": "Slet shader", "deleteShaderConfirm": "Slet \"${name}\"?" + }, + "companionRemote": { + "title": "Fjernbetjening", "connectToDevice": "Forbind til enhed", + "hostRemoteSession": "Vært for fjernsession", + "controlThisDevice": "Styr denne enhed med din telefon", + "remoteControl": "Fjernbetjening", "controlDesktop": "Styr en desktopenhed", + "connectedTo": "Forbundet til ${name}", + "session": { + "creatingSession": "Opretter fjernsession...", "failedToCreate": "Kunne ikke oprette fjernsession:", + "noSession": "Ingen session tilgængelig", "scanQrCode": "Scan QR-kode", + "orEnterManually": "Eller indtast manuelt", "hostAddress": "Værtadresse", + "sessionId": "Sessions-ID", "pin": "PIN", "connected": "Forbundet", + "waitingForConnection": "Venter på forbindelse...", + "usePhoneToControl": "Brug din mobilenhed til at styre denne app", + "copiedToClipboard": "${label} kopieret til udklipsholder", + "copyToClipboard": "Kopiér til udklipsholder", "newSession": "Ny session", "minimize": "Minimér" + }, + "pairing": { + "scan": "Scan", "manual": "Manuel", "pairWithDesktop": "Par med desktop", + "enterSessionDetails": "Indtast sessionsdetaljerne vist på din desktopenhed", + "hostAddressHint": "192.168.1.100:48632", "sessionIdHint": "Indtast 8-tegns sessions-ID", + "pinHint": "Indtast 6-cifret PIN", "connecting": "Forbinder...", "tips": "Tips", + "tipDesktop": "Åbn Plezy på din desktop og aktivér fjernbetjening fra indstillinger eller menu", + "tipScan": "Brug fanen Scan til hurtigt at parre ved at scanne QR-koden på din desktop", + "tipWifi": "Sørg for, at begge enheder er på det samme WiFi-netværk", + "cameraPermissionRequired": "Kameratilladelse er påkrævet for at scanne QR-koder.\nGiv kameraadgang i enhedsindstillinger.", + "cameraError": "Kunne ikke starte kamera: ${error}", + "scanInstruction": "Ret kameraet mod QR-koden vist på din desktop", + "invalidQrCode": "Ugyldigt QR-kodeformat", "validationHostRequired": "Indtast værtadresse", + "validationHostFormat": "Format skal være IP:port (f.eks. 192.168.1.100:48632)", + "validationSessionIdRequired": "Indtast et sessions-ID", + "validationSessionIdLength": "Sessions-ID skal være 8 tegn", + "validationPinRequired": "Indtast en PIN", "validationPinLength": "PIN skal være 6 cifre", + "connectionTimedOut": "Forbindelsen fik timeout. Tjek sessions-ID og PIN.", + "sessionNotFound": "Kunne ikke finde sessionen. Tjek dine oplysninger.", + "failedToConnect": "Kunne ikke forbinde: ${error}" + }, + "remote": { + "disconnectConfirm": "Vil du afbryde fra fjernsessionen?", "reconnecting": "Genopretter forbindelse...", + "attemptOf": "Forsøg ${current} af 5", "retryNow": "Prøv igen nu", + "connectionError": "Forbindelsesfejl", "notConnected": "Ikke forbundet", + "tabRemote": "Fjernbetjening", "tabPlay": "Afspil", "tabMore": "Mere", "menu": "Menu", + "tabNavigation": "Fanenavigation", "tabDiscover": "Opdag", "tabLibraries": "Biblioteker", + "tabSearch": "Søg", "tabDownloads": "Downloads", "tabSettings": "Indstillinger", + "previous": "Forrige", "playPause": "Afspil/Pause", "next": "Næste", "seekBack": "Spol tilbage", + "stop": "Stop", "seekForward": "Spol frem", "volume": "Lydstyrke", "volumeDown": "Ned", + "volumeUp": "Op", "fullscreen": "Fuldskærm", "subtitles": "Undertekster", "audio": "Lyd", + "searchHint": "Søg på desktop..." + } + }, + "videoSettings": { + "playbackSettings": "Afspilningsindstillinger", "playbackSpeed": "Afspilningshastighed", + "sleepTimer": "Sove-timer", "audioSync": "Lydsynkronisering", + "subtitleSync": "Undertekstsynkronisering", "hdr": "HDR", "audioOutput": "Lydoutput", + "performanceOverlay": "Ydelsesoverlay", "audioPassthrough": "Lyd-passthrough", + "audioNormalization": "Lydnormalisering" + }, + "externalPlayer": { + "title": "Ekstern afspiller", "useExternalPlayer": "Brug ekstern afspiller", + "useExternalPlayerDescription": "Åbn videoer i en ekstern app i stedet for den indbyggede afspiller", + "selectPlayer": "Vælg afspiller", "systemDefault": "Systemstandard", + "addCustomPlayer": "Tilføj brugerdefineret afspiller", "playerName": "Afspillernavn", + "playerCommand": "Kommando", "playerPackage": "Pakkenavn", "playerUrlScheme": "URL-skema", + "customPlayer": "Brugerdefineret afspiller", "off": "Fra", + "launchFailed": "Kunne ikke åbne ekstern afspiller", + "appNotInstalled": "${name} er ikke installeret", "playInExternalPlayer": "Afspil i ekstern afspiller" + }, + "metadataEdit": { + "editMetadata": "Redigér...", "screenTitle": "Redigér metadata", "basicInfo": "Grundlæggende info", + "artwork": "Grafik", "advancedSettings": "Avancerede indstillinger", "title": "Titel", + "sortTitle": "Sorteringstitel", "originalTitle": "Originaltitel", "releaseDate": "Udgivelsesdato", + "contentRating": "Aldersgrænse", "studio": "Studie", "tagline": "Tagline", "summary": "Resumé", + "poster": "Plakat", "background": "Baggrund", "selectPoster": "Vælg plakat", + "selectBackground": "Vælg baggrund", "fromUrl": "Fra URL", "uploadFile": "Upload fil", + "enterImageUrl": "Indtast billed-URL", "imageUrl": "Billed-URL", + "metadataUpdated": "Metadata opdateret", "metadataUpdateFailed": "Kunne ikke opdatere metadata", + "artworkUpdated": "Grafik opdateret", "artworkUpdateFailed": "Kunne ikke opdatere grafik", + "noArtworkAvailable": "Ingen grafik tilgængelig", "notSet": "Ikke indstillet", + "libraryDefault": "Biblioteksstandard", "accountDefault": "Kontostandard", + "seriesDefault": "Seriestandard", "episodeSorting": "Episodesortering", + "oldestFirst": "Ældste først", "newestFirst": "Nyeste først", "keep": "Behold", + "allEpisodes": "Alle episoder", "latestEpisodes": "${count} seneste episoder", + "latestEpisode": "Seneste episode", + "episodesAddedPastDays": "Episoder tilføjet de seneste ${count} dage", + "deleteAfterPlaying": "Slet episoder efter afspilning", "never": "Aldrig", + "afterADay": "Efter en dag", "afterAWeek": "Efter en uge", "afterAMonth": "Efter en måned", + "onNextRefresh": "Ved næste opdatering", "seasons": "Sæsoner", "show": "Vis", "hide": "Skjul", + "episodeOrdering": "Episoderækkefølge", "tmdbAiring": "The Movie Database (Sendt)", + "tvdbAiring": "TheTVDB (Sendt)", "tvdbAbsolute": "TheTVDB (Absolut)", + "metadataLanguage": "Metadatasprog", "useOriginalTitle": "Brug originaltitel", + "preferredAudioLanguage": "Foretrukket lydsprog", "preferredSubtitleLanguage": "Foretrukket undertekstsprog", + "subtitleMode": "Auto-vælg underteksttilstand", "manuallySelected": "Manuelt valgt", + "shownWithForeignAudio": "Vist med fremmedsproget lyd", "alwaysEnabled": "Altid aktiveret" + } +} diff --git a/lib/i18n/ja.i18n.json b/lib/i18n/ja.i18n.json new file mode 100644 index 00000000..a8002588 --- /dev/null +++ b/lib/i18n/ja.i18n.json @@ -0,0 +1,902 @@ +{ + "app": { + "title": "Plezy" + }, + "auth": { + "signInWithPlex": "Plexでサインイン", + "showQRCode": "QRコードを表示", + "authenticate": "認証", + "debugEnterToken": "デバッグ: Plexトークンを入力", + "plexTokenLabel": "Plex認証トークン", + "plexTokenHint": "Plex.tvトークンを入力", + "authenticationTimeout": "認証がタイムアウトしました。もう一度お試しください。", + "scanQRToSignIn": "このQRコードをスキャンしてサインイン", + "waitingForAuth": "認証を待機中...\nブラウザでサインインを完了してください。", + "useBrowser": "ブラウザを使用" + }, + "common": { + "cancel": "キャンセル", + "save": "保存", + "close": "閉じる", + "clear": "クリア", + "reset": "リセット", + "later": "後で", + "submit": "送信", + "confirm": "確認", + "retry": "再試行", + "logout": "ログアウト", + "unknown": "不明", + "refresh": "更新", + "yes": "はい", + "no": "いいえ", + "delete": "削除", + "shuffle": "シャッフル", + "addTo": "追加...", + "createNew": "新規作成", + "remove": "削除", + "paste": "貼り付け", + "connect": "接続", + "disconnect": "切断", + "play": "再生", + "pause": "一時停止", + "resume": "再開", + "error": "エラー", + "search": "検索", + "home": "ホーム", + "back": "戻る", + "settings": "設定", + "mute": "ミュート", + "ok": "OK", + "loading": "読み込み中...", + "reconnect": "再接続", + "exitConfirmTitle": "アプリを終了しますか?", + "exitConfirmMessage": "終了してもよろしいですか?", + "dontAskAgain": "次回から表示しない", + "exit": "終了", + "viewAll": "すべて表示", + "checkingNetwork": "ネットワークを確認中...", + "refreshingServers": "サーバーを更新中...", + "loadingServers": "サーバーを読み込み中...", + "connectingToServers": "サーバーに接続中...", + "startingOfflineMode": "オフラインモードを開始中..." + }, + "screens": { + "licenses": "ライセンス", + "switchProfile": "プロフィール切替", + "subtitleStyling": "字幕スタイル", + "mpvConfig": "mpv.conf", + "logs": "ログ" + }, + "update": { + "available": "アップデート利用可能", + "versionAvailable": "バージョン ${version} が利用可能です", + "currentVersion": "現在: ${version}", + "skipVersion": "このバージョンをスキップ", + "viewRelease": "リリースを表示", + "latestVersion": "最新バージョンです", + "checkFailed": "アップデートの確認に失敗しました" + }, + "settings": { + "title": "設定", + "language": "言語", + "theme": "テーマ", + "appearance": "外観", + "videoPlayback": "動画再生", + "advanced": "詳細", + "episodePosterMode": "エピソードポスタースタイル", + "seriesPoster": "シリーズポスター", + "seriesPosterDescription": "すべてのエピソードにシリーズポスターを表示", + "seasonPoster": "シーズンポスター", + "seasonPosterDescription": "エピソードにシーズン固有のポスターを表示", + "episodeThumbnail": "エピソードサムネイル", + "episodeThumbnailDescription": "16:9のエピソードスクリーンショットサムネイルを表示", + "showHeroSectionDescription": "ホーム画面に注目コンテンツのカルーセルを表示", + "secondsLabel": "秒", + "minutesLabel": "分", + "secondsShort": "秒", + "minutesShort": "分", + "durationHint": "時間を入力 (${min}-${max})", + "systemTheme": "システム", + "systemThemeDescription": "システム設定に従う", + "lightTheme": "ライト", + "darkTheme": "ダーク", + "oledTheme": "OLED", + "oledThemeDescription": "OLED画面向けの純粋な黒", + "libraryDensity": "ライブラリの密度", + "compact": "コンパクト", + "compactDescription": "小さいカード、より多くのアイテムを表示", + "normal": "標準", + "normalDescription": "デフォルトサイズ", + "comfortable": "ゆったり", + "comfortableDescription": "大きいカード、表示アイテム数を減少", + "viewMode": "表示モード", + "gridView": "グリッド", + "gridViewDescription": "グリッドレイアウトでアイテムを表示", + "listView": "リスト", + "listViewDescription": "リストレイアウトでアイテムを表示", + "showHeroSection": "ヒーローセクションを表示", + "useGlobalHubs": "Plex Homeレイアウトを使用", + "useGlobalHubsDescription": "公式Plexクライアントのようにホームページのハブを表示。オフにすると、ライブラリごとのおすすめを表示。", + "showServerNameOnHubs": "ハブにサーバー名を表示", + "showServerNameOnHubsDescription": "ハブタイトルに常にサーバー名を表示。オフにすると、重複名のみ表示。", + "alwaysKeepSidebarOpen": "サイドバーを常に開いておく", + "alwaysKeepSidebarOpenDescription": "サイドバーを展開したまま、コンテンツ領域が調整される", + "showUnwatchedCount": "未視聴数を表示", + "showUnwatchedCountDescription": "番組とシーズンに未視聴エピソード数を表示", + "hideSpoilers": "未視聴エピソードのネタバレを非表示", + "hideSpoilersDescription": "まだ視聴していないエピソードのサムネイルをぼかし、説明を非表示", + "playerBackend": "プレーヤーバックエンド", + "exoPlayer": "ExoPlayer(推奨)", + "exoPlayerDescription": "より良いハードウェアサポートのAndroidネイティブプレーヤー", + "mpv": "mpv", + "mpvDescription": "より多くの機能とASS字幕サポートの高度なプレーヤー", + "hardwareDecoding": "ハードウェアデコード", + "hardwareDecodingDescription": "利用可能な場合にハードウェアアクセラレーションを使用", + "bufferSize": "バッファサイズ", + "bufferSizeMB": "${size}MB", + "bufferSizeAuto": "自動(推奨)", + "bufferSizeWarning": "デバイスのメモリは${heap}MBです。${size}MBのバッファは再生の問題を引き起こす可能性があります。", + "subtitleStyling": "字幕スタイル", + "subtitleStylingDescription": "字幕の外観をカスタマイズ", + "smallSkipDuration": "短いスキップ時間", + "largeSkipDuration": "長いスキップ時間", + "secondsUnit": "${seconds}秒", + "defaultSleepTimer": "デフォルトスリープタイマー", + "minutesUnit": "${minutes}分", + "rememberTrackSelections": "番組/映画ごとにトラック選択を記憶", + "rememberTrackSelectionsDescription": "再生中にトラックを変更すると、音声と字幕の言語設定を自動保存", + "clickVideoTogglesPlayback": "動画クリックで再生/一時停止を切替", + "clickVideoTogglesPlaybackDescription": "有効にすると、動画プレーヤーをクリックで再生/一時停止。それ以外は再生コントロールの表示/非表示。", + "videoPlayerControls": "動画プレーヤーコントロール", + "keyboardShortcuts": "キーボードショートカット", + "keyboardShortcutsDescription": "キーボードショートカットをカスタマイズ", + "videoPlayerNavigation": "動画プレーヤーナビゲーション", + "videoPlayerNavigationDescription": "矢印キーで動画プレーヤーコントロールを操作", + "crashReporting": "クラッシュレポート", + "crashReportingDescription": "アプリの改善に役立つクラッシュレポートを送信", + "debugLogging": "デバッグログ", + "debugLoggingDescription": "トラブルシューティング用の詳細なログを有効化", + "viewLogs": "ログを表示", + "viewLogsDescription": "アプリケーションログを表示", + "clearCache": "キャッシュをクリア", + "clearCacheDescription": "キャッシュされたすべての画像とデータをクリアします。クリア後、コンテンツの読み込みに時間がかかる場合があります。", + "clearCacheSuccess": "キャッシュを正常にクリアしました", + "resetSettings": "設定をリセット", + "resetSettingsDescription": "すべての設定をデフォルト値にリセットします。この操作は元に戻せません。", + "resetSettingsSuccess": "設定を正常にリセットしました", + "shortcutsReset": "ショートカットをデフォルトにリセットしました", + "about": "アプリについて", + "aboutDescription": "アプリ情報とライセンス", + "updates": "アップデート", + "updateAvailable": "アップデート利用可能", + "checkForUpdates": "アップデートを確認", + "validationErrorEnterNumber": "有効な数値を入力してください", + "validationErrorDuration": "時間は${min}から${max} ${unit}の間である必要があります", + "shortcutAlreadyAssigned": "ショートカットは既に${action}に割り当てられています", + "shortcutUpdated": "${action}のショートカットを更新しました", + "autoSkip": "自動スキップ", + "autoSkipIntro": "イントロを自動スキップ", + "autoSkipIntroDescription": "数秒後にイントロマーカーを自動的にスキップ", + "autoSkipCredits": "クレジットを自動スキップ", + "autoSkipCreditsDescription": "クレジットを自動的にスキップして次のエピソードを再生", + "autoSkipDelay": "自動スキップの遅延", + "autoSkipDelayDescription": "自動スキップまで${seconds}秒待機", + "downloads": "ダウンロード", + "downloadLocationDescription": "ダウンロードコンテンツの保存場所を選択", + "downloadLocationDefault": "デフォルト(アプリストレージ)", + "downloadLocationCustom": "カスタムの場所", + "selectFolder": "フォルダを選択", + "resetToDefault": "デフォルトに戻す", + "currentPath": "現在: ${path}", + "downloadLocationChanged": "ダウンロード場所を変更しました", + "downloadLocationReset": "ダウンロード場所をデフォルトにリセットしました", + "downloadLocationInvalid": "選択したフォルダは書き込みできません", + "downloadLocationSelectError": "フォルダの選択に失敗しました", + "downloadOnWifiOnly": "WiFiのみでダウンロード", + "downloadOnWifiOnlyDescription": "モバイルデータ通信時のダウンロードを防止", + "cellularDownloadBlocked": "モバイルデータ通信ではダウンロードが無効です。WiFiに接続するか設定を変更してください。", + "maxVolume": "最大音量", + "maxVolumeDescription": "静かなメディアに対して100%以上の音量ブーストを許可", + "maxVolumePercent": "${percent}%", + "discordRichPresence": "Discord Rich Presence", + "discordRichPresenceDescription": "Discordで視聴中の内容を表示", + "autoPip": "自動ピクチャーインピクチャー", + "autoPipDescription": "再生中にアプリを離れると自動的にピクチャーインピクチャーに移行", + "matchContentFrameRate": "コンテンツのフレームレートに合わせる", + "matchContentFrameRateDescription": "動画コンテンツに合わせてディスプレイのリフレッシュレートを調整し、ジャダーを低減しバッテリーを節約", + "tunneledPlayback": "トンネル再生", + "tunneledPlaybackDescription": "ハードウェアアクセラレーションされたビデオトンネリングを使用。HDRコンテンツで音声のみで画面が黒くなる場合は無効にしてください", + "requireProfileSelectionOnOpen": "アプリ起動時にプロフィールを確認", + "requireProfileSelectionOnOpenDescription": "アプリを開くたびにプロフィール選択を表示", + "confirmExitOnBack": "終了前に確認", + "confirmExitOnBackDescription": "戻るボタンでアプリを終了する際に確認ダイアログを表示", + "showNavBarLabels": "ナビゲーションバーラベルを表示", + "showNavBarLabelsDescription": "ナビゲーションバーアイコンの下にテキストラベルを表示" + }, + "search": { + "hint": "映画、番組、音楽を検索...", + "tryDifferentTerm": "別の検索語をお試しください", + "searchYourMedia": "メディアを検索", + "enterTitleActorOrKeyword": "タイトル、俳優、またはキーワードを入力" + }, + "hotkeys": { + "setShortcutFor": "${actionName}のショートカットを設定", + "clearShortcut": "ショートカットをクリア", + "actions": { + "playPause": "再生/一時停止", + "volumeUp": "音量を上げる", + "volumeDown": "音量を下げる", + "seekForward": "前方にシーク (${seconds}秒)", + "seekBackward": "後方にシーク (${seconds}秒)", + "fullscreenToggle": "フルスクリーン切替", + "muteToggle": "ミュート切替", + "subtitleToggle": "字幕切替", + "audioTrackNext": "次の音声トラック", + "subtitleTrackNext": "次の字幕トラック", + "chapterNext": "次のチャプター", + "chapterPrevious": "前のチャプター", + "speedIncrease": "速度を上げる", + "speedDecrease": "速度を下げる", + "speedReset": "速度をリセット", + "subSeekNext": "次の字幕にシーク", + "subSeekPrev": "前の字幕にシーク", + "shaderToggle": "シェーダー切替", + "skipMarker": "イントロ/クレジットをスキップ" + } + }, + "pinEntry": { + "enterPin": "PINを入力", + "showPin": "PINを表示", + "hidePin": "PINを非表示" + }, + "fileInfo": { + "title": "ファイル情報", + "video": "映像", + "audio": "音声", + "file": "ファイル", + "advanced": "詳細", + "codec": "コーデック", + "resolution": "解像度", + "bitrate": "ビットレート", + "frameRate": "フレームレート", + "aspectRatio": "アスペクト比", + "profile": "プロファイル", + "bitDepth": "ビット深度", + "colorSpace": "色空間", + "colorRange": "色範囲", + "colorPrimaries": "色原色", + "chromaSubsampling": "クロマサブサンプリング", + "channels": "チャンネル", + "path": "パス", + "size": "サイズ", + "container": "コンテナ", + "duration": "長さ", + "optimizedForStreaming": "ストリーミング最適化", + "has64bitOffsets": "64ビットオフセット" + }, + "mediaMenu": { + "markAsWatched": "視聴済みにする", + "markAsUnwatched": "未視聴にする", + "removeFromContinueWatching": "視聴中から削除", + "goToSeries": "シリーズへ移動", + "goToSeason": "シーズンへ移動", + "shufflePlay": "シャッフル再生", + "fileInfo": "ファイル情報", + "deleteFromServer": "サーバーから削除", + "confirmDelete": "このメディアとそのファイルがサーバーから完全に削除されます。この操作は元に戻せません。", + "deleteMultipleWarning": "すべてのエピソードとそのファイルが含まれます。", + "mediaDeletedSuccessfully": "メディアアイテムを正常に削除しました", + "mediaFailedToDelete": "メディアアイテムの削除に失敗しました", + "rate": "評価" + }, + "accessibility": { + "mediaCardMovie": "${title}、映画", + "mediaCardShow": "${title}、テレビ番組", + "mediaCardEpisode": "${title}、${episodeInfo}", + "mediaCardSeason": "${title}、${seasonInfo}", + "mediaCardWatched": "視聴済み", + "mediaCardPartiallyWatched": "${percent}パーセント視聴済み", + "mediaCardUnwatched": "未視聴", + "tapToPlay": "タップして再生" + }, + "tooltips": { + "shufflePlay": "シャッフル再生", + "playTrailer": "予告編を再生", + "markAsWatched": "視聴済みにする", + "markAsUnwatched": "未視聴にする" + }, + "videoControls": { + "audioLabel": "音声", + "subtitlesLabel": "字幕", + "resetToZero": "0msにリセット", + "addTime": "+${amount}${unit}", + "minusTime": "-${amount}${unit}", + "playsLater": "${label}遅く再生", + "playsEarlier": "${label}早く再生", + "noOffset": "オフセットなし", + "letterbox": "レターボックス", + "fillScreen": "画面を埋める", + "stretch": "引き延ばす", + "lockRotation": "回転をロック", + "unlockRotation": "回転のロックを解除", + "timerActive": "タイマー動作中", + "playbackWillPauseIn": "再生は${duration}後に一時停止します", + "sleepTimerCompleted": "スリープタイマー完了 - 再生を一時停止しました", + "stillWatching": "まだ視聴中ですか?", + "pausingIn": "${seconds}秒後に一時停止", + "continueWatching": "続ける", + "autoPlayNext": "次を自動再生", + "playNext": "次を再生", + "playButton": "再生", + "pauseButton": "一時停止", + "seekBackwardButton": "${seconds}秒戻る", + "seekForwardButton": "${seconds}秒進む", + "previousButton": "前のエピソード", + "nextButton": "次のエピソード", + "previousChapterButton": "前のチャプター", + "nextChapterButton": "次のチャプター", + "muteButton": "ミュート", + "unmuteButton": "ミュート解除", + "settingsButton": "動画設定", + "audioTrackButton": "音声トラック", + "subtitlesButton": "字幕", + "tracksButton": "音声と字幕", + "chaptersButton": "チャプター", + "versionsButton": "動画バージョン", + "pipButton": "ピクチャーインピクチャーモード", + "aspectRatioButton": "アスペクト比", + "ambientLighting": "アンビエントライティング", + "ambientLightingOn": "アンビエントライティングを有効化", + "ambientLightingOff": "アンビエントライティングを無効化", + "fullscreenButton": "フルスクリーンに入る", + "exitFullscreenButton": "フルスクリーンを終了", + "alwaysOnTopButton": "常に前面に表示", + "rotationLockButton": "回転ロック", + "timelineSlider": "動画タイムライン", + "volumeSlider": "音量レベル", + "endsAt": "${time}に終了", + "pipActive": "ピクチャーインピクチャーで再生中", + "pipFailed": "ピクチャーインピクチャーの開始に失敗しました", + "pipErrors": { + "androidVersion": "Android 8.0以降が必要です", + "iosVersion": "iOS 15.0以降が必要です", + "permissionDisabled": "ピクチャーインピクチャーの権限が無効です。設定 > アプリ > Plezy > ピクチャーインピクチャーで有効にしてください", + "notSupported": "デバイスはピクチャーインピクチャーモードをサポートしていません", + "voSwitchFailed": "ピクチャーインピクチャーの映像出力切替に失敗しました", + "failed": "ピクチャーインピクチャーの開始に失敗しました", + "unknown": "エラーが発生しました: ${error}" + }, + "chapters": "チャプター", + "noChaptersAvailable": "チャプターがありません", + "queue": "キュー", + "noQueueItems": "キューにアイテムがありません" + }, + "userStatus": { + "admin": "管理者", + "restricted": "制限付き", + "protected": "保護済み", + "current": "現在" + }, + "messages": { + "markedAsWatched": "視聴済みにしました", + "markedAsUnwatched": "未視聴にしました", + "markedAsWatchedOffline": "視聴済みにしました(オンライン時に同期)", + "markedAsUnwatchedOffline": "未視聴にしました(オンライン時に同期)", + "removedFromContinueWatching": "視聴中から削除しました", + "errorLoading": "エラー: ${error}", + "fileInfoNotAvailable": "ファイル情報が利用できません", + "errorLoadingFileInfo": "ファイル情報の読み込みエラー: ${error}", + "errorLoadingSeries": "シリーズの読み込みエラー", + "errorLoadingSeason": "シーズンの読み込みエラー", + "musicNotSupported": "音楽の再生はまだサポートされていません", + "logsCleared": "ログをクリアしました", + "logsCopied": "ログをクリップボードにコピーしました", + "noLogsAvailable": "ログがありません", + "libraryScanning": "\"${title}\"をスキャン中...", + "libraryScanStarted": "\"${title}\"のライブラリスキャンを開始しました", + "libraryScanFailed": "ライブラリのスキャンに失敗しました: ${error}", + "metadataRefreshing": "\"${title}\"のメタデータを更新中...", + "metadataRefreshStarted": "\"${title}\"のメタデータ更新を開始しました", + "metadataRefreshFailed": "メタデータの更新に失敗しました: ${error}", + "logoutConfirm": "ログアウトしてもよろしいですか?", + "noSeasonsFound": "シーズンが見つかりません", + "noEpisodesFound": "最初のシーズンにエピソードが見つかりません", + "noEpisodesFoundGeneral": "エピソードが見つかりません", + "noResultsFound": "結果が見つかりません", + "sleepTimerSet": "スリープタイマーを${label}に設定しました", + "noItemsAvailable": "アイテムがありません", + "failedToCreatePlayQueueNoItems": "再生キューの作成に失敗しました - アイテムがありません", + "failedPlayback": "${action}に失敗しました: ${error}", + "switchingToCompatiblePlayer": "互換プレーヤーに切替中...", + "logsUploaded": "ログをアップロードしました", + "logsUploadFailed": "ログのアップロードに失敗しました", + "logId": "ログID" + }, + "subtitlingStyling": { + "stylingOptions": "スタイルオプション", + "fontSize": "フォントサイズ", + "textColor": "テキストの色", + "borderSize": "枠線サイズ", + "borderColor": "枠線の色", + "backgroundOpacity": "背景の不透明度", + "backgroundColor": "背景色", + "position": "位置" + }, + "mpvConfig": { + "title": "mpv.conf", + "description": "高度な動画プレーヤー設定", + "presets": "プリセット", + "noPresets": "保存済みプリセットがありません", + "saveAsPreset": "プリセットとして保存...", + "presetName": "プリセット名", + "presetNameHint": "プリセットの名前を入力", + "loadPreset": "読み込み", + "deletePreset": "削除", + "presetSaved": "プリセットを保存しました", + "presetLoaded": "プリセットを読み込みました", + "presetDeleted": "プリセットを削除しました", + "confirmDeletePreset": "このプリセットを削除してもよろしいですか?", + "configPlaceholder": "gpu-api=vulkan\nhwdec=auto\n# comment" + }, + "dialog": { + "confirmAction": "操作の確認" + }, + "discover": { + "title": "探す", + "switchProfile": "プロフィール切替", + "noContentAvailable": "コンテンツがありません", + "addMediaToLibraries": "ライブラリにメディアを追加してください", + "continueWatching": "視聴を続ける", + "playEpisode": "S${season}E${episode}", + "overview": "あらすじ", + "cast": "キャスト", + "extras": "予告編とエクストラ", + "seasons": "シーズン", + "studio": "スタジオ", + "rating": "評価", + "episodeCount": "${count}エピソード", + "watchedProgress": "${watched}/${total}視聴済み", + "movie": "映画", + "tvShow": "テレビ番組", + "minutesLeft": "残り${minutes}分" + }, + "errors": { + "searchFailed": "検索に失敗しました: ${error}", + "connectionTimeout": "${context}の読み込み中に接続がタイムアウトしました", + "connectionFailed": "Plexサーバーに接続できません", + "failedToLoad": "${context}の読み込みに失敗しました: ${error}", + "noClientAvailable": "クライアントが利用できません", + "authenticationFailed": "認証に失敗しました: ${error}", + "couldNotLaunchUrl": "認証URLを開けませんでした", + "pleaseEnterToken": "トークンを入力してください", + "invalidToken": "無効なトークン", + "failedToVerifyToken": "トークンの検証に失敗しました: ${error}", + "failedToSwitchProfile": "${displayName}への切替に失敗しました" + }, + "libraries": { + "title": "ライブラリ", + "scanLibraryFiles": "ライブラリファイルをスキャン", + "scanLibrary": "ライブラリをスキャン", + "analyze": "解析", + "analyzeLibrary": "ライブラリを解析", + "refreshMetadata": "メタデータを更新", + "emptyTrash": "ゴミ箱を空にする", + "emptyingTrash": "\"${title}\"のゴミ箱を空にしています...", + "trashEmptied": "\"${title}\"のゴミ箱を空にしました", + "failedToEmptyTrash": "ゴミ箱を空にできませんでした: ${error}", + "analyzing": "\"${title}\"を解析中...", + "analysisStarted": "\"${title}\"の解析を開始しました", + "failedToAnalyze": "ライブラリの解析に失敗しました: ${error}", + "noLibrariesFound": "ライブラリが見つかりません", + "thisLibraryIsEmpty": "このライブラリは空です", + "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": { + "all": "すべて", + "movies": "映画", + "shows": "テレビ番組", + "seasons": "シーズン", + "episodes": "エピソード", + "folders": "フォルダ" + } + }, + "about": { + "title": "アプリについて", + "openSourceLicenses": "オープンソースライセンス", + "versionLabel": "バージョン ${version}", + "appDescription": "Flutter製の美しいPlexクライアント", + "viewLicensesDescription": "サードパーティライブラリのライセンスを表示" + }, + "serverSelection": { + "allServerConnectionsFailed": "どのサーバーにも接続できませんでした。ネットワークを確認してもう一度お試しください。", + "noServersFoundForAccount": "${username} (${email})のサーバーが見つかりません", + "failedToLoadServers": "サーバーの読み込みに失敗しました: ${error}" + }, + "hubDetail": { + "title": "タイトル", + "releaseYear": "公開年", + "dateAdded": "追加日", + "rating": "評価", + "noItemsFound": "アイテムが見つかりません" + }, + "logs": { + "clearLogs": "ログをクリア", + "copyLogs": "ログをコピー", + "uploadLogs": "ログをアップロード", + "error": "エラー:", + "stackTrace": "スタックトレース:" + }, + "licenses": { + "relatedPackages": "関連パッケージ", + "license": "ライセンス", + "licenseNumber": "ライセンス ${number}", + "licensesCount": "${count}件のライセンス" + }, + "navigation": { + "libraries": "ライブラリ", + "downloads": "ダウンロード", + "liveTv": "ライブTV" + }, + "liveTv": { + "title": "ライブTV", + "channels": "チャンネル", + "guide": "番組表", + "noChannels": "チャンネルがありません", + "noDvr": "どのサーバーにもDVRが設定されていません", + "tuneFailed": "チャンネルのチューニングに失敗しました", + "loading": "チャンネルを読み込み中...", + "nowPlaying": "現在放送中", + "noPrograms": "番組データがありません", + "channelNumber": "Ch. ${number}", + "live": "ライブ", + "hd": "HD", + "premiere": "新着", + "reloadGuide": "番組表を再読込", + "allChannels": "すべてのチャンネル", + "now": "現在", + "today": "今日", + "midnight": "深夜", + "overnight": "深夜", + "morning": "朝", + "daytime": "昼", + "evening": "夕方", + "lateNight": "深夜", + "whatsOn": "放送中", + "watchChannel": "チャンネルを視聴" + }, + "collections": { + "title": "コレクション", + "collection": "コレクション", + "empty": "コレクションは空です", + "unknownLibrarySection": "削除できません:不明なライブラリセクション", + "deleteCollection": "コレクションを削除", + "deleteConfirm": "\"${title}\"を削除してもよろしいですか?この操作は元に戻せません。", + "deleted": "コレクションを削除しました", + "deleteFailed": "コレクションの削除に失敗しました", + "deleteFailedWithError": "コレクションの削除に失敗しました: ${error}", + "failedToLoadItems": "コレクションアイテムの読み込みに失敗しました: ${error}", + "selectCollection": "コレクションを選択", + "collectionName": "コレクション名", + "enterCollectionName": "コレクション名を入力", + "addedToCollection": "コレクションに追加しました", + "errorAddingToCollection": "コレクションへの追加に失敗しました", + "created": "コレクションを作成しました", + "removeFromCollection": "コレクションから削除", + "removeFromCollectionConfirm": "\"${title}\"をこのコレクションから削除しますか?", + "removedFromCollection": "コレクションから削除しました", + "removeFromCollectionFailed": "コレクションからの削除に失敗しました", + "removeFromCollectionError": "コレクションからの削除エラー: ${error}" + }, + "playlists": { + "title": "プレイリスト", + "playlist": "プレイリスト", + "noPlaylists": "プレイリストが見つかりません", + "create": "プレイリストを作成", + "playlistName": "プレイリスト名", + "enterPlaylistName": "プレイリスト名を入力", + "delete": "プレイリストを削除", + "removeItem": "プレイリストから削除", + "smartPlaylist": "スマートプレイリスト", + "itemCount": "${count}アイテム", + "oneItem": "1アイテム", + "emptyPlaylist": "このプレイリストは空です", + "deleteConfirm": "プレイリストを削除しますか?", + "deleteMessage": "\"${name}\"を削除してもよろしいですか?", + "created": "プレイリストを作成しました", + "deleted": "プレイリストを削除しました", + "itemAdded": "プレイリストに追加しました", + "itemRemoved": "プレイリストから削除しました", + "selectPlaylist": "プレイリストを選択", + "errorCreating": "プレイリストの作成に失敗しました", + "errorDeleting": "プレイリストの削除に失敗しました", + "errorLoading": "プレイリストの読み込みに失敗しました", + "errorAdding": "プレイリストへの追加に失敗しました", + "errorReordering": "プレイリストアイテムの並べ替えに失敗しました", + "errorRemoving": "プレイリストからの削除に失敗しました" + }, + "watchTogether": { + "title": "一緒に見る", + "description": "友達や家族と同期してコンテンツを視聴", + "createSession": "セッションを作成", + "creating": "作成中...", + "joinSession": "セッションに参加", + "joining": "参加中...", + "controlMode": "コントロールモード", + "controlModeQuestion": "誰が再生を制御できますか?", + "hostOnly": "ホストのみ", + "anyone": "全員", + "hostingSession": "セッションをホスト中", + "inSession": "セッション中", + "sessionCode": "セッションコード", + "hostControlsPlayback": "ホストが再生を制御", + "anyoneCanControl": "全員が再生を制御可能", + "hostControls": "ホストが制御", + "anyoneControls": "全員が制御", + "participants": "参加者", + "host": "ホスト", + "hostBadge": "HOST", + "youAreHost": "あなたはホストです", + "watchingWithOthers": "他の人と視聴中", + "endSession": "セッションを終了", + "leaveSession": "セッションを退出", + "endSessionQuestion": "セッションを終了しますか?", + "leaveSessionQuestion": "セッションを退出しますか?", + "endSessionConfirm": "すべての参加者のセッションが終了します。", + "leaveSessionConfirm": "セッションから退出されます。", + "endSessionConfirmOverlay": "すべての参加者の視聴セッションが終了します。", + "leaveSessionConfirmOverlay": "視聴セッションから切断されます。", + "end": "終了", + "leave": "退出", + "syncing": "同期中...", + "joinWatchSession": "視聴セッションに参加", + "enterCodeHint": "8文字のコードを入力", + "pasteFromClipboard": "クリップボードから貼り付け", + "pleaseEnterCode": "セッションコードを入力してください", + "codeMustBe8Chars": "セッションコードは8文字である必要があります", + "joinInstructions": "ホストが共有したセッションコードを入力して視聴セッションに参加してください。", + "failedToCreate": "セッションの作成に失敗しました", + "failedToJoin": "セッションへの参加に失敗しました", + "sessionCodeCopied": "セッションコードをクリップボードにコピーしました", + "relayUnreachable": "リレーサーバーに到達できません。ISPが接続をブロックしている可能性があります。試すことはできますが、一緒に見る機能が動作しない場合があります。", + "reconnectingToHost": "ホストに再接続中...", + "currentPlayback": "現在の再生", + "joinCurrentPlayback": "現在の再生に参加", + "joinCurrentPlaybackDescription": "ホストが現在視聴中のコンテンツに戻る", + "failedToOpenCurrentPlayback": "現在の再生を開けませんでした", + "participantJoined": "${name}が参加しました", + "participantLeft": "${name}が退出しました" + }, + "downloads": { + "title": "ダウンロード", + "manage": "管理", + "tvShows": "テレビ番組", + "movies": "映画", + "noDownloads": "ダウンロードなし", + "noDownloadsDescription": "ダウンロードしたコンテンツはここに表示され、オフラインで視聴できます", + "downloadNow": "ダウンロード", + "deleteDownload": "ダウンロードを削除", + "retryDownload": "ダウンロードを再試行", + "downloadQueued": "ダウンロードをキューに追加しました", + "episodesQueued": "${count}エピソードをダウンロードキューに追加しました", + "downloadDeleted": "ダウンロードを削除しました", + "deleteConfirm": "\"${title}\"を削除してもよろしいですか?ダウンロードしたファイルがデバイスから削除されます。", + "deletingWithProgress": "${title}を削除中... (${current}/${total})", + "noDownloadsTree": "ダウンロードなし", + "pauseAll": "すべて一時停止", + "resumeAll": "すべて再開", + "deleteAll": "すべて削除" + }, + "shaders": { + "title": "シェーダー", + "noShaderDescription": "映像補正なし", + "nvscalerDescription": "よりシャープな映像のためのNVIDIA画像スケーリング", + "qualityFast": "高速", + "qualityHQ": "高品質", + "mode": "モード", + "importShader": "シェーダーをインポート", + "customShaderDescription": "カスタムGLSLシェーダー", + "shaderImported": "シェーダーをインポートしました", + "shaderImportFailed": "シェーダーのインポートに失敗しました", + "deleteShader": "シェーダーを削除", + "deleteShaderConfirm": "\"${name}\"を削除しますか?" + }, + "companionRemote": { + "title": "コンパニオンリモート", + "connectToDevice": "デバイスに接続", + "hostRemoteSession": "リモートセッションをホスト", + "controlThisDevice": "スマートフォンでこのデバイスを操作", + "remoteControl": "リモコン", + "controlDesktop": "デスクトップデバイスを操作", + "connectedTo": "${name}に接続中", + "session": { + "creatingSession": "リモートセッションを作成中...", + "failedToCreate": "リモートセッションの作成に失敗しました:", + "noSession": "利用可能なセッションがありません", + "scanQrCode": "QRコードをスキャン", + "orEnterManually": "または手動で入力", + "hostAddress": "ホストアドレス", + "sessionId": "セッションID", + "pin": "PIN", + "connected": "接続済み", + "waitingForConnection": "接続を待機中...", + "usePhoneToControl": "モバイルデバイスでこのアプリを操作", + "copiedToClipboard": "${label}をクリップボードにコピーしました", + "copyToClipboard": "クリップボードにコピー", + "newSession": "新しいセッション", + "minimize": "最小化" + }, + "pairing": { + "scan": "スキャン", + "manual": "手動", + "pairWithDesktop": "デスクトップとペアリング", + "enterSessionDetails": "デスクトップデバイスに表示されたセッション情報を入力", + "hostAddressHint": "192.168.1.100:48632", + "sessionIdHint": "8文字のセッションIDを入力", + "pinHint": "6桁のPINを入力", + "connecting": "接続中...", + "tips": "ヒント", + "tipDesktop": "デスクトップでPlezyを開き、設定またはメニューからコンパニオンリモートを有効にしてください", + "tipScan": "スキャンタブを使用して、デスクトップのQRコードをスキャンして素早くペアリング", + "tipWifi": "両方のデバイスが同じWiFiネットワークに接続されていることを確認", + "cameraPermissionRequired": "QRコードをスキャンするにはカメラの権限が必要です。\nデバイスの設定でカメラへのアクセスを許可してください。", + "cameraError": "カメラを起動できませんでした: ${error}", + "scanInstruction": "デスクトップに表示されたQRコードにカメラを向けてください", + "invalidQrCode": "無効なQRコード形式", + "validationHostRequired": "ホストアドレスを入力してください", + "validationHostFormat": "形式はIP:ポートである必要があります(例: 192.168.1.100:48632)", + "validationSessionIdRequired": "セッションIDを入力してください", + "validationSessionIdLength": "セッションIDは8文字である必要があります", + "validationPinRequired": "PINを入力してください", + "validationPinLength": "PINは6桁である必要があります", + "connectionTimedOut": "接続がタイムアウトしました。セッションIDとPINを確認してください。", + "sessionNotFound": "セッションが見つかりませんでした。認証情報を確認してください。", + "failedToConnect": "接続に失敗しました: ${error}" + }, + "remote": { + "disconnectConfirm": "リモートセッションから切断しますか?", + "reconnecting": "再接続中...", + "attemptOf": "試行 ${current}/5", + "retryNow": "今すぐ再試行", + "connectionError": "接続エラー", + "notConnected": "未接続", + "tabRemote": "リモート", + "tabPlay": "再生", + "tabMore": "その他", + "menu": "メニュー", + "tabNavigation": "タブナビゲーション", + "tabDiscover": "探す", + "tabLibraries": "ライブラリ", + "tabSearch": "検索", + "tabDownloads": "ダウンロード", + "tabSettings": "設定", + "previous": "前へ", + "playPause": "再生/一時停止", + "next": "次へ", + "seekBack": "巻き戻し", + "stop": "停止", + "seekForward": "早送り", + "volume": "音量", + "volumeDown": "下げる", + "volumeUp": "上げる", + "fullscreen": "フルスクリーン", + "subtitles": "字幕", + "audio": "音声", + "searchHint": "デスクトップで検索..." + } + }, + "videoSettings": { + "playbackSettings": "再生設定", + "playbackSpeed": "再生速度", + "sleepTimer": "スリープタイマー", + "audioSync": "音声同期", + "subtitleSync": "字幕同期", + "hdr": "HDR", + "audioOutput": "音声出力", + "performanceOverlay": "パフォーマンスオーバーレイ", + "audioPassthrough": "オーディオパススルー", + "audioNormalization": "音声正規化" + }, + "externalPlayer": { + "title": "外部プレーヤー", + "useExternalPlayer": "外部プレーヤーを使用", + "useExternalPlayerDescription": "内蔵プレーヤーの代わりに外部アプリで動画を開く", + "selectPlayer": "プレーヤーを選択", + "systemDefault": "システムデフォルト", + "addCustomPlayer": "カスタムプレーヤーを追加", + "playerName": "プレーヤー名", + "playerCommand": "コマンド", + "playerPackage": "パッケージ名", + "playerUrlScheme": "URLスキーム", + "customPlayer": "カスタムプレーヤー", + "off": "オフ", + "launchFailed": "外部プレーヤーの起動に失敗しました", + "appNotInstalled": "${name}がインストールされていません", + "playInExternalPlayer": "外部プレーヤーで再生" + }, + "metadataEdit": { + "editMetadata": "編集...", + "screenTitle": "メタデータを編集", + "basicInfo": "基本情報", + "artwork": "アートワーク", + "advancedSettings": "詳細設定", + "title": "タイトル", + "sortTitle": "ソートタイトル", + "originalTitle": "原題", + "releaseDate": "公開日", + "contentRating": "コンテンツレーティング", + "studio": "スタジオ", + "tagline": "タグライン", + "summary": "あらすじ", + "poster": "ポスター", + "background": "背景", + "selectPoster": "ポスターを選択", + "selectBackground": "背景を選択", + "fromUrl": "URLから", + "uploadFile": "ファイルをアップロード", + "enterImageUrl": "画像URLを入力", + "imageUrl": "画像URL", + "metadataUpdated": "メタデータを更新しました", + "metadataUpdateFailed": "メタデータの更新に失敗しました", + "artworkUpdated": "アートワークを更新しました", + "artworkUpdateFailed": "アートワークの更新に失敗しました", + "noArtworkAvailable": "アートワークがありません", + "notSet": "未設定", + "libraryDefault": "ライブラリのデフォルト", + "accountDefault": "アカウントのデフォルト", + "seriesDefault": "シリーズのデフォルト", + "episodeSorting": "エピソードの並べ替え", + "oldestFirst": "古い順", + "newestFirst": "新しい順", + "keep": "保持", + "allEpisodes": "すべてのエピソード", + "latestEpisodes": "最新${count}エピソード", + "latestEpisode": "最新エピソード", + "episodesAddedPastDays": "過去${count}日間に追加されたエピソード", + "deleteAfterPlaying": "再生後にエピソードを削除", + "never": "しない", + "afterADay": "1日後", + "afterAWeek": "1週間後", + "afterAMonth": "1ヶ月後", + "onNextRefresh": "次回更新時", + "seasons": "シーズン", + "show": "表示", + "hide": "非表示", + "episodeOrdering": "エピソードの順序", + "tmdbAiring": "The Movie Database(放送順)", + "tvdbAiring": "TheTVDB(放送順)", + "tvdbAbsolute": "TheTVDB(絶対順)", + "metadataLanguage": "メタデータの言語", + "useOriginalTitle": "原題を使用", + "preferredAudioLanguage": "優先音声言語", + "preferredSubtitleLanguage": "優先字幕言語", + "subtitleMode": "字幕自動選択モード", + "manuallySelected": "手動選択", + "shownWithForeignAudio": "外国語音声時に表示", + "alwaysEnabled": "常に有効" + } +} diff --git a/lib/i18n/nb.i18n.json b/lib/i18n/nb.i18n.json new file mode 100644 index 00000000..8850febd --- /dev/null +++ b/lib/i18n/nb.i18n.json @@ -0,0 +1,902 @@ +{ + "app": { + "title": "Plezy" + }, + "auth": { + "signInWithPlex": "Logg inn med Plex", + "showQRCode": "Vis QR-kode", + "authenticate": "Autentiser", + "debugEnterToken": "Feilsøking: Skriv inn Plex-token", + "plexTokenLabel": "Plex Auth-token", + "plexTokenHint": "Skriv inn Plex.tv-tokenet ditt", + "authenticationTimeout": "Autentiseringen ble tidsavbrutt. Prøv igjen.", + "scanQRToSignIn": "Skann denne QR-koden for å logge inn", + "waitingForAuth": "Venter på autentisering...\nFullfør innloggingen i nettleseren din.", + "useBrowser": "Bruk nettleser" + }, + "common": { + "cancel": "Avbryt", + "save": "Lagre", + "close": "Lukk", + "clear": "Tøm", + "reset": "Tilbakestill", + "later": "Senere", + "submit": "Send inn", + "confirm": "Bekreft", + "retry": "Prøv igjen", + "logout": "Logg ut", + "unknown": "Ukjent", + "refresh": "Oppdater", + "yes": "Ja", + "no": "Nei", + "delete": "Slett", + "shuffle": "Tilfeldig", + "addTo": "Legg til i...", + "createNew": "Opprett ny", + "remove": "Fjern", + "paste": "Lim inn", + "connect": "Koble til", + "disconnect": "Koble fra", + "play": "Spill av", + "pause": "Pause", + "resume": "Gjenoppta", + "error": "Feil", + "search": "Søk", + "home": "Hjem", + "back": "Tilbake", + "settings": "Innstillinger", + "mute": "Demp", + "ok": "OK", + "loading": "Laster...", + "reconnect": "Koble til på nytt", + "exitConfirmTitle": "Avslutte appen?", + "exitConfirmMessage": "Er du sikker på at du vil avslutte?", + "dontAskAgain": "Ikke spør igjen", + "exit": "Avslutt", + "viewAll": "Vis alle", + "checkingNetwork": "Sjekker nettverk...", + "refreshingServers": "Oppdaterer servere...", + "loadingServers": "Laster servere...", + "connectingToServers": "Kobler til servere...", + "startingOfflineMode": "Starter frakoblet modus..." + }, + "screens": { + "licenses": "Lisenser", + "switchProfile": "Bytt profil", + "subtitleStyling": "Undertekststil", + "mpvConfig": "mpv.conf", + "logs": "Logger" + }, + "update": { + "available": "Oppdatering tilgjengelig", + "versionAvailable": "Versjon ${version} er tilgjengelig", + "currentVersion": "Gjeldende: ${version}", + "skipVersion": "Hopp over denne versjonen", + "viewRelease": "Vis utgivelse", + "latestVersion": "Du har den nyeste versjonen", + "checkFailed": "Kunne ikke se etter oppdateringer" + }, + "settings": { + "title": "Innstillinger", + "language": "Språk", + "theme": "Tema", + "appearance": "Utseende", + "videoPlayback": "Videoavspilling", + "advanced": "Avansert", + "episodePosterMode": "Episodeplakatstil", + "seriesPoster": "Serieplakat", + "seriesPosterDescription": "Vis serieplakaten for alle episoder", + "seasonPoster": "Sesongplakat", + "seasonPosterDescription": "Vis den sesongspesifikke plakaten for episoder", + "episodeThumbnail": "Episodeminiatyrbilde", + "episodeThumbnailDescription": "Vis 16:9 episodeskjermbilder som miniatyrbilder", + "showHeroSectionDescription": "Vis fremhevet innholdskarusell på hjemmeskjermen", + "secondsLabel": "Sekunder", + "minutesLabel": "Minutter", + "secondsShort": "s", + "minutesShort": "m", + "durationHint": "Angi varighet (${min}-${max})", + "systemTheme": "System", + "systemThemeDescription": "Følg systeminnstillinger", + "lightTheme": "Lyst", + "darkTheme": "Mørkt", + "oledTheme": "OLED", + "oledThemeDescription": "Helsvart for OLED-skjermer", + "libraryDensity": "Bibliotekets tetthet", + "compact": "Kompakt", + "compactDescription": "Mindre kort, flere elementer synlige", + "normal": "Normal", + "normalDescription": "Standard størrelse", + "comfortable": "Komfortabel", + "comfortableDescription": "Større kort, færre elementer synlige", + "viewMode": "Visningsmodus", + "gridView": "Rutenett", + "gridViewDescription": "Vis elementer i rutenettoppsett", + "listView": "Liste", + "listViewDescription": "Vis elementer i listeoppsett", + "showHeroSection": "Vis fremhevet seksjon", + "useGlobalHubs": "Bruk Plex Home-layout", + "useGlobalHubsDescription": "Vis hjemmeside-huber som den offisielle Plex-klienten. Når av, vises per-bibliotek-anbefalinger i stedet.", + "showServerNameOnHubs": "Vis servernavn på huber", + "showServerNameOnHubsDescription": "Vis alltid servernavnet i hubtitler. Når av, vises kun for dupliserte hubnavn.", + "alwaysKeepSidebarOpen": "Hold sidefeltet alltid åpent", + "alwaysKeepSidebarOpenDescription": "Sidefeltet forblir utvidet og innholdsområdet tilpasser seg", + "showUnwatchedCount": "Vis antall usette", + "showUnwatchedCountDescription": "Vis antall usette episoder på serier og sesonger", + "hideSpoilers": "Skjul spoilere for usette episoder", + "hideSpoilersDescription": "Slør miniatyrbilder og skjul beskrivelser for episoder du ikke har sett ennå", + "playerBackend": "Spillermotor", + "exoPlayer": "ExoPlayer (Anbefalt)", + "exoPlayerDescription": "Android-innebygd spiller med bedre maskinvarestøtte", + "mpv": "mpv", + "mpvDescription": "Avansert spiller med flere funksjoner og ASS-undertekststøtte", + "hardwareDecoding": "Maskinvaredekoding", + "hardwareDecodingDescription": "Bruk maskinvareakselerasjon når tilgjengelig", + "bufferSize": "Bufferstørrelse", + "bufferSizeMB": "${size}MB", + "bufferSizeAuto": "Auto (Anbefalt)", + "bufferSizeWarning": "Enheten din har ${heap}MB minne. En ${size}MB buffer kan forårsake avspillingsproblemer.", + "subtitleStyling": "Undertekststil", + "subtitleStylingDescription": "Tilpass utseendet på undertekster", + "smallSkipDuration": "Kort hoppvarighet", + "largeSkipDuration": "Lang hoppvarighet", + "secondsUnit": "${seconds} sekunder", + "defaultSleepTimer": "Standard søvntimer", + "minutesUnit": "${minutes} minutter", + "rememberTrackSelections": "Husk sporvalg per serie/film", + "rememberTrackSelectionsDescription": "Lagre automatisk lyd- og undertekstspråkpreferanser når du bytter spor under avspilling", + "clickVideoTogglesPlayback": "Klikk på video for å veksle avspilling", + "clickVideoTogglesPlaybackDescription": "Hvis aktivert, vil klikk på videospilleren spille av/pause videoen. Ellers vil klikk vise/skjule avspillingskontrollene.", + "videoPlayerControls": "Videospillerkontroller", + "keyboardShortcuts": "Tastatursnarveier", + "keyboardShortcutsDescription": "Tilpass tastatursnarveier", + "videoPlayerNavigation": "Videospillernavigering", + "videoPlayerNavigationDescription": "Bruk piltaster for å navigere videospillerkontroller", + "crashReporting": "Krasjrapportering", + "crashReportingDescription": "Send krasjrapporter for å hjelpe med å forbedre appen", + "debugLogging": "Feilsøkingslogging", + "debugLoggingDescription": "Aktiver detaljert logging for feilsøking", + "viewLogs": "Vis logger", + "viewLogsDescription": "Vis applikasjonslogger", + "clearCache": "Tøm hurtigbuffer", + "clearCacheDescription": "Dette vil tømme alle hurtigbufrede bilder og data. Appen kan bruke lengre tid på å laste innhold etter tømming.", + "clearCacheSuccess": "Hurtigbuffer tømt", + "resetSettings": "Tilbakestill innstillinger", + "resetSettingsDescription": "Dette vil tilbakestille alle innstillinger til standardverdier. Denne handlingen kan ikke angres.", + "resetSettingsSuccess": "Innstillinger tilbakestilt", + "shortcutsReset": "Snarveier tilbakestilt til standard", + "about": "Om", + "aboutDescription": "Appinformasjon og lisenser", + "updates": "Oppdateringer", + "updateAvailable": "Oppdatering tilgjengelig", + "checkForUpdates": "Se etter oppdateringer", + "validationErrorEnterNumber": "Vennligst skriv inn et gyldig tall", + "validationErrorDuration": "Varigheten må være mellom ${min} og ${max} ${unit}", + "shortcutAlreadyAssigned": "Snarvei allerede tilordnet til ${action}", + "shortcutUpdated": "Snarvei oppdatert for ${action}", + "autoSkip": "Automatisk hopp", + "autoSkipIntro": "Hopp over intro automatisk", + "autoSkipIntroDescription": "Hopp automatisk over intromarkører etter noen sekunder", + "autoSkipCredits": "Hopp over rulletekst automatisk", + "autoSkipCreditsDescription": "Hopp automatisk over rulletekst og spill neste episode", + "autoSkipDelay": "Forsinkelse for automatisk hopp", + "autoSkipDelayDescription": "Vent ${seconds} sekunder før automatisk hopping", + "downloads": "Nedlastinger", + "downloadLocationDescription": "Velg hvor nedlastet innhold skal lagres", + "downloadLocationDefault": "Standard (App-lagring)", + "downloadLocationCustom": "Egendefinert plassering", + "selectFolder": "Velg mappe", + "resetToDefault": "Tilbakestill til standard", + "currentPath": "Gjeldende: ${path}", + "downloadLocationChanged": "Nedlastingsplassering endret", + "downloadLocationReset": "Nedlastingsplassering tilbakestilt til standard", + "downloadLocationInvalid": "Valgt mappe er ikke skrivbar", + "downloadLocationSelectError": "Kunne ikke velge mappe", + "downloadOnWifiOnly": "Last ned kun på WiFi", + "downloadOnWifiOnlyDescription": "Forhindre nedlastinger på mobildata", + "cellularDownloadBlocked": "Nedlastinger er deaktivert på mobildata. Koble til WiFi eller endre innstillingen.", + "maxVolume": "Maks volum", + "maxVolumeDescription": "Tillat volumforsterkning over 100% for stille media", + "maxVolumePercent": "${percent}%", + "discordRichPresence": "Discord Rich Presence", + "discordRichPresenceDescription": "Vis hva du ser på Discord", + "autoPip": "Auto bilde-i-bilde", + "autoPipDescription": "Gå automatisk til bilde-i-bilde når du forlater appen under avspilling", + "matchContentFrameRate": "Tilpass innholdets bildefrekvens", + "matchContentFrameRateDescription": "Juster skjermens oppdateringsfrekvens for å matche videoinnhold, reduserer hakking og sparer batteri", + "tunneledPlayback": "Tunnelert avspilling", + "tunneledPlaybackDescription": "Bruk maskinvareakselerert videotunnelering. Deaktiver hvis du ser svart skjerm med lyd på HDR-innhold", + "requireProfileSelectionOnOpen": "Spør om profil ved appåpning", + "requireProfileSelectionOnOpenDescription": "Vis profilvalg hver gang appen åpnes", + "confirmExitOnBack": "Bekreft før avslutning", + "confirmExitOnBackDescription": "Vis en bekreftelsesdialog når du trykker tilbake for å avslutte appen", + "showNavBarLabels": "Vis navigasjonsfeltlabeler", + "showNavBarLabelsDescription": "Vis tekstlabeler under navigasjonsfeltikoner" + }, + "search": { + "hint": "Søk i filmer, serier, musikk...", + "tryDifferentTerm": "Prøv et annet søkeord", + "searchYourMedia": "Søk i mediene dine", + "enterTitleActorOrKeyword": "Skriv inn tittel, skuespiller eller nøkkelord" + }, + "hotkeys": { + "setShortcutFor": "Angi snarvei for ${actionName}", + "clearShortcut": "Fjern snarvei", + "actions": { + "playPause": "Spill av/Pause", + "volumeUp": "Volum opp", + "volumeDown": "Volum ned", + "seekForward": "Spol fremover (${seconds}s)", + "seekBackward": "Spol bakover (${seconds}s)", + "fullscreenToggle": "Veksle fullskjerm", + "muteToggle": "Veksle demping", + "subtitleToggle": "Veksle undertekster", + "audioTrackNext": "Neste lydspor", + "subtitleTrackNext": "Neste undertekstspor", + "chapterNext": "Neste kapittel", + "chapterPrevious": "Forrige kapittel", + "speedIncrease": "Øk hastighet", + "speedDecrease": "Reduser hastighet", + "speedReset": "Tilbakestill hastighet", + "subSeekNext": "Spol til neste undertekst", + "subSeekPrev": "Spol til forrige undertekst", + "shaderToggle": "Veksle shadere", + "skipMarker": "Hopp over intro/rulletekst" + } + }, + "pinEntry": { + "enterPin": "Skriv inn PIN", + "showPin": "Vis PIN", + "hidePin": "Skjul PIN" + }, + "fileInfo": { + "title": "Filinformasjon", + "video": "Video", + "audio": "Lyd", + "file": "Fil", + "advanced": "Avansert", + "codec": "Kodek", + "resolution": "Oppløsning", + "bitrate": "Bitrate", + "frameRate": "Bildefrekvens", + "aspectRatio": "Sideforhold", + "profile": "Profil", + "bitDepth": "Bitdybde", + "colorSpace": "Fargerom", + "colorRange": "Fargeområde", + "colorPrimaries": "Fargeprimærer", + "chromaSubsampling": "Krominansnedsampling", + "channels": "Kanaler", + "path": "Sti", + "size": "Størrelse", + "container": "Beholder", + "duration": "Varighet", + "optimizedForStreaming": "Optimalisert for strømming", + "has64bitOffsets": "64-biters forskyvninger" + }, + "mediaMenu": { + "markAsWatched": "Merk som sett", + "markAsUnwatched": "Merk som usett", + "removeFromContinueWatching": "Fjern fra Fortsett å se", + "goToSeries": "Gå til serie", + "goToSeason": "Gå til sesong", + "shufflePlay": "Tilfeldig avspilling", + "fileInfo": "Filinformasjon", + "deleteFromServer": "Slett fra server", + "confirmDelete": "Dette vil permanent slette dette mediet og filene fra serveren din. Dette kan ikke angres.", + "deleteMultipleWarning": "Dette inkluderer alle episoder og deres filer.", + "mediaDeletedSuccessfully": "Medieelement slettet", + "mediaFailedToDelete": "Kunne ikke slette medieelement", + "rate": "Vurder" + }, + "accessibility": { + "mediaCardMovie": "${title}, film", + "mediaCardShow": "${title}, TV-serie", + "mediaCardEpisode": "${title}, ${episodeInfo}", + "mediaCardSeason": "${title}, ${seasonInfo}", + "mediaCardWatched": "sett", + "mediaCardPartiallyWatched": "${percent} prosent sett", + "mediaCardUnwatched": "usett", + "tapToPlay": "Trykk for å spille" + }, + "tooltips": { + "shufflePlay": "Tilfeldig avspilling", + "playTrailer": "Spill trailer", + "markAsWatched": "Merk som sett", + "markAsUnwatched": "Merk som usett" + }, + "videoControls": { + "audioLabel": "Lyd", + "subtitlesLabel": "Undertekster", + "resetToZero": "Tilbakestill til 0ms", + "addTime": "+${amount}${unit}", + "minusTime": "-${amount}${unit}", + "playsLater": "${label} spilles senere", + "playsEarlier": "${label} spilles tidligere", + "noOffset": "Ingen forskyvning", + "letterbox": "Letterbox", + "fillScreen": "Fyll skjerm", + "stretch": "Strekk", + "lockRotation": "Lås rotasjon", + "unlockRotation": "Lås opp rotasjon", + "timerActive": "Timer aktiv", + "playbackWillPauseIn": "Avspilling vil pause om ${duration}", + "sleepTimerCompleted": "Søvntimer fullført – avspilling satt på pause", + "stillWatching": "Ser du fortsatt?", + "pausingIn": "Pauser om ${seconds}s", + "continueWatching": "Fortsett", + "autoPlayNext": "Spill neste automatisk", + "playNext": "Spill neste", + "playButton": "Spill av", + "pauseButton": "Pause", + "seekBackwardButton": "Spol tilbake ${seconds} sekunder", + "seekForwardButton": "Spol fremover ${seconds} sekunder", + "previousButton": "Forrige episode", + "nextButton": "Neste episode", + "previousChapterButton": "Forrige kapittel", + "nextChapterButton": "Neste kapittel", + "muteButton": "Demp", + "unmuteButton": "Opphev demping", + "settingsButton": "Videoinnstillinger", + "audioTrackButton": "Lydspor", + "subtitlesButton": "Undertekster", + "tracksButton": "Lyd og undertekster", + "chaptersButton": "Kapitler", + "versionsButton": "Videoversjoner", + "pipButton": "Bilde-i-bilde-modus", + "aspectRatioButton": "Sideforhold", + "ambientLighting": "Omgivelseslys", + "ambientLightingOn": "Aktiver omgivelseslys", + "ambientLightingOff": "Deaktiver omgivelseslys", + "fullscreenButton": "Gå til fullskjerm", + "exitFullscreenButton": "Avslutt fullskjerm", + "alwaysOnTopButton": "Alltid øverst", + "rotationLockButton": "Rotasjonslås", + "timelineSlider": "Videotidslinje", + "volumeSlider": "Volumnivå", + "endsAt": "Slutter kl. ${time}", + "pipActive": "Spiller i bilde-i-bilde", + "pipFailed": "Bilde-i-bilde kunne ikke starte", + "pipErrors": { + "androidVersion": "Krever Android 8.0 eller nyere", + "iosVersion": "Krever iOS 15.0 eller nyere", + "permissionDisabled": "Bilde-i-bilde-tillatelse er deaktivert. Aktiver den i Innstillinger > Apper > Plezy > Bilde-i-bilde", + "notSupported": "Enheten støtter ikke bilde-i-bilde-modus", + "voSwitchFailed": "Kunne ikke bytte videoutgang for bilde-i-bilde", + "failed": "Bilde-i-bilde kunne ikke starte", + "unknown": "En feil oppstod: ${error}" + }, + "chapters": "Kapitler", + "noChaptersAvailable": "Ingen kapitler tilgjengelig", + "queue": "Kø", + "noQueueItems": "Ingen elementer i kø" + }, + "userStatus": { + "admin": "Administrator", + "restricted": "Begrenset", + "protected": "Beskyttet", + "current": "GJELDENDE" + }, + "messages": { + "markedAsWatched": "Merket som sett", + "markedAsUnwatched": "Merket som usett", + "markedAsWatchedOffline": "Merket som sett (synkroniseres når tilkoblet)", + "markedAsUnwatchedOffline": "Merket som usett (synkroniseres når tilkoblet)", + "removedFromContinueWatching": "Fjernet fra Fortsett å se", + "errorLoading": "Feil: ${error}", + "fileInfoNotAvailable": "Filinformasjon ikke tilgjengelig", + "errorLoadingFileInfo": "Feil ved lasting av filinformasjon: ${error}", + "errorLoadingSeries": "Feil ved lasting av serie", + "errorLoadingSeason": "Feil ved lasting av sesong", + "musicNotSupported": "Musikkavspilling støttes ikke ennå", + "logsCleared": "Logger tømt", + "logsCopied": "Logger kopiert til utklippstavle", + "noLogsAvailable": "Ingen logger tilgjengelig", + "libraryScanning": "Skanner \"${title}\"...", + "libraryScanStarted": "Bibliotekkanning startet for \"${title}\"", + "libraryScanFailed": "Kunne ikke skanne bibliotek: ${error}", + "metadataRefreshing": "Oppdaterer metadata for \"${title}\"...", + "metadataRefreshStarted": "Metadataoppdatering startet for \"${title}\"", + "metadataRefreshFailed": "Kunne ikke oppdatere metadata: ${error}", + "logoutConfirm": "Er du sikker på at du vil logge ut?", + "noSeasonsFound": "Ingen sesonger funnet", + "noEpisodesFound": "Ingen episoder funnet i første sesong", + "noEpisodesFoundGeneral": "Ingen episoder funnet", + "noResultsFound": "Ingen resultater funnet", + "sleepTimerSet": "Søvntimer satt til ${label}", + "noItemsAvailable": "Ingen elementer tilgjengelig", + "failedToCreatePlayQueueNoItems": "Kunne ikke opprette avspillingskø – ingen elementer", + "failedPlayback": "Kunne ikke ${action}: ${error}", + "switchingToCompatiblePlayer": "Bytter til kompatibel spiller...", + "logsUploaded": "Logger lastet opp", + "logsUploadFailed": "Kunne ikke laste opp logger", + "logId": "Logg-ID" + }, + "subtitlingStyling": { + "stylingOptions": "Stilalternativer", + "fontSize": "Skriftstørrelse", + "textColor": "Tekstfarge", + "borderSize": "Kantstørrelse", + "borderColor": "Kantfarge", + "backgroundOpacity": "Bakgrunnsopasitet", + "backgroundColor": "Bakgrunnsfarge", + "position": "Posisjon" + }, + "mpvConfig": { + "title": "mpv.conf", + "description": "Avanserte videospillerinnstillinger", + "presets": "Forhåndsinnstillinger", + "noPresets": "Ingen lagrede forhåndsinnstillinger", + "saveAsPreset": "Lagre som forhåndsinnstilling...", + "presetName": "Forhåndsinnstillingsnavn", + "presetNameHint": "Skriv inn et navn for denne forhåndsinnstillingen", + "loadPreset": "Last inn", + "deletePreset": "Slett", + "presetSaved": "Forhåndsinnstilling lagret", + "presetLoaded": "Forhåndsinnstilling lastet inn", + "presetDeleted": "Forhåndsinnstilling slettet", + "confirmDeletePreset": "Er du sikker på at du vil slette denne forhåndsinnstillingen?", + "configPlaceholder": "gpu-api=vulkan\nhwdec=auto\n# kommentar" + }, + "dialog": { + "confirmAction": "Bekreft handling" + }, + "discover": { + "title": "Oppdag", + "switchProfile": "Bytt profil", + "noContentAvailable": "Ingen innhold tilgjengelig", + "addMediaToLibraries": "Legg til medier i bibliotekene dine", + "continueWatching": "Fortsett å se", + "playEpisode": "S${season}E${episode}", + "overview": "Oversikt", + "cast": "Skuespillere", + "extras": "Trailere og ekstra", + "seasons": "Sesonger", + "studio": "Studio", + "rating": "Vurdering", + "episodeCount": "${count} episoder", + "watchedProgress": "${watched}/${total} sett", + "movie": "Film", + "tvShow": "TV-serie", + "minutesLeft": "${minutes} min igjen" + }, + "errors": { + "searchFailed": "Søk mislyktes: ${error}", + "connectionTimeout": "Tidsavbrudd ved lasting av ${context}", + "connectionFailed": "Kunne ikke koble til Plex-server", + "failedToLoad": "Kunne ikke laste ${context}: ${error}", + "noClientAvailable": "Ingen klient tilgjengelig", + "authenticationFailed": "Autentisering mislyktes: ${error}", + "couldNotLaunchUrl": "Kunne ikke åpne autentiserings-URL", + "pleaseEnterToken": "Vennligst skriv inn et token", + "invalidToken": "Ugyldig token", + "failedToVerifyToken": "Kunne ikke verifisere token: ${error}", + "failedToSwitchProfile": "Kunne ikke bytte til ${displayName}" + }, + "libraries": { + "title": "Biblioteker", + "scanLibraryFiles": "Skann bibliotekfiler", + "scanLibrary": "Skann bibliotek", + "analyze": "Analyser", + "analyzeLibrary": "Analyser bibliotek", + "refreshMetadata": "Oppdater metadata", + "emptyTrash": "Tøm papirkurv", + "emptyingTrash": "Tømmer papirkurv for \"${title}\"...", + "trashEmptied": "Papirkurv tømt for \"${title}\"", + "failedToEmptyTrash": "Kunne ikke tømme papirkurv: ${error}", + "analyzing": "Analyserer \"${title}\"...", + "analysisStarted": "Analyse startet for \"${title}\"", + "failedToAnalyze": "Kunne ikke analysere bibliotek: ${error}", + "noLibrariesFound": "Ingen biblioteker funnet", + "thisLibraryIsEmpty": "Dette biblioteket er tomt", + "all": "Alle", + "clearAll": "Tøm alle", + "scanLibraryConfirm": "Er du sikker på at du vil skanne \"${title}\"?", + "analyzeLibraryConfirm": "Er du sikker på at du vil analysere \"${title}\"?", + "refreshMetadataConfirm": "Er du sikker på at du vil oppdatere metadata for \"${title}\"?", + "emptyTrashConfirm": "Er du sikker på at du vil tømme papirkurven for \"${title}\"?", + "manageLibraries": "Administrer biblioteker", + "sort": "Sorter", + "sortBy": "Sorter etter", + "filters": "Filtre", + "confirmActionMessage": "Er du sikker på at du vil utføre denne handlingen?", + "showLibrary": "Vis bibliotek", + "hideLibrary": "Skjul bibliotek", + "libraryOptions": "Bibliotekalternativer", + "content": "bibliotekinnhold", + "selectLibrary": "Velg bibliotek", + "filtersWithCount": "Filtre (${count})", + "noRecommendations": "Ingen anbefalinger tilgjengelig", + "noCollections": "Ingen samlinger i dette biblioteket", + "noFoldersFound": "Ingen mapper funnet", + "folders": "mapper", + "tabs": { + "recommended": "Anbefalt", + "browse": "Bla gjennom", + "collections": "Samlinger", + "playlists": "Spillelister" + }, + "groupings": { + "all": "Alle", + "movies": "Filmer", + "shows": "TV-serier", + "seasons": "Sesonger", + "episodes": "Episoder", + "folders": "Mapper" + } + }, + "about": { + "title": "Om", + "openSourceLicenses": "Åpen kildekode-lisenser", + "versionLabel": "Versjon ${version}", + "appDescription": "En vakker Plex-klient for Flutter", + "viewLicensesDescription": "Vis lisenser for tredjepartsbiblioteker" + }, + "serverSelection": { + "allServerConnectionsFailed": "Kunne ikke koble til noen servere. Sjekk nettverket ditt og prøv igjen.", + "noServersFoundForAccount": "Ingen servere funnet for ${username} (${email})", + "failedToLoadServers": "Kunne ikke laste servere: ${error}" + }, + "hubDetail": { + "title": "Tittel", + "releaseYear": "Utgivelsesår", + "dateAdded": "Dato lagt til", + "rating": "Vurdering", + "noItemsFound": "Ingen elementer funnet" + }, + "logs": { + "clearLogs": "Tøm logger", + "copyLogs": "Kopier logger", + "uploadLogs": "Last opp logger", + "error": "Feil:", + "stackTrace": "Stabelsporing:" + }, + "licenses": { + "relatedPackages": "Relaterte pakker", + "license": "Lisens", + "licenseNumber": "Lisens ${number}", + "licensesCount": "${count} lisenser" + }, + "navigation": { + "libraries": "Biblioteker", + "downloads": "Nedlastinger", + "liveTv": "Direkte-TV" + }, + "liveTv": { + "title": "Direkte-TV", + "channels": "Kanaler", + "guide": "Programguide", + "noChannels": "Ingen kanaler tilgjengelig", + "noDvr": "Ingen DVR konfigurert på noen server", + "tuneFailed": "Kunne ikke stille inn kanal", + "loading": "Laster kanaler...", + "nowPlaying": "Spilles nå", + "noPrograms": "Ingen programdata tilgjengelig", + "channelNumber": "Kanal ${number}", + "live": "DIREKTE", + "hd": "HD", + "premiere": "NY", + "reloadGuide": "Last inn programguide på nytt", + "allChannels": "Alle kanaler", + "now": "Nå", + "today": "I dag", + "midnight": "Midnatt", + "overnight": "Natt", + "morning": "Morgen", + "daytime": "Dagtid", + "evening": "Kveld", + "lateNight": "Sen kveld", + "whatsOn": "Hva går nå", + "watchChannel": "Se kanal" + }, + "collections": { + "title": "Samlinger", + "collection": "Samling", + "empty": "Samlingen er tom", + "unknownLibrarySection": "Kan ikke slette: Ukjent bibliotekseksjon", + "deleteCollection": "Slett samling", + "deleteConfirm": "Er du sikker på at du vil slette \"${title}\"? Denne handlingen kan ikke angres.", + "deleted": "Samling slettet", + "deleteFailed": "Kunne ikke slette samling", + "deleteFailedWithError": "Kunne ikke slette samling: ${error}", + "failedToLoadItems": "Kunne ikke laste samlingselementer: ${error}", + "selectCollection": "Velg samling", + "collectionName": "Samlingsnavn", + "enterCollectionName": "Skriv inn samlingsnavn", + "addedToCollection": "Lagt til i samling", + "errorAddingToCollection": "Kunne ikke legge til i samling", + "created": "Samling opprettet", + "removeFromCollection": "Fjern fra samling", + "removeFromCollectionConfirm": "Fjerne \"${title}\" fra denne samlingen?", + "removedFromCollection": "Fjernet fra samling", + "removeFromCollectionFailed": "Kunne ikke fjerne fra samling", + "removeFromCollectionError": "Feil ved fjerning fra samling: ${error}" + }, + "playlists": { + "title": "Spillelister", + "playlist": "Spilleliste", + "noPlaylists": "Ingen spillelister funnet", + "create": "Opprett spilleliste", + "playlistName": "Spillelistenavn", + "enterPlaylistName": "Skriv inn spillelistenavn", + "delete": "Slett spilleliste", + "removeItem": "Fjern fra spilleliste", + "smartPlaylist": "Smart spilleliste", + "itemCount": "${count} elementer", + "oneItem": "1 element", + "emptyPlaylist": "Denne spillelisten er tom", + "deleteConfirm": "Slett spilleliste?", + "deleteMessage": "Er du sikker på at du vil slette \"${name}\"?", + "created": "Spilleliste opprettet", + "deleted": "Spilleliste slettet", + "itemAdded": "Lagt til i spilleliste", + "itemRemoved": "Fjernet fra spilleliste", + "selectPlaylist": "Velg spilleliste", + "errorCreating": "Kunne ikke opprette spilleliste", + "errorDeleting": "Kunne ikke slette spilleliste", + "errorLoading": "Kunne ikke laste spillelister", + "errorAdding": "Kunne ikke legge til i spilleliste", + "errorReordering": "Kunne ikke omorganisere spillelisteelement", + "errorRemoving": "Kunne ikke fjerne fra spilleliste" + }, + "watchTogether": { + "title": "Se sammen", + "description": "Se innhold synkronisert med venner og familie", + "createSession": "Opprett økt", + "creating": "Oppretter...", + "joinSession": "Bli med i økt", + "joining": "Blir med...", + "controlMode": "Kontrollmodus", + "controlModeQuestion": "Hvem kan kontrollere avspilling?", + "hostOnly": "Kun vert", + "anyone": "Alle", + "hostingSession": "Er vert for økt", + "inSession": "I økt", + "sessionCode": "Øktkode", + "hostControlsPlayback": "Verten kontrollerer avspilling", + "anyoneCanControl": "Alle kan kontrollere avspilling", + "hostControls": "Vertskontroll", + "anyoneControls": "Alle kontrollerer", + "participants": "Deltakere", + "host": "Vert", + "hostBadge": "VERT", + "youAreHost": "Du er verten", + "watchingWithOthers": "Ser med andre", + "endSession": "Avslutt økt", + "leaveSession": "Forlat økt", + "endSessionQuestion": "Avslutte økt?", + "leaveSessionQuestion": "Forlate økt?", + "endSessionConfirm": "Dette vil avslutte økten for alle deltakere.", + "leaveSessionConfirm": "Du vil bli fjernet fra økten.", + "endSessionConfirmOverlay": "Dette vil avslutte se sammen-økten for alle deltakere.", + "leaveSessionConfirmOverlay": "Du vil bli frakoblet fra se sammen-økten.", + "end": "Avslutt", + "leave": "Forlat", + "syncing": "Synkroniserer...", + "joinWatchSession": "Bli med i se sammen-økt", + "enterCodeHint": "Skriv inn 8-tegns kode", + "pasteFromClipboard": "Lim inn fra utklippstavle", + "pleaseEnterCode": "Vennligst skriv inn en øktkode", + "codeMustBe8Chars": "Øktkoden må være 8 tegn", + "joinInstructions": "Skriv inn øktkoden delt av verten for å bli med i se sammen-økten.", + "failedToCreate": "Kunne ikke opprette økt", + "failedToJoin": "Kunne ikke bli med i økt", + "sessionCodeCopied": "Øktkode kopiert til utklippstavle", + "relayUnreachable": "Reléserveren er utilgjengelig. Dette kan skyldes at internettleverandøren din blokkerer tilkoblingen. Du kan fortsatt prøve, men Se sammen fungerer kanskje ikke.", + "reconnectingToHost": "Kobler til verten på nytt...", + "currentPlayback": "Gjeldende avspilling", + "joinCurrentPlayback": "Bli med i gjeldende avspilling", + "joinCurrentPlaybackDescription": "Hopp tilbake til det verten ser på nå", + "failedToOpenCurrentPlayback": "Kunne ikke åpne gjeldende avspilling", + "participantJoined": "${name} ble med", + "participantLeft": "${name} forlot" + }, + "downloads": { + "title": "Nedlastinger", + "manage": "Administrer", + "tvShows": "TV-serier", + "movies": "Filmer", + "noDownloads": "Ingen nedlastinger ennå", + "noDownloadsDescription": "Nedlastet innhold vil vises her for frakoblet visning", + "downloadNow": "Last ned", + "deleteDownload": "Slett nedlasting", + "retryDownload": "Prøv nedlasting på nytt", + "downloadQueued": "Nedlasting i kø", + "episodesQueued": "${count} episoder i nedlastingskø", + "downloadDeleted": "Nedlasting slettet", + "deleteConfirm": "Er du sikker på at du vil slette \"${title}\"? Dette vil fjerne den nedlastede filen fra enheten din.", + "deletingWithProgress": "Sletter ${title}... (${current} av ${total})", + "noDownloadsTree": "Ingen nedlastinger", + "pauseAll": "Pause alle", + "resumeAll": "Gjenoppta alle", + "deleteAll": "Slett alle" + }, + "shaders": { + "title": "Shadere", + "noShaderDescription": "Ingen videoforbedring", + "nvscalerDescription": "NVIDIA bildeskalering for skarpere video", + "qualityFast": "Rask", + "qualityHQ": "Høy kvalitet", + "mode": "Modus", + "importShader": "Importer shader", + "customShaderDescription": "Egendefinert GLSL-shader", + "shaderImported": "Shader importert", + "shaderImportFailed": "Kunne ikke importere shader", + "deleteShader": "Slett shader", + "deleteShaderConfirm": "Slette \"${name}\"?" + }, + "companionRemote": { + "title": "Følgesvenn-fjernkontroll", + "connectToDevice": "Koble til enhet", + "hostRemoteSession": "Vær vert for fjernøkt", + "controlThisDevice": "Kontroller denne enheten med telefonen din", + "remoteControl": "Fjernkontroll", + "controlDesktop": "Kontroller en stasjonær enhet", + "connectedTo": "Tilkoblet ${name}", + "session": { + "creatingSession": "Oppretter fjernøkt...", + "failedToCreate": "Kunne ikke opprette fjernøkt:", + "noSession": "Ingen økt tilgjengelig", + "scanQrCode": "Skann QR-kode", + "orEnterManually": "Eller skriv inn manuelt", + "hostAddress": "Vertsadresse", + "sessionId": "Økt-ID", + "pin": "PIN", + "connected": "Tilkoblet", + "waitingForConnection": "Venter på tilkobling...", + "usePhoneToControl": "Bruk mobilenheten din til å kontrollere denne appen", + "copiedToClipboard": "${label} kopiert til utklippstavle", + "copyToClipboard": "Kopier til utklippstavle", + "newSession": "Ny økt", + "minimize": "Minimer" + }, + "pairing": { + "scan": "Skann", + "manual": "Manuell", + "pairWithDesktop": "Koble til stasjonær", + "enterSessionDetails": "Skriv inn øktdetaljene som vises på den stasjonære enheten din", + "hostAddressHint": "192.168.1.100:48632", + "sessionIdHint": "Skriv inn 8-tegns økt-ID", + "pinHint": "Skriv inn 6-sifret PIN", + "connecting": "Kobler til...", + "tips": "Tips", + "tipDesktop": "Åpne Plezy på datamaskinen din og aktiver Følgesvenn-fjernkontroll fra innstillinger eller meny", + "tipScan": "Bruk Skann-fanen for å raskt koble til ved å skanne QR-koden på datamaskinen din", + "tipWifi": "Sørg for at begge enhetene er på samme WiFi-nettverk", + "cameraPermissionRequired": "Kameratillatelse kreves for å skanne QR-koder.\nVennligst gi kameratilgang i enhetsinnstillingene.", + "cameraError": "Kunne ikke starte kamera: ${error}", + "scanInstruction": "Pek kameraet mot QR-koden som vises på datamaskinen din", + "invalidQrCode": "Ugyldig QR-kodeformat", + "validationHostRequired": "Vennligst skriv inn vertsadresse", + "validationHostFormat": "Formatet må være IP:port (f.eks. 192.168.1.100:48632)", + "validationSessionIdRequired": "Vennligst skriv inn en økt-ID", + "validationSessionIdLength": "Økt-ID må være 8 tegn", + "validationPinRequired": "Vennligst skriv inn en PIN", + "validationPinLength": "PIN må være 6 sifre", + "connectionTimedOut": "Tilkoblingen ble tidsavbrutt. Sjekk økt-ID og PIN.", + "sessionNotFound": "Kunne ikke finne økten. Sjekk legitimasjonen din.", + "failedToConnect": "Kunne ikke koble til: ${error}" + }, + "remote": { + "disconnectConfirm": "Vil du koble fra fjernøkten?", + "reconnecting": "Kobler til på nytt...", + "attemptOf": "Forsøk ${current} av 5", + "retryNow": "Prøv nå", + "connectionError": "Tilkoblingsfeil", + "notConnected": "Ikke tilkoblet", + "tabRemote": "Fjernkontroll", + "tabPlay": "Spill av", + "tabMore": "Mer", + "menu": "Meny", + "tabNavigation": "Fanenavigering", + "tabDiscover": "Oppdag", + "tabLibraries": "Biblioteker", + "tabSearch": "Søk", + "tabDownloads": "Nedlastinger", + "tabSettings": "Innstillinger", + "previous": "Forrige", + "playPause": "Spill av/Pause", + "next": "Neste", + "seekBack": "Spol tilbake", + "stop": "Stopp", + "seekForward": "Spol fremover", + "volume": "Volum", + "volumeDown": "Ned", + "volumeUp": "Opp", + "fullscreen": "Fullskjerm", + "subtitles": "Undertekster", + "audio": "Lyd", + "searchHint": "Søk på stasjonær..." + } + }, + "videoSettings": { + "playbackSettings": "Avspillingsinnstillinger", + "playbackSpeed": "Avspillingshastighet", + "sleepTimer": "Søvntimer", + "audioSync": "Lydsynkronisering", + "subtitleSync": "Undertekstsynkronisering", + "hdr": "HDR", + "audioOutput": "Lydutgang", + "performanceOverlay": "Ytelsesoverlegg", + "audioPassthrough": "Lydgjennomgang", + "audioNormalization": "Lydnormalisering" + }, + "externalPlayer": { + "title": "Ekstern spiller", + "useExternalPlayer": "Bruk ekstern spiller", + "useExternalPlayerDescription": "Åpne videoer i en ekstern app i stedet for den innebygde spilleren", + "selectPlayer": "Velg spiller", + "systemDefault": "Systemstandard", + "addCustomPlayer": "Legg til egendefinert spiller", + "playerName": "Spillernavn", + "playerCommand": "Kommando", + "playerPackage": "Pakkenavn", + "playerUrlScheme": "URL-skjema", + "customPlayer": "Egendefinert spiller", + "off": "Av", + "launchFailed": "Kunne ikke åpne ekstern spiller", + "appNotInstalled": "${name} er ikke installert", + "playInExternalPlayer": "Spill av i ekstern spiller" + }, + "metadataEdit": { + "editMetadata": "Rediger...", + "screenTitle": "Rediger metadata", + "basicInfo": "Grunnleggende info", + "artwork": "Kunstverk", + "advancedSettings": "Avanserte innstillinger", + "title": "Tittel", + "sortTitle": "Sorteringsstittel", + "originalTitle": "Originaltittel", + "releaseDate": "Utgivelsesdato", + "contentRating": "Innholdsvurdering", + "studio": "Studio", + "tagline": "Slagord", + "summary": "Sammendrag", + "poster": "Plakat", + "background": "Bakgrunn", + "selectPoster": "Velg plakat", + "selectBackground": "Velg bakgrunn", + "fromUrl": "Fra URL", + "uploadFile": "Last opp fil", + "enterImageUrl": "Skriv inn bilde-URL", + "imageUrl": "Bilde-URL", + "metadataUpdated": "Metadata oppdatert", + "metadataUpdateFailed": "Kunne ikke oppdatere metadata", + "artworkUpdated": "Kunstverk oppdatert", + "artworkUpdateFailed": "Kunne ikke oppdatere kunstverk", + "noArtworkAvailable": "Ingen kunstverk tilgjengelig", + "notSet": "Ikke angitt", + "libraryDefault": "Bibliotekstandard", + "accountDefault": "Kontostandard", + "seriesDefault": "Seriestandard", + "episodeSorting": "Episodesortering", + "oldestFirst": "Eldste først", + "newestFirst": "Nyeste først", + "keep": "Behold", + "allEpisodes": "Alle episoder", + "latestEpisodes": "${count} nyeste episoder", + "latestEpisode": "Nyeste episode", + "episodesAddedPastDays": "Episoder lagt til de siste ${count} dagene", + "deleteAfterPlaying": "Slett episoder etter avspilling", + "never": "Aldri", + "afterADay": "Etter en dag", + "afterAWeek": "Etter en uke", + "afterAMonth": "Etter en måned", + "onNextRefresh": "Ved neste oppdatering", + "seasons": "Sesonger", + "show": "Vis", + "hide": "Skjul", + "episodeOrdering": "Episoderekkefølge", + "tmdbAiring": "The Movie Database (Sendt)", + "tvdbAiring": "TheTVDB (Sendt)", + "tvdbAbsolute": "TheTVDB (Absolutt)", + "metadataLanguage": "Metadataspråk", + "useOriginalTitle": "Bruk originaltittel", + "preferredAudioLanguage": "Foretrukket lydspråk", + "preferredSubtitleLanguage": "Foretrukket undertekstspråk", + "subtitleMode": "Automatisk valg av undertekstmodus", + "manuallySelected": "Manuelt valgt", + "shownWithForeignAudio": "Vist med fremmedspråklig lyd", + "alwaysEnabled": "Alltid aktivert" + } +} diff --git a/lib/i18n/pl.i18n.json b/lib/i18n/pl.i18n.json new file mode 100644 index 00000000..fec9066c --- /dev/null +++ b/lib/i18n/pl.i18n.json @@ -0,0 +1,902 @@ +{ + "app": { + "title": "Plezy" + }, + "auth": { + "signInWithPlex": "Zaloguj się przez Plex", + "showQRCode": "Pokaż kod QR", + "authenticate": "Uwierzytelnienie", + "debugEnterToken": "Debug: Wprowadź token Plex", + "plexTokenLabel": "Token autoryzacji Plex", + "plexTokenHint": "Wprowadź swój token Plex.tv", + "authenticationTimeout": "Upłynął czas uwierzytelniania. Spróbuj ponownie.", + "scanQRToSignIn": "Zeskanuj ten kod QR, aby się zalogować", + "waitingForAuth": "Oczekiwanie na uwierzytelnienie...\nDokończ logowanie w przeglądarce.", + "useBrowser": "Użyj przeglądarki" + }, + "common": { + "cancel": "Anuluj", + "save": "Zapisz", + "close": "Zamknij", + "clear": "Wyczyść", + "reset": "Resetuj", + "later": "Później", + "submit": "Wyślij", + "confirm": "Potwierdź", + "retry": "Ponów", + "logout": "Wyloguj", + "unknown": "Nieznane", + "refresh": "Odśwież", + "yes": "Tak", + "no": "Nie", + "delete": "Usuń", + "shuffle": "Losowo", + "addTo": "Dodaj do...", + "createNew": "Utwórz nowy", + "remove": "Usuń", + "paste": "Wklej", + "connect": "Połącz", + "disconnect": "Rozłącz", + "play": "Odtwórz", + "pause": "Pauza", + "resume": "Wznów", + "error": "Błąd", + "search": "Szukaj", + "home": "Strona główna", + "back": "Wstecz", + "settings": "Ustawienia", + "mute": "Wycisz", + "ok": "OK", + "loading": "Ładowanie...", + "reconnect": "Połącz ponownie", + "exitConfirmTitle": "Zamknąć aplikację?", + "exitConfirmMessage": "Czy na pewno chcesz wyjść?", + "dontAskAgain": "Nie pytaj ponownie", + "exit": "Wyjdź", + "viewAll": "Pokaż wszystko", + "checkingNetwork": "Sprawdzanie sieci...", + "refreshingServers": "Odświeżanie serwerów...", + "loadingServers": "Ładowanie serwerów...", + "connectingToServers": "Łączenie z serwerami...", + "startingOfflineMode": "Uruchamianie trybu offline..." + }, + "screens": { + "licenses": "Licencje", + "switchProfile": "Zmień profil", + "subtitleStyling": "Styl napisów", + "mpvConfig": "mpv.conf", + "logs": "Logi" + }, + "update": { + "available": "Dostępna aktualizacja", + "versionAvailable": "Dostępna wersja ${version}", + "currentVersion": "Bieżąca: ${version}", + "skipVersion": "Pomiń tę wersję", + "viewRelease": "Zobacz wydanie", + "latestVersion": "Masz najnowszą wersję", + "checkFailed": "Nie udało się sprawdzić aktualizacji" + }, + "settings": { + "title": "Ustawienia", + "language": "Język", + "theme": "Motyw", + "appearance": "Wygląd", + "videoPlayback": "Odtwarzanie wideo", + "advanced": "Zaawansowane", + "episodePosterMode": "Styl plakatu odcinka", + "seriesPoster": "Plakat serialu", + "seriesPosterDescription": "Pokaż plakat serialu dla wszystkich odcinków", + "seasonPoster": "Plakat sezonu", + "seasonPosterDescription": "Pokaż plakat odpowiedniego sezonu dla odcinków", + "episodeThumbnail": "Miniatura odcinka", + "episodeThumbnailDescription": "Pokaż miniatury zrzutów ekranu odcinków w formacie 16:9", + "showHeroSectionDescription": "Wyświetl karuzelę wyróżnionych treści na ekranie głównym", + "secondsLabel": "Sekundy", + "minutesLabel": "Minuty", + "secondsShort": "s", + "minutesShort": "m", + "durationHint": "Wprowadź czas (${min}-${max})", + "systemTheme": "Systemowy", + "systemThemeDescription": "Podążaj za ustawieniami systemu", + "lightTheme": "Jasny", + "darkTheme": "Ciemny", + "oledTheme": "OLED", + "oledThemeDescription": "Czysta czerń dla ekranów OLED", + "libraryDensity": "Gęstość biblioteki", + "compact": "Kompaktowy", + "compactDescription": "Mniejsze karty, więcej widocznych elementów", + "normal": "Normalny", + "normalDescription": "Domyślny rozmiar", + "comfortable": "Wygodny", + "comfortableDescription": "Większe karty, mniej widocznych elementów", + "viewMode": "Tryb widoku", + "gridView": "Siatka", + "gridViewDescription": "Wyświetl elementy w układzie siatki", + "listView": "Lista", + "listViewDescription": "Wyświetl elementy w układzie listy", + "showHeroSection": "Pokaż sekcję wyróżnioną", + "useGlobalHubs": "Użyj układu Plex Home", + "useGlobalHubsDescription": "Pokaż huby strony głównej jak w oficjalnym kliencie Plex. Gdy wyłączone, pokazuje rekomendacje per biblioteka.", + "showServerNameOnHubs": "Pokaż nazwę serwera w hubach", + "showServerNameOnHubsDescription": "Zawsze wyświetlaj nazwę serwera w tytułach hubów. Gdy wyłączone, pokazuje tylko dla zduplikowanych nazw.", + "alwaysKeepSidebarOpen": "Zawsze utrzymuj panel boczny otwarty", + "alwaysKeepSidebarOpenDescription": "Panel boczny jest rozwinięty, a obszar treści dostosowuje się", + "showUnwatchedCount": "Pokaż liczbę nieobejrzanych", + "showUnwatchedCountDescription": "Wyświetl liczbę nieobejrzanych odcinków w serialach i sezonach", + "hideSpoilers": "Ukryj spoilery nieobejrzanych odcinków", + "hideSpoilersDescription": "Rozmyj miniatury i ukryj opisy odcinków, których jeszcze nie obejrzałeś", + "playerBackend": "Backend odtwarzacza", + "exoPlayer": "ExoPlayer (Zalecany)", + "exoPlayerDescription": "Natywny odtwarzacz Android z lepszą obsługą sprzętową", + "mpv": "mpv", + "mpvDescription": "Zaawansowany odtwarzacz z większą liczbą funkcji i obsługą napisów ASS", + "hardwareDecoding": "Dekodowanie sprzętowe", + "hardwareDecodingDescription": "Użyj akceleracji sprzętowej, gdy dostępna", + "bufferSize": "Rozmiar bufora", + "bufferSizeMB": "${size}MB", + "bufferSizeAuto": "Automatyczny (Zalecany)", + "bufferSizeWarning": "Twoje urządzenie ma ${heap}MB pamięci. Bufor ${size}MB może powodować problemy z odtwarzaniem.", + "subtitleStyling": "Styl napisów", + "subtitleStylingDescription": "Dostosuj wygląd napisów", + "smallSkipDuration": "Krótki skok", + "largeSkipDuration": "Długi skok", + "secondsUnit": "${seconds} sekund", + "defaultSleepTimer": "Domyślny wyłącznik czasowy", + "minutesUnit": "${minutes} minut", + "rememberTrackSelections": "Zapamiętaj wybór ścieżek per serial/film", + "rememberTrackSelectionsDescription": "Automatycznie zapisuj preferencje języka audio i napisów przy zmianie ścieżek podczas odtwarzania", + "clickVideoTogglesPlayback": "Kliknięcie wideo przełącza odtwarzanie/pauzę", + "clickVideoTogglesPlaybackDescription": "Gdy włączone, kliknięcie na odtwarzacz wideo odtwarza/wstrzymuje. W przeciwnym razie pokazuje/ukrywa kontrolki.", + "videoPlayerControls": "Kontrolki odtwarzacza wideo", + "keyboardShortcuts": "Skróty klawiszowe", + "keyboardShortcutsDescription": "Dostosuj skróty klawiszowe", + "videoPlayerNavigation": "Nawigacja odtwarzacza wideo", + "videoPlayerNavigationDescription": "Użyj klawiszy strzałek do nawigacji kontrolkami odtwarzacza", + "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", + "viewLogs": "Pokaż logi", + "viewLogsDescription": "Pokaż logi aplikacji", + "clearCache": "Wyczyść pamięć podręczną", + "clearCacheDescription": "Spowoduje to wyczyszczenie wszystkich zapisanych obrazów i danych. Po wyczyszczeniu aplikacja może ładować treści wolniej.", + "clearCacheSuccess": "Pamięć podręczna wyczyszczona", + "resetSettings": "Zresetuj ustawienia", + "resetSettingsDescription": "Wszystkie ustawienia zostaną przywrócone do wartości domyślnych. Tej operacji nie można cofnąć.", + "resetSettingsSuccess": "Ustawienia zresetowane pomyślnie", + "shortcutsReset": "Skróty przywrócone do domyślnych", + "about": "O aplikacji", + "aboutDescription": "Informacje o aplikacji i licencje", + "updates": "Aktualizacje", + "updateAvailable": "Dostępna aktualizacja", + "checkForUpdates": "Sprawdź aktualizacje", + "validationErrorEnterNumber": "Wprowadź prawidłową liczbę", + "validationErrorDuration": "Czas musi być między ${min} a ${max} ${unit}", + "shortcutAlreadyAssigned": "Skrót jest już przypisany do ${action}", + "shortcutUpdated": "Skrót zaktualizowany dla ${action}", + "autoSkip": "Automatyczne pomijanie", + "autoSkipIntro": "Automatyczne pomijanie intro", + "autoSkipIntroDescription": "Automatycznie pomijaj znaczniki intro po kilku sekundach", + "autoSkipCredits": "Automatyczne pomijanie napisów końcowych", + "autoSkipCreditsDescription": "Automatycznie pomijaj napisy końcowe i odtwórz następny odcinek", + "autoSkipDelay": "Opóźnienie automatycznego pomijania", + "autoSkipDelayDescription": "Czekaj ${seconds} sekund przed automatycznym pominięciem", + "downloads": "Pobrania", + "downloadLocationDescription": "Wybierz miejsce przechowywania pobranych treści", + "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", + "downloadLocationSelectError": "Nie udało się wybrać folderu", + "downloadOnWifiOnly": "Pobieraj tylko przez WiFi", + "downloadOnWifiOnlyDescription": "Blokuj pobieranie na danych komórkowych", + "cellularDownloadBlocked": "Pobieranie na danych komórkowych jest wyłączone. Połącz się z WiFi 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}%", + "discordRichPresence": "Discord Rich Presence", + "discordRichPresenceDescription": "Pokaż, co oglądasz na Discordzie", + "autoPip": "Automatyczny obraz w obrazie", + "autoPipDescription": "Automatycznie przejdź do trybu obraz w obrazie przy wyjściu z aplikacji podczas odtwarzania", + "matchContentFrameRate": "Dopasuj częstotliwość klatek do treści", + "matchContentFrameRateDescription": "Dostosuj częstotliwość odświeżania ekranu do treści wideo, zmniejszając drgania i oszczędzając baterię", + "tunneledPlayback": "Tunelowane odtwarzanie", + "tunneledPlaybackDescription": "Użyj sprzętowo przyspieszonego tunelowania wideo. Wyłącz, jeśli widzisz czarny ekran z dźwiękiem przy treściach HDR", + "requireProfileSelectionOnOpen": "Pytaj o profil przy otwarciu aplikacji", + "requireProfileSelectionOnOpenDescription": "Pokaż wybór profilu za każdym razem, gdy aplikacja jest otwierana", + "confirmExitOnBack": "Potwierdź przed wyjściem", + "confirmExitOnBackDescription": "Pokaż dialog potwierdzenia przy naciśnięciu wstecz, aby wyjść z aplikacji", + "showNavBarLabels": "Pokaż etykiety paska nawigacji", + "showNavBarLabelsDescription": "Wyświetl tekstowe etykiety pod ikonami paska nawigacji" + }, + "search": { + "hint": "Szukaj filmów, seriali, muzyki...", + "tryDifferentTerm": "Spróbuj innego wyszukiwania", + "searchYourMedia": "Przeszukaj swoje media", + "enterTitleActorOrKeyword": "Wprowadź tytuł, aktora lub słowo kluczowe" + }, + "hotkeys": { + "setShortcutFor": "Ustaw skrót dla ${actionName}", + "clearShortcut": "Wyczyść skrót", + "actions": { + "playPause": "Odtwórz/Pauza", + "volumeUp": "Głośniej", + "volumeDown": "Ciszej", + "seekForward": "Przewiń do przodu (${seconds}s)", + "seekBackward": "Przewiń do tyłu (${seconds}s)", + "fullscreenToggle": "Pełny ekran", + "muteToggle": "Wyciszenie", + "subtitleToggle": "Napisy", + "audioTrackNext": "Następna ścieżka audio", + "subtitleTrackNext": "Następna ścieżka napisów", + "chapterNext": "Następny rozdział", + "chapterPrevious": "Poprzedni rozdział", + "speedIncrease": "Zwiększ prędkość", + "speedDecrease": "Zmniejsz prędkość", + "speedReset": "Zresetuj prędkość", + "subSeekNext": "Przewiń do następnego napisu", + "subSeekPrev": "Przewiń do poprzedniego napisu", + "shaderToggle": "Przełącz shadery", + "skipMarker": "Pomiń intro/napisy końcowe" + } + }, + "pinEntry": { + "enterPin": "Wprowadź PIN", + "showPin": "Pokaż PIN", + "hidePin": "Ukryj PIN" + }, + "fileInfo": { + "title": "Informacje o pliku", + "video": "Wideo", + "audio": "Audio", + "file": "Plik", + "advanced": "Zaawansowane", + "codec": "Kodek", + "resolution": "Rozdzielczość", + "bitrate": "Bitrate", + "frameRate": "Klatki na sekundę", + "aspectRatio": "Proporcje", + "profile": "Profil", + "bitDepth": "Głębia bitowa", + "colorSpace": "Przestrzeń kolorów", + "colorRange": "Zakres kolorów", + "colorPrimaries": "Kolory podstawowe", + "chromaSubsampling": "Subsampling chrominancji", + "channels": "Kanały", + "path": "Ścieżka", + "size": "Rozmiar", + "container": "Kontener", + "duration": "Czas trwania", + "optimizedForStreaming": "Zoptymalizowane do strumieniowania", + "has64bitOffsets": "64-bitowe offsety" + }, + "mediaMenu": { + "markAsWatched": "Oznacz jako obejrzane", + "markAsUnwatched": "Oznacz jako nieobejrzane", + "removeFromContinueWatching": "Usuń z kontynuowania oglądania", + "goToSeries": "Przejdź do serialu", + "goToSeason": "Przejdź do sezonu", + "shufflePlay": "Odtwarzanie losowe", + "fileInfo": "Informacje o pliku", + "deleteFromServer": "Usuń z serwera", + "confirmDelete": "To trwale usunie te multimedia i ich pliki z twojego serwera. Tej operacji nie można cofnąć.", + "deleteMultipleWarning": "Obejmuje to wszystkie odcinki i ich pliki.", + "mediaDeletedSuccessfully": "Element multimedialny usunięty pomyślnie", + "mediaFailedToDelete": "Nie udało się usunąć elementu multimedialnego", + "rate": "Oceń" + }, + "accessibility": { + "mediaCardMovie": "${title}, film", + "mediaCardShow": "${title}, serial TV", + "mediaCardEpisode": "${title}, ${episodeInfo}", + "mediaCardSeason": "${title}, ${seasonInfo}", + "mediaCardWatched": "obejrzane", + "mediaCardPartiallyWatched": "${percent} procent obejrzane", + "mediaCardUnwatched": "nieobejrzane", + "tapToPlay": "Dotknij, aby odtworzyć" + }, + "tooltips": { + "shufflePlay": "Odtwarzanie losowe", + "playTrailer": "Odtwórz zwiastun", + "markAsWatched": "Oznacz jako obejrzane", + "markAsUnwatched": "Oznacz jako nieobejrzane" + }, + "videoControls": { + "audioLabel": "Audio", + "subtitlesLabel": "Napisy", + "resetToZero": "Zresetuj do 0ms", + "addTime": "+${amount}${unit}", + "minusTime": "-${amount}${unit}", + "playsLater": "${label} odtwarza później", + "playsEarlier": "${label} odtwarza wcześniej", + "noOffset": "Bez przesunięcia", + "letterbox": "Letterbox", + "fillScreen": "Wypełnij ekran", + "stretch": "Rozciągnij", + "lockRotation": "Zablokuj obrót", + "unlockRotation": "Odblokuj obrót", + "timerActive": "Wyłącznik aktywny", + "playbackWillPauseIn": "Odtwarzanie zatrzyma się za ${duration}", + "sleepTimerCompleted": "Wyłącznik czasowy zakończony — odtwarzanie wstrzymane", + "stillWatching": "Nadal oglądasz?", + "pausingIn": "Pauza za ${seconds}s", + "continueWatching": "Kontynuuj", + "autoPlayNext": "Automatycznie odtwórz następny", + "playNext": "Odtwórz następny", + "playButton": "Odtwórz", + "pauseButton": "Pauza", + "seekBackwardButton": "Przewiń do tyłu o ${seconds} sekund", + "seekForwardButton": "Przewiń do przodu o ${seconds} sekund", + "previousButton": "Poprzedni odcinek", + "nextButton": "Następny odcinek", + "previousChapterButton": "Poprzedni rozdział", + "nextChapterButton": "Następny rozdział", + "muteButton": "Wycisz", + "unmuteButton": "Wyłącz wyciszenie", + "settingsButton": "Ustawienia wideo", + "audioTrackButton": "Ścieżki audio", + "subtitlesButton": "Napisy", + "tracksButton": "Audio i napisy", + "chaptersButton": "Rozdziały", + "versionsButton": "Wersje wideo", + "pipButton": "Tryb obraz w obrazie", + "aspectRatioButton": "Proporcje", + "ambientLighting": "Oświetlenie otoczenia", + "ambientLightingOn": "Włącz oświetlenie otoczenia", + "ambientLightingOff": "Wyłącz oświetlenie otoczenia", + "fullscreenButton": "Wejdź w pełny ekran", + "exitFullscreenButton": "Wyjdź z pełnego ekranu", + "alwaysOnTopButton": "Zawsze na wierzchu", + "rotationLockButton": "Blokada obrotu", + "timelineSlider": "Oś czasu wideo", + "volumeSlider": "Poziom głośności", + "endsAt": "Kończy się o ${time}", + "pipActive": "Odtwarzanie w trybie obraz w obrazie", + "pipFailed": "Nie udało się uruchomić trybu obraz w obrazie", + "pipErrors": { + "androidVersion": "Wymaga Androida 8.0 lub nowszego", + "iosVersion": "Wymaga iOS 15.0 lub nowszego", + "permissionDisabled": "Uprawnienie obraz w obrazie jest wyłączone. Włącz w Ustawienia > Aplikacje > Plezy > Obraz w obrazie", + "notSupported": "Urządzenie nie obsługuje trybu obraz w obrazie", + "voSwitchFailed": "Nie udało się przełączyć wyjścia wideo dla trybu obraz w obrazie", + "failed": "Nie udało się uruchomić trybu obraz w obrazie", + "unknown": "Wystąpił błąd: ${error}" + }, + "chapters": "Rozdziały", + "noChaptersAvailable": "Brak dostępnych rozdziałów", + "queue": "Kolejka", + "noQueueItems": "Brak elementów w kolejce" + }, + "userStatus": { + "admin": "Administrator", + "restricted": "Ograniczony", + "protected": "Chroniony", + "current": "BIEŻĄCY" + }, + "messages": { + "markedAsWatched": "Oznaczono jako obejrzane", + "markedAsUnwatched": "Oznaczono jako nieobejrzane", + "markedAsWatchedOffline": "Oznaczono jako obejrzane (zsynchronizuje się po połączeniu)", + "markedAsUnwatchedOffline": "Oznaczono jako nieobejrzane (zsynchronizuje się po połączeniu)", + "removedFromContinueWatching": "Usunięto z kontynuowania oglądania", + "errorLoading": "Błąd: ${error}", + "fileInfoNotAvailable": "Informacje o pliku niedostępne", + "errorLoadingFileInfo": "Błąd ładowania informacji o pliku: ${error}", + "errorLoadingSeries": "Błąd ładowania serialu", + "errorLoadingSeason": "Błąd ładowania sezonu", + "musicNotSupported": "Odtwarzanie muzyki nie jest jeszcze obsługiwane", + "logsCleared": "Logi wyczyszczone", + "logsCopied": "Logi skopiowane do schowka", + "noLogsAvailable": "Brak dostępnych logów", + "libraryScanning": "Skanowanie \"${title}\"...", + "libraryScanStarted": "Rozpoczęto skanowanie biblioteki \"${title}\"", + "libraryScanFailed": "Nie udało się zeskanować biblioteki: ${error}", + "metadataRefreshing": "Odświeżanie metadanych \"${title}\"...", + "metadataRefreshStarted": "Rozpoczęto odświeżanie metadanych \"${title}\"", + "metadataRefreshFailed": "Nie udało się odświeżyć metadanych: ${error}", + "logoutConfirm": "Czy na pewno chcesz się wylogować?", + "noSeasonsFound": "Nie znaleziono sezonów", + "noEpisodesFound": "Nie znaleziono odcinków w pierwszym sezonie", + "noEpisodesFoundGeneral": "Nie znaleziono odcinków", + "noResultsFound": "Nie znaleziono wyników", + "sleepTimerSet": "Wyłącznik czasowy ustawiony na ${label}", + "noItemsAvailable": "Brak dostępnych elementów", + "failedToCreatePlayQueueNoItems": "Nie udało się utworzyć kolejki odtwarzania — brak elementów", + "failedPlayback": "Nie udało się ${action}: ${error}", + "switchingToCompatiblePlayer": "Przełączanie na kompatybilny odtwarzacz...", + "logsUploaded": "Logi przesłane", + "logsUploadFailed": "Nie udało się przesłać logów", + "logId": "ID logu" + }, + "subtitlingStyling": { + "stylingOptions": "Opcje stylu", + "fontSize": "Rozmiar czcionki", + "textColor": "Kolor tekstu", + "borderSize": "Rozmiar obramowania", + "borderColor": "Kolor obramowania", + "backgroundOpacity": "Przezroczystość tła", + "backgroundColor": "Kolor tła", + "position": "Pozycja" + }, + "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", + "deletePreset": "Usuń", + "presetSaved": "Preset zapisany", + "presetLoaded": "Preset załadowany", + "presetDeleted": "Preset usunięty", + "confirmDeletePreset": "Czy na pewno chcesz usunąć ten preset?", + "configPlaceholder": "gpu-api=vulkan\nhwdec=auto\n# comment" + }, + "dialog": { + "confirmAction": "Potwierdź działanie" + }, + "discover": { + "title": "Odkryj", + "switchProfile": "Zmień profil", + "noContentAvailable": "Brak dostępnych treści", + "addMediaToLibraries": "Dodaj multimedia do swoich bibliotek", + "continueWatching": "Kontynuuj oglądanie", + "playEpisode": "S${season}E${episode}", + "overview": "Opis", + "cast": "Obsada", + "extras": "Zwiastuny i dodatki", + "seasons": "Sezony", + "studio": "Studio", + "rating": "Ocena", + "episodeCount": "${count} odcinków", + "watchedProgress": "${watched}/${total} obejrzanych", + "movie": "Film", + "tvShow": "Serial TV", + "minutesLeft": "${minutes} min pozostało" + }, + "errors": { + "searchFailed": "Wyszukiwanie nie powiodło się: ${error}", + "connectionTimeout": "Limit czasu połączenia przy ładowaniu ${context}", + "connectionFailed": "Nie można połączyć z serwerem Plex", + "failedToLoad": "Nie udało się załadować ${context}: ${error}", + "noClientAvailable": "Brak dostępnego klienta", + "authenticationFailed": "Uwierzytelnienie nie powiodło się: ${error}", + "couldNotLaunchUrl": "Nie można otworzyć URL uwierzytelniania", + "pleaseEnterToken": "Wprowadź token", + "invalidToken": "Nieprawidłowy token", + "failedToVerifyToken": "Nie udało się zweryfikować tokena: ${error}", + "failedToSwitchProfile": "Nie udało się przełączyć na ${displayName}" + }, + "libraries": { + "title": "Biblioteki", + "scanLibraryFiles": "Skanuj pliki biblioteki", + "scanLibrary": "Skanuj bibliotekę", + "analyze": "Analizuj", + "analyzeLibrary": "Analizuj bibliotekę", + "refreshMetadata": "Odśwież metadane", + "emptyTrash": "Opróżnij kosz", + "emptyingTrash": "Opróżnianie kosza dla \"${title}\"...", + "trashEmptied": "Kosz opróżniony dla \"${title}\"", + "failedToEmptyTrash": "Nie udało się opróżnić kosza: ${error}", + "analyzing": "Analizowanie \"${title}\"...", + "analysisStarted": "Analiza rozpoczęta dla \"${title}\"", + "failedToAnalyze": "Nie udało się przeanalizować biblioteki: ${error}", + "noLibrariesFound": "Nie znaleziono bibliotek", + "thisLibraryIsEmpty": "Ta biblioteka jest pusta", + "all": "Wszystkie", + "clearAll": "Wyczyść wszystko", + "scanLibraryConfirm": "Czy na pewno chcesz zeskanować \"${title}\"?", + "analyzeLibraryConfirm": "Czy na pewno chcesz przeanalizować \"${title}\"?", + "refreshMetadataConfirm": "Czy na pewno chcesz odświeżyć metadane dla \"${title}\"?", + "emptyTrashConfirm": "Czy na pewno chcesz opróżnić kosz dla \"${title}\"?", + "manageLibraries": "Zarządzaj bibliotekami", + "sort": "Sortuj", + "sortBy": "Sortuj wg", + "filters": "Filtry", + "confirmActionMessage": "Czy na pewno chcesz wykonać tę operację?", + "showLibrary": "Pokaż bibliotekę", + "hideLibrary": "Ukryj bibliotekę", + "libraryOptions": "Opcje biblioteki", + "content": "zawartość biblioteki", + "selectLibrary": "Wybierz bibliotekę", + "filtersWithCount": "Filtry (${count})", + "noRecommendations": "Brak dostępnych rekomendacji", + "noCollections": "Brak kolekcji w tej bibliotece", + "noFoldersFound": "Nie znaleziono folderów", + "folders": "foldery", + "tabs": { + "recommended": "Rekomendowane", + "browse": "Przeglądaj", + "collections": "Kolekcje", + "playlists": "Playlisty" + }, + "groupings": { + "all": "Wszystkie", + "movies": "Filmy", + "shows": "Seriale TV", + "seasons": "Sezony", + "episodes": "Odcinki", + "folders": "Foldery" + } + }, + "about": { + "title": "O aplikacji", + "openSourceLicenses": "Licencje open source", + "versionLabel": "Wersja ${version}", + "appDescription": "Piękny klient Plex na Flutter", + "viewLicensesDescription": "Zobacz licencje bibliotek zewnętrznych" + }, + "serverSelection": { + "allServerConnectionsFailed": "Nie udało się połączyć z żadnym serwerem. Sprawdź sieć i spróbuj ponownie.", + "noServersFoundForAccount": "Nie znaleziono serwerów dla ${username} (${email})", + "failedToLoadServers": "Nie udało się załadować serwerów: ${error}" + }, + "hubDetail": { + "title": "Tytuł", + "releaseYear": "Rok premiery", + "dateAdded": "Data dodania", + "rating": "Ocena", + "noItemsFound": "Nie znaleziono elementów" + }, + "logs": { + "clearLogs": "Wyczyść logi", + "copyLogs": "Kopiuj logi", + "uploadLogs": "Prześlij logi", + "error": "Błąd:", + "stackTrace": "Ślad stosu:" + }, + "licenses": { + "relatedPackages": "Powiązane pakiety", + "license": "Licencja", + "licenseNumber": "Licencja ${number}", + "licensesCount": "${count} licencji" + }, + "navigation": { + "libraries": "Biblioteki", + "downloads": "Pobrania", + "liveTv": "TV na żywo" + }, + "liveTv": { + "title": "TV na żywo", + "channels": "Kanały", + "guide": "Przewodnik", + "noChannels": "Brak dostępnych kanałów", + "noDvr": "Brak skonfigurowanego DVR na żadnym serwerze", + "tuneFailed": "Nie udało się dostroić kanału", + "loading": "Ładowanie kanałów...", + "nowPlaying": "Teraz odtwarzane", + "noPrograms": "Brak danych o programach", + "channelNumber": "Kn. ${number}", + "live": "NA ŻYWO", + "hd": "HD", + "premiere": "NOWE", + "reloadGuide": "Odśwież przewodnik", + "allChannels": "Wszystkie kanały", + "now": "Teraz", + "today": "Dzisiaj", + "midnight": "Północ", + "overnight": "Nocą", + "morning": "Rano", + "daytime": "W ciągu dnia", + "evening": "Wieczorem", + "lateNight": "Późna noc", + "whatsOn": "Co leci", + "watchChannel": "Oglądaj kanał" + }, + "collections": { + "title": "Kolekcje", + "collection": "Kolekcja", + "empty": "Kolekcja jest pusta", + "unknownLibrarySection": "Nie można usunąć: Nieznana sekcja biblioteki", + "deleteCollection": "Usuń kolekcję", + "deleteConfirm": "Czy na pewno chcesz usunąć \"${title}\"? Tej operacji nie można cofnąć.", + "deleted": "Kolekcja usunięta", + "deleteFailed": "Nie udało się usunąć kolekcji", + "deleteFailedWithError": "Nie udało się usunąć kolekcji: ${error}", + "failedToLoadItems": "Nie udało się załadować elementów kolekcji: ${error}", + "selectCollection": "Wybierz kolekcję", + "collectionName": "Nazwa kolekcji", + "enterCollectionName": "Wprowadź nazwę kolekcji", + "addedToCollection": "Dodano do kolekcji", + "errorAddingToCollection": "Nie udało się dodać do kolekcji", + "created": "Kolekcja utworzona", + "removeFromCollection": "Usuń z kolekcji", + "removeFromCollectionConfirm": "Usunąć \"${title}\" z tej kolekcji?", + "removedFromCollection": "Usunięto z kolekcji", + "removeFromCollectionFailed": "Nie udało się usunąć z kolekcji", + "removeFromCollectionError": "Błąd usuwania z kolekcji: ${error}" + }, + "playlists": { + "title": "Playlisty", + "playlist": "Playlista", + "noPlaylists": "Nie znaleziono playlist", + "create": "Utwórz playlistę", + "playlistName": "Nazwa playlisty", + "enterPlaylistName": "Wprowadź nazwę playlisty", + "delete": "Usuń playlistę", + "removeItem": "Usuń z playlisty", + "smartPlaylist": "Inteligentna playlista", + "itemCount": "${count} elementów", + "oneItem": "1 element", + "emptyPlaylist": "Ta playlista jest pusta", + "deleteConfirm": "Usunąć playlistę?", + "deleteMessage": "Czy na pewno chcesz usunąć \"${name}\"?", + "created": "Playlista utworzona", + "deleted": "Playlista usunięta", + "itemAdded": "Dodano do playlisty", + "itemRemoved": "Usunięto z playlisty", + "selectPlaylist": "Wybierz playlistę", + "errorCreating": "Nie udało się utworzyć playlisty", + "errorDeleting": "Nie udało się usunąć playlisty", + "errorLoading": "Nie udało się załadować playlist", + "errorAdding": "Nie udało się dodać do playlisty", + "errorReordering": "Nie udało się zmienić kolejności elementu playlisty", + "errorRemoving": "Nie udało się usunąć z playlisty" + }, + "watchTogether": { + "title": "Oglądaj razem", + "description": "Oglądaj treści zsynchronizowane z przyjaciółmi i rodziną", + "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", + "anyone": "Każdy", + "hostingSession": "Hostowanie sesji", + "inSession": "W sesji", + "sessionCode": "Kod sesji", + "hostControlsPlayback": "Host kontroluje odtwarzanie", + "anyoneCanControl": "Każdy może kontrolować odtwarzanie", + "hostControls": "Kontrola hosta", + "anyoneControls": "Kontrola każdego", + "participants": "Uczestnicy", + "host": "Host", + "hostBadge": "HOST", + "youAreHost": "Jesteś hostem", + "watchingWithOthers": "Oglądasz z innymi", + "endSession": "Zakończ sesję", + "leaveSession": "Opuść sesję", + "endSessionQuestion": "Zakończyć sesję?", + "leaveSessionQuestion": "Opuścić sesję?", + "endSessionConfirm": "To zakończy sesję dla wszystkich uczestników.", + "leaveSessionConfirm": "Zostaniesz usunięty z sesji.", + "endSessionConfirmOverlay": "To zakończy sesję oglądania dla wszystkich uczestników.", + "leaveSessionConfirmOverlay": "Zostaniesz odłączony od sesji oglądania.", + "end": "Zakończ", + "leave": "Opuść", + "syncing": "Synchronizacja...", + "joinWatchSession": "Dołącz do sesji oglądania", + "enterCodeHint": "Wprowadź 8-znakowy kod", + "pasteFromClipboard": "Wklej ze schowka", + "pleaseEnterCode": "Wprowadź kod sesji", + "codeMustBe8Chars": "Kod sesji musi mieć 8 znaków", + "joinInstructions": "Wprowadź kod sesji udostępniony przez hosta, aby dołączyć do sesji oglądania.", + "failedToCreate": "Nie udało się utworzyć sesji", + "failedToJoin": "Nie udało się dołączyć do sesji", + "sessionCodeCopied": "Kod sesji skopiowany do schowka", + "relayUnreachable": "Serwer przekaźnika jest nieosiągalny. Może to być spowodowane blokadą przez twojego dostawcę internetu. Możesz spróbować, ale Oglądaj razem może nie działać.", + "reconnectingToHost": "Ponowne łączenie z hostem...", + "currentPlayback": "Bieżące odtwarzanie", + "joinCurrentPlayback": "Dołącz do bieżącego odtwarzania", + "joinCurrentPlaybackDescription": "Wróć do tego, co host aktualnie ogląda", + "failedToOpenCurrentPlayback": "Nie udało się otworzyć bieżącego odtwarzania", + "participantJoined": "${name} dołączył", + "participantLeft": "${name} opuścił" + }, + "downloads": { + "title": "Pobrania", + "manage": "Zarządzaj", + "tvShows": "Seriale TV", + "movies": "Filmy", + "noDownloads": "Brak pobrań", + "noDownloadsDescription": "Pobrane treści pojawią się tutaj do oglądania offline", + "downloadNow": "Pobierz", + "deleteDownload": "Usuń pobranie", + "retryDownload": "Ponów pobieranie", + "downloadQueued": "Pobranie w kolejce", + "episodesQueued": "${count} odcinków w kolejce pobierania", + "downloadDeleted": "Pobranie usunięte", + "deleteConfirm": "Czy na pewno chcesz usunąć \"${title}\"? Spowoduje to usunięcie pobranego pliku z urządzenia.", + "deletingWithProgress": "Usuwanie ${title}... (${current} z ${total})", + "noDownloadsTree": "Brak pobrań", + "pauseAll": "Wstrzymaj wszystko", + "resumeAll": "Wznów wszystko", + "deleteAll": "Usuń wszystko" + }, + "shaders": { + "title": "Shadery", + "noShaderDescription": "Bez ulepszenia wideo", + "nvscalerDescription": "Skalowanie obrazu NVIDIA dla ostrzejszego wideo", + "qualityFast": "Szybki", + "qualityHQ": "Wysoka jakość", + "mode": "Tryb", + "importShader": "Importuj shader", + "customShaderDescription": "Niestandardowy shader GLSL", + "shaderImported": "Shader zaimportowany", + "shaderImportFailed": "Nie udało się zaimportować shadera", + "deleteShader": "Usuń shader", + "deleteShaderConfirm": "Usunąć \"${name}\"?" + }, + "companionRemote": { + "title": "Pilot zdalny", + "connectToDevice": "Połącz z urządzeniem", + "hostRemoteSession": "Hostuj sesję zdalną", + "controlThisDevice": "Steruj tym urządzeniem ze swojego telefonu", + "remoteControl": "Pilot zdalny", + "controlDesktop": "Steruj urządzeniem desktop", + "connectedTo": "Połączono z ${name}", + "session": { + "creatingSession": "Tworzenie sesji zdalnej...", + "failedToCreate": "Nie udało się utworzyć sesji zdalnej:", + "noSession": "Brak dostępnej sesji", + "scanQrCode": "Zeskanuj kod QR", + "orEnterManually": "Lub wprowadź ręcznie", + "hostAddress": "Adres hosta", + "sessionId": "ID sesji", + "pin": "PIN", + "connected": "Połączono", + "waitingForConnection": "Oczekiwanie na połączenie...", + "usePhoneToControl": "Użyj urządzenia mobilnego do sterowania tą aplikacją", + "copiedToClipboard": "${label} skopiowane do schowka", + "copyToClipboard": "Kopiuj do schowka", + "newSession": "Nowa sesja", + "minimize": "Minimalizuj" + }, + "pairing": { + "scan": "Skanuj", + "manual": "Ręcznie", + "pairWithDesktop": "Sparuj z komputerem", + "enterSessionDetails": "Wprowadź dane sesji wyświetlone na urządzeniu desktop", + "hostAddressHint": "192.168.1.100:48632", + "sessionIdHint": "Wprowadź 8-znakowe ID sesji", + "pinHint": "Wprowadź 6-cyfrowy PIN", + "connecting": "Łączenie...", + "tips": "Wskazówki", + "tipDesktop": "Otwórz Plezy na komputerze i włącz Pilota zdalnego w ustawieniach lub menu", + "tipScan": "Użyj zakładki Skanuj, aby szybko sparować skanując kod QR na komputerze", + "tipWifi": "Upewnij się, że oba urządzenia są w tej samej sieci WiFi", + "cameraPermissionRequired": "Uprawnienie do kamery jest wymagane do skanowania kodów QR.\nPrzyznaj dostęp do kamery w ustawieniach urządzenia.", + "cameraError": "Nie udało się uruchomić kamery: ${error}", + "scanInstruction": "Skieruj kamerę na kod QR wyświetlony na komputerze", + "invalidQrCode": "Nieprawidłowy format kodu QR", + "validationHostRequired": "Wprowadź adres hosta", + "validationHostFormat": "Format musi być IP:port (np. 192.168.1.100:48632)", + "validationSessionIdRequired": "Wprowadź ID sesji", + "validationSessionIdLength": "ID sesji musi mieć 8 znaków", + "validationPinRequired": "Wprowadź PIN", + "validationPinLength": "PIN musi mieć 6 cyfr", + "connectionTimedOut": "Upłynął czas połączenia. Sprawdź ID sesji i PIN.", + "sessionNotFound": "Nie znaleziono sesji. Sprawdź swoje dane.", + "failedToConnect": "Nie udało się połączyć: ${error}" + }, + "remote": { + "disconnectConfirm": "Czy chcesz się rozłączyć od sesji zdalnej?", + "reconnecting": "Ponowne łączenie...", + "attemptOf": "Próba ${current} z 5", + "retryNow": "Ponów teraz", + "connectionError": "Błąd połączenia", + "notConnected": "Niepołączono", + "tabRemote": "Pilot", + "tabPlay": "Odtwórz", + "tabMore": "Więcej", + "menu": "Menu", + "tabNavigation": "Nawigacja", + "tabDiscover": "Odkryj", + "tabLibraries": "Biblioteki", + "tabSearch": "Szukaj", + "tabDownloads": "Pobrania", + "tabSettings": "Ustawienia", + "previous": "Poprzedni", + "playPause": "Odtwórz/Pauza", + "next": "Następny", + "seekBack": "Przewiń wstecz", + "stop": "Stop", + "seekForward": "Przewiń w przód", + "volume": "Głośność", + "volumeDown": "Ciszej", + "volumeUp": "Głośniej", + "fullscreen": "Pełny ekran", + "subtitles": "Napisy", + "audio": "Audio", + "searchHint": "Szukaj na komputerze..." + } + }, + "videoSettings": { + "playbackSettings": "Ustawienia odtwarzania", + "playbackSpeed": "Prędkość odtwarzania", + "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", + "audioNormalization": "Normalizacja audio" + }, + "externalPlayer": { + "title": "Zewnętrzny odtwarzacz", + "useExternalPlayer": "Użyj zewnętrznego odtwarzacza", + "useExternalPlayerDescription": "Otwieraj wideo w zewnętrznej aplikacji zamiast wbudowanego odtwarzacza", + "selectPlayer": "Wybierz odtwarzacz", + "systemDefault": "Domyślny systemowy", + "addCustomPlayer": "Dodaj niestandardowy odtwarzacz", + "playerName": "Nazwa odtwarzacza", + "playerCommand": "Polecenie", + "playerPackage": "Nazwa pakietu", + "playerUrlScheme": "Schemat URL", + "customPlayer": "Niestandardowy odtwarzacz", + "off": "Wyłączony", + "launchFailed": "Nie udało się otworzyć zewnętrznego odtwarzacza", + "appNotInstalled": "${name} nie jest zainstalowany", + "playInExternalPlayer": "Odtwórz w zewnętrznym odtwarzaczu" + }, + "metadataEdit": { + "editMetadata": "Edytuj...", + "screenTitle": "Edytuj metadane", + "basicInfo": "Podstawowe informacje", + "artwork": "Grafika", + "advancedSettings": "Ustawienia zaawansowane", + "title": "Tytuł", + "sortTitle": "Tytuł do sortowania", + "originalTitle": "Tytuł oryginalny", + "releaseDate": "Data premiery", + "contentRating": "Klasyfikacja wiekowa", + "studio": "Studio", + "tagline": "Tagline", + "summary": "Opis", + "poster": "Plakat", + "background": "Tło", + "selectPoster": "Wybierz plakat", + "selectBackground": "Wybierz tło", + "fromUrl": "Z URL", + "uploadFile": "Prześlij plik", + "enterImageUrl": "Wprowadź URL obrazu", + "imageUrl": "URL obrazu", + "metadataUpdated": "Metadane zaktualizowane", + "metadataUpdateFailed": "Nie udało się zaktualizować metadanych", + "artworkUpdated": "Grafika zaktualizowana", + "artworkUpdateFailed": "Nie udało się zaktualizować grafiki", + "noArtworkAvailable": "Brak dostępnej grafiki", + "notSet": "Nie ustawiono", + "libraryDefault": "Domyślne biblioteki", + "accountDefault": "Domyślne konta", + "seriesDefault": "Domyślne serialu", + "episodeSorting": "Sortowanie odcinków", + "oldestFirst": "Najstarsze najpierw", + "newestFirst": "Najnowsze najpierw", + "keep": "Zachowaj", + "allEpisodes": "Wszystkie odcinki", + "latestEpisodes": "${count} najnowszych odcinków", + "latestEpisode": "Najnowszy odcinek", + "episodesAddedPastDays": "Odcinki dodane w ciągu ostatnich ${count} dni", + "deleteAfterPlaying": "Usuń odcinki po odtworzeniu", + "never": "Nigdy", + "afterADay": "Po jednym dniu", + "afterAWeek": "Po tygodniu", + "afterAMonth": "Po miesiącu", + "onNextRefresh": "Przy następnym odświeżeniu", + "seasons": "Sezony", + "show": "Pokaż", + "hide": "Ukryj", + "episodeOrdering": "Kolejność odcinków", + "tmdbAiring": "The Movie Database (Emisja)", + "tvdbAiring": "TheTVDB (Emisja)", + "tvdbAbsolute": "TheTVDB (Absolutna)", + "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", + "alwaysEnabled": "Zawsze włączone" + } +} diff --git a/lib/i18n/pt.i18n.json b/lib/i18n/pt.i18n.json new file mode 100644 index 00000000..9d9b237c --- /dev/null +++ b/lib/i18n/pt.i18n.json @@ -0,0 +1,902 @@ +{ + "app": { + "title": "Plezy" + }, + "auth": { + "signInWithPlex": "Entrar com Plex", + "showQRCode": "Mostrar QR Code", + "authenticate": "Autenticar", + "debugEnterToken": "Debug: Inserir Token Plex", + "plexTokenLabel": "Token de Autenticação Plex", + "plexTokenHint": "Insira seu token do Plex.tv", + "authenticationTimeout": "A autenticação expirou. Tente novamente.", + "scanQRToSignIn": "Escaneie este QR code para entrar", + "waitingForAuth": "Aguardando autenticação...\nConclua o login no seu navegador.", + "useBrowser": "Usar navegador" + }, + "common": { + "cancel": "Cancelar", + "save": "Salvar", + "close": "Fechar", + "clear": "Limpar", + "reset": "Redefinir", + "later": "Depois", + "submit": "Enviar", + "confirm": "Confirmar", + "retry": "Tentar novamente", + "logout": "Sair", + "unknown": "Desconhecido", + "refresh": "Atualizar", + "yes": "Sim", + "no": "Não", + "delete": "Excluir", + "shuffle": "Aleatório", + "addTo": "Adicionar a...", + "createNew": "Criar novo", + "remove": "Remover", + "paste": "Colar", + "connect": "Conectar", + "disconnect": "Desconectar", + "play": "Reproduzir", + "pause": "Pausar", + "resume": "Retomar", + "error": "Erro", + "search": "Buscar", + "home": "Início", + "back": "Voltar", + "settings": "Configurações", + "mute": "Silenciar", + "ok": "OK", + "loading": "Carregando...", + "reconnect": "Reconectar", + "exitConfirmTitle": "Sair do app?", + "exitConfirmMessage": "Tem certeza que deseja sair?", + "dontAskAgain": "Não perguntar novamente", + "exit": "Sair", + "viewAll": "Ver Tudo", + "checkingNetwork": "Verificando rede...", + "refreshingServers": "Atualizando servidores...", + "loadingServers": "Carregando servidores...", + "connectingToServers": "Conectando aos servidores...", + "startingOfflineMode": "Iniciando modo offline..." + }, + "screens": { + "licenses": "Licenças", + "switchProfile": "Trocar Perfil", + "subtitleStyling": "Estilo de Legendas", + "mpvConfig": "mpv.conf", + "logs": "Logs" + }, + "update": { + "available": "Atualização Disponível", + "versionAvailable": "Versão ${version} está disponível", + "currentVersion": "Atual: ${version}", + "skipVersion": "Pular Esta Versão", + "viewRelease": "Ver Lançamento", + "latestVersion": "Você está na versão mais recente", + "checkFailed": "Falha ao verificar atualizações" + }, + "settings": { + "title": "Configurações", + "language": "Idioma", + "theme": "Tema", + "appearance": "Aparência", + "videoPlayback": "Reprodução de Vídeo", + "advanced": "Avançado", + "episodePosterMode": "Estilo do Poster de Episódio", + "seriesPoster": "Poster da Série", + "seriesPosterDescription": "Mostrar o poster da série para todos os episódios", + "seasonPoster": "Poster da Temporada", + "seasonPosterDescription": "Mostrar o poster específico da temporada para episódios", + "episodeThumbnail": "Miniatura do Episódio", + "episodeThumbnailDescription": "Mostrar miniaturas 16:9 de captura de tela do episódio", + "showHeroSectionDescription": "Exibir carrossel de conteúdo em destaque na tela inicial", + "secondsLabel": "Segundos", + "minutesLabel": "Minutos", + "secondsShort": "s", + "minutesShort": "m", + "durationHint": "Insira a duração (${min}-${max})", + "systemTheme": "Sistema", + "systemThemeDescription": "Seguir configurações do sistema", + "lightTheme": "Claro", + "darkTheme": "Escuro", + "oledTheme": "OLED", + "oledThemeDescription": "Preto puro para telas OLED", + "libraryDensity": "Densidade da Biblioteca", + "compact": "Compacto", + "compactDescription": "Cards menores, mais itens visíveis", + "normal": "Normal", + "normalDescription": "Tamanho padrão", + "comfortable": "Confortável", + "comfortableDescription": "Cards maiores, menos itens visíveis", + "viewMode": "Modo de Visualização", + "gridView": "Grade", + "gridViewDescription": "Exibir itens em layout de grade", + "listView": "Lista", + "listViewDescription": "Exibir itens em layout de lista", + "showHeroSection": "Mostrar Seção de Destaque", + "useGlobalHubs": "Usar Layout Plex Home", + "useGlobalHubsDescription": "Mostrar hubs da página inicial como o cliente oficial Plex. Quando desativado, mostra recomendações por biblioteca.", + "showServerNameOnHubs": "Mostrar Nome do Servidor nos Hubs", + "showServerNameOnHubsDescription": "Sempre exibir o nome do servidor nos títulos dos hubs. Quando desativado, mostra apenas para nomes duplicados.", + "alwaysKeepSidebarOpen": "Manter Barra Lateral Sempre Aberta", + "alwaysKeepSidebarOpenDescription": "A barra lateral fica expandida e a área de conteúdo se ajusta", + "showUnwatchedCount": "Mostrar Contagem de Não Assistidos", + "showUnwatchedCountDescription": "Exibir contagem de episódios não assistidos em séries e temporadas", + "hideSpoilers": "Ocultar Spoilers de Episódios Não Assistidos", + "hideSpoilersDescription": "Desfocar miniaturas e ocultar descrições de episódios que você ainda não assistiu", + "playerBackend": "Backend do Player", + "exoPlayer": "ExoPlayer (Recomendado)", + "exoPlayerDescription": "Player nativo Android com melhor suporte a hardware", + "mpv": "mpv", + "mpvDescription": "Player avançado com mais recursos e suporte a legendas ASS", + "hardwareDecoding": "Decodificação por Hardware", + "hardwareDecodingDescription": "Usar aceleração por hardware quando disponível", + "bufferSize": "Tamanho do Buffer", + "bufferSizeMB": "${size}MB", + "bufferSizeAuto": "Automático (Recomendado)", + "bufferSizeWarning": "Seu dispositivo tem ${heap}MB de memória. Um buffer de ${size}MB pode causar problemas de reprodução.", + "subtitleStyling": "Estilo de Legendas", + "subtitleStylingDescription": "Personalizar aparência das legendas", + "smallSkipDuration": "Duração do Avanço Curto", + "largeSkipDuration": "Duração do Avanço Longo", + "secondsUnit": "${seconds} segundos", + "defaultSleepTimer": "Timer de Sono Padrão", + "minutesUnit": "${minutes} minutos", + "rememberTrackSelections": "Lembrar seleção de faixas por série/filme", + "rememberTrackSelectionsDescription": "Salvar automaticamente preferências de idioma de áudio e legenda ao trocar faixas durante a reprodução", + "clickVideoTogglesPlayback": "Clicar no vídeo para alternar reprodução/pausa", + "clickVideoTogglesPlaybackDescription": "Se ativado, clicar no player reproduz/pausa o vídeo. Caso contrário, clicar mostra/oculta os controles.", + "videoPlayerControls": "Controles do Player 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", + "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", + "clearCache": "Limpar Cache", + "clearCacheDescription": "Isso limpará todas as imagens e dados em cache. O app pode demorar mais para carregar conteúdo após limpar o cache.", + "clearCacheSuccess": "Cache limpo com sucesso", + "resetSettings": "Redefinir Configurações", + "resetSettingsDescription": "Isso redefinirá todas as configurações para os valores padrão. Esta ação não pode ser desfeita.", + "resetSettingsSuccess": "Configurações redefinidas com sucesso", + "shortcutsReset": "Atalhos redefinidos para o padrão", + "about": "Sobre", + "aboutDescription": "Informações do app e licenças", + "updates": "Atualizações", + "updateAvailable": "Atualização Disponível", + "checkForUpdates": "Verificar Atualizações", + "validationErrorEnterNumber": "Insira um número válido", + "validationErrorDuration": "A duração deve ser entre ${min} e ${max} ${unit}", + "shortcutAlreadyAssigned": "Atalho já atribuído a ${action}", + "shortcutUpdated": "Atalho atualizado para ${action}", + "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", + "autoSkipDelay": "Atraso do Pulo Automático", + "autoSkipDelayDescription": "Aguardar ${seconds} segundos antes de pular automaticamente", + "downloads": "Downloads", + "downloadLocationDescription": "Escolha onde armazenar conteúdo baixado", + "downloadLocationDefault": "Padrão (Armazenamento do App)", + "downloadLocationCustom": "Local Personalizado", + "selectFolder": "Selecionar Pasta", + "resetToDefault": "Redefinir para Padrão", + "currentPath": "Atual: ${path}", + "downloadLocationChanged": "Local de download alterado", + "downloadLocationReset": "Local de download redefinido para padrão", + "downloadLocationInvalid": "A pasta selecionada não permite gravação", + "downloadLocationSelectError": "Falha ao selecionar pasta", + "downloadOnWifiOnly": "Baixar apenas no WiFi", + "downloadOnWifiOnlyDescription": "Impedir downloads quando em dados móveis", + "cellularDownloadBlocked": "Downloads estão desativados em dados móveis. Conecte ao WiFi ou altere a configuração.", + "maxVolume": "Volume Máximo", + "maxVolumeDescription": "Permitir aumento de volume acima de 100% para mídias silenciosas", + "maxVolumePercent": "${percent}%", + "discordRichPresence": "Discord Rich Presence", + "discordRichPresenceDescription": "Mostrar o que você está assistindo no Discord", + "autoPip": "Picture-in-Picture Automático", + "autoPipDescription": "Entrar automaticamente em picture-in-picture ao sair do app durante a reprodução", + "matchContentFrameRate": "Corresponder Taxa de Quadros do Conteúdo", + "matchContentFrameRateDescription": "Ajustar a taxa de atualização da tela para corresponder ao conteúdo de vídeo, reduzindo tremulação e economizando bateria", + "tunneledPlayback": "Reprodução Tunelizada", + "tunneledPlaybackDescription": "Usar tunelamento de vídeo acelerado por hardware. Desative se você vir uma tela preta com áudio em conteúdo HDR", + "requireProfileSelectionOnOpen": "Pedir perfil ao abrir o app", + "requireProfileSelectionOnOpenDescription": "Mostrar seleção de perfil toda vez que o app for aberto", + "confirmExitOnBack": "Confirmar antes de sair", + "confirmExitOnBackDescription": "Mostrar diálogo de confirmação ao pressionar voltar para sair do app", + "showNavBarLabels": "Mostrar Rótulos da Barra de Navegação", + "showNavBarLabelsDescription": "Exibir rótulos de texto sob os ícones da barra de navegação" + }, + "search": { + "hint": "Buscar filmes, séries, músicas...", + "tryDifferentTerm": "Tente um termo de busca diferente", + "searchYourMedia": "Buscar suas mídias", + "enterTitleActorOrKeyword": "Insira um título, ator ou palavra-chave" + }, + "hotkeys": { + "setShortcutFor": "Definir Atalho para ${actionName}", + "clearShortcut": "Limpar atalho", + "actions": { + "playPause": "Reproduzir/Pausar", + "volumeUp": "Aumentar Volume", + "volumeDown": "Diminuir Volume", + "seekForward": "Avançar (${seconds}s)", + "seekBackward": "Retroceder (${seconds}s)", + "fullscreenToggle": "Alternar Tela Cheia", + "muteToggle": "Alternar Silêncio", + "subtitleToggle": "Alternar Legendas", + "audioTrackNext": "Próxima Faixa de Áudio", + "subtitleTrackNext": "Próxima Faixa de Legenda", + "chapterNext": "Próximo Capítulo", + "chapterPrevious": "Capítulo Anterior", + "speedIncrease": "Aumentar Velocidade", + "speedDecrease": "Diminuir Velocidade", + "speedReset": "Redefinir Velocidade", + "subSeekNext": "Ir para Próxima Legenda", + "subSeekPrev": "Ir para Legenda Anterior", + "shaderToggle": "Alternar Shaders", + "skipMarker": "Pular Intro/Créditos" + } + }, + "pinEntry": { + "enterPin": "Inserir PIN", + "showPin": "Mostrar PIN", + "hidePin": "Ocultar PIN" + }, + "fileInfo": { + "title": "Info do Arquivo", + "video": "Vídeo", + "audio": "Áudio", + "file": "Arquivo", + "advanced": "Avançado", + "codec": "Codec", + "resolution": "Resolução", + "bitrate": "Taxa de Bits", + "frameRate": "Taxa de Quadros", + "aspectRatio": "Proporção", + "profile": "Perfil", + "bitDepth": "Profundidade de Bits", + "colorSpace": "Espaço de Cor", + "colorRange": "Faixa de Cor", + "colorPrimaries": "Primárias de Cor", + "chromaSubsampling": "Subamostragem de Croma", + "channels": "Canais", + "path": "Caminho", + "size": "Tamanho", + "container": "Container", + "duration": "Duração", + "optimizedForStreaming": "Otimizado para Streaming", + "has64bitOffsets": "Offsets de 64 bits" + }, + "mediaMenu": { + "markAsWatched": "Marcar como Assistido", + "markAsUnwatched": "Marcar como Não Assistido", + "removeFromContinueWatching": "Remover de Continuar Assistindo", + "goToSeries": "Ir para a série", + "goToSeason": "Ir para a temporada", + "shufflePlay": "Reprodução Aleatória", + "fileInfo": "Info do Arquivo", + "deleteFromServer": "Excluir do servidor", + "confirmDelete": "Isso excluirá permanentemente esta mídia e seus arquivos do seu servidor. Esta ação não pode ser desfeita.", + "deleteMultipleWarning": "Isso inclui todos os episódios e seus arquivos.", + "mediaDeletedSuccessfully": "Item de mídia excluído com sucesso", + "mediaFailedToDelete": "Falha ao excluir item de mídia", + "rate": "Avaliar" + }, + "accessibility": { + "mediaCardMovie": "${title}, filme", + "mediaCardShow": "${title}, série de TV", + "mediaCardEpisode": "${title}, ${episodeInfo}", + "mediaCardSeason": "${title}, ${seasonInfo}", + "mediaCardWatched": "assistido", + "mediaCardPartiallyWatched": "${percent} por cento assistido", + "mediaCardUnwatched": "não assistido", + "tapToPlay": "Toque para reproduzir" + }, + "tooltips": { + "shufflePlay": "Reprodução aleatória", + "playTrailer": "Reproduzir trailer", + "markAsWatched": "Marcar como assistido", + "markAsUnwatched": "Marcar como não assistido" + }, + "videoControls": { + "audioLabel": "Áudio", + "subtitlesLabel": "Legendas", + "resetToZero": "Redefinir para 0ms", + "addTime": "+${amount}${unit}", + "minusTime": "-${amount}${unit}", + "playsLater": "${label} reproduz depois", + "playsEarlier": "${label} reproduz antes", + "noOffset": "Sem deslocamento", + "letterbox": "Letterbox", + "fillScreen": "Preencher tela", + "stretch": "Esticar", + "lockRotation": "Travar rotação", + "unlockRotation": "Destravar rotação", + "timerActive": "Timer Ativo", + "playbackWillPauseIn": "A reprodução pausará em ${duration}", + "sleepTimerCompleted": "Timer de sono concluído - reprodução pausada", + "stillWatching": "Ainda assistindo?", + "pausingIn": "Pausando em ${seconds}s", + "continueWatching": "Continuar", + "autoPlayNext": "Reproduzir Próximo Automaticamente", + "playNext": "Reproduzir Próximo", + "playButton": "Reproduzir", + "pauseButton": "Pausar", + "seekBackwardButton": "Retroceder ${seconds} segundos", + "seekForwardButton": "Avançar ${seconds} segundos", + "previousButton": "Episódio anterior", + "nextButton": "Próximo episódio", + "previousChapterButton": "Capítulo anterior", + "nextChapterButton": "Próximo capítulo", + "muteButton": "Silenciar", + "unmuteButton": "Ativar som", + "settingsButton": "Configurações de vídeo", + "audioTrackButton": "Faixas de áudio", + "subtitlesButton": "Legendas", + "tracksButton": "Áudio e Legendas", + "chaptersButton": "Capítulos", + "versionsButton": "Versões do vídeo", + "pipButton": "Modo Picture-in-Picture", + "aspectRatioButton": "Proporção", + "ambientLighting": "Iluminação ambiente", + "ambientLightingOn": "Ativar iluminação ambiente", + "ambientLightingOff": "Desativar iluminação ambiente", + "fullscreenButton": "Entrar em tela cheia", + "exitFullscreenButton": "Sair da tela cheia", + "alwaysOnTopButton": "Sempre no topo", + "rotationLockButton": "Travar rotação", + "timelineSlider": "Linha do tempo do vídeo", + "volumeSlider": "Nível de volume", + "endsAt": "Termina às ${time}", + "pipActive": "Reproduzindo em Picture-in-Picture", + "pipFailed": "Falha ao iniciar picture-in-picture", + "pipErrors": { + "androidVersion": "Requer Android 8.0 ou superior", + "iosVersion": "Requer iOS 15.0 ou superior", + "permissionDisabled": "A permissão de picture-in-picture está desativada. Ative em Configurações > Apps > Plezy > Picture-in-picture", + "notSupported": "O dispositivo não suporta modo picture-in-picture", + "voSwitchFailed": "Falha ao trocar saída de vídeo para picture-in-picture", + "failed": "Falha ao iniciar picture-in-picture", + "unknown": "Ocorreu um erro: ${error}" + }, + "chapters": "Capítulos", + "noChaptersAvailable": "Nenhum capítulo disponível", + "queue": "Fila", + "noQueueItems": "Nenhum item na fila" + }, + "userStatus": { + "admin": "Admin", + "restricted": "Restrito", + "protected": "Protegido", + "current": "ATUAL" + }, + "messages": { + "markedAsWatched": "Marcado como assistido", + "markedAsUnwatched": "Marcado como não assistido", + "markedAsWatchedOffline": "Marcado como assistido (será sincronizado quando online)", + "markedAsUnwatchedOffline": "Marcado como não assistido (será sincronizado quando online)", + "removedFromContinueWatching": "Removido de Continuar Assistindo", + "errorLoading": "Erro: ${error}", + "fileInfoNotAvailable": "Informações do arquivo não disponíveis", + "errorLoadingFileInfo": "Erro ao carregar info do arquivo: ${error}", + "errorLoadingSeries": "Erro ao carregar série", + "errorLoadingSeason": "Erro ao carregar temporada", + "musicNotSupported": "Reprodução de música ainda não é suportada", + "logsCleared": "Logs limpos", + "logsCopied": "Logs copiados para a área de transferência", + "noLogsAvailable": "Nenhum log disponível", + "libraryScanning": "Escaneando \"${title}\"...", + "libraryScanStarted": "Escaneamento da biblioteca iniciado para \"${title}\"", + "libraryScanFailed": "Falha ao escanear biblioteca: ${error}", + "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?", + "noSeasonsFound": "Nenhuma temporada encontrada", + "noEpisodesFound": "Nenhum episódio encontrado na primeira temporada", + "noEpisodesFoundGeneral": "Nenhum episódio encontrado", + "noResultsFound": "Nenhum resultado encontrado", + "sleepTimerSet": "Timer de sono definido para ${label}", + "noItemsAvailable": "Nenhum item disponível", + "failedToCreatePlayQueueNoItems": "Falha ao criar fila de reprodução - sem itens", + "failedPlayback": "Falha ao ${action}: ${error}", + "switchingToCompatiblePlayer": "Alternando para player compatível...", + "logsUploaded": "Logs enviados", + "logsUploadFailed": "Falha ao enviar logs", + "logId": "ID do Log" + }, + "subtitlingStyling": { + "stylingOptions": "Opções de Estilo", + "fontSize": "Tamanho da Fonte", + "textColor": "Cor do Texto", + "borderSize": "Tamanho da Borda", + "borderColor": "Cor da Borda", + "backgroundOpacity": "Opacidade do Fundo", + "backgroundColor": "Cor de Fundo", + "position": "Posição" + }, + "mpvConfig": { + "title": "mpv.conf", + "description": "Configurações avançadas do player de vídeo", + "presets": "Predefinições", + "noPresets": "Nenhuma predefinição salva", + "saveAsPreset": "Salvar como Predefinição...", + "presetName": "Nome da Predefinição", + "presetNameHint": "Insira um nome para esta predefinição", + "loadPreset": "Carregar", + "deletePreset": "Excluir", + "presetSaved": "Predefinição salva", + "presetLoaded": "Predefinição carregada", + "presetDeleted": "Predefinição excluída", + "confirmDeletePreset": "Tem certeza que deseja excluir esta predefinição?", + "configPlaceholder": "gpu-api=vulkan\nhwdec=auto\n# comment" + }, + "dialog": { + "confirmAction": "Confirmar Ação" + }, + "discover": { + "title": "Descobrir", + "switchProfile": "Trocar Perfil", + "noContentAvailable": "Nenhum conteúdo disponível", + "addMediaToLibraries": "Adicione mídias às suas bibliotecas", + "continueWatching": "Continuar Assistindo", + "playEpisode": "S${season}E${episode}", + "overview": "Sinopse", + "cast": "Elenco", + "extras": "Trailers e Extras", + "seasons": "Temporadas", + "studio": "Estúdio", + "rating": "Avaliação", + "episodeCount": "${count} episódios", + "watchedProgress": "${watched}/${total} assistidos", + "movie": "Filme", + "tvShow": "Série de TV", + "minutesLeft": "${minutes} min restantes" + }, + "errors": { + "searchFailed": "Falha na busca: ${error}", + "connectionTimeout": "Tempo de conexão esgotado ao carregar ${context}", + "connectionFailed": "Não foi possível conectar ao servidor Plex", + "failedToLoad": "Falha ao carregar ${context}: ${error}", + "noClientAvailable": "Nenhum cliente disponível", + "authenticationFailed": "Falha na autenticação: ${error}", + "couldNotLaunchUrl": "Não foi possível abrir a URL de autenticação", + "pleaseEnterToken": "Insira um token", + "invalidToken": "Token inválido", + "failedToVerifyToken": "Falha ao verificar token: ${error}", + "failedToSwitchProfile": "Falha ao trocar para ${displayName}" + }, + "libraries": { + "title": "Bibliotecas", + "scanLibraryFiles": "Escanear Arquivos da Biblioteca", + "scanLibrary": "Escanear Biblioteca", + "analyze": "Analisar", + "analyzeLibrary": "Analisar Biblioteca", + "refreshMetadata": "Atualizar Metadados", + "emptyTrash": "Esvaziar Lixeira", + "emptyingTrash": "Esvaziando lixeira de \"${title}\"...", + "trashEmptied": "Lixeira esvaziada de \"${title}\"", + "failedToEmptyTrash": "Falha ao esvaziar lixeira: ${error}", + "analyzing": "Analisando \"${title}\"...", + "analysisStarted": "Análise iniciada para \"${title}\"", + "failedToAnalyze": "Falha ao analisar biblioteca: ${error}", + "noLibrariesFound": "Nenhuma biblioteca encontrada", + "thisLibraryIsEmpty": "Esta biblioteca está vazia", + "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}\"?", + "manageLibraries": "Gerenciar Bibliotecas", + "sort": "Ordenar", + "sortBy": "Ordenar Por", + "filters": "Filtros", + "confirmActionMessage": "Tem certeza que deseja realizar esta ação?", + "showLibrary": "Mostrar biblioteca", + "hideLibrary": "Ocultar biblioteca", + "libraryOptions": "Opções da biblioteca", + "content": "conteúdo da biblioteca", + "selectLibrary": "Selecionar biblioteca", + "filtersWithCount": "Filtros (${count})", + "noRecommendations": "Nenhuma recomendação disponível", + "noCollections": "Nenhuma coleção nesta biblioteca", + "noFoldersFound": "Nenhuma pasta encontrada", + "folders": "pastas", + "tabs": { + "recommended": "Recomendados", + "browse": "Navegar", + "collections": "Coleções", + "playlists": "Playlists" + }, + "groupings": { + "all": "Todos", + "movies": "Filmes", + "shows": "Séries de TV", + "seasons": "Temporadas", + "episodes": "Episódios", + "folders": "Pastas" + } + }, + "about": { + "title": "Sobre", + "openSourceLicenses": "Licenças Open Source", + "versionLabel": "Versão ${version}", + "appDescription": "Um belo cliente Plex para Flutter", + "viewLicensesDescription": "Ver licenças de bibliotecas de terceiros" + }, + "serverSelection": { + "allServerConnectionsFailed": "Falha ao conectar a qualquer servidor. Verifique sua rede e tente novamente.", + "noServersFoundForAccount": "Nenhum servidor encontrado para ${username} (${email})", + "failedToLoadServers": "Falha ao carregar servidores: ${error}" + }, + "hubDetail": { + "title": "Título", + "releaseYear": "Ano de Lançamento", + "dateAdded": "Data de Adição", + "rating": "Avaliação", + "noItemsFound": "Nenhum item encontrado" + }, + "logs": { + "clearLogs": "Limpar Logs", + "copyLogs": "Copiar Logs", + "uploadLogs": "Enviar Logs", + "error": "Erro:", + "stackTrace": "Stack Trace:" + }, + "licenses": { + "relatedPackages": "Pacotes Relacionados", + "license": "Licença", + "licenseNumber": "Licença ${number}", + "licensesCount": "${count} licenças" + }, + "navigation": { + "libraries": "Bibliotecas", + "downloads": "Downloads", + "liveTv": "TV ao Vivo" + }, + "liveTv": { + "title": "TV ao Vivo", + "channels": "Canais", + "guide": "Guia", + "noChannels": "Nenhum canal disponível", + "noDvr": "Nenhum DVR configurado em nenhum servidor", + "tuneFailed": "Falha ao sintonizar canal", + "loading": "Carregando canais...", + "nowPlaying": "Reproduzindo Agora", + "noPrograms": "Nenhum dado de programação disponível", + "channelNumber": "Ch. ${number}", + "live": "AO VIVO", + "hd": "HD", + "premiere": "NOVO", + "reloadGuide": "Recarregar Guia", + "allChannels": "Todos os Canais", + "now": "Agora", + "today": "Hoje", + "midnight": "Meia-noite", + "overnight": "Madrugada", + "morning": "Manhã", + "daytime": "Dia", + "evening": "Noite", + "lateNight": "Madrugada", + "whatsOn": "O que Está Passando", + "watchChannel": "Assistir Canal" + }, + "collections": { + "title": "Coleções", + "collection": "Coleção", + "empty": "A coleção está vazia", + "unknownLibrarySection": "Não é possível excluir: Seção de biblioteca desconhecida", + "deleteCollection": "Excluir Coleção", + "deleteConfirm": "Tem certeza que deseja excluir \"${title}\"? Esta ação não pode ser desfeita.", + "deleted": "Coleção excluída", + "deleteFailed": "Falha ao excluir coleção", + "deleteFailedWithError": "Falha ao excluir coleção: ${error}", + "failedToLoadItems": "Falha ao carregar itens da coleção: ${error}", + "selectCollection": "Selecionar Coleção", + "collectionName": "Nome da Coleção", + "enterCollectionName": "Insira o nome da coleção", + "addedToCollection": "Adicionado à coleção", + "errorAddingToCollection": "Falha ao adicionar à coleção", + "created": "Coleção criada", + "removeFromCollection": "Remover da coleção", + "removeFromCollectionConfirm": "Remover \"${title}\" desta coleção?", + "removedFromCollection": "Removido da coleção", + "removeFromCollectionFailed": "Falha ao remover da coleção", + "removeFromCollectionError": "Erro ao remover da coleção: ${error}" + }, + "playlists": { + "title": "Playlists", + "playlist": "Playlist", + "noPlaylists": "Nenhuma playlist encontrada", + "create": "Criar Playlist", + "playlistName": "Nome da Playlist", + "enterPlaylistName": "Insira o nome da playlist", + "delete": "Excluir Playlist", + "removeItem": "Remover da Playlist", + "smartPlaylist": "Playlist Inteligente", + "itemCount": "${count} itens", + "oneItem": "1 item", + "emptyPlaylist": "Esta playlist está vazia", + "deleteConfirm": "Excluir Playlist?", + "deleteMessage": "Tem certeza que deseja excluir \"${name}\"?", + "created": "Playlist criada", + "deleted": "Playlist excluída", + "itemAdded": "Adicionado à playlist", + "itemRemoved": "Removido da playlist", + "selectPlaylist": "Selecionar Playlist", + "errorCreating": "Falha ao criar playlist", + "errorDeleting": "Falha ao excluir playlist", + "errorLoading": "Falha ao carregar playlists", + "errorAdding": "Falha ao adicionar à playlist", + "errorReordering": "Falha ao reordenar item da playlist", + "errorRemoving": "Falha ao remover da playlist" + }, + "watchTogether": { + "title": "Assistir Juntos", + "description": "Assista conteúdo sincronizado com amigos e família", + "createSession": "Criar Sessão", + "creating": "Criando...", + "joinSession": "Entrar na Sessão", + "joining": "Entrando...", + "controlMode": "Modo de Controle", + "controlModeQuestion": "Quem pode controlar a reprodução?", + "hostOnly": "Apenas o Anfitrião", + "anyone": "Qualquer pessoa", + "hostingSession": "Hospedando Sessão", + "inSession": "Em Sessão", + "sessionCode": "Código da Sessão", + "hostControlsPlayback": "Anfitrião controla a reprodução", + "anyoneCanControl": "Qualquer pessoa pode controlar a reprodução", + "hostControls": "Controle do anfitrião", + "anyoneControls": "Controle de todos", + "participants": "Participantes", + "host": "Anfitrião", + "hostBadge": "HOST", + "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?", + "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.", + "end": "Encerrar", + "leave": "Sair", + "syncing": "Sincronizando...", + "joinWatchSession": "Entrar na Sessão", + "enterCodeHint": "Insira o código de 8 caracteres", + "pasteFromClipboard": "Colar da área de transferência", + "pleaseEnterCode": "Insira um código de sessão", + "codeMustBe8Chars": "O código da sessão deve ter 8 caracteres", + "joinInstructions": "Insira o código da sessão compartilhado pelo anfitrião para entrar na sessão.", + "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": "O servidor de retransmissão está inacessível. Isso pode ser causado pelo seu provedor bloqueando a conexão. Você ainda pode tentar, mas o Assistir Juntos pode não funcionar.", + "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", + "participantJoined": "${name} entrou", + "participantLeft": "${name} saiu" + }, + "downloads": { + "title": "Downloads", + "manage": "Gerenciar", + "tvShows": "Séries de TV", + "movies": "Filmes", + "noDownloads": "Nenhum download ainda", + "noDownloadsDescription": "Conteúdo baixado aparecerá aqui para visualização offline", + "downloadNow": "Baixar", + "deleteDownload": "Excluir download", + "retryDownload": "Tentar download novamente", + "downloadQueued": "Download na fila", + "episodesQueued": "${count} episódios na fila de download", + "downloadDeleted": "Download excluído", + "deleteConfirm": "Tem certeza que deseja excluir \"${title}\"? Isso removerá o arquivo baixado do seu dispositivo.", + "deletingWithProgress": "Excluindo ${title}... (${current} de ${total})", + "noDownloadsTree": "Nenhum download", + "pauseAll": "Pausar todos", + "resumeAll": "Retomar todos", + "deleteAll": "Excluir todos" + }, + "shaders": { + "title": "Shaders", + "noShaderDescription": "Sem aprimoramento de vídeo", + "nvscalerDescription": "Escalonamento de imagem NVIDIA para vídeo mais nítido", + "qualityFast": "Rápido", + "qualityHQ": "Alta Qualidade", + "mode": "Modo", + "importShader": "Importar Shader", + "customShaderDescription": "Shader GLSL personalizado", + "shaderImported": "Shader importado", + "shaderImportFailed": "Falha ao importar shader", + "deleteShader": "Excluir Shader", + "deleteShaderConfirm": "Excluir \"${name}\"?" + }, + "companionRemote": { + "title": "Controle Remoto", + "connectToDevice": "Conectar ao Dispositivo", + "hostRemoteSession": "Hospedar Sessão Remota", + "controlThisDevice": "Controle este dispositivo com seu celular", + "remoteControl": "Controle Remoto", + "controlDesktop": "Controlar um dispositivo desktop", + "connectedTo": "Conectado a ${name}", + "session": { + "creatingSession": "Criando sessão remota...", + "failedToCreate": "Falha ao criar sessão remota:", + "noSession": "Nenhuma sessão disponível", + "scanQrCode": "Escanear QR Code", + "orEnterManually": "Ou insira manualmente", + "hostAddress": "Endereço do Host", + "sessionId": "ID da Sessão", + "pin": "PIN", + "connected": "Conectado", + "waitingForConnection": "Aguardando conexão...", + "usePhoneToControl": "Use seu dispositivo móvel para controlar este app", + "copiedToClipboard": "${label} copiado para a área de transferência", + "copyToClipboard": "Copiar para área de transferência", + "newSession": "Nova Sessão", + "minimize": "Minimizar" + }, + "pairing": { + "scan": "Escanear", + "manual": "Manual", + "pairWithDesktop": "Parear com Desktop", + "enterSessionDetails": "Insira os detalhes da sessão exibidos no seu dispositivo desktop", + "hostAddressHint": "192.168.1.100:48632", + "sessionIdHint": "Insira o ID da sessão de 8 caracteres", + "pinHint": "Insira o PIN de 6 dígitos", + "connecting": "Conectando...", + "tips": "Dicas", + "tipDesktop": "Abra o Plezy no desktop e ative o Controle Remoto nas configurações ou menu", + "tipScan": "Use a aba Escanear para parear rapidamente escaneando o QR code no seu desktop", + "tipWifi": "Certifique-se de que ambos os dispositivos estão na mesma rede WiFi", + "cameraPermissionRequired": "A permissão da câmera é necessária para escanear QR codes.\nConceda acesso à câmera nas configurações do dispositivo.", + "cameraError": "Não foi possível iniciar a câmera: ${error}", + "scanInstruction": "Aponte sua câmera para o QR code exibido no seu desktop", + "invalidQrCode": "Formato de QR code inválido", + "validationHostRequired": "Insira o endereço do host", + "validationHostFormat": "O formato deve ser IP:porta (ex: 192.168.1.100:48632)", + "validationSessionIdRequired": "Insira um ID de sessão", + "validationSessionIdLength": "O ID da sessão deve ter 8 caracteres", + "validationPinRequired": "Insira um PIN", + "validationPinLength": "O PIN deve ter 6 dígitos", + "connectionTimedOut": "Tempo de conexão esgotado. Verifique o ID da sessão e o PIN.", + "sessionNotFound": "Sessão não encontrada. Verifique suas credenciais.", + "failedToConnect": "Falha ao conectar: ${error}" + }, + "remote": { + "disconnectConfirm": "Deseja desconectar da sessão remota?", + "reconnecting": "Reconectando...", + "attemptOf": "Tentativa ${current} de 5", + "retryNow": "Tentar Agora", + "connectionError": "Erro de conexão", + "notConnected": "Não conectado", + "tabRemote": "Remoto", + "tabPlay": "Reproduzir", + "tabMore": "Mais", + "menu": "Menu", + "tabNavigation": "Navegação", + "tabDiscover": "Descobrir", + "tabLibraries": "Bibliotecas", + "tabSearch": "Buscar", + "tabDownloads": "Downloads", + "tabSettings": "Configurações", + "previous": "Anterior", + "playPause": "Reproduzir/Pausar", + "next": "Próximo", + "seekBack": "Retroceder", + "stop": "Parar", + "seekForward": "Avançar", + "volume": "Volume", + "volumeDown": "Diminuir", + "volumeUp": "Aumentar", + "fullscreen": "Tela Cheia", + "subtitles": "Legendas", + "audio": "Áudio", + "searchHint": "Buscar no desktop..." + } + }, + "videoSettings": { + "playbackSettings": "Configurações de Reprodução", + "playbackSpeed": "Velocidade de Reprodução", + "sleepTimer": "Timer de Sono", + "audioSync": "Sincronia de Áudio", + "subtitleSync": "Sincronia de Legendas", + "hdr": "HDR", + "audioOutput": "Saída de Áudio", + "performanceOverlay": "Overlay de Desempenho", + "audioPassthrough": "Passagem de Áudio", + "audioNormalization": "Normalização de Áudio" + }, + "externalPlayer": { + "title": "Player Externo", + "useExternalPlayer": "Usar Player Externo", + "useExternalPlayerDescription": "Abrir vídeos em um app externo em vez do player integrado", + "selectPlayer": "Selecionar Player", + "systemDefault": "Padrão do Sistema", + "addCustomPlayer": "Adicionar Player Personalizado", + "playerName": "Nome do Player", + "playerCommand": "Comando", + "playerPackage": "Nome do Pacote", + "playerUrlScheme": "Esquema de URL", + "customPlayer": "Player Personalizado", + "off": "Desativado", + "launchFailed": "Falha ao abrir player externo", + "appNotInstalled": "${name} não está instalado", + "playInExternalPlayer": "Reproduzir no Player Externo" + }, + "metadataEdit": { + "editMetadata": "Editar...", + "screenTitle": "Editar Metadados", + "basicInfo": "Informações Básicas", + "artwork": "Arte", + "advancedSettings": "Configurações Avançadas", + "title": "Título", + "sortTitle": "Título para Ordenação", + "originalTitle": "Título Original", + "releaseDate": "Data de Lançamento", + "contentRating": "Classificação Indicativa", + "studio": "Estúdio", + "tagline": "Tagline", + "summary": "Sinopse", + "poster": "Poster", + "background": "Plano de Fundo", + "selectPoster": "Selecionar Poster", + "selectBackground": "Selecionar Plano de Fundo", + "fromUrl": "Da URL", + "uploadFile": "Enviar Arquivo", + "enterImageUrl": "Insira a URL da imagem", + "imageUrl": "URL da Imagem", + "metadataUpdated": "Metadados atualizados", + "metadataUpdateFailed": "Falha ao atualizar metadados", + "artworkUpdated": "Arte atualizada", + "artworkUpdateFailed": "Falha ao atualizar arte", + "noArtworkAvailable": "Nenhuma arte disponível", + "notSet": "Não definido", + "libraryDefault": "Padrão da biblioteca", + "accountDefault": "Padrão da conta", + "seriesDefault": "Padrão da série", + "episodeSorting": "Ordenação de Episódios", + "oldestFirst": "Mais antigos primeiro", + "newestFirst": "Mais recentes primeiro", + "keep": "Manter", + "allEpisodes": "Todos os episódios", + "latestEpisodes": "${count} episódios mais recentes", + "latestEpisode": "Episódio mais recente", + "episodesAddedPastDays": "Episódios adicionados nos últimos ${count} dias", + "deleteAfterPlaying": "Excluir Episódios Após Reproduzir", + "never": "Nunca", + "afterADay": "Após um dia", + "afterAWeek": "Após uma semana", + "afterAMonth": "Após um mês", + "onNextRefresh": "Na próxima atualização", + "seasons": "Temporadas", + "show": "Mostrar", + "hide": "Ocultar", + "episodeOrdering": "Ordenação de Episódios", + "tmdbAiring": "The Movie Database (Exibição)", + "tvdbAiring": "TheTVDB (Exibição)", + "tvdbAbsolute": "TheTVDB (Absoluto)", + "metadataLanguage": "Idioma dos Metadados", + "useOriginalTitle": "Usar Título Original", + "preferredAudioLanguage": "Idioma de Áudio Preferido", + "preferredSubtitleLanguage": "Idioma de Legenda Preferido", + "subtitleMode": "Modo de Seleção Automática de Legendas", + "manuallySelected": "Seleção manual", + "shownWithForeignAudio": "Exibir com áudio estrangeiro", + "alwaysEnabled": "Sempre ativado" + } +} diff --git a/lib/i18n/ru.i18n.json b/lib/i18n/ru.i18n.json new file mode 100644 index 00000000..e3772864 --- /dev/null +++ b/lib/i18n/ru.i18n.json @@ -0,0 +1,902 @@ +{ + "app": { + "title": "Plezy" + }, + "auth": { + "signInWithPlex": "Войти через Plex", + "showQRCode": "Показать QR-код", + "authenticate": "Аутентификация", + "debugEnterToken": "Отладка: Ввести токен Plex", + "plexTokenLabel": "Токен авторизации Plex", + "plexTokenHint": "Введите ваш токен Plex.tv", + "authenticationTimeout": "Время аутентификации истекло. Попробуйте снова.", + "scanQRToSignIn": "Отсканируйте QR-код для входа", + "waitingForAuth": "Ожидание аутентификации...\nЗавершите вход в браузере.", + "useBrowser": "Использовать браузер" + }, + "common": { + "cancel": "Отмена", + "save": "Сохранить", + "close": "Закрыть", + "clear": "Очистить", + "reset": "Сбросить", + "later": "Позже", + "submit": "Отправить", + "confirm": "Подтвердить", + "retry": "Повторить", + "logout": "Выйти", + "unknown": "Неизвестно", + "refresh": "Обновить", + "yes": "Да", + "no": "Нет", + "delete": "Удалить", + "shuffle": "Перемешать", + "addTo": "Добавить в...", + "createNew": "Создать новый", + "remove": "Удалить", + "paste": "Вставить", + "connect": "Подключить", + "disconnect": "Отключить", + "play": "Воспроизвести", + "pause": "Пауза", + "resume": "Продолжить", + "error": "Ошибка", + "search": "Поиск", + "home": "Главная", + "back": "Назад", + "settings": "Настройки", + "mute": "Без звука", + "ok": "OK", + "loading": "Загрузка...", + "reconnect": "Переподключить", + "exitConfirmTitle": "Выйти из приложения?", + "exitConfirmMessage": "Вы уверены, что хотите выйти?", + "dontAskAgain": "Больше не спрашивать", + "exit": "Выход", + "viewAll": "Показать все", + "checkingNetwork": "Проверка сети...", + "refreshingServers": "Обновление серверов...", + "loadingServers": "Загрузка серверов...", + "connectingToServers": "Подключение к серверам...", + "startingOfflineMode": "Запуск автономного режима..." + }, + "screens": { + "licenses": "Лицензии", + "switchProfile": "Сменить профиль", + "subtitleStyling": "Стиль субтитров", + "mpvConfig": "mpv.conf", + "logs": "Логи" + }, + "update": { + "available": "Доступно обновление", + "versionAvailable": "Доступна версия ${version}", + "currentVersion": "Текущая: ${version}", + "skipVersion": "Пропустить эту версию", + "viewRelease": "Посмотреть релиз", + "latestVersion": "У вас последняя версия", + "checkFailed": "Не удалось проверить обновления" + }, + "settings": { + "title": "Настройки", + "language": "Язык", + "theme": "Тема", + "appearance": "Внешний вид", + "videoPlayback": "Воспроизведение видео", + "advanced": "Дополнительно", + "episodePosterMode": "Стиль постера эпизода", + "seriesPoster": "Постер сериала", + "seriesPosterDescription": "Показывать постер сериала для всех эпизодов", + "seasonPoster": "Постер сезона", + "seasonPosterDescription": "Показывать постер конкретного сезона для эпизодов", + "episodeThumbnail": "Миниатюра эпизода", + "episodeThumbnailDescription": "Показывать миниатюры скриншотов эпизодов 16:9", + "showHeroSectionDescription": "Показывать карусель избранного контента на главном экране", + "secondsLabel": "Секунды", + "minutesLabel": "Минуты", + "secondsShort": "с", + "minutesShort": "м", + "durationHint": "Введите длительность (${min}-${max})", + "systemTheme": "Системная", + "systemThemeDescription": "Следовать настройкам системы", + "lightTheme": "Светлая", + "darkTheme": "Тёмная", + "oledTheme": "OLED", + "oledThemeDescription": "Чистый чёрный для OLED-экранов", + "libraryDensity": "Плотность библиотеки", + "compact": "Компактный", + "compactDescription": "Меньшие карточки, больше элементов видно", + "normal": "Обычный", + "normalDescription": "Размер по умолчанию", + "comfortable": "Комфортный", + "comfortableDescription": "Большие карточки, меньше элементов видно", + "viewMode": "Режим просмотра", + "gridView": "Сетка", + "gridViewDescription": "Отображать элементы в виде сетки", + "listView": "Список", + "listViewDescription": "Отображать элементы в виде списка", + "showHeroSection": "Показать раздел избранного", + "useGlobalHubs": "Использовать макет Plex Home", + "useGlobalHubsDescription": "Показывать хабы главной страницы как в официальном клиенте Plex. При выключении показывает рекомендации по библиотекам.", + "showServerNameOnHubs": "Показывать имя сервера в хабах", + "showServerNameOnHubsDescription": "Всегда показывать имя сервера в заголовках хабов. При выключении показывает только для дублирующихся имён.", + "alwaysKeepSidebarOpen": "Всегда держать боковую панель открытой", + "alwaysKeepSidebarOpenDescription": "Боковая панель остаётся развёрнутой, область контента подстраивается", + "showUnwatchedCount": "Показывать количество непросмотренных", + "showUnwatchedCountDescription": "Отображать количество непросмотренных эпизодов для сериалов и сезонов", + "hideSpoilers": "Скрыть спойлеры непросмотренных эпизодов", + "hideSpoilersDescription": "Размывать миниатюры и скрывать описания эпизодов, которые вы ещё не смотрели", + "playerBackend": "Бэкенд плеера", + "exoPlayer": "ExoPlayer (Рекомендуется)", + "exoPlayerDescription": "Нативный Android-плеер с лучшей аппаратной поддержкой", + "mpv": "mpv", + "mpvDescription": "Продвинутый плеер с большим количеством функций и поддержкой субтитров ASS", + "hardwareDecoding": "Аппаратное декодирование", + "hardwareDecodingDescription": "Использовать аппаратное ускорение, когда доступно", + "bufferSize": "Размер буфера", + "bufferSizeMB": "${size}МБ", + "bufferSizeAuto": "Авто (Рекомендуется)", + "bufferSizeWarning": "У вашего устройства ${heap}МБ памяти. Буфер ${size}МБ может вызвать проблемы с воспроизведением.", + "subtitleStyling": "Стиль субтитров", + "subtitleStylingDescription": "Настроить внешний вид субтитров", + "smallSkipDuration": "Малая перемотка", + "largeSkipDuration": "Большая перемотка", + "secondsUnit": "${seconds} секунд", + "defaultSleepTimer": "Таймер сна по умолчанию", + "minutesUnit": "${minutes} минут", + "rememberTrackSelections": "Запоминать выбор дорожек для каждого сериала/фильма", + "rememberTrackSelectionsDescription": "Автоматически сохранять предпочтения языка аудио и субтитров при переключении дорожек во время воспроизведения", + "clickVideoTogglesPlayback": "Клик по видео для переключения воспроизведения/паузы", + "clickVideoTogglesPlaybackDescription": "Если включено, клик по видеоплееру воспроизводит/ставит на паузу. В противном случае показывает/скрывает элементы управления.", + "videoPlayerControls": "Элементы управления плеером", + "keyboardShortcuts": "Горячие клавиши", + "keyboardShortcutsDescription": "Настроить горячие клавиши", + "videoPlayerNavigation": "Навигация видеоплеера", + "videoPlayerNavigationDescription": "Использовать клавиши стрелок для навигации по элементам управления плеером", + "crashReporting": "Отчёты об ошибках", + "crashReportingDescription": "Отправлять отчёты об ошибках для улучшения приложения", + "debugLogging": "Журнал отладки", + "debugLoggingDescription": "Включить подробное журналирование для устранения неполадок", + "viewLogs": "Просмотр логов", + "viewLogsDescription": "Просмотр логов приложения", + "clearCache": "Очистить кэш", + "clearCacheDescription": "Это удалит все кэшированные изображения и данные. После очистки кэша приложение может загружать контент дольше.", + "clearCacheSuccess": "Кэш успешно очищен", + "resetSettings": "Сбросить настройки", + "resetSettingsDescription": "Все настройки будут сброшены до значений по умолчанию. Это действие нельзя отменить.", + "resetSettingsSuccess": "Настройки успешно сброшены", + "shortcutsReset": "Горячие клавиши сброшены по умолчанию", + "about": "О приложении", + "aboutDescription": "Информация о приложении и лицензии", + "updates": "Обновления", + "updateAvailable": "Доступно обновление", + "checkForUpdates": "Проверить обновления", + "validationErrorEnterNumber": "Введите корректное число", + "validationErrorDuration": "Длительность должна быть от ${min} до ${max} ${unit}", + "shortcutAlreadyAssigned": "Клавиша уже назначена для ${action}", + "shortcutUpdated": "Клавиша обновлена для ${action}", + "autoSkip": "Автопропуск", + "autoSkipIntro": "Автопропуск вступления", + "autoSkipIntroDescription": "Автоматически пропускать маркеры вступления через несколько секунд", + "autoSkipCredits": "Автопропуск титров", + "autoSkipCreditsDescription": "Автоматически пропускать титры и воспроизводить следующий эпизод", + "autoSkipDelay": "Задержка автопропуска", + "autoSkipDelayDescription": "Подождать ${seconds} секунд перед автопропуском", + "downloads": "Загрузки", + "downloadLocationDescription": "Выберите место для хранения загруженного контента", + "downloadLocationDefault": "По умолчанию (Хранилище приложения)", + "downloadLocationCustom": "Другое расположение", + "selectFolder": "Выбрать папку", + "resetToDefault": "Сбросить по умолчанию", + "currentPath": "Текущий: ${path}", + "downloadLocationChanged": "Место загрузки изменено", + "downloadLocationReset": "Место загрузки сброшено по умолчанию", + "downloadLocationInvalid": "Выбранная папка недоступна для записи", + "downloadLocationSelectError": "Не удалось выбрать папку", + "downloadOnWifiOnly": "Загружать только по WiFi", + "downloadOnWifiOnlyDescription": "Запретить загрузку по мобильным данным", + "cellularDownloadBlocked": "Загрузка по мобильным данным отключена. Подключитесь к WiFi или измените настройку.", + "maxVolume": "Максимальная громкость", + "maxVolumeDescription": "Разрешить усиление громкости выше 100% для тихих медиа", + "maxVolumePercent": "${percent}%", + "discordRichPresence": "Discord Rich Presence", + "discordRichPresenceDescription": "Показывать, что вы смотрите, в Discord", + "autoPip": "Автоматический «картинка в картинке»", + "autoPipDescription": "Автоматически переходить в режим «картинка в картинке» при выходе из приложения во время воспроизведения", + "matchContentFrameRate": "Соответствие частоты кадров контента", + "matchContentFrameRateDescription": "Настроить частоту обновления дисплея под видеоконтент, уменьшая дрожание и экономя батарею", + "tunneledPlayback": "Туннельное воспроизведение", + "tunneledPlaybackDescription": "Использовать аппаратный видеотуннелинг. Отключите, если видите чёрный экран со звуком при HDR-контенте", + "requireProfileSelectionOnOpen": "Запрашивать профиль при запуске", + "requireProfileSelectionOnOpenDescription": "Показывать выбор профиля при каждом открытии приложения", + "confirmExitOnBack": "Подтверждать выход", + "confirmExitOnBackDescription": "Показывать диалог подтверждения при нажатии «назад» для выхода из приложения", + "showNavBarLabels": "Показывать подписи панели навигации", + "showNavBarLabelsDescription": "Отображать текстовые подписи под иконками панели навигации" + }, + "search": { + "hint": "Поиск фильмов, сериалов, музыки...", + "tryDifferentTerm": "Попробуйте другой запрос", + "searchYourMedia": "Поиск в вашей медиатеке", + "enterTitleActorOrKeyword": "Введите название, актёра или ключевое слово" + }, + "hotkeys": { + "setShortcutFor": "Назначить клавишу для ${actionName}", + "clearShortcut": "Очистить клавишу", + "actions": { + "playPause": "Воспроизведение/Пауза", + "volumeUp": "Громкость выше", + "volumeDown": "Громкость ниже", + "seekForward": "Перемотка вперёд (${seconds}с)", + "seekBackward": "Перемотка назад (${seconds}с)", + "fullscreenToggle": "Полноэкранный режим", + "muteToggle": "Вкл./выкл. звук", + "subtitleToggle": "Вкл./выкл. субтитры", + "audioTrackNext": "Следующая аудиодорожка", + "subtitleTrackNext": "Следующая дорожка субтитров", + "chapterNext": "Следующая глава", + "chapterPrevious": "Предыдущая глава", + "speedIncrease": "Увеличить скорость", + "speedDecrease": "Уменьшить скорость", + "speedReset": "Сбросить скорость", + "subSeekNext": "К следующему субтитру", + "subSeekPrev": "К предыдущему субтитру", + "shaderToggle": "Вкл./выкл. шейдеры", + "skipMarker": "Пропустить вступление/титры" + } + }, + "pinEntry": { + "enterPin": "Введите PIN", + "showPin": "Показать PIN", + "hidePin": "Скрыть PIN" + }, + "fileInfo": { + "title": "Информация о файле", + "video": "Видео", + "audio": "Аудио", + "file": "Файл", + "advanced": "Дополнительно", + "codec": "Кодек", + "resolution": "Разрешение", + "bitrate": "Битрейт", + "frameRate": "Частота кадров", + "aspectRatio": "Соотношение сторон", + "profile": "Профиль", + "bitDepth": "Глубина цвета", + "colorSpace": "Цветовое пространство", + "colorRange": "Цветовой диапазон", + "colorPrimaries": "Цветовые первичные", + "chromaSubsampling": "Субдискретизация цветности", + "channels": "Каналы", + "path": "Путь", + "size": "Размер", + "container": "Контейнер", + "duration": "Длительность", + "optimizedForStreaming": "Оптимизировано для стриминга", + "has64bitOffsets": "64-битные смещения" + }, + "mediaMenu": { + "markAsWatched": "Отметить как просмотренное", + "markAsUnwatched": "Отметить как непросмотренное", + "removeFromContinueWatching": "Удалить из «Продолжить просмотр»", + "goToSeries": "Перейти к сериалу", + "goToSeason": "Перейти к сезону", + "shufflePlay": "Случайное воспроизведение", + "fileInfo": "Информация о файле", + "deleteFromServer": "Удалить с сервера", + "confirmDelete": "Это навсегда удалит этот медиафайл и его файлы с вашего сервера. Это действие нельзя отменить.", + "deleteMultipleWarning": "Это включает все эпизоды и их файлы.", + "mediaDeletedSuccessfully": "Медиаэлемент успешно удалён", + "mediaFailedToDelete": "Не удалось удалить медиаэлемент", + "rate": "Оценить" + }, + "accessibility": { + "mediaCardMovie": "${title}, фильм", + "mediaCardShow": "${title}, сериал", + "mediaCardEpisode": "${title}, ${episodeInfo}", + "mediaCardSeason": "${title}, ${seasonInfo}", + "mediaCardWatched": "просмотрено", + "mediaCardPartiallyWatched": "просмотрено ${percent} процентов", + "mediaCardUnwatched": "не просмотрено", + "tapToPlay": "Нажмите для воспроизведения" + }, + "tooltips": { + "shufflePlay": "Случайное воспроизведение", + "playTrailer": "Воспроизвести трейлер", + "markAsWatched": "Отметить как просмотренное", + "markAsUnwatched": "Отметить как непросмотренное" + }, + "videoControls": { + "audioLabel": "Аудио", + "subtitlesLabel": "Субтитры", + "resetToZero": "Сбросить до 0мс", + "addTime": "+${amount}${unit}", + "minusTime": "-${amount}${unit}", + "playsLater": "${label} воспроизводится позже", + "playsEarlier": "${label} воспроизводится раньше", + "noOffset": "Без смещения", + "letterbox": "Letterbox", + "fillScreen": "Заполнить экран", + "stretch": "Растянуть", + "lockRotation": "Заблокировать поворот", + "unlockRotation": "Разблокировать поворот", + "timerActive": "Таймер активен", + "playbackWillPauseIn": "Воспроизведение будет приостановлено через ${duration}", + "sleepTimerCompleted": "Таймер сна завершён — воспроизведение приостановлено", + "stillWatching": "Всё ещё смотрите?", + "pausingIn": "Пауза через ${seconds}с", + "continueWatching": "Продолжить", + "autoPlayNext": "Автовоспроизведение следующего", + "playNext": "Следующее", + "playButton": "Воспроизвести", + "pauseButton": "Пауза", + "seekBackwardButton": "Перемотка назад на ${seconds} секунд", + "seekForwardButton": "Перемотка вперёд на ${seconds} секунд", + "previousButton": "Предыдущий эпизод", + "nextButton": "Следующий эпизод", + "previousChapterButton": "Предыдущая глава", + "nextChapterButton": "Следующая глава", + "muteButton": "Без звука", + "unmuteButton": "Включить звук", + "settingsButton": "Настройки видео", + "audioTrackButton": "Аудиодорожки", + "subtitlesButton": "Субтитры", + "tracksButton": "Аудио и субтитры", + "chaptersButton": "Главы", + "versionsButton": "Версии видео", + "pipButton": "Режим «картинка в картинке»", + "aspectRatioButton": "Соотношение сторон", + "ambientLighting": "Фоновая подсветка", + "ambientLightingOn": "Включить фоновую подсветку", + "ambientLightingOff": "Выключить фоновую подсветку", + "fullscreenButton": "Полноэкранный режим", + "exitFullscreenButton": "Выйти из полноэкранного режима", + "alwaysOnTopButton": "Всегда поверх", + "rotationLockButton": "Блокировка поворота", + "timelineSlider": "Временная шкала", + "volumeSlider": "Уровень громкости", + "endsAt": "Закончится в ${time}", + "pipActive": "Воспроизводится в режиме «картинка в картинке»", + "pipFailed": "Не удалось запустить режим «картинка в картинке»", + "pipErrors": { + "androidVersion": "Требуется Android 8.0 или новее", + "iosVersion": "Требуется iOS 15.0 или новее", + "permissionDisabled": "Разрешение «картинка в картинке» отключено. Включите в Настройки > Приложения > Plezy > Картинка в картинке", + "notSupported": "Устройство не поддерживает режим «картинка в картинке»", + "voSwitchFailed": "Не удалось переключить видеовыход для «картинки в картинке»", + "failed": "Не удалось запустить режим «картинка в картинке»", + "unknown": "Произошла ошибка: ${error}" + }, + "chapters": "Главы", + "noChaptersAvailable": "Главы недоступны", + "queue": "Очередь", + "noQueueItems": "В очереди нет элементов" + }, + "userStatus": { + "admin": "Администратор", + "restricted": "Ограниченный", + "protected": "Защищённый", + "current": "ТЕКУЩИЙ" + }, + "messages": { + "markedAsWatched": "Отмечено как просмотренное", + "markedAsUnwatched": "Отмечено как непросмотренное", + "markedAsWatchedOffline": "Отмечено как просмотренное (синхронизируется при подключении)", + "markedAsUnwatchedOffline": "Отмечено как непросмотренное (синхронизируется при подключении)", + "removedFromContinueWatching": "Удалено из «Продолжить просмотр»", + "errorLoading": "Ошибка: ${error}", + "fileInfoNotAvailable": "Информация о файле недоступна", + "errorLoadingFileInfo": "Ошибка загрузки информации о файле: ${error}", + "errorLoadingSeries": "Ошибка загрузки сериала", + "errorLoadingSeason": "Ошибка загрузки сезона", + "musicNotSupported": "Воспроизведение музыки пока не поддерживается", + "logsCleared": "Логи очищены", + "logsCopied": "Логи скопированы в буфер обмена", + "noLogsAvailable": "Логи отсутствуют", + "libraryScanning": "Сканирование \"${title}\"...", + "libraryScanStarted": "Сканирование библиотеки начато для \"${title}\"", + "libraryScanFailed": "Не удалось отсканировать библиотеку: ${error}", + "metadataRefreshing": "Обновление метаданных \"${title}\"...", + "metadataRefreshStarted": "Обновление метаданных начато для \"${title}\"", + "metadataRefreshFailed": "Не удалось обновить метаданные: ${error}", + "logoutConfirm": "Вы уверены, что хотите выйти?", + "noSeasonsFound": "Сезоны не найдены", + "noEpisodesFound": "Эпизоды в первом сезоне не найдены", + "noEpisodesFoundGeneral": "Эпизоды не найдены", + "noResultsFound": "Результаты не найдены", + "sleepTimerSet": "Таймер сна установлен на ${label}", + "noItemsAvailable": "Нет доступных элементов", + "failedToCreatePlayQueueNoItems": "Не удалось создать очередь воспроизведения — нет элементов", + "failedPlayback": "Не удалось ${action}: ${error}", + "switchingToCompatiblePlayer": "Переключение на совместимый плеер...", + "logsUploaded": "Логи загружены", + "logsUploadFailed": "Не удалось загрузить логи", + "logId": "ID лога" + }, + "subtitlingStyling": { + "stylingOptions": "Параметры стиля", + "fontSize": "Размер шрифта", + "textColor": "Цвет текста", + "borderSize": "Размер обводки", + "borderColor": "Цвет обводки", + "backgroundOpacity": "Прозрачность фона", + "backgroundColor": "Цвет фона", + "position": "Позиция" + }, + "mpvConfig": { + "title": "mpv.conf", + "description": "Расширенные настройки видеоплеера", + "presets": "Пресеты", + "noPresets": "Нет сохранённых пресетов", + "saveAsPreset": "Сохранить как пресет...", + "presetName": "Название пресета", + "presetNameHint": "Введите название для пресета", + "loadPreset": "Загрузить", + "deletePreset": "Удалить", + "presetSaved": "Пресет сохранён", + "presetLoaded": "Пресет загружен", + "presetDeleted": "Пресет удалён", + "confirmDeletePreset": "Вы уверены, что хотите удалить этот пресет?", + "configPlaceholder": "gpu-api=vulkan\nhwdec=auto\n# comment" + }, + "dialog": { + "confirmAction": "Подтвердить действие" + }, + "discover": { + "title": "Обзор", + "switchProfile": "Сменить профиль", + "noContentAvailable": "Контент недоступен", + "addMediaToLibraries": "Добавьте медиафайлы в ваши библиотеки", + "continueWatching": "Продолжить просмотр", + "playEpisode": "S${season}E${episode}", + "overview": "Обзор", + "cast": "В ролях", + "extras": "Трейлеры и доп. материалы", + "seasons": "Сезоны", + "studio": "Студия", + "rating": "Рейтинг", + "episodeCount": "${count} эпизодов", + "watchedProgress": "${watched}/${total} просмотрено", + "movie": "Фильм", + "tvShow": "Сериал", + "minutesLeft": "Осталось ${minutes} мин" + }, + "errors": { + "searchFailed": "Ошибка поиска: ${error}", + "connectionTimeout": "Таймаут подключения при загрузке ${context}", + "connectionFailed": "Не удаётся подключиться к серверу Plex", + "failedToLoad": "Не удалось загрузить ${context}: ${error}", + "noClientAvailable": "Клиент недоступен", + "authenticationFailed": "Ошибка аутентификации: ${error}", + "couldNotLaunchUrl": "Не удалось открыть URL аутентификации", + "pleaseEnterToken": "Введите токен", + "invalidToken": "Недействительный токен", + "failedToVerifyToken": "Не удалось проверить токен: ${error}", + "failedToSwitchProfile": "Не удалось переключиться на ${displayName}" + }, + "libraries": { + "title": "Библиотеки", + "scanLibraryFiles": "Сканировать файлы библиотеки", + "scanLibrary": "Сканировать библиотеку", + "analyze": "Анализировать", + "analyzeLibrary": "Анализировать библиотеку", + "refreshMetadata": "Обновить метаданные", + "emptyTrash": "Очистить корзину", + "emptyingTrash": "Очистка корзины для \"${title}\"...", + "trashEmptied": "Корзина очищена для \"${title}\"", + "failedToEmptyTrash": "Не удалось очистить корзину: ${error}", + "analyzing": "Анализ \"${title}\"...", + "analysisStarted": "Анализ начат для \"${title}\"", + "failedToAnalyze": "Не удалось проанализировать библиотеку: ${error}", + "noLibrariesFound": "Библиотеки не найдены", + "thisLibraryIsEmpty": "Эта библиотека пуста", + "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": { + "all": "Все", + "movies": "Фильмы", + "shows": "Сериалы", + "seasons": "Сезоны", + "episodes": "Эпизоды", + "folders": "Папки" + } + }, + "about": { + "title": "О приложении", + "openSourceLicenses": "Лицензии открытого ПО", + "versionLabel": "Версия ${version}", + "appDescription": "Красивый клиент Plex на Flutter", + "viewLicensesDescription": "Просмотр лицензий сторонних библиотек" + }, + "serverSelection": { + "allServerConnectionsFailed": "Не удалось подключиться ни к одному серверу. Проверьте сеть и попробуйте снова.", + "noServersFoundForAccount": "Серверы не найдены для ${username} (${email})", + "failedToLoadServers": "Не удалось загрузить серверы: ${error}" + }, + "hubDetail": { + "title": "Название", + "releaseYear": "Год выпуска", + "dateAdded": "Дата добавления", + "rating": "Рейтинг", + "noItemsFound": "Элементы не найдены" + }, + "logs": { + "clearLogs": "Очистить логи", + "copyLogs": "Скопировать логи", + "uploadLogs": "Загрузить логи", + "error": "Ошибка:", + "stackTrace": "Стек вызовов:" + }, + "licenses": { + "relatedPackages": "Связанные пакеты", + "license": "Лицензия", + "licenseNumber": "Лицензия ${number}", + "licensesCount": "${count} лицензий" + }, + "navigation": { + "libraries": "Библиотеки", + "downloads": "Загрузки", + "liveTv": "ТВ в прямом эфире" + }, + "liveTv": { + "title": "ТВ в прямом эфире", + "channels": "Каналы", + "guide": "Программа", + "noChannels": "Нет доступных каналов", + "noDvr": "DVR не настроен ни на одном сервере", + "tuneFailed": "Не удалось настроить канал", + "loading": "Загрузка каналов...", + "nowPlaying": "Сейчас воспроизводится", + "noPrograms": "Нет данных о программах", + "channelNumber": "Кн. ${number}", + "live": "ЭФИР", + "hd": "HD", + "premiere": "НОВОЕ", + "reloadGuide": "Перезагрузить программу", + "allChannels": "Все каналы", + "now": "Сейчас", + "today": "Сегодня", + "midnight": "Полночь", + "overnight": "Ночь", + "morning": "Утро", + "daytime": "День", + "evening": "Вечер", + "lateNight": "Поздний вечер", + "whatsOn": "Что идёт", + "watchChannel": "Смотреть канал" + }, + "collections": { + "title": "Коллекции", + "collection": "Коллекция", + "empty": "Коллекция пуста", + "unknownLibrarySection": "Невозможно удалить: неизвестный раздел библиотеки", + "deleteCollection": "Удалить коллекцию", + "deleteConfirm": "Вы уверены, что хотите удалить \"${title}\"? Это действие нельзя отменить.", + "deleted": "Коллекция удалена", + "deleteFailed": "Не удалось удалить коллекцию", + "deleteFailedWithError": "Не удалось удалить коллекцию: ${error}", + "failedToLoadItems": "Не удалось загрузить элементы коллекции: ${error}", + "selectCollection": "Выбрать коллекцию", + "collectionName": "Название коллекции", + "enterCollectionName": "Введите название коллекции", + "addedToCollection": "Добавлено в коллекцию", + "errorAddingToCollection": "Не удалось добавить в коллекцию", + "created": "Коллекция создана", + "removeFromCollection": "Удалить из коллекции", + "removeFromCollectionConfirm": "Удалить \"${title}\" из этой коллекции?", + "removedFromCollection": "Удалено из коллекции", + "removeFromCollectionFailed": "Не удалось удалить из коллекции", + "removeFromCollectionError": "Ошибка удаления из коллекции: ${error}" + }, + "playlists": { + "title": "Плейлисты", + "playlist": "Плейлист", + "noPlaylists": "Плейлисты не найдены", + "create": "Создать плейлист", + "playlistName": "Название плейлиста", + "enterPlaylistName": "Введите название плейлиста", + "delete": "Удалить плейлист", + "removeItem": "Удалить из плейлиста", + "smartPlaylist": "Умный плейлист", + "itemCount": "${count} элементов", + "oneItem": "1 элемент", + "emptyPlaylist": "Этот плейлист пуст", + "deleteConfirm": "Удалить плейлист?", + "deleteMessage": "Вы уверены, что хотите удалить \"${name}\"?", + "created": "Плейлист создан", + "deleted": "Плейлист удалён", + "itemAdded": "Добавлено в плейлист", + "itemRemoved": "Удалено из плейлиста", + "selectPlaylist": "Выбрать плейлист", + "errorCreating": "Не удалось создать плейлист", + "errorDeleting": "Не удалось удалить плейлист", + "errorLoading": "Не удалось загрузить плейлисты", + "errorAdding": "Не удалось добавить в плейлист", + "errorReordering": "Не удалось переупорядочить элемент плейлиста", + "errorRemoving": "Не удалось удалить из плейлиста" + }, + "watchTogether": { + "title": "Смотреть вместе", + "description": "Смотрите контент синхронно с друзьями и семьёй", + "createSession": "Создать сессию", + "creating": "Создание...", + "joinSession": "Присоединиться к сессии", + "joining": "Подключение...", + "controlMode": "Режим управления", + "controlModeQuestion": "Кто может управлять воспроизведением?", + "hostOnly": "Только хост", + "anyone": "Все", + "hostingSession": "Хостинг сессии", + "inSession": "В сессии", + "sessionCode": "Код сессии", + "hostControlsPlayback": "Хост управляет воспроизведением", + "anyoneCanControl": "Любой может управлять воспроизведением", + "hostControls": "Управление хоста", + "anyoneControls": "Управление для всех", + "participants": "Участники", + "host": "Хост", + "hostBadge": "HOST", + "youAreHost": "Вы — хост", + "watchingWithOthers": "Смотрите с другими", + "endSession": "Завершить сессию", + "leaveSession": "Покинуть сессию", + "endSessionQuestion": "Завершить сессию?", + "leaveSessionQuestion": "Покинуть сессию?", + "endSessionConfirm": "Это завершит сессию для всех участников.", + "leaveSessionConfirm": "Вы будете удалены из сессии.", + "endSessionConfirmOverlay": "Это завершит сеанс просмотра для всех участников.", + "leaveSessionConfirmOverlay": "Вы будете отключены от сеанса просмотра.", + "end": "Завершить", + "leave": "Покинуть", + "syncing": "Синхронизация...", + "joinWatchSession": "Присоединиться к просмотру", + "enterCodeHint": "Введите 8-символьный код", + "pasteFromClipboard": "Вставить из буфера обмена", + "pleaseEnterCode": "Введите код сессии", + "codeMustBe8Chars": "Код сессии должен содержать 8 символов", + "joinInstructions": "Введите код сессии, предоставленный хостом, чтобы присоединиться к просмотру.", + "failedToCreate": "Не удалось создать сессию", + "failedToJoin": "Не удалось присоединиться к сессии", + "sessionCodeCopied": "Код сессии скопирован в буфер обмена", + "relayUnreachable": "Ретранслятор недоступен. Возможно, ваш провайдер блокирует подключение. Вы можете попробовать, но «Смотреть вместе» может не работать.", + "reconnectingToHost": "Переподключение к хосту...", + "currentPlayback": "Текущее воспроизведение", + "joinCurrentPlayback": "Присоединиться к текущему воспроизведению", + "joinCurrentPlaybackDescription": "Вернуться к тому, что сейчас смотрит хост", + "failedToOpenCurrentPlayback": "Не удалось открыть текущее воспроизведение", + "participantJoined": "${name} присоединился", + "participantLeft": "${name} вышел" + }, + "downloads": { + "title": "Загрузки", + "manage": "Управление", + "tvShows": "Сериалы", + "movies": "Фильмы", + "noDownloads": "Загрузок пока нет", + "noDownloadsDescription": "Загруженный контент появится здесь для просмотра офлайн", + "downloadNow": "Загрузить", + "deleteDownload": "Удалить загрузку", + "retryDownload": "Повторить загрузку", + "downloadQueued": "Загрузка поставлена в очередь", + "episodesQueued": "${count} эпизодов поставлено в очередь загрузки", + "downloadDeleted": "Загрузка удалена", + "deleteConfirm": "Вы уверены, что хотите удалить \"${title}\"? Загруженный файл будет удалён с устройства.", + "deletingWithProgress": "Удаление ${title}... (${current} из ${total})", + "noDownloadsTree": "Нет загрузок", + "pauseAll": "Приостановить все", + "resumeAll": "Возобновить все", + "deleteAll": "Удалить все" + }, + "shaders": { + "title": "Шейдеры", + "noShaderDescription": "Без улучшения видео", + "nvscalerDescription": "Масштабирование NVIDIA для более чёткого видео", + "qualityFast": "Быстрый", + "qualityHQ": "Высокое качество", + "mode": "Режим", + "importShader": "Импортировать шейдер", + "customShaderDescription": "Пользовательский GLSL шейдер", + "shaderImported": "Шейдер импортирован", + "shaderImportFailed": "Не удалось импортировать шейдер", + "deleteShader": "Удалить шейдер", + "deleteShaderConfirm": "Удалить \"${name}\"?" + }, + "companionRemote": { + "title": "Пульт управления", + "connectToDevice": "Подключиться к устройству", + "hostRemoteSession": "Создать удалённую сессию", + "controlThisDevice": "Управляйте этим устройством с телефона", + "remoteControl": "Пульт управления", + "controlDesktop": "Управлять десктопным устройством", + "connectedTo": "Подключено к ${name}", + "session": { + "creatingSession": "Создание удалённой сессии...", + "failedToCreate": "Не удалось создать удалённую сессию:", + "noSession": "Нет доступных сессий", + "scanQrCode": "Сканировать QR-код", + "orEnterManually": "Или введите вручную", + "hostAddress": "Адрес хоста", + "sessionId": "ID сессии", + "pin": "PIN", + "connected": "Подключено", + "waitingForConnection": "Ожидание подключения...", + "usePhoneToControl": "Используйте мобильное устройство для управления этим приложением", + "copiedToClipboard": "${label} скопировано в буфер обмена", + "copyToClipboard": "Скопировать в буфер обмена", + "newSession": "Новая сессия", + "minimize": "Свернуть" + }, + "pairing": { + "scan": "Сканировать", + "manual": "Вручную", + "pairWithDesktop": "Сопряжение с ПК", + "enterSessionDetails": "Введите данные сессии, показанные на десктопном устройстве", + "hostAddressHint": "192.168.1.100:48632", + "sessionIdHint": "Введите 8-символьный ID сессии", + "pinHint": "Введите 6-значный PIN", + "connecting": "Подключение...", + "tips": "Советы", + "tipDesktop": "Откройте Plezy на десктопе и включите пульт управления в настройках или меню", + "tipScan": "Используйте вкладку «Сканировать» для быстрого сопряжения через QR-код на десктопе", + "tipWifi": "Убедитесь, что оба устройства находятся в одной WiFi-сети", + "cameraPermissionRequired": "Для сканирования QR-кодов требуется разрешение на камеру.\nПредоставьте доступ к камере в настройках устройства.", + "cameraError": "Не удалось запустить камеру: ${error}", + "scanInstruction": "Наведите камеру на QR-код, показанный на десктопе", + "invalidQrCode": "Недопустимый формат QR-кода", + "validationHostRequired": "Введите адрес хоста", + "validationHostFormat": "Формат должен быть IP:порт (например, 192.168.1.100:48632)", + "validationSessionIdRequired": "Введите ID сессии", + "validationSessionIdLength": "ID сессии должен содержать 8 символов", + "validationPinRequired": "Введите PIN", + "validationPinLength": "PIN должен содержать 6 цифр", + "connectionTimedOut": "Время подключения истекло. Проверьте ID сессии и PIN.", + "sessionNotFound": "Сессия не найдена. Проверьте ваши учётные данные.", + "failedToConnect": "Не удалось подключиться: ${error}" + }, + "remote": { + "disconnectConfirm": "Отключиться от удалённой сессии?", + "reconnecting": "Переподключение...", + "attemptOf": "Попытка ${current} из 5", + "retryNow": "Повторить сейчас", + "connectionError": "Ошибка подключения", + "notConnected": "Не подключено", + "tabRemote": "Пульт", + "tabPlay": "Воспроизведение", + "tabMore": "Ещё", + "menu": "Меню", + "tabNavigation": "Навигация", + "tabDiscover": "Обзор", + "tabLibraries": "Библиотеки", + "tabSearch": "Поиск", + "tabDownloads": "Загрузки", + "tabSettings": "Настройки", + "previous": "Предыдущий", + "playPause": "Воспроизведение/Пауза", + "next": "Следующий", + "seekBack": "Назад", + "stop": "Стоп", + "seekForward": "Вперёд", + "volume": "Громкость", + "volumeDown": "Тише", + "volumeUp": "Громче", + "fullscreen": "Полноэкранный", + "subtitles": "Субтитры", + "audio": "Аудио", + "searchHint": "Поиск на десктопе..." + } + }, + "videoSettings": { + "playbackSettings": "Настройки воспроизведения", + "playbackSpeed": "Скорость воспроизведения", + "sleepTimer": "Таймер сна", + "audioSync": "Синхронизация аудио", + "subtitleSync": "Синхронизация субтитров", + "hdr": "HDR", + "audioOutput": "Аудиовыход", + "performanceOverlay": "Оверлей производительности", + "audioPassthrough": "Сквозной вывод аудио", + "audioNormalization": "Нормализация аудио" + }, + "externalPlayer": { + "title": "Внешний плеер", + "useExternalPlayer": "Использовать внешний плеер", + "useExternalPlayerDescription": "Открывать видео во внешнем приложении вместо встроенного плеера", + "selectPlayer": "Выбрать плеер", + "systemDefault": "Системный по умолчанию", + "addCustomPlayer": "Добавить свой плеер", + "playerName": "Название плеера", + "playerCommand": "Команда", + "playerPackage": "Имя пакета", + "playerUrlScheme": "URL-схема", + "customPlayer": "Свой плеер", + "off": "Выкл.", + "launchFailed": "Не удалось открыть внешний плеер", + "appNotInstalled": "${name} не установлен", + "playInExternalPlayer": "Воспроизвести во внешнем плеере" + }, + "metadataEdit": { + "editMetadata": "Редактировать...", + "screenTitle": "Редактировать метаданные", + "basicInfo": "Основная информация", + "artwork": "Обложка", + "advancedSettings": "Дополнительные настройки", + "title": "Название", + "sortTitle": "Название для сортировки", + "originalTitle": "Оригинальное название", + "releaseDate": "Дата выпуска", + "contentRating": "Возрастной рейтинг", + "studio": "Студия", + "tagline": "Слоган", + "summary": "Описание", + "poster": "Постер", + "background": "Фон", + "selectPoster": "Выбрать постер", + "selectBackground": "Выбрать фон", + "fromUrl": "По URL", + "uploadFile": "Загрузить файл", + "enterImageUrl": "Введите URL изображения", + "imageUrl": "URL изображения", + "metadataUpdated": "Метаданные обновлены", + "metadataUpdateFailed": "Не удалось обновить метаданные", + "artworkUpdated": "Обложка обновлена", + "artworkUpdateFailed": "Не удалось обновить обложку", + "noArtworkAvailable": "Обложки недоступны", + "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": "Всегда включены" + } +} diff --git a/lib/i18n/strings.g.dart b/lib/i18n/strings.g.dart index cee9ba67..090fe298 100644 --- a/lib/i18n/strings.g.dart +++ b/lib/i18n/strings.g.dart @@ -3,10 +3,10 @@ /// Source: lib/i18n /// To regenerate, run: `dart run slang` /// -/// Locales: 9 -/// Strings: 7290 (810 per locale) +/// Locales: 15 +/// Strings: 12150 (810 per locale) /// -/// Built on 2026-03-06 at 19:39 UTC +/// Built on 2026-03-06 at 20:26 UTC // coverage:ignore-file // ignore_for_file: type=lint, unused_import @@ -18,12 +18,18 @@ import 'package:slang/generated.dart'; import 'package:slang_flutter/slang_flutter.dart'; export 'package:slang_flutter/slang_flutter.dart'; +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_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; +import 'strings_nb.g.dart' deferred as l_nb; import 'strings_nl.g.dart' deferred as l_nl; +import 'strings_pl.g.dart' deferred as l_pl; +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; part 'strings_en.g.dart'; @@ -36,12 +42,18 @@ part 'strings_en.g.dart'; /// - if (LocaleSettings.currentLocale == AppLocale.en) // locale check enum AppLocale with BaseAppLocale { en(languageCode: 'en'), + da(languageCode: 'da'), de(languageCode: 'de'), es(languageCode: 'es'), fr(languageCode: 'fr'), it(languageCode: 'it'), + ja(languageCode: 'ja'), ko(languageCode: 'ko'), + nb(languageCode: 'nb'), nl(languageCode: 'nl'), + pl(languageCode: 'pl'), + pt(languageCode: 'pt'), + ru(languageCode: 'ru'), sv(languageCode: 'sv'), zh(languageCode: 'zh'); @@ -68,6 +80,13 @@ enum AppLocale with BaseAppLocale { cardinalResolver: cardinalResolver, ordinalResolver: ordinalResolver, ); + case AppLocale.da: + await l_da.loadLibrary(); + return l_da.TranslationsDa( + overrides: overrides, + cardinalResolver: cardinalResolver, + ordinalResolver: ordinalResolver, + ); case AppLocale.de: await l_de.loadLibrary(); return l_de.TranslationsDe( @@ -96,6 +115,13 @@ enum AppLocale with BaseAppLocale { cardinalResolver: cardinalResolver, ordinalResolver: ordinalResolver, ); + case AppLocale.ja: + await l_ja.loadLibrary(); + return l_ja.TranslationsJa( + overrides: overrides, + cardinalResolver: cardinalResolver, + ordinalResolver: ordinalResolver, + ); case AppLocale.ko: await l_ko.loadLibrary(); return l_ko.TranslationsKo( @@ -103,6 +129,13 @@ enum AppLocale with BaseAppLocale { cardinalResolver: cardinalResolver, ordinalResolver: ordinalResolver, ); + case AppLocale.nb: + await l_nb.loadLibrary(); + return l_nb.TranslationsNb( + overrides: overrides, + cardinalResolver: cardinalResolver, + ordinalResolver: ordinalResolver, + ); case AppLocale.nl: await l_nl.loadLibrary(); return l_nl.TranslationsNl( @@ -110,6 +143,27 @@ enum AppLocale with BaseAppLocale { cardinalResolver: cardinalResolver, ordinalResolver: ordinalResolver, ); + case AppLocale.pl: + await l_pl.loadLibrary(); + return l_pl.TranslationsPl( + overrides: overrides, + cardinalResolver: cardinalResolver, + ordinalResolver: ordinalResolver, + ); + case AppLocale.pt: + await l_pt.loadLibrary(); + return l_pt.TranslationsPt( + overrides: overrides, + cardinalResolver: cardinalResolver, + ordinalResolver: ordinalResolver, + ); + case AppLocale.ru: + await l_ru.loadLibrary(); + return l_ru.TranslationsRu( + overrides: overrides, + cardinalResolver: cardinalResolver, + ordinalResolver: ordinalResolver, + ); case AppLocale.sv: await l_sv.loadLibrary(); return l_sv.TranslationsSv( @@ -140,6 +194,12 @@ enum AppLocale with BaseAppLocale { cardinalResolver: cardinalResolver, ordinalResolver: ordinalResolver, ); + case AppLocale.da: + return l_da.TranslationsDa( + overrides: overrides, + cardinalResolver: cardinalResolver, + ordinalResolver: ordinalResolver, + ); case AppLocale.de: return l_de.TranslationsDe( overrides: overrides, @@ -164,18 +224,48 @@ enum AppLocale with BaseAppLocale { cardinalResolver: cardinalResolver, ordinalResolver: ordinalResolver, ); + case AppLocale.ja: + return l_ja.TranslationsJa( + overrides: overrides, + cardinalResolver: cardinalResolver, + ordinalResolver: ordinalResolver, + ); case AppLocale.ko: return l_ko.TranslationsKo( overrides: overrides, cardinalResolver: cardinalResolver, ordinalResolver: ordinalResolver, ); + case AppLocale.nb: + return l_nb.TranslationsNb( + overrides: overrides, + cardinalResolver: cardinalResolver, + ordinalResolver: ordinalResolver, + ); case AppLocale.nl: return l_nl.TranslationsNl( overrides: overrides, cardinalResolver: cardinalResolver, ordinalResolver: ordinalResolver, ); + case AppLocale.pl: + return l_pl.TranslationsPl( + overrides: overrides, + cardinalResolver: cardinalResolver, + ordinalResolver: ordinalResolver, + ); + case AppLocale.pt: + return l_pt.TranslationsPt( + overrides: overrides, + cardinalResolver: cardinalResolver, + ordinalResolver: ordinalResolver, + ); + case AppLocale.ru: + return l_ru.TranslationsRu( + overrides: overrides, + cardinalResolver: cardinalResolver, + ordinalResolver: ordinalResolver, + ); case AppLocale.sv: return l_sv.TranslationsSv( overrides: overrides, diff --git a/lib/i18n/strings_da.g.dart b/lib/i18n/strings_da.g.dart new file mode 100644 index 00000000..d882ac5e --- /dev/null +++ b/lib/i18n/strings_da.g.dart @@ -0,0 +1,2125 @@ +/// +/// 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 TranslationsDa with BaseTranslations implements Translations { + /// You can call this constructor and build your own translation instance of this locale. + /// Constructing via the enum [AppLocale.build] is preferred. + TranslationsDa({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.da, + overrides: overrides ?? {}, + cardinalResolver: cardinalResolver, + ordinalResolver: ordinalResolver, + ) { + $meta.setFlatMapFunction(_flatMapFunction); + } + + /// Metadata for the translations of . + @override final TranslationMetadata $meta; + + /// Access flat map + @override dynamic operator[](String key) => $meta.getTranslation(key); + + late final TranslationsDa _root = this; // ignore: unused_field + + @override + TranslationsDa $copyWith({TranslationMetadata? meta}) => TranslationsDa(meta: meta ?? this.$meta); + + // Translations + @override late final _TranslationsAppDa app = _TranslationsAppDa._(_root); + @override late final _TranslationsAuthDa auth = _TranslationsAuthDa._(_root); + @override late final _TranslationsCommonDa common = _TranslationsCommonDa._(_root); + @override late final _TranslationsScreensDa screens = _TranslationsScreensDa._(_root); + @override late final _TranslationsUpdateDa update = _TranslationsUpdateDa._(_root); + @override late final _TranslationsSettingsDa settings = _TranslationsSettingsDa._(_root); + @override late final _TranslationsSearchDa search = _TranslationsSearchDa._(_root); + @override late final _TranslationsHotkeysDa hotkeys = _TranslationsHotkeysDa._(_root); + @override late final _TranslationsPinEntryDa pinEntry = _TranslationsPinEntryDa._(_root); + @override late final _TranslationsFileInfoDa fileInfo = _TranslationsFileInfoDa._(_root); + @override late final _TranslationsMediaMenuDa mediaMenu = _TranslationsMediaMenuDa._(_root); + @override late final _TranslationsAccessibilityDa accessibility = _TranslationsAccessibilityDa._(_root); + @override late final _TranslationsTooltipsDa tooltips = _TranslationsTooltipsDa._(_root); + @override late final _TranslationsVideoControlsDa videoControls = _TranslationsVideoControlsDa._(_root); + @override late final _TranslationsUserStatusDa userStatus = _TranslationsUserStatusDa._(_root); + @override late final _TranslationsMessagesDa messages = _TranslationsMessagesDa._(_root); + @override late final _TranslationsSubtitlingStylingDa subtitlingStyling = _TranslationsSubtitlingStylingDa._(_root); + @override late final _TranslationsMpvConfigDa mpvConfig = _TranslationsMpvConfigDa._(_root); + @override late final _TranslationsDialogDa dialog = _TranslationsDialogDa._(_root); + @override late final _TranslationsDiscoverDa discover = _TranslationsDiscoverDa._(_root); + @override late final _TranslationsErrorsDa errors = _TranslationsErrorsDa._(_root); + @override late final _TranslationsLibrariesDa libraries = _TranslationsLibrariesDa._(_root); + @override late final _TranslationsAboutDa about = _TranslationsAboutDa._(_root); + @override late final _TranslationsServerSelectionDa serverSelection = _TranslationsServerSelectionDa._(_root); + @override late final _TranslationsHubDetailDa hubDetail = _TranslationsHubDetailDa._(_root); + @override late final _TranslationsLogsDa logs = _TranslationsLogsDa._(_root); + @override late final _TranslationsLicensesDa licenses = _TranslationsLicensesDa._(_root); + @override late final _TranslationsNavigationDa navigation = _TranslationsNavigationDa._(_root); + @override late final _TranslationsLiveTvDa liveTv = _TranslationsLiveTvDa._(_root); + @override late final _TranslationsCollectionsDa collections = _TranslationsCollectionsDa._(_root); + @override late final _TranslationsPlaylistsDa playlists = _TranslationsPlaylistsDa._(_root); + @override late final _TranslationsWatchTogetherDa watchTogether = _TranslationsWatchTogetherDa._(_root); + @override late final _TranslationsDownloadsDa downloads = _TranslationsDownloadsDa._(_root); + @override late final _TranslationsShadersDa shaders = _TranslationsShadersDa._(_root); + @override late final _TranslationsCompanionRemoteDa companionRemote = _TranslationsCompanionRemoteDa._(_root); + @override late final _TranslationsVideoSettingsDa videoSettings = _TranslationsVideoSettingsDa._(_root); + @override late final _TranslationsExternalPlayerDa externalPlayer = _TranslationsExternalPlayerDa._(_root); + @override late final _TranslationsMetadataEditDa metadataEdit = _TranslationsMetadataEditDa._(_root); +} + +// Path: app +class _TranslationsAppDa implements TranslationsAppEn { + _TranslationsAppDa._(this._root); + + final TranslationsDa _root; // ignore: unused_field + + // Translations + @override String get title => 'Plezy'; +} + +// Path: auth +class _TranslationsAuthDa implements TranslationsAuthEn { + _TranslationsAuthDa._(this._root); + + final TranslationsDa _root; // ignore: unused_field + + // Translations + @override String get signInWithPlex => 'Log ind med Plex'; + @override String get showQRCode => 'Vis QR-kode'; + @override String get authenticate => 'Godkend'; + @override String get debugEnterToken => 'Debug: Indtast Plex-token'; + @override String get plexTokenLabel => 'Plex-godkendelsestoken'; + @override String get plexTokenHint => 'Indtast dit Plex.tv-token'; + @override String get authenticationTimeout => 'Godkendelse fik timeout. Prøv igen.'; + @override String get scanQRToSignIn => 'Scan denne QR-kode for at logge ind'; + @override String get waitingForAuth => 'Venter på godkendelse...\nFærdiggør login i din browser.'; + @override String get useBrowser => 'Brug browser'; +} + +// Path: common +class _TranslationsCommonDa implements TranslationsCommonEn { + _TranslationsCommonDa._(this._root); + + final TranslationsDa _root; // ignore: unused_field + + // Translations + @override String get cancel => 'Annuller'; + @override String get save => 'Gem'; + @override String get close => 'Luk'; + @override String get clear => 'Ryd'; + @override String get reset => 'Nulstil'; + @override String get later => 'Senere'; + @override String get submit => 'Indsend'; + @override String get confirm => 'Bekræft'; + @override String get retry => 'Prøv igen'; + @override String get logout => 'Log ud'; + @override String get unknown => 'Ukendt'; + @override String get refresh => 'Opdater'; + @override String get yes => 'Ja'; + @override String get no => 'Nej'; + @override String get delete => 'Slet'; + @override String get shuffle => 'Bland'; + @override String get addTo => 'Tilføj til...'; + @override String get createNew => 'Opret ny'; + @override String get remove => 'Fjern'; + @override String get paste => 'Indsæt'; + @override String get connect => 'Forbind'; + @override String get disconnect => 'Afbryd'; + @override String get play => 'Afspil'; + @override String get pause => 'Pause'; + @override String get resume => 'Genoptag'; + @override String get error => 'Fejl'; + @override String get search => 'Søg'; + @override String get home => 'Hjem'; + @override String get back => 'Tilbage'; + @override String get settings => 'Indstillinger'; + @override String get mute => 'Lydløs'; + @override String get ok => 'OK'; + @override String get loading => 'Indlæser...'; + @override String get reconnect => 'Genopret forbindelse'; + @override String get exitConfirmTitle => 'Luk app?'; + @override String get exitConfirmMessage => 'Er du sikker på, at du vil afslutte?'; + @override String get dontAskAgain => 'Spørg ikke igen'; + @override String get exit => 'Afslut'; + @override String get viewAll => 'Vis alle'; + @override String get checkingNetwork => 'Tjekker netværk...'; + @override String get refreshingServers => 'Opdaterer servere...'; + @override String get loadingServers => 'Indlæser servere...'; + @override String get connectingToServers => 'Forbinder til servere...'; + @override String get startingOfflineMode => 'Starter offlinetilstand...'; +} + +// Path: screens +class _TranslationsScreensDa implements TranslationsScreensEn { + _TranslationsScreensDa._(this._root); + + final TranslationsDa _root; // ignore: unused_field + + // Translations + @override String get licenses => 'Licenser'; + @override String get switchProfile => 'Skift profil'; + @override String get subtitleStyling => 'Undertekststil'; + @override String get mpvConfig => 'mpv.conf'; + @override String get logs => 'Logs'; +} + +// Path: update +class _TranslationsUpdateDa implements TranslationsUpdateEn { + _TranslationsUpdateDa._(this._root); + + final TranslationsDa _root; // ignore: unused_field + + // Translations + @override String get available => 'Opdatering tilgængelig'; + @override String versionAvailable({required Object version}) => 'Version ${version} er tilgængelig'; + @override String currentVersion({required Object version}) => 'Nuværende: ${version}'; + @override String get skipVersion => 'Spring denne version over'; + @override String get viewRelease => 'Vis udgivelse'; + @override String get latestVersion => 'Du har den nyeste version'; + @override String get checkFailed => 'Kunne ikke søge efter opdateringer'; +} + +// Path: settings +class _TranslationsSettingsDa implements TranslationsSettingsEn { + _TranslationsSettingsDa._(this._root); + + final TranslationsDa _root; // ignore: unused_field + + // Translations + @override String get title => 'Indstillinger'; + @override String get language => 'Sprog'; + @override String get theme => 'Tema'; + @override String get appearance => 'Udseende'; + @override String get videoPlayback => 'Videoafspilning'; + @override String get advanced => 'Avanceret'; + @override String get episodePosterMode => 'Episodeplakatstil'; + @override String get seriesPoster => 'Serieplakat'; + @override String get seriesPosterDescription => 'Vis seriens plakat for alle episoder'; + @override String get seasonPoster => 'Sæsonplakat'; + @override String get seasonPosterDescription => 'Vis sæsonspecifik plakat for episoder'; + @override String get episodeThumbnail => 'Episodeminiature'; + @override String get episodeThumbnailDescription => 'Vis 16:9 episodeskærmbilledeminiaturer'; + @override String get showHeroSectionDescription => 'Vis karrusel med udvalgt indhold på startskærmen'; + @override String get secondsLabel => 'Sekunder'; + @override String get minutesLabel => 'Minutter'; + @override String get secondsShort => 's'; + @override String get minutesShort => 'm'; + @override String durationHint({required Object min, required Object max}) => 'Indtast varighed (${min}-${max})'; + @override String get systemTheme => 'System'; + @override String get systemThemeDescription => 'Følg systemindstillinger'; + @override String get lightTheme => 'Lys'; + @override String get darkTheme => 'Mørk'; + @override String get oledTheme => 'OLED'; + @override String get oledThemeDescription => 'Ren sort for OLED-skærme'; + @override String get libraryDensity => 'Bibliotekstæthed'; + @override String get compact => 'Kompakt'; + @override String get compactDescription => 'Mindre kort, flere synlige elementer'; + @override String get normal => 'Normal'; + @override String get normalDescription => 'Standardstørrelse'; + @override String get comfortable => 'Komfortabel'; + @override String get comfortableDescription => 'Større kort, færre synlige elementer'; + @override String get viewMode => 'Visningstilstand'; + @override String get gridView => 'Gitter'; + @override String get gridViewDescription => 'Vis elementer i gitterlayout'; + @override String get listView => 'Liste'; + @override String get listViewDescription => 'Vis elementer i listelayout'; + @override String get showHeroSection => 'Vis hero-sektion'; + @override String get useGlobalHubs => 'Brug Plex Home-layout'; + @override String get useGlobalHubsDescription => 'Vis startsidehubbe som den officielle Plex-klient. Når slået fra, vises anbefalinger per bibliotek.'; + @override String get showServerNameOnHubs => 'Vis servernavn på hubbe'; + @override String get showServerNameOnHubsDescription => 'Vis altid servernavnet i hubtitler. Når slået fra, vises kun ved duplikerede navne.'; + @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'; + @override String get showUnwatchedCountDescription => 'Vis antal usete episoder på serier og sæsoner'; + @override String get hideSpoilers => 'Skjul spoilere for usete episoder'; + @override String get hideSpoilersDescription => 'Slør miniaturebilleder og skjul beskrivelser for episoder, du ikke har set endnu'; + @override String get playerBackend => 'Afspillerbackend'; + @override String get exoPlayer => 'ExoPlayer (Anbefalet)'; + @override String get exoPlayerDescription => 'Android-native afspiller med bedre hardwareunderstøttelse'; + @override String get mpv => 'mpv'; + @override String get mpvDescription => 'Avanceret afspiller med flere funktioner og ASS-undertekstunderstøttelse'; + @override String get hardwareDecoding => 'Hardwaredekodning'; + @override String get hardwareDecodingDescription => 'Brug hardwareacceleration når 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}) => 'Din enhed har ${heap}MB hukommelse. En buffer på ${size}MB kan forårsage afspilningsproblemer.'; + @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 secondsUnit({required Object seconds}) => '${seconds} sekunder'; + @override String get defaultSleepTimer => 'Standard sove-timer'; + @override String minutesUnit({required Object minutes}) => '${minutes} minutter'; + @override String get rememberTrackSelections => 'Husk sporvalg per serie/film'; + @override String get rememberTrackSelectionsDescription => 'Gem automatisk lyd- og undertekstsprogpræferencer når du skifter spor under afspilning'; + @override String get clickVideoTogglesPlayback => 'Klik på video skifter afspil/pause'; + @override String get clickVideoTogglesPlaybackDescription => 'Når aktiveret, afspiller/pauser klik på videoen. Ellers vises/skjules betjeningselementer.'; + @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 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 clearCache => 'Ryd cache'; + @override String get clearCacheDescription => 'Dette rydder alle cachelagrede billeder og data. Appen kan tage længere tid om at indlæse indhold efter rydning.'; + @override String get clearCacheSuccess => 'Cache ryddet'; + @override String get resetSettings => 'Nulstil indstillinger'; + @override String get resetSettingsDescription => 'Alle indstillinger nulstilles til standardværdier. Denne handling kan ikke fortrydes.'; + @override String get resetSettingsSuccess => 'Indstillinger nulstillet'; + @override String get shortcutsReset => 'Genveje nulstillet til standard'; + @override String get about => 'Om'; + @override String get aboutDescription => 'App-information og licenser'; + @override String get updates => 'Opdateringer'; + @override String get updateAvailable => 'Opdatering tilgængelig'; + @override String get checkForUpdates => 'Søg efter opdateringer'; + @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 autoSkip => 'Auto-spring'; + @override String get autoSkipIntro => 'Auto-spring intro'; + @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 autoSkipDelay => 'Auto-spring forsinkelse'; + @override String autoSkipDelayDescription({required Object seconds}) => 'Vent ${seconds} sekunder før automatisk spring'; + @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 downloadLocationCustom => 'Brugerdefineret placering'; + @override String get selectFolder => 'Vælg mappe'; + @override String get resetToDefault => 'Nulstil til standard'; + @override String currentPath({required Object path}) => 'Nuværende: ${path}'; + @override String get downloadLocationChanged => 'Downloadplacering ændret'; + @override String get downloadLocationReset => 'Downloadplacering nulstillet'; + @override String get downloadLocationInvalid => 'Valgt mappe er ikke skrivbar'; + @override String get downloadLocationSelectError => 'Kunne ikke vælge mappe'; + @override String get downloadOnWifiOnly => 'Download kun på WiFi'; + @override String get downloadOnWifiOnlyDescription => 'Forhindre downloads på mobildata'; + @override String get cellularDownloadBlocked => 'Downloads er deaktiveret på mobildata. Opret forbindelse til WiFi eller ændr indstillingen.'; + @override String get maxVolume => 'Maksimal lydstyrke'; + @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 autoPip => 'Auto billede-i-billede'; + @override String get autoPipDescription => 'Gå automatisk til billede-i-billede når du forlader appen under afspilning'; + @override String get matchContentFrameRate => 'Match indholdets billedhastighed'; + @override String get matchContentFrameRateDescription => 'Juster skærmens opdateringshastighed til videoindhold for at reducere hakken og spare batteri'; + @override String get tunneledPlayback => 'Tunneleret afspilning'; + @override String get tunneledPlaybackDescription => 'Brug hardwareaccelereret videotunneling. Deaktiver hvis du ser sort skærm med lyd på HDR-indhold'; + @override String get requireProfileSelectionOnOpen => 'Spørg om profil ved åbning'; + @override String get requireProfileSelectionOnOpenDescription => 'Vis profilvalg hver gang appen åbnes'; + @override String get confirmExitOnBack => 'Bekræft før lukning'; + @override String get confirmExitOnBackDescription => 'Vis bekræftelsesdialog ved tryk på tilbage for at lukke appen'; + @override String get showNavBarLabels => 'Vis navigationsbarlabels'; + @override String get showNavBarLabelsDescription => 'Vis tekstlabels under navigationsbarikoner'; +} + +// Path: search +class _TranslationsSearchDa implements TranslationsSearchEn { + _TranslationsSearchDa._(this._root); + + final TranslationsDa _root; // ignore: unused_field + + // Translations + @override String get hint => 'Søg film, serier, musik...'; + @override String get tryDifferentTerm => 'Prøv en anden søgning'; + @override String get searchYourMedia => 'Søg i dine medier'; + @override String get enterTitleActorOrKeyword => 'Indtast titel, skuespiller eller nøgleord'; +} + +// Path: hotkeys +class _TranslationsHotkeysDa implements TranslationsHotkeysEn { + _TranslationsHotkeysDa._(this._root); + + final TranslationsDa _root; // ignore: unused_field + + // Translations + @override String setShortcutFor({required Object actionName}) => 'Indstil genvej for ${actionName}'; + @override String get clearShortcut => 'Ryd genvej'; + @override late final _TranslationsHotkeysActionsDa actions = _TranslationsHotkeysActionsDa._(_root); +} + +// Path: pinEntry +class _TranslationsPinEntryDa implements TranslationsPinEntryEn { + _TranslationsPinEntryDa._(this._root); + + final TranslationsDa _root; // ignore: unused_field + + // Translations + @override String get enterPin => 'Indtast PIN'; + @override String get showPin => 'Vis PIN'; + @override String get hidePin => 'Skjul PIN'; +} + +// Path: fileInfo +class _TranslationsFileInfoDa implements TranslationsFileInfoEn { + _TranslationsFileInfoDa._(this._root); + + final TranslationsDa _root; // ignore: unused_field + + // Translations + @override String get title => 'Filinfo'; + @override String get video => 'Video'; + @override String get audio => 'Lyd'; + @override String get file => 'Fil'; + @override String get advanced => 'Avanceret'; + @override String get codec => 'Codec'; + @override String get resolution => 'Opløsning'; + @override String get bitrate => 'Bitrate'; + @override String get frameRate => 'Billedhastighed'; + @override String get aspectRatio => 'Billedformat'; + @override String get profile => 'Profil'; + @override String get bitDepth => 'Bitdybde'; + @override String get colorSpace => 'Farverum'; + @override String get colorRange => 'Farveområde'; + @override String get colorPrimaries => 'Farveprimærer'; + @override String get chromaSubsampling => 'Chroma-subsampling'; + @override String get channels => 'Kanaler'; + @override String get path => 'Sti'; + @override String get size => 'Størrelse'; + @override String get container => 'Container'; + @override String get duration => 'Varighed'; + @override String get optimizedForStreaming => 'Optimeret til streaming'; + @override String get has64bitOffsets => '64-bit offsets'; +} + +// Path: mediaMenu +class _TranslationsMediaMenuDa implements TranslationsMediaMenuEn { + _TranslationsMediaMenuDa._(this._root); + + final TranslationsDa _root; // ignore: unused_field + + // Translations + @override String get markAsWatched => 'Markér som set'; + @override String get markAsUnwatched => 'Markér som uset'; + @override String get removeFromContinueWatching => 'Fjern fra Fortsæt med at se'; + @override String get goToSeries => 'Gå til serie'; + @override String get goToSeason => 'Gå til sæson'; + @override String get shufflePlay => 'Afspil tilfældigt'; + @override String get fileInfo => 'Filinfo'; + @override String get deleteFromServer => 'Slet fra server'; + @override String get confirmDelete => 'Dette sletter permanent disse medier og filer fra din server. Dette kan ikke fortrydes.'; + @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 rate => 'Bedøm'; +} + +// Path: accessibility +class _TranslationsAccessibilityDa implements TranslationsAccessibilityEn { + _TranslationsAccessibilityDa._(this._root); + + final TranslationsDa _root; // ignore: unused_field + + // Translations + @override String mediaCardMovie({required Object title}) => '${title}, film'; + @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 => 'set'; + @override String mediaCardPartiallyWatched({required Object percent}) => '${percent} procent set'; + @override String get mediaCardUnwatched => 'uset'; + @override String get tapToPlay => 'Tryk for at afspille'; +} + +// Path: tooltips +class _TranslationsTooltipsDa implements TranslationsTooltipsEn { + _TranslationsTooltipsDa._(this._root); + + final TranslationsDa _root; // ignore: unused_field + + // Translations + @override String get shufflePlay => 'Afspil tilfældigt'; + @override String get playTrailer => 'Afspil trailer'; + @override String get markAsWatched => 'Markér som set'; + @override String get markAsUnwatched => 'Markér som uset'; +} + +// Path: videoControls +class _TranslationsVideoControlsDa implements TranslationsVideoControlsEn { + _TranslationsVideoControlsDa._(this._root); + + final TranslationsDa _root; // ignore: unused_field + + // Translations + @override String get audioLabel => 'Lyd'; + @override String get subtitlesLabel => 'Undertekster'; + @override String get resetToZero => 'Nulstil til 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} afspilles senere'; + @override String playsEarlier({required Object label}) => '${label} afspilles tidligere'; + @override String get noOffset => 'Ingen forskydning'; + @override String get letterbox => 'Letterbox'; + @override String get fillScreen => 'Fyld skærm'; + @override String get stretch => 'Stræk'; + @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 get sleepTimerCompleted => 'Sove-timer fuldført — afspilning sat på pause'; + @override String get stillWatching => 'Ser du stadig?'; + @override String pausingIn({required Object seconds}) => 'Pauser om ${seconds}s'; + @override String get continueWatching => 'Fortsæt'; + @override String get autoPlayNext => 'Auto-afspil næste'; + @override String get playNext => 'Afspil næste'; + @override String get playButton => 'Afspil'; + @override String get pauseButton => 'Pause'; + @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 settingsButton => 'Videoindstillinger'; + @override String get audioTrackButton => 'Lydspor'; + @override String get subtitlesButton => 'Undertekster'; + @override String get tracksButton => 'Lyd og undertekster'; + @override String get chaptersButton => 'Kapitler'; + @override String get versionsButton => 'Videoversioner'; + @override String get pipButton => 'Billede-i-billede-tilstand'; + @override String get aspectRatioButton => 'Billedformat'; + @override String get ambientLighting => 'Omgivelsesbelysning'; + @override String get ambientLightingOn => 'Aktivér omgivelsesbelysning'; + @override String get ambientLightingOff => 'Deaktivér omgivelsesbelysning'; + @override String get fullscreenButton => 'Fuldskærm'; + @override String get exitFullscreenButton => 'Forlad fuldskærm'; + @override String get alwaysOnTopButton => 'Altid øverst'; + @override String get rotationLockButton => 'Rotationslås'; + @override String get timelineSlider => 'Videotidslinje'; + @override String get volumeSlider => 'Lydstyrkeniveau'; + @override String endsAt({required Object time}) => 'Slutter kl. ${time}'; + @override String get pipActive => 'Afspiller i billede-i-billede'; + @override String get pipFailed => 'Billede-i-billede kunne ikke starte'; + @override late final _TranslationsVideoControlsPipErrorsDa pipErrors = _TranslationsVideoControlsPipErrorsDa._(_root); + @override String get chapters => 'Kapitler'; + @override String get noChaptersAvailable => 'Ingen kapitler tilgængelige'; + @override String get queue => 'Kø'; + @override String get noQueueItems => 'Ingen elementer i køen'; +} + +// Path: userStatus +class _TranslationsUserStatusDa implements TranslationsUserStatusEn { + _TranslationsUserStatusDa._(this._root); + + final TranslationsDa _root; // ignore: unused_field + + // Translations + @override String get admin => 'Administrator'; + @override String get restricted => 'Begrænset'; + @override String get protected => 'Beskyttet'; + @override String get current => 'NUVÆRENDE'; +} + +// Path: messages +class _TranslationsMessagesDa implements TranslationsMessagesEn { + _TranslationsMessagesDa._(this._root); + + final TranslationsDa _root; // ignore: unused_field + + // Translations + @override String get markedAsWatched => 'Markeret som set'; + @override String get markedAsUnwatched => 'Markeret som uset'; + @override String get markedAsWatchedOffline => 'Markeret som set (synkroniseres online)'; + @override String get markedAsUnwatchedOffline => 'Markeret som uset (synkroniseres online)'; + @override String get removedFromContinueWatching => 'Fjernet fra Fortsæt med at se'; + @override String errorLoading({required Object error}) => 'Fejl: ${error}'; + @override String get fileInfoNotAvailable => 'Filinfo ikke tilgængelig'; + @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 errorLoadingSeason => 'Fejl ved indlæsning af sæson'; + @override String get musicNotSupported => 'Musikafspilning understøttes endnu ikke'; + @override String get logsCleared => 'Logs ryddet'; + @override String get logsCopied => 'Logs kopieret til udklipsholder'; + @override String get noLogsAvailable => 'Ingen logs 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}'; + @override String metadataRefreshing({required Object title}) => 'Opdaterer metadata for "${title}"...'; + @override String metadataRefreshStarted({required Object title}) => 'Metadataopdatering startet for "${title}"'; + @override String metadataRefreshFailed({required Object error}) => 'Kunne ikke opdatere metadata: ${error}'; + @override String get logoutConfirm => 'Er du sikker på, at du vil logge ud?'; + @override String get noSeasonsFound => 'Ingen sæsoner fundet'; + @override String get noEpisodesFound => 'Ingen episoder fundet i første sæson'; + @override String get noEpisodesFoundGeneral => 'Ingen episoder fundet'; + @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 failedPlayback({required Object action, required Object error}) => 'Kunne ikke ${action}: ${error}'; + @override String get switchingToCompatiblePlayer => 'Skifter til kompatibel afspiller...'; + @override String get logsUploaded => 'Logs uploadet'; + @override String get logsUploadFailed => 'Kunne ikke uploade logs'; + @override String get logId => 'Log-ID'; +} + +// Path: subtitlingStyling +class _TranslationsSubtitlingStylingDa implements TranslationsSubtitlingStylingEn { + _TranslationsSubtitlingStylingDa._(this._root); + + final TranslationsDa _root; // ignore: unused_field + + // Translations + @override String get stylingOptions => 'Stilindstillinger'; + @override String get fontSize => 'Skriftstørrelse'; + @override String get textColor => 'Tekstfarve'; + @override String get borderSize => 'Kantstørrelse'; + @override String get borderColor => 'Kantfarve'; + @override String get backgroundOpacity => 'Baggrundsgennemsigtighed'; + @override String get backgroundColor => 'Baggrundsfarve'; + @override String get position => 'Position'; +} + +// Path: mpvConfig +class _TranslationsMpvConfigDa implements TranslationsMpvConfigEn { + _TranslationsMpvConfigDa._(this._root); + + final TranslationsDa _root; // ignore: unused_field + + // Translations + @override String get title => 'mpv.conf'; + @override String get description => 'Avancerede videoafspillerindstillinger'; + @override String get presets => 'Forudindstillinger'; + @override String get noPresets => 'Ingen gemte forudindstillinger'; + @override String get saveAsPreset => 'Gem som forudindstilling...'; + @override String get presetName => 'Forudindstillingsnavn'; + @override String get presetNameHint => 'Indtast et navn for denne forudindstilling'; + @override String get loadPreset => 'Indlæs'; + @override String get deletePreset => 'Slet'; + @override String get presetSaved => 'Forudindstilling gemt'; + @override String get presetLoaded => 'Forudindstilling indlæst'; + @override String get presetDeleted => 'Forudindstilling slettet'; + @override String get confirmDeletePreset => 'Er du sikker på, at du vil slette denne forudindstilling?'; + @override String get configPlaceholder => 'gpu-api=vulkan\nhwdec=auto\n# comment'; +} + +// Path: dialog +class _TranslationsDialogDa implements TranslationsDialogEn { + _TranslationsDialogDa._(this._root); + + final TranslationsDa _root; // ignore: unused_field + + // Translations + @override String get confirmAction => 'Bekræft handling'; +} + +// Path: discover +class _TranslationsDiscoverDa implements TranslationsDiscoverEn { + _TranslationsDiscoverDa._(this._root); + + final TranslationsDa _root; // ignore: unused_field + + // Translations + @override String get title => 'Opdag'; + @override String get switchProfile => 'Skift profil'; + @override String get noContentAvailable => 'Intet indhold tilgængeligt'; + @override String get addMediaToLibraries => 'Tilføj medier til dine biblioteker'; + @override String get continueWatching => 'Fortsæt med at se'; + @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 seasons => 'Sæsoner'; + @override String get studio => 'Studie'; + @override String get rating => 'Bedømmelse'; + @override String episodeCount({required Object count}) => '${count} episoder'; + @override String watchedProgress({required Object watched, required Object total}) => '${watched}/${total} set'; + @override String get movie => 'Film'; + @override String get tvShow => 'TV-serie'; + @override String minutesLeft({required Object minutes}) => '${minutes} min tilbage'; +} + +// Path: errors +class _TranslationsErrorsDa implements TranslationsErrorsEn { + _TranslationsErrorsDa._(this._root); + + final TranslationsDa _root; // ignore: unused_field + + // 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 get connectionFailed => 'Kunne ikke forbinde til Plex-server'; + @override String failedToLoad({required Object context, required Object error}) => 'Kunne ikke indlæse ${context}: ${error}'; + @override String get noClientAvailable => 'Ingen klient tilgængelig'; + @override String authenticationFailed({required Object error}) => 'Godkendelse mislykkedes: ${error}'; + @override String get couldNotLaunchUrl => 'Kunne ikke åbne godkendelses-URL'; + @override String get pleaseEnterToken => 'Indtast et token'; + @override String get invalidToken => 'Ugyldigt token'; + @override String failedToVerifyToken({required Object error}) => 'Kunne ikke verificere token: ${error}'; + @override String failedToSwitchProfile({required Object displayName}) => 'Kunne ikke skifte til ${displayName}'; +} + +// Path: libraries +class _TranslationsLibrariesDa implements TranslationsLibrariesEn { + _TranslationsLibrariesDa._(this._root); + + final TranslationsDa _root; // ignore: unused_field + + // Translations + @override String get title => 'Biblioteker'; + @override String get scanLibraryFiles => 'Scan biblioteksfiler'; + @override String get scanLibrary => 'Scan bibliotek'; + @override String get analyze => 'Analysér'; + @override String get analyzeLibrary => 'Analysér bibliotek'; + @override String get refreshMetadata => 'Opdater metadata'; + @override String get emptyTrash => 'Tøm papirkurv'; + @override String emptyingTrash({required Object title}) => 'Tømmer papirkurv for "${title}"...'; + @override String trashEmptied({required Object title}) => 'Papirkurv tømt for "${title}"'; + @override String failedToEmptyTrash({required Object error}) => 'Kunne ikke tømme papirkurv: ${error}'; + @override String analyzing({required Object title}) => 'Analyserer "${title}"...'; + @override String analysisStarted({required Object title}) => 'Analyse startet for "${title}"'; + @override String failedToAnalyze({required Object error}) => 'Kunne ikke analysere bibliotek: ${error}'; + @override String get noLibrariesFound => 'Ingen biblioteker fundet'; + @override String get thisLibraryIsEmpty => 'Dette bibliotek er tomt'; + @override String get all => 'Alle'; + @override String get clearAll => 'Ryd alle'; + @override String scanLibraryConfirm({required Object title}) => 'Er du sikker på, at du vil scanne "${title}"?'; + @override String analyzeLibraryConfirm({required Object title}) => 'Er du sikker på, at du vil analysere "${title}"?'; + @override String refreshMetadataConfirm({required Object title}) => 'Er du sikker på, at du vil opdatere metadata for "${title}"?'; + @override String emptyTrashConfirm({required Object title}) => 'Er du sikker på, at du vil tømme papirkurven for "${title}"?'; + @override String get manageLibraries => 'Administrer biblioteker'; + @override String get sort => 'Sortér'; + @override String get sortBy => 'Sortér efter'; + @override String get filters => 'Filtre'; + @override String get confirmActionMessage => 'Er du sikker på, at du vil udføre denne handling?'; + @override String get showLibrary => 'Vis bibliotek'; + @override String get hideLibrary => 'Skjul bibliotek'; + @override String get libraryOptions => 'Biblioteksindstillinger'; + @override String get content => 'biblioteksindhold'; + @override String get selectLibrary => 'Vælg bibliotek'; + @override String filtersWithCount({required Object count}) => 'Filtre (${count})'; + @override String get noRecommendations => 'Ingen anbefalinger tilgængelige'; + @override String get noCollections => 'Ingen samlinger i dette bibliotek'; + @override String get noFoldersFound => 'Ingen mapper fundet'; + @override String get folders => 'mapper'; + @override late final _TranslationsLibrariesTabsDa tabs = _TranslationsLibrariesTabsDa._(_root); + @override late final _TranslationsLibrariesGroupingsDa groupings = _TranslationsLibrariesGroupingsDa._(_root); +} + +// Path: about +class _TranslationsAboutDa implements TranslationsAboutEn { + _TranslationsAboutDa._(this._root); + + final TranslationsDa _root; // ignore: unused_field + + // Translations + @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-klient til Flutter'; + @override String get viewLicensesDescription => 'Se licenser for tredjepartsbiblioteker'; +} + +// Path: serverSelection +class _TranslationsServerSelectionDa implements TranslationsServerSelectionEn { + _TranslationsServerSelectionDa._(this._root); + + final TranslationsDa _root; // ignore: unused_field + + // Translations + @override String get allServerConnectionsFailed => 'Kunne ikke forbinde til nogen servere. Tjek dit netværk og prøv igen.'; + @override String noServersFoundForAccount({required Object username, required Object email}) => 'Ingen servere fundet for ${username} (${email})'; + @override String failedToLoadServers({required Object error}) => 'Kunne ikke indlæse servere: ${error}'; +} + +// Path: hubDetail +class _TranslationsHubDetailDa implements TranslationsHubDetailEn { + _TranslationsHubDetailDa._(this._root); + + final TranslationsDa _root; // ignore: unused_field + + // Translations + @override String get title => 'Titel'; + @override String get releaseYear => 'Udgivelsesår'; + @override String get dateAdded => 'Tilføjelsesdato'; + @override String get rating => 'Bedømmelse'; + @override String get noItemsFound => 'Ingen elementer fundet'; +} + +// Path: logs +class _TranslationsLogsDa implements TranslationsLogsEn { + _TranslationsLogsDa._(this._root); + + 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 error => 'Fejl:'; + @override String get stackTrace => 'Staksporing:'; +} + +// Path: licenses +class _TranslationsLicensesDa implements TranslationsLicensesEn { + _TranslationsLicensesDa._(this._root); + + final TranslationsDa _root; // ignore: unused_field + + // Translations + @override String get relatedPackages => 'Relaterede pakker'; + @override String get license => 'Licens'; + @override String licenseNumber({required Object number}) => 'Licens ${number}'; + @override String licensesCount({required Object count}) => '${count} licenser'; +} + +// Path: navigation +class _TranslationsNavigationDa implements TranslationsNavigationEn { + _TranslationsNavigationDa._(this._root); + + final TranslationsDa _root; // ignore: unused_field + + // Translations + @override String get libraries => 'Biblioteker'; + @override String get downloads => 'Downloads'; + @override String get liveTv => 'Live TV'; +} + +// Path: liveTv +class _TranslationsLiveTvDa implements TranslationsLiveTvEn { + _TranslationsLiveTvDa._(this._root); + + final TranslationsDa _root; // ignore: unused_field + + // Translations + @override String get title => 'Live TV'; + @override String get channels => 'Kanaler'; + @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 tuneFailed => 'Kunne ikke tune kanal'; + @override String get loading => 'Indlæser kanaler...'; + @override String get nowPlaying => 'Afspiller nu'; + @override String get noPrograms => 'Ingen programdata tilgængelig'; + @override String channelNumber({required Object number}) => 'Kn. ${number}'; + @override String get live => 'LIVE'; + @override String get hd => 'HD'; + @override String get premiere => 'NY'; + @override String get reloadGuide => 'Genindlæs guide'; + @override String get allChannels => 'Alle kanaler'; + @override String get now => 'Nu'; + @override String get today => 'I dag'; + @override String get midnight => 'Midnat'; + @override String get overnight => 'Nat'; + @override String get morning => 'Morgen'; + @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 watchChannel => 'Se kanal'; +} + +// Path: collections +class _TranslationsCollectionsDa implements TranslationsCollectionsEn { + _TranslationsCollectionsDa._(this._root); + + final TranslationsDa _root; // ignore: unused_field + + // Translations + @override String get title => 'Samlinger'; + @override String get collection => 'Samling'; + @override String get empty => 'Samlingen er tom'; + @override String get unknownLibrarySection => 'Kan ikke slette: Ukendt bibliotekssektion'; + @override String get deleteCollection => 'Slet samling'; + @override String deleteConfirm({required Object title}) => 'Er du sikker på, at du vil slette "${title}"? Denne handling kan ikke fortrydes.'; + @override String get deleted => 'Samling slettet'; + @override String get deleteFailed => 'Kunne ikke slette samling'; + @override String deleteFailedWithError({required Object error}) => 'Kunne ikke slette samling: ${error}'; + @override String failedToLoadItems({required Object error}) => 'Kunne ikke indlæse samlingselementer: ${error}'; + @override String get selectCollection => 'Vælg samling'; + @override String get collectionName => 'Samlingsnavn'; + @override String get enterCollectionName => 'Indtast samlingsnavn'; + @override String get addedToCollection => 'Tilføjet til samling'; + @override String get errorAddingToCollection => 'Kunne ikke tilføje til samling'; + @override String get created => 'Samling oprettet'; + @override String get removeFromCollection => 'Fjern fra samling'; + @override String removeFromCollectionConfirm({required Object title}) => 'Fjern "${title}" fra denne samling?'; + @override String get removedFromCollection => 'Fjernet fra samling'; + @override String get removeFromCollectionFailed => 'Kunne ikke fjerne fra samling'; + @override String removeFromCollectionError({required Object error}) => 'Fejl ved fjernelse fra samling: ${error}'; +} + +// Path: playlists +class _TranslationsPlaylistsDa implements TranslationsPlaylistsEn { + _TranslationsPlaylistsDa._(this._root); + + final TranslationsDa _root; // ignore: unused_field + + // Translations + @override String get title => 'Playlister'; + @override String get playlist => 'Playliste'; + @override String get noPlaylists => 'Ingen playlister fundet'; + @override String get create => 'Opret playliste'; + @override String get playlistName => 'Playlistenavn'; + @override String get enterPlaylistName => 'Indtast playlistenavn'; + @override String get delete => 'Slet playliste'; + @override String get removeItem => 'Fjern fra playliste'; + @override String get smartPlaylist => 'Smart playliste'; + @override String itemCount({required Object count}) => '${count} elementer'; + @override String get oneItem => '1 element'; + @override String get emptyPlaylist => 'Denne playliste er tom'; + @override String get deleteConfirm => 'Slet playliste?'; + @override String deleteMessage({required Object name}) => 'Er du sikker på, at du vil slette "${name}"?'; + @override String get created => 'Playliste oprettet'; + @override String get deleted => 'Playliste slettet'; + @override String get itemAdded => 'Tilføjet til playliste'; + @override String get itemRemoved => 'Fjernet fra playliste'; + @override String get selectPlaylist => 'Vælg playliste'; + @override String get errorCreating => 'Kunne ikke oprette playliste'; + @override String get errorDeleting => 'Kunne ikke slette playliste'; + @override String get errorLoading => 'Kunne ikke indlæse playlister'; + @override String get errorAdding => 'Kunne ikke tilføje til playliste'; + @override String get errorReordering => 'Kunne ikke ændre rækkefølge på playlisteelement'; + @override String get errorRemoving => 'Kunne ikke fjerne fra playliste'; +} + +// Path: watchTogether +class _TranslationsWatchTogetherDa implements TranslationsWatchTogetherEn { + _TranslationsWatchTogetherDa._(this._root); + + final TranslationsDa _root; // ignore: unused_field + + // Translations + @override String get title => 'Se sammen'; + @override String get description => 'Se indhold synkroniseret med venner og familie'; + @override String get createSession => 'Opret session'; + @override String get creating => 'Opretter...'; + @override String get joinSession => 'Deltag i session'; + @override String get joining => 'Deltager...'; + @override String get controlMode => 'Kontroltilstand'; + @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 sessionCode => '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 anyoneControls => 'Alle styrer'; + @override String get participants => 'Deltagere'; + @override String get host => 'Vært'; + @override String get hostBadge => 'HOST'; + @override String get youAreHost => 'Du er vært'; + @override String get watchingWithOthers => 'Ser med andre'; + @override String get endSession => 'Afslut session'; + @override String get leaveSession => 'Forlad session'; + @override String get endSessionQuestion => 'Afslut session?'; + @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 end => 'Afslut'; + @override String get leave => 'Forlad'; + @override String get syncing => 'Synkroniserer...'; + @override String get joinWatchSession => 'Deltag i se-session'; + @override String get enterCodeHint => 'Indtast 8-tegns kode'; + @override String get pasteFromClipboard => 'Indsæt fra udklipsholder'; + @override String get pleaseEnterCode => 'Indtast en sessionskode'; + @override String get codeMustBe8Chars => 'Sessionskode skal være 8 tegn'; + @override String get joinInstructions => 'Indtast sessionskoden delt af værten for at deltage i se-sessionen.'; + @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. Dette kan skyldes, at din udbyder blokerer forbindelsen. Du kan stadig prøve, men Se sammen virker muligvis ikke.'; + @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'; + @override String get joinCurrentPlaybackDescription => 'Hop tilbage til det værten ser nu'; + @override String get failedToOpenCurrentPlayback => 'Kunne ikke åbne nuværende afspilning'; + @override String participantJoined({required Object name}) => '${name} deltog'; + @override String participantLeft({required Object name}) => '${name} forlod'; +} + +// Path: downloads +class _TranslationsDownloadsDa implements TranslationsDownloadsEn { + _TranslationsDownloadsDa._(this._root); + + final TranslationsDa _root; // ignore: unused_field + + // Translations + @override String get title => 'Downloads'; + @override String get manage => 'Administrer'; + @override String get tvShows => 'TV-serier'; + @override String get movies => 'Film'; + @override String get noDownloads => 'Ingen downloads endnu'; + @override String get noDownloadsDescription => 'Downloadet indhold vises her til offlinevisning'; + @override String get downloadNow => 'Download'; + @override String get deleteDownload => 'Slet download'; + @override String get retryDownload => 'Prøv download igen'; + @override String get downloadQueued => 'Download i kø'; + @override String episodesQueued({required Object count}) => '${count} episoder i downloadkø'; + @override String get downloadDeleted => 'Download slettet'; + @override String deleteConfirm({required Object title}) => 'Er du sikker på, at du vil slette "${title}"? Den downloadede fil fjernes fra din enhed.'; + @override String deletingWithProgress({required Object title, required Object current, required Object total}) => 'Sletter ${title}... (${current} af ${total})'; + @override String get noDownloadsTree => 'Ingen downloads'; + @override String get pauseAll => 'Pause alle'; + @override String get resumeAll => 'Genoptag alle'; + @override String get deleteAll => 'Slet alle'; +} + +// Path: shaders +class _TranslationsShadersDa implements TranslationsShadersEn { + _TranslationsShadersDa._(this._root); + + final TranslationsDa _root; // ignore: unused_field + + // Translations + @override String get title => 'Shadere'; + @override String get noShaderDescription => 'Ingen videoforbedring'; + @override String get nvscalerDescription => 'NVIDIA-billedskalering for skarpere video'; + @override String get qualityFast => 'Hurtig'; + @override String get qualityHQ => 'Høj kvalitet'; + @override String get mode => 'Tilstand'; + @override String get importShader => 'Importér shader'; + @override String get customShaderDescription => 'Brugerdefineret GLSL-shader'; + @override String get shaderImported => 'Shader importeret'; + @override String get shaderImportFailed => 'Kunne ikke importere shader'; + @override String get deleteShader => 'Slet shader'; + @override String deleteShaderConfirm({required Object name}) => 'Slet "${name}"?'; +} + +// Path: companionRemote +class _TranslationsCompanionRemoteDa implements TranslationsCompanionRemoteEn { + _TranslationsCompanionRemoteDa._(this._root); + + final TranslationsDa _root; // ignore: unused_field + + // Translations + @override String get title => 'Fjernbetjening'; + @override String get connectToDevice => 'Forbind til enhed'; + @override String get hostRemoteSession => 'Vært for fjernsession'; + @override String get controlThisDevice => 'Styr denne enhed med din telefon'; + @override String get remoteControl => 'Fjernbetjening'; + @override String get controlDesktop => 'Styr en desktopenhed'; + @override String connectedTo({required Object name}) => 'Forbundet til ${name}'; + @override late final _TranslationsCompanionRemoteSessionDa session = _TranslationsCompanionRemoteSessionDa._(_root); + @override late final _TranslationsCompanionRemotePairingDa pairing = _TranslationsCompanionRemotePairingDa._(_root); + @override late final _TranslationsCompanionRemoteRemoteDa remote = _TranslationsCompanionRemoteRemoteDa._(_root); +} + +// Path: videoSettings +class _TranslationsVideoSettingsDa implements TranslationsVideoSettingsEn { + _TranslationsVideoSettingsDa._(this._root); + + final TranslationsDa _root; // ignore: unused_field + + // Translations + @override String get playbackSettings => 'Afspilningsindstillinger'; + @override String get playbackSpeed => 'Afspilningshastighed'; + @override String get sleepTimer => 'Sove-timer'; + @override String get audioSync => 'Lydsynkronisering'; + @override String get subtitleSync => 'Undertekstsynkronisering'; + @override String get hdr => 'HDR'; + @override String get audioOutput => 'Lydoutput'; + @override String get performanceOverlay => 'Ydelsesoverlay'; + @override String get audioPassthrough => 'Lyd-passthrough'; + @override String get audioNormalization => 'Lydnormalisering'; +} + +// Path: externalPlayer +class _TranslationsExternalPlayerDa implements TranslationsExternalPlayerEn { + _TranslationsExternalPlayerDa._(this._root); + + final TranslationsDa _root; // ignore: unused_field + + // Translations + @override String get title => 'Ekstern afspiller'; + @override String get useExternalPlayer => 'Brug ekstern afspiller'; + @override String get useExternalPlayerDescription => 'Åbn videoer i en ekstern app i stedet for den indbyggede afspiller'; + @override String get selectPlayer => 'Vælg afspiller'; + @override String get systemDefault => 'Systemstandard'; + @override String get addCustomPlayer => 'Tilføj brugerdefineret afspiller'; + @override String get playerName => 'Afspillernavn'; + @override String get playerCommand => 'Kommando'; + @override String get playerPackage => 'Pakkenavn'; + @override String get playerUrlScheme => 'URL-skema'; + @override String get customPlayer => 'Brugerdefineret afspiller'; + @override String get off => 'Fra'; + @override String get launchFailed => 'Kunne ikke åbne ekstern afspiller'; + @override String appNotInstalled({required Object name}) => '${name} er ikke installeret'; + @override String get playInExternalPlayer => 'Afspil i ekstern afspiller'; +} + +// Path: metadataEdit +class _TranslationsMetadataEditDa implements TranslationsMetadataEditEn { + _TranslationsMetadataEditDa._(this._root); + + 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 artwork => 'Grafik'; + @override String get advancedSettings => 'Avancerede indstillinger'; + @override String get title => 'Titel'; + @override String get sortTitle => 'Sorteringstitel'; + @override String get originalTitle => 'Originaltitel'; + @override String get releaseDate => 'Udgivelsesdato'; + @override String get contentRating => 'Aldersgrænse'; + @override String get studio => 'Studie'; + @override String get tagline => 'Tagline'; + @override String get summary => 'Resumé'; + @override String get poster => 'Plakat'; + @override String get background => 'Baggrund'; + @override String get selectPoster => 'Vælg plakat'; + @override String get selectBackground => 'Vælg baggrund'; + @override String get fromUrl => 'Fra URL'; + @override String get uploadFile => 'Upload fil'; + @override String get enterImageUrl => 'Indtast billed-URL'; + @override String get imageUrl => 'Billed-URL'; + @override String get metadataUpdated => 'Metadata opdateret'; + @override String get metadataUpdateFailed => 'Kunne ikke opdatere metadata'; + @override String get artworkUpdated => 'Grafik opdateret'; + @override String get artworkUpdateFailed => 'Kunne ikke opdatere grafik'; + @override String get noArtworkAvailable => 'Ingen grafik tilgængelig'; + @override String get notSet => 'Ikke indstillet'; + @override String get libraryDefault => 'Biblioteksstandard'; + @override String get accountDefault => 'Kontostandard'; + @override String get seriesDefault => 'Seriestandard'; + @override String get episodeSorting => 'Episodesortering'; + @override String get oldestFirst => 'Ældste først'; + @override String get newestFirst => 'Nyeste først'; + @override String get keep => 'Behold'; + @override String get allEpisodes => 'Alle episoder'; + @override String latestEpisodes({required Object count}) => '${count} seneste episoder'; + @override String get latestEpisode => 'Seneste episode'; + @override String episodesAddedPastDays({required Object count}) => 'Episoder tilføjet de seneste ${count} dage'; + @override String get deleteAfterPlaying => 'Slet episoder efter afspilning'; + @override String get never => 'Aldrig'; + @override String get afterADay => 'Efter en dag'; + @override String get afterAWeek => 'Efter en uge'; + @override String get afterAMonth => 'Efter en måned'; + @override String get onNextRefresh => 'Ved næste opdatering'; + @override String get seasons => 'Sæsoner'; + @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 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 manuallySelected => 'Manuelt valgt'; + @override String get shownWithForeignAudio => 'Vist med fremmedsproget lyd'; + @override String get alwaysEnabled => 'Altid aktiveret'; +} + +// Path: hotkeys.actions +class _TranslationsHotkeysActionsDa implements TranslationsHotkeysActionsEn { + _TranslationsHotkeysActionsDa._(this._root); + + final TranslationsDa _root; // ignore: unused_field + + // Translations + @override String get playPause => 'Afspil/Pause'; + @override String get volumeUp => 'Lydstyrke op'; + @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 audioTrackNext => 'Næste lydspor'; + @override String get subtitleTrackNext => 'Næste undertekstspor'; + @override String get chapterNext => 'Næste kapitel'; + @override String get chapterPrevious => 'Forrige kapitel'; + @override String get speedIncrease => 'Øg hastighed'; + @override String get speedDecrease => 'Sænk hastighed'; + @override String get speedReset => 'Nulstil hastighed'; + @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 skipMarker => 'Spring intro/rulletekster over'; +} + +// Path: videoControls.pipErrors +class _TranslationsVideoControlsPipErrorsDa implements TranslationsVideoControlsPipErrorsEn { + _TranslationsVideoControlsPipErrorsDa._(this._root); + + final TranslationsDa _root; // ignore: unused_field + + // Translations + @override String get androidVersion => 'Kræver Android 8.0 eller nyere'; + @override String get iosVersion => 'Kræver iOS 15.0 eller nyere'; + @override String get permissionDisabled => 'Billede-i-billede-tilladelse er deaktiveret. Aktivér i Indstillinger > Apps > Plezy > Billede-i-billede'; + @override String get notSupported => 'Enheden understøtter ikke billede-i-billede'; + @override String get voSwitchFailed => 'Kunne ikke skifte videooutput til billede-i-billede'; + @override String get failed => 'Billede-i-billede kunne ikke starte'; + @override String unknown({required Object error}) => 'Der opstod en fejl: ${error}'; +} + +// Path: libraries.tabs +class _TranslationsLibrariesTabsDa implements TranslationsLibrariesTabsEn { + _TranslationsLibrariesTabsDa._(this._root); + + final TranslationsDa _root; // ignore: unused_field + + // Translations + @override String get recommended => 'Anbefalet'; + @override String get browse => 'Gennemse'; + @override String get collections => 'Samlinger'; + @override String get playlists => 'Playlister'; +} + +// Path: libraries.groupings +class _TranslationsLibrariesGroupingsDa implements TranslationsLibrariesGroupingsEn { + _TranslationsLibrariesGroupingsDa._(this._root); + + final TranslationsDa _root; // ignore: unused_field + + // Translations + @override String get all => 'Alle'; + @override String get movies => 'Film'; + @override String get shows => 'TV-serier'; + @override String get seasons => 'Sæsoner'; + @override String get episodes => 'Episoder'; + @override String get folders => 'Mapper'; +} + +// Path: companionRemote.session +class _TranslationsCompanionRemoteSessionDa implements TranslationsCompanionRemoteSessionEn { + _TranslationsCompanionRemoteSessionDa._(this._root); + + final TranslationsDa _root; // ignore: unused_field + + // Translations + @override String get creatingSession => 'Opretter fjernsession...'; + @override String get failedToCreate => 'Kunne ikke oprette fjernsession:'; + @override String get noSession => 'Ingen session tilgængelig'; + @override String get scanQrCode => 'Scan QR-kode'; + @override String get orEnterManually => 'Eller indtast manuelt'; + @override String get hostAddress => 'Værtadresse'; + @override String get sessionId => 'Sessions-ID'; + @override String get pin => 'PIN'; + @override String get connected => 'Forbundet'; + @override String get waitingForConnection => 'Venter på forbindelse...'; + @override String get usePhoneToControl => 'Brug din mobilenhed til at styre denne app'; + @override String copiedToClipboard({required Object label}) => '${label} kopieret til udklipsholder'; + @override String get copyToClipboard => 'Kopiér til udklipsholder'; + @override String get newSession => 'Ny session'; + @override String get minimize => 'Minimér'; +} + +// Path: companionRemote.pairing +class _TranslationsCompanionRemotePairingDa implements TranslationsCompanionRemotePairingEn { + _TranslationsCompanionRemotePairingDa._(this._root); + + final TranslationsDa _root; // ignore: unused_field + + // Translations + @override String get scan => 'Scan'; + @override String get manual => 'Manuel'; + @override String get pairWithDesktop => 'Par med desktop'; + @override String get enterSessionDetails => 'Indtast sessionsdetaljerne vist på din desktopenhed'; + @override String get hostAddressHint => '192.168.1.100:48632'; + @override String get sessionIdHint => 'Indtast 8-tegns sessions-ID'; + @override String get pinHint => 'Indtast 6-cifret PIN'; + @override String get connecting => 'Forbinder...'; + @override String get tips => 'Tips'; + @override String get tipDesktop => 'Åbn Plezy på din desktop og aktivér fjernbetjening fra indstillinger eller menu'; + @override String get tipScan => 'Brug fanen Scan til hurtigt at parre ved at scanne QR-koden på din desktop'; + @override String get tipWifi => 'Sørg for, at begge enheder er på det samme WiFi-netværk'; + @override String get cameraPermissionRequired => 'Kameratilladelse er påkrævet for at scanne QR-koder.\nGiv kameraadgang i enhedsindstillinger.'; + @override String cameraError({required Object error}) => 'Kunne ikke starte kamera: ${error}'; + @override String get scanInstruction => 'Ret kameraet mod QR-koden vist på din desktop'; + @override String get invalidQrCode => 'Ugyldigt QR-kodeformat'; + @override String get validationHostRequired => 'Indtast værtadresse'; + @override String get validationHostFormat => 'Format skal være IP:port (f.eks. 192.168.1.100:48632)'; + @override String get validationSessionIdRequired => 'Indtast et sessions-ID'; + @override String get validationSessionIdLength => 'Sessions-ID skal være 8 tegn'; + @override String get validationPinRequired => 'Indtast en PIN'; + @override String get validationPinLength => 'PIN skal være 6 cifre'; + @override String get connectionTimedOut => 'Forbindelsen fik timeout. Tjek sessions-ID og PIN.'; + @override String get sessionNotFound => 'Kunne ikke finde sessionen. Tjek dine oplysninger.'; + @override String failedToConnect({required Object error}) => 'Kunne ikke forbinde: ${error}'; +} + +// Path: companionRemote.remote +class _TranslationsCompanionRemoteRemoteDa implements TranslationsCompanionRemoteRemoteEn { + _TranslationsCompanionRemoteRemoteDa._(this._root); + + final TranslationsDa _root; // ignore: unused_field + + // Translations + @override String get disconnectConfirm => 'Vil du afbryde fra 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'; + @override String get connectionError => 'Forbindelsesfejl'; + @override String get notConnected => 'Ikke forbundet'; + @override String get tabRemote => 'Fjernbetjening'; + @override String get tabPlay => 'Afspil'; + @override String get tabMore => 'Mere'; + @override String get menu => 'Menu'; + @override String get tabNavigation => 'Fanenavigation'; + @override String get tabDiscover => 'Opdag'; + @override String get tabLibraries => 'Biblioteker'; + @override String get tabSearch => 'Søg'; + @override String get tabDownloads => 'Downloads'; + @override String get tabSettings => 'Indstillinger'; + @override String get previous => 'Forrige'; + @override String get playPause => 'Afspil/Pause'; + @override String get next => 'Næste'; + @override String get seekBack => 'Spol tilbage'; + @override String get stop => 'Stop'; + @override String get seekForward => 'Spol frem'; + @override String get volume => 'Lydstyrke'; + @override String get volumeDown => 'Ned'; + @override String get volumeUp => 'Op'; + @override String get fullscreen => 'Fuldskærm'; + @override String get subtitles => 'Undertekster'; + @override String get audio => 'Lyd'; + @override String get searchHint => 'Søg på desktop...'; +} + +/// 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 TranslationsDa { + dynamic _flatMapFunction(String path) { + return switch (path) { + 'app.title' => 'Plezy', + 'auth.signInWithPlex' => 'Log ind med Plex', + 'auth.showQRCode' => 'Vis QR-kode', + 'auth.authenticate' => 'Godkend', + 'auth.debugEnterToken' => 'Debug: Indtast Plex-token', + 'auth.plexTokenLabel' => 'Plex-godkendelsestoken', + 'auth.plexTokenHint' => 'Indtast dit Plex.tv-token', + 'auth.authenticationTimeout' => 'Godkendelse fik timeout. Prøv igen.', + 'auth.scanQRToSignIn' => 'Scan denne QR-kode for at logge ind', + 'auth.waitingForAuth' => 'Venter på godkendelse...\nFærdiggør login i din browser.', + 'auth.useBrowser' => 'Brug browser', + 'common.cancel' => 'Annuller', + 'common.save' => 'Gem', + 'common.close' => 'Luk', + 'common.clear' => 'Ryd', + 'common.reset' => 'Nulstil', + 'common.later' => 'Senere', + 'common.submit' => 'Indsend', + 'common.confirm' => 'Bekræft', + 'common.retry' => 'Prøv igen', + 'common.logout' => 'Log ud', + 'common.unknown' => 'Ukendt', + 'common.refresh' => 'Opdater', + 'common.yes' => 'Ja', + 'common.no' => 'Nej', + 'common.delete' => 'Slet', + 'common.shuffle' => 'Bland', + 'common.addTo' => 'Tilføj til...', + 'common.createNew' => 'Opret ny', + 'common.remove' => 'Fjern', + 'common.paste' => 'Indsæt', + 'common.connect' => 'Forbind', + 'common.disconnect' => 'Afbryd', + 'common.play' => 'Afspil', + 'common.pause' => 'Pause', + 'common.resume' => 'Genoptag', + 'common.error' => 'Fejl', + 'common.search' => 'Søg', + 'common.home' => 'Hjem', + 'common.back' => 'Tilbage', + 'common.settings' => 'Indstillinger', + 'common.mute' => 'Lydløs', + 'common.ok' => 'OK', + 'common.loading' => 'Indlæser...', + 'common.reconnect' => 'Genopret forbindelse', + 'common.exitConfirmTitle' => 'Luk app?', + 'common.exitConfirmMessage' => 'Er du sikker på, at du vil afslutte?', + 'common.dontAskAgain' => 'Spørg ikke igen', + 'common.exit' => 'Afslut', + 'common.viewAll' => 'Vis alle', + 'common.checkingNetwork' => 'Tjekker netværk...', + 'common.refreshingServers' => 'Opdaterer servere...', + 'common.loadingServers' => 'Indlæser servere...', + 'common.connectingToServers' => 'Forbinder til servere...', + 'common.startingOfflineMode' => 'Starter offlinetilstand...', + 'screens.licenses' => 'Licenser', + 'screens.switchProfile' => 'Skift profil', + 'screens.subtitleStyling' => 'Undertekststil', + 'screens.mpvConfig' => 'mpv.conf', + 'screens.logs' => 'Logs', + 'update.available' => 'Opdatering tilgængelig', + 'update.versionAvailable' => ({required Object version}) => 'Version ${version} er tilgængelig', + 'update.currentVersion' => ({required Object version}) => 'Nuværende: ${version}', + 'update.skipVersion' => 'Spring denne version over', + 'update.viewRelease' => 'Vis udgivelse', + 'update.latestVersion' => 'Du har den nyeste version', + 'update.checkFailed' => 'Kunne ikke søge efter opdateringer', + 'settings.title' => 'Indstillinger', + 'settings.language' => 'Sprog', + 'settings.theme' => 'Tema', + 'settings.appearance' => 'Udseende', + 'settings.videoPlayback' => 'Videoafspilning', + 'settings.advanced' => 'Avanceret', + 'settings.episodePosterMode' => 'Episodeplakatstil', + 'settings.seriesPoster' => 'Serieplakat', + 'settings.seriesPosterDescription' => 'Vis seriens plakat for alle episoder', + 'settings.seasonPoster' => 'Sæsonplakat', + 'settings.seasonPosterDescription' => 'Vis sæsonspecifik plakat for episoder', + 'settings.episodeThumbnail' => 'Episodeminiature', + 'settings.episodeThumbnailDescription' => 'Vis 16:9 episodeskærmbilledeminiaturer', + 'settings.showHeroSectionDescription' => 'Vis karrusel med udvalgt indhold på startskærmen', + 'settings.secondsLabel' => 'Sekunder', + 'settings.minutesLabel' => 'Minutter', + 'settings.secondsShort' => 's', + 'settings.minutesShort' => 'm', + 'settings.durationHint' => ({required Object min, required Object max}) => 'Indtast varighed (${min}-${max})', + 'settings.systemTheme' => 'System', + 'settings.systemThemeDescription' => 'Følg systemindstillinger', + 'settings.lightTheme' => 'Lys', + 'settings.darkTheme' => 'Mørk', + 'settings.oledTheme' => 'OLED', + 'settings.oledThemeDescription' => 'Ren sort for OLED-skærme', + 'settings.libraryDensity' => 'Bibliotekstæthed', + 'settings.compact' => 'Kompakt', + 'settings.compactDescription' => 'Mindre kort, flere synlige elementer', + 'settings.normal' => 'Normal', + 'settings.normalDescription' => 'Standardstørrelse', + 'settings.comfortable' => 'Komfortabel', + 'settings.comfortableDescription' => 'Større kort, færre synlige elementer', + 'settings.viewMode' => 'Visningstilstand', + 'settings.gridView' => 'Gitter', + 'settings.gridViewDescription' => 'Vis elementer i gitterlayout', + 'settings.listView' => 'Liste', + 'settings.listViewDescription' => 'Vis elementer i listelayout', + 'settings.showHeroSection' => 'Vis hero-sektion', + 'settings.useGlobalHubs' => 'Brug Plex Home-layout', + 'settings.useGlobalHubsDescription' => 'Vis startsidehubbe som den officielle Plex-klient. Når slået fra, vises anbefalinger per bibliotek.', + 'settings.showServerNameOnHubs' => 'Vis servernavn på hubbe', + 'settings.showServerNameOnHubsDescription' => 'Vis altid servernavnet i hubtitler. Når slået fra, vises kun ved duplikerede navne.', + 'settings.alwaysKeepSidebarOpen' => 'Hold altid sidepanelet åbent', + 'settings.alwaysKeepSidebarOpenDescription' => 'Sidepanelet forbliver udvidet, og indholdsområdet tilpasser sig', + 'settings.showUnwatchedCount' => 'Vis antal usete', + 'settings.showUnwatchedCountDescription' => 'Vis antal usete episoder på serier og sæsoner', + 'settings.hideSpoilers' => 'Skjul spoilere for usete episoder', + 'settings.hideSpoilersDescription' => 'Slør miniaturebilleder og skjul beskrivelser for episoder, du ikke har set endnu', + 'settings.playerBackend' => 'Afspillerbackend', + 'settings.exoPlayer' => 'ExoPlayer (Anbefalet)', + 'settings.exoPlayerDescription' => 'Android-native afspiller med bedre hardwareunderstøttelse', + 'settings.mpv' => 'mpv', + 'settings.mpvDescription' => 'Avanceret afspiller med flere funktioner og ASS-undertekstunderstøttelse', + 'settings.hardwareDecoding' => 'Hardwaredekodning', + 'settings.hardwareDecodingDescription' => 'Brug hardwareacceleration når 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}) => 'Din enhed har ${heap}MB hukommelse. En buffer på ${size}MB kan forårsage afspilningsproblemer.', + 'settings.subtitleStyling' => 'Undertekststil', + 'settings.subtitleStylingDescription' => 'Tilpas underteksters udseende', + 'settings.smallSkipDuration' => 'Kort spring-varighed', + 'settings.largeSkipDuration' => 'Lang spring-varighed', + 'settings.secondsUnit' => ({required Object seconds}) => '${seconds} sekunder', + 'settings.defaultSleepTimer' => 'Standard sove-timer', + 'settings.minutesUnit' => ({required Object minutes}) => '${minutes} minutter', + 'settings.rememberTrackSelections' => 'Husk sporvalg per serie/film', + 'settings.rememberTrackSelectionsDescription' => 'Gem automatisk lyd- og undertekstsprogpræferencer når du skifter spor under afspilning', + 'settings.clickVideoTogglesPlayback' => 'Klik på video skifter afspil/pause', + 'settings.clickVideoTogglesPlaybackDescription' => 'Når aktiveret, afspiller/pauser klik på videoen. Ellers vises/skjules betjeningselementer.', + 'settings.videoPlayerControls' => 'Videoafspillerkontroller', + 'settings.keyboardShortcuts' => 'Tastaturgenveje', + 'settings.keyboardShortcutsDescription' => 'Tilpas tastaturgenveje', + 'settings.videoPlayerNavigation' => 'Videoafspillernavigation', + 'settings.videoPlayerNavigationDescription' => 'Brug piletaster til at navigere videoafspillerkontroller', + '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.clearCache' => 'Ryd cache', + 'settings.clearCacheDescription' => 'Dette rydder alle cachelagrede billeder og data. Appen kan tage længere tid om at indlæse indhold efter rydning.', + 'settings.clearCacheSuccess' => 'Cache ryddet', + 'settings.resetSettings' => 'Nulstil indstillinger', + 'settings.resetSettingsDescription' => 'Alle indstillinger nulstilles til standardværdier. Denne handling kan ikke fortrydes.', + 'settings.resetSettingsSuccess' => 'Indstillinger nulstillet', + 'settings.shortcutsReset' => 'Genveje nulstillet til standard', + 'settings.about' => 'Om', + 'settings.aboutDescription' => 'App-information og licenser', + 'settings.updates' => 'Opdateringer', + 'settings.updateAvailable' => 'Opdatering tilgængelig', + 'settings.checkForUpdates' => 'Søg efter opdateringer', + '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.autoSkip' => 'Auto-spring', + 'settings.autoSkipIntro' => 'Auto-spring intro', + '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.autoSkipDelay' => 'Auto-spring forsinkelse', + 'settings.autoSkipDelayDescription' => ({required Object seconds}) => 'Vent ${seconds} sekunder før automatisk spring', + 'settings.downloads' => 'Downloads', + 'settings.downloadLocationDescription' => 'Vælg hvor downloadet indhold skal gemmes', + 'settings.downloadLocationDefault' => 'Standard (App-lagring)', + 'settings.downloadLocationCustom' => 'Brugerdefineret placering', + 'settings.selectFolder' => 'Vælg mappe', + 'settings.resetToDefault' => 'Nulstil til standard', + 'settings.currentPath' => ({required Object path}) => 'Nuværende: ${path}', + 'settings.downloadLocationChanged' => 'Downloadplacering ændret', + 'settings.downloadLocationReset' => 'Downloadplacering nulstillet', + 'settings.downloadLocationInvalid' => 'Valgt mappe er ikke skrivbar', + 'settings.downloadLocationSelectError' => 'Kunne ikke vælge mappe', + 'settings.downloadOnWifiOnly' => 'Download kun på WiFi', + 'settings.downloadOnWifiOnlyDescription' => 'Forhindre downloads på mobildata', + 'settings.cellularDownloadBlocked' => 'Downloads er deaktiveret på mobildata. Opret forbindelse til WiFi eller ændr indstillingen.', + 'settings.maxVolume' => 'Maksimal lydstyrke', + '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.autoPip' => 'Auto billede-i-billede', + 'settings.autoPipDescription' => 'Gå automatisk til billede-i-billede når du forlader appen under afspilning', + 'settings.matchContentFrameRate' => 'Match indholdets billedhastighed', + 'settings.matchContentFrameRateDescription' => 'Juster skærmens opdateringshastighed til videoindhold for at reducere hakken og spare batteri', + 'settings.tunneledPlayback' => 'Tunneleret afspilning', + 'settings.tunneledPlaybackDescription' => 'Brug hardwareaccelereret videotunneling. Deaktiver hvis du ser sort skærm med lyd på HDR-indhold', + 'settings.requireProfileSelectionOnOpen' => 'Spørg om profil ved åbning', + 'settings.requireProfileSelectionOnOpenDescription' => 'Vis profilvalg hver gang appen åbnes', + 'settings.confirmExitOnBack' => 'Bekræft før lukning', + 'settings.confirmExitOnBackDescription' => 'Vis bekræftelsesdialog ved tryk på tilbage for at lukke appen', + 'settings.showNavBarLabels' => 'Vis navigationsbarlabels', + 'settings.showNavBarLabelsDescription' => 'Vis tekstlabels under navigationsbarikoner', + 'search.hint' => 'Søg film, serier, musik...', + 'search.tryDifferentTerm' => 'Prøv en anden søgning', + 'search.searchYourMedia' => 'Søg i dine medier', + 'search.enterTitleActorOrKeyword' => 'Indtast titel, skuespiller eller nøgleord', + 'hotkeys.setShortcutFor' => ({required Object actionName}) => 'Indstil genvej for ${actionName}', + 'hotkeys.clearShortcut' => 'Ryd genvej', + 'hotkeys.actions.playPause' => 'Afspil/Pause', + 'hotkeys.actions.volumeUp' => 'Lydstyrke op', + '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.audioTrackNext' => 'Næste lydspor', + 'hotkeys.actions.subtitleTrackNext' => 'Næste undertekstspor', + 'hotkeys.actions.chapterNext' => 'Næste kapitel', + 'hotkeys.actions.chapterPrevious' => 'Forrige kapitel', + 'hotkeys.actions.speedIncrease' => 'Øg hastighed', + 'hotkeys.actions.speedDecrease' => 'Sænk hastighed', + 'hotkeys.actions.speedReset' => 'Nulstil hastighed', + 'hotkeys.actions.subSeekNext' => 'Søg til næste undertekst', + 'hotkeys.actions.subSeekPrev' => 'Søg til forrige undertekst', + 'hotkeys.actions.shaderToggle' => 'Skift shadere', + 'hotkeys.actions.skipMarker' => 'Spring intro/rulletekster over', + 'pinEntry.enterPin' => 'Indtast PIN', + 'pinEntry.showPin' => 'Vis PIN', + 'pinEntry.hidePin' => 'Skjul PIN', + 'fileInfo.title' => 'Filinfo', + 'fileInfo.video' => 'Video', + 'fileInfo.audio' => 'Lyd', + 'fileInfo.file' => 'Fil', + 'fileInfo.advanced' => 'Avanceret', + 'fileInfo.codec' => 'Codec', + 'fileInfo.resolution' => 'Opløsning', + 'fileInfo.bitrate' => 'Bitrate', + 'fileInfo.frameRate' => 'Billedhastighed', + 'fileInfo.aspectRatio' => 'Billedformat', + 'fileInfo.profile' => 'Profil', + 'fileInfo.bitDepth' => 'Bitdybde', + 'fileInfo.colorSpace' => 'Farverum', + 'fileInfo.colorRange' => 'Farveområde', + 'fileInfo.colorPrimaries' => 'Farveprimærer', + 'fileInfo.chromaSubsampling' => 'Chroma-subsampling', + 'fileInfo.channels' => 'Kanaler', + 'fileInfo.path' => 'Sti', + 'fileInfo.size' => 'Størrelse', + 'fileInfo.container' => 'Container', + 'fileInfo.duration' => 'Varighed', + 'fileInfo.optimizedForStreaming' => 'Optimeret til streaming', + 'fileInfo.has64bitOffsets' => '64-bit offsets', + 'mediaMenu.markAsWatched' => 'Markér som set', + 'mediaMenu.markAsUnwatched' => 'Markér som uset', + 'mediaMenu.removeFromContinueWatching' => 'Fjern fra Fortsæt med at se', + 'mediaMenu.goToSeries' => 'Gå til serie', + 'mediaMenu.goToSeason' => 'Gå til sæson', + 'mediaMenu.shufflePlay' => 'Afspil tilfældigt', + 'mediaMenu.fileInfo' => 'Filinfo', + 'mediaMenu.deleteFromServer' => 'Slet fra server', + 'mediaMenu.confirmDelete' => 'Dette sletter permanent disse medier og filer fra din server. Dette kan ikke fortrydes.', + 'mediaMenu.deleteMultipleWarning' => 'Dette inkluderer alle episoder og deres filer.', + 'mediaMenu.mediaDeletedSuccessfully' => 'Medieelement slettet', + 'mediaMenu.mediaFailedToDelete' => 'Kunne ikke slette medieelement', + 'mediaMenu.rate' => 'Bedøm', + '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}', + 'accessibility.mediaCardSeason' => ({required Object title, required Object seasonInfo}) => '${title}, ${seasonInfo}', + 'accessibility.mediaCardWatched' => 'set', + 'accessibility.mediaCardPartiallyWatched' => ({required Object percent}) => '${percent} procent set', + 'accessibility.mediaCardUnwatched' => 'uset', + 'accessibility.tapToPlay' => 'Tryk for at afspille', + 'tooltips.shufflePlay' => 'Afspil tilfældigt', + 'tooltips.playTrailer' => 'Afspil trailer', + 'tooltips.markAsWatched' => 'Markér som set', + 'tooltips.markAsUnwatched' => 'Markér som uset', + 'videoControls.audioLabel' => 'Lyd', + 'videoControls.subtitlesLabel' => 'Undertekster', + 'videoControls.resetToZero' => 'Nulstil til 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} afspilles senere', + 'videoControls.playsEarlier' => ({required Object label}) => '${label} afspilles tidligere', + 'videoControls.noOffset' => 'Ingen forskydning', + 'videoControls.letterbox' => 'Letterbox', + 'videoControls.fillScreen' => 'Fyld skærm', + 'videoControls.stretch' => 'Stræk', + '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.sleepTimerCompleted' => 'Sove-timer fuldført — afspilning sat på pause', + 'videoControls.stillWatching' => 'Ser du stadig?', + 'videoControls.pausingIn' => ({required Object seconds}) => 'Pauser om ${seconds}s', + 'videoControls.continueWatching' => 'Fortsæt', + 'videoControls.autoPlayNext' => 'Auto-afspil næste', + 'videoControls.playNext' => 'Afspil næste', + 'videoControls.playButton' => 'Afspil', + 'videoControls.pauseButton' => 'Pause', + '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.settingsButton' => 'Videoindstillinger', + 'videoControls.audioTrackButton' => 'Lydspor', + 'videoControls.subtitlesButton' => 'Undertekster', + 'videoControls.tracksButton' => 'Lyd og undertekster', + 'videoControls.chaptersButton' => 'Kapitler', + 'videoControls.versionsButton' => 'Videoversioner', + 'videoControls.pipButton' => 'Billede-i-billede-tilstand', + 'videoControls.aspectRatioButton' => 'Billedformat', + 'videoControls.ambientLighting' => 'Omgivelsesbelysning', + 'videoControls.ambientLightingOn' => 'Aktivér omgivelsesbelysning', + 'videoControls.ambientLightingOff' => 'Deaktivér omgivelsesbelysning', + 'videoControls.fullscreenButton' => 'Fuldskærm', + 'videoControls.exitFullscreenButton' => 'Forlad fuldskærm', + 'videoControls.alwaysOnTopButton' => 'Altid øverst', + 'videoControls.rotationLockButton' => 'Rotationslås', + 'videoControls.timelineSlider' => 'Videotidslinje', + 'videoControls.volumeSlider' => 'Lydstyrkeniveau', + 'videoControls.endsAt' => ({required Object time}) => 'Slutter kl. ${time}', + 'videoControls.pipActive' => 'Afspiller i billede-i-billede', + 'videoControls.pipFailed' => 'Billede-i-billede kunne ikke starte', + 'videoControls.pipErrors.androidVersion' => 'Kræver Android 8.0 eller nyere', + 'videoControls.pipErrors.iosVersion' => 'Kræver iOS 15.0 eller nyere', + 'videoControls.pipErrors.permissionDisabled' => 'Billede-i-billede-tilladelse er deaktiveret. Aktivér i Indstillinger > Apps > Plezy > Billede-i-billede', + 'videoControls.pipErrors.notSupported' => 'Enheden understøtter ikke billede-i-billede', + 'videoControls.pipErrors.voSwitchFailed' => 'Kunne ikke skifte videooutput til billede-i-billede', + 'videoControls.pipErrors.failed' => 'Billede-i-billede kunne ikke starte', + 'videoControls.pipErrors.unknown' => ({required Object error}) => 'Der opstod en fejl: ${error}', + 'videoControls.chapters' => 'Kapitler', + 'videoControls.noChaptersAvailable' => 'Ingen kapitler tilgængelige', + 'videoControls.queue' => 'Kø', + 'videoControls.noQueueItems' => 'Ingen elementer i køen', + 'userStatus.admin' => 'Administrator', + 'userStatus.restricted' => 'Begrænset', + 'userStatus.protected' => 'Beskyttet', + 'userStatus.current' => 'NUVÆRENDE', + 'messages.markedAsWatched' => 'Markeret som set', + 'messages.markedAsUnwatched' => 'Markeret som uset', + 'messages.markedAsWatchedOffline' => 'Markeret som set (synkroniseres online)', + 'messages.markedAsUnwatchedOffline' => 'Markeret som uset (synkroniseres online)', + 'messages.removedFromContinueWatching' => 'Fjernet fra Fortsæt med at se', + 'messages.errorLoading' => ({required Object error}) => 'Fejl: ${error}', + 'messages.fileInfoNotAvailable' => 'Filinfo ikke tilgængelig', + 'messages.errorLoadingFileInfo' => ({required Object error}) => 'Fejl ved indlæsning af filinfo: ${error}', + 'messages.errorLoadingSeries' => 'Fejl ved indlæsning af serie', + 'messages.errorLoadingSeason' => 'Fejl ved indlæsning af sæson', + 'messages.musicNotSupported' => 'Musikafspilning understøttes endnu ikke', + 'messages.logsCleared' => 'Logs ryddet', + 'messages.logsCopied' => 'Logs kopieret til udklipsholder', + 'messages.noLogsAvailable' => 'Ingen logs 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}', + 'messages.metadataRefreshing' => ({required Object title}) => 'Opdaterer metadata for "${title}"...', + 'messages.metadataRefreshStarted' => ({required Object title}) => 'Metadataopdatering startet for "${title}"', + 'messages.metadataRefreshFailed' => ({required Object error}) => 'Kunne ikke opdatere metadata: ${error}', + 'messages.logoutConfirm' => 'Er du sikker på, at du vil logge ud?', + 'messages.noSeasonsFound' => 'Ingen sæsoner fundet', + 'messages.noEpisodesFound' => 'Ingen episoder fundet i første sæson', + 'messages.noEpisodesFoundGeneral' => 'Ingen episoder fundet', + '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.failedPlayback' => ({required Object action, required Object error}) => 'Kunne ikke ${action}: ${error}', + 'messages.switchingToCompatiblePlayer' => 'Skifter til kompatibel afspiller...', + 'messages.logsUploaded' => 'Logs uploadet', + 'messages.logsUploadFailed' => 'Kunne ikke uploade logs', + 'messages.logId' => 'Log-ID', + 'subtitlingStyling.stylingOptions' => 'Stilindstillinger', + 'subtitlingStyling.fontSize' => 'Skriftstørrelse', + 'subtitlingStyling.textColor' => 'Tekstfarve', + 'subtitlingStyling.borderSize' => 'Kantstørrelse', + 'subtitlingStyling.borderColor' => 'Kantfarve', + 'subtitlingStyling.backgroundOpacity' => 'Baggrundsgennemsigtighed', + 'subtitlingStyling.backgroundColor' => 'Baggrundsfarve', + 'subtitlingStyling.position' => 'Position', + 'mpvConfig.title' => 'mpv.conf', + 'mpvConfig.description' => 'Avancerede videoafspillerindstillinger', + 'mpvConfig.presets' => 'Forudindstillinger', + 'mpvConfig.noPresets' => 'Ingen gemte forudindstillinger', + 'mpvConfig.saveAsPreset' => 'Gem som forudindstilling...', + 'mpvConfig.presetName' => 'Forudindstillingsnavn', + 'mpvConfig.presetNameHint' => 'Indtast et navn for denne forudindstilling', + 'mpvConfig.loadPreset' => 'Indlæs', + 'mpvConfig.deletePreset' => 'Slet', + 'mpvConfig.presetSaved' => 'Forudindstilling gemt', + 'mpvConfig.presetLoaded' => 'Forudindstilling indlæst', + 'mpvConfig.presetDeleted' => 'Forudindstilling slettet', + 'mpvConfig.confirmDeletePreset' => 'Er du sikker på, at du vil slette denne forudindstilling?', + 'mpvConfig.configPlaceholder' => 'gpu-api=vulkan\nhwdec=auto\n# comment', + 'dialog.confirmAction' => 'Bekræft handling', + 'discover.title' => 'Opdag', + 'discover.switchProfile' => 'Skift profil', + 'discover.noContentAvailable' => 'Intet indhold tilgængeligt', + 'discover.addMediaToLibraries' => 'Tilføj medier til dine biblioteker', + 'discover.continueWatching' => 'Fortsæt med at se', + '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.seasons' => 'Sæsoner', + 'discover.studio' => 'Studie', + 'discover.rating' => 'Bedømmelse', + 'discover.episodeCount' => ({required Object count}) => '${count} episoder', + 'discover.watchedProgress' => ({required Object watched, required Object total}) => '${watched}/${total} set', + 'discover.movie' => 'Film', + 'discover.tvShow' => 'TV-serie', + 'discover.minutesLeft' => ({required Object minutes}) => '${minutes} min tilbage', + 'errors.searchFailed' => ({required Object error}) => 'Søgning mislykkedes: ${error}', + 'errors.connectionTimeout' => ({required Object context}) => 'Forbindelsestimeout ved indlæsning af ${context}', + 'errors.connectionFailed' => 'Kunne ikke forbinde til Plex-server', + 'errors.failedToLoad' => ({required Object context, required Object error}) => 'Kunne ikke indlæse ${context}: ${error}', + 'errors.noClientAvailable' => 'Ingen klient tilgængelig', + 'errors.authenticationFailed' => ({required Object error}) => 'Godkendelse mislykkedes: ${error}', + 'errors.couldNotLaunchUrl' => 'Kunne ikke åbne godkendelses-URL', + 'errors.pleaseEnterToken' => 'Indtast et token', + 'errors.invalidToken' => 'Ugyldigt token', + 'errors.failedToVerifyToken' => ({required Object error}) => 'Kunne ikke verificere token: ${error}', + 'errors.failedToSwitchProfile' => ({required Object displayName}) => 'Kunne ikke skifte til ${displayName}', + 'libraries.title' => 'Biblioteker', + 'libraries.scanLibraryFiles' => 'Scan biblioteksfiler', + 'libraries.scanLibrary' => 'Scan bibliotek', + 'libraries.analyze' => 'Analysér', + 'libraries.analyzeLibrary' => 'Analysér bibliotek', + 'libraries.refreshMetadata' => 'Opdater metadata', + 'libraries.emptyTrash' => 'Tøm papirkurv', + 'libraries.emptyingTrash' => ({required Object title}) => 'Tømmer papirkurv for "${title}"...', + 'libraries.trashEmptied' => ({required Object title}) => 'Papirkurv tømt for "${title}"', + 'libraries.failedToEmptyTrash' => ({required Object error}) => 'Kunne ikke tømme papirkurv: ${error}', + 'libraries.analyzing' => ({required Object title}) => 'Analyserer "${title}"...', + 'libraries.analysisStarted' => ({required Object title}) => 'Analyse startet for "${title}"', + 'libraries.failedToAnalyze' => ({required Object error}) => 'Kunne ikke analysere bibliotek: ${error}', + 'libraries.noLibrariesFound' => 'Ingen biblioteker fundet', + 'libraries.thisLibraryIsEmpty' => 'Dette bibliotek er tomt', + 'libraries.all' => 'Alle', + 'libraries.clearAll' => 'Ryd alle', + 'libraries.scanLibraryConfirm' => ({required Object title}) => 'Er du sikker på, at du vil scanne "${title}"?', + 'libraries.analyzeLibraryConfirm' => ({required Object title}) => 'Er du sikker på, at du vil analysere "${title}"?', + 'libraries.refreshMetadataConfirm' => ({required Object title}) => 'Er du sikker på, at du vil opdatere metadata for "${title}"?', + 'libraries.emptyTrashConfirm' => ({required Object title}) => 'Er du sikker på, at du vil tømme papirkurven for "${title}"?', + 'libraries.manageLibraries' => 'Administrer biblioteker', + 'libraries.sort' => 'Sortér', + 'libraries.sortBy' => 'Sortér efter', + 'libraries.filters' => 'Filtre', + 'libraries.confirmActionMessage' => 'Er du sikker på, at du vil udføre denne handling?', + 'libraries.showLibrary' => 'Vis bibliotek', + 'libraries.hideLibrary' => 'Skjul bibliotek', + 'libraries.libraryOptions' => 'Biblioteksindstillinger', + 'libraries.content' => 'biblioteksindhold', + 'libraries.selectLibrary' => 'Vælg bibliotek', + 'libraries.filtersWithCount' => ({required Object count}) => 'Filtre (${count})', + 'libraries.noRecommendations' => 'Ingen anbefalinger tilgængelige', + 'libraries.noCollections' => 'Ingen samlinger i dette bibliotek', + 'libraries.noFoldersFound' => 'Ingen mapper fundet', + 'libraries.folders' => 'mapper', + 'libraries.tabs.recommended' => 'Anbefalet', + 'libraries.tabs.browse' => 'Gennemse', + 'libraries.tabs.collections' => 'Samlinger', + 'libraries.tabs.playlists' => 'Playlister', + 'libraries.groupings.all' => 'Alle', + 'libraries.groupings.movies' => 'Film', + 'libraries.groupings.shows' => 'TV-serier', + 'libraries.groupings.seasons' => 'Sæsoner', + 'libraries.groupings.episodes' => 'Episoder', + 'libraries.groupings.folders' => 'Mapper', + 'about.title' => 'Om', + 'about.openSourceLicenses' => 'Open source-licenser', + 'about.versionLabel' => ({required Object version}) => 'Version ${version}', + 'about.appDescription' => 'En smuk Plex-klient til Flutter', + 'about.viewLicensesDescription' => 'Se licenser for tredjepartsbiblioteker', + 'serverSelection.allServerConnectionsFailed' => 'Kunne ikke forbinde til nogen servere. Tjek dit netværk og prøv igen.', + '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}', + 'hubDetail.title' => 'Titel', + 'hubDetail.releaseYear' => 'Udgivelsesår', + '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.error' => 'Fejl:', + 'logs.stackTrace' => 'Staksporing:', + 'licenses.relatedPackages' => 'Relaterede pakker', + 'licenses.license' => 'Licens', + 'licenses.licenseNumber' => ({required Object number}) => 'Licens ${number}', + 'licenses.licensesCount' => ({required Object count}) => '${count} licenser', + 'navigation.libraries' => 'Biblioteker', + 'navigation.downloads' => 'Downloads', + 'navigation.liveTv' => 'Live TV', + 'liveTv.title' => 'Live TV', + 'liveTv.channels' => 'Kanaler', + 'liveTv.guide' => 'Guide', + 'liveTv.noChannels' => 'Ingen kanaler tilgængelige', + 'liveTv.noDvr' => 'Ingen DVR konfigureret på nogen server', + 'liveTv.tuneFailed' => 'Kunne ikke tune kanal', + 'liveTv.loading' => 'Indlæser kanaler...', + 'liveTv.nowPlaying' => 'Afspiller nu', + 'liveTv.noPrograms' => 'Ingen programdata tilgængelig', + 'liveTv.channelNumber' => ({required Object number}) => 'Kn. ${number}', + 'liveTv.live' => 'LIVE', + 'liveTv.hd' => 'HD', + 'liveTv.premiere' => 'NY', + _ => null, + } ?? switch (path) { + 'liveTv.reloadGuide' => 'Genindlæs guide', + 'liveTv.allChannels' => 'Alle kanaler', + 'liveTv.now' => 'Nu', + 'liveTv.today' => 'I dag', + 'liveTv.midnight' => 'Midnat', + 'liveTv.overnight' => 'Nat', + 'liveTv.morning' => 'Morgen', + 'liveTv.daytime' => 'Dagtid', + 'liveTv.evening' => 'Aften', + 'liveTv.lateNight' => 'Sen aften', + 'liveTv.whatsOn' => 'Hvad der kører', + 'liveTv.watchChannel' => 'Se kanal', + 'collections.title' => 'Samlinger', + 'collections.collection' => 'Samling', + 'collections.empty' => 'Samlingen er tom', + 'collections.unknownLibrarySection' => 'Kan ikke slette: Ukendt bibliotekssektion', + 'collections.deleteCollection' => 'Slet samling', + 'collections.deleteConfirm' => ({required Object title}) => 'Er du sikker på, at du vil slette "${title}"? Denne handling kan ikke fortrydes.', + 'collections.deleted' => 'Samling slettet', + 'collections.deleteFailed' => 'Kunne ikke slette samling', + 'collections.deleteFailedWithError' => ({required Object error}) => 'Kunne ikke slette samling: ${error}', + 'collections.failedToLoadItems' => ({required Object error}) => 'Kunne ikke indlæse samlingselementer: ${error}', + 'collections.selectCollection' => 'Vælg samling', + 'collections.collectionName' => 'Samlingsnavn', + 'collections.enterCollectionName' => 'Indtast samlingsnavn', + 'collections.addedToCollection' => 'Tilføjet til samling', + 'collections.errorAddingToCollection' => 'Kunne ikke tilføje til samling', + 'collections.created' => 'Samling oprettet', + 'collections.removeFromCollection' => 'Fjern fra samling', + 'collections.removeFromCollectionConfirm' => ({required Object title}) => 'Fjern "${title}" fra denne samling?', + 'collections.removedFromCollection' => 'Fjernet fra samling', + 'collections.removeFromCollectionFailed' => 'Kunne ikke fjerne fra samling', + 'collections.removeFromCollectionError' => ({required Object error}) => 'Fejl ved fjernelse fra samling: ${error}', + 'playlists.title' => 'Playlister', + 'playlists.playlist' => 'Playliste', + 'playlists.noPlaylists' => 'Ingen playlister fundet', + 'playlists.create' => 'Opret playliste', + 'playlists.playlistName' => 'Playlistenavn', + 'playlists.enterPlaylistName' => 'Indtast playlistenavn', + 'playlists.delete' => 'Slet playliste', + 'playlists.removeItem' => 'Fjern fra playliste', + 'playlists.smartPlaylist' => 'Smart playliste', + 'playlists.itemCount' => ({required Object count}) => '${count} elementer', + 'playlists.oneItem' => '1 element', + 'playlists.emptyPlaylist' => 'Denne playliste er tom', + 'playlists.deleteConfirm' => 'Slet playliste?', + 'playlists.deleteMessage' => ({required Object name}) => 'Er du sikker på, at du vil slette "${name}"?', + 'playlists.created' => 'Playliste oprettet', + 'playlists.deleted' => 'Playliste slettet', + 'playlists.itemAdded' => 'Tilføjet til playliste', + 'playlists.itemRemoved' => 'Fjernet fra playliste', + 'playlists.selectPlaylist' => 'Vælg playliste', + 'playlists.errorCreating' => 'Kunne ikke oprette playliste', + 'playlists.errorDeleting' => 'Kunne ikke slette playliste', + 'playlists.errorLoading' => 'Kunne ikke indlæse playlister', + 'playlists.errorAdding' => 'Kunne ikke tilføje til playliste', + 'playlists.errorReordering' => 'Kunne ikke ændre rækkefølge på playlisteelement', + 'playlists.errorRemoving' => 'Kunne ikke fjerne fra playliste', + 'watchTogether.title' => 'Se sammen', + 'watchTogether.description' => 'Se indhold synkroniseret med venner og familie', + 'watchTogether.createSession' => 'Opret session', + 'watchTogether.creating' => 'Opretter...', + 'watchTogether.joinSession' => 'Deltag i session', + 'watchTogether.joining' => 'Deltager...', + 'watchTogether.controlMode' => 'Kontroltilstand', + '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.sessionCode' => 'Sessionskode', + 'watchTogether.hostControlsPlayback' => 'Vært styrer afspilning', + 'watchTogether.anyoneCanControl' => 'Alle kan styre afspilning', + 'watchTogether.hostControls' => 'Værtskontrol', + 'watchTogether.anyoneControls' => 'Alle styrer', + 'watchTogether.participants' => 'Deltagere', + 'watchTogether.host' => 'Vært', + 'watchTogether.hostBadge' => 'HOST', + 'watchTogether.youAreHost' => 'Du er vært', + 'watchTogether.watchingWithOthers' => 'Ser med andre', + 'watchTogether.endSession' => 'Afslut session', + 'watchTogether.leaveSession' => 'Forlad session', + 'watchTogether.endSessionQuestion' => 'Afslut session?', + '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.end' => 'Afslut', + 'watchTogether.leave' => 'Forlad', + 'watchTogether.syncing' => 'Synkroniserer...', + 'watchTogether.joinWatchSession' => 'Deltag i se-session', + 'watchTogether.enterCodeHint' => 'Indtast 8-tegns kode', + 'watchTogether.pasteFromClipboard' => 'Indsæt fra udklipsholder', + 'watchTogether.pleaseEnterCode' => 'Indtast en sessionskode', + 'watchTogether.codeMustBe8Chars' => 'Sessionskode skal være 8 tegn', + 'watchTogether.joinInstructions' => 'Indtast sessionskoden delt af værten for at deltage i se-sessionen.', + '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. Dette kan skyldes, at din udbyder blokerer forbindelsen. Du kan stadig prøve, men Se sammen virker muligvis ikke.', + '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', + 'watchTogether.participantJoined' => ({required Object name}) => '${name} deltog', + 'watchTogether.participantLeft' => ({required Object name}) => '${name} forlod', + 'downloads.title' => 'Downloads', + 'downloads.manage' => 'Administrer', + 'downloads.tvShows' => 'TV-serier', + 'downloads.movies' => 'Film', + 'downloads.noDownloads' => 'Ingen downloads endnu', + 'downloads.noDownloadsDescription' => 'Downloadet indhold vises her til offlinevisning', + 'downloads.downloadNow' => 'Download', + 'downloads.deleteDownload' => 'Slet download', + 'downloads.retryDownload' => 'Prøv download igen', + 'downloads.downloadQueued' => 'Download i kø', + 'downloads.episodesQueued' => ({required Object count}) => '${count} episoder i downloadkø', + 'downloads.downloadDeleted' => 'Download slettet', + 'downloads.deleteConfirm' => ({required Object title}) => 'Er du sikker på, at du vil slette "${title}"? Den downloadede fil fjernes fra din enhed.', + 'downloads.deletingWithProgress' => ({required Object title, required Object current, required Object total}) => 'Sletter ${title}... (${current} af ${total})', + 'downloads.noDownloadsTree' => 'Ingen downloads', + 'downloads.pauseAll' => 'Pause alle', + 'downloads.resumeAll' => 'Genoptag alle', + 'downloads.deleteAll' => 'Slet alle', + 'shaders.title' => 'Shadere', + 'shaders.noShaderDescription' => 'Ingen videoforbedring', + 'shaders.nvscalerDescription' => 'NVIDIA-billedskalering for skarpere video', + 'shaders.qualityFast' => 'Hurtig', + 'shaders.qualityHQ' => 'Høj kvalitet', + 'shaders.mode' => 'Tilstand', + 'shaders.importShader' => 'Importér shader', + 'shaders.customShaderDescription' => 'Brugerdefineret GLSL-shader', + 'shaders.shaderImported' => 'Shader importeret', + 'shaders.shaderImportFailed' => 'Kunne ikke importere shader', + 'shaders.deleteShader' => 'Slet shader', + 'shaders.deleteShaderConfirm' => ({required Object name}) => 'Slet "${name}"?', + 'companionRemote.title' => 'Fjernbetjening', + 'companionRemote.connectToDevice' => 'Forbind til enhed', + 'companionRemote.hostRemoteSession' => 'Vært for fjernsession', + 'companionRemote.controlThisDevice' => 'Styr denne enhed med din telefon', + 'companionRemote.remoteControl' => 'Fjernbetjening', + 'companionRemote.controlDesktop' => 'Styr en desktopenhed', + 'companionRemote.connectedTo' => ({required Object name}) => 'Forbundet til ${name}', + 'companionRemote.session.creatingSession' => 'Opretter fjernsession...', + 'companionRemote.session.failedToCreate' => 'Kunne ikke oprette fjernsession:', + 'companionRemote.session.noSession' => 'Ingen session tilgængelig', + 'companionRemote.session.scanQrCode' => 'Scan QR-kode', + 'companionRemote.session.orEnterManually' => 'Eller indtast manuelt', + 'companionRemote.session.hostAddress' => 'Værtadresse', + 'companionRemote.session.sessionId' => 'Sessions-ID', + 'companionRemote.session.pin' => 'PIN', + 'companionRemote.session.connected' => 'Forbundet', + 'companionRemote.session.waitingForConnection' => 'Venter på forbindelse...', + 'companionRemote.session.usePhoneToControl' => 'Brug din mobilenhed til at styre denne app', + 'companionRemote.session.copiedToClipboard' => ({required Object label}) => '${label} kopieret til udklipsholder', + 'companionRemote.session.copyToClipboard' => 'Kopiér til udklipsholder', + 'companionRemote.session.newSession' => 'Ny session', + 'companionRemote.session.minimize' => 'Minimér', + 'companionRemote.pairing.scan' => 'Scan', + 'companionRemote.pairing.manual' => 'Manuel', + 'companionRemote.pairing.pairWithDesktop' => 'Par med desktop', + 'companionRemote.pairing.enterSessionDetails' => 'Indtast sessionsdetaljerne vist på din desktopenhed', + 'companionRemote.pairing.hostAddressHint' => '192.168.1.100:48632', + 'companionRemote.pairing.sessionIdHint' => 'Indtast 8-tegns sessions-ID', + 'companionRemote.pairing.pinHint' => 'Indtast 6-cifret PIN', + 'companionRemote.pairing.connecting' => 'Forbinder...', + 'companionRemote.pairing.tips' => 'Tips', + 'companionRemote.pairing.tipDesktop' => 'Åbn Plezy på din desktop og aktivér fjernbetjening fra indstillinger eller menu', + 'companionRemote.pairing.tipScan' => 'Brug fanen Scan til hurtigt at parre ved at scanne QR-koden på din desktop', + 'companionRemote.pairing.tipWifi' => 'Sørg for, at begge enheder er på det samme WiFi-netværk', + 'companionRemote.pairing.cameraPermissionRequired' => 'Kameratilladelse er påkrævet for at scanne QR-koder.\nGiv kameraadgang i enhedsindstillinger.', + 'companionRemote.pairing.cameraError' => ({required Object error}) => 'Kunne ikke starte kamera: ${error}', + 'companionRemote.pairing.scanInstruction' => 'Ret kameraet mod QR-koden vist på din desktop', + 'companionRemote.pairing.invalidQrCode' => 'Ugyldigt QR-kodeformat', + 'companionRemote.pairing.validationHostRequired' => 'Indtast værtadresse', + 'companionRemote.pairing.validationHostFormat' => 'Format skal være IP:port (f.eks. 192.168.1.100:48632)', + 'companionRemote.pairing.validationSessionIdRequired' => 'Indtast et sessions-ID', + 'companionRemote.pairing.validationSessionIdLength' => 'Sessions-ID skal være 8 tegn', + 'companionRemote.pairing.validationPinRequired' => 'Indtast en PIN', + 'companionRemote.pairing.validationPinLength' => 'PIN skal være 6 cifre', + 'companionRemote.pairing.connectionTimedOut' => 'Forbindelsen fik timeout. Tjek sessions-ID og PIN.', + 'companionRemote.pairing.sessionNotFound' => 'Kunne ikke finde sessionen. Tjek dine oplysninger.', + 'companionRemote.pairing.failedToConnect' => ({required Object error}) => 'Kunne ikke forbinde: ${error}', + 'companionRemote.remote.disconnectConfirm' => 'Vil du afbryde fra fjernsessionen?', + 'companionRemote.remote.reconnecting' => 'Genopretter forbindelse...', + 'companionRemote.remote.attemptOf' => ({required Object current}) => 'Forsøg ${current} af 5', + 'companionRemote.remote.retryNow' => 'Prøv igen nu', + 'companionRemote.remote.connectionError' => 'Forbindelsesfejl', + 'companionRemote.remote.notConnected' => 'Ikke forbundet', + 'companionRemote.remote.tabRemote' => 'Fjernbetjening', + 'companionRemote.remote.tabPlay' => 'Afspil', + 'companionRemote.remote.tabMore' => 'Mere', + 'companionRemote.remote.menu' => 'Menu', + 'companionRemote.remote.tabNavigation' => 'Fanenavigation', + 'companionRemote.remote.tabDiscover' => 'Opdag', + 'companionRemote.remote.tabLibraries' => 'Biblioteker', + 'companionRemote.remote.tabSearch' => 'Søg', + 'companionRemote.remote.tabDownloads' => 'Downloads', + 'companionRemote.remote.tabSettings' => 'Indstillinger', + 'companionRemote.remote.previous' => 'Forrige', + 'companionRemote.remote.playPause' => 'Afspil/Pause', + 'companionRemote.remote.next' => 'Næste', + 'companionRemote.remote.seekBack' => 'Spol tilbage', + 'companionRemote.remote.stop' => 'Stop', + 'companionRemote.remote.seekForward' => 'Spol frem', + 'companionRemote.remote.volume' => 'Lydstyrke', + 'companionRemote.remote.volumeDown' => 'Ned', + 'companionRemote.remote.volumeUp' => 'Op', + 'companionRemote.remote.fullscreen' => 'Fuldskærm', + 'companionRemote.remote.subtitles' => 'Undertekster', + 'companionRemote.remote.audio' => 'Lyd', + 'companionRemote.remote.searchHint' => 'Søg på desktop...', + 'videoSettings.playbackSettings' => 'Afspilningsindstillinger', + 'videoSettings.playbackSpeed' => 'Afspilningshastighed', + 'videoSettings.sleepTimer' => 'Sove-timer', + 'videoSettings.audioSync' => 'Lydsynkronisering', + 'videoSettings.subtitleSync' => 'Undertekstsynkronisering', + 'videoSettings.hdr' => 'HDR', + 'videoSettings.audioOutput' => 'Lydoutput', + 'videoSettings.performanceOverlay' => 'Ydelsesoverlay', + 'videoSettings.audioPassthrough' => 'Lyd-passthrough', + 'videoSettings.audioNormalization' => 'Lydnormalisering', + 'externalPlayer.title' => 'Ekstern afspiller', + 'externalPlayer.useExternalPlayer' => 'Brug ekstern afspiller', + 'externalPlayer.useExternalPlayerDescription' => 'Åbn videoer i en ekstern app i stedet for den indbyggede afspiller', + 'externalPlayer.selectPlayer' => 'Vælg afspiller', + 'externalPlayer.systemDefault' => 'Systemstandard', + 'externalPlayer.addCustomPlayer' => 'Tilføj brugerdefineret afspiller', + 'externalPlayer.playerName' => 'Afspillernavn', + 'externalPlayer.playerCommand' => 'Kommando', + 'externalPlayer.playerPackage' => 'Pakkenavn', + 'externalPlayer.playerUrlScheme' => 'URL-skema', + 'externalPlayer.customPlayer' => 'Brugerdefineret afspiller', + 'externalPlayer.off' => 'Fra', + '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.artwork' => 'Grafik', + 'metadataEdit.advancedSettings' => 'Avancerede indstillinger', + 'metadataEdit.title' => 'Titel', + 'metadataEdit.sortTitle' => 'Sorteringstitel', + 'metadataEdit.originalTitle' => 'Originaltitel', + 'metadataEdit.releaseDate' => 'Udgivelsesdato', + 'metadataEdit.contentRating' => 'Aldersgrænse', + 'metadataEdit.studio' => 'Studie', + 'metadataEdit.tagline' => 'Tagline', + 'metadataEdit.summary' => 'Resumé', + 'metadataEdit.poster' => 'Plakat', + 'metadataEdit.background' => 'Baggrund', + 'metadataEdit.selectPoster' => 'Vælg plakat', + 'metadataEdit.selectBackground' => 'Vælg baggrund', + 'metadataEdit.fromUrl' => 'Fra URL', + 'metadataEdit.uploadFile' => 'Upload fil', + 'metadataEdit.enterImageUrl' => 'Indtast billed-URL', + 'metadataEdit.imageUrl' => 'Billed-URL', + 'metadataEdit.metadataUpdated' => 'Metadata opdateret', + 'metadataEdit.metadataUpdateFailed' => 'Kunne ikke opdatere metadata', + 'metadataEdit.artworkUpdated' => 'Grafik opdateret', + 'metadataEdit.artworkUpdateFailed' => 'Kunne ikke opdatere grafik', + 'metadataEdit.noArtworkAvailable' => 'Ingen grafik tilgængelig', + 'metadataEdit.notSet' => 'Ikke indstillet', + 'metadataEdit.libraryDefault' => 'Biblioteksstandard', + 'metadataEdit.accountDefault' => 'Kontostandard', + 'metadataEdit.seriesDefault' => 'Seriestandard', + 'metadataEdit.episodeSorting' => 'Episodesortering', + 'metadataEdit.oldestFirst' => 'Ældste først', + 'metadataEdit.newestFirst' => 'Nyeste først', + 'metadataEdit.keep' => 'Behold', + 'metadataEdit.allEpisodes' => 'Alle episoder', + 'metadataEdit.latestEpisodes' => ({required Object count}) => '${count} seneste episoder', + 'metadataEdit.latestEpisode' => 'Seneste episode', + 'metadataEdit.episodesAddedPastDays' => ({required Object count}) => 'Episoder tilføjet de seneste ${count} dage', + 'metadataEdit.deleteAfterPlaying' => 'Slet episoder efter afspilning', + 'metadataEdit.never' => 'Aldrig', + 'metadataEdit.afterADay' => 'Efter en dag', + 'metadataEdit.afterAWeek' => 'Efter en uge', + 'metadataEdit.afterAMonth' => 'Efter en måned', + 'metadataEdit.onNextRefresh' => 'Ved næste opdatering', + 'metadataEdit.seasons' => 'Sæsoner', + 'metadataEdit.show' => 'Vis', + 'metadataEdit.hide' => 'Skjul', + 'metadataEdit.episodeOrdering' => 'Episoderækkefølge', + 'metadataEdit.tmdbAiring' => 'The Movie Database (Sendt)', + 'metadataEdit.tvdbAiring' => 'TheTVDB (Sendt)', + '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.manuallySelected' => 'Manuelt valgt', + 'metadataEdit.shownWithForeignAudio' => 'Vist med fremmedsproget lyd', + 'metadataEdit.alwaysEnabled' => 'Altid aktiveret', + _ => null, + }; + } +} diff --git a/lib/i18n/strings_ja.g.dart b/lib/i18n/strings_ja.g.dart new file mode 100644 index 00000000..888a9086 --- /dev/null +++ b/lib/i18n/strings_ja.g.dart @@ -0,0 +1,2125 @@ +/// +/// 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 TranslationsJa with BaseTranslations implements Translations { + /// You can call this constructor and build your own translation instance of this locale. + /// Constructing via the enum [AppLocale.build] is preferred. + TranslationsJa({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.ja, + overrides: overrides ?? {}, + cardinalResolver: cardinalResolver, + ordinalResolver: ordinalResolver, + ) { + $meta.setFlatMapFunction(_flatMapFunction); + } + + /// Metadata for the translations of . + @override final TranslationMetadata $meta; + + /// Access flat map + @override dynamic operator[](String key) => $meta.getTranslation(key); + + late final TranslationsJa _root = this; // ignore: unused_field + + @override + TranslationsJa $copyWith({TranslationMetadata? meta}) => TranslationsJa(meta: meta ?? this.$meta); + + // Translations + @override late final _TranslationsAppJa app = _TranslationsAppJa._(_root); + @override late final _TranslationsAuthJa auth = _TranslationsAuthJa._(_root); + @override late final _TranslationsCommonJa common = _TranslationsCommonJa._(_root); + @override late final _TranslationsScreensJa screens = _TranslationsScreensJa._(_root); + @override late final _TranslationsUpdateJa update = _TranslationsUpdateJa._(_root); + @override late final _TranslationsSettingsJa settings = _TranslationsSettingsJa._(_root); + @override late final _TranslationsSearchJa search = _TranslationsSearchJa._(_root); + @override late final _TranslationsHotkeysJa hotkeys = _TranslationsHotkeysJa._(_root); + @override late final _TranslationsPinEntryJa pinEntry = _TranslationsPinEntryJa._(_root); + @override late final _TranslationsFileInfoJa fileInfo = _TranslationsFileInfoJa._(_root); + @override late final _TranslationsMediaMenuJa mediaMenu = _TranslationsMediaMenuJa._(_root); + @override late final _TranslationsAccessibilityJa accessibility = _TranslationsAccessibilityJa._(_root); + @override late final _TranslationsTooltipsJa tooltips = _TranslationsTooltipsJa._(_root); + @override late final _TranslationsVideoControlsJa videoControls = _TranslationsVideoControlsJa._(_root); + @override late final _TranslationsUserStatusJa userStatus = _TranslationsUserStatusJa._(_root); + @override late final _TranslationsMessagesJa messages = _TranslationsMessagesJa._(_root); + @override late final _TranslationsSubtitlingStylingJa subtitlingStyling = _TranslationsSubtitlingStylingJa._(_root); + @override late final _TranslationsMpvConfigJa mpvConfig = _TranslationsMpvConfigJa._(_root); + @override late final _TranslationsDialogJa dialog = _TranslationsDialogJa._(_root); + @override late final _TranslationsDiscoverJa discover = _TranslationsDiscoverJa._(_root); + @override late final _TranslationsErrorsJa errors = _TranslationsErrorsJa._(_root); + @override late final _TranslationsLibrariesJa libraries = _TranslationsLibrariesJa._(_root); + @override late final _TranslationsAboutJa about = _TranslationsAboutJa._(_root); + @override late final _TranslationsServerSelectionJa serverSelection = _TranslationsServerSelectionJa._(_root); + @override late final _TranslationsHubDetailJa hubDetail = _TranslationsHubDetailJa._(_root); + @override late final _TranslationsLogsJa logs = _TranslationsLogsJa._(_root); + @override late final _TranslationsLicensesJa licenses = _TranslationsLicensesJa._(_root); + @override late final _TranslationsNavigationJa navigation = _TranslationsNavigationJa._(_root); + @override late final _TranslationsLiveTvJa liveTv = _TranslationsLiveTvJa._(_root); + @override late final _TranslationsCollectionsJa collections = _TranslationsCollectionsJa._(_root); + @override late final _TranslationsPlaylistsJa playlists = _TranslationsPlaylistsJa._(_root); + @override late final _TranslationsWatchTogetherJa watchTogether = _TranslationsWatchTogetherJa._(_root); + @override late final _TranslationsDownloadsJa downloads = _TranslationsDownloadsJa._(_root); + @override late final _TranslationsShadersJa shaders = _TranslationsShadersJa._(_root); + @override late final _TranslationsCompanionRemoteJa companionRemote = _TranslationsCompanionRemoteJa._(_root); + @override late final _TranslationsVideoSettingsJa videoSettings = _TranslationsVideoSettingsJa._(_root); + @override late final _TranslationsExternalPlayerJa externalPlayer = _TranslationsExternalPlayerJa._(_root); + @override late final _TranslationsMetadataEditJa metadataEdit = _TranslationsMetadataEditJa._(_root); +} + +// Path: app +class _TranslationsAppJa implements TranslationsAppEn { + _TranslationsAppJa._(this._root); + + final TranslationsJa _root; // ignore: unused_field + + // Translations + @override String get title => 'Plezy'; +} + +// Path: auth +class _TranslationsAuthJa implements TranslationsAuthEn { + _TranslationsAuthJa._(this._root); + + final TranslationsJa _root; // ignore: unused_field + + // Translations + @override String get signInWithPlex => 'Plexでサインイン'; + @override String get showQRCode => 'QRコードを表示'; + @override String get authenticate => '認証'; + @override String get debugEnterToken => 'デバッグ: Plexトークンを入力'; + @override String get plexTokenLabel => 'Plex認証トークン'; + @override String get plexTokenHint => 'Plex.tvトークンを入力'; + @override String get authenticationTimeout => '認証がタイムアウトしました。もう一度お試しください。'; + @override String get scanQRToSignIn => 'このQRコードをスキャンしてサインイン'; + @override String get waitingForAuth => '認証を待機中...\nブラウザでサインインを完了してください。'; + @override String get useBrowser => 'ブラウザを使用'; +} + +// Path: common +class _TranslationsCommonJa implements TranslationsCommonEn { + _TranslationsCommonJa._(this._root); + + final TranslationsJa _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 shuffle => 'シャッフル'; + @override String get addTo => '追加...'; + @override String get createNew => '新規作成'; + @override String get remove => '削除'; + @override String get paste => '貼り付け'; + @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 => 'OK'; + @override String get loading => '読み込み中...'; + @override String get reconnect => '再接続'; + @override String get exitConfirmTitle => 'アプリを終了しますか?'; + @override String get exitConfirmMessage => '終了してもよろしいですか?'; + @override String get dontAskAgain => '次回から表示しない'; + @override String get exit => '終了'; + @override String get viewAll => 'すべて表示'; + @override String get checkingNetwork => 'ネットワークを確認中...'; + @override String get refreshingServers => 'サーバーを更新中...'; + @override String get loadingServers => 'サーバーを読み込み中...'; + @override String get connectingToServers => 'サーバーに接続中...'; + @override String get startingOfflineMode => 'オフラインモードを開始中...'; +} + +// Path: screens +class _TranslationsScreensJa implements TranslationsScreensEn { + _TranslationsScreensJa._(this._root); + + final TranslationsJa _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 _TranslationsUpdateJa implements TranslationsUpdateEn { + _TranslationsUpdateJa._(this._root); + + final TranslationsJa _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 _TranslationsSettingsJa implements TranslationsSettingsEn { + _TranslationsSettingsJa._(this._root); + + final TranslationsJa _root; // ignore: unused_field + + // Translations + @override String get title => '設定'; + @override String get language => '言語'; + @override String get theme => 'テーマ'; + @override String get appearance => '外観'; + @override String get videoPlayback => '動画再生'; + @override String get advanced => '詳細'; + @override String get episodePosterMode => 'エピソードポスタースタイル'; + @override String get seriesPoster => 'シリーズポスター'; + @override String get seriesPosterDescription => 'すべてのエピソードにシリーズポスターを表示'; + @override String get seasonPoster => 'シーズンポスター'; + @override String get seasonPosterDescription => 'エピソードにシーズン固有のポスターを表示'; + @override String get episodeThumbnail => 'エピソードサムネイル'; + @override String get episodeThumbnailDescription => '16:9のエピソードスクリーンショットサムネイルを表示'; + @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 systemThemeDescription => 'システム設定に従う'; + @override String get lightTheme => 'ライト'; + @override String get darkTheme => 'ダーク'; + @override String get oledTheme => 'OLED'; + @override String get oledThemeDescription => 'OLED画面向けの純粋な黒'; + @override String get libraryDensity => 'ライブラリの密度'; + @override String get compact => 'コンパクト'; + @override String get compactDescription => '小さいカード、より多くのアイテムを表示'; + @override String get normal => '標準'; + @override String get normalDescription => 'デフォルトサイズ'; + @override String get comfortable => 'ゆったり'; + @override String get comfortableDescription => '大きいカード、表示アイテム数を減少'; + @override String get viewMode => '表示モード'; + @override String get gridView => 'グリッド'; + @override String get gridViewDescription => 'グリッドレイアウトでアイテムを表示'; + @override String get listView => 'リスト'; + @override String get listViewDescription => 'リストレイアウトでアイテムを表示'; + @override String get showHeroSection => 'ヒーローセクションを表示'; + @override String get useGlobalHubs => 'Plex Homeレイアウトを使用'; + @override String get useGlobalHubsDescription => '公式Plexクライアントのようにホームページのハブを表示。オフにすると、ライブラリごとのおすすめを表示。'; + @override String get showServerNameOnHubs => 'ハブにサーバー名を表示'; + @override String get showServerNameOnHubsDescription => 'ハブタイトルに常にサーバー名を表示。オフにすると、重複名のみ表示。'; + @override String get alwaysKeepSidebarOpen => 'サイドバーを常に開いておく'; + @override String get alwaysKeepSidebarOpenDescription => 'サイドバーを展開したまま、コンテンツ領域が調整される'; + @override String get showUnwatchedCount => '未視聴数を表示'; + @override String get showUnwatchedCountDescription => '番組とシーズンに未視聴エピソード数を表示'; + @override String get hideSpoilers => '未視聴エピソードのネタバレを非表示'; + @override String get hideSpoilersDescription => 'まだ視聴していないエピソードのサムネイルをぼかし、説明を非表示'; + @override String get playerBackend => 'プレーヤーバックエンド'; + @override String get exoPlayer => 'ExoPlayer(推奨)'; + @override String get exoPlayerDescription => 'より良いハードウェアサポートのAndroidネイティブプレーヤー'; + @override String get mpv => 'mpv'; + @override String get mpvDescription => 'より多くの機能とASS字幕サポートの高度なプレーヤー'; + @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 subtitleStyling => '字幕スタイル'; + @override String get subtitleStylingDescription => '字幕の外観をカスタマイズ'; + @override String get smallSkipDuration => '短いスキップ時間'; + @override String get largeSkipDuration => '長いスキップ時間'; + @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 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 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 shortcutsReset => 'ショートカットをデフォルトにリセットしました'; + @override String get about => 'アプリについて'; + @override String get aboutDescription => 'アプリ情報とライセンス'; + @override String get updates => 'アップデート'; + @override String get updateAvailable => 'アップデート利用可能'; + @override String get checkForUpdates => 'アップデートを確認'; + @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 autoSkip => '自動スキップ'; + @override String get autoSkipIntro => 'イントロを自動スキップ'; + @override String get autoSkipIntroDescription => '数秒後にイントロマーカーを自動的にスキップ'; + @override String get autoSkipCredits => 'クレジットを自動スキップ'; + @override String get autoSkipCreditsDescription => 'クレジットを自動的にスキップして次のエピソードを再生'; + @override String get autoSkipDelay => '自動スキップの遅延'; + @override String autoSkipDelayDescription({required Object seconds}) => '自動スキップまで${seconds}秒待機'; + @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 downloadLocationSelectError => 'フォルダの選択に失敗しました'; + @override String get downloadOnWifiOnly => 'WiFiのみでダウンロード'; + @override String get downloadOnWifiOnlyDescription => 'モバイルデータ通信時のダウンロードを防止'; + @override String get cellularDownloadBlocked => 'モバイルデータ通信ではダウンロードが無効です。WiFiに接続するか設定を変更してください。'; + @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 autoPip => '自動ピクチャーインピクチャー'; + @override String get autoPipDescription => '再生中にアプリを離れると自動的にピクチャーインピクチャーに移行'; + @override String get matchContentFrameRate => 'コンテンツのフレームレートに合わせる'; + @override String get matchContentFrameRateDescription => '動画コンテンツに合わせてディスプレイのリフレッシュレートを調整し、ジャダーを低減しバッテリーを節約'; + @override String get tunneledPlayback => 'トンネル再生'; + @override String get tunneledPlaybackDescription => 'ハードウェアアクセラレーションされたビデオトンネリングを使用。HDRコンテンツで音声のみで画面が黒くなる場合は無効にしてください'; + @override String get requireProfileSelectionOnOpen => 'アプリ起動時にプロフィールを確認'; + @override String get requireProfileSelectionOnOpenDescription => 'アプリを開くたびにプロフィール選択を表示'; + @override String get confirmExitOnBack => '終了前に確認'; + @override String get confirmExitOnBackDescription => '戻るボタンでアプリを終了する際に確認ダイアログを表示'; + @override String get showNavBarLabels => 'ナビゲーションバーラベルを表示'; + @override String get showNavBarLabelsDescription => 'ナビゲーションバーアイコンの下にテキストラベルを表示'; +} + +// Path: search +class _TranslationsSearchJa implements TranslationsSearchEn { + _TranslationsSearchJa._(this._root); + + final TranslationsJa _root; // ignore: unused_field + + // Translations + @override String get hint => '映画、番組、音楽を検索...'; + @override String get tryDifferentTerm => '別の検索語をお試しください'; + @override String get searchYourMedia => 'メディアを検索'; + @override String get enterTitleActorOrKeyword => 'タイトル、俳優、またはキーワードを入力'; +} + +// Path: hotkeys +class _TranslationsHotkeysJa implements TranslationsHotkeysEn { + _TranslationsHotkeysJa._(this._root); + + final TranslationsJa _root; // ignore: unused_field + + // Translations + @override String setShortcutFor({required Object actionName}) => '${actionName}のショートカットを設定'; + @override String get clearShortcut => 'ショートカットをクリア'; + @override late final _TranslationsHotkeysActionsJa actions = _TranslationsHotkeysActionsJa._(_root); +} + +// Path: pinEntry +class _TranslationsPinEntryJa implements TranslationsPinEntryEn { + _TranslationsPinEntryJa._(this._root); + + final TranslationsJa _root; // ignore: unused_field + + // Translations + @override String get enterPin => 'PINを入力'; + @override String get showPin => 'PINを表示'; + @override String get hidePin => 'PINを非表示'; +} + +// Path: fileInfo +class _TranslationsFileInfoJa implements TranslationsFileInfoEn { + _TranslationsFileInfoJa._(this._root); + + final TranslationsJa _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 => 'プロファイル'; + @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 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 _TranslationsMediaMenuJa implements TranslationsMediaMenuEn { + _TranslationsMediaMenuJa._(this._root); + + final TranslationsJa _root; // ignore: unused_field + + // Translations + @override String get markAsWatched => '視聴済みにする'; + @override String get markAsUnwatched => '未視聴にする'; + @override String get removeFromContinueWatching => '視聴中から削除'; + @override String get goToSeries => 'シリーズへ移動'; + @override String get goToSeason => 'シーズンへ移動'; + @override String get shufflePlay => 'シャッフル再生'; + @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 => '評価'; +} + +// Path: accessibility +class _TranslationsAccessibilityJa implements TranslationsAccessibilityEn { + _TranslationsAccessibilityJa._(this._root); + + final TranslationsJa _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 => 'タップして再生'; +} + +// Path: tooltips +class _TranslationsTooltipsJa implements TranslationsTooltipsEn { + _TranslationsTooltipsJa._(this._root); + + final TranslationsJa _root; // ignore: unused_field + + // Translations + @override String get shufflePlay => 'シャッフル再生'; + @override String get playTrailer => '予告編を再生'; + @override String get markAsWatched => '視聴済みにする'; + @override String get markAsUnwatched => '未視聴にする'; +} + +// Path: videoControls +class _TranslationsVideoControlsJa implements TranslationsVideoControlsEn { + _TranslationsVideoControlsJa._(this._root); + + final TranslationsJa _root; // ignore: unused_field + + // Translations + @override String get audioLabel => '音声'; + @override String get subtitlesLabel => '字幕'; + @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 get noOffset => 'オフセットなし'; + @override String get 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 sleepTimerCompleted => 'スリープタイマー完了 - 再生を一時停止しました'; + @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 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 audioTrackButton => '音声トラック'; + @override String get subtitlesButton => '字幕'; + @override String get tracksButton => '音声と字幕'; + @override String get chaptersButton => 'チャプター'; + @override String get versionsButton => '動画バージョン'; + @override String get pipButton => 'ピクチャーインピクチャーモード'; + @override String get aspectRatioButton => 'アスペクト比'; + @override String get ambientLighting => 'アンビエントライティング'; + @override String get ambientLightingOn => 'アンビエントライティングを有効化'; + @override String get ambientLightingOff => 'アンビエントライティングを無効化'; + @override String get fullscreenButton => 'フルスクリーンに入る'; + @override String get exitFullscreenButton => 'フルスクリーンを終了'; + @override String get alwaysOnTopButton => '常に前面に表示'; + @override String get rotationLockButton => '回転ロック'; + @override String get timelineSlider => '動画タイムライン'; + @override String get volumeSlider => '音量レベル'; + @override String endsAt({required Object time}) => '${time}に終了'; + @override String get pipActive => 'ピクチャーインピクチャーで再生中'; + @override String get pipFailed => 'ピクチャーインピクチャーの開始に失敗しました'; + @override late final _TranslationsVideoControlsPipErrorsJa pipErrors = _TranslationsVideoControlsPipErrorsJa._(_root); + @override String get chapters => 'チャプター'; + @override String get noChaptersAvailable => 'チャプターがありません'; + @override String get queue => 'キュー'; + @override String get noQueueItems => 'キューにアイテムがありません'; +} + +// Path: userStatus +class _TranslationsUserStatusJa implements TranslationsUserStatusEn { + _TranslationsUserStatusJa._(this._root); + + final TranslationsJa _root; // ignore: unused_field + + // Translations + @override String get admin => '管理者'; + @override String get restricted => '制限付き'; + @override String get protected => '保護済み'; + @override String get current => '現在'; +} + +// Path: messages +class _TranslationsMessagesJa implements TranslationsMessagesEn { + _TranslationsMessagesJa._(this._root); + + final TranslationsJa _root; // ignore: unused_field + + // Translations + @override String get markedAsWatched => '視聴済みにしました'; + @override String get markedAsUnwatched => '未視聴にしました'; + @override String get markedAsWatchedOffline => '視聴済みにしました(オンライン時に同期)'; + @override String get markedAsUnwatchedOffline => '未視聴にしました(オンライン時に同期)'; + @override String get removedFromContinueWatching => '視聴中から削除しました'; + @override String errorLoading({required Object error}) => 'エラー: ${error}'; + @override String get fileInfoNotAvailable => 'ファイル情報が利用できません'; + @override String errorLoadingFileInfo({required Object error}) => 'ファイル情報の読み込みエラー: ${error}'; + @override String get errorLoadingSeries => 'シリーズの読み込みエラー'; + @override String get errorLoadingSeason => 'シーズンの読み込みエラー'; + @override String get musicNotSupported => '音楽の再生はまだサポートされていません'; + @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 noEpisodesFound => '最初のシーズンにエピソードが見つかりません'; + @override String get noEpisodesFoundGeneral => 'エピソードが見つかりません'; + @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 logsUploaded => 'ログをアップロードしました'; + @override String get logsUploadFailed => 'ログのアップロードに失敗しました'; + @override String get logId => 'ログID'; +} + +// Path: subtitlingStyling +class _TranslationsSubtitlingStylingJa implements TranslationsSubtitlingStylingEn { + _TranslationsSubtitlingStylingJa._(this._root); + + final TranslationsJa _root; // ignore: unused_field + + // Translations + @override String get stylingOptions => 'スタイルオプション'; + @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 => '位置'; +} + +// Path: mpvConfig +class _TranslationsMpvConfigJa implements TranslationsMpvConfigEn { + _TranslationsMpvConfigJa._(this._root); + + final TranslationsJa _root; // ignore: unused_field + + // Translations + @override String get title => 'mpv.conf'; + @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# comment'; +} + +// Path: dialog +class _TranslationsDialogJa implements TranslationsDialogEn { + _TranslationsDialogJa._(this._root); + + final TranslationsJa _root; // ignore: unused_field + + // Translations + @override String get confirmAction => '操作の確認'; +} + +// Path: discover +class _TranslationsDiscoverJa implements TranslationsDiscoverEn { + _TranslationsDiscoverJa._(this._root); + + final TranslationsJa _root; // ignore: unused_field + + // Translations + @override String get title => '探す'; + @override String get switchProfile => 'プロフィール切替'; + @override String get noContentAvailable => 'コンテンツがありません'; + @override String get addMediaToLibraries => 'ライブラリにメディアを追加してください'; + @override String get continueWatching => '視聴を続ける'; + @override String playEpisode({required Object season, required Object episode}) => 'S${season}E${episode}'; + @override String get overview => 'あらすじ'; + @override String get cast => 'キャスト'; + @override String get extras => '予告編とエクストラ'; + @override String get seasons => 'シーズン'; + @override String get studio => 'スタジオ'; + @override String get rating => '評価'; + @override String episodeCount({required Object count}) => '${count}エピソード'; + @override String watchedProgress({required Object watched, required Object total}) => '${watched}/${total}視聴済み'; + @override String get movie => '映画'; + @override String get tvShow => 'テレビ番組'; + @override String minutesLeft({required Object minutes}) => '残り${minutes}分'; +} + +// Path: errors +class _TranslationsErrorsJa implements TranslationsErrorsEn { + _TranslationsErrorsJa._(this._root); + + final TranslationsJa _root; // ignore: unused_field + + // Translations + @override String searchFailed({required Object error}) => '検索に失敗しました: ${error}'; + @override String connectionTimeout({required Object context}) => '${context}の読み込み中に接続がタイムアウトしました'; + @override String get connectionFailed => 'Plexサーバーに接続できません'; + @override String failedToLoad({required Object context, required Object error}) => '${context}の読み込みに失敗しました: ${error}'; + @override String get noClientAvailable => 'クライアントが利用できません'; + @override String authenticationFailed({required Object error}) => '認証に失敗しました: ${error}'; + @override String get couldNotLaunchUrl => '認証URLを開けませんでした'; + @override String get pleaseEnterToken => 'トークンを入力してください'; + @override String get invalidToken => '無効なトークン'; + @override String failedToVerifyToken({required Object error}) => 'トークンの検証に失敗しました: ${error}'; + @override String failedToSwitchProfile({required Object displayName}) => '${displayName}への切替に失敗しました'; +} + +// Path: libraries +class _TranslationsLibrariesJa implements TranslationsLibrariesEn { + _TranslationsLibrariesJa._(this._root); + + final TranslationsJa _root; // ignore: unused_field + + // Translations + @override String get title => 'ライブラリ'; + @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 thisLibraryIsEmpty => 'このライブラリは空です'; + @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 _TranslationsLibrariesTabsJa tabs = _TranslationsLibrariesTabsJa._(_root); + @override late final _TranslationsLibrariesGroupingsJa groupings = _TranslationsLibrariesGroupingsJa._(_root); +} + +// Path: about +class _TranslationsAboutJa implements TranslationsAboutEn { + _TranslationsAboutJa._(this._root); + + final TranslationsJa _root; // ignore: unused_field + + // Translations + @override String get title => 'アプリについて'; + @override String get openSourceLicenses => 'オープンソースライセンス'; + @override String versionLabel({required Object version}) => 'バージョン ${version}'; + @override String get appDescription => 'Flutter製の美しいPlexクライアント'; + @override String get viewLicensesDescription => 'サードパーティライブラリのライセンスを表示'; +} + +// Path: serverSelection +class _TranslationsServerSelectionJa implements TranslationsServerSelectionEn { + _TranslationsServerSelectionJa._(this._root); + + final TranslationsJa _root; // ignore: unused_field + + // Translations + @override String get allServerConnectionsFailed => 'どのサーバーにも接続できませんでした。ネットワークを確認してもう一度お試しください。'; + @override String noServersFoundForAccount({required Object username, required Object email}) => '${username} (${email})のサーバーが見つかりません'; + @override String failedToLoadServers({required Object error}) => 'サーバーの読み込みに失敗しました: ${error}'; +} + +// Path: hubDetail +class _TranslationsHubDetailJa implements TranslationsHubDetailEn { + _TranslationsHubDetailJa._(this._root); + + final TranslationsJa _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 _TranslationsLogsJa implements TranslationsLogsEn { + _TranslationsLogsJa._(this._root); + + final TranslationsJa _root; // ignore: unused_field + + // Translations + @override String get clearLogs => 'ログをクリア'; + @override String get copyLogs => 'ログをコピー'; + @override String get uploadLogs => 'ログをアップロード'; + @override String get error => 'エラー:'; + @override String get stackTrace => 'スタックトレース:'; +} + +// Path: licenses +class _TranslationsLicensesJa implements TranslationsLicensesEn { + _TranslationsLicensesJa._(this._root); + + final TranslationsJa _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 _TranslationsNavigationJa implements TranslationsNavigationEn { + _TranslationsNavigationJa._(this._root); + + final TranslationsJa _root; // ignore: unused_field + + // Translations + @override String get libraries => 'ライブラリ'; + @override String get downloads => 'ダウンロード'; + @override String get liveTv => 'ライブTV'; +} + +// Path: liveTv +class _TranslationsLiveTvJa implements TranslationsLiveTvEn { + _TranslationsLiveTvJa._(this._root); + + final TranslationsJa _root; // ignore: unused_field + + // Translations + @override String get title => 'ライブTV'; + @override String get channels => 'チャンネル'; + @override String get guide => '番組表'; + @override String get noChannels => 'チャンネルがありません'; + @override String get noDvr => 'どのサーバーにもDVRが設定されていません'; + @override String get tuneFailed => 'チャンネルのチューニングに失敗しました'; + @override String get loading => 'チャンネルを読み込み中...'; + @override String get nowPlaying => '現在放送中'; + @override String get noPrograms => '番組データがありません'; + @override String channelNumber({required Object number}) => 'Ch. ${number}'; + @override String get live => 'ライブ'; + @override String get hd => 'HD'; + @override String get premiere => '新着'; + @override String get reloadGuide => '番組表を再読込'; + @override String get allChannels => 'すべてのチャンネル'; + @override String get now => '現在'; + @override String get today => '今日'; + @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 => 'チャンネルを視聴'; +} + +// Path: collections +class _TranslationsCollectionsJa implements TranslationsCollectionsEn { + _TranslationsCollectionsJa._(this._root); + + final TranslationsJa _root; // ignore: unused_field + + // Translations + @override String get title => 'コレクション'; + @override String get collection => 'コレクション'; + @override String get empty => 'コレクションは空です'; + @override String get unknownLibrarySection => '削除できません:不明なライブラリセクション'; + @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 failedToLoadItems({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}'; +} + +// Path: playlists +class _TranslationsPlaylistsJa implements TranslationsPlaylistsEn { + _TranslationsPlaylistsJa._(this._root); + + final TranslationsJa _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 errorCreating => 'プレイリストの作成に失敗しました'; + @override String get errorDeleting => 'プレイリストの削除に失敗しました'; + @override String get errorLoading => 'プレイリストの読み込みに失敗しました'; + @override String get errorAdding => 'プレイリストへの追加に失敗しました'; + @override String get errorReordering => 'プレイリストアイテムの並べ替えに失敗しました'; + @override String get errorRemoving => 'プレイリストからの削除に失敗しました'; +} + +// Path: watchTogether +class _TranslationsWatchTogetherJa implements TranslationsWatchTogetherEn { + _TranslationsWatchTogetherJa._(this._root); + + final TranslationsJa _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 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 => 'HOST'; + @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 => '8文字のコードを入力'; + @override String get pasteFromClipboard => 'クリップボードから貼り付け'; + @override String get pleaseEnterCode => 'セッションコードを入力してください'; + @override String get codeMustBe8Chars => 'セッションコードは8文字である必要があります'; + @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}が退出しました'; +} + +// Path: downloads +class _TranslationsDownloadsJa implements TranslationsDownloadsEn { + _TranslationsDownloadsJa._(this._root); + + final TranslationsJa _root; // ignore: unused_field + + // Translations + @override String get title => 'ダウンロード'; + @override String get manage => '管理'; + @override String get tvShows => 'テレビ番組'; + @override String get movies => '映画'; + @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 episodesQueued({required Object count}) => '${count}エピソードをダウンロードキューに追加しました'; + @override String get downloadDeleted => 'ダウンロードを削除しました'; + @override String deleteConfirm({required Object title}) => '"${title}"を削除してもよろしいですか?ダウンロードしたファイルがデバイスから削除されます。'; + @override String deletingWithProgress({required Object title, required Object current, required Object total}) => '${title}を削除中... (${current}/${total})'; + @override String get noDownloadsTree => 'ダウンロードなし'; + @override String get pauseAll => 'すべて一時停止'; + @override String get resumeAll => 'すべて再開'; + @override String get deleteAll => 'すべて削除'; +} + +// Path: shaders +class _TranslationsShadersJa implements TranslationsShadersEn { + _TranslationsShadersJa._(this._root); + + final TranslationsJa _root; // ignore: unused_field + + // Translations + @override String get title => 'シェーダー'; + @override String get noShaderDescription => '映像補正なし'; + @override String get nvscalerDescription => 'よりシャープな映像のためのNVIDIA画像スケーリング'; + @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 _TranslationsCompanionRemoteJa implements TranslationsCompanionRemoteEn { + _TranslationsCompanionRemoteJa._(this._root); + + final TranslationsJa _root; // ignore: unused_field + + // Translations + @override String get title => 'コンパニオンリモート'; + @override String get connectToDevice => 'デバイスに接続'; + @override String get hostRemoteSession => 'リモートセッションをホスト'; + @override String get controlThisDevice => 'スマートフォンでこのデバイスを操作'; + @override String get remoteControl => 'リモコン'; + @override String get controlDesktop => 'デスクトップデバイスを操作'; + @override String connectedTo({required Object name}) => '${name}に接続中'; + @override late final _TranslationsCompanionRemoteSessionJa session = _TranslationsCompanionRemoteSessionJa._(_root); + @override late final _TranslationsCompanionRemotePairingJa pairing = _TranslationsCompanionRemotePairingJa._(_root); + @override late final _TranslationsCompanionRemoteRemoteJa remote = _TranslationsCompanionRemoteRemoteJa._(_root); +} + +// Path: videoSettings +class _TranslationsVideoSettingsJa implements TranslationsVideoSettingsEn { + _TranslationsVideoSettingsJa._(this._root); + + final TranslationsJa _root; // ignore: unused_field + + // Translations + @override String get playbackSettings => '再生設定'; + @override String get playbackSpeed => '再生速度'; + @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 => '音声正規化'; +} + +// Path: externalPlayer +class _TranslationsExternalPlayerJa implements TranslationsExternalPlayerEn { + _TranslationsExternalPlayerJa._(this._root); + + final TranslationsJa _root; // ignore: unused_field + + // Translations + @override String get title => '外部プレーヤー'; + @override String get useExternalPlayer => '外部プレーヤーを使用'; + @override String get useExternalPlayerDescription => '内蔵プレーヤーの代わりに外部アプリで動画を開く'; + @override String get selectPlayer => 'プレーヤーを選択'; + @override String get systemDefault => 'システムデフォルト'; + @override String get addCustomPlayer => 'カスタムプレーヤーを追加'; + @override String get playerName => 'プレーヤー名'; + @override String get playerCommand => 'コマンド'; + @override String get playerPackage => 'パッケージ名'; + @override String get playerUrlScheme => 'URLスキーム'; + @override String get customPlayer => 'カスタムプレーヤー'; + @override String get off => 'オフ'; + @override String get launchFailed => '外部プレーヤーの起動に失敗しました'; + @override String appNotInstalled({required Object name}) => '${name}がインストールされていません'; + @override String get playInExternalPlayer => '外部プレーヤーで再生'; +} + +// Path: metadataEdit +class _TranslationsMetadataEditJa implements TranslationsMetadataEditEn { + _TranslationsMetadataEditJa._(this._root); + + final TranslationsJa _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 selectPoster => 'ポスターを選択'; + @override String get selectBackground => '背景を選択'; + @override String get fromUrl => 'URLから'; + @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 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 => '1日後'; + @override String get afterAWeek => '1週間後'; + @override String get afterAMonth => '1ヶ月後'; + @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 => '常に有効'; +} + +// Path: hotkeys.actions +class _TranslationsHotkeysActionsJa implements TranslationsHotkeysActionsEn { + _TranslationsHotkeysActionsJa._(this._root); + + final TranslationsJa _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 speedIncrease => '速度を上げる'; + @override String get speedDecrease => '速度を下げる'; + @override String get speedReset => '速度をリセット'; + @override String get subSeekNext => '次の字幕にシーク'; + @override String get subSeekPrev => '前の字幕にシーク'; + @override String get shaderToggle => 'シェーダー切替'; + @override String get skipMarker => 'イントロ/クレジットをスキップ'; +} + +// Path: videoControls.pipErrors +class _TranslationsVideoControlsPipErrorsJa implements TranslationsVideoControlsPipErrorsEn { + _TranslationsVideoControlsPipErrorsJa._(this._root); + + final TranslationsJa _root; // ignore: unused_field + + // Translations + @override String get androidVersion => 'Android 8.0以降が必要です'; + @override String get iosVersion => 'iOS 15.0以降が必要です'; + @override String get permissionDisabled => 'ピクチャーインピクチャーの権限が無効です。設定 > アプリ > Plezy > ピクチャーインピクチャーで有効にしてください'; + @override String get notSupported => 'デバイスはピクチャーインピクチャーモードをサポートしていません'; + @override String get voSwitchFailed => 'ピクチャーインピクチャーの映像出力切替に失敗しました'; + @override String get failed => 'ピクチャーインピクチャーの開始に失敗しました'; + @override String unknown({required Object error}) => 'エラーが発生しました: ${error}'; +} + +// Path: libraries.tabs +class _TranslationsLibrariesTabsJa implements TranslationsLibrariesTabsEn { + _TranslationsLibrariesTabsJa._(this._root); + + final TranslationsJa _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 _TranslationsLibrariesGroupingsJa implements TranslationsLibrariesGroupingsEn { + _TranslationsLibrariesGroupingsJa._(this._root); + + final TranslationsJa _root; // ignore: unused_field + + // Translations + @override String get all => 'すべて'; + @override String get movies => '映画'; + @override String get shows => 'テレビ番組'; + @override String get seasons => 'シーズン'; + @override String get episodes => 'エピソード'; + @override String get folders => 'フォルダ'; +} + +// Path: companionRemote.session +class _TranslationsCompanionRemoteSessionJa implements TranslationsCompanionRemoteSessionEn { + _TranslationsCompanionRemoteSessionJa._(this._root); + + final TranslationsJa _root; // ignore: unused_field + + // Translations + @override String get creatingSession => 'リモートセッションを作成中...'; + @override String get failedToCreate => 'リモートセッションの作成に失敗しました:'; + @override String get noSession => '利用可能なセッションがありません'; + @override String get scanQrCode => 'QRコードをスキャン'; + @override String get orEnterManually => 'または手動で入力'; + @override String get hostAddress => 'ホストアドレス'; + @override String get sessionId => 'セッションID'; + @override String get pin => 'PIN'; + @override String get connected => '接続済み'; + @override String get waitingForConnection => '接続を待機中...'; + @override String get usePhoneToControl => 'モバイルデバイスでこのアプリを操作'; + @override String copiedToClipboard({required Object label}) => '${label}をクリップボードにコピーしました'; + @override String get copyToClipboard => 'クリップボードにコピー'; + @override String get newSession => '新しいセッション'; + @override String get minimize => '最小化'; +} + +// Path: companionRemote.pairing +class _TranslationsCompanionRemotePairingJa implements TranslationsCompanionRemotePairingEn { + _TranslationsCompanionRemotePairingJa._(this._root); + + final TranslationsJa _root; // ignore: unused_field + + // Translations + @override String get scan => 'スキャン'; + @override String get manual => '手動'; + @override String get pairWithDesktop => 'デスクトップとペアリング'; + @override String get enterSessionDetails => 'デスクトップデバイスに表示されたセッション情報を入力'; + @override String get hostAddressHint => '192.168.1.100:48632'; + @override String get sessionIdHint => '8文字のセッションIDを入力'; + @override String get pinHint => '6桁のPINを入力'; + @override String get connecting => '接続中...'; + @override String get tips => 'ヒント'; + @override String get tipDesktop => 'デスクトップでPlezyを開き、設定またはメニューからコンパニオンリモートを有効にしてください'; + @override String get tipScan => 'スキャンタブを使用して、デスクトップのQRコードをスキャンして素早くペアリング'; + @override String get tipWifi => '両方のデバイスが同じWiFiネットワークに接続されていることを確認'; + @override String get cameraPermissionRequired => 'QRコードをスキャンするにはカメラの権限が必要です。\nデバイスの設定でカメラへのアクセスを許可してください。'; + @override String cameraError({required Object error}) => 'カメラを起動できませんでした: ${error}'; + @override String get scanInstruction => 'デスクトップに表示されたQRコードにカメラを向けてください'; + @override String get invalidQrCode => '無効なQRコード形式'; + @override String get validationHostRequired => 'ホストアドレスを入力してください'; + @override String get validationHostFormat => '形式はIP:ポートである必要があります(例: 192.168.1.100:48632)'; + @override String get validationSessionIdRequired => 'セッションIDを入力してください'; + @override String get validationSessionIdLength => 'セッションIDは8文字である必要があります'; + @override String get validationPinRequired => 'PINを入力してください'; + @override String get validationPinLength => 'PINは6桁である必要があります'; + @override String get connectionTimedOut => '接続がタイムアウトしました。セッションIDとPINを確認してください。'; + @override String get sessionNotFound => 'セッションが見つかりませんでした。認証情報を確認してください。'; + @override String failedToConnect({required Object error}) => '接続に失敗しました: ${error}'; +} + +// Path: companionRemote.remote +class _TranslationsCompanionRemoteRemoteJa implements TranslationsCompanionRemoteRemoteEn { + _TranslationsCompanionRemoteRemoteJa._(this._root); + + final TranslationsJa _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 connectionError => '接続エラー'; + @override String get notConnected => '未接続'; + @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 => 'デスクトップで検索...'; +} + +/// 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 TranslationsJa { + dynamic _flatMapFunction(String path) { + return switch (path) { + 'app.title' => 'Plezy', + 'auth.signInWithPlex' => 'Plexでサインイン', + 'auth.showQRCode' => 'QRコードを表示', + 'auth.authenticate' => '認証', + 'auth.debugEnterToken' => 'デバッグ: Plexトークンを入力', + 'auth.plexTokenLabel' => 'Plex認証トークン', + 'auth.plexTokenHint' => 'Plex.tvトークンを入力', + 'auth.authenticationTimeout' => '認証がタイムアウトしました。もう一度お試しください。', + 'auth.scanQRToSignIn' => 'このQRコードをスキャンしてサインイン', + 'auth.waitingForAuth' => '認証を待機中...\nブラウザでサインインを完了してください。', + 'auth.useBrowser' => 'ブラウザを使用', + '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.shuffle' => 'シャッフル', + 'common.addTo' => '追加...', + 'common.createNew' => '新規作成', + 'common.remove' => '削除', + 'common.paste' => '貼り付け', + 'common.connect' => '接続', + 'common.disconnect' => '切断', + 'common.play' => '再生', + 'common.pause' => '一時停止', + 'common.resume' => '再開', + 'common.error' => 'エラー', + 'common.search' => '検索', + 'common.home' => 'ホーム', + 'common.back' => '戻る', + 'common.settings' => '設定', + 'common.mute' => 'ミュート', + 'common.ok' => 'OK', + 'common.loading' => '読み込み中...', + 'common.reconnect' => '再接続', + 'common.exitConfirmTitle' => 'アプリを終了しますか?', + 'common.exitConfirmMessage' => '終了してもよろしいですか?', + 'common.dontAskAgain' => '次回から表示しない', + 'common.exit' => '終了', + 'common.viewAll' => 'すべて表示', + 'common.checkingNetwork' => 'ネットワークを確認中...', + 'common.refreshingServers' => 'サーバーを更新中...', + 'common.loadingServers' => 'サーバーを読み込み中...', + 'common.connectingToServers' => 'サーバーに接続中...', + 'common.startingOfflineMode' => 'オフラインモードを開始中...', + '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.language' => '言語', + 'settings.theme' => 'テーマ', + 'settings.appearance' => '外観', + 'settings.videoPlayback' => '動画再生', + 'settings.advanced' => '詳細', + 'settings.episodePosterMode' => 'エピソードポスタースタイル', + 'settings.seriesPoster' => 'シリーズポスター', + 'settings.seriesPosterDescription' => 'すべてのエピソードにシリーズポスターを表示', + 'settings.seasonPoster' => 'シーズンポスター', + 'settings.seasonPosterDescription' => 'エピソードにシーズン固有のポスターを表示', + 'settings.episodeThumbnail' => 'エピソードサムネイル', + 'settings.episodeThumbnailDescription' => '16:9のエピソードスクリーンショットサムネイルを表示', + 'settings.showHeroSectionDescription' => 'ホーム画面に注目コンテンツのカルーセルを表示', + 'settings.secondsLabel' => '秒', + 'settings.minutesLabel' => '分', + 'settings.secondsShort' => '秒', + 'settings.minutesShort' => '分', + 'settings.durationHint' => ({required Object min, required Object max}) => '時間を入力 (${min}-${max})', + 'settings.systemTheme' => 'システム', + 'settings.systemThemeDescription' => 'システム設定に従う', + 'settings.lightTheme' => 'ライト', + 'settings.darkTheme' => 'ダーク', + 'settings.oledTheme' => 'OLED', + 'settings.oledThemeDescription' => 'OLED画面向けの純粋な黒', + 'settings.libraryDensity' => 'ライブラリの密度', + 'settings.compact' => 'コンパクト', + 'settings.compactDescription' => '小さいカード、より多くのアイテムを表示', + 'settings.normal' => '標準', + 'settings.normalDescription' => 'デフォルトサイズ', + 'settings.comfortable' => 'ゆったり', + 'settings.comfortableDescription' => '大きいカード、表示アイテム数を減少', + 'settings.viewMode' => '表示モード', + 'settings.gridView' => 'グリッド', + 'settings.gridViewDescription' => 'グリッドレイアウトでアイテムを表示', + 'settings.listView' => 'リスト', + 'settings.listViewDescription' => 'リストレイアウトでアイテムを表示', + 'settings.showHeroSection' => 'ヒーローセクションを表示', + 'settings.useGlobalHubs' => 'Plex Homeレイアウトを使用', + 'settings.useGlobalHubsDescription' => '公式Plexクライアントのようにホームページのハブを表示。オフにすると、ライブラリごとのおすすめを表示。', + 'settings.showServerNameOnHubs' => 'ハブにサーバー名を表示', + 'settings.showServerNameOnHubsDescription' => 'ハブタイトルに常にサーバー名を表示。オフにすると、重複名のみ表示。', + 'settings.alwaysKeepSidebarOpen' => 'サイドバーを常に開いておく', + 'settings.alwaysKeepSidebarOpenDescription' => 'サイドバーを展開したまま、コンテンツ領域が調整される', + 'settings.showUnwatchedCount' => '未視聴数を表示', + 'settings.showUnwatchedCountDescription' => '番組とシーズンに未視聴エピソード数を表示', + 'settings.hideSpoilers' => '未視聴エピソードのネタバレを非表示', + 'settings.hideSpoilersDescription' => 'まだ視聴していないエピソードのサムネイルをぼかし、説明を非表示', + 'settings.playerBackend' => 'プレーヤーバックエンド', + 'settings.exoPlayer' => 'ExoPlayer(推奨)', + 'settings.exoPlayerDescription' => 'より良いハードウェアサポートのAndroidネイティブプレーヤー', + 'settings.mpv' => 'mpv', + 'settings.mpvDescription' => 'より多くの機能とASS字幕サポートの高度なプレーヤー', + '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.subtitleStyling' => '字幕スタイル', + 'settings.subtitleStylingDescription' => '字幕の外観をカスタマイズ', + 'settings.smallSkipDuration' => '短いスキップ時間', + 'settings.largeSkipDuration' => '長いスキップ時間', + 'settings.secondsUnit' => ({required Object seconds}) => '${seconds}秒', + 'settings.defaultSleepTimer' => 'デフォルトスリープタイマー', + 'settings.minutesUnit' => ({required Object minutes}) => '${minutes}分', + 'settings.rememberTrackSelections' => '番組/映画ごとにトラック選択を記憶', + 'settings.rememberTrackSelectionsDescription' => '再生中にトラックを変更すると、音声と字幕の言語設定を自動保存', + 'settings.clickVideoTogglesPlayback' => '動画クリックで再生/一時停止を切替', + 'settings.clickVideoTogglesPlaybackDescription' => '有効にすると、動画プレーヤーをクリックで再生/一時停止。それ以外は再生コントロールの表示/非表示。', + 'settings.videoPlayerControls' => '動画プレーヤーコントロール', + 'settings.keyboardShortcuts' => 'キーボードショートカット', + 'settings.keyboardShortcutsDescription' => 'キーボードショートカットをカスタマイズ', + 'settings.videoPlayerNavigation' => '動画プレーヤーナビゲーション', + 'settings.videoPlayerNavigationDescription' => '矢印キーで動画プレーヤーコントロールを操作', + '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.shortcutsReset' => 'ショートカットをデフォルトにリセットしました', + 'settings.about' => 'アプリについて', + 'settings.aboutDescription' => 'アプリ情報とライセンス', + 'settings.updates' => 'アップデート', + 'settings.updateAvailable' => 'アップデート利用可能', + 'settings.checkForUpdates' => 'アップデートを確認', + '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.autoSkip' => '自動スキップ', + 'settings.autoSkipIntro' => 'イントロを自動スキップ', + 'settings.autoSkipIntroDescription' => '数秒後にイントロマーカーを自動的にスキップ', + 'settings.autoSkipCredits' => 'クレジットを自動スキップ', + 'settings.autoSkipCreditsDescription' => 'クレジットを自動的にスキップして次のエピソードを再生', + 'settings.autoSkipDelay' => '自動スキップの遅延', + 'settings.autoSkipDelayDescription' => ({required Object seconds}) => '自動スキップまで${seconds}秒待機', + '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.downloadLocationSelectError' => 'フォルダの選択に失敗しました', + 'settings.downloadOnWifiOnly' => 'WiFiのみでダウンロード', + 'settings.downloadOnWifiOnlyDescription' => 'モバイルデータ通信時のダウンロードを防止', + 'settings.cellularDownloadBlocked' => 'モバイルデータ通信ではダウンロードが無効です。WiFiに接続するか設定を変更してください。', + 'settings.maxVolume' => '最大音量', + 'settings.maxVolumeDescription' => '静かなメディアに対して100%以上の音量ブーストを許可', + 'settings.maxVolumePercent' => ({required Object percent}) => '${percent}%', + 'settings.discordRichPresence' => 'Discord Rich Presence', + 'settings.discordRichPresenceDescription' => 'Discordで視聴中の内容を表示', + 'settings.autoPip' => '自動ピクチャーインピクチャー', + 'settings.autoPipDescription' => '再生中にアプリを離れると自動的にピクチャーインピクチャーに移行', + 'settings.matchContentFrameRate' => 'コンテンツのフレームレートに合わせる', + 'settings.matchContentFrameRateDescription' => '動画コンテンツに合わせてディスプレイのリフレッシュレートを調整し、ジャダーを低減しバッテリーを節約', + 'settings.tunneledPlayback' => 'トンネル再生', + 'settings.tunneledPlaybackDescription' => 'ハードウェアアクセラレーションされたビデオトンネリングを使用。HDRコンテンツで音声のみで画面が黒くなる場合は無効にしてください', + 'settings.requireProfileSelectionOnOpen' => 'アプリ起動時にプロフィールを確認', + 'settings.requireProfileSelectionOnOpenDescription' => 'アプリを開くたびにプロフィール選択を表示', + 'settings.confirmExitOnBack' => '終了前に確認', + 'settings.confirmExitOnBackDescription' => '戻るボタンでアプリを終了する際に確認ダイアログを表示', + 'settings.showNavBarLabels' => 'ナビゲーションバーラベルを表示', + 'settings.showNavBarLabelsDescription' => 'ナビゲーションバーアイコンの下にテキストラベルを表示', + 'search.hint' => '映画、番組、音楽を検索...', + 'search.tryDifferentTerm' => '別の検索語をお試しください', + 'search.searchYourMedia' => 'メディアを検索', + 'search.enterTitleActorOrKeyword' => 'タイトル、俳優、またはキーワードを入力', + 'hotkeys.setShortcutFor' => ({required Object actionName}) => '${actionName}のショートカットを設定', + 'hotkeys.clearShortcut' => 'ショートカットをクリア', + '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.speedIncrease' => '速度を上げる', + 'hotkeys.actions.speedDecrease' => '速度を下げる', + 'hotkeys.actions.speedReset' => '速度をリセット', + 'hotkeys.actions.subSeekNext' => '次の字幕にシーク', + 'hotkeys.actions.subSeekPrev' => '前の字幕にシーク', + 'hotkeys.actions.shaderToggle' => 'シェーダー切替', + 'hotkeys.actions.skipMarker' => 'イントロ/クレジットをスキップ', + 'pinEntry.enterPin' => 'PINを入力', + 'pinEntry.showPin' => 'PINを表示', + 'pinEntry.hidePin' => 'PINを非表示', + 'fileInfo.title' => 'ファイル情報', + 'fileInfo.video' => '映像', + 'fileInfo.audio' => '音声', + 'fileInfo.file' => 'ファイル', + 'fileInfo.advanced' => '詳細', + 'fileInfo.codec' => 'コーデック', + 'fileInfo.resolution' => '解像度', + 'fileInfo.bitrate' => 'ビットレート', + 'fileInfo.frameRate' => 'フレームレート', + 'fileInfo.aspectRatio' => 'アスペクト比', + 'fileInfo.profile' => 'プロファイル', + 'fileInfo.bitDepth' => 'ビット深度', + 'fileInfo.colorSpace' => '色空間', + 'fileInfo.colorRange' => '色範囲', + 'fileInfo.colorPrimaries' => '色原色', + 'fileInfo.chromaSubsampling' => 'クロマサブサンプリング', + 'fileInfo.channels' => 'チャンネル', + 'fileInfo.path' => 'パス', + 'fileInfo.size' => 'サイズ', + 'fileInfo.container' => 'コンテナ', + 'fileInfo.duration' => '長さ', + 'fileInfo.optimizedForStreaming' => 'ストリーミング最適化', + 'fileInfo.has64bitOffsets' => '64ビットオフセット', + 'mediaMenu.markAsWatched' => '視聴済みにする', + 'mediaMenu.markAsUnwatched' => '未視聴にする', + 'mediaMenu.removeFromContinueWatching' => '視聴中から削除', + 'mediaMenu.goToSeries' => 'シリーズへ移動', + 'mediaMenu.goToSeason' => 'シーズンへ移動', + 'mediaMenu.shufflePlay' => 'シャッフル再生', + 'mediaMenu.fileInfo' => 'ファイル情報', + 'mediaMenu.deleteFromServer' => 'サーバーから削除', + 'mediaMenu.confirmDelete' => 'このメディアとそのファイルがサーバーから完全に削除されます。この操作は元に戻せません。', + 'mediaMenu.deleteMultipleWarning' => 'すべてのエピソードとそのファイルが含まれます。', + 'mediaMenu.mediaDeletedSuccessfully' => 'メディアアイテムを正常に削除しました', + 'mediaMenu.mediaFailedToDelete' => 'メディアアイテムの削除に失敗しました', + 'mediaMenu.rate' => '評価', + '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' => 'タップして再生', + 'tooltips.shufflePlay' => 'シャッフル再生', + 'tooltips.playTrailer' => '予告編を再生', + 'tooltips.markAsWatched' => '視聴済みにする', + 'tooltips.markAsUnwatched' => '未視聴にする', + 'videoControls.audioLabel' => '音声', + 'videoControls.subtitlesLabel' => '字幕', + '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.noOffset' => 'オフセットなし', + 'videoControls.letterbox' => 'レターボックス', + 'videoControls.fillScreen' => '画面を埋める', + 'videoControls.stretch' => '引き延ばす', + 'videoControls.lockRotation' => '回転をロック', + 'videoControls.unlockRotation' => '回転のロックを解除', + 'videoControls.timerActive' => 'タイマー動作中', + 'videoControls.playbackWillPauseIn' => ({required Object duration}) => '再生は${duration}後に一時停止します', + 'videoControls.sleepTimerCompleted' => 'スリープタイマー完了 - 再生を一時停止しました', + 'videoControls.stillWatching' => 'まだ視聴中ですか?', + '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.previousButton' => '前のエピソード', + 'videoControls.nextButton' => '次のエピソード', + 'videoControls.previousChapterButton' => '前のチャプター', + 'videoControls.nextChapterButton' => '次のチャプター', + 'videoControls.muteButton' => 'ミュート', + 'videoControls.unmuteButton' => 'ミュート解除', + 'videoControls.settingsButton' => '動画設定', + 'videoControls.audioTrackButton' => '音声トラック', + 'videoControls.subtitlesButton' => '字幕', + 'videoControls.tracksButton' => '音声と字幕', + 'videoControls.chaptersButton' => 'チャプター', + 'videoControls.versionsButton' => '動画バージョン', + 'videoControls.pipButton' => 'ピクチャーインピクチャーモード', + 'videoControls.aspectRatioButton' => 'アスペクト比', + 'videoControls.ambientLighting' => 'アンビエントライティング', + 'videoControls.ambientLightingOn' => 'アンビエントライティングを有効化', + 'videoControls.ambientLightingOff' => 'アンビエントライティングを無効化', + 'videoControls.fullscreenButton' => 'フルスクリーンに入る', + 'videoControls.exitFullscreenButton' => 'フルスクリーンを終了', + 'videoControls.alwaysOnTopButton' => '常に前面に表示', + 'videoControls.rotationLockButton' => '回転ロック', + 'videoControls.timelineSlider' => '動画タイムライン', + 'videoControls.volumeSlider' => '音量レベル', + 'videoControls.endsAt' => ({required Object time}) => '${time}に終了', + 'videoControls.pipActive' => 'ピクチャーインピクチャーで再生中', + 'videoControls.pipFailed' => 'ピクチャーインピクチャーの開始に失敗しました', + 'videoControls.pipErrors.androidVersion' => 'Android 8.0以降が必要です', + 'videoControls.pipErrors.iosVersion' => 'iOS 15.0以降が必要です', + 'videoControls.pipErrors.permissionDisabled' => 'ピクチャーインピクチャーの権限が無効です。設定 > アプリ > Plezy > ピクチャーインピクチャーで有効にしてください', + 'videoControls.pipErrors.notSupported' => 'デバイスはピクチャーインピクチャーモードをサポートしていません', + 'videoControls.pipErrors.voSwitchFailed' => 'ピクチャーインピクチャーの映像出力切替に失敗しました', + 'videoControls.pipErrors.failed' => 'ピクチャーインピクチャーの開始に失敗しました', + 'videoControls.pipErrors.unknown' => ({required Object error}) => 'エラーが発生しました: ${error}', + 'videoControls.chapters' => 'チャプター', + 'videoControls.noChaptersAvailable' => 'チャプターがありません', + 'videoControls.queue' => 'キュー', + 'videoControls.noQueueItems' => 'キューにアイテムがありません', + 'userStatus.admin' => '管理者', + 'userStatus.restricted' => '制限付き', + 'userStatus.protected' => '保護済み', + 'userStatus.current' => '現在', + 'messages.markedAsWatched' => '視聴済みにしました', + 'messages.markedAsUnwatched' => '未視聴にしました', + 'messages.markedAsWatchedOffline' => '視聴済みにしました(オンライン時に同期)', + 'messages.markedAsUnwatchedOffline' => '未視聴にしました(オンライン時に同期)', + 'messages.removedFromContinueWatching' => '視聴中から削除しました', + 'messages.errorLoading' => ({required Object error}) => 'エラー: ${error}', + 'messages.fileInfoNotAvailable' => 'ファイル情報が利用できません', + 'messages.errorLoadingFileInfo' => ({required Object error}) => 'ファイル情報の読み込みエラー: ${error}', + 'messages.errorLoadingSeries' => 'シリーズの読み込みエラー', + 'messages.errorLoadingSeason' => 'シーズンの読み込みエラー', + 'messages.musicNotSupported' => '音楽の再生はまだサポートされていません', + '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.noEpisodesFound' => '最初のシーズンにエピソードが見つかりません', + 'messages.noEpisodesFoundGeneral' => 'エピソードが見つかりません', + '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.logsUploaded' => 'ログをアップロードしました', + 'messages.logsUploadFailed' => 'ログのアップロードに失敗しました', + 'messages.logId' => 'ログID', + 'subtitlingStyling.stylingOptions' => 'スタイルオプション', + 'subtitlingStyling.fontSize' => 'フォントサイズ', + 'subtitlingStyling.textColor' => 'テキストの色', + 'subtitlingStyling.borderSize' => '枠線サイズ', + 'subtitlingStyling.borderColor' => '枠線の色', + 'subtitlingStyling.backgroundOpacity' => '背景の不透明度', + 'subtitlingStyling.backgroundColor' => '背景色', + 'subtitlingStyling.position' => '位置', + 'mpvConfig.title' => 'mpv.conf', + '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# comment', + 'dialog.confirmAction' => '操作の確認', + 'discover.title' => '探す', + 'discover.switchProfile' => 'プロフィール切替', + 'discover.noContentAvailable' => 'コンテンツがありません', + 'discover.addMediaToLibraries' => 'ライブラリにメディアを追加してください', + 'discover.continueWatching' => '視聴を続ける', + 'discover.playEpisode' => ({required Object season, required Object episode}) => 'S${season}E${episode}', + 'discover.overview' => 'あらすじ', + 'discover.cast' => 'キャスト', + 'discover.extras' => '予告編とエクストラ', + 'discover.seasons' => 'シーズン', + 'discover.studio' => 'スタジオ', + 'discover.rating' => '評価', + 'discover.episodeCount' => ({required Object count}) => '${count}エピソード', + 'discover.watchedProgress' => ({required Object watched, required Object total}) => '${watched}/${total}視聴済み', + 'discover.movie' => '映画', + 'discover.tvShow' => 'テレビ番組', + 'discover.minutesLeft' => ({required Object minutes}) => '残り${minutes}分', + 'errors.searchFailed' => ({required Object error}) => '検索に失敗しました: ${error}', + 'errors.connectionTimeout' => ({required Object context}) => '${context}の読み込み中に接続がタイムアウトしました', + 'errors.connectionFailed' => 'Plexサーバーに接続できません', + 'errors.failedToLoad' => ({required Object context, required Object error}) => '${context}の読み込みに失敗しました: ${error}', + 'errors.noClientAvailable' => 'クライアントが利用できません', + 'errors.authenticationFailed' => ({required Object error}) => '認証に失敗しました: ${error}', + 'errors.couldNotLaunchUrl' => '認証URLを開けませんでした', + 'errors.pleaseEnterToken' => 'トークンを入力してください', + 'errors.invalidToken' => '無効なトークン', + 'errors.failedToVerifyToken' => ({required Object error}) => 'トークンの検証に失敗しました: ${error}', + 'errors.failedToSwitchProfile' => ({required Object displayName}) => '${displayName}への切替に失敗しました', + 'libraries.title' => 'ライブラリ', + '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.thisLibraryIsEmpty' => 'このライブラリは空です', + '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.all' => 'すべて', + 'libraries.groupings.movies' => '映画', + 'libraries.groupings.shows' => 'テレビ番組', + 'libraries.groupings.seasons' => 'シーズン', + 'libraries.groupings.episodes' => 'エピソード', + 'libraries.groupings.folders' => 'フォルダ', + 'about.title' => 'アプリについて', + 'about.openSourceLicenses' => 'オープンソースライセンス', + 'about.versionLabel' => ({required Object version}) => 'バージョン ${version}', + 'about.appDescription' => 'Flutter製の美しいPlexクライアント', + 'about.viewLicensesDescription' => 'サードパーティライブラリのライセンスを表示', + 'serverSelection.allServerConnectionsFailed' => 'どのサーバーにも接続できませんでした。ネットワークを確認してもう一度お試しください。', + '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' => 'ログをアップロード', + 'logs.error' => 'エラー:', + 'logs.stackTrace' => 'スタックトレース:', + 'licenses.relatedPackages' => '関連パッケージ', + 'licenses.license' => 'ライセンス', + 'licenses.licenseNumber' => ({required Object number}) => 'ライセンス ${number}', + 'licenses.licensesCount' => ({required Object count}) => '${count}件のライセンス', + 'navigation.libraries' => 'ライブラリ', + 'navigation.downloads' => 'ダウンロード', + 'navigation.liveTv' => 'ライブTV', + 'liveTv.title' => 'ライブTV', + 'liveTv.channels' => 'チャンネル', + 'liveTv.guide' => '番組表', + 'liveTv.noChannels' => 'チャンネルがありません', + 'liveTv.noDvr' => 'どのサーバーにもDVRが設定されていません', + 'liveTv.tuneFailed' => 'チャンネルのチューニングに失敗しました', + 'liveTv.loading' => 'チャンネルを読み込み中...', + 'liveTv.nowPlaying' => '現在放送中', + 'liveTv.noPrograms' => '番組データがありません', + 'liveTv.channelNumber' => ({required Object number}) => 'Ch. ${number}', + 'liveTv.live' => 'ライブ', + 'liveTv.hd' => 'HD', + 'liveTv.premiere' => '新着', + _ => null, + } ?? switch (path) { + 'liveTv.reloadGuide' => '番組表を再読込', + 'liveTv.allChannels' => 'すべてのチャンネル', + 'liveTv.now' => '現在', + 'liveTv.today' => '今日', + 'liveTv.midnight' => '深夜', + 'liveTv.overnight' => '深夜', + 'liveTv.morning' => '朝', + 'liveTv.daytime' => '昼', + 'liveTv.evening' => '夕方', + 'liveTv.lateNight' => '深夜', + 'liveTv.whatsOn' => '放送中', + 'liveTv.watchChannel' => 'チャンネルを視聴', + 'collections.title' => 'コレクション', + 'collections.collection' => 'コレクション', + 'collections.empty' => 'コレクションは空です', + 'collections.unknownLibrarySection' => '削除できません:不明なライブラリセクション', + 'collections.deleteCollection' => 'コレクションを削除', + 'collections.deleteConfirm' => ({required Object title}) => '"${title}"を削除してもよろしいですか?この操作は元に戻せません。', + 'collections.deleted' => 'コレクションを削除しました', + 'collections.deleteFailed' => 'コレクションの削除に失敗しました', + 'collections.deleteFailedWithError' => ({required Object error}) => 'コレクションの削除に失敗しました: ${error}', + 'collections.failedToLoadItems' => ({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}', + '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.errorCreating' => 'プレイリストの作成に失敗しました', + 'playlists.errorDeleting' => 'プレイリストの削除に失敗しました', + 'playlists.errorLoading' => 'プレイリストの読み込みに失敗しました', + 'playlists.errorAdding' => 'プレイリストへの追加に失敗しました', + 'playlists.errorReordering' => 'プレイリストアイテムの並べ替えに失敗しました', + 'playlists.errorRemoving' => 'プレイリストからの削除に失敗しました', + '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.hostControlsPlayback' => 'ホストが再生を制御', + 'watchTogether.anyoneCanControl' => '全員が再生を制御可能', + 'watchTogether.hostControls' => 'ホストが制御', + 'watchTogether.anyoneControls' => '全員が制御', + 'watchTogether.participants' => '参加者', + 'watchTogether.host' => 'ホスト', + 'watchTogether.hostBadge' => 'HOST', + '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' => '8文字のコードを入力', + 'watchTogether.pasteFromClipboard' => 'クリップボードから貼り付け', + 'watchTogether.pleaseEnterCode' => 'セッションコードを入力してください', + 'watchTogether.codeMustBe8Chars' => 'セッションコードは8文字である必要があります', + 'watchTogether.joinInstructions' => 'ホストが共有したセッションコードを入力して視聴セッションに参加してください。', + 'watchTogether.failedToCreate' => 'セッションの作成に失敗しました', + 'watchTogether.failedToJoin' => 'セッションへの参加に失敗しました', + 'watchTogether.sessionCodeCopied' => 'セッションコードをクリップボードにコピーしました', + 'watchTogether.relayUnreachable' => 'リレーサーバーに到達できません。ISPが接続をブロックしている可能性があります。試すことはできますが、一緒に見る機能が動作しない場合があります。', + 'watchTogether.reconnectingToHost' => 'ホストに再接続中...', + 'watchTogether.currentPlayback' => '現在の再生', + 'watchTogether.joinCurrentPlayback' => '現在の再生に参加', + 'watchTogether.joinCurrentPlaybackDescription' => 'ホストが現在視聴中のコンテンツに戻る', + 'watchTogether.failedToOpenCurrentPlayback' => '現在の再生を開けませんでした', + 'watchTogether.participantJoined' => ({required Object name}) => '${name}が参加しました', + 'watchTogether.participantLeft' => ({required Object name}) => '${name}が退出しました', + 'downloads.title' => 'ダウンロード', + 'downloads.manage' => '管理', + 'downloads.tvShows' => 'テレビ番組', + 'downloads.movies' => '映画', + 'downloads.noDownloads' => 'ダウンロードなし', + 'downloads.noDownloadsDescription' => 'ダウンロードしたコンテンツはここに表示され、オフラインで視聴できます', + 'downloads.downloadNow' => 'ダウンロード', + 'downloads.deleteDownload' => 'ダウンロードを削除', + 'downloads.retryDownload' => 'ダウンロードを再試行', + 'downloads.downloadQueued' => 'ダウンロードをキューに追加しました', + 'downloads.episodesQueued' => ({required Object count}) => '${count}エピソードをダウンロードキューに追加しました', + 'downloads.downloadDeleted' => 'ダウンロードを削除しました', + 'downloads.deleteConfirm' => ({required Object title}) => '"${title}"を削除してもよろしいですか?ダウンロードしたファイルがデバイスから削除されます。', + 'downloads.deletingWithProgress' => ({required Object title, required Object current, required Object total}) => '${title}を削除中... (${current}/${total})', + 'downloads.noDownloadsTree' => 'ダウンロードなし', + 'downloads.pauseAll' => 'すべて一時停止', + 'downloads.resumeAll' => 'すべて再開', + 'downloads.deleteAll' => 'すべて削除', + 'shaders.title' => 'シェーダー', + 'shaders.noShaderDescription' => '映像補正なし', + 'shaders.nvscalerDescription' => 'よりシャープな映像のためのNVIDIA画像スケーリング', + '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.connectToDevice' => 'デバイスに接続', + 'companionRemote.hostRemoteSession' => 'リモートセッションをホスト', + 'companionRemote.controlThisDevice' => 'スマートフォンでこのデバイスを操作', + 'companionRemote.remoteControl' => 'リモコン', + 'companionRemote.controlDesktop' => 'デスクトップデバイスを操作', + 'companionRemote.connectedTo' => ({required Object name}) => '${name}に接続中', + 'companionRemote.session.creatingSession' => 'リモートセッションを作成中...', + 'companionRemote.session.failedToCreate' => 'リモートセッションの作成に失敗しました:', + 'companionRemote.session.noSession' => '利用可能なセッションがありません', + 'companionRemote.session.scanQrCode' => 'QRコードをスキャン', + 'companionRemote.session.orEnterManually' => 'または手動で入力', + 'companionRemote.session.hostAddress' => 'ホストアドレス', + 'companionRemote.session.sessionId' => 'セッションID', + 'companionRemote.session.pin' => 'PIN', + 'companionRemote.session.connected' => '接続済み', + 'companionRemote.session.waitingForConnection' => '接続を待機中...', + 'companionRemote.session.usePhoneToControl' => 'モバイルデバイスでこのアプリを操作', + 'companionRemote.session.copiedToClipboard' => ({required Object label}) => '${label}をクリップボードにコピーしました', + 'companionRemote.session.copyToClipboard' => 'クリップボードにコピー', + 'companionRemote.session.newSession' => '新しいセッション', + 'companionRemote.session.minimize' => '最小化', + 'companionRemote.pairing.scan' => 'スキャン', + 'companionRemote.pairing.manual' => '手動', + 'companionRemote.pairing.pairWithDesktop' => 'デスクトップとペアリング', + 'companionRemote.pairing.enterSessionDetails' => 'デスクトップデバイスに表示されたセッション情報を入力', + 'companionRemote.pairing.hostAddressHint' => '192.168.1.100:48632', + 'companionRemote.pairing.sessionIdHint' => '8文字のセッションIDを入力', + 'companionRemote.pairing.pinHint' => '6桁のPINを入力', + 'companionRemote.pairing.connecting' => '接続中...', + 'companionRemote.pairing.tips' => 'ヒント', + 'companionRemote.pairing.tipDesktop' => 'デスクトップでPlezyを開き、設定またはメニューからコンパニオンリモートを有効にしてください', + 'companionRemote.pairing.tipScan' => 'スキャンタブを使用して、デスクトップのQRコードをスキャンして素早くペアリング', + 'companionRemote.pairing.tipWifi' => '両方のデバイスが同じWiFiネットワークに接続されていることを確認', + 'companionRemote.pairing.cameraPermissionRequired' => 'QRコードをスキャンするにはカメラの権限が必要です。\nデバイスの設定でカメラへのアクセスを許可してください。', + 'companionRemote.pairing.cameraError' => ({required Object error}) => 'カメラを起動できませんでした: ${error}', + 'companionRemote.pairing.scanInstruction' => 'デスクトップに表示されたQRコードにカメラを向けてください', + 'companionRemote.pairing.invalidQrCode' => '無効なQRコード形式', + 'companionRemote.pairing.validationHostRequired' => 'ホストアドレスを入力してください', + 'companionRemote.pairing.validationHostFormat' => '形式はIP:ポートである必要があります(例: 192.168.1.100:48632)', + 'companionRemote.pairing.validationSessionIdRequired' => 'セッションIDを入力してください', + 'companionRemote.pairing.validationSessionIdLength' => 'セッションIDは8文字である必要があります', + 'companionRemote.pairing.validationPinRequired' => 'PINを入力してください', + 'companionRemote.pairing.validationPinLength' => 'PINは6桁である必要があります', + 'companionRemote.pairing.connectionTimedOut' => '接続がタイムアウトしました。セッションIDとPINを確認してください。', + 'companionRemote.pairing.sessionNotFound' => 'セッションが見つかりませんでした。認証情報を確認してください。', + '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.connectionError' => '接続エラー', + 'companionRemote.remote.notConnected' => '未接続', + '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' => 'デスクトップで検索...', + 'videoSettings.playbackSettings' => '再生設定', + 'videoSettings.playbackSpeed' => '再生速度', + 'videoSettings.sleepTimer' => 'スリープタイマー', + 'videoSettings.audioSync' => '音声同期', + 'videoSettings.subtitleSync' => '字幕同期', + 'videoSettings.hdr' => 'HDR', + 'videoSettings.audioOutput' => '音声出力', + 'videoSettings.performanceOverlay' => 'パフォーマンスオーバーレイ', + 'videoSettings.audioPassthrough' => 'オーディオパススルー', + 'videoSettings.audioNormalization' => '音声正規化', + 'externalPlayer.title' => '外部プレーヤー', + 'externalPlayer.useExternalPlayer' => '外部プレーヤーを使用', + 'externalPlayer.useExternalPlayerDescription' => '内蔵プレーヤーの代わりに外部アプリで動画を開く', + 'externalPlayer.selectPlayer' => 'プレーヤーを選択', + 'externalPlayer.systemDefault' => 'システムデフォルト', + 'externalPlayer.addCustomPlayer' => 'カスタムプレーヤーを追加', + 'externalPlayer.playerName' => 'プレーヤー名', + 'externalPlayer.playerCommand' => 'コマンド', + 'externalPlayer.playerPackage' => 'パッケージ名', + 'externalPlayer.playerUrlScheme' => 'URLスキーム', + 'externalPlayer.customPlayer' => 'カスタムプレーヤー', + '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.selectPoster' => 'ポスターを選択', + 'metadataEdit.selectBackground' => '背景を選択', + 'metadataEdit.fromUrl' => 'URLから', + 'metadataEdit.uploadFile' => 'ファイルをアップロード', + 'metadataEdit.enterImageUrl' => '画像URLを入力', + 'metadataEdit.imageUrl' => '画像URL', + 'metadataEdit.metadataUpdated' => 'メタデータを更新しました', + 'metadataEdit.metadataUpdateFailed' => 'メタデータの更新に失敗しました', + 'metadataEdit.artworkUpdated' => 'アートワークを更新しました', + 'metadataEdit.artworkUpdateFailed' => 'アートワークの更新に失敗しました', + 'metadataEdit.noArtworkAvailable' => 'アートワークがありません', + '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' => '1日後', + 'metadataEdit.afterAWeek' => '1週間後', + 'metadataEdit.afterAMonth' => '1ヶ月後', + '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' => '常に有効', + _ => null, + }; + } +} diff --git a/lib/i18n/strings_nb.g.dart b/lib/i18n/strings_nb.g.dart new file mode 100644 index 00000000..5b485ecb --- /dev/null +++ b/lib/i18n/strings_nb.g.dart @@ -0,0 +1,2125 @@ +/// +/// 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 TranslationsNb with BaseTranslations implements Translations { + /// You can call this constructor and build your own translation instance of this locale. + /// Constructing via the enum [AppLocale.build] is preferred. + TranslationsNb({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.nb, + overrides: overrides ?? {}, + cardinalResolver: cardinalResolver, + ordinalResolver: ordinalResolver, + ) { + $meta.setFlatMapFunction(_flatMapFunction); + } + + /// Metadata for the translations of . + @override final TranslationMetadata $meta; + + /// Access flat map + @override dynamic operator[](String key) => $meta.getTranslation(key); + + late final TranslationsNb _root = this; // ignore: unused_field + + @override + TranslationsNb $copyWith({TranslationMetadata? meta}) => TranslationsNb(meta: meta ?? this.$meta); + + // Translations + @override late final _TranslationsAppNb app = _TranslationsAppNb._(_root); + @override late final _TranslationsAuthNb auth = _TranslationsAuthNb._(_root); + @override late final _TranslationsCommonNb common = _TranslationsCommonNb._(_root); + @override late final _TranslationsScreensNb screens = _TranslationsScreensNb._(_root); + @override late final _TranslationsUpdateNb update = _TranslationsUpdateNb._(_root); + @override late final _TranslationsSettingsNb settings = _TranslationsSettingsNb._(_root); + @override late final _TranslationsSearchNb search = _TranslationsSearchNb._(_root); + @override late final _TranslationsHotkeysNb hotkeys = _TranslationsHotkeysNb._(_root); + @override late final _TranslationsPinEntryNb pinEntry = _TranslationsPinEntryNb._(_root); + @override late final _TranslationsFileInfoNb fileInfo = _TranslationsFileInfoNb._(_root); + @override late final _TranslationsMediaMenuNb mediaMenu = _TranslationsMediaMenuNb._(_root); + @override late final _TranslationsAccessibilityNb accessibility = _TranslationsAccessibilityNb._(_root); + @override late final _TranslationsTooltipsNb tooltips = _TranslationsTooltipsNb._(_root); + @override late final _TranslationsVideoControlsNb videoControls = _TranslationsVideoControlsNb._(_root); + @override late final _TranslationsUserStatusNb userStatus = _TranslationsUserStatusNb._(_root); + @override late final _TranslationsMessagesNb messages = _TranslationsMessagesNb._(_root); + @override late final _TranslationsSubtitlingStylingNb subtitlingStyling = _TranslationsSubtitlingStylingNb._(_root); + @override late final _TranslationsMpvConfigNb mpvConfig = _TranslationsMpvConfigNb._(_root); + @override late final _TranslationsDialogNb dialog = _TranslationsDialogNb._(_root); + @override late final _TranslationsDiscoverNb discover = _TranslationsDiscoverNb._(_root); + @override late final _TranslationsErrorsNb errors = _TranslationsErrorsNb._(_root); + @override late final _TranslationsLibrariesNb libraries = _TranslationsLibrariesNb._(_root); + @override late final _TranslationsAboutNb about = _TranslationsAboutNb._(_root); + @override late final _TranslationsServerSelectionNb serverSelection = _TranslationsServerSelectionNb._(_root); + @override late final _TranslationsHubDetailNb hubDetail = _TranslationsHubDetailNb._(_root); + @override late final _TranslationsLogsNb logs = _TranslationsLogsNb._(_root); + @override late final _TranslationsLicensesNb licenses = _TranslationsLicensesNb._(_root); + @override late final _TranslationsNavigationNb navigation = _TranslationsNavigationNb._(_root); + @override late final _TranslationsLiveTvNb liveTv = _TranslationsLiveTvNb._(_root); + @override late final _TranslationsCollectionsNb collections = _TranslationsCollectionsNb._(_root); + @override late final _TranslationsPlaylistsNb playlists = _TranslationsPlaylistsNb._(_root); + @override late final _TranslationsWatchTogetherNb watchTogether = _TranslationsWatchTogetherNb._(_root); + @override late final _TranslationsDownloadsNb downloads = _TranslationsDownloadsNb._(_root); + @override late final _TranslationsShadersNb shaders = _TranslationsShadersNb._(_root); + @override late final _TranslationsCompanionRemoteNb companionRemote = _TranslationsCompanionRemoteNb._(_root); + @override late final _TranslationsVideoSettingsNb videoSettings = _TranslationsVideoSettingsNb._(_root); + @override late final _TranslationsExternalPlayerNb externalPlayer = _TranslationsExternalPlayerNb._(_root); + @override late final _TranslationsMetadataEditNb metadataEdit = _TranslationsMetadataEditNb._(_root); +} + +// Path: app +class _TranslationsAppNb implements TranslationsAppEn { + _TranslationsAppNb._(this._root); + + final TranslationsNb _root; // ignore: unused_field + + // Translations + @override String get title => 'Plezy'; +} + +// Path: auth +class _TranslationsAuthNb implements TranslationsAuthEn { + _TranslationsAuthNb._(this._root); + + final TranslationsNb _root; // ignore: unused_field + + // Translations + @override String get signInWithPlex => 'Logg inn med Plex'; + @override String get showQRCode => 'Vis QR-kode'; + @override String get authenticate => 'Autentiser'; + @override String get debugEnterToken => 'Feilsøking: Skriv inn Plex-token'; + @override String get plexTokenLabel => 'Plex Auth-token'; + @override String get plexTokenHint => 'Skriv inn Plex.tv-tokenet ditt'; + @override String get authenticationTimeout => 'Autentiseringen ble tidsavbrutt. Prøv igjen.'; + @override String get scanQRToSignIn => 'Skann denne QR-koden for å logge inn'; + @override String get waitingForAuth => 'Venter på autentisering...\nFullfør innloggingen i nettleseren din.'; + @override String get useBrowser => 'Bruk nettleser'; +} + +// Path: common +class _TranslationsCommonNb implements TranslationsCommonEn { + _TranslationsCommonNb._(this._root); + + final TranslationsNb _root; // ignore: unused_field + + // Translations + @override String get cancel => 'Avbryt'; + @override String get save => 'Lagre'; + @override String get close => 'Lukk'; + @override String get clear => 'Tøm'; + @override String get reset => 'Tilbakestill'; + @override String get later => 'Senere'; + @override String get submit => 'Send inn'; + @override String get confirm => 'Bekreft'; + @override String get retry => 'Prøv igjen'; + @override String get logout => 'Logg ut'; + @override String get unknown => 'Ukjent'; + @override String get refresh => 'Oppdater'; + @override String get yes => 'Ja'; + @override String get no => 'Nei'; + @override String get delete => 'Slett'; + @override String get shuffle => 'Tilfeldig'; + @override String get addTo => 'Legg til i...'; + @override String get createNew => 'Opprett ny'; + @override String get remove => 'Fjern'; + @override String get paste => 'Lim inn'; + @override String get connect => 'Koble til'; + @override String get disconnect => 'Koble fra'; + @override String get play => 'Spill av'; + @override String get pause => 'Pause'; + @override String get resume => 'Gjenoppta'; + @override String get error => 'Feil'; + @override String get search => 'Søk'; + @override String get home => 'Hjem'; + @override String get back => 'Tilbake'; + @override String get settings => 'Innstillinger'; + @override String get mute => 'Demp'; + @override String get ok => 'OK'; + @override String get loading => 'Laster...'; + @override String get reconnect => 'Koble til på nytt'; + @override String get exitConfirmTitle => 'Avslutte appen?'; + @override String get exitConfirmMessage => 'Er du sikker på at du vil avslutte?'; + @override String get dontAskAgain => 'Ikke spør igjen'; + @override String get exit => 'Avslutt'; + @override String get viewAll => 'Vis alle'; + @override String get checkingNetwork => 'Sjekker nettverk...'; + @override String get refreshingServers => 'Oppdaterer servere...'; + @override String get loadingServers => 'Laster servere...'; + @override String get connectingToServers => 'Kobler til servere...'; + @override String get startingOfflineMode => 'Starter frakoblet modus...'; +} + +// Path: screens +class _TranslationsScreensNb implements TranslationsScreensEn { + _TranslationsScreensNb._(this._root); + + final TranslationsNb _root; // ignore: unused_field + + // Translations + @override String get licenses => 'Lisenser'; + @override String get switchProfile => 'Bytt profil'; + @override String get subtitleStyling => 'Undertekststil'; + @override String get mpvConfig => 'mpv.conf'; + @override String get logs => 'Logger'; +} + +// Path: update +class _TranslationsUpdateNb implements TranslationsUpdateEn { + _TranslationsUpdateNb._(this._root); + + final TranslationsNb _root; // ignore: unused_field + + // Translations + @override String get available => 'Oppdatering tilgjengelig'; + @override String versionAvailable({required Object version}) => 'Versjon ${version} er tilgjengelig'; + @override String currentVersion({required Object version}) => 'Gjeldende: ${version}'; + @override String get skipVersion => 'Hopp over denne versjonen'; + @override String get viewRelease => 'Vis utgivelse'; + @override String get latestVersion => 'Du har den nyeste versjonen'; + @override String get checkFailed => 'Kunne ikke se etter oppdateringer'; +} + +// Path: settings +class _TranslationsSettingsNb implements TranslationsSettingsEn { + _TranslationsSettingsNb._(this._root); + + final TranslationsNb _root; // ignore: unused_field + + // Translations + @override String get title => 'Innstillinger'; + @override String get language => 'Språk'; + @override String get theme => 'Tema'; + @override String get appearance => 'Utseende'; + @override String get videoPlayback => 'Videoavspilling'; + @override String get advanced => 'Avansert'; + @override String get episodePosterMode => 'Episodeplakatstil'; + @override String get seriesPoster => 'Serieplakat'; + @override String get seriesPosterDescription => 'Vis serieplakaten for alle episoder'; + @override String get seasonPoster => 'Sesongplakat'; + @override String get seasonPosterDescription => 'Vis den sesongspesifikke plakaten for episoder'; + @override String get episodeThumbnail => 'Episodeminiatyrbilde'; + @override String get episodeThumbnailDescription => 'Vis 16:9 episodeskjermbilder som miniatyrbilder'; + @override String get showHeroSectionDescription => 'Vis fremhevet innholdskarusell på hjemmeskjermen'; + @override String get secondsLabel => 'Sekunder'; + @override String get minutesLabel => 'Minutter'; + @override String get secondsShort => 's'; + @override String get minutesShort => 'm'; + @override String durationHint({required Object min, required Object max}) => 'Angi varighet (${min}-${max})'; + @override String get systemTheme => 'System'; + @override String get systemThemeDescription => 'Følg systeminnstillinger'; + @override String get lightTheme => 'Lyst'; + @override String get darkTheme => 'Mørkt'; + @override String get oledTheme => 'OLED'; + @override String get oledThemeDescription => 'Helsvart for OLED-skjermer'; + @override String get libraryDensity => 'Bibliotekets tetthet'; + @override String get compact => 'Kompakt'; + @override String get compactDescription => 'Mindre kort, flere elementer synlige'; + @override String get normal => 'Normal'; + @override String get normalDescription => 'Standard størrelse'; + @override String get comfortable => 'Komfortabel'; + @override String get comfortableDescription => 'Større kort, færre elementer synlige'; + @override String get viewMode => 'Visningsmodus'; + @override String get gridView => 'Rutenett'; + @override String get gridViewDescription => 'Vis elementer i rutenettoppsett'; + @override String get listView => 'Liste'; + @override String get listViewDescription => 'Vis elementer i listeoppsett'; + @override String get showHeroSection => 'Vis fremhevet seksjon'; + @override String get useGlobalHubs => 'Bruk Plex Home-layout'; + @override String get useGlobalHubsDescription => 'Vis hjemmeside-huber som den offisielle Plex-klienten. Når av, vises per-bibliotek-anbefalinger i stedet.'; + @override String get showServerNameOnHubs => 'Vis servernavn på huber'; + @override String get showServerNameOnHubsDescription => 'Vis alltid servernavnet i hubtitler. Når av, vises kun for dupliserte hubnavn.'; + @override String get alwaysKeepSidebarOpen => 'Hold sidefeltet alltid åpent'; + @override String get alwaysKeepSidebarOpenDescription => 'Sidefeltet forblir utvidet og innholdsområdet tilpasser seg'; + @override String get showUnwatchedCount => 'Vis antall usette'; + @override String get showUnwatchedCountDescription => 'Vis antall usette episoder på serier og sesonger'; + @override String get hideSpoilers => 'Skjul spoilere for usette episoder'; + @override String get hideSpoilersDescription => 'Slør miniatyrbilder og skjul beskrivelser for episoder du ikke har sett ennå'; + @override String get playerBackend => 'Spillermotor'; + @override String get exoPlayer => 'ExoPlayer (Anbefalt)'; + @override String get exoPlayerDescription => 'Android-innebygd spiller med bedre maskinvarestøtte'; + @override String get mpv => 'mpv'; + @override String get mpvDescription => 'Avansert spiller med flere funksjoner og ASS-undertekststøtte'; + @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}) => 'Enheten din har ${heap}MB minne. En ${size}MB buffer kan forårsake avspillingsproblemer.'; + @override String get subtitleStyling => 'Undertekststil'; + @override String get subtitleStylingDescription => 'Tilpass utseendet på undertekster'; + @override String get smallSkipDuration => 'Kort hoppvarighet'; + @override String get largeSkipDuration => 'Lang hoppvarighet'; + @override String secondsUnit({required Object seconds}) => '${seconds} sekunder'; + @override String get defaultSleepTimer => 'Standard søvntimer'; + @override String minutesUnit({required Object minutes}) => '${minutes} minutter'; + @override String get rememberTrackSelections => 'Husk sporvalg per serie/film'; + @override String get rememberTrackSelectionsDescription => 'Lagre automatisk lyd- og undertekstspråkpreferanser når du bytter spor under avspilling'; + @override String get clickVideoTogglesPlayback => 'Klikk på video for å veksle avspilling'; + @override String get clickVideoTogglesPlaybackDescription => 'Hvis aktivert, vil klikk på videospilleren spille av/pause videoen. Ellers vil klikk vise/skjule avspillingskontrollene.'; + @override String get videoPlayerControls => 'Videospillerkontroller'; + @override String get keyboardShortcuts => 'Tastatursnarveier'; + @override String get keyboardShortcutsDescription => 'Tilpass tastatursnarveier'; + @override String get videoPlayerNavigation => 'Videospillernavigering'; + @override String get videoPlayerNavigationDescription => 'Bruk piltaster for å navigere videospillerkontroller'; + @override String get crashReporting => 'Krasjrapportering'; + @override String get crashReportingDescription => 'Send krasjrapporter for å hjelpe med å forbedre appen'; + @override String get debugLogging => 'Feilsøkingslogging'; + @override String get debugLoggingDescription => 'Aktiver detaljert logging for feilsøking'; + @override String get viewLogs => 'Vis logger'; + @override String get viewLogsDescription => 'Vis applikasjonslogger'; + @override String get clearCache => 'Tøm hurtigbuffer'; + @override String get clearCacheDescription => 'Dette vil tømme alle hurtigbufrede bilder og data. Appen kan bruke lengre tid på å laste innhold etter tømming.'; + @override String get clearCacheSuccess => 'Hurtigbuffer tømt'; + @override String get resetSettings => 'Tilbakestill innstillinger'; + @override String get resetSettingsDescription => 'Dette vil tilbakestille alle innstillinger til standardverdier. Denne handlingen kan ikke angres.'; + @override String get resetSettingsSuccess => 'Innstillinger tilbakestilt'; + @override String get shortcutsReset => 'Snarveier tilbakestilt til standard'; + @override String get about => 'Om'; + @override String get aboutDescription => 'Appinformasjon og lisenser'; + @override String get updates => 'Oppdateringer'; + @override String get updateAvailable => 'Oppdatering tilgjengelig'; + @override String get checkForUpdates => 'Se etter oppdateringer'; + @override String get validationErrorEnterNumber => 'Vennligst skriv inn et gyldig tall'; + @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 autoSkip => 'Automatisk hopp'; + @override String get autoSkipIntro => 'Hopp over intro automatisk'; + @override String get autoSkipIntroDescription => 'Hopp automatisk over intromarkører etter noen sekunder'; + @override String get autoSkipCredits => 'Hopp over rulletekst automatisk'; + @override String get autoSkipCreditsDescription => 'Hopp automatisk over rulletekst og spill neste episode'; + @override String get autoSkipDelay => 'Forsinkelse for automatisk hopp'; + @override String autoSkipDelayDescription({required Object seconds}) => 'Vent ${seconds} sekunder før automatisk hopping'; + @override String get downloads => 'Nedlastinger'; + @override String get downloadLocationDescription => 'Velg hvor nedlastet innhold skal lagres'; + @override String get downloadLocationDefault => 'Standard (App-lagring)'; + @override String get downloadLocationCustom => 'Egendefinert plassering'; + @override String get selectFolder => 'Velg mappe'; + @override String get resetToDefault => 'Tilbakestill til standard'; + @override String currentPath({required Object path}) => 'Gjeldende: ${path}'; + @override String get downloadLocationChanged => 'Nedlastingsplassering endret'; + @override String get downloadLocationReset => 'Nedlastingsplassering tilbakestilt til standard'; + @override String get downloadLocationInvalid => 'Valgt mappe er ikke skrivbar'; + @override String get downloadLocationSelectError => 'Kunne ikke velge mappe'; + @override String get downloadOnWifiOnly => 'Last ned kun på WiFi'; + @override String get downloadOnWifiOnlyDescription => 'Forhindre nedlastinger på mobildata'; + @override String get cellularDownloadBlocked => 'Nedlastinger er deaktivert på mobildata. Koble til 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 discordRichPresence => 'Discord Rich Presence'; + @override String get discordRichPresenceDescription => 'Vis hva du ser på Discord'; + @override String get autoPip => 'Auto bilde-i-bilde'; + @override String get autoPipDescription => 'Gå automatisk til bilde-i-bilde når du forlater appen under avspilling'; + @override String get matchContentFrameRate => 'Tilpass innholdets bildefrekvens'; + @override String get matchContentFrameRateDescription => 'Juster skjermens oppdateringsfrekvens for å matche videoinnhold, reduserer hakking og sparer batteri'; + @override String get tunneledPlayback => 'Tunnelert avspilling'; + @override String get tunneledPlaybackDescription => 'Bruk maskinvareakselerert videotunnelering. Deaktiver hvis du ser svart skjerm med lyd på HDR-innhold'; + @override String get requireProfileSelectionOnOpen => 'Spør om profil ved appåpning'; + @override String get requireProfileSelectionOnOpenDescription => 'Vis profilvalg hver gang appen åpnes'; + @override String get confirmExitOnBack => 'Bekreft før avslutning'; + @override String get confirmExitOnBackDescription => 'Vis en bekreftelsesdialog når du trykker tilbake for å avslutte appen'; + @override String get showNavBarLabels => 'Vis navigasjonsfeltlabeler'; + @override String get showNavBarLabelsDescription => 'Vis tekstlabeler under navigasjonsfeltikoner'; +} + +// Path: search +class _TranslationsSearchNb implements TranslationsSearchEn { + _TranslationsSearchNb._(this._root); + + final TranslationsNb _root; // ignore: unused_field + + // Translations + @override String get hint => 'Søk i filmer, serier, musikk...'; + @override String get tryDifferentTerm => 'Prøv et annet søkeord'; + @override String get searchYourMedia => 'Søk i mediene dine'; + @override String get enterTitleActorOrKeyword => 'Skriv inn tittel, skuespiller eller nøkkelord'; +} + +// Path: hotkeys +class _TranslationsHotkeysNb implements TranslationsHotkeysEn { + _TranslationsHotkeysNb._(this._root); + + final TranslationsNb _root; // ignore: unused_field + + // Translations + @override String setShortcutFor({required Object actionName}) => 'Angi snarvei for ${actionName}'; + @override String get clearShortcut => 'Fjern snarvei'; + @override late final _TranslationsHotkeysActionsNb actions = _TranslationsHotkeysActionsNb._(_root); +} + +// Path: pinEntry +class _TranslationsPinEntryNb implements TranslationsPinEntryEn { + _TranslationsPinEntryNb._(this._root); + + final TranslationsNb _root; // ignore: unused_field + + // Translations + @override String get enterPin => 'Skriv inn PIN'; + @override String get showPin => 'Vis PIN'; + @override String get hidePin => 'Skjul PIN'; +} + +// Path: fileInfo +class _TranslationsFileInfoNb implements TranslationsFileInfoEn { + _TranslationsFileInfoNb._(this._root); + + final TranslationsNb _root; // ignore: unused_field + + // Translations + @override String get title => 'Filinformasjon'; + @override String get video => 'Video'; + @override String get audio => 'Lyd'; + @override String get file => 'Fil'; + @override String get advanced => 'Avansert'; + @override String get codec => 'Kodek'; + @override String get resolution => 'Oppløsning'; + @override String get bitrate => 'Bitrate'; + @override String get frameRate => 'Bildefrekvens'; + @override String get aspectRatio => 'Sideforhold'; + @override String get profile => 'Profil'; + @override String get bitDepth => 'Bitdybde'; + @override String get colorSpace => 'Fargerom'; + @override String get colorRange => 'Fargeområde'; + @override String get colorPrimaries => 'Fargeprimærer'; + @override String get chromaSubsampling => 'Krominansnedsampling'; + @override String get channels => 'Kanaler'; + @override String get path => 'Sti'; + @override String get size => 'Størrelse'; + @override String get container => 'Beholder'; + @override String get duration => 'Varighet'; + @override String get optimizedForStreaming => 'Optimalisert for strømming'; + @override String get has64bitOffsets => '64-biters forskyvninger'; +} + +// Path: mediaMenu +class _TranslationsMediaMenuNb implements TranslationsMediaMenuEn { + _TranslationsMediaMenuNb._(this._root); + + final TranslationsNb _root; // ignore: unused_field + + // Translations + @override String get markAsWatched => 'Merk som sett'; + @override String get markAsUnwatched => 'Merk som usett'; + @override String get removeFromContinueWatching => 'Fjern fra Fortsett å se'; + @override String get goToSeries => 'Gå til serie'; + @override String get goToSeason => 'Gå til sesong'; + @override String get shufflePlay => 'Tilfeldig avspilling'; + @override String get fileInfo => 'Filinformasjon'; + @override String get deleteFromServer => 'Slett fra server'; + @override String get confirmDelete => 'Dette vil permanent slette dette mediet og filene fra serveren din. Dette kan ikke angres.'; + @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 rate => 'Vurder'; +} + +// Path: accessibility +class _TranslationsAccessibilityNb implements TranslationsAccessibilityEn { + _TranslationsAccessibilityNb._(this._root); + + final TranslationsNb _root; // ignore: unused_field + + // Translations + @override String mediaCardMovie({required Object title}) => '${title}, film'; + @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 => 'sett'; + @override String mediaCardPartiallyWatched({required Object percent}) => '${percent} prosent sett'; + @override String get mediaCardUnwatched => 'usett'; + @override String get tapToPlay => 'Trykk for å spille'; +} + +// Path: tooltips +class _TranslationsTooltipsNb implements TranslationsTooltipsEn { + _TranslationsTooltipsNb._(this._root); + + final TranslationsNb _root; // ignore: unused_field + + // Translations + @override String get shufflePlay => 'Tilfeldig avspilling'; + @override String get playTrailer => 'Spill trailer'; + @override String get markAsWatched => 'Merk som sett'; + @override String get markAsUnwatched => 'Merk som usett'; +} + +// Path: videoControls +class _TranslationsVideoControlsNb implements TranslationsVideoControlsEn { + _TranslationsVideoControlsNb._(this._root); + + final TranslationsNb _root; // ignore: unused_field + + // Translations + @override String get audioLabel => 'Lyd'; + @override String get subtitlesLabel => 'Undertekster'; + @override String get resetToZero => 'Tilbakestill til 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} spilles senere'; + @override String playsEarlier({required Object label}) => '${label} spilles tidligere'; + @override String get noOffset => 'Ingen forskyvning'; + @override String get letterbox => 'Letterbox'; + @override String get fillScreen => 'Fyll skjerm'; + @override String get stretch => 'Strekk'; + @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 get sleepTimerCompleted => 'Søvntimer fullført – avspilling satt på pause'; + @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 playNext => 'Spill neste'; + @override String get playButton => 'Spill av'; + @override String get pauseButton => 'Pause'; + @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'; + @override String get nextButton => 'Neste episode'; + @override String get previousChapterButton => 'Forrige kapittel'; + @override String get nextChapterButton => 'Neste kapittel'; + @override String get muteButton => 'Demp'; + @override String get unmuteButton => 'Opphev demping'; + @override String get settingsButton => 'Videoinnstillinger'; + @override String get audioTrackButton => 'Lydspor'; + @override String get subtitlesButton => 'Undertekster'; + @override String get tracksButton => 'Lyd og undertekster'; + @override String get chaptersButton => 'Kapitler'; + @override String get versionsButton => 'Videoversjoner'; + @override String get pipButton => 'Bilde-i-bilde-modus'; + @override String get aspectRatioButton => 'Sideforhold'; + @override String get ambientLighting => 'Omgivelseslys'; + @override String get ambientLightingOn => 'Aktiver omgivelseslys'; + @override String get ambientLightingOff => 'Deaktiver omgivelseslys'; + @override String get fullscreenButton => 'Gå til fullskjerm'; + @override String get exitFullscreenButton => 'Avslutt fullskjerm'; + @override String get alwaysOnTopButton => 'Alltid øverst'; + @override String get rotationLockButton => 'Rotasjonslås'; + @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 late final _TranslationsVideoControlsPipErrorsNb pipErrors = _TranslationsVideoControlsPipErrorsNb._(_root); + @override String get chapters => 'Kapitler'; + @override String get noChaptersAvailable => 'Ingen kapitler tilgjengelig'; + @override String get queue => 'Kø'; + @override String get noQueueItems => 'Ingen elementer i kø'; +} + +// Path: userStatus +class _TranslationsUserStatusNb implements TranslationsUserStatusEn { + _TranslationsUserStatusNb._(this._root); + + final TranslationsNb _root; // ignore: unused_field + + // Translations + @override String get admin => 'Administrator'; + @override String get restricted => 'Begrenset'; + @override String get protected => 'Beskyttet'; + @override String get current => 'GJELDENDE'; +} + +// Path: messages +class _TranslationsMessagesNb implements TranslationsMessagesEn { + _TranslationsMessagesNb._(this._root); + + final TranslationsNb _root; // ignore: unused_field + + // Translations + @override String get markedAsWatched => 'Merket som sett'; + @override String get markedAsUnwatched => 'Merket som usett'; + @override String get markedAsWatchedOffline => 'Merket som sett (synkroniseres når tilkoblet)'; + @override String get markedAsUnwatchedOffline => 'Merket som usett (synkroniseres når tilkoblet)'; + @override String get removedFromContinueWatching => 'Fjernet fra Fortsett å se'; + @override String errorLoading({required Object error}) => 'Feil: ${error}'; + @override String get fileInfoNotAvailable => 'Filinformasjon ikke tilgjengelig'; + @override String errorLoadingFileInfo({required Object error}) => 'Feil ved lasting av filinformasjon: ${error}'; + @override String get errorLoadingSeries => 'Feil ved lasting av serie'; + @override String get errorLoadingSeason => 'Feil ved lasting av sesong'; + @override String get musicNotSupported => 'Musikkavspilling støttes ikke ennå'; + @override String get logsCleared => 'Logger tømt'; + @override String get logsCopied => 'Logger kopiert til utklippstavle'; + @override String get noLogsAvailable => 'Ingen logger tilgjengelig'; + @override String libraryScanning({required Object title}) => 'Skanner "${title}"...'; + @override String libraryScanStarted({required Object title}) => 'Bibliotekkanning startet for "${title}"'; + @override String libraryScanFailed({required Object error}) => 'Kunne ikke skanne bibliotek: ${error}'; + @override String metadataRefreshing({required Object title}) => 'Oppdaterer metadata for "${title}"...'; + @override String metadataRefreshStarted({required Object title}) => 'Metadataoppdatering startet for "${title}"'; + @override String metadataRefreshFailed({required Object error}) => 'Kunne ikke oppdatere metadata: ${error}'; + @override String get logoutConfirm => 'Er du sikker på at du vil logge ut?'; + @override String get noSeasonsFound => 'Ingen sesonger funnet'; + @override String get noEpisodesFound => 'Ingen episoder funnet i første sesong'; + @override String get noEpisodesFoundGeneral => 'Ingen episoder funnet'; + @override String get noResultsFound => 'Ingen resultater funnet'; + @override String sleepTimerSet({required Object label}) => 'Søvntimer 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}'; + @override String get switchingToCompatiblePlayer => 'Bytter til kompatibel spiller...'; + @override String get logsUploaded => 'Logger lastet opp'; + @override String get logsUploadFailed => 'Kunne ikke laste opp logger'; + @override String get logId => 'Logg-ID'; +} + +// Path: subtitlingStyling +class _TranslationsSubtitlingStylingNb implements TranslationsSubtitlingStylingEn { + _TranslationsSubtitlingStylingNb._(this._root); + + final TranslationsNb _root; // ignore: unused_field + + // Translations + @override String get stylingOptions => 'Stilalternativer'; + @override String get fontSize => 'Skriftstørrelse'; + @override String get textColor => 'Tekstfarge'; + @override String get borderSize => 'Kantstørrelse'; + @override String get borderColor => 'Kantfarge'; + @override String get backgroundOpacity => 'Bakgrunnsopasitet'; + @override String get backgroundColor => 'Bakgrunnsfarge'; + @override String get position => 'Posisjon'; +} + +// Path: mpvConfig +class _TranslationsMpvConfigNb implements TranslationsMpvConfigEn { + _TranslationsMpvConfigNb._(this._root); + + final TranslationsNb _root; // ignore: unused_field + + // Translations + @override String get title => 'mpv.conf'; + @override String get description => 'Avanserte videospillerinnstillinger'; + @override String get presets => 'Forhåndsinnstillinger'; + @override String get noPresets => 'Ingen lagrede forhåndsinnstillinger'; + @override String get saveAsPreset => 'Lagre som forhåndsinnstilling...'; + @override String get presetName => 'Forhåndsinnstillingsnavn'; + @override String get presetNameHint => 'Skriv inn et navn for denne forhåndsinnstillingen'; + @override String get loadPreset => 'Last inn'; + @override String get deletePreset => 'Slett'; + @override String get presetSaved => 'Forhåndsinnstilling lagret'; + @override String get presetLoaded => 'Forhåndsinnstilling lastet inn'; + @override String get presetDeleted => 'Forhåndsinnstilling slettet'; + @override String get confirmDeletePreset => 'Er du sikker på at du vil slette denne forhåndsinnstillingen?'; + @override String get configPlaceholder => 'gpu-api=vulkan\nhwdec=auto\n# kommentar'; +} + +// Path: dialog +class _TranslationsDialogNb implements TranslationsDialogEn { + _TranslationsDialogNb._(this._root); + + final TranslationsNb _root; // ignore: unused_field + + // Translations + @override String get confirmAction => 'Bekreft handling'; +} + +// Path: discover +class _TranslationsDiscoverNb implements TranslationsDiscoverEn { + _TranslationsDiscoverNb._(this._root); + + final TranslationsNb _root; // ignore: unused_field + + // Translations + @override String get title => 'Oppdag'; + @override String get switchProfile => 'Bytt profil'; + @override String get noContentAvailable => 'Ingen innhold tilgjengelig'; + @override String get addMediaToLibraries => 'Legg til medier i bibliotekene dine'; + @override String get continueWatching => 'Fortsett å se'; + @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 seasons => 'Sesonger'; + @override String get studio => 'Studio'; + @override String get rating => 'Vurdering'; + @override String episodeCount({required Object count}) => '${count} episoder'; + @override String watchedProgress({required Object watched, required Object total}) => '${watched}/${total} sett'; + @override String get movie => 'Film'; + @override String get tvShow => 'TV-serie'; + @override String minutesLeft({required Object minutes}) => '${minutes} min igjen'; +} + +// Path: errors +class _TranslationsErrorsNb implements TranslationsErrorsEn { + _TranslationsErrorsNb._(this._root); + + final TranslationsNb _root; // ignore: unused_field + + // Translations + @override String searchFailed({required Object error}) => 'Søk mislyktes: ${error}'; + @override String connectionTimeout({required Object context}) => 'Tidsavbrudd ved lasting av ${context}'; + @override String get connectionFailed => 'Kunne ikke koble til Plex-server'; + @override String failedToLoad({required Object context, required Object error}) => 'Kunne ikke laste ${context}: ${error}'; + @override String get noClientAvailable => 'Ingen klient tilgjengelig'; + @override String authenticationFailed({required Object error}) => 'Autentisering mislyktes: ${error}'; + @override String get couldNotLaunchUrl => 'Kunne ikke åpne autentiserings-URL'; + @override String get pleaseEnterToken => 'Vennligst skriv inn et token'; + @override String get invalidToken => 'Ugyldig token'; + @override String failedToVerifyToken({required Object error}) => 'Kunne ikke verifisere token: ${error}'; + @override String failedToSwitchProfile({required Object displayName}) => 'Kunne ikke bytte til ${displayName}'; +} + +// Path: libraries +class _TranslationsLibrariesNb implements TranslationsLibrariesEn { + _TranslationsLibrariesNb._(this._root); + + final TranslationsNb _root; // ignore: unused_field + + // Translations + @override String get title => 'Biblioteker'; + @override String get scanLibraryFiles => 'Skann bibliotekfiler'; + @override String get scanLibrary => 'Skann bibliotek'; + @override String get analyze => 'Analyser'; + @override String get analyzeLibrary => 'Analyser bibliotek'; + @override String get refreshMetadata => 'Oppdater metadata'; + @override String get emptyTrash => 'Tøm papirkurv'; + @override String emptyingTrash({required Object title}) => 'Tømmer papirkurv for "${title}"...'; + @override String trashEmptied({required Object title}) => 'Papirkurv tømt for "${title}"'; + @override String failedToEmptyTrash({required Object error}) => 'Kunne ikke tømme papirkurv: ${error}'; + @override String analyzing({required Object title}) => 'Analyserer "${title}"...'; + @override String analysisStarted({required Object title}) => 'Analyse startet for "${title}"'; + @override String failedToAnalyze({required Object error}) => 'Kunne ikke analysere bibliotek: ${error}'; + @override String get noLibrariesFound => 'Ingen biblioteker funnet'; + @override String get thisLibraryIsEmpty => 'Dette biblioteket er tomt'; + @override String get all => 'Alle'; + @override String get clearAll => 'Tøm alle'; + @override String scanLibraryConfirm({required Object title}) => 'Er du sikker på at du vil skanne "${title}"?'; + @override String analyzeLibraryConfirm({required Object title}) => 'Er du sikker på at du vil analysere "${title}"?'; + @override String refreshMetadataConfirm({required Object title}) => 'Er du sikker på at du vil oppdatere metadata for "${title}"?'; + @override String emptyTrashConfirm({required Object title}) => 'Er du sikker på at du vil tømme papirkurven for "${title}"?'; + @override String get manageLibraries => 'Administrer biblioteker'; + @override String get sort => 'Sorter'; + @override String get sortBy => 'Sorter etter'; + @override String get filters => 'Filtre'; + @override String get confirmActionMessage => 'Er du sikker på at du vil utføre denne handlingen?'; + @override String get showLibrary => 'Vis bibliotek'; + @override String get hideLibrary => 'Skjul bibliotek'; + @override String get libraryOptions => 'Bibliotekalternativer'; + @override String get content => 'bibliotekinnhold'; + @override String get selectLibrary => 'Velg bibliotek'; + @override String filtersWithCount({required Object count}) => 'Filtre (${count})'; + @override String get noRecommendations => 'Ingen anbefalinger tilgjengelig'; + @override String get noCollections => 'Ingen samlinger i dette biblioteket'; + @override String get noFoldersFound => 'Ingen mapper funnet'; + @override String get folders => 'mapper'; + @override late final _TranslationsLibrariesTabsNb tabs = _TranslationsLibrariesTabsNb._(_root); + @override late final _TranslationsLibrariesGroupingsNb groupings = _TranslationsLibrariesGroupingsNb._(_root); +} + +// Path: about +class _TranslationsAboutNb implements TranslationsAboutEn { + _TranslationsAboutNb._(this._root); + + final TranslationsNb _root; // ignore: unused_field + + // Translations + @override String get title => 'Om'; + @override String get openSourceLicenses => 'Åpen kildekode-lisenser'; + @override String versionLabel({required Object version}) => 'Versjon ${version}'; + @override String get appDescription => 'En vakker Plex-klient for Flutter'; + @override String get viewLicensesDescription => 'Vis lisenser for tredjepartsbiblioteker'; +} + +// Path: serverSelection +class _TranslationsServerSelectionNb implements TranslationsServerSelectionEn { + _TranslationsServerSelectionNb._(this._root); + + final TranslationsNb _root; // ignore: unused_field + + // Translations + @override String get allServerConnectionsFailed => 'Kunne ikke koble til noen servere. Sjekk nettverket ditt og prøv igjen.'; + @override String noServersFoundForAccount({required Object username, required Object email}) => 'Ingen servere funnet for ${username} (${email})'; + @override String failedToLoadServers({required Object error}) => 'Kunne ikke laste servere: ${error}'; +} + +// Path: hubDetail +class _TranslationsHubDetailNb implements TranslationsHubDetailEn { + _TranslationsHubDetailNb._(this._root); + + final TranslationsNb _root; // ignore: unused_field + + // Translations + @override String get title => 'Tittel'; + @override String get releaseYear => 'Utgivelsesår'; + @override String get dateAdded => 'Dato lagt til'; + @override String get rating => 'Vurdering'; + @override String get noItemsFound => 'Ingen elementer funnet'; +} + +// Path: logs +class _TranslationsLogsNb implements TranslationsLogsEn { + _TranslationsLogsNb._(this._root); + + final TranslationsNb _root; // ignore: unused_field + + // Translations + @override String get clearLogs => 'Tøm logger'; + @override String get copyLogs => 'Kopier logger'; + @override String get uploadLogs => 'Last opp logger'; + @override String get error => 'Feil:'; + @override String get stackTrace => 'Stabelsporing:'; +} + +// Path: licenses +class _TranslationsLicensesNb implements TranslationsLicensesEn { + _TranslationsLicensesNb._(this._root); + + final TranslationsNb _root; // ignore: unused_field + + // Translations + @override String get relatedPackages => 'Relaterte pakker'; + @override String get license => 'Lisens'; + @override String licenseNumber({required Object number}) => 'Lisens ${number}'; + @override String licensesCount({required Object count}) => '${count} lisenser'; +} + +// Path: navigation +class _TranslationsNavigationNb implements TranslationsNavigationEn { + _TranslationsNavigationNb._(this._root); + + final TranslationsNb _root; // ignore: unused_field + + // Translations + @override String get libraries => 'Biblioteker'; + @override String get downloads => 'Nedlastinger'; + @override String get liveTv => 'Direkte-TV'; +} + +// Path: liveTv +class _TranslationsLiveTvNb implements TranslationsLiveTvEn { + _TranslationsLiveTvNb._(this._root); + + final TranslationsNb _root; // ignore: unused_field + + // Translations + @override String get title => 'Direkte-TV'; + @override String get channels => 'Kanaler'; + @override String get guide => 'Programguide'; + @override String get noChannels => 'Ingen kanaler tilgjengelig'; + @override String get noDvr => 'Ingen DVR konfigurert på noen server'; + @override String get tuneFailed => 'Kunne ikke stille inn kanal'; + @override String get loading => 'Laster kanaler...'; + @override String get nowPlaying => 'Spilles nå'; + @override String get noPrograms => 'Ingen programdata tilgjengelig'; + @override String channelNumber({required Object number}) => 'Kanal ${number}'; + @override String get live => 'DIREKTE'; + @override String get hd => 'HD'; + @override String get premiere => 'NY'; + @override String get reloadGuide => 'Last inn programguide på nytt'; + @override String get allChannels => 'Alle kanaler'; + @override String get now => 'Nå'; + @override String get today => 'I dag'; + @override String get midnight => 'Midnatt'; + @override String get overnight => 'Natt'; + @override String get morning => 'Morgen'; + @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 watchChannel => 'Se kanal'; +} + +// Path: collections +class _TranslationsCollectionsNb implements TranslationsCollectionsEn { + _TranslationsCollectionsNb._(this._root); + + final TranslationsNb _root; // ignore: unused_field + + // Translations + @override String get title => 'Samlinger'; + @override String get collection => 'Samling'; + @override String get empty => 'Samlingen er tom'; + @override String get unknownLibrarySection => 'Kan ikke slette: Ukjent bibliotekseksjon'; + @override String get deleteCollection => 'Slett samling'; + @override String deleteConfirm({required Object title}) => 'Er du sikker på at du vil slette "${title}"? Denne handlingen kan ikke angres.'; + @override String get deleted => 'Samling slettet'; + @override String get deleteFailed => 'Kunne ikke slette samling'; + @override String deleteFailedWithError({required Object error}) => 'Kunne ikke slette samling: ${error}'; + @override String failedToLoadItems({required Object error}) => 'Kunne ikke laste samlingselementer: ${error}'; + @override String get selectCollection => 'Velg samling'; + @override String get collectionName => 'Samlingsnavn'; + @override String get enterCollectionName => 'Skriv inn samlingsnavn'; + @override String get addedToCollection => 'Lagt til i samling'; + @override String get errorAddingToCollection => 'Kunne ikke legge til i samling'; + @override String get created => 'Samling opprettet'; + @override String get removeFromCollection => 'Fjern fra samling'; + @override String removeFromCollectionConfirm({required Object title}) => 'Fjerne "${title}" fra denne samlingen?'; + @override String get removedFromCollection => 'Fjernet fra samling'; + @override String get removeFromCollectionFailed => 'Kunne ikke fjerne fra samling'; + @override String removeFromCollectionError({required Object error}) => 'Feil ved fjerning fra samling: ${error}'; +} + +// Path: playlists +class _TranslationsPlaylistsNb implements TranslationsPlaylistsEn { + _TranslationsPlaylistsNb._(this._root); + + final TranslationsNb _root; // ignore: unused_field + + // Translations + @override String get title => 'Spillelister'; + @override String get playlist => 'Spilleliste'; + @override String get noPlaylists => 'Ingen spillelister funnet'; + @override String get create => 'Opprett spilleliste'; + @override String get playlistName => 'Spillelistenavn'; + @override String get enterPlaylistName => 'Skriv inn spillelistenavn'; + @override String get delete => 'Slett spilleliste'; + @override String get removeItem => 'Fjern fra spilleliste'; + @override String get smartPlaylist => 'Smart spilleliste'; + @override String itemCount({required Object count}) => '${count} elementer'; + @override String get oneItem => '1 element'; + @override String get emptyPlaylist => 'Denne spillelisten er tom'; + @override String get deleteConfirm => 'Slett spilleliste?'; + @override String deleteMessage({required Object name}) => 'Er du sikker på at du vil slette "${name}"?'; + @override String get created => 'Spilleliste opprettet'; + @override String get deleted => 'Spilleliste slettet'; + @override String get itemAdded => 'Lagt til i spilleliste'; + @override String get itemRemoved => 'Fjernet fra spilleliste'; + @override String get selectPlaylist => 'Velg spilleliste'; + @override String get errorCreating => 'Kunne ikke opprette spilleliste'; + @override String get errorDeleting => 'Kunne ikke slette spilleliste'; + @override String get errorLoading => 'Kunne ikke laste spillelister'; + @override String get errorAdding => 'Kunne ikke legge til i spilleliste'; + @override String get errorReordering => 'Kunne ikke omorganisere spillelisteelement'; + @override String get errorRemoving => 'Kunne ikke fjerne fra spilleliste'; +} + +// Path: watchTogether +class _TranslationsWatchTogetherNb implements TranslationsWatchTogetherEn { + _TranslationsWatchTogetherNb._(this._root); + + final TranslationsNb _root; // ignore: unused_field + + // Translations + @override String get title => 'Se sammen'; + @override String get description => 'Se innhold synkronisert med venner og familie'; + @override String get createSession => 'Opprett økt'; + @override String get creating => 'Oppretter...'; + @override String get joinSession => 'Bli med i økt'; + @override String get joining => 'Blir med...'; + @override String get controlMode => 'Kontrollmodus'; + @override String get controlModeQuestion => 'Hvem kan kontrollere avspilling?'; + @override String get hostOnly => 'Kun vert'; + @override String get anyone => 'Alle'; + @override String get hostingSession => 'Er vert for økt'; + @override String get inSession => 'I økt'; + @override String get sessionCode => 'Øktkode'; + @override String get hostControlsPlayback => 'Verten kontrollerer avspilling'; + @override String get anyoneCanControl => 'Alle kan kontrollere avspilling'; + @override String get hostControls => 'Vertskontroll'; + @override String get anyoneControls => 'Alle kontrollerer'; + @override String get participants => 'Deltakere'; + @override String get host => 'Vert'; + @override String get hostBadge => 'VERT'; + @override String get youAreHost => 'Du er verten'; + @override String get watchingWithOthers => 'Ser med andre'; + @override String get endSession => 'Avslutt økt'; + @override String get leaveSession => 'Forlat økt'; + @override String get endSessionQuestion => 'Avslutte økt?'; + @override String get leaveSessionQuestion => 'Forlate økt?'; + @override String get endSessionConfirm => 'Dette vil avslutte økten for alle deltakere.'; + @override String get leaveSessionConfirm => 'Du vil bli fjernet fra økten.'; + @override String get endSessionConfirmOverlay => 'Dette vil avslutte se sammen-økten for alle deltakere.'; + @override String get leaveSessionConfirmOverlay => 'Du vil bli frakoblet fra se sammen-økten.'; + @override String get end => 'Avslutt'; + @override String get leave => 'Forlat'; + @override String get syncing => 'Synkroniserer...'; + @override String get joinWatchSession => 'Bli med i se sammen-økt'; + @override String get enterCodeHint => 'Skriv inn 8-tegns kode'; + @override String get pasteFromClipboard => 'Lim inn fra utklippstavle'; + @override String get pleaseEnterCode => 'Vennligst skriv inn en øktkode'; + @override String get codeMustBe8Chars => 'Øktkoden må være 8 tegn'; + @override String get joinInstructions => 'Skriv inn øktkoden delt av verten for å bli med i se sammen-økten.'; + @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 => 'Reléserveren er utilgjengelig. Dette kan skyldes at internettleverandøren din blokkerer tilkoblingen. Du kan fortsatt prøve, men Se sammen fungerer kanskje ikke.'; + @override String get reconnectingToHost => 'Kobler til verten på nytt...'; + @override String get currentPlayback => 'Gjeldende avspilling'; + @override String get joinCurrentPlayback => 'Bli med i gjeldende avspilling'; + @override String get joinCurrentPlaybackDescription => 'Hopp tilbake til det verten ser på nå'; + @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'; +} + +// Path: downloads +class _TranslationsDownloadsNb implements TranslationsDownloadsEn { + _TranslationsDownloadsNb._(this._root); + + final TranslationsNb _root; // ignore: unused_field + + // Translations + @override String get title => 'Nedlastinger'; + @override String get manage => 'Administrer'; + @override String get tvShows => 'TV-serier'; + @override String get movies => 'Filmer'; + @override String get noDownloads => 'Ingen nedlastinger ennå'; + @override String get noDownloadsDescription => 'Nedlastet innhold vil vises her for frakoblet visning'; + @override String get downloadNow => 'Last ned'; + @override String get deleteDownload => 'Slett nedlasting'; + @override String get retryDownload => 'Prøv nedlasting på nytt'; + @override String get downloadQueued => 'Nedlasting i kø'; + @override String episodesQueued({required Object count}) => '${count} episoder i nedlastingskø'; + @override String get downloadDeleted => 'Nedlasting slettet'; + @override String deleteConfirm({required Object title}) => 'Er du sikker på at du vil slette "${title}"? Dette vil fjerne den nedlastede filen fra enheten din.'; + @override String deletingWithProgress({required Object title, required Object current, required Object total}) => 'Sletter ${title}... (${current} av ${total})'; + @override String get noDownloadsTree => 'Ingen nedlastinger'; + @override String get pauseAll => 'Pause alle'; + @override String get resumeAll => 'Gjenoppta alle'; + @override String get deleteAll => 'Slett alle'; +} + +// Path: shaders +class _TranslationsShadersNb implements TranslationsShadersEn { + _TranslationsShadersNb._(this._root); + + final TranslationsNb _root; // ignore: unused_field + + // Translations + @override String get title => 'Shadere'; + @override String get noShaderDescription => 'Ingen videoforbedring'; + @override String get nvscalerDescription => 'NVIDIA bildeskalering for skarpere video'; + @override String get qualityFast => 'Rask'; + @override String get qualityHQ => 'Høy kvalitet'; + @override String get mode => 'Modus'; + @override String get importShader => 'Importer shader'; + @override String get customShaderDescription => 'Egendefinert GLSL-shader'; + @override String get shaderImported => 'Shader importert'; + @override String get shaderImportFailed => 'Kunne ikke importere shader'; + @override String get deleteShader => 'Slett shader'; + @override String deleteShaderConfirm({required Object name}) => 'Slette "${name}"?'; +} + +// Path: companionRemote +class _TranslationsCompanionRemoteNb implements TranslationsCompanionRemoteEn { + _TranslationsCompanionRemoteNb._(this._root); + + final TranslationsNb _root; // ignore: unused_field + + // Translations + @override String get title => 'Følgesvenn-fjernkontroll'; + @override String get connectToDevice => 'Koble til enhet'; + @override String get hostRemoteSession => 'Vær vert for fjernøkt'; + @override String get controlThisDevice => 'Kontroller denne enheten med telefonen din'; + @override String get remoteControl => 'Fjernkontroll'; + @override String get controlDesktop => 'Kontroller en stasjonær enhet'; + @override String connectedTo({required Object name}) => 'Tilkoblet ${name}'; + @override late final _TranslationsCompanionRemoteSessionNb session = _TranslationsCompanionRemoteSessionNb._(_root); + @override late final _TranslationsCompanionRemotePairingNb pairing = _TranslationsCompanionRemotePairingNb._(_root); + @override late final _TranslationsCompanionRemoteRemoteNb remote = _TranslationsCompanionRemoteRemoteNb._(_root); +} + +// Path: videoSettings +class _TranslationsVideoSettingsNb implements TranslationsVideoSettingsEn { + _TranslationsVideoSettingsNb._(this._root); + + final TranslationsNb _root; // ignore: unused_field + + // Translations + @override String get playbackSettings => 'Avspillingsinnstillinger'; + @override String get playbackSpeed => 'Avspillingshastighet'; + @override String get sleepTimer => 'Søvntimer'; + @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 audioNormalization => 'Lydnormalisering'; +} + +// Path: externalPlayer +class _TranslationsExternalPlayerNb implements TranslationsExternalPlayerEn { + _TranslationsExternalPlayerNb._(this._root); + + final TranslationsNb _root; // ignore: unused_field + + // Translations + @override String get title => 'Ekstern spiller'; + @override String get useExternalPlayer => 'Bruk ekstern spiller'; + @override String get useExternalPlayerDescription => 'Åpne videoer i en ekstern app i stedet for den innebygde spilleren'; + @override String get selectPlayer => 'Velg spiller'; + @override String get systemDefault => 'Systemstandard'; + @override String get addCustomPlayer => 'Legg til egendefinert spiller'; + @override String get playerName => 'Spillernavn'; + @override String get playerCommand => 'Kommando'; + @override String get playerPackage => 'Pakkenavn'; + @override String get playerUrlScheme => 'URL-skjema'; + @override String get customPlayer => 'Egendefinert spiller'; + @override String get off => 'Av'; + @override String get launchFailed => 'Kunne ikke åpne ekstern spiller'; + @override String appNotInstalled({required Object name}) => '${name} er ikke installert'; + @override String get playInExternalPlayer => 'Spill av i ekstern spiller'; +} + +// Path: metadataEdit +class _TranslationsMetadataEditNb implements TranslationsMetadataEditEn { + _TranslationsMetadataEditNb._(this._root); + + final TranslationsNb _root; // ignore: unused_field + + // 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 advancedSettings => 'Avanserte innstillinger'; + @override String get title => 'Tittel'; + @override String get sortTitle => 'Sorteringsstittel'; + @override String get originalTitle => 'Originaltittel'; + @override String get releaseDate => 'Utgivelsesdato'; + @override String get contentRating => 'Innholdsvurdering'; + @override String get studio => 'Studio'; + @override String get tagline => 'Slagord'; + @override String get summary => 'Sammendrag'; + @override String get poster => 'Plakat'; + @override String get background => 'Bakgrunn'; + @override String get selectPoster => 'Velg plakat'; + @override String get selectBackground => 'Velg bakgrunn'; + @override String get fromUrl => 'Fra URL'; + @override String get uploadFile => 'Last opp fil'; + @override String get enterImageUrl => 'Skriv inn bilde-URL'; + @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 get notSet => 'Ikke angitt'; + @override String get libraryDefault => 'Bibliotekstandard'; + @override String get accountDefault => 'Kontostandard'; + @override String get seriesDefault => 'Seriestandard'; + @override String get episodeSorting => 'Episodesortering'; + @override String get oldestFirst => 'Eldste først'; + @override String get newestFirst => 'Nyeste først'; + @override String get keep => 'Behold'; + @override String get allEpisodes => 'Alle episoder'; + @override String latestEpisodes({required Object count}) => '${count} nyeste episoder'; + @override String get latestEpisode => 'Nyeste episode'; + @override String episodesAddedPastDays({required Object count}) => 'Episoder lagt til de siste ${count} dagene'; + @override String get deleteAfterPlaying => 'Slett episoder etter avspilling'; + @override String get never => 'Aldri'; + @override String get afterADay => 'Etter en dag'; + @override String get afterAWeek => 'Etter en uke'; + @override String get afterAMonth => 'Etter en måned'; + @override String get onNextRefresh => 'Ved neste oppdatering'; + @override String get seasons => 'Sesonger'; + @override String get show => 'Vis'; + @override String get hide => 'Skjul'; + @override String get episodeOrdering => 'Episoderekkefølge'; + @override String get tmdbAiring => 'The Movie Database (Sendt)'; + @override String get tvdbAiring => 'TheTVDB (Sendt)'; + @override String get tvdbAbsolute => 'TheTVDB (Absolutt)'; + @override String get metadataLanguage => 'Metadataspråk'; + @override String get useOriginalTitle => 'Bruk originaltittel'; + @override String get preferredAudioLanguage => 'Foretrukket lydspråk'; + @override String get preferredSubtitleLanguage => 'Foretrukket undertekstspråk'; + @override String get subtitleMode => 'Automatisk valg av undertekstmodus'; + @override String get manuallySelected => 'Manuelt valgt'; + @override String get shownWithForeignAudio => 'Vist med fremmedspråklig lyd'; + @override String get alwaysEnabled => 'Alltid aktivert'; +} + +// Path: hotkeys.actions +class _TranslationsHotkeysActionsNb implements TranslationsHotkeysActionsEn { + _TranslationsHotkeysActionsNb._(this._root); + + final TranslationsNb _root; // ignore: unused_field + + // Translations + @override String get playPause => 'Spill av/Pause'; + @override String get volumeUp => 'Volum opp'; + @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 audioTrackNext => 'Neste lydspor'; + @override String get subtitleTrackNext => 'Neste undertekstspor'; + @override String get chapterNext => 'Neste kapittel'; + @override String get chapterPrevious => 'Forrige kapittel'; + @override String get speedIncrease => 'Øk hastighet'; + @override String get speedDecrease => 'Reduser hastighet'; + @override String get speedReset => 'Tilbakestill hastighet'; + @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 skipMarker => 'Hopp over intro/rulletekst'; +} + +// Path: videoControls.pipErrors +class _TranslationsVideoControlsPipErrorsNb implements TranslationsVideoControlsPipErrorsEn { + _TranslationsVideoControlsPipErrorsNb._(this._root); + + final TranslationsNb _root; // ignore: unused_field + + // Translations + @override String get androidVersion => 'Krever Android 8.0 eller nyere'; + @override String get iosVersion => 'Krever iOS 15.0 eller nyere'; + @override String get permissionDisabled => 'Bilde-i-bilde-tillatelse er deaktivert. Aktiver den i Innstillinger > Apper > Plezy > Bilde-i-bilde'; + @override String get notSupported => 'Enheten støtter ikke bilde-i-bilde-modus'; + @override String get voSwitchFailed => 'Kunne ikke bytte videoutgang for bilde-i-bilde'; + @override String get failed => 'Bilde-i-bilde kunne ikke starte'; + @override String unknown({required Object error}) => 'En feil oppstod: ${error}'; +} + +// Path: libraries.tabs +class _TranslationsLibrariesTabsNb implements TranslationsLibrariesTabsEn { + _TranslationsLibrariesTabsNb._(this._root); + + final TranslationsNb _root; // ignore: unused_field + + // Translations + @override String get recommended => 'Anbefalt'; + @override String get browse => 'Bla gjennom'; + @override String get collections => 'Samlinger'; + @override String get playlists => 'Spillelister'; +} + +// Path: libraries.groupings +class _TranslationsLibrariesGroupingsNb implements TranslationsLibrariesGroupingsEn { + _TranslationsLibrariesGroupingsNb._(this._root); + + final TranslationsNb _root; // ignore: unused_field + + // Translations + @override String get all => 'Alle'; + @override String get movies => 'Filmer'; + @override String get shows => 'TV-serier'; + @override String get seasons => 'Sesonger'; + @override String get episodes => 'Episoder'; + @override String get folders => 'Mapper'; +} + +// Path: companionRemote.session +class _TranslationsCompanionRemoteSessionNb implements TranslationsCompanionRemoteSessionEn { + _TranslationsCompanionRemoteSessionNb._(this._root); + + final TranslationsNb _root; // ignore: unused_field + + // Translations + @override String get creatingSession => 'Oppretter fjernøkt...'; + @override String get failedToCreate => 'Kunne ikke opprette fjernøkt:'; + @override String get noSession => 'Ingen økt tilgjengelig'; + @override String get scanQrCode => 'Skann QR-kode'; + @override String get orEnterManually => 'Eller skriv inn manuelt'; + @override String get hostAddress => 'Vertsadresse'; + @override String get sessionId => 'Økt-ID'; + @override String get pin => 'PIN'; + @override String get connected => 'Tilkoblet'; + @override String get waitingForConnection => 'Venter på tilkobling...'; + @override String get usePhoneToControl => 'Bruk mobilenheten din til å kontrollere denne appen'; + @override String copiedToClipboard({required Object label}) => '${label} kopiert til utklippstavle'; + @override String get copyToClipboard => 'Kopier til utklippstavle'; + @override String get newSession => 'Ny økt'; + @override String get minimize => 'Minimer'; +} + +// Path: companionRemote.pairing +class _TranslationsCompanionRemotePairingNb implements TranslationsCompanionRemotePairingEn { + _TranslationsCompanionRemotePairingNb._(this._root); + + final TranslationsNb _root; // ignore: unused_field + + // Translations + @override String get scan => 'Skann'; + @override String get manual => 'Manuell'; + @override String get pairWithDesktop => 'Koble til stasjonær'; + @override String get enterSessionDetails => 'Skriv inn øktdetaljene som vises på den stasjonære enheten din'; + @override String get hostAddressHint => '192.168.1.100:48632'; + @override String get sessionIdHint => 'Skriv inn 8-tegns økt-ID'; + @override String get pinHint => 'Skriv inn 6-sifret PIN'; + @override String get connecting => 'Kobler til...'; + @override String get tips => 'Tips'; + @override String get tipDesktop => 'Åpne Plezy på datamaskinen din og aktiver Følgesvenn-fjernkontroll fra innstillinger eller meny'; + @override String get tipScan => 'Bruk Skann-fanen for å raskt koble til ved å skanne QR-koden på datamaskinen din'; + @override String get tipWifi => 'Sørg for at begge enhetene er på samme WiFi-nettverk'; + @override String get cameraPermissionRequired => 'Kameratillatelse kreves for å skanne QR-koder.\nVennligst gi kameratilgang i enhetsinnstillingene.'; + @override String cameraError({required Object error}) => 'Kunne ikke starte kamera: ${error}'; + @override String get scanInstruction => 'Pek kameraet mot QR-koden som vises på datamaskinen din'; + @override String get invalidQrCode => 'Ugyldig QR-kodeformat'; + @override String get validationHostRequired => 'Vennligst skriv inn vertsadresse'; + @override String get validationHostFormat => 'Formatet må være IP:port (f.eks. 192.168.1.100:48632)'; + @override String get validationSessionIdRequired => 'Vennligst skriv inn en økt-ID'; + @override String get validationSessionIdLength => 'Økt-ID må være 8 tegn'; + @override String get validationPinRequired => 'Vennligst skriv inn en PIN'; + @override String get validationPinLength => 'PIN må være 6 sifre'; + @override String get connectionTimedOut => 'Tilkoblingen ble tidsavbrutt. Sjekk økt-ID og PIN.'; + @override String get sessionNotFound => 'Kunne ikke finne økten. Sjekk legitimasjonen din.'; + @override String failedToConnect({required Object error}) => 'Kunne ikke koble til: ${error}'; +} + +// Path: companionRemote.remote +class _TranslationsCompanionRemoteRemoteNb implements TranslationsCompanionRemoteRemoteEn { + _TranslationsCompanionRemoteRemoteNb._(this._root); + + final TranslationsNb _root; // ignore: unused_field + + // Translations + @override String get disconnectConfirm => 'Vil du koble fra fjernøkten?'; + @override String get reconnecting => 'Kobler til på nytt...'; + @override String attemptOf({required Object current}) => 'Forsøk ${current} av 5'; + @override String get retryNow => 'Prøv nå'; + @override String get connectionError => 'Tilkoblingsfeil'; + @override String get notConnected => 'Ikke tilkoblet'; + @override String get tabRemote => 'Fjernkontroll'; + @override String get tabPlay => 'Spill av'; + @override String get tabMore => 'Mer'; + @override String get menu => 'Meny'; + @override String get tabNavigation => 'Fanenavigering'; + @override String get tabDiscover => 'Oppdag'; + @override String get tabLibraries => 'Biblioteker'; + @override String get tabSearch => 'Søk'; + @override String get tabDownloads => 'Nedlastinger'; + @override String get tabSettings => 'Innstillinger'; + @override String get previous => 'Forrige'; + @override String get playPause => 'Spill av/Pause'; + @override String get next => 'Neste'; + @override String get seekBack => 'Spol tilbake'; + @override String get stop => 'Stopp'; + @override String get seekForward => 'Spol fremover'; + @override String get volume => 'Volum'; + @override String get volumeDown => 'Ned'; + @override String get volumeUp => 'Opp'; + @override String get fullscreen => 'Fullskjerm'; + @override String get subtitles => 'Undertekster'; + @override String get audio => 'Lyd'; + @override String get searchHint => 'Søk på stasjonær...'; +} + +/// 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 TranslationsNb { + dynamic _flatMapFunction(String path) { + return switch (path) { + 'app.title' => 'Plezy', + 'auth.signInWithPlex' => 'Logg inn med Plex', + 'auth.showQRCode' => 'Vis QR-kode', + 'auth.authenticate' => 'Autentiser', + 'auth.debugEnterToken' => 'Feilsøking: Skriv inn Plex-token', + 'auth.plexTokenLabel' => 'Plex Auth-token', + 'auth.plexTokenHint' => 'Skriv inn Plex.tv-tokenet ditt', + 'auth.authenticationTimeout' => 'Autentiseringen ble tidsavbrutt. Prøv igjen.', + 'auth.scanQRToSignIn' => 'Skann denne QR-koden for å logge inn', + 'auth.waitingForAuth' => 'Venter på autentisering...\nFullfør innloggingen i nettleseren din.', + 'auth.useBrowser' => 'Bruk nettleser', + 'common.cancel' => 'Avbryt', + 'common.save' => 'Lagre', + 'common.close' => 'Lukk', + 'common.clear' => 'Tøm', + 'common.reset' => 'Tilbakestill', + 'common.later' => 'Senere', + 'common.submit' => 'Send inn', + 'common.confirm' => 'Bekreft', + 'common.retry' => 'Prøv igjen', + 'common.logout' => 'Logg ut', + 'common.unknown' => 'Ukjent', + 'common.refresh' => 'Oppdater', + 'common.yes' => 'Ja', + 'common.no' => 'Nei', + 'common.delete' => 'Slett', + 'common.shuffle' => 'Tilfeldig', + 'common.addTo' => 'Legg til i...', + 'common.createNew' => 'Opprett ny', + 'common.remove' => 'Fjern', + 'common.paste' => 'Lim inn', + 'common.connect' => 'Koble til', + 'common.disconnect' => 'Koble fra', + 'common.play' => 'Spill av', + 'common.pause' => 'Pause', + 'common.resume' => 'Gjenoppta', + 'common.error' => 'Feil', + 'common.search' => 'Søk', + 'common.home' => 'Hjem', + 'common.back' => 'Tilbake', + 'common.settings' => 'Innstillinger', + 'common.mute' => 'Demp', + 'common.ok' => 'OK', + 'common.loading' => 'Laster...', + 'common.reconnect' => 'Koble til på nytt', + 'common.exitConfirmTitle' => 'Avslutte appen?', + 'common.exitConfirmMessage' => 'Er du sikker på at du vil avslutte?', + 'common.dontAskAgain' => 'Ikke spør igjen', + 'common.exit' => 'Avslutt', + 'common.viewAll' => 'Vis alle', + 'common.checkingNetwork' => 'Sjekker nettverk...', + 'common.refreshingServers' => 'Oppdaterer servere...', + 'common.loadingServers' => 'Laster servere...', + 'common.connectingToServers' => 'Kobler til servere...', + 'common.startingOfflineMode' => 'Starter frakoblet modus...', + 'screens.licenses' => 'Lisenser', + 'screens.switchProfile' => 'Bytt profil', + 'screens.subtitleStyling' => 'Undertekststil', + 'screens.mpvConfig' => 'mpv.conf', + 'screens.logs' => 'Logger', + 'update.available' => 'Oppdatering tilgjengelig', + 'update.versionAvailable' => ({required Object version}) => 'Versjon ${version} er tilgjengelig', + 'update.currentVersion' => ({required Object version}) => 'Gjeldende: ${version}', + 'update.skipVersion' => 'Hopp over denne versjonen', + 'update.viewRelease' => 'Vis utgivelse', + 'update.latestVersion' => 'Du har den nyeste versjonen', + 'update.checkFailed' => 'Kunne ikke se etter oppdateringer', + 'settings.title' => 'Innstillinger', + 'settings.language' => 'Språk', + 'settings.theme' => 'Tema', + 'settings.appearance' => 'Utseende', + 'settings.videoPlayback' => 'Videoavspilling', + 'settings.advanced' => 'Avansert', + 'settings.episodePosterMode' => 'Episodeplakatstil', + 'settings.seriesPoster' => 'Serieplakat', + 'settings.seriesPosterDescription' => 'Vis serieplakaten for alle episoder', + 'settings.seasonPoster' => 'Sesongplakat', + 'settings.seasonPosterDescription' => 'Vis den sesongspesifikke plakaten for episoder', + 'settings.episodeThumbnail' => 'Episodeminiatyrbilde', + 'settings.episodeThumbnailDescription' => 'Vis 16:9 episodeskjermbilder som miniatyrbilder', + 'settings.showHeroSectionDescription' => 'Vis fremhevet innholdskarusell på hjemmeskjermen', + 'settings.secondsLabel' => 'Sekunder', + 'settings.minutesLabel' => 'Minutter', + 'settings.secondsShort' => 's', + 'settings.minutesShort' => 'm', + 'settings.durationHint' => ({required Object min, required Object max}) => 'Angi varighet (${min}-${max})', + 'settings.systemTheme' => 'System', + 'settings.systemThemeDescription' => 'Følg systeminnstillinger', + 'settings.lightTheme' => 'Lyst', + 'settings.darkTheme' => 'Mørkt', + 'settings.oledTheme' => 'OLED', + 'settings.oledThemeDescription' => 'Helsvart for OLED-skjermer', + 'settings.libraryDensity' => 'Bibliotekets tetthet', + 'settings.compact' => 'Kompakt', + 'settings.compactDescription' => 'Mindre kort, flere elementer synlige', + 'settings.normal' => 'Normal', + 'settings.normalDescription' => 'Standard størrelse', + 'settings.comfortable' => 'Komfortabel', + 'settings.comfortableDescription' => 'Større kort, færre elementer synlige', + 'settings.viewMode' => 'Visningsmodus', + 'settings.gridView' => 'Rutenett', + 'settings.gridViewDescription' => 'Vis elementer i rutenettoppsett', + 'settings.listView' => 'Liste', + 'settings.listViewDescription' => 'Vis elementer i listeoppsett', + 'settings.showHeroSection' => 'Vis fremhevet seksjon', + 'settings.useGlobalHubs' => 'Bruk Plex Home-layout', + 'settings.useGlobalHubsDescription' => 'Vis hjemmeside-huber som den offisielle Plex-klienten. Når av, vises per-bibliotek-anbefalinger i stedet.', + 'settings.showServerNameOnHubs' => 'Vis servernavn på huber', + 'settings.showServerNameOnHubsDescription' => 'Vis alltid servernavnet i hubtitler. Når av, vises kun for dupliserte hubnavn.', + 'settings.alwaysKeepSidebarOpen' => 'Hold sidefeltet alltid åpent', + 'settings.alwaysKeepSidebarOpenDescription' => 'Sidefeltet forblir utvidet og innholdsområdet tilpasser seg', + 'settings.showUnwatchedCount' => 'Vis antall usette', + 'settings.showUnwatchedCountDescription' => 'Vis antall usette episoder på serier og sesonger', + 'settings.hideSpoilers' => 'Skjul spoilere for usette episoder', + 'settings.hideSpoilersDescription' => 'Slør miniatyrbilder og skjul beskrivelser for episoder du ikke har sett ennå', + 'settings.playerBackend' => 'Spillermotor', + 'settings.exoPlayer' => 'ExoPlayer (Anbefalt)', + 'settings.exoPlayerDescription' => 'Android-innebygd spiller med bedre maskinvarestøtte', + 'settings.mpv' => 'mpv', + 'settings.mpvDescription' => 'Avansert spiller med flere funksjoner og ASS-undertekststøtte', + '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}) => 'Enheten din har ${heap}MB minne. En ${size}MB buffer kan forårsake avspillingsproblemer.', + 'settings.subtitleStyling' => 'Undertekststil', + 'settings.subtitleStylingDescription' => 'Tilpass utseendet på undertekster', + 'settings.smallSkipDuration' => 'Kort hoppvarighet', + 'settings.largeSkipDuration' => 'Lang hoppvarighet', + 'settings.secondsUnit' => ({required Object seconds}) => '${seconds} sekunder', + 'settings.defaultSleepTimer' => 'Standard søvntimer', + 'settings.minutesUnit' => ({required Object minutes}) => '${minutes} minutter', + 'settings.rememberTrackSelections' => 'Husk sporvalg per serie/film', + 'settings.rememberTrackSelectionsDescription' => 'Lagre automatisk lyd- og undertekstspråkpreferanser når du bytter spor under avspilling', + 'settings.clickVideoTogglesPlayback' => 'Klikk på video for å veksle avspilling', + 'settings.clickVideoTogglesPlaybackDescription' => 'Hvis aktivert, vil klikk på videospilleren spille av/pause videoen. Ellers vil klikk vise/skjule avspillingskontrollene.', + 'settings.videoPlayerControls' => 'Videospillerkontroller', + 'settings.keyboardShortcuts' => 'Tastatursnarveier', + 'settings.keyboardShortcutsDescription' => 'Tilpass tastatursnarveier', + 'settings.videoPlayerNavigation' => 'Videospillernavigering', + 'settings.videoPlayerNavigationDescription' => 'Bruk piltaster for å navigere videospillerkontroller', + 'settings.crashReporting' => 'Krasjrapportering', + 'settings.crashReportingDescription' => 'Send krasjrapporter for å hjelpe med å forbedre appen', + 'settings.debugLogging' => 'Feilsøkingslogging', + 'settings.debugLoggingDescription' => 'Aktiver detaljert logging for feilsøking', + 'settings.viewLogs' => 'Vis logger', + 'settings.viewLogsDescription' => 'Vis applikasjonslogger', + 'settings.clearCache' => 'Tøm hurtigbuffer', + 'settings.clearCacheDescription' => 'Dette vil tømme alle hurtigbufrede bilder og data. Appen kan bruke lengre tid på å laste innhold etter tømming.', + 'settings.clearCacheSuccess' => 'Hurtigbuffer tømt', + 'settings.resetSettings' => 'Tilbakestill innstillinger', + 'settings.resetSettingsDescription' => 'Dette vil tilbakestille alle innstillinger til standardverdier. Denne handlingen kan ikke angres.', + 'settings.resetSettingsSuccess' => 'Innstillinger tilbakestilt', + 'settings.shortcutsReset' => 'Snarveier tilbakestilt til standard', + 'settings.about' => 'Om', + 'settings.aboutDescription' => 'Appinformasjon og lisenser', + 'settings.updates' => 'Oppdateringer', + 'settings.updateAvailable' => 'Oppdatering tilgjengelig', + 'settings.checkForUpdates' => 'Se etter oppdateringer', + 'settings.validationErrorEnterNumber' => 'Vennligst skriv inn et gyldig tall', + '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.autoSkip' => 'Automatisk hopp', + 'settings.autoSkipIntro' => 'Hopp over intro automatisk', + 'settings.autoSkipIntroDescription' => 'Hopp automatisk over intromarkører etter noen sekunder', + 'settings.autoSkipCredits' => 'Hopp over rulletekst automatisk', + 'settings.autoSkipCreditsDescription' => 'Hopp automatisk over rulletekst og spill neste episode', + 'settings.autoSkipDelay' => 'Forsinkelse for automatisk hopp', + 'settings.autoSkipDelayDescription' => ({required Object seconds}) => 'Vent ${seconds} sekunder før automatisk hopping', + 'settings.downloads' => 'Nedlastinger', + 'settings.downloadLocationDescription' => 'Velg hvor nedlastet innhold skal lagres', + 'settings.downloadLocationDefault' => 'Standard (App-lagring)', + 'settings.downloadLocationCustom' => 'Egendefinert plassering', + 'settings.selectFolder' => 'Velg mappe', + 'settings.resetToDefault' => 'Tilbakestill til standard', + 'settings.currentPath' => ({required Object path}) => 'Gjeldende: ${path}', + 'settings.downloadLocationChanged' => 'Nedlastingsplassering endret', + 'settings.downloadLocationReset' => 'Nedlastingsplassering tilbakestilt til standard', + 'settings.downloadLocationInvalid' => 'Valgt mappe er ikke skrivbar', + 'settings.downloadLocationSelectError' => 'Kunne ikke velge mappe', + 'settings.downloadOnWifiOnly' => 'Last ned kun på WiFi', + 'settings.downloadOnWifiOnlyDescription' => 'Forhindre nedlastinger på mobildata', + 'settings.cellularDownloadBlocked' => 'Nedlastinger er deaktivert på mobildata. Koble til WiFi eller endre innstillingen.', + 'settings.maxVolume' => 'Maks volum', + 'settings.maxVolumeDescription' => 'Tillat volumforsterkning over 100% for stille media', + 'settings.maxVolumePercent' => ({required Object percent}) => '${percent}%', + 'settings.discordRichPresence' => 'Discord Rich Presence', + 'settings.discordRichPresenceDescription' => 'Vis hva du ser på Discord', + 'settings.autoPip' => 'Auto bilde-i-bilde', + 'settings.autoPipDescription' => 'Gå automatisk til bilde-i-bilde når du forlater appen under avspilling', + 'settings.matchContentFrameRate' => 'Tilpass innholdets bildefrekvens', + 'settings.matchContentFrameRateDescription' => 'Juster skjermens oppdateringsfrekvens for å matche videoinnhold, reduserer hakking og sparer batteri', + 'settings.tunneledPlayback' => 'Tunnelert avspilling', + 'settings.tunneledPlaybackDescription' => 'Bruk maskinvareakselerert videotunnelering. Deaktiver hvis du ser svart skjerm med lyd på HDR-innhold', + 'settings.requireProfileSelectionOnOpen' => 'Spør om profil ved appåpning', + 'settings.requireProfileSelectionOnOpenDescription' => 'Vis profilvalg hver gang appen åpnes', + 'settings.confirmExitOnBack' => 'Bekreft før avslutning', + 'settings.confirmExitOnBackDescription' => 'Vis en bekreftelsesdialog når du trykker tilbake for å avslutte appen', + 'settings.showNavBarLabels' => 'Vis navigasjonsfeltlabeler', + 'settings.showNavBarLabelsDescription' => 'Vis tekstlabeler under navigasjonsfeltikoner', + 'search.hint' => 'Søk i filmer, serier, musikk...', + 'search.tryDifferentTerm' => 'Prøv et annet søkeord', + 'search.searchYourMedia' => 'Søk i mediene dine', + 'search.enterTitleActorOrKeyword' => 'Skriv inn tittel, skuespiller eller nøkkelord', + 'hotkeys.setShortcutFor' => ({required Object actionName}) => 'Angi snarvei for ${actionName}', + 'hotkeys.clearShortcut' => 'Fjern snarvei', + 'hotkeys.actions.playPause' => 'Spill av/Pause', + 'hotkeys.actions.volumeUp' => 'Volum opp', + '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.audioTrackNext' => 'Neste lydspor', + 'hotkeys.actions.subtitleTrackNext' => 'Neste undertekstspor', + 'hotkeys.actions.chapterNext' => 'Neste kapittel', + 'hotkeys.actions.chapterPrevious' => 'Forrige kapittel', + 'hotkeys.actions.speedIncrease' => 'Øk hastighet', + 'hotkeys.actions.speedDecrease' => 'Reduser hastighet', + 'hotkeys.actions.speedReset' => 'Tilbakestill hastighet', + 'hotkeys.actions.subSeekNext' => 'Spol til neste undertekst', + 'hotkeys.actions.subSeekPrev' => 'Spol til forrige undertekst', + 'hotkeys.actions.shaderToggle' => 'Veksle shadere', + 'hotkeys.actions.skipMarker' => 'Hopp over intro/rulletekst', + 'pinEntry.enterPin' => 'Skriv inn PIN', + 'pinEntry.showPin' => 'Vis PIN', + 'pinEntry.hidePin' => 'Skjul PIN', + 'fileInfo.title' => 'Filinformasjon', + 'fileInfo.video' => 'Video', + 'fileInfo.audio' => 'Lyd', + 'fileInfo.file' => 'Fil', + 'fileInfo.advanced' => 'Avansert', + 'fileInfo.codec' => 'Kodek', + 'fileInfo.resolution' => 'Oppløsning', + 'fileInfo.bitrate' => 'Bitrate', + 'fileInfo.frameRate' => 'Bildefrekvens', + 'fileInfo.aspectRatio' => 'Sideforhold', + 'fileInfo.profile' => 'Profil', + 'fileInfo.bitDepth' => 'Bitdybde', + 'fileInfo.colorSpace' => 'Fargerom', + 'fileInfo.colorRange' => 'Fargeområde', + 'fileInfo.colorPrimaries' => 'Fargeprimærer', + 'fileInfo.chromaSubsampling' => 'Krominansnedsampling', + 'fileInfo.channels' => 'Kanaler', + 'fileInfo.path' => 'Sti', + 'fileInfo.size' => 'Størrelse', + 'fileInfo.container' => 'Beholder', + 'fileInfo.duration' => 'Varighet', + 'fileInfo.optimizedForStreaming' => 'Optimalisert for strømming', + 'fileInfo.has64bitOffsets' => '64-biters forskyvninger', + 'mediaMenu.markAsWatched' => 'Merk som sett', + 'mediaMenu.markAsUnwatched' => 'Merk som usett', + 'mediaMenu.removeFromContinueWatching' => 'Fjern fra Fortsett å se', + 'mediaMenu.goToSeries' => 'Gå til serie', + 'mediaMenu.goToSeason' => 'Gå til sesong', + 'mediaMenu.shufflePlay' => 'Tilfeldig avspilling', + 'mediaMenu.fileInfo' => 'Filinformasjon', + 'mediaMenu.deleteFromServer' => 'Slett fra server', + 'mediaMenu.confirmDelete' => 'Dette vil permanent slette dette mediet og filene fra serveren din. Dette kan ikke angres.', + 'mediaMenu.deleteMultipleWarning' => 'Dette inkluderer alle episoder og deres filer.', + 'mediaMenu.mediaDeletedSuccessfully' => 'Medieelement slettet', + 'mediaMenu.mediaFailedToDelete' => 'Kunne ikke slette medieelement', + 'mediaMenu.rate' => 'Vurder', + '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}', + 'accessibility.mediaCardSeason' => ({required Object title, required Object seasonInfo}) => '${title}, ${seasonInfo}', + 'accessibility.mediaCardWatched' => 'sett', + 'accessibility.mediaCardPartiallyWatched' => ({required Object percent}) => '${percent} prosent sett', + 'accessibility.mediaCardUnwatched' => 'usett', + 'accessibility.tapToPlay' => 'Trykk for å spille', + 'tooltips.shufflePlay' => 'Tilfeldig avspilling', + 'tooltips.playTrailer' => 'Spill trailer', + 'tooltips.markAsWatched' => 'Merk som sett', + 'tooltips.markAsUnwatched' => 'Merk som usett', + 'videoControls.audioLabel' => 'Lyd', + 'videoControls.subtitlesLabel' => 'Undertekster', + 'videoControls.resetToZero' => 'Tilbakestill til 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} spilles senere', + 'videoControls.playsEarlier' => ({required Object label}) => '${label} spilles tidligere', + 'videoControls.noOffset' => 'Ingen forskyvning', + 'videoControls.letterbox' => 'Letterbox', + 'videoControls.fillScreen' => 'Fyll skjerm', + 'videoControls.stretch' => 'Strekk', + '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.sleepTimerCompleted' => 'Søvntimer fullført – avspilling satt på pause', + 'videoControls.stillWatching' => 'Ser du fortsatt?', + 'videoControls.pausingIn' => ({required Object seconds}) => 'Pauser om ${seconds}s', + 'videoControls.continueWatching' => 'Fortsett', + 'videoControls.autoPlayNext' => 'Spill neste automatisk', + 'videoControls.playNext' => 'Spill neste', + 'videoControls.playButton' => 'Spill av', + 'videoControls.pauseButton' => 'Pause', + 'videoControls.seekBackwardButton' => ({required Object seconds}) => 'Spol tilbake ${seconds} sekunder', + 'videoControls.seekForwardButton' => ({required Object seconds}) => 'Spol fremover ${seconds} sekunder', + 'videoControls.previousButton' => 'Forrige episode', + 'videoControls.nextButton' => 'Neste episode', + 'videoControls.previousChapterButton' => 'Forrige kapittel', + 'videoControls.nextChapterButton' => 'Neste kapittel', + 'videoControls.muteButton' => 'Demp', + 'videoControls.unmuteButton' => 'Opphev demping', + 'videoControls.settingsButton' => 'Videoinnstillinger', + 'videoControls.audioTrackButton' => 'Lydspor', + 'videoControls.subtitlesButton' => 'Undertekster', + 'videoControls.tracksButton' => 'Lyd og undertekster', + 'videoControls.chaptersButton' => 'Kapitler', + 'videoControls.versionsButton' => 'Videoversjoner', + 'videoControls.pipButton' => 'Bilde-i-bilde-modus', + 'videoControls.aspectRatioButton' => 'Sideforhold', + 'videoControls.ambientLighting' => 'Omgivelseslys', + 'videoControls.ambientLightingOn' => 'Aktiver omgivelseslys', + 'videoControls.ambientLightingOff' => 'Deaktiver omgivelseslys', + 'videoControls.fullscreenButton' => 'Gå til fullskjerm', + 'videoControls.exitFullscreenButton' => 'Avslutt fullskjerm', + 'videoControls.alwaysOnTopButton' => 'Alltid øverst', + 'videoControls.rotationLockButton' => 'Rotasjonslås', + '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.pipErrors.androidVersion' => 'Krever Android 8.0 eller nyere', + 'videoControls.pipErrors.iosVersion' => 'Krever iOS 15.0 eller nyere', + 'videoControls.pipErrors.permissionDisabled' => 'Bilde-i-bilde-tillatelse er deaktivert. Aktiver den i Innstillinger > Apper > Plezy > Bilde-i-bilde', + 'videoControls.pipErrors.notSupported' => 'Enheten støtter ikke bilde-i-bilde-modus', + 'videoControls.pipErrors.voSwitchFailed' => 'Kunne ikke bytte videoutgang for bilde-i-bilde', + 'videoControls.pipErrors.failed' => 'Bilde-i-bilde kunne ikke starte', + 'videoControls.pipErrors.unknown' => ({required Object error}) => 'En feil oppstod: ${error}', + 'videoControls.chapters' => 'Kapitler', + 'videoControls.noChaptersAvailable' => 'Ingen kapitler tilgjengelig', + 'videoControls.queue' => 'Kø', + 'videoControls.noQueueItems' => 'Ingen elementer i kø', + 'userStatus.admin' => 'Administrator', + 'userStatus.restricted' => 'Begrenset', + 'userStatus.protected' => 'Beskyttet', + 'userStatus.current' => 'GJELDENDE', + '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)', + 'messages.removedFromContinueWatching' => 'Fjernet fra Fortsett å se', + 'messages.errorLoading' => ({required Object error}) => 'Feil: ${error}', + 'messages.fileInfoNotAvailable' => 'Filinformasjon ikke tilgjengelig', + 'messages.errorLoadingFileInfo' => ({required Object error}) => 'Feil ved lasting av filinformasjon: ${error}', + 'messages.errorLoadingSeries' => 'Feil ved lasting av serie', + 'messages.errorLoadingSeason' => 'Feil ved lasting av sesong', + 'messages.musicNotSupported' => 'Musikkavspilling støttes ikke ennå', + 'messages.logsCleared' => 'Logger tømt', + 'messages.logsCopied' => 'Logger kopiert til utklippstavle', + 'messages.noLogsAvailable' => 'Ingen logger tilgjengelig', + 'messages.libraryScanning' => ({required Object title}) => 'Skanner "${title}"...', + 'messages.libraryScanStarted' => ({required Object title}) => 'Bibliotekkanning startet for "${title}"', + 'messages.libraryScanFailed' => ({required Object error}) => 'Kunne ikke skanne bibliotek: ${error}', + 'messages.metadataRefreshing' => ({required Object title}) => 'Oppdaterer metadata for "${title}"...', + 'messages.metadataRefreshStarted' => ({required Object title}) => 'Metadataoppdatering startet for "${title}"', + 'messages.metadataRefreshFailed' => ({required Object error}) => 'Kunne ikke oppdatere metadata: ${error}', + 'messages.logoutConfirm' => 'Er du sikker på at du vil logge ut?', + 'messages.noSeasonsFound' => 'Ingen sesonger funnet', + 'messages.noEpisodesFound' => 'Ingen episoder funnet i første sesong', + 'messages.noEpisodesFoundGeneral' => 'Ingen episoder funnet', + 'messages.noResultsFound' => 'Ingen resultater funnet', + 'messages.sleepTimerSet' => ({required Object label}) => 'Søvntimer 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}', + 'messages.switchingToCompatiblePlayer' => 'Bytter til kompatibel spiller...', + 'messages.logsUploaded' => 'Logger lastet opp', + 'messages.logsUploadFailed' => 'Kunne ikke laste opp logger', + 'messages.logId' => 'Logg-ID', + 'subtitlingStyling.stylingOptions' => 'Stilalternativer', + 'subtitlingStyling.fontSize' => 'Skriftstørrelse', + 'subtitlingStyling.textColor' => 'Tekstfarge', + 'subtitlingStyling.borderSize' => 'Kantstørrelse', + 'subtitlingStyling.borderColor' => 'Kantfarge', + 'subtitlingStyling.backgroundOpacity' => 'Bakgrunnsopasitet', + 'subtitlingStyling.backgroundColor' => 'Bakgrunnsfarge', + 'subtitlingStyling.position' => 'Posisjon', + 'mpvConfig.title' => 'mpv.conf', + 'mpvConfig.description' => 'Avanserte videospillerinnstillinger', + 'mpvConfig.presets' => 'Forhåndsinnstillinger', + 'mpvConfig.noPresets' => 'Ingen lagrede forhåndsinnstillinger', + 'mpvConfig.saveAsPreset' => 'Lagre som forhåndsinnstilling...', + 'mpvConfig.presetName' => 'Forhåndsinnstillingsnavn', + 'mpvConfig.presetNameHint' => 'Skriv inn et navn for denne forhåndsinnstillingen', + 'mpvConfig.loadPreset' => 'Last inn', + 'mpvConfig.deletePreset' => 'Slett', + 'mpvConfig.presetSaved' => 'Forhåndsinnstilling lagret', + 'mpvConfig.presetLoaded' => 'Forhåndsinnstilling lastet inn', + 'mpvConfig.presetDeleted' => 'Forhåndsinnstilling slettet', + 'mpvConfig.confirmDeletePreset' => 'Er du sikker på at du vil slette denne forhåndsinnstillingen?', + 'mpvConfig.configPlaceholder' => 'gpu-api=vulkan\nhwdec=auto\n# kommentar', + 'dialog.confirmAction' => 'Bekreft handling', + 'discover.title' => 'Oppdag', + 'discover.switchProfile' => 'Bytt profil', + 'discover.noContentAvailable' => 'Ingen innhold tilgjengelig', + 'discover.addMediaToLibraries' => 'Legg til medier i bibliotekene dine', + 'discover.continueWatching' => 'Fortsett å se', + 'discover.playEpisode' => ({required Object season, required Object episode}) => 'S${season}E${episode}', + 'discover.overview' => 'Oversikt', + 'discover.cast' => 'Skuespillere', + 'discover.extras' => 'Trailere og ekstra', + 'discover.seasons' => 'Sesonger', + 'discover.studio' => 'Studio', + 'discover.rating' => 'Vurdering', + 'discover.episodeCount' => ({required Object count}) => '${count} episoder', + 'discover.watchedProgress' => ({required Object watched, required Object total}) => '${watched}/${total} sett', + 'discover.movie' => 'Film', + 'discover.tvShow' => 'TV-serie', + 'discover.minutesLeft' => ({required Object minutes}) => '${minutes} min igjen', + 'errors.searchFailed' => ({required Object error}) => 'Søk mislyktes: ${error}', + 'errors.connectionTimeout' => ({required Object context}) => 'Tidsavbrudd ved lasting av ${context}', + 'errors.connectionFailed' => 'Kunne ikke koble til Plex-server', + 'errors.failedToLoad' => ({required Object context, required Object error}) => 'Kunne ikke laste ${context}: ${error}', + 'errors.noClientAvailable' => 'Ingen klient tilgjengelig', + 'errors.authenticationFailed' => ({required Object error}) => 'Autentisering mislyktes: ${error}', + 'errors.couldNotLaunchUrl' => 'Kunne ikke åpne autentiserings-URL', + 'errors.pleaseEnterToken' => 'Vennligst skriv inn et token', + 'errors.invalidToken' => 'Ugyldig token', + 'errors.failedToVerifyToken' => ({required Object error}) => 'Kunne ikke verifisere token: ${error}', + 'errors.failedToSwitchProfile' => ({required Object displayName}) => 'Kunne ikke bytte til ${displayName}', + 'libraries.title' => 'Biblioteker', + 'libraries.scanLibraryFiles' => 'Skann bibliotekfiler', + 'libraries.scanLibrary' => 'Skann bibliotek', + 'libraries.analyze' => 'Analyser', + 'libraries.analyzeLibrary' => 'Analyser bibliotek', + 'libraries.refreshMetadata' => 'Oppdater metadata', + 'libraries.emptyTrash' => 'Tøm papirkurv', + 'libraries.emptyingTrash' => ({required Object title}) => 'Tømmer papirkurv for "${title}"...', + 'libraries.trashEmptied' => ({required Object title}) => 'Papirkurv tømt for "${title}"', + 'libraries.failedToEmptyTrash' => ({required Object error}) => 'Kunne ikke tømme papirkurv: ${error}', + 'libraries.analyzing' => ({required Object title}) => 'Analyserer "${title}"...', + 'libraries.analysisStarted' => ({required Object title}) => 'Analyse startet for "${title}"', + 'libraries.failedToAnalyze' => ({required Object error}) => 'Kunne ikke analysere bibliotek: ${error}', + 'libraries.noLibrariesFound' => 'Ingen biblioteker funnet', + 'libraries.thisLibraryIsEmpty' => 'Dette biblioteket er tomt', + 'libraries.all' => 'Alle', + 'libraries.clearAll' => 'Tøm alle', + 'libraries.scanLibraryConfirm' => ({required Object title}) => 'Er du sikker på at du vil skanne "${title}"?', + 'libraries.analyzeLibraryConfirm' => ({required Object title}) => 'Er du sikker på at du vil analysere "${title}"?', + 'libraries.refreshMetadataConfirm' => ({required Object title}) => 'Er du sikker på at du vil oppdatere metadata for "${title}"?', + 'libraries.emptyTrashConfirm' => ({required Object title}) => 'Er du sikker på at du vil tømme papirkurven for "${title}"?', + 'libraries.manageLibraries' => 'Administrer biblioteker', + 'libraries.sort' => 'Sorter', + 'libraries.sortBy' => 'Sorter etter', + 'libraries.filters' => 'Filtre', + 'libraries.confirmActionMessage' => 'Er du sikker på at du vil utføre denne handlingen?', + 'libraries.showLibrary' => 'Vis bibliotek', + 'libraries.hideLibrary' => 'Skjul bibliotek', + 'libraries.libraryOptions' => 'Bibliotekalternativer', + 'libraries.content' => 'bibliotekinnhold', + 'libraries.selectLibrary' => 'Velg bibliotek', + 'libraries.filtersWithCount' => ({required Object count}) => 'Filtre (${count})', + 'libraries.noRecommendations' => 'Ingen anbefalinger tilgjengelig', + 'libraries.noCollections' => 'Ingen samlinger i dette biblioteket', + 'libraries.noFoldersFound' => 'Ingen mapper funnet', + 'libraries.folders' => 'mapper', + 'libraries.tabs.recommended' => 'Anbefalt', + 'libraries.tabs.browse' => 'Bla gjennom', + 'libraries.tabs.collections' => 'Samlinger', + 'libraries.tabs.playlists' => 'Spillelister', + 'libraries.groupings.all' => 'Alle', + 'libraries.groupings.movies' => 'Filmer', + 'libraries.groupings.shows' => 'TV-serier', + 'libraries.groupings.seasons' => 'Sesonger', + 'libraries.groupings.episodes' => 'Episoder', + 'libraries.groupings.folders' => 'Mapper', + 'about.title' => 'Om', + 'about.openSourceLicenses' => 'Åpen kildekode-lisenser', + 'about.versionLabel' => ({required Object version}) => 'Versjon ${version}', + 'about.appDescription' => 'En vakker Plex-klient for Flutter', + 'about.viewLicensesDescription' => 'Vis lisenser for tredjepartsbiblioteker', + 'serverSelection.allServerConnectionsFailed' => 'Kunne ikke koble til noen servere. Sjekk nettverket ditt og prøv igjen.', + 'serverSelection.noServersFoundForAccount' => ({required Object username, required Object email}) => 'Ingen servere funnet for ${username} (${email})', + 'serverSelection.failedToLoadServers' => ({required Object error}) => 'Kunne ikke laste servere: ${error}', + 'hubDetail.title' => 'Tittel', + 'hubDetail.releaseYear' => 'Utgivelsesår', + 'hubDetail.dateAdded' => 'Dato lagt til', + 'hubDetail.rating' => 'Vurdering', + 'hubDetail.noItemsFound' => 'Ingen elementer funnet', + 'logs.clearLogs' => 'Tøm logger', + 'logs.copyLogs' => 'Kopier logger', + 'logs.uploadLogs' => 'Last opp logger', + 'logs.error' => 'Feil:', + 'logs.stackTrace' => 'Stabelsporing:', + 'licenses.relatedPackages' => 'Relaterte pakker', + 'licenses.license' => 'Lisens', + 'licenses.licenseNumber' => ({required Object number}) => 'Lisens ${number}', + 'licenses.licensesCount' => ({required Object count}) => '${count} lisenser', + 'navigation.libraries' => 'Biblioteker', + 'navigation.downloads' => 'Nedlastinger', + 'navigation.liveTv' => 'Direkte-TV', + 'liveTv.title' => 'Direkte-TV', + 'liveTv.channels' => 'Kanaler', + 'liveTv.guide' => 'Programguide', + 'liveTv.noChannels' => 'Ingen kanaler tilgjengelig', + 'liveTv.noDvr' => 'Ingen DVR konfigurert på noen server', + 'liveTv.tuneFailed' => 'Kunne ikke stille inn kanal', + 'liveTv.loading' => 'Laster kanaler...', + 'liveTv.nowPlaying' => 'Spilles nå', + 'liveTv.noPrograms' => 'Ingen programdata tilgjengelig', + 'liveTv.channelNumber' => ({required Object number}) => 'Kanal ${number}', + 'liveTv.live' => 'DIREKTE', + 'liveTv.hd' => 'HD', + 'liveTv.premiere' => 'NY', + _ => null, + } ?? switch (path) { + 'liveTv.reloadGuide' => 'Last inn programguide på nytt', + 'liveTv.allChannels' => 'Alle kanaler', + 'liveTv.now' => 'Nå', + 'liveTv.today' => 'I dag', + 'liveTv.midnight' => 'Midnatt', + 'liveTv.overnight' => 'Natt', + 'liveTv.morning' => 'Morgen', + 'liveTv.daytime' => 'Dagtid', + 'liveTv.evening' => 'Kveld', + 'liveTv.lateNight' => 'Sen kveld', + 'liveTv.whatsOn' => 'Hva går nå', + 'liveTv.watchChannel' => 'Se kanal', + 'collections.title' => 'Samlinger', + 'collections.collection' => 'Samling', + 'collections.empty' => 'Samlingen er tom', + 'collections.unknownLibrarySection' => 'Kan ikke slette: Ukjent bibliotekseksjon', + 'collections.deleteCollection' => 'Slett samling', + 'collections.deleteConfirm' => ({required Object title}) => 'Er du sikker på at du vil slette "${title}"? Denne handlingen kan ikke angres.', + 'collections.deleted' => 'Samling slettet', + 'collections.deleteFailed' => 'Kunne ikke slette samling', + 'collections.deleteFailedWithError' => ({required Object error}) => 'Kunne ikke slette samling: ${error}', + 'collections.failedToLoadItems' => ({required Object error}) => 'Kunne ikke laste samlingselementer: ${error}', + 'collections.selectCollection' => 'Velg samling', + 'collections.collectionName' => 'Samlingsnavn', + 'collections.enterCollectionName' => 'Skriv inn samlingsnavn', + 'collections.addedToCollection' => 'Lagt til i samling', + 'collections.errorAddingToCollection' => 'Kunne ikke legge til i samling', + 'collections.created' => 'Samling opprettet', + 'collections.removeFromCollection' => 'Fjern fra samling', + 'collections.removeFromCollectionConfirm' => ({required Object title}) => 'Fjerne "${title}" fra denne samlingen?', + 'collections.removedFromCollection' => 'Fjernet fra samling', + 'collections.removeFromCollectionFailed' => 'Kunne ikke fjerne fra samling', + 'collections.removeFromCollectionError' => ({required Object error}) => 'Feil ved fjerning fra samling: ${error}', + 'playlists.title' => 'Spillelister', + 'playlists.playlist' => 'Spilleliste', + 'playlists.noPlaylists' => 'Ingen spillelister funnet', + 'playlists.create' => 'Opprett spilleliste', + 'playlists.playlistName' => 'Spillelistenavn', + 'playlists.enterPlaylistName' => 'Skriv inn spillelistenavn', + 'playlists.delete' => 'Slett spilleliste', + 'playlists.removeItem' => 'Fjern fra spilleliste', + 'playlists.smartPlaylist' => 'Smart spilleliste', + 'playlists.itemCount' => ({required Object count}) => '${count} elementer', + 'playlists.oneItem' => '1 element', + 'playlists.emptyPlaylist' => 'Denne spillelisten er tom', + 'playlists.deleteConfirm' => 'Slett spilleliste?', + 'playlists.deleteMessage' => ({required Object name}) => 'Er du sikker på at du vil slette "${name}"?', + 'playlists.created' => 'Spilleliste opprettet', + 'playlists.deleted' => 'Spilleliste slettet', + 'playlists.itemAdded' => 'Lagt til i spilleliste', + 'playlists.itemRemoved' => 'Fjernet fra spilleliste', + 'playlists.selectPlaylist' => 'Velg spilleliste', + 'playlists.errorCreating' => 'Kunne ikke opprette spilleliste', + 'playlists.errorDeleting' => 'Kunne ikke slette spilleliste', + 'playlists.errorLoading' => 'Kunne ikke laste spillelister', + 'playlists.errorAdding' => 'Kunne ikke legge til i spilleliste', + 'playlists.errorReordering' => 'Kunne ikke omorganisere spillelisteelement', + 'playlists.errorRemoving' => 'Kunne ikke fjerne fra spilleliste', + 'watchTogether.title' => 'Se sammen', + 'watchTogether.description' => 'Se innhold synkronisert med venner og familie', + 'watchTogether.createSession' => 'Opprett økt', + 'watchTogether.creating' => 'Oppretter...', + 'watchTogether.joinSession' => 'Bli med i økt', + 'watchTogether.joining' => 'Blir med...', + 'watchTogether.controlMode' => 'Kontrollmodus', + 'watchTogether.controlModeQuestion' => 'Hvem kan kontrollere avspilling?', + 'watchTogether.hostOnly' => 'Kun vert', + 'watchTogether.anyone' => 'Alle', + 'watchTogether.hostingSession' => 'Er vert for økt', + 'watchTogether.inSession' => 'I økt', + 'watchTogether.sessionCode' => 'Øktkode', + 'watchTogether.hostControlsPlayback' => 'Verten kontrollerer avspilling', + 'watchTogether.anyoneCanControl' => 'Alle kan kontrollere avspilling', + 'watchTogether.hostControls' => 'Vertskontroll', + 'watchTogether.anyoneControls' => 'Alle kontrollerer', + 'watchTogether.participants' => 'Deltakere', + 'watchTogether.host' => 'Vert', + 'watchTogether.hostBadge' => 'VERT', + 'watchTogether.youAreHost' => 'Du er verten', + 'watchTogether.watchingWithOthers' => 'Ser med andre', + 'watchTogether.endSession' => 'Avslutt økt', + 'watchTogether.leaveSession' => 'Forlat økt', + 'watchTogether.endSessionQuestion' => 'Avslutte økt?', + 'watchTogether.leaveSessionQuestion' => 'Forlate økt?', + 'watchTogether.endSessionConfirm' => 'Dette vil avslutte økten for alle deltakere.', + 'watchTogether.leaveSessionConfirm' => 'Du vil bli fjernet fra økten.', + 'watchTogether.endSessionConfirmOverlay' => 'Dette vil avslutte se sammen-økten for alle deltakere.', + 'watchTogether.leaveSessionConfirmOverlay' => 'Du vil bli frakoblet fra se sammen-økten.', + 'watchTogether.end' => 'Avslutt', + 'watchTogether.leave' => 'Forlat', + 'watchTogether.syncing' => 'Synkroniserer...', + 'watchTogether.joinWatchSession' => 'Bli med i se sammen-økt', + 'watchTogether.enterCodeHint' => 'Skriv inn 8-tegns kode', + 'watchTogether.pasteFromClipboard' => 'Lim inn fra utklippstavle', + 'watchTogether.pleaseEnterCode' => 'Vennligst skriv inn en øktkode', + 'watchTogether.codeMustBe8Chars' => 'Øktkoden må være 8 tegn', + 'watchTogether.joinInstructions' => 'Skriv inn øktkoden delt av verten for å bli med i se sammen-økten.', + 'watchTogether.failedToCreate' => 'Kunne ikke opprette økt', + 'watchTogether.failedToJoin' => 'Kunne ikke bli med i økt', + 'watchTogether.sessionCodeCopied' => 'Øktkode kopiert til utklippstavle', + 'watchTogether.relayUnreachable' => 'Reléserveren er utilgjengelig. Dette kan skyldes at internettleverandøren din blokkerer tilkoblingen. Du kan fortsatt prøve, men Se sammen fungerer kanskje ikke.', + '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', + 'downloads.title' => 'Nedlastinger', + 'downloads.manage' => 'Administrer', + 'downloads.tvShows' => 'TV-serier', + 'downloads.movies' => 'Filmer', + 'downloads.noDownloads' => 'Ingen nedlastinger ennå', + 'downloads.noDownloadsDescription' => 'Nedlastet innhold vil vises her for frakoblet visning', + 'downloads.downloadNow' => 'Last ned', + 'downloads.deleteDownload' => 'Slett nedlasting', + 'downloads.retryDownload' => 'Prøv nedlasting på nytt', + 'downloads.downloadQueued' => 'Nedlasting i kø', + 'downloads.episodesQueued' => ({required Object count}) => '${count} episoder i nedlastingskø', + 'downloads.downloadDeleted' => 'Nedlasting slettet', + 'downloads.deleteConfirm' => ({required Object title}) => 'Er du sikker på at du vil slette "${title}"? Dette vil fjerne den nedlastede filen fra enheten din.', + 'downloads.deletingWithProgress' => ({required Object title, required Object current, required Object total}) => 'Sletter ${title}... (${current} av ${total})', + 'downloads.noDownloadsTree' => 'Ingen nedlastinger', + 'downloads.pauseAll' => 'Pause alle', + 'downloads.resumeAll' => 'Gjenoppta alle', + 'downloads.deleteAll' => 'Slett alle', + 'shaders.title' => 'Shadere', + 'shaders.noShaderDescription' => 'Ingen videoforbedring', + 'shaders.nvscalerDescription' => 'NVIDIA bildeskalering for skarpere video', + 'shaders.qualityFast' => 'Rask', + 'shaders.qualityHQ' => 'Høy kvalitet', + 'shaders.mode' => 'Modus', + 'shaders.importShader' => 'Importer shader', + 'shaders.customShaderDescription' => 'Egendefinert GLSL-shader', + 'shaders.shaderImported' => 'Shader importert', + 'shaders.shaderImportFailed' => 'Kunne ikke importere shader', + 'shaders.deleteShader' => 'Slett shader', + 'shaders.deleteShaderConfirm' => ({required Object name}) => 'Slette "${name}"?', + 'companionRemote.title' => 'Følgesvenn-fjernkontroll', + 'companionRemote.connectToDevice' => 'Koble til enhet', + 'companionRemote.hostRemoteSession' => 'Vær vert for fjernøkt', + 'companionRemote.controlThisDevice' => 'Kontroller denne enheten med telefonen din', + 'companionRemote.remoteControl' => 'Fjernkontroll', + 'companionRemote.controlDesktop' => 'Kontroller en stasjonær enhet', + 'companionRemote.connectedTo' => ({required Object name}) => 'Tilkoblet ${name}', + 'companionRemote.session.creatingSession' => 'Oppretter fjernøkt...', + 'companionRemote.session.failedToCreate' => 'Kunne ikke opprette fjernøkt:', + 'companionRemote.session.noSession' => 'Ingen økt tilgjengelig', + 'companionRemote.session.scanQrCode' => 'Skann QR-kode', + 'companionRemote.session.orEnterManually' => 'Eller skriv inn manuelt', + 'companionRemote.session.hostAddress' => 'Vertsadresse', + 'companionRemote.session.sessionId' => 'Økt-ID', + 'companionRemote.session.pin' => 'PIN', + 'companionRemote.session.connected' => 'Tilkoblet', + 'companionRemote.session.waitingForConnection' => 'Venter på tilkobling...', + 'companionRemote.session.usePhoneToControl' => 'Bruk mobilenheten din til å kontrollere denne appen', + 'companionRemote.session.copiedToClipboard' => ({required Object label}) => '${label} kopiert til utklippstavle', + 'companionRemote.session.copyToClipboard' => 'Kopier til utklippstavle', + 'companionRemote.session.newSession' => 'Ny økt', + 'companionRemote.session.minimize' => 'Minimer', + 'companionRemote.pairing.scan' => 'Skann', + 'companionRemote.pairing.manual' => 'Manuell', + 'companionRemote.pairing.pairWithDesktop' => 'Koble til stasjonær', + 'companionRemote.pairing.enterSessionDetails' => 'Skriv inn øktdetaljene som vises på den stasjonære enheten din', + 'companionRemote.pairing.hostAddressHint' => '192.168.1.100:48632', + 'companionRemote.pairing.sessionIdHint' => 'Skriv inn 8-tegns økt-ID', + 'companionRemote.pairing.pinHint' => 'Skriv inn 6-sifret PIN', + 'companionRemote.pairing.connecting' => 'Kobler til...', + 'companionRemote.pairing.tips' => 'Tips', + 'companionRemote.pairing.tipDesktop' => 'Åpne Plezy på datamaskinen din og aktiver Følgesvenn-fjernkontroll fra innstillinger eller meny', + 'companionRemote.pairing.tipScan' => 'Bruk Skann-fanen for å raskt koble til ved å skanne QR-koden på datamaskinen din', + 'companionRemote.pairing.tipWifi' => 'Sørg for at begge enhetene er på samme WiFi-nettverk', + 'companionRemote.pairing.cameraPermissionRequired' => 'Kameratillatelse kreves for å skanne QR-koder.\nVennligst gi kameratilgang i enhetsinnstillingene.', + 'companionRemote.pairing.cameraError' => ({required Object error}) => 'Kunne ikke starte kamera: ${error}', + 'companionRemote.pairing.scanInstruction' => 'Pek kameraet mot QR-koden som vises på datamaskinen din', + 'companionRemote.pairing.invalidQrCode' => 'Ugyldig QR-kodeformat', + 'companionRemote.pairing.validationHostRequired' => 'Vennligst skriv inn vertsadresse', + 'companionRemote.pairing.validationHostFormat' => 'Formatet må være IP:port (f.eks. 192.168.1.100:48632)', + 'companionRemote.pairing.validationSessionIdRequired' => 'Vennligst skriv inn en økt-ID', + 'companionRemote.pairing.validationSessionIdLength' => 'Økt-ID må være 8 tegn', + 'companionRemote.pairing.validationPinRequired' => 'Vennligst skriv inn en PIN', + 'companionRemote.pairing.validationPinLength' => 'PIN må være 6 sifre', + 'companionRemote.pairing.connectionTimedOut' => 'Tilkoblingen ble tidsavbrutt. Sjekk økt-ID og PIN.', + 'companionRemote.pairing.sessionNotFound' => 'Kunne ikke finne økten. Sjekk legitimasjonen din.', + 'companionRemote.pairing.failedToConnect' => ({required Object error}) => 'Kunne ikke koble til: ${error}', + 'companionRemote.remote.disconnectConfirm' => 'Vil du koble fra fjernøkten?', + 'companionRemote.remote.reconnecting' => 'Kobler til på nytt...', + 'companionRemote.remote.attemptOf' => ({required Object current}) => 'Forsøk ${current} av 5', + 'companionRemote.remote.retryNow' => 'Prøv nå', + 'companionRemote.remote.connectionError' => 'Tilkoblingsfeil', + 'companionRemote.remote.notConnected' => 'Ikke tilkoblet', + 'companionRemote.remote.tabRemote' => 'Fjernkontroll', + 'companionRemote.remote.tabPlay' => 'Spill av', + 'companionRemote.remote.tabMore' => 'Mer', + 'companionRemote.remote.menu' => 'Meny', + 'companionRemote.remote.tabNavigation' => 'Fanenavigering', + 'companionRemote.remote.tabDiscover' => 'Oppdag', + 'companionRemote.remote.tabLibraries' => 'Biblioteker', + 'companionRemote.remote.tabSearch' => 'Søk', + 'companionRemote.remote.tabDownloads' => 'Nedlastinger', + 'companionRemote.remote.tabSettings' => 'Innstillinger', + 'companionRemote.remote.previous' => 'Forrige', + 'companionRemote.remote.playPause' => 'Spill av/Pause', + 'companionRemote.remote.next' => 'Neste', + 'companionRemote.remote.seekBack' => 'Spol tilbake', + 'companionRemote.remote.stop' => 'Stopp', + 'companionRemote.remote.seekForward' => 'Spol fremover', + 'companionRemote.remote.volume' => 'Volum', + 'companionRemote.remote.volumeDown' => 'Ned', + 'companionRemote.remote.volumeUp' => 'Opp', + 'companionRemote.remote.fullscreen' => 'Fullskjerm', + 'companionRemote.remote.subtitles' => 'Undertekster', + 'companionRemote.remote.audio' => 'Lyd', + 'companionRemote.remote.searchHint' => 'Søk på stasjonær...', + 'videoSettings.playbackSettings' => 'Avspillingsinnstillinger', + 'videoSettings.playbackSpeed' => 'Avspillingshastighet', + 'videoSettings.sleepTimer' => 'Søvntimer', + 'videoSettings.audioSync' => 'Lydsynkronisering', + 'videoSettings.subtitleSync' => 'Undertekstsynkronisering', + 'videoSettings.hdr' => 'HDR', + 'videoSettings.audioOutput' => 'Lydutgang', + 'videoSettings.performanceOverlay' => 'Ytelsesoverlegg', + 'videoSettings.audioPassthrough' => 'Lydgjennomgang', + 'videoSettings.audioNormalization' => 'Lydnormalisering', + 'externalPlayer.title' => 'Ekstern spiller', + 'externalPlayer.useExternalPlayer' => 'Bruk ekstern spiller', + 'externalPlayer.useExternalPlayerDescription' => 'Åpne videoer i en ekstern app i stedet for den innebygde spilleren', + 'externalPlayer.selectPlayer' => 'Velg spiller', + 'externalPlayer.systemDefault' => 'Systemstandard', + 'externalPlayer.addCustomPlayer' => 'Legg til egendefinert spiller', + 'externalPlayer.playerName' => 'Spillernavn', + 'externalPlayer.playerCommand' => 'Kommando', + 'externalPlayer.playerPackage' => 'Pakkenavn', + 'externalPlayer.playerUrlScheme' => 'URL-skjema', + 'externalPlayer.customPlayer' => 'Egendefinert spiller', + 'externalPlayer.off' => 'Av', + 'externalPlayer.launchFailed' => 'Kunne ikke åpne ekstern spiller', + 'externalPlayer.appNotInstalled' => ({required Object name}) => '${name} er ikke installert', + 'externalPlayer.playInExternalPlayer' => 'Spill av i ekstern spiller', + 'metadataEdit.editMetadata' => 'Rediger...', + 'metadataEdit.screenTitle' => 'Rediger metadata', + 'metadataEdit.basicInfo' => 'Grunnleggende info', + 'metadataEdit.artwork' => 'Kunstverk', + 'metadataEdit.advancedSettings' => 'Avanserte innstillinger', + 'metadataEdit.title' => 'Tittel', + 'metadataEdit.sortTitle' => 'Sorteringsstittel', + 'metadataEdit.originalTitle' => 'Originaltittel', + 'metadataEdit.releaseDate' => 'Utgivelsesdato', + 'metadataEdit.contentRating' => 'Innholdsvurdering', + 'metadataEdit.studio' => 'Studio', + 'metadataEdit.tagline' => 'Slagord', + 'metadataEdit.summary' => 'Sammendrag', + 'metadataEdit.poster' => 'Plakat', + 'metadataEdit.background' => 'Bakgrunn', + 'metadataEdit.selectPoster' => 'Velg plakat', + 'metadataEdit.selectBackground' => 'Velg bakgrunn', + 'metadataEdit.fromUrl' => 'Fra URL', + 'metadataEdit.uploadFile' => 'Last opp fil', + 'metadataEdit.enterImageUrl' => 'Skriv inn bilde-URL', + '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.notSet' => 'Ikke angitt', + 'metadataEdit.libraryDefault' => 'Bibliotekstandard', + 'metadataEdit.accountDefault' => 'Kontostandard', + 'metadataEdit.seriesDefault' => 'Seriestandard', + 'metadataEdit.episodeSorting' => 'Episodesortering', + 'metadataEdit.oldestFirst' => 'Eldste først', + 'metadataEdit.newestFirst' => 'Nyeste først', + 'metadataEdit.keep' => 'Behold', + 'metadataEdit.allEpisodes' => 'Alle episoder', + 'metadataEdit.latestEpisodes' => ({required Object count}) => '${count} nyeste episoder', + 'metadataEdit.latestEpisode' => 'Nyeste episode', + 'metadataEdit.episodesAddedPastDays' => ({required Object count}) => 'Episoder lagt til de siste ${count} dagene', + 'metadataEdit.deleteAfterPlaying' => 'Slett episoder etter avspilling', + 'metadataEdit.never' => 'Aldri', + 'metadataEdit.afterADay' => 'Etter en dag', + 'metadataEdit.afterAWeek' => 'Etter en uke', + 'metadataEdit.afterAMonth' => 'Etter en måned', + 'metadataEdit.onNextRefresh' => 'Ved neste oppdatering', + 'metadataEdit.seasons' => 'Sesonger', + 'metadataEdit.show' => 'Vis', + 'metadataEdit.hide' => 'Skjul', + 'metadataEdit.episodeOrdering' => 'Episoderekkefølge', + 'metadataEdit.tmdbAiring' => 'The Movie Database (Sendt)', + 'metadataEdit.tvdbAiring' => 'TheTVDB (Sendt)', + 'metadataEdit.tvdbAbsolute' => 'TheTVDB (Absolutt)', + 'metadataEdit.metadataLanguage' => 'Metadataspråk', + 'metadataEdit.useOriginalTitle' => 'Bruk originaltittel', + 'metadataEdit.preferredAudioLanguage' => 'Foretrukket lydspråk', + 'metadataEdit.preferredSubtitleLanguage' => 'Foretrukket undertekstspråk', + 'metadataEdit.subtitleMode' => 'Automatisk valg av undertekstmodus', + 'metadataEdit.manuallySelected' => 'Manuelt valgt', + 'metadataEdit.shownWithForeignAudio' => 'Vist med fremmedspråklig lyd', + 'metadataEdit.alwaysEnabled' => 'Alltid aktivert', + _ => null, + }; + } +} diff --git a/lib/i18n/strings_pl.g.dart b/lib/i18n/strings_pl.g.dart new file mode 100644 index 00000000..44e60473 --- /dev/null +++ b/lib/i18n/strings_pl.g.dart @@ -0,0 +1,2125 @@ +/// +/// 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 TranslationsPl with BaseTranslations implements Translations { + /// You can call this constructor and build your own translation instance of this locale. + /// Constructing via the enum [AppLocale.build] is preferred. + TranslationsPl({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.pl, + overrides: overrides ?? {}, + cardinalResolver: cardinalResolver, + ordinalResolver: ordinalResolver, + ) { + $meta.setFlatMapFunction(_flatMapFunction); + } + + /// Metadata for the translations of . + @override final TranslationMetadata $meta; + + /// Access flat map + @override dynamic operator[](String key) => $meta.getTranslation(key); + + late final TranslationsPl _root = this; // ignore: unused_field + + @override + TranslationsPl $copyWith({TranslationMetadata? meta}) => TranslationsPl(meta: meta ?? this.$meta); + + // Translations + @override late final _TranslationsAppPl app = _TranslationsAppPl._(_root); + @override late final _TranslationsAuthPl auth = _TranslationsAuthPl._(_root); + @override late final _TranslationsCommonPl common = _TranslationsCommonPl._(_root); + @override late final _TranslationsScreensPl screens = _TranslationsScreensPl._(_root); + @override late final _TranslationsUpdatePl update = _TranslationsUpdatePl._(_root); + @override late final _TranslationsSettingsPl settings = _TranslationsSettingsPl._(_root); + @override late final _TranslationsSearchPl search = _TranslationsSearchPl._(_root); + @override late final _TranslationsHotkeysPl hotkeys = _TranslationsHotkeysPl._(_root); + @override late final _TranslationsPinEntryPl pinEntry = _TranslationsPinEntryPl._(_root); + @override late final _TranslationsFileInfoPl fileInfo = _TranslationsFileInfoPl._(_root); + @override late final _TranslationsMediaMenuPl mediaMenu = _TranslationsMediaMenuPl._(_root); + @override late final _TranslationsAccessibilityPl accessibility = _TranslationsAccessibilityPl._(_root); + @override late final _TranslationsTooltipsPl tooltips = _TranslationsTooltipsPl._(_root); + @override late final _TranslationsVideoControlsPl videoControls = _TranslationsVideoControlsPl._(_root); + @override late final _TranslationsUserStatusPl userStatus = _TranslationsUserStatusPl._(_root); + @override late final _TranslationsMessagesPl messages = _TranslationsMessagesPl._(_root); + @override late final _TranslationsSubtitlingStylingPl subtitlingStyling = _TranslationsSubtitlingStylingPl._(_root); + @override late final _TranslationsMpvConfigPl mpvConfig = _TranslationsMpvConfigPl._(_root); + @override late final _TranslationsDialogPl dialog = _TranslationsDialogPl._(_root); + @override late final _TranslationsDiscoverPl discover = _TranslationsDiscoverPl._(_root); + @override late final _TranslationsErrorsPl errors = _TranslationsErrorsPl._(_root); + @override late final _TranslationsLibrariesPl libraries = _TranslationsLibrariesPl._(_root); + @override late final _TranslationsAboutPl about = _TranslationsAboutPl._(_root); + @override late final _TranslationsServerSelectionPl serverSelection = _TranslationsServerSelectionPl._(_root); + @override late final _TranslationsHubDetailPl hubDetail = _TranslationsHubDetailPl._(_root); + @override late final _TranslationsLogsPl logs = _TranslationsLogsPl._(_root); + @override late final _TranslationsLicensesPl licenses = _TranslationsLicensesPl._(_root); + @override late final _TranslationsNavigationPl navigation = _TranslationsNavigationPl._(_root); + @override late final _TranslationsLiveTvPl liveTv = _TranslationsLiveTvPl._(_root); + @override late final _TranslationsCollectionsPl collections = _TranslationsCollectionsPl._(_root); + @override late final _TranslationsPlaylistsPl playlists = _TranslationsPlaylistsPl._(_root); + @override late final _TranslationsWatchTogetherPl watchTogether = _TranslationsWatchTogetherPl._(_root); + @override late final _TranslationsDownloadsPl downloads = _TranslationsDownloadsPl._(_root); + @override late final _TranslationsShadersPl shaders = _TranslationsShadersPl._(_root); + @override late final _TranslationsCompanionRemotePl companionRemote = _TranslationsCompanionRemotePl._(_root); + @override late final _TranslationsVideoSettingsPl videoSettings = _TranslationsVideoSettingsPl._(_root); + @override late final _TranslationsExternalPlayerPl externalPlayer = _TranslationsExternalPlayerPl._(_root); + @override late final _TranslationsMetadataEditPl metadataEdit = _TranslationsMetadataEditPl._(_root); +} + +// Path: app +class _TranslationsAppPl implements TranslationsAppEn { + _TranslationsAppPl._(this._root); + + final TranslationsPl _root; // ignore: unused_field + + // Translations + @override String get title => 'Plezy'; +} + +// Path: auth +class _TranslationsAuthPl implements TranslationsAuthEn { + _TranslationsAuthPl._(this._root); + + final TranslationsPl _root; // ignore: unused_field + + // Translations + @override String get signInWithPlex => 'Zaloguj się przez Plex'; + @override String get showQRCode => 'Pokaż kod QR'; + @override String get authenticate => 'Uwierzytelnienie'; + @override String get debugEnterToken => 'Debug: Wprowadź token Plex'; + @override String get plexTokenLabel => 'Token autoryzacji Plex'; + @override String get plexTokenHint => 'Wprowadź swój token Plex.tv'; + @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...\nDokończ logowanie w przeglądarce.'; + @override String get useBrowser => 'Użyj przeglądarki'; +} + +// Path: common +class _TranslationsCommonPl implements TranslationsCommonEn { + _TranslationsCommonPl._(this._root); + + final TranslationsPl _root; // ignore: unused_field + + // Translations + @override String get cancel => 'Anuluj'; + @override String get save => 'Zapisz'; + @override String get close => 'Zamknij'; + @override String get clear => 'Wyczyść'; + @override String get reset => 'Resetuj'; + @override String get later => 'Później'; + @override String get submit => 'Wyślij'; + @override String get confirm => 'Potwierdź'; + @override String get retry => 'Ponów'; + @override String get logout => 'Wyloguj'; + @override String get unknown => 'Nieznane'; + @override String get refresh => 'Odśwież'; + @override String get yes => 'Tak'; + @override String get no => 'Nie'; + @override String get delete => 'Usuń'; + @override String get shuffle => 'Losowo'; + @override String get addTo => 'Dodaj do...'; + @override String get createNew => 'Utwórz nowy'; + @override String get remove => 'Usuń'; + @override String get paste => 'Wklej'; + @override String get connect => 'Połącz'; + @override String get disconnect => 'Rozłącz'; + @override String get play => 'Odtwórz'; + @override String get pause => 'Pauza'; + @override String get resume => 'Wznów'; + @override String get error => 'Błąd'; + @override String get search => 'Szukaj'; + @override String get home => 'Strona główna'; + @override String get back => 'Wstecz'; + @override String get settings => 'Ustawienia'; + @override String get mute => 'Wycisz'; + @override String get ok => 'OK'; + @override String get loading => 'Ładowanie...'; + @override String get reconnect => 'Połącz ponownie'; + @override String get exitConfirmTitle => 'Zamknąć aplikację?'; + @override String get exitConfirmMessage => 'Czy na pewno chcesz wyjść?'; + @override String get dontAskAgain => 'Nie pytaj ponownie'; + @override String get exit => 'Wyjdź'; + @override String get viewAll => 'Pokaż wszystko'; + @override String get checkingNetwork => 'Sprawdzanie sieci...'; + @override String get refreshingServers => 'Odświeżanie serwerów...'; + @override String get loadingServers => 'Ładowanie serwerów...'; + @override String get connectingToServers => 'Łączenie z serwerami...'; + @override String get startingOfflineMode => 'Uruchamianie trybu offline...'; +} + +// Path: screens +class _TranslationsScreensPl implements TranslationsScreensEn { + _TranslationsScreensPl._(this._root); + + final TranslationsPl _root; // ignore: unused_field + + // Translations + @override String get licenses => 'Licencje'; + @override String get switchProfile => 'Zmień profil'; + @override String get subtitleStyling => 'Styl napisów'; + @override String get mpvConfig => 'mpv.conf'; + @override String get logs => 'Logi'; +} + +// Path: update +class _TranslationsUpdatePl implements TranslationsUpdateEn { + _TranslationsUpdatePl._(this._root); + + final TranslationsPl _root; // ignore: unused_field + + // Translations + @override String get available => 'Dostępna aktualizacja'; + @override String versionAvailable({required Object version}) => 'Dostępna wersja ${version}'; + @override String currentVersion({required Object version}) => 'Bieżąca: ${version}'; + @override String get skipVersion => 'Pomiń tę wersję'; + @override String get viewRelease => 'Zobacz wydanie'; + @override String get latestVersion => 'Masz najnowszą wersję'; + @override String get checkFailed => 'Nie udało się sprawdzić aktualizacji'; +} + +// Path: settings +class _TranslationsSettingsPl implements TranslationsSettingsEn { + _TranslationsSettingsPl._(this._root); + + final TranslationsPl _root; // ignore: unused_field + + // Translations + @override String get title => 'Ustawienia'; + @override String get language => 'Język'; + @override String get theme => 'Motyw'; + @override String get appearance => 'Wygląd'; + @override String get videoPlayback => 'Odtwarzanie wideo'; + @override String get advanced => 'Zaawansowane'; + @override String get episodePosterMode => 'Styl plakatu odcinka'; + @override String get seriesPoster => 'Plakat serialu'; + @override String get seriesPosterDescription => 'Pokaż plakat serialu dla wszystkich odcinków'; + @override String get seasonPoster => 'Plakat sezonu'; + @override String get seasonPosterDescription => 'Pokaż plakat odpowiedniego sezonu dla odcinków'; + @override String get episodeThumbnail => 'Miniatura odcinka'; + @override String get episodeThumbnailDescription => 'Pokaż miniatury zrzutów ekranu odcinków w formacie 16:9'; + @override String get showHeroSectionDescription => 'Wyświetl karuzelę wyróżnionych treści na ekranie głównym'; + @override String get secondsLabel => 'Sekundy'; + @override String get minutesLabel => 'Minuty'; + @override String get secondsShort => 's'; + @override String get minutesShort => 'm'; + @override String durationHint({required Object min, required Object max}) => 'Wprowadź czas (${min}-${max})'; + @override String get systemTheme => 'Systemowy'; + @override String get systemThemeDescription => 'Podążaj za ustawieniami systemu'; + @override String get lightTheme => 'Jasny'; + @override String get darkTheme => 'Ciemny'; + @override String get oledTheme => 'OLED'; + @override String get oledThemeDescription => 'Czysta czerń dla ekranów OLED'; + @override String get libraryDensity => 'Gęstość biblioteki'; + @override String get compact => 'Kompaktowy'; + @override String get compactDescription => 'Mniejsze karty, więcej widocznych elementów'; + @override String get normal => 'Normalny'; + @override String get normalDescription => 'Domyślny rozmiar'; + @override String get comfortable => 'Wygodny'; + @override String get comfortableDescription => 'Większe karty, mniej widocznych elementów'; + @override String get viewMode => 'Tryb widoku'; + @override String get gridView => 'Siatka'; + @override String get gridViewDescription => 'Wyświetl elementy w układzie siatki'; + @override String get listView => 'Lista'; + @override String get listViewDescription => 'Wyświetl elementy w układzie listy'; + @override String get showHeroSection => 'Pokaż sekcję wyróżnioną'; + @override String get useGlobalHubs => 'Użyj układu Plex Home'; + @override String get useGlobalHubsDescription => 'Pokaż huby strony głównej jak w oficjalnym kliencie Plex. Gdy wyłączone, pokazuje rekomendacje per biblioteka.'; + @override String get showServerNameOnHubs => 'Pokaż nazwę serwera w hubach'; + @override String get showServerNameOnHubsDescription => 'Zawsze wyświetlaj nazwę serwera w tytułach hubów. Gdy wyłączone, pokazuje tylko dla zduplikowanych nazw.'; + @override String get alwaysKeepSidebarOpen => 'Zawsze utrzymuj panel boczny otwarty'; + @override String get alwaysKeepSidebarOpenDescription => 'Panel boczny jest rozwinięty, a obszar treści dostosowuje się'; + @override String get showUnwatchedCount => 'Pokaż liczbę nieobejrzanych'; + @override String get showUnwatchedCountDescription => 'Wyświetl liczbę nieobejrzanych odcinków w serialach i sezonach'; + @override String get hideSpoilers => 'Ukryj spoilery nieobejrzanych odcinków'; + @override String get hideSpoilersDescription => 'Rozmyj miniatury i ukryj opisy odcinków, których jeszcze nie obejrzałeś'; + @override String get playerBackend => 'Backend odtwarzacza'; + @override String get exoPlayer => 'ExoPlayer (Zalecany)'; + @override String get exoPlayerDescription => 'Natywny odtwarzacz Android z lepszą obsługą sprzętową'; + @override String get mpv => 'mpv'; + @override String get mpvDescription => 'Zaawansowany odtwarzacz z większą liczbą funkcji i obsługą napisów ASS'; + @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 bufferSizeWarning({required Object heap, required Object size}) => 'Twoje urządzenie ma ${heap}MB pamięci. Bufor ${size}MB może powodować problemy z odtwarzaniem.'; + @override String get subtitleStyling => 'Styl napisów'; + @override String get subtitleStylingDescription => 'Dostosuj wygląd napisów'; + @override String get smallSkipDuration => 'Krótki skok'; + @override String get largeSkipDuration => 'Długi skok'; + @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 => 'Automatycznie zapisuj preferencje języka audio i napisów przy zmianie ścieżek podczas odtwarzania'; + @override String get clickVideoTogglesPlayback => 'Kliknięcie wideo przełącza odtwarzanie/pauzę'; + @override String get clickVideoTogglesPlaybackDescription => 'Gdy włączone, kliknięcie na odtwarzacz wideo odtwarza/wstrzymuje. W przeciwnym razie pokazuje/ukrywa kontrolki.'; + @override String get videoPlayerControls => 'Kontrolki odtwarzacza wideo'; + @override String get keyboardShortcuts => 'Skróty klawiszowe'; + @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 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 viewLogs => 'Pokaż logi'; + @override String get viewLogsDescription => 'Pokaż logi aplikacji'; + @override String get clearCache => 'Wyczyść pamięć podręczną'; + @override String get clearCacheDescription => 'Spowoduje to wyczyszczenie wszystkich zapisanych obrazów i danych. Po wyczyszczeniu aplikacja może ładować treści wolniej.'; + @override String get clearCacheSuccess => 'Pamięć podręczna wyczyszczona'; + @override String get resetSettings => 'Zresetuj ustawienia'; + @override String get resetSettingsDescription => 'Wszystkie ustawienia zostaną przywrócone do wartości domyślnych. Tej operacji nie można cofnąć.'; + @override String get resetSettingsSuccess => 'Ustawienia zresetowane pomyślnie'; + @override String get shortcutsReset => 'Skróty przywrócone do domyślnych'; + @override String get about => 'O aplikacji'; + @override String get aboutDescription => 'Informacje o aplikacji i licencje'; + @override String get updates => 'Aktualizacje'; + @override String get updateAvailable => 'Dostępna aktualizacja'; + @override String get checkForUpdates => 'Sprawdź aktualizacje'; + @override String get validationErrorEnterNumber => 'Wprowadź prawidłową liczbę'; + @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 autoSkip => 'Automatyczne pomijanie'; + @override String get autoSkipIntro => 'Automatyczne pomijanie intro'; + @override String get autoSkipIntroDescription => 'Automatycznie pomijaj znaczniki intro po kilku sekundach'; + @override String get autoSkipCredits => 'Automatyczne pomijanie napisów końcowych'; + @override String get autoSkipCreditsDescription => 'Automatycznie pomijaj napisy końcowe i odtwórz następny odcinek'; + @override String get autoSkipDelay => 'Opóźnienie automatycznego pomijania'; + @override String autoSkipDelayDescription({required Object seconds}) => 'Czekaj ${seconds} sekund przed automatycznym pominięciem'; + @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 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 downloadLocationSelectError => 'Nie udało się wybrać folderu'; + @override String get downloadOnWifiOnly => 'Pobieraj tylko przez WiFi'; + @override String get downloadOnWifiOnlyDescription => 'Blokuj pobieranie na danych komórkowych'; + @override String get cellularDownloadBlocked => 'Pobieranie na danych komórkowych jest wyłączone. Połącz się z WiFi 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}%'; + @override String get discordRichPresence => 'Discord Rich Presence'; + @override String get discordRichPresenceDescription => 'Pokaż, co oglądasz na Discordzie'; + @override String get autoPip => 'Automatyczny obraz w obrazie'; + @override String get autoPipDescription => 'Automatycznie przejdź do trybu obraz w obrazie przy wyjściu z aplikacji podczas odtwarzania'; + @override String get matchContentFrameRate => 'Dopasuj częstotliwość klatek do treści'; + @override String get matchContentFrameRateDescription => 'Dostosuj częstotliwość odświeżania ekranu do treści wideo, zmniejszając drgania i oszczędzając baterię'; + @override String get tunneledPlayback => 'Tunelowane odtwarzanie'; + @override String get tunneledPlaybackDescription => 'Użyj sprzętowo przyspieszonego tunelowania wideo. Wyłącz, jeśli widzisz czarny ekran z dźwiękiem przy treściach HDR'; + @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 confirmExitOnBack => 'Potwierdź przed wyjściem'; + @override String get confirmExitOnBackDescription => 'Pokaż dialog potwierdzenia przy naciśnięciu wstecz, aby wyjść z aplikacji'; + @override String get showNavBarLabels => 'Pokaż etykiety paska nawigacji'; + @override String get showNavBarLabelsDescription => 'Wyświetl tekstowe etykiety pod ikonami paska nawigacji'; +} + +// Path: search +class _TranslationsSearchPl implements TranslationsSearchEn { + _TranslationsSearchPl._(this._root); + + final TranslationsPl _root; // ignore: unused_field + + // Translations + @override String get hint => 'Szukaj filmów, seriali, muzyki...'; + @override String get tryDifferentTerm => 'Spróbuj innego wyszukiwania'; + @override String get searchYourMedia => 'Przeszukaj swoje media'; + @override String get enterTitleActorOrKeyword => 'Wprowadź tytuł, aktora lub słowo kluczowe'; +} + +// Path: hotkeys +class _TranslationsHotkeysPl implements TranslationsHotkeysEn { + _TranslationsHotkeysPl._(this._root); + + final TranslationsPl _root; // ignore: unused_field + + // Translations + @override String setShortcutFor({required Object actionName}) => 'Ustaw skrót dla ${actionName}'; + @override String get clearShortcut => 'Wyczyść skrót'; + @override late final _TranslationsHotkeysActionsPl actions = _TranslationsHotkeysActionsPl._(_root); +} + +// Path: pinEntry +class _TranslationsPinEntryPl implements TranslationsPinEntryEn { + _TranslationsPinEntryPl._(this._root); + + final TranslationsPl _root; // ignore: unused_field + + // Translations + @override String get enterPin => 'Wprowadź PIN'; + @override String get showPin => 'Pokaż PIN'; + @override String get hidePin => 'Ukryj PIN'; +} + +// Path: fileInfo +class _TranslationsFileInfoPl implements TranslationsFileInfoEn { + _TranslationsFileInfoPl._(this._root); + + final TranslationsPl _root; // ignore: unused_field + + // Translations + @override String get title => 'Informacje o pliku'; + @override String get video => 'Wideo'; + @override String get audio => 'Audio'; + @override String get file => 'Plik'; + @override String get advanced => 'Zaawansowane'; + @override String get codec => 'Kodek'; + @override String get resolution => 'Rozdzielczość'; + @override String get bitrate => 'Bitrate'; + @override String get frameRate => 'Klatki na sekundę'; + @override String get aspectRatio => 'Proporcje'; + @override String get profile => 'Profil'; + @override String get bitDepth => 'Głębia bitowa'; + @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 channels => 'Kanały'; + @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'; +} + +// Path: mediaMenu +class _TranslationsMediaMenuPl implements TranslationsMediaMenuEn { + _TranslationsMediaMenuPl._(this._root); + + final TranslationsPl _root; // ignore: unused_field + + // Translations + @override String get markAsWatched => 'Oznacz jako obejrzane'; + @override String get markAsUnwatched => 'Oznacz jako nieobejrzane'; + @override String get removeFromContinueWatching => 'Usuń z kontynuowania oglądania'; + @override String get goToSeries => 'Przejdź do serialu'; + @override String get goToSeason => 'Przejdź do sezonu'; + @override String get shufflePlay => 'Odtwarzanie losowe'; + @override String get fileInfo => 'Informacje o pliku'; + @override String get deleteFromServer => 'Usuń z serwera'; + @override String get confirmDelete => 'To trwale usunie te multimedia i ich pliki z twojego serwera. Tej operacji nie można cofnąć.'; + @override String get deleteMultipleWarning => 'Obejmuje to wszystkie odcinki i ich pliki.'; + @override String get mediaDeletedSuccessfully => 'Element multimedialny usunięty pomyślnie'; + @override String get mediaFailedToDelete => 'Nie udało się usunąć elementu multimedialnego'; + @override String get rate => 'Oceń'; +} + +// Path: accessibility +class _TranslationsAccessibilityPl implements TranslationsAccessibilityEn { + _TranslationsAccessibilityPl._(this._root); + + final TranslationsPl _root; // ignore: unused_field + + // Translations + @override String mediaCardMovie({required Object title}) => '${title}, film'; + @override String mediaCardShow({required Object title}) => '${title}, serial 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 => 'obejrzane'; + @override String mediaCardPartiallyWatched({required Object percent}) => '${percent} procent obejrzane'; + @override String get mediaCardUnwatched => 'nieobejrzane'; + @override String get tapToPlay => 'Dotknij, aby odtworzyć'; +} + +// Path: tooltips +class _TranslationsTooltipsPl implements TranslationsTooltipsEn { + _TranslationsTooltipsPl._(this._root); + + final TranslationsPl _root; // ignore: unused_field + + // Translations + @override String get shufflePlay => 'Odtwarzanie losowe'; + @override String get playTrailer => 'Odtwórz zwiastun'; + @override String get markAsWatched => 'Oznacz jako obejrzane'; + @override String get markAsUnwatched => 'Oznacz jako nieobejrzane'; +} + +// Path: videoControls +class _TranslationsVideoControlsPl implements TranslationsVideoControlsEn { + _TranslationsVideoControlsPl._(this._root); + + final TranslationsPl _root; // ignore: unused_field + + // Translations + @override String get audioLabel => 'Audio'; + @override String get subtitlesLabel => 'Napisy'; + @override String get resetToZero => 'Zresetuj do 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} odtwarza później'; + @override String playsEarlier({required Object label}) => '${label} odtwarza wcześniej'; + @override String get noOffset => 'Bez przesunięcia'; + @override String get letterbox => 'Letterbox'; + @override String get fillScreen => 'Wypełnij ekran'; + @override String get stretch => 'Rozciągnij'; + @override String get lockRotation => 'Zablokuj obrót'; + @override String get unlockRotation => 'Odblokuj obrót'; + @override String get timerActive => 'Wyłącznik aktywny'; + @override String playbackWillPauseIn({required Object duration}) => 'Odtwarzanie zatrzyma się za ${duration}'; + @override String get sleepTimerCompleted => 'Wyłącznik czasowy zakończony — odtwarzanie wstrzymane'; + @override String get stillWatching => 'Nadal oglądasz?'; + @override String pausingIn({required Object seconds}) => 'Pauza za ${seconds}s'; + @override String get continueWatching => 'Kontynuuj'; + @override String get autoPlayNext => 'Automatycznie odtwórz następny'; + @override String get playNext => 'Odtwórz następny'; + @override String get playButton => 'Odtwórz'; + @override String get pauseButton => 'Pauza'; + @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'; + @override String get nextButton => 'Następny odcinek'; + @override String get previousChapterButton => 'Poprzedni rozdział'; + @override String get nextChapterButton => 'Następny rozdział'; + @override String get muteButton => 'Wycisz'; + @override String get unmuteButton => 'Wyłącz wyciszenie'; + @override String get settingsButton => 'Ustawienia wideo'; + @override String get audioTrackButton => 'Ścieżki audio'; + @override String get subtitlesButton => 'Napisy'; + @override String get tracksButton => 'Audio i napisy'; + @override String get chaptersButton => 'Rozdziały'; + @override String get versionsButton => 'Wersje wideo'; + @override String get pipButton => 'Tryb obraz w obrazie'; + @override String get aspectRatioButton => 'Proporcje'; + @override String get ambientLighting => 'Oświetlenie otoczenia'; + @override String get ambientLightingOn => 'Włącz oświetlenie otoczenia'; + @override String get ambientLightingOff => 'Wyłącz oświetlenie otoczenia'; + @override String get fullscreenButton => 'Wejdź w pełny ekran'; + @override String get exitFullscreenButton => 'Wyjdź z pełnego ekranu'; + @override String get alwaysOnTopButton => 'Zawsze na wierzchu'; + @override String get rotationLockButton => 'Blokada obrotu'; + @override String get timelineSlider => 'Oś czasu wideo'; + @override String get volumeSlider => 'Poziom głośności'; + @override String endsAt({required Object time}) => 'Kończy się o ${time}'; + @override String get pipActive => 'Odtwarzanie w trybie obraz w obrazie'; + @override String get pipFailed => 'Nie udało się uruchomić trybu obraz w obrazie'; + @override late final _TranslationsVideoControlsPipErrorsPl pipErrors = _TranslationsVideoControlsPipErrorsPl._(_root); + @override String get chapters => 'Rozdziały'; + @override String get noChaptersAvailable => 'Brak dostępnych rozdziałów'; + @override String get queue => 'Kolejka'; + @override String get noQueueItems => 'Brak elementów w kolejce'; +} + +// Path: userStatus +class _TranslationsUserStatusPl implements TranslationsUserStatusEn { + _TranslationsUserStatusPl._(this._root); + + final TranslationsPl _root; // ignore: unused_field + + // Translations + @override String get admin => 'Administrator'; + @override String get restricted => 'Ograniczony'; + @override String get protected => 'Chroniony'; + @override String get current => 'BIEŻĄCY'; +} + +// Path: messages +class _TranslationsMessagesPl implements TranslationsMessagesEn { + _TranslationsMessagesPl._(this._root); + + final TranslationsPl _root; // ignore: unused_field + + // Translations + @override String get markedAsWatched => 'Oznaczono jako obejrzane'; + @override String get markedAsUnwatched => 'Oznaczono jako nieobejrzane'; + @override String get markedAsWatchedOffline => 'Oznaczono jako obejrzane (zsynchronizuje się po połączeniu)'; + @override String get markedAsUnwatchedOffline => 'Oznaczono jako nieobejrzane (zsynchronizuje się po połączeniu)'; + @override String get removedFromContinueWatching => 'Usunięto z kontynuowania oglądania'; + @override String errorLoading({required Object error}) => 'Błąd: ${error}'; + @override String get fileInfoNotAvailable => 'Informacje o pliku niedostępne'; + @override String errorLoadingFileInfo({required Object error}) => 'Błąd ładowania informacji o pliku: ${error}'; + @override String get errorLoadingSeries => 'Błąd ładowania serialu'; + @override String get errorLoadingSeason => 'Błąd ładowania sezonu'; + @override String get musicNotSupported => 'Odtwarzanie muzyki nie jest jeszcze obsługiwane'; + @override String get logsCleared => 'Logi wyczyszczone'; + @override String get logsCopied => 'Logi skopiowane do schowka'; + @override String get noLogsAvailable => 'Brak dostępnych logów'; + @override String libraryScanning({required Object title}) => 'Skanowanie "${title}"...'; + @override String libraryScanStarted({required Object title}) => 'Rozpoczęto skanowanie biblioteki "${title}"'; + @override String libraryScanFailed({required Object error}) => 'Nie udało się zeskanować biblioteki: ${error}'; + @override String metadataRefreshing({required Object title}) => 'Odświeżanie metadanych "${title}"...'; + @override String metadataRefreshStarted({required Object title}) => 'Rozpoczęto odświeżanie metadanych "${title}"'; + @override String metadataRefreshFailed({required Object error}) => 'Nie udało się odświeżyć metadanych: ${error}'; + @override String get logoutConfirm => 'Czy na pewno chcesz się wylogować?'; + @override String get noSeasonsFound => 'Nie znaleziono sezonów'; + @override String get noEpisodesFound => 'Nie znaleziono odcinków w pierwszym sezonie'; + @override String get noEpisodesFoundGeneral => 'Nie znaleziono odcinków'; + @override String get noResultsFound => 'Nie znaleziono wyników'; + @override String sleepTimerSet({required Object label}) => 'Wyłącznik czasowy ustawiony na ${label}'; + @override String get noItemsAvailable => 'Brak dostępnych elementów'; + @override String get failedToCreatePlayQueueNoItems => 'Nie udało się utworzyć kolejki odtwarzania — brak elementów'; + @override String failedPlayback({required Object action, required Object error}) => 'Nie udało się ${action}: ${error}'; + @override String get switchingToCompatiblePlayer => 'Przełączanie na kompatybilny odtwarzacz...'; + @override String get logsUploaded => 'Logi przesłane'; + @override String get logsUploadFailed => 'Nie udało się przesłać logów'; + @override String get logId => 'ID logu'; +} + +// Path: subtitlingStyling +class _TranslationsSubtitlingStylingPl implements TranslationsSubtitlingStylingEn { + _TranslationsSubtitlingStylingPl._(this._root); + + final TranslationsPl _root; // ignore: unused_field + + // Translations + @override String get stylingOptions => 'Opcje stylu'; + @override String get fontSize => 'Rozmiar czcionki'; + @override String get textColor => 'Kolor tekstu'; + @override String get borderSize => 'Rozmiar obramowania'; + @override String get borderColor => 'Kolor obramowania'; + @override String get backgroundOpacity => 'Przezroczystość tła'; + @override String get backgroundColor => 'Kolor tła'; + @override String get position => 'Pozycja'; +} + +// Path: mpvConfig +class _TranslationsMpvConfigPl implements TranslationsMpvConfigEn { + _TranslationsMpvConfigPl._(this._root); + + final TranslationsPl _root; // ignore: unused_field + + // 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 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 configPlaceholder => 'gpu-api=vulkan\nhwdec=auto\n# comment'; +} + +// Path: dialog +class _TranslationsDialogPl implements TranslationsDialogEn { + _TranslationsDialogPl._(this._root); + + final TranslationsPl _root; // ignore: unused_field + + // Translations + @override String get confirmAction => 'Potwierdź działanie'; +} + +// Path: discover +class _TranslationsDiscoverPl implements TranslationsDiscoverEn { + _TranslationsDiscoverPl._(this._root); + + final TranslationsPl _root; // ignore: unused_field + + // Translations + @override String get title => 'Odkryj'; + @override String get switchProfile => 'Zmień profil'; + @override String get noContentAvailable => 'Brak dostępnych treści'; + @override String get addMediaToLibraries => 'Dodaj multimedia do swoich bibliotek'; + @override String get continueWatching => 'Kontynuuj oglądanie'; + @override String playEpisode({required Object season, required Object episode}) => 'S${season}E${episode}'; + @override String get overview => 'Opis'; + @override String get cast => 'Obsada'; + @override String get extras => 'Zwiastuny i dodatki'; + @override String get seasons => 'Sezony'; + @override String get studio => 'Studio'; + @override String get rating => 'Ocena'; + @override String episodeCount({required Object count}) => '${count} odcinków'; + @override String watchedProgress({required Object watched, required Object total}) => '${watched}/${total} obejrzanych'; + @override String get movie => 'Film'; + @override String get tvShow => 'Serial TV'; + @override String minutesLeft({required Object minutes}) => '${minutes} min pozostało'; +} + +// Path: errors +class _TranslationsErrorsPl implements TranslationsErrorsEn { + _TranslationsErrorsPl._(this._root); + + final TranslationsPl _root; // ignore: unused_field + + // Translations + @override String searchFailed({required Object error}) => 'Wyszukiwanie nie powiodło się: ${error}'; + @override String connectionTimeout({required Object context}) => 'Limit czasu połączenia przy ładowaniu ${context}'; + @override String get connectionFailed => 'Nie można połączyć z serwerem Plex'; + @override String failedToLoad({required Object context, required Object error}) => 'Nie udało się załadować ${context}: ${error}'; + @override String get noClientAvailable => 'Brak dostępnego klienta'; + @override String authenticationFailed({required Object error}) => 'Uwierzytelnienie nie powiodło się: ${error}'; + @override String get couldNotLaunchUrl => 'Nie można otworzyć URL uwierzytelniania'; + @override String get pleaseEnterToken => 'Wprowadź token'; + @override String get invalidToken => 'Nieprawidłowy token'; + @override String failedToVerifyToken({required Object error}) => 'Nie udało się zweryfikować tokena: ${error}'; + @override String failedToSwitchProfile({required Object displayName}) => 'Nie udało się przełączyć na ${displayName}'; +} + +// Path: libraries +class _TranslationsLibrariesPl implements TranslationsLibrariesEn { + _TranslationsLibrariesPl._(this._root); + + final TranslationsPl _root; // ignore: unused_field + + // Translations + @override String get title => 'Biblioteki'; + @override String get scanLibraryFiles => 'Skanuj pliki biblioteki'; + @override String get scanLibrary => 'Skanuj bibliotekę'; + @override String get analyze => 'Analizuj'; + @override String get analyzeLibrary => 'Analizuj bibliotekę'; + @override String get refreshMetadata => 'Odśwież metadane'; + @override String get emptyTrash => 'Opróżnij kosz'; + @override String emptyingTrash({required Object title}) => 'Opróżnianie kosza dla "${title}"...'; + @override String trashEmptied({required Object title}) => 'Kosz opróżniony dla "${title}"'; + @override String failedToEmptyTrash({required Object error}) => 'Nie udało się opróżnić kosza: ${error}'; + @override String analyzing({required Object title}) => 'Analizowanie "${title}"...'; + @override String analysisStarted({required Object title}) => 'Analiza rozpoczęta dla "${title}"'; + @override String failedToAnalyze({required Object error}) => 'Nie udało się przeanalizować biblioteki: ${error}'; + @override String get noLibrariesFound => 'Nie znaleziono bibliotek'; + @override String get thisLibraryIsEmpty => 'Ta biblioteka jest pusta'; + @override String get all => 'Wszystkie'; + @override String get clearAll => 'Wyczyść wszystko'; + @override String scanLibraryConfirm({required Object title}) => 'Czy na pewno chcesz zeskanować "${title}"?'; + @override String analyzeLibraryConfirm({required Object title}) => 'Czy na pewno chcesz przeanalizować "${title}"?'; + @override String refreshMetadataConfirm({required Object title}) => 'Czy na pewno chcesz odświeżyć metadane dla "${title}"?'; + @override String emptyTrashConfirm({required Object title}) => 'Czy na pewno chcesz opróżnić kosz dla "${title}"?'; + @override String get manageLibraries => 'Zarządzaj bibliotekami'; + @override String get sort => 'Sortuj'; + @override String get sortBy => 'Sortuj wg'; + @override String get filters => 'Filtry'; + @override String get confirmActionMessage => 'Czy na pewno chcesz wykonać tę operację?'; + @override String get showLibrary => 'Pokaż bibliotekę'; + @override String get hideLibrary => 'Ukryj bibliotekę'; + @override String get libraryOptions => 'Opcje biblioteki'; + @override String get content => 'zawartość biblioteki'; + @override String get selectLibrary => 'Wybierz bibliotekę'; + @override String filtersWithCount({required Object count}) => 'Filtry (${count})'; + @override String get noRecommendations => 'Brak dostępnych rekomendacji'; + @override String get noCollections => 'Brak kolekcji w tej bibliotece'; + @override String get noFoldersFound => 'Nie znaleziono folderów'; + @override String get folders => 'foldery'; + @override late final _TranslationsLibrariesTabsPl tabs = _TranslationsLibrariesTabsPl._(_root); + @override late final _TranslationsLibrariesGroupingsPl groupings = _TranslationsLibrariesGroupingsPl._(_root); +} + +// Path: about +class _TranslationsAboutPl implements TranslationsAboutEn { + _TranslationsAboutPl._(this._root); + + final TranslationsPl _root; // ignore: unused_field + + // Translations + @override String get title => 'O aplikacji'; + @override String get openSourceLicenses => 'Licencje open source'; + @override String versionLabel({required Object version}) => 'Wersja ${version}'; + @override String get appDescription => 'Piękny klient Plex na Flutter'; + @override String get viewLicensesDescription => 'Zobacz licencje bibliotek zewnętrznych'; +} + +// Path: serverSelection +class _TranslationsServerSelectionPl implements TranslationsServerSelectionEn { + _TranslationsServerSelectionPl._(this._root); + + final TranslationsPl _root; // ignore: unused_field + + // Translations + @override String get allServerConnectionsFailed => 'Nie udało się połączyć z żadnym serwerem. Sprawdź sieć i spróbuj ponownie.'; + @override String noServersFoundForAccount({required Object username, required Object email}) => 'Nie znaleziono serwerów dla ${username} (${email})'; + @override String failedToLoadServers({required Object error}) => 'Nie udało się załadować serwerów: ${error}'; +} + +// Path: hubDetail +class _TranslationsHubDetailPl implements TranslationsHubDetailEn { + _TranslationsHubDetailPl._(this._root); + + final TranslationsPl _root; // ignore: unused_field + + // Translations + @override String get title => 'Tytuł'; + @override String get releaseYear => 'Rok premiery'; + @override String get dateAdded => 'Data dodania'; + @override String get rating => 'Ocena'; + @override String get noItemsFound => 'Nie znaleziono elementów'; +} + +// Path: logs +class _TranslationsLogsPl implements TranslationsLogsEn { + _TranslationsLogsPl._(this._root); + + final TranslationsPl _root; // ignore: unused_field + + // Translations + @override String get clearLogs => 'Wyczyść logi'; + @override String get copyLogs => 'Kopiuj logi'; + @override String get uploadLogs => 'Prześlij logi'; + @override String get error => 'Błąd:'; + @override String get stackTrace => 'Ślad stosu:'; +} + +// Path: licenses +class _TranslationsLicensesPl implements TranslationsLicensesEn { + _TranslationsLicensesPl._(this._root); + + final TranslationsPl _root; // ignore: unused_field + + // Translations + @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'; +} + +// Path: navigation +class _TranslationsNavigationPl implements TranslationsNavigationEn { + _TranslationsNavigationPl._(this._root); + + final TranslationsPl _root; // ignore: unused_field + + // Translations + @override String get libraries => 'Biblioteki'; + @override String get downloads => 'Pobrania'; + @override String get liveTv => 'TV na żywo'; +} + +// Path: liveTv +class _TranslationsLiveTvPl implements TranslationsLiveTvEn { + _TranslationsLiveTvPl._(this._root); + + final TranslationsPl _root; // ignore: unused_field + + // Translations + @override String get title => 'TV na żywo'; + @override String get channels => 'Kanały'; + @override String get guide => 'Przewodnik'; + @override String get noChannels => 'Brak dostępnych kanałów'; + @override String get noDvr => 'Brak skonfigurowanego DVR na żadnym serwerze'; + @override String get tuneFailed => 'Nie udało się dostroić kanału'; + @override String get loading => 'Ładowanie kanałów...'; + @override String get nowPlaying => 'Teraz odtwarzane'; + @override String get noPrograms => 'Brak danych o programach'; + @override String channelNumber({required Object number}) => 'Kn. ${number}'; + @override String get live => 'NA ŻYWO'; + @override String get hd => 'HD'; + @override String get premiere => 'NOWE'; + @override String get reloadGuide => 'Odśwież przewodnik'; + @override String get allChannels => 'Wszystkie kanały'; + @override String get now => 'Teraz'; + @override String get today => 'Dzisiaj'; + @override String get midnight => 'Północ'; + @override String get overnight => 'Nocą'; + @override String get morning => 'Rano'; + @override String get daytime => 'W ciągu dnia'; + @override String get evening => 'Wieczorem'; + @override String get lateNight => 'Późna noc'; + @override String get whatsOn => 'Co leci'; + @override String get watchChannel => 'Oglądaj kanał'; +} + +// Path: collections +class _TranslationsCollectionsPl implements TranslationsCollectionsEn { + _TranslationsCollectionsPl._(this._root); + + final TranslationsPl _root; // ignore: unused_field + + // Translations + @override String get title => 'Kolekcje'; + @override String get collection => 'Kolekcja'; + @override String get empty => 'Kolekcja jest pusta'; + @override String get unknownLibrarySection => 'Nie można usunąć: Nieznana sekcja biblioteki'; + @override String get deleteCollection => 'Usuń kolekcję'; + @override String deleteConfirm({required Object title}) => 'Czy na pewno chcesz usunąć "${title}"? Tej operacji nie można cofnąć.'; + @override String get deleted => 'Kolekcja usunięta'; + @override String get deleteFailed => 'Nie udało się usunąć kolekcji'; + @override String deleteFailedWithError({required Object error}) => 'Nie udało się usunąć kolekcji: ${error}'; + @override String failedToLoadItems({required Object error}) => 'Nie udało się załadować elementów kolekcji: ${error}'; + @override String get selectCollection => 'Wybierz kolekcję'; + @override String get collectionName => 'Nazwa kolekcji'; + @override String get enterCollectionName => 'Wprowadź nazwę kolekcji'; + @override String get addedToCollection => 'Dodano do kolekcji'; + @override String get errorAddingToCollection => 'Nie udało się dodać do kolekcji'; + @override String get created => 'Kolekcja utworzona'; + @override String get removeFromCollection => 'Usuń z kolekcji'; + @override String removeFromCollectionConfirm({required Object title}) => 'Usunąć "${title}" z tej kolekcji?'; + @override String get removedFromCollection => 'Usunięto z kolekcji'; + @override String get removeFromCollectionFailed => 'Nie udało się usunąć z kolekcji'; + @override String removeFromCollectionError({required Object error}) => 'Błąd usuwania z kolekcji: ${error}'; +} + +// Path: playlists +class _TranslationsPlaylistsPl implements TranslationsPlaylistsEn { + _TranslationsPlaylistsPl._(this._root); + + final TranslationsPl _root; // ignore: unused_field + + // Translations + @override String get title => 'Playlisty'; + @override String get playlist => 'Playlista'; + @override String get noPlaylists => 'Nie znaleziono playlist'; + @override String get create => 'Utwórz playlistę'; + @override String get playlistName => 'Nazwa playlisty'; + @override String get enterPlaylistName => 'Wprowadź nazwę playlisty'; + @override String get delete => 'Usuń playlistę'; + @override String get removeItem => 'Usuń z playlisty'; + @override String get smartPlaylist => 'Inteligentna playlista'; + @override String itemCount({required Object count}) => '${count} elementów'; + @override String get oneItem => '1 element'; + @override String get emptyPlaylist => 'Ta playlista jest pusta'; + @override String get deleteConfirm => 'Usunąć playlistę?'; + @override String deleteMessage({required Object name}) => 'Czy na pewno chcesz usunąć "${name}"?'; + @override String get created => 'Playlista utworzona'; + @override String get deleted => 'Playlista usunięta'; + @override String get itemAdded => 'Dodano do playlisty'; + @override String get itemRemoved => 'Usunięto z playlisty'; + @override String get selectPlaylist => 'Wybierz playlistę'; + @override String get errorCreating => 'Nie udało się utworzyć playlisty'; + @override String get errorDeleting => 'Nie udało się usunąć playlisty'; + @override String get errorLoading => 'Nie udało się załadować playlist'; + @override String get errorAdding => 'Nie udało się dodać do playlisty'; + @override String get errorReordering => 'Nie udało się zmienić kolejności elementu playlisty'; + @override String get errorRemoving => 'Nie udało się usunąć z playlisty'; +} + +// Path: watchTogether +class _TranslationsWatchTogetherPl implements TranslationsWatchTogetherEn { + _TranslationsWatchTogetherPl._(this._root); + + final TranslationsPl _root; // ignore: unused_field + + // 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 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 anyone => 'Każdy'; + @override String get hostingSession => 'Hostowanie sesji'; + @override String get inSession => 'W sesji'; + @override String get sessionCode => '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 participants => 'Uczestnicy'; + @override String get host => 'Host'; + @override String get hostBadge => 'HOST'; + @override String get youAreHost => 'Jesteś hostem'; + @override String get watchingWithOthers => 'Oglądasz z innymi'; + @override String get endSession => 'Zakończ sesję'; + @override String get leaveSession => 'Opuść sesję'; + @override String get endSessionQuestion => 'Zakończyć sesję?'; + @override String get leaveSessionQuestion => 'Opuścić sesję?'; + @override String get endSessionConfirm => 'To zakończy sesję dla wszystkich uczestników.'; + @override String get leaveSessionConfirm => 'Zostaniesz usunięty z sesji.'; + @override String get endSessionConfirmOverlay => 'To zakończy sesję oglądania dla wszystkich uczestników.'; + @override String get leaveSessionConfirmOverlay => 'Zostaniesz odłączony od sesji oglądania.'; + @override String get end => 'Zakończ'; + @override String get leave => 'Opuść'; + @override String get syncing => 'Synchronizacja...'; + @override String get joinWatchSession => 'Dołącz do sesji oglądania'; + @override String get enterCodeHint => 'Wprowadź 8-znakowy kod'; + @override String get pasteFromClipboard => 'Wklej ze schowka'; + @override String get pleaseEnterCode => 'Wprowadź kod sesji'; + @override String get codeMustBe8Chars => 'Kod sesji musi mieć 8 znaków'; + @override String get joinInstructions => 'Wprowadź kod sesji udostępniony przez hosta, aby dołączyć do sesji oglądania.'; + @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 przekaźnika jest nieosiągalny. Może to być spowodowane blokadą przez twojego dostawcę internetu. Możesz spróbować, ale Oglądaj razem może nie działać.'; + @override String get reconnectingToHost => 'Ponowne łączenie z hostem...'; + @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 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ł'; +} + +// Path: downloads +class _TranslationsDownloadsPl implements TranslationsDownloadsEn { + _TranslationsDownloadsPl._(this._root); + + final TranslationsPl _root; // ignore: unused_field + + // Translations + @override String get title => 'Pobrania'; + @override String get manage => 'Zarządzaj'; + @override String get tvShows => 'Seriale TV'; + @override String get movies => 'Filmy'; + @override String get noDownloads => 'Brak pobrań'; + @override String get noDownloadsDescription => 'Pobrane treści pojawią się tutaj do oglądania offline'; + @override String get downloadNow => 'Pobierz'; + @override String get deleteDownload => 'Usuń pobranie'; + @override String get retryDownload => 'Ponów pobieranie'; + @override String get downloadQueued => 'Pobranie w kolejce'; + @override String episodesQueued({required Object count}) => '${count} odcinków w kolejce pobierania'; + @override String get downloadDeleted => 'Pobranie usunięte'; + @override String deleteConfirm({required Object title}) => 'Czy na pewno chcesz usunąć "${title}"? Spowoduje to usunięcie pobranego pliku z urządzenia.'; + @override String deletingWithProgress({required Object title, required Object current, required Object total}) => 'Usuwanie ${title}... (${current} z ${total})'; + @override String get noDownloadsTree => 'Brak pobrań'; + @override String get pauseAll => 'Wstrzymaj wszystko'; + @override String get resumeAll => 'Wznów wszystko'; + @override String get deleteAll => 'Usuń wszystko'; +} + +// Path: shaders +class _TranslationsShadersPl implements TranslationsShadersEn { + _TranslationsShadersPl._(this._root); + + final TranslationsPl _root; // ignore: unused_field + + // Translations + @override String get title => 'Shadery'; + @override String get noShaderDescription => 'Bez ulepszenia wideo'; + @override String get nvscalerDescription => 'Skalowanie obrazu NVIDIA dla ostrzejszego wideo'; + @override String get qualityFast => 'Szybki'; + @override String get qualityHQ => 'Wysoka jakość'; + @override String get mode => 'Tryb'; + @override String get importShader => 'Importuj shader'; + @override String get customShaderDescription => 'Niestandardowy shader GLSL'; + @override String get shaderImported => 'Shader zaimportowany'; + @override String get shaderImportFailed => 'Nie udało się zaimportować shadera'; + @override String get deleteShader => 'Usuń shader'; + @override String deleteShaderConfirm({required Object name}) => 'Usunąć "${name}"?'; +} + +// Path: companionRemote +class _TranslationsCompanionRemotePl implements TranslationsCompanionRemoteEn { + _TranslationsCompanionRemotePl._(this._root); + + final TranslationsPl _root; // ignore: unused_field + + // Translations + @override String get title => 'Pilot zdalny'; + @override String get connectToDevice => 'Połącz z urządzeniem'; + @override String get hostRemoteSession => 'Hostuj sesję zdalną'; + @override String get controlThisDevice => 'Steruj tym urządzeniem ze swojego telefonu'; + @override String get remoteControl => 'Pilot zdalny'; + @override String get controlDesktop => 'Steruj urządzeniem desktop'; + @override String connectedTo({required Object name}) => 'Połączono z ${name}'; + @override late final _TranslationsCompanionRemoteSessionPl session = _TranslationsCompanionRemoteSessionPl._(_root); + @override late final _TranslationsCompanionRemotePairingPl pairing = _TranslationsCompanionRemotePairingPl._(_root); + @override late final _TranslationsCompanionRemoteRemotePl remote = _TranslationsCompanionRemoteRemotePl._(_root); +} + +// Path: videoSettings +class _TranslationsVideoSettingsPl implements TranslationsVideoSettingsEn { + _TranslationsVideoSettingsPl._(this._root); + + final TranslationsPl _root; // ignore: unused_field + + // Translations + @override String get playbackSettings => 'Ustawienia odtwarzania'; + @override String get playbackSpeed => 'Prędkość odtwarzania'; + @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 audioNormalization => 'Normalizacja audio'; +} + +// Path: externalPlayer +class _TranslationsExternalPlayerPl implements TranslationsExternalPlayerEn { + _TranslationsExternalPlayerPl._(this._root); + + final TranslationsPl _root; // ignore: unused_field + + // Translations + @override String get title => 'Zewnętrzny odtwarzacz'; + @override String get useExternalPlayer => 'Użyj zewnętrznego odtwarzacza'; + @override String get useExternalPlayerDescription => 'Otwieraj wideo w zewnętrznej aplikacji zamiast wbudowanego odtwarzacza'; + @override String get selectPlayer => 'Wybierz odtwarzacz'; + @override String get systemDefault => 'Domyślny systemowy'; + @override String get addCustomPlayer => 'Dodaj niestandardowy odtwarzacz'; + @override String get playerName => 'Nazwa odtwarzacza'; + @override String get playerCommand => 'Polecenie'; + @override String get playerPackage => 'Nazwa pakietu'; + @override String get playerUrlScheme => 'Schemat URL'; + @override String get customPlayer => 'Niestandardowy odtwarzacz'; + @override String get off => 'Wyłączony'; + @override String get launchFailed => 'Nie udało się otworzyć zewnętrznego odtwarzacza'; + @override String appNotInstalled({required Object name}) => '${name} nie jest zainstalowany'; + @override String get playInExternalPlayer => 'Odtwórz w zewnętrznym odtwarzaczu'; +} + +// Path: metadataEdit +class _TranslationsMetadataEditPl implements TranslationsMetadataEditEn { + _TranslationsMetadataEditPl._(this._root); + + final TranslationsPl _root; // ignore: unused_field + + // Translations + @override String get editMetadata => 'Edytuj...'; + @override String get screenTitle => 'Edytuj metadane'; + @override String get basicInfo => 'Podstawowe informacje'; + @override String get artwork => 'Grafika'; + @override String get advancedSettings => 'Ustawienia zaawansowane'; + @override String get title => 'Tytuł'; + @override String get sortTitle => 'Tytuł do sortowania'; + @override String get originalTitle => 'Tytuł oryginalny'; + @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 summary => 'Opis'; + @override String get poster => 'Plakat'; + @override String get background => 'Tło'; + @override String get selectPoster => 'Wybierz plakat'; + @override String get selectBackground => 'Wybierz tło'; + @override String get fromUrl => 'Z URL'; + @override String get uploadFile => 'Prześlij plik'; + @override String get enterImageUrl => 'Wprowadź URL obrazu'; + @override String get imageUrl => 'URL obrazu'; + @override String get metadataUpdated => 'Metadane zaktualizowane'; + @override String get metadataUpdateFailed => 'Nie udało się zaktualizować metadanych'; + @override String get artworkUpdated => 'Grafika zaktualizowana'; + @override String get artworkUpdateFailed => 'Nie udało się zaktualizować grafiki'; + @override String get noArtworkAvailable => 'Brak dostępnej grafiki'; + @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 episodeSorting => 'Sortowanie odcinków'; + @override String get oldestFirst => 'Najstarsze najpierw'; + @override String get newestFirst => 'Najnowsze najpierw'; + @override String get keep => 'Zachowaj'; + @override String get allEpisodes => 'Wszystkie odcinki'; + @override String latestEpisodes({required Object count}) => '${count} najnowszych odcinków'; + @override String get latestEpisode => 'Najnowszy odcinek'; + @override String episodesAddedPastDays({required Object count}) => 'Odcinki dodane w ciągu ostatnich ${count} dni'; + @override String get deleteAfterPlaying => 'Usuń odcinki po odtworzeniu'; + @override String get never => 'Nigdy'; + @override String get afterADay => 'Po jednym dniu'; + @override String get afterAWeek => 'Po tygodniu'; + @override String get afterAMonth => 'Po miesiącu'; + @override String get onNextRefresh => 'Przy następnym odświeżeniu'; + @override String get seasons => 'Sezony'; + @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 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 alwaysEnabled => 'Zawsze włączone'; +} + +// Path: hotkeys.actions +class _TranslationsHotkeysActionsPl implements TranslationsHotkeysActionsEn { + _TranslationsHotkeysActionsPl._(this._root); + + final TranslationsPl _root; // ignore: unused_field + + // Translations + @override String get playPause => 'Odtwórz/Pauza'; + @override String get volumeUp => 'Głośniej'; + @override String get volumeDown => 'Ciszej'; + @override String seekForward({required Object seconds}) => 'Przewiń do przodu (${seconds}s)'; + @override String seekBackward({required Object seconds}) => 'Przewiń do tyłu (${seconds}s)'; + @override String get fullscreenToggle => 'Pełny ekran'; + @override String get muteToggle => 'Wyciszenie'; + @override String get subtitleToggle => 'Napisy'; + @override String get audioTrackNext => 'Następna ścieżka audio'; + @override String get subtitleTrackNext => 'Następna ścieżka napisów'; + @override String get chapterNext => 'Następny rozdział'; + @override String get chapterPrevious => 'Poprzedni rozdział'; + @override String get speedIncrease => 'Zwiększ prędkość'; + @override String get speedDecrease => 'Zmniejsz prędkość'; + @override String get speedReset => 'Zresetuj prędkość'; + @override String get subSeekNext => 'Przewiń do następnego napisu'; + @override String get subSeekPrev => 'Przewiń do poprzedniego napisu'; + @override String get shaderToggle => 'Przełącz shadery'; + @override String get skipMarker => 'Pomiń intro/napisy końcowe'; +} + +// Path: videoControls.pipErrors +class _TranslationsVideoControlsPipErrorsPl implements TranslationsVideoControlsPipErrorsEn { + _TranslationsVideoControlsPipErrorsPl._(this._root); + + final TranslationsPl _root; // ignore: unused_field + + // Translations + @override String get androidVersion => 'Wymaga Androida 8.0 lub nowszego'; + @override String get iosVersion => 'Wymaga iOS 15.0 lub nowszego'; + @override String get permissionDisabled => 'Uprawnienie obraz w obrazie jest wyłączone. Włącz w Ustawienia > Aplikacje > Plezy > Obraz w obrazie'; + @override String get notSupported => 'Urządzenie nie obsługuje trybu obraz w obrazie'; + @override String get voSwitchFailed => 'Nie udało się przełączyć wyjścia wideo dla trybu obraz w obrazie'; + @override String get failed => 'Nie udało się uruchomić trybu obraz w obrazie'; + @override String unknown({required Object error}) => 'Wystąpił błąd: ${error}'; +} + +// Path: libraries.tabs +class _TranslationsLibrariesTabsPl implements TranslationsLibrariesTabsEn { + _TranslationsLibrariesTabsPl._(this._root); + + final TranslationsPl _root; // ignore: unused_field + + // Translations + @override String get recommended => 'Rekomendowane'; + @override String get browse => 'Przeglądaj'; + @override String get collections => 'Kolekcje'; + @override String get playlists => 'Playlisty'; +} + +// Path: libraries.groupings +class _TranslationsLibrariesGroupingsPl implements TranslationsLibrariesGroupingsEn { + _TranslationsLibrariesGroupingsPl._(this._root); + + final TranslationsPl _root; // ignore: unused_field + + // Translations + @override String get all => 'Wszystkie'; + @override String get movies => 'Filmy'; + @override String get shows => 'Seriale TV'; + @override String get seasons => 'Sezony'; + @override String get episodes => 'Odcinki'; + @override String get folders => 'Foldery'; +} + +// Path: companionRemote.session +class _TranslationsCompanionRemoteSessionPl implements TranslationsCompanionRemoteSessionEn { + _TranslationsCompanionRemoteSessionPl._(this._root); + + final TranslationsPl _root; // ignore: unused_field + + // Translations + @override String get creatingSession => 'Tworzenie sesji zdalnej...'; + @override String get failedToCreate => 'Nie udało się utworzyć sesji zdalnej:'; + @override String get noSession => 'Brak dostępnej sesji'; + @override String get scanQrCode => 'Zeskanuj kod QR'; + @override String get orEnterManually => 'Lub wprowadź ręcznie'; + @override String get hostAddress => 'Adres hosta'; + @override String get sessionId => 'ID sesji'; + @override String get pin => 'PIN'; + @override String get connected => 'Połączono'; + @override String get waitingForConnection => 'Oczekiwanie na połączenie...'; + @override String get usePhoneToControl => 'Użyj urządzenia mobilnego do sterowania tą aplikacją'; + @override String copiedToClipboard({required Object label}) => '${label} skopiowane do schowka'; + @override String get copyToClipboard => 'Kopiuj do schowka'; + @override String get newSession => 'Nowa sesja'; + @override String get minimize => 'Minimalizuj'; +} + +// Path: companionRemote.pairing +class _TranslationsCompanionRemotePairingPl implements TranslationsCompanionRemotePairingEn { + _TranslationsCompanionRemotePairingPl._(this._root); + + final TranslationsPl _root; // ignore: unused_field + + // Translations + @override String get scan => 'Skanuj'; + @override String get manual => 'Ręcznie'; + @override String get pairWithDesktop => 'Sparuj z komputerem'; + @override String get enterSessionDetails => 'Wprowadź dane sesji wyświetlone na urządzeniu desktop'; + @override String get hostAddressHint => '192.168.1.100:48632'; + @override String get sessionIdHint => 'Wprowadź 8-znakowe ID sesji'; + @override String get pinHint => 'Wprowadź 6-cyfrowy PIN'; + @override String get connecting => 'Łączenie...'; + @override String get tips => 'Wskazówki'; + @override String get tipDesktop => 'Otwórz Plezy na komputerze i włącz Pilota zdalnego w ustawieniach lub menu'; + @override String get tipScan => 'Użyj zakładki Skanuj, aby szybko sparować skanując kod QR na komputerze'; + @override String get tipWifi => 'Upewnij się, że oba urządzenia są w tej samej sieci WiFi'; + @override String get cameraPermissionRequired => 'Uprawnienie do kamery jest wymagane do skanowania kodów QR.\nPrzyznaj dostęp do kamery w ustawieniach urządzenia.'; + @override String cameraError({required Object error}) => 'Nie udało się uruchomić kamery: ${error}'; + @override String get scanInstruction => 'Skieruj kamerę na kod QR wyświetlony na komputerze'; + @override String get invalidQrCode => 'Nieprawidłowy format kodu QR'; + @override String get validationHostRequired => 'Wprowadź adres hosta'; + @override String get validationHostFormat => 'Format musi być IP:port (np. 192.168.1.100:48632)'; + @override String get validationSessionIdRequired => 'Wprowadź ID sesji'; + @override String get validationSessionIdLength => 'ID sesji musi mieć 8 znaków'; + @override String get validationPinRequired => 'Wprowadź PIN'; + @override String get validationPinLength => 'PIN musi mieć 6 cyfr'; + @override String get connectionTimedOut => 'Upłynął czas połączenia. Sprawdź ID sesji i PIN.'; + @override String get sessionNotFound => 'Nie znaleziono sesji. Sprawdź swoje dane.'; + @override String failedToConnect({required Object error}) => 'Nie udało się połączyć: ${error}'; +} + +// Path: companionRemote.remote +class _TranslationsCompanionRemoteRemotePl implements TranslationsCompanionRemoteRemoteEn { + _TranslationsCompanionRemoteRemotePl._(this._root); + + final TranslationsPl _root; // ignore: unused_field + + // Translations + @override String get disconnectConfirm => 'Czy chcesz się rozłączyć od sesji zdalnej?'; + @override String get reconnecting => 'Ponowne łączenie...'; + @override String attemptOf({required Object current}) => 'Próba ${current} z 5'; + @override String get retryNow => 'Ponów teraz'; + @override String get connectionError => 'Błąd połączenia'; + @override String get notConnected => 'Niepołączono'; + @override String get tabRemote => 'Pilot'; + @override String get tabPlay => 'Odtwórz'; + @override String get tabMore => 'Więcej'; + @override String get menu => 'Menu'; + @override String get tabNavigation => 'Nawigacja'; + @override String get tabDiscover => 'Odkryj'; + @override String get tabLibraries => 'Biblioteki'; + @override String get tabSearch => 'Szukaj'; + @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 next => 'Następny'; + @override String get seekBack => 'Przewiń wstecz'; + @override String get stop => 'Stop'; + @override String get seekForward => 'Przewiń w przód'; + @override String get volume => 'Głośność'; + @override String get volumeDown => 'Ciszej'; + @override String get volumeUp => 'Głośniej'; + @override String get fullscreen => 'Pełny ekran'; + @override String get subtitles => 'Napisy'; + @override String get audio => 'Audio'; + @override String get searchHint => 'Szukaj na komputerze...'; +} + +/// 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 TranslationsPl { + dynamic _flatMapFunction(String path) { + return switch (path) { + 'app.title' => 'Plezy', + 'auth.signInWithPlex' => 'Zaloguj się przez Plex', + 'auth.showQRCode' => 'Pokaż kod QR', + 'auth.authenticate' => 'Uwierzytelnienie', + 'auth.debugEnterToken' => 'Debug: Wprowadź token Plex', + 'auth.plexTokenLabel' => 'Token autoryzacji Plex', + 'auth.plexTokenHint' => 'Wprowadź swój token Plex.tv', + 'auth.authenticationTimeout' => 'Upłynął czas uwierzytelniania. Spróbuj ponownie.', + 'auth.scanQRToSignIn' => 'Zeskanuj ten kod QR, aby się zalogować', + 'auth.waitingForAuth' => 'Oczekiwanie na uwierzytelnienie...\nDokończ logowanie w przeglądarce.', + 'auth.useBrowser' => 'Użyj przeglądarki', + 'common.cancel' => 'Anuluj', + 'common.save' => 'Zapisz', + 'common.close' => 'Zamknij', + 'common.clear' => 'Wyczyść', + 'common.reset' => 'Resetuj', + 'common.later' => 'Później', + 'common.submit' => 'Wyślij', + 'common.confirm' => 'Potwierdź', + 'common.retry' => 'Ponów', + 'common.logout' => 'Wyloguj', + 'common.unknown' => 'Nieznane', + 'common.refresh' => 'Odśwież', + 'common.yes' => 'Tak', + 'common.no' => 'Nie', + 'common.delete' => 'Usuń', + 'common.shuffle' => 'Losowo', + 'common.addTo' => 'Dodaj do...', + 'common.createNew' => 'Utwórz nowy', + 'common.remove' => 'Usuń', + 'common.paste' => 'Wklej', + 'common.connect' => 'Połącz', + 'common.disconnect' => 'Rozłącz', + 'common.play' => 'Odtwórz', + 'common.pause' => 'Pauza', + 'common.resume' => 'Wznów', + 'common.error' => 'Błąd', + 'common.search' => 'Szukaj', + 'common.home' => 'Strona główna', + 'common.back' => 'Wstecz', + 'common.settings' => 'Ustawienia', + 'common.mute' => 'Wycisz', + 'common.ok' => 'OK', + 'common.loading' => 'Ładowanie...', + 'common.reconnect' => 'Połącz ponownie', + 'common.exitConfirmTitle' => 'Zamknąć aplikację?', + 'common.exitConfirmMessage' => 'Czy na pewno chcesz wyjść?', + 'common.dontAskAgain' => 'Nie pytaj ponownie', + 'common.exit' => 'Wyjdź', + 'common.viewAll' => 'Pokaż wszystko', + 'common.checkingNetwork' => 'Sprawdzanie sieci...', + 'common.refreshingServers' => 'Odświeżanie serwerów...', + 'common.loadingServers' => 'Ładowanie serwerów...', + 'common.connectingToServers' => 'Łączenie z serwerami...', + 'common.startingOfflineMode' => 'Uruchamianie trybu offline...', + 'screens.licenses' => 'Licencje', + 'screens.switchProfile' => 'Zmień profil', + 'screens.subtitleStyling' => 'Styl napisów', + 'screens.mpvConfig' => 'mpv.conf', + 'screens.logs' => 'Logi', + 'update.available' => 'Dostępna aktualizacja', + 'update.versionAvailable' => ({required Object version}) => 'Dostępna wersja ${version}', + 'update.currentVersion' => ({required Object version}) => 'Bieżąca: ${version}', + 'update.skipVersion' => 'Pomiń tę wersję', + 'update.viewRelease' => 'Zobacz wydanie', + 'update.latestVersion' => 'Masz najnowszą wersję', + 'update.checkFailed' => 'Nie udało się sprawdzić aktualizacji', + 'settings.title' => 'Ustawienia', + 'settings.language' => 'Język', + 'settings.theme' => 'Motyw', + 'settings.appearance' => 'Wygląd', + 'settings.videoPlayback' => 'Odtwarzanie wideo', + 'settings.advanced' => 'Zaawansowane', + 'settings.episodePosterMode' => 'Styl plakatu odcinka', + 'settings.seriesPoster' => 'Plakat serialu', + 'settings.seriesPosterDescription' => 'Pokaż plakat serialu dla wszystkich odcinków', + 'settings.seasonPoster' => 'Plakat sezonu', + 'settings.seasonPosterDescription' => 'Pokaż plakat odpowiedniego sezonu dla odcinków', + 'settings.episodeThumbnail' => 'Miniatura odcinka', + 'settings.episodeThumbnailDescription' => 'Pokaż miniatury zrzutów ekranu odcinków w formacie 16:9', + 'settings.showHeroSectionDescription' => 'Wyświetl karuzelę wyróżnionych treści na ekranie głównym', + 'settings.secondsLabel' => 'Sekundy', + 'settings.minutesLabel' => 'Minuty', + 'settings.secondsShort' => 's', + 'settings.minutesShort' => 'm', + 'settings.durationHint' => ({required Object min, required Object max}) => 'Wprowadź czas (${min}-${max})', + 'settings.systemTheme' => 'Systemowy', + 'settings.systemThemeDescription' => 'Podążaj za ustawieniami systemu', + 'settings.lightTheme' => 'Jasny', + 'settings.darkTheme' => 'Ciemny', + 'settings.oledTheme' => 'OLED', + 'settings.oledThemeDescription' => 'Czysta czerń dla ekranów OLED', + 'settings.libraryDensity' => 'Gęstość biblioteki', + 'settings.compact' => 'Kompaktowy', + 'settings.compactDescription' => 'Mniejsze karty, więcej widocznych elementów', + 'settings.normal' => 'Normalny', + 'settings.normalDescription' => 'Domyślny rozmiar', + 'settings.comfortable' => 'Wygodny', + 'settings.comfortableDescription' => 'Większe karty, mniej widocznych elementów', + 'settings.viewMode' => 'Tryb widoku', + 'settings.gridView' => 'Siatka', + 'settings.gridViewDescription' => 'Wyświetl elementy w układzie siatki', + 'settings.listView' => 'Lista', + 'settings.listViewDescription' => 'Wyświetl elementy w układzie listy', + 'settings.showHeroSection' => 'Pokaż sekcję wyróżnioną', + 'settings.useGlobalHubs' => 'Użyj układu Plex Home', + 'settings.useGlobalHubsDescription' => 'Pokaż huby strony głównej jak w oficjalnym kliencie Plex. Gdy wyłączone, pokazuje rekomendacje per biblioteka.', + 'settings.showServerNameOnHubs' => 'Pokaż nazwę serwera w hubach', + 'settings.showServerNameOnHubsDescription' => 'Zawsze wyświetlaj nazwę serwera w tytułach hubów. Gdy wyłączone, pokazuje tylko dla zduplikowanych nazw.', + 'settings.alwaysKeepSidebarOpen' => 'Zawsze utrzymuj panel boczny otwarty', + 'settings.alwaysKeepSidebarOpenDescription' => 'Panel boczny jest rozwinięty, a obszar treści dostosowuje się', + 'settings.showUnwatchedCount' => 'Pokaż liczbę nieobejrzanych', + 'settings.showUnwatchedCountDescription' => 'Wyświetl liczbę nieobejrzanych odcinków w serialach i sezonach', + 'settings.hideSpoilers' => 'Ukryj spoilery nieobejrzanych odcinków', + 'settings.hideSpoilersDescription' => 'Rozmyj miniatury i ukryj opisy odcinków, których jeszcze nie obejrzałeś', + 'settings.playerBackend' => 'Backend odtwarzacza', + 'settings.exoPlayer' => 'ExoPlayer (Zalecany)', + 'settings.exoPlayerDescription' => 'Natywny odtwarzacz Android z lepszą obsługą sprzętową', + 'settings.mpv' => 'mpv', + 'settings.mpvDescription' => 'Zaawansowany odtwarzacz z większą liczbą funkcji i obsługą napisów ASS', + '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.bufferSizeWarning' => ({required Object heap, required Object size}) => 'Twoje urządzenie ma ${heap}MB pamięci. Bufor ${size}MB może powodować problemy z odtwarzaniem.', + 'settings.subtitleStyling' => 'Styl napisów', + 'settings.subtitleStylingDescription' => 'Dostosuj wygląd napisów', + 'settings.smallSkipDuration' => 'Krótki skok', + 'settings.largeSkipDuration' => 'Długi skok', + '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' => 'Automatycznie zapisuj preferencje języka audio i napisów przy zmianie ścieżek podczas odtwarzania', + 'settings.clickVideoTogglesPlayback' => 'Kliknięcie wideo przełącza odtwarzanie/pauzę', + 'settings.clickVideoTogglesPlaybackDescription' => 'Gdy włączone, kliknięcie na odtwarzacz wideo odtwarza/wstrzymuje. W przeciwnym razie pokazuje/ukrywa kontrolki.', + 'settings.videoPlayerControls' => 'Kontrolki odtwarzacza wideo', + 'settings.keyboardShortcuts' => 'Skróty klawiszowe', + 'settings.keyboardShortcutsDescription' => 'Dostosuj skróty klawiszowe', + 'settings.videoPlayerNavigation' => 'Nawigacja odtwarzacza wideo', + 'settings.videoPlayerNavigationDescription' => 'Użyj klawiszy strzałek do nawigacji kontrolkami odtwarzacza', + '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.viewLogs' => 'Pokaż logi', + 'settings.viewLogsDescription' => 'Pokaż logi aplikacji', + 'settings.clearCache' => 'Wyczyść pamięć podręczną', + 'settings.clearCacheDescription' => 'Spowoduje to wyczyszczenie wszystkich zapisanych obrazów i danych. Po wyczyszczeniu aplikacja może ładować treści wolniej.', + 'settings.clearCacheSuccess' => 'Pamięć podręczna wyczyszczona', + 'settings.resetSettings' => 'Zresetuj ustawienia', + 'settings.resetSettingsDescription' => 'Wszystkie ustawienia zostaną przywrócone do wartości domyślnych. Tej operacji nie można cofnąć.', + 'settings.resetSettingsSuccess' => 'Ustawienia zresetowane pomyślnie', + 'settings.shortcutsReset' => 'Skróty przywrócone do domyślnych', + 'settings.about' => 'O aplikacji', + 'settings.aboutDescription' => 'Informacje o aplikacji i licencje', + 'settings.updates' => 'Aktualizacje', + 'settings.updateAvailable' => 'Dostępna aktualizacja', + 'settings.checkForUpdates' => 'Sprawdź aktualizacje', + 'settings.validationErrorEnterNumber' => 'Wprowadź prawidłową liczbę', + '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.autoSkip' => 'Automatyczne pomijanie', + 'settings.autoSkipIntro' => 'Automatyczne pomijanie intro', + 'settings.autoSkipIntroDescription' => 'Automatycznie pomijaj znaczniki intro po kilku sekundach', + 'settings.autoSkipCredits' => 'Automatyczne pomijanie napisów końcowych', + 'settings.autoSkipCreditsDescription' => 'Automatycznie pomijaj napisy końcowe i odtwórz następny odcinek', + 'settings.autoSkipDelay' => 'Opóźnienie automatycznego pomijania', + 'settings.autoSkipDelayDescription' => ({required Object seconds}) => 'Czekaj ${seconds} sekund przed automatycznym pominięciem', + 'settings.downloads' => 'Pobrania', + 'settings.downloadLocationDescription' => 'Wybierz miejsce przechowywania pobranych treści', + '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.downloadLocationSelectError' => 'Nie udało się wybrać folderu', + 'settings.downloadOnWifiOnly' => 'Pobieraj tylko przez WiFi', + 'settings.downloadOnWifiOnlyDescription' => 'Blokuj pobieranie na danych komórkowych', + 'settings.cellularDownloadBlocked' => 'Pobieranie na danych komórkowych jest wyłączone. Połącz się z WiFi 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}%', + 'settings.discordRichPresence' => 'Discord Rich Presence', + 'settings.discordRichPresenceDescription' => 'Pokaż, co oglądasz na Discordzie', + 'settings.autoPip' => 'Automatyczny obraz w obrazie', + 'settings.autoPipDescription' => 'Automatycznie przejdź do trybu obraz w obrazie przy wyjściu z aplikacji podczas odtwarzania', + 'settings.matchContentFrameRate' => 'Dopasuj częstotliwość klatek do treści', + 'settings.matchContentFrameRateDescription' => 'Dostosuj częstotliwość odświeżania ekranu do treści wideo, zmniejszając drgania i oszczędzając baterię', + 'settings.tunneledPlayback' => 'Tunelowane odtwarzanie', + 'settings.tunneledPlaybackDescription' => 'Użyj sprzętowo przyspieszonego tunelowania wideo. Wyłącz, jeśli widzisz czarny ekran z dźwiękiem przy treściach HDR', + 'settings.requireProfileSelectionOnOpen' => 'Pytaj o profil przy otwarciu aplikacji', + 'settings.requireProfileSelectionOnOpenDescription' => 'Pokaż wybór profilu za każdym razem, gdy aplikacja jest otwierana', + 'settings.confirmExitOnBack' => 'Potwierdź przed wyjściem', + 'settings.confirmExitOnBackDescription' => 'Pokaż dialog potwierdzenia przy naciśnięciu wstecz, aby wyjść z aplikacji', + 'settings.showNavBarLabels' => 'Pokaż etykiety paska nawigacji', + 'settings.showNavBarLabelsDescription' => 'Wyświetl tekstowe etykiety pod ikonami paska nawigacji', + 'search.hint' => 'Szukaj filmów, seriali, muzyki...', + 'search.tryDifferentTerm' => 'Spróbuj innego wyszukiwania', + 'search.searchYourMedia' => 'Przeszukaj swoje media', + 'search.enterTitleActorOrKeyword' => 'Wprowadź tytuł, aktora lub słowo kluczowe', + 'hotkeys.setShortcutFor' => ({required Object actionName}) => 'Ustaw skrót dla ${actionName}', + 'hotkeys.clearShortcut' => 'Wyczyść skrót', + 'hotkeys.actions.playPause' => 'Odtwórz/Pauza', + 'hotkeys.actions.volumeUp' => 'Głośniej', + 'hotkeys.actions.volumeDown' => 'Ciszej', + 'hotkeys.actions.seekForward' => ({required Object seconds}) => 'Przewiń do przodu (${seconds}s)', + 'hotkeys.actions.seekBackward' => ({required Object seconds}) => 'Przewiń do tyłu (${seconds}s)', + 'hotkeys.actions.fullscreenToggle' => 'Pełny ekran', + 'hotkeys.actions.muteToggle' => 'Wyciszenie', + 'hotkeys.actions.subtitleToggle' => 'Napisy', + 'hotkeys.actions.audioTrackNext' => 'Następna ścieżka audio', + 'hotkeys.actions.subtitleTrackNext' => 'Następna ścieżka napisów', + 'hotkeys.actions.chapterNext' => 'Następny rozdział', + 'hotkeys.actions.chapterPrevious' => 'Poprzedni rozdział', + 'hotkeys.actions.speedIncrease' => 'Zwiększ prędkość', + 'hotkeys.actions.speedDecrease' => 'Zmniejsz prędkość', + 'hotkeys.actions.speedReset' => 'Zresetuj prędkość', + 'hotkeys.actions.subSeekNext' => 'Przewiń do następnego napisu', + 'hotkeys.actions.subSeekPrev' => 'Przewiń do poprzedniego napisu', + 'hotkeys.actions.shaderToggle' => 'Przełącz shadery', + 'hotkeys.actions.skipMarker' => 'Pomiń intro/napisy końcowe', + 'pinEntry.enterPin' => 'Wprowadź PIN', + 'pinEntry.showPin' => 'Pokaż PIN', + 'pinEntry.hidePin' => 'Ukryj PIN', + 'fileInfo.title' => 'Informacje o pliku', + 'fileInfo.video' => 'Wideo', + 'fileInfo.audio' => 'Audio', + 'fileInfo.file' => 'Plik', + 'fileInfo.advanced' => 'Zaawansowane', + 'fileInfo.codec' => 'Kodek', + 'fileInfo.resolution' => 'Rozdzielczość', + 'fileInfo.bitrate' => 'Bitrate', + 'fileInfo.frameRate' => 'Klatki na sekundę', + 'fileInfo.aspectRatio' => 'Proporcje', + 'fileInfo.profile' => 'Profil', + 'fileInfo.bitDepth' => 'Głębia bitowa', + 'fileInfo.colorSpace' => 'Przestrzeń kolorów', + 'fileInfo.colorRange' => 'Zakres kolorów', + 'fileInfo.colorPrimaries' => 'Kolory podstawowe', + 'fileInfo.chromaSubsampling' => 'Subsampling chrominancji', + 'fileInfo.channels' => 'Kanały', + 'fileInfo.path' => 'Ścieżka', + 'fileInfo.size' => 'Rozmiar', + 'fileInfo.container' => 'Kontener', + 'fileInfo.duration' => 'Czas trwania', + 'fileInfo.optimizedForStreaming' => 'Zoptymalizowane do strumieniowania', + 'fileInfo.has64bitOffsets' => '64-bitowe offsety', + 'mediaMenu.markAsWatched' => 'Oznacz jako obejrzane', + 'mediaMenu.markAsUnwatched' => 'Oznacz jako nieobejrzane', + 'mediaMenu.removeFromContinueWatching' => 'Usuń z kontynuowania oglądania', + 'mediaMenu.goToSeries' => 'Przejdź do serialu', + 'mediaMenu.goToSeason' => 'Przejdź do sezonu', + 'mediaMenu.shufflePlay' => 'Odtwarzanie losowe', + 'mediaMenu.fileInfo' => 'Informacje o pliku', + 'mediaMenu.deleteFromServer' => 'Usuń z serwera', + 'mediaMenu.confirmDelete' => 'To trwale usunie te multimedia i ich pliki z twojego serwera. Tej operacji nie można cofnąć.', + 'mediaMenu.deleteMultipleWarning' => 'Obejmuje to wszystkie odcinki i ich pliki.', + 'mediaMenu.mediaDeletedSuccessfully' => 'Element multimedialny usunięty pomyślnie', + 'mediaMenu.mediaFailedToDelete' => 'Nie udało się usunąć elementu multimedialnego', + 'mediaMenu.rate' => 'Oceń', + 'accessibility.mediaCardMovie' => ({required Object title}) => '${title}, film', + 'accessibility.mediaCardShow' => ({required Object title}) => '${title}, serial TV', + '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.mediaCardUnwatched' => 'nieobejrzane', + 'accessibility.tapToPlay' => 'Dotknij, aby odtworzyć', + 'tooltips.shufflePlay' => 'Odtwarzanie losowe', + 'tooltips.playTrailer' => 'Odtwórz zwiastun', + 'tooltips.markAsWatched' => 'Oznacz jako obejrzane', + 'tooltips.markAsUnwatched' => 'Oznacz jako nieobejrzane', + 'videoControls.audioLabel' => 'Audio', + 'videoControls.subtitlesLabel' => 'Napisy', + 'videoControls.resetToZero' => 'Zresetuj do 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} odtwarza później', + 'videoControls.playsEarlier' => ({required Object label}) => '${label} odtwarza wcześniej', + 'videoControls.noOffset' => 'Bez przesunięcia', + 'videoControls.letterbox' => 'Letterbox', + 'videoControls.fillScreen' => 'Wypełnij ekran', + 'videoControls.stretch' => 'Rozciągnij', + 'videoControls.lockRotation' => 'Zablokuj obrót', + 'videoControls.unlockRotation' => 'Odblokuj obrót', + 'videoControls.timerActive' => 'Wyłącznik aktywny', + 'videoControls.playbackWillPauseIn' => ({required Object duration}) => 'Odtwarzanie zatrzyma się za ${duration}', + 'videoControls.sleepTimerCompleted' => 'Wyłącznik czasowy zakończony — odtwarzanie wstrzymane', + 'videoControls.stillWatching' => 'Nadal oglądasz?', + 'videoControls.pausingIn' => ({required Object seconds}) => 'Pauza za ${seconds}s', + 'videoControls.continueWatching' => 'Kontynuuj', + 'videoControls.autoPlayNext' => 'Automatycznie odtwórz następny', + 'videoControls.playNext' => 'Odtwórz następny', + 'videoControls.playButton' => 'Odtwórz', + 'videoControls.pauseButton' => 'Pauza', + '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', + 'videoControls.nextButton' => 'Następny odcinek', + 'videoControls.previousChapterButton' => 'Poprzedni rozdział', + 'videoControls.nextChapterButton' => 'Następny rozdział', + 'videoControls.muteButton' => 'Wycisz', + 'videoControls.unmuteButton' => 'Wyłącz wyciszenie', + 'videoControls.settingsButton' => 'Ustawienia wideo', + 'videoControls.audioTrackButton' => 'Ścieżki audio', + 'videoControls.subtitlesButton' => 'Napisy', + 'videoControls.tracksButton' => 'Audio i napisy', + 'videoControls.chaptersButton' => 'Rozdziały', + 'videoControls.versionsButton' => 'Wersje wideo', + 'videoControls.pipButton' => 'Tryb obraz w obrazie', + 'videoControls.aspectRatioButton' => 'Proporcje', + 'videoControls.ambientLighting' => 'Oświetlenie otoczenia', + 'videoControls.ambientLightingOn' => 'Włącz oświetlenie otoczenia', + 'videoControls.ambientLightingOff' => 'Wyłącz oświetlenie otoczenia', + 'videoControls.fullscreenButton' => 'Wejdź w pełny ekran', + 'videoControls.exitFullscreenButton' => 'Wyjdź z pełnego ekranu', + 'videoControls.alwaysOnTopButton' => 'Zawsze na wierzchu', + 'videoControls.rotationLockButton' => 'Blokada obrotu', + 'videoControls.timelineSlider' => 'Oś czasu wideo', + 'videoControls.volumeSlider' => 'Poziom głośności', + 'videoControls.endsAt' => ({required Object time}) => 'Kończy się o ${time}', + 'videoControls.pipActive' => 'Odtwarzanie w trybie obraz w obrazie', + 'videoControls.pipFailed' => 'Nie udało się uruchomić trybu obraz w obrazie', + 'videoControls.pipErrors.androidVersion' => 'Wymaga Androida 8.0 lub nowszego', + 'videoControls.pipErrors.iosVersion' => 'Wymaga iOS 15.0 lub nowszego', + 'videoControls.pipErrors.permissionDisabled' => 'Uprawnienie obraz w obrazie jest wyłączone. Włącz w Ustawienia > Aplikacje > Plezy > Obraz w obrazie', + 'videoControls.pipErrors.notSupported' => 'Urządzenie nie obsługuje trybu obraz w obrazie', + 'videoControls.pipErrors.voSwitchFailed' => 'Nie udało się przełączyć wyjścia wideo dla trybu obraz w obrazie', + 'videoControls.pipErrors.failed' => 'Nie udało się uruchomić trybu obraz w obrazie', + 'videoControls.pipErrors.unknown' => ({required Object error}) => 'Wystąpił błąd: ${error}', + 'videoControls.chapters' => 'Rozdziały', + 'videoControls.noChaptersAvailable' => 'Brak dostępnych rozdziałów', + 'videoControls.queue' => 'Kolejka', + 'videoControls.noQueueItems' => 'Brak elementów w kolejce', + 'userStatus.admin' => 'Administrator', + 'userStatus.restricted' => 'Ograniczony', + 'userStatus.protected' => 'Chroniony', + 'userStatus.current' => 'BIEŻĄCY', + '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)', + 'messages.removedFromContinueWatching' => 'Usunięto z kontynuowania oglądania', + 'messages.errorLoading' => ({required Object error}) => 'Błąd: ${error}', + 'messages.fileInfoNotAvailable' => 'Informacje o pliku niedostępne', + 'messages.errorLoadingFileInfo' => ({required Object error}) => 'Błąd ładowania informacji o pliku: ${error}', + 'messages.errorLoadingSeries' => 'Błąd ładowania serialu', + 'messages.errorLoadingSeason' => 'Błąd ładowania sezonu', + 'messages.musicNotSupported' => 'Odtwarzanie muzyki nie jest jeszcze obsługiwane', + 'messages.logsCleared' => 'Logi wyczyszczone', + 'messages.logsCopied' => 'Logi skopiowane do schowka', + 'messages.noLogsAvailable' => 'Brak dostępnych logów', + 'messages.libraryScanning' => ({required Object title}) => 'Skanowanie "${title}"...', + 'messages.libraryScanStarted' => ({required Object title}) => 'Rozpoczęto skanowanie biblioteki "${title}"', + 'messages.libraryScanFailed' => ({required Object error}) => 'Nie udało się zeskanować biblioteki: ${error}', + 'messages.metadataRefreshing' => ({required Object title}) => 'Odświeżanie metadanych "${title}"...', + 'messages.metadataRefreshStarted' => ({required Object title}) => 'Rozpoczęto odświeżanie metadanych "${title}"', + 'messages.metadataRefreshFailed' => ({required Object error}) => 'Nie udało się odświeżyć metadanych: ${error}', + 'messages.logoutConfirm' => 'Czy na pewno chcesz się wylogować?', + 'messages.noSeasonsFound' => 'Nie znaleziono sezonów', + 'messages.noEpisodesFound' => 'Nie znaleziono odcinków w pierwszym sezonie', + 'messages.noEpisodesFoundGeneral' => 'Nie znaleziono odcinków', + 'messages.noResultsFound' => 'Nie znaleziono wyników', + 'messages.sleepTimerSet' => ({required Object label}) => 'Wyłącznik czasowy ustawiony na ${label}', + 'messages.noItemsAvailable' => 'Brak dostępnych elementów', + 'messages.failedToCreatePlayQueueNoItems' => 'Nie udało się utworzyć kolejki odtwarzania — brak elementów', + 'messages.failedPlayback' => ({required Object action, required Object error}) => 'Nie udało się ${action}: ${error}', + 'messages.switchingToCompatiblePlayer' => 'Przełączanie na kompatybilny odtwarzacz...', + 'messages.logsUploaded' => 'Logi przesłane', + 'messages.logsUploadFailed' => 'Nie udało się przesłać logów', + 'messages.logId' => 'ID logu', + 'subtitlingStyling.stylingOptions' => 'Opcje stylu', + 'subtitlingStyling.fontSize' => 'Rozmiar czcionki', + 'subtitlingStyling.textColor' => 'Kolor tekstu', + 'subtitlingStyling.borderSize' => 'Rozmiar obramowania', + 'subtitlingStyling.borderColor' => 'Kolor obramowania', + 'subtitlingStyling.backgroundOpacity' => 'Przezroczystość tła', + 'subtitlingStyling.backgroundColor' => 'Kolor tła', + 'subtitlingStyling.position' => 'Pozycja', + '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.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.configPlaceholder' => 'gpu-api=vulkan\nhwdec=auto\n# comment', + 'dialog.confirmAction' => 'Potwierdź działanie', + 'discover.title' => 'Odkryj', + 'discover.switchProfile' => 'Zmień profil', + 'discover.noContentAvailable' => 'Brak dostępnych treści', + 'discover.addMediaToLibraries' => 'Dodaj multimedia do swoich bibliotek', + 'discover.continueWatching' => 'Kontynuuj oglądanie', + 'discover.playEpisode' => ({required Object season, required Object episode}) => 'S${season}E${episode}', + 'discover.overview' => 'Opis', + 'discover.cast' => 'Obsada', + 'discover.extras' => 'Zwiastuny i dodatki', + 'discover.seasons' => 'Sezony', + 'discover.studio' => 'Studio', + 'discover.rating' => 'Ocena', + 'discover.episodeCount' => ({required Object count}) => '${count} odcinków', + 'discover.watchedProgress' => ({required Object watched, required Object total}) => '${watched}/${total} obejrzanych', + 'discover.movie' => 'Film', + 'discover.tvShow' => 'Serial TV', + 'discover.minutesLeft' => ({required Object minutes}) => '${minutes} min pozostało', + 'errors.searchFailed' => ({required Object error}) => 'Wyszukiwanie nie powiodło się: ${error}', + 'errors.connectionTimeout' => ({required Object context}) => 'Limit czasu połączenia przy ładowaniu ${context}', + 'errors.connectionFailed' => 'Nie można połączyć z serwerem Plex', + 'errors.failedToLoad' => ({required Object context, required Object error}) => 'Nie udało się załadować ${context}: ${error}', + 'errors.noClientAvailable' => 'Brak dostępnego klienta', + 'errors.authenticationFailed' => ({required Object error}) => 'Uwierzytelnienie nie powiodło się: ${error}', + 'errors.couldNotLaunchUrl' => 'Nie można otworzyć URL uwierzytelniania', + 'errors.pleaseEnterToken' => 'Wprowadź token', + 'errors.invalidToken' => 'Nieprawidłowy token', + 'errors.failedToVerifyToken' => ({required Object error}) => 'Nie udało się zweryfikować tokena: ${error}', + 'errors.failedToSwitchProfile' => ({required Object displayName}) => 'Nie udało się przełączyć na ${displayName}', + 'libraries.title' => 'Biblioteki', + 'libraries.scanLibraryFiles' => 'Skanuj pliki biblioteki', + 'libraries.scanLibrary' => 'Skanuj bibliotekę', + 'libraries.analyze' => 'Analizuj', + 'libraries.analyzeLibrary' => 'Analizuj bibliotekę', + 'libraries.refreshMetadata' => 'Odśwież metadane', + 'libraries.emptyTrash' => 'Opróżnij kosz', + 'libraries.emptyingTrash' => ({required Object title}) => 'Opróżnianie kosza dla "${title}"...', + 'libraries.trashEmptied' => ({required Object title}) => 'Kosz opróżniony dla "${title}"', + 'libraries.failedToEmptyTrash' => ({required Object error}) => 'Nie udało się opróżnić kosza: ${error}', + 'libraries.analyzing' => ({required Object title}) => 'Analizowanie "${title}"...', + 'libraries.analysisStarted' => ({required Object title}) => 'Analiza rozpoczęta dla "${title}"', + 'libraries.failedToAnalyze' => ({required Object error}) => 'Nie udało się przeanalizować biblioteki: ${error}', + 'libraries.noLibrariesFound' => 'Nie znaleziono bibliotek', + 'libraries.thisLibraryIsEmpty' => 'Ta biblioteka jest pusta', + 'libraries.all' => 'Wszystkie', + 'libraries.clearAll' => 'Wyczyść wszystko', + 'libraries.scanLibraryConfirm' => ({required Object title}) => 'Czy na pewno chcesz zeskanować "${title}"?', + 'libraries.analyzeLibraryConfirm' => ({required Object title}) => 'Czy na pewno chcesz przeanalizować "${title}"?', + 'libraries.refreshMetadataConfirm' => ({required Object title}) => 'Czy na pewno chcesz odświeżyć metadane dla "${title}"?', + 'libraries.emptyTrashConfirm' => ({required Object title}) => 'Czy na pewno chcesz opróżnić kosz dla "${title}"?', + 'libraries.manageLibraries' => 'Zarządzaj bibliotekami', + 'libraries.sort' => 'Sortuj', + 'libraries.sortBy' => 'Sortuj wg', + 'libraries.filters' => 'Filtry', + 'libraries.confirmActionMessage' => 'Czy na pewno chcesz wykonać tę operację?', + 'libraries.showLibrary' => 'Pokaż bibliotekę', + 'libraries.hideLibrary' => 'Ukryj bibliotekę', + 'libraries.libraryOptions' => 'Opcje biblioteki', + 'libraries.content' => 'zawartość biblioteki', + 'libraries.selectLibrary' => 'Wybierz bibliotekę', + 'libraries.filtersWithCount' => ({required Object count}) => 'Filtry (${count})', + 'libraries.noRecommendations' => 'Brak dostępnych rekomendacji', + 'libraries.noCollections' => 'Brak kolekcji w tej bibliotece', + 'libraries.noFoldersFound' => 'Nie znaleziono folderów', + 'libraries.folders' => 'foldery', + 'libraries.tabs.recommended' => 'Rekomendowane', + 'libraries.tabs.browse' => 'Przeglądaj', + 'libraries.tabs.collections' => 'Kolekcje', + 'libraries.tabs.playlists' => 'Playlisty', + 'libraries.groupings.all' => 'Wszystkie', + 'libraries.groupings.movies' => 'Filmy', + 'libraries.groupings.shows' => 'Seriale TV', + 'libraries.groupings.seasons' => 'Sezony', + 'libraries.groupings.episodes' => 'Odcinki', + 'libraries.groupings.folders' => 'Foldery', + 'about.title' => 'O aplikacji', + 'about.openSourceLicenses' => 'Licencje open source', + 'about.versionLabel' => ({required Object version}) => 'Wersja ${version}', + 'about.appDescription' => 'Piękny klient Plex na Flutter', + 'about.viewLicensesDescription' => 'Zobacz licencje bibliotek zewnętrznych', + 'serverSelection.allServerConnectionsFailed' => 'Nie udało się połączyć z żadnym serwerem. Sprawdź sieć i spróbuj ponownie.', + '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ł', + 'hubDetail.releaseYear' => 'Rok premiery', + 'hubDetail.dateAdded' => 'Data dodania', + 'hubDetail.rating' => 'Ocena', + 'hubDetail.noItemsFound' => 'Nie znaleziono elementów', + 'logs.clearLogs' => 'Wyczyść logi', + 'logs.copyLogs' => 'Kopiuj logi', + 'logs.uploadLogs' => 'Prześlij logi', + 'logs.error' => 'Błąd:', + 'logs.stackTrace' => 'Ślad stosu:', + 'licenses.relatedPackages' => 'Powiązane pakiety', + 'licenses.license' => 'Licencja', + 'licenses.licenseNumber' => ({required Object number}) => 'Licencja ${number}', + 'licenses.licensesCount' => ({required Object count}) => '${count} licencji', + 'navigation.libraries' => 'Biblioteki', + 'navigation.downloads' => 'Pobrania', + 'navigation.liveTv' => 'TV na żywo', + 'liveTv.title' => 'TV na żywo', + 'liveTv.channels' => 'Kanały', + 'liveTv.guide' => 'Przewodnik', + 'liveTv.noChannels' => 'Brak dostępnych kanałów', + 'liveTv.noDvr' => 'Brak skonfigurowanego DVR na żadnym serwerze', + 'liveTv.tuneFailed' => 'Nie udało się dostroić kanału', + 'liveTv.loading' => 'Ładowanie kanałów...', + 'liveTv.nowPlaying' => 'Teraz odtwarzane', + 'liveTv.noPrograms' => 'Brak danych o programach', + 'liveTv.channelNumber' => ({required Object number}) => 'Kn. ${number}', + 'liveTv.live' => 'NA ŻYWO', + 'liveTv.hd' => 'HD', + 'liveTv.premiere' => 'NOWE', + _ => null, + } ?? switch (path) { + 'liveTv.reloadGuide' => 'Odśwież przewodnik', + 'liveTv.allChannels' => 'Wszystkie kanały', + 'liveTv.now' => 'Teraz', + 'liveTv.today' => 'Dzisiaj', + 'liveTv.midnight' => 'Północ', + 'liveTv.overnight' => 'Nocą', + 'liveTv.morning' => 'Rano', + 'liveTv.daytime' => 'W ciągu dnia', + 'liveTv.evening' => 'Wieczorem', + 'liveTv.lateNight' => 'Późna noc', + 'liveTv.whatsOn' => 'Co leci', + 'liveTv.watchChannel' => 'Oglądaj kanał', + 'collections.title' => 'Kolekcje', + 'collections.collection' => 'Kolekcja', + 'collections.empty' => 'Kolekcja jest pusta', + 'collections.unknownLibrarySection' => 'Nie można usunąć: Nieznana sekcja biblioteki', + 'collections.deleteCollection' => 'Usuń kolekcję', + 'collections.deleteConfirm' => ({required Object title}) => 'Czy na pewno chcesz usunąć "${title}"? Tej operacji nie można cofnąć.', + 'collections.deleted' => 'Kolekcja usunięta', + 'collections.deleteFailed' => 'Nie udało się usunąć kolekcji', + 'collections.deleteFailedWithError' => ({required Object error}) => 'Nie udało się usunąć kolekcji: ${error}', + 'collections.failedToLoadItems' => ({required Object error}) => 'Nie udało się załadować elementów kolekcji: ${error}', + 'collections.selectCollection' => 'Wybierz kolekcję', + 'collections.collectionName' => 'Nazwa kolekcji', + 'collections.enterCollectionName' => 'Wprowadź nazwę kolekcji', + 'collections.addedToCollection' => 'Dodano do kolekcji', + 'collections.errorAddingToCollection' => 'Nie udało się dodać do kolekcji', + 'collections.created' => 'Kolekcja utworzona', + 'collections.removeFromCollection' => 'Usuń z kolekcji', + 'collections.removeFromCollectionConfirm' => ({required Object title}) => 'Usunąć "${title}" z tej kolekcji?', + 'collections.removedFromCollection' => 'Usunięto z kolekcji', + 'collections.removeFromCollectionFailed' => 'Nie udało się usunąć z kolekcji', + 'collections.removeFromCollectionError' => ({required Object error}) => 'Błąd usuwania z kolekcji: ${error}', + 'playlists.title' => 'Playlisty', + 'playlists.playlist' => 'Playlista', + 'playlists.noPlaylists' => 'Nie znaleziono playlist', + 'playlists.create' => 'Utwórz playlistę', + 'playlists.playlistName' => 'Nazwa playlisty', + 'playlists.enterPlaylistName' => 'Wprowadź nazwę playlisty', + 'playlists.delete' => 'Usuń playlistę', + 'playlists.removeItem' => 'Usuń z playlisty', + 'playlists.smartPlaylist' => 'Inteligentna playlista', + 'playlists.itemCount' => ({required Object count}) => '${count} elementów', + 'playlists.oneItem' => '1 element', + 'playlists.emptyPlaylist' => 'Ta playlista jest pusta', + 'playlists.deleteConfirm' => 'Usunąć playlistę?', + 'playlists.deleteMessage' => ({required Object name}) => 'Czy na pewno chcesz usunąć "${name}"?', + 'playlists.created' => 'Playlista utworzona', + 'playlists.deleted' => 'Playlista usunięta', + 'playlists.itemAdded' => 'Dodano do playlisty', + 'playlists.itemRemoved' => 'Usunięto z playlisty', + 'playlists.selectPlaylist' => 'Wybierz playlistę', + 'playlists.errorCreating' => 'Nie udało się utworzyć playlisty', + 'playlists.errorDeleting' => 'Nie udało się usunąć playlisty', + 'playlists.errorLoading' => 'Nie udało się załadować playlist', + 'playlists.errorAdding' => 'Nie udało się dodać do playlisty', + 'playlists.errorReordering' => 'Nie udało się zmienić kolejności elementu playlisty', + 'playlists.errorRemoving' => 'Nie udało się usunąć z playlisty', + 'watchTogether.title' => 'Oglądaj razem', + 'watchTogether.description' => 'Oglądaj treści zsynchronizowane z przyjaciółmi i rodziną', + '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.anyone' => 'Każdy', + 'watchTogether.hostingSession' => 'Hostowanie sesji', + 'watchTogether.inSession' => 'W sesji', + 'watchTogether.sessionCode' => '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.participants' => 'Uczestnicy', + 'watchTogether.host' => 'Host', + 'watchTogether.hostBadge' => 'HOST', + 'watchTogether.youAreHost' => 'Jesteś hostem', + 'watchTogether.watchingWithOthers' => 'Oglądasz z innymi', + 'watchTogether.endSession' => 'Zakończ sesję', + 'watchTogether.leaveSession' => 'Opuść sesję', + 'watchTogether.endSessionQuestion' => 'Zakończyć sesję?', + 'watchTogether.leaveSessionQuestion' => 'Opuścić sesję?', + 'watchTogether.endSessionConfirm' => 'To zakończy sesję dla wszystkich uczestników.', + 'watchTogether.leaveSessionConfirm' => 'Zostaniesz usunięty z sesji.', + 'watchTogether.endSessionConfirmOverlay' => 'To zakończy sesję oglądania dla wszystkich uczestników.', + 'watchTogether.leaveSessionConfirmOverlay' => 'Zostaniesz odłączony od sesji oglądania.', + 'watchTogether.end' => 'Zakończ', + 'watchTogether.leave' => 'Opuść', + 'watchTogether.syncing' => 'Synchronizacja...', + 'watchTogether.joinWatchSession' => 'Dołącz do sesji oglądania', + 'watchTogether.enterCodeHint' => 'Wprowadź 8-znakowy kod', + 'watchTogether.pasteFromClipboard' => 'Wklej ze schowka', + 'watchTogether.pleaseEnterCode' => 'Wprowadź kod sesji', + 'watchTogether.codeMustBe8Chars' => 'Kod sesji musi mieć 8 znaków', + 'watchTogether.joinInstructions' => 'Wprowadź kod sesji udostępniony przez hosta, aby dołączyć do sesji oglądania.', + '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 przekaźnika jest nieosiągalny. Może to być spowodowane blokadą przez twojego dostawcę internetu. Możesz spróbować, ale Oglądaj razem może nie działać.', + 'watchTogether.reconnectingToHost' => 'Ponowne łączenie z hostem...', + 'watchTogether.currentPlayback' => 'Bieżące odtwarzanie', + 'watchTogether.joinCurrentPlayback' => 'Dołącz do bieżącego odtwarzania', + 'watchTogether.joinCurrentPlaybackDescription' => 'Wróć do tego, co host aktualnie ogląda', + 'watchTogether.failedToOpenCurrentPlayback' => 'Nie udało się otworzyć bieżącego odtwarzania', + 'watchTogether.participantJoined' => ({required Object name}) => '${name} dołączył', + 'watchTogether.participantLeft' => ({required Object name}) => '${name} opuścił', + 'downloads.title' => 'Pobrania', + 'downloads.manage' => 'Zarządzaj', + 'downloads.tvShows' => 'Seriale TV', + 'downloads.movies' => 'Filmy', + 'downloads.noDownloads' => 'Brak pobrań', + 'downloads.noDownloadsDescription' => 'Pobrane treści pojawią się tutaj do oglądania offline', + 'downloads.downloadNow' => 'Pobierz', + 'downloads.deleteDownload' => 'Usuń pobranie', + 'downloads.retryDownload' => 'Ponów pobieranie', + 'downloads.downloadQueued' => 'Pobranie w kolejce', + 'downloads.episodesQueued' => ({required Object count}) => '${count} odcinków w kolejce pobierania', + 'downloads.downloadDeleted' => 'Pobranie usunięte', + 'downloads.deleteConfirm' => ({required Object title}) => 'Czy na pewno chcesz usunąć "${title}"? Spowoduje to usunięcie pobranego pliku z urządzenia.', + 'downloads.deletingWithProgress' => ({required Object title, required Object current, required Object total}) => 'Usuwanie ${title}... (${current} z ${total})', + 'downloads.noDownloadsTree' => 'Brak pobrań', + 'downloads.pauseAll' => 'Wstrzymaj wszystko', + 'downloads.resumeAll' => 'Wznów wszystko', + 'downloads.deleteAll' => 'Usuń wszystko', + 'shaders.title' => 'Shadery', + 'shaders.noShaderDescription' => 'Bez ulepszenia wideo', + 'shaders.nvscalerDescription' => 'Skalowanie obrazu NVIDIA dla ostrzejszego wideo', + 'shaders.qualityFast' => 'Szybki', + 'shaders.qualityHQ' => 'Wysoka jakość', + 'shaders.mode' => 'Tryb', + 'shaders.importShader' => 'Importuj shader', + 'shaders.customShaderDescription' => 'Niestandardowy shader GLSL', + 'shaders.shaderImported' => 'Shader zaimportowany', + 'shaders.shaderImportFailed' => 'Nie udało się zaimportować shadera', + 'shaders.deleteShader' => 'Usuń shader', + 'shaders.deleteShaderConfirm' => ({required Object name}) => 'Usunąć "${name}"?', + 'companionRemote.title' => 'Pilot zdalny', + 'companionRemote.connectToDevice' => 'Połącz z urządzeniem', + 'companionRemote.hostRemoteSession' => 'Hostuj sesję zdalną', + 'companionRemote.controlThisDevice' => 'Steruj tym urządzeniem ze swojego telefonu', + 'companionRemote.remoteControl' => 'Pilot zdalny', + 'companionRemote.controlDesktop' => 'Steruj urządzeniem desktop', + 'companionRemote.connectedTo' => ({required Object name}) => 'Połączono z ${name}', + 'companionRemote.session.creatingSession' => 'Tworzenie sesji zdalnej...', + 'companionRemote.session.failedToCreate' => 'Nie udało się utworzyć sesji zdalnej:', + 'companionRemote.session.noSession' => 'Brak dostępnej sesji', + 'companionRemote.session.scanQrCode' => 'Zeskanuj kod QR', + 'companionRemote.session.orEnterManually' => 'Lub wprowadź ręcznie', + 'companionRemote.session.hostAddress' => 'Adres hosta', + 'companionRemote.session.sessionId' => 'ID sesji', + 'companionRemote.session.pin' => 'PIN', + 'companionRemote.session.connected' => 'Połączono', + 'companionRemote.session.waitingForConnection' => 'Oczekiwanie na połączenie...', + 'companionRemote.session.usePhoneToControl' => 'Użyj urządzenia mobilnego do sterowania tą aplikacją', + 'companionRemote.session.copiedToClipboard' => ({required Object label}) => '${label} skopiowane do schowka', + 'companionRemote.session.copyToClipboard' => 'Kopiuj do schowka', + 'companionRemote.session.newSession' => 'Nowa sesja', + 'companionRemote.session.minimize' => 'Minimalizuj', + 'companionRemote.pairing.scan' => 'Skanuj', + 'companionRemote.pairing.manual' => 'Ręcznie', + 'companionRemote.pairing.pairWithDesktop' => 'Sparuj z komputerem', + 'companionRemote.pairing.enterSessionDetails' => 'Wprowadź dane sesji wyświetlone na urządzeniu desktop', + 'companionRemote.pairing.hostAddressHint' => '192.168.1.100:48632', + 'companionRemote.pairing.sessionIdHint' => 'Wprowadź 8-znakowe ID sesji', + 'companionRemote.pairing.pinHint' => 'Wprowadź 6-cyfrowy PIN', + 'companionRemote.pairing.connecting' => 'Łączenie...', + 'companionRemote.pairing.tips' => 'Wskazówki', + 'companionRemote.pairing.tipDesktop' => 'Otwórz Plezy na komputerze i włącz Pilota zdalnego w ustawieniach lub menu', + 'companionRemote.pairing.tipScan' => 'Użyj zakładki Skanuj, aby szybko sparować skanując kod QR na komputerze', + 'companionRemote.pairing.tipWifi' => 'Upewnij się, że oba urządzenia są w tej samej sieci WiFi', + 'companionRemote.pairing.cameraPermissionRequired' => 'Uprawnienie do kamery jest wymagane do skanowania kodów QR.\nPrzyznaj dostęp do kamery w ustawieniach urządzenia.', + 'companionRemote.pairing.cameraError' => ({required Object error}) => 'Nie udało się uruchomić kamery: ${error}', + 'companionRemote.pairing.scanInstruction' => 'Skieruj kamerę na kod QR wyświetlony na komputerze', + 'companionRemote.pairing.invalidQrCode' => 'Nieprawidłowy format kodu QR', + 'companionRemote.pairing.validationHostRequired' => 'Wprowadź adres hosta', + 'companionRemote.pairing.validationHostFormat' => 'Format musi być IP:port (np. 192.168.1.100:48632)', + 'companionRemote.pairing.validationSessionIdRequired' => 'Wprowadź ID sesji', + 'companionRemote.pairing.validationSessionIdLength' => 'ID sesji musi mieć 8 znaków', + 'companionRemote.pairing.validationPinRequired' => 'Wprowadź PIN', + 'companionRemote.pairing.validationPinLength' => 'PIN musi mieć 6 cyfr', + 'companionRemote.pairing.connectionTimedOut' => 'Upłynął czas połączenia. Sprawdź ID sesji i PIN.', + 'companionRemote.pairing.sessionNotFound' => 'Nie znaleziono sesji. Sprawdź swoje dane.', + 'companionRemote.pairing.failedToConnect' => ({required Object error}) => 'Nie udało się połączyć: ${error}', + 'companionRemote.remote.disconnectConfirm' => 'Czy chcesz się rozłączyć od sesji zdalnej?', + 'companionRemote.remote.reconnecting' => 'Ponowne łączenie...', + 'companionRemote.remote.attemptOf' => ({required Object current}) => 'Próba ${current} z 5', + 'companionRemote.remote.retryNow' => 'Ponów teraz', + 'companionRemote.remote.connectionError' => 'Błąd połączenia', + 'companionRemote.remote.notConnected' => 'Niepołączono', + 'companionRemote.remote.tabRemote' => 'Pilot', + 'companionRemote.remote.tabPlay' => 'Odtwórz', + 'companionRemote.remote.tabMore' => 'Więcej', + 'companionRemote.remote.menu' => 'Menu', + 'companionRemote.remote.tabNavigation' => 'Nawigacja', + 'companionRemote.remote.tabDiscover' => 'Odkryj', + 'companionRemote.remote.tabLibraries' => 'Biblioteki', + 'companionRemote.remote.tabSearch' => 'Szukaj', + 'companionRemote.remote.tabDownloads' => 'Pobrania', + 'companionRemote.remote.tabSettings' => 'Ustawienia', + 'companionRemote.remote.previous' => 'Poprzedni', + 'companionRemote.remote.playPause' => 'Odtwórz/Pauza', + 'companionRemote.remote.next' => 'Następny', + 'companionRemote.remote.seekBack' => 'Przewiń wstecz', + 'companionRemote.remote.stop' => 'Stop', + 'companionRemote.remote.seekForward' => 'Przewiń w przód', + 'companionRemote.remote.volume' => 'Głośność', + 'companionRemote.remote.volumeDown' => 'Ciszej', + 'companionRemote.remote.volumeUp' => 'Głośniej', + 'companionRemote.remote.fullscreen' => 'Pełny ekran', + 'companionRemote.remote.subtitles' => 'Napisy', + 'companionRemote.remote.audio' => 'Audio', + 'companionRemote.remote.searchHint' => 'Szukaj na komputerze...', + 'videoSettings.playbackSettings' => 'Ustawienia odtwarzania', + 'videoSettings.playbackSpeed' => 'Prędkość odtwarzania', + '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.audioNormalization' => 'Normalizacja audio', + 'externalPlayer.title' => 'Zewnętrzny odtwarzacz', + 'externalPlayer.useExternalPlayer' => 'Użyj zewnętrznego odtwarzacza', + 'externalPlayer.useExternalPlayerDescription' => 'Otwieraj wideo w zewnętrznej aplikacji zamiast wbudowanego odtwarzacza', + 'externalPlayer.selectPlayer' => 'Wybierz odtwarzacz', + 'externalPlayer.systemDefault' => 'Domyślny systemowy', + 'externalPlayer.addCustomPlayer' => 'Dodaj niestandardowy odtwarzacz', + 'externalPlayer.playerName' => 'Nazwa odtwarzacza', + 'externalPlayer.playerCommand' => 'Polecenie', + 'externalPlayer.playerPackage' => 'Nazwa pakietu', + 'externalPlayer.playerUrlScheme' => 'Schemat URL', + 'externalPlayer.customPlayer' => 'Niestandardowy odtwarzacz', + 'externalPlayer.off' => 'Wyłączony', + 'externalPlayer.launchFailed' => 'Nie udało się otworzyć zewnętrznego odtwarzacza', + 'externalPlayer.appNotInstalled' => ({required Object name}) => '${name} nie jest zainstalowany', + 'externalPlayer.playInExternalPlayer' => 'Odtwórz w zewnętrznym odtwarzaczu', + 'metadataEdit.editMetadata' => 'Edytuj...', + 'metadataEdit.screenTitle' => 'Edytuj metadane', + 'metadataEdit.basicInfo' => 'Podstawowe informacje', + 'metadataEdit.artwork' => 'Grafika', + 'metadataEdit.advancedSettings' => 'Ustawienia zaawansowane', + 'metadataEdit.title' => 'Tytuł', + 'metadataEdit.sortTitle' => 'Tytuł do sortowania', + 'metadataEdit.originalTitle' => 'Tytuł oryginalny', + 'metadataEdit.releaseDate' => 'Data premiery', + 'metadataEdit.contentRating' => 'Klasyfikacja wiekowa', + 'metadataEdit.studio' => 'Studio', + 'metadataEdit.tagline' => 'Tagline', + 'metadataEdit.summary' => 'Opis', + 'metadataEdit.poster' => 'Plakat', + 'metadataEdit.background' => 'Tło', + 'metadataEdit.selectPoster' => 'Wybierz plakat', + 'metadataEdit.selectBackground' => 'Wybierz tło', + 'metadataEdit.fromUrl' => 'Z URL', + 'metadataEdit.uploadFile' => 'Prześlij plik', + 'metadataEdit.enterImageUrl' => 'Wprowadź URL obrazu', + 'metadataEdit.imageUrl' => 'URL obrazu', + 'metadataEdit.metadataUpdated' => 'Metadane zaktualizowane', + 'metadataEdit.metadataUpdateFailed' => 'Nie udało się zaktualizować metadanych', + 'metadataEdit.artworkUpdated' => 'Grafika zaktualizowana', + 'metadataEdit.artworkUpdateFailed' => 'Nie udało się zaktualizować grafiki', + 'metadataEdit.noArtworkAvailable' => 'Brak dostępnej grafiki', + 'metadataEdit.notSet' => 'Nie ustawiono', + 'metadataEdit.libraryDefault' => 'Domyślne biblioteki', + 'metadataEdit.accountDefault' => 'Domyślne konta', + 'metadataEdit.seriesDefault' => 'Domyślne serialu', + 'metadataEdit.episodeSorting' => 'Sortowanie odcinków', + 'metadataEdit.oldestFirst' => 'Najstarsze najpierw', + 'metadataEdit.newestFirst' => 'Najnowsze najpierw', + 'metadataEdit.keep' => 'Zachowaj', + 'metadataEdit.allEpisodes' => 'Wszystkie odcinki', + 'metadataEdit.latestEpisodes' => ({required Object count}) => '${count} najnowszych odcinków', + 'metadataEdit.latestEpisode' => 'Najnowszy odcinek', + 'metadataEdit.episodesAddedPastDays' => ({required Object count}) => 'Odcinki dodane w ciągu ostatnich ${count} dni', + 'metadataEdit.deleteAfterPlaying' => 'Usuń odcinki po odtworzeniu', + 'metadataEdit.never' => 'Nigdy', + 'metadataEdit.afterADay' => 'Po jednym dniu', + 'metadataEdit.afterAWeek' => 'Po tygodniu', + 'metadataEdit.afterAMonth' => 'Po miesiącu', + 'metadataEdit.onNextRefresh' => 'Przy następnym odświeżeniu', + 'metadataEdit.seasons' => 'Sezony', + '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.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.alwaysEnabled' => 'Zawsze włączone', + _ => null, + }; + } +} diff --git a/lib/i18n/strings_pt.g.dart b/lib/i18n/strings_pt.g.dart new file mode 100644 index 00000000..7c30f8fc --- /dev/null +++ b/lib/i18n/strings_pt.g.dart @@ -0,0 +1,2125 @@ +/// +/// 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 TranslationsPt with BaseTranslations implements Translations { + /// You can call this constructor and build your own translation instance of this locale. + /// Constructing via the enum [AppLocale.build] is preferred. + TranslationsPt({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.pt, + overrides: overrides ?? {}, + cardinalResolver: cardinalResolver, + ordinalResolver: ordinalResolver, + ) { + $meta.setFlatMapFunction(_flatMapFunction); + } + + /// Metadata for the translations of . + @override final TranslationMetadata $meta; + + /// Access flat map + @override dynamic operator[](String key) => $meta.getTranslation(key); + + late final TranslationsPt _root = this; // ignore: unused_field + + @override + TranslationsPt $copyWith({TranslationMetadata? meta}) => TranslationsPt(meta: meta ?? this.$meta); + + // Translations + @override late final _TranslationsAppPt app = _TranslationsAppPt._(_root); + @override late final _TranslationsAuthPt auth = _TranslationsAuthPt._(_root); + @override late final _TranslationsCommonPt common = _TranslationsCommonPt._(_root); + @override late final _TranslationsScreensPt screens = _TranslationsScreensPt._(_root); + @override late final _TranslationsUpdatePt update = _TranslationsUpdatePt._(_root); + @override late final _TranslationsSettingsPt settings = _TranslationsSettingsPt._(_root); + @override late final _TranslationsSearchPt search = _TranslationsSearchPt._(_root); + @override late final _TranslationsHotkeysPt hotkeys = _TranslationsHotkeysPt._(_root); + @override late final _TranslationsPinEntryPt pinEntry = _TranslationsPinEntryPt._(_root); + @override late final _TranslationsFileInfoPt fileInfo = _TranslationsFileInfoPt._(_root); + @override late final _TranslationsMediaMenuPt mediaMenu = _TranslationsMediaMenuPt._(_root); + @override late final _TranslationsAccessibilityPt accessibility = _TranslationsAccessibilityPt._(_root); + @override late final _TranslationsTooltipsPt tooltips = _TranslationsTooltipsPt._(_root); + @override late final _TranslationsVideoControlsPt videoControls = _TranslationsVideoControlsPt._(_root); + @override late final _TranslationsUserStatusPt userStatus = _TranslationsUserStatusPt._(_root); + @override late final _TranslationsMessagesPt messages = _TranslationsMessagesPt._(_root); + @override late final _TranslationsSubtitlingStylingPt subtitlingStyling = _TranslationsSubtitlingStylingPt._(_root); + @override late final _TranslationsMpvConfigPt mpvConfig = _TranslationsMpvConfigPt._(_root); + @override late final _TranslationsDialogPt dialog = _TranslationsDialogPt._(_root); + @override late final _TranslationsDiscoverPt discover = _TranslationsDiscoverPt._(_root); + @override late final _TranslationsErrorsPt errors = _TranslationsErrorsPt._(_root); + @override late final _TranslationsLibrariesPt libraries = _TranslationsLibrariesPt._(_root); + @override late final _TranslationsAboutPt about = _TranslationsAboutPt._(_root); + @override late final _TranslationsServerSelectionPt serverSelection = _TranslationsServerSelectionPt._(_root); + @override late final _TranslationsHubDetailPt hubDetail = _TranslationsHubDetailPt._(_root); + @override late final _TranslationsLogsPt logs = _TranslationsLogsPt._(_root); + @override late final _TranslationsLicensesPt licenses = _TranslationsLicensesPt._(_root); + @override late final _TranslationsNavigationPt navigation = _TranslationsNavigationPt._(_root); + @override late final _TranslationsLiveTvPt liveTv = _TranslationsLiveTvPt._(_root); + @override late final _TranslationsCollectionsPt collections = _TranslationsCollectionsPt._(_root); + @override late final _TranslationsPlaylistsPt playlists = _TranslationsPlaylistsPt._(_root); + @override late final _TranslationsWatchTogetherPt watchTogether = _TranslationsWatchTogetherPt._(_root); + @override late final _TranslationsDownloadsPt downloads = _TranslationsDownloadsPt._(_root); + @override late final _TranslationsShadersPt shaders = _TranslationsShadersPt._(_root); + @override late final _TranslationsCompanionRemotePt companionRemote = _TranslationsCompanionRemotePt._(_root); + @override late final _TranslationsVideoSettingsPt videoSettings = _TranslationsVideoSettingsPt._(_root); + @override late final _TranslationsExternalPlayerPt externalPlayer = _TranslationsExternalPlayerPt._(_root); + @override late final _TranslationsMetadataEditPt metadataEdit = _TranslationsMetadataEditPt._(_root); +} + +// Path: app +class _TranslationsAppPt implements TranslationsAppEn { + _TranslationsAppPt._(this._root); + + final TranslationsPt _root; // ignore: unused_field + + // Translations + @override String get title => 'Plezy'; +} + +// Path: auth +class _TranslationsAuthPt implements TranslationsAuthEn { + _TranslationsAuthPt._(this._root); + + final TranslationsPt _root; // ignore: unused_field + + // Translations + @override String get signInWithPlex => 'Entrar com Plex'; + @override String get showQRCode => 'Mostrar QR Code'; + @override String get authenticate => 'Autenticar'; + @override String get debugEnterToken => 'Debug: Inserir Token Plex'; + @override String get plexTokenLabel => 'Token de Autenticação Plex'; + @override String get plexTokenHint => 'Insira seu token do Plex.tv'; + @override String get authenticationTimeout => 'A autenticação expirou. Tente novamente.'; + @override String get scanQRToSignIn => 'Escaneie este QR code para entrar'; + @override String get waitingForAuth => 'Aguardando autenticação...\nConclua o login no seu navegador.'; + @override String get useBrowser => 'Usar navegador'; +} + +// Path: common +class _TranslationsCommonPt implements TranslationsCommonEn { + _TranslationsCommonPt._(this._root); + + final TranslationsPt _root; // ignore: unused_field + + // Translations + @override String get cancel => 'Cancelar'; + @override String get save => 'Salvar'; + @override String get close => 'Fechar'; + @override String get clear => 'Limpar'; + @override String get reset => 'Redefinir'; + @override String get later => 'Depois'; + @override String get submit => 'Enviar'; + @override String get confirm => 'Confirmar'; + @override String get retry => 'Tentar novamente'; + @override String get logout => 'Sair'; + @override String get unknown => 'Desconhecido'; + @override String get refresh => 'Atualizar'; + @override String get yes => 'Sim'; + @override String get no => 'Não'; + @override String get delete => 'Excluir'; + @override String get shuffle => 'Aleatório'; + @override String get addTo => 'Adicionar a...'; + @override String get createNew => 'Criar novo'; + @override String get remove => 'Remover'; + @override String get paste => 'Colar'; + @override String get connect => 'Conectar'; + @override String get disconnect => 'Desconectar'; + @override String get play => 'Reproduzir'; + @override String get pause => 'Pausar'; + @override String get resume => 'Retomar'; + @override String get error => 'Erro'; + @override String get search => 'Buscar'; + @override String get home => 'Início'; + @override String get back => 'Voltar'; + @override String get settings => 'Configurações'; + @override String get mute => 'Silenciar'; + @override String get ok => 'OK'; + @override String get loading => 'Carregando...'; + @override String get reconnect => 'Reconectar'; + @override String get exitConfirmTitle => 'Sair do app?'; + @override String get exitConfirmMessage => 'Tem certeza que deseja sair?'; + @override String get dontAskAgain => 'Não perguntar novamente'; + @override String get exit => 'Sair'; + @override String get viewAll => 'Ver Tudo'; + @override String get checkingNetwork => 'Verificando rede...'; + @override String get refreshingServers => 'Atualizando servidores...'; + @override String get loadingServers => 'Carregando servidores...'; + @override String get connectingToServers => 'Conectando aos servidores...'; + @override String get startingOfflineMode => 'Iniciando modo offline...'; +} + +// Path: screens +class _TranslationsScreensPt implements TranslationsScreensEn { + _TranslationsScreensPt._(this._root); + + final TranslationsPt _root; // ignore: unused_field + + // Translations + @override String get licenses => 'Licenças'; + @override String get switchProfile => 'Trocar Perfil'; + @override String get subtitleStyling => 'Estilo de Legendas'; + @override String get mpvConfig => 'mpv.conf'; + @override String get logs => 'Logs'; +} + +// Path: update +class _TranslationsUpdatePt implements TranslationsUpdateEn { + _TranslationsUpdatePt._(this._root); + + 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 currentVersion({required Object version}) => 'Atual: ${version}'; + @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'; +} + +// Path: settings +class _TranslationsSettingsPt implements TranslationsSettingsEn { + _TranslationsSettingsPt._(this._root); + + final TranslationsPt _root; // ignore: unused_field + + // Translations + @override String get title => 'Configurações'; + @override String get language => 'Idioma'; + @override String get theme => 'Tema'; + @override String get appearance => 'Aparência'; + @override String get videoPlayback => 'Reprodução de Vídeo'; + @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 seriesPosterDescription => 'Mostrar o poster da série para todos os episódios'; + @override String get seasonPoster => 'Poster da Temporada'; + @override String get seasonPosterDescription => 'Mostrar o poster específico da temporada para episódios'; + @override String get episodeThumbnail => 'Miniatura do Episódio'; + @override String get episodeThumbnailDescription => 'Mostrar miniaturas 16:9 de captura de tela do episódio'; + @override String get showHeroSectionDescription => 'Exibir carrossel de conteúdo em destaque na tela inicial'; + @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}) => 'Insira a duração (${min}-${max})'; + @override String get systemTheme => 'Sistema'; + @override String get systemThemeDescription => 'Seguir configurações do sistema'; + @override String get lightTheme => 'Claro'; + @override String get darkTheme => 'Escuro'; + @override String get oledTheme => 'OLED'; + @override String get oledThemeDescription => 'Preto puro para telas OLED'; + @override String get libraryDensity => 'Densidade da Biblioteca'; + @override String get compact => 'Compacto'; + @override String get compactDescription => 'Cards menores, mais itens visíveis'; + @override String get normal => 'Normal'; + @override String get normalDescription => 'Tamanho padrão'; + @override String get comfortable => 'Confortável'; + @override String get comfortableDescription => 'Cards maiores, menos itens visíveis'; + @override String get viewMode => 'Modo de Visualização'; + @override String get gridView => 'Grade'; + @override String get gridViewDescription => 'Exibir itens em layout de grade'; + @override String get listView => 'Lista'; + @override String get listViewDescription => 'Exibir itens em layout de lista'; + @override String get showHeroSection => 'Mostrar Seção de Destaque'; + @override String get useGlobalHubs => 'Usar Layout Plex Home'; + @override String get useGlobalHubsDescription => 'Mostrar hubs da página inicial como o cliente oficial Plex. Quando desativado, mostra recomendações por biblioteca.'; + @override String get showServerNameOnHubs => 'Mostrar Nome do Servidor nos Hubs'; + @override String get showServerNameOnHubsDescription => 'Sempre exibir o nome do servidor nos títulos dos hubs. Quando desativado, mostra apenas para nomes duplicados.'; + @override String get alwaysKeepSidebarOpen => 'Manter Barra Lateral Sempre Aberta'; + @override String get alwaysKeepSidebarOpenDescription => 'A barra lateral fica expandida e a área de conteúdo se ajusta'; + @override String get showUnwatchedCount => 'Mostrar Contagem de Não Assistidos'; + @override String get showUnwatchedCountDescription => 'Exibir contagem de episódios não assistidos em séries e temporadas'; + @override String get hideSpoilers => 'Ocultar Spoilers de Episódios Não Assistidos'; + @override String get hideSpoilersDescription => 'Desfocar miniaturas e ocultar descrições de episódios que você ainda não assistiu'; + @override String get playerBackend => 'Backend do Player'; + @override String get exoPlayer => 'ExoPlayer (Recomendado)'; + @override String get exoPlayerDescription => 'Player nativo Android com melhor suporte a hardware'; + @override String get mpv => 'mpv'; + @override String get mpvDescription => 'Player avançado com mais recursos e suporte a legendas ASS'; + @override String get hardwareDecoding => 'Decodificação por Hardware'; + @override String get hardwareDecodingDescription => 'Usar aceleração por hardware quando disponível'; + @override String get bufferSize => 'Tamanho do Buffer'; + @override String bufferSizeMB({required Object size}) => '${size}MB'; + @override String get bufferSizeAuto => 'Automático (Recomendado)'; + @override String bufferSizeWarning({required Object heap, required Object size}) => 'Seu dispositivo tem ${heap}MB de memória. Um buffer de ${size}MB pode causar problemas de reprodução.'; + @override String get subtitleStyling => 'Estilo de Legendas'; + @override String get subtitleStylingDescription => 'Personalizar aparência das legendas'; + @override String get smallSkipDuration => 'Duração do Avanço Curto'; + @override String get largeSkipDuration => 'Duração do Avanço Longo'; + @override String secondsUnit({required Object seconds}) => '${seconds} segundos'; + @override String get defaultSleepTimer => 'Timer de Sono 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 => 'Salvar automaticamente preferências de idioma de áudio e legenda ao trocar faixas durante a reprodução'; + @override String get clickVideoTogglesPlayback => 'Clicar no vídeo para alternar reprodução/pausa'; + @override String get clickVideoTogglesPlaybackDescription => 'Se ativado, clicar no player reproduz/pausa o vídeo. Caso contrário, clicar mostra/oculta os controles.'; + @override String get videoPlayerControls => 'Controles do Player 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 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 clearCache => 'Limpar Cache'; + @override String get clearCacheDescription => 'Isso limpará todas as imagens e dados em cache. O app pode demorar mais para carregar conteúdo após limpar o cache.'; + @override String get clearCacheSuccess => 'Cache limpo com sucesso'; + @override String get resetSettings => 'Redefinir Configurações'; + @override String get resetSettingsDescription => 'Isso redefinirá todas as configurações para os valores padrão. Esta ação não pode ser desfeita.'; + @override String get resetSettingsSuccess => 'Configurações redefinidas com sucesso'; + @override String get shortcutsReset => 'Atalhos redefinidos para o padrão'; + @override String get about => 'Sobre'; + @override String get aboutDescription => 'Informações do app e licenças'; + @override String get updates => 'Atualizações'; + @override String get updateAvailable => 'Atualização Disponível'; + @override String get checkForUpdates => 'Verificar Atualizações'; + @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 shortcutAlreadyAssigned({required Object action}) => 'Atalho já atribuído a ${action}'; + @override String shortcutUpdated({required Object action}) => 'Atalho atualizado para ${action}'; + @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 autoSkipDelay => 'Atraso do Pulo Automático'; + @override String autoSkipDelayDescription({required Object seconds}) => 'Aguardar ${seconds} segundos antes de pular automaticamente'; + @override String get downloads => 'Downloads'; + @override String get downloadLocationDescription => 'Escolha onde armazenar conteúdo baixado'; + @override String get downloadLocationDefault => 'Padrão (Armazenamento do App)'; + @override String get downloadLocationCustom => 'Local Personalizado'; + @override String get selectFolder => 'Selecionar Pasta'; + @override String get resetToDefault => 'Redefinir para Padrão'; + @override String currentPath({required Object path}) => 'Atual: ${path}'; + @override String get downloadLocationChanged => 'Local de download alterado'; + @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 downloadLocationSelectError => 'Falha ao selecionar pasta'; + @override String get downloadOnWifiOnly => 'Baixar apenas no WiFi'; + @override String get downloadOnWifiOnlyDescription => 'Impedir downloads quando em dados móveis'; + @override String get cellularDownloadBlocked => 'Downloads estão desativados em dados móveis. Conecte ao WiFi 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}%'; + @override String get discordRichPresence => 'Discord Rich Presence'; + @override String get discordRichPresenceDescription => 'Mostrar o que você está assistindo no Discord'; + @override String get autoPip => 'Picture-in-Picture Automático'; + @override String get autoPipDescription => 'Entrar automaticamente em picture-in-picture ao sair do app durante a reprodução'; + @override String get matchContentFrameRate => 'Corresponder Taxa de Quadros do Conteúdo'; + @override String get matchContentFrameRateDescription => 'Ajustar a taxa de atualização da tela para corresponder ao conteúdo de vídeo, reduzindo tremulação e economizando bateria'; + @override String get tunneledPlayback => 'Reprodução Tunelizada'; + @override String get tunneledPlaybackDescription => 'Usar tunelamento de vídeo acelerado por hardware. Desative se você vir uma tela preta com áudio em conteúdo HDR'; + @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 confirmExitOnBack => 'Confirmar antes de sair'; + @override String get confirmExitOnBackDescription => 'Mostrar diálogo de confirmação ao pressionar voltar para sair do app'; + @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'; +} + +// Path: search +class _TranslationsSearchPt implements TranslationsSearchEn { + _TranslationsSearchPt._(this._root); + + final TranslationsPt _root; // ignore: unused_field + + // Translations + @override String get hint => 'Buscar filmes, séries, músicas...'; + @override String get tryDifferentTerm => 'Tente um termo de busca diferente'; + @override String get searchYourMedia => 'Buscar suas mídias'; + @override String get enterTitleActorOrKeyword => 'Insira um título, ator ou palavra-chave'; +} + +// Path: hotkeys +class _TranslationsHotkeysPt implements TranslationsHotkeysEn { + _TranslationsHotkeysPt._(this._root); + + final TranslationsPt _root; // ignore: unused_field + + // Translations + @override String setShortcutFor({required Object actionName}) => 'Definir Atalho para ${actionName}'; + @override String get clearShortcut => 'Limpar atalho'; + @override late final _TranslationsHotkeysActionsPt actions = _TranslationsHotkeysActionsPt._(_root); +} + +// Path: pinEntry +class _TranslationsPinEntryPt implements TranslationsPinEntryEn { + _TranslationsPinEntryPt._(this._root); + + final TranslationsPt _root; // ignore: unused_field + + // Translations + @override String get enterPin => 'Inserir PIN'; + @override String get showPin => 'Mostrar PIN'; + @override String get hidePin => 'Ocultar PIN'; +} + +// Path: fileInfo +class _TranslationsFileInfoPt implements TranslationsFileInfoEn { + _TranslationsFileInfoPt._(this._root); + + final TranslationsPt _root; // ignore: unused_field + + // Translations + @override String get title => 'Info 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 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 colorSpace => 'Espaço de Cor'; + @override String get colorRange => 'Faixa de Cor'; + @override String get colorPrimaries => 'Primárias de Cor'; + @override String get chromaSubsampling => 'Subamostragem de Croma'; + @override String get channels => 'Canais'; + @override String get path => 'Caminho'; + @override String get size => 'Tamanho'; + @override String get container => 'Container'; + @override String get duration => 'Duração'; + @override String get optimizedForStreaming => 'Otimizado para Streaming'; + @override String get has64bitOffsets => 'Offsets de 64 bits'; +} + +// Path: mediaMenu +class _TranslationsMediaMenuPt implements TranslationsMediaMenuEn { + _TranslationsMediaMenuPt._(this._root); + + final TranslationsPt _root; // ignore: unused_field + + // Translations + @override String get markAsWatched => 'Marcar como Assistido'; + @override String get markAsUnwatched => 'Marcar como Não Assistido'; + @override String get removeFromContinueWatching => 'Remover de Continuar Assistindo'; + @override String get goToSeries => 'Ir para a série'; + @override String get goToSeason => 'Ir para a temporada'; + @override String get shufflePlay => 'Reprodução Aleatória'; + @override String get fileInfo => 'Info do Arquivo'; + @override String get deleteFromServer => 'Excluir do servidor'; + @override String get confirmDelete => 'Isso excluirá permanentemente esta mídia e seus arquivos do seu servidor. Esta ação não pode ser desfeita.'; + @override String get deleteMultipleWarning => 'Isso inclui todos os episódios e seus arquivos.'; + @override String get mediaDeletedSuccessfully => 'Item de mídia excluído com sucesso'; + @override String get mediaFailedToDelete => 'Falha ao excluir item de mídia'; + @override String get rate => 'Avaliar'; +} + +// Path: accessibility +class _TranslationsAccessibilityPt implements TranslationsAccessibilityEn { + _TranslationsAccessibilityPt._(this._root); + + final TranslationsPt _root; // ignore: unused_field + + // Translations + @override String mediaCardMovie({required Object title}) => '${title}, filme'; + @override String mediaCardShow({required Object title}) => '${title}, série de 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 => 'assistido'; + @override String mediaCardPartiallyWatched({required Object percent}) => '${percent} por cento assistido'; + @override String get mediaCardUnwatched => 'não assistido'; + @override String get tapToPlay => 'Toque para reproduzir'; +} + +// Path: tooltips +class _TranslationsTooltipsPt implements TranslationsTooltipsEn { + _TranslationsTooltipsPt._(this._root); + + final TranslationsPt _root; // ignore: unused_field + + // Translations + @override String get shufflePlay => 'Reprodução aleatória'; + @override String get playTrailer => 'Reproduzir trailer'; + @override String get markAsWatched => 'Marcar como assistido'; + @override String get markAsUnwatched => 'Marcar como não assistido'; +} + +// Path: videoControls +class _TranslationsVideoControlsPt implements TranslationsVideoControlsEn { + _TranslationsVideoControlsPt._(this._root); + + final TranslationsPt _root; // ignore: unused_field + + // Translations + @override String get audioLabel => 'Áudio'; + @override String get subtitlesLabel => 'Legendas'; + @override String get resetToZero => 'Redefinir para 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} reproduz depois'; + @override String playsEarlier({required Object label}) => '${label} reproduz antes'; + @override String get noOffset => 'Sem deslocamento'; + @override String get letterbox => 'Letterbox'; + @override String get fillScreen => 'Preencher tela'; + @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 playbackWillPauseIn({required Object duration}) => 'A reprodução pausará em ${duration}'; + @override String get sleepTimerCompleted => 'Timer de sono concluído - reprodução pausada'; + @override String get stillWatching => 'Ainda assistindo?'; + @override String pausingIn({required Object seconds}) => 'Pausando em ${seconds}s'; + @override String get continueWatching => 'Continuar'; + @override String get autoPlayNext => 'Reproduzir Próximo Automaticamente'; + @override String get playNext => 'Reproduzir Próximo'; + @override String get playButton => 'Reproduzir'; + @override String get pauseButton => 'Pausar'; + @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'; + @override String get nextButton => 'Próximo episódio'; + @override String get previousChapterButton => 'Capítulo anterior'; + @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 vídeo'; + @override String get audioTrackButton => 'Faixas de áudio'; + @override String get subtitlesButton => 'Legendas'; + @override String get tracksButton => 'Áudio e Legendas'; + @override String get chaptersButton => 'Capítulos'; + @override String get versionsButton => 'Versões do vídeo'; + @override String get pipButton => 'Modo Picture-in-Picture'; + @override String get aspectRatioButton => 'Proporção'; + @override String get ambientLighting => 'Iluminação ambiente'; + @override String get ambientLightingOn => 'Ativar iluminação ambiente'; + @override String get ambientLightingOff => 'Desativar iluminação ambiente'; + @override String get fullscreenButton => 'Entrar em tela cheia'; + @override String get exitFullscreenButton => 'Sair da tela cheia'; + @override String get alwaysOnTopButton => 'Sempre no topo'; + @override String get rotationLockButton => 'Travar rotação'; + @override String get timelineSlider => 'Linha do tempo do vídeo'; + @override String get volumeSlider => 'Nível de volume'; + @override String endsAt({required Object time}) => 'Termina às ${time}'; + @override String get pipActive => 'Reproduzindo em Picture-in-Picture'; + @override String get pipFailed => 'Falha ao iniciar picture-in-picture'; + @override late final _TranslationsVideoControlsPipErrorsPt pipErrors = _TranslationsVideoControlsPipErrorsPt._(_root); + @override String get chapters => 'Capítulos'; + @override String get noChaptersAvailable => 'Nenhum capítulo disponível'; + @override String get queue => 'Fila'; + @override String get noQueueItems => 'Nenhum item na fila'; +} + +// Path: userStatus +class _TranslationsUserStatusPt implements TranslationsUserStatusEn { + _TranslationsUserStatusPt._(this._root); + + final TranslationsPt _root; // ignore: unused_field + + // Translations + @override String get admin => 'Admin'; + @override String get restricted => 'Restrito'; + @override String get protected => 'Protegido'; + @override String get current => 'ATUAL'; +} + +// Path: messages +class _TranslationsMessagesPt implements TranslationsMessagesEn { + _TranslationsMessagesPt._(this._root); + + final TranslationsPt _root; // ignore: unused_field + + // Translations + @override String get markedAsWatched => 'Marcado como assistido'; + @override String get markedAsUnwatched => 'Marcado como não assistido'; + @override String get markedAsWatchedOffline => 'Marcado como assistido (será sincronizado quando online)'; + @override String get markedAsUnwatchedOffline => 'Marcado como não assistido (será sincronizado quando online)'; + @override String get removedFromContinueWatching => 'Removido de Continuar Assistindo'; + @override String errorLoading({required Object error}) => 'Erro: ${error}'; + @override String get fileInfoNotAvailable => 'Informações do arquivo não disponíveis'; + @override String errorLoadingFileInfo({required Object error}) => 'Erro ao carregar info do arquivo: ${error}'; + @override String get errorLoadingSeries => 'Erro ao carregar série'; + @override String get errorLoadingSeason => 'Erro ao carregar temporada'; + @override String get musicNotSupported => 'Reprodução de música ainda não é suportada'; + @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'; + @override String libraryScanning({required Object title}) => 'Escaneando "${title}"...'; + @override String libraryScanStarted({required Object title}) => 'Escaneamento da biblioteca iniciado para "${title}"'; + @override String libraryScanFailed({required Object error}) => 'Falha ao escanear biblioteca: ${error}'; + @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 noSeasonsFound => 'Nenhuma temporada encontrada'; + @override String get noEpisodesFound => 'Nenhum episódio encontrado na primeira temporada'; + @override String get noEpisodesFoundGeneral => 'Nenhum episódio encontrado'; + @override String get noResultsFound => 'Nenhum resultado encontrado'; + @override String sleepTimerSet({required Object label}) => 'Timer de sono definido para ${label}'; + @override String get noItemsAvailable => 'Nenhum item disponível'; + @override String get failedToCreatePlayQueueNoItems => 'Falha ao criar fila de reprodução - sem itens'; + @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 logsUploaded => 'Logs enviados'; + @override String get logsUploadFailed => 'Falha ao enviar logs'; + @override String get logId => 'ID do Log'; +} + +// Path: subtitlingStyling +class _TranslationsSubtitlingStylingPt implements TranslationsSubtitlingStylingEn { + _TranslationsSubtitlingStylingPt._(this._root); + + final TranslationsPt _root; // ignore: unused_field + + // Translations + @override String get stylingOptions => 'Opções de Estilo'; + @override String get fontSize => 'Tamanho da Fonte'; + @override String get textColor => 'Cor do Texto'; + @override String get borderSize => 'Tamanho da Borda'; + @override String get borderColor => 'Cor da Borda'; + @override String get backgroundOpacity => 'Opacidade do Fundo'; + @override String get backgroundColor => 'Cor de Fundo'; + @override String get position => 'Posição'; +} + +// Path: mpvConfig +class _TranslationsMpvConfigPt implements TranslationsMpvConfigEn { + _TranslationsMpvConfigPt._(this._root); + + final TranslationsPt _root; // ignore: unused_field + + // Translations + @override String get title => 'mpv.conf'; + @override String get description => 'Configurações avançadas do player 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...'; + @override String get presetName => 'Nome da Predefinição'; + @override String get presetNameHint => 'Insira um nome para esta predefinição'; + @override String get loadPreset => 'Carregar'; + @override String get deletePreset => 'Excluir'; + @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 configPlaceholder => 'gpu-api=vulkan\nhwdec=auto\n# comment'; +} + +// Path: dialog +class _TranslationsDialogPt implements TranslationsDialogEn { + _TranslationsDialogPt._(this._root); + + final TranslationsPt _root; // ignore: unused_field + + // Translations + @override String get confirmAction => 'Confirmar Ação'; +} + +// Path: discover +class _TranslationsDiscoverPt implements TranslationsDiscoverEn { + _TranslationsDiscoverPt._(this._root); + + final TranslationsPt _root; // ignore: unused_field + + // Translations + @override String get title => 'Descobrir'; + @override String get switchProfile => 'Trocar Perfil'; + @override String get noContentAvailable => 'Nenhum conteúdo disponível'; + @override String get addMediaToLibraries => 'Adicione mídias às suas bibliotecas'; + @override String get continueWatching => 'Continuar Assistindo'; + @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 seasons => 'Temporadas'; + @override String get studio => 'Estúdio'; + @override String get rating => 'Avaliação'; + @override String episodeCount({required Object count}) => '${count} episódios'; + @override String watchedProgress({required Object watched, required Object total}) => '${watched}/${total} assistidos'; + @override String get movie => 'Filme'; + @override String get tvShow => 'Série de TV'; + @override String minutesLeft({required Object minutes}) => '${minutes} min restantes'; +} + +// Path: errors +class _TranslationsErrorsPt implements TranslationsErrorsEn { + _TranslationsErrorsPt._(this._root); + + final TranslationsPt _root; // ignore: unused_field + + // Translations + @override String searchFailed({required Object error}) => 'Falha na busca: ${error}'; + @override String connectionTimeout({required Object context}) => 'Tempo de conexão esgotado ao carregar ${context}'; + @override String get connectionFailed => 'Não foi possível conectar ao servidor Plex'; + @override String failedToLoad({required Object context, required Object error}) => 'Falha ao carregar ${context}: ${error}'; + @override String get noClientAvailable => 'Nenhum cliente disponível'; + @override String authenticationFailed({required Object error}) => 'Falha na autenticação: ${error}'; + @override String get couldNotLaunchUrl => 'Não foi possível abrir a URL de autenticação'; + @override String get pleaseEnterToken => 'Insira um token'; + @override String get invalidToken => 'Token inválido'; + @override String failedToVerifyToken({required Object error}) => 'Falha ao verificar token: ${error}'; + @override String failedToSwitchProfile({required Object displayName}) => 'Falha ao trocar para ${displayName}'; +} + +// Path: libraries +class _TranslationsLibrariesPt implements TranslationsLibrariesEn { + _TranslationsLibrariesPt._(this._root); + + final TranslationsPt _root; // ignore: unused_field + + // Translations + @override String get title => 'Bibliotecas'; + @override String get scanLibraryFiles => 'Escanear Arquivos da Biblioteca'; + @override String get scanLibrary => 'Escanear Biblioteca'; + @override String get analyze => 'Analisar'; + @override String get analyzeLibrary => 'Analisar Biblioteca'; + @override String get refreshMetadata => 'Atualizar Metadados'; + @override String get emptyTrash => 'Esvaziar Lixeira'; + @override String emptyingTrash({required Object title}) => 'Esvaziando lixeira de "${title}"...'; + @override String trashEmptied({required Object title}) => 'Lixeira esvaziada de "${title}"'; + @override String failedToEmptyTrash({required Object error}) => 'Falha ao esvaziar lixeira: ${error}'; + @override String analyzing({required Object title}) => 'Analisando "${title}"...'; + @override String analysisStarted({required Object title}) => 'Análise iniciada para "${title}"'; + @override String failedToAnalyze({required Object error}) => 'Falha ao analisar biblioteca: ${error}'; + @override String get noLibrariesFound => 'Nenhuma biblioteca encontrada'; + @override String get thisLibraryIsEmpty => 'Esta biblioteca está vazia'; + @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 manageLibraries => 'Gerenciar Bibliotecas'; + @override String get sort => 'Ordenar'; + @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 showLibrary => 'Mostrar biblioteca'; + @override String get hideLibrary => 'Ocultar biblioteca'; + @override String get libraryOptions => 'Opções da biblioteca'; + @override String get content => 'conteúdo da biblioteca'; + @override String get selectLibrary => 'Selecionar biblioteca'; + @override String filtersWithCount({required Object count}) => 'Filtros (${count})'; + @override String get noRecommendations => 'Nenhuma recomendação disponível'; + @override String get noCollections => 'Nenhuma coleção nesta biblioteca'; + @override String get noFoldersFound => 'Nenhuma pasta encontrada'; + @override String get folders => 'pastas'; + @override late final _TranslationsLibrariesTabsPt tabs = _TranslationsLibrariesTabsPt._(_root); + @override late final _TranslationsLibrariesGroupingsPt groupings = _TranslationsLibrariesGroupingsPt._(_root); +} + +// Path: about +class _TranslationsAboutPt implements TranslationsAboutEn { + _TranslationsAboutPt._(this._root); + + final TranslationsPt _root; // ignore: unused_field + + // Translations + @override String get title => 'Sobre'; + @override String get openSourceLicenses => 'Licenças Open Source'; + @override String versionLabel({required Object version}) => 'Versão ${version}'; + @override String get appDescription => 'Um belo cliente Plex para Flutter'; + @override String get viewLicensesDescription => 'Ver licenças de bibliotecas de terceiros'; +} + +// Path: serverSelection +class _TranslationsServerSelectionPt implements TranslationsServerSelectionEn { + _TranslationsServerSelectionPt._(this._root); + + final TranslationsPt _root; // ignore: unused_field + + // Translations + @override String get allServerConnectionsFailed => 'Falha ao conectar a qualquer servidor. Verifique sua rede e tente novamente.'; + @override String noServersFoundForAccount({required Object username, required Object email}) => 'Nenhum servidor encontrado para ${username} (${email})'; + @override String failedToLoadServers({required Object error}) => 'Falha ao carregar servidores: ${error}'; +} + +// Path: hubDetail +class _TranslationsHubDetailPt implements TranslationsHubDetailEn { + _TranslationsHubDetailPt._(this._root); + + final TranslationsPt _root; // ignore: unused_field + + // Translations + @override String get title => 'Título'; + @override String get releaseYear => 'Ano de Lançamento'; + @override String get dateAdded => 'Data de Adição'; + @override String get rating => 'Avaliação'; + @override String get noItemsFound => 'Nenhum item encontrado'; +} + +// Path: logs +class _TranslationsLogsPt implements TranslationsLogsEn { + _TranslationsLogsPt._(this._root); + + final TranslationsPt _root; // ignore: unused_field + + // Translations + @override String get clearLogs => 'Limpar Logs'; + @override String get copyLogs => 'Copiar Logs'; + @override String get uploadLogs => 'Enviar Logs'; + @override String get error => 'Erro:'; + @override String get stackTrace => 'Stack Trace:'; +} + +// Path: licenses +class _TranslationsLicensesPt implements TranslationsLicensesEn { + _TranslationsLicensesPt._(this._root); + + final TranslationsPt _root; // ignore: unused_field + + // Translations + @override String get relatedPackages => 'Pacotes Relacionados'; + @override String get license => 'Licença'; + @override String licenseNumber({required Object number}) => 'Licença ${number}'; + @override String licensesCount({required Object count}) => '${count} licenças'; +} + +// Path: navigation +class _TranslationsNavigationPt implements TranslationsNavigationEn { + _TranslationsNavigationPt._(this._root); + + final TranslationsPt _root; // ignore: unused_field + + // Translations + @override String get libraries => 'Bibliotecas'; + @override String get downloads => 'Downloads'; + @override String get liveTv => 'TV ao Vivo'; +} + +// Path: liveTv +class _TranslationsLiveTvPt implements TranslationsLiveTvEn { + _TranslationsLiveTvPt._(this._root); + + final TranslationsPt _root; // ignore: unused_field + + // Translations + @override String get title => 'TV ao Vivo'; + @override String get channels => 'Canais'; + @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 tuneFailed => 'Falha ao sintonizar canal'; + @override String get loading => 'Carregando canais...'; + @override String get nowPlaying => 'Reproduzindo Agora'; + @override String get noPrograms => 'Nenhum dado de programação disponível'; + @override String channelNumber({required Object number}) => 'Ch. ${number}'; + @override String get live => 'AO VIVO'; + @override String get hd => 'HD'; + @override String get premiere => 'NOVO'; + @override String get reloadGuide => 'Recarregar Guia'; + @override String get allChannels => 'Todos os Canais'; + @override String get now => 'Agora'; + @override String get today => 'Hoje'; + @override String get midnight => 'Meia-noite'; + @override String get overnight => 'Madrugada'; + @override String get morning => 'Manhã'; + @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'; +} + +// Path: collections +class _TranslationsCollectionsPt implements TranslationsCollectionsEn { + _TranslationsCollectionsPt._(this._root); + + final TranslationsPt _root; // ignore: unused_field + + // Translations + @override String get title => 'Coleções'; + @override String get collection => 'Coleção'; + @override String get empty => 'A coleção está vazia'; + @override String get unknownLibrarySection => 'Não é possível excluir: Seção de biblioteca desconhecida'; + @override String get deleteCollection => 'Excluir Coleção'; + @override String deleteConfirm({required Object title}) => 'Tem certeza que deseja excluir "${title}"? Esta ação não pode ser desfeita.'; + @override String get deleted => 'Coleção excluída'; + @override String get deleteFailed => 'Falha ao excluir coleção'; + @override String deleteFailedWithError({required Object error}) => 'Falha ao excluir coleção: ${error}'; + @override String failedToLoadItems({required Object error}) => 'Falha ao carregar itens da coleção: ${error}'; + @override String get selectCollection => 'Selecionar Coleção'; + @override String get collectionName => 'Nome da Coleção'; + @override String get enterCollectionName => 'Insira o nome da coleção'; + @override String get addedToCollection => 'Adicionado à coleção'; + @override String get errorAddingToCollection => 'Falha ao adicionar à coleção'; + @override String get created => 'Coleção criada'; + @override String get removeFromCollection => 'Remover da coleção'; + @override String removeFromCollectionConfirm({required Object title}) => 'Remover "${title}" desta coleção?'; + @override String get removedFromCollection => 'Removido da coleção'; + @override String get removeFromCollectionFailed => 'Falha ao remover da coleção'; + @override String removeFromCollectionError({required Object error}) => 'Erro ao remover da coleção: ${error}'; +} + +// Path: playlists +class _TranslationsPlaylistsPt implements TranslationsPlaylistsEn { + _TranslationsPlaylistsPt._(this._root); + + final TranslationsPt _root; // ignore: unused_field + + // Translations + @override String get title => 'Playlists'; + @override String get playlist => 'Playlist'; + @override String get noPlaylists => 'Nenhuma playlist encontrada'; + @override String get create => 'Criar Playlist'; + @override String get playlistName => 'Nome da Playlist'; + @override String get enterPlaylistName => 'Insira o nome da playlist'; + @override String get delete => 'Excluir Playlist'; + @override String get removeItem => 'Remover da Playlist'; + @override String get smartPlaylist => 'Playlist Inteligente'; + @override String itemCount({required Object count}) => '${count} itens'; + @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 get created => 'Playlist criada'; + @override String get deleted => 'Playlist excluída'; + @override String get itemAdded => 'Adicionado à playlist'; + @override String get itemRemoved => 'Removido da playlist'; + @override String get selectPlaylist => 'Selecionar Playlist'; + @override String get errorCreating => 'Falha ao criar playlist'; + @override String get errorDeleting => 'Falha ao excluir playlist'; + @override String get errorLoading => 'Falha ao carregar playlists'; + @override String get errorAdding => 'Falha ao adicionar à playlist'; + @override String get errorReordering => 'Falha ao reordenar item da playlist'; + @override String get errorRemoving => 'Falha ao remover da playlist'; +} + +// Path: watchTogether +class _TranslationsWatchTogetherPt implements TranslationsWatchTogetherEn { + _TranslationsWatchTogetherPt._(this._root); + + final TranslationsPt _root; // ignore: unused_field + + // 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 creating => 'Criando...'; + @override String get joinSession => 'Entrar na Sessão'; + @override String get joining => 'Entrando...'; + @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 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 hostControlsPlayback => '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 participants => 'Participantes'; + @override String get host => 'Anfitrião'; + @override String get hostBadge => 'HOST'; + @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 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 end => 'Encerrar'; + @override String get leave => 'Sair'; + @override String get syncing => 'Sincronizando...'; + @override String get joinWatchSession => 'Entrar na Sessão'; + @override String get enterCodeHint => 'Insira o código de 8 caracteres'; + @override String get pasteFromClipboard => 'Colar da área de transferência'; + @override String get pleaseEnterCode => 'Insira um código de sessão'; + @override String get codeMustBe8Chars => 'O código da sessão deve ter 8 caracteres'; + @override String get joinInstructions => 'Insira o código da sessão compartilhado pelo anfitrião para entrar na sessão.'; + @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 => 'O servidor de retransmissão está inacessível. Isso pode ser causado pelo seu provedor bloqueando a conexão. Você ainda pode tentar, mas o Assistir Juntos pode não funcionar.'; + @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 participantJoined({required Object name}) => '${name} entrou'; + @override String participantLeft({required Object name}) => '${name} saiu'; +} + +// Path: downloads +class _TranslationsDownloadsPt implements TranslationsDownloadsEn { + _TranslationsDownloadsPt._(this._root); + + final TranslationsPt _root; // ignore: unused_field + + // Translations + @override String get title => 'Downloads'; + @override String get manage => 'Gerenciar'; + @override String get tvShows => 'Séries de TV'; + @override String get movies => 'Filmes'; + @override String get noDownloads => 'Nenhum download ainda'; + @override String get noDownloadsDescription => 'Conteúdo baixado aparecerá aqui para visualização 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 episodesQueued({required Object count}) => '${count} episódios na fila de download'; + @override String get downloadDeleted => 'Download excluído'; + @override String deleteConfirm({required Object title}) => 'Tem certeza que deseja excluir "${title}"? Isso removerá o arquivo baixado do seu dispositivo.'; + @override String deletingWithProgress({required Object title, required Object current, required Object total}) => 'Excluindo ${title}... (${current} de ${total})'; + @override String get noDownloadsTree => 'Nenhum download'; + @override String get pauseAll => 'Pausar todos'; + @override String get resumeAll => 'Retomar todos'; + @override String get deleteAll => 'Excluir todos'; +} + +// Path: shaders +class _TranslationsShadersPt implements TranslationsShadersEn { + _TranslationsShadersPt._(this._root); + + final TranslationsPt _root; // ignore: unused_field + + // 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 qualityFast => 'Rápido'; + @override String get qualityHQ => 'Alta Qualidade'; + @override String get mode => 'Modo'; + @override String get importShader => 'Importar Shader'; + @override String get customShaderDescription => 'Shader GLSL personalizado'; + @override String get shaderImported => 'Shader importado'; + @override String get shaderImportFailed => 'Falha ao importar shader'; + @override String get deleteShader => 'Excluir Shader'; + @override String deleteShaderConfirm({required Object name}) => 'Excluir "${name}"?'; +} + +// Path: companionRemote +class _TranslationsCompanionRemotePt implements TranslationsCompanionRemoteEn { + _TranslationsCompanionRemotePt._(this._root); + + final TranslationsPt _root; // ignore: unused_field + + // Translations + @override String get title => 'Controle Remoto'; + @override String get connectToDevice => 'Conectar ao Dispositivo'; + @override String get hostRemoteSession => 'Hospedar Sessão Remota'; + @override String get controlThisDevice => 'Controle este dispositivo com seu celular'; + @override String get remoteControl => 'Controle Remoto'; + @override String get controlDesktop => 'Controlar um dispositivo desktop'; + @override String connectedTo({required Object name}) => 'Conectado a ${name}'; + @override late final _TranslationsCompanionRemoteSessionPt session = _TranslationsCompanionRemoteSessionPt._(_root); + @override late final _TranslationsCompanionRemotePairingPt pairing = _TranslationsCompanionRemotePairingPt._(_root); + @override late final _TranslationsCompanionRemoteRemotePt remote = _TranslationsCompanionRemoteRemotePt._(_root); +} + +// Path: videoSettings +class _TranslationsVideoSettingsPt implements TranslationsVideoSettingsEn { + _TranslationsVideoSettingsPt._(this._root); + + final TranslationsPt _root; // ignore: unused_field + + // Translations + @override String get playbackSettings => 'Configurações de Reprodução'; + @override String get playbackSpeed => 'Velocidade de Reprodução'; + @override String get sleepTimer => 'Timer de Sono'; + @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 => 'Normalização de Áudio'; +} + +// Path: externalPlayer +class _TranslationsExternalPlayerPt implements TranslationsExternalPlayerEn { + _TranslationsExternalPlayerPt._(this._root); + + final TranslationsPt _root; // ignore: unused_field + + // Translations + @override String get title => 'Player Externo'; + @override String get useExternalPlayer => 'Usar Player Externo'; + @override String get useExternalPlayerDescription => 'Abrir vídeos em um app externo em vez do player integrado'; + @override String get selectPlayer => 'Selecionar Player'; + @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 playerCommand => 'Comando'; + @override String get playerPackage => 'Nome do Pacote'; + @override String get playerUrlScheme => 'Esquema de URL'; + @override String get customPlayer => 'Player Personalizado'; + @override String get off => 'Desativado'; + @override String get launchFailed => 'Falha ao abrir player externo'; + @override String appNotInstalled({required Object name}) => '${name} não está instalado'; + @override String get playInExternalPlayer => 'Reproduzir no Player Externo'; +} + +// Path: metadataEdit +class _TranslationsMetadataEditPt implements TranslationsMetadataEditEn { + _TranslationsMetadataEditPt._(this._root); + + final TranslationsPt _root; // ignore: unused_field + + // Translations + @override String get editMetadata => 'Editar...'; + @override String get screenTitle => 'Editar Metadados'; + @override String get basicInfo => 'Informações Básicas'; + @override String get artwork => 'Arte'; + @override String get advancedSettings => 'Configurações Avançadas'; + @override String get title => 'Título'; + @override String get sortTitle => 'Título para Ordenação'; + @override String get originalTitle => 'Título Original'; + @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 summary => 'Sinopse'; + @override String get poster => 'Poster'; + @override String get background => 'Plano de Fundo'; + @override String get selectPoster => 'Selecionar Poster'; + @override String get selectBackground => 'Selecionar Plano de Fundo'; + @override String get fromUrl => 'Da URL'; + @override String get uploadFile => 'Enviar Arquivo'; + @override String get enterImageUrl => 'Insira a URL da imagem'; + @override String get imageUrl => 'URL da Imagem'; + @override String get metadataUpdated => 'Metadados atualizados'; + @override String get metadataUpdateFailed => 'Falha ao atualizar metadados'; + @override String get artworkUpdated => 'Arte atualizada'; + @override String get artworkUpdateFailed => 'Falha ao atualizar arte'; + @override String get noArtworkAvailable => 'Nenhuma arte disponível'; + @override String get notSet => 'Não definido'; + @override String get libraryDefault => 'Padrão da biblioteca'; + @override String get accountDefault => 'Padrão da conta'; + @override String get seriesDefault => 'Padrão da série'; + @override String get episodeSorting => 'Ordenação de Episódios'; + @override String get oldestFirst => 'Mais antigos primeiro'; + @override String get newestFirst => 'Mais recentes primeiro'; + @override String get keep => 'Manter'; + @override String get allEpisodes => 'Todos os episódios'; + @override String latestEpisodes({required Object count}) => '${count} episódios mais recentes'; + @override String get latestEpisode => 'Episódio mais recente'; + @override String episodesAddedPastDays({required Object count}) => 'Episódios adicionados nos últimos ${count} dias'; + @override String get deleteAfterPlaying => 'Excluir Episódios Após Reproduzir'; + @override String get never => 'Nunca'; + @override String get afterADay => 'Após um dia'; + @override String get afterAWeek => 'Após uma semana'; + @override String get afterAMonth => 'Após um mês'; + @override String get onNextRefresh => 'Na próxima atualização'; + @override String get seasons => 'Temporadas'; + @override String get show => 'Mostrar'; + @override String get hide => 'Ocultar'; + @override String get episodeOrdering => 'Ordenação de Episódios'; + @override String get tmdbAiring => 'The Movie Database (Exibição)'; + @override String get tvdbAiring => 'TheTVDB (Exibição)'; + @override String get tvdbAbsolute => 'TheTVDB (Absoluto)'; + @override String get metadataLanguage => 'Idioma dos Metadados'; + @override String get useOriginalTitle => 'Usar Título Original'; + @override String get preferredAudioLanguage => 'Idioma de Áudio Preferido'; + @override String get preferredSubtitleLanguage => 'Idioma de Legenda Preferido'; + @override String get subtitleMode => 'Modo de Seleção Automática de Legendas'; + @override String get manuallySelected => 'Seleção manual'; + @override String get shownWithForeignAudio => 'Exibir com áudio estrangeiro'; + @override String get alwaysEnabled => 'Sempre ativado'; +} + +// Path: hotkeys.actions +class _TranslationsHotkeysActionsPt implements TranslationsHotkeysActionsEn { + _TranslationsHotkeysActionsPt._(this._root); + + final TranslationsPt _root; // ignore: unused_field + + // Translations + @override String get playPause => 'Reproduzir/Pausar'; + @override String get volumeUp => 'Aumentar Volume'; + @override String get volumeDown => 'Diminuir Volume'; + @override String seekForward({required Object seconds}) => 'Avançar (${seconds}s)'; + @override String seekBackward({required Object seconds}) => 'Retroceder (${seconds}s)'; + @override String get fullscreenToggle => 'Alternar Tela Cheia'; + @override String get muteToggle => 'Alternar Silêncio'; + @override String get subtitleToggle => 'Alternar Legendas'; + @override String get audioTrackNext => 'Próxima Faixa de Áudio'; + @override String get subtitleTrackNext => 'Próxima Faixa de Legenda'; + @override String get chapterNext => 'Próximo Capítulo'; + @override String get chapterPrevious => 'Capítulo Anterior'; + @override String get speedIncrease => 'Aumentar Velocidade'; + @override String get speedDecrease => 'Diminuir Velocidade'; + @override String get speedReset => 'Redefinir Velocidade'; + @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'; +} + +// Path: videoControls.pipErrors +class _TranslationsVideoControlsPipErrorsPt implements TranslationsVideoControlsPipErrorsEn { + _TranslationsVideoControlsPipErrorsPt._(this._root); + + final TranslationsPt _root; // ignore: unused_field + + // Translations + @override String get androidVersion => 'Requer Android 8.0 ou superior'; + @override String get iosVersion => 'Requer iOS 15.0 ou superior'; + @override String get permissionDisabled => 'A permissão de picture-in-picture está desativada. Ative em Configurações > Apps > Plezy > Picture-in-picture'; + @override String get notSupported => 'O dispositivo não suporta modo picture-in-picture'; + @override String get voSwitchFailed => 'Falha ao trocar saída de vídeo para picture-in-picture'; + @override String get failed => 'Falha ao iniciar picture-in-picture'; + @override String unknown({required Object error}) => 'Ocorreu um erro: ${error}'; +} + +// Path: libraries.tabs +class _TranslationsLibrariesTabsPt implements TranslationsLibrariesTabsEn { + _TranslationsLibrariesTabsPt._(this._root); + + final TranslationsPt _root; // ignore: unused_field + + // Translations + @override String get recommended => 'Recomendados'; + @override String get browse => 'Navegar'; + @override String get collections => 'Coleções'; + @override String get playlists => 'Playlists'; +} + +// Path: libraries.groupings +class _TranslationsLibrariesGroupingsPt implements TranslationsLibrariesGroupingsEn { + _TranslationsLibrariesGroupingsPt._(this._root); + + final TranslationsPt _root; // ignore: unused_field + + // Translations + @override String get all => 'Todos'; + @override String get movies => 'Filmes'; + @override String get shows => 'Séries de TV'; + @override String get seasons => 'Temporadas'; + @override String get episodes => 'Episódios'; + @override String get folders => 'Pastas'; +} + +// Path: companionRemote.session +class _TranslationsCompanionRemoteSessionPt implements TranslationsCompanionRemoteSessionEn { + _TranslationsCompanionRemoteSessionPt._(this._root); + + final TranslationsPt _root; // ignore: unused_field + + // Translations + @override String get creatingSession => 'Criando sessão remota...'; + @override String get failedToCreate => 'Falha ao criar sessão remota:'; + @override String get noSession => 'Nenhuma sessão disponível'; + @override String get scanQrCode => 'Escanear QR Code'; + @override String get orEnterManually => 'Ou insira manualmente'; + @override String get hostAddress => 'Endereço do Host'; + @override String get sessionId => 'ID da Sessão'; + @override String get pin => 'PIN'; + @override String get connected => 'Conectado'; + @override String get waitingForConnection => 'Aguardando conexão...'; + @override String get usePhoneToControl => 'Use seu dispositivo móvel para controlar este app'; + @override String copiedToClipboard({required Object label}) => '${label} copiado para a área de transferência'; + @override String get copyToClipboard => 'Copiar para área de transferência'; + @override String get newSession => 'Nova Sessão'; + @override String get minimize => 'Minimizar'; +} + +// Path: companionRemote.pairing +class _TranslationsCompanionRemotePairingPt implements TranslationsCompanionRemotePairingEn { + _TranslationsCompanionRemotePairingPt._(this._root); + + final TranslationsPt _root; // ignore: unused_field + + // Translations + @override String get scan => 'Escanear'; + @override String get manual => 'Manual'; + @override String get pairWithDesktop => 'Parear com Desktop'; + @override String get enterSessionDetails => 'Insira os detalhes da sessão exibidos no seu dispositivo desktop'; + @override String get hostAddressHint => '192.168.1.100:48632'; + @override String get sessionIdHint => 'Insira o ID da sessão de 8 caracteres'; + @override String get pinHint => 'Insira o PIN de 6 dígitos'; + @override String get connecting => 'Conectando...'; + @override String get tips => 'Dicas'; + @override String get tipDesktop => 'Abra o Plezy no desktop e ative o Controle Remoto nas configurações ou menu'; + @override String get tipScan => 'Use a aba Escanear para parear rapidamente escaneando o QR code no seu desktop'; + @override String get tipWifi => 'Certifique-se de que ambos os dispositivos estão na mesma rede WiFi'; + @override String get cameraPermissionRequired => 'A permissão da câmera é necessária para escanear QR codes.\nConceda acesso à câmera nas configurações do dispositivo.'; + @override String cameraError({required Object error}) => 'Não foi possível iniciar a câmera: ${error}'; + @override String get scanInstruction => 'Aponte sua câmera para o QR code exibido no seu desktop'; + @override String get invalidQrCode => 'Formato de QR code inválido'; + @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 validationSessionIdRequired => 'Insira um ID de sessão'; + @override String get validationSessionIdLength => 'O ID da sessão deve ter 8 caracteres'; + @override String get validationPinRequired => 'Insira um PIN'; + @override String get validationPinLength => 'O PIN deve ter 6 dígitos'; + @override String get connectionTimedOut => 'Tempo de conexão esgotado. Verifique o ID da sessão e o PIN.'; + @override String get sessionNotFound => 'Sessão não encontrada. Verifique suas credenciais.'; + @override String failedToConnect({required Object error}) => 'Falha ao conectar: ${error}'; +} + +// Path: companionRemote.remote +class _TranslationsCompanionRemoteRemotePt implements TranslationsCompanionRemoteRemoteEn { + _TranslationsCompanionRemoteRemotePt._(this._root); + + final TranslationsPt _root; // ignore: unused_field + + // Translations + @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 connectionError => 'Erro de conexão'; + @override String get notConnected => 'Não conectado'; + @override String get tabRemote => 'Remoto'; + @override String get tabPlay => 'Reproduzir'; + @override String get tabMore => 'Mais'; + @override String get menu => 'Menu'; + @override String get tabNavigation => 'Navegação'; + @override String get tabDiscover => 'Descobrir'; + @override String get tabLibraries => 'Bibliotecas'; + @override String get tabSearch => 'Buscar'; + @override String get tabDownloads => 'Downloads'; + @override String get tabSettings => 'Configurações'; + @override String get previous => 'Anterior'; + @override String get playPause => 'Reproduzir/Pausar'; + @override String get next => 'Próximo'; + @override String get seekBack => 'Retroceder'; + @override String get stop => 'Parar'; + @override String get seekForward => 'Avançar'; + @override String get volume => 'Volume'; + @override String get volumeDown => 'Diminuir'; + @override String get volumeUp => 'Aumentar'; + @override String get fullscreen => 'Tela Cheia'; + @override String get subtitles => 'Legendas'; + @override String get audio => 'Áudio'; + @override String get searchHint => 'Buscar no desktop...'; +} + +/// 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 TranslationsPt { + dynamic _flatMapFunction(String path) { + return switch (path) { + 'app.title' => 'Plezy', + 'auth.signInWithPlex' => 'Entrar com Plex', + 'auth.showQRCode' => 'Mostrar QR Code', + 'auth.authenticate' => 'Autenticar', + 'auth.debugEnterToken' => 'Debug: Inserir Token Plex', + 'auth.plexTokenLabel' => 'Token de Autenticação Plex', + 'auth.plexTokenHint' => 'Insira seu token do Plex.tv', + 'auth.authenticationTimeout' => 'A autenticação expirou. Tente novamente.', + 'auth.scanQRToSignIn' => 'Escaneie este QR code para entrar', + 'auth.waitingForAuth' => 'Aguardando autenticação...\nConclua o login no seu navegador.', + 'auth.useBrowser' => 'Usar navegador', + 'common.cancel' => 'Cancelar', + 'common.save' => 'Salvar', + 'common.close' => 'Fechar', + 'common.clear' => 'Limpar', + 'common.reset' => 'Redefinir', + 'common.later' => 'Depois', + 'common.submit' => 'Enviar', + 'common.confirm' => 'Confirmar', + 'common.retry' => 'Tentar novamente', + 'common.logout' => 'Sair', + 'common.unknown' => 'Desconhecido', + 'common.refresh' => 'Atualizar', + 'common.yes' => 'Sim', + 'common.no' => 'Não', + 'common.delete' => 'Excluir', + 'common.shuffle' => 'Aleatório', + 'common.addTo' => 'Adicionar a...', + 'common.createNew' => 'Criar novo', + 'common.remove' => 'Remover', + 'common.paste' => 'Colar', + 'common.connect' => 'Conectar', + 'common.disconnect' => 'Desconectar', + 'common.play' => 'Reproduzir', + 'common.pause' => 'Pausar', + 'common.resume' => 'Retomar', + 'common.error' => 'Erro', + 'common.search' => 'Buscar', + 'common.home' => 'Início', + 'common.back' => 'Voltar', + 'common.settings' => 'Configurações', + 'common.mute' => 'Silenciar', + 'common.ok' => 'OK', + 'common.loading' => 'Carregando...', + 'common.reconnect' => 'Reconectar', + 'common.exitConfirmTitle' => 'Sair do app?', + 'common.exitConfirmMessage' => 'Tem certeza que deseja sair?', + 'common.dontAskAgain' => 'Não perguntar novamente', + 'common.exit' => 'Sair', + 'common.viewAll' => 'Ver Tudo', + 'common.checkingNetwork' => 'Verificando rede...', + 'common.refreshingServers' => 'Atualizando servidores...', + 'common.loadingServers' => 'Carregando servidores...', + 'common.connectingToServers' => 'Conectando aos servidores...', + 'common.startingOfflineMode' => 'Iniciando modo offline...', + 'screens.licenses' => 'Licenças', + 'screens.switchProfile' => 'Trocar Perfil', + '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.currentVersion' => ({required Object version}) => 'Atual: ${version}', + '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', + 'settings.title' => 'Configurações', + 'settings.language' => 'Idioma', + 'settings.theme' => 'Tema', + 'settings.appearance' => 'Aparência', + 'settings.videoPlayback' => 'Reprodução de Vídeo', + 'settings.advanced' => 'Avançado', + 'settings.episodePosterMode' => 'Estilo do Poster de Episódio', + 'settings.seriesPoster' => 'Poster da Série', + 'settings.seriesPosterDescription' => 'Mostrar o poster da série para todos os episódios', + 'settings.seasonPoster' => 'Poster da Temporada', + 'settings.seasonPosterDescription' => 'Mostrar o poster específico da temporada para episódios', + 'settings.episodeThumbnail' => 'Miniatura do Episódio', + 'settings.episodeThumbnailDescription' => 'Mostrar miniaturas 16:9 de captura de tela do episódio', + 'settings.showHeroSectionDescription' => 'Exibir carrossel de conteúdo em destaque na tela inicial', + 'settings.secondsLabel' => 'Segundos', + 'settings.minutesLabel' => 'Minutos', + 'settings.secondsShort' => 's', + 'settings.minutesShort' => 'm', + 'settings.durationHint' => ({required Object min, required Object max}) => 'Insira a duração (${min}-${max})', + 'settings.systemTheme' => 'Sistema', + 'settings.systemThemeDescription' => 'Seguir configurações do sistema', + 'settings.lightTheme' => 'Claro', + 'settings.darkTheme' => 'Escuro', + 'settings.oledTheme' => 'OLED', + 'settings.oledThemeDescription' => 'Preto puro para telas OLED', + 'settings.libraryDensity' => 'Densidade da Biblioteca', + 'settings.compact' => 'Compacto', + 'settings.compactDescription' => 'Cards menores, mais itens visíveis', + 'settings.normal' => 'Normal', + 'settings.normalDescription' => 'Tamanho padrão', + 'settings.comfortable' => 'Confortável', + 'settings.comfortableDescription' => 'Cards maiores, menos itens visíveis', + 'settings.viewMode' => 'Modo de Visualização', + 'settings.gridView' => 'Grade', + 'settings.gridViewDescription' => 'Exibir itens em layout de grade', + 'settings.listView' => 'Lista', + 'settings.listViewDescription' => 'Exibir itens em layout de lista', + 'settings.showHeroSection' => 'Mostrar Seção de Destaque', + 'settings.useGlobalHubs' => 'Usar Layout Plex Home', + 'settings.useGlobalHubsDescription' => 'Mostrar hubs da página inicial como o cliente oficial Plex. Quando desativado, mostra recomendações por biblioteca.', + 'settings.showServerNameOnHubs' => 'Mostrar Nome do Servidor nos Hubs', + 'settings.showServerNameOnHubsDescription' => 'Sempre exibir o nome do servidor nos títulos dos hubs. Quando desativado, mostra apenas para nomes duplicados.', + 'settings.alwaysKeepSidebarOpen' => 'Manter Barra Lateral Sempre Aberta', + 'settings.alwaysKeepSidebarOpenDescription' => 'A barra lateral fica expandida e a área de conteúdo se ajusta', + 'settings.showUnwatchedCount' => 'Mostrar Contagem de Não Assistidos', + 'settings.showUnwatchedCountDescription' => 'Exibir contagem de episódios não assistidos em séries e temporadas', + 'settings.hideSpoilers' => 'Ocultar Spoilers de Episódios Não Assistidos', + 'settings.hideSpoilersDescription' => 'Desfocar miniaturas e ocultar descrições de episódios que você ainda não assistiu', + 'settings.playerBackend' => 'Backend do Player', + 'settings.exoPlayer' => 'ExoPlayer (Recomendado)', + 'settings.exoPlayerDescription' => 'Player nativo Android com melhor suporte a hardware', + 'settings.mpv' => 'mpv', + 'settings.mpvDescription' => 'Player avançado com mais recursos e suporte a legendas ASS', + 'settings.hardwareDecoding' => 'Decodificação por Hardware', + 'settings.hardwareDecodingDescription' => 'Usar aceleração por hardware quando disponível', + 'settings.bufferSize' => 'Tamanho do Buffer', + 'settings.bufferSizeMB' => ({required Object size}) => '${size}MB', + 'settings.bufferSizeAuto' => 'Automático (Recomendado)', + 'settings.bufferSizeWarning' => ({required Object heap, required Object size}) => 'Seu dispositivo tem ${heap}MB de memória. Um buffer de ${size}MB pode causar problemas de reprodução.', + 'settings.subtitleStyling' => 'Estilo de Legendas', + 'settings.subtitleStylingDescription' => 'Personalizar aparência das legendas', + 'settings.smallSkipDuration' => 'Duração do Avanço Curto', + 'settings.largeSkipDuration' => 'Duração do Avanço Longo', + 'settings.secondsUnit' => ({required Object seconds}) => '${seconds} segundos', + 'settings.defaultSleepTimer' => 'Timer de Sono Padrão', + 'settings.minutesUnit' => ({required Object minutes}) => '${minutes} minutos', + 'settings.rememberTrackSelections' => 'Lembrar seleção de faixas por série/filme', + 'settings.rememberTrackSelectionsDescription' => 'Salvar automaticamente preferências de idioma de áudio e legenda ao trocar faixas durante a reprodução', + 'settings.clickVideoTogglesPlayback' => 'Clicar no vídeo para alternar reprodução/pausa', + 'settings.clickVideoTogglesPlaybackDescription' => 'Se ativado, clicar no player reproduz/pausa o vídeo. Caso contrário, clicar mostra/oculta os controles.', + 'settings.videoPlayerControls' => 'Controles do Player 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.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.clearCache' => 'Limpar Cache', + 'settings.clearCacheDescription' => 'Isso limpará todas as imagens e dados em cache. O app pode demorar mais para carregar conteúdo após limpar o cache.', + 'settings.clearCacheSuccess' => 'Cache limpo com sucesso', + 'settings.resetSettings' => 'Redefinir Configurações', + 'settings.resetSettingsDescription' => 'Isso redefinirá todas as configurações para os valores padrão. Esta ação não pode ser desfeita.', + 'settings.resetSettingsSuccess' => 'Configurações redefinidas com sucesso', + 'settings.shortcutsReset' => 'Atalhos redefinidos para o padrão', + 'settings.about' => 'Sobre', + 'settings.aboutDescription' => 'Informações do app e licenças', + 'settings.updates' => 'Atualizações', + 'settings.updateAvailable' => 'Atualização Disponível', + 'settings.checkForUpdates' => 'Verificar Atualizações', + '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.shortcutAlreadyAssigned' => ({required Object action}) => 'Atalho já atribuído a ${action}', + 'settings.shortcutUpdated' => ({required Object action}) => 'Atalho atualizado para ${action}', + '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.autoSkipDelay' => 'Atraso do Pulo Automático', + 'settings.autoSkipDelayDescription' => ({required Object seconds}) => 'Aguardar ${seconds} segundos antes de pular automaticamente', + 'settings.downloads' => 'Downloads', + 'settings.downloadLocationDescription' => 'Escolha onde armazenar conteúdo baixado', + 'settings.downloadLocationDefault' => 'Padrão (Armazenamento do App)', + 'settings.downloadLocationCustom' => 'Local Personalizado', + 'settings.selectFolder' => 'Selecionar Pasta', + 'settings.resetToDefault' => 'Redefinir para Padrão', + 'settings.currentPath' => ({required Object path}) => 'Atual: ${path}', + 'settings.downloadLocationChanged' => 'Local de download alterado', + 'settings.downloadLocationReset' => 'Local de download redefinido para padrão', + 'settings.downloadLocationInvalid' => 'A pasta selecionada não permite gravação', + 'settings.downloadLocationSelectError' => 'Falha ao selecionar pasta', + 'settings.downloadOnWifiOnly' => 'Baixar apenas no WiFi', + 'settings.downloadOnWifiOnlyDescription' => 'Impedir downloads quando em dados móveis', + 'settings.cellularDownloadBlocked' => 'Downloads estão desativados em dados móveis. Conecte ao WiFi 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}%', + 'settings.discordRichPresence' => 'Discord Rich Presence', + 'settings.discordRichPresenceDescription' => 'Mostrar o que você está assistindo no Discord', + 'settings.autoPip' => 'Picture-in-Picture Automático', + 'settings.autoPipDescription' => 'Entrar automaticamente em picture-in-picture ao sair do app durante a reprodução', + 'settings.matchContentFrameRate' => 'Corresponder Taxa de Quadros do Conteúdo', + 'settings.matchContentFrameRateDescription' => 'Ajustar a taxa de atualização da tela para corresponder ao conteúdo de vídeo, reduzindo tremulação e economizando bateria', + 'settings.tunneledPlayback' => 'Reprodução Tunelizada', + 'settings.tunneledPlaybackDescription' => 'Usar tunelamento de vídeo acelerado por hardware. Desative se você vir uma tela preta com áudio em conteúdo HDR', + 'settings.requireProfileSelectionOnOpen' => 'Pedir perfil ao abrir o app', + 'settings.requireProfileSelectionOnOpenDescription' => 'Mostrar seleção de perfil toda vez que o app for aberto', + 'settings.confirmExitOnBack' => 'Confirmar antes de sair', + 'settings.confirmExitOnBackDescription' => 'Mostrar diálogo de confirmação ao pressionar voltar para sair do app', + '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', + 'search.hint' => 'Buscar filmes, séries, músicas...', + 'search.tryDifferentTerm' => 'Tente um termo de busca diferente', + 'search.searchYourMedia' => 'Buscar suas mídias', + 'search.enterTitleActorOrKeyword' => 'Insira um título, ator ou palavra-chave', + 'hotkeys.setShortcutFor' => ({required Object actionName}) => 'Definir Atalho para ${actionName}', + 'hotkeys.clearShortcut' => 'Limpar atalho', + 'hotkeys.actions.playPause' => 'Reproduzir/Pausar', + 'hotkeys.actions.volumeUp' => 'Aumentar Volume', + 'hotkeys.actions.volumeDown' => 'Diminuir Volume', + 'hotkeys.actions.seekForward' => ({required Object seconds}) => 'Avançar (${seconds}s)', + 'hotkeys.actions.seekBackward' => ({required Object seconds}) => 'Retroceder (${seconds}s)', + 'hotkeys.actions.fullscreenToggle' => 'Alternar Tela Cheia', + 'hotkeys.actions.muteToggle' => 'Alternar Silêncio', + 'hotkeys.actions.subtitleToggle' => 'Alternar Legendas', + 'hotkeys.actions.audioTrackNext' => 'Próxima Faixa de Áudio', + 'hotkeys.actions.subtitleTrackNext' => 'Próxima Faixa de Legenda', + 'hotkeys.actions.chapterNext' => 'Próximo Capítulo', + 'hotkeys.actions.chapterPrevious' => 'Capítulo Anterior', + 'hotkeys.actions.speedIncrease' => 'Aumentar Velocidade', + 'hotkeys.actions.speedDecrease' => 'Diminuir Velocidade', + 'hotkeys.actions.speedReset' => 'Redefinir Velocidade', + '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', + 'pinEntry.enterPin' => 'Inserir PIN', + 'pinEntry.showPin' => 'Mostrar PIN', + 'pinEntry.hidePin' => 'Ocultar PIN', + 'fileInfo.title' => 'Info 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.frameRate' => 'Taxa de Quadros', + 'fileInfo.aspectRatio' => 'Proporção', + 'fileInfo.profile' => 'Perfil', + 'fileInfo.bitDepth' => 'Profundidade de Bits', + 'fileInfo.colorSpace' => 'Espaço de Cor', + 'fileInfo.colorRange' => 'Faixa de Cor', + 'fileInfo.colorPrimaries' => 'Primárias de Cor', + 'fileInfo.chromaSubsampling' => 'Subamostragem de Croma', + 'fileInfo.channels' => 'Canais', + 'fileInfo.path' => 'Caminho', + 'fileInfo.size' => 'Tamanho', + 'fileInfo.container' => 'Container', + 'fileInfo.duration' => 'Duração', + 'fileInfo.optimizedForStreaming' => 'Otimizado para Streaming', + 'fileInfo.has64bitOffsets' => 'Offsets de 64 bits', + 'mediaMenu.markAsWatched' => 'Marcar como Assistido', + 'mediaMenu.markAsUnwatched' => 'Marcar como Não Assistido', + 'mediaMenu.removeFromContinueWatching' => 'Remover de Continuar Assistindo', + 'mediaMenu.goToSeries' => 'Ir para a série', + 'mediaMenu.goToSeason' => 'Ir para a temporada', + 'mediaMenu.shufflePlay' => 'Reprodução Aleatória', + 'mediaMenu.fileInfo' => 'Info do Arquivo', + 'mediaMenu.deleteFromServer' => 'Excluir do servidor', + 'mediaMenu.confirmDelete' => 'Isso excluirá permanentemente esta mídia e seus arquivos do seu servidor. Esta ação não pode ser desfeita.', + 'mediaMenu.deleteMultipleWarning' => 'Isso inclui todos os episódios e seus arquivos.', + 'mediaMenu.mediaDeletedSuccessfully' => 'Item de mídia excluído com sucesso', + 'mediaMenu.mediaFailedToDelete' => 'Falha ao excluir item de mídia', + 'mediaMenu.rate' => 'Avaliar', + 'accessibility.mediaCardMovie' => ({required Object title}) => '${title}, filme', + 'accessibility.mediaCardShow' => ({required Object title}) => '${title}, série de TV', + 'accessibility.mediaCardEpisode' => ({required Object title, required Object episodeInfo}) => '${title}, ${episodeInfo}', + 'accessibility.mediaCardSeason' => ({required Object title, required Object seasonInfo}) => '${title}, ${seasonInfo}', + 'accessibility.mediaCardWatched' => 'assistido', + 'accessibility.mediaCardPartiallyWatched' => ({required Object percent}) => '${percent} por cento assistido', + 'accessibility.mediaCardUnwatched' => 'não assistido', + 'accessibility.tapToPlay' => 'Toque para reproduzir', + 'tooltips.shufflePlay' => 'Reprodução aleatória', + 'tooltips.playTrailer' => 'Reproduzir trailer', + 'tooltips.markAsWatched' => 'Marcar como assistido', + 'tooltips.markAsUnwatched' => 'Marcar como não assistido', + 'videoControls.audioLabel' => 'Áudio', + 'videoControls.subtitlesLabel' => 'Legendas', + 'videoControls.resetToZero' => 'Redefinir para 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} reproduz depois', + 'videoControls.playsEarlier' => ({required Object label}) => '${label} reproduz antes', + 'videoControls.noOffset' => 'Sem deslocamento', + 'videoControls.letterbox' => 'Letterbox', + 'videoControls.fillScreen' => 'Preencher tela', + 'videoControls.stretch' => 'Esticar', + 'videoControls.lockRotation' => 'Travar rotação', + 'videoControls.unlockRotation' => 'Destravar rotação', + 'videoControls.timerActive' => 'Timer Ativo', + 'videoControls.playbackWillPauseIn' => ({required Object duration}) => 'A reprodução pausará em ${duration}', + 'videoControls.sleepTimerCompleted' => 'Timer de sono concluído - reprodução pausada', + 'videoControls.stillWatching' => 'Ainda assistindo?', + 'videoControls.pausingIn' => ({required Object seconds}) => 'Pausando em ${seconds}s', + 'videoControls.continueWatching' => 'Continuar', + 'videoControls.autoPlayNext' => 'Reproduzir Próximo Automaticamente', + 'videoControls.playNext' => 'Reproduzir Próximo', + 'videoControls.playButton' => 'Reproduzir', + 'videoControls.pauseButton' => 'Pausar', + 'videoControls.seekBackwardButton' => ({required Object seconds}) => 'Retroceder ${seconds} segundos', + 'videoControls.seekForwardButton' => ({required Object seconds}) => 'Avançar ${seconds} segundos', + 'videoControls.previousButton' => 'Episódio anterior', + 'videoControls.nextButton' => 'Próximo episódio', + 'videoControls.previousChapterButton' => 'Capítulo anterior', + 'videoControls.nextChapterButton' => 'Próximo capítulo', + 'videoControls.muteButton' => 'Silenciar', + 'videoControls.unmuteButton' => 'Ativar som', + 'videoControls.settingsButton' => 'Configurações de vídeo', + 'videoControls.audioTrackButton' => 'Faixas de áudio', + 'videoControls.subtitlesButton' => 'Legendas', + 'videoControls.tracksButton' => 'Áudio e Legendas', + 'videoControls.chaptersButton' => 'Capítulos', + 'videoControls.versionsButton' => 'Versões do vídeo', + 'videoControls.pipButton' => 'Modo Picture-in-Picture', + 'videoControls.aspectRatioButton' => 'Proporção', + 'videoControls.ambientLighting' => 'Iluminação ambiente', + 'videoControls.ambientLightingOn' => 'Ativar iluminação ambiente', + 'videoControls.ambientLightingOff' => 'Desativar iluminação ambiente', + 'videoControls.fullscreenButton' => 'Entrar em tela cheia', + 'videoControls.exitFullscreenButton' => 'Sair da tela cheia', + 'videoControls.alwaysOnTopButton' => 'Sempre no topo', + 'videoControls.rotationLockButton' => 'Travar rotação', + 'videoControls.timelineSlider' => 'Linha do tempo do vídeo', + 'videoControls.volumeSlider' => 'Nível de volume', + 'videoControls.endsAt' => ({required Object time}) => 'Termina às ${time}', + 'videoControls.pipActive' => 'Reproduzindo em Picture-in-Picture', + 'videoControls.pipFailed' => 'Falha ao iniciar picture-in-picture', + 'videoControls.pipErrors.androidVersion' => 'Requer Android 8.0 ou superior', + 'videoControls.pipErrors.iosVersion' => 'Requer iOS 15.0 ou superior', + 'videoControls.pipErrors.permissionDisabled' => 'A permissão de picture-in-picture está desativada. Ative em Configurações > Apps > Plezy > Picture-in-picture', + 'videoControls.pipErrors.notSupported' => 'O dispositivo não suporta modo picture-in-picture', + 'videoControls.pipErrors.voSwitchFailed' => 'Falha ao trocar saída de vídeo para picture-in-picture', + 'videoControls.pipErrors.failed' => 'Falha ao iniciar picture-in-picture', + 'videoControls.pipErrors.unknown' => ({required Object error}) => 'Ocorreu um erro: ${error}', + 'videoControls.chapters' => 'Capítulos', + 'videoControls.noChaptersAvailable' => 'Nenhum capítulo disponível', + 'videoControls.queue' => 'Fila', + 'videoControls.noQueueItems' => 'Nenhum item na fila', + 'userStatus.admin' => 'Admin', + 'userStatus.restricted' => 'Restrito', + 'userStatus.protected' => 'Protegido', + 'userStatus.current' => 'ATUAL', + '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)', + 'messages.removedFromContinueWatching' => 'Removido de Continuar Assistindo', + 'messages.errorLoading' => ({required Object error}) => 'Erro: ${error}', + 'messages.fileInfoNotAvailable' => 'Informações do arquivo não disponíveis', + 'messages.errorLoadingFileInfo' => ({required Object error}) => 'Erro ao carregar info do arquivo: ${error}', + 'messages.errorLoadingSeries' => 'Erro ao carregar série', + 'messages.errorLoadingSeason' => 'Erro ao carregar temporada', + 'messages.musicNotSupported' => 'Reprodução de música ainda não é suportada', + 'messages.logsCleared' => 'Logs limpos', + 'messages.logsCopied' => 'Logs copiados para a área de transferência', + 'messages.noLogsAvailable' => 'Nenhum log disponível', + 'messages.libraryScanning' => ({required Object title}) => 'Escaneando "${title}"...', + 'messages.libraryScanStarted' => ({required Object title}) => 'Escaneamento da biblioteca iniciado para "${title}"', + 'messages.libraryScanFailed' => ({required Object error}) => 'Falha ao escanear biblioteca: ${error}', + '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.noSeasonsFound' => 'Nenhuma temporada encontrada', + 'messages.noEpisodesFound' => 'Nenhum episódio encontrado na primeira temporada', + 'messages.noEpisodesFoundGeneral' => 'Nenhum episódio encontrado', + 'messages.noResultsFound' => 'Nenhum resultado encontrado', + 'messages.sleepTimerSet' => ({required Object label}) => 'Timer de sono definido para ${label}', + 'messages.noItemsAvailable' => 'Nenhum item disponível', + 'messages.failedToCreatePlayQueueNoItems' => 'Falha ao criar fila de reprodução - sem itens', + 'messages.failedPlayback' => ({required Object action, required Object error}) => 'Falha ao ${action}: ${error}', + 'messages.switchingToCompatiblePlayer' => 'Alternando para player compatível...', + 'messages.logsUploaded' => 'Logs enviados', + 'messages.logsUploadFailed' => 'Falha ao enviar logs', + 'messages.logId' => 'ID do Log', + 'subtitlingStyling.stylingOptions' => 'Opções de Estilo', + 'subtitlingStyling.fontSize' => 'Tamanho da Fonte', + 'subtitlingStyling.textColor' => 'Cor do Texto', + 'subtitlingStyling.borderSize' => 'Tamanho da Borda', + 'subtitlingStyling.borderColor' => 'Cor da Borda', + 'subtitlingStyling.backgroundOpacity' => 'Opacidade do Fundo', + 'subtitlingStyling.backgroundColor' => 'Cor de Fundo', + 'subtitlingStyling.position' => 'Posição', + 'mpvConfig.title' => 'mpv.conf', + 'mpvConfig.description' => 'Configurações avançadas do player de vídeo', + 'mpvConfig.presets' => 'Predefinições', + 'mpvConfig.noPresets' => 'Nenhuma predefinição salva', + 'mpvConfig.saveAsPreset' => 'Salvar como Predefinição...', + 'mpvConfig.presetName' => 'Nome da Predefinição', + 'mpvConfig.presetNameHint' => 'Insira um nome para esta predefinição', + 'mpvConfig.loadPreset' => 'Carregar', + 'mpvConfig.deletePreset' => 'Excluir', + '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.configPlaceholder' => 'gpu-api=vulkan\nhwdec=auto\n# comment', + 'dialog.confirmAction' => 'Confirmar Ação', + 'discover.title' => 'Descobrir', + 'discover.switchProfile' => 'Trocar Perfil', + 'discover.noContentAvailable' => 'Nenhum conteúdo disponível', + 'discover.addMediaToLibraries' => 'Adicione mídias às suas bibliotecas', + 'discover.continueWatching' => 'Continuar Assistindo', + 'discover.playEpisode' => ({required Object season, required Object episode}) => 'S${season}E${episode}', + 'discover.overview' => 'Sinopse', + 'discover.cast' => 'Elenco', + 'discover.extras' => 'Trailers e Extras', + 'discover.seasons' => 'Temporadas', + 'discover.studio' => 'Estúdio', + 'discover.rating' => 'Avaliação', + 'discover.episodeCount' => ({required Object count}) => '${count} episódios', + 'discover.watchedProgress' => ({required Object watched, required Object total}) => '${watched}/${total} assistidos', + 'discover.movie' => 'Filme', + 'discover.tvShow' => 'Série de TV', + 'discover.minutesLeft' => ({required Object minutes}) => '${minutes} min restantes', + '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 Plex', + 'errors.failedToLoad' => ({required Object context, required Object error}) => 'Falha ao carregar ${context}: ${error}', + 'errors.noClientAvailable' => 'Nenhum cliente disponível', + 'errors.authenticationFailed' => ({required Object error}) => 'Falha na autenticação: ${error}', + 'errors.couldNotLaunchUrl' => 'Não foi possível abrir a URL de autenticação', + 'errors.pleaseEnterToken' => 'Insira um token', + 'errors.invalidToken' => 'Token inválido', + 'errors.failedToVerifyToken' => ({required Object error}) => 'Falha ao verificar token: ${error}', + 'errors.failedToSwitchProfile' => ({required Object displayName}) => 'Falha ao trocar para ${displayName}', + 'libraries.title' => 'Bibliotecas', + 'libraries.scanLibraryFiles' => 'Escanear Arquivos da Biblioteca', + 'libraries.scanLibrary' => 'Escanear Biblioteca', + 'libraries.analyze' => 'Analisar', + 'libraries.analyzeLibrary' => 'Analisar Biblioteca', + 'libraries.refreshMetadata' => 'Atualizar Metadados', + 'libraries.emptyTrash' => 'Esvaziar Lixeira', + 'libraries.emptyingTrash' => ({required Object title}) => 'Esvaziando lixeira de "${title}"...', + 'libraries.trashEmptied' => ({required Object title}) => 'Lixeira esvaziada de "${title}"', + 'libraries.failedToEmptyTrash' => ({required Object error}) => 'Falha ao esvaziar lixeira: ${error}', + 'libraries.analyzing' => ({required Object title}) => 'Analisando "${title}"...', + 'libraries.analysisStarted' => ({required Object title}) => 'Análise iniciada para "${title}"', + 'libraries.failedToAnalyze' => ({required Object error}) => 'Falha ao analisar biblioteca: ${error}', + 'libraries.noLibrariesFound' => 'Nenhuma biblioteca encontrada', + 'libraries.thisLibraryIsEmpty' => 'Esta biblioteca está vazia', + '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.manageLibraries' => 'Gerenciar Bibliotecas', + 'libraries.sort' => 'Ordenar', + 'libraries.sortBy' => 'Ordenar Por', + 'libraries.filters' => 'Filtros', + 'libraries.confirmActionMessage' => 'Tem certeza que deseja realizar esta ação?', + 'libraries.showLibrary' => 'Mostrar biblioteca', + 'libraries.hideLibrary' => 'Ocultar biblioteca', + 'libraries.libraryOptions' => 'Opções da biblioteca', + 'libraries.content' => 'conteúdo da biblioteca', + 'libraries.selectLibrary' => 'Selecionar biblioteca', + 'libraries.filtersWithCount' => ({required Object count}) => 'Filtros (${count})', + 'libraries.noRecommendations' => 'Nenhuma recomendação disponível', + 'libraries.noCollections' => 'Nenhuma coleção nesta biblioteca', + 'libraries.noFoldersFound' => 'Nenhuma pasta encontrada', + 'libraries.folders' => 'pastas', + 'libraries.tabs.recommended' => 'Recomendados', + 'libraries.tabs.browse' => 'Navegar', + 'libraries.tabs.collections' => 'Coleções', + 'libraries.tabs.playlists' => 'Playlists', + 'libraries.groupings.all' => 'Todos', + 'libraries.groupings.movies' => 'Filmes', + 'libraries.groupings.shows' => 'Séries de TV', + 'libraries.groupings.seasons' => 'Temporadas', + 'libraries.groupings.episodes' => 'Episódios', + 'libraries.groupings.folders' => 'Pastas', + 'about.title' => 'Sobre', + 'about.openSourceLicenses' => 'Licenças Open Source', + 'about.versionLabel' => ({required Object version}) => 'Versão ${version}', + 'about.appDescription' => 'Um belo cliente Plex para Flutter', + 'about.viewLicensesDescription' => 'Ver licenças de bibliotecas de terceiros', + 'serverSelection.allServerConnectionsFailed' => 'Falha ao conectar a qualquer servidor. Verifique sua rede e tente novamente.', + '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', + 'hubDetail.releaseYear' => 'Ano de Lançamento', + 'hubDetail.dateAdded' => 'Data de Adição', + 'hubDetail.rating' => 'Avaliação', + 'hubDetail.noItemsFound' => 'Nenhum item encontrado', + 'logs.clearLogs' => 'Limpar Logs', + 'logs.copyLogs' => 'Copiar Logs', + 'logs.uploadLogs' => 'Enviar Logs', + 'logs.error' => 'Erro:', + 'logs.stackTrace' => 'Stack Trace:', + 'licenses.relatedPackages' => 'Pacotes Relacionados', + 'licenses.license' => 'Licença', + 'licenses.licenseNumber' => ({required Object number}) => 'Licença ${number}', + 'licenses.licensesCount' => ({required Object count}) => '${count} licenças', + 'navigation.libraries' => 'Bibliotecas', + 'navigation.downloads' => 'Downloads', + 'navigation.liveTv' => 'TV ao Vivo', + 'liveTv.title' => 'TV ao Vivo', + 'liveTv.channels' => 'Canais', + 'liveTv.guide' => 'Guia', + 'liveTv.noChannels' => 'Nenhum canal disponível', + 'liveTv.noDvr' => 'Nenhum DVR configurado em nenhum servidor', + 'liveTv.tuneFailed' => 'Falha ao sintonizar canal', + 'liveTv.loading' => 'Carregando canais...', + 'liveTv.nowPlaying' => 'Reproduzindo Agora', + 'liveTv.noPrograms' => 'Nenhum dado de programação disponível', + 'liveTv.channelNumber' => ({required Object number}) => 'Ch. ${number}', + 'liveTv.live' => 'AO VIVO', + 'liveTv.hd' => 'HD', + 'liveTv.premiere' => 'NOVO', + _ => null, + } ?? switch (path) { + 'liveTv.reloadGuide' => 'Recarregar Guia', + 'liveTv.allChannels' => 'Todos os Canais', + 'liveTv.now' => 'Agora', + 'liveTv.today' => 'Hoje', + 'liveTv.midnight' => 'Meia-noite', + 'liveTv.overnight' => 'Madrugada', + 'liveTv.morning' => 'Manhã', + 'liveTv.daytime' => 'Dia', + 'liveTv.evening' => 'Noite', + 'liveTv.lateNight' => 'Madrugada', + 'liveTv.whatsOn' => 'O que Está Passando', + 'liveTv.watchChannel' => 'Assistir Canal', + 'collections.title' => 'Coleções', + 'collections.collection' => 'Coleção', + 'collections.empty' => 'A coleção está vazia', + 'collections.unknownLibrarySection' => 'Não é possível excluir: Seção de biblioteca desconhecida', + 'collections.deleteCollection' => 'Excluir Coleção', + 'collections.deleteConfirm' => ({required Object title}) => 'Tem certeza que deseja excluir "${title}"? Esta ação não pode ser desfeita.', + 'collections.deleted' => 'Coleção excluída', + 'collections.deleteFailed' => 'Falha ao excluir coleção', + 'collections.deleteFailedWithError' => ({required Object error}) => 'Falha ao excluir coleção: ${error}', + 'collections.failedToLoadItems' => ({required Object error}) => 'Falha ao carregar itens da coleção: ${error}', + 'collections.selectCollection' => 'Selecionar Coleção', + 'collections.collectionName' => 'Nome da Coleção', + 'collections.enterCollectionName' => 'Insira o nome da coleção', + 'collections.addedToCollection' => 'Adicionado à coleção', + 'collections.errorAddingToCollection' => 'Falha ao adicionar à coleção', + 'collections.created' => 'Coleção criada', + 'collections.removeFromCollection' => 'Remover da coleção', + 'collections.removeFromCollectionConfirm' => ({required Object title}) => 'Remover "${title}" desta coleção?', + 'collections.removedFromCollection' => 'Removido da coleção', + 'collections.removeFromCollectionFailed' => 'Falha ao remover da coleção', + 'collections.removeFromCollectionError' => ({required Object error}) => 'Erro ao remover da coleção: ${error}', + 'playlists.title' => 'Playlists', + 'playlists.playlist' => 'Playlist', + 'playlists.noPlaylists' => 'Nenhuma playlist encontrada', + 'playlists.create' => 'Criar Playlist', + 'playlists.playlistName' => 'Nome da Playlist', + 'playlists.enterPlaylistName' => 'Insira o nome da playlist', + 'playlists.delete' => 'Excluir Playlist', + 'playlists.removeItem' => 'Remover da Playlist', + 'playlists.smartPlaylist' => 'Playlist Inteligente', + 'playlists.itemCount' => ({required Object count}) => '${count} itens', + '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.created' => 'Playlist criada', + 'playlists.deleted' => 'Playlist excluída', + 'playlists.itemAdded' => 'Adicionado à playlist', + 'playlists.itemRemoved' => 'Removido da playlist', + 'playlists.selectPlaylist' => 'Selecionar Playlist', + 'playlists.errorCreating' => 'Falha ao criar playlist', + 'playlists.errorDeleting' => 'Falha ao excluir playlist', + 'playlists.errorLoading' => 'Falha ao carregar playlists', + 'playlists.errorAdding' => 'Falha ao adicionar à playlist', + 'playlists.errorReordering' => 'Falha ao reordenar item da playlist', + 'playlists.errorRemoving' => 'Falha ao remover da playlist', + 'watchTogether.title' => 'Assistir Juntos', + 'watchTogether.description' => 'Assista conteúdo sincronizado com amigos e família', + 'watchTogether.createSession' => 'Criar Sessão', + 'watchTogether.creating' => 'Criando...', + 'watchTogether.joinSession' => 'Entrar na Sessão', + 'watchTogether.joining' => 'Entrando...', + 'watchTogether.controlMode' => 'Modo de Controle', + 'watchTogether.controlModeQuestion' => 'Quem pode controlar a reproduçã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.hostControlsPlayback' => '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.participants' => 'Participantes', + 'watchTogether.host' => 'Anfitrião', + 'watchTogether.hostBadge' => 'HOST', + '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.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.end' => 'Encerrar', + 'watchTogether.leave' => 'Sair', + 'watchTogether.syncing' => 'Sincronizando...', + 'watchTogether.joinWatchSession' => 'Entrar na Sessão', + 'watchTogether.enterCodeHint' => 'Insira o código de 8 caracteres', + 'watchTogether.pasteFromClipboard' => 'Colar da área de transferência', + 'watchTogether.pleaseEnterCode' => 'Insira um código de sessão', + 'watchTogether.codeMustBe8Chars' => 'O código da sessão deve ter 8 caracteres', + 'watchTogether.joinInstructions' => 'Insira o código da sessão compartilhado pelo anfitrião para entrar na sessão.', + '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' => 'O servidor de retransmissão está inacessível. Isso pode ser causado pelo seu provedor bloqueando a conexão. Você ainda pode tentar, mas o Assistir Juntos pode não funcionar.', + '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.participantJoined' => ({required Object name}) => '${name} entrou', + 'watchTogether.participantLeft' => ({required Object name}) => '${name} saiu', + 'downloads.title' => 'Downloads', + 'downloads.manage' => 'Gerenciar', + 'downloads.tvShows' => 'Séries de TV', + 'downloads.movies' => 'Filmes', + 'downloads.noDownloads' => 'Nenhum download ainda', + 'downloads.noDownloadsDescription' => 'Conteúdo baixado aparecerá aqui para visualização offline', + 'downloads.downloadNow' => 'Baixar', + 'downloads.deleteDownload' => 'Excluir download', + 'downloads.retryDownload' => 'Tentar download novamente', + 'downloads.downloadQueued' => 'Download na fila', + 'downloads.episodesQueued' => ({required Object count}) => '${count} episódios na fila de download', + 'downloads.downloadDeleted' => 'Download excluído', + 'downloads.deleteConfirm' => ({required Object title}) => 'Tem certeza que deseja excluir "${title}"? Isso removerá o arquivo baixado do seu dispositivo.', + 'downloads.deletingWithProgress' => ({required Object title, required Object current, required Object total}) => 'Excluindo ${title}... (${current} de ${total})', + 'downloads.noDownloadsTree' => 'Nenhum download', + 'downloads.pauseAll' => 'Pausar todos', + 'downloads.resumeAll' => 'Retomar todos', + 'downloads.deleteAll' => 'Excluir todos', + 'shaders.title' => 'Shaders', + 'shaders.noShaderDescription' => 'Sem aprimoramento de vídeo', + 'shaders.nvscalerDescription' => 'Escalonamento de imagem NVIDIA para vídeo mais nítido', + 'shaders.qualityFast' => 'Rápido', + 'shaders.qualityHQ' => 'Alta Qualidade', + 'shaders.mode' => 'Modo', + 'shaders.importShader' => 'Importar Shader', + 'shaders.customShaderDescription' => 'Shader GLSL personalizado', + 'shaders.shaderImported' => 'Shader importado', + 'shaders.shaderImportFailed' => 'Falha ao importar shader', + 'shaders.deleteShader' => 'Excluir Shader', + 'shaders.deleteShaderConfirm' => ({required Object name}) => 'Excluir "${name}"?', + 'companionRemote.title' => 'Controle Remoto', + 'companionRemote.connectToDevice' => 'Conectar ao Dispositivo', + 'companionRemote.hostRemoteSession' => 'Hospedar Sessão Remota', + 'companionRemote.controlThisDevice' => 'Controle este dispositivo com seu celular', + 'companionRemote.remoteControl' => 'Controle Remoto', + 'companionRemote.controlDesktop' => 'Controlar um dispositivo desktop', + 'companionRemote.connectedTo' => ({required Object name}) => 'Conectado a ${name}', + 'companionRemote.session.creatingSession' => 'Criando sessão remota...', + 'companionRemote.session.failedToCreate' => 'Falha ao criar sessão remota:', + 'companionRemote.session.noSession' => 'Nenhuma sessão disponível', + 'companionRemote.session.scanQrCode' => 'Escanear QR Code', + 'companionRemote.session.orEnterManually' => 'Ou insira manualmente', + 'companionRemote.session.hostAddress' => 'Endereço do Host', + 'companionRemote.session.sessionId' => 'ID da Sessão', + 'companionRemote.session.pin' => 'PIN', + 'companionRemote.session.connected' => 'Conectado', + 'companionRemote.session.waitingForConnection' => 'Aguardando conexão...', + 'companionRemote.session.usePhoneToControl' => 'Use seu dispositivo móvel para controlar este app', + 'companionRemote.session.copiedToClipboard' => ({required Object label}) => '${label} copiado para a área de transferência', + 'companionRemote.session.copyToClipboard' => 'Copiar para área de transferência', + 'companionRemote.session.newSession' => 'Nova Sessão', + 'companionRemote.session.minimize' => 'Minimizar', + 'companionRemote.pairing.scan' => 'Escanear', + 'companionRemote.pairing.manual' => 'Manual', + 'companionRemote.pairing.pairWithDesktop' => 'Parear com Desktop', + 'companionRemote.pairing.enterSessionDetails' => 'Insira os detalhes da sessão exibidos no seu dispositivo desktop', + 'companionRemote.pairing.hostAddressHint' => '192.168.1.100:48632', + 'companionRemote.pairing.sessionIdHint' => 'Insira o ID da sessão de 8 caracteres', + 'companionRemote.pairing.pinHint' => 'Insira o PIN de 6 dígitos', + 'companionRemote.pairing.connecting' => 'Conectando...', + 'companionRemote.pairing.tips' => 'Dicas', + 'companionRemote.pairing.tipDesktop' => 'Abra o Plezy no desktop e ative o Controle Remoto nas configurações ou menu', + 'companionRemote.pairing.tipScan' => 'Use a aba Escanear para parear rapidamente escaneando o QR code no seu desktop', + 'companionRemote.pairing.tipWifi' => 'Certifique-se de que ambos os dispositivos estão na mesma rede WiFi', + 'companionRemote.pairing.cameraPermissionRequired' => 'A permissão da câmera é necessária para escanear QR codes.\nConceda acesso à câmera nas configurações do dispositivo.', + 'companionRemote.pairing.cameraError' => ({required Object error}) => 'Não foi possível iniciar a câmera: ${error}', + 'companionRemote.pairing.scanInstruction' => 'Aponte sua câmera para o QR code exibido no seu desktop', + 'companionRemote.pairing.invalidQrCode' => 'Formato de QR code inválido', + '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.validationSessionIdRequired' => 'Insira um ID de sessão', + 'companionRemote.pairing.validationSessionIdLength' => 'O ID da sessão deve ter 8 caracteres', + 'companionRemote.pairing.validationPinRequired' => 'Insira um PIN', + 'companionRemote.pairing.validationPinLength' => 'O PIN deve ter 6 dígitos', + 'companionRemote.pairing.connectionTimedOut' => 'Tempo de conexão esgotado. Verifique o ID da sessão e o PIN.', + 'companionRemote.pairing.sessionNotFound' => 'Sessão não encontrada. Verifique suas credenciais.', + '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.connectionError' => 'Erro de conexão', + 'companionRemote.remote.notConnected' => 'Não conectado', + 'companionRemote.remote.tabRemote' => 'Remoto', + 'companionRemote.remote.tabPlay' => 'Reproduzir', + 'companionRemote.remote.tabMore' => 'Mais', + 'companionRemote.remote.menu' => 'Menu', + 'companionRemote.remote.tabNavigation' => 'Navegação', + 'companionRemote.remote.tabDiscover' => 'Descobrir', + 'companionRemote.remote.tabLibraries' => 'Bibliotecas', + 'companionRemote.remote.tabSearch' => 'Buscar', + 'companionRemote.remote.tabDownloads' => 'Downloads', + 'companionRemote.remote.tabSettings' => 'Configurações', + 'companionRemote.remote.previous' => 'Anterior', + 'companionRemote.remote.playPause' => 'Reproduzir/Pausar', + 'companionRemote.remote.next' => 'Próximo', + 'companionRemote.remote.seekBack' => 'Retroceder', + 'companionRemote.remote.stop' => 'Parar', + 'companionRemote.remote.seekForward' => 'Avançar', + 'companionRemote.remote.volume' => 'Volume', + 'companionRemote.remote.volumeDown' => 'Diminuir', + 'companionRemote.remote.volumeUp' => 'Aumentar', + 'companionRemote.remote.fullscreen' => 'Tela Cheia', + 'companionRemote.remote.subtitles' => 'Legendas', + 'companionRemote.remote.audio' => 'Áudio', + 'companionRemote.remote.searchHint' => 'Buscar no desktop...', + 'videoSettings.playbackSettings' => 'Configurações de Reprodução', + 'videoSettings.playbackSpeed' => 'Velocidade de Reprodução', + 'videoSettings.sleepTimer' => 'Timer de Sono', + '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' => 'Normalização de Áudio', + 'externalPlayer.title' => 'Player Externo', + 'externalPlayer.useExternalPlayer' => 'Usar Player Externo', + 'externalPlayer.useExternalPlayerDescription' => 'Abrir vídeos em um app externo em vez do player integrado', + 'externalPlayer.selectPlayer' => 'Selecionar Player', + 'externalPlayer.systemDefault' => 'Padrão do Sistema', + 'externalPlayer.addCustomPlayer' => 'Adicionar Player Personalizado', + 'externalPlayer.playerName' => 'Nome do Player', + 'externalPlayer.playerCommand' => 'Comando', + 'externalPlayer.playerPackage' => 'Nome do Pacote', + 'externalPlayer.playerUrlScheme' => 'Esquema de URL', + 'externalPlayer.customPlayer' => 'Player Personalizado', + 'externalPlayer.off' => 'Desativado', + 'externalPlayer.launchFailed' => 'Falha ao abrir player externo', + 'externalPlayer.appNotInstalled' => ({required Object name}) => '${name} não está instalado', + 'externalPlayer.playInExternalPlayer' => 'Reproduzir no Player Externo', + 'metadataEdit.editMetadata' => 'Editar...', + 'metadataEdit.screenTitle' => 'Editar Metadados', + 'metadataEdit.basicInfo' => 'Informações Básicas', + 'metadataEdit.artwork' => 'Arte', + 'metadataEdit.advancedSettings' => 'Configurações Avançadas', + 'metadataEdit.title' => 'Título', + 'metadataEdit.sortTitle' => 'Título para Ordenação', + 'metadataEdit.originalTitle' => 'Título Original', + 'metadataEdit.releaseDate' => 'Data de Lançamento', + 'metadataEdit.contentRating' => 'Classificação Indicativa', + 'metadataEdit.studio' => 'Estúdio', + 'metadataEdit.tagline' => 'Tagline', + 'metadataEdit.summary' => 'Sinopse', + 'metadataEdit.poster' => 'Poster', + 'metadataEdit.background' => 'Plano de Fundo', + 'metadataEdit.selectPoster' => 'Selecionar Poster', + 'metadataEdit.selectBackground' => 'Selecionar Plano de Fundo', + 'metadataEdit.fromUrl' => 'Da URL', + 'metadataEdit.uploadFile' => 'Enviar Arquivo', + 'metadataEdit.enterImageUrl' => 'Insira a URL da imagem', + 'metadataEdit.imageUrl' => 'URL da Imagem', + 'metadataEdit.metadataUpdated' => 'Metadados atualizados', + 'metadataEdit.metadataUpdateFailed' => 'Falha ao atualizar metadados', + 'metadataEdit.artworkUpdated' => 'Arte atualizada', + 'metadataEdit.artworkUpdateFailed' => 'Falha ao atualizar arte', + 'metadataEdit.noArtworkAvailable' => 'Nenhuma arte disponível', + 'metadataEdit.notSet' => 'Não definido', + 'metadataEdit.libraryDefault' => 'Padrão da biblioteca', + 'metadataEdit.accountDefault' => 'Padrão da conta', + 'metadataEdit.seriesDefault' => 'Padrão da série', + 'metadataEdit.episodeSorting' => 'Ordenação de Episódios', + 'metadataEdit.oldestFirst' => 'Mais antigos primeiro', + 'metadataEdit.newestFirst' => 'Mais recentes primeiro', + 'metadataEdit.keep' => 'Manter', + 'metadataEdit.allEpisodes' => 'Todos os episódios', + 'metadataEdit.latestEpisodes' => ({required Object count}) => '${count} episódios mais recentes', + 'metadataEdit.latestEpisode' => 'Episódio mais recente', + 'metadataEdit.episodesAddedPastDays' => ({required Object count}) => 'Episódios adicionados nos últimos ${count} dias', + 'metadataEdit.deleteAfterPlaying' => 'Excluir Episódios Após Reproduzir', + 'metadataEdit.never' => 'Nunca', + 'metadataEdit.afterADay' => 'Após um dia', + 'metadataEdit.afterAWeek' => 'Após uma semana', + 'metadataEdit.afterAMonth' => 'Após um mês', + 'metadataEdit.onNextRefresh' => 'Na próxima atualização', + 'metadataEdit.seasons' => 'Temporadas', + 'metadataEdit.show' => 'Mostrar', + 'metadataEdit.hide' => 'Ocultar', + 'metadataEdit.episodeOrdering' => 'Ordenação de Episódios', + 'metadataEdit.tmdbAiring' => 'The Movie Database (Exibição)', + 'metadataEdit.tvdbAiring' => 'TheTVDB (Exibição)', + 'metadataEdit.tvdbAbsolute' => 'TheTVDB (Absoluto)', + 'metadataEdit.metadataLanguage' => 'Idioma dos Metadados', + 'metadataEdit.useOriginalTitle' => 'Usar Título Original', + 'metadataEdit.preferredAudioLanguage' => 'Idioma de Áudio Preferido', + 'metadataEdit.preferredSubtitleLanguage' => 'Idioma de Legenda Preferido', + 'metadataEdit.subtitleMode' => 'Modo de Seleção Automática de Legendas', + 'metadataEdit.manuallySelected' => 'Seleção manual', + 'metadataEdit.shownWithForeignAudio' => 'Exibir com áudio estrangeiro', + 'metadataEdit.alwaysEnabled' => 'Sempre ativado', + _ => null, + }; + } +} diff --git a/lib/i18n/strings_ru.g.dart b/lib/i18n/strings_ru.g.dart new file mode 100644 index 00000000..34f91cfd --- /dev/null +++ b/lib/i18n/strings_ru.g.dart @@ -0,0 +1,2125 @@ +/// +/// 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 TranslationsRu with BaseTranslations implements Translations { + /// You can call this constructor and build your own translation instance of this locale. + /// Constructing via the enum [AppLocale.build] is preferred. + TranslationsRu({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.ru, + overrides: overrides ?? {}, + cardinalResolver: cardinalResolver, + ordinalResolver: ordinalResolver, + ) { + $meta.setFlatMapFunction(_flatMapFunction); + } + + /// Metadata for the translations of . + @override final TranslationMetadata $meta; + + /// Access flat map + @override dynamic operator[](String key) => $meta.getTranslation(key); + + late final TranslationsRu _root = this; // ignore: unused_field + + @override + TranslationsRu $copyWith({TranslationMetadata? meta}) => TranslationsRu(meta: meta ?? this.$meta); + + // Translations + @override late final _TranslationsAppRu app = _TranslationsAppRu._(_root); + @override late final _TranslationsAuthRu auth = _TranslationsAuthRu._(_root); + @override late final _TranslationsCommonRu common = _TranslationsCommonRu._(_root); + @override late final _TranslationsScreensRu screens = _TranslationsScreensRu._(_root); + @override late final _TranslationsUpdateRu update = _TranslationsUpdateRu._(_root); + @override late final _TranslationsSettingsRu settings = _TranslationsSettingsRu._(_root); + @override late final _TranslationsSearchRu search = _TranslationsSearchRu._(_root); + @override late final _TranslationsHotkeysRu hotkeys = _TranslationsHotkeysRu._(_root); + @override late final _TranslationsPinEntryRu pinEntry = _TranslationsPinEntryRu._(_root); + @override late final _TranslationsFileInfoRu fileInfo = _TranslationsFileInfoRu._(_root); + @override late final _TranslationsMediaMenuRu mediaMenu = _TranslationsMediaMenuRu._(_root); + @override late final _TranslationsAccessibilityRu accessibility = _TranslationsAccessibilityRu._(_root); + @override late final _TranslationsTooltipsRu tooltips = _TranslationsTooltipsRu._(_root); + @override late final _TranslationsVideoControlsRu videoControls = _TranslationsVideoControlsRu._(_root); + @override late final _TranslationsUserStatusRu userStatus = _TranslationsUserStatusRu._(_root); + @override late final _TranslationsMessagesRu messages = _TranslationsMessagesRu._(_root); + @override late final _TranslationsSubtitlingStylingRu subtitlingStyling = _TranslationsSubtitlingStylingRu._(_root); + @override late final _TranslationsMpvConfigRu mpvConfig = _TranslationsMpvConfigRu._(_root); + @override late final _TranslationsDialogRu dialog = _TranslationsDialogRu._(_root); + @override late final _TranslationsDiscoverRu discover = _TranslationsDiscoverRu._(_root); + @override late final _TranslationsErrorsRu errors = _TranslationsErrorsRu._(_root); + @override late final _TranslationsLibrariesRu libraries = _TranslationsLibrariesRu._(_root); + @override late final _TranslationsAboutRu about = _TranslationsAboutRu._(_root); + @override late final _TranslationsServerSelectionRu serverSelection = _TranslationsServerSelectionRu._(_root); + @override late final _TranslationsHubDetailRu hubDetail = _TranslationsHubDetailRu._(_root); + @override late final _TranslationsLogsRu logs = _TranslationsLogsRu._(_root); + @override late final _TranslationsLicensesRu licenses = _TranslationsLicensesRu._(_root); + @override late final _TranslationsNavigationRu navigation = _TranslationsNavigationRu._(_root); + @override late final _TranslationsLiveTvRu liveTv = _TranslationsLiveTvRu._(_root); + @override late final _TranslationsCollectionsRu collections = _TranslationsCollectionsRu._(_root); + @override late final _TranslationsPlaylistsRu playlists = _TranslationsPlaylistsRu._(_root); + @override late final _TranslationsWatchTogetherRu watchTogether = _TranslationsWatchTogetherRu._(_root); + @override late final _TranslationsDownloadsRu downloads = _TranslationsDownloadsRu._(_root); + @override late final _TranslationsShadersRu shaders = _TranslationsShadersRu._(_root); + @override late final _TranslationsCompanionRemoteRu companionRemote = _TranslationsCompanionRemoteRu._(_root); + @override late final _TranslationsVideoSettingsRu videoSettings = _TranslationsVideoSettingsRu._(_root); + @override late final _TranslationsExternalPlayerRu externalPlayer = _TranslationsExternalPlayerRu._(_root); + @override late final _TranslationsMetadataEditRu metadataEdit = _TranslationsMetadataEditRu._(_root); +} + +// Path: app +class _TranslationsAppRu implements TranslationsAppEn { + _TranslationsAppRu._(this._root); + + final TranslationsRu _root; // ignore: unused_field + + // Translations + @override String get title => 'Plezy'; +} + +// Path: auth +class _TranslationsAuthRu implements TranslationsAuthEn { + _TranslationsAuthRu._(this._root); + + final TranslationsRu _root; // ignore: unused_field + + // Translations + @override String get signInWithPlex => 'Войти через Plex'; + @override String get showQRCode => 'Показать QR-код'; + @override String get authenticate => 'Аутентификация'; + @override String get debugEnterToken => 'Отладка: Ввести токен Plex'; + @override String get plexTokenLabel => 'Токен авторизации Plex'; + @override String get plexTokenHint => 'Введите ваш токен Plex.tv'; + @override String get authenticationTimeout => 'Время аутентификации истекло. Попробуйте снова.'; + @override String get scanQRToSignIn => 'Отсканируйте QR-код для входа'; + @override String get waitingForAuth => 'Ожидание аутентификации...\nЗавершите вход в браузере.'; + @override String get useBrowser => 'Использовать браузер'; +} + +// Path: common +class _TranslationsCommonRu implements TranslationsCommonEn { + _TranslationsCommonRu._(this._root); + + final TranslationsRu _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 shuffle => 'Перемешать'; + @override String get addTo => 'Добавить в...'; + @override String get createNew => 'Создать новый'; + @override String get remove => 'Удалить'; + @override String get paste => 'Вставить'; + @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 => 'OK'; + @override String get loading => 'Загрузка...'; + @override String get reconnect => 'Переподключить'; + @override String get exitConfirmTitle => 'Выйти из приложения?'; + @override String get exitConfirmMessage => 'Вы уверены, что хотите выйти?'; + @override String get dontAskAgain => 'Больше не спрашивать'; + @override String get exit => 'Выход'; + @override String get viewAll => 'Показать все'; + @override String get checkingNetwork => 'Проверка сети...'; + @override String get refreshingServers => 'Обновление серверов...'; + @override String get loadingServers => 'Загрузка серверов...'; + @override String get connectingToServers => 'Подключение к серверам...'; + @override String get startingOfflineMode => 'Запуск автономного режима...'; +} + +// Path: screens +class _TranslationsScreensRu implements TranslationsScreensEn { + _TranslationsScreensRu._(this._root); + + final TranslationsRu _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 _TranslationsUpdateRu implements TranslationsUpdateEn { + _TranslationsUpdateRu._(this._root); + + final TranslationsRu _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 _TranslationsSettingsRu implements TranslationsSettingsEn { + _TranslationsSettingsRu._(this._root); + + final TranslationsRu _root; // ignore: unused_field + + // Translations + @override String get title => 'Настройки'; + @override String get language => 'Язык'; + @override String get theme => 'Тема'; + @override String get appearance => 'Внешний вид'; + @override String get videoPlayback => 'Воспроизведение видео'; + @override String get advanced => 'Дополнительно'; + @override String get episodePosterMode => 'Стиль постера эпизода'; + @override String get seriesPoster => 'Постер сериала'; + @override String get seriesPosterDescription => 'Показывать постер сериала для всех эпизодов'; + @override String get seasonPoster => 'Постер сезона'; + @override String get seasonPosterDescription => 'Показывать постер конкретного сезона для эпизодов'; + @override String get episodeThumbnail => 'Миниатюра эпизода'; + @override String get episodeThumbnailDescription => 'Показывать миниатюры скриншотов эпизодов 16:9'; + @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 systemThemeDescription => 'Следовать настройкам системы'; + @override String get lightTheme => 'Светлая'; + @override String get darkTheme => 'Тёмная'; + @override String get oledTheme => 'OLED'; + @override String get oledThemeDescription => 'Чистый чёрный для OLED-экранов'; + @override String get libraryDensity => 'Плотность библиотеки'; + @override String get compact => 'Компактный'; + @override String get compactDescription => 'Меньшие карточки, больше элементов видно'; + @override String get normal => 'Обычный'; + @override String get normalDescription => 'Размер по умолчанию'; + @override String get comfortable => 'Комфортный'; + @override String get comfortableDescription => 'Большие карточки, меньше элементов видно'; + @override String get viewMode => 'Режим просмотра'; + @override String get gridView => 'Сетка'; + @override String get gridViewDescription => 'Отображать элементы в виде сетки'; + @override String get listView => 'Список'; + @override String get listViewDescription => 'Отображать элементы в виде списка'; + @override String get showHeroSection => 'Показать раздел избранного'; + @override String get useGlobalHubs => 'Использовать макет Plex Home'; + @override String get useGlobalHubsDescription => 'Показывать хабы главной страницы как в официальном клиенте Plex. При выключении показывает рекомендации по библиотекам.'; + @override String get showServerNameOnHubs => 'Показывать имя сервера в хабах'; + @override String get showServerNameOnHubsDescription => 'Всегда показывать имя сервера в заголовках хабов. При выключении показывает только для дублирующихся имён.'; + @override String get alwaysKeepSidebarOpen => 'Всегда держать боковую панель открытой'; + @override String get alwaysKeepSidebarOpenDescription => 'Боковая панель остаётся развёрнутой, область контента подстраивается'; + @override String get showUnwatchedCount => 'Показывать количество непросмотренных'; + @override String get showUnwatchedCountDescription => 'Отображать количество непросмотренных эпизодов для сериалов и сезонов'; + @override String get hideSpoilers => 'Скрыть спойлеры непросмотренных эпизодов'; + @override String get hideSpoilersDescription => 'Размывать миниатюры и скрывать описания эпизодов, которые вы ещё не смотрели'; + @override String get playerBackend => 'Бэкенд плеера'; + @override String get exoPlayer => 'ExoPlayer (Рекомендуется)'; + @override String get exoPlayerDescription => 'Нативный Android-плеер с лучшей аппаратной поддержкой'; + @override String get mpv => 'mpv'; + @override String get mpvDescription => 'Продвинутый плеер с большим количеством функций и поддержкой субтитров ASS'; + @override String get hardwareDecoding => 'Аппаратное декодирование'; + @override String get hardwareDecodingDescription => 'Использовать аппаратное ускорение, когда доступно'; + @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}МБ памяти. Буфер ${size}МБ может вызвать проблемы с воспроизведением.'; + @override String get subtitleStyling => 'Стиль субтитров'; + @override String get subtitleStylingDescription => 'Настроить внешний вид субтитров'; + @override String get smallSkipDuration => 'Малая перемотка'; + @override String get largeSkipDuration => 'Большая перемотка'; + @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 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 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 shortcutsReset => 'Горячие клавиши сброшены по умолчанию'; + @override String get about => 'О приложении'; + @override String get aboutDescription => 'Информация о приложении и лицензии'; + @override String get updates => 'Обновления'; + @override String get updateAvailable => 'Доступно обновление'; + @override String get checkForUpdates => 'Проверить обновления'; + @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 autoSkip => 'Автопропуск'; + @override String get autoSkipIntro => 'Автопропуск вступления'; + @override String get autoSkipIntroDescription => 'Автоматически пропускать маркеры вступления через несколько секунд'; + @override String get autoSkipCredits => 'Автопропуск титров'; + @override String get autoSkipCreditsDescription => 'Автоматически пропускать титры и воспроизводить следующий эпизод'; + @override String get autoSkipDelay => 'Задержка автопропуска'; + @override String autoSkipDelayDescription({required Object seconds}) => 'Подождать ${seconds} секунд перед автопропуском'; + @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 downloadLocationSelectError => 'Не удалось выбрать папку'; + @override String get downloadOnWifiOnly => 'Загружать только по WiFi'; + @override String get downloadOnWifiOnlyDescription => 'Запретить загрузку по мобильным данным'; + @override String get cellularDownloadBlocked => 'Загрузка по мобильным данным отключена. Подключитесь к WiFi или измените настройку.'; + @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 autoPip => 'Автоматический «картинка в картинке»'; + @override String get autoPipDescription => 'Автоматически переходить в режим «картинка в картинке» при выходе из приложения во время воспроизведения'; + @override String get matchContentFrameRate => 'Соответствие частоты кадров контента'; + @override String get matchContentFrameRateDescription => 'Настроить частоту обновления дисплея под видеоконтент, уменьшая дрожание и экономя батарею'; + @override String get tunneledPlayback => 'Туннельное воспроизведение'; + @override String get tunneledPlaybackDescription => 'Использовать аппаратный видеотуннелинг. Отключите, если видите чёрный экран со звуком при HDR-контенте'; + @override String get requireProfileSelectionOnOpen => 'Запрашивать профиль при запуске'; + @override String get requireProfileSelectionOnOpenDescription => 'Показывать выбор профиля при каждом открытии приложения'; + @override String get confirmExitOnBack => 'Подтверждать выход'; + @override String get confirmExitOnBackDescription => 'Показывать диалог подтверждения при нажатии «назад» для выхода из приложения'; + @override String get showNavBarLabels => 'Показывать подписи панели навигации'; + @override String get showNavBarLabelsDescription => 'Отображать текстовые подписи под иконками панели навигации'; +} + +// Path: search +class _TranslationsSearchRu implements TranslationsSearchEn { + _TranslationsSearchRu._(this._root); + + final TranslationsRu _root; // ignore: unused_field + + // Translations + @override String get hint => 'Поиск фильмов, сериалов, музыки...'; + @override String get tryDifferentTerm => 'Попробуйте другой запрос'; + @override String get searchYourMedia => 'Поиск в вашей медиатеке'; + @override String get enterTitleActorOrKeyword => 'Введите название, актёра или ключевое слово'; +} + +// Path: hotkeys +class _TranslationsHotkeysRu implements TranslationsHotkeysEn { + _TranslationsHotkeysRu._(this._root); + + final TranslationsRu _root; // ignore: unused_field + + // Translations + @override String setShortcutFor({required Object actionName}) => 'Назначить клавишу для ${actionName}'; + @override String get clearShortcut => 'Очистить клавишу'; + @override late final _TranslationsHotkeysActionsRu actions = _TranslationsHotkeysActionsRu._(_root); +} + +// Path: pinEntry +class _TranslationsPinEntryRu implements TranslationsPinEntryEn { + _TranslationsPinEntryRu._(this._root); + + final TranslationsRu _root; // ignore: unused_field + + // Translations + @override String get enterPin => 'Введите PIN'; + @override String get showPin => 'Показать PIN'; + @override String get hidePin => 'Скрыть PIN'; +} + +// Path: fileInfo +class _TranslationsFileInfoRu implements TranslationsFileInfoEn { + _TranslationsFileInfoRu._(this._root); + + final TranslationsRu _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 => 'Профиль'; + @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 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 _TranslationsMediaMenuRu implements TranslationsMediaMenuEn { + _TranslationsMediaMenuRu._(this._root); + + final TranslationsRu _root; // ignore: unused_field + + // Translations + @override String get markAsWatched => 'Отметить как просмотренное'; + @override String get markAsUnwatched => 'Отметить как непросмотренное'; + @override String get removeFromContinueWatching => 'Удалить из «Продолжить просмотр»'; + @override String get goToSeries => 'Перейти к сериалу'; + @override String get goToSeason => 'Перейти к сезону'; + @override String get shufflePlay => 'Случайное воспроизведение'; + @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 => 'Оценить'; +} + +// Path: accessibility +class _TranslationsAccessibilityRu implements TranslationsAccessibilityEn { + _TranslationsAccessibilityRu._(this._root); + + final TranslationsRu _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 => 'Нажмите для воспроизведения'; +} + +// Path: tooltips +class _TranslationsTooltipsRu implements TranslationsTooltipsEn { + _TranslationsTooltipsRu._(this._root); + + final TranslationsRu _root; // ignore: unused_field + + // Translations + @override String get shufflePlay => 'Случайное воспроизведение'; + @override String get playTrailer => 'Воспроизвести трейлер'; + @override String get markAsWatched => 'Отметить как просмотренное'; + @override String get markAsUnwatched => 'Отметить как непросмотренное'; +} + +// Path: videoControls +class _TranslationsVideoControlsRu implements TranslationsVideoControlsEn { + _TranslationsVideoControlsRu._(this._root); + + final TranslationsRu _root; // ignore: unused_field + + // Translations + @override String get audioLabel => 'Аудио'; + @override String get subtitlesLabel => 'Субтитры'; + @override String get resetToZero => 'Сбросить до 0мс'; + @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 sleepTimerCompleted => 'Таймер сна завершён — воспроизведение приостановлено'; + @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 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 audioTrackButton => 'Аудиодорожки'; + @override String get subtitlesButton => 'Субтитры'; + @override String get tracksButton => 'Аудио и субтитры'; + @override String get chaptersButton => 'Главы'; + @override String get versionsButton => 'Версии видео'; + @override String get pipButton => 'Режим «картинка в картинке»'; + @override String get aspectRatioButton => 'Соотношение сторон'; + @override String get ambientLighting => 'Фоновая подсветка'; + @override String get ambientLightingOn => 'Включить фоновую подсветку'; + @override String get ambientLightingOff => 'Выключить фоновую подсветку'; + @override String get fullscreenButton => 'Полноэкранный режим'; + @override String get exitFullscreenButton => 'Выйти из полноэкранного режима'; + @override String get alwaysOnTopButton => 'Всегда поверх'; + @override String get rotationLockButton => 'Блокировка поворота'; + @override String get timelineSlider => 'Временная шкала'; + @override String get volumeSlider => 'Уровень громкости'; + @override String endsAt({required Object time}) => 'Закончится в ${time}'; + @override String get pipActive => 'Воспроизводится в режиме «картинка в картинке»'; + @override String get pipFailed => 'Не удалось запустить режим «картинка в картинке»'; + @override late final _TranslationsVideoControlsPipErrorsRu pipErrors = _TranslationsVideoControlsPipErrorsRu._(_root); + @override String get chapters => 'Главы'; + @override String get noChaptersAvailable => 'Главы недоступны'; + @override String get queue => 'Очередь'; + @override String get noQueueItems => 'В очереди нет элементов'; +} + +// Path: userStatus +class _TranslationsUserStatusRu implements TranslationsUserStatusEn { + _TranslationsUserStatusRu._(this._root); + + final TranslationsRu _root; // ignore: unused_field + + // Translations + @override String get admin => 'Администратор'; + @override String get restricted => 'Ограниченный'; + @override String get protected => 'Защищённый'; + @override String get current => 'ТЕКУЩИЙ'; +} + +// Path: messages +class _TranslationsMessagesRu implements TranslationsMessagesEn { + _TranslationsMessagesRu._(this._root); + + final TranslationsRu _root; // ignore: unused_field + + // Translations + @override String get markedAsWatched => 'Отмечено как просмотренное'; + @override String get markedAsUnwatched => 'Отмечено как непросмотренное'; + @override String get markedAsWatchedOffline => 'Отмечено как просмотренное (синхронизируется при подключении)'; + @override String get markedAsUnwatchedOffline => 'Отмечено как непросмотренное (синхронизируется при подключении)'; + @override String get removedFromContinueWatching => 'Удалено из «Продолжить просмотр»'; + @override String errorLoading({required Object error}) => 'Ошибка: ${error}'; + @override String get fileInfoNotAvailable => 'Информация о файле недоступна'; + @override String errorLoadingFileInfo({required Object error}) => 'Ошибка загрузки информации о файле: ${error}'; + @override String get errorLoadingSeries => 'Ошибка загрузки сериала'; + @override String get errorLoadingSeason => 'Ошибка загрузки сезона'; + @override String get musicNotSupported => 'Воспроизведение музыки пока не поддерживается'; + @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 noEpisodesFound => 'Эпизоды в первом сезоне не найдены'; + @override String get noEpisodesFoundGeneral => 'Эпизоды не найдены'; + @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 logsUploaded => 'Логи загружены'; + @override String get logsUploadFailed => 'Не удалось загрузить логи'; + @override String get logId => 'ID лога'; +} + +// Path: subtitlingStyling +class _TranslationsSubtitlingStylingRu implements TranslationsSubtitlingStylingEn { + _TranslationsSubtitlingStylingRu._(this._root); + + final TranslationsRu _root; // ignore: unused_field + + // Translations + @override String get stylingOptions => 'Параметры стиля'; + @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 => 'Позиция'; +} + +// Path: mpvConfig +class _TranslationsMpvConfigRu implements TranslationsMpvConfigEn { + _TranslationsMpvConfigRu._(this._root); + + final TranslationsRu _root; // ignore: unused_field + + // Translations + @override String get title => 'mpv.conf'; + @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# comment'; +} + +// Path: dialog +class _TranslationsDialogRu implements TranslationsDialogEn { + _TranslationsDialogRu._(this._root); + + final TranslationsRu _root; // ignore: unused_field + + // Translations + @override String get confirmAction => 'Подтвердить действие'; +} + +// Path: discover +class _TranslationsDiscoverRu implements TranslationsDiscoverEn { + _TranslationsDiscoverRu._(this._root); + + final TranslationsRu _root; // ignore: unused_field + + // Translations + @override String get title => 'Обзор'; + @override String get switchProfile => 'Сменить профиль'; + @override String get noContentAvailable => 'Контент недоступен'; + @override String get addMediaToLibraries => 'Добавьте медиафайлы в ваши библиотеки'; + @override String get continueWatching => 'Продолжить просмотр'; + @override String playEpisode({required Object season, required Object episode}) => 'S${season}E${episode}'; + @override String get overview => 'Обзор'; + @override String get cast => 'В ролях'; + @override String get extras => 'Трейлеры и доп. материалы'; + @override String get seasons => 'Сезоны'; + @override String get studio => 'Студия'; + @override String get rating => 'Рейтинг'; + @override String episodeCount({required Object count}) => '${count} эпизодов'; + @override String watchedProgress({required Object watched, required Object total}) => '${watched}/${total} просмотрено'; + @override String get movie => 'Фильм'; + @override String get tvShow => 'Сериал'; + @override String minutesLeft({required Object minutes}) => 'Осталось ${minutes} мин'; +} + +// Path: errors +class _TranslationsErrorsRu implements TranslationsErrorsEn { + _TranslationsErrorsRu._(this._root); + + final TranslationsRu _root; // ignore: unused_field + + // Translations + @override String searchFailed({required Object error}) => 'Ошибка поиска: ${error}'; + @override String connectionTimeout({required Object context}) => 'Таймаут подключения при загрузке ${context}'; + @override String get connectionFailed => 'Не удаётся подключиться к серверу Plex'; + @override String failedToLoad({required Object context, required Object error}) => 'Не удалось загрузить ${context}: ${error}'; + @override String get noClientAvailable => 'Клиент недоступен'; + @override String authenticationFailed({required Object error}) => 'Ошибка аутентификации: ${error}'; + @override String get couldNotLaunchUrl => 'Не удалось открыть URL аутентификации'; + @override String get pleaseEnterToken => 'Введите токен'; + @override String get invalidToken => 'Недействительный токен'; + @override String failedToVerifyToken({required Object error}) => 'Не удалось проверить токен: ${error}'; + @override String failedToSwitchProfile({required Object displayName}) => 'Не удалось переключиться на ${displayName}'; +} + +// Path: libraries +class _TranslationsLibrariesRu implements TranslationsLibrariesEn { + _TranslationsLibrariesRu._(this._root); + + final TranslationsRu _root; // ignore: unused_field + + // Translations + @override String get title => 'Библиотеки'; + @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 thisLibraryIsEmpty => 'Эта библиотека пуста'; + @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 _TranslationsLibrariesTabsRu tabs = _TranslationsLibrariesTabsRu._(_root); + @override late final _TranslationsLibrariesGroupingsRu groupings = _TranslationsLibrariesGroupingsRu._(_root); +} + +// Path: about +class _TranslationsAboutRu implements TranslationsAboutEn { + _TranslationsAboutRu._(this._root); + + final TranslationsRu _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 на Flutter'; + @override String get viewLicensesDescription => 'Просмотр лицензий сторонних библиотек'; +} + +// Path: serverSelection +class _TranslationsServerSelectionRu implements TranslationsServerSelectionEn { + _TranslationsServerSelectionRu._(this._root); + + final TranslationsRu _root; // ignore: unused_field + + // Translations + @override String get allServerConnectionsFailed => 'Не удалось подключиться ни к одному серверу. Проверьте сеть и попробуйте снова.'; + @override String noServersFoundForAccount({required Object username, required Object email}) => 'Серверы не найдены для ${username} (${email})'; + @override String failedToLoadServers({required Object error}) => 'Не удалось загрузить серверы: ${error}'; +} + +// Path: hubDetail +class _TranslationsHubDetailRu implements TranslationsHubDetailEn { + _TranslationsHubDetailRu._(this._root); + + final TranslationsRu _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 _TranslationsLogsRu implements TranslationsLogsEn { + _TranslationsLogsRu._(this._root); + + final TranslationsRu _root; // ignore: unused_field + + // Translations + @override String get clearLogs => 'Очистить логи'; + @override String get copyLogs => 'Скопировать логи'; + @override String get uploadLogs => 'Загрузить логи'; + @override String get error => 'Ошибка:'; + @override String get stackTrace => 'Стек вызовов:'; +} + +// Path: licenses +class _TranslationsLicensesRu implements TranslationsLicensesEn { + _TranslationsLicensesRu._(this._root); + + final TranslationsRu _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 _TranslationsNavigationRu implements TranslationsNavigationEn { + _TranslationsNavigationRu._(this._root); + + final TranslationsRu _root; // ignore: unused_field + + // Translations + @override String get libraries => 'Библиотеки'; + @override String get downloads => 'Загрузки'; + @override String get liveTv => 'ТВ в прямом эфире'; +} + +// Path: liveTv +class _TranslationsLiveTvRu implements TranslationsLiveTvEn { + _TranslationsLiveTvRu._(this._root); + + final TranslationsRu _root; // ignore: unused_field + + // Translations + @override String get title => 'ТВ в прямом эфире'; + @override String get channels => 'Каналы'; + @override String get guide => 'Программа'; + @override String get noChannels => 'Нет доступных каналов'; + @override String get noDvr => 'DVR не настроен ни на одном сервере'; + @override String get tuneFailed => 'Не удалось настроить канал'; + @override String get loading => 'Загрузка каналов...'; + @override String get nowPlaying => 'Сейчас воспроизводится'; + @override String get noPrograms => 'Нет данных о программах'; + @override String channelNumber({required Object number}) => 'Кн. ${number}'; + @override String get live => 'ЭФИР'; + @override String get hd => 'HD'; + @override String get premiere => 'НОВОЕ'; + @override String get reloadGuide => 'Перезагрузить программу'; + @override String get allChannels => 'Все каналы'; + @override String get now => 'Сейчас'; + @override String get today => 'Сегодня'; + @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 => 'Смотреть канал'; +} + +// Path: collections +class _TranslationsCollectionsRu implements TranslationsCollectionsEn { + _TranslationsCollectionsRu._(this._root); + + final TranslationsRu _root; // ignore: unused_field + + // Translations + @override String get title => 'Коллекции'; + @override String get collection => 'Коллекция'; + @override String get empty => 'Коллекция пуста'; + @override String get unknownLibrarySection => 'Невозможно удалить: неизвестный раздел библиотеки'; + @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 failedToLoadItems({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}'; +} + +// Path: playlists +class _TranslationsPlaylistsRu implements TranslationsPlaylistsEn { + _TranslationsPlaylistsRu._(this._root); + + final TranslationsRu _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 errorCreating => 'Не удалось создать плейлист'; + @override String get errorDeleting => 'Не удалось удалить плейлист'; + @override String get errorLoading => 'Не удалось загрузить плейлисты'; + @override String get errorAdding => 'Не удалось добавить в плейлист'; + @override String get errorReordering => 'Не удалось переупорядочить элемент плейлиста'; + @override String get errorRemoving => 'Не удалось удалить из плейлиста'; +} + +// Path: watchTogether +class _TranslationsWatchTogetherRu implements TranslationsWatchTogetherEn { + _TranslationsWatchTogetherRu._(this._root); + + final TranslationsRu _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 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 => 'HOST'; + @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 => 'Введите 8-символьный код'; + @override String get pasteFromClipboard => 'Вставить из буфера обмена'; + @override String get pleaseEnterCode => 'Введите код сессии'; + @override String get codeMustBe8Chars => 'Код сессии должен содержать 8 символов'; + @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 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} вышел'; +} + +// Path: downloads +class _TranslationsDownloadsRu implements TranslationsDownloadsEn { + _TranslationsDownloadsRu._(this._root); + + final TranslationsRu _root; // ignore: unused_field + + // Translations + @override String get title => 'Загрузки'; + @override String get manage => 'Управление'; + @override String get tvShows => 'Сериалы'; + @override String get movies => 'Фильмы'; + @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 episodesQueued({required Object count}) => '${count} эпизодов поставлено в очередь загрузки'; + @override String get downloadDeleted => 'Загрузка удалена'; + @override String deleteConfirm({required Object title}) => 'Вы уверены, что хотите удалить "${title}"? Загруженный файл будет удалён с устройства.'; + @override String deletingWithProgress({required Object title, required Object current, required Object total}) => 'Удаление ${title}... (${current} из ${total})'; + @override String get noDownloadsTree => 'Нет загрузок'; + @override String get pauseAll => 'Приостановить все'; + @override String get resumeAll => 'Возобновить все'; + @override String get deleteAll => 'Удалить все'; +} + +// Path: shaders +class _TranslationsShadersRu implements TranslationsShadersEn { + _TranslationsShadersRu._(this._root); + + final TranslationsRu _root; // ignore: unused_field + + // Translations + @override String get title => 'Шейдеры'; + @override String get noShaderDescription => 'Без улучшения видео'; + @override String get nvscalerDescription => 'Масштабирование NVIDIA для более чёткого видео'; + @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 _TranslationsCompanionRemoteRu implements TranslationsCompanionRemoteEn { + _TranslationsCompanionRemoteRu._(this._root); + + final TranslationsRu _root; // ignore: unused_field + + // Translations + @override String get title => 'Пульт управления'; + @override String get connectToDevice => 'Подключиться к устройству'; + @override String get hostRemoteSession => 'Создать удалённую сессию'; + @override String get controlThisDevice => 'Управляйте этим устройством с телефона'; + @override String get remoteControl => 'Пульт управления'; + @override String get controlDesktop => 'Управлять десктопным устройством'; + @override String connectedTo({required Object name}) => 'Подключено к ${name}'; + @override late final _TranslationsCompanionRemoteSessionRu session = _TranslationsCompanionRemoteSessionRu._(_root); + @override late final _TranslationsCompanionRemotePairingRu pairing = _TranslationsCompanionRemotePairingRu._(_root); + @override late final _TranslationsCompanionRemoteRemoteRu remote = _TranslationsCompanionRemoteRemoteRu._(_root); +} + +// Path: videoSettings +class _TranslationsVideoSettingsRu implements TranslationsVideoSettingsEn { + _TranslationsVideoSettingsRu._(this._root); + + final TranslationsRu _root; // ignore: unused_field + + // Translations + @override String get playbackSettings => 'Настройки воспроизведения'; + @override String get playbackSpeed => 'Скорость воспроизведения'; + @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 => 'Нормализация аудио'; +} + +// Path: externalPlayer +class _TranslationsExternalPlayerRu implements TranslationsExternalPlayerEn { + _TranslationsExternalPlayerRu._(this._root); + + final TranslationsRu _root; // ignore: unused_field + + // Translations + @override String get title => 'Внешний плеер'; + @override String get useExternalPlayer => 'Использовать внешний плеер'; + @override String get useExternalPlayerDescription => 'Открывать видео во внешнем приложении вместо встроенного плеера'; + @override String get selectPlayer => 'Выбрать плеер'; + @override String get systemDefault => 'Системный по умолчанию'; + @override String get addCustomPlayer => 'Добавить свой плеер'; + @override String get playerName => 'Название плеера'; + @override String get playerCommand => 'Команда'; + @override String get playerPackage => 'Имя пакета'; + @override String get playerUrlScheme => 'URL-схема'; + @override String get customPlayer => 'Свой плеер'; + @override String get off => 'Выкл.'; + @override String get launchFailed => 'Не удалось открыть внешний плеер'; + @override String appNotInstalled({required Object name}) => '${name} не установлен'; + @override String get playInExternalPlayer => 'Воспроизвести во внешнем плеере'; +} + +// Path: metadataEdit +class _TranslationsMetadataEditRu implements TranslationsMetadataEditEn { + _TranslationsMetadataEditRu._(this._root); + + final TranslationsRu _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 selectPoster => 'Выбрать постер'; + @override String get selectBackground => 'Выбрать фон'; + @override String get fromUrl => 'По URL'; + @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 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 => 'Всегда включены'; +} + +// Path: hotkeys.actions +class _TranslationsHotkeysActionsRu implements TranslationsHotkeysActionsEn { + _TranslationsHotkeysActionsRu._(this._root); + + final TranslationsRu _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 speedIncrease => 'Увеличить скорость'; + @override String get speedDecrease => 'Уменьшить скорость'; + @override String get speedReset => 'Сбросить скорость'; + @override String get subSeekNext => 'К следующему субтитру'; + @override String get subSeekPrev => 'К предыдущему субтитру'; + @override String get shaderToggle => 'Вкл./выкл. шейдеры'; + @override String get skipMarker => 'Пропустить вступление/титры'; +} + +// Path: videoControls.pipErrors +class _TranslationsVideoControlsPipErrorsRu implements TranslationsVideoControlsPipErrorsEn { + _TranslationsVideoControlsPipErrorsRu._(this._root); + + final TranslationsRu _root; // ignore: unused_field + + // Translations + @override String get androidVersion => 'Требуется Android 8.0 или новее'; + @override String get iosVersion => 'Требуется iOS 15.0 или новее'; + @override String get permissionDisabled => 'Разрешение «картинка в картинке» отключено. Включите в Настройки > Приложения > Plezy > Картинка в картинке'; + @override String get notSupported => 'Устройство не поддерживает режим «картинка в картинке»'; + @override String get voSwitchFailed => 'Не удалось переключить видеовыход для «картинки в картинке»'; + @override String get failed => 'Не удалось запустить режим «картинка в картинке»'; + @override String unknown({required Object error}) => 'Произошла ошибка: ${error}'; +} + +// Path: libraries.tabs +class _TranslationsLibrariesTabsRu implements TranslationsLibrariesTabsEn { + _TranslationsLibrariesTabsRu._(this._root); + + final TranslationsRu _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 _TranslationsLibrariesGroupingsRu implements TranslationsLibrariesGroupingsEn { + _TranslationsLibrariesGroupingsRu._(this._root); + + final TranslationsRu _root; // ignore: unused_field + + // Translations + @override String get all => 'Все'; + @override String get movies => 'Фильмы'; + @override String get shows => 'Сериалы'; + @override String get seasons => 'Сезоны'; + @override String get episodes => 'Эпизоды'; + @override String get folders => 'Папки'; +} + +// Path: companionRemote.session +class _TranslationsCompanionRemoteSessionRu implements TranslationsCompanionRemoteSessionEn { + _TranslationsCompanionRemoteSessionRu._(this._root); + + final TranslationsRu _root; // ignore: unused_field + + // Translations + @override String get creatingSession => 'Создание удалённой сессии...'; + @override String get failedToCreate => 'Не удалось создать удалённую сессию:'; + @override String get noSession => 'Нет доступных сессий'; + @override String get scanQrCode => 'Сканировать QR-код'; + @override String get orEnterManually => 'Или введите вручную'; + @override String get hostAddress => 'Адрес хоста'; + @override String get sessionId => 'ID сессии'; + @override String get pin => 'PIN'; + @override String get connected => 'Подключено'; + @override String get waitingForConnection => 'Ожидание подключения...'; + @override String get usePhoneToControl => 'Используйте мобильное устройство для управления этим приложением'; + @override String copiedToClipboard({required Object label}) => '${label} скопировано в буфер обмена'; + @override String get copyToClipboard => 'Скопировать в буфер обмена'; + @override String get newSession => 'Новая сессия'; + @override String get minimize => 'Свернуть'; +} + +// Path: companionRemote.pairing +class _TranslationsCompanionRemotePairingRu implements TranslationsCompanionRemotePairingEn { + _TranslationsCompanionRemotePairingRu._(this._root); + + final TranslationsRu _root; // ignore: unused_field + + // Translations + @override String get scan => 'Сканировать'; + @override String get manual => 'Вручную'; + @override String get pairWithDesktop => 'Сопряжение с ПК'; + @override String get enterSessionDetails => 'Введите данные сессии, показанные на десктопном устройстве'; + @override String get hostAddressHint => '192.168.1.100:48632'; + @override String get sessionIdHint => 'Введите 8-символьный ID сессии'; + @override String get pinHint => 'Введите 6-значный PIN'; + @override String get connecting => 'Подключение...'; + @override String get tips => 'Советы'; + @override String get tipDesktop => 'Откройте Plezy на десктопе и включите пульт управления в настройках или меню'; + @override String get tipScan => 'Используйте вкладку «Сканировать» для быстрого сопряжения через QR-код на десктопе'; + @override String get tipWifi => 'Убедитесь, что оба устройства находятся в одной WiFi-сети'; + @override String get cameraPermissionRequired => 'Для сканирования QR-кодов требуется разрешение на камеру.\nПредоставьте доступ к камере в настройках устройства.'; + @override String cameraError({required Object error}) => 'Не удалось запустить камеру: ${error}'; + @override String get scanInstruction => 'Наведите камеру на QR-код, показанный на десктопе'; + @override String get invalidQrCode => 'Недопустимый формат QR-кода'; + @override String get validationHostRequired => 'Введите адрес хоста'; + @override String get validationHostFormat => 'Формат должен быть IP:порт (например, 192.168.1.100:48632)'; + @override String get validationSessionIdRequired => 'Введите ID сессии'; + @override String get validationSessionIdLength => 'ID сессии должен содержать 8 символов'; + @override String get validationPinRequired => 'Введите PIN'; + @override String get validationPinLength => 'PIN должен содержать 6 цифр'; + @override String get connectionTimedOut => 'Время подключения истекло. Проверьте ID сессии и PIN.'; + @override String get sessionNotFound => 'Сессия не найдена. Проверьте ваши учётные данные.'; + @override String failedToConnect({required Object error}) => 'Не удалось подключиться: ${error}'; +} + +// Path: companionRemote.remote +class _TranslationsCompanionRemoteRemoteRu implements TranslationsCompanionRemoteRemoteEn { + _TranslationsCompanionRemoteRemoteRu._(this._root); + + final TranslationsRu _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 connectionError => 'Ошибка подключения'; + @override String get notConnected => 'Не подключено'; + @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 => 'Поиск на десктопе...'; +} + +/// 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 TranslationsRu { + dynamic _flatMapFunction(String path) { + return switch (path) { + 'app.title' => 'Plezy', + 'auth.signInWithPlex' => 'Войти через Plex', + 'auth.showQRCode' => 'Показать QR-код', + 'auth.authenticate' => 'Аутентификация', + 'auth.debugEnterToken' => 'Отладка: Ввести токен Plex', + 'auth.plexTokenLabel' => 'Токен авторизации Plex', + 'auth.plexTokenHint' => 'Введите ваш токен Plex.tv', + 'auth.authenticationTimeout' => 'Время аутентификации истекло. Попробуйте снова.', + 'auth.scanQRToSignIn' => 'Отсканируйте QR-код для входа', + 'auth.waitingForAuth' => 'Ожидание аутентификации...\nЗавершите вход в браузере.', + 'auth.useBrowser' => 'Использовать браузер', + '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.shuffle' => 'Перемешать', + 'common.addTo' => 'Добавить в...', + 'common.createNew' => 'Создать новый', + 'common.remove' => 'Удалить', + 'common.paste' => 'Вставить', + 'common.connect' => 'Подключить', + 'common.disconnect' => 'Отключить', + 'common.play' => 'Воспроизвести', + 'common.pause' => 'Пауза', + 'common.resume' => 'Продолжить', + 'common.error' => 'Ошибка', + 'common.search' => 'Поиск', + 'common.home' => 'Главная', + 'common.back' => 'Назад', + 'common.settings' => 'Настройки', + 'common.mute' => 'Без звука', + 'common.ok' => 'OK', + 'common.loading' => 'Загрузка...', + 'common.reconnect' => 'Переподключить', + 'common.exitConfirmTitle' => 'Выйти из приложения?', + 'common.exitConfirmMessage' => 'Вы уверены, что хотите выйти?', + 'common.dontAskAgain' => 'Больше не спрашивать', + 'common.exit' => 'Выход', + 'common.viewAll' => 'Показать все', + 'common.checkingNetwork' => 'Проверка сети...', + 'common.refreshingServers' => 'Обновление серверов...', + 'common.loadingServers' => 'Загрузка серверов...', + 'common.connectingToServers' => 'Подключение к серверам...', + 'common.startingOfflineMode' => 'Запуск автономного режима...', + '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.language' => 'Язык', + 'settings.theme' => 'Тема', + 'settings.appearance' => 'Внешний вид', + 'settings.videoPlayback' => 'Воспроизведение видео', + 'settings.advanced' => 'Дополнительно', + 'settings.episodePosterMode' => 'Стиль постера эпизода', + 'settings.seriesPoster' => 'Постер сериала', + 'settings.seriesPosterDescription' => 'Показывать постер сериала для всех эпизодов', + 'settings.seasonPoster' => 'Постер сезона', + 'settings.seasonPosterDescription' => 'Показывать постер конкретного сезона для эпизодов', + 'settings.episodeThumbnail' => 'Миниатюра эпизода', + 'settings.episodeThumbnailDescription' => 'Показывать миниатюры скриншотов эпизодов 16:9', + 'settings.showHeroSectionDescription' => 'Показывать карусель избранного контента на главном экране', + 'settings.secondsLabel' => 'Секунды', + 'settings.minutesLabel' => 'Минуты', + 'settings.secondsShort' => 'с', + 'settings.minutesShort' => 'м', + 'settings.durationHint' => ({required Object min, required Object max}) => 'Введите длительность (${min}-${max})', + 'settings.systemTheme' => 'Системная', + 'settings.systemThemeDescription' => 'Следовать настройкам системы', + 'settings.lightTheme' => 'Светлая', + 'settings.darkTheme' => 'Тёмная', + 'settings.oledTheme' => 'OLED', + 'settings.oledThemeDescription' => 'Чистый чёрный для OLED-экранов', + 'settings.libraryDensity' => 'Плотность библиотеки', + 'settings.compact' => 'Компактный', + 'settings.compactDescription' => 'Меньшие карточки, больше элементов видно', + 'settings.normal' => 'Обычный', + 'settings.normalDescription' => 'Размер по умолчанию', + 'settings.comfortable' => 'Комфортный', + 'settings.comfortableDescription' => 'Большие карточки, меньше элементов видно', + 'settings.viewMode' => 'Режим просмотра', + 'settings.gridView' => 'Сетка', + 'settings.gridViewDescription' => 'Отображать элементы в виде сетки', + 'settings.listView' => 'Список', + 'settings.listViewDescription' => 'Отображать элементы в виде списка', + 'settings.showHeroSection' => 'Показать раздел избранного', + 'settings.useGlobalHubs' => 'Использовать макет Plex Home', + 'settings.useGlobalHubsDescription' => 'Показывать хабы главной страницы как в официальном клиенте Plex. При выключении показывает рекомендации по библиотекам.', + 'settings.showServerNameOnHubs' => 'Показывать имя сервера в хабах', + 'settings.showServerNameOnHubsDescription' => 'Всегда показывать имя сервера в заголовках хабов. При выключении показывает только для дублирующихся имён.', + 'settings.alwaysKeepSidebarOpen' => 'Всегда держать боковую панель открытой', + 'settings.alwaysKeepSidebarOpenDescription' => 'Боковая панель остаётся развёрнутой, область контента подстраивается', + 'settings.showUnwatchedCount' => 'Показывать количество непросмотренных', + 'settings.showUnwatchedCountDescription' => 'Отображать количество непросмотренных эпизодов для сериалов и сезонов', + 'settings.hideSpoilers' => 'Скрыть спойлеры непросмотренных эпизодов', + 'settings.hideSpoilersDescription' => 'Размывать миниатюры и скрывать описания эпизодов, которые вы ещё не смотрели', + 'settings.playerBackend' => 'Бэкенд плеера', + 'settings.exoPlayer' => 'ExoPlayer (Рекомендуется)', + 'settings.exoPlayerDescription' => 'Нативный Android-плеер с лучшей аппаратной поддержкой', + 'settings.mpv' => 'mpv', + 'settings.mpvDescription' => 'Продвинутый плеер с большим количеством функций и поддержкой субтитров ASS', + 'settings.hardwareDecoding' => 'Аппаратное декодирование', + 'settings.hardwareDecodingDescription' => 'Использовать аппаратное ускорение, когда доступно', + 'settings.bufferSize' => 'Размер буфера', + 'settings.bufferSizeMB' => ({required Object size}) => '${size}МБ', + 'settings.bufferSizeAuto' => 'Авто (Рекомендуется)', + 'settings.bufferSizeWarning' => ({required Object heap, required Object size}) => 'У вашего устройства ${heap}МБ памяти. Буфер ${size}МБ может вызвать проблемы с воспроизведением.', + 'settings.subtitleStyling' => 'Стиль субтитров', + 'settings.subtitleStylingDescription' => 'Настроить внешний вид субтитров', + 'settings.smallSkipDuration' => 'Малая перемотка', + 'settings.largeSkipDuration' => 'Большая перемотка', + 'settings.secondsUnit' => ({required Object seconds}) => '${seconds} секунд', + 'settings.defaultSleepTimer' => 'Таймер сна по умолчанию', + 'settings.minutesUnit' => ({required Object minutes}) => '${minutes} минут', + 'settings.rememberTrackSelections' => 'Запоминать выбор дорожек для каждого сериала/фильма', + 'settings.rememberTrackSelectionsDescription' => 'Автоматически сохранять предпочтения языка аудио и субтитров при переключении дорожек во время воспроизведения', + 'settings.clickVideoTogglesPlayback' => 'Клик по видео для переключения воспроизведения/паузы', + 'settings.clickVideoTogglesPlaybackDescription' => 'Если включено, клик по видеоплееру воспроизводит/ставит на паузу. В противном случае показывает/скрывает элементы управления.', + 'settings.videoPlayerControls' => 'Элементы управления плеером', + 'settings.keyboardShortcuts' => 'Горячие клавиши', + 'settings.keyboardShortcutsDescription' => 'Настроить горячие клавиши', + 'settings.videoPlayerNavigation' => 'Навигация видеоплеера', + 'settings.videoPlayerNavigationDescription' => 'Использовать клавиши стрелок для навигации по элементам управления плеером', + '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.shortcutsReset' => 'Горячие клавиши сброшены по умолчанию', + 'settings.about' => 'О приложении', + 'settings.aboutDescription' => 'Информация о приложении и лицензии', + 'settings.updates' => 'Обновления', + 'settings.updateAvailable' => 'Доступно обновление', + 'settings.checkForUpdates' => 'Проверить обновления', + '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.autoSkip' => 'Автопропуск', + 'settings.autoSkipIntro' => 'Автопропуск вступления', + 'settings.autoSkipIntroDescription' => 'Автоматически пропускать маркеры вступления через несколько секунд', + 'settings.autoSkipCredits' => 'Автопропуск титров', + 'settings.autoSkipCreditsDescription' => 'Автоматически пропускать титры и воспроизводить следующий эпизод', + 'settings.autoSkipDelay' => 'Задержка автопропуска', + 'settings.autoSkipDelayDescription' => ({required Object seconds}) => 'Подождать ${seconds} секунд перед автопропуском', + '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.downloadLocationSelectError' => 'Не удалось выбрать папку', + 'settings.downloadOnWifiOnly' => 'Загружать только по WiFi', + 'settings.downloadOnWifiOnlyDescription' => 'Запретить загрузку по мобильным данным', + 'settings.cellularDownloadBlocked' => 'Загрузка по мобильным данным отключена. Подключитесь к WiFi или измените настройку.', + 'settings.maxVolume' => 'Максимальная громкость', + 'settings.maxVolumeDescription' => 'Разрешить усиление громкости выше 100% для тихих медиа', + 'settings.maxVolumePercent' => ({required Object percent}) => '${percent}%', + 'settings.discordRichPresence' => 'Discord Rich Presence', + 'settings.discordRichPresenceDescription' => 'Показывать, что вы смотрите, в Discord', + 'settings.autoPip' => 'Автоматический «картинка в картинке»', + 'settings.autoPipDescription' => 'Автоматически переходить в режим «картинка в картинке» при выходе из приложения во время воспроизведения', + 'settings.matchContentFrameRate' => 'Соответствие частоты кадров контента', + 'settings.matchContentFrameRateDescription' => 'Настроить частоту обновления дисплея под видеоконтент, уменьшая дрожание и экономя батарею', + 'settings.tunneledPlayback' => 'Туннельное воспроизведение', + 'settings.tunneledPlaybackDescription' => 'Использовать аппаратный видеотуннелинг. Отключите, если видите чёрный экран со звуком при HDR-контенте', + 'settings.requireProfileSelectionOnOpen' => 'Запрашивать профиль при запуске', + 'settings.requireProfileSelectionOnOpenDescription' => 'Показывать выбор профиля при каждом открытии приложения', + 'settings.confirmExitOnBack' => 'Подтверждать выход', + 'settings.confirmExitOnBackDescription' => 'Показывать диалог подтверждения при нажатии «назад» для выхода из приложения', + 'settings.showNavBarLabels' => 'Показывать подписи панели навигации', + 'settings.showNavBarLabelsDescription' => 'Отображать текстовые подписи под иконками панели навигации', + 'search.hint' => 'Поиск фильмов, сериалов, музыки...', + 'search.tryDifferentTerm' => 'Попробуйте другой запрос', + 'search.searchYourMedia' => 'Поиск в вашей медиатеке', + 'search.enterTitleActorOrKeyword' => 'Введите название, актёра или ключевое слово', + 'hotkeys.setShortcutFor' => ({required Object actionName}) => 'Назначить клавишу для ${actionName}', + 'hotkeys.clearShortcut' => 'Очистить клавишу', + '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.speedIncrease' => 'Увеличить скорость', + 'hotkeys.actions.speedDecrease' => 'Уменьшить скорость', + 'hotkeys.actions.speedReset' => 'Сбросить скорость', + 'hotkeys.actions.subSeekNext' => 'К следующему субтитру', + 'hotkeys.actions.subSeekPrev' => 'К предыдущему субтитру', + 'hotkeys.actions.shaderToggle' => 'Вкл./выкл. шейдеры', + 'hotkeys.actions.skipMarker' => 'Пропустить вступление/титры', + 'pinEntry.enterPin' => 'Введите PIN', + 'pinEntry.showPin' => 'Показать PIN', + 'pinEntry.hidePin' => 'Скрыть PIN', + 'fileInfo.title' => 'Информация о файле', + 'fileInfo.video' => 'Видео', + 'fileInfo.audio' => 'Аудио', + 'fileInfo.file' => 'Файл', + 'fileInfo.advanced' => 'Дополнительно', + 'fileInfo.codec' => 'Кодек', + 'fileInfo.resolution' => 'Разрешение', + 'fileInfo.bitrate' => 'Битрейт', + 'fileInfo.frameRate' => 'Частота кадров', + 'fileInfo.aspectRatio' => 'Соотношение сторон', + 'fileInfo.profile' => 'Профиль', + 'fileInfo.bitDepth' => 'Глубина цвета', + 'fileInfo.colorSpace' => 'Цветовое пространство', + 'fileInfo.colorRange' => 'Цветовой диапазон', + 'fileInfo.colorPrimaries' => 'Цветовые первичные', + 'fileInfo.chromaSubsampling' => 'Субдискретизация цветности', + 'fileInfo.channels' => 'Каналы', + 'fileInfo.path' => 'Путь', + 'fileInfo.size' => 'Размер', + 'fileInfo.container' => 'Контейнер', + 'fileInfo.duration' => 'Длительность', + 'fileInfo.optimizedForStreaming' => 'Оптимизировано для стриминга', + 'fileInfo.has64bitOffsets' => '64-битные смещения', + 'mediaMenu.markAsWatched' => 'Отметить как просмотренное', + 'mediaMenu.markAsUnwatched' => 'Отметить как непросмотренное', + 'mediaMenu.removeFromContinueWatching' => 'Удалить из «Продолжить просмотр»', + 'mediaMenu.goToSeries' => 'Перейти к сериалу', + 'mediaMenu.goToSeason' => 'Перейти к сезону', + 'mediaMenu.shufflePlay' => 'Случайное воспроизведение', + 'mediaMenu.fileInfo' => 'Информация о файле', + 'mediaMenu.deleteFromServer' => 'Удалить с сервера', + 'mediaMenu.confirmDelete' => 'Это навсегда удалит этот медиафайл и его файлы с вашего сервера. Это действие нельзя отменить.', + 'mediaMenu.deleteMultipleWarning' => 'Это включает все эпизоды и их файлы.', + 'mediaMenu.mediaDeletedSuccessfully' => 'Медиаэлемент успешно удалён', + 'mediaMenu.mediaFailedToDelete' => 'Не удалось удалить медиаэлемент', + 'mediaMenu.rate' => 'Оценить', + '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' => 'Нажмите для воспроизведения', + 'tooltips.shufflePlay' => 'Случайное воспроизведение', + 'tooltips.playTrailer' => 'Воспроизвести трейлер', + 'tooltips.markAsWatched' => 'Отметить как просмотренное', + 'tooltips.markAsUnwatched' => 'Отметить как непросмотренное', + 'videoControls.audioLabel' => 'Аудио', + 'videoControls.subtitlesLabel' => 'Субтитры', + 'videoControls.resetToZero' => 'Сбросить до 0мс', + '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.sleepTimerCompleted' => 'Таймер сна завершён — воспроизведение приостановлено', + 'videoControls.stillWatching' => 'Всё ещё смотрите?', + '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.previousButton' => 'Предыдущий эпизод', + 'videoControls.nextButton' => 'Следующий эпизод', + 'videoControls.previousChapterButton' => 'Предыдущая глава', + 'videoControls.nextChapterButton' => 'Следующая глава', + 'videoControls.muteButton' => 'Без звука', + 'videoControls.unmuteButton' => 'Включить звук', + 'videoControls.settingsButton' => 'Настройки видео', + 'videoControls.audioTrackButton' => 'Аудиодорожки', + 'videoControls.subtitlesButton' => 'Субтитры', + 'videoControls.tracksButton' => 'Аудио и субтитры', + 'videoControls.chaptersButton' => 'Главы', + 'videoControls.versionsButton' => 'Версии видео', + 'videoControls.pipButton' => 'Режим «картинка в картинке»', + 'videoControls.aspectRatioButton' => 'Соотношение сторон', + 'videoControls.ambientLighting' => 'Фоновая подсветка', + 'videoControls.ambientLightingOn' => 'Включить фоновую подсветку', + 'videoControls.ambientLightingOff' => 'Выключить фоновую подсветку', + 'videoControls.fullscreenButton' => 'Полноэкранный режим', + 'videoControls.exitFullscreenButton' => 'Выйти из полноэкранного режима', + 'videoControls.alwaysOnTopButton' => 'Всегда поверх', + 'videoControls.rotationLockButton' => 'Блокировка поворота', + 'videoControls.timelineSlider' => 'Временная шкала', + 'videoControls.volumeSlider' => 'Уровень громкости', + 'videoControls.endsAt' => ({required Object time}) => 'Закончится в ${time}', + 'videoControls.pipActive' => 'Воспроизводится в режиме «картинка в картинке»', + 'videoControls.pipFailed' => 'Не удалось запустить режим «картинка в картинке»', + 'videoControls.pipErrors.androidVersion' => 'Требуется Android 8.0 или новее', + 'videoControls.pipErrors.iosVersion' => 'Требуется iOS 15.0 или новее', + 'videoControls.pipErrors.permissionDisabled' => 'Разрешение «картинка в картинке» отключено. Включите в Настройки > Приложения > Plezy > Картинка в картинке', + 'videoControls.pipErrors.notSupported' => 'Устройство не поддерживает режим «картинка в картинке»', + 'videoControls.pipErrors.voSwitchFailed' => 'Не удалось переключить видеовыход для «картинки в картинке»', + 'videoControls.pipErrors.failed' => 'Не удалось запустить режим «картинка в картинке»', + 'videoControls.pipErrors.unknown' => ({required Object error}) => 'Произошла ошибка: ${error}', + 'videoControls.chapters' => 'Главы', + 'videoControls.noChaptersAvailable' => 'Главы недоступны', + 'videoControls.queue' => 'Очередь', + 'videoControls.noQueueItems' => 'В очереди нет элементов', + 'userStatus.admin' => 'Администратор', + 'userStatus.restricted' => 'Ограниченный', + 'userStatus.protected' => 'Защищённый', + 'userStatus.current' => 'ТЕКУЩИЙ', + 'messages.markedAsWatched' => 'Отмечено как просмотренное', + 'messages.markedAsUnwatched' => 'Отмечено как непросмотренное', + 'messages.markedAsWatchedOffline' => 'Отмечено как просмотренное (синхронизируется при подключении)', + 'messages.markedAsUnwatchedOffline' => 'Отмечено как непросмотренное (синхронизируется при подключении)', + 'messages.removedFromContinueWatching' => 'Удалено из «Продолжить просмотр»', + 'messages.errorLoading' => ({required Object error}) => 'Ошибка: ${error}', + 'messages.fileInfoNotAvailable' => 'Информация о файле недоступна', + 'messages.errorLoadingFileInfo' => ({required Object error}) => 'Ошибка загрузки информации о файле: ${error}', + 'messages.errorLoadingSeries' => 'Ошибка загрузки сериала', + 'messages.errorLoadingSeason' => 'Ошибка загрузки сезона', + 'messages.musicNotSupported' => 'Воспроизведение музыки пока не поддерживается', + '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.noEpisodesFound' => 'Эпизоды в первом сезоне не найдены', + 'messages.noEpisodesFoundGeneral' => 'Эпизоды не найдены', + '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.logsUploaded' => 'Логи загружены', + 'messages.logsUploadFailed' => 'Не удалось загрузить логи', + 'messages.logId' => 'ID лога', + 'subtitlingStyling.stylingOptions' => 'Параметры стиля', + 'subtitlingStyling.fontSize' => 'Размер шрифта', + 'subtitlingStyling.textColor' => 'Цвет текста', + 'subtitlingStyling.borderSize' => 'Размер обводки', + 'subtitlingStyling.borderColor' => 'Цвет обводки', + 'subtitlingStyling.backgroundOpacity' => 'Прозрачность фона', + 'subtitlingStyling.backgroundColor' => 'Цвет фона', + 'subtitlingStyling.position' => 'Позиция', + 'mpvConfig.title' => 'mpv.conf', + '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# comment', + 'dialog.confirmAction' => 'Подтвердить действие', + 'discover.title' => 'Обзор', + 'discover.switchProfile' => 'Сменить профиль', + 'discover.noContentAvailable' => 'Контент недоступен', + 'discover.addMediaToLibraries' => 'Добавьте медиафайлы в ваши библиотеки', + 'discover.continueWatching' => 'Продолжить просмотр', + 'discover.playEpisode' => ({required Object season, required Object episode}) => 'S${season}E${episode}', + 'discover.overview' => 'Обзор', + 'discover.cast' => 'В ролях', + 'discover.extras' => 'Трейлеры и доп. материалы', + 'discover.seasons' => 'Сезоны', + 'discover.studio' => 'Студия', + 'discover.rating' => 'Рейтинг', + 'discover.episodeCount' => ({required Object count}) => '${count} эпизодов', + 'discover.watchedProgress' => ({required Object watched, required Object total}) => '${watched}/${total} просмотрено', + 'discover.movie' => 'Фильм', + 'discover.tvShow' => 'Сериал', + 'discover.minutesLeft' => ({required Object minutes}) => 'Осталось ${minutes} мин', + 'errors.searchFailed' => ({required Object error}) => 'Ошибка поиска: ${error}', + 'errors.connectionTimeout' => ({required Object context}) => 'Таймаут подключения при загрузке ${context}', + 'errors.connectionFailed' => 'Не удаётся подключиться к серверу Plex', + 'errors.failedToLoad' => ({required Object context, required Object error}) => 'Не удалось загрузить ${context}: ${error}', + 'errors.noClientAvailable' => 'Клиент недоступен', + 'errors.authenticationFailed' => ({required Object error}) => 'Ошибка аутентификации: ${error}', + 'errors.couldNotLaunchUrl' => 'Не удалось открыть URL аутентификации', + 'errors.pleaseEnterToken' => 'Введите токен', + 'errors.invalidToken' => 'Недействительный токен', + 'errors.failedToVerifyToken' => ({required Object error}) => 'Не удалось проверить токен: ${error}', + 'errors.failedToSwitchProfile' => ({required Object displayName}) => 'Не удалось переключиться на ${displayName}', + 'libraries.title' => 'Библиотеки', + '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.thisLibraryIsEmpty' => 'Эта библиотека пуста', + '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.all' => 'Все', + 'libraries.groupings.movies' => 'Фильмы', + 'libraries.groupings.shows' => 'Сериалы', + 'libraries.groupings.seasons' => 'Сезоны', + 'libraries.groupings.episodes' => 'Эпизоды', + 'libraries.groupings.folders' => 'Папки', + 'about.title' => 'О приложении', + 'about.openSourceLicenses' => 'Лицензии открытого ПО', + 'about.versionLabel' => ({required Object version}) => 'Версия ${version}', + 'about.appDescription' => 'Красивый клиент Plex на Flutter', + 'about.viewLicensesDescription' => 'Просмотр лицензий сторонних библиотек', + 'serverSelection.allServerConnectionsFailed' => 'Не удалось подключиться ни к одному серверу. Проверьте сеть и попробуйте снова.', + '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' => 'Загрузить логи', + 'logs.error' => 'Ошибка:', + 'logs.stackTrace' => 'Стек вызовов:', + 'licenses.relatedPackages' => 'Связанные пакеты', + 'licenses.license' => 'Лицензия', + 'licenses.licenseNumber' => ({required Object number}) => 'Лицензия ${number}', + 'licenses.licensesCount' => ({required Object count}) => '${count} лицензий', + 'navigation.libraries' => 'Библиотеки', + 'navigation.downloads' => 'Загрузки', + 'navigation.liveTv' => 'ТВ в прямом эфире', + 'liveTv.title' => 'ТВ в прямом эфире', + 'liveTv.channels' => 'Каналы', + 'liveTv.guide' => 'Программа', + 'liveTv.noChannels' => 'Нет доступных каналов', + 'liveTv.noDvr' => 'DVR не настроен ни на одном сервере', + 'liveTv.tuneFailed' => 'Не удалось настроить канал', + 'liveTv.loading' => 'Загрузка каналов...', + 'liveTv.nowPlaying' => 'Сейчас воспроизводится', + 'liveTv.noPrograms' => 'Нет данных о программах', + 'liveTv.channelNumber' => ({required Object number}) => 'Кн. ${number}', + 'liveTv.live' => 'ЭФИР', + 'liveTv.hd' => 'HD', + 'liveTv.premiere' => 'НОВОЕ', + _ => null, + } ?? switch (path) { + 'liveTv.reloadGuide' => 'Перезагрузить программу', + 'liveTv.allChannels' => 'Все каналы', + 'liveTv.now' => 'Сейчас', + 'liveTv.today' => 'Сегодня', + 'liveTv.midnight' => 'Полночь', + 'liveTv.overnight' => 'Ночь', + 'liveTv.morning' => 'Утро', + 'liveTv.daytime' => 'День', + 'liveTv.evening' => 'Вечер', + 'liveTv.lateNight' => 'Поздний вечер', + 'liveTv.whatsOn' => 'Что идёт', + 'liveTv.watchChannel' => 'Смотреть канал', + 'collections.title' => 'Коллекции', + 'collections.collection' => 'Коллекция', + 'collections.empty' => 'Коллекция пуста', + 'collections.unknownLibrarySection' => 'Невозможно удалить: неизвестный раздел библиотеки', + 'collections.deleteCollection' => 'Удалить коллекцию', + 'collections.deleteConfirm' => ({required Object title}) => 'Вы уверены, что хотите удалить "${title}"? Это действие нельзя отменить.', + 'collections.deleted' => 'Коллекция удалена', + 'collections.deleteFailed' => 'Не удалось удалить коллекцию', + 'collections.deleteFailedWithError' => ({required Object error}) => 'Не удалось удалить коллекцию: ${error}', + 'collections.failedToLoadItems' => ({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}', + '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.errorCreating' => 'Не удалось создать плейлист', + 'playlists.errorDeleting' => 'Не удалось удалить плейлист', + 'playlists.errorLoading' => 'Не удалось загрузить плейлисты', + 'playlists.errorAdding' => 'Не удалось добавить в плейлист', + 'playlists.errorReordering' => 'Не удалось переупорядочить элемент плейлиста', + 'playlists.errorRemoving' => 'Не удалось удалить из плейлиста', + '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.hostControlsPlayback' => 'Хост управляет воспроизведением', + 'watchTogether.anyoneCanControl' => 'Любой может управлять воспроизведением', + 'watchTogether.hostControls' => 'Управление хоста', + 'watchTogether.anyoneControls' => 'Управление для всех', + 'watchTogether.participants' => 'Участники', + 'watchTogether.host' => 'Хост', + 'watchTogether.hostBadge' => 'HOST', + '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' => 'Введите 8-символьный код', + 'watchTogether.pasteFromClipboard' => 'Вставить из буфера обмена', + 'watchTogether.pleaseEnterCode' => 'Введите код сессии', + 'watchTogether.codeMustBe8Chars' => 'Код сессии должен содержать 8 символов', + 'watchTogether.joinInstructions' => 'Введите код сессии, предоставленный хостом, чтобы присоединиться к просмотру.', + 'watchTogether.failedToCreate' => 'Не удалось создать сессию', + 'watchTogether.failedToJoin' => 'Не удалось присоединиться к сессии', + 'watchTogether.sessionCodeCopied' => 'Код сессии скопирован в буфер обмена', + 'watchTogether.relayUnreachable' => 'Ретранслятор недоступен. Возможно, ваш провайдер блокирует подключение. Вы можете попробовать, но «Смотреть вместе» может не работать.', + 'watchTogether.reconnectingToHost' => 'Переподключение к хосту...', + 'watchTogether.currentPlayback' => 'Текущее воспроизведение', + 'watchTogether.joinCurrentPlayback' => 'Присоединиться к текущему воспроизведению', + 'watchTogether.joinCurrentPlaybackDescription' => 'Вернуться к тому, что сейчас смотрит хост', + 'watchTogether.failedToOpenCurrentPlayback' => 'Не удалось открыть текущее воспроизведение', + 'watchTogether.participantJoined' => ({required Object name}) => '${name} присоединился', + 'watchTogether.participantLeft' => ({required Object name}) => '${name} вышел', + 'downloads.title' => 'Загрузки', + 'downloads.manage' => 'Управление', + 'downloads.tvShows' => 'Сериалы', + 'downloads.movies' => 'Фильмы', + 'downloads.noDownloads' => 'Загрузок пока нет', + 'downloads.noDownloadsDescription' => 'Загруженный контент появится здесь для просмотра офлайн', + 'downloads.downloadNow' => 'Загрузить', + 'downloads.deleteDownload' => 'Удалить загрузку', + 'downloads.retryDownload' => 'Повторить загрузку', + 'downloads.downloadQueued' => 'Загрузка поставлена в очередь', + 'downloads.episodesQueued' => ({required Object count}) => '${count} эпизодов поставлено в очередь загрузки', + 'downloads.downloadDeleted' => 'Загрузка удалена', + 'downloads.deleteConfirm' => ({required Object title}) => 'Вы уверены, что хотите удалить "${title}"? Загруженный файл будет удалён с устройства.', + 'downloads.deletingWithProgress' => ({required Object title, required Object current, required Object total}) => 'Удаление ${title}... (${current} из ${total})', + 'downloads.noDownloadsTree' => 'Нет загрузок', + 'downloads.pauseAll' => 'Приостановить все', + 'downloads.resumeAll' => 'Возобновить все', + 'downloads.deleteAll' => 'Удалить все', + 'shaders.title' => 'Шейдеры', + 'shaders.noShaderDescription' => 'Без улучшения видео', + 'shaders.nvscalerDescription' => 'Масштабирование NVIDIA для более чёткого видео', + '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.connectToDevice' => 'Подключиться к устройству', + 'companionRemote.hostRemoteSession' => 'Создать удалённую сессию', + 'companionRemote.controlThisDevice' => 'Управляйте этим устройством с телефона', + 'companionRemote.remoteControl' => 'Пульт управления', + 'companionRemote.controlDesktop' => 'Управлять десктопным устройством', + 'companionRemote.connectedTo' => ({required Object name}) => 'Подключено к ${name}', + 'companionRemote.session.creatingSession' => 'Создание удалённой сессии...', + 'companionRemote.session.failedToCreate' => 'Не удалось создать удалённую сессию:', + 'companionRemote.session.noSession' => 'Нет доступных сессий', + 'companionRemote.session.scanQrCode' => 'Сканировать QR-код', + 'companionRemote.session.orEnterManually' => 'Или введите вручную', + 'companionRemote.session.hostAddress' => 'Адрес хоста', + 'companionRemote.session.sessionId' => 'ID сессии', + 'companionRemote.session.pin' => 'PIN', + 'companionRemote.session.connected' => 'Подключено', + 'companionRemote.session.waitingForConnection' => 'Ожидание подключения...', + 'companionRemote.session.usePhoneToControl' => 'Используйте мобильное устройство для управления этим приложением', + 'companionRemote.session.copiedToClipboard' => ({required Object label}) => '${label} скопировано в буфер обмена', + 'companionRemote.session.copyToClipboard' => 'Скопировать в буфер обмена', + 'companionRemote.session.newSession' => 'Новая сессия', + 'companionRemote.session.minimize' => 'Свернуть', + 'companionRemote.pairing.scan' => 'Сканировать', + 'companionRemote.pairing.manual' => 'Вручную', + 'companionRemote.pairing.pairWithDesktop' => 'Сопряжение с ПК', + 'companionRemote.pairing.enterSessionDetails' => 'Введите данные сессии, показанные на десктопном устройстве', + 'companionRemote.pairing.hostAddressHint' => '192.168.1.100:48632', + 'companionRemote.pairing.sessionIdHint' => 'Введите 8-символьный ID сессии', + 'companionRemote.pairing.pinHint' => 'Введите 6-значный PIN', + 'companionRemote.pairing.connecting' => 'Подключение...', + 'companionRemote.pairing.tips' => 'Советы', + 'companionRemote.pairing.tipDesktop' => 'Откройте Plezy на десктопе и включите пульт управления в настройках или меню', + 'companionRemote.pairing.tipScan' => 'Используйте вкладку «Сканировать» для быстрого сопряжения через QR-код на десктопе', + 'companionRemote.pairing.tipWifi' => 'Убедитесь, что оба устройства находятся в одной WiFi-сети', + 'companionRemote.pairing.cameraPermissionRequired' => 'Для сканирования QR-кодов требуется разрешение на камеру.\nПредоставьте доступ к камере в настройках устройства.', + 'companionRemote.pairing.cameraError' => ({required Object error}) => 'Не удалось запустить камеру: ${error}', + 'companionRemote.pairing.scanInstruction' => 'Наведите камеру на QR-код, показанный на десктопе', + 'companionRemote.pairing.invalidQrCode' => 'Недопустимый формат QR-кода', + 'companionRemote.pairing.validationHostRequired' => 'Введите адрес хоста', + 'companionRemote.pairing.validationHostFormat' => 'Формат должен быть IP:порт (например, 192.168.1.100:48632)', + 'companionRemote.pairing.validationSessionIdRequired' => 'Введите ID сессии', + 'companionRemote.pairing.validationSessionIdLength' => 'ID сессии должен содержать 8 символов', + 'companionRemote.pairing.validationPinRequired' => 'Введите PIN', + 'companionRemote.pairing.validationPinLength' => 'PIN должен содержать 6 цифр', + 'companionRemote.pairing.connectionTimedOut' => 'Время подключения истекло. Проверьте ID сессии и PIN.', + 'companionRemote.pairing.sessionNotFound' => 'Сессия не найдена. Проверьте ваши учётные данные.', + '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.connectionError' => 'Ошибка подключения', + 'companionRemote.remote.notConnected' => 'Не подключено', + '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' => 'Поиск на десктопе...', + 'videoSettings.playbackSettings' => 'Настройки воспроизведения', + 'videoSettings.playbackSpeed' => 'Скорость воспроизведения', + 'videoSettings.sleepTimer' => 'Таймер сна', + 'videoSettings.audioSync' => 'Синхронизация аудио', + 'videoSettings.subtitleSync' => 'Синхронизация субтитров', + 'videoSettings.hdr' => 'HDR', + 'videoSettings.audioOutput' => 'Аудиовыход', + 'videoSettings.performanceOverlay' => 'Оверлей производительности', + 'videoSettings.audioPassthrough' => 'Сквозной вывод аудио', + 'videoSettings.audioNormalization' => 'Нормализация аудио', + 'externalPlayer.title' => 'Внешний плеер', + 'externalPlayer.useExternalPlayer' => 'Использовать внешний плеер', + 'externalPlayer.useExternalPlayerDescription' => 'Открывать видео во внешнем приложении вместо встроенного плеера', + 'externalPlayer.selectPlayer' => 'Выбрать плеер', + 'externalPlayer.systemDefault' => 'Системный по умолчанию', + 'externalPlayer.addCustomPlayer' => 'Добавить свой плеер', + 'externalPlayer.playerName' => 'Название плеера', + 'externalPlayer.playerCommand' => 'Команда', + 'externalPlayer.playerPackage' => 'Имя пакета', + 'externalPlayer.playerUrlScheme' => 'URL-схема', + 'externalPlayer.customPlayer' => 'Свой плеер', + '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.selectPoster' => 'Выбрать постер', + 'metadataEdit.selectBackground' => 'Выбрать фон', + 'metadataEdit.fromUrl' => 'По URL', + 'metadataEdit.uploadFile' => 'Загрузить файл', + 'metadataEdit.enterImageUrl' => 'Введите URL изображения', + 'metadataEdit.imageUrl' => 'URL изображения', + 'metadataEdit.metadataUpdated' => 'Метаданные обновлены', + 'metadataEdit.metadataUpdateFailed' => 'Не удалось обновить метаданные', + 'metadataEdit.artworkUpdated' => 'Обложка обновлена', + 'metadataEdit.artworkUpdateFailed' => 'Не удалось обновить обложку', + 'metadataEdit.noArtworkAvailable' => 'Обложки недоступны', + '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' => 'Всегда включены', + _ => null, + }; + } +} diff --git a/lib/screens/settings/settings_screen.dart b/lib/screens/settings/settings_screen.dart index 9fe91042..350ed194 100644 --- a/lib/screens/settings/settings_screen.dart +++ b/lib/screens/settings/settings_screen.dart @@ -1620,6 +1620,18 @@ class _SettingsScreenState extends State with FocusableTab { return '한국어'; case AppLocale.es: return 'Español'; + case AppLocale.pt: + return 'Português'; + case AppLocale.ja: + return '日本語'; + case AppLocale.ru: + return 'Русский'; + case AppLocale.pl: + return 'Polski'; + case AppLocale.da: + return 'Dansk'; + case AppLocale.nb: + return 'Norsk bokmål'; } }